@akasecurity/cli 0.9.13 → 0.9.15
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.
- package/README.md +46 -3
- package/dist/cli.js +4114 -1649
- package/extension/manifest.json +1 -1
- package/native-host/content-retention.js +35814 -0
- package/native-host/history-sync.js +36945 -0
- package/native-host/host.js +2868 -1105
- package/native-host/scan-worker.js +1964 -874
- package/native-host/sync.js +2305 -969
- package/package.json +10 -10
- package/web-ui/package.json +7 -7
- package/web-ui/packages/dashboard-ui/package.json +5 -5
- package/web-ui/packages/plugin-sdk/package.json +2 -2
- package/web-ui/packages/schema/package.json +3 -3
- package/web-ui/packages/ui-kit/package.json +2 -2
- package/web-ui/web-ui/.next/BUILD_ID +1 -1
- package/web-ui/web-ui/.next/app-build-manifest.json +254 -254
- package/web-ui/web-ui/.next/app-path-routes-manifest.json +8 -8
- package/web-ui/web-ui/.next/build-manifest.json +14 -14
- package/web-ui/web-ui/.next/prerender-manifest.json +3 -3
- package/web-ui/web-ui/.next/required-server-files.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/activity/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/activity/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/data-shares/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/data-shares/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/data-shares/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/detections/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/detections/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/detections/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/findings/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/findings/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/findings/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/inventory/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/inventory/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/inventory/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/policies/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/policies/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/policies/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/scan/page.js +3 -3
- package/web-ui/web-ui/.next/server/app/(app)/scan/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/scan/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/security/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/security/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/settings/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/settings/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/updates/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/updates/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/updates/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/vault/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/vault/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/vault/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found.html +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found.rsc +10 -10
- package/web-ui/web-ui/.next/server/app/icon.svg/route.js +1 -1
- package/web-ui/web-ui/.next/server/app/icon.svg/route.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/index.html +1 -1
- package/web-ui/web-ui/.next/server/app/index.rsc +10 -10
- package/web-ui/web-ui/.next/server/app/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app-paths-manifest.json +8 -8
- package/web-ui/web-ui/.next/server/chunks/184.js +1039 -0
- package/web-ui/web-ui/.next/server/chunks/245.js +11 -0
- package/web-ui/web-ui/.next/server/chunks/{121.js → 250.js} +1 -1
- package/web-ui/web-ui/.next/server/chunks/491.js +1 -0
- package/web-ui/web-ui/.next/server/chunks/51.js +1 -0
- package/web-ui/web-ui/.next/server/chunks/511.js +66 -0
- package/web-ui/web-ui/.next/server/chunks/537.js +1 -0
- package/web-ui/web-ui/.next/server/chunks/586.js +1048 -0
- package/web-ui/web-ui/.next/server/chunks/643.js +6 -0
- package/web-ui/web-ui/.next/server/chunks/660.js +109 -0
- package/web-ui/web-ui/.next/server/chunks/662.js +1 -1
- package/web-ui/web-ui/.next/server/chunks/749.js +22 -0
- package/web-ui/web-ui/.next/server/chunks/756.js +6 -0
- package/web-ui/web-ui/.next/server/chunks/774.js +12 -0
- package/web-ui/web-ui/.next/server/functions-config-manifest.json +4 -4
- package/web-ui/web-ui/.next/server/middleware-build-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/middleware-manifest.json +5 -5
- package/web-ui/web-ui/.next/server/middleware.js +2 -2
- package/web-ui/web-ui/.next/server/pages/404.html +1 -1
- package/web-ui/web-ui/.next/server/pages/500.html +1 -1
- package/web-ui/web-ui/.next/server/pages/_app.js +1 -1
- package/web-ui/web-ui/.next/server/pages/_app.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/pages/_document.js +1 -1
- package/web-ui/web-ui/.next/server/pages/_document.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/pages/_error.js +9 -9
- package/web-ui/web-ui/.next/server/pages/_error.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/server-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/server-reference-manifest.json +1 -1
- package/web-ui/web-ui/.next/static/chunks/394-310a18b4e4df5baf.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/458-51313fc93031a722.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/784-4ea191865f1d4d08.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/800-5a959d56ff462fa5.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/982-d4c17097640bdc58.js +55 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/page-6a2b4ce7f62aa2ba.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/page-3032d8c5d83ed0ae.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/page-541933106e3fbbd5.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/{error-4baae46bcee63009.js → error-8db18c71ebeb633c.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-b2913fd29067c1aa.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-d71ddfb1b6a8508a.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-db4102808bb1d7ba.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/page-8fc32e776e5c8f17.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-5136fa903953a1f1.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/layout-0a38af585fc577fa.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/policies/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/policies/page-7b0a5b76d199ec55.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-dd238c793fc58e5b.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/security/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/security/page-27448935d7ce4168.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-e8f75d1d2a05a860.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/page-34525856979b2faf.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/vault/loading-1c2f7a583c03a3ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/vault/page-90ff82a26647fc29.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/_not-found/page-688942265deca357.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/layout-66e4db4cb3e3b073.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/page-64c3ee82a8af8ca6.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/fc2b9f2a-dbaa334f7301101d.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/framework-f6112ebf12822e8c.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/main-app-9c9fe8121a92e5d6.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/main-b1c87d0ac6039542.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/pages/_app-3a76cb93bbdd6993.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/pages/_error-690c2fcfe129b529.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/{webpack-f10501a57c4d919d.js → webpack-27570aabc530cb21.js} +1 -1
- package/web-ui/web-ui/.next/static/css/010b6061327092dd.css +2 -0
- package/web-ui/web-ui/.next/static/{pkVZ1_T311YNkJgZOLTx5 → zCQxcf2ZbK52vQeWXgBgs}/_buildManifest.js +1 -1
- package/web-ui/web-ui/dist/scan-worker.js +1964 -874
- package/web-ui/web-ui/package.json +7 -7
- package/web-ui/web-ui/.next/server/chunks/130.js +0 -1026
- package/web-ui/web-ui/.next/server/chunks/19.js +0 -22
- package/web-ui/web-ui/.next/server/chunks/290.js +0 -6
- package/web-ui/web-ui/.next/server/chunks/3.js +0 -1017
- package/web-ui/web-ui/.next/server/chunks/300.js +0 -1
- package/web-ui/web-ui/.next/server/chunks/475.js +0 -1
- package/web-ui/web-ui/.next/server/chunks/585.js +0 -12
- package/web-ui/web-ui/.next/server/chunks/589.js +0 -99
- package/web-ui/web-ui/.next/server/chunks/67.js +0 -6
- package/web-ui/web-ui/.next/server/chunks/70.js +0 -1
- package/web-ui/web-ui/.next/server/chunks/743.js +0 -11
- package/web-ui/web-ui/.next/server/chunks/935.js +0 -61
- package/web-ui/web-ui/.next/static/chunks/288-2743815300ed0872.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/399-6887e92996f64590.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/421-cc967c01935826d1.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/526-f0156de7831566b3.js +0 -50
- package/web-ui/web-ui/.next/static/chunks/52b9c8c1-87132a73d61bdb69.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/563-a96f29a2819589cb.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/page-41fba0354cc950be.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/page-d2e03c3ab61af01a.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/page-566036afcc87e4c9.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-73dbcf0078b82ec4.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-8051503193da1baf.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-32c8a853bc8b5d34.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/page-dc8fadb56d6d1e77.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-9b49ef42350ea7bd.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/layout-f5f361f817f90ac9.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/policies/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/policies/page-01b303adf3c8ee56.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-8db3b62245c333a3.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/security/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/security/page-7a4ba61626e0d130.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-0930b49f6ab951bc.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/page-9b04f3441a1a3f96.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/vault/loading-5ae897a85d4509ca.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/vault/page-911a76e75f5a1419.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/_not-found/page-a0f1d816312dcb9c.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/layout-d6718b04dff0ca9c.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/page-9f976e619a11c1dd.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/framework-78529e4152d251a3.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/main-aef82d1ebf75b725.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/main-app-ecdeb13a427413ee.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/pages/_app-cb7c9f431bf725f7.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/pages/_error-fae7cf4a2cfcee1b.js +0 -1
- package/web-ui/web-ui/.next/static/css/298a651f6af38209.css +0 -2
- /package/web-ui/web-ui/.next/static/{pkVZ1_T311YNkJgZOLTx5 → zCQxcf2ZbK52vQeWXgBgs}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,1039 @@
|
|
|
1
|
+
exports.id=184,exports.ids=[184],exports.modules={95:(a,b,c)=>{"use strict";c.d(b,{CF:()=>k,EI:()=>g,Hf:()=>h,Lh:()=>q,P4:()=>j,ZX:()=>n,aD:()=>f,pN:()=>i,rL:()=>o});var d=c(72454),e=c(78666);let f={https:{label:"HTTPS",icon:e.XA,secure:!0},http:{label:"HTTP",icon:e.fC,secure:!1},sftp:{label:"SFTP",icon:e.JM,secure:!0},grpc:{label:"gRPC",icon:e.hF,secure:!0},smtp:{label:"SMTP",icon:e.K$,secure:!0},ws:{label:"WS",icon:e.fC,secure:!1},wss:{label:"WSS",icon:e.XA,secure:!0}};function g(a){return a.some(a=>!f[a].secure)}let h={secrets:{label:"Secrets",tone:"critical",icon:e.RY},pii:{label:"PII",tone:"high",icon:e.Ey},customer:{label:"Customer data",tone:"high",icon:e.ny},source:{label:"Source code",tone:"low",icon:e.lo},telemetry:{label:"Telemetry",tone:"teal",icon:e.BH},logs:{label:"Logs",tone:"default",icon:e.kp},metrics:{label:"Metrics",tone:"teal",icon:e.np},none:{label:"No payload",tone:"default",icon:e.mo}},i={recognized:{label:"Known provider",tone:"success",icon:e.C1},internal:{label:"Your organization",tone:"primary",icon:e.Zu},unverified:{label:"Unverified domain",tone:"high",icon:e._0},ip:{label:"Raw IP address",tone:"critical",icon:e.rX}},j={allowed:{label:"Allowed",tone:"success",icon:e.C1},blocked:{label:"Blocked",tone:"critical",icon:e.pD},review:{label:"Needs review",tone:"high",icon:e._0}},k={provider:"Providers",internal:"Internal & corporate domains",external:"External domains",ip:"Raw IP addresses"},l={raw_ip:"Connects to a raw IP with no reverse DNS",unverified_domain:"Corporate-looking domain not owned by your org",plaintext_transport:"Sends data over a plaintext transport"},m=["raw_ip","unverified_domain","plaintext_transport"];function n(a){let b=m.find(b=>a.includes(b));return b?l[b]:"Needs review"}function o(a){return"ip"===a.kind?d.id.critical:"external"===a.kind||"unverified"===a.trust?d.id.high:d.id.primary}let p=["#2563EB","#7C3AED","#DB2777","#0891B2","#CA8A04","#059669"];function q(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)>>>0;return{short:function(a){let b=a.trim().split(/[\s.\-_/]+/u).filter(Boolean),c=b[0]??"";if(b.length<=1)return(c.slice(0,2)||"?").toUpperCase();let d=b[1]??"";return((c[0]??"")+(d[0]??"")).toUpperCase()||"?"}(a),color:p[b%p.length]??"#2563EB"}}},471:(a,b,c)=>{"use strict";c.d(b,{ThemeToggle:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call ThemeToggle() from the server but ThemeToggle is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/theme/ThemeToggle.tsx","ThemeToggle")},561:(a,b,c)=>{"use strict";c.d(b,{CLOCK_TICK_MS:()=>e,useRenderClock:()=>f});var d=c(17200);let e=3e4;function f(a,b=e){let c=(0,d.useMemo)(()=>(function(a,b){let c,d=b,e=new Set,f=()=>{for(let a of(d=Date.now(),e))a()},g=()=>{"visible"===document.visibilityState&&f()};return{subscribe:b=>(e.add(b),void 0===c&&(d=Date.now(),c=setInterval(f,a),document.addEventListener("visibilitychange",g)),()=>{e.delete(b),0===e.size&&void 0!==c&&(clearInterval(c),c=void 0,document.removeEventListener("visibilitychange",g))}),getSnapshot:()=>d}})(b,a),[b,a]);return(0,d.useSyncExternalStore)(c.subscribe,c.getSnapshot,()=>a)}},2123:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54119,23)),Promise.resolve().then(c.t.bind(c,92646,23)),Promise.resolve().then(c.t.bind(c,976,23)),Promise.resolve().then(c.t.bind(c,33143,23)),Promise.resolve().then(c.t.bind(c,86559,23)),Promise.resolve().then(c.t.bind(c,47159,23)),Promise.resolve().then(c.t.bind(c,94769,23)),Promise.resolve().then(c.t.bind(c,91102,23)),Promise.resolve().then(c.t.bind(c,91063,23))},2266:(a,b,c)=>{"use strict";c.d(b,{ExceptionDetailView:()=>k});var d=c(469),e=c(72454),f=c(17200),g=c(52095),h=c(99846),i=c(73379),j=c(25306);function k({exception:a,onRevoke:b,busy:c,error:k,renderedAt:l}){let[m,n]=(0,f.useState)(""),o=(0,j.rO)(a,l);return(0,d.jsxs)("div",{className:"flex flex-col gap-6 rounded-xl border border-border bg-surface p-5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("span",{className:"font-mono text-sm font-semibold text-text",children:a.id.slice(0,8)}),(0,d.jsx)(i.StateTagFor,{exception:a,now:l}),(0,d.jsx)(i._,{exception:a})]}),"reveal_to_model"===a.capability&&(0,d.jsxs)("div",{className:"rounded-lg border border-sev-critical-fill bg-sev-critical-fill p-3",children:[(0,d.jsx)(h.e,{className:"text-sev-critical-ink",children:"Reveal to model"}),(0,d.jsx)("p",{className:"text-sm text-text-2",children:"While this grant is active, the model can receive this value's raw form at tool boundaries. Every crossing is audited in the vault's de-reference trail."})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-x-6 gap-y-4 md:grid-cols-3",children:[(0,d.jsx)(h.p,{label:"Rule",children:(0,d.jsx)("span",{className:"font-mono text-xs",children:a.ruleId})}),(0,d.jsx)(h.p,{label:"Category",children:a.category}),(0,d.jsx)(h.p,{label:"Approved value",children:(0,d.jsx)("span",{className:"font-mono text-xs",children:a.maskedValue})}),(0,d.jsxs)(h.p,{label:"Scope",children:[j.yr[a.scope],"permanent"===a.scope&&" — until revoked"]}),(0,d.jsx)(h.p,{label:"Expires",children:null===a.expiresAt?"—":(0,g.K)(a.expiresAt,l)}),(0,d.jsxs)(h.p,{label:"Uses",children:[null===a.maxUses?String(a.useCount):`${String(a.useCount)}/${String(a.maxUses)}`,a.lastUsedAt&&` \xb7 last ${(0,g.K)(a.lastUsedAt,l)}`]}),(0,d.jsxs)(h.p,{label:"Created",children:[(0,g.K)(a.createdAt,l)," by ",a.createdBy," via"," ",j.gi[a.createdVia]]}),(0,d.jsx)(h.p,{label:"Key version",children:String(a.keyVersion)})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)(h.e,{children:"Justification"}),(0,d.jsx)("p",{className:"text-sm text-text-2",children:a.justification})]}),null!==a.revokedAt&&(0,d.jsxs)("div",{className:"rounded-lg border border-sev-critical-fill bg-sev-critical-fill p-3",children:[(0,d.jsx)(h.e,{className:"text-sev-critical-ink",children:"Revoked"}),(0,d.jsxs)("p",{className:"text-sm text-text-2",children:[(0,g.K)(a.revokedAt,l)," by ",a.revokedBy??"unknown",a.revokeReason?` — ${a.revokeReason}`:""]})]}),b&&"active"===o&&(0,d.jsxs)("div",{className:"border-t border-border pt-4",children:[(0,d.jsx)(h.e,{children:"Revoke this grant"}),(0,d.jsx)("p",{className:"mb-2 text-xs text-text-3",children:"Revocation is immediate and terminal; the row is retained as audit evidence."}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(e.pd,{value:m,onChange:a=>{n(a.target.value)},placeholder:"Reason (recorded in the audit trail)",className:"max-w-sm"}),(0,d.jsx)(e.$n,{variant:"solid",tone:"danger",size:"sm",disabled:c,onClick:()=>{b(m.trim())},children:"Revoke"})]}),k&&(0,d.jsx)("p",{className:"mt-2 text-xs text-sev-critical-ink",children:k})]})]})}},2870:(a,b,c)=>{"use strict";c.d(b,{ExceptionsTableView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call ExceptionsTableView() from the server but ExceptionsTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/ExceptionsTableView.tsx","ExceptionsTableView")},2960:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ai-tc/ai-tc/web-ui/app/(app)/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/web-ui/app/(app)/error.tsx","default")},4120:(a,b,c)=>{"use strict";c.d(b,{R:()=>f,j:()=>d});let d=new Intl.NumberFormat("en-US"),e=new Intl.NumberFormat("en-US",{notation:"compact"});function f(a){return e.format(a).toLowerCase()}},5301:(a,b,c)=>{"use strict";c.d(b,{FI:()=>aO,WR:()=>aM,iu:()=>b_,KS:()=>a2,tI:()=>a0,gt:()=>ca,Yp:()=>Z,eS:()=>b8,zS:()=>cg,Ji:()=>b6,XK:()=>l,$i:()=>a7,y9:()=>b7,cn:()=>b9,ls:()=>cd,xR:()=>a5,VL:()=>a1});var d=c(73024),e=c(76760),f=c(58692);c(75919);let g="aka.db";function h(a,b){if(!function(a){try{return(0,d.lstatSync)(a).isSymbolicLink()}catch{return!1}}(a))try{(0,d.chmodSync)(a,b)}catch{}}function i(a,b=!1){(0,d.mkdirSync)(a,{recursive:b,mode:448})}function j(a){return[`${a}-wal`,`${a}-shm`,`${a}-journal`]}function k(a){for(let b of[a,...j(a)])h(b,384)}function l(a,b){let c=function(a,b){let c,g,h=(0,e.join)(a,f.leE),i=function(a){let b=(0,d.lstatSync)(a,{throwIfNoEntry:!1});if(void 0===b)return"absent";if(b.isSymbolicLink())return"untrusted";let c=(0,d.statSync)(a,{throwIfNoEntry:!1});if(void 0===c)return"absent";let e=process.getuid?.();if(void 0!==e&&c.uid!==e)return"untrusted";if("win32"!==process.platform&&(511&c.mode)!=384)try{(0,d.chmodSync)(a,384)}catch{return"untrusted"}return"ok"}(h);if("absent"===i)return{usable:!1,reason:"absent"};if("untrusted"===i)return{usable:!1,reason:"untrusted-file"};try{c=(0,d.readFileSync)(h,"utf8")}catch(a){return{usable:!1,reason:"ENOENT"===a.code?"absent":"unreadable"}}try{g=JSON.parse(c)}catch{return{usable:!1,reason:"malformed"}}let j=f.yi_.safeParse(g);return j.success?(0,f.lGs)(j.data.endpoint)?void 0!==b&&b.endpoint!==j.data.endpoint?{usable:!1,reason:"endpoint-mismatch",credentialEndpoint:j.data.endpoint,settingsEndpoint:b.endpoint}:{usable:!0,credential:j.data}:{usable:!1,reason:"unsafe-endpoint"}:{usable:!1,reason:"malformed"}}(a,b);return c.usable?{usable:!0}:c}var m=c(77598),n=c(79868);function o(a){return(0,m.createHash)("sha256").update(a).digest("hex")}function p(a){return o((0,f.tTV)(["source_project",a]))}function q(a,b){return o((0,f.tTV)(["inspection_definition",a,b]))}function r(a,b){return`${a}.${b}.${String(Date.now())}.${(0,m.randomUUID)().slice(0,8)}.bak`}let s=".partial",t=`.bak${s}`,u="copy";function v(a){let b,c=(0,e.dirname)(a),f=`${(0,e.basename)(a)}.`;try{b=(0,d.readdirSync)(c)}catch{return}for(let a of b){if(!a.startsWith(f)||!a.endsWith(t))continue;let b=(0,e.join)(c,a);try{let a=function(a){for(let b of[(0,e.join)(a,u),a])try{return Date.now()-(0,d.statSync)(b).mtimeMs}catch{}return null}(b);null!==a&&a>3e5&&(0,d.rmSync)(b,{recursive:!0,force:!0})}catch{}}}function w(a,b){let{stage:c,copy:f}=function(a){let b=`${a}${s}`;return(0,d.rmSync)(b,{recursive:!0,force:!0}),i(b),h(b,448),{stage:b,copy:(0,e.join)(b,u)}}(b);try{a.prepare("VACUUM INTO ?").run(f),h(f,384),(0,d.renameSync)(f,b)}catch(a){try{(0,d.rmSync)(c,{recursive:!0,force:!0})}catch{}throw a}try{(0,d.rmSync)(c,{recursive:!0,force:!0})}catch{}}let x=new TextDecoder;function y(a){return null===a?null:"string"==typeof a?a.toLowerCase():"number"==typeof a||"bigint"==typeof a?String(a).toLowerCase():x.decode(a).toLowerCase()}function z(a){return a.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_")}function A(a){return Array.from({length:a},()=>"?").join(", ")}function B(a){return`%${z(a)}%`}function C(a){return`(${a.map(a=>`${a} LIKE ? ESCAPE '\\'`).join(" OR ")})`}let D=0;function E(a,b,c="DEFERRED"){if(a.isTransaction){let c=`aka_sp_${String(D+=1)}`;a.exec(`SAVEPOINT ${c}`);try{b(),a.exec(`RELEASE ${c}`)}catch(b){try{a.exec(`ROLLBACK TO ${c}`),a.exec(`RELEASE ${c}`)}catch{}throw b}return}a.exec("IMMEDIATE"===c?"BEGIN IMMEDIATE":"BEGIN");try{b(),a.exec("COMMIT")}catch(b){try{a.exec("ROLLBACK")}catch{}throw b}}function F(a,b,c="DEFERRED"){let d=a.isTransaction;try{return E(a,b,c),!0}catch(b){if(!a.isTransaction&&d)throw b;return!1}}function G(a){process.stderr.write(`[aka] ${a}
|
|
2
|
+
`)}function H(a,b,c){return void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = ? AND name = ? LIMIT 1").get(b,c)}function I(a,b){return H(a,"index",b)}function J(a,b,c){let d=c?.includeGenerated?"table_xinfo":"table_info";return a.prepare(`PRAGMA ${d}(${b})`).all().map(a=>a.name)}function K(a,b){return void 0===b?a.all():Array.isArray(b)?a.all(...b):a.all(b)}function L(a,b){return void 0===b?a.get():Array.isArray(b)?a.get(...b):a.get(b)}function M(a){return 1===a||!0===a}function N(a){let b={};for(let[c,d]of Object.entries(a))b[c]=void 0===d?null:d;return b}function O(a,b,c){return L(a.prepare(b),c)?.n??0}function P(a,b,c){let d=new Map;for(let e of K(a.prepare(b),c))d.set(e.k,e.n);return d}function Q(a,b){let c=[];for(let d of a)try{c.push(b(d))}catch{}return c}let R=["prompt","response","tool_use"],S=R.map(a=>`'${a}'`).join(", "),T=["session","llm_call","tool_call"],U=T.map(a=>`'${a}'`).join(", "),V=[...T,...R],W=V.map(a=>`'${a}'`).join(", "),X=`
|
|
3
|
+
SUM(CASE WHEN synced_at IS NULL AND sync_claimed_at IS NULL THEN 1 ELSE 0 END) AS queued,
|
|
4
|
+
SUM(CASE WHEN synced_at IS NULL AND sync_claimed_at IS NOT NULL THEN 1 ELSE 0 END) AS inProgress,
|
|
5
|
+
SUM(CASE WHEN synced_at > 0 THEN 1 ELSE 0 END) AS synced,
|
|
6
|
+
SUM(CASE WHEN synced_at IS NOT NULL AND synced_at <= 0
|
|
7
|
+
AND sync_failure = 'deployment_refused' THEN 1 ELSE 0 END) AS refused,
|
|
8
|
+
SUM(CASE WHEN synced_at IS NOT NULL AND synced_at <= 0
|
|
9
|
+
AND sync_failure = 'detached_undelivered' THEN 1 ELSE 0 END) AS detached,
|
|
10
|
+
-- Spelled as what it INCLUDES rather than what it excludes, so a reason
|
|
11
|
+
-- added later lands in no bucket and fails the sum assertion, instead
|
|
12
|
+
-- of silently joining this one.
|
|
13
|
+
SUM(CASE WHEN synced_at IS NOT NULL AND synced_at <= 0
|
|
14
|
+
AND (sync_failure IS NULL OR sync_failure = 'payload_invalid')
|
|
15
|
+
THEN 1 ELSE 0 END) AS failed,
|
|
16
|
+
COUNT(*) AS total`,Y=`
|
|
17
|
+
WHERE event_type IN (${W})
|
|
18
|
+
AND (
|
|
19
|
+
event_type IN (${U})
|
|
20
|
+
OR synced_at IS NOT NULL
|
|
21
|
+
OR outbox_owed = 1
|
|
22
|
+
)`;function Z(a,b){if(void 0===a)return!1;let{ownerPid:c,heartbeatAt:d}=a;return null!==c&&null!==d&&d>=b-6e4&&d<=b}let $=`id,
|
|
23
|
+
parent_id AS parentId,
|
|
24
|
+
root_session_id AS rootSessionId,
|
|
25
|
+
event_type AS eventType,
|
|
26
|
+
host_id AS hostId,
|
|
27
|
+
harness_id AS harnessId,
|
|
28
|
+
source_project_id AS sourceProjectId,
|
|
29
|
+
started_at AS startedAt,
|
|
30
|
+
ended_at AS endedAt,
|
|
31
|
+
severity,
|
|
32
|
+
priority,
|
|
33
|
+
content,
|
|
34
|
+
content_hash AS contentHash,
|
|
35
|
+
attributes`;class _{constructor(a){this.db=a,this.ensureRowStmt=a.prepare("INSERT OR IGNORE INTO history_sync (id) VALUES (1)"),this.sessionsStmt=a.prepare(`SELECT COALESCE(root_session_id, id) AS sessionId, MIN(started_at) AS earliest
|
|
36
|
+
FROM audit_events
|
|
37
|
+
WHERE synced_at IS NULL
|
|
38
|
+
AND event_type IN (${U})
|
|
39
|
+
AND started_at < :before
|
|
40
|
+
GROUP BY sessionId
|
|
41
|
+
ORDER BY earliest
|
|
42
|
+
LIMIT :limit`),this.rowsStmt=a.prepare(`SELECT ${$}
|
|
43
|
+
FROM audit_events
|
|
44
|
+
WHERE synced_at IS NULL
|
|
45
|
+
AND event_type IN (${U})
|
|
46
|
+
AND started_at < :before
|
|
47
|
+
AND COALESCE(root_session_id, id) = :sessionId
|
|
48
|
+
ORDER BY (event_type = 'session') DESC, started_at
|
|
49
|
+
LIMIT :limit`),this.captureRowsStmt=a.prepare(`SELECT ${$}
|
|
50
|
+
FROM audit_events
|
|
51
|
+
WHERE synced_at IS NULL
|
|
52
|
+
AND sync_claimed_at IS NULL
|
|
53
|
+
AND outbox_owed = 1
|
|
54
|
+
AND event_type IN (${S})
|
|
55
|
+
AND started_at < :before
|
|
56
|
+
ORDER BY started_at
|
|
57
|
+
LIMIT :limit`),this.markOwedStmt=a.prepare("UPDATE audit_events SET outbox_owed = 1 WHERE id = :id AND synced_at IS NULL"),this.markCaptureBacklogOwedStmt=a.prepare(`UPDATE audit_events SET outbox_owed = 1
|
|
58
|
+
WHERE synced_at IS NULL
|
|
59
|
+
AND event_type IN (${S})
|
|
60
|
+
AND started_at < :before`),this.stampStmt=a.prepare(`UPDATE audit_events
|
|
61
|
+
SET synced_at = :at,
|
|
62
|
+
sync_claimed_at = NULL,
|
|
63
|
+
sync_failed_at = :failedAt,
|
|
64
|
+
sync_failure = :failure
|
|
65
|
+
WHERE id = :id`),this.claimRowStmt=a.prepare("UPDATE audit_events SET sync_claimed_at = :at WHERE id = :id AND synced_at IS NULL"),this.releaseRowStmt=a.prepare("UPDATE audit_events SET sync_claimed_at = NULL WHERE id = :id"),this.releaseStaleClaimsStmt=a.prepare(`UPDATE audit_events SET sync_claimed_at = NULL
|
|
66
|
+
WHERE sync_claimed_at IS NOT NULL AND sync_claimed_at < :staleBefore`),this.partitionStmt=a.prepare(`SELECT${X}
|
|
67
|
+
FROM audit_events${Y}`),this.partitionByKindStmt=a.prepare(`SELECT event_type AS kind,${X}
|
|
68
|
+
FROM audit_events INDEXED BY idx_audit_events_sync${Y}
|
|
69
|
+
GROUP BY event_type`),this.countsStmt=a.prepare(`SELECT
|
|
70
|
+
SUM(CASE WHEN synced_at IS NULL AND started_at < :before THEN 1 ELSE 0 END) AS pending,
|
|
71
|
+
SUM(CASE WHEN synced_at > 0 THEN 1 ELSE 0 END) AS sent,
|
|
72
|
+
SUM(CASE WHEN synced_at = ${String(-1)}
|
|
73
|
+
AND (sync_failure IS NULL OR sync_failure = 'payload_invalid')
|
|
74
|
+
THEN 1 ELSE 0 END) AS skipped,
|
|
75
|
+
SUM(CASE WHEN synced_at = ${String(-1)}
|
|
76
|
+
AND sync_failure = 'deployment_refused' THEN 1 ELSE 0 END) AS refused,
|
|
77
|
+
SUM(CASE WHEN synced_at = ${String(-1)}
|
|
78
|
+
AND sync_failure = 'detached_undelivered' THEN 1 ELSE 0 END) AS detached
|
|
79
|
+
FROM audit_events
|
|
80
|
+
WHERE event_type IN (${U})`),this.captureSkipCountStmt=a.prepare(`SELECT COUNT(*) AS skipped
|
|
81
|
+
FROM audit_events
|
|
82
|
+
WHERE synced_at = ${String(-1)}
|
|
83
|
+
AND event_type IN (${S})`),this.fingerprintStmt=a.prepare(`SELECT endpoint_fingerprint AS fingerprint, backlog_before AS backlogBefore
|
|
84
|
+
FROM history_sync WHERE id = 1`),this.setFingerprintStmt=a.prepare(`UPDATE history_sync
|
|
85
|
+
SET endpoint_fingerprint = :fingerprint, backlog_before = :backlogBefore
|
|
86
|
+
WHERE id = 1`),this.disownCapturesStmt=a.prepare(`UPDATE audit_events SET outbox_owed = NULL
|
|
87
|
+
WHERE outbox_owed IS NOT NULL
|
|
88
|
+
AND event_type IN (${S})
|
|
89
|
+
AND started_at < :attachedAt`),this.rearmStmt=a.prepare(`UPDATE audit_events
|
|
90
|
+
SET synced_at = NULL, sync_failed_at = NULL, sync_failure = NULL
|
|
91
|
+
WHERE (synced_at > 0
|
|
92
|
+
OR sync_failure IN ('deployment_refused', 'detached_undelivered'))
|
|
93
|
+
AND event_type IN (${U})`),this.claimStmt=a.prepare(`UPDATE history_sync
|
|
94
|
+
SET owner_pid = :pid, owner_host = :host, acquired_at = :now, heartbeat_at = :now
|
|
95
|
+
WHERE id = 1
|
|
96
|
+
AND (owner_pid IS NULL
|
|
97
|
+
OR heartbeat_at IS NULL
|
|
98
|
+
OR heartbeat_at < :staleBefore
|
|
99
|
+
OR heartbeat_at > :now)`),this.heartbeatStmt=a.prepare("UPDATE history_sync SET heartbeat_at = :now WHERE id = 1 AND owner_pid = :pid"),this.releaseStmt=a.prepare(`UPDATE history_sync
|
|
100
|
+
SET owner_pid = NULL, owner_host = NULL, acquired_at = NULL, heartbeat_at = NULL
|
|
101
|
+
WHERE id = 1 AND owner_pid = :pid`),this.closeWindowStmt=a.prepare(`UPDATE audit_events
|
|
102
|
+
SET synced_at = ${String(-1)},
|
|
103
|
+
sync_failed_at = :at,
|
|
104
|
+
sync_failure = 'detached_undelivered'
|
|
105
|
+
WHERE synced_at IS NULL
|
|
106
|
+
AND event_type IN (${U})
|
|
107
|
+
AND started_at >= :attachedAt`),this.releaseBoundaryStmt=a.prepare("UPDATE history_sync SET backlog_before = NULL WHERE id = 1"),this.freezeBoundaryStmt=a.prepare("UPDATE history_sync SET backlog_before = :backlogBefore WHERE id = 1"),this.leaseStmt=a.prepare(`SELECT owner_pid AS ownerPid, owner_host AS ownerHost,
|
|
108
|
+
acquired_at AS acquiredAt, heartbeat_at AS heartbeatAt
|
|
109
|
+
FROM history_sync WHERE id = 1`),this.inspectionsStmt=a.prepare(`SELECT d.rule_id AS ruleId,
|
|
110
|
+
d.name AS ruleName,
|
|
111
|
+
d.version AS ruleVersion,
|
|
112
|
+
d.category AS category,
|
|
113
|
+
d.severity AS severity,
|
|
114
|
+
f.span_start AS spanStart,
|
|
115
|
+
f.span_end AS spanEnd,
|
|
116
|
+
f.masked_match AS maskedMatch,
|
|
117
|
+
f.action_taken AS actionTaken,
|
|
118
|
+
f.confidence AS confidence
|
|
119
|
+
FROM inspection_findings f
|
|
120
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
121
|
+
WHERE f.audit_event_id = :auditEventId
|
|
122
|
+
ORDER BY f.span_start, f.id`)}inspectionsFor(a){return K(this.inspectionsStmt,{auditEventId:a})}pendingSessions(a,b){return K(this.sessionsStmt,{limit:a,before:b}).map(a=>a.sessionId)}pendingRows(a,b,c){return K(this.rowsStmt,{sessionId:a,limit:b,before:c})}pendingCaptureRows(a,b){return K(this.captureRowsStmt,{limit:a,before:b})}markCaptureOwed(a){this.markOwedStmt.run({id:a})}markCaptureBacklogOwed(a){return Number(this.markCaptureBacklogOwedStmt.run({before:a}).changes)}markSynced(a,b){this.stampAll(a,b,null)}markSkipped(a,b){this.stampAll(a,-1,"payload_invalid",b)}markRefused(a,b){this.stampAll(a,-1,"deployment_refused",b)}eachInTransaction(a,b){0!==a.length&&E(this.db,()=>{for(let c of a)b(c)},"IMMEDIATE")}stampAll(a,b,c,d){if(0===a.length)return;let e=null===c?null:d??null;E(this.db,()=>{for(let d of a)this.stampStmt.run({at:b,failedAt:e,failure:c,id:d})},"IMMEDIATE")}claimRows(a,b){this.eachInTransaction(a,a=>this.claimRowStmt.run({at:b,id:a}))}releaseRows(a){this.eachInTransaction(a,a=>this.releaseRowStmt.run({id:a}))}releaseStaleClaims(a){return Number(this.releaseStaleClaimsStmt.run({staleBefore:a}).changes)}partitionByKind(){return K(this.partitionByKindStmt,{}).map(a=>({kind:a.kind,queued:a.queued??0,inProgress:a.inProgress??0,synced:a.synced??0,failed:a.failed??0,refused:a.refused??0,detached:a.detached??0,total:a.total??0}))}partition(){let a=L(this.partitionStmt,{});return{queued:a?.queued??0,inProgress:a?.inProgress??0,synced:a?.synced??0,failed:a?.failed??0,refused:a?.refused??0,detached:a?.detached??0,total:a?.total??0}}counts(a){let b=L(this.countsStmt,{before:a}),c=L(this.captureSkipCountStmt);return{pending:b?.pending??0,sent:b?.sent??0,skipped:b?.skipped??0,refused:b?.refused??0,detached:b?.detached??0,capturesSkipped:c?.skipped??0}}deployment(){let a=L(this.fingerprintStmt);return{fingerprint:a?.fingerprint??void 0,backlogBefore:a?.backlogBefore??void 0}}rearmFor(a,b,c){this.ensureRowStmt.run(),E(this.db,()=>{let d=L(this.fingerprintStmt)?.fingerprint;this.rearmStmt.run(),null!=d&&d!==a&&this.disownCapturesStmt.run({attachedAt:b}),void 0!==c&&this.markCaptureBacklogOwedStmt.run({before:c}),this.setFingerprintStmt.run({fingerprint:a,backlogBefore:b})},"IMMEDIATE")}closeAttachedWindow(a,b){this.ensureRowStmt.run(),E(this.db,()=>{let c=L(this.fingerprintStmt),d=c?.backlogBefore??a;this.closeWindowStmt.run({at:b,attachedAt:d}),this.releaseBoundaryStmt.run()},"IMMEDIATE")}freezeBoundary(a){this.ensureRowStmt.run(),this.freezeBoundaryStmt.run({backlogBefore:a})}claim(a,b,c,d){this.ensureRowStmt.run();let e=!1;return E(this.db,()=>{e=1===this.claimStmt.run({pid:a,host:b,now:c,staleBefore:c-d}).changes},"IMMEDIATE"),e}heartbeat(a,b){this.heartbeatStmt.run({now:b,pid:a})}release(a){this.releaseStmt.run({pid:a})}lease(){return L(this.leaseStmt)}}let aa=f.AJV.options;function ab(a){return"column"===a.kind?`column ${a.table}.${a.name}`:`table ${a.name}`}function ac(a){return a.split(/-->\s*statement-breakpoint/).map(a=>a.trim()).filter(a=>a.length>0)}let ad="0014_drop_legacy_events_findings";function ae(a){let b=!1,c=[];for(let d of["events","findings"])try{let e=a.prepare(`SELECT count(*) AS n, ifnull(max(rowid), -1) AS hi FROM ${d}`).get();if(void 0===e){b=!0,c.push(`${d}:unreadable`);continue}e.n>0&&(b=!0),c.push(`${d}:${String(e.n)}:${String(e.hi)}`)}catch{b=!0,c.push(`${d}:unreadable`)}return{holdsRows:b,mark:c.join("|")}}let af=[{name:"input_tokens",ddl:"ALTER TABLE audit_events ADD COLUMN input_tokens integer GENERATED ALWAYS AS (json_extract(attributes, '$.input_tokens')) VIRTUAL"},{name:"output_tokens",ddl:"ALTER TABLE audit_events ADD COLUMN output_tokens integer GENERATED ALWAYS AS (json_extract(attributes, '$.output_tokens')) VIRTUAL"},{name:"cache_creation_input_tokens",ddl:"ALTER TABLE audit_events ADD COLUMN cache_creation_input_tokens integer GENERATED ALWAYS AS (json_extract(attributes, '$.cache_creation_input_tokens')) VIRTUAL"},{name:"cache_read_input_tokens",ddl:"ALTER TABLE audit_events ADD COLUMN cache_read_input_tokens integer GENERATED ALWAYS AS (json_extract(attributes, '$.cache_read_input_tokens')) VIRTUAL"},{name:"model",ddl:"ALTER TABLE audit_events ADD COLUMN model text GENERATED ALWAYS AS (json_extract(attributes, '$.model')) VIRTUAL"},{name:"provider",ddl:"ALTER TABLE audit_events ADD COLUMN provider text GENERATED ALWAYS AS (json_extract(attributes, '$.provider')) VIRTUAL"}];function ag(a,b,c,d){let e=function(a,b){let c=a.prepare("SELECT last_rowid AS lastRowid FROM legacy_copy_watermark WHERE source = ?").get(b);return c?.lastRowid??0}(a,b),f=0;for(;f<1e3;){let g=c.all(e,200);if(0===g.length||(E(a,()=>{var c;d(g),e=g[g.length-1]?.rowid??e,c=e,a.prepare(`INSERT INTO legacy_copy_watermark (source, last_rowid) VALUES (?, ?)
|
|
123
|
+
ON CONFLICT(source) DO UPDATE SET last_rowid = excluded.last_rowid`).run(b,c)},"IMMEDIATE"),f+=g.length,g.length<200))return!0}return!1}function ah(a,b){if(null==a)return b;try{return JSON.parse(a)}catch{return b}}function ai(a){if(null!=a)try{let b=JSON.parse(a);if("object"==typeof b&&null!==b)return b}catch{}}function aj(a){return Buffer.from(JSON.stringify(a)).toString("base64url")}function ak(a){let b=ai(Buffer.from(a,"base64url").toString("utf8"));return void 0!==b&&"startedAtMs"in b&&"id"in b&&Number.isInteger(b.startedAtMs)&&"string"==typeof b.id?b:null}function al(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return"UTC"}}let am={session:"session",prompt:"prompt",response:"response",tool_call:"tool",hook:"hook",detection:"detection",share:"share",permission:"permission",commit:"commit",error:"error",active:"active"},an=Object.keys(am).map(a=>`'${a}'`).join(", ");function ao(a){if(!a)return[];let b=ah(a,null);return Array.isArray(b)?b:[]}let ap=f.tLs.ClaudeCode;function aq(a){let b=f.TUN.safeParse(a);return b.success?b.data:ap}function ar(a,b,c){let d=Math.max(a.started_at,b.lastActivityMs),{status:e,endedAtMs:g}=function(a,b,c){if(a.status){let b=f.PhW.safeParse(a.status);if(b.success)return{status:b.data,endedAtMs:a.ended_at}}return null!==a.ended_at?{status:"completed",endedAtMs:a.ended_at}:b>=c-18e5?{status:"active",endedAtMs:null}:{status:"completed",endedAtMs:b}}(a,d,c);return{id:a.id,harness:aq(a.harness),title:a.title||a.project||a.repo||`Session ${a.id.slice(0,8)}`,project:a.project??"",repo:a.repo??"",branches:ao(a.branches),startedAt:(0,f.q11)(a.started_at),endedAt:null===g?null:(0,f.q11)(g),status:e,turns:b.turns,findings:b.findings,shares:b.shares}}function as(a){let b=am[a.event_type];if(!b)return null;let c=a.severity?f.U7X.safeParse(a.severity):null,d=a.link?f.Itg.safeParse(a.link):null;return{id:a.id,occurredAt:(0,f.q11)(a.started_at),kind:b,title:a.title??"",detail:a.detail??"",tool:a.tool,severity:c?.success?c.data:null,link:d?.success?d.data:null,targetId:a.target_id,internal:M(a.internal),flagged:M(a.flagged),bodyExpired:null!==a.content_expired_at&&(a.title??"")===""}}let at=`
|
|
124
|
+
id,
|
|
125
|
+
event_type,
|
|
126
|
+
started_at,
|
|
127
|
+
coalesce(content, json_extract(attributes, '$.tool_name')) AS title,
|
|
128
|
+
content_expired_at,
|
|
129
|
+
coalesce(json_extract(attributes, '$.detail'), json_extract(attributes, '$.target')) AS detail,
|
|
130
|
+
coalesce(json_extract(attributes, '$.tool_name'), json_extract(attributes, '$.tool')) AS tool,
|
|
131
|
+
json_extract(attributes, '$.severity') AS severity,
|
|
132
|
+
json_extract(attributes, '$.link') AS link,
|
|
133
|
+
json_extract(attributes, '$.targetId') AS target_id,
|
|
134
|
+
json_extract(attributes, '$.internal') AS internal,
|
|
135
|
+
json_extract(attributes, '$.flagged') AS flagged`,au=`
|
|
136
|
+
SELECT root_session_id AS sessionId,
|
|
137
|
+
provider,
|
|
138
|
+
model,
|
|
139
|
+
service_tier AS serviceTier,
|
|
140
|
+
coalesce(sum(input_tokens), 0) AS inputTokens,
|
|
141
|
+
coalesce(sum(output_tokens), 0) AS outputTokens,
|
|
142
|
+
coalesce(sum(cache_creation_input_tokens), 0) AS cacheCreationTokens,
|
|
143
|
+
coalesce(sum(cache_read_input_tokens), 0) AS cacheReadTokens,
|
|
144
|
+
coalesce(sum(ephemeral_1h_input_tokens), 0) AS ephemeral1hTokens,
|
|
145
|
+
coalesce(sum(ephemeral_5m_input_tokens), 0) AS ephemeral5mTokens,
|
|
146
|
+
coalesce(sum(web_search_requests), 0) AS webSearchRequests`,av="event_type = 'llm_call' AND attributes IS NOT NULL AND root_session_id IS NOT NULL",aw="GROUP BY root_session_id, provider, model, service_tier";function ax(a){return a.map(a=>{let b={input_tokens:a.inputTokens,output_tokens:a.outputTokens,cache_creation_input_tokens:a.cacheCreationTokens,cache_read_input_tokens:a.cacheReadTokens,ephemeral_1h_input_tokens:a.ephemeral1hTokens,ephemeral_5m_input_tokens:a.ephemeral5mTokens,web_search_requests:a.webSearchRequests};return null!==a.provider&&(b.provider=a.provider),null!==a.model&&(b.model=a.model),null!==a.serviceTier&&(b.service_tier=a.serviceTier),{sessionId:a.sessionId,attributes:b}})}let ay="event_type = 'session'",az=`EXISTS (
|
|
147
|
+
SELECT 1 FROM audit_events c
|
|
148
|
+
WHERE c.root_session_id = audit_events.id
|
|
149
|
+
AND c.event_type NOT IN ('hook', 'config_scan', 'capture_status'))`;class aA{constructor(a,b=()=>Date.now()){this.db=a,this.now=b}stats(a){let{startMs:b,endMs:c}=function a(b,c){let d;try{d=new Intl.DateTimeFormat("en-US",{timeZone:b,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"}).formatToParts(new Date(c))}catch{let d=al();return b===d?function(a){let b=864e5*Math.floor(a/864e5);return{startMs:b,endMs:b+864e5}}(c):a(d,c)}let e=Object.fromEntries(d.map(a=>[a.type,a.value])),f=Number(e.year),g=Number(e.month),h=Number(e.day),i=Number(e.hour),j=Date.UTC(f,g-1,h,i,Number(e.minute),Number(e.second))-c,k=Date.UTC(f,g-1,h,0,0,0)-j;return{startMs:k,endMs:k+864e5}}(a??al(),this.now()),d=O(this.db,`SELECT count(*) AS n FROM audit_events
|
|
150
|
+
WHERE ${ay} AND started_at >= ? AND started_at < ?
|
|
151
|
+
AND ${az}`,[b,c]),e=this.now()-18e5,f=O(this.db,`SELECT count(*) AS n FROM audit_events s INDEXED BY sqlite_autoindex_audit_events_1
|
|
152
|
+
WHERE s.event_type = 'session' AND s.ended_at IS NULL
|
|
153
|
+
AND s.id IN (
|
|
154
|
+
SELECT id FROM audit_events WHERE event_type = 'session' AND started_at >= ?
|
|
155
|
+
UNION
|
|
156
|
+
SELECT root_session_id FROM audit_events INDEXED BY idx_audit_started_at
|
|
157
|
+
WHERE started_at >= ? AND event_type <> 'capture_status'
|
|
158
|
+
UNION
|
|
159
|
+
SELECT root_session_id FROM audit_events INDEXED BY idx_audit_ended_at
|
|
160
|
+
WHERE ended_at >= ? AND event_type <> 'capture_status')`,[e,e,e]),g=O(this.db,`SELECT count(*) AS n FROM audit_events
|
|
161
|
+
WHERE event_type = 'tool_call' AND started_at >= ? AND started_at < ?`,[b,c]);return Promise.resolve({sessionsToday:d,liveNow:f,toolCallsToday:g,findingsToday:O(this.db,`SELECT count(*) AS n FROM inspection_findings f
|
|
162
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
163
|
+
WHERE e.started_at >= ? AND e.started_at < ?`,[b,c]),egressToday:O(this.db,`SELECT count(DISTINCT json_extract(attributes, '$.destination')) AS n
|
|
164
|
+
FROM audit_events
|
|
165
|
+
WHERE event_type = 'share' AND started_at >= ? AND started_at < ?`,[b,c])})}listSessions(a){let b=a.cursor?ak(a.cursor):null,c=a.to?(0,f.I8t)(a.to):this.now(),d=a.from?(0,f.I8t)(a.from):void 0,e=[ay],g=[];if(a.harness&&a.harness.length>0&&(e.push(`coalesce(json_extract(attributes, '$.harness'), '${ap}') IN (${A(a.harness.length)})`),g.push(...a.harness)),void 0!==d&&(e.push("started_at >= ?"),g.push(d)),e.push("started_at <= ?"),g.push(c),a.q){let b=B(a.q);e.push(`(content LIKE ? ESCAPE '\\'
|
|
166
|
+
OR json_extract(attributes, '$.project') LIKE ? ESCAPE '\\'
|
|
167
|
+
OR json_extract(attributes, '$.repo') LIKE ? ESCAPE '\\'
|
|
168
|
+
OR json_extract(attributes, '$.branches') LIKE ? ESCAPE '\\'
|
|
169
|
+
OR EXISTS (
|
|
170
|
+
SELECT 1 FROM audit_events d
|
|
171
|
+
WHERE d.root_session_id = audit_events.id
|
|
172
|
+
AND (d.content LIKE ? ESCAPE '\\'
|
|
173
|
+
OR coalesce(json_extract(d.attributes, '$.detail'),
|
|
174
|
+
json_extract(d.attributes, '$.target')) LIKE ? ESCAPE '\\')))`),g.push(b,b,b,b,b,b)}let h=O(this.db,`SELECT count(*) AS n FROM audit_events
|
|
175
|
+
WHERE ${[...e,`NOT ${az}`].join(" AND ")}`,g);a.excludeEmpty&&e.push(az),b&&(e.push("(started_at < ? OR (started_at = ? AND id < ?))"),g.push(b.startedAtMs,b.startedAtMs,b.id));let i=a.limit,j=K(this.db.prepare(`SELECT id,
|
|
176
|
+
json_extract(attributes, '$.harness') AS harness,
|
|
177
|
+
content AS title,
|
|
178
|
+
json_extract(attributes, '$.project') AS project,
|
|
179
|
+
json_extract(attributes, '$.repo') AS repo,
|
|
180
|
+
json_extract(attributes, '$.branches') AS branches,
|
|
181
|
+
json_extract(attributes, '$.status') AS status,
|
|
182
|
+
started_at,
|
|
183
|
+
ended_at
|
|
184
|
+
FROM audit_events
|
|
185
|
+
WHERE ${e.join(" AND ")}
|
|
186
|
+
ORDER BY started_at DESC, id DESC
|
|
187
|
+
LIMIT ?`),[...g,i+1]),k=j.length>i,l=k?j.slice(0,i):j,m=this.rollupsFor(l.map(a=>a.id)),n=this.now(),o=l.map(a=>ar(a,m.get(a.id)??{turns:0,findings:0,shares:0,lastActivityMs:0},n)),p=l[l.length-1];return Promise.resolve({items:o,nextCursor:k&&p?aj({startedAtMs:p.started_at,id:p.id}):null,emptyCount:h})}getSession(a){let b=L(this.db.prepare(`SELECT id,
|
|
188
|
+
json_extract(attributes, '$.harness') AS harness,
|
|
189
|
+
content AS title,
|
|
190
|
+
json_extract(attributes, '$.project') AS project,
|
|
191
|
+
json_extract(attributes, '$.repo') AS repo,
|
|
192
|
+
json_extract(attributes, '$.branches') AS branches,
|
|
193
|
+
json_extract(attributes, '$.status') AS status,
|
|
194
|
+
json_extract(attributes, '$.host') AS host,
|
|
195
|
+
json_extract(attributes, '$.cwd') AS cwd,
|
|
196
|
+
json_extract(attributes, '$.models') AS models,
|
|
197
|
+
json_extract(attributes, '$.version') AS version,
|
|
198
|
+
json_extract(attributes, '$.files') AS files,
|
|
199
|
+
started_at,
|
|
200
|
+
ended_at
|
|
201
|
+
FROM audit_events
|
|
202
|
+
WHERE id = ? AND event_type = 'session'
|
|
203
|
+
LIMIT 1`),[a]);if(!b)return Promise.resolve(null);let c=K(this.db.prepare(`SELECT ${at}
|
|
204
|
+
FROM audit_events
|
|
205
|
+
WHERE (id = ? OR root_session_id = ?) AND event_type IN (${an})
|
|
206
|
+
ORDER BY started_at ASC, id ASC`),[a,a]).map(as).filter(a=>null!==a),d=L(this.db.prepare(`SELECT
|
|
207
|
+
coalesce(sum(input_tokens), 0) AS input,
|
|
208
|
+
coalesce(sum(output_tokens), 0) AS output,
|
|
209
|
+
coalesce(sum(cache_creation_input_tokens), 0) AS cache_creation,
|
|
210
|
+
coalesce(sum(cache_read_input_tokens), 0) AS cache_read
|
|
211
|
+
FROM audit_events INDEXED BY idx_audit_session_type
|
|
212
|
+
WHERE root_session_id = ? AND event_type = 'llm_call'`),[a])??{input:0,output:0,cache_creation:0,cache_read:0},e=L(this.db.prepare(`SELECT model, provider FROM audit_events INDEXED BY idx_audit_session_type
|
|
213
|
+
WHERE root_session_id = ? AND event_type = 'llm_call'
|
|
214
|
+
ORDER BY started_at ASC, id ASC
|
|
215
|
+
LIMIT 1`),[a]),f=K(this.db.prepare(`SELECT coalesce(json_extract(attributes, '$.tool_name'), json_extract(attributes, '$.tool')) AS tool,
|
|
216
|
+
count(*) AS n
|
|
217
|
+
FROM audit_events INDEXED BY idx_audit_session
|
|
218
|
+
WHERE root_session_id = ? AND event_type = 'tool_call'
|
|
219
|
+
GROUP BY coalesce(json_extract(attributes, '$.tool_name'), json_extract(attributes, '$.tool'))`),[a]),g=K(this.db.prepare(`SELECT DISTINCT model FROM audit_events INDEXED BY idx_audit_session_type
|
|
220
|
+
WHERE root_session_id = ? AND event_type = 'llm_call' AND model IS NOT NULL AND model <> ''
|
|
221
|
+
ORDER BY model`),[a]).map(a=>a.model),h=O(this.db,`SELECT count(*) AS n FROM audit_events INDEXED BY idx_audit_session
|
|
222
|
+
WHERE root_session_id = ? AND event_type = 'commit'`,[a]),i=this.rollupsFor([a]).get(a)??{turns:0,findings:0,shares:0,lastActivityMs:0},j={sessionId:a,model:e?.model??"",provider:e?.provider??"",inputTokens:d.input,outputTokens:d.output,cacheCreation:d.cache_creation,cacheRead:d.cache_read,totalTokens:d.input+d.output+d.cache_creation+d.cache_read,estimatedCostUsd:null};return Promise.resolve({...ar(b,i,this.now()),host:b.host??"",cwd:b.cwd??"",models:g.length>0?g:ao(b.models),version:b.version??"",tokens:j,tools:Object.fromEntries(f.flatMap(a=>a.tool?[[a.tool,a.n]]:[])),files:ao(b.files),commits:h,events:c})}tokenReports(a){let b=K(this.db.prepare(`${au}
|
|
223
|
+
FROM audit_events INDEXED BY idx_audit_llm_usage
|
|
224
|
+
WHERE ${av}${void 0===a?"":" AND started_at >= ?"}
|
|
225
|
+
${aw}`),void 0===a?void 0:[a]);return Promise.resolve((0,f.ryv)(ax(b),f.q_t))}tokenReportForSession(a){let b=K(this.db.prepare(`${au}
|
|
226
|
+
FROM audit_events
|
|
227
|
+
WHERE ${av} AND root_session_id = ?
|
|
228
|
+
${aw}`),[a]);return Promise.resolve((0,f.ryv)(ax(b),f.q_t)[0]??null)}harnessFacets(a){let b=K(this.db.prepare(`SELECT DISTINCT coalesce(json_extract(attributes, '$.harness'), '${ap}') AS harness
|
|
229
|
+
FROM audit_events WHERE ${ay}${void 0===a?"":" AND started_at >= ?"}`),void 0===a?void 0:[a]),c=new Set;for(let a of b)c.add(aq(a.harness));return Promise.resolve([...c])}rollupsFor(a){let b=new Map(a.map(a=>[a,{turns:0,findings:0,shares:0,lastActivityMs:0}]));if(0===a.length)return b;let c=A(a.length);for(let c of K(this.db.prepare(`SELECT ids.value AS id,
|
|
230
|
+
(SELECT max(started_at) FROM audit_events e WHERE e.root_session_id = ids.value) AS ms,
|
|
231
|
+
(SELECT max(ended_at) FROM audit_events e
|
|
232
|
+
WHERE e.root_session_id = ids.value AND e.ended_at IS NOT NULL) AS me
|
|
233
|
+
FROM json_each(?) AS ids`),[JSON.stringify(a)])){let a=b.get(c.id),d=Math.max(c.ms??0,c.me??0);a&&d>0&&(a.lastActivityMs=d)}for(let d of K(this.db.prepare(`SELECT root_session_id AS id, count(*) AS n
|
|
234
|
+
FROM audit_events INDEXED BY idx_audit_session_prompt
|
|
235
|
+
WHERE root_session_id IN (${c}) AND event_type = 'prompt'
|
|
236
|
+
GROUP BY root_session_id`),a)){if(null===d.id)continue;let a=b.get(d.id);a&&(a.turns=d.n)}for(let d of K(this.db.prepare(`SELECT root_session_id AS id,
|
|
237
|
+
count(DISTINCT json_extract(attributes, '$.run_key')) AS n
|
|
238
|
+
FROM audit_events INDEXED BY idx_audit_session_run_key
|
|
239
|
+
WHERE root_session_id IN (${c}) AND event_type = 'llm_call'
|
|
240
|
+
AND json_extract(attributes, '$.run_key') IS NOT NULL
|
|
241
|
+
GROUP BY root_session_id`),a)){if(null===d.id)continue;let a=b.get(d.id);a&&(a.turns=Math.max(a.turns,d.n))}for(let d of K(this.db.prepare(`SELECT e.root_session_id AS id, count(*) AS n FROM inspection_findings f
|
|
242
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
243
|
+
WHERE e.root_session_id IN (${c})
|
|
244
|
+
GROUP BY e.root_session_id`),a)){if(null===d.id)continue;let a=b.get(d.id);a&&(a.findings=d.n)}for(let d of K(this.db.prepare(`SELECT root_session_id AS id,
|
|
245
|
+
count(DISTINCT json_extract(attributes, '$.destination')) AS n
|
|
246
|
+
FROM audit_events INDEXED BY idx_audit_session_share
|
|
247
|
+
WHERE root_session_id IN (${c}) AND event_type = 'share'
|
|
248
|
+
GROUP BY root_session_id`),a)){if(null===d.id)continue;let a=b.get(d.id);a&&(a.shares=d.n)}return b}}class aB{constructor(a){this.db=a,this.insertStmt=a.prepare(`INSERT OR IGNORE INTO audit_events
|
|
249
|
+
(id, parent_id, root_session_id, event_type,
|
|
250
|
+
host_id, harness_id, source_project_id, started_at, ended_at,
|
|
251
|
+
severity, priority, content, content_hash, attributes)
|
|
252
|
+
VALUES
|
|
253
|
+
(:id, :parentId, :rootSessionId, :eventType,
|
|
254
|
+
:hostId, :harnessId, :sourceProjectId, :startedAt, :endedAt,
|
|
255
|
+
:severity, :priority, :content, :contentHash, :attributes)`),this.upsertLlmCallStmt=a.prepare(`INSERT INTO audit_events
|
|
256
|
+
(id, parent_id, root_session_id, event_type,
|
|
257
|
+
host_id, harness_id, source_project_id, started_at, ended_at,
|
|
258
|
+
severity, priority, content, content_hash, attributes)
|
|
259
|
+
VALUES
|
|
260
|
+
(:id, :parentId, :rootSessionId, :eventType,
|
|
261
|
+
:hostId, :harnessId, :sourceProjectId, :startedAt, :endedAt,
|
|
262
|
+
:severity, :priority, :content, :contentHash, :attributes)
|
|
263
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
264
|
+
attributes = excluded.attributes,
|
|
265
|
+
ended_at = excluded.ended_at
|
|
266
|
+
WHERE COALESCE(json_extract(excluded.attributes, '$.output_tokens'), 0)
|
|
267
|
+
> COALESCE(json_extract(audit_events.attributes, '$.output_tokens'), 0)
|
|
268
|
+
OR (json_extract(excluded.attributes, '$.usage_source') IS NOT NULL
|
|
269
|
+
AND json_extract(excluded.attributes, '$.output_tokens') IS NULL
|
|
270
|
+
AND excluded.attributes <> audit_events.attributes)`),this.upsertSessionRootStmt=a.prepare(`INSERT OR IGNORE INTO audit_events
|
|
271
|
+
(id, parent_id, root_session_id, event_type,
|
|
272
|
+
host_id, harness_id, source_project_id, started_at, ended_at,
|
|
273
|
+
severity, priority, content, content_hash, attributes)
|
|
274
|
+
VALUES
|
|
275
|
+
(:id, :parentId, :rootSessionId, :eventType,
|
|
276
|
+
:hostId, :harnessId, :sourceProjectId, :startedAt, :endedAt,
|
|
277
|
+
:severity, :priority, :content, :contentHash, :attributes)
|
|
278
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
279
|
+
parent_id = excluded.parent_id,
|
|
280
|
+
root_session_id = excluded.root_session_id,
|
|
281
|
+
host_id = excluded.host_id,
|
|
282
|
+
harness_id = excluded.harness_id,
|
|
283
|
+
source_project_id = excluded.source_project_id,
|
|
284
|
+
started_at = min(audit_events.started_at, excluded.started_at),
|
|
285
|
+
ended_at = excluded.ended_at,
|
|
286
|
+
severity = excluded.severity,
|
|
287
|
+
priority = excluded.priority,
|
|
288
|
+
content = excluded.content,
|
|
289
|
+
content_hash = excluded.content_hash,
|
|
290
|
+
attributes = excluded.attributes
|
|
291
|
+
WHERE audit_events.attributes IS NULL AND excluded.attributes IS NOT NULL`)}runInTransaction(a){E(this.db,a)}insertAuditEvent(a){let b=(0,f.V9M)(a);Number.isFinite(b.startedAt)&&("session"===b.eventType?this.upsertSessionRootStmt:this.insertStmt).run(N({id:b.id,parentId:b.parentId,rootSessionId:b.rootSessionId,eventType:b.eventType,hostId:b.hostId,harnessId:b.harnessId,sourceProjectId:b.sourceProjectId,startedAt:b.startedAt,endedAt:b.endedAt,severity:b.severity,priority:b.priority,content:b.content,contentHash:b.contentHash,attributes:b.attributes}))}ensureSessionRoot(a,b){this.insertAuditEvent({id:a,eventType:"session",startedAt:b})}insertLlmCall(a){var b,c;let d=(0,f.I8t)(a.startedAt);if(!Number.isFinite(d))return;let e=(b=a.sessionId,c=a.messageId,o((0,f.tTV)(["audit_event_llm_call",b,c])));this.upsertLlmCallStmt.run(N({id:e,parentId:a.parentId,rootSessionId:a.rootSessionId,eventType:"llm_call",hostId:null,harnessId:null,sourceProjectId:null,startedAt:d,endedAt:null,severity:null,priority:null,content:null,contentHash:null,attributes:JSON.stringify(a.attributes)}))}insertToolCall(a){var b,c;let d=(0,f.I8t)(a.startedAt);if(!Number.isFinite(d))return;let e=(b=a.sessionId,c=a.toolUseId,o((0,f.tTV)(["audit_event_tool_call",b,c])));this.insertStmt.run(N({id:e,parentId:a.parentId,rootSessionId:a.rootSessionId,eventType:"tool_call",hostId:null,harnessId:null,sourceProjectId:null,startedAt:d,endedAt:null,severity:null,priority:null,content:null,contentHash:null,attributes:JSON.stringify(a.attributes)}))}findById(a){return L(this.db.prepare("SELECT * FROM audit_events WHERE id = :id"),{id:a})}sessionProvider(a){let b=this.findById(a);if(!b?.attributes)return;let c=ai(b.attributes)?.provider;if("string"==typeof c)return c}llmCallLeaves(){return K(this.db.prepare(`SELECT root_session_id AS sessionId, attributes
|
|
292
|
+
FROM audit_events
|
|
293
|
+
WHERE event_type = 'llm_call' AND attributes IS NOT NULL`))}}class aC{constructor(a){this.db=a;let b=a=>`
|
|
294
|
+
SELECT id, LENGTH(CAST(content AS BLOB)) AS bytes
|
|
295
|
+
FROM audit_events
|
|
296
|
+
WHERE content IS NOT NULL
|
|
297
|
+
AND started_at < :cutoff
|
|
298
|
+
AND event_type IN (${f.hfB})
|
|
299
|
+
${a}
|
|
300
|
+
ORDER BY started_at
|
|
301
|
+
LIMIT :limit`;this.candidatesStmt=this.db.prepare(b("")),this.candidatesSyncSafeStmt=this.db.prepare(b(`AND (event_type NOT IN (${S}) OR synced_at IS NOT NULL)`)),this.heldBySyncStmt=this.db.prepare(`
|
|
302
|
+
SELECT COUNT(*) AS n
|
|
303
|
+
FROM audit_events
|
|
304
|
+
WHERE content IS NOT NULL
|
|
305
|
+
AND started_at < :cutoff
|
|
306
|
+
AND event_type IN (${S})
|
|
307
|
+
AND synced_at IS NULL`),this.expireStmt=this.db.prepare("UPDATE audit_events SET content = NULL, content_expired_at = :now WHERE id = :id")}preview(a){let b=a.maxRows??5e4,c=(a.sweepSyncLane?this.candidatesStmt:this.candidatesSyncSafeStmt).all({cutoff:a.cutoff,limit:b});return{rowsExpired:c.length,bytesFreed:c.reduce((a,b)=>a+b.bytes,0),rowsHeldBySync:this.countHeldBySync(a)}}expire(a){let b=a.batchSize??500,c=a.maxRows??5e4,d=a.sweepSyncLane?this.candidatesStmt:this.candidatesSyncSafeStmt,e=0,f=0,g=!0;for(;e<c;){let h=Math.min(b,c-e),i=d.all({cutoff:a.cutoff,limit:h});if(0===i.length||(E(this.db,()=>{for(let b of i)this.expireStmt.run({id:b.id,now:a.now})},"IMMEDIATE"),e+=i.length,f+=i.reduce((a,b)=>a+b.bytes,0),i.length<h))break;e>=c&&(g=0===d.all({cutoff:a.cutoff,limit:1}).length)}return{rowsExpired:e,bytesFreed:f,rowsHeldBySync:this.countHeldBySync(a),done:g}}countHeldBySync(a){return a.sweepSyncLane?0:this.heldBySyncStmt.get({cutoff:a.cutoff}).n}}class aD{constructor(a){this.db=a,this.recentStmt=a.prepare(`SELECT a.started_at AS startedAt,
|
|
308
|
+
a.attributes AS attributes,
|
|
309
|
+
a.root_session_id AS rootSessionId
|
|
310
|
+
FROM audit_events a
|
|
311
|
+
WHERE a.event_type = 'capture_status'
|
|
312
|
+
AND a.source_tool = ?
|
|
313
|
+
AND a.started_at >= ?
|
|
314
|
+
ORDER BY a.started_at DESC, a.id DESC
|
|
315
|
+
LIMIT ?`)}latest(a){let b=a-f.Rf1,c=[];for(let a of f.AKh.options){let d=new Map,e=new Map;for(let c of K(this.recentStmt,[a,b,128])){let b=(0,f.GVg)(ai(c.attributes));if(null===b)continue;let g={tool:a,observedAt:(0,f.q11)(c.startedAt),status:b},h=d.get(c.rootSessionId);void 0===h?(d.set(c.rootSessionId,[g]),e.set(c.rootSessionId,{at:g.observedAt,closed:b.closed})):h.push(g)}for(let[a,b]of d){let d=(0,f.Pv3)(b),g=e.get(a);void 0!==d&&void 0!==g&&c.push({...d,...null===a?{}:{rootSessionId:a},lastReportAt:g.at,closed:g.closed})}}return c}}class aE{constructor(a){this.db=a,this.insertStmt=a.prepare(`INSERT OR IGNORE INTO classified_data (id, class, label, attributes)
|
|
316
|
+
VALUES (:id, :class, :label, :attributes)`)}upsert(a){var b;let c=(b=a.class,o((0,f.tTV)(["classified_data",b]))),d=(0,f.$BP)(a,c);return this.insertStmt.run(N({id:d.id,class:d.class,label:d.label,attributes:d.attributes})),c}}function aF(a){return L(a.prepare(`SELECT id, started_at, attributes FROM audit_events
|
|
317
|
+
WHERE event_type = 'config_scan'
|
|
318
|
+
ORDER BY started_at DESC, id DESC LIMIT 1`))}class aG{constructor(a){this.db=a}report(){let a=aF(this.db);if(!a)return{scannedAt:null,skills:[],hooks:[],mcpServers:[],configFiles:[],topics:[]};let b=K(this.db.prepare(`SELECT id, object_type AS objectType, title, location, attributes FROM inventory
|
|
319
|
+
WHERE object_type IN ('skill', 'hook', 'mcp_server', 'config_file') AND last_seen >= :startedAt
|
|
320
|
+
ORDER BY object_type, title`),{startedAt:a.started_at}),c=K(this.db.prepare(`SELECT f.masked_match AS maskedMatch, d.rule_id AS ruleId, d.name AS name
|
|
321
|
+
FROM inspection_findings f
|
|
322
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
323
|
+
WHERE f.audit_event_id = :scanId`),{scanId:a.id}),d=[],e=[],f=[],g=[],h=this.trustOverrides();for(let a of b){let b=ai(a.attributes);b&&("skill"===a.objectType?d.push(function(a,b){let c={id:a.id,name:a.title??"(unnamed)",source:aH(b.source)??"unknown",scope:aH(b.scope)??"unknown",status:"unknown"},d=aH(b.description);void 0!==d&&(c.description=d);let e=aH(b.version);void 0!==e&&(c.installedVersion=e);let f=aH(b.updated_at);return void 0!==f&&(c.updatedAt=f),c}(a,b)):"hook"===a.objectType?e.push(function(a,b,c){let d=aH(b.command)??"",e=c.filter(a=>a.maskedMatch===d),f={id:a.id,event:aH(b.event)??"unknown",command:d,scope:aH(b.scope)??"unknown",status:e.some(a=>"hook-external-egress"===a.ruleId)?"egress":e.some(a=>"hook-conflict"===a.ruleId)?"conflict":e.some(a=>"hook-unknown"===a.ruleId)?"unknown":"active",warnings:e.map(a=>a.name)},g=aH(b.matcher);void 0!==g&&(f.matcher=g);let h=aH(b.plugin_name);return void 0!==h&&(f.pluginName=h),f}(a,b,c)):"mcp_server"===a.objectType?f.push(function(a,b,c){let d={id:a.id,name:a.title??"(unnamed)",scope:aH(b.scope)??"unknown",transport:aH(b.transport)??"unknown",trust:c.get(a.id)??"unapproved"},e=aH(b.command);void 0!==e&&(d.command=e);let f=aH(b.url);if(void 0!==f&&(d.url=f),Array.isArray(b.env_keys)){let a=b.env_keys.filter(a=>"string"==typeof a);a.length>0&&(d.envKeys=a)}let g=aH(b.plugin_name);void 0!==g&&(d.pluginName=g);let h=aH(b.marketplace);void 0!==h&&(d.marketplace=h);let i=aH(b.project);return void 0!==i&&(d.project=i),d}(a,b,h)):g.push(function(a,b){let c=aH(b.scope)??"unknown",d={id:a.id,name:a.title??"(unnamed)",path:a.location??"",scope:c,kind:aH(b.kind)??"Configuration file",untracked:"local"===c},e=aH(b.detail);void 0!==e&&(d.detail=e),"number"==typeof b.entry_count&&(d.entryCount=b.entry_count);let f=aH(b.updated_at);return void 0!==f&&(d.updatedAt=f),d}(a,b)))}return{scannedAt:new Date(a.started_at).toISOString(),skills:d,hooks:e,mcpServers:f,configFiles:g,topics:function(a,b,c,d,e){let f=[],g=a.filter(a=>"update_available"===a.status).length,h={topic:"skills",count:a.length};g>0&&(h.attention=`${String(g)} updates`),f.push(h);let i=b.filter(a=>"egress"===a.status).length,j=b.filter(a=>"conflict"===a.status).length,k=b.filter(a=>"unknown"===a.status).length,l=[];i>0&&l.push(`${String(i)} egress`),k>0&&l.push(`${String(k)} unknown`),j>0&&l.push(`${String(j)} conflict${j>1?"s":""}`);let m={topic:"hooks",count:b.length};l.length>0&&(m.attention=l.join(" \xb7 ")),f.push(m);let n=c.filter(a=>"unapproved"===a.trust).length,o={topic:"mcp",count:c.length};n>0&&(o.attention=`${String(n)} unapproved`),f.push(o);let p=d.filter(a=>a.untracked).length,q={topic:"config_files",count:d.length};p>0&&(q.attention=`${String(p)} untracked`),f.push(q);let r=function(a){let b=ai(a)?.errors;return"number"==typeof b?b:0}(e),s={topic:"configuration",count:r};return r>0&&(s.attention=`${String(r)} sources failed to parse`),f.push(s),f}(d,e,f,g,a.attributes)}}trustOverrides(){let a=K(this.db.prepare("SELECT asset_id AS assetId, trust FROM mcp_trust_override")),b=new Map;for(let c of a)("known-good"===c.trust||"risky"===c.trust||"unapproved"===c.trust)&&b.set(c.assetId,c.trust);return b}}function aH(a){return"string"==typeof a?a:void 0}function aI(a){let b=ah(a,[]);if(!Array.isArray(b))return[];let c=[];for(let a of b)a&&"object"==typeof a&&c.push(a);return c}function aJ(a,b){return a.version!==b.version||a.rulesJson!==b.rulesJson}class aK{constructor(a,b=()=>Date.now()){this.db=a,this.now=b}listDetections(a){let b=K(this.db.prepare(`SELECT namespace, pack_id AS packId, version, name, enabled, policy_id AS policyId,
|
|
324
|
+
rules_json AS rulesJson
|
|
325
|
+
FROM installed_packs`)),c=this.availableByPack(),d=b.map(a=>{let b=c.get(`${a.namespace}/${a.packId}`);return{namespace:a.namespace,packId:a.packId,version:a.version,name:a.name,enabled:M(a.enabled),ruleCount:aI(a.rulesJson).length,policyId:a.policyId,...b&&aJ(a,b)?{latestVersion:b.version}:{}}});return Promise.resolve((0,f.plk)(d,a))}availableByPack(){return new Map(K(this.db.prepare(`SELECT namespace, pack_id AS packId, version, rules_json AS rulesJson
|
|
326
|
+
FROM available_packs`)).map(a=>[`${a.namespace}/${a.packId}`,a]))}getDetectionStats(){let a=K(this.db.prepare("SELECT enabled, rules_json AS rulesJson FROM installed_packs")),b=0,c=0,d=new Set;for(let e of a){M(e.enabled)&&(c+=1);let a=aI(e.rulesJson);for(let c of(b+=a.length,a))"string"==typeof c.id&&d.add(c.id)}return Promise.resolve({detections:a.length,rules:b,active:c,findingsLast30d:this.countFindingsLast30d([...d])})}getDetectionDetail(a){let b=(0,f.pnU)(a);if(!b)return Promise.resolve(null);let{namespace:c,packId:d}=b,e=L(this.db.prepare(`SELECT namespace, pack_id AS packId, version, name, enabled, policy_id AS policyId,
|
|
327
|
+
rules_json AS rulesJson, updated_at AS updatedAt
|
|
328
|
+
FROM installed_packs
|
|
329
|
+
WHERE namespace = ? AND pack_id = ?`),[c,d]);if(!e)return Promise.resolve(null);let g=aI(e.rulesJson),h=g.map(a=>a.id).filter(a=>"string"==typeof a),i=this.countFindingsLast30d(h),j=this.availableByPack().get(`${e.namespace}/${e.packId}`),k=j?aJ(e,j)?{available:!0,latestVersion:j.version,latestRuleCount:aI(j.rulesJson).length}:{available:!1,latestVersion:j.version}:null;return Promise.resolve((0,f.a45)({namespace:e.namespace,packId:e.packId,version:e.version,name:e.name,enabled:M(e.enabled),rules:g,updatedAt:new Date(e.updatedAt),policyId:e.policyId},i,k))}countFindingsLast30d(a){if(0===a.length)return 0;let b=this.now()-2592e6,c=A(a.length);return O(this.db,`SELECT count(*) AS n
|
|
330
|
+
FROM inspection_findings f
|
|
331
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
332
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
333
|
+
WHERE e.started_at >= ?
|
|
334
|
+
AND e.event_type IN (${f.hfB})
|
|
335
|
+
AND d.rule_id IN (${c})`,[b,...a])}}class aL{constructor(a){this.db=a}contentHashes(){return Promise.resolve(new Set(K(this.db.prepare(`SELECT content_hash FROM audit_events
|
|
336
|
+
WHERE event_type IN (${f.hfB})`)).map(a=>a.content_hash)))}}let aM=864e5;class aN extends Error{constructor(a){super(`duplicate-active-exception: an active exception already exists for rule "${a}" and this value — revoke it before granting a new one`),this.code="duplicate-active-exception",this.name="DuplicateActiveExceptionError"}}class aO extends Error{constructor(a){super(`ambiguous-exception-id: "${a}" matches more than one exception — add more characters`),this.code="ambiguous-exception-id",this.name="AmbiguousExceptionIdError"}}let aP=`revoked_at IS NULL
|
|
337
|
+
AND (expires_at IS NULL OR expires_at > :now)
|
|
338
|
+
AND (max_uses IS NULL OR use_count < max_uses)`,aQ=`capability = 'reveal_to_model'
|
|
339
|
+
AND conditions IS NULL
|
|
340
|
+
AND ${aP}`;class aR{constructor(a,b=()=>Date.now()){this.db=a,this.now=b,this.consumeStmt=a.prepare(`UPDATE exceptions
|
|
341
|
+
SET use_count = use_count + 1, last_used_at = :now, updated_at = :now
|
|
342
|
+
WHERE id = :id AND ${aP}`),this.insertBlockedStmt=a.prepare(`INSERT OR REPLACE INTO blocked_detections (reference, rule_id, category, value_fingerprint, key_version, masked_value, session_id, repo, blocked_at)
|
|
343
|
+
VALUES (:reference, :ruleId, :category, :valueFingerprint, :keyVersion, :maskedValue, :sessionId, :repo, :blockedAt)`),this.sweepBlockedStmt=a.prepare("DELETE FROM blocked_detections WHERE blocked_at <= :cutoff")}create(a){try{return Promise.resolve(this.createSync(a))}catch(a){return Promise.reject(a instanceof Error?a:Error(String(a)))}}createSync(a){if(a.conditions?.provider!==void 0)throw Error("provider conditions are not supported yet — a grant with one would never apply");let b=(0,m.randomUUID)(),c=this.now();try{this.insertExceptionRow(b,a,c)}catch(d){if(!(d instanceof Error&&(2067===d.errcode||d.message.includes("UNIQUE constraint failed"))))throw d;E(this.db,()=>{if(1!==Number(this.db.prepare(`UPDATE exceptions
|
|
344
|
+
SET revoked_at = :now, revoked_by = :revokedBy,
|
|
345
|
+
revoke_reason = 'superseded by a new grant for the same value',
|
|
346
|
+
updated_at = :now
|
|
347
|
+
WHERE rule_id = :ruleId AND value_fingerprint = :valueFingerprint
|
|
348
|
+
AND key_version = :keyVersion AND revoked_at IS NULL
|
|
349
|
+
AND ((expires_at IS NOT NULL AND expires_at <= :now)
|
|
350
|
+
OR (max_uses IS NOT NULL AND use_count >= max_uses))`).run({now:c,revokedBy:a.createdBy,ruleId:a.ruleId,valueFingerprint:a.valueFingerprint,keyVersion:a.keyVersion}).changes))throw new aN(a.ruleId);this.insertExceptionRow(b,a,c)},"IMMEDIATE")}let d=L(this.db.prepare("SELECT * FROM exceptions WHERE id = :id"),{id:b});if(void 0===d)throw Error("exception row not found immediately after insert");return aS(d)}insertExceptionRow(a,b,c){this.db.prepare(`INSERT INTO exceptions (
|
|
351
|
+
id, rule_id, category, value_fingerprint, key_version, masked_value,
|
|
352
|
+
capability, scope, expires_at, max_uses, use_count, last_used_at,
|
|
353
|
+
justification, conditions, created_by, created_via, created_at, updated_at
|
|
354
|
+
) VALUES (
|
|
355
|
+
:id, :ruleId, :category, :valueFingerprint, :keyVersion, :maskedValue,
|
|
356
|
+
:capability, :scope, :expiresAt, :maxUses, 0, NULL, :justification,
|
|
357
|
+
:conditions, :createdBy, :createdVia, :now, :now
|
|
358
|
+
)`).run({id:a,ruleId:b.ruleId,category:b.category,valueFingerprint:b.valueFingerprint,keyVersion:b.keyVersion,maskedValue:b.maskedValue,capability:b.capability??"suppress",scope:b.scope,expiresAt:null===b.expiresAt?null:(0,f.I8t)(b.expiresAt),maxUses:b.maxUses,justification:b.justification,conditions:null===b.conditions?null:JSON.stringify(b.conditions),createdBy:b.createdBy,createdVia:b.createdVia,now:c})}list(a){let b=a?.includeTerminal?"":`WHERE ${aP}`;return Promise.resolve(Q(K(this.db.prepare(`SELECT * FROM exceptions ${b} ORDER BY created_at DESC, rowid DESC`),a?.includeTerminal?{}:{now:this.now()}),aS))}getByIdPrefix(a){if(0===a.length)return Promise.resolve(void 0);let b=K(this.db.prepare(String.raw`SELECT * FROM exceptions WHERE id LIKE :pattern ESCAPE '\' LIMIT 2`),{pattern:`${z(a)}%`});if(b.length>1)return Promise.reject(new aO(a));let c=b[0];if(!c)return Promise.resolve(void 0);try{return Promise.resolve(aS(c))}catch{return Promise.resolve(void 0)}}revoke(a,b,c){let d=this.now();return Promise.resolve(1===Number(this.db.prepare(`UPDATE exceptions
|
|
359
|
+
SET revoked_at = :now, revoked_by = :revokedBy, revoke_reason = :reason, updated_at = :now
|
|
360
|
+
WHERE id = :id AND revoked_at IS NULL`).run({id:a,revokedBy:b,reason:c??null,now:d}).changes))}consume(a,b=this.now()){return Promise.resolve(1===Number(this.consumeStmt.run({id:a,now:b}).changes))}activeBundleEntries(a,b=this.now()){return Promise.resolve(Q(K(this.db.prepare(`SELECT * FROM exceptions
|
|
361
|
+
WHERE key_version = :keyVersion AND ${aP}
|
|
362
|
+
ORDER BY created_at DESC, rowid DESC`),{keyVersion:a,now:b}),a=>{let b=null===a.conditions?null:JSON.parse(a.conditions);return f.iRC.parse({id:a.id,ruleId:a.rule_id,valueFingerprint:a.value_fingerprint,keyVersion:a.key_version,capability:a.capability,expiresAt:null===a.expires_at?null:(0,f.q11)(a.expires_at),maxUses:a.max_uses,useCount:a.use_count,conditions:b})}))}recordBlocked(a){let b=this.now();return this.sweepBlockedStmt.run({cutoff:b-aM}),this.insertBlockedStmt.run({reference:a.reference,ruleId:a.ruleId,category:a.category,valueFingerprint:a.valueFingerprint,keyVersion:a.keyVersion,maskedValue:a.maskedValue,sessionId:a.sessionId,repo:a.repo,blockedAt:b}),Promise.resolve()}recentBlocked(a=18e5){return Promise.resolve(K(this.db.prepare(`SELECT * FROM blocked_detections
|
|
363
|
+
WHERE blocked_at > :cutoff
|
|
364
|
+
ORDER BY blocked_at DESC, rowid DESC`),{cutoff:this.now()-a}).map(a=>({reference:a.reference,ruleId:a.rule_id,category:a.category,valueFingerprint:a.value_fingerprint,keyVersion:a.key_version,maskedValue:a.masked_value,sessionId:a.session_id,repo:a.repo,blockedAt:(0,f.q11)(a.blocked_at)})))}activeRevealGrant(a,b,c,d){try{let e=d??this.now(),f=L(this.db.prepare(`SELECT id FROM exceptions
|
|
365
|
+
WHERE rule_id = :ruleId AND value_fingerprint = :valueFingerprint
|
|
366
|
+
AND key_version = :keyVersion
|
|
367
|
+
AND ${aQ}
|
|
368
|
+
LIMIT 1`),{ruleId:a,valueFingerprint:b,keyVersion:c,now:e});return Promise.resolve(f??null)}catch(a){return Promise.reject(a instanceof Error?a:Error(String(a)))}}sweepTerminal(a,b=this.now()){return Promise.resolve(Number(this.db.prepare(`DELETE FROM exceptions
|
|
369
|
+
WHERE updated_at < :cutoff
|
|
370
|
+
AND (revoked_at IS NOT NULL
|
|
371
|
+
OR (expires_at IS NOT NULL AND expires_at <= :now)
|
|
372
|
+
OR (max_uses IS NOT NULL AND use_count >= max_uses))`).run({cutoff:b-a,now:b}).changes))}}function aS(a){let b=null===a.conditions?null:JSON.parse(a.conditions);return f.V8B.parse({id:a.id,ruleId:a.rule_id,category:a.category,valueFingerprint:a.value_fingerprint,keyVersion:a.key_version,maskedValue:a.masked_value,capability:a.capability,scope:a.scope,expiresAt:null===a.expires_at?null:(0,f.q11)(a.expires_at),maxUses:a.max_uses,useCount:a.use_count,lastUsedAt:null===a.last_used_at?null:(0,f.q11)(a.last_used_at),justification:a.justification,conditions:b,createdBy:a.created_by,createdVia:a.created_via,createdAt:(0,f.q11)(a.created_at),updatedAt:(0,f.q11)(a.updated_at),revokedAt:null===a.revoked_at?null:(0,f.q11)(a.revoked_at),revokedBy:a.revoked_by,revokeReason:a.revoke_reason})}function aT(a){return`(
|
|
373
|
+
SELECT fr.status FROM finding_resolution fr
|
|
374
|
+
WHERE fr.finding_key = ${a}.finding_key
|
|
375
|
+
ORDER BY fr.created_at DESC, fr.rowid DESC
|
|
376
|
+
LIMIT 1
|
|
377
|
+
)`}let aU=`(
|
|
378
|
+
SELECT finding_key, status, method, resolved_at FROM (
|
|
379
|
+
SELECT fr.finding_key, fr.status, fr.method, fr.resolved_at,
|
|
380
|
+
ROW_NUMBER() OVER (
|
|
381
|
+
PARTITION BY fr.finding_key
|
|
382
|
+
ORDER BY fr.created_at DESC, fr.rowid DESC
|
|
383
|
+
) AS rn
|
|
384
|
+
FROM finding_resolution fr
|
|
385
|
+
) WHERE rn = 1
|
|
386
|
+
)`;function aV(a){return null===a||""===a?[]:a.split(",")}function aW(a){return{id:a.id,ruleId:a.rule_id,category:a.category,severity:a.severity,maskedMatch:a.masked_match,actionTaken:a.action_taken,confidence:a.confidence,occurredAt:(0,f.q11)(a.occurred_at),sourceTool:a.source_tool,repo:a.repo??"",file:a.file??"",...null===a.tool_name?{}:{toolName:a.tool_name},eventId:a.event_id,...null===a.session_id?{}:{sessionId:a.session_id},status:(0,f.xog)({kind:a.kind,findingKey:a.finding_key,latestResolutionStatus:a.latest_status}),delivery:(0,f.xHz)({kind:a.kind,syncedAt:a.synced_at,syncClaimedAt:a.sync_claimed_at,syncFailedAt:a.sync_failed_at,syncFailure:a.sync_failure,outboxOwed:a.outbox_owed})}}let aX=`f.id AS id, d.rule_id AS rule_id, d.category AS category,
|
|
387
|
+
d.severity AS severity, f.masked_match AS masked_match,
|
|
388
|
+
f.action_taken AS action_taken, f.confidence AS confidence,
|
|
389
|
+
e.started_at AS occurred_at,
|
|
390
|
+
e.source_tool AS source_tool,
|
|
391
|
+
e.repo AS repo,
|
|
392
|
+
e.file_path AS file,
|
|
393
|
+
e.tool_name AS tool_name,
|
|
394
|
+
f.audit_event_id AS event_id, e.root_session_id AS session_id,
|
|
395
|
+
e.event_type AS kind, f.finding_key AS finding_key,
|
|
396
|
+
${aT("f")} AS latest_status,
|
|
397
|
+
e.synced_at AS synced_at, e.sync_claimed_at AS sync_claimed_at,
|
|
398
|
+
e.sync_failed_at AS sync_failed_at, e.sync_failure AS sync_failure,
|
|
399
|
+
e.outbox_owed AS outbox_owed`;class aY{constructor(a){this.db=a}recentFindings(a){let b=a?.limit??50;return Promise.resolve(K(this.db.prepare(`SELECT f.id, f.audit_event_id AS event_id, d.rule_id, d.category, d.severity,
|
|
400
|
+
f.masked_match, f.action_taken, f.confidence, e.started_at AS occurred_at,
|
|
401
|
+
e.source_tool AS source_tool,
|
|
402
|
+
e.event_type AS kind
|
|
403
|
+
FROM audit_events e
|
|
404
|
+
CROSS JOIN inspection_findings f ON f.audit_event_id = e.id
|
|
405
|
+
CROSS JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
406
|
+
WHERE +e.event_type IN (${f.hfB})
|
|
407
|
+
ORDER BY e.started_at DESC, f.rowid DESC
|
|
408
|
+
LIMIT :limit`),{limit:b}).map(a=>({id:a.id,eventId:a.event_id,ruleId:a.rule_id,category:a.category,severity:a.severity,maskedMatch:a.masked_match,actionTaken:a.action_taken,confidence:a.confidence,occurredAt:(0,f.q11)(a.occurred_at),sourceTool:a.source_tool,kind:a.kind})))}sessionFindingsCount(a){return a?Promise.resolve(O(this.db,`SELECT count(*) AS n FROM inspection_findings f
|
|
409
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
410
|
+
WHERE e.root_session_id = :sessionId
|
|
411
|
+
AND e.event_type IN (${f.hfB})`,{sessionId:a})):Promise.resolve(0)}sessionFirings(a){return Object.fromEntries(P(this.db,`SELECT d.rule_id AS k, count(*) AS n
|
|
412
|
+
FROM inspection_findings f
|
|
413
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
414
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
415
|
+
WHERE e.root_session_id = :sessionId
|
|
416
|
+
AND e.event_type NOT IN (${f.hfB})
|
|
417
|
+
GROUP BY d.rule_id`,{sessionId:a}))}listFindingTypes(a){let b=a.sessionId?" AND e.root_session_id = :sessionId":"",c=void 0===a.from?void 0:(0,f.I8t)(a.from),d=`WHERE e.event_type IN (${f.hfB})${b}${void 0===c?"":" AND e.started_at >= :fromMs"}`,e={...a.sessionId?{sessionId:a.sessionId}:{},...void 0===c?{}:{fromMs:c}},g=this.groupAggregates(void 0!==a.q&&""!==a.q,{predicate:d,params:e}),h=(0,f.Ple)(g),i={severity:a.severity,providers:a.provider,actions:a.action,statuses:a.status,subtype:a.subtype,q:a.q},j=(0,f.rG)(h,i),k=(0,f.X0p)((0,f.tXp)(h,i)),l=a.status??[],m={findings:k.reduce((a,b)=>{if(0===l.length)return a+b.instanceCount;let c=g.get(b.id);return a+(c?(0,f.Bfj)(c.statusInputs,l)??b.instanceCount:b.instanceCount)},0),types:k.length},n=a.limit??f.IYX,o=void 0===a.cursor?null:function(a){let b=ai(Buffer.from(a,"base64url").toString("utf8"));return void 0!==b&&"string"==typeof b.sev&&"string"==typeof b.t&&"string"==typeof b.id?{severity:b.sev,latestDetectedAt:b.t,id:b.id}:null}(a.cursor),p=null===o?0:function(a,b){let c=a.findIndex(a=>(0,f._6W)(a,b)>0);return -1===c?a.length:c}(k,o),q=k.slice(p,p+n),r=q.at(-1),s=p+n<k.length&&r?function(a){let b={sev:a.severity,t:a.latestDetectedAt,id:a.id};return Buffer.from(JSON.stringify(b)).toString("base64url")}(r):null,t=void 0===a.includeId||""===a.includeId?void 0:function(a,b,c){if(!b.some(a=>a.id===c))return a.find(a=>a.id===c)}(k,q,a.includeId);return Promise.resolve({totals:m,facets:j,items:[...q,...t?[t]:[]],nextCursor:s,...a.sessionId?{sessionFirings:this.sessionFirings(a.sessionId)}:{}})}listFindingInstances(a){let b,c={severity:a.severity,subtype:a.subtype,providers:a.provider,actions:a.action,statuses:a.status,deliveries:a.deployment,tools:a.tool,repo:a.repo,file:a.file,q:a.q},d=a.limit??f.b2L,e=void 0===a.cursor?null:ak(a.cursor),g=null===e?()=>!0:a=>{let b=(0,f.I8t)(a.occurredAt);return b<=e.startedAtMs&&(b<e.startedAtMs||a.id<e.id)},h=(0,f.fj8)(c),i=[],j=0,k=!1;for(let e of this.scanFindingRows({sessionId:a.sessionId,from:a.from}))h.add(e),(0,f.am1)(e,c)&&(j+=1,g(e)&&(i.length<d?(i.push((0,f.MgS)(e)),b=e):k=!0));let l=k&&b?aj({startedAtMs:(0,f.I8t)(b.occurredAt),id:b.id}):null;return Promise.resolve({totals:{findings:j},facets:h.facets(),items:i,nextCursor:l})}listFindingLocations(a){let b={severity:a.severity,subtype:a.subtype,providers:a.provider,actions:a.action,statuses:a.status,deliveries:a.deployment,tools:a.tool,q:a.q},c=a.limit??f.p$t,d=void 0===a.cursor?null:function(a){let b=ai(Buffer.from(a,"base64url").toString("utf8"));return void 0!==b&&"string"==typeof b.sev&&"string"==typeof b.t&&"string"==typeof b.r&&"string"==typeof b.f?{maxSeverity:b.sev,latestDetectedAt:b.t,repo:b.r,file:b.f}:null}(a.cursor),e=new Map,g=(0,f.fj8)(b),h=0;for(let c of this.scanFindingRows({sessionId:a.sessionId,from:a.from})){if(g.add(c),!(0,f.am1)(c,b))continue;h+=1;let a=e.get(c.repo);void 0===a&&(a=new Map,e.set(c.repo,a));let d=a.get(c.file);void 0===d&&(d=(0,f.SSj)(),a.set(c.file,d)),(0,f._5V)(d,c)}let i=[];for(let[a,b]of e)for(let[c,d]of b){let b=(0,f.JB8)(d.statuses);i.push({id:(0,f.ZoN)(a,c),repo:a,file:c,instanceCount:d.instanceCount,maxSeverity:d.maxSeverity,latestDetectedAt:d.latestDetectedAt,...void 0===b?{}:{status:b},ruleIds:[...d.ruleIds]})}i.sort(f.hml);let j=null===d?0:function(a,b){let c=a.findIndex(a=>(0,f.hml)(a,b)>0);return -1===c?a.length:c}(i,d),k=i.slice(j,j+c),l=k.at(-1),m=j+c<i.length&&l?function(a){let b={sev:a.maxSeverity,t:a.latestDetectedAt,r:a.repo,f:a.file};return Buffer.from(JSON.stringify(b)).toString("base64url")}(l):null,n=void 0===a.includeId||""===a.includeId?void 0:function(a,b,c){if(!b.some(a=>a.id===c))return a.find(a=>a.id===c)}(i,k,a.includeId);return Promise.resolve({totals:{findings:h,locations:i.length},facets:g.facets(),items:[...k,...n?[n]:[]],nextCursor:m})}*scanFindingRows(a){let{sql:b,params:c}=this.findingScanSql(a);for(let a of function*(a,b){for(let c of void 0===b?a.iterate():Array.isArray(b)?a.iterate(...b):a.iterate(b))yield c}(this.db.prepare(b),c))yield aW(a)}findingInstance(a){let b=this.db.prepare(`SELECT ${aX}
|
|
418
|
+
FROM inspection_findings f
|
|
419
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
420
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
421
|
+
WHERE f.id = ?`).get(a);return Promise.resolve(void 0===b?null:(0,f.MgS)(aW(b)))}findingScanSql(a){let b=[`+e.event_type IN (${f.hfB})`],c=[];return void 0!==a.sessionId&&""!==a.sessionId&&(b.push("e.root_session_id = ?"),c.push(a.sessionId)),void 0!==a.from&&(b.push("e.started_at >= ?"),c.push((0,f.I8t)(a.from))),{sql:`SELECT ${aX}
|
|
422
|
+
FROM audit_events e
|
|
423
|
+
CROSS JOIN inspection_findings f ON f.audit_event_id = e.id
|
|
424
|
+
CROSS JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
425
|
+
WHERE ${b.join(" AND ")}
|
|
426
|
+
ORDER BY e.started_at DESC, f.id DESC`,params:c}}groupAggregates(a,b){let c=a?`, group_concat(DISTINCT e.repo) AS repos,
|
|
427
|
+
group_concat(DISTINCT e.file_path) AS files,
|
|
428
|
+
group_concat(DISTINCT 'via ' || e.tool_name) AS tool_names`:", NULL AS repos, NULL AS files, NULL AS tool_names";return new Map(this.db.prepare(`SELECT rule_id,
|
|
429
|
+
-- BARE columns beside max(latest_at), which is deliberate and
|
|
430
|
+
-- is SQLite's documented behaviour: with a single min()/max()
|
|
431
|
+
-- in an aggregate query, every bare column takes its value from
|
|
432
|
+
-- the row that produced the extremum. So these are the severity
|
|
433
|
+
-- and category of the definition whose finding is NEWEST, which
|
|
434
|
+
-- is what the row-based build they replaced read off its first
|
|
435
|
+
-- (newest-first) row.
|
|
436
|
+
--
|
|
437
|
+
-- min() is WRONG here and was the defect: inspection_definitions
|
|
438
|
+
-- holds one row per rule VERSION (see its writer — a version bump
|
|
439
|
+
-- mints a new row), so a rule whose severity moved between
|
|
440
|
+
-- versions has several, and min() picks the ALPHABETICALLY
|
|
441
|
+
-- smallest — 'low' over 'medium', but 'critical' over 'high'.
|
|
442
|
+
-- That is arbitrary in direction, and it feeds the badge, the
|
|
443
|
+
-- filter, the facet counts and the primary sort key.
|
|
444
|
+
--
|
|
445
|
+
-- Adding a second min()/max() aggregate here would make these
|
|
446
|
+
-- bare columns ambiguous again; keep max(latest_at) the only one.
|
|
447
|
+
severity,
|
|
448
|
+
category,
|
|
449
|
+
sum(tuple_count) AS instance_count,
|
|
450
|
+
max(latest_at) AS latest_at,
|
|
451
|
+
group_concat(source_tools) AS source_tools,
|
|
452
|
+
group_concat(actions_taken) AS actions_taken,
|
|
453
|
+
group_concat(status_tuple || '|' || tuple_count) AS status_inputs,
|
|
454
|
+
group_concat(repos) AS repos,
|
|
455
|
+
group_concat(files) AS files,
|
|
456
|
+
group_concat(tool_names) AS tool_names
|
|
457
|
+
FROM (
|
|
458
|
+
SELECT d.rule_id AS rule_id,
|
|
459
|
+
-- Severity and category are columns of the DEFINITION, and
|
|
460
|
+
-- a rule can have SEVERAL definitions (one per version), so
|
|
461
|
+
-- these are grouped on below and resolved to the newest
|
|
462
|
+
-- firing version by the outer query's bare-column select.
|
|
463
|
+
-- They ride the aggregate because the type build has no rows
|
|
464
|
+
-- to read them off — see buildFindingTypes.
|
|
465
|
+
d.severity AS severity,
|
|
466
|
+
d.category AS category,
|
|
467
|
+
e.event_type || '|' ||
|
|
468
|
+
(CASE WHEN f.finding_key IS NULL THEN '' ELSE 'k' END) || '|' ||
|
|
469
|
+
coalesce(latest.status, '') AS status_tuple,
|
|
470
|
+
count(*) AS tuple_count,
|
|
471
|
+
max(e.started_at) AS latest_at,
|
|
472
|
+
group_concat(DISTINCT e.source_tool) AS source_tools,
|
|
473
|
+
group_concat(DISTINCT f.action_taken) AS actions_taken
|
|
474
|
+
${c}
|
|
475
|
+
FROM inspection_findings f
|
|
476
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
477
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
478
|
+
LEFT JOIN ${aU} latest
|
|
479
|
+
ON latest.finding_key = f.finding_key
|
|
480
|
+
${b.predicate}
|
|
481
|
+
GROUP BY d.rule_id, d.severity, d.category, status_tuple
|
|
482
|
+
)
|
|
483
|
+
GROUP BY rule_id`).all(b.params).map(b=>[b.rule_id,{instanceCount:b.instance_count,severity:b.severity,category:b.category,sourceTools:aV(b.source_tools),actionsTaken:aV(b.actions_taken),statusInputs:aV(b.status_inputs).map(a=>{let[b="",c="",d="",e=""]=a.split("|");return{kind:b,findingKey:""===c?null:c,latestResolutionStatus:""===d?null:d,count:Number(e)}}),latestDetectedAt:(0,f.q11)(b.latest_at),...a?{searchText:[b.repos??"",b.files??"",b.tool_names??""].filter(a=>""!==a).join(" ")}:{}}]))}healthSummary(){let a=O(this.db,`SELECT count(*) AS n FROM inspection_findings f
|
|
484
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
485
|
+
WHERE e.event_type IN (${f.hfB})`),b=Object.fromEntries(f.S8C.map(a=>[a,0]));for(let a of K(this.db.prepare(`SELECT f.action_taken AS action_taken, count(*) AS c
|
|
486
|
+
FROM inspection_findings f
|
|
487
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
488
|
+
WHERE e.event_type IN (${f.hfB})
|
|
489
|
+
GROUP BY f.action_taken`)))Object.hasOwn(b,a.action_taken)&&(b[a.action_taken]=a.c);let c={critical:0,high:0,medium:0,low:0};for(let a of K(this.db.prepare(`SELECT d.severity AS severity, count(*) AS c
|
|
490
|
+
FROM inspection_findings f
|
|
491
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
492
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
493
|
+
LEFT JOIN ${aU} latest
|
|
494
|
+
ON latest.finding_key = f.finding_key
|
|
495
|
+
WHERE e.event_type IN (${f.hfB})
|
|
496
|
+
AND (latest.status IS NULL OR latest.status != 'resolved')
|
|
497
|
+
GROUP BY d.severity`)))Object.hasOwn(c,a.severity)&&(c[a.severity]=a.c);let d=f.IgC,e=new Set(K(this.db.prepare(`SELECT DISTINCT json_extract(target, '$.category') AS category
|
|
498
|
+
FROM policies WHERE enabled = 1 AND json_extract(target, '$.category') IS NOT NULL`)).map(a=>a.category));return Promise.resolve({findings:a,byAction:b,bySeverity:c,coverage:0===d.length?0:d.filter(a=>e.has(a)).length/d.length})}activityByDay(a=7){let b=864e5*Math.floor(Date.now()/864e5)-(a-1)*864e5,c=K(this.db.prepare(`SELECT date(e.started_at / 1000, 'unixepoch') AS day, f.action_taken AS action, count(*) AS c
|
|
499
|
+
FROM inspection_findings f
|
|
500
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
501
|
+
WHERE e.started_at >= :since
|
|
502
|
+
AND e.event_type IN (${f.hfB})
|
|
503
|
+
GROUP BY day, f.action_taken`),{since:b}),d=new Map;for(let c=0;c<a;c++){let a=new Date(b+864e5*c).toISOString().slice(0,10);d.set(a,{day:a,total:0,redacted:0,warned:0,blocked:0})}for(let a of c){let b=d.get(a.day);b&&(b.total+=a.c,"redact"===a.action?b.redacted+=a.c:"warn"===a.action?b.warned+=a.c:"block"===a.action&&(b.blocked+=a.c))}return Promise.resolve([...d.values()].sort((a,b)=>a.day.localeCompare(b.day)))}}class aZ{constructor(a){this.db=a,this.insertStmt=a.prepare(`INSERT OR IGNORE INTO inspection_definitions
|
|
504
|
+
(id, rule_id, name, category, severity, definition, version)
|
|
505
|
+
VALUES
|
|
506
|
+
(:id, :ruleId, :name, :category, :severity, :definition, :version)`)}upsert(a){let b=q(a.ruleId,a.version),c=(0,f.JAl)(a,b);return this.insertStmt.run({id:c.id,ruleId:c.ruleId,name:c.name,category:c.category,severity:c.severity,definition:c.definition,version:c.version}),b}}class a${constructor(a){this.db=a,this.insertStmt=a.prepare(`INSERT INTO inspection_findings
|
|
507
|
+
(id, audit_event_id, inspection_definition_id, classified_data_id,
|
|
508
|
+
span_start, span_end, masked_match, action_taken, confidence,
|
|
509
|
+
finding_key, first_detected_at)
|
|
510
|
+
VALUES
|
|
511
|
+
(:id, :auditEventId, :inspectionDefinitionId, :classifiedDataId,
|
|
512
|
+
:spanStart, :spanEnd, :maskedMatch, :actionTaken, :confidence,
|
|
513
|
+
:findingKey,
|
|
514
|
+
COALESCE(:firstDetectedAt, (SELECT started_at FROM audit_events WHERE id = :auditEventId)))
|
|
515
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
516
|
+
inspection_definition_id = excluded.inspection_definition_id
|
|
517
|
+
ON CONFLICT (finding_key) DO UPDATE SET
|
|
518
|
+
audit_event_id = excluded.audit_event_id,
|
|
519
|
+
inspection_definition_id = excluded.inspection_definition_id,
|
|
520
|
+
classified_data_id = excluded.classified_data_id,
|
|
521
|
+
span_start = excluded.span_start,
|
|
522
|
+
span_end = excluded.span_end,
|
|
523
|
+
masked_match = excluded.masked_match,
|
|
524
|
+
action_taken = excluded.action_taken,
|
|
525
|
+
confidence = excluded.confidence`),this.sessionDupStmt=a.prepare(`SELECT 1 FROM inspection_findings f
|
|
526
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
527
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
528
|
+
WHERE d.rule_id = :ruleId AND f.masked_match = :maskedMatch
|
|
529
|
+
AND e.root_session_id = :sessionId
|
|
530
|
+
AND e.event_type IN (${f.hfB})
|
|
531
|
+
LIMIT 1`),this.eventDupStmt=a.prepare(`SELECT 1 FROM inspection_findings f
|
|
532
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
533
|
+
WHERE f.audit_event_id = :auditEventId AND d.rule_id = :ruleId
|
|
534
|
+
AND f.masked_match = :maskedMatch
|
|
535
|
+
AND f.span_start = :spanStart AND f.span_end = :spanEnd
|
|
536
|
+
LIMIT 1`)}isSessionDuplicate(a,b,c){return void 0!==this.sessionDupStmt.get({ruleId:a,maskedMatch:b,sessionId:c})}isEventDuplicate(a,b,c,d,e){return void 0!==this.eventDupStmt.get({auditEventId:a,ruleId:b,maskedMatch:c,spanStart:d,spanEnd:e})}insertFinding(a){let b=(0,f.$3l)(a);this.insertStmt.run(N({id:b.id,auditEventId:b.auditEventId,inspectionDefinitionId:b.inspectionDefinitionId,classifiedDataId:b.classifiedDataId,spanStart:b.spanStart,spanEnd:b.spanEnd,maskedMatch:b.maskedMatch,actionTaken:b.actionTaken,confidence:b.confidence,findingKey:b.findingKey,firstDetectedAt:b.firstDetectedAt}))}}c(51455);var a_=c(48161);function a0(){return(0,e.join)((0,a_.homedir)(),".aka")}function a1(a=a0()){return(0,e.join)(a,"settings")}function a2(a=a0()){return(0,e.join)(a,"data")}function a3(a=function(a=process.platform){return"darwin"===a?[e.posix.join("/Library","Application Support","AKASecurity",f.WRR),e.posix.join("/Library","Managed Preferences",f.WRR)]:"win32"===a?[e.win32.join("C:\\","ProgramData","AKASecurity",f.WRR)]:[e.posix.join("/etc","aka",f.WRR)]}()){for(let b of a){let a;try{a=(0,d.readFileSync)(b,"utf8")}catch{continue}let c=ai(a);if(!c)continue;let e=f.ZXz.safeParse(c);if(e.success)return e.data}return null}function a4(a,b,c=()=>new Date){if(!b)return a;let{values:d}=b,e={...a};if(void 0!==d.runMode&&(e.runMode=d.runMode),void 0!==d.controlPlane){let b=d.controlPlane,f=a.controlPlane,g=b.label??(f?.endpoint===b.endpoint?f.label:void 0);e.controlPlane={endpoint:b.endpoint,...void 0===g?{}:{label:g},attachedAt:f?.attachedAt??c().toISOString()}}return void 0!==d.historicalAccess&&(e.historicalAccess=d.historicalAccess),void 0!==d.vaultKeyCustody&&(e.vaultKeyCustody=d.vaultKeyCustody),void 0!==d.vaultInlineReveal&&(e.vaultInlineReveal=d.vaultInlineReveal),void 0!==d.dataSharesInPlace&&(e.dataSharesInPlace=d.dataSharesInPlace),void 0!==d.redactFallback&&(e.redactFallback=d.redactFallback),void 0!==d.bodyRetention&&(e.bodyRetention=d.bodyRetention),void 0!==d.vaultConsent&&(e.vaultConsent=d.vaultConsent?a.vaultConsent?.version===f.DzG?a.vaultConsent:{acknowledgedAt:c().toISOString(),version:f.DzG}:void 0),void 0!==d.modelJudgeConsent&&(e.modelJudgeConsent=d.modelJudgeConsent?a.modelJudgeConsent?.payloadVersion===f.kxf?a.modelJudgeConsent:{acknowledgedAt:c().toISOString(),payloadVersion:f.kxf}:void 0),e}function a5(a=a0()){return a4(a6(a),a3())}function a6(a){let b=function(a){let b;try{b=(0,d.readFileSync)(a,"utf8")}catch{return null}return ai(b)??null}((0,e.join)(a1(a),"settings.json"));if(!b)return(0,f.i1j)();try{return f.hd_.parse(b)}catch{return(0,f.i1j)()}}function a7(a=a0(),b){let c=void 0===b?a3():b;return{settings:a4(a6(a),c),managed:c?{present:!0,...void 0===c.organization?{}:{organization:c.organization},lockedFields:c.lockedFields,...void 0===c.unknownLockedFields?{}:{unknownLockedCount:c.unknownLockedFields.length},...void 0===c.unknownValueFields?{}:{unknownValueCount:c.unknownValueFields.length}}:f.MhX}}new Int32Array(new SharedArrayBuffer(4));class a8 extends Error{constructor(a,b,c,d){super(function(a,b,c,d){switch(d){case"lock":return`refusing to re-assign '${a}': its policy is set by the connected control plane`;case"disable":return`refusing to disable '${a}': it is governed by the connected control plane`;case"floor":return`refusing to set '${a}' to '${b??"unassigned"}': the connected control plane requires at least '${c}'`}}(a,b,c,d)),this.name="PolicyFloorError",this.pack=a,this.attempted=b,this.floor=c,this.refusal=d}}function a9(a=a0()){if(!(0,f.lgf)(a5(a)))return null;let b=function(a=a0()){try{let b=(0,d.readFileSync)((0,e.join)(a2(a),"policy-cache.json"),"utf8"),c=JSON.parse(b);if("object"!=typeof c||null===c)return null;return f.vap.parse(c.bundle)}catch{return null}}(a);if(null===b)return null;let c=function(a){let b=new Map,c=new Map;for(let d of a)d.enabled&&("ruleId"in d.target?b.has(d.target.ruleId)||b.set(d.target.ruleId,d.action):c.has(d.target.category)||c.set(d.target.category,d.action));return{byRuleId:b,byCategory:c}}(b.policies);return{floorFor:a=>(function(a,b,{byRuleId:c,byCategory:d}){let e=null;for(let b of a){let a=c.get(b.id)??d.get(b.category);void 0!==a&&(e=null===e?a:(0,f.Lq6)(e,a))}return null===e?null:{floor:(0,f.GWi)(e),locked:function(a,b,c){let d=new Set(b.map(a=>a.id)),e=new Set(b.map(a=>a.category)),f=b.some(a=>c.has(a.id));return a.some(a=>!!a.enabled&&"authored"===a.provenance&&("ruleId"in a.target?d.has(a.target.ruleId):f&&e.has(a.target.category)))}(b,a,c)}})(a,b.policies,c)}}function ba(a){let b=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-.]+))?$/.exec(a.trim());return b?{core:[Number(b[1]),Number(b[2]),Number(b[3])],pre:b[4]?b[4].split("."):[]}:null}let bb=f.Jr;function bc(a){return a.map(a=>{var b;return`${a.namespace}/${a.packId}@${a.version}#${b=a.rulesJson,(0,m.createHash)("sha256").update(b).digest("hex")}`}).sort().join(",")}function bd(a){let b=/^(\d+)\.(\d+)\.(\d+)/.exec(a);return b?[Number(b[1]),Number(b[2]),Number(b[3])]:null}class be{constructor(a,b){this.db=a,this.baseDir=b,this.insertMissingStmt=a.prepare(`INSERT INTO installed_packs (id, namespace, pack_id, version, name, rules_json, enabled, created_at, updated_at)
|
|
537
|
+
VALUES (:id, :namespace, :packId, :version, :name, :rulesJson, 1, :now, :now)
|
|
538
|
+
ON CONFLICT (namespace, pack_id) DO NOTHING`),this.upsertAvailableStmt=a.prepare(`INSERT INTO available_packs (id, namespace, pack_id, version, name, rules_json, recorded_by, updated_at)
|
|
539
|
+
VALUES (:id, :namespace, :packId, :version, :name, :rulesJson, :recordedBy, :now)
|
|
540
|
+
ON CONFLICT (namespace, pack_id) DO UPDATE SET
|
|
541
|
+
version = excluded.version,
|
|
542
|
+
name = excluded.name,
|
|
543
|
+
rules_json = excluded.rules_json,
|
|
544
|
+
recorded_by = excluded.recorded_by,
|
|
545
|
+
updated_at = excluded.updated_at
|
|
546
|
+
WHERE available_packs.version <> excluded.version
|
|
547
|
+
OR available_packs.name <> excluded.name
|
|
548
|
+
OR available_packs.rules_json <> excluded.rules_json`),this.signatureStmt=a.prepare("SELECT namespace, pack_id AS packId, version, rules_json AS rulesJson FROM available_packs"),this.packRulesStmt=a.prepare(`SELECT rules_json AS rulesJson FROM installed_packs
|
|
549
|
+
WHERE namespace = ? AND pack_id = ?`)}recordInventory(a,b){if(0!==a.length)try{let c=a.map(a=>({namespace:a.namespace,packId:a.packId,version:a.version,name:a.name,rulesJson:JSON.stringify(a.rules),ruleIds:new Set(a.rules.map(a=>a.id))}));if(this.storedSignature()===bc(c))return;let d=Date.now();E(this.db,()=>{let a=this.mirrorState(),e=!1;for(let f of c){let c={id:(0,m.randomUUID)(),namespace:f.namespace,packId:f.packId,version:f.version,name:f.name,rulesJson:f.rulesJson,now:d},g=a.get(`${f.namespace}/${f.packId}`);void 0===g||!function(a,b){let c=bd(a.version);if(null===c)return!0;let d=bd(b.version);if(null===d)return!1;for(let a=0;a<3;a++){let b=c[a]??0,e=d[a]??0;if(b!==e)return b<e}for(let c of b.ruleIds)if(!a.ruleIds.has(c))return!0;return!1}(f,g)?this.upsertAvailableStmt.run({...c,id:(0,m.randomUUID)(),recordedBy:b?.recordedBy??null}):e=!0,this.insertMissingStmt.run(c)}e||this.pruneAvailable(c.map(a=>`${a.namespace}/${a.packId}`))},"IMMEDIATE")}catch{}}mirrorState(){return new Map(K(this.db.prepare("SELECT namespace, pack_id AS packId, version, rules_json AS rulesJson FROM available_packs")).map(a=>[`${a.namespace}/${a.packId}`,{version:a.version,ruleIds:function(a){let b=new Set,c=ah(a,[]);if(!Array.isArray(c))return b;for(let a of c)if(a&&"object"==typeof a){let c=a.id;"string"==typeof c&&b.add(c)}return b}(a.rulesJson)}]))}pruneAvailable(a){let b=K(this.db.prepare("SELECT namespace, pack_id AS packId FROM available_packs")),c=new Set(a),d=this.db.prepare("DELETE FROM available_packs WHERE namespace = ? AND pack_id = ?");for(let a of b)c.has(`${a.namespace}/${a.packId}`)||d.run(a.namespace,a.packId)}applyUpdate(a,b){if(this.db.isTransaction)throw Error("applyUpdate must not be called inside an open transaction");let c=!1;return E(this.db,()=>{this.db.exec("UPDATE _pack_write_gate SET open = 1 WHERE id = 1");let d=this.db.prepare(`UPDATE installed_packs SET
|
|
550
|
+
version = (SELECT a.version FROM available_packs a
|
|
551
|
+
WHERE a.namespace = :namespace AND a.pack_id = :packId),
|
|
552
|
+
name = (SELECT a.name FROM available_packs a
|
|
553
|
+
WHERE a.namespace = :namespace AND a.pack_id = :packId),
|
|
554
|
+
rules_json = (SELECT a.rules_json FROM available_packs a
|
|
555
|
+
WHERE a.namespace = :namespace AND a.pack_id = :packId),
|
|
556
|
+
updated_at = :now
|
|
557
|
+
WHERE namespace = :namespace AND pack_id = :packId
|
|
558
|
+
AND EXISTS (SELECT 1 FROM available_packs a
|
|
559
|
+
WHERE a.namespace = :namespace AND a.pack_id = :packId)`).run({namespace:a,packId:b,now:Date.now()});this.db.exec("UPDATE _pack_write_gate SET open = 0 WHERE id = 1"),c=Number(d.changes)>0},"IMMEDIATE"),c}installedRuleset(){let a=K(this.db.prepare(`SELECT enabled, policy_id AS policyId, rules_json AS rulesJson, version,
|
|
560
|
+
namespace, pack_id AS packId
|
|
561
|
+
FROM installed_packs
|
|
562
|
+
ORDER BY namespace, pack_id`)),b={installedPacks:a.length,enabledPacks:0,rules:[],invalidRules:0,rejectedRules:[],ruleActions:new Map,ruleVersions:new Map,reversibleRules:new Set},c=(a,c,d)=>{b.rejectedRules.length>=10||b.rejectedRules.push({pack:a,ruleId:c,reason:d})};for(let d of a){let a;if(!M(d.enabled))continue;b.enabledPacks+=1;let e=(0,f.DhA)(d.policyId),g=(0,f.TdZ)(d.policyId),h=`${d.namespace}/${d.packId}`;try{a=JSON.parse(d.rulesJson)}catch{b.invalidRules+=1,c(h,null,"rules_json: malformed JSON");continue}if(!Array.isArray(a)){b.invalidRules+=1,c(h,null,"rules_json: not an array");continue}for(let i of a){let a=f.jON.safeParse(i);a.success?(b.rules.push(a.data),b.ruleActions.set(a.data.id,e),b.ruleVersions.set(a.data.id,d.version),g?b.reversibleRules.add(a.data.id):b.reversibleRules.delete(a.data.id)):(b.invalidRules+=1,c(h,function(a){if("object"!=typeof a||null===a)return null;let b=a.id;return f.jON.shape.id.safeParse(b).success?b:null}(i),function(a){let b=a.issues[0];if(!b)return"unknown";let c=b.path.map(a=>String(a)).join(".");return c?`${c}: ${b.code}`:b.code}(a.error)))}}return b}newestRecordedBinary(){let a=K(this.db.prepare("SELECT DISTINCT recorded_by AS recordedBy FROM available_packs WHERE recorded_by IS NOT NULL")),b=null;for(let c of a){let a=c.recordedBy.lastIndexOf("@");if(a<=0||a===c.recordedBy.length-1)continue;let d=c.recordedBy.slice(0,a),e=c.recordedBy.slice(a+1);null!==ba(e)&&(null===b||function(a,b){let c=ba(a),d=ba(b);if(!c||!d)return 0;for(let a=0;a<3;a++){let b=c.core[a]??0,e=d.core[a]??0;if(b!==e)return b<e?-1:1}return function(a,b){if(0===a.length&&0===b.length)return 0;if(0===a.length)return 1;if(0===b.length)return -1;let c=Math.min(a.length,b.length);for(let d=0;d<c;d++){let c=a[d]??"",e=b[d]??"";if(c===e)continue;let f=/^\d+$/.test(c),g=/^\d+$/.test(e);if(f&&!g)return -1;if(!f&&g)return 1;if(f&&g)return Number(c)<Number(e)?-1:1;return c<e?-1:1}return a.length===b.length?0:a.length<b.length?-1:1}(c.pre,d.pre)}(e,b.version)>0)&&(b={binary:d,version:e})}return b}counts(){return Promise.resolve(L(this.db.prepare(`SELECT count(*) AS packs,
|
|
563
|
+
coalesce(sum(json_array_length(rules_json)), 0) AS rules,
|
|
564
|
+
coalesce(sum(enabled), 0) AS enabled
|
|
565
|
+
FROM installed_packs`))??{packs:0,rules:0,enabled:0})}countsByPolicyId(){return P(this.db,`SELECT coalesce(policy_id, '${bb}') AS k, count(*) AS n
|
|
566
|
+
FROM installed_packs
|
|
567
|
+
GROUP BY k`)}listByPolicyId(a){return K(this.db.prepare(`SELECT namespace, pack_id AS packId, name, enabled, rules_json AS rulesJson
|
|
568
|
+
FROM installed_packs
|
|
569
|
+
WHERE coalesce(policy_id, '${bb}') = ?
|
|
570
|
+
ORDER BY name ASC`),[a]).map(a=>({id:`${a.namespace}/${a.packId}`,name:a.name,ruleCount:aI(a.rulesJson).length,enabled:M(a.enabled)}))}packFloorRules(a,b){let c=L(this.packRulesStmt,[a,b]);return c?aI(c.rulesJson).map(a=>({id:a.id,category:a.category})):[]}policyFloor(a,b){return void 0===this.baseDir?null:function(a,b=a0()){let c=a9(b);return null===c?null:c.floorFor(a)}(this.packFloorRules(a,b),this.baseDir)}policyFloors(a){let b=new Map;if(void 0===this.baseDir)return b;let c=a9(this.baseDir);if(null===c)return b;for(let d of a){let a=c.floorFor(this.packFloorRules(d.namespace,d.packId));null!==a&&b.set(`${d.namespace}/${d.packId}`,a)}return b}setPolicy(a,b,c){if(null!==c&&!f.HUb.safeParse(c).success)throw Error(`Unknown policy '${c}'. Must be one of: ${f.V0H.join(", ")}.`);let d=this.policyFloor(a,b);if(null!==d){let e=function(a,b){if(b.locked)return"lock";let c=a??f.Jr;return(0,f.T2I)((0,f.fhc)(c),(0,f.fhc)(b.floor))?null:"floor"}(c,d);if(null!==e)throw new a8(`${a}/${b}`,c,d.floor,e)}return Number(this.db.prepare(`UPDATE installed_packs SET policy_id = :policyId, updated_at = :now
|
|
571
|
+
WHERE namespace = :namespace AND pack_id = :packId`).run({policyId:c,now:Date.now(),namespace:a,packId:b}).changes)>0}setEnabled(a,b,c){let d=this.policyFloor(a,b);if(null!==d){let e=null===d||c?null:"disable";if(null!==e)throw new a8(`${a}/${b}`,null,d.floor,e)}return Number(this.db.prepare(`UPDATE installed_packs SET enabled = :enabled, updated_at = :now
|
|
572
|
+
WHERE namespace = :namespace AND pack_id = :packId`).run({enabled:+!!c,now:Date.now(),namespace:a,packId:b}).changes)>0}storedSignature(){return bc(K(this.signatureStmt))}}class bf{constructor(a){this.db=a,this.upsertStmt=a.prepare(`INSERT INTO inventory
|
|
573
|
+
(id, object_type, location, title, host_id, attributes, first_seen, last_seen)
|
|
574
|
+
VALUES
|
|
575
|
+
(:id, :objectType, :location, :title, :hostId, :attributes, :firstSeen, :lastSeen)
|
|
576
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
577
|
+
location = excluded.location,
|
|
578
|
+
title = excluded.title,
|
|
579
|
+
host_id = excluded.host_id,
|
|
580
|
+
attributes = excluded.attributes,
|
|
581
|
+
last_seen = excluded.last_seen`)}upsert(a,b=Date.now()){var c,d;let e=(c=a.objectType,d=a.identityKey,o((0,f.tTV)(["inventory",c,d]))),g=(0,f.gzP)(a,e,b);return this.upsertStmt.run(N({id:g.id,objectType:g.objectType,location:g.location,title:g.title,hostId:g.hostId,attributes:g.attributes,firstSeen:g.firstSeen,lastSeen:g.lastSeen})),e}findById(a){return L(this.db.prepare("SELECT * FROM inventory WHERE id = :id"),{id:a})}distinctTitles(a){return K(this.db.prepare(`SELECT DISTINCT title FROM inventory
|
|
582
|
+
WHERE object_type = :objectType AND title IS NOT NULL
|
|
583
|
+
ORDER BY title`),{objectType:a}).map(a=>a.title)}osVersions(){return K(this.db.prepare(`SELECT DISTINCT os_version AS value FROM inventory
|
|
584
|
+
WHERE object_type = 'host' AND os_version IS NOT NULL
|
|
585
|
+
ORDER BY value`)).map(a=>a.value)}}let bg=["config","skill","mcp","hook"],bh=new Set(f.SHn.options),bi="(url IS NULL OR (url NOT LIKE '%/.claude/worktrees/%' AND url NOT LIKE '%\\.claude\\worktrees\\%'))",bj={[f.tLs.ClaudeCode]:"Claude Code",[f.tLs.Cursor]:"Cursor",[f.tLs.Codex]:"Codex",[f.tLs.Antigravity]:"Antigravity",[f.tLs.Copilot]:"GitHub Copilot"},bk={accessCounts:{open:0,approved:0,blocked:0,total:0},findingsCount:0},bl=a=>a.toLowerCase().replace(/[\s-]/g,""),bm={ClaudeCode:bl(f.Zdp.ClaudeCode),Cursor:bl(f.Zdp.Cursor),Codex:bl(f.Zdp.Codex),Antigravity:bl(f.Zdp.Antigravity),Copilot:bl(f.Zdp.Copilot)};function bn(a,b){if(a.provider&&bh.has(a.provider))return a.provider;let c=bl(b.title??"");return c.includes(bm.ClaudeCode)||"claude"===c?f.tLs.ClaudeCode:c.includes(bm.Cursor)?f.tLs.Cursor:c.includes(bm.Codex)?f.tLs.Codex:c.includes(bm.Antigravity)?f.tLs.Antigravity:c.includes(bm.Copilot)?f.tLs.Copilot:null}function bo(a){return a.some(a=>{let b=ah(a.attributes,{});return"sample"!==b.provenance&&bn(b,a)===f.tLs.ClaudeCode})}function bp(a){let b={id:a.id,type:a.assetType,name:a.name,sub:a.sub??"",flags:ah(a.flagsJson,[])};return"mcp"===a.assetType&&a.effectiveTrust&&(b.trust=a.effectiveTrust),b}function bq(a){let b="update_available"===a.status?["update"]:[],c={source:a.source,scope:a.scope};return void 0!==a.installedVersion&&(c.installedVersion=a.installedVersion),void 0!==a.latestVersion&&(c.latestVersion=a.latestVersion),void 0!==a.updatedAt&&(c.updatedAt=a.updatedAt),{id:a.id,assetType:"skill",name:a.name,sub:`Skill \xb7 ${a.source}`,description:a.description??null,flagsJson:JSON.stringify(b),metaJson:JSON.stringify(c),trust:null,toolsJson:null,effectiveTrust:null}}function br(a){let b="egress"===a.status?["risk"]:"conflict"===a.status?["conflict"]:"unknown"===a.status?["unknown"]:[],c={event:a.event,command:a.command,scope:a.scope,status:a.status};return void 0!==a.matcher&&(c.matcher=a.matcher),void 0!==a.pluginName&&(c.pluginName=a.pluginName),a.warnings.length>0&&(c.warnings=a.warnings),{id:a.id,assetType:"hook",name:bu(a.command.trim(),64),sub:a.matcher?`Hook \xb7 ${a.event} \xb7 ${a.matcher}`:`Hook \xb7 ${a.event}`,description:a.warnings.length>0?a.warnings.join(" \xb7 "):null,flagsJson:JSON.stringify(b),metaJson:JSON.stringify(c),trust:null,toolsJson:null,effectiveTrust:null}}function bs(a){let b={scope:a.scope,transport:a.transport};return void 0!==a.command&&(b.command=a.command),void 0!==a.url&&(b.url=a.url),void 0!==a.envKeys&&(b.envKeys=a.envKeys),void 0!==a.pluginName&&(b.pluginName=a.pluginName),void 0!==a.marketplace&&(b.marketplace=a.marketplace),void 0!==a.project&&(b.project=a.project),{id:a.id,assetType:"mcp",name:a.name,sub:`MCP server \xb7 ${a.transport} \xb7 ${bu(function(a){if(void 0!==a.url)try{return new URL(a.url).host}catch{return a.url}return a.command??a.name}(a),48)}`,description:null,flagsJson:"[]",metaJson:JSON.stringify(b),trust:"unapproved",toolsJson:null,effectiveTrust:a.trust}}function bt(a){let b=a.untracked?["untracked"]:[],c={kind:a.kind,scope:a.scope,path:a.path};return void 0!==a.detail&&(c.detail=a.detail),void 0!==a.entryCount&&(c.entryCount=a.entryCount),void 0!==a.updatedAt&&(c.updatedAt=a.updatedAt),{id:a.id,assetType:"config",name:a.name,sub:a.kind,description:a.detail??null,flagsJson:JSON.stringify(b),metaJson:JSON.stringify(c),trust:null,toolsJson:null,effectiveTrust:null}}function bu(a,b){return a.length>b?`${a.slice(0,b-1)}…`:a}function bv(a,b,c){let d=ah(a.attributes,{});return{id:a.id,name:a.name??"",repo:a.url??"",visibility:d.visibility??"private",language:d.language??"",policyDefault:d.policyDefault??"approved",updatedAt:new Date(a.lastSeen).toISOString(),accessCounts:b,findingsCount:c}}function bw(a){return{path:a.path,name:a.name,origin:a.origin,access:a.effectiveAccess,isCustom:null!==a.overrideAccess&&a.overrideAccess!==a.defaultAccess,findings:a.findingsCount,blockedAt:null!==a.blockedAtMs?new Date(a.blockedAtMs).toISOString():null,note:a.note}}class bx{constructor(a){this.db=a}getInventoryStats(){let a=P(this.db,"SELECT asset_type AS k, count(*) AS n FROM inventory_asset GROUP BY asset_type"),b={project:0,skill:a.get("skill")??0,mcp:a.get("mcp")??0,hook:a.get("hook")??0,config:a.get("config")??0};b.project=O(this.db,`SELECT count(*) AS n FROM source_project WHERE ${bi}`);let c=P(this.db,`SELECT coalesce(o.trust, a.trust) AS k, count(*) AS n
|
|
586
|
+
FROM inventory_asset a
|
|
587
|
+
LEFT JOIN mcp_trust_override o ON o.asset_id = a.id
|
|
588
|
+
WHERE a.asset_type = 'mcp' AND coalesce(o.trust, a.trust) IS NOT NULL
|
|
589
|
+
GROUP BY coalesce(o.trust, a.trust)`),d={"known-good":c.get("known-good")??0,risky:c.get("risky")??0,unapproved:c.get("unapproved")??0},e=O(this.db,`SELECT count(*) AS n FROM inventory
|
|
590
|
+
WHERE object_type = 'harness'
|
|
591
|
+
AND (last_seen >= :liveSince OR json_extract(attributes, '$.provenance') = 'sample')`,{liveSince:Date.now()-2592e6}),f=O(this.db,"SELECT count(*) AS n FROM inventory_asset WHERE flags_json <> '[]'"),g=O(this.db,"SELECT count(DISTINCT project_id) AS n FROM project_file WHERE findings_count > 0"),h=this.configAssetRows();for(let a of h)b[a.assetType]+=1,"mcp"===a.assetType&&a.effectiveTrust&&(d[a.effectiveTrust]+=1);return Promise.resolve({attention:f+g+h.filter(a=>"[]"!==a.flagsJson).length,byType:b,harnesses:e,mcpTrust:d})}listHarnesses(a){let b=this.fetchHarnessRows();if(0===b.length)return Promise.resolve({items:[]});let c=new Map;for(let a of b){let b=bn(ah(a.attributes,{}),a);if(!b)continue;let d=c.get(b);d?d.push(a):c.set(b,[a])}let d=this.assetsByHarness(b.map(a=>a.id),a),e=[...new Set(b.flatMap(a=>ah(a.attributes,{}).projectIds??[]))],g=this.fetchProjectsByIds(e),h=this.projectAggregates(e),i=this.configAssetRows(a,bo(b)),j=[];for(let[b,e]of c){let c=e.flatMap(a=>d.get(a.id)??[]),k=e.some(a=>"sample"!==ah(a.attributes,{}).provenance)&&b===f.tLs.ClaudeCode&&i.length>0?[...c,...i].sort((a,b)=>a.name.localeCompare(b.name)):c;if(a&&0===k.length)continue;let l=e[0];if(!l)continue;let m=ah(l.attributes,{}),n=[...new Set(e.flatMap(a=>ah(a.attributes,{}).projectIds??[]))].map(a=>g.get(a)).filter(a=>void 0!==a).map(a=>{let b=h.get(a.id)??bk;return bv(a,b.accessCounts,b.findingsCount)}),o=e.reduce((a,b)=>a+(ah(b.attributes,{}).sessions??0),0),p=k.reduce((a,b)=>a+ah(b.flagsJson,[]).length,0),q=new Map;for(let a of k){let b=q.get(a.assetType);b?b.push(bp(a)):q.set(a.assetType,[bp(a)])}let r=bg.filter(a=>q.has(a)).map(a=>({type:a,assets:q.get(a)??[]}));j.push({id:b,label:m.label??bj[b],kind:m.kind??m.provider??b,version:m.harness_version??l.harnessVersion??"",sessions:o,assetCount:k.length,flagCount:p,projects:n,categories:r})}return Promise.resolve({items:j})}listAssets(a){let b=this.fetchAssets(a.type,a.q);if(0===b.length)return Promise.resolve({groups:[]});let c=new Map;for(let a of b){let b=c.get(a.assetType);b?b.push(a):c.set(a.assetType,[a])}let d=[...c.entries()].map(([a,b])=>{let c=new Map;for(let a of b)for(let b of ah(a.flagsJson,[]))c.set(b,(c.get(b)??0)+1);let d={type:a,total:b.length,flagRollup:Object.fromEntries(c),items:b.map(bp)};if("mcp"===a){let a=new Map;for(let c of b)c.effectiveTrust&&a.set(c.effectiveTrust,(a.get(c.effectiveTrust)??0)+1);d.trustRollup=Object.fromEntries(a)}return d});return d.sort((a,b)=>bg.indexOf(a.type)-bg.indexOf(b.type)),Promise.resolve({groups:d})}getAsset(a){let b=this.fetchAssetById(a);return Promise.resolve(b?function(a){let b={id:a.id,type:a.assetType,name:a.name,sub:a.sub??"",flags:ah(a.flagsJson,[]),description:a.description??null,trust:"mcp"===a.assetType?a.effectiveTrust??null:null,meta:ah(a.metaJson,{}),finding:null};if("mcp"===a.assetType&&null!==a.toolsJson){let c=ah(a.toolsJson,[]);b.tools="unapproved"===a.effectiveTrust?c.map(a=>({...a,risk:a.risk??"Tool access blocked: MCP server trust is unapproved."})):c}return b}(b):null)}listProjects(a){let b=this.fetchProjects(a),c=this.projectAggregates(b.map(a=>a.id));return Promise.resolve({items:b.map(a=>{let b=c.get(a.id)??bk;return bv(a,b.accessCounts,b.findingsCount)})})}getProjectTree(a,b){let c=this.fetchProjectById(a);if(!c)return Promise.resolve(null);let d=ah(c.attributes,{}),e={id:c.id,repo:c.url??"",visibility:d.visibility??"private"},f=b.path??"";if("blocked"===b.filter){let b=this.fetchProjectFilesBlocked(a);return b.sort((a,b)=>(b.blockedAtMs??0)-(a.blockedAtMs??0)),Promise.resolve({project:e,path:f,files:b.map(bw)})}if(void 0!==b.q&&""!==b.q)return Promise.resolve({project:e,path:f,files:this.fetchProjectFilesSearch(a,b.q).map(bw)});let g=this.fetchProjectFilesUnder(a,f),h=""===f?"":`${f}/`,i=[],j=new Map;for(let a of g){let b=h.length>0?a.path.slice(h.length):a.path,c=b.indexOf("/");if(-1===c)i.push(a);else{let d=b.slice(0,c),e=j.get(d)??[];e.push(a),j.set(d,e)}}let k=[...j.entries()].sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>({name:a,path:h.length>0?`${f}/${a}`:a,accessCounts:function(a){let b={open:0,approved:0,blocked:0,total:0};for(let c of a)b.total++,b[c.effectiveAccess]++;return b}(b)}));return Promise.resolve({project:e,path:f,folders:k,files:i.map(bw)})}getProjectFile(a,b){let c=this.fetchProjectById(a);if(!c)return Promise.resolve(null);let d=this.fetchProjectFile(a,b);if(!d)return Promise.resolve(null);let e=ah(c.attributes,{});return Promise.resolve({...bw(d),project:{repo:c.url??"",visibility:e.visibility??"private",language:e.language??"",policyDefault:e.policyDefault??"approved",updatedAt:new Date(c.lastSeen).toISOString()},findingsRefs:[]})}setFileAccess(a,b,c){let d=this.fetchProjectFile(a,b);return!!d&&(c===d.defaultAccess?this.db.prepare("DELETE FROM file_access_override WHERE project_id = ? AND path = ?").run(a,b):this.db.prepare(`INSERT INTO file_access_override (id, project_id, path, access, created_at, updated_at)
|
|
592
|
+
VALUES (:id, :projectId, :path, :access, :now, :now)
|
|
593
|
+
ON CONFLICT (project_id, path) DO UPDATE SET access = excluded.access, updated_at = excluded.updated_at`).run({id:(0,m.randomUUID)(),projectId:a,path:b,access:c,now:Date.now()}),!0)}setMcpTrust(a,b){let c=this.fetchAssetById(a);return c?"mcp"!==c.assetType?"not_mcp":(b===c.trust?this.db.prepare("DELETE FROM mcp_trust_override WHERE asset_id = ?").run(a):this.db.prepare(`INSERT INTO mcp_trust_override (id, asset_id, trust, created_at, updated_at)
|
|
594
|
+
VALUES (:id, :assetId, :trust, :now, :now)
|
|
595
|
+
ON CONFLICT (asset_id) DO UPDATE SET trust = excluded.trust, updated_at = excluded.updated_at`).run({id:(0,m.randomUUID)(),assetId:a,trust:b,now:Date.now()}),this.configRowsCache=void 0,"ok"):"not_found"}fetchHarnessRows(){return K(this.db.prepare(`SELECT id, title, attributes, harness_version AS harnessVersion
|
|
596
|
+
FROM inventory
|
|
597
|
+
WHERE object_type = 'harness'
|
|
598
|
+
AND (last_seen >= :liveSince OR json_extract(attributes, '$.provenance') = 'sample')`),{liveSince:Date.now()-2592e6})}assetsByHarness(a,b){let c=new Map;if(0===a.length)return c;let d=[...a],e=`ha.harness_id IN (${A(a.length)})`;if(b){let a=B(b);e+=` AND ${C(["a.name","a.sub"])}`,d.push(a,a)}for(let a of K(this.db.prepare(`SELECT ha.harness_id AS harnessInvId, a.id, a.asset_type AS assetType, a.name, a.sub,
|
|
599
|
+
a.description, a.flags_json AS flagsJson, a.meta_json AS metaJson, a.trust,
|
|
600
|
+
a.tools_json AS toolsJson, coalesce(o.trust, a.trust) AS effectiveTrust
|
|
601
|
+
FROM harness_asset ha
|
|
602
|
+
JOIN inventory_asset a ON a.id = ha.asset_id
|
|
603
|
+
LEFT JOIN mcp_trust_override o ON o.asset_id = a.id
|
|
604
|
+
WHERE ${e}
|
|
605
|
+
ORDER BY a.name ASC`),d)){let b=a.harnessInvId,[d]=this.mapAssetRows([a]);if(!d)continue;let e=c.get(b);e?e.push(d):c.set(b,[d])}return c}fetchAssets(a,b){let c=[],d=[];if(a&&a.length>0&&(c.push(`a.asset_type IN (${A(a.length)})`),d.push(...a)),b){let a=B(b);c.push(C(["a.name","a.sub"])),d.push(a,a)}let e=c.length?`WHERE ${c.join(" AND ")}`:"",f=this.mapAssetRows(K(this.db.prepare(`SELECT a.id, a.asset_type AS assetType, a.name, a.sub, a.description,
|
|
606
|
+
a.flags_json AS flagsJson, a.meta_json AS metaJson, a.trust,
|
|
607
|
+
a.tools_json AS toolsJson, coalesce(o.trust, a.trust) AS effectiveTrust
|
|
608
|
+
FROM inventory_asset a
|
|
609
|
+
LEFT JOIN mcp_trust_override o ON o.asset_id = a.id
|
|
610
|
+
${e}
|
|
611
|
+
ORDER BY a.name ASC`),d)),g=this.configAssetRows(b).filter(b=>!a||0===a.length||a.includes(b.assetType));return g.length>0?[...f,...g].sort((a,b)=>a.name.localeCompare(b.name)):f}fetchAssetById(a){return this.mapAssetRows(K(this.db.prepare(`SELECT a.id, a.asset_type AS assetType, a.name, a.sub, a.description,
|
|
612
|
+
a.flags_json AS flagsJson, a.meta_json AS metaJson, a.trust,
|
|
613
|
+
a.tools_json AS toolsJson, coalesce(o.trust, a.trust) AS effectiveTrust
|
|
614
|
+
FROM inventory_asset a
|
|
615
|
+
LEFT JOIN mcp_trust_override o ON o.asset_id = a.id
|
|
616
|
+
WHERE a.id = ?`),[a]))[0]??this.configAssetRows().find(b=>b.id===a)??null}mapAssetRows(a){return a.map(a=>({id:a.id,assetType:a.assetType,name:a.name,sub:a.sub??null,description:a.description??null,flagsJson:a.flagsJson??"[]",metaJson:a.metaJson??"{}",trust:a.trust??null,toolsJson:a.toolsJson??null,effectiveTrust:a.effectiveTrust??null}))}configAssetRows(a,b){let c=this.liveConfigAssetRows(b);if(!a)return c;let d=a.toLowerCase();return c.filter(a=>a.name.toLowerCase().includes(d)||(a.sub??"").toLowerCase().includes(d))}liveConfigAssetRows(a){if(!(a??bo(this.fetchHarnessRows())))return[];let b=this.latestConfigScanId();if(null===b)return[];if(this.configRowsCache?.scanId===b)return this.configRowsCache.rows;let c=new aG(this.db).report(),d=[...c.skills.map(bq),...c.hooks.map(br),...c.mcpServers.map(bs),...c.configFiles.map(bt)].sort((a,b)=>a.name.localeCompare(b.name));return this.configRowsCache={scanId:b,rows:d},d}latestConfigScanId(){return aF(this.db)?.id??null}fetchProjects(a){let b=`SELECT id, url, name, attributes, last_seen AS lastSeen FROM source_project
|
|
617
|
+
WHERE ${bi}`,c=[];if(a){let d=B(a);b+=` AND ${C(["name","url"])}`,c.push(d,d)}return b+=" ORDER BY name ASC",K(this.db.prepare(b),c)}fetchProjectById(a){return L(this.db.prepare("SELECT id, url, name, attributes, last_seen AS lastSeen FROM source_project WHERE id = ?"),[a])??null}fetchProjectsByIds(a){let b=new Map;if(0===a.length)return b;for(let c of K(this.db.prepare(`SELECT id, url, name, attributes, last_seen AS lastSeen
|
|
618
|
+
FROM source_project WHERE id IN (${A(a.length)})`),a))b.set(c.id,c);return b}projectAggregates(a){let b=new Map;if(0===a.length)return b;for(let c of K(this.db.prepare(`SELECT f.project_id AS projectId,
|
|
619
|
+
coalesce(o.access, f.default_access) AS eff,
|
|
620
|
+
count(*) AS n,
|
|
621
|
+
coalesce(sum(f.findings_count), 0) AS findings
|
|
622
|
+
FROM project_file f
|
|
623
|
+
LEFT JOIN file_access_override o ON o.project_id = f.project_id AND o.path = f.path
|
|
624
|
+
WHERE f.project_id IN (${A(a.length)})
|
|
625
|
+
GROUP BY f.project_id, eff`),a)){let a=b.get(c.projectId);a||(a={accessCounts:{open:0,approved:0,blocked:0,total:0},findingsCount:0},b.set(c.projectId,a)),a.accessCounts.total+=c.n,a.accessCounts[c.eff]+=c.n,a.findingsCount+=c.findings}return b}fileSelect(a){return`SELECT f.path, f.name, f.origin, f.default_access AS defaultAccess,
|
|
626
|
+
f.findings_count AS findingsCount, f.blocked_at AS blockedAtMs, f.note,
|
|
627
|
+
coalesce(o.access, f.default_access) AS effectiveAccess,
|
|
628
|
+
o.access AS overrideAccess
|
|
629
|
+
FROM project_file f
|
|
630
|
+
LEFT JOIN file_access_override o ON o.project_id = f.project_id AND o.path = f.path
|
|
631
|
+
WHERE ${a}`}mapFileRows(a){return a.map(a=>({path:a.path,name:a.name,origin:a.origin,defaultAccess:a.defaultAccess,findingsCount:a.findingsCount??0,blockedAtMs:a.blockedAtMs??null,note:a.note??null,effectiveAccess:a.effectiveAccess,overrideAccess:a.overrideAccess??null}))}fetchProjectFilesUnder(a,b){return""===b?this.mapFileRows(K(this.db.prepare(this.fileSelect("f.project_id = ? ORDER BY f.path ASC")),[a])):this.mapFileRows(K(this.db.prepare(this.fileSelect("f.project_id = ? AND f.path LIKE ? ESCAPE '\\' ORDER BY f.path ASC")),[a,`${z(b)}/%`]))}fetchProjectFilesSearch(a,b){let c=B(b);return this.mapFileRows(K(this.db.prepare(this.fileSelect("f.project_id = ? AND (f.path LIKE ? ESCAPE '\\' OR f.name LIKE ? ESCAPE '\\') ORDER BY f.path ASC")),[a,c,c]))}fetchProjectFilesBlocked(a){return this.mapFileRows(K(this.db.prepare(this.fileSelect("f.project_id = ? AND coalesce(o.access, f.default_access) = 'blocked' AND f.blocked_at IS NOT NULL")),[a]))}fetchProjectFile(a,b){return this.mapFileRows(K(this.db.prepare(this.fileSelect("f.project_id = ? AND f.path = ?")),[a,b]))[0]??null}}class by{constructor(a){this.db=a}readPolicies(){return Promise.resolve(Q(K(this.db.prepare("SELECT * FROM policies")),a=>{let b=JSON.parse(a.target),c=a.custom_keywords?JSON.parse(a.custom_keywords):void 0;return f.PEm.parse({id:a.id,scope:a.scope,target:b,action:a.action,enabled:M(a.enabled),customKeywords:c})}))}seedDefaults(){if(O(this.db,"SELECT count(*) AS n FROM policies")>0)return;let a=this.db.prepare(`INSERT INTO policies (id, scope, target, action, enabled, created_at, updated_at)
|
|
632
|
+
VALUES (:id, 'global', :target, :action, 1, :now, :now)`);F(this.db,()=>{for(let[b,c]of Object.entries(f.unw))a.run({id:(0,m.randomUUID)(),target:JSON.stringify({category:b}),action:c,now:Date.now()})})}upsertCategoryAction(a,b){let c=Date.now();this.db.prepare(`INSERT INTO policies (id, scope, target, action, enabled, created_at, updated_at)
|
|
633
|
+
VALUES (:id, 'global', :target, :action, 1, :now, :now)
|
|
634
|
+
ON CONFLICT(scope, target) DO UPDATE SET action = excluded.action, enabled = 1, updated_at = excluded.updated_at`).run({id:(0,m.randomUUID)(),target:JSON.stringify({category:a}),action:b,now:c})}capCategoryActions(){return Number(this.db.prepare(`UPDATE policies SET action='warn', updated_at=:now
|
|
635
|
+
WHERE scope='global' AND action IN ('block','redact')
|
|
636
|
+
AND json_extract(target,'$.category') IS NOT NULL`).run({now:Date.now()}).changes)}getCategoryAction(a){let b=this.db.prepare("SELECT action FROM policies WHERE scope='global' AND json_extract(target,'$.category') = :category").get({category:a});return b?.action}}class bz{constructor(a){this.packs=a}getPolicyList(a){if("custom"===a)return Promise.resolve({items:[]});let b=this.packs.countsByPolicyId();return Promise.resolve({items:f.RRF.map(a=>({id:a,kind:"builtin",name:f.ZpU[a].name,enabled:!0,usedByCount:b.get(a)??0}))})}getPolicyStats(){let a=this.packs.countsByPolicyId(),b=f.V0H.reduce((b,c)=>b+(a.get(c)??0),0),c=f.V0H.length;return Promise.resolve({policies:c,builtin:c,custom:0,detectionsGoverned:b})}getPolicyDetail(a){let b=f.V0H.find(b=>b===a);if(void 0===b)return Promise.resolve(null);let c=f.ZpU[b];return Promise.resolve({specVersion:1,id:a,kind:"builtin",name:c.name,enabled:!0,description:c.description,usedBy:this.packs.listByPolicyId(a)})}}class bA{constructor(a){this.db=a,this.maxStampStmt=a.prepare("SELECT coalesce(max(updated_at), 0) AS maxStamp FROM project_file WHERE project_id = :projectId"),this.upsertStmt=a.prepare(`INSERT INTO project_file
|
|
637
|
+
(id, project_id, path, name, origin, default_access, findings_count, blocked_at, note, created_at, updated_at)
|
|
638
|
+
VALUES
|
|
639
|
+
(:id, :projectId, :path, :name, :origin, :defaultAccess, 0, NULL, NULL, :now, :now)
|
|
640
|
+
ON CONFLICT (project_id, path) DO UPDATE SET
|
|
641
|
+
name = excluded.name,
|
|
642
|
+
origin = excluded.origin,
|
|
643
|
+
default_access = excluded.default_access,
|
|
644
|
+
updated_at = excluded.updated_at`),this.pruneStmt=a.prepare("DELETE FROM project_file WHERE project_id = :projectId AND updated_at < :now")}replaceForProject(a,b,c){let d=Math.max(c,(L(this.maxStampStmt,{projectId:a})?.maxStamp??0)+1);for(let c of b.files)this.upsertStmt.run({id:(0,m.randomUUID)(),projectId:a,path:c.path,name:c.name,origin:c.origin,defaultAccess:c.defaultAccess,now:d});b.truncated||this.pruneStmt.run({projectId:a,now:d})}}class bB{constructor(a,b=()=>Date.now(),c=()=>(0,m.randomUUID)()){this.db=a,this.now=b,this.newId=c,this.insertStmt=a.prepare(`INSERT INTO finding_resolution (id, finding_key, status, method, resolved_at, evidence, created_at)
|
|
645
|
+
VALUES (:id, :findingKey, :status, :method, :resolvedAt, :evidence, :createdAt)`),this.latestStmt=a.prepare(`SELECT status, method, resolved_at, evidence
|
|
646
|
+
FROM finding_resolution
|
|
647
|
+
WHERE finding_key = :findingKey
|
|
648
|
+
ORDER BY created_at DESC, rowid DESC
|
|
649
|
+
LIMIT 1`),this.openAtRestStmt=a.prepare(`SELECT DISTINCT f.finding_key AS finding_key
|
|
650
|
+
FROM inspection_findings f
|
|
651
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
652
|
+
WHERE e.event_type = 'code_change'
|
|
653
|
+
AND json_extract(e.attributes, '$.file_path') = :path
|
|
654
|
+
AND f.finding_key IS NOT NULL
|
|
655
|
+
AND ${aT("f")} IS NOT 'resolved'`),this.resolvedAtRestStmt=a.prepare(`SELECT DISTINCT f.finding_key AS finding_key
|
|
656
|
+
FROM inspection_findings f
|
|
657
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
658
|
+
WHERE e.event_type = 'code_change'
|
|
659
|
+
AND json_extract(e.attributes, '$.file_path') = :path
|
|
660
|
+
AND f.finding_key IS NOT NULL
|
|
661
|
+
AND ${aT("f")} = 'resolved'`)}insertResolution(a){this.insertStmt.run({id:this.newId(),findingKey:a.findingKey,status:f.GCf.parse(a.status),method:f.cqq.parse(a.method),resolvedAt:a.resolvedAt,evidence:a.evidence,createdAt:this.now()})}insertResolutions(a){0!==a.length&&E(this.db,()=>{for(let b of a)this.insertResolution(b)},"IMMEDIATE")}latestByKey(a){let b=L(this.latestStmt,{findingKey:a});if(b)return{status:b.status,method:b.method,resolvedAt:b.resolved_at,evidence:b.evidence??""}}openAtRestKeysForPath(a){return K(this.openAtRestStmt,{path:a}).map(a=>a.finding_key)}resolvedAtRestKeysForPath(a){return K(this.resolvedAtRestStmt,{path:a}).map(a=>a.finding_key)}}class bC{constructor(a){this.db=a,this.upsertStmt=a.prepare(`INSERT INTO rule_probe_cache (rule_key, verdict, worst_probe_ms, checked_at)
|
|
662
|
+
VALUES (:ruleKey, :verdict, :worstProbeMs, :checkedAt)
|
|
663
|
+
ON CONFLICT (rule_key) DO UPDATE SET
|
|
664
|
+
verdict = excluded.verdict,
|
|
665
|
+
worst_probe_ms = excluded.worst_probe_ms,
|
|
666
|
+
checked_at = excluded.checked_at`),this.readStmt=a.prepare("SELECT verdict, worst_probe_ms AS worstProbeMs FROM rule_probe_cache WHERE rule_key = :ruleKey"),this.countQuarantinedStmt=a.prepare("SELECT COUNT(*) AS n FROM rule_probe_cache WHERE verdict = 'quarantined'"),this.clearQuarantinedStmt=a.prepare("DELETE FROM rule_probe_cache WHERE verdict = 'quarantined'")}getVerdict(a){return L(this.readStmt,{ruleKey:a})}countQuarantined(){return L(this.countQuarantinedStmt,{})?.n??0}clearQuarantined(){let a=this.countQuarantined();return{refused:!F(this.db,()=>{this.clearQuarantinedStmt.run()}),cleared:a-this.countQuarantined()}}setVerdict(a,b,c){F(this.db,()=>{this.upsertStmt.run({ruleKey:a,verdict:b,worstProbeMs:c,checkedAt:Date.now()})})}}class bD{constructor(a){this.db=a,this.upsertStmt=a.prepare(`INSERT INTO scan_ledger (path, mtime, content_hash, ruleset_hash, scanned_at)
|
|
667
|
+
VALUES (:path, :mtime, :contentHash, :rulesetHash, :scannedAt)
|
|
668
|
+
ON CONFLICT (path) DO UPDATE SET
|
|
669
|
+
mtime = excluded.mtime,
|
|
670
|
+
content_hash = excluded.content_hash,
|
|
671
|
+
ruleset_hash = excluded.ruleset_hash,
|
|
672
|
+
scanned_at = excluded.scanned_at`),this.readStmt=a.prepare(`SELECT path, mtime, content_hash AS contentHash
|
|
673
|
+
FROM scan_ledger WHERE ruleset_hash = :rulesetHash`),this.pathsStmt=a.prepare("SELECT path FROM scan_ledger")}entriesForRuleset(a){return new Map(K(this.readStmt,{rulesetHash:a}).map(a=>[a.path,{mtime:a.mtime,contentHash:a.contentHash}]))}allPaths(){return K(this.pathsStmt).map(a=>a.path)}upsertEntries(a){if(0===a.length)return;let b=Date.now();F(this.db,()=>{for(let c of a)this.upsertStmt.run({path:c.path,mtime:c.mtime,contentHash:c.contentHash,rulesetHash:c.rulesetHash,scannedAt:b})})}}function bE(a,b){return void 0===a?b:Math.min(Math.max(1,Math.trunc(a)),f.u8Q)}let bF=`(v.occurrence_count > 1
|
|
674
|
+
OR (SELECT count(*) FROM secret_vault_sighting s WHERE s.pointer_id = v.pointer_id) > 1)`,bG=`v.pointer_id, v.category, v.rule_id, v.masked_match, v.provider,
|
|
675
|
+
v.occurrence_count, v.first_seen, v.last_seen`,bH=`
|
|
676
|
+
pointer_id AS pointerId,
|
|
677
|
+
value_fingerprint AS valueFingerprint,
|
|
678
|
+
value_identity_fingerprint AS valueIdentityFingerprint,
|
|
679
|
+
fingerprint_key_version AS fingerprintKeyVersion,
|
|
680
|
+
key_version AS keyVersion,
|
|
681
|
+
format_version AS formatVersion,
|
|
682
|
+
category,
|
|
683
|
+
rule_id AS ruleId,
|
|
684
|
+
masked_match AS maskedMatch,
|
|
685
|
+
provider,
|
|
686
|
+
ciphertext,
|
|
687
|
+
nonce,
|
|
688
|
+
auth_tag AS authTag,
|
|
689
|
+
user_authorized AS userAuthorized,
|
|
690
|
+
occurrence_count AS occurrenceCount,
|
|
691
|
+
first_seen AS firstSeen,
|
|
692
|
+
last_seen AS lastSeen`;function bI(a){let{provider:b,userAuthorized:c,...d}=a,e={...d,userAuthorized:0!==c};return null===b?e:{...e,provider:b}}class bJ{constructor(a){this.db=a,this.insertStmt=a.prepare(`INSERT INTO secret_vault (
|
|
693
|
+
pointer_id, value_fingerprint, value_identity_fingerprint,
|
|
694
|
+
fingerprint_key_version, key_version, format_version, category, rule_id, masked_match, provider,
|
|
695
|
+
ciphertext, nonce, auth_tag,
|
|
696
|
+
user_authorized, occurrence_count, first_seen, last_seen
|
|
697
|
+
) VALUES (
|
|
698
|
+
:pointerId, :valueFingerprint, :valueIdentityFingerprint,
|
|
699
|
+
:fingerprintKeyVersion, :keyVersion, :formatVersion, :category, :ruleId, :maskedMatch, :provider,
|
|
700
|
+
:ciphertext, :nonce, :authTag,
|
|
701
|
+
:userAuthorized, 1, :now, :now
|
|
702
|
+
)`),this.bumpStmt=a.prepare(`UPDATE secret_vault
|
|
703
|
+
SET occurrence_count = occurrence_count + 1, last_seen = :now,
|
|
704
|
+
user_authorized = max(user_authorized, :userAuthorized)
|
|
705
|
+
WHERE value_fingerprint = :valueFingerprint`),this.byPointerStmt=a.prepare(`SELECT ${bH} FROM secret_vault WHERE pointer_id = :pointerId`),this.byFingerprintStmt=a.prepare(`SELECT ${bH} FROM secret_vault WHERE value_fingerprint = :valueFingerprint`),this.listStmt=a.prepare(`SELECT ${bH} FROM secret_vault ORDER BY first_seen`),this.replaceCiphertextStmt=a.prepare(`UPDATE secret_vault
|
|
706
|
+
SET key_version = :keyVersion, ciphertext = :ciphertext, nonce = :nonce, auth_tag = :authTag
|
|
707
|
+
WHERE pointer_id = :pointerId`),this.refreshFingerprintStmt=a.prepare(`UPDATE secret_vault
|
|
708
|
+
SET value_fingerprint = :valueFingerprint,
|
|
709
|
+
value_identity_fingerprint = :valueIdentityFingerprint,
|
|
710
|
+
fingerprint_key_version = :fingerprintKeyVersion
|
|
711
|
+
WHERE pointer_id = :pointerId`),this.setIdentityStmt=a.prepare(`UPDATE secret_vault SET value_identity_fingerprint = :valueIdentityFingerprint
|
|
712
|
+
WHERE pointer_id = :pointerId`),this.deleteByPointerStmt=a.prepare("DELETE FROM secret_vault WHERE pointer_id = :pointerId"),this.derefStmt=a.prepare(`INSERT INTO secret_vault_deref (id, pointer_id, at, target, reason, outcome, grant_id, pointer_count)
|
|
713
|
+
VALUES (:id, :pointerId, :at, :target, :reason, :outcome, :grantId, :pointerCount)`)}upsert(a,b){let c=!1;E(this.db,()=>{if(void 0===L(this.byFingerprintStmt,{valueFingerprint:a.valueFingerprint})){this.insertStmt.run(N({pointerId:a.pointerId,valueFingerprint:a.valueFingerprint,valueIdentityFingerprint:a.valueIdentityFingerprint,fingerprintKeyVersion:a.fingerprintKeyVersion,keyVersion:a.keyVersion,formatVersion:a.formatVersion??f.viY,category:a.category,ruleId:a.ruleId,maskedMatch:a.maskedMatch,provider:a.provider,ciphertext:a.ciphertext,nonce:a.nonce,authTag:a.authTag,userAuthorized:+(!0===a.userAuthorized),now:b})),c=!0;return}this.bumpStmt.run({valueFingerprint:a.valueFingerprint,userAuthorized:+(!0===a.userAuthorized),now:b})},"IMMEDIATE");let d=L(this.byFingerprintStmt,{valueFingerprint:a.valueFingerprint});if(void 0===d)throw Error("vault: row vanished immediately after write");return{row:bI(d),minted:c}}byPointerId(a){let b=L(this.byPointerStmt,{pointerId:a});return void 0===b?null:bI(b)}byValueFingerprint(a){let b=L(this.byFingerprintStmt,{valueFingerprint:a});return void 0===b?null:bI(b)}recordDeref(a){this.derefStmt.run(N({id:a.id,pointerId:a.pointerId,at:a.at,target:a.target,reason:a.reason,outcome:a.outcome,grantId:a.grantId,pointerCount:a.pointerCount??1}))}listAll(){return K(this.listStmt).map(bI)}replaceCiphertext(a,b){this.replaceCiphertextStmt.run({pointerId:a,...b})}setIdentityFingerprint(a,b){this.setIdentityStmt.run({pointerId:a,valueIdentityFingerprint:b})}refreshFingerprint(a,b){this.refreshFingerprintStmt.run({pointerId:a,...b})}purgeAll(){let a=0;return E(this.db,()=>{a=this.countEntries(),this.db.exec("DELETE FROM secret_vault")},"IMMEDIATE"),a}deleteByPointerIds(a){if(0===a.length)return[];let b=[];return E(this.db,()=>{for(let c of a)Number(this.deleteByPointerStmt.run({pointerId:c}).changes)>0&&b.push(c)},"IMMEDIATE"),b}recordSighting(a,b){this.db.prepare(`INSERT INTO secret_vault_sighting (id, pointer_id, location, kind, first_seen, last_seen)
|
|
714
|
+
VALUES (:id, :pointerId, :location, :kind, :now, :now)
|
|
715
|
+
ON CONFLICT (pointer_id, location) DO UPDATE SET last_seen = :now`).run({id:(0,m.randomUUID)(),pointerId:a.pointerId,location:a.location,kind:a.kind,now:b})}sightingsFor(a){let b=new Map(a.map(a=>[a,[]]));if(0===a.length)return b;for(let c of K(this.db.prepare(`SELECT pointer_id, location, kind, first_seen, last_seen
|
|
716
|
+
FROM secret_vault_sighting
|
|
717
|
+
WHERE pointer_id IN (${A(a.length)})
|
|
718
|
+
ORDER BY last_seen DESC`),a))b.get(c.pointer_id)?.push({location:c.location,kind:c.kind,firstSeen:new Date(c.first_seen).toISOString(),lastSeen:new Date(c.last_seen).toISOString()});return b}toInventoryEntries(a){let b=this.sightingsFor(a.map(a=>a.pointer_id));return a.map(a=>({pointerId:a.pointer_id,category:a.category,...null===a.provider?{}:{provider:a.provider},maskedMatch:a.masked_match,occurrences:a.occurrence_count,firstSeen:new Date(a.first_seen).toISOString(),lastSeen:new Date(a.last_seen).toISOString(),revealGrantId:a.grant_id,sightings:b.get(a.pointer_id)??[]}))}listInventory(a={},b=Date.now()){let c=bE(a.limit,f.mBk),d=void 0===a.cursor?null:ak(a.cursor),e=null===d?"":"WHERE (v.last_seen < :cursorLastSeen OR (v.last_seen = :cursorLastSeen AND v.pointer_id < :cursorPointerId))",g=K(this.db.prepare(`SELECT ${bG},
|
|
719
|
+
(SELECT e.id FROM exceptions e
|
|
720
|
+
WHERE e.rule_id = v.rule_id
|
|
721
|
+
AND e.value_fingerprint = v.value_identity_fingerprint
|
|
722
|
+
AND e.key_version = v.fingerprint_key_version
|
|
723
|
+
AND ${aQ}
|
|
724
|
+
LIMIT 1) AS grant_id
|
|
725
|
+
FROM secret_vault v
|
|
726
|
+
${e}
|
|
727
|
+
ORDER BY v.last_seen DESC, v.pointer_id DESC
|
|
728
|
+
LIMIT :limit`),N({now:b,limit:c+1,...null===d?{}:{cursorLastSeen:d.startedAtMs,cursorPointerId:d.id}})),h=g.length>c,i=h?g.slice(0,c):g,j=i[i.length-1];return{totals:{values:this.countEntries()},items:this.toInventoryEntries(i),nextCursor:h&&j?aj({startedAtMs:j.last_seen,id:j.pointer_id}):null}}listReuse(a={},b=Date.now()){var c;let d=bE(a.limit,f.mBk),e=void 0===a.cursor?null:function(a){let b=ai(Buffer.from(a,"base64url").toString("utf8"));return void 0!==b&&Number.isInteger(b.occurrences)&&"string"==typeof b.pointerId?{occurrences:b.occurrences,pointerId:b.pointerId}:null}(a.cursor),g=null===e?"":`AND (v.occurrence_count < :cursorOccurrences
|
|
729
|
+
OR (v.occurrence_count = :cursorOccurrences AND v.pointer_id < :cursorPointerId))`,h=K(this.db.prepare(`SELECT ${bG},
|
|
730
|
+
(SELECT e.id FROM exceptions e
|
|
731
|
+
WHERE e.rule_id = v.rule_id
|
|
732
|
+
AND e.value_fingerprint = v.value_identity_fingerprint
|
|
733
|
+
AND e.key_version = v.fingerprint_key_version
|
|
734
|
+
AND ${aQ}
|
|
735
|
+
LIMIT 1) AS grant_id
|
|
736
|
+
FROM secret_vault v
|
|
737
|
+
WHERE ${bF} ${g}
|
|
738
|
+
ORDER BY v.occurrence_count DESC, v.pointer_id DESC
|
|
739
|
+
LIMIT :limit`),N({now:b,limit:d+1,...null===e?{}:{cursorOccurrences:e.occurrences,cursorPointerId:e.pointerId}})),i=h.length>d,j=i?h.slice(0,d):h,k=j[j.length-1];return{totals:{reused:this.countReused()},items:this.toInventoryEntries(j),nextCursor:i&&k?(c={occurrences:k.occurrence_count,pointerId:k.pointer_id},Buffer.from(JSON.stringify(c)).toString("base64url")):null}}listDerefs(a={}){let b=bE(a.limit,f.hdu),c=void 0===a.cursor?null:ak(a.cursor),d=[];!0!==a.includeBatched&&d.push("reason NOT IN ('display', 'view-render')"),null!==c&&d.push("(at < :cursorAt OR (at = :cursorAt AND id < :cursorId))");let e=0===d.length?"":`WHERE ${d.join(" AND ")}`,g=K(this.db.prepare(`SELECT id, pointer_id, at, target, reason, outcome, grant_id, pointer_count
|
|
740
|
+
FROM secret_vault_deref ${e}
|
|
741
|
+
ORDER BY at DESC, id DESC LIMIT :limit`),N({limit:b+1,...null===c?{}:{cursorAt:c.startedAtMs,cursorId:c.id}})),h=g.length>b,i=h?g.slice(0,b):g,j=i[i.length-1],k=!0===a.includeBatched?0:O(this.db,"SELECT count(*) AS n FROM secret_vault_deref WHERE reason IN ('display', 'view-render')");return{items:i.map(a=>({id:a.id,pointerId:a.pointer_id,at:new Date(a.at).toISOString(),target:a.target,reason:a.reason,outcome:a.outcome,...null===a.grant_id?{}:{grantId:a.grant_id},pointerCount:a.pointer_count})),nextCursor:h&&j?aj({startedAtMs:j.at,id:j.id}):null,hiddenBatched:k}}countEntries(){return O(this.db,"SELECT COUNT(*) AS n FROM secret_vault")}countReused(){return O(this.db,`SELECT COUNT(*) AS n FROM secret_vault v WHERE ${bF}`)}}let bK=`FROM inspection_findings f
|
|
742
|
+
JOIN audit_events e INDEXED BY idx_audit_capture_rollup ON e.id = f.audit_event_id
|
|
743
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
744
|
+
LEFT JOIN ${aU} latest
|
|
745
|
+
ON latest.finding_key = f.finding_key
|
|
746
|
+
WHERE e.event_type IN (${f.hfB})
|
|
747
|
+
AND e.event_type = 'code_change'
|
|
748
|
+
AND (
|
|
749
|
+
f.finding_key IS NULL
|
|
750
|
+
OR latest.status IS NULL
|
|
751
|
+
OR latest.status NOT IN ('resolved', 'dismissed')
|
|
752
|
+
)`;function bL(a,b){return K(a.prepare(`SELECT DISTINCT f.finding_key AS finding_key
|
|
753
|
+
${bK}
|
|
754
|
+
AND d.rule_id = :ruleId
|
|
755
|
+
AND f.finding_key IS NOT NULL`),{ruleId:b}).map(a=>a.finding_key)}let bM=["critical","high","medium","low"],bN={block:"blocked",redact:"redacted",warn:"warned"},bO=["blocked","redacted","warned"],bP={[f.tLs.Antigravity]:{coverage:60,supported:!0},[f.tLs.Api]:{coverage:0,supported:!1},[f.tLs.ChatGpt]:{coverage:40,supported:!0},[f.tLs.ClaudeAi]:{coverage:40,supported:!0},[f.tLs.ClaudeCode]:{coverage:100,supported:!0},[f.tLs.Codex]:{coverage:80,supported:!0},[f.tLs.Copilot]:{coverage:30,supported:!0},[f.tLs.Cursor]:{coverage:0,supported:!1}},bQ={"7d":"day","30d":"day","3m":"week","6m":"week"};function bR(a){return 864e5*Math.floor(a/864e5)}function bS(a){return new Date(a).toISOString().slice(0,10)}class bT{constructor(a,b=()=>Date.now()){this.db=a,this.now=b}severitySummary(){let a=new Map(K(this.db.prepare(`SELECT d.severity AS severity,
|
|
756
|
+
COUNT(*) AS count,
|
|
757
|
+
SUM(CASE
|
|
758
|
+
WHEN e.event_type != 'code_change' THEN 1
|
|
759
|
+
WHEN f.finding_key IS NULL THEN 0
|
|
760
|
+
WHEN latest.status = 'resolved' THEN 1
|
|
761
|
+
ELSE 0
|
|
762
|
+
END) AS caught,
|
|
763
|
+
SUM(CASE WHEN e.event_type != 'code_change' THEN 1 ELSE 0 END) AS handled,
|
|
764
|
+
SUM(CASE
|
|
765
|
+
WHEN e.event_type = 'code_change'
|
|
766
|
+
AND f.finding_key IS NOT NULL
|
|
767
|
+
AND latest.status = 'resolved' THEN 1
|
|
768
|
+
ELSE 0
|
|
769
|
+
END) AS resolved,
|
|
770
|
+
SUM(CASE
|
|
771
|
+
WHEN e.event_type = 'code_change'
|
|
772
|
+
AND f.finding_key IS NOT NULL
|
|
773
|
+
AND (latest.status IS NULL
|
|
774
|
+
OR latest.status NOT IN ('resolved', 'dismissed')) THEN 1
|
|
775
|
+
ELSE 0
|
|
776
|
+
END) AS open_at_rest,
|
|
777
|
+
SUM(CASE
|
|
778
|
+
WHEN e.event_type = 'code_change'
|
|
779
|
+
AND latest.status = 'dismissed' THEN 1
|
|
780
|
+
ELSE 0
|
|
781
|
+
END) AS dismissed
|
|
782
|
+
FROM inspection_findings f
|
|
783
|
+
JOIN audit_events e INDEXED BY idx_audit_capture_rollup ON e.id = f.audit_event_id
|
|
784
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
785
|
+
LEFT JOIN ${aU} latest
|
|
786
|
+
ON latest.finding_key = f.finding_key
|
|
787
|
+
WHERE e.event_type IN (${f.hfB})
|
|
788
|
+
GROUP BY d.severity`)).map(a=>[a.severity,a])),b=bM.map(b=>({severity:b,count:a.get(b)?.count??0,caught:a.get(b)?.caught??0,handled:a.get(b)?.handled??0,resolved:a.get(b)?.resolved??0,openAtRest:a.get(b)?.open_at_rest??0,dismissed:a.get(b)?.dismissed??0})),c=b.reduce((a,b)=>a+b.count,0);return Promise.resolve({total:c,needsRemediation:b.reduce((a,b)=>a+b.openAtRest,0),dismissed:b.reduce((a,b)=>a+b.dismissed,0),bySeverity:b})}scanCoverage(a){return Promise.resolve({range:a,providers:f.KqW.options.map(a=>({provider:a,...bP[a]}))})}enforcementActions(a){let b=864e5*f.eI7[a],c=this.now(),d=c-b,e=this.findingsInRange(c-2*b,c),g={blocked:0,redacted:0,warned:0},h={blocked:0,redacted:0,warned:0};for(let a of e){let b=bN[a.actionTaken];b&&(a.occurredAt>=d?g[b]++:h[b]++)}let i=bO.map(a=>({kind:a,count:g[a],delta:g[a]-h[a]}));return Promise.resolve({range:a,total:i.reduce((a,b)=>a+b.count,0),actions:i})}findingsTimeseries(a){let b=bQ[a],c=("day"===b?1:7)*864e5,d=f.eI7[a],e="day"===b?d:Math.ceil(d/7),g=this.now(),h=bR(g)-(d-1)*864e5,i=this.findingsInRange(h,g),j=Array.from({length:e},(a,b)=>({timestamp:bS(h+b*c),critical:0,high:0,medium:0,low:0}));for(let a of i){let b=j[Math.floor((a.occurredAt-h)/c)];if(b){var k;("critical"===(k=a.severity)||"high"===k||"medium"===k||"low"===k)&&b[a.severity]++}}return Promise.resolve({range:a,granularity:b,points:j})}mttrTrend(a){let b=bQ[a],c=("day"===b?1:7)*864e5,d=f.eI7[a],e="day"===b?d:Math.ceil(d/7),g=this.now(),h=bR(g)-(d-1)*864e5,i=K(this.db.prepare(`SELECT DISTINCT f.finding_key AS finding_key,
|
|
789
|
+
COALESCE(f.first_detected_at, e.started_at) AS first_detected_at, d.severity AS severity,
|
|
790
|
+
latest.status AS latest_status,
|
|
791
|
+
latest.method AS latest_method,
|
|
792
|
+
latest.resolved_at AS latest_resolved_at
|
|
793
|
+
FROM finding_resolution fr
|
|
794
|
+
CROSS JOIN inspection_findings f ON f.finding_key = fr.finding_key
|
|
795
|
+
CROSS JOIN audit_events e ON e.id = f.audit_event_id
|
|
796
|
+
CROSS JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
797
|
+
LEFT JOIN ${aU} latest
|
|
798
|
+
ON latest.finding_key = f.finding_key
|
|
799
|
+
WHERE fr.resolved_at >= :windowStart
|
|
800
|
+
AND e.event_type IN (${f.hfB})`),{windowStart:h}),j=new Map,k=new Map;for(let a of i){if("resolved"!==a.latest_status||"fixed-at-source"!==a.latest_method||null==a.latest_resolved_at||a.latest_resolved_at<h||a.latest_resolved_at>=g)continue;let b=Math.floor((a.latest_resolved_at-h)/c);if(b<0||b>=e)continue;let d=`${String(b)}:${a.severity}`,f=Math.max(0,a.latest_resolved_at-a.first_detected_at);j.set(d,(j.get(d)??0)+f),k.set(d,(k.get(d)??0)+1)}return Promise.resolve({range:a,granularity:b,points:Array.from({length:e},(a,b)=>{let d={};for(let a of bM){let c=`${String(b)}:${a}`,e=k.get(c)??0;d[a]=e>0?(j.get(c)??0)/e:null}return{timestamp:bS(h+b*c),bySeverity:d}})})}topSources(a,b={}){let c=b.limit??5;if("user"===b.kind)return Promise.resolve({range:a,items:[]});let d=this.now(),e=d-864e5*f.eI7[a];return Promise.resolve({range:a,items:K(this.db.prepare(`SELECT e.repo AS repo, count(*) AS c
|
|
801
|
+
FROM inspection_findings f
|
|
802
|
+
JOIN audit_events e INDEXED BY idx_audit_capture_rollup ON e.id = f.audit_event_id
|
|
803
|
+
WHERE e.started_at >= :from AND e.started_at < :to
|
|
804
|
+
AND e.event_type IN (${f.hfB})
|
|
805
|
+
AND e.repo IS NOT NULL
|
|
806
|
+
AND e.repo != ''
|
|
807
|
+
GROUP BY e.repo
|
|
808
|
+
ORDER BY c DESC, e.repo
|
|
809
|
+
LIMIT :limit`),{from:e,to:d,limit:c}).map(a=>({id:`repo_${a.repo}`,name:a.repo,kind:"repo",findingsCount:a.c}))})}recentlyResolved(a=20){return Promise.resolve({items:K(this.db.prepare(`SELECT f.finding_key AS finding_key,
|
|
810
|
+
d.rule_id AS rule_id,
|
|
811
|
+
d.severity AS severity,
|
|
812
|
+
e.repo AS repo,
|
|
813
|
+
e.file_path AS path,
|
|
814
|
+
COALESCE(f.first_detected_at, e.started_at) AS first_detected_at,
|
|
815
|
+
latest.resolved_at AS latest_resolved_at
|
|
816
|
+
FROM ${aU} latest
|
|
817
|
+
CROSS JOIN inspection_findings f ON f.finding_key = latest.finding_key
|
|
818
|
+
CROSS JOIN audit_events e ON e.id = f.audit_event_id
|
|
819
|
+
CROSS JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
820
|
+
WHERE latest.status = 'resolved'
|
|
821
|
+
AND latest.method = 'fixed-at-source'
|
|
822
|
+
AND latest.resolved_at IS NOT NULL
|
|
823
|
+
AND e.event_type = 'code_change'
|
|
824
|
+
ORDER BY latest.resolved_at DESC
|
|
825
|
+
LIMIT :limit`),{limit:a}).map(a=>({findingKey:a.finding_key,ruleId:a.rule_id,repo:a.repo??"",severity:a.severity,path:a.path??"",resolvedAt:new Date(a.latest_resolved_at).toISOString(),detectedAt:new Date(a.first_detected_at).toISOString()}))})}recommendationInputs(){return Promise.resolve(K(this.db.prepare(`SELECT d.rule_id AS rule_id,
|
|
826
|
+
d.category AS category,
|
|
827
|
+
d.severity AS severity,
|
|
828
|
+
COUNT(*) AS count
|
|
829
|
+
${bK}
|
|
830
|
+
GROUP BY d.rule_id, d.category, d.severity`)).map(a=>({ruleId:a.rule_id,category:a.category,severity:a.severity,count:a.count})))}openFindingKeysForRule(a){return Promise.resolve(bL(this.db,a))}findingsInRange(a,b){return K(this.db.prepare(`SELECT e.started_at AS occurred_at, d.severity AS severity, f.action_taken AS action_taken,
|
|
831
|
+
d.rule_id AS rule_id, d.category AS category
|
|
832
|
+
FROM inspection_findings f
|
|
833
|
+
JOIN audit_events e INDEXED BY idx_audit_capture_rollup ON e.id = f.audit_event_id
|
|
834
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
835
|
+
WHERE e.started_at >= :from AND e.started_at < :to
|
|
836
|
+
AND e.event_type IN (${f.hfB})
|
|
837
|
+
ORDER BY e.started_at`),{from:a,to:b}).map(a=>({occurredAt:a.occurred_at,severity:a.severity,actionTaken:a.action_taken,ruleId:a.rule_id,category:a.category}))}}let bU=["provider","internal","external","ip"],bV="('http', 'ws')",bW=`LEFT JOIN egress_decision_override oh ON oh.host = d.host
|
|
838
|
+
LEFT JOIN egress_decision_override ol ON ol.destination_id = d.id AND ol.host IS NULL`;function bX(a){return{id:a.id,method:a.method,transport:a.transport,url:a.url,template:a.template,dataClass:a.dataClass,lastSeen:new Date(a.lastSeenMs).toISOString(),callSiteCount:a.callSiteCount}}function bY(a,b){let c=b.map(a=>a.transport),d=b.map(a=>a.dataClass),e=b.reduce((a,b)=>a+b.callSiteCount,0),g=b.length>0?Math.max(...b.map(a=>a.lastSeenMs)):a.lastSeenMs;return{id:a.id,kind:a.kind,name:a.name,host:a.host,providerId:a.providerId,category:a.category,trust:a.trust,status:(0,f.Gw9)(a.trust,a.overrideDecision),isCustom:(0,f.y_0)(a.trust,a.overrideDecision),lastSeen:new Date(g).toISOString(),endpointCount:b.length,callSiteCount:e,transports:(0,f.by7)(c),dataClasses:(0,f.hzO)(d),review:(0,f.Fnc)(a.trust,c,null!==a.overrideDecision),network:"provider"===a.kind?null:ah(a.networkJson,null),endpoints:b.map(bX)}}class bZ{constructor(a){this.db=a}stats(){let a=O(this.db,"SELECT count(*) AS n FROM share_destination"),b=O(this.db,"SELECT count(*) AS n FROM share_endpoint"),c=O(this.db,"SELECT count(*) AS n FROM share_call_site"),d=O(this.db,`SELECT count(DISTINCT destination_id) AS n FROM share_endpoint
|
|
839
|
+
WHERE transport IN ${bV}`),e=O(this.db,`SELECT count(DISTINCT d.id) AS n
|
|
840
|
+
FROM share_destination d
|
|
841
|
+
LEFT JOIN share_endpoint e ON e.destination_id = d.id
|
|
842
|
+
AND e.transport IN ${bV}
|
|
843
|
+
WHERE (d.trust IN ('unverified', 'ip') OR e.id IS NOT NULL)
|
|
844
|
+
AND NOT EXISTS (
|
|
845
|
+
SELECT 1 FROM egress_decision_override o
|
|
846
|
+
WHERE o.host = d.host OR (o.destination_id = d.id AND o.host IS NULL)
|
|
847
|
+
)`),f=P(this.db,"SELECT kind AS k, count(*) AS n FROM share_destination GROUP BY kind"),g={provider:f.get("provider")??0,internal:f.get("internal")??0,external:f.get("external")??0,ip:f.get("ip")??0},h=P(this.db,"SELECT trust AS k, count(*) AS n FROM share_destination GROUP BY trust");return Promise.resolve({destinations:a,endpoints:b,callSites:c,needsReview:e,insecure:d,byKind:g,byTrust:{recognized:h.get("recognized")??0,internal:h.get("internal")??0,unverified:h.get("unverified")??0,ip:h.get("ip")??0}})}listDestinations(a){let b=void 0===a.q||""===a.q?void 0:a.q,c=this.fetchDestinations(b,a.kind),d=this.groupEndpoints(c.map(a=>a.id)),e=c.map(a=>bY(a,d.get(a.id)??[])),f=new Map;for(let a of e){let b=f.get(a.kind);b?b.push(a):f.set(a.kind,[a])}return Promise.resolve({groups:bU.filter(a=>f.has(a)).map(a=>{let b=f.get(a)??[];return{kind:a,total:b.length,items:b}})})}needsReview(){let a=this.fetchDestinations(void 0,void 0,!0),b=this.groupEndpoints(a.map(a=>a.id));return Promise.resolve({items:a.map(a=>({dest:a,endpoints:b.get(a.id)??[]})).map(({dest:a,endpoints:b})=>({summary:bY(a,b),endpoints:b})).filter(({summary:a})=>a.review.needsReview).map(({summary:a,endpoints:b})=>({id:a.id,kind:a.kind,name:a.name,host:a.host,providerId:a.providerId,trust:a.trust,status:a.status,review:a.review,topDataClass:(0,f.C05)(b.map(a=>a.dataClass)),callSiteCount:a.callSiteCount,lastSeen:a.lastSeen})).sort((a,b)=>{let c=(0,f.WSs)(a.review.reasons)-(0,f.WSs)(b.review.reasons);return 0!==c?c:b.lastSeen.localeCompare(a.lastSeen)})})}getDestination(a){let b=this.fetchDestinationById(a);if(!b)return Promise.resolve(null);let c=this.fetchEndpoints([b.id]),d=this.fetchCallSites(c.map(a=>a.id));return Promise.resolve(function(a,b,c){let d=b.map(a=>a.transport),e=b.length>0?Math.max(...b.map(a=>a.lastSeenMs)):a.lastSeenMs,g=new Map;for(let a of c.slice(0,200)){let b={id:a.id,project:a.project,file:a.file,line:a.line,snippet:a.snippet,dynamic:a.dynamic,vendored:a.vendored,projectId:a.projectId},c=g.get(a.endpointId);c?c.push(b):g.set(a.endpointId,[b])}return{id:a.id,kind:a.kind,name:a.name,host:a.host,providerId:a.providerId,category:a.category,trust:a.trust,status:(0,f.Gw9)(a.trust,a.overrideDecision),isCustom:(0,f.y_0)(a.trust,a.overrideDecision),lastSeen:new Date(e).toISOString(),transports:(0,f.by7)(d),dataClasses:(0,f.hzO)(b.map(a=>a.dataClass)),review:(0,f.Fnc)(a.trust,d,null!==a.overrideDecision),network:"provider"===a.kind?null:ah(a.networkJson,null),note:a.note,endpoints:b.map(a=>({...bX(a),sites:g.get(a.id)??[]}))}}(b,c,d))}setEgressDecision(a,b){let c=!1;return E(this.db,()=>{let d=this.db.prepare("SELECT host FROM share_destination WHERE id = ?").get(a);void 0!==d&&(c=!0,this.db.prepare(`DELETE FROM egress_decision_override
|
|
848
|
+
WHERE host = :host OR (destination_id = :destinationId AND host IS NULL)`).run({host:d.host,destinationId:a}),null!==b&&this.db.prepare(`INSERT INTO egress_decision_override
|
|
849
|
+
(id, destination_id, host, decision, created_at, updated_at)
|
|
850
|
+
VALUES (:id, :destinationId, :host, :decision, :now, :now)`).run({id:(0,m.randomUUID)(),destinationId:a,host:d.host,decision:b,now:Date.now()}))},"IMMEDIATE"),c}recordProjectEgress(a){let{hits:b,droppedFiles:c,truncated:d}=function(a,b){if(a.length<=5e3)return{hits:[...a],droppedFiles:[],truncated:!1};if("walk"===b)return{hits:a.slice(0,5e3),droppedFiles:[],truncated:!0};let c=new Map;for(let b of a){let a=c.get(b.site.file);void 0===a?c.set(b.site.file,[b]):a.push(b)}let d=[],e=[];for(let[a,b]of c)d.length+b.length>5e3?e.push(a):d.push(...b);return{hits:d,droppedFiles:e,truncated:!0}}(a.hits,a.reconcile.mode),e=function(a,b){if("walk"===a.mode||0===b.length)return a;let c=new Set(b);return{mode:"ledger",scannedFiles:a.scannedFiles.filter(a=>!c.has(a)),deletedFiles:a.deletedFiles.filter(a=>!c.has(a))}}(a.reconcile,c),f=Date.now(),g={destinations:0,endpoints:0,callSites:0,truncated:d,droppedFiles:c};return E(this.db,()=>{let h=a.projectId??this.knownProjectId(a.projectKey);this.reconcileCallSites(a.projectKey,e),this.upsertHits(a,b,h,f),this.confirmLastSeen(a.projectKey,f),this.pruneOrphans(),g={...this.projectTotals(a.projectKey),truncated:d,droppedFiles:c}},"IMMEDIATE"),g}reconcileCallSites(a,b){if("walk"===b.mode){let c=b.walkedPrefix.replace(/\/+$/,"");this.db.prepare(`DELETE FROM share_call_site
|
|
851
|
+
WHERE project_key = :key
|
|
852
|
+
AND (:prefix = '' OR file = :prefix OR file LIKE :subtree ESCAPE '\\')
|
|
853
|
+
AND file NOT LIKE '.%'
|
|
854
|
+
AND file NOT LIKE '%/.%'`).run({key:a,prefix:c,subtree:`${z(c)}/%`});return}let c=[...new Set([...b.scannedFiles,...b.deletedFiles])];for(let b=0;b<c.length;b+=500){let d=c.slice(b,b+500);this.db.prepare(`DELETE FROM share_call_site
|
|
855
|
+
WHERE project_key = ? AND file IN (${A(d.length)})`).run(a,...d)}}upsertHits(a,b,c,d){if(0===b.length)return;let e=this.db.prepare(`INSERT INTO share_destination
|
|
856
|
+
(id, kind, name, host, provider_id, category, trust, network_json, last_seen, provenance,
|
|
857
|
+
created_at, updated_at)
|
|
858
|
+
VALUES (:id, :kind, :name, :host, :providerId, :category, :trust, :networkJson, :now, 'scan',
|
|
859
|
+
:now, :now)
|
|
860
|
+
ON CONFLICT (host) DO UPDATE SET
|
|
861
|
+
kind = excluded.kind,
|
|
862
|
+
name = excluded.name,
|
|
863
|
+
provider_id = excluded.provider_id,
|
|
864
|
+
category = excluded.category,
|
|
865
|
+
trust = excluded.trust,
|
|
866
|
+
network_json = excluded.network_json,
|
|
867
|
+
last_seen = excluded.last_seen,
|
|
868
|
+
updated_at = excluded.updated_at`),f=this.db.prepare("SELECT id FROM share_destination WHERE host = ?"),g=this.db.prepare(`INSERT INTO share_endpoint
|
|
869
|
+
(id, destination_id, method, transport, url, template, data_class, last_seen,
|
|
870
|
+
created_at, updated_at)
|
|
871
|
+
VALUES (:id, :destinationId, :method, :transport, :url, :template, :dataClass, :now,
|
|
872
|
+
:now, :now)
|
|
873
|
+
ON CONFLICT (destination_id, method, url) DO UPDATE SET
|
|
874
|
+
transport = excluded.transport,
|
|
875
|
+
template = excluded.template,
|
|
876
|
+
data_class = excluded.data_class,
|
|
877
|
+
last_seen = excluded.last_seen,
|
|
878
|
+
updated_at = excluded.updated_at`),h=this.db.prepare("SELECT id FROM share_endpoint WHERE destination_id = ? AND method = ? AND url = ?"),i=this.db.prepare(`INSERT INTO share_call_site
|
|
879
|
+
(id, endpoint_id, project, project_key, file, line, snippet, dynamic, vendored,
|
|
880
|
+
project_id, created_at, updated_at)
|
|
881
|
+
VALUES (:id, :endpointId, :project, :projectKey, :file, :line, :snippet, :dynamic,
|
|
882
|
+
:vendored, :projectId, :now, :now)
|
|
883
|
+
ON CONFLICT (endpoint_id, project_key, file, line) DO UPDATE SET
|
|
884
|
+
snippet = excluded.snippet,
|
|
885
|
+
dynamic = excluded.dynamic,
|
|
886
|
+
vendored = excluded.vendored,
|
|
887
|
+
project = excluded.project,
|
|
888
|
+
project_id = COALESCE(excluded.project_id, share_call_site.project_id),
|
|
889
|
+
updated_at = excluded.updated_at`),j=new Map,k=new Map;for(let l of b){let b=j.get(l.host);void 0===b&&(e.run({id:(0,m.randomUUID)(),kind:l.kind,name:l.name,host:l.host,providerId:l.providerId,category:l.category,trust:l.trust,networkJson:null===l.network?null:JSON.stringify(l.network),now:d}),b=L(f,[l.host])?.id??"",j.set(l.host,b));let n=`${b}\0${l.method}\0${l.url}`,o=k.get(n);void 0===o&&(g.run({id:(0,m.randomUUID)(),destinationId:b,method:l.method,transport:l.transport,url:l.url,template:+!!l.template,dataClass:l.dataClass,now:d}),o=L(h,[b,l.method,l.url])?.id??"",k.set(n,o)),i.run({id:(0,m.randomUUID)(),endpointId:o,project:a.project,projectKey:a.projectKey,file:l.site.file,line:l.site.line,snippet:l.site.snippet,dynamic:+!!l.site.dynamic,vendored:+!!l.site.vendored,projectId:c,now:d})}}knownProjectId(a){return L(this.db.prepare(`SELECT project_id AS projectId FROM share_call_site
|
|
890
|
+
WHERE project_key = ? AND project_id IS NOT NULL LIMIT 1`),[a])?.projectId??null}confirmLastSeen(a,b){this.db.prepare(`UPDATE share_endpoint SET last_seen = :now, updated_at = :now
|
|
891
|
+
WHERE id IN (SELECT DISTINCT endpoint_id FROM share_call_site WHERE project_key = :key)`).run({now:b,key:a}),this.db.prepare(`UPDATE share_destination SET last_seen = :now, updated_at = :now
|
|
892
|
+
WHERE id IN (SELECT DISTINCT e.destination_id
|
|
893
|
+
FROM share_endpoint e
|
|
894
|
+
JOIN share_call_site c ON c.endpoint_id = e.id
|
|
895
|
+
WHERE c.project_key = :key)`).run({now:b,key:a})}pruneOrphans(){this.db.exec(`DELETE FROM share_endpoint
|
|
896
|
+
WHERE NOT EXISTS (SELECT 1 FROM share_call_site c WHERE c.endpoint_id = share_endpoint.id)`),this.db.exec(`DELETE FROM egress_decision_override
|
|
897
|
+
WHERE host IS NULL
|
|
898
|
+
AND destination_id IN (
|
|
899
|
+
SELECT d.id FROM share_destination d
|
|
900
|
+
WHERE NOT EXISTS (SELECT 1 FROM share_endpoint e WHERE e.destination_id = d.id))`),this.db.exec(`DELETE FROM share_destination
|
|
901
|
+
WHERE NOT EXISTS (
|
|
902
|
+
SELECT 1 FROM share_endpoint e WHERE e.destination_id = share_destination.id)`)}projectTotals(a){return{destinations:O(this.db,`SELECT count(DISTINCT e.destination_id) AS n
|
|
903
|
+
FROM share_endpoint e
|
|
904
|
+
JOIN share_call_site c ON c.endpoint_id = e.id
|
|
905
|
+
WHERE c.project_key = ?`,[a]),endpoints:O(this.db,"SELECT count(DISTINCT endpoint_id) AS n FROM share_call_site WHERE project_key = ?",[a]),callSites:O(this.db,"SELECT count(*) AS n FROM share_call_site WHERE project_key = ?",[a])}}mapDestRow(a){return{id:a.id,kind:a.kind,name:a.name,host:a.host,providerId:a.providerId,category:a.category,trust:a.trust,note:a.note,networkJson:a.networkJson,lastSeenMs:a.lastSeenMs,overrideDecision:a.overrideDecision??null}}fetchDestinations(a,b,c=!1){let d,e=`d.id, d.kind, d.name, d.host, d.provider_id AS providerId, d.category, d.trust,
|
|
906
|
+
d.note, d.network_json AS networkJson, d.last_seen AS lastSeenMs,
|
|
907
|
+
d.created_at AS createdAt,
|
|
908
|
+
COALESCE(oh.decision, ol.decision) AS overrideDecision`,f=[],g=[];if(b&&b.length>0&&(f.push(`d.kind IN (${A(b.length)})`),g.push(...b)),c&&f.push(`(d.trust IN ('unverified', 'ip')
|
|
909
|
+
OR EXISTS (SELECT 1 FROM share_endpoint re
|
|
910
|
+
WHERE re.destination_id = d.id
|
|
911
|
+
AND re.transport IN ${bV}))`),a){let b=B(a);f.push(`(d.name LIKE ? ESCAPE '\\' OR d.category LIKE ? ESCAPE '\\' OR e.url LIKE ? ESCAPE '\\'
|
|
912
|
+
OR c.project LIKE ? ESCAPE '\\' OR c.file LIKE ? ESCAPE '\\')`),g.push(b,b,b,b,b),d=`SELECT DISTINCT ${e}
|
|
913
|
+
FROM share_destination d
|
|
914
|
+
${bW}
|
|
915
|
+
LEFT JOIN share_endpoint e ON e.destination_id = d.id
|
|
916
|
+
LEFT JOIN share_call_site c ON c.endpoint_id = e.id
|
|
917
|
+
${f.length?`WHERE ${f.join(" AND ")}`:""}
|
|
918
|
+
ORDER BY d.created_at ASC, d.id ASC`}else d=`SELECT ${e}
|
|
919
|
+
FROM share_destination d
|
|
920
|
+
${bW}
|
|
921
|
+
${f.length?`WHERE ${f.join(" AND ")}`:""}
|
|
922
|
+
ORDER BY d.created_at ASC, d.id ASC`;return K(this.db.prepare(d),g).map(a=>this.mapDestRow(a))}fetchDestinationById(a){let b=L(this.db.prepare(`SELECT d.id, d.kind, d.name, d.host, d.provider_id AS providerId, d.category, d.trust,
|
|
923
|
+
d.note, d.network_json AS networkJson, d.last_seen AS lastSeenMs,
|
|
924
|
+
COALESCE(oh.decision, ol.decision) AS overrideDecision
|
|
925
|
+
FROM share_destination d
|
|
926
|
+
${bW}
|
|
927
|
+
WHERE d.id = ?`),[a]);return b?this.mapDestRow(b):null}fetchEndpoints(a){return 0===a.length?[]:K(this.db.prepare(`SELECT e.id, e.destination_id AS destinationId, e.method, e.transport, e.url,
|
|
928
|
+
e.template, e.data_class AS dataClass, e.last_seen AS lastSeenMs,
|
|
929
|
+
count(c.id) AS callSiteCount
|
|
930
|
+
FROM share_endpoint e
|
|
931
|
+
LEFT JOIN share_call_site c ON c.endpoint_id = e.id
|
|
932
|
+
WHERE e.destination_id IN (${A(a.length)})
|
|
933
|
+
GROUP BY e.id
|
|
934
|
+
ORDER BY e.created_at ASC, e.id ASC`),a).map(a=>({id:a.id,destinationId:a.destinationId,method:a.method,transport:a.transport,url:a.url,template:1===a.template,dataClass:a.dataClass,lastSeenMs:a.lastSeenMs,callSiteCount:a.callSiteCount}))}groupEndpoints(a){let b=new Map;for(let c of this.fetchEndpoints(a)){let a=b.get(c.destinationId);a?a.push(c):b.set(c.destinationId,[c])}return b}fetchCallSites(a){return 0===a.length?[]:K(this.db.prepare(`SELECT id, endpoint_id AS endpointId, project, file, line, snippet, dynamic, vendored,
|
|
935
|
+
project_id AS projectId
|
|
936
|
+
FROM share_call_site
|
|
937
|
+
WHERE endpoint_id IN (${A(a.length)})
|
|
938
|
+
ORDER BY created_at ASC, id ASC`),a).map(a=>({id:a.id,endpointId:a.endpointId,project:a.project,file:a.file,line:a.line,snippet:a.snippet,dynamic:1===a.dynamic,vendored:1===a.vendored,projectId:a.projectId}))}}class b${constructor(a){this.db=a,this.upsertStmt=a.prepare(`INSERT INTO source_project
|
|
939
|
+
(id, url, name, attributes, first_seen, last_seen)
|
|
940
|
+
VALUES
|
|
941
|
+
(:id, :url, :name, :attributes, :firstSeen, :lastSeen)
|
|
942
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
943
|
+
url = excluded.url,
|
|
944
|
+
name = excluded.name,
|
|
945
|
+
attributes = excluded.attributes,
|
|
946
|
+
last_seen = excluded.last_seen`)}upsert(a,b=Date.now()){let c=p(a.url),d=(0,f.QCA)(a,c,b);return this.upsertStmt.run(N({id:d.id,url:d.url,name:d.name,attributes:d.attributes,firstSeen:d.firstSeen,lastSeen:d.lastSeen})),c}findById(a){return L(this.db.prepare("SELECT * FROM source_project WHERE id = :id"),{id:a})}distinctNames(){return K(this.db.prepare(`SELECT DISTINCT name FROM source_project
|
|
947
|
+
WHERE name IS NOT NULL
|
|
948
|
+
ORDER BY name`)).map(a=>a.name)}}class b_ extends Error{constructor(a,b){super(`[aka] the local store was written by a newer AKA build than this one: it carries migration(s) ${a.unknownTags.join(", ")} that this build does not define (store schema ${String(a.storeVersion)}, this build ${String(a.buildVersion)}). The store is intact and needs no repair — update AKA so every surface on this machine is on one version line.`,{cause:b}),this.name="StoreAheadOfBuildError",this.storeVersion=a.storeVersion,this.buildVersion=a.buildVersion,this.unknownTags=a.unknownTags}}let b0=new Set(f.ZYZ.options),b1=Symbol("aka.persistence.unsafeTestOnlyRawHandle");function b2(a,b){return b?{...a,hostId:b}:a}function b3(a){try{a.close()}catch{}}function b4(a){let b=new n.DatabaseSync(a);try{b.exec("PRAGMA journal_mode = WAL"),b.exec("PRAGMA busy_timeout = 2000"),b.exec("PRAGMA foreign_keys = ON"),b.function("aka_lower",{deterministic:!0,directOnly:!0,useBigIntArguments:!0},y)}catch(a){throw b3(b),a}return b}let b5=new Set(f.vog);function b6(a,b={}){i(a,!0),h(a,448);let c=(0,e.join)(a,g);v(c);let{db:l,events:n,findings:s,policies:t,installedPacks:u,scanLedger:x,historySync:y,bodyRetention:A,secretVault:B,exceptions:C,resolutions:D,ruleProbeCache:K,security:L,detections:M,shares:O,policyCatalog:P,inventory:Q,inventoryAssets:R,projectFiles:S,activity:T,sourceProject:U,auditEvents:W,captureStatus:X,classifiedData:Y,inspectionDefinitions:Z,inspectionFindings:$,configInventory:ah}=function(a,b,c){let e=b4(a);try{var h;if(h=e,H(h,"table","tenants")||J(h,"events").includes("tenant_id")){let b=function(a,b){let c;v(b);let e=r(b,"legacy"),f=!1;try{w(a,e),f=!0}catch(a){c=a}finally{a.close()}if(!f){G(`Could not snapshot the incompatible ${g} (${String(c)}); moving the store aside with its sidecars instead.`);let a=[];(0,d.renameSync)(b,e),a.push([e,b]);try{for(let c of j(b)){let f=`${e}${c.slice(b.length)}`;try{(0,d.renameSync)(c,f),a.push([f,c])}catch{(0,d.rmSync)(c,{force:!0})}}}catch(b){for(let[b,c]of a.reverse())try{(0,d.renameSync)(b,c)}catch{}throw b}return k(e),e}try{for(let a of((0,d.rmSync)(b,{force:!0}),j(b)))(0,d.rmSync)(a,{force:!0})}catch(a){if((0,d.existsSync)(b))try{(0,d.rmSync)(e,{force:!0})}catch{}throw a}return e}(e,a);e=b4(a),G(`Detected an older, incompatible (tenant-bearing) ${g}; backed it up to ${b} and created a fresh store.`)}!function(a,b,c={}){var d,e;let g=a.prepare("PRAGMA user_version").get().user_version;a.exec("CREATE TABLE IF NOT EXISTS migration_ledger (tag TEXT PRIMARY KEY, applied_at INTEGER NOT NULL)");let h=new Set(a.prepare("SELECT tag FROM migration_ledger").all().map(a=>a.tag)),i=0===h.size&&g>0,j=a.prepare("INSERT OR IGNORE INTO migration_ledger (tag, applied_at) VALUES (?, ?)");for(let[b,d]of f.lFU.entries()){if(h.has(d.tag)||c.skipTags?.has(d.tag)===!0||d.tag===ad)continue;let e=function(a){let b=[];for(let c of a.matchAll(/CREATE TABLE (?:IF NOT EXISTS )?`([^`]+)`/g))void 0===c[1]||c[1].startsWith("__new_")||b.push({kind:"table",name:c[1]});for(let c of a.matchAll(/ALTER TABLE `([^`]+)` ADD (?:COLUMN )?`([^`]+)`/g))void 0!==c[1]&&void 0!==c[2]&&b.push({kind:"column",table:c[1],name:c[2]});return b}(d.sql),f=e.filter(b=>"column"===b.kind?J(a,b.table,{includeGenerated:!0}).includes(b.name):H(a,"table",b.name));if(f.length>0&&f.length<e.length){let a=e.filter(a=>!f.includes(a)),b=`sqlite migration ${d.tag} has no ledger row, but the store already has ${f.map(ab).join(", ")} while missing ${a.map(ab).join(", ")} — the schema diverged from the migration history; refusing to replay or skip.`;throw G(b),Error(`[aka] ${b}`)}let k=e.length>0?f.length===e.length:i&&b<g,l=/PRAGMA foreign_keys\s*=\s*OFF/i.test(d.sql),m=ac(d.sql);l&&a.exec("PRAGMA foreign_keys = OFF");try{E(a,()=>{for(let b of m){let c=function(a){let b=a.replace(/^(?:\s*--[^\n]*\n?)+/,"").trimStart();return/^CREATE (?:UNIQUE )?INDEX (?:IF NOT EXISTS )?`([^`]+)`/.exec(b)?.[1]}(b);if(void 0===c){if(k)continue}else if(I(a,c))continue;a.exec(b)}if(l&&!k){let b=a.prepare("PRAGMA foreign_key_check").all();if(b.length>0)throw Error(`[aka] sqlite migration ${d.tag} left ${String(b.length)} foreign-key violation(s); rolling back.`)}j.run(d.tag,Date.now())},"IMMEDIATE")}finally{l&&a.exec("PRAGMA foreign_keys = ON")}}g<f.lFU.length&&a.exec(`PRAGMA user_version = ${String(f.lFU.length)}`),function(a,b){var c;if(!H(a,"table",b))return;let d=J(a,b);d.includes("synced_at")||a.exec(`ALTER TABLE ${b} ADD COLUMN synced_at integer`),d.includes("sync_claimed_at")||a.exec(`ALTER TABLE ${b} ADD COLUMN sync_claimed_at integer`),d.includes("outbox_owed")||a.exec(`ALTER TABLE ${b} ADD COLUMN outbox_owed integer`),d.includes("sync_failed_at")||a.exec(`ALTER TABLE ${b} ADD COLUMN sync_failed_at integer`),d.includes("sync_failure")||E(a,()=>{a.exec(`ALTER TABLE ${b} ADD COLUMN sync_failure text`),a.exec(`UPDATE ${b} SET synced_at = NULL
|
|
949
|
+
WHERE synced_at = -1
|
|
950
|
+
AND event_type IN (${V.map(a=>`'${a}'`).join(", ")})`)},"IMMEDIATE"),a.exec(`CREATE TRIGGER IF NOT EXISTS aka_sync_failure_guard
|
|
951
|
+
BEFORE UPDATE OF sync_failure ON ${b}
|
|
952
|
+
WHEN ${function(a="sync_failure"){let b=aa.map(a=>`'${a}'`).join(", ");return`NEW.${a} IS NOT NULL AND NEW.${a} NOT IN (${b})`}()}
|
|
953
|
+
BEGIN SELECT RAISE(ABORT, 'sync_failure is not one of the recorded reasons'); END`);let e=["event_type","synced_at","sync_claimed_at","started_at","sync_failure"],f=(c="idx_audit_events_sync",I(a,c)?a.prepare(`PRAGMA index_info(${c})`).all().map(a=>a.name).filter(a=>null!==a):[]);f.length===e.length&&f.every((a,b)=>a===e[b])||(a.exec("DROP INDEX IF EXISTS idx_audit_events_sync"),a.exec(`CREATE INDEX idx_audit_events_sync
|
|
954
|
+
ON audit_events (${e.join(", ")})`)),a.exec(`CREATE INDEX IF NOT EXISTS idx_audit_outbox_owed
|
|
955
|
+
ON audit_events (event_type, synced_at, sync_claimed_at, started_at) WHERE outbox_owed = 1`),a.exec(`CREATE INDEX IF NOT EXISTS idx_audit_claimed
|
|
956
|
+
ON audit_events (sync_claimed_at) WHERE sync_claimed_at IS NOT NULL`)}(a,"audit_events"),a.exec(`CREATE TABLE IF NOT EXISTS scan_ledger (
|
|
957
|
+
path TEXT PRIMARY KEY,
|
|
958
|
+
mtime TEXT NOT NULL,
|
|
959
|
+
content_hash TEXT NOT NULL,
|
|
960
|
+
ruleset_hash TEXT NOT NULL,
|
|
961
|
+
scanned_at INTEGER NOT NULL
|
|
962
|
+
)`),(d=a).exec(`CREATE TABLE IF NOT EXISTS history_sync (
|
|
963
|
+
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
964
|
+
endpoint_fingerprint TEXT,
|
|
965
|
+
backlog_before INTEGER,
|
|
966
|
+
owner_pid INTEGER,
|
|
967
|
+
owner_host TEXT,
|
|
968
|
+
acquired_at INTEGER,
|
|
969
|
+
heartbeat_at INTEGER
|
|
970
|
+
)`),J(d,"history_sync").includes("backlog_before")||d.exec("ALTER TABLE history_sync ADD COLUMN backlog_before integer"),a.exec(`CREATE TABLE IF NOT EXISTS blocked_detections (
|
|
971
|
+
reference TEXT PRIMARY KEY,
|
|
972
|
+
rule_id TEXT NOT NULL,
|
|
973
|
+
category TEXT NOT NULL,
|
|
974
|
+
value_fingerprint TEXT NOT NULL,
|
|
975
|
+
key_version INTEGER NOT NULL,
|
|
976
|
+
masked_value TEXT NOT NULL,
|
|
977
|
+
session_id TEXT,
|
|
978
|
+
repo TEXT,
|
|
979
|
+
blocked_at INTEGER NOT NULL
|
|
980
|
+
)`),a.exec(`CREATE TABLE IF NOT EXISTS rule_probe_cache (
|
|
981
|
+
rule_key TEXT PRIMARY KEY,
|
|
982
|
+
verdict TEXT NOT NULL,
|
|
983
|
+
worst_probe_ms REAL NOT NULL,
|
|
984
|
+
checked_at INTEGER NOT NULL
|
|
985
|
+
)`),(e=a).exec(`CREATE TABLE IF NOT EXISTS \`_pack_write_gate\` (
|
|
986
|
+
\`id\` integer PRIMARY KEY NOT NULL,
|
|
987
|
+
\`open\` integer DEFAULT 0 NOT NULL,
|
|
988
|
+
CONSTRAINT "ck_pack_write_gate_single_row" CHECK("_pack_write_gate"."id" = 1)
|
|
989
|
+
)`),e.exec("INSERT OR IGNORE INTO _pack_write_gate (id, open) VALUES (1, 0)"),H(e,"table","installed_packs")&&e.exec(`CREATE TRIGGER IF NOT EXISTS trg_installed_packs_write_gate
|
|
990
|
+
BEFORE UPDATE OF version, name, rules_json ON installed_packs
|
|
991
|
+
WHEN (SELECT open FROM _pack_write_gate WHERE id = 1) IS NOT 1
|
|
992
|
+
BEGIN SELECT RAISE(IGNORE); END`),function(a){if(!H(a,"table","audit_events"))return;let b=new Set(J(a,"audit_events",{includeGenerated:!0}));for(let c of af)b.has(c.name)||a.exec(c.ddl)}(a),function(a){try{let b=a.prepare(`SELECT id, url, name, attributes, first_seen AS firstSeen, last_seen AS lastSeen
|
|
993
|
+
FROM source_project
|
|
994
|
+
WHERE url IS NOT NULL AND id NOT LIKE 'sample:%'
|
|
995
|
+
ORDER BY last_seen DESC, id`).all().map(a=>({row:a,canonicalId:p(a.url)})).filter(({row:a,canonicalId:b})=>a.id!==b);if(0===b.length)return;let c=a.prepare(`INSERT INTO source_project (id, url, name, attributes, first_seen, last_seen)
|
|
996
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
997
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
998
|
+
first_seen = min(first_seen, excluded.first_seen),
|
|
999
|
+
last_seen = max(last_seen, excluded.last_seen)`),d=a.prepare("UPDATE audit_events SET source_project_id = ? WHERE source_project_id = ?"),e=a.prepare("UPDATE share_call_site SET project_id = ? WHERE project_id = ?"),f=["project_file","file_access_override"].map(b=>({dropCollisions:a.prepare(`DELETE FROM ${b} WHERE project_id = ?
|
|
1000
|
+
AND path IN (SELECT path FROM ${b} WHERE project_id = ?)`),repoint:a.prepare(`UPDATE ${b} SET project_id = ? WHERE project_id = ?`)})),g=a.prepare("DELETE FROM source_project WHERE id = ?");E(a,()=>{for(let{row:a,canonicalId:h}of b){for(let{dropCollisions:b,repoint:e}of(c.run(h,a.url,a.name,a.attributes,a.firstSeen,a.lastSeen),d.run(h,a.id),f))b.run(a.id,h),e.run(h,a.id);e.run(h,a.id),g.run(a.id)}},"IMMEDIATE")}catch(a){G(`source_project id reconcile failed: ${String(a)}`)}}(a),!h.has(ad)&&function(a){try{if(!function(a){let b=a.prepare(`SELECT rowid AS rowid, id, source_tool AS sourceTool, kind, occurred_at AS occurredAt,
|
|
1001
|
+
content_hash AS contentHash, content, metadata
|
|
1002
|
+
FROM events WHERE rowid > ? ORDER BY rowid LIMIT ?`),c=a.prepare(`INSERT OR IGNORE INTO audit_events
|
|
1003
|
+
(id, parent_id, root_session_id, event_type, started_at, content, content_hash, attributes)
|
|
1004
|
+
VALUES (:id, :parentId, :rootSessionId, :eventType, :startedAt, :content, :contentHash, :attributes)`),d=a.prepare("INSERT OR IGNORE INTO audit_events (id, event_type, started_at) VALUES (?, 'session', ?)");return ag(a,"events",b,a=>{for(let e of a){var b;let a=function(a){if(null!==a)try{return JSON.parse(a)}catch{return}}(e.metadata),g=a?.sessionId??null;null!==g&&d.run(g,e.occurredAt),c.run(N({id:e.id,parentId:g,rootSessionId:g,eventType:e.kind,startedAt:e.occurredAt,content:e.content,contentHash:e.contentHash,attributes:(b={...e,metadata:a},JSON.stringify((0,f.$w9)({id:b.id,sourceTool:b.sourceTool,kind:b.kind,occurredAt:new Date(b.occurredAt).toISOString(),contentHash:b.contentHash,content:b.content,metadata:b.metadata})))}))}})}(a))return!1;let b=a.prepare(`SELECT rowid AS rowid, id, event_id AS eventId, rule_id AS ruleId, category, severity,
|
|
1005
|
+
span_start AS spanStart, span_end AS spanEnd, masked_match AS maskedMatch,
|
|
1006
|
+
action_taken AS actionTaken, confidence, finding_key AS findingKey,
|
|
1007
|
+
first_detected_at AS firstDetectedAt
|
|
1008
|
+
FROM findings WHERE rowid > ? ORDER BY rowid LIMIT ?`),c=a.prepare(`INSERT OR IGNORE INTO inspection_definitions
|
|
1009
|
+
(id, rule_id, name, category, severity, definition, version)
|
|
1010
|
+
VALUES (:id, :ruleId, :name, :category, :severity, :definition, :version)`),d=a.prepare(`INSERT INTO inspection_findings
|
|
1011
|
+
(id, audit_event_id, inspection_definition_id, classified_data_id,
|
|
1012
|
+
span_start, span_end, masked_match, action_taken, confidence,
|
|
1013
|
+
finding_key, first_detected_at)
|
|
1014
|
+
VALUES
|
|
1015
|
+
(:id, :auditEventId, :inspectionDefinitionId, NULL,
|
|
1016
|
+
:spanStart, :spanEnd, :maskedMatch, :actionTaken, :confidence,
|
|
1017
|
+
:findingKey, :firstDetectedAt)
|
|
1018
|
+
ON CONFLICT(id) DO NOTHING
|
|
1019
|
+
ON CONFLICT (finding_key) DO UPDATE SET
|
|
1020
|
+
first_detected_at = CASE
|
|
1021
|
+
WHEN first_detected_at IS NULL THEN excluded.first_detected_at
|
|
1022
|
+
WHEN excluded.first_detected_at IS NULL THEN first_detected_at
|
|
1023
|
+
ELSE min(first_detected_at, excluded.first_detected_at)
|
|
1024
|
+
END`);return ag(a,"findings",b,a=>{let b=new Map;for(let e of a){let a=JSON.stringify([e.ruleId,e.category,e.severity]),f=b.get(a);if(void 0===f){let d=`unmigrated/${e.category}/${e.severity}`;f=q(e.ruleId,d),c.run(N({id:f,ruleId:e.ruleId,name:e.ruleId,category:e.category,severity:e.severity,definition:"",version:d})),b.set(a,f)}d.run(N({id:e.id,auditEventId:e.eventId,inspectionDefinitionId:f,spanStart:e.spanStart,spanEnd:e.spanEnd,maskedMatch:e.maskedMatch,actionTaken:e.actionTaken,confidence:e.confidence,findingKey:e.findingKey,firstDetectedAt:e.firstDetectedAt}))}})}catch(a){return G(`legacy history backfill failed: ${String(a)}`),!1}}(a)&&function(a,b){let c=f.lFU.find(a=>a.tag===ad);if(!c)return;let d=void 0===b?void 0:ae(a);if(void 0!==b&&d?.holdsRows===!0)try{var e=a,g=b;v(g);let c=r(g,"pre-drop");w(e,c)}catch(a){G(`legacy events/findings backup failed; deferring the drop: ${String(a)}`);return}try{E(a,()=>{if(!a.prepare("SELECT 1 FROM migration_ledger WHERE tag = ?").get(c.tag)){if(void 0!==d&&ae(a).mark!==d.mark)return void G("legacy events/findings rows changed after the pre-drop snapshot decision; deferring the drop so the next open can copy them first.");for(let b of ac(c.sql))a.exec(b);a.prepare("INSERT OR IGNORE INTO migration_ledger (tag, applied_at) VALUES (?, ?)").run(c.tag,Date.now())}},"IMMEDIATE")}catch(a){G(`legacy events/findings drop failed; deferring: ${String(a)}`)}}(a,b)}(e,a,{skipTags:c}),k(a);let i=new by(e),l=new be(e,b),m={events:new aL(e),findings:new aY(e),policies:i,installedPacks:l,scanLedger:new bD(e),historySync:new _(e),secretVault:new bJ(e),exceptions:new aR(e),resolutions:new bB(e),ruleProbeCache:new bC(e),bodyRetention:new aC(e),security:new bT(e),detections:new aK(e),shares:new bZ(e),policyCatalog:new bz(l),inventory:new bf(e),inventoryAssets:new bx(e),projectFiles:new bA(e),activity:new aA(e),sourceProject:new b$(e),auditEvents:new aB(e),captureStatus:new aD(e),classifiedData:new aE(e),inspectionDefinitions:new aZ(e),inspectionFindings:new a$(e),configInventory:new aG(e)};return i.seedDefaults(),{db:e,...m}}catch(b){let a=function(a){try{let b=new Set(f.lFU.map(a=>a.tag)),c=a.prepare("SELECT tag FROM migration_ledger").all().map(a=>a.tag).filter(a=>!b.has(a)).sort();if(0===c.length)return null;return{storeVersion:a.prepare("PRAGMA user_version").get().user_version,buildVersion:f.lFU.length,unknownTags:c}}catch{return null}}(e);throw b3(e),null!==a&&function(a){let b=a?.errcode;if("number"!=typeof b)return!1;let c=255&b;return 1===c||19===c}(b)?new b_(a,b):b}}(c,(0,e.dirname)(a),!0===b.applyDeferredMigrations?void 0:b5);function ai(a){return function(a,b,c=null){return o((0,f.tTV)(["capture",a??"no_session",b,c??"no_path"]))}(a.metadata?.sessionId??null,a.contentHash,a.metadata?.filePath??null)}return{events:n,findings:s,policies:t,installedPacks:u,scanLedger:x,historySync:y,bodyRetention:A,secretVault:B,exceptions:C,resolutions:D,ruleProbeCache:K,security:L,detections:M,shares:O,policyCatalog:P,inventory:Q,inventoryAssets:R,activity:T,sourceProject:U,auditEvents:W,captureStatus:X,classifiedData:Y,inspectionDefinitions:Z,inspectionFindings:$,recordCapture:function(a,b){F(l,()=>{let c=a.metadata?.sessionId;c&&W.ensureSessionRoot(c,a.occurredAt);let d=ai(a);W.insertAuditEvent({id:d,eventType:a.kind,startedAt:a.occurredAt,parentId:c,rootSessionId:c,content:a.content,contentHash:a.contentHash,attributes:(0,f.$w9)(a)});let e=new Map;for(let a of b){if(c&&$.isSessionDuplicate(a.ruleId,a.maskedMatch,c)||$.isEventDuplicate(d,a.ruleId,a.maskedMatch,a.span.start,a.span.end))continue;let b=`${a.ruleId}@${(0,f.qmP)(a)}`,g=e.get(b);g||(g=Z.upsert((0,f.jTf)(a)),e.set(b,g)),$.insertFinding({id:a.id,auditEventId:d,inspectionDefinitionId:g,span:a.span,maskedMatch:a.maskedMatch,actionTaken:a.actionTaken,confidence:a.confidence,findingKey:a.findingKey??void 0})}})},dismissOpenFindingsForRule:function(a,b){let c=0;return E(l,()=>{let d=bL(l,a);D.insertResolutions(d.map(a=>({findingKey:a,status:"dismissed",method:b.method,resolvedAt:b.resolvedAt,evidence:b.evidence}))),c=d.length},"IMMEDIATE"),c},markCaptureDelivered:function(a,b){F(l,()=>{y.markSynced([ai(a)],b)})},markCaptureOwed:function(a){F(l,()=>{y.markCaptureOwed(ai(a))})},markAuditEventsDelivered:function(a,b){let c=a.filter(a=>!b0.has(a.eventType));0!==c.length&&F(l,()=>{y.markSynced(c.map(a=>a.id),b)})},ensureInventory:function(a){let b={};return F(l,()=>{let c=Date.now();a.host&&(b.hostId=Q.upsert(a.host,c)),a.harness&&(b.harnessId=Q.upsert(b2(a.harness,b.hostId),c)),b.accountId=Q.upsert(b2({objectType:"user",identityKey:"local",attributes:{source:"local"}},b.hostId),c),a.project&&(b.sourceProjectId=U.upsert(a.project,c))})?b:{}},recordConfigScan:function(a){F(l,()=>{let b=(0,f.I8t)(a.scanEvent.startedAt);for(let c of a.items)Q.upsert(c,b);W.insertAuditEvent(a.scanEvent);let c=new Map;for(let b of a.definitions??[])c.set(`${b.ruleId}@${b.version}`,Z.upsert(b));for(let b of a.findings??[]){let d=c.get(`${b.ruleId}@${b.version}`);d&&$.insertFinding({id:(0,m.randomUUID)(),auditEventId:a.scanEvent.id,inspectionDefinitionId:d,span:b.span,maskedMatch:b.maskedMatch,actionTaken:b.actionTaken,confidence:b.confidence})}})},recordProjectFiles:function(a,b){0!==b.files.length&&F(l,()=>{S.replaceForProject(a,b,Date.now())})},reconcileWorktreeProjects:function(a,b,c){try{let d=b.split(e.sep).join("/"),f=c.split(e.sep).join("/"),g=c===b?"":"url IN (:worktreePosix, :worktreeWin) OR ",h=l.prepare(`SELECT id FROM source_project
|
|
1025
|
+
WHERE id <> :canonicalId
|
|
1026
|
+
AND (${g}url LIKE :pattern ESCAPE '\\' OR url LIKE :patternWin ESCAPE '\\')`).all({canonicalId:a,...c===b?{}:{worktreePosix:f,worktreeWin:f.split("/").join("\\")},pattern:`${z(d)}/.claude/worktrees/%`,patternWin:`${z(d.split("/").join("\\"))}\\\\.claude\\\\worktrees\\\\%`});if(0===h.length)return;E(l,()=>{for(let{id:b}of h)l.prepare("UPDATE audit_events SET source_project_id = :canonicalId WHERE source_project_id = :id").run({canonicalId:a,id:b}),l.prepare("UPDATE OR IGNORE file_access_override SET project_id = :canonicalId WHERE project_id = :id").run({canonicalId:a,id:b}),l.prepare("DELETE FROM file_access_override WHERE project_id = :id").run({id:b}),l.prepare("DELETE FROM project_file WHERE project_id = :id").run({id:b}),l.prepare("DELETE FROM source_project WHERE id = :id").run({id:b})})}catch{}},configInventoryReport:()=>ah.report(),facets:function(){return{hosts:Q.distinctTitles("host"),harnesses:Q.distinctTitles("harness"),osVersions:Q.osVersions(),projects:U.distinctNames()}},purgeSampleData:()=>{!function(a){try{if(!a.prepare(`SELECT (
|
|
1027
|
+
EXISTS(SELECT 1 FROM share_destination WHERE provenance = 'sample')
|
|
1028
|
+
OR EXISTS(SELECT 1 FROM audit_events WHERE id LIKE 'sample:activity:%')
|
|
1029
|
+
OR EXISTS(SELECT 1 FROM inventory_asset WHERE provenance = 'sample')
|
|
1030
|
+
) AS n`).get().n)return;E(a,()=>{a.exec(`DELETE FROM share_call_site WHERE endpoint_id IN (
|
|
1031
|
+
SELECT e.id FROM share_endpoint e
|
|
1032
|
+
JOIN share_destination d ON d.id = e.destination_id
|
|
1033
|
+
WHERE d.provenance = 'sample')`),a.exec(`DELETE FROM egress_decision_override WHERE destination_id IN (
|
|
1034
|
+
SELECT id FROM share_destination WHERE provenance = 'sample')`),a.exec(`DELETE FROM share_endpoint WHERE destination_id IN (
|
|
1035
|
+
SELECT id FROM share_destination WHERE provenance = 'sample')`),a.exec("DELETE FROM share_destination WHERE provenance = 'sample'"),a.exec(`DELETE FROM harness_asset WHERE asset_id IN (SELECT id FROM inventory_asset WHERE provenance = 'sample')
|
|
1036
|
+
OR harness_id IN (SELECT id FROM inventory WHERE object_type = 'harness' AND json_extract(attributes, '$.provenance') = 'sample')`),a.exec("DELETE FROM mcp_trust_override WHERE asset_id IN (SELECT id FROM inventory_asset WHERE provenance = 'sample')"),a.exec("DELETE FROM file_access_override WHERE project_id IN (SELECT id FROM source_project WHERE json_extract(attributes, '$.provenance') = 'sample')"),a.exec("DELETE FROM project_file WHERE project_id IN (SELECT id FROM source_project WHERE json_extract(attributes, '$.provenance') = 'sample')"),a.exec("DELETE FROM inventory_asset WHERE provenance = 'sample'"),a.exec("DELETE FROM source_project WHERE json_extract(attributes, '$.provenance') = 'sample'"),a.exec("DELETE FROM inventory WHERE object_type = 'harness' AND json_extract(attributes, '$.provenance') = 'sample'"),a.exec("DELETE FROM inspection_findings WHERE id LIKE 'sample:activity:%'"),a.exec("DELETE FROM inspection_definitions WHERE id LIKE 'sample:activity:%'"),a.exec("DELETE FROM audit_events WHERE root_session_id LIKE 'sample:activity:%'"),a.exec("DELETE FROM audit_events WHERE id LIKE 'sample:activity:%'"),a.exec(`CREATE TABLE IF NOT EXISTS app_meta (
|
|
1037
|
+
key TEXT PRIMARY KEY,
|
|
1038
|
+
value TEXT NOT NULL
|
|
1039
|
+
)`),a.exec("DELETE FROM app_meta WHERE key LIKE 'sample_seeded:%'")})}catch{}}(l)},transaction:async function a(a){l.exec("BEGIN");try{let b=await a();return l.exec("COMMIT"),b}catch(a){try{l.exec("ROLLBACK")}catch{}throw a}},close:()=>{l.close()},[b1]:l}}function b7(a){let b;try{b=(0,d.readFileSync)((0,e.join)(a,"exception.key"),"utf8")}catch(a){if("ENOENT"===a.code)return null;throw a instanceof Error?a:Error(String(a))}let c=JSON.parse(b);if("object"!=typeof c||null===c)throw Error("exception key file is corrupt: not a JSON object");let{version:f,material:g}=c;if("number"!=typeof f||!Number.isInteger(f)||f<1)throw Error("exception key file is corrupt: bad version");if("string"!=typeof g)throw Error("exception key file is corrupt: bad material");let h=Buffer.from(g,"base64");if(32!==h.length)throw Error("exception key file is corrupt: bad material length");return{version:f,material:h}}function b8(a){return null===a?{status:"absent"}:{status:"present",version:a.version}}function b9(a,b=Date.now()){try{return function(a,b){try{let c=JSON.parse(a);if("object"!=typeof c||null===c)return null;let d="number"==typeof c.consecutiveFailures&&c.consecutiveFailures>=0?c.consecutiveFailures:0,e="number"==typeof c.openedAtMs&&Number.isFinite(c.openedAtMs)&&c.openedAtMs<=b?c.openedAtMs:null,g=f.QA8.safeParse(c.lastFailure),h=g.success?g.data:null;return{consecutiveFailures:d,openedAtMs:e,lastFailure:h}}catch{return null}}((0,d.readFileSync)((0,e.join)(a,"attached-state.json"),"utf8"),b)}catch{return null}}function ca(a,b){let c=a?.openedAtMs??null;return null!==c&&b-c<3e4}let cb=new Set(["filling","complete"]),cc=new Set(["ok","unreachable","refused","interrupted"]);function cd(a){try{let b=JSON.parse((0,d.readFileSync)((0,e.join)(a,"attached-history-sync.json"),"utf8"));if("object"!=typeof b||null===b||1!==b.specVersion||"string"!=typeof b.phase||!cb.has(b.phase)||"string"!=typeof b.lastOutcome||!cc.has(b.lastOutcome)||!ce(b.lastPassAtMs)||!ce(b.sentTotal)||!ce(b.pendingTotal)||!ce(b.skippedTotal)||!cf(b.startedAtMs)||!cf(b.completedAtMs))return null;return{specVersion:1,phase:b.phase,lastOutcome:b.lastOutcome,lastPassAtMs:b.lastPassAtMs,sentTotal:b.sentTotal,pendingTotal:b.pendingTotal,skippedTotal:b.skippedTotal,startedAtMs:b.startedAtMs,completedAtMs:b.completedAtMs}}catch{return null}}function ce(a){return"number"==typeof a&&Number.isFinite(a)&&a>=0}function cf(a){return null===a||ce(a)}function cg(a=a0(),b){let c=function(a,b){let c,d;try{c=void 0===b?a3():b,d=a7(a,c).settings}catch{return null}if(null===c)return null;let e=c.lockedFields.includes("runMode"),f=void 0!==c.values.runMode,g=void 0!==c.values.controlPlane;return e||f||g?{who:void 0===c.organization?{}:{organization:c.organization},settings:d,frozen:e,modePinned:f,planePinned:g,pinnedLabel:c.values.controlPlane?.label}:null}(a,b);return null===c?null:function(a){let{who:b,settings:c,frozen:d,modePinned:e}=a;if(!d&&!e)return null;if("attached"!==c.runMode)return{reason:"held-standalone",...b};let g=c.controlPlane;return(0,f.lgf)(c)&&void 0!==g?{reason:"held-attached",...b,endpoint:g.endpoint}:null}(c)}c(31421),Symbol("aka.vault.consentAbsent"),Symbol("aka.vault.unavailable")},5357:(a,b,c)=>{"use strict";c.d(b,{AddExceptionForm:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call AddExceptionForm() from the server but AddExceptionForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/AddExceptionForm.tsx","AddExceptionForm")},5771:(a,b,c)=>{"use strict";c.d(b,{UpdateModal:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call UpdateModal() from the server but UpdateModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/UpdateModal.tsx","UpdateModal")},5947:(a,b,c)=>{Promise.resolve().then(c.bind(c,39949)),Promise.resolve().then(c.bind(c,63480)),Promise.resolve().then(c.bind(c,7691)),Promise.resolve().then(c.bind(c,80258)),Promise.resolve().then(c.bind(c,7645)),Promise.resolve().then(c.bind(c,46653)),Promise.resolve().then(c.bind(c,34542))},7003:(a,b,c)=>{Promise.resolve().then(c.bind(c,39949)),Promise.resolve().then(c.bind(c,63480)),Promise.resolve().then(c.bind(c,7691)),Promise.resolve().then(c.bind(c,80258)),Promise.resolve().then(c.bind(c,7645)),Promise.resolve().then(c.bind(c,46653)),Promise.resolve().then(c.bind(c,34542)),Promise.resolve().then(c.bind(c,33918)),Promise.resolve().then(c.bind(c,81436)),Promise.resolve().then(c.bind(c,90844)),Promise.resolve().then(c.bind(c,18507)),Promise.resolve().then(c.bind(c,20521)),Promise.resolve().then(c.bind(c,17879)),Promise.resolve().then(c.bind(c,7123)),Promise.resolve().then(c.bind(c,68212)),Promise.resolve().then(c.bind(c,57178)),Promise.resolve().then(c.bind(c,25834)),Promise.resolve().then(c.bind(c,63424)),Promise.resolve().then(c.bind(c,66663)),Promise.resolve().then(c.bind(c,44662)),Promise.resolve().then(c.bind(c,98305)),Promise.resolve().then(c.bind(c,78347)),Promise.resolve().then(c.bind(c,12771)),Promise.resolve().then(c.bind(c,73379)),Promise.resolve().then(c.bind(c,89001)),Promise.resolve().then(c.bind(c,43233)),Promise.resolve().then(c.bind(c,2266)),Promise.resolve().then(c.bind(c,78164)),Promise.resolve().then(c.bind(c,59447)),Promise.resolve().then(c.bind(c,42951)),Promise.resolve().then(c.bind(c,68399)),Promise.resolve().then(c.bind(c,93423)),Promise.resolve().then(c.bind(c,21361)),Promise.resolve().then(c.bind(c,54604)),Promise.resolve().then(c.bind(c,54382)),Promise.resolve().then(c.bind(c,63264)),Promise.resolve().then(c.bind(c,29439)),Promise.resolve().then(c.bind(c,48560)),Promise.resolve().then(c.bind(c,96462)),Promise.resolve().then(c.bind(c,35748)),Promise.resolve().then(c.bind(c,561)),Promise.resolve().then(c.bind(c,82380)),Promise.resolve().then(c.bind(c,92895)),Promise.resolve().then(c.bind(c,77679)),Promise.resolve().then(c.bind(c,92006)),Promise.resolve().then(c.bind(c,59982)),Promise.resolve().then(c.bind(c,39717)),Promise.resolve().then(c.bind(c,39097)),Promise.resolve().then(c.bind(c,33988)),Promise.resolve().then(c.bind(c,62030)),Promise.resolve().then(c.bind(c,18457)),Promise.resolve().then(c.bind(c,69901)),Promise.resolve().then(c.bind(c,48743)),Promise.resolve().then(c.bind(c,96537)),Promise.resolve().then(c.bind(c,52050)),Promise.resolve().then(c.bind(c,50922)),Promise.resolve().then(c.bind(c,52801)),Promise.resolve().then(c.bind(c,52575))},7123:(a,b,c)=>{"use strict";c.d(b,{DataSharesTableView:()=>s});var d=c(469),e=c(72454),f=c(17200),g=c(52095),h=c(78666),i=c(19270),j=c(37248),k=c(46807),l=c(95);function m({classes:a}){return(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[a.slice(0,3).map(a=>(0,d.jsx)(i.HD,{cls:a},a)),a.length>3&&(0,d.jsxs)("span",{className:"text-xs text-text-3",children:["+",a.length-3]})]})}function n({d:a,renderedAt:b,expanded:c,selected:f,onToggle:j,onOpen:k,showHost:n}){let o=(0,l.EI)(a.transports);return(0,d.jsxs)(e.Hj,{onClick:k,"aria-label":`View details for destination ${n?a.host:a.name}`,className:(0,e.cn)("cursor-pointer",f?"bg-primary-tint":"hover:bg-surface-2"),children:[(0,d.jsx)(e.nA,{className:"w-9",children:(0,d.jsx)(e.$n,{"aria-label":c?"Collapse":"Expand",onClick:a=>{a.stopPropagation(),j()},variant:"ghost",size:"sm",children:(0,d.jsx)(h.vK,{"aria-hidden":!0,focusable:!1,className:(0,e.cn)("size-4 transition-transform",c&&"rotate-90")})})}),(0,d.jsx)(e.nA,{children:(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[n&&(0,d.jsx)("span",{className:"h-3.5 w-3.5 shrink-0 rounded-bl border-b-[1.5px] border-l-[1.5px] border-border-strong"}),(0,d.jsx)(i.Wi,{kind:a.kind,trust:a.trust,name:a.name}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:(0,e.cn)("whitespace-nowrap font-semibold text-text",!n&&"ip"===a.kind&&"font-mono"),children:n?a.host:a.name}),o&&(0,d.jsx)("span",{title:"Sends over plaintext",className:"inline-flex text-sev-critical-ink",children:(0,d.jsx)(h._0,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})})]}),(0,d.jsx)("div",{className:"whitespace-nowrap text-xs text-text-3",children:n?(0,d.jsxs)(d.Fragment,{children:[a.name," \xb7 ",a.category]}):(0,d.jsxs)(d.Fragment,{children:[a.host!==a.name?`${a.host} \xb7 `:"",a.category,a.network?.geo?" \xb7 "+a.network.geo:""]})})]})]})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)(i.xB,{trust:a.trust})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)(i.hC,{status:a.status,isCustom:a.isCustom})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.transports.map(a=>(0,d.jsx)(i.eV,{transport:a},a))})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)(m,{classes:a.dataClasses})}),(0,d.jsxs)(e.nA,{className:"whitespace-nowrap text-xs text-text-3",children:[(0,d.jsx)("b",{className:"text-text",children:a.endpointCount})," endpoint",1===a.endpointCount?"":"s"," \xb7 ",(0,d.jsx)("b",{className:"text-text",children:a.callSiteCount})," call",1===a.callSiteCount?"":"s"]}),(0,d.jsx)(e.nA,{className:"whitespace-nowrap text-xs text-text-3",children:(0,g.K)(a.lastSeen,b)})]})}function o(a,b){let[c,...d]=a;if(void 0===c)return null;let e=b(c);return d.every(a=>b(a)===e)?e:null}function p({g:a,renderedAt:b,expanded:c,pinnedOpen:f,onToggle:j}){let k=o(a.hosts,a=>a.trust),l=o(a.hosts,a=>a.status),n=a.hosts.some(a=>a.isCustom),p=c?"Collapse":"Expand";return(0,d.jsxs)(e.Hj,{onClick:f?void 0:j,"aria-label":`${p} provider ${a.name}`,className:(0,e.cn)(!f&&"cursor-pointer hover:bg-surface-2"),children:[(0,d.jsx)(e.nA,{className:"w-9",children:(0,d.jsx)(e.$n,{"aria-label":f?"Kept open while a host is selected":p,disabled:f,onClick:a=>{a.stopPropagation(),j()},variant:"ghost",size:"sm",children:(0,d.jsx)(h.vK,{"aria-hidden":!0,focusable:!1,className:(0,e.cn)("size-4 transition-transform",c&&"rotate-90")})})}),(0,d.jsx)(e.nA,{children:(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(i.Wi,{kind:"provider",trust:"recognized",name:a.name}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"whitespace-nowrap font-semibold text-text",children:a.name}),a.insecure&&(0,d.jsx)("span",{title:"Sends over plaintext",className:"inline-flex text-sev-critical-ink",children:(0,d.jsx)(h._0,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})})]}),(0,d.jsxs)("div",{className:"whitespace-nowrap text-xs text-text-3",children:[a.category," \xb7 ",a.hosts.length," hosts"]})]})]})}),(0,d.jsx)(e.nA,{children:k?(0,d.jsx)(i.xB,{trust:k}):(0,d.jsx)("span",{className:"text-xs text-text-3",children:"Mixed"})}),(0,d.jsx)(e.nA,{children:l?(0,d.jsx)(i.hC,{status:l,isCustom:n}):(0,d.jsx)("span",{className:"text-xs text-text-3",children:"Mixed"})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.transports.map(a=>(0,d.jsx)(i.eV,{transport:a},a))})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)(m,{classes:a.dataClasses})}),(0,d.jsxs)(e.nA,{className:"whitespace-nowrap text-xs text-text-3",children:[(0,d.jsx)("b",{className:"text-text",children:a.endpointCount})," endpoint",1===a.endpointCount?"":"s"," \xb7 ",(0,d.jsx)("b",{className:"text-text",children:a.callSiteCount})," call",1===a.callSiteCount?"":"s"]}),(0,d.jsx)(e.nA,{className:"whitespace-nowrap text-xs text-text-3",children:(0,g.K)(a.lastSeen,b)})]})}function q({ep:a,renderedAt:b,selected:c,onClick:f}){return(0,d.jsxs)(e.Hj,{onClick:f,"aria-label":`View details for endpoint ${a.method} ${a.url}`,className:(0,e.cn)("cursor-pointer",c?"bg-primary-tint":"bg-surface-2 hover:bg-surface-3"),children:[(0,d.jsx)(e.nA,{className:"w-9"}),(0,d.jsx)(e.nA,{colSpan:3,children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5 pl-1.5 py-1",children:[(0,d.jsx)("span",{className:"h-3.5 w-3.5 shrink-0 rounded-bl border-b-[1.5px] border-l-[1.5px] border-border-strong"}),(0,d.jsx)(i.kX,{method:a.method}),(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,d.jsx)(i.UH,{url:a.url}),a.template&&(0,d.jsx)(i.SU,{})]})]})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)(i.eV,{transport:a.transport})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)(i.HD,{cls:a.dataClass})}),(0,d.jsxs)(e.nA,{className:"whitespace-nowrap text-xs text-text-3",children:[(0,d.jsx)("b",{className:"text-text",children:a.callSiteCount})," call",1===a.callSiteCount?"":"s"]}),(0,d.jsx)(e.nA,{className:"whitespace-nowrap text-xs text-text-3",children:(0,g.K)(a.lastSeen,b)})]})}function r({d:a,renderedAt:b,expanded:c,selection:e,drawerOpen:f,onToggle:g,onOpenDest:h,onOpenEndpoint:i,showHost:k}){let l=f&&e?.id===a.id&&null==e.endpointId;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n,{d:a,renderedAt:b,expanded:c,selected:l,onToggle:(0,j.T)(g,a.id),onOpen:(0,j.T)(h,a.id),...k?{showHost:!0}:{}}),c&&a.endpoints.map(c=>(0,d.jsx)(q,{ep:c,renderedAt:b,selected:f&&e?.id===a.id&&e.endpointId===c.id,onClick:(0,j.i)(i,a.id,c.id)},c.id))]})}function s({group:a,expanded:b,forceExpand:c,selection:g,drawerOpen:h,onToggle:i,onOpenDest:l,onOpenEndpoint:m,renderedAt:n,groupByProvider:o}){let q=o?(0,k.cT)(a.items):a.items.map(a=>({type:"destination",item:a}));return(0,d.jsxs)(e.XI,{children:[(0,d.jsx)(e.A0,{children:(0,d.jsxs)(e.Hj,{children:[(0,d.jsx)(e.nd,{className:"w-9"}),(0,d.jsx)(e.nd,{children:"Destination"}),(0,d.jsx)(e.nd,{children:"Trust"}),(0,d.jsx)(e.nd,{children:"Status"}),(0,d.jsx)(e.nd,{children:"Transport"}),(0,d.jsx)(e.nd,{children:"Data sent"}),(0,d.jsx)(e.nd,{children:"Footprint"}),(0,d.jsx)(e.nd,{children:"Last seen"})]})}),(0,d.jsx)(e.BF,{children:q.map(a=>{if("destination"===a.type){let e=a.item,j=(c??!1)||!!b[e.id];return(0,d.jsx)(f.Fragment,{children:(0,d.jsx)(r,{d:e,renderedAt:n,expanded:j,selection:g,drawerOpen:h,onToggle:i,onOpenDest:l,onOpenEndpoint:m})},e.id)}let e=a.group,k=h&&e.hosts.some(a=>a.id===g?.id),o=(c??!1)||!!b[e.id]||k;return(0,d.jsxs)(f.Fragment,{children:[(0,d.jsx)(p,{g:e,renderedAt:n,expanded:o,pinnedOpen:k,onToggle:(0,j.T)(i,e.id)}),o&&e.hosts.map(a=>{let e=(c??!1)||!!b[a.id];return(0,d.jsx)(f.Fragment,{children:(0,d.jsx)(r,{d:a,renderedAt:n,expanded:e,selection:g,drawerOpen:h,onToggle:i,onOpenDest:l,onOpenEndpoint:m,showHost:!0})},a.id)})]},e.id)})})]})}},7413:(a,b,c)=>{"use strict";c.d(b,{FindingsOverTimeCardView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call FindingsOverTimeCardView() from the server but FindingsOverTimeCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/security/FindingsOverTimeCardView.tsx","FindingsOverTimeCardView")},8070:(a,b,c)=>{"use strict";c.d(b,{m:()=>h});var d=c(72454),e=c(17200),f=c(78666);let g={alert:f._0,"alert-octagon":f.rX,"arrow-up":f.Kp,bolt:f.DQ,book:f.oS,branch:f.OK,check:f.Sr,"check-circle":f.C1,"chevron-down":f.D3,"chevron-right":f.vK,clock:f.O4,cloud:f.hp,code:f.lo,database:f.bN,edit:f.qU,"external-share":f._G,eye:f.bM,"eye-off":f.aR,file:f.oS,flag:f.iF,folder:f.sj,globe:f.fC,help:f.mo,info:f.mo,layers:f.mL,list:f.kp,lock:f.XA,plus:f.c1,redact:f.jZ,refresh:f.fN,repo:f.SY,route:f.hF,search:f.WI,server:f.RR,settings:f.Ze,"shield-check":f.Zu,"slash-circle":f.pD,sliders:f.Qf,sparkles:f.BZ,swap:f.f6,terminal:f.k3,x:f.uv,"x-circle":f.pD};function h({name:a,className:b}){return(0,e.createElement)(g[a],{"aria-hidden":!0,focusable:!1,className:(0,d.cn)("size-4",b)})}},11696:(a,b,c)=>{"use strict";c.d(b,{NeedsReviewStripView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call NeedsReviewStripView() from the server but NeedsReviewStripView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/data-shares/NeedsReviewStripView.tsx","NeedsReviewStripView")},12148:(a,b,c)=>{"use strict";c.d(b,{RecommendedActionsCardView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call RecommendedActionsCardView() from the server but RecommendedActionsCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/security/RecommendedActionsCardView.tsx","RecommendedActionsCardView")},12471:()=>{},12771:(a,b,c)=>{"use strict";c.d(b,{ApproveExceptionDialog:()=>h});var d=c(469),e=c(72454),f=c(17200),g=c(73379);function h({entry:a,open:b,onOpenChange:c,onSubmit:h,busy:i,error:j}){let[k,l]=(0,f.useState)(null),[m,n]=(0,f.useState)(""),[o,p]=(0,f.useState)(""),q="permanent"===k,r=null!==a&&null!==k&&""!==m.trim()&&(!q||o===a.maskedValue);return(0,d.jsx)(e.lG,{open:b,onOpenChange:a=>{a||(l(null),n(""),p("")),c(a)},children:(0,d.jsxs)(e.Cf,{children:[(0,d.jsxs)(e.c7,{children:[(0,d.jsx)(e.L3,{children:"Approve blocked detection"}),(0,d.jsx)(e.rr,{children:"Grant an explicit, audited bypass for this exact value. Enforcement continues for every other value."})]}),(0,d.jsx)(e.R4,{children:a&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"rounded-lg border border-border bg-surface-2 p-3 text-xs",children:[(0,d.jsx)("div",{className:"font-mono font-semibold text-text",children:a.ruleId}),(0,d.jsx)("div",{className:"mt-1 font-mono text-text-2",children:a.maskedValue})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1.5 text-label font-semibold uppercase tracking-wider text-text-3",children:"Scope — pick one"}),(0,d.jsx)(g.ScopePicker,{value:k,onChange:l})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1.5 text-label font-semibold uppercase tracking-wider text-text-3",children:"Reason (required — the audit trail)"}),(0,d.jsx)(e.pd,{value:m,onChange:a=>{n(a.target.value)},placeholder:"Why this value may pass"})]}),q&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1.5 text-label font-semibold uppercase tracking-wider text-text-3",children:"Type the masked value to confirm a permanent grant"}),(0,d.jsx)(e.pd,{value:o,onChange:a=>{p(a.target.value)},placeholder:a.maskedValue,autoComplete:"off",className:"font-mono"})]}),j&&(0,d.jsx)("p",{className:"text-xs text-sev-critical-ink",children:j})]})}),(0,d.jsxs)(e.Es,{children:[(0,d.jsx)(e.$n,{variant:"ghost",tone:"neutral",size:"sm",onClick:()=>{c(!1)},children:"Cancel"}),(0,d.jsx)(e.$n,{variant:"solid",tone:"primary",size:"sm",disabled:!r||i,onClick:()=>{a&&k&&h({reference:a.reference,scope:k,reason:m.trim(),...q?{confirmation:o}:{}})},children:i?"Granting…":"Grant exception"})]})]})})}},12978:(a,b,c)=>{"use strict";c.d(b,{FindingTypesListView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call FindingTypesListView() from the server but FindingTypesListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingTypesListView.tsx","FindingTypesListView")},13186:(a,b,c)=>{"use strict";c.d(b,{HarnessSelect:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call HarnessSelect() from the server but HarnessSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/HarnessSelect.tsx","HarnessSelect")},13374:(a,b,c)=>{"use strict";c.d(b,{ProjectPane:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call ProjectPane() from the server but ProjectPane is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/ProjectPane.tsx","ProjectPane")},14255:(a,b,c)=>{"use strict";c.d(b,{FindingLevelFilters:()=>e,FindingsToolbarView:()=>f});var d=c(37195);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call FindingLevelFilters() from the server but FindingLevelFilters is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsToolbarView.tsx","FindingLevelFilters"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call FindingsToolbarView() from the server but FindingsToolbarView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsToolbarView.tsx","FindingsToolbarView")},17019:(a,b,c)=>{"use strict";c.d(b,{t:()=>k});var d=c(469),e=c(72454),f=c(17200),g=c(78666),h=c(55908),i=c(74637),j=c(62308);function k({d:a,onOpenUpdate:b,updateRefusal:c,onRecheck:k,unknownHint:l}){let m=(0,j.Xg)(a),n=a.update?.latestVersion??a.latestVersion??"",o=(0,f.useId)(),p=void 0===c?null:(0,h.w)(o,c,"hover:bg-sev-high-ink");return(0,d.jsxs)("div",{className:"overflow-hidden rounded-xl border border-border shrink-0",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2.5 bg-surface-2 px-4 py-3 border-b border-border",children:[(0,d.jsx)(i.Ai,{origin:a.origin}),(0,d.jsx)(i.Jk,{publisher:a.publisher??a.namespace,kind:a.publisherKind??"user"}),(0,d.jsx)("span",{className:"flex-1"}),(0,d.jsxs)("span",{className:"font-mono text-label text-text-2",children:["tracking v",a.version]})]}),"update-available"===m?(0,d.jsxs)("div",{className:"flex items-center gap-3 bg-sev-high-fill px-4 py-3",children:[(0,d.jsx)(g.Kp,{"aria-hidden":!0,focusable:!1,className:"size-4.5 shrink-0 text-sev-high-ink"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"text-sm font-semibold text-sev-high-ink",children:["Update available \xb7 v",n]}),(0,d.jsx)("div",{className:"mt-px text-xs leading-snug text-text-2",children:"A newer version is published upstream."})]}),b&&(null===p?(0,d.jsx)(e.$n,{size:"sm","data-slot":"open-update",onClick:b,className:"shrink-0 bg-sev-high-ink text-on-accent hover:bg-sev-high-ink",children:"Update"}):(0,d.jsxs)("div",{className:"flex max-w-56 shrink-0 flex-col items-end gap-1 text-right",children:[(0,d.jsx)(e.$n,{size:"sm","data-slot":"open-update",...p,className:(0,e.cn)("shrink-0 bg-sev-high-ink text-on-accent",p.className),children:"Update"}),(0,d.jsx)(h.P,{id:o,dataSlot:"open-update-reason",children:c})]}))]}):"up-to-date"===m?(0,d.jsxs)("div",{className:"flex items-center gap-2.5 px-4 py-2.5 text-xs text-text-3",children:[(0,d.jsx)(g.C1,{"aria-hidden":!0,focusable:!1,className:"size-4 text-ok-ink"}),"Up to date with upstream"]}):(0,d.jsxs)("div",{className:"flex items-center gap-2.5 px-4 py-2.5 text-xs text-text-3",children:[(0,d.jsx)(g.mo,{"aria-hidden":!0,focusable:!1,className:"size-4 shrink-0"}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:["Update status unknown",l?(0,d.jsxs)(d.Fragment,{children:[" — ",l]}):"."]}),k&&(0,d.jsx)(e.$n,{variant:"ghost",tone:"neutral",size:"sm",onClick:k,children:"Check again"})]})]})}},17879:(a,b,c)=>{"use strict";c.d(b,{DataSharesKindTabsView:()=>i});var d=c(469),e=c(72454),f=c(78666),g=c(95);function h({group:a}){let b="ip"===a.kind||"external"===a.kind;return(0,d.jsxs)(d.Fragment,{children:[g.CF[a.kind],(0,d.jsx)(e.Ex,{variant:"outline",className:"px-1.5 text-label",children:a.total}),b&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f._0,{"aria-hidden":!0,focusable:!1,className:"ip"===a.kind?"text-sev-critical-ink":"text-sev-high-ink"}),(0,d.jsx)("span",{className:"sr-only",children:"review recommended"})]})]})}function i({groups:a}){return(0,d.jsx)(e.j7,{className:"shrink-0",children:a.map(a=>(0,d.jsx)(e.Xi,{value:a.kind,children:(0,d.jsx)(h,{group:a})},a.kind))})}},18193:(a,b,c)=>{"use strict";c.d(b,{SessionListView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call SessionListView() from the server but SessionListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/SessionListView.tsx","SessionListView")},18457:(a,b,c)=>{"use strict";c.d(b,{ThemeToggle:()=>k});var d=c(469),e=c(72454),f=c(17200),g=c(82927);let h={light:"Light",dark:"Dark",system:"System"};function i({className:a}){return(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,focusable:!1,className:a,children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,d.jsx)("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"})]})}function j({className:a}){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,focusable:!1,className:a,children:(0,d.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79Z"})})}function k(){let a=(0,f.useSyncExternalStore)(g.Mk,g.t$,g.Py),b=(0,f.useSyncExternalStore)(g.lr,g.Ud,g.LZ),c="system"===a?b?"dark":"light":a;return(0,d.jsxs)(e.rI,{children:[(0,d.jsx)(e.ty,{asChild:!0,children:(0,d.jsx)(e.$n,{variant:"ghost",tone:"neutral",size:"icon","aria-label":`Theme: ${h[a]}`,children:(0,d.jsx)("dark"===c?j:i,{className:"size-4"})})}),(0,d.jsx)(e.SQ,{align:"end",children:(0,d.jsx)(e.Hr,{value:a,onValueChange:a=>{(0,g.nk)(a)&&(0,g.pT)(a)},children:g.j0.map(a=>(0,d.jsx)(e.Ht,{value:a,children:h[a]},a))})})]})}},18507:(a,b,c)=>{"use strict";c.d(b,{SessionListView:()=>p});var d=c(469),e=c(72454),f=c(52095),g=c(78666),h=c(38833),i=c(33988),j=c(92070),k=c(20322),l=c(91301),m=c(81436);function n({session:a,selected:b,onSelect:c,renderedAt:i}){let j=a.findings>0;return(0,d.jsxs)("button",{type:"button",onClick:c,"aria-current":b?"true":void 0,className:(0,e.cn)("relative cursor-pointer block w-full rounded-lg px-3 py-2.5 text-left transition-colors",b?"bg-primary-tint":"hover:bg-surface-2"),children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-2.5",children:[(0,d.jsx)(h.K,{id:a.harness,size:26}),(0,d.jsx)("div",{className:"min-w-0 flex-1",children:(0,d.jsx)("div",{className:"truncate text-ui font-semibold text-text",title:a.title,children:a.title})}),(0,d.jsx)(k.md,{status:a.status})]}),(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 font-mono text-label text-text-3",children:[(0,d.jsx)(g.SY,{"aria-hidden":!0,focusable:!1,className:"size-3 shrink-0"}),(0,d.jsx)("span",{className:"min-w-0 max-w-[50%] truncate",title:a.project,children:a.project}),(0,d.jsx)("span",{className:"shrink-0 text-text-3",children:"\xb7"}),(0,d.jsx)(g.OK,{"aria-hidden":!0,focusable:!1,className:"size-3 shrink-0"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",title:a.branches[0],children:a.branches[0]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2",children:[(0,d.jsx)("span",{className:"text-xs font-semibold text-text-2",title:new Date(a.startedAt).toLocaleString(),suppressHydrationWarning:!0,children:(0,f.K)(a.startedAt,i)}),(0,d.jsx)(k.JW,{icon:g.O4,children:(0,l.vV)(a.startedAt,a.endedAt,a.status,i)}),(0,d.jsxs)(k.JW,{icon:g.kp,children:[a.turns," turns"]}),j&&(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 whitespace-nowrap text-xs font-semibold text-sev-critical-ink",children:[(0,d.jsx)(g.Zu,{"aria-hidden":!0,focusable:!1,className:"size-3"}),a.findings]})]})]})}function o(){return(0,d.jsxs)("div",{className:"rounded-lg px-3 py-2.5",children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-2.5",children:[(0,d.jsx)(e.EA,{className:"size-6.5 shrink-0 rounded-lg"}),(0,d.jsx)(e.EA,{className:"h-4 flex-1"})]}),(0,d.jsx)(e.EA,{className:"mb-2 h-3 w-2/3"}),(0,d.jsx)(e.EA,{className:"h-3 w-1/2"})]})}function p({sessions:a,selectedId:b,onSelect:c,query:f,onQuery:g,harness:h,harnessOptions:k,onHarness:p,isLoading:q,error:r,hasMore:s=!1,emptyCount:t=0,showEmpty:u=!1,onToggleEmpty:v,renderedAt:w}){let x=(0,l.u3)(a,new Date(w)),y=""!==f.trim()||h.length>0,z=1===t?"background session":"background sessions",A=t>0&&v?(0,d.jsx)("div",{className:"px-2 py-2 text-center",children:(0,d.jsx)(e.$n,{variant:"link",tone:"primary",className:"text-label font-normal",onClick:v,children:u?`Hide ${String(t)} ${z}`:`${String(t)} ${z} hidden — show`})}):null;return(0,d.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,d.jsxs)("div",{className:"shrink-0 border-b border-border p-3",children:[(0,d.jsx)(i.SearchField,{value:f,onValueChange:g,label:"Search sessions and events",placeholder:"Search sessions & events…",surface:"card",className:"mb-2 h-8.5 px-2.5",iconClassName:"size-3.5"}),(0,d.jsx)(m.HarnessSelect,{value:h,onChange:p,...k?{options:k}:{}})]}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-2","aria-busy":q,children:r?(0,d.jsx)("div",{className:"p-2",children:(0,d.jsx)(j.r,{message:r})}):q&&0===a.length?(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)(o,{}),(0,d.jsx)(o,{}),(0,d.jsx)(o,{})]}):0===x.length?(0,d.jsxs)("div",{className:"py-10 text-center text-sm text-text-3",children:[y?"No sessions match":t>0?"No active sessions in this range":"No sessions recorded yet",A]}):(0,d.jsxs)(d.Fragment,{children:[x.map(a=>(0,d.jsxs)("div",{className:"mb-1.5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-2 pb-1.5 pt-2",children:[(0,d.jsx)("span",{className:"text-label font-semibold uppercase tracking-wider text-text-3",children:a.day}),(0,d.jsx)("span",{className:"h-px flex-1 bg-hairline"}),(0,d.jsx)("span",{className:"text-label text-text-3",children:a.items.length})]}),(0,d.jsx)("div",{className:"flex flex-col gap-1",children:a.items.map(a=>(0,d.jsx)(n,{session:a,renderedAt:w,selected:a.id===b,onSelect:()=>{c(a.id)}},a.id))})]},a.day)),A,s&&(0,d.jsxs)("div",{className:"px-2 py-3 text-center text-label text-text-3",children:["Showing the most recent ",a.length," sessions — narrow the range to see more."]})]})})]})}},19270:(a,b,c)=>{"use strict";c.d(b,{HD:()=>k,SU:()=>p,UH:()=>o,Wi:()=>n,eV:()=>j,hC:()=>m,kX:()=>i,xB:()=>l});var d=c(469),e=c(72454),f=c(78666),g=c(95);let h={GET:"low",POST:"ok",PUT:"high",DELETE:"critical",SDK:"ok",REF:"medium"};function i({method:a}){return(0,d.jsx)("span",{className:(0,e.cn)("inline-flex h-5 items-center rounded px-1.5 font-mono text-label leading-none font-bold py-0.5",e.id[h[a]]),children:a})}function j({transport:a,plain:b}){let c=g.aD[a],f=c.icon;return b?(0,d.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-1.5 text-xs font-semibold",c.secure?"text-text-2":"text-sev-critical-ink"),children:[(0,d.jsx)(f,{"aria-hidden":!0,focusable:!1,className:"size-3"}),c.label,!c.secure&&" \xb7 plaintext"]}):(0,d.jsxs)(e.Ex,{variant:c.secure?"default":"critical",children:[(0,d.jsx)(f,{"aria-hidden":!0,focusable:!1,className:"size-3"}),c.label]})}function k({cls:a}){let b=g.Hf[a],c=b.icon;return(0,d.jsxs)(e.Ex,{variant:b.tone,children:[(0,d.jsx)(c,{"aria-hidden":!0,focusable:!1,className:"size-3"}),b.label]})}function l({trust:a}){let b=g.pN[a],c=b.icon;return(0,d.jsxs)(e.Ex,{variant:b.tone,children:[(0,d.jsx)(c,{"aria-hidden":!0,focusable:!1,className:"size-3"}),b.label]})}function m({status:a,isCustom:b}){let c=g.P4[a],f=c.icon;return(0,d.jsxs)(e.Ex,{variant:b?c.tone:"default",children:[(0,d.jsx)(f,{"aria-hidden":!0,focusable:!1,className:"size-3"}),c.label,(0,d.jsx)("span",{className:"sr-only",children:b?" — set by an operator":" — trust default"})]})}function n({kind:a,trust:b,name:c,size:h=34}){if("provider"===a){let{short:a,color:b}=(0,g.Lh)(c);return(0,d.jsx)("span",{className:"inline-flex shrink-0 items-center justify-center rounded-lg font-display font-semibold text-white ring-1 ring-inset ring-mark-edge",style:{width:h,height:h,background:b,fontSize:.34*h},children:a})}let i={width:.5*h,height:.5*h},j="ip"===a?(0,d.jsx)(f.ts,{"aria-hidden":!0,focusable:!1,style:i}):"external"===a||"unverified"===b?(0,d.jsx)(f.ai,{"aria-hidden":!0,focusable:!1,style:i}):(0,d.jsx)(f.RR,{"aria-hidden":!0,focusable:!1,style:i});return(0,d.jsx)("span",{className:(0,e.cn)("grid shrink-0 place-items-center rounded-lg",(0,g.rL)({kind:a,trust:b})),style:{width:h,height:h},children:j})}function o({url:a,big:b}){let c=a.split(/(\$\{[^}]+\})/g);return(0,d.jsx)("span",{className:(0,e.cn)("break-all font-mono",b?"text-ui":"text-xs"),children:c.map((a,b)=>a.startsWith("${")?(0,d.jsx)("span",{className:"rounded bg-primary-tint px-1 font-semibold text-primary",children:a},b):(0,d.jsx)("span",{children:a},b))})}function p(){return(0,d.jsxs)(e.Ex,{variant:"default",children:[(0,d.jsx)(f.cZ,{"aria-hidden":!0,focusable:!1,className:"size-2.5"}),"Template"]})}},20322:(a,b,c)=>{"use strict";c.d(b,{JW:()=>i,Lw:()=>k,UD:()=>h,md:()=>g,zn:()=>j});var d=c(469),e=c(72454),f=c(40523);function g({status:a}){return"active"===a?(0,d.jsxs)("span",{className:"relative flex size-2 shrink-0",title:"Live",children:[(0,d.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-ok opacity-75"}),(0,d.jsx)("span",{className:"relative inline-flex size-2 rounded-full bg-ok"})]}):(0,d.jsx)("span",{className:(0,e.cn)("size-1.5 shrink-0 rounded-full",f.nR[a].dot)})}function h({status:a}){let b=f.nR[a];return(0,d.jsxs)(e.Ex,{variant:b.badge,className:"h-6 gap-1.5",children:[(0,d.jsx)(g,{status:a}),b.label]})}function i({icon:a,children:b}){return(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 whitespace-nowrap text-xs text-text-3",children:[(0,d.jsx)(a,{"aria-hidden":!0,focusable:!1,className:"size-3"}),b]})}function j({name:a,n:b,href:c}){let g=f.pS[a]??f.ek,h=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g,{"aria-hidden":!0,focusable:!1,className:"size-3 text-text-3"}),a,(0,d.jsx)("span",{className:"tabular-nums text-text",children:b})]}),i="inline-flex items-center gap-1.5 rounded-full border border-border bg-surface-2 py-0.5 px-2 text-xs font-semibold text-text-2";return c?(0,d.jsx)("a",{href:c,title:`Findings captured via ${a}`,className:(0,e.cn)(i,"transition-colors hover:bg-surface-3 hover:text-text"),children:h}):(0,d.jsx)("span",{className:i,children:h})}function k({items:a,mono:b=!1,nowrap:c=!1}){return(0,d.jsx)("div",{className:(0,e.cn)("flex gap-1.5",c?"min-w-0 overflow-hidden":"flex-wrap"),children:a.map(a=>(0,d.jsx)("span",{title:a,className:(0,e.cn)("rounded-md border border-border bg-surface-2 px-1.5 py-0.5 text-xs text-text",b&&"font-mono",c&&"min-w-0 truncate"),children:a},a))})}},20521:(a,b,c)=>{"use strict";c.d(b,{DataShareDetailView:()=>n});var d=c(469),e=c(72454),f=c(52095),g=c(99846),h=c(78666),i=c(19270),j=c(95);function k({st:a}){return(0,d.jsxs)("div",{className:"rounded-lg border border-border bg-surface p-3",children:[(0,d.jsxs)("div",{className:"mb-1.5 flex items-center gap-2",children:[(0,d.jsx)(h.SY,{"aria-hidden":!0,focusable:!1,className:"size-3.5 shrink-0 text-primary"}),(0,d.jsx)("span",{className:"text-xs font-semibold text-text",children:a.project}),a.vendored?(0,d.jsx)("span",{className:"ml-auto",children:(0,d.jsx)(e.Ex,{variant:"high",children:"Vendored"})}):a.dynamic&&(0,d.jsx)("span",{className:"ml-auto",children:(0,d.jsxs)(e.Ex,{variant:"default",children:[(0,d.jsx)(h.cZ,{"aria-hidden":!0,focusable:!1,className:"size-2.5"}),"Dynamic"]})})]}),(0,d.jsxs)("span",{className:"font-mono text-xs text-text-3",children:[a.file,":",(0,d.jsx)("b",{className:"text-text-2",children:a.line})]}),""!==a.snippet&&(0,d.jsxs)("div",{className:"overflow-x-auto whitespace-pre rounded-md bg-ink px-2.5 py-2 font-mono text-xs leading-relaxed text-white mt-0.5",children:[(0,d.jsxs)("span",{className:"text-code-muted",children:[a.file.split("/").pop(),":",a.line," "]}),a.snippet]})]})}function l({d:a,onPick:b}){let c=j.pN[a.trust].icon,f=a.endpoints.reduce((a,b)=>a+b.callSiteCount,0);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)(i.Wi,{kind:a.kind,trust:a.trust,name:a.name,size:44}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:(0,e.cn)("text-lg font-semibold text-text","ip"===a.kind?"font-mono":"font-display"),children:a.name}),a.host!==a.name&&(0,d.jsx)("div",{className:"text-xs text-text-3",children:a.host}),(0,d.jsxs)("div",{className:"mt-0.5 text-xs text-text-3",children:[a.category," \xb7 ",a.endpoints.length," endpoints \xb7 ",f," call sites"]})]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(i.xB,{trust:a.trust}),a.transports.map(a=>(0,d.jsx)(i.eV,{transport:a},a))]}),(null!==a.note||a.network?.geo!=null)&&(0,d.jsxs)("div",{className:"flex gap-2.5 rounded-lg border border-border bg-surface-2 px-3 py-2.5",children:[(0,d.jsx)(c,{"aria-hidden":!0,focusable:!1,className:"mt-0.5 size-4 shrink-0 text-text-2"}),(0,d.jsxs)("div",{className:"text-xs leading-normal text-text-2",children:[a.network?.geo!=null&&(0,d.jsxs)("div",{children:[(0,d.jsx)("b",{className:"text-text",children:"Resolves to "}),a.network.geo,null!=a.network.ptr?" \xb7 "+a.network.ptr:""]}),null!=a.note&&(0,d.jsx)("div",{className:a.network?.geo!=null?"mt-1":"",children:a.note})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)(g.e,{children:"Endpoints"}),(0,d.jsx)("div",{className:"flex flex-col gap-2",children:a.endpoints.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>{b(a.id)},className:"flex w-full cursor-pointer items-center gap-2.5 rounded-lg border border-border bg-surface px-3 py-2.5 text-left hover:bg-surface-2",children:[(0,d.jsx)(i.kX,{method:a.method}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)(i.UH,{url:a.url}),(0,d.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,d.jsx)(i.eV,{transport:a.transport,plain:!0}),(0,d.jsxs)("span",{className:"text-xs text-text-3",children:["\xb7 ",a.callSiteCount," call",1===a.callSiteCount?"":"s"]})]})]}),(0,d.jsx)(h.vK,{"aria-hidden":!0,focusable:!1,className:"size-4 shrink-0 text-text-3"})]},a.id))})]})]})}function m({d:a,ep:b,onBack:c,renderedAt:j}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{children:(0,d.jsxs)(e.$n,{onClick:c,size:"sm",variant:"link",tone:"primary",children:[(0,d.jsx)(h.YJ,{"aria-hidden":!0,focusable:!1,className:"size-3.5"}),"Back to destination"]})}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-2.5",children:[(0,d.jsx)(i.kX,{method:b.method}),(0,d.jsx)(i.Wi,{kind:a.kind,trust:a.trust,name:a.name,size:22}),(0,d.jsx)("span",{className:"text-xs font-semibold text-text-3",children:a.name})]}),(0,d.jsx)("div",{className:"rounded-lg border border-border bg-surface-2 px-3 py-2.5",children:(0,d.jsx)(i.UH,{url:b.url,big:!0})})]}),b.template&&(0,d.jsxs)("div",{className:"flex gap-2.5 rounded-lg border border-border bg-primary-tint px-3 py-2.5",children:[(0,d.jsx)(h.cZ,{"aria-hidden":!0,focusable:!1,className:"mt-0.5 size-4 shrink-0 text-primary"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-0.5 text-xs font-semibold text-text",children:"Templated URL"}),(0,d.jsxs)("div",{className:"text-xs leading-normal text-text-2",children:["Built at runtime — the"," ",(0,d.jsxs)("span",{className:"rounded bg-primary-tint px-1 font-mono font-semibold text-primary",children:["$","{…}"]})," ","segments vary per request, so individual generated URLs aren’t itemized."]})]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-x-3 gap-y-3.5",children:[(0,d.jsx)(g.p,{label:"Method",children:b.method}),(0,d.jsx)(g.p,{label:"Transport",children:(0,d.jsx)(i.eV,{transport:b.transport,plain:!0})}),(0,d.jsx)(g.p,{label:"Data classification",children:(0,d.jsx)("span",{className:"inline-flex",children:(0,d.jsx)(i.HD,{cls:b.dataClass})})}),(0,d.jsx)(g.p,{label:"Last seen",children:(0,f.K)(b.lastSeen,j)})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)(g.e,{children:"Call sites"}),(0,d.jsx)("div",{className:"flex flex-col gap-2",children:b.sites.map(a=>(0,d.jsx)(k,{st:a},a.id))})]})]})}function n({destination:a,endpoint:b,onPick:c,onBack:f,onSetDecision:g,isSettingDecision:i,renderedAt:k}){let n="blocked"===a.status;return(0,d.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,d.jsx)("header",{className:"flex items-center gap-2.5 border-b border-border px-4.5 py-4 pr-12",children:(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs font-semibold text-text-3",children:[(0,d.jsx)(h._G,{"aria-hidden":!0,focusable:!1,className:"size-4"}),b?"Endpoint":"Destination"]})}),(0,d.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto p-4.5",children:b?(0,d.jsx)(m,{d:a,ep:b,onBack:f,renderedAt:k}):(0,d.jsx)(l,{d:a,onPick:c})}),(0,d.jsxs)("footer",{className:"flex flex-col gap-2 border-t border-border p-3.5",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[(0,d.jsxs)(e.$n,{variant:"outline",children:[(0,d.jsx)(h.iB,{"aria-hidden":!0,focusable:!1}),"Add policy"]}),n?(0,d.jsxs)(e.$n,{variant:"outline",className:"border-ok-fill text-ok-ink hover:bg-ok-fill",disabled:i,onClick:()=>{g("allow")},children:[(0,d.jsx)(h.Sr,{"aria-hidden":!0,focusable:!1}),"Allow egress"]}):(0,d.jsxs)(e.$n,{variant:"solid",tone:"danger",disabled:i,onClick:()=>{g("block")},children:[(0,d.jsx)(h.pD,{"aria-hidden":!0,focusable:!1}),"Block egress"]})]}),a.isCustom&&(0,d.jsxs)(e.$n,{variant:"ghost",size:"sm",tone:"neutral",className:"self-end text-xs text-text-3",disabled:i,onClick:()=>{g(null)},children:["Reset to default (",j.pN[a.trust].label,")"]})]})]})}},21361:(a,b,c)=>{"use strict";c.d(b,{FindingLevelFilters:()=>m,FindingsToolbarView:()=>n});var d=c(469),e=c(72454),f=c(78666),g=c(38833),h=c(33988),i=c(58671);let j=a=>a.charAt(0).toUpperCase()+a.slice(1),k=a=>a in g.x?g.x[a].label:a;function l(a,b,c){let d=new Set(a.map(a=>a.value));return[...a,...b.filter(a=>!d.has(a)).map(a=>({value:a,label:c(a),count:0}))]}function m({facets:a,filters:b,onFiltersChange:c,showDeployment:e=!1}){let f=l(a.provider.map(a=>({value:a.value,label:k(a.value),count:a.count})),b.provider,k),g=l(a.action.map(a=>({value:a.value,label:j(a.value),count:a.count})),b.action,j),h=new Map(a.status.map(a=>[a.value,a.count])),m=i.pM.map(a=>({value:a,label:i.B5[a].label,count:h.get(a)??0})),n=new Map((a.deployment??[]).map(a=>[a.value,a.count])),p=i.Ec.map(a=>({value:a,label:i.V_[a].label,count:n.get(a)??0})),q=(a,d)=>{c({...b,[a]:d})};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(o,{label:"Provider",options:f,selected:b.provider,onChange:a=>{q("provider",a)}}),(0,d.jsx)(o,{label:"Action",options:g,selected:b.action,onChange:a=>{q("action",a)}}),(0,d.jsx)(o,{label:"Status",options:m,selected:b.status,onChange:a=>{q("status",a)}}),e&&(0,d.jsx)(o,{label:"Deployment",options:p,selected:b.deployment,onChange:a=>{q("deployment",a)}})]})}function n({facets:a,filters:b,onFiltersChange:c,query:e,onQueryChange:f,showDeployment:g=!1}){let k=new Map(a.severity.map(a=>[a.value,a.count])),n=i.oC.map(a=>({value:a,label:j(a),count:k.get(a)??0})),p=l(a.subtype.map(a=>({value:a.value,label:a.value,count:a.count})),b.type,a=>a),q=(a,d)=>{c({...b,[a]:d})};return(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)(h.SearchField,{value:e,onValueChange:f,label:"Search findings",placeholder:"Search findings…",clearLabel:"Clear findings search",surface:"canvas",className:"h-9 w-64"}),(0,d.jsx)(o,{label:"Severity",options:n,selected:b.severity,onChange:a=>{q("severity",a)}}),(0,d.jsx)(o,{label:"Type",options:p,selected:b.type,onChange:a=>{q("type",a)}}),(0,d.jsx)(m,{facets:a,filters:b,onFiltersChange:c,showDeployment:g})]})}function o({label:a,options:b,selected:c,onChange:g}){let h=c.length>0;return(0,d.jsxs)(e.AM,{children:[(0,d.jsxs)(e.Wv,{className:(0,e.cn)("inline-flex h-8 items-center gap-1.5 rounded-lg border px-3 text-sm font-medium transition-colors cursor-pointer",h?"border-primary bg-primary-tint text-primary":"border-border text-text-2 bg-surface hover:bg-surface-2"),children:[a,h&&(0,d.jsx)("span",{className:"flex size-4 items-center justify-center rounded-full bg-primary-solid text-[10px] font-semibold text-text-inv",children:c.length}),(0,d.jsx)(f.D3,{className:"size-3.5"})]}),(0,d.jsxs)(e.hl,{className:"min-w-52 max-h-80",children:[b.map(a=>{let b=c.includes(a.value);return(0,d.jsxs)("button",{type:"button",onClick:()=>{var b;b=a.value,g(c.includes(b)?c.filter(a=>a!==b):[...c,b])},className:"flex w-full cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-text hover:bg-surface-2",children:[(0,d.jsx)("span",{className:(0,e.cn)("flex size-4 shrink-0 items-center justify-center rounded border",b?"border-primary-solid bg-primary-solid text-text-inv":"border-border"),children:b&&(0,d.jsx)(f.Sr,{className:"size-3"})}),(0,d.jsx)("span",{className:"flex-1",children:a.label}),void 0!==a.count&&(0,d.jsx)("span",{className:"text-xs tabular-nums text-text-3",children:a.count})]},a.value)}),h&&(0,d.jsx)("button",{type:"button",onClick:()=>{g([])},className:"mt-1 flex w-full cursor-pointer items-center rounded-md border-t border-border px-2 py-1.5 text-left text-sm text-text-2 hover:bg-surface-2",children:"Clear"})]})]})}},22157:(a,b,c)=>{"use strict";c.d(b,{i:()=>f});var d=c(469),e=c(38833);function f({provider:a}){return(0,d.jsxs)("span",{className:"inline-flex items-center gap-2 font-display text-xs text-text",children:[(0,d.jsx)(e.K,{id:a}),e.x[a].label]})}},23420:(a,b,c)=>{"use strict";c.d(b,{H1:()=>i,N2:()=>h,Pt:()=>g,VA:()=>k,q2:()=>j,xf:()=>f});var d=c(28615),e=c(62308);function f(a){return a.locked?"Your organization sets the enforcement policy for this detection, so it cannot be changed on this machine.":`Your organization requires at least ${(0,e.ES)(a.floor).label} for this detection. You can choose a stronger action here, but not a weaker one.`}function g(a){if(!a)return;let b=a.locked?d.V0H:d.V0H.filter(b=>!(0,d.T2I)((0,d.fhc)(b),(0,d.fhc)(a.floor)));if(0===b.length)return;let c=f(a);return Object.fromEntries(b.map(a=>[a,c]))}function h(a,b){let c=a??e.tG;if(!b)return c;let f=d.HUb.safeParse(c);return f.success&&(0,d.T2I)((0,d.fhc)(f.data),(0,d.fhc)(b.floor))?c:b.floor}function i(a,b){return!!b&&(b.locked||h(a,b)!==(a??e.tG))}let j="Your organization requires this detection to stay on, so it cannot be turned off on this machine. You can still give it a stronger enforcement policy here.";function k(a,b){return a&&!!b}},23596:(a,b,c)=>{"use strict";c.d(b,{MatcherModal:()=>f,RuleInspectorBody:()=>e});var d=c(37195);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call RuleInspectorBody() from the server but RuleInspectorBody is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/RuleInspector.tsx","RuleInspectorBody"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call MatcherModal() from the server but MatcherModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/RuleInspector.tsx","MatcherModal")},24590:(a,b,c)=>{"use strict";c.d(b,{DETECTION_FILTER_TABS:()=>e,DetectionsListView:()=>f});var d=c(37195);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call DETECTION_FILTER_TABS() from the server but DETECTION_FILTER_TABS is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/DetectionsListView.tsx","DETECTION_FILTER_TABS"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call DetectionsListView() from the server but DetectionsListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/DetectionsListView.tsx","DetectionsListView")},25031:(a,b,c)=>{"use strict";c.d(b,{BlockedLedgerView:()=>e});var d=c(37195);(0,d.registerClientReference)(function(){throw Error("Attempted to call BLOCKED_REASON_UNSTATED() from the server but BLOCKED_REASON_UNSTATED is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/BlockedLedgerView.tsx","BLOCKED_REASON_UNSTATED");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call BlockedLedgerView() from the server but BlockedLedgerView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/BlockedLedgerView.tsx","BlockedLedgerView")},25306:(a,b,c)=>{"use strict";c.d(b,{DU:()=>l,eF:()=>f,gi:()=>j,hv:()=>g,rO:()=>e,rU:()=>k,y3:()=>i,y6:()=>d.y6l,yr:()=>h});var d=c(28615);function e(a,b){return null!==a.revokedAt?"revoked":null!==a.maxUses&&a.useCount>=a.maxUses?"consumed":null!==a.expiresAt&&Date.parse(a.expiresAt)<=b?"expired":"active"}function f(a,b){if((0,d.qEQ)(a.keyVersion,b))return null;switch(b.status){case"unreadable":return"The fingerprint key file cannot be read, so no recorded detection can be matched right now. Check the permissions on ~/.aka/data — do not delete the key.";case"absent":return"The fingerprint key file is missing, so the fingerprint recorded for this detection can no longer be matched. Trigger the detection again.";default:return`Recorded under fingerprint key v${String(a.keyVersion)}; the key is now v${String(b.version)}, so a grant from it could never match. Trigger the detection again.`}}let g={active:"success",consumed:"default",expired:"default",revoked:"critical"},h={once:"Once",temporary:"Temporary",permanent:"Permanent"},i={suppress:"Suppress",reveal_to_model:"Reveal to model"},j={"cli-approve":"CLI approve","cli-add":"CLI add","web-approve":"Web approve","web-add":"Web add",api:"API","setup-triage":"Setup triage"},k=["once","30m","1h","24h","permanent"],l={once:"Once","30m":"30 min","1h":"1 hour","24h":"24 hours",permanent:"Permanent"}},25834:(a,b,c)=>{"use strict";c.d(b,{DetectionDetailView:()=>o});var d=c(469),e=c(72454),f=c(17200),g=c(99846),h=c(78666),i=c(55908),j=c(62308),k=c(23420),l=c(66663),m=c(17019);function n({rule:a,onOpen:b}){let c=j.rE[a.matcher.type],f=c.icon;return(0,d.jsxs)("div",{className:"rounded-xl border border-border bg-surface p-3.5",children:[(0,d.jsxs)("div",{className:"mb-2.5 flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"grid size-7.5 shrink-0 place-items-center rounded-lg",style:{background:c.fill,color:c.color},children:(0,d.jsx)(f,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"truncate text-sm font-semibold text-text",title:a.name,children:a.name}),(0,d.jsx)("span",{className:"text-xs text-text-3",children:j.gh[a.category]||a.category})]}),(0,d.jsx)("div",{className:"mt-px font-mono text-label text-text-3",children:a.id})]}),(0,d.jsx)(e.Pt,{severity:a.severity}),(0,d.jsx)("span",{className:"shrink-0 rounded-full px-2.5 py-0.5 text-xs font-semibold",style:{background:c.fill,color:c.color},children:c.label})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("code",{className:"min-w-0 flex-1 truncate rounded-md border border-border bg-surface-2 px-2.5 py-1.5 font-mono text-xs text-text-2",children:(0,j.vm)(a.matcher)}),(0,d.jsxs)(e.$n,{variant:"ghost",tone:"primary",size:"sm",onClick:b,className:"shrink-0",children:["View",(0,d.jsx)(h.vK,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})]})]})]})}function o({d:a,onOpenRule:b,onToggleEnabled:c,onChangePolicy:o,unavailablePolicies:p,policyFloor:q,policyError:r,enabledError:s,onOpenUpdate:t,onRecheck:u,unknownHint:v,onAddRule:w,onEditRules:x,onDelete:y,editRefusal:z,deleteRefusal:A}){let B=(0,k.N2)(a.policyId,q),C=(0,j.ES)(B),D=C.icon,E=(0,k.Pt)(q),F=void 0===z?void 0:Object.fromEntries(j.uR.map(a=>[a,z])),G=void 0===p&&void 0===E&&void 0===F?void 0:{...p,...E,...F},H=void 0!==c&&(0,k.VA)(a.enabled,q),I=(0,f.useId)(),J=H||void 0!==c&&void 0!==z,K=z??k.q2,L="custom"===a.origin,M=L&&void 0!==w&&void 0===z,N=L&&void 0!==x&&void 0===z,O=L&&void 0!==y&&void 0===A,P=N||O,Q=L?void 0!==z&&void 0!==w?z:"Adding rules is not available here":"Library rules are not edited in place",R=L?void 0!==z&&void 0!==x?z:void 0!==A&&void 0!==y?A:"Editing and deleting are not available here":"Library detections are not edited in place",S=(0,f.useId)(),T=(0,f.useId)(),U=M?null:(0,i.w)(S,Q,"hover:bg-surface"),V=P?null:(0,i.w)(T,R,"hover:bg-transparent hover:text-text-3"),W=(0,d.jsx)(e.$n,{variant:"ghost",tone:"neutral",size:"icon","aria-label":"More","aria-disabled":V?.["aria-disabled"],"aria-describedby":V?.["aria-describedby"],title:V?.title,className:(0,e.cn)("size-8.5 text-text-3",V?.className),children:(0,d.jsx)(h.wy,{"aria-hidden":!0,focusable:!1})});return(0,d.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,d.jsxs)("div",{className:"border-b border-border px-5 pb-4 pt-5",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2.5",children:[(0,d.jsx)("h2",{className:"font-display text-xl font-semibold text-text",children:a.name}),(0,d.jsxs)("span",{className:"rounded-full border border-border bg-surface-2 px-2 py-0.5 font-mono text-xs font-semibold text-text-2",children:["v",a.version]})]}),a.description&&(0,d.jsx)("div",{className:"mt-1.5 text-ui leading-snug text-text-2",children:a.description}),(0,d.jsx)("div",{className:"mt-2 font-mono text-xs text-text-3",children:a.id})]}),(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-ui font-semibold "+(a.enabled?"text-ok-ink":"text-text-3"),children:a.enabled?"Enabled":"Disabled"}),c&&(0,d.jsx)(e.dO,{checked:a.enabled,...J?{}:{onCheckedChange:c},"aria-disabled":J||void 0,"aria-describedby":J?I:void 0,title:J?K:void 0,className:J?"cursor-not-allowed opacity-50":void 0,"aria-label":a.enabled?"Disable detection":"Enable detection"})]}),P?(0,d.jsxs)(e.rI,{modal:!1,children:[(0,d.jsx)(e.ty,{asChild:!0,children:W}),(0,d.jsxs)(e.SQ,{align:"end",children:[N&&(0,d.jsx)(e._2,{onSelect:()=>{x()},children:"Edit rules"}),N&&O&&(0,d.jsx)(e.mB,{}),O&&(0,d.jsx)(e._2,{tone:"danger",onSelect:()=>{y()},children:"Delete detection"})]})]}):W]})]}),J&&(0,d.jsx)("p",{id:I,className:"mt-2 text-xs text-text-3","data-slot":"enabled-locked-reason",children:K}),s&&(0,d.jsx)("p",{className:"mt-2 text-xs text-sev-critical-ink","data-slot":"enabled-write-error",children:s}),V&&(0,d.jsx)(i.P,{id:T,dataSlot:"more-actions-reason",className:"mt-2",children:R})]}),(0,d.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-6 overflow-y-auto p-5",children:[(0,d.jsx)(m.t,{d:a,onOpenUpdate:t,updateRefusal:z,onRecheck:u,unknownHint:v}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2.5 flex items-baseline gap-2",children:[(0,d.jsx)(g.e,{children:"Enforcement policy"}),(0,d.jsx)("span",{className:"text-xs text-text-3",children:"applied to every matching request"})]}),(0,d.jsx)(l.PolicyPicker,{value:B,onChange:o,unavailable:G}),r&&(0,d.jsx)("p",{className:"mt-2 text-xs text-sev-critical-ink","data-slot":"policy-write-error",children:r}),(0,d.jsxs)("div",{className:"mt-3 flex items-start gap-2.5 rounded-lg border border-border bg-surface-2 px-3 py-2.5",children:[(0,d.jsx)(D,{"aria-hidden":!0,focusable:!1,className:"mt-px size-4 shrink-0",style:{color:(0,e.vV)(C.tone)[0]}}),(0,d.jsx)("div",{className:"text-xs leading-snug text-text-2",children:C.desc})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-3 flex items-center gap-2.5",children:[(0,d.jsx)(g.e,{children:"Rules"}),(0,d.jsx)("span",{className:"rounded-full bg-surface-3 px-2 py-px text-xs font-semibold text-text-2",children:a.rules.length}),(0,d.jsx)("span",{className:"flex-1"}),(0,d.jsxs)(e.$n,{variant:"outline",tone:"neutral",size:"sm",onClick:M?()=>{w()}:void 0,"aria-disabled":U?.["aria-disabled"],"aria-describedby":U?.["aria-describedby"],title:U?.title,className:U?.className,"data-slot":"add-rule",children:[(0,d.jsx)(h.c1,{"aria-hidden":!0,focusable:!1}),"Add rule"]})]}),U&&(0,d.jsx)(i.P,{id:S,dataSlot:"add-rule-reason",className:"mb-3",children:Q}),(0,d.jsx)("div",{className:"flex flex-col gap-2.5",children:a.rules.map(a=>(0,d.jsx)(n,{rule:a,onOpen:()=>{b(a.id)}},a.id))})]})]})]})}},27250:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i});var d=c(469),e=c(72454),f=c(74056),g=c.n(f),h=c(41500);function i({error:a,reset:b}){return(0,d.jsx)("div",{className:"p-6",children:(0,d.jsx)(e.Zp,{className:"mx-auto max-w-lg",children:(0,d.jsxs)(e.Wu,{className:"flex flex-col items-center gap-4 py-10 text-center",children:[(0,d.jsx)("span",{className:"flex size-11 items-center justify-center rounded-full bg-sev-critical-fill",children:(0,d.jsx)(h.rX,{"aria-hidden":!0,focusable:!1,className:"size-5 text-sev-critical-ink"})}),(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("h1",{className:"text-lg font-semibold text-text",children:"Something went wrong"}),(0,d.jsx)("p",{className:"text-sm text-text-2",children:"This page could not be rendered from the local store."}),a.digest&&(0,d.jsxs)("p",{className:"pt-1 font-mono text-xs text-text-3",children:["Error digest: ",a.digest]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(e.$n,{variant:"solid",tone:"primary",onClick:b,children:"Try again"}),(0,d.jsx)(e.$n,{variant:"outline",tone:"neutral",asChild:!0,children:(0,d.jsx)(g(),{href:"/security",children:"Go to Security"})})]})]})})})}},27795:(a,b,c)=>{"use strict";c.d(b,{T:()=>g});var d=c(469),e=c(72454);c(78666);var f=c(58671);function g({action:a}){let b=(0,f.C$)(a),c=b.icon;return(0,d.jsx)(e.vw,{icon:(0,d.jsx)(c,{}),className:(0,e.cn)("rounded-full border-transparent px-2.5 text-xs [&_svg]:size-3.5",b.className),children:b.label})}},28615:(a,b,c)=>{"use strict";c.d(b,{PWo:()=>aL,HUb:()=>cg,spO:()=>c7,H3X:()=>c8,tLs:()=>M,V0H:()=>cf,R4K:()=>dR,MhX:()=>c1,fhc:()=>cl,F$B:()=>cZ,hzO:()=>dO,xdw:()=>J,ap_:()=>H,UKt:()=>I,T2I:()=>cp,lgf:()=>cY,kqf:()=>cB,O2m:()=>c2,bkE:()=>cS,EL9:()=>cR,qEQ:()=>b6,DLF:()=>cP,hds:()=>cJ,dnP:()=>cW,Ly$:()=>c3,Vcr:()=>dQ,y6l:()=>b7});var d=c(85272);let e=d.Ikc({thresholdInputTokens:d.aig().int().positive(),input:d.aig().nonnegative().nullable(),output:d.aig().nonnegative().nullable()});function f(a,b,c){return Object.freeze({input:a,output:b,longContext:null,cacheWrite5m:1.25*a,cacheWrite1h:2*a,cacheRead:c,webSearch:.01})}function g(a,b,c={}){return Object.freeze({input:a,output:b,longContext:void 0===c.longContext?null:Object.freeze(c.longContext),cacheWrite5m:null,cacheWrite1h:null,cacheRead:c.cacheRead??null,webSearch:null})}d.Ikc({input:d.aig().nonnegative(),output:d.aig().nonnegative(),longContext:e.nullable(),cacheWrite5m:d.aig().nonnegative().nullable(),cacheWrite1h:d.aig().nonnegative().nullable(),cacheRead:d.aig().nonnegative().nullable(),webSearch:d.aig().nonnegative().nullable()});let h=Object.freeze({input:0,output:0,longContext:null,cacheWrite5m:0,cacheWrite1h:0,cacheRead:0,webSearch:0});d.k5n(["anthropic","openai","google","meta","mistral","deepseek","alibaba","xai","amazon","cohere","unknown"]),d.k5n(["anthropic","openai","google-ai","mistral","deepseek","xai","cohere","bedrock","vertex","azure","foundry","together","fireworks","groq","openrouter","ollama","local"]),d.k5n(["api","gateway","local"]);let i=new Map([["anthropic","api"],["openai","api"],["google-ai","api"],["mistral","api"],["deepseek","api"],["xai","api"],["cohere","api"],["bedrock","api"],["vertex","api"],["azure","api"],["foundry","api"],["together","gateway"],["fireworks","gateway"],["groq","gateway"],["openrouter","gateway"],["ollama","local"],["local","local"]]);function j(a){return i.get(a)??"api"}let k=new Map([["anthropic","anthropic"],["openai","openai"],["google","google-ai"],["mistral","mistral"],["deepseek","deepseek"],["xai","xai"],["cohere","cohere"]]),l=Object.freeze(["anthropic","amazon","meta","mistral","deepseek","qwen","cohere","ai21","writer","luma","stability"]),m=Object.freeze(["us","eu","apac","au","jp","global"]);class n{constructor(a,b={}){this.entries=[],this.vendor=a,this.defaults=b}model(a,b){var c,d;let e=b.family??this.defaults.family??{id:a,name:b.name},f=!1===b.firstParty?null:(c=this.vendor,k.get(c)??null),g=b.openWeights??this.defaults.openWeights??!1,i=b.region??this.defaults.region??null,l=b.retention??this.defaults.retention??"unknown",m=new Map;for(let a of(null!==f&&m.set(f,Object.freeze({platform:f,hosting:j(f),firstParty:!0,price:b.price??null,retention:l,region:i})),b.on??[])){let{platform:c,price:e,retention:f,region:g}="string"==typeof a?{platform:a}:a,n=(d=this.vendor,k.get(d)===c),o=j(c),p="local"===o;m.set(c,Object.freeze({platform:c,hosting:o,firstParty:n,price:e??(p?h:n?b.price??null:null),retention:f??(p?"on_infrastructure":n?l:"unknown"),region:void 0===g?n?i:null:g}))}let n=b.defaultHosting??this.defaults.defaultHosting??(null===f?"gateway":j(f));if(void 0!==b.price&&![...m.values()].some(a=>a.price===b.price))throw Error(`${a}: a first-party price was declared but no platform can carry it — vendor '${this.vendor}' has no first-party endpoint. Price the serving platform explicitly via the object form of \`on\`.`);let o={id:a,vendor:this.vendor,displayName:b.name,familyId:e.id,familyName:e.name,capability:b.capability??null,contextWindow:b.ctx??null,maxOutputTokens:b.maxOut??null,openWeights:g,aliases:Object.freeze([...b.aliases??[]]),training:this.defaults.training??null,platforms:m,defaultHosting:n,seen:b.seen??"managed"};return Object.freeze(o),Object.freeze(o.aliases),this.entries.push(o),o}models(){return this.entries}}function o(a,b={}){return new n(a,b)}RegExp(`^(?:${m.join("|")})\\.`,"u"),RegExp(`^(?:${l.join("|")})\\.`,"u"),RegExp(`^(?:${l.join("|")})/`,"iu");let p=o("anthropic",{family:{id:"claude",name:"Claude"},region:"us",retention:"zero_retention",training:{apiDefault:"no",consumerDefault:"no",consumerControl:"opt-in",source:"https://privacy.claude.com/en/articles/7996868-is-my-data-used-for-model-training"}}),q=["bedrock","vertex","foundry"];p.model("claude-fable-5-1",{name:"Claude Fable 5.1",ctx:1e6,maxOut:128e3,capability:"reasoning",price:f(10,50,.25),on:[...q]}),p.model("claude-fable-5",{name:"Claude Fable 5",capability:"reasoning",price:f(10,50,1),on:[...q]}),p.model("claude-opus-5",{name:"Claude Opus 5",ctx:1e6,maxOut:128e3,capability:"reasoning",price:f(5,25,.5),on:[...q]}),p.model("claude-opus-4-8",{name:"Claude Opus 4.8",capability:"reasoning",price:f(5,25,.5),on:[...q]}),p.model("claude-opus-4-7",{name:"Claude Opus 4.7",capability:"reasoning",price:f(5,25,.5),on:[...q]}),p.model("claude-opus-4-6",{name:"Claude Opus 4.6",capability:"reasoning",price:f(5,25,.5),on:[...q]}),p.model("claude-opus-4-5",{name:"Claude Opus 4.5",capability:"reasoning",price:f(5,25,.5),on:[...q]}),p.model("claude-opus-4-1",{name:"Claude Opus 4.1",capability:"reasoning",price:f(15,75,1.5),on:[...q]}),p.model("claude-sonnet-5",{name:"Claude Sonnet 5",ctx:1e6,maxOut:128e3,capability:"reasoning",price:f(2,10,.2),on:[...q]}),p.model("claude-sonnet-4-6",{name:"Claude Sonnet 4.6",capability:"reasoning",price:f(3,15,.3),on:[...q]}),p.model("claude-sonnet-4-5",{name:"Claude Sonnet 4.5",capability:"reasoning",price:f(3,15,.3),on:[...q]}),p.model("claude-haiku-4-5",{name:"Claude Haiku 4.5",ctx:2e5,maxOut:64e3,capability:null,price:f(1,5,.1),aliases:["claude-haiku-4-5-20251001"],on:[...q]}),p.model("claude-sonnet-3-7",{name:"Claude Sonnet 3.7",on:[...q]});let r={thresholdInputTokens:272e3,input:null,output:null},s=o("openai",{family:{id:"gpt",name:"GPT"},region:"us",retention:"configurable",training:{apiDefault:"no",consumerDefault:"yes",consumerControl:"opt-out",source:"https://developers.openai.com/api/docs/guides/your-data"}}),t=["azure","foundry"];s.model("gpt-5.6-sol",{name:"GPT-5.6 Sol",ctx:105e4,maxOut:128e3,capability:"reasoning",price:g(4,20,{cacheRead:.4,longContext:r}),on:[...t]}),s.model("gpt-5.6-terra",{name:"GPT-5.6 Terra",ctx:105e4,maxOut:128e3,capability:"reasoning",price:g(2,12,{cacheRead:.2,longContext:r}),on:[...t]}),s.model("gpt-5.6-luna",{name:"GPT-5.6 Luna",ctx:105e4,maxOut:128e3,capability:null,price:g(.2,1.2,{cacheRead:.02,longContext:r}),on:[...t]}),s.model("gpt-5.5",{name:"GPT-5.5",ctx:105e4,maxOut:128e3,capability:"reasoning",price:g(5,30,{cacheRead:.5,longContext:r}),on:[...t]}),s.model("gpt-5.4",{name:"GPT-5.4",ctx:105e4,maxOut:128e3,capability:"reasoning",price:g(2.5,15,{cacheRead:.25,longContext:r}),on:[...t]}),s.model("gpt-5.4-mini",{name:"GPT-5.4 mini",ctx:4e5,maxOut:128e3,capability:null,price:g(.75,4.5,{cacheRead:.075}),on:[...t]}),s.model("gpt-5.4-nano",{name:"GPT-5.4 nano",ctx:4e5,maxOut:128e3,capability:null,price:g(.2,1.25,{cacheRead:.02}),on:[...t]}),s.model("gpt-5.3-codex",{name:"GPT-5.3 Codex",ctx:4e5,maxOut:128e3,capability:"code",price:g(1.75,14,{cacheRead:.175}),on:[...t]}),s.model("gpt-5.1",{name:"GPT-5.1",ctx:4e5,maxOut:128e3,capability:"reasoning",price:g(1.25,10,{cacheRead:.125}),on:[...t]}),s.model("gpt-5",{name:"GPT-5",ctx:4e5,maxOut:128e3,capability:"reasoning",price:g(1.25,10,{cacheRead:.125}),on:[...t]}),s.model("gpt-5-mini",{name:"GPT-5 mini",ctx:4e5,capability:null,price:g(.25,2,{cacheRead:.025}),on:[...t]}),s.model("gpt-5-nano",{name:"GPT-5 nano",ctx:4e5,maxOut:128e3,capability:null,price:g(.05,.4,{cacheRead:.005}),on:[...t]}),s.model("gpt-4.1",{name:"GPT-4.1",price:g(2,8,{cacheRead:.5}),on:[...t]}),s.model("gpt-4o",{name:"GPT-4o",price:g(2.5,10,{cacheRead:1.25}),on:[...t]}),s.model("gpt-4o-mini",{name:"GPT-4o mini",price:g(.15,.6,{cacheRead:.075}),on:[...t]}),s.model("gpt-4-turbo",{name:"GPT-4 Turbo",seen:"discovered",price:g(10,30),aliases:["gpt-4-turbo-2024-04-09"],on:[...t]}),s.model("o3",{name:"o3",capability:"reasoning",price:g(2,8,{cacheRead:.5}),on:[...t]}),s.model("gpt-oss-120b",{name:"GPT-OSS 120B",openWeights:!0,firstParty:!1,retention:"unknown",defaultHosting:"local",on:["together","fireworks","groq","openrouter","bedrock","ollama","local"]}),s.model("gpt-oss-20b",{name:"GPT-OSS 20B",openWeights:!0,firstParty:!1,retention:"unknown",defaultHosting:"local",on:["together","fireworks","groq","openrouter","ollama","local"]});let u=o("google",{family:{id:"gemini",name:"Gemini"},region:"us",retention:"configurable",training:{apiDefault:"no",consumerDefault:"yes",consumerControl:"none",source:"https://ai.google.dev/gemini-api/terms"}});u.model("gemini-3.7-flash",{name:"Gemini 3.7 Flash",capability:null,price:g(.75,3.75),on:["vertex"]}),u.model("gemini-3.6-flash",{name:"Gemini 3.6 Flash",capability:null,price:g(.75,3.75),on:["vertex"]}),u.model("gemini-3.5-flash",{name:"Gemini 3.5 Flash",capability:null,price:g(1.5,9),on:["vertex"]}),u.model("gemini-3.5-flash-lite",{name:"Gemini 3.5 Flash Lite",capability:null,price:g(.3,2.5),on:["vertex"]}),u.model("gemini-3.1-pro-preview",{name:"Gemini 3.1 Pro Preview",capability:"reasoning",price:g(2,12,{longContext:{thresholdInputTokens:2e5,input:4,output:18}}),on:["vertex"]}),u.model("gemini-2.5-pro",{name:"Gemini 2.5 Pro",capability:"reasoning",price:g(1.25,10,{longContext:{thresholdInputTokens:2e5,input:2.5,output:15}}),on:["vertex"]}),u.model("gemini-2.5-flash",{name:"Gemini 2.5 Flash",capability:null,price:g(.3,2.5),on:["vertex"]}),u.model("gemini-2.5-flash-lite",{name:"Gemini 2.5 Flash Lite",capability:null,price:g(.1,.4),on:["vertex"]}),u.model("gemini-1-5-pro",{name:"Gemini 1.5 Pro",on:["vertex"]}),u.model("gemini-1-5-flash",{name:"Gemini 1.5 Flash",on:["vertex"]});let v=o("xai",{family:{id:"grok",name:"Grok"},region:"us",retention:"configurable",training:{apiDefault:"no",consumerDefault:"unknown",consumerControl:"unknown",source:"https://docs.x.ai/developers/faq/security"}});v.model("grok-4.6",{name:"Grok 4.6",ctx:5e5,capability:"reasoning",price:g(2,6,{cacheRead:.5,longContext:{thresholdInputTokens:2e5,input:4,output:12}}),on:["bedrock"]}),v.model("grok-4.5",{name:"Grok 4.5",ctx:5e5,capability:"reasoning",price:g(2,6,{cacheRead:.3,longContext:{thresholdInputTokens:2e5,input:4,output:12}})}),v.model("grok-4.3",{name:"Grok 4.3",ctx:1e6,capability:"reasoning",price:g(1.25,2.5,{cacheRead:.2,longContext:{thresholdInputTokens:2e5,input:2.5,output:5}}),on:["bedrock"]}),v.model("grok-build-0.1",{name:"Grok Build 0.1",ctx:256e3,capability:"code",price:g(1,2,{cacheRead:.2,longContext:{thresholdInputTokens:2e5,input:2,output:4}})});let w=o("deepseek",{family:{id:"deepseek",name:"DeepSeek"},region:"cn",retention:"configurable",training:{apiDefault:"yes",consumerDefault:"yes",consumerControl:"opt-out",source:"https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html"}});w.model("deepseek-v4-flash",{name:"DeepSeek V4 Flash",ctx:1e6,capability:null,price:g(.44,1.32,{cacheRead:.014}),on:["bedrock","together","fireworks","openrouter","ollama","local"]}),w.model("deepseek-v4-pro",{name:"DeepSeek V4 Pro",ctx:1e6,capability:"reasoning",price:g(1.32,3.96,{cacheRead:.044}),on:["bedrock","together","fireworks","openrouter"]}),w.model("deepseek-r1",{name:"DeepSeek R1",seen:"discovered",capability:"reasoning",openWeights:!0,defaultHosting:"local",on:["bedrock","together","fireworks","openrouter","ollama","local"]});let x=o("cohere",{family:{id:"command",name:"Command"},region:"us",retention:"configurable",training:{apiDefault:"unknown",consumerDefault:"unknown",consumerControl:"opt-out",source:"https://cohere.com/security"}});x.model("command-a-plus-05-2026",{name:"Command A+",ctx:128e3,maxOut:64e3,on:["bedrock"]}),x.model("command-a-03-2025",{name:"Command A",ctx:256e3,maxOut:8e3,on:["bedrock"]}),x.model("command-a-reasoning-08-2025",{name:"Command A Reasoning",ctx:256e3,maxOut:32e3,capability:"reasoning"}),x.model("command-r-plus-08-2024",{name:"Command R+",ctx:128e3,maxOut:4e3,price:g(2.5,10),aliases:["command-r-plus"],on:["bedrock"]});let y=o("meta",{family:{id:"llama",name:"Llama"},openWeights:!0,retention:"unknown",defaultHosting:"local"}),z=["bedrock","together","fireworks","groq","openrouter","ollama","local"];y.model("llama-3-3-70b",{name:"Llama 3.3 70B",ctx:128e3,on:[...z]}),y.model("llama-3-1-70b",{name:"Llama 3.1 70B",ctx:128e3,on:[...z]}),y.model("llama-3-1-8b",{name:"Llama 3.1 8B",ctx:128e3,on:[...z]});let A=o("alibaba",{family:{id:"qwen",name:"Qwen"},openWeights:!0,retention:"unknown",defaultHosting:"local"});A.model("qwen-3-235b",{name:"Qwen 3 235B",on:[...z]}),A.model("qwen-3-coder-480b",{name:"Qwen 3 Coder 480B",capability:"code",on:[...z]});let B=o("amazon",{family:{id:"nova",name:"Nova"},retention:"configurable"});B.model("nova-2-lite",{name:"Nova 2 Lite",ctx:1e6,maxOut:64e3,aliases:["nova-2-lite-v1:0"],on:["bedrock"]});let C=o("mistral",{family:{id:"mistral",name:"Mistral"},openWeights:!0,retention:"unknown",defaultHosting:"local"});C.model("mixtral-8x7b",{name:"Mixtral 8x7B",seen:"discovered",on:[...z]}),function(a){let b=new Map;for(let c of a)b.set(c.id,c);for(let c of a)for(let a of c.aliases)b.has(a)||b.set(a,c);Object.freeze([...a])}(Object.freeze([...p.models(),...s.models(),...u.models(),...v.models(),...w.models(),...x.models(),...C.models(),...y.models(),...A.models(),...B.models()])),d.k5n(["reasoning","code"]),d.k5n(["zero_retention","no_storage","configurable","on_device","on_infrastructure","unknown"]),d.k5n(["managed","discovered"]);let D=d.k5n(["yes","no","unknown"]),E=d.k5n(["opt-in","opt-out","none","unknown"]);d.Ikc({apiDefault:D,consumerDefault:D,consumerControl:E,source:d.YjP().nullable()});let F=d.k5n(["api","consumer","enterprise","unknown"]);d.Ikc({tier:F,controlExercised:d.zMY().nullable()}),Object.freeze({tier:"unknown",controlExercised:null}),Object.freeze(["gateway","unknown","cli","api","chatgpt","claude-ai"]);let G=new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1});function H(a){return G.format(a)}function I(a){return a>0&&a<.1?`$${a.toFixed(4)}`:`$${a.toFixed(2)}`}function J(a,b){return b?`≥ ${I(a)}`:I(a)}var K=c(96929),L=c(35291);let M={ClaudeCode:"claudecode",Cursor:"cursor",Copilot:"copilot",Codex:"codex",Antigravity:"antigravity",Windsurf:"windsurf",ClaudeDesktop:"claudedesktop",ChatGpt:"chatgpt",ClaudeAi:"claudeai",Api:"api",AiTcSdk:"ai-tc-sdk"},N=d.k5n(M).meta({id:"Harness"}),O={ClaudeCode:"claude-code",ClaudeDesktop:"claude-desktop",Cursor:"cursor",ChatGpt:"chatgpt",ClaudeAi:"claude-ai",Copilot:"github-copilot",Codex:"codex",Antigravity:"antigravity",Cli:"cli",Unknown:"unknown",AiTcSdk:"ai-tc-sdk"},P=d.k5n(O).meta({id:"SourceTool"});P.extract(["ChatGpt","ClaudeAi"]),O.ClaudeCode,M.ClaudeCode,O.ClaudeDesktop,M.ClaudeDesktop,O.Copilot,M.Copilot,O.Cursor,M.Cursor,O.ChatGpt,M.ChatGpt,O.Codex,M.Codex,O.Antigravity,M.Antigravity,O.ClaudeAi,M.ClaudeAi,O.AiTcSdk,M.AiTcSdk;let Q=d.k5n(["pii","financial","secret","phi","code_context","code_flaw","custom","config"]).meta({id:"DetectionCategory"}),R=d.k5n(["critical","high","medium","low"]).meta({id:"Severity"}),S=d.k5n(["warn","redact","block","allow","log"]).meta({id:"ActionTaken"}),T=S.options,U=d.Ikc({start:d.aig().int().nonnegative(),end:d.aig().int().nonnegative()}).meta({id:"Span"});d.Ikc({id:d.OsD(),eventId:d.OsD(),ruleId:d.YjP(),category:Q,severity:R,span:U,maskedMatch:d.YjP(),actionTaken:S,confidence:d.aig().min(0).max(1)}).meta({id:"Finding"}).meta({id:"DetectedFinding"});let V=d.k5n(["blocked","redacted","warned","allowed","quarantined","monitored"]).meta({id:"FindingAction"}),W=N.extract(["ClaudeCode","ClaudeDesktop","Cursor","Copilot","ChatGpt","ClaudeAi","Codex","Antigravity","Api","AiTcSdk"]).meta({id:"FindingProvider"}),X=d.k5n(["secret","pii","source_code","code_flaw","external_share","mcp_server","customer_data","financial","phi","custom"]).meta({id:"FindingCategory"});d.k5n(["in-flight","at-rest"]).meta({id:"FindingOrigin"});let Y=d.k5n(["open","handled","resolved","dismissed"]).meta({id:"FindingStatus"}),Z=d.k5n(["deployment_refused","payload_invalid","detached_undelivered"]).meta({id:"SyncFailureReason"}),$=d.k5n(["sent","queued","not_sent","never_offered","local_scan"]).meta({id:"FindingDeliveryState"}),_=d.Ikc({state:$,at:K.w$().optional(),reason:Z.optional()}).meta({id:"FindingDelivery"}),aa=d.k5n(["enforced-in-flight","fixed-at-source","exception","acknowledged","false-positive","redetected"]).meta({id:"ResolutionMethod"}),ab=d.Ikc({maskedValue:d.YjP(),contextPrefix:d.YjP()}).meta({id:"FindingMatch"}),ac=d.Ikc({id:d.YjP(),name:d.YjP().nullable()}).meta({id:"FindingDetectionRef"}),ad=d.Ikc({id:d.YjP(),name:d.YjP()}).meta({id:"FindingPolicyRef"}),ae=d.Ikc({id:d.YjP(),name:d.YjP()}).meta({id:"FindingUser"}),af=d.Ikc({id:d.YjP(),provider:W,repo:d.YjP(),file:d.YjP(),user:ae.optional(),toolName:d.YjP().optional(),action:V,detectedAt:K.w$(),confidence:d.aig().min(0).max(1),status:Y.optional(),eventId:d.YjP().optional(),sessionId:d.YjP().optional(),delivery:_.optional()}).meta({id:"FindingInstance"}),ag=d.Ikc({id:d.YjP(),category:X,subtype:d.YjP(),severity:R,match:ab,detection:ac,policy:ad,instanceCount:d.aig().int().nonnegative(),providers:d.YOg(W),aggregateAction:V.nullable(),latestDetectedAt:K.w$(),instances:d.YOg(af),status:Y.optional(),users:d.YOg(ae).optional()}).meta({id:"FindingGroup"});d.Ikc({findings:d.aig().int().nonnegative(),groups:d.aig().int().nonnegative(),bySeverity:d.Ikc({critical:d.aig().int().nonnegative(),high:d.aig().int().nonnegative(),medium:d.aig().int().nonnegative(),low:d.aig().int().nonnegative()})}).meta({id:"FindingStats"});let ah=d.Ikc({value:d.YjP(),count:d.aig().int().nonnegative()}).meta({id:"FindingFacetItem"}),ai=d.Ikc({severity:d.YOg(ah),subtype:d.YOg(ah),provider:d.YOg(ah),action:d.YOg(ah),status:d.YOg(ah),tool:d.YOg(ah).optional(),deployment:d.YOg(ah).optional()}).meta({id:"FindingFacets"}),aj=ag.omit({instances:!0,match:!0}).meta({id:"FindingTypeSummary"});d.Ikc({severity:d.YOg(R).optional(),subtype:d.YOg(d.YjP()).optional(),provider:d.YOg(W).optional(),action:d.YOg(V).optional(),status:d.YOg(Y).optional(),q:d.YjP().optional(),sessionId:d.YjP().optional(),from:K.w$().optional(),includeId:d.YjP().optional(),limit:L.ai().int().min(1).max(100).optional(),cursor:d.YjP().optional()}),d.Ikc({totals:d.Ikc({findings:d.aig().int().nonnegative(),types:d.aig().int().nonnegative()}),facets:ai,items:d.YOg(aj),nextCursor:d.YjP().nullable(),sessionFirings:d.g1P(d.YjP(),d.aig().int().nonnegative()).optional()}).meta({id:"ListFindingTypesResponse"}),d.Ikc({action:V.exclude(["quarantined"]),instanceId:d.YjP().optional()}).meta({id:"ApplyFindingActionRequest"}),ag.meta({id:"ApplyFindingActionResponse"}),d.Ikc({severity:d.YOg(R).optional(),subtype:d.YOg(d.YjP()).optional(),provider:d.YOg(W).optional(),action:d.YOg(V).optional(),q:d.YjP().optional(),format:d.k5n(["csv","json"]).optional()});let ak=af.extend({groupId:d.YjP(),category:X,subtype:d.YjP(),severity:R,match:ab,detection:ac,policy:ad}).meta({id:"FindingInstanceDetail"});d.Ikc({severity:d.YOg(R).optional(),subtype:d.YOg(d.YjP()).optional(),provider:d.YOg(W).optional(),action:d.YOg(V).optional(),status:d.YOg(Y).optional(),tool:d.YOg(d.YjP()).optional(),deployment:d.YOg($).optional(),repo:d.YjP().optional(),file:d.YjP().optional(),q:d.YjP().optional(),sessionId:d.YjP().optional(),from:K.w$().optional(),limit:L.ai().int().min(1).max(200).optional(),cursor:d.YjP().optional()}),d.Ikc({totals:d.Ikc({findings:d.aig().int().nonnegative()}),facets:ai,items:d.YOg(ak),nextCursor:d.YjP().nullable()}).meta({id:"ListFindingInstancesResponse"}),d.Ikc({items:d.YOg(ak),nextCursor:d.YjP().nullable()}).meta({id:"ListFindingInstancesPage"});let al=d.Ikc({id:d.YjP(),repo:d.YjP(),file:d.YjP(),instanceCount:d.aig().int().nonnegative(),maxSeverity:R,latestDetectedAt:K.w$(),status:Y.optional(),ruleIds:d.YOg(d.YjP())}).meta({id:"FindingLocationSummary"});d.Ikc({severity:d.YOg(R).optional(),subtype:d.YOg(d.YjP()).optional(),provider:d.YOg(W).optional(),action:d.YOg(V).optional(),status:d.YOg(Y).optional(),tool:d.YOg(d.YjP()).optional(),deployment:d.YOg($).optional(),q:d.YjP().optional(),sessionId:d.YjP().optional(),from:K.w$().optional(),includeId:d.YjP().optional(),limit:L.ai().int().min(1).max(100).optional(),cursor:d.YjP().optional()}),d.Ikc({totals:d.Ikc({findings:d.aig().int().nonnegative(),locations:d.aig().int().nonnegative()}),facets:ai,items:d.YOg(al),nextCursor:d.YjP().nullable()}).meta({id:"ListFindingLocationsResponse"});let am=d.k5n(["host","harness","user","skill","hook","mcp_server","config_file"]).meta({id:"InventoryObjectType"}),an=d.k5n(["session","run","tool_call","llm_call","source_lookup","prompt","response","code_change","tool_use","model_refusal","request_decision","config_scan","capture_status"]).meta({id:"AuditEventType"}),ao=d.g1P(d.YjP(),d.L5J());d.Ikc({host_name:d.YjP().optional(),os:d.YjP().optional(),os_version:d.YjP().optional(),arch:d.YjP().optional()}).catchall(d.L5J()),d.Ikc({harness_version:d.YjP().optional(),interface:d.YjP().optional()}).catchall(d.L5J()),d.Ikc({display_name:d.YjP().optional(),email:d.YjP().optional()}).catchall(d.L5J()),d.Ikc({source:d.YjP().optional(),version:d.YjP().optional(),description:d.YjP().optional(),updated_at:d.YjP().optional(),scope:d.YjP().optional(),plugin_name:d.YjP().optional()}).catchall(d.L5J()),d.Ikc({event:d.YjP().optional(),matcher:d.YjP().optional(),command:d.YjP().optional(),scope:d.YjP().optional(),plugin_name:d.YjP().optional(),timeout:d.aig().optional()}).catchall(d.L5J()),d.Ikc({scope:d.YjP().optional(),transport:d.YjP().optional(),command:d.YjP().optional(),url:d.YjP().optional(),env_keys:d.YOg(d.YjP()).optional(),plugin_name:d.YjP().optional(),marketplace:d.YjP().optional(),project:d.YjP().optional()}).catchall(d.L5J()),d.Ikc({kind:d.YjP().optional(),detail:d.YjP().optional(),scope:d.YjP().optional(),updated_at:d.YjP().optional(),entry_count:d.aig().optional()}).catchall(d.L5J());let ap=d.Ikc({model:d.YjP().optional(),provider:d.YjP().optional(),input_tokens:d.aig().int().nonnegative().optional(),output_tokens:d.aig().int().nonnegative().optional(),cache_creation_input_tokens:d.aig().int().nonnegative().optional(),cache_read_input_tokens:d.aig().int().nonnegative().optional(),ephemeral_1h_input_tokens:d.aig().int().nonnegative().optional(),ephemeral_5m_input_tokens:d.aig().int().nonnegative().optional(),web_search_requests:d.aig().int().nonnegative().optional(),web_fetch_requests:d.aig().int().nonnegative().optional(),service_tier:d.YjP().optional(),stop_reason:d.YjP().optional(),message_id:d.YjP().optional(),uuid:d.YjP().optional(),parent_uuid:d.YjP().optional(),run_key:d.YjP().optional()}).catchall(d.L5J());d.Ikc({sessionId:d.YjP().min(1),messageId:d.YjP().min(1),parentId:d.YjP().min(1),rootSessionId:d.YjP().min(1),startedAt:K.w$(),attributes:ap});let aq=d.Ikc({tool_name:d.YjP().optional(),tool_use_id:d.YjP().optional(),target:d.YjP().optional(),is_error:d.zMY().optional(),input_size:d.aig().int().nonnegative().optional(),output_size:d.aig().int().nonnegative().optional(),uuid:d.YjP().optional(),parent_uuid:d.YjP().optional(),run_key:d.YjP().optional()}).catchall(d.L5J());d.Ikc({source_tool:d.YjP().optional(),file_path:d.YjP().optional(),repo:d.YjP().optional(),tool_name:d.YjP().optional(),gitignored:d.zMY().optional(),whole_file:d.zMY().optional(),correlation_id:d.uRe().optional(),trace_id:d.YjP().regex(/^[0-9a-f]{32}$/).optional(),exception_ids:d.YOg(d.OsD()).optional(),message_id:d.YjP().optional(),conversation_id:d.YjP().optional(),inspection_ms:d.aig().int().nonnegative().optional(),redact_degraded_to:S.optional()}).catchall(d.L5J()),d.Ikc({source_tool:d.YjP().optional(),patched:d.zMY().optional(),live:d.zMY().optional(),blind:d.zMY().optional(),sends_seen_dom:d.aig().int().nonnegative().optional(),exchanges_seen_net:d.aig().int().nonnegative().optional(),parse_failures:d.aig().int().nonnegative().optional(),unparsed_bodies:d.aig().int().nonnegative().optional(),shape_misses:d.YOg(d.YjP()).optional(),conversation_endpoints:d.aig().int().nonnegative().optional(),closed:d.zMY().optional(),enforcement:d.YjP().optional()}).catchall(d.L5J());let ar=d.Ikc({ruleId:d.YjP().min(1),ruleName:d.YjP(),ruleVersion:d.YjP().min(1),category:Q,severity:R,span:U,maskedMatch:d.YjP(),actionTaken:S,confidence:d.aig().min(0).max(1)});d.Ikc({sessionId:d.YjP().min(1),toolUseId:d.YjP().min(1),parentId:d.YjP().min(1),rootSessionId:d.YjP().min(1),startedAt:K.w$(),attributes:aq,inspections:d.YOg(ar).default([])});let as=d.Ikc({objectType:am,identityKey:d.YjP().min(1),location:d.YjP().optional(),title:d.YjP().optional(),hostId:d.YjP().optional(),attributes:ao.default({})}).meta({id:"InventoryInput"}),at=d.Ikc({url:d.YjP().min(1),name:d.YjP().optional(),attributes:ao.default({})}).meta({id:"SourceProjectInput"}),au=d.Ikc({id:d.YjP().min(1),eventType:an,startedAt:K.w$(),endedAt:K.w$().optional(),parentId:d.YjP().optional(),rootSessionId:d.YjP().optional(),hostId:d.YjP().optional(),harnessId:d.YjP().optional(),sourceProjectId:d.YjP().optional(),severity:R.optional(),priority:d.YjP().optional(),content:d.YjP().optional(),contentHash:d.YjP().optional(),attributes:ao.optional()}).meta({id:"AuditEventInput"});d.Ikc({class:d.YjP().min(1),label:d.YjP().optional(),attributes:ao.optional()});let av=d.Ikc({ruleId:d.YjP().min(1),version:d.YjP().min(1),name:d.YjP(),category:Q,severity:R,definition:d.YjP()});d.Ikc({id:d.YjP().min(1),auditEventId:d.YjP().min(1),inspectionDefinitionId:d.YjP().min(1),classifiedDataId:d.YjP().optional(),span:U,maskedMatch:d.YjP(),actionTaken:S,confidence:d.aig().min(0).max(1),findingKey:d.YjP().optional(),firstDetectedAt:K.w$().optional()}),d.Ikc({host:as.optional(),harness:as.optional(),project:at.optional()}).meta({id:"InventoryContext"}),d.Ikc({hostId:d.YjP().optional(),harnessId:d.YjP().optional(),accountId:d.YjP().optional(),sourceProjectId:d.YjP().optional()}).meta({id:"ResolvedInventory"}),d.Ikc({hosts:d.YOg(d.YjP()),harnesses:d.YOg(d.YjP()),osVersions:d.YOg(d.YjP()),projects:d.YOg(d.YjP())}).meta({id:"InventoryFacets"});let aw=d.Ikc({sessionId:d.YjP(),model:d.YjP(),provider:d.YjP(),inputTokens:d.aig().int().nonnegative(),outputTokens:d.aig().int().nonnegative(),cacheCreation:d.aig().int().nonnegative(),cacheRead:d.aig().int().nonnegative(),totalTokens:d.aig().int().nonnegative(),estimatedCostUsd:d.aig().nullable()}).meta({id:"TokenRollup"});d.Ikc({sessionId:d.YjP(),rollups:d.YOg(aw),totalTokens:d.aig().int().nonnegative(),estimatedCostUsd:d.aig().nullable(),costIsPartial:d.zMY()});let ax=d.Ikc({provider:d.YjP(),model:d.YjP(),inputTokens:d.aig().int().nonnegative(),outputTokens:d.aig().int().nonnegative(),cacheTokens:d.aig().int().nonnegative(),totalTokens:d.aig().int().nonnegative(),estimatedCostUsd:d.aig().nullable()});d.Ikc({models:d.YOg(ax),sessionCount:d.aig().int().nonnegative(),totalTokens:d.aig().int().nonnegative(),estimatedCostUsd:d.aig(),costIsPartial:d.zMY()});let ay=d.k5n(["active","completed","interrupted","error"]),az=d.k5n(["session","prompt","response","tool","hook","detection","share","permission","commit","error","active"]),aA=d.k5n(["detections","shares","inventory"]),aB=d.Ikc({id:d.YjP(),occurredAt:K.w$(),kind:az,title:d.YjP(),detail:d.YjP(),tool:d.YjP().nullable(),severity:R.nullable(),link:aA.nullable(),targetId:d.YjP().nullable(),internal:d.zMY(),flagged:d.zMY(),bodyExpired:d.zMY().default(!1)}).meta({id:"ActivityAuditEvent"}),aC=d.Ikc({id:d.YjP(),harness:N,title:d.YjP(),project:d.YjP(),repo:d.YjP(),branches:d.YOg(d.YjP()),startedAt:K.w$(),endedAt:K.w$().nullable(),status:ay,turns:d.aig().int().nonnegative(),findings:d.aig().int().nonnegative(),shares:d.aig().int().nonnegative()}).meta({id:"ActivitySessionSummary"});aC.extend({host:d.YjP(),cwd:d.YjP(),models:d.YOg(d.YjP()),version:d.YjP(),tokens:aw,tools:d.g1P(d.YjP(),d.aig().int().nonnegative()),files:d.YOg(d.YjP()),commits:d.aig().int().nonnegative(),events:d.YOg(aB)}).meta({id:"ActivitySession"}),d.Ikc({tz:d.YjP().optional()});let aD=d.Ikc({sessionsToday:d.aig().int().nonnegative(),liveNow:d.aig().int().nonnegative(),toolCallsToday:d.aig().int().nonnegative(),findingsToday:d.aig().int().nonnegative(),egressToday:d.aig().int().nonnegative()}).meta({id:"GetActivityStatsResponse"});d.Ikc({q:d.YjP().optional(),harness:d.YOg(N).optional(),from:d.KCZ([K.p6(),K.w$()]).optional(),to:d.KCZ([K.p6(),K.w$()]).optional(),excludeEmpty:d.uEf().optional(),limit:L.ai().int().min(1).max(100).default(50),cursor:d.YjP().optional()});let aE=d.Ikc({items:d.YOg(aC),nextCursor:d.YjP().nullable(),emptyCount:d.aig().int().nonnegative()}).meta({id:"ListActivitySessionsResponse"});d.Ikc({limit:L.ai().int().min(1).max(500).default(100),cursor:d.YjP().optional(),order:d.k5n(["asc","desc"]).default("asc")}),d.Ikc({items:d.YOg(aB),nextCursor:d.YjP().nullable()}).meta({id:"ListSessionEventsResponse"}),d.Ikc({format:d.k5n(["ndjson","json"]).default("ndjson")}),d.Ikc({format:d.k5n(["csv","json"]).default("csv"),q:d.YjP().optional(),harness:d.YOg(N).optional(),from:d.KCZ([K.p6(),K.w$()]).optional(),to:d.KCZ([K.p6(),K.w$()]).optional()}),d.Ikc({stats:aD,sessions:aE}).meta({id:"ActivityOverviewResponse"});let aF=d.k5n(["user","project","local","plugin"]),aG=d.Ikc({name:d.YjP().min(1),source:d.YjP().min(1),scope:aF,pluginName:d.YjP().optional(),version:d.YjP().optional(),description:d.YjP().optional(),updatedAt:K.w$().optional(),location:d.YjP().optional()}),aH=d.Ikc({event:d.YjP().min(1),matcher:d.YjP().optional(),command:d.YjP().min(1),timeout:d.aig().optional(),scope:aF,pluginName:d.YjP().optional(),location:d.YjP().optional()}),aI=d.Ikc({name:d.YjP().min(1),scope:aF,pluginName:d.YjP().optional(),marketplace:d.YjP().optional(),project:d.YjP().optional(),transport:d.YjP().min(1),command:d.YjP().optional(),url:d.YjP().optional(),envKeys:d.YOg(d.YjP()).optional(),location:d.YjP().optional()}),aJ=d.Ikc({name:d.YjP().min(1),path:d.YjP().min(1),scope:aF,kind:d.YjP().min(1),detail:d.YjP().optional(),entryCount:d.aig().optional(),updatedAt:K.w$().optional()});d.Ikc({scannedAt:K.w$(),skills:d.YOg(aG),hooks:d.YOg(aH),mcpServers:d.YOg(aI),configFiles:d.YOg(aJ),errors:d.YOg(d.Ikc({source:d.YjP(),reason:d.YjP()}))});let aK=d.Ikc({ruleId:d.YjP().min(1),version:d.YjP().min(1),span:U,maskedMatch:d.YjP(),actionTaken:S,confidence:d.aig().min(0).max(1)});d.Ikc({items:d.YOg(as),scanEvent:au,definitions:d.YOg(av).optional(),findings:d.YOg(aK).optional()});let aL=d.k5n(["project","skill","mcp","hook","config"]).meta({id:"AssetType"}),aM=d.k5n(["open","approved","blocked"]).meta({id:"AccessLevel"}),aN=d.k5n(["source","public-dep","vendored","config","data","docs","generated"]).meta({id:"Origin"}),aO=d.k5n(["known-good","risky","unapproved"]).meta({id:"TrustLevel"}),aP=d.k5n(["update","stale","conflict","unknown","change","untracked","risk","findings"]).meta({id:"Flag"}),aQ=d.k5n(["public","private"]).meta({id:"Visibility"}),aR=d.k5n(["block","redact","warn"]).meta({id:"HarnessEventKind"}),aS=N.extract(["ClaudeCode","Cursor","Codex","Antigravity","Copilot"]).meta({id:"HarnessId"}),aT=d.Ikc({open:d.aig().int().nonnegative(),approved:d.aig().int().nonnegative(),blocked:d.aig().int().nonnegative(),total:d.aig().int().nonnegative()}).meta({id:"AccessCounts"}),aU=d.Ikc({id:d.YjP(),type:aL,name:d.YjP(),sub:d.YjP(),flags:d.YOg(aP),trust:aO.optional()}).meta({id:"AssetSummary"}),aV=d.Ikc({id:d.YjP(),name:d.YjP(),repo:d.YjP(),visibility:aQ,language:d.YjP(),policyDefault:aM,updatedAt:K.w$(),accessCounts:aT,findingsCount:d.aig().int().nonnegative()}).meta({id:"ProjectSummary"}),aW=d.Ikc({type:aL,assets:d.YOg(aU)}),aX=d.Ikc({id:aS,label:d.YjP(),kind:d.YjP(),version:d.YjP(),sessions:d.aig().int().nonnegative(),assetCount:d.aig().int().nonnegative(),flagCount:d.aig().int().nonnegative(),projects:d.YOg(aV),categories:d.YOg(aW)}).meta({id:"HarnessSummary"});d.Ikc({items:d.YOg(aX)}).meta({id:"ListHarnessesResponse"});let aY=d.Ikc({type:aL,total:d.aig().int().nonnegative(),trustRollup:d.Ikc({"known-good":d.aig().int().nonnegative(),risky:d.aig().int().nonnegative(),unapproved:d.aig().int().nonnegative()}).partial().strict().optional(),flagRollup:d.Ikc({update:d.aig().int().nonnegative(),stale:d.aig().int().nonnegative(),conflict:d.aig().int().nonnegative(),unknown:d.aig().int().nonnegative(),change:d.aig().int().nonnegative(),untracked:d.aig().int().nonnegative(),risk:d.aig().int().nonnegative(),findings:d.aig().int().nonnegative()}).partial().strict(),items:d.YOg(aU)}).meta({id:"AssetGroup"});d.Ikc({groups:d.YOg(aY)}).meta({id:"ListAssetsResponse"});let aZ=d.Ikc({name:d.YjP(),signature:d.YjP(),description:d.YjP(),write:d.zMY(),risk:d.YjP().nullable()}).meta({id:"McpTool"}),a$=d.Ikc({id:d.YjP(),title:d.YjP(),note:d.YjP()});aU.extend({description:d.YjP().nullable(),trust:aO.nullable(),meta:d.g1P(d.YjP(),d.L5J()),finding:a$.nullable(),tools:d.YOg(aZ).optional()}).meta({id:"AssetDetail"}),d.Ikc({items:d.YOg(aV)}).meta({id:"ListProjectsResponse"}),d.Ikc({attention:d.aig().int().nonnegative(),byType:d.Ikc({project:d.aig().int().nonnegative(),skill:d.aig().int().nonnegative(),mcp:d.aig().int().nonnegative(),hook:d.aig().int().nonnegative(),config:d.aig().int().nonnegative()}),harnesses:d.aig().int().nonnegative(),mcpTrust:d.Ikc({"known-good":d.aig().int().nonnegative(),risky:d.aig().int().nonnegative(),unapproved:d.aig().int().nonnegative()})}).meta({id:"InventoryStats"});let a_=d.Ikc({path:d.YjP(),name:d.YjP(),origin:aN,access:aM,isCustom:d.zMY(),findings:d.aig().int().nonnegative(),blockedAt:K.w$().nullable().optional(),note:d.YjP().nullable().optional()}).meta({id:"FileSummary"}),a0=d.Ikc({name:d.YjP(),path:d.YjP(),accessCounts:aT}).meta({id:"FolderSummary"});d.Ikc({project:d.Ikc({id:d.YjP(),repo:d.YjP(),visibility:aQ}),path:d.YjP(),folders:d.YOg(a0).optional(),files:d.YOg(a_)}).meta({id:"ProjectTreeResponse"}),a_.extend({project:d.Ikc({repo:d.YjP(),visibility:aQ,language:d.YjP(),policyDefault:aM,updatedAt:K.w$()}),findingsRefs:d.YOg(d.Ikc({id:d.YjP(),title:d.YjP()}))}).meta({id:"FileDetail"}),d.Ikc({path:d.YjP(),access:aM}).meta({id:"SetFileAccessBody"}),d.Ikc({file:a_,accessCounts:aT}).meta({id:"SetFileAccessResponse"}),d.Ikc({trust:aO}).meta({id:"SetMcpTrustBody"});let a1=d.Ikc({kind:aR,title:d.YjP(),detail:d.YjP(),occurredAt:K.w$(),findingId:d.YjP().nullable().optional()}).meta({id:"HarnessEventItem"});d.Ikc({counts:d.Ikc({block:d.aig().int().nonnegative(),redact:d.aig().int().nonnegative(),warn:d.aig().int().nonnegative()}),items:d.YOg(a1)}).meta({id:"HarnessEventsResponse"}),d.Ikc({jobId:d.YjP(),startedAt:K.w$()}).meta({id:"RescanResponse"}),d.Ikc({repo:d.YjP()}).meta({id:"ConnectProjectBody"}),d.Ikc({type:d.YOg(aL).optional(),q:d.YjP().optional()}),d.Ikc({path:d.YjP().optional(),q:d.YjP().optional(),filter:d.k5n(["blocked"]).optional()}),d.Ikc({path:d.YjP()}),d.Ikc({limit:L.ai().int().min(1).max(50).default(7)});let a2=d.k5n(["provider","internal","external","ip"]).meta({id:"DestinationKind"}),a3=d.k5n(["https","http","sftp","grpc","smtp","ws","wss"]).meta({id:"Transport"}),a4=d.k5n(["secrets","pii","customer","source","telemetry","logs","metrics","none"]).meta({id:"DataClass"}),a5=a4.options,a6=d.k5n(["recognized","internal","unverified","ip"]).meta({id:"ShareTrustLevel"}),a7=d.k5n(["allow","block"]).meta({id:"EgressDecision"}),a8=d.k5n(["allowed","blocked","review"]).meta({id:"EgressStatus"}),a9=d.k5n(["raw_ip","unverified_domain","plaintext_transport"]).meta({id:"ReviewReason"}),ba=d.k5n(["GET","POST","PUT","DELETE","SDK","REF"]).meta({id:"HttpMethod"}),bb=d.Ikc({needsReview:d.zMY(),reasons:d.YOg(a9)}).meta({id:"ReviewInfo"}),bc=d.Ikc({port:d.aig().int().nullable(),geo:d.YjP().nullable(),ptr:d.YjP().nullable()}).meta({id:"DestinationNetwork"}),bd=d.Ikc({id:d.YjP(),method:ba,transport:a3,url:d.YjP(),template:d.zMY(),dataClass:a4,lastSeen:K.w$(),callSiteCount:d.aig().int().nonnegative()}).meta({id:"EndpointSummary"}),be=d.Ikc({id:d.YjP(),project:d.YjP(),file:d.YjP(),line:d.aig().int().nonnegative(),snippet:d.YjP(),dynamic:d.zMY(),vendored:d.zMY(),projectId:d.YjP().nullable()}).meta({id:"CallSite"}),bf=bd.extend({sites:d.YOg(be)}).meta({id:"EndpointWithSites"}),bg=d.Ikc({id:d.YjP(),kind:a2,name:d.YjP(),host:d.YjP(),providerId:d.YjP().nullable(),category:d.YjP(),trust:a6,status:a8,isCustom:d.zMY(),lastSeen:K.w$(),endpointCount:d.aig().int().nonnegative(),callSiteCount:d.aig().int().nonnegative(),transports:d.YOg(a3),dataClasses:d.YOg(a4),review:bb,network:bc.nullable(),endpoints:d.YOg(bd)}).meta({id:"ShareDestinationSummary"});bg.omit({endpointCount:!0,callSiteCount:!0,endpoints:!0}).extend({note:d.YjP().nullable(),endpoints:d.YOg(bf)}).meta({id:"ShareDestinationDetail"});let bh=d.Ikc({id:d.YjP(),kind:a2,name:d.YjP(),host:d.YjP(),providerId:d.YjP().nullable(),trust:a6,status:a8,review:bb,topDataClass:a4,callSiteCount:d.aig().int().nonnegative(),lastSeen:K.w$()}).meta({id:"ReviewDestination"}),bi=d.Ikc({kind:a2,total:d.aig().int().nonnegative(),items:d.YOg(bg)}).meta({id:"ShareDestinationGroup"});d.Ikc({groups:d.YOg(bi)}).meta({id:"ListShareDestinationsResponse"}),d.Ikc({items:d.YOg(bh)}).meta({id:"NeedsReviewResponse"}),d.Ikc({destinations:d.aig().int().nonnegative(),endpoints:d.aig().int().nonnegative(),callSites:d.aig().int().nonnegative(),needsReview:d.aig().int().nonnegative(),insecure:d.aig().int().nonnegative(),byKind:d.Ikc({provider:d.aig().int().nonnegative(),internal:d.aig().int().nonnegative(),external:d.aig().int().nonnegative(),ip:d.aig().int().nonnegative()}),byTrust:d.Ikc({recognized:d.aig().int().nonnegative(),internal:d.aig().int().nonnegative(),unverified:d.aig().int().nonnegative(),ip:d.aig().int().nonnegative()})}).meta({id:"SharesStats"}),d.Ikc({decision:a7.nullable()}).meta({id:"SetEgressDecisionBody"}),d.Ikc({destination:bg}).meta({id:"SetEgressDecisionResponse"}),d.Ikc({q:d.YjP().optional(),kind:d.YOg(a2).optional(),groupBy:d.k5n(["destination"]).default("destination"),review:d.uEf().default(!1)}),d.Ikc({format:d.k5n(["csv","json"]).default("csv"),q:d.YjP().optional(),kind:d.YOg(a2).optional()});let bj=d.k5n(["npm","pypi","go","maven","rubygems","cargo","composer","nuget"]).meta({id:"EgressEcosystem"});d.Ikc({id:d.YjP(),name:d.YjP(),category:d.YjP(),hostSuffixes:d.YOg(d.YjP()).min(1),apiBase:d.YjP(),defaultDataClasses:d.YOg(a4).min(1),sdks:d.jgl(bj,d.YOg(d.YjP()))}).meta({id:"ProviderRegistryEntry"});let bk=d.Ikc({file:d.YjP(),line:d.aig().int().positive(),snippet:d.YjP(),dynamic:d.zMY(),vendored:d.zMY()}).meta({id:"EgressCallSiteHit"}),bl=d.Ikc({host:d.YjP(),kind:a2,name:d.YjP(),category:d.YjP(),providerId:d.YjP().nullable(),trust:a6,network:bc.nullable(),method:ba,transport:a3,url:d.YjP(),template:d.zMY(),dataClass:a4,site:bk}).meta({id:"ResolvedEgressHit"}),bm=d.gMt("mode",[d.Ikc({mode:d.euz("walk"),walkedPrefix:d.YjP()}),d.Ikc({mode:d.euz("ledger"),scannedFiles:d.YOg(d.YjP()),deletedFiles:d.YOg(d.YjP())})]).meta({id:"EgressReconcile"});d.Ikc({projectKey:d.YjP().min(1),project:d.YjP(),projectId:d.YjP().nullable(),reconcile:bm,hits:d.YOg(bl)}).meta({id:"RecordProjectEgressInput"}),d.Ikc({destinations:d.aig().int().nonnegative(),endpoints:d.aig().int().nonnegative(),callSites:d.aig().int().nonnegative(),truncated:d.zMY(),droppedFiles:d.YOg(d.YjP()).default([])}).meta({id:"EgressWriteSummary"}),d.Ikc({specVersion:d.euz(1),endpoint:d.YjP().min(1),apiKey:d.YjP().min(1),keyPrefix:d.YjP().min(1).max(16).optional(),mintedAt:K.w$().optional()});let bn=d.Ikc({packId:d.YjP().min(1),version:d.YjP().min(1),enabled:d.zMY(),updatedAt:d.YjP().nullable()}).meta({id:"StorePosturePack"}),bo=d.Ikc({total:d.aig().int().min(0),disabled:d.aig().int().min(0),byAction:d.Ikc({warn:d.aig().int().min(0),redact:d.aig().int().min(0),block:d.aig().int().min(0),allow:d.aig().int().min(0),log:d.aig().int().min(0)}).strict()}).meta({id:"StorePosturePolicyCounts"}),bp=d.Ikc({package:d.YjP().min(1).max(200),version:d.YjP().min(1).max(64),ossVersion:d.YjP().max(64).nullable(),policyBundleVersion:d.YjP().max(200).nullable(),policyFetchedAt:d.aig().int().min(0).max(0xe677d21fdbff).nullable(),installedVersion:d.YjP().max(64).nullable().optional(),buildSchemaVersion:d.aig().int().min(0).max(0x7fffffff).optional()}).meta({id:"StorePosturePlugin"});d.Ikc({deviceId:d.OsD(),hostname:d.YjP().min(1).max(253),capturedAt:d.aig().int().min(0).max(0xe677d21fdbff),storePresent:d.zMY(),schemaVersion:d.aig().int().min(0).max(0x7fffffff).nullable(),findingsTotal:d.aig().int().min(0).max(0x7fffffff),findingsFirstAt:d.aig().int().min(0).max(0xe677d21fdbff).nullable(),findingsLastAt:d.aig().int().min(0).max(0xe677d21fdbff).nullable(),packs:d.YOg(bn).max(500),policyCounts:bo,plugin:bp.optional()}).meta({id:"StorePostureSnapshot"});let bq="capture/",br=au.extend({inspections:d.YOg(ar).default([])}).refine(a=>a.inspections.every(a=>!a.ruleVersion.startsWith(bq)),{message:`inspections[].ruleVersion must not start with \`${bq}\` — that namespace is reserved for capture definitions the control plane mints itself`,path:["inspections"]}).meta({id:"RecordAuditEventRequest"});d.Ikc({events:d.YOg(br).min(1).max(50)}).meta({id:"RecordAuditEventBatch"});let bs=d.Ikc({host:d.YjP(),kind:a2,name:d.YjP(),category:d.YjP(),providerId:d.YjP().nullable().optional(),trust:a6,network:bc.nullable(),method:ba,transport:a3,url:d.YjP(),template:d.zMY(),dataClass:a4,site:d.Ikc({file:d.YjP(),line:d.aig().int().positive(),dynamic:d.zMY(),vendored:d.zMY()})}).meta({id:"EgressIngestHit"});d.Ikc({projectKey:d.YjP().regex(/^[0-9a-f]{64}$/,"projectKey must be a 64-character lowercase hex digest"),project:d.YjP(),reconcile:bm,hits:d.YOg(bs)}).meta({id:"EgressIngestRequest"}),d.Ikc({accepted:d.aig().int().nonnegative(),duplicates:d.aig().int().nonnegative()}),d.Ikc({accepted:d.aig().int().nonnegative()});let bt=/^[^\p{Cc}\p{Cf}]*$/u,bu=a=>d.YjP().max(a).regex(bt,"must not contain control characters");d.Ikc({tenantName:bu(200),userEmail:bu(320),role:bu(64),keyKind:bu(64),serverTime:bu(64)}),d.Ikc({error:d.Ikc({code:d.YjP().optional(),message:d.YjP().optional()}).optional()}),d.k5n(["unauthorized","forbidden","route-absent","invalid-request","rejected","unreachable"]).extract(["unauthorized","forbidden","unreachable"]),d.Ikc({deviceId:bu(128).min(1),hostname:bu(255).min(1),os:bu(64).min(1),cliVersion:bu(64).min(1),label:bu(200).optional()}).meta({id:"AttachDeviceRequest"}),d.Ikc({deviceCode:bu(128).min(1)}).meta({id:"AttachTokenRequest"}),d.Ikc({deviceCode:bu(128),userCode:bu(32),verificationUri:bu(512),verificationUriComplete:bu(512).optional(),expiresIn:d.aig().int().positive(),interval:d.aig().int().positive()});let bv=d.Ikc({status:d.euz("pending")}),bw=d.Ikc({status:d.euz("slow_down"),interval:d.aig().int().positive()}),bx=d.Ikc({status:d.euz("denied"),message:bu(500).optional()}),by=d.Ikc({status:d.euz("expired")}),bz=d.Ikc({status:d.euz("issued"),apiKey:d.YjP().min(1).max(512),endpoint:bu(512),tenantName:bu(200).optional(),userEmail:bu(320).optional()});d.KCZ([bz,bv,bw,bx,by,d.Ikc({status:bu(64)})]);let bA=d.k5n(["shares_rescan"]),bB=d.Ikc({id:bu(128).min(1),kind:bA,issuedAt:bu(64).min(1),expiresAt:bu(64).min(1)}).strict();d.Ikc({command:bB.nullable()});let bC=d.k5n(["scan_failed","no_projects","expired"]);d.gMt("outcome",[d.Ikc({outcome:d.euz("reported"),projectsScanned:d.aig().int().nonnegative()}).strict(),d.Ikc({outcome:d.euz("failed"),reason:bC,projectsScanned:d.aig().int().nonnegative()}).strict()]);let bD=d.YjP().regex(/^[a-z][a-z0-9-]*$/),bE=d.YjP().regex(/^[a-z][a-z0-9-]*$/),bF=d.YjP().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-.]+)?$/),bG=d.k5n(["labs","user","org"]),bH=d.k5n(["keyword","regex"]).meta({id:"MatcherType"});d.k5n(["safe","quarantined"]).meta({id:"RuleProbeVerdict"});let bI=d.rej({type:d.euz("keyword"),keywords:d.YOg(d.YjP().min(1)).min(1),caseSensitive:d.zMY().default(!1)});function bJ(a){return a.replace(/[gy]/g,"")}let bK=d.rej({type:d.euz("regex"),pattern:d.YjP().min(1).max(2e3),flags:d.YjP().default("gi"),captureGroup:d.aig().int().nonnegative().optional()}).refine(a=>(function(a,b){try{return new RegExp(a,b),!0}catch{return!1}})(a.pattern,a.flags),{message:"pattern/flags do not form a valid JavaScript regular expression",path:["pattern"]}).refine(a=>!function(a){return void 0===a||0===a}(a.captureGroup)||!function(a,b){try{let c=new RegExp(a,bJ(b));return c.exec("")?.[0].length===0}catch{return!1}}(a.pattern,a.flags),{message:'a whole-match regex that can match the empty string (e.g. "\\d*", "a?", "(?:)") can hang the matcher — scope the quantifier to a captureGroup, or require at least one character',path:["pattern"]}).superRefine((a,b)=>{if(void 0===a.captureGroup)return;let c=function(a,b){try{let c=RegExp(`${a}|`,bJ(b)).exec("");return c?c.length-1:void 0}catch{return}}(a.pattern,a.flags);void 0===c||a.captureGroup<=c||b.addIssue({code:"custom",path:["captureGroup"],message:`captureGroup ${String(a.captureGroup)} is out of range — the pattern declares ${String(c)} capture group(s), so valid values are 0-${String(c)}. An out-of-range group never matches, which would make the rule silently never fire.`})}),bL=d.gMt("type",[bI,bK]).meta({id:"Matcher"});bH.options;let bM=d.rej({extensions:d.YOg(d.YjP().regex(/^\.[A-Za-z0-9]+$/)).min(1)}).meta({id:"AppliesTo"}),bN=d.k5n(["entropy","luhn"]).meta({id:"PostValidatorName"}),bO=d.KCZ([bN,d.rej({name:bN,config:d.g1P(d.YjP(),d.L5J()).optional()})],{error:()=>`not a valid post-validator: use a bare name (${bN.options.map(a=>JSON.stringify(a)).join(" or ")}) or { "name": ..., "config": { ... } }. An unrecognized name would be a false-positive guard that never runs.`}).meta({id:"PostValidatorRef"}),bP=d.rej({categories:d.YOg(Q).min(1).optional(),ruleIds:d.YOg(d.YjP().min(1)).min(1).optional(),labels:d.YOg(d.YjP().min(1)).min(1).optional(),windowChars:d.aig().int().positive().default(160),confidenceBoost:d.aig().min(0).max(.3).optional()}).refine(a=>(a.categories?.length??0)+(a.ruleIds?.length??0)+(a.labels?.length??0)>0,{message:"requiresNearby needs at least one of categories, ruleIds, or labels"}).meta({id:"RequiresNearby"});d.rej({label:d.YjP(),text:d.YjP().max(5e4),shouldMatch:d.zMY(),filePath:d.YjP().optional(),expectedSpans:d.YOg(d.rej({start:d.aig(),end:d.aig()})).optional()}).meta({id:"RuleFixture"});let bQ=d.rej({specVersion:d.euz(1),id:d.YjP().regex(/^[a-z][a-z0-9-]*\/[a-z][a-z0-9-]*$/),name:d.YjP(),category:Q,severity:R,matcher:bL,appliesTo:bM.optional(),postValidators:d.YOg(bO).optional(),requiresNearby:bP.optional(),examples:d.YOg(d.YjP()).optional()}).meta({id:"Rule"}),bR=d.Ikc({name:d.YjP(),email:d.Rpp().optional(),url:d.OZ5().optional()}).meta({id:"Author"});d.Ikc({specVersion:d.euz(1),id:d.YjP(),name:d.YjP(),version:d.YjP(),rules:d.YOg(d.YjP()),description:d.YjP().optional(),author:bR.optional(),license:d.YjP().optional(),sourceUrl:d.OZ5().optional()}).meta({id:"PackManifest"});let bS=d.k5n(["library","custom"]).meta({id:"OriginEnum"}),bT=d.k5n(["all","library","custom","customized","updates"]),bU=d.k5n(["new","imported","update"]).meta({id:"LibraryStateEnum"}),bV=d.Ikc({all:d.aig().int().nonnegative(),library:d.aig().int().nonnegative(),custom:d.aig().int().nonnegative(),customized:d.aig().int().nonnegative(),updates:d.aig().int().nonnegative()}).meta({id:"DetectionCounts"}),bW=d.Ikc({id:d.YjP(),name:d.YjP(),version:bF,enabled:d.zMY(),origin:bS,publisher:bD.optional(),publisherKind:bG.optional(),ruleCount:d.aig().int().nonnegative(),namespace:bD,packId:bE,policyId:d.YjP().optional(),latestVersion:bF.optional()}).meta({id:"DetectionListItem"});d.Ikc({counts:bV,items:d.YOg(bW)}).meta({id:"ListDetectionsResponse"}),d.Ikc({filter:bT.optional().default("all"),q:d.YjP().optional()}),d.Ikc({detections:d.aig().int().nonnegative(),rules:d.aig().int().nonnegative(),active:d.aig().int().nonnegative(),findingsLast30d:d.aig().int().nonnegative()}).meta({id:"DetectionStats"});let bX=d.Ikc({id:d.YjP(),name:d.YjP(),category:Q,severity:R,matcher:bL,appliesTo:bM.optional(),postValidators:d.YOg(bO).optional(),requiresNearby:bP.optional(),examples:d.YOg(d.YjP()).optional()}).meta({id:"DetectionRule"}),bY=d.Ikc({available:d.zMY(),latestVersion:bF,latestRuleCount:d.aig().int().nonnegative().optional()}).nullable().meta({id:"DetectionUpdate"});d.Ikc({id:d.YjP(),name:d.YjP(),version:bF,enabled:d.zMY(),origin:bS,publisher:bD.optional(),publisherKind:bG.optional(),ruleCount:d.aig().int().nonnegative(),namespace:bD,packId:bE,description:d.YjP().optional(),editedAt:K.w$(),findingsLast30d:d.aig().int().nonnegative(),latestVersion:bF.nullable().optional(),update:bY,rules:d.YOg(bX),modified:d.zMY(),policyId:d.YjP().optional()}).meta({id:"DetectionDetail"});let bZ=d.Ikc({id:d.YjP(),name:d.YjP(),publisher:bD,publisherKind:bG.optional(),category:Q.optional(),version:bF,ruleCount:d.aig().int().nonnegative(),description:d.YjP().optional(),updatedAt:K.w$(),state:bU,importedAs:d.YjP().nullable()}).meta({id:"LibraryItem"});d.Ikc({categories:d.YOg(Q),items:d.YOg(bZ)}).meta({id:"ListLibraryResponse"}),d.Ikc({libraryId:d.YjP().refine(a=>/^[^/]+\/[^/]+$/.test(a),{message:"libraryId must be in namespace/packId format"})}).meta({id:"ImportDetectionRequest"});let b$=d.k5n(["prompt","response","code_change","tool_use"]).meta({id:"EventKind"});b$.options.map(a=>`'${a}'`).join(",");let b_=d.Ikc({sessionId:d.YjP().optional(),repo:d.YjP().optional(),filePath:d.YjP().optional(),toolName:d.YjP().optional(),gitignored:d.zMY().optional(),wholeFile:d.zMY().optional(),model:d.YjP().optional(),turnIndex:d.aig().int().nonnegative().optional(),correlationId:d.uRe().optional(),traceId:d.YjP().regex(/^[0-9a-f]{32}$/).optional(),exceptionIds:d.YOg(d.OsD()).optional(),messageId:d.YjP().min(1).optional(),conversationId:d.YjP().optional(),inspectionMs:d.aig().int().nonnegative().optional(),redactDegradedTo:S.optional()}).meta({id:"EventMetadata"}),b0=d.Ikc({id:d.OsD(),sourceTool:P,kind:b$,occurredAt:K.w$(),contentHash:d.YjP(),content:d.YjP(),metadata:b_.optional()}).meta({id:"Event"}).meta({id:"IngestEvent"});d.Ikc({events:d.YOg(b0).min(1).max(100),dedupe:d.euz("content-hash").optional()}).meta({id:"IngestBatch"});let b1=d.k5n(["once","temporary","permanent"]),b2=d.Ikc({repo:d.YjP().optional(),sourceTool:d.YjP().optional(),provider:d.YjP().optional()}).strict(),b3=d.k5n(["suppress","reveal_to_model"]),b4=d.Ikc({id:d.OsD(),ruleId:d.YjP(),category:Q,valueFingerprint:d.YjP().regex(/^[0-9a-f]{64}$/),keyVersion:d.aig().int().positive(),maskedValue:d.YjP(),capability:b3.default("suppress"),scope:b1,expiresAt:K.w$().nullable(),maxUses:d.aig().int().positive().nullable(),useCount:d.aig().int().nonnegative(),lastUsedAt:K.w$().nullable(),justification:d.YjP().min(1),conditions:b2.nullable(),createdBy:d.YjP(),createdVia:d.k5n(["cli-approve","cli-add","web-approve","web-add","api","setup-triage"]),createdAt:K.w$(),updatedAt:K.w$(),revokedAt:K.w$().nullable(),revokedBy:d.YjP().nullable(),revokeReason:d.YjP().nullable()}),b5=b4.pick({id:!0,ruleId:!0,valueFingerprint:!0,keyVersion:!0,capability:!0,expiresAt:!0,maxUses:!0,useCount:!0,conditions:!0});function b6(a,b){return"present"===b.status&&b.version===a}function b7(a){if(a<=0)return"Recently blocked detections are invalidated too: the ledger outlives a rotation, so its rows stay listed as a record of what was blocked but stop being approvable. Trigger the detection again to approve it under the new key.";let b=`from the last ${String(24)} hours`,c=1===a?`1 recently blocked detection ${b} is still approvable; after rotating, none are`:`${String(a)} recently blocked detections ${b} are still approvable; after rotating, none are`;return`${c}. They stay listed as a record of what was blocked — trigger the detection again to approve under the new key.`}b4.omit({valueFingerprint:!0});let b8=d.YjP().optional();d.Ikc({reference:d.YjP(),scope:d.YjP(),reason:d.YjP(),confirmation:b8}),d.Ikc({ruleId:d.YjP(),value:d.YjP(),scope:d.YjP(),reason:d.YjP(),confirmation:b8}),d.Ikc({pointer:d.YjP(),scope:d.YjP(),justification:d.YjP(),confirmation:b8}),d.Ikc({id:d.YjP(),reason:d.YjP()}),d.Ikc({confirmation:d.YjP()}),Z.options,new WeakMap,new WeakMap,Object.fromEntries(R.options.map((a,b)=>[a,b]));let b9=d.Ikc({id:d.OsD(),namespace:bD,packId:bE,version:bF,name:d.YjP(),enabled:d.zMY().default(!0),policyId:d.YjP().optional()}).meta({id:"InstalledPack"});d.Ikc({namespace:bD,packId:bE,version:bF}).meta({id:"InstallPackRequest"}),d.Ikc({items:d.YOg(b9)}).meta({id:"ListInstalledPacksResponse"}),d.Ikc({enabled:d.zMY().optional(),policyId:d.YjP().nullable().optional()}).refine(a=>Object.keys(a).some(b=>void 0!==a[b]),{message:"At least one field must be provided"}).meta({id:"PatchInstalledPackRequest"});let ca=d.k5n(["global","repo","user"]).meta({id:"PolicyScope"}),cb=d.KCZ([d.Ikc({ruleId:d.YjP()}),d.Ikc({category:Q})]).meta({id:"PolicyTarget"}),cc=d.k5n(["builtin","custom"]).meta({id:"PolicyKind"}),cd=d.k5n(["builtin","authored"]).meta({id:"PolicyProvenance"}),ce=d.Ikc({id:d.OsD(),scope:ca,target:cb,action:S,enabled:d.zMY().default(!0),customKeywords:d.YOg(d.YjP()).optional(),name:d.YjP().optional(),provenance:cd.optional()}).meta({id:"Policy"}),cf=["monitor","warn","redact","vault","block"],cg=d.k5n(cf).meta({id:"BuiltinPolicyId"}),ch=cg.extract(["monitor","warn","block"]).meta({id:"RedactFallback"});[...Object.keys(d.Ikc({version:d.YjP(),policies:d.YOg(ce),rules:d.YOg(bQ).optional(),rulesComplete:d.zMY().optional(),exceptions:d.YOg(b5).optional(),reversibleRuleIds:d.YOg(d.YjP()).optional(),ruleVersions:d.g1P(d.YjP(),d.YjP()).optional(),prohibitedModels:d.YOg(d.YjP()).optional(),redactFallback:ch.optional(),customKeywords:d.YOg(d.YjP()),fetchedAt:K.w$()}).meta({id:"PolicyBundle"}).shape),...Object.keys(ce.shape).map(a=>`policies.${a}`),...cb.options.flatMap(a=>"shape"in a?Object.keys(a.shape):[]).map(a=>`policies.target.${a}`),...Object.keys(b5.shape).map(a=>`exceptions.${a}`)].sort().join(",");let ci=["config"];Q.options.filter(a=>!ci.includes(a));let cj={secret:"critical",financial:"critical",code_flaw:"critical",pii:"high",phi:"high",custom:"high",code_context:"low",config:"low"},ck={monitor:{name:"Monitor",action:"log",reversible:!1,description:"Log every match for audit. The request is allowed through untouched."},warn:{name:"Warn",action:"warn",reversible:!1,description:"Allow the request, but warn the user inline before it is sent."},redact:{name:"Redact",action:"redact",reversible:!1,description:"Strip the matched value from the request and destroy it, then continue. What was removed cannot be recovered."},vault:{name:"Redact & Vault",action:"redact",reversible:!0,description:"Strip the matched value from the request and keep an encrypted, recoverable copy in the local vault, leaving a pointer in its place. Needs the vault consent granted under Settings; without it this behaves as Redact."},block:{name:"Block",action:"block",reversible:!1,description:"Refuse the request entirely whenever any rule in this detection matches."}};function cl(a){return ck[a].action}let cm=[...new Set(cf.map(cl))],cn=[...T.filter(a=>!cm.includes(a)),...cm];function co(a){return cn.indexOf(a)}function cp(a,b){return co(a)>=co(b)}d.Ikc({floor:cg,locked:d.zMY()}).describe("PackPolicyFloor");let cq=cf.filter(a=>!ck[a].reversible);cf.filter(a=>ck[a].reversible);let cr=d.k5n(cq).meta({id:"CategoryPolicyId"});Object.fromEntries(Q.options.map(a=>[a,cl(function(a){if(ci.includes(a))return"monitor";let b=cj[a];return"critical"===b||"high"===b?"warn":"monitor"}(a))])),Object.fromEntries(cf.map(a=>[a,{id:a,...ck[a]}]));let cs=d.Ikc({id:d.YjP(),name:d.YjP(),ruleCount:d.aig().int().nonnegative(),enabled:d.zMY()}).meta({id:"UsedByItem"}),ct=d.Ikc({id:d.YjP(),kind:cc,name:d.YjP(),enabled:d.zMY(),usedByCount:d.aig().int().nonnegative()}).meta({id:"PolicyListItem"});d.Ikc({items:d.YOg(ct)}).meta({id:"ListPoliciesResponse"}),d.Ikc({specVersion:d.euz(1),id:d.YjP(),kind:cc,name:d.YjP(),enabled:d.zMY(),description:d.YjP(),usedBy:d.YOg(cs)}).meta({id:"PolicyDetail"}),d.Ikc({policies:d.aig().int().nonnegative(),builtin:d.aig().int().nonnegative(),custom:d.aig().int().nonnegative(),detectionsGoverned:d.aig().int().nonnegative()}).meta({id:"PolicyStatsResponse"});let cu=Q.options.join("|"),cv=RegExp(`\\[\\[aka:(?:${cu}):[A-Z2-7]{2,7}\\.[A-Z2-7]{26}\\.[A-Z2-7]{16}\\]\\]`),cw=RegExp(`^${cv.source}$`);d.YjP().regex(cw),d.Ikc({category:Q,keyVersion:d.aig().int().positive(),pointerId:d.YjP(),tag:d.YjP()}),d.Ikc({pointerId:d.YjP(),valueFingerprint:d.YjP().regex(/^[0-9a-f]{64}$/),valueIdentityFingerprint:d.YjP().regex(/^[0-9a-f]{64}$/),fingerprintKeyVersion:d.aig().int().positive(),keyVersion:d.aig().int().positive(),category:Q,ruleId:d.YjP(),maskedMatch:d.YjP(),provider:d.YjP().optional(),ciphertext:d.YjP(),nonce:d.YjP(),authTag:d.YjP(),occurrenceCount:d.aig().int().nonnegative(),userAuthorized:d.zMY(),firstSeen:d.YjP(),lastSeen:d.YjP()}),d.Ikc({category:Q,provider:d.YjP().optional(),maskedMatch:d.YjP(),occurrences:d.aig().int().nonnegative(),firstSeen:d.YjP(),lastSeen:d.YjP()}),d.Ikc({ruleId:d.YjP(),valueFingerprint:d.YjP().regex(/^[0-9a-f]{64}$/),fingerprintKeyVersion:d.aig().int().positive()});let cx=d.k5n(["human","model"]),cy=d.k5n(["display","explicit-reveal","view-render","model-input","remediation","purge"]),cz=d.k5n(["revealed","refused","unavailable"]),cA=["display","view-render"];function cB(a){return cA.includes(a)}let cC=d.Ikc({id:d.OsD(),pointerId:d.YjP(),at:d.YjP(),target:cx,reason:cy,outcome:cz,grantId:d.YjP().optional(),pointerCount:d.aig().int().positive().default(1)}),cD=d.k5n(["prompt","tool-input","tool-output","file","transcript"]),cE=d.Ikc({location:d.YjP(),kind:cD,firstSeen:d.YjP(),lastSeen:d.YjP()}),cF=d.Ikc({pointerId:d.YjP(),category:Q,provider:d.YjP().optional(),maskedMatch:d.YjP(),occurrences:d.aig().int().nonnegative(),firstSeen:d.YjP(),lastSeen:d.YjP(),revealGrantId:d.YjP().nullable(),sightings:d.YOg(cE)});d.Ikc({limit:L.ai().int().min(1).max(200).optional(),cursor:d.YjP().optional()}),d.Ikc({totals:d.Ikc({values:d.aig().int().nonnegative()}),items:d.YOg(cF),nextCursor:d.YjP().nullable()}),d.Ikc({limit:L.ai().int().min(1).max(200).optional(),cursor:d.YjP().optional()}),d.Ikc({totals:d.Ikc({reused:d.aig().int().nonnegative()}),items:d.YOg(cF),nextCursor:d.YjP().nullable()}),d.Ikc({includeBatched:d.zMY().optional(),limit:L.ai().int().min(1).max(200).optional(),cursor:d.YjP().optional()}),d.Ikc({items:d.YOg(cC),nextCursor:d.YjP().nullable(),hiddenBatched:d.aig().int().nonnegative()});let cG=d.YjP(),cH=d.k5n(["masked","full","off"]),cI=d.Ikc({acknowledgedAt:K.w$(),version:d.aig().int().positive()});function cJ(a){return a?.version===1}let cK=d.k5n(["standalone","attached"]),cL=d.Ikc({endpoint:d.YjP().min(1),label:d.YjP().min(1).optional(),attachedAt:K.w$()}).meta({id:"ControlPlaneConnection"}),cM=d.k5n(["redact","warn"]),cN=d.k5n(["full","session-only"]),cO=d.Ikc({acknowledgedAt:K.w$(),payloadVersion:d.aig().int().positive()});function cP(a){return a?.payloadVersion===1}let cQ=d.Ikc({acknowledgedAt:K.w$(),payloadVersion:d.aig().int().positive(),endpoint:d.YjP()});function cR(a,b){return void 0!==a&&void 0!==b&&3===a.payloadVersion&&a.endpoint===b}function cS(a,b){return void 0!==a&&void 0!==b&&a.endpoint===b&&3!==a.payloadVersion}let cT=d.Ikc({acknowledgedAt:K.w$(),version:d.aig().int().positive()}),cU=d.k5n(["with-findings","always","never"]),cV=d.Ikc({responses:cU.default("with-findings"),account:d.zMY().default(!1),consent:cT.optional()});function cW(a){return a?.version===1}let cX=d.Ikc({enabled:d.zMY().default(!1),retainDays:d.aig().int().min(1).max(3650).default(30)}).meta({id:"BodyRetention"});function cY(a){return"attached"===a.runMode&&void 0!==a.controlPlane}function cZ(a){return a.label??a.endpoint}d.Ikc({specVersion:d.aig().int().positive().default(8),runMode:cK.default("standalone"),controlPlane:cL.optional(),policy:cM.default("redact"),historicalAccess:cN.default("session-only"),dataSharesInPlace:d.zMY().default(!0),vaultConsent:cI.optional(),vaultKeyCustody:cG.default("file"),vaultInlineReveal:cH.default("masked"),redactFallback:ch.default("warn"),onboardedAt:K.w$().optional(),modelJudgeConsent:cO.optional(),historySyncConsent:cQ.optional(),webChatCapture:cV.optional(),bodyRetention:cX.default({enabled:!1,retainDays:30})});var c$=c(77404);let c_=d.k5n(["runMode","historicalAccess","vaultConsent","vaultKeyCustody","vaultInlineReveal","modelJudgeConsent","dataSharesInPlace","redactFallback","bodyRetention"]).meta({id:"ManagedSettingKey"}),c0=d.Ikc({runMode:d.k5n(["standalone","attached"]).optional(),controlPlane:d.Ikc({endpoint:d.YjP().min(1),label:d.YjP().min(1).optional()}).optional(),historicalAccess:d.k5n(["full","session-only"]).optional(),vaultConsent:d.zMY().optional(),vaultKeyCustody:d.k5n(["file","keychain"]).optional(),vaultInlineReveal:d.k5n(["masked","full","off"]).optional(),modelJudgeConsent:d.zMY().optional(),dataSharesInPlace:d.zMY().optional(),redactFallback:ch.optional(),bodyRetention:cX.optional()}).meta({id:"ManagedSettingsValues"});d.Ikc({specVersion:d.aig().int().positive().default(1),organization:d.YjP().min(1).optional(),values:d.g1P(d.YjP(),d.L5J()).default({}),lockedFields:d.YOg(d.YjP()).default([])}).transform(({lockedFields:a,values:b,...c},d)=>{let e=[],f=[];for(let b of a)c_.safeParse(b).success?e.push(b):f.push(b);let g=Object.create(null),h=[];for(let[a,c]of Object.entries(b))Object.hasOwn(c0.shape,a)?g[a]=c:h.push(a);let i=c0.safeParse(g);if(!i.success){for(let a of i.error.issues)d.addIssue({...a,path:["values",...a.path]});return c$.tm}return{...c,values:i.data,lockedFields:e,...f.length>0?{unknownLockedFields:f}:{},...h.length>0?{unknownValueFields:h}:{}}}).meta({id:"ManagedSettings"});let c1={present:!1,lockedFields:[]};function c2(a,b){return a.present&&a.lockedFields.includes(b)}function c3(a){return`Managed by ${a.organization??"your organization"}`}let c4=d.Ikc({path:d.YjP().min(1),name:d.YjP().min(1),origin:aN,defaultAccess:aM});d.Ikc({files:d.YOg(c4),truncated:d.zMY(),scannedAt:d.YjP()});let c5=["7d","30d","3m","6m"],c6=d.k5n(c5).meta({id:"TimeRange"}),c7="7d";c6.catch(c7);let c8="dismiss",c9=aa.extract(["acknowledged","false-positive"]).meta({id:"DismissMethod"});d.Ikc({ruleId:d.YjP().max(200),method:d.YjP(),confirmation:d.YjP()}),d.Ikc({ruleId:d.YjP().max(200),method:c9,confirmation:d.YjP()});let da=d.k5n(["still-valid","unknown","invalid"]),db=d.Ikc({filePath:d.YjP(),span:U.optional()}).strict(),dc=d.Ikc({provider:d.YjP(),maskedToken:d.YjP(),where:db,state:da,observedAt:K.w$().optional()}).strict();d.Ikc({provider:d.YjP(),maskedToken:d.YjP(),consolePath:d.YjP(),occurrenceSpread:d.aig().int().positive()}).strict();let dd=d.k5n(["redact-rotation-checklist","redact-only","set-secret-redact","leave"]),de=d.k5n(["first-run","pre-push","secret-scan"]);d.Ikc({entrySource:de}).strict();let df=d.Ikc({id:dd,label:d.YjP()}),dg=d.Ikc({kind:d.euz("decision"),entrySource:de,secretCount:d.aig().int().positive(),prompt:d.YjP(),options:d.PVZ([df.extend({id:d.euz("redact-rotation-checklist")}),df.extend({id:d.euz("redact-only")}),df.extend({id:d.euz("set-secret-redact")}),df.extend({id:d.euz("leave")})])}),dh=d.Ikc({kind:d.euz("no-decision")});d.gMt("kind",[dg,dh]);let di=d.Ikc({severity:R,count:d.aig().int().nonnegative(),caught:d.aig().int().nonnegative().optional(),openAtRest:d.aig().int().nonnegative().optional(),dismissed:d.aig().int().nonnegative().optional(),handled:d.aig().int().nonnegative().optional(),resolved:d.aig().int().nonnegative().optional()}).meta({id:"SeveritySummaryItem"});d.Ikc({total:d.aig().int().nonnegative(),needsRemediation:d.aig().int().nonnegative().optional(),dismissed:d.aig().int().nonnegative().optional(),bySeverity:d.YOg(di)}).meta({id:"SeveritySummaryResponse"}),d.Ikc({range:d.k5n(c5).default(c7)});let dj=d.k5n(["blocked","redacted","warned"]).meta({id:"EnforcementActionKind"}),dk=d.Ikc({kind:dj,count:d.aig().int().nonnegative(),delta:d.aig().int()}).meta({id:"EnforcementAction"});d.Ikc({range:c6,total:d.aig().int().nonnegative(),actions:d.YOg(dk)}).meta({id:"EnforcementActionsResponse"});let dl=d.k5n(["day","week"]).meta({id:"TimeseriesGranularity"}),dm=d.Ikc({timestamp:K.p6(),critical:d.aig().int().nonnegative(),high:d.aig().int().nonnegative(),medium:d.aig().int().nonnegative(),low:d.aig().int().nonnegative().optional()}).meta({id:"FindingsTimeseriesPoint"});d.Ikc({range:c6,granularity:dl,points:d.YOg(dm)}).meta({id:"FindingsTimeseriesResponse"});let dn=d.Ikc({timestamp:K.p6(),bySeverity:d.Ikc({critical:d.aig().nonnegative().nullable(),high:d.aig().nonnegative().nullable(),medium:d.aig().nonnegative().nullable(),low:d.aig().nonnegative().nullable()})}).meta({id:"MttrTrendPoint"});d.Ikc({range:c6,granularity:dl,points:d.YOg(dn)}).meta({id:"MttrTrendResponse"});let dp=d.Ikc({findingKey:d.YjP(),ruleId:d.YjP(),severity:R,repo:d.YjP().optional(),path:d.YjP(),resolvedAt:K.w$(),detectedAt:K.w$()}).meta({id:"ResolvedFeedItem"});d.Ikc({items:d.YOg(dp)}).meta({id:"RecentlyResolvedResponse"});let dq=["repo","user"],dr=d.k5n(dq).meta({id:"SourceKind"}),ds=d.Ikc({id:d.YjP(),name:d.YjP(),kind:dr,findingsCount:d.aig().int().nonnegative()}).meta({id:"TopSource"});d.Ikc({range:c6,items:d.YOg(ds)}).meta({id:"TopSourcesResponse"}),d.Ikc({range:d.k5n(c5).default(c7),limit:L.ai().int().min(1).max(50).default(5),kind:d.k5n(dq).optional()});let dt=N.extract(["ClaudeCode","Cursor","Codex","Antigravity","ClaudeAi","ChatGpt","Copilot","Api"]).meta({id:"Provider"}),du=d.Ikc({provider:dt,coverage:d.aig().int().min(0).max(100),supported:d.zMY()}).meta({id:"ScanCoverageProvider"});d.Ikc({range:c6,providers:d.YOg(du)}).meta({id:"ScanCoverageResponse"});let dv=d.k5n(["repo","user","team","policy","share","rule"]).meta({id:"SubjectType"}),dw=d.Ikc({type:dv,id:d.YjP(),label:d.YjP()}).meta({id:"RecommendationSubject"}),dx=d.k5n(["apply","navigate"]).meta({id:"RecommendationActionMode"}),dy=d.Ikc({mode:dx,type:d.YjP(),label:d.YjP(),href:d.YjP().optional(),policyId:d.YjP().optional(),teamId:d.YjP().optional()}).meta({id:"RecommendationAction"}),dz=d.Ikc({id:d.YjP(),category:d.YjP(),severity:R,title:d.YjP(),description:d.YjP(),subjects:d.YOg(dw),action:dy}).meta({id:"RecommendedAction"});d.Ikc({items:d.YOg(dz)}).meta({id:"RecommendedActionsResponse"}),d.Ikc({limit:L.ai().int().min(1).max(20).default(3)});let dA=d.Ikc({type:d.YjP(),policyId:d.YjP().optional(),teamId:d.YjP().optional()}).meta({id:"AppliedAction"});d.Ikc({id:d.YjP(),status:d.euz("applied"),appliedAction:dA}).meta({id:"ApplyRecommendedActionResponse"}),d.Ikc({id:d.YjP(),status:d.euz("dismissed")}).meta({id:"DismissRecommendedActionResponse"}),d.Ikc({id:d.YjP()});let dB=d.k5n(["granted","revoked","unchanged"]).meta({id:"HistorySyncConsentChoice"}),dC=d.k5n(["granted","revoked","unchanged"]).meta({id:"ModelJudgeConsentChoice"}),dD=d.k5n(["granted","revoked","unchanged"]).meta({id:"WebChatCaptureConsentChoice"});d.Ikc({historicalAccess:d.YjP(),modelJudgeConsent:dC,historySyncConsent:dB,vaultConsent:d.YjP(),vaultInlineReveal:d.YjP(),webChatCaptureConsent:dD,redactFallback:d.YjP(),bodyRetention:d.Ikc({enabled:d.zMY(),retainDays:d.aig()})}),d.Ikc({endpoint:d.YjP(),label:bu(200).optional(),accessKey:d.YjP()}),d.Ikc({ruleId:d.YjP(),category:Q,severity:R,maskedMatch:d.YjP(),rawMatch:d.YjP(),context:d.YjP(),filePath:d.YjP().optional(),confidence:d.aig().min(0).max(1),id:d.YjP().optional(),valueFingerprint:d.YjP().optional(),keyVersion:d.aig().int().nonnegative().optional()});let dE=d.Ikc({category:Q,action:cr,reasoning:d.YjP(),genuineCount:d.aig().int().nonnegative(),fpCount:d.aig().int().nonnegative(),fpIds:d.YOg(d.YjP())});d.Ikc({perCategory:d.YOg(dE),notes:d.YjP()});let dF=d.Ikc({total:d.aig().int().nonnegative(),important:d.aig().int().nonnegative(),routine:d.aig().int().nonnegative()}).refine(a=>a.total===a.important+a.routine,{message:"total must equal important + routine",path:["total"]}),dG=d.Ikc({ruleId:d.YjP(),category:Q,valueFingerprint:d.YjP(),keyVersion:d.aig().int().nonnegative()}),dH=d.Ikc({pattern:d.YjP(),count:d.aig().int().nonnegative(),values:d.YOg(dG).min(1)}),dI=d.Ikc({category:Q,count:d.aig().int().nonnegative(),egress:d.zMY()}),dJ=d.Ikc({counts:dF,routineCategories:d.YOg(Q),surfacedCategories:d.YOg(Q),findingKinds:d.YOg(dI),posture:d.g1P(Q,cg),maskedFindings:d.YOg(dc).optional(),falsePositivePatterns:d.YOg(dH).optional()}),dK=dE.pick({category:!0,genuineCount:!0,fpCount:!0}).extend({egress:d.zMY()});d.Ikc({categories:d.YOg(dK),posture:d.g1P(Q,cg)}),d.Ikc({frame:dJ,copy:d.YjP()}),d.k5n(["scan","floor"]);let dL=d.Ikc({id:d.k5n(["enter-remediation","open-dashboard","not-now"]),label:d.YjP()}),dM=d.PVZ([dL.extend({id:d.euz("open-dashboard")}),dL.extend({id:d.euz("not-now")})]),dN=d.PVZ([dL.extend({id:d.euz("enter-remediation")}),dL.extend({id:d.euz("open-dashboard")}),dL.extend({id:d.euz("not-now")})]);function dO(a){let b=new Set(a);return a5.filter(a=>b.has(a))}d.Ikc({worthALook:d.aig().int().nonnegative(),liveKeys:d.aig().int().nonnegative().optional(),options:d.KCZ([dM,dN])}).refine(a=>a.options.some(a=>"enter-remediation"===a.id)===(a.liveKeys??0)>0,{message:"the chain-entry option is present exactly when liveKeys > 0",path:["options"]}).refine(a=>(a.liveKeys??0)<=a.worthALook,{message:"liveKeys is a subset of worthALook and cannot exceed it",path:["liveKeys"]});let dP={Stable:"stable",Beta:"beta",Nightly:"nightly"};function dQ(a){let b=a.managedInstall;return void 0===b?{ref:"",lead:""}:{ref:void 0!==b.ref?` (marketplace ref ${b.ref})`:"",lead:b.pending&&null!==a.latest?`v${a.latest} is on its way. `:""}}dP.Stable,dP.Beta,dP.Nightly;let dR="Your organization's managed settings install it and pin its version. Updates arrive through Claude Code's own plugin autoupdate when a new session starts, or /plugin → update inside a session.",dS=d.k5n(["site","estimated","none"]),dT=d.Ikc({inputTokens:d.aig().int().nonnegative().optional(),outputTokens:d.aig().int().nonnegative().optional(),cacheReadInputTokens:d.aig().int().nonnegative().optional(),cacheCreationInputTokens:d.aig().int().nonnegative().optional()}),dU=d.Ikc({toolUseId:d.YjP().min(1),toolName:d.YjP().min(1),target:d.YjP().optional(),isError:d.zMY().optional(),inputSize:d.aig().int().nonnegative().optional(),outputSize:d.aig().int().nonnegative().optional()});d.Ikc({messageId:d.YjP().min(1),startedAt:K.w$(),model:d.YjP().optional(),usage:dT.optional(),usageSource:dS,stopReason:d.YjP().optional(),conversationId:d.YjP().optional(),turnIndex:d.aig().int().nonnegative().optional(),toolCalls:d.YOg(dU).default([]),responseText:d.YjP().optional(),truncated:d.zMY().default(!1)});let dV=d.k5n(["watching","composer-only","button-only","unattached","unknown"]);d.Ikc({patched:d.zMY(),live:d.zMY(),blind:d.zMY(),sendsSeenDom:d.aig().int().nonnegative(),exchangesSeenNet:d.aig().int().nonnegative(),parseFailures:d.aig().int().nonnegative(),unparsedBodies:d.aig().int().nonnegative(),shapeMisses:d.YOg(d.YjP()).default([]),conversationEndpoints:d.aig().int().nonnegative().default(0),closed:d.zMY().default(!1),enforcement:dV.default("unknown")})},29439:(a,b,c)=>{"use strict";c.d(b,{FileDetailDrawer:()=>k});var d=c(469),e=c(72454),f=c(17200),g=c(99846),h=c(63264),i=c(79871),j=c(8070);function k({file:a,onChange:b,accessRefusal:c}){let k=i.Gb[a.origin],l=a.project,m=(0,f.useId)();return(0,d.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,d.jsxs)(e.Fm,{className:"flex-row items-center gap-2.5 py-4 px-5",children:[(0,d.jsx)("span",{className:"grid size-7.5 shrink-0 place-items-center rounded-lg bg-surface-2 text-text-2",children:(0,d.jsx)(j.m,{name:"file",className:"size-4.5"})}),(0,d.jsx)(e.qp,{className:"min-w-0 truncate font-mono text-sm",children:a.name})]}),(0,d.jsxs)("div",{className:"mt-1 flex min-h-0 flex-1 flex-col gap-4.5 overflow-y-auto border-t border-border py-4 px-5",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"break-all font-mono text-xs text-text-3",children:[l.repo," › ",a.path]}),(0,d.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,d.jsx)(h.TJ,{origin:a.origin}),(0,d.jsx)(h.yk,{v:l.visibility}),a.findings>0&&(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-sev-critical-fill px-2 py-0.5 text-xs font-semibold text-sev-critical-ink",children:[(0,d.jsx)(j.m,{name:"alert",className:"size-3"}),a.findings," finding",1===a.findings?"":"s"]})]})]}),(0,d.jsx)(h.wn,{label:"LLM access",children:(0,d.jsx)(h.AC,{order:i.IF,meta:i.Pe,value:a.access,onChange:b,accentOf:a=>a.accent,refusal:void 0===c?void 0:{id:m,reason:c}})}),(0,d.jsxs)("div",{className:"flex gap-2.5 rounded-lg border border-border bg-surface-2 px-3 py-2.5",children:[(0,d.jsx)(j.m,{name:k.icon,className:"size-4.5 shrink-0 text-text-2"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-0.5 text-xs font-semibold",children:"Why this default"}),(0,d.jsx)("div",{className:"text-xs leading-relaxed text-text-2",children:(0,i._t)(l,a.origin)})]})]}),a.findingsRefs.length>0&&(0,d.jsx)(h.wn,{label:"Related findings",children:(0,d.jsx)("div",{className:"flex flex-col gap-1.5",children:a.findingsRefs.map(b=>(0,d.jsxs)("button",{type:"button",className:"flex w-full cursor-pointer items-center gap-2.5 rounded-lg border border-border bg-primary-tint px-3 py-2.5 text-left",children:[(0,d.jsx)(j.m,{name:"alert",className:"size-4 shrink-0 text-sev-critical-ink"}),(0,d.jsx)("span",{className:"flex-1 text-xs font-medium text-text",children:b.title||a.note}),(0,d.jsx)("span",{className:"text-xs text-primary",children:"Open in Findings"}),(0,d.jsx)(j.m,{name:"chevron-right",className:"size-4 text-text-3"})]},b.id))})}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-x-3 gap-y-3.5",children:[(0,d.jsx)(g.p,{label:"Repository",children:(0,d.jsx)("span",{className:"font-mono text-xs",children:l.repo})}),(0,d.jsx)(g.p,{label:"Visibility",children:"public"===l.visibility?"Public":"Private"}),(0,d.jsx)(g.p,{label:"Origin",children:k.label}),(0,d.jsx)(g.p,{label:"Set by",children:a.isCustom?(0,d.jsx)("span",{className:"text-primary",children:"You"}):"Default policy"}),(0,d.jsx)(g.p,{label:"Language",children:l.language}),(0,d.jsx)(g.p,{label:"Last activity",children:(0,i.v7)(a.blockedAt??l.updatedAt)})]})]})]})}},29516:(a,b,c)=>{"use strict";c.d(b,{VaultInventoryView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call VaultInventoryView() from the server but VaultInventoryView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/vault/VaultInventoryView.tsx","VaultInventoryView")},29840:(a,b,c)=>{"use strict";c.d(b,{VaultReuseView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call VaultReuseView() from the server but VaultReuseView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/vault/VaultReuseView.tsx","VaultReuseView")},30314:(a,b,c)=>{"use strict";c.d(b,{HarnessOverview:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call HarnessOverview() from the server but HarnessOverview is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/HarnessOverview.tsx","HarnessOverview")},33401:()=>{},33918:(a,b,c)=>{"use strict";c.d(b,{ActivityTokenUsageView:()=>k});var d=c(469),e=c(72454),f=c(17200),g=c(78666),h=c(92070),i=c(91301);function j({summary:a}){return(0,d.jsxs)(e.XI,{children:[(0,d.jsx)(e.A0,{children:(0,d.jsxs)(e.Hj,{children:[(0,d.jsx)(e.nd,{children:"Provider"}),(0,d.jsx)(e.nd,{children:"Model"}),(0,d.jsx)(e.nd,{className:"text-right",children:"Input"}),(0,d.jsx)(e.nd,{className:"text-right",children:"Output"}),(0,d.jsx)(e.nd,{className:"text-right",children:"Cache"}),(0,d.jsx)(e.nd,{className:"text-right",children:"Total"}),(0,d.jsx)(e.nd,{className:"text-right",children:"Cost"})]})}),(0,d.jsx)(e.BF,{children:a.models.map(a=>(0,d.jsxs)(e.Hj,{children:[(0,d.jsx)(e.nA,{className:"text-text-2",children:a.provider}),(0,d.jsx)(e.nA,{className:"max-w-40 truncate font-mono text-text",title:a.model,children:a.model}),(0,d.jsx)(e.nA,{className:"text-right tabular-nums text-text-2",children:(0,i.Sk)(a.inputTokens)}),(0,d.jsx)(e.nA,{className:"text-right tabular-nums text-text-2",children:(0,i.Sk)(a.outputTokens)}),(0,d.jsx)(e.nA,{className:"text-right tabular-nums text-text-2",children:(0,i.Sk)(a.cacheTokens)}),(0,d.jsx)(e.nA,{className:"text-right font-semibold tabular-nums text-text",children:(0,i.Sk)(a.totalTokens)}),(0,d.jsx)(e.nA,{className:"text-right tabular-nums text-text",children:null!==a.estimatedCostUsd?(0,i.UK)(a.estimatedCostUsd):"—"})]},`${a.provider} ${a.model}`))})]})}function k({summary:a,isLoading:b,error:c,rangeLabel:k}){let[l,m]=(0,f.useState)(!1);if(b&&!a)return(0,d.jsx)(e.EA,{className:"h-9 w-44 rounded-lg","aria-busy":!0});let n=null!==a&&a.models.length>0,o=c?"Token usage":n?`${(0,i.Sk)(a.totalTokens)} tokens \xb7 ${(0,i.xd)(a.estimatedCostUsd,a.costIsPartial)}`:"No token usage",p=c?`Token usage could not be read — ${c}`:n?`Token usage${k?` \xb7 ${k}`:""} — ${String(a.sessionCount)} session${1===a.sessionCount?"":"s"}. Open the per-model breakdown.`:"No token usage recorded yet — open for details";return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(e.$n,{variant:"outline",size:"md",title:p,"aria-label":"Token usage — open the per-model breakdown",onClick:()=>{m(!0)},children:[(0,d.jsx)(g.Uy,{"aria-hidden":!0,focusable:!1,className:c?"size-4 text-sev-critical-ink":"size-4 text-primary"}),(0,d.jsx)("span",{className:"max-w-56 truncate tabular-nums",children:o})]}),(0,d.jsx)(e.cj,{open:l,onOpenChange:m,children:(0,d.jsxs)(e.h,{className:"w-200 max-w-[94%] gap-0 overflow-hidden p-0","aria-describedby":void 0,children:[(0,d.jsxs)(e.Fm,{className:"shrink-0 border-b border-border px-5 py-4",children:[(0,d.jsxs)(e.qp,{className:"flex items-center gap-2",children:[(0,d.jsx)(g.Uy,{"aria-hidden":!0,focusable:!1,className:"size-4 text-primary"}),"Token usage",k&&(0,d.jsxs)("span",{className:"text-ui font-normal text-text-3",children:["\xb7 ",k]})]}),n&&(0,d.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-x-2.5 gap-y-0.5 text-xs text-text-3",children:[(0,d.jsxs)("span",{children:[a.sessionCount," session",1===a.sessionCount?"":"s"]}),(0,d.jsx)("span",{children:"\xb7"}),(0,d.jsxs)("span",{className:"font-semibold tabular-nums text-text-2",children:[(0,i.Sk)(a.totalTokens)," tokens"]}),(0,d.jsx)("span",{children:"\xb7"}),(0,d.jsx)("span",{className:"font-semibold tabular-nums text-text-2",children:(0,i.xd)(a.estimatedCostUsd,a.costIsPartial)})]})]}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-auto px-2 py-2",children:c?(0,d.jsx)("div",{className:"p-3",children:(0,d.jsx)(h.r,{message:c})}):n?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(j,{summary:a}),a.costIsPartial&&(0,d.jsx)("p",{className:"px-3 pb-1 pt-2 text-xs text-text-3",children:"— = unknown pricing (a local or non-Anthropic model); the cost total is a lower bound."})]}):(0,d.jsx)("div",{className:"p-3",children:(0,d.jsx)(h.A,{message:"No token usage recorded yet — sessions are reconciled as you work."})})})]})})]})}},33988:(a,b,c)=>{"use strict";c.d(b,{SearchField:()=>i});var d=c(469),e=c(72454),f=c(17200),g=c(78666);let h={card:"rounded-lg border border-border-field bg-surface-2",canvas:"rounded-lg border border-border-field bg-surface"};function i({value:a,onValueChange:b,label:c,placeholder:i,surface:j,className:k,iconClassName:l,clearLabel:m="Clear search"}){let n=(0,f.useRef)(null),o=()=>{b(""),n.current?.focus()};return(0,d.jsxs)("div",{className:(0,e.cn)("flex items-center gap-2 px-3 focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/40",k,h[j]),children:[(0,d.jsx)(g.WI,{"aria-hidden":!0,focusable:!1,className:(0,e.cn)("size-4 shrink-0 text-text-3",l)}),(0,d.jsx)("input",{ref:n,type:"text",value:a,onChange:a=>{b(a.target.value)},onKeyDown:b=>{"Escape"===b.key&&""!==a&&(b.preventDefault(),b.stopPropagation(),o())},spellCheck:!1,placeholder:i,"aria-label":c,className:"min-w-0 flex-1 bg-transparent text-sm text-text placeholder:text-text-3 focus:outline-hidden"}),""!==a&&(0,d.jsx)("button",{type:"button","aria-label":m,onClick:o,className:"grid size-6 shrink-0 cursor-pointer place-items-center rounded text-text-3 hover:text-text focus:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/40",children:(0,d.jsx)(g.uv,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})})]})}},34078:(a,b,c)=>{"use strict";c.d(b,{PolicyDetailView:()=>g,PolicyListView:()=>f,PolicyStatsView:()=>e});var d=c(37195);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call PolicyStatsView() from the server but PolicyStatsView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/policies/PoliciesView.tsx","PolicyStatsView"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call PolicyListView() from the server but PolicyListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/policies/PoliciesView.tsx","PolicyListView"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call PolicyDetailView() from the server but PolicyDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/policies/PoliciesView.tsx","PolicyDetailView")},34364:(a,b,c)=>{"use strict";c.d(b,{SyncPanelView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call SyncPanelView() from the server but SyncPanelView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/SyncPanelView.tsx","SyncPanelView")},35683:(a,b,c)=>{"use strict";c.d(b,{i:()=>j});var d=c(469),e=c(72454),f=c(78666),g=c(91301),h=c(40523);function i({event:a,first:b,last:c,linkHref:i}){let j=h.$x[a.kind],k="tool"===a.kind&&a.tool?h.pS[a.tool]??j.icon:j.icon,l="active"===a.kind,m="tool"===a.kind||"commit"===a.kind,n=a.link?h.Oy[a.link]:null,o=a.link&&i?i(a.link,a.targetId):null;return(0,d.jsxs)("div",{className:"grid grid-cols-[60px_24px_1fr] gap-x-3",children:[(0,d.jsx)("div",{className:"whitespace-nowrap pt-1.5 text-right font-mono text-label text-text-3",children:(0,g.gE)(a.occurredAt)}),(0,d.jsxs)("div",{className:"relative flex justify-center",children:[!(b&&c)&&(0,d.jsx)("span",{className:(0,e.cn)("absolute left-1/2 w-px -translate-x-1/2 bg-border",b?"bottom-0 top-3":c?"top-0 h-3":"inset-y-0")}),(0,d.jsxs)("span",{className:(0,e.cn)("relative z-10 grid size-6 place-items-center rounded-md ring-2 ring-surface",j.fill,j.text),children:[l&&(0,d.jsx)("span",{className:"absolute inset-0 animate-ping rounded-md bg-current opacity-30"}),(0,d.jsx)(k,{"aria-hidden":!0,focusable:!1,className:"relative size-3.5"})]})]}),(0,d.jsxs)("div",{className:(0,e.cn)("pt-0.5",c?"pb-0":"pb-4.5"),children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[a.bodyExpired?(0,d.jsx)("span",{className:"text-ui font-semibold text-text-2 italic",children:"Body expired"}):(0,d.jsx)("span",{className:"text-ui font-semibold text-text",children:a.title}),a.severity&&(0,d.jsx)(e.Pt,{severity:a.severity}),a.flagged&&(0,d.jsxs)(e.Ex,{variant:"critical",className:"h-6 gap-1.5",children:[(0,d.jsx)(f._0,{"aria-hidden":!0,focusable:!1,className:"size-3"}),"Flagged"]}),a.internal&&(0,d.jsxs)(e.Ex,{variant:"primary",className:"h-6 gap-1.5",children:[(0,d.jsx)(f.Zu,{"aria-hidden":!0,focusable:!1,className:"size-3"}),"Internal"]})]}),(0,d.jsxs)("div",{className:(0,e.cn)("mt-0.5 text-xs text-text-2",m&&"font-mono"),children:[a.detail,n&&o&&(0,d.jsx)(e.$n,{asChild:!0,variant:"link",tone:"primary",className:"ml-2 text-xs font-normal",children:(0,d.jsxs)("a",{href:o,children:["Open in ",n,(0,d.jsx)(f.Qq,{"aria-hidden":!0,focusable:!1})]})})]})]})]})}function j({events:a,linkHref:b}){return(0,d.jsx)("div",{children:a.map((c,e)=>(0,d.jsx)(i,{event:c,first:0===e,last:e===a.length-1,...b?{linkHref:b}:{}},c.id))})}},35748:(a,b,c)=>{"use strict";c.d(b,{ProjectPane:()=>m});var d=c(469),e=c(72454),f=c(17200),g=c(55908),h=c(33988),i=c(63264),j=c(79871),k=c(8070);function l(a){let b=a.lastIndexOf("/");return -1===b?"":a.slice(0,b)}function m(a){let{proj:b,path:c,onPathChange:f,query:g,tree:h,isLoading:l,error:m,onClose:q}=a,t=g.trim().length>0,v=h?.folders??[],w=h?.files??[],x=b.accessCounts;return(0,d.jsxs)(e.Zp,{className:"flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden",children:[(0,d.jsxs)("div",{className:"border-b border-border px-5 py-3.5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3.5",children:[(0,d.jsx)("div",{className:"min-w-0 flex-1",children:(0,d.jsx)(o,{proj:b,path:c,onPathChange:f})}),(0,d.jsx)(n,{...a}),q&&(0,d.jsx)(e.$n,{variant:"ghost",size:"icon","aria-label":"Back to harness",title:"Back to harness",onClick:q,children:(0,d.jsx)(k.m,{name:"x"})})]}),(0,d.jsxs)("div",{className:"mt-3 flex items-start gap-2.5",children:[(0,d.jsx)(i.yk,{v:b.visibility}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 gap-2.5 flex-wrap justify-between",children:[(0,d.jsx)("span",{className:"text-xs text-text-3",children:(0,j._t)(b,"source")}),(0,d.jsx)("span",{className:"flex items-center gap-3 text-xs text-text-3",children:j.IF.map(a=>(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:(0,e.cn)("size-2 rounded-sm",j.Pe[a].bar)}),x[a]," ",j.Pe[a].label]},a))})]})]})]}),!t&&a.blocked.length>0&&(0,d.jsx)(u,{...a}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 pb-4 pt-2",children:l&&!h?(0,d.jsx)("div",{className:"py-12 text-center text-sm text-text-3",children:"Loading files…"}):m?(0,d.jsx)("div",{className:"py-12 text-center text-sm text-sev-critical-ink",children:m}):t?w.length>0?(0,d.jsx)(s,{caption:`${String(w.length)} result${1===w.length?"":"s"}`,rows:w,showPath:!0,...a}):(0,d.jsxs)("div",{className:"py-12 text-center text-text-3",children:[(0,d.jsx)(k.m,{name:"search",className:"mx-auto mb-2 size-6"}),(0,d.jsxs)("div",{className:"text-sm",children:["No files match “",g,"”"]})]}):0===v.length&&0===w.length?(0,d.jsx)("div",{className:"py-12 text-center text-sm text-text-3",children:"This folder is empty"}):(0,d.jsxs)(e.XI,{children:[(0,d.jsx)(e.A0,{children:(0,d.jsxs)(e.Hj,{children:[(0,d.jsx)(e.nd,{children:"Name"}),(0,d.jsx)(e.nd,{children:"Origin"}),(0,d.jsx)(e.nd,{children:"LLM access"}),(0,d.jsx)(e.nd,{className:"w-10"})]})}),(0,d.jsxs)(e.BF,{children:[v.map(a=>(0,d.jsx)(p,{folder:a,onOpen:()=>{f([...c,a.name])}},"d"+a.name)),w.map(b=>(0,d.jsx)(r,{file:b,...a},"f"+b.path))]})]})})]})}function n({proj:a,query:b,onQueryChange:c}){return(0,d.jsx)(h.SearchField,{value:b,onValueChange:c,label:`Search files in ${a.name}`,placeholder:`Search files in ${a.name}…`,clearLabel:`Clear file search in ${a.name}`,surface:"card",className:"h-9 w-70 shrink-0"})}function o({proj:a,path:b,onPathChange:c}){let g=[a.name,...b];return(0,d.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[b.length>0&&(0,d.jsx)(e.$n,{variant:"ghost",size:"icon",className:"size-7",title:"Up one level",onClick:()=>{c(b.slice(0,-1))},children:(0,d.jsx)(k.m,{name:"arrow-up"})}),g.map((a,h)=>{let i=h===g.length-1;return(0,d.jsxs)(f.Fragment,{children:[h>0&&(0,d.jsx)(k.m,{name:"chevron-right",className:"size-3 text-text-3"}),(0,d.jsx)("button",{type:"button",onClick:()=>{c(b.slice(0,h))},className:(0,e.cn)("rounded px-1 py-0.5 text-sm",0===h&&"font-mono",i?"cursor-default font-bold text-text":"font-semibold text-text-2 hover:text-text"),children:a})]},h)})]})}function p({folder:a,onOpen:b}){let c=a.accessCounts;return(0,d.jsxs)(e.Hj,{className:"cursor-pointer hover:bg-surface-2",onClick:b,children:[(0,d.jsx)(e.nA,{children:(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)(k.m,{name:"folder",className:"size-4.5 shrink-0 text-primary"}),(0,d.jsx)("span",{className:"text-ui font-semibold text-text",children:a.name}),(0,d.jsxs)("span",{className:"text-xs text-text-3",children:[c.total," file",1===c.total?"":"s"]})]})}),(0,d.jsx)(e.nA,{className:"text-xs text-text-3",children:"Folder"}),(0,d.jsx)(e.nA,{children:(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(i.AJ,{counts:c}),c.blocked>0?(0,d.jsxs)("span",{className:"text-xs font-semibold text-sev-critical-ink",children:[c.blocked," blocked"]}):(0,d.jsxs)("span",{className:"text-xs text-text-3",children:[c.total," allowed"]})]})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)("div",{className:"grid size-7 place-items-center","aria-hidden":"true",children:(0,d.jsx)(k.m,{name:"chevron-right",className:"size-4 text-text-3"})})})]})}function q({file:a,showPath:b}){let c=l(a.path),e="blocked"===a.access;return(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[(0,d.jsx)(k.m,{name:"file",className:"size-4.5 shrink-0 text-text-3"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-baseline gap-1.5 whitespace-nowrap",children:[b&&c.length>0&&(0,d.jsxs)("span",{className:"font-mono text-xs text-text-3",children:[c,"/"]}),(0,d.jsx)("span",{className:"font-mono text-xs font-semibold text-text",children:a.name})]}),a.blockedAt&&e&&(0,d.jsxs)("div",{className:"mt-px flex items-center gap-1.5 text-xs text-sev-critical-ink",children:[(0,d.jsx)(k.m,{name:"slash-circle",className:"size-3"}),a.note]})]})]})}function r({file:a,onSetAccess:b,onOpenFile:c,drawerPath:h,showPath:j,accessRefusal:l}){let m=(0,f.useId)(),n=void 0===l?void 0:{id:m,reason:l};return(0,d.jsxs)(e.Hj,{className:(0,e.cn)("cursor-pointer hover:bg-surface-2",h===a.path&&"bg-surface-2"),onClick:()=>{c(a.path)},children:[(0,d.jsx)(e.nA,{children:(0,d.jsx)(q,{file:a,showPath:j})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)(i.TJ,{origin:a.origin})}),(0,d.jsx)(e.nA,{children:(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(i.kx,{value:a.access,onChange:c=>{b(a.path,c)},refusal:n}),n?(0,d.jsx)(g.P,{id:n.id,dataSlot:"access-refusal-reason",className:"min-w-23",children:n.reason}):(0,d.jsx)(i.Vx,{value:a.access})]})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)("div",{className:"grid size-7 place-items-center","aria-hidden":"true",children:(0,d.jsx)(k.m,{name:"chevron-right",className:"size-4 text-text-3"})})})]})}function s({caption:a,rows:b,showPath:c,...f}){return(0,d.jsxs)(e.XI,{children:[(0,d.jsx)(e.A0,{children:(0,d.jsxs)(e.Hj,{children:[(0,d.jsx)(e.nd,{children:a}),(0,d.jsx)(e.nd,{children:"Origin"}),(0,d.jsx)(e.nd,{children:"LLM access"}),(0,d.jsx)(e.nd,{className:"w-10"})]})}),(0,d.jsx)(e.BF,{children:b.map(a=>(0,d.jsx)(r,{file:a,showPath:c,...f},a.path))})]})}function t({file:a,onSetAccess:b,onOpenFile:c,accessRefusal:h}){let k=l(a.path),m=(0,f.useId)(),n=void 0===h?void 0:{id:m,reason:h};return(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border bg-surface px-3 py-2.5",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-baseline gap-1.5 overflow-hidden whitespace-nowrap",children:[k.length>0&&(0,d.jsxs)("span",{className:"font-mono text-xs text-text-3",children:[k,"/"]}),(0,d.jsx)("span",{className:"font-mono text-xs font-semibold text-text",children:a.name})]}),(0,d.jsxs)("div",{className:"mt-0.5 text-xs text-text-3",children:[a.note,a.blockedAt?` \xb7 blocked ${(0,j.v7)(a.blockedAt)}`:""]})]}),(0,d.jsx)(i.kx,{value:a.access,onChange:c=>{b(a.path,c)},refusal:n}),n?(0,d.jsx)(g.P,{id:n.id,dataSlot:"access-refusal-reason",className:"min-w-23",children:n.reason}):(0,d.jsx)(i.Vx,{value:a.access}),(0,d.jsx)(e.$n,{variant:"ghost",tone:"primary",size:"sm",onClick:()=>{c(a.path)},children:"Review"})]})}function u({blocked:a,showBlocked:b,onToggleBlocked:c,onSetAccess:f,onOpenFile:g,accessRefusal:h}){return(0,d.jsxs)("div",{className:"border-b border-border bg-surface-2",children:[(0,d.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2.5 px-4.5 py-3 text-left cursor-pointer",onClick:c,children:[(0,d.jsx)("span",{className:"grid size-6 shrink-0 place-items-center rounded-md bg-sev-critical-fill text-sev-critical-ink",children:(0,d.jsx)(k.m,{name:"slash-circle",className:"size-3.5"})}),(0,d.jsx)("span",{className:"text-ui font-semibold",children:"Recently blocked"}),(0,d.jsx)("span",{className:"rounded-full bg-sev-critical-ink px-2 py-px text-xs font-bold text-on-accent",children:a.length}),(0,d.jsx)("span",{className:"text-xs text-text-3",children:"Auto-blocked on detection — review to adjust"}),(0,d.jsx)(k.m,{name:"chevron-down",className:(0,e.cn)("ml-auto size-4.5 text-text-3 transition-transform",!b&&"-rotate-90")})]}),b&&(0,d.jsx)("div",{className:"flex flex-col gap-2 px-3.5 pb-3",children:a.map(a=>(0,d.jsx)(t,{file:a,onSetAccess:f,onOpenFile:g,accessRefusal:h},a.path))})]})}},35831:(a,b,c)=>{"use strict";c.d(b,{AreaChart:()=>h,Donut:()=>e,Sparkline:()=>f,useMeasuredWidth:()=>g});var d=c(37195);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call Donut() from the server but Donut is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","Donut"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call Sparkline() from the server but Sparkline is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","Sparkline"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call useMeasuredWidth() from the server but useMeasuredWidth is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","useMeasuredWidth"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call AreaChart() from the server but AreaChart is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","AreaChart")},35923:(a,b,c)=>{"use strict";c.d(b,{Aw:()=>e,JI:()=>g,zv:()=>f});var d=c(28615);let e=[{value:"acknowledged",label:"Accepted risk",description:"The finding is real, and this team has decided not to act on it."},{value:"false-positive",label:"Not a real finding",description:"The rule matched something that is not actually sensitive."}];function f(a){return!a.isMutating&&null!==a.method&&a.confirmation===d.H3X}function g(a){return[`Closes the open findings for ${a}, across every file and session.`,"The findings stay in the store and keep their history — they are closed, not deleted.","While the value stays where it is, a later scan that finds it again will not reopen it.","If the value is removed and later re-added, a scan does reopen it.","There is no undo in the dashboard."]}},37231:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g,metadata:()=>f});var d=c(60331);c(77117),c(93545),c(69169),c(12471);var e=c(72437);let f={title:{template:"%s \xb7 AI Traffic Control",default:"AI Traffic Control"},description:"AI Traffic Control (ai-tc) by AKA Security — local-first security dashboard (open source)."};function g({children:a}){return(0,d.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,d.jsx)("head",{children:(0,d.jsx)("script",{dangerouslySetInnerHTML:{__html:e.HB}})}),(0,d.jsx)("body",{children:a})]})}},37248:(a,b,c)=>{"use strict";function d(a,b){return()=>{a(b)}}function e(a,b,c){return()=>{a(b,c)}}c.d(b,{T:()=>d,i:()=>e})},37740:(a,b,c)=>{"use strict";c.d(b,{ActivityTokenUsageView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call ActivityTokenUsageView() from the server but ActivityTokenUsageView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/ActivityTokenUsageView.tsx","ActivityTokenUsageView")},37759:(a,b,c)=>{"use strict";c.d(b,{DataShareDetailView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call DataShareDetailView() from the server but DataShareDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/data-shares/DataShareDetailView.tsx","DataShareDetailView")},38231:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(74656);let e=async a=>[{type:"image/svg+xml",sizes:"any",url:(0,d.fillMetadataSegment)(".",await a.params,"icon.svg")+"?f88cc4549cfe61ae"}]},38833:(a,b,c)=>{"use strict";c.d(b,{K:()=>g,x:()=>f});var d=c(469),e=c(28615);let f={[e.tLs.ClaudeCode]:{label:"Claude Code",short:"CC",color:"#C96442"},[e.tLs.ClaudeDesktop]:{label:"Claude Desktop",short:"CD",color:"#A8553A"},[e.tLs.Cursor]:{label:"Cursor",short:"Cu",color:"#252F3D"},[e.tLs.Windsurf]:{label:"Windsurf",short:"Wf",color:"#0B8F7B"},[e.tLs.Codex]:{label:"Codex CLI",short:"Cx",color:"#10A37F"},[e.tLs.Antigravity]:{label:"Antigravity",short:"Ag",color:"#4285F4"},[e.tLs.Copilot]:{label:"GitHub Copilot",short:"Co",color:"#0581D4"},[e.tLs.ChatGpt]:{label:"ChatGPT",short:"GP",color:"#0d8f6f"},[e.tLs.ClaudeAi]:{label:"Claude.ai",short:"Ca",color:"#D97757"},[e.tLs.Api]:{label:"Anthropic API",short:"AP",color:"#6058E9"},[e.tLs.AiTcSdk]:{label:"Application SDK",short:"SD",color:"var(--color-mark-neutral)"}};function g({id:a,size:b=24}){let c=f[a];return(0,d.jsx)("span",{className:"flex shrink-0 items-center justify-center rounded-lg font-display font-bold text-white ring-1 ring-inset ring-mark-edge",style:{width:b,height:b,background:c.color,fontSize:.36*b},children:c.short})}},38843:(a,b,c)=>{"use strict";c.d(b,{$$:()=>h,Ec:()=>i,V:()=>g});var d=c(469),e=c(72454);let f={prompt:"Prompt","tool-input":"Tool input","tool-output":"Tool output",file:"File",transcript:"Transcript"},g={display:"Display render","explicit-reveal":"Explicit reveal","view-render":"View render","model-input":"Model input",remediation:"Remediation",purge:"Purge"};function h(){return(0,d.jsx)(e.Ex,{variant:"critical",children:"Reveal to model"})}function i({kind:a}){return(0,d.jsx)(e.Ex,{variant:"outline",children:f[a]})}},39097:(a,b,c)=>{"use strict";c.d(b,{AreaChart:()=>p,Donut:()=>l,Sparkline:()=>m,useMeasuredWidth:()=>o});var d=c(469),e=c(51158),f=c(10431),g=c(83841),h=c(64760),i=c(60258),j=c(17200),k=c(93974);function l({segments:a,size:b=120,thickness:c=16,children:g}){let h=b/2,i=(0,e.A)().value(a=>a.value).sort(null)(a),j=(0,f.A)().innerRadius(h-c).outerRadius(h);return(0,d.jsxs)("div",{className:"relative shrink-0",style:{width:b,height:b},children:[(0,d.jsx)("div",{"aria-hidden":!0,children:(0,d.jsx)("svg",{width:b,height:b,children:(0,d.jsx)("g",{transform:`translate(${String(h)},${String(h)})`,children:i.map(a=>(0,d.jsx)("path",{d:j(a)??void 0,fill:a.data.color,stroke:"none"},a.data.label))})})}),g&&(0,d.jsx)("div",{className:"absolute inset-0 grid place-items-center text-center",children:g})]})}function m({data:a,color:b,height:c=34,fill:e=!0,strokeWidth:f=2,labels:l,formatValue:m}){let n=`spark-${(0,j.useId)().replace(/:/g,"")}`,[o,p]=(0,j.useState)(null),q=Math.max(...a),r=Math.min(...a),s=q-r||1,t=b=>a.length<=1?50:2+b/(a.length-1)*96,u=a=>c-2-(a-r)/s*(c-4),v=a.map((a,b)=>[t(b),u(a)]),w=(0,g.A)().x(a=>a[0]).y(a=>a[1]).curve(h.G)(v)??void 0,x=(0,i.A)().x(a=>a[0]).y0(c).y1(a=>a[1]).curve(h.G)(v)??void 0,y=(0,d.jsxs)("svg",{"aria-hidden":!0,width:"100%",height:c,viewBox:`0 0 ${String(100)} ${String(c)}`,preserveAspectRatio:"none",className:"block",children:[e&&(0,d.jsx)("defs",{children:(0,d.jsxs)("linearGradient",{id:n,x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,d.jsx)("stop",{offset:"0%",stopColor:b,stopOpacity:.18}),(0,d.jsx)("stop",{offset:"100%",stopColor:b,stopOpacity:0})]})}),e&&(0,d.jsx)("path",{d:x,fill:`url(#${n})`,stroke:"none"}),(0,d.jsx)("path",{d:w,fill:"none",stroke:b,strokeWidth:f,strokeLinecap:"round",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"})]});if(!(l?.length===a.length&&a.length>0))return y;let z=null===o?void 0:a[o],A=null===o?void 0:l[o];return(0,d.jsxs)("div",{"aria-hidden":!0,className:"relative",onMouseMove:b=>{let c=b.currentTarget.getBoundingClientRect();if(0===c.width)return;let d=(b.clientX-c.left)/c.width*100,e=a.length<=1?0:Math.round((d-2)/96*(a.length-1));p(Math.min(a.length-1,Math.max(0,e)))},onMouseLeave:()=>{p(null)},children:[y,null!==o&&void 0!==z&&void 0!==A&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"pointer-events-none absolute size-2 -translate-x-1/2 -translate-y-1/2 rounded-full border border-surface/80",style:{left:`${String(t(o)/100*100)}%`,top:u(z),background:b}}),(0,d.jsxs)("div",{className:"pointer-events-none absolute z-10 -translate-x-1/2 whitespace-nowrap",style:{left:`clamp(36px, ${String(t(o)/100*100)}%, calc(100% - 36px))`,bottom:c+6,borderRadius:8,border:`1px solid ${k.l.border}`,background:k.l.surface,padding:"4px 8px",fontSize:12,boxShadow:"0 4px 12px rgb(0 0 0 / 0.08)"},children:[(0,d.jsx)("div",{style:{color:k.l.text3,fontSize:11},children:A}),(0,d.jsx)("div",{className:"font-semibold",style:{color:k.l.text2},children:(m??String)(z)})]})]})]})}let n={top:6,right:6,bottom:0,left:6};function o(){let a=(0,j.useRef)(null),[b,c]=(0,j.useState)(0);return[a,b]}function p({data:a,series:b,height:c=160,valueFormat:e=a=>String(a)}){let f=(0,j.useId)().replace(/:/g,""),[l,m]=o(),[p,q]=(0,j.useState)(null),r=Math.max(0,m-n.left-n.right),s=Math.max(0,c-n.top-n.bottom),t=[];for(let c of a)for(let a of b){let b=c[a.key];"number"==typeof b&&t.push(b)}let u=Math.max(1,...t),v=b=>a.length<=1?0:b/(a.length-1)*r,w=a=>s-a/u*s,x=null===p?null:a[p];return(0,d.jsxs)("div",{ref:l,"aria-hidden":!0,className:"relative",style:{height:c},children:[m>0&&(0,d.jsxs)("svg",{width:m,height:c,onMouseMove:function(b){if(!l.current||0===a.length)return;let c=l.current.getBoundingClientRect(),d=b.clientX-c.left-n.left,e=a.length<=1?0:r/(a.length-1),f=0===e?0:Math.round(d/e);q(Math.min(a.length-1,Math.max(0,f)))},onMouseLeave:()=>{q(null)},children:[(0,d.jsx)("defs",{children:b.map(a=>(0,d.jsxs)("linearGradient",{id:`${f}-${a.key}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,d.jsx)("stop",{offset:"0%",stopColor:a.color,stopOpacity:.16}),(0,d.jsx)("stop",{offset:"100%",stopColor:a.color,stopOpacity:0})]},a.key))}),(0,d.jsxs)("g",{transform:`translate(${String(n.left)},${String(n.top)})`,children:[[0,.25,.5,.75,1].map(a=>(0,d.jsx)("line",{x1:0,x2:r,y1:s*a,y2:s*a,stroke:k.l.border,strokeOpacity:.6},a)),b.map(b=>{let c=(0,i.A)().defined(a=>null!==a[b.key]).x((a,b)=>v(b)).y0(w(0)).y1(a=>w(a[b.key]??0)).curve(h.G)(a)??void 0,e=(0,g.A)().defined(a=>null!==a[b.key]).x((a,b)=>v(b)).y(a=>w(a[b.key]??0)).curve(h.G)(a)??void 0;return(0,d.jsxs)("g",{children:[(0,d.jsx)("path",{d:c,fill:`url(#${f}-${b.key})`,stroke:"none"}),(0,d.jsx)("path",{d:e,fill:"none",stroke:b.color,strokeWidth:2})]},b.key)}),x&&null!==p&&(0,d.jsxs)("g",{children:[(0,d.jsx)("line",{x1:v(p),x2:v(p),y1:0,y2:s,stroke:k.l.border}),b.map(a=>{let b=x[a.key];return null===b?null:(0,d.jsx)("circle",{cx:v(p),cy:w(b),r:3,fill:a.color},a.key)})]})]})]}),x&&null!==p&&(0,d.jsxs)("div",{className:"pointer-events-none absolute top-0 -translate-x-1/2",style:{left:Math.min(m-60,Math.max(60,n.left+v(p))),borderRadius:8,border:`1px solid ${k.l.border}`,background:k.l.surface,padding:"6px 8px",fontSize:12,boxShadow:"0 4px 12px rgb(0 0 0 / 0.08)"},children:[(0,d.jsx)("div",{style:{color:k.l.text3,fontSize:11,marginBottom:4},children:x.label}),b.map(a=>{let b=x[a.key];return null===b?null:(0,d.jsxs)("div",{className:"flex items-center gap-1.5",style:{color:k.l.text2},children:[(0,d.jsx)("span",{className:"size-2 rounded-xs",style:{background:a.color,display:"inline-block"}}),(0,d.jsx)("span",{className:"font-semibold",children:e(b,a.key)})]},a.key)})]})]})}},39717:(a,b,c)=>{"use strict";c.d(b,{WorkspaceSettingsFormView:()=>x});var d=c(469),e=c(28615),f=c(72454),g=c(17200),h=c(93722);let i=[{value:"monitor",label:"Let it through",description:"The call runs with the value unmasked and the finding is recorded."},{value:"warn",label:"Let it through, with a warning",description:"The call runs with the value unmasked, and the session is told what was found (default). A host with no channel to print on records the finding and shows nothing."},{value:"block",label:"Block the call",description:"The call is refused and the message says what to remove. The stricter answer, and the one to pick if a request that has already left cannot be recalled."}],j=[{value:"session-only",label:"Session only",description:"Only activity from after install is inspected (default — never assumed)."},{value:"full",label:"Full",description:"Pre-install surfaces (existing configs, history) may be scanned too. This grant covers reading them only — sending what the scan finds to the model API is the separate Model-judge consent below, which this one does not give. Switching back to Session only stops future scans; it cannot recall data already sent."}],k=[{value:"revoked",label:"Not granted",description:"The setup scan will not send findings to the model API (default — never assumed)."},{value:"granted",label:"Granted",description:"The setup scan may send each finding — its raw, unmasked value including any secret, plus about 120 characters of surrounding context on either side of it with any secrets in that window masked — to the model API to sort real leaks from noise."}],l=[{value:"revoked",label:"Not shared",description:"Anything not delivered live is dropped, as it was before this setting existed (default — never assumed)."},{value:"granted",label:"Shared",description:"Activity from before this machine attached, and anything undelivered since, may be sent later — including the text of prompts, replies and tool results, in which a value is masked only where the detection that flagged it is set to redact or block."}],m=[{value:"revoked",label:"Not granted",description:"The extension records nothing new from a web chat — no per-turn metadata and no reply text (default — never assumed). Enforcement is unaffected: what you send is still blocked, redacted or warned on exactly as before."},{value:"granted",label:"Granted",description:"The extension may record per-turn model, token and masked tool-call metadata, and may store the assistant reply text this machine is set to keep under ~/.aka — in which a value is masked only where the detection that flagged it is set to redact, vault or block, and every detection ships on monitor."}],n=[{value:"off",label:"Off (default)",description:"Nothing recoverable is stored. Detections set to Redact & Vault fall back to one-way Redact, so values are destroyed as they are redacted."},{value:"on",label:"Allow vaulting",description:"A detected value is replaced by a pointer, and an encrypted, recoverable copy is kept in the local vault under ~/.aka — this machine holds recoverable copies of detected secrets, encrypted at rest. The pointers written into files and transcripts show where each secret is used, and which places share the same secret, to anyone who can read those files. Switching back to Off stops new vaulting but does not erase what is already stored — purging the vault from the dashboard's Vault page is what erases it."}],o=`Enter a whole number of days, ${String(1)}\u2013${String(3650)}.`,p=[{value:"off",label:"Keep everything",description:"Bodies are kept for as long as the store lives."},{value:"on",label:"Expire after a horizon",description:"Clear bodies past the horizon below. The events, their severities and every finding stay."}],q=[{value:"masked",label:"Masked badge (default)",description:"Pointers render as a masked badge (category and partial value). No raw value is resolved and nothing is written to the audit trail."},{value:"full",label:"Full reveal",description:"Pointers resolve to the real value on screen, capped at two per message and never inside code blocks or quotes. The risk is real: anything the model is induced to mention renders in plaintext where it can be shoulder-surfed, screen-shared, or copy-pasted onward. Every reveal is audited."},{value:"off",label:"Off",description:"Replies are not modified; pointers show as-is."}];function r(a){return a?"on":"off"}function s(a){return void 0!==a&&!(0,e.hds)(a)}function t({label:a,description:b,name:c,choices:e,value:f,onChange:g,managed:i,notice:j,alert:k,defaultOpen:l,children:m}){let n=e.find(a=>a.value===f),o=`${c}-label`;return(0,d.jsxs)("details",{className:"group border-b border-border last:border-b-0","data-slot":"setting-row",open:!0===l,children:[(0,d.jsxs)("summary",{className:"flex cursor-pointer list-none items-start gap-3 px-4 py-3 hover:bg-surface-2",children:[(0,d.jsx)(u,{}),(0,d.jsxs)("span",{className:"flex-1",children:[(0,d.jsx)("span",{id:o,className:"block text-sm font-medium text-text",children:a}),(0,d.jsx)("span",{className:"mt-0.5 block text-xs text-text-3",children:b})]}),void 0!==k&&(0,d.jsx)("span",{className:"shrink-0 rounded-full bg-sev-high-fill px-2 py-0.5 text-xs font-medium text-sev-high-ink","data-slot":"row-alert",children:k}),void 0===i?(0,d.jsx)("span",{className:"shrink-0 text-xs font-medium text-text-2","data-slot":"current-value",children:n?.label??f}):(0,d.jsxs)("span",{className:"shrink-0 rounded-full bg-surface-2 px-2 py-0.5 text-xs text-text-3","data-slot":"managed-badge",title:i,children:[n?.label??f," \xb7 locked"]})]}),(0,d.jsxs)("div",{className:"px-4 pb-4 pl-11 pt-3",children:[j,void 0!==i&&(0,d.jsxs)("p",{className:"mb-3 text-xs text-text-3","data-slot":"managed-notice",children:[i,". This setting cannot be changed here."]}),(0,d.jsx)("fieldset",{disabled:void 0!==i,className:"contents",children:(0,d.jsx)(h.n,{name:c,labelledBy:o,choices:e,value:f,onChange:g,disabled:void 0!==i})}),m]})]})}function u(){return(0,d.jsx)("svg",{className:"size-4 shrink-0 text-text-3 transition-transform group-open:rotate-90",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M6 4l4 4-4 4",strokeLinecap:"round",strokeLinejoin:"round"})})}function v({title:a,children:b}){return(0,d.jsxs)("section",{children:[(0,d.jsx)("h2",{className:"mb-2 text-label font-semibold uppercase tracking-wider text-text-3",children:a}),(0,d.jsx)("div",{className:"overflow-hidden rounded-xl border border-border bg-surface",children:b})]})}let w=a=>1===a?"1 setting":`${String(a)} settings`;function x({settings:a,managed:b=e.MhX,onSave:c,onAttach:h,onDetach:u,credentialState:x,connectionHeld:z,detectionsHref:A="/detections",busy:B,error:C,saved:D}){var E;let[F,G]=(0,g.useState)(a.historicalAccess),H=(0,e.DLF)(a.modelJudgeConsent)?"granted":"revoked",[I,J]=(0,g.useState)(H),[K,L]=(0,g.useState)(!1),M=(0,e.EL9)(a.historySyncConsent,a.controlPlane?.endpoint)?"granted":"revoked",[N,O]=(0,g.useState)(M),[P,Q]=(0,g.useState)(!1),R=(0,e.bkE)(a.historySyncConsent,a.controlPlane?.endpoint),S=(0,e.dnP)(a.webChatCapture?.consent)?"granted":"revoked",[T,U]=(0,g.useState)(S),[V,W]=(0,g.useState)(!1),X=(E=a.webChatCapture,E?.consent!==void 0&&!(0,e.dnP)(E.consent)),[Y,Z]=(0,g.useState)(r(a.vaultConsent)),[$,_]=(0,g.useState)(a.vaultInlineReveal),[aa,ab]=(0,g.useState)(a.redactFallback),[ac,ad]=(0,g.useState)(a.bodyRetention.enabled?"on":"off"),[ae,af]=(0,g.useState)(String(a.bodyRetention.retainDays)),ag=Number(ae),ah=""!==ae.trim()&&Number.isInteger(ag)&&ag>=1&&ag<=3650,ai=a=>(0,e.O2m)(b,a)?(0,e.Ly$)(b):void 0,aj=function(a){let b=a.unknownLockedCount??0,c=a.unknownValueCount??0;if(!a.present||b+c===0)return;let d=a.organization??"Your organization",e=[...c>0?[`pins ${w(c)}`]:[],...b>0?[`locks ${w(b)}`]:[]],f=b+c===1?"it":"them";return`${d} ${e.join(" and ")} this version of AKA does not recognize. Update AKA to apply ${f}.`}(b),ak=F!==a.historicalAccess||ac!==(a.bodyRetention.enabled?"on":"off")||ah&&ag!==a.bodyRetention.retainDays||I!==H||N!==M||Y!==r(a.vaultConsent)||$!==a.vaultInlineReveal||aa!==a.redactFallback||"on"===Y&&s(a.vaultConsent)||P||K||V;return(0,d.jsxs)("div",{className:"flex flex-col gap-7",children:[void 0!==aj&&(0,d.jsx)("p",{className:"text-xs text-text-3","data-slot":"managed-unrecognized",children:aj}),(0,d.jsx)(v,{title:"Connection",children:(0,d.jsx)(y,{settings:a,credentialState:x,managedLabel:ai("runMode")??(!0===z?(0,e.Ly$)(b):void 0),onAttach:h,onDetach:u,busy:B})}),(0,d.jsxs)(v,{title:"Enforcement",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3","data-slot":"enforcement-pointer",children:[(0,d.jsx)("span",{className:"flex-1 text-xs text-text-3",children:"What happens when a detection fires — Monitor, Warn, Redact, Redact & Vault or Block — is assigned per detection on the Detections page. There is no global handling setting: one detection can block while another only logs, and this page would not be able to say which."}),(0,d.jsx)("a",{href:A,className:"shrink-0 text-xs font-medium text-primary hover:underline",children:"Configure detections"})]}),(0,d.jsx)(t,{label:"When masking is not possible",description:"Some fields cannot be masked in place: rewriting a shell command would change what runs, and rewriting a URL would fetch something else. A detection set to Redact cannot be carried out there, and this chooses what happens instead. It does not change what any detection is set to — only what happens where that answer cannot be applied. A plugin applies this once it reports which of its fields cannot be rewritten; until then it refuses those calls outright, and its Known limitations says where it stands.",name:"redactFallback",choices:i,value:aa,onChange:ab,managed:ai("redactFallback")})]}),(0,d.jsxs)(v,{title:"Data access",children:[(0,d.jsx)(t,{label:"Historical access",description:"Consent to inspect surfaces that existed before AKA was installed.",name:"historicalAccess",choices:j,value:F,onChange:G,managed:ai("historicalAccess")}),(0,d.jsx)(t,{label:"Model-judge consent",description:"Whether the setup scan may send findings to the model API.",name:"modelJudgeConsent",choices:k,value:I,onChange:a=>{L(!0),J(a)},managed:ai("modelJudgeConsent"),notice:(0,d.jsx)("p",{className:"mb-3 text-xs text-text-3","data-slot":"model-judge-disclosure",children:"A separate consent from historical access: this governs whether the /aka:setup scan may send findings to the model API to sort real leaks from noise. Per finding that is the raw, unmasked value including any secret, about 120 characters of surrounding transcript text on either side of it, the rule, category, severity, masked value and confidence it was scored with, and a sequential counter the model echoes back. The file path is never sent, and any secrets in the surrounding context are masked before it goes. Revoking stops future scans; it cannot recall data already sent."})}),(0,d.jsx)(t,{label:"Web chat capture",description:"Whether the browser extension may record what it sees on a web chat.",name:"webChatCaptureConsent",choices:m,value:T,onChange:a=>{W(!0),U(a)},alert:X?"Expired":void 0,defaultOpen:X,notice:(0,d.jsxs)(d.Fragment,{children:[X&&(0,d.jsx)("p",{className:"mb-3 text-xs text-sev-high-ink","data-slot":"web-chat-stale-notice",children:'Your grant was recorded against an older version of this setting, which covered less than is recorded now, so it no longer counts as consent. Saving with "Granted" selected re-consents to the current version.'}),(0,d.jsx)("p",{className:"mb-3 text-xs text-text-3","data-slot":"web-chat-disclosure",children:"Permission for the AKA browser extension to record what it observes on a web chat — ChatGPT and Claude.ai. Per assistant turn it may record the model, the token counts the site reported, and the name of each tool call the reply made with its salient argument masked; plus the reply text itself, for the replies this machine is set to keep — by default only a reply a scan found something in. What is masked in that text follows the policy assigned to the detection that flagged the value: it is masked only where that policy is redact, vault or block, and under monitor or warn the value is stored as it was seen, as is everything outside a flagged span. Every detection ships on monitor, so on a default install nothing in that text is masked. Your own messages are already recorded and this grant does not widen that; account, plan and quota data are not covered by it. What is recorded goes to the local store under ~/.aka, and on a machine attached to a deployment it is forwarded there like any other activity — this grant opens no outbound path of its own. It covers what is written down, not what is protected: blocking, redaction and warnings on what you send run whether or not it is given. Revoking stops future recording; it does not erase what is already stored."})]})}),(0,e.lgf)(a)&&(0,d.jsx)(t,{label:"Unsent activity",description:"Whether activity this machine has not delivered may be sent later.",name:"historySyncConsent",choices:l,value:N,onChange:a=>{Q(!0),O(a)},alert:R?"Paused":void 0,defaultOpen:R,notice:(0,d.jsxs)(d.Fragment,{children:[R&&(0,d.jsx)("p",{className:"mb-3 text-xs text-sev-high-ink","data-slot":"history-sync-stale-notice",children:'Your grant was recorded against an older version of this setting, which did not cover the text of the activity recorded before this machine attached — only what a live send failed to deliver afterward — sending is paused until you re-consent. Saving with "Shared" selected re-consents to the current version.'}),(0,d.jsx)("p",{className:"mb-3 text-xs text-text-3","data-slot":"history-sync-disclosure",children:"Whether activity this machine has not delivered to the deployment it is attached to may be sent later. Two kinds qualify: what was already recorded before it attached, and anything a live send could not deliver because the deployment was unreachable or refused the credential. Both are sent the same way: which sessions ran and when, in which project, repo and branch, token usage and model per call, which tools were called with their inputs truncated and every detected secret already masked, what was detected in those inputs, and the prompts, assistant replies and tool results themselves — for which a captured one INCLUDES ITS TEXT. What is masked in that text follows the policy assigned to the detection that flagged the value: it is masked only where that policy is redact or block, and under monitor or warn the value is sent as it was seen, as is everything outside a flagged span. Every detection ships on monitor, so on a default install nothing in that text is masked. Live sending is part of being attached and this setting does not change it: declining means an undelivered item is dropped rather than kept and retried. Sending happens in the background over later sessions. Revoking stops what has not been sent; it cannot recall what has."})]})}),(0,d.jsx)(t,{label:"Reversible secret vault",description:"Permission for AKA to keep recoverable copies of what it redacts. This grant does not by itself vault anything — a detection has to be set to Redact & Vault on the Detections page. Without the grant, those detections fall back to one-way Redact.",name:"vaultConsent",choices:n,value:Y,onChange:Z,managed:ai("vaultConsent"),alert:s(a.vaultConsent)?"Paused":void 0,defaultOpen:s(a.vaultConsent),notice:s(a.vaultConsent)?(0,d.jsx)("p",{className:"mb-3 text-xs text-sev-high-ink","data-slot":"vault-stale-notice",children:'Your grant was recorded against an older version of the vault — vaulting is paused until you re-consent. Saving with "Allow vaulting" selected re-consents to the current version.'}):null})]}),(0,d.jsx)(v,{title:"Display",children:(0,d.jsx)(t,{label:"Inline reveal in the terminal",description:"How a vault pointer renders inside Claude's on-screen replies. Display-only — the transcript and what the model sees always keep the pointer.",name:"vaultInlineReveal",choices:q,value:$,onChange:_,managed:ai("vaultInlineReveal")})}),(0,d.jsx)(v,{title:"Storage",children:(0,d.jsx)(t,{label:"Expire captured bodies",description:"Clear the stored text of old captures, keeping the events and their findings.",name:"bodyRetention",choices:p,value:ac,onChange:ad,managed:ai("bodyRetention"),children:"on"===ac&&(0,d.jsxs)("div",{className:"mt-3 flex items-center gap-2","data-slot":"retain-days",children:[(0,d.jsx)("label",{htmlFor:"retainDays",className:"text-xs text-text-2",children:"Keep bodies for"}),(0,d.jsx)("input",{id:"retainDays",name:"retainDays",type:"number",inputMode:"numeric",min:1,max:3650,value:ae,disabled:void 0!==ai("bodyRetention"),onChange:a=>{af(a.target.value)},className:"w-20 rounded-md border border-border bg-surface px-2 py-1 text-sm text-text disabled:opacity-50","aria-invalid":!ah,"aria-describedby":ah?void 0:"retainDays-error"}),(0,d.jsx)("span",{className:"text-xs text-text-2",children:"days"}),!ah&&(0,d.jsx)("span",{id:"retainDays-error",className:"text-xs text-sev-critical-ink",children:o})]})})}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(f.$n,{variant:"solid",tone:"primary",size:"sm",disabled:!ak||!0===B||"on"===ac&&!ah,onClick:()=>{c({historicalAccess:F,redactFallback:aa,modelJudgeConsent:K?"granted"===I?"granted":"revoked":"unchanged",historySyncConsent:P?"granted"===N?"granted":"revoked":"unchanged",vaultConsent:Y,webChatCaptureConsent:V?"granted"===T?"granted":"revoked":"unchanged",vaultInlineReveal:$,bodyRetention:{enabled:"on"===ac,retainDays:ah?ag:a.bodyRetention.retainDays}})},children:B?"Saving…":"Save changes"}),D&&!ak&&(0,d.jsx)("span",{className:"text-xs text-ok-ink",children:"Saved."}),C&&(0,d.jsx)("span",{className:"text-xs text-sev-critical-ink",children:C})]})]})}function y({settings:a,credentialState:b,managedLabel:c,onAttach:h,onDetach:i,busy:j}){let[k,l]=(0,g.useState)(""),[m,n]=(0,g.useState)(""),[o,p]=(0,g.useState)(""),q=(0,e.lgf)(a),r=void 0!==c,s=q?function(a){if(void 0===a||a.usable)return null;if("absent"===a.reason)return"This machine is registered, but there is no access key stored on it — so nothing is being sent or received. Attach it again to restore the connection.";if("endpoint-mismatch"===a.reason){var b,c;return b=a.credentialEndpoint,c=a.settingsEndpoint,`This machine is set to ${c}, but the access key stored on it was issued for ${b} — so nothing is being sent or received. Attach it again to ${c}, or point it back at ${b}.`}return"This machine is registered, but the access key stored on it cannot be used — so nothing is being sent or received. Attach it again to replace it."}(b):null;return(0,d.jsxs)("div",{className:"px-4 py-3","data-slot":"connection-row",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsxs)("span",{className:"flex-1",children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-text",children:"Run mode"}),(0,d.jsx)("span",{className:"mt-0.5 block text-xs text-text-3",children:q?"This machine is registered against your organization’s deployment. Detection, policy and history still run against the local store under ~/.aka.":"Everything stays on this machine: detection, policy and history all run against the local store under ~/.aka. Nothing is sent anywhere."}),q&&a.controlPlane&&(0,d.jsx)("span",{className:"mt-1 block text-xs text-text-2","data-slot":"control-plane-name",children:(0,e.F$B)(a.controlPlane)})]}),(0,d.jsxs)("span",{className:(0,f.cn)("shrink-0 rounded-full px-2 py-0.5 text-xs font-medium",null!==s?"bg-sev-high-fill text-sev-high-ink":q?"bg-teal-fill text-teal-ink":"bg-surface-2 text-text-3"),"data-slot":"run-mode-badge",children:[null!==s?"Not connected":q?"Attached":"Standalone",r&&" \xb7 locked"]})]}),null!==s&&(0,d.jsx)("p",{className:"mt-3 text-xs text-sev-high-ink","data-slot":"connection-credential-notice",children:s}),q&&(0,d.jsx)("p",{className:"mt-3 text-xs text-text-3","data-slot":"connection-forwarding",children:"While this machine is attached, the plugin forwards the activity that deployment is entitled to see and pulls the policy it sets. A scan you run from the Scan page also sends the Data Shares register it records — destinations and call sites, never source text. This page reads only your local store, so it cannot report what the deployment received. Detach to stop sending."}),r?(0,d.jsxs)("p",{className:"mt-3 text-xs text-text-3","data-slot":"connection-managed-notice",children:[c,". ",q?"Your organization set this connection, so this machine cannot be detached here.":""]}):q&&i?(0,d.jsxs)("div",{className:"mt-3",children:[(0,d.jsx)(f.$n,{variant:"outline",tone:"danger",size:"sm",disabled:j,onClick:()=>{l(""),n(""),p(""),i()},"data-slot":"detach-button",children:"Detach"}),(0,d.jsx)("p",{className:"mt-2 text-xs text-text-3",children:"Detaching clears the connection and returns this machine to standalone. Findings and history already in the local store stay where they are."})]}):q?(0,d.jsx)("p",{className:"mt-3 text-xs text-text-3","data-slot":"detach-unavailable",children:"This machine is registered, and this build offers no way to detach it here."}):h?(0,d.jsxs)("div",{className:"mt-3 grid gap-2 sm:grid-cols-2","data-slot":"attach-form",children:[(0,d.jsx)(f.pd,{value:k,placeholder:"Deployment endpoint","aria-label":"Deployment endpoint",onChange:a=>{l(a.target.value)}}),(0,d.jsx)(f.pd,{value:m,placeholder:"Name (optional)","aria-label":"Deployment name",onChange:a=>{n(a.target.value)}}),(0,d.jsx)(f.pd,{className:"sm:col-span-2",type:"password",name:"aka-access-key",value:o,placeholder:"Access key","aria-label":"Access key",autoComplete:"new-password",spellCheck:!1,autoCorrect:"off",onChange:a=>{p(a.target.value)}}),(0,d.jsx)("p",{className:"text-xs text-text-3 sm:col-span-2","data-slot":"attach-key-hint",children:"Create a plugin key in your deployment and paste it here. It is stored on this machine only, in ~/.aka/settings."}),(0,d.jsx)("div",{className:"sm:col-span-2",children:(0,d.jsx)(f.$n,{variant:"solid",tone:"primary",size:"sm",disabled:!0===j||""===k.trim()||""===o.trim(),onClick:()=>{!function(a,b,c){let d=a.accessKey.trim();b(),c(a.endpoint.trim(),a.label.trim(),d)}({endpoint:k,label:m,accessKey:o},()=>{p("")},h)},"data-slot":"attach-button",children:"Attach"})})]}):(0,d.jsx)("p",{className:"mt-3 text-xs text-text-3","data-slot":"connection-unavailable",children:"This view cannot change the connection. Attach from the AKA dashboard, or with `aka attach` in a terminal."})]})}},40371:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>k});var d=c(60331),e=c(57363),f=c(92405),g=c(46526),h=c(61270);function i({skew:a}){return(0,d.jsx)("div",{className:"p-6",children:(0,d.jsx)(g.Zp,{className:"mx-auto max-w-xl",children:(0,d.jsxs)(g.Wu,{className:"flex flex-col items-center gap-4 py-10 text-center",children:[(0,d.jsx)("span",{className:"flex size-11 items-center justify-center rounded-full bg-sev-medium-fill",children:(0,d.jsx)(h.rX,{"aria-hidden":!0,focusable:!1,className:"size-5 text-sev-medium-ink"})}),(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("h1",{className:"text-lg font-semibold text-text",children:"This dashboard is out of date"}),(0,d.jsx)("p",{className:"text-sm text-text-2",children:"The local store was written by a newer version of AKA than the one serving this dashboard, so its pages cannot read it. Your data is intact and needs no repair — update AKA so every surface on this machine is on one version line."}),(0,d.jsxs)("p",{className:"pt-1 text-sm text-text-2",children:["Update with ",(0,d.jsx)("code",{className:"font-mono text-text",children:"aka update"}),", then restart the dashboard."]})]}),(0,d.jsxs)("dl",{className:"flex flex-col gap-1 text-xs text-text-3",children:[(0,d.jsxs)("div",{className:"flex justify-center gap-2",children:[(0,d.jsx)("dt",{children:"Store schema"}),(0,d.jsx)("dd",{className:"font-mono text-text-2",children:a.storeVersion})]}),(0,d.jsxs)("div",{className:"flex justify-center gap-2",children:[(0,d.jsx)("dt",{children:"This build"}),(0,d.jsx)("dd",{className:"font-mono text-text-2",children:a.buildVersion})]}),a.unknownTags.length>0&&(0,d.jsxs)("div",{className:"flex flex-col gap-1 pt-1",children:[(0,d.jsx)("dt",{children:"Migrations this build does not have"}),(0,d.jsx)("dd",{className:"font-mono break-all text-text-2",children:a.unknownTags.join(", ")})]})]})]})})})}var j=c(72653);function k({children:a}){let b=(0,j.q)();return(0,d.jsx)(f.NavigationTransitionProvider,{children:(0,d.jsx)(e.AppShell,{children:null===b?a:(0,d.jsx)(i,{skew:b})})})}},40523:(a,b,c)=>{"use strict";c.d(b,{$x:()=>i,Ay:()=>g,Oy:()=>m,Tp:()=>n,ek:()=>k,nR:()=>l,ni:()=>o,oo:()=>h,pS:()=>j});var d=c(28615),e=c(72454),f=c(78666);let g={[d.tLs.ClaudeCode]:"CLI agent",[d.tLs.Cursor]:"IDE",[d.tLs.Copilot]:"IDE",[d.tLs.Codex]:"CLI agent",[d.tLs.Antigravity]:"CLI agent",[d.tLs.Windsurf]:"IDE",[d.tLs.ClaudeDesktop]:"Desktop app",[d.tLs.ChatGpt]:"Web app",[d.tLs.ClaudeAi]:"Web app",[d.tLs.Api]:"API",[d.tLs.AiTcSdk]:"Embedded SDK"},h=Object.values(d.tLs),i={session:{label:"Session",icon:f.k3,...e.cH.neutral},prompt:{label:"Prompt",icon:f.ny,...e.cH.primary},response:{label:"Response",icon:f.BZ,...e.cH.violet},tool:{label:"Tool",icon:f.k3,...e.cH.neutral},hook:{label:"Hook",icon:f.hF,...e.cH.low},detection:{label:"Detection",icon:f.Zu,...e.cH.critical},share:{label:"Egress",icon:f._G,...e.cH.teal},permission:{label:"Permission",icon:f.XA,...e.cH.high},commit:{label:"Commit",icon:f.OK,...e.cH.neutral},error:{label:"Error",icon:f._0,...e.cH.critical},active:{label:"In progress",icon:f.DQ,...e.cH.primary}},j={Bash:f.k3,Edit:f.qU,Write:f.qU,Read:f.oS,Grep:f.WI,WebFetch:f.fC,Task:f.hF,Agent:f.hF},k=f.k3,l={active:{label:"Live",badge:"success",dot:"bg-ok"},completed:{label:"Completed",badge:"default",dot:"bg-text-3"},interrupted:{label:"Interrupted",badge:"high",dot:"bg-sev-high"},error:{label:"Error",badge:"critical",dot:"bg-sev-critical"}},m={detections:"Findings",shares:"Data Shares",inventory:"Inventory"};function n(a){return Object.entries(a).map(([a,b])=>({name:a,n:b})).sort((a,b)=>b.n-a.n)}function o(a){return Object.values(a).reduce((a,b)=>a+b,0)}},41114:(a,b,c)=>{"use strict";c.d(b,{dtc:()=>I.AddExceptionForm,rX:()=>t.rX,fu:()=>J.ApproveExceptionDialog,i5F:()=>A.AssetDetail,JRA:()=>T.AvailablePluginsCardView,VBV:()=>L.BlockedLedgerView,VNw:()=>s.VN,spO:()=>e.sp,MXo:()=>X.DataShareDetailView,e3r:()=>Y.DataSharesKindTabsView,Imc:()=>Z.DataSharesTableView,tlv:()=>Q.DerefAuditTableView,MFC:()=>u.DetectionDetailView,A7Z:()=>v.DetectionsListView,ppr:()=>B.EmptyState,Gj:()=>M.ExceptionDetailView,Ebj:()=>N.ExceptionsTableView,_GS:()=>t._G,gsr:()=>s.gs,qWw:()=>s.qW,ToP:()=>C.FileDetailDrawer,Wjr:()=>n.FindingDetailView,tFx:()=>q.FindingLevelFilters,$Gd:()=>o.FindingLocationsListView,S$9:()=>r.FindingTypesListView,FGz:()=>p.FindingsFlatTableView,Dmd:()=>q.FindingsToolbarView,y2Z:()=>D.HarnessOverview,mD3:()=>E.m,_c:()=>F.InventoryNav,mLz:()=>t.mL,XAi:()=>t.XA,wO1:()=>x.MatcherModal,b6_:()=>_.NeedsReviewListView,t6e:()=>aa.NeedsReviewStripView,ece:()=>h,LKE:()=>z.PolicyDetailView,m$d:()=>z.PolicyListView,kLH:()=>G.ProjectPane,sJz:()=>H.RecommendedActionsCardView,nZB:()=>P.RotateKeyDialog,Tvj:()=>K.ScopePicker,YJs:()=>i.Y,Lwf:()=>j.SearchField,WIv:()=>t.WI,LOI:()=>l.SessionDetailView,md2:()=>m.SessionListView,Zus:()=>t.Zu,Zmc:()=>V.SyncPanelView,hny:()=>e.hn,k3y:()=>t.k3,$nP:()=>k.TimeRangeSelect,b1W:()=>y.UpdateModal,bnY:()=>U.UpdateStatusCardView,y6v:()=>R.VaultInventoryView,gvr:()=>S.VaultReuseView,A30:()=>W.WorkspaceSettingsFormView,uv5:()=>t.uv,eFG:()=>O.eF,nUl:()=>$.nU,XgB:()=>w.Xg,QTF:()=>e.QT,a5B:()=>f.useRenderClock});var d=c(93974);c(52095);var e=c(97725),f=c(561);c(39097);var g=c(469);function h({title:a,sub:b,actions:c}){return(0,g.jsxs)("div",{className:"flex items-start justify-between gap-4 pb-6",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("h1",{className:"font-display text-2xl font-semibold text-text",children:a}),void 0!==b&&""!==b&&(0,g.jsx)("p",{className:"mt-1 text-sm text-text-3",children:b})]}),c&&(0,g.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c})]})}c(38833),c(55908);var i=c(44613),j=c(33988);c(96211);var k=c(62030);c(92070),c(99846),c(33918),c(20322),c(35683),c(91301),c(81436),c(40523);var l=c(90844),m=c(18507);c(27795);var n=c(42951),o=c(68399),p=c(93423),q=c(21361),r=c(54604),s=c(58671);c(22157),c(54640);var t=c(78666);c(74637);var u=c(25834),v=c(63424),w=c(62308);c(23420),c(66663),c(17019);var x=c(44662),y=c(98305),z=c(82380),A=c(54382),B=c(63264);c(79871);var C=c(29439),D=c(48560),E=c(8070),F=c(96462),G=c(35748);c(35923),c(72454),d.l.sevCritical,d.l.sevHigh,d.l.sevMedium,d.l.sevLow,t.pD,d.l.sevCritical,t.jZ,d.l.primary,t.rX,d.l.sevHigh,c(60655),c(92895),c(77679),c(28615);var H=c(92006),I=c(78347),J=c(12771),K=c(73379),L=c(89001);c(43233);var M=c(2266),N=c(78164),O=c(25306),P=c(59447);c(38843);var Q=c(96537),R=c(52050),S=c(50922),T=c(69901),U=c(48743),V=c(59982),W=c(39717);c(19270);var X=c(20521),Y=c(17879),Z=c(7123),$=c(46807);c(95);var _=c(68212),aa=c(57178);c(82927),c(18457)},41347:(a,b,c)=>{Promise.resolve().then(c.bind(c,77303)),Promise.resolve().then(c.bind(c,57139)),Promise.resolve().then(c.bind(c,99205)),Promise.resolve().then(c.bind(c,68078)),Promise.resolve().then(c.bind(c,30679)),Promise.resolve().then(c.bind(c,15283)),Promise.resolve().then(c.bind(c,42528)),Promise.resolve().then(c.bind(c,37740)),Promise.resolve().then(c.bind(c,13186)),Promise.resolve().then(c.bind(c,71246)),Promise.resolve().then(c.bind(c,18193)),Promise.resolve().then(c.bind(c,37759)),Promise.resolve().then(c.bind(c,74125)),Promise.resolve().then(c.bind(c,71721)),Promise.resolve().then(c.bind(c,49946)),Promise.resolve().then(c.bind(c,11696)),Promise.resolve().then(c.bind(c,95036)),Promise.resolve().then(c.bind(c,24590)),Promise.resolve().then(c.bind(c,99557)),Promise.resolve().then(c.bind(c,23596)),Promise.resolve().then(c.bind(c,5771)),Promise.resolve().then(c.bind(c,5357)),Promise.resolve().then(c.bind(c,43525)),Promise.resolve().then(c.bind(c,90145)),Promise.resolve().then(c.bind(c,25031)),Promise.resolve().then(c.bind(c,50823)),Promise.resolve().then(c.bind(c,77084)),Promise.resolve().then(c.bind(c,2870)),Promise.resolve().then(c.bind(c,46649)),Promise.resolve().then(c.bind(c,84272)),Promise.resolve().then(c.bind(c,55365)),Promise.resolve().then(c.bind(c,42429)),Promise.resolve().then(c.bind(c,14255)),Promise.resolve().then(c.bind(c,12978)),Promise.resolve().then(c.bind(c,54639)),Promise.resolve().then(c.bind(c,73910)),Promise.resolve().then(c.bind(c,74665)),Promise.resolve().then(c.bind(c,30314)),Promise.resolve().then(c.bind(c,79252)),Promise.resolve().then(c.bind(c,13374)),Promise.resolve().then(c.bind(c,95623)),Promise.resolve().then(c.bind(c,34078)),Promise.resolve().then(c.bind(c,7413)),Promise.resolve().then(c.bind(c,72788)),Promise.resolve().then(c.bind(c,12148)),Promise.resolve().then(c.bind(c,34364)),Promise.resolve().then(c.bind(c,86639)),Promise.resolve().then(c.bind(c,35831)),Promise.resolve().then(c.bind(c,54778)),Promise.resolve().then(c.bind(c,69864)),Promise.resolve().then(c.bind(c,471)),Promise.resolve().then(c.bind(c,89691)),Promise.resolve().then(c.bind(c,92529)),Promise.resolve().then(c.bind(c,97123)),Promise.resolve().then(c.bind(c,29516)),Promise.resolve().then(c.bind(c,29840)),Promise.resolve().then(c.bind(c,57363)),Promise.resolve().then(c.bind(c,92405))},41500:(a,b,c)=>{"use strict";c.d(b,{RY:()=>i,WI:()=>e.WIv,XA:()=>e.XAi,Ze:()=>k,Zu:()=>e.Zus,_G:()=>e._GS,fN:()=>j,iB:()=>l,j4:()=>m,k3:()=>e.k3y,kp:()=>g,mL:()=>e.mLz,np:()=>h,rX:()=>e.rX,uv:()=>e.uv5});var d=c(469),e=c(41114);let f={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round"},g=a=>(0,d.jsxs)("svg",{...f,...a,children:[(0,d.jsx)("path",{d:"M8 6h12M8 12h12M8 18h12"}),(0,d.jsx)("circle",{cx:"3.6",cy:"6",r:"1.1",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"3.6",cy:"12",r:"1.1",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"3.6",cy:"18",r:"1.1",fill:"currentColor",stroke:"none"})]}),h=a=>(0,d.jsx)("svg",{...f,...a,children:(0,d.jsx)("path",{d:"M3 12h4l3 8 4-16 3 8h4"})}),i=a=>(0,d.jsxs)("svg",{...f,...a,children:[(0,d.jsx)("circle",{cx:"7.5",cy:"15.5",r:"4.5"}),(0,d.jsx)("path",{d:"M10.7 12.3 21 2M15 8l3 3M18 5l3 3"})]}),j=a=>(0,d.jsxs)("svg",{...f,...a,children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"}),(0,d.jsx)("path",{d:"M21 3v6h-6"})]}),k=a=>(0,d.jsxs)("svg",{...f,...a,children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,d.jsx)("path",{d:"M19.4 15a1.7 1.7 0 0 0 .34 1.87l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.7 1.7 0 0 0-1.87-.34 1.7 1.7 0 0 0-1.03 1.56V21a2 2 0 1 1-4 0v-.09a1.7 1.7 0 0 0-1.11-1.56 1.7 1.7 0 0 0-1.87.34l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.7 1.7 0 0 0 .34-1.87 1.7 1.7 0 0 0-1.56-1.03H3a2 2 0 1 1 0-4h.09a1.7 1.7 0 0 0 1.56-1.11 1.7 1.7 0 0 0-.34-1.87l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.7 1.7 0 0 0 1.87.34h.08A1.7 1.7 0 0 0 10.12 3V3a2 2 0 1 1 4 0v.09a1.7 1.7 0 0 0 1.03 1.56 1.7 1.7 0 0 0 1.87-.34l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.7 1.7 0 0 0-.34 1.87v.08a1.7 1.7 0 0 0 1.56 1.03H21a2 2 0 1 1 0 4h-.09a1.7 1.7 0 0 0-1.56 1.03Z"})]}),l=a=>(0,d.jsxs)("svg",{...f,...a,children:[(0,d.jsx)("path",{d:"M6 3h9l3 3v15H6z"}),(0,d.jsx)("path",{d:"M15 3v3h3"}),(0,d.jsx)("path",{d:"M9 12h6M9 16h4"})]}),m=a=>(0,d.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:510,height:236,viewBox:"0 0 510 236",fill:"none",...a,children:[(0,d.jsx)("path",{d:"M329.798 26H302.492V169.68H329.798V126.99H344.796L374.425 169.57H405.11L364.293 113.206L403.6 65.6621H371.909L343.689 101.616H329.798V26.0042V26Z",fill:"currentColor"}),(0,d.jsx)("path",{d:"M224.398 172C234.998 172 247.996 167.417 254.994 155.653H255.595V169.607H282.394V66.5446H255.595V80.2995H254.994C247.996 68.5362 234.994 63.7539 224.398 63.7539C194.799 63.7539 178 88.6717 178 117.776C178 146.879 194.799 172 224.398 172ZM205.802 117.776C205.802 101.031 213.201 85.2805 230.998 85.2805C248.796 85.2805 256.195 101.031 256.195 117.776C256.195 134.52 248.796 150.469 230.998 150.469C213.201 150.469 205.802 134.52 205.802 117.776Z",fill:"currentColor"}),(0,d.jsx)("path",{d:"M452.006 172C462.606 172 475.604 167.417 482.602 155.653H483.203V169.607H510.002V66.5446H483.203V80.2995H482.602C475.604 68.5362 462.602 63.7539 452.006 63.7539C422.407 63.7539 405.608 88.6717 405.608 117.776C405.608 146.879 422.407 172 452.006 172ZM433.409 117.776C433.409 101.031 440.809 85.2805 458.606 85.2805C476.403 85.2805 483.803 101.031 483.803 117.776C483.803 134.52 476.403 150.469 458.606 150.469C440.809 150.469 433.409 134.52 433.409 117.776Z",fill:"currentColor"}),(0,d.jsx)("path",{d:"M54 118H0C0 88.3759 24.3759 64 54 64C83.6241 64 108 88.3759 108 118H54Z",fill:"currentColor"}),(0,d.jsx)("path",{d:"M54 118H108C108 147.624 83.6241 172 54 172C24.3759 172 0 147.624 0 118H54Z",fill:"#00E0B8"}),(0,d.jsx)("path",{d:"M81 54C95.9117 54 108 41.9117 108 27C108 12.0883 95.9117 0 81 0C66.0883 0 54 12.0883 54 27C54 41.9117 66.0883 54 81 54Z",fill:"currentColor"}),(0,d.jsx)("path",{d:"M27 236C41.9117 236 54 223.912 54 209C54 194.088 41.9117 182 27 182C12.0883 182 0 194.088 0 209C0 223.912 12.0883 236 27 236Z",fill:"#00E0B8"})]})},42429:(a,b,c)=>{"use strict";c.d(b,{FindingsFlatTableView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call FindingsFlatTableView() from the server but FindingsFlatTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsFlatTableView.tsx","FindingsFlatTableView")},42951:(a,b,c)=>{"use strict";c.d(b,{FindingDetailView:()=>p,formatConfidence:()=>n});var d=c(469),e=c(72454),f=c(52095),g=c(99846),h=c(78666),i=c(27795),j=c(58671);function k({delivery:a,deployment:b,renderedAt:c}){let f=(0,j.dL)(a.state);return(0,d.jsx)("div",{className:"col-span-2",children:(0,d.jsx)(g.p,{label:"Deployment",children:(0,d.jsxs)("div",{className:"flex flex-col items-start gap-1",children:[(0,d.jsx)(e.Ex,{variant:f.badge,className:"h-6",children:f.label}),(0,d.jsx)("span",{className:"text-xs font-normal text-text-2",children:(0,j.Ad)(a,b,c)}),(0,d.jsx)("span",{className:"text-xs font-normal text-text-3",children:"Based on its latest detection."})]})})})}var l=c(22157),m=c(54640);function n(a){let b=a.toFixed(2);return a>=.9?{label:`High \xb7 ${b}`,tone:"text-ok-ink"}:a>=.7?{label:`Medium \xb7 ${b}`,tone:"text-sev-high-ink"}:{label:`Low \xb7 ${b}`,tone:"text-text-2"}}function o({confidence:a}){let{label:b,tone:c}=n(a);return(0,d.jsx)("span",{className:c,children:b})}function p({selection:a,footer:b,deployment:c,renderedAt:n}){let{finding:p,instance:r}=a,s=j.y7[p.category]??h.RY,t=(0,j.Jm)(p.category);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(e.Fm,{className:"flex-row items-center gap-2.5 border-b border-border p-4 pr-12",children:[(0,d.jsx)(e.Pt,{severity:p.severity}),(0,d.jsx)(e.qp,{className:"min-w-0 font-mono text-xs font-semibold text-text-3 wrap-break-word",children:r.id})]}),(0,d.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-4 pb-4",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:(0,e.cn)("flex size-10 shrink-0 items-center justify-center rounded-lg",(0,j.i9)(p.category)),children:(0,d.jsx)(s,{className:"size-5"})}),(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsx)("span",{className:"font-display text-base font-semibold",children:p.subtype}),(0,d.jsxs)("span",{className:"text-xs text-text-3",children:[t," \xb7 ",r.repo," \xb7 detected"," ",(0,f.K)(r.detectedAt,n)]})]})]}),(0,d.jsx)(q,{code:p.match.contextPrefix,snippet:p.match.maskedValue,file:(0,j.xE)(r)}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-x-3 gap-y-3.5",children:[(0,d.jsx)(g.p,{label:"Source tool",children:(0,d.jsx)(l.i,{provider:r.provider})}),(0,d.jsx)(g.p,{label:"Repository",children:(0,d.jsx)("span",{className:"font-mono text-xs wrap-break-word",children:r.repo})}),(0,d.jsx)(g.p,{label:"Location",children:(0,d.jsx)("span",{className:"font-mono text-xs wrap-break-word",children:(0,j.xE)(r)})}),(0,d.jsx)(g.p,{label:"Action taken",children:(0,d.jsx)(i.T,{action:r.action})}),(0,d.jsx)(g.p,{label:"Detected",children:(0,f.K)(r.detectedAt,n)}),(0,d.jsx)(g.p,{label:"Confidence",children:(0,d.jsx)(o,{confidence:r.confidence})}),void 0!==r.user&&(0,d.jsx)(g.p,{label:"User",children:(0,d.jsx)("span",{title:j.O,children:(0,d.jsx)(m.c,{user:r.user})})}),null!=c&&void 0!==r.delivery&&(0,d.jsx)(k,{delivery:r.delivery,deployment:c,renderedAt:n})]}),b]})]})}function q({code:a,snippet:b,file:c}){return(0,d.jsxs)("div",{children:[(0,d.jsx)(g.e,{children:"Matched content"}),(0,d.jsxs)("div",{className:"rounded-lg border border-border bg-ink p-3.5 font-mono text-xs leading-relaxed text-code-fg",children:[(0,d.jsx)("div",{className:"text-code-muted wrap-break-word",children:`// ${c}`}),(0,d.jsxs)("div",{children:[a,(0,d.jsx)("span",{className:"rounded bg-sev-critical/20 px-1 py-0.5 text-code-err wrap-break-word",children:`"${b}"`}),";"]})]})]})}},43233:(a,b,c)=>{"use strict";c.d(b,{BlockedWindowSelect:()=>h});var d=c(469),e=c(72454),f=c(97725),g=c(78666);function h({value:a,onChange:b}){let c=f.Jy.find(b=>b.value===a)?.label??a;return(0,d.jsxs)(e.rI,{children:[(0,d.jsx)(e.ty,{asChild:!0,children:(0,d.jsxs)(e.$n,{variant:"outline",tone:"neutral",size:"sm",children:[(0,d.jsx)(g.CT,{"aria-hidden":!0,focusable:!1,className:"size-3.5 text-text-3"}),c,(0,d.jsx)(g.D3,{"aria-hidden":!0,focusable:!1,className:"size-3.5 text-text-3"})]})}),(0,d.jsx)(e.SQ,{align:"end",className:"w-40",children:(0,d.jsx)(e.Hr,{value:a,onValueChange:a=>{b(a)},children:f.Jy.map(a=>(0,d.jsx)(e.Ht,{value:a.value,children:a.label},a.value))})})]})}},43525:(a,b,c)=>{"use strict";c.d(b,{ApproveExceptionDialog:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call ApproveExceptionDialog() from the server but ApproveExceptionDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/ApproveExceptionDialog.tsx","ApproveExceptionDialog")},44613:(a,b,c)=>{"use strict";c.d(b,{Y:()=>f});var d=c(469),e=c(72454);function f({value:a,descriptor:b,className:c}){if(null===a&&null===b)return(0,d.jsx)("span",{"data-slot":"scrubbed-value",className:(0,e.cn)("text-ui text-text-3",c),children:"[unavailable]"});let f=null===b?null:(0,d.jsxs)(e.Ex,{variant:"primary",children:["scrubbed:"," ",void 0===b.provider?b.category:`${b.category}/${b.provider}`]});return(0,d.jsxs)("span",{"data-slot":"scrubbed-value",className:(0,e.cn)("inline-flex flex-wrap items-center gap-2",c),children:[null!==a?(0,d.jsx)("code",{className:"break-all font-mono text-ui text-text",children:a}):(0,d.jsx)("code",{className:"break-all font-mono text-ui text-text-2",children:b?.maskedMatch}),f]})}},44662:(a,b,c)=>{"use strict";c.d(b,{MatcherModal:()=>q,RuleInspectorBody:()=>p});var d=c(469),e=c(72454),f=c(78666),g=c(62308);function h(a,b){return a.length>b?`${a.slice(0,b)}…`:a}function i({hidden:a}){return a<=0?null:(0,d.jsxs)("div",{className:"text-xs text-text-2",children:["+",String(a)," more not shown"]})}function j({children:a}){return(0,d.jsx)("span",{className:"inline-flex h-6 items-center rounded-md border border-border bg-surface-2 px-2 font-mono text-xs text-text-2",children:a})}function k({children:a,emphasis:b=!1}){return(0,d.jsx)("code",{className:"block break-all rounded-md border border-border bg-surface-2 px-2.5 font-mono text-xs "+(b?"py-2 text-text":"py-1.5 text-text-2"),children:a})}function l({matcher:a}){return"regex"===a.type?(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)(m,{label:"Pattern",children:(0,d.jsx)(k,{emphasis:!0,children:a.pattern})}),(0,d.jsx)(m,{label:"Flags",children:(0,d.jsx)("code",{className:"font-mono text-xs text-text-2",children:a.flags||"—"})}),"number"==typeof a.captureGroup&&(0,d.jsx)(m,{label:"Capture group",children:(0,d.jsx)("span",{className:"font-mono text-xs text-text-2",children:a.captureGroup})})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)(m,{label:"Keywords",children:(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.keywords.map((a,b)=>(0,d.jsx)(j,{children:a},`${a}-${String(b)}`))})}),(0,d.jsx)(m,{label:"Case sensitive",children:(0,d.jsx)("span",{className:"text-xs text-text-2",children:a.caseSensitive?"Yes":"No"})})]})}function m({label:a,children:b}){return(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("div",{className:"text-label font-semibold uppercase tracking-wider text-text-3",children:a}),b]})}function n({rule:a}){let b=a.requiresNearby,c=b?[...(b.categories??[]).map(a=>`category ${g.gh[a]||a}`),...(b.ruleIds??[]).map(a=>`rule ${a}`),...(b.labels??[]).map(a=>`"${a}"`)]:[];return a.appliesTo||a.postValidators?.length||b?(0,d.jsxs)("div",{className:"mt-4 flex flex-col gap-3",children:[a.appliesTo&&(0,d.jsx)(m,{label:"Only in files",children:(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.appliesTo.extensions.map((a,b)=>(0,d.jsx)(j,{children:a},`${a}-${String(b)}`))})}),a.postValidators&&a.postValidators.length>0&&(0,d.jsx)(m,{label:"Must also pass",children:(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.postValidators.map((a,b)=>{var c;let e="string"==typeof a?a:a.name,f="string"!=typeof a&&(c=a.config)?Object.entries(c).flatMap(([a,b])=>"string"==typeof b||"number"==typeof b||"boolean"==typeof b?[`${h(a,120)} ${h(String(b),120)}`]:[]).slice(0,6).join(" \xb7 "):"";return(0,d.jsx)(j,{children:f?`${e} \xb7 ${f}`:e},`${e}-${String(b)}`)})})}),b&&(0,d.jsxs)(m,{label:`Needs corroboration within ${String(b.windowChars)} chars`,children:[(0,d.jsx)("div",{className:"text-xs leading-snug text-text-2",children:c.length>1?`Any of: ${c.join(" \xb7 ")}`:c.join(" \xb7 ")}),void 0!==b.confidenceBoost&&(0,d.jsxs)("div",{className:"text-xs leading-snug text-text-3",children:["Corroborated matches gain ",String(b.confidenceBoost)," confidence"]})]})]}):null}function o({fixtures:a}){let b=a.slice(0,20);return(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[b.map((a,b)=>(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-flex h-5 items-center rounded-full px-2 text-label font-semibold "+(a.shouldMatch?"bg-ok-fill text-ok-ink":"bg-surface-3 text-text-2"),children:a.shouldMatch?"matches":"does not match"}),(0,d.jsx)("span",{className:"text-xs text-text-2",children:h(a.label,120)}),void 0!==a.filePath&&(0,d.jsx)("span",{className:"font-mono text-label text-text-3",children:h(a.filePath,120)})]}),(0,d.jsx)(k,{children:h(a.text,1e3)})]},`${h(a.label,120)}-${String(b)}`)),(0,d.jsx)(i,{hidden:a.length-b.length})]})}function p({rule:a,fixtures:b}){let c=g.rE[a.matcher.type];if(!c)return null;let e=c.icon,j=a.examples??[],p=b?.ruleId===a.id?b.cases:[];return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"mb-4 flex flex-wrap gap-2",children:[(0,d.jsx)(r,{icon:(0,d.jsx)(f.kp,{"aria-hidden":!0,focusable:!1,className:"size-3.5"}),children:g.gh[a.category]||a.category}),(0,d.jsx)(r,{icon:(0,d.jsx)(e,{"aria-hidden":!0,focusable:!1,className:"size-3.5"}),children:c.blurb})]}),(0,d.jsx)(l,{matcher:a.matcher}),(0,d.jsx)(n,{rule:a}),j.length>0&&(0,d.jsx)("div",{className:"mt-4",children:(0,d.jsx)(m,{label:"Catches values like",children:(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[j.slice(0,20).map((a,b)=>{let c=h(a,1e3);return(0,d.jsx)(k,{children:c},`${c}-${String(b)}`)}),(0,d.jsx)(i,{hidden:j.length-20})]})})}),p.length>0&&(0,d.jsx)("div",{className:"mt-4",children:(0,d.jsx)(m,{label:`Test cases (${String(p.length)})`,children:(0,d.jsx)(o,{fixtures:p})})})]})}function q({rule:a,fixtures:b,onClose:c}){let h=!!a,i=a?g.rE[a.matcher.type]:null,j=i?.icon;return(0,d.jsx)(e.lG,{open:h,onOpenChange:a=>{a||c()},children:(0,d.jsx)(e.Cf,{className:"max-w-3xl","aria-describedby":void 0,children:a&&i&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(e.L3,{className:"sr-only",children:["Rule \xb7 ",a.name]}),(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-3 border-b border-border px-5 py-4",children:[(0,d.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg",style:{background:i.fill,color:i.color},children:j&&(0,d.jsx)(j,{"aria-hidden":!0,focusable:!1,className:"size-4.5"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"font-display text-base font-semibold text-text",children:a.name}),(0,d.jsx)(e.Pt,{severity:a.severity})]}),(0,d.jsx)("div",{className:"mt-px font-mono text-xs text-text-3",children:a.id})]}),(0,d.jsx)("span",{className:"rounded-full px-2.5 py-1 text-xs font-semibold",style:{background:i.fill,color:i.color},children:i.label}),(0,d.jsx)(e.$n,{variant:"ghost",tone:"neutral",size:"icon",onClick:c,"aria-label":"Close",className:"size-8 text-text-3",children:(0,d.jsx)(f.uv,{"aria-hidden":!0,focusable:!1})})]}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-5",children:(0,d.jsx)(p,{rule:a,fixtures:b})})]})})})}function r({icon:a,children:b}){return(0,d.jsxs)("span",{className:"inline-flex h-6 items-center gap-1.5 rounded-md border border-border bg-surface px-2 text-label font-medium text-text-2",children:[a,b]})}},46526:(a,b,c)=>{"use strict";c.d(b,{Ex:()=>l,Zp:()=>m,Wu:()=>s,BT:()=>r,aR:()=>n,Lc:()=>p,AG:()=>o,ZB:()=>q,kI:()=>v,EA:()=>y,cH:()=>i,id:()=>j,cn:()=>h});var d=c(60331),e=c(44321),f=c(48747);let g=(0,c(30878).zu)({extend:{classGroups:{"font-size":[{text:["ui","label"]}]}}});function h(...a){return g((0,f.$)(a))}let i={neutral:{fill:"bg-surface-3",text:"text-text-2"},critical:{fill:"bg-sev-critical-fill",text:"text-sev-critical-ink"},high:{fill:"bg-sev-high-fill",text:"text-sev-high-ink"},medium:{fill:"bg-sev-medium-fill",text:"text-sev-medium-ink"},low:{fill:"bg-sev-low-fill",text:"text-sev-low-ink"},ok:{fill:"bg-ok-fill",text:"text-ok-ink"},teal:{fill:"bg-teal-fill",text:"text-teal-ink"},violet:{fill:"bg-violet-fill",text:"text-violet-ink"},primary:{fill:"bg-primary-tint",text:"text-primary"}},j=Object.fromEntries(Object.entries(i).map(([a,{fill:b,text:c}])=>[a,`${b} ${c}`])),k=(0,e.F)("inline-flex items-center gap-1.5 whitespace-nowrap rounded-full px-2 py-0.5 text-xs font-semibold",{variants:{variant:{default:j.neutral,outline:"border border-border text-text-2",critical:j.critical,high:j.high,medium:j.medium,low:j.low,success:j.ok,teal:j.teal,primary:j.primary}},defaultVariants:{variant:"default"}});function l({variant:a,className:b,children:c}){return(0,d.jsx)("span",{className:h(k({variant:a}),b),children:c})}function m({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card",className:h("rounded-xl border border-border bg-surface",a),...b})}function n({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:h("flex items-center gap-3 px-5 pt-5",a),...b})}function o({className:a,tone:b="neutral",...c}){return(0,d.jsx)("span",{"data-slot":"card-icon",className:h("flex size-7.5 shrink-0 items-center justify-center rounded-lg",(Object.hasOwn(j,b)?j[b]:void 0)??j.neutral,a),...c})}function p({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-heading",className:h("min-w-0",a),...b})}function q({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:h("text-sm font-semibold text-text",a),...b})}function r({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:h("text-xs text-text-3",a),...b})}function s({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:h("p-5",a),...b})}(0,e.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg font-medium transition-colors cursor-pointer disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{solid:"",outline:"border",ghost:"",link:""},tone:{primary:"",neutral:"",danger:""},size:{sm:"h-8 px-3 text-xs",md:"h-9 px-4 text-sm",icon:"size-9"}},compoundVariants:[{variant:"solid",tone:"primary",class:"bg-primary-solid text-text-inv hover:bg-primary-hover"},{variant:"solid",tone:"neutral",class:"bg-surface-3 text-text hover:bg-border-strong"},{variant:"solid",tone:"danger",class:"bg-sev-critical-ink text-on-accent hover:bg-sev-critical-hover"},{variant:"outline",tone:"primary",class:"border-primary text-primary hover:bg-primary-tint"},{variant:"outline",tone:"neutral",class:"border-border bg-surface text-text hover:bg-surface-2"},{variant:"outline",tone:"danger",class:"border-sev-critical text-sev-critical-ink hover:bg-sev-critical-fill"},{variant:"ghost",tone:"primary",class:"text-primary hover:bg-primary-tint"},{variant:"ghost",tone:"neutral",class:"text-text-2 hover:bg-surface-2 hover:text-text"},{variant:"ghost",tone:"danger",class:"text-sev-critical-ink hover:bg-sev-critical-fill"},{variant:"link",class:"h-auto gap-1 rounded-sm p-0 align-baseline font-semibold underline-offset-4 [&_svg]:size-3.5"},{variant:"link",tone:"primary",class:"text-primary hover:underline"},{variant:"link",tone:"neutral",class:"text-text-2 hover:text-text hover:underline"},{variant:"link",tone:"danger",class:"text-sev-critical-ink hover:underline"}],defaultVariants:{variant:"solid",tone:"neutral",size:"md"}});var t=c(77303);t.Root,t.Trigger,t.Close;var u=c(57139);function v({value:a,max:b,color:c,height:e=8,className:f,style:g,...i}){let j=Math.min(b,Math.max(0,a)),k=b>0?j/b*100:0;return(0,d.jsx)("span",{"data-slot":"meter",role:"meter","aria-valuenow":j,"aria-valuemin":0,"aria-valuemax":b,className:h("block flex-1 overflow-hidden rounded-full bg-surface-3",f),style:{height:e,...g},...i,children:(0,d.jsx)("span",{className:"block h-full rounded-full",style:{width:`${String(k)}%`,background:c}})})}u.Root,u.Trigger,u.Group,u.RadioGroup,(0,e.F)("flex cursor-pointer select-none items-center gap-2 rounded-md px-2.5 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",{variants:{tone:{default:"text-text-2 focus:bg-surface-2 focus:text-text",danger:"text-sev-critical-ink focus:bg-sev-critical-fill focus:text-sev-critical-ink"}},defaultVariants:{tone:"default"}})();var w=c(99205);w.Root,w.Trigger,w.Close,w.Anchor;var x=c(68078);function y({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"skeleton","aria-hidden":!0,className:h("animate-pulse rounded-md bg-surface-3",a),...b})}x.Root,x.Group,x.Value,t.Root,t.Trigger,t.Close,c(15283).Root},46649:(a,b,c)=>{"use strict";c.d(b,{ROTATE_CONFIRMATION:()=>e,RotateKeyDialog:()=>f});var d=c(37195);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call ROTATE_CONFIRMATION() from the server but ROTATE_CONFIRMATION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/RotateKeyDialog.tsx","ROTATE_CONFIRMATION"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call RotateKeyDialog() from the server but RotateKeyDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/RotateKeyDialog.tsx","RotateKeyDialog")},46807:(a,b,c)=>{"use strict";c.d(b,{cT:()=>i,nU:()=>j});var d=c(28615),e=c(95);let f="provider:";function g(a){return null!==a.providerId&&"provider"===a.kind}function h(a){let b=new Map;for(let c of a){if(!g(c))continue;let a=b.get(c.providerId);a?a.push(c):b.set(c.providerId,[c])}return b}function i(a){let b=h(a),c=[],i=new Set;for(let h of a){if(g(h)){let a=h.providerId,g=b.get(a)??[];if(g.length>=2){if(i.has(a))continue;i.add(a),c.push({type:"provider",group:function(a,b){let c=0,g=0,h=[],i=!1;for(let a of b){for(let b of(c+=a.endpointCount,g+=a.callSiteCount,a.transports))h.includes(b)||h.push(b);(0,e.EI)(a.transports)&&(i=!0)}let j=b.reduce((a,b)=>b.lastSeen>a.lastSeen?b:a);return{id:f+a,providerId:a,name:j.name,category:j.category,hosts:b,endpointCount:c,callSiteCount:g,transports:h,dataClasses:(0,d.hzO)(b.flatMap(a=>a.dataClasses)),lastSeen:j.lastSeen,insecure:i}}(a,g)});continue}}c.push({type:"destination",item:h})}return c}function j(a,b){let c=a.find(a=>a.id===b);return void 0!==c&&g(c)&&(h(a).get(c.providerId)??[]).length>=2?f+c.providerId:null}},48560:(a,b,c)=>{"use strict";c.d(b,{HarnessOverview:()=>l});var d=c(469),e=c(72454),f=c(91301),g=c(38833),h=c(63264),i=c(79871),j=c(8070);let k=["block","redact","warn"];function l({harness:a,events:b,onSelect:c,onSelectProject:l,renderedAt:o}){let p=(a.categories.find(a=>"mcp"===a.type)?.assets??[]).filter(a=>"unapproved"===a.trust).length,q=b?.items??[],r=b?.counts,s=r?r.block+r.redact+r.warn:0;return(0,d.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 border-b border-border px-5 py-4",children:[(0,d.jsx)(g.K,{id:a.id,size:38}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"font-display text-base font-semibold",children:a.label}),(0,d.jsxs)("div",{className:"mt-px text-xs text-text-3",children:[a.kind," \xb7 ",a.version]})]})]}),(0,d.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-4.5 overflow-y-auto p-5",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2.5 flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-label font-semibold uppercase tracking-wider text-text-3",children:"Recent blocks, redactions & warnings"}),r&&(0,d.jsx)("span",{className:"ml-auto inline-flex items-center gap-1.5",children:k.map(a=>{let b=r[a];return b>0?(0,d.jsxs)(e.Ex,{variant:i.iL[a].tone,children:[b," ",i.iL[a].label.toLowerCase()]},a):null})})]}),0===q.length?(0,d.jsxs)("div",{className:"flex items-center gap-2.5 rounded-lg border border-dashed border-border-strong px-3 py-3.5 text-text-3",children:[(0,d.jsx)(j.m,{name:"check-circle",className:"size-4 text-ok-ink"}),(0,d.jsx)("span",{className:"text-xs",children:"No blocks, redactions or warnings from this harness"})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[q.map(a=>{let b=i.iL[a.kind],{day:c,time:g}=function(a,b){let c=new Date(a).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return{day:(0,f.nt)(a,new Date(b)),time:c}}(a.occurredAt,o);return(0,d.jsxs)("div",{className:"flex items-start gap-2.5 rounded-lg border border-border bg-surface px-3 py-2.5",children:[(0,d.jsx)("span",{className:(0,e.cn)("grid size-7 shrink-0 place-items-center rounded-md",b.bg,b.fg),children:(0,d.jsx)(j.m,{name:b.icon,className:"size-3.5"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"text-xs font-semibold text-text",children:a.title}),(0,d.jsx)("div",{className:"mt-0.5 font-mono text-xs text-text-3",children:a.detail})]}),(0,d.jsxs)("div",{className:"flex shrink-0 flex-col items-end gap-1",children:[(0,d.jsx)(e.Ex,{variant:b.tone,children:b.label}),(0,d.jsxs)("span",{className:"font-mono text-xs text-text-3",children:[c," \xb7 ",g]})]})]},`${a.occurredAt}\xb7${a.title}`)}),s>q.length&&(0,d.jsxs)("div",{className:"pt-0.5 text-center text-xs text-text-3",children:["Showing ",q.length," of ",s," events"]})]})]}),(a.flagCount>0||p>0)&&(0,d.jsxs)("div",{className:"flex items-center gap-2.5 rounded-lg border border-border bg-sev-high-fill px-3 py-2.5",children:[(0,d.jsx)(j.m,{name:"flag",className:"size-4 shrink-0 text-sev-high-ink"}),(0,d.jsxs)("div",{className:"text-xs font-medium text-text",children:[a.flagCount>0&&`${String(a.flagCount)} item${1===a.flagCount?"":"s"} need review`,a.flagCount>0&&p>0&&" \xb7 ",p>0&&`${String(p)} unapproved MCP${1===p?"":"s"}`]})]}),a.projects.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-label font-semibold uppercase tracking-wider text-text-3",children:"Projects"}),(0,d.jsx)("span",{className:"text-xs font-semibold text-text-3",children:a.projects.length})]}),(0,d.jsx)("div",{className:"flex flex-col gap-1.5",children:a.projects.map(a=>(0,d.jsx)(m,{p:a,onSelect:l},a.id))})]}),0===a.categories.length&&0===a.projects.length&&(0,d.jsx)(h.EmptyState,{message:"No projects, skills, MCP servers, hooks or configuration for this harness"}),a.categories.map(a=>{let b=i.pA[a.type];return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-label font-semibold uppercase tracking-wider text-text-3",children:b.label}),(0,d.jsx)("span",{className:"text-xs font-semibold text-text-3",children:a.assets.length})]}),(0,d.jsx)("div",{className:"flex flex-col gap-1.5",children:a.assets.map(a=>(0,d.jsx)(n,{it:a,onSelect:c},a.id))})]},a.type)})]})]})}function m({p:a,onSelect:b}){let c=a.accessCounts;return(0,d.jsxs)("button",{type:"button",onClick:()=>{b(a.id)},className:"flex w-full items-center gap-2.5 rounded-lg border border-border bg-surface px-2.5 py-2 text-left cursor-pointer hover:bg-surface-2",children:[(0,d.jsx)("span",{className:"size-2.5 shrink-0 rounded-full",style:{background:(0,i.Cs)(a.language)}}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"truncate text-xs font-semibold text-text",children:a.name}),(0,d.jsx)(h.yk,{v:a.visibility})]}),(0,d.jsxs)("div",{className:"mt-0.5 flex items-center gap-1.5 truncate font-mono text-xs text-text-3",children:[(0,d.jsx)(j.m,{name:"repo",className:"size-3 shrink-0"}),a.repo]})]}),(0,d.jsx)(h.AJ,{counts:c}),c.blocked>0&&(0,d.jsxs)("span",{className:"text-xs font-semibold text-sev-critical-ink",children:[c.blocked," blocked"]}),a.findingsCount>0&&(0,d.jsx)(h.Kh,{flags:["findings"],mini:!0}),(0,d.jsx)(j.m,{name:"chevron-right",className:"size-4 shrink-0 text-text-3"})]})}function n({it:a,onSelect:b}){let c=(0,i.TW)(a.type),f="mcp"===a.type?a.trust:void 0;return(0,d.jsxs)("button",{type:"button",onClick:()=>{b(a)},className:"flex w-full items-center gap-2.5 rounded-lg border border-border bg-surface px-2.5 py-2 text-left cursor-pointer hover:bg-surface-2",children:[(0,d.jsx)("span",{className:(0,e.cn)("grid size-6.5 shrink-0 place-items-center rounded-md",c.bg,c.fg),children:(0,d.jsx)(j.m,{name:c.icon,className:"size-3.5"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"truncate font-mono text-xs font-semibold text-text",children:a.name}),(0,d.jsx)("div",{className:"truncate font-mono text-xs text-text-3 mt-0.5",children:a.sub})]}),f&&(0,d.jsx)(h.As,{value:f}),a.flags.length>0&&(0,d.jsx)(h.Kh,{flags:a.flags,mini:!0}),(0,d.jsx)(j.m,{name:"chevron-right",className:"size-4 shrink-0 text-text-3"})]})}},48743:(a,b,c)=>{"use strict";c.d(b,{UpdateStatusCardView:()=>h});var d=c(469),e=c(28615),f=c(72454),g=c(78666);function h({statuses:a,checkedAt:b,onCheckNow:c,onApply:h,applyingId:i,outcomes:j,restartRequired:k,busy:l}){return(0,d.jsxs)(f.Zp,{className:"shadow-sm",children:[(0,d.jsxs)(f.aR,{children:[(0,d.jsx)(f.AG,{tone:"primary",children:(0,d.jsx)(g.fN,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsxs)(f.Lc,{children:[(0,d.jsx)(f.ZB,{children:"Installed components"}),(0,d.jsx)(f.BT,{children:b?`Last checked ${b}`:"Not checked yet"})]}),(0,d.jsx)(f.$n,{variant:"outline",tone:"neutral",size:"sm",disabled:l,onClick:c,children:l?"Checking…":"Check now"})]}),(0,d.jsxs)(f.Wu,{children:[k&&(0,d.jsxs)("div",{className:"mb-3 rounded-lg border border-ok-fill bg-ok-fill px-3 py-2 text-xs font-medium text-text",children:["Update installed — restart ",(0,d.jsx)("code",{className:"font-mono",children:"aka dashboard"})," to load the new version."]}),(0,d.jsxs)("div",{className:"flex flex-col",children:[a.map((a,b)=>{let c=j[a.id],g=function(a){let b=a.marketplacePin;if(b&&!a.managedInstall){if(void 0!==b.range){let a=null!==b.npmLatest?` npm has v${b.npmLatest}.`:"";return`${b.marketplace} pins ${b.range}, which the host resolves within — not a single version this page can compare.${a}`}if(b.npmAhead&&null!==a.latest&&null!==b.npmLatest)return`${b.marketplace} pins v${a.latest} — npm has v${b.npmLatest}, which this machine cannot install until that marketplace moves.`}}(a),k=function(a){if(!a.managedInstall)return;let{ref:b,lead:c}=(0,e.Vcr)(a);return`Managed by your organization${b}. ${c}${e.R4K}`}(a),l=a.updateAvailable||a.managedInstall?.pending===!0;return(0,d.jsxs)("div",{className:(0,f.cn)("py-3",b>0&&"border-t border-hairline"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-text",children:a.name}),(0,d.jsxs)("div",{className:"mt-0.5 font-mono text-xs text-text-3",children:[a.installed??"—",a.latest&&l&&` → ${a.latest}`]}),void 0!==g&&(0,d.jsx)("div",{className:"mt-1 text-xs text-text-3","data-slot":"marketplace-pin-note",children:g}),void 0!==k&&(0,d.jsx)("div",{className:"mt-1 text-xs text-text-3","data-slot":"managed-install-note",children:k})]}),a.managedInstall?(0,d.jsx)(f.Ex,{variant:"default",children:"managed"}):null===a.installed||null===a.latest?(0,d.jsx)(f.Ex,{variant:"default",children:"unknown"}):a.updateAvailable?(0,d.jsx)(f.Ex,{variant:"high",children:"update available"}):(0,d.jsx)(f.Ex,{variant:"success",children:"up to date"}),a.updateAvailable&&(0,d.jsx)(f.$n,{variant:"solid",tone:"primary",size:"sm",disabled:null!==i,onClick:()=>{h(a.id)},children:i===a.id?"Updating…":"Update"})]}),c&&(0,d.jsxs)("div",{className:(0,f.cn)("mt-2 rounded-lg border p-2",c.ok?"border-ok-fill bg-ok-fill":"border-sev-critical-fill bg-sev-critical-fill"),children:[(0,d.jsx)("div",{className:"text-xs font-semibold text-text",children:c.ok?"Updated.":"Update failed"}),c.output&&(0,d.jsx)("pre",{className:"mt-1 max-h-40 overflow-auto whitespace-pre-wrap font-mono text-label text-text-2",children:c.output})]})]},a.id)}),0===a.length&&(0,d.jsx)("div",{className:"py-6 text-center text-xs text-text-3",children:"Nothing installed to report on yet."})]})]})]})}},49946:(a,b,c)=>{"use strict";c.d(b,{NeedsReviewListView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call NeedsReviewListView() from the server but NeedsReviewListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/data-shares/NeedsReviewListView.tsx","NeedsReviewListView")},50823:(a,b,c)=>{"use strict";c.d(b,{BlockedWindowSelect:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call BlockedWindowSelect() from the server but BlockedWindowSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/BlockedWindowSelect.tsx","BlockedWindowSelect")},50922:(a,b,c)=>{"use strict";c.d(b,{VaultReuseView:()=>h});var d=c(469),e=c(72454),f=c(44613);function g(a){return a.occurrences>1||a.sightings.length>1}function h({entries:a,hasNextPage:b=!1,hasPreviousPage:c=!1,onNextPage:h,onPreviousPage:i,loadingNextPage:j=!1,pageStart:k,total:l}){let m=a.filter(g).sort((a,b)=>b.occurrences-a.occurrences),n=0===m.length;return!n||c||b?(0,d.jsxs)("div",{className:"overflow-x-auto rounded-xl border border-border bg-surface p-4",children:[(0,d.jsx)("p",{className:"mb-3 text-xs text-text-3",children:"Values detected more than once on this machine, most-reused first."}),n?(0,d.jsx)("div",{className:"py-10 text-center text-sm text-text-3",children:"These rows moved while you were reading. Step back to see the rest."}):(0,d.jsxs)(e.XI,{children:[(0,d.jsx)(e.A0,{children:(0,d.jsxs)(e.Hj,{children:[(0,d.jsx)(e.nd,{children:"Value"}),(0,d.jsx)(e.nd,{children:"Occurrences"}),(0,d.jsx)(e.nd,{children:"Seen in"})]})}),(0,d.jsx)(e.BF,{children:m.map(a=>{let b=[...new Set(a.sightings.map(a=>a.location))];return(0,d.jsxs)(e.Hj,{children:[(0,d.jsx)(e.nA,{children:(0,d.jsx)(f.Y,{value:null,descriptor:a})}),(0,d.jsx)(e.nA,{className:"text-xs text-text-2",children:String(a.occurrences)}),(0,d.jsx)(e.nA,{children:(0,d.jsx)("ul",{className:"space-y-0.5 pl-3",children:b.map(a=>(0,d.jsx)("li",{className:"font-mono text-xs text-text-2 list-disc py-1",children:a},a))})})]},a.pointerId)})})]}),h?(0,d.jsxs)(e.dK,{children:[(0,d.jsx)(e.Eb,{disabled:!c||j,onClick:i}),(0,d.jsx)(e.D2,{children:void 0===l||void 0===k?`${String(m.length)} shown`:n?`0 of ${String(l)} reused values`:`${String(k)}–${String(k+m.length-1)} of ${String(l)} reused values`}),(0,d.jsx)(e.WA,{disabled:!b||j,loading:j,onClick:h})]}):b&&(0,d.jsxs)("p",{className:"mt-4 text-center text-xs text-text-3",children:["Showing the first ",m.length," reused values — the rest are in the store."]})]}):(0,d.jsx)("div",{className:"rounded-xl border border-border bg-surface py-10 text-center text-sm text-text-3",children:"No reused values detected on this machine."})}},50985:(a,b,c)=>{Promise.resolve().then(c.bind(c,27250))},52050:(a,b,c)=>{"use strict";c.d(b,{VaultInventoryView:()=>j});var d=c(469),e=c(72454),f=c(52095),g=c(44613),h=c(38843);let i={occurrences:"min-w-[120px] whitespace-nowrap",firstSeen:"min-w-[110px] whitespace-nowrap",lastSeen:"min-w-[110px] whitespace-nowrap",grant:"min-w-[140px] whitespace-nowrap",action:"min-w-[120px] whitespace-nowrap"};function j({entries:a,onReveal:b,onRevoke:c,hasNextPage:f=!1,hasPreviousPage:g=!1,onNextPage:h,onPreviousPage:j,loadingNextPage:l=!1,pageStart:m,total:n,renderedAt:o}){let p=0===a.length;if(p&&!g&&!f)return(0,d.jsx)("div",{className:"rounded-xl border border-border bg-surface py-10 text-center text-sm text-text-3",children:"Nothing vaulted yet — values land here when a redact policy fires with vault consent granted."});let q=void 0!==b||void 0!==c;return(0,d.jsxs)("div",{className:"overflow-x-auto rounded-xl border border-border bg-surface p-4",children:[p?(0,d.jsx)("div",{className:"py-10 text-center text-sm text-text-3",children:"These rows moved while you were reading. Step back to see the rest."}):(0,d.jsxs)(e.XI,{children:[(0,d.jsx)(e.A0,{children:(0,d.jsxs)(e.Hj,{children:[(0,d.jsx)(e.nd,{children:"Value"}),(0,d.jsx)(e.nd,{className:i.occurrences,children:"Occurrences"}),(0,d.jsx)(e.nd,{className:i.firstSeen,children:"First seen"}),(0,d.jsx)(e.nd,{className:i.lastSeen,children:"Last seen"}),(0,d.jsx)(e.nd,{className:i.grant,children:"Grant"}),q?(0,d.jsx)(e.nd,{className:i.action,children:"Actions"}):null]})}),(0,d.jsx)(e.BF,{children:a.map(a=>(0,d.jsx)(k,{entry:a,hasActions:q,onReveal:b,onRevoke:c,renderedAt:o},a.pointerId))})]}),h?(0,d.jsxs)(e.dK,{children:[(0,d.jsx)(e.Eb,{disabled:!g||l,onClick:j}),(0,d.jsx)(e.D2,{children:void 0===n||void 0===m?`${String(a.length)} shown`:p?`0 of ${String(n)} values`:`${String(m)}–${String(m+a.length-1)} of ${String(n)} values`}),(0,d.jsx)(e.WA,{disabled:!f||l,loading:l,onClick:h})]}):f&&(0,d.jsxs)("p",{className:"mt-4 text-center text-xs text-text-3",children:["Showing the first ",a.length," values — the rest are in the store."]})]})}function k({entry:a,hasActions:b,onReveal:c,onRevoke:j,renderedAt:k}){let l=a.revealGrantId;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(e.Hj,{children:[(0,d.jsx)(e.nA,{children:(0,d.jsx)(g.Y,{value:null,descriptor:a})}),(0,d.jsx)(e.nA,{className:i.occurrences,children:(0,d.jsx)("span",{className:"text-xs text-text-2",children:String(a.occurrences)})}),(0,d.jsx)(e.nA,{className:i.firstSeen,children:(0,d.jsx)("span",{className:"text-xs text-text-2",children:(0,f.K)(a.firstSeen,k)})}),(0,d.jsx)(e.nA,{className:i.lastSeen,children:(0,d.jsx)("span",{className:"text-xs text-text-2",children:(0,f.K)(a.lastSeen,k)})}),(0,d.jsx)(e.nA,{className:i.grant,children:null===l?null:(0,d.jsx)(h.$$,{})}),b?(0,d.jsx)(e.nA,{className:i.action,children:(0,d.jsxs)("span",{className:"inline-flex items-center gap-2",children:[void 0===c?null:(0,d.jsx)(e.$n,{variant:"outline",tone:"neutral",size:"sm",onClick:()=>{c(a.pointerId)},children:"Reveal"}),null!==l&&void 0!==j?(0,d.jsx)(e.$n,{variant:"ghost",tone:"danger",size:"sm",onClick:()=>{j(l)},children:"Revoke grant"}):null]})}):null]}),a.sightings.length>0?(0,d.jsx)(e.Hj,{children:(0,d.jsx)(e.nA,{colSpan:b?6:5,className:"py-2",children:(0,d.jsxs)("details",{children:[(0,d.jsxs)("summary",{className:"cursor-pointer text-xs font-medium text-text-2",children:["Written to ",String(a.sightings.length)," ",1===a.sightings.length?"location":"locations"," — anyone who can read them sees the correlation"]}),(0,d.jsx)("ul",{className:"mt-2 flex flex-col gap-2",children:a.sightings.map(a=>(0,d.jsxs)("li",{className:"grid grid-cols-[1fr_110px_100px] items-center gap-2 text-xs text-text-2",children:[(0,d.jsx)("code",{className:"break-all font-mono",children:a.location}),(0,d.jsx)("div",{children:(0,d.jsx)(h.Ec,{kind:a.kind})}),(0,d.jsx)("span",{className:"text-text-3",children:(0,f.K)(a.lastSeen,k)})]},`${a.kind}:${a.location}`))})]})})}):null]})}},52095:(a,b,c)=>{"use strict";c.d(b,{K:()=>f,g:()=>h});let d=new Intl.RelativeTimeFormat("en",{numeric:"auto"}),e=[["year",31536e3],["month",2592e3],["week",604800],["day",86400],["hour",3600],["minute",60]];function f(a,b){if(!a)return"";let c=Date.parse(a);if(Number.isNaN(c))return"";let f=(c-b)/1e3,g=Math.abs(f);if(g<45)return"just now";for(let[a,b]of e)if(g>=b)return d.format(Math.round(f/b),a);return"just now"}let g={year:"y",month:"mo",week:"w",day:"d",hour:"h",minute:"m"};function h(a,b){if(!a)return"";let c=Date.parse(a);if(Number.isNaN(c))return"";let d=Math.abs((c-b)/1e3);if(d<45)return"now";for(let[a,b]of e)if(d>=b)return`${String(Math.floor(d/b))}${g[a]??""}`;return"now"}},52575:(a,b,c)=>{"use strict";c.d(b,{NavigationTransitionProvider:()=>h,n:()=>i,p:()=>j});var d=c(469),e=c(71343),f=c(17200);let g=(0,f.createContext)(null);function h({children:a}){let b=(0,e.useRouter)(),[c,h]=(0,f.useTransition)(),i=(0,f.useCallback)(a=>{h(()=>{b.push(a)})},[b]),j=(0,f.useCallback)(a=>{h(()=>{b.replace(a)})},[b]),k=(0,f.useMemo)(()=>({isPending:c,push:i,replace:j}),[c,i,j]);return(0,d.jsx)(g.Provider,{value:k,children:a})}function i(){let a=(0,f.useContext)(g);if(null===a)throw Error("useNavigationTransition must be used within NavigationTransitionProvider");return a}function j(){let{isPending:a}=i(),[b,c]=(0,f.useState)(!1);return a&&b?(0,d.jsx)("div",{role:"progressbar","aria-label":"Loading",className:"pointer-events-none absolute inset-x-0 top-0 z-50 h-0.5 overflow-hidden",children:(0,d.jsx)("div",{className:"h-full w-full origin-left animate-nav-progress bg-primary-solid"})}):null}},52801:(a,b,c)=>{"use strict";c.d(b,{AppShell:()=>m});var d=c(469),e=c(18457),f=c(72454),g=c(74056),h=c.n(g),i=c(71343),j=c(41500),k=c(52575);let l=[{label:"Security",icon:j.Zu,href:"/security"},{label:"Findings",icon:j.rX,href:"/findings"},{label:"Inventory",icon:j.mL,href:"/inventory"},{label:"Data Shares",icon:j._G,href:"/data-shares"},{label:"Activity",icon:j.np,href:"/activity"},{label:"Detections",icon:j.kp,href:"/detections"},{label:"Policies",icon:j.iB,href:"/policies"},{label:"Exceptions",icon:j.RY,href:"/exceptions"},{label:"Vault",icon:j.XA,href:"/vault"},{label:"Scan",icon:j.WI,href:"/scan"},{label:"Updates",icon:j.fN,href:"/updates"},{label:"Settings",icon:j.Ze,href:"/settings"}];function m({children:a}){let b=(0,i.usePathname)();return(0,d.jsxs)("div",{className:"flex h-screen overflow-hidden bg-canvas",children:[(0,d.jsx)(n,{pathname:b}),(0,d.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col",children:[(0,d.jsx)(k.p,{}),(0,d.jsx)(p,{}),(0,d.jsx)("main",{className:"flex-1 overflow-y-auto",children:a})]})]})}function n({pathname:a}){return(0,d.jsxs)("aside",{className:"flex w-62 flex-col border-r border-border bg-surface shrink-0",children:[(0,d.jsx)("div",{className:"flex h-16 items-center border-b border-hairline px-5",children:(0,d.jsx)(h(),{href:"/security","aria-label":"AKA — go to Security",className:"rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70",children:(0,d.jsx)(j.j4,{"aria-hidden":!0,className:"h-8 w-auto text-mark-fg"})})}),(0,d.jsx)("nav",{className:"flex flex-1 flex-col gap-0.5 overflow-y-auto px-3 py-3.5",children:l.map(b=>(0,d.jsx)(o,{item:b,active:void 0!==b.href&&(a===b.href||a.startsWith(`${b.href}/`))},b.label))})]})}function o({item:a,active:b}){let c=a.icon,e=(0,f.cn)("flex w-full items-center gap-3 rounded-lg px-3 h-10 text-left text-sm group font-medium transition-colors cursor-pointer",b?(0,f.cn)(f.id.primary,"font-semibold"):"text-text-2 hover:bg-surface-2 hover:text-text"),g=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(c,{"aria-hidden":!0,focusable:!1,className:(0,f.cn)("size-4 shrink-0",b?"text-primary":"text-text-3 group-hover:text-text-2")}),(0,d.jsx)("span",{className:"flex-1",children:a.label})]});return a.href?(0,d.jsx)(h(),{href:a.href,"aria-current":b?"page":void 0,className:e,children:g}):(0,d.jsx)("button",{type:"button","aria-current":b?"page":void 0,className:e,children:g})}function p(){return(0,d.jsx)("header",{className:"flex items-center gap-4 border-b border-border bg-surface px-6 h-16",children:(0,d.jsx)("div",{className:"ml-auto flex items-center gap-2",children:(0,d.jsx)(e.ThemeToggle,{})})})}},54382:(a,b,c)=>{"use strict";c.d(b,{AssetDetail:()=>k});var d=c(469),e=c(72454),f=c(17200),g=c(63264),h=c(79871),i=c(8070);let j={skill:"Skill",mcp:"MCP server",hook:"Hook",config:"Configuration file"};function k({asset:a,onTrust:b,onClose:c,trustRefusal:k}){let m="mcp"===a.type,n=a.trust,o=(0,h.TW)(a.type),p=j[a.type],q=(0,f.useId)();return(0,d.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 border-b border-border px-5 py-3.5",children:[(0,d.jsx)("span",{className:(0,e.cn)("grid size-8.5 shrink-0 place-items-center rounded-lg",o.bg,o.fg),children:(0,d.jsx)(i.m,{name:o.icon,className:"size-4.5"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"truncate font-mono text-sm font-semibold text-text",title:a.name,children:a.name}),(0,d.jsx)("div",{className:"mt-px text-xs text-text-3",children:p})]}),c&&(0,d.jsx)(e.$n,{variant:"ghost",size:"icon","aria-label":"Back to harness",title:"Back to harness",onClick:c,children:(0,d.jsx)(i.m,{name:"x"})})]}),(0,d.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-4.5 overflow-y-auto p-5",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[m&&n&&(0,d.jsx)(g.As,{value:n}),(0,d.jsx)(g.Kh,{flags:a.flags})]}),a.description&&(0,d.jsx)("div",{className:"text-sm leading-relaxed text-text-2",children:a.description}),m&&n&&(0,d.jsx)(g.wn,{label:"Trust classification",children:(0,d.jsx)(g.AC,{order:h.yx,meta:h.ZY,value:n,onChange:b,accentOf:a=>a.iconBg,refusal:void 0===k?void 0:{id:q,reason:k}})}),a.finding&&(0,d.jsx)(g.wn,{label:"Related finding",children:(0,d.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2.5 rounded-lg border border-border bg-sev-critical-fill px-3 py-2.5 text-left",children:[(0,d.jsx)(i.m,{name:"alert",className:"size-4 shrink-0 text-sev-critical-ink"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"text-xs font-semibold text-text",children:a.finding.title}),a.finding.note&&(0,d.jsx)("div",{className:"mt-0.5 font-mono text-xs text-text-3",children:a.finding.note})]}),(0,d.jsx)(i.m,{name:"chevron-right",className:"size-4 shrink-0 text-text-3"})]})}),(0,d.jsx)(g.wn,{label:"Details",children:(0,d.jsx)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-3.5",children:Object.entries(a.meta).map(([a,b])=>(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1 text-label font-semibold uppercase tracking-wider text-text-3",children:a}),(0,d.jsx)("div",{className:"wrap-break-word font-mono text-xs font-medium",children:String(b)})]},a))})}),m&&a.tools&&(0,d.jsx)(l,{tools:a.tools,blocked:"unapproved"===n}),(0,d.jsx)("div",{className:"flex flex-wrap gap-2",children:function(a,b){let c;if("skill"===a.type){let b="string"==typeof a.meta.Latest?a.meta.Latest:"";c=a.flags.includes("update")?[{key:"u",primary:!0,icon:"arrow-up",label:`Update to ${b}`.trim()},{key:"c",icon:"book",label:"Changelog"}]:[{key:"r",icon:"refresh",label:"Check for updates"}]}else c="mcp"===a.type?"unapproved"===b?[{key:"a",primary:!0,icon:"shield-check",label:"Approve & allow-list"},{key:"b",icon:"slash-circle",label:"Block server"}]:[{key:"v",icon:"eye",label:"View tools"},{key:"r",icon:"refresh",label:"Re-verify"}]:"hook"===a.type?a.flags.includes("conflict")?[{key:"r",primary:!0,icon:"branch",label:"Resolve run order"},{key:"d",icon:"eye-off",label:"Disable hook"}]:a.flags.includes("unknown")?[{key:"v",primary:!0,icon:"shield-check",label:"Review & verify"},{key:"b",icon:"slash-circle",label:"Block"}]:[{key:"v",icon:"eye",label:"View script"}]:a.flags.includes("risk")?[{key:"r",primary:!0,icon:"shield-check",label:"Review change"},{key:"d",icon:"swap",label:"View diff"}]:a.flags.length?[{key:"d",icon:"swap",label:"View diff"},{key:"m",icon:"check",label:"Mark reviewed"}]:[{key:"o",icon:"eye",label:"Open file"}];return c.map(a=>(0,d.jsxs)(e.$n,{variant:a.primary?"solid":"outline",tone:a.primary?"primary":"neutral",size:"sm",children:[(0,d.jsx)(i.m,{name:a.icon,className:"size-3.5"}),a.label]},a.key))}(a,n)})]})]})}function l({tools:a,blocked:b}){let[c,g]=(0,f.useState)(!1),h=c?a:a.slice(0,4);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-label font-semibold uppercase tracking-wider text-text-3",children:"Exposed tools"}),(0,d.jsx)("span",{className:"text-xs font-semibold text-text-3",children:a.length}),b&&(0,d.jsxs)("span",{className:"ml-auto inline-flex items-center gap-1.5 text-xs font-semibold text-sev-critical-ink",children:[(0,d.jsx)(i.m,{name:"slash-circle",className:"size-3"})," Calls blocked"]})]}),(0,d.jsx)("div",{className:"flex flex-col gap-1.5",children:h.map(a=>(0,d.jsxs)("div",{className:(0,e.cn)("flex items-start gap-2.5 rounded-lg border px-3 py-2.5",a.risk?"border-sev-high-fill bg-sev-high-fill":"border-border bg-surface",b&&"opacity-70"),children:[(0,d.jsx)("span",{className:(0,e.cn)("mt-px grid size-5.5 shrink-0 place-items-center rounded-md",a.risk?"bg-sev-high-ink text-on-accent":a.write?"bg-surface-2 text-text-2":"bg-teal-fill text-teal-ink"),children:(0,d.jsx)(i.m,{name:a.risk?"alert":a.write?"edit":"eye",className:"size-3"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-baseline gap-1.5",children:[(0,d.jsx)("span",{className:"font-mono text-xs font-semibold text-text",children:a.name}),(0,d.jsx)("span",{className:"font-mono text-xs text-text-3",children:a.signature}),a.write&&!a.risk&&(0,d.jsx)("span",{className:"rounded-full bg-surface-2 px-2 py-px text-xs font-semibold text-text-2",children:"write"})]}),(0,d.jsx)("div",{className:"mt-0.5 text-xs leading-relaxed text-text-2",children:a.description}),a.risk&&(0,d.jsxs)("div",{className:"mt-1 flex items-center gap-1.5 text-xs font-semibold text-sev-high-ink",children:[(0,d.jsx)(i.m,{name:"alert",className:"size-3"})," ",a.risk]})]})]},a.name))}),a.length>4&&(0,d.jsxs)(e.$n,{variant:"ghost",tone:"primary",size:"sm",className:"mt-2 px-0",onClick:()=>{g(!c)},children:[(0,d.jsx)(i.m,{name:"chevron-down",className:(0,e.cn)("size-3.5 transition-transform",c&&"rotate-180")}),c?"Show fewer":`Show all ${String(a.length)} tools`]})]})}},54604:(a,b,c)=>{"use strict";c.d(b,{FindingTypesListView:()=>k});var d=c(469),e=c(72454),f=c(78666),g=c(33988),h=c(58671);function i({counts:a,selected:b,onChange:c}){return(0,d.jsx)("div",{className:"mt-2.5 flex flex-wrap gap-1.5",children:h.oC.map(f=>{let g=b.includes(f);return(0,d.jsxs)("button",{type:"button","aria-pressed":g,onClick:()=>{c(g?b.filter(a=>a!==f):[...b,f])},className:(0,e.cn)("inline-flex h-7 cursor-pointer items-center gap-1.5 rounded-full border px-2.5 text-xs font-semibold capitalize",g?"border-primary bg-primary-tint text-primary":"border-border bg-surface text-text-2"),children:[(0,d.jsx)("span",{className:(0,e.cn)("size-1.5 rounded-full",e.t0[f])}),f,(0,d.jsx)("span",{className:"text-label font-bold opacity-70",children:a.get(f)??0})]},f)})})}function j({type:a,sel:b,onClick:c}){let g=h.y7[a.category]??f.RY;return(0,d.jsx)("button",{type:"button",onClick:c,"aria-current":b?"true":void 0,className:(0,e.cn)("w-full cursor-pointer rounded-lg px-3 py-2.5 text-left transition-colors",b?"bg-primary-tint":"hover:bg-surface-2"),children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[(0,d.jsx)("span",{className:(0,e.cn)("flex size-7 shrink-0 items-center justify-center rounded-lg",(0,h.i9)(a.category)),children:(0,d.jsx)(g,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[(0,d.jsx)("span",{className:"truncate text-sm font-semibold text-text",title:a.subtype,children:a.subtype}),(0,d.jsx)("span",{className:"truncate text-xs text-text-3",children:(0,h.Jm)(a.category)})]}),(0,d.jsx)("span",{className:"shrink-0 text-xs font-semibold tabular-nums text-text-2",children:a.instanceCount})]})})}function k({types:a,activeId:b,onSelect:c,query:f,onQueryChange:h,severityCounts:k,selectedSeverities:l,onSeverityChange:m,hasNextPage:n=!1,hasPreviousPage:o=!1,onNextPage:p,onPreviousPage:q,loadingNextPage:r=!1,pageStart:s,total:t,emptyState:u}){return(0,d.jsxs)(e.Zp,{className:"flex h-full flex-col overflow-hidden shadow-sm",children:[(0,d.jsxs)("div",{className:"border-b border-border p-3",children:[(0,d.jsx)(g.SearchField,{value:f,onValueChange:h,label:"Search finding types",placeholder:"Search types…",clearLabel:"Clear type search",surface:"card",className:"h-9"}),(0,d.jsx)(i,{counts:k,selected:l,onChange:m})]}),(0,d.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto p-3",children:0===a.length?(0,d.jsx)("div",{className:"grid flex-1 place-items-center p-6 text-center text-xs text-text-3",children:u??"No types match these filters."}):a.map(a=>(0,d.jsx)(j,{type:a,sel:a.id===b,onClick:()=>{c(a)}},a.id))}),p&&(o||n||a.length>0)&&(0,d.jsxs)(e.dK,{children:[(0,d.jsx)(e.Eb,{disabled:!o||r,onClick:q}),(0,d.jsx)(e.D2,{children:0===a.length||void 0===t||void 0===s?`${String(a.length)} shown`:`${String(s)}–${String(s+a.length-1)} of ${String(t)} types`}),(0,d.jsx)(e.WA,{disabled:!n||r,loading:r,onClick:p})]})]})}},54639:(a,b,c)=>{"use strict";c.d(b,{AssetDetail:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call AssetDetail() from the server but AssetDetail is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/AssetDetail.tsx","AssetDetail")},54640:(a,b,c)=>{"use strict";c.d(b,{c:()=>e});var d=c(469);function e({user:a}){return a?(0,d.jsx)("span",{className:"text-xs text-text-2 wrap-anywhere",title:a.name,children:a.name}):(0,d.jsx)("span",{className:"text-text-3",children:"—"})}},54778:(a,b,c)=>{"use strict";c.d(b,{SearchField:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call SearchField() from the server but SearchField is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/SearchField.tsx","SearchField")},55365:(a,b,c)=>{"use strict";c.d(b,{FindingLocationsListView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call FindingLocationsListView() from the server but FindingLocationsListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingLocationsListView.tsx","FindingLocationsListView")},55908:(a,b,c)=>{"use strict";c.d(b,{P:()=>g,w:()=>f});var d=c(469),e=c(72454);function f(a,b,c){return{"aria-disabled":!0,"aria-describedby":a,title:b,className:(0,e.cn)("cursor-not-allowed opacity-50",c)}}function g({id:a,dataSlot:b,className:c,children:f}){return(0,d.jsx)("p",{id:a,className:(0,e.cn)("text-xs text-text-3",c),"data-slot":b,children:f})}},57178:(a,b,c)=>{"use strict";c.d(b,{NeedsReviewStripView:()=>f});var d=c(469),e=c(78666);function f({items:a,scope:b,onOpen:c}){return 0===a.length?null:(0,d.jsx)("div",{className:"mb-3.5 overflow-hidden rounded-xl border border-sev-critical-fill bg-sev-critical-fill",children:(0,d.jsxs)("button",{type:"button",onClick:c,"aria-haspopup":"dialog",className:"flex w-full cursor-pointer items-center gap-2.5 px-3.5 py-3 text-left",children:[(0,d.jsx)("span",{className:"grid size-6.5 shrink-0 place-items-center rounded-md bg-sev-critical-ink text-on-accent",children:(0,d.jsx)(e._0,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsx)("span",{className:"text-sm font-semibold text-text",children:"Needs review"}),(0,d.jsx)("span",{className:"rounded-full bg-sev-critical-ink px-2 text-xs py-0.5 font-bold text-on-accent",children:a.length}),b&&(0,d.jsx)("span",{className:"shrink-0 whitespace-nowrap text-xs font-semibold text-text-2",children:b}),(0,d.jsx)("span",{className:"text-xs text-text-2",children:"Raw IPs, plaintext transfers & unverified domains"}),(0,d.jsx)(e.vK,{"aria-hidden":!0,focusable:!1,className:"ml-auto size-4.5 text-text-3"})]})})}},57363:(a,b,c)=>{"use strict";c.d(b,{AppShell:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/web-ui/app/components/AppShell.tsx","AppShell")},58671:(a,b,c)=>{"use strict";c.d(b,{y7:()=>m,VN:()=>h,gs:()=>g,qW:()=>B,V_:()=>w,Ec:()=>y,pM:()=>v,B5:()=>t,oC:()=>i,O:()=>s,C$:()=>q,Jm:()=>o,i9:()=>n,Ad:()=>A,dL:()=>x,Dx:()=>u,xE:()=>r});var d=c(72454),e=c(52095),f=c(78666);let g=["grouped","flat","files"],h="grouped",i=["critical","high","medium","low"],j={secret:"Secret",pii:"PII",source_code:"Source code",code_flaw:"Code flaw",external_share:"External share",mcp_server:"MCP server",customer_data:"Customer data",financial:"Financial",phi:"PHI",custom:"Custom"},k={secret:f.RY,pii:f.ny,source_code:f.lo,code_flaw:f._0,external_share:f._G,mcp_server:f.RR,customer_data:f.bN,financial:f.bN,phi:f.ny,custom:f.RY},l={secret:"critical",pii:"low",source_code:"violet",code_flaw:"high",external_share:"teal",mcp_server:"high",customer_data:"high",financial:"high",phi:"low",custom:"neutral"},m=Object.assign(Object.create(null),k),n=a=>{let b=Object.hasOwn(l,a)?l[a]:void 0;return d.id[b??"neutral"]},o=a=>(Object.hasOwn(j,a)?j[a]:void 0)??a,p={blocked:{label:"Blocked",icon:f.pD,className:d.id.critical},redacted:{label:"Redacted",icon:f.jZ,className:d.id.primary},warned:{label:"Warned",icon:f._0,className:d.id.high},allowed:{label:"Allowed",icon:f.Sr,className:d.id.ok},monitored:{label:"Monitored",icon:f.bM,className:d.id.neutral},quarantined:{label:"Quarantined",icon:f.lm,className:d.id.critical}},q=a=>(Object.hasOwn(p,a)?p[a]:void 0)??{label:a,icon:f.RY,className:d.id.neutral};function r(a){return a.file?a.file:a.toolName?`via ${a.toolName}`:"—"}let s="Ingested by — the session user, or the owner of the api key that posted the event. An org-level ingest key names the key’s owner, not whoever ran the job.",t={open:{label:"Open",badge:"high"},handled:{label:"Handled",badge:"primary"},resolved:{label:"Resolved",badge:"success"},dismissed:{label:"Dismissed",badge:"default"}},u=a=>(Object.hasOwn(t,a)?t[a]:void 0)??{label:a,badge:"default"},v=Object.keys(t),w={sent:{label:"Sent",badge:"success"},queued:{label:"Queued",badge:"primary"},not_sent:{label:"Not sent",badge:"high"},never_offered:{label:"Never offered",badge:"default"},local_scan:{label:"Local scan",badge:"default"}},x=a=>(Object.hasOwn(w,a)?w[a]:void 0)??{label:a,badge:"default"},y=Object.keys(w),z={deployment_refused:"Your deployment refused it.",payload_invalid:"This machine couldn’t package it for sending.",detached_undelivered:"Still unsent when this machine detached."};function A(a,b,c){switch(a.state){case"sent":return void 0===a.at?"Sent.":`Sent ${(0,e.K)(a.at,c)}.`;case"queued":return b.canRetry?"Waiting to be retried.":"Waiting to be retried. It won’t be retried until history sharing and this machine’s key are working — Settings → Sync.";case"not_sent":{let b=void 0!==a.reason&&Object.hasOwn(z,a.reason)?z[a.reason]:void 0;return void 0===b?"Not sent.":`Not sent. ${b}`}case"never_offered":return"Never queued: recorded while detached, before switching to this deployment, or its send wasn’t recorded.";case"local_scan":return"Found by a local scan (aka scan or the folder scan). Scanned files are never sent."}}let B={grouped:"By type",flat:"All findings",files:"By location"}},58692:(a,b,c)=>{"use strict";c.d(b,{S8C:()=>aq,leE:()=>bR,Itg:()=>a2,PWo:()=>bd,yi_:()=>bS,RRF:()=>dz,ZpU:()=>dM,HUb:()=>dt,hfB:()=>cF,q6i:()=>fL,oz:()=>fK,Rf1:()=>fJ,QA8:()=>b1,unw:()=>dL,p$t:()=>aN,IYX:()=>aJ,b2L:()=>aL,Jr:()=>dN,hdu:()=>d1,mBk:()=>d0,vog:()=>d,qvI:()=>fA,V8B:()=>cL,IgC:()=>dx,ZYZ:()=>cE,iRC:()=>cM,yA3:()=>as,ZDs:()=>ax,Bfx:()=>at,GCf:()=>av,tLs:()=>ah,TUN:()=>ai,SHn:()=>bk,V0H:()=>ds,WRR:()=>eB,u8Q:()=>d2,kxf:()=>d8,ZXz:()=>eE,MhX:()=>eF,viY:()=>dR,PEm:()=>dr,vap:()=>dv,KqW:()=>e3,eI7:()=>eJ,UiT:()=>fz,pHc:()=>fB,cqq:()=>az,jON:()=>cn,Zdp:()=>aj,lFU:()=>e,PhW:()=>a0,AI$:()=>ao,AJV:()=>aw,zJK:()=>eI,DzG:()=>d5,AKh:()=>al,hd_:()=>em,_5V:()=>dh,W4_:()=>ae,tXp:()=>c4,Plu:()=>W,plk:()=>cD,Ple:()=>c$,Fnc:()=>ft,ryv:()=>ad,fhc:()=>dB,tTV:()=>a_,qmP:()=>ey,_6W:()=>c6,hml:()=>di,rG:()=>c8,F$B:()=>eq,Bfj:()=>c3,fj8:()=>de,q_t:()=>ab,i1j:()=>en,xHz:()=>cS,xog:()=>cZ,hzO:()=>fv,by7:()=>fu,Gw9:()=>fr,ZoN:()=>dj,q11:()=>U,U7X:()=>ao,JB8:()=>cY,GVg:()=>fM,T2I:()=>dF,lgf:()=>ep,y_0:()=>fs,bkE:()=>eg,EL9:()=>ef,qEQ:()=>cP,lGs:()=>bU,hds:()=>d7,dnP:()=>ek,I8t:()=>T,am1:()=>db,SSj:()=>dg,OHL:()=>eL,Pv3:()=>fI,TdZ:()=>dK,DhA:()=>dO,g$R:()=>b0,bCv:()=>X,WSs:()=>fy,a45:()=>cB,X0p:()=>c7,pnU:()=>cC,Lq6:()=>dG,V9M:()=>et,ImG:()=>cO,$w9:()=>ex,jTf:()=>ez,$BP:()=>eu,GyT:()=>cN,JAl:()=>ev,$3l:()=>ew,MgS:()=>df,gzP:()=>er,QCA:()=>es,C05:()=>fw,GWi:()=>dH,RbK:()=>fH,Yc8:()=>eo});let d=["0031_audit_capture_by_time_index","0032_audit_capture_by_id_index","0033_audit_capture_location_index","0034_findings_read_indexes"],e=[{tag:"0000_acoustic_felicia_hardy",sql:"CREATE TABLE `audit_events` (\n `id` text PRIMARY KEY NOT NULL,\n `parent_id` text,\n `root_session_id` text,\n `event_type` text NOT NULL,\n `host_id` text,\n `harness_id` text,\n `source_project_id` text,\n `started_at` integer NOT NULL,\n `ended_at` integer,\n `severity` text,\n `priority` text,\n `content` text,\n `content_hash` text,\n `attributes` text,\n FOREIGN KEY (`parent_id`) REFERENCES `audit_events`(`id`) ON UPDATE no action ON DELETE no action,\n FOREIGN KEY (`root_session_id`) REFERENCES `audit_events`(`id`) ON UPDATE no action ON DELETE no action,\n FOREIGN KEY (`host_id`) REFERENCES `inventory`(`id`) ON UPDATE no action ON DELETE no action,\n FOREIGN KEY (`harness_id`) REFERENCES `inventory`(`id`) ON UPDATE no action ON DELETE no action,\n FOREIGN KEY (`source_project_id`) REFERENCES `source_project`(`id`) ON UPDATE no action ON DELETE no action\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_audit_parent` ON `audit_events` (`parent_id`);--\x3e statement-breakpoint\nCREATE INDEX `idx_audit_session` ON `audit_events` (`root_session_id`,`started_at`);--\x3e statement-breakpoint\nCREATE INDEX `idx_audit_harness_t` ON `audit_events` (`harness_id`,`started_at`);--\x3e statement-breakpoint\nCREATE INDEX `idx_audit_project_t` ON `audit_events` (`source_project_id`,`started_at`);--\x3e statement-breakpoint\nCREATE TABLE `classified_data` (\n `id` text PRIMARY KEY NOT NULL,\n `class` text NOT NULL,\n `label` text,\n `attributes` text\n);\n--\x3e statement-breakpoint\nCREATE TABLE `events` (\n `id` text PRIMARY KEY NOT NULL,\n `source_tool` text NOT NULL,\n `kind` text NOT NULL,\n `occurred_at` integer NOT NULL,\n `content_hash` text NOT NULL,\n `content` text NOT NULL,\n `metadata` text\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_events_occurred` ON `events` (`occurred_at`);--\x3e statement-breakpoint\nCREATE TABLE `findings` (\n `id` text PRIMARY KEY NOT NULL,\n `event_id` text NOT NULL,\n `rule_id` text NOT NULL,\n `category` text NOT NULL,\n `severity` text NOT NULL,\n `span_start` integer NOT NULL,\n `span_end` integer NOT NULL,\n `masked_match` text NOT NULL,\n `action_taken` text NOT NULL,\n `confidence` real NOT NULL,\n FOREIGN KEY (`event_id`) REFERENCES `events`(`id`) ON UPDATE no action ON DELETE no action\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_findings_event` ON `findings` (`event_id`);--\x3e statement-breakpoint\nCREATE TABLE `inspection_definitions` (\n `id` text PRIMARY KEY NOT NULL,\n `rule_id` text NOT NULL,\n `name` text NOT NULL,\n `category` text NOT NULL,\n `severity` text NOT NULL,\n `definition` text NOT NULL,\n `version` text NOT NULL\n);\n--\x3e statement-breakpoint\nCREATE TABLE `inspection_findings` (\n `id` text PRIMARY KEY NOT NULL,\n `audit_event_id` text NOT NULL,\n `inspection_definition_id` text NOT NULL,\n `classified_data_id` text,\n `span_start` integer NOT NULL,\n `span_end` integer NOT NULL,\n `masked_match` text NOT NULL,\n `action_taken` text NOT NULL,\n `confidence` real NOT NULL,\n FOREIGN KEY (`audit_event_id`) REFERENCES `audit_events`(`id`) ON UPDATE no action ON DELETE no action,\n FOREIGN KEY (`inspection_definition_id`) REFERENCES `inspection_definitions`(`id`) ON UPDATE no action ON DELETE no action,\n FOREIGN KEY (`classified_data_id`) REFERENCES `classified_data`(`id`) ON UPDATE no action ON DELETE no action\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_inspection_findings_event` ON `inspection_findings` (`audit_event_id`);--\x3e statement-breakpoint\nCREATE TABLE `installed_packs` (\n `id` text PRIMARY KEY NOT NULL,\n `namespace` text NOT NULL,\n `pack_id` text NOT NULL,\n `version` text NOT NULL,\n `name` text NOT NULL,\n `rules_json` text NOT NULL,\n `enabled` integer DEFAULT true NOT NULL,\n `policy_id` text,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL\n);\n--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_installed_packs_pack` ON `installed_packs` (`namespace`,`pack_id`);--\x3e statement-breakpoint\nCREATE TABLE `inventory` (\n `id` text PRIMARY KEY NOT NULL,\n `object_type` text NOT NULL,\n `location` text,\n `title` text,\n `host_id` text,\n `attributes` text NOT NULL,\n `os_version` text GENERATED ALWAYS AS (json_extract(attributes, '$.os_version')) VIRTUAL,\n `harness_version` text GENERATED ALWAYS AS (json_extract(attributes, '$.harness_version')) VIRTUAL,\n `first_seen` integer NOT NULL,\n `last_seen` integer NOT NULL,\n FOREIGN KEY (`host_id`) REFERENCES `inventory`(`id`) ON UPDATE no action ON DELETE no action\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_inventory_type` ON `inventory` (`object_type`);--\x3e statement-breakpoint\nCREATE INDEX `idx_inventory_type_osver` ON `inventory` (`object_type`,`os_version`);--\x3e statement-breakpoint\nCREATE INDEX `idx_inventory_type_harnessver` ON `inventory` (`object_type`,`harness_version`);--\x3e statement-breakpoint\nCREATE TABLE `policies` (\n `id` text PRIMARY KEY NOT NULL,\n `scope` text DEFAULT 'global' NOT NULL,\n `target` text NOT NULL,\n `action` text NOT NULL,\n `enabled` integer DEFAULT true NOT NULL,\n `custom_keywords` text,\n `name` text,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL\n);\n--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_policies_scope_target` ON `policies` (`scope`,`target`);--\x3e statement-breakpoint\nCREATE TABLE `source_project` (\n `id` text PRIMARY KEY NOT NULL,\n `url` text,\n `name` text,\n `attributes` text NOT NULL,\n `first_seen` integer NOT NULL,\n `last_seen` integer NOT NULL\n);\n"},{tag:"0001_adorable_marten_broadcloak",sql:"ALTER TABLE `audit_events` ADD `input_tokens` integer GENERATED ALWAYS AS (json_extract(attributes, '$.input_tokens')) VIRTUAL;--\x3e statement-breakpoint\nALTER TABLE `audit_events` ADD `output_tokens` integer GENERATED ALWAYS AS (json_extract(attributes, '$.output_tokens')) VIRTUAL;--\x3e statement-breakpoint\nALTER TABLE `audit_events` ADD `cache_creation_input_tokens` integer GENERATED ALWAYS AS (json_extract(attributes, '$.cache_creation_input_tokens')) VIRTUAL;--\x3e statement-breakpoint\nALTER TABLE `audit_events` ADD `cache_read_input_tokens` integer GENERATED ALWAYS AS (json_extract(attributes, '$.cache_read_input_tokens')) VIRTUAL;--\x3e statement-breakpoint\nALTER TABLE `audit_events` ADD `model` text GENERATED ALWAYS AS (json_extract(attributes, '$.model')) VIRTUAL;--\x3e statement-breakpoint\nALTER TABLE `audit_events` ADD `provider` text GENERATED ALWAYS AS (json_extract(attributes, '$.provider')) VIRTUAL;--\x3e statement-breakpoint\nCREATE INDEX `idx_audit_session_type` ON `audit_events` (`root_session_id`,`started_at`) WHERE event_type = 'llm_call';"},{tag:"0002_groovy_big_bertha",sql:"CREATE TABLE `exceptions` (\n `id` text PRIMARY KEY NOT NULL,\n `rule_id` text NOT NULL,\n `category` text NOT NULL,\n `value_fingerprint` text NOT NULL,\n `key_version` integer NOT NULL,\n `masked_value` text NOT NULL,\n `scope` text NOT NULL,\n `expires_at` integer,\n `max_uses` integer,\n `use_count` integer DEFAULT 0 NOT NULL,\n `last_used_at` integer,\n `justification` text NOT NULL,\n `conditions` text,\n `created_by` text NOT NULL,\n `created_via` text NOT NULL,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL,\n `revoked_at` integer,\n `revoked_by` text,\n `revoke_reason` text\n);\n--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_exceptions_active` ON `exceptions` (`rule_id`,`value_fingerprint`,`key_version`) WHERE revoked_at IS NULL;"},{tag:"0003_rich_sage",sql:"CREATE TABLE `egress_decision_override` (\n `id` text PRIMARY KEY NOT NULL,\n `destination_id` text NOT NULL,\n `decision` text NOT NULL,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL,\n FOREIGN KEY (`destination_id`) REFERENCES `share_destination`(`id`) ON UPDATE no action ON DELETE no action\n);\n--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_egress_decision_override` ON `egress_decision_override` (`destination_id`);--\x3e statement-breakpoint\nCREATE TABLE `file_access_override` (\n `id` text PRIMARY KEY NOT NULL,\n `project_id` text NOT NULL,\n `path` text NOT NULL,\n `access` text NOT NULL,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL,\n FOREIGN KEY (`project_id`) REFERENCES `source_project`(`id`) ON UPDATE no action ON DELETE no action\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_file_access_override_project` ON `file_access_override` (`project_id`);--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_file_access_override` ON `file_access_override` (`project_id`,`path`);--\x3e statement-breakpoint\nCREATE TABLE `harness_asset` (\n `id` text PRIMARY KEY NOT NULL,\n `harness_id` text NOT NULL,\n `asset_id` text NOT NULL,\n `created_at` integer NOT NULL,\n FOREIGN KEY (`harness_id`) REFERENCES `inventory`(`id`) ON UPDATE no action ON DELETE no action,\n FOREIGN KEY (`asset_id`) REFERENCES `inventory_asset`(`id`) ON UPDATE no action ON DELETE no action\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_harness_asset_harness` ON `harness_asset` (`harness_id`);--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_harness_asset` ON `harness_asset` (`harness_id`,`asset_id`);--\x3e statement-breakpoint\nCREATE TABLE `inventory_asset` (\n `id` text PRIMARY KEY NOT NULL,\n `asset_type` text NOT NULL,\n `name` text NOT NULL,\n `sub` text,\n `description` text,\n `flags_json` text DEFAULT '[]' NOT NULL,\n `meta_json` text DEFAULT '{}' NOT NULL,\n `trust` text,\n `tools_json` text,\n `provenance` text DEFAULT 'scan' NOT NULL,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_inventory_asset_type` ON `inventory_asset` (`asset_type`);--\x3e statement-breakpoint\nCREATE TABLE `mcp_trust_override` (\n `id` text PRIMARY KEY NOT NULL,\n `asset_id` text NOT NULL,\n `trust` text NOT NULL,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL,\n FOREIGN KEY (`asset_id`) REFERENCES `inventory_asset`(`id`) ON UPDATE no action ON DELETE no action\n);\n--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_mcp_trust_override` ON `mcp_trust_override` (`asset_id`);--\x3e statement-breakpoint\nCREATE TABLE `project_file` (\n `id` text PRIMARY KEY NOT NULL,\n `project_id` text NOT NULL,\n `path` text NOT NULL,\n `name` text NOT NULL,\n `origin` text NOT NULL,\n `default_access` text NOT NULL,\n `findings_count` integer DEFAULT 0 NOT NULL,\n `blocked_at` integer,\n `note` text,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL,\n FOREIGN KEY (`project_id`) REFERENCES `source_project`(`id`) ON UPDATE no action ON DELETE no action\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_project_file_project` ON `project_file` (`project_id`);--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_project_file` ON `project_file` (`project_id`,`path`);--\x3e statement-breakpoint\nCREATE TABLE `share_call_site` (\n `id` text PRIMARY KEY NOT NULL,\n `endpoint_id` text NOT NULL,\n `project` text NOT NULL,\n `file` text NOT NULL,\n `line` integer NOT NULL,\n `snippet` text NOT NULL,\n `dynamic` integer DEFAULT false NOT NULL,\n `vendored` integer DEFAULT false NOT NULL,\n `project_id` text,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL,\n FOREIGN KEY (`endpoint_id`) REFERENCES `share_endpoint`(`id`) ON UPDATE no action ON DELETE no action\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_share_call_site_endpoint` ON `share_call_site` (`endpoint_id`);--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_share_call_site` ON `share_call_site` (`endpoint_id`,`project`,`file`,`line`);--\x3e statement-breakpoint\nCREATE TABLE `share_destination` (\n `id` text PRIMARY KEY NOT NULL,\n `kind` text NOT NULL,\n `name` text NOT NULL,\n `host` text NOT NULL,\n `category` text NOT NULL,\n `trust` text NOT NULL,\n `note` text,\n `network_json` text,\n `last_seen` integer NOT NULL,\n `provenance` text DEFAULT 'scan' NOT NULL,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_share_destination_kind` ON `share_destination` (`kind`);--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_share_destination_host` ON `share_destination` (`host`);--\x3e statement-breakpoint\nCREATE TABLE `share_endpoint` (\n `id` text PRIMARY KEY NOT NULL,\n `destination_id` text NOT NULL,\n `method` text NOT NULL,\n `transport` text NOT NULL,\n `url` text NOT NULL,\n `template` integer DEFAULT false NOT NULL,\n `data_class` text NOT NULL,\n `last_seen` integer NOT NULL,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL,\n FOREIGN KEY (`destination_id`) REFERENCES `share_destination`(`id`) ON UPDATE no action ON DELETE no action\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_share_endpoint_dest` ON `share_endpoint` (`destination_id`);--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_share_endpoint` ON `share_endpoint` (`destination_id`,`method`,`url`);"},{tag:"0004_glorious_mindworm",sql:"CREATE TABLE `available_packs` (\n `id` text PRIMARY KEY NOT NULL,\n `namespace` text NOT NULL,\n `pack_id` text NOT NULL,\n `version` text NOT NULL,\n `name` text NOT NULL,\n `rules_json` text NOT NULL,\n `updated_at` integer NOT NULL\n);\n--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_available_packs_pack` ON `available_packs` (`namespace`,`pack_id`);"},{tag:"0005_fast_vindicator",sql:'PRAGMA foreign_keys=OFF;--\x3e statement-breakpoint\nCREATE TABLE `__new_mcp_trust_override` (\n `id` text PRIMARY KEY NOT NULL,\n `asset_id` text NOT NULL,\n `trust` text NOT NULL,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL\n);\n--\x3e statement-breakpoint\nINSERT INTO `__new_mcp_trust_override`("id", "asset_id", "trust", "created_at", "updated_at") SELECT "id", "asset_id", "trust", "created_at", "updated_at" FROM `mcp_trust_override`;--\x3e statement-breakpoint\nDROP TABLE `mcp_trust_override`;--\x3e statement-breakpoint\nALTER TABLE `__new_mcp_trust_override` RENAME TO `mcp_trust_override`;--\x3e statement-breakpoint\nPRAGMA foreign_keys=ON;--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_mcp_trust_override` ON `mcp_trust_override` (`asset_id`);'},{tag:"0006_magenta_flatman",sql:'CREATE TABLE `_pack_write_gate` (\n `id` integer PRIMARY KEY NOT NULL,\n `open` integer DEFAULT 0 NOT NULL,\n CONSTRAINT "ck_pack_write_gate_single_row" CHECK("_pack_write_gate"."id" = 1)\n);\n--\x3e statement-breakpoint\nALTER TABLE `available_packs` ADD `recorded_by` text;--\x3e statement-breakpoint\nINSERT OR IGNORE INTO _pack_write_gate (id, open) VALUES (1, 0);\n--\x3e statement-breakpoint\nCREATE TRIGGER trg_installed_packs_write_gate\nBEFORE UPDATE OF version, name, rules_json ON installed_packs\nWHEN (SELECT open FROM _pack_write_gate WHERE id = 1) IS NOT 1\nBEGIN SELECT RAISE(IGNORE); END;'},{tag:"0007_thick_stick",sql:"CREATE TABLE `finding_resolution` (\n `id` text PRIMARY KEY NOT NULL,\n `finding_key` text NOT NULL,\n `status` text NOT NULL,\n `method` text NOT NULL,\n `resolved_at` integer NOT NULL,\n `evidence` text,\n `created_at` integer NOT NULL\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_finding_resolution_key` ON `finding_resolution` (`finding_key`);--\x3e statement-breakpoint\nALTER TABLE `findings` ADD `finding_key` text;--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_findings_key` ON `findings` (`finding_key`);"},{tag:"0008_freezing_selene",sql:"ALTER TABLE `findings` ADD `first_detected_at` integer;--\x3e statement-breakpoint\nUPDATE `findings` SET `first_detected_at` = (SELECT `occurred_at` FROM `events` WHERE `events`.`id` = `findings`.`event_id`) WHERE `first_detected_at` IS NULL;"},{tag:"0009_findings_path_expression_index",sql:"-- Custom migration: partial expression index for the resolver's per-path reads.\n--\n-- openAtRestKeysForPath / resolvedAtRestKeysForPath (and the scanner's tier-3\n-- open-key probe) filter at-rest events by\n-- e.kind = 'code_change' AND json_extract(e.metadata, '$.filePath') = :path\n-- once per changed/deleted file on every scan — previously a full events scan\n-- per file. json_extract is deterministic, so SQLite allows it in an index;\n-- the WHERE kind = 'code_change' keeps the index to exactly the rows those\n-- queries can match (in-flight events are never path-addressed).\nCREATE INDEX `idx_events_code_change_path` ON `events` (json_extract(`metadata`, '$.filePath')) WHERE `kind` = 'code_change';\n"},{tag:"0010_events_session_expression_index",sql:"-- Custom migration: partial expression index for session-scoped finding reads.\n--\n-- sessionFindingsCount, the session-scoped listGroupedFindings paths, and the\n-- insert-time session dedup all filter live-capture events by\n-- json_extract(e.metadata, '$.sessionId') = :sessionId\n-- — previously a full findings-join scan with a JSON parse per row. The\n-- IS NOT NULL predicate keeps the index to session-stamped events only (an\n-- equality probe implies non-null, so SQLite still uses it).\nCREATE INDEX `idx_events_session_id` ON `events` (json_extract(`metadata`, '$.sessionId')) WHERE json_extract(`metadata`, '$.sessionId') IS NOT NULL;\n"},{tag:"0011_egress_writer",sql:'-- Stable per-project reconcile key for egress call sites, plus a host-keyed\n-- egress decision override that survives destination pruning.\n--\n-- DROP INDEX IF EXISTS, not a bare DROP: the applier replays a pending\n-- migration\'s non-index statements verbatim, so a store that lost\n-- uq_share_call_site out of band would throw here — and on the plugin hook path\n-- that throw is swallowed fail-open, silently stopping capture.\n--\n-- Existing rows carry the old key\'s discriminator into project_key\n-- (\'legacy:\' || project), so the new unique index is a re-encoding of the old\n-- one and cannot collide on rows the old one allowed. Leaving them on the\n-- column default would collapse two projects\' identical file/line hits onto\n-- one key and abort the whole migration. Writer keys are \'git:\'/\'path:\'-\n-- prefixed, so a backfilled row never collides with a captured one either.\n--\n-- egress_decision_override.destination_id becomes nullable with ON DELETE SET\n-- NULL, which SQLite can only do by rebuilding the table. `host` is ADDed\n-- before the rebuild so the copy has a column to read and so the migration\n-- still presents two probeable columns to the applier\'s evidence check.\nALTER TABLE `share_call_site` ADD `project_key` text DEFAULT \'\' NOT NULL;--\x3e statement-breakpoint\nUPDATE `share_call_site` SET `project_key` = \'legacy:\' || `project`;--\x3e statement-breakpoint\nDROP INDEX IF EXISTS `uq_share_call_site`;--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_share_call_site` ON `share_call_site` (`endpoint_id`,`project_key`,`file`,`line`);--\x3e statement-breakpoint\nCREATE INDEX `idx_share_call_site_project` ON `share_call_site` (`project_key`,`endpoint_id`);--\x3e statement-breakpoint\nALTER TABLE `egress_decision_override` ADD `host` text;--\x3e statement-breakpoint\nPRAGMA foreign_keys=OFF;--\x3e statement-breakpoint\nCREATE TABLE `__new_egress_decision_override` (\n `id` text PRIMARY KEY NOT NULL,\n `destination_id` text,\n `host` text,\n `decision` text NOT NULL,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL,\n FOREIGN KEY (`destination_id`) REFERENCES `share_destination`(`id`) ON UPDATE no action ON DELETE set null\n);\n--\x3e statement-breakpoint\nINSERT INTO `__new_egress_decision_override`("id", "destination_id", "host", "decision", "created_at", "updated_at") SELECT "id", "destination_id", "host", "decision", "created_at", "updated_at" FROM `egress_decision_override`;--\x3e statement-breakpoint\nDROP TABLE `egress_decision_override`;--\x3e statement-breakpoint\nALTER TABLE `__new_egress_decision_override` RENAME TO `egress_decision_override`;--\x3e statement-breakpoint\nPRAGMA foreign_keys=ON;--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_egress_decision_override` ON `egress_decision_override` (`destination_id`);--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_egress_decision_override_host` ON `egress_decision_override` (`host`) WHERE `host` IS NOT NULL;\n'},{tag:"0012_handy_the_captain",sql:"ALTER TABLE `inspection_findings` ADD `finding_key` text;--\x3e statement-breakpoint\nALTER TABLE `inspection_findings` ADD `first_detected_at` integer;--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_inspection_findings_key` ON `inspection_findings` (`finding_key`);"},{tag:"0013_legacy_history_backfill_support",sql:"-- Legacy-to-generalized backfill support: the schema the resumable\n-- events/findings -> audit_events/inspection_findings copy needs (the row\n-- copy itself runs as a batched post-migration installer, not here — see\n-- @akasecurity/persistence's migrations.ts), plus the audit_events read-path\n-- indexes replacing the ones the legacy events table carried (0009/0010).\n\n-- Tracks how far the batched, resumable copy has advanced through each legacy\n-- table, by rowid, so a copy interrupted mid-run resumes instead of\n-- restarting, and a completed copy is a cheap no-op on every later open.\nCREATE TABLE `legacy_copy_watermark` (\n `source` text PRIMARY KEY NOT NULL,\n `last_rowid` integer DEFAULT 0 NOT NULL\n);\n--\x3e statement-breakpoint\n-- Serves the time-range read family that scans a single event_type across a\n-- start/end window (e.g. the Activity timeline) without a full-table scan.\nCREATE INDEX `idx_audit_type_t` ON `audit_events` (`event_type`,`started_at`);\n--\x3e statement-breakpoint\n-- Partial expression index mirroring `idx_events_code_change_path` (0009) for\n-- the generalized audit_events/attributes pair: file-path reads filter\n-- `event_type = 'code_change' AND json_extract(attributes, '$.file_path') = :path`.\nCREATE INDEX `idx_audit_code_change_path` ON `audit_events` (json_extract(`attributes`, '$.file_path')) WHERE `event_type` = 'code_change';\n--\x3e statement-breakpoint\n-- Synthesizes a stub session root (event_type = 'session', no attributes) for\n-- every legacy `events.metadata.sessionId` that has no audit_events row yet.\n-- audit_events.root_session_id is a self-FK, enforced with foreign-key\n-- checking on, and INSERT OR IGNORE does not suppress a foreign-key violation\n-- (only UNIQUE/PK/NOT NULL/CHECK) — so this must run before the events copy\n-- resolves root_session_id, or every session-scoped row's insert fails.\n-- started_at takes the earliest legacy occurred_at recorded under that\n-- session, so the stub root's own timeline position is never later than\n-- anything it will end up parenting.\nINSERT INTO audit_events (id, event_type, root_session_id, started_at)\nSELECT\n json_extract(metadata, '$.sessionId'),\n 'session',\n NULL,\n min(occurred_at)\nFROM events\nWHERE json_valid(metadata)\n AND json_extract(metadata, '$.sessionId') IS NOT NULL\n AND json_extract(metadata, '$.sessionId') NOT IN (SELECT id FROM audit_events)\nGROUP BY json_extract(metadata, '$.sessionId');\n"},{tag:"0014_drop_legacy_events_findings",sql:"-- Custom migration: drops the frozen legacy `events`/`findings` tables\n-- (superseded by audit_events/inspection_definitions/inspection_findings) and\n-- replaces them with read-only views of the same name.\n--\n-- persistence's migrations.ts applies this migration ONLY once the batched\n-- history backfill (see runLegacyHistoryBackfill) has fully drained both\n-- tables, and only after copying the live file aside — see\n-- backupBeforeLegacyDrop in packages/persistence/src/migrations.ts. A store\n-- still mid-copy keeps its real tables and this migration stays pending.\n--\n-- The views exist for skew: the `aka` CLI and the Claude Code plugin update\n-- independently against one shared store, so an older, already-installed\n-- binary can open a store a newer binary already dropped these tables on.\n-- Every already-shipped repository constructor prepares its SQL eagerly at\n-- open time, so a bare \"table not found\" would fail the WHOLE open, not just\n-- a findings-specific read — these views keep `prepare()` succeeding so an\n-- old binary's unrelated features keep working; its own reads stay truthful,\n-- and its rare (already fail-open) writes fail at run time instead.\n--\n-- The 0009/0010 expression indexes existed only over the legacy `events`\n-- table; DROP TABLE below would remove them implicitly, but they are\n-- dropped explicitly first so the intent reads clearly. IF EXISTS so a store\n-- that reached here with an index missing out of band (an adopted-tag store\n-- whose physical index was never built) does not throw a deterministic \"no\n-- such index\" out of the fail-open drop path.\nDROP INDEX IF EXISTS `idx_events_code_change_path`;\n--\x3e statement-breakpoint\nDROP INDEX IF EXISTS `idx_events_session_id`;\n--\x3e statement-breakpoint\n-- `findings.event_id` references `events.id` — drop the child first.\nDROP TABLE `findings`;\n--\x3e statement-breakpoint\nDROP TABLE `events`;\n--\x3e statement-breakpoint\n-- Legacy `events` shape, projected from audit_events: `kind`/`occurred_at`/\n-- `source_tool` become real columns again (source_tool round-trips through\n-- the attributes bag, the only place a capture-typed audit row keeps it);\n-- `metadata` is reconstructed as the old camelCase JSON object from the new\n-- snake_case attributes bag, with `root_session_id` folded back in as\n-- `sessionId` (the one legacy metadata key that became a column, never an\n-- attribute, on the new table). Constrained to the four capture kinds so\n-- structural rows (session/run/tool_call/llm_call/source_lookup/config_scan)\n-- never leak into a legacy reader's result set — the old `events` table\n-- never held them either.\nCREATE VIEW `events` AS\nSELECT\n id,\n json_extract(attributes, '$.source_tool') AS source_tool,\n event_type AS kind,\n started_at AS occurred_at,\n content_hash,\n content,\n -- Plugin-local bookkeeping column that `ensureSyncedAtColumn` adds to the\n -- real `events` table at open time. A pre-cutover binary runs that probe on\n -- EVERY open; without this projection its `columnNames('events')` check\n -- misses `synced_at` and issues `ALTER TABLE events ADD COLUMN` against this\n -- view, which SQLite rejects (\"Cannot add a column to a view\") — a hard,\n -- non-fail-open crash of the whole open, the exact skew failure these views\n -- exist to prevent. Projecting it (always NULL; no reader consumes it)\n -- short-circuits that ALTER.\n NULL AS synced_at,\n json_object(\n 'sessionId', root_session_id,\n 'repo', json_extract(attributes, '$.repo'),\n 'filePath', json_extract(attributes, '$.file_path'),\n 'toolName', json_extract(attributes, '$.tool_name'),\n 'gitignored', json_extract(attributes, '$.gitignored'),\n 'wholeFile', json_extract(attributes, '$.whole_file'),\n 'model', json_extract(attributes, '$.model'),\n 'turnIndex', json_extract(attributes, '$.turn_index'),\n 'correlationId', json_extract(attributes, '$.correlation_id'),\n 'traceId', json_extract(attributes, '$.trace_id'),\n 'exceptionIds', json_extract(attributes, '$.exception_ids')\n ) AS metadata\nFROM audit_events\nWHERE event_type IN ('prompt', 'response', 'code_change', 'tool_use');\n--\x3e statement-breakpoint\n-- A plain single-row INSERT (the old writer's shape — no ON CONFLICT) is\n-- accepted by prepare() against a view once an INSTEAD OF INSERT trigger\n-- exists, so it fails at run time instead of at open — landing in the same\n-- fail-open path the caller already wraps its write in.\nCREATE TRIGGER `trg_events_ro`\nINSTEAD OF INSERT ON `events`\nBEGIN SELECT RAISE(ABORT, 'events is read-only; write to audit_events instead'); END;\n--\x3e statement-breakpoint\n-- Legacy `findings` shape: rule_id/category/severity come from the joined\n-- inspection_definitions row (the legacy table inlined them per-row; the\n-- generalized schema normalizes them out into the shared definition). A view\n-- has no rowid of its own, so the underlying table's rowid is re-exposed\n-- explicitly under that name — a legacy reader ordering by `f.rowid` would\n-- otherwise fail to resolve the column at all. Joined to audit_events for the\n-- same four-capture-kind constraint as the events view above (a finding\n-- attached to a tool_call/config_scan row never existed in the legacy table\n-- either — see the persistence findings repository's identical predicate).\nCREATE VIEW `findings` AS\nSELECT\n f.id AS id,\n f.rowid AS rowid,\n f.audit_event_id AS event_id,\n d.rule_id AS rule_id,\n d.category AS category,\n d.severity AS severity,\n f.span_start AS span_start,\n f.span_end AS span_end,\n f.masked_match AS masked_match,\n f.action_taken AS action_taken,\n f.confidence AS confidence,\n f.finding_key AS finding_key,\n f.first_detected_at AS first_detected_at\nFROM inspection_findings f\nJOIN audit_events e ON e.id = f.audit_event_id\nJOIN inspection_definitions d ON d.id = f.inspection_definition_id\nWHERE e.event_type IN ('prompt', 'response', 'code_change', 'tool_use');\n--\x3e statement-breakpoint\n-- Defense in depth only: SQLite refuses to plan ANY upsert against a view\n-- (\"cannot UPSERT a view\") no matter what trigger exists, so this can never\n-- rescue the real legacy writer, which always used\n-- `ON CONFLICT (finding_key) DO UPDATE` — that statement still fails at\n-- prepare() on an old binary, same as it would with no trigger at all. This\n-- only covers a plain-INSERT shape, should one ever exist.\nCREATE TRIGGER `trg_findings_ro`\nINSTEAD OF INSERT ON `findings`\nBEGIN SELECT RAISE(ABORT, 'findings is read-only; write to inspection_findings instead'); END;\n"},{tag:"0015_busy_vengeance",sql:"CREATE TABLE `secret_vault` (\n `pointer_id` text PRIMARY KEY NOT NULL,\n `value_fingerprint` text NOT NULL,\n `fingerprint_key_version` integer NOT NULL,\n `key_version` integer NOT NULL,\n `category` text NOT NULL,\n `rule_id` text NOT NULL,\n `masked_match` text NOT NULL,\n `provider` text,\n `ciphertext` text NOT NULL,\n `nonce` text NOT NULL,\n `auth_tag` text NOT NULL,\n `occurrence_count` integer DEFAULT 1 NOT NULL,\n `first_seen` integer NOT NULL,\n `last_seen` integer NOT NULL\n);\n--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_secret_vault_value` ON `secret_vault` (`value_fingerprint`);--\x3e statement-breakpoint\nCREATE TABLE `secret_vault_deref` (\n `id` text PRIMARY KEY NOT NULL,\n `pointer_id` text NOT NULL,\n `at` integer NOT NULL,\n `target` text NOT NULL,\n `reason` text NOT NULL,\n `outcome` text NOT NULL,\n `grant_id` text,\n `pointer_count` integer DEFAULT 1 NOT NULL\n);\n--\x3e statement-breakpoint\nCREATE INDEX `idx_secret_vault_deref_pointer` ON `secret_vault_deref` (`pointer_id`);--\x3e statement-breakpoint\nCREATE INDEX `idx_secret_vault_deref_reason_at` ON `secret_vault_deref` (`reason`,`at`);"},{tag:"0016_breezy_zodiak",sql:"ALTER TABLE `exceptions` ADD `capability` text DEFAULT 'suppress' NOT NULL;"},{tag:"0017_rainy_kat_farrell",sql:"CREATE TABLE `secret_vault_sighting` (\n `id` text PRIMARY KEY NOT NULL,\n `pointer_id` text NOT NULL,\n `location` text NOT NULL,\n `kind` text NOT NULL,\n `first_seen` integer NOT NULL,\n `last_seen` integer NOT NULL\n);\n--\x3e statement-breakpoint\nCREATE UNIQUE INDEX `uq_secret_vault_sighting` ON `secret_vault_sighting` (`pointer_id`,`location`);"},{tag:"0018_serious_tana_nile",sql:"ALTER TABLE `secret_vault` ADD `format_version` integer DEFAULT 2 NOT NULL;"},{tag:"0019_audit_started_at_index",sql:"CREATE INDEX `idx_audit_started_at` ON `audit_events` (`started_at`);"},{tag:"0020_secret_vault_pagination_indexes",sql:"CREATE INDEX `idx_secret_vault_last_seen` ON `secret_vault` (`last_seen`,`pointer_id`);--\x3e statement-breakpoint\nCREATE INDEX `idx_secret_vault_reuse` ON `secret_vault` (`occurrence_count`,`pointer_id`);--\x3e statement-breakpoint\nCREATE INDEX `idx_secret_vault_deref_at` ON `secret_vault_deref` (`at`,`id`);--\x3e statement-breakpoint\nCREATE INDEX `idx_secret_vault_deref_signal` ON `secret_vault_deref` (`at`,`id`) WHERE `reason` NOT IN ('display', 'view-render');"},{tag:"0021_finding_resolution_resolved_at_index",sql:"CREATE INDEX `idx_finding_resolution_resolved_at` ON `finding_resolution` (`resolved_at`);\n"},{tag:"0022_audit_inspection_ms",sql:"ALTER TABLE `audit_events` ADD `inspection_ms` integer GENERATED ALWAYS AS (json_extract(attributes, '$.inspection_ms')) VIRTUAL;"},{tag:"0023_secret_vault_user_authorized",sql:"ALTER TABLE `secret_vault` ADD `user_authorized` integer DEFAULT 0 NOT NULL;"},{tag:"0024_finding_resolution_key_created_index",sql:"DROP INDEX IF EXISTS `idx_finding_resolution_key`;--\x3e statement-breakpoint\nCREATE INDEX `idx_finding_resolution_key_created` ON `finding_resolution` (`finding_key`,`created_at`);"},{tag:"0025_audit_capture_attribute_columns",sql:"ALTER TABLE `audit_events` ADD `source_tool` text GENERATED ALWAYS AS (json_extract(attributes, '$.source_tool')) VIRTUAL;--\x3e statement-breakpoint\nALTER TABLE `audit_events` ADD `repo` text GENERATED ALWAYS AS (json_extract(attributes, '$.repo')) VIRTUAL;--\x3e statement-breakpoint\nALTER TABLE `audit_events` ADD `file_path` text GENERATED ALWAYS AS (json_extract(attributes, '$.file_path')) VIRTUAL;--\x3e statement-breakpoint\nALTER TABLE `audit_events` ADD `tool_name` text GENERATED ALWAYS AS (json_extract(attributes, '$.tool_name')) VIRTUAL;"},{tag:"0026_audit_llm_call_usage_columns",sql:"ALTER TABLE `audit_events` ADD `service_tier` text GENERATED ALWAYS AS (json_extract(attributes, '$.service_tier')) VIRTUAL;--\x3e statement-breakpoint\nALTER TABLE `audit_events` ADD `ephemeral_1h_input_tokens` integer GENERATED ALWAYS AS (json_extract(attributes, '$.ephemeral_1h_input_tokens')) VIRTUAL;--\x3e statement-breakpoint\nALTER TABLE `audit_events` ADD `ephemeral_5m_input_tokens` integer GENERATED ALWAYS AS (json_extract(attributes, '$.ephemeral_5m_input_tokens')) VIRTUAL;--\x3e statement-breakpoint\nALTER TABLE `audit_events` ADD `web_search_requests` integer GENERATED ALWAYS AS (json_extract(attributes, '$.web_search_requests')) VIRTUAL;"},{tag:"0027_audit_llm_usage_index",sql:"CREATE INDEX `idx_audit_llm_usage` ON `audit_events` (`started_at`,`root_session_id`,`provider`,`model`,`service_tier`,`input_tokens`,`output_tokens`,`cache_creation_input_tokens`,`cache_read_input_tokens`,`ephemeral_1h_input_tokens`,`ephemeral_5m_input_tokens`,`web_search_requests`) WHERE event_type = 'llm_call' AND attributes IS NOT NULL;"},{tag:"0028_activity_session_probe_indexes",sql:"CREATE INDEX `idx_audit_session_prompt` ON `audit_events` (`root_session_id`) WHERE event_type = 'prompt';--\x3e statement-breakpoint\nCREATE INDEX `idx_audit_session_share` ON `audit_events` (`root_session_id`) WHERE event_type = 'share';--\x3e statement-breakpoint\nCREATE INDEX `idx_audit_ended_at` ON `audit_events` (`ended_at`,`root_session_id`) WHERE ended_at IS NOT NULL;--\x3e statement-breakpoint\nCREATE INDEX `idx_audit_session_ended` ON `audit_events` (`root_session_id`,`ended_at`) WHERE ended_at IS NOT NULL;--\x3e statement-breakpoint\n-- Expression index for the activity list's turns rollup: a live-captured\n-- session's turns are the DISTINCT `run_key` across its `llm_call` leaves, and\n-- carrying the extracted key in the index answers that count from the index\n-- alone instead of parsing every leaf's attribute bag. Written by hand, as\n-- 0013's `idx_audit_code_change_path` was: drizzle-kit cannot emit an\n-- expression containing a comma, so this index is not declared in sqlite.ts.\nCREATE INDEX `idx_audit_session_run_key` ON `audit_events` (`root_session_id`, json_extract(`attributes`, '$.run_key')) WHERE `event_type` = 'llm_call';\n"},{tag:"0029_audit_capture_rollup_index",sql:"CREATE INDEX `idx_audit_capture_rollup` ON `audit_events` (`event_type`,`started_at`,`repo`,`id`) WHERE event_type IN ('prompt','response','code_change','tool_use');"},{tag:"0030_audit_content_expiry",sql:"ALTER TABLE `audit_events` ADD `content_expired_at` integer;--\x3e statement-breakpoint\nCREATE INDEX `idx_audit_expirable_body` ON `audit_events` (`started_at`) WHERE content IS NOT NULL;"},{tag:"0031_audit_capture_by_time_index",sql:"CREATE INDEX `idx_audit_capture_by_time` ON `audit_events` (`started_at`,`id`,`event_type`,`root_session_id`,`source_tool`,`repo`,`file_path`,`tool_name`) WHERE event_type IN ('prompt','response','code_change','tool_use');"},{tag:"0032_audit_capture_by_id_index",sql:"CREATE INDEX `idx_audit_capture_by_id` ON `audit_events` (`id`,`started_at`,`event_type`,`root_session_id`,`source_tool`,`repo`,`file_path`,`tool_name`) WHERE event_type IN ('prompt','response','code_change','tool_use');"},{tag:"0033_audit_capture_location_index",sql:"CREATE INDEX `idx_audit_capture_location` ON `audit_events` (`repo`,`file_path`,`started_at`,`id`,`event_type`) WHERE event_type IN ('prompt','response','code_change','tool_use');"},{tag:"0034_findings_read_indexes",sql:"CREATE INDEX `idx_inspection_definitions_rule` ON `inspection_definitions` (`rule_id`,`severity`,`category`);--\x3e statement-breakpoint\nCREATE INDEX `idx_inspection_findings_def` ON `inspection_findings` (`inspection_definition_id`,`audit_event_id`);--\x3e statement-breakpoint\nCREATE INDEX `idx_inspection_findings_event_cover` ON `inspection_findings` (`audit_event_id`,`inspection_definition_id`,`action_taken`,`finding_key`,`id`);"},{tag:"0035_share_destination_provider_id",sql:"ALTER TABLE `share_destination` ADD `provider_id` text;"},{tag:"0036_secret_vault_identity_fingerprint",sql:"ALTER TABLE `secret_vault` ADD `value_identity_fingerprint` text DEFAULT '' NOT NULL;--\x3e statement-breakpoint\nUPDATE `secret_vault` SET `value_identity_fingerprint` = `value_fingerprint`;\n"}];var f=c(63333);let g=f.Ikc({thresholdInputTokens:f.aig().int().positive(),input:f.aig().nonnegative().nullable(),output:f.aig().nonnegative().nullable()});function h(a,b,c){return Object.freeze({input:a,output:b,longContext:null,cacheWrite5m:1.25*a,cacheWrite1h:2*a,cacheRead:c,webSearch:.01})}function i(a,b,c={}){return Object.freeze({input:a,output:b,longContext:void 0===c.longContext?null:Object.freeze(c.longContext),cacheWrite5m:null,cacheWrite1h:null,cacheRead:c.cacheRead??null,webSearch:null})}f.Ikc({input:f.aig().nonnegative(),output:f.aig().nonnegative(),longContext:g.nullable(),cacheWrite5m:f.aig().nonnegative().nullable(),cacheWrite1h:f.aig().nonnegative().nullable(),cacheRead:f.aig().nonnegative().nullable(),webSearch:f.aig().nonnegative().nullable()});let j=Object.freeze({input:0,output:0,longContext:null,cacheWrite5m:0,cacheWrite1h:0,cacheRead:0,webSearch:0}),k=new Map([["standard",1],["batch",.5],["priority",1.5]]);f.k5n(["anthropic","openai","google","meta","mistral","deepseek","alibaba","xai","amazon","cohere","unknown"]),f.k5n(["anthropic","openai","google-ai","mistral","deepseek","xai","cohere","bedrock","vertex","azure","foundry","together","fireworks","groq","openrouter","ollama","local"]),f.k5n(["api","gateway","local"]);let l=new Map([["anthropic","api"],["openai","api"],["google-ai","api"],["mistral","api"],["deepseek","api"],["xai","api"],["cohere","api"],["bedrock","api"],["vertex","api"],["azure","api"],["foundry","api"],["together","gateway"],["fireworks","gateway"],["groq","gateway"],["openrouter","gateway"],["ollama","local"],["local","local"]]);function m(a){return l.get(a)??"api"}let n=new Map([["anthropic","anthropic"],["openai","openai"],["google","google-ai"],["mistral","mistral"],["deepseek","deepseek"],["xai","xai"],["cohere","cohere"]]),o=Object.freeze(["anthropic","amazon","meta","mistral","deepseek","qwen","cohere","ai21","writer","luma","stability"]),p=Object.freeze(["us","eu","apac","au","jp","global"]);class q{constructor(a,b={}){this.entries=[],this.vendor=a,this.defaults=b}model(a,b){var c,d;let e=b.family??this.defaults.family??{id:a,name:b.name},f=!1===b.firstParty?null:(c=this.vendor,n.get(c)??null),g=b.openWeights??this.defaults.openWeights??!1,h=b.region??this.defaults.region??null,i=b.retention??this.defaults.retention??"unknown",k=new Map;for(let a of(null!==f&&k.set(f,Object.freeze({platform:f,hosting:m(f),firstParty:!0,price:b.price??null,retention:i,region:h})),b.on??[])){let{platform:c,price:e,retention:f,region:g}="string"==typeof a?{platform:a}:a,l=(d=this.vendor,n.get(d)===c),o=m(c),p="local"===o;k.set(c,Object.freeze({platform:c,hosting:o,firstParty:l,price:e??(p?j:l?b.price??null:null),retention:f??(p?"on_infrastructure":l?i:"unknown"),region:void 0===g?l?h:null:g}))}let l=b.defaultHosting??this.defaults.defaultHosting??(null===f?"gateway":m(f));if(void 0!==b.price&&![...k.values()].some(a=>a.price===b.price))throw Error(`${a}: a first-party price was declared but no platform can carry it — vendor '${this.vendor}' has no first-party endpoint. Price the serving platform explicitly via the object form of \`on\`.`);let o={id:a,vendor:this.vendor,displayName:b.name,familyId:e.id,familyName:e.name,capability:b.capability??null,contextWindow:b.ctx??null,maxOutputTokens:b.maxOut??null,openWeights:g,aliases:Object.freeze([...b.aliases??[]]),training:this.defaults.training??null,platforms:k,defaultHosting:l,seen:b.seen??"managed"};return Object.freeze(o),Object.freeze(o.aliases),this.entries.push(o),o}models(){return this.entries}}function r(a,b={}){return new q(a,b)}let s=RegExp(`^(?:${p.join("|")})\\.`,"u"),t=RegExp(`^(?:${o.join("|")})\\.`,"u"),u=RegExp(`^(?:${o.join("|")})/`,"iu"),v=/^[a-z0-9][\w.-]*\//iu,w=/-v\d+:\d+$/u,x=/:\d+$/u,y=/@[\w-]+$/u,z=/-\d{8}$/u;function A(a,b){let c,d,e=b.byId.get(a);if(void 0!==e)return{entry:e,canonicalId:a,platform:null,raw:a};let{id:f,platform:g}=(c=a.trim(),d=null,s.test(c)&&(c=c.replace(s,""),d="bedrock"),t.test(c)&&(c=c.replace(t,""),d??="bedrock"),w.test(c)?(c=c.replace(w,""),d??="bedrock"):x.test(c)&&(c=c.replace(x,""),d??="bedrock"),y.test(c)&&(c=c.replace(y,""),d??="vertex"),u.test(c)?c=c.replace(u,""):v.test(c)&&(c=c.replace(v,"")),{id:c,platform:d}),h=b.byId.get(f);if(void 0!==h)return{entry:h,canonicalId:f,platform:g,raw:a};if(z.test(f)){let c=f.replace(z,""),d=b.byId.get(c);if(void 0!==d)return{entry:d,canonicalId:c,platform:g,raw:a}}return{entry:null,canonicalId:a,platform:g,raw:a}}let B=r("anthropic",{family:{id:"claude",name:"Claude"},region:"us",retention:"zero_retention",training:{apiDefault:"no",consumerDefault:"no",consumerControl:"opt-in",source:"https://privacy.claude.com/en/articles/7996868-is-my-data-used-for-model-training"}}),C=["bedrock","vertex","foundry"];B.model("claude-fable-5-1",{name:"Claude Fable 5.1",ctx:1e6,maxOut:128e3,capability:"reasoning",price:h(10,50,.25),on:[...C]}),B.model("claude-fable-5",{name:"Claude Fable 5",capability:"reasoning",price:h(10,50,1),on:[...C]}),B.model("claude-opus-5",{name:"Claude Opus 5",ctx:1e6,maxOut:128e3,capability:"reasoning",price:h(5,25,.5),on:[...C]}),B.model("claude-opus-4-8",{name:"Claude Opus 4.8",capability:"reasoning",price:h(5,25,.5),on:[...C]}),B.model("claude-opus-4-7",{name:"Claude Opus 4.7",capability:"reasoning",price:h(5,25,.5),on:[...C]}),B.model("claude-opus-4-6",{name:"Claude Opus 4.6",capability:"reasoning",price:h(5,25,.5),on:[...C]}),B.model("claude-opus-4-5",{name:"Claude Opus 4.5",capability:"reasoning",price:h(5,25,.5),on:[...C]}),B.model("claude-opus-4-1",{name:"Claude Opus 4.1",capability:"reasoning",price:h(15,75,1.5),on:[...C]}),B.model("claude-sonnet-5",{name:"Claude Sonnet 5",ctx:1e6,maxOut:128e3,capability:"reasoning",price:h(2,10,.2),on:[...C]}),B.model("claude-sonnet-4-6",{name:"Claude Sonnet 4.6",capability:"reasoning",price:h(3,15,.3),on:[...C]}),B.model("claude-sonnet-4-5",{name:"Claude Sonnet 4.5",capability:"reasoning",price:h(3,15,.3),on:[...C]}),B.model("claude-haiku-4-5",{name:"Claude Haiku 4.5",ctx:2e5,maxOut:64e3,capability:null,price:h(1,5,.1),aliases:["claude-haiku-4-5-20251001"],on:[...C]}),B.model("claude-sonnet-3-7",{name:"Claude Sonnet 3.7",on:[...C]});let D={thresholdInputTokens:272e3,input:null,output:null},E=r("openai",{family:{id:"gpt",name:"GPT"},region:"us",retention:"configurable",training:{apiDefault:"no",consumerDefault:"yes",consumerControl:"opt-out",source:"https://developers.openai.com/api/docs/guides/your-data"}}),F=["azure","foundry"];E.model("gpt-5.6-sol",{name:"GPT-5.6 Sol",ctx:105e4,maxOut:128e3,capability:"reasoning",price:i(4,20,{cacheRead:.4,longContext:D}),on:[...F]}),E.model("gpt-5.6-terra",{name:"GPT-5.6 Terra",ctx:105e4,maxOut:128e3,capability:"reasoning",price:i(2,12,{cacheRead:.2,longContext:D}),on:[...F]}),E.model("gpt-5.6-luna",{name:"GPT-5.6 Luna",ctx:105e4,maxOut:128e3,capability:null,price:i(.2,1.2,{cacheRead:.02,longContext:D}),on:[...F]}),E.model("gpt-5.5",{name:"GPT-5.5",ctx:105e4,maxOut:128e3,capability:"reasoning",price:i(5,30,{cacheRead:.5,longContext:D}),on:[...F]}),E.model("gpt-5.4",{name:"GPT-5.4",ctx:105e4,maxOut:128e3,capability:"reasoning",price:i(2.5,15,{cacheRead:.25,longContext:D}),on:[...F]}),E.model("gpt-5.4-mini",{name:"GPT-5.4 mini",ctx:4e5,maxOut:128e3,capability:null,price:i(.75,4.5,{cacheRead:.075}),on:[...F]}),E.model("gpt-5.4-nano",{name:"GPT-5.4 nano",ctx:4e5,maxOut:128e3,capability:null,price:i(.2,1.25,{cacheRead:.02}),on:[...F]}),E.model("gpt-5.3-codex",{name:"GPT-5.3 Codex",ctx:4e5,maxOut:128e3,capability:"code",price:i(1.75,14,{cacheRead:.175}),on:[...F]}),E.model("gpt-5.1",{name:"GPT-5.1",ctx:4e5,maxOut:128e3,capability:"reasoning",price:i(1.25,10,{cacheRead:.125}),on:[...F]}),E.model("gpt-5",{name:"GPT-5",ctx:4e5,maxOut:128e3,capability:"reasoning",price:i(1.25,10,{cacheRead:.125}),on:[...F]}),E.model("gpt-5-mini",{name:"GPT-5 mini",ctx:4e5,capability:null,price:i(.25,2,{cacheRead:.025}),on:[...F]}),E.model("gpt-5-nano",{name:"GPT-5 nano",ctx:4e5,maxOut:128e3,capability:null,price:i(.05,.4,{cacheRead:.005}),on:[...F]}),E.model("gpt-4.1",{name:"GPT-4.1",price:i(2,8,{cacheRead:.5}),on:[...F]}),E.model("gpt-4o",{name:"GPT-4o",price:i(2.5,10,{cacheRead:1.25}),on:[...F]}),E.model("gpt-4o-mini",{name:"GPT-4o mini",price:i(.15,.6,{cacheRead:.075}),on:[...F]}),E.model("gpt-4-turbo",{name:"GPT-4 Turbo",seen:"discovered",price:i(10,30),aliases:["gpt-4-turbo-2024-04-09"],on:[...F]}),E.model("o3",{name:"o3",capability:"reasoning",price:i(2,8,{cacheRead:.5}),on:[...F]}),E.model("gpt-oss-120b",{name:"GPT-OSS 120B",openWeights:!0,firstParty:!1,retention:"unknown",defaultHosting:"local",on:["together","fireworks","groq","openrouter","bedrock","ollama","local"]}),E.model("gpt-oss-20b",{name:"GPT-OSS 20B",openWeights:!0,firstParty:!1,retention:"unknown",defaultHosting:"local",on:["together","fireworks","groq","openrouter","ollama","local"]});let G=r("google",{family:{id:"gemini",name:"Gemini"},region:"us",retention:"configurable",training:{apiDefault:"no",consumerDefault:"yes",consumerControl:"none",source:"https://ai.google.dev/gemini-api/terms"}});G.model("gemini-3.7-flash",{name:"Gemini 3.7 Flash",capability:null,price:i(.75,3.75),on:["vertex"]}),G.model("gemini-3.6-flash",{name:"Gemini 3.6 Flash",capability:null,price:i(.75,3.75),on:["vertex"]}),G.model("gemini-3.5-flash",{name:"Gemini 3.5 Flash",capability:null,price:i(1.5,9),on:["vertex"]}),G.model("gemini-3.5-flash-lite",{name:"Gemini 3.5 Flash Lite",capability:null,price:i(.3,2.5),on:["vertex"]}),G.model("gemini-3.1-pro-preview",{name:"Gemini 3.1 Pro Preview",capability:"reasoning",price:i(2,12,{longContext:{thresholdInputTokens:2e5,input:4,output:18}}),on:["vertex"]}),G.model("gemini-2.5-pro",{name:"Gemini 2.5 Pro",capability:"reasoning",price:i(1.25,10,{longContext:{thresholdInputTokens:2e5,input:2.5,output:15}}),on:["vertex"]}),G.model("gemini-2.5-flash",{name:"Gemini 2.5 Flash",capability:null,price:i(.3,2.5),on:["vertex"]}),G.model("gemini-2.5-flash-lite",{name:"Gemini 2.5 Flash Lite",capability:null,price:i(.1,.4),on:["vertex"]}),G.model("gemini-1-5-pro",{name:"Gemini 1.5 Pro",on:["vertex"]}),G.model("gemini-1-5-flash",{name:"Gemini 1.5 Flash",on:["vertex"]});let H=r("xai",{family:{id:"grok",name:"Grok"},region:"us",retention:"configurable",training:{apiDefault:"no",consumerDefault:"unknown",consumerControl:"unknown",source:"https://docs.x.ai/developers/faq/security"}});H.model("grok-4.6",{name:"Grok 4.6",ctx:5e5,capability:"reasoning",price:i(2,6,{cacheRead:.5,longContext:{thresholdInputTokens:2e5,input:4,output:12}}),on:["bedrock"]}),H.model("grok-4.5",{name:"Grok 4.5",ctx:5e5,capability:"reasoning",price:i(2,6,{cacheRead:.3,longContext:{thresholdInputTokens:2e5,input:4,output:12}})}),H.model("grok-4.3",{name:"Grok 4.3",ctx:1e6,capability:"reasoning",price:i(1.25,2.5,{cacheRead:.2,longContext:{thresholdInputTokens:2e5,input:2.5,output:5}}),on:["bedrock"]}),H.model("grok-build-0.1",{name:"Grok Build 0.1",ctx:256e3,capability:"code",price:i(1,2,{cacheRead:.2,longContext:{thresholdInputTokens:2e5,input:2,output:4}})});let I=r("deepseek",{family:{id:"deepseek",name:"DeepSeek"},region:"cn",retention:"configurable",training:{apiDefault:"yes",consumerDefault:"yes",consumerControl:"opt-out",source:"https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html"}});I.model("deepseek-v4-flash",{name:"DeepSeek V4 Flash",ctx:1e6,capability:null,price:i(.44,1.32,{cacheRead:.014}),on:["bedrock","together","fireworks","openrouter","ollama","local"]}),I.model("deepseek-v4-pro",{name:"DeepSeek V4 Pro",ctx:1e6,capability:"reasoning",price:i(1.32,3.96,{cacheRead:.044}),on:["bedrock","together","fireworks","openrouter"]}),I.model("deepseek-r1",{name:"DeepSeek R1",seen:"discovered",capability:"reasoning",openWeights:!0,defaultHosting:"local",on:["bedrock","together","fireworks","openrouter","ollama","local"]});let J=r("cohere",{family:{id:"command",name:"Command"},region:"us",retention:"configurable",training:{apiDefault:"unknown",consumerDefault:"unknown",consumerControl:"opt-out",source:"https://cohere.com/security"}});J.model("command-a-plus-05-2026",{name:"Command A+",ctx:128e3,maxOut:64e3,on:["bedrock"]}),J.model("command-a-03-2025",{name:"Command A",ctx:256e3,maxOut:8e3,on:["bedrock"]}),J.model("command-a-reasoning-08-2025",{name:"Command A Reasoning",ctx:256e3,maxOut:32e3,capability:"reasoning"}),J.model("command-r-plus-08-2024",{name:"Command R+",ctx:128e3,maxOut:4e3,price:i(2.5,10),aliases:["command-r-plus"],on:["bedrock"]});let K=r("meta",{family:{id:"llama",name:"Llama"},openWeights:!0,retention:"unknown",defaultHosting:"local"}),L=["bedrock","together","fireworks","groq","openrouter","ollama","local"];K.model("llama-3-3-70b",{name:"Llama 3.3 70B",ctx:128e3,on:[...L]}),K.model("llama-3-1-70b",{name:"Llama 3.1 70B",ctx:128e3,on:[...L]}),K.model("llama-3-1-8b",{name:"Llama 3.1 8B",ctx:128e3,on:[...L]});let M=r("alibaba",{family:{id:"qwen",name:"Qwen"},openWeights:!0,retention:"unknown",defaultHosting:"local"});M.model("qwen-3-235b",{name:"Qwen 3 235B",on:[...L]}),M.model("qwen-3-coder-480b",{name:"Qwen 3 Coder 480B",capability:"code",on:[...L]});let N=r("amazon",{family:{id:"nova",name:"Nova"},retention:"configurable"});N.model("nova-2-lite",{name:"Nova 2 Lite",ctx:1e6,maxOut:64e3,aliases:["nova-2-lite-v1:0"],on:["bedrock"]});let O=r("mistral",{family:{id:"mistral",name:"Mistral"},openWeights:!0,retention:"unknown",defaultHosting:"local"});O.model("mixtral-8x7b",{name:"Mixtral 8x7B",seen:"discovered",on:[...L]});let P=function(a){let b=new Map;for(let c of a)b.set(c.id,c);for(let c of a)for(let a of c.aliases)b.has(a)||b.set(a,c);return{byId:b,entries:Object.freeze([...a])}}(Object.freeze([...B.models(),...E.models(),...G.models(),...H.models(),...I.models(),...J.models(),...O.models(),...K.models(),...M.models(),...N.models()]));f.k5n(["reasoning","code"]),f.k5n(["zero_retention","no_storage","configurable","on_device","on_infrastructure","unknown"]),f.k5n(["managed","discovered"]);let Q=f.k5n(["yes","no","unknown"]),R=f.k5n(["opt-in","opt-out","none","unknown"]);f.Ikc({apiDefault:Q,consumerDefault:Q,consumerControl:R,source:f.YjP().nullable()});let S=f.k5n(["api","consumer","enterprise","unknown"]);function T(a){return new Date(a).getTime()}function U(a){return new Date(a).toISOString()}f.Ikc({tier:S,controlExercised:f.zMY().nullable()}),Object.freeze({tier:"unknown",controlExercised:null});let V={critical:4,high:3,medium:2,low:1};function W(a){let b=new Map,c=new Map;for(let e of a){var d;let a=e.count??1;b.set(e.ruleId,(b.get(e.ruleId)??0)+a);let f=c.get(e.category)??{category:e.category,count:0,categoryCount:0,severity:e.severity,weight:0,ruleId:e.ruleId};f.categoryCount+=a;let g=Object.hasOwn(V,d=e.severity)?V[d]:0;g>f.weight&&(f.weight=g,f.severity=e.severity,f.ruleId=e.ruleId),c.set(e.category,f)}for(let a of c.values())a.count=b.get(a.ruleId)??0;return[...c.values()].sort((a,b)=>b.weight-a.weight||b.categoryCount-a.categoryCount).slice(0,10)}function X(a){return{...Z[a]??{title:`${a} finding`,action:"Review"},advice:Y[a]??"Review this finding against your policy."}}let Y={secret:"Rotate the exposed credentials and move them out of prompts (secrets manager / env vars).",pii:"Remove or mask personal data before it reaches the model.",financial:"Strip card and account numbers; share only non-sensitive references.",phi:"Remove protected health information — it should never reach an external model.",code_context:"Confirm this proprietary code context is safe to share.",code_flaw:"Review the flagged pattern and apply the secure alternative (parameterized queries, safe deserializers, etc.).",config:"Review the setting — a hook conflict or an egress change applies to every session that follows.",custom:"Review against your organization’s custom policy."},Z={secret:{title:"Exposed secret detected",action:"Rotate"},pii:{title:"Personal data in a prompt",action:"Remove"},financial:{title:"Financial data detected",action:"Strip"},phi:{title:"Health information detected",action:"Remove"},code_context:{title:"Proprietary code shared",action:"Review"},code_flaw:{title:"Insecure code pattern",action:"Fix"},config:{title:"Weakened configuration",action:"Review"},custom:{title:"Custom policy match",action:"Review"}},$=new Map([["anthropic","anthropic"],["openai","openai"],["google","google-ai"],["google-ai","google-ai"],["bedrock","bedrock"],["vertex","vertex"],["azure","azure"],["foundry","foundry"],["mistral","mistral"],["deepseek","deepseek"],["xai","xai"],["cohere","cohere"],["together","together"],["fireworks","fireworks"],["groq","groq"],["openrouter","openrouter"],["ollama","ollama"],["local","local"]]);function _(a){return $.get(a.trim().toLowerCase())??null}function aa(a){let b=_(a);return null!==b&&"local"===m(b)}Object.freeze(["gateway","unknown","cli","api","chatgpt","claude-ai"]);let ab={normalizeModelId(a,b){let c=a.trim().toLowerCase();if(aa(c))return{provider:c,model:"*"};let d=A(b,P);return{provider:c,model:d.entry?.id??b}},costFor({provider:a,model:b,usage:c}){let d=function(a,b){if(aa(a))return j;let c=A(b,P);if(null===c.entry)return null;let d=c.platform??_(a);return null===d?null:c.entry.platforms.get(d)?.price??null}(a,b);return null===d?null:function(a,b){var c;let d=[[b.cacheWrite1hTokens??0,a.cacheWrite1h],[b.cacheWrite5mTokens??0,a.cacheWrite5m],[b.cacheReadTokens??0,a.cacheRead]],e=null!==a.longContext&&(b.inputTokens??0)>a.longContext.thresholdInputTokens?a.longContext:null;if(null!==e&&(null===e.input||null===e.output))return null;let f=e?.input??a.input,g=e?.output??a.output,h=(b.inputTokens??0)*f+(b.outputTokens??0)*g;for(let[a,b]of d)if(0!==a){if(null===b)return null;h+=a*b}let i=h/1e6*(void 0===(c=b.serviceTier)?1:k.get(c)??1),j=b.webSearchRequests??0;return j>0&&null===a.webSearch?null:i+j*(a.webSearch??0)}(d,c)}};new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1});let ac=a=>a??0;function ad(a,b){let c=new Map;for(let{sessionId:d,attributes:e}of a){let a=e.provider??"unknown",f=e.model??"unknown",g=`${a} ${f}`,h=c.get(d);void 0===h&&(h=new Map,c.set(d,h));let i=h.get(g);void 0===i&&(i={provider:a,model:f,input:0,output:0,cacheCreation:0,cacheRead:0,costUsd:0,priced:!1},h.set(g,i)),i.input+=ac(e.input_tokens),i.output+=ac(e.output_tokens),i.cacheCreation+=ac(e.cache_creation_input_tokens),i.cacheRead+=ac(e.cache_read_input_tokens);let j=b.costFor({provider:a,model:f,usage:function(a){let b={inputTokens:ac(a.input_tokens),outputTokens:ac(a.output_tokens),cacheWrite1hTokens:ac(a.ephemeral_1h_input_tokens),cacheWrite5mTokens:ac(a.ephemeral_5m_input_tokens),cacheReadTokens:ac(a.cache_read_input_tokens),webSearchRequests:ac(a.web_search_requests)};return void 0!==a.service_tier&&(b.serviceTier=a.service_tier),b}(e)});null!==j&&(i.costUsd+=j,i.priced=!0)}let d=[];for(let[a,b]of c){let c=[],e=0,f=0,g=!1,h=!1;for(let d of b.values()){let b=d.input+d.output+d.cacheCreation+d.cacheRead;e+=b;let i=d.priced?d.costUsd:null;null===i?h=!0:(g=!0,f+=i),c.push({sessionId:a,model:d.model,provider:d.provider,inputTokens:d.input,outputTokens:d.output,cacheCreation:d.cacheCreation,cacheRead:d.cacheRead,totalTokens:b,estimatedCostUsd:i})}c.sort((a,b)=>b.totalTokens-a.totalTokens),d.push({sessionId:a,rollups:c,totalTokens:e,estimatedCostUsd:g?f:null,costIsPartial:h})}return d.sort((a,b)=>b.totalTokens-a.totalTokens),d}function ae(a){let b=new Map,c=0,d=0,e=!1;for(let f of a){for(let a of f.rollups){let c=`${a.provider} ${a.model}`,d=b.get(c);void 0===d&&(d={provider:a.provider,model:a.model,inputTokens:0,outputTokens:0,cacheTokens:0,totalTokens:0,costUsd:0,priced:!1},b.set(c,d)),d.inputTokens+=a.inputTokens,d.outputTokens+=a.outputTokens,d.cacheTokens+=a.cacheCreation+a.cacheRead,d.totalTokens+=a.totalTokens,null===a.estimatedCostUsd?e=!0:(d.costUsd+=a.estimatedCostUsd,d.priced=!0)}c+=f.totalTokens,null!==f.estimatedCostUsd&&(d+=f.estimatedCostUsd),f.costIsPartial&&(e=!0)}return{models:[...b.values()].sort((a,b)=>b.totalTokens-a.totalTokens).map(a=>({provider:a.provider,model:a.model,inputTokens:a.inputTokens,outputTokens:a.outputTokens,cacheTokens:a.cacheTokens,totalTokens:a.totalTokens,estimatedCostUsd:a.priced?a.costUsd:null})),sessionCount:a.length,totalTokens:c,estimatedCostUsd:d,costIsPartial:e}}var af=c(6375),ag=c(50965);let ah={ClaudeCode:"claudecode",Cursor:"cursor",Copilot:"copilot",Codex:"codex",Antigravity:"antigravity",Windsurf:"windsurf",ClaudeDesktop:"claudedesktop",ChatGpt:"chatgpt",ClaudeAi:"claudeai",Api:"api",AiTcSdk:"ai-tc-sdk"},ai=f.k5n(ah).meta({id:"Harness"}),aj={ClaudeCode:"claude-code",ClaudeDesktop:"claude-desktop",Cursor:"cursor",ChatGpt:"chatgpt",ClaudeAi:"claude-ai",Copilot:"github-copilot",Codex:"codex",Antigravity:"antigravity",Cli:"cli",Unknown:"unknown",AiTcSdk:"ai-tc-sdk"},ak=f.k5n(aj).meta({id:"SourceTool"}),al=ak.extract(["ChatGpt","ClaudeAi"]),am={[aj.ClaudeCode]:ah.ClaudeCode,[aj.ClaudeDesktop]:ah.ClaudeDesktop,[aj.Copilot]:ah.Copilot,[aj.Cursor]:ah.Cursor,[aj.ChatGpt]:ah.ChatGpt,[aj.Codex]:ah.Codex,[aj.Antigravity]:ah.Antigravity,[aj.ClaudeAi]:ah.ClaudeAi,[aj.AiTcSdk]:ah.AiTcSdk},an=f.k5n(["pii","financial","secret","phi","code_context","code_flaw","custom","config"]).meta({id:"DetectionCategory"}),ao=f.k5n(["critical","high","medium","low"]).meta({id:"Severity"}),ap=f.k5n(["warn","redact","block","allow","log"]).meta({id:"ActionTaken"}),aq=ap.options,ar=f.Ikc({start:f.aig().int().nonnegative(),end:f.aig().int().nonnegative()}).meta({id:"Span"});f.Ikc({id:f.OsD(),eventId:f.OsD(),ruleId:f.YjP(),category:an,severity:ao,span:ar,maskedMatch:f.YjP(),actionTaken:ap,confidence:f.aig().min(0).max(1)}).meta({id:"Finding"}).meta({id:"DetectedFinding"});let as=f.k5n(["blocked","redacted","warned","allowed","quarantined","monitored"]).meta({id:"FindingAction"}),at=ai.extract(["ClaudeCode","ClaudeDesktop","Cursor","Copilot","ChatGpt","ClaudeAi","Codex","Antigravity","Api","AiTcSdk"]).meta({id:"FindingProvider"}),au=f.k5n(["secret","pii","source_code","code_flaw","external_share","mcp_server","customer_data","financial","phi","custom"]).meta({id:"FindingCategory"});f.k5n(["in-flight","at-rest"]).meta({id:"FindingOrigin"});let av=f.k5n(["open","handled","resolved","dismissed"]).meta({id:"FindingStatus"}),aw=f.k5n(["deployment_refused","payload_invalid","detached_undelivered"]).meta({id:"SyncFailureReason"}),ax=f.k5n(["sent","queued","not_sent","never_offered","local_scan"]).meta({id:"FindingDeliveryState"}),ay=f.Ikc({state:ax,at:af.w$().optional(),reason:aw.optional()}).meta({id:"FindingDelivery"}),az=f.k5n(["enforced-in-flight","fixed-at-source","exception","acknowledged","false-positive","redetected"]).meta({id:"ResolutionMethod"}),aA=f.Ikc({maskedValue:f.YjP(),contextPrefix:f.YjP()}).meta({id:"FindingMatch"}),aB=f.Ikc({id:f.YjP(),name:f.YjP().nullable()}).meta({id:"FindingDetectionRef"}),aC=f.Ikc({id:f.YjP(),name:f.YjP()}).meta({id:"FindingPolicyRef"}),aD=f.Ikc({id:f.YjP(),name:f.YjP()}).meta({id:"FindingUser"}),aE=f.Ikc({id:f.YjP(),provider:at,repo:f.YjP(),file:f.YjP(),user:aD.optional(),toolName:f.YjP().optional(),action:as,detectedAt:af.w$(),confidence:f.aig().min(0).max(1),status:av.optional(),eventId:f.YjP().optional(),sessionId:f.YjP().optional(),delivery:ay.optional()}).meta({id:"FindingInstance"}),aF=f.Ikc({id:f.YjP(),category:au,subtype:f.YjP(),severity:ao,match:aA,detection:aB,policy:aC,instanceCount:f.aig().int().nonnegative(),providers:f.YOg(at),aggregateAction:as.nullable(),latestDetectedAt:af.w$(),instances:f.YOg(aE),status:av.optional(),users:f.YOg(aD).optional()}).meta({id:"FindingGroup"});f.Ikc({findings:f.aig().int().nonnegative(),groups:f.aig().int().nonnegative(),bySeverity:f.Ikc({critical:f.aig().int().nonnegative(),high:f.aig().int().nonnegative(),medium:f.aig().int().nonnegative(),low:f.aig().int().nonnegative()})}).meta({id:"FindingStats"});let aG=f.Ikc({value:f.YjP(),count:f.aig().int().nonnegative()}).meta({id:"FindingFacetItem"}),aH=f.Ikc({severity:f.YOg(aG),subtype:f.YOg(aG),provider:f.YOg(aG),action:f.YOg(aG),status:f.YOg(aG),tool:f.YOg(aG).optional(),deployment:f.YOg(aG).optional()}).meta({id:"FindingFacets"}),aI=aF.omit({instances:!0,match:!0}).meta({id:"FindingTypeSummary"}),aJ=50;f.Ikc({severity:f.YOg(ao).optional(),subtype:f.YOg(f.YjP()).optional(),provider:f.YOg(at).optional(),action:f.YOg(as).optional(),status:f.YOg(av).optional(),q:f.YjP().optional(),sessionId:f.YjP().optional(),from:af.w$().optional(),includeId:f.YjP().optional(),limit:ag.ai().int().min(1).max(100).optional(),cursor:f.YjP().optional()}),f.Ikc({totals:f.Ikc({findings:f.aig().int().nonnegative(),types:f.aig().int().nonnegative()}),facets:aH,items:f.YOg(aI),nextCursor:f.YjP().nullable(),sessionFirings:f.g1P(f.YjP(),f.aig().int().nonnegative()).optional()}).meta({id:"ListFindingTypesResponse"}),f.Ikc({action:as.exclude(["quarantined"]),instanceId:f.YjP().optional()}).meta({id:"ApplyFindingActionRequest"}),aF.meta({id:"ApplyFindingActionResponse"}),f.Ikc({severity:f.YOg(ao).optional(),subtype:f.YOg(f.YjP()).optional(),provider:f.YOg(at).optional(),action:f.YOg(as).optional(),q:f.YjP().optional(),format:f.k5n(["csv","json"]).optional()});let aK=aE.extend({groupId:f.YjP(),category:au,subtype:f.YjP(),severity:ao,match:aA,detection:aB,policy:aC}).meta({id:"FindingInstanceDetail"}),aL=50;f.Ikc({severity:f.YOg(ao).optional(),subtype:f.YOg(f.YjP()).optional(),provider:f.YOg(at).optional(),action:f.YOg(as).optional(),status:f.YOg(av).optional(),tool:f.YOg(f.YjP()).optional(),deployment:f.YOg(ax).optional(),repo:f.YjP().optional(),file:f.YjP().optional(),q:f.YjP().optional(),sessionId:f.YjP().optional(),from:af.w$().optional(),limit:ag.ai().int().min(1).max(200).optional(),cursor:f.YjP().optional()}),f.Ikc({totals:f.Ikc({findings:f.aig().int().nonnegative()}),facets:aH,items:f.YOg(aK),nextCursor:f.YjP().nullable()}).meta({id:"ListFindingInstancesResponse"}),f.Ikc({items:f.YOg(aK),nextCursor:f.YjP().nullable()}).meta({id:"ListFindingInstancesPage"});let aM=f.Ikc({id:f.YjP(),repo:f.YjP(),file:f.YjP(),instanceCount:f.aig().int().nonnegative(),maxSeverity:ao,latestDetectedAt:af.w$(),status:av.optional(),ruleIds:f.YOg(f.YjP())}).meta({id:"FindingLocationSummary"}),aN=50;f.Ikc({severity:f.YOg(ao).optional(),subtype:f.YOg(f.YjP()).optional(),provider:f.YOg(at).optional(),action:f.YOg(as).optional(),status:f.YOg(av).optional(),tool:f.YOg(f.YjP()).optional(),deployment:f.YOg(ax).optional(),q:f.YjP().optional(),sessionId:f.YjP().optional(),from:af.w$().optional(),includeId:f.YjP().optional(),limit:ag.ai().int().min(1).max(100).optional(),cursor:f.YjP().optional()}),f.Ikc({totals:f.Ikc({findings:f.aig().int().nonnegative(),locations:f.aig().int().nonnegative()}),facets:aH,items:f.YOg(aM),nextCursor:f.YjP().nullable()}).meta({id:"ListFindingLocationsResponse"});let aO=f.k5n(["host","harness","user","skill","hook","mcp_server","config_file"]).meta({id:"InventoryObjectType"}),aP=f.k5n(["session","run","tool_call","llm_call","source_lookup","prompt","response","code_change","tool_use","model_refusal","request_decision","config_scan","capture_status"]).meta({id:"AuditEventType"}),aQ=f.g1P(f.YjP(),f.L5J());f.Ikc({host_name:f.YjP().optional(),os:f.YjP().optional(),os_version:f.YjP().optional(),arch:f.YjP().optional()}).catchall(f.L5J()),f.Ikc({harness_version:f.YjP().optional(),interface:f.YjP().optional()}).catchall(f.L5J()),f.Ikc({display_name:f.YjP().optional(),email:f.YjP().optional()}).catchall(f.L5J()),f.Ikc({source:f.YjP().optional(),version:f.YjP().optional(),description:f.YjP().optional(),updated_at:f.YjP().optional(),scope:f.YjP().optional(),plugin_name:f.YjP().optional()}).catchall(f.L5J()),f.Ikc({event:f.YjP().optional(),matcher:f.YjP().optional(),command:f.YjP().optional(),scope:f.YjP().optional(),plugin_name:f.YjP().optional(),timeout:f.aig().optional()}).catchall(f.L5J()),f.Ikc({scope:f.YjP().optional(),transport:f.YjP().optional(),command:f.YjP().optional(),url:f.YjP().optional(),env_keys:f.YOg(f.YjP()).optional(),plugin_name:f.YjP().optional(),marketplace:f.YjP().optional(),project:f.YjP().optional()}).catchall(f.L5J()),f.Ikc({kind:f.YjP().optional(),detail:f.YjP().optional(),scope:f.YjP().optional(),updated_at:f.YjP().optional(),entry_count:f.aig().optional()}).catchall(f.L5J());let aR=f.Ikc({model:f.YjP().optional(),provider:f.YjP().optional(),input_tokens:f.aig().int().nonnegative().optional(),output_tokens:f.aig().int().nonnegative().optional(),cache_creation_input_tokens:f.aig().int().nonnegative().optional(),cache_read_input_tokens:f.aig().int().nonnegative().optional(),ephemeral_1h_input_tokens:f.aig().int().nonnegative().optional(),ephemeral_5m_input_tokens:f.aig().int().nonnegative().optional(),web_search_requests:f.aig().int().nonnegative().optional(),web_fetch_requests:f.aig().int().nonnegative().optional(),service_tier:f.YjP().optional(),stop_reason:f.YjP().optional(),message_id:f.YjP().optional(),uuid:f.YjP().optional(),parent_uuid:f.YjP().optional(),run_key:f.YjP().optional()}).catchall(f.L5J());f.Ikc({sessionId:f.YjP().min(1),messageId:f.YjP().min(1),parentId:f.YjP().min(1),rootSessionId:f.YjP().min(1),startedAt:af.w$(),attributes:aR});let aS=f.Ikc({tool_name:f.YjP().optional(),tool_use_id:f.YjP().optional(),target:f.YjP().optional(),is_error:f.zMY().optional(),input_size:f.aig().int().nonnegative().optional(),output_size:f.aig().int().nonnegative().optional(),uuid:f.YjP().optional(),parent_uuid:f.YjP().optional(),run_key:f.YjP().optional()}).catchall(f.L5J());f.Ikc({source_tool:f.YjP().optional(),file_path:f.YjP().optional(),repo:f.YjP().optional(),tool_name:f.YjP().optional(),gitignored:f.zMY().optional(),whole_file:f.zMY().optional(),correlation_id:f.uRe().optional(),trace_id:f.YjP().regex(/^[0-9a-f]{32}$/).optional(),exception_ids:f.YOg(f.OsD()).optional(),message_id:f.YjP().optional(),conversation_id:f.YjP().optional(),inspection_ms:f.aig().int().nonnegative().optional(),redact_degraded_to:ap.optional()}).catchall(f.L5J());let aT=f.Ikc({source_tool:f.YjP().optional(),patched:f.zMY().optional(),live:f.zMY().optional(),blind:f.zMY().optional(),sends_seen_dom:f.aig().int().nonnegative().optional(),exchanges_seen_net:f.aig().int().nonnegative().optional(),parse_failures:f.aig().int().nonnegative().optional(),unparsed_bodies:f.aig().int().nonnegative().optional(),shape_misses:f.YOg(f.YjP()).optional(),conversation_endpoints:f.aig().int().nonnegative().optional(),closed:f.zMY().optional(),enforcement:f.YjP().optional()}).catchall(f.L5J()),aU=f.Ikc({ruleId:f.YjP().min(1),ruleName:f.YjP(),ruleVersion:f.YjP().min(1),category:an,severity:ao,span:ar,maskedMatch:f.YjP(),actionTaken:ap,confidence:f.aig().min(0).max(1)});f.Ikc({sessionId:f.YjP().min(1),toolUseId:f.YjP().min(1),parentId:f.YjP().min(1),rootSessionId:f.YjP().min(1),startedAt:af.w$(),attributes:aS,inspections:f.YOg(aU).default([])});let aV=f.Ikc({objectType:aO,identityKey:f.YjP().min(1),location:f.YjP().optional(),title:f.YjP().optional(),hostId:f.YjP().optional(),attributes:aQ.default({})}).meta({id:"InventoryInput"}),aW=f.Ikc({url:f.YjP().min(1),name:f.YjP().optional(),attributes:aQ.default({})}).meta({id:"SourceProjectInput"}),aX=f.Ikc({id:f.YjP().min(1),eventType:aP,startedAt:af.w$(),endedAt:af.w$().optional(),parentId:f.YjP().optional(),rootSessionId:f.YjP().optional(),hostId:f.YjP().optional(),harnessId:f.YjP().optional(),sourceProjectId:f.YjP().optional(),severity:ao.optional(),priority:f.YjP().optional(),content:f.YjP().optional(),contentHash:f.YjP().optional(),attributes:aQ.optional()}).meta({id:"AuditEventInput"});f.Ikc({class:f.YjP().min(1),label:f.YjP().optional(),attributes:aQ.optional()});let aY=f.Ikc({ruleId:f.YjP().min(1),version:f.YjP().min(1),name:f.YjP(),category:an,severity:ao,definition:f.YjP()});f.Ikc({id:f.YjP().min(1),auditEventId:f.YjP().min(1),inspectionDefinitionId:f.YjP().min(1),classifiedDataId:f.YjP().optional(),span:ar,maskedMatch:f.YjP(),actionTaken:ap,confidence:f.aig().min(0).max(1),findingKey:f.YjP().optional(),firstDetectedAt:af.w$().optional()}),f.Ikc({host:aV.optional(),harness:aV.optional(),project:aW.optional()}).meta({id:"InventoryContext"}),f.Ikc({hostId:f.YjP().optional(),harnessId:f.YjP().optional(),accountId:f.YjP().optional(),sourceProjectId:f.YjP().optional()}).meta({id:"ResolvedInventory"}),f.Ikc({hosts:f.YOg(f.YjP()),harnesses:f.YOg(f.YjP()),osVersions:f.YOg(f.YjP()),projects:f.YOg(f.YjP())}).meta({id:"InventoryFacets"});let aZ=f.Ikc({sessionId:f.YjP(),model:f.YjP(),provider:f.YjP(),inputTokens:f.aig().int().nonnegative(),outputTokens:f.aig().int().nonnegative(),cacheCreation:f.aig().int().nonnegative(),cacheRead:f.aig().int().nonnegative(),totalTokens:f.aig().int().nonnegative(),estimatedCostUsd:f.aig().nullable()}).meta({id:"TokenRollup"});f.Ikc({sessionId:f.YjP(),rollups:f.YOg(aZ),totalTokens:f.aig().int().nonnegative(),estimatedCostUsd:f.aig().nullable(),costIsPartial:f.zMY()});let a$=f.Ikc({provider:f.YjP(),model:f.YjP(),inputTokens:f.aig().int().nonnegative(),outputTokens:f.aig().int().nonnegative(),cacheTokens:f.aig().int().nonnegative(),totalTokens:f.aig().int().nonnegative(),estimatedCostUsd:f.aig().nullable()});function a_(a){return JSON.stringify(a)}f.Ikc({models:f.YOg(a$),sessionCount:f.aig().int().nonnegative(),totalTokens:f.aig().int().nonnegative(),estimatedCostUsd:f.aig(),costIsPartial:f.zMY()});let a0=f.k5n(["active","completed","interrupted","error"]),a1=f.k5n(["session","prompt","response","tool","hook","detection","share","permission","commit","error","active"]),a2=f.k5n(["detections","shares","inventory"]),a3=f.Ikc({id:f.YjP(),occurredAt:af.w$(),kind:a1,title:f.YjP(),detail:f.YjP(),tool:f.YjP().nullable(),severity:ao.nullable(),link:a2.nullable(),targetId:f.YjP().nullable(),internal:f.zMY(),flagged:f.zMY(),bodyExpired:f.zMY().default(!1)}).meta({id:"ActivityAuditEvent"}),a4=f.Ikc({id:f.YjP(),harness:ai,title:f.YjP(),project:f.YjP(),repo:f.YjP(),branches:f.YOg(f.YjP()),startedAt:af.w$(),endedAt:af.w$().nullable(),status:a0,turns:f.aig().int().nonnegative(),findings:f.aig().int().nonnegative(),shares:f.aig().int().nonnegative()}).meta({id:"ActivitySessionSummary"});a4.extend({host:f.YjP(),cwd:f.YjP(),models:f.YOg(f.YjP()),version:f.YjP(),tokens:aZ,tools:f.g1P(f.YjP(),f.aig().int().nonnegative()),files:f.YOg(f.YjP()),commits:f.aig().int().nonnegative(),events:f.YOg(a3)}).meta({id:"ActivitySession"}),f.Ikc({tz:f.YjP().optional()});let a5=f.Ikc({sessionsToday:f.aig().int().nonnegative(),liveNow:f.aig().int().nonnegative(),toolCallsToday:f.aig().int().nonnegative(),findingsToday:f.aig().int().nonnegative(),egressToday:f.aig().int().nonnegative()}).meta({id:"GetActivityStatsResponse"});f.Ikc({q:f.YjP().optional(),harness:f.YOg(ai).optional(),from:f.KCZ([af.p6(),af.w$()]).optional(),to:f.KCZ([af.p6(),af.w$()]).optional(),excludeEmpty:f.uEf().optional(),limit:ag.ai().int().min(1).max(100).default(50),cursor:f.YjP().optional()});let a6=f.Ikc({items:f.YOg(a4),nextCursor:f.YjP().nullable(),emptyCount:f.aig().int().nonnegative()}).meta({id:"ListActivitySessionsResponse"});f.Ikc({limit:ag.ai().int().min(1).max(500).default(100),cursor:f.YjP().optional(),order:f.k5n(["asc","desc"]).default("asc")}),f.Ikc({items:f.YOg(a3),nextCursor:f.YjP().nullable()}).meta({id:"ListSessionEventsResponse"}),f.Ikc({format:f.k5n(["ndjson","json"]).default("ndjson")}),f.Ikc({format:f.k5n(["csv","json"]).default("csv"),q:f.YjP().optional(),harness:f.YOg(ai).optional(),from:f.KCZ([af.p6(),af.w$()]).optional(),to:f.KCZ([af.p6(),af.w$()]).optional()}),f.Ikc({stats:a5,sessions:a6}).meta({id:"ActivityOverviewResponse"});let a7=f.k5n(["user","project","local","plugin"]),a8=f.Ikc({name:f.YjP().min(1),source:f.YjP().min(1),scope:a7,pluginName:f.YjP().optional(),version:f.YjP().optional(),description:f.YjP().optional(),updatedAt:af.w$().optional(),location:f.YjP().optional()}),a9=f.Ikc({event:f.YjP().min(1),matcher:f.YjP().optional(),command:f.YjP().min(1),timeout:f.aig().optional(),scope:a7,pluginName:f.YjP().optional(),location:f.YjP().optional()}),ba=f.Ikc({name:f.YjP().min(1),scope:a7,pluginName:f.YjP().optional(),marketplace:f.YjP().optional(),project:f.YjP().optional(),transport:f.YjP().min(1),command:f.YjP().optional(),url:f.YjP().optional(),envKeys:f.YOg(f.YjP()).optional(),location:f.YjP().optional()}),bb=f.Ikc({name:f.YjP().min(1),path:f.YjP().min(1),scope:a7,kind:f.YjP().min(1),detail:f.YjP().optional(),entryCount:f.aig().optional(),updatedAt:af.w$().optional()});f.Ikc({scannedAt:af.w$(),skills:f.YOg(a8),hooks:f.YOg(a9),mcpServers:f.YOg(ba),configFiles:f.YOg(bb),errors:f.YOg(f.Ikc({source:f.YjP(),reason:f.YjP()}))});let bc=f.Ikc({ruleId:f.YjP().min(1),version:f.YjP().min(1),span:ar,maskedMatch:f.YjP(),actionTaken:ap,confidence:f.aig().min(0).max(1)});f.Ikc({items:f.YOg(aV),scanEvent:aX,definitions:f.YOg(aY).optional(),findings:f.YOg(bc).optional()});let bd=f.k5n(["project","skill","mcp","hook","config"]).meta({id:"AssetType"}),be=f.k5n(["open","approved","blocked"]).meta({id:"AccessLevel"}),bf=f.k5n(["source","public-dep","vendored","config","data","docs","generated"]).meta({id:"Origin"}),bg=f.k5n(["known-good","risky","unapproved"]).meta({id:"TrustLevel"}),bh=f.k5n(["update","stale","conflict","unknown","change","untracked","risk","findings"]).meta({id:"Flag"}),bi=f.k5n(["public","private"]).meta({id:"Visibility"}),bj=f.k5n(["block","redact","warn"]).meta({id:"HarnessEventKind"}),bk=ai.extract(["ClaudeCode","Cursor","Codex","Antigravity","Copilot"]).meta({id:"HarnessId"}),bl=f.Ikc({open:f.aig().int().nonnegative(),approved:f.aig().int().nonnegative(),blocked:f.aig().int().nonnegative(),total:f.aig().int().nonnegative()}).meta({id:"AccessCounts"}),bm=f.Ikc({id:f.YjP(),type:bd,name:f.YjP(),sub:f.YjP(),flags:f.YOg(bh),trust:bg.optional()}).meta({id:"AssetSummary"}),bn=f.Ikc({id:f.YjP(),name:f.YjP(),repo:f.YjP(),visibility:bi,language:f.YjP(),policyDefault:be,updatedAt:af.w$(),accessCounts:bl,findingsCount:f.aig().int().nonnegative()}).meta({id:"ProjectSummary"}),bo=f.Ikc({type:bd,assets:f.YOg(bm)}),bp=f.Ikc({id:bk,label:f.YjP(),kind:f.YjP(),version:f.YjP(),sessions:f.aig().int().nonnegative(),assetCount:f.aig().int().nonnegative(),flagCount:f.aig().int().nonnegative(),projects:f.YOg(bn),categories:f.YOg(bo)}).meta({id:"HarnessSummary"});f.Ikc({items:f.YOg(bp)}).meta({id:"ListHarnessesResponse"});let bq=f.Ikc({type:bd,total:f.aig().int().nonnegative(),trustRollup:f.Ikc({"known-good":f.aig().int().nonnegative(),risky:f.aig().int().nonnegative(),unapproved:f.aig().int().nonnegative()}).partial().strict().optional(),flagRollup:f.Ikc({update:f.aig().int().nonnegative(),stale:f.aig().int().nonnegative(),conflict:f.aig().int().nonnegative(),unknown:f.aig().int().nonnegative(),change:f.aig().int().nonnegative(),untracked:f.aig().int().nonnegative(),risk:f.aig().int().nonnegative(),findings:f.aig().int().nonnegative()}).partial().strict(),items:f.YOg(bm)}).meta({id:"AssetGroup"});f.Ikc({groups:f.YOg(bq)}).meta({id:"ListAssetsResponse"});let br=f.Ikc({name:f.YjP(),signature:f.YjP(),description:f.YjP(),write:f.zMY(),risk:f.YjP().nullable()}).meta({id:"McpTool"}),bs=f.Ikc({id:f.YjP(),title:f.YjP(),note:f.YjP()});bm.extend({description:f.YjP().nullable(),trust:bg.nullable(),meta:f.g1P(f.YjP(),f.L5J()),finding:bs.nullable(),tools:f.YOg(br).optional()}).meta({id:"AssetDetail"}),f.Ikc({items:f.YOg(bn)}).meta({id:"ListProjectsResponse"}),f.Ikc({attention:f.aig().int().nonnegative(),byType:f.Ikc({project:f.aig().int().nonnegative(),skill:f.aig().int().nonnegative(),mcp:f.aig().int().nonnegative(),hook:f.aig().int().nonnegative(),config:f.aig().int().nonnegative()}),harnesses:f.aig().int().nonnegative(),mcpTrust:f.Ikc({"known-good":f.aig().int().nonnegative(),risky:f.aig().int().nonnegative(),unapproved:f.aig().int().nonnegative()})}).meta({id:"InventoryStats"});let bt=f.Ikc({path:f.YjP(),name:f.YjP(),origin:bf,access:be,isCustom:f.zMY(),findings:f.aig().int().nonnegative(),blockedAt:af.w$().nullable().optional(),note:f.YjP().nullable().optional()}).meta({id:"FileSummary"}),bu=f.Ikc({name:f.YjP(),path:f.YjP(),accessCounts:bl}).meta({id:"FolderSummary"});f.Ikc({project:f.Ikc({id:f.YjP(),repo:f.YjP(),visibility:bi}),path:f.YjP(),folders:f.YOg(bu).optional(),files:f.YOg(bt)}).meta({id:"ProjectTreeResponse"}),bt.extend({project:f.Ikc({repo:f.YjP(),visibility:bi,language:f.YjP(),policyDefault:be,updatedAt:af.w$()}),findingsRefs:f.YOg(f.Ikc({id:f.YjP(),title:f.YjP()}))}).meta({id:"FileDetail"}),f.Ikc({path:f.YjP(),access:be}).meta({id:"SetFileAccessBody"}),f.Ikc({file:bt,accessCounts:bl}).meta({id:"SetFileAccessResponse"}),f.Ikc({trust:bg}).meta({id:"SetMcpTrustBody"});let bv=f.Ikc({kind:bj,title:f.YjP(),detail:f.YjP(),occurredAt:af.w$(),findingId:f.YjP().nullable().optional()}).meta({id:"HarnessEventItem"});f.Ikc({counts:f.Ikc({block:f.aig().int().nonnegative(),redact:f.aig().int().nonnegative(),warn:f.aig().int().nonnegative()}),items:f.YOg(bv)}).meta({id:"HarnessEventsResponse"}),f.Ikc({jobId:f.YjP(),startedAt:af.w$()}).meta({id:"RescanResponse"}),f.Ikc({repo:f.YjP()}).meta({id:"ConnectProjectBody"}),f.Ikc({type:f.YOg(bd).optional(),q:f.YjP().optional()}),f.Ikc({path:f.YjP().optional(),q:f.YjP().optional(),filter:f.k5n(["blocked"]).optional()}),f.Ikc({path:f.YjP()}),f.Ikc({limit:ag.ai().int().min(1).max(50).default(7)});let bw=f.k5n(["provider","internal","external","ip"]).meta({id:"DestinationKind"}),bx=f.k5n(["https","http","sftp","grpc","smtp","ws","wss"]).meta({id:"Transport"}),by=f.k5n(["secrets","pii","customer","source","telemetry","logs","metrics","none"]).meta({id:"DataClass"}),bz=by.options,bA=f.k5n(["recognized","internal","unverified","ip"]).meta({id:"ShareTrustLevel"}),bB=f.k5n(["allow","block"]).meta({id:"EgressDecision"}),bC=f.k5n(["allowed","blocked","review"]).meta({id:"EgressStatus"}),bD=f.k5n(["raw_ip","unverified_domain","plaintext_transport"]).meta({id:"ReviewReason"}),bE=f.k5n(["GET","POST","PUT","DELETE","SDK","REF"]).meta({id:"HttpMethod"}),bF=f.Ikc({needsReview:f.zMY(),reasons:f.YOg(bD)}).meta({id:"ReviewInfo"}),bG=f.Ikc({port:f.aig().int().nullable(),geo:f.YjP().nullable(),ptr:f.YjP().nullable()}).meta({id:"DestinationNetwork"}),bH=f.Ikc({id:f.YjP(),method:bE,transport:bx,url:f.YjP(),template:f.zMY(),dataClass:by,lastSeen:af.w$(),callSiteCount:f.aig().int().nonnegative()}).meta({id:"EndpointSummary"}),bI=f.Ikc({id:f.YjP(),project:f.YjP(),file:f.YjP(),line:f.aig().int().nonnegative(),snippet:f.YjP(),dynamic:f.zMY(),vendored:f.zMY(),projectId:f.YjP().nullable()}).meta({id:"CallSite"}),bJ=bH.extend({sites:f.YOg(bI)}).meta({id:"EndpointWithSites"}),bK=f.Ikc({id:f.YjP(),kind:bw,name:f.YjP(),host:f.YjP(),providerId:f.YjP().nullable(),category:f.YjP(),trust:bA,status:bC,isCustom:f.zMY(),lastSeen:af.w$(),endpointCount:f.aig().int().nonnegative(),callSiteCount:f.aig().int().nonnegative(),transports:f.YOg(bx),dataClasses:f.YOg(by),review:bF,network:bG.nullable(),endpoints:f.YOg(bH)}).meta({id:"ShareDestinationSummary"});bK.omit({endpointCount:!0,callSiteCount:!0,endpoints:!0}).extend({note:f.YjP().nullable(),endpoints:f.YOg(bJ)}).meta({id:"ShareDestinationDetail"});let bL=f.Ikc({id:f.YjP(),kind:bw,name:f.YjP(),host:f.YjP(),providerId:f.YjP().nullable(),trust:bA,status:bC,review:bF,topDataClass:by,callSiteCount:f.aig().int().nonnegative(),lastSeen:af.w$()}).meta({id:"ReviewDestination"}),bM=f.Ikc({kind:bw,total:f.aig().int().nonnegative(),items:f.YOg(bK)}).meta({id:"ShareDestinationGroup"});f.Ikc({groups:f.YOg(bM)}).meta({id:"ListShareDestinationsResponse"}),f.Ikc({items:f.YOg(bL)}).meta({id:"NeedsReviewResponse"}),f.Ikc({destinations:f.aig().int().nonnegative(),endpoints:f.aig().int().nonnegative(),callSites:f.aig().int().nonnegative(),needsReview:f.aig().int().nonnegative(),insecure:f.aig().int().nonnegative(),byKind:f.Ikc({provider:f.aig().int().nonnegative(),internal:f.aig().int().nonnegative(),external:f.aig().int().nonnegative(),ip:f.aig().int().nonnegative()}),byTrust:f.Ikc({recognized:f.aig().int().nonnegative(),internal:f.aig().int().nonnegative(),unverified:f.aig().int().nonnegative(),ip:f.aig().int().nonnegative()})}).meta({id:"SharesStats"}),f.Ikc({decision:bB.nullable()}).meta({id:"SetEgressDecisionBody"}),f.Ikc({destination:bK}).meta({id:"SetEgressDecisionResponse"}),f.Ikc({q:f.YjP().optional(),kind:f.YOg(bw).optional(),groupBy:f.k5n(["destination"]).default("destination"),review:f.uEf().default(!1)}),f.Ikc({format:f.k5n(["csv","json"]).default("csv"),q:f.YjP().optional(),kind:f.YOg(bw).optional()});let bN=f.k5n(["npm","pypi","go","maven","rubygems","cargo","composer","nuget"]).meta({id:"EgressEcosystem"});f.Ikc({id:f.YjP(),name:f.YjP(),category:f.YjP(),hostSuffixes:f.YOg(f.YjP()).min(1),apiBase:f.YjP(),defaultDataClasses:f.YOg(by).min(1),sdks:f.jgl(bN,f.YOg(f.YjP()))}).meta({id:"ProviderRegistryEntry"});let bO=f.Ikc({file:f.YjP(),line:f.aig().int().positive(),snippet:f.YjP(),dynamic:f.zMY(),vendored:f.zMY()}).meta({id:"EgressCallSiteHit"}),bP=f.Ikc({host:f.YjP(),kind:bw,name:f.YjP(),category:f.YjP(),providerId:f.YjP().nullable(),trust:bA,network:bG.nullable(),method:bE,transport:bx,url:f.YjP(),template:f.zMY(),dataClass:by,site:bO}).meta({id:"ResolvedEgressHit"}),bQ=f.gMt("mode",[f.Ikc({mode:f.euz("walk"),walkedPrefix:f.YjP()}),f.Ikc({mode:f.euz("ledger"),scannedFiles:f.YOg(f.YjP()),deletedFiles:f.YOg(f.YjP())})]).meta({id:"EgressReconcile"});f.Ikc({projectKey:f.YjP().min(1),project:f.YjP(),projectId:f.YjP().nullable(),reconcile:bQ,hits:f.YOg(bP)}).meta({id:"RecordProjectEgressInput"}),f.Ikc({destinations:f.aig().int().nonnegative(),endpoints:f.aig().int().nonnegative(),callSites:f.aig().int().nonnegative(),truncated:f.zMY(),droppedFiles:f.YOg(f.YjP()).default([])}).meta({id:"EgressWriteSummary"});let bR="control-plane-credential.json",bS=f.Ikc({specVersion:f.euz(1),endpoint:f.YjP().min(1),apiKey:f.YjP().min(1),keyPrefix:f.YjP().min(1).max(16).optional(),mintedAt:af.w$().optional()}),bT=new Set(["localhost","127.0.0.1","::1","[::1]"]);function bU(a){return null===function(a){let b;try{b=new URL(a)}catch{return"unparseable"}return""!==b.username||""!==b.password?"userinfo":""!==b.search||""!==b.hash?"query-or-fragment":"https:"===b.protocol||"http:"===b.protocol&&bT.has(b.hostname)?null:"insecure"}(a)}let bV=f.Ikc({packId:f.YjP().min(1),version:f.YjP().min(1),enabled:f.zMY(),updatedAt:f.YjP().nullable()}).meta({id:"StorePosturePack"}),bW=f.Ikc({total:f.aig().int().min(0),disabled:f.aig().int().min(0),byAction:f.Ikc({warn:f.aig().int().min(0),redact:f.aig().int().min(0),block:f.aig().int().min(0),allow:f.aig().int().min(0),log:f.aig().int().min(0)}).strict()}).meta({id:"StorePosturePolicyCounts"}),bX=f.Ikc({package:f.YjP().min(1).max(200),version:f.YjP().min(1).max(64),ossVersion:f.YjP().max(64).nullable(),policyBundleVersion:f.YjP().max(200).nullable(),policyFetchedAt:f.aig().int().min(0).max(0xe677d21fdbff).nullable(),installedVersion:f.YjP().max(64).nullable().optional(),buildSchemaVersion:f.aig().int().min(0).max(0x7fffffff).optional()}).meta({id:"StorePosturePlugin"});f.Ikc({deviceId:f.OsD(),hostname:f.YjP().min(1).max(253),capturedAt:f.aig().int().min(0).max(0xe677d21fdbff),storePresent:f.zMY(),schemaVersion:f.aig().int().min(0).max(0x7fffffff).nullable(),findingsTotal:f.aig().int().min(0).max(0x7fffffff),findingsFirstAt:f.aig().int().min(0).max(0xe677d21fdbff).nullable(),findingsLastAt:f.aig().int().min(0).max(0xe677d21fdbff).nullable(),packs:f.YOg(bV).max(500),policyCounts:bW,plugin:bX.optional()}).meta({id:"StorePostureSnapshot"});let bY="capture/",bZ=aX.extend({inspections:f.YOg(aU).default([])}).refine(a=>a.inspections.every(a=>!a.ruleVersion.startsWith(bY)),{message:`inspections[].ruleVersion must not start with \`${bY}\` — that namespace is reserved for capture definitions the control plane mints itself`,path:["inspections"]}).meta({id:"RecordAuditEventRequest"});f.Ikc({events:f.YOg(bZ).min(1).max(50)}).meta({id:"RecordAuditEventBatch"});let b$=f.Ikc({host:f.YjP(),kind:bw,name:f.YjP(),category:f.YjP(),providerId:f.YjP().nullable().optional(),trust:bA,network:bG.nullable(),method:bE,transport:bx,url:f.YjP(),template:f.zMY(),dataClass:by,site:f.Ikc({file:f.YjP(),line:f.aig().int().positive(),dynamic:f.zMY(),vendored:f.zMY()})}).meta({id:"EgressIngestHit"});f.Ikc({projectKey:f.YjP().regex(/^[0-9a-f]{64}$/,"projectKey must be a 64-character lowercase hex digest"),project:f.YjP(),reconcile:bQ,hits:f.YOg(b$)}).meta({id:"EgressIngestRequest"}),f.Ikc({accepted:f.aig().int().nonnegative(),duplicates:f.aig().int().nonnegative()}),f.Ikc({accepted:f.aig().int().nonnegative()});let b_=/^[^\p{Cc}\p{Cf}]*$/u,b0=a=>f.YjP().max(a).regex(b_,"must not contain control characters");f.Ikc({tenantName:b0(200),userEmail:b0(320),role:b0(64),keyKind:b0(64),serverTime:b0(64)}),f.Ikc({error:f.Ikc({code:f.YjP().optional(),message:f.YjP().optional()}).optional()});let b1=f.k5n(["unauthorized","forbidden","route-absent","invalid-request","rejected","unreachable"]).extract(["unauthorized","forbidden","unreachable"]);f.Ikc({deviceId:b0(128).min(1),hostname:b0(255).min(1),os:b0(64).min(1),cliVersion:b0(64).min(1),label:b0(200).optional()}).meta({id:"AttachDeviceRequest"}),f.Ikc({deviceCode:b0(128).min(1)}).meta({id:"AttachTokenRequest"}),f.Ikc({deviceCode:b0(128),userCode:b0(32),verificationUri:b0(512),verificationUriComplete:b0(512).optional(),expiresIn:f.aig().int().positive(),interval:f.aig().int().positive()});let b2=f.Ikc({status:f.euz("pending")}),b3=f.Ikc({status:f.euz("slow_down"),interval:f.aig().int().positive()}),b4=f.Ikc({status:f.euz("denied"),message:b0(500).optional()}),b5=f.Ikc({status:f.euz("expired")}),b6=f.Ikc({status:f.euz("issued"),apiKey:f.YjP().min(1).max(512),endpoint:b0(512),tenantName:b0(200).optional(),userEmail:b0(320).optional()});f.KCZ([b6,b2,b3,b4,b5,f.Ikc({status:b0(64)})]);let b7=f.k5n(["shares_rescan"]),b8=f.Ikc({id:b0(128).min(1),kind:b7,issuedAt:b0(64).min(1),expiresAt:b0(64).min(1)}).strict();f.Ikc({command:b8.nullable()});let b9=f.k5n(["scan_failed","no_projects","expired"]);f.gMt("outcome",[f.Ikc({outcome:f.euz("reported"),projectsScanned:f.aig().int().nonnegative()}).strict(),f.Ikc({outcome:f.euz("failed"),reason:b9,projectsScanned:f.aig().int().nonnegative()}).strict()]);let ca=f.YjP().regex(/^[a-z][a-z0-9-]*$/),cb=f.YjP().regex(/^[a-z][a-z0-9-]*$/),cc=f.YjP().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-.]+)?$/),cd=f.k5n(["labs","user","org"]),ce=f.k5n(["keyword","regex"]).meta({id:"MatcherType"});f.k5n(["safe","quarantined"]).meta({id:"RuleProbeVerdict"});let cf=f.rej({type:f.euz("keyword"),keywords:f.YOg(f.YjP().min(1)).min(1),caseSensitive:f.zMY().default(!1)});function cg(a){return a.replace(/[gy]/g,"")}let ch=f.rej({type:f.euz("regex"),pattern:f.YjP().min(1).max(2e3),flags:f.YjP().default("gi"),captureGroup:f.aig().int().nonnegative().optional()}).refine(a=>(function(a,b){try{return new RegExp(a,b),!0}catch{return!1}})(a.pattern,a.flags),{message:"pattern/flags do not form a valid JavaScript regular expression",path:["pattern"]}).refine(a=>!function(a){return void 0===a||0===a}(a.captureGroup)||!function(a,b){try{let c=new RegExp(a,cg(b));return c.exec("")?.[0].length===0}catch{return!1}}(a.pattern,a.flags),{message:'a whole-match regex that can match the empty string (e.g. "\\d*", "a?", "(?:)") can hang the matcher — scope the quantifier to a captureGroup, or require at least one character',path:["pattern"]}).superRefine((a,b)=>{if(void 0===a.captureGroup)return;let c=function(a,b){try{let c=RegExp(`${a}|`,cg(b)).exec("");return c?c.length-1:void 0}catch{return}}(a.pattern,a.flags);void 0===c||a.captureGroup<=c||b.addIssue({code:"custom",path:["captureGroup"],message:`captureGroup ${String(a.captureGroup)} is out of range — the pattern declares ${String(c)} capture group(s), so valid values are 0-${String(c)}. An out-of-range group never matches, which would make the rule silently never fire.`})}),ci=f.gMt("type",[cf,ch]).meta({id:"Matcher"});ce.options;let cj=f.rej({extensions:f.YOg(f.YjP().regex(/^\.[A-Za-z0-9]+$/)).min(1)}).meta({id:"AppliesTo"}),ck=f.k5n(["entropy","luhn"]).meta({id:"PostValidatorName"}),cl=f.KCZ([ck,f.rej({name:ck,config:f.g1P(f.YjP(),f.L5J()).optional()})],{error:()=>`not a valid post-validator: use a bare name (${ck.options.map(a=>JSON.stringify(a)).join(" or ")}) or { "name": ..., "config": { ... } }. An unrecognized name would be a false-positive guard that never runs.`}).meta({id:"PostValidatorRef"}),cm=f.rej({categories:f.YOg(an).min(1).optional(),ruleIds:f.YOg(f.YjP().min(1)).min(1).optional(),labels:f.YOg(f.YjP().min(1)).min(1).optional(),windowChars:f.aig().int().positive().default(160),confidenceBoost:f.aig().min(0).max(.3).optional()}).refine(a=>(a.categories?.length??0)+(a.ruleIds?.length??0)+(a.labels?.length??0)>0,{message:"requiresNearby needs at least one of categories, ruleIds, or labels"}).meta({id:"RequiresNearby"});f.rej({label:f.YjP(),text:f.YjP().max(5e4),shouldMatch:f.zMY(),filePath:f.YjP().optional(),expectedSpans:f.YOg(f.rej({start:f.aig(),end:f.aig()})).optional()}).meta({id:"RuleFixture"});let cn=f.rej({specVersion:f.euz(1),id:f.YjP().regex(/^[a-z][a-z0-9-]*\/[a-z][a-z0-9-]*$/),name:f.YjP(),category:an,severity:ao,matcher:ci,appliesTo:cj.optional(),postValidators:f.YOg(cl).optional(),requiresNearby:cm.optional(),examples:f.YOg(f.YjP()).optional()}).meta({id:"Rule"}),co=f.Ikc({name:f.YjP(),email:f.Rpp().optional(),url:f.OZ5().optional()}).meta({id:"Author"});f.Ikc({specVersion:f.euz(1),id:f.YjP(),name:f.YjP(),version:f.YjP(),rules:f.YOg(f.YjP()),description:f.YjP().optional(),author:co.optional(),license:f.YjP().optional(),sourceUrl:f.OZ5().optional()}).meta({id:"PackManifest"});let cp=f.k5n(["library","custom"]).meta({id:"OriginEnum"}),cq=f.k5n(["all","library","custom","customized","updates"]),cr=f.k5n(["new","imported","update"]).meta({id:"LibraryStateEnum"}),cs=f.Ikc({all:f.aig().int().nonnegative(),library:f.aig().int().nonnegative(),custom:f.aig().int().nonnegative(),customized:f.aig().int().nonnegative(),updates:f.aig().int().nonnegative()}).meta({id:"DetectionCounts"}),ct=f.Ikc({id:f.YjP(),name:f.YjP(),version:cc,enabled:f.zMY(),origin:cp,publisher:ca.optional(),publisherKind:cd.optional(),ruleCount:f.aig().int().nonnegative(),namespace:ca,packId:cb,policyId:f.YjP().optional(),latestVersion:cc.optional()}).meta({id:"DetectionListItem"});f.Ikc({counts:cs,items:f.YOg(ct)}).meta({id:"ListDetectionsResponse"}),f.Ikc({filter:cq.optional().default("all"),q:f.YjP().optional()}),f.Ikc({detections:f.aig().int().nonnegative(),rules:f.aig().int().nonnegative(),active:f.aig().int().nonnegative(),findingsLast30d:f.aig().int().nonnegative()}).meta({id:"DetectionStats"});let cu=f.Ikc({id:f.YjP(),name:f.YjP(),category:an,severity:ao,matcher:ci,appliesTo:cj.optional(),postValidators:f.YOg(cl).optional(),requiresNearby:cm.optional(),examples:f.YOg(f.YjP()).optional()}).meta({id:"DetectionRule"}),cv=f.Ikc({available:f.zMY(),latestVersion:cc,latestRuleCount:f.aig().int().nonnegative().optional()}).nullable().meta({id:"DetectionUpdate"});f.Ikc({id:f.YjP(),name:f.YjP(),version:cc,enabled:f.zMY(),origin:cp,publisher:ca.optional(),publisherKind:cd.optional(),ruleCount:f.aig().int().nonnegative(),namespace:ca,packId:cb,description:f.YjP().optional(),editedAt:af.w$(),findingsLast30d:f.aig().int().nonnegative(),latestVersion:cc.nullable().optional(),update:cv,rules:f.YOg(cu),modified:f.zMY(),policyId:f.YjP().optional()}).meta({id:"DetectionDetail"});let cw=f.Ikc({id:f.YjP(),name:f.YjP(),publisher:ca,publisherKind:cd.optional(),category:an.optional(),version:cc,ruleCount:f.aig().int().nonnegative(),description:f.YjP().optional(),updatedAt:af.w$(),state:cr,importedAs:f.YjP().nullable()}).meta({id:"LibraryItem"});function cx(a,b,c){return void 0!==c&&b.success&&void 0!==b.data?{[a]:b.data}:{}}f.Ikc({categories:f.YOg(an),items:f.YOg(cw)}).meta({id:"ListLibraryResponse"}),f.Ikc({libraryId:f.YjP().refine(a=>/^[^/]+\/[^/]+$/.test(a),{message:"libraryId must be in namespace/packId format"})}).meta({id:"ImportDetectionRequest"});let cy={library:!0,custom:!0};function cz(a){return null!=a&&Object.hasOwn(cy,a)?a:"library"}function cA(a){return{id:`${a.namespace}/${a.packId}`,name:a.name,version:a.version,enabled:a.enabled,origin:cz(a.origin),namespace:a.namespace,packId:a.packId,ruleCount:a.ruleCount,...null!=a.policyId?{policyId:a.policyId}:{},...null!=a.latestVersion?{latestVersion:a.latestVersion}:{}}}function cB(a,b,c){let d=a.rules.flatMap(a=>{var b;let c=ci.safeParse(a.matcher);return c.success?[{id:a.id,name:a.name,category:a.category,severity:a.severity,matcher:c.data,...cx("appliesTo",cj.safeParse(a.appliesTo),a.appliesTo),...cx("postValidators",cl.array().safeParse(a.postValidators),a.postValidators),...cx("requiresNearby",cm.safeParse(a.requiresNearby),a.requiresNearby),...cx("examples",{success:Array.isArray(b=a.examples)&&b.every(a=>"string"==typeof a),data:a.examples},a.examples)}]:[]});return{id:`${a.namespace}/${a.packId}`,name:a.name,version:a.version,enabled:a.enabled,origin:cz(a.origin),namespace:a.namespace,packId:a.packId,ruleCount:a.rules.length,editedAt:a.updatedAt.toISOString(),findingsLast30d:b,latestVersion:c?c.latestVersion:null,update:c,rules:d,modified:!1,...null!=a.policyId?{policyId:a.policyId}:{}}}function cC(a){let b=a.indexOf("/");return b<1||b===a.length-1?null:{namespace:a.slice(0,b),packId:a.slice(b+1)}}function cD(a,b){let c=a.filter(a=>null!=a.latestVersion),d=a=>cz(a.origin),e={all:a.length,library:a.filter(a=>"library"===d(a)).length,custom:a.filter(a=>"custom"===d(a)).length,customized:0,updates:c.length},f=b.filter,g="customized"===f?[]:"custom"===f?a.filter(a=>"custom"===d(a)):"library"===f?a.filter(a=>"library"===d(a)):"updates"===f?[...c]:[...a];if(b.q){let a=b.q.toLowerCase();g=g.filter(b=>b.name.toLowerCase().includes(a)||b.packId.toLowerCase().includes(a)||b.namespace.toLowerCase().includes(a))}return g.sort((a,b)=>a.enabled!==b.enabled?a.enabled?-1:1:a.name.localeCompare(b.name)),{counts:e,items:g.map(cA)}}let cE=f.k5n(["prompt","response","code_change","tool_use"]).meta({id:"EventKind"}),cF=cE.options.map(a=>`'${a}'`).join(","),cG=f.Ikc({sessionId:f.YjP().optional(),repo:f.YjP().optional(),filePath:f.YjP().optional(),toolName:f.YjP().optional(),gitignored:f.zMY().optional(),wholeFile:f.zMY().optional(),model:f.YjP().optional(),turnIndex:f.aig().int().nonnegative().optional(),correlationId:f.uRe().optional(),traceId:f.YjP().regex(/^[0-9a-f]{32}$/).optional(),exceptionIds:f.YOg(f.OsD()).optional(),messageId:f.YjP().min(1).optional(),conversationId:f.YjP().optional(),inspectionMs:f.aig().int().nonnegative().optional(),redactDegradedTo:ap.optional()}).meta({id:"EventMetadata"}),cH=f.Ikc({id:f.OsD(),sourceTool:ak,kind:cE,occurredAt:af.w$(),contentHash:f.YjP(),content:f.YjP(),metadata:cG.optional()}).meta({id:"Event"}).meta({id:"IngestEvent"});f.Ikc({events:f.YOg(cH).min(1).max(100),dedupe:f.euz("content-hash").optional()}).meta({id:"IngestBatch"});let cI=f.k5n(["once","temporary","permanent"]),cJ=f.Ikc({repo:f.YjP().optional(),sourceTool:f.YjP().optional(),provider:f.YjP().optional()}).strict(),cK=f.k5n(["suppress","reveal_to_model"]),cL=f.Ikc({id:f.OsD(),ruleId:f.YjP(),category:an,valueFingerprint:f.YjP().regex(/^[0-9a-f]{64}$/),keyVersion:f.aig().int().positive(),maskedValue:f.YjP(),capability:cK.default("suppress"),scope:cI,expiresAt:af.w$().nullable(),maxUses:f.aig().int().positive().nullable(),useCount:f.aig().int().nonnegative(),lastUsedAt:af.w$().nullable(),justification:f.YjP().min(1),conditions:cJ.nullable(),createdBy:f.YjP(),createdVia:f.k5n(["cli-approve","cli-add","web-approve","web-add","api","setup-triage"]),createdAt:af.w$(),updatedAt:af.w$(),revokedAt:af.w$().nullable(),revokedBy:f.YjP().nullable(),revokeReason:f.YjP().nullable()}),cM=cL.pick({id:!0,ruleId:!0,valueFingerprint:!0,keyVersion:!0,capability:!0,expiresAt:!0,maxUses:!0,useCount:!0,conditions:!0});function cN(a){let{valueFingerprint:b,...c}=a;return c}function cO(a){let{valueFingerprint:b,...c}=a;return c}function cP(a,b){return"present"===b.status&&b.version===a}cL.omit({valueFingerprint:!0});let cQ=f.YjP().optional();f.Ikc({reference:f.YjP(),scope:f.YjP(),reason:f.YjP(),confirmation:cQ}),f.Ikc({ruleId:f.YjP(),value:f.YjP(),scope:f.YjP(),reason:f.YjP(),confirmation:cQ}),f.Ikc({pointer:f.YjP(),scope:f.YjP(),justification:f.YjP(),confirmation:cQ}),f.Ikc({id:f.YjP(),reason:f.YjP()}),f.Ikc({confirmation:f.YjP()});let cR=aw.options;function cS(a){if("code_change"===a.kind)return{state:"local_scan"};if(null!==a.syncedAt&&a.syncedAt>0)return{state:"sent",at:U(a.syncedAt)};if(null!==a.syncedAt){var b;let c=null!==(b=a.syncFailure)&&cR.includes(b)?b:void 0;return{state:"not_sent",...null===a.syncFailedAt?{}:{at:U(a.syncFailedAt)},...void 0===c?{}:{reason:c}}}return 1===a.outboxOwed||null!==a.syncClaimedAt?{state:"queued"}:{state:"never_offered"}}function cT(a,b){return Object.hasOwn(a,b)?a[b]:void 0}function cU(a){return cT({log:"monitored",block:"blocked",redact:"redacted",warn:"warned",allow:"allowed"},a)??"allowed"}function cV(a){if("code_context"===a)return"source_code";let b=au.safeParse(a);return b.success?b.data:"custom"}function cW(a){return cT(am,a)??ah.Api}let cX=["open","handled","dismissed","resolved"];function cY(a){let b=new Set(a.filter(a=>void 0!==a));if(0!==b.size){for(let a of cX)if(b.has(a))return a}}function cZ(a){return"code_change"!==a.kind?"handled":null===a.findingKey?"open":"resolved"===a.latestResolutionStatus?"resolved":"dismissed"===a.latestResolutionStatus?"dismissed":"open"}function c$(a,b={}){let c=b.packNames,d=[];for(let[b,e]of a){let a=[...e.users??[]].sort((a,b)=>a.name.localeCompare(b.name)||a.id.localeCompare(b.id)),f=[...new Set(e.sourceTools.map(cW))].sort(),g=new Set(e.actionsTaken.map(cU)),h=1===g.size?[...g][0]??null:null,i=cV(e.category??"custom"),j={id:b,category:i,subtype:b,severity:e.severity??"low",detection:{id:b,name:c?.get(b)??null},policy:{id:`category:${i}`,name:i},instanceCount:e.instanceCount,providers:f,aggregateAction:h,latestDetectedAt:e.latestDetectedAt,status:cY(e.statusInputs.map(cZ)),...a.length>0?{users:a}:{}};c1.set(j,[...g]),void 0!==e.searchText&&c_.set(j,c0(j,e.searchText)),d.push(j)}return d}let c_=new WeakMap;function c0(a,b){return[a.subtype,a.category,a.policy.name,a.id,...(a.users??[]).map(a=>a.name),...void 0===b?[]:[b]].join(" ").toLowerCase()}let c1=new WeakMap;function c2(a){return c1.get(a)??[]}function c3(a,b){let c=new Set(b),d=0;for(let b of a){if(void 0===b.count)return null;c.has(cZ(b))&&(d+=b.count)}return d}function c4(a,b){let c=a;if(b.severity&&b.severity.length>0){let a=new Set(b.severity);c=c.filter(b=>a.has(b.severity))}if(b.providers&&b.providers.length>0){let a=new Set(b.providers);c=c.filter(b=>b.providers.some(b=>a.has(b)))}if(b.actions&&b.actions.length>0){let a=new Set(b.actions);c=c.filter(b=>c2(b).some(b=>a.has(b)))}if(b.subtype&&b.subtype.length>0){let a=new Set(b.subtype);c=c.filter(b=>a.has(b.subtype))}if(b.statuses&&b.statuses.length>0){let a=new Set(b.statuses);c=c.filter(b=>void 0!==b.status&&a.has(b.status))}if(b.q){let a=b.q.toLowerCase();c=c.filter(b=>(function(a){let b=c_.get(a);if(void 0!==b)return b;let c=c0(a);return c_.set(a,c),c})(b).includes(a))}return c}let c5=Object.fromEntries(ao.options.map((a,b)=>[a,b]));function c6(a,b){let c=(cT(c5,a.severity)??-1)-(cT(c5,b.severity)??-1);if(0!==c)return c;let d=b.latestDetectedAt.localeCompare(a.latestDetectedAt);return 0!==d?d:a.id.localeCompare(b.id)}function c7(a){return[...a].sort(c6)}function c8(a,b){let c=c4(a,{providers:b.providers,actions:b.actions,statuses:b.statuses,q:b.q,subtype:b.subtype}),d=new Map;for(let a of c)d.set(a.severity,(d.get(a.severity)??0)+1);let e=c4(a,{actions:b.actions,statuses:b.statuses,q:b.q,subtype:b.subtype,severity:b.severity}),f=new Map;for(let a of e)for(let b of a.providers)f.set(b,(f.get(b)??0)+1);let g=c4(a,{providers:b.providers,statuses:b.statuses,q:b.q,subtype:b.subtype,severity:b.severity}),h=new Map;for(let a of g)for(let b of c2(a))h.set(b,(h.get(b)??0)+1);let i=c4(a,{providers:b.providers,actions:b.actions,statuses:b.statuses,q:b.q,severity:b.severity}),j=new Map;for(let a of i)j.set(a.subtype,(j.get(a.subtype)??0)+1);let k=c4(a,{providers:b.providers,actions:b.actions,q:b.q,subtype:b.subtype,severity:b.severity}),l=new Map;for(let a of k)void 0!==a.status&&l.set(a.status,(l.get(a.status)??0)+1);let m=a=>[...a.entries()].map(([a,b])=>({value:a,count:b}));return{severity:m(d),provider:m(f),action:m(h),subtype:m(j),status:m(l)}}function c9(a,b){let c=a[Symbol.iterator](),d=b[Symbol.iterator]();for(;;){let a=c.next(),b=d.next();if(a.done&&b.done)return 0;if(a.done)return -1;if(b.done)return 1;let e=a.value.codePointAt(0)??0,f=b.value.codePointAt(0)??0;if(e!==f)return e-f}}let da=["severity","subtype","providers","actions","statuses","deliveries","tools","repo","file","q"];function db(a,b,c){for(let d of da)if(d!==c&&!function(a,b,c){switch(c){case"severity":return!b.severity?.length||b.severity.includes(a.severity);case"subtype":return!b.subtype?.length||b.subtype.includes(a.ruleId);case"providers":return!b.providers?.length||b.providers.includes(cW(a.sourceTool));case"actions":return!b.actions?.length||b.actions.includes(cU(a.actionTaken));case"statuses":return!b.statuses?.length||void 0!==a.status&&b.statuses.includes(a.status);case"deliveries":return!b.deliveries?.length||void 0!==a.delivery&&b.deliveries.includes(a.delivery.state);case"tools":return!b.tools?.length||void 0!==a.toolName&&b.tools.includes(a.toolName);case"repo":return void 0===b.repo||a.repo===b.repo;case"file":return void 0===b.file||a.file===b.file;case"q":return!b.q||[a.ruleId,a.category,a.maskedMatch,a.repo,a.file,a.toolName?`via ${a.toolName}`:"",a.id,a.user?.name??""].join(" ").toLowerCase().includes(b.q.toLowerCase())}}(a,b,d))return!1;return!0}function dc(a){return[...a.entries()].map(([a,b])=>({value:a,count:b})).sort((a,b)=>b.count-a.count||a.value.localeCompare(b.value)||c9(a.value,b.value))}function dd(a,b,c=1){a.set(b,(a.get(b)??0)+c)}function de(a){let b=new Map,c=new Map,d=new Map,e=new Map,f=new Map,g=new Map,h=new Map;return{add(i){db(i,a,"severity")&&dd(b,i.severity),db(i,a,"subtype")&&dd(c,i.ruleId),db(i,a,"providers")&&dd(d,cW(i.sourceTool)),db(i,a,"actions")&&dd(e,cU(i.actionTaken)),void 0!==i.status&&db(i,a,"statuses")&&dd(f,i.status),void 0!==i.toolName&&db(i,a,"tools")&&dd(g,i.toolName),void 0!==i.delivery&&db(i,a,"deliveries")&&dd(h,i.delivery.state)},facets:()=>({severity:dc(b),subtype:dc(c),provider:dc(d),action:dc(e),status:dc(f),tool:dc(g),deployment:dc(h)})}}function df(a){let b=cV(a.category);return{id:a.id,provider:cW(a.sourceTool),repo:a.repo,file:a.file,...void 0===a.toolName?{}:{toolName:a.toolName},eventId:a.eventId,...void 0===a.sessionId?{}:{sessionId:a.sessionId},...void 0===a.delivery?{}:{delivery:a.delivery},...void 0===a.user?{}:{user:a.user},action:cU(a.actionTaken),detectedAt:a.occurredAt,confidence:a.confidence,...void 0===a.status?{}:{status:a.status},groupId:a.ruleId,category:b,subtype:a.ruleId,severity:a.severity,match:{maskedValue:a.maskedMatch,contextPrefix:""},detection:{id:a.ruleId,name:null},policy:{id:`category:${b}`,name:b}}}function dg(){return{instanceCount:0,maxSeverityRank:Number.MAX_SAFE_INTEGER,maxSeverity:"low",latestDetectedAt:"",statuses:[],ruleIds:new Set}}function dh(a,b){a.instanceCount+=1;let c=cT(c5,b.severity)??Number.MAX_SAFE_INTEGER-1;c<a.maxSeverityRank&&(a.maxSeverityRank=c,a.maxSeverity=b.severity),b.occurredAt>a.latestDetectedAt&&(a.latestDetectedAt=b.occurredAt),a.statuses.push(b.status),a.ruleIds.add(b.ruleId)}function di(a,b){let c=cT(c5,a.maxSeverity)??-1,d=cT(c5,b.maxSeverity)??-1;if(c!==d)return c-d;if(a.latestDetectedAt!==b.latestDetectedAt)return a.latestDetectedAt<b.latestDetectedAt?1:-1;let e=c9(a.repo,b.repo);return 0!==e?e:c9(a.file,b.file)}function dj(a,b){return`${dk(a)}/${dk(b)}`}function dk(a){return encodeURIComponent(a.replace(/[\uD800-\uDFFF]/gu,"�"))}let dl=f.Ikc({id:f.OsD(),namespace:ca,packId:cb,version:cc,name:f.YjP(),enabled:f.zMY().default(!0),policyId:f.YjP().optional()}).meta({id:"InstalledPack"});f.Ikc({namespace:ca,packId:cb,version:cc}).meta({id:"InstallPackRequest"}),f.Ikc({items:f.YOg(dl)}).meta({id:"ListInstalledPacksResponse"}),f.Ikc({enabled:f.zMY().optional(),policyId:f.YjP().nullable().optional()}).refine(a=>Object.keys(a).some(b=>void 0!==a[b]),{message:"At least one field must be provided"}).meta({id:"PatchInstalledPackRequest"});let dm=f.k5n(["global","repo","user"]).meta({id:"PolicyScope"}),dn=f.KCZ([f.Ikc({ruleId:f.YjP()}),f.Ikc({category:an})]).meta({id:"PolicyTarget"}),dp=f.k5n(["builtin","custom"]).meta({id:"PolicyKind"}),dq=f.k5n(["builtin","authored"]).meta({id:"PolicyProvenance"}),dr=f.Ikc({id:f.OsD(),scope:dm,target:dn,action:ap,enabled:f.zMY().default(!0),customKeywords:f.YOg(f.YjP()).optional(),name:f.YjP().optional(),provenance:dq.optional()}).meta({id:"Policy"}),ds=["monitor","warn","redact","vault","block"],dt=f.k5n(ds).meta({id:"BuiltinPolicyId"}),du=dt.extract(["monitor","warn","block"]).meta({id:"RedactFallback"}),dv=f.Ikc({version:f.YjP(),policies:f.YOg(dr),rules:f.YOg(cn).optional(),rulesComplete:f.zMY().optional(),exceptions:f.YOg(cM).optional(),reversibleRuleIds:f.YOg(f.YjP()).optional(),ruleVersions:f.g1P(f.YjP(),f.YjP()).optional(),prohibitedModels:f.YOg(f.YjP()).optional(),redactFallback:du.optional(),customKeywords:f.YOg(f.YjP()),fetchedAt:af.w$()}).meta({id:"PolicyBundle"});[...Object.keys(dv.shape),...Object.keys(dr.shape).map(a=>`policies.${a}`),...dn.options.flatMap(a=>"shape"in a?Object.keys(a.shape):[]).map(a=>`policies.target.${a}`),...Object.keys(cM.shape).map(a=>`exceptions.${a}`)].sort().join(",");let dw=["config"],dx=an.options.filter(a=>!dw.includes(a)),dy={secret:"critical",financial:"critical",code_flaw:"critical",pii:"high",phi:"high",custom:"high",code_context:"low",config:"low"},dz=ds,dA={monitor:{name:"Monitor",action:"log",reversible:!1,description:"Log every match for audit. The request is allowed through untouched."},warn:{name:"Warn",action:"warn",reversible:!1,description:"Allow the request, but warn the user inline before it is sent."},redact:{name:"Redact",action:"redact",reversible:!1,description:"Strip the matched value from the request and destroy it, then continue. What was removed cannot be recovered."},vault:{name:"Redact & Vault",action:"redact",reversible:!0,description:"Strip the matched value from the request and keep an encrypted, recoverable copy in the local vault, leaving a pointer in its place. Needs the vault consent granted under Settings; without it this behaves as Redact."},block:{name:"Block",action:"block",reversible:!1,description:"Refuse the request entirely whenever any rule in this detection matches."}};function dB(a){return dA[a].action}let dC=[...new Set(ds.map(dB))],dD=[...aq.filter(a=>!dC.includes(a)),...dC];function dE(a){return dD.indexOf(a)}function dF(a,b){return dE(a)>=dE(b)}function dG(a,b){return dE(a)>=dE(b)?a:b}function dH(a){return ds.find(b=>dF(dB(b),a))??"block"}f.Ikc({floor:dt,locked:f.zMY()}).describe("PackPolicyFloor");let dI=ds.filter(a=>!dA[a].reversible);ds.filter(a=>dA[a].reversible);let dJ=f.k5n(dI).meta({id:"CategoryPolicyId"});function dK(a){let b=dt.safeParse(a??dN);return dA[b.success?b.data:dN].reversible}let dL=Object.fromEntries(an.options.map(a=>[a,dB(function(a){if(dw.includes(a))return"monitor";let b=dy[a];return"critical"===b||"high"===b?"warn":"monitor"}(a))])),dM=Object.fromEntries(ds.map(a=>[a,{id:a,...dA[a]}])),dN="monitor";function dO(a){let b=dt.safeParse(a??dN);return dM[b.success?b.data:dN].action}let dP=f.Ikc({id:f.YjP(),name:f.YjP(),ruleCount:f.aig().int().nonnegative(),enabled:f.zMY()}).meta({id:"UsedByItem"}),dQ=f.Ikc({id:f.YjP(),kind:dp,name:f.YjP(),enabled:f.zMY(),usedByCount:f.aig().int().nonnegative()}).meta({id:"PolicyListItem"});f.Ikc({items:f.YOg(dQ)}).meta({id:"ListPoliciesResponse"}),f.Ikc({specVersion:f.euz(1),id:f.YjP(),kind:dp,name:f.YjP(),enabled:f.zMY(),description:f.YjP(),usedBy:f.YOg(dP)}).meta({id:"PolicyDetail"}),f.Ikc({policies:f.aig().int().nonnegative(),builtin:f.aig().int().nonnegative(),custom:f.aig().int().nonnegative(),detectionsGoverned:f.aig().int().nonnegative()}).meta({id:"PolicyStatsResponse"});let dR=2,dS=an.options.join("|"),dT=RegExp(`\\[\\[aka:(?:${dS}):[A-Z2-7]{2,7}\\.[A-Z2-7]{26}\\.[A-Z2-7]{16}\\]\\]`),dU=RegExp(`^${dT.source}$`);f.YjP().regex(dU),f.Ikc({category:an,keyVersion:f.aig().int().positive(),pointerId:f.YjP(),tag:f.YjP()}),f.Ikc({pointerId:f.YjP(),valueFingerprint:f.YjP().regex(/^[0-9a-f]{64}$/),valueIdentityFingerprint:f.YjP().regex(/^[0-9a-f]{64}$/),fingerprintKeyVersion:f.aig().int().positive(),keyVersion:f.aig().int().positive(),category:an,ruleId:f.YjP(),maskedMatch:f.YjP(),provider:f.YjP().optional(),ciphertext:f.YjP(),nonce:f.YjP(),authTag:f.YjP(),occurrenceCount:f.aig().int().nonnegative(),userAuthorized:f.zMY(),firstSeen:f.YjP(),lastSeen:f.YjP()}),f.Ikc({category:an,provider:f.YjP().optional(),maskedMatch:f.YjP(),occurrences:f.aig().int().nonnegative(),firstSeen:f.YjP(),lastSeen:f.YjP()}),f.Ikc({ruleId:f.YjP(),valueFingerprint:f.YjP().regex(/^[0-9a-f]{64}$/),fingerprintKeyVersion:f.aig().int().positive()});let dV=f.k5n(["human","model"]),dW=f.k5n(["display","explicit-reveal","view-render","model-input","remediation","purge"]),dX=f.k5n(["revealed","refused","unavailable"]),dY=f.Ikc({id:f.OsD(),pointerId:f.YjP(),at:f.YjP(),target:dV,reason:dW,outcome:dX,grantId:f.YjP().optional(),pointerCount:f.aig().int().positive().default(1)}),dZ=f.k5n(["prompt","tool-input","tool-output","file","transcript"]),d$=f.Ikc({location:f.YjP(),kind:dZ,firstSeen:f.YjP(),lastSeen:f.YjP()}),d_=f.Ikc({pointerId:f.YjP(),category:an,provider:f.YjP().optional(),maskedMatch:f.YjP(),occurrences:f.aig().int().nonnegative(),firstSeen:f.YjP(),lastSeen:f.YjP(),revealGrantId:f.YjP().nullable(),sightings:f.YOg(d$)}),d0=50,d1=50,d2=200;f.Ikc({limit:ag.ai().int().min(1).max(d2).optional(),cursor:f.YjP().optional()}),f.Ikc({totals:f.Ikc({values:f.aig().int().nonnegative()}),items:f.YOg(d_),nextCursor:f.YjP().nullable()}),f.Ikc({limit:ag.ai().int().min(1).max(d2).optional(),cursor:f.YjP().optional()}),f.Ikc({totals:f.Ikc({reused:f.aig().int().nonnegative()}),items:f.YOg(d_),nextCursor:f.YjP().nullable()}),f.Ikc({includeBatched:f.zMY().optional(),limit:ag.ai().int().min(1).max(d2).optional(),cursor:f.YjP().optional()}),f.Ikc({items:f.YOg(dY),nextCursor:f.YjP().nullable(),hiddenBatched:f.aig().int().nonnegative()});let d3=f.YjP(),d4=f.k5n(["masked","full","off"]),d5=1,d6=f.Ikc({acknowledgedAt:af.w$(),version:f.aig().int().positive()});function d7(a){return a?.version===d5}let d8=1,d9=f.k5n(["standalone","attached"]),ea=f.Ikc({endpoint:f.YjP().min(1),label:f.YjP().min(1).optional(),attachedAt:af.w$()}).meta({id:"ControlPlaneConnection"}),eb=f.k5n(["redact","warn"]),ec=f.k5n(["full","session-only"]),ed=f.Ikc({acknowledgedAt:af.w$(),payloadVersion:f.aig().int().positive()}),ee=f.Ikc({acknowledgedAt:af.w$(),payloadVersion:f.aig().int().positive(),endpoint:f.YjP()});function ef(a,b){return void 0!==a&&void 0!==b&&3===a.payloadVersion&&a.endpoint===b}function eg(a,b){return void 0!==a&&void 0!==b&&a.endpoint===b&&3!==a.payloadVersion}let eh=f.Ikc({acknowledgedAt:af.w$(),version:f.aig().int().positive()}),ei=f.k5n(["with-findings","always","never"]),ej=f.Ikc({responses:ei.default("with-findings"),account:f.zMY().default(!1),consent:eh.optional()});function ek(a){return a?.version===1}let el=f.Ikc({enabled:f.zMY().default(!1),retainDays:f.aig().int().min(1).max(3650).default(30)}).meta({id:"BodyRetention"}),em=f.Ikc({specVersion:f.aig().int().positive().default(8),runMode:d9.default("standalone"),controlPlane:ea.optional(),policy:eb.default("redact"),historicalAccess:ec.default("session-only"),dataSharesInPlace:f.zMY().default(!0),vaultConsent:d6.optional(),vaultKeyCustody:d3.default("file"),vaultInlineReveal:d4.default("masked"),redactFallback:du.default("warn"),onboardedAt:af.w$().optional(),modelJudgeConsent:ed.optional(),historySyncConsent:ee.optional(),webChatCapture:ej.optional(),bodyRetention:el.default({enabled:!1,retainDays:30})});function en(){return em.parse({})}function eo(a){return a.webChatCapture??ej.parse({})}function ep(a){return"attached"===a.runMode&&void 0!==a.controlPlane}function eq(a){return a.label??a.endpoint}function er(a,b,c){return{id:b,objectType:a.objectType,location:a.location??null,title:a.title??null,hostId:a.hostId??null,attributes:JSON.stringify(a.attributes),firstSeen:c,lastSeen:c}}function es(a,b,c){return{id:b,url:a.url,name:a.name??null,attributes:JSON.stringify(a.attributes),firstSeen:c,lastSeen:c}}function et(a){return{id:a.id,parentId:a.parentId??null,rootSessionId:a.rootSessionId??null,eventType:a.eventType,hostId:a.hostId??null,harnessId:a.harnessId??null,sourceProjectId:a.sourceProjectId??null,startedAt:T(a.startedAt),endedAt:a.endedAt?T(a.endedAt):null,severity:a.severity??null,priority:a.priority??null,content:a.content??null,contentHash:a.contentHash??null,attributes:a.attributes?JSON.stringify(a.attributes):null}}function eu(a,b){return{id:b,class:a.class,label:a.label??null,attributes:a.attributes?JSON.stringify(a.attributes):null}}function ev(a,b){return{id:b,ruleId:a.ruleId,name:a.name,category:a.category,severity:a.severity,definition:a.definition,version:a.version}}function ew(a){return{id:a.id,auditEventId:a.auditEventId,inspectionDefinitionId:a.inspectionDefinitionId,classifiedDataId:a.classifiedDataId??null,spanStart:a.span.start,spanEnd:a.span.end,maskedMatch:a.maskedMatch,actionTaken:a.actionTaken,confidence:a.confidence,findingKey:a.findingKey??null,firstDetectedAt:a.firstDetectedAt?T(a.firstDetectedAt):null}}function ex(a){let b=a.metadata;return{source_tool:a.sourceTool,...b?.repo!==void 0?{repo:b.repo}:{},...b?.filePath!==void 0?{file_path:b.filePath}:{},...b?.toolName!==void 0?{tool_name:b.toolName}:{},...b?.gitignored!==void 0?{gitignored:b.gitignored}:{},...b?.wholeFile!==void 0?{whole_file:b.wholeFile}:{},...b?.correlationId!==void 0?{correlation_id:b.correlationId}:{},...b?.traceId!==void 0?{trace_id:b.traceId}:{},...b?.exceptionIds!==void 0?{exception_ids:b.exceptionIds}:{},...b?.inspectionMs!==void 0?{inspection_ms:b.inspectionMs}:{},...b?.redactDegradedTo!==void 0?{redact_degraded_to:b.redactDegradedTo}:{},...b?.model!==void 0?{model:b.model}:{},...b?.turnIndex!==void 0?{turn_index:b.turnIndex}:{},...b?.messageId!==void 0&&""!==b.messageId?{message_id:b.messageId}:{},...b?.conversationId!==void 0?{conversation_id:b.conversationId}:{}}}function ey(a){return`capture/${a.category}/${a.severity}`}function ez(a){return{ruleId:a.ruleId,version:ey(a),name:a.ruleId,category:a.category,severity:a.severity,definition:JSON.stringify({ruleId:a.ruleId})}}var eA=c(9170);let eB="managed-settings.json",eC=f.k5n(["runMode","historicalAccess","vaultConsent","vaultKeyCustody","vaultInlineReveal","modelJudgeConsent","dataSharesInPlace","redactFallback","bodyRetention"]).meta({id:"ManagedSettingKey"}),eD=f.Ikc({runMode:f.k5n(["standalone","attached"]).optional(),controlPlane:f.Ikc({endpoint:f.YjP().min(1),label:f.YjP().min(1).optional()}).optional(),historicalAccess:f.k5n(["full","session-only"]).optional(),vaultConsent:f.zMY().optional(),vaultKeyCustody:f.k5n(["file","keychain"]).optional(),vaultInlineReveal:f.k5n(["masked","full","off"]).optional(),modelJudgeConsent:f.zMY().optional(),dataSharesInPlace:f.zMY().optional(),redactFallback:du.optional(),bodyRetention:el.optional()}).meta({id:"ManagedSettingsValues"}),eE=f.Ikc({specVersion:f.aig().int().positive().default(1),organization:f.YjP().min(1).optional(),values:f.g1P(f.YjP(),f.L5J()).default({}),lockedFields:f.YOg(f.YjP()).default([])}).transform(({lockedFields:a,values:b,...c},d)=>{let e=[],f=[];for(let b of a)eC.safeParse(b).success?e.push(b):f.push(b);let g=Object.create(null),h=[];for(let[a,c]of Object.entries(b))Object.hasOwn(eD.shape,a)?g[a]=c:h.push(a);let i=eD.safeParse(g);if(!i.success){for(let a of i.error.issues)d.addIssue({...a,path:["values",...a.path]});return eA.tm}return{...c,values:i.data,lockedFields:e,...f.length>0?{unknownLockedFields:f}:{},...h.length>0?{unknownValueFields:h}:{}}}).meta({id:"ManagedSettings"}),eF={present:!1,lockedFields:[]},eG=f.Ikc({path:f.YjP().min(1),name:f.YjP().min(1),origin:bf,defaultAccess:be});f.Ikc({files:f.YOg(eG),truncated:f.zMY(),scannedAt:f.YjP()});let eH=["7d","30d","3m","6m"],eI=f.k5n(eH).meta({id:"TimeRange"}),eJ={"7d":7,"30d":30,"3m":90,"6m":180},eK=eI.catch("7d");function eL(a){return eK.parse(a)}let eM=az.extract(["acknowledged","false-positive"]).meta({id:"DismissMethod"});f.Ikc({ruleId:f.YjP().max(200),method:f.YjP(),confirmation:f.YjP()}),f.Ikc({ruleId:f.YjP().max(200),method:eM,confirmation:f.YjP()});let eN=f.k5n(["still-valid","unknown","invalid"]),eO=f.Ikc({filePath:f.YjP(),span:ar.optional()}).strict(),eP=f.Ikc({provider:f.YjP(),maskedToken:f.YjP(),where:eO,state:eN,observedAt:af.w$().optional()}).strict();f.Ikc({provider:f.YjP(),maskedToken:f.YjP(),consolePath:f.YjP(),occurrenceSpread:f.aig().int().positive()}).strict();let eQ=f.k5n(["redact-rotation-checklist","redact-only","set-secret-redact","leave"]),eR=f.k5n(["first-run","pre-push","secret-scan"]);f.Ikc({entrySource:eR}).strict();let eS=f.Ikc({id:eQ,label:f.YjP()}),eT=f.Ikc({kind:f.euz("decision"),entrySource:eR,secretCount:f.aig().int().positive(),prompt:f.YjP(),options:f.PVZ([eS.extend({id:f.euz("redact-rotation-checklist")}),eS.extend({id:f.euz("redact-only")}),eS.extend({id:f.euz("set-secret-redact")}),eS.extend({id:f.euz("leave")})])}),eU=f.Ikc({kind:f.euz("no-decision")});f.gMt("kind",[eT,eU]);let eV=f.Ikc({severity:ao,count:f.aig().int().nonnegative(),caught:f.aig().int().nonnegative().optional(),openAtRest:f.aig().int().nonnegative().optional(),dismissed:f.aig().int().nonnegative().optional(),handled:f.aig().int().nonnegative().optional(),resolved:f.aig().int().nonnegative().optional()}).meta({id:"SeveritySummaryItem"});f.Ikc({total:f.aig().int().nonnegative(),needsRemediation:f.aig().int().nonnegative().optional(),dismissed:f.aig().int().nonnegative().optional(),bySeverity:f.YOg(eV)}).meta({id:"SeveritySummaryResponse"}),f.Ikc({range:f.k5n(eH).default("7d")});let eW=f.k5n(["blocked","redacted","warned"]).meta({id:"EnforcementActionKind"}),eX=f.Ikc({kind:eW,count:f.aig().int().nonnegative(),delta:f.aig().int()}).meta({id:"EnforcementAction"});f.Ikc({range:eI,total:f.aig().int().nonnegative(),actions:f.YOg(eX)}).meta({id:"EnforcementActionsResponse"});let eY=f.k5n(["day","week"]).meta({id:"TimeseriesGranularity"}),eZ=f.Ikc({timestamp:af.p6(),critical:f.aig().int().nonnegative(),high:f.aig().int().nonnegative(),medium:f.aig().int().nonnegative(),low:f.aig().int().nonnegative().optional()}).meta({id:"FindingsTimeseriesPoint"});f.Ikc({range:eI,granularity:eY,points:f.YOg(eZ)}).meta({id:"FindingsTimeseriesResponse"});let e$=f.Ikc({timestamp:af.p6(),bySeverity:f.Ikc({critical:f.aig().nonnegative().nullable(),high:f.aig().nonnegative().nullable(),medium:f.aig().nonnegative().nullable(),low:f.aig().nonnegative().nullable()})}).meta({id:"MttrTrendPoint"});f.Ikc({range:eI,granularity:eY,points:f.YOg(e$)}).meta({id:"MttrTrendResponse"});let e_=f.Ikc({findingKey:f.YjP(),ruleId:f.YjP(),severity:ao,repo:f.YjP().optional(),path:f.YjP(),resolvedAt:af.w$(),detectedAt:af.w$()}).meta({id:"ResolvedFeedItem"});f.Ikc({items:f.YOg(e_)}).meta({id:"RecentlyResolvedResponse"});let e0=["repo","user"],e1=f.k5n(e0).meta({id:"SourceKind"}),e2=f.Ikc({id:f.YjP(),name:f.YjP(),kind:e1,findingsCount:f.aig().int().nonnegative()}).meta({id:"TopSource"});f.Ikc({range:eI,items:f.YOg(e2)}).meta({id:"TopSourcesResponse"}),f.Ikc({range:f.k5n(eH).default("7d"),limit:ag.ai().int().min(1).max(50).default(5),kind:f.k5n(e0).optional()});let e3=ai.extract(["ClaudeCode","Cursor","Codex","Antigravity","ClaudeAi","ChatGpt","Copilot","Api"]).meta({id:"Provider"}),e4=f.Ikc({provider:e3,coverage:f.aig().int().min(0).max(100),supported:f.zMY()}).meta({id:"ScanCoverageProvider"});f.Ikc({range:eI,providers:f.YOg(e4)}).meta({id:"ScanCoverageResponse"});let e5=f.k5n(["repo","user","team","policy","share","rule"]).meta({id:"SubjectType"}),e6=f.Ikc({type:e5,id:f.YjP(),label:f.YjP()}).meta({id:"RecommendationSubject"}),e7=f.k5n(["apply","navigate"]).meta({id:"RecommendationActionMode"}),e8=f.Ikc({mode:e7,type:f.YjP(),label:f.YjP(),href:f.YjP().optional(),policyId:f.YjP().optional(),teamId:f.YjP().optional()}).meta({id:"RecommendationAction"}),e9=f.Ikc({id:f.YjP(),category:f.YjP(),severity:ao,title:f.YjP(),description:f.YjP(),subjects:f.YOg(e6),action:e8}).meta({id:"RecommendedAction"});f.Ikc({items:f.YOg(e9)}).meta({id:"RecommendedActionsResponse"}),f.Ikc({limit:ag.ai().int().min(1).max(20).default(3)});let fa=f.Ikc({type:f.YjP(),policyId:f.YjP().optional(),teamId:f.YjP().optional()}).meta({id:"AppliedAction"});f.Ikc({id:f.YjP(),status:f.euz("applied"),appliedAction:fa}).meta({id:"ApplyRecommendedActionResponse"}),f.Ikc({id:f.YjP(),status:f.euz("dismissed")}).meta({id:"DismissRecommendedActionResponse"}),f.Ikc({id:f.YjP()});let fb=f.k5n(["granted","revoked","unchanged"]).meta({id:"HistorySyncConsentChoice"}),fc=f.k5n(["granted","revoked","unchanged"]).meta({id:"ModelJudgeConsentChoice"}),fd=f.k5n(["granted","revoked","unchanged"]).meta({id:"WebChatCaptureConsentChoice"});f.Ikc({historicalAccess:f.YjP(),modelJudgeConsent:fc,historySyncConsent:fb,vaultConsent:f.YjP(),vaultInlineReveal:f.YjP(),webChatCaptureConsent:fd,redactFallback:f.YjP(),bodyRetention:f.Ikc({enabled:f.zMY(),retainDays:f.aig()})}),f.Ikc({endpoint:f.YjP(),label:b0(200).optional(),accessKey:f.YjP()}),f.Ikc({ruleId:f.YjP(),category:an,severity:ao,maskedMatch:f.YjP(),rawMatch:f.YjP(),context:f.YjP(),filePath:f.YjP().optional(),confidence:f.aig().min(0).max(1),id:f.YjP().optional(),valueFingerprint:f.YjP().optional(),keyVersion:f.aig().int().nonnegative().optional()});let fe=f.Ikc({category:an,action:dJ,reasoning:f.YjP(),genuineCount:f.aig().int().nonnegative(),fpCount:f.aig().int().nonnegative(),fpIds:f.YOg(f.YjP())});f.Ikc({perCategory:f.YOg(fe),notes:f.YjP()});let ff=f.Ikc({total:f.aig().int().nonnegative(),important:f.aig().int().nonnegative(),routine:f.aig().int().nonnegative()}).refine(a=>a.total===a.important+a.routine,{message:"total must equal important + routine",path:["total"]}),fg=f.Ikc({ruleId:f.YjP(),category:an,valueFingerprint:f.YjP(),keyVersion:f.aig().int().nonnegative()}),fh=f.Ikc({pattern:f.YjP(),count:f.aig().int().nonnegative(),values:f.YOg(fg).min(1)}),fi=f.Ikc({category:an,count:f.aig().int().nonnegative(),egress:f.zMY()}),fj=f.Ikc({counts:ff,routineCategories:f.YOg(an),surfacedCategories:f.YOg(an),findingKinds:f.YOg(fi),posture:f.g1P(an,dt),maskedFindings:f.YOg(eP).optional(),falsePositivePatterns:f.YOg(fh).optional()}),fk=fe.pick({category:!0,genuineCount:!0,fpCount:!0}).extend({egress:f.zMY()});f.Ikc({categories:f.YOg(fk),posture:f.g1P(an,dt)}),f.Ikc({frame:fj,copy:f.YjP()}),f.k5n(["scan","floor"]);let fl=f.Ikc({id:f.k5n(["enter-remediation","open-dashboard","not-now"]),label:f.YjP()}),fm=f.PVZ([fl.extend({id:f.euz("open-dashboard")}),fl.extend({id:f.euz("not-now")})]),fn=f.PVZ([fl.extend({id:f.euz("enter-remediation")}),fl.extend({id:f.euz("open-dashboard")}),fl.extend({id:f.euz("not-now")})]);f.Ikc({worthALook:f.aig().int().nonnegative(),liveKeys:f.aig().int().nonnegative().optional(),options:f.KCZ([fm,fn])}).refine(a=>a.options.some(a=>"enter-remediation"===a.id)===(a.liveKeys??0)>0,{message:"the chain-entry option is present exactly when liveKeys > 0",path:["options"]}).refine(a=>(a.liveKeys??0)<=a.worthALook,{message:"liveKeys is a subset of worthALook and cannot exceed it",path:["liveKeys"]});let fo=new Set(["recognized","internal"]);function fp(a){return fo.has(a)?"allowed":"review"}function fq(a){return"block"===a?"blocked":"allowed"}function fr(a,b){return null===b?fp(a):fq(b)}function fs(a,b){return null!==b&&fq(b)!==fp(a)}function ft(a,b,c){let d=function(a,b){let c=[];return"ip"===a&&c.push("raw_ip"),"unverified"===a&&c.push("unverified_domain"),(b.includes("http")||b.includes("ws"))&&c.push("plaintext_transport"),c}(a,b);return{needsReview:d.length>0&&!c,reasons:d}}function fu(a){return Array.from(new Set(a))}function fv(a){let b=new Set(a);return bz.filter(a=>b.has(a))}function fw(a){return fv(a)[0]??"none"}let fx={raw_ip:0,unverified_domain:1,plaintext_transport:2};function fy(a){return 0===a.length?1/0:Math.min(...a.map(a=>fx[a]))}let fz={Stable:"stable",Beta:"beta",Nightly:"nightly"},fA={[fz.Stable]:"latest",[fz.Beta]:"beta",[fz.Nightly]:"nightly"},fB={Channel:"channel",Graduated:"graduated",Unpublished:"unpublished",Unknown:"unknown"},fC=f.k5n(["site","estimated","none"]),fD=f.Ikc({inputTokens:f.aig().int().nonnegative().optional(),outputTokens:f.aig().int().nonnegative().optional(),cacheReadInputTokens:f.aig().int().nonnegative().optional(),cacheCreationInputTokens:f.aig().int().nonnegative().optional()}),fE=f.Ikc({toolUseId:f.YjP().min(1),toolName:f.YjP().min(1),target:f.YjP().optional(),isError:f.zMY().optional(),inputSize:f.aig().int().nonnegative().optional(),outputSize:f.aig().int().nonnegative().optional()});f.Ikc({messageId:f.YjP().min(1),startedAt:af.w$(),model:f.YjP().optional(),usage:fD.optional(),usageSource:fC,stopReason:f.YjP().optional(),conversationId:f.YjP().optional(),turnIndex:f.aig().int().nonnegative().optional(),toolCalls:f.YOg(fE).default([]),responseText:f.YjP().optional(),truncated:f.zMY().default(!1)});let fF=f.k5n(["watching","composer-only","button-only","unattached","unknown"]),fG=f.Ikc({patched:f.zMY(),live:f.zMY(),blind:f.zMY(),sendsSeenDom:f.aig().int().nonnegative(),exchangesSeenNet:f.aig().int().nonnegative(),parseFailures:f.aig().int().nonnegative(),unparsedBodies:f.aig().int().nonnegative(),shapeMisses:f.YOg(f.YjP()).default([]),conversationEndpoints:f.aig().int().nonnegative().default(0),closed:f.zMY().default(!1),enforcement:fF.default("unknown")});function fH(a){return!a.patched||0===a.conversationEndpoints||a.blind||a.shapeMisses.length>0||a.parseFailures>0||a.unparsedBodies>0||a.exchangesSeenNet>0}function fI(a){return a.find(a=>fH(a.status))??a[0]}let fJ=2592e6,fK=30,fL=432e5;function fM(a){let b=aT.safeParse(a);if(!b.success)return null;let c=b.data,d=fG.safeParse({patched:c.patched,live:c.live,blind:c.blind,sendsSeenDom:c.sends_seen_dom,exchangesSeenNet:c.exchanges_seen_net,parseFailures:c.parse_failures,unparsedBodies:c.unparsed_bodies,shapeMisses:c.shape_misses,conversationEndpoints:c.conversation_endpoints,closed:c.closed,enforcement:c.enforcement});return d.success?d.data:null}},59447:(a,b,c)=>{"use strict";c.d(b,{ROTATE_CONFIRMATION:()=>h,RotateKeyDialog:()=>i});var d=c(469),e=c(72454),f=c(17200),g=c(25306);let h="rotate";function i({open:a,onOpenChange:b,activePermanent:c,approvableBlocked:i,keyVersion:j,onConfirm:k,busy:l,error:m}){let[n,o]=(0,f.useState)(""),p=(0,g.y6)(i);return(0,d.jsx)(e.lG,{open:a,onOpenChange:a=>{a||o(""),b(a)},children:(0,d.jsxs)(e.Cf,{children:[(0,d.jsxs)(e.c7,{children:[(0,d.jsx)(e.L3,{children:"Rotate the fingerprint key"}),(0,d.jsxs)(e.rr,{children:["Rotation mints a fresh key",null!==j&&` (v${String(j)} → v${String(j+1)})`," and"," ",(0,d.jsx)("strong",{children:"invalidates every existing exception"})," — grants cannot be re-keyed and simply stop matching. They remain listed for audit."]})]}),(0,d.jsxs)(e.R4,{children:[c.length>0&&(0,d.jsxs)("div",{className:"rounded-lg border border-sev-high-fill bg-sev-high-fill p-3",children:[(0,d.jsx)("div",{className:"mb-2 text-label font-semibold uppercase tracking-wider text-sev-high-ink",children:"Active permanent grants that will stop applying"}),(0,d.jsx)("ul",{className:"flex flex-col gap-1",children:c.map(a=>(0,d.jsxs)("li",{className:"font-mono text-xs text-text-2",children:[a.ruleId," \xb7 ",a.maskedValue]},a.id))})]}),i>0?(0,d.jsxs)("div",{className:"rounded-lg border border-sev-high-fill bg-sev-high-fill p-3",children:[(0,d.jsx)("div",{className:"mb-2 text-label font-semibold uppercase tracking-wider text-sev-high-ink",children:"Blocked detections that will stop being approvable"}),(0,d.jsx)("p",{className:"text-xs text-text-2",children:p})]}):(0,d.jsx)("p",{className:"text-xs text-text-3",children:p}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-1.5 text-label font-semibold uppercase tracking-wider text-text-3",children:["Type"," ",(0,d.jsxs)("span",{className:"font-mono normal-case tracking-normal",children:["“",h,"”"]})," ","to confirm"]}),(0,d.jsx)(e.pd,{value:n,onChange:a=>{o(a.target.value)},autoComplete:"off",className:"font-mono"})]}),m&&(0,d.jsx)("p",{className:"text-xs text-sev-critical-ink",children:m})]}),(0,d.jsxs)(e.Es,{children:[(0,d.jsx)(e.$n,{variant:"ghost",tone:"neutral",size:"sm",onClick:()=>{b(!1)},children:"Cancel"}),(0,d.jsx)(e.$n,{variant:"solid",tone:"danger",size:"sm",disabled:n!==h||l,onClick:()=>{k(n)},children:l?"Rotating…":"Rotate key"})]})]})})}},59982:(a,b,c)=>{"use strict";c.d(b,{SyncPanelView:()=>k});var d=c(469),e=c(72454),f=c(93974),g=c(52095);let h={ok:"Last pass sent what was waiting.",interrupted:"Last pass sent some of what was waiting.",unreachable:"Last pass could not reach your deployment. Nothing was lost; it stays queued.",refused:"Your deployment refused this machine’s key. Re-attach to resume."};function i(a){return a.toLocaleString("en-US")}function j({row:a}){let b=0===a.queued&&0===a.notSent?f.l.ok:f.l.primary;return(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"w-24 shrink-0 truncate text-ui text-text",children:a.label}),(0,d.jsx)(e.kI,{value:a.synced,max:a.total,color:b,height:6,"aria-label":`${a.label}: ${i(a.synced)} of ${i(a.total)} sent`}),(0,d.jsxs)("span",{className:"w-32 shrink-0 text-right text-label tabular-nums text-text-2",children:[i(a.synced)," of ",i(a.total)]}),a.notSent>0&&(0,d.jsxs)("span",{className:"w-24 shrink-0 text-right text-label text-text-3",children:[i(a.notSent)," not sent"]})]})}function k({state:a,deployment:b,lastOutcome:c,lastPassAt:k,renderedAt:l,running:m,paused:n,onSyncNow:o,busy:p,startError:q,localOnly:r}){let s="ready"===a.status||"nothing-recorded"===a.status,t=s&&!0===n;return(0,d.jsxs)(e.Zp,{children:[(0,d.jsxs)(e.aR,{children:[(0,d.jsxs)(e.Lc,{children:[(0,d.jsx)(e.ZB,{children:"Sync"}),(0,d.jsxs)(e.BT,{children:["What this machine has sent to ",b,", and what it still owes."]})]}),m&&(0,d.jsx)(e.vw,{dot:f.l.primary,children:"Sending…"}),!m&&t&&(0,d.jsx)(e.vw,{dot:f.l.sevMedium,children:"Paused"}),"consent-stale"===a.status&&(0,d.jsx)(e.vw,{children:"Paused"})]}),(0,d.jsxs)(e.Wu,{className:"flex flex-col gap-3",children:["not-shared"===a.status&&(0,d.jsx)("p",{className:"text-ui text-text-2",children:"Existing activity is not shared. Only what this machine records from now on is sent."}),"consent-stale"===a.status&&(0,d.jsx)("p",{className:"text-ui text-text-2",children:"Paused: your grant predates a change to what is sent. Review it above to resume."}),"credential-unusable"===a.status&&(0,d.jsx)("p",{className:"text-ui text-text-2",children:a.detail}),"nothing-recorded"===a.status&&(0,d.jsx)("p",{className:"text-ui text-text-2",children:"Nothing recorded yet."}),"ready"===a.status&&a.kinds.map(a=>(0,d.jsx)(j,{row:a},a.kind)),void 0!==c&&(0,d.jsxs)("p",{className:(0,e.cn)("text-label","ok"===c?"text-text-3":"text-text-2"),children:[void 0!==k&&(0,d.jsxs)("span",{className:"text-text-3",children:[(0,g.K)(k,l)," \xb7 "]}),h[c]]}),t&&(0,d.jsx)("p",{className:"text-ui text-text-2",children:"Sending is paused after repeated failures. It resumes on its own — nothing was lost, and what is queued above stays queued."}),void 0!==q&&(0,d.jsx)("p",{className:"text-ui text-text-2",children:q}),s&&void 0!==o&&(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)(e.$n,{onClick:o,disabled:!0===p||m||t,children:m?"Sending…":"Sync now"}),(0,d.jsx)("span",{className:"text-label text-text-3",children:"Sends what is queued above."})]}),void 0!==r&&r.length>0&&(0,d.jsx)("div",{className:"flex flex-col gap-1.5 border-t border-border pt-3",children:r.map(a=>(0,d.jsxs)("p",{className:"text-label text-text-3",children:[(0,d.jsx)("span",{className:"text-text-2",children:a.label}),void 0!==a.count&&(0,d.jsxs)(d.Fragment,{children:[" \xb7 ",i(a.count)," here"]})," — ",a.detail]},a.id))})]})]})}},60655:(a,b,c)=>{"use strict";c.d(b,{AW:()=>d.A,rJ:()=>d.r}),c(4120);var d=c(92070)},61270:(a,b,c)=>{"use strict";c.d(b,{DQ:()=>e.DQQ,Zu:()=>e.Zus,_G:()=>e._GS,cZ:()=>e.cZ5,k3:()=>e.k3y,kp:()=>g,np:()=>h,rX:()=>e.rX});var d=c(60331),e=c(68786);let f={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round"},g=a=>(0,d.jsxs)("svg",{...f,...a,children:[(0,d.jsx)("path",{d:"M8 6h12M8 12h12M8 18h12"}),(0,d.jsx)("circle",{cx:"3.6",cy:"6",r:"1.1",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"3.6",cy:"12",r:"1.1",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"3.6",cy:"18",r:"1.1",fill:"currentColor",stroke:"none"})]}),h=a=>(0,d.jsx)("svg",{...f,...a,children:(0,d.jsx)("path",{d:"M3 12h4l3 8 4-16 3 8h4"})})},62030:(a,b,c)=>{"use strict";c.d(b,{TimeRangeSelect:()=>i});var d=c(469),e=c(72454),f=c(97725);function g(a){return(0,d.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",...a,children:[(0,d.jsx)("rect",{x:"4",y:"5",width:"16",height:"16",rx:"2"}),(0,d.jsx)("path",{d:"M4 9h16M8 3v4M16 3v4"})]})}function h(a){return(0,d.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",...a,children:(0,d.jsx)("path",{d:"m6 9 6 6 6-6"})})}function i({value:a,onChange:b}){let c=(0,f.QT)(a);return(0,d.jsxs)(e.rI,{children:[(0,d.jsx)(e.ty,{asChild:!0,children:(0,d.jsxs)(e.$n,{variant:"outline",size:"md",children:[(0,d.jsx)(g,{"aria-hidden":!0,focusable:!1,className:"size-4 text-text-3"}),c,(0,d.jsx)(h,{"aria-hidden":!0,focusable:!1,className:"size-3.5 text-text-3"})]})}),(0,d.jsx)(e.SQ,{align:"end",className:"w-44",children:(0,d.jsx)(e.Hr,{value:a,onValueChange:a=>{b(a)},children:f.hn.map(a=>(0,d.jsx)(e.Ht,{value:a.value,children:a.label},a.value))})})]})}},62308:(a,b,c)=>{"use strict";c.d(b,{ES:()=>k,H9:()=>m,Xg:()=>o,gh:()=>l,jP:()=>n,rE:()=>h,tG:()=>f,uR:()=>j,vm:()=>g});var d=c(28615),e=c(78666);let f="monitor";function g(a){return"regex"===a.type?"/"+a.pattern+"/"+a.flags:a.keywords.join(" \xb7 ")}let h={regex:{label:"Regex",icon:e.cZ,color:"var(--color-violet-ink)",fill:"var(--color-violet-fill)",blurb:"Pattern match"},keyword:{label:"Keyword",icon:e.Ey,color:"var(--color-teal-ink)",fill:"var(--color-teal-fill)",blurb:"Literal lookup"}},i={monitor:{id:"monitor",label:"Monitor",icon:e.bM,tone:"neutral",desc:"Log every match for audit. The request is allowed through untouched."},warn:{id:"warn",label:"Warn",icon:e._0,tone:"high",desc:"Allow the request, but warn the user inline before it is sent."},redact:{id:"redact",label:"Redact",icon:e.jZ,tone:"primary",desc:"Strip the matched value from the request and destroy it, then continue. What was removed cannot be recovered."},vault:{id:"vault",label:"Redact & Vault",icon:e.XA,tone:"teal",desc:"Strip the matched value from the request and keep an encrypted, recoverable copy in the local vault, leaving a pointer in its place. Needs the vault consent granted under Settings; without it this behaves as Redact."},block:{id:"block",label:"Block",icon:e.pD,tone:"critical",desc:"Refuse the request entirely whenever any rule in this detection matches."}},j=d.V0H;function k(a){return(Object.hasOwn(i,a)?i[a]:void 0)??{id:a,label:a,icon:e.iB,tone:"neutral",desc:""}}let l={pii:"PII",financial:"Financial",secret:"Secret",phi:"PHI",code_context:"Code context",code_flaw:"Code flaw",custom:"Custom",config:"Configuration"},m={library:{label:"Library",icon:e.fC,tone:"teal",blurb:"Imported from the public library"},custom:{label:"Custom",icon:e.qU,tone:"violet",blurb:"Authored here — no upstream to track"}},n={labs:{label:"AKA Labs",icon:e.Zu,tone:"teal",verified:!0},org:{label:"Your org",icon:e.ai,tone:"violet",verified:!1},user:{label:"Community",icon:e.ny,tone:"neutral",verified:!1}};function o(a){return null==a.update?"unknown":a.update.available?"update-available":"up-to-date"}},63264:(a,b,c)=>{"use strict";c.d(b,{AC:()=>l,AJ:()=>o,As:()=>p,EmptyState:()=>j,Kh:()=>r,TJ:()=>t,Vx:()=>n,kx:()=>m,wn:()=>k,yk:()=>s});var d=c(469),e=c(72454),f=c(55908),g=c(79871),h=c(8070);function i({order:a,meta:b,value:c,onChange:f}){return(0,d.jsx)("span",{className:"inline-flex",onClick:a=>{a.stopPropagation()},children:(0,d.jsx)(e.Iz,{value:c,onValueChange:a=>{a&&f(a)},children:a.map(a=>{let f=b[a],g=a===c;return(0,d.jsx)(e.tR,{value:a,title:f.label,className:(0,e.cn)("size-7 flex-none gap-0 px-0 py-0","data-[state=on]:bg-transparent data-[state=on]:text-current data-[state=on]:shadow-none",g?(0,e.cn)(f.fg,f.bg):"text-text-3 hover:text-text-2"),children:(0,d.jsx)(h.m,{name:f.icon})},a)})})})}function j({message:a,icon:b="list",className:c}){return(0,d.jsxs)("div",{className:(0,e.cn)("flex items-center gap-2.5 rounded-lg border border-dashed border-border-strong px-3 py-3.5 text-text-3",c),children:[(0,d.jsx)(h.m,{name:b,className:"size-4 shrink-0"}),(0,d.jsx)("span",{className:"text-xs",children:a})]})}function k({label:a,children:b}){return(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-2 text-label font-semibold uppercase tracking-wider text-text-3",children:a}),b]})}function l({order:a,meta:b,value:c,onChange:g,accentOf:i,refusal:j}){let k=j?(0,f.w)(j.id,j.reason,""):null;return(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[a.map(a=>{let f=b[a],j=a===c;return(0,d.jsxs)("button",{type:"button",onClick:k?void 0:()=>{g(a)},...k,className:(0,e.cn)("flex items-center gap-3 rounded-lg border px-3 py-2.5 text-left cursor-pointer",j?(0,e.cn)(f.bg,"border-current",f.fg):"border-border bg-surface",k?.className),children:[(0,d.jsx)("span",{className:(0,e.cn)("grid size-8 shrink-0 place-items-center rounded-lg",j?"bg-surface":"bg-surface-2",f.fg),children:(0,d.jsx)(h.m,{name:f.icon,className:"size-4.5"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:(0,e.cn)("text-sm font-semibold",j?f.fg:"text-text"),children:f.label}),(0,d.jsx)("div",{className:"mt-0.5 text-xs text-text-2",children:f.desc})]}),(0,d.jsx)("span",{className:(0,e.cn)("grid size-4.5 shrink-0 place-items-center rounded-full border-[1.5px]",j?(0,e.cn)("border-current text-on-accent",i(f)):"border-border-strong"),children:j&&(0,d.jsx)(h.m,{name:"check",className:"size-3"})})]},a)}),j&&(0,d.jsx)(f.P,{id:j.id,dataSlot:"radio-card-list-refusal-reason",children:j.reason})]})}function m({value:a,onChange:b,refusal:c}){if(c){let b=g.Pe[a],i=(0,f.w)(c.id,c.reason,"");return(0,d.jsx)("span",{className:"inline-flex",onClick:a=>{a.stopPropagation()},children:(0,d.jsx)("button",{type:"button","data-slot":"access-control","aria-label":`LLM access: ${b.label}`,...i,className:(0,e.cn)("inline-flex size-7 items-center justify-center rounded-lg",b.fg,b.bg,i.className),children:(0,d.jsx)(h.m,{name:b.icon})})})}return(0,d.jsx)(i,{order:g.IF,meta:g.Pe,value:a,onChange:b})}function n({value:a}){return(0,d.jsx)("span",{className:(0,e.cn)("min-w-23 whitespace-nowrap text-xs font-semibold",g.Pe[a].fg),children:g.Pe[a].label})}function o({counts:a,className:b}){let c=a.total||1;return(0,d.jsx)("span",{className:(0,e.cn)("flex h-1.5 w-30 overflow-hidden rounded-full bg-surface-3",b),children:g.IF.map(b=>{let e=a[b]/c*100;return e>0?(0,d.jsx)("span",{className:g.Pe[b].bar,style:{width:`${String(e)}%`}},b):null})})}function p({value:a}){let b=g.ZY[a];return(0,d.jsxs)(e.Ex,{variant:b.tone,children:[(0,d.jsx)(h.m,{name:b.icon,className:"size-3"}),b.label]})}function q({flag:a,mini:b}){let c=g.lx[a];return(0,d.jsxs)(e.Ex,{variant:c.tone,children:[(0,d.jsx)(h.m,{name:c.icon,className:b?"size-2.5":"size-3"}),b?c.short:c.label]})}function r({flags:a,mini:b}){return 0===a.length?b?null:(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs font-semibold text-ok-ink",children:[(0,d.jsx)(h.m,{name:"check-circle",className:"size-3.5"})," OK"]}):(0,d.jsx)("span",{className:"inline-flex flex-wrap items-center gap-1.5",children:a.map(a=>(0,d.jsx)(q,{flag:a,mini:b},a))})}function s({v:a}){return"public"===a?(0,d.jsxs)(e.Ex,{variant:"success",children:[(0,d.jsx)(h.m,{name:"globe",className:"size-3"})," Public"]}):(0,d.jsxs)(e.Ex,{variant:"default",children:[(0,d.jsx)(h.m,{name:"lock",className:"size-3"})," Private"]})}function t({origin:a}){let b=g.Gb[a];return(0,d.jsxs)(e.Ex,{variant:"default",children:[(0,d.jsx)(h.m,{name:b.icon,className:"size-3"})," ",b.short]})}},63424:(a,b,c)=>{"use strict";c.d(b,{DETECTION_FILTER_TABS:()=>j,DetectionsListView:()=>l});var d=c(469),e=c(72454),f=c(78666),g=c(33988),h=c(74637),i=c(62308);let j=[["all","All"],["library","Library"],["updates","Updates"]];function k({d:a,sel:b,updateVersion:c,floor:e,onClick:f}){return(0,d.jsx)("button",{type:"button",onClick:f,className:"w-full cursor-pointer rounded-lg px-3 py-2.5 text-left transition-colors "+(b?"bg-primary-tint":"hover:bg-surface-2"),children:(0,d.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{title:a.enabled?"Enabled":"Disabled",className:"size-2 shrink-0 rounded-full "+(a.enabled?"bg-ok ring-3 ring-ok-fill":"bg-border-strong")}),(0,d.jsx)("span",{className:"truncate text-sm font-semibold text-text",title:a.name,children:a.name})]}),(0,d.jsxs)("div",{className:"font-mono text-xs text-text-3",children:["v",a.version]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 justify-between",children:[(0,d.jsx)("span",{className:"font-mono text-xs text-text-3",children:a.id}),(0,d.jsxs)("span",{className:"text-xs text-text-3 shrink-0",children:[a.ruleCount," rule",1===a.ruleCount?"":"s"]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-1.5 mt-1",children:[(0,d.jsx)(h.Ai,{origin:a.origin}),(0,d.jsx)(h.$F,{policy:a.policyId??i.tG,floor:e}),c?(0,d.jsx)(h.Zp,{version:c}):null]})]})})}function l({items:a,counts:b,activeId:c,query:h,filter:i,onQueryChange:l,onFilterChange:m,onSelect:n,isLoading:o=!1,error:p=null,updatesById:q,floorsById:r,filterTabs:s=j}){return(0,d.jsxs)(e.Zp,{className:"flex flex-col overflow-hidden shadow-sm",children:[(0,d.jsxs)("div",{className:"border-b border-border p-3",children:[(0,d.jsx)(g.SearchField,{value:h,onValueChange:l,label:"Search detections",placeholder:"Search detections…",surface:"card",className:"h-9"}),(0,d.jsx)("div",{className:"mt-2.5 flex flex-wrap gap-1.5",children:s.map(([a,c])=>{let e=i===a,g=b[a]??0,h="updates"===a&&g>0;return(0,d.jsxs)("button",{type:"button",onClick:()=>{m(a)},className:"inline-flex h-7 items-center gap-1.5 cursor-pointer rounded-full border px-2.5 text-xs font-semibold "+(e?h?"border-sev-high bg-sev-high-fill text-sev-high-ink":"border-primary bg-primary-tint text-primary":h?"border-border text-sev-high-ink":"border-border bg-surface text-text-2"),children:[h&&(0,d.jsx)(f.Kp,{"aria-hidden":!0,focusable:!1,className:"size-3"}),c,(0,d.jsx)("span",{className:"text-label font-bold opacity-70",children:g})]},a)})})]}),(0,d.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto p-3",children:o?(0,d.jsx)("div",{className:"grid flex-1 place-items-center p-6 text-center text-xs text-text-3",children:"Loading detections…"}):p?(0,d.jsx)("div",{className:"grid flex-1 place-items-center p-6 text-center text-xs text-sev-critical-ink",children:p}):0===a.length?(0,d.jsx)("div",{className:"grid flex-1 place-items-center p-6 text-center text-xs text-text-3",children:h.trim()?`No detections match “${h.trim()}”`:"No detections in this view"}):a.map(a=>(0,d.jsx)(k,{d:a,sel:a.id===c,updateVersion:q?.get(a.id),floor:r?.get(a.id),onClick:()=>{n(a.id)}},a.id))})]})}},65616:(a,b,c)=>{"use strict";c.d(b,{Qv:()=>k,Rm:()=>i,TH:()=>m,U5:()=>j,Z3:()=>g,vy:()=>f,x_:()=>h});var d=c(60331),e=c(46526);function f({actions:a=!1}){return(0,d.jsxs)("div",{className:"flex items-start justify-between gap-4 pb-6",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)(e.EA,{className:"h-8 w-44"}),(0,d.jsx)(e.EA,{className:"h-5 w-72"})]}),a&&(0,d.jsx)(e.EA,{className:"h-8 w-32"})]})}function g(){return(0,d.jsxs)("div",{className:"flex items-center gap-2 pb-1",children:[(0,d.jsx)(e.EA,{className:"h-8 w-64"}),(0,d.jsx)(e.EA,{className:"h-8 w-24"}),(0,d.jsx)(e.EA,{className:"h-8 w-24"}),(0,d.jsx)(e.EA,{className:"h-8 w-24"}),(0,d.jsx)(e.EA,{className:"ml-auto h-8 w-20"})]})}function h({rows:a=8}){return(0,d.jsxs)("div",{className:"mt-4 overflow-hidden rounded-lg border border-border",children:[(0,d.jsxs)("div",{className:"flex items-center gap-4 border-b border-border bg-surface-2 px-4 py-2.5",children:[(0,d.jsx)(e.EA,{className:"h-3.5 w-20"}),(0,d.jsx)(e.EA,{className:"h-3.5 w-40"}),(0,d.jsx)(e.EA,{className:"h-3.5 w-24"}),(0,d.jsx)(e.EA,{className:"ml-auto h-3.5 w-16"})]}),Array.from({length:a},(a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-4 border-b border-border px-4 py-3 last:border-b-0",children:[(0,d.jsx)(e.EA,{className:"h-5 w-16"}),(0,d.jsx)(e.EA,{className:"h-4 w-56"}),(0,d.jsx)(e.EA,{className:"h-4 w-28"}),(0,d.jsx)(e.EA,{className:"ml-auto h-4 w-14"})]},b))]})}function i({className:a}){return(0,d.jsx)(e.EA,{className:(0,e.cn)("mb-3 h-12.5 w-full shrink-0 rounded-xl",a)})}function j({cards:a=3,className:b}){return(0,d.jsx)("div",{className:(0,e.cn)("grid grid-cols-1 gap-4 lg:grid-cols-3",b),children:Array.from({length:a},(a,b)=>(0,d.jsx)(e.EA,{className:"h-56"},b))})}function k({className:a}){return(0,d.jsx)(e.EA,{className:(0,e.cn)("h-64 w-full",a)})}let l={"w-80":"lg:w-80","w-85":"lg:w-85","w-88":"lg:w-88"};function m({listWidth:a="w-85",stacksBelowLg:b=!1}){return(0,d.jsxs)("div",{className:(0,e.cn)("flex flex-1 gap-4",b?"min-h-128 flex-col lg:min-h-0 lg:flex-row":"min-h-0"),children:[(0,d.jsx)("div",{className:(0,e.cn)("flex shrink-0 flex-col gap-2 rounded-lg border border-border p-3",b?l[a]:a),children:Array.from({length:8},(a,b)=>(0,d.jsx)(e.EA,{className:"h-14"},b))}),(0,d.jsxs)("div",{className:"min-h-0 flex-1 rounded-lg border border-border p-4",children:[(0,d.jsx)(e.EA,{className:"h-8 w-64"}),(0,d.jsx)("div",{className:"mt-4 grid grid-cols-2 gap-3",children:Array.from({length:6},(a,b)=>(0,d.jsx)(e.EA,{className:"h-10"},b))}),(0,d.jsx)(e.EA,{className:"mt-6 h-72 w-full"})]})]})}},66663:(a,b,c)=>{"use strict";c.d(b,{PolicyPicker:()=>h});var d=c(469),e=c(72454),f=c(17200),g=c(62308);function h({value:a,onChange:b,unavailable:c}){let h=!b,i=a=>c?.[a],j=[...new Set(g.uR.map(i).filter(a=>void 0!==a))],k=(0,f.useId)(),l=a=>`${k}-unavailable-${String(j.indexOf(a))}`;return(0,d.jsxs)("div",{className:"flex flex-col items-start gap-1.5",children:[(0,d.jsx)("div",{className:"inline-flex gap-1 self-start rounded-lg border border-border bg-surface-2 p-0.5"+(h?" opacity-70":""),"aria-disabled":h||void 0,children:g.uR.map(c=>{let f=(0,g.ES)(c),j=a===c,[k,m]=(0,e.vV)(f.tone),n="neutral"===f.tone?"var(--color-surface)":m,o=f.icon,p=i(c);return(0,d.jsxs)("button",{type:"button",disabled:h,"aria-disabled":h||void 0!==p||void 0,"aria-describedby":void 0===p?void 0:l(p),title:p,onClick:b&&void 0===p?()=>{b(c)}:void 0,"aria-pressed":j,"data-unavailable":void 0===p?void 0:"",className:"inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-semibold "+(h||void 0!==p?"cursor-not-allowed ":"cursor-pointer ")+(void 0===p?"":"opacity-50 ")+(j?"shadow-sm":"text-text-3"),style:j?{color:k,background:n}:void 0,children:[(0,d.jsx)(o,{"aria-hidden":!0,focusable:!1,className:"size-4"}),f.label]},c)})}),j.map(a=>(0,d.jsx)("p",{id:l(a),className:"text-xs text-text-3","data-slot":"policy-unavailable-reason",children:a},a))]})}},67002:(a,b,c)=>{"use strict";c.d(b,{N:()=>k,T:()=>g});var d=c(469),e=c(72454),f=c(17200);function g(a){let[b,c]=(0,f.useState)(()=>new Set);return{visible:a.filter(a=>!b.has(a.key)),hidden:b,toggle:function(b){c(c=>{if(c.has(b)){let a=new Set(c);return a.delete(b),a}if(!a.some(a=>a.key!==b&&!c.has(a.key)))return c;let d=new Set(c);return d.add(b),d})}}}function h(a){return void 0===a||""===a?null:a}function i({color:a,hollow:b}){return(0,d.jsx)("span",{className:"size-2 rounded-xs",style:b?{background:"transparent",boxShadow:`inset 0 0 0 1.5px ${a}`}:{background:a}})}function j({text:a}){return null===a?null:(0,d.jsx)("span",{className:"text-text-3",children:a})}function k({series:a,visibility:b,metaLabel:c,interactive:f}){let{hidden:g,visible:k,toggle:l}=b;return f?(0,d.jsx)(d.Fragment,{children:a.map(a=>{let b=g.has(a.key),f=!b&&1===k.length,m=h(c?.(a.key)),n=null===m?a.label:`${a.label}, ${m}`;return(0,d.jsxs)("button",{type:"button","aria-label":f?`${n}, only series left`:n,"aria-pressed":!b,"aria-disabled":f||void 0,title:f?`${a.label} is the only series left — show another before hiding it`:b?`Show ${a.label}`:`Hide ${a.label}`,onClick:()=>{l(a.key)},className:(0,e.cn)("-mx-1 inline-flex cursor-pointer items-center gap-1.5 rounded-sm px-1 transition-colors","hover:bg-surface-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary/40",b&&"text-text-3",f&&"cursor-default hover:bg-transparent"),children:[(0,d.jsx)(i,{color:a.color,hollow:b}),a.label,(0,d.jsx)(j,{text:m})]},a.key)})}):(0,d.jsx)(d.Fragment,{children:a.map(a=>(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,d.jsx)(i,{color:a.color,hollow:!1}),a.label,(0,d.jsx)(j,{text:h(c?.(a.key))})]},a.key))})}},68212:(a,b,c)=>{"use strict";c.d(b,{NeedsReviewListView:()=>j});var d=c(469),e=c(72454),f=c(78666),g=c(19270),h=c(37248),i=c(95);function j({items:a,onReview:b}){return 0===a.length?(0,d.jsxs)("div",{className:"flex flex-col items-center gap-2 py-12 text-center text-text-3",children:[(0,d.jsx)(f.C1,{"aria-hidden":!0,focusable:!1,className:"size-6 text-ok-ink"}),(0,d.jsx)("div",{className:"text-sm",children:"Nothing needs review"})]}):(0,d.jsx)("div",{className:"flex flex-col gap-2",children:a.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border bg-surface-2 px-3 py-2.5",children:[(0,d.jsx)(g.Wi,{kind:a.kind,trust:a.trust,name:a.name,size:30}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:(0,e.cn)("text-xs font-semibold text-text","ip"===a.kind&&"font-mono"),children:a.name}),(0,d.jsx)(g.HD,{cls:a.topDataClass})]}),a.host!==a.name&&(0,d.jsx)("div",{className:"text-xs text-text-3",children:a.host}),(0,d.jsxs)("div",{className:"mt-1.5 flex items-center gap-1.5 text-label text-sev-critical-ink",children:[(0,d.jsx)(f._0,{"aria-hidden":!0,focusable:!1,className:"size-3"}),(0,i.ZX)(a.review.reasons)]})]}),(0,d.jsxs)("span",{className:"text-xs text-text-3",children:[a.callSiteCount," call",1===a.callSiteCount?"":"s"]}),(0,d.jsx)(e.$n,{onClick:(0,h.T)(b,a.id),variant:"ghost",tone:"primary",size:"sm",children:"Review"})]},a.id))})}},68399:(a,b,c)=>{"use strict";c.d(b,{FindingLocationsListView:()=>j});var d=c(469),e=c(72454),f=c(4120),g=c(52095),h=c(58671);function i({location:a,sel:b,onClick:c,renderedAt:i}){let j=a.ruleIds.slice(0,3),k=a.ruleIds.length-j.length,l=void 0===a.status?null:(0,h.Dx)(a.status);return(0,d.jsxs)("button",{type:"button",onClick:c,"aria-current":b?"true":void 0,className:(0,e.cn)("w-full cursor-pointer rounded-lg px-3 py-2.5 text-left transition-colors",b?"bg-primary-tint":"hover:bg-surface-2"),children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,d.jsx)(e.Pt,{severity:a.maxSeverity}),(0,d.jsx)("span",{className:(0,e.cn)("min-w-0 flex-1 text-xs break-words [word-break:break-word]",a.repo?"text-text-3":"italic text-text-3"),children:a.repo||"No repository recorded"}),l&&(0,d.jsx)(e.Ex,{variant:l.badge,className:"h-5 shrink-0",children:l.label})]}),(0,d.jsx)("div",{className:(0,e.cn)("mt-1 text-sm font-semibold break-words [word-break:break-word]",a.file?"text-text":"italic text-text-3"),children:a.file||"No file recorded"}),(0,d.jsxs)("div",{className:"mt-1 flex min-w-0 items-center gap-1.5",children:[(0,d.jsxs)("span",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-1",title:a.ruleIds.join("\n"),children:[j.map(a=>(0,d.jsx)("span",{className:"max-w-full truncate rounded border border-border px-1.5 py-px text-label text-text-3",children:a},a)),k>0&&(0,d.jsxs)("span",{className:"shrink-0 text-label text-text-3",children:["+",k," more"]})]}),(0,d.jsx)("span",{className:"shrink-0 text-xs font-semibold tabular-nums text-text-2",title:`${f.j.format(a.instanceCount)} ${1===a.instanceCount?"finding":"findings"}`,children:(0,f.R)(a.instanceCount)}),(0,d.jsx)("span",{className:"shrink-0 text-xs text-text-3",children:(0,g.g)(a.latestDetectedAt,i)})]})]})}function j({locations:a,activeId:b,onSelect:c,renderedAt:f,hasNextPage:g=!1,hasPreviousPage:h=!1,onNextPage:j,onPreviousPage:k,loadingNextPage:l=!1,pageStart:m,total:n,emptyState:o}){return(0,d.jsxs)(e.Zp,{className:"flex h-full flex-col overflow-hidden shadow-sm",children:[(0,d.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto p-3",children:0===a.length?(0,d.jsx)("div",{className:"grid flex-1 place-items-center p-6 text-center text-xs text-text-3",children:o??"No locations match these filters."}):a.map(a=>(0,d.jsx)(i,{location:a,sel:a.id===b,renderedAt:f,onClick:()=>{c(a)}},a.id))}),j&&(h||g||a.length>0)&&(0,d.jsxs)(e.dK,{children:[(0,d.jsx)(e.Eb,{disabled:!h||l,onClick:k}),(0,d.jsx)(e.D2,{children:0===a.length||void 0===n||void 0===m?`${String(a.length)} shown`:`${String(m)}–${String(m+a.length-1)} of ${String(n)} locations`}),(0,d.jsx)(e.WA,{disabled:!g||l,loading:l,onClick:j})]})]})}},68786:(a,b,c)=>{"use strict";c.d(b,{rDU:()=>x.ActivityTokenUsageView,rX:()=>z,DrA:()=>l,DQQ:()=>N,cZ5:()=>J,VNw:()=>P,anf:()=>R,ahu:()=>aa,_GS:()=>A,Lgv:()=>ab.FindingsOverTimeCardView,oUz:()=>ac.MttrTrendCardView,ece:()=>o,fcY:()=>V.PolicyStatsView,c2Z:()=>ad,iZd:()=>aj,RyQ:()=>ag,hU:()=>ap,Zus:()=>D,s0y:()=>u,k3y:()=>M,XTX:()=>aq,K2H:()=>T,gSG:()=>S,Wj0:()=>at,$x2:()=>af,b45:()=>au,UqB:()=>Q,OHL:()=>h.OHL,QTF:()=>j,oBs:()=>k,KWc:()=>g,pif:()=>m,twV:()=>X,U4D:()=>U,XV6:()=>al});let d={primary:"var(--color-primary)",ok:"var(--color-ok)",sevCritical:"var(--color-sev-critical)",sevHigh:"var(--color-sev-high)",sevMedium:"var(--color-sev-medium)",sevLow:"var(--color-sev-low)"},e=new Intl.RelativeTimeFormat("en",{numeric:"auto"}),f=[["year",31536e3],["month",2592e3],["week",604800],["day",86400],["hour",3600],["minute",60]];function g(a,b){if(!a)return"";let c=Date.parse(a);if(Number.isNaN(c))return"";let d=(c-b)/1e3,g=Math.abs(d);if(g<45)return"just now";for(let[a,b]of f)if(g>=b)return e.format(Math.round(d/b),a);return"just now"}var h=c(58692);let i=[{value:"7d",label:"Last 7 days"},{value:"30d",label:"Last 30 days"},{value:"3m",label:"Last 3 months"},{value:"6m",label:"Last 6 months"}];function j(a){return i.find(b=>b.value===a)?.label??a}function k(a,b){return new Date(b-864e5*h.eI7[a]).toISOString()}let l={"30m":18e5,"1h":36e5,"4h":144e5,"24h":864e5};function m(a){return void 0!==a&&Object.hasOwn(l,a)?a:"30m"}c(95623),c(35831);var n=c(60331);function o({title:a,sub:b,actions:c}){return(0,n.jsxs)("div",{className:"flex items-start justify-between gap-4 pb-6",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"font-display text-2xl font-semibold text-text",children:a}),void 0!==b&&""!==b&&(0,n.jsx)("p",{className:"mt-1 text-sm text-text-3",children:b})]}),c&&(0,n.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c})]})}let p={[h.tLs.ClaudeCode]:{label:"Claude Code",short:"CC",color:"#C96442"},[h.tLs.ClaudeDesktop]:{label:"Claude Desktop",short:"CD",color:"#A8553A"},[h.tLs.Cursor]:{label:"Cursor",short:"Cu",color:"#252F3D"},[h.tLs.Windsurf]:{label:"Windsurf",short:"Wf",color:"#0B8F7B"},[h.tLs.Codex]:{label:"Codex CLI",short:"Cx",color:"#10A37F"},[h.tLs.Antigravity]:{label:"Antigravity",short:"Ag",color:"#4285F4"},[h.tLs.Copilot]:{label:"GitHub Copilot",short:"Co",color:"#0581D4"},[h.tLs.ChatGpt]:{label:"ChatGPT",short:"GP",color:"#0d8f6f"},[h.tLs.ClaudeAi]:{label:"Claude.ai",short:"Ca",color:"#D97757"},[h.tLs.Api]:{label:"Anthropic API",short:"AP",color:"#6058E9"},[h.tLs.AiTcSdk]:{label:"Application SDK",short:"SD",color:"var(--color-mark-neutral)"}};function q({id:a,size:b=24}){let c=p[a];return(0,n.jsx)("span",{className:"flex shrink-0 items-center justify-center rounded-lg font-display font-bold text-white ring-1 ring-inset ring-mark-edge",style:{width:b,height:b,background:c.color,fontSize:.36*b},children:c.short})}var r=c(46526);c(54778);var s=c(37198);function t({icon:a,value:b,label:c,tone:d,isLoading:e}){let{text:f,fill:g}=r.cH[d];return(0,n.jsxs)("div",{"data-slot":"summary-stat",className:"flex min-w-0 flex-1 items-center gap-2 px-4",children:[(0,n.jsx)("span",{"data-slot":"summary-stat-icon",className:(0,r.cn)("grid size-7 shrink-0 place-items-center rounded-lg",g,f),children:(0,n.jsx)(a,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})}),(0,n.jsxs)("div",{className:"flex min-w-0 items-baseline gap-1.5 overflow-hidden",title:e?c:`${String(b)} ${c}`,children:[e?(0,n.jsx)(r.EA,{className:"h-4 w-10 shrink-0"}):(0,n.jsx)("span",{className:"min-w-0 truncate font-display text-lg font-semibold leading-none tabular-nums text-text",children:b}),(0,n.jsx)("span",{className:"shrink-[9999] truncate text-xs text-text-3",children:c})]})]})}function u({items:a,isLoading:b,className:c}){return(0,n.jsx)(r.Zp,{className:(0,r.cn)("mb-3 flex shrink-0 items-stretch overflow-hidden py-2.5 shadow-sm",c),"aria-busy":b,children:a.map((a,c)=>(0,n.jsxs)(s.Fragment,{children:[c>0&&(0,n.jsx)("span",{className:"w-px shrink-0 self-stretch bg-hairline"}),(0,n.jsx)(t,{...a,isLoading:b})]},a.label))})}function v({message:a}){return(0,n.jsxs)("div",{role:"alert",className:"text-xs text-text-3",children:["Couldn’t load data — ",a]})}function w({message:a,className:b}){return(0,n.jsx)("div",{className:(0,r.cn)("w-full py-6 text-center text-xs text-text-3",b),children:a})}c(69864);var x=c(37740);let y={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round"},z=a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("path",{d:"M8 2.5h8L21.5 8v8L16 21.5H8L2.5 16V8L8 2.5Z"}),(0,n.jsx)("path",{d:"M12 8v4"}),(0,n.jsx)("circle",{cx:"12",cy:"16",r:"1",fill:"currentColor",stroke:"none"})]}),A=a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("path",{d:"M14 4h6v6"}),(0,n.jsx)("path",{d:"M20 4 11 13"}),(0,n.jsx)("path",{d:"M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4"})]}),B=a=>(0,n.jsx)("svg",{...y,...a,children:(0,n.jsx)("path",{d:"M12 19V5M6 11l6-6 6 6"})}),C=a=>(0,n.jsx)("svg",{...y,...a,children:(0,n.jsx)("path",{d:"M12 5v14M6 13l6 6 6-6"})}),D=a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("path",{d:"M12 3 4.5 6v5.5c0 4.6 3.2 7.6 7.5 9 4.3-1.4 7.5-4.4 7.5-9V6L12 3Z"}),(0,n.jsx)("path",{d:"m9 12 2 2 4-4"})]}),E=a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"8.5"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"4.5"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"1",fill:"currentColor",stroke:"none"})]}),F=a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("circle",{cx:"12",cy:"8",r:"3.6"}),(0,n.jsx)("path",{d:"M5.5 20a6.5 6.5 0 0 1 13 0"})]}),G=a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("path",{d:"M6 8.4v7.2"}),(0,n.jsx)("circle",{cx:"6",cy:"6",r:"2.4"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"2.4"}),(0,n.jsx)("circle",{cx:"18",cy:"7",r:"2.4"}),(0,n.jsx)("path",{d:"M18 9.4a8.6 8.6 0 0 1-8.6 8.6"})]}),H=a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("circle",{cx:"8",cy:"12",r:"4"}),(0,n.jsx)("path",{d:"M11.5 12H21l-2 2.4M16.5 12v3"})]}),I=a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("ellipse",{cx:"12",cy:"6",rx:"7",ry:"3"}),(0,n.jsx)("path",{d:"M5 6v12c0 1.7 3.1 3 7 3s7-1.3 7-3V6"}),(0,n.jsx)("path",{d:"M5 12c0 1.7 3.1 3 7 3s7-1.3 7-3"})]}),J=a=>(0,n.jsx)("svg",{...y,...a,children:(0,n.jsx)("path",{d:"M8 4c-2 0-2 2-2 4s0 3-2 4c2 1 2 2 2 4s0 4 2 4M16 4c2 0 2 2 2 4s0 3 2 4c-2 1-2 2-2 4s0 4-2 4"})}),K=a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"M3 12h18"}),(0,n.jsx)("path",{d:"M12 3c2.6 2.6 2.6 15.4 0 18M12 3c-2.6 2.6-2.6 15.4 0 18"})]}),L=a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"m8.5 12 2.3 2.3 4.7-4.6"})]}),M=a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),(0,n.jsx)("path",{d:"m7 9 3 3-3 3M13 15h4"})]}),N=a=>(0,n.jsx)("svg",{...y,...a,children:(0,n.jsx)("path",{d:"M13 2 4 14h7l-1 8 9-12h-7l1-8Z"})});h.tLs.ClaudeCode,h.tLs.Cursor,h.tLs.Copilot,h.tLs.Codex,h.tLs.Antigravity,h.tLs.Windsurf,h.tLs.ClaudeDesktop,h.tLs.ChatGpt,h.tLs.ClaudeAi,h.tLs.Api,h.tLs.AiTcSdk,Object.values(h.tLs),r.cH.neutral,r.cH.primary,r.cH.violet,r.cH.neutral,r.cH.low,r.cH.critical,r.cH.teal,r.cH.high,r.cH.neutral,r.cH.critical,r.cH.primary,new Intl.DateTimeFormat("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}),new Intl.DateTimeFormat("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"}),c(13186),c(71246),c(18193);let O=["grouped","flat","files"],P="grouped";function Q(a){return O.includes(a)}Object.assign(Object.create(null),{secret:H,pii:F,source_code:a=>(0,n.jsx)("svg",{...y,...a,children:(0,n.jsx)("path",{d:"m8 8-4 4 4 4M16 8l4 4-4 4M13.5 6l-3 12"})}),code_flaw:a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("path",{d:"M12 3 2 20h20L12 3Z"}),(0,n.jsx)("path",{d:"M12 9v5"}),(0,n.jsx)("circle",{cx:"12",cy:"17",r:"1",fill:"currentColor",stroke:"none"})]}),external_share:A,mcp_server:a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("rect",{x:"4",y:"4",width:"16",height:"7",rx:"2"}),(0,n.jsx)("rect",{x:"4",y:"13",width:"16",height:"7",rx:"2"}),(0,n.jsx)("circle",{cx:"8",cy:"7.5",r:"1",fill:"currentColor",stroke:"none"}),(0,n.jsx)("circle",{cx:"8",cy:"16.5",r:"1",fill:"currentColor",stroke:"none"})]}),customer_data:I,financial:I,phi:F,custom:H}),r.id.critical,r.id.primary,r.id.high,r.id.ok,r.id.neutral,r.id.critical;let R={severity:[],type:[],provider:[],action:[],status:[],deployment:[]};c(84272),c(55365),c(42429),c(14255),c(12978),c(95036),c(24590),c(99557),c(23596),c(5771);let S="Nothing is being vaulted on this machine",T="Reversible redaction is now assigned per detection rather than by the vault consent alone. This machine has the consent granted and entries already in its vault, but no detection is set to Redact & Vault — so detected values are being redacted one-way, and what is removed from here on cannot be recovered. Set the detections you want kept to Redact & Vault below. Entries already in the vault are unaffected.";function U(a){return a.consentValid&&a.vaultEntries>0&&0===a.vaultAssignedPacks}var V=c(34078);c(54639),c(73910);let W={skill:{type:"skill",label:"Skills",icon:"sparkles",fg:"text-violet-ink",bg:"bg-violet-fill"},mcp:{type:"mcp",label:"MCP servers",icon:"server",fg:"text-teal-ink",bg:"bg-teal-fill"},hook:{type:"hook",label:"Hooks",icon:"route",fg:"text-sev-low-ink",bg:"bg-sev-low-fill"},config:{type:"config",label:"Configuration",icon:"sliders",fg:"text-teal-ink",bg:"bg-surface-2"}};function X(a,b){let c;if(null!=a&&("harness"===a.type?b.harnesses.some(b=>b.id===a.id):"project"===a.type?b.projects.some(b=>b.id===a.id):(c=a.id,b.assetGroups.some(a=>a.items.some(a=>a.id===c))||b.harnesses.some(a=>a.categories.some(a=>a.assets.some(a=>a.id===c))))))return a;let d=b.harnesses[0];if(d)return{type:"harness",id:d.id};let e=b.projects[0];if(e)return{type:"project",id:e.id};for(let a of b.assetGroups){let b=a.items[0];if("project"!==a.type&&b)return{type:a.type,id:b.id}}return null}W.skill,W.mcp,W.hook,W.config,c(74665),c(30314),c(79252),c(13374);let Y={critical:{label:"Critical",color:d.sevCritical},high:{label:"High",color:d.sevHigh},medium:{label:"Medium",color:d.sevMedium},low:{label:"Low",color:d.sevLow}},Z={blocked:{label:"Blocked",icon:a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"m6 6 12 12"})]}),color:d.sevCritical},redacted:{label:"Redacted",icon:a=>(0,n.jsxs)("svg",{...y,...a,children:[(0,n.jsx)("rect",{x:"3",y:"9",width:"18",height:"6",rx:"1.5",fill:"currentColor",stroke:"none"}),(0,n.jsx)("path",{d:"M3 5h18M3 19h12"})]}),color:d.primary},warned:{label:"Warned",icon:z,color:d.sevHigh}},$=new Intl.NumberFormat("en-US"),_=new Intl.NumberFormat("en-US",{notation:"compact"});function aa({total:a,actions:b,isLoading:c,error:d,rangeLabel:e,actionHrefs:f}){return(0,n.jsx)(r.Zp,{className:"flex flex-col shadow-sm",children:(0,n.jsxs)(r.Wu,{"aria-busy":c,className:"flex flex-1 flex-col justify-center gap-4",children:[(0,n.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"text-sm font-semibold text-text",children:"Enforcement actions"}),(0,n.jsx)("div",{className:"mt-0.5 text-xs text-text-3",children:e.toLowerCase()})]}),(0,n.jsxs)("div",{className:"text-right",children:[c?(0,n.jsx)(r.EA,{className:"ml-auto h-5 w-12"}):(0,n.jsx)("div",{className:"font-display text-xl font-semibold leading-none text-text",children:d?"—":$.format(a)}),(0,n.jsx)("div",{className:"mt-0.5 text-label text-text-3",children:"total intercepted"})]})]}),d?(0,n.jsx)(v,{message:d}):c?(0,n.jsx)("div",{className:"flex gap-3",children:[0,1,2].map(a=>(0,n.jsx)(r.EA,{className:"h-20 flex-1"},a))}):0===a?(0,n.jsx)(w,{message:"No enforcement actions in this range."}):(0,n.jsx)("div",{className:"flex gap-3",children:b.map(a=>{let b=Z[a.kind],c=b.icon,d=a.delta>0,e=f?.[a.kind],g=e?"a":"div";return(0,n.jsxs)(g,{...e?{href:e,title:`View ${b.label.toLowerCase()} findings`}:{},className:(0,r.cn)("block min-w-0 flex-1 border-l-[3px] pl-3",e&&"transition-colors hover:bg-surface-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary/40"),style:{borderColor:b.color},children:[(0,n.jsxs)("div",{className:"inline-flex items-center gap-1.5",style:{color:b.color},children:[(0,n.jsx)(c,{"aria-hidden":!0,focusable:!1,className:"size-4"}),(0,n.jsx)("span",{className:"text-xs font-semibold text-text-2",children:b.label})]}),(0,n.jsx)("div",{className:"mt-2 font-display text-3xl font-semibold leading-none text-text",children:$.format(a.count)}),0!==a.delta&&(0,n.jsxs)("div",{className:"mt-1 inline-flex items-center gap-0.5 text-xs font-semibold text-text-3",children:[d?(0,n.jsx)(B,{"aria-hidden":!0,focusable:!1,className:"size-3"}):(0,n.jsx)(C,{"aria-hidden":!0,focusable:!1,className:"size-3"}),d?"+":"−",$.format(Math.abs(a.delta))," vs. prior"]})]},a.kind)})})]})})}var ab=c(7413),ac=c(72788);function ad({items:a,isLoading:b,error:c,renderedAt:d,itemHrefs:e}){return(0,n.jsxs)(r.Zp,{className:"flex h-full flex-col shadow-sm",children:[(0,n.jsxs)(r.aR,{children:[(0,n.jsx)(r.AG,{children:(0,n.jsx)(L,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,n.jsxs)(r.Lc,{children:[(0,n.jsx)(r.ZB,{children:"Recently resolved"}),(0,n.jsx)(r.BT,{children:"Findings moved to resolved, newest first"})]})]}),(0,n.jsx)(r.Wu,{"aria-busy":b,className:"flex flex-col",children:c?(0,n.jsx)(v,{message:c}):b?(0,n.jsx)("div",{className:"flex flex-col gap-3 py-2",children:[0,1,2].map(a=>(0,n.jsx)(r.EA,{className:"h-12 w-full"},a))}):0===a.length?(0,n.jsx)(w,{message:"No resolved findings yet."}):a.map((b,c)=>{let f=e?.[b.findingKey];return(0,n.jsx)(ae,{item:b,last:c===a.length-1,renderedAt:d,...f?{href:f}:{}},b.findingKey)})})]})}function ae({item:a,last:b,renderedAt:c,href:d}){let e=d?"a":"div";return(0,n.jsxs)(e,{...d?{href:d,title:`View resolved ${a.ruleId} findings`}:{},className:(0,r.cn)("relative flex gap-3",!b&&"pb-4",d&&"rounded-sm transition-colors hover:bg-surface-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary/40"),children:[!b&&(0,n.jsx)("span",{className:"absolute bottom-0 left-4 top-8 w-px bg-hairline"}),(0,n.jsx)("span",{className:(0,r.cn)("z-10 grid size-8 shrink-0 place-items-center rounded-lg",r.id[a.severity]),children:(0,n.jsx)(L,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"truncate text-sm font-semibold text-text",title:a.ruleId,children:a.ruleId}),(0,n.jsx)("span",{className:"ml-auto shrink-0 text-xs text-text-3",children:g(a.resolvedAt,c)})]}),(0,n.jsxs)("div",{className:"mt-1.5 flex items-center gap-1.5 text-xs text-text-3",children:[(0,n.jsx)("span",{className:"shrink-0",children:Y[a.severity].label}),(0,n.jsx)("span",{className:"shrink-0 text-text-3",children:"\xb7"}),(0,n.jsx)("span",{className:"truncate font-mono",title:a.path,children:a.path})]})]})]})}function af(a,b={}){return(0,h.Plu)(a).map(a=>{var c;let d=b.hrefForRule?.(a.ruleId),e=(0,h.bCv)(a.category);return{id:`local-${a.category}`,category:a.category,severity:"critical"===(c=a.severity)||"high"===c||"medium"===c?c:"low",title:e.title,description:e.advice,subjects:[{type:"rule",id:a.ruleId,label:`${a.ruleId} \xb7 ${String(a.count)} finding${1===a.count?"":"s"}`}],action:{mode:"navigate",type:"review_findings",label:"Review findings",...void 0===d?{}:{href:d}}}})}function ag({providers:a,isLoading:b,error:c}){return(0,n.jsxs)(r.Zp,{className:"flex flex-col shadow-sm",children:[(0,n.jsxs)(r.aR,{children:[(0,n.jsx)(r.AG,{tone:"teal",children:(0,n.jsx)(D,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,n.jsxs)(r.Lc,{children:[(0,n.jsx)(r.ZB,{children:"Coverage by provider"}),(0,n.jsx)(r.BT,{children:"What each integration exposes to AKA"})]})]}),(0,n.jsx)(r.Wu,{"aria-busy":b,className:"flex flex-col gap-2.5",children:c?(0,n.jsx)(v,{message:c}):b?[0,1,2,3,4].map(a=>(0,n.jsx)(r.EA,{className:"h-6 w-full"},a)):a.map(a=>{let b=!a.supported,c=100===a.coverage?d.ok:a.coverage>=60?d.sevMedium:d.sevHigh;return(0,n.jsxs)("div",{className:(0,r.cn)("flex items-center gap-2.5",b&&"opacity-45"),children:[(0,n.jsx)("span",{className:(0,r.cn)(b&&"grayscale"),children:(0,n.jsx)(q,{id:a.provider})}),(0,n.jsxs)("span",{className:"w-28 shrink-0 truncate text-ui text-text",children:[p[a.provider].label,b&&(0,n.jsx)("span",{className:"sr-only",children:" — not yet supported"})]}),b?(0,n.jsx)("span",{"aria-hidden":!0,className:"block h-1.5 flex-1 rounded-full bg-surface-3"}):(0,n.jsx)(r.kI,{value:a.coverage,max:100,color:c,height:6,"aria-label":`${p[a.provider].label} coverage`}),b?(0,n.jsx)("span",{className:"w-9 shrink-0 text-right text-label font-semibold uppercase tracking-wide text-text-3",children:"Soon"}):(0,n.jsxs)("span",{className:"w-9 shrink-0 text-right text-xs font-semibold text-text-2",children:[a.coverage,"%"]})]},a.provider)})})]})}c(12148);let ah={key:"open",label:"Open",status:"open",pick:a=>a.openAtRest??0},ai={key:"dismissed",label:"Dismissed",status:"dismissed",pick:a=>a.dismissed??0},aj=[ah,{key:"handled",label:"Handled",status:"handled",pick:a=>a.handled??0},{key:"resolved",label:"Resolved",status:"resolved",pick:a=>a.resolved??0},ai],ak=[ah,{key:"caught",label:"Caught",pick:a=>a.caught??0},ai];function al(a,b){return`${a}:${b}`}function am({value:a,href:b,label:c}){let d=$.format(a),e=a>=1e4,f=e?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{"aria-hidden":!0,children:_.format(a).toLowerCase()}),(0,n.jsx)("span",{className:"sr-only",children:d})]}):d,g=e?d:void 0;return b&&a>0?(0,n.jsx)("a",{href:b,title:g?`${g} \xb7 View ${c} findings`:`View ${c} findings`,className:"block rounded-sm px-2 py-2 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",children:f}):(0,n.jsx)("span",{title:g,className:"block px-2 py-2",children:f})}function an(){let a=aj.length;return(0,n.jsxs)("table",{"aria-hidden":!0,className:"w-full border-separate border-spacing-1 text-ui",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{}),Array.from({length:a+1},(a,b)=>(0,n.jsx)("th",{className:"px-1 pb-2",children:(0,n.jsx)(r.EA,{className:"ml-auto h-3 w-12"})},b))]})}),(0,n.jsx)("tbody",{children:[0,1,2,3].map(b=>(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{className:"pr-2 text-left",children:(0,n.jsx)(r.EA,{className:"h-4 w-16"})}),Array.from({length:a},(a,b)=>(0,n.jsx)("td",{className:"p-0",children:(0,n.jsx)(r.EA,{className:"h-9 w-full"})},b)),(0,n.jsx)("td",{className:"p-0",children:(0,n.jsx)(r.EA,{className:"ml-auto h-4 w-8"})})]},b))}),(0,n.jsx)("tfoot",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{className:"pr-2 text-left",children:(0,n.jsx)(r.EA,{className:"h-4 w-6"})}),Array.from({length:a},(a,b)=>(0,n.jsx)("td",{className:"p-0",children:(0,n.jsx)(r.EA,{className:"ml-auto h-4 w-8"})},b)),(0,n.jsx)("td",{className:"p-0",children:(0,n.jsx)(r.EA,{className:"ml-auto h-4 w-10"})})]})})]})}function ao({bySeverity:a,total:b,severityHrefs:c,statusHrefs:d}){let e=a.some(a=>void 0!==a.handled||void 0!==a.resolved||void 0!==a.caught||void 0!==a.openAtRest||void 0!==a.dismissed),f=a.every(a=>void 0!==a.handled&&void 0!==a.resolved),g=e?f?aj:ak:[],h=Math.max(0,...a.flatMap(a=>g.map(b=>b.pick(a)))),i=g.map(b=>({column:b,n:a.reduce((a,c)=>a+b.pick(c),0)})),j="px-1 pb-2 text-right text-label font-semibold uppercase tracking-wide text-text-3";return(0,n.jsxs)("table",{className:"w-full border-separate border-spacing-1 text-ui",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{scope:"col",className:"sr-only",children:"Severity"}),g.map(a=>(0,n.jsx)("th",{scope:"col",className:j,children:a.label},a.key)),(0,n.jsx)("th",{scope:"col",className:j,children:"All"})]})}),(0,n.jsx)("tbody",{children:a.map(a=>{let b=Y[a.severity],e=c?.[a.severity],f=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"size-2 shrink-0 rounded-xs",style:{background:b.color}}),b.label]});return(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{scope:"row",className:"pr-2 text-left font-semibold text-text",children:e?(0,n.jsx)("a",{href:e,title:`View ${b.label.toLowerCase()} findings`,className:"flex items-center gap-2 rounded-sm hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",children:f}):(0,n.jsx)("span",{className:"flex items-center gap-2",children:f})}),g.map(c=>{let e=c.pick(a);return(0,n.jsx)("td",{"data-cell":`${a.severity}-${c.key}`,className:"rounded-sm bg-surface-2 p-0 text-right font-bold text-text",style:{backgroundColor:function(a,b,c){if(b<=0||c<=0)return;let d=String(Math.max(6,Math.round(b/c*40)));return`color-mix(in srgb, ${a} ${d}%, transparent)`}(b.color,e,h)},children:(0,n.jsx)(am,{value:e,href:d?.[al(a.severity,c.key)],label:`${b.label.toLowerCase()} ${c.label.toLowerCase()}`})},c.key)}),(0,n.jsx)("td",{"data-cell":`${a.severity}-all`,className:"p-0 text-right text-text-2",children:(0,n.jsx)(am,{value:a.count,href:e,label:b.label.toLowerCase()})})]},a.severity)})}),(0,n.jsx)("tfoot",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{scope:"row",className:"pr-2 text-left font-normal text-text-2",children:"All"}),i.map(({column:a,n:b})=>(0,n.jsx)("td",{"data-cell":`all-${a.key}`,className:"p-0 text-right text-text-2",children:(0,n.jsx)(am,{value:b,href:d?.[al("all",a.key)],label:a.label.toLowerCase()})},a.key)),(0,n.jsx)("td",{"data-cell":"all-all",className:"p-0 text-right font-bold text-text",children:(0,n.jsx)(am,{value:b,href:d?.[al("all","all")],label:"all"})})]})})]})}function ap({bySeverity:a,total:b,severityHrefs:c,statusHrefs:d,isLoading:e,error:f}){return(0,n.jsxs)(r.Zp,{className:"flex flex-col shadow-sm",children:[(0,n.jsxs)(r.aR,{children:[(0,n.jsx)(r.AG,{tone:"critical",children:(0,n.jsx)(z,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,n.jsxs)(r.Lc,{children:[(0,n.jsx)(r.ZB,{children:"Findings by severity and status"}),(0,n.jsx)(r.BT,{children:e?"Loading…":f?"—":`${$.format(b)} findings`})]})]}),(0,n.jsx)(r.Wu,{"aria-busy":e,children:f?(0,n.jsx)(v,{message:f}):e?(0,n.jsx)(an,{}):0===b?(0,n.jsx)(w,{message:"No findings."}):(0,n.jsx)(ao,{bySeverity:a,total:b,severityHrefs:c,statusHrefs:d})})]})}function aq({items:a,isLoading:b,error:c,sourceHrefs:d}){return(0,n.jsxs)(r.Zp,{className:"flex flex-col shadow-sm min-w-0",children:[(0,n.jsxs)(r.aR,{children:[(0,n.jsx)(r.AG,{children:(0,n.jsx)(E,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,n.jsxs)(r.Lc,{children:[(0,n.jsx)(r.ZB,{children:"Top sources"}),(0,n.jsx)(r.BT,{children:"Repos & people by findings"})]})]}),(0,n.jsx)(r.Wu,{"aria-busy":b,className:"flex flex-col gap-3",children:c?(0,n.jsx)(v,{message:c}):b?[0,1,2,3,4].map(a=>(0,n.jsx)(r.EA,{className:"h-7 w-full"},a)):0===a.length?(0,n.jsx)("div",{className:"py-6 text-center text-xs text-text-3",children:"No sources yet."}):a.map(a=>{let b=d?.[a.id];return(0,n.jsx)(ar,{source:a,...b?{href:b}:{}},a.id)})})]})}function ar({source:a,href:b}){let c="user"===a.kind,d=b?"a":"div";return(0,n.jsxs)(d,{...b?{href:b,title:`View findings from ${a.name}`}:{},className:(0,r.cn)("flex items-center gap-3",b&&"-mx-1 rounded-sm px-1 transition-colors hover:bg-surface-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary/40"),children:[(0,n.jsx)("span",{className:(0,r.cn)("flex size-7 shrink-0 items-center justify-center bg-surface-2 text-text-2",c?"rounded-full":"rounded-md"),children:(0,n.jsx)(c?F:G,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})}),(0,n.jsxs)("div",{className:"min-w-0 flex-1 flex items-center justify-between gap-2",children:[(0,n.jsx)("span",{className:(0,r.cn)("truncate text-sm text-text",!c&&"font-mono"),title:a.name,children:a.name}),(0,n.jsx)("span",{className:"text-sm font-bold text-text shrink-0",children:$.format(a.findingsCount)})]})]})}let as={chatgpt:"ChatGPT","claude-ai":"Claude.ai"};function at({sites:a,ruleId:b,severity:c,isLoading:d,error:e}){return(0,n.jsxs)(r.Zp,{className:"flex flex-col shadow-sm",children:[(0,n.jsxs)(r.aR,{children:[(0,n.jsx)(r.AG,{tone:"teal",children:(0,n.jsx)(K,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,n.jsxs)(r.Lc,{children:[(0,n.jsx)(r.ZB,{children:"Web chat capture"}),(0,n.jsx)(r.BT,{children:"Browser extension \xb7 per site"})]})]}),(0,n.jsx)(r.Wu,{"aria-busy":d,className:"flex flex-col gap-3",children:e?(0,n.jsx)(v,{message:e}):d?[0,1].map(a=>(0,n.jsx)(r.EA,{className:"h-10 w-full"},a)):a.map(a=>(0,n.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"w-20 shrink-0 text-ui font-medium text-text",children:as[a.tool]}),(0,n.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-text-3",children:a.stateLabel})]}),(0,n.jsx)("p",{className:"text-xs text-text-2",children:a.headline}),a.drift&&(0,n.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2","data-slot":"web-capture-drift","data-severity":c,children:[(0,n.jsx)(r.Ex,{variant:c,children:(0,n.jsx)("span",{className:"font-mono",children:b})}),void 0!==a.remediation&&(0,n.jsx)("span",{className:"text-xs text-text-3",children:a.remediation})]})]},a.tool))})]})}function au(a,b){return(0,h.qEQ)(a.keyVersion,b)}c(5357),c(43525),c(90145),c(25031),c(50823),c(77084),c(2870),c(46649),c(97123),c(29516),c(29840),c(89691),c(92529),c(34364),c(86639),c(37759),c(74125),c(71721),c(49946),c(11696),c(72437),c(471)},69864:(a,b,c)=>{"use strict";c.d(b,{TimeRangeSelect:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call TimeRangeSelect() from the server but TimeRangeSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/TimeRangeSelect.tsx","TimeRangeSelect")},69901:(a,b,c)=>{"use strict";c.d(b,{AvailablePluginsCardView:()=>g});var d=c(469),e=c(72454),f=c(78666);function g({plugins:a,onInstall:b,installingId:c,outcomes:g}){return 0===a.length?null:(0,d.jsxs)(e.Zp,{className:"shadow-sm",children:[(0,d.jsxs)(e.aR,{children:[(0,d.jsx)(e.AG,{tone:"teal",children:(0,d.jsx)(f.BZ,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsxs)(e.Lc,{children:[(0,d.jsx)(e.ZB,{children:"Available plugins"}),(0,d.jsx)(e.BT,{children:"Agent integrations you haven’t installed yet"})]})]}),(0,d.jsx)(e.Wu,{children:(0,d.jsx)("div",{className:"flex flex-col",children:a.map((a,f)=>{let h=g[a.id];return(0,d.jsxs)("div",{className:(0,e.cn)("py-3",f>0&&"border-t border-hairline"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-text",children:a.name}),a.latest&&(0,d.jsxs)("div",{className:"mt-0.5 font-mono text-xs text-text-3",children:["v",a.latest]})]}),(0,d.jsx)(e.$n,{variant:"solid",tone:"primary",size:"sm",disabled:null!==c,onClick:()=>{b(a.id)},children:c===a.id?"Installing…":"Install"})]}),h&&(0,d.jsxs)("div",{className:(0,e.cn)("mt-2 rounded-lg border p-2",h.ok?"border-ok-fill bg-ok-fill":"border-sev-critical-fill bg-sev-critical-fill"),children:[(0,d.jsx)("div",{className:"text-xs font-semibold text-text",children:h.ok?"Installed — restart Claude Code to load it.":"Install failed"}),h.output&&(0,d.jsx)("pre",{className:"mt-1 max-h-40 overflow-auto whitespace-pre-wrap font-mono text-label text-text-2",children:h.output})]})]},a.id)})})})]})}},71246:(a,b,c)=>{"use strict";c.d(b,{SessionDetailView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call SessionDetailView() from the server but SessionDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/SessionDetailView.tsx","SessionDetailView")},71721:(a,b,c)=>{"use strict";c.d(b,{DataSharesTableView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call DataSharesTableView() from the server but DataSharesTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/data-shares/DataSharesTableView.tsx","DataSharesTableView")},72437:(a,b,c)=>{"use strict";c.d(b,{HB:()=>d});let d='(function(){try{var p=localStorage.getItem("aka-theme");var d=p==="dark"||(p!=="light"&&matchMedia("(prefers-color-scheme: dark)").matches);document.documentElement.classList.toggle("dark",d);}catch(e){}})();'},72454:(a,b,c)=>{"use strict";c.d(b,{Ex:()=>n,$n:()=>s,Zp:()=>t,X9:()=>z,Wu:()=>A,BT:()=>y,aR:()=>u,Lc:()=>w,AG:()=>v,ZB:()=>x,lG:()=>C,R4:()=>F,Cf:()=>D,rr:()=>H,Es:()=>I,c7:()=>E,L3:()=>G,rI:()=>L,hO:()=>T,SQ:()=>Q,_2:()=>R,Hr:()=>N,Ht:()=>S,mB:()=>U,ty:()=>M,pd:()=>V,kI:()=>W,dK:()=>X,WA:()=>Z,Eb:()=>Y,D2:()=>$,AM:()=>ac,hl:()=>ae,Wv:()=>ad,t0:()=>o,Iz:()=>ag,tR:()=>ah,l6:()=>aj,gC:()=>ao,eb:()=>ap,bq:()=>an,yv:()=>ak,Pt:()=>p,cj:()=>as,h:()=>at,Qs:()=>aw,Fm:()=>au,qp:()=>av,EA:()=>ax,dO:()=>az,cH:()=>i,id:()=>j,XI:()=>aA,BF:()=>aC,nA:()=>aF,nd:()=>aE,A0:()=>aB,Hj:()=>aD,tU:()=>aH,av:()=>aK,j7:()=>aI,Xi:()=>aJ,vw:()=>aL,cn:()=>h,vV:()=>l});var d=c(469),e=c(61207),f=c(76633);let g=(0,c(64840).zu)({extend:{classGroups:{"font-size":[{text:["ui","label"]}]}}});function h(...a){return g((0,f.$)(a))}let i={neutral:{fill:"bg-surface-3",text:"text-text-2"},critical:{fill:"bg-sev-critical-fill",text:"text-sev-critical-ink"},high:{fill:"bg-sev-high-fill",text:"text-sev-high-ink"},medium:{fill:"bg-sev-medium-fill",text:"text-sev-medium-ink"},low:{fill:"bg-sev-low-fill",text:"text-sev-low-ink"},ok:{fill:"bg-ok-fill",text:"text-ok-ink"},teal:{fill:"bg-teal-fill",text:"text-teal-ink"},violet:{fill:"bg-violet-fill",text:"text-violet-ink"},primary:{fill:"bg-primary-tint",text:"text-primary"}},j=Object.fromEntries(Object.entries(i).map(([a,{fill:b,text:c}])=>[a,`${b} ${c}`]));function k(a){return`var(--color-${a.replace(/^(?:text|bg)-/,"")})`}function l(a){let{fill:b,text:c}=i[a];return[k(c),k(b)]}let m=(0,e.F)("inline-flex items-center gap-1.5 whitespace-nowrap rounded-full px-2 py-0.5 text-xs font-semibold",{variants:{variant:{default:j.neutral,outline:"border border-border text-text-2",critical:j.critical,high:j.high,medium:j.medium,low:j.low,success:j.ok,teal:j.teal,primary:j.primary}},defaultVariants:{variant:"default"}});function n({variant:a,className:b,children:c}){return(0,d.jsx)("span",{className:h(m({variant:a}),b),children:c})}let o={critical:"bg-sev-critical",high:"bg-sev-high",medium:"bg-sev-medium",low:"bg-sev-low"};function p({severity:a}){return(0,d.jsxs)(n,{variant:a,className:"h-6",children:[(0,d.jsx)("span",{className:h("size-1.5 rounded-full",o[a])}),(0,d.jsx)("span",{className:"capitalize",children:a})]})}var q=c(44632);let r=(0,e.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg font-medium transition-colors cursor-pointer disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{solid:"",outline:"border",ghost:"",link:""},tone:{primary:"",neutral:"",danger:""},size:{sm:"h-8 px-3 text-xs",md:"h-9 px-4 text-sm",icon:"size-9"}},compoundVariants:[{variant:"solid",tone:"primary",class:"bg-primary-solid text-text-inv hover:bg-primary-hover"},{variant:"solid",tone:"neutral",class:"bg-surface-3 text-text hover:bg-border-strong"},{variant:"solid",tone:"danger",class:"bg-sev-critical-ink text-on-accent hover:bg-sev-critical-hover"},{variant:"outline",tone:"primary",class:"border-primary text-primary hover:bg-primary-tint"},{variant:"outline",tone:"neutral",class:"border-border bg-surface text-text hover:bg-surface-2"},{variant:"outline",tone:"danger",class:"border-sev-critical text-sev-critical-ink hover:bg-sev-critical-fill"},{variant:"ghost",tone:"primary",class:"text-primary hover:bg-primary-tint"},{variant:"ghost",tone:"neutral",class:"text-text-2 hover:bg-surface-2 hover:text-text"},{variant:"ghost",tone:"danger",class:"text-sev-critical-ink hover:bg-sev-critical-fill"},{variant:"link",class:"h-auto gap-1 rounded-sm p-0 align-baseline font-semibold underline-offset-4 [&_svg]:size-3.5"},{variant:"link",tone:"primary",class:"text-primary hover:underline"},{variant:"link",tone:"neutral",class:"text-text-2 hover:text-text hover:underline"},{variant:"link",tone:"danger",class:"text-sev-critical-ink hover:underline"}],defaultVariants:{variant:"solid",tone:"neutral",size:"md"}});function s({className:a,variant:b,tone:c,size:e,asChild:f=!1,type:g,...i}){let j=f?q.DX:"button";return(0,d.jsx)(j,{className:h(r({variant:b,tone:c,size:e}),a),...f?{}:{type:g??"button"},...i})}function t({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card",className:h("rounded-xl border border-border bg-surface",a),...b})}function u({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:h("flex items-center gap-3 px-5 pt-5",a),...b})}function v({className:a,tone:b="neutral",...c}){return(0,d.jsx)("span",{"data-slot":"card-icon",className:h("flex size-7.5 shrink-0 items-center justify-center rounded-lg",(Object.hasOwn(j,b)?j[b]:void 0)??j.neutral,a),...c})}function w({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-heading",className:h("min-w-0",a),...b})}function x({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:h("text-sm font-semibold text-text",a),...b})}function y({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:h("text-xs text-text-3",a),...b})}function z({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-action",className:h("ml-auto flex items-center",a),...b})}function A({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:h("p-5",a),...b})}var B=c(39949);let C=B.Root;function D({className:a,children:b,...c}){return(0,d.jsxs)(B.Portal,{children:[(0,d.jsx)(B.Overlay,{"data-slot":"dialog-overlay",className:"fixed inset-0 z-50 bg-ink/40"}),(0,d.jsx)(B.Content,{"data-slot":"dialog-content",className:h("fixed left-1/2 top-1/2 z-50 flex max-h-[92vh] w-full max-w-lg -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-border bg-surface shadow-lg outline-none",a),...c,children:b})]})}function E({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-header",className:h("flex shrink-0 flex-col gap-1 border-b border-border px-5 py-4",a),...b})}function F({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-body",className:h("flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto px-5 py-4",a),...b})}function G({className:a,...b}){return(0,d.jsx)(B.Title,{"data-slot":"dialog-title",className:h("font-display text-base font-semibold text-text",a),...b})}function H({className:a,...b}){return(0,d.jsx)(B.Description,{"data-slot":"dialog-description",className:h("text-xs text-text-3",a),...b})}function I({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-footer",className:h("flex shrink-0 items-center justify-end gap-2.5 border-t border-border px-5 py-3.5",a),...b})}B.Trigger,B.Close;var J=c(63480);function K({className:a}){return(0,d.jsx)("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,focusable:!1,className:a,children:(0,d.jsx)("path",{d:"M13 4.5 6.5 11 3 7.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}let L=J.Root,M=J.Trigger;J.Group;let N=J.RadioGroup,O=(0,e.F)("flex cursor-pointer select-none items-center gap-2 rounded-md px-2.5 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",{variants:{tone:{default:"text-text-2 focus:bg-surface-2 focus:text-text",danger:"text-sev-critical-ink focus:bg-sev-critical-fill focus:text-sev-critical-ink"}},defaultVariants:{tone:"default"}}),P=O();function Q({className:a,sideOffset:b=6,...c}){return(0,d.jsx)(J.Portal,{children:(0,d.jsx)(J.Content,{sideOffset:b,className:h("z-50 min-w-32 overflow-hidden rounded-lg border border-border bg-surface p-1 shadow-lg",a),...c})})}function R({className:a,tone:b,...c}){return(0,d.jsx)(J.Item,{className:h(O({tone:b}),a),...c})}function S({className:a,children:b,...c}){return(0,d.jsxs)(J.RadioItem,{className:h(P,"data-[state=checked]:font-semibold data-[state=checked]:text-text",a),...c,children:[(0,d.jsx)("span",{className:"flex-1",children:b}),(0,d.jsx)(J.ItemIndicator,{children:(0,d.jsx)(K,{className:"size-4 text-primary"})})]})}function T({className:a,children:b,...c}){return(0,d.jsxs)(J.CheckboxItem,{className:h(P,"group data-[state=checked]:font-semibold data-[state=checked]:text-text",a),...c,children:[(0,d.jsx)("span",{className:"grid size-4 shrink-0 place-items-center rounded-[5px] border border-border-strong text-text-inv transition-colors group-data-[state=checked]:border-primary-solid group-data-[state=checked]:bg-primary-solid",children:(0,d.jsx)(J.ItemIndicator,{children:(0,d.jsx)(K,{className:"size-3"})})}),(0,d.jsx)("span",{className:"flex-1",children:b})]})}function U({className:a,...b}){return(0,d.jsx)(J.Separator,{className:h("-mx-1 my-1 h-px bg-border",a),...b})}function V({className:a,type:b="text",...c}){return(0,d.jsx)("input",{type:b,"data-slot":"input",className:h("h-9 w-full rounded-lg border border-border-field bg-surface-2 px-3 text-sm text-text","truncate placeholder:text-text-3 transition-colors","focus:border-primary focus:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/40","disabled:cursor-not-allowed disabled:opacity-50",a),...c})}function W({value:a,max:b,color:c,height:e=8,className:f,style:g,...i}){let j=Math.min(b,Math.max(0,a)),k=b>0?j/b*100:0;return(0,d.jsx)("span",{"data-slot":"meter",role:"meter","aria-valuenow":j,"aria-valuemin":0,"aria-valuemax":b,className:h("block flex-1 overflow-hidden rounded-full bg-surface-3",f),style:{height:e,...g},...i,children:(0,d.jsx)("span",{className:"block h-full rounded-full",style:{width:`${String(k)}%`,background:c}})})}function X({className:a,...b}){return(0,d.jsx)("nav",{"data-slot":"pagination",role:"navigation","aria-label":"Pagination",className:h("flex items-center justify-center gap-3 py-4",a),...b})}function Y({children:a,...b}){return(0,d.jsxs)(s,{"data-slot":"pagination-previous",variant:"outline",tone:"neutral",size:"sm",...b,children:[(0,d.jsx)(_,{"aria-hidden":!0,focusable:!1}),a??"Previous"]})}function Z({loading:a=!1,children:b,disabled:c=!1,...e}){return(0,d.jsxs)(s,{"data-slot":"pagination-next",variant:"outline",tone:"neutral",size:"sm",disabled:c||a,...e,children:[b??(a?"Loading…":"Next"),a?(0,d.jsxs)("svg",{"aria-hidden":!0,focusable:!1,viewBox:"0 0 16 16",className:"size-3.5 animate-spin",fill:"none",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeOpacity:"0.25",strokeWidth:"2"}),(0,d.jsx)("path",{d:"M14 8a6 6 0 0 0-6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,d.jsx)(aa,{"aria-hidden":!0,focusable:!1})]})}function $({className:a,...b}){return(0,d.jsx)("p",{"data-slot":"pagination-status","aria-live":"polite",className:h("text-xs text-text-3",a),...b})}function _(a){return(0,d.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round",...a,children:(0,d.jsx)("path",{d:"m15 6-6 6 6 6"})})}function aa(a){return(0,d.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round",...a,children:(0,d.jsx)("path",{d:"m9 6 6 6-6 6"})})}var ab=c(7691);let ac=ab.Root,ad=ab.Trigger;function ae({className:a,align:b="start",sideOffset:c=6,collisionPadding:e=8,...f}){return(0,d.jsx)(ab.Portal,{children:(0,d.jsx)(ab.Content,{align:b,sideOffset:c,collisionPadding:e,className:h("z-50 max-h-(--radix-popover-content-available-height) min-w-32 overflow-y-auto rounded-lg border border-border bg-surface p-1 shadow-lg outline-none",a),...f})})}ab.Close,ab.Anchor;var af=c(34542);function ag({className:a,...b}){return(0,d.jsx)(af.Root,{type:"single","data-slot":"segmented-control",className:h("inline-flex items-center gap-0.5 rounded-lg border border-border bg-surface-2 p-0.5",a),...b})}function ah({className:a,...b}){return(0,d.jsx)(af.Item,{"data-slot":"segmented-control-item",className:h("inline-flex flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md px-3 py-1.5 text-xs font-semibold text-text-3 transition-colors cursor-pointer","hover:text-text-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40","data-[state=on]:bg-surface data-[state=on]:text-text data-[state=on]:shadow-sm","[&_svg]:size-4 [&_svg]:shrink-0",a),...b})}var ai=c(80258);let aj=ai.Root;ai.Group;let ak=ai.Value;function al({className:a}){return(0,d.jsx)("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,focusable:!1,className:a,children:(0,d.jsx)("path",{d:"m4 6 4 4 4-4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function am({className:a}){return(0,d.jsx)("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,focusable:!1,className:a,children:(0,d.jsx)("path",{d:"M13 4.5 6.5 11 3 7.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function an({className:a,children:b,...c}){return(0,d.jsxs)(ai.Trigger,{"data-slot":"select-trigger",className:h("flex h-9 w-full cursor-pointer items-center justify-between gap-2 rounded-lg border border-border-field bg-surface-2 px-3 text-sm text-text","transition-colors focus:border-primary focus:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/40","data-[placeholder]:text-text-3 disabled:cursor-not-allowed disabled:opacity-50","[&>span]:truncate",a),...c,children:[b,(0,d.jsx)(ai.Icon,{asChild:!0,children:(0,d.jsx)(al,{className:"size-4 shrink-0 text-text-3"})})]})}function ao({className:a,children:b,position:c="popper",sideOffset:e=6,...f}){return(0,d.jsx)(ai.Portal,{children:(0,d.jsxs)(ai.Content,{"data-slot":"select-content",position:c,sideOffset:e,className:h("relative z-50 max-h-(--radix-select-content-available-height) min-w-32 overflow-hidden rounded-lg border border-border bg-surface shadow-lg","popper"===c&&"w-(--radix-select-trigger-width)",a),...f,children:[(0,d.jsx)(aq,{}),(0,d.jsx)(ai.Viewport,{className:"p-1",children:b}),(0,d.jsx)(ar,{})]})})}function ap({className:a,children:b,...c}){return(0,d.jsxs)(ai.Item,{"data-slot":"select-item",className:h("relative flex w-full cursor-pointer select-none items-center rounded-md py-1.5 pl-2.5 pr-8 text-sm text-text-2 outline-none","hover:bg-surface-2 hover:text-text data-[highlighted]:bg-surface-2 data-[highlighted]:text-text","data-[state=checked]:font-semibold data-[state=checked]:text-text","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,d.jsx)(ai.ItemText,{children:b}),(0,d.jsx)("span",{className:"absolute right-2.5 flex items-center",children:(0,d.jsx)(ai.ItemIndicator,{children:(0,d.jsx)(am,{className:"size-4 text-primary"})})})]})}function aq({className:a,...b}){return(0,d.jsx)(ai.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:h("flex cursor-default items-center justify-center py-1 text-text-3",a),...b,children:(0,d.jsx)(al,{className:"size-4 rotate-180"})})}function ar({className:a,...b}){return(0,d.jsx)(ai.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:h("flex cursor-default items-center justify-center py-1 text-text-3",a),...b,children:(0,d.jsx)(al,{className:"size-4"})})}let as=B.Root;function at({className:a,children:b,side:c="right",...e}){return(0,d.jsxs)(B.Portal,{children:[(0,d.jsx)(B.Overlay,{"data-slot":"sheet-overlay",className:"fixed inset-0 z-40 bg-ink/40 backdrop-blur-[1px]"}),(0,d.jsxs)(B.Content,{"data-slot":"sheet-content",className:h("fixed inset-y-0 z-50 flex h-full w-full max-w-xl flex-col gap-4 overflow-y-auto border-border bg-surface p-6 shadow-lg outline-none","left"===c?"left-0 border-r":"right-0 border-l",a),...e,children:[b,(0,d.jsxs)(B.Close,{className:"absolute right-4 top-4 cursor-pointer rounded-md text-text-3 transition-colors hover:bg-surface-2 hover:text-text size-8 grid place-content-center",children:[(0,d.jsx)("svg",{"aria-hidden":!0,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round",className:"size-4",children:(0,d.jsx)("path",{d:"M6 6 18 18M18 6 6 18"})}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function au({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"sheet-header",className:h("flex flex-col gap-1 pr-8",a),...b})}function av({className:a,...b}){return(0,d.jsx)(B.Title,{"data-slot":"sheet-title",className:h("font-display text-lg font-semibold text-text",a),...b})}function aw({className:a,...b}){return(0,d.jsx)(B.Description,{"data-slot":"sheet-description",className:h("text-sm text-text-2",a),...b})}function ax({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"skeleton","aria-hidden":!0,className:h("animate-pulse rounded-md bg-surface-3",a),...b})}B.Trigger,B.Close;var ay=c(7645);function az({className:a,...b}){return(0,d.jsx)(ay.Root,{"data-slot":"switch",className:h("peer inline-flex h-5.5 w-9.5 shrink-0 cursor-pointer items-center rounded-full p-0.5 transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary/40 disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:bg-ok data-[state=unchecked]:bg-border-strong",a),...b,children:(0,d.jsx)(ay.Thumb,{"data-slot":"switch-thumb",className:"pointer-events-none block size-4.5 rounded-full bg-switch-thumb shadow-sm transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"})})}function aA({className:a,...b}){return(0,d.jsx)("div",{className:"w-full overflow-x-auto",children:(0,d.jsx)("table",{"data-slot":"table",className:h("w-full caption-bottom border-collapse text-sm",a),...b})})}function aB({className:a,...b}){return(0,d.jsx)("thead",{"data-slot":"table-header",className:h("[&_tr]:border-b [&_tr]:border-border",a),...b})}function aC({className:a,...b}){return(0,d.jsx)("tbody",{"data-slot":"table-body",className:h("[&_tr:last-child]:border-0",a),...b})}function aD({className:a,onClick:b,onKeyDown:c,tabIndex:e,role:f,...g}){let i="function"==typeof b;return(0,d.jsx)("tr",{"data-slot":"table-row",role:i?f??"button":f,tabIndex:i?e??0:e,onClick:b,onKeyDown:i?function(a){c?.(a),i&&!a.defaultPrevented&&a.target===a.currentTarget&&("Enter"===a.key||" "===a.key)&&(a.preventDefault(),b(a))}:c,className:h("border-b border-hairline transition-colors",i&&"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary/40",a),...g})}function aE({scope:a="col",className:b,...c}){return(0,d.jsx)("th",{"data-slot":"table-head",scope:a,className:h("px-3 pb-3 text-left align-middle text-label font-semibold uppercase tracking-wider text-text-3",b),...c})}function aF({className:a,...b}){return(0,d.jsx)("td",{"data-slot":"table-cell",className:h("px-3 py-2 align-middle",a),...b})}var aG=c(46653);let aH=aG.Root;function aI({className:a,...b}){return(0,d.jsx)(aG.List,{"data-slot":"tabs-list",className:h("inline-flex items-center gap-0.5 rounded-lg border border-border bg-surface-2 p-0.5",a),...b})}function aJ({className:a,...b}){return(0,d.jsx)(aG.Trigger,{"data-slot":"tabs-trigger",className:h("inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-md px-3 py-1.5 text-xs font-semibold text-text-3 transition-colors cursor-pointer","hover:text-text-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40","data-[state=active]:bg-surface data-[state=active]:text-text data-[state=active]:shadow-sm","[&_svg]:size-4 [&_svg]:shrink-0",a),...b})}function aK({className:a,...b}){return(0,d.jsx)(aG.Content,{"data-slot":"tabs-content",className:h("focus-visible:outline-none",a),...b})}function aL({children:a,icon:b,dot:c,className:e}){return(0,d.jsxs)("span",{className:h("inline-flex h-6 items-center gap-1.5 whitespace-nowrap rounded-md border border-border bg-surface px-2 text-label font-medium text-text-2",e),children:[c&&(0,d.jsx)("span",{className:"size-1.5 shrink-0 rounded-full",style:{background:c}}),b,a]})}},72653:(a,b,c)=>{"use strict";c.d(b,{db:()=>f,q:()=>g});var d=c(5301);let e=globalThis;function f(){if(e.__akaDb)return e.__akaDb;let a=(0,d.Ji)((0,d.KS)());return a.purgeSampleData(),e.__akaDb=a,a}function g(){try{return f(),null}catch(a){if(!(a instanceof d.iu))return null;return{unknownTags:[...a.unknownTags],storeVersion:a.storeVersion,buildVersion:a.buildVersion}}}},72788:(a,b,c)=>{"use strict";c.d(b,{MttrTrendCardView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call MttrTrendCardView() from the server but MttrTrendCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/security/MttrTrendCardView.tsx","MttrTrendCardView")},73379:(a,b,c)=>{"use strict";c.d(b,{ScopePicker:()=>j,StateTag:()=>g,StateTagFor:()=>h,_:()=>i});var d=c(469),e=c(72454),f=c(25306);function g({state:a}){return(0,d.jsx)(e.Ex,{variant:f.hv[a],children:a})}function h({exception:a,now:b}){return(0,d.jsx)(g,{state:(0,f.rO)(a,b)})}function i({exception:a}){return"reveal_to_model"!==a.capability?null:(0,d.jsx)(e.Ex,{variant:"critical",children:f.y3.reveal_to_model})}function j({value:a,onChange:b}){return(0,d.jsx)(e.Iz,{value:a??"",onValueChange:a=>{a&&b(a)},children:f.rU.map(a=>(0,d.jsx)(e.tR,{value:a,children:f.DU[a]},a))})}},73910:(a,b,c)=>{"use strict";c.d(b,{EmptyState:()=>e});var d=c(37195);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call EmptyState() from the server but EmptyState is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","EmptyState");(0,d.registerClientReference)(function(){throw Error("Attempted to call Section() from the server but Section is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","Section"),(0,d.registerClientReference)(function(){throw Error("Attempted to call RadioCardList() from the server but RadioCardList is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","RadioCardList"),(0,d.registerClientReference)(function(){throw Error("Attempted to call AccessControl() from the server but AccessControl is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","AccessControl"),(0,d.registerClientReference)(function(){throw Error("Attempted to call AccessLabel() from the server but AccessLabel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","AccessLabel"),(0,d.registerClientReference)(function(){throw Error("Attempted to call AccessBar() from the server but AccessBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","AccessBar"),(0,d.registerClientReference)(function(){throw Error("Attempted to call TrustPill() from the server but TrustPill is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","TrustPill"),(0,d.registerClientReference)(function(){throw Error("Attempted to call FlagChip() from the server but FlagChip is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","FlagChip"),(0,d.registerClientReference)(function(){throw Error("Attempted to call FlagChips() from the server but FlagChips is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","FlagChips"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VisBadge() from the server but VisBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","VisBadge"),(0,d.registerClientReference)(function(){throw Error("Attempted to call OriginTag() from the server but OriginTag is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","OriginTag")},74125:(a,b,c)=>{"use strict";c.d(b,{DataSharesKindTabsView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call DataSharesKindTabsView() from the server but DataSharesKindTabsView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/data-shares/DataSharesKindTabsView.tsx","DataSharesKindTabsView")},74637:(a,b,c)=>{"use strict";c.d(b,{$F:()=>j,Ai:()=>k,Jk:()=>m,Zp:()=>l});var d=c(469),e=c(72454),f=c(78666),g=c(62308),h=c(23420);function i({tone:a,icon:b,children:c,className:f}){let[g,h]=(0,e.vV)(a);return(0,d.jsxs)("span",{className:"inline-flex h-[22px] items-center gap-1.5 whitespace-nowrap rounded-full px-2 text-xs font-semibold "+(f??""),style:{color:g,background:h},children:[b&&(0,d.jsx)(b,{"aria-hidden":!0,focusable:!1,className:"size-3"}),c]})}function j({policy:a,floor:b}){let c=(0,h.N2)(a,b),i=(0,h.H1)(a,b),j=(0,g.ES)(c),[k,l]=(0,e.vV)(j.tone),m=j.icon,n=i&&b?(0,h.xf)(b):void 0;return(0,d.jsxs)("span",{className:"inline-flex h-5 items-center gap-1.5 whitespace-nowrap rounded-full px-2 text-xs font-semibold",style:{color:k,background:l},title:n,children:[(0,d.jsx)(m,{"aria-hidden":!0,focusable:!1,className:"size-3"}),j.label,void 0!==n&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.ai,{"aria-hidden":!0,focusable:!1,className:"size-3"}),(0,d.jsx)("span",{className:"sr-only",children:n})]})]})}function k({origin:a}){let b=g.H9[a];return(0,d.jsx)(i,{tone:b.tone,icon:b.icon,children:b.label})}function l({version:a}){return(0,d.jsxs)("span",{className:"inline-flex h-6 items-center gap-1.5 whitespace-nowrap rounded-full bg-sev-high-fill px-2 text-xs font-semibold text-sev-high-ink",children:[(0,d.jsx)(f.Kp,{"aria-hidden":!0,focusable:!1,className:"size-3"}),a?"Update \xb7 v"+a:"Update"]})}function m({publisher:a,kind:b}){let c=g.jP[b],[f]=(0,e.vV)(c.tone),h=c.icon;return(0,d.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-1.5 text-xs font-semibold text-text-2",children:[(0,d.jsx)(h,{"aria-hidden":!0,focusable:!1,className:"size-3.5 shrink-0",style:{color:f}}),(0,d.jsx)("span",{className:"truncate",title:a,children:a}),c.verified&&(0,d.jsx)("span",{title:c.label,className:"text-[10px] font-bold",style:{color:f},children:"✓"})]})}},74665:(a,b,c)=>{"use strict";c.d(b,{FileDetailDrawer:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call FileDetailDrawer() from the server but FileDetailDrawer is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/FileDetailDrawer.tsx","FileDetailDrawer")},77084:(a,b,c)=>{"use strict";c.d(b,{ExceptionDetailView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call ExceptionDetailView() from the server but ExceptionDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/ExceptionDetailView.tsx","ExceptionDetailView")},77679:(a,b,c)=>{"use strict";c.d(b,{MttrTrendCardView:()=>m});var d=c(469),e=c(72454),f=c(93974),g=c(39097),h=c(78666),i=c(67002);function j(a){if(null===a||Number.isNaN(a))return"—";let b=Math.round(Math.max(0,a)/6e4),c=Math.floor(b/1440),d=Math.floor((b-=24*c*60)/60);return(b-=60*d,c>0)?d>0?`${String(c)}d ${String(d)}h`:`${String(c)}d`:d>0?b>0?`${String(d)}h ${String(b)}m`:`${String(d)}h`:`${String(Math.max(1,b))}m`}var k=c(60655);let l=[{key:"critical",label:"Critical",color:f.l.sevCritical},{key:"high",label:"High",color:f.l.sevHigh},{key:"medium",label:"Medium",color:f.l.sevMedium},{key:"low",label:"Low",color:f.l.sevLow}];function m({points:a,isLoading:b,error:c}){let f=a.every(a=>l.every(b=>null===a[b.key])),m=a.at(-1)??null,n=(0,i.T)(l);return(0,d.jsxs)(e.Zp,{className:"mt-4 shadow-sm xl:mt-5",children:[(0,d.jsxs)(e.aR,{children:[(0,d.jsx)(e.AG,{children:(0,d.jsx)(h.O4,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsxs)(e.Lc,{children:[(0,d.jsx)(e.ZB,{children:"Time to remediate"}),(0,d.jsx)(e.BT,{children:"Mean time from detection to resolution, by severity"})]}),(0,d.jsx)(e.X9,{className:"gap-3 text-xs text-text-2",children:(0,d.jsx)(i.N,{series:l,visibility:n,interactive:!c&&!b&&!f,metaLabel:a=>null===m?null:j(m[a])})})]}),(0,d.jsx)(e.Wu,{"aria-busy":b,className:"pb-2",children:c?(0,d.jsx)(k.rJ,{message:c}):b?(0,d.jsx)(e.EA,{className:"h-40 w-full"}):f?(0,d.jsx)(k.AW,{message:"No resolved findings in this range."}):(0,d.jsx)(g.AreaChart,{data:a,series:n.visible,height:160,valueFormat:j})})]})}},78147:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,80661,23)),Promise.resolve().then(c.t.bind(c,61516,23)),Promise.resolve().then(c.t.bind(c,93730,23)),Promise.resolve().then(c.t.bind(c,63093,23)),Promise.resolve().then(c.t.bind(c,86225,23)),Promise.resolve().then(c.t.bind(c,7273,23)),Promise.resolve().then(c.t.bind(c,2931,23)),Promise.resolve().then(c.t.bind(c,71644,23)),Promise.resolve().then(c.bind(c,79761))},78164:(a,b,c)=>{"use strict";c.d(b,{ExceptionsTableView:()=>i});var d=c(469),e=c(72454),f=c(52095),g=c(73379),h=c(25306);function i({items:a,includeTerminal:b,onSelect:c,renderedAt:i}){return 0===a.length?(0,d.jsx)("div",{className:"rounded-xl border border-border bg-surface py-10 text-center text-sm text-text-3",children:b?"No exceptions have ever been granted.":"No active exceptions — enforcement applies everywhere."}):(0,d.jsx)("div",{className:"overflow-x-auto rounded-xl border border-border bg-surface p-4",children:(0,d.jsxs)(e.XI,{children:[(0,d.jsx)(e.A0,{children:(0,d.jsxs)(e.Hj,{children:[(0,d.jsx)(e.nd,{children:"ID"}),(0,d.jsx)(e.nd,{children:"Rule"}),(0,d.jsx)(e.nd,{children:"Value"}),(0,d.jsx)(e.nd,{children:"Scope"}),(0,d.jsx)(e.nd,{children:"Expires"}),(0,d.jsx)(e.nd,{children:"Uses"}),(0,d.jsx)(e.nd,{children:"Created"}),(0,d.jsx)(e.nd,{children:"State"})]})}),(0,d.jsx)(e.BF,{children:a.map(a=>(0,d.jsxs)(e.Hj,{className:"cursor-pointer","aria-label":`View details for exception ${a.id.slice(0,8)}`,onClick:()=>{c(a.id)},children:[(0,d.jsx)(e.nA,{className:"font-mono text-xs text-text-3",children:a.id.slice(0,8)}),(0,d.jsx)(e.nA,{className:"font-mono text-xs",children:a.ruleId}),(0,d.jsx)(e.nA,{className:"font-mono text-xs",children:(0,d.jsxs)("span",{className:"inline-flex items-center gap-2",children:[a.maskedValue,(0,d.jsx)(g._,{exception:a})]})}),(0,d.jsx)(e.nA,{className:"text-xs",children:h.yr[a.scope]}),(0,d.jsx)(e.nA,{className:"text-xs text-text-2",children:null===a.expiresAt?"—":(0,f.K)(a.expiresAt,i)}),(0,d.jsx)(e.nA,{className:"text-xs text-text-2",children:null===a.maxUses?String(a.useCount):`${String(a.useCount)}/${String(a.maxUses)}`}),(0,d.jsxs)(e.nA,{className:"text-xs text-text-2",children:[(0,f.K)(a.createdAt,i)," \xb7 ",h.gi[a.createdVia]]}),(0,d.jsx)(e.nA,{children:(0,d.jsx)(g.StateTagFor,{exception:a,now:i})})]},a.id))})]})})}},78347:(a,b,c)=>{"use strict";c.d(b,{AddExceptionForm:()=>h});var d=c(469),e=c(72454),f=c(17200),g=c(73379);function h({rules:a,onSubmit:b,busy:c,error:h}){let[i,j]=(0,f.useState)(""),[k,l]=(0,f.useState)(""),[m,n]=(0,f.useState)(null),[o,p]=(0,f.useState)(""),[q,r]=(0,f.useState)(""),s="permanent"===m,t=""!==i&&""!==k&&null!==m&&""!==o.trim()&&(!s||q===k);return(0,d.jsxs)("div",{className:"flex max-w-xl flex-col gap-4 rounded-xl border border-border bg-surface p-5",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1.5 text-label font-semibold uppercase tracking-wider text-text-3",children:"Detection rule"}),(0,d.jsxs)(e.l6,{value:i,onValueChange:j,children:[(0,d.jsx)(e.bq,{children:(0,d.jsx)(e.yv,{placeholder:"Pick the rule this value matches"})}),(0,d.jsx)(e.gC,{children:a.map(a=>(0,d.jsx)(e.eb,{value:a.id,children:(0,d.jsx)("span",{className:"font-mono text-xs",children:a.id})},a.id))})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1.5 text-label font-semibold uppercase tracking-wider text-text-3",children:"Value to pre-authorize"}),(0,d.jsx)(e.pd,{type:"password",autoComplete:"off",value:k,onChange:a=>{l(a.target.value)},placeholder:"Pasted once; stored only as a keyed fingerprint + masked preview",className:"font-mono"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1.5 text-label font-semibold uppercase tracking-wider text-text-3",children:"Scope — pick one"}),(0,d.jsx)(g.ScopePicker,{value:m,onChange:n})]}),s&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1.5 text-label font-semibold uppercase tracking-wider text-text-3",children:"Retype the value to confirm a permanent grant"}),(0,d.jsx)(e.pd,{type:"password",autoComplete:"off",value:q,onChange:a=>{r(a.target.value)},className:"font-mono"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1.5 text-label font-semibold uppercase tracking-wider text-text-3",children:"Reason (required — the audit trail)"}),(0,d.jsx)(e.pd,{value:o,onChange:a=>{p(a.target.value)},placeholder:"Why this value may pass"})]}),h&&(0,d.jsx)("p",{className:"text-xs text-sev-critical-ink",children:h}),(0,d.jsx)("div",{children:(0,d.jsx)(e.$n,{variant:"solid",tone:"primary",size:"sm",disabled:!t||c,onClick:()=>{m&&b({ruleId:i,value:k,scope:m,reason:o.trim(),...s?{confirmation:q}:{}})},children:c?"Verifying…":"Grant exception"})})]})}},78666:(a,b,c)=>{"use strict";c.d(b,{BH:()=>V,BZ:()=>q,C1:()=>O,CT:()=>D,D3:()=>C,DQ:()=>ae,Ey:()=>J,JM:()=>S,K$:()=>U,Kp:()=>j,O4:()=>ad,OK:()=>p,Qf:()=>G,Qq:()=>$,RR:()=>t,RY:()=>r,SY:()=>Z,Sr:()=>x,Uy:()=>m,WI:()=>B,XA:()=>R,YJ:()=>F,ZL:()=>l,Ze:()=>ab,Zu:()=>n,_0:()=>v,_G:()=>i,aR:()=>H,ai:()=>L,bM:()=>y,bN:()=>u,c1:()=>N,cZ:()=>I,f6:()=>aj,fC:()=>K,fN:()=>ai,fl:()=>k,hF:()=>T,hp:()=>aa,iB:()=>_,iF:()=>w,jZ:()=>h,k3:()=>ac,kp:()=>Q,lm:()=>z,lo:()=>s,mL:()=>A,mS:()=>al,mo:()=>X,np:()=>W,ny:()=>o,oS:()=>ag,pD:()=>g,qU:()=>af,rX:()=>f,s3:()=>ak,sj:()=>ah,ts:()=>Y,uv:()=>P,vK:()=>E,wy:()=>M});var d=c(469);let e={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round"},f=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M8 2.5h8L21.5 8v8L16 21.5H8L2.5 16V8L8 2.5Z"}),(0,d.jsx)("path",{d:"M12 8v4"}),(0,d.jsx)("circle",{cx:"12",cy:"16",r:"1",fill:"currentColor",stroke:"none"})]}),g=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"m6 6 12 12"})]}),h=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("rect",{x:"3",y:"9",width:"18",height:"6",rx:"1.5",fill:"currentColor",stroke:"none"}),(0,d.jsx)("path",{d:"M3 5h18M3 19h12"})]}),i=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M14 4h6v6"}),(0,d.jsx)("path",{d:"M20 4 11 13"}),(0,d.jsx)("path",{d:"M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4"})]}),j=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M12 19V5M6 11l6-6 6 6"})}),k=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M5 12h14M13 6l6 6-6 6"})}),l=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M12 5v14M6 13l6 6 6-6"})}),m=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M4 20V10M10 20V4M16 20v-7M22 20H2"})}),n=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M12 3 4.5 6v5.5c0 4.6 3.2 7.6 7.5 9 4.3-1.4 7.5-4.4 7.5-9V6L12 3Z"}),(0,d.jsx)("path",{d:"m9 12 2 2 4-4"})]}),o=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("circle",{cx:"12",cy:"8",r:"3.6"}),(0,d.jsx)("path",{d:"M5.5 20a6.5 6.5 0 0 1 13 0"})]}),p=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M6 8.4v7.2"}),(0,d.jsx)("circle",{cx:"6",cy:"6",r:"2.4"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"2.4"}),(0,d.jsx)("circle",{cx:"18",cy:"7",r:"2.4"}),(0,d.jsx)("path",{d:"M18 9.4a8.6 8.6 0 0 1-8.6 8.6"})]}),q=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M12 3.5 13.6 9 19 10.5 13.6 12 12 17.5 10.4 12 5 10.5 10.4 9 12 3.5Z"}),(0,d.jsx)("path",{d:"M18 16.5 18.7 19 21 19.7 18.7 20.4 18 23 17.3 20.4 15 19.7 17.3 19 18 16.5Z"})]}),r=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("circle",{cx:"8",cy:"12",r:"4"}),(0,d.jsx)("path",{d:"M11.5 12H21l-2 2.4M16.5 12v3"})]}),s=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"m8 8-4 4 4 4M16 8l4 4-4 4M13.5 6l-3 12"})}),t=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("rect",{x:"4",y:"4",width:"16",height:"7",rx:"2"}),(0,d.jsx)("rect",{x:"4",y:"13",width:"16",height:"7",rx:"2"}),(0,d.jsx)("circle",{cx:"8",cy:"7.5",r:"1",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"8",cy:"16.5",r:"1",fill:"currentColor",stroke:"none"})]}),u=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("ellipse",{cx:"12",cy:"6",rx:"7",ry:"3"}),(0,d.jsx)("path",{d:"M5 6v12c0 1.7 3.1 3 7 3s7-1.3 7-3V6"}),(0,d.jsx)("path",{d:"M5 12c0 1.7 3.1 3 7 3s7-1.3 7-3"})]}),v=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M12 3 2 20h20L12 3Z"}),(0,d.jsx)("path",{d:"M12 9v5"}),(0,d.jsx)("circle",{cx:"12",cy:"17",r:"1",fill:"currentColor",stroke:"none"})]}),w=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M5 21V4M5 4h11l-2 3 2 3H5"})}),x=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"m5 12 4.5 4.5L19 7"})}),y=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12Z"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2.6"})]}),z=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M12 3 4.5 6v5.5c0 4.6 3.2 7.6 7.5 9 4.3-1.4 7.5-4.4 7.5-9V6L12 3Z"})}),A=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"m12 3 9 5-9 5-9-5 9-5Z"}),(0,d.jsx)("path",{d:"m3 13 9 5 9-5M3 16.5l9 5 9-5"})]}),B=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,d.jsx)("path",{d:"m20 20-3.2-3.2"})]}),C=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"m6 9 6 6 6-6"})}),D=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("rect",{x:"4",y:"5",width:"16",height:"16",rx:"2"}),(0,d.jsx)("path",{d:"M4 9h16M8 3v4M16 3v4"})]}),E=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"m9 6 6 6-6 6"})}),F=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"m15 6-6 6 6 6"})}),G=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M4 8h10M18 8h2M4 16h2M10 16h10"}),(0,d.jsx)("circle",{cx:"16",cy:"8",r:"2.2"}),(0,d.jsx)("circle",{cx:"8",cy:"16",r:"2.2"})]}),H=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M4 4 20 20"}),(0,d.jsx)("path",{d:"M9.5 9.6A2.6 2.6 0 0 0 12 14.6c.7 0 1.3-.25 1.8-.7M6.5 6.7C3.8 8.3 2.5 12 2.5 12S6 18.5 12 18.5c1.5 0 2.8-.4 4-1M17.5 17.3C20.2 15.7 21.5 12 21.5 12S18 5.5 12 5.5c-.5 0-1 0-1.4.1"})]}),I=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M8 4c-2 0-2 2-2 4s0 3-2 4c2 1 2 2 2 4s0 4 2 4M16 4c2 0 2 2 2 4s0 3 2 4c-2 1-2 2-2 4s0 4-2 4"})}),J=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M2 12C2 6.5 6.5 2 12 2a10 10 0 0 1 8 4"}),(0,d.jsx)("path",{d:"M5 19.5C5.5 18 6 15 6 12c0-.7.12-1.37.34-2"}),(0,d.jsx)("path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02"}),(0,d.jsx)("path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4"}),(0,d.jsx)("path",{d:"M8.65 22c.21-.66.45-1.32.57-2"}),(0,d.jsx)("path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88"}),(0,d.jsx)("path",{d:"M2 16h.01"}),(0,d.jsx)("path",{d:"M21.8 16c.2-2 .13-5.354 0-6"}),(0,d.jsx)("path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2"})]}),K=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"M3 12h18"}),(0,d.jsx)("path",{d:"M12 3c2.6 2.6 2.6 15.4 0 18M12 3c-2.6 2.6-2.6 15.4 0 18"})]}),L=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M4 21V5a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v16"}),(0,d.jsx)("path",{d:"M15 9h4a1 1 0 0 1 1 1v11"}),(0,d.jsx)("path",{d:"M3 21h18"}),(0,d.jsx)("path",{d:"M8 8h3M8 12h3M8 16h3"})]}),M=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("circle",{cx:"12",cy:"5",r:"1.4",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"1.4",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"12",cy:"19",r:"1.4",fill:"currentColor",stroke:"none"})]}),N=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M12 5v14M5 12h14"})}),O=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"m8.5 12 2.3 2.3 4.7-4.6"})]}),P=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M6 6 18 18M18 6 6 18"})}),Q=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M8 6h12M8 12h12M8 18h12"}),(0,d.jsx)("circle",{cx:"3.6",cy:"6",r:"1.1",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"3.6",cy:"12",r:"1.1",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"3.6",cy:"18",r:"1.1",fill:"currentColor",stroke:"none"})]}),R=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("rect",{x:"5",y:"11",width:"14",height:"9",rx:"2"}),(0,d.jsx)("path",{d:"M8 11V8a4 4 0 0 1 8 0v3"})]}),S=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M12 20V9M7 13l5-5 5 5M5 4h14"})}),T=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("circle",{cx:"6",cy:"18",r:"2.4"}),(0,d.jsx)("path",{d:"M8.4 18H16a3 3 0 0 0 0-6H8a3 3 0 0 1 0-6h7.6"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"2.4"})]}),U=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M3 13h5l1.5 3h5L16 13h5"}),(0,d.jsx)("path",{d:"M5 5h14l2 8v5a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5L5 5Z"})]}),V=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M3 12h3l2-5 4 14 3-9 2 2h4"})}),W=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M3 12h4l3 8 4-16 3 8h4"})}),X=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"M12 11v5"}),(0,d.jsx)("circle",{cx:"12",cy:"7.7",r:"1",fill:"currentColor",stroke:"none"})]}),Y=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M12 21s7-6.3 7-11a7 7 0 1 0-14 0c0 4.7 7 11 7 11Z"}),(0,d.jsx)("circle",{cx:"12",cy:"10",r:"2.4"})]}),Z=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M6 3h11a1 1 0 0 1 1 1v17l-3-2-3 2-3-2-3 2V4a1 1 0 0 1 1-1Z"}),(0,d.jsx)("path",{d:"M9 8h6M9 12h5"})]}),$=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M7 17 17 7M8 7h9v9"})}),_=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M6 3h9l3 3v15H6z"}),(0,d.jsx)("path",{d:"M15 3v3h3"}),(0,d.jsx)("path",{d:"M9 12h6M9 16h4"})]}),aa=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M7 18a4 4 0 0 1-.5-7.97A5.5 5.5 0 0 1 17 9.5a3.75 3.75 0 0 1 .5 7.5H7Z"})}),ab=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2Z"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"})]}),ac=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),(0,d.jsx)("path",{d:"m7 9 3 3-3 3M13 15h4"})]}),ad=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"M12 7.5V12l3 2"})]}),ae=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M13 2 4 14h7l-1 8 9-12h-7l1-8Z"})}),af=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M4 20h4L19 9l-4-4L4 16v4Z"}),(0,d.jsx)("path",{d:"m14 6 4 4"})]}),ag=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M6 3h8l4 4v14H6z"}),(0,d.jsx)("path",{d:"M14 3v4h4"})]}),ah=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M3 6a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"})}),ai=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M3 12a9 9 0 0 1 15-6.7L21 8"}),(0,d.jsx)("path",{d:"M21 3v5h-5"}),(0,d.jsx)("path",{d:"M21 12a9 9 0 0 1-15 6.7L3 16"}),(0,d.jsx)("path",{d:"M3 21v-5h5"})]}),aj=a=>(0,d.jsxs)("svg",{...e,...a,children:[(0,d.jsx)("path",{d:"M7 4 3 8l4 4"}),(0,d.jsx)("path",{d:"M3 8h14"}),(0,d.jsx)("path",{d:"m17 20 4-4-4-4"}),(0,d.jsx)("path",{d:"M21 16H7"})]}),ak=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M12 4v11M7 11l5 5 5-5M5 20h14"})}),al=a=>(0,d.jsx)("svg",{...e,...a,children:(0,d.jsx)("path",{d:"M14 4h6v6M20 4l-7 7M10 20H4v-6M4 20l7-7"})})},79252:(a,b,c)=>{"use strict";c.d(b,{InventoryNav:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call InventoryNav() from the server but InventoryNav is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/InventoryNav.tsx","InventoryNav")},79871:(a,b,c)=>{"use strict";c.d(b,{Cs:()=>r,Gb:()=>j,IF:()=>e,Pe:()=>d,TW:()=>n,WD:()=>k,ZY:()=>f,_t:()=>t,fd:()=>m,iL:()=>p,lx:()=>h,pA:()=>l,v7:()=>o,yx:()=>g,z:()=>s});let d={open:{label:"Any LLM",icon:"cloud",fg:"text-ok-ink",bg:"bg-ok-fill",bar:"bg-ok",accent:"bg-ok-ink",desc:"Allowed to any model — including public, consumer LLMs."},approved:{label:"Approved only",icon:"shield-check",fg:"text-primary",bg:"bg-primary-tint",bar:"bg-primary",accent:"bg-primary",desc:"Allowed only to approved, governed models."},blocked:{label:"No LLM",icon:"slash-circle",fg:"text-sev-critical-ink",bg:"bg-sev-critical-fill",bar:"bg-sev-critical",accent:"bg-sev-critical-ink",desc:"Never sent to any model. Blocked at the proxy."}},e=["open","approved","blocked"],f={"known-good":{label:"Known good",icon:"shield-check",tone:"success",fg:"text-ok-ink",bg:"bg-ok-fill",iconBg:"bg-ok-ink",desc:"Reviewed & allow-listed. Agents may call it freely."},risky:{label:"Risky",icon:"alert",tone:"high",fg:"text-sev-high-ink",bg:"bg-sev-high-fill",iconBg:"bg-sev-high-ink",desc:"Allowed, but reaches sensitive systems or external hosts. Use with care."},unapproved:{label:"Unapproved",icon:"x-circle",tone:"critical",fg:"text-sev-critical-ink",bg:"bg-sev-critical-fill",iconBg:"bg-sev-critical-ink",desc:"Not reviewed or explicitly denied — calls are blocked at the proxy."}},g=["known-good","risky","unapproved"],h={update:{label:"Update available",short:"Update",icon:"arrow-up",tone:"high"},stale:{label:"Stale",short:"Stale",icon:"clock",tone:"default"},conflict:{label:"Conflict",short:"Conflict",icon:"branch",tone:"critical"},unknown:{label:"Unverified",short:"Unverified",icon:"help",tone:"critical"},change:{label:"Changed",short:"Changed",icon:"edit",tone:"low"},untracked:{label:"Untracked",short:"Untracked",icon:"eye-off",tone:"high"},risk:{label:"Security risk",short:"Risk",icon:"alert",tone:"critical"},findings:{label:"Sensitive data",short:"Findings",icon:"alert",tone:"critical"}},i=["risk","conflict","unknown","change","untracked","update","stale"],j={source:{short:"Source",label:"First-party source code",icon:"code"},"public-dep":{short:"Public dep",label:"Public dependency \xb7 open source",icon:"cloud"},vendored:{short:"Vendored",label:"Vendored third-party",icon:"layers"},config:{short:"Config",label:"Configuration",icon:"settings"},data:{short:"Data",label:"Data \xb7 fixtures",icon:"database"},docs:{short:"Docs",label:"Documentation",icon:"book"},generated:{short:"Generated",label:"Generated artifact",icon:"bolt"}},k={type:"project",label:"Projects",icon:"repo",fg:"text-primary",bg:"bg-primary-tint"},l={skill:{type:"skill",label:"Skills",icon:"sparkles",fg:"text-violet-ink",bg:"bg-violet-fill"},mcp:{type:"mcp",label:"MCP servers",icon:"server",fg:"text-teal-ink",bg:"bg-teal-fill"},hook:{type:"hook",label:"Hooks",icon:"route",fg:"text-sev-low-ink",bg:"bg-sev-low-fill"},config:{type:"config",label:"Configuration",icon:"sliders",fg:"text-teal-ink",bg:"bg-surface-2"}},m=[k,l.skill,l.mcp,l.hook,l.config],n=a=>{let{icon:b,fg:c,bg:d}="project"===a?k:l[a];return{icon:b,fg:c,bg:d}};function o(a){return new Date(a).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}let p={block:{label:"Blocked",icon:"slash-circle",tone:"critical",fg:"text-sev-critical-ink",bg:"bg-sev-critical-fill"},redact:{label:"Redacted",icon:"redact",tone:"teal",fg:"text-teal-ink",bg:"bg-teal-fill"},warn:{label:"Warned",icon:"alert",tone:"high",fg:"text-sev-high-ink",bg:"bg-sev-high-fill"}},q={typescript:"#3178C6",javascript:"#F1E05A",rust:"#DEA584",python:"#3572A5",go:"#00ADD8",ruby:"#701516",java:"#B07219",hcl:"#844FBA",jupyter:"#DA5B0B","jupyter notebook":"#DA5B0B",mdx:"#1B1F24",markdown:"#083FA1",shell:"#89E051",c:"#555555","c++":"#F34B7D","c#":"#178600",php:"#4F5D95",swift:"#F05138",kotlin:"#A97BFF"};function r(a){return q[a.toLowerCase()]??"var(--color-border-strong)"}function s(a){let b={};return a.forEach(a=>{a.flags.forEach(a=>{b[a]=(b[a]??0)+1})}),i.filter(a=>b[a]).map(a=>({key:a,count:b[a]??0}))}function t(a,b){if("public"===a.visibility)return"Public repository — every file is allowed to any LLM by default.";if("public-dep"===b)return"Public, open-source dependency — allowed to any LLM by default, even inside a private repo.";let c="blocked"===a.policyDefault?"No LLM":"Approved only";return`Private repository. First-party files default to “${c}”. Adjust per file as needed.`}},81436:(a,b,c)=>{"use strict";c.d(b,{HarnessSelect:()=>i});var d=c(469),e=c(72454),f=c(78666),g=c(38833),h=c(40523);function i({value:a,onChange:b,options:c}){let i=c?h.oo.filter(b=>c.includes(b)||a.includes(b)):h.oo,j=0===a.length,k=a[0],l=j?"All harnesses":1===a.length&&k?g.x[k].label:`${String(a.length)} harnesses`;return(0,d.jsxs)(e.rI,{children:[(0,d.jsxs)(e.ty,{className:(0,e.cn)("group flex h-8.5 w-full items-center gap-2 rounded-lg border bg-surface-2 px-2.5 text-sm focus:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/40",j?"border-border-field":"border-primary"),children:[(0,d.jsx)(f.k3,{"aria-hidden":!0,focusable:!1,className:(0,e.cn)("size-3.5 shrink-0",j?"text-text-3":"text-primary")}),(0,d.jsx)("span",{className:"flex-1 text-left font-medium text-text",children:l}),!j&&(0,d.jsx)(e.Ex,{variant:"primary",className:"px-1.5 py-0 text-label bg-surface-2",children:a.length}),(0,d.jsx)(f.D3,{"aria-hidden":!0,focusable:!1,className:"size-3.5 shrink-0 text-text-3 transition-transform group-data-[state=open]:rotate-180"})]}),(0,d.jsxs)(e.SQ,{align:"start",className:"w-(--radix-dropdown-menu-trigger-width)",children:[(0,d.jsx)(e.hO,{checked:j,onCheckedChange:()=>{b([])},onSelect:a=>{a.preventDefault()},children:"All harnesses"}),(0,d.jsx)(e.mB,{}),i.map(c=>(0,d.jsx)(e.hO,{checked:a.includes(c),onCheckedChange:()=>{let d=a.includes(c)?a.filter(a=>a!==c):[...a,c];b(d.length===i.length?[]:d)},onSelect:a=>{a.preventDefault()},children:(0,d.jsxs)("span",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"size-2 shrink-0 rounded-xs",style:{background:g.x[c].color}}),g.x[c].label]})},c))]})]})}},82380:(a,b,c)=>{"use strict";c.d(b,{PolicyDetailView:()=>m,PolicyListView:()=>l,PolicyStatsView:()=>j});var d=c(469),e=c(72454),f=c(62308),g=c(78666),h=c(96211);function i(a){return void 0===a?"—":a.toLocaleString()}function j({stats:a,loading:b=!1,className:c}){let e=[{icon:g.iB,value:i(a?.policies),label:"Policies",tone:"primary"},{icon:g.Zu,value:i(a?.builtin),label:"Built-in",tone:"neutral"},{icon:g.k3,value:i(a?.custom),label:"Custom scripts",tone:"violet"},{icon:g.kp,value:i(a?.detectionsGoverned),label:"Detections governed",tone:"ok"}];return(0,d.jsx)(h.s,{items:e,isLoading:b,className:c})}function k({policy:a,selected:b,onSelect:c}){let{icon:h,tone:i}=(0,f.ES)(a.id),[j,k]=(0,e.vV)(i),l=a.usedByCount;return(0,d.jsxs)("button",{type:"button",onClick:c,"aria-pressed":b,className:(0,e.cn)("flex w-full cursor-pointer items-center gap-3 rounded-lg p-3 text-left transition-colors",b?"bg-primary-tint":"hover:bg-surface-2"),children:[(0,d.jsx)("span",{className:"flex size-7.5 shrink-0 items-center justify-center rounded-lg [&_svg]:size-4",style:{background:k,color:j},children:(0,d.jsx)(h,{"aria-hidden":!0,focusable:!1})}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block truncate text-sm font-semibold text-text",title:a.name,children:a.name}),(0,d.jsxs)("span",{className:"mt-px block text-xs text-text-3",children:[l," detection",1===l?"":"s"]})]}),"builtin"===a.kind&&(0,d.jsx)(g.XA,{"aria-hidden":!0,focusable:!1,className:"size-3.5 shrink-0 text-text-3"})]})}function l({items:a,activeId:b,onSelect:c,loading:f=!1,error:g=null}){return(0,d.jsxs)(e.Zp,{className:"flex flex-col overflow-hidden p-2 shadow-sm",children:[(0,d.jsx)("div",{className:"mb-1 px-2.5 pb-1 pt-2 text-label font-semibold uppercase tracking-wider text-text-3",children:"Policies"}),(0,d.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto",children:g?(0,d.jsxs)("p",{className:"px-2.5 py-2 text-sm text-sev-critical-ink",children:["Error loading policies: ",g]}):f?(0,d.jsx)("p",{className:"px-2.5 py-2 text-sm text-text-3",children:"Loading policies…"}):0===a.length?(0,d.jsx)("p",{className:"px-2.5 py-2 text-sm text-text-3",children:"No policies yet."}):a.map(a=>(0,d.jsx)(k,{policy:a,selected:a.id===b,onSelect:()=>{c(a.id)}},a.id))})]})}function m({policy:a}){let{icon:b,tone:c}=(0,f.ES)(a.id),[h,i]=(0,e.vV)(c),j="builtin"===a.kind,k=a.usedBy;return(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 border-b border-border px-5 py-4",children:[(0,d.jsx)("span",{className:"flex size-11 shrink-0 items-center justify-center rounded-xl [&_svg]:size-5.5",style:{background:i,color:h},children:(0,d.jsx)(b,{"aria-hidden":!0,focusable:!1})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("h2",{className:"font-display text-xl font-semibold text-text",children:a.name}),j&&(0,d.jsx)(e.vw,{icon:(0,d.jsx)(g.XA,{"aria-hidden":!0,focusable:!1,className:"size-3"}),children:"Built-in"}),(0,d.jsx)("span",{className:"rounded-full border border-border bg-surface-2 px-2 py-0.5 font-mono text-xs font-semibold text-text-2",children:a.id})]}),(0,d.jsx)("p",{className:"mt-0.5 text-xs text-text-3",children:j?"AKA \xb7 built-in \xb7 no configuration":"Custom policy"})]})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-6 p-5",children:[(0,d.jsxs)("div",{className:"rounded-xl border border-border bg-surface-2 px-4 py-3",children:[(0,d.jsx)("p",{className:"text-sm leading-relaxed text-text",children:a.description}),j&&(0,d.jsxs)("p",{className:"mt-2 inline-flex items-center gap-1.5 text-xs text-text-3",children:[(0,d.jsx)(g.XA,{"aria-hidden":!0,focusable:!1,className:"size-3.5"}),"Built-in policy — behavior is fixed and can't be edited."]})]}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2.5 flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-label font-semibold uppercase tracking-wider text-text-3",children:"Applied by"}),(0,d.jsx)("span",{className:"rounded-full bg-surface-3 px-2 py-0.5 text-xs font-semibold text-text-2",children:k.length})]}),0===k.length?(0,d.jsx)("p",{className:"py-2 text-sm text-text-3",children:"No detections use this policy yet."}):(0,d.jsx)("div",{className:"flex flex-wrap gap-2",children:k.map(a=>(0,d.jsxs)(e.vw,{className:"h-7",dot:a.enabled?"var(--color-ok)":"var(--color-border-strong)",children:[a.name,(0,d.jsxs)("span",{className:"font-mono text-text-3",children:[a.ruleCount," rules"]})]},a.id))})]})]})]})}},82927:(a,b,c)=>{"use strict";c.d(b,{AZ:()=>o,LZ:()=>r,Mk:()=>l,Py:()=>q,Ud:()=>n,j0:()=>d,lr:()=>p,nk:()=>h,pT:()=>m,t$:()=>j});let d=["light","dark","system"],e="system",f="aka-theme",g="(prefers-color-scheme: dark)";function h(a){return"string"==typeof a&&d.includes(a)}let i=null;function j(){if(null!==i)return i;try{let a=window.localStorage.getItem(f);return h(a)?a:e}catch{return e}}let k=new Set;function l(a){k.add(a);let b=b=>{(null===b.key||b.key===f)&&(i=null,a())};return window.addEventListener("storage",b),()=>{k.delete(a),window.removeEventListener("storage",b)}}function m(a){try{window.localStorage.setItem(f,a),i=null}catch{i=a}for(let a of k)a()}function n(){return window.matchMedia(g).matches}function o(a){document.documentElement.classList.toggle("dark","dark"===a)}function p(a){let b=window.matchMedia(g);return b.addEventListener("change",a),()=>{b.removeEventListener("change",a)}}function q(){return e}function r(){return!1}},84272:(a,b,c)=>{"use strict";c.d(b,{FindingDetailView:()=>f,formatConfidence:()=>e});var d=c(37195);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call formatConfidence() from the server but formatConfidence is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingDetailView.tsx","formatConfidence"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call FindingDetailView() from the server but FindingDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingDetailView.tsx","FindingDetailView")},85833:(a,b,c)=>{Promise.resolve().then(c.bind(c,2960))},86639:(a,b,c)=>{"use strict";c.d(b,{WorkspaceSettingsFormView:()=>e});var d=c(37195);(0,d.registerClientReference)(function(){throw Error("Attempted to call HANDLING_SECTION_LABEL() from the server but HANDLING_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HANDLING_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HANDLING_SECTION_DESCRIPTION() from the server but HANDLING_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HANDLING_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HANDLING_SECTION_LINK_LABEL() from the server but HANDLING_SECTION_LINK_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HANDLING_SECTION_LINK_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call REDACT_FALLBACK_SECTION_LABEL() from the server but REDACT_FALLBACK_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","REDACT_FALLBACK_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call REDACT_FALLBACK_SECTION_DESCRIPTION() from the server but REDACT_FALLBACK_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","REDACT_FALLBACK_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call REDACT_FALLBACK_CHOICES() from the server but REDACT_FALLBACK_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","REDACT_FALLBACK_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORICAL_SECTION_LABEL() from the server but HISTORICAL_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORICAL_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORICAL_SECTION_DESCRIPTION() from the server but HISTORICAL_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORICAL_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORICAL_CHOICES() from the server but HISTORICAL_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORICAL_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call MODEL_JUDGE_SECTION_LABEL() from the server but MODEL_JUDGE_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","MODEL_JUDGE_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call MODEL_JUDGE_SECTION_DESCRIPTION() from the server but MODEL_JUDGE_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","MODEL_JUDGE_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call MODEL_JUDGE_CHOICES() from the server but MODEL_JUDGE_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","MODEL_JUDGE_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORY_SYNC_SECTION_LABEL() from the server but HISTORY_SYNC_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORY_SYNC_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORY_SYNC_SECTION_DESCRIPTION() from the server but HISTORY_SYNC_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORY_SYNC_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORY_SYNC_CHOICES() from the server but HISTORY_SYNC_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORY_SYNC_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORY_SYNC_STALE_BADGE() from the server but HISTORY_SYNC_STALE_BADGE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORY_SYNC_STALE_BADGE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORY_SYNC_STALE_NOTICE() from the server but HISTORY_SYNC_STALE_NOTICE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORY_SYNC_STALE_NOTICE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call WEB_CHAT_SECTION_LABEL() from the server but WEB_CHAT_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","WEB_CHAT_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call WEB_CHAT_SECTION_DESCRIPTION() from the server but WEB_CHAT_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","WEB_CHAT_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call WEB_CHAT_CHOICES() from the server but WEB_CHAT_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","WEB_CHAT_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call WEB_CHAT_STALE_BADGE() from the server but WEB_CHAT_STALE_BADGE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","WEB_CHAT_STALE_BADGE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call WEB_CHAT_STALE_NOTICE() from the server but WEB_CHAT_STALE_NOTICE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","WEB_CHAT_STALE_NOTICE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call webChatCaptureStale() from the server but webChatCaptureStale is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","webChatCaptureStale"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_SECTION_LABEL() from the server but VAULT_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_SECTION_DESCRIPTION() from the server but VAULT_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_CHOICES() from the server but VAULT_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call INLINE_REVEAL_SECTION_LABEL() from the server but INLINE_REVEAL_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","INLINE_REVEAL_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call INLINE_REVEAL_SECTION_DESCRIPTION() from the server but INLINE_REVEAL_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","INLINE_REVEAL_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call RETAIN_DAYS_MIN() from the server but RETAIN_DAYS_MIN is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","RETAIN_DAYS_MIN"),(0,d.registerClientReference)(function(){throw Error("Attempted to call RETAIN_DAYS_MAX() from the server but RETAIN_DAYS_MAX is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","RETAIN_DAYS_MAX"),(0,d.registerClientReference)(function(){throw Error("Attempted to call RETAIN_DAYS_ERROR() from the server but RETAIN_DAYS_ERROR is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","RETAIN_DAYS_ERROR"),(0,d.registerClientReference)(function(){throw Error("Attempted to call BODY_EXPIRY_LABEL() from the server but BODY_EXPIRY_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","BODY_EXPIRY_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call BODY_EXPIRY_DESCRIPTION() from the server but BODY_EXPIRY_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","BODY_EXPIRY_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call BODY_EXPIRY_CHOICES() from the server but BODY_EXPIRY_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","BODY_EXPIRY_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call INLINE_REVEAL_CHOICES() from the server but INLINE_REVEAL_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","INLINE_REVEAL_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call vaultChoiceOf() from the server but vaultChoiceOf is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","vaultChoiceOf"),(0,d.registerClientReference)(function(){throw Error("Attempted to call vaultConsentStale() from the server but vaultConsentStale is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","vaultConsentStale"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_STALE_BADGE() from the server but VAULT_STALE_BADGE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_STALE_BADGE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_STALE_NOTICE() from the server but VAULT_STALE_NOTICE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_STALE_NOTICE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call managedUnrecognizedNotice() from the server but managedUnrecognizedNotice is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","managedUnrecognizedNotice");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call WorkspaceSettingsFormView() from the server but WorkspaceSettingsFormView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","WorkspaceSettingsFormView");(0,d.registerClientReference)(function(){throw Error("Attempted to call CONNECTION_STANDALONE_LABEL() from the server but CONNECTION_STANDALONE_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","CONNECTION_STANDALONE_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call CONNECTION_ATTACHED_LABEL() from the server but CONNECTION_ATTACHED_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","CONNECTION_ATTACHED_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call CONNECTION_STANDALONE_DESCRIPTION() from the server but CONNECTION_STANDALONE_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","CONNECTION_STANDALONE_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call CONNECTION_ATTACHED_DESCRIPTION() from the server but CONNECTION_ATTACHED_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","CONNECTION_ATTACHED_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call CONNECTION_FORWARDING_NOTICE() from the server but CONNECTION_FORWARDING_NOTICE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","CONNECTION_FORWARDING_NOTICE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call CONNECTION_UNAVAILABLE_NOTICE() from the server but CONNECTION_UNAVAILABLE_NOTICE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","CONNECTION_UNAVAILABLE_NOTICE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call CONNECTION_INACTIVE_BADGE() from the server but CONNECTION_INACTIVE_BADGE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","CONNECTION_INACTIVE_BADGE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call CONNECTION_CREDENTIAL_MISSING_NOTICE() from the server but CONNECTION_CREDENTIAL_MISSING_NOTICE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","CONNECTION_CREDENTIAL_MISSING_NOTICE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call CONNECTION_CREDENTIAL_UNUSABLE_NOTICE() from the server but CONNECTION_CREDENTIAL_UNUSABLE_NOTICE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","CONNECTION_CREDENTIAL_UNUSABLE_NOTICE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call connectionEndpointMismatchNotice() from the server but connectionEndpointMismatchNotice is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","connectionEndpointMismatchNotice"),(0,d.registerClientReference)(function(){throw Error("Attempted to call DETACH_LABEL() from the server but DETACH_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","DETACH_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call DETACH_EXPLANATION() from the server but DETACH_EXPLANATION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","DETACH_EXPLANATION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call DETACH_UNAVAILABLE_NOTICE() from the server but DETACH_UNAVAILABLE_NOTICE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","DETACH_UNAVAILABLE_NOTICE"),(0,d.registerClientReference)(function(){throw Error("Attempted to call ATTACH_LABEL() from the server but ATTACH_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","ATTACH_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call canAttach() from the server but canAttach is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","canAttach"),(0,d.registerClientReference)(function(){throw Error("Attempted to call submitAttach() from the server but submitAttach is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","submitAttach"),(0,d.registerClientReference)(function(){throw Error("Attempted to call ATTACH_KEY_HINT() from the server but ATTACH_KEY_HINT is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","ATTACH_KEY_HINT"),(0,d.registerClientReference)(function(){throw Error("Attempted to call DETACH_MANAGED_NOTICE() from the server but DETACH_MANAGED_NOTICE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","DETACH_MANAGED_NOTICE")},89001:(a,b,c)=>{"use strict";c.d(b,{BlockedLedgerView:()=>k});var d=c(469),e=c(72454),f=c(52095),g=c(97725),h=c(78666),i=c(43233);let j="This row cannot be approved. No reason was given.";function k({items:a,onApprove:b,blockedWindow:c,onBlockedWindowChange:k,blockReason:l,renderedAt:m}){return(0,d.jsxs)("div",{className:"mb-3.5 overflow-hidden rounded-xl border border-sev-high-fill bg-sev-high-fill",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5 px-3.5 py-3",children:[(0,d.jsx)("span",{className:"grid size-6.5 shrink-0 place-items-center rounded-md bg-sev-high-ink text-on-accent",children:(0,d.jsx)(h.pD,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsx)("span",{className:"text-sm font-semibold text-text",children:"Recently blocked"}),(0,d.jsx)("span",{className:"rounded-full bg-sev-high-ink px-2 py-0.5 text-xs font-bold text-on-accent",children:a.length}),(0,d.jsxs)("span",{className:"text-xs text-text-2",children:["Detections blocked in ",g.sr[c]," — approve one to grant an exception"]}),(0,d.jsx)("span",{className:"ml-auto shrink-0",children:(0,d.jsx)(i.BlockedWindowSelect,{value:c,onChange:k})})]}),0===a.length?(0,d.jsx)("div",{className:"px-3.5 pb-3.5 text-xs text-text-2",children:"Nothing blocked in this window."}):(0,d.jsx)("div",{className:"flex flex-col gap-1.5 px-3 pb-3",children:a.map(a=>{let c=function(a,b){let c;try{c=b(a)}catch{return j}return null===c?null:""===c.trim()?j:c}(a,l),g=`blocked-reason-${a.reference}`;return(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border bg-surface px-3 py-2.5",children:[(0,d.jsx)("span",{className:"font-mono text-xs font-semibold text-text-3",children:a.reference}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-mono text-xs font-semibold text-text",children:a.ruleId}),(0,d.jsx)("span",{className:"font-mono text-xs text-text-2",children:a.maskedValue})]}),(0,d.jsxs)("div",{className:(0,e.cn)("mt-1 text-label text-text-3"),children:[(0,f.K)(a.blockedAt,m),a.repo?` \xb7 ${a.repo}`:"",null===c?"":" \xb7 not approvable"]}),null===c?null:(0,d.jsx)("div",{id:g,className:"mt-1 text-label text-text-3",children:c})]}),(0,d.jsx)(e.$n,{onClick:()=>{b(a.reference)},disabled:null!==c,"aria-describedby":null===c?void 0:g,variant:"ghost",tone:"primary",size:"sm",children:"Approve"})]},a.reference)})})]})}},89691:(a,b,c)=>{"use strict";c.d(b,{AvailablePluginsCardView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call AvailablePluginsCardView() from the server but AvailablePluginsCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/updates/AvailablePluginsCardView.tsx","AvailablePluginsCardView")},90145:(a,b,c)=>{"use strict";c.d(b,{ScopePicker:()=>g,StateTag:()=>e,StateTagFor:()=>f});var d=c(37195);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call StateTag() from the server but StateTag is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","StateTag"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call StateTagFor() from the server but StateTagFor is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","StateTagFor");(0,d.registerClientReference)(function(){throw Error("Attempted to call CapabilityTagFor() from the server but CapabilityTagFor is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","CapabilityTagFor");let g=(0,d.registerClientReference)(function(){throw Error("Attempted to call ScopePicker() from the server but ScopePicker is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","ScopePicker")},90844:(a,b,c)=>{"use strict";c.d(b,{SessionDetailView:()=>q});var d=c(469),e=c(72454),f=c(17200),g=c(99846),h=c(78666),i=c(38833),j=c(92070),k=c(20322),l=c(35683),m=c(91301),n=c(40523);function o({text:a,mono:b=!1}){return(0,d.jsx)("span",{className:(0,e.cn)("block truncate",b&&"font-mono"),title:a,children:a})}function p({session:a,tokenReport:b,liveFindings:c,linkHref:p,toolHref:q,onExpand:r,overlayClose:s=!1,renderedAt:t}){let u=i.x[a.harness],v=(0,n.Tp)(a.tools),[w,x]=(0,f.useState)(!1);return(0,d.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,d.jsxs)("div",{className:(0,e.cn)("shrink-0 border-b border-border px-5 py-4",s&&"pr-14"),children:[(0,d.jsxs)("div",{className:"flex items-start gap-3.5",children:[(0,d.jsx)(i.K,{id:a.harness,size:40}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"min-w-0 truncate font-display text-lg font-semibold text-text",title:a.title,children:a.title}),(0,d.jsx)(k.UD,{status:a.status})]}),(0,d.jsxs)("div",{className:"mt-1 flex items-center gap-2 text-ui text-text-3",children:[(0,d.jsxs)("span",{className:"shrink-0 whitespace-nowrap",children:[u.label," \xb7 ",n.Ay[a.harness]]}),(0,d.jsx)("span",{className:"shrink-0 text-text-3",children:"\xb7"}),(0,d.jsx)("span",{className:"min-w-0 truncate font-mono",title:a.id,children:a.id})]})]}),(0,d.jsxs)("div",{className:"flex shrink-0 gap-1",children:[r&&(0,d.jsx)(e.$n,{variant:"ghost",size:"sm",title:"Open this session in the full-width inspector","aria-label":"Open this session in the full-width inspector",onClick:r,children:(0,d.jsx)(h.mS,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsx)(e.$n,{variant:"ghost",size:"sm",title:"Export session data as JSON","aria-label":"Export session data as JSON",onClick:()=>{!function(a){if("undefined"==typeof document||"function"!=typeof URL.createObjectURL)return;let b=new Blob([JSON.stringify(a,null,2)],{type:"application/json"}),c=URL.createObjectURL(b),d=document.createElement("a");d.href=c,d.download=`session-${a.id.slice(0,12)}.json`,document.body.appendChild(d),d.click(),d.remove(),URL.revokeObjectURL(c)}(a)},children:(0,d.jsx)(h.s3,{"aria-hidden":!0,focusable:!1,className:"size-4"})})]})]}),(0,d.jsxs)("div",{className:"mt-3.5 grid 2xl:grid-cols-4 grid-cols-3 gap-x-4 gap-y-3 [&>*]:min-w-0",children:[(0,d.jsx)(g.p,{label:"Working dir",children:(0,d.jsx)(o,{text:a.cwd,mono:!0})}),(0,d.jsx)(g.p,{label:"Branch",children:(0,d.jsx)(k.Lw,{items:a.branches,mono:!0,nowrap:!0})}),(0,d.jsx)(g.p,{label:"Model",children:(0,d.jsx)(k.Lw,{items:a.models,mono:!0,nowrap:!0})}),(0,d.jsx)(g.p,{label:"Started",children:(0,d.jsx)(o,{text:`${(0,m.rw)(a.startedAt)} \xb7 ${(0,m.nt)(a.startedAt,new Date(t))}`})}),(0,d.jsx)(g.p,{label:"Duration",children:(0,d.jsx)(o,{text:(0,m.vV)(a.startedAt,a.endedAt,a.status,t)})}),(0,d.jsx)(g.p,{label:"Turns",children:a.turns}),(0,d.jsx)(g.p,{label:"Findings",children:a.findings>0||c?(0,d.jsxs)("span",{className:"flex items-center gap-x-1.5 overflow-hidden whitespace-nowrap",children:[a.findings>0&&(0,d.jsxs)("span",{className:"min-w-0 shrink truncate font-semibold text-sev-critical-ink",title:`${String(a.findings)} triggered — detection firings across this session's transcript; the same value fires once per event it appears in`,children:[a.findings," triggered"]}),a.findings>0&&c&&(0,d.jsx)("span",{className:"shrink-0 text-text-3",children:"\xb7"}),c&&(0,d.jsxs)("a",{href:c.href,className:"inline-flex shrink-0 items-center gap-0.5 font-semibold text-sev-critical-ink underline-offset-2 hover:underline",title:"Unique findings recorded by live enforcement — open in Findings",children:[c.count," enforced live",(0,d.jsx)(h.Qq,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})]})]}):(0,d.jsx)("span",{className:"text-ok-ink",children:"None"})}),(0,d.jsx)(g.p,{label:"Egress",children:a.shares>0?`${String(a.shares)} destinations`:"None"})]})]}),(0,d.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-5 border-b border-border bg-surface-2 px-5 py-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3.5",children:[(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-ui",children:[(0,d.jsx)(h.Kp,{"aria-hidden":!0,focusable:!1,className:"size-3.5 text-text-3"}),(0,d.jsx)("b",{className:"font-semibold tabular-nums",children:(0,m.Sk)(a.tokens.inputTokens)}),(0,d.jsx)("span",{className:"text-text-3",children:"in"})]}),(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-ui",children:[(0,d.jsx)(h.ZL,{"aria-hidden":!0,focusable:!1,className:"size-3.5 text-text-3"}),(0,d.jsx)("b",{className:"font-semibold tabular-nums",children:(0,m.Sk)(a.tokens.outputTokens)}),(0,d.jsx)("span",{className:"text-text-3",children:"out"})]}),(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-ui",children:[(0,d.jsx)(h.DQ,{"aria-hidden":!0,focusable:!1,className:"size-3.5 text-primary"}),(0,d.jsxs)("b",{className:"font-semibold tabular-nums text-primary",children:[(0,m.fz)(a.tokens),"%"]}),(0,d.jsx)("span",{className:"text-text-3",children:"cache"})]}),b&&(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-ui",children:[(0,d.jsx)("b",{className:"font-semibold tabular-nums text-text",children:(0,m.xd)(b.estimatedCostUsd??0,b.costIsPartial)}),(0,d.jsx)("span",{className:"text-text-3",children:"est. cost"})]})]}),(0,d.jsx)("span",{className:"h-5 w-px bg-border"}),(0,d.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-2 max-h-22 overflow-y-auto",children:[(0,d.jsxs)("span",{className:"text-xs font-semibold text-text-3",children:[(0,n.ni)(a.tools)," tool calls"]}),v.map(a=>(0,d.jsx)(k.zn,{name:a.name,n:a.n,...q?{href:q(a.name)}:{}},a.name))]})]}),b&&b.rollups.length>1&&(0,d.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-2 border-b border-border bg-surface-2 px-5 py-2.5",children:[(0,d.jsx)("span",{className:"text-label font-semibold uppercase tracking-wider text-text-3",children:"Cost by model"}),b.rollups.map(a=>(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-border bg-surface py-0.5 px-2 text-xs text-text-2",children:[(0,d.jsx)("span",{className:"font-mono text-text",children:a.model}),(0,d.jsx)("span",{className:"tabular-nums text-text-3",children:(0,m.Sk)(a.totalTokens)}),(0,d.jsx)("span",{className:"tabular-nums text-text",children:null!==a.estimatedCostUsd?(0,m.UK)(a.estimatedCostUsd):"—"})]},`${a.provider} ${a.model}`))]}),(0,d.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto px-5 py-4.5",children:[(0,d.jsxs)("div",{className:"mb-4 flex items-center gap-2 text-label font-semibold uppercase tracking-wider text-text-3",children:[w?"Raw events":"Audit log",(0,d.jsx)("span",{className:"text-text-3",children:"\xb7"}),(0,d.jsxs)("span",{className:"font-mono text-label font-medium normal-case tracking-normal text-text-3",children:[a.events.length," events"]})]}),w?a.events.length>0?(0,d.jsx)("pre",{className:"overflow-x-auto rounded-lg border border-border bg-surface-2 p-3 text-label leading-relaxed text-text-2",children:JSON.stringify(a.events,null,2)}):(0,d.jsx)(j.A,{message:"No events recorded for this session yet"}):(0,d.jsx)(l.i,{events:a.events,...p?{linkHref:p}:{}})]}),(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-2 border-t border-border px-5 py-2.5 text-xs text-text-3",children:[(0,d.jsx)(h.k3,{"aria-hidden":!0,focusable:!1,className:"size-3.5"}),(0,d.jsx)("span",{className:"font-mono",children:"Source: ~/.claude/audit.log"}),(0,d.jsxs)(e.$n,{variant:"link",tone:"primary",className:"ml-auto text-ui",onClick:()=>{x(a=>!a)},children:[(0,d.jsx)(h.kp,{"aria-hidden":!0,focusable:!1,className:"size-3.5"}),w?"View timeline":"View raw events"]})]})]})}function q({session:a,isLoading:b,error:c,tokenReport:f,liveFindings:g,linkHref:h,toolHref:i,onExpand:k,overlayClose:l,renderedAt:m}){return c?(0,d.jsx)("div",{className:"grid h-full place-items-center p-6",children:(0,d.jsx)(j.r,{message:c})}):b&&!a?(0,d.jsxs)("div",{className:"flex h-full flex-col gap-4 p-5","aria-busy":!0,children:[(0,d.jsx)(e.EA,{className:"h-10 w-2/3"}),(0,d.jsx)(e.EA,{className:"h-24 w-full"}),(0,d.jsx)(e.EA,{className:"h-12 w-full"}),(0,d.jsx)(e.EA,{className:"h-40 w-full"})]}):a?(0,d.jsx)(p,{session:a,tokenReport:f??null,liveFindings:g??null,...h?{linkHref:h}:{},...i?{toolHref:i}:{},...k?{onExpand:k}:{},...l?{overlayClose:l}:{},renderedAt:m}):(0,d.jsx)("div",{className:"grid h-full place-items-center p-6",children:(0,d.jsx)(j.A,{message:"Select a session to view its audit timeline"})})}},91301:(a,b,c)=>{"use strict";c.d(b,{Sk:()=>o,UK:()=>d.UKt,fz:()=>n,gE:()=>l,nt:()=>h,rw:()=>j,u3:()=>p,vV:()=>m,xd:()=>d.xdw});var d=c(28615);let e=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],f=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function g(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate()).getTime()}function h(a,b){let c=new Date(a);if(Number.isNaN(c.getTime()))return"";let d=Math.round((g(b)-g(c))/864e5);return 0===d?"Today":1===d?"Yesterday":`${f[c.getDay()]??""}, ${e[c.getMonth()]??""} ${String(c.getDate())}`}let i=new Intl.DateTimeFormat("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});function j(a){let b=Date.parse(a);return Number.isNaN(b)?"":i.format(b)}let k=new Intl.DateTimeFormat("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"});function l(a){let b=Date.parse(a);return Number.isNaN(b)?"":k.format(b)}function m(a,b,c,d){let e=Date.parse(a);if(Number.isNaN(e))return"";let f=Math.max(0,Math.round(((b?Date.parse(b):d)-e)/6e4)),g=Math.floor(f/60),h=f%60,i=g>0?`${String(g)}h ${String(h)}m`:`${String(h)}m`;return"active"===c?`${i} \xb7 live`:i}function n(a){let b=a.cacheRead+a.inputTokens;return b>0?Math.round(100*a.cacheRead/b):0}function o(a){return(0,d.ap_)(a)}function p(a,b){let c=[];for(let d of a){let a=h(d.startedAt,b),e=c.find(b=>b.day===a);e||(e={day:a,items:[]},c.push(e)),e.items.push(d)}return c}},91875:(a,b,c)=>{Promise.resolve().then(c.bind(c,77303)),Promise.resolve().then(c.bind(c,57139)),Promise.resolve().then(c.bind(c,99205)),Promise.resolve().then(c.bind(c,68078)),Promise.resolve().then(c.bind(c,30679)),Promise.resolve().then(c.bind(c,15283)),Promise.resolve().then(c.bind(c,42528))},92006:(a,b,c)=>{"use strict";c.d(b,{RecommendedActionsCardView:()=>p});var d=c(469),e=c(28615),f=c(72454),g=c(17200),h=c(93722),i=c(78666),j=c(55908),k=c(35923),l=c(60655);let m={block_credentials:i.pD,redact_pii:i.jZ,review_external_share:i._G},n={critical:"critical",high:"primary",medium:"teal",low:"teal"};function o(a){return a.subjects.find(a=>"rule"===a.type)}function p({items:a,isLoading:b,error:c,applyAction:p,dismissAction:q,isMutating:r,mutationError:s,viewAllHref:t,actionRefusal:u}){let[v,w]=(0,g.useState)(null),x=(0,g.useId)(),[y,z]=(0,g.useState)(null),[A,B]=(0,g.useState)(""),[C,D]=(0,g.useState)(!1),E=()=>{w(null),z(null),B(""),D(!1)};return(0,d.jsxs)(f.Zp,{className:"flex flex-col shadow-sm",children:[(0,d.jsxs)(f.aR,{children:[(0,d.jsx)(f.AG,{tone:"primary",children:(0,d.jsx)(i.BZ,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsxs)(f.Lc,{children:[(0,d.jsx)(f.ZB,{children:"Recommended actions"}),(0,d.jsx)(f.BT,{children:b?"Loading…":`${String(a.length)} open, prioritized for you`})]}),t?(0,d.jsx)(f.X9,{children:(0,d.jsx)(f.$n,{asChild:!0,variant:"ghost",tone:"primary",size:"sm",children:(0,d.jsx)("a",{href:t,children:"View all"})})}):null]}),(0,d.jsx)(f.Wu,{"aria-busy":b,children:c?(0,d.jsx)(l.rJ,{message:c}):b?(0,d.jsx)("div",{className:"flex flex-col gap-3 py-2",children:[0,1,2].map(a=>(0,d.jsx)(f.EA,{className:"h-20 w-full"},a))}):0===a.length?(0,d.jsx)("div",{className:"py-6 text-center text-xs text-text-3",children:"No open findings."}):(0,d.jsx)(d.Fragment,{children:a.map((b,c)=>{let e=m[b.category]??i.rX,g=o(b);return(0,d.jsxs)("div",{className:(0,f.cn)("flex gap-3 py-3",c<a.length-1&&"border-b border-hairline"),children:[(0,d.jsx)("span",{className:(0,f.cn)("flex size-8 shrink-0 items-center justify-center rounded-lg",f.id[n[b.severity]]),children:(0,d.jsx)(e,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-text",children:b.title}),(0,d.jsx)("div",{className:"mt-0.5 text-xs leading-relaxed text-text-2",children:b.description}),(0,d.jsx)("div",{className:"mt-2 flex flex-wrap items-center gap-1.5",children:b.subjects.map(a=>(0,d.jsx)(f.vw,{children:a.label},`${a.type}_${a.id}`))})]}),(0,d.jsxs)("div",{className:"flex shrink-0 flex-col items-end gap-1.5",children:["apply"===b.action.mode?(0,d.jsx)(f.$n,{variant:"solid",tone:"primary",size:"sm","data-slot":"recommended-action-apply",disabled:void 0===u?r:void 0,onClick:void 0===u?()=>{p(b.id)}:void 0,...void 0===u?{}:(0,j.w)(`${b.id}-action-refusal`,u,"hover:bg-primary-solid"),children:b.action.label}):b.action.href?(0,d.jsx)(f.$n,{asChild:!0,variant:"solid",tone:"primary",size:"sm",children:(0,d.jsx)("a",{href:b.action.href,children:b.action.label})}):(0,d.jsx)(f.$n,{variant:"solid",tone:"primary",size:"sm",disabled:!0,children:b.action.label}),void 0===g?null:(0,d.jsx)(f.$n,{variant:"ghost",size:"sm","data-slot":"recommended-action-dismiss",disabled:void 0===u?r:void 0,onClick:void 0===u?()=>{w({action:b,ruleId:g.id}),z(null),B("")}:void 0,...void 0===u?{}:(0,j.w)(`${b.id}-action-refusal`,u,"hover:bg-transparent hover:text-text-2"),children:"Dismiss"}),void 0!==u&&("apply"===b.action.mode||void 0!==g)&&(0,d.jsx)(j.P,{id:`${b.id}-action-refusal`,dataSlot:"action-refusal-reason",children:u})]})]},b.id)})})}),(0,d.jsx)(f.lG,{open:null!==v,onOpenChange:a=>{a||r||E()},children:null!==v&&(0,d.jsxs)(f.Cf,{children:[(0,d.jsxs)(f.c7,{children:[(0,d.jsxs)(f.L3,{children:["Dismiss ",v.ruleId," findings?"]}),(0,d.jsx)(f.rr,{children:o(v.action)?.label??v.ruleId})]}),(0,d.jsxs)(f.R4,{className:"flex flex-col gap-4",children:[(0,d.jsx)("ul",{className:"flex list-disc flex-col gap-1 pl-4 text-xs leading-relaxed text-text-2",children:(0,k.JI)(v.ruleId).map(a=>(0,d.jsx)("li",{children:a},a))}),(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("div",{id:"dismiss-method-label",className:"text-label font-semibold uppercase tracking-wider text-text-3",children:"Why are you closing these?"}),(0,d.jsx)(h.n,{name:"dismiss-method",labelledBy:"dismiss-method-label",choices:k.Aw,value:y,onChange:z})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("div",{id:"dismiss-confirmation-label",className:"text-label font-semibold uppercase tracking-wider text-text-3",children:"Confirm"}),(0,d.jsxs)("label",{"data-slot":"dismiss-confirmation-hint",className:"text-xs normal-case text-text-2",htmlFor:"dismiss-confirmation",children:["Type"," ",(0,d.jsx)("code",{className:"rounded bg-surface-2 px-1 py-0.5 font-mono text-text",children:e.H3X})," ","to confirm."]}),(0,d.jsx)(f.pd,{id:"dismiss-confirmation","data-slot":"dismiss-confirmation",value:A,onChange:a=>{B(a.target.value)},placeholder:e.H3X,className:"max-w-56 font-mono"})]}),C&&null!==s&&(0,d.jsx)(l.rJ,{message:s}),void 0!==u&&(0,d.jsx)(j.P,{id:x,dataSlot:"dismiss-refusal-reason",children:u})]}),(0,d.jsxs)(f.Es,{children:[(0,d.jsx)(f.$n,{variant:"ghost",size:"sm",disabled:r,onClick:()=>{E()},children:"Cancel"}),(0,d.jsx)(f.$n,{variant:"solid",tone:"danger",size:"sm",disabled:void 0===u?!(0,k.zv)({confirmation:A,method:y,isMutating:r}):void 0,onClick:void 0===u?()=>{if(null!==v&&null!==y){D(!0);try{q({ruleId:v.ruleId,method:y,confirmation:A}).then(a=>{a&&E()}).catch(()=>void 0)}catch{}}}:void 0,...void 0===u?{}:(0,j.w)(x,u,"hover:bg-sev-critical-ink"),children:r?"Dismissing…":"Dismiss findings"})]})]})})]})}},92070:(a,b,c)=>{"use strict";c.d(b,{A:()=>g,r:()=>f});var d=c(469),e=c(72454);function f({message:a}){return(0,d.jsxs)("div",{role:"alert",className:"text-xs text-text-3",children:["Couldn’t load data — ",a]})}function g({message:a,className:b}){return(0,d.jsx)("div",{className:(0,e.cn)("w-full py-6 text-center text-xs text-text-3",b),children:a})}},92405:(a,b,c)=>{"use strict";c.d(b,{NavigationTransitionProvider:()=>e});var d=c(37195);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call NavigationTransitionProvider() from the server but NavigationTransitionProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/web-ui/app/components/NavigationTransition.tsx","NavigationTransitionProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call useNavigationTransition() from the server but useNavigationTransition is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/web-ui/app/components/NavigationTransition.tsx","useNavigationTransition"),(0,d.registerClientReference)(function(){throw Error("Attempted to call NavigationProgressBar() from the server but NavigationProgressBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/web-ui/app/components/NavigationTransition.tsx","NavigationProgressBar")},92529:(a,b,c)=>{"use strict";c.d(b,{UpdateStatusCardView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call UpdateStatusCardView() from the server but UpdateStatusCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/updates/UpdateStatusCardView.tsx","UpdateStatusCardView")},92895:(a,b,c)=>{"use strict";c.d(b,{FindingsOverTimeCardView:()=>l});var d=c(469),e=c(72454),f=c(93974),g=c(39097),h=c(78666),i=c(67002),j=c(60655);let k=[{key:"critical",label:"Critical",color:f.l.sevCritical},{key:"high",label:"High",color:f.l.sevHigh},{key:"medium",label:"Medium",color:f.l.sevMedium},{key:"low",label:"Low",color:f.l.sevLow}];function l({points:a,granularity:b,isLoading:c,error:f}){let l=a.every(a=>k.every(b=>!a[b.key])),m=(0,i.T)(k);return(0,d.jsxs)(e.Zp,{className:"mt-4 shadow-sm xl:mt-5",children:[(0,d.jsxs)(e.aR,{children:[(0,d.jsx)(e.AG,{children:(0,d.jsx)(h.Uy,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsxs)(e.Lc,{children:[(0,d.jsx)(e.ZB,{children:"Findings over time"}),(0,d.jsx)(e.BT,{children:`New sensitive-data detections${null===b?"":` per ${b}`}`})]}),(0,d.jsx)(e.X9,{className:"gap-3 text-xs text-text-2",children:(0,d.jsx)(i.N,{series:k,visibility:m,interactive:!f&&!c&&!l})})]}),(0,d.jsx)(e.Wu,{"aria-busy":c,className:"pb-2",children:f?(0,d.jsx)(j.rJ,{message:f}):c?(0,d.jsx)(e.EA,{className:"h-40 w-full"}):l?(0,d.jsx)(j.AW,{message:"No findings in this range."}):(0,d.jsx)(g.AreaChart,{data:a,series:m.visible,height:160})})]})}},93423:(a,b,c)=>{"use strict";c.d(b,{FindingsFlatTableView:()=>m});var d=c(469),e=c(72454),f=c(52095),g=c(78666),h=c(27795),i=c(58671),j=c(22157),k=c(54640);let l={severity:"min-w-[110px] whitespace-nowrap",sources:"min-w-[140px] whitespace-nowrap",user:"min-w-[140px]",action:"min-w-[130px] whitespace-nowrap",status:"min-w-[110px] whitespace-nowrap",deployment:"min-w-[130px] whitespace-nowrap",latest:"min-w-[100px] whitespace-nowrap",location:"min-w-[200px]",type:"min-w-[300px] max-w-0",value:"min-w-[200px] max-w-0"};function m({items:a,selectedId:b,onSelect:c,onNextPage:m,onPreviousPage:n,hasNextPage:o=!1,hasPreviousPage:p=!1,loadingNextPage:q=!1,pageStart:r,total:s,isLoading:t=!1,emptyState:u,showUserColumn:v=!1,showDeploymentColumn:w=!1,pinnedType:x=!1,header:y,renderedAt:z}){return(0,d.jsxs)(e.Zp,{className:"flex h-full min-h-0 flex-col overflow-hidden shadow-sm",children:[y,(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-4",children:t?(0,d.jsx)("div",{className:"flex flex-col gap-2 py-2",children:Array.from({length:8},(a,b)=>(0,d.jsx)("div",{className:"h-11 animate-pulse rounded-md bg-surface-3"},b))}):0===a.length?u??(0,d.jsx)("p",{className:"py-8 text-center text-sm text-text-3",children:"No findings match these filters."}):(0,d.jsxs)(e.XI,{children:[(0,d.jsx)(e.A0,{children:(0,d.jsxs)(e.Hj,{children:[!x&&(0,d.jsx)(e.nd,{className:l.severity,children:"Severity"}),(0,d.jsx)(e.nd,{className:l[x?"value":"type"],children:x?"Value":"Type"}),(0,d.jsx)(e.nd,{className:l.sources,children:"Source"}),v&&(0,d.jsx)(e.nd,{className:l.user,title:i.O,children:"User"}),(0,d.jsx)(e.nd,{className:l.location,children:"Location"}),(0,d.jsx)(e.nd,{className:l.action,children:"Action"}),(0,d.jsx)(e.nd,{className:l.status,children:"Status"}),w&&(0,d.jsx)(e.nd,{className:l.deployment,children:"Deployment"}),(0,d.jsx)(e.nd,{className:l.latest,children:"Detected"})]})}),(0,d.jsx)(e.BF,{children:a.map(a=>{let m=i.y7[a.category]??g.RY;return(0,d.jsxs)(e.Hj,{"data-state":b===a.id?"selected":void 0,className:"cursor-pointer hover:bg-surface-2",onClick:()=>{c(a)},children:[!x&&(0,d.jsx)(e.nA,{className:l.severity,children:(0,d.jsx)(e.Pt,{severity:a.severity})}),(0,d.jsx)(e.nA,{className:l[x?"value":"type"],children:x?(0,d.jsx)("span",{className:"block truncate font-mono text-ui text-text",title:a.match.maskedValue,children:a.match.maskedValue}):(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:(0,e.cn)("flex size-7 shrink-0 items-center justify-center rounded-lg",(0,i.i9)(a.category)),children:(0,d.jsx)(m,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:"text-ui font-semibold text-text wrap-anywhere",children:a.subtype}),(0,d.jsx)("div",{className:"truncate font-mono text-xs text-text-3",title:a.match.maskedValue,children:a.match.maskedValue})]})]})}),(0,d.jsx)(e.nA,{className:l.sources,children:(0,d.jsx)(j.i,{provider:a.provider})}),v&&(0,d.jsx)(e.nA,{className:l.user,children:(0,d.jsx)(k.c,{user:a.user})}),(0,d.jsx)(e.nA,{className:l.location,children:(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:"font-mono text-xs text-text-2 wrap-anywhere",children:(0,i.xE)(a)}),a.repo&&(0,d.jsx)("div",{className:"text-xs text-text-3 wrap-anywhere",children:a.repo})]})}),(0,d.jsx)(e.nA,{className:l.action,children:(0,d.jsx)(h.T,{action:a.action})}),(0,d.jsx)(e.nA,{className:l.status,children:void 0===a.status?(0,d.jsx)("span",{className:"text-text-3",children:"—"}):(0,d.jsx)(e.Ex,{variant:(0,i.Dx)(a.status).badge,className:"h-6",children:(0,i.Dx)(a.status).label})}),w&&(0,d.jsx)(e.nA,{className:l.deployment,children:void 0===a.delivery?(0,d.jsx)("span",{className:"text-text-3",children:"—"}):(0,d.jsx)(e.Ex,{variant:(0,i.dL)(a.delivery.state).badge,className:"h-6",children:(0,i.dL)(a.delivery.state).label})}),(0,d.jsx)(e.nA,{className:l.latest,children:(0,d.jsx)("span",{className:"text-text-3 text-xs",children:(0,f.K)(a.detectedAt,z)})})]},a.id)})})]})}),m&&a.length>0&&(0,d.jsxs)(e.dK,{children:[(0,d.jsx)(e.Eb,{disabled:!p||q,onClick:n}),(0,d.jsx)(e.D2,{children:void 0===s||void 0===r?`${String(a.length)} shown`:`${String(r)}–${String(r+a.length-1)} of ${String(s)} findings`}),(0,d.jsx)(e.WA,{disabled:!o||q,loading:q,onClick:m})]})]})}},93722:(a,b,c)=>{"use strict";c.d(b,{n:()=>f});var d=c(469),e=c(72454);function f({name:a,labelledBy:b,choices:c,value:f,onChange:g,disabled:h}){return(0,d.jsx)("div",{className:"flex flex-col gap-2",role:"radiogroup","aria-labelledby":b,children:c.map(b=>(0,d.jsxs)("label",{className:(0,e.cn)("flex items-start gap-3 rounded-lg border p-3 transition-colors",h?"cursor-not-allowed opacity-60":"cursor-pointer",f===b.value?"border-primary bg-primary-tint":(0,e.cn)("border-border bg-surface",!h&&"hover:bg-surface-2")),children:[(0,d.jsx)("input",{type:"radio",name:a,checked:f===b.value,disabled:h,onChange:()=>{g(b.value)},className:"mt-1 accent-primary"}),(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-text",children:b.label}),(0,d.jsx)("span",{className:"mt-0.5 block text-xs text-text-2",children:b.description})]})]},b.value))})}},93974:(a,b,c)=>{"use strict";c.d(b,{l:()=>d});let d={primary:"var(--color-primary)",ok:"var(--color-ok)",violet:"var(--color-violet)",teal:"var(--color-teal)",sevCritical:"var(--color-sev-critical)",sevHigh:"var(--color-sev-high)",sevMedium:"var(--color-sev-medium)",sevLow:"var(--color-sev-low)",surface:"var(--color-surface)",surface3:"var(--color-surface-3)",border:"var(--color-border)",text2:"var(--color-text-2)",text3:"var(--color-text-3)"}},95036:(a,b,c)=>{"use strict";c.d(b,{DetectionDetailView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call DetectionDetailView() from the server but DetectionDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/DetectionDetailView.tsx","DetectionDetailView")},95623:(a,b,c)=>{"use strict";c.d(b,{CLOCK_TICK_MS:()=>e,useRenderClock:()=>f});var d=c(37195);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call CLOCK_TICK_MS() from the server but CLOCK_TICK_MS is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/lib/useRenderClock.ts","CLOCK_TICK_MS"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call useRenderClock() from the server but useRenderClock is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/lib/useRenderClock.ts","useRenderClock")},96211:(a,b,c)=>{"use strict";c.d(b,{s:()=>h});var d=c(469),e=c(72454),f=c(17200);function g({icon:a,value:b,label:c,tone:f,isLoading:g}){let{text:h,fill:i}=e.cH[f];return(0,d.jsxs)("div",{"data-slot":"summary-stat",className:"flex min-w-0 flex-1 items-center gap-2 px-4",children:[(0,d.jsx)("span",{"data-slot":"summary-stat-icon",className:(0,e.cn)("grid size-7 shrink-0 place-items-center rounded-lg",i,h),children:(0,d.jsx)(a,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})}),(0,d.jsxs)("div",{className:"flex min-w-0 items-baseline gap-1.5 overflow-hidden",title:g?c:`${String(b)} ${c}`,children:[g?(0,d.jsx)(e.EA,{className:"h-4 w-10 shrink-0"}):(0,d.jsx)("span",{className:"min-w-0 truncate font-display text-lg font-semibold leading-none tabular-nums text-text",children:b}),(0,d.jsx)("span",{className:"shrink-[9999] truncate text-xs text-text-3",children:c})]})]})}function h({items:a,isLoading:b,className:c}){return(0,d.jsx)(e.Zp,{className:(0,e.cn)("mb-3 flex shrink-0 items-stretch overflow-hidden py-2.5 shadow-sm",c),"aria-busy":b,children:a.map((a,c)=>(0,d.jsxs)(f.Fragment,{children:[c>0&&(0,d.jsx)("span",{className:"w-px shrink-0 self-stretch bg-hairline"}),(0,d.jsx)(g,{...a,isLoading:b})]},a.label))})}},96462:(a,b,c)=>{"use strict";c.d(b,{InventoryNav:()=>m});var d=c(469),e=c(72454),f=c(17200),g=c(38833),h=c(33988),i=c(63264),j=c(79871),k=c(8070);let l=[{type:"all",label:"All"},...j.fd.map(a=>({type:a.type,label:"Configuration"===a.label?"Config":a.label.replace(" servers","")}))];function m(a){let{projects:b,assetGroups:c,harnesses:g,viewMode:i,onViewMode:j,typeFilter:m,onTypeFilter:o,query:q,onQuery:r,attention:s,isLoading:t}=a,u=(0,f.useMemo)(()=>{let a={skill:[],mcp:[],hook:[],config:[]};for(let b of c)"project"!==b.type&&(a[b.type]=b.items);return a},[c]),v=(0,f.useMemo)(()=>{let a=q.toLowerCase(),c=b=>!a||b.toLowerCase().includes(a);return b.filter(a=>c(a.name)||c(a.repo))},[b,q]);return(0,d.jsxs)(e.Zp,{className:"flex w-85 shrink-0 flex-col overflow-hidden shadow-sm",children:[(0,d.jsxs)("div",{className:"border-b border-border px-4 pb-3 pt-4",children:[(0,d.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-display text-base font-semibold",children:"All assets"}),void 0===s?(0,d.jsx)("span",{className:"ml-auto text-xs text-text-3",children:"…"}):(0,d.jsxs)("span",{className:(0,e.cn)("ml-auto inline-flex items-center gap-1.5 text-xs font-semibold",s?"text-sev-high-ink":"text-ok-ink"),children:[(0,d.jsx)(k.m,{name:s?"flag":"check-circle",className:"size-3.5"}),s?`${String(s)} to review`:"All clear"]})]}),(0,d.jsx)(h.SearchField,{value:q,onValueChange:r,label:"Search assets",placeholder:"Search assets…",clearLabel:"Clear asset search",surface:"card",className:"h-8.5"}),(0,d.jsxs)(e.Iz,{className:"mt-3 flex w-full",value:i,onValueChange:a=>{a&&j(a)},children:[(0,d.jsxs)(e.tR,{value:"tree",children:[(0,d.jsx)(k.m,{name:"layers"})," By harness"]}),(0,d.jsxs)(e.tR,{value:"type",children:[(0,d.jsx)(k.m,{name:"list"})," By type"]})]}),"type"===i&&(0,d.jsx)(e.Iz,{className:"mt-2.5 flex w-full flex-wrap border-0 bg-transparent p-0 gap-1.5",value:m,onValueChange:a=>{a&&o(a)},children:l.map(a=>(0,d.jsx)(e.tR,{value:a.type,className:(0,e.cn)("flex-none rounded-full border border-border bg-surface px-2.5 py-1 text-text-2","data-[state=on]:border-transparent data-[state=on]:bg-text data-[state=on]:text-surface data-[state=on]:shadow-none"),children:a.label},a.type))})]}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 pb-2.5 pt-1",children:t&&0===g.length&&0===b.length&&0===c.length?(0,d.jsx)("div",{className:"px-3 py-6 text-center text-xs text-text-3",children:"Loading inventory…"}):"tree"===i?(0,d.jsx)(n,{...a}):(0,d.jsx)(p,{...a,projList:v,assetsByType:u})})]})}function n(a){let{harnesses:b,query:c}=a,e=c.toLowerCase(),f=a=>!e||a.toLowerCase().includes(e),g=e?b.map(a=>({...a,projects:a.projects.filter(a=>f(a.name)||f(a.repo)),categories:a.categories.map(a=>({...a,assets:a.assets.filter(a=>f(a.name)||f(a.sub))})).filter(a=>a.assets.length>0)})).filter(a=>a.projects.length>0||a.categories.length>0||f(a.label)||f(a.kind)):b;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t,{iconName:"terminal",label:"Harnesses",count:g.length}),(0,d.jsx)("div",{className:"flex flex-col gap-0.5",children:g.length>0?g.map(b=>(0,d.jsx)(o,{h:b,...a},b.id)):(0,d.jsx)(i.EmptyState,{message:c?"No matches":"No harnesses detected"})})]})}function o(a){let{h:b,sel:c,expanded:f,onToggleExpand:h,onSelectHarness:i,onSelectAsset:l,query:m}=a,n=b.projects,o=b.categories,p=f[b.id]??(!!m&&(n.length>0||o.length>0)),s=c?.type==="harness"&&c.id===b.id,t=(o.find(a=>"mcp"===a.type)?.assets??[]).filter(a=>"unapproved"===a.trust).length;return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:(0,e.cn)("flex items-center rounded-lg",s?"bg-primary-tint":"hover:bg-surface-2"),children:[(0,d.jsx)("button",{type:"button","aria-label":p?"Collapse":"Expand","aria-expanded":p,onClick:()=>{h(b.id,!p)},className:"my-2.5 ml-2.5 grid size-4.5 shrink-0 cursor-pointer place-items-center rounded text-text-3",children:(0,d.jsx)(k.m,{name:"chevron-right",className:(0,e.cn)("size-3.5 transition-transform",p&&"rotate-90")})}),(0,d.jsxs)("button",{type:"button",className:"flex min-w-0 flex-1 items-center gap-2.5 p-2.5 text-left cursor-pointer",onClick:()=>{i(b.id),p||h(b.id,!0)},children:[(0,d.jsx)(g.K,{id:b.id,size:28}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"truncate text-sm font-semibold text-text",title:b.label,children:b.label}),(0,d.jsxs)("div",{className:"mt-px text-xs text-text-3",children:[b.kind," \xb7 ",b.assetCount," assets"]})]}),(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[t>0&&(0,d.jsx)("span",{className:"size-2 rounded-full bg-sev-critical"}),0===b.flagCount?(0,d.jsx)(k.m,{name:"check-circle",className:"size-3.5 text-ok-ink"}):(0,d.jsx)("span",{className:"rounded-full bg-sev-high-ink px-1.5 py-px text-xs font-bold text-on-accent",children:b.flagCount})]})]})]}),p&&(0,d.jsxs)("div",{className:"my-0.5 ml-4 border-l border-border pl-2.5",children:[n.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 px-2 pb-1 pt-2",children:[(0,d.jsx)(k.m,{name:j.WD.icon,className:"size-3 text-text-3"}),(0,d.jsx)("span",{className:"text-label font-bold uppercase tracking-wider text-text-3",children:j.WD.label}),(0,d.jsx)("span",{className:"text-label font-semibold text-text-3",children:n.length})]}),n.map(c=>(0,d.jsx)(q,{p:c,fromHarness:b.id,...a},c.id))]}),o.map(a=>{let e=j.pA[a.type];return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 px-2 pb-1 pt-2",children:[(0,d.jsx)(k.m,{name:e.icon,className:"size-3 text-text-3"}),(0,d.jsx)("span",{className:"text-label font-bold uppercase tracking-wider text-text-3",children:e.label}),(0,d.jsx)("span",{className:"text-label font-semibold text-text-3",children:a.assets.length})]}),a.assets.map(a=>(0,d.jsx)(r,{it:a,indent:!0,fromHarness:b.id,sel:c,onSelectAsset:l},a.id))]},a.type)})]})]})}function p(a){let{typeFilter:b,query:c,projList:e,assetsByType:f}=a,g=c.toLowerCase(),h=a=>!g||a.toLowerCase().includes(g),k=0,l=j.fd.map(c=>{let g;if(g=c.type,"all"!==b&&b!==g)return null;if("project"===c.type){let f=e.length;return 0===f&&"all"===b?null:(f>0&&k++,(0,d.jsxs)("div",{children:[(0,d.jsx)(s,{group:c,items:e.map(a=>({flags:a.findingsCount>0?["findings"]:[]}))}),(0,d.jsx)("div",{className:"flex flex-col gap-0.5",children:0===f?(0,d.jsx)(i.EmptyState,{message:`No ${c.label.toLowerCase()}`}):e.map(b=>(0,d.jsx)(q,{p:b,...a},b.id))})]},c.type))}let j=f[c.type].filter(a=>h(a.name)||h(a.sub));return 0===j.length&&"all"===b?null:(j.length>0&&k++,(0,d.jsxs)("div",{children:[(0,d.jsx)(s,{group:c,items:j,mcpItems:"mcp"===c.type?j:void 0}),(0,d.jsx)("div",{className:"flex flex-col gap-0.5",children:0===j.length?(0,d.jsx)(i.EmptyState,{message:`No ${c.label.toLowerCase()}`}):j.map(b=>(0,d.jsx)(r,{it:b,sel:a.sel,onSelectAsset:a.onSelectAsset},b.id))})]},c.type))});return"all"===b&&0===k?(0,d.jsx)(i.EmptyState,{icon:"search",message:c?`No assets match “${c}”`:"No assets"}):(0,d.jsx)(d.Fragment,{children:l})}function q({p:a,fromHarness:b,selFromHarness:c,sel:f,onSelectProject:g}){let h=a.accessCounts,l=a.findingsCount,m=f?.type==="project"&&f.id===a.id&&(null==b||null==c||b===c);return(0,d.jsxs)("button",{type:"button",onClick:()=>{g(a.id,b)},className:(0,e.cn)("flex w-full flex-col rounded-lg p-2.5 text-left cursor-pointer",m?"bg-primary-tint":"hover:bg-surface-2"),children:[(0,d.jsxs)("div",{className:"mb-1.5 flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"size-2 shrink-0 rounded-full",style:{background:(0,j.Cs)(a.language)}}),(0,d.jsx)("span",{className:"truncate text-sm font-semibold text-text",title:a.name,children:a.name}),(0,d.jsx)("span",{className:"ml-auto shrink-0",children:(0,d.jsx)(i.yk,{v:a.visibility})})]}),(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 font-mono text-xs text-text-3",children:[(0,d.jsx)(k.m,{name:"repo",className:"size-3 shrink-0"}),(0,d.jsx)("span",{className:"truncate",title:a.repo,children:a.repo})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)(i.AJ,{counts:h}),h.blocked>0?(0,d.jsxs)("span",{className:"text-xs font-semibold text-sev-critical-ink",children:[h.blocked," blocked"]}):(0,d.jsxs)("span",{className:"text-xs text-text-3",children:[h.total," files"]}),l>0&&(0,d.jsx)("span",{className:"ml-auto shrink-0",children:(0,d.jsx)(i.Kh,{flags:["findings"],mini:!0})})]})]})}function r({it:a,indent:b,fromHarness:c,sel:f,onSelectAsset:g}){let h=f?.type===a.type&&f.id===a.id,l=(0,j.TW)(a.type),m="mcp"===a.type?a.trust:void 0;return(0,d.jsxs)("button",{type:"button",onClick:()=>{g(a,c)},className:(0,e.cn)("flex w-full items-center gap-2.5 rounded-lg py-3 text-left cursor-pointer",b?"px-3":"px-2.5",h?"bg-primary-tint":"hover:bg-surface-2"),children:[(0,d.jsx)("span",{className:(0,e.cn)("grid size-7.5 shrink-0 place-items-center rounded-md",l.bg,l.fg),children:(0,d.jsx)(k.m,{name:l.icon,className:"size-3.5"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"truncate font-mono text-xs font-semibold text-text",title:a.name,children:a.name}),(0,d.jsx)("div",{className:"mt-0.5 truncate font-mono text-label text-text-3",title:a.sub,children:a.sub})]}),(0,d.jsxs)("div",{className:"flex shrink-0 flex-col items-end gap-1",children:[m&&(0,d.jsx)(i.As,{value:m}),a.flags.length>0&&(0,d.jsx)(i.Kh,{flags:a.flags,mini:!0})]})]})}function s({group:a,items:b,mcpItems:c}){let f=(0,j.z)(b),g=c?["unapproved","risky"].map(a=>({k:a,n:c.filter(b=>b.trust===a).length})).filter(a=>a.n):[];return(0,d.jsxs)("div",{className:"flex items-center gap-2 px-2.5 pb-1.5 pt-3",children:[(0,d.jsx)("span",{className:(0,e.cn)("grid size-5 shrink-0 place-items-center rounded",a.bg,a.fg),children:(0,d.jsx)(k.m,{name:a.icon,className:"size-3"})}),(0,d.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-text-2",children:a.label}),(0,d.jsx)("span",{className:"text-xs font-semibold text-text-3",children:b.length}),(0,d.jsxs)("span",{className:"ml-auto inline-flex flex-wrap items-center justify-end gap-1.5",children:[g.map(a=>(0,d.jsxs)(e.Ex,{variant:j.ZY[a.k].tone,children:[a.n," ",j.ZY[a.k].label.toLowerCase()]},a.k)),f.map(a=>(0,d.jsxs)(e.Ex,{variant:j.lx[a.key].tone,children:[a.count," ",j.lx[a.key].short.toLowerCase()]},a.key))]})]})}function t({iconName:a,label:b,count:c}){return(0,d.jsxs)("div",{className:"flex items-center gap-2 px-2.5 pb-1.5 pt-3",children:[(0,d.jsx)("span",{className:"grid size-5 shrink-0 place-items-center rounded bg-surface-2 text-text-2",children:(0,d.jsx)(k.m,{name:a,className:"size-3"})}),(0,d.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-text-2",children:b}),(0,d.jsx)("span",{className:"text-xs font-semibold text-text-3",children:c})]})}},96537:(a,b,c)=>{"use strict";c.d(b,{DerefAuditTableView:()=>k});var d=c(469),e=c(28615),f=c(72454),g=c(52095),h=c(38843);let i={revealed:"border-l-2 border-l-sev-critical bg-sev-critical-fill font-medium",refused:"border-l-2 border-l-sev-high bg-sev-high-fill font-medium"};function j({row:a}){return"model"===a.target&&"revealed"===a.outcome?(0,d.jsx)(f.Ex,{variant:"critical",children:"revealed"}):"refused"===a.outcome?(0,d.jsx)(f.Ex,{variant:"high",children:"refused"}):"unavailable"===a.outcome?(0,d.jsx)(f.Ex,{variant:"outline",children:"unavailable"}):(0,d.jsx)(f.Ex,{variant:"default",children:"revealed"})}function k({rows:a,hiddenBatched:b,showBatched:c,onToggleBatched:k,hasNextPage:l=!1,hasPreviousPage:m=!1,onNextPage:n,onPreviousPage:o,loadingNextPage:p=!1,pageStart:q,renderedAt:r}){let s=void 0===k?null:(0,d.jsx)(f.$n,{variant:"link",tone:"neutral",onClick:()=>{k(!c)},children:c?"Hide display/render resolutions":"Show them"}),t=!c&&b>0?(0,d.jsxs)("p",{className:"mt-3 flex items-center gap-2 text-xs text-text-3",children:[(0,d.jsxs)("span",{children:[String(b)," display/render"," ",1===b?"resolution":"resolutions"," hidden"]}),s]}):c&&void 0!==k?(0,d.jsx)("p",{className:"mt-3 text-xs text-text-3",children:s}):null,u=0===a.length;return!u||m||l?(0,d.jsxs)("div",{className:"overflow-x-auto rounded-xl border border-border bg-surface p-4",children:[u?(0,d.jsx)("div",{className:"py-10 text-center text-sm text-text-3",children:"These rows moved while you were reading. Step back to see the rest."}):(0,d.jsxs)(f.XI,{children:[(0,d.jsx)(f.A0,{children:(0,d.jsxs)(f.Hj,{children:[(0,d.jsx)(f.nd,{children:"When"}),(0,d.jsx)(f.nd,{children:"Reason"}),(0,d.jsx)(f.nd,{children:"Target"}),(0,d.jsx)(f.nd,{children:"Outcome"}),(0,d.jsx)(f.nd,{children:"Grant"}),(0,d.jsx)(f.nd,{children:"Pointers"})]})}),(0,d.jsx)(f.BF,{children:a.map(a=>"purge"===a.reason?(0,d.jsxs)(f.Hj,{"data-purge":"",className:"bg-surface-2",children:[(0,d.jsx)(f.nA,{className:"text-xs text-text-2",children:(0,g.K)(a.at,r)}),(0,d.jsxs)(f.nA,{colSpan:5,className:"text-xs font-medium text-text-2",children:["Vault purge —"," ",1===a.pointerCount?"a pointer":`${String(a.pointerCount)} pointers`," ","made permanently unresolvable"]})]},a.id):(0,d.jsxs)(f.Hj,{"data-model-crossing":"model"===a.target?a.outcome:void 0,className:(0,f.cn)("model"===a.target&&i[a.outcome],(0,e.kqf)(a.reason)&&"text-text-3"),children:[(0,d.jsx)(f.nA,{className:"text-xs text-text-2",children:(0,g.K)(a.at,r)}),(0,d.jsx)(f.nA,{className:"text-xs",children:h.V[a.reason]}),(0,d.jsx)(f.nA,{className:"text-xs",children:"model"===a.target?(0,d.jsx)("span",{className:"font-semibold text-sev-critical-ink",children:"model"}):(0,d.jsx)("span",{className:"text-text-2",children:"human"})}),(0,d.jsx)(f.nA,{children:(0,d.jsx)(j,{row:a})}),(0,d.jsx)(f.nA,{className:"font-mono text-xs text-text-3",children:void 0===a.grantId?"—":a.grantId.slice(0,8)}),(0,d.jsx)(f.nA,{className:"text-xs text-text-2",children:a.pointerCount>1?`\xd7${String(a.pointerCount)}`:"—"})]},a.id))})]}),n?(0,d.jsxs)(f.dK,{children:[(0,d.jsx)(f.Eb,{disabled:!m||p,onClick:o}),(0,d.jsx)(f.D2,{children:void 0===q?`${String(a.length)} shown`:u?"0 resolutions":`${String(q)}–${String(q+a.length-1)} resolutions`}),(0,d.jsx)(f.WA,{disabled:!l||p,loading:p,onClick:n})]}):l&&(0,d.jsxs)("p",{className:"mt-4 text-center text-xs text-text-3",children:["Showing the most recent ",a.length," resolutions."]}),t]}):(0,d.jsxs)("div",{className:"rounded-xl border border-border bg-surface p-4",children:[(0,d.jsx)("div",{className:"py-10 text-center text-sm text-text-3",children:"No de-references recorded — every resolution of a vaulted value lands here."}),t]})}},96953:()=>{},97123:(a,b,c)=>{"use strict";c.d(b,{DerefAuditTableView:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call DerefAuditTableView() from the server but DerefAuditTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/vault/DerefAuditTableView.tsx","DerefAuditTableView")},97725:(a,b,c)=>{"use strict";c.d(b,{Jy:()=>g,QT:()=>f,hn:()=>e,sp:()=>d.spO,sr:()=>h});var d=c(28615);let e=[{value:"7d",label:"Last 7 days"},{value:"30d",label:"Last 30 days"},{value:"3m",label:"Last 3 months"},{value:"6m",label:"Last 6 months"}];function f(a){return e.find(b=>b.value===a)?.label??a}let g=[{value:"30m",label:"Last 30 minutes"},{value:"1h",label:"Last hour"},{value:"4h",label:"Last 4 hours"},{value:"24h",label:"Last 24 hours"}],h={"30m":"the last 30 minutes","1h":"the last hour","4h":"the last 4 hours","24h":"the last 24 hours"}},98305:(a,b,c)=>{"use strict";c.d(b,{UpdateModal:()=>h});var d=c(469),e=c(72454),f=c(78666),g=c(74637);function h({det:a,isUpdating:b,onClose:c,onConfirm:h}){let i=a?a.update?.latestVersion??a.latestVersion??a.version:"",j=a?.update?.latestRuleCount,k=!!a&&i!==a.version;return(0,d.jsx)(e.lG,{open:!!a,onOpenChange:a=>{a||c()},children:(0,d.jsx)(e.Cf,{className:"w-155 max-w-[96vw]","aria-describedby":void 0,children:a&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(e.L3,{className:"sr-only",children:["Update \xb7 ",a.name]}),(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-3 border-b border-border px-5 py-4",children:[(0,d.jsx)("span",{className:"grid size-9.5 shrink-0 place-items-center rounded-lg bg-sev-high-fill text-sev-high-ink",children:(0,d.jsx)(f.Kp,{"aria-hidden":!0,focusable:!1,className:"size-5"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"font-display text-base font-semibold text-text",children:["Update “",a.name,"”"]}),(0,d.jsxs)("div",{className:"text-xs text-text-3",children:["From the detection library \xb7 ",a.publisher??a.namespace]})]}),(0,d.jsx)(e.$n,{variant:"ghost",tone:"neutral",size:"icon",onClick:c,"aria-label":"Close",className:"size-8 text-text-3",children:(0,d.jsx)(f.uv,{"aria-hidden":!0,focusable:!1})})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-5 overflow-y-auto p-5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("span",{className:"rounded-lg border border-border bg-surface-2 px-3 py-1.5 font-mono text-sm font-semibold text-text-2",children:k?`v${a.version}`:`${String(a.ruleCount)} rules`}),(0,d.jsx)(f.fl,{"aria-hidden":!0,focusable:!1,className:"size-4 text-text-3"}),(0,d.jsx)("span",{className:"rounded-lg border border-sev-high bg-sev-high-fill px-3 py-1.5 font-mono text-sm font-bold text-sev-high-ink",children:k?`v${i}`:`${String(j??a.ruleCount)} rules`}),(0,d.jsx)("span",{className:"flex-1"}),(0,d.jsx)(g.Jk,{publisher:a.publisher??a.namespace,kind:a.publisherKind??"user"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2.5 rounded-lg border border-ok bg-ok-fill px-3 py-2.5",children:[(0,d.jsx)(f.C1,{"aria-hidden":!0,focusable:!1,className:"size-4 shrink-0 text-ok-ink"}),(0,d.jsx)("div",{className:"text-sm text-text-2",children:"Updates are never applied automatically — your enabled state and policy assignment are preserved."})]})]}),(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-2.5 border-t border-border px-5 py-4",children:[(0,d.jsx)("span",{className:"flex-1"}),(0,d.jsx)(e.$n,{variant:"outline",tone:"neutral",onClick:c,children:"Cancel"}),(0,d.jsxs)(e.$n,{variant:"solid",tone:"primary",disabled:b,onClick:()=>{h(a.id)},children:[(0,d.jsx)(f.s3,{"aria-hidden":!0,focusable:!1,className:"size-4"}),b?"Updating…":k?`Update to v${i}`:"Update rules"]})]})]})})})}},99557:(a,b,c)=>{"use strict";c.d(b,{PolicyPicker:()=>d});let d=(0,c(37195).registerClientReference)(function(){throw Error("Attempted to call PolicyPicker() from the server but PolicyPicker is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/PolicyPicker.tsx","PolicyPicker")},99846:(a,b,c)=>{"use strict";c.d(b,{e:()=>f,p:()=>g});var d=c(469),e=c(72454);function f({children:a,className:b}){return(0,d.jsx)("span",{className:(0,e.cn)("mb-2 block text-label font-semibold uppercase tracking-wider text-text-3",b),children:a})}function g({label:a,children:b}){return(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1 text-label font-semibold uppercase tracking-wider text-text-3",children:a}),(0,d.jsx)("div",{className:"text-ui font-medium text-text",children:b})]})}}};
|