@akasecurity/cli 0.8.1 → 0.9.0-rc1
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 +2 -0
- package/dist/cli.js +2353 -1293
- package/package.json +12 -6
- package/web-ui/packages/dashboard-ui/package.json +1 -1
- package/web-ui/packages/detections/package.json +2 -2
- package/web-ui/packages/local-ops/package.json +3 -2
- package/web-ui/packages/persistence/package.json +2 -2
- package/web-ui/packages/plugin-sdk/package.json +29 -0
- package/web-ui/packages/schema/package.json +2 -2
- package/web-ui/rules/code-flaws/auth-jwt-no-verify.json +20 -0
- package/web-ui/rules/code-flaws/auth-ssl-verify-false.json +19 -0
- package/web-ui/rules/code-flaws/cmd-inject-exec.json +20 -0
- package/web-ui/rules/code-flaws/cmd-inject-node-exec.json +20 -0
- package/web-ui/rules/code-flaws/cmd-inject-shell.json +20 -0
- package/web-ui/rules/code-flaws/crypto-insecure-random.json +20 -0
- package/web-ui/rules/code-flaws/crypto-weak-hash-md5.json +16 -0
- package/web-ui/rules/code-flaws/crypto-weak-hash-sha1.json +23 -0
- package/web-ui/rules/code-flaws/deser-java-ois.json +22 -0
- package/web-ui/rules/code-flaws/deser-pickle.json +16 -0
- package/web-ui/rules/code-flaws/deser-yaml-unsafe.json +16 -0
- package/web-ui/rules/code-flaws/dev-debug-enabled.json +13 -0
- package/web-ui/rules/code-flaws/dev-placeholder-secret.json +24 -0
- package/web-ui/rules/code-flaws/dev-wildcard-cors.json +17 -0
- package/web-ui/rules/code-flaws/eval-dynamic-exec.json +17 -0
- package/web-ui/rules/code-flaws/hardcoded-password.json +23 -0
- package/web-ui/rules/code-flaws/hardcoded-secret-key.json +17 -0
- package/web-ui/rules/code-flaws/path-traversal-join.json +19 -0
- package/web-ui/rules/code-flaws/path-traversal-open.json +20 -0
- package/web-ui/rules/code-flaws/prototype-pollution-merge.json +16 -0
- package/web-ui/rules/code-flaws/regex-redos-backtrack.json +13 -0
- package/web-ui/rules/code-flaws/sql-inject-concat-dot.json +16 -0
- package/web-ui/rules/code-flaws/sql-inject-concat.json +13 -0
- package/web-ui/rules/code-flaws/sql-inject-format.json +16 -0
- package/web-ui/rules/code-flaws/sql-inject-interp.json +19 -0
- package/web-ui/rules/code-flaws/ssrf-user-url.json +16 -0
- package/web-ui/rules/code-flaws/xss-dangerously-set.json +16 -0
- package/web-ui/rules/code-flaws/xss-inner-html.json +16 -0
- package/web-ui/rules/code-flaws/xss-unescaped-render.json +16 -0
- package/web-ui/rules/core-code-context/db-table-name.json +29 -0
- package/web-ui/rules/core-code-context/feature-flag.json +24 -0
- package/web-ui/rules/core-code-context/file-path.json +17 -0
- package/web-ui/rules/core-code-context/internal-domain.json +13 -0
- package/web-ui/rules/core-code-context/internal-ip.json +13 -0
- package/web-ui/rules/core-code-context/internal-url.json +27 -0
- package/web-ui/rules/core-code-context/localhost-ref.json +13 -0
- package/web-ui/rules/core-code-context/stack-trace.json +13 -0
- package/web-ui/rules/core-financial/credit-card.json +14 -0
- package/web-ui/rules/core-financial/cusip.json +14 -0
- package/web-ui/rules/core-financial/cvv.json +13 -0
- package/web-ui/rules/core-financial/iban.json +17 -0
- package/web-ui/rules/core-financial/paypal.json +14 -0
- package/web-ui/rules/core-financial/routing-number.json +14 -0
- package/web-ui/rules/core-financial/salary.json +23 -0
- package/web-ui/rules/core-financial/swift.json +14 -0
- package/web-ui/rules/core-phi/biometric-ref.json +23 -0
- package/web-ui/rules/core-phi/genetic-data.json +24 -0
- package/web-ui/rules/core-phi/group-id.json +19 -0
- package/web-ui/rules/core-phi/hipaa-identifier.json +13 -0
- package/web-ui/rules/core-phi/icd10-code.json +14 -0
- package/web-ui/rules/core-phi/member-id.json +13 -0
- package/web-ui/rules/core-phi/mrn.json +13 -0
- package/web-ui/rules/core-phi/ndc-code.json +13 -0
- package/web-ui/rules/core-pii/dob.json +18 -0
- package/web-ui/rules/core-pii/drivers-license-us.json +14 -0
- package/web-ui/rules/core-pii/email.json +13 -0
- package/web-ui/rules/core-pii/home-address.json +21 -0
- package/web-ui/rules/core-pii/ip-address.json +13 -0
- package/web-ui/rules/core-pii/mac-address.json +13 -0
- package/web-ui/rules/core-pii/name.json +21 -0
- package/web-ui/rules/core-pii/national-id.json +27 -0
- package/web-ui/rules/core-pii/passport-us.json +17 -0
- package/web-ui/rules/core-pii/phone-intl.json +13 -0
- package/web-ui/rules/core-pii/phone-us.json +17 -0
- package/web-ui/rules/core-pii/ssn.json +13 -0
- package/web-ui/rules/core-pii/vin.json +13 -0
- package/web-ui/rules/core-pii/zip.json +30 -0
- package/web-ui/rules/secrets/anthropic-api-key.json +14 -0
- package/web-ui/rules/secrets/aws-access-key.json +14 -0
- package/web-ui/rules/secrets/aws-secret-key.json +15 -0
- package/web-ui/rules/secrets/azure-connection-string.json +13 -0
- package/web-ui/rules/secrets/cloudflare-api-key.json +15 -0
- package/web-ui/rules/secrets/datadog-key.json +15 -0
- package/web-ui/rules/secrets/digitalocean-token.json +13 -0
- package/web-ui/rules/secrets/discord-token.json +14 -0
- package/web-ui/rules/secrets/gcp-service-account.json +16 -0
- package/web-ui/rules/secrets/github-pat.json +16 -0
- package/web-ui/rules/secrets/gitlab-token.json +14 -0
- package/web-ui/rules/secrets/heroku-api-key.json +14 -0
- package/web-ui/rules/secrets/npm-token.json +14 -0
- package/web-ui/rules/secrets/openai-api-key.json +14 -0
- package/web-ui/rules/secrets/pulumi-access-token.json +14 -0
- package/web-ui/rules/secrets/sendgrid-key.json +14 -0
- package/web-ui/rules/secrets/slack-token.json +13 -0
- package/web-ui/rules/secrets/stripe-live-key.json +14 -0
- package/web-ui/rules/secrets/terraform-cloud-token.json +16 -0
- package/web-ui/rules/secrets/twilio-key.json +13 -0
- package/web-ui/rules/secrets/vault-token.json +14 -0
- package/web-ui/rules/secrets-infra/api-key-header.json +15 -0
- package/web-ui/rules/secrets-infra/basic-auth-header.json +13 -0
- package/web-ui/rules/secrets-infra/basic-auth-url.json +13 -0
- package/web-ui/rules/secrets-infra/bearer-token.json +17 -0
- package/web-ui/rules/secrets-infra/db-connection-string.json +13 -0
- package/web-ui/rules/secrets-infra/docker-config-auth.json +13 -0
- package/web-ui/rules/secrets-infra/env-key-value.json +14 -0
- package/web-ui/rules/secrets-infra/generic-high-entropy-secret.json +18 -0
- package/web-ui/rules/secrets-infra/jwt-token.json +16 -0
- package/web-ui/rules/secrets-infra/kubeconfig-token.json +14 -0
- package/web-ui/rules/secrets-infra/password-field.json +14 -0
- package/web-ui/rules/secrets-infra/pgp-private-key.json +15 -0
- package/web-ui/rules/secrets-infra/ssh-private-key.json +15 -0
- package/web-ui/web-ui/.next/BUILD_ID +1 -1
- package/web-ui/web-ui/.next/app-build-manifest.json +56 -55
- package/web-ui/web-ui/.next/app-path-routes-manifest.json +6 -6
- package/web-ui/web-ui/.next/build-manifest.json +2 -2
- package/web-ui/web-ui/.next/prerender-manifest.json +15 -15
- package/web-ui/web-ui/.next/required-server-files.json +4 -3
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/_not-found/page.js +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 +2 -2
- package/web-ui/web-ui/.next/server/app/index.html +1 -1
- package/web-ui/web-ui/.next/server/app/index.rsc +2 -2
- package/web-ui/web-ui/.next/server/app/page.js +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 +6 -6
- package/web-ui/web-ui/.next/server/chunks/366.js +582 -0
- package/web-ui/web-ui/.next/server/chunks/45.js +1 -1
- package/web-ui/web-ui/.next/server/chunks/461.js +5 -5
- package/web-ui/web-ui/.next/server/chunks/484.js +580 -0
- package/web-ui/web-ui/.next/server/chunks/773.js +4 -4
- package/web-ui/web-ui/.next/server/chunks/900.js +1 -0
- package/web-ui/web-ui/.next/server/chunks/918.js +2 -0
- package/web-ui/web-ui/.next/server/functions-config-manifest.json +5 -5
- package/web-ui/web-ui/.next/server/middleware-manifest.json +5 -5
- 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/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/{24-b20c857178647805.js → 24-55b96836aea5ce23.js} +3 -3
- package/web-ui/web-ui/.next/static/chunks/561-c3388f066f813e17.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/page-0c208c8b275a69ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/page-041187c76bd42461.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/page-481fedcbfb474cef.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-a20e7d7a2f0ad507.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-2cfe42c3dd4833c3.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-849d66cc2cd77cb6.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/page-d33f3999e89c7e77.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-76edd10592ba3cb1.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/layout-d15081016f40ac92.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-50b604f229747240.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-92d1086c8e8ed3bf.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/{page-b9607b5e2e8700d6.js → page-c3c1671d32547619.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/{layout-8b19b03146218dc7.js → layout-40fea3e270a8e120.js} +1 -1
- package/web-ui/web-ui/.next/static/css/43f95c94ecc1bd17.css +2 -0
- package/web-ui/web-ui/package.json +1 -1
- package/web-ui/web-ui/server.js +1 -1
- package/LICENSE +0 -201
- package/web-ui/web-ui/.next/server/chunks/116.js +0 -536
- package/web-ui/web-ui/.next/server/chunks/223.js +0 -534
- package/web-ui/web-ui/.next/server/chunks/226.js +0 -2
- package/web-ui/web-ui/.next/server/chunks/640.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/561-3a19cd28d2b941fa.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/page-f6b1b344709ee48e.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/page-548fa0d3dee6e829.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/page-0bfa1f371b65b5ad.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-56ec5c05f347108a.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-cb33dc32fd3648bf.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-b6fbc540ef0a50f8.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/page-94eb9d838ae00222.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-89cf3ac5a30e76a0.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/layout-a86819fe3aeb2491.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-0d43a6b2acafe349.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-2cf02a09402cfb4d.js +0 -1
- package/web-ui/web-ui/.next/static/css/69dfaec5234c6b99.css +0 -2
- /package/web-ui/web-ui/.next/static/{X9C7-HlMI5zAQEKfIW_6e → unUYwnPVSRwxtrUFgSAxr}/_buildManifest.js +0 -0
- /package/web-ui/web-ui/.next/static/{X9C7-HlMI5zAQEKfIW_6e → unUYwnPVSRwxtrUFgSAxr}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,580 @@
|
|
|
1
|
+
exports.id=484,exports.ids=[484],exports.modules={126:(a,b,c)=>{"use strict";c.d(b,{B5:()=>n,EQ:()=>q,Lp:()=>k,ei:()=>p,gh:()=>f,i9:()=>j,nU:()=>m,oC:()=>e,xE:()=>l,y7:()=>i,zq:()=>o});var d=c(19354);let e=["critical","high","medium","low"],f={secret:"Secret",pii:"PII",source_code:"Source code",external_share:"External share",mcp_server:"MCP server",customer_data:"Customer data",financial:"Financial",phi:"PHI",custom:"Custom"},g={secret:d.RY,pii:d.ny,source_code:d.lo,external_share:d._G,mcp_server:d.RR,customer_data:d.bN,financial:d.bN,phi:d.ny,custom:d.RY},h={secret:"bg-sev-critical-fill text-sev-critical",pii:"bg-sev-low-fill text-sev-low",source_code:"bg-violet-fill text-violet",external_share:"bg-teal-fill text-teal",mcp_server:"bg-sev-high-fill text-sev-high",customer_data:"bg-sev-high-fill text-sev-high",financial:"bg-sev-high-fill text-sev-high",phi:"bg-sev-low-fill text-sev-low",custom:"bg-surface-2 text-text-2"},i=g,j=a=>h[a]??"bg-surface-2 text-text-2",k={blocked:{label:"Blocked",icon:d.pD,className:"bg-sev-critical-fill text-sev-critical"},redacted:{label:"Redacted",icon:d.jZ,className:"bg-primary-tint text-primary"},warned:{label:"Warned",icon:d._0,className:"bg-sev-high-fill text-sev-high"},allowed:{label:"Allowed",icon:d.Sr,className:"bg-ok-fill text-ok"},monitored:{label:"Monitored",icon:d.bM,className:"bg-surface-3 text-text-2"},quarantined:{label:"Quarantined",icon:d.lm,className:"bg-sev-critical-fill text-sev-critical"}};function l(a){return a.file?a.file:a.toolName?`via ${a.toolName}`:"—"}let m=[{id:"severity",header:"Severity"},{id:"subtype",header:"Type"},{id:"sources",header:"Sources"},{id:"locations",header:"Locations"},{id:"action",header:"Action"},{id:"status",header:"Status"},{id:"latest",header:"Latest"}],n={open:{label:"Open",badge:"high"},handled:{label:"Handled",badge:"primary"},resolved:{label:"Resolved",badge:"success"},dismissed:{label:"Dismissed",badge:"default"}},o=[{value:"all",label:"All"},{value:"open",label:"Open"},{value:"handled",label:"Handled"},{value:"resolved",label:"Resolved"},{value:"dismissed",label:"Dismissed"}];function p(a,b){return b&&"all"!==b?a.filter(a=>a.status===b):a}function q(a,b){return b&&"all"!==b?a.filter(a=>a.status===b):a}},1389:(a,b,c)=>{"use strict";c.d(b,{Jy:()=>g,QT:()=>f,hn:()=>e,sp:()=>d.spO,sr:()=>h});var d=c(71653);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"}},3447:(a,b,c)=>{"use strict";c.d(b,{PolicyPicker:()=>f});var d=c(45487),e=c(36820);function f({value:a,onChange:b}){let c=!b;return(0,d.jsx)("div",{className:"inline-flex gap-1 self-start rounded-lg border border-border bg-surface-2 p-0.5"+(c?" opacity-70":""),"aria-disabled":c||void 0,children:e.uR.map(f=>{let g=(0,e.ES)(f),h=a===f,[i,j]=(0,e.vV)(g.tone),k="gray"===g.tone?"var(--color-surface)":j,l=g.icon;return(0,d.jsxs)("button",{type:"button",disabled:c,onClick:b?()=>{b(f)}:void 0,"aria-pressed":h,className:"inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-semibold "+(c?"cursor-not-allowed ":"cursor-pointer ")+(h?"shadow-sm":"text-text-3"),style:h?{color:i,background:k}:void 0,children:[(0,d.jsx)(l,{"aria-hidden":!0,focusable:!1,className:"size-4"}),g.label]},f)})})}},4053:(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(71653);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=new Date){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=Date.now()){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=new Date){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}},5110:(a,b,c)=>{"use strict";c.d(b,{HD:()=>k,SU:()=>o,UH:()=>n,Wi:()=>m,eV:()=>j,kX:()=>i,xB:()=>l});var d=c(45487),e=c(22747),f=c(19354),g=c(90415);let h={GET:"bg-sev-low-fill text-sev-low",POST:"bg-ok-fill text-ok",PUT:"bg-sev-high-fill text-sev-high",DELETE:"bg-sev-critical-fill text-sev-critical"};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",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"),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({kind:a,trust:b,name:c,host:h,size:i=34}){if("provider"===a){let{short:a,color:b}=(0,g.Lh)(c,h);return(0,d.jsx)("span",{className:"inline-flex shrink-0 items-center justify-center rounded-lg font-display font-semibold text-white",style:{width:i,height:i,background:b,fontSize:.34*i},children:a})}let j={width:.5*i,height:.5*i},k="ip"===a?(0,d.jsx)(f.ts,{"aria-hidden":!0,focusable:!1,style:j}):"unverified"===b?(0,d.jsx)(f.ai,{"aria-hidden":!0,focusable:!1,style:j}):(0,d.jsx)(f.RR,{"aria-hidden":!0,focusable:!1,style:j});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:i,height:i},children:k})}function n({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 o(){return(0,d.jsxs)(e.Ex,{variant:"default",children:[(0,d.jsx)(f.cZ,{"aria-hidden":!0,focusable:!1,className:"size-2.5"}),"Template"]})}},5199:(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",bg:"bg-ok-fill",bar:"bg-ok",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",desc:"Allowed only to approved, governed models."},blocked:{label:"No LLM",icon:"slash-circle",fg:"text-sev-critical",bg:"bg-sev-critical-fill",bar:"bg-sev-critical",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",bg:"bg-ok-fill",iconBg:"bg-ok",desc:"Reviewed & allow-listed. Agents may call it freely."},risky:{label:"Risky",icon:"alert",tone:"high",fg:"text-sev-high",bg:"bg-sev-high-fill",iconBg:"bg-sev-high",desc:"Allowed, but reaches sensitive systems or external hosts. Use with care."},unapproved:{label:"Unapproved",icon:"x-circle",tone:"critical",fg:"text-sev-critical",bg:"bg-sev-critical-fill",iconBg:"bg-sev-critical",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",bg:"bg-violet-fill"},mcp:{type:"mcp",label:"MCP servers",icon:"server",fg:"text-teal",bg:"bg-teal-fill"},hook:{type:"hook",label:"Hooks",icon:"route",fg:"text-sev-low",bg:"bg-sev-low-fill"},config:{type:"config",label:"Configuration",icon:"sliders",fg:"text-teal",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",bg:"bg-sev-critical-fill"},redact:{label:"Redacted",icon:"redact",tone:"teal",fg:"text-teal",bg:"bg-teal-fill"},warn:{label:"Warned",icon:"alert",tone:"high",fg:"text-sev-high",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.`}},6492:(a,b,c)=>{"use strict";c.d(b,{PolicyDetailView:()=>m,PolicyListView:()=>l,PolicyStatsView:()=>j});var d=c(45487),e=c(22747),f=c(36820),g=c(19354),h=c(18516);function i(a){return void 0===a?"—":String(a)}function j({stats:a,loading:b=!1}){return(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 xl:grid-cols-4",children:[(0,d.jsx)(h.T,{icon:g.iB,iconBg:"var(--color-primary-tint)",iconColor:"var(--color-primary)",label:"Policies",value:i(a?.policies),loading:b}),(0,d.jsx)(h.T,{icon:g.Zu,iconBg:"var(--color-surface-2)",iconColor:"var(--color-text-2)",label:"Built-in",value:i(a?.builtin),loading:b}),(0,d.jsx)(h.T,{icon:g.k3,iconBg:"var(--color-violet-fill)",iconColor:"var(--color-violet)",label:"Custom scripts",value:i(a?.custom),loading:b}),(0,d.jsx)(h.T,{icon:g.kp,iconBg:"var(--color-ok-fill)",iconColor:"var(--color-ok)",label:"Detections governed",value:i(a?.detectionsGoverned),loading:b})]})}function k({policy:a,selected:b,onSelect:c}){let{icon:h,tone:i}=(0,f.ES)(a.id),[j,k]=(0,f.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",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,f.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))})]})]})]})}},10038:(a,b,c)=>{"use strict";c.d(b,{RecommendedActionsCardView:()=>k});var d=c(45487),e=c(22747),f=c(19354),g=c(33159);let h={critical:"bg-sev-critical-fill text-sev-critical",primary:"bg-primary-tint text-primary",teal:"bg-teal-fill text-teal"},i={block_credentials:f.pD,redact_pii:f.jZ,review_external_share:f._G},j={critical:"critical",high:"primary",medium:"teal",low:"teal"};function k({items:a,isLoading:b,error:c,applyAction:k,dismissAction:l,isMutating:m,mutationError:n}){return(0,d.jsxs)(e.Zp,{className:"flex flex-col shadow-sm",children:[(0,d.jsxs)(e.aR,{children:[(0,d.jsx)(e.AG,{className:"bg-primary-tint text-primary",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:"Recommended actions"}),(0,d.jsx)(e.BT,{children:b?"Loading…":`${String(a.length)} prioritized for your environment`})]}),(0,d.jsx)(e.X9,{children:(0,d.jsx)(e.$n,{variant:"ghost",tone:"primary",size:"sm",children:"View all"})})]}),(0,d.jsx)(e.Wu,{"aria-busy":b,children:c?(0,d.jsx)(g.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)(e.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 recommendations right now."}):(0,d.jsxs)(d.Fragment,{children:[n&&(0,d.jsx)(g.rJ,{message:n}),a.map((b,c)=>{let g=i[b.category]??f.rX;return(0,d.jsxs)("div",{className:(0,e.cn)("flex gap-3 py-3",c<a.length-1&&"border-b border-text/6"),children:[(0,d.jsx)("span",{className:(0,e.cn)("flex size-8 shrink-0 items-center justify-center rounded-lg",h[j[b.severity]]),children:(0,d.jsx)(g,{"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)(e.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)(e.$n,{variant:"solid",tone:"primary",size:"sm",disabled:m,onClick:()=>{k(b.id)},children:b.action.label}):b.action.href?(0,d.jsx)(e.$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)(e.$n,{variant:"solid",tone:"primary",size:"sm",disabled:!0,children:b.action.label}),(0,d.jsx)(e.$n,{variant:"ghost",size:"sm",disabled:m,onClick:()=>{l(b.id)},children:"Dismiss"})]})]},b.id)})]})})]})}},10666:(a,b,c)=>{"use strict";c.d(b,{NeedsReviewStripView:()=>i});var d=c(45487),e=c(22747),f=c(19354),g=c(5110),h=c(90415);function i({items:a,open:b,onToggle:c,onReview:i}){return 0===a.length?null:(0,d.jsxs)("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-expanded":b,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 text-white",children:(0,d.jsx)(f._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 px-2 text-xs py-0.5 font-bold text-white",children:a.length}),(0,d.jsx)("span",{className:"text-xs text-text-2",children:"Raw IPs, plaintext transfers & unverified domains"}),(0,d.jsx)(f.D3,{"aria-hidden":!0,focusable:!1,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-1.5 px-3 pb-3",children:a.map(a=>(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)(g.Wi,{kind:a.kind,trust:a.trust,name:a.name,host:a.host,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})]}),(0,d.jsxs)("div",{className:"mt-1.5 flex items-center gap-1.5 text-label text-sev-critical",children:[(0,d.jsx)(f._0,{"aria-hidden":!0,focusable:!1,className:"size-3"}),(0,h.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:()=>{i(a.id)},variant:"ghost",tone:"primary",size:"sm",children:"Review"})]},a.id))})]})}},10847:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f,metadata:()=>e});var d=c(22881);c(81266),c(22873),c(14604),c(17065);let e={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 f({children:a}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsx)("body",{children:a})})}},11335:(a,b,c)=>{"use strict";c.d(b,{FI:()=>ab,KS:()=>a3,tI:()=>a2,Ji:()=>a_,y9:()=>a0,xR:()=>a4});var d=c(77598),e=c(73024),f=c(76760),g=c(79868),h=c(40891);function i(a){return a.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_")}function j(a){return Array.from({length:a},()=>"?").join(", ")}function k(a){return`%${i(a)}%`}function l(a){return`(${a.map(a=>`${a} LIKE ? ESCAPE '\\'`).join(" OR ")})`}let m=0;function n(a,b,c="DEFERRED"){if(a.isTransaction){let c=`aka_sp_${String(m+=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 o(a,b,c="DEFERRED"){let d=a.isTransaction;try{return n(a,b,c),!0}catch(b){if(!a.isTransaction&&d)throw b;return!1}}function p(a){process.stderr.write(`[aka] ${a}
|
|
2
|
+
`)}function q(a,b,c){return void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = ? AND name = ? LIMIT 1").get(b,c)}function r(a,b,c){let d=c?.includeGenerated?"table_xinfo":"table_info";return a.prepare(`PRAGMA ${d}(${b})`).all().map(a=>a.name)}function s(a){return(0,d.createHash)("sha256").update(a).digest("hex")}function t(a){return s((0,h.tTV)(["source_project",a]))}function u(a){return"column"===a.kind?`column ${a.table}.${a.name}`:`table ${a.name}`}let v=[{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 w(a,b){r(a,b).includes("synced_at")||a.exec(`ALTER TABLE ${b} ADD COLUMN synced_at integer`)}let x="aka.db";function y(a){return[`${a}-wal`,`${a}-shm`]}function z(a,b){if(null==a)return b;try{return JSON.parse(a)}catch{return b}}function A(a){if(null!=a)try{let b=JSON.parse(a);if("object"==typeof b&&null!==b)return b}catch{}}function B(a,b){return void 0===b?a.all():Array.isArray(b)?a.all(...b):a.all(b)}function C(a,b){return void 0===b?a.get():Array.isArray(b)?a.get(...b):a.get(b)}function D(a){return 1===a||!0===a}function E(a){let b={};for(let[c,d]of Object.entries(a))b[c]=void 0===d?null:d;return b}function F(a,b,c){return C(a.prepare(b),c)?.n??0}function G(a,b,c){let d=new Map;for(let e of B(a.prepare(b),c))d.set(e.k,e.n);return d}function H(a,b){let c=[];for(let d of a)try{c.push(b(d))}catch{}return c}let I="max(started_at, coalesce(ended_at, started_at))";function J(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return"UTC"}}let K={session:"session",prompt:"prompt",response:"response",tool_call:"tool",hook:"hook",detection:"detection",share:"share",permission:"permission",commit:"commit",error:"error",active:"active"};function L(a){if(!a)return[];let b=z(a,null);return Array.isArray(b)?b:[]}function M(a){let b=h.TUN.safeParse(a);return b.success?b.data:"claudecode"}function N(a,b,c){let d=Math.max(a.started_at,b.lastActivityMs),{status:e,endedAtMs:f}=function(a,b,c){if(a.status){let b=h.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:M(a.harness),title:a.title||a.project||a.repo||`Session ${a.id.slice(0,8)}`,project:a.project??"",repo:a.repo??"",branches:L(a.branches),startedAt:(0,h.q11)(a.started_at),endedAt:null===f?null:(0,h.q11)(f),status:e,turns:b.turns,findings:b.findings,shares:b.shares}}function O(a){let b=K[a.event_type];if(!b)return null;let c=a.severity?h.U7X.safeParse(a.severity):null,d=a.link?h.Itg.safeParse(a.link):null;return{id:a.id,occurredAt:(0,h.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:D(a.internal),flagged:D(a.flagged)}}let P=`
|
|
3
|
+
id,
|
|
4
|
+
event_type,
|
|
5
|
+
started_at,
|
|
6
|
+
coalesce(content, json_extract(attributes, '$.tool_name')) AS title,
|
|
7
|
+
coalesce(json_extract(attributes, '$.detail'), json_extract(attributes, '$.target')) AS detail,
|
|
8
|
+
coalesce(json_extract(attributes, '$.tool_name'), json_extract(attributes, '$.tool')) AS tool,
|
|
9
|
+
json_extract(attributes, '$.severity') AS severity,
|
|
10
|
+
json_extract(attributes, '$.link') AS link,
|
|
11
|
+
json_extract(attributes, '$.targetId') AS target_id,
|
|
12
|
+
json_extract(attributes, '$.internal') AS internal,
|
|
13
|
+
json_extract(attributes, '$.flagged') AS flagged`,Q="event_type = 'session'",R=`EXISTS (
|
|
14
|
+
SELECT 1 FROM audit_events c
|
|
15
|
+
WHERE c.root_session_id = audit_events.id
|
|
16
|
+
AND c.event_type NOT IN ('hook', 'config_scan'))`;class S{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=J();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??J(),this.now()),d=F(this.db,`SELECT count(*) AS n FROM audit_events
|
|
17
|
+
WHERE ${Q} AND started_at >= ? AND started_at < ?
|
|
18
|
+
AND ${R}`,[b,c]),e=this.now()-18e5,f=F(this.db,`SELECT count(*) AS n FROM audit_events s
|
|
19
|
+
WHERE s.event_type = 'session' AND s.ended_at IS NULL
|
|
20
|
+
AND max(
|
|
21
|
+
s.started_at,
|
|
22
|
+
coalesce(
|
|
23
|
+
(SELECT max(${I}) FROM audit_events e WHERE e.root_session_id = s.id),
|
|
24
|
+
s.started_at
|
|
25
|
+
)
|
|
26
|
+
) >= ?`,[e]),g=F(this.db,`SELECT count(*) AS n FROM audit_events
|
|
27
|
+
WHERE event_type = 'tool_call' AND started_at >= ? AND started_at < ?`,[b,c]);return Promise.resolve({sessionsToday:d,liveNow:f,toolCallsToday:g,findingsToday:F(this.db,`SELECT count(*) AS n FROM inspection_findings f
|
|
28
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
29
|
+
WHERE e.started_at >= ? AND e.started_at < ?`,[b,c]),egressToday:F(this.db,`SELECT count(DISTINCT json_extract(attributes, '$.destination')) AS n
|
|
30
|
+
FROM audit_events
|
|
31
|
+
WHERE event_type = 'share' AND started_at >= ? AND started_at < ?`,[b,c])})}listSessions(a){var b;let c=a.cursor?function(a){let b=A(Buffer.from(a,"base64url").toString("utf8"));return void 0!==b&&"startedAtMs"in b&&"id"in b&&"number"==typeof b.startedAtMs&&"string"==typeof b.id?b:null}(a.cursor):null,d=a.to?(0,h.I8t)(a.to):this.now(),e=a.from?(0,h.I8t)(a.from):void 0,f=[Q],g=[];if(a.harness&&a.harness.length>0&&(f.push(`coalesce(json_extract(attributes, '$.harness'), 'claudecode') IN (${j(a.harness.length)})`),g.push(...a.harness)),void 0!==e&&(f.push("started_at >= ?"),g.push(e)),f.push("started_at <= ?"),g.push(d),a.q){let b=k(a.q);f.push(`(content LIKE ? ESCAPE '\\'
|
|
32
|
+
OR json_extract(attributes, '$.project') LIKE ? ESCAPE '\\'
|
|
33
|
+
OR json_extract(attributes, '$.repo') LIKE ? ESCAPE '\\'
|
|
34
|
+
OR json_extract(attributes, '$.branches') LIKE ? ESCAPE '\\'
|
|
35
|
+
OR EXISTS (
|
|
36
|
+
SELECT 1 FROM audit_events d
|
|
37
|
+
WHERE d.root_session_id = audit_events.id
|
|
38
|
+
AND (d.content LIKE ? ESCAPE '\\'
|
|
39
|
+
OR json_extract(d.attributes, '$.detail') LIKE ? ESCAPE '\\')))`),g.push(b,b,b,b,b,b)}let i=F(this.db,`SELECT count(*) AS n FROM audit_events
|
|
40
|
+
WHERE ${[...f,`NOT ${R}`].join(" AND ")}`,g);a.excludeEmpty&&f.push(R),c&&(f.push("(started_at < ? OR (started_at = ? AND id < ?))"),g.push(c.startedAtMs,c.startedAtMs,c.id));let l=a.limit,m=B(this.db.prepare(`SELECT id,
|
|
41
|
+
json_extract(attributes, '$.harness') AS harness,
|
|
42
|
+
content AS title,
|
|
43
|
+
json_extract(attributes, '$.project') AS project,
|
|
44
|
+
json_extract(attributes, '$.repo') AS repo,
|
|
45
|
+
json_extract(attributes, '$.branches') AS branches,
|
|
46
|
+
json_extract(attributes, '$.status') AS status,
|
|
47
|
+
started_at,
|
|
48
|
+
ended_at
|
|
49
|
+
FROM audit_events
|
|
50
|
+
WHERE ${f.join(" AND ")}
|
|
51
|
+
ORDER BY started_at DESC, id DESC
|
|
52
|
+
LIMIT ?`),[...g,l+1]),n=m.length>l,o=n?m.slice(0,l):m,p=this.rollupsFor(o.map(a=>a.id)),q=this.now(),r=o.map(a=>N(a,p.get(a.id)??{turns:0,findings:0,shares:0,lastActivityMs:0},q)),s=o[o.length-1];return Promise.resolve({items:r,nextCursor:n&&s?(b={startedAtMs:s.started_at,id:s.id},Buffer.from(JSON.stringify(b)).toString("base64url")):null,emptyCount:i})}getSession(a){let b=C(this.db.prepare(`SELECT id,
|
|
53
|
+
json_extract(attributes, '$.harness') AS harness,
|
|
54
|
+
content AS title,
|
|
55
|
+
json_extract(attributes, '$.project') AS project,
|
|
56
|
+
json_extract(attributes, '$.repo') AS repo,
|
|
57
|
+
json_extract(attributes, '$.branches') AS branches,
|
|
58
|
+
json_extract(attributes, '$.status') AS status,
|
|
59
|
+
json_extract(attributes, '$.host') AS host,
|
|
60
|
+
json_extract(attributes, '$.cwd') AS cwd,
|
|
61
|
+
json_extract(attributes, '$.models') AS models,
|
|
62
|
+
json_extract(attributes, '$.version') AS version,
|
|
63
|
+
json_extract(attributes, '$.files') AS files,
|
|
64
|
+
started_at,
|
|
65
|
+
ended_at
|
|
66
|
+
FROM audit_events
|
|
67
|
+
WHERE id = ? AND event_type = 'session'
|
|
68
|
+
LIMIT 1`),[a]);if(!b)return Promise.resolve(null);let c=B(this.db.prepare(`SELECT ${P}
|
|
69
|
+
FROM audit_events
|
|
70
|
+
WHERE id = ? OR root_session_id = ?
|
|
71
|
+
ORDER BY started_at ASC, id ASC`),[a,a]).map(O).filter(a=>null!==a),d=C(this.db.prepare(`SELECT
|
|
72
|
+
coalesce(sum(input_tokens), 0) AS input,
|
|
73
|
+
coalesce(sum(output_tokens), 0) AS output,
|
|
74
|
+
coalesce(sum(cache_creation_input_tokens), 0) AS cache_creation,
|
|
75
|
+
coalesce(sum(cache_read_input_tokens), 0) AS cache_read
|
|
76
|
+
FROM audit_events
|
|
77
|
+
WHERE root_session_id = ? AND event_type = 'llm_call'`),[a])??{input:0,output:0,cache_creation:0,cache_read:0},e=C(this.db.prepare(`SELECT model, provider FROM audit_events
|
|
78
|
+
WHERE root_session_id = ? AND event_type = 'llm_call'
|
|
79
|
+
ORDER BY started_at ASC, id ASC
|
|
80
|
+
LIMIT 1`),[a]),f=B(this.db.prepare(`SELECT coalesce(json_extract(attributes, '$.tool_name'), json_extract(attributes, '$.tool')) AS tool,
|
|
81
|
+
count(*) AS n
|
|
82
|
+
FROM audit_events
|
|
83
|
+
WHERE root_session_id = ? AND event_type = 'tool_call'
|
|
84
|
+
GROUP BY coalesce(json_extract(attributes, '$.tool_name'), json_extract(attributes, '$.tool'))`),[a]),g=B(this.db.prepare(`SELECT DISTINCT model FROM audit_events
|
|
85
|
+
WHERE root_session_id = ? AND event_type = 'llm_call' AND model IS NOT NULL AND model <> ''
|
|
86
|
+
ORDER BY model`),[a]).map(a=>a.model),h=F(this.db,`SELECT count(*) AS n FROM audit_events
|
|
87
|
+
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({...N(b,i,this.now()),host:b.host??"",cwd:b.cwd??"",models:g.length>0?g:L(b.models),version:b.version??"",tokens:j,tools:Object.fromEntries(f.flatMap(a=>a.tool?[[a.tool,a.n]]:[])),files:L(b.files),commits:h,events:c})}tokenReports(a){let b=this.readLlmCallLeaves(void 0===a?{}:{fromMs:a});return Promise.resolve((0,h.ryv)(b,h.q_t))}tokenReportForSession(a){return Promise.resolve((0,h.ryv)(this.readLlmCallLeaves({sessionId:a}),h.q_t)[0]??null)}harnessFacets(a){let b=B(this.db.prepare(`SELECT DISTINCT coalesce(json_extract(attributes, '$.harness'), 'claudecode') AS harness
|
|
88
|
+
FROM audit_events WHERE ${Q}${void 0===a?"":" AND started_at >= ?"}`),void 0===a?void 0:[a]),c=new Set;for(let a of b)c.add(M(a.harness));return Promise.resolve([...c])}readLlmCallLeaves(a={}){let b=["event_type = 'llm_call'","attributes IS NOT NULL"],c=[];return void 0!==a.sessionId&&(b.push("root_session_id = ?"),c.push(a.sessionId)),void 0!==a.fromMs&&(b.push("started_at >= ?"),c.push(a.fromMs)),H(B(this.db.prepare(`SELECT root_session_id AS sessionId, attributes
|
|
89
|
+
FROM audit_events
|
|
90
|
+
WHERE ${b.join(" AND ")}`),c).filter(a=>null!==a.sessionId),a=>({sessionId:a.sessionId,attributes:JSON.parse(a.attributes)}))}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=j(a.length);for(let d of B(this.db.prepare(`SELECT root_session_id AS id, max(${I}) AS m FROM audit_events
|
|
91
|
+
WHERE root_session_id IN (${c})
|
|
92
|
+
GROUP BY root_session_id`),a)){if(null===d.id)continue;let a=b.get(d.id);a&&null!==d.m&&(a.lastActivityMs=d.m)}for(let d of B(this.db.prepare(`SELECT root_session_id AS id, count(*) AS n FROM audit_events
|
|
93
|
+
WHERE root_session_id IN (${c}) AND event_type = 'prompt'
|
|
94
|
+
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 B(this.db.prepare(`SELECT root_session_id AS id,
|
|
95
|
+
count(DISTINCT json_extract(attributes, '$.run_key')) AS n
|
|
96
|
+
FROM audit_events
|
|
97
|
+
WHERE root_session_id IN (${c}) AND event_type = 'llm_call'
|
|
98
|
+
AND json_extract(attributes, '$.run_key') IS NOT NULL
|
|
99
|
+
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 B(this.db.prepare(`SELECT e.root_session_id AS id, count(*) AS n FROM inspection_findings f
|
|
100
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
101
|
+
WHERE e.root_session_id IN (${c})
|
|
102
|
+
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 B(this.db.prepare(`SELECT root_session_id AS id,
|
|
103
|
+
count(DISTINCT json_extract(attributes, '$.destination')) AS n
|
|
104
|
+
FROM audit_events
|
|
105
|
+
WHERE root_session_id IN (${c}) AND event_type = 'share'
|
|
106
|
+
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 T{constructor(a){this.db=a,this.insertStmt=a.prepare(`INSERT OR IGNORE INTO audit_events
|
|
107
|
+
(id, parent_id, root_session_id, event_type,
|
|
108
|
+
host_id, harness_id, source_project_id, started_at, ended_at,
|
|
109
|
+
severity, priority, content, content_hash, attributes)
|
|
110
|
+
VALUES
|
|
111
|
+
(:id, :parentId, :rootSessionId, :eventType,
|
|
112
|
+
:hostId, :harnessId, :sourceProjectId, :startedAt, :endedAt,
|
|
113
|
+
:severity, :priority, :content, :contentHash, :attributes)`),this.upsertLlmCallStmt=a.prepare(`INSERT INTO audit_events
|
|
114
|
+
(id, parent_id, root_session_id, event_type,
|
|
115
|
+
host_id, harness_id, source_project_id, started_at, ended_at,
|
|
116
|
+
severity, priority, content, content_hash, attributes)
|
|
117
|
+
VALUES
|
|
118
|
+
(:id, :parentId, :rootSessionId, :eventType,
|
|
119
|
+
:hostId, :harnessId, :sourceProjectId, :startedAt, :endedAt,
|
|
120
|
+
:severity, :priority, :content, :contentHash, :attributes)
|
|
121
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
122
|
+
attributes = excluded.attributes,
|
|
123
|
+
ended_at = excluded.ended_at
|
|
124
|
+
WHERE COALESCE(json_extract(excluded.attributes, '$.output_tokens'), 0)
|
|
125
|
+
> COALESCE(json_extract(audit_events.attributes, '$.output_tokens'), 0)`)}runInTransaction(a){n(this.db,a)}insertAuditEvent(a){let b=(0,h.V9M)(a);this.insertStmt.run(E({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}))}insertLlmCall(a){var b,c;let d=(0,h.I8t)(a.startedAt);if(!Number.isFinite(d))return;let e=(b=a.sessionId,c=a.messageId,s((0,h.tTV)(["audit_event_llm_call",b,c])));this.upsertLlmCallStmt.run(E({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,h.I8t)(a.startedAt);if(!Number.isFinite(d))return;let e=(b=a.sessionId,c=a.toolUseId,s((0,h.tTV)(["audit_event_tool_call",b,c])));this.insertStmt.run(E({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 C(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=A(b.attributes)?.provider;if("string"==typeof c)return c}llmCallLeaves(){return B(this.db.prepare(`SELECT root_session_id AS sessionId, attributes
|
|
126
|
+
FROM audit_events
|
|
127
|
+
WHERE event_type = 'llm_call' AND attributes IS NOT NULL`))}}class U{constructor(a){this.db=a,this.insertStmt=a.prepare(`INSERT OR IGNORE INTO classified_data (id, class, label, attributes)
|
|
128
|
+
VALUES (:id, :class, :label, :attributes)`)}upsert(a){var b;let c=(b=a.class,s((0,h.tTV)(["classified_data",b]))),d=(0,h.$BP)(a,c);return this.insertStmt.run(E({id:d.id,class:d.class,label:d.label,attributes:d.attributes})),c}}function V(a){return C(a.prepare(`SELECT id, started_at, attributes FROM audit_events
|
|
129
|
+
WHERE event_type = 'config_scan'
|
|
130
|
+
ORDER BY started_at DESC, id DESC LIMIT 1`))}class W{constructor(a){this.db=a}report(){let a=V(this.db);if(!a)return{scannedAt:null,skills:[],hooks:[],mcpServers:[],configFiles:[],topics:[]};let b=B(this.db.prepare(`SELECT id, object_type AS objectType, title, location, attributes FROM inventory
|
|
131
|
+
WHERE object_type IN ('skill', 'hook', 'mcp_server', 'config_file') AND last_seen >= :startedAt
|
|
132
|
+
ORDER BY object_type, title`),{startedAt:a.started_at}),c=B(this.db.prepare(`SELECT f.masked_match AS maskedMatch, d.rule_id AS ruleId, d.name AS name
|
|
133
|
+
FROM inspection_findings f
|
|
134
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
135
|
+
WHERE f.audit_event_id = :scanId`),{scanId:a.id}),d=[],e=[],f=[],g=[],h=this.trustOverrides();for(let a of b){let b=A(a.attributes);b&&("skill"===a.objectType?d.push(function(a,b){let c={id:a.id,name:a.title??"(unnamed)",source:X(b.source)??"unknown",scope:X(b.scope)??"unknown",status:"unknown"},d=X(b.description);void 0!==d&&(c.description=d);let e=X(b.version);void 0!==e&&(c.installedVersion=e);let f=X(b.updated_at);return void 0!==f&&(c.updatedAt=f),c}(a,b)):"hook"===a.objectType?e.push(function(a,b,c){let d=X(b.command)??"",e=c.filter(a=>a.maskedMatch===d),f={id:a.id,event:X(b.event)??"unknown",command:d,scope:X(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=X(b.matcher);void 0!==g&&(f.matcher=g);let h=X(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:X(b.scope)??"unknown",transport:X(b.transport)??"unknown",trust:c.get(a.id)??"unapproved"},e=X(b.command);void 0!==e&&(d.command=e);let f=X(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=X(b.plugin_name);void 0!==g&&(d.pluginName=g);let h=X(b.marketplace);void 0!==h&&(d.marketplace=h);let i=X(b.project);return void 0!==i&&(d.project=i),d}(a,b,h)):g.push(function(a,b){let c=X(b.scope)??"unknown",d={id:a.id,name:a.title??"(unnamed)",path:a.location??"",scope:c,kind:X(b.kind)??"Configuration file",untracked:"local"===c},e=X(b.detail);void 0!==e&&(d.detail=e),"number"==typeof b.entry_count&&(d.entryCount=b.entry_count);let f=X(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=A(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=B(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 X(a){return"string"==typeof a?a:void 0}function Y(a){let b=z(a,[]);if(!Array.isArray(b))return[];let c=[];for(let a of b)a&&"object"==typeof a&&c.push(a);return c}function Z(a,b){return a.version!==b.version||a.rulesJson!==b.rulesJson}class ${constructor(a,b=()=>Date.now()){this.db=a,this.now=b}listDetections(a){let b=B(this.db.prepare(`SELECT namespace, pack_id AS packId, version, name, enabled, policy_id AS policyId,
|
|
136
|
+
rules_json AS rulesJson
|
|
137
|
+
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:D(a.enabled),ruleCount:Y(a.rulesJson).length,policyId:a.policyId,...b&&Z(a,b)?{latestVersion:b.version}:{}}});return Promise.resolve((0,h.plk)(d,a))}availableByPack(){return new Map(B(this.db.prepare(`SELECT namespace, pack_id AS packId, version, rules_json AS rulesJson
|
|
138
|
+
FROM available_packs`)).map(a=>[`${a.namespace}/${a.packId}`,a]))}getDetectionStats(){let a=B(this.db.prepare("SELECT enabled, rules_json AS rulesJson FROM installed_packs")),b=0,c=0,d=new Set;for(let e of a){D(e.enabled)&&(c+=1);let a=Y(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,h.pnU)(a);if(!b)return Promise.resolve(null);let{namespace:c,packId:d}=b,e=C(this.db.prepare(`SELECT namespace, pack_id AS packId, version, name, enabled, policy_id AS policyId,
|
|
139
|
+
rules_json AS rulesJson, updated_at AS updatedAt
|
|
140
|
+
FROM installed_packs
|
|
141
|
+
WHERE namespace = ? AND pack_id = ?`),[c,d]);if(!e)return Promise.resolve(null);let f=Y(e.rulesJson),g=f.map(a=>a.id).filter(a=>"string"==typeof a),i=this.countFindingsLast30d(g),j=this.availableByPack().get(`${e.namespace}/${e.packId}`),k=j?Z(e,j)?{available:!0,latestVersion:j.version,latestRuleCount:Y(j.rulesJson).length}:{available:!1,latestVersion:j.version}:null;return Promise.resolve((0,h.a45)({namespace:e.namespace,packId:e.packId,version:e.version,name:e.name,enabled:D(e.enabled),rules:f,updatedAt:new Date(e.updatedAt),policyId:e.policyId},i,k))}countFindingsLast30d(a){if(0===a.length)return 0;let b=this.now()-2592e6,c=j(a.length);return F(this.db,`SELECT count(*) AS n
|
|
142
|
+
FROM findings f JOIN events e ON e.id = f.event_id
|
|
143
|
+
WHERE e.occurred_at >= ? AND f.rule_id IN (${c})`,[b,...a])}}class _{constructor(a){this.db=a,this.insertStmt=a.prepare(`INSERT INTO events (id, source_tool, kind, occurred_at, content_hash, content, metadata)
|
|
144
|
+
VALUES (:id, :sourceTool, :kind, :occurredAt, :contentHash, :content, :metadata)`)}insertEvent(a){let b=(0,h.yaP)(a);this.insertStmt.run(E({id:b.id,sourceTool:b.sourceTool,kind:b.kind,occurredAt:b.occurredAt,contentHash:b.contentHash,content:b.content,metadata:b.metadata}))}contentHashes(){return Promise.resolve(new Set(B(this.db.prepare("SELECT content_hash FROM events")).map(a=>a.content_hash)))}}class aa 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 ab 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 ac=`revoked_at IS NULL
|
|
145
|
+
AND (expires_at IS NULL OR expires_at > :now)
|
|
146
|
+
AND (max_uses IS NULL OR use_count < max_uses)`;class ad{constructor(a){this.db=a,this.consumeStmt=a.prepare(`UPDATE exceptions
|
|
147
|
+
SET use_count = use_count + 1, last_used_at = :now, updated_at = :now
|
|
148
|
+
WHERE id = :id AND ${ac}`),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)
|
|
149
|
+
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,d.randomUUID)(),c=Date.now();try{this.insertExceptionRow(b,a,c)}catch(d){if(!(d instanceof Error&&(2067===d.errcode||d.message.includes("UNIQUE constraint failed"))))throw d;n(this.db,()=>{if(1!==Number(this.db.prepare(`UPDATE exceptions
|
|
150
|
+
SET revoked_at = :now, revoked_by = :revokedBy,
|
|
151
|
+
revoke_reason = 'superseded by a new grant for the same value',
|
|
152
|
+
updated_at = :now
|
|
153
|
+
WHERE rule_id = :ruleId AND value_fingerprint = :valueFingerprint
|
|
154
|
+
AND key_version = :keyVersion AND revoked_at IS NULL
|
|
155
|
+
AND ((expires_at IS NOT NULL AND expires_at <= :now)
|
|
156
|
+
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 aa(a.ruleId);this.insertExceptionRow(b,a,c)},"IMMEDIATE")}let e=C(this.db.prepare("SELECT * FROM exceptions WHERE id = :id"),{id:b});if(void 0===e)throw Error("exception row not found immediately after insert");return ae(e)}insertExceptionRow(a,b,c){this.db.prepare(`INSERT INTO exceptions (
|
|
157
|
+
id, rule_id, category, value_fingerprint, key_version, masked_value,
|
|
158
|
+
scope, expires_at, max_uses, use_count, last_used_at, justification,
|
|
159
|
+
conditions, created_by, created_via, created_at, updated_at
|
|
160
|
+
) VALUES (
|
|
161
|
+
:id, :ruleId, :category, :valueFingerprint, :keyVersion, :maskedValue,
|
|
162
|
+
:scope, :expiresAt, :maxUses, 0, NULL, :justification,
|
|
163
|
+
:conditions, :createdBy, :createdVia, :now, :now
|
|
164
|
+
)`).run({id:a,ruleId:b.ruleId,category:b.category,valueFingerprint:b.valueFingerprint,keyVersion:b.keyVersion,maskedValue:b.maskedValue,scope:b.scope,expiresAt:null===b.expiresAt?null:(0,h.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 ${ac}`;return Promise.resolve(H(B(this.db.prepare(`SELECT * FROM exceptions ${b} ORDER BY created_at DESC, rowid DESC`),a?.includeTerminal?{}:{now:Date.now()}),ae))}getByIdPrefix(a){if(0===a.length)return Promise.resolve(void 0);let b=B(this.db.prepare(String.raw`SELECT * FROM exceptions WHERE id LIKE :pattern ESCAPE '\' LIMIT 2`),{pattern:`${i(a)}%`});if(b.length>1)return Promise.reject(new ab(a));let c=b[0];if(!c)return Promise.resolve(void 0);try{return Promise.resolve(ae(c))}catch{return Promise.resolve(void 0)}}revoke(a,b,c){let d=Date.now();return Promise.resolve(1===Number(this.db.prepare(`UPDATE exceptions
|
|
165
|
+
SET revoked_at = :now, revoked_by = :revokedBy, revoke_reason = :reason, updated_at = :now
|
|
166
|
+
WHERE id = :id AND revoked_at IS NULL`).run({id:a,revokedBy:b,reason:c??null,now:d}).changes))}consume(a,b=Date.now()){return Promise.resolve(1===Number(this.consumeStmt.run({id:a,now:b}).changes))}activeBundleEntries(a,b=Date.now()){return Promise.resolve(H(B(this.db.prepare(`SELECT * FROM exceptions
|
|
167
|
+
WHERE key_version = :keyVersion AND ${ac}
|
|
168
|
+
ORDER BY created_at DESC, rowid DESC`),{keyVersion:a,now:b}),a=>{let b=null===a.conditions?null:JSON.parse(a.conditions);return h.iRC.parse({id:a.id,ruleId:a.rule_id,valueFingerprint:a.value_fingerprint,keyVersion:a.key_version,expiresAt:null===a.expires_at?null:(0,h.q11)(a.expires_at),maxUses:a.max_uses,useCount:a.use_count,conditions:b})}))}recordBlocked(a){let b=Date.now();return this.sweepBlockedStmt.run({cutoff:b-864e5}),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(B(this.db.prepare(`SELECT * FROM blocked_detections
|
|
169
|
+
WHERE blocked_at > :cutoff
|
|
170
|
+
ORDER BY blocked_at DESC, rowid DESC`),{cutoff:Date.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,h.q11)(a.blocked_at)})))}sweepTerminal(a,b=Date.now()){return Promise.resolve(Number(this.db.prepare(`DELETE FROM exceptions
|
|
171
|
+
WHERE updated_at < :cutoff
|
|
172
|
+
AND (revoked_at IS NOT NULL
|
|
173
|
+
OR (expires_at IS NOT NULL AND expires_at <= :now)
|
|
174
|
+
OR (max_uses IS NOT NULL AND use_count >= max_uses))`).run({cutoff:b-a,now:b}).changes))}}function ae(a){let b=null===a.conditions?null:JSON.parse(a.conditions);return h.V8B.parse({id:a.id,ruleId:a.rule_id,category:a.category,valueFingerprint:a.value_fingerprint,keyVersion:a.key_version,maskedValue:a.masked_value,scope:a.scope,expiresAt:null===a.expires_at?null:(0,h.q11)(a.expires_at),maxUses:a.max_uses,useCount:a.use_count,lastUsedAt:null===a.last_used_at?null:(0,h.q11)(a.last_used_at),justification:a.justification,conditions:b,createdBy:a.created_by,createdVia:a.created_via,createdAt:(0,h.q11)(a.created_at),updatedAt:(0,h.q11)(a.updated_at),revokedAt:null===a.revoked_at?null:(0,h.q11)(a.revoked_at),revokedBy:a.revoked_by,revokeReason:a.revoke_reason})}function af(a){return`(
|
|
175
|
+
SELECT fr.status FROM finding_resolution fr
|
|
176
|
+
WHERE fr.finding_key = ${a}.finding_key
|
|
177
|
+
ORDER BY fr.created_at DESC, fr.rowid DESC
|
|
178
|
+
LIMIT 1
|
|
179
|
+
)`}let ag=`(
|
|
180
|
+
SELECT finding_key, status FROM (
|
|
181
|
+
SELECT fr.finding_key, fr.status,
|
|
182
|
+
ROW_NUMBER() OVER (
|
|
183
|
+
PARTITION BY fr.finding_key
|
|
184
|
+
ORDER BY fr.created_at DESC, fr.rowid DESC
|
|
185
|
+
) AS rn
|
|
186
|
+
FROM finding_resolution fr
|
|
187
|
+
) WHERE rn = 1
|
|
188
|
+
)`;function ah(a){return null===a||""===a?[]:a.split(",")}class ai{constructor(a){this.db=a,this.insertStmt=a.prepare(`INSERT INTO findings (id, event_id, rule_id, category, severity, span_start, span_end, masked_match, action_taken, confidence, finding_key, first_detected_at)
|
|
189
|
+
VALUES (:id, :eventId, :ruleId, :category, :severity, :spanStart, :spanEnd, :maskedMatch, :actionTaken, :confidence, :findingKey,
|
|
190
|
+
(SELECT occurred_at FROM events WHERE id = :eventId))
|
|
191
|
+
ON CONFLICT (finding_key) DO UPDATE SET
|
|
192
|
+
event_id = excluded.event_id,
|
|
193
|
+
category = excluded.category,
|
|
194
|
+
severity = excluded.severity,
|
|
195
|
+
span_start = excluded.span_start,
|
|
196
|
+
span_end = excluded.span_end,
|
|
197
|
+
masked_match = excluded.masked_match,
|
|
198
|
+
action_taken = excluded.action_taken,
|
|
199
|
+
confidence = excluded.confidence`),this.sessionDupStmt=a.prepare(`SELECT 1 FROM findings f JOIN events e ON e.id = f.event_id
|
|
200
|
+
WHERE f.rule_id = :ruleId AND f.masked_match = :maskedMatch
|
|
201
|
+
AND json_extract(e.metadata, '$.sessionId') = :sessionId
|
|
202
|
+
LIMIT 1`)}insertFindings(a,b={}){for(let c of a){if(b.sessionId&&this.isSessionDuplicate(c,b.sessionId))continue;let a=(0,h.zw)(c);this.insertStmt.run({id:a.id,eventId:a.eventId,ruleId:a.ruleId,category:a.category,severity:a.severity,spanStart:a.spanStart,spanEnd:a.spanEnd,maskedMatch:a.maskedMatch,actionTaken:a.actionTaken,confidence:a.confidence,findingKey:a.findingKey??null})}}isSessionDuplicate(a,b){return void 0!==this.sessionDupStmt.get({ruleId:a.ruleId,maskedMatch:a.maskedMatch,sessionId:b})}recentFindings(a){let b=a?.limit??50;return Promise.resolve(B(this.db.prepare(`SELECT f.id, f.event_id, f.rule_id, f.category, f.severity, f.masked_match,
|
|
203
|
+
f.action_taken, f.confidence, e.occurred_at, e.source_tool, e.kind
|
|
204
|
+
FROM findings f JOIN events e ON e.id = f.event_id
|
|
205
|
+
ORDER BY e.occurred_at DESC, f.rowid DESC
|
|
206
|
+
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,h.q11)(a.occurred_at),sourceTool:a.source_tool,kind:a.kind})))}sessionFindingsCount(a){return a?Promise.resolve(F(this.db,`SELECT count(*) AS n FROM findings f
|
|
207
|
+
JOIN events e ON e.id = f.event_id
|
|
208
|
+
WHERE json_extract(e.metadata, '$.sessionId') = :sessionId`,{sessionId:a})):Promise.resolve(0)}sessionFirings(a){return Object.fromEntries(G(this.db,`SELECT d.rule_id AS k, count(*) AS n
|
|
209
|
+
FROM inspection_findings f
|
|
210
|
+
JOIN audit_events e ON e.id = f.audit_event_id
|
|
211
|
+
JOIN inspection_definitions d ON d.id = f.inspection_definition_id
|
|
212
|
+
WHERE e.root_session_id = :sessionId
|
|
213
|
+
GROUP BY d.rule_id`,{sessionId:a}))}listGroupedFindings(a){let b=a.sessionId?"WHERE json_extract(e.metadata, '$.sessionId') = :sessionId":"",c=a.sessionId?{sessionId:a.sessionId}:{},d=this.groupAggregates(void 0!==a.q&&""!==a.q,{predicate:b,params:c}),e=B(this.db.prepare(`SELECT id, rule_id, category, severity, masked_match, action_taken, confidence,
|
|
214
|
+
occurred_at, source_tool, repo, file, tool_name, kind, finding_key, latest_status
|
|
215
|
+
FROM (
|
|
216
|
+
SELECT f.id AS id, f.rule_id AS rule_id, f.category AS category,
|
|
217
|
+
f.severity AS severity, f.masked_match AS masked_match,
|
|
218
|
+
f.action_taken AS action_taken, f.confidence AS confidence,
|
|
219
|
+
e.occurred_at AS occurred_at, e.source_tool AS source_tool,
|
|
220
|
+
json_extract(e.metadata, '$.repo') AS repo,
|
|
221
|
+
json_extract(e.metadata, '$.filePath') AS file,
|
|
222
|
+
json_extract(e.metadata, '$.toolName') AS tool_name,
|
|
223
|
+
e.kind AS kind, f.finding_key AS finding_key,
|
|
224
|
+
latest.status AS latest_status,
|
|
225
|
+
ROW_NUMBER() OVER (
|
|
226
|
+
PARTITION BY f.rule_id
|
|
227
|
+
ORDER BY e.occurred_at DESC, f.id DESC
|
|
228
|
+
) AS rn
|
|
229
|
+
FROM findings f
|
|
230
|
+
JOIN events e ON e.id = f.event_id
|
|
231
|
+
LEFT JOIN ${ag} latest
|
|
232
|
+
ON latest.finding_key = f.finding_key
|
|
233
|
+
${b}
|
|
234
|
+
)
|
|
235
|
+
WHERE rn <= :cap
|
|
236
|
+
ORDER BY occurred_at DESC, id DESC`),{cap:200,...c}).map(a=>({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,h.q11)(a.occurred_at),sourceTool:a.source_tool,repo:a.repo??"",file:a.file??"",...null===a.tool_name?{}:{toolName:a.tool_name},status:(0,h.xog)({kind:a.kind,findingKey:a.finding_key,latestResolutionStatus:a.latest_status})})),f=(0,h.mAj)(e,{aggregates:d}),g={severity:a.severity,providers:a.provider,actions:a.action,subtype:a.subtype,q:a.q},i=(0,h.rG)(f,g),j=(0,h.A6E)((0,h.tXp)(f,g)),k={findings:j.reduce((a,b)=>a+b.instanceCount,0),groups:j.length},l=a.limit??h.goN;return Promise.resolve({totals:k,facets:i,items:j.slice(0,l),nextCursor:null,...a.sessionId?{sessionFirings:this.sessionFirings(a.sessionId)}:{}})}groupAggregates(a,b){let c=a?`, group_concat(DISTINCT json_extract(e.metadata, '$.repo')) AS repos,
|
|
237
|
+
group_concat(DISTINCT json_extract(e.metadata, '$.filePath')) AS files,
|
|
238
|
+
group_concat(DISTINCT 'via ' || json_extract(e.metadata, '$.toolName')) AS tool_names`:", NULL AS repos, NULL AS files, NULL AS tool_names";return new Map(this.db.prepare(`SELECT f.rule_id AS rule_id,
|
|
239
|
+
count(*) AS instance_count,
|
|
240
|
+
max(e.occurred_at) AS latest_at,
|
|
241
|
+
group_concat(DISTINCT e.source_tool) AS source_tools,
|
|
242
|
+
group_concat(DISTINCT f.action_taken) AS actions_taken,
|
|
243
|
+
group_concat(DISTINCT (
|
|
244
|
+
e.kind || '|' ||
|
|
245
|
+
(CASE WHEN f.finding_key IS NULL THEN '' ELSE 'k' END) || '|' ||
|
|
246
|
+
coalesce(latest.status, '')
|
|
247
|
+
)) AS status_inputs
|
|
248
|
+
${c}
|
|
249
|
+
FROM findings f
|
|
250
|
+
JOIN events e ON e.id = f.event_id
|
|
251
|
+
LEFT JOIN ${ag} latest
|
|
252
|
+
ON latest.finding_key = f.finding_key
|
|
253
|
+
${b.predicate}
|
|
254
|
+
GROUP BY f.rule_id`).all(b.params).map(b=>[b.rule_id,{instanceCount:b.instance_count,sourceTools:ah(b.source_tools),actionsTaken:ah(b.actions_taken),statusInputs:ah(b.status_inputs).map(a=>{let[b="",c="",d=""]=a.split("|");return{kind:b,findingKey:""===c?null:c,latestResolutionStatus:""===d?null:d}}),latestDetectedAt:(0,h.q11)(b.latest_at),...a?{searchText:[b.repos??"",b.files??"",b.tool_names??""].filter(a=>""!==a).join(" ")}:{}}]))}healthSummary(){let a=F(this.db,"SELECT count(*) AS n FROM findings"),b=Object.fromEntries(h.S8C.map(a=>[a,0]));for(let a of B(this.db.prepare("SELECT action_taken, count(*) AS c FROM findings GROUP BY action_taken")))a.action_taken in b&&(b[a.action_taken]=a.c);let c={critical:0,high:0,medium:0,low:0};for(let a of B(this.db.prepare(`SELECT f.severity AS severity, count(*) AS c
|
|
255
|
+
FROM findings f
|
|
256
|
+
LEFT JOIN ${ag} latest
|
|
257
|
+
ON latest.finding_key = f.finding_key
|
|
258
|
+
WHERE latest.status IS NULL OR latest.status != 'resolved'
|
|
259
|
+
GROUP BY f.severity`)))a.severity in c&&(c[a.severity]=a.c);let d=h.IgC,e=new Set(B(this.db.prepare(`SELECT DISTINCT json_extract(target, '$.category') AS category
|
|
260
|
+
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=B(this.db.prepare(`SELECT date(e.occurred_at / 1000, 'unixepoch') AS day, f.action_taken AS action, count(*) AS c
|
|
261
|
+
FROM findings f JOIN events e ON e.id = f.event_id
|
|
262
|
+
WHERE e.occurred_at >= :since
|
|
263
|
+
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 aj{constructor(a){this.db=a,this.insertStmt=a.prepare(`INSERT OR IGNORE INTO inspection_definitions
|
|
264
|
+
(id, rule_id, name, category, severity, definition, version)
|
|
265
|
+
VALUES
|
|
266
|
+
(:id, :ruleId, :name, :category, :severity, :definition, :version)`)}upsert(a){var b,c;let d=(b=a.ruleId,c=a.version,s((0,h.tTV)(["inspection_definition",b,c]))),e=(0,h.JAl)(a,d);return this.insertStmt.run({id:e.id,ruleId:e.ruleId,name:e.name,category:e.category,severity:e.severity,definition:e.definition,version:e.version}),d}}class ak{constructor(a){this.db=a,this.insertStmt=a.prepare(`INSERT INTO inspection_findings
|
|
267
|
+
(id, audit_event_id, inspection_definition_id, classified_data_id,
|
|
268
|
+
span_start, span_end, masked_match, action_taken, confidence)
|
|
269
|
+
VALUES
|
|
270
|
+
(:id, :auditEventId, :inspectionDefinitionId, :classifiedDataId,
|
|
271
|
+
:spanStart, :spanEnd, :maskedMatch, :actionTaken, :confidence)
|
|
272
|
+
ON CONFLICT(id) DO NOTHING`)}insertFinding(a){let b=(0,h.$3l)(a);this.insertStmt.run(E({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}))}}function al(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 am=h.Jr;function an(a){return a.map(a=>{var b;return`${a.namespace}/${a.packId}@${a.version}#${b=a.rulesJson,(0,d.createHash)("sha1").update(b).digest("hex")}`}).sort().join(",")}function ao(a){let b=/^(\d+)\.(\d+)\.(\d+)/.exec(a);return b?[Number(b[1]),Number(b[2]),Number(b[3])]:null}class ap{constructor(a){this.db=a,this.insertMissingStmt=a.prepare(`INSERT INTO installed_packs (id, namespace, pack_id, version, name, rules_json, enabled, created_at, updated_at)
|
|
273
|
+
VALUES (:id, :namespace, :packId, :version, :name, :rulesJson, 1, :now, :now)
|
|
274
|
+
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)
|
|
275
|
+
VALUES (:id, :namespace, :packId, :version, :name, :rulesJson, :recordedBy, :now)
|
|
276
|
+
ON CONFLICT (namespace, pack_id) DO UPDATE SET
|
|
277
|
+
version = excluded.version,
|
|
278
|
+
name = excluded.name,
|
|
279
|
+
rules_json = excluded.rules_json,
|
|
280
|
+
recorded_by = excluded.recorded_by,
|
|
281
|
+
updated_at = excluded.updated_at
|
|
282
|
+
WHERE available_packs.version <> excluded.version
|
|
283
|
+
OR available_packs.name <> excluded.name
|
|
284
|
+
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")}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()===an(c))return;let e=Date.now();n(this.db,()=>{let a=this.mirrorState(),f=!1;for(let g of c){let c={id:(0,d.randomUUID)(),namespace:g.namespace,packId:g.packId,version:g.version,name:g.name,rulesJson:g.rulesJson,now:e},h=a.get(`${g.namespace}/${g.packId}`);void 0===h||!function(a,b){let c=ao(a.version);if(null===c)return!0;let d=ao(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}(g,h)?this.upsertAvailableStmt.run({...c,id:(0,d.randomUUID)(),recordedBy:b?.recordedBy??null}):f=!0,this.insertMissingStmt.run(c)}f||this.pruneAvailable(c.map(a=>`${a.namespace}/${a.packId}`))},"IMMEDIATE")}catch{}}mirrorState(){return new Map(B(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=z(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=B(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 n(this.db,()=>{this.db.exec("UPDATE _pack_write_gate SET open = 1 WHERE id = 1");let d=this.db.prepare(`UPDATE installed_packs SET
|
|
285
|
+
version = (SELECT a.version FROM available_packs a
|
|
286
|
+
WHERE a.namespace = :namespace AND a.pack_id = :packId),
|
|
287
|
+
name = (SELECT a.name FROM available_packs a
|
|
288
|
+
WHERE a.namespace = :namespace AND a.pack_id = :packId),
|
|
289
|
+
rules_json = (SELECT a.rules_json FROM available_packs a
|
|
290
|
+
WHERE a.namespace = :namespace AND a.pack_id = :packId),
|
|
291
|
+
updated_at = :now
|
|
292
|
+
WHERE namespace = :namespace AND pack_id = :packId
|
|
293
|
+
AND EXISTS (SELECT 1 FROM available_packs a
|
|
294
|
+
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=B(this.db.prepare("SELECT enabled, policy_id AS policyId, rules_json AS rulesJson FROM installed_packs")),b={installedPacks:a.length,enabledPacks:0,rules:[],invalidRules:0,ruleActions:new Map};for(let c of a){let a;if(!D(c.enabled))continue;b.enabledPacks+=1;let d=(0,h.DhA)(c.policyId);try{a=JSON.parse(c.rulesJson)}catch{b.invalidRules+=1;continue}if(!Array.isArray(a)){b.invalidRules+=1;continue}for(let c of a){let a=h.jON.safeParse(c);a.success?(b.rules.push(a.data),b.ruleActions.set(a.data.id,d)):b.invalidRules+=1}}return b}newestRecordedBinary(){let a=B(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!==al(e)&&(null===b||function(a,b){let c=al(a),d=al(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(C(this.db.prepare(`SELECT count(*) AS packs,
|
|
295
|
+
coalesce(sum(json_array_length(rules_json)), 0) AS rules,
|
|
296
|
+
coalesce(sum(enabled), 0) AS enabled
|
|
297
|
+
FROM installed_packs`))??{packs:0,rules:0,enabled:0})}countsByPolicyId(){return G(this.db,`SELECT coalesce(policy_id, '${am}') AS k, count(*) AS n
|
|
298
|
+
FROM installed_packs
|
|
299
|
+
GROUP BY k`)}listByPolicyId(a){return B(this.db.prepare(`SELECT namespace, pack_id AS packId, name, enabled, rules_json AS rulesJson
|
|
300
|
+
FROM installed_packs
|
|
301
|
+
WHERE coalesce(policy_id, '${am}') = ?
|
|
302
|
+
ORDER BY name ASC`),[a]).map(a=>({id:`${a.namespace}/${a.packId}`,name:a.name,ruleCount:Y(a.rulesJson).length,enabled:D(a.enabled)}))}setPolicy(a,b,c){if(null!==c&&!h.HUb.safeParse(c).success)throw Error(`Unknown policy '${c}'. Must be one of: ${h.V0H.join(", ")}.`);return Number(this.db.prepare(`UPDATE installed_packs SET policy_id = :policyId, updated_at = :now
|
|
303
|
+
WHERE namespace = :namespace AND pack_id = :packId`).run({policyId:c,now:Date.now(),namespace:a,packId:b}).changes)>0}setEnabled(a,b,c){return Number(this.db.prepare(`UPDATE installed_packs SET enabled = :enabled, updated_at = :now
|
|
304
|
+
WHERE namespace = :namespace AND pack_id = :packId`).run({enabled:+!!c,now:Date.now(),namespace:a,packId:b}).changes)>0}storedSignature(){return an(B(this.signatureStmt))}}class aq{constructor(a){this.db=a,this.upsertStmt=a.prepare(`INSERT INTO inventory
|
|
305
|
+
(id, object_type, location, title, host_id, attributes, first_seen, last_seen)
|
|
306
|
+
VALUES
|
|
307
|
+
(:id, :objectType, :location, :title, :hostId, :attributes, :firstSeen, :lastSeen)
|
|
308
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
309
|
+
location = excluded.location,
|
|
310
|
+
title = excluded.title,
|
|
311
|
+
host_id = excluded.host_id,
|
|
312
|
+
attributes = excluded.attributes,
|
|
313
|
+
last_seen = excluded.last_seen`)}upsert(a,b=Date.now()){var c,d;let e=(c=a.objectType,d=a.identityKey,s((0,h.tTV)(["inventory",c,d]))),f=(0,h.gzP)(a,e,b);return this.upsertStmt.run(E({id:f.id,objectType:f.objectType,location:f.location,title:f.title,hostId:f.hostId,attributes:f.attributes,firstSeen:f.firstSeen,lastSeen:f.lastSeen})),e}findById(a){return C(this.db.prepare("SELECT * FROM inventory WHERE id = :id"),{id:a})}distinctTitles(a){return B(this.db.prepare(`SELECT DISTINCT title FROM inventory
|
|
314
|
+
WHERE object_type = :objectType AND title IS NOT NULL
|
|
315
|
+
ORDER BY title`),{objectType:a}).map(a=>a.title)}osVersions(){return B(this.db.prepare(`SELECT DISTINCT os_version AS value FROM inventory
|
|
316
|
+
WHERE object_type = 'host' AND os_version IS NOT NULL
|
|
317
|
+
ORDER BY value`)).map(a=>a.value)}}let ar=["config","skill","mcp","hook"],as=new Set(h.SHn.options),at="(url IS NULL OR (url NOT LIKE '%/.claude/worktrees/%' AND url NOT LIKE '%\\.claude\\worktrees\\%'))",au={claudecode:"Claude Code",cursor:"Cursor",codex:"Codex"},av={accessCounts:{open:0,approved:0,blocked:0,total:0},findingsCount:0};function aw(a,b){if(a.provider&&as.has(a.provider))return a.provider;let c=(b.title??"").toLowerCase().replace(/[\s-]/g,"");return c.includes("claudecode")||"claude"===c?"claudecode":c.includes("cursor")?"cursor":c.includes("codex")?"codex":null}function ax(a){return a.some(a=>{let b=z(a.attributes,{});return"sample"!==b.provenance&&"claudecode"===aw(b,a)})}function ay(a){let b={id:a.id,type:a.assetType,name:a.name,sub:a.sub??"",flags:z(a.flagsJson,[])};return"mcp"===a.assetType&&a.effectiveTrust&&(b.trust=a.effectiveTrust),b}function az(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 aA(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:aD(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 aB(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 ${aD(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 aC(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 aD(a,b){return a.length>b?`${a.slice(0,b-1)}…`:a}function aE(a,b,c){let d=z(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 aF(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 aG{constructor(a){this.db=a}getInventoryStats(){let a=G(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=F(this.db,`SELECT count(*) AS n FROM source_project WHERE ${at}`);let c=G(this.db,`SELECT coalesce(o.trust, a.trust) AS k, count(*) AS n
|
|
318
|
+
FROM inventory_asset a
|
|
319
|
+
LEFT JOIN mcp_trust_override o ON o.asset_id = a.id
|
|
320
|
+
WHERE a.asset_type = 'mcp' AND coalesce(o.trust, a.trust) IS NOT NULL
|
|
321
|
+
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=F(this.db,`SELECT count(*) AS n FROM inventory
|
|
322
|
+
WHERE object_type = 'harness'
|
|
323
|
+
AND (last_seen >= :liveSince OR json_extract(attributes, '$.provenance') = 'sample')`,{liveSince:Date.now()-2592e6}),f=F(this.db,"SELECT count(*) AS n FROM inventory_asset WHERE flags_json <> '[]'"),g=F(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=aw(z(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=>z(a.attributes,{}).projectIds??[]))],f=this.fetchProjectsByIds(e),g=this.projectAggregates(e),h=this.configAssetRows(a,ax(b)),i=[];for(let[b,e]of c){let c=e.flatMap(a=>d.get(a.id)??[]),j=e.some(a=>"sample"!==z(a.attributes,{}).provenance)&&"claudecode"===b&&h.length>0?[...c,...h].sort((a,b)=>a.name.localeCompare(b.name)):c;if(a&&0===j.length)continue;let k=e[0];if(!k)continue;let l=z(k.attributes,{}),m=[...new Set(e.flatMap(a=>z(a.attributes,{}).projectIds??[]))].map(a=>f.get(a)).filter(a=>void 0!==a).map(a=>{let b=g.get(a.id)??av;return aE(a,b.accessCounts,b.findingsCount)}),n=e.reduce((a,b)=>a+(z(b.attributes,{}).sessions??0),0),o=j.reduce((a,b)=>a+z(b.flagsJson,[]).length,0),p=new Map;for(let a of j){let b=p.get(a.assetType);b?b.push(ay(a)):p.set(a.assetType,[ay(a)])}let q=ar.filter(a=>p.has(a)).map(a=>({type:a,assets:p.get(a)??[]}));i.push({id:b,label:l.label??au[b],kind:l.kind??l.provider??b,version:l.harness_version??k.harnessVersion??"",sessions:n,assetCount:j.length,flagCount:o,projects:m,categories:q})}return Promise.resolve({items:i})}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 z(a.flagsJson,[]))c.set(b,(c.get(b)??0)+1);let d={type:a,total:b.length,flagRollup:Object.fromEntries(c),items:b.map(ay)};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)=>ar.indexOf(a.type)-ar.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:z(a.flagsJson,[]),description:a.description??null,trust:"mcp"===a.assetType?a.effectiveTrust??null:null,meta:z(a.metaJson,{}),finding:null};if("mcp"===a.assetType&&null!==a.toolsJson){let c=z(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)??av;return aE(a,b.accessCounts,b.findingsCount)})})}getProjectTree(a,b){let c=this.fetchProjectById(a);if(!c)return Promise.resolve(null);let d=z(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(aF)})}if(void 0!==b.q&&""!==b.q)return Promise.resolve({project:e,path:f,files:this.fetchProjectFilesSearch(a,b.q).map(aF)});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(aF)})}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=z(c.attributes,{});return Promise.resolve({...aF(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 e=this.fetchProjectFile(a,b);return!!e&&(c===e.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)
|
|
324
|
+
VALUES (:id, :projectId, :path, :access, :now, :now)
|
|
325
|
+
ON CONFLICT (project_id, path) DO UPDATE SET access = excluded.access, updated_at = excluded.updated_at`).run({id:(0,d.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)
|
|
326
|
+
VALUES (:id, :assetId, :trust, :now, :now)
|
|
327
|
+
ON CONFLICT (asset_id) DO UPDATE SET trust = excluded.trust, updated_at = excluded.updated_at`).run({id:(0,d.randomUUID)(),assetId:a,trust:b,now:Date.now()}),this.configRowsCache=void 0,"ok"):"not_found"}fetchHarnessRows(){return B(this.db.prepare(`SELECT id, title, attributes, harness_version AS harnessVersion
|
|
328
|
+
FROM inventory
|
|
329
|
+
WHERE object_type = 'harness'
|
|
330
|
+
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 (${j(a.length)})`;if(b){let a=k(b);e+=` AND ${l(["a.name","a.sub"])}`,d.push(a,a)}for(let a of B(this.db.prepare(`SELECT ha.harness_id AS harnessInvId, a.id, a.asset_type AS assetType, a.name, a.sub,
|
|
331
|
+
a.description, a.flags_json AS flagsJson, a.meta_json AS metaJson, a.trust,
|
|
332
|
+
a.tools_json AS toolsJson, coalesce(o.trust, a.trust) AS effectiveTrust
|
|
333
|
+
FROM harness_asset ha
|
|
334
|
+
JOIN inventory_asset a ON a.id = ha.asset_id
|
|
335
|
+
LEFT JOIN mcp_trust_override o ON o.asset_id = a.id
|
|
336
|
+
WHERE ${e}
|
|
337
|
+
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 (${j(a.length)})`),d.push(...a)),b){let a=k(b);c.push(l(["a.name","a.sub"])),d.push(a,a)}let e=c.length?`WHERE ${c.join(" AND ")}`:"",f=this.mapAssetRows(B(this.db.prepare(`SELECT a.id, a.asset_type AS assetType, a.name, a.sub, a.description,
|
|
338
|
+
a.flags_json AS flagsJson, a.meta_json AS metaJson, a.trust,
|
|
339
|
+
a.tools_json AS toolsJson, coalesce(o.trust, a.trust) AS effectiveTrust
|
|
340
|
+
FROM inventory_asset a
|
|
341
|
+
LEFT JOIN mcp_trust_override o ON o.asset_id = a.id
|
|
342
|
+
${e}
|
|
343
|
+
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(B(this.db.prepare(`SELECT a.id, a.asset_type AS assetType, a.name, a.sub, a.description,
|
|
344
|
+
a.flags_json AS flagsJson, a.meta_json AS metaJson, a.trust,
|
|
345
|
+
a.tools_json AS toolsJson, coalesce(o.trust, a.trust) AS effectiveTrust
|
|
346
|
+
FROM inventory_asset a
|
|
347
|
+
LEFT JOIN mcp_trust_override o ON o.asset_id = a.id
|
|
348
|
+
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??ax(this.fetchHarnessRows())))return[];let b=this.latestConfigScanId();if(null===b)return[];if(this.configRowsCache?.scanId===b)return this.configRowsCache.rows;let c=new W(this.db).report(),d=[...c.skills.map(az),...c.hooks.map(aA),...c.mcpServers.map(aB),...c.configFiles.map(aC)].sort((a,b)=>a.name.localeCompare(b.name));return this.configRowsCache={scanId:b,rows:d},d}latestConfigScanId(){return V(this.db)?.id??null}fetchProjects(a){let b=`SELECT id, url, name, attributes, last_seen AS lastSeen FROM source_project
|
|
349
|
+
WHERE ${at}`,c=[];if(a){let d=k(a);b+=` AND ${l(["name","url"])}`,c.push(d,d)}return b+=" ORDER BY name ASC",B(this.db.prepare(b),c)}fetchProjectById(a){return C(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 B(this.db.prepare(`SELECT id, url, name, attributes, last_seen AS lastSeen
|
|
350
|
+
FROM source_project WHERE id IN (${j(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 B(this.db.prepare(`SELECT f.project_id AS projectId,
|
|
351
|
+
coalesce(o.access, f.default_access) AS eff,
|
|
352
|
+
count(*) AS n,
|
|
353
|
+
coalesce(sum(f.findings_count), 0) AS findings
|
|
354
|
+
FROM project_file f
|
|
355
|
+
LEFT JOIN file_access_override o ON o.project_id = f.project_id AND o.path = f.path
|
|
356
|
+
WHERE f.project_id IN (${j(a.length)})
|
|
357
|
+
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,
|
|
358
|
+
f.findings_count AS findingsCount, f.blocked_at AS blockedAtMs, f.note,
|
|
359
|
+
coalesce(o.access, f.default_access) AS effectiveAccess,
|
|
360
|
+
o.access AS overrideAccess
|
|
361
|
+
FROM project_file f
|
|
362
|
+
LEFT JOIN file_access_override o ON o.project_id = f.project_id AND o.path = f.path
|
|
363
|
+
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(B(this.db.prepare(this.fileSelect("f.project_id = ? ORDER BY f.path ASC")),[a])):this.mapFileRows(B(this.db.prepare(this.fileSelect("f.project_id = ? AND f.path LIKE ? ESCAPE '\\' ORDER BY f.path ASC")),[a,`${i(b)}/%`]))}fetchProjectFilesSearch(a,b){let c=k(b);return this.mapFileRows(B(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(B(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(B(this.db.prepare(this.fileSelect("f.project_id = ? AND f.path = ?")),[a,b]))[0]??null}}class aH{constructor(a){this.db=a}readPolicies(){return Promise.resolve(H(B(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 h.PEm.parse({id:a.id,scope:a.scope,target:b,action:a.action,enabled:D(a.enabled),customKeywords:c})}))}seedDefaults(){if(F(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)
|
|
364
|
+
VALUES (:id, 'global', :target, :action, 1, :now, :now)`);o(this.db,()=>{for(let[b,c]of Object.entries(h.unw))a.run({id:(0,d.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)
|
|
365
|
+
VALUES (:id, 'global', :target, :action, 1, :now, :now)
|
|
366
|
+
ON CONFLICT(scope, target) DO UPDATE SET action = excluded.action, enabled = 1, updated_at = excluded.updated_at`).run({id:(0,d.randomUUID)(),target:JSON.stringify({category:a}),action:b,now:c})}capCategoryActions(){return Number(this.db.prepare(`UPDATE policies SET action='warn', updated_at=:now
|
|
367
|
+
WHERE scope='global' AND action IN ('block','redact')
|
|
368
|
+
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 aI{constructor(a){this.packs=a}getPolicyList(a){if("custom"===a)return Promise.resolve({items:[]});let b=this.packs.countsByPolicyId();return Promise.resolve({items:h.RRF.map(a=>({id:a,kind:"builtin",name:h.ZpU[a].name,enabled:!0,usedByCount:b.get(a)??0}))})}getPolicyStats(){let a=this.packs.countsByPolicyId(),b=h.V0H.reduce((b,c)=>b+(a.get(c)??0),0),c=h.V0H.length;return Promise.resolve({policies:c,builtin:c,custom:0,detectionsGoverned:b})}getPolicyDetail(a){let b=h.V0H.find(b=>b===a);if(void 0===b)return Promise.resolve(null);let c=h.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 aJ{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
|
|
369
|
+
(id, project_id, path, name, origin, default_access, findings_count, blocked_at, note, created_at, updated_at)
|
|
370
|
+
VALUES
|
|
371
|
+
(:id, :projectId, :path, :name, :origin, :defaultAccess, 0, NULL, NULL, :now, :now)
|
|
372
|
+
ON CONFLICT (project_id, path) DO UPDATE SET
|
|
373
|
+
name = excluded.name,
|
|
374
|
+
origin = excluded.origin,
|
|
375
|
+
default_access = excluded.default_access,
|
|
376
|
+
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 e=Math.max(c,(C(this.maxStampStmt,{projectId:a})?.maxStamp??0)+1);for(let c of b.files)this.upsertStmt.run({id:(0,d.randomUUID)(),projectId:a,path:c.path,name:c.name,origin:c.origin,defaultAccess:c.defaultAccess,now:e});b.truncated||this.pruneStmt.run({projectId:a,now:e})}}class aK{constructor(a,b=()=>Date.now()){this.db=a,this.now=b,this.insertStmt=a.prepare(`INSERT INTO finding_resolution (id, finding_key, status, method, resolved_at, evidence, created_at)
|
|
377
|
+
VALUES (:id, :findingKey, :status, :method, :resolvedAt, :evidence, :createdAt)`),this.latestStmt=a.prepare(`SELECT status, method, resolved_at, evidence
|
|
378
|
+
FROM finding_resolution
|
|
379
|
+
WHERE finding_key = :findingKey
|
|
380
|
+
ORDER BY created_at DESC, rowid DESC
|
|
381
|
+
LIMIT 1`),this.openAtRestStmt=a.prepare(`SELECT DISTINCT f.finding_key AS finding_key
|
|
382
|
+
FROM findings f
|
|
383
|
+
JOIN events e ON e.id = f.event_id
|
|
384
|
+
WHERE e.kind = 'code_change'
|
|
385
|
+
AND json_extract(e.metadata, '$.filePath') = :path
|
|
386
|
+
AND f.finding_key IS NOT NULL
|
|
387
|
+
AND ${af("f")} IS NOT 'resolved'`),this.resolvedAtRestStmt=a.prepare(`SELECT DISTINCT f.finding_key AS finding_key
|
|
388
|
+
FROM findings f
|
|
389
|
+
JOIN events e ON e.id = f.event_id
|
|
390
|
+
WHERE e.kind = 'code_change'
|
|
391
|
+
AND json_extract(e.metadata, '$.filePath') = :path
|
|
392
|
+
AND f.finding_key IS NOT NULL
|
|
393
|
+
AND ${af("f")} = 'resolved'`)}insertResolution(a){this.insertStmt.run({id:(0,d.randomUUID)(),findingKey:a.findingKey,status:h.GCf.parse(a.status),method:h.cqq.parse(a.method),resolvedAt:a.resolvedAt,evidence:a.evidence,createdAt:this.now()})}latestByKey(a){let b=C(this.latestStmt,{findingKey:a});if(b)return{status:b.status,method:b.method,resolvedAt:b.resolved_at,evidence:b.evidence??""}}openAtRestKeysForPath(a){return B(this.openAtRestStmt,{path:a}).map(a=>a.finding_key)}resolvedAtRestKeysForPath(a){return B(this.resolvedAtRestStmt,{path:a}).map(a=>a.finding_key)}}class aL{constructor(a){this.db=a,this.upsertStmt=a.prepare(`INSERT INTO scan_ledger (path, mtime, content_hash, ruleset_hash, scanned_at)
|
|
394
|
+
VALUES (:path, :mtime, :contentHash, :rulesetHash, :scannedAt)
|
|
395
|
+
ON CONFLICT (path) DO UPDATE SET
|
|
396
|
+
mtime = excluded.mtime,
|
|
397
|
+
content_hash = excluded.content_hash,
|
|
398
|
+
ruleset_hash = excluded.ruleset_hash,
|
|
399
|
+
scanned_at = excluded.scanned_at`),this.readStmt=a.prepare(`SELECT path, mtime, content_hash AS contentHash
|
|
400
|
+
FROM scan_ledger WHERE ruleset_hash = :rulesetHash`)}entriesForRuleset(a){return new Map(B(this.readStmt,{rulesetHash:a}).map(a=>[a.path,{mtime:a.mtime,contentHash:a.contentHash}]))}upsertEntries(a){if(0===a.length)return;let b=Date.now();o(this.db,()=>{for(let c of a)this.upsertStmt.run({path:c.path,mtime:c.mtime,contentHash:c.contentHash,rulesetHash:c.rulesetHash,scannedAt:b})})}}let aM=["critical","high","medium","low"],aN={block:"blocked",redact:"redacted",warn:"warned"},aO=["blocked","redacted","warned"],aP=[{provider:"claudecode",coverage:100,supported:!0},{provider:"cursor",coverage:0,supported:!1},{provider:"codex",coverage:0,supported:!1},{provider:"chatgpt",coverage:0,supported:!1},{provider:"copilot",coverage:0,supported:!1},{provider:"api",coverage:0,supported:!1}],aQ={"7d":"day","30d":"day","3m":"week","6m":"week"};function aR(a){return 864e5*Math.floor(a/864e5)}function aS(a){return new Date(a).toISOString().slice(0,10)}class aT{constructor(a,b=()=>Date.now()){this.db=a,this.now=b}severitySummary(){let a=new Map(B(this.db.prepare(`SELECT f.severity AS severity,
|
|
401
|
+
COUNT(*) AS count,
|
|
402
|
+
SUM(CASE
|
|
403
|
+
WHEN e.kind != 'code_change' THEN 1
|
|
404
|
+
WHEN f.finding_key IS NULL THEN 0
|
|
405
|
+
WHEN latest.status = 'resolved' THEN 1
|
|
406
|
+
ELSE 0
|
|
407
|
+
END) AS caught,
|
|
408
|
+
SUM(CASE
|
|
409
|
+
WHEN e.kind = 'code_change'
|
|
410
|
+
AND f.finding_key IS NOT NULL
|
|
411
|
+
AND (latest.status IS NULL OR latest.status != 'resolved') THEN 1
|
|
412
|
+
ELSE 0
|
|
413
|
+
END) AS open_at_rest
|
|
414
|
+
FROM findings f
|
|
415
|
+
JOIN events e ON e.id = f.event_id
|
|
416
|
+
LEFT JOIN ${ag} latest
|
|
417
|
+
ON latest.finding_key = f.finding_key
|
|
418
|
+
GROUP BY f.severity`)).map(a=>[a.severity,a])),b=aM.map(b=>({severity:b,count:a.get(b)?.count??0,caught:a.get(b)?.caught??0,openAtRest:a.get(b)?.open_at_rest??0}));return Promise.resolve({total:b.reduce((a,b)=>a+b.count,0),needsRemediation:b.reduce((a,b)=>a+b.openAtRest,0),bySeverity:b})}scanCoverage(a){return Promise.resolve({range:a,providers:aP.map(a=>({...a}))})}enforcementActions(a){let b=864e5*h.eI7[a],c=this.now(),d=c-b,e=this.findingsInRange(c-2*b,c),f={blocked:0,redacted:0,warned:0},g={blocked:0,redacted:0,warned:0};for(let a of e){let b=aN[a.actionTaken];b&&(a.occurredAt>=d?f[b]++:g[b]++)}let i=aO.map(a=>({kind:a,count:f[a],delta:f[a]-g[a]}));return Promise.resolve({range:a,total:i.reduce((a,b)=>a+b.count,0),actions:i})}findingsTimeseries(a){let b=aQ[a],c=("day"===b?1:7)*864e5,d=h.eI7[a],e="day"===b?d:Math.ceil(d/7),f=this.now(),g=aR(f)-(d-1)*864e5,i=this.findingsInRange(g,f),j=Array.from({length:e},(a,b)=>({timestamp:aS(g+b*c),critical:0,high:0,medium:0}));for(let a of i){let b=j[Math.floor((a.occurredAt-g)/c)];if(b){var k;("critical"===(k=a.severity)||"high"===k||"medium"===k)&&b[a.severity]++}}return Promise.resolve({range:a,granularity:b,points:j})}mttrTrend(a){let b=aQ[a],c=("day"===b?1:7)*864e5,d=h.eI7[a],e="day"===b?d:Math.ceil(d/7),f=this.now(),g=aR(f)-(d-1)*864e5,i=B(this.db.prepare(`SELECT COALESCE(f.first_detected_at, e.occurred_at) AS first_detected_at, f.severity AS severity,
|
|
419
|
+
(
|
|
420
|
+
SELECT fr.status FROM finding_resolution fr
|
|
421
|
+
WHERE fr.finding_key = f.finding_key
|
|
422
|
+
ORDER BY fr.created_at DESC, fr.rowid DESC
|
|
423
|
+
LIMIT 1
|
|
424
|
+
) AS latest_status,
|
|
425
|
+
(
|
|
426
|
+
SELECT fr.method FROM finding_resolution fr
|
|
427
|
+
WHERE fr.finding_key = f.finding_key
|
|
428
|
+
ORDER BY fr.created_at DESC, fr.rowid DESC
|
|
429
|
+
LIMIT 1
|
|
430
|
+
) AS latest_method,
|
|
431
|
+
(
|
|
432
|
+
SELECT fr.resolved_at FROM finding_resolution fr
|
|
433
|
+
WHERE fr.finding_key = f.finding_key
|
|
434
|
+
ORDER BY fr.created_at DESC, fr.rowid DESC
|
|
435
|
+
LIMIT 1
|
|
436
|
+
) AS latest_resolved_at
|
|
437
|
+
FROM findings f JOIN events e ON e.id = f.event_id
|
|
438
|
+
WHERE f.finding_key IS NOT NULL
|
|
439
|
+
AND EXISTS (
|
|
440
|
+
SELECT 1 FROM finding_resolution fr
|
|
441
|
+
WHERE fr.finding_key = f.finding_key
|
|
442
|
+
AND fr.resolved_at >= :windowStart
|
|
443
|
+
)`),{windowStart:g}),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<g||a.latest_resolved_at>=f)continue;let b=Math.floor((a.latest_resolved_at-g)/c);if(b<0||b>=e)continue;let d=`${String(b)}:${a.severity}`,h=Math.max(0,a.latest_resolved_at-a.first_detected_at);j.set(d,(j.get(d)??0)+h),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 aM){let c=`${String(b)}:${a}`,e=k.get(c)??0;d[a]=e>0?(j.get(c)??0)/e:null}return{timestamp:aS(g+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*h.eI7[a];return Promise.resolve({range:a,items:B(this.db.prepare(`SELECT json_extract(e.metadata, '$.repo') AS repo, count(*) AS c
|
|
444
|
+
FROM findings f JOIN events e ON e.id = f.event_id
|
|
445
|
+
WHERE e.occurred_at >= :from AND e.occurred_at < :to
|
|
446
|
+
AND json_extract(e.metadata, '$.repo') IS NOT NULL
|
|
447
|
+
AND json_extract(e.metadata, '$.repo') != ''
|
|
448
|
+
GROUP BY repo
|
|
449
|
+
ORDER BY c DESC, repo
|
|
450
|
+
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:B(this.db.prepare(`SELECT f.finding_key AS finding_key,
|
|
451
|
+
f.rule_id AS rule_id,
|
|
452
|
+
f.severity AS severity,
|
|
453
|
+
json_extract(e.metadata, '$.filePath') AS path,
|
|
454
|
+
COALESCE(f.first_detected_at, e.occurred_at) AS first_detected_at,
|
|
455
|
+
(
|
|
456
|
+
SELECT fr.resolved_at FROM finding_resolution fr
|
|
457
|
+
WHERE fr.finding_key = f.finding_key
|
|
458
|
+
ORDER BY fr.created_at DESC, fr.rowid DESC
|
|
459
|
+
LIMIT 1
|
|
460
|
+
) AS latest_resolved_at
|
|
461
|
+
FROM findings f JOIN events e ON e.id = f.event_id
|
|
462
|
+
WHERE e.kind = 'code_change'
|
|
463
|
+
AND f.finding_key IS NOT NULL
|
|
464
|
+
AND (
|
|
465
|
+
SELECT fr.status FROM finding_resolution fr
|
|
466
|
+
WHERE fr.finding_key = f.finding_key
|
|
467
|
+
ORDER BY fr.created_at DESC, fr.rowid DESC
|
|
468
|
+
LIMIT 1
|
|
469
|
+
) = 'resolved'
|
|
470
|
+
AND (
|
|
471
|
+
SELECT fr.method FROM finding_resolution fr
|
|
472
|
+
WHERE fr.finding_key = f.finding_key
|
|
473
|
+
ORDER BY fr.created_at DESC, fr.rowid DESC
|
|
474
|
+
LIMIT 1
|
|
475
|
+
) = 'fixed-at-source'
|
|
476
|
+
AND (
|
|
477
|
+
SELECT fr.resolved_at FROM finding_resolution fr
|
|
478
|
+
WHERE fr.finding_key = f.finding_key
|
|
479
|
+
ORDER BY fr.created_at DESC, fr.rowid DESC
|
|
480
|
+
LIMIT 1
|
|
481
|
+
) IS NOT NULL
|
|
482
|
+
ORDER BY latest_resolved_at DESC
|
|
483
|
+
LIMIT :limit`),{limit:a}).map(a=>({findingKey:a.finding_key,ruleId:a.rule_id,severity:a.severity,path:a.path??"",resolvedAt:new Date(a.latest_resolved_at).toISOString(),detectedAt:new Date(a.first_detected_at).toISOString()}))})}findingsInRange(a,b){return B(this.db.prepare(`SELECT e.occurred_at AS occurred_at, f.severity AS severity, f.action_taken AS action_taken
|
|
484
|
+
FROM findings f JOIN events e ON e.id = f.event_id
|
|
485
|
+
WHERE e.occurred_at >= :from AND e.occurred_at < :to
|
|
486
|
+
ORDER BY e.occurred_at`),{from:a,to:b}).map(a=>({occurredAt:a.occurred_at,severity:a.severity,actionTaken:a.action_taken}))}}let aU=["provider","internal","ip"];function aV(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 aW(a,b){let c=b.map(a=>a.transport),d=b.map(a=>a.dataClass),e=b.reduce((a,b)=>a+b.callSiteCount,0),f=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,category:a.category,trust:a.trust,status:(0,h.Gw9)(a.trust,a.overrideDecision),isCustom:(0,h.y_0)(a.trust,a.overrideDecision),lastSeen:new Date(f).toISOString(),endpointCount:b.length,callSiteCount:e,transports:(0,h.by7)(c),dataClasses:(0,h.hzO)(d),review:(0,h.Fnc)(a.trust,c),network:"provider"===a.kind?null:z(a.networkJson,null),endpoints:b.map(aV)}}class aX{constructor(a){this.db=a}stats(){let a=F(this.db,"SELECT count(*) AS n FROM share_destination"),b=F(this.db,"SELECT count(*) AS n FROM share_endpoint"),c=F(this.db,"SELECT count(*) AS n FROM share_call_site"),d=F(this.db,"SELECT count(DISTINCT destination_id) AS n FROM share_endpoint WHERE transport = 'http'"),e=F(this.db,`SELECT count(DISTINCT d.id) AS n
|
|
487
|
+
FROM share_destination d
|
|
488
|
+
LEFT JOIN share_endpoint e ON e.destination_id = d.id AND e.transport = 'http'
|
|
489
|
+
WHERE d.trust IN ('unverified', 'ip') OR e.id IS NOT NULL`),f=G(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,ip:f.get("ip")??0},h=G(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=>aW(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:aU.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:aW(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,trust:a.trust,status:a.status,review:a.review,topDataClass:(0,h.C05)(b.map(a=>a.dataClass)),callSiteCount:a.callSiteCount,lastSeen:a.lastSeen})).sort((a,b)=>{let c=(0,h.WSs)(a.review.reasons)-(0,h.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,f=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=f.get(a.endpointId);c?c.push(b):f.set(a.endpointId,[b])}return{id:a.id,kind:a.kind,name:a.name,host:a.host,category:a.category,trust:a.trust,status:(0,h.Gw9)(a.trust,a.overrideDecision),isCustom:(0,h.y_0)(a.trust,a.overrideDecision),lastSeen:new Date(e).toISOString(),transports:(0,h.by7)(d),dataClasses:(0,h.hzO)(b.map(a=>a.dataClass)),review:(0,h.Fnc)(a.trust,d),network:"provider"===a.kind?null:z(a.networkJson,null),note:a.note,endpoints:b.map(a=>({...aV(a),sites:f.get(a.id)??[]}))}}(b,c,d))}setEgressDecision(a,b){return void 0!==this.db.prepare("SELECT 1 FROM share_destination WHERE id = ?").get(a)&&(null===b?this.db.prepare("DELETE FROM egress_decision_override WHERE destination_id = ?").run(a):this.db.prepare(`INSERT INTO egress_decision_override (id, destination_id, decision, created_at, updated_at)
|
|
490
|
+
VALUES (:id, :destinationId, :decision, :now, :now)
|
|
491
|
+
ON CONFLICT (destination_id) DO UPDATE SET
|
|
492
|
+
decision = excluded.decision,
|
|
493
|
+
updated_at = excluded.updated_at`).run({id:(0,d.randomUUID)(),destinationId:a,decision:b,now:Date.now()}),!0)}mapDestRow(a){return{id:a.id,kind:a.kind,name:a.name,host:a.host,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.category, d.trust, d.note,
|
|
494
|
+
d.network_json AS networkJson, d.last_seen AS lastSeenMs,
|
|
495
|
+
d.created_at AS createdAt, o.decision AS overrideDecision`,f=[],g=[];if(b&&b.length>0&&(f.push(`d.kind IN (${j(b.length)})`),g.push(...b)),c&&f.push(`(d.trust IN ('unverified', 'ip')
|
|
496
|
+
OR EXISTS (SELECT 1 FROM share_endpoint re
|
|
497
|
+
WHERE re.destination_id = d.id AND re.transport = 'http'))`),a){let b=k(a);f.push(`(d.name LIKE ? ESCAPE '\\' OR d.category LIKE ? ESCAPE '\\' OR e.url LIKE ? ESCAPE '\\'
|
|
498
|
+
OR c.project LIKE ? ESCAPE '\\' OR c.file LIKE ? ESCAPE '\\')`),g.push(b,b,b,b,b),d=`SELECT DISTINCT ${e}
|
|
499
|
+
FROM share_destination d
|
|
500
|
+
LEFT JOIN egress_decision_override o ON o.destination_id = d.id
|
|
501
|
+
LEFT JOIN share_endpoint e ON e.destination_id = d.id
|
|
502
|
+
LEFT JOIN share_call_site c ON c.endpoint_id = e.id
|
|
503
|
+
${f.length?`WHERE ${f.join(" AND ")}`:""}
|
|
504
|
+
ORDER BY d.created_at ASC, d.id ASC`}else d=`SELECT ${e}
|
|
505
|
+
FROM share_destination d
|
|
506
|
+
LEFT JOIN egress_decision_override o ON o.destination_id = d.id
|
|
507
|
+
${f.length?`WHERE ${f.join(" AND ")}`:""}
|
|
508
|
+
ORDER BY d.created_at ASC, d.id ASC`;return B(this.db.prepare(d),g).map(a=>this.mapDestRow(a))}fetchDestinationById(a){let b=C(this.db.prepare(`SELECT d.id, d.kind, d.name, d.host, d.category, d.trust, d.note,
|
|
509
|
+
d.network_json AS networkJson, d.last_seen AS lastSeenMs,
|
|
510
|
+
o.decision AS overrideDecision
|
|
511
|
+
FROM share_destination d
|
|
512
|
+
LEFT JOIN egress_decision_override o ON o.destination_id = d.id
|
|
513
|
+
WHERE d.id = ?`),[a]);return b?this.mapDestRow(b):null}fetchEndpoints(a){return 0===a.length?[]:B(this.db.prepare(`SELECT e.id, e.destination_id AS destinationId, e.method, e.transport, e.url,
|
|
514
|
+
e.template, e.data_class AS dataClass, e.last_seen AS lastSeenMs,
|
|
515
|
+
count(c.id) AS callSiteCount
|
|
516
|
+
FROM share_endpoint e
|
|
517
|
+
LEFT JOIN share_call_site c ON c.endpoint_id = e.id
|
|
518
|
+
WHERE e.destination_id IN (${j(a.length)})
|
|
519
|
+
GROUP BY e.id
|
|
520
|
+
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?[]:B(this.db.prepare(`SELECT id, endpoint_id AS endpointId, project, file, line, snippet, dynamic, vendored,
|
|
521
|
+
project_id AS projectId
|
|
522
|
+
FROM share_call_site
|
|
523
|
+
WHERE endpoint_id IN (${j(a.length)})
|
|
524
|
+
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 aY{constructor(a){this.db=a,this.upsertStmt=a.prepare(`INSERT INTO source_project
|
|
525
|
+
(id, url, name, attributes, first_seen, last_seen)
|
|
526
|
+
VALUES
|
|
527
|
+
(:id, :url, :name, :attributes, :firstSeen, :lastSeen)
|
|
528
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
529
|
+
url = excluded.url,
|
|
530
|
+
name = excluded.name,
|
|
531
|
+
attributes = excluded.attributes,
|
|
532
|
+
last_seen = excluded.last_seen`)}upsert(a,b=Date.now()){let c=t(a.url),d=(0,h.QCA)(a,c,b);return this.upsertStmt.run(E({id:d.id,url:d.url,name:d.name,attributes:d.attributes,firstSeen:d.firstSeen,lastSeen:d.lastSeen})),c}findById(a){return C(this.db.prepare("SELECT * FROM source_project WHERE id = :id"),{id:a})}distinctNames(){return B(this.db.prepare(`SELECT DISTINCT name FROM source_project
|
|
533
|
+
WHERE name IS NOT NULL
|
|
534
|
+
ORDER BY name`)).map(a=>a.name)}}function aZ(a,b){return b?{...a,hostId:b}:a}function a$(a){let b=new g.DatabaseSync(a);return b.exec("PRAGMA journal_mode = WAL"),b.exec("PRAGMA busy_timeout = 2000"),b.exec("PRAGMA foreign_keys = ON"),b}function a_(a){var b;(0,e.mkdirSync)(a,{recursive:!0,mode:448});try{(0,e.chmodSync)(a,448)}catch{}let c=(0,f.join)(a,x),g=a$(c);if(q(b=g,"table","tenants")||r(b,"events").includes("tenant_id")){g.close();let a=function(a){let b=`${a}.legacy.${String(Date.now())}.bak`;for(let c of((0,e.renameSync)(a,b),y(a)))(0,e.existsSync)(c)&&(0,e.rmSync)(c);return b}(c);g=a$(c),p(`Detected an older, incompatible (tenant-bearing) ${x}; backed it up to ${a} and created a fresh store.`)}!function(a){var b;let c=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 d=new Set(a.prepare("SELECT tag FROM migration_ledger").all().map(a=>a.tag)),e=0===d.size&&c>0,f=a.prepare("INSERT OR IGNORE INTO migration_ledger (tag, applied_at) VALUES (?, ?)");for(let[b,g]of h.lFU.entries()){if(d.has(g.tag))continue;let h=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}(g.sql),i=h.filter(b=>"column"===b.kind?r(a,b.table,{includeGenerated:!0}).includes(b.name):q(a,"table",b.name));if(i.length>0&&i.length<h.length){let a=h.filter(a=>!i.includes(a)),b=`sqlite migration ${g.tag} has no ledger row, but the store already has ${i.map(u).join(", ")} while missing ${a.map(u).join(", ")} — the schema diverged from the migration history; refusing to replay or skip.`;throw p(b),Error(`[aka] ${b}`)}let j=h.length>0?i.length===h.length:e&&b<c,k=/PRAGMA foreign_keys\s*=\s*OFF/i.test(g.sql),l=g.sql.split(/-->\s*statement-breakpoint/).map(a=>a.trim()).filter(a=>a.length>0);k&&a.exec("PRAGMA foreign_keys = OFF");try{n(a,()=>{for(let b of l){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(j)continue}else if(q(a,"index",c))continue;a.exec(b)}if(k&&!j){let b=a.prepare("PRAGMA foreign_key_check").all();if(b.length>0)throw Error(`[aka] sqlite migration ${g.tag} left ${String(b.length)} foreign-key violation(s); rolling back.`)}f.run(g.tag,Date.now())},"IMMEDIATE")}finally{k&&a.exec("PRAGMA foreign_keys = ON")}}c<h.lFU.length&&a.exec(`PRAGMA user_version = ${String(h.lFU.length)}`),w(a,"events"),w(a,"audit_events"),a.exec(`CREATE TABLE IF NOT EXISTS scan_ledger (
|
|
535
|
+
path TEXT PRIMARY KEY,
|
|
536
|
+
mtime TEXT NOT NULL,
|
|
537
|
+
content_hash TEXT NOT NULL,
|
|
538
|
+
ruleset_hash TEXT NOT NULL,
|
|
539
|
+
scanned_at INTEGER NOT NULL
|
|
540
|
+
)`),a.exec(`CREATE TABLE IF NOT EXISTS blocked_detections (
|
|
541
|
+
reference TEXT PRIMARY KEY,
|
|
542
|
+
rule_id TEXT NOT NULL,
|
|
543
|
+
category TEXT NOT NULL,
|
|
544
|
+
value_fingerprint TEXT NOT NULL,
|
|
545
|
+
key_version INTEGER NOT NULL,
|
|
546
|
+
masked_value TEXT NOT NULL,
|
|
547
|
+
session_id TEXT,
|
|
548
|
+
repo TEXT,
|
|
549
|
+
blocked_at INTEGER NOT NULL
|
|
550
|
+
)`),(b=a).exec(`CREATE TABLE IF NOT EXISTS \`_pack_write_gate\` (
|
|
551
|
+
\`id\` integer PRIMARY KEY NOT NULL,
|
|
552
|
+
\`open\` integer DEFAULT 0 NOT NULL,
|
|
553
|
+
CONSTRAINT "ck_pack_write_gate_single_row" CHECK("_pack_write_gate"."id" = 1)
|
|
554
|
+
)`),b.exec("INSERT OR IGNORE INTO _pack_write_gate (id, open) VALUES (1, 0)"),b.exec(`CREATE TRIGGER IF NOT EXISTS trg_installed_packs_write_gate
|
|
555
|
+
BEFORE UPDATE OF version, name, rules_json ON installed_packs
|
|
556
|
+
WHEN (SELECT open FROM _pack_write_gate WHERE id = 1) IS NOT 1
|
|
557
|
+
BEGIN SELECT RAISE(IGNORE); END`),function(a){let b=new Set(r(a,"audit_events",{includeGenerated:!0}));for(let c of v)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
|
|
558
|
+
FROM source_project
|
|
559
|
+
WHERE url IS NOT NULL AND id NOT LIKE 'sample:%'
|
|
560
|
+
ORDER BY last_seen DESC, id`).all().map(a=>({row:a,canonicalId:t(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)
|
|
561
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
562
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
563
|
+
first_seen = min(first_seen, excluded.first_seen),
|
|
564
|
+
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 = ?
|
|
565
|
+
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 = ?");n(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){p(`source_project id reconcile failed: ${String(a)}`)}}(a)}(g);for(let a of[c,...y(c)])try{(0,e.chmodSync)(a,384)}catch{}let j=new _(g),k=new ai(g),l=new aH(g),m=new ap(g),s=new aL(g),z=new ad(g),A=new aK(g),B=new aT(g),C=new $(g),D=new aX(g),E=new aI(m),F=new aq(g),G=new aG(g),H=new aJ(g),I=new S(g),J=new aY(g),K=new T(g),L=new U(g),M=new aj(g),N=new ak(g),O=new W(g);return l.seedDefaults(),{events:j,findings:k,policies:l,installedPacks:m,scanLedger:s,exceptions:z,resolutions:A,security:B,detections:C,shares:D,policyCatalog:E,inventory:F,inventoryAssets:G,activity:I,sourceProject:J,auditEvents:K,classifiedData:L,inspectionDefinitions:M,inspectionFindings:N,recordCapture:function(a,b){o(g,()=>{j.insertEvent(a);let c=a.metadata?.sessionId;k.insertFindings(b,c?{sessionId:c}:{})})},ensureInventory:function(a){let b={};return o(g,()=>{let c=Date.now();a.host&&(b.hostId=F.upsert(a.host,c)),a.harness&&(b.harnessId=F.upsert(aZ(a.harness,b.hostId),c)),b.accountId=F.upsert(aZ({objectType:"user",identityKey:"local",attributes:{source:"local"}},b.hostId),c),a.project&&(b.sourceProjectId=J.upsert(a.project,c))})?b:{}},recordConfigScan:function(a){o(g,()=>{let b=(0,h.I8t)(a.scanEvent.startedAt);for(let c of a.items)F.upsert(c,b);K.insertAuditEvent(a.scanEvent);let c=new Map;for(let b of a.definitions??[])c.set(`${b.ruleId}@${b.version}`,M.upsert(b));for(let b of a.findings??[]){let e=c.get(`${b.ruleId}@${b.version}`);e&&N.insertFinding({id:(0,d.randomUUID)(),auditEventId:a.scanEvent.id,inspectionDefinitionId:e,span:b.span,maskedMatch:b.maskedMatch,actionTaken:b.actionTaken,confidence:b.confidence})}})},recordProjectFiles:function(a,b){0!==b.files.length&&o(g,()=>{H.replaceForProject(a,b,Date.now())})},reconcileWorktreeProjects:function(a,b,c){try{let d=b.split(f.sep).join("/"),e=c.split(f.sep).join("/"),h=c===b?"":"url IN (:worktreePosix, :worktreeWin) OR ",j=g.prepare(`SELECT id FROM source_project
|
|
566
|
+
WHERE id <> :canonicalId
|
|
567
|
+
AND (${h}url LIKE :pattern ESCAPE '\\' OR url LIKE :patternWin ESCAPE '\\')`).all({canonicalId:a,...c===b?{}:{worktreePosix:e,worktreeWin:e.split("/").join("\\")},pattern:`${i(d)}/.claude/worktrees/%`,patternWin:`${i(d.split("/").join("\\"))}\\\\.claude\\\\worktrees\\\\%`});if(0===j.length)return;n(g,()=>{for(let{id:b}of j)g.prepare("UPDATE audit_events SET source_project_id = :canonicalId WHERE source_project_id = :id").run({canonicalId:a,id:b}),g.prepare("UPDATE OR IGNORE file_access_override SET project_id = :canonicalId WHERE project_id = :id").run({canonicalId:a,id:b}),g.prepare("DELETE FROM file_access_override WHERE project_id = :id").run({id:b}),g.prepare("DELETE FROM project_file WHERE project_id = :id").run({id:b}),g.prepare("DELETE FROM source_project WHERE id = :id").run({id:b})})}catch{}},configInventoryReport:()=>O.report(),facets:function(){return{hosts:F.distinctTitles("host"),harnesses:F.distinctTitles("harness"),osVersions:F.osVersions(),projects:J.distinctNames()}},purgeSampleData:()=>{!function(a){try{if(!a.prepare(`SELECT (
|
|
568
|
+
EXISTS(SELECT 1 FROM share_destination WHERE provenance = 'sample')
|
|
569
|
+
OR EXISTS(SELECT 1 FROM audit_events WHERE id LIKE 'sample:activity:%')
|
|
570
|
+
OR EXISTS(SELECT 1 FROM inventory_asset WHERE provenance = 'sample')
|
|
571
|
+
) AS n`).get().n)return;n(a,()=>{a.exec(`DELETE FROM share_call_site WHERE endpoint_id IN (
|
|
572
|
+
SELECT e.id FROM share_endpoint e
|
|
573
|
+
JOIN share_destination d ON d.id = e.destination_id
|
|
574
|
+
WHERE d.provenance = 'sample')`),a.exec(`DELETE FROM egress_decision_override WHERE destination_id IN (
|
|
575
|
+
SELECT id FROM share_destination WHERE provenance = 'sample')`),a.exec(`DELETE FROM share_endpoint WHERE destination_id IN (
|
|
576
|
+
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')
|
|
577
|
+
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 (
|
|
578
|
+
key TEXT PRIMARY KEY,
|
|
579
|
+
value TEXT NOT NULL
|
|
580
|
+
)`),a.exec("DELETE FROM app_meta WHERE key LIKE 'sample_seeded:%'")})}catch{}}(g)},transaction:async function a(a){g.exec("BEGIN");try{let b=await a();return g.exec("COMMIT"),b}catch(a){try{g.exec("ROLLBACK")}catch{}throw a}},close:()=>{g.close()}}}function a0(a){let b;try{b=(0,e.readFileSync)((0,f.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:d,material:g}=c;if("number"!=typeof d||!Number.isInteger(d)||d<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:d,material:h}}c(51455);var a1=c(48161);function a2(){return(0,f.join)((0,a1.homedir)(),".aka")}function a3(a=a2()){return(0,f.join)(a,"data")}function a4(a=a2()){let b=function(a){let b;try{b=(0,e.readFileSync)(a,"utf8")}catch{return null}return A(b)??null}((0,f.join)(function(a=a2()){return(0,f.join)(a,"settings")}(a),"settings.json"));if(!b)return(0,h.i1j)();try{return h.hd_.parse(b)}catch{return(0,h.i1j)()}}},11438:(a,b,c)=>{"use strict";c.d(b,{ActivityTokenUsageView:()=>l});var d=c(45487),e=c(22747),f=c(93578),g=c(19354),h=c(68182),i=c(4053);function j(){return(0,d.jsx)("span",{className:"grid size-8 shrink-0 place-items-center rounded-lg bg-primary-tint text-primary",children:(0,d.jsx)(g.Uy,{"aria-hidden":!0,focusable:!1,className:"size-4"})})}function k({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:"font-mono text-text",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 l({summary:a,isLoading:b,error:c,rangeLabel:l}){let[m,n]=(0,f.useState)(!1);if(c)return(0,d.jsx)(e.Zp,{className:"mb-3.5 shrink-0 px-5 py-3.5 shadow-sm",children:(0,d.jsx)(h.r,{message:c})});if(b&&!a)return(0,d.jsxs)(e.Zp,{className:"mb-3.5 flex shrink-0 items-center gap-2.5 px-5 py-3.5 shadow-sm","aria-busy":!0,children:[(0,d.jsx)(e.EA,{className:"size-8 shrink-0 rounded-lg"}),(0,d.jsx)(e.EA,{className:"h-5 w-64"})]});if(!(null!==a&&a.models.length>0))return(0,d.jsxs)(e.Zp,{className:"mb-3.5 flex shrink-0 items-center gap-2.5 px-5 py-3.5 shadow-sm",children:[(0,d.jsx)(j,{}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:"text-ui font-semibold text-text",children:"Token usage"}),(0,d.jsx)("div",{className:"text-xs text-text-3",children:"No token usage recorded yet — sessions are reconciled as you work."})]})]});let o=`${String(a.sessionCount)} session${1===a.sessionCount?"":"s"}`,p=(0,i.xd)(a.estimatedCostUsd,a.costIsPartial);return(0,d.jsxs)(e.Zp,{className:"mb-3.5 shrink-0 overflow-hidden shadow-sm",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{n(a=>!a)},"aria-expanded":m,"aria-controls":"activity-token-usage-body",className:"flex w-full cursor-pointer items-center gap-2.5 px-5 py-3.5 text-left transition-colors hover:bg-surface-2",children:[(0,d.jsx)(j,{}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-2 gap-y-0.5",children:[(0,d.jsx)("span",{className:"text-ui font-semibold text-text",children:"Token usage"}),l&&(0,d.jsxs)("span",{className:"text-xs text-text-3",children:["\xb7 ",l]})]}),(0,d.jsxs)("div",{className:"mt-0.5 flex flex-wrap items-center gap-x-2.5 gap-y-0.5 text-xs text-text-3",children:[(0,d.jsx)("span",{children:o}),(0,d.jsx)("span",{className:"text-border-strong",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",{className:"text-border-strong",children:"\xb7"}),(0,d.jsx)("span",{className:"font-semibold tabular-nums text-text-2",children:p})]})]}),(0,d.jsx)(g.D3,{"aria-hidden":!0,focusable:!1,className:(0,e.cn)("size-4 shrink-0 text-text-3 transition-transform",m&&"rotate-180")})]}),m&&(0,d.jsxs)("div",{id:"activity-token-usage-body",className:"max-h-64 overflow-y-auto border-t border-border px-2 py-2",children:[(0,d.jsx)(k,{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."})]})]})}},13437:(a,b,c)=>{"use strict";c.d(b,{$F:()=>h,Ai:()=>i,Jk:()=>k,Zp:()=>j});var d=c(45487),e=c(19354),f=c(36820);function g({tone:a,icon:b,children:c,className:e}){let[g,h]=(0,f.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 "+(e??""),style:{color:g,background:h},children:[b&&(0,d.jsx)(b,{"aria-hidden":!0,focusable:!1,className:"size-3"}),c]})}function h({policy:a}){let b=(0,f.ES)(a),[c,e]=(0,f.vV)(b.tone),g=b.icon;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:c,background:e},children:[(0,d.jsx)(g,{"aria-hidden":!0,focusable:!1,className:"size-3"}),b.label]})}function i({origin:a}){let b=f.H9[a];return(0,d.jsx)(g,{tone:b.tone,icon:b.icon,children:b.label})}function j({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",children:[(0,d.jsx)(e.Kp,{"aria-hidden":!0,focusable:!1,className:"size-3"}),a?"Update \xb7 v"+a:"Update"]})}function k({publisher:a,kind:b}){let c=f.jP[b],[e]=(0,f.vV)(c.tone),g=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)(g,{"aria-hidden":!0,focusable:!1,className:"size-3.5 shrink-0",style:{color:e}}),(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:e},children:"✓"})]})}},15571:(a,b,c)=>{Promise.resolve().then(c.bind(c,50467))},16327:(a,b,c)=>{"use strict";c.d(b,{dt:()=>D.AddExceptionForm,fu:()=>E.ApproveExceptionDialog,i5:()=>v.AssetDetail,JR:()=>J.AvailablePluginsCardView,VB:()=>F.BlockedLedgerView,Tc:()=>m.ColumnsMenu,sp:()=>e.sp,MX:()=>M.DataShareDetailView,Im:()=>N.DataSharesTableView,MF:()=>p.DetectionDetailView,A7:()=>q.DetectionsListView,pp:()=>w.EmptyState,Gj:()=>G.ExceptionDetailView,Eb:()=>H.ExceptionsTableView,_G:()=>o._G,nU:()=>n.nU,To:()=>x.FileDetailDrawer,Wj:()=>k.FindingDetailView,oH:()=>l.FindingsTableView,Dm:()=>m.FindingsToolbarView,y2:()=>y.HarnessOverview,mD:()=>z.m,_c:()=>A.InventoryNav,mL:()=>o.mL,wO:()=>r.MatcherModal,t6:()=>O.NeedsReviewStripView,ec:()=>g,LK:()=>u.PolicyDetailView,m$:()=>u.PolicyListView,kL:()=>B.ProjectPane,sJ:()=>C.RecommendedActionsCardView,nZ:()=>I.RotateKeyDialog,WI:()=>o.WI,LO:()=>i.SessionDetailView,md:()=>j.SessionListView,Zu:()=>o.Zu,k3:()=>o.k3,$n:()=>h.TimeRangeSelect,b1:()=>t.UpdateModal,bn:()=>K.UpdateStatusCardView,A3:()=>L.WorkspaceSettingsFormView,uv:()=>o.uv,Xg:()=>s.Xg});var d=c(47398);c(47599);var e=c(1389);c(93577);var f=c(45487);function g({title:a,sub:b,actions:c}){return(0,f.jsxs)("div",{className:"flex items-start justify-between gap-4 pb-6",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("h1",{className:"font-display text-2xl font-semibold text-text",children:a}),b&&(0,f.jsx)("p",{className:"mt-1 text-sm text-text-3",children:b})]}),c&&(0,f.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c})]})}c(29102),c(18516);var h=c(70878);c(68182),c(83798),c(22747),c(93578),c(11438),c(82546),c(79315),c(4053),c(91404),c(61544);var i=c(50988),j=c(22235);c(34275);var k=c(39686),l=c(31592),m=c(58913),n=c(126);c(51549);var o=c(19354);c(13437);var p=c(49658),q=c(96816),r=c(85114),s=c(36820);c(3447),c(55659);var t=c(44753),u=c(6492),v=c(45438),w=c(20080);c(5199);var x=c(84271),y=c(71744),z=c(59287),A=c(64062),B=c(40916);d.l.sevCritical,d.l.sevHigh,d.l.sevMedium,d.l.sevLow,o.pD,d.l.sevCritical,o.jZ,d.l.primary,o.rX,d.l.sevHigh,c(33159),d.l.sevCritical,d.l.sevHigh,d.l.sevMedium,c(59472);var C=c(10038),D=c(82811),E=c(22643);c(45971);var F=c(55417);c(84497);var G=c(29546),H=c(59972);c(35722);var I=c(24743),J=c(62205),K=c(60343),L=c(97813);c(5110);var M=c(79897),N=c(96003);c(90415);var O=c(10666)},17065:()=>{},18516:(a,b,c)=>{"use strict";c.d(b,{T:()=>j});var d=c(45487),e=c(22747),f=c(47398),g=c(93577),h=c(19354);function i({label:a,tone:b="neutral",dir:c}){let f="up"===c?h.Kp:"down"===c?h.ZL:null;return(0,d.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-1 text-xs font-semibold","positive"===b?"text-ok":"negative"===b?"text-sev-critical":"text-text-3"),children:[f&&(0,d.jsx)(f,{"aria-hidden":!0,focusable:!1,className:"size-3"}),a]})}function j({icon:a,iconBg:b,iconColor:c,label:h,value:j,delta:k,spark:l,sparkColor:m,sparkLabels:n,sparkFormatValue:o,loading:p=!1}){return(0,d.jsxs)(e.Zp,{className:"flex flex-col gap-2.5 p-4.5 shadow-sm","aria-busy":p||void 0,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"grid size-8.5 shrink-0 place-items-center rounded-lg",style:{background:b,color:c},children:(0,d.jsx)(a,{"aria-hidden":!0,focusable:!1,className:"size-4.5"})}),(0,d.jsx)("span",{className:"text-ui font-medium text-text-2",children:h})]}),p?(0,d.jsx)(e.EA,{className:"my-1 h-7 w-10"}):(0,d.jsxs)("div",{className:"flex items-end justify-between gap-2",children:[(0,d.jsx)("span",{className:"font-display text-3xl font-semibold leading-none tracking-[-0.03em] text-text",children:j}),k&&(0,d.jsx)(i,{...k})]}),l&&!p&&(0,d.jsx)("div",{className:"mt-0.5",children:(0,d.jsx)(g.Sparkline,{data:l,color:m??f.l.primary,height:34,...n?{labels:n}:{},...o?{formatValue:o}:{}})})]})}},19354:(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,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(45487);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"})})},20080:(a,b,c)=>{"use strict";c.d(b,{AC:()=>k,AJ:()=>n,As:()=>o,EmptyState:()=>i,Kh:()=>q,TJ:()=>s,Vx:()=>m,kx:()=>l,wn:()=>j,yk:()=>r});var d=c(45487),e=c(22747),f=c(5199),g=c(59287);function h({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],h=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",h?(0,e.cn)(f.fg,f.bg):"text-text-3 hover:text-text-2"),children:(0,d.jsx)(g.m,{name:f.icon})},a)})})})}function i({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)(g.m,{name:b,className:"size-4 shrink-0"}),(0,d.jsx)("span",{className:"text-xs",children:a})]})}function j({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 k({order:a,meta:b,value:c,onChange:f,accentOf:h}){return(0,d.jsx)("div",{className:"flex flex-col gap-2",children:a.map(a=>{let i=b[a],j=a===c;return(0,d.jsxs)("button",{type:"button",onClick:()=>{f(a)},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)(i.bg,"border-current",i.fg):"border-border bg-surface"),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",i.fg),children:(0,d.jsx)(g.m,{name:i.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?i.fg:"text-text"),children:i.label}),(0,d.jsx)("div",{className:"mt-0.5 text-xs text-text-2",children:i.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-white",h(i)):"border-border-strong"),children:j&&(0,d.jsx)(g.m,{name:"check",className:"size-3"})})]},a)})})}function l({value:a,onChange:b}){return(0,d.jsx)(h,{order:f.IF,meta:f.Pe,value:a,onChange:b})}function m({value:a}){return(0,d.jsx)("span",{className:(0,e.cn)("min-w-23 whitespace-nowrap text-xs font-semibold",f.Pe[a].fg),children:f.Pe[a].label})}function n({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:f.IF.map(b=>{let e=a[b]/c*100;return e>0?(0,d.jsx)("span",{className:f.Pe[b].bar,style:{width:`${String(e)}%`}},b):null})})}function o({value:a}){let b=f.ZY[a];return(0,d.jsxs)(e.Ex,{variant:b.tone,children:[(0,d.jsx)(g.m,{name:b.icon,className:"size-3"}),b.label]})}function p({flag:a,mini:b}){let c=f.lx[a];return(0,d.jsxs)(e.Ex,{variant:c.tone,children:[(0,d.jsx)(g.m,{name:c.icon,className:b?"size-2.5":"size-3"}),b?c.short:c.label]})}function q({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",children:[(0,d.jsx)(g.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)(p,{flag:a,mini:b},a))})}function r({v:a}){return"public"===a?(0,d.jsxs)(e.Ex,{variant:"success",children:[(0,d.jsx)(g.m,{name:"globe",className:"size-3"})," Public"]}):(0,d.jsxs)(e.Ex,{variant:"default",children:[(0,d.jsx)(g.m,{name:"lock",className:"size-3"})," Private"]})}function s({origin:a}){let b=f.Gb[a];return(0,d.jsxs)(e.Ex,{variant:"default",children:[(0,d.jsx)(g.m,{name:b.icon,className:"size-3"})," ",b.short]})}},22235:(a,b,c)=>{"use strict";c.d(b,{SessionListView:()=>o});var d=c(45487),e=c(22747),f=c(47599),g=c(19354),h=c(29102),i=c(68182),j=c(82546),k=c(4053),l=c(91404);function m({session:a,selected:b,onSelect:c}){let i=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)(j.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-border-strong",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)}),(0,d.jsx)(j.JW,{icon:g.O4,children:(0,k.vV)(a.startedAt,a.endedAt,a.status)}),(0,d.jsxs)(j.JW,{icon:g.kp,children:[a.turns," turns"]}),i&&(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 whitespace-nowrap text-xs font-semibold text-sev-critical",children:[(0,d.jsx)(g.Zu,{"aria-hidden":!0,focusable:!1,className:"size-3"}),a.findings]})]})]})}function n(){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 o({sessions:a,selectedId:b,onSelect:c,query:f,onQuery:h,harness:j,harnessOptions:o,onHarness:p,isLoading:q,error:r,hasMore:s=!1,emptyCount:t=0,showEmpty:u=!1,onToggleEmpty:v}){let w=(0,k.u3)(a),x=""!==f.trim()||j.length>0,y=1===t?"background session":"background sessions",z=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)} ${y}`:`${String(t)} ${y} 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.jsxs)("div",{className:"mb-2 flex h-8.5 items-center gap-2 rounded-lg border border-border bg-surface-2 px-2.5",children:[(0,d.jsx)(g.WI,{"aria-hidden":!0,focusable:!1,className:"size-3.5 shrink-0 text-text-3"}),(0,d.jsx)("input",{value:f,onChange:a=>{h(a.target.value)},placeholder:"Search sessions & events…","aria-label":"Search sessions and events",className:"min-w-0 flex-1 bg-transparent text-sm text-text placeholder:text-text-3 focus:outline-none"})]}),(0,d.jsx)(l.HarnessSelect,{value:j,onChange:p,...o?{options:o}:{}})]}),(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)(i.r,{message:r})}):q&&0===a.length?(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)(n,{}),(0,d.jsx)(n,{}),(0,d.jsx)(n,{})]}):0===w.length?(0,d.jsxs)("div",{className:"py-10 text-center text-sm text-text-3",children:[x?"No sessions match":t>0?"No active sessions in this range":"No sessions recorded yet",z]}):(0,d.jsxs)(d.Fragment,{children:[w.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-text/6"}),(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)(m,{session:a,selected:a.id===b,onSelect:()=>{c(a.id)}},a.id))})]},a.day)),z,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."]})]})})]})}},22643:(a,b,c)=>{"use strict";c.d(b,{ApproveExceptionDialog:()=>h});var d=c(45487),e=c(22747),f=c(93578),g=c(45971);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",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"})]})]})})}},22747:(a,b,c)=>{"use strict";c.d(b,{Ex:()=>j,$n:()=>o,Zp:()=>p,X9:()=>v,Wu:()=>w,BT:()=>u,aR:()=>q,Lc:()=>s,AG:()=>r,ZB:()=>t,lG:()=>y,R4:()=>B,Cf:()=>z,rr:()=>D,Es:()=>E,c7:()=>A,L3:()=>C,rI:()=>H,hO:()=>N,SQ:()=>L,Hr:()=>J,Ht:()=>M,mB:()=>O,ty:()=>I,pd:()=>P,AM:()=>R,hl:()=>T,Wv:()=>S,Iz:()=>V,tR:()=>W,l6:()=>Y,gC:()=>ab,eb:()=>ac,bq:()=>aa,yv:()=>Z,Pt:()=>l,cj:()=>af,h:()=>ag,Fm:()=>ah,qp:()=>ai,EA:()=>aj,dO:()=>al,XI:()=>am,BF:()=>ao,nA:()=>ar,nd:()=>aq,A0:()=>an,Hj:()=>ap,vw:()=>as,cn:()=>h});var d=c(45487),e=c(41079),f=c(46521);let g=(0,c(67257).zu)({extend:{classGroups:{"font-size":[{text:["ui","label"]}]}}});function h(...a){return g((0,f.$)(a))}let i=(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:"bg-surface-3 text-text-2",outline:"border border-border text-text-2",critical:"bg-sev-critical-fill text-sev-critical",high:"bg-sev-high-fill text-sev-high",medium:"bg-sev-medium-fill text-sev-medium",low:"bg-sev-low-fill text-sev-low",success:"bg-ok-fill text-ok",teal:"bg-teal-fill text-teal",primary:"bg-primary-tint text-primary"}},defaultVariants:{variant:"default"}});function j({variant:a,className:b,children:c}){return(0,d.jsx)("span",{className:h(i({variant:a}),b),children:c})}let k={critical:"bg-sev-critical",high:"bg-sev-high",medium:"bg-sev-medium",low:"bg-sev-low"};function l({severity:a}){return(0,d.jsxs)(j,{variant:a,className:"h-6",children:[(0,d.jsx)("span",{className:h("size-1.5 rounded-full",k[a])}),(0,d.jsx)("span",{className:"capitalize",children:a})]})}var m=c(91054);let n=(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 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 text-text-inv 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 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 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 hover:underline"}],defaultVariants:{variant:"solid",tone:"neutral",size:"md"}});function o({className:a,variant:b,tone:c,size:e,asChild:f=!1,type:g,...i}){let j=f?m.DX:"button";return(0,d.jsx)(j,{className:h(n({variant:b,tone:c,size:e}),a),...f?{}:{type:g??"button"},...i})}function p({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card",className:h("rounded-xl border border-border bg-surface",a),...b})}function q({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 r({className:a,...b}){return(0,d.jsx)("span",{"data-slot":"card-icon",className:h("flex size-7.5 shrink-0 items-center justify-center rounded-lg bg-surface-2 text-text-2",a),...b})}function s({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-heading",className:h("min-w-0",a),...b})}function t({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:h("text-sm font-semibold text-text",a),...b})}function u({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:h("text-xs text-text-3",a),...b})}function v({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-action",className:h("ml-auto flex items-center",a),...b})}function w({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:h("p-5",a),...b})}var x=c(32559);let y=x.Root;function z({className:a,children:b,...c}){return(0,d.jsxs)(x.Portal,{children:[(0,d.jsx)(x.Overlay,{"data-slot":"dialog-overlay",className:"fixed inset-0 z-50 bg-ink/40"}),(0,d.jsx)(x.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 A({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 B({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 C({className:a,...b}){return(0,d.jsx)(x.Title,{"data-slot":"dialog-title",className:h("font-display text-base font-semibold text-text",a),...b})}function D({className:a,...b}){return(0,d.jsx)(x.Description,{"data-slot":"dialog-description",className:h("text-xs text-text-3",a),...b})}function E({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-footer",className:h("flex shrink-0 items-center gap-2.5 border-t border-border px-5 py-3.5",a),...b})}x.Trigger,x.Close;var F=c(50941);function G({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 H=F.Root,I=F.Trigger;F.Group;let J=F.RadioGroup,K="flex cursor-pointer select-none items-center gap-2 rounded-md px-2.5 py-1.5 text-sm text-text-2 outline-none focus:bg-surface-2 focus:text-text data-[disabled]:pointer-events-none data-[disabled]:opacity-50";function L({className:a,sideOffset:b=6,...c}){return(0,d.jsx)(F.Portal,{children:(0,d.jsx)(F.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 M({className:a,children:b,...c}){return(0,d.jsxs)(F.RadioItem,{className:h(K,"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)(F.ItemIndicator,{children:(0,d.jsx)(G,{className:"size-4 text-primary"})})]})}function N({className:a,children:b,...c}){return(0,d.jsxs)(F.CheckboxItem,{className:h(K,"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 group-data-[state=checked]:bg-primary",children:(0,d.jsx)(F.ItemIndicator,{children:(0,d.jsx)(G,{className:"size-3"})})}),(0,d.jsx)("span",{className:"flex-1",children:b})]})}function O({className:a,...b}){return(0,d.jsx)(F.Separator,{className:h("-mx-1 my-1 h-px bg-border",a),...b})}function P({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 bg-surface px-3 text-sm text-text","truncate placeholder:text-text-3 transition-colors","focus:border-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/40","disabled:cursor-not-allowed disabled:opacity-50",a),...c})}var Q=c(18282);let R=Q.Root,S=Q.Trigger;function T({className:a,align:b="start",sideOffset:c=6,collisionPadding:e=8,...f}){return(0,d.jsx)(Q.Portal,{children:(0,d.jsx)(Q.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})})}Q.Close,Q.Anchor;var U=c(62565);function V({className:a,...b}){return(0,d.jsx)(U.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 W({className:a,...b}){return(0,d.jsx)(U.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 X=c(72193);let Y=X.Root;X.Group;let Z=X.Value;function $({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 _({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 aa({className:a,children:b,...c}){return(0,d.jsxs)(X.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 bg-surface px-3 text-sm text-text","transition-colors focus:border-primary focus:outline-none 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)(X.Icon,{asChild:!0,children:(0,d.jsx)($,{className:"size-4 shrink-0 text-text-3"})})]})}function ab({className:a,children:b,position:c="popper",sideOffset:e=6,...f}){return(0,d.jsx)(X.Portal,{children:(0,d.jsxs)(X.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)(ad,{}),(0,d.jsx)(X.Viewport,{className:"p-1",children:b}),(0,d.jsx)(ae,{})]})})}function ac({className:a,children:b,...c}){return(0,d.jsxs)(X.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)(X.ItemText,{children:b}),(0,d.jsx)("span",{className:"absolute right-2.5 flex items-center",children:(0,d.jsx)(X.ItemIndicator,{children:(0,d.jsx)(_,{className:"size-4 text-primary"})})})]})}function ad({className:a,...b}){return(0,d.jsx)(X.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)($,{className:"size-4 rotate-180"})})}function ae({className:a,...b}){return(0,d.jsx)(X.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)($,{className:"size-4"})})}let af=x.Root;function ag({className:a,children:b,...c}){return(0,d.jsxs)(x.Portal,{children:[(0,d.jsx)(x.Overlay,{"data-slot":"sheet-overlay",className:"fixed inset-0 z-40 bg-ink/40 backdrop-blur-[1px]"}),(0,d.jsxs)(x.Content,{"data-slot":"sheet-content",className:h("fixed inset-y-0 right-0 z-50 flex h-full w-full max-w-md flex-col gap-4 overflow-y-auto border-l border-border bg-surface p-6 shadow-lg outline-none",a),...c,children:[b,(0,d.jsxs)(x.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 ah({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"sheet-header",className:h("flex flex-col gap-1 pr-8",a),...b})}function ai({className:a,...b}){return(0,d.jsx)(x.Title,{"data-slot":"sheet-title",className:h("font-display text-lg font-semibold text-text",a),...b})}function aj({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.Trigger,x.Close;var ak=c(77462);function al({className:a,...b}){return(0,d.jsx)(ak.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)(ak.Thumb,{"data-slot":"switch-thumb",className:"pointer-events-none block size-4.5 rounded-full bg-white shadow-sm transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"})})}function am({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 an({className:a,...b}){return(0,d.jsx)("thead",{"data-slot":"table-header",className:h("[&_tr]:border-b [&_tr]:border-border",a),...b})}function ao({className:a,...b}){return(0,d.jsx)("tbody",{"data-slot":"table-body",className:h("[&_tr:last-child]:border-0",a),...b})}function ap({className:a,...b}){return(0,d.jsx)("tr",{"data-slot":"table-row",className:h("border-b border-text/6 transition-colors",a),...b})}function aq({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 ar({className:a,...b}){return(0,d.jsx)("td",{"data-slot":"table-cell",className:h("px-3 py-2 align-middle",a),...b})}function as({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]})}},23358:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(22881),e=c(50467);function f({children:a}){return(0,d.jsx)(e.AppShell,{children:a})}},24743:(a,b,c)=>{"use strict";c.d(b,{ROTATE_CONFIRMATION:()=>g,RotateKeyDialog:()=>h});var d=c(45487),e=c(22747),f=c(93578);let g="rotate";function h({open:a,onOpenChange:b,activePermanent:c,keyVersion:h,onConfirm:i,busy:j,error:k}){let[l,m]=(0,f.useState)("");return(0,d.jsx)(e.lG,{open:a,onOpenChange:a=>{a||m(""),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!==h&&` (v${String(h)} → v${String(h+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",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))})]}),(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 “",g,"” to confirm"]}),(0,d.jsx)(e.pd,{value:l,onChange:a=>{m(a.target.value)},autoComplete:"off"})]}),k&&(0,d.jsx)("p",{className:"text-xs text-sev-critical",children:k})]}),(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:l!==g||j,onClick:()=>{i(l)},children:j?"Rotating…":"Rotate key"})]})]})})}},28471:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,25963,23)),Promise.resolve().then(c.t.bind(c,87274,23)),Promise.resolve().then(c.t.bind(c,88820,23)),Promise.resolve().then(c.t.bind(c,90691,23)),Promise.resolve().then(c.t.bind(c,76739,23)),Promise.resolve().then(c.t.bind(c,1851,23)),Promise.resolve().then(c.t.bind(c,77845,23)),Promise.resolve().then(c.t.bind(c,28690,23)),Promise.resolve().then(c.bind(c,66131))},29102:(a,b,c)=>{"use strict";c.d(b,{K:()=>f,x:()=>e});var d=c(45487);let e={claudecode:{label:"Claude Code",short:"CC",color:"#C96442"},claudedesktop:{label:"Claude Desktop",short:"CD",color:"#A8553A"},cursor:{label:"Cursor",short:"Cu",color:"#252F3D"},windsurf:{label:"Windsurf",short:"Wf",color:"#0B8F7B"},codex:{label:"Codex CLI",short:"Cx",color:"#10A37F"},copilot:{label:"GitHub Copilot",short:"Co",color:"#0581D4"},chatgpt:{label:"ChatGPT",short:"GP",color:"#0d8f6f"},api:{label:"Anthropic API",short:"AP",color:"#6058E9"}};function f({id:a,size:b=24}){let c=e[a];return(0,d.jsx)("span",{className:"flex shrink-0 items-center justify-center rounded-lg font-display font-bold text-white",style:{width:b,height:b,background:c.color,fontSize:.36*b},children:c.short})}},29546:(a,b,c)=>{"use strict";c.d(b,{ExceptionDetailView:()=>k});var d=c(45487),e=c(22747),f=c(93578),g=c(47599),h=c(83798),i=c(45971),j=c(35722);function k({exception:a,onRevoke:b,busy:c,error:k}){let[l,m]=(0,f.useState)(""),n=(0,j.rO)(a);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})]}),(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)}),(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)}`]}),(0,d.jsxs)(h.p,{label:"Created",children:[(0,g.K)(a.createdAt)," by ",a.createdBy," via"," ",j.gi[a.createdVia]]}),(0,d.jsx)(h.p,{label:"Key version",children:String(a.keyVersion)}),(0,d.jsx)(h.p,{label:"Fingerprint",children:(0,d.jsxs)("span",{className:"font-mono text-xs text-text-3",children:[a.valueFingerprint.slice(0,16),"…"]})})]}),(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",children:"Revoked"}),(0,d.jsxs)("p",{className:"text-sm text-text-2",children:[(0,g.K)(a.revokedAt)," by ",a.revokedBy??"unknown",a.revokeReason?` — ${a.revokeReason}`:""]})]}),b&&"active"===n&&(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:l,onChange:a=>{m(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(l.trim())},children:"Revoke"})]}),k&&(0,d.jsx)("p",{className:"mt-2 text-xs text-sev-critical",children:k})]})]})}},31592:(a,b,c)=>{"use strict";c.d(b,{FindingsTableView:()=>l});var d=c(45487),e=c(22747),f=c(93578),g=c(47599),h=c(19354),i=c(34275),j=c(126),k=c(51549);function l({groups:a,columns:b,selection:c,expandedIds:g,onToggleExpand:i,onSelectGroup:k,onSelectInstance:l,hasMore:m=!1,isLoading:n=!1,error:q=null,emptyState:r,sessionFirings:s}){let[t,u]=(0,f.useState)("all"),v=(0,j.ei)(a,t);return(0,d.jsxs)("div",{className:"rounded-xl border border-border bg-surface p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"mb-3 flex items-center justify-end gap-2",children:[(0,d.jsx)("label",{htmlFor:"findings-status-filter",className:"text-xs font-medium text-text-3",children:"Status"}),(0,d.jsx)("select",{id:"findings-status-filter",value:t,onChange:a=>{u(a.target.value)},className:"h-8 rounded-lg border border-border bg-surface px-2 text-sm text-text-2 focus:border-primary focus:outline-none",children:j.zq.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))})]}),q?(0,d.jsxs)("p",{className:"py-8 text-center text-sm text-sev-critical",children:["Error loading findings: ",q]}):n?(0,d.jsx)("p",{className:"py-8 text-center text-sm text-text-3",children:"Loading findings…"}):0===v.length?"all"!==t?(0,d.jsxs)("p",{className:"py-8 text-center text-sm text-text-3",children:["No ",j.B5[t].label.toLowerCase()," findings on this page",m?" — more results may exist beyond the fetched limit.":"."]}):r??(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:[(0,d.jsx)(e.nd,{className:"w-10"}),b.map(a=>(0,d.jsx)(e.nd,{children:a.header},a.id))]})}),(0,d.jsx)(e.BF,{children:v.map(a=>{let m=g.has(a.id),n=c?.finding.id===a.id&&!c.instance;return(0,d.jsxs)(f.Fragment,{children:[(0,d.jsxs)(e.Hj,{onClick:()=>{k(a)},className:(0,e.cn)("cursor-pointer hover:bg-surface-2",n&&"bg-surface-2"),children:[(0,d.jsx)(e.nA,{className:"text-text-3",children:(0,d.jsx)(e.$n,{"aria-label":m?"Collapse":"Expand",onClick:b=>{b.stopPropagation(),i(a.id)},size:"icon",variant:"ghost",children:(0,d.jsx)(h.vK,{className:(0,e.cn)("size-4 transition-transform",m&&"rotate-90")})})}),b.map(b=>(0,d.jsx)(e.nA,{children:o[b.id](a)},b.id))]}),m&&(0,j.EQ)(a.instances,t).map(f=>(0,d.jsxs)(e.Hj,{onClick:()=>{l(a,f)},className:(0,e.cn)("cursor-pointer hover:bg-surface-2",c?.instance?.id===f.id?"bg-surface-2":"bg-surface-2/50"),children:[(0,d.jsx)(e.nA,{}),b.map(b=>(0,d.jsx)(e.nA,{children:p[b.id](a,f)},b.id))]},f.id)),m&&s&&(0,d.jsxs)(e.Hj,{className:"bg-surface-2/50 hover:bg-surface-2/50",children:[(0,d.jsx)(e.nA,{}),(0,d.jsx)(e.nA,{colSpan:b.length,className:"text-xs text-text-3",children:(s[a.id]??0)>0?`Fired ${String(s[a.id])} times in this session's transcript — the session's "triggered" tally counts every firing, this row counts unique values.`:`Caught by live enforcement only — not re-detected in this session's transcript.`})]}),m&&a.instances.length<a.instanceCount&&(0,d.jsxs)(e.Hj,{className:"bg-surface-2/50 hover:bg-surface-2/50",children:[(0,d.jsx)(e.nA,{}),(0,d.jsxs)(e.nA,{colSpan:b.length,className:"text-xs text-text-3",children:["Showing the ",a.instances.length," most recent of ",a.instanceCount," ","locations."]})]})]},a.id)})})]}),m&&("all"===t?(0,d.jsxs)("p",{className:"mt-4 text-center text-xs text-text-3",children:["Showing the first ",a.length," findings — refine the filters to narrow results."]}):(0,d.jsxs)("p",{className:"mt-4 text-center text-xs text-text-3",children:["Showing ",v.length," ",j.B5[t].label.toLowerCase()," ","findings from the first ",a.length," fetched — more may exist beyond the fetched limit."]}))]})}function m({finding:a}){let b=j.y7[a.category]??h.RY;return(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,j.i9)(a.category)),children:(0,d.jsx)(b,{className:"size-4"})}),(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsx)("span",{className:"font-semibold text-text",children:a.subtype}),(0,d.jsx)("span",{className:"block max-w-[20rem] truncate font-mono text-xs text-text-3",title:a.match.maskedValue,children:a.match.maskedValue})]})]})}function n({status:a}){if(!a)return(0,d.jsx)("span",{className:"text-text-3",children:"—"});let b=j.B5[a];return(0,d.jsx)(e.Ex,{variant:b.badge,className:"h-6",children:b.label})}let o={severity:a=>(0,d.jsx)(e.Pt,{severity:a.severity}),subtype:a=>(0,d.jsx)(m,{finding:a}),sources:a=>(0,d.jsx)(k.B,{ids:a.providers}),locations:a=>(0,d.jsxs)("span",{className:"text-text-3",children:[a.instanceCount," locations"]}),action:a=>(0,d.jsx)(i._,{aggregateAction:a.aggregateAction}),status:a=>(0,d.jsx)(n,{status:a.status}),latest:a=>(0,d.jsx)("span",{className:"text-text-3 text-xs",children:(0,g.K)(a.latestDetectedAt)})},p={severity:a=>(0,d.jsx)(e.Pt,{severity:a.severity}),subtype:(a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-2.5 pl-1",children:[(0,d.jsx)("span",{className:"-mt-1.5 size-3.5 shrink-0 rounded-bl border-b-[1.5px] border-l-[1.5px] border-border-strong"}),(0,d.jsxs)("div",{className:"flex flex-col gap-px",children:[(0,d.jsx)("span",{className:"font-semibold text-text text-ui",children:b.repo}),(0,d.jsx)("span",{className:"font-mono text-label text-text-3",children:b.id})]})]}),sources:(a,b)=>(0,d.jsx)(k.i,{provider:b.provider}),locations:(a,b)=>(0,d.jsx)("span",{className:"font-mono text-xs text-text-3 block max-w-[20rem] truncate",title:(0,j.xE)(b),children:(0,j.xE)(b)}),action:(a,b)=>(0,d.jsx)(i.T,{action:b.action}),status:(a,b)=>(0,d.jsx)(n,{status:b.status}),latest:(a,b)=>(0,d.jsx)("span",{className:"text-text-3 text-xs",children:(0,g.K)(b.detectedAt)})}},33159:(a,b,c)=>{"use strict";c.d(b,{AW:()=>e.A,rJ:()=>e.r,jq:()=>d});let d=new Intl.NumberFormat("en-US");var e=c(68182)},33717:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(4494);let e=async a=>[{type:"image/svg+xml",sizes:"any",url:(0,d.fillMetadataSegment)(".",await a.params,"icon.svg")+"?f88cc4549cfe61ae"}]},34275:(a,b,c)=>{"use strict";c.d(b,{T:()=>i,_:()=>j});var d=c(45487),e=c(22747),f=c(19354),g=c(126);let h="rounded-full border-transparent px-2.5 text-xs [&_svg]:size-3.5";function i({action:a}){let b=g.Lp[a],c=b.icon;return(0,d.jsx)(e.vw,{icon:(0,d.jsx)(c,{}),className:(0,e.cn)(h,b.className),children:b.label})}function j({aggregateAction:a}){return a?(0,d.jsx)(i,{action:a}):(0,d.jsx)(e.vw,{icon:(0,d.jsx)(f.mL,{}),className:(0,e.cn)(h,"bg-surface-3 text-text-2"),children:"Mixed"})}},35722:(a,b,c)=>{"use strict";function d(a,b=Date.now()){return null!==a.revokedAt?"revoked":null!==a.maxUses&&a.useCount>=a.maxUses?"consumed":null!==a.expiresAt&&Date.parse(a.expiresAt)<=b?"expired":"active"}c.d(b,{DU:()=>i,gi:()=>g,hv:()=>e,rO:()=>d,rU:()=>h,yr:()=>f});let e={active:"success",consumed:"default",expired:"default",revoked:"critical"},f={once:"Once",temporary:"Temporary",permanent:"Permanent"},g={"cli-approve":"CLI approve","cli-add":"CLI add","web-approve":"Web approve","web-add":"Web add",api:"API","setup-triage":"Setup triage"},h=["once","30m","1h","24h","permanent"],i={once:"Once","30m":"30 min","1h":"1 hour","24h":"24 hours",permanent:"Permanent"}},36820:(a,b,c)=>{"use strict";c.d(b,{ES:()=>l,H9:()=>n,Xg:()=>p,gh:()=>m,jP:()=>o,rE:()=>i,tG:()=>f,uR:()=>k,vV:()=>g,vm:()=>h});var d=c(71653),e=c(19354);let f="monitor";function g(a){return({primary:["var(--color-primary)","var(--color-primary-tint)"],teal:["var(--color-teal)","var(--color-teal-fill)"],green:["var(--color-ok)","var(--color-ok-fill)"],red:["var(--color-sev-critical)","var(--color-sev-critical-fill)"],orange:["var(--color-sev-high)","var(--color-sev-high-fill)"],gray:["var(--color-text-2)","var(--color-surface-3)"],blue:["var(--color-sev-low)","var(--color-sev-low-fill)"],violet:["var(--color-violet)","var(--color-violet-fill)"]})[a]}function h(a){return"regex"===a.type?"/"+a.pattern+"/"+a.flags:"keyword"===a.type?a.keywords.join(" \xb7 "):a.name}let i={regex:{label:"Regex",icon:e.cZ,color:"var(--color-violet)",fill:"var(--color-violet-fill)",blurb:"Pattern match"},keyword:{label:"Keyword",icon:e.Ey,color:"var(--color-teal)",fill:"var(--color-teal-fill)",blurb:"Literal lookup"},validator:{label:"Validator",icon:e.BZ,color:"var(--color-primary)",fill:"var(--color-primary-tint)",blurb:"Checksum / entropy"}},j={monitor:{id:"monitor",label:"Monitor",icon:e.bM,tone:"gray",desc:"Log every match for audit. The request is allowed through untouched."},warn:{id:"warn",label:"Warn",icon:e._0,tone:"orange",desc:"Allow the request, but warn the user inline before it is sent."},redact:{id:"redact",label:"Redact",icon:e.jZ,tone:"primary",desc:"Automatically strip the matched value from the request, then continue."},block:{id:"block",label:"Block",icon:e.pD,tone:"red",desc:"Refuse the request entirely whenever any rule in this detection matches."}},k=d.V0H;function l(a){return(Object.hasOwn(j,a)?j[a]:void 0)??{id:a,label:a,icon:e.iB,tone:"gray",desc:""}}let m={pii:"PII",financial:"Financial",secret:"Secret",phi:"PHI",code_context:"Code context",code_flaw:"Code flaw",custom:"Custom",config:"Configuration"},n={library:{label:"Library",icon:e.fC,tone:"teal",blurb:"Imported from the public library"}},o={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:"gray",verified:!1}};function p(a){return null==a.update?"unknown":a.update.available?"update-available":"up-to-date"}},39686:(a,b,c)=>{"use strict";c.d(b,{FindingDetailView:()=>o,formatConfidence:()=>m});var d=c(45487),e=c(22747),f=c(47599),g=c(83798),h=c(19354),i=c(29102),j=c(34275),k=c(126),l=c(51549);function m(a){let b=a.toFixed(2);return a>=.9?{label:`High \xb7 ${b}`,tone:"text-ok"}:a>=.7?{label:`Medium \xb7 ${b}`,tone:"text-sev-high"}:{label:`Low \xb7 ${b}`,tone:"text-text-2"}}function n({confidence:a}){let{label:b,tone:c}=m(a);return(0,d.jsx)("span",{className:c,children:b})}function o({selection:a,onSelectInstance:b,onBack:c,footer:i}){let{finding:m,instance:o}=a,r=k.y7[m.category]??h.RY,s=!o,t=m.providers.length,u=function(a){let b=k.gh[a];return b||a}(m.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:m.severity}),(0,d.jsx)(e.qp,{className:"font-mono text-xs font-semibold text-text-3",children:s?u:o.id})]}),(0,d.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-4 pb-4",children:[!s&&(0,d.jsxs)(e.$n,{variant:"link",tone:"primary",size:"sm",onClick:c,className:"self-start",children:[(0,d.jsx)(h.YJ,{"aria-hidden":!0,focusable:!1,className:"size-4"}),"Back to finding"]}),(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,k.i9)(m.category)),children:(0,d.jsx)(r,{className:"size-5"})}),(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsx)("span",{className:"font-display text-base font-semibold",children:m.subtype}),(0,d.jsx)("span",{className:"text-xs text-text-3",children:s?`${String(m.instanceCount)} locations \xb7 ${String(t)} tool${t>1?"s":""}`:`${u} \xb7 ${o.repo} \xb7 detected ${(0,f.K)(o.detectedAt)}`})]})]}),(0,d.jsx)(p,{code:m.match.contextPrefix,snippet:m.match.maskedValue,file:s?`${String(m.instanceCount)} locations`:(0,k.xE)(o)}),s?(0,d.jsxs)("div",{children:[(0,d.jsx)(g.e,{children:"Locations"}),(0,d.jsx)("div",{className:"flex flex-col gap-2",children:m.instances.map(a=>(0,d.jsx)(q,{instance:a,onClick:()=>{b(a)}},a.id))}),m.instances.length<m.instanceCount&&(0,d.jsxs)("p",{className:"pt-2 text-xs text-text-3",children:["Showing the ",m.instances.length," most recent of ",m.instanceCount," ","locations."]})]}):(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:o.provider})}),(0,d.jsx)(g.p,{label:"Repository",children:(0,d.jsx)("span",{className:"font-mono text-xs wrap-break-word",children:o.repo})}),(0,d.jsx)(g.p,{label:"Location",children:(0,d.jsx)("span",{className:"font-mono text-xs wrap-break-word",children:(0,k.xE)(o)})}),(0,d.jsx)(g.p,{label:"Action taken",children:(0,d.jsx)(j.T,{action:o.action})}),(0,d.jsx)(g.p,{label:"Detected",children:(0,f.K)(o.detectedAt)}),(0,d.jsx)(g.p,{label:"Confidence",children:(0,d.jsx)(n,{confidence:o.confidence})})]}),i]})]})}function p({code:a,snippet:b,file:c}){return(0,d.jsxs)("div",{children:[(0,d.jsxs)(g.e,{className:"flex items-center gap-2",children:["Matched content",(0,d.jsx)(h.aR,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})]}),(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",children:`"${b}"`}),";"]})]})]})}function q({instance:a,onClick:b}){return(0,d.jsxs)("button",{type:"button",onClick:b,className:"flex items-center cursor-pointer gap-3 rounded-lg border border-border bg-surface px-3 py-2.5 text-left transition-colors hover:bg-surface-2",children:[(0,d.jsx)(i.K,{id:a.provider}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-text",children:a.repo}),(0,d.jsx)("span",{className:"font-mono text-label text-text-3 wrap-break-word",children:(0,k.xE)(a)})]}),(0,d.jsx)(j.T,{action:a.action}),(0,d.jsx)(h.vK,{className:"size-4 shrink-0 text-text-3"})]})}},40891:(a,b,c)=>{"use strict";c.d(b,{S8C:()=>x,Itg:()=>ac,PWo:()=>am,RRF:()=>a0,ZpU:()=>a3,HUb:()=>a_,unw:()=>a2,goN:()=>M,Jr:()=>a4,V8B:()=>aH,IgC:()=>aX,iRC:()=>aI,yA3:()=>A,Bfx:()=>B,GCf:()=>D,TUN:()=>N,SHn:()=>at,V0H:()=>a$,PEm:()=>aV,eI7:()=>bY,cqq:()=>E,jON:()=>aR,lFU:()=>d,PhW:()=>aa,AI$:()=>v,hd_:()=>bL,W4_:()=>q,tXp:()=>bD,plk:()=>bt,mAj:()=>by,Fnc:()=>cX,ryv:()=>p,tTV:()=>_,rG:()=>bG,q_t:()=>n,i1j:()=>bM,xog:()=>bx,hzO:()=>cZ,by7:()=>cY,Gw9:()=>cV,q11:()=>f,U7X:()=>v,y_0:()=>cW,I8t:()=>e,OHL:()=>b$,DhA:()=>a5,WSs:()=>c0,a45:()=>br,A6E:()=>bF,pnU:()=>bs,V9M:()=>bR,$BP:()=>bS,yaP:()=>bN,zw:()=>bO,JAl:()=>bT,$3l:()=>bU,gzP:()=>bP,QCA:()=>bQ,C05:()=>c$});let d=[{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"}];function e(a){return new Date(a).getTime()}function f(a){return new Date(a).toISOString()}function g(a,b){return{input:a,output:b,cacheWrite5m:1.25*a,cacheWrite1h:2*a,cacheRead:.1*a,webSearch:.01}}let h={input:0,output:0,cacheWrite5m:0,cacheWrite1h:0,cacheRead:0,webSearch:0},i={"claude-fable-5":g(10,50),"claude-opus-4-8":g(5,25),"claude-opus-4-7":g(5,25),"claude-opus-4-6":g(5,25),"claude-opus-4-5":g(5,25),"claude-sonnet-5":g(3,15),"claude-sonnet-4-6":g(3,15),"claude-sonnet-4-5":g(3,15),"claude-haiku-4-5":g(1,5)},j={...Object.fromEntries(Object.entries(i).map(([a,b])=>[`anthropic/${a}`,b])),"ollama/*":h,"local/*":h},k={standard:1,batch:.5,priority:1.5},l=Object.keys(i);function m(a){let b=a.replace(/^(us|eu|apac|global)\./,"").replace(/^anthropic[./]/,"").replace(/@[\w-]+$/,"").replace(/-v\d+:\d+$/,"").replace(/:\d+$/,"").replace(/-\d{8}$/,"");for(let a of l)if(b===a)return a;return b}let n={normalizeModelId(a,b){let c=a.trim().toLowerCase();if("ollama"===c||"local"===c)return{provider:c,model:"*"};if("anthropic"===c||"bedrock"===c||"vertex"===c)return{provider:c,model:m(b)};let d=/^anthropic\/(.+)$/.exec(b);return d?.[1]!==void 0?{provider:c,model:m(d[1])}:{provider:c,model:b}},costFor({provider:a,model:b,usage:c}){var d;let e=this.normalizeModelId(a,b),f=j[`${e.provider}/${e.model}`];return void 0===f?null:((c.inputTokens??0)*f.input+(c.outputTokens??0)*f.output+(c.cacheWrite1hTokens??0)*f.cacheWrite1h+(c.cacheWrite5mTokens??0)*f.cacheWrite5m+(c.cacheReadTokens??0)*f.cacheRead)/1e6*(void 0===(d=c.serviceTier)?1:k[d]??1)+(c.webSearchRequests??0)*f.webSearch}};new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1});let o=a=>a??0;function p(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+=o(e.input_tokens),i.output+=o(e.output_tokens),i.cacheCreation+=o(e.cache_creation_input_tokens),i.cacheRead+=o(e.cache_read_input_tokens);let j=b.costFor({provider:a,model:f,usage:function(a){let b={inputTokens:o(a.input_tokens),outputTokens:o(a.output_tokens),cacheWrite1hTokens:o(a.ephemeral_1h_input_tokens),cacheWrite5mTokens:o(a.ephemeral_5m_input_tokens),cacheReadTokens:o(a.cache_read_input_tokens),webSearchRequests:o(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 q(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 r=c(25320),s=c(71851),t=c(18801);let u=r.k5(["pii","financial","secret","phi","code_context","code_flaw","custom","config"]).meta({id:"DetectionCategory"}),v=r.k5(["critical","high","medium","low"]).meta({id:"Severity"}),w=r.k5(["warn","redact","block","allow","log"]).meta({id:"ActionTaken"}),x=w.options,y=r.Ik({start:r.ai().int().nonnegative(),end:r.ai().int().nonnegative()}).meta({id:"Span"}),z=r.Ik({id:r.Os(),eventId:r.Os(),ruleId:r.Yj(),category:u,severity:v,span:y,maskedMatch:r.Yj(),actionTaken:w,confidence:r.ai().min(0).max(1)}).meta({id:"Finding"});z.meta({id:"DetectedFinding"});let A=r.k5(["blocked","redacted","warned","allowed","quarantined","monitored"]).meta({id:"FindingAction"}),B=r.k5(["claudecode","claudedesktop","cursor","copilot","chatgpt","api"]).meta({id:"FindingProvider"}),C=r.k5(["secret","pii","source_code","external_share","mcp_server","customer_data","financial","phi","custom"]).meta({id:"FindingCategory"});r.k5(["in-flight","at-rest"]).meta({id:"FindingOrigin"});let D=r.k5(["open","handled","resolved","dismissed"]).meta({id:"FindingStatus"}),E=r.k5(["enforced-in-flight","fixed-at-source","exception","acknowledged","false-positive","redetected"]).meta({id:"ResolutionMethod"}),F=r.Ik({maskedValue:r.Yj(),contextPrefix:r.Yj()}).meta({id:"FindingMatch"}),G=r.Ik({id:r.Yj(),name:r.Yj().nullable()}).meta({id:"FindingDetectionRef"}),H=r.Ik({id:r.Yj(),name:r.Yj()}).meta({id:"FindingPolicyRef"}),I=r.Ik({id:r.Yj(),provider:B,repo:r.Yj(),file:r.Yj(),toolName:r.Yj().optional(),action:A,detectedAt:s.w$(),confidence:r.ai().min(0).max(1),status:D.optional()}).meta({id:"FindingInstance"}),J=r.Ik({id:r.Yj(),category:C,subtype:r.Yj(),severity:v,match:F,detection:G,policy:H,instanceCount:r.ai().int().nonnegative(),providers:r.YO(B),aggregateAction:A.nullable(),latestDetectedAt:s.w$(),instances:r.YO(I),status:D.optional()}).meta({id:"FindingGroup"});r.Ik({findings:r.ai().int().nonnegative(),groups:r.ai().int().nonnegative(),bySeverity:r.Ik({critical:r.ai().int().nonnegative(),high:r.ai().int().nonnegative(),medium:r.ai().int().nonnegative(),low:r.ai().int().nonnegative()})}).meta({id:"FindingStats"});let K=r.Ik({value:r.Yj(),count:r.ai().int().nonnegative()}).meta({id:"FindingFacetItem"}),L=r.Ik({severity:r.YO(K),subtype:r.YO(K),provider:r.YO(K),action:r.YO(K)}).meta({id:"FindingFacets"}),M=50;r.Ik({severity:r.YO(v).optional(),subtype:r.YO(r.Yj()).optional(),provider:r.YO(B).optional(),action:r.YO(A).optional(),q:r.Yj().optional(),sessionId:r.Yj().optional(),groupBy:r.eu("type").optional(),limit:t.ai().int().min(1).max(100).optional(),cursor:r.Yj().optional()}),r.Ik({totals:r.Ik({findings:r.ai().int().nonnegative(),groups:r.ai().int().nonnegative()}),facets:L,items:r.YO(J),nextCursor:r.Yj().nullable(),sessionFirings:r.g1(r.Yj(),r.ai().int().nonnegative()).optional()}).meta({id:"ListGroupedFindingsResponse"}),r.Ik({action:A.exclude(["quarantined"]),instanceId:r.Yj().optional()}).meta({id:"ApplyFindingActionRequest"}),J.meta({id:"ApplyFindingActionResponse"}),r.Ik({severity:r.YO(v).optional(),subtype:r.YO(r.Yj()).optional(),provider:r.YO(B).optional(),action:r.YO(A).optional(),q:r.Yj().optional(),format:r.k5(["csv","json"]).optional()}),I.extend({groupId:r.Yj(),category:C,subtype:r.Yj(),severity:v,match:F,detection:G,policy:H}).meta({id:"FindingInstanceDetail"});let N=r.k5(["claudecode","cursor","copilot","codex","windsurf","claudedesktop","chatgpt","api"]).meta({id:"Harness"}),O={"claude-code":"claudecode","claude-desktop":"claudedesktop","github-copilot":"copilot",cursor:"cursor",chatgpt:"chatgpt"},P=r.k5(["host","harness","user","skill","hook","mcp_server","config_file"]).meta({id:"InventoryObjectType"}),Q=r.k5(["session","run","tool_call","llm_call","source_lookup","prompt","response","code_change","tool_use","config_scan"]).meta({id:"AuditEventType"}),R=r.g1(r.Yj(),r.L5());r.Ik({host_name:r.Yj().optional(),os:r.Yj().optional(),os_version:r.Yj().optional(),arch:r.Yj().optional()}).catchall(r.L5()),r.Ik({harness_version:r.Yj().optional(),interface:r.Yj().optional()}).catchall(r.L5()),r.Ik({display_name:r.Yj().optional(),email:r.Yj().optional()}).catchall(r.L5()),r.Ik({source:r.Yj().optional(),version:r.Yj().optional(),description:r.Yj().optional(),updated_at:r.Yj().optional(),scope:r.Yj().optional(),plugin_name:r.Yj().optional()}).catchall(r.L5()),r.Ik({event:r.Yj().optional(),matcher:r.Yj().optional(),command:r.Yj().optional(),scope:r.Yj().optional(),plugin_name:r.Yj().optional(),timeout:r.ai().optional()}).catchall(r.L5()),r.Ik({scope:r.Yj().optional(),transport:r.Yj().optional(),command:r.Yj().optional(),url:r.Yj().optional(),env_keys:r.YO(r.Yj()).optional(),plugin_name:r.Yj().optional(),marketplace:r.Yj().optional(),project:r.Yj().optional()}).catchall(r.L5()),r.Ik({kind:r.Yj().optional(),detail:r.Yj().optional(),scope:r.Yj().optional(),updated_at:r.Yj().optional(),entry_count:r.ai().optional()}).catchall(r.L5());let S=r.Ik({model:r.Yj().optional(),provider:r.Yj().optional(),input_tokens:r.ai().int().nonnegative().optional(),output_tokens:r.ai().int().nonnegative().optional(),cache_creation_input_tokens:r.ai().int().nonnegative().optional(),cache_read_input_tokens:r.ai().int().nonnegative().optional(),ephemeral_1h_input_tokens:r.ai().int().nonnegative().optional(),ephemeral_5m_input_tokens:r.ai().int().nonnegative().optional(),web_search_requests:r.ai().int().nonnegative().optional(),web_fetch_requests:r.ai().int().nonnegative().optional(),service_tier:r.Yj().optional(),stop_reason:r.Yj().optional(),message_id:r.Yj().optional(),uuid:r.Yj().optional(),parent_uuid:r.Yj().optional(),run_key:r.Yj().optional()}).catchall(r.L5());r.Ik({sessionId:r.Yj().min(1),messageId:r.Yj().min(1),parentId:r.Yj().min(1),rootSessionId:r.Yj().min(1),startedAt:s.w$(),attributes:S});let T=r.Ik({tool_name:r.Yj().optional(),tool_use_id:r.Yj().optional(),target:r.Yj().optional(),is_error:r.zM().optional(),input_size:r.ai().int().nonnegative().optional(),output_size:r.ai().int().nonnegative().optional(),uuid:r.Yj().optional(),parent_uuid:r.Yj().optional(),run_key:r.Yj().optional()}).catchall(r.L5()),U=r.Ik({ruleId:r.Yj().min(1),ruleName:r.Yj(),ruleVersion:r.Yj().min(1),category:u,severity:v,span:y,maskedMatch:r.Yj(),actionTaken:w,confidence:r.ai().min(0).max(1)});r.Ik({sessionId:r.Yj().min(1),toolUseId:r.Yj().min(1),parentId:r.Yj().min(1),rootSessionId:r.Yj().min(1),startedAt:s.w$(),attributes:T,inspections:r.YO(U).default([])});let V=r.Ik({objectType:P,identityKey:r.Yj().min(1),location:r.Yj().optional(),title:r.Yj().optional(),hostId:r.Yj().optional(),attributes:R.default({})}).meta({id:"InventoryInput"}),W=r.Ik({url:r.Yj().min(1),name:r.Yj().optional(),attributes:R.default({})}).meta({id:"SourceProjectInput"}),X=r.Ik({id:r.Yj().min(1),eventType:Q,startedAt:s.w$(),endedAt:s.w$().optional(),parentId:r.Yj().optional(),rootSessionId:r.Yj().optional(),hostId:r.Yj().optional(),harnessId:r.Yj().optional(),sourceProjectId:r.Yj().optional(),severity:v.optional(),priority:r.Yj().optional(),content:r.Yj().optional(),contentHash:r.Yj().optional(),attributes:R.optional()}).meta({id:"AuditEventInput"});r.Ik({class:r.Yj().min(1),label:r.Yj().optional(),attributes:R.optional()});let Y=r.Ik({ruleId:r.Yj().min(1),version:r.Yj().min(1),name:r.Yj(),category:u,severity:v,definition:r.Yj()});r.Ik({id:r.Yj().min(1),auditEventId:r.Yj().min(1),inspectionDefinitionId:r.Yj().min(1),classifiedDataId:r.Yj().optional(),span:y,maskedMatch:r.Yj(),actionTaken:w,confidence:r.ai().min(0).max(1)}),r.Ik({host:V.optional(),harness:V.optional(),project:W.optional()}).meta({id:"InventoryContext"}),r.Ik({hostId:r.Yj().optional(),harnessId:r.Yj().optional(),accountId:r.Yj().optional(),sourceProjectId:r.Yj().optional()}).meta({id:"ResolvedInventory"}),r.Ik({hosts:r.YO(r.Yj()),harnesses:r.YO(r.Yj()),osVersions:r.YO(r.Yj()),projects:r.YO(r.Yj())}).meta({id:"InventoryFacets"});let Z=r.Ik({sessionId:r.Yj(),model:r.Yj(),provider:r.Yj(),inputTokens:r.ai().int().nonnegative(),outputTokens:r.ai().int().nonnegative(),cacheCreation:r.ai().int().nonnegative(),cacheRead:r.ai().int().nonnegative(),totalTokens:r.ai().int().nonnegative(),estimatedCostUsd:r.ai().nullable()}).meta({id:"TokenRollup"});r.Ik({sessionId:r.Yj(),rollups:r.YO(Z),totalTokens:r.ai().int().nonnegative(),estimatedCostUsd:r.ai().nullable(),costIsPartial:r.zM()});let $=r.Ik({provider:r.Yj(),model:r.Yj(),inputTokens:r.ai().int().nonnegative(),outputTokens:r.ai().int().nonnegative(),cacheTokens:r.ai().int().nonnegative(),totalTokens:r.ai().int().nonnegative(),estimatedCostUsd:r.ai().nullable()});function _(a){return JSON.stringify(a)}r.Ik({models:r.YO($),sessionCount:r.ai().int().nonnegative(),totalTokens:r.ai().int().nonnegative(),estimatedCostUsd:r.ai(),costIsPartial:r.zM()});let aa=r.k5(["active","completed","interrupted","error"]),ab=r.k5(["session","prompt","response","tool","hook","detection","share","permission","commit","error","active"]),ac=r.k5(["detections","shares","inventory"]),ad=r.Ik({id:r.Yj(),occurredAt:s.w$(),kind:ab,title:r.Yj(),detail:r.Yj(),tool:r.Yj().nullable(),severity:v.nullable(),link:ac.nullable(),targetId:r.Yj().nullable(),internal:r.zM(),flagged:r.zM()}).meta({id:"ActivityAuditEvent"}),ae=r.Ik({id:r.Yj(),harness:N,title:r.Yj(),project:r.Yj(),repo:r.Yj(),branches:r.YO(r.Yj()),startedAt:s.w$(),endedAt:s.w$().nullable(),status:aa,turns:r.ai().int().nonnegative(),findings:r.ai().int().nonnegative(),shares:r.ai().int().nonnegative()}).meta({id:"ActivitySessionSummary"});ae.extend({host:r.Yj(),cwd:r.Yj(),models:r.YO(r.Yj()),version:r.Yj(),tokens:Z,tools:r.g1(r.Yj(),r.ai().int().nonnegative()),files:r.YO(r.Yj()),commits:r.ai().int().nonnegative(),events:r.YO(ad)}).meta({id:"ActivitySession"}),r.Ik({tz:r.Yj().optional()});let af=r.Ik({sessionsToday:r.ai().int().nonnegative(),liveNow:r.ai().int().nonnegative(),toolCallsToday:r.ai().int().nonnegative(),findingsToday:r.ai().int().nonnegative(),egressToday:r.ai().int().nonnegative()}).meta({id:"GetActivityStatsResponse"});r.Ik({q:r.Yj().optional(),harness:r.YO(N).optional(),from:r.KC([s.p6(),s.w$()]).optional(),to:r.KC([s.p6(),s.w$()]).optional(),excludeEmpty:r.uE().optional(),limit:t.ai().int().min(1).max(100).default(50),cursor:r.Yj().optional()});let ag=r.Ik({items:r.YO(ae),nextCursor:r.Yj().nullable(),emptyCount:r.ai().int().nonnegative()}).meta({id:"ListActivitySessionsResponse"});r.Ik({limit:t.ai().int().min(1).max(500).default(100),cursor:r.Yj().optional(),order:r.k5(["asc","desc"]).default("asc")}),r.Ik({items:r.YO(ad),nextCursor:r.Yj().nullable()}).meta({id:"ListSessionEventsResponse"}),r.Ik({format:r.k5(["ndjson","json"]).default("ndjson")}),r.Ik({format:r.k5(["csv","json"]).default("csv"),q:r.Yj().optional(),harness:r.YO(N).optional(),from:r.KC([s.p6(),s.w$()]).optional(),to:r.KC([s.p6(),s.w$()]).optional()}),r.Ik({stats:af,sessions:ag}).meta({id:"ActivityOverviewResponse"});let ah=r.k5(["prompt","response","code_change","tool_use"]).meta({id:"EventKind"}),ai=r.k5(["claude-code","claude-desktop","cursor","chatgpt","github-copilot","cli","unknown"]).meta({id:"SourceTool"}),aj=r.Ik({sessionId:r.Yj().optional(),repo:r.Yj().optional(),filePath:r.Yj().optional(),toolName:r.Yj().optional(),gitignored:r.zM().optional(),wholeFile:r.zM().optional(),model:r.Yj().optional(),turnIndex:r.ai().int().nonnegative().optional(),correlationId:r.uR().optional(),traceId:r.Yj().regex(/^[0-9a-f]{32}$/).optional(),exceptionIds:r.YO(r.Os()).optional()}).meta({id:"EventMetadata"}),ak=r.Ik({id:r.Os(),sourceTool:ai,kind:ah,occurredAt:s.w$(),contentHash:r.Yj(),content:r.Yj(),metadata:aj.optional()}).meta({id:"Event"}),al=ak.meta({id:"IngestEvent"});r.Ik({events:r.YO(al).min(1).max(100),dedupe:r.eu("content-hash").optional()}).meta({id:"IngestBatch"});let am=r.k5(["project","skill","mcp","hook","config"]).meta({id:"AssetType"}),an=r.k5(["open","approved","blocked"]).meta({id:"AccessLevel"}),ao=r.k5(["source","public-dep","vendored","config","data","docs","generated"]).meta({id:"Origin"}),ap=r.k5(["known-good","risky","unapproved"]).meta({id:"TrustLevel"}),aq=r.k5(["update","stale","conflict","unknown","change","untracked","risk","findings"]).meta({id:"Flag"}),ar=r.k5(["public","private"]).meta({id:"Visibility"}),as=r.k5(["block","redact","warn"]).meta({id:"HarnessEventKind"}),at=r.k5(["claudecode","cursor","codex"]).meta({id:"HarnessId"}),au=r.Ik({open:r.ai().int().nonnegative(),approved:r.ai().int().nonnegative(),blocked:r.ai().int().nonnegative(),total:r.ai().int().nonnegative()}).meta({id:"AccessCounts"}),av=r.Ik({id:r.Yj(),type:am,name:r.Yj(),sub:r.Yj(),flags:r.YO(aq),trust:ap.optional()}).meta({id:"AssetSummary"}),aw=r.Ik({id:r.Yj(),name:r.Yj(),repo:r.Yj(),visibility:ar,language:r.Yj(),policyDefault:an,updatedAt:s.w$(),accessCounts:au,findingsCount:r.ai().int().nonnegative()}).meta({id:"ProjectSummary"}),ax=r.Ik({type:am,assets:r.YO(av)}),ay=r.Ik({id:at,label:r.Yj(),kind:r.Yj(),version:r.Yj(),sessions:r.ai().int().nonnegative(),assetCount:r.ai().int().nonnegative(),flagCount:r.ai().int().nonnegative(),projects:r.YO(aw),categories:r.YO(ax)}).meta({id:"HarnessSummary"});r.Ik({items:r.YO(ay)}).meta({id:"ListHarnessesResponse"});let az=r.Ik({type:am,total:r.ai().int().nonnegative(),trustRollup:r.Ik({"known-good":r.ai().int().nonnegative(),risky:r.ai().int().nonnegative(),unapproved:r.ai().int().nonnegative()}).partial().strict().optional(),flagRollup:r.Ik({update:r.ai().int().nonnegative(),stale:r.ai().int().nonnegative(),conflict:r.ai().int().nonnegative(),unknown:r.ai().int().nonnegative(),change:r.ai().int().nonnegative(),untracked:r.ai().int().nonnegative(),risk:r.ai().int().nonnegative(),findings:r.ai().int().nonnegative()}).partial().strict(),items:r.YO(av)}).meta({id:"AssetGroup"});r.Ik({groups:r.YO(az)}).meta({id:"ListAssetsResponse"});let aA=r.Ik({name:r.Yj(),signature:r.Yj(),description:r.Yj(),write:r.zM(),risk:r.Yj().nullable()}).meta({id:"McpTool"}),aB=r.Ik({id:r.Yj(),title:r.Yj(),note:r.Yj()});av.extend({description:r.Yj().nullable(),trust:ap.nullable(),meta:r.g1(r.Yj(),r.L5()),finding:aB.nullable(),tools:r.YO(aA).optional()}).meta({id:"AssetDetail"}),r.Ik({items:r.YO(aw)}).meta({id:"ListProjectsResponse"}),r.Ik({attention:r.ai().int().nonnegative(),byType:r.Ik({project:r.ai().int().nonnegative(),skill:r.ai().int().nonnegative(),mcp:r.ai().int().nonnegative(),hook:r.ai().int().nonnegative(),config:r.ai().int().nonnegative()}),harnesses:r.ai().int().nonnegative(),mcpTrust:r.Ik({"known-good":r.ai().int().nonnegative(),risky:r.ai().int().nonnegative(),unapproved:r.ai().int().nonnegative()})}).meta({id:"InventoryStats"});let aC=r.Ik({path:r.Yj(),name:r.Yj(),origin:ao,access:an,isCustom:r.zM(),findings:r.ai().int().nonnegative(),blockedAt:s.w$().nullable().optional(),note:r.Yj().nullable().optional()}).meta({id:"FileSummary"}),aD=r.Ik({name:r.Yj(),path:r.Yj(),accessCounts:au}).meta({id:"FolderSummary"});r.Ik({project:r.Ik({id:r.Yj(),repo:r.Yj(),visibility:ar}),path:r.Yj(),folders:r.YO(aD).optional(),files:r.YO(aC)}).meta({id:"ProjectTreeResponse"}),aC.extend({project:r.Ik({repo:r.Yj(),visibility:ar,language:r.Yj(),policyDefault:an,updatedAt:s.w$()}),findingsRefs:r.YO(r.Ik({id:r.Yj(),title:r.Yj()}))}).meta({id:"FileDetail"}),r.Ik({path:r.Yj(),access:an}).meta({id:"SetFileAccessBody"}),r.Ik({file:aC,accessCounts:au}).meta({id:"SetFileAccessResponse"}),r.Ik({trust:ap}).meta({id:"SetMcpTrustBody"});let aE=r.Ik({kind:as,title:r.Yj(),detail:r.Yj(),occurredAt:s.w$(),findingId:r.Yj().nullable().optional()}).meta({id:"HarnessEventItem"});r.Ik({counts:r.Ik({block:r.ai().int().nonnegative(),redact:r.ai().int().nonnegative(),warn:r.ai().int().nonnegative()}),items:r.YO(aE)}).meta({id:"HarnessEventsResponse"}),r.Ik({jobId:r.Yj(),startedAt:s.w$()}).meta({id:"RescanResponse"}),r.Ik({repo:r.Yj()}).meta({id:"ConnectProjectBody"}),r.Ik({type:r.YO(am).optional(),q:r.Yj().optional()}),r.Ik({path:r.Yj().optional(),q:r.Yj().optional(),filter:r.k5(["blocked"]).optional()}),r.Ik({path:r.Yj()}),r.Ik({limit:t.ai().int().min(1).max(50).default(7)});let aF=r.k5(["once","temporary","permanent"]),aG=r.Ik({repo:r.Yj().optional(),sourceTool:r.Yj().optional(),provider:r.Yj().optional()}).strict(),aH=r.Ik({id:r.Os(),ruleId:r.Yj(),category:u,valueFingerprint:r.Yj().regex(/^[0-9a-f]{64}$/),keyVersion:r.ai().int().positive(),maskedValue:r.Yj(),scope:aF,expiresAt:s.w$().nullable(),maxUses:r.ai().int().positive().nullable(),useCount:r.ai().int().nonnegative(),lastUsedAt:s.w$().nullable(),justification:r.Yj().min(1),conditions:aG.nullable(),createdBy:r.Yj(),createdVia:r.k5(["cli-approve","cli-add","web-approve","web-add","api","setup-triage"]),createdAt:s.w$(),updatedAt:s.w$(),revokedAt:s.w$().nullable(),revokedBy:r.Yj().nullable(),revokeReason:r.Yj().nullable()}),aI=aH.pick({id:!0,ruleId:!0,valueFingerprint:!0,keyVersion:!0,expiresAt:!0,maxUses:!0,useCount:!0,conditions:!0});r.k5(["keyword","regex","validator"]).meta({id:"MatcherType"});let aJ=r.Ik({type:r.eu("keyword"),keywords:r.YO(r.Yj().min(1)).min(1),caseSensitive:r.zM().default(!1)}),aK=r.Ik({type:r.eu("regex"),pattern:r.Yj(),flags:r.Yj().default("gi"),captureGroup:r.ai().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=>void 0!==a.captureGroup||!function(a,b){try{let c=new RegExp(a,b.replace(/[gy]/g,""));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"]}),aL=r.Ik({type:r.eu("validator"),name:r.k5(["luhn","entropy","ssn-checksum"]),config:r.g1(r.Yj(),r.L5()).optional()}),aM=r.gM("type",[aJ,aK,aL]).meta({id:"Matcher"}),aN=r.Ik({extensions:r.YO(r.Yj().regex(/^\.[A-Za-z0-9]+$/)).min(1)}).meta({id:"AppliesTo"}),aO=r.KC([r.Yj(),r.Ik({name:r.Yj(),config:r.g1(r.Yj(),r.L5()).optional()})]).meta({id:"PostValidatorRef"}),aP=r.Ik({categories:r.YO(u).min(1).optional(),ruleIds:r.YO(r.Yj().min(1)).min(1).optional(),labels:r.YO(r.Yj().min(1)).min(1).optional(),windowChars:r.ai().int().positive().default(160),confidenceBoost:r.ai().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"}),aQ=r.Ik({label:r.Yj(),text:r.Yj().max(5e4),shouldMatch:r.zM(),filePath:r.Yj().optional(),expectedSpans:r.YO(r.Ik({start:r.ai(),end:r.ai()})).optional()}).meta({id:"RuleFixture"}),aR=r.Ik({specVersion:r.eu(1),id:r.Yj().regex(/^[a-z][a-z0-9-]*\/[a-z][a-z0-9-]*$/),name:r.Yj(),category:u,severity:v,matcher:aM,appliesTo:aN.optional(),postValidators:r.YO(aO).optional(),requiresNearby:aP.optional(),examples:r.YO(r.Yj()).optional()}).meta({id:"Rule"}),aS=r.Ik({name:r.Yj(),email:r.Rp().optional(),url:r.OZ().optional()}).meta({id:"Author"});r.Ik({specVersion:r.eu(1),id:r.Yj(),name:r.Yj(),version:r.Yj(),rules:r.YO(r.Yj()),description:r.Yj().optional(),author:aS.optional(),license:r.Yj().optional(),sourceUrl:r.OZ().optional()}).meta({id:"PackManifest"});let aT=r.k5(["global","repo","user"]).meta({id:"PolicyScope"}),aU=r.KC([r.Ik({ruleId:r.Yj()}),r.Ik({category:u})]).meta({id:"PolicyTarget"}),aV=r.Ik({id:r.Os(),scope:aT,target:aU,action:w,enabled:r.zM().default(!0),customKeywords:r.YO(r.Yj()).optional(),name:r.Yj().optional()}).meta({id:"Policy"});r.Ik({version:r.Yj(),policies:r.YO(aV),rules:r.YO(aR).optional(),rulesComplete:r.zM().optional(),exceptions:r.YO(aI).optional(),customKeywords:r.YO(r.Yj()),fetchedAt:s.w$()}).meta({id:"PolicyBundle"});let aW=["config"],aX=u.options.filter(a=>!aW.includes(a)),aY={secret:"critical",financial:"critical",code_flaw:"critical",pii:"high",phi:"high",custom:"high",code_context:"low",config:"low"},aZ=r.k5(["builtin","custom"]).meta({id:"PolicyKind"}),a$=["monitor","warn","redact","block"],a_=r.k5(a$).meta({id:"BuiltinPolicyId"}),a0=a$,a1={monitor:{name:"Monitor",action:"log",description:"Log every match for audit. The request is allowed through untouched."},warn:{name:"Warn",action:"warn",description:"Allow the request, but warn the user inline before it is sent."},redact:{name:"Redact",action:"redact",description:"Automatically strip the matched value from the request, then continue."},block:{name:"Block",action:"block",description:"Refuse the request entirely whenever any rule in this detection matches."}},a2=Object.fromEntries(u.options.map(a=>[a,a1[function(a){if(aW.includes(a))return"monitor";let b=aY[a];return"critical"===b||"high"===b?"warn":"monitor"}(a)].action])),a3=Object.fromEntries(a$.map(a=>[a,{id:a,...a1[a]}])),a4="monitor";function a5(a){let b=a_.safeParse(a??a4);return a3[b.success?b.data:a4].action}let a6=r.Ik({id:r.Yj(),name:r.Yj(),ruleCount:r.ai().int().nonnegative(),enabled:r.zM()}).meta({id:"UsedByItem"}),a7=r.Ik({id:r.Yj(),kind:aZ,name:r.Yj(),enabled:r.zM(),usedByCount:r.ai().int().nonnegative()}).meta({id:"PolicyListItem"});r.Ik({specVersion:r.eu(1),id:r.Yj(),kind:aZ,name:r.Yj(),enabled:r.zM(),description:r.Yj(),usedBy:r.YO(a6)}).meta({id:"PolicyDetail"}),r.Ik({policies:r.ai().int().nonnegative(),builtin:r.ai().int().nonnegative(),custom:r.ai().int().nonnegative(),detectionsGoverned:r.ai().int().nonnegative()}).meta({id:"PolicyStatsResponse"}),r.Ik({cursor:r.Yj().optional(),limit:t.ai().int().min(1).max(200).default(50),sourceTool:r.Yj().optional(),kind:r.Yj().optional(),from:s.w$().optional(),to:s.w$().optional()}),r.Ik({items:r.YO(ak),nextCursor:r.Yj().nullable()}).meta({id:"ListEventsResponse"}),r.Ik({accepted:r.ai().int().nonnegative(),duplicates:r.ai().int().nonnegative()}).meta({id:"IngestResponse"}),r.Ik({cursor:r.Yj().optional(),limit:t.ai().int().min(1).max(200).default(50),severity:r.Yj().optional(),category:r.Yj().optional(),eventId:r.Os().optional()}),r.Ik({items:r.YO(z),nextCursor:r.Yj().nullable()}).meta({id:"ListFindingsResponse"}),r.Ik({items:r.YO(a7)}).meta({id:"ListPoliciesResponse"}),aV.omit({id:!0}).meta({id:"CreatePolicyRequest"}),aV.partial().required({id:!0}).meta({id:"UpdatePolicyRequest"}),r.Ik({accepted:r.zM()}).meta({id:"RecordAuditEventResponse"}),r.Ik({error:r.Ik({code:r.Yj(),message:r.Yj(),details:r.L5().optional()})}).meta({id:"ErrorResponse"});let a8=r.k5(["user","project","local","plugin"]),a9=r.Ik({name:r.Yj().min(1),source:r.Yj().min(1),scope:a8,pluginName:r.Yj().optional(),version:r.Yj().optional(),description:r.Yj().optional(),updatedAt:s.w$().optional(),location:r.Yj().optional()}),ba=r.Ik({event:r.Yj().min(1),matcher:r.Yj().optional(),command:r.Yj().min(1),timeout:r.ai().optional(),scope:a8,pluginName:r.Yj().optional(),location:r.Yj().optional()}),bb=r.Ik({name:r.Yj().min(1),scope:a8,pluginName:r.Yj().optional(),marketplace:r.Yj().optional(),project:r.Yj().optional(),transport:r.Yj().min(1),command:r.Yj().optional(),url:r.Yj().optional(),envKeys:r.YO(r.Yj()).optional(),location:r.Yj().optional()}),bc=r.Ik({name:r.Yj().min(1),path:r.Yj().min(1),scope:a8,kind:r.Yj().min(1),detail:r.Yj().optional(),entryCount:r.ai().optional(),updatedAt:s.w$().optional()});r.Ik({scannedAt:s.w$(),skills:r.YO(a9),hooks:r.YO(ba),mcpServers:r.YO(bb),configFiles:r.YO(bc),errors:r.YO(r.Ik({source:r.Yj(),reason:r.Yj()}))});let bd=r.Ik({ruleId:r.Yj().min(1),version:r.Yj().min(1),span:y,maskedMatch:r.Yj(),actionTaken:w,confidence:r.ai().min(0).max(1)});r.Ik({items:r.YO(V),scanEvent:X,definitions:r.YO(Y).optional(),findings:r.YO(bd).optional()});let be=r.Yj().regex(/^[a-z][a-z0-9-]*$/),bf=r.Yj().regex(/^[a-z][a-z0-9-]*$/),bg=r.Yj().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-.]+)?$/),bh=r.k5(["labs","user","org"]),bi=r.k5(["library"]).meta({id:"OriginEnum"}),bj=r.k5(["all","library","custom","customized","updates"]),bk=r.k5(["new","imported","update"]).meta({id:"LibraryStateEnum"}),bl=r.Ik({all:r.ai().int().nonnegative(),library:r.ai().int().nonnegative(),custom:r.ai().int().nonnegative(),customized:r.ai().int().nonnegative(),updates:r.ai().int().nonnegative()}).meta({id:"DetectionCounts"}),bm=r.Ik({id:r.Yj(),name:r.Yj(),version:bg,enabled:r.zM(),origin:bi,publisher:be.optional(),publisherKind:bh.optional(),ruleCount:r.ai().int().nonnegative(),namespace:be,packId:bf,policyId:r.Yj().optional(),latestVersion:bg.optional()}).meta({id:"DetectionListItem"});r.Ik({counts:bl,items:r.YO(bm)}).meta({id:"ListDetectionsResponse"}),r.Ik({filter:bj.optional().default("all"),q:r.Yj().optional()}),r.Ik({detections:r.ai().int().nonnegative(),rules:r.ai().int().nonnegative(),active:r.ai().int().nonnegative(),findingsLast30d:r.ai().int().nonnegative()}).meta({id:"DetectionStats"});let bn=r.Ik({id:r.Yj(),name:r.Yj(),category:u,severity:v,matcher:aM}).meta({id:"DetectionRule"}),bo=r.Ik({available:r.zM(),latestVersion:bg,latestRuleCount:r.ai().int().nonnegative().optional()}).nullable().meta({id:"DetectionUpdate"});r.Ik({id:r.Yj(),name:r.Yj(),version:bg,enabled:r.zM(),origin:bi,publisher:be.optional(),publisherKind:bh.optional(),ruleCount:r.ai().int().nonnegative(),namespace:be,packId:bf,description:r.Yj().optional(),editedAt:s.w$(),findingsLast30d:r.ai().int().nonnegative(),latestVersion:bg.nullable().optional(),update:bo,rules:r.YO(bn),modified:r.zM(),policyId:r.Yj().optional()}).meta({id:"DetectionDetail"});let bp=r.Ik({id:r.Yj(),name:r.Yj(),publisher:be,publisherKind:bh.optional(),category:u.optional(),version:bg,ruleCount:r.ai().int().nonnegative(),description:r.Yj().optional(),updatedAt:s.w$(),state:bk,importedAs:r.Yj().nullable()}).meta({id:"LibraryItem"});function bq(a){return{id:`${a.namespace}/${a.packId}`,name:a.name,version:a.version,enabled:a.enabled,origin:"library",namespace:a.namespace,packId:a.packId,ruleCount:a.ruleCount,...null!=a.policyId?{policyId:a.policyId}:{},...null!=a.latestVersion?{latestVersion:a.latestVersion}:{}}}function br(a,b,c){let d=a.rules.flatMap(a=>{let b=aM.safeParse(a.matcher);return b.success?[{id:a.id,name:a.name,category:a.category,severity:a.severity,matcher:b.data}]:[]});return{id:`${a.namespace}/${a.packId}`,name:a.name,version:a.version,enabled:a.enabled,origin:"library",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 bs(a){let b=a.indexOf("/");return b<1||b===a.length-1?null:{namespace:a.slice(0,b),packId:a.slice(b+1)}}function bt(a,b){let c=a.filter(a=>null!=a.latestVersion),d={all:a.length,library:a.length,custom:0,customized:0,updates:c.length},e=b.filter,f="custom"===e||"customized"===e?[]:"updates"===e?[...c]:[...a];if(b.q){let a=b.q.toLowerCase();f=f.filter(b=>b.name.toLowerCase().includes(a)||b.packId.toLowerCase().includes(a)||b.namespace.toLowerCase().includes(a))}return f.sort((a,b)=>a.enabled!==b.enabled?a.enabled?-1:1:a.name.localeCompare(b.name)),{counts:d,items:f.map(bq)}}function bu(a){return({log:"monitored",block:"blocked",redact:"redacted",warn:"warned",allow:"allowed"})[a]??"allowed"}function bv(a){return O[a]??"api"}r.Ik({categories:r.YO(u),items:r.YO(bp)}).meta({id:"ListLibraryResponse"}),r.Ik({libraryId:r.Yj().refine(a=>/^[^/]+\/[^/]+$/.test(a),{message:"libraryId must be in namespace/packId format"})}).meta({id:"ImportDetectionRequest"});let bw=["open","handled","dismissed","resolved"];function bx(a){return"code_change"!==a.kind?"handled":null===a.findingKey?"open":"resolved"===a.latestResolutionStatus?"resolved":"dismissed"===a.latestResolutionStatus?"dismissed":"open"}function by(a,b={}){let c=b.overrides,d=b.packNames,e=b.aggregates,f=new Map;for(let b of a){let a=f.get(b.ruleId);a?a.push(b):f.set(b.ruleId,[b])}let g=[];for(let[a,b]of f){var h;let f=b.map(a=>{let b=c?.get(a.id)??a.actionTaken;return{id:a.id,provider:bv(a.sourceTool),repo:a.repo,file:a.file,...void 0===a.toolName?{}:{toolName:a.toolName},action:bu(b),detectedAt:a.occurredAt,confidence:a.confidence,status:a.status}}),i=e?.get(a),j=i?.latestDetectedAt??b.reduce((a,b)=>b.occurredAt>a?b.occurredAt:a,b[0]?.occurredAt??new Date(0).toISOString()),k=new Set,l=(i?[...new Set(i.sourceTools.map(bv))].sort():f.map(a=>a.provider)).filter(a=>!k.has(a)&&(k.add(a),!0)),m=new Set(i?i.actionsTaken.map(bu):f.map(a=>a.action)),n=1===m.size?[...m][0]??null:null,o=b[0]?.severity??"low",p={id:a,name:d?.get(a)??null},q="code_context"===(h=b[0]?.category??"custom")?"source_code":h,r={id:`category:${q}`,name:q},s={maskedValue:b[0]?.maskedMatch??"",contextPrefix:""},t=function(a){let b=new Set(a.filter(a=>void 0!==a));if(0!==b.size){for(let a of bw)if(b.has(a))return a}}(i?i.statusInputs.map(bx):f.map(a=>a.status)),u={id:a,category:q,subtype:a,severity:o,match:s,detection:p,policy:r,instanceCount:i?.instanceCount??f.length,providers:l,aggregateAction:n,latestDetectedAt:j,instances:f,status:t};i&&(bB.set(u,[...m]),void 0!==i.searchText&&bz.set(u,bA(u,i.searchText))),g.push(u)}return g}let bz=new WeakMap;function bA(a,b){return[a.subtype,a.category,a.match.maskedValue,a.policy.name,a.id,...a.instances.map(a=>a.repo),...a.instances.map(a=>a.file),...a.instances.map(a=>a.toolName?`via ${a.toolName}`:""),...a.instances.map(a=>a.id),...void 0===b?[]:[b]].join(" ").toLowerCase()}let bB=new WeakMap;function bC(a){let b=bB.get(a);if(void 0!==b)return b;let c=[...new Set(a.instances.map(a=>a.action))];return bB.set(a,c),c}function bD(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=>bC(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.q){let a=b.q.toLowerCase();c=c.filter(b=>(function(a){let b=bz.get(a);if(void 0!==b)return b;let c=bA(a);return bz.set(a,c),c})(b).includes(a))}return c}let bE={critical:0,high:1,medium:2,low:3};function bF(a){return[...a].sort((a,b)=>{let c=(bE[a.severity]??-1)-(bE[b.severity]??-1);return 0!==c?c:b.latestDetectedAt.localeCompare(a.latestDetectedAt)})}function bG(a,b){let c=bD(a,{providers:b.providers,actions:b.actions,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=bD(a,{actions:b.actions,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=bD(a,{providers:b.providers,q:b.q,subtype:b.subtype,severity:b.severity}),h=new Map;for(let a of g)for(let b of bC(a))h.set(b,(h.get(b)??0)+1);let i=bD(a,{providers:b.providers,actions:b.actions,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=a=>[...a.entries()].map(([a,b])=>({value:a,count:b}));return{severity:k(d),provider:k(f),action:k(h),subtype:k(j)}}let bH=r.Ik({id:r.Os(),namespace:be,packId:bf,version:bg,name:r.Yj(),enabled:r.zM().default(!0),policyId:r.Yj().optional()}).meta({id:"InstalledPack"});r.Ik({namespace:be,packId:bf,version:bg}).meta({id:"InstallPackRequest"}),r.Ik({items:r.YO(bH)}).meta({id:"ListInstalledPacksResponse"}),r.Ik({enabled:r.zM().optional(),policyId:r.Yj().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 bI=r.k5(["standalone"]),bJ=r.k5(["redact","warn"]),bK=r.k5(["full","session-only"]),bL=r.Ik({specVersion:r.ai().int().positive().default(2),runMode:r.vk(a=>"attached"===a?"standalone":a,bI.default("standalone")),policy:bJ.default("redact"),historicalAccess:bK.default("session-only"),onboardedAt:s.w$().optional()});function bM(){return bL.parse({})}function bN(a){return{id:a.id,sourceTool:a.sourceTool,kind:a.kind,occurredAt:e(a.occurredAt),contentHash:a.contentHash,content:a.content,metadata:a.metadata?JSON.stringify(a.metadata):null}}function bO(a){return{id:a.id,eventId:a.eventId,ruleId:a.ruleId,category:a.category,severity:a.severity,spanStart:a.span.start,spanEnd:a.span.end,maskedMatch:a.maskedMatch,actionTaken:a.actionTaken,confidence:a.confidence,findingKey:a.findingKey??null}}function bP(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 bQ(a,b,c){return{id:b,url:a.url,name:a.name??null,attributes:JSON.stringify(a.attributes),firstSeen:c,lastSeen:c}}function bR(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:e(a.startedAt),endedAt:a.endedAt?e(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 bS(a,b){return{id:b,class:a.class,label:a.label??null,attributes:a.attributes?JSON.stringify(a.attributes):null}}function bT(a,b){return{id:b,ruleId:a.ruleId,name:a.name,category:a.category,severity:a.severity,definition:a.definition,version:a.version}}function bU(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}}let bV=r.Ik({path:r.Yj().min(1),name:r.Yj().min(1),origin:ao,defaultAccess:an});r.Ik({files:r.YO(bV),truncated:r.zM(),scannedAt:r.Yj()});let bW=["7d","30d","3m","6m"],bX=r.k5(bW).meta({id:"TimeRange"}),bY={"7d":7,"30d":30,"3m":90,"6m":180},bZ=bX.catch("7d");function b$(a){return bZ.parse(a)}let b_=r.k5(["still-valid","unknown","invalid"]),b0=r.Ik({filePath:r.Yj(),span:y.optional()}).strict(),b1=r.Ik({provider:r.Yj(),maskedToken:r.Yj(),where:b0,state:b_,observedAt:s.w$().optional()}).strict();r.Ik({provider:r.Yj(),maskedToken:r.Yj(),consolePath:r.Yj(),occurrenceSpread:r.ai().int().positive()}).strict();let b2=r.k5(["redact-rotation-checklist","redact-only","set-secret-redact","leave"]),b3=r.k5(["first-run","pre-push","secret-scan"]);r.Ik({entrySource:b3}).strict();let b4=r.Ik({id:b2,label:r.Yj()}),b5=r.Ik({kind:r.eu("decision"),entrySource:b3,secretCount:r.ai().int().positive(),prompt:r.Yj(),options:r.PV([b4.extend({id:r.eu("redact-rotation-checklist")}),b4.extend({id:r.eu("redact-only")}),b4.extend({id:r.eu("set-secret-redact")}),b4.extend({id:r.eu("leave")})])}),b6=r.Ik({kind:r.eu("no-decision")});r.gM("kind",[b5,b6]),r.Ik({rules:r.YO(aR).min(1).max(100),text:r.Yj().max(5e4).optional(),fixtures:r.YO(aQ).max(200).optional()}).refine(a=>void 0!==a.text||(a.fixtures?.length??0)>0,{message:"Provide `text`, `fixtures`, or both — there must be something to test"}).meta({id:"TestRulesRequest"});let b7=r.Ik({ruleId:r.Yj(),category:u,severity:v,span:y,confidence:r.ai().min(0).max(1),match:r.Yj()}).meta({id:"RuleTestMatch"}),b8=r.Ik({label:r.Yj(),shouldMatch:r.zM(),didMatch:r.zM(),passed:r.zM(),matches:r.YO(b7)}).meta({id:"FixtureResult"});r.Ik({adhoc:r.Ik({matches:r.YO(b7)}).optional(),fixtures:r.YO(b8),summary:r.Ik({total:r.ai().int().nonnegative(),passed:r.ai().int().nonnegative(),failed:r.ai().int().nonnegative()}),unsupportedRuleIds:r.YO(r.Yj())}).meta({id:"TestRulesResponse"});let b9=r.Ik({severity:v,count:r.ai().int().nonnegative(),caught:r.ai().int().nonnegative().optional(),openAtRest:r.ai().int().nonnegative().optional()}).meta({id:"SeveritySummaryItem"});r.Ik({total:r.ai().int().nonnegative(),needsRemediation:r.ai().int().nonnegative().optional(),bySeverity:r.YO(b9)}).meta({id:"SeveritySummaryResponse"}),r.Ik({range:r.k5(bW).default("7d")});let ca=r.k5(["blocked","redacted","warned"]).meta({id:"EnforcementActionKind"}),cb=r.Ik({kind:ca,count:r.ai().int().nonnegative(),delta:r.ai().int()}).meta({id:"EnforcementAction"});r.Ik({range:bX,total:r.ai().int().nonnegative(),actions:r.YO(cb)}).meta({id:"EnforcementActionsResponse"});let cc=r.k5(["day","week"]).meta({id:"TimeseriesGranularity"}),cd=r.Ik({timestamp:s.p6(),critical:r.ai().int().nonnegative(),high:r.ai().int().nonnegative(),medium:r.ai().int().nonnegative()}).meta({id:"FindingsTimeseriesPoint"});r.Ik({range:bX,granularity:cc,points:r.YO(cd)}).meta({id:"FindingsTimeseriesResponse"});let ce=r.Ik({timestamp:s.p6(),bySeverity:r.Ik({critical:r.ai().nonnegative().nullable(),high:r.ai().nonnegative().nullable(),medium:r.ai().nonnegative().nullable(),low:r.ai().nonnegative().nullable()})}).meta({id:"MttrTrendPoint"});r.Ik({range:bX,granularity:cc,points:r.YO(ce)}).meta({id:"MttrTrendResponse"});let cf=r.Ik({findingKey:r.Yj(),ruleId:r.Yj(),severity:v,path:r.Yj(),resolvedAt:s.w$(),detectedAt:s.w$()}).meta({id:"ResolvedFeedItem"});r.Ik({items:r.YO(cf)}).meta({id:"RecentlyResolvedResponse"});let cg=["repo","user"],ch=r.k5(cg).meta({id:"SourceKind"}),ci=r.Ik({id:r.Yj(),name:r.Yj(),kind:ch,findingsCount:r.ai().int().nonnegative()}).meta({id:"TopSource"});r.Ik({range:bX,items:r.YO(ci)}).meta({id:"TopSourcesResponse"}),r.Ik({range:r.k5(bW).default("7d"),limit:t.ai().int().min(1).max(50).default(5),kind:r.k5(cg).optional()});let cj=r.k5(["claudecode","cursor","codex","chatgpt","copilot","api"]).meta({id:"Provider"}),ck=r.Ik({provider:cj,coverage:r.ai().int().min(0).max(100),supported:r.zM()}).meta({id:"ScanCoverageProvider"});r.Ik({range:bX,providers:r.YO(ck)}).meta({id:"ScanCoverageResponse"});let cl=r.k5(["repo","user","team","policy","share","rule"]).meta({id:"SubjectType"}),cm=r.Ik({type:cl,id:r.Yj(),label:r.Yj()}).meta({id:"RecommendationSubject"}),cn=r.k5(["apply","navigate"]).meta({id:"RecommendationActionMode"}),co=r.Ik({mode:cn,type:r.Yj(),label:r.Yj(),href:r.Yj().optional(),policyId:r.Yj().optional(),teamId:r.Yj().optional()}).meta({id:"RecommendationAction"}),cp=r.Ik({id:r.Yj(),category:r.Yj(),severity:v,title:r.Yj(),description:r.Yj(),subjects:r.YO(cm),action:co}).meta({id:"RecommendedAction"});r.Ik({items:r.YO(cp)}).meta({id:"RecommendedActionsResponse"}),r.Ik({limit:t.ai().int().min(1).max(20).default(3)});let cq=r.Ik({type:r.Yj(),policyId:r.Yj().optional(),teamId:r.Yj().optional()}).meta({id:"AppliedAction"});r.Ik({id:r.Yj(),status:r.eu("applied"),appliedAction:cq}).meta({id:"ApplyRecommendedActionResponse"}),r.Ik({id:r.Yj(),status:r.eu("dismissed")}).meta({id:"DismissRecommendedActionResponse"}),r.Ik({id:r.Yj()}),r.Ik({ruleId:r.Yj(),category:u,severity:v,maskedMatch:r.Yj(),rawMatch:r.Yj(),context:r.Yj(),filePath:r.Yj().optional(),confidence:r.ai().min(0).max(1),id:r.Yj().optional(),valueFingerprint:r.Yj().optional(),keyVersion:r.ai().int().nonnegative().optional()});let cr=r.Ik({category:u,action:a_,reasoning:r.Yj(),genuineCount:r.ai().int().nonnegative(),fpCount:r.ai().int().nonnegative(),fpIds:r.YO(r.Yj())});r.Ik({perCategory:r.YO(cr),notes:r.Yj()});let cs=r.Ik({total:r.ai().int().nonnegative(),important:r.ai().int().nonnegative(),routine:r.ai().int().nonnegative()}).refine(a=>a.total===a.important+a.routine,{message:"total must equal important + routine",path:["total"]}),ct=r.Ik({ruleId:r.Yj(),category:u,valueFingerprint:r.Yj(),keyVersion:r.ai().int().nonnegative()}),cu=r.Ik({pattern:r.Yj(),count:r.ai().int().nonnegative(),values:r.YO(ct).min(1)}),cv=r.Ik({category:u,count:r.ai().int().nonnegative(),egress:r.zM()}),cw=r.Ik({counts:cs,routineCategories:r.YO(u),surfacedCategories:r.YO(u),findingKinds:r.YO(cv),posture:r.g1(u,a_),maskedFindings:r.YO(b1).optional(),falsePositivePatterns:r.YO(cu).optional()}),cx=cr.pick({category:!0,genuineCount:!0,fpCount:!0}).extend({egress:r.zM()});r.Ik({categories:r.YO(cx),posture:r.g1(u,a_)}),r.Ik({frame:cw,copy:r.Yj()}),r.k5(["scan","floor"]);let cy=r.Ik({id:r.k5(["enter-remediation","open-dashboard","not-now"]),label:r.Yj()}),cz=r.PV([cy.extend({id:r.eu("open-dashboard")}),cy.extend({id:r.eu("not-now")})]),cA=r.PV([cy.extend({id:r.eu("enter-remediation")}),cy.extend({id:r.eu("open-dashboard")}),cy.extend({id:r.eu("not-now")})]);r.Ik({worthALook:r.ai().int().nonnegative(),liveKeys:r.ai().int().nonnegative().optional(),options:r.KC([cz,cA])}).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 cB=r.k5(["provider","internal","ip"]).meta({id:"DestinationKind"}),cC=r.k5(["https","http","sftp","grpc","smtp"]).meta({id:"Transport"}),cD=r.k5(["secrets","pii","customer","source","telemetry","logs","metrics","none"]).meta({id:"DataClass"}),cE=cD.options,cF=r.k5(["recognized","internal","unverified","ip"]).meta({id:"ShareTrustLevel"}),cG=r.k5(["allow","block"]).meta({id:"EgressDecision"}),cH=r.k5(["allowed","blocked","review"]).meta({id:"EgressStatus"}),cI=r.k5(["raw_ip","unverified_domain","plaintext_transport"]).meta({id:"ReviewReason"}),cJ=r.k5(["GET","POST","PUT","DELETE"]).meta({id:"HttpMethod"}),cK=r.Ik({needsReview:r.zM(),reasons:r.YO(cI)}).meta({id:"ReviewInfo"}),cL=r.Ik({port:r.ai().int().nullable(),geo:r.Yj().nullable(),ptr:r.Yj().nullable()}).meta({id:"DestinationNetwork"}),cM=r.Ik({id:r.Yj(),method:cJ,transport:cC,url:r.Yj(),template:r.zM(),dataClass:cD,lastSeen:s.w$(),callSiteCount:r.ai().int().nonnegative()}).meta({id:"EndpointSummary"}),cN=r.Ik({id:r.Yj(),project:r.Yj(),file:r.Yj(),line:r.ai().int().nonnegative(),snippet:r.Yj(),dynamic:r.zM(),vendored:r.zM(),projectId:r.Yj().nullable()}).meta({id:"CallSite"}),cO=cM.extend({sites:r.YO(cN)}).meta({id:"EndpointWithSites"}),cP=r.Ik({id:r.Yj(),kind:cB,name:r.Yj(),host:r.Yj(),category:r.Yj(),trust:cF,status:cH,isCustom:r.zM(),lastSeen:s.w$(),endpointCount:r.ai().int().nonnegative(),callSiteCount:r.ai().int().nonnegative(),transports:r.YO(cC),dataClasses:r.YO(cD),review:cK,network:cL.nullable(),endpoints:r.YO(cM)}).meta({id:"ShareDestinationSummary"});cP.omit({endpointCount:!0,callSiteCount:!0,endpoints:!0}).extend({note:r.Yj().nullable(),endpoints:r.YO(cO)}).meta({id:"ShareDestinationDetail"});let cQ=r.Ik({id:r.Yj(),kind:cB,name:r.Yj(),host:r.Yj(),trust:cF,status:cH,review:cK,topDataClass:cD,callSiteCount:r.ai().int().nonnegative(),lastSeen:s.w$()}).meta({id:"ReviewDestination"}),cR=r.Ik({kind:cB,total:r.ai().int().nonnegative(),items:r.YO(cP)}).meta({id:"ShareDestinationGroup"});r.Ik({groups:r.YO(cR)}).meta({id:"ListShareDestinationsResponse"}),r.Ik({items:r.YO(cQ)}).meta({id:"NeedsReviewResponse"}),r.Ik({destinations:r.ai().int().nonnegative(),endpoints:r.ai().int().nonnegative(),callSites:r.ai().int().nonnegative(),needsReview:r.ai().int().nonnegative(),insecure:r.ai().int().nonnegative(),byKind:r.Ik({provider:r.ai().int().nonnegative(),internal:r.ai().int().nonnegative(),ip:r.ai().int().nonnegative()}),byTrust:r.Ik({recognized:r.ai().int().nonnegative(),internal:r.ai().int().nonnegative(),unverified:r.ai().int().nonnegative(),ip:r.ai().int().nonnegative()})}).meta({id:"SharesStats"}),r.Ik({decision:cG.nullable()}).meta({id:"SetEgressDecisionBody"}),r.Ik({destination:cP}).meta({id:"SetEgressDecisionResponse"}),r.Ik({q:r.Yj().optional(),kind:r.YO(cB).optional(),groupBy:r.k5(["destination"]).default("destination"),review:r.uE().default(!1)}),r.Ik({format:r.k5(["csv","json"]).default("csv"),q:r.Yj().optional(),kind:r.YO(cB).optional()});let cS=new Set(["recognized","internal"]);function cT(a){return cS.has(a)?"allowed":"review"}function cU(a){return"block"===a?"blocked":"allowed"}function cV(a,b){return null===b?cT(a):cU(b)}function cW(a,b){return null!==b&&cU(b)!==cT(a)}function cX(a,b){let c=function(a,b){let c=[];return"ip"===a&&c.push("raw_ip"),"unverified"===a&&c.push("unverified_domain"),b.includes("http")&&c.push("plaintext_transport"),c}(a,b);return{needsReview:c.length>0,reasons:c}}function cY(a){return Array.from(new Set(a))}function cZ(a){let b=new Set(a);return cE.filter(a=>b.has(a))}function c$(a){return cZ(a)[0]??"none"}let c_={raw_ip:0,unverified_domain:1,plaintext_transport:2};function c0(a){return 0===a.length?1/0:Math.min(...a.map(a=>c_[a]))}},40916:(a,b,c)=>{"use strict";c.d(b,{ProjectPane:()=>k});var d=c(45487),e=c(22747),f=c(93578),g=c(20080),h=c(5199),i=c(59287);function j(a){let b=a.lastIndexOf("/");return -1===b?"":a.slice(0,b)}function k(a){let{proj:b,path:c,onPathChange:f,query:j,tree:k,isLoading:o,error:s,onClose:t}=a,u=j.trim().length>0,v=k?.folders??[],w=k?.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)(m,{proj:b,path:c,onPathChange:f})}),(0,d.jsx)(l,{...a}),t&&(0,d.jsx)(e.$n,{variant:"ghost",size:"icon","aria-label":"Back to harness",title:"Back to harness",onClick:t,children:(0,d.jsx)(i.m,{name:"x"})})]}),(0,d.jsxs)("div",{className:"mt-3 flex items-start gap-2.5",children:[(0,d.jsx)(g.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,h._t)(b,"source")}),(0,d.jsx)("span",{className:"flex items-center gap-3 text-xs text-text-3",children:h.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",h.Pe[a].bar)}),x[a]," ",h.Pe[a].label]},a))})]})]})]}),!u&&a.blocked.length>0&&(0,d.jsx)(r,{...a}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 pb-4 pt-2",children:o&&!k?(0,d.jsx)("div",{className:"py-12 text-center text-sm text-text-3",children:"Loading files…"}):s?(0,d.jsx)("div",{className:"py-12 text-center text-sm text-sev-critical",children:s}):u?w.length>0?(0,d.jsx)(q,{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)(i.m,{name:"search",className:"mx-auto mb-2 size-6"}),(0,d.jsxs)("div",{className:"text-sm",children:["No files match “",j,"”"]})]}):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)(n,{folder:a,onOpen:()=>{f([...c,a.name])}},"d"+a.name)),w.map(b=>(0,d.jsx)(p,{file:b,...a},"f"+b.path))]})]})})]})}function l({proj:a,query:b,onQueryChange:c}){return(0,d.jsxs)("div",{className:"relative w-70 shrink-0",children:[(0,d.jsx)(i.m,{name:"search",className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-text-3"}),(0,d.jsx)("input",{value:b,onChange:a=>{c(a.target.value)},placeholder:`Search files in ${a.name}…`,className:"h-9 w-full rounded-lg border border-border bg-surface-2 pl-9 pr-8 text-sm text-text placeholder:text-text-3 focus:border-primary focus:outline-none"}),b&&(0,d.jsx)("button",{type:"button","aria-label":"Clear search",onClick:()=>{c("")},className:"absolute right-2 top-1/2 -translate-y-1/2 rounded p-1 text-text-3 hover:text-text",children:(0,d.jsx)(i.m,{name:"x",className:"size-3.5"})})]})}function m({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)(i.m,{name:"arrow-up"})}),g.map((a,h)=>{let j=h===g.length-1;return(0,d.jsxs)(f.Fragment,{children:[h>0&&(0,d.jsx)(i.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",j?"cursor-default font-bold text-text":"font-semibold text-text-2 hover:text-text"),children:a})]},h)})]})}function n({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)(i.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)(g.AJ,{counts:c}),c.blocked>0?(0,d.jsxs)("span",{className:"text-xs font-semibold text-sev-critical",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)(i.m,{name:"chevron-right",className:"size-4 text-text-3"})})})]})}function o({file:a,showPath:b}){let c=j(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)(i.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",children:[(0,d.jsx)(i.m,{name:"slash-circle",className:"size-3"}),a.note]})]})]})}function p({file:a,onSetAccess:b,onOpenFile:c,drawerPath:f,showPath:h}){return(0,d.jsxs)(e.Hj,{className:(0,e.cn)("cursor-pointer hover:bg-surface-2",f===a.path&&"bg-surface-2"),onClick:()=>{c(a.path)},children:[(0,d.jsx)(e.nA,{children:(0,d.jsx)(o,{file:a,showPath:h})}),(0,d.jsx)(e.nA,{children:(0,d.jsx)(g.TJ,{origin:a.origin})}),(0,d.jsx)(e.nA,{children:(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(g.kx,{value:a.access,onChange:c=>{b(a.path,c)}}),(0,d.jsx)(g.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)(i.m,{name:"chevron-right",className:"size-4 text-text-3"})})})]})}function q({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)(p,{file:a,showPath:c,...f},a.path))})]})}function r({blocked:a,showBlocked:b,onToggleBlocked:c,onSetAccess:f,onOpenFile:k}){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",children:(0,d.jsx)(i.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 px-2 py-px text-xs font-bold text-white",children:a.length}),(0,d.jsx)("span",{className:"text-xs text-text-3",children:"Auto-blocked on detection — review to adjust"}),(0,d.jsx)(i.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=>{let b=j(a.path);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:[b.length>0&&(0,d.jsxs)("span",{className:"font-mono text-xs text-text-3",children:[b,"/"]}),(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,h.v7)(a.blockedAt)}`:""]})]}),(0,d.jsx)(g.kx,{value:a.access,onChange:b=>{f(a.path,b)}}),(0,d.jsx)(g.Vx,{value:a.access}),(0,d.jsx)(e.$n,{variant:"ghost",tone:"primary",size:"sm",onClick:()=>{k(a.path)},children:"Review"})]},a.path)})})]})}},44753:(a,b,c)=>{"use strict";c.d(b,{UpdateModal:()=>h});var d=c(45487),e=c(22747),f=c(19354),g=c(13437);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",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",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"}),(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"]})]})]})})})}},45438:(a,b,c)=>{"use strict";c.d(b,{AssetDetail:()=>k});var d=c(45487),e=c(22747),f=c(93578),g=c(20080),h=c(5199),i=c(59287);let j={skill:"Skill",mcp:"MCP server",hook:"Hook",config:"Configuration file"};function k({asset:a,onTrust:b,onClose:c}){let f="mcp"===a.type,k=a.trust,m=(0,h.TW)(a.type),n=j[a.type];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",m.bg,m.fg),children:(0,d.jsx)(i.m,{name:m.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:n})]}),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:[f&&k&&(0,d.jsx)(g.As,{value:k}),(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}),f&&k&&(0,d.jsx)(g.wn,{label:"Trust classification",children:(0,d.jsx)(g.AC,{order:h.yx,meta:h.ZY,value:k,onChange:b,accentOf:a=>a.iconBg})}),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"}),(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))})}),f&&a.tools&&(0,d.jsx)(l,{tools:a.tools,blocked:"unapproved"===k}),(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,k)})]})]})}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",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 text-white":a.write?"bg-surface-2 text-text-2":"bg-teal-fill text-teal"),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",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`]})]})}},45971:(a,b,c)=>{"use strict";c.d(b,{ScopePicker:()=>i,StateTag:()=>g,StateTagFor:()=>h});var d=c(45487),e=c(22747),f=c(35722);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({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))})}},47398:(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)"}},47599:(a,b,c)=>{"use strict";c.d(b,{K:()=>f});let d=new Intl.RelativeTimeFormat("en",{numeric:"auto"}),e=[["year",31536e3],["month",2592e3],["week",604800],["day",86400],["hour",3600],["minute",60]];function f(a){if(!a)return"";let b=Date.parse(a);if(Number.isNaN(b))return"";let c=(b-Date.now())/1e3,f=Math.abs(c);if(f<45)return"just now";for(let[a,b]of e)if(f>=b)return d.format(Math.round(c/b),a);return"just now"}},49658:(a,b,c)=>{"use strict";c.d(b,{DetectionDetailView:()=>l});var d=c(45487),e=c(22747),f=c(83798),g=c(19354),h=c(36820),i=c(3447),j=c(55659);function k({rule:a,onOpen:b}){let c=h.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:h.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,h.vm)(a.matcher)}),(0,d.jsxs)(e.$n,{variant:"ghost",tone:"primary",size:"sm",onClick:b,className:"shrink-0",children:["View",(0,d.jsx)(g.vK,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})]})]})]})}function l({d:a,onOpenRule:b,onToggleEnabled:c,onChangePolicy:l,onOpenUpdate:m,onRecheck:n,unknownHint:o}){let p=a.policyId??h.tG,q=(0,h.ES)(p),r=q.icon;return(0,d.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,d.jsx)("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":"text-text-3"),children:a.enabled?"Enabled":"Disabled"}),c&&(0,d.jsx)(e.dO,{checked:a.enabled,onCheckedChange:c,"aria-label":a.enabled?"Disable detection":"Enable detection"})]}),(0,d.jsx)(e.$n,{variant:"ghost",tone:"neutral",size:"icon","aria-label":"More",className:"size-8.5 text-text-3",children:(0,d.jsx)(g.wy,{"aria-hidden":!0,focusable:!1})})]})]})}),(0,d.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-6 overflow-y-auto p-5",children:[(0,d.jsx)(j.t,{d:a,onOpenUpdate:m,onRecheck:n,unknownHint:o}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2.5 flex items-baseline gap-2",children:[(0,d.jsx)(f.e,{children:"Enforcement policy"}),(0,d.jsx)("span",{className:"text-xs text-text-3",children:"applied to every matching request"})]}),(0,d.jsx)(i.PolicyPicker,{value:p,onChange:l}),(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)(r,{"aria-hidden":!0,focusable:!1,className:"mt-px size-4 shrink-0",style:{color:(0,h.vV)(q.tone)[0]}}),(0,d.jsx)("div",{className:"text-xs leading-snug text-text-2",children:q.desc})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-3 flex items-center gap-2.5",children:[(0,d.jsx)(f.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",disabled:!0,title:"Rule authoring coming soon",children:[(0,d.jsx)(g.c1,{"aria-hidden":!0,focusable:!1}),"Add rule"]})]}),(0,d.jsx)("div",{className:"flex flex-col gap-2.5",children:a.rules.map(a=>(0,d.jsx)(k,{rule:a,onOpen:()=>{b(a.id)}},a.id))})]})]})]})}},50467:(a,b,c)=>{"use strict";c.d(b,{AppShell:()=>d});let d=(0,c(87797).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")},50988:(a,b,c)=>{"use strict";c.d(b,{SessionDetailView:()=>p});var d=c(45487),e=c(22747),f=c(93578),g=c(83798),h=c(19354),i=c(29102),j=c(68182),k=c(82546),l=c(79315),m=c(4053),n=c(61544);function o({session:a,tokenReport:b,liveFindings:c,linkHref:o,toolHref:p}){let q=i.x[a.harness],r=(0,n.Tp)(a.tools),[s,t]=(0,f.useState)(!1);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 px-5 py-4",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 flex-wrap items-center gap-2.5",children:[(0,d.jsx)("span",{className:"font-display text-lg font-semibold text-text",children:a.title}),(0,d.jsx)(k.UD,{status:a.status})]}),(0,d.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2 text-ui text-text-3",children:[q.label," \xb7 ",n.Ay[a.harness],(0,d.jsx)("span",{className:"text-border-strong",children:"\xb7"}),(0,d.jsx)("span",{className:"font-mono",children:a.id})]})]}),(0,d.jsx)("div",{className:"flex gap-1",children:(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-4 grid 2xl:grid-cols-4 grid-cols-3 gap-x-4 gap-y-3.5 max-h-44 overflow-y-auto",children:[(0,d.jsx)(g.p,{label:"Working dir",children:(0,d.jsx)("span",{className:"font-mono break-all",children:a.cwd})}),(0,d.jsx)(g.p,{label:"Branch",children:(0,d.jsx)(k.Lw,{items:a.branches,mono:!0})}),(0,d.jsx)(g.p,{label:"Model",children:(0,d.jsx)(k.Lw,{items:a.models,mono:!0})}),(0,d.jsxs)(g.p,{label:"Started",children:[(0,m.rw)(a.startedAt)," \xb7 ",(0,m.nt)(a.startedAt)]}),(0,d.jsx)(g.p,{label:"Duration",children:(0,m.vV)(a.startedAt,a.endedAt,a.status)}),(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:"inline-flex flex-wrap items-center gap-x-1.5",children:[a.findings>0&&(0,d.jsxs)("span",{className:"font-semibold text-sev-critical",title:"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:"text-border-strong",children:"\xb7"}),c&&(0,d.jsxs)("a",{href:c.href,className:"inline-flex items-center gap-0.5 font-semibold text-sev-critical 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",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"]}),r.map(a=>(0,d.jsx)(k.zn,{name:a.name,n:a.n,...p?{href:p(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:[s?"Raw events":"Audit log",(0,d.jsx)("span",{className:"text-border-strong",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"]})]}),s?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,...o?{linkHref:o}:{}})]}),(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:()=>{t(a=>!a)},children:[(0,d.jsx)(h.kp,{"aria-hidden":!0,focusable:!1,className:"size-3.5"}),s?"View timeline":"View raw events"]})]})]})}function p({session:a,isLoading:b,error:c,tokenReport:f,liveFindings:g,linkHref:h,toolHref:i}){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)(o,{session:a,tokenReport:f??null,liveFindings:g??null,...h?{linkHref:h}:{},...i?{toolHref:i}:{}}):(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"})})}},51549:(a,b,c)=>{"use strict";c.d(b,{B:()=>f,i:()=>g});var d=c(45487),e=c(29102);function f({ids:a}){return(0,d.jsx)("div",{className:"flex items-center -space-x-1.5",children:a.map(a=>(0,d.jsx)("span",{title:e.x[a].label,className:"inline-flex rounded-lg ring-2 ring-surface",children:(0,d.jsx)(e.K,{id:a})},a))})}function g({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]})}},55417:(a,b,c)=>{"use strict";c.d(b,{BlockedLedgerView:()=>j});var d=c(45487),e=c(22747),f=c(47599),g=c(1389),h=c(19354),i=c(84497);function j({items:a,onApprove:b,blockedWindow:c,onBlockedWindowChange:j}){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 text-white",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 px-2 py-0.5 text-xs font-bold text-white",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:j})})]}),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=>(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),a.repo?` \xb7 ${a.repo}`:""]})]}),(0,d.jsx)(e.$n,{onClick:()=>{b(a.reference)},variant:"ghost",tone:"primary",size:"sm",children:"Approve"})]},a.reference))})]})}},55659:(a,b,c)=>{"use strict";c.d(b,{t:()=>i});var d=c(45487),e=c(22747),f=c(19354),g=c(13437),h=c(36820);function i({d:a,onOpenUpdate:b,onRecheck:c,unknownHint:i}){let j=(0,h.Xg)(a),k=a.update?.latestVersion??a.latestVersion??"";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)(g.Ai,{origin:a.origin}),(0,d.jsx)(g.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"===j?(0,d.jsxs)("div",{className:"flex items-center gap-3 bg-sev-high-fill px-4 py-3",children:[(0,d.jsx)(f.Kp,{"aria-hidden":!0,focusable:!1,className:"size-4.5 shrink-0 text-sev-high"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"text-sm font-semibold text-sev-high",children:["Update available \xb7 v",k]}),(0,d.jsx)("div",{className:"mt-px text-xs leading-snug text-text-2",children:"A newer version is published upstream."})]}),b&&(0,d.jsx)(e.$n,{size:"sm",onClick:b,className:"shrink-0 bg-sev-high text-white hover:bg-sev-high",children:"Update"})]}):"up-to-date"===j?(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)(f.C1,{"aria-hidden":!0,focusable:!1,className:"size-4 text-ok"}),"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)(f.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",i?(0,d.jsxs)(d.Fragment,{children:[" — ",i]}):"."]}),c&&(0,d.jsx)(e.$n,{variant:"ghost",tone:"neutral",size:"sm",onClick:c,children:"Check again"})]})]})}},58151:()=>{},58913:(a,b,c)=>{"use strict";c.d(b,{ColumnsMenu:()=>o,FindingsToolbarView:()=>m});var d=c(45487),e=c(22747),f=c(33159),g=c(19354),h=c(29102),i=c(126);let j=a=>a.charAt(0).toUpperCase()+a.slice(1),k=a=>a in h.x?h.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,query:e,onQueryChange:h,findingCount:m,typeCount:o}){let p=new Map(a.severity.map(a=>[a.value,a.count])),q=i.oC.map(a=>({value:a,label:j(a),count:p.get(a)??0})),r=l(a.subtype.map(a=>({value:a.value,label:a.value,count:a.count})),b.type,a=>a),s=l(a.provider.map(a=>({value:a.value,label:k(a.value),count:a.count})),b.provider,k),t=l(a.action.map(a=>({value:a.value,label:j(a.value),count:a.count})),b.action,j),u=(a,d)=>{c({...b,[a]:d})};return(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsxs)("div",{className:"relative w-64",children:[(0,d.jsx)(g.WI,{className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-text-3"}),(0,d.jsx)("input",{type:"text","aria-label":"Search findings",placeholder:"Search findings…",value:e,onChange:a=>{h(a.target.value)},className:"h-9 w-full rounded-lg border border-border bg-surface-2 pl-9 pr-3 text-sm text-text placeholder:text-text-3 focus:border-primary focus:outline-none"})]}),(0,d.jsx)(n,{label:"Severity",options:q,selected:b.severity,onChange:a=>{u("severity",a)}}),(0,d.jsx)(n,{label:"Type",options:r,selected:b.type,onChange:a=>{u("type",a)}}),(0,d.jsx)(n,{label:"Provider",options:s,selected:b.provider,onChange:a=>{u("provider",a)}}),(0,d.jsx)(n,{label:"Action",options:t,selected:b.action,onChange:a=>{u("action",a)}}),(0,d.jsx)("span",{className:"h-6 bg-border w-px"}),(0,d.jsxs)("span",{className:"text-sm text-text-3",children:[(0,d.jsx)("span",{className:"font-semibold text-text",children:f.jq.format(m)})," finding",1===m?"":"s"," \xb7"," ",(0,d.jsx)("span",{className:"font-semibold text-text",children:f.jq.format(o)})," type",1===o?"":"s"]})]})}function n({label:a,options:b,selected:c,onChange:f}){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 text-[10px] font-semibold text-text-inv",children:c.length}),(0,d.jsx)(g.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,f(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 bg-primary text-text-inv":"border-border"),children:b&&(0,d.jsx)(g.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:()=>{f([])},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"})]})]})}function o({columns:a,visibility:b,onChange:c}){let f=a=>!1!==b[a],h=a.filter(a=>f(a.id)).length;return(0,d.jsxs)(e.AM,{children:[(0,d.jsx)(e.Wv,{asChild:!0,children:(0,d.jsxs)(e.$n,{variant:"outline",children:[(0,d.jsx)(g.Qf,{})," Columns"]})}),(0,d.jsx)(e.hl,{align:"end",className:"min-w-44 p-1",children:a.map(a=>{let i=f(a.id);return(0,d.jsxs)("button",{type:"button",onClick:()=>{i&&1===h?c({}):c({...b,[a.id]:!i})},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",i?"border-primary bg-primary text-text-inv":"border-border"),children:i&&(0,d.jsx)(g.Sr,{className:"size-3"})}),a.header]},a.id)})})]})}},59057:(a,b,c)=>{"use strict";c.d(b,{AppShell:()=>k});var d=c(45487),e=c(22747),f=c(15350),g=c.n(f),h=c(669),i=c(76428);let j=[{label:"Security",icon:i.Zu,href:"/security"},{label:"Findings",icon:i.kp,href:"/findings"},{label:"Inventory",icon:i.mL,href:"/inventory"},{label:"Data Shares",icon:i._G,href:"/data-shares"},{label:"Activity",icon:i.np,href:"/activity"},{label:"Detections",icon:i.kp,href:"/detections"},{label:"Policies",icon:i.iB,href:"/policies"},{label:"Exceptions",icon:i.RY,href:"/exceptions"},{label:"Scan",icon:i.WI,href:"/scan"},{label:"Updates",icon:i.fN,href:"/updates"},{label:"Settings",icon:i.Ze,href:"/settings"}];function k({children:a}){let b=(0,h.usePathname)();return(0,d.jsxs)("div",{className:"flex h-screen overflow-hidden bg-canvas",children:[(0,d.jsx)(l,{pathname:b}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,d.jsx)(n,{}),(0,d.jsx)("main",{className:"flex-1 overflow-y-auto",children:a})]})]})}function l({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-text/6 px-5",children:(0,d.jsx)(i.j4,{"aria-label":"AKA",className:"h-8 w-auto text-text"})}),(0,d.jsx)("nav",{className:"flex flex-1 flex-col gap-0.5 overflow-y-auto px-3 py-3.5",children:j.map(b=>(0,d.jsx)(m,{item:b,active:void 0!==b.href&&(a===b.href||a.startsWith(`${b.href}/`))},b.label))})]})}function m({item:a,active:b}){let c=a.icon,f=(0,e.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?"bg-primary-tint text-primary font-semibold":"text-text-2 hover:bg-surface-2 hover:text-text"),h=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(c,{"aria-hidden":!0,focusable:!1,className:(0,e.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)(g(),{href:a.href,"aria-current":b?"page":void 0,className:f,children:h}):(0,d.jsx)("button",{type:"button","aria-current":b?"page":void 0,className:f,children:h})}function n(){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"})})}},59287:(a,b,c)=>{"use strict";c.d(b,{m:()=>h});var d=c(22747),e=c(93578),f=c(19354);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)})}},59472:(a,b,c)=>{"use strict";c.d(b,{MttrTrendCardView:()=>l});var d=c(45487),e=c(22747),f=c(47398),g=c(93577),h=c(19354);function i(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 j=c(33159);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,isLoading:b,error:c}){let f=a.every(a=>null===a.critical&&null===a.high&&null===a.medium&&null===a.low),l=a.map(a=>({label:a.label,critical:a.critical,high:a.high,medium:a.medium,low:a.low})),m=a.at(-1)??null;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:k.map(a=>(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"size-2 rounded-xs",style:{background:a.color}}),a.label,m&&(0,d.jsx)("span",{className:"text-text-3",children:i(m[a.key])})]},a.key))})]}),(0,d.jsx)(e.Wu,{"aria-busy":b,className:"pb-2",children:c?(0,d.jsx)(j.rJ,{message:c}):b?(0,d.jsx)(e.EA,{className:"h-40 w-full"}):f?(0,d.jsx)(j.AW,{message:"No resolved findings in this range."}):(0,d.jsx)(g.AreaChart,{data:l,series:k,height:160,valueFormat:i})})]})}},59972:(a,b,c)=>{"use strict";c.d(b,{ExceptionsTableView:()=>i});var d=c(45487),e=c(22747),f=c(47599),g=c(45971),h=c(35722);function i({items:a,includeTerminal:b,onSelect:c}){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",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:a.maskedValue}),(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)}),(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)," \xb7 ",h.gi[a.createdVia]]}),(0,d.jsx)(e.nA,{children:(0,d.jsx)(g.StateTagFor,{exception:a})})]},a.id))})]})})}},60343:(a,b,c)=>{"use strict";c.d(b,{UpdateStatusCardView:()=>g});var d=c(45487),e=c(22747),f=c(19354);function g({statuses:a,checkedAt:b,onCheckNow:c,onApply:g,applyingId:h,outcomes:i,restartRequired:j,busy:k}){return(0,d.jsxs)(e.Zp,{className:"shadow-sm",children:[(0,d.jsxs)(e.aR,{children:[(0,d.jsx)(e.AG,{className:"bg-primary-tint text-primary",children:(0,d.jsx)(f.fN,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,d.jsxs)(e.Lc,{children:[(0,d.jsx)(e.ZB,{children:"Installed components"}),(0,d.jsx)(e.BT,{children:b?`Last checked ${b}`:"Not checked yet"})]}),(0,d.jsx)(e.$n,{variant:"outline",tone:"neutral",size:"sm",disabled:k,onClick:c,children:k?"Checking…":"Check now"})]}),(0,d.jsxs)(e.Wu,{children:[j&&(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=i[a.id];return(0,d.jsxs)("div",{className:(0,e.cn)("py-3",b>0&&"border-t border-text/6"),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&&a.updateAvailable&&` → ${a.latest}`]})]}),null===a.installed||null===a.latest?(0,d.jsx)(e.Ex,{variant:"default",children:"unknown"}):a.updateAvailable?(0,d.jsx)(e.Ex,{variant:"high",children:"update available"}):(0,d.jsx)(e.Ex,{variant:"success",children:"up to date"}),a.updateAvailable&&(0,d.jsx)(e.$n,{variant:"solid",tone:"primary",size:"sm",disabled:null!==h,onClick:()=>{g(a.id)},children:h===a.id?"Updating…":"Update"})]}),c&&(0,d.jsxs)("div",{className:(0,e.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."})]})]})]})}},61544:(a,b,c)=>{"use strict";c.d(b,{$x:()=>g,Ay:()=>e,Oy:()=>k,Tp:()=>l,ek:()=>i,nR:()=>j,ni:()=>m,oo:()=>f,pS:()=>h});var d=c(19354);let e={claudecode:"CLI agent",cursor:"IDE",copilot:"IDE",codex:"CLI agent",windsurf:"IDE",claudedesktop:"Desktop app",chatgpt:"Web app",api:"API"},f=["claudecode","cursor","copilot","codex","windsurf","claudedesktop","chatgpt","api"],g={session:{label:"Session",icon:d.k3,text:"text-text-2",fill:"bg-surface-3"},prompt:{label:"Prompt",icon:d.ny,text:"text-primary",fill:"bg-primary-tint"},response:{label:"Response",icon:d.BZ,text:"text-violet",fill:"bg-violet-fill"},tool:{label:"Tool",icon:d.k3,text:"text-text-2",fill:"bg-surface-3"},hook:{label:"Hook",icon:d.hF,text:"text-sev-low",fill:"bg-sev-low-fill"},detection:{label:"Detection",icon:d.Zu,text:"text-sev-critical",fill:"bg-sev-critical-fill"},share:{label:"Egress",icon:d._G,text:"text-teal",fill:"bg-teal-fill"},permission:{label:"Permission",icon:d.XA,text:"text-sev-high",fill:"bg-sev-high-fill"},commit:{label:"Commit",icon:d.OK,text:"text-text-2",fill:"bg-surface-3"},error:{label:"Error",icon:d._0,text:"text-sev-critical",fill:"bg-sev-critical-fill"},active:{label:"In progress",icon:d.DQ,text:"text-primary",fill:"bg-primary-tint"}},h={Bash:d.k3,Edit:d.qU,Write:d.qU,Read:d.oS,Grep:d.WI,WebFetch:d.fC,Task:d.hF},i=d.k3,j={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"}},k={detections:"Findings",shares:"Data Shares",inventory:"Inventory"};function l(a){return Object.entries(a).map(([a,b])=>({name:a,n:b})).sort((a,b)=>b.n-a.n)}function m(a){return Object.values(a).reduce((a,b)=>a+b,0)}},62205:(a,b,c)=>{"use strict";c.d(b,{AvailablePluginsCardView:()=>g});var d=c(45487),e=c(22747),f=c(19354);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,{className:"bg-teal-fill text-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-text/6"),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)})})})]})}},64062:(a,b,c)=>{"use strict";c.d(b,{InventoryNav:()=>l});var d=c(45487),e=c(22747),f=c(93578),g=c(29102),h=c(20080),i=c(5199),j=c(59287);let k=[{type:"all",label:"All"},...i.fd.map(a=>({type:a.type,label:"Configuration"===a.label?"Config":a.label.replace(" servers","")}))];function l(a){let{projects:b,assetGroups:c,harnesses:g,viewMode:h,onViewMode:i,typeFilter:l,onTypeFilter:n,query:p,onQuery:q,attention:r,isLoading:s}=a,t=(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]),u=(0,f.useMemo)(()=>{let a=p.toLowerCase(),c=b=>!a||b.toLowerCase().includes(a);return b.filter(a=>c(a.name)||c(a.repo))},[b,p]);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===r?(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",r?"text-sev-high":"text-ok"),children:[(0,d.jsx)(j.m,{name:r?"flag":"check-circle",className:"size-3.5"}),r?`${String(r)} to review`:"All clear"]})]}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(j.m,{name:"search",className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-text-3"}),(0,d.jsx)("input",{value:p,onChange:a=>{q(a.target.value)},placeholder:"Search assets…",className:"h-8.5 w-full rounded-lg border border-border bg-surface-2 pl-9 pr-3 text-sm text-text placeholder:text-text-3 focus:border-primary focus:outline-none"})]}),(0,d.jsxs)(e.Iz,{className:"mt-3 flex w-full",value:h,onValueChange:a=>{a&&i(a)},children:[(0,d.jsxs)(e.tR,{value:"tree",children:[(0,d.jsx)(j.m,{name:"layers"})," By harness"]}),(0,d.jsxs)(e.tR,{value:"type",children:[(0,d.jsx)(j.m,{name:"list"})," By type"]})]}),"type"===h&&(0,d.jsx)(e.Iz,{className:"mt-2.5 flex w-full flex-wrap border-0 bg-transparent p-0 gap-1.5",value:l,onValueChange:a=>{a&&n(a)},children:k.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:s&&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"===h?(0,d.jsx)(m,{...a}):(0,d.jsx)(o,{...a,projList:u,assetsByType:t})})]})}function m(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)(s,{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)(n,{h:b,...a},b.id)):(0,d.jsx)(h.EmptyState,{message:c?"No matches":"No harnesses detected"})})]})}function n(a){let{h:b,sel:c,expanded:f,onToggleExpand:h,onSelectHarness:k,onSelectAsset:l,query:m}=a,n=b.projects,o=b.categories,r=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":r?"Collapse":"Expand","aria-expanded":r,onClick:()=>{h(b.id,!r)},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)(j.m,{name:"chevron-right",className:(0,e.cn)("size-3.5 transition-transform",r&&"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:()=>{k(b.id),r||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)(j.m,{name:"check-circle",className:"size-3.5 text-ok"}):(0,d.jsx)("span",{className:"rounded-full bg-sev-high px-1.5 py-px text-xs font-bold text-white",children:b.flagCount})]})]})]}),r&&(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)(j.m,{name:i.WD.icon,className:"size-3 text-text-3"}),(0,d.jsx)("span",{className:"text-label font-bold uppercase tracking-wider text-text-3",children:i.WD.label}),(0,d.jsx)("span",{className:"text-label font-semibold text-text-3",children:n.length})]}),n.map(c=>(0,d.jsx)(p,{p:c,fromHarness:b.id,...a},c.id))]}),o.map(a=>{let e=i.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)(j.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)(q,{it:a,indent:!0,fromHarness:b.id,sel:c,onSelectAsset:l},a.id))]},a.type)})]})]})}function o(a){let{typeFilter:b,query:c,projList:e,assetsByType:f}=a,g=c.toLowerCase(),j=a=>!g||a.toLowerCase().includes(g),k=0,l=i.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)(r,{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)(h.EmptyState,{message:`No ${c.label.toLowerCase()}`}):e.map(b=>(0,d.jsx)(p,{p:b,...a},b.id))})]},c.type))}let i=f[c.type].filter(a=>j(a.name)||j(a.sub));return 0===i.length&&"all"===b?null:(i.length>0&&k++,(0,d.jsxs)("div",{children:[(0,d.jsx)(r,{group:c,items:i,mcpItems:"mcp"===c.type?i:void 0}),(0,d.jsx)("div",{className:"flex flex-col gap-0.5",children:0===i.length?(0,d.jsx)(h.EmptyState,{message:`No ${c.label.toLowerCase()}`}):i.map(b=>(0,d.jsx)(q,{it:b,sel:a.sel,onSelectAsset:a.onSelectAsset},b.id))})]},c.type))});return"all"===b&&0===k?(0,d.jsx)(h.EmptyState,{icon:"search",message:c?`No assets match “${c}”`:"No assets"}):(0,d.jsx)(d.Fragment,{children:l})}function p({p:a,fromHarness:b,selFromHarness:c,sel:f,onSelectProject:g}){let k=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,i.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)(h.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)(j.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)(h.AJ,{counts:k}),k.blocked>0?(0,d.jsxs)("span",{className:"text-xs font-semibold text-sev-critical",children:[k.blocked," blocked"]}):(0,d.jsxs)("span",{className:"text-xs text-text-3",children:[k.total," files"]}),l>0&&(0,d.jsx)("span",{className:"ml-auto shrink-0",children:(0,d.jsx)(h.Kh,{flags:["findings"],mini:!0})})]})]})}function q({it:a,indent:b,fromHarness:c,sel:f,onSelectAsset:g}){let k=f?.type===a.type&&f.id===a.id,l=(0,i.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",k?"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)(j.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)(h.As,{value:m}),a.flags.length>0&&(0,d.jsx)(h.Kh,{flags:a.flags,mini:!0})]})]})}function r({group:a,items:b,mcpItems:c}){let f=(0,i.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)(j.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:i.ZY[a.k].tone,children:[a.n," ",i.ZY[a.k].label.toLowerCase()]},a.k)),f.map(a=>(0,d.jsxs)(e.Ex,{variant:i.lx[a.key].tone,children:[a.count," ",i.lx[a.key].short.toLowerCase()]},a.key))]})]})}function s({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)(j.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})]})}},68182:(a,b,c)=>{"use strict";c.d(b,{A:()=>g,r:()=>f});var d=c(45487),e=c(22747);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})}},70878:(a,b,c)=>{"use strict";c.d(b,{TimeRangeSelect:()=>i});var d=c(45487),e=c(22747),f=c(1389);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))})})]})}},71653:(a,b,c)=>{"use strict";function d(a,b){return{input:a,output:b,cacheWrite5m:1.25*a,cacheWrite1h:2*a,cacheRead:.1*a,webSearch:.01}}c.d(b,{PWo:()=>_,spO:()=>bd,V0H:()=>aL,xdw:()=>i,ap_:()=>g,UKt:()=>h});let e={"claude-fable-5":d(10,50),"claude-opus-4-8":d(5,25),"claude-opus-4-7":d(5,25),"claude-opus-4-6":d(5,25),"claude-opus-4-5":d(5,25),"claude-sonnet-5":d(3,15),"claude-sonnet-4-6":d(3,15),"claude-sonnet-4-5":d(3,15),"claude-haiku-4-5":d(1,5)};Object.fromEntries(Object.entries(e).map(([a,b])=>[`anthropic/${a}`,b])),Object.keys(e);let f=new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1});function g(a){return f.format(a)}function h(a){return a>0&&a<.1?`$${a.toFixed(4)}`:`$${a.toFixed(2)}`}function i(a,b){return b?`≥ ${h(a)}`:h(a)}var j=c(99213),k=c(94925),l=c(4095);let m=j.k5(["pii","financial","secret","phi","code_context","code_flaw","custom","config"]).meta({id:"DetectionCategory"}),n=j.k5(["critical","high","medium","low"]).meta({id:"Severity"}),o=j.k5(["warn","redact","block","allow","log"]).meta({id:"ActionTaken"});o.options;let p=j.Ik({start:j.ai().int().nonnegative(),end:j.ai().int().nonnegative()}).meta({id:"Span"}),q=j.Ik({id:j.Os(),eventId:j.Os(),ruleId:j.Yj(),category:m,severity:n,span:p,maskedMatch:j.Yj(),actionTaken:o,confidence:j.ai().min(0).max(1)}).meta({id:"Finding"});q.meta({id:"DetectedFinding"});let r=j.k5(["blocked","redacted","warned","allowed","quarantined","monitored"]).meta({id:"FindingAction"}),s=j.k5(["claudecode","claudedesktop","cursor","copilot","chatgpt","api"]).meta({id:"FindingProvider"}),t=j.k5(["secret","pii","source_code","external_share","mcp_server","customer_data","financial","phi","custom"]).meta({id:"FindingCategory"});j.k5(["in-flight","at-rest"]).meta({id:"FindingOrigin"});let u=j.k5(["open","handled","resolved","dismissed"]).meta({id:"FindingStatus"});j.k5(["enforced-in-flight","fixed-at-source","exception","acknowledged","false-positive","redetected"]).meta({id:"ResolutionMethod"});let v=j.Ik({maskedValue:j.Yj(),contextPrefix:j.Yj()}).meta({id:"FindingMatch"}),w=j.Ik({id:j.Yj(),name:j.Yj().nullable()}).meta({id:"FindingDetectionRef"}),x=j.Ik({id:j.Yj(),name:j.Yj()}).meta({id:"FindingPolicyRef"}),y=j.Ik({id:j.Yj(),provider:s,repo:j.Yj(),file:j.Yj(),toolName:j.Yj().optional(),action:r,detectedAt:k.w$(),confidence:j.ai().min(0).max(1),status:u.optional()}).meta({id:"FindingInstance"}),z=j.Ik({id:j.Yj(),category:t,subtype:j.Yj(),severity:n,match:v,detection:w,policy:x,instanceCount:j.ai().int().nonnegative(),providers:j.YO(s),aggregateAction:r.nullable(),latestDetectedAt:k.w$(),instances:j.YO(y),status:u.optional()}).meta({id:"FindingGroup"});j.Ik({findings:j.ai().int().nonnegative(),groups:j.ai().int().nonnegative(),bySeverity:j.Ik({critical:j.ai().int().nonnegative(),high:j.ai().int().nonnegative(),medium:j.ai().int().nonnegative(),low:j.ai().int().nonnegative()})}).meta({id:"FindingStats"});let A=j.Ik({value:j.Yj(),count:j.ai().int().nonnegative()}).meta({id:"FindingFacetItem"}),B=j.Ik({severity:j.YO(A),subtype:j.YO(A),provider:j.YO(A),action:j.YO(A)}).meta({id:"FindingFacets"});j.Ik({severity:j.YO(n).optional(),subtype:j.YO(j.Yj()).optional(),provider:j.YO(s).optional(),action:j.YO(r).optional(),q:j.Yj().optional(),sessionId:j.Yj().optional(),groupBy:j.eu("type").optional(),limit:l.ai().int().min(1).max(100).optional(),cursor:j.Yj().optional()}),j.Ik({totals:j.Ik({findings:j.ai().int().nonnegative(),groups:j.ai().int().nonnegative()}),facets:B,items:j.YO(z),nextCursor:j.Yj().nullable(),sessionFirings:j.g1(j.Yj(),j.ai().int().nonnegative()).optional()}).meta({id:"ListGroupedFindingsResponse"}),j.Ik({action:r.exclude(["quarantined"]),instanceId:j.Yj().optional()}).meta({id:"ApplyFindingActionRequest"}),z.meta({id:"ApplyFindingActionResponse"}),j.Ik({severity:j.YO(n).optional(),subtype:j.YO(j.Yj()).optional(),provider:j.YO(s).optional(),action:j.YO(r).optional(),q:j.Yj().optional(),format:j.k5(["csv","json"]).optional()}),y.extend({groupId:j.Yj(),category:t,subtype:j.Yj(),severity:n,match:v,detection:w,policy:x}).meta({id:"FindingInstanceDetail"});let C=j.k5(["claudecode","cursor","copilot","codex","windsurf","claudedesktop","chatgpt","api"]).meta({id:"Harness"}),D=j.k5(["host","harness","user","skill","hook","mcp_server","config_file"]).meta({id:"InventoryObjectType"}),E=j.k5(["session","run","tool_call","llm_call","source_lookup","prompt","response","code_change","tool_use","config_scan"]).meta({id:"AuditEventType"}),F=j.g1(j.Yj(),j.L5());j.Ik({host_name:j.Yj().optional(),os:j.Yj().optional(),os_version:j.Yj().optional(),arch:j.Yj().optional()}).catchall(j.L5()),j.Ik({harness_version:j.Yj().optional(),interface:j.Yj().optional()}).catchall(j.L5()),j.Ik({display_name:j.Yj().optional(),email:j.Yj().optional()}).catchall(j.L5()),j.Ik({source:j.Yj().optional(),version:j.Yj().optional(),description:j.Yj().optional(),updated_at:j.Yj().optional(),scope:j.Yj().optional(),plugin_name:j.Yj().optional()}).catchall(j.L5()),j.Ik({event:j.Yj().optional(),matcher:j.Yj().optional(),command:j.Yj().optional(),scope:j.Yj().optional(),plugin_name:j.Yj().optional(),timeout:j.ai().optional()}).catchall(j.L5()),j.Ik({scope:j.Yj().optional(),transport:j.Yj().optional(),command:j.Yj().optional(),url:j.Yj().optional(),env_keys:j.YO(j.Yj()).optional(),plugin_name:j.Yj().optional(),marketplace:j.Yj().optional(),project:j.Yj().optional()}).catchall(j.L5()),j.Ik({kind:j.Yj().optional(),detail:j.Yj().optional(),scope:j.Yj().optional(),updated_at:j.Yj().optional(),entry_count:j.ai().optional()}).catchall(j.L5());let G=j.Ik({model:j.Yj().optional(),provider:j.Yj().optional(),input_tokens:j.ai().int().nonnegative().optional(),output_tokens:j.ai().int().nonnegative().optional(),cache_creation_input_tokens:j.ai().int().nonnegative().optional(),cache_read_input_tokens:j.ai().int().nonnegative().optional(),ephemeral_1h_input_tokens:j.ai().int().nonnegative().optional(),ephemeral_5m_input_tokens:j.ai().int().nonnegative().optional(),web_search_requests:j.ai().int().nonnegative().optional(),web_fetch_requests:j.ai().int().nonnegative().optional(),service_tier:j.Yj().optional(),stop_reason:j.Yj().optional(),message_id:j.Yj().optional(),uuid:j.Yj().optional(),parent_uuid:j.Yj().optional(),run_key:j.Yj().optional()}).catchall(j.L5());j.Ik({sessionId:j.Yj().min(1),messageId:j.Yj().min(1),parentId:j.Yj().min(1),rootSessionId:j.Yj().min(1),startedAt:k.w$(),attributes:G});let H=j.Ik({tool_name:j.Yj().optional(),tool_use_id:j.Yj().optional(),target:j.Yj().optional(),is_error:j.zM().optional(),input_size:j.ai().int().nonnegative().optional(),output_size:j.ai().int().nonnegative().optional(),uuid:j.Yj().optional(),parent_uuid:j.Yj().optional(),run_key:j.Yj().optional()}).catchall(j.L5()),I=j.Ik({ruleId:j.Yj().min(1),ruleName:j.Yj(),ruleVersion:j.Yj().min(1),category:m,severity:n,span:p,maskedMatch:j.Yj(),actionTaken:o,confidence:j.ai().min(0).max(1)});j.Ik({sessionId:j.Yj().min(1),toolUseId:j.Yj().min(1),parentId:j.Yj().min(1),rootSessionId:j.Yj().min(1),startedAt:k.w$(),attributes:H,inspections:j.YO(I).default([])});let J=j.Ik({objectType:D,identityKey:j.Yj().min(1),location:j.Yj().optional(),title:j.Yj().optional(),hostId:j.Yj().optional(),attributes:F.default({})}).meta({id:"InventoryInput"}),K=j.Ik({url:j.Yj().min(1),name:j.Yj().optional(),attributes:F.default({})}).meta({id:"SourceProjectInput"}),L=j.Ik({id:j.Yj().min(1),eventType:E,startedAt:k.w$(),endedAt:k.w$().optional(),parentId:j.Yj().optional(),rootSessionId:j.Yj().optional(),hostId:j.Yj().optional(),harnessId:j.Yj().optional(),sourceProjectId:j.Yj().optional(),severity:n.optional(),priority:j.Yj().optional(),content:j.Yj().optional(),contentHash:j.Yj().optional(),attributes:F.optional()}).meta({id:"AuditEventInput"});j.Ik({class:j.Yj().min(1),label:j.Yj().optional(),attributes:F.optional()});let M=j.Ik({ruleId:j.Yj().min(1),version:j.Yj().min(1),name:j.Yj(),category:m,severity:n,definition:j.Yj()});j.Ik({id:j.Yj().min(1),auditEventId:j.Yj().min(1),inspectionDefinitionId:j.Yj().min(1),classifiedDataId:j.Yj().optional(),span:p,maskedMatch:j.Yj(),actionTaken:o,confidence:j.ai().min(0).max(1)}),j.Ik({host:J.optional(),harness:J.optional(),project:K.optional()}).meta({id:"InventoryContext"}),j.Ik({hostId:j.Yj().optional(),harnessId:j.Yj().optional(),accountId:j.Yj().optional(),sourceProjectId:j.Yj().optional()}).meta({id:"ResolvedInventory"}),j.Ik({hosts:j.YO(j.Yj()),harnesses:j.YO(j.Yj()),osVersions:j.YO(j.Yj()),projects:j.YO(j.Yj())}).meta({id:"InventoryFacets"});let N=j.Ik({sessionId:j.Yj(),model:j.Yj(),provider:j.Yj(),inputTokens:j.ai().int().nonnegative(),outputTokens:j.ai().int().nonnegative(),cacheCreation:j.ai().int().nonnegative(),cacheRead:j.ai().int().nonnegative(),totalTokens:j.ai().int().nonnegative(),estimatedCostUsd:j.ai().nullable()}).meta({id:"TokenRollup"});j.Ik({sessionId:j.Yj(),rollups:j.YO(N),totalTokens:j.ai().int().nonnegative(),estimatedCostUsd:j.ai().nullable(),costIsPartial:j.zM()});let O=j.Ik({provider:j.Yj(),model:j.Yj(),inputTokens:j.ai().int().nonnegative(),outputTokens:j.ai().int().nonnegative(),cacheTokens:j.ai().int().nonnegative(),totalTokens:j.ai().int().nonnegative(),estimatedCostUsd:j.ai().nullable()});j.Ik({models:j.YO(O),sessionCount:j.ai().int().nonnegative(),totalTokens:j.ai().int().nonnegative(),estimatedCostUsd:j.ai(),costIsPartial:j.zM()});let P=j.k5(["active","completed","interrupted","error"]),Q=j.k5(["session","prompt","response","tool","hook","detection","share","permission","commit","error","active"]),R=j.k5(["detections","shares","inventory"]),S=j.Ik({id:j.Yj(),occurredAt:k.w$(),kind:Q,title:j.Yj(),detail:j.Yj(),tool:j.Yj().nullable(),severity:n.nullable(),link:R.nullable(),targetId:j.Yj().nullable(),internal:j.zM(),flagged:j.zM()}).meta({id:"ActivityAuditEvent"}),T=j.Ik({id:j.Yj(),harness:C,title:j.Yj(),project:j.Yj(),repo:j.Yj(),branches:j.YO(j.Yj()),startedAt:k.w$(),endedAt:k.w$().nullable(),status:P,turns:j.ai().int().nonnegative(),findings:j.ai().int().nonnegative(),shares:j.ai().int().nonnegative()}).meta({id:"ActivitySessionSummary"});T.extend({host:j.Yj(),cwd:j.Yj(),models:j.YO(j.Yj()),version:j.Yj(),tokens:N,tools:j.g1(j.Yj(),j.ai().int().nonnegative()),files:j.YO(j.Yj()),commits:j.ai().int().nonnegative(),events:j.YO(S)}).meta({id:"ActivitySession"}),j.Ik({tz:j.Yj().optional()});let U=j.Ik({sessionsToday:j.ai().int().nonnegative(),liveNow:j.ai().int().nonnegative(),toolCallsToday:j.ai().int().nonnegative(),findingsToday:j.ai().int().nonnegative(),egressToday:j.ai().int().nonnegative()}).meta({id:"GetActivityStatsResponse"});j.Ik({q:j.Yj().optional(),harness:j.YO(C).optional(),from:j.KC([k.p6(),k.w$()]).optional(),to:j.KC([k.p6(),k.w$()]).optional(),excludeEmpty:j.uE().optional(),limit:l.ai().int().min(1).max(100).default(50),cursor:j.Yj().optional()});let V=j.Ik({items:j.YO(T),nextCursor:j.Yj().nullable(),emptyCount:j.ai().int().nonnegative()}).meta({id:"ListActivitySessionsResponse"});j.Ik({limit:l.ai().int().min(1).max(500).default(100),cursor:j.Yj().optional(),order:j.k5(["asc","desc"]).default("asc")}),j.Ik({items:j.YO(S),nextCursor:j.Yj().nullable()}).meta({id:"ListSessionEventsResponse"}),j.Ik({format:j.k5(["ndjson","json"]).default("ndjson")}),j.Ik({format:j.k5(["csv","json"]).default("csv"),q:j.Yj().optional(),harness:j.YO(C).optional(),from:j.KC([k.p6(),k.w$()]).optional(),to:j.KC([k.p6(),k.w$()]).optional()}),j.Ik({stats:U,sessions:V}).meta({id:"ActivityOverviewResponse"});let W=j.k5(["prompt","response","code_change","tool_use"]).meta({id:"EventKind"}),X=j.k5(["claude-code","claude-desktop","cursor","chatgpt","github-copilot","cli","unknown"]).meta({id:"SourceTool"}),Y=j.Ik({sessionId:j.Yj().optional(),repo:j.Yj().optional(),filePath:j.Yj().optional(),toolName:j.Yj().optional(),gitignored:j.zM().optional(),wholeFile:j.zM().optional(),model:j.Yj().optional(),turnIndex:j.ai().int().nonnegative().optional(),correlationId:j.uR().optional(),traceId:j.Yj().regex(/^[0-9a-f]{32}$/).optional(),exceptionIds:j.YO(j.Os()).optional()}).meta({id:"EventMetadata"}),Z=j.Ik({id:j.Os(),sourceTool:X,kind:W,occurredAt:k.w$(),contentHash:j.Yj(),content:j.Yj(),metadata:Y.optional()}).meta({id:"Event"}),$=Z.meta({id:"IngestEvent"});j.Ik({events:j.YO($).min(1).max(100),dedupe:j.eu("content-hash").optional()}).meta({id:"IngestBatch"});let _=j.k5(["project","skill","mcp","hook","config"]).meta({id:"AssetType"}),aa=j.k5(["open","approved","blocked"]).meta({id:"AccessLevel"}),ab=j.k5(["source","public-dep","vendored","config","data","docs","generated"]).meta({id:"Origin"}),ac=j.k5(["known-good","risky","unapproved"]).meta({id:"TrustLevel"}),ad=j.k5(["update","stale","conflict","unknown","change","untracked","risk","findings"]).meta({id:"Flag"}),ae=j.k5(["public","private"]).meta({id:"Visibility"}),af=j.k5(["block","redact","warn"]).meta({id:"HarnessEventKind"}),ag=j.k5(["claudecode","cursor","codex"]).meta({id:"HarnessId"}),ah=j.Ik({open:j.ai().int().nonnegative(),approved:j.ai().int().nonnegative(),blocked:j.ai().int().nonnegative(),total:j.ai().int().nonnegative()}).meta({id:"AccessCounts"}),ai=j.Ik({id:j.Yj(),type:_,name:j.Yj(),sub:j.Yj(),flags:j.YO(ad),trust:ac.optional()}).meta({id:"AssetSummary"}),aj=j.Ik({id:j.Yj(),name:j.Yj(),repo:j.Yj(),visibility:ae,language:j.Yj(),policyDefault:aa,updatedAt:k.w$(),accessCounts:ah,findingsCount:j.ai().int().nonnegative()}).meta({id:"ProjectSummary"}),ak=j.Ik({type:_,assets:j.YO(ai)}),al=j.Ik({id:ag,label:j.Yj(),kind:j.Yj(),version:j.Yj(),sessions:j.ai().int().nonnegative(),assetCount:j.ai().int().nonnegative(),flagCount:j.ai().int().nonnegative(),projects:j.YO(aj),categories:j.YO(ak)}).meta({id:"HarnessSummary"});j.Ik({items:j.YO(al)}).meta({id:"ListHarnessesResponse"});let am=j.Ik({type:_,total:j.ai().int().nonnegative(),trustRollup:j.Ik({"known-good":j.ai().int().nonnegative(),risky:j.ai().int().nonnegative(),unapproved:j.ai().int().nonnegative()}).partial().strict().optional(),flagRollup:j.Ik({update:j.ai().int().nonnegative(),stale:j.ai().int().nonnegative(),conflict:j.ai().int().nonnegative(),unknown:j.ai().int().nonnegative(),change:j.ai().int().nonnegative(),untracked:j.ai().int().nonnegative(),risk:j.ai().int().nonnegative(),findings:j.ai().int().nonnegative()}).partial().strict(),items:j.YO(ai)}).meta({id:"AssetGroup"});j.Ik({groups:j.YO(am)}).meta({id:"ListAssetsResponse"});let an=j.Ik({name:j.Yj(),signature:j.Yj(),description:j.Yj(),write:j.zM(),risk:j.Yj().nullable()}).meta({id:"McpTool"}),ao=j.Ik({id:j.Yj(),title:j.Yj(),note:j.Yj()});ai.extend({description:j.Yj().nullable(),trust:ac.nullable(),meta:j.g1(j.Yj(),j.L5()),finding:ao.nullable(),tools:j.YO(an).optional()}).meta({id:"AssetDetail"}),j.Ik({items:j.YO(aj)}).meta({id:"ListProjectsResponse"}),j.Ik({attention:j.ai().int().nonnegative(),byType:j.Ik({project:j.ai().int().nonnegative(),skill:j.ai().int().nonnegative(),mcp:j.ai().int().nonnegative(),hook:j.ai().int().nonnegative(),config:j.ai().int().nonnegative()}),harnesses:j.ai().int().nonnegative(),mcpTrust:j.Ik({"known-good":j.ai().int().nonnegative(),risky:j.ai().int().nonnegative(),unapproved:j.ai().int().nonnegative()})}).meta({id:"InventoryStats"});let ap=j.Ik({path:j.Yj(),name:j.Yj(),origin:ab,access:aa,isCustom:j.zM(),findings:j.ai().int().nonnegative(),blockedAt:k.w$().nullable().optional(),note:j.Yj().nullable().optional()}).meta({id:"FileSummary"}),aq=j.Ik({name:j.Yj(),path:j.Yj(),accessCounts:ah}).meta({id:"FolderSummary"});j.Ik({project:j.Ik({id:j.Yj(),repo:j.Yj(),visibility:ae}),path:j.Yj(),folders:j.YO(aq).optional(),files:j.YO(ap)}).meta({id:"ProjectTreeResponse"}),ap.extend({project:j.Ik({repo:j.Yj(),visibility:ae,language:j.Yj(),policyDefault:aa,updatedAt:k.w$()}),findingsRefs:j.YO(j.Ik({id:j.Yj(),title:j.Yj()}))}).meta({id:"FileDetail"}),j.Ik({path:j.Yj(),access:aa}).meta({id:"SetFileAccessBody"}),j.Ik({file:ap,accessCounts:ah}).meta({id:"SetFileAccessResponse"}),j.Ik({trust:ac}).meta({id:"SetMcpTrustBody"});let ar=j.Ik({kind:af,title:j.Yj(),detail:j.Yj(),occurredAt:k.w$(),findingId:j.Yj().nullable().optional()}).meta({id:"HarnessEventItem"});j.Ik({counts:j.Ik({block:j.ai().int().nonnegative(),redact:j.ai().int().nonnegative(),warn:j.ai().int().nonnegative()}),items:j.YO(ar)}).meta({id:"HarnessEventsResponse"}),j.Ik({jobId:j.Yj(),startedAt:k.w$()}).meta({id:"RescanResponse"}),j.Ik({repo:j.Yj()}).meta({id:"ConnectProjectBody"}),j.Ik({type:j.YO(_).optional(),q:j.Yj().optional()}),j.Ik({path:j.Yj().optional(),q:j.Yj().optional(),filter:j.k5(["blocked"]).optional()}),j.Ik({path:j.Yj()}),j.Ik({limit:l.ai().int().min(1).max(50).default(7)});let as=j.k5(["once","temporary","permanent"]),at=j.Ik({repo:j.Yj().optional(),sourceTool:j.Yj().optional(),provider:j.Yj().optional()}).strict(),au=j.Ik({id:j.Os(),ruleId:j.Yj(),category:m,valueFingerprint:j.Yj().regex(/^[0-9a-f]{64}$/),keyVersion:j.ai().int().positive(),maskedValue:j.Yj(),scope:as,expiresAt:k.w$().nullable(),maxUses:j.ai().int().positive().nullable(),useCount:j.ai().int().nonnegative(),lastUsedAt:k.w$().nullable(),justification:j.Yj().min(1),conditions:at.nullable(),createdBy:j.Yj(),createdVia:j.k5(["cli-approve","cli-add","web-approve","web-add","api","setup-triage"]),createdAt:k.w$(),updatedAt:k.w$(),revokedAt:k.w$().nullable(),revokedBy:j.Yj().nullable(),revokeReason:j.Yj().nullable()}).pick({id:!0,ruleId:!0,valueFingerprint:!0,keyVersion:!0,expiresAt:!0,maxUses:!0,useCount:!0,conditions:!0});j.k5(["keyword","regex","validator"]).meta({id:"MatcherType"});let av=j.Ik({type:j.eu("keyword"),keywords:j.YO(j.Yj().min(1)).min(1),caseSensitive:j.zM().default(!1)}),aw=j.Ik({type:j.eu("regex"),pattern:j.Yj(),flags:j.Yj().default("gi"),captureGroup:j.ai().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=>void 0!==a.captureGroup||!function(a,b){try{let c=new RegExp(a,b.replace(/[gy]/g,""));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"]}),ax=j.Ik({type:j.eu("validator"),name:j.k5(["luhn","entropy","ssn-checksum"]),config:j.g1(j.Yj(),j.L5()).optional()}),ay=j.gM("type",[av,aw,ax]).meta({id:"Matcher"}),az=j.Ik({extensions:j.YO(j.Yj().regex(/^\.[A-Za-z0-9]+$/)).min(1)}).meta({id:"AppliesTo"}),aA=j.KC([j.Yj(),j.Ik({name:j.Yj(),config:j.g1(j.Yj(),j.L5()).optional()})]).meta({id:"PostValidatorRef"}),aB=j.Ik({categories:j.YO(m).min(1).optional(),ruleIds:j.YO(j.Yj().min(1)).min(1).optional(),labels:j.YO(j.Yj().min(1)).min(1).optional(),windowChars:j.ai().int().positive().default(160),confidenceBoost:j.ai().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"}),aC=j.Ik({label:j.Yj(),text:j.Yj().max(5e4),shouldMatch:j.zM(),filePath:j.Yj().optional(),expectedSpans:j.YO(j.Ik({start:j.ai(),end:j.ai()})).optional()}).meta({id:"RuleFixture"}),aD=j.Ik({specVersion:j.eu(1),id:j.Yj().regex(/^[a-z][a-z0-9-]*\/[a-z][a-z0-9-]*$/),name:j.Yj(),category:m,severity:n,matcher:ay,appliesTo:az.optional(),postValidators:j.YO(aA).optional(),requiresNearby:aB.optional(),examples:j.YO(j.Yj()).optional()}).meta({id:"Rule"}),aE=j.Ik({name:j.Yj(),email:j.Rp().optional(),url:j.OZ().optional()}).meta({id:"Author"});j.Ik({specVersion:j.eu(1),id:j.Yj(),name:j.Yj(),version:j.Yj(),rules:j.YO(j.Yj()),description:j.Yj().optional(),author:aE.optional(),license:j.Yj().optional(),sourceUrl:j.OZ().optional()}).meta({id:"PackManifest"});let aF=j.k5(["global","repo","user"]).meta({id:"PolicyScope"}),aG=j.KC([j.Ik({ruleId:j.Yj()}),j.Ik({category:m})]).meta({id:"PolicyTarget"}),aH=j.Ik({id:j.Os(),scope:aF,target:aG,action:o,enabled:j.zM().default(!0),customKeywords:j.YO(j.Yj()).optional(),name:j.Yj().optional()}).meta({id:"Policy"});j.Ik({version:j.Yj(),policies:j.YO(aH),rules:j.YO(aD).optional(),rulesComplete:j.zM().optional(),exceptions:j.YO(au).optional(),customKeywords:j.YO(j.Yj()),fetchedAt:k.w$()}).meta({id:"PolicyBundle"});let aI=["config"];m.options.filter(a=>!aI.includes(a));let aJ={secret:"critical",financial:"critical",code_flaw:"critical",pii:"high",phi:"high",custom:"high",code_context:"low",config:"low"},aK=j.k5(["builtin","custom"]).meta({id:"PolicyKind"}),aL=["monitor","warn","redact","block"],aM=j.k5(aL).meta({id:"BuiltinPolicyId"}),aN={monitor:{name:"Monitor",action:"log",description:"Log every match for audit. The request is allowed through untouched."},warn:{name:"Warn",action:"warn",description:"Allow the request, but warn the user inline before it is sent."},redact:{name:"Redact",action:"redact",description:"Automatically strip the matched value from the request, then continue."},block:{name:"Block",action:"block",description:"Refuse the request entirely whenever any rule in this detection matches."}};Object.fromEntries(m.options.map(a=>[a,aN[function(a){if(aI.includes(a))return"monitor";let b=aJ[a];return"critical"===b||"high"===b?"warn":"monitor"}(a)].action])),Object.fromEntries(aL.map(a=>[a,{id:a,...aN[a]}]));let aO=j.Ik({id:j.Yj(),name:j.Yj(),ruleCount:j.ai().int().nonnegative(),enabled:j.zM()}).meta({id:"UsedByItem"}),aP=j.Ik({id:j.Yj(),kind:aK,name:j.Yj(),enabled:j.zM(),usedByCount:j.ai().int().nonnegative()}).meta({id:"PolicyListItem"});j.Ik({specVersion:j.eu(1),id:j.Yj(),kind:aK,name:j.Yj(),enabled:j.zM(),description:j.Yj(),usedBy:j.YO(aO)}).meta({id:"PolicyDetail"}),j.Ik({policies:j.ai().int().nonnegative(),builtin:j.ai().int().nonnegative(),custom:j.ai().int().nonnegative(),detectionsGoverned:j.ai().int().nonnegative()}).meta({id:"PolicyStatsResponse"}),j.Ik({cursor:j.Yj().optional(),limit:l.ai().int().min(1).max(200).default(50),sourceTool:j.Yj().optional(),kind:j.Yj().optional(),from:k.w$().optional(),to:k.w$().optional()}),j.Ik({items:j.YO(Z),nextCursor:j.Yj().nullable()}).meta({id:"ListEventsResponse"}),j.Ik({accepted:j.ai().int().nonnegative(),duplicates:j.ai().int().nonnegative()}).meta({id:"IngestResponse"}),j.Ik({cursor:j.Yj().optional(),limit:l.ai().int().min(1).max(200).default(50),severity:j.Yj().optional(),category:j.Yj().optional(),eventId:j.Os().optional()}),j.Ik({items:j.YO(q),nextCursor:j.Yj().nullable()}).meta({id:"ListFindingsResponse"}),j.Ik({items:j.YO(aP)}).meta({id:"ListPoliciesResponse"}),aH.omit({id:!0}).meta({id:"CreatePolicyRequest"}),aH.partial().required({id:!0}).meta({id:"UpdatePolicyRequest"}),j.Ik({accepted:j.zM()}).meta({id:"RecordAuditEventResponse"}),j.Ik({error:j.Ik({code:j.Yj(),message:j.Yj(),details:j.L5().optional()})}).meta({id:"ErrorResponse"});let aQ=j.k5(["user","project","local","plugin"]),aR=j.Ik({name:j.Yj().min(1),source:j.Yj().min(1),scope:aQ,pluginName:j.Yj().optional(),version:j.Yj().optional(),description:j.Yj().optional(),updatedAt:k.w$().optional(),location:j.Yj().optional()}),aS=j.Ik({event:j.Yj().min(1),matcher:j.Yj().optional(),command:j.Yj().min(1),timeout:j.ai().optional(),scope:aQ,pluginName:j.Yj().optional(),location:j.Yj().optional()}),aT=j.Ik({name:j.Yj().min(1),scope:aQ,pluginName:j.Yj().optional(),marketplace:j.Yj().optional(),project:j.Yj().optional(),transport:j.Yj().min(1),command:j.Yj().optional(),url:j.Yj().optional(),envKeys:j.YO(j.Yj()).optional(),location:j.Yj().optional()}),aU=j.Ik({name:j.Yj().min(1),path:j.Yj().min(1),scope:aQ,kind:j.Yj().min(1),detail:j.Yj().optional(),entryCount:j.ai().optional(),updatedAt:k.w$().optional()});j.Ik({scannedAt:k.w$(),skills:j.YO(aR),hooks:j.YO(aS),mcpServers:j.YO(aT),configFiles:j.YO(aU),errors:j.YO(j.Ik({source:j.Yj(),reason:j.Yj()}))});let aV=j.Ik({ruleId:j.Yj().min(1),version:j.Yj().min(1),span:p,maskedMatch:j.Yj(),actionTaken:o,confidence:j.ai().min(0).max(1)});j.Ik({items:j.YO(J),scanEvent:L,definitions:j.YO(M).optional(),findings:j.YO(aV).optional()});let aW=j.Yj().regex(/^[a-z][a-z0-9-]*$/),aX=j.Yj().regex(/^[a-z][a-z0-9-]*$/),aY=j.Yj().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-.]+)?$/),aZ=j.k5(["labs","user","org"]),a$=j.k5(["library"]).meta({id:"OriginEnum"}),a_=j.k5(["all","library","custom","customized","updates"]),a0=j.k5(["new","imported","update"]).meta({id:"LibraryStateEnum"}),a1=j.Ik({all:j.ai().int().nonnegative(),library:j.ai().int().nonnegative(),custom:j.ai().int().nonnegative(),customized:j.ai().int().nonnegative(),updates:j.ai().int().nonnegative()}).meta({id:"DetectionCounts"}),a2=j.Ik({id:j.Yj(),name:j.Yj(),version:aY,enabled:j.zM(),origin:a$,publisher:aW.optional(),publisherKind:aZ.optional(),ruleCount:j.ai().int().nonnegative(),namespace:aW,packId:aX,policyId:j.Yj().optional(),latestVersion:aY.optional()}).meta({id:"DetectionListItem"});j.Ik({counts:a1,items:j.YO(a2)}).meta({id:"ListDetectionsResponse"}),j.Ik({filter:a_.optional().default("all"),q:j.Yj().optional()}),j.Ik({detections:j.ai().int().nonnegative(),rules:j.ai().int().nonnegative(),active:j.ai().int().nonnegative(),findingsLast30d:j.ai().int().nonnegative()}).meta({id:"DetectionStats"});let a3=j.Ik({id:j.Yj(),name:j.Yj(),category:m,severity:n,matcher:ay}).meta({id:"DetectionRule"}),a4=j.Ik({available:j.zM(),latestVersion:aY,latestRuleCount:j.ai().int().nonnegative().optional()}).nullable().meta({id:"DetectionUpdate"});j.Ik({id:j.Yj(),name:j.Yj(),version:aY,enabled:j.zM(),origin:a$,publisher:aW.optional(),publisherKind:aZ.optional(),ruleCount:j.ai().int().nonnegative(),namespace:aW,packId:aX,description:j.Yj().optional(),editedAt:k.w$(),findingsLast30d:j.ai().int().nonnegative(),latestVersion:aY.nullable().optional(),update:a4,rules:j.YO(a3),modified:j.zM(),policyId:j.Yj().optional()}).meta({id:"DetectionDetail"});let a5=j.Ik({id:j.Yj(),name:j.Yj(),publisher:aW,publisherKind:aZ.optional(),category:m.optional(),version:aY,ruleCount:j.ai().int().nonnegative(),description:j.Yj().optional(),updatedAt:k.w$(),state:a0,importedAs:j.Yj().nullable()}).meta({id:"LibraryItem"});j.Ik({categories:j.YO(m),items:j.YO(a5)}).meta({id:"ListLibraryResponse"}),j.Ik({libraryId:j.Yj().refine(a=>/^[^/]+\/[^/]+$/.test(a),{message:"libraryId must be in namespace/packId format"})}).meta({id:"ImportDetectionRequest"}),new WeakMap,new WeakMap;let a6=j.Ik({id:j.Os(),namespace:aW,packId:aX,version:aY,name:j.Yj(),enabled:j.zM().default(!0),policyId:j.Yj().optional()}).meta({id:"InstalledPack"});j.Ik({namespace:aW,packId:aX,version:aY}).meta({id:"InstallPackRequest"}),j.Ik({items:j.YO(a6)}).meta({id:"ListInstalledPacksResponse"}),j.Ik({enabled:j.zM().optional(),policyId:j.Yj().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 a7=j.k5(["standalone"]),a8=j.k5(["redact","warn"]),a9=j.k5(["full","session-only"]);j.Ik({specVersion:j.ai().int().positive().default(2),runMode:j.vk(a=>"attached"===a?"standalone":a,a7.default("standalone")),policy:a8.default("redact"),historicalAccess:a9.default("session-only"),onboardedAt:k.w$().optional()});let ba=j.Ik({path:j.Yj().min(1),name:j.Yj().min(1),origin:ab,defaultAccess:aa});j.Ik({files:j.YO(ba),truncated:j.zM(),scannedAt:j.Yj()});let bb=["7d","30d","3m","6m"],bc=j.k5(bb).meta({id:"TimeRange"}),bd="7d";bc.catch(bd);let be=j.k5(["still-valid","unknown","invalid"]),bf=j.Ik({filePath:j.Yj(),span:p.optional()}).strict(),bg=j.Ik({provider:j.Yj(),maskedToken:j.Yj(),where:bf,state:be,observedAt:k.w$().optional()}).strict();j.Ik({provider:j.Yj(),maskedToken:j.Yj(),consolePath:j.Yj(),occurrenceSpread:j.ai().int().positive()}).strict();let bh=j.k5(["redact-rotation-checklist","redact-only","set-secret-redact","leave"]),bi=j.k5(["first-run","pre-push","secret-scan"]);j.Ik({entrySource:bi}).strict();let bj=j.Ik({id:bh,label:j.Yj()}),bk=j.Ik({kind:j.eu("decision"),entrySource:bi,secretCount:j.ai().int().positive(),prompt:j.Yj(),options:j.PV([bj.extend({id:j.eu("redact-rotation-checklist")}),bj.extend({id:j.eu("redact-only")}),bj.extend({id:j.eu("set-secret-redact")}),bj.extend({id:j.eu("leave")})])}),bl=j.Ik({kind:j.eu("no-decision")});j.gM("kind",[bk,bl]),j.Ik({rules:j.YO(aD).min(1).max(100),text:j.Yj().max(5e4).optional(),fixtures:j.YO(aC).max(200).optional()}).refine(a=>void 0!==a.text||(a.fixtures?.length??0)>0,{message:"Provide `text`, `fixtures`, or both — there must be something to test"}).meta({id:"TestRulesRequest"});let bm=j.Ik({ruleId:j.Yj(),category:m,severity:n,span:p,confidence:j.ai().min(0).max(1),match:j.Yj()}).meta({id:"RuleTestMatch"}),bn=j.Ik({label:j.Yj(),shouldMatch:j.zM(),didMatch:j.zM(),passed:j.zM(),matches:j.YO(bm)}).meta({id:"FixtureResult"});j.Ik({adhoc:j.Ik({matches:j.YO(bm)}).optional(),fixtures:j.YO(bn),summary:j.Ik({total:j.ai().int().nonnegative(),passed:j.ai().int().nonnegative(),failed:j.ai().int().nonnegative()}),unsupportedRuleIds:j.YO(j.Yj())}).meta({id:"TestRulesResponse"});let bo=j.Ik({severity:n,count:j.ai().int().nonnegative(),caught:j.ai().int().nonnegative().optional(),openAtRest:j.ai().int().nonnegative().optional()}).meta({id:"SeveritySummaryItem"});j.Ik({total:j.ai().int().nonnegative(),needsRemediation:j.ai().int().nonnegative().optional(),bySeverity:j.YO(bo)}).meta({id:"SeveritySummaryResponse"}),j.Ik({range:j.k5(bb).default(bd)});let bp=j.k5(["blocked","redacted","warned"]).meta({id:"EnforcementActionKind"}),bq=j.Ik({kind:bp,count:j.ai().int().nonnegative(),delta:j.ai().int()}).meta({id:"EnforcementAction"});j.Ik({range:bc,total:j.ai().int().nonnegative(),actions:j.YO(bq)}).meta({id:"EnforcementActionsResponse"});let br=j.k5(["day","week"]).meta({id:"TimeseriesGranularity"}),bs=j.Ik({timestamp:k.p6(),critical:j.ai().int().nonnegative(),high:j.ai().int().nonnegative(),medium:j.ai().int().nonnegative()}).meta({id:"FindingsTimeseriesPoint"});j.Ik({range:bc,granularity:br,points:j.YO(bs)}).meta({id:"FindingsTimeseriesResponse"});let bt=j.Ik({timestamp:k.p6(),bySeverity:j.Ik({critical:j.ai().nonnegative().nullable(),high:j.ai().nonnegative().nullable(),medium:j.ai().nonnegative().nullable(),low:j.ai().nonnegative().nullable()})}).meta({id:"MttrTrendPoint"});j.Ik({range:bc,granularity:br,points:j.YO(bt)}).meta({id:"MttrTrendResponse"});let bu=j.Ik({findingKey:j.Yj(),ruleId:j.Yj(),severity:n,path:j.Yj(),resolvedAt:k.w$(),detectedAt:k.w$()}).meta({id:"ResolvedFeedItem"});j.Ik({items:j.YO(bu)}).meta({id:"RecentlyResolvedResponse"});let bv=["repo","user"],bw=j.k5(bv).meta({id:"SourceKind"}),bx=j.Ik({id:j.Yj(),name:j.Yj(),kind:bw,findingsCount:j.ai().int().nonnegative()}).meta({id:"TopSource"});j.Ik({range:bc,items:j.YO(bx)}).meta({id:"TopSourcesResponse"}),j.Ik({range:j.k5(bb).default(bd),limit:l.ai().int().min(1).max(50).default(5),kind:j.k5(bv).optional()});let by=j.k5(["claudecode","cursor","codex","chatgpt","copilot","api"]).meta({id:"Provider"}),bz=j.Ik({provider:by,coverage:j.ai().int().min(0).max(100),supported:j.zM()}).meta({id:"ScanCoverageProvider"});j.Ik({range:bc,providers:j.YO(bz)}).meta({id:"ScanCoverageResponse"});let bA=j.k5(["repo","user","team","policy","share","rule"]).meta({id:"SubjectType"}),bB=j.Ik({type:bA,id:j.Yj(),label:j.Yj()}).meta({id:"RecommendationSubject"}),bC=j.k5(["apply","navigate"]).meta({id:"RecommendationActionMode"}),bD=j.Ik({mode:bC,type:j.Yj(),label:j.Yj(),href:j.Yj().optional(),policyId:j.Yj().optional(),teamId:j.Yj().optional()}).meta({id:"RecommendationAction"}),bE=j.Ik({id:j.Yj(),category:j.Yj(),severity:n,title:j.Yj(),description:j.Yj(),subjects:j.YO(bB),action:bD}).meta({id:"RecommendedAction"});j.Ik({items:j.YO(bE)}).meta({id:"RecommendedActionsResponse"}),j.Ik({limit:l.ai().int().min(1).max(20).default(3)});let bF=j.Ik({type:j.Yj(),policyId:j.Yj().optional(),teamId:j.Yj().optional()}).meta({id:"AppliedAction"});j.Ik({id:j.Yj(),status:j.eu("applied"),appliedAction:bF}).meta({id:"ApplyRecommendedActionResponse"}),j.Ik({id:j.Yj(),status:j.eu("dismissed")}).meta({id:"DismissRecommendedActionResponse"}),j.Ik({id:j.Yj()}),j.Ik({ruleId:j.Yj(),category:m,severity:n,maskedMatch:j.Yj(),rawMatch:j.Yj(),context:j.Yj(),filePath:j.Yj().optional(),confidence:j.ai().min(0).max(1),id:j.Yj().optional(),valueFingerprint:j.Yj().optional(),keyVersion:j.ai().int().nonnegative().optional()});let bG=j.Ik({category:m,action:aM,reasoning:j.Yj(),genuineCount:j.ai().int().nonnegative(),fpCount:j.ai().int().nonnegative(),fpIds:j.YO(j.Yj())});j.Ik({perCategory:j.YO(bG),notes:j.Yj()});let bH=j.Ik({total:j.ai().int().nonnegative(),important:j.ai().int().nonnegative(),routine:j.ai().int().nonnegative()}).refine(a=>a.total===a.important+a.routine,{message:"total must equal important + routine",path:["total"]}),bI=j.Ik({ruleId:j.Yj(),category:m,valueFingerprint:j.Yj(),keyVersion:j.ai().int().nonnegative()}),bJ=j.Ik({pattern:j.Yj(),count:j.ai().int().nonnegative(),values:j.YO(bI).min(1)}),bK=j.Ik({category:m,count:j.ai().int().nonnegative(),egress:j.zM()}),bL=j.Ik({counts:bH,routineCategories:j.YO(m),surfacedCategories:j.YO(m),findingKinds:j.YO(bK),posture:j.g1(m,aM),maskedFindings:j.YO(bg).optional(),falsePositivePatterns:j.YO(bJ).optional()}),bM=bG.pick({category:!0,genuineCount:!0,fpCount:!0}).extend({egress:j.zM()});j.Ik({categories:j.YO(bM),posture:j.g1(m,aM)}),j.Ik({frame:bL,copy:j.Yj()}),j.k5(["scan","floor"]);let bN=j.Ik({id:j.k5(["enter-remediation","open-dashboard","not-now"]),label:j.Yj()}),bO=j.PV([bN.extend({id:j.eu("open-dashboard")}),bN.extend({id:j.eu("not-now")})]),bP=j.PV([bN.extend({id:j.eu("enter-remediation")}),bN.extend({id:j.eu("open-dashboard")}),bN.extend({id:j.eu("not-now")})]);j.Ik({worthALook:j.ai().int().nonnegative(),liveKeys:j.ai().int().nonnegative().optional(),options:j.KC([bO,bP])}).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 bQ=j.k5(["provider","internal","ip"]).meta({id:"DestinationKind"}),bR=j.k5(["https","http","sftp","grpc","smtp"]).meta({id:"Transport"}),bS=j.k5(["secrets","pii","customer","source","telemetry","logs","metrics","none"]).meta({id:"DataClass"});bS.options;let bT=j.k5(["recognized","internal","unverified","ip"]).meta({id:"ShareTrustLevel"}),bU=j.k5(["allow","block"]).meta({id:"EgressDecision"}),bV=j.k5(["allowed","blocked","review"]).meta({id:"EgressStatus"}),bW=j.k5(["raw_ip","unverified_domain","plaintext_transport"]).meta({id:"ReviewReason"}),bX=j.k5(["GET","POST","PUT","DELETE"]).meta({id:"HttpMethod"}),bY=j.Ik({needsReview:j.zM(),reasons:j.YO(bW)}).meta({id:"ReviewInfo"}),bZ=j.Ik({port:j.ai().int().nullable(),geo:j.Yj().nullable(),ptr:j.Yj().nullable()}).meta({id:"DestinationNetwork"}),b$=j.Ik({id:j.Yj(),method:bX,transport:bR,url:j.Yj(),template:j.zM(),dataClass:bS,lastSeen:k.w$(),callSiteCount:j.ai().int().nonnegative()}).meta({id:"EndpointSummary"}),b_=j.Ik({id:j.Yj(),project:j.Yj(),file:j.Yj(),line:j.ai().int().nonnegative(),snippet:j.Yj(),dynamic:j.zM(),vendored:j.zM(),projectId:j.Yj().nullable()}).meta({id:"CallSite"}),b0=b$.extend({sites:j.YO(b_)}).meta({id:"EndpointWithSites"}),b1=j.Ik({id:j.Yj(),kind:bQ,name:j.Yj(),host:j.Yj(),category:j.Yj(),trust:bT,status:bV,isCustom:j.zM(),lastSeen:k.w$(),endpointCount:j.ai().int().nonnegative(),callSiteCount:j.ai().int().nonnegative(),transports:j.YO(bR),dataClasses:j.YO(bS),review:bY,network:bZ.nullable(),endpoints:j.YO(b$)}).meta({id:"ShareDestinationSummary"});b1.omit({endpointCount:!0,callSiteCount:!0,endpoints:!0}).extend({note:j.Yj().nullable(),endpoints:j.YO(b0)}).meta({id:"ShareDestinationDetail"});let b2=j.Ik({id:j.Yj(),kind:bQ,name:j.Yj(),host:j.Yj(),trust:bT,status:bV,review:bY,topDataClass:bS,callSiteCount:j.ai().int().nonnegative(),lastSeen:k.w$()}).meta({id:"ReviewDestination"}),b3=j.Ik({kind:bQ,total:j.ai().int().nonnegative(),items:j.YO(b1)}).meta({id:"ShareDestinationGroup"});j.Ik({groups:j.YO(b3)}).meta({id:"ListShareDestinationsResponse"}),j.Ik({items:j.YO(b2)}).meta({id:"NeedsReviewResponse"}),j.Ik({destinations:j.ai().int().nonnegative(),endpoints:j.ai().int().nonnegative(),callSites:j.ai().int().nonnegative(),needsReview:j.ai().int().nonnegative(),insecure:j.ai().int().nonnegative(),byKind:j.Ik({provider:j.ai().int().nonnegative(),internal:j.ai().int().nonnegative(),ip:j.ai().int().nonnegative()}),byTrust:j.Ik({recognized:j.ai().int().nonnegative(),internal:j.ai().int().nonnegative(),unverified:j.ai().int().nonnegative(),ip:j.ai().int().nonnegative()})}).meta({id:"SharesStats"}),j.Ik({decision:bU.nullable()}).meta({id:"SetEgressDecisionBody"}),j.Ik({destination:b1}).meta({id:"SetEgressDecisionResponse"}),j.Ik({q:j.Yj().optional(),kind:j.YO(bQ).optional(),groupBy:j.k5(["destination"]).default("destination"),review:j.uE().default(!1)}),j.Ik({format:j.k5(["csv","json"]).default("csv"),q:j.Yj().optional(),kind:j.YO(bQ).optional()})},71744:(a,b,c)=>{"use strict";c.d(b,{HarnessOverview:()=>k});var d=c(45487),e=c(22747),f=c(29102),g=c(20080),h=c(5199),i=c(59287);let j=["block","redact","warn"];function k({harness:a,events:b,onSelect:c,onSelectProject:k}){let n=(a.categories.find(a=>"mcp"===a.type)?.assets??[]).filter(a=>"unapproved"===a.trust).length,o=b?.items??[],p=b?.counts,q=p?p.block+p.redact+p.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)(f.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"}),p&&(0,d.jsx)("span",{className:"ml-auto inline-flex items-center gap-1.5",children:j.map(a=>{let b=p[a];return b>0?(0,d.jsxs)(e.Ex,{variant:h.iL[a].tone,children:[b," ",h.iL[a].label.toLowerCase()]},a):null})})]}),0===o.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)(i.m,{name:"check-circle",className:"size-4 text-ok"}),(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:[o.map(a=>{let b=h.iL[a.kind],{day:c,time:f}=function(a){let b=new Date(a),c=b.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),d=new Date,e=a=>new Date(a.getFullYear(),a.getMonth(),a.getDate()).getTime(),f=Math.round((e(d)-e(b))/864e5);return{day:0===f?"Today":1===f?"Yesterday":b.toLocaleDateString([],{month:"short",day:"numeric"}),time:c}}(a.occurredAt);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)(i.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 ",f]})]})]},`${a.occurredAt}\xb7${a.title}`)}),q>o.length&&(0,d.jsxs)("div",{className:"pt-0.5 text-center text-xs text-text-3",children:["Showing ",o.length," of ",q," events"]})]})]}),(a.flagCount>0||n>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)(i.m,{name:"flag",className:"size-4 shrink-0 text-sev-high"}),(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&&n>0&&" \xb7 ",n>0&&`${String(n)} unapproved MCP${1===n?"":"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)(l,{p:a,onSelect:k},a.id))})]}),0===a.categories.length&&0===a.projects.length&&(0,d.jsx)(g.EmptyState,{message:"No projects, skills, MCP servers, hooks or configuration for this harness"}),a.categories.map(a=>{let b=h.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)(m,{it:a,onSelect:c},a.id))})]},a.type)})]})]})}function l({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,h.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)(g.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)(i.m,{name:"repo",className:"size-3 shrink-0"}),a.repo]})]}),(0,d.jsx)(g.AJ,{counts:c}),c.blocked>0&&(0,d.jsxs)("span",{className:"text-xs font-semibold text-sev-critical",children:[c.blocked," blocked"]}),a.findingsCount>0&&(0,d.jsx)(g.Kh,{flags:["findings"],mini:!0}),(0,d.jsx)(i.m,{name:"chevron-right",className:"size-4 shrink-0 text-text-3"})]})}function m({it:a,onSelect:b}){let c=(0,h.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)(i.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)(g.As,{value:f}),a.flags.length>0&&(0,d.jsx)(g.Kh,{flags:a.flags,mini:!0}),(0,d.jsx)(i.m,{name:"chevron-right",className:"size-4 shrink-0 text-text-3"})]})}},72063:()=>{},75819:(a,b,c)=>{Promise.resolve().then(c.bind(c,59057))},76428:(a,b,c)=>{"use strict";c.d(b,{RY:()=>i,WI:()=>e.WI,Ze:()=>k,Zu:()=>e.Zu,_G:()=>e._G,fN:()=>j,iB:()=>l,j4:()=>m,k3:()=>e.k3,kp:()=>g,mL:()=>e.mL,np:()=>h,uv:()=>e.uv});var d=c(45487),e=c(16327);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:"#1B1F24"}),(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:"#1B1F24"}),(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:"#1B1F24"}),(0,d.jsx)("path",{d:"M54 118H0C0 88.3759 24.3759 64 54 64C83.6241 64 108 88.3759 108 118H54Z",fill:"#1B1F24"}),(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:"#1B1F24"}),(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"})]})},79315:(a,b,c)=>{"use strict";c.d(b,{i:()=>j});var d=c(45487),e=c(22747),f=c(19354),g=c(4053),h=c(61544);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:[(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))})}},79897:(a,b,c)=>{"use strict";c.d(b,{DataShareDetailView:()=>n});var d=c(45487),e=c(22747),f=c(47599),g=c(83798),h=c(19354),i=c(5110),j=c(90415);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})]}),(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,host:a.host,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}),(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}){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,host:a.host,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)})]}),(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}){let k="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}):(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 gap-2",children:[(0,d.jsxs)(e.$n,{variant:"outline",className:"flex-1",children:[(0,d.jsx)(h.iB,{"aria-hidden":!0,focusable:!1}),"Add policy"]}),k?(0,d.jsxs)(e.$n,{variant:"outline",className:"flex-1 border-ok-fill text-ok 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",className:"flex-1",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-center text-xs text-text-3",disabled:i,onClick:()=>{g(null)},children:["Reset to default (",j.pN[a.trust].label,")"]})]})]})}},82546:(a,b,c)=>{"use strict";c.d(b,{JW:()=>i,Lw:()=>k,UD:()=>h,md:()=>g,zn:()=>j});var d=c(45487),e=c(22747),f=c(61544);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}){return(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.map(a=>(0,d.jsx)("span",{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"),children:a},a))})}},82811:(a,b,c)=>{"use strict";c.d(b,{AddExceptionForm:()=>h});var d=c(45487),e=c(22747),f=c(93578),g=c(45971);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",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"})})]})}},83798:(a,b,c)=>{"use strict";c.d(b,{e:()=>f,p:()=>g});var d=c(45487),e=c(22747);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})]})}},84271:(a,b,c)=>{"use strict";c.d(b,{FileDetailDrawer:()=>j});var d=c(45487),e=c(22747),f=c(83798),g=c(20080),h=c(5199),i=c(59287);function j({file:a,onChange:b}){let c=h.Gb[a.origin],j=a.project;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)(i.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:[j.repo," › ",a.path]}),(0,d.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,d.jsx)(g.TJ,{origin:a.origin}),(0,d.jsx)(g.yk,{v:j.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",children:[(0,d.jsx)(i.m,{name:"alert",className:"size-3"}),a.findings," finding",1===a.findings?"":"s"]})]})]}),(0,d.jsx)(g.wn,{label:"LLM access",children:(0,d.jsx)(g.AC,{order:h.IF,meta:h.Pe,value:a.access,onChange:b,accentOf:a=>a.bar})}),(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)(i.m,{name:c.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,h._t)(j,a.origin)})]})]}),a.findingsRefs.length>0&&(0,d.jsx)(g.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)(i.m,{name:"alert",className:"size-4 shrink-0 text-sev-critical"}),(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)(i.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)(f.p,{label:"Repository",children:(0,d.jsx)("span",{className:"font-mono text-xs",children:j.repo})}),(0,d.jsx)(f.p,{label:"Visibility",children:"public"===j.visibility?"Public":"Private"}),(0,d.jsx)(f.p,{label:"Origin",children:c.label}),(0,d.jsx)(f.p,{label:"Set by",children:a.isCustom?(0,d.jsx)("span",{className:"text-primary",children:"You"}):"Default policy"}),(0,d.jsx)(f.p,{label:"Language",children:j.language}),(0,d.jsx)(f.p,{label:"Last activity",children:(0,h.v7)(a.blockedAt??j.updatedAt)})]})]})]})}},84497:(a,b,c)=>{"use strict";c.d(b,{BlockedWindowSelect:()=>h});var d=c(45487),e=c(22747),f=c(1389),g=c(19354);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))})})]})}},85114:(a,b,c)=>{"use strict";c.d(b,{MatcherModal:()=>j});var d=c(45487),e=c(22747),f=c(19354),g=c(36820);function h({matcher:a}){return"regex"===a.type?(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)(i,{label:"Pattern",children:(0,d.jsx)("code",{className:"block break-all rounded-md border border-border bg-surface-2 px-2.5 py-2 font-mono text-xs text-text",children:a.pattern})}),(0,d.jsx)(i,{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)(i,{label:"Capture group",children:(0,d.jsx)("span",{className:"font-mono text-xs text-text-2",children:a.captureGroup})})]}):"keyword"===a.type?(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)(i,{label:"Keywords",children:(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.keywords.map(a=>(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},a))})}),(0,d.jsx)(i,{label:"Case sensitive",children:(0,d.jsx)("span",{className:"text-xs text-text-2",children:a.caseSensitive?"Yes":"No"})})]}):(0,d.jsx)("div",{className:"flex flex-col gap-3",children:(0,d.jsx)(i,{label:"Validator",children:(0,d.jsx)("code",{className:"font-mono text-xs text-text-2",children:a.name})})})}function i({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 j({rule:a,onClose:b}){let c=!!a,i=a?g.rE[a.matcher.type]:null,j=i?.icon;return(0,d.jsx)(e.lG,{open:c,onOpenChange:a=>{a||b()},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:b,"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:"min-h-0 flex-1 overflow-y-auto p-5",children:[(0,d.jsxs)("div",{className:"mb-4 flex flex-wrap gap-2",children:[(0,d.jsx)(k,{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)(k,{icon:j&&(0,d.jsx)(j,{"aria-hidden":!0,focusable:!1,className:"size-3.5"}),children:i.blurb})]}),(0,d.jsx)(h,{matcher:a.matcher})]})]})})})}function k({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]})}},90415:(a,b,c)=>{"use strict";c.d(b,{CF:()=>i,EI:()=>f,Hf:()=>g,Lh:()=>o,ZX:()=>l,aD:()=>e,pN:()=>h,rL:()=>m});var d=c(19354);let e={https:{label:"HTTPS",icon:d.XA,secure:!0},http:{label:"HTTP",icon:d.fC,secure:!1},sftp:{label:"SFTP",icon:d.JM,secure:!0},grpc:{label:"gRPC",icon:d.hF,secure:!0},smtp:{label:"SMTP",icon:d.K$,secure:!0}};function f(a){return a.some(a=>!e[a].secure)}let g={secrets:{label:"Secrets",tone:"critical",icon:d.RY},pii:{label:"PII",tone:"high",icon:d.Ey},customer:{label:"Customer data",tone:"high",icon:d.ny},source:{label:"Source code",tone:"low",icon:d.lo},telemetry:{label:"Telemetry",tone:"teal",icon:d.BH},logs:{label:"Logs",tone:"default",icon:d.kp},metrics:{label:"Metrics",tone:"teal",icon:d.np},none:{label:"No payload",tone:"default",icon:d.mo}},h={recognized:{label:"Known provider",tone:"success",icon:d.C1},internal:{label:"Your organization",tone:"primary",icon:d.Zu},unverified:{label:"Unverified domain",tone:"high",icon:d._0},ip:{label:"Raw IP address",tone:"critical",icon:d.rX}},i={provider:"Providers",internal:"Internal & corporate domains",ip:"Raw IP addresses"},j={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"},k=["raw_ip","unverified_domain","plaintext_transport"];function l(a){let b=k.find(b=>a.includes(b));return b?j[b]:"Needs review"}function m(a){return"ip"===a.kind?"bg-sev-critical-fill text-sev-critical":"unverified"===a.trust?"bg-sev-high-fill text-sev-high":"bg-primary-tint text-primary"}let n=["#2563EB","#7C3AED","#DB2777","#0891B2","#CA8A04","#059669"];function o(a,b){let c=b??a,d=0;for(let a=0;a<c.length;a++)d=31*d+c.charCodeAt(a)>>>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:n[d%n.length]??"#2563EB"}}},91404:(a,b,c)=>{"use strict";c.d(b,{HarnessSelect:()=>i});var d=c(45487),e=c(22747),f=c(19354),g=c(29102),h=c(61544);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 px-2.5 text-sm outline-none focus-visible:ring-2 focus-visible:ring-primary/40",j?"border-border":"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",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))]})]})}},91519:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,75817,23)),Promise.resolve().then(c.t.bind(c,67504,23)),Promise.resolve().then(c.t.bind(c,69014,23)),Promise.resolve().then(c.t.bind(c,72401,23)),Promise.resolve().then(c.t.bind(c,15685,23)),Promise.resolve().then(c.t.bind(c,40413,23)),Promise.resolve().then(c.t.bind(c,73079,23)),Promise.resolve().then(c.t.bind(c,54432,23)),Promise.resolve().then(c.t.bind(c,48941,23))},93577:(a,b,c)=>{"use strict";c.r(b),c.d(b,{AreaChart:()=>p,Donut:()=>l,Sparkline:()=>m,useMeasuredWidth:()=>o});var d=c(45487),e=c(31632),f=c(40863),g=c(61473),h=c(56344),i=c(80898),j=c(93578),k=c(47398);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-white/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)})]})]})}},96003:(a,b,c)=>{"use strict";c.d(b,{DataSharesTableView:()=>o});var d=c(45487),e=c(22747),f=c(93578),g=c(47599),h=c(19354),i=c(5110),j=c(90415);function k({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 l({d:a,expanded:b,selected:c,onToggle:f,onOpen:l}){let m=(0,j.EI)(a.transports);return(0,d.jsxs)(e.Hj,{onClick:l,className:(0,e.cn)("cursor-pointer",c?"bg-primary-tint":"hover:bg-surface-2"),children:[(0,d.jsx)(e.nA,{className:"w-9",children:(0,d.jsx)(e.$n,{"aria-label":b?"Collapse":"Expand",onClick:a=>{a.stopPropagation(),f()},variant:"ghost",size:"sm",children:(0,d.jsx)(h.vK,{"aria-hidden":!0,focusable:!1,className:(0,e.cn)("size-4 transition-transform",b&&"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:a.kind,trust:a.trust,name:a.name,host:a.host}),(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","ip"===a.kind&&"font-mono"),children:a.name}),m&&(0,d.jsx)("span",{title:"Sends over plaintext",className:"inline-flex text-sev-critical",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,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)("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)(k,{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)})]})}function m({ep:a,selected:b,onClick:c}){return(0,d.jsxs)(e.Hj,{onClick:c,className:(0,e.cn)("cursor-pointer",b?"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:2,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)})]})}function n({group:a}){return(0,d.jsx)(e.Hj,{className:"border-0 hover:bg-transparent",children:(0,d.jsx)(e.nA,{colSpan:7,className:"pb-2 pt-4",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-label font-semibold uppercase tracking-wider text-text-3",children:j.CF[a.kind]}),(0,d.jsx)("span",{className:"rounded-full border border-border bg-surface-2 px-1.5 text-label py-0.5 font-semibold text-text-2",children:a.total}),"ip"===a.kind&&(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs text-sev-critical",children:[(0,d.jsx)(h._0,{"aria-hidden":!0,focusable:!1,className:"size-3"}),"review recommended"]})]})})})}function o({groups:a,expanded:b,forceExpand:c,selection:g,drawerOpen:h,onToggle:i,onOpenDest:j,onOpenEndpoint:k}){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:"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:a.map(a=>(0,d.jsxs)(f.Fragment,{children:[(0,d.jsx)(n,{group:a}),a.items.map(a=>{let e=(c??!1)||!!b[a.id],n=h&&g?.id===a.id&&null==g.endpointId;return(0,d.jsxs)(f.Fragment,{children:[(0,d.jsx)(l,{d:a,expanded:e,selected:n,onToggle:()=>{i(a.id)},onOpen:()=>{j(a.id)}}),e&&a.endpoints.map(b=>(0,d.jsx)(m,{ep:b,selected:h&&g?.id===a.id&&g.endpointId===b.id,onClick:()=>{k(a.id,b.id)}},b.id))]},a.id)})]},a.kind))})]})}},96816:(a,b,c)=>{"use strict";c.d(b,{DETECTION_FILTER_TABS:()=>i,DetectionsListView:()=>k});var d=c(45487),e=c(22747),f=c(19354),g=c(13437),h=c(36820);let i=[["all","All"],["library","Library"],["updates","Updates"]];function j({d:a,sel:b,updateVersion:c,onClick:e}){return(0,d.jsx)("button",{type:"button",onClick:e,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)(g.Ai,{origin:a.origin}),(0,d.jsx)(g.$F,{policy:a.policyId??h.tG}),c?(0,d.jsx)(g.Zp,{version:c}):null]})]})})}function k({items:a,counts:b,activeId:c,query:g,filter:h,onQueryChange:k,onFilterChange:l,onSelect:m,isLoading:n=!1,error:o=null,updatesById:p,filterTabs:q=i}){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.jsxs)("div",{className:"relative",children:[(0,d.jsx)(f.WI,{"aria-hidden":!0,focusable:!1,className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-text-3"}),(0,d.jsx)("input",{value:g,onChange:a=>{k(a.target.value)},spellCheck:!1,placeholder:"Search detections…",className:"h-9 w-full rounded-lg border border-border bg-surface-2 pl-9 pr-3 text-sm text-text placeholder:text-text-3 focus:border-primary focus:outline-none"})]}),(0,d.jsx)("div",{className:"mt-2.5 flex flex-wrap gap-1.5",children:q.map(([a,c])=>{let e=h===a,g=b[a]??0,i="updates"===a&&g>0;return(0,d.jsxs)("button",{type:"button",onClick:()=>{l(a)},className:"inline-flex h-7 items-center gap-1.5 cursor-pointer rounded-full border px-2.5 text-xs font-semibold "+(e?i?"border-sev-high bg-sev-high-fill text-sev-high":"border-primary bg-primary-tint text-primary":i?"border-border text-sev-high":"border-border bg-surface text-text-2"),children:[i&&(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:n?(0,d.jsx)("div",{className:"grid flex-1 place-items-center p-6 text-center text-xs text-text-3",children:"Loading detections…"}):o?(0,d.jsx)("div",{className:"grid flex-1 place-items-center p-6 text-center text-xs text-sev-critical",children:o}):0===a.length?(0,d.jsx)("div",{className:"grid flex-1 place-items-center p-6 text-center text-xs text-text-3",children:g.trim()?`No detections match “${g.trim()}”`:"No detections in this view"}):a.map(a=>(0,d.jsx)(j,{d:a,sel:a.id===c,updateVersion:p?.get(a.id),onClick:()=>{m(a.id)}},a.id))})]})}},97813:(a,b,c)=>{"use strict";c.d(b,{WorkspaceSettingsFormView:()=>k});var d=c(45487),e=c(22747),f=c(93578),g=c(83798);let h=[{value:"redact",label:"Redact",description:"Lean toward replacing sensitive values before they reach the model (recommended)."},{value:"warn",label:"Warn only",description:"Lean toward surfacing detections rather than redacting them by default."}],i=[{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."}];function j({name:a,choices:b,value:c,onChange:f}){return(0,d.jsx)("div",{className:"flex flex-col gap-2",role:"radiogroup","aria-label":a,children:b.map(b=>(0,d.jsxs)("label",{className:(0,e.cn)("flex cursor-pointer items-start gap-3 rounded-lg border p-3 transition-colors",c===b.value?"border-primary bg-primary-tint":"border-border bg-surface hover:bg-surface-2"),children:[(0,d.jsx)("input",{type:"radio",name:a,checked:c===b.value,onChange:()=>{f(b.value)},className:"mt-1 accent-primary"}),(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-semibold text-text",children:b.label}),(0,d.jsx)("span",{className:"mt-0.5 block text-xs text-text-2",children:b.description})]})]},b.value))})}function k({settings:a,onSave:b,busy:c,error:k,saved:l}){let[m,n]=(0,f.useState)(a.policy),[o,p]=(0,f.useState)(a.historicalAccess),q=m!==a.policy||o!==a.historicalAccess;return(0,d.jsxs)("div",{className:"flex max-w-2xl flex-col gap-6",children:[(0,d.jsxs)("section",{className:"rounded-xl border border-border bg-surface p-5",children:[(0,d.jsx)(g.e,{children:"Sensitive-data handling"}),(0,d.jsx)("p",{className:"mb-3 text-xs text-text-3",children:"Your default leaning for sensitive detections. What actually happens per detection is governed by the per-category Policies, not this global default."}),(0,d.jsx)(j,{name:"policy",choices:h,value:m,onChange:n})]}),(0,d.jsxs)("section",{className:"rounded-xl border border-border bg-surface p-5",children:[(0,d.jsx)(g.e,{children:"Historical access"}),(0,d.jsx)("p",{className:"mb-3 text-xs text-text-3",children:"Consent to inspect surfaces that existed before AKA was installed."}),(0,d.jsx)(j,{name:"historicalAccess",choices:i,value:o,onChange:p})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(e.$n,{variant:"solid",tone:"primary",size:"sm",disabled:!q||c,onClick:()=>{b({policy:m,historicalAccess:o})},children:c?"Saving…":"Save changes"}),l&&!q&&(0,d.jsx)("span",{className:"text-xs text-ok",children:"Saved."}),k&&(0,d.jsx)("span",{className:"text-xs text-sev-critical",children:k})]})]})}}};
|