@akasecurity/cli 0.9.5 → 0.9.6
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/dist/cli.js +129 -50
- package/extension/manifest.json +1 -1
- package/native-host/host.js +90 -35
- package/native-host/scan-worker.js +61 -12
- package/package.json +6 -6
- package/web-ui/package.json +5 -2
- package/web-ui/packages/detections/package.json +3 -2
- package/web-ui/packages/persistence/package.json +3 -2
- package/web-ui/packages/plugin-sdk/package.json +2 -1
- package/web-ui/web-ui/.next/BUILD_ID +1 -1
- package/web-ui/web-ui/.next/app-build-manifest.json +66 -66
- package/web-ui/web-ui/.next/app-path-routes-manifest.json +7 -7
- package/web-ui/web-ui/.next/build-manifest.json +2 -2
- package/web-ui/web-ui/.next/prerender-manifest.json +14 -14
- package/web-ui/web-ui/.next/server/app/(app)/activity/page.js +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 +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_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/findings/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/findings/page_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_client-reference-manifest.js +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 +2 -2
- 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_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_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/updates/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/updates/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/updates/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/vault/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/vault/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/vault/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found/page_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_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app-paths-manifest.json +7 -7
- package/web-ui/web-ui/.next/server/chunks/160.js +2 -2
- package/web-ui/web-ui/.next/server/chunks/243.js +1 -1
- package/web-ui/web-ui/.next/server/chunks/333.js +1 -1
- package/web-ui/web-ui/.next/server/chunks/{330.js → 413.js} +1 -1
- package/web-ui/web-ui/.next/server/chunks/557.js +2 -2
- 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/133-66e4c8e40b72a3e8.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/page-1151de62cd9386c8.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/{page-d96aa1158bb1c630.js → page-eaee9ff5ba1056e3.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/{page-269fa2d4f47e6125.js → page-7fbcf876de9f09de.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-8f33eba279e45c1d.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-bf9c74a239afdab2.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-e17e9d7c8547bc32.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/page-4bdf3d2ede57b3c7.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-88b768ca343a8524.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/{layout-d7a290e9b0dd8a15.js → layout-a346cd78f5f28936.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/policies/{page-1d1a93a1e561ca82.js → page-f79874ebd61fbf46.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-86e7e860ce98d0a4.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/security/{page-a7fa0e028623b7cb.js → page-557e1703a106d286.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-a1956abf86b48b8b.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/page-fe71f1fd0ab6cde6.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/vault/page-2473d9063bd5eb69.js +1 -0
- package/web-ui/web-ui/.next/static/css/2eca310301b96d98.css +2 -0
- package/web-ui/web-ui/dist/scan-worker.js +61 -12
- package/web-ui/web-ui/.next/static/chunks/133-14f0f297836736b9.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/page-90ea4cb1f1956a03.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-4ad5b60f476d7c6e.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-2bf76696fbe6e76d.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-5d2511a7c06dd645.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/page-1891ec610b461455.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-bc090490b3416d48.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-7a1a29a230626f96.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-9729632fc8128534.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/page-bda9e826a1ac1a00.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/vault/page-28116d3ce827e152.js +0 -1
- package/web-ui/web-ui/.next/static/css/0af7782f7a750368.css +0 -2
- /package/web-ui/web-ui/.next/static/{x4ixG3_q4UeyC_WNmSFdI → scT_YT84DnOMXJI2dA75N}/_buildManifest.js +0 -0
- /package/web-ui/web-ui/.next/static/{x4ixG3_q4UeyC_WNmSFdI → scT_YT84DnOMXJI2dA75N}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=243,exports.ids=[243],exports.modules={2883:(a,b,c)=>{c.d(b,{db:()=>f});var d=c(79044);let e=globalThis;function f(){if(e.__akaDb)return e.__akaDb;let a=(0,d.Ji)((0,d.KS)());return a.purgeSampleData(),e.__akaDb=a,a}},48588:(a,b,c)=>{c.d(b,{db:()=>f});var d=c(4114);let e=globalThis;function f(){if(e.__akaDb)return e.__akaDb;let a=(0,d.Ji)((0,d.KS)());return a.purgeSampleData(),e.__akaDb=a,a}},61081:(a,b,c)=>{c.d(b,{Zs:()=>t,cm:()=>s,h2:()=>u,h6:()=>w,oP:()=>v});var d=c(34666);c(65340);var e=c(48161),f=c(
|
|
1
|
+
"use strict";exports.id=243,exports.ids=[243],exports.modules={2883:(a,b,c)=>{c.d(b,{db:()=>f});var d=c(79044);let e=globalThis;function f(){if(e.__akaDb)return e.__akaDb;let a=(0,d.Ji)((0,d.KS)());return a.purgeSampleData(),e.__akaDb=a,a}},48588:(a,b,c)=>{c.d(b,{db:()=>f});var d=c(4114);let e=globalThis;function f(){if(e.__akaDb)return e.__akaDb;let a=(0,d.Ji)((0,d.KS)());return a.purgeSampleData(),e.__akaDb=a,a}},61081:(a,b,c)=>{c.d(b,{Zs:()=>t,cm:()=>s,h2:()=>u,h6:()=>w,oP:()=>v});var d=c(34666);c(65340);var e=c(48161),f=c(34413),g=c(4114),h=c(38172),i=c(91363),j=c(48588),k=c(9812);let l="Could not read the local store (~/.aka/data/aka.db).";function m(a){return null===a.field?"The request did not arrive in the expected shape — reload the page and try again.":a.wrongType?`The '${a.field}' field did not arrive as text — reload the page and try again.`:`The '${a.field}' field was not in the expected form — reload the page and try again.`}let n=`${l} The fingerprint key cannot be minted until it is readable, because a key that reused a stored version would produce grants that never match.`;function o(a){let b=a?.code;return"floor-unreadable"===b?n:"string"==typeof b?"Could not access the exception key file — check the permissions on ~/.aka/data. Do not delete exception.key to work around this; that invalidates every existing grant.":"The exception key file is corrupt. Delete ~/.aka/data/exception.key to mint a new key (this invalidates existing grants)."}function p(){try{return(0,e.userInfo)().username}catch{return"unknown"}}function q(a){try{return(0,h.N6N)(a)}catch(a){return{error:a instanceof Error?a.message:"invalid scope"}}}function r(a){return(0,j.db)().exceptions.create(a).then(()=>((0,i.revalidatePath)("/exceptions"),{ok:!0})).catch(a=>a instanceof g.qA?{ok:!1,error:"An active exception for this value already exists — revoke it first."}:{ok:!1,error:"Could not create the exception."})}async function s(a){let b,c,d=(0,h.K7s)(h.QcD,a);if(!d.ok)return{ok:!1,error:m(d)};let e=d.data,f=e.reason.trim();if(""===f)return{ok:!1,error:"A reason is required — it is the audit trail."};let i=q(e.scope);if("error"in i)return{ok:!1,error:i.error};try{b=(await (0,j.db)().exceptions.recentBlocked(g.WR)).find(a=>a.reference===e.reference)}catch{return{ok:!1,error:l}}if(!b)return{ok:!1,error:"That blocked detection has expired from the ledger — trigger it again."};try{c=(0,g.y9)((0,g.KS)())}catch(a){return{ok:!1,error:o(a)}}return(0,g.Dg)(c,b.keyVersion)?"permanent"===i.scope&&e.confirmation!==b.maskedValue?{ok:!1,error:"Permanent grants require retyping the masked value exactly as shown."}:r({ruleId:b.ruleId,category:b.category,valueFingerprint:b.valueFingerprint,keyVersion:b.keyVersion,maskedValue:b.maskedValue,...i,justification:f,conditions:null,createdBy:p(),createdVia:"web-approve"}):{ok:!1,error:null===c?"The exception key file is missing, so the fingerprint recorded for this detection can no longer be matched. Trigger the detection again.":`That detection was blocked under fingerprint key v${String(b.keyVersion)}; the key is now v${String(c.version)}, so a grant from it could never match. Trigger the detection again.`}}async function t(a){let b,c,d=(0,h.K7s)(h.Nh0,a);if(!d.ok)return{ok:!1,error:m(d)};let e=d.data,i=e.reason.trim();if(""===i)return{ok:!1,error:"A reason is required — it is the audit trail."};let k=q(e.scope);if("error"in k)return{ok:!1,error:k.error};if(""===e.value)return{ok:!1,error:"No value supplied — nothing to except."};if("permanent"===k.scope&&e.confirmation!==e.value)return{ok:!1,error:"Permanent grants require retyping the value exactly."};try{({rules:b}=(0,j.db)().installedPacks.installedRuleset())}catch{return{ok:!1,error:l}}let n=b.find(a=>a.id===e.ruleId);if(!n)return{ok:!1,error:`Unknown or disabled rule '${e.ruleId}'.`};let s=(0,f.SQ)(e.value,b).filter(a=>a.ruleId===e.ruleId);if(0===s.length)return{ok:!1,error:`The value does not match rule ${e.ruleId} — a grant for it would never apply.`};let t=[...new Set(s.map(a=>a.rawMatch))],u=t[0];if(t.length>1||void 0===u)return{ok:!1,error:`The input contains ${String(t.length)} distinct values matching ${e.ruleId} — supply exactly one.`};try{c=(0,g.Rd)((0,g.KS)())}catch(a){return{ok:!1,error:o(a)}}let v={valueFingerprint:(0,g._2)(c,u),keyVersion:c.version,maskedValue:(0,f.sE)(u)};return r({ruleId:n.id,category:n.category,...v,...k,justification:i,conditions:null,createdBy:p(),createdVia:"web-add"})}async function u(a){let b,c,d=(0,h.K7s)(h.agn,a);if(!d.ok)return{ok:!1,error:m(d)};let e=d.data,f=e.justification.trim();if(""===f)return{ok:!1,error:"A justification is required — it is the audit trail."};let k=q(e.scope);if("error"in k)return{ok:!1,error:k.error};let l=h.jUf.safeParse(e.pointer.trim());if(!l.success)return{ok:!1,error:"Not a vault pointer — paste the full [[aka:...]] token."};try{let a=new g.Pi({repo:(0,j.db)().secretVault,keys:(0,g.Ru)((0,g.xR)().vaultKeyCustody,(0,g.Wo)()),isConsented:()=>(0,h.hds)((0,g.xR)().vaultConsent)});b=await a.resolvePointerIdentity(l.data),c=null===b?null:await a.describePointer(l.data)}catch{b=null,c=null}if(null===b)return{ok:!1,error:"The pointer could not be resolved — it is not one this machine issued, or its entry was purged."};let n=c?.category??function(a){let b=a.slice(6).split(":")[0]??"",c=h.gbA.safeParse(b);return c.success?c.data:null}(l.data);if(null===n)return{ok:!1,error:"Not a vault pointer — paste the full [[aka:...]] token."};if("permanent"===k.scope){if(null===c)return{ok:!1,error:"A permanent reveal needs the value preview to confirm against — use a time-limited scope."};if(e.confirmation!==c.maskedMatch)return{ok:!1,error:`A permanent reveal must be confirmed by retyping the masked value (${c.maskedMatch}).`}}try{let a=await (0,j.db)().exceptions.create({ruleId:b.ruleId,category:n,valueFingerprint:b.valueFingerprint,keyVersion:b.fingerprintKeyVersion,maskedValue:c?.maskedMatch??"\xb7\xb7\xb7",capability:"reveal_to_model",...k,justification:f,conditions:null,createdBy:"dashboard",createdVia:"web-approve"});return(0,i.revalidatePath)("/exceptions"),{ok:!0,grantIdPrefix:a.id.slice(0,8)}}catch(a){if(a instanceof g.qA)return{ok:!1,error:"An active exception for this value already exists — revoke it first."};return{ok:!1,error:"Could not create the reveal grant."}}}async function v(a,b){let c,d=(0,h.K7s)(h.eYL,{id:a,reason:b});if(!d.ok)return{ok:!1,error:m(d)};let e=d.data,f=e.reason.trim();try{c=await (0,j.db)().exceptions.revoke(e.id,p(),""===f?void 0:f)}catch{return{ok:!1,error:l}}return c?((0,i.revalidatePath)("/exceptions"),(0,i.revalidatePath)(`/exceptions/${e.id}`),{ok:!0}):{ok:!1,error:"No active exception with that id."}}async function w(a){let b,c=(0,h.K7s)(h.JJC,{confirmation:a});if(!c.ok)return{ok:!1,error:m(c)};if("rotate"!==c.data.confirmation)return{ok:!1,error:'Type "rotate" to confirm.'};try{b=(0,g.v5)((0,g.KS)())}catch(a){return{ok:!1,error:`Could not rotate the fingerprint key. ${o(a)}`}}try{let a=new g.Pi({repo:(0,j.db)().secretVault,keys:(0,g.Ru)((0,g.xR)().vaultKeyCustody,(0,g.Wo)()),isConsented:()=>(0,h.hds)((0,g.xR)().vaultConsent)});await a.refreshFingerprints(b)}catch{}return(0,i.revalidatePath)("/exceptions"),{ok:!0}}(0,k.D)([s,t,u,v,w]),(0,d.A)(s,"40970d988bc2dfd6d4bb07fa27d7d6bec96b7d6c8b",null),(0,d.A)(t,"40e71e8510c88498e9327fa903797663cb1d8b30a6",null),(0,d.A)(u,"4035cb54f1a696bcfc2ab73774e765a4367c63bcf0",null),(0,d.A)(v,"6090679cec2bba8c9babbca49eaa2c70df641e6efe",null),(0,d.A)(w,"403de8437cf8ae12523b84ecee78e9112dd8f5d21c",null)}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=333,exports.ids=[333],exports.modules={2264:(a,b,c)=>{c.d(b,{HarnessSelect:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call HarnessSelect() from the server but HarnessSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/HarnessSelect.tsx","HarnessSelect")},2703:(a,b,c)=>{c.d(b,{DataSharesTableView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call DataSharesTableView() from the server but DataSharesTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/data-shares/DataSharesTableView.tsx","DataSharesTableView")},3076:(a,b,c)=>{c.d(b,{FindingsLocationsView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call FindingsLocationsView() from the server but FindingsLocationsView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsLocationsView.tsx","FindingsLocationsView")},3405:(a,b,c)=>{c.d(b,{DerefAuditTableView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call DerefAuditTableView() from the server but DerefAuditTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/vault/DerefAuditTableView.tsx","DerefAuditTableView")},5151:(a,b,c)=>{c.d(b,{ScopePicker:()=>g,StateTag:()=>e,StateTagFor:()=>f});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call StateTag() from the server but StateTag is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","StateTag"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call StateTagFor() from the server but StateTagFor is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","StateTagFor");(0,d.registerClientReference)(function(){throw Error("Attempted to call CapabilityTagFor() from the server but CapabilityTagFor is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","CapabilityTagFor");let g=(0,d.registerClientReference)(function(){throw Error("Attempted to call ScopePicker() from the server but ScopePicker is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","ScopePicker")},6434:(a,b,c)=>{c.d(b,{RecommendedActionsCardView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call RecommendedActionsCardView() from the server but RecommendedActionsCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/security/RecommendedActionsCardView.tsx","RecommendedActionsCardView")},13955:(a,b,c)=>{c.d(b,{FindingsFlatTableView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call FindingsFlatTableView() from the server but FindingsFlatTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsFlatTableView.tsx","FindingsFlatTableView")},14538:(a,b,c)=>{c.d(b,{FindingDetailView:()=>f,formatConfidence:()=>e});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call formatConfidence() from the server but formatConfidence is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingDetailView.tsx","formatConfidence"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call FindingDetailView() from the server but FindingDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingDetailView.tsx","FindingDetailView")},15291:(a,b,c)=>{c.d(b,{PolicyPicker:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call PolicyPicker() from the server but PolicyPicker is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/PolicyPicker.tsx","PolicyPicker")},17802:(a,b,c)=>{c.d(b,{TimeRangeSelect:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call TimeRangeSelect() from the server but TimeRangeSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/TimeRangeSelect.tsx","TimeRangeSelect")},20526:(a,b,c)=>{c.d(b,{DetectionDetailView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call DetectionDetailView() from the server but DetectionDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/DetectionDetailView.tsx","DetectionDetailView")},20726:(a,b,c)=>{c.d(b,{NeedsReviewStripView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call NeedsReviewStripView() from the server but NeedsReviewStripView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/data-shares/NeedsReviewStripView.tsx","NeedsReviewStripView")},22242:(a,b,c)=>{c.d(b,{MttrTrendCardView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call MttrTrendCardView() from the server but MttrTrendCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/security/MttrTrendCardView.tsx","MttrTrendCardView")},24283:(a,b,c)=>{c.d(b,{FileDetailDrawer:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call FileDetailDrawer() from the server but FileDetailDrawer is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/FileDetailDrawer.tsx","FileDetailDrawer")},29037:(a,b,c)=>{c.r(b),c.d(b,{AreaChart:()=>h,Donut:()=>e,Sparkline:()=>f,useMeasuredWidth:()=>g});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call Donut() from the server but Donut is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","Donut"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call Sparkline() from the server but Sparkline is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","Sparkline"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call useMeasuredWidth() from the server but useMeasuredWidth is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","useMeasuredWidth"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call AreaChart() from the server but AreaChart is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","AreaChart")},29072:(a,b,c)=>{c.d(b,{PolicyDetailView:()=>g,PolicyListView:()=>f,PolicyStatsView:()=>e});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call PolicyStatsView() from the server but PolicyStatsView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/policies/PoliciesView.tsx","PolicyStatsView"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call PolicyListView() from the server but PolicyListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/policies/PoliciesView.tsx","PolicyListView"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call PolicyDetailView() from the server but PolicyDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/policies/PoliciesView.tsx","PolicyDetailView")},29372:(a,b,c)=>{c.d(b,{FindingsTableView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call FindingsTableView() from the server but FindingsTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsTableView.tsx","FindingsTableView")},29461:(a,b,c)=>{c.d(b,{DataShareDetailView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call DataShareDetailView() from the server but DataShareDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/data-shares/DataShareDetailView.tsx","DataShareDetailView")},31909:(a,b,c)=>{c.d(b,{BlockedLedgerView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call BlockedLedgerView() from the server but BlockedLedgerView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/BlockedLedgerView.tsx","BlockedLedgerView")},35711:(a,b,c)=>{c.d(b,{SessionListView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call SessionListView() from the server but SessionListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/SessionListView.tsx","SessionListView")},37907:(a,b,c)=>{c.d(b,{ROTATE_CONFIRMATION:()=>e,RotateKeyDialog:()=>f});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call ROTATE_CONFIRMATION() from the server but ROTATE_CONFIRMATION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/RotateKeyDialog.tsx","ROTATE_CONFIRMATION"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call RotateKeyDialog() from the server but RotateKeyDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/RotateKeyDialog.tsx","RotateKeyDialog")},38406:(a,b,c)=>{c.d(b,{VaultReuseView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call VaultReuseView() from the server but VaultReuseView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/vault/VaultReuseView.tsx","VaultReuseView")},40193:(a,b,c)=>{c.d(b,{WorkspaceSettingsFormView:()=>e});var d=c(77940);(0,d.registerClientReference)(function(){throw Error("Attempted to call HANDLING_SECTION_LABEL() from the server but HANDLING_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HANDLING_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HANDLING_SECTION_DESCRIPTION() from the server but HANDLING_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HANDLING_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call POLICY_CHOICES() from the server but POLICY_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","POLICY_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORICAL_SECTION_LABEL() from the server but HISTORICAL_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORICAL_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORICAL_SECTION_DESCRIPTION() from the server but HISTORICAL_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORICAL_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORICAL_CHOICES() from the server but HISTORICAL_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORICAL_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call MODEL_JUDGE_SECTION_LABEL() from the server but MODEL_JUDGE_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","MODEL_JUDGE_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call MODEL_JUDGE_SECTION_DESCRIPTION() from the server but MODEL_JUDGE_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","MODEL_JUDGE_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call MODEL_JUDGE_CHOICES() from the server but MODEL_JUDGE_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","MODEL_JUDGE_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_SECTION_LABEL() from the server but VAULT_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_SECTION_DESCRIPTION() from the server but VAULT_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_CHOICES() from the server but VAULT_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call INLINE_REVEAL_SECTION_LABEL() from the server but INLINE_REVEAL_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","INLINE_REVEAL_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call INLINE_REVEAL_SECTION_DESCRIPTION() from the server but INLINE_REVEAL_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","INLINE_REVEAL_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call INLINE_REVEAL_CHOICES() from the server but INLINE_REVEAL_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","INLINE_REVEAL_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call vaultChoiceOf() from the server but vaultChoiceOf is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","vaultChoiceOf"),(0,d.registerClientReference)(function(){throw Error("Attempted to call vaultConsentStale() from the server but vaultConsentStale is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","vaultConsentStale"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_STALE_NOTICE() from the server but VAULT_STALE_NOTICE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_STALE_NOTICE");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call WorkspaceSettingsFormView() from the server but WorkspaceSettingsFormView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","WorkspaceSettingsFormView")},45453:(a,b,c)=>{c.d(b,{UpdateModal:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call UpdateModal() from the server but UpdateModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/UpdateModal.tsx","UpdateModal")},46454:(a,b,c)=>{c.d(b,{VaultInventoryView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call VaultInventoryView() from the server but VaultInventoryView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/vault/VaultInventoryView.tsx","VaultInventoryView")},48335:(a,b,c)=>{c.d(b,{ApproveExceptionDialog:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call ApproveExceptionDialog() from the server but ApproveExceptionDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/ApproveExceptionDialog.tsx","ApproveExceptionDialog")},56862:(a,b,c)=>{c.d(b,{ExceptionDetailView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call ExceptionDetailView() from the server but ExceptionDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/ExceptionDetailView.tsx","ExceptionDetailView")},59665:(a,b,c)=>{c.d(b,{AvailablePluginsCardView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call AvailablePluginsCardView() from the server but AvailablePluginsCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/updates/AvailablePluginsCardView.tsx","AvailablePluginsCardView")},61340:(a,b,c)=>{c.d(b,{EmptyState:()=>e});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call EmptyState() from the server but EmptyState is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","EmptyState");(0,d.registerClientReference)(function(){throw Error("Attempted to call Section() from the server but Section is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","Section"),(0,d.registerClientReference)(function(){throw Error("Attempted to call RadioCardList() from the server but RadioCardList is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","RadioCardList"),(0,d.registerClientReference)(function(){throw Error("Attempted to call AccessControl() from the server but AccessControl is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","AccessControl"),(0,d.registerClientReference)(function(){throw Error("Attempted to call AccessLabel() from the server but AccessLabel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","AccessLabel"),(0,d.registerClientReference)(function(){throw Error("Attempted to call AccessBar() from the server but AccessBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","AccessBar"),(0,d.registerClientReference)(function(){throw Error("Attempted to call TrustPill() from the server but TrustPill is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","TrustPill"),(0,d.registerClientReference)(function(){throw Error("Attempted to call FlagChip() from the server but FlagChip is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","FlagChip"),(0,d.registerClientReference)(function(){throw Error("Attempted to call FlagChips() from the server but FlagChips is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","FlagChips"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VisBadge() from the server but VisBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","VisBadge"),(0,d.registerClientReference)(function(){throw Error("Attempted to call OriginTag() from the server but OriginTag is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","OriginTag")},65906:(a,b,c)=>{c.d(b,{AssetDetail:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call AssetDetail() from the server but AssetDetail is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/AssetDetail.tsx","AssetDetail")},67390:(a,b,c)=>{c.d(b,{MatcherModal:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call MatcherModal() from the server but MatcherModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/MatcherModal.tsx","MatcherModal")},70024:(a,b,c)=>{c.d(b,{ExceptionsTableView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call ExceptionsTableView() from the server but ExceptionsTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/ExceptionsTableView.tsx","ExceptionsTableView")},72253:(a,b,c)=>{c.d(b,{ColumnsMenu:()=>f,FindingsToolbarView:()=>e});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call FindingsToolbarView() from the server but FindingsToolbarView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsToolbarView.tsx","FindingsToolbarView"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call ColumnsMenu() from the server but ColumnsMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsToolbarView.tsx","ColumnsMenu")},72354:(a,b,c)=>{c.d(b,{ActivityTokenUsageView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call ActivityTokenUsageView() from the server but ActivityTokenUsageView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/ActivityTokenUsageView.tsx","ActivityTokenUsageView")},76908:(a,b,c)=>{c.d(b,{HarnessOverview:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call HarnessOverview() from the server but HarnessOverview is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/HarnessOverview.tsx","HarnessOverview")},78567:(a,b,c)=>{c.d(b,{AddExceptionForm:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call AddExceptionForm() from the server but AddExceptionForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/AddExceptionForm.tsx","AddExceptionForm")},81179:(a,b,c)=>{c.d(b,{UpdateStatusCardView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call UpdateStatusCardView() from the server but UpdateStatusCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/updates/UpdateStatusCardView.tsx","UpdateStatusCardView")},83e3:(a,b,c)=>{c.d(b,{SessionDetailView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call SessionDetailView() from the server but SessionDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/SessionDetailView.tsx","SessionDetailView")},86333:(a,b,c)=>{c.d(b,{nkv:()=>N,rDU:()=>O.ActivityTokenUsageView,DrA:()=>l,DQQ:()=>G,cZ5:()=>D,VNw:()=>Q,ahu:()=>Z,_GS:()=>v,Lgv:()=>_,oUz:()=>aa.MttrTrendCardView,ece:()=>p,fcY:()=>S.PolicyStatsView,c2Z:()=>ab,RyQ:()=>ah,hU:()=>ai,Zus:()=>z,TkU:()=>I,k3y:()=>F,XTX:()=>aj,$x2:()=>ag,b45:()=>al,UqB:()=>R,OHL:()=>h.OHL,QTF:()=>j,oBs:()=>k,KWc:()=>g,pif:()=>m,twV:()=>U});let d={primary:"var(--color-primary)",ok:"var(--color-ok)",sevCritical:"var(--color-sev-critical)",sevHigh:"var(--color-sev-high)",sevMedium:"var(--color-sev-medium)",sevLow:"var(--color-sev-low)"},e=new Intl.RelativeTimeFormat("en",{numeric:"auto"}),f=[["year",31536e3],["month",2592e3],["week",604800],["day",86400],["hour",3600],["minute",60]];function g(a){if(!a)return"";let b=Date.parse(a);if(Number.isNaN(b))return"";let c=(b-Date.now())/1e3,d=Math.abs(c);if(d<45)return"just now";for(let[a,b]of f)if(d>=b)return e.format(Math.round(c/b),a);return"just now"}var h=c(75261);let i=[{value:"7d",label:"Last 7 days"},{value:"30d",label:"Last 30 days"},{value:"3m",label:"Last 3 months"},{value:"6m",label:"Last 6 months"}];function j(a){return i.find(b=>b.value===a)?.label??a}function k(a,b=Date.now()){return new Date(b-864e5*h.eI7[a]).toISOString()}let l={"30m":18e5,"1h":36e5,"4h":144e5,"24h":864e5};function m(a){return void 0!==a&&Object.hasOwn(l,a)?a:"30m"}var n=c(29037),o=c(87472);function p({title:a,sub:b,actions:c}){return(0,o.jsxs)("div",{className:"flex items-start justify-between gap-4 pb-6",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"font-display text-2xl font-semibold text-text",children:a}),b&&(0,o.jsx)("p",{className:"mt-1 text-sm text-text-3",children:b})]}),c&&(0,o.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c})]})}let q={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"},antigravity:{label:"Antigravity",short:"Ag",color:"#4285F4"},copilot:{label:"GitHub Copilot",short:"Co",color:"#0581D4"},chatgpt:{label:"ChatGPT",short:"GP",color:"#0d8f6f"},claudeai:{label:"Claude.ai",short:"Ca",color:"#D97757"},api:{label:"Anthropic API",short:"AP",color:"#6058E9"}};function r({id:a,size:b=24}){let c=q[a];return(0,o.jsx)("span",{className:"flex shrink-0 items-center justify-center rounded-lg font-display font-bold text-white ring-1 ring-inset ring-mark-edge",style:{width:b,height:b,background:c.color,fontSize:.36*b},children:c.short})}var s=c(76085);let t={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"},u=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("path",{d:"M8 2.5h8L21.5 8v8L16 21.5H8L2.5 16V8L8 2.5Z"}),(0,o.jsx)("path",{d:"M12 8v4"}),(0,o.jsx)("circle",{cx:"12",cy:"16",r:"1",fill:"currentColor",stroke:"none"})]}),v=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("path",{d:"M14 4h6v6"}),(0,o.jsx)("path",{d:"M20 4 11 13"}),(0,o.jsx)("path",{d:"M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4"})]}),w=a=>(0,o.jsx)("svg",{...t,...a,children:(0,o.jsx)("path",{d:"M12 19V5M6 11l6-6 6 6"})}),x=a=>(0,o.jsx)("svg",{...t,...a,children:(0,o.jsx)("path",{d:"M12 5v14M6 13l6 6 6-6"})}),y=a=>(0,o.jsx)("svg",{...t,...a,children:(0,o.jsx)("path",{d:"M4 20V10M10 20V4M16 20v-7M22 20H2"})}),z=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.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,o.jsx)("path",{d:"m9 12 2 2 4-4"})]}),A=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("circle",{cx:"12",cy:"12",r:"8.5"}),(0,o.jsx)("circle",{cx:"12",cy:"12",r:"4.5"}),(0,o.jsx)("circle",{cx:"12",cy:"12",r:"1",fill:"currentColor",stroke:"none"})]}),B=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("circle",{cx:"12",cy:"8",r:"3.6"}),(0,o.jsx)("path",{d:"M5.5 20a6.5 6.5 0 0 1 13 0"})]}),C=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("path",{d:"M6 8.4v7.2"}),(0,o.jsx)("circle",{cx:"6",cy:"6",r:"2.4"}),(0,o.jsx)("circle",{cx:"6",cy:"18",r:"2.4"}),(0,o.jsx)("circle",{cx:"18",cy:"7",r:"2.4"}),(0,o.jsx)("path",{d:"M18 9.4a8.6 8.6 0 0 1-8.6 8.6"})]}),D=a=>(0,o.jsx)("svg",{...t,...a,children:(0,o.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"})}),E=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,o.jsx)("path",{d:"m8.5 12 2.3 2.3 4.7-4.6"})]}),F=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),(0,o.jsx)("path",{d:"m7 9 3 3-3 3M13 15h4"})]}),G=a=>(0,o.jsx)("svg",{...t,...a,children:(0,o.jsx)("path",{d:"M13 2 4 14h7l-1 8 9-12h-7l1-8Z"})});function H({label:a,tone:b="neutral",dir:c}){let d="up"===c?w:"down"===c?x:null;return(0,o.jsxs)("span",{className:(0,s.cn)("inline-flex items-center gap-1 text-xs font-semibold","positive"===b?"text-ok-ink":"negative"===b?"text-sev-critical-ink":"text-text-3"),children:[d&&(0,o.jsx)(d,{"aria-hidden":!0,focusable:!1,className:"size-3"}),a]})}function I({icon:a,iconBg:b,iconColor:c,label:e,value:f,delta:g,spark:h,sparkColor:i,sparkLabels:j,sparkFormatValue:k,loading:l=!1}){return(0,o.jsxs)(s.Zp,{className:"flex flex-col gap-2.5 p-4.5 shadow-sm","aria-busy":l||void 0,children:[(0,o.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,o.jsx)("span",{className:"grid size-8.5 shrink-0 place-items-center rounded-lg",style:{background:b,color:c},children:(0,o.jsx)(a,{"aria-hidden":!0,focusable:!1,className:"size-4.5"})}),(0,o.jsx)("span",{className:"text-ui font-medium text-text-2",children:e})]}),l?(0,o.jsx)(s.EA,{className:"my-1 h-7 w-10"}):(0,o.jsxs)("div",{className:"flex items-end justify-between gap-2",children:[(0,o.jsx)("span",{className:"font-display text-3xl font-semibold leading-none tracking-[-0.03em] text-text",children:f}),g&&(0,o.jsx)(H,{...g})]}),h&&!l&&(0,o.jsx)("div",{className:"mt-0.5",children:(0,o.jsx)(n.Sparkline,{data:h,color:i??d.primary,height:34,...j?{labels:j}:{},...k?{formatValue:k}:{}})})]})}function J({message:a}){return(0,o.jsxs)("div",{role:"alert",className:"text-xs text-text-3",children:["Couldn’t load data — ",a]})}function K({message:a,className:b}){return(0,o.jsx)("div",{className:(0,s.cn)("w-full py-6 text-center text-xs text-text-3",b),children:a})}c(17802);var L=c(93681);function M({icon:a,value:b,label:c,text:d,fill:e}){return(0,o.jsxs)("div",{className:"flex flex-1 items-center gap-2.5 px-5",children:[(0,o.jsx)("span",{className:(0,s.cn)("grid size-8 shrink-0 place-items-center rounded-lg",e,d),children:(0,o.jsx)(a,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)("div",{className:"min-w-0",children:[(0,o.jsx)("div",{className:"font-display text-xl font-semibold leading-none tabular-nums text-text",children:b}),(0,o.jsx)("div",{className:"mt-0.5 text-xs text-text-3",children:c})]})]})}function N({items:a,isLoading:b,error:c}){return(0,o.jsx)(s.Zp,{className:"mb-3.5 flex shrink-0 items-stretch py-3.5 shadow-sm","aria-busy":b,children:c?(0,o.jsx)("div",{className:"px-5",children:(0,o.jsx)(J,{message:c})}):b&&0===a.length?Array.from({length:5},(a,b)=>(0,o.jsxs)(L.Fragment,{children:[b>0&&(0,o.jsx)("span",{className:"w-px shrink-0 self-stretch bg-text/6"}),(0,o.jsxs)("div",{className:"flex flex-1 items-center gap-2.5 px-5",children:[(0,o.jsx)(s.EA,{className:"size-8 shrink-0 rounded-lg"}),(0,o.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,o.jsx)(s.EA,{className:"h-5 w-10"}),(0,o.jsx)(s.EA,{className:"mt-1 h-3 w-20"})]})]})]},b)):a.map((a,b)=>(0,o.jsxs)(L.Fragment,{children:[b>0&&(0,o.jsx)("span",{className:"w-px shrink-0 self-stretch bg-text/6"}),(0,o.jsx)(M,{...a})]},a.label))})}var O=c(72354);new Intl.DateTimeFormat("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}),new Intl.DateTimeFormat("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"}),c(2264),c(83e3),c(35711);let P=["grouped","flat","files"],Q="grouped";function R(a){return P.includes(a)}c(14538),c(13955),c(3076),c(29372),c(72253),c(20526),c(93284),c(67390),c(15291),c(45453);var S=c(29072);c(65906),c(61340);let T={skill:{type:"skill",label:"Skills",icon:"sparkles",fg:"text-violet-ink",bg:"bg-violet-fill"},mcp:{type:"mcp",label:"MCP servers",icon:"server",fg:"text-teal-ink",bg:"bg-teal-fill"},hook:{type:"hook",label:"Hooks",icon:"route",fg:"text-sev-low-ink",bg:"bg-sev-low-fill"},config:{type:"config",label:"Configuration",icon:"sliders",fg:"text-teal-ink",bg:"bg-surface-2"}};function U(a,b){let c;if(null!=a&&("harness"===a.type?b.harnesses.some(b=>b.id===a.id):"project"===a.type?b.projects.some(b=>b.id===a.id):(c=a.id,b.assetGroups.some(a=>a.items.some(a=>a.id===c))||b.harnesses.some(a=>a.categories.some(a=>a.assets.some(a=>a.id===c))))))return a;let d=b.harnesses[0];if(d)return{type:"harness",id:d.id};let e=b.projects[0];if(e)return{type:"project",id:e.id};for(let a of b.assetGroups){let b=a.items[0];if("project"!==a.type&&b)return{type:a.type,id:b.id}}return null}T.skill,T.mcp,T.hook,T.config,c(24283),c(76908),c(86602),c(92312);let V={critical:{label:"Critical",color:d.sevCritical},high:{label:"High",color:d.sevHigh},medium:{label:"Medium",color:d.sevMedium},low:{label:"Low",color:d.sevLow}},W={critical:"bg-sev-critical-fill text-sev-critical-ink",high:"bg-sev-high-fill text-sev-high-ink",medium:"bg-sev-medium-fill text-sev-medium-ink",low:"bg-sev-low-fill text-sev-low-ink"},X={blocked:{label:"Blocked",icon:a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,o.jsx)("path",{d:"m6 6 12 12"})]}),color:d.sevCritical},redacted:{label:"Redacted",icon:a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("rect",{x:"3",y:"9",width:"18",height:"6",rx:"1.5",fill:"currentColor",stroke:"none"}),(0,o.jsx)("path",{d:"M3 5h18M3 19h12"})]}),color:d.primary},warned:{label:"Warned",icon:u,color:d.sevHigh}},Y=new Intl.NumberFormat("en-US");function Z({total:a,actions:b,isLoading:c,error:d,rangeLabel:e}){return(0,o.jsx)(s.Zp,{className:"flex flex-col shadow-sm",children:(0,o.jsxs)(s.Wu,{"aria-busy":c,className:"flex flex-1 flex-col justify-center gap-4",children:[(0,o.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:"text-sm font-semibold text-text",children:"Enforcement actions"}),(0,o.jsx)("div",{className:"mt-0.5 text-xs text-text-3",children:e.toLowerCase()})]}),(0,o.jsxs)("div",{className:"text-right",children:[c?(0,o.jsx)(s.EA,{className:"ml-auto h-5 w-12"}):(0,o.jsx)("div",{className:"font-display text-xl font-semibold leading-none text-text",children:d?"—":Y.format(a)}),(0,o.jsx)("div",{className:"mt-0.5 text-label text-text-3",children:"total intercepted"})]})]}),d?(0,o.jsx)(J,{message:d}):c?(0,o.jsx)("div",{className:"flex gap-3",children:[0,1,2].map(a=>(0,o.jsx)(s.EA,{className:"h-20 flex-1"},a))}):0===a?(0,o.jsx)(K,{message:"No enforcement actions in this range."}):(0,o.jsx)("div",{className:"flex gap-3",children:b.map(a=>{let b=X[a.kind],c=b.icon,d=a.delta>0;return(0,o.jsxs)("div",{className:"min-w-0 flex-1 border-l-[3px] pl-3",style:{borderColor:b.color},children:[(0,o.jsxs)("div",{className:"inline-flex items-center gap-1.5",style:{color:b.color},children:[(0,o.jsx)(c,{"aria-hidden":!0,focusable:!1,className:"size-4"}),(0,o.jsx)("span",{className:"text-xs font-semibold text-text-2",children:b.label})]}),(0,o.jsx)("div",{className:"mt-2 font-display text-3xl font-semibold leading-none text-text",children:Y.format(a.count)}),0!==a.delta&&(0,o.jsxs)("div",{className:"mt-1 inline-flex items-center gap-0.5 text-xs font-semibold text-text-3",children:[d?(0,o.jsx)(w,{"aria-hidden":!0,focusable:!1,className:"size-3"}):(0,o.jsx)(x,{"aria-hidden":!0,focusable:!1,className:"size-3"}),d?"+":"−",Y.format(Math.abs(a.delta))," wk/wk"]})]},a.kind)})})]})})}let $=[{key:"critical",label:"Critical",color:d.sevCritical},{key:"high",label:"High",color:d.sevHigh},{key:"medium",label:"Medium",color:d.sevMedium}];function _({points:a,isLoading:b,error:c}){let d=a.every(a=>a.critical+a.high+a.medium===0);return(0,o.jsxs)(s.Zp,{className:"mt-4 shadow-sm xl:mt-5",children:[(0,o.jsxs)(s.aR,{children:[(0,o.jsx)(s.AG,{children:(0,o.jsx)(y,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)(s.Lc,{children:[(0,o.jsx)(s.ZB,{children:"Findings over time"}),(0,o.jsx)(s.BT,{children:"New sensitive-data detections per day"})]}),(0,o.jsx)(s.X9,{className:"gap-3 text-xs text-text-2",children:$.map(a=>(0,o.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,o.jsx)("span",{className:"size-2 rounded-xs",style:{background:a.color}}),a.label]},a.key))})]}),(0,o.jsx)(s.Wu,{"aria-busy":b,className:"pb-2",children:c?(0,o.jsx)(J,{message:c}):b?(0,o.jsx)(s.EA,{className:"h-40 w-full"}):d?(0,o.jsx)(K,{message:"No findings in this range."}):(0,o.jsx)(n.AreaChart,{data:a,series:$,height:160})})]})}var aa=c(22242);function ab({items:a,isLoading:b,error:c}){return(0,o.jsxs)(s.Zp,{className:"flex h-full flex-col shadow-sm",children:[(0,o.jsxs)(s.aR,{children:[(0,o.jsx)(s.AG,{children:(0,o.jsx)(E,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)(s.Lc,{children:[(0,o.jsx)(s.ZB,{children:"Recently resolved"}),(0,o.jsx)(s.BT,{children:"Findings moved to resolved, newest first"})]})]}),(0,o.jsx)(s.Wu,{"aria-busy":b,className:"flex flex-col",children:c?(0,o.jsx)(J,{message:c}):b?(0,o.jsx)("div",{className:"flex flex-col gap-3 py-2",children:[0,1,2].map(a=>(0,o.jsx)(s.EA,{className:"h-12 w-full"},a))}):0===a.length?(0,o.jsx)(K,{message:"No resolved findings yet."}):a.map((b,c)=>(0,o.jsx)(ac,{item:b,last:c===a.length-1},b.findingKey))})]})}function ac({item:a,last:b}){return(0,o.jsxs)("div",{className:(0,s.cn)("relative flex gap-3",!b&&"pb-4"),children:[!b&&(0,o.jsx)("span",{className:"absolute bottom-0 left-4 top-8 w-px bg-text/6"}),(0,o.jsx)("span",{className:(0,s.cn)("z-10 grid size-8 shrink-0 place-items-center rounded-lg",W[a.severity]),children:(0,o.jsx)(E,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)("span",{className:"truncate text-sm font-semibold text-text",title:a.ruleId,children:a.ruleId}),(0,o.jsx)("span",{className:"ml-auto shrink-0 text-xs text-text-3",children:g(a.resolvedAt)})]}),(0,o.jsxs)("div",{className:"mt-1.5 flex items-center gap-1.5 text-xs text-text-3",children:[(0,o.jsx)("span",{className:"shrink-0",children:V[a.severity].label}),(0,o.jsx)("span",{className:"shrink-0 text-text-3",children:"\xb7"}),(0,o.jsx)("span",{className:"truncate font-mono",title:a.path,children:a.path})]})]})]})}let ad={critical:4,high:3,medium:2,low:1},ae={secret:"Rotate the exposed credentials and move them out of prompts (secrets manager / env vars).",pii:"Remove or mask personal data before it reaches the model.",financial:"Strip card and account numbers; share only non-sensitive references.",phi:"Remove protected health information — it should never reach an external model.",code_context:"Confirm this proprietary code context is safe to share.",custom:"Review against your organization’s custom policy."},af={secret:{title:"Exposed secret detected",action:"Rotate"},pii:{title:"Personal data in a prompt",action:"Remove"},financial:{title:"Financial data detected",action:"Strip"},phi:{title:"Health information detected",action:"Remove"},code_context:{title:"Proprietary code shared",action:"Review"},custom:{title:"Custom policy match",action:"Review"}};function ag(a){return(function(a){let b=new Map;for(let c of a){let a=b.get(c.category)??{category:c.category,count:0,severity:c.severity,weight:0,ruleId:c.ruleId};a.count++;let d=ad[c.severity]??0;d>a.weight&&(a.weight=d,a.severity=c.severity,a.ruleId=c.ruleId),b.set(c.category,a)}return[...b.values()].sort((a,b)=>b.weight-a.weight||b.count-a.count).slice(0,10)})(a).map(a=>{var b;let c=af[a.category]??{title:`${a.category} finding`,action:"Review"};return{id:`local-${a.category}`,category:a.category,severity:"critical"===(b=a.severity)||"high"===b||"medium"===b?b:"low",title:c.title,description:ae[a.category]??"Review this finding against your policy.",subjects:[{type:"rule",id:a.ruleId,label:`${a.ruleId} \xb7 ${String(a.count)} finding${1===a.count?"":"s"}`}],action:{mode:"navigate",type:"review_findings",label:c.action,href:"/findings"}}})}function ah({providers:a,isLoading:b,error:c,rangeLabel:e}){return(0,o.jsxs)(s.Zp,{className:"flex flex-col shadow-sm",children:[(0,o.jsxs)(s.aR,{children:[(0,o.jsx)(s.AG,{className:"bg-teal-fill text-teal-ink",children:(0,o.jsx)(z,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)(s.Lc,{children:[(0,o.jsx)(s.ZB,{children:"Scan coverage"}),(0,o.jsxs)(s.BT,{children:["By provider \xb7 ",e.toLowerCase()]})]})]}),(0,o.jsx)(s.Wu,{"aria-busy":b,className:"flex flex-col gap-2.5",children:c?(0,o.jsx)(J,{message:c}):b?[0,1,2,3,4].map(a=>(0,o.jsx)(s.EA,{className:"h-6 w-full"},a)):a.map(a=>{let b=!a.supported,c=100===a.coverage?d.ok:a.coverage>=60?d.sevMedium:d.sevHigh;return(0,o.jsxs)("div",{className:(0,s.cn)("flex items-center gap-2.5",b&&"opacity-45"),children:[(0,o.jsx)("span",{className:(0,s.cn)(b&&"grayscale"),children:(0,o.jsx)(r,{id:a.provider})}),(0,o.jsxs)("span",{className:"w-28 shrink-0 truncate text-ui text-text",children:[q[a.provider].label,b&&(0,o.jsx)("span",{className:"sr-only",children:" — not yet supported"})]}),b?(0,o.jsx)("span",{"aria-hidden":!0,className:"block h-1.5 flex-1 rounded-full bg-surface-3"}):(0,o.jsx)(s.kI,{value:a.coverage,max:100,color:c,height:6,"aria-label":`${q[a.provider].label} scan coverage`}),b?(0,o.jsx)("span",{className:"w-9 shrink-0 text-right text-label font-semibold uppercase tracking-wide text-text-3",children:"Soon"}):(0,o.jsxs)("span",{className:"w-9 shrink-0 text-right text-xs font-semibold text-text-2",children:[a.coverage,"%"]})]},a.provider)})})]})}function ai({bySeverity:a,total:b,needsRemediation:c,isLoading:d,error:e}){let f=({bySeverity:a}).bySeverity.some(a=>void 0!==a.caught||void 0!==a.openAtRest),g=a.reduce((a,b)=>a+(b.caught??0),0);return(0,o.jsxs)(s.Zp,{className:"flex flex-col shadow-sm",children:[(0,o.jsxs)(s.aR,{children:[(0,o.jsx)(s.AG,{className:"bg-sev-critical-fill text-sev-critical-ink",children:(0,o.jsx)(u,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)(s.Lc,{children:[(0,o.jsx)(s.ZB,{children:f?"By severity":"Open by severity"}),(0,o.jsx)(s.BT,{children:d?"Loading…":e?"—":`${Y.format(b)} findings`})]})]}),(0,o.jsx)(s.Wu,{"aria-busy":d,className:"flex items-center gap-4",children:e?(0,o.jsx)(J,{message:e}):d?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.EA,{className:"size-30 shrink-0 rounded-full"}),(0,o.jsx)("div",{className:"flex flex-1 flex-col gap-2",children:[0,1,2,3].map(a=>(0,o.jsx)(s.EA,{className:"h-4 w-full"},a))})]}):0===b?(0,o.jsx)(K,{message:f?"No findings.":"No open findings."}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.Donut,{segments:a.map(a=>({label:V[a.severity].label,value:f?a.caught??0:a.count,color:V[a.severity].color})),size:120,thickness:15,children:(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:"font-display text-2xl font-semibold leading-none text-text",children:Y.format(f?g:b)}),(0,o.jsx)("div",{className:"text-label text-text-3",children:f?"caught":"open"})]})}),(0,o.jsxs)("div",{className:"flex flex-1 flex-col gap-2",children:[f?(0,o.jsxs)("div",{className:"flex items-center justify-between border-b border-border pb-2",children:[(0,o.jsx)("span",{className:"text-ui font-medium text-text-2",children:"Needs remediation"}),(0,o.jsx)("span",{className:"text-ui font-bold text-text",children:Y.format(c??0)})]}):null,a.map(a=>(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)("span",{className:"size-2 rounded-xs",style:{background:V[a.severity].color}}),(0,o.jsx)("span",{className:"flex-1 text-ui text-text-2",children:V[a.severity].label}),(0,o.jsx)("span",{className:"text-ui font-bold text-text",children:Y.format(a.count)})]},a.severity))]})]})})]})}function aj({items:a,isLoading:b,error:c}){return(0,o.jsxs)(s.Zp,{className:"flex flex-col shadow-sm min-w-0",children:[(0,o.jsxs)(s.aR,{children:[(0,o.jsx)(s.AG,{children:(0,o.jsx)(A,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)(s.Lc,{children:[(0,o.jsx)(s.ZB,{children:"Top sources"}),(0,o.jsx)(s.BT,{children:"Repos & people by findings"})]})]}),(0,o.jsx)(s.Wu,{"aria-busy":b,className:"flex flex-col gap-3",children:c?(0,o.jsx)(J,{message:c}):b?[0,1,2,3,4].map(a=>(0,o.jsx)(s.EA,{className:"h-7 w-full"},a)):0===a.length?(0,o.jsx)("div",{className:"py-6 text-center text-xs text-text-3",children:"No sources yet."}):a.map(a=>(0,o.jsx)(ak,{source:a},a.id))})]})}function ak({source:a}){let b="user"===a.kind;return(0,o.jsxs)("div",{className:"flex items-center gap-3",children:[(0,o.jsx)("span",{className:(0,s.cn)("flex size-7 shrink-0 items-center justify-center bg-surface-2 text-text-2",b?"rounded-full":"rounded-md"),children:(0,o.jsx)(b?B:C,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})}),(0,o.jsxs)("div",{className:"min-w-0 flex-1 flex items-center justify-between gap-2",children:[(0,o.jsx)("span",{className:(0,s.cn)("truncate text-sm text-text",!b&&"font-mono"),title:a.name,children:a.name}),(0,o.jsx)("span",{className:"text-sm font-bold text-text shrink-0",children:Y.format(a.findingsCount)})]})]})}function al(a,b){return(0,h.qEQ)(a.keyVersion,b)}c(6434),c(78567),c(48335),c(5151),c(31909),c(87765),c(56862),c(70024),c(37907),c(3405),c(46454),c(38406),c(59665),c(81179),c(40193),c(29461),c(2703),c(20726)},86602:(a,b,c)=>{c.d(b,{InventoryNav:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call InventoryNav() from the server but InventoryNav is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/InventoryNav.tsx","InventoryNav")},87765:(a,b,c)=>{c.d(b,{BlockedWindowSelect:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call BlockedWindowSelect() from the server but BlockedWindowSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/BlockedWindowSelect.tsx","BlockedWindowSelect")},92312:(a,b,c)=>{c.d(b,{ProjectPane:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call ProjectPane() from the server but ProjectPane is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/ProjectPane.tsx","ProjectPane")},93284:(a,b,c)=>{c.d(b,{DETECTION_FILTER_TABS:()=>e,DetectionsListView:()=>f});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call DETECTION_FILTER_TABS() from the server but DETECTION_FILTER_TABS is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/DetectionsListView.tsx","DETECTION_FILTER_TABS"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call DetectionsListView() from the server but DetectionsListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/DetectionsListView.tsx","DetectionsListView")}};
|
|
1
|
+
"use strict";exports.id=333,exports.ids=[333],exports.modules={2264:(a,b,c)=>{c.d(b,{HarnessSelect:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call HarnessSelect() from the server but HarnessSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/HarnessSelect.tsx","HarnessSelect")},2703:(a,b,c)=>{c.d(b,{DataSharesTableView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call DataSharesTableView() from the server but DataSharesTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/data-shares/DataSharesTableView.tsx","DataSharesTableView")},3076:(a,b,c)=>{c.d(b,{FindingsLocationsView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call FindingsLocationsView() from the server but FindingsLocationsView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsLocationsView.tsx","FindingsLocationsView")},3405:(a,b,c)=>{c.d(b,{DerefAuditTableView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call DerefAuditTableView() from the server but DerefAuditTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/vault/DerefAuditTableView.tsx","DerefAuditTableView")},5151:(a,b,c)=>{c.d(b,{ScopePicker:()=>g,StateTag:()=>e,StateTagFor:()=>f});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call StateTag() from the server but StateTag is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","StateTag"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call StateTagFor() from the server but StateTagFor is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","StateTagFor");(0,d.registerClientReference)(function(){throw Error("Attempted to call CapabilityTagFor() from the server but CapabilityTagFor is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","CapabilityTagFor");let g=(0,d.registerClientReference)(function(){throw Error("Attempted to call ScopePicker() from the server but ScopePicker is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/atoms.tsx","ScopePicker")},6434:(a,b,c)=>{c.d(b,{RecommendedActionsCardView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call RecommendedActionsCardView() from the server but RecommendedActionsCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/security/RecommendedActionsCardView.tsx","RecommendedActionsCardView")},13955:(a,b,c)=>{c.d(b,{FindingsFlatTableView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call FindingsFlatTableView() from the server but FindingsFlatTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsFlatTableView.tsx","FindingsFlatTableView")},14538:(a,b,c)=>{c.d(b,{FindingDetailView:()=>f,formatConfidence:()=>e});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call formatConfidence() from the server but formatConfidence is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingDetailView.tsx","formatConfidence"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call FindingDetailView() from the server but FindingDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingDetailView.tsx","FindingDetailView")},15291:(a,b,c)=>{c.d(b,{PolicyPicker:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call PolicyPicker() from the server but PolicyPicker is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/PolicyPicker.tsx","PolicyPicker")},17802:(a,b,c)=>{c.d(b,{TimeRangeSelect:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call TimeRangeSelect() from the server but TimeRangeSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/TimeRangeSelect.tsx","TimeRangeSelect")},20526:(a,b,c)=>{c.d(b,{DetectionDetailView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call DetectionDetailView() from the server but DetectionDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/DetectionDetailView.tsx","DetectionDetailView")},20726:(a,b,c)=>{c.d(b,{NeedsReviewStripView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call NeedsReviewStripView() from the server but NeedsReviewStripView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/data-shares/NeedsReviewStripView.tsx","NeedsReviewStripView")},22242:(a,b,c)=>{c.d(b,{MttrTrendCardView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call MttrTrendCardView() from the server but MttrTrendCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/security/MttrTrendCardView.tsx","MttrTrendCardView")},24283:(a,b,c)=>{c.d(b,{FileDetailDrawer:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call FileDetailDrawer() from the server but FileDetailDrawer is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/FileDetailDrawer.tsx","FileDetailDrawer")},29037:(a,b,c)=>{c.r(b),c.d(b,{AreaChart:()=>h,Donut:()=>e,Sparkline:()=>f,useMeasuredWidth:()=>g});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call Donut() from the server but Donut is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","Donut"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call Sparkline() from the server but Sparkline is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","Sparkline"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call useMeasuredWidth() from the server but useMeasuredWidth is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","useMeasuredWidth"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call AreaChart() from the server but AreaChart is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/shared/charts.tsx","AreaChart")},29072:(a,b,c)=>{c.d(b,{PolicyDetailView:()=>g,PolicyListView:()=>f,PolicyStatsView:()=>e});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call PolicyStatsView() from the server but PolicyStatsView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/policies/PoliciesView.tsx","PolicyStatsView"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call PolicyListView() from the server but PolicyListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/policies/PoliciesView.tsx","PolicyListView"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call PolicyDetailView() from the server but PolicyDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/policies/PoliciesView.tsx","PolicyDetailView")},29372:(a,b,c)=>{c.d(b,{FindingsTableView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call FindingsTableView() from the server but FindingsTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsTableView.tsx","FindingsTableView")},29461:(a,b,c)=>{c.d(b,{DataShareDetailView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call DataShareDetailView() from the server but DataShareDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/data-shares/DataShareDetailView.tsx","DataShareDetailView")},31909:(a,b,c)=>{c.d(b,{BlockedLedgerView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call BlockedLedgerView() from the server but BlockedLedgerView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/BlockedLedgerView.tsx","BlockedLedgerView")},35711:(a,b,c)=>{c.d(b,{SessionListView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call SessionListView() from the server but SessionListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/SessionListView.tsx","SessionListView")},37907:(a,b,c)=>{c.d(b,{ROTATE_CONFIRMATION:()=>e,RotateKeyDialog:()=>f});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call ROTATE_CONFIRMATION() from the server but ROTATE_CONFIRMATION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/RotateKeyDialog.tsx","ROTATE_CONFIRMATION"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call RotateKeyDialog() from the server but RotateKeyDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/RotateKeyDialog.tsx","RotateKeyDialog")},38406:(a,b,c)=>{c.d(b,{VaultReuseView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call VaultReuseView() from the server but VaultReuseView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/vault/VaultReuseView.tsx","VaultReuseView")},40193:(a,b,c)=>{c.d(b,{WorkspaceSettingsFormView:()=>e});var d=c(77940);(0,d.registerClientReference)(function(){throw Error("Attempted to call HANDLING_SECTION_LABEL() from the server but HANDLING_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HANDLING_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HANDLING_SECTION_DESCRIPTION() from the server but HANDLING_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HANDLING_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call POLICY_CHOICES() from the server but POLICY_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","POLICY_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORICAL_SECTION_LABEL() from the server but HISTORICAL_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORICAL_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORICAL_SECTION_DESCRIPTION() from the server but HISTORICAL_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORICAL_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call HISTORICAL_CHOICES() from the server but HISTORICAL_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","HISTORICAL_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call MODEL_JUDGE_SECTION_LABEL() from the server but MODEL_JUDGE_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","MODEL_JUDGE_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call MODEL_JUDGE_SECTION_DESCRIPTION() from the server but MODEL_JUDGE_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","MODEL_JUDGE_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call MODEL_JUDGE_CHOICES() from the server but MODEL_JUDGE_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","MODEL_JUDGE_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_SECTION_LABEL() from the server but VAULT_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_SECTION_DESCRIPTION() from the server but VAULT_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_CHOICES() from the server but VAULT_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call INLINE_REVEAL_SECTION_LABEL() from the server but INLINE_REVEAL_SECTION_LABEL is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","INLINE_REVEAL_SECTION_LABEL"),(0,d.registerClientReference)(function(){throw Error("Attempted to call INLINE_REVEAL_SECTION_DESCRIPTION() from the server but INLINE_REVEAL_SECTION_DESCRIPTION is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","INLINE_REVEAL_SECTION_DESCRIPTION"),(0,d.registerClientReference)(function(){throw Error("Attempted to call INLINE_REVEAL_CHOICES() from the server but INLINE_REVEAL_CHOICES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","INLINE_REVEAL_CHOICES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call vaultChoiceOf() from the server but vaultChoiceOf is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","vaultChoiceOf"),(0,d.registerClientReference)(function(){throw Error("Attempted to call vaultConsentStale() from the server but vaultConsentStale is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","vaultConsentStale"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VAULT_STALE_NOTICE() from the server but VAULT_STALE_NOTICE is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","VAULT_STALE_NOTICE");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call WorkspaceSettingsFormView() from the server but WorkspaceSettingsFormView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/settings/WorkspaceSettingsFormView.tsx","WorkspaceSettingsFormView")},45453:(a,b,c)=>{c.d(b,{UpdateModal:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call UpdateModal() from the server but UpdateModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/UpdateModal.tsx","UpdateModal")},46454:(a,b,c)=>{c.d(b,{VaultInventoryView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call VaultInventoryView() from the server but VaultInventoryView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/vault/VaultInventoryView.tsx","VaultInventoryView")},48335:(a,b,c)=>{c.d(b,{ApproveExceptionDialog:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call ApproveExceptionDialog() from the server but ApproveExceptionDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/ApproveExceptionDialog.tsx","ApproveExceptionDialog")},56862:(a,b,c)=>{c.d(b,{ExceptionDetailView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call ExceptionDetailView() from the server but ExceptionDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/ExceptionDetailView.tsx","ExceptionDetailView")},59665:(a,b,c)=>{c.d(b,{AvailablePluginsCardView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call AvailablePluginsCardView() from the server but AvailablePluginsCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/updates/AvailablePluginsCardView.tsx","AvailablePluginsCardView")},61340:(a,b,c)=>{c.d(b,{EmptyState:()=>e});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call EmptyState() from the server but EmptyState is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","EmptyState");(0,d.registerClientReference)(function(){throw Error("Attempted to call Section() from the server but Section is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","Section"),(0,d.registerClientReference)(function(){throw Error("Attempted to call RadioCardList() from the server but RadioCardList is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","RadioCardList"),(0,d.registerClientReference)(function(){throw Error("Attempted to call AccessControl() from the server but AccessControl is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","AccessControl"),(0,d.registerClientReference)(function(){throw Error("Attempted to call AccessLabel() from the server but AccessLabel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","AccessLabel"),(0,d.registerClientReference)(function(){throw Error("Attempted to call AccessBar() from the server but AccessBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","AccessBar"),(0,d.registerClientReference)(function(){throw Error("Attempted to call TrustPill() from the server but TrustPill is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","TrustPill"),(0,d.registerClientReference)(function(){throw Error("Attempted to call FlagChip() from the server but FlagChip is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","FlagChip"),(0,d.registerClientReference)(function(){throw Error("Attempted to call FlagChips() from the server but FlagChips is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","FlagChips"),(0,d.registerClientReference)(function(){throw Error("Attempted to call VisBadge() from the server but VisBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","VisBadge"),(0,d.registerClientReference)(function(){throw Error("Attempted to call OriginTag() from the server but OriginTag is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/chips.tsx","OriginTag")},65906:(a,b,c)=>{c.d(b,{AssetDetail:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call AssetDetail() from the server but AssetDetail is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/AssetDetail.tsx","AssetDetail")},67390:(a,b,c)=>{c.d(b,{MatcherModal:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call MatcherModal() from the server but MatcherModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/MatcherModal.tsx","MatcherModal")},70024:(a,b,c)=>{c.d(b,{ExceptionsTableView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call ExceptionsTableView() from the server but ExceptionsTableView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/ExceptionsTableView.tsx","ExceptionsTableView")},72253:(a,b,c)=>{c.d(b,{ColumnsMenu:()=>f,FindingsToolbarView:()=>e});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call FindingsToolbarView() from the server but FindingsToolbarView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsToolbarView.tsx","FindingsToolbarView"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call ColumnsMenu() from the server but ColumnsMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/findings/FindingsToolbarView.tsx","ColumnsMenu")},72354:(a,b,c)=>{c.d(b,{ActivityTokenUsageView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call ActivityTokenUsageView() from the server but ActivityTokenUsageView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/ActivityTokenUsageView.tsx","ActivityTokenUsageView")},76908:(a,b,c)=>{c.d(b,{HarnessOverview:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call HarnessOverview() from the server but HarnessOverview is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/HarnessOverview.tsx","HarnessOverview")},78567:(a,b,c)=>{c.d(b,{AddExceptionForm:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call AddExceptionForm() from the server but AddExceptionForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/AddExceptionForm.tsx","AddExceptionForm")},81179:(a,b,c)=>{c.d(b,{UpdateStatusCardView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call UpdateStatusCardView() from the server but UpdateStatusCardView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/updates/UpdateStatusCardView.tsx","UpdateStatusCardView")},83e3:(a,b,c)=>{c.d(b,{SessionDetailView:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call SessionDetailView() from the server but SessionDetailView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/activity/SessionDetailView.tsx","SessionDetailView")},86333:(a,b,c)=>{c.d(b,{nkv:()=>N,rDU:()=>O.ActivityTokenUsageView,DrA:()=>l,DQQ:()=>G,cZ5:()=>D,VNw:()=>Q,ahu:()=>Z,_GS:()=>v,Lgv:()=>_,oUz:()=>aa.MttrTrendCardView,ece:()=>p,fcY:()=>S.PolicyStatsView,c2Z:()=>ab,RyQ:()=>ah,hU:()=>ai,Zus:()=>z,TkU:()=>I,k3y:()=>F,XTX:()=>aj,$x2:()=>ag,b45:()=>al,UqB:()=>R,OHL:()=>h.OHL,QTF:()=>j,oBs:()=>k,KWc:()=>g,pif:()=>m,twV:()=>U});let d={primary:"var(--color-primary)",ok:"var(--color-ok)",sevCritical:"var(--color-sev-critical)",sevHigh:"var(--color-sev-high)",sevMedium:"var(--color-sev-medium)",sevLow:"var(--color-sev-low)"},e=new Intl.RelativeTimeFormat("en",{numeric:"auto"}),f=[["year",31536e3],["month",2592e3],["week",604800],["day",86400],["hour",3600],["minute",60]];function g(a){if(!a)return"";let b=Date.parse(a);if(Number.isNaN(b))return"";let c=(b-Date.now())/1e3,d=Math.abs(c);if(d<45)return"just now";for(let[a,b]of f)if(d>=b)return e.format(Math.round(c/b),a);return"just now"}var h=c(75261);let i=[{value:"7d",label:"Last 7 days"},{value:"30d",label:"Last 30 days"},{value:"3m",label:"Last 3 months"},{value:"6m",label:"Last 6 months"}];function j(a){return i.find(b=>b.value===a)?.label??a}function k(a,b=Date.now()){return new Date(b-864e5*h.eI7[a]).toISOString()}let l={"30m":18e5,"1h":36e5,"4h":144e5,"24h":864e5};function m(a){return void 0!==a&&Object.hasOwn(l,a)?a:"30m"}var n=c(29037),o=c(87472);function p({title:a,sub:b,actions:c}){return(0,o.jsxs)("div",{className:"flex items-start justify-between gap-4 pb-6",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"font-display text-2xl font-semibold text-text",children:a}),b&&(0,o.jsx)("p",{className:"mt-1 text-sm text-text-3",children:b})]}),c&&(0,o.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c})]})}let q={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"},antigravity:{label:"Antigravity",short:"Ag",color:"#4285F4"},copilot:{label:"GitHub Copilot",short:"Co",color:"#0581D4"},chatgpt:{label:"ChatGPT",short:"GP",color:"#0d8f6f"},claudeai:{label:"Claude.ai",short:"Ca",color:"#D97757"},api:{label:"Anthropic API",short:"AP",color:"#6058E9"}};function r({id:a,size:b=24}){let c=q[a];return(0,o.jsx)("span",{className:"flex shrink-0 items-center justify-center rounded-lg font-display font-bold text-white ring-1 ring-inset ring-mark-edge",style:{width:b,height:b,background:c.color,fontSize:.36*b},children:c.short})}var s=c(76085);let t={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"},u=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("path",{d:"M8 2.5h8L21.5 8v8L16 21.5H8L2.5 16V8L8 2.5Z"}),(0,o.jsx)("path",{d:"M12 8v4"}),(0,o.jsx)("circle",{cx:"12",cy:"16",r:"1",fill:"currentColor",stroke:"none"})]}),v=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("path",{d:"M14 4h6v6"}),(0,o.jsx)("path",{d:"M20 4 11 13"}),(0,o.jsx)("path",{d:"M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4"})]}),w=a=>(0,o.jsx)("svg",{...t,...a,children:(0,o.jsx)("path",{d:"M12 19V5M6 11l6-6 6 6"})}),x=a=>(0,o.jsx)("svg",{...t,...a,children:(0,o.jsx)("path",{d:"M12 5v14M6 13l6 6 6-6"})}),y=a=>(0,o.jsx)("svg",{...t,...a,children:(0,o.jsx)("path",{d:"M4 20V10M10 20V4M16 20v-7M22 20H2"})}),z=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.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,o.jsx)("path",{d:"m9 12 2 2 4-4"})]}),A=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("circle",{cx:"12",cy:"12",r:"8.5"}),(0,o.jsx)("circle",{cx:"12",cy:"12",r:"4.5"}),(0,o.jsx)("circle",{cx:"12",cy:"12",r:"1",fill:"currentColor",stroke:"none"})]}),B=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("circle",{cx:"12",cy:"8",r:"3.6"}),(0,o.jsx)("path",{d:"M5.5 20a6.5 6.5 0 0 1 13 0"})]}),C=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("path",{d:"M6 8.4v7.2"}),(0,o.jsx)("circle",{cx:"6",cy:"6",r:"2.4"}),(0,o.jsx)("circle",{cx:"6",cy:"18",r:"2.4"}),(0,o.jsx)("circle",{cx:"18",cy:"7",r:"2.4"}),(0,o.jsx)("path",{d:"M18 9.4a8.6 8.6 0 0 1-8.6 8.6"})]}),D=a=>(0,o.jsx)("svg",{...t,...a,children:(0,o.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"})}),E=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,o.jsx)("path",{d:"m8.5 12 2.3 2.3 4.7-4.6"})]}),F=a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),(0,o.jsx)("path",{d:"m7 9 3 3-3 3M13 15h4"})]}),G=a=>(0,o.jsx)("svg",{...t,...a,children:(0,o.jsx)("path",{d:"M13 2 4 14h7l-1 8 9-12h-7l1-8Z"})});function H({label:a,tone:b="neutral",dir:c}){let d="up"===c?w:"down"===c?x:null;return(0,o.jsxs)("span",{className:(0,s.cn)("inline-flex items-center gap-1 text-xs font-semibold","positive"===b?"text-ok-ink":"negative"===b?"text-sev-critical-ink":"text-text-3"),children:[d&&(0,o.jsx)(d,{"aria-hidden":!0,focusable:!1,className:"size-3"}),a]})}function I({icon:a,iconBg:b,iconColor:c,label:e,value:f,delta:g,spark:h,sparkColor:i,sparkLabels:j,sparkFormatValue:k,loading:l=!1}){return(0,o.jsxs)(s.Zp,{className:"flex flex-col gap-2.5 p-4.5 shadow-sm","aria-busy":l||void 0,children:[(0,o.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,o.jsx)("span",{className:"grid size-8.5 shrink-0 place-items-center rounded-lg",style:{background:b,color:c},children:(0,o.jsx)(a,{"aria-hidden":!0,focusable:!1,className:"size-4.5"})}),(0,o.jsx)("span",{className:"text-ui font-medium text-text-2",children:e})]}),l?(0,o.jsx)(s.EA,{className:"my-1 h-7 w-10"}):(0,o.jsxs)("div",{className:"flex items-end justify-between gap-2",children:[(0,o.jsx)("span",{className:"font-display text-3xl font-semibold leading-none tracking-[-0.03em] text-text",children:f}),g&&(0,o.jsx)(H,{...g})]}),h&&!l&&(0,o.jsx)("div",{className:"mt-0.5",children:(0,o.jsx)(n.Sparkline,{data:h,color:i??d.primary,height:34,...j?{labels:j}:{},...k?{formatValue:k}:{}})})]})}function J({message:a}){return(0,o.jsxs)("div",{role:"alert",className:"text-xs text-text-3",children:["Couldn’t load data — ",a]})}function K({message:a,className:b}){return(0,o.jsx)("div",{className:(0,s.cn)("w-full py-6 text-center text-xs text-text-3",b),children:a})}c(17802);var L=c(93681);function M({icon:a,value:b,label:c,text:d,fill:e}){return(0,o.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2 px-4",children:[(0,o.jsx)("span",{className:(0,s.cn)("grid size-7 shrink-0 place-items-center rounded-lg",e,d),children:(0,o.jsx)(a,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})}),(0,o.jsxs)("div",{className:"flex min-w-0 items-baseline gap-1.5",title:`${String(b)} ${c}`,children:[(0,o.jsx)("span",{className:"font-display text-lg font-semibold leading-none tabular-nums text-text",children:b}),(0,o.jsx)("span",{className:"truncate text-xs text-text-3",children:c})]})]})}function N({items:a,isLoading:b,error:c}){return(0,o.jsx)(s.Zp,{className:"mb-3 flex shrink-0 items-stretch py-2.5 shadow-sm","aria-busy":b,children:c?(0,o.jsx)("div",{className:"px-5",children:(0,o.jsx)(J,{message:c})}):b&&0===a.length?Array.from({length:5},(a,b)=>(0,o.jsxs)(L.Fragment,{children:[b>0&&(0,o.jsx)("span",{className:"w-px shrink-0 self-stretch bg-text/6"}),(0,o.jsxs)("div",{className:"flex flex-1 items-center gap-2 px-4",children:[(0,o.jsx)(s.EA,{className:"size-7 shrink-0 rounded-lg"}),(0,o.jsx)(s.EA,{className:"h-4 w-24"})]})]},b)):a.map((a,b)=>(0,o.jsxs)(L.Fragment,{children:[b>0&&(0,o.jsx)("span",{className:"w-px shrink-0 self-stretch bg-text/6"}),(0,o.jsx)(M,{...a})]},a.label))})}var O=c(72354);new Intl.DateTimeFormat("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}),new Intl.DateTimeFormat("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"}),c(2264),c(83e3),c(35711);let P=["grouped","flat","files"],Q="grouped";function R(a){return P.includes(a)}c(14538),c(13955),c(3076),c(29372),c(72253),c(20526),c(93284),c(67390),c(15291),c(45453);var S=c(29072);c(65906),c(61340);let T={skill:{type:"skill",label:"Skills",icon:"sparkles",fg:"text-violet-ink",bg:"bg-violet-fill"},mcp:{type:"mcp",label:"MCP servers",icon:"server",fg:"text-teal-ink",bg:"bg-teal-fill"},hook:{type:"hook",label:"Hooks",icon:"route",fg:"text-sev-low-ink",bg:"bg-sev-low-fill"},config:{type:"config",label:"Configuration",icon:"sliders",fg:"text-teal-ink",bg:"bg-surface-2"}};function U(a,b){let c;if(null!=a&&("harness"===a.type?b.harnesses.some(b=>b.id===a.id):"project"===a.type?b.projects.some(b=>b.id===a.id):(c=a.id,b.assetGroups.some(a=>a.items.some(a=>a.id===c))||b.harnesses.some(a=>a.categories.some(a=>a.assets.some(a=>a.id===c))))))return a;let d=b.harnesses[0];if(d)return{type:"harness",id:d.id};let e=b.projects[0];if(e)return{type:"project",id:e.id};for(let a of b.assetGroups){let b=a.items[0];if("project"!==a.type&&b)return{type:a.type,id:b.id}}return null}T.skill,T.mcp,T.hook,T.config,c(24283),c(76908),c(86602),c(92312);let V={critical:{label:"Critical",color:d.sevCritical},high:{label:"High",color:d.sevHigh},medium:{label:"Medium",color:d.sevMedium},low:{label:"Low",color:d.sevLow}},W={critical:"bg-sev-critical-fill text-sev-critical-ink",high:"bg-sev-high-fill text-sev-high-ink",medium:"bg-sev-medium-fill text-sev-medium-ink",low:"bg-sev-low-fill text-sev-low-ink"},X={blocked:{label:"Blocked",icon:a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,o.jsx)("path",{d:"m6 6 12 12"})]}),color:d.sevCritical},redacted:{label:"Redacted",icon:a=>(0,o.jsxs)("svg",{...t,...a,children:[(0,o.jsx)("rect",{x:"3",y:"9",width:"18",height:"6",rx:"1.5",fill:"currentColor",stroke:"none"}),(0,o.jsx)("path",{d:"M3 5h18M3 19h12"})]}),color:d.primary},warned:{label:"Warned",icon:u,color:d.sevHigh}},Y=new Intl.NumberFormat("en-US");function Z({total:a,actions:b,isLoading:c,error:d,rangeLabel:e}){return(0,o.jsx)(s.Zp,{className:"flex flex-col shadow-sm",children:(0,o.jsxs)(s.Wu,{"aria-busy":c,className:"flex flex-1 flex-col justify-center gap-4",children:[(0,o.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:"text-sm font-semibold text-text",children:"Enforcement actions"}),(0,o.jsx)("div",{className:"mt-0.5 text-xs text-text-3",children:e.toLowerCase()})]}),(0,o.jsxs)("div",{className:"text-right",children:[c?(0,o.jsx)(s.EA,{className:"ml-auto h-5 w-12"}):(0,o.jsx)("div",{className:"font-display text-xl font-semibold leading-none text-text",children:d?"—":Y.format(a)}),(0,o.jsx)("div",{className:"mt-0.5 text-label text-text-3",children:"total intercepted"})]})]}),d?(0,o.jsx)(J,{message:d}):c?(0,o.jsx)("div",{className:"flex gap-3",children:[0,1,2].map(a=>(0,o.jsx)(s.EA,{className:"h-20 flex-1"},a))}):0===a?(0,o.jsx)(K,{message:"No enforcement actions in this range."}):(0,o.jsx)("div",{className:"flex gap-3",children:b.map(a=>{let b=X[a.kind],c=b.icon,d=a.delta>0;return(0,o.jsxs)("div",{className:"min-w-0 flex-1 border-l-[3px] pl-3",style:{borderColor:b.color},children:[(0,o.jsxs)("div",{className:"inline-flex items-center gap-1.5",style:{color:b.color},children:[(0,o.jsx)(c,{"aria-hidden":!0,focusable:!1,className:"size-4"}),(0,o.jsx)("span",{className:"text-xs font-semibold text-text-2",children:b.label})]}),(0,o.jsx)("div",{className:"mt-2 font-display text-3xl font-semibold leading-none text-text",children:Y.format(a.count)}),0!==a.delta&&(0,o.jsxs)("div",{className:"mt-1 inline-flex items-center gap-0.5 text-xs font-semibold text-text-3",children:[d?(0,o.jsx)(w,{"aria-hidden":!0,focusable:!1,className:"size-3"}):(0,o.jsx)(x,{"aria-hidden":!0,focusable:!1,className:"size-3"}),d?"+":"−",Y.format(Math.abs(a.delta))," wk/wk"]})]},a.kind)})})]})})}let $=[{key:"critical",label:"Critical",color:d.sevCritical},{key:"high",label:"High",color:d.sevHigh},{key:"medium",label:"Medium",color:d.sevMedium}];function _({points:a,isLoading:b,error:c}){let d=a.every(a=>a.critical+a.high+a.medium===0);return(0,o.jsxs)(s.Zp,{className:"mt-4 shadow-sm xl:mt-5",children:[(0,o.jsxs)(s.aR,{children:[(0,o.jsx)(s.AG,{children:(0,o.jsx)(y,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)(s.Lc,{children:[(0,o.jsx)(s.ZB,{children:"Findings over time"}),(0,o.jsx)(s.BT,{children:"New sensitive-data detections per day"})]}),(0,o.jsx)(s.X9,{className:"gap-3 text-xs text-text-2",children:$.map(a=>(0,o.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,o.jsx)("span",{className:"size-2 rounded-xs",style:{background:a.color}}),a.label]},a.key))})]}),(0,o.jsx)(s.Wu,{"aria-busy":b,className:"pb-2",children:c?(0,o.jsx)(J,{message:c}):b?(0,o.jsx)(s.EA,{className:"h-40 w-full"}):d?(0,o.jsx)(K,{message:"No findings in this range."}):(0,o.jsx)(n.AreaChart,{data:a,series:$,height:160})})]})}var aa=c(22242);function ab({items:a,isLoading:b,error:c}){return(0,o.jsxs)(s.Zp,{className:"flex h-full flex-col shadow-sm",children:[(0,o.jsxs)(s.aR,{children:[(0,o.jsx)(s.AG,{children:(0,o.jsx)(E,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)(s.Lc,{children:[(0,o.jsx)(s.ZB,{children:"Recently resolved"}),(0,o.jsx)(s.BT,{children:"Findings moved to resolved, newest first"})]})]}),(0,o.jsx)(s.Wu,{"aria-busy":b,className:"flex flex-col",children:c?(0,o.jsx)(J,{message:c}):b?(0,o.jsx)("div",{className:"flex flex-col gap-3 py-2",children:[0,1,2].map(a=>(0,o.jsx)(s.EA,{className:"h-12 w-full"},a))}):0===a.length?(0,o.jsx)(K,{message:"No resolved findings yet."}):a.map((b,c)=>(0,o.jsx)(ac,{item:b,last:c===a.length-1},b.findingKey))})]})}function ac({item:a,last:b}){return(0,o.jsxs)("div",{className:(0,s.cn)("relative flex gap-3",!b&&"pb-4"),children:[!b&&(0,o.jsx)("span",{className:"absolute bottom-0 left-4 top-8 w-px bg-text/6"}),(0,o.jsx)("span",{className:(0,s.cn)("z-10 grid size-8 shrink-0 place-items-center rounded-lg",W[a.severity]),children:(0,o.jsx)(E,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)("span",{className:"truncate text-sm font-semibold text-text",title:a.ruleId,children:a.ruleId}),(0,o.jsx)("span",{className:"ml-auto shrink-0 text-xs text-text-3",children:g(a.resolvedAt)})]}),(0,o.jsxs)("div",{className:"mt-1.5 flex items-center gap-1.5 text-xs text-text-3",children:[(0,o.jsx)("span",{className:"shrink-0",children:V[a.severity].label}),(0,o.jsx)("span",{className:"shrink-0 text-text-3",children:"\xb7"}),(0,o.jsx)("span",{className:"truncate font-mono",title:a.path,children:a.path})]})]})]})}let ad={critical:4,high:3,medium:2,low:1},ae={secret:"Rotate the exposed credentials and move them out of prompts (secrets manager / env vars).",pii:"Remove or mask personal data before it reaches the model.",financial:"Strip card and account numbers; share only non-sensitive references.",phi:"Remove protected health information — it should never reach an external model.",code_context:"Confirm this proprietary code context is safe to share.",custom:"Review against your organization’s custom policy."},af={secret:{title:"Exposed secret detected",action:"Rotate"},pii:{title:"Personal data in a prompt",action:"Remove"},financial:{title:"Financial data detected",action:"Strip"},phi:{title:"Health information detected",action:"Remove"},code_context:{title:"Proprietary code shared",action:"Review"},custom:{title:"Custom policy match",action:"Review"}};function ag(a){return(function(a){let b=new Map;for(let c of a){let a=b.get(c.category)??{category:c.category,count:0,severity:c.severity,weight:0,ruleId:c.ruleId};a.count++;let d=ad[c.severity]??0;d>a.weight&&(a.weight=d,a.severity=c.severity,a.ruleId=c.ruleId),b.set(c.category,a)}return[...b.values()].sort((a,b)=>b.weight-a.weight||b.count-a.count).slice(0,10)})(a).map(a=>{var b;let c=af[a.category]??{title:`${a.category} finding`,action:"Review"};return{id:`local-${a.category}`,category:a.category,severity:"critical"===(b=a.severity)||"high"===b||"medium"===b?b:"low",title:c.title,description:ae[a.category]??"Review this finding against your policy.",subjects:[{type:"rule",id:a.ruleId,label:`${a.ruleId} \xb7 ${String(a.count)} finding${1===a.count?"":"s"}`}],action:{mode:"navigate",type:"review_findings",label:c.action,href:"/findings"}}})}function ah({providers:a,isLoading:b,error:c,rangeLabel:e}){return(0,o.jsxs)(s.Zp,{className:"flex flex-col shadow-sm",children:[(0,o.jsxs)(s.aR,{children:[(0,o.jsx)(s.AG,{className:"bg-teal-fill text-teal-ink",children:(0,o.jsx)(z,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)(s.Lc,{children:[(0,o.jsx)(s.ZB,{children:"Scan coverage"}),(0,o.jsxs)(s.BT,{children:["By provider \xb7 ",e.toLowerCase()]})]})]}),(0,o.jsx)(s.Wu,{"aria-busy":b,className:"flex flex-col gap-2.5",children:c?(0,o.jsx)(J,{message:c}):b?[0,1,2,3,4].map(a=>(0,o.jsx)(s.EA,{className:"h-6 w-full"},a)):a.map(a=>{let b=!a.supported,c=100===a.coverage?d.ok:a.coverage>=60?d.sevMedium:d.sevHigh;return(0,o.jsxs)("div",{className:(0,s.cn)("flex items-center gap-2.5",b&&"opacity-45"),children:[(0,o.jsx)("span",{className:(0,s.cn)(b&&"grayscale"),children:(0,o.jsx)(r,{id:a.provider})}),(0,o.jsxs)("span",{className:"w-28 shrink-0 truncate text-ui text-text",children:[q[a.provider].label,b&&(0,o.jsx)("span",{className:"sr-only",children:" — not yet supported"})]}),b?(0,o.jsx)("span",{"aria-hidden":!0,className:"block h-1.5 flex-1 rounded-full bg-surface-3"}):(0,o.jsx)(s.kI,{value:a.coverage,max:100,color:c,height:6,"aria-label":`${q[a.provider].label} scan coverage`}),b?(0,o.jsx)("span",{className:"w-9 shrink-0 text-right text-label font-semibold uppercase tracking-wide text-text-3",children:"Soon"}):(0,o.jsxs)("span",{className:"w-9 shrink-0 text-right text-xs font-semibold text-text-2",children:[a.coverage,"%"]})]},a.provider)})})]})}function ai({bySeverity:a,total:b,needsRemediation:c,isLoading:d,error:e}){let f=({bySeverity:a}).bySeverity.some(a=>void 0!==a.caught||void 0!==a.openAtRest),g=a.reduce((a,b)=>a+(b.caught??0),0);return(0,o.jsxs)(s.Zp,{className:"flex flex-col shadow-sm",children:[(0,o.jsxs)(s.aR,{children:[(0,o.jsx)(s.AG,{className:"bg-sev-critical-fill text-sev-critical-ink",children:(0,o.jsx)(u,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)(s.Lc,{children:[(0,o.jsx)(s.ZB,{children:f?"By severity":"Open by severity"}),(0,o.jsx)(s.BT,{children:d?"Loading…":e?"—":`${Y.format(b)} findings`})]})]}),(0,o.jsx)(s.Wu,{"aria-busy":d,className:"flex items-center gap-4",children:e?(0,o.jsx)(J,{message:e}):d?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.EA,{className:"size-30 shrink-0 rounded-full"}),(0,o.jsx)("div",{className:"flex flex-1 flex-col gap-2",children:[0,1,2,3].map(a=>(0,o.jsx)(s.EA,{className:"h-4 w-full"},a))})]}):0===b?(0,o.jsx)(K,{message:f?"No findings.":"No open findings."}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.Donut,{segments:a.map(a=>({label:V[a.severity].label,value:f?a.caught??0:a.count,color:V[a.severity].color})),size:120,thickness:15,children:(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:"font-display text-2xl font-semibold leading-none text-text",children:Y.format(f?g:b)}),(0,o.jsx)("div",{className:"text-label text-text-3",children:f?"caught":"open"})]})}),(0,o.jsxs)("div",{className:"flex flex-1 flex-col gap-2",children:[f?(0,o.jsxs)("div",{className:"flex items-center justify-between border-b border-border pb-2",children:[(0,o.jsx)("span",{className:"text-ui font-medium text-text-2",children:"Needs remediation"}),(0,o.jsx)("span",{className:"text-ui font-bold text-text",children:Y.format(c??0)})]}):null,a.map(a=>(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)("span",{className:"size-2 rounded-xs",style:{background:V[a.severity].color}}),(0,o.jsx)("span",{className:"flex-1 text-ui text-text-2",children:V[a.severity].label}),(0,o.jsx)("span",{className:"text-ui font-bold text-text",children:Y.format(a.count)})]},a.severity))]})]})})]})}function aj({items:a,isLoading:b,error:c}){return(0,o.jsxs)(s.Zp,{className:"flex flex-col shadow-sm min-w-0",children:[(0,o.jsxs)(s.aR,{children:[(0,o.jsx)(s.AG,{children:(0,o.jsx)(A,{"aria-hidden":!0,focusable:!1,className:"size-4"})}),(0,o.jsxs)(s.Lc,{children:[(0,o.jsx)(s.ZB,{children:"Top sources"}),(0,o.jsx)(s.BT,{children:"Repos & people by findings"})]})]}),(0,o.jsx)(s.Wu,{"aria-busy":b,className:"flex flex-col gap-3",children:c?(0,o.jsx)(J,{message:c}):b?[0,1,2,3,4].map(a=>(0,o.jsx)(s.EA,{className:"h-7 w-full"},a)):0===a.length?(0,o.jsx)("div",{className:"py-6 text-center text-xs text-text-3",children:"No sources yet."}):a.map(a=>(0,o.jsx)(ak,{source:a},a.id))})]})}function ak({source:a}){let b="user"===a.kind;return(0,o.jsxs)("div",{className:"flex items-center gap-3",children:[(0,o.jsx)("span",{className:(0,s.cn)("flex size-7 shrink-0 items-center justify-center bg-surface-2 text-text-2",b?"rounded-full":"rounded-md"),children:(0,o.jsx)(b?B:C,{"aria-hidden":!0,focusable:!1,className:"size-3.5"})}),(0,o.jsxs)("div",{className:"min-w-0 flex-1 flex items-center justify-between gap-2",children:[(0,o.jsx)("span",{className:(0,s.cn)("truncate text-sm text-text",!b&&"font-mono"),title:a.name,children:a.name}),(0,o.jsx)("span",{className:"text-sm font-bold text-text shrink-0",children:Y.format(a.findingsCount)})]})]})}function al(a,b){return(0,h.qEQ)(a.keyVersion,b)}c(6434),c(78567),c(48335),c(5151),c(31909),c(87765),c(56862),c(70024),c(37907),c(3405),c(46454),c(38406),c(59665),c(81179),c(40193),c(29461),c(2703),c(20726)},86602:(a,b,c)=>{c.d(b,{InventoryNav:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call InventoryNav() from the server but InventoryNav is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/InventoryNav.tsx","InventoryNav")},87765:(a,b,c)=>{c.d(b,{BlockedWindowSelect:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call BlockedWindowSelect() from the server but BlockedWindowSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/exceptions/BlockedWindowSelect.tsx","BlockedWindowSelect")},92312:(a,b,c)=>{c.d(b,{ProjectPane:()=>d});let d=(0,c(77940).registerClientReference)(function(){throw Error("Attempted to call ProjectPane() from the server but ProjectPane is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/inventory/ProjectPane.tsx","ProjectPane")},93284:(a,b,c)=>{c.d(b,{DETECTION_FILTER_TABS:()=>e,DetectionsListView:()=>f});var d=c(77940);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call DETECTION_FILTER_TABS() from the server but DETECTION_FILTER_TABS is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/DetectionsListView.tsx","DETECTION_FILTER_TABS"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call DetectionsListView() from the server but DetectionsListView is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ai-tc/ai-tc/packages/dashboard-ui/src/detections/DetectionsListView.tsx","DetectionsListView")}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=330,exports.ids=[330],exports.modules={51330:(a,b,c)=>{c.d(b,{Nc:()=>n,mu:()=>X,r4:()=>aS,uT:()=>aO,Pb:()=>S,W$:()=>$,$1:()=>P,DK:()=>Z,sE:()=>aL,E$:()=>aK,Ip:()=>ay,SQ:()=>aI,KD:()=>aN});let d=[{id:"stripe",name:"Stripe",category:"Payments",hostSuffixes:["stripe.com"],apiBase:"https://api.stripe.com",defaultDataClasses:["pii","customer"],sdks:{npm:["stripe"],pypi:["stripe"],go:["github.com/stripe/stripe-go"],maven:["com.stripe"],rubygems:["stripe"],composer:["stripe/stripe-php"],nuget:["Stripe.net"]}},{id:"datadog",name:"Datadog",category:"Observability",hostSuffixes:["datadoghq.com","datadoghq.eu"],apiBase:"https://api.datadoghq.com",defaultDataClasses:["telemetry","logs","metrics"],sdks:{npm:["dd-trace","@datadog/browser-logs"],pypi:["datadog","ddtrace"],go:["github.com/DataDog/dd-trace-go"],maven:["com.datadoghq"],rubygems:["ddtrace","dogapi"],nuget:["Datadog.Trace"]}},{id:"newrelic",name:"New Relic",category:"Observability",hostSuffixes:["newrelic.com","nr-data.net"],apiBase:"https://api.newrelic.com",defaultDataClasses:["telemetry","logs","metrics"],sdks:{npm:["newrelic"],pypi:["newrelic"],go:["github.com/newrelic/go-agent"],maven:["com.newrelic.agent.java"],rubygems:["newrelic_rpm"],nuget:["NewRelic.Agent"]}},{id:"sentry",name:"Sentry",category:"Error tracking",hostSuffixes:["sentry.io"],apiBase:"https://sentry.io",defaultDataClasses:["source","telemetry"],sdks:{npm:["@sentry/node","@sentry/react","@sentry/nextjs"],pypi:["sentry-sdk"],go:["github.com/getsentry/sentry-go"],maven:["io.sentry"],rubygems:["sentry-ruby"],cargo:["sentry"],composer:["sentry/sentry"],nuget:["Sentry"]}},{id:"openai",name:"OpenAI",category:"LLM provider",hostSuffixes:["openai.com"],apiBase:"https://api.openai.com",defaultDataClasses:["pii","source"],sdks:{npm:["openai"],pypi:["openai"],go:["github.com/sashabaranov/go-openai"],maven:["com.openai"],rubygems:["ruby-openai"],cargo:["async-openai"],composer:["openai-php/client"],nuget:["OpenAI"]}},{id:"anthropic",name:"Anthropic",category:"LLM provider",hostSuffixes:["anthropic.com"],apiBase:"https://api.anthropic.com",defaultDataClasses:["pii","source"],sdks:{npm:["@anthropic-ai/sdk"],pypi:["anthropic"],go:["github.com/anthropics/anthropic-sdk-go"],nuget:["Anthropic.SDK"]}},{id:"aws",name:"Amazon Web Services",category:"Cloud platform",hostSuffixes:["amazonaws.com"],apiBase:"https://s3.amazonaws.com",defaultDataClasses:["secrets","customer"],sdks:{npm:["@aws-sdk/client-s3","aws-sdk"],pypi:["boto3"],go:["github.com/aws/aws-sdk-go","github.com/aws/aws-sdk-go-v2"],maven:["com.amazonaws","software.amazon.awssdk"],rubygems:["aws-sdk-s3"],cargo:["aws-sdk-s3"],nuget:["AWSSDK.S3"]}},{id:"gcp",name:"Google Cloud",category:"Cloud platform",hostSuffixes:["googleapis.com"],apiBase:"https://storage.googleapis.com",defaultDataClasses:["customer","logs"],sdks:{npm:["@google-cloud/storage"],pypi:["google-cloud-storage"],go:["cloud.google.com/go"],maven:["com.google.cloud"],rubygems:["google-cloud-storage"],nuget:["Google.Cloud.Storage.V1"]}},{id:"azure",name:"Microsoft Azure",category:"Cloud platform",hostSuffixes:["azure.com","windows.net"],apiBase:"https://management.azure.com",defaultDataClasses:["customer","logs"],sdks:{npm:["@azure/storage-blob"],pypi:["azure-storage-blob"],go:["github.com/Azure/azure-sdk-for-go"],maven:["com.azure"],rubygems:["azure-storage-blob"],nuget:["Azure.Storage.Blobs"]}},{id:"slack",name:"Slack",category:"Notifications",hostSuffixes:["slack.com"],apiBase:"https://slack.com/api",defaultDataClasses:["logs"],sdks:{npm:["@slack/web-api"],pypi:["slack-sdk"],go:["github.com/slack-go/slack"],maven:["com.slack.api"],rubygems:["slack-ruby-client"],composer:["slack-php/slack-api"],nuget:["SlackNet"]}},{id:"segment",name:"Segment",category:"Analytics",hostSuffixes:["segment.io","segment.com"],apiBase:"https://api.segment.io",defaultDataClasses:["customer"],sdks:{npm:["@segment/analytics-node","analytics-node"],pypi:["segment-analytics-python"],go:["github.com/segmentio/analytics-go"],maven:["com.segment.analytics.java"],rubygems:["analytics-ruby"],nuget:["Analytics"]}},{id:"twilio",name:"Twilio",category:"Communications",hostSuffixes:["twilio.com"],apiBase:"https://api.twilio.com",defaultDataClasses:["pii","customer"],sdks:{npm:["twilio"],pypi:["twilio"],go:["github.com/twilio/twilio-go"],maven:["com.twilio.sdk"],rubygems:["twilio-ruby"],composer:["twilio/sdk"],nuget:["Twilio"]}},{id:"sendgrid",name:"SendGrid",category:"Email",hostSuffixes:["sendgrid.com"],apiBase:"https://api.sendgrid.com",defaultDataClasses:["pii"],sdks:{npm:["@sendgrid/mail"],pypi:["sendgrid"],go:["github.com/sendgrid/sendgrid-go"],maven:["com.sendgrid"],rubygems:["sendgrid-ruby"],composer:["sendgrid/sendgrid"],nuget:["SendGrid"]}},{id:"mailgun",name:"Mailgun",category:"Email",hostSuffixes:["mailgun.net"],apiBase:"https://api.mailgun.net",defaultDataClasses:["pii"],sdks:{npm:["mailgun.js"],pypi:["mailgun"],rubygems:["mailgun-ruby"],composer:["mailgun/mailgun-php"],nuget:["Mailgun"]}},{id:"mixpanel",name:"Mixpanel",category:"Analytics",hostSuffixes:["mixpanel.com"],apiBase:"https://api.mixpanel.com",defaultDataClasses:["customer","telemetry"],sdks:{npm:["mixpanel"],pypi:["mixpanel"],rubygems:["mixpanel-ruby"],nuget:["Mixpanel"]}},{id:"amplitude",name:"Amplitude",category:"Analytics",hostSuffixes:["amplitude.com"],apiBase:"https://api2.amplitude.com",defaultDataClasses:["customer","telemetry"],sdks:{npm:["@amplitude/analytics-node"],pypi:["amplitude-analytics"],nuget:["Amplitude"]}},{id:"posthog",name:"PostHog",category:"Analytics",hostSuffixes:["posthog.com"],apiBase:"https://us.i.posthog.com",defaultDataClasses:["customer","telemetry"],sdks:{npm:["posthog-node","posthog-js"],pypi:["posthog"],go:["github.com/posthog/posthog-go"],rubygems:["posthog-ruby"],composer:["posthog/posthog-php"],nuget:["PostHog"]}},{id:"honeycomb",name:"Honeycomb",category:"Observability",hostSuffixes:["honeycomb.io"],apiBase:"https://api.honeycomb.io",defaultDataClasses:["telemetry","metrics"],sdks:{npm:["libhoney"],pypi:["libhoney"],go:["github.com/honeycombio/libhoney-go"],rubygems:["libhoney"]}},{id:"grafana",name:"Grafana Cloud",category:"Observability",hostSuffixes:["grafana.net"],apiBase:"https://grafana.net",defaultDataClasses:["logs","metrics"],sdks:{npm:["@grafana/faro-web-sdk"]}},{id:"splunk",name:"Splunk",category:"Observability",hostSuffixes:["splunkcloud.com","splunk.com"],apiBase:"https://http-inputs.splunkcloud.com",defaultDataClasses:["logs"],sdks:{npm:["splunk-logging"],pypi:["splunk-sdk"],maven:["com.splunk"],nuget:["Splunk.Logging.Common"]}},{id:"pagerduty",name:"PagerDuty",category:"Incident response",hostSuffixes:["pagerduty.com"],apiBase:"https://api.pagerduty.com",defaultDataClasses:["logs"],sdks:{npm:["@pagerduty/pdjs"],pypi:["pdpyras"],go:["github.com/PagerDuty/go-pagerduty"],rubygems:["pagerduty"]}},{id:"github",name:"GitHub",category:"Developer platform",hostSuffixes:["github.com","githubusercontent.com"],apiBase:"https://api.github.com",defaultDataClasses:["source"],sdks:{npm:["@octokit/rest","octokit"],pypi:["pygithub"],go:["github.com/google/go-github"],maven:["org.kohsuke.github-api"],rubygems:["octokit"],cargo:["octocrab"],composer:["knplabs/github-api"],nuget:["Octokit"]}},{id:"gitlab",name:"GitLab",category:"Developer platform",hostSuffixes:["gitlab.com"],apiBase:"https://gitlab.com/api",defaultDataClasses:["source"],sdks:{npm:["@gitbeaker/rest"],pypi:["python-gitlab"],go:["gitlab.com/gitlab-org/api/client-go"],rubygems:["gitlab"],nuget:["GitLabApiClient"]}},{id:"auth0",name:"Auth0",category:"Identity",hostSuffixes:["auth0.com"],apiBase:"https://login.auth0.com",defaultDataClasses:["pii"],sdks:{npm:["auth0"],pypi:["auth0-python"],go:["github.com/auth0/go-auth0"],maven:["com.auth0"],rubygems:["auth0"],composer:["auth0/auth0-php"],nuget:["Auth0.ManagementApi"]}},{id:"okta",name:"Okta",category:"Identity",hostSuffixes:["okta.com","oktapreview.com"],apiBase:"https://login.okta.com",defaultDataClasses:["pii"],sdks:{npm:["@okta/okta-sdk-nodejs"],pypi:["okta"],go:["github.com/okta/okta-sdk-golang"],maven:["com.okta.sdk"],nuget:["Okta.Sdk"]}},{id:"clerk",name:"Clerk",category:"Identity",hostSuffixes:["clerk.com","clerk.dev"],apiBase:"https://api.clerk.com",defaultDataClasses:["pii"],sdks:{npm:["@clerk/backend","@clerk/nextjs"],pypi:["clerk-backend-api"],go:["github.com/clerk/clerk-sdk-go"]}},{id:"supabase",name:"Supabase",category:"Backend platform",hostSuffixes:["supabase.co","supabase.com"],apiBase:"https://api.supabase.com",defaultDataClasses:["pii","customer"],sdks:{npm:["@supabase/supabase-js"],pypi:["supabase"],cargo:["postgrest"]}},{id:"firebase",name:"Firebase",category:"Backend platform",hostSuffixes:["firebaseio.com","firebase.google.com"],apiBase:"https://firebaseio.com",defaultDataClasses:["customer"],sdks:{npm:["firebase","firebase-admin"],pypi:["firebase-admin"],go:["firebase.google.com/go"],maven:["com.google.firebase"]}},{id:"mongodb-atlas",name:"MongoDB Atlas",category:"Database SaaS",hostSuffixes:["mongodb.net","mongodb.com"],apiBase:"https://cloud.mongodb.com",defaultDataClasses:["customer"],sdks:{npm:["mongodb"],pypi:["pymongo"],go:["go.mongodb.org/mongo-driver"],maven:["org.mongodb"],rubygems:["mongo"],cargo:["mongodb"],nuget:["MongoDB.Driver"]}},{id:"planetscale",name:"PlanetScale",category:"Database SaaS",hostSuffixes:["psdb.cloud","planetscale.com"],apiBase:"https://api.planetscale.com",defaultDataClasses:["customer"],sdks:{npm:["@planetscale/database"],go:["github.com/planetscale/planetscale-go"]}},{id:"algolia",name:"Algolia",category:"Search SaaS",hostSuffixes:["algolia.net","algolianet.com"],apiBase:"https://algolia.net",defaultDataClasses:["customer"],sdks:{npm:["algoliasearch"],pypi:["algoliasearch"],go:["github.com/algolia/algoliasearch-client-go"],maven:["com.algolia"],rubygems:["algolia"],composer:["algolia/algoliasearch-client-php"],nuget:["Algolia.Search"]}},{id:"cloudflare",name:"Cloudflare",category:"CDN / edge",hostSuffixes:["cloudflare.com","workers.dev"],apiBase:"https://api.cloudflare.com",defaultDataClasses:["logs"],sdks:{npm:["cloudflare"],pypi:["cloudflare"],go:["github.com/cloudflare/cloudflare-go"],nuget:["CloudFlare.Client"]}},{id:"huggingface",name:"Hugging Face",category:"LLM provider",hostSuffixes:["huggingface.co"],apiBase:"https://api-inference.huggingface.co",defaultDataClasses:["source"],sdks:{npm:["@huggingface/inference"],pypi:["huggingface-hub","transformers"],rubygems:["hugging-face"]}},{id:"cohere",name:"Cohere",category:"LLM provider",hostSuffixes:["cohere.com","cohere.ai"],apiBase:"https://api.cohere.com",defaultDataClasses:["pii","source"],sdks:{npm:["cohere-ai"],pypi:["cohere"],go:["github.com/cohere-ai/cohere-go"]}},{id:"mistral",name:"Mistral AI",category:"LLM provider",hostSuffixes:["mistral.ai"],apiBase:"https://api.mistral.ai",defaultDataClasses:["pii","source"],sdks:{npm:["@mistralai/mistralai"],pypi:["mistralai"],go:["github.com/gage-technologies/mistral-go"]}}],e=["internal","local","corp","lan","intranet","home.arpa"],f=["localhost","test","example","invalid","example.com","example.org","example.net","w3.org","schemas.openxmlformats.org","schemas.microsoft.com","schemas.android.com","maven.apache.org"];function g(a,b){return a===b||a.endsWith(`.${b}`)}function h(a){let b=a.split(".");return 4===b.length&&b.every(a=>/^\d{1,3}$/.test(a)&&255>=Number(a))}function i(a){let b=a.split(".").map(Number),c=b[0],d=b[1];return void 0!==c&&void 0!==d&&(0===c||10===c||127===c||c>=224||169===c&&254===d||172===c&&d>=16&&d<=31||192===c&&168===d||!1)}function j(a){let b=a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a,c=b.indexOf("%");return(-1===c?b:b.slice(0,c)).toLowerCase()}let k=/^[0-9a-f]{1,4}$/,l=/^::ffff:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/;function m(a){return a.toLowerCase().replace(/[-_.]+/g,"-")}let n=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".rb",".cs",".php",".go",".rs"]),o="••••",p=/(https?|wss?|sftp|grpcs?|smtp):\/\/(?:[^\s'"`<>()[\]{},;]|\$\{[^}\s]{1,64}\}|\{[A-Za-z_]\w{0,63}\}|%[sd])+/gi,q=/\$\{[^}\s]{1,64}\}|\{[A-Za-z_]\w{0,63}\}|%[sd]/g,r="${var}",s="akaegressvar0",t=/[.,;:'"]+$/,u={http:"http",https:"https",ws:"ws",wss:"wss",sftp:"sftp",grpc:"grpc",grpcs:"grpc",smtp:"smtp"},v=/\.\s*(get|post|put|delete)\s*\(\s*['"`]*$/i,w=/["'](GET|POST|PUT|DELETE)["']\s*,([^)\]};]{0,150})$/i,x=/method\s*[:=]\s*['"](GET|POST|PUT|DELETE)/i,y=/\b(fetch|urlopen|got|ky)\s*\(\s*['"`]*$/i,z=/\bmethod\s*[:=]/i,A=/;|\n\s*(?:(?:const|let|var|val|function|func|fn|def|class|return|export|import|if|for|while|switch|try|public|private)\b|\w+\s*=[^=])/,B=/\b(?:\d{1,3}\.){3}\d{1,3}(?::\d{1,5})?\b/g,C=/\b(host|hostname|server|address|endpoint|ip|url|uri)\b/i,D=/\bs(ftp|cp|sh)\b/i,E=/\b(smtp|mail)\b/i,F="api[_-]?key|apikey|private[_-]?key|access[_-]?key|access[_-]?token|token|secret|credentials?|password|passwd|pwd|authorization|sig|signature|sas|assertion",G="Bearer|Basic|Token|Digest|ApiKey|SSWS|AWS4-HMAC-SHA256",H=/:\/\/[^@/\s]+@/g,I=RegExp(`((?:${F})['"\`]?\\s*[:=]\\s*['"\`]?)(?!(?:${G})[\\s'"\`])[^\\s'"\`&]+`,"gi"),J=RegExp(`((?:${F})['"\`]?\\s*[:=]\\s*['"\`]?)(${G})\\s+[^\\s'"\`]+`,"gi"),K=/\bBearer\s+[A-Za-z0-9._~+/-]+=*/gi,L=[{hosts:["hooks.slack.com"],prefix:"/services/"},{hosts:["discord.com","discordapp.com","ptb.discord.com","canary.discord.com"],prefix:"/api/webhooks/"},{hosts:["hooks.zapier.com"],prefix:"/hooks/"},{hosts:["outlook.office.com","outlook.office365.com"],prefix:"/webhook/"}];function M(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}let N=RegExp(`(https?://(?:${L.flatMap(a=>a.hosts.map(b=>`${M(b)}${M(a.prefix)}`)).join("|")}))[^\\s'"\`<>()[\\]{},;]+`,"gi"),O=/(^|\/)(vendor|third_party|external)\//;function P(a){return O.test(a)}function Q(a){return a.trim().replace(H,"://").replace(N,`$1${o}`).replace(I,`$1${o}`).replace(J,`$1$2 ${o}`).replace(K,`Bearer ${o}`)}function R(a,b=0){let c=Q(a);if(c.length<=200)return c;let d=a.length-a.trimStart().length,e=a.trim(),f=Math.min(Math.max(0,(c.length===e.length?b-d:Q(e.slice(0,Math.max(0,b-d))).length)-Math.floor(100)),c.length-200);return c.slice(f,f+200)}function S(a){let b=function(a){let b=[0];for(let c=0;c<a.length;c+=1)"\n"===a[c]&&b.push(c+1);return b}(a),c=[],d=[],e=U(c=>(function(a,b,c){let d=b[c]??0,e=b[c+1];return void 0===e?a.slice(d):a.slice(d,e-1)})(a,b,c)),f=U(a=>(function(a){let b=a.replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2"),c="http";return D.test(b)?c="sftp":E.test(b)&&(c="smtp"),{named:C.test(b),transport:c}})(e(a))),g=(a,c)=>R(e(a),c-(b[a]??0));for(let e of a.matchAll(p)){let f=e.index,h=e[0];c.push([f,f+h.length]);let i=e[1];if(void 0===i)continue;let j=h.replace(t,"");if(""===j)continue;let k=function(a,b){let c,d=u[b.toLowerCase()];if(void 0===d)return null;let e=0,f=a.replace(q,()=>(e+=1,r));try{c=new URL(f.split(r).join(s))}catch{return null}let g=c.hostname.toLowerCase();if(""===g||g.includes(s))return null;let h=c.host.toLowerCase(),i=function(a,b){for(let c of L)if(c.hosts.includes(a)&&b.startsWith(c.prefix))return`${c.prefix}${o}`;return b}(g,c.pathname);return{url:`${d}://${h}${i}`.split(s).join(r),host:g,port:""===c.port?null:Number(c.port),transport:d,template:e>0}}(j,i);if(null===k)continue;let l=V(b,f);d.push({...k,method:function(a,b,c){let d=a.slice(Math.max(0,b-200),b),e=a.slice(c,c+300),f=v.exec(d);if(f?.[1]!==void 0)return T(f[1]);let g=w.exec(d);if(g?.[1]!==void 0&&!A.test(g[2]??""))return T(g[1]);let h=x.exec(e);if(h?.[1]!==void 0&&!A.test(e.slice(0,h.index)))return T(h[1]);if(y.test(d)){let a=function(a){let b=1;for(let c=0;c<a.length;c+=1){let d=a[c];if("("===d)b+=1;else if(")"===d&&0==(b-=1))return c+1}return -1}(e);if(-1!==a&&function(a,b){let c=a.slice(0,b-1).trimEnd();return!(c.endsWith(",")?c.slice(0,-1):c).includes(",")}(e,a)&&!z.test(e.slice(0,a)))return"GET"}return"REF"}(a,f,f+h.length),line:l+1,snippet:g(l,f)})}for(let e of a.matchAll(B)){let a=e.index;if(function(a,b){let c=0,d=a.length-1,e=-1;for(;c<=d;){let f=Math.floor((c+d)/2),g=a[f];if(void 0===g)break;g[0]<=b?(e=f,c=f+1):d=f-1}let f=-1===e?void 0:a[e];return void 0!==f&&b<f[1]}(c,a))continue;let j=V(b,a),k=function(a,b){let[c,d]=function(a){let b=a.indexOf(":");return -1===b?[a,null]:[a.slice(0,b),Number(a.slice(b+1))]}(a);if(!h(c)||i(c)||!b.named)return null;let{transport:e}=b;return{url:`${e}://${c}${null===d?"":`:${String(d)}`}`,host:c,port:d,transport:e,template:!1}}(e[0],f(j));null!==k&&d.push({...k,method:"REF",line:j+1,snippet:g(j,a)})}return d.sort(W)}function T(a){return a.toUpperCase()}function U(a){let b=new Map;return c=>{let d=b.get(c);if(void 0!==d)return d;let e=a(c);return b.set(c,e),e}}function V(a,b){let c=0,d=a.length-1;for(;c<d;){let e=Math.ceil((c+d)/2);(a[e]??0)<=b?c=e:d=e-1}return c}function W(a,b){return a.line!==b.line?a.line-b.line:a.url!==b.url?a.url<b.url?-1:1:0}let X=new Set(["package-lock.json","yarn.lock","pnpm-lock.yaml","Cargo.lock","composer.lock","Gemfile.lock","poetry.lock","go.sum","packages.lock.json"]),Y={"package.json":"package.json","requirements.txt":"requirements.txt","pyproject.toml":"pyproject.toml","go.mod":"go.mod","pom.xml":"pom.xml","build.gradle":"build.gradle","build.gradle.kts":"build.gradle",Gemfile:"Gemfile","Cargo.toml":"Cargo.toml","composer.json":"composer.json","packages.config":"packages.config"};function Z(a){if(X.has(a))return null;let b=Object.hasOwn(Y,a)?Y[a]:void 0;return void 0!==b?b:a.endsWith(".csproj")?"csproj":null}function $(a,b){switch(b){case"package.json":var c=a;let d=au(c);if(null===d)return[];let e=new Set,f=[];for(let a of av(d.dependencies))e.add(a),f.push(aw("npm",a,c,"dependencies"));for(let a of av(d.optionalDependencies))e.has(a)||(e.add(a),f.push(aw("npm",a,c,"optionalDependencies")));return f;case"requirements.txt":var g=a;let h=[];return at(g,(a,b)=>{let c=aa.exec(a),d=c?.[1];void 0!==d&&h.push(_("pypi",m(d),b,a))}),h;case"pyproject.toml":var i=a;let j=[],k="",l=!1;return at(i,(a,b)=>{let c=ab.exec(a);if(c){k=c[1]?.trim()??"",l=!1;return}if(!l&&/^\s*dependencies\s*=\s*\[/.test(a)&&(l=!0),l){for(let c of[...a.matchAll(ac)].map(a=>a[1]??a[2]??"")){let d=ad.exec(c)?.[1];void 0!==d&&j.push(_("pypi",m(d),b,a))}a.includes("]")&&(l=!1);return}if("tool.poetry.dependencies"===k){let c=ae.exec(a)?.[1];void 0!==c&&"python"!==c&&j.push(_("pypi",m(c),b,a))}}),j;case"go.mod":var n=a;let o=[],p=null;return at(n,(a,b)=>{if(null===p){let c=af.exec(a)?.[1];if(void 0!==c){p=c;return}let d=ah.exec(a)?.[1];void 0!==d&&o.push(_("go",d,b,a));return}if(ag.test(a)){p=null;return}if("require"===p){let c=ai.exec(a)?.[1];void 0!==c&&o.push(_("go",c,b,a))}}),o;case"pom.xml":var q=a;let r=[],s=[],t=!1;return at(q,(a,b)=>{let c=as(a,t);t=c.inComment;let d=c.visible;for(let c of d.matchAll(ak)){let f=c[2];if(void 0===f)continue;let g="/"===c[1],h=(c[3]??"").trimEnd().endsWith("/");if(g){aj.has(f)&&s[s.length-1]===f&&s.pop();continue}if(!h){if("groupId"===f){var e;let f=d.slice(c.index+c[0].length),g=al.exec(f)?.[1]?.trim()??"";""===g||"dependency"!==(e=s)[e.length-1]||"dependencies"!==e[e.length-2]||e.includes("dependencyManagement")||e.includes("parent")||e.includes("build")||r.push(_("maven",g,b,a));continue}aj.has(f)&&s.push(f)}}}),r;case"build.gradle":var u=a;let v=[];return at(u,(a,b)=>{if(!an.test(a))for(let c of a.matchAll(am)){let d=c[1];void 0!==d&&v.push(_("maven",d,b,a))}}),v;case"Gemfile":var w=a;let x=[];return at(w,(a,b)=>{let c=ao.exec(a)?.[1];void 0!==c&&x.push(_("rubygems",c,b,a))}),x;case"Cargo.toml":var y=a;let z=[],A="none";return at(y,(a,b)=>{let c=ab.exec(a);if(c){let d=c[1]?.trim()??"";if("dependencies"===d)A="plain";else if(d.startsWith("dependencies.")){A="dotted";let c=d.slice(13);""!==c&&z.push(_("cargo",c,b,a))}else A="none";return}if("plain"===A){let c=ap.exec(a)?.[1];void 0!==c&&z.push(_("cargo",c,b,a))}}),z;case"composer.json":var B=a;let C=au(B);return null===C?[]:av(C.require).filter(a=>"php"!==a&&!a.startsWith("ext-")).map(a=>aw("composer",a,B,"require"));case"csproj":var D=a;let E=[],F=!1;return at(D,(a,b)=>{let c=as(a,F);F=c.inComment;let d=aq.exec(c.visible)?.[1];void 0!==d&&E.push(_("nuget",d,b,a))}),E;case"packages.config":var G=a;let H=[],I=!1;return at(G,(a,b)=>{let c=as(a,I);I=c.inComment;let d=ar.exec(c.visible)?.[1];void 0!==d&&H.push(_("nuget",d,b,a))}),H;default:return[]}}function _(a,b,c,d){return{ecosystem:a,pkg:b,line:c,snippet:R(d)}}let aa=/^\s*([A-Za-z0-9][\w.-]*)/,ab=/^\s*\[([^\]]+)\]\s*$/,ac=/"([^"]*)"|'([^']*)'/g,ad=/^([A-Za-z0-9][\w.-]*)/,ae=/^\s*([A-Za-z0-9][\w.-]*)\s*=/,af=/^\s*(require|exclude|replace|retract)\s*\(/,ag=/^\s*\)/,ah=/^\s*require\s+([\w./-]+)\s+v\d/,ai=/^\s*([\w./-]+)\s+v\d/,aj=new Set(["project","parent","dependencyManagement","dependencies","dependency","build","plugins","plugin","exclusions","exclusion"]),ak=/<(\/?)([A-Za-z][\w.-]*)([^<>]*)>/g,al=/^([^<]*)/,am=/\b(?:implementation|api|compile)\b\s*[('"]*(?:platform\s*\(\s*['"])?([\w.-]+):[\w.-]+/g,an=/^\s*\/\//,ao=/^\s*gem\s+['"]([\w-]+)['"]/,ap=/^([A-Za-z0-9_-]+)\s*=/,aq=/<PackageReference\s+Include="([^"]+)"/,ar=/<package\s+id="([^"]+)"/;function as(a,b){let c="",d=a,e=b;for(;;){if(e){let a=d.indexOf("--\x3e");if(-1===a)return{visible:c,inComment:!0};d=d.slice(a+3),e=!1;continue}let a=d.indexOf("\x3c!--");if(-1===a)return{visible:c+d,inComment:!1};c+=d.slice(0,a),d=d.slice(a+4),e=!0}}function at(a,b){let c=a.split("\n");for(let a=0;a<c.length;a+=1)b(c[a]??"",a+1)}function au(a){let b;try{b=JSON.parse(a)}catch{return null}if("object"!=typeof b||null===b)return null;let c=b;return{dependencies:c.dependencies,optionalDependencies:c.optionalDependencies,require:c.require}}function av(a){return"object"!=typeof a||null===a?[]:Object.keys(a)}function aw(a,b,c,d){let e=c.indexOf(`"${d}"`),f=c.indexOf(`"${b}"`,-1===e?0:e);return -1===f?_(a,b,1,b):_(a,b,function(a,b){let c=1;for(let d=0;d<b;d+=1)"\n"===a[d]&&(c+=1);return c}(c,f),function(a,b){let c=a.lastIndexOf("\n",b)+1,d=a.indexOf("\n",b);return a.slice(c,-1===d?a.length:d)}(c,f))}let ax=new Set(["GET","POST","PUT","DELETE"]);function ay(a,b){let c=[];for(let n of a){for(let a of n.endpoints){let m=function(a,b,c){let m=function(a,b){let c=a.toLowerCase();if(h(c))return i(c)?null:{kind:"ip",trust:"ip",name:c,category:"Unresolved host",entry:null};if(function(a){let b=j(a);if(!b.includes(":"))return!1;let c=b.split("::");if(c.length>2)return!1;let d=(2===c.length?c:[b]).flatMap(a=>""===a?[]:a.split(":"));return!!d.every(a=>k.test(a))&&(2===c.length?d.length<=7:8===d.length)}(c))return!function(a){let b=j(a);if("::"===b||"::1"===b)return!0;let c=(b.split(":")[0]??"").padStart(4,"0");return!!(c.startsWith("fc")||c.startsWith("fd")||c.startsWith("fe")&&"89ab".includes(c[2]??"")||c.startsWith("ff"))}(c)?{kind:"ip",trust:"ip",name:c,category:"Unresolved host",entry:null}:null;let m=function(a){let b=l.exec(j(a));return b?.[1]??null}(c);if(null!==m&&h(m))return i(m)?null:{kind:"ip",trust:"ip",name:c,category:"Unresolved host",entry:null};if(f.some(a=>g(c,a)))return null;let n=d.find(a=>a.hostSuffixes.some(a=>g(c,a)));if(n)return{kind:"provider",trust:"recognized",name:n.name,category:n.category,entry:n};let o=b?.internalDomains??[];return!c.includes(".")&&!c.includes(":")||e.some(a=>g(c,a))||o.some(a=>g(c,a.toLowerCase()))?{kind:"internal",trust:"internal",name:c,category:"Internal services",entry:null}:{kind:"external",trust:"unverified",name:c,category:"External domain",entry:null}}(b.host,c);if(null===m)return null;let n="provider"===m.kind;return{host:b.host,kind:m.kind,name:m.name,category:m.category,trust:m.trust,network:n?null:{port:b.port,geo:null,ptr:null},method:b.method,transport:b.transport,url:b.url,template:b.template,dataClass:n?m.entry?.defaultDataClasses[0]??"none":"none",site:{file:a.file,line:b.line,snippet:b.snippet,dynamic:b.template,vendored:a.vendored}}}(n,a,b);null!==m&&c.push(m)}for(let a of n.sdkHits){let b=function(a,b){let c=function(a,b){for(let c of d){let d=c.sdks[a];if(void 0!==d&&d.some(c=>(function(a,b,c){switch(a){case"nuget":return b.toLowerCase()===c.toLowerCase();case"pypi":return m(b)===m(c);case"go":return b===c||b.startsWith(`${c}/`);case"maven":return b===c||b.startsWith(`${c}.`);default:return b===c}})(a,b,c)))return c}return null}(b.ecosystem,b.pkg);return null===c?null:{host:new URL(c.apiBase).hostname,kind:"provider",name:c.name,category:c.category,trust:"recognized",network:null,method:"SDK",transport:"https",url:c.apiBase,template:!1,dataClass:c.defaultDataClasses[0]??"none",site:{file:a.file,line:b.line,snippet:b.snippet,dynamic:!1,vendored:a.vendored}}}(n,a);null!==b&&c.push(b)}}var n=function(a){let b=new Set,c=[];for(let e of a){var d;let a=JSON.stringify([(d=e).host,d.method,d.url,d.site.file,d.site.line]);b.has(a)||(b.add(a),c.push(e))}return c}(c);let o=new Set;for(let a of n)ax.has(a.method)&&o.add(az(a));return n.filter(a=>"REF"!==a.method||!o.has(az(a)))}function az(a){return JSON.stringify([a.host,a.url])}function aA(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}class aB{match(a,b){if("keyword"!==b.matcher.type)return[];let{keywords:c,caseSensitive:d}=b.matcher,e=[];for(let b of c){let c;if(0===b.length)continue;if(e.length>=1e4)break;let f=new RegExp(aA(b),d?"gu":"giu");for(;null!==(c=f.exec(a))&&(e.push({start:c.index,end:c.index+c[0].length}),!(e.length>=1e4)););}return e}}class aC{match(a,b){let c;if("regex"!==b.matcher.type)return[];let{pattern:d,flags:e,captureGroup:f}=b.matcher,g=new RegExp(d,e.includes("d")?e:`${e}d`),h=a.length>2e5?a.slice(0,2e5):a,i=[],j=h.length+1,k=0;for(;null!==(c=g.exec(h))&&!(++k>j);){let a=null!=f?c[f]:c[0];if(0===c[0].length&&g.lastIndex++,a&&i.length<1e4){let b=null!=f?c.indices?.[f]:void 0,d=b?b[0]:c.index;i.push({start:d,end:d+a.length})}if(!e.includes("g")||i.length>=1e4)break}return i}}let aD=new aB,aE=new aC,aF=new Map,aG={entropy:(a,b)=>(function(a,b=3.5,c=20){return a.length>=c&&function(a){let b={};for(let c of a)b[c]=(b[c]??0)+1;let c=0;for(let d of Object.values(b)){let b=d/a.length;c-=b*Math.log2(b)}return c}(a)>=b})(a,aH(b,"threshold"),aH(b,"minLength")),luhn:a=>(function(a){let b=a.replace(/\D/g,"");if(b.length<13)return!1;let c=0,d=!0;for(let a=b.length-1;a>=0;a--){let e=parseInt(b[a]??"0",10);!d&&(e*=2)>9&&(e-=9),c+=e,d=!d}return c%10==0})(a)};function aH(a,b){let c=a?.[b];return"number"==typeof c&&Number.isFinite(c)?c:void 0}function aI(a,b,c){let d=b??[...aF.values()].flatMap(a=>a.rules),e=c?.filePath?function(a){let b=a.slice(Math.max(a.lastIndexOf("/"),a.lastIndexOf("\\"))+1),c=b.lastIndexOf(".");return c>0?b.slice(c).toLowerCase():void 0}(c.filePath):void 0,f=[];for(let b of d){let c;if(function(a,b){return!a.appliesTo||void 0===b||a.appliesTo.extensions.some(a=>a.toLowerCase()===b)}(b,e)){if("keyword"===b.matcher.type)c=aD.match(a,b);else{if("regex"!==b.matcher.type)continue;c=aE.match(a,b)}for(let d of c){let c=a.slice(d.start,d.end);(function(a,b){let c=a.postValidators;if(!c||0===c.length)return!0;for(let a of c){let c="string"==typeof a?a:a.name,d="string"==typeof a?void 0:a.config,e=aG[c];if(e&&!e(b,d))return!1}return!0})(b,c)&&f.push({rule:b,match:{ruleId:b.id,category:b.category,severity:b.severity,span:d,rawMatch:c,confidence:.9}})}}}let g=[];for(let b of f){let c=b.rule.requiresNearby;if(!c){g.push(b.match);continue}if(!function(a,b,c){let d=a.rule.requiresNearby;if(!d)return!0;let e=d.windowChars,{start:f,end:g}=a.match.span,h=f-e,i=g+e,j=d.categories,k=d.ruleIds;if(j?.length||k?.length)for(let c of b){if(c===a)continue;let b=c.match.span;if(!(b.end<h)&&!(b.start>i)&&(c.match.ruleId!==a.match.ruleId&&j?.includes(c.match.category)||k?.includes(c.match.ruleId)))return!0}let l=d.labels;if(l&&l.length>0){let a=c.slice(Math.max(0,h),i);for(let b of l){let c=b.trim();if(0!==c.length&&RegExp(`(?<![A-Za-z0-9])${aA(c)}(?![A-Za-z0-9])`,"i").test(a))return!0}}return!1}(b,f,a))continue;let d=c.confidenceBoost;g.push(d?{...b.match,confidence:Math.min(.99,b.match.confidence+d)}:b.match)}return g}let aJ={critical:3,high:2,medium:1,low:0};function aK(a,b){if(0===b.length)return a;let c=[...b].sort((a,b)=>a.span.start-b.span.start||a.span.end-b.span.end),d=[];for(let a of c){let b=aJ[a.severity],c=d[d.length-1];c&&a.span.start<c.end?(c.end=Math.max(c.end,a.span.end),b>c.rank&&(c.rank=b,c.category=a.category)):d.push({start:a.span.start,end:a.span.end,category:a.category,rank:b})}let e=a;for(let a of[...d].reverse()){let b=`[REDACTED:${a.category.toUpperCase()}]`;e=e.slice(0,a.start)+b+e.slice(a.end)}return e}function aL(a){if(a.length<=5)return"***";let b=a.indexOf("@");if(b>0&&b<a.length-1){let c=a.slice(b+1);if(c.includes(".")){let d=a.slice(0,b),e=d.length<=1?d:d.charAt(0)+"*".repeat(d.length-1);return`${e}@${c}`}}return`${a.charAt(0)}${"*".repeat(6)}${a.charAt(a.length-1)}`}var aM=c(38172);function aN(a){let b=[],c=null;for(let d of a.matchAll((0,aM.jwX)()))b.push({start:d.index,end:d.index+d[0].length}),c??=a,c=c.slice(0,d.index)+" ".repeat(d[0].length)+c.slice(d.index+d[0].length);return{text:c??a,spans:b}}function aO(a,b){return 0===b.length?a:a.filter(a=>!b.some(b=>a.span.start<b.end&&a.span.end>b.start))}let aP=new Set(["prettier","eslint","biome","black","ruff","gofmt","rustfmt","node","npx","npm","pnpm","yarn","make","git","jq","echo"]);JSON.stringify({kind:"hook-conflict",mutation:/(--write|--fix|\s-w\b|\s-i\b|(?<![\d&>])>\s?\S)/.source,note:"two hooks on the same event with overlapping matchers, both mutating the tool target"}),JSON.stringify({kind:"hook-unknown",knownTools:[...aP]}),JSON.stringify({kind:"hook-external-egress",pattern:/\b(curl|wget|nc|ncat|netcat|ssh|scp|rsync)\b|https?:\/\//.source});let aQ=["a","0"," ","x","ab","a.","a-","a_","a@","a/","a:","a=","a;","aA0"," "].flatMap(a=>[23,25].map(b=>a.repeat(Math.ceil(b/a.length)).slice(0,b)+"!")),aR=["abc-","a.","a ","a=","x","0","a@","a/","ab"].map(a=>a.repeat(1e4).slice(0,4e4)+"!");function aS(a){let{ms:b,probe:c}=function(a){let b=0,c="";for(let d of[..."regex"===a.matcher.type?function(a){let b=function(a){let b="",c=0;for("^"===a[0]&&c++;c<a.length;){let d=a[c];if(void 0===d)break;if("\\"===d){let d=a[c+1];if("b"===d||"B"===d){c+=2;continue}if(void 0===d||/[dDwWsSnrtfv.]/.test(d))break;b+=d,c+=2;continue}if("([{.*+?|)]}^$".includes(d))break;b+=d,c++}return b}(a),c=function(a){let b=new Set;for(let c of a.matchAll(/\[\^?([^\]]+)\]/g)){let a=c[1];if(void 0===a)continue;let d=/([A-Za-z0-9])-[A-Za-z0-9]/.exec(a),e=d?.[1];if(void 0!==e)b.add(e);else{let c=a.replace(/\\/g,"")[0];void 0!==c&&"^"!==c&&b.add(c)}}return a.includes("\\w")&&b.add("a"),a.includes("\\d")&&b.add("0"),a.includes("\\s")&&b.add(" "),/(?<!\\)\./.test(a)&&b.add("a"),0===b.size&&b.add("a"),[...b]}(a),d=["!","#","~","\n"],e=[];for(let a of c)for(let c of d)if(c!==a)for(let d of[23,25])e.push(b+a.repeat(d)+c);return e}(a.matcher.pattern):[],...aQ,...aR]){let e=performance.now();aI(d,[a]);let f=performance.now()-e;if(f>b&&(b=f,c=d),b>=100)break}return{ms:b,probe:c}}(a);return{safe:b<100,worstMs:b,probe:c}}}};
|
|
1
|
+
"use strict";exports.id=413,exports.ids=[413],exports.modules={34413:(a,b,c)=>{c.d(b,{Nc:()=>n,mu:()=>X,r4:()=>aW,uT:()=>aS,Pb:()=>S,W$:()=>$,$1:()=>P,DK:()=>Z,sE:()=>aP,E$:()=>aO,Ip:()=>ay,SQ:()=>aM,KD:()=>aR});let d=[{id:"stripe",name:"Stripe",category:"Payments",hostSuffixes:["stripe.com"],apiBase:"https://api.stripe.com",defaultDataClasses:["pii","customer"],sdks:{npm:["stripe"],pypi:["stripe"],go:["github.com/stripe/stripe-go"],maven:["com.stripe"],rubygems:["stripe"],composer:["stripe/stripe-php"],nuget:["Stripe.net"]}},{id:"datadog",name:"Datadog",category:"Observability",hostSuffixes:["datadoghq.com","datadoghq.eu"],apiBase:"https://api.datadoghq.com",defaultDataClasses:["telemetry","logs","metrics"],sdks:{npm:["dd-trace","@datadog/browser-logs"],pypi:["datadog","ddtrace"],go:["github.com/DataDog/dd-trace-go"],maven:["com.datadoghq"],rubygems:["ddtrace","dogapi"],nuget:["Datadog.Trace"]}},{id:"newrelic",name:"New Relic",category:"Observability",hostSuffixes:["newrelic.com","nr-data.net"],apiBase:"https://api.newrelic.com",defaultDataClasses:["telemetry","logs","metrics"],sdks:{npm:["newrelic"],pypi:["newrelic"],go:["github.com/newrelic/go-agent"],maven:["com.newrelic.agent.java"],rubygems:["newrelic_rpm"],nuget:["NewRelic.Agent"]}},{id:"sentry",name:"Sentry",category:"Error tracking",hostSuffixes:["sentry.io"],apiBase:"https://sentry.io",defaultDataClasses:["source","telemetry"],sdks:{npm:["@sentry/node","@sentry/react","@sentry/nextjs"],pypi:["sentry-sdk"],go:["github.com/getsentry/sentry-go"],maven:["io.sentry"],rubygems:["sentry-ruby"],cargo:["sentry"],composer:["sentry/sentry"],nuget:["Sentry"]}},{id:"openai",name:"OpenAI",category:"LLM provider",hostSuffixes:["openai.com"],apiBase:"https://api.openai.com",defaultDataClasses:["pii","source"],sdks:{npm:["openai"],pypi:["openai"],go:["github.com/sashabaranov/go-openai"],maven:["com.openai"],rubygems:["ruby-openai"],cargo:["async-openai"],composer:["openai-php/client"],nuget:["OpenAI"]}},{id:"anthropic",name:"Anthropic",category:"LLM provider",hostSuffixes:["anthropic.com"],apiBase:"https://api.anthropic.com",defaultDataClasses:["pii","source"],sdks:{npm:["@anthropic-ai/sdk"],pypi:["anthropic"],go:["github.com/anthropics/anthropic-sdk-go"],nuget:["Anthropic.SDK"]}},{id:"aws",name:"Amazon Web Services",category:"Cloud platform",hostSuffixes:["amazonaws.com"],apiBase:"https://s3.amazonaws.com",defaultDataClasses:["secrets","customer"],sdks:{npm:["@aws-sdk/client-s3","aws-sdk"],pypi:["boto3"],go:["github.com/aws/aws-sdk-go","github.com/aws/aws-sdk-go-v2"],maven:["com.amazonaws","software.amazon.awssdk"],rubygems:["aws-sdk-s3"],cargo:["aws-sdk-s3"],nuget:["AWSSDK.S3"]}},{id:"gcp",name:"Google Cloud",category:"Cloud platform",hostSuffixes:["googleapis.com"],apiBase:"https://storage.googleapis.com",defaultDataClasses:["customer","logs"],sdks:{npm:["@google-cloud/storage"],pypi:["google-cloud-storage"],go:["cloud.google.com/go"],maven:["com.google.cloud"],rubygems:["google-cloud-storage"],nuget:["Google.Cloud.Storage.V1"]}},{id:"azure",name:"Microsoft Azure",category:"Cloud platform",hostSuffixes:["azure.com","windows.net"],apiBase:"https://management.azure.com",defaultDataClasses:["customer","logs"],sdks:{npm:["@azure/storage-blob"],pypi:["azure-storage-blob"],go:["github.com/Azure/azure-sdk-for-go"],maven:["com.azure"],rubygems:["azure-storage-blob"],nuget:["Azure.Storage.Blobs"]}},{id:"slack",name:"Slack",category:"Notifications",hostSuffixes:["slack.com"],apiBase:"https://slack.com/api",defaultDataClasses:["logs"],sdks:{npm:["@slack/web-api"],pypi:["slack-sdk"],go:["github.com/slack-go/slack"],maven:["com.slack.api"],rubygems:["slack-ruby-client"],composer:["slack-php/slack-api"],nuget:["SlackNet"]}},{id:"segment",name:"Segment",category:"Analytics",hostSuffixes:["segment.io","segment.com"],apiBase:"https://api.segment.io",defaultDataClasses:["customer"],sdks:{npm:["@segment/analytics-node","analytics-node"],pypi:["segment-analytics-python"],go:["github.com/segmentio/analytics-go"],maven:["com.segment.analytics.java"],rubygems:["analytics-ruby"],nuget:["Analytics"]}},{id:"twilio",name:"Twilio",category:"Communications",hostSuffixes:["twilio.com"],apiBase:"https://api.twilio.com",defaultDataClasses:["pii","customer"],sdks:{npm:["twilio"],pypi:["twilio"],go:["github.com/twilio/twilio-go"],maven:["com.twilio.sdk"],rubygems:["twilio-ruby"],composer:["twilio/sdk"],nuget:["Twilio"]}},{id:"sendgrid",name:"SendGrid",category:"Email",hostSuffixes:["sendgrid.com"],apiBase:"https://api.sendgrid.com",defaultDataClasses:["pii"],sdks:{npm:["@sendgrid/mail"],pypi:["sendgrid"],go:["github.com/sendgrid/sendgrid-go"],maven:["com.sendgrid"],rubygems:["sendgrid-ruby"],composer:["sendgrid/sendgrid"],nuget:["SendGrid"]}},{id:"mailgun",name:"Mailgun",category:"Email",hostSuffixes:["mailgun.net"],apiBase:"https://api.mailgun.net",defaultDataClasses:["pii"],sdks:{npm:["mailgun.js"],pypi:["mailgun"],rubygems:["mailgun-ruby"],composer:["mailgun/mailgun-php"],nuget:["Mailgun"]}},{id:"mixpanel",name:"Mixpanel",category:"Analytics",hostSuffixes:["mixpanel.com"],apiBase:"https://api.mixpanel.com",defaultDataClasses:["customer","telemetry"],sdks:{npm:["mixpanel"],pypi:["mixpanel"],rubygems:["mixpanel-ruby"],nuget:["Mixpanel"]}},{id:"amplitude",name:"Amplitude",category:"Analytics",hostSuffixes:["amplitude.com"],apiBase:"https://api2.amplitude.com",defaultDataClasses:["customer","telemetry"],sdks:{npm:["@amplitude/analytics-node"],pypi:["amplitude-analytics"],nuget:["Amplitude"]}},{id:"posthog",name:"PostHog",category:"Analytics",hostSuffixes:["posthog.com"],apiBase:"https://us.i.posthog.com",defaultDataClasses:["customer","telemetry"],sdks:{npm:["posthog-node","posthog-js"],pypi:["posthog"],go:["github.com/posthog/posthog-go"],rubygems:["posthog-ruby"],composer:["posthog/posthog-php"],nuget:["PostHog"]}},{id:"honeycomb",name:"Honeycomb",category:"Observability",hostSuffixes:["honeycomb.io"],apiBase:"https://api.honeycomb.io",defaultDataClasses:["telemetry","metrics"],sdks:{npm:["libhoney"],pypi:["libhoney"],go:["github.com/honeycombio/libhoney-go"],rubygems:["libhoney"]}},{id:"grafana",name:"Grafana Cloud",category:"Observability",hostSuffixes:["grafana.net"],apiBase:"https://grafana.net",defaultDataClasses:["logs","metrics"],sdks:{npm:["@grafana/faro-web-sdk"]}},{id:"splunk",name:"Splunk",category:"Observability",hostSuffixes:["splunkcloud.com","splunk.com"],apiBase:"https://http-inputs.splunkcloud.com",defaultDataClasses:["logs"],sdks:{npm:["splunk-logging"],pypi:["splunk-sdk"],maven:["com.splunk"],nuget:["Splunk.Logging.Common"]}},{id:"pagerduty",name:"PagerDuty",category:"Incident response",hostSuffixes:["pagerduty.com"],apiBase:"https://api.pagerduty.com",defaultDataClasses:["logs"],sdks:{npm:["@pagerduty/pdjs"],pypi:["pdpyras"],go:["github.com/PagerDuty/go-pagerduty"],rubygems:["pagerduty"]}},{id:"github",name:"GitHub",category:"Developer platform",hostSuffixes:["github.com","githubusercontent.com"],apiBase:"https://api.github.com",defaultDataClasses:["source"],sdks:{npm:["@octokit/rest","octokit"],pypi:["pygithub"],go:["github.com/google/go-github"],maven:["org.kohsuke.github-api"],rubygems:["octokit"],cargo:["octocrab"],composer:["knplabs/github-api"],nuget:["Octokit"]}},{id:"gitlab",name:"GitLab",category:"Developer platform",hostSuffixes:["gitlab.com"],apiBase:"https://gitlab.com/api",defaultDataClasses:["source"],sdks:{npm:["@gitbeaker/rest"],pypi:["python-gitlab"],go:["gitlab.com/gitlab-org/api/client-go"],rubygems:["gitlab"],nuget:["GitLabApiClient"]}},{id:"auth0",name:"Auth0",category:"Identity",hostSuffixes:["auth0.com"],apiBase:"https://login.auth0.com",defaultDataClasses:["pii"],sdks:{npm:["auth0"],pypi:["auth0-python"],go:["github.com/auth0/go-auth0"],maven:["com.auth0"],rubygems:["auth0"],composer:["auth0/auth0-php"],nuget:["Auth0.ManagementApi"]}},{id:"okta",name:"Okta",category:"Identity",hostSuffixes:["okta.com","oktapreview.com"],apiBase:"https://login.okta.com",defaultDataClasses:["pii"],sdks:{npm:["@okta/okta-sdk-nodejs"],pypi:["okta"],go:["github.com/okta/okta-sdk-golang"],maven:["com.okta.sdk"],nuget:["Okta.Sdk"]}},{id:"clerk",name:"Clerk",category:"Identity",hostSuffixes:["clerk.com","clerk.dev"],apiBase:"https://api.clerk.com",defaultDataClasses:["pii"],sdks:{npm:["@clerk/backend","@clerk/nextjs"],pypi:["clerk-backend-api"],go:["github.com/clerk/clerk-sdk-go"]}},{id:"supabase",name:"Supabase",category:"Backend platform",hostSuffixes:["supabase.co","supabase.com"],apiBase:"https://api.supabase.com",defaultDataClasses:["pii","customer"],sdks:{npm:["@supabase/supabase-js"],pypi:["supabase"],cargo:["postgrest"]}},{id:"firebase",name:"Firebase",category:"Backend platform",hostSuffixes:["firebaseio.com","firebase.google.com"],apiBase:"https://firebaseio.com",defaultDataClasses:["customer"],sdks:{npm:["firebase","firebase-admin"],pypi:["firebase-admin"],go:["firebase.google.com/go"],maven:["com.google.firebase"]}},{id:"mongodb-atlas",name:"MongoDB Atlas",category:"Database SaaS",hostSuffixes:["mongodb.net","mongodb.com"],apiBase:"https://cloud.mongodb.com",defaultDataClasses:["customer"],sdks:{npm:["mongodb"],pypi:["pymongo"],go:["go.mongodb.org/mongo-driver"],maven:["org.mongodb"],rubygems:["mongo"],cargo:["mongodb"],nuget:["MongoDB.Driver"]}},{id:"planetscale",name:"PlanetScale",category:"Database SaaS",hostSuffixes:["psdb.cloud","planetscale.com"],apiBase:"https://api.planetscale.com",defaultDataClasses:["customer"],sdks:{npm:["@planetscale/database"],go:["github.com/planetscale/planetscale-go"]}},{id:"algolia",name:"Algolia",category:"Search SaaS",hostSuffixes:["algolia.net","algolianet.com"],apiBase:"https://algolia.net",defaultDataClasses:["customer"],sdks:{npm:["algoliasearch"],pypi:["algoliasearch"],go:["github.com/algolia/algoliasearch-client-go"],maven:["com.algolia"],rubygems:["algolia"],composer:["algolia/algoliasearch-client-php"],nuget:["Algolia.Search"]}},{id:"cloudflare",name:"Cloudflare",category:"CDN / edge",hostSuffixes:["cloudflare.com","workers.dev"],apiBase:"https://api.cloudflare.com",defaultDataClasses:["logs"],sdks:{npm:["cloudflare"],pypi:["cloudflare"],go:["github.com/cloudflare/cloudflare-go"],nuget:["CloudFlare.Client"]}},{id:"huggingface",name:"Hugging Face",category:"LLM provider",hostSuffixes:["huggingface.co"],apiBase:"https://api-inference.huggingface.co",defaultDataClasses:["source"],sdks:{npm:["@huggingface/inference"],pypi:["huggingface-hub","transformers"],rubygems:["hugging-face"]}},{id:"cohere",name:"Cohere",category:"LLM provider",hostSuffixes:["cohere.com","cohere.ai"],apiBase:"https://api.cohere.com",defaultDataClasses:["pii","source"],sdks:{npm:["cohere-ai"],pypi:["cohere"],go:["github.com/cohere-ai/cohere-go"]}},{id:"mistral",name:"Mistral AI",category:"LLM provider",hostSuffixes:["mistral.ai"],apiBase:"https://api.mistral.ai",defaultDataClasses:["pii","source"],sdks:{npm:["@mistralai/mistralai"],pypi:["mistralai"],go:["github.com/gage-technologies/mistral-go"]}}],e=["internal","local","corp","lan","intranet","home.arpa"],f=["localhost","test","example","invalid","example.com","example.org","example.net","w3.org","schemas.openxmlformats.org","schemas.microsoft.com","schemas.android.com","maven.apache.org"];function g(a,b){return a===b||a.endsWith(`.${b}`)}function h(a){let b=a.split(".");return 4===b.length&&b.every(a=>/^\d{1,3}$/.test(a)&&255>=Number(a))}function i(a){let b=a.split(".").map(Number),c=b[0],d=b[1];return void 0!==c&&void 0!==d&&(0===c||10===c||127===c||c>=224||169===c&&254===d||172===c&&d>=16&&d<=31||192===c&&168===d||!1)}function j(a){let b=a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a,c=b.indexOf("%");return(-1===c?b:b.slice(0,c)).toLowerCase()}let k=/^[0-9a-f]{1,4}$/,l=/^::ffff:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/;function m(a){return a.toLowerCase().replace(/[-_.]+/g,"-")}let n=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".rb",".cs",".php",".go",".rs"]),o="••••",p=/(https?|wss?|sftp|grpcs?|smtp):\/\/(?:[^\s'"`<>()[\]{},;]|\$\{[^}\s]{1,64}\}|\{[A-Za-z_]\w{0,63}\}|%[sd])+/gi,q=/\$\{[^}\s]{1,64}\}|\{[A-Za-z_]\w{0,63}\}|%[sd]/g,r="${var}",s="akaegressvar0",t=/[.,;:'"]+$/,u={http:"http",https:"https",ws:"ws",wss:"wss",sftp:"sftp",grpc:"grpc",grpcs:"grpc",smtp:"smtp"},v=/\.\s*(get|post|put|delete)\s*\(\s*['"`]*$/i,w=/["'](GET|POST|PUT|DELETE)["']\s*,([^)\]};]{0,150})$/i,x=/method\s*[:=]\s*['"](GET|POST|PUT|DELETE)/i,y=/\b(fetch|urlopen|got|ky)\s*\(\s*['"`]*$/i,z=/\bmethod\s*[:=]/i,A=/;|\n\s*(?:(?:const|let|var|val|function|func|fn|def|class|return|export|import|if|for|while|switch|try|public|private)\b|\w+\s*=[^=])/,B=/\b(?:\d{1,3}\.){3}\d{1,3}(?::\d{1,5})?\b/g,C=/\b(host|hostname|server|address|endpoint|ip|url|uri)\b/i,D=/\bs(ftp|cp|sh)\b/i,E=/\b(smtp|mail)\b/i,F="api[_-]?key|apikey|private[_-]?key|access[_-]?key|access[_-]?token|token|secret|credentials?|password|passwd|pwd|authorization|sig|signature|sas|assertion",G="Bearer|Basic|Token|Digest|ApiKey|SSWS|AWS4-HMAC-SHA256",H=/:\/\/[^@/\s]+@/g,I=RegExp(`((?:${F})['"\`]?\\s*[:=]\\s*['"\`]?)(?!(?:${G})[\\s'"\`])[^\\s'"\`&]+`,"gi"),J=RegExp(`((?:${F})['"\`]?\\s*[:=]\\s*['"\`]?)(${G})\\s+[^\\s'"\`]+`,"gi"),K=/\bBearer\s+[A-Za-z0-9._~+/-]+=*/gi,L=[{hosts:["hooks.slack.com"],prefix:"/services/"},{hosts:["discord.com","discordapp.com","ptb.discord.com","canary.discord.com"],prefix:"/api/webhooks/"},{hosts:["hooks.zapier.com"],prefix:"/hooks/"},{hosts:["outlook.office.com","outlook.office365.com"],prefix:"/webhook/"}];function M(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}let N=RegExp(`(https?://(?:${L.flatMap(a=>a.hosts.map(b=>`${M(b)}${M(a.prefix)}`)).join("|")}))[^\\s'"\`<>()[\\]{},;]+`,"gi"),O=/(^|\/)(vendor|third_party|external)\//;function P(a){return O.test(a)}function Q(a){return a.trim().replace(H,"://").replace(N,`$1${o}`).replace(I,`$1${o}`).replace(J,`$1$2 ${o}`).replace(K,`Bearer ${o}`)}function R(a,b=0){let c=Q(a);if(c.length<=200)return c;let d=a.length-a.trimStart().length,e=a.trim(),f=Math.min(Math.max(0,(c.length===e.length?b-d:Q(e.slice(0,Math.max(0,b-d))).length)-Math.floor(100)),c.length-200);return c.slice(f,f+200)}function S(a){let b=function(a){let b=[0];for(let c=0;c<a.length;c+=1)"\n"===a[c]&&b.push(c+1);return b}(a),c=[],d=[],e=U(c=>(function(a,b,c){let d=b[c]??0,e=b[c+1];return void 0===e?a.slice(d):a.slice(d,e-1)})(a,b,c)),f=U(a=>(function(a){let b=a.replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2"),c="http";return D.test(b)?c="sftp":E.test(b)&&(c="smtp"),{named:C.test(b),transport:c}})(e(a))),g=(a,c)=>R(e(a),c-(b[a]??0));for(let e of a.matchAll(p)){let f=e.index,h=e[0];c.push([f,f+h.length]);let i=e[1];if(void 0===i)continue;let j=h.replace(t,"");if(""===j)continue;let k=function(a,b){let c,d=u[b.toLowerCase()];if(void 0===d)return null;let e=0,f=a.replace(q,()=>(e+=1,r));try{c=new URL(f.split(r).join(s))}catch{return null}let g=c.hostname.toLowerCase();if(""===g||g.includes(s))return null;let h=c.host.toLowerCase(),i=function(a,b){for(let c of L)if(c.hosts.includes(a)&&b.startsWith(c.prefix))return`${c.prefix}${o}`;return b}(g,c.pathname);return{url:`${d}://${h}${i}`.split(s).join(r),host:g,port:""===c.port?null:Number(c.port),transport:d,template:e>0}}(j,i);if(null===k)continue;let l=V(b,f);d.push({...k,method:function(a,b,c){let d=a.slice(Math.max(0,b-200),b),e=a.slice(c,c+300),f=v.exec(d);if(f?.[1]!==void 0)return T(f[1]);let g=w.exec(d);if(g?.[1]!==void 0&&!A.test(g[2]??""))return T(g[1]);let h=x.exec(e);if(h?.[1]!==void 0&&!A.test(e.slice(0,h.index)))return T(h[1]);if(y.test(d)){let a=function(a){let b=1;for(let c=0;c<a.length;c+=1){let d=a[c];if("("===d)b+=1;else if(")"===d&&0==(b-=1))return c+1}return -1}(e);if(-1!==a&&function(a,b){let c=a.slice(0,b-1).trimEnd();return!(c.endsWith(",")?c.slice(0,-1):c).includes(",")}(e,a)&&!z.test(e.slice(0,a)))return"GET"}return"REF"}(a,f,f+h.length),line:l+1,snippet:g(l,f)})}for(let e of a.matchAll(B)){let a=e.index;if(function(a,b){let c=0,d=a.length-1,e=-1;for(;c<=d;){let f=Math.floor((c+d)/2),g=a[f];if(void 0===g)break;g[0]<=b?(e=f,c=f+1):d=f-1}let f=-1===e?void 0:a[e];return void 0!==f&&b<f[1]}(c,a))continue;let j=V(b,a),k=function(a,b){let[c,d]=function(a){let b=a.indexOf(":");return -1===b?[a,null]:[a.slice(0,b),Number(a.slice(b+1))]}(a);if(!h(c)||i(c)||!b.named)return null;let{transport:e}=b;return{url:`${e}://${c}${null===d?"":`:${String(d)}`}`,host:c,port:d,transport:e,template:!1}}(e[0],f(j));null!==k&&d.push({...k,method:"REF",line:j+1,snippet:g(j,a)})}return d.sort(W)}function T(a){return a.toUpperCase()}function U(a){let b=new Map;return c=>{let d=b.get(c);if(void 0!==d)return d;let e=a(c);return b.set(c,e),e}}function V(a,b){let c=0,d=a.length-1;for(;c<d;){let e=Math.ceil((c+d)/2);(a[e]??0)<=b?c=e:d=e-1}return c}function W(a,b){return a.line!==b.line?a.line-b.line:a.url!==b.url?a.url<b.url?-1:1:0}let X=new Set(["package-lock.json","yarn.lock","pnpm-lock.yaml","Cargo.lock","composer.lock","Gemfile.lock","poetry.lock","go.sum","packages.lock.json"]),Y={"package.json":"package.json","requirements.txt":"requirements.txt","pyproject.toml":"pyproject.toml","go.mod":"go.mod","pom.xml":"pom.xml","build.gradle":"build.gradle","build.gradle.kts":"build.gradle",Gemfile:"Gemfile","Cargo.toml":"Cargo.toml","composer.json":"composer.json","packages.config":"packages.config"};function Z(a){if(X.has(a))return null;let b=Object.hasOwn(Y,a)?Y[a]:void 0;return void 0!==b?b:a.endsWith(".csproj")?"csproj":null}function $(a,b){switch(b){case"package.json":var c=a;let d=au(c);if(null===d)return[];let e=new Set,f=[];for(let a of av(d.dependencies))e.add(a),f.push(aw("npm",a,c,"dependencies"));for(let a of av(d.optionalDependencies))e.has(a)||(e.add(a),f.push(aw("npm",a,c,"optionalDependencies")));return f;case"requirements.txt":var g=a;let h=[];return at(g,(a,b)=>{let c=aa.exec(a),d=c?.[1];void 0!==d&&h.push(_("pypi",m(d),b,a))}),h;case"pyproject.toml":var i=a;let j=[],k="",l=!1;return at(i,(a,b)=>{let c=ab.exec(a);if(c){k=c[1]?.trim()??"",l=!1;return}if(!l&&/^\s*dependencies\s*=\s*\[/.test(a)&&(l=!0),l){for(let c of[...a.matchAll(ac)].map(a=>a[1]??a[2]??"")){let d=ad.exec(c)?.[1];void 0!==d&&j.push(_("pypi",m(d),b,a))}a.includes("]")&&(l=!1);return}if("tool.poetry.dependencies"===k){let c=ae.exec(a)?.[1];void 0!==c&&"python"!==c&&j.push(_("pypi",m(c),b,a))}}),j;case"go.mod":var n=a;let o=[],p=null;return at(n,(a,b)=>{if(null===p){let c=af.exec(a)?.[1];if(void 0!==c){p=c;return}let d=ah.exec(a)?.[1];void 0!==d&&o.push(_("go",d,b,a));return}if(ag.test(a)){p=null;return}if("require"===p){let c=ai.exec(a)?.[1];void 0!==c&&o.push(_("go",c,b,a))}}),o;case"pom.xml":var q=a;let r=[],s=[],t=!1;return at(q,(a,b)=>{let c=as(a,t);t=c.inComment;let d=c.visible;for(let c of d.matchAll(ak)){let f=c[2];if(void 0===f)continue;let g="/"===c[1],h=(c[3]??"").trimEnd().endsWith("/");if(g){aj.has(f)&&s[s.length-1]===f&&s.pop();continue}if(!h){if("groupId"===f){var e;let f=d.slice(c.index+c[0].length),g=al.exec(f)?.[1]?.trim()??"";""===g||"dependency"!==(e=s)[e.length-1]||"dependencies"!==e[e.length-2]||e.includes("dependencyManagement")||e.includes("parent")||e.includes("build")||r.push(_("maven",g,b,a));continue}aj.has(f)&&s.push(f)}}}),r;case"build.gradle":var u=a;let v=[];return at(u,(a,b)=>{if(!an.test(a))for(let c of a.matchAll(am)){let d=c[1];void 0!==d&&v.push(_("maven",d,b,a))}}),v;case"Gemfile":var w=a;let x=[];return at(w,(a,b)=>{let c=ao.exec(a)?.[1];void 0!==c&&x.push(_("rubygems",c,b,a))}),x;case"Cargo.toml":var y=a;let z=[],A="none";return at(y,(a,b)=>{let c=ab.exec(a);if(c){let d=c[1]?.trim()??"";if("dependencies"===d)A="plain";else if(d.startsWith("dependencies.")){A="dotted";let c=d.slice(13);""!==c&&z.push(_("cargo",c,b,a))}else A="none";return}if("plain"===A){let c=ap.exec(a)?.[1];void 0!==c&&z.push(_("cargo",c,b,a))}}),z;case"composer.json":var B=a;let C=au(B);return null===C?[]:av(C.require).filter(a=>"php"!==a&&!a.startsWith("ext-")).map(a=>aw("composer",a,B,"require"));case"csproj":var D=a;let E=[],F=!1;return at(D,(a,b)=>{let c=as(a,F);F=c.inComment;let d=aq.exec(c.visible)?.[1];void 0!==d&&E.push(_("nuget",d,b,a))}),E;case"packages.config":var G=a;let H=[],I=!1;return at(G,(a,b)=>{let c=as(a,I);I=c.inComment;let d=ar.exec(c.visible)?.[1];void 0!==d&&H.push(_("nuget",d,b,a))}),H;default:return[]}}function _(a,b,c,d){return{ecosystem:a,pkg:b,line:c,snippet:R(d)}}let aa=/^\s*([A-Za-z0-9][\w.-]*)/,ab=/^\s*\[([^\]]+)\]\s*$/,ac=/"([^"]*)"|'([^']*)'/g,ad=/^([A-Za-z0-9][\w.-]*)/,ae=/^\s*([A-Za-z0-9][\w.-]*)\s*=/,af=/^\s*(require|exclude|replace|retract)\s*\(/,ag=/^\s*\)/,ah=/^\s*require\s+([\w./-]+)\s+v\d/,ai=/^\s*([\w./-]+)\s+v\d/,aj=new Set(["project","parent","dependencyManagement","dependencies","dependency","build","plugins","plugin","exclusions","exclusion"]),ak=/<(\/?)([A-Za-z][\w.-]*)([^<>]*)>/g,al=/^([^<]*)/,am=/\b(?:implementation|api|compile)\b\s*[('"]*(?:platform\s*\(\s*['"])?([\w.-]+):[\w.-]+/g,an=/^\s*\/\//,ao=/^\s*gem\s+['"]([\w-]+)['"]/,ap=/^([A-Za-z0-9_-]+)\s*=/,aq=/<PackageReference\s+Include="([^"]+)"/,ar=/<package\s+id="([^"]+)"/;function as(a,b){let c="",d=a,e=b;for(;;){if(e){let a=d.indexOf("--\x3e");if(-1===a)return{visible:c,inComment:!0};d=d.slice(a+3),e=!1;continue}let a=d.indexOf("\x3c!--");if(-1===a)return{visible:c+d,inComment:!1};c+=d.slice(0,a),d=d.slice(a+4),e=!0}}function at(a,b){let c=a.split("\n");for(let a=0;a<c.length;a+=1)b(c[a]??"",a+1)}function au(a){let b;try{b=JSON.parse(a)}catch{return null}if("object"!=typeof b||null===b)return null;let c=b;return{dependencies:c.dependencies,optionalDependencies:c.optionalDependencies,require:c.require}}function av(a){return"object"!=typeof a||null===a?[]:Object.keys(a)}function aw(a,b,c,d){let e=c.indexOf(`"${d}"`),f=c.indexOf(`"${b}"`,-1===e?0:e);return -1===f?_(a,b,1,b):_(a,b,function(a,b){let c=1;for(let d=0;d<b;d+=1)"\n"===a[d]&&(c+=1);return c}(c,f),function(a,b){let c=a.lastIndexOf("\n",b)+1,d=a.indexOf("\n",b);return a.slice(c,-1===d?a.length:d)}(c,f))}let ax=new Set(["GET","POST","PUT","DELETE"]);function ay(a,b){let c=[];for(let n of a){for(let a of n.endpoints){let m=function(a,b,c){let m=function(a,b){let c=a.toLowerCase();if(h(c))return i(c)?null:{kind:"ip",trust:"ip",name:c,category:"Unresolved host",entry:null};if(function(a){let b=j(a);if(!b.includes(":"))return!1;let c=b.split("::");if(c.length>2)return!1;let d=(2===c.length?c:[b]).flatMap(a=>""===a?[]:a.split(":"));return!!d.every(a=>k.test(a))&&(2===c.length?d.length<=7:8===d.length)}(c))return!function(a){let b=j(a);if("::"===b||"::1"===b)return!0;let c=(b.split(":")[0]??"").padStart(4,"0");return!!(c.startsWith("fc")||c.startsWith("fd")||c.startsWith("fe")&&"89ab".includes(c[2]??"")||c.startsWith("ff"))}(c)?{kind:"ip",trust:"ip",name:c,category:"Unresolved host",entry:null}:null;let m=function(a){let b=l.exec(j(a));return b?.[1]??null}(c);if(null!==m&&h(m))return i(m)?null:{kind:"ip",trust:"ip",name:c,category:"Unresolved host",entry:null};if(f.some(a=>g(c,a)))return null;let n=d.find(a=>a.hostSuffixes.some(a=>g(c,a)));if(n)return{kind:"provider",trust:"recognized",name:n.name,category:n.category,entry:n};let o=b?.internalDomains??[];return!c.includes(".")&&!c.includes(":")||e.some(a=>g(c,a))||o.some(a=>g(c,a.toLowerCase()))?{kind:"internal",trust:"internal",name:c,category:"Internal services",entry:null}:{kind:"external",trust:"unverified",name:c,category:"External domain",entry:null}}(b.host,c);if(null===m)return null;let n="provider"===m.kind;return{host:b.host,kind:m.kind,name:m.name,category:m.category,trust:m.trust,network:n?null:{port:b.port,geo:null,ptr:null},method:b.method,transport:b.transport,url:b.url,template:b.template,dataClass:n?m.entry?.defaultDataClasses[0]??"none":"none",site:{file:a.file,line:b.line,snippet:b.snippet,dynamic:b.template,vendored:a.vendored}}}(n,a,b);null!==m&&c.push(m)}for(let a of n.sdkHits){let b=function(a,b){let c=function(a,b){for(let c of d){let d=c.sdks[a];if(void 0!==d&&d.some(c=>(function(a,b,c){switch(a){case"nuget":return b.toLowerCase()===c.toLowerCase();case"pypi":return m(b)===m(c);case"go":return b===c||b.startsWith(`${c}/`);case"maven":return b===c||b.startsWith(`${c}.`);default:return b===c}})(a,b,c)))return c}return null}(b.ecosystem,b.pkg);return null===c?null:{host:new URL(c.apiBase).hostname,kind:"provider",name:c.name,category:c.category,trust:"recognized",network:null,method:"SDK",transport:"https",url:c.apiBase,template:!1,dataClass:c.defaultDataClasses[0]??"none",site:{file:a.file,line:b.line,snippet:b.snippet,dynamic:!1,vendored:a.vendored}}}(n,a);null!==b&&c.push(b)}}var n=function(a){let b=new Set,c=[];for(let e of a){var d;let a=JSON.stringify([(d=e).host,d.method,d.url,d.site.file,d.site.line]);b.has(a)||(b.add(a),c.push(e))}return c}(c);let o=new Set;for(let a of n)ax.has(a.method)&&o.add(az(a));return n.filter(a=>"REF"!==a.method||!o.has(az(a)))}function az(a){return JSON.stringify([a.host,a.url])}function aA(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}let aB=new WeakMap,aC=new WeakMap,aD=new WeakMap;function aE(a,b,c){let d="keyword"===a?aC:aD,e=d.get(b);if(void 0!==e){if(e.stateful)for(let a of e.entries)void 0!==a&&(a.lastIndex=0);return e.entries}let f=c();return d.set(b,{entries:f,stateful:f.some(a=>void 0!==a&&(a.global||a.sticky))}),f}class aF{match(a,b){if("keyword"!==b.matcher.type)return[];let{keywords:c,caseSensitive:d}=b.matcher,e=[];for(let f of aE("keyword",b.matcher,()=>c.map(a=>{if(0!==a.length)return new RegExp(aA(a),d?"gu":"giu")}))){let b;if(void 0!==f){if(e.length>=1e4)break;for(;null!==(b=f.exec(a))&&(e.push({start:b.index,end:b.index+b[0].length}),!(e.length>=1e4)););}}return e}}class aG{match(a,b){let c;if("regex"!==b.matcher.type)return[];let{pattern:d,flags:e,captureGroup:f}=b.matcher,g=function(a,b){let c=aB.get(a);if(void 0!==c)return c.lastIndex=0,c;let d=b();return aB.set(a,d),d}(b.matcher,()=>new RegExp(d,e.includes("d")?e:`${e}d`)),h=a.length>2e5?a.slice(0,2e5):a,i=[],j=h.length+1,k=0;for(;null!==(c=g.exec(h))&&!(++k>j);){let a=null!=f?c[f]:c[0];if(0===c[0].length&&g.lastIndex++,a&&i.length<1e4){let b=null!=f?c.indices?.[f]:void 0,d=b?b[0]:c.index;i.push({start:d,end:d+a.length})}if(!e.includes("g")||i.length>=1e4)break}return i}}let aH=new aF,aI=new aG,aJ=new Map,aK={entropy:(a,b)=>(function(a,b=3.5,c=20){return a.length>=c&&function(a){let b={};for(let c of a)b[c]=(b[c]??0)+1;let c=0;for(let d of Object.values(b)){let b=d/a.length;c-=b*Math.log2(b)}return c}(a)>=b})(a,aL(b,"threshold"),aL(b,"minLength")),luhn:a=>(function(a){let b=a.replace(/\D/g,"");if(b.length<13)return!1;let c=0,d=!0;for(let a=b.length-1;a>=0;a--){let e=parseInt(b[a]??"0",10);!d&&(e*=2)>9&&(e-=9),c+=e,d=!d}return c%10==0})(a)};function aL(a,b){let c=a?.[b];return"number"==typeof c&&Number.isFinite(c)?c:void 0}function aM(a,b,c){let d=b??[...aJ.values()].flatMap(a=>a.rules),e=c?.filePath?function(a){let b=a.slice(Math.max(a.lastIndexOf("/"),a.lastIndexOf("\\"))+1),c=b.lastIndexOf(".");return c>0?b.slice(c).toLowerCase():void 0}(c.filePath):void 0,f=[];for(let b of d){let c;if(function(a,b){return!a.appliesTo||void 0===b||a.appliesTo.extensions.some(a=>a.toLowerCase()===b)}(b,e)){if("keyword"===b.matcher.type)c=aH.match(a,b);else{if("regex"!==b.matcher.type)continue;c=aI.match(a,b)}for(let d of c){let c=a.slice(d.start,d.end);(function(a,b){let c=a.postValidators;if(!c||0===c.length)return!0;for(let a of c){let c="string"==typeof a?a:a.name,d="string"==typeof a?void 0:a.config,e=aK[c];if(e&&!e(b,d))return!1}return!0})(b,c)&&f.push({rule:b,match:{ruleId:b.id,category:b.category,severity:b.severity,span:d,rawMatch:c,confidence:.9}})}}}let g=[];for(let b of f){let c=b.rule.requiresNearby;if(!c){g.push(b.match);continue}if(!function(a,b,c){let d=a.rule.requiresNearby;if(!d)return!0;let e=d.windowChars,{start:f,end:g}=a.match.span,h=f-e,i=g+e,j=d.categories,k=d.ruleIds;if(j?.length||k?.length)for(let c of b){if(c===a)continue;let b=c.match.span;if(!(b.end<h)&&!(b.start>i)&&(c.match.ruleId!==a.match.ruleId&&j?.includes(c.match.category)||k?.includes(c.match.ruleId)))return!0}let l=d.labels;if(l&&l.length>0){let a=c.slice(Math.max(0,h),i);for(let b of aE("label",d,()=>l.map(a=>{let b=a.trim();return 0===b.length?void 0:RegExp(`(?<![A-Za-z0-9])${aA(b)}(?![A-Za-z0-9])`,"i")})))if(b?.test(a))return!0}return!1}(b,f,a))continue;let d=c.confidenceBoost;g.push(d?{...b.match,confidence:Math.min(.99,b.match.confidence+d)}:b.match)}return g}let aN={critical:3,high:2,medium:1,low:0};function aO(a,b){if(0===b.length)return a;let c=[...b].sort((a,b)=>a.span.start-b.span.start||a.span.end-b.span.end),d=[];for(let a of c){let b=aN[a.severity],c=d[d.length-1];c&&a.span.start<c.end?(c.end=Math.max(c.end,a.span.end),b>c.rank&&(c.rank=b,c.category=a.category)):d.push({start:a.span.start,end:a.span.end,category:a.category,rank:b})}let e=a;for(let a of[...d].reverse()){let b=`[REDACTED:${a.category.toUpperCase()}]`;e=e.slice(0,a.start)+b+e.slice(a.end)}return e}function aP(a){if(a.length<=5)return"***";let b=a.indexOf("@");if(b>0&&b<a.length-1){let c=a.slice(b+1);if(c.includes(".")){let d=a.slice(0,b),e=d.length<=1?d:d.charAt(0)+"*".repeat(d.length-1);return`${e}@${c}`}}return`${a.charAt(0)}${"*".repeat(6)}${a.charAt(a.length-1)}`}var aQ=c(38172);function aR(a){let b=[],c=null;for(let d of a.matchAll((0,aQ.jwX)()))b.push({start:d.index,end:d.index+d[0].length}),c??=a,c=c.slice(0,d.index)+" ".repeat(d[0].length)+c.slice(d.index+d[0].length);return{text:c??a,spans:b}}function aS(a,b){return 0===b.length?a:a.filter(a=>!b.some(b=>a.span.start<b.end&&a.span.end>b.start))}let aT=new Set(["prettier","eslint","biome","black","ruff","gofmt","rustfmt","node","npx","npm","pnpm","yarn","make","git","jq","echo"]);JSON.stringify({kind:"hook-conflict",mutation:/(--write|--fix|\s-w\b|\s-i\b|(?<![\d&>])>\s?\S)/.source,note:"two hooks on the same event with overlapping matchers, both mutating the tool target"}),JSON.stringify({kind:"hook-unknown",knownTools:[...aT]}),JSON.stringify({kind:"hook-external-egress",pattern:/\b(curl|wget|nc|ncat|netcat|ssh|scp|rsync)\b|https?:\/\//.source});let aU=["a","0"," ","x","ab","a.","a-","a_","a@","a/","a:","a=","a;","aA0"," "].flatMap(a=>[23,25].map(b=>a.repeat(Math.ceil(b/a.length)).slice(0,b)+"!")),aV=["abc-","a.","a ","a=","x","0","a@","a/","ab"].map(a=>a.repeat(1e4).slice(0,4e4)+"!");function aW(a){let{ms:b,probe:c}=function(a,b=()=>performance.now()){let c=0,d="";for(let e of[..."regex"===a.matcher.type?function(a){let b=function(a){let b="",c=0;for("^"===a[0]&&c++;c<a.length;){let d=a[c];if(void 0===d)break;if("\\"===d){let d=a[c+1];if("b"===d||"B"===d){c+=2;continue}if(void 0===d||/[dDwWsSnrtfv.]/.test(d))break;b+=d,c+=2;continue}if("([{.*+?|)]}^$".includes(d))break;b+=d,c++}return b}(a),c=function(a){let b=new Set;for(let c of a.matchAll(/\[\^?([^\]]+)\]/g)){let a=c[1];if(void 0===a)continue;let d=/([A-Za-z0-9])-[A-Za-z0-9]/.exec(a),e=d?.[1];if(void 0!==e)b.add(e);else{let c=a.replace(/\\/g,"")[0];void 0!==c&&"^"!==c&&b.add(c)}}return a.includes("\\w")&&b.add("a"),a.includes("\\d")&&b.add("0"),a.includes("\\s")&&b.add(" "),/(?<!\\)\./.test(a)&&b.add("a"),0===b.size&&b.add("a"),[...b]}(a),d=["!","#","~","\n"],e=[];for(let a of c)for(let c of d)if(c!==a)for(let d of[23,25])e.push(b+a.repeat(d)+c);return e}(a.matcher.pattern):[],...aU,...aV]){let f=b();aM(e,[a]);let g=b()-f;if(g>c&&(c=g,d=e),c>=100)break}return{ms:c,probe:d}}(a);return{safe:b<100,worstMs:b,probe:c}}}};
|