@counterfact-labs/cli 0.2.7 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/bundle/client-release.json +1 -1
  2. package/dist/adapters/analysis-results.js +87 -0
  3. package/dist/adapters/combined-results.js +27 -0
  4. package/dist/adapters/entry-files.js +5 -2
  5. package/dist/adapters/entry-packing.js +161 -0
  6. package/dist/adapters/entry-selection.js +13 -1
  7. package/dist/adapters/files.js +110 -5
  8. package/dist/adapters/git.js +10 -1
  9. package/dist/adapters/relay-plan.js +5 -7
  10. package/dist/adapters/release.js +4 -1
  11. package/dist/adapters/results.js +9 -2
  12. package/dist/adapters/selection.js +19 -9
  13. package/dist/adapters/settings.js +37 -6
  14. package/dist/adapters/source-relay-plan.js +7 -0
  15. package/dist/analysis-core/analysis/code-agents/skipped-files.js +1 -1
  16. package/dist/analysis-core/analysis/file-analysis-plan.js +1 -0
  17. package/dist/analysis-core/analysis/file-dependencies.js +1 -0
  18. package/dist/analysis-core/analysis/finding-activity-switch.js +1 -0
  19. package/dist/analysis-core/analysis/finding-identity.js +1 -0
  20. package/dist/analysis-core/analysis/finding-quality/policy.js +1 -0
  21. package/dist/analysis-core/analysis/folder-analysis-plan.js +1 -0
  22. package/dist/analysis-core/analysis/passes/full-file-passes.js +1 -0
  23. package/dist/analysis-core/analysis/project-architecture.js +1 -0
  24. package/dist/analysis-core/analysis/schemas.js +1 -1
  25. package/dist/analysis-core/chunks/2AASSZRO.js +35 -0
  26. package/dist/analysis-core/chunks/2YREYGOG.js +1 -0
  27. package/dist/analysis-core/chunks/33HRXJ5Q.js +1 -0
  28. package/dist/analysis-core/chunks/33IGHOYT.js +1 -0
  29. package/dist/analysis-core/chunks/4PT5C4IT.js +7 -0
  30. package/dist/analysis-core/chunks/4RXRAB5S.js +1 -0
  31. package/dist/analysis-core/chunks/4UDQBDDE.js +1 -0
  32. package/dist/analysis-core/chunks/{6RWEWBHK.js → 5B5UCWD3.js} +1 -1
  33. package/dist/analysis-core/chunks/6YCABS5T.js +1 -0
  34. package/dist/analysis-core/chunks/CQQ4TTXE.js +1 -0
  35. package/dist/analysis-core/chunks/CTLHKFPH.js +19 -0
  36. package/dist/analysis-core/chunks/F54DOWKN.js +6 -0
  37. package/dist/analysis-core/chunks/FRXOQ2M6.js +3 -0
  38. package/dist/analysis-core/chunks/HCPO6QPU.js +1 -0
  39. package/dist/analysis-core/chunks/HHFDNY6V.js +14 -0
  40. package/dist/analysis-core/chunks/{FBTOOUPL.js → HVQJKPQ4.js} +1 -1
  41. package/dist/analysis-core/chunks/INVTU73D.js +1 -0
  42. package/dist/analysis-core/chunks/JEWBPIQI.js +1 -0
  43. package/dist/analysis-core/chunks/JGK37AWN.js +1 -0
  44. package/dist/analysis-core/chunks/LFYTD7JF.js +1 -0
  45. package/dist/analysis-core/chunks/LMUXOKIM.js +1 -0
  46. package/dist/analysis-core/chunks/LOBIDUCA.js +1 -0
  47. package/dist/analysis-core/chunks/M5YWJY7P.js +1 -0
  48. package/dist/analysis-core/chunks/MGVIKA74.js +1 -0
  49. package/dist/analysis-core/chunks/MKYLK6DB.js +1 -0
  50. package/dist/analysis-core/chunks/MZOKZ3N6.js +1 -0
  51. package/dist/analysis-core/chunks/NXHVBJL4.js +1 -0
  52. package/dist/analysis-core/chunks/OKBK3JL3.js +1 -0
  53. package/dist/analysis-core/chunks/PBHHWFR6.js +1 -0
  54. package/dist/analysis-core/chunks/Q5WR6B2H.js +2 -0
  55. package/dist/analysis-core/chunks/QVXARKP7.js +1 -0
  56. package/dist/analysis-core/chunks/RQTNTIR4.js +1 -0
  57. package/dist/analysis-core/chunks/{RNTMH4MU.js → S27Y2TP5.js} +1 -1
  58. package/dist/analysis-core/chunks/SJESFYBA.js +10 -0
  59. package/dist/analysis-core/chunks/SP6XFHNH.js +1 -0
  60. package/dist/analysis-core/chunks/VDUFPTDD.js +1 -0
  61. package/dist/analysis-core/chunks/W24SFYZM.js +67 -0
  62. package/dist/analysis-core/chunks/YTHF2E2S.js +1 -0
  63. package/dist/analysis-core/chunks/YWL52FVW.js +2 -0
  64. package/dist/analysis-core/contracts/analysis-selection.js +1 -1
  65. package/dist/analysis-core/contracts/analysis-size.js +1 -0
  66. package/dist/analysis-core/contracts/execution-request.js +1 -0
  67. package/dist/analysis-core/contracts/intake-finding.js +1 -0
  68. package/dist/analysis-core/contracts/model-call-identity.js +1 -0
  69. package/dist/analysis-core/contracts/relay-analysis.js +1 -1
  70. package/dist/analysis-core/contracts/requests.js +1 -1
  71. package/dist/analysis-core/conventions/analysis-fit.js +1 -1
  72. package/dist/analysis-core/conventions/file-admission.js +1 -1
  73. package/dist/analysis-core/conventions/read-limits.js +1 -0
  74. package/dist/analysis-core/import/calls/modules.js +1 -1
  75. package/dist/analysis-core/import/entry-selection.js +1 -0
  76. package/dist/analysis-core/import/outside-loader-sources.js +1 -1
  77. package/dist/analysis-core/index.js +3 -3
  78. package/dist/analysis-core/requests/answer-formats.js +1 -1
  79. package/dist/analysis-core/requests/local-plan.js +1 -1
  80. package/dist/analysis-core/requests/planned-limits.js +1 -0
  81. package/dist/analysis-core/requests/registry.js +1 -1
  82. package/dist/analysis-core/requests/template-version.js +1 -1
  83. package/dist/analysis-core/requests/tools.js +1 -1
  84. package/dist/analysis-core/settings.js +1 -1
  85. package/dist/analysis-core/stages/engine-entry.js +1 -1
  86. package/dist/bundle/seal/engine.js +1 -1
  87. package/dist/cli/analysis-selection.js +47 -5
  88. package/dist/cli/api.js +1 -1
  89. package/dist/cli/commands/analyze.js +58 -15
  90. package/dist/cli/commands/skipped.js +65 -0
  91. package/dist/cli/context.js +2 -1
  92. package/dist/cli/finding-display.js +102 -7
  93. package/dist/cli/finding-settings.js +3 -1
  94. package/dist/cli/intake-payload.js +26 -2
  95. package/dist/cli/main.js +21 -7
  96. package/dist/cli/mcp-failure.js +6 -5
  97. package/dist/cli/mcp.js +134 -28
  98. package/dist/cli/relay-check.js +107 -23
  99. package/dist/cli/relay-failure.js +4 -4
  100. package/dist/cli/relay-preparation.js +50 -12
  101. package/dist/cli/result-check.js +31 -12
  102. package/dist/cli/saved-results.js +10 -0
  103. package/dist/cli/scope-choices.js +3 -3
  104. package/dist/cli/sign-in.js +2 -2
  105. package/dist/cli/skipped-files.js +22 -0
  106. package/dist/cli/summary.js +15 -1
  107. package/dist/contract/agent-choice.js +25 -2
  108. package/dist/contract/cli-api-messages.js +3 -0
  109. package/dist/contract/cli-refusals.js +31 -5
  110. package/dist/contract/cli-version.js +1 -1
  111. package/dist/contract/console-url.js +3 -0
  112. package/dist/contract/console.js +17 -38
  113. package/dist/contract/engine.js +1 -1
  114. package/dist/contract/messages.js +4 -3
  115. package/dist/contract/project-architecture.js +1 -0
  116. package/dist/contract/scope-choice.js +31 -11
  117. package/dist/contract/selection-offer.js +5 -8
  118. package/dist/gatekeeper/cli-api.js +70 -4
  119. package/dist/gatekeeper/console.js +19 -3
  120. package/dist/gatekeeper/model.js +5 -23
  121. package/dist/gatekeeper/trust/policy.js +2 -1
  122. package/package.json +4 -2
  123. package/dist/analysis-core/analysis/source-notes/types.js +0 -1
  124. package/dist/analysis-core/chunks/2PSNOSJ2.js +0 -1
  125. package/dist/analysis-core/chunks/2PZF54KH.js +0 -10
  126. package/dist/analysis-core/chunks/6B2HILSY.js +0 -1
  127. package/dist/analysis-core/chunks/6U2IR4XB.js +0 -1
  128. package/dist/analysis-core/chunks/7NEWZ74F.js +0 -1
  129. package/dist/analysis-core/chunks/CGCJN73D.js +0 -14
  130. package/dist/analysis-core/chunks/CWYVUGG4.js +0 -1
  131. package/dist/analysis-core/chunks/FSLWD2PE.js +0 -1
  132. package/dist/analysis-core/chunks/GOQVKWP3.js +0 -32
  133. package/dist/analysis-core/chunks/IHAVDX4L.js +0 -66
  134. package/dist/analysis-core/chunks/IVULXWQN.js +0 -21
  135. package/dist/analysis-core/chunks/K2GNDX3W.js +0 -1
  136. package/dist/analysis-core/chunks/K5FUABWW.js +0 -1
  137. package/dist/analysis-core/chunks/KGQYR62R.js +0 -7
  138. package/dist/analysis-core/chunks/KWECQJ6X.js +0 -1
  139. package/dist/analysis-core/chunks/PY5M22CL.js +0 -1
  140. package/dist/analysis-core/chunks/PYKAERZZ.js +0 -1
  141. package/dist/analysis-core/chunks/SKVEBOGA.js +0 -1
  142. package/dist/analysis-core/chunks/SLJ6CW7W.js +0 -1
  143. package/dist/analysis-core/chunks/UEORNVQB.js +0 -1
  144. package/dist/analysis-core/chunks/WYLIV2P2.js +0 -1
  145. package/dist/analysis-core/data/finding-types.js +0 -1
@@ -0,0 +1 @@
1
+ import{h as t}from"./LMUXOKIM.js";function E(e){return e.CF_FILE_SCOPE==="1"&&e.CF_LOCAL_IMPORT_RESOLUTION!=="0"}function F(e){return E(e)&&e.CF_SCOPE_CHOICES!=="0"&&e.CF_MULTI_ENTRY!=="0"}function u(e){return e.CF_FINDING_HEADLINES==="1"}function i(e){return e.CF_RESULT_SAFETY_CHECK==="1"}function S(e){return e.CF_IMPORT_OUTSIDE_LOADERS==="1"}function f(e){return e.CF_PROMPT_AGREE==="1"}function I(e){return t(e,"saved")}function C(e){return e.CF_SKIPPED_FILES!=="0"}function l(e){return e.CF_FOLDER_PARTS==="1"&&C(e)}function L(e,r){let _=Object.fromEntries(Object.entries(t(r,"request")).filter(([n])=>/^(?:CF_FINDING_|CF_READING_|CF_RECALL_|CF_MULTI_PASS$|CF_SPLIT_CHECK$|CF_SOURCE_NOTES$|CF_PARALLEL_|CF_PASS_CONCURRENCY$|CF_PROMPT_AGREE$)/.test(n)&&n!=="CF_FINDING_AUDIENCE"));return Object.freeze({...e,..._,CF_PART_FILES:void 0})}export{E as a,F as b,u as c,i as d,S as e,f,I as g,C as h,l as i,L as j};
@@ -0,0 +1,2 @@
1
+ import{b as L}from"./SJESFYBA.js";function C(e,o,i){let t=L(o,i).filter(n=>n.kind!=="comment");return{path:e,text:o,lang:i,toks:t}}function u(e,o){return e?.kind==="punct"&&e.text===o}function f(e,o){return e?.kind==="ident"&&(o===void 0||e.text===o)}function w(e){return e?.kind==="string"||e?.kind==="template"}function Nt(e){let o=/^[A-Za-z]*/.exec(e.text)[0],i=e.text.slice(o.length),t=i[0]??"",n=i.startsWith(t.repeat(3))&&i.length>=6?3:1,s=i.length>=2*n&&i.endsWith(t.repeat(n));if(s){let l=0;for(let r=i.length-n-1;r>=0&&i[r]==="\\";r--)l++;s=l%2===0}return{prefix:o,width:n,inner:i.slice(n,s?i.length-n:void 0),closed:s}}function A(e,o){return u(e[o],"=")&&!u(e[o+1],"=")&&!u(e[o+1],">")}var _=["function","def","class"],M=12;function k(e,o){return o===0||e[o].line>e[o-1].endLine}function j(e,o){return o.start-(e.lastIndexOf(`
2
+ `,o.start-1)+1)}function x(e,o){let i=0;for(let t=o;t<e.length;t++)if(e[t].kind==="punct"){if("([{".includes(e[t].text))i++;else if(")]}".includes(e[t].text)&&--i===0)return t}return e.length}function W(e,o){let i=x(e,o),t=[],n=o+1,s=0;for(let l=o+1;l<i;l++){let r=e[l];r.kind==="punct"&&"([{".includes(r.text)?s++:r.kind==="punct"&&")]}".includes(r.text)?s--:s===0&&u(r,",")&&(t.push({from:n,to:l}),n=l+1)}return n<i&&t.push({from:n,to:i}),t}function v(e,o,i){let t=x(e,o),n=[],s=o+1,l=0,r=!1,c=0;for(let a=o+1;a<t;a++){let g=e[a];if(g.kind==="punct")if("([{".includes(g.text))l++;else if(")]}".includes(g.text))l--;else{if(l!==0)continue;g.text===","&&c===0?(n.push({from:s,to:a}),s=a+1,r=!1):g.text===":"&&!r?r=!0:r&&(i==="js"&&g.text==="<"?c++:i==="js"&&g.text===">"&&c>0&&!u(e[a-1],"=")?c--:c===0&&A(e,a)&&(r=!1))}}return s<t&&n.push({from:s,to:t}),n}var G=100;function Tt(e){return e.replace(/\s+/g," ").trim().slice(0,G)}function B(e,o={}){return e.lang==="py"?it(e,o.namespaceBindings===!0,o.bindingPositions===!0):Q(e,o.bindingPositions===!0,o.completeImports===!0)}var Y=new Set(["@anthropic-ai/sdk","anthropic","openai","ai","@anthropic-ai/claude-agent-sdk","claude_agent_sdk","@openai/agents"]);function Dt(e,o,i={},t){let n=o==="py"?e.split(".")[0]:e.startsWith("@")?e.split("/").slice(0,2).join("/"):e.split("/")[0];return n==="@openai/agents"?i.layouts===!0:o==="py"&&n==="agents"?i.layouts===!0&&(i.openaiAgents===!0||!!t&&Z(t)):Y.has(n)||n.startsWith("@ai-sdk/")||n.startsWith("@langchain/")||n.startsWith("langchain")}function Z({toks:e}){let o=(i,t=!1)=>e.some((n,s)=>f(n,i)&&!_.includes(e[s-1]?.text??"")&&(u(e[s+1],"(")||t&&u(e[s+1],".")));return o("Agent")&&o("Runner",!0)}var J=[".","/","@/","~/"];function Lt(e,o){return e.filter(i=>o==="py"||J.some(t=>i.source.startsWith(t))).flatMap(i=>i.names.map(t=>({name:t,imported:i.renamed?.[t]??t,source:i.source,line:i.line})))}function Q(e,o,i){let{toks:t}=e,n=[];for(let s=0;s<t.length;s++)if(f(t[s],"import")&&!u(t[s-1],".")){let l=u(t[s+1],"(")?U(e,s+1):tt(e,s,i);l&&n.push({...l,...o?{bindingAt:s}:{}})}else f(t[s],"require")&&u(t[s+1],"(")&&w(t[s+2])&&u(t[s+3],")")&&n.push({source:t[s+2].value,line:t[s].line,...nt(e,s),...o?{bindingAt:s}:{}});return n}function U(e,o){let i=e.toks[o+1];return w(i)&&u(e.toks[o+2],")")?{source:i.value,line:i.line,names:[]}:null}var V=80;function tt(e,o,i){let{toks:t}=e,n=i?t.length:Math.min(t.length,o+V);for(let s=o+1;s<n;s++){let l=t[s];if(w(l))return s!==o+1&&!f(t[s-1],"from")?null:{source:l.value,line:t[o].line,...et(e,o+1,s)};if(u(l,";")||f(l,"import"))return null}return null}function et(e,o,i){let{toks:t}=e,n=[],s={},l=f(t[o],"type")&&F(t[o+1])?o+1:o,r=f(t[l])?t[l].text:void 0;for(let c=o;c<i;c++){let a=t[c];if(!(!f(a)||a.text==="from"))if(a.text==="as")f(t[c+1])&&(n.push(t[++c].text),f(t[c-2])&&(s[t[c].text]=t[c-2].text));else{if(f(t[c+1],"as"))continue;(a.text!=="type"||!F(t[c+1]))&&n.push(a.text)}}return{names:n,renamed:s,...r?{defaultName:r}:{}}}function F(e){return u(e,"{")||f(e)&&e?.text!=="from"}function nt(e,o){let{toks:i}=e,t={names:[],renamed:{}};if(!u(i[o-1],"="))return t;if(f(i[o-2]))return{names:[i[o-2].text],renamed:{}};if(!u(i[o-2],"}"))return t;let n=o-2;for(;n>0&&!u(i[n],"{");)n--;let s=[],l={};for(let r=n+1;r<o-2;r++)!f(i[r])||u(i[r+1],":")||(s.push(i[r].text),u(i[r-1],":")&&f(i[r-2])&&(l[i[r].text]=i[r-2].text));return{names:s,renamed:l}}function it(e,o,i){let{toks:t}=e,n=[];for(let s=0;s<t.length;s++)if(k(t,s)){if(f(t[s],"import"))n.push(...ot(e,s+1,o).map(l=>({...l,...i?{bindingAt:s}:{}})));else if(f(t[s],"from")){let l=K(e,s+1);l.next>s+1&&f(e.toks[l.next],"import")&&n.push({source:l.text,line:t[s].line,...st(e,l.next+1),...i?{bindingAt:s}:{}})}}return n}function K(e,o){let{toks:i}=e,t=o,n=!1;for(;;){if(u(i[t],"."))n=!1;else if(f(i[t])&&!n&&i[t].text!=="import")n=!0;else break;t++}return{text:i.slice(o,t).map(s=>s.text).join(""),next:t}}function ot(e,o,i){let{toks:t}=e,n=[],s=o;for(;;){let l=K(e,s);if(l.next===s)break;let r=f(t[l.next],"as")?t[l.next+1]?.text:void 0,c=r??l.text.split(".")[0];if(n.push({source:l.text,line:t[o].line,names:i?[c]:[],...i?{namespaceNames:[c],...r?{renamed:{[r]:l.text}}:{}}:{}}),s=l.next,f(t[s],"as")&&(s+=2),!u(t[s],","))break;s++}return n}function st(e,o){let{toks:i}=e,t=u(i[o],"("),n=t?x(i,o):i.length,s=[],l={};for(let r=t?o+1:o;r<n&&!(!t&&(k(i,r)||u(i[r],";")));r++)f(i[r])&&(f(i[r+1],"as")&&f(i[r+2])?(s.push(i[r+2].text),l[i[r+2].text]=i[r].text,r+=2):s.push(i[r].text));return{names:s,renamed:l}}var rt=new Set(["string","unknown","any","object","never","boolean","number","undefined","null","void"]),lt=new Set(["if","for","while","switch","catch","with"]),ut=24;function Wt(e){return rt.has(e)}function O(e,o){let i=0;for(let t=o-1;t>=0;t--){let n=e.toks[t];if(n.kind==="punct"){if(")]}".includes(n.text))i++;else if("([{".includes(n.text)&&i--===0)return t}}return-1}function T(e,o){let{toks:i}=e;if(!u(i[o],"("))return!1;let t=i[o-1];if(t&&f(t)&&lt.has(t.text))return!1;let n=x(i,o),s=i[n+1];return u(s,"{")||u(s,"=")&&u(i[n+2],">")?!0:u(s,":")&&f(i[o-2],"function")}function q(e,o){let{toks:i}=e;if(!u(i[o],"{"))return!1;for(let n=o-1;n>=0&&n>=o-ut;n--){let s=i[n];if(u(s,";")||u(s,"{")||u(s,"}"))break;if(f(s,"interface")||f(s,"type")&&f(i[n+1])&&(u(i[n+2],"=")||u(i[n+2],"<")))return!0}if(!u(i[o-1],":"))return!1;let t=O(e,o);return t>=0&&(q(e,t)||T(e,t))}function vt(e,o){let i=O(e,o);if(i<0)return!1;if(T(e,i)||q(e,i))return!0;let t=u(e.toks[i],"{")?O(e,i):-1;return t>=0&&T(e,t)}var ft=new Set(["if","for","while","switch","catch","return","function","def","class","elif","with","await","typeof"]),E={js:new Set(["if","for","while","switch","catch","with"]),py:new Set(["if","elif","for","while","with","except"])},ct={js:new Set([...E.js,"return","yield","throw","await","typeof","void","delete","new","in","instanceof","case","else","do","default","extends"]),py:new Set([...E.py,"return","yield","await","not","and","or","is","in","assert","raise","else","lambda","del"])};function X(e,o,i){if(!i)return f(e[o])&&!ft.has(e[o].text)&&u(e[o+1],"(");let t=o+1;if(!u(e[t],"("))return!1;let n=o,s=i.lang==="py"&&u(e[n],"\\");if(s&&n--,i.lang==="py"&&e[n]?.endLine<e[t].line&&!s&&O(i,t)<0)return!1;if(i.lang==="js"&&u(e[n],".")&&u(e[n-1],"?")&&(n-=2),i.lang==="js"&&u(e[n],">")){if(!/\.[cm]?tsx?$/.test(i.path))return!1;let l=0;do{if(u(e[n],";")||u(e[n],"="))return!1;u(e[n],">")?l++:u(e[n],"<")&&l--,n--}while(n>=0&&l>0);if(l!==0)return!1}for(;u(e[n],"]");)n=O(i,n)-1;if(u(e[n],")")){let l=e[O(i,n)-1];return!f(l)||!E[i.lang].has(l.text)}return!f(e[n])||_.some(l=>f(e[n-1],l))||i.lang==="py"&&["match","case"].includes(e[n].text)&&k(e,n)&&u(e[x(e,t)+1],":")?!1:u(e[n-1],".")||!ct[i.lang].has(e[n].text)}function H(e,o={}){let i=e.lang==="py"?wt(e,!!o.includeMembers,!!o.promptFunctions):mt(e,!!o.includeMembers,!!o.typedReturns,!!o.declarationPositions);if(!o.includeMembers)return i;for(let t=0;t<e.toks.length;t++){if(!u(e.toks[t],"["))continue;let n=e.toks[t-1];if(t===0||f(n,"return")||n?.kind==="punct"&&"=:(,[>".includes(n.text))for(let[l,r]of W(e.toks,t).entries())i.push({name:`[${l}]`,line:e.toks[r.from].line,from:r.from-1,to:r.to,params:null,kind:"index"})}return i.map(t=>({...t,kind:t.kind??(t.params===null?"value":"function")}))}function $t(e,o){return P(e,o).at(-1)?.name??null}function P(e,o){return e.filter(i=>i.from<o&&o<i.to).sort((i,t)=>i.from-t.from)}var at="=+-*/,([{:?.&|<>!%",pt=".+-*/?:,|&)]}";function I(e,o,i){let{toks:t}=e,n=0;for(let s=o;s<t.length;s++){i?.(1);let l=t[s];if(l.kind==="punct"&&"([{".includes(l.text))n++;else{if(l.kind==="punct"&&")]}".includes(l.text)&&--n<0)return s;if(n===0&&u(l,";")&&e.lang==="js")return s+1}if(n===0&&s>o&&k(t,s)&&dt(e,s))return s}return t.length}function dt(e,o){if(e.lang==="py")return!0;let i=e.toks[o-1],t=e.toks[o],n=i.kind==="punct"&&at.includes(i.text),s=t.kind==="punct"&&pt.includes(t.text);return!n&&!s}function b(e,o,i){let{toks:t}=e,n=[];for(let{from:s,to:l}of v(t,o,i)){let r=s;for(;r<l&&t[r].kind==="punct"&&(t[r].text==="*"||t[r].text===".");)r++;l-s===1&&t[s].kind==="punct"&&["*","/"].includes(t[s].text)||n.push(r<l&&f(t[r])?t[r].text:null)}return i==="py"&&(n[0]==="self"||n[0]==="cls")&&n.shift(),n}function mt(e,o,i,t){let{toks:n}=e,s=[],l=0;for(let r=0;r<n.length;r++){let c=n[r];if(u(c,"{"))l++;else if(u(c,"}"))l--;else if(f(c,"function")&&!u(n[r-1],".")){let a=kt(e,r,i);a&&s.push(a)}else if(["const","let","var"].includes(c.text)&&c.kind==="ident"&&f(n[r+1])){let a=Ot(e,r,l===0||o);a&&s.push(a)}else if(o&&f(c,"class")&&f(n[r+1])){let a=n.findIndex((g,y)=>y>r+1&&u(g,"{"));a>=0&&s.push({name:n[r+1].text,line:c.line,from:r,to:x(n,a)+1,params:null,kind:"class"})}else if(o&&f(c)){let a=gt(e,r,s,t);a&&s.push(a)}}return s}var ht=["public","private","protected","static","readonly","async","get","set"],xt=["if","for","while","switch","catch","with"];function gt(e,o,i,t){let{toks:n}=e,s=o;for(u(n[s-1],".")&&f(n[s-2],"this")&&(s-=2);f(n[s-1])&&ht.includes(n[s-1].text);)s--;let l=["{","}",",",";"].some(m=>u(n[s-1],m));if(!k(n,s)&&!l||xt.includes(n[o].text))return null;let r=o+1;if(u(n[r],"(")){let m=x(n,r)+1;if(u(n[m],":"))for(;m<n.length&&!u(n[m],"{")&&!u(n[m],";");)m++;if(!u(n[m],"{"))return null;if(t&&!l){let R=P(i,o).at(-1),h=O(e,o);if(R?.kind!=="class"||h<0||x(n,h)+1!==R.to)return null}return{name:n[o].text,line:n[o].line,from:o,to:x(n,m)+1,params:b(e,r,"js"),kind:"method"}}if(!A(n,r)&&!u(n[r],":"))return null;let a=P(i,o).at(-1)?.kind==="class"?$(e,r,I(e,r+1)):A(n,r)?r:null,g=a===null?r+1:a+1,y=I(e,g),d=0;for(let m=g;m<y;m++){if(u(n[m],",")&&d===0){y=m;break}n[m].kind==="punct"&&("([{".includes(n[m].text)?d++:")]}".includes(n[m].text)&&d--)}return{name:n[o].text,line:n[o].line,from:o,to:y,params:null,kind:a===null?"property":"value"}}function kt(e,o,i){let{toks:t}=e,n=o+1;if(u(t[n],"*")&&n++,!f(t[n]))return null;let s=t[n];if(n++,u(t[n],"<")&&(n=yt(e,n)),!u(t[n],"("))return null;let l=b(e,n,"js"),r=x(t,n)+1;i&&u(t[r],":")&&u(t[r+1],"{")&&(r=x(t,r+1)+1);for(let c=r;c<t.length&&!u(t[c],";");c++)if(u(t[c],"{"))return{name:s.text,line:t[o].line,from:o,to:x(t,c)+1,params:l};return null}function yt(e,o){let i=0;for(let t=o;t<e.toks.length;t++)if(u(e.toks[t],"<"))i++;else if(u(e.toks[t],">")&&--i===0)return t+1;return e.toks.length}function Ot(e,o,i){let{toks:t}=e,n=$(e,o+2);if(n===null)return null;let s=I(e,n+1),l=St(e,n+1,s);return!l&&!i?null:{name:t[o+1].text,line:t[o].line,from:o,to:s,params:l}}function $(e,o,i=e.toks.length){let t=o;if(u(e.toks[t],":")){let n=t+M;for(;t<n&&t<i&&!A(e.toks,t);)t++}return t<i&&A(e.toks,t)?t:null}function St(e,o,i){let{toks:t}=e,n=f(t[o],"async")?o+1:o;if(f(t[n],"function"))return n++,u(t[n],"*")&&n++,f(t[n])&&n++,u(t[n],"(")?b(e,n,"js"):null;let s=l=>u(t[l],"=")&&u(t[l+1],">");if(f(t[n])&&s(n+1))return[t[n].text];if(!u(t[n],"("))return null;for(let l=x(t,n)+1;l<i;l++)if(s(l))return b(e,n,"js");return null}function wt(e,o,i){let{toks:t,text:n}=e,s=[];for(let l=0;l<t.length;l++){let r=t[l],c=f(r,"def")&&f(t[l+1])&&u(t[l+2],"("),a=o&&f(r,"class")&&f(t[l+1]);if(c||a){let g=bt(e,c||u(t[l+2],"(")?x(t,l+2)+1:l+2),y=(o||i)&&f(t[l-1],"async")&&t[l-1].line===r.line?t[l-1]:r,d=j(n,y),m=g+1;for(;m<t.length&&!(k(t,m)&&j(n,t[m])<=d);)m++;s.push({name:t[l+1].text,line:r.line,from:l,to:m,params:c?b(e,l+2,"py"):null,...a?{kind:"class"}:{}})}else f(r)&&k(t,l)&&(o||j(n,r)===0)&&At(e,l+1)&&s.push({name:r.text,line:r.line,from:l,to:I(e,l+1),params:null})}return s}function At(e,o){let{toks:i}=e;return A(i,o)||u(i[o],":")}function bt(e,o){let i=o;for(;i<e.toks.length&&!u(e.toks[i],":");)i++;return i}var Rt=40,_t=new Set(["const","let","var","function","class","default","async","interface","enum"]);function jt(e,o){let{toks:i}=e,t=[];for(let n=0;n<i.length;n++){if(!f(i[n],"export"))continue;let s=0,l=o?i.length:Math.min(i.length,n+Rt);for(let r=n+1;r<l&&(u(i[r],"{")&&s++,u(i[r],"}")&&s--,!(u(i[r],";")||(!o||s===0)&&f(i[r])&&_t.has(i[r].text)));r++)if((!o||s===0)&&f(i[r],"from")&&w(i[r+1])){t.push(i[r+1].value);break}}return t}function Qt(e,o,i,t=!1){let n=typeof t=="boolean"?t:t.allReexports===!0,s=typeof t=="object"&&t.completeImports===!0,l=C(e,o,i),r=B(l,{bindingPositions:s,namespaceBindings:s,completeImports:s});if(i==="py"){if(!s)return r;let d=r.flatMap(p=>p.namespaceNames?[{...p,names:[]}]:p.names.length?p.names.map(S=>({...p,names:[p.renamed?.[S]??S]})):[p]),m=new Set(["importlib",...r.filter(p=>p.source==="importlib").flatMap(p=>p.namespaceNames??[])]),R=new Set(r.filter(p=>p.source==="importlib"&&!p.namespaceNames).flatMap(p=>p.names.filter(S=>(p.renamed?.[S]??S)==="import_module"))),{toks:h}=l;for(let p=0;p<h.length;p++){let S=f(h[p],"__import__")&&!u(h[p-1],".")&&!f(h[p-1],"def"),z=f(h[p],"import_module")&&u(h[p-1],".")&&f(h[p-2])&&m.has(h[p-2].text)&&!u(h[p-3],".")||f(h[p])&&R.has(h[p].text)&&!u(h[p-1],".")&&!f(h[p-1],"def");if(!S&&!z||!u(h[p+1],"("))continue;let N=h[p+2],D=N?.kind==="string"&&!/^f/i.test(N.text)&&u(h[p+3],")");d.push({source:D?N.value:"?",names:[],line:h[p].line,bindingAt:p,...D?{}:{dynamic:!0}})}return d}let c=[],{toks:a}=l,g=new Set(s?H(l,{includeMembers:!0,typedReturns:!0,declarationPositions:!0}).filter(d=>d.kind==="method").map(d=>d.from):[]);if(s)for(let d=0;d<a.length;d++){if(!f(a[d],"import")&&!f(a[d],"require")||u(a[d-1],".")||!X(a,d,l)||g.has(d))continue;let m=a[d+2];(!w(m)||!u(a[d+3],")")||m.kind==="template"&&m.value.includes("${"))&&c.push({source:"?",names:[],line:a[d].line,bindingAt:d,dynamic:!0})}let y=new Set(c.map(d=>d.bindingAt));return[...r.filter(d=>!y.has(d.bindingAt)),...jt(l,n).map(d=>({source:d,names:[]})),...c]}export{C as a,u as b,f as c,w as d,Nt as e,A as f,_ as g,M as h,k as i,j,x as k,W as l,v as m,Tt as n,B as o,Dt as p,Lt as q,Wt as r,O as s,vt as t,X as u,H as v,$t as w,I as x,Qt as y};
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g}from"../chunks/PY5M22CL.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";export{a as ANALYSIS_SELECTION_LIMITS,b as analysisScopeSchema,c as analysisSelectionRequestSchema,g as analysisSelectionResultSchema,f as provenScopeChoiceSchema,e as selectionCompletenessSchema,d as selectionFileSchema};
1
+ import{a,b,c,d,e,f,g,h,i,j,k}from"../chunks/SP6XFHNH.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";export{a as ANALYSIS_SELECTION_LIMITS,b as MAX_ANALYSIS_ENTRIES,c as analysisScopeSchema,d as analysisSelectionFileTransportRequestSchema,f as analysisSelectionRequestSchema,k as analysisSelectionResultSchema,e as analysisSelectionTransportRequestSchema,j as analysisSelectionTransportResultSchema,i as provenScopeChoiceSchema,h as selectionCompletenessSchema,g as selectionFileSchema};
@@ -0,0 +1 @@
1
+ import{a}from"../chunks/PBHHWFR6.js";export{a as parseAnalysisSize};
@@ -0,0 +1 @@
1
+ import{a,b,c,d}from"../chunks/RQTNTIR4.js";import"../chunks/LMUXOKIM.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";export{a as executionInputs,d as executionRequest,b as modelName,c as requestLimits};
@@ -0,0 +1 @@
1
+ import{h as a,i as b,j as c,k as d,l as e,m as f,n as g,o as h,p as i,q as j,r as k,s as l}from"../chunks/MGVIKA74.js";export{g as RESULT_CHECK_FREE_TEXT_BYTES,f as RESULT_CHECK_LIMITS,a as findingKind,b as findingSeverity,d as fixDelta,j as intakeFinding,i as nonblankText,e as publicFinding,k as resultCheckFinding,l as resultCheckFindings,h as validIntakeText,c as wording};
@@ -0,0 +1 @@
1
+ import{createHash as h}from"node:crypto";function m({mintId:u}){let l=new Map,s=new WeakMap,a=new Map,c=0;return{resolve({snapshot:g,originalKey:t,retry:n}){let r=h("sha256").update(JSON.stringify(g)).digest("hex"),e=typeof t=="string"?a.get(t):void 0,o=l.get(r);if(n>0){if(typeof t=="string"){if(!e||e.fingerprint!==r||n<e.retry)throw new Error("Ambiguous relay call identity");return e.retry=n,e.identity}let f=s.get(t),d=f?[...f].filter(w=>o?.has(w)):[...o??[]];if(d.length!==1)throw new Error("Ambiguous relay call identity");return d[0]}if(e)throw new Error("Ambiguous relay call identity");if(c>=4096)throw new Error("Relay call limit reached");let i=u();return c++,typeof t=="string"?a.set(t,{identity:i,fingerprint:r,retry:n}):(l.set(r,new Set([...o??[],i])),s.set(t,new Set([...s.get(t)??[],i]))),i}}}export{m as createModelCallIdentities};
@@ -1 +1 @@
1
- import{A,B,C,D,E,F,G,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../chunks/WYLIV2P2.js";export{u as ANALYSIS_DATA_FRAME_BYTES,g as ANALYSIS_PROTOCOL,i as ANALYSIS_SETTING_NAMES,n as RESULT_CHECK_FREE_TEXT_BYTES,m as RESULT_CHECK_LIMITS,B as analysisAdvance,F as analysisCallFailure,s as analysisCallFailureCode,y as analysisCancel,h as analysisCapabilities,t as analysisFailure,r as analysisFailureCode,v as analysisFile,C as analysisFinalResult,w as analysisManifest,z as analysisNeedFiles,A as analysisNeedListing,D as analysisResult,E as analysisResultChunk,l as analysisSettings,x as analysisStart,j as filterAnalysisSettings,d as projectPublicFinding,e as projectPublicReport,a as publicFinding,c as publicReportSchema,b as publicStructure,G as relayAnalysisSchemas,k as requestAnalysisSettings,p as resultCheckFinding,q as resultCheckFindings,f as unredactedAnswer,o as validIntakeText};
1
+ import{A as I,B as J,a as i,b as j,c as k,d as l,e as m,f as n,g as o,h as p,i as q,j as r,k as s,l as t,m as u,n as v,o as w,p as x,q as y,r as z,s as A,t as B,u as C,v as D,w as E,x as F,y as G,z as H}from"../chunks/LMUXOKIM.js";import{e as g,h}from"../chunks/LFYTD7JF.js";import{l as a,m as b,n as c,o as d,r as e,s as f}from"../chunks/MGVIKA74.js";export{v as ANALYSIS_DATA_FRAME_BYTES,l as ANALYSIS_PROTOCOL,o as ANALYSIS_SETTING_NAMES,n as DECLARED_ANALYSIS_PROTOCOL,c as RESULT_CHECK_FREE_TEXT_BYTES,b as RESULT_CHECK_LIMITS,C as analysisAdvance,G as analysisCallFailure,t as analysisCallFailureCode,z as analysisCancel,m as analysisCapabilities,u as analysisFailure,s as analysisFailureCode,w as analysisFile,D as analysisFinalResult,x as analysisManifest,A as analysisNeedFiles,B as analysisNeedListing,E as analysisResult,F as analysisResultChunk,r as analysisSettings,y as analysisStart,p as filterAnalysisSettings,i as projectPublicFinding,j as projectPublicReport,a as publicFinding,h as publicReportSchema,g as publicStructure,H as relayAnalysisSchemas,J as relayAnalysisV2Schemas,q as requestAnalysisSettings,e as resultCheckFinding,f as resultCheckFindings,I as resultLimitsSchema,k as unredactedAnswer,d as validIntakeText};
@@ -1 +1 @@
1
- import{a as c,b as d,c as e,d as f,e as g,f as h,g as i,h as j,i as k}from"../chunks/SLJ6CW7W.js";import"../chunks/6U2IR4XB.js";import"../chunks/MJGB25S5.js";import{i as a,j as b}from"../chunks/WYLIV2P2.js";import"../chunks/6B2HILSY.js";import"../chunks/JKWTHRUR.js";import"../chunks/SKVEBOGA.js";import"../chunks/3GUKUEEJ.js";import"../chunks/A7WJJMRY.js";import"../chunks/KWECQJ6X.js";import"../chunks/FSLWD2PE.js";export{a as ANALYSIS_SETTING_NAMES,g as analysisExecutionRequest,c as executionInputs,f as executionRequest,b as filterAnalysisSettings,d as modelName,k as recoverRequestFailure,e as requestLimits,h as requestPolicy,i as selectAnalysisTemplate,j as selectAnswerFormat};
1
+ import{a as g,b as h,c as i,d as j,e as k}from"../chunks/JEWBPIQI.js";import"../chunks/NXHVBJL4.js";import"../chunks/MJGB25S5.js";import{a as c,b as d,c as e,d as f}from"../chunks/RQTNTIR4.js";import{g as a,h as b}from"../chunks/LMUXOKIM.js";import"../chunks/QVXARKP7.js";import"../chunks/OKBK3JL3.js";import"../chunks/JKWTHRUR.js";import"../chunks/3GUKUEEJ.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";import"../chunks/INVTU73D.js";import"../chunks/A7WJJMRY.js";import"../chunks/VDUFPTDD.js";export{a as ANALYSIS_SETTING_NAMES,g as analysisExecutionRequest,c as executionInputs,f as executionRequest,b as filterAnalysisSettings,d as modelName,k as recoverRequestFailure,e as requestLimits,h as requestPolicy,i as selectAnalysisTemplate,j as selectAnswerFormat};
@@ -1 +1 @@
1
- import{a,b,c,d}from"../chunks/7NEWZ74F.js";import"../chunks/KGQYR62R.js";import"../chunks/GOQVKWP3.js";import"../chunks/74FPPPIG.js";import"../chunks/5TATKWLG.js";import"../chunks/2PZF54KH.js";import"../chunks/6B2HILSY.js";import"../chunks/JKWTHRUR.js";import"../chunks/SKVEBOGA.js";import"../chunks/3GUKUEEJ.js";import"../chunks/724WZMYW.js";import"../chunks/A7WJJMRY.js";import"../chunks/FSLWD2PE.js";import"../chunks/YUY436SM.js";import"../chunks/C6X5GDG4.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";export{a as analysisSizeLimits,c as assessAnalysisSize,d as measureAnalysisSize,b as parseAnalysisSize};
1
+ import{a as b,b as c,c as d,d as e}from"../chunks/JGK37AWN.js";import{a}from"../chunks/PBHHWFR6.js";import"../chunks/4PT5C4IT.js";import"../chunks/2AASSZRO.js";import"../chunks/74FPPPIG.js";import"../chunks/MKYLK6DB.js";import"../chunks/5TATKWLG.js";import"../chunks/OKBK3JL3.js";import"../chunks/JKWTHRUR.js";import"../chunks/3GUKUEEJ.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";import"../chunks/YUY436SM.js";import"../chunks/C6X5GDG4.js";import"../chunks/724WZMYW.js";import"../chunks/YWL52FVW.js";import"../chunks/SJESFYBA.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";import"../chunks/INVTU73D.js";import"../chunks/A7WJJMRY.js";import"../chunks/Q5WR6B2H.js";import"../chunks/VDUFPTDD.js";export{b as analysisSizeLimits,c as assessAnalysisSize,d as measureAnalysisSize,e as measureAnalysisSizeLowerBound,a as parseAnalysisSize};
@@ -1 +1 @@
1
- import{$ as h,aa as i,ba as j,ca as k,da as l,ea as m,fa as n,ga as o,ha as p,ia as q,ja as r,ka as s,la as t,ma as u,na as v,oa as w,pa as x,qa as y,ra as z,sa as A,ta as B,ua as C,va as D}from"../chunks/GOQVKWP3.js";import"../chunks/74FPPPIG.js";import"../chunks/5TATKWLG.js";import"../chunks/2PZF54KH.js";import"../chunks/6B2HILSY.js";import"../chunks/JKWTHRUR.js";import"../chunks/SKVEBOGA.js";import"../chunks/3GUKUEEJ.js";import"../chunks/724WZMYW.js";import"../chunks/A7WJJMRY.js";import"../chunks/FSLWD2PE.js";import{a,b,c,d,e,f,h as g}from"../chunks/YUY436SM.js";import"../chunks/C6X5GDG4.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";export{v as CODE_EXT_RE,s as DEPENDENCY_BUILD_FOLDER_RE,p as EXTRACTION_CANDIDATE_RE,q as EXTRACTION_EXT_RE,i as FileReadRefusal,x as GIT_DIR_RE,r as LOCK_FILE_RE,w as NON_SOURCE_FOLDER_RE,j as REFERENCE_FILE_EXTENSIONS,c as SECRET_FILE_RE,z as SOURCE_CUT_MARKER,u as SOURCE_EXCLUDE_RE,t as SOURCE_NON_LOCK_EXCLUDE_RE,y as admitFile,C as admittedFileAccess,D as assertSnapshotAdmission,h as discoveredFilePurpose,f as fileRefusalWarning,l as isFetchableReferencePath,m as isFetchableSourcePath,k as isHtmlReferencePath,o as isReadableLocalPath,d as isReadableRepoPath,n as isUnreadCommandPath,b as localSymlinkGuardEnabled,B as readAdmittedSource,A as readRepoFile,g as resolveLocalExclusions,a as respectGitignore,e as secretFileWarning};
1
+ import{Ab as t,Bb as u,Cb as v,Db as w,Eb as x,Fb as y,Gb as z,Hb as A,Ib as B,Jb as C,Kb as D,Lb as E,ob as h,pb as i,qb as j,rb as k,sb as l,tb as m,ub as n,vb as o,wb as p,xb as q,yb as r,zb as s}from"../chunks/2AASSZRO.js";import"../chunks/74FPPPIG.js";import"../chunks/MKYLK6DB.js";import"../chunks/5TATKWLG.js";import"../chunks/OKBK3JL3.js";import"../chunks/JKWTHRUR.js";import"../chunks/3GUKUEEJ.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";import{a,b,c,d,e,f,h as g}from"../chunks/YUY436SM.js";import"../chunks/C6X5GDG4.js";import"../chunks/724WZMYW.js";import"../chunks/YWL52FVW.js";import"../chunks/SJESFYBA.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";import"../chunks/INVTU73D.js";import"../chunks/A7WJJMRY.js";import"../chunks/Q5WR6B2H.js";import"../chunks/VDUFPTDD.js";export{v as CODE_EXT_RE,s as DEPENDENCY_BUILD_FOLDER_RE,p as EXTRACTION_CANDIDATE_RE,q as EXTRACTION_EXT_RE,i as FileReadRefusal,x as GIT_DIR_RE,r as LOCK_FILE_RE,w as NON_SOURCE_FOLDER_RE,j as REFERENCE_FILE_EXTENSIONS,c as SECRET_FILE_RE,A as SOURCE_CUT_MARKER,u as SOURCE_EXCLUDE_RE,t as SOURCE_NON_LOCK_EXCLUDE_RE,y as admitFile,D as admittedFileAccess,E as assertSnapshotAdmission,h as discoveredFilePurpose,f as fileRefusalWarning,l as isFetchableReferencePath,m as isFetchableSourcePath,k as isHtmlReferencePath,o as isReadableLocalPath,d as isReadableRepoPath,n as isUnreadCommandPath,b as localSymlinkGuardEnabled,C as readAdmittedSource,B as readRepoFile,g as resolveLocalExclusions,a as respectGitignore,e as secretFileWarning,z as sourceAdmissionIsInventoryIndependent};
@@ -0,0 +1 @@
1
+ import{a}from"../chunks/MKYLK6DB.js";export{a as READ_LIMITS};
@@ -1 +1 @@
1
- import{c as a,d as b,e as c,f as d,g as e,h as f}from"../../chunks/2PZF54KH.js";import"../../chunks/RUVMFAST.js";import"../../chunks/S27VIQMZ.js";export{f as ModuleResolver,a as moduleResolutionLimits,b as pathMatchesSource,c as relativeImportCandidates,d as relativeImportPath,e as resolveImport};
1
+ import{c as a,d as b,e as c,f as d,g as e,h as f,i as g,j as h}from"../../chunks/SJESFYBA.js";import"../../chunks/RUVMFAST.js";import"../../chunks/S27VIQMZ.js";export{h as ModuleResolver,a as moduleResolutionLimits,b as pathMatchesSource,c as relativeImportCandidates,d as relativeImportPath,e as relativeImportPaths,f as repositoryImportPaths,g as resolveImport};
@@ -0,0 +1 @@
1
+ import{a as c,b as d,c as e}from"../chunks/CQQ4TTXE.js";import{A as a,B as b}from"../chunks/FRXOQ2M6.js";import"../chunks/326F4XNG.js";import"../chunks/SP6XFHNH.js";import"../chunks/HCPO6QPU.js";import"../chunks/YTHF2E2S.js";import"../chunks/4PT5C4IT.js";import"../chunks/LMUXOKIM.js";import"../chunks/2AASSZRO.js";import"../chunks/74FPPPIG.js";import"../chunks/MKYLK6DB.js";import"../chunks/5TATKWLG.js";import"../chunks/OKBK3JL3.js";import"../chunks/JKWTHRUR.js";import"../chunks/3GUKUEEJ.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";import"../chunks/YUY436SM.js";import"../chunks/C6X5GDG4.js";import"../chunks/724WZMYW.js";import"../chunks/YWL52FVW.js";import"../chunks/SJESFYBA.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";import"../chunks/INVTU73D.js";import"../chunks/A7WJJMRY.js";import"../chunks/Q5WR6B2H.js";import"../chunks/VDUFPTDD.js";export{d as advanceEntrySelection,c as createEntrySelectionCheckpoint,a as entryGroupChoice,b as findEntryScopeChoice,e as readEntrySelection};
@@ -1 +1 @@
1
- import{a as c}from"../chunks/FBTOOUPL.js";import"../chunks/IVULXWQN.js";import"../chunks/K5FUABWW.js";import"../chunks/326F4XNG.js";import"../chunks/WYLIV2P2.js";import"../chunks/KGQYR62R.js";import"../chunks/2PSNOSJ2.js";import{z as b}from"../chunks/GOQVKWP3.js";import"../chunks/74FPPPIG.js";import"../chunks/5TATKWLG.js";import"../chunks/2PZF54KH.js";import"../chunks/6B2HILSY.js";import"../chunks/JKWTHRUR.js";import"../chunks/SKVEBOGA.js";import"../chunks/3GUKUEEJ.js";import"../chunks/724WZMYW.js";import"../chunks/A7WJJMRY.js";import"../chunks/FSLWD2PE.js";import"../chunks/PY5M22CL.js";import"../chunks/YUY436SM.js";import{e as a}from"../chunks/C6X5GDG4.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";export{b as READ_LIMITS,c as readOutsideLoaderSources,a as repoPathFrom};
1
+ import{a as c}from"../chunks/HVQJKPQ4.js";import"../chunks/CTLHKFPH.js";import"../chunks/FRXOQ2M6.js";import"../chunks/326F4XNG.js";import"../chunks/SP6XFHNH.js";import"../chunks/HCPO6QPU.js";import"../chunks/33IGHOYT.js";import"../chunks/YTHF2E2S.js";import"../chunks/4PT5C4IT.js";import"../chunks/LMUXOKIM.js";import"../chunks/2AASSZRO.js";import"../chunks/74FPPPIG.js";import{a}from"../chunks/MKYLK6DB.js";import"../chunks/5TATKWLG.js";import"../chunks/OKBK3JL3.js";import"../chunks/JKWTHRUR.js";import"../chunks/3GUKUEEJ.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";import"../chunks/YUY436SM.js";import{e as b}from"../chunks/C6X5GDG4.js";import"../chunks/724WZMYW.js";import"../chunks/YWL52FVW.js";import"../chunks/SJESFYBA.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";import"../chunks/INVTU73D.js";import"../chunks/A7WJJMRY.js";import"../chunks/Q5WR6B2H.js";import"../chunks/VDUFPTDD.js";export{a as READ_LIMITS,c as readOutsideLoaderSources,b as repoPathFrom};
@@ -1,6 +1,6 @@
1
- import{a as bt,c as Q,d as Ct,e as _t}from"./chunks/CWYVUGG4.js";import{$ as Fe,I as vt,J as xt,K as Et,L as wt,M as At,N as Rt,O as we,P as Ae,Q as B,R as D,S as Re,T as Ce,U as q,W as ke,X as Oe,Y as V,Z as _e,_ as Ie,aa as Z,ba as kt,ca as Te,da as Le,ea as Me,fa as Ne,ga as je,ha as Pe,ja as Ot,qa as It,sa as Ft,ua as Tt,wa as Lt,ya as Mt}from"./chunks/IHAVDX4L.js";import"./chunks/N7U5N42V.js";import{a as W}from"./chunks/6RWEWBHK.js";import{a as ht,e as xe,l as yt,m as St}from"./chunks/CGCJN73D.js";import{a as Y}from"./chunks/QDYMR6KS.js";import"./chunks/Y7JGSUOA.js";import"./chunks/3MTXB4MK.js";import"./chunks/UEORNVQB.js";import{b as gt}from"./chunks/E7TFIHC5.js";import"./chunks/M6HYSTQD.js";import"./chunks/VGYWI4X2.js";import"./chunks/57M4OQJM.js";import"./chunks/J4AXGE5W.js";import{a as R,d as Ee}from"./chunks/4H23CSUM.js";import"./chunks/K2GNDX3W.js";import"./chunks/HTLIRVP7.js";import"./chunks/DZZBQDGO.js";import"./chunks/FBTOOUPL.js";import{D as ve,R as ut,g as be,r as dt,s as ft,t as mt,u as pt,v as X}from"./chunks/IVULXWQN.js";import{a as P,b as G,f as J}from"./chunks/K5FUABWW.js";import{a as _}from"./chunks/326F4XNG.js";import"./chunks/4F6ZIHXU.js";import"./chunks/SLJ6CW7W.js";import"./chunks/6U2IR4XB.js";import{c as A}from"./chunks/MJGB25S5.js";import"./chunks/WYLIV2P2.js";import{a as it,b as at,c as ct,d as lt}from"./chunks/7NEWZ74F.js";import{r as Se}from"./chunks/KGQYR62R.js";import"./chunks/IBCFGUHI.js";import{b as M}from"./chunks/2PSNOSJ2.js";import"./chunks/KU5DINLW.js";import{Bb as ge,D as le,F as de,Qb as he,Vb as ye,Za as pe,n as ie,qa as k,ta as fe,ua as O,va as T,xb as ue,z as ce}from"./chunks/GOQVKWP3.js";import"./chunks/74FPPPIG.js";import"./chunks/5TATKWLG.js";import{a as ae,g as Ze,h as N}from"./chunks/2PZF54KH.js";import"./chunks/6B2HILSY.js";import{f as I,i as oe,n as se}from"./chunks/JKWTHRUR.js";import"./chunks/SKVEBOGA.js";import{a as Je,b as $}from"./chunks/3GUKUEEJ.js";import{b as re}from"./chunks/724WZMYW.js";import"./chunks/A7WJJMRY.js";import"./chunks/PYKAERZZ.js";import"./chunks/KWECQJ6X.js";import"./chunks/FSLWD2PE.js";import{a as et,b as tt,c as j,d as rt,e as ot,f as st,g as nt}from"./chunks/PY5M22CL.js";import"./chunks/YUY436SM.js";import{a as ne,c as F}from"./chunks/C6X5GDG4.js";import{a as Xe,b as Ye,c as We,d as Qe,e as Ve}from"./chunks/RUVMFAST.js";import{a as me}from"./chunks/S27VIQMZ.js";import{createHash as Nt}from"node:crypto";var Be=new WeakMap,ee={version:"shared-modules-v1",settingsFiles:N.settingsFiles,resolve(s,e){let{paths:a,files:n,settings:i}=e,l=ae(s);if(!l)return[];let f=Be.get(e);return f||(f=new N({files:new Map([...a].map(u=>[u,n.get(u)??""]))},i),Be.set(e,f)),pe(s,n.get(s)??"",l,{allReexports:!0,completeImports:!0}).map(u=>u.dynamic?{from:s,specifier:u.source,status:"refused",provenance:null,reason:"dynamic"}:f.resolve(s,u.source,u.names))}};var jt=s=>s==="too-large"?"over-limit":s==="wrong-type"||s==="empty"?"unsupported":s;function De(s,e){let a=J(s);if(!P(a))return{kind:"refused",reason:"disabled"};let n=j.safeParse(e.request);if(!n.success||n.data.kind!=="file")return{kind:"refused",reason:"invalid-selection"};let i=n.data,l=e.resolver??ee,f=X(a,{profile:"entry-analysis",listing:[...e.entries],selection:i,limits:e.limits}),{entries:u}=f;return{kind:"pending",checkpoint:{version:1,settings:a,request:i,entries:u,files:{},resolutions:{},unavailable:{},targets:{},attempted:{paths:[],bytes:0},resolverVersion:l.version,...l.identity===void 0?{}:{resolverIdentity:l.identity},...e.proposal?{proposal:structuredClone(e.proposal)}:{},limits:f.limits,inventoryIncomplete:(e.inventoryIncomplete??0)+f.inventoryIncomplete}}}async function qe(s,e){let a=j.safeParse(s.request);if(s.version!==1||!a.success||a.data.kind!=="file")return{kind:"refused",reason:"invalid-selection"};let n=structuredClone(s);n.request=a.data;let{settings:i,request:l}=n,f=e.resolver??ee;if(f.version!==n.resolverVersion||f.identity!==n.resolverIdentity)return{kind:"refused",reason:"stale-snapshot"};if(!P(i))return{kind:"refused",reason:"disabled"};let u=new Map(n.entries.map(t=>[t.path,t])),y=new Set(u.keys()),g=new Map(Object.entries(n.files)),m=f.settingsFiles?.(y,g,[l.entry,...Object.keys(n.files)])??[];if(m.every(t=>Object.hasOwn(n.files,t)||Object.hasOwn(n.unavailable,t))){let t=Object.keys(n.files).filter(o=>!Object.hasOwn(n.resolutions,o)),c={paths:y,files:g,settings:i},r=await _(t,4,async o=>{try{return{path:o,edges:await f.resolve(o,c)}}catch{return{path:o,reason:"unreadable"}}});for(let{path:o,edges:h,reason:b}of r)Object.defineProperty(b?n.unavailable:n.resolutions,o,{value:b??h,enumerable:!0,configurable:!0,writable:!0})}let p=ve(i,{...n,settingsFiles:m,targetIdentity:Nt("sha256").update(JSON.stringify(Object.entries(n.targets).sort(([t],[c])=>t.localeCompare(c)))).digest("hex")});if(p.kind==="refused")return{kind:"refused",reason:p.reason};if(p.kind==="ready")return{kind:"ready",selection:p.selection,files:Object.fromEntries(p.selection.files.map(t=>[t.path,n.files[t.path]]))};for(let[t,c]of Object.entries(p.unavailable??{}))Object.defineProperty(n.unavailable,t,{value:c,enumerable:!0,configurable:!0,writable:!0});let v={...i,CF_RESPECT_GITIGNORE:"1",CF_LOCAL_SYMLINK_GUARD:"1",CF_SECRET_SCAN:"1"},S=(t,c,r)=>{if(!me.safeParse(t).success||c&&c.root!==l.launchRoot)return"out-of-scope";let o=k(v,{path:t,...r===void 0?{}:{text:r}},{purpose:"entry",route:"local-folder",...e.admission,gitIgnored:e.gitIgnored,...c?{localTarget:c}:{}});return o.admitted?null:o.reason==="out-of-scope"&&c?"symlink-escape":jt(o.reason)},d=await _(p.pending.filter(t=>!Object.hasOwn(n.files,t)).slice(0,4),4,async t=>{let c=0,r=!1;try{let o=S(t);if(o)return{path:t,reason:o,bytes:c,attempted:r};let h=await e.localTarget(t);if(!h)return{path:t,reason:"unreadable",bytes:c,attempted:r};if(o=S(t,h),o)return{path:t,reason:o,bytes:c,attempted:r};let b=u.get(t);r=!0,c=b.size;let E=await e.read({path:t,size:b.size,ref:b.ref,readBytes:b.size+1});if(E!==null&&(c=Buffer.byteLength(E)),E===null)return{path:t,reason:"unreadable",bytes:c,attempted:r};let w=await e.localTarget(t);return!w||w.path!==h.path||w.root!==h.root?{path:t,reason:"symlink-escape",bytes:c,attempted:r}:(o=S(t,w,E),o?{path:t,reason:o,bytes:c,attempted:r}:c!==b.size?{path:t,reason:"over-limit",bytes:c,attempted:r}:{path:t,text:E,target:w.path,bytes:c,attempted:r})}catch{return{path:t,reason:"unreadable",bytes:c,attempted:r}}});for(let t of d){if(t.attempted){let r=p.pendingSettings.includes(t.path)?n.settingsAttempted??={paths:[],bytes:0}:n.attempted;r.paths.push(t.path),r.bytes+=t.bytes}let c=(r,o)=>Object.defineProperty(r,t.path,{value:o,enumerable:!0,configurable:!0,writable:!0});t.reason?c(n.unavailable,t.reason):t.text!==void 0&&(c(n.files,t.text),c(n.targets,t.target))}return{kind:"pending",checkpoint:n}}async function Pt(s,e){let a=De(s,e);for(;a.kind==="pending";)a=await qe(a.checkpoint,e);return a}var Bt=new Set;function Dt(s,e={}){let a=ne(e.dir),n=e.limits??ce.archive,i=e.listing??Bt,l={commit:null,files:new Map,skipped:[]},f=new Set,u=0,y=0;function g(d){let t=d.replace(/\/$/,"").split("/");return!d.startsWith("/")&&!d.includes("\\")&&!/^[a-z]:/i.test(d)&&!t.some(c=>c===".."||c==="."||!c)}function m(d,t,c,r=i){if(!c||!g(d)||!Number.isSafeInteger(t)||t<0)return"refused";let o=k(s,{path:d,size:t},{purpose:"archive",route:"github",root:a});return o.admitted?e.exampleFolders?.some(h=>d.startsWith(h))||de(d,{root:a,listing:r})?"example":null:o.reason==="excluded"&&le(s,d,a)?"example":o.reason==="excluded"||o.reason==="wrong-type"?"excluded":"refused"}function p(d,t){f.has(d)||(f.add(d),l.skipped.push({path:d,reason:t}))}function v(d,t=i){let c=d.split("/");for(let r=1;r<=c.length;r++){let o=c.slice(0,r).join("/");if(o===a||a.startsWith(`${o}/`))continue;if(F(o,a)===null)return!1;let h=m(`${o}/`,0,!0,t);if(h)return p(`${o}/`,h),!1}return!0}function S(d,t,c=!0){if(F(d,a)===null)return!1;if(!g(d))return p(d,"refused"),!1;let r=d.split("/");if(r.length>1&&!v(r.slice(0,-1).join("/")))return!1;let o=m(d,t,c);return o?(p(d,o),!1):y>=n.files||t>n.bytes-u?(p(d,"over-limit"),!1):(u+=t,y++,!0)}return{result:l,accept:S,enterFolder:v}}function He(s){return s.CF_MODEL_READER!=="0"}async function qt(s,e,a,n){a=O(s,a);let i=structuredClone(e);for(i.files??={},i.cursor=0;;){let l=await q(s,i,a,n);if(l){i=l;continue}let f=i.selected??[];if((i.cursor??0)>=f.length)return i;let u=f.slice(i.cursor).filter(m=>!Object.hasOwn(i.files,m.path)),y=[],g=await _(u,4,async m=>{try{return{path:m.path,text:await B(m,p=>a.read(p),y,i.refused)}}catch(p){return{error:p}}});for(let m of g){if("error"in m)throw m.error;m.text!==null&&(i.files[m.path]=m.text)}y.length&&(i.refused=M(i.refused,y)),i.cursor=f.length}}async function ze(s,e,a,n){let{codeFindingNote:i}=xe(n),l={deriveBytes:0,codeEvidence:[]};if(!e.findingQuality?.config.switches.codeInputs||!e.projectAgents?.enabled)return l;let f=e.projectAgents,u=(e.repos??[]).filter(r=>[...f.byRepo[r.key]??[],...f.codeByRepo?.[r.key]??[]].some(o=>o.codeInputsJson&&(o.codeInputsJson.tools.length||o.codeInputsJson.contextInputs.length))),g=(await _(u,1,async r=>{try{let o=a.find(h=>h.repoKey===r.key);if(!o)throw new Error("Source reader is missing.");return{repo:await qt(s,r,o,e.modelReader??!1)}}catch(o){return{error:o}}})).map(r=>{if("error"in r)throw r.error;return r.repo}),m=g.map(r=>{let o=ke(s,r,D(s,e),e.modelReader,f);return Object.assign(r.files,o.virtualFiles),o.fragment}),p=Object.fromEntries(g.map(r=>[r.key,r.files??{}])),S=Oe({...e,repos:g,mapped:m}).findingQuality?.codeEvidence?.filter(r=>Object.keys(r.input.files).length)??[];if(!S.length)return l;let d=S.map(r=>({repo:r.repo,unitKey:r.unitKey,enabled:!0,inputs:[r.input],files:p[r.repo]}));return{deriveBytes:[...new Map(S.flatMap(r=>Object.entries(r.input.files).map(([o,h])=>[JSON.stringify([r.repo,o]),{path:o,text:h}]))).values()].reduce((r,{path:o,text:h})=>r+Buffer.byteLength(`### ${o}
1
+ import{a as yr,d as J,e as br,f as Fr}from"./chunks/4UDQBDDE.js";import{$ as _e,I as xr,J as Er,K as wr,L as Ar,M as Rr,N as Cr,O as ye,P as xe,Q as B,R as j,S as Ee,T as we,U as D,W as Ae,X as Re,Y as W,Z as Ce,_ as be,aa as Y,ba as _r,ca as ve,da as Fe,ea as ke,fa as Ie,ga as Oe,ha as Te,ka as vr,qa as kr,sa as Ir,ua as Or,wa as Tr,ya as Lr}from"./chunks/W24SFYZM.js";import{a as X}from"./chunks/5B5UCWD3.js";import{a as hr,d as Se,k as gr,l as Sr}from"./chunks/HHFDNY6V.js";import"./chunks/Y7JGSUOA.js";import"./chunks/3MTXB4MK.js";import"./chunks/MZOKZ3N6.js";import"./chunks/4RXRAB5S.js";import"./chunks/HTLIRVP7.js";import"./chunks/N7U5N42V.js";import{a as $}from"./chunks/QDYMR6KS.js";import{b as ur}from"./chunks/E7TFIHC5.js";import"./chunks/4F6ZIHXU.js";import"./chunks/VGYWI4X2.js";import"./chunks/57M4OQJM.js";import"./chunks/J4AXGE5W.js";import"./chunks/IBCFGUHI.js";import"./chunks/DZZBQDGO.js";import{a as dr,b as fr,c as pr}from"./chunks/CQQ4TTXE.js";import"./chunks/HVQJKPQ4.js";import{l as mr}from"./chunks/CTLHKFPH.js";import{f as ge,u as nr,v as ir,w as cr,x as ar,y as lr}from"./chunks/FRXOQ2M6.js";import{a as U}from"./chunks/326F4XNG.js";import{a as or,b as tr,c as sr}from"./chunks/JGK37AWN.js";import"./chunks/KU5DINLW.js";import{a as We,c as Ye,f as Ge,g as Qe,h as Ve,i as Ze,k as er}from"./chunks/SP6XFHNH.js";import{a as rr}from"./chunks/PBHHWFR6.js";import{b as k}from"./chunks/HCPO6QPU.js";import"./chunks/F54DOWKN.js";import"./chunks/33HRXJ5Q.js";import"./chunks/33IGHOYT.js";import{a as he}from"./chunks/LOBIDUCA.js";import{a as je,c as z,g as De,h as Z}from"./chunks/YTHF2E2S.js";import{r as pe}from"./chunks/4PT5C4IT.js";import{d as ue}from"./chunks/2YREYGOG.js";import"./chunks/6YCABS5T.js";import"./chunks/M5YWJY7P.js";import"./chunks/M6HYSTQD.js";import{a as b,d as me}from"./chunks/4H23CSUM.js";import"./chunks/JEWBPIQI.js";import"./chunks/NXHVBJL4.js";import{c as C}from"./chunks/MJGB25S5.js";import"./chunks/RQTNTIR4.js";import"./chunks/LMUXOKIM.js";import"./chunks/QVXARKP7.js";import{Fb as L,Jb as fe,Kb as I,Lb as M,Ma as ce,Ra as ae,Ya as le,ab as de,i as ee,p as te,r as se}from"./chunks/2AASSZRO.js";import"./chunks/74FPPPIG.js";import{a as re}from"./chunks/MKYLK6DB.js";import"./chunks/5TATKWLG.js";import"./chunks/OKBK3JL3.js";import{f as T,i as ne,n as ie}from"./chunks/JKWTHRUR.js";import{a as Je,b as q}from"./chunks/3GUKUEEJ.js";import"./chunks/LFYTD7JF.js";import"./chunks/MGVIKA74.js";import"./chunks/YUY436SM.js";import{a as oe,c as O}from"./chunks/C6X5GDG4.js";import{b as V}from"./chunks/724WZMYW.js";import"./chunks/YWL52FVW.js";import{i as $e,j as Xe}from"./chunks/SJESFYBA.js";import{a as He,b as Ke,c as ze,d as qe,e as Ue}from"./chunks/RUVMFAST.js";import"./chunks/S27VIQMZ.js";import"./chunks/INVTU73D.js";import"./chunks/A7WJJMRY.js";import"./chunks/Q5WR6B2H.js";import"./chunks/VDUFPTDD.js";function Mr(o){return o?.fromProposal===0&&o.rejected>0}var Nr=new Set;function Pr(o,e={}){let s=oe(e.dir),a=e.limits??re.archive,t=e.listing??Nr,n={commit:null,files:new Map,skipped:[]},f=new Set,y=0,h=0;function m(c){let d=c.replace(/\/$/,"").split("/");return!c.startsWith("/")&&!c.includes("\\")&&!/^[a-z]:/i.test(c)&&!d.some(u=>u===".."||u==="."||!u)}function l(c,d,u,r=t){if(!u||!m(c)||!Number.isSafeInteger(d)||d<0)return"refused";let i=L(o,{path:c,size:d},{purpose:"archive",route:"github",root:s});return i.admitted?e.exampleFolders?.some(E=>c.startsWith(E))||se(c,{root:s,listing:r})?"example":null:i.reason==="excluded"&&te(o,c,s)?"example":i.reason==="excluded"||i.reason==="wrong-type"?"excluded":"refused"}function p(c,d){f.has(c)||(f.add(c),n.skipped.push({path:c,reason:d}))}function g(c,d=t){let u=c.split("/");for(let r=1;r<=u.length;r++){let i=u.slice(0,r).join("/");if(i===s||s.startsWith(`${i}/`))continue;if(O(i,s)===null)return!1;let E=l(`${i}/`,0,!0,d);if(E)return p(`${i}/`,E),!1}return!0}function S(c,d,u=!0){if(O(c,s)===null)return!1;if(!m(c))return p(c,"refused"),!1;let r=c.split("/");if(r.length>1&&!g(r.slice(0,-1).join("/")))return!1;let i=l(c,d,u);return i?(p(c,i),!1):h>=a.files||d>a.bytes-y?(p(c,"over-limit"),!1):(y+=d,h++,!0)}return{result:n,accept:S,enterFolder:g}}function Le(o){return o.CF_MODEL_READER!=="0"}async function Br(o,e,s,a){s=I(o,s);let t=structuredClone(e);for(t.files??={},t.cursor=0;;){let n=await D(o,t,s,a);if(n){t=n;continue}let f=t.selected??[];if((t.cursor??0)>=f.length)return t;let y=f.slice(t.cursor).filter(l=>!Object.hasOwn(t.files,l.path)),h=[],m=await U(y,4,async l=>{try{return{path:l.path,text:await B(l,p=>s.read(p),h,t.refused)}}catch(p){return{error:p}}});for(let l of m){if("error"in l)throw l.error;l.text!==null&&(t.files[l.path]=l.text)}h.length&&(t.refused=k(t.refused,h)),t.cursor=f.length}}async function Me(o,e,s,a){let{codeFindingNote:t}=Se(a),n={deriveBytes:0,codeEvidence:[]};if(!e.findingQuality?.config.switches.codeInputs||!e.projectAgents?.enabled)return n;let f=e.projectAgents,y=(e.repos??[]).filter(r=>[...f.byRepo[r.key]??[],...f.codeByRepo?.[r.key]??[]].some(i=>i.codeInputsJson&&(i.codeInputsJson.tools.length||i.codeInputsJson.contextInputs.length))),m=(await U(y,1,async r=>{try{let i=s.find(E=>E.repoKey===r.key);if(!i)throw new Error("Source reader is missing.");return{repo:await Br(o,r,i,e.modelReader??!1)}}catch(i){return{error:i}}})).map(r=>{if("error"in r)throw r.error;return r.repo}),l=m.map(r=>{let i=Ae(o,r,j(o,e),e.modelReader,f);return Object.assign(r.files,i.virtualFiles),i.fragment}),p=Object.fromEntries(m.map(r=>[r.key,r.files??{}])),S=Re({...e,repos:m,mapped:l}).findingQuality?.codeEvidence?.filter(r=>Object.keys(r.input.files).length)??[];if(!S.length)return n;let c=S.map(r=>({repo:r.repo,unitKey:r.unitKey,enabled:!0,inputs:[r.input],files:p[r.repo]}));return{deriveBytes:[...new Map(S.flatMap(r=>Object.entries(r.input.files).map(([i,E])=>[JSON.stringify([r.repo,i]),{path:i,text:E}]))).values()].reduce((r,{path:i,text:E})=>r+Buffer.byteLength(`### ${i}
2
2
  \`\`\`
3
- ${ye(h)}
3
+ ${ae(E)}
4
4
  \`\`\`
5
5
 
6
- `),0)+Buffer.byteLength(i(S.flatMap(r=>r.input.sources))),codeEvidence:d}}function $e(s,e,a,n,i){let l=e.analysisFlags,f=[],u=new Set,y=0,g=0;for(let o of e.repos??[]){g+=(o.selected??[]).reduce((b,E)=>b+(E.readBytes??E.size),0),f.push(...(o.selected??[]).map(b=>({path:F(b.path,o.root)??b.path,size:b.size})));let h=ge(e.projectAgents,o.key,{nodes:[],edges:[],warnings:[]},i);for(let[b,E]of Object.entries(h.files)){let w=Se(E).length;y+=w,f.push({path:b,size:w}),u.add(b)}}y+=g;let m=Ne(f,l.multiPass,u),p=m>1?24:he,v=(u.size?y:Math.min(y,15e4))+n.deriveBytes,S=Z("derive",s,a),d=Array.from({length:m},(o,h)=>A(s,{template:S},m>1?`Derive findings (part ${h+1} of ${m})`:"Derive findings",R.generate,I(v+je(y,m))+4e3,Ee)),t=l.multiPass&&u.size?g:Math.min(g,15e4);d.push(A(s,{template:"derive-structure"},"Structural pass",R.generate,I(t)+4e3,12e3));let c=Math.ceil(p/_e)*(1+Ie);d.push(A(s,{template:"scope-findings"},"Scope check",a.switches.enabled?a.models.scope:R.mechanical,c*(4e3+I(n.scopeBytes)),c*1e3));let r=Fe(s,p,l.findingCheck??!0,Z("check",s,a),a.switches.fullContext?"whole-file":"legacy");return r&&d.push(r),(l.sourceNotes??!0)&&d.push(A(s,{template:"explain-sources"},"Explain sources",Te,I(Me)*p,Le*p)),e.codeAgents?.model&&e.repos?.some(o=>o.scanNeeded)&&d.push(A(s,{template:"judge-code-prompt"},"Check possible agents in code",R.mechanical,6*3e3,1200)),d.push(...Pe(G(s),s)),d}var Ut=async(s,e)=>{if(e.progress.assertHeld(),e.progress.signal?.throwIfAborted(),!e.model)throw new $("llm","Analysis needs a live model; no provider key is configured.");if(!e.readers.length)throw new $("not_found","This project has no analyzable repository.");let a=s.execution.preparation;if(!a)throw new Error("Preparation options are required for estimation.");let{state:n,settings:i}=s;await T(i,n,e.readers),await e.context.refreshStructureParts?.().catch(()=>{});let l=Y(await e.instructions()),f=W(l),u=l.bundleText("model-reader-runtime-prompt"),y=[...n.warnings??[]],g=D(i,n),m=n.modelReader??He(i),p=n.analysisFlags?Ae(i,n):we(i),v=n.findingQuality??{config:a.qualityConfig},S=await ue(i,n.projectAgents,e.context.loadProjectAgents,void 0,v.config.switches.codeInputs),d=[],t=[],c=e.readers.map(x=>O(i,x));for(let x of c){e.progress.assertHeld(),e.progress.signal?.throwIfAborted();let L=await x.head(),te=await x.list(),C=be(i,te,x.root);!C.readingNotes&&C.skippedNote&&y.push(`${x.repoKey}: ${C.skippedNote}`),t.push({key:x.repoKey,kind:"github",root:x.root,selected:C.selected}),d.push({key:x.repoKey,...x.source??{kind:x.repoKey.startsWith("local:")?"fs":"github"},headSha:L.sha,branch:L.branch,selected:C.selected,...C.readingNotes?{sourceReadNotes:C.readingNotes}:{},cursor:0,files:{},...x.root?{root:x.root}:{},...Re(i,te,C.selected,x.root,g,m)})}let r={...n,repos:d,projectAgents:S,codeAgents:g,modelReader:m,analysisFlags:p,findingQuality:v};await T(i,r,c);let o=await ze(i,r,c,l),{sources:h,files:b}=V({qualityConfig:v.config,codeEvidence:o.codeEvidence}),E=f.enrichRequestInputs("scope-findings",{codeSources:h,codeFiles:b},i),w=Buffer.byteLength(String(E.code))+Math.max(0,Buffer.byteLength(String(E.system))-Buffer.byteLength(f.RULE)),H=[...a.uploadReadingAllowance?[a.uploadReadingAllowance]:[],...$e(i,{...r,repos:t},v.config,{deriveBytes:o.deriveBytes,scopeBytes:w},u)],Ge=await e.context.loadOpenStructures?.()??[],z=(await e.context.loadPendingRechecks?.().catch(()=>[])??[]).reduce((x,L)=>x+L.children.length,0);z&&H.push(A(i,{template:"structure-recheck"},"Post-merge re-check",R.mechanical,z*3e3,z*300));let K=await e.context.chatFindingCount?.().catch(()=>(e.progress.log({level:"warn",code:"chat.count_failed"}),0))??0;K&&H.push(A(i,{},"Re-check chat findings",R.mechanical,K*3e3,K*300));let U=oe(H,a.capUsd);return se(U,e.progress.log),{next:a.confirmPrice?"awaiting_confirm":"fetching_files",clear:[],estimate:U,set:{repos:d,warnings:y,openStructures:Ge,codeAgents:g,modelReader:m,analysisFlags:p,projectAgents:S,findingQuality:v,...p.splitCheck?{splitEstimateBase:U}:{}}}};var $t=async({state:s,settings:e},a)=>{a.progress.assertHeld(),a.progress.signal?.throwIfAborted();let n=[...s.repos??[]];await T(e,s,a.readers);let i=s.repoCursor??0;if(i>=n.length)return{next:"mapping",set:{repoCursor:0},clear:[]};let l=structuredClone(n[i]),f=a.readers.find(t=>t.repoKey===l.key);if(!f)throw new Error(`no reader for ${l.key}`);let u=O(e,f),y=await q(e,l,u,s.modelReader??!1);if(y)return n[i]=y,{next:"fetching_files",set:{repos:n},clear:[]};let g=l.selected??[],m=l.cursor??0,p=g.slice(m,m+20),v={...l.files??{}},S=[];for(let t of p){if(a.progress.assertHeld(),a.progress.signal?.throwIfAborted(),v[t.path]!==void 0)continue;let c=await B(t,r=>u.read(r),S,l.refused);c!==null&&(v[t.path]=c)}S.length&&(l.refused=M(l.refused,S)),l.files=v,l.cursor=m+p.length,n[i]=l;let d=l.cursor>=g.length&&!Ce(e,l);return{next:"fetching_files",set:{repos:n,repoCursor:d?i+1:i},clear:[]}};async function Gt(s,e){let a=e.admission?.exclusions?.length?e.entries.filter(l=>k(s,l,{purpose:"override",route:"github",...e.admission}).admitted):e.entries,n=ie(s)?new Set(a.map(l=>l.path)):void 0,i=!e.admission?.exclusions?.length&&!re(s)?e.read:l=>fe(s,l,e.read,{...e.admission,...n?{listing:n}:{}});return Q(s,{...e,entries:a,read:i})}function Jt(s,e){let a=e?.findingHeadlineDiagnostics??(s.findingHeadlines?.version===2?s.findingHeadlines.diagnostics:s.findingHeadlineDiagnostics);return{set:{...a?{findingHeadlineDiagnostics:a}:{},repos:(s.repos??[]).map(n=>({...n,files:{},selected:[],scan:void 0,ranked:void 0})),...s.projectAgents?{projectAgents:{enabled:s.projectAgents.enabled,byRepo:{}}}:{}},clear:["passResults","sourceNotes","findingHeadlines","findingsRaw","structuresRaw","loadModes","rechecks","recheckedChangeIds","readPaths","inspectPlan","passFindings","codeChecks","newVerdicts",...s.shapeFindings?["shapeFindings"]:[]]}}export{vt as ANALYSIS_FIELDS,et as ANALYSIS_SELECTION_LIMITS,pt as ENTRY_LIMITS,Je as FOLDER_TOO_LARGE_MESSAGE,yt as InputBudgetError,R as MODELS,N as ModuleResolver,k as admitFile,qe as advanceEntrySelection,Rt as analysisFieldsOf,Ot as analysisRuntime,tt as analysisScopeSchema,j as analysisSelectionRequestSchema,nt as analysisSelectionResultSchema,it as analysisSizeLimits,Ct as applyAnalysisDelta,ct as assessAnalysisSize,Tt as buildAnalysisResult,ht as buildRequest,De as createEntrySelectionCheckpoint,Y as createInstructionText,St as createRequestRegistry,W as createRequestTools,Q as discoverLocalSources,dt as discoverReaders,Ut as estimateStage,Gt as fetchLocalSources,$t as fetchStage,At as fetchedPathsOf,P as fileScopeEnabled,G as findingHeadlinesEnabled,Jt as finishAnalysis,Lt as headlinesStage,bt as importProposalEnabled,Xe as importProvenanceSchema,Ye as importRefusalReasonSchema,It as inspectStage,_t as mapStage,lt as measureAnalysisSize,Ve as moduleResolutionSchema,at as parseAnalysisSize,ft as planForJob,X as planImport,st as provenScopeChoiceSchema,Pt as readEntrySelection,kt as readFindingQualityConfig,Qe as refusedImportSchema,gt as render,Dt as repoCollector,ut as resolveAgents,Ze as resolveImport,We as resolvedImportSchema,xt as savedFragmentAt,wt as savedFragmentsOf,V as scopeCodeContext,ot as selectionCompletenessSchema,rt as selectionFileSchema,mt as selectionOfPlan,J as snapshotSettings,Ft as sourceNotesStage,Mt as structureStage,Et as trySavedFragmentAt};
6
+ `),0)+Buffer.byteLength(t(S.flatMap(r=>r.input.sources))),codeEvidence:c}}function Be(o,e,s,a,t){let n=e.analysisFlags,f=[],y=new Set,h=0,m=0;for(let w of e.repos??[]){m+=(w.selected??[]).reduce((A,v)=>A+(v.readBytes??v.size),0),f.push(...(w.selected??[]).map(A=>({path:O(A.path,w.root)??A.path,size:A.size})));let _=de(e.projectAgents,w.key,{nodes:[],edges:[],warnings:[]},t);for(let[A,v]of Object.entries(_.files)){let F=pe(v).length;h+=F,f.push({path:A,size:F}),y.add(A)}}h+=m;let l=he(o)!==void 0,p=l?ue(f):void 0;if(l&&!p)throw new Error("bad_request");let g=p?.length??Ie(f,n.multiPass,y),S=g>1?24:ce,c=new Map(f.map(w=>[w.path,w.size])),d=(p?Math.max(...p.map(w=>w.own.reduce((_,A)=>_+(c.get(A)??0),0))):y.size?h:Math.min(h,15e4))+a.deriveBytes,u=Y("derive",o,s),r=Array.from({length:g},(w,_)=>C(o,{template:u},g>1?`Derive findings (part ${_+1} of ${g})`:"Derive findings",b.generate,T(d+Oe(h,g))+4e3,me)),i=l||n.multiPass&&y.size?m:Math.min(m,15e4);r.push(C(o,{template:"derive-structure"},"Structural pass",b.generate,T(i)+4e3,12e3));let E=Math.ceil(S/Ce)*(1+be);r.push(C(o,{template:"scope-findings"},"Scope check",s.switches.enabled?s.models.scope:b.mechanical,E*(4e3+T(a.scopeBytes)),E*1e3));let N=_e(o,S,n.findingCheck??!0,Y("check",o,s),s.switches.fullContext?"whole-file":"legacy");return N&&r.push(N),(n.sourceNotes??!0)&&r.push(C(o,{template:"explain-sources"},"Explain sources",ve,T(ke)*S,Fe*S)),e.codeAgents?.model&&e.repos?.some(w=>w.scanNeeded)&&r.push(C(o,{template:"judge-code-prompt"},"Check possible agents in code",b.mechanical,6*3e3,1200)),r.push(...Te(z(o),o)),r}var Kr=async(o,e)=>{if(e.progress.assertHeld(),e.progress.signal?.throwIfAborted(),!e.model)throw new q("llm","Analysis needs a live model; no provider key is configured.");if(!e.readers.length)throw new q("not_found","This project has no analyzable repository.");let s=o.execution.preparation;if(!s)throw new Error("Preparation options are required for estimation.");let{state:a,settings:t}=o;await M(t,a,e.readers),await e.context.refreshStructureParts?.().catch(()=>{});let n=$(await e.instructions()),f=X(n),y=n.bundleText("model-reader-runtime-prompt"),h=[...a.warnings??[]],m=j(t,a),l=a.modelReader??Le(t),p=a.analysisFlags?xe(t,a):ye(t),g=a.findingQuality??{config:s.qualityConfig},S=await le(t,a.projectAgents,e.context.loadProjectAgents,void 0,g.config.switches.codeInputs),c=[],d=[],u=e.readers.map(x=>I(t,x));for(let x of u){e.progress.assertHeld(),e.progress.signal?.throwIfAborted();let P=await x.head(),G=await x.list(),R=ge(t,G,x.root),Q=Ee(t,G,R.selected,x.root,m,l);!R.readingNotes&&R.skippedNote&&h.push(`${x.repoKey}: ${R.skippedNote}`),d.push({key:x.repoKey,kind:"github",root:x.root,selected:R.selected}),c.push({key:x.repoKey,...x.source??{kind:x.repoKey.startsWith("local:")?"fs":"github"},headSha:P.sha,branch:P.branch,selected:R.selected,...R.readingNotes?{sourceReadNotes:R.readingNotes}:{},cursor:0,files:{},...x.root?{root:x.root}:{},...Q,...!Z(t)||!R.refused.length?{}:{refused:k(R.refused,Q.refused??[])}})}let r={...a,repos:c,projectAgents:S,codeAgents:m,modelReader:l,analysisFlags:p,findingQuality:g};await M(t,r,u);let i=await Me(t,r,u,n),{sources:E,files:N}=W({qualityConfig:g.config,codeEvidence:i.codeEvidence}),w=f.enrichRequestInputs("scope-findings",{codeSources:E,codeFiles:N},t),_=Buffer.byteLength(String(w.code))+Math.max(0,Buffer.byteLength(String(w.system))-Buffer.byteLength(f.RULE)),A=[...s.uploadReadingAllowance?[s.uploadReadingAllowance]:[],...Be(t,{...r,repos:d},g.config,{deriveBytes:i.deriveBytes,scopeBytes:_},y)],v=await e.context.loadOpenStructures?.()??[],F=(await e.context.loadPendingRechecks?.().catch(()=>[])??[]).reduce((x,P)=>x+P.children.length,0);F&&A.push(C(t,{template:"structure-recheck"},"Post-merge re-check",b.mechanical,F*3e3,F*300));let H=await e.context.chatFindingCount?.().catch(()=>(e.progress.log({level:"warn",code:"chat.count_failed"}),0))??0;H&&A.push(C(t,{},"Re-check chat findings",b.mechanical,H*3e3,H*300));let K=ne(A,s.capUsd);return ie(K,e.progress.log),{next:s.confirmPrice?"awaiting_confirm":"fetching_files",clear:[],estimate:K,set:{repos:c,warnings:h,openStructures:v,codeAgents:m,modelReader:l,analysisFlags:p,projectAgents:S,findingQuality:g,...p.splitCheck?{splitEstimateBase:K}:{}}}};var zr=async({state:o,settings:e},s)=>{s.progress.assertHeld(),s.progress.signal?.throwIfAborted();let a=[...o.repos??[]];await M(e,o,s.readers);let t=o.repoCursor??0;if(t>=a.length)return{next:"mapping",set:{repoCursor:0},clear:[]};let n=structuredClone(a[t]),f=s.readers.find(d=>d.repoKey===n.key);if(!f)throw new Error(`no reader for ${n.key}`);let y=I(e,f),h=await D(e,n,y,o.modelReader??!1);if(h)return a[t]=h,{next:"fetching_files",set:{repos:a},clear:[]};let m=n.selected??[],l=n.cursor??0,p=m.slice(l,l+20),g={...n.files??{}},S=[];for(let d of p){if(s.progress.assertHeld(),s.progress.signal?.throwIfAborted(),g[d.path]!==void 0)continue;let u=await B(d,r=>y.read(r),S,n.refused);u!==null&&(g[d.path]=u)}S.length&&(n.refused=k(n.refused,S)),n.files=g,n.cursor=l+p.length,a[t]=n;let c=n.cursor>=m.length&&!we(e,n);return{next:"fetching_files",set:{repos:a,repoCursor:c?t+1:t},clear:[]}};async function qr(o,e){let s=e.admission?.exclusions?.length?e.entries.filter(n=>L(o,n,{purpose:"override",route:"github",...e.admission}).admitted):e.entries,a=ee(o)?new Set(s.map(n=>n.path)):void 0,t=!e.admission?.exclusions?.length&&!V(o)?e.read:n=>fe(o,n,e.read,{...e.admission,...a?{listing:a}:{}});return J(o,{...e,entries:s,read:t})}function Ur(o,e){let s=e?.findingHeadlineDiagnostics??(o.findingHeadlines?.version===2?o.findingHeadlines.diagnostics:o.findingHeadlineDiagnostics);return{set:{...s?{findingHeadlineDiagnostics:s}:{},repos:(o.repos??[]).map(a=>({...a,files:{},selected:[],scan:void 0,ranked:void 0})),...o.projectAgents?{projectAgents:{enabled:o.projectAgents.enabled,byRepo:{}}}:{}},clear:["passResults","sourceNotes","findingHeadlines","findingsRaw","structuresRaw","loadModes","rechecks","recheckedChangeIds","readPaths","inspectPlan","passFindings","codeChecks","newVerdicts",...o.shapeFindings?["shapeFindings"]:[]]}}export{xr as ANALYSIS_FIELDS,We as ANALYSIS_SELECTION_LIMITS,ar as ENTRY_LIMITS,Je as FOLDER_TOO_LARGE_MESSAGE,gr as InputBudgetError,b as MODELS,Xe as ModuleResolver,L as admitFile,fr as advanceEntrySelection,Cr as analysisFieldsOf,vr as analysisRuntime,Ye as analysisScopeSchema,Ge as analysisSelectionRequestSchema,er as analysisSelectionResultSchema,or as analysisSizeLimits,br as applyAnalysisDelta,tr as assessAnalysisSize,Or as buildAnalysisResult,hr as buildRequest,dr as createEntrySelectionCheckpoint,$ as createInstructionText,Sr as createRequestRegistry,X as createRequestTools,J as discoverLocalSources,nr as discoverReaders,Kr as estimateStage,qr as fetchLocalSources,zr as fetchStage,Rr as fetchedPathsOf,je as fileScopeEnabled,z as findingHeadlinesEnabled,Ur as finishAnalysis,Tr as headlinesStage,yr as importProposalEnabled,He as importProvenanceSchema,Ke as importRefusalReasonSchema,kr as inspectStage,Fr as mapStage,sr as measureAnalysisSize,Ue as moduleResolutionSchema,rr as parseAnalysisSize,ir as planForJob,lr as planImport,Mr as proposalWhollyRefused,Ze as provenScopeChoiceSchema,pr as readEntrySelection,_r as readFindingQualityConfig,qe as refusedImportSchema,ur as render,Pr as repoCollector,mr as resolveAgents,$e as resolveImport,ze as resolvedImportSchema,Er as savedFragmentAt,Ar as savedFragmentsOf,W as scopeCodeContext,Ve as selectionCompletenessSchema,Qe as selectionFileSchema,cr as selectionOfPlan,De as snapshotSettings,Ir as sourceNotesStage,Lr as structureStage,wr as trySavedFragmentAt};
@@ -1 +1 @@
1
- import{j as a}from"../chunks/K2GNDX3W.js";import"../chunks/6U2IR4XB.js";import"../chunks/6B2HILSY.js";import"../chunks/SKVEBOGA.js";import"../chunks/A7WJJMRY.js";import"../chunks/KWECQJ6X.js";import"../chunks/FSLWD2PE.js";export{a as answerFormats};
1
+ import{j as a}from"../chunks/4RXRAB5S.js";import"../chunks/NXHVBJL4.js";import"../chunks/QVXARKP7.js";import"../chunks/OKBK3JL3.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";import"../chunks/INVTU73D.js";import"../chunks/A7WJJMRY.js";import"../chunks/VDUFPTDD.js";export{a as answerFormats};
@@ -1 +1 @@
1
- import{a,b}from"../chunks/RNTMH4MU.js";import"../chunks/IHAVDX4L.js";import"../chunks/N7U5N42V.js";import"../chunks/6RWEWBHK.js";import"../chunks/CGCJN73D.js";import"../chunks/QDYMR6KS.js";import"../chunks/Y7JGSUOA.js";import"../chunks/3MTXB4MK.js";import"../chunks/UEORNVQB.js";import"../chunks/E7TFIHC5.js";import"../chunks/M6HYSTQD.js";import"../chunks/VGYWI4X2.js";import"../chunks/57M4OQJM.js";import"../chunks/J4AXGE5W.js";import"../chunks/4H23CSUM.js";import"../chunks/K2GNDX3W.js";import"../chunks/HTLIRVP7.js";import"../chunks/DZZBQDGO.js";import"../chunks/IVULXWQN.js";import"../chunks/K5FUABWW.js";import"../chunks/326F4XNG.js";import"../chunks/4F6ZIHXU.js";import"../chunks/SLJ6CW7W.js";import"../chunks/6U2IR4XB.js";import"../chunks/MJGB25S5.js";import"../chunks/WYLIV2P2.js";import"../chunks/KGQYR62R.js";import"../chunks/IBCFGUHI.js";import"../chunks/2PSNOSJ2.js";import"../chunks/KU5DINLW.js";import"../chunks/GOQVKWP3.js";import"../chunks/74FPPPIG.js";import"../chunks/5TATKWLG.js";import"../chunks/2PZF54KH.js";import"../chunks/6B2HILSY.js";import"../chunks/JKWTHRUR.js";import"../chunks/SKVEBOGA.js";import"../chunks/3GUKUEEJ.js";import"../chunks/724WZMYW.js";import"../chunks/A7WJJMRY.js";import"../chunks/PYKAERZZ.js";import"../chunks/KWECQJ6X.js";import"../chunks/FSLWD2PE.js";import"../chunks/PY5M22CL.js";import"../chunks/YUY436SM.js";import"../chunks/C6X5GDG4.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";export{a as localCallPlan,b as localSourcePlan};
1
+ import{a,b}from"../chunks/S27Y2TP5.js";import"../chunks/W24SFYZM.js";import"../chunks/5B5UCWD3.js";import"../chunks/HHFDNY6V.js";import"../chunks/Y7JGSUOA.js";import"../chunks/3MTXB4MK.js";import"../chunks/MZOKZ3N6.js";import"../chunks/4RXRAB5S.js";import"../chunks/HTLIRVP7.js";import"../chunks/N7U5N42V.js";import"../chunks/QDYMR6KS.js";import"../chunks/E7TFIHC5.js";import"../chunks/4F6ZIHXU.js";import"../chunks/VGYWI4X2.js";import"../chunks/57M4OQJM.js";import"../chunks/J4AXGE5W.js";import"../chunks/IBCFGUHI.js";import"../chunks/DZZBQDGO.js";import"../chunks/CTLHKFPH.js";import"../chunks/FRXOQ2M6.js";import"../chunks/326F4XNG.js";import"../chunks/KU5DINLW.js";import"../chunks/SP6XFHNH.js";import"../chunks/HCPO6QPU.js";import"../chunks/F54DOWKN.js";import"../chunks/33IGHOYT.js";import"../chunks/LOBIDUCA.js";import"../chunks/YTHF2E2S.js";import"../chunks/4PT5C4IT.js";import"../chunks/2YREYGOG.js";import"../chunks/6YCABS5T.js";import"../chunks/M5YWJY7P.js";import"../chunks/M6HYSTQD.js";import"../chunks/4H23CSUM.js";import"../chunks/JEWBPIQI.js";import"../chunks/NXHVBJL4.js";import"../chunks/MJGB25S5.js";import"../chunks/RQTNTIR4.js";import"../chunks/LMUXOKIM.js";import"../chunks/QVXARKP7.js";import"../chunks/2AASSZRO.js";import"../chunks/74FPPPIG.js";import"../chunks/MKYLK6DB.js";import"../chunks/5TATKWLG.js";import"../chunks/OKBK3JL3.js";import"../chunks/JKWTHRUR.js";import"../chunks/3GUKUEEJ.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";import"../chunks/YUY436SM.js";import"../chunks/C6X5GDG4.js";import"../chunks/724WZMYW.js";import"../chunks/YWL52FVW.js";import"../chunks/SJESFYBA.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";import"../chunks/INVTU73D.js";import"../chunks/A7WJJMRY.js";import"../chunks/Q5WR6B2H.js";import"../chunks/VDUFPTDD.js";export{a as localCallPlan,b as localSourcePlan};
@@ -0,0 +1 @@
1
+ import{a,b,c,d}from"../chunks/M5YWJY7P.js";export{b as PLANNED_CALL_COUNT,a as PLANNED_INPUT_BYTES,c as PLANNED_INPUT_TOKENS,d as PLANNED_OUTPUT_TOKENS};
@@ -1 +1 @@
1
- import{l as a,m as b,n as c,o as d}from"../chunks/CGCJN73D.js";import"../chunks/QDYMR6KS.js";import"../chunks/Y7JGSUOA.js";import"../chunks/3MTXB4MK.js";import"../chunks/E7TFIHC5.js";import"../chunks/K2GNDX3W.js";import"../chunks/HTLIRVP7.js";import"../chunks/K5FUABWW.js";import"../chunks/SLJ6CW7W.js";import"../chunks/6U2IR4XB.js";import"../chunks/MJGB25S5.js";import"../chunks/WYLIV2P2.js";import"../chunks/74FPPPIG.js";import"../chunks/6B2HILSY.js";import"../chunks/JKWTHRUR.js";import"../chunks/SKVEBOGA.js";import"../chunks/3GUKUEEJ.js";import"../chunks/A7WJJMRY.js";import"../chunks/KWECQJ6X.js";import"../chunks/FSLWD2PE.js";export{a as InputBudgetError,d as buildAnalysisCall,c as callInputBytes,b as createRequestRegistry};
1
+ import{k as a,l as b,m as c,n as d}from"../chunks/HHFDNY6V.js";import"../chunks/Y7JGSUOA.js";import"../chunks/3MTXB4MK.js";import"../chunks/4RXRAB5S.js";import"../chunks/HTLIRVP7.js";import"../chunks/QDYMR6KS.js";import"../chunks/E7TFIHC5.js";import"../chunks/YTHF2E2S.js";import"../chunks/6YCABS5T.js";import"../chunks/JEWBPIQI.js";import"../chunks/NXHVBJL4.js";import"../chunks/MJGB25S5.js";import"../chunks/RQTNTIR4.js";import"../chunks/LMUXOKIM.js";import"../chunks/QVXARKP7.js";import"../chunks/74FPPPIG.js";import"../chunks/OKBK3JL3.js";import"../chunks/JKWTHRUR.js";import"../chunks/3GUKUEEJ.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";import"../chunks/INVTU73D.js";import"../chunks/A7WJJMRY.js";import"../chunks/VDUFPTDD.js";export{a as InputBudgetError,d as buildAnalysisCall,c as callInputBytes,b as createRequestRegistry};
@@ -1 +1 @@
1
- import{a}from"../chunks/UEORNVQB.js";import"../chunks/E7TFIHC5.js";import"../chunks/K5FUABWW.js";import"../chunks/WYLIV2P2.js";export{a as createTemplateVersion};
1
+ import{a}from"../chunks/MZOKZ3N6.js";import"../chunks/E7TFIHC5.js";import"../chunks/YTHF2E2S.js";import"../chunks/LMUXOKIM.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";import"../chunks/INVTU73D.js";export{a as createTemplateVersion};
@@ -1 +1 @@
1
- import{a}from"../chunks/6RWEWBHK.js";import"../chunks/CGCJN73D.js";import"../chunks/QDYMR6KS.js";import"../chunks/Y7JGSUOA.js";import"../chunks/3MTXB4MK.js";import"../chunks/UEORNVQB.js";import"../chunks/E7TFIHC5.js";import"../chunks/K2GNDX3W.js";import"../chunks/HTLIRVP7.js";import"../chunks/K5FUABWW.js";import"../chunks/SLJ6CW7W.js";import"../chunks/6U2IR4XB.js";import"../chunks/MJGB25S5.js";import"../chunks/WYLIV2P2.js";import"../chunks/74FPPPIG.js";import"../chunks/6B2HILSY.js";import"../chunks/JKWTHRUR.js";import"../chunks/SKVEBOGA.js";import"../chunks/3GUKUEEJ.js";import"../chunks/A7WJJMRY.js";import"../chunks/KWECQJ6X.js";import"../chunks/FSLWD2PE.js";export{a as createRequestTools};
1
+ import{a}from"../chunks/5B5UCWD3.js";import"../chunks/HHFDNY6V.js";import"../chunks/Y7JGSUOA.js";import"../chunks/3MTXB4MK.js";import"../chunks/MZOKZ3N6.js";import"../chunks/4RXRAB5S.js";import"../chunks/HTLIRVP7.js";import"../chunks/QDYMR6KS.js";import"../chunks/E7TFIHC5.js";import"../chunks/YTHF2E2S.js";import"../chunks/6YCABS5T.js";import"../chunks/JEWBPIQI.js";import"../chunks/NXHVBJL4.js";import"../chunks/MJGB25S5.js";import"../chunks/RQTNTIR4.js";import"../chunks/LMUXOKIM.js";import"../chunks/QVXARKP7.js";import"../chunks/74FPPPIG.js";import"../chunks/OKBK3JL3.js";import"../chunks/JKWTHRUR.js";import"../chunks/3GUKUEEJ.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";import"../chunks/INVTU73D.js";import"../chunks/A7WJJMRY.js";import"../chunks/VDUFPTDD.js";export{a as createRequestTools};
@@ -1 +1 @@
1
- import{a,b,c,d,e,f}from"./chunks/K5FUABWW.js";import"./chunks/WYLIV2P2.js";export{a as fileScopeEnabled,b as findingHeadlinesEnabled,d as outsideLoadersEnabled,e as promptAgreementEnabled,c as resultSafetyCheckEnabled,f as snapshotSettings};
1
+ import{a,b,c,d,e,f,g,h,i,j}from"./chunks/YTHF2E2S.js";import"./chunks/LMUXOKIM.js";import"./chunks/LFYTD7JF.js";import"./chunks/MGVIKA74.js";export{a as fileScopeEnabled,c as findingHeadlinesEnabled,i as folderPartsEnabled,j as followupSettings,b as multiEntryEnabled,e as outsideLoadersEnabled,f as promptAgreementEnabled,d as resultSafetyCheckEnabled,h as skippedFilesEnabled,g as snapshotSettings};
@@ -1 +1 @@
1
- import{a as B,b as S}from"../chunks/F3R4J3ND.js";import{b as V}from"../chunks/RNTMH4MU.js";import{b as v,c as K,d as A,e as O}from"../chunks/CWYVUGG4.js";import{O as E,ba as M,oa as z,qa as H,sa as Q,ta as D,ua as N,wa as T,ya as j}from"../chunks/IHAVDX4L.js";import{c as _}from"../chunks/N7U5N42V.js";import"../chunks/6RWEWBHK.js";import"../chunks/CGCJN73D.js";import"../chunks/QDYMR6KS.js";import"../chunks/Y7JGSUOA.js";import"../chunks/3MTXB4MK.js";import"../chunks/UEORNVQB.js";import"../chunks/E7TFIHC5.js";import"../chunks/M6HYSTQD.js";import"../chunks/VGYWI4X2.js";import"../chunks/57M4OQJM.js";import"../chunks/J4AXGE5W.js";import"../chunks/4H23CSUM.js";import"../chunks/K2GNDX3W.js";import"../chunks/HTLIRVP7.js";import"../chunks/DZZBQDGO.js";import"../chunks/FBTOOUPL.js";import"../chunks/IVULXWQN.js";import{b as I}from"../chunks/K5FUABWW.js";import"../chunks/326F4XNG.js";import"../chunks/4F6ZIHXU.js";import"../chunks/SLJ6CW7W.js";import"../chunks/6U2IR4XB.js";import"../chunks/MJGB25S5.js";import{t as k}from"../chunks/WYLIV2P2.js";import"../chunks/KGQYR62R.js";import"../chunks/IBCFGUHI.js";import"../chunks/2PSNOSJ2.js";import"../chunks/KU5DINLW.js";import{sa as P}from"../chunks/GOQVKWP3.js";import"../chunks/74FPPPIG.js";import"../chunks/5TATKWLG.js";import"../chunks/2PZF54KH.js";import"../chunks/6B2HILSY.js";import"../chunks/JKWTHRUR.js";import"../chunks/SKVEBOGA.js";import{b as F}from"../chunks/3GUKUEEJ.js";import"../chunks/724WZMYW.js";import"../chunks/A7WJJMRY.js";import"../chunks/PYKAERZZ.js";import"../chunks/KWECQJ6X.js";import"../chunks/FSLWD2PE.js";import"../chunks/PY5M22CL.js";import"../chunks/YUY436SM.js";import{e as L}from"../chunks/C6X5GDG4.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";function G(s,t){return M(s,t,{codeInputs:!1,recall:!1,secondOpinion:!1})}function C(s,t,i,l){let a=t.findingQuality,y={...i.findingCheck?.state?.result??{kept:t.findings,dropped:[],warnings:[]}};a?.assessments&&y.qualityAudit&&(y.qualityAudit={coverage:a.coverage??[],verdicts:a.verdicts??[],assessments:a.assessments,...a.shadow?{shadow:a.shadow}:{}});let e=D(t.findings,t.structures,t.findingHeadlines??[],t.findingHeadlineDiagnostics),g=new Map(e.rows.filter(r=>r.target==="finding").map(r=>[r.index,{headline:r.headline,ifLeft:r.ifLeft}])),m=new Map(e.rows.filter(r=>r.target==="structure").map(r=>[r.index,{headline:r.headline,ifLeft:r.ifLeft}])),R=m.size?t.structures.map((r,w)=>m.has(w)?{...r,...m.get(w)}:r):t.structures,x=g.size?t.findings.map((r,w)=>g.has(w)?{...r,...g.get(w)}:r):t.findings,d=i.findingQuality?.config.switches.ranking?z(x,a?.assessments??[]):void 0;return{repoKey:s,findings:d?.ordered??x,structures:R,graph:t.graph,warnings:t.warnings,...l?{proposalCounts:l}:{},...e.diagnostics?{findingHeadlineDiagnostics:e.diagnostics}:{},skippedFiles:i.inspectPlan?.skipped??[],passes:i.inspectPlan?.passes.length??1,findingCheck:y,...d?{ranking:{defaultIds:d.defaultIds,hiddenIds:d.hiddenIds,emptyMessage:d.emptyMessage}}:{}}}async function J(s,t,i,l=B){let a={...i.state,repos:i.repos,mapped:i.fragments.map(({fragment:e})=>e),findingsRaw:i.findings,warnings:i.state?.warnings??[],splitCheckPriced:!0,splitFindingsPriced:!0},y=S(t,l);for(;;){let e=await j({phase:"structuring",state:a,settings:s,execution:{scopeConcurrency:4,forLocal:!0}},y);if(a=A(a,e),e.next==="persisting")return{state:a,structures:a.structuresRaw??[],warnings:a.warnings??[]}}}function W(s,t){I(t)&&s.requestTools.headlinePlan(_([]))}async function U(s,t,i={}){let{settings:l,qualityConfig:a}=s;W(t,l);let y=E(l);if(!Object.keys(s.files).length)throw new F("empty_folder","No admitted source files were found.");let e={repos:[{key:s.repoKey,kind:"fs",files:s.files,...s.root!==void 0?{root:s.root}:{}}],warnings:s.warnings??[],...s.fragment?{mapped:[s.fragment]}:{}},g=S(t,t.progress);for(;;){let d=await O({phase:"mapping",state:e,settings:l,execution:{scopeConcurrency:4,forLocal:!0,preparation:{capUsd:20,confirmPrice:!1,qualityConfig:a}}},g);if(e=A(e,d),d.next!=="mapping")break}e={...e,analysisFlags:{...y,sourceNotes:!i.findingsOnly&&y.sourceNotes},findingQuality:{config:a},warnings:[...e.warnings??[],...a.diagnostics]};let m="inspecting";for(g.progress.checkpoint=async(d,r)=>{e={...e,...d,...r?{passResults:{...e.passResults,[r.index]:r.result}}:{}},await t.progress.checkpoint(d,r)};m!=="structuring";){let r=await(m==="inspecting"?H:Q)({phase:m,state:e,settings:l,execution:{scopeConcurrency:4,passConcurrency:4,forLocal:!0}},g);e=A(e,r),m=r.next}let R=()=>N({phase:"persisting",state:e,settings:l,execution:{scopeConcurrency:4}});if(!i.findingsOnly){let d=C(s.repoKey,R(),e,s.proposalCounts),r=e.findingsRaw;e={...(await J(l,t,{repos:e.repos,fragments:[{repoKey:s.repoKey,fragment:e.mapped[0]}],graph:d.graph,findings:d.findings,state:e},g.progress)).state,findingsRaw:r}}e=A(e,await T({phase:"persisting",state:e,settings:l,execution:{scopeConcurrency:4,forLocal:!0}},g));let x=R();return await i.resultSink?.(x),C(s.repoKey,x,e,s.proposalCounts)}import{createHash as X}from"node:crypto";async function Y(s,t,i){let l=new Map,a=new Map,y=[],e,g=[],m=()=>{if(i.signal?.throwIfAborted(),e)throw k(e)},R=async f=>{m();try{return await i.list(f)}catch{throw i.signal?.throwIfAborted(),k("unavailable")}},x=async f=>{let u=[],o=new Set,h=new Set,c=new Set,p=f;for(;;){if(m(),p.snapshot!==t.manifest.snapshot||p.commit!==t.manifest.commit)throw k("bad_request");for(let n of p.files){let b=l.get(n.id);if(o.has(n.path)||h.has(n.id)||b&&(b.hash!==n.hash||b.size!==n.size))throw k("bad_request");o.add(n.path),h.add(n.id);let q={...n};l.set(n.id,q),u.push(q)}if(p.complete)return u;if(!p.cursor||c.has(p.cursor))throw k("bad_request");c.add(p.cursor),p=await R(p.cursor)}},d=f=>f.map(({id:u,path:o,size:h})=>({path:o,size:h,ref:u})),r=v(async f=>{if(i.signal?.throwIfAborted(),e)return f.map(()=>null);let u=[...new Set(f.map(o=>o.ref))].filter(o=>!a.has(o)).map(o=>l.get(o));if(u.length){let o;try{o=await i.read(u)}catch{return i.signal?.throwIfAborted(),e="unavailable",f.map(()=>null)}i.signal?.throwIfAborted();let h=new Map(u.map(c=>[c.id,c]));for(let c of o){let p=h.get(c.id);if(!p||c.text!==null&&!c.refusal&&(Buffer.byteLength(c.text)!==p.size||X("sha256").update(c.text).digest("hex")!==p.hash)){e="bad_request";break}h.delete(c.id),a.set(c.id,{text:c.refusal?null:c.text,bytesRead:c.bytesRead,...c.refusal?{refusal:c.refusal}:{}})}if(h.size&&(e="bad_request"),e)return f.map(()=>null)}return f.map(o=>a.get(o.ref)?.text??null)}),w=async f=>{let u=await r(f);return u===null?null:P(s,f,async()=>u)};try{let f=await x(t.manifest),u=await K(s,{repoKey:t.repoKey,entries:d(f),read:w,localListing:!0,repository:{context:async()=>t.selectedRoot===null?null:{selectedRoot:t.selectedRoot},list:async()=>{let n=await R(null),b=await x(n);return y=b,{entries:d(b),truncated:n.truncated,entriesVisited:n.entriesVisited}},read:async n=>(await w(n),a.get(n.ref)??{text:null,bytesRead:0})}});m();let o={repoKey:t.repoKey,...u},h=new Map(f.map(n=>[L(n.path,o.root),n]));o.root!==void 0&&y.forEach(n=>h.set(n.path,n));let c=Object.keys(o.files).map(n=>{let b=h.get(n);if(!b)throw k("bad_request");return{...b,path:n}}),{calls:p}=V(s,o);return g=c.map(n=>n.id),{source:o,finalFiles:c,calls:p}}finally{a.clear(),l.clear(),i.finish?.(g)}}async function Le(s,t,i={}){let l=s.settings,a=G(l,t.requestTools);return U({...s,settings:l,qualityConfig:a},t,i)}export{Y as prepareRelayAnalysis,Le as runEngineAnalysis};
1
+ import{a as Y,b as C}from"../chunks/F3R4J3ND.js";import{b as X}from"../chunks/S27Y2TP5.js";import{b as z,c as _,d as H,e as S,f as j}from"../chunks/4UDQBDDE.js";import{O as Q,ba as D,ia as T,qa as B,sa as G,ta as V,ua as J,wa as U,ya as W}from"../chunks/W24SFYZM.js";import"../chunks/5B5UCWD3.js";import"../chunks/HHFDNY6V.js";import"../chunks/Y7JGSUOA.js";import"../chunks/3MTXB4MK.js";import"../chunks/MZOKZ3N6.js";import"../chunks/4RXRAB5S.js";import"../chunks/HTLIRVP7.js";import{c as N}from"../chunks/N7U5N42V.js";import"../chunks/QDYMR6KS.js";import"../chunks/E7TFIHC5.js";import"../chunks/4F6ZIHXU.js";import"../chunks/VGYWI4X2.js";import"../chunks/57M4OQJM.js";import"../chunks/J4AXGE5W.js";import"../chunks/IBCFGUHI.js";import"../chunks/DZZBQDGO.js";import"../chunks/HVQJKPQ4.js";import"../chunks/CTLHKFPH.js";import"../chunks/FRXOQ2M6.js";import"../chunks/326F4XNG.js";import{c as M}from"../chunks/JGK37AWN.js";import"../chunks/KU5DINLW.js";import"../chunks/SP6XFHNH.js";import"../chunks/PBHHWFR6.js";import"../chunks/HCPO6QPU.js";import{h as q}from"../chunks/F54DOWKN.js";import"../chunks/33HRXJ5Q.js";import"../chunks/33IGHOYT.js";import{a as K}from"../chunks/LOBIDUCA.js";import{c as I}from"../chunks/YTHF2E2S.js";import"../chunks/4PT5C4IT.js";import"../chunks/2YREYGOG.js";import"../chunks/6YCABS5T.js";import"../chunks/M5YWJY7P.js";import"../chunks/M6HYSTQD.js";import"../chunks/4H23CSUM.js";import"../chunks/JEWBPIQI.js";import"../chunks/NXHVBJL4.js";import"../chunks/MJGB25S5.js";import"../chunks/RQTNTIR4.js";import{m as k}from"../chunks/LMUXOKIM.js";import"../chunks/QVXARKP7.js";import{Ib as E,Ka as v}from"../chunks/2AASSZRO.js";import"../chunks/74FPPPIG.js";import"../chunks/MKYLK6DB.js";import"../chunks/5TATKWLG.js";import"../chunks/OKBK3JL3.js";import"../chunks/JKWTHRUR.js";import{b as O}from"../chunks/3GUKUEEJ.js";import"../chunks/LFYTD7JF.js";import"../chunks/MGVIKA74.js";import"../chunks/YUY436SM.js";import{e as P}from"../chunks/C6X5GDG4.js";import"../chunks/724WZMYW.js";import"../chunks/YWL52FVW.js";import"../chunks/SJESFYBA.js";import"../chunks/RUVMFAST.js";import"../chunks/S27VIQMZ.js";import"../chunks/INVTU73D.js";import"../chunks/A7WJJMRY.js";import"../chunks/Q5WR6B2H.js";import"../chunks/VDUFPTDD.js";function Z(r,s){return D(r,s,{codeInputs:!1,recall:!1,secondOpinion:!1})}function L(r,s,a,d){let n=s.findingQuality,w={...a.findingCheck?.state?.result??{kept:s.findings,dropped:[],warnings:[]}};n?.assessments&&w.qualityAudit&&(w.qualityAudit={coverage:n.coverage??[],verdicts:n.verdicts??[],assessments:n.assessments,...n.shadow?{shadow:n.shadow}:{}});let e=V(s.findings,s.structures,s.findingHeadlines??[],s.findingHeadlineDiagnostics),m=new Map(e.rows.filter(t=>t.target==="finding").map(t=>[t.index,{headline:t.headline,ifLeft:t.ifLeft}])),y=new Map(e.rows.filter(t=>t.target==="structure").map(t=>[t.index,{headline:t.headline,ifLeft:t.ifLeft}])),x=y.size?s.structures.map((t,c)=>y.has(c)?{...t,...y.get(c)}:t):s.structures,b=m.size?s.findings.map((t,c)=>m.has(c)?{...t,...m.get(c)}:t):s.findings,i=a.findingQuality?.config.switches.ranking?q(b,n?.assessments??[]):void 0,g=v(b),A=i?.ordered??[...g.active,...g.notActive],o=s.structuralFindingCount===void 0?void 0:b.slice(0,s.structuralFindingCount),p=v(o??[]),f=o&&(i?q(o,n?.assessments??[]).ordered:[...p.active,...p.notActive]),u=f?T(x,f.map(t=>A.indexOf(t))):x;return{repoKey:r,findings:A,structures:u,graph:s.graph,warnings:s.warnings,...d?{proposalCounts:d}:{},...e.diagnostics?{findingHeadlineDiagnostics:e.diagnostics}:{},skippedFiles:a.inspectPlan?.skipped??[],passes:a.inspectPlan?.passes.length??1,findingCheck:w,...i?{ranking:{defaultIds:i.defaultIds,hiddenIds:i.hiddenIds,emptyMessage:i.emptyMessage}}:{}}}async function $(r,s,a,d=Y){let n={...a.state,repos:a.repos,mapped:a.fragments.map(({fragment:e})=>e),findingsRaw:a.findings,warnings:a.state?.warnings??[],splitCheckPriced:!0,splitFindingsPriced:!0},w=C(s,d);for(;;){let e=await W({phase:"structuring",state:n,settings:r,execution:{scopeConcurrency:4,forLocal:!0}},w);if(n=S(n,e),e.next==="persisting")return{state:n,structures:n.structuresRaw??[],warnings:n.warnings??[]}}}function te(r,s){I(s)&&r.requestTools.headlinePlan(N([]))}async function ee(r,s,a={}){let{settings:d,qualityConfig:n}=r;te(s,d);let w=Q(d);if(!Object.keys(r.files).length)throw new O("empty_folder","No admitted source files were found.");let e={repos:[{key:r.repoKey,kind:"fs",files:r.files,...r.root!==void 0?{root:r.root}:{},...r.mechanicalInventory?{mechanicalInventory:r.mechanicalInventory}:{},...r.skippedFiles?.length?{refused:r.skippedFiles}:{}}],warnings:r.warnings??[],...r.fragment?{mapped:[r.fragment]}:{}},m=C(s,s.progress);for(;;){let i=await j({phase:"mapping",state:e,settings:d,execution:{scopeConcurrency:4,forLocal:!0,preparation:{capUsd:20,confirmPrice:!1,qualityConfig:n}}},m);if(e=S(e,i),i.next!=="mapping")break}e={...e,analysisFlags:{...w,sourceNotes:!a.findingsOnly&&w.sourceNotes},findingQuality:{config:n},warnings:[...e.warnings??[],...n.diagnostics]};let y="inspecting";for(m.progress.checkpoint=async(i,g)=>{e={...e,...i,...g?{passResults:{...e.passResults,[g.index]:g.result}}:{}},await s.progress.checkpoint(i,g)};y!=="structuring";){let g=await(y==="inspecting"?B:G)({phase:y,state:e,settings:d,execution:{scopeConcurrency:4,passConcurrency:4,forLocal:!0}},m);e=S(e,g),y=g.next}let x=(i=!0)=>J({phase:"persisting",state:e,settings:d,execution:{scopeConcurrency:4}},{mechanical:i});if(!a.findingsOnly){let i=L(r.repoKey,x(!1),e,r.proposalCounts),g=e.findingsRaw;e={...(await $(d,s,{repos:e.repos,fragments:[{repoKey:r.repoKey,fragment:e.mapped[0]}],graph:i.graph,findings:i.findings,state:e},m.progress)).state,findingsRaw:g}}e=S(e,await U({phase:"persisting",state:e,settings:d,execution:{scopeConcurrency:4,forLocal:!0}},m));let b=x();return await a.resultSink?.(b),L(r.repoKey,b,e,r.proposalCounts)}import{createHash as se}from"node:crypto";async function re(r,s,a){let d=new Map,n=new Map,w=[],e,m=[],y=()=>{if(a.signal?.throwIfAborted(),e)throw k(e)},x=async o=>{y();try{return await a.list(o)}catch{throw a.signal?.throwIfAborted(),k("unavailable")}},b=async o=>{let p=[],f=new Set,u=new Set,t=new Set,c=o;for(;;){if(y(),c.snapshot!==s.manifest.snapshot||c.commit!==s.manifest.commit)throw k("bad_request");for(let h of c.files){let F=d.get(h.id);if(f.has(h.path)||u.has(h.id)||F&&(F.hash!==h.hash||F.size!==h.size))throw k("bad_request");f.add(h.path),u.add(h.id);let l={...h};d.set(h.id,l),p.push(l)}if(c.complete)return p;if(!c.cursor||t.has(c.cursor))throw k("bad_request");t.add(c.cursor),c=await x(c.cursor)}},i=o=>o.map(({id:p,path:f,size:u})=>({path:f,size:u,ref:p})),g=_(async o=>{if(a.signal?.throwIfAborted(),e)return o.map(()=>null);let p=[...new Set(o.map(f=>f.ref))].filter(f=>!n.has(f)).map(f=>d.get(f));if(p.length){let f;try{f=await a.read(p)}catch{return a.signal?.throwIfAborted(),e="unavailable",o.map(()=>null)}a.signal?.throwIfAborted();let u=new Map(p.map(t=>[t.id,t]));for(let t of f){let c=u.get(t.id);if(!c||t.text!==null&&!t.refusal&&(Buffer.byteLength(t.text)!==c.size||se("sha256").update(t.text).digest("hex")!==c.hash)){e="bad_request";break}u.delete(t.id),n.set(t.id,{text:t.refusal?null:t.text,bytesRead:t.bytesRead,...t.refusal?{refusal:t.refusal}:{}})}if(u.size&&(e="bad_request"),e)return o.map(()=>null)}return o.map(f=>n.get(f.ref)?.text??null)}),A=async o=>{let p=await g(o);return p===null?null:E(r,o,async()=>p)};try{let o=await b(s.manifest),p=M(r,z(r,i(o)),{paths:K(r)}),f=await H(r,{repoKey:s.repoKey,entries:i(o),read:A,localListing:!0,...s.proposal?{proposal:s.proposal}:{},repository:{context:async()=>s.selectedRoot===null?null:{selectedRoot:s.selectedRoot},list:async()=>{let l=await x(null),R=await b(l);return w=R,{entries:i(R),truncated:l.truncated,entriesVisited:l.entriesVisited}},read:async l=>(await A(l),n.get(l.ref)??{text:null,bytesRead:0})}});y();let u={repoKey:s.repoKey,...f},t=new Map(o.map(l=>[P(l.path,u.root),l]));u.root!==void 0&&w.forEach(l=>t.set(l.path,l));let c=Object.keys(u.files).map(l=>{let R=t.get(l);if(!R)throw k("bad_request");return{source:{...R},resultPath:l}}),h=c.map(({source:l,resultPath:R})=>({...l,path:R})),{calls:F}=X(r,u);return m=h.map(l=>l.id),{source:u,finalFiles:h,calls:F,finalFileMapping:c,analysisSize:p}}finally{n.clear(),d.clear(),a.finish?.(m)}}async function He(r,s,a={}){let d=r.settings,n=Z(d,s.requestTools);return ee({...r,settings:d,qualityConfig:n},s,a)}export{re as prepareRelayAnalysis,He as runEngineAnalysis};
@@ -4,7 +4,7 @@ import { stableStringify } from "../../analysis-core/llm/stable-json.js";
4
4
  import { engineIdentity, engineKeyPolicy, samePin } from "../../contract/engine.js";
5
5
  export { ENGINE_ABI, ENGINE_SPAWNER_CONTRACT, engineIdentity } from "../../contract/engine.js";
6
6
  export const ENGINE_IMPORTS = ["node:crypto", "node:path"];
7
- export const ENGINE_EXPORTS = ["prepareRelayAnalysis", "runEngineAnalysis"];
7
+ export const ENGINE_EXPORTS = ["createEngineSession", "prepareRelayAnalysis", "runEngineAnalysis"];
8
8
  const engineProgram = z.strictObject({ identity: engineIdentity, program: z.string().min(1),
9
9
  imports: z.array(z.enum(ENGINE_IMPORTS)).refine(paths => paths.every((path, i) => i === 0 || paths[i - 1] < path)),
10
10
  });
@@ -1,11 +1,13 @@
1
+ import { fileScopeOf } from "../analysis-core/analysis/file-analysis-plan.js";
1
2
  import { createHash } from "node:crypto";
2
3
  import { realpath, stat } from "node:fs/promises";
3
4
  import { dirname, isAbsolute, join, parse, relative, resolve, sep } from "node:path";
4
- import { analysisScopeSchema, analysisSelectionRequestSchema } from "../analysis-core/contracts/analysis-selection.js";
5
- import { fileScopeEnabled, fileScopeRequested, selectionModeEnabled } from "../adapters/settings.js";
5
+ import { ANALYSIS_SELECTION_LIMITS, analysisScopeSchema, analysisSelectionRequestSchema } from "../analysis-core/contracts/analysis-selection.js";
6
+ import { fileScopeEnabled, fileScopeRequested, multiEntryEnabled, selectionModeEnabled } from "../adapters/settings.js";
6
7
  import { resolveFolderPath } from "../adapters/folder-path.js";
7
8
  import { INVALID_SCOPE_MESSAGE, INVALID_SELECTION_MESSAGE } from "../contract/scope-choice.js";
8
9
  import { cliRefusals } from "../contract/cli-refusals.js";
10
+ import { mapLimit } from "../analysis-core/map-limit.js";
9
11
  function within(root, path) {
10
12
  const rel = relative(root, path);
11
13
  return rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute(rel);
@@ -13,6 +15,10 @@ function within(root, path) {
13
15
  function localPath(root, path) {
14
16
  return relative(root, path).split(sep).join("/");
15
17
  }
18
+ function canonicalScope(scope) {
19
+ const imports = scope.imports;
20
+ return { ...scope, imports: Array.isArray(imports) ? imports.length ? [...imports].sort() : "none" : imports };
21
+ }
16
22
  function folderSelection(path, launchRoot) {
17
23
  const parsed = analysisSelectionRequestSchema.safeParse({ kind: "folder", launchRoot,
18
24
  folder: localPath(launchRoot, path) || "." });
@@ -21,6 +27,38 @@ function folderSelection(path, launchRoot) {
21
27
  }
22
28
  /** Selection coordinates are shared by reading, Git facts, outputs, and recovery. Membership stays in core. */
23
29
  export async function resolveAnalysisSelection(path, cwd, settings, scope) {
30
+ const paths = typeof path === "string" ? [path] : path;
31
+ if (!paths.length || paths.length > ANALYSIS_SELECTION_LIMITS.files
32
+ || paths.some(path => typeof path !== "string" || !path.trim()))
33
+ throw new Error(INVALID_SELECTION_MESSAGE);
34
+ if (paths.length > 1 || scope?.entries) {
35
+ if (!multiEntryEnabled(settings))
36
+ throw new Error(paths.length > 1 ? INVALID_SELECTION_MESSAGE : INVALID_SCOPE_MESSAGE);
37
+ const requested = await mapLimit(paths, 4, path => resolveAnalysisSelection(path, cwd, settings));
38
+ if (requested.some(selection => selection.kind !== "file"))
39
+ throw new Error(INVALID_SELECTION_MESSAGE);
40
+ const originals = scope?.entries ? await mapLimit(scope.entries, 4, path => resolveAnalysisSelection(path, cwd, settings)) : requested;
41
+ if (originals.some(selection => selection.kind !== "file")
42
+ || requested.some(selection => !originals.some(original => original.entryPath === selection.entryPath)))
43
+ throw new Error(INVALID_SCOPE_MESSAGE);
44
+ const unique = [...new Map(originals.map(selection => [selection.entryPath, selection])).values()].sort((a, b) => a.entryPath.localeCompare(b.entryPath));
45
+ if (unique.length === 1) {
46
+ if (scope?.entries)
47
+ throw new Error(INVALID_SCOPE_MESSAGE);
48
+ return resolveAnalysisSelection(unique[0].path, cwd, settings, scope);
49
+ }
50
+ const first = unique[0], entries = unique.map(selection => selection.entryPath);
51
+ const chosen = scope ? canonicalScope(scope) : undefined;
52
+ const request = analysisSelectionRequestSchema.safeParse({ kind: "file", launchRoot: first.launchRoot, entry: entries[0], entries,
53
+ ...(chosen ? { scope: chosen } : {}) });
54
+ if (!request.success)
55
+ throw new Error(INVALID_SCOPE_MESSAGE);
56
+ const identity = JSON.stringify([first.launchRoot, entries, chosen ? [chosen.snapshot, chosen.entry, chosen.imports] : null]);
57
+ const hash = createHash("sha256").update(JSON.stringify(entries)).digest("hex");
58
+ return { ...first, outputAnchor: first.launchRoot, outputDir: join(first.launchRoot, ".counterfact/files", hash),
59
+ selectionKey: `files:${createHash("sha256").update(identity).digest("hex")}`, request: request.data };
60
+ }
61
+ path = paths[0];
24
62
  if (fileScopeRequested(settings) && !fileScopeEnabled(settings))
25
63
  throw new Error(cliRefusals.release_unavailable);
26
64
  if (!fileScopeEnabled(settings)) {
@@ -62,8 +100,7 @@ export async function resolveAnalysisSelection(path, cwd, settings, scope) {
62
100
  const parsed = analysisScopeSchema.safeParse(scope);
63
101
  if (!parsed.success || parsed.data.entry !== entryPath)
64
102
  throw new Error(INVALID_SCOPE_MESSAGE);
65
- const imports = parsed.data.imports;
66
- chosen = { ...parsed.data, imports: Array.isArray(imports) ? imports.length ? [...imports].sort() : "none" : imports };
103
+ chosen = canonicalScope(parsed.data);
67
104
  }
68
105
  const request = analysisSelectionRequestSchema.safeParse({ kind: "file", launchRoot, entry: entryPath,
69
106
  ...(chosen === undefined ? {} : { scope: chosen }) });
@@ -78,12 +115,17 @@ export async function resolveAnalysisSelection(path, cwd, settings, scope) {
78
115
  }
79
116
  /** Entry points resolve coordinates once; downstream stages reuse the same captured description. */
80
117
  export async function resolveRunSelection(path, cwd, settings, options = {}) {
118
+ if (options.paths && !multiEntryEnabled(settings))
119
+ throw new Error(INVALID_SELECTION_MESSAGE);
81
120
  if (!selectionModeEnabled(settings)) {
82
121
  if (options.scope !== undefined)
83
122
  throw new Error(INVALID_SCOPE_MESSAGE);
84
123
  return undefined;
85
124
  }
86
- return options.selection ?? resolveAnalysisSelection(path, cwd, settings, options.scope);
125
+ const selection = options.selection ?? await resolveAnalysisSelection(options.paths ?? path, cwd, settings, options.scope);
126
+ if (selection.kind === "file" && fileScopeOf(settings) !== undefined)
127
+ throw new Error(INVALID_SCOPE_MESSAGE);
128
+ return selection;
87
129
  }
88
130
  export function analysisSaveOptions(selection, outputDir) {
89
131
  return { defaultFileOutput: selection?.kind === "file" && outputDir === undefined,
package/dist/cli/api.js CHANGED
@@ -1 +1 @@
1
- export { ApiClient, ApiError, DEFAULT_URL, errorCode, errorText } from "../gatekeeper/cli-api.js";
1
+ export { ApiClient, ApiError, SavedSignInError, DEFAULT_URL, errorCode, errorText } from "../gatekeeper/cli-api.js";