codebaseiq 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +80 -0
- package/dist/augment-vue-worker.js +1 -1
- package/dist/{chunk-7GAK2F3H.js → chunk-23AD24QZ.js} +12 -12
- package/dist/chunk-24TEZJST.js +2 -0
- package/dist/{chunk-356EZBIP.js → chunk-26EDDGAX.js} +2 -2
- package/dist/{chunk-O2M3VNDY.js → chunk-26EZWQ24.js} +2 -2
- package/dist/{chunk-U33PMPNW.js → chunk-2L3NCI52.js} +2 -2
- package/dist/{chunk-MSI3K7PJ.js → chunk-2QJAVISG.js} +2 -2
- package/dist/{chunk-4LK5OIPW.js → chunk-2ZBZRYX4.js} +2 -2
- package/dist/chunk-33AXWMO2.js +2 -0
- package/dist/{chunk-EQNMD62X.js → chunk-37K55EG3.js} +2 -2
- package/dist/{chunk-ITSJMNUD.js → chunk-3EFZ5KQ4.js} +2 -2
- package/dist/{chunk-D7DOB27N.js → chunk-3F23W57G.js} +2 -2
- package/dist/{chunk-BGGB5N53.js → chunk-3GKKCVKK.js} +2 -2
- package/dist/{chunk-MQW6SJ4P.js → chunk-3SYRGMCL.js} +2 -2
- package/dist/{chunk-PFC44E6D.js → chunk-3VDL7GTY.js} +2 -2
- package/dist/{chunk-7JELP5YE.js → chunk-3XBZ5PKL.js} +2 -2
- package/dist/{chunk-75KJGYX7.js → chunk-42PXSE74.js} +2 -2
- package/dist/{chunk-FEIZXBLH.js → chunk-4GIERC2P.js} +2 -2
- package/dist/{chunk-W7YLRXZE.js → chunk-4UXDBRIF.js} +2 -2
- package/dist/chunk-4XMZYLW5.js +2 -0
- package/dist/{chunk-6BF3VYEF.js → chunk-55NUXP2V.js} +2 -2
- package/dist/chunk-5AJQCOZZ.js +21 -0
- package/dist/{chunk-5DSL3NT2.js → chunk-5NUPFZFA.js} +2 -2
- package/dist/{chunk-RJVAPMHF.js → chunk-65QIFIF6.js} +2 -2
- package/dist/{chunk-36JC5BG2.js → chunk-66Q5VLH6.js} +2 -2
- package/dist/{chunk-D7AZAOZX.js → chunk-6CQPIIS7.js} +2 -2
- package/dist/{chunk-GV2CEZCW.js → chunk-6CTSFS7R.js} +2 -2
- package/dist/{chunk-Q4XEU3UH.js → chunk-6EBUAKJT.js} +2 -2
- package/dist/chunk-6I55VYFG.js +4 -0
- package/dist/chunk-6NUURWPF.js +3 -0
- package/dist/{chunk-MHWMEZDA.js → chunk-6P5QMOM7.js} +2 -2
- package/dist/{chunk-LZSQ6X7E.js → chunk-6S5FE4ZF.js} +2 -2
- package/dist/chunk-74LRKLNC.js +22 -0
- package/dist/chunk-75A23IID.js +3 -0
- package/dist/chunk-75VNTSO6.js +7 -0
- package/dist/chunk-7HBBVZJ6.js +3 -0
- package/dist/{chunk-VWYGCMV5.js → chunk-7PPBMBH6.js} +2 -2
- package/dist/{chunk-3RSBGWGL.js → chunk-7WG57A5X.js} +2 -2
- package/dist/{chunk-FWQGH2N2.js → chunk-7XHZX6FX.js} +2 -2
- package/dist/{chunk-RIYJ4L33.js → chunk-A5HJ3CJW.js} +2 -2
- package/dist/{chunk-LONKINMJ.js → chunk-AJ5HVC5Z.js} +2 -2
- package/dist/{chunk-ZAFGY22Q.js → chunk-AYRHOFLV.js} +2 -2
- package/dist/chunk-AZDY3EKD.js +93 -0
- package/dist/{chunk-CW6AXOLR.js → chunk-AZZNG5Z2.js} +2 -2
- package/dist/chunk-BEKCTUPY.js +3 -0
- package/dist/{chunk-CR3OG6SQ.js → chunk-BKKX2OU5.js} +2 -2
- package/dist/{chunk-5LL4KEHO.js → chunk-BQKRYKDD.js} +2 -2
- package/dist/{chunk-FOZ74V56.js → chunk-BVDQU2XJ.js} +2 -2
- package/dist/chunk-C3PPB2T5.js +5 -0
- package/dist/chunk-CABIZQXQ.js +21 -0
- package/dist/{chunk-M2Y6PCFE.js → chunk-CAH322MC.js} +2 -2
- package/dist/{chunk-EIBGSU2R.js → chunk-CBOOHUK4.js} +2 -2
- package/dist/chunk-CFIICAOM.js +2 -0
- package/dist/{chunk-XMJ53WG4.js → chunk-CPWYEPWQ.js} +2 -2
- package/dist/{chunk-LQHYYIOB.js → chunk-CRT7I7RJ.js} +2 -2
- package/dist/{chunk-IZDPGOZR.js → chunk-CZVSQQDU.js} +2 -2
- package/dist/{chunk-TNJGTQWO.js → chunk-D3KE26FS.js} +2 -2
- package/dist/{chunk-GP7C5VAE.js → chunk-DNRHRVKS.js} +2 -2
- package/dist/{chunk-SGMNWYTH.js → chunk-DOQLO74K.js} +2 -2
- package/dist/{chunk-AURCQHSG.js → chunk-DP3EJ6XL.js} +2 -2
- package/dist/{chunk-C7QWUBR2.js → chunk-DQZF7MP6.js} +2 -2
- package/dist/{chunk-E52K4L2W.js → chunk-DTM4EHD2.js} +2 -2
- package/dist/{chunk-YRKP7PM7.js → chunk-DUM7GR6B.js} +2 -2
- package/dist/{chunk-I22IZYDI.js → chunk-DZ4QOIRY.js} +2 -2
- package/dist/{chunk-EXZ7VLRY.js → chunk-E3R6TJ5T.js} +2 -2
- package/dist/chunk-E4DP45YU.js +3 -0
- package/dist/{chunk-PUVNH4PO.js → chunk-E5U6N5WI.js} +2 -2
- package/dist/chunk-E7T22WET.js +21 -0
- package/dist/{chunk-QEOWONKY.js → chunk-ED7ZAZ5V.js} +2 -2
- package/dist/{chunk-RCIGX23V.js → chunk-EDMG5CSO.js} +2 -2
- package/dist/{chunk-IHSLIIL3.js → chunk-EOSUV7H5.js} +2 -2
- package/dist/{chunk-FQTIFWLR.js → chunk-ESWVTSHU.js} +2 -2
- package/dist/{chunk-6VREELBC.js → chunk-ETZBIG6K.js} +2 -2
- package/dist/chunk-EYSJHKX6.js +3 -0
- package/dist/{chunk-Q23IMHXS.js → chunk-F4AGM7ZE.js} +37 -37
- package/dist/{chunk-FTTV7IRX.js → chunk-FPUJRBHL.js} +50 -50
- package/dist/{chunk-CCIYWXX6.js → chunk-G2UU6PQP.js} +2 -2
- package/dist/{chunk-C6WKPKCF.js → chunk-G3KRXNNT.js} +2 -2
- package/dist/{chunk-TEANKHUU.js → chunk-G3ZBP72R.js} +2 -2
- package/dist/{chunk-NBCQZSGR.js → chunk-GC4I33OD.js} +2 -2
- package/dist/{chunk-NDKOVQFG.js → chunk-GLXEWYQY.js} +2 -2
- package/dist/{chunk-AEXQYQD7.js → chunk-GRHNPFHT.js} +2 -2
- package/dist/{chunk-NBZKSTXP.js → chunk-GWESWURK.js} +2 -2
- package/dist/{chunk-Q3ZCQY2Y.js → chunk-GXOFPAIR.js} +2 -2
- package/dist/{chunk-USOAJHY7.js → chunk-H4FGIFEU.js} +2 -2
- package/dist/{chunk-LKUTSP4G.js → chunk-HOGS6JFP.js} +2 -2
- package/dist/{chunk-UQE4XFSA.js → chunk-HSJLK5MC.js} +2 -2
- package/dist/{chunk-BWL3PMPT.js → chunk-HTPEUJ42.js} +2 -2
- package/dist/{chunk-3RR2K7EZ.js → chunk-IBPXUGJV.js} +2 -2
- package/dist/{chunk-BFBIMTCJ.js → chunk-ITA3N7G6.js} +2 -2
- package/dist/chunk-JG5OWAEB.js +22 -0
- package/dist/{chunk-2PRONPAS.js → chunk-JGJKRTTB.js} +2 -2
- package/dist/{chunk-TJWVT4DO.js → chunk-JGXLB7PR.js} +2 -2
- package/dist/{chunk-K7JLSGCJ.js → chunk-JKUF2UG6.js} +3 -3
- package/dist/{chunk-CIYA2KZN.js → chunk-JOYASZRF.js} +2 -2
- package/dist/{chunk-U7NUXDQO.js → chunk-K3PFL5QQ.js} +2 -2
- package/dist/{chunk-WK2IQJPK.js → chunk-KAXBWTSX.js} +2 -2
- package/dist/{chunk-5ZI2PPI7.js → chunk-KHHAGHAW.js} +2 -2
- package/dist/{chunk-UW6KD57C.js → chunk-KJLUQVBG.js} +2 -2
- package/dist/{chunk-WWCV4E6J.js → chunk-KOVUXHIZ.js} +2 -2
- package/dist/chunk-KPMMOAV5.js +4 -0
- package/dist/{chunk-GDHWOA57.js → chunk-LKJZNGMA.js} +2 -2
- package/dist/{chunk-3VJ3OCRE.js → chunk-LMPOC372.js} +2 -2
- package/dist/{chunk-F3QSL4W2.js → chunk-LTPNP6D5.js} +2 -2
- package/dist/{chunk-MVRGB4KJ.js → chunk-M3IBH6C3.js} +9 -9
- package/dist/{chunk-PHNCEUXX.js → chunk-MAGBSB6E.js} +2 -2
- package/dist/{chunk-QMOZZ2VX.js → chunk-MFMHD36E.js} +2 -2
- package/dist/{chunk-LMTSB3TB.js → chunk-MJX2J5QE.js} +2 -2
- package/dist/{chunk-PTQPPPG2.js → chunk-N26LGGSF.js} +2 -2
- package/dist/{chunk-J7AMBVWF.js → chunk-NB2DAVPP.js} +2 -2
- package/dist/{chunk-JYI7CV25.js → chunk-NJDXNYLG.js} +2 -2
- package/dist/{chunk-BRQL7AFJ.js → chunk-NMKQOIYZ.js} +2 -2
- package/dist/{chunk-ICUL7XRT.js → chunk-NRNVMB2R.js} +2 -2
- package/dist/{chunk-DDN2F6GB.js → chunk-O5BWFNIH.js} +2 -2
- package/dist/{chunk-HVFB3PME.js → chunk-O7PCDZ5B.js} +2 -2
- package/dist/{chunk-KPZGTB2O.js → chunk-OAJYNPRU.js} +2 -2
- package/dist/{chunk-2EDX3JT5.js → chunk-OFUC6R46.js} +2 -2
- package/dist/chunk-OSZ7PW5K.js +5 -0
- package/dist/{chunk-B3UYV66Z.js → chunk-OZ2M2X7A.js} +2 -2
- package/dist/{chunk-6O3KXIDL.js → chunk-OZI44VCR.js} +2 -2
- package/dist/{chunk-XN3EKMLI.js → chunk-PCKIKOUA.js} +2 -2
- package/dist/{chunk-NCJILOAK.js → chunk-PFMQRHC6.js} +2 -2
- package/dist/chunk-PVKSZBX5.js +82 -0
- package/dist/{chunk-NEWHKGVD.js → chunk-QANCT4MO.js} +2 -2
- package/dist/{chunk-ZNH33XIB.js → chunk-QEWN7BLP.js} +2 -2
- package/dist/{chunk-OQUCBKOI.js → chunk-QFJ46F6F.js} +2 -2
- package/dist/{chunk-2E6OUPCF.js → chunk-QPQWR6CW.js} +2 -2
- package/dist/{chunk-YTJHCGYB.js → chunk-QX4HDF2I.js} +2 -2
- package/dist/{chunk-J3GLP7Q5.js → chunk-R2F2CTBA.js} +2 -2
- package/dist/{chunk-2OMXFE64.js → chunk-R7PXHYMY.js} +2 -2
- package/dist/{chunk-F74LZWCE.js → chunk-RGBZDOUO.js} +2 -2
- package/dist/{chunk-362QOSFD.js → chunk-RNPG5P4P.js} +2 -2
- package/dist/{chunk-D62CTZX6.js → chunk-RS6UYNEP.js} +2 -2
- package/dist/{chunk-VGWZ4MOY.js → chunk-RVBRPBLQ.js} +2 -2
- package/dist/{chunk-5IZRKWTZ.js → chunk-RWAZCEJD.js} +2 -2
- package/dist/{chunk-ZQ62NNKN.js → chunk-RWDIONS7.js} +2 -2
- package/dist/{chunk-HQA7EBSK.js → chunk-S3CJYDXP.js} +2 -2
- package/dist/{chunk-GL6UTNUB.js → chunk-S6UTKCBT.js} +2 -2
- package/dist/chunk-SLLFJXTW.js +27 -0
- package/dist/{chunk-TOTWJZIX.js → chunk-T3KTMLQT.js} +2 -2
- package/dist/{chunk-67VJAYVR.js → chunk-TB575ZGO.js} +2 -2
- package/dist/{chunk-YHPG3S2U.js → chunk-TG4GMU73.js} +2 -2
- package/dist/{chunk-CVHOQONG.js → chunk-THKM7OXM.js} +2 -2
- package/dist/{chunk-GVAF222T.js → chunk-TNLOX4TN.js} +2 -2
- package/dist/{chunk-HENP2O4A.js → chunk-UHFZDQZJ.js} +2 -2
- package/dist/{chunk-YT4DVWUV.js → chunk-UUMAM5LM.js} +2 -2
- package/dist/{chunk-JX6ZWDOS.js → chunk-UUT5P3V7.js} +2 -2
- package/dist/{chunk-Z6RL7XOE.js → chunk-VEPK6M5C.js} +2 -2
- package/dist/{chunk-C7OUW52M.js → chunk-VPCHKZ3I.js} +2 -2
- package/dist/{chunk-GIDCP7KV.js → chunk-VZY3XOBU.js} +2 -2
- package/dist/{chunk-XQAVQVIL.js → chunk-W6E6ME7G.js} +2 -2
- package/dist/{chunk-XQPPURLQ.js → chunk-WGYZBS5S.js} +2 -2
- package/dist/{chunk-GUFPEFBG.js → chunk-WUP24Q4U.js} +2 -2
- package/dist/chunk-WXUHXSLN.js +2 -0
- package/dist/{chunk-HINZQKSY.js → chunk-X4YZD2MP.js} +2 -2
- package/dist/chunk-XARPGCTL.js +2 -0
- package/dist/{chunk-5FWR5HLG.js → chunk-XDQ6QJF5.js} +20 -20
- package/dist/{chunk-JCMFBF4Z.js → chunk-XRH7R5SX.js} +2 -2
- package/dist/{chunk-BBP7HVBJ.js → chunk-XVJ2E7W7.js} +2 -2
- package/dist/{chunk-D53LWANR.js → chunk-Y7GFAU5N.js} +2 -2
- package/dist/{chunk-T6MQNNAC.js → chunk-YBDLHFZZ.js} +2 -2
- package/dist/{chunk-ZB4C5TTR.js → chunk-YI3CJPOY.js} +2 -2
- package/dist/chunk-YMAGXBLT.js +3 -0
- package/dist/{chunk-MZNMASFM.js → chunk-YRAGNEBZ.js} +2 -2
- package/dist/chunk-YXZAAQHZ.js +3 -0
- package/dist/chunk-Z2L5H2HF.js +3 -0
- package/dist/{chunk-JSNTHRLQ.js → chunk-ZHK7TVAJ.js} +2 -2
- package/dist/chunk-ZJNV27DZ.js +4 -0
- package/dist/{chunk-GQLDYCWS.js → chunk-ZQ6GAIUV.js} +2 -2
- package/dist/{chunk-TPO7XC5Z.js → chunk-ZQE2QYAC.js} +2 -2
- package/dist/chunk-ZUQ2MDFT.js +2 -0
- package/dist/cli-context-4R2LREXQ.js +3 -0
- package/dist/cli-context-6X7JYARX.js +2 -0
- package/dist/cli-failure-RECEHOM2.js +3 -0
- package/dist/cli-program-MXA3WTAO.js +7 -0
- package/dist/cli.js +1 -1
- package/dist/{code-viewer-VHLBLIUM.js → code-viewer-C6HE4DFC.js} +2 -2
- package/dist/{code-viewer-KIXEYQNJ.js → code-viewer-XHSSAMBX.js} +2 -2
- package/dist/{command-descriptors-YCLATF5I.js → command-descriptors-NWW34Z54.js} +171 -171
- package/dist/{command-descriptors-F5P2V3NW.js → command-descriptors-XHK3PK2I.js} +116 -116
- package/dist/{command-panels-SZONPMLJ.js → command-panels-OXMCJ2QZ.js} +2 -2
- package/dist/direct-navigation-236VXYBZ.js +3 -0
- package/dist/direct-navigation-36YSILY6.js +2 -0
- package/dist/index.js +1 -1
- package/dist/invocation-command-descriptors-35JULLNR.js +3 -0
- package/dist/invocation-command-descriptors-FEWSFUO2.js +2 -0
- package/dist/output-continuation-command-MJBVH3A5.js +2 -0
- package/dist/output-continuation-command-TBXIOPHQ.js +3 -0
- package/dist/project-reindex-5TCGOVSK.js +2 -0
- package/dist/project-reindex-BUNTSYKM.js +3 -0
- package/dist/queries/affected.js +1 -1
- package/dist/queries/anchors.js +1 -1
- package/dist/queries/architecture.js +1 -1
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity-hotspots.js +1 -1
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/context.js +1 -1
- package/dist/queries/convergence.js +1 -1
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dataflow.js +1 -1
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.js +1 -1
- package/dist/queries/deep-chains.js +1 -1
- package/dist/queries/dependence-slice.js +1 -1
- package/dist/queries/dependency-depth.js +1 -1
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.js +1 -1
- package/dist/queries/entry-map.js +1 -1
- package/dist/queries/evidence.js +1 -1
- package/dist/queries/extract-candidates.js +1 -1
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.js +1 -1
- package/dist/queries/isolated.js +1 -1
- package/dist/queries/locality-candidates.js +1 -1
- package/dist/queries/members.js +1 -1
- package/dist/queries/methods.js +1 -1
- package/dist/queries/not-implemented.js +1 -1
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/reference-neighborhood.js +1 -1
- package/dist/queries/reference-reachability.js +1 -1
- package/dist/queries/refs.js +1 -1
- package/dist/queries/self-audit.js +1 -1
- package/dist/queries/similar-chains.js +1 -1
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice.js +1 -1
- package/dist/queries/source-inspection.js +1 -1
- package/dist/queries/source-search.js +1 -1
- package/dist/queries/stale-abstractions.js +1 -1
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system-map.js +1 -1
- package/dist/queries/system.js +1 -1
- package/dist/queries/test-quality.js +1 -1
- package/dist/queries/trace.js +1 -1
- package/dist/queries/twin-ab.js +1 -1
- package/dist/queries/twin-drift.js +1 -1
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/value-flow.js +1 -1
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/queries/wrapper-candidates.js +1 -1
- package/dist/reindex-worker.js +1 -1
- package/dist/reindex.js +30 -30
- package/dist/runtime.js +1 -1
- package/dist/rust-semantic-session-server.js +1 -1
- package/dist/rust-semantic-session-worker.js +1 -1
- package/dist/rust-semantic-worker.js +1 -1
- package/dist/sentinel-ensure-command-3MZCLPQY.js +2 -0
- package/dist/sentinel-ensure-command-LEWHIRLL.js +3 -0
- package/dist/sentinel-worker.js +1 -1
- package/dist/typescript-mailbox-worker.js +1 -1
- package/dist/watch-server.js +6 -6
- package/docs/COMMAND_REFERENCE.md +2 -2
- package/docs/SECURITY_MODEL.md +3 -0
- package/package.json +1 -1
- package/skills/codebaseiq/SKILL.md +15 -3
- package/dist/chunk-23C5AD3B.js +0 -2
- package/dist/chunk-2I2UHZET.js +0 -2
- package/dist/chunk-5IC2WZAL.js +0 -22
- package/dist/chunk-5T44HG5Y.js +0 -88
- package/dist/chunk-6JMAVFL4.js +0 -3
- package/dist/chunk-6WAPPQ5F.js +0 -82
- package/dist/chunk-7UCDGXRW.js +0 -8
- package/dist/chunk-AQI4N64O.js +0 -22
- package/dist/chunk-DAKIGMIK.js +0 -21
- package/dist/chunk-DUKHVPU5.js +0 -4
- package/dist/chunk-DVWO7RBC.js +0 -2
- package/dist/chunk-FH5WG4LE.js +0 -2
- package/dist/chunk-GQXXOS55.js +0 -2
- package/dist/chunk-GWYZVVKY.js +0 -21
- package/dist/chunk-JFIA2JI3.js +0 -3
- package/dist/chunk-JLZLLLW5.js +0 -3
- package/dist/chunk-MEUHIDI3.js +0 -7
- package/dist/chunk-OFGOOL6U.js +0 -3
- package/dist/chunk-P4NVCOM7.js +0 -2
- package/dist/chunk-SMDIEDM4.js +0 -27
- package/dist/chunk-SX72EVMY.js +0 -3
- package/dist/chunk-T5X7DK6C.js +0 -3
- package/dist/chunk-T75DS2E6.js +0 -21
- package/dist/chunk-TJBOJUVN.js +0 -3
- package/dist/chunk-UC2FD2PS.js +0 -4
- package/dist/chunk-UQYQBLJX.js +0 -5
- package/dist/chunk-Z35GOVEH.js +0 -2
- package/dist/cli-context-FJL2JHOE.js +0 -3
- package/dist/cli-context-PQNWHMCQ.js +0 -2
- package/dist/cli-program-UO7PZD6V.js +0 -7
- package/dist/direct-navigation-4XJTXIDT.js +0 -2
- package/dist/direct-navigation-J5MVYYAD.js +0 -3
- package/dist/invocation-command-descriptors-RWV4VAI4.js +0 -2
- package/dist/invocation-command-descriptors-U76PN7IY.js +0 -3
- package/dist/output-continuation-command-BL25S26S.js +0 -3
- package/dist/output-continuation-command-BTETTXEC.js +0 -2
- package/dist/project-reindex-CRJU3IFG.js +0 -2
- package/dist/project-reindex-TQFCOA2O.js +0 -3
- package/dist/sentinel-ensure-command-OSWGCFFL.js +0 -3
- package/dist/sentinel-ensure-command-SPW7XQLB.js +0 -2
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import{eb as fe,gb as z}from"./chunk-AJ5HVC5Z.js";import{b as le}from"./chunk-ZZ3MWF33.js";import{f as he,g as me}from"./chunk-ZJNV27DZ.js";import{j as ge,l as x,r as v}from"./chunk-3F23W57G.js";import{c as de,d as pe,e as D}from"./chunk-OZI44VCR.js";import{h as b}from"./chunk-C3PPB2T5.js";import{AsyncLocalStorage as at}from"async_hooks";import{createHash as V}from"crypto";import{existsSync as ut,mkdirSync as ct}from"fs";import{tmpdir as dt}from"os";import{isAbsolute as pt,join as ve,resolve as Oe}from"path";var q=2,gt="CODEBASEIQ_SESSION",ye="CODEBASEIQ_SESSION_DIR",lt=128,w=new at;function be(e,t){let n=e.sessionEnabled===!1||e.json?void 0:xt(),r={enabled:n!==void 0,reemit:e.reemit===!0,command:e.command,projectRoot:Oe(e.cwd),sessionIdentity:n,staged:[],stagedEvidence:[],finalized:!1};return w.run(r,t)}function Wn(e){let t=w.getStore();!t||t.finalized||(t.generationIdentity=e)}function Gn(){return w.getStore()?.staged.length??0}function Fn(e){let t=w.getStore();!t||e<0||e>t.staged.length||(t.staged.length=e)}function W(e){let t=w.getStore();if(!t||t.finalized)return;t.finalized=!0;let n=t.state;if(!n){t.staged.length=0,t.stagedEvidence.length=0;return}try{if(e&&(t.staged.length>0||t.stagedEvidence.length>0)){let r=n.ledger.nextOrdinal,s=wt(t.staged).map(o=>({...o,ordinal:r,command:t.command})),i=Et(t.stagedEvidence).map(o=>({...o,ordinal:r,command:t.command}));n.ledger.ranges.push(...s),n.ledger.evidence.push(...i),n.ledger.nextOrdinal+=1,n.ledger.updatedAt=new Date().toISOString(),v(n.ledgerPath,n.ledger,{spacing:2,trailingNewline:!0})}}catch{}finally{n.lock.release(),t.state=null,t.staged.length=0,t.stagedEvidence.length=0}}function Qn(e){let t=e.source.split(`
|
|
2
|
+
`);if(t.length===0)return"";let n=ht(e.relativePath,e.startLine,t,e.ownerSymbol,e.sessionPolicy??"exact-unit"),r=e.indent??" ",s=e.sourceIndent??" ",i=e.focusLines??new Set;return n.map(o=>{let a=z(e.relativePath,o.startLine,o.endLine);if(o.kind==="covered"){let p=o.ordinal===null?"this command":`session #${o.ordinal} via ${o.command}`;return[`${r}${a} [source previously emitted: ${p}; not repeated]`,...e.afterHeader??[]].join(`
|
|
3
|
+
`)}let u=e.headerSuffix??"",d=o.lines.map((p,g)=>{let l=o.startLine+g,c=e.showFocusMarker===!1?"":i.has(l)?">":" ",m=e.lineNumberWidth??5;return`${s}${c}${String(fe(l)).padStart(m)} ${p}`});return[`${r}${a}${u}`,...e.blankAfterHeader?[""]:[],...e.afterHeader??[],...d].join(`
|
|
4
|
+
`)}).join(`
|
|
5
|
+
`)}function Jn(e){let t=w.getStore();if(!t||!t.enabled)return e.content;let n=G(t);if(!n)return e.content;let r=we(e.content),s=T(n.ledger.evidence,i=>i.kind===e.kind&&i.identity===e.identity&&i.contentHash===r);if(s&&!t.reemit){let i=e.label?`; ${Se(e.label)}`:"";return`${e.indent??""}[${e.kind} evidence previously emitted: receipt ${s.receiptId}; session #${s.ordinal} via ${s.command}${i}; not repeated]`}return t.stagedEvidence.push({kind:e.kind,identity:e.identity,contentHash:r,receiptId:At(e.kind,e.identity,r),...e.label?{label:Se(e.label)}:{}}),e.content}function Xn(e=!1){let t=w.getStore();if(!t?.enabled)return{enabled:!1,reason:"No explicit CODEBASEIQ_SESSION is active; source packets render independently.",uniqueLines:0,evidenceItems:0,emissions:0,rows:[]};let n=G(t);if(!n)return{enabled:!1,reason:"The exploration-session ledger was unavailable or contended; evidence output is fail-open for this command.",uniqueLines:0,evidenceItems:0,emissions:0,rows:[]};if(e){n.ledger.ranges=[],n.ledger.evidence=[],n.ledger.nextOrdinal=1,n.ledger.updatedAt=new Date().toISOString();try{v(n.ledgerPath,n.ledger,{spacing:2,trailingNewline:!0})}catch{return{enabled:!1,reason:"The exploration-session ledger could not be reset; evidence output remains fail-open.",uniqueLines:0,evidenceItems:0,emissions:0,rows:[]}}}let r=new Map;for(let a of n.ledger.ranges){let u=r.get(a.ordinal)??[];u.push(a),r.set(a.ordinal,u)}let s=new Map;for(let a of n.ledger.evidence){let u=s.get(a.ordinal)??[];u.push(a),s.set(a.ordinal,u)}let o=[...new Set([...r.keys(),...s.keys()])].sort((a,u)=>a-u).map(a=>{let u=r.get(a)??[],d=s.get(a)??[],p=u[0]?.command??d[0]?.command??"unknown",g=u.length===0?null:(()=>{let m=u.slice(0,8).map(h=>z(h.relativePath,h.startLine,h.endLine)).join(", "),f=u.length>8?`, ... ${u.length-8} more range(s)`:"";return` #${a} ${p}: ${m}${f}`})();if(d.length===0)return g;let l=d.slice(0,8).map(m=>`${m.receiptId} ${m.kind}${m.label?` ${m.label}`:""}`).join(", "),c=d.length>8?`, ... ${d.length-8} more item(s)`:"";return g?`${g}
|
|
6
|
+
evidence: ${l}${c}`:` #${a} ${p}: ${l}${c}`});return{enabled:!0,uniqueLines:Ct(n.ledger.ranges),evidenceItems:n.ledger.evidence.length,emissions:new Set([...r.keys(),...s.keys()]).size,rows:o}}function ht(e,t,n,r,s){let i=w.getStore(),o=t+n.length-1;if(!i)return[{kind:"source",startLine:t,endLine:o,lines:[...n]}];let u=(i.enabled?G(i):null)?.ledger.ranges??[],d=n.map(we),p=s==="exact-unit"&&!i.reemit?T(u,h=>h.policy==="exact-unit"&&h.relativePath===e&&h.startLine===t&&h.endLine===o&&h.ownerSymbol===r&&Nt(h.lineHashes,d)):void 0;if(p)return[{kind:"covered",startLine:t,endLine:o,ordinal:p.ordinal,command:p.command}];let g=s==="exact-unit"&&!i.reemit?ft(u,e,t,o,d):void 0;if(g)return[{kind:"covered",startLine:t,endLine:o,ordinal:g.ordinal,command:g.command}];let l=n.map((h,y)=>mt(u,e,t+y,d[y]));if(!(s==="preview"&&!i.reemit&&l.every(h=>h!==void 0)))return i.staged.push({relativePath:e,startLine:t,endLine:o,ownerSymbol:r,policy:s,lineHashes:d}),[{kind:"source",startLine:t,endLine:o,lines:[...n]}];let m=[],f=0;for(;f<n.length;){let h=l[f],y=f;for(;y+1<n.length&&yt(h,l[y+1]);)y+=1;let S=t+f,E=t+y;m.push({kind:"covered",startLine:S,endLine:E,ordinal:h.ordinal,command:h.command}),f=y+1}return m}function mt(e,t,n,r){let s=T(e,i=>i.relativePath===t&&i.startLine<=n&&n<=i.endLine&&i.lineHashes[n-i.startLine]===r);if(s)return{ordinal:s.ordinal,command:s.command}}function ft(e,t,n,r,s){let i=T(e,o=>o.policy==="exact-unit"&&o.relativePath===t&&o.startLine<=n&&o.endLine>=r&&s.every((a,u)=>o.lineHashes[n-o.startLine+u]===a));return i?{ordinal:i.ordinal,command:i.command}:void 0}function yt(e,t){return!e||!t?e===t:e.ordinal===t.ordinal&&e.command===t.command}function G(e){if(e.state!==void 0)return e.state;if(!e.sessionIdentity||!e.generationIdentity)return e.state=null,null;try{let t=Pt();ct(t,{recursive:!0,mode:448});let n=V("sha256").update(e.projectRoot).update("\0").update(e.generationIdentity).update("\0").update(e.sessionIdentity).digest("hex"),r=ve(t,`${n}.json`),s=x(`${r}.lock`,{kind:"source-emission-session",detail:{session:n.slice(0,12)}});if(s.kind!=="acquired")return e.state=null,null;let i;try{i=ut(r)?vt(JSON.parse(b(r,"source emission session ledger")),{projectRoot:e.projectRoot,generationIdentity:e.generationIdentity,sessionIdentity:e.sessionIdentity}):St(e)}catch{return s.lock.release(),e.state=null,null}return e.state={ledgerPath:r,lock:s.lock,ledger:i},e.state}catch{return e.state=null,null}}function St(e){return{version:q,projectRoot:e.projectRoot,generationIdentity:e.generationIdentity,sessionIdentity:e.sessionIdentity,nextOrdinal:1,updatedAt:new Date().toISOString(),ranges:[],evidence:[]}}function vt(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Invalid source emission ledger.");let n=e;if(e.version===1&&n.projectRoot===t.projectRoot&&n.generationIdentity===t.generationIdentity&&n.sessionIdentity===t.sessionIdentity&&Number.isSafeInteger(n.nextOrdinal)&&(n.nextOrdinal??0)>0)return{version:q,projectRoot:t.projectRoot,generationIdentity:t.generationIdentity,sessionIdentity:t.sessionIdentity,nextOrdinal:n.nextOrdinal,updatedAt:typeof n.updatedAt=="string"?n.updatedAt:new Date().toISOString(),ranges:[],evidence:[]};if(n.version!==q||n.projectRoot!==t.projectRoot||n.generationIdentity!==t.generationIdentity||n.sessionIdentity!==t.sessionIdentity||!Number.isSafeInteger(n.nextOrdinal)||(n.nextOrdinal??0)<=0||!Array.isArray(n.ranges)||!n.ranges.every(Ot)||!Array.isArray(n.evidence)||!n.evidence.every(bt))throw new Error("Invalid source emission ledger.");return n}function Ot(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.relativePath=="string"&&t.relativePath!==""&&Number.isSafeInteger(t.startLine)&&(t.startLine??-1)>=0&&Number.isSafeInteger(t.endLine)&&(t.endLine??-1)>=(t.startLine??0)&&Number.isSafeInteger(t.ordinal)&&(t.ordinal??0)>0&&typeof t.command=="string"&&t.command!==""&&(t.policy==="exact-unit"||t.policy==="preview")&&Array.isArray(t.lineHashes)&&t.lineHashes.length===(t.endLine??0)-(t.startLine??0)+1&&t.lineHashes.every(Ie)&&(t.ownerSymbol===void 0||typeof t.ownerSymbol=="string")}function bt(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=e;return(t.kind==="unit"||t.kind==="edge")&&typeof t.identity=="string"&&t.identity!==""&&typeof t.contentHash=="string"&&Ie(t.contentHash)&&typeof t.receiptId=="string"&&/^ev-[0-9a-f]{12}$/u.test(t.receiptId)&&Number.isSafeInteger(t.ordinal)&&(t.ordinal??0)>0&&typeof t.command=="string"&&t.command!==""&&(t.label===void 0||typeof t.label=="string")}function wt(e){let t=[...e].sort((r,s)=>r.relativePath.localeCompare(s.relativePath)||r.startLine-s.startLine||r.endLine-s.endLine),n=[];for(let r of t){let s=n[n.length-1];if(s&&s.relativePath===r.relativePath&&s.ownerSymbol===r.ownerSymbol&&s.policy===r.policy&&r.startLine<=s.endLine+1&&It(s,r)){let i=r.startLine-s.startLine;for(let o=0;o<r.lineHashes.length;o+=1)s.lineHashes[i+o]??=r.lineHashes[o];s.endLine=Math.max(s.endLine,r.endLine)}else n.push({...r,lineHashes:[...r.lineHashes]})}return n}function It(e,t){let n=Math.max(e.startLine,t.startLine),r=Math.min(e.endLine,t.endLine);for(let s=n;s<=r;s+=1)if(e.lineHashes[s-e.startLine]!==t.lineHashes[s-t.startLine])return!1;return!0}function Et(e){let t=new Set,n=[];for(let r of e){let s=`${r.kind}\0${r.identity}\0${r.contentHash}`;t.has(s)||(t.add(s),n.push(r))}return n}function Ct(e){let t=new Map;for(let r of e){let s=t.get(r.relativePath)??[];s.push(r),t.set(r.relativePath,s)}let n=0;for(let r of t.values()){r.sort((o,a)=>o.startLine-a.startLine||o.endLine-a.endLine);let s=-1,i=-1;for(let o of r)s<0?(s=o.startLine,i=o.endLine):o.startLine<=i+1?i=Math.max(i,o.endLine):(n+=i-s+1,s=o.startLine,i=o.endLine);s>=0&&(n+=i-s+1)}return n}function Pt(){let e=process.env[ye];if(!e)return ve(dt(),`codebaseiq-source-sessions-${process.getuid?.()??"user"}`);if(!pt(e))throw new Error(`${ye} must be an absolute path.`);return Oe(e)}function xt(){let e=process.env[gt]?.trim();if(e&&!(e.length>lt||!/^[A-Za-z0-9._:-]+$/.test(e)))return`explicit:${e}`}function At(e,t,n){return`ev-${V("sha256").update(e).update("\0").update(t).update("\0").update(n).digest("hex").slice(0,12)}`}function Se(e){let t=e.replace(/[\r\n\t]+/gu," ").replace(/\s+/gu," ").trim();return t.length<=160?t:`${t.slice(0,157)}...`}function we(e){return V("sha256").update(e).digest("hex")}function Nt(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function T(e,t){for(let n=e.length-1;n>=0;n-=1){let r=e[n];if(t(r))return r}}function Ie(e){return typeof e=="string"&&/^[0-9a-f]{64}$/u.test(e)}import{createHash as Lt}from"crypto";import{existsSync as Q,mkdirSync as _t,rmSync as Rt}from"fs";import{tmpdir as Tt}from"os";import{isAbsolute as kt,join as Ce,resolve as k}from"path";var Pe=1,$t="CODEBASEIQ_SESSION",Ee="CODEBASEIQ_SESSION_DIR",Mt=128,xe=8,Ae=32768,$=new Map;function ir(e,t,n=!0){if(!n)return;let r=M();if(!r)return;let s=Y(e),i=t.map(a=>a.trim()).filter(a=>a.startsWith("codebaseiq system-map ")&&a.length<=Ae).slice(0,xe),o=Ne(s,r);i.length===0?$.delete(o):$.set(o,i)}function J(e,t,n,r=!0,s){if(!r||e!=="anchors"&&e!=="system-map")return;let i=M();if(!i)return;let o=Y(t),a=K(o,i);if(e==="system-map"){n?Rt(a,{force:!0}):Q(a)&&s&&F(a,()=>{let u=Z(a,o,i);u&&v(a,{...u,pendingMapContinuation:s,mapExecution:void 0,updatedAt:new Date().toISOString()},{spacing:2,trailingNewline:!0})});return}F(a,()=>{let u=Ht(o,i),d={version:Pe,projectRoot:o,sessionIdentity:i,mapRequired:!0,...u.length>0?{recommendedMapCommands:u}:{},updatedAt:new Date().toISOString()};v(a,d,{spacing:2,trailingNewline:!0})})}function X(e,t=!0){if(!t)return;let n=M();if(!n)return;let r=Y(e),s=K(r,n);Q(s)&&F(s,()=>{let i=Z(s,r,n);if(i){if(i.pendingMapContinuation)throw new Error(["MAP TRANSPORT INCOMPLETE","The selected system map has already been computed. Restarting it would repeat the same repository work.",`Continue exactly: ${i.pendingMapContinuation}`].join(`
|
|
7
|
+
`));if(i.mapExecution&&Ut(i.mapExecution.processId))throw new Error(["NAVIGATION MAP ALREADY RUNNING","A selected system map is already computing in this CODEBASEIQ_SESSION.","Poll the existing terminal execution. Do not launch a duplicate map or inspect in parallel."].join(`
|
|
8
|
+
`));v(s,{...i,mapExecution:{processId:process.pid,startedAt:new Date().toISOString()},updatedAt:new Date().toISOString()},{spacing:2,trailingNewline:!0})}})}function or(e,t,n=!0){if(!n)return;let r=M();if(!r)return;let s=K(k(e),r);if(!Q(s))return;let i=Z(s,k(e),r);if(!i?.mapRequired)return;let o=i.recommendedMapCommands?.length?["This refusal is a recoverable protocol step, not evidence that the requested code cannot be explored.","Run exactly one of the ranked map commands below, then finish every emitted continuation:",...i.recommendedMapCommands.map((a,u)=>` [${u+1}] ${a}`)]:[`Do not retry ${t}. Run one printed next-abstraction system-map command and finish every emitted continuation first.`];throw new Error(["NAVIGATION MAP REQUIRED","An anchors locator completed in this CODEBASEIQ_SESSION, but its selected system map has not reached transport completion.",`Do not retry ${t}.`,...o,"The map must complete before the agent can choose source detail; map and detail exploration cannot run concurrently."].join(`
|
|
9
|
+
`))}function Z(e,t,n){try{let r=JSON.parse(b(e,"navigation session state"));return r.version===Pe&&r.projectRoot===t&&r.sessionIdentity===n&&r.mapRequired===!0&&(r.recommendedMapCommands===void 0||Array.isArray(r.recommendedMapCommands)&&r.recommendedMapCommands.length<=xe&&r.recommendedMapCommands.every(s=>typeof s=="string"&&s.startsWith("codebaseiq system-map ")&&s.length<=Ae))&&(r.pendingMapContinuation===void 0||typeof r.pendingMapContinuation=="string")&&(r.mapExecution===void 0||typeof r.mapExecution=="object"&&r.mapExecution!==null&&Number.isSafeInteger(r.mapExecution.processId)&&typeof r.mapExecution.startedAt=="string")?r:null}catch{return null}}function Ht(e,t){let n=Ne(e,t),r=$.get(n)??[];return $.delete(n),r}function Ne(e,t){return`${e}\0${t}`}function Ut(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function K(e,t){let n=Bt();_t(n,{recursive:!0,mode:448});let r=Lt("sha256").update(e).update("\0").update(t).digest("hex");return Ce(n,`navigation-${r}.json`)}function Bt(){let e=process.env[Ee];if(!e)return Ce(Tt(),`codebaseiq-source-sessions-${process.getuid?.()??"user"}`);if(!kt(e))throw new Error(`${Ee} must be an absolute path.`);return k(e)}function Y(e){let t=process.env.CODEBASEIQ_PROJECT_ROOT?.trim();return k(t||e)}function M(){let e=process.env[$t]?.trim();if(e&&!(e.length>Mt||!/^[A-Za-z0-9._:-]+$/u.test(e)))return`explicit:${e}`}function F(e,t){let n=x(`${e}.lock`,{kind:"navigation-session",detail:{state:e.slice(-17,-5)}});if(n.kind!=="acquired")throw new Error("Navigation session state is busy. Retry the completed command.");try{t()}finally{n.lock.release()}}import{createHash as U,randomBytes as Dt}from"crypto";import{chmodSync as zt,closeSync as te,fstatSync as _e,lstatSync as qt,mkdirSync as Vt,openSync as $e,readSync as Wt,readdirSync as Me,renameSync as Gt,rmSync as He,statSync as Ft,writeSync as Qt}from"fs";import{tmpdir as Jt}from"os";import{join as _}from"path";import{StringDecoder as Ue}from"string_decoder";import{InvalidArgumentError as Re}from"commander";var jt=/^[A-Za-z0-9_@%+=:,./-]+$/u;function Le(e,t={}){return t.omitSafeQuotes&&jt.test(e)?e:(t.platform??process.platform)==="win32"?`"${e.replaceAll("%","%%").replaceAll('"','\\"')}"`:`'${e.replaceAll("'",`'"'"'`)}'`}var Xt="codebaseiq-output-page",Zt=1,Kt="continue",H=32e3,A=256,N=1e5,B=4096,ne=32e6,Yt=64*1024*1024,en=256*1024*1024,tn=32,re=32768,Be=3600*1e3,je=3;function De(){return _(Jt(),`codebaseiq-output-pages-${typeof process.getuid=="function"?process.getuid():"user"}`)}var ae=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u,ze=/^[A-Za-z0-9_][A-Za-z0-9_-]{11}$/u,nn=/^4\.([A-Za-z0-9_-]{22})\.([0-9a-z]{1,10})$/u,rn=/^([A-Za-z0-9_][A-Za-z0-9_-]{11})(?:\.([0-9a-z]{1,10}))?$/u,qe=1,sn="quota.lock",on=2e3,an=5,Te=1024*1024,un=new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT)),ee,cn=Object.freeze({maxSnapshotBytes:Yt,maxAggregateBytes:en,maxSnapshotCount:tn});var Ve={writeStdout:e=>{process.stdout.write(e)},writeStderr:e=>{process.stderr.write(e)}};async function dn(e,t,n=Ve){return be({command:e.command,cwd:e.cwd,argv:e.argv,json:e.json,sessionEnabled:e.sourceSession,reemit:e.reemitSource},async()=>{try{await pn(e,t,n)}finally{W(!1)}})}async function pn(e,t,n){let r=e.pageSize??H,s=e.snapshotRoot??De(),i=Sn(e.snapshotLimits),o=e.maxOutputCharacters??ne;if(!Number.isSafeInteger(o)||o<=0)throw new Error("Output character safety limit must be a positive integer.");let a=Math.min(o,ne);if(We(r),e.cursor!==void 0&&e.cursor.length>B)throw new Error(`Output cursor exceeds the ${B}-character limit. Run the command again without --output-cursor.`);if(e.json&&e.pageSize===void 0&&e.cursor===void 0){e.command==="system-map"&&X(e.cwd,e.sourceSession!==!1),await gn(e,t,n);return}let u=tt(e.argv),d=rt(e.invocationPrefix),p=et(e.command,e.cwd,d,u),g=e.cursor===void 0?void 0:Nn(e.cursor,p);e.command==="system-map"&&!g&&X(e.cwd,e.sourceSession!==!1);let l=g?.snapshotId,c;if(g)try{c=hn(g,p,r,a,s,e.onSnapshotRead)}catch(S){let E=S instanceof Error?S.message:String(S);throw new Error(`${E} Restart with: ${nt(d,u,r)}`,{cause:S})}else{let S=new ie(p,d,e.command,e.cwd,u,r,a,s,i,!e.json),E=Ge(),ot=ln(R=>{E?.observe(R.toString("utf8")),S.write(R)}),ce=!1;try{await t(),E&&process.stdout.write(E.render()),ce=!0}finally{ot(),ce||S.abort()}let P;try{P=S.complete()}catch(R){throw S.abort(),R}l=P.snapshotId,c={content:P.content,offset:0,pageIndex:0,pageCount:P.pageCount,totalCharacters:P.totalCharacters,outputHash:P.outputHash}}let m=c.offset+c.content.length,f=c.pageIndex+1>=c.pageCount,h=f?void 0:xn({invocationPrefix:d,nextPageIndex:c.pageIndex+1,snapshotId:En(l)});if(J(e.command,e.cwd,f,e.sourceSession!==!1,h?.command),c.offset===0&&f&&e.cursor===void 0){n.writeStdout(c.content),W(!0),l&&C(l,s);return}let y={kind:Xt,schemaVersion:Zt,producer:{name:"codebaseiq",version:e.producerVersion},command:e.command,contentType:e.json?"application/json":"text/plain",agentInstruction:h?"INCOMPLETE EVIDENCE: do not draw conclusions or report completion from this partial page. Run page.continuation.command exactly, then repeat until page.complete is true.":"OUTPUT COMPLETE: all rendered characters have been retrieved. Evaluate the command result's own coverage separately.",page:h?{offset:c.offset,returnedCharacters:c.content.length,totalCharacters:c.totalCharacters,omittedCharacters:c.totalCharacters-c.content.length,remainingCharacters:c.totalCharacters-m,complete:!1,outputHash:c.outputHash,continuation:h}:{offset:c.offset,returnedCharacters:c.content.length,totalCharacters:c.totalCharacters,omittedCharacters:c.totalCharacters-c.content.length,remainingCharacters:c.totalCharacters-m,complete:!0,outputHash:c.outputHash},content:c.content};if(e.json){n.writeStdout(`${JSON.stringify(y)}
|
|
10
|
+
`),f&&l&&C(l,s);return}n.writeStdout($n(y)),f&&l&&C(l,s)}async function Cr(e,t,n=De(),r=Ve){if(e.length>B)throw new Error(`Output cursor exceeds the ${B}-character limit.`);let s=Ye(e);if(!s)throw new Error("Invalid output cursor. Run the original command again.");let i=Je(s.snapshotId,n);await dn({command:i.command,producerVersion:t,invocationPrefix:i.invocationPrefix,argv:[...i.argv,"--output-page-size",String(i.pageSize),"--output-cursor",e],cwd:i.cwd,json:i.argv.some(o=>o==="--json"||o.startsWith("--json=")),sourceSession:!i.argv.some(o=>o==="--no-session"),pageSize:i.pageSize,cursor:e,snapshotRoot:n},()=>{throw new Error("Output continuation attempted to rerun the original command.")},r)}function Pr(e){if(!/^\d+$/u.test(e))throw new Re(`Output page size must be an integer from ${A} through ${N}.`);let t=Number(e);try{We(t)}catch{throw new Re(`Output page size must be an integer from ${A} through ${N}.`)}return t}function We(e){if(!Number.isSafeInteger(e)||e<A||e>N)throw new Error(`Output page size must be an integer from ${A} through ${N}.`)}async function gn(e,t,n){let r=new se(H,e.maxOutputCharacters??ne),s=process.stdout.write,i=!1,o=`${le(`codebaseiq: JSON output exceeds ${H} characters and may be truncated by the client. Do not use possibly partial client output as evidence. Read every page with: ${nt(rt(e.invocationPrefix),tt(e.argv),H)}`)}
|
|
11
|
+
`,a=Ge();process.stdout.write=((u,d,p)=>{a?.observe(Fe(u,d).toString("utf8"));let g=r.push(u,d);return g!==void 0&&(i||(i=!0,n.writeStderr(o)),s.call(process.stdout,g)),Qe(d,p),!0});try{await t();let u=r.finish();u.crossedPageBoundary&&!i&&(i=!0,n.writeStderr(o)),u.bytes.length>0&&s.call(process.stdout,u.bytes),i&&n.writeStderr(o),a&&n.writeStderr(a.render()),J(e.command,e.cwd,!0,e.sourceSession!==!1)}finally{process.stdout.write=s}}function Ge(){let e=he();return e?me(e):void 0}function ln(e){let t=process.stdout.write;return process.stdout.write=((n,r,s)=>{let i=Fe(n,r);return e(i),Qe(r,s),!0}),()=>{process.stdout.write=t}}function Fe(e,t){return typeof e=="string"?Buffer.from(e,typeof t=="string"?t:"utf8"):Buffer.from(e)}function Qe(e,t){let n=typeof e=="function"?e:t;typeof n=="function"&&n()}var se=class{constructor(t,n){this.limit=t;this.maxOutputCharacters=n}limit;maxOutputCharacters;decoder=new Ue("utf8");chunks=[];overflowed=!1;totalCharacters=0;push(t,n){let r=typeof t=="string"?Buffer.from(t,typeof n=="string"?n:"utf8"):Buffer.from(t);if(this.addCharacters(this.decoder.write(r)),this.overflowed)return r;if(this.chunks.push(r),this.totalCharacters<=this.limit)return;this.overflowed=!0;let s=Buffer.concat(this.chunks);return this.chunks.length=0,s}finish(){this.addCharacters(this.decoder.end());let t=this.totalCharacters>this.limit,n=Buffer.concat(this.chunks);return this.chunks.length=0,{bytes:n,crossedPageBoundary:t}}addCharacters(t){if(this.totalCharacters+=t.length,!Number.isSafeInteger(this.totalCharacters)||this.totalCharacters>this.maxOutputCharacters)throw new Error(`Command output exceeds the ${this.maxOutputCharacters}-character safety limit. Narrow the query before retrying.`)}},ie=class{constructor(t,n,r,s,i,o,a,u,d,p){this.invocationHash=t;this.invocationPrefix=n;this.command=r;this.cwd=s;this.argv=i;this.pageSize=o;this.maxOutputCharacters=a;this.snapshotRoot=u;this.limits=d;this.preferLineBoundaries=p;ue(u);do this.snapshotId=Dt(9).toString("base64url");while(this.snapshotId.startsWith("-"));this.temporaryPath=O(u,this.snapshotId,"tmp")}invocationHash;invocationPrefix;command;cwd;argv;pageSize;maxOutputCharacters;snapshotRoot;limits;preferLineBoundaries;snapshotId;temporaryPath;decoder=new Ue("utf8");hash=U("sha256");pages=[];descriptor=null;pending="";firstPageContent="";totalCharacters=0;pageCharacterOffset=0;byteLength=0;reservedBytes=0;opened=!1;finished=!1;write(t){if(this.finished)throw new Error("Output snapshot writer is closed.");this.appendDecoded(this.decoder.write(t))}complete(){if(this.finished)throw new Error("Output snapshot writer is closed.");if(this.appendDecoded(this.decoder.end()),this.finished=!0,!this.opened){let s=this.pending,i=Buffer.from(s);return this.assertWithinByteLimit(i.length),this.hash.update(i),this.pending="",{content:s,totalCharacters:this.totalCharacters,outputHash:this.hash.digest("hex"),pageCount:1}}if((this.pending.length>0||this.pages.length===0)&&(this.flushPage(this.pending),this.pending=""),this.descriptor===null)throw new Error("Output snapshot writer is not open.");te(this.descriptor),this.descriptor=null;let t=this.hash.digest("hex"),n=O(this.snapshotRoot,this.snapshotId,"output"),r=O(this.snapshotRoot,this.snapshotId,"json");try{Gt(this.temporaryPath,n);let s={version:je,snapshotId:this.snapshotId,invocationHash:this.invocationHash,invocationPrefix:[...this.invocationPrefix],command:this.command,cwd:this.cwd,argv:[...this.argv],outputHash:t,pageSize:this.pageSize,pages:this.pages,totalCharacters:this.totalCharacters,byteLength:this.byteLength,createdAtMs:Date.now()};return v(r,s),ke(this.snapshotRoot,this.snapshotId,this.byteLength,"complete",this.limits),this.reservedBytes=this.byteLength,{content:this.firstPageContent,totalCharacters:this.totalCharacters,outputHash:t,pageCount:this.pages.length,snapshotId:this.snapshotId}}catch(s){throw C(this.snapshotId,this.snapshotRoot),s}}abort(){this.descriptor!==null&&(te(this.descriptor),this.descriptor=null),this.finished=!0,C(this.snapshotId,this.snapshotRoot)}appendDecoded(t){if(t.length===0)return;let n=this.totalCharacters+t.length;if(!Number.isSafeInteger(n)||n>this.maxOutputCharacters)throw new Error(`Command output exceeds the ${this.maxOutputCharacters}-character safety limit. Narrow the query before retrying.`);for(this.totalCharacters=n,this.pending+=t,this.assertWithinByteLimit(this.byteLength+Buffer.byteLength(this.pending));this.pending.length>this.pageSize;){this.open();let r=Pn(this.pending,this.pageSize,this.preferLineBoundaries),s=this.pending.slice(0,r);this.pending=this.pending.slice(r),this.flushPage(s)}}open(){if(!this.opened){vn(this.snapshotRoot,this.snapshotId,0,this.limits);try{this.descriptor=$e(this.temporaryPath,"wx",384),this.opened=!0}catch(t){throw On(this.snapshotRoot,this.snapshotId),t}}}flushPage(t){if(this.descriptor===null)throw new Error("Output snapshot writer is not open.");if(this.pages.length>=re)throw new Error(`Command output requires more than ${re} snapshot pages. Retry with a larger --output-page-size or narrow the query.`);let n=Buffer.from(t),r=this.byteLength+n.length;if(this.assertWithinByteLimit(r),r>this.reservedBytes){let o=Math.min(this.limits.maxSnapshotBytes,Math.ceil(r/Te)*Te);ke(this.snapshotRoot,this.snapshotId,o,"active",this.limits),this.reservedBytes=o}let s=0;for(;s<n.length;){let o=Qt(this.descriptor,n,s,n.length-s);if(o<=0)throw new Error("Output snapshot write made no progress.");s+=o}let i={characterOffset:this.pageCharacterOffset,characterLength:t.length,byteOffset:this.byteLength,byteLength:n.length,hash:U("sha256").update(n).digest("hex")};this.pages.length===0&&(this.firstPageContent=t),this.pages.push(i),this.hash.update(n),this.pageCharacterOffset+=t.length,this.byteLength=r}assertWithinByteLimit(t){if(!Number.isSafeInteger(t)||t>this.limits.maxSnapshotBytes)throw new Error(`Command output exceeds the ${this.limits.maxSnapshotBytes}-byte snapshot limit. Narrow the query before retrying.`)}};function hn(e,t,n,r,s,i){ue(s);let o=Je(e.snapshotId,s);if(o.invocationHash!==t)throw new Error("This output cursor belongs to a different command, working directory, or argument set. Run again without --output-cursor.");if(o.snapshotId!==e.snapshotId||e.version===3&&(o.invocationHash!==e.invocationHash||o.outputHash!==e.outputHash))throw new Error("Output snapshot identity does not match this cursor.");if(o.pageSize!==n||e.version===3&&e.pageSize!==n)throw new Error(`Output page size changed after this cursor was issued; use ${o.pageSize}.`);let a=o.pages[e.pageIndex];if(!a)throw new Error("Output cursor points past the current result.");if(o.totalCharacters>r)throw new Error(`Output snapshot exceeds the ${r}-character safety limit.`);if(Date.now()-o.createdAtMs>Be)throw C(e.snapshotId,s),new Error("Output snapshot expired before all pages were read.");let u=O(s,e.snapshotId,"output"),d=$e(u,"r");try{let p=_e(d);if(!p.isFile()||p.size!==o.byteLength)throw new Error("Output snapshot size or type changed.");let g=Buffer.allocUnsafe(a.byteLength),l=0;for(;l<g.length;){let f=Wt(d,g,l,g.length-l,a.byteOffset+l);if(f===0)break;l+=f,i?.(f)}let c=_e(d);if(c.dev!==p.dev||c.ino!==p.ino||c.size!==p.size||l!==a.byteLength)throw new Error("Output snapshot changed while it was being read.");if(U("sha256").update(g).digest("hex")!==a.hash)throw new Error("Output snapshot page no longer matches its metadata.");let m=g.toString("utf8");if(m.length!==a.characterLength)throw new Error("Output snapshot page character count changed.");return{content:m,offset:a.characterOffset,pageIndex:e.pageIndex,pageCount:o.pages.length,totalCharacters:o.totalCharacters,outputHash:o.outputHash}}catch(p){throw C(e.snapshotId,s),p}finally{te(d)}}function Je(e,t){if(!I(e))throw new Error("Output snapshot identifier is invalid.");let n;try{n=JSON.parse(b(O(t,e,"json"),"output snapshot metadata"))}catch(r){throw new Error("Output snapshot is unavailable.",{cause:r})}if(!mn(n))throw new Error("Output snapshot metadata is invalid.");return n}function mn(e){if(!e||typeof e!="object")return!1;let t=e;return t.version===je&&typeof t.snapshotId=="string"&&I(t.snapshotId)&&L(t.invocationHash)&&st(t.invocationPrefix)&&typeof t.command=="string"&&t.command.length>0&&t.command.length<=256&&typeof t.cwd=="string"&&t.cwd.length>0&&t.cwd.length<=8192&&kn(t.argv)&&et(t.command,t.cwd,t.invocationPrefix,t.argv)===t.invocationHash&&L(t.outputHash)&&Number.isSafeInteger(t.pageSize)&&(t.pageSize??0)>=A&&(t.pageSize??0)<=N&&Array.isArray(t.pages)&&t.pages.length>1&&t.pages.length<=re&&t.pages.every(fn)&&yn(t.pages)&&Number.isSafeInteger(t.totalCharacters)&&(t.totalCharacters??-1)>=0&&t.pages.reduce((n,r)=>n+r.characterLength,0)===t.totalCharacters&&Number.isSafeInteger(t.byteLength)&&(t.byteLength??-1)>=0&&t.pages.reduce((n,r)=>n+r.byteLength,0)===t.byteLength&&Number.isSafeInteger(t.createdAtMs)&&(t.createdAtMs??-1)>=0}function fn(e){if(!e||typeof e!="object")return!1;let t=e;return Number.isSafeInteger(t.characterOffset)&&(t.characterOffset??-1)>=0&&Number.isSafeInteger(t.characterLength)&&(t.characterLength??0)>0&&Number.isSafeInteger(t.byteOffset)&&(t.byteOffset??-1)>=0&&Number.isSafeInteger(t.byteLength)&&(t.byteLength??0)>0&&L(t.hash)}function yn(e){let t=0,n=0;for(let r of e){if(r.characterOffset!==t||r.byteOffset!==n)return!1;t+=r.characterLength,n+=r.byteLength}return!0}function ue(e){Vt(e,{recursive:!0,mode:448});let t=qt(e);if(!t.isDirectory()||t.isSymbolicLink())throw new Error(`Output snapshot root is not a private directory: ${e}`);if(typeof process.getuid=="function"&&t.uid!==process.getuid())throw new Error(`Output snapshot root is not owned by the current user: ${e}`);process.platform!=="win32"&&zt(e,448)}function Sn(e){let t={...cn,...e};for(let[n,r]of Object.entries(t))if(!Number.isSafeInteger(r)||r<=0)throw new Error(`Output snapshot ${n} must be a positive integer.`);if(t.maxSnapshotBytes>t.maxAggregateBytes)throw new Error("Output snapshot maxSnapshotBytes cannot exceed maxAggregateBytes.");return t}function vn(e,t,n,r){j(e,()=>{wn(e),Xe(e,t,n,"active",r)})}function ke(e,t,n,r,s){if(!Number.isSafeInteger(n)||n<0||n>s.maxSnapshotBytes)throw new Error(`Command output exceeds the ${s.maxSnapshotBytes}-byte snapshot limit.`);j(e,()=>{Xe(e,t,n,r,s)})}function Xe(e,t,n,r,s){if(!Number.isSafeInteger(n)||n<0||n>s.maxSnapshotBytes)throw new Error(`Command output exceeds the ${s.maxSnapshotBytes}-byte snapshot limit.`);let i=bn(e),o=i.find(g=>g.snapshotId===t),a=i.reduce((g,l)=>g+l.reservedBytes,0)-(o?.reservedBytes??0)+n,u=i.length+(o?0:1);if(u>s.maxSnapshotCount||a>s.maxAggregateBytes)throw new Error(`Output snapshot capacity is full (${u}/${s.maxSnapshotCount} snapshots, ${a}/${s.maxAggregateBytes} bytes). Narrow the query or finish an existing pagination sequence before retrying.`);let d=Date.now(),p={version:qe,snapshotId:t,pid:process.pid,...oe()?{processIdentity:oe()}:{},reservedBytes:n,state:r,createdAtMs:o?.createdAtMs??d,updatedAtMs:d};v(O(e,t,"reserve"),p)}function On(e,t){j(e,()=>{He(O(e,t,"reserve"),{force:!0})})}function bn(e){let t=[];for(let n of Me(e,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".reserve"))continue;let r=n.name.slice(0,-8);if(I(r))try{let s=JSON.parse(b(_(e,n.name),"output snapshot reservation"));if(!Ze(s)||s.snapshotId!==r)throw new Error("reservation identity is invalid");t.push(s)}catch(s){throw new Error(`Output snapshot reservation ${n.name} is invalid; retry after its owning process or snapshot expires.`,{cause:s})}}return t}function Ze(e){if(!e||typeof e!="object")return!1;let t=e;return t.version===qe&&typeof t.snapshotId=="string"&&I(t.snapshotId)&&Number.isSafeInteger(t.pid)&&(t.pid??0)>0&&(t.processIdentity===void 0||de(t.processIdentity)!==null&&t.processIdentity.pid===t.pid)&&Number.isSafeInteger(t.reservedBytes)&&(t.reservedBytes??-1)>=0&&(t.state==="active"||t.state==="complete")&&Number.isSafeInteger(t.createdAtMs)&&Number.isSafeInteger(t.updatedAtMs)}function wn(e){let t=Date.now();for(let n of Me(e,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".reserve"))continue;let r=n.name.slice(0,-8);if(!I(r))continue;let s=null;try{let u=JSON.parse(b(_(e,n.name),"output snapshot reservation"));s=Ze(u)?u:null}catch{s=null}let i=In(O(e,r,"json")),o=s?.state==="active"&&ge(s.pid)&&(s.processIdentity===void 0||(()=>{let u=D(s.pid);return u!==null&&pe(s.processIdentity,u)})()),a=s?t-s.updatedAtMs>Be:!1;o||i&&!a||!i&&s&&!a&&s.state==="complete"||Ke(r,e)}}function In(e){try{return Ft(e),!0}catch{return!1}}function j(e,t){ue(e);let n=_(e,sn),r=Date.now()+on;for(;;){let s=x(n,{kind:"output-snapshot-quota",processIdentity:oe()});if(s.kind==="acquired")try{return t()}finally{s.lock.release()}if(Date.now()>=r)throw new Error("Output snapshot quota is busy. Retry the command.");Atomics.wait(un,0,0,an)}}function oe(){return ee===void 0&&(ee=D(process.pid)),ee}function C(e,t){I(e)&&j(t,()=>Ke(e,t))}function Ke(e,t){for(let n of["json","output","tmp","reserve"])He(O(t,e,n),{force:!0})}function O(e,t,n){if(!I(t))throw new Error("Output snapshot identifier is invalid.");return _(e,`${t}.${n}`)}function En(e){if(!e)throw new Error("Incomplete output did not create a resumable snapshot.");return e}function Cn(e){return e>=55296&&e<=56319}function Pn(e,t,n){if(n){let r=e.lastIndexOf(`
|
|
12
|
+
`,t-1);if(r>=0)return r+1}return Cn(e.charCodeAt(t-1))?t-1:t}function xn(e){let t=An({pageIndex:e.nextPageIndex,snapshotId:e.snapshotId});return{cursor:t,command:Tn(e.invocationPrefix,t)}}function An(e){return ze.test(e.snapshotId)?e.pageIndex===1?e.snapshotId:`${e.snapshotId}.${e.pageIndex.toString(36)}`:`4.${_n(e.snapshotId)}.${e.pageIndex.toString(36)}`}function Nn(e,t){let n=Ye(e);if(!n)throw new Error("Invalid output cursor. Run the command again without --output-cursor.");if(n.version===3&&n.invocationHash!==t)throw new Error("This output cursor belongs to a different command, working directory, or argument set. Run again without --output-cursor.");return n}function Ye(e){let t=rn.exec(e);if(t){let r=t[2]??"1",s=Number.parseInt(r,36);return Number.isSafeInteger(s)&&s>=1&&s.toString(36)===r?{version:4,pageIndex:s,snapshotId:t[1]}:null}let n=nn.exec(e);if(n){let r=Rn(n[1]),s=Number.parseInt(n[2],36);return r&&Number.isSafeInteger(s)&&s>=1&&s.toString(36)===n[2]?{version:4,pageIndex:s,snapshotId:r}:null}try{let r=JSON.parse(Buffer.from(e,"base64url").toString("utf8"));return Ln(r)?r:null}catch{return null}}function Ln(e){if(!e||typeof e!="object")return!1;let t=e;return t.version===3&&L(t.invocationHash)&&Number.isSafeInteger(t.pageIndex)&&(t.pageIndex??-1)>=1&&Number.isSafeInteger(t.pageSize)&&(t.pageSize??0)>=A&&(t.pageSize??0)<=N&&L(t.outputHash)&&typeof t.snapshotId=="string"&&I(t.snapshotId)}function _n(e){if(!ae.test(e))throw new Error("Output snapshot identifier is invalid.");return Buffer.from(e.replaceAll("-",""),"hex").toString("base64url")}function Rn(e){let t=Buffer.from(e,"base64url");if(t.length!==16)return null;let n=t.toString("hex"),r=`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`;return ae.test(r)?r:null}function I(e){return typeof e=="string"&&(ze.test(e)||ae.test(e))}function L(e){return typeof e=="string"&&/^[a-f0-9]{64}$/u.test(e)}function et(e,t,n,r){return U("sha256").update(JSON.stringify({command:e,cwd:t,invocationPrefix:n,argv:r})).digest("hex")}function tt(e){let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];if(r==="--output-page-size"||r==="--output-cursor"){n+=1;continue}r.startsWith("--output-page-size=")||r.startsWith("--output-cursor=")||t.push(r)}return t}function nt(e,t,n){return it([...e,...t,"--output-page-size",String(n)])}function Tn(e,t){return it([...e,Kt,t])}function rt(e){let t=e===void 0?["codebaseiq"]:[...e];if(!st(t))throw new Error("Output pagination invocation prefix must contain one to sixteen non-empty shell arguments.");return t}function st(e){return Array.isArray(e)&&e.length>0&&e.length<=16&&e.every(t=>typeof t=="string"&&t.length>0&&t.length<=2048&&!t.includes("\0")&&!t.includes("\r")&&!t.includes(`
|
|
13
|
+
`))}function kn(e){return Array.isArray(e)&&e.length>0&&e.length<=256&&e.every(t=>typeof t=="string"&&t.length<=8192&&!t.includes("\0")&&!t.includes("\r")&&!t.includes(`
|
|
14
|
+
`))}function it(e){return e.map(t=>Le(t,{omitSafeQuotes:!0})).join(" ")}function $n(e){let t=e.page.continuation,n=Math.max(e.page.offset,e.page.offset+e.page.returnedCharacters-1),r=`[codebaseiq output page: characters ${e.page.offset}-${n} of ${e.page.totalCharacters}]
|
|
15
|
+
`,s=t?`
|
|
16
|
+
[Incomplete: ${e.page.remainingCharacters} characters remain. Continue exactly:
|
|
17
|
+
${t.command}]
|
|
18
|
+
`:`
|
|
19
|
+
[codebaseiq transport complete; evaluate command coverage separately]
|
|
20
|
+
`;return`${r}${e.content}${s}`}export{Le as a,Wn as b,Gn as c,Fn as d,Qn as e,Jn as f,Xn as g,ir as h,or as i,Kt as j,H as k,dn as l,Cr as m,Pr as n};
|
|
21
|
+
//# sourceMappingURL=chunk-5AJQCOZZ.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{K as yt,f as mt,g as pt,p as Z,q as W,r as de,s as Et}from"./chunk-C7QWUBR2.js";import{b as X,c as be,d as Ke,e as Ve,f as Ge,i as qe,j as ze,k as Je}from"./chunk-7UCDGXRW.js";import{a as Ct}from"./chunk-EN4AHLL3.js";import{Ca as Ee,Da as ut,J as tt,K as nt,L as rt,M as ot,Na as ft,Pb as St,Qb as vt,b as Xe,c as he,cb as gt,db as bt,eb as ht,ha as st,ia as at,ja as it,qa as dt,r as Ye,ra as ct,t as Qe,u as Ze,ua as lt,v as et}from"./chunk-FTTV7IRX.js";import{J as ge,K as ie,L as H,M as J,T as je,u as We}from"./chunk-5T44HG5Y.js";import{o as He,q as pe}from"./chunk-DUKHVPU5.js";import{join as De}from"path";import{createHash as Rn}from"crypto";import{mkdirSync as Pt,mkdtempSync as Pn,renameSync as An,rmSync as At,statSync as _n,writeFileSync as _t}from"fs";import{tmpdir as Tn}from"os";import{extname as Nn,join as ee,resolve as Mn,sep as Bn}from"path";var On=1024*1024,kt=500,Ln=64,Fn=/\.(?:cmd|bat)$/i;async function Tt(e,t,n={}){let r=Se(e);if(!r.ok)return D(r.reason,r.detail);let a=JSON.stringify(Ke),o;try{Pt(t.workDir,{recursive:!0}),o=Pn(ee(Tn(),"codebaseiq-probe-")),e.argv.includes("{schemaFile}")&&_t(ee(o,"schema.json"),a)}catch(s){return xt(o),D("spawn-failed",`could not prepare the agent sandbox: ${te(In(s))}`)}try{let s=ee(o,"schema.json"),d=ee(o,"output.json"),i=e.argv.includes("{outputFile}"),l=new Map([["{schemaJson}",a],["{schemaFile}",s],["{outputFile}",d]]),c=bt(r.path,e.argv.slice(1).map(S=>l.get(S)??S)),p;try{p=await vt({command:c.binary,args:c.args,label:`agent probe command ${e.name}`,timeoutMs:e.timeoutMs,maxStdoutBytes:e.maxOutputBytes,maxStderrBytes:On,cwd:t.workDir,env:Un(n.env??process.env),input:Ge(t.description,t.languages),signal:n.signal})}catch(S){return Hn(S,n.signal)}if(p.status!==0){let S=wt(p.stdout),b=p.status===null?`signal ${p.signal}`:`code ${p.status}`,m=S.kind==="error"?S.detail:p.stderr.trim()||p.stdout.trim();return D("agent-error",`${e.name} exited with ${b}: ${te(m)}`)}let g=[];if(i){let S=Wn(d,e.maxOutputBytes);if(S==="too-large")return D("output-too-large",`${e.name} wrote more than ${e.maxOutputBytes} bytes.`);S!==null&&g.push(S)}g.push(p.stdout);for(let S of g){let b=wt(S);if(b.kind==="error")return D("agent-error",b.detail);if(b.kind==="none")continue;let{probes:m,diagnostics:x}=be(b.value);return X(m)?{ok:!0,probes:m,diagnostics:x,raw:S.trim()}:D("invalid-probes",Vn(x))}return D("no-json",`${e.name} printed no JSON object: ${te(p.stdout.trim())}`)}finally{xt(o)}}function xt(e){if(e!==void 0)try{At(e,{recursive:!0,force:!0,maxRetries:3})}catch{}}function In(e){return e instanceof Error?e.message:String(e)}function D(e,t){return{ok:!1,reason:e,detail:t}}function Dn(e){let t=ze({agent:{commands:[e]}}).filter(n=>n.level==="error");return t.length>0?t.map(n=>`${n.path}: ${n.message}`).join(" "):Je.has(e.argv[0])?"argv[0] must be the executable, not a placeholder.":[e.timeoutMs,e.maxOutputBytes].every(n=>Number.isFinite(n)&&n>0)?null:"timeoutMs and maxOutputBytes must be positive numbers."}function Se(e){let t=Dn(e);if(t)return{ok:!1,reason:"misconfigured",detail:t};let n=e.argv[0],r=`argv[0] "${n}" is a .cmd/.bat shim, which cannot be started without a shell. Point argv[0] at the real executable or at a node script (.js, .mjs, .cjs).`,a=n.includes("/")||n.includes(Bn),o;if(a){o=$n(Mn(n));let s=ye(o);if(s==="missing")return{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found.`};if(s==="other")return{ok:!1,reason:"misconfigured",detail:`argv[0] "${n}" is not an executable file.`}}else o=ht(n);return o===null?gt(n)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found on PATH.`}:process.platform==="win32"&&Fn.test(o)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!0,path:o}}function $n(e,t=process.platform){return t!=="win32"||Nn(e)!==""||ye(e)!=="missing"?e:[".exe",".com"].map(n=>`${e}${n}`).find(n=>ye(n)==="file")??e}function ye(e){try{return _n(e).isFile()?"file":"other"}catch{return"missing"}}function Un(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&!/^CODEBASEIQ_/i.test(n)&&(t[n]=r);return t}function Hn(e,t){if(!(e instanceof St))throw e;switch(e.kind){case"spawn":return D("spawn-failed",e.message);case"timeout":return D("timeout",e.message);case"stdout-limit":case"stderr-limit":return D("output-too-large",e.message);case"aborted":throw t?H(t,e.message):e}}function Wn(e,t){try{return pe(e,{maxBytes:t,inputKind:"agent output file"})}catch(n){return n instanceof He&&n.reason==="too-large"?"too-large":null}}function wt(e){let t=Rt(e);if(!t)return{kind:"none"};if(t.type!=="result")return{kind:"object",value:t};if(t.is_error===!0){let r=typeof t.result=="string"&&t.result?t.result:t.subtype;return{kind:"error",detail:te(`The agent reported an error: ${String(r??"no message")}`)}}if(Mt(t.structured_output))return{kind:"object",value:t.structured_output};let n=typeof t.result=="string"?Rt(t.result):null;return n?{kind:"object",value:n}:{kind:"none"}}function Rt(e){let t=e.trim();return Nt(t)??jn(t)}function Nt(e){try{let t=JSON.parse(e);return Mt(t)?t:null}catch{return null}}function jn(e){let t=/\{\s*["}]/g,n=null,r=0;for(let a=0;a<Ln;){t.lastIndex=r;let o=t.exec(e);if(!o)break;let s=Kn(e,o.index),d=s===-1?null:Nt(e.slice(o.index,s+1));d?(n=d,r=s+1):(r=o.index+1,a++)}return n}function Kn(e,t){let n=0,r=!1,a=!1;for(let o=t;o<e.length;o++){let s=e[o];if(r)a?a=!1:s==="\\"?a=!0:s==='"'&&(r=!1);else if(s==='"')r=!0;else if(s==="{")n++;else if(s==="}"&&--n===0)return o}return-1}function Mt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Vn(e){return e.length===0?"The agent returned no usable probes.":te(`The agent returned no usable probes: ${e.slice(0,3).map(t=>`${t.path||"root"}: ${t.message}`).join("; ")}`)}function te(e){return e.length>kt?`${e.slice(0,kt)}...`:e}var Gn=64*1024,qn=3600*1e3;function Bt(e,t,n=Date.now){let r=(a,o)=>ee(e,`${Rn("sha256").update(JSON.stringify([a,3,o])).digest("hex")}.json`);return{get(a,o){try{let s=JSON.parse(pe(r(a,o),{maxBytes:Gn,inputKind:"agent probe cache entry"}));if(typeof s.storedAt!="number"||n()-s.storedAt>=t*qn)return;let{probes:d}=be(s.probes);return X(d)?d:void 0}catch{return}},set(a,o,s){let d=r(a,o),i=`${d}.${process.pid}.tmp`;try{Pt(e,{recursive:!0}),_t(i,JSON.stringify({storedAt:n(),probes:s})),An(i,d)}catch{try{At(i,{force:!0})}catch{}}}}}import{BlockList as zn,isIP as Jn}from"net";var Ce=64*1024*1024,Xn=2,Ot="embedding request aborted",Yn="codebaseiq embedding canary: parse a retry delay from a config file",N=class extends Error{constructor(n,r,a){super(r);this.kind=n;this.status=a;this.name="EmbeddingClientError"}kind;status},ne=new zn;for(let[e,t]of[["127.0.0.0",8],["10.0.0.0",8],["172.16.0.0",12],["192.168.0.0",16],["100.64.0.0",10],["169.254.0.0",16]])ne.addSubnet(e,t,"ipv4");ne.addAddress("::1","ipv6");ne.addSubnet("fe80::",10,"ipv6");ne.addSubnet("fc00::",7,"ipv6");var Qn=[".local",".lan",".home.arpa",".internal"];function Lt(e){let t;try{t=new URL(e).hostname}catch{return!1}let n=(t.startsWith("[")?t.slice(1,-1):t).replace(/\.$/,""),r=Jn(n);return r!==0?ne.check(n,r===4?"ipv4":"ipv6"):n==="localhost"||Qn.some(a=>n.endsWith(a))}function Dt(e,t={}){let n=t.fetchImpl??fetch,r=t.env??process.env,a=e.baseUrl.replace(/\/+$/,"");function o(){let c=e.apiKeyEnv?r[e.apiKeyEnv]:void 0;return c||void 0}function s(){let c;try{c=new URL(e.baseUrl)}catch{throw new N("invalid-endpoint",`embedding endpoint "${e.name}" has an invalid baseUrl`)}if(c.protocol!=="http:"&&c.protocol!=="https:")throw new N("invalid-endpoint",`embedding endpoint "${e.name}" must use http or https`);if(c.username!==""||c.password!=="")throw new N("invalid-endpoint",`embedding endpoint "${e.name}" must not embed credentials in baseUrl; use apiKeyEnv`);if(!e.allowRemote&&!Lt(e.baseUrl))throw new N("remote-not-allowed",`embedding endpoint "${e.name}" is not on a private network; set allowRemote to use it`);if(c.protocol==="http:"&&o()!==void 0&&!Lt(e.baseUrl))throw new N("insecure-token-transport",`embedding endpoint "${e.name}" would send its API key over plain http to a non-private host; use https`)}function d(c){let p={};c&&(p["content-type"]="application/json");let g=o();return g&&(p.authorization=`Bearer ${g}`),p}async function i(c,p,g,S){let b={model:e.model,input:c,encoding_format:"float",...e.dimensions!==void 0?{dimensions:e.dimensions}:{}},{status:m,text:x}=await Ft(n,`${a}/embeddings`,{method:"POST",headers:d(!0),body:JSON.stringify(b)},p,!0,S);if(m<200||m>=300)throw new N("http",`embeddings request failed with HTTP ${m}`,m);return nr(x,c.length,g)}async function l(c,p,g){try{return await i(c,e.requestTimeoutMs,p,g)}catch(S){if(!Zn(S))throw S;return i(c,e.requestTimeoutMs,p,g)}}return{async checkHealth({signal:c}={}){try{s()}catch(g){return ve(g)}try{await Ft(n,`${a}/models`,{method:"GET",headers:d(!1)},e.healthTimeoutMs,!1,c)}catch(g){return c?.aborted?ve(g,c):{ok:!1,reason:"unreachable",detail:ke(g)}}let p=ge();try{let[g]=await i([e.documentPrefix+Yn],e.warmTimeoutMs,{dims:e.dimensions},c);return{ok:!0,model:e.model,dimensions:g.length,latencyMs:Math.round(ge()-p),canary:g}}catch(g){return ve(g,c)}},async embed(c,p,{signal:g}={}){if(s(),c.length===0)return[];let S=p==="query"?e.queryPrefix:e.documentPrefix,b=Math.max(1,Math.floor(e.batchSize)),m=[];for(let R=0;R<c.length;R+=b)m.push(c.slice(R,R+b).map(A=>S+A));let x={dims:e.dimensions};return(await Ct(m,Xn,R=>l(R,x,g))).flat()}}}function Zn(e){return e instanceof N&&(e.kind==="timeout"||e.kind==="http"&&(e.status??0)>=500)}function ve(e,t){let n=ke(e);if(t?.aborted)return{ok:!1,reason:"aborted",detail:n};if(!(e instanceof N))return{ok:!1,reason:"bad-response",detail:n};switch(e.kind){case"remote-not-allowed":case"insecure-token-transport":case"invalid-endpoint":return{ok:!1,reason:e.kind,detail:n};case"network":return{ok:!1,reason:"unreachable",detail:n};case"timeout":return{ok:!1,reason:"model-loading",detail:n};case"http":return e.status===503?{ok:!1,reason:"model-loading",detail:n}:e.status===401||e.status===403?{ok:!1,reason:"unauthorized",detail:n}:{ok:!1,reason:"bad-response",detail:n};default:return{ok:!1,reason:"bad-response",detail:n}}}function ke(e){return e instanceof Error?e.message:String(e)}async function Ft(e,t,n,r,a,o){J(o,Ot);let s=new AbortController,d=setTimeout(()=>{s.abort(new N("timeout",`no response within ${r}ms`))},r),i=()=>s.abort(o?.reason);o?.addEventListener("abort",i,{once:!0});try{let l=await $t(e(t,{...n,signal:s.signal,redirect:"error"}),s.signal);return{status:l.status,text:a?await tr(l,s.signal):""}}catch(l){throw o?.aborted&&s.signal.reason===o.reason?H(o,Ot):l instanceof N?l:s.signal.aborted&&s.signal.reason instanceof N?s.signal.reason:new N("network",`could not reach the embeddings endpoint: ${er(l)}`)}finally{clearTimeout(d),o?.removeEventListener("abort",i),s.abort()}}function er(e){let t=e instanceof Error?e.cause:void 0;return typeof t?.code=="string"?t.code:ke(e)}async function tr(e,t){let n=Number(e.headers.get("content-length"));if(Number.isFinite(n)&&n>Ce)throw It();if(!e.body)return"";let r=e.body.getReader(),a=[],o=0;for(;;){let{done:s,value:d}=await $t(r.read(),t);if(s)break;if(o+=d.byteLength,o>Ce)throw r.cancel().catch(()=>{}),It();a.push(d)}return new TextDecoder().decode(Buffer.concat(a))}function It(){return new N("too-large",`embeddings response exceeded the ${Ce} byte limit`)}function $t(e,t){return new Promise((n,r)=>{let a=()=>r(t.reason);if(t.aborted){a();return}t.addEventListener("abort",a,{once:!0}),e.then(n,r).finally(()=>t.removeEventListener("abort",a))})}function nr(e,t,n){let r;try{r=JSON.parse(e)}catch{throw j("response is not valid JSON")}let a=typeof r=="object"&&r!==null?r.data:void 0;if(!Array.isArray(a)||a.length!==t)throw j(`expected ${t} embeddings, received ${Array.isArray(a)?a.length:"none"}`);let o=new Array(t).fill(void 0),s=new Set;return a.forEach((d,i)=>{let l=typeof d=="object"&&d!==null?d:{},c=l.index===void 0?i:l.index;if(typeof c!="number"||!Number.isInteger(c)||c<0||c>=t||s.has(c))throw j("embedding indexes are not a permutation of the inputs");s.add(c),o[c]=l.embedding}),o.map(d=>rr(d,n))}function rr(e,t){if(!Array.isArray(e)||e.length===0)throw j("embedding is not a non-empty float array");if(t.dims!==void 0&&e.length!==t.dims)throw j(`embedding has ${e.length} dimensions, expected ${t.dims}`);let n=0;for(let o of e){if(typeof o!="number"||!Number.isFinite(o))throw j("embedding contains a non-finite value");n+=o*o}let r=Math.sqrt(n);if(!Number.isFinite(r)||r===0)throw j("embedding has zero or unrepresentable magnitude");t.dims=e.length;let a=new Float32Array(e.length);for(let o=0;o<e.length;o+=1)a[o]=e[o]/r;return a}function j(e){return new N("bad-response",`embeddings response rejected: ${e}`)}import{createHash as Kt}from"crypto";var Ut=2,Ht=200,or=new Set(["string","template_string","string_literal","raw_string_literal","char_literal","concatenated_string"]),sr={class_declaration:"name",abstract_class_declaration:"name",class:"name",class_definition:"name",trait_item:"name",impl_item:"type",mod_item:"name"},Wt=Ye({kind:"callable-units",invalidation:Qe("callable-units"),serialize:e=>JSON.stringify({version:Ut,...e}),deserialize:e=>{try{let t=JSON.parse(e);return t.version!==Ut?null:{language:t.language,contentHash:t.contentHash,units:t.units}}catch{return null}}});function ar(e){return Kt("sha256").update(e).digest("hex")}function Vt(e,t,n){let r=ar(n),a=Wt.read(e,t,r);if(a&&a.contentHash===r)return a;let o=tt(e,t,n);if(!o)return null;let s={language:o.language,contentHash:r,units:ir(o.tree,o.language)};return Wt.write(e,t,r,s),s}function ir(e,t){let n=[],r=new Map,a=[],o=s=>{let d=ot(s,t),i=d?.functionNode.childForFieldName("body");if(d&&i){let c=`${a.join(".")}#${d.name}`,p=r.get(c)??0;r.set(c,p+1),n.push(dr(d.name,[...a],p,d.definitionNode,i,t)),a.push(d.name);for(let g of s.children)o(g);a.pop();return}let l=cr(s);l&&a.push(l);for(let c of s.children)o(c);l&&a.pop()};return o(e.rootNode),n}function dr(e,t,n,r,a,o){let s=[],d=[],i=new Set,l=c=>{if(rt(c))return;let p=nt(c,o);if(p&&i.add(p.calleeLeaf),or.has(c.type)){s.push(c.text.replace(/\r\n/g,`
|
|
2
|
+
import{K as yt,f as mt,g as pt,p as Z,q as W,r as de,s as Et}from"./chunk-DQZF7MP6.js";import{a as Ct}from"./chunk-EN4AHLL3.js";import{Ca as Ee,Da as ut,J as tt,K as nt,L as rt,M as ot,Na as ft,Pb as St,Qb as vt,b as Xe,c as he,cb as gt,db as bt,eb as ht,ha as st,ia as at,ja as it,qa as dt,r as Ye,ra as ct,t as Qe,u as Ze,ua as lt,v as et}from"./chunk-FPUJRBHL.js";import{J as ge,K as ie,L as H,M as J,T as je,aa as X,ba as be,ca as Ke,da as Ve,ea as Ge,ha as qe,ia as ze,ja as Je,u as We}from"./chunk-AZDY3EKD.js";import{p as He,r as pe}from"./chunk-KPMMOAV5.js";import{join as De}from"path";import{createHash as Rn}from"crypto";import{mkdirSync as Pt,mkdtempSync as Pn,renameSync as An,rmSync as At,statSync as _n,writeFileSync as _t}from"fs";import{tmpdir as Tn}from"os";import{extname as Nn,join as ee,resolve as Mn,sep as Bn}from"path";var On=1024*1024,kt=500,Ln=64,Fn=/\.(?:cmd|bat)$/i;async function Tt(e,t,n={}){let r=Se(e);if(!r.ok)return D(r.reason,r.detail);let a=JSON.stringify(Ke),o;try{Pt(t.workDir,{recursive:!0}),o=Pn(ee(Tn(),"codebaseiq-probe-")),e.argv.includes("{schemaFile}")&&_t(ee(o,"schema.json"),a)}catch(s){return xt(o),D("spawn-failed",`could not prepare the agent sandbox: ${te(In(s))}`)}try{let s=ee(o,"schema.json"),d=ee(o,"output.json"),i=e.argv.includes("{outputFile}"),l=new Map([["{schemaJson}",a],["{schemaFile}",s],["{outputFile}",d]]),c=bt(r.path,e.argv.slice(1).map(S=>l.get(S)??S)),p;try{p=await vt({command:c.binary,args:c.args,label:`agent probe command ${e.name}`,timeoutMs:e.timeoutMs,maxStdoutBytes:e.maxOutputBytes,maxStderrBytes:On,cwd:t.workDir,env:Un(n.env??process.env),input:Ge(t.description,t.languages),signal:n.signal})}catch(S){return Hn(S,n.signal)}if(p.status!==0){let S=wt(p.stdout),b=p.status===null?`signal ${p.signal}`:`code ${p.status}`,m=S.kind==="error"?S.detail:p.stderr.trim()||p.stdout.trim();return D("agent-error",`${e.name} exited with ${b}: ${te(m)}`)}let g=[];if(i){let S=Wn(d,e.maxOutputBytes);if(S==="too-large")return D("output-too-large",`${e.name} wrote more than ${e.maxOutputBytes} bytes.`);S!==null&&g.push(S)}g.push(p.stdout);for(let S of g){let b=wt(S);if(b.kind==="error")return D("agent-error",b.detail);if(b.kind==="none")continue;let{probes:m,diagnostics:x}=be(b.value);return X(m)?{ok:!0,probes:m,diagnostics:x,raw:S.trim()}:D("invalid-probes",Vn(x))}return D("no-json",`${e.name} printed no JSON object: ${te(p.stdout.trim())}`)}finally{xt(o)}}function xt(e){if(e!==void 0)try{At(e,{recursive:!0,force:!0,maxRetries:3})}catch{}}function In(e){return e instanceof Error?e.message:String(e)}function D(e,t){return{ok:!1,reason:e,detail:t}}function Dn(e){let t=ze({agent:{commands:[e]}}).filter(n=>n.level==="error");return t.length>0?t.map(n=>`${n.path}: ${n.message}`).join(" "):Je.has(e.argv[0])?"argv[0] must be the executable, not a placeholder.":[e.timeoutMs,e.maxOutputBytes].every(n=>Number.isFinite(n)&&n>0)?null:"timeoutMs and maxOutputBytes must be positive numbers."}function Se(e){let t=Dn(e);if(t)return{ok:!1,reason:"misconfigured",detail:t};let n=e.argv[0],r=`argv[0] "${n}" is a .cmd/.bat shim, which cannot be started without a shell. Point argv[0] at the real executable or at a node script (.js, .mjs, .cjs).`,a=n.includes("/")||n.includes(Bn),o;if(a){o=$n(Mn(n));let s=ye(o);if(s==="missing")return{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found.`};if(s==="other")return{ok:!1,reason:"misconfigured",detail:`argv[0] "${n}" is not an executable file.`}}else o=ht(n);return o===null?gt(n)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found on PATH.`}:process.platform==="win32"&&Fn.test(o)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!0,path:o}}function $n(e,t=process.platform){return t!=="win32"||Nn(e)!==""||ye(e)!=="missing"?e:[".exe",".com"].map(n=>`${e}${n}`).find(n=>ye(n)==="file")??e}function ye(e){try{return _n(e).isFile()?"file":"other"}catch{return"missing"}}function Un(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&!/^CODEBASEIQ_/i.test(n)&&(t[n]=r);return t}function Hn(e,t){if(!(e instanceof St))throw e;switch(e.kind){case"spawn":return D("spawn-failed",e.message);case"timeout":return D("timeout",e.message);case"stdout-limit":case"stderr-limit":return D("output-too-large",e.message);case"aborted":throw t?H(t,e.message):e}}function Wn(e,t){try{return pe(e,{maxBytes:t,inputKind:"agent output file"})}catch(n){return n instanceof He&&n.reason==="too-large"?"too-large":null}}function wt(e){let t=Rt(e);if(!t)return{kind:"none"};if(t.type!=="result")return{kind:"object",value:t};if(t.is_error===!0){let r=typeof t.result=="string"&&t.result?t.result:t.subtype;return{kind:"error",detail:te(`The agent reported an error: ${String(r??"no message")}`)}}if(Mt(t.structured_output))return{kind:"object",value:t.structured_output};let n=typeof t.result=="string"?Rt(t.result):null;return n?{kind:"object",value:n}:{kind:"none"}}function Rt(e){let t=e.trim();return Nt(t)??jn(t)}function Nt(e){try{let t=JSON.parse(e);return Mt(t)?t:null}catch{return null}}function jn(e){let t=/\{\s*["}]/g,n=null,r=0;for(let a=0;a<Ln;){t.lastIndex=r;let o=t.exec(e);if(!o)break;let s=Kn(e,o.index),d=s===-1?null:Nt(e.slice(o.index,s+1));d?(n=d,r=s+1):(r=o.index+1,a++)}return n}function Kn(e,t){let n=0,r=!1,a=!1;for(let o=t;o<e.length;o++){let s=e[o];if(r)a?a=!1:s==="\\"?a=!0:s==='"'&&(r=!1);else if(s==='"')r=!0;else if(s==="{")n++;else if(s==="}"&&--n===0)return o}return-1}function Mt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Vn(e){return e.length===0?"The agent returned no usable probes.":te(`The agent returned no usable probes: ${e.slice(0,3).map(t=>`${t.path||"root"}: ${t.message}`).join("; ")}`)}function te(e){return e.length>kt?`${e.slice(0,kt)}...`:e}var Gn=64*1024,qn=3600*1e3;function Bt(e,t,n=Date.now){let r=(a,o)=>ee(e,`${Rn("sha256").update(JSON.stringify([a,3,o])).digest("hex")}.json`);return{get(a,o){try{let s=JSON.parse(pe(r(a,o),{maxBytes:Gn,inputKind:"agent probe cache entry"}));if(typeof s.storedAt!="number"||n()-s.storedAt>=t*qn)return;let{probes:d}=be(s.probes);return X(d)?d:void 0}catch{return}},set(a,o,s){let d=r(a,o),i=`${d}.${process.pid}.tmp`;try{Pt(e,{recursive:!0}),_t(i,JSON.stringify({storedAt:n(),probes:s})),An(i,d)}catch{try{At(i,{force:!0})}catch{}}}}}import{BlockList as zn,isIP as Jn}from"net";var Ce=64*1024*1024,Xn=2,Ot="embedding request aborted",Yn="codebaseiq embedding canary: parse a retry delay from a config file",N=class extends Error{constructor(n,r,a){super(r);this.kind=n;this.status=a;this.name="EmbeddingClientError"}kind;status},ne=new zn;for(let[e,t]of[["127.0.0.0",8],["10.0.0.0",8],["172.16.0.0",12],["192.168.0.0",16],["100.64.0.0",10],["169.254.0.0",16]])ne.addSubnet(e,t,"ipv4");ne.addAddress("::1","ipv6");ne.addSubnet("fe80::",10,"ipv6");ne.addSubnet("fc00::",7,"ipv6");var Qn=[".local",".lan",".home.arpa",".internal"];function Lt(e){let t;try{t=new URL(e).hostname}catch{return!1}let n=(t.startsWith("[")?t.slice(1,-1):t).replace(/\.$/,""),r=Jn(n);return r!==0?ne.check(n,r===4?"ipv4":"ipv6"):n==="localhost"||Qn.some(a=>n.endsWith(a))}function Dt(e,t={}){let n=t.fetchImpl??fetch,r=t.env??process.env,a=e.baseUrl.replace(/\/+$/,"");function o(){let c=e.apiKeyEnv?r[e.apiKeyEnv]:void 0;return c||void 0}function s(){let c;try{c=new URL(e.baseUrl)}catch{throw new N("invalid-endpoint",`embedding endpoint "${e.name}" has an invalid baseUrl`)}if(c.protocol!=="http:"&&c.protocol!=="https:")throw new N("invalid-endpoint",`embedding endpoint "${e.name}" must use http or https`);if(c.username!==""||c.password!=="")throw new N("invalid-endpoint",`embedding endpoint "${e.name}" must not embed credentials in baseUrl; use apiKeyEnv`);if(!e.allowRemote&&!Lt(e.baseUrl))throw new N("remote-not-allowed",`embedding endpoint "${e.name}" is not on a private network; set allowRemote to use it`);if(c.protocol==="http:"&&o()!==void 0&&!Lt(e.baseUrl))throw new N("insecure-token-transport",`embedding endpoint "${e.name}" would send its API key over plain http to a non-private host; use https`)}function d(c){let p={};c&&(p["content-type"]="application/json");let g=o();return g&&(p.authorization=`Bearer ${g}`),p}async function i(c,p,g,S){let b={model:e.model,input:c,encoding_format:"float",...e.dimensions!==void 0?{dimensions:e.dimensions}:{}},{status:m,text:x}=await Ft(n,`${a}/embeddings`,{method:"POST",headers:d(!0),body:JSON.stringify(b)},p,!0,S);if(m<200||m>=300)throw new N("http",`embeddings request failed with HTTP ${m}`,m);return nr(x,c.length,g)}async function l(c,p,g){try{return await i(c,e.requestTimeoutMs,p,g)}catch(S){if(!Zn(S))throw S;return i(c,e.requestTimeoutMs,p,g)}}return{async checkHealth({signal:c}={}){try{s()}catch(g){return ve(g)}try{await Ft(n,`${a}/models`,{method:"GET",headers:d(!1)},e.healthTimeoutMs,!1,c)}catch(g){return c?.aborted?ve(g,c):{ok:!1,reason:"unreachable",detail:ke(g)}}let p=ge();try{let[g]=await i([e.documentPrefix+Yn],e.warmTimeoutMs,{dims:e.dimensions},c);return{ok:!0,model:e.model,dimensions:g.length,latencyMs:Math.round(ge()-p),canary:g}}catch(g){return ve(g,c)}},async embed(c,p,{signal:g}={}){if(s(),c.length===0)return[];let S=p==="query"?e.queryPrefix:e.documentPrefix,b=Math.max(1,Math.floor(e.batchSize)),m=[];for(let R=0;R<c.length;R+=b)m.push(c.slice(R,R+b).map(A=>S+A));let x={dims:e.dimensions};return(await Ct(m,Xn,R=>l(R,x,g))).flat()}}}function Zn(e){return e instanceof N&&(e.kind==="timeout"||e.kind==="http"&&(e.status??0)>=500)}function ve(e,t){let n=ke(e);if(t?.aborted)return{ok:!1,reason:"aborted",detail:n};if(!(e instanceof N))return{ok:!1,reason:"bad-response",detail:n};switch(e.kind){case"remote-not-allowed":case"insecure-token-transport":case"invalid-endpoint":return{ok:!1,reason:e.kind,detail:n};case"network":return{ok:!1,reason:"unreachable",detail:n};case"timeout":return{ok:!1,reason:"model-loading",detail:n};case"http":return e.status===503?{ok:!1,reason:"model-loading",detail:n}:e.status===401||e.status===403?{ok:!1,reason:"unauthorized",detail:n}:{ok:!1,reason:"bad-response",detail:n};default:return{ok:!1,reason:"bad-response",detail:n}}}function ke(e){return e instanceof Error?e.message:String(e)}async function Ft(e,t,n,r,a,o){J(o,Ot);let s=new AbortController,d=setTimeout(()=>{s.abort(new N("timeout",`no response within ${r}ms`))},r),i=()=>s.abort(o?.reason);o?.addEventListener("abort",i,{once:!0});try{let l=await $t(e(t,{...n,signal:s.signal,redirect:"error"}),s.signal);return{status:l.status,text:a?await tr(l,s.signal):""}}catch(l){throw o?.aborted&&s.signal.reason===o.reason?H(o,Ot):l instanceof N?l:s.signal.aborted&&s.signal.reason instanceof N?s.signal.reason:new N("network",`could not reach the embeddings endpoint: ${er(l)}`)}finally{clearTimeout(d),o?.removeEventListener("abort",i),s.abort()}}function er(e){let t=e instanceof Error?e.cause:void 0;return typeof t?.code=="string"?t.code:ke(e)}async function tr(e,t){let n=Number(e.headers.get("content-length"));if(Number.isFinite(n)&&n>Ce)throw It();if(!e.body)return"";let r=e.body.getReader(),a=[],o=0;for(;;){let{done:s,value:d}=await $t(r.read(),t);if(s)break;if(o+=d.byteLength,o>Ce)throw r.cancel().catch(()=>{}),It();a.push(d)}return new TextDecoder().decode(Buffer.concat(a))}function It(){return new N("too-large",`embeddings response exceeded the ${Ce} byte limit`)}function $t(e,t){return new Promise((n,r)=>{let a=()=>r(t.reason);if(t.aborted){a();return}t.addEventListener("abort",a,{once:!0}),e.then(n,r).finally(()=>t.removeEventListener("abort",a))})}function nr(e,t,n){let r;try{r=JSON.parse(e)}catch{throw j("response is not valid JSON")}let a=typeof r=="object"&&r!==null?r.data:void 0;if(!Array.isArray(a)||a.length!==t)throw j(`expected ${t} embeddings, received ${Array.isArray(a)?a.length:"none"}`);let o=new Array(t).fill(void 0),s=new Set;return a.forEach((d,i)=>{let l=typeof d=="object"&&d!==null?d:{},c=l.index===void 0?i:l.index;if(typeof c!="number"||!Number.isInteger(c)||c<0||c>=t||s.has(c))throw j("embedding indexes are not a permutation of the inputs");s.add(c),o[c]=l.embedding}),o.map(d=>rr(d,n))}function rr(e,t){if(!Array.isArray(e)||e.length===0)throw j("embedding is not a non-empty float array");if(t.dims!==void 0&&e.length!==t.dims)throw j(`embedding has ${e.length} dimensions, expected ${t.dims}`);let n=0;for(let o of e){if(typeof o!="number"||!Number.isFinite(o))throw j("embedding contains a non-finite value");n+=o*o}let r=Math.sqrt(n);if(!Number.isFinite(r)||r===0)throw j("embedding has zero or unrepresentable magnitude");t.dims=e.length;let a=new Float32Array(e.length);for(let o=0;o<e.length;o+=1)a[o]=e[o]/r;return a}function j(e){return new N("bad-response",`embeddings response rejected: ${e}`)}import{createHash as Kt}from"crypto";var Ut=2,Ht=200,or=new Set(["string","template_string","string_literal","raw_string_literal","char_literal","concatenated_string"]),sr={class_declaration:"name",abstract_class_declaration:"name",class:"name",class_definition:"name",trait_item:"name",impl_item:"type",mod_item:"name"},Wt=Ye({kind:"callable-units",invalidation:Qe("callable-units"),serialize:e=>JSON.stringify({version:Ut,...e}),deserialize:e=>{try{let t=JSON.parse(e);return t.version!==Ut?null:{language:t.language,contentHash:t.contentHash,units:t.units}}catch{return null}}});function ar(e){return Kt("sha256").update(e).digest("hex")}function Vt(e,t,n){let r=ar(n),a=Wt.read(e,t,r);if(a&&a.contentHash===r)return a;let o=tt(e,t,n);if(!o)return null;let s={language:o.language,contentHash:r,units:ir(o.tree,o.language)};return Wt.write(e,t,r,s),s}function ir(e,t){let n=[],r=new Map,a=[],o=s=>{let d=ot(s,t),i=d?.functionNode.childForFieldName("body");if(d&&i){let c=`${a.join(".")}#${d.name}`,p=r.get(c)??0;r.set(c,p+1),n.push(dr(d.name,[...a],p,d.definitionNode,i,t)),a.push(d.name);for(let g of s.children)o(g);a.pop();return}let l=cr(s);l&&a.push(l);for(let c of s.children)o(c);l&&a.pop()};return o(e.rootNode),n}function dr(e,t,n,r,a,o){let s=[],d=[],i=new Set,l=c=>{if(rt(c))return;let p=nt(c,o);if(p&&i.add(p.calleeLeaf),or.has(c.type)){s.push(c.text.replace(/\r\n/g,`
|
|
3
3
|
`)),d.push("\0L");return}if(c.childCount===0){s.push(c.text),d.push(c.text);return}for(let g of c.children)l(g)};return l(a),{name:e,container:t,ordinal:n,startLine:r.startPosition.row,endLine:r.endPosition.row,bodyStartLine:a.startPosition.row,bodyLines:a.text.split(/\r?\n/).filter(c=>c.trim().length>0).length,tokenCount:s.length,signature:lr(r,a),exactHash:jt(s),shapeHash:jt(d),calleeLeaves:[...i].sort(),exported:fr(r)}}function cr(e){let t=sr[e.type];return t?e.childForFieldName(t)?.text??null:null}function lr(e,t){let n=e.text.lastIndexOf(t.text),a=(n>=0?e.text.slice(0,n):ur(e.text)).replace(/\s+/g," ").trim().replace(/[=:]?\s*$/,"").trim();return a.length>Ht?`${a.slice(0,Ht-1)}\u2026`:a}function ur(e){let t=e.indexOf(`
|
|
4
4
|
`);return t>=0?e.slice(0,t):e}function fr(e){if(e.namedChildren.some(n=>n.type==="visibility_modifier"&&n.text.startsWith("pub")))return!0;let t=e;for(let n=0;t&&n<3;n++,t=t.parent)if(t.type==="export_statement")return!0;return!1}function jt(e){return Kt("sha256").update(e.join("")).digest("hex").slice(0,24)}var Re=["name","container","doc","signature","path"],mr=1e3,pr=150,gr=400,br=3,xe=/@deprecated\b|#\[deprecated\b|\bdeprecated\s*[:(]/i,Gt=/^\s*(?:\/\/|\/\*|\*|#|@)/,hr=new Set(pt()),Er=/(?:^|\/)(?:__generated__|generated)\/|\.(?:generated|gen|g)\.[a-z0-9]+$|\.pb2?\.[a-z0-9]+$|_pb2?\.[a-z0-9]+$/i,we=/@generated\b|\bcode generated\b.*\bdo not edit\b/i,yr=40,Sr=/^(?:\/\/|--|#(?![[!\w]))/,vr=/^\s*export\s+(?:default\s+)?(?:(?:async\s+)?function|(?:abstract\s+)?class|interface|type|enum|namespace|module|const|let|var)\s+([\p{L}\p{N}_$]+)/u,Cr=/^\s*export\s*\{([^}\n]*)/,kr=/[\p{L}\p{N}_$]+/gu,xr=2,wr=Xe("builder-candidate-corpus",{clearGroups:["whole-project","definition-catalog"]});function Y(e){return wr.get(e,()=>Ar(e))}function $(e,t=2,n=Number.POSITIVE_INFINITY){let r=[],a=[],o=new Set;for(let s of W(e)){if(r.length>=n)break;if(Z.has(s.toLocaleLowerCase()))continue;let d=de(s),i=d[0];if(!(i.length<t||Z.has(i))){r.push(i),a.push(d);for(let l of d)o.add(l)}}return{words:r,variants:a,set:o}}function Pe(e){return W(e).map(Et)}function Rr(e){let t=0,n=0,r=0,a=-1;for(let i=0;i<e.length&&a<0;i+=1){let l=e[i];l==="["?t+=1:l==="]"?t=Math.max(0,t-1):l==="{"?n+=1:l==="}"?n=Math.max(0,n-1):l==="<"?r+=1:l===">"&&e[i-1]!=="="&&e[i-1]!=="-"?r=Math.max(0,r-1):l==="("&&t===0&&n===0&&r===0&&(a=i)}if(a<0)return{params:null,returns:null};let o=0,s=-1;for(let i=a;i<e.length;i+=1){let l=e[i];if(l==="(")o+=1;else if(l===")"&&(o-=1,o===0)){s=i;break}}if(s<0)return{params:e.slice(a+1).trim(),returns:null};let d=e.slice(s+1).trim().replace(/^(?:=>|->|:)\s*/,"").replace(/\s+where\b.*$/,"").replace(/\s*(?:=>|=|\{|:)\s*$/,"").trim();return{params:e.slice(a+1,s).trim(),returns:d||null}}function Pr(e){if(!e)return"";let t=/^\s*```(?:\w+)?\s*\n?[\s\S]*?\n?```/.exec(e);return(t?e.slice(t[0].length):e.includes("|")?e.slice(0,e.indexOf("|")):"").replace(/\s+/g," ").trim().slice(0,mr)}function Ar(e){let t=new Map,n=new Set;for(let s of lt(e)){if(s.symbol.startsWith("local ")||!s.isFunctionLike&&!s.isTypeLike||e.isIgnored(s.relativePath)||Ee(s.relativePath)==="test")continue;let d=`${s.symbol}\0${s.relativePath}`;if(n.has(d))continue;n.add(d);let i=t.get(s.relativePath);i?i.push(s):t.set(s.relativePath,[s])}let r=[];for(let s of[...t.keys()].sort()){let d=et(e,s);if(Wr(s,d))continue;let i=t.get(s),l=Mr(e,s,d,i);for(let c of i){let p=Or(c,l);p&&r.push({definition:c,candidate:p})}}r.sort((s,d)=>s.candidate.file.localeCompare(d.candidate.file)||s.candidate.startLine-d.candidate.startLine||s.candidate.name.localeCompare(d.candidate.name));let a=yt(e,new Set,r.map(({definition:s})=>s.symbolId)),o=r.map(({definition:s,candidate:d})=>{let i=[...a.get(s.symbolId)??[]].filter(([l,c])=>l!==d.file&&c.occurrences>0&&Ee(l)!=="test").map(([l])=>l).sort();return{...d,referencedFrom:i,consumable:d.exported||i.length>0}});return Tr(o,r.map(({definition:s})=>_r(s)))}function _r(e){let{symbolId:t,documentId:n,startLine:r,endLine:a,symbol:o,relativePath:s}=e;return{symbolId:t,documentId:n,startLine:r,endLine:a,symbol:o,relativePath:s}}function Tr(e,t){let n=new Map,r=new Map,a=new Map,o=new Set;return e.forEach((s,d)=>{let i=new Set;for(let l of Re)for(let c of s.fields[l].set)i.add(c);for(let l of i)zt(n,l,d);for(let l of s.fields.name.set)r.set(l,(r.get(l)??0)+1);zt(a,s.name,d);for(let l of s.calleeLeaves)o.add(l)}),{candidates:e,locations:t,byToken:n,nameDocFreq:r,byName:a,calledLeaves:o}}var qt=new WeakMap;function Jt(e,t,n,r){let a=qt.get(t);a||(a=new Map,qt.set(t,a));let o=a.get(n);return o||(o=Nr(e,t.locations[n],t.candidates[n].name),a.set(n,o)),o.get(r)??[]}function Nr(e,t,n){let r=new Map;for(let o of ft(e,[t.symbolId])){if(e.isIgnored(o.relative_path))continue;let s=[o.chunk_start,o.chunk_end],d=r.get(o.relative_path);d?d.push(s):r.set(o.relative_path,[s])}let a=new Map;for(let[o,s]of r){let d=o===t.relativePath?{excludeStartLine:t.startLine,excludeEndLine:t.endLine}:{},i=ut(e,o,n,d);a.set(o,s.flatMap(([l,c])=>{let p=i.filter(g=>g>=l&&g<=c);return p.length>0?p.map(g=>[g,g]):[[l,c]]}))}return a}function zt(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function Mr(e,t,n,r){let a=null;return{lines:n,units:Br(e,t),endLines:r.map(o=>o.endLine).sort((o,s)=>o-s),exportedNames:()=>a??=Ur(n)}}function Br(e,t){let n=new Map,r=Ze(e,t);if(!r)return n;for(let a of Vt(e,t,r)?.units??[]){let o=n.get(a.name);o?o.push(a):n.set(a.name,[a])}return n}function Or(e,t){let{units:n}=t,r=e.isTypeLike?null:Lr(n.get(e.leaf),e.startLine),a=!e.isTypeLike&&(r!==null||it(e.symbol)||hr.has(e.kind??-1));if(!e.isTypeLike&&!a)return null;let o=dt(ct(e.documentation)),s=jr(a&&(!o||!o.includes("("))&&r?r.signature:o??r?.signature??"").slice(0,gr),d=a&&s?Rr(s):{params:null,returns:null},i=Pr(e.documentation),l=Fr(e,r),c=e.leaf;return{symbol:e.symbol,name:c,kind:a?e.parentTypeName?"method":"function":Ir(e,s),file:e.relativePath,startLine:e.startLine,endLine:e.endLine,container:l,doc:i,signature:s||null,paramsText:d.params,returnsText:d.returns,nameWords:Pe(c),fields:{name:$(c),container:$(l??""),doc:$(i,3,pr),signature:$(s),path:$(e.relativePath.replace(/\.[^./]+$/,""))},calleeLeaves:r?.calleeLeaves??[],hasBody:r!==null,exported:r?.exported===!0||Hr(t.exportedNames(),e),deprecated:Dr(t,e,i)}}function Lr(e,t){let n=null;for(let r of e??[]){let a=Math.abs(r.startLine-t);a<=br&&(!n||a<Math.abs(n.startLine-t))&&(n=r)}return n}function Fr(e,t){return e.parentTypeName?e.parentTypeName:e.enclosingSymbol&&at(e.enclosingSymbol)!=="namespace"?st(e.enclosingSymbol)||null:t?.container.at(-1)??null}function Ir(e,t){let r=(/^(?:export\s+)?(?:default\s+)?(?:declare\s+)?(?:abstract\s+)?(class|struct|interface|trait|protocol)\b/.exec(t)?.[1]??mt(e.kind??0)).toLowerCase();return r==="class"||r==="struct"?"class":r==="interface"||r==="trait"||r==="protocol"?"interface":"type"}function Dr(e,t,n){if(xe.test(n))return!0;let{lines:r}=e,a=r[t.startLine];if(a!==void 0&&Gt.test(a)&&xe.test(a))return!0;let o=$r(e.endLines,t.startLine),s=!1;for(let d=t.startLine-1;d>o;d-=1){let i=r[d]?.trim()??"";if(i===""){if(s)continue;return!1}if(!s&&!Gt.test(i))return!1;if(xe.test(i))return!0;s?s=!i.includes("/*"):s=i.endsWith("*/")&&!i.includes("/*")}return!1}function $r(e,t){let n=0,r=e.length;for(;n<r;){let a=n+r>>>1;e[a]<t?n=a+1:r=a}return n>0?e[n-1]:-1}function Ur(e){let t=new Map,n=new Set;return e.forEach((r,a)=>{if(!r.includes("export"))return;let o=vr.exec(r)?.[1];if(o){let s=t.get(o);s?s.push(a):t.set(o,[a])}for(let s of Cr.exec(r)?.[1]?.match(kr)??[])n.add(s)}),{declared:t,listed:n}}function Hr(e,t){if(e.listed.has(t.leaf))return!0;let n=t.startLine-xr;return e.declared.get(t.leaf)?.some(r=>r>=n&&r<=t.startLine)??!1}function Wr(e,t){if(Er.test(e.replace(/\\/g,"/")))return!0;let n=!1;for(let[r,a]of t.slice(0,yr).entries()){let o=a.trim();if(n){if(we.test(o))return!0;n=!o.includes("*/")}else{if(o===""||r===0&&o.startsWith("#!"))continue;if(o.startsWith("/*")){if(we.test(o))return!0;n=!o.includes("*/",2)}else if(Sr.test(o)){if(we.test(o))return!0}else return!1}}return!1}function jr(e){return e.replace(/\s+/g," ").trim()}var Kr={name:1,container:.8,doc:.6,signature:.5,path:.3},Vr=200,Gr=3,qr=5,zr=new Set(["add","apply","build","calculate","call","check","compute","config","context","convert","create","data","default","delete","do","ensure","error","fetch","find","format","get","handle","has","info","init","is","item","load","make","new","normalize","option","param","parse","process","read","remove","resolve","result","run","set","state","type","update","use","validate","value","with","wrap","write"]);function Yt(e,t,n={}){let r=Jr(e,t,n.scope),a=[];for(let o of Yr(e,r)){if(!Zt(r,e.candidates[o]))continue;let s=en(r,e,o);(s.exactName||s.match>0)&&a.push(s)}return a.sort((o,s)=>Number(s.exactName)-Number(o.exactName)||s.match-o.match||s.nameCoverage-o.nameCoverage||o.index-s.index),{plan:r,corpusUnits:e.candidates.filter(o=>Q(r.scope,o)).length,shortlist:a.slice(0,Vr).map(o=>tn(r,e,o)),unresolvedProbes:r.calls.filter(o=>o.status!=="matched").map(o=>({probe:o.probe,status:o.status}))}}function Qt(e,t,n){return Zt(t,e.candidates[n])?tn(t,e,en(t,e,n)):null}function re(e){return e?e.replace(/\\/g,"/").toLowerCase():null}function Q(e,t){return!e||t.file.toLowerCase().includes(e)}function Zt(e,t){return Q(e.scope,t)?e.kinds.size===0||e.kinds.has(t.kind)?!0:(t.kind==="function"||t.kind==="method")&&(e.kinds.has("function")||e.kinds.has("method")):!1}function Jr(e,t,n){let r=new Set,a=i=>{for(let l of W(i))for(let c of de(l))r.add(c)},o=[];for(let i of t.terms){let l=[],c=[];for(let g of i){let S=Ae(g);S.length!==0&&(l.push(g),c.push(S),a(g))}if(c.length===0)continue;let p=Math.max(...c.map(g=>Xr(e,g)));o.push({labels:l,synonyms:c,weight:Math.log((e.candidates.length+1)/(p+1))+1})}let s=t.names.map(Pe).filter(i=>i.length>0);for(let i of t.names)a(i);for(let i of t.calls)a(i);for(let i of[...t.params,...t.returns])a(i);let d=t.calls.map(i=>Zr(e,i));return{groups:o,totalWeight:o.reduce((i,l)=>i+l.weight,0),names:s,vocab:r,calls:d,callTargets:new Set(d.flatMap(i=>i.targets)),params:{label:t.params.join("/"),words:t.params.flatMap(Ae)},returns:{label:t.returns.join("/"),words:t.returns.flatMap(Ae)},kinds:new Set(t.kinds),scope:re(n)}}function Ae(e){return $(e).variants}function Xr(e,t){return Math.min(...t.map(n=>Math.max(0,...n.map(r=>e.nameDocFreq.get(r)??0))))}function Yr(e,t){let n=new Set,r=o=>o.flatMap(s=>e.byToken.get(s)??[]),a=o=>{let s=o.map(r).sort((d,i)=>d.length-i.length)[0];for(let d of s??[])n.add(d)};for(let o of t.groups)for(let s of o.synonyms)a(s);for(let o of t.names)a(o.filter(s=>s.length>=2&&!Z.has(s)).map(s=>[s]));return n}var Qr=/[.#:/]/;function Zr(e,t){let n=t.replace(/`/g,""),r=Qr.test(n),a=r?n.split(/[.#:/]+/).filter(Boolean).at(-1)??n:n,o=e.byName.get(a)??[],s=r?o.filter(i=>to(e.candidates[i]).has(n)):o;if(s.length>0)return new Set(s.map(l=>eo(e.candidates[l]))).size>qr?{probe:t,leaf:a,status:"ambiguous",targets:[]}:{probe:t,leaf:a,status:"matched",targets:s};let d=!r&&e.calledLeaves.has(n);return{probe:t,leaf:a,status:d?"matched":"unmatched",targets:[]}}function eo(e){return`${e.file}\0${e.container??""}`}function to(e){let t=new Set,n=[e.name];if(e.container){for(let r of[".","#","::"])t.add(`${e.container}${r}${e.name}`);n.push(`${e.container}.${e.name}`)}for(let r of[e.file,e.file.replace(/\.[^./]+$/,"")])for(let a of[":","#","/"])for(let o of n)t.add(`${r}${a}${o}`);return t}function en(e,t,n){let r=t.candidates[n],a=e.names.some(c=>no(c,r.nameWords)),o=0,s=0,d=0,i=[];for(let c of e.groups){let p={label:c.labels[0],field:null};for(let g of Re){let S=c.synonyms.findIndex(b=>ro(r.fields[g],b));if(!(S<0)){p={label:c.labels[S],field:g};break}}i.push(p),p.field&&(o+=c.weight*Kr[p.field]),p.field==="name"&&(s+=c.weight,d+=1)}let l=e.totalWeight;return{index:n,match:l>0?o/l:0,nameCoverage:l>0?s/l:0,nameGroups:d,exactName:a,hits:i}}function no(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function ro(e,t){if(t.length===1)return t[0].some(n=>e.set.has(n));for(let n=0;n+t.length<=e.words.length;n+=1)if(t.every((r,a)=>e.variants[n+a].some(o=>r.includes(o))))return!0;return!1}function tn(e,t,n){let r=t.candidates[n.index],a=e.calls.filter(i=>i.status==="matched"),o=a.filter(i=>r.calleeLeaves.includes(i.leaf)).map(i=>i.probe),{fit:s,note:d}=so(e,r);return{...n,candidate:r,callContainment:r.hasBody&&a.length>0?o.length/a.length:null,callsFound:o,fit:s,fitNote:d,specializedWords:oo(e,t,r),isCallTarget:e.callTargets.has(n.index)}}function oo(e,t,n){let r=n.fields.name;return r.words.filter((a,o)=>(t.nameDocFreq.get(a)??0)<=Gr&&!zr.has(a)&&!r.variants[o].some(s=>e.vocab.has(s)))}function so(e,t){if(t.kind!=="function"&&t.kind!=="method")return{fit:"unknown",note:null};let n=[ao(e,t),io(e,t)].filter(a=>a!==null),r=n.find(a=>a.verdict==="conflicts")??n[0];return r?{fit:r.verdict,note:r.note}:{fit:"unknown",note:null}}function ao(e,t){if(e.returns.words.length===0)return null;let n=t.returnsText;return n?nn($(n),e.returns.words)?{verdict:"fits",note:`returns ${Xt(n)}`}:{verdict:"conflicts",note:`returns ${Xt(n)}, probe expects ${e.returns.label}`}:null}function io(e,t){return e.params.words.length===0||t.paramsText===null?null:t.paramsText===""?{verdict:"conflicts",note:`takes no parameters, probe expects ${e.params.label}`}:nn($(t.paramsText),e.params.words)?{verdict:"fits",note:`parameters include ${e.params.label}`}:null}function nn(e,t){return t.some(n=>n.some(r=>e.set.has(r)))}function Xt(e){return e.length>40?`${e.slice(0,39)}\u2026`:e}import{createHash as Eo}from"crypto";var co=.6,lo=.35,rn=.5,uo=.75,fo=.5,Ne="blocked: file-internal (not exported, no references from other files)",Me="blocked: marked @deprecated",oe=["reuse","rework","compose"];function sn(e,t,n){let{plan:r}=n,a=new Map(n.shortlist.map(i=>[i.index,i])),o=i=>{if(a.has(i))return;let l=Qt(t,r,i);l&&a.set(i,l)};for(let i of r.callTargets)o(i);let s=new Map;for(let i of[...a.values()].filter(l=>po(r,l)))for(let l of i.candidate.calleeLeaves)for(let c of bo(e,t,i.candidate,l)){if(c===i.index)continue;let p=s.get(c);p?p.push(i):s.set(c,[i])}for(let i of s.keys())o(i);let d=[];for(let i of a.values()){let l=mo(r,i,s.get(i.index)??[]);l&&d.push(l)}return d.sort(ho)}function mo(e,t,n){let r=cn(t),a=go(e,t,n),o=t.exactName||t.nameCoverage>=uo,s=t.candidate.consumable&&!t.candidate.deprecated;return a.length>0&&!o&&s?_e(t,"compose",[...Te(t),...a]):an(t,r)?_e(t,"reuse",Te(t)):(t.exactName||t.match>=lo)&&r.length>0?_e(t,"rework",[...Te(t),...r.map(d=>d.text)]):null}function _e(e,t,n){let r=e.exactName||(e.callContainment??0)>=fo&&e.fit==="fits";return{candidate:e.candidate,bucket:t,tier:r?"direct":"signal",score:Fe(e.exactName?Math.max(e.match,.9):e.match),why:n}}function an(e,t){return(e.exactName||e.match>=co)&&t.length===0}function po(e,t){return an(t,cn(t))&&!t.isCallTarget&&!dn(e,t)}function dn(e,t){return e.groups.length>=2&&t.nameGroups===1&&t.specializedWords.length===0&&t.hits.some(n=>n.field===null)}function go(e,t,n){let r=[];t.isCallTarget&&r.push(`name matches call probe ${t.candidate.name}`),dn(e,t)&&r.push(`part of the task: name covers 1 of ${e.groups.length} concepts`);let a=n.filter(o=>on(o)>on(t));if(a.length>0){let o=[...new Set(a.map(s=>s.candidate.name))].slice(0,3);r.push(`referenced inside ${o.join(", ")}`)}return r}function on(e){return e.exactName?Math.max(e.match,.9):e.match}function bo(e,t,n,r){return(t.byName.get(r)??[]).filter(a=>{let o=t.candidates[a];return o.file!==n.file&&!o.referencedFrom.includes(n.file)?!1:Jt(e,t,a,n.file).some(([s,d])=>s>=n.startLine&&d<=n.endLine)})}function cn(e){let{candidate:t}=e,n=[];e.fit==="conflicts"&&n.push({kind:"signature",text:`blocked: ${e.fitNote??"signature conflicts with the probes"}`}),t.consumable||n.push({kind:"file-internal",text:Ne}),e.specializedWords.length>0&&n.push({kind:"specialized",text:`blocked: specialized name (${e.specializedWords.join(", ")} not in the probes)`}),t.deprecated&&n.push({kind:"deprecated",text:Me});let r=[...new Set(e.hits.flatMap(o=>o.field&&o.field!=="name"?[o.field]:[]))],a=e.exactName||e.nameCoverage>=rn||(e.callContainment??0)>=rn;return r.length>0&&!a&&n.push({kind:"doc-only",text:`blocked: concept appears only in ${r.join("/")}, not in the name or callees`}),n}function Te(e){let t=[];e.exactName&&t.push(`name equals probe name ${e.candidate.name}`);let n=new Map;for(let a of e.hits){if(!a.field)continue;let o=n.get(a.field)??[];o.push(a.label),n.set(a.field,o)}let r=n.get("name");r&&!e.exactName&&t.push(`name matches ${r.join("+")}`);for(let[a,o]of n)a!=="name"&&t.push(`${a} mentions ${o.join("+")}`);return e.callsFound.length>0&&t.push(`calls ${e.callsFound.join(", ")}`),e.candidate.consumable&&t.push(Be(e.candidate)),e.fit==="fits"&&e.fitNote&&t.push(`signature fits: ${e.fitNote}`),t}function Be(e){let t=e.referencedFrom.length,n=`referenced from ${t} ${t===1?"file":"files"}`;return e.exported?t>0?`exported, ${n}`:"exported, no references from other files":t>0?`not exported, ${n}`:"file-internal"}function Oe(e,t){return{symbolId:e.symbol,name:e.kind==="method"&&e.container?`${e.container}.${e.name}`:e.name,file:e.file,line:e.startLine+1,signature:e.signature,...t}}function Le(e,t,n){let r=new Map;return e.filter(a=>{if(n&&a.bucket!==n)return!1;let o=r.get(a.bucket)??0;return r.set(a.bucket,o+1),o<t})}function ho(e,t){return oe.indexOf(e.bucket)-oe.indexOf(t.bucket)||+(t.tier==="direct")-+(e.tier==="direct")||t.score-e.score||e.candidate.file.localeCompare(t.candidate.file)||e.candidate.startLine-t.candidate.startLine||e.candidate.name.localeCompare(t.candidate.name)}function Fe(e){return Math.round(e*1e3)/1e3}var mn=5,pn=1200,yo=.05,So=.12,vo=15,Co=3,ko=.5,xo=200,wo=300,ln=1e-9;function gn(e,t,n={}){let r=Y(e),a=Yt(r,t,{scope:n.scope}),o=sn(e,r,a);return{candidates:Le(o,n.limit??mn,n.bucket).map(s=>Oe(s.candidate,{bucket:s.bucket,tier:s.tier,score:s.score,scoreBasis:"probe-match",why:s.why})),unresolvedProbes:a.unresolvedProbes,coverage:{corpusUnits:a.corpusUnits}}}var un=new WeakMap;function bn(e,t=pn){return hn(Y(e),t).cards}function hn(e,t){let n=un.get(e);n||(n=new Map,un.set(e,n));let r=n.get(t);if(!r){let a=e.candidates.map((s,d)=>{let i=Po(s,t);return{cardHash:Ro(i),text:i,candidateIndex:d}}),o=new Map;for(let s of a){let d=o.get(s.cardHash);d?d.push(s.candidateIndex):o.set(s.cardHash,[s.candidateIndex])}r={cards:a,indexesByHash:o},n.set(t,r)}return r}function Ro(e){return Eo("sha256").update(`card-format-${1}
|
|
5
5
|
${e}`).digest("hex")}function Po(e,t){let n=o=>W(o).map(s=>s.toLocaleLowerCase()).join(" "),r=`name: ${n(e.name)} | kind: ${e.kind} | in: ${e.container??""}`,a=[`signature: ${(e.signature??"").slice(0,xo)}`,`doc: ${e.doc.slice(0,wo)}`,`path: ${n(e.file.replace(/\.[^./]+$/,""))}`].join(" | ");return`${r}
|
|
@@ -14,4 +14,4 @@ ${a}`.slice(0,t)}function En(e,t,n={}){let{topBandMargin:r=yo,maxCardChars:a=pn}
|
|
|
14
14
|
`),Uo(n,t),{db:n,readDataVersion:n.prepare("PRAGMA data_version").pluck(),readCanary:n.prepare("SELECT value FROM meta WHERE key = 'canary'"),writeCanary:n.prepare("INSERT OR REPLACE INTO meta (key, value) VALUES ('canary', ?)"),readUsed:n.prepare("SELECT last_used_at FROM vectors WHERE card_hash = ?"),touch:n.prepare("UPDATE vectors SET last_used_at = ? WHERE card_hash = ?"),upsert:n.prepare("INSERT OR REPLACE INTO vectors (card_hash, embedded_at, last_used_at, vector) VALUES (?, ?, ?, ?)"),countRows:n.prepare("SELECT COUNT(*) AS count FROM vectors"),readAll:n.prepare("SELECT card_hash, vector FROM vectors"),deleteUnusedBefore:n.prepare("DELETE FROM vectors WHERE last_used_at < ?"),deleteOldest:n.prepare(`DELETE FROM vectors WHERE card_hash IN (
|
|
15
15
|
SELECT card_hash FROM vectors ORDER BY last_used_at ASC, embedded_at ASC, card_hash ASC LIMIT ?
|
|
16
16
|
)`)}}catch(r){ce("disabled (open failed)",r);try{n?.close()}catch{}return null}}function Uo(e,t){let n={schema_version:String(Oo),model:t.model,dims:String(t.dims),document_prefix:t.documentPrefix,card_format_version:String(t.cardFormatVersion)};e.transaction(()=>{let r=new Map(e.prepare("SELECT key, value FROM meta").all().map(s=>[s.key,s.value]));if(Object.entries(n).every(([s,d])=>r.get(s)===d))return;e.exec("DELETE FROM vectors; DELETE FROM meta;");let o=e.prepare("INSERT INTO meta (key, value) VALUES (?, ?)");for(let[s,d]of Object.entries(n))o.run(s,d)}).immediate()}function Sn(e){return Buffer.from(e.buffer,e.byteOffset,e.byteLength)}function Ho(e){return new Float32Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength))}function Wo(e,t){if(e.length!==t.length)return 0;let n=0,r=0,a=0;for(let o=0;o<e.length;o+=1)n+=e[o]*t[o],r+=e[o]*e[o],a+=t[o]*t[o];return r===0||a===0?0:n/Math.sqrt(r*a)}var jo="builder";function ua(e){return De(e,jo)}var Ko=.8,Cn="inside an agent session: pass probes (--term/--name/--calls) instead of a description",Vo=3e4,Go=6e4,qo=2,zo=50,Jo=12,$e=2e3,Xo=5,se="builder query aborted",Yo=2147483647;function Qo(e){return e>=$e?`vector search returns at most ${$e} hits; lower-ranked units are not listed`:void 0}function fa(e){let{settings:t,storeRoot:n,languages:r}=e,a=e.env??process.env,o=e.now??ie,s=new Map,d;function i(u){let f=e.openDb();try{return u(f)}finally{e.closeDb?.(f)}}function l(){return Object.entries(a).some(([u,f])=>f!==void 0&&(u==="CLAUDECODE"||u.startsWith("CODEX_")))}function c(u){let f=s.get(u.name);return f||(f={client:Dt(u,{fetchImpl:e.fetchImpl,env:a})},s.set(u.name,f)),f}function p(u,f,h){u.health=void 0,u.failure={state:f,detail:h,openUntil:o()+Go}}async function g(u,f,h=!1){let E=c(u),v=o();if(!h&&E.failure&&v<E.failure.openUntil){let k=Math.ceil((E.failure.openUntil-v)/1e3);return{ok:!1,state:E.failure.state,detail:`${E.failure.detail} (not retried for another ${k}s)`}}let C=!h&&E.health!==void 0&&v-E.health.checkedAt<Vo,y;if(C)y=E.health.value;else{let k=await E.client.checkHealth({signal:f});if(!k.ok){J(f,se);let _=Zo(k.reason);return p(E,_,k.detail),{ok:!1,state:_,detail:k.detail}}y=k,E.health={value:k,checkedAt:o()},E.failure=void 0}let w=S(E,u,y,!C);return w.ok?{ok:!0,endpoint:u,store:w.held.store,client:E.client,...w.held.forked?{note:`model weights differ from the shared ${u.model} store; using a store forked for ${u.name}`}:{}}:w}function S(u,f,h,E){let v=u.held;if(v&&v.dims===h.dimensions&&(!E||v.store.verifyCanary(h.canary)!=="drift"))return{ok:!0,held:v};v?.store.close(),u.held=void 0;let C={model:f.model,dims:h.dimensions,documentPrefix:f.documentPrefix,cardFormatVersion:1},y=Ie(n,C);if(!y.available)return y.close(),{ok:!1,state:"degraded",detail:`the vector store ${y.path} could not be opened`};if(y.verifyCanary(h.canary)!=="drift")return u.held={store:y,dims:h.dimensions,forked:!1},{ok:!0,held:u.held};let w=y.key;y.close();let k=Ie(n,C,{storeKey:vn(w,f.name)});return!k.available||k.verifyCanary(h.canary)==="drift"?(k.close(),{ok:!1,state:"degraded",detail:`model weights for ${f.model} keep changing between runs`}):(u.held={store:k,dims:h.dimensions,forked:!0},{ok:!0,held:u.held})}function b(u){return i(f=>{let h=bn(f,t.maxCardChars),E=new Map;for(let y of h)E.has(y.cardHash)||E.set(y.cardHash,y.text);let v=re(u),C=null;if(v){let{candidates:y}=Y(f);C=new Set(h.filter(w=>Q(v,y[w.candidateIndex])).map(w=>w.cardHash))}return{hashes:h.map(y=>y.cardHash),textByHash:E,scopedHashes:C}})}function m(u,f){let h=new Set(u.missing(f.hashes)),E=f.hashes.filter(v=>!h.has(v)).length;return{embeddedUnits:E,fraction:f.hashes.length===0?1:E/f.hashes.length}}async function x(u,f,h,E){let{endpoint:v,store:C,client:y}=u,w=C.missing(f.hashes);if(w.length===0)return{embedded:0,budgetExhausted:!1};let k=AbortSignal.timeout(Math.min(E,Yo)),_=h?AbortSignal.any([h,k]):k,L=Math.max(1,Math.floor(v.batchSize))*qo,T={embedded:0,budgetExhausted:!1};return(await C.withRefreshLock(async()=>{for(let q=0;q<w.length;q+=L){let z=w.slice(q,q+L);try{let U=await y.embed(z.map(F=>f.textByHash.get(F)),"document",{signal:_});C.put(z.map((F,me)=>({cardHash:F,vector:U[me]}))),T.embedded+=z.length}catch(U){if(h?.aborted)throw H(h,se);if(k.aborted){T.budgetExhausted=!0;return}p(c(v),"degraded",ue(U)),T.note=`embedding stopped: ${ue(U)}`;return}}})).acquired?T.embedded>0&&C.prune():T.note="another process is already embedding this repository",T}async function P(u,f,h,E){let v=await g(u,E);if(!v.ok)return{kind:"failed",reason:`${v.state}: ${v.detail}`};let C=b(f.scope),y=await x(v,C,E,t.indexBudgetMs),{embeddedUnits:w,fraction:k}=m(v.store,C),_;try{let[F]=await v.client.embed([h],"query",{signal:E}),me=Math.min($e,Math.max(zo,(f.limit??Xo)*Jo));_=v.store.topK(F,me,C.scopedHashes??new Set(C.hashes))}catch(F){if(E?.aborted)throw H(E,se);return p(c(u),"degraded",ue(F)),{kind:"failed",reason:`degraded: ${ue(F)}`}}let L=i(F=>En(F,_,{topBandMargin:t.topBandMargin,maxCardChars:t.maxCardChars,limit:f.limit,scope:f.scope,bucket:f.bucket})),T=C.hashes.length,Ue=w<T?`partial embeddings: ${w} of ${T} units (${le(k)})`:void 0,q=y.budgetExhausted?`index budget of ${t.indexBudgetMs} ms used up`:void 0,z=[v.note,Ue,q,y.note,Qo(_.length)].filter(F=>F!==void 0),U={provider:`embeddings:${u.name}`,probes:null,unresolvedProbes:[],candidates:L,coverage:{corpusUnits:T,embeddedUnits:w,...z.length>0?{note:z.join("; ")}:{}}};return k>=t.minCoverage?{kind:"answer",answer:U}:{kind:"degraded",answer:U,fraction:k,reason:`degraded: embedded ${w} of ${T} units (${le(k)}), below the ${le(t.minCoverage)} minimum`}}function R(){return d??=Bt(De(n,"agent-probes"),t.cacheTtlHours,o),d}async function A(u,f,h,E){if(l())return{kind:"failed",reason:Cn};let v=R(),C=v.get(u.argv,h);if(!C){let y=await Tt(u,{description:h,languages:r,workDir:De(n,"agent-sandbox")},{signal:E,env:a});if(!y.ok)return{kind:"failed",reason:`${y.reason}: ${y.detail}`};C=y.probes,v.set(u.argv,h,C)}return{kind:"answer",answer:{provider:`agent:${u.name}`,...B(f,C)}}}function B(u,f){let h=i(E=>gn(E,f,{limit:u.limit,scope:u.scope,bucket:u.bucket}));return{probes:f,unresolvedProbes:h.unresolvedProbes,candidates:h.candidates,coverage:h.coverage}}function O(u){return u==="agent"?t.agents.map(f=>({kind:"agent",name:f.name})):u==="embeddings"?t.endpoints.map(f=>({kind:"embeddings",name:f.name})):t.chain}async function ae(u,f,h,E){if(u.kind==="agent"){let C=t.agents.find(y=>y.name===u.name);return C?A(C,f,h,E):{kind:"failed",reason:"not configured"}}let v=t.endpoints.find(C=>C.name===u.name);return v?P(v,f,h,E):{kind:"failed",reason:"not configured"}}function M(u,f){return{...u,fallbacksTried:f,evidence:"heuristic"}}function I(u,f){return M({provider:"none",probes:null,unresolvedProbes:[],candidates:[],coverage:{corpusUnits:0,note:f}},u)}async function K(u,f={}){let{signal:h}=f;J(h,se);let E=u.mode??t.mode;if(u.probes&&X(u.probes)&&E!=="embeddings")return M({provider:"agent:caller",...B(u,u.probes)},[]);let v=Ve(u.description?.trim()??"").trim();if(v===""){let k=E==="embeddings"&&u.probes&&X(u.probes)?"embeddings mode ranks a description; probes are not embedded":"no description or probes were given";return I([{provider:"request",reason:k}],"nothing to look up")}let C=O(E);if(C.length===0)return I([{provider:E,reason:"no providers are configured for this mode"}],"no provider ran");let y=[],w=[];for(let k of C){J(h,se);let _=await ae(k,u,v,h);if(_.kind==="answer")return M(_.answer,y);let L={provider:qe(k),reason:_.reason};y.push(L),_.kind==="degraded"&&w.push({entry:L,answer:_.answer,fraction:_.fraction})}if(w.length>0){let k=w.reduce((_,L)=>L.fraction>_.fraction?L:_);return M(k.answer,y.filter(_=>_!==k.entry))}return I(y,"no provider answered")}function fe(u){let f=`agent:${u.name}`;if(l())return{provider:f,state:"skipped",detail:Cn};let h=Se(u);return h.ok?{provider:f,state:"ok",detail:`runs ${u.argv[0]} with a ${Math.round(u.timeoutMs/1e3)}s timeout`}:{provider:f,state:h.reason==="misconfigured"?"misconfigured":"unreachable",detail:h.detail}}async function V(u,f){let h=`embeddings:${u.name}`,E=await g(u,f,!0);if(!E.ok)return{provider:h,state:E.state,detail:E.detail};let v=b(void 0),{embeddedUnits:C,fraction:y}=m(E.store,v),w=`${u.model} reachable; embedded ${C} of ${v.hashes.length} units (${le(y)})`;return{provider:h,state:y>=t.minCoverage?"ok":"degraded",detail:E.note?`${w}; ${E.note}`:w,coverage:y}}async function G(u={}){let f=[];for(let h of t.endpoints)f.push(await V(h,u.signal));for(let h of t.agents)f.push(fe(h));return f}async function kn(u={}){let{endpoint:f,signal:h,endsAt:E,budgetMs:v=t.indexBudgetMs}=u,C=f===void 0?t.endpoints:t.endpoints.filter(w=>w.name===f);if(C.length===0)throw new Error(f===void 0?"No embeddings endpoint is configured.":`No embeddings endpoint is named ${f}.`);let y=[];for(let w of C){let k=await g(w,h);if(!k.ok){y.push(`embeddings:${w.name} ${k.state}: ${k.detail}`);continue}let _=b(void 0),L=E===void 0?v:Math.max(1,Math.floor((E-o())*Ko)),T=await x(k,_,h,L);return{provider:`embeddings:${w.name}`,embedded:T.embedded,coverage:m(k.store,_).fraction,budgetExhausted:T.budgetExhausted,...T.note?{note:T.note}:{}}}throw new Error(`No embeddings endpoint could be refreshed: ${y.join("; ")}`)}function xn(){for(let u of s.values())u.held?.store.close(),u.held=void 0}return{query:K,providerStatus:G,refreshEmbeddings:kn,close:xn}}function Zo(e){switch(e){case"unreachable":return"unreachable";case"remote-not-allowed":case"insecure-token-transport":case"invalid-endpoint":case"unauthorized":return"misconfigured";default:return"degraded"}}function le(e){return`${Math.round(e*100)}%`}function ue(e){return e instanceof Error?e.message:String(e)}export{ua as a,fa as b};
|
|
17
|
-
//# sourceMappingURL=chunk-
|
|
17
|
+
//# sourceMappingURL=chunk-5NUPFZFA.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as at}from"./chunk-ILMHV3KM.js";import{a as mt}from"./chunk-XN3EKMLI.js";import{G as ht,a as pt,b as gt,h as Z,i as W,j as de,k as bt}from"./chunk-LONKINMJ.js";import{U as ot,V as st,g as he,k as nt}from"./chunk-6WAPPQ5F.js";import{b as Ke,c as Ve,d as Ge,q as rt}from"./chunk-EQNMD62X.js";import{D as Ze,E as et,I as tt}from"./chunk-C6WKPKCF.js";import{d as Xe,e as Ye,f as Qe}from"./chunk-DRENNWRG.js";import{b as X,c as Ee,d as it,e as dt,f as ct,i as lt,j as ut,k as ft}from"./chunk-MEUHIDI3.js";import{a as be,l as ze,m as Je}from"./chunk-5FWR5HLG.js";import{i as H,j as J,m as je}from"./chunk-T75DS2E6.js";import{b as qe}from"./chunk-YT4DVWUV.js";import{a as We}from"./chunk-RCIGX23V.js";import{a as ge,b as ie}from"./chunk-6O3KXIDL.js";import{e as He,g as pe}from"./chunk-UQYQBLJX.js";import{join as $e}from"path";import{createHash as gn}from"crypto";import{mkdirSync as Ct,mkdtempSync as bn,renameSync as hn,rmSync as kt,statSync as En,writeFileSync as wt}from"fs";import{tmpdir as yn}from"os";import{extname as Sn,join as ee,resolve as vn,sep as Cn}from"path";var kn=1024*1024,Et=500,wn=64,Rn=/\.(?:cmd|bat)$/i;async function Rt(e,t,n={}){let r=Se(e);if(!r.ok)return $(r.reason,r.detail);let a=JSON.stringify(it),o;try{Ct(t.workDir,{recursive:!0}),o=bn(ee(yn(),"codebaseiq-probe-")),e.argv.includes("{schemaFile}")&&wt(ee(o,"schema.json"),a)}catch(s){return yt(o),$("spawn-failed",`could not prepare the agent sandbox: ${te(xn(s))}`)}try{let s=ee(o,"schema.json"),d=ee(o,"output.json"),i=e.argv.includes("{outputFile}"),c=new Map([["{schemaJson}",a],["{schemaFile}",s],["{outputFile}",d]]),l=Ve(r.path,e.argv.slice(1).map(S=>c.get(S)??S)),b;try{b=await st({command:l.binary,args:l.args,label:`agent probe command ${e.name}`,timeoutMs:e.timeoutMs,maxStdoutBytes:e.maxOutputBytes,maxStderrBytes:kn,cwd:t.workDir,env:Tn(n.env??process.env),input:ct(t.description,t.languages),signal:n.signal})}catch(S){return _n(S,n.signal)}if(b.status!==0){let S=St(b.stdout),g=b.status===null?`signal ${b.signal}`:`code ${b.status}`,m=S.kind==="error"?S.detail:b.stderr.trim()||b.stdout.trim();return $("agent-error",`${e.name} exited with ${g}: ${te(m)}`)}let p=[];if(i){let S=Mn(d,e.maxOutputBytes);if(S==="too-large")return $("output-too-large",`${e.name} wrote more than ${e.maxOutputBytes} bytes.`);S!==null&&p.push(S)}p.push(b.stdout);for(let S of p){let g=St(S);if(g.kind==="error")return $("agent-error",g.detail);if(g.kind==="none")continue;let{probes:m,diagnostics:w}=Ee(g.value);return X(m)?{ok:!0,probes:m,diagnostics:w,raw:S.trim()}:$("invalid-probes",On(w))}return $("no-json",`${e.name} printed no JSON object: ${te(b.stdout.trim())}`)}finally{yt(o)}}function yt(e){if(e!==void 0)try{kt(e,{recursive:!0,force:!0,maxRetries:3})}catch{}}function xn(e){return e instanceof Error?e.message:String(e)}function $(e,t){return{ok:!1,reason:e,detail:t}}function Pn(e){let t=ut({agent:{commands:[e]}}).filter(n=>n.level==="error");return t.length>0?t.map(n=>`${n.path}: ${n.message}`).join(" "):ft.has(e.argv[0])?"argv[0] must be the executable, not a placeholder.":[e.timeoutMs,e.maxOutputBytes].every(n=>Number.isFinite(n)&&n>0)?null:"timeoutMs and maxOutputBytes must be positive numbers."}function Se(e){let t=Pn(e);if(t)return{ok:!1,reason:"misconfigured",detail:t};let n=e.argv[0],r=`argv[0] "${n}" is a .cmd/.bat shim, which cannot be started without a shell. Point argv[0] at the real executable or at a node script (.js, .mjs, .cjs).`,a=n.includes("/")||n.includes(Cn),o;if(a){o=An(vn(n));let s=ye(o);if(s==="missing")return{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found.`};if(s==="other")return{ok:!1,reason:"misconfigured",detail:`argv[0] "${n}" is not an executable file.`}}else o=Ge(n);return o===null?Ke(n)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found on PATH.`}:process.platform==="win32"&&Rn.test(o)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!0,path:o}}function An(e,t=process.platform){return t!=="win32"||Sn(e)!==""||ye(e)!=="missing"?e:[".exe",".com"].map(n=>`${e}${n}`).find(n=>ye(n)==="file")??e}function ye(e){try{return En(e).isFile()?"file":"other"}catch{return"missing"}}function Tn(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&!/^CODEBASEIQ_/i.test(n)&&(t[n]=r);return t}function _n(e,t){if(!(e instanceof ot))throw e;switch(e.kind){case"spawn":return $("spawn-failed",e.message);case"timeout":return $("timeout",e.message);case"stdout-limit":case"stderr-limit":return $("output-too-large",e.message);case"aborted":throw t?H(t,e.message):e}}function Mn(e,t){try{return pe(e,{maxBytes:t,inputKind:"agent output file"})}catch(n){return n instanceof He&&n.reason==="too-large"?"too-large":null}}function St(e){let t=vt(e);if(!t)return{kind:"none"};if(t.type!=="result")return{kind:"object",value:t};if(t.is_error===!0){let r=typeof t.result=="string"&&t.result?t.result:t.subtype;return{kind:"error",detail:te(`The agent reported an error: ${String(r??"no message")}`)}}if(Pt(t.structured_output))return{kind:"object",value:t.structured_output};let n=typeof t.result=="string"?vt(t.result):null;return n?{kind:"object",value:n}:{kind:"none"}}function vt(e){let t=e.trim();return xt(t)??Bn(t)}function xt(e){try{let t=JSON.parse(e);return Pt(t)?t:null}catch{return null}}function Bn(e){let t=/\{\s*["}]/g,n=null,r=0;for(let a=0;a<wn;){t.lastIndex=r;let o=t.exec(e);if(!o)break;let s=Nn(e,o.index),d=s===-1?null:xt(e.slice(o.index,s+1));d?(n=d,r=s+1):(r=o.index+1,a++)}return n}function Nn(e,t){let n=0,r=!1,a=!1;for(let o=t;o<e.length;o++){let s=e[o];if(r)a?a=!1:s==="\\"?a=!0:s==='"'&&(r=!1);else if(s==='"')r=!0;else if(s==="{")n++;else if(s==="}"&&--n===0)return o}return-1}function Pt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function On(e){return e.length===0?"The agent returned no usable probes.":te(`The agent returned no usable probes: ${e.slice(0,3).map(t=>`${t.path||"root"}: ${t.message}`).join("; ")}`)}function te(e){return e.length>Et?`${e.slice(0,Et)}...`:e}var Fn=64*1024,Ln=3600*1e3;function At(e,t,n=Date.now){let r=(a,o)=>ee(e,`${gn("sha256").update(JSON.stringify([a,3,o])).digest("hex")}.json`);return{get(a,o){try{let s=JSON.parse(pe(r(a,o),{maxBytes:Fn,inputKind:"agent probe cache entry"}));if(typeof s.storedAt!="number"||n()-s.storedAt>=t*Ln)return;let{probes:d}=Ee(s.probes);return X(d)?d:void 0}catch{return}},set(a,o,s){let d=r(a,o),i=`${d}.${process.pid}.tmp`;try{Ct(e,{recursive:!0}),wt(i,JSON.stringify({storedAt:n(),probes:s})),hn(i,d)}catch{try{kt(i,{force:!0})}catch{}}}}}import{BlockList as In,isIP as $n}from"net";var Ce=64*1024*1024,Dn=2,Tt="embedding request aborted",Un="codebaseiq embedding canary: parse a retry delay from a config file",M=class extends Error{constructor(n,r,a){super(r);this.kind=n;this.status=a;this.name="EmbeddingClientError"}kind;status},ne=new In;for(let[e,t]of[["127.0.0.0",8],["10.0.0.0",8],["172.16.0.0",12],["192.168.0.0",16],["100.64.0.0",10],["169.254.0.0",16]])ne.addSubnet(e,t,"ipv4");ne.addAddress("::1","ipv6");ne.addSubnet("fe80::",10,"ipv6");ne.addSubnet("fc00::",7,"ipv6");var Hn=[".local",".lan",".home.arpa",".internal"];function _t(e){let t;try{t=new URL(e).hostname}catch{return!1}let n=(t.startsWith("[")?t.slice(1,-1):t).replace(/\.$/,""),r=$n(n);return r!==0?ne.check(n,r===4?"ipv4":"ipv6"):n==="localhost"||Hn.some(a=>n.endsWith(a))}function Nt(e,t={}){let n=t.fetchImpl??fetch,r=t.env??process.env,a=e.baseUrl.replace(/\/+$/,"");function o(){let l=e.apiKeyEnv?r[e.apiKeyEnv]:void 0;return l||void 0}function s(){let l;try{l=new URL(e.baseUrl)}catch{throw new M("invalid-endpoint",`embedding endpoint "${e.name}" has an invalid baseUrl`)}if(l.protocol!=="http:"&&l.protocol!=="https:")throw new M("invalid-endpoint",`embedding endpoint "${e.name}" must use http or https`);if(l.username!==""||l.password!=="")throw new M("invalid-endpoint",`embedding endpoint "${e.name}" must not embed credentials in baseUrl; use apiKeyEnv`);if(!e.allowRemote&&!_t(e.baseUrl))throw new M("remote-not-allowed",`embedding endpoint "${e.name}" is not on a private network; set allowRemote to use it`);if(l.protocol==="http:"&&o()!==void 0&&!_t(e.baseUrl))throw new M("insecure-token-transport",`embedding endpoint "${e.name}" would send its API key over plain http to a non-private host; use https`)}function d(l){let b={};l&&(b["content-type"]="application/json");let p=o();return p&&(b.authorization=`Bearer ${p}`),b}async function i(l,b,p,S){let g={model:e.model,input:l,encoding_format:"float",...e.dimensions!==void 0?{dimensions:e.dimensions}:{}},{status:m,text:w}=await Mt(n,`${a}/embeddings`,{method:"POST",headers:d(!0),body:JSON.stringify(g)},b,!0,S);if(m<200||m>=300)throw new M("http",`embeddings request failed with HTTP ${m}`,m);return Vn(w,l.length,p)}async function c(l,b,p){try{return await i(l,e.requestTimeoutMs,b,p)}catch(S){if(!Wn(S))throw S;return i(l,e.requestTimeoutMs,b,p)}}return{async checkHealth({signal:l}={}){try{s()}catch(p){return ve(p)}try{await Mt(n,`${a}/models`,{method:"GET",headers:d(!1)},e.healthTimeoutMs,!1,l)}catch(p){return l?.aborted?ve(p,l):{ok:!1,reason:"unreachable",detail:ke(p)}}let b=ge();try{let[p]=await i([e.documentPrefix+Un],e.warmTimeoutMs,{dims:e.dimensions},l);return{ok:!0,model:e.model,dimensions:p.length,latencyMs:Math.round(ge()-b),canary:p}}catch(p){return ve(p,l)}},async embed(l,b,{signal:p}={}){if(s(),l.length===0)return[];let S=b==="query"?e.queryPrefix:e.documentPrefix,g=Math.max(1,Math.floor(e.batchSize)),m=[];for(let x=0;x<l.length;x+=g)m.push(l.slice(x,x+g).map(A=>S+A));let w={dims:e.dimensions};return(await at(m,Dn,x=>c(x,w,p))).flat()}}}function Wn(e){return e instanceof M&&(e.kind==="timeout"||e.kind==="http"&&(e.status??0)>=500)}function ve(e,t){let n=ke(e);if(t?.aborted)return{ok:!1,reason:"aborted",detail:n};if(!(e instanceof M))return{ok:!1,reason:"bad-response",detail:n};switch(e.kind){case"remote-not-allowed":case"insecure-token-transport":case"invalid-endpoint":return{ok:!1,reason:e.kind,detail:n};case"network":return{ok:!1,reason:"unreachable",detail:n};case"timeout":return{ok:!1,reason:"model-loading",detail:n};case"http":return e.status===503?{ok:!1,reason:"model-loading",detail:n}:e.status===401||e.status===403?{ok:!1,reason:"unauthorized",detail:n}:{ok:!1,reason:"bad-response",detail:n};default:return{ok:!1,reason:"bad-response",detail:n}}}function ke(e){return e instanceof Error?e.message:String(e)}async function Mt(e,t,n,r,a,o){J(o,Tt);let s=new AbortController,d=setTimeout(()=>{s.abort(new M("timeout",`no response within ${r}ms`))},r),i=()=>s.abort(o?.reason);o?.addEventListener("abort",i,{once:!0});try{let c=await Ot(e(t,{...n,signal:s.signal,redirect:"error"}),s.signal);return{status:c.status,text:a?await Kn(c,s.signal):""}}catch(c){throw o?.aborted&&s.signal.reason===o.reason?H(o,Tt):c instanceof M?c:s.signal.aborted&&s.signal.reason instanceof M?s.signal.reason:new M("network",`could not reach the embeddings endpoint: ${jn(c)}`)}finally{clearTimeout(d),o?.removeEventListener("abort",i),s.abort()}}function jn(e){let t=e instanceof Error?e.cause:void 0;return typeof t?.code=="string"?t.code:ke(e)}async function Kn(e,t){let n=Number(e.headers.get("content-length"));if(Number.isFinite(n)&&n>Ce)throw Bt();if(!e.body)return"";let r=e.body.getReader(),a=[],o=0;for(;;){let{done:s,value:d}=await Ot(r.read(),t);if(s)break;if(o+=d.byteLength,o>Ce)throw r.cancel().catch(()=>{}),Bt();a.push(d)}return new TextDecoder().decode(Buffer.concat(a))}function Bt(){return new M("too-large",`embeddings response exceeded the ${Ce} byte limit`)}function Ot(e,t){return new Promise((n,r)=>{let a=()=>r(t.reason);if(t.aborted){a();return}t.addEventListener("abort",a,{once:!0}),e.then(n,r).finally(()=>t.removeEventListener("abort",a))})}function Vn(e,t,n){let r;try{r=JSON.parse(e)}catch{throw j("response is not valid JSON")}let a=typeof r=="object"&&r!==null?r.data:void 0;if(!Array.isArray(a)||a.length!==t)throw j(`expected ${t} embeddings, received ${Array.isArray(a)?a.length:"none"}`);let o=new Array(t).fill(void 0),s=new Set;return a.forEach((d,i)=>{let c=typeof d=="object"&&d!==null?d:{},l=c.index===void 0?i:c.index;if(typeof l!="number"||!Number.isInteger(l)||l<0||l>=t||s.has(l))throw j("embedding indexes are not a permutation of the inputs");s.add(l),o[l]=c.embedding}),o.map(d=>Gn(d,n))}function Gn(e,t){if(!Array.isArray(e)||e.length===0)throw j("embedding is not a non-empty float array");if(t.dims!==void 0&&e.length!==t.dims)throw j(`embedding has ${e.length} dimensions, expected ${t.dims}`);let n=0;for(let o of e){if(typeof o!="number"||!Number.isFinite(o))throw j("embedding contains a non-finite value");n+=o*o}let r=Math.sqrt(n);if(!Number.isFinite(r)||r===0)throw j("embedding has zero or unrepresentable magnitude");t.dims=e.length;let a=new Float32Array(e.length);for(let o=0;o<e.length;o+=1)a[o]=e[o]/r;return a}function j(e){return new M("bad-response",`embeddings response rejected: ${e}`)}var xe=["name","container","doc","signature","path"],qn=1e3,zn=150,Jn=400,Xn=3,we=/@deprecated\b|#\[deprecated\b|\bdeprecated\s*[:(]/i,Ft=/^\s*(?:\/\/|\/\*|\*|#|@)/,Yn=new Set(gt()),Qn=/(?:^|\/)(?:__generated__|generated)\/|\.(?:generated|gen|g)\.[a-z0-9]+$|\.pb2?\.[a-z0-9]+$|_pb2?\.[a-z0-9]+$/i,Re=/@generated\b|\bcode generated\b.*\bdo not edit\b/i,Zn=40,er=/^(?:\/\/|--|#(?![[!\w]))/,tr=/^\s*export\s+(?:default\s+)?(?:(?:async\s+)?function|(?:abstract\s+)?class|interface|type|enum|namespace|module|const|let|var)\s+([\p{L}\p{N}_$]+)/u,nr=/^\s*export\s*\{([^}\n]*)/,rr=/[\p{L}\p{N}_$]+/gu,or=2,sr=qe("builder-candidate-corpus",{clearGroups:["whole-project","definition-catalog"]});function Y(e){return sr.get(e,()=>dr(e))}function D(e,t=2,n=Number.POSITIVE_INFINITY){let r=[],a=[],o=new Set;for(let s of W(e)){if(r.length>=n)break;if(Z.has(s.toLocaleLowerCase()))continue;let d=de(s),i=d[0];if(!(i.length<t||Z.has(i))){r.push(i),a.push(d);for(let c of d)o.add(c)}}return{words:r,variants:a,set:o}}function Pe(e){return W(e).map(bt)}function ar(e){let t=0,n=0,r=0,a=-1;for(let i=0;i<e.length&&a<0;i+=1){let c=e[i];c==="["?t+=1:c==="]"?t=Math.max(0,t-1):c==="{"?n+=1:c==="}"?n=Math.max(0,n-1):c==="<"?r+=1:c===">"&&e[i-1]!=="="&&e[i-1]!=="-"?r=Math.max(0,r-1):c==="("&&t===0&&n===0&&r===0&&(a=i)}if(a<0)return{params:null,returns:null};let o=0,s=-1;for(let i=a;i<e.length;i+=1){let c=e[i];if(c==="(")o+=1;else if(c===")"&&(o-=1,o===0)){s=i;break}}if(s<0)return{params:e.slice(a+1).trim(),returns:null};let d=e.slice(s+1).trim().replace(/^(?:=>|->|:)\s*/,"").replace(/\s+where\b.*$/,"").replace(/\s*(?:=>|=|\{|:)\s*$/,"").trim();return{params:e.slice(a+1,s).trim(),returns:d||null}}function ir(e){if(!e)return"";let t=/^\s*```(?:\w+)?\s*\n?[\s\S]*?\n?```/.exec(e);return(t?e.slice(t[0].length):e.includes("|")?e.slice(0,e.indexOf("|")):"").replace(/\s+/g," ").trim().slice(0,qn)}function dr(e){let t=new Map,n=new Set;for(let s of tt(e)){if(s.symbol.startsWith("local ")||!s.isFunctionLike&&!s.isTypeLike||e.isIgnored(s.relativePath)||he(s.relativePath)==="test")continue;let d=`${s.symbol}\0${s.relativePath}`;if(n.has(d))continue;n.add(d);let i=t.get(s.relativePath);i?i.push(s):t.set(s.relativePath,[s])}let r=[];for(let s of[...t.keys()].sort()){let d=Je(e,s);if(Cr(s,d))continue;let i=t.get(s),c=fr(e,s,d,i);for(let l of i){let b=pr(l,c);b&&r.push({definition:l,candidate:b})}}r.sort((s,d)=>s.candidate.file.localeCompare(d.candidate.file)||s.candidate.startLine-d.candidate.startLine||s.candidate.name.localeCompare(d.candidate.name));let a=ht(e,new Set,r.map(({definition:s})=>s.symbolId)),o=r.map(({definition:s,candidate:d})=>{let i=[...a.get(s.symbolId)??[]].filter(([c,l])=>c!==d.file&&l.occurrences>0&&he(c)!=="test").map(([c])=>c).sort();return{...d,referencedFrom:i,consumable:d.exported||i.length>0}});return lr(o,r.map(({definition:s})=>cr(s)))}function cr(e){let{symbolId:t,documentId:n,startLine:r,endLine:a,symbol:o,relativePath:s}=e;return{symbolId:t,documentId:n,startLine:r,endLine:a,symbol:o,relativePath:s}}function lr(e,t){let n=new Map,r=new Map,a=new Map,o=new Set;return e.forEach((s,d)=>{let i=new Set;for(let c of xe)for(let l of s.fields[c].set)i.add(l);for(let c of i)It(n,c,d);for(let c of s.fields.name.set)r.set(c,(r.get(c)??0)+1);It(a,s.name,d);for(let c of s.calleeLeaves)o.add(c)}),{candidates:e,locations:t,byToken:n,nameDocFreq:r,byName:a,calledLeaves:o}}var Lt=new WeakMap;function $t(e,t,n,r){let a=Lt.get(t);a||(a=new Map,Lt.set(t,a));let o=a.get(n);return o||(o=ur(e,t.locations[n],t.candidates[n].name),a.set(n,o)),o.get(r)??[]}function ur(e,t,n){let r=new Map;for(let o of rt(e,[t.symbolId])){if(e.isIgnored(o.relative_path))continue;let s=[o.chunk_start,o.chunk_end],d=r.get(o.relative_path);d?d.push(s):r.set(o.relative_path,[s])}let a=new Map;for(let[o,s]of r){let d=o===t.relativePath?{excludeStartLine:t.startLine,excludeEndLine:t.endLine}:{},i=nt(e,o,n,d);a.set(o,s.flatMap(([c,l])=>{let b=i.filter(p=>p>=c&&p<=l);return b.length>0?b.map(p=>[p,p]):[[c,l]]}))}return a}function It(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function fr(e,t,n,r){let a=null;return{lines:n,units:mr(e,t),endLines:r.map(o=>o.endLine).sort((o,s)=>o-s),exportedNames:()=>a??=Sr(n)}}function mr(e,t){let n=new Map,r=ze(e,t);if(!r)return n;for(let a of mt(e,t,r)?.units??[]){let o=n.get(a.name);o?o.push(a):n.set(a.name,[a])}return n}function pr(e,t){let{units:n}=t,r=e.isTypeLike?null:gr(n.get(e.leaf),e.startLine),a=!e.isTypeLike&&(r!==null||Qe(e.symbol)||Yn.has(e.kind??-1));if(!e.isTypeLike&&!a)return null;let o=Ze(et(e.documentation)),s=kr(a&&(!o||!o.includes("("))&&r?r.signature:o??r?.signature??"").slice(0,Jn),d=a&&s?ar(s):{params:null,returns:null},i=ir(e.documentation),c=br(e,r),l=e.leaf;return{symbol:e.symbol,name:l,kind:a?e.parentTypeName?"method":"function":hr(e,s),file:e.relativePath,startLine:e.startLine,endLine:e.endLine,container:c,doc:i,signature:s||null,paramsText:d.params,returnsText:d.returns,nameWords:Pe(l),fields:{name:D(l),container:D(c??""),doc:D(i,3,zn),signature:D(s),path:D(e.relativePath.replace(/\.[^./]+$/,""))},calleeLeaves:r?.calleeLeaves??[],hasBody:r!==null,exported:r?.exported===!0||vr(t.exportedNames(),e),deprecated:Er(t,e,i)}}function gr(e,t){let n=null;for(let r of e??[]){let a=Math.abs(r.startLine-t);a<=Xn&&(!n||a<Math.abs(n.startLine-t))&&(n=r)}return n}function br(e,t){return e.parentTypeName?e.parentTypeName:e.enclosingSymbol&&Ye(e.enclosingSymbol)!=="namespace"?Xe(e.enclosingSymbol)||null:t?.container.at(-1)??null}function hr(e,t){let r=(/^(?:export\s+)?(?:default\s+)?(?:declare\s+)?(?:abstract\s+)?(class|struct|interface|trait|protocol)\b/.exec(t)?.[1]??pt(e.kind??0)).toLowerCase();return r==="class"||r==="struct"?"class":r==="interface"||r==="trait"||r==="protocol"?"interface":"type"}function Er(e,t,n){if(we.test(n))return!0;let{lines:r}=e,a=r[t.startLine];if(a!==void 0&&Ft.test(a)&&we.test(a))return!0;let o=yr(e.endLines,t.startLine),s=!1;for(let d=t.startLine-1;d>o;d-=1){let i=r[d]?.trim()??"";if(i===""){if(s)continue;return!1}if(!s&&!Ft.test(i))return!1;if(we.test(i))return!0;s?s=!i.includes("/*"):s=i.endsWith("*/")&&!i.includes("/*")}return!1}function yr(e,t){let n=0,r=e.length;for(;n<r;){let a=n+r>>>1;e[a]<t?n=a+1:r=a}return n>0?e[n-1]:-1}function Sr(e){let t=new Map,n=new Set;return e.forEach((r,a)=>{if(!r.includes("export"))return;let o=tr.exec(r)?.[1];if(o){let s=t.get(o);s?s.push(a):t.set(o,[a])}for(let s of nr.exec(r)?.[1]?.match(rr)??[])n.add(s)}),{declared:t,listed:n}}function vr(e,t){if(e.listed.has(t.leaf))return!0;let n=t.startLine-or;return e.declared.get(t.leaf)?.some(r=>r>=n&&r<=t.startLine)??!1}function Cr(e,t){if(Qn.test(e.replace(/\\/g,"/")))return!0;let n=!1;for(let[r,a]of t.slice(0,Zn).entries()){let o=a.trim();if(n){if(Re.test(o))return!0;n=!o.includes("*/")}else{if(o===""||r===0&&o.startsWith("#!"))continue;if(o.startsWith("/*")){if(Re.test(o))return!0;n=!o.includes("*/",2)}else if(er.test(o)){if(Re.test(o))return!0}else return!1}}return!1}function kr(e){return e.replace(/\s+/g," ").trim()}var wr={name:1,container:.8,doc:.6,signature:.5,path:.3},Rr=200,xr=3,Pr=5,Ar=new Set(["add","apply","build","calculate","call","check","compute","config","context","convert","create","data","default","delete","do","ensure","error","fetch","find","format","get","handle","has","info","init","is","item","load","make","new","normalize","option","param","parse","process","read","remove","resolve","result","run","set","state","type","update","use","validate","value","with","wrap","write"]);function Ut(e,t,n={}){let r=Tr(e,t,n.scope),a=[];for(let o of Mr(e,r)){if(!Wt(r,e.candidates[o]))continue;let s=jt(r,e,o);(s.exactName||s.match>0)&&a.push(s)}return a.sort((o,s)=>Number(s.exactName)-Number(o.exactName)||s.match-o.match||s.nameCoverage-o.nameCoverage||o.index-s.index),{plan:r,corpusUnits:e.candidates.filter(o=>Q(r.scope,o)).length,shortlist:a.slice(0,Rr).map(o=>Kt(r,e,o)),unresolvedProbes:r.calls.filter(o=>o.status!=="matched").map(o=>({probe:o.probe,status:o.status}))}}function Ht(e,t,n){return Wt(t,e.candidates[n])?Kt(t,e,jt(t,e,n)):null}function re(e){return e?e.replace(/\\/g,"/").toLowerCase():null}function Q(e,t){return!e||t.file.toLowerCase().includes(e)}function Wt(e,t){return Q(e.scope,t)?e.kinds.size===0||e.kinds.has(t.kind)?!0:(t.kind==="function"||t.kind==="method")&&(e.kinds.has("function")||e.kinds.has("method")):!1}function Tr(e,t,n){let r=new Set,a=i=>{for(let c of W(i))for(let l of de(c))r.add(l)},o=[];for(let i of t.terms){let c=[],l=[];for(let p of i){let S=Ae(p);S.length!==0&&(c.push(p),l.push(S),a(p))}if(l.length===0)continue;let b=Math.max(...l.map(p=>_r(e,p)));o.push({labels:c,synonyms:l,weight:Math.log((e.candidates.length+1)/(b+1))+1})}let s=t.names.map(Pe).filter(i=>i.length>0);for(let i of t.names)a(i);for(let i of t.calls)a(i);for(let i of[...t.params,...t.returns])a(i);let d=t.calls.map(i=>Nr(e,i));return{groups:o,totalWeight:o.reduce((i,c)=>i+c.weight,0),names:s,vocab:r,calls:d,callTargets:new Set(d.flatMap(i=>i.targets)),params:{label:t.params.join("/"),words:t.params.flatMap(Ae)},returns:{label:t.returns.join("/"),words:t.returns.flatMap(Ae)},kinds:new Set(t.kinds),scope:re(n)}}function Ae(e){return D(e).variants}function _r(e,t){return Math.min(...t.map(n=>Math.max(0,...n.map(r=>e.nameDocFreq.get(r)??0))))}function Mr(e,t){let n=new Set,r=o=>o.flatMap(s=>e.byToken.get(s)??[]),a=o=>{let s=o.map(r).sort((d,i)=>d.length-i.length)[0];for(let d of s??[])n.add(d)};for(let o of t.groups)for(let s of o.synonyms)a(s);for(let o of t.names)a(o.filter(s=>s.length>=2&&!Z.has(s)).map(s=>[s]));return n}var Br=/[.#:/]/;function Nr(e,t){let n=t.replace(/`/g,""),r=Br.test(n),a=r?n.split(/[.#:/]+/).filter(Boolean).at(-1)??n:n,o=e.byName.get(a)??[],s=r?o.filter(i=>Fr(e.candidates[i]).has(n)):o;if(s.length>0)return new Set(s.map(c=>Or(e.candidates[c]))).size>Pr?{probe:t,leaf:a,status:"ambiguous",targets:[]}:{probe:t,leaf:a,status:"matched",targets:s};let d=!r&&e.calledLeaves.has(n);return{probe:t,leaf:a,status:d?"matched":"unmatched",targets:[]}}function Or(e){return`${e.file}\0${e.container??""}`}function Fr(e){let t=new Set,n=[e.name];if(e.container){for(let r of[".","#","::"])t.add(`${e.container}${r}${e.name}`);n.push(`${e.container}.${e.name}`)}for(let r of[e.file,e.file.replace(/\.[^./]+$/,"")])for(let a of[":","#","/"])for(let o of n)t.add(`${r}${a}${o}`);return t}function jt(e,t,n){let r=t.candidates[n],a=e.names.some(l=>Lr(l,r.nameWords)),o=0,s=0,d=0,i=[];for(let l of e.groups){let b={label:l.labels[0],field:null};for(let p of xe){let S=l.synonyms.findIndex(g=>Ir(r.fields[p],g));if(!(S<0)){b={label:l.labels[S],field:p};break}}i.push(b),b.field&&(o+=l.weight*wr[b.field]),b.field==="name"&&(s+=l.weight,d+=1)}let c=e.totalWeight;return{index:n,match:c>0?o/c:0,nameCoverage:c>0?s/c:0,nameGroups:d,exactName:a,hits:i}}function Lr(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Ir(e,t){if(t.length===1)return t[0].some(n=>e.set.has(n));for(let n=0;n+t.length<=e.words.length;n+=1)if(t.every((r,a)=>e.variants[n+a].some(o=>r.includes(o))))return!0;return!1}function Kt(e,t,n){let r=t.candidates[n.index],a=e.calls.filter(i=>i.status==="matched"),o=a.filter(i=>r.calleeLeaves.includes(i.leaf)).map(i=>i.probe),{fit:s,note:d}=Dr(e,r);return{...n,candidate:r,callContainment:r.hasBody&&a.length>0?o.length/a.length:null,callsFound:o,fit:s,fitNote:d,specializedWords:$r(e,t,r),isCallTarget:e.callTargets.has(n.index)}}function $r(e,t,n){let r=n.fields.name;return r.words.filter((a,o)=>(t.nameDocFreq.get(a)??0)<=xr&&!Ar.has(a)&&!r.variants[o].some(s=>e.vocab.has(s)))}function Dr(e,t){if(t.kind!=="function"&&t.kind!=="method")return{fit:"unknown",note:null};let n=[Ur(e,t),Hr(e,t)].filter(a=>a!==null),r=n.find(a=>a.verdict==="conflicts")??n[0];return r?{fit:r.verdict,note:r.note}:{fit:"unknown",note:null}}function Ur(e,t){if(e.returns.words.length===0)return null;let n=t.returnsText;return n?Vt(D(n),e.returns.words)?{verdict:"fits",note:`returns ${Dt(n)}`}:{verdict:"conflicts",note:`returns ${Dt(n)}, probe expects ${e.returns.label}`}:null}function Hr(e,t){return e.params.words.length===0||t.paramsText===null?null:t.paramsText===""?{verdict:"conflicts",note:`takes no parameters, probe expects ${e.params.label}`}:Vt(D(t.paramsText),e.params.words)?{verdict:"fits",note:`parameters include ${e.params.label}`}:null}function Vt(e,t){return t.some(n=>n.some(r=>e.set.has(r)))}function Dt(e){return e.length>40?`${e.slice(0,39)}\u2026`:e}import{createHash as Yr}from"crypto";var Wr=.6,jr=.35,Gt=.5,Kr=.75,Vr=.5,Me="blocked: file-internal (not exported, no references from other files)",Be="blocked: marked @deprecated",oe=["reuse","rework","compose"];function zt(e,t,n){let{plan:r}=n,a=new Map(n.shortlist.map(i=>[i.index,i])),o=i=>{if(a.has(i))return;let c=Ht(t,r,i);c&&a.set(i,c)};for(let i of r.callTargets)o(i);let s=new Map;for(let i of[...a.values()].filter(c=>qr(r,c)))for(let c of i.candidate.calleeLeaves)for(let l of Jr(e,t,i.candidate,c)){if(l===i.index)continue;let b=s.get(l);b?b.push(i):s.set(l,[i])}for(let i of s.keys())o(i);let d=[];for(let i of a.values()){let c=Gr(r,i,s.get(i.index)??[]);c&&d.push(c)}return d.sort(Xr)}function Gr(e,t,n){let r=Yt(t),a=zr(e,t,n),o=t.exactName||t.nameCoverage>=Kr,s=t.candidate.consumable&&!t.candidate.deprecated;return a.length>0&&!o&&s?Te(t,"compose",[..._e(t),...a]):Jt(t,r)?Te(t,"reuse",_e(t)):(t.exactName||t.match>=jr)&&r.length>0?Te(t,"rework",[..._e(t),...r.map(d=>d.text)]):null}function Te(e,t,n){let r=e.exactName||(e.callContainment??0)>=Vr&&e.fit==="fits";return{candidate:e.candidate,bucket:t,tier:r?"direct":"signal",score:Le(e.exactName?Math.max(e.match,.9):e.match),why:n}}function Jt(e,t){return(e.exactName||e.match>=Wr)&&t.length===0}function qr(e,t){return Jt(t,Yt(t))&&!t.isCallTarget&&!Xt(e,t)}function Xt(e,t){return e.groups.length>=2&&t.nameGroups===1&&t.specializedWords.length===0&&t.hits.some(n=>n.field===null)}function zr(e,t,n){let r=[];t.isCallTarget&&r.push(`name matches call probe ${t.candidate.name}`),Xt(e,t)&&r.push(`part of the task: name covers 1 of ${e.groups.length} concepts`);let a=n.filter(o=>qt(o)>qt(t));if(a.length>0){let o=[...new Set(a.map(s=>s.candidate.name))].slice(0,3);r.push(`referenced inside ${o.join(", ")}`)}return r}function qt(e){return e.exactName?Math.max(e.match,.9):e.match}function Jr(e,t,n,r){return(t.byName.get(r)??[]).filter(a=>{let o=t.candidates[a];return o.file!==n.file&&!o.referencedFrom.includes(n.file)?!1:$t(e,t,a,n.file).some(([s,d])=>s>=n.startLine&&d<=n.endLine)})}function Yt(e){let{candidate:t}=e,n=[];e.fit==="conflicts"&&n.push({kind:"signature",text:`blocked: ${e.fitNote??"signature conflicts with the probes"}`}),t.consumable||n.push({kind:"file-internal",text:Me}),e.specializedWords.length>0&&n.push({kind:"specialized",text:`blocked: specialized name (${e.specializedWords.join(", ")} not in the probes)`}),t.deprecated&&n.push({kind:"deprecated",text:Be});let r=[...new Set(e.hits.flatMap(o=>o.field&&o.field!=="name"?[o.field]:[]))],a=e.exactName||e.nameCoverage>=Gt||(e.callContainment??0)>=Gt;return r.length>0&&!a&&n.push({kind:"doc-only",text:`blocked: concept appears only in ${r.join("/")}, not in the name or callees`}),n}function _e(e){let t=[];e.exactName&&t.push(`name equals probe name ${e.candidate.name}`);let n=new Map;for(let a of e.hits){if(!a.field)continue;let o=n.get(a.field)??[];o.push(a.label),n.set(a.field,o)}let r=n.get("name");r&&!e.exactName&&t.push(`name matches ${r.join("+")}`);for(let[a,o]of n)a!=="name"&&t.push(`${a} mentions ${o.join("+")}`);return e.callsFound.length>0&&t.push(`calls ${e.callsFound.join(", ")}`),e.candidate.consumable&&t.push(Ne(e.candidate)),e.fit==="fits"&&e.fitNote&&t.push(`signature fits: ${e.fitNote}`),t}function Ne(e){let t=e.referencedFrom.length,n=`referenced from ${t} ${t===1?"file":"files"}`;return e.exported?t>0?`exported, ${n}`:"exported, no references from other files":t>0?`not exported, ${n}`:"file-internal"}function Oe(e,t){return{symbolId:e.symbol,name:e.kind==="method"&&e.container?`${e.container}.${e.name}`:e.name,file:e.file,line:e.startLine+1,signature:e.signature,...t}}function Fe(e,t,n){let r=new Map;return e.filter(a=>{if(n&&a.bucket!==n)return!1;let o=r.get(a.bucket)??0;return r.set(a.bucket,o+1),o<t})}function Xr(e,t){return oe.indexOf(e.bucket)-oe.indexOf(t.bucket)||+(t.tier==="direct")-+(e.tier==="direct")||t.score-e.score||e.candidate.file.localeCompare(t.candidate.file)||e.candidate.startLine-t.candidate.startLine||e.candidate.name.localeCompare(t.candidate.name)}function Le(e){return Math.round(e*1e3)/1e3}var tn=5,nn=1200,Qr=.05,Zr=.12,eo=15,to=3,no=.5,ro=200,oo=300,Qt=1e-9;function rn(e,t,n={}){let r=Y(e),a=Ut(r,t,{scope:n.scope}),o=zt(e,r,a);return{candidates:Fe(o,n.limit??tn,n.bucket).map(s=>Oe(s.candidate,{bucket:s.bucket,tier:s.tier,score:s.score,scoreBasis:"probe-match",why:s.why})),unresolvedProbes:a.unresolvedProbes,coverage:{corpusUnits:a.corpusUnits}}}var Zt=new WeakMap;function on(e,t=nn){return sn(Y(e),t).cards}function sn(e,t){let n=Zt.get(e);n||(n=new Map,Zt.set(e,n));let r=n.get(t);if(!r){let a=e.candidates.map((s,d)=>{let i=ao(s,t);return{cardHash:so(i),text:i,candidateIndex:d}}),o=new Map;for(let s of a){let d=o.get(s.cardHash);d?d.push(s.candidateIndex):o.set(s.cardHash,[s.candidateIndex])}r={cards:a,indexesByHash:o},n.set(t,r)}return r}function so(e){return Yr("sha256").update(`card-format-${1}
|
|
1
|
+
import{a as at}from"./chunk-ILMHV3KM.js";import{a as mt}from"./chunk-PCKIKOUA.js";import{G as ht,a as pt,b as gt,h as Z,i as W,j as de,k as bt}from"./chunk-AJ5HVC5Z.js";import{U as ot,V as st,g as he,k as nt}from"./chunk-PVKSZBX5.js";import{b as Ke,c as Ve,d as Ge,q as rt}from"./chunk-37K55EG3.js";import{D as Ze,E as et,I as tt}from"./chunk-G3KRXNNT.js";import{d as Xe,e as Ye,f as Qe}from"./chunk-DRENNWRG.js";import{b as X,c as Ee,d as it,e as dt,f as ct,i as lt,j as ut,k as ft}from"./chunk-75VNTSO6.js";import{a as be,l as ze,m as Je}from"./chunk-XDQ6QJF5.js";import{i as H,j as J,m as je}from"./chunk-E7T22WET.js";import{b as qe}from"./chunk-UUMAM5LM.js";import{a as We}from"./chunk-EDMG5CSO.js";import{a as ge,b as ie}from"./chunk-OZI44VCR.js";import{e as He,g as pe}from"./chunk-C3PPB2T5.js";import{join as $e}from"path";import{createHash as gn}from"crypto";import{mkdirSync as Ct,mkdtempSync as bn,renameSync as hn,rmSync as kt,statSync as En,writeFileSync as wt}from"fs";import{tmpdir as yn}from"os";import{extname as Sn,join as ee,resolve as vn,sep as Cn}from"path";var kn=1024*1024,Et=500,wn=64,Rn=/\.(?:cmd|bat)$/i;async function Rt(e,t,n={}){let r=Se(e);if(!r.ok)return $(r.reason,r.detail);let a=JSON.stringify(it),o;try{Ct(t.workDir,{recursive:!0}),o=bn(ee(yn(),"codebaseiq-probe-")),e.argv.includes("{schemaFile}")&&wt(ee(o,"schema.json"),a)}catch(s){return yt(o),$("spawn-failed",`could not prepare the agent sandbox: ${te(xn(s))}`)}try{let s=ee(o,"schema.json"),d=ee(o,"output.json"),i=e.argv.includes("{outputFile}"),c=new Map([["{schemaJson}",a],["{schemaFile}",s],["{outputFile}",d]]),l=Ve(r.path,e.argv.slice(1).map(S=>c.get(S)??S)),b;try{b=await st({command:l.binary,args:l.args,label:`agent probe command ${e.name}`,timeoutMs:e.timeoutMs,maxStdoutBytes:e.maxOutputBytes,maxStderrBytes:kn,cwd:t.workDir,env:Tn(n.env??process.env),input:ct(t.description,t.languages),signal:n.signal})}catch(S){return _n(S,n.signal)}if(b.status!==0){let S=St(b.stdout),g=b.status===null?`signal ${b.signal}`:`code ${b.status}`,m=S.kind==="error"?S.detail:b.stderr.trim()||b.stdout.trim();return $("agent-error",`${e.name} exited with ${g}: ${te(m)}`)}let p=[];if(i){let S=Mn(d,e.maxOutputBytes);if(S==="too-large")return $("output-too-large",`${e.name} wrote more than ${e.maxOutputBytes} bytes.`);S!==null&&p.push(S)}p.push(b.stdout);for(let S of p){let g=St(S);if(g.kind==="error")return $("agent-error",g.detail);if(g.kind==="none")continue;let{probes:m,diagnostics:w}=Ee(g.value);return X(m)?{ok:!0,probes:m,diagnostics:w,raw:S.trim()}:$("invalid-probes",On(w))}return $("no-json",`${e.name} printed no JSON object: ${te(b.stdout.trim())}`)}finally{yt(o)}}function yt(e){if(e!==void 0)try{kt(e,{recursive:!0,force:!0,maxRetries:3})}catch{}}function xn(e){return e instanceof Error?e.message:String(e)}function $(e,t){return{ok:!1,reason:e,detail:t}}function Pn(e){let t=ut({agent:{commands:[e]}}).filter(n=>n.level==="error");return t.length>0?t.map(n=>`${n.path}: ${n.message}`).join(" "):ft.has(e.argv[0])?"argv[0] must be the executable, not a placeholder.":[e.timeoutMs,e.maxOutputBytes].every(n=>Number.isFinite(n)&&n>0)?null:"timeoutMs and maxOutputBytes must be positive numbers."}function Se(e){let t=Pn(e);if(t)return{ok:!1,reason:"misconfigured",detail:t};let n=e.argv[0],r=`argv[0] "${n}" is a .cmd/.bat shim, which cannot be started without a shell. Point argv[0] at the real executable or at a node script (.js, .mjs, .cjs).`,a=n.includes("/")||n.includes(Cn),o;if(a){o=An(vn(n));let s=ye(o);if(s==="missing")return{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found.`};if(s==="other")return{ok:!1,reason:"misconfigured",detail:`argv[0] "${n}" is not an executable file.`}}else o=Ge(n);return o===null?Ke(n)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found on PATH.`}:process.platform==="win32"&&Rn.test(o)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!0,path:o}}function An(e,t=process.platform){return t!=="win32"||Sn(e)!==""||ye(e)!=="missing"?e:[".exe",".com"].map(n=>`${e}${n}`).find(n=>ye(n)==="file")??e}function ye(e){try{return En(e).isFile()?"file":"other"}catch{return"missing"}}function Tn(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&!/^CODEBASEIQ_/i.test(n)&&(t[n]=r);return t}function _n(e,t){if(!(e instanceof ot))throw e;switch(e.kind){case"spawn":return $("spawn-failed",e.message);case"timeout":return $("timeout",e.message);case"stdout-limit":case"stderr-limit":return $("output-too-large",e.message);case"aborted":throw t?H(t,e.message):e}}function Mn(e,t){try{return pe(e,{maxBytes:t,inputKind:"agent output file"})}catch(n){return n instanceof He&&n.reason==="too-large"?"too-large":null}}function St(e){let t=vt(e);if(!t)return{kind:"none"};if(t.type!=="result")return{kind:"object",value:t};if(t.is_error===!0){let r=typeof t.result=="string"&&t.result?t.result:t.subtype;return{kind:"error",detail:te(`The agent reported an error: ${String(r??"no message")}`)}}if(Pt(t.structured_output))return{kind:"object",value:t.structured_output};let n=typeof t.result=="string"?vt(t.result):null;return n?{kind:"object",value:n}:{kind:"none"}}function vt(e){let t=e.trim();return xt(t)??Bn(t)}function xt(e){try{let t=JSON.parse(e);return Pt(t)?t:null}catch{return null}}function Bn(e){let t=/\{\s*["}]/g,n=null,r=0;for(let a=0;a<wn;){t.lastIndex=r;let o=t.exec(e);if(!o)break;let s=Nn(e,o.index),d=s===-1?null:xt(e.slice(o.index,s+1));d?(n=d,r=s+1):(r=o.index+1,a++)}return n}function Nn(e,t){let n=0,r=!1,a=!1;for(let o=t;o<e.length;o++){let s=e[o];if(r)a?a=!1:s==="\\"?a=!0:s==='"'&&(r=!1);else if(s==='"')r=!0;else if(s==="{")n++;else if(s==="}"&&--n===0)return o}return-1}function Pt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function On(e){return e.length===0?"The agent returned no usable probes.":te(`The agent returned no usable probes: ${e.slice(0,3).map(t=>`${t.path||"root"}: ${t.message}`).join("; ")}`)}function te(e){return e.length>Et?`${e.slice(0,Et)}...`:e}var Fn=64*1024,Ln=3600*1e3;function At(e,t,n=Date.now){let r=(a,o)=>ee(e,`${gn("sha256").update(JSON.stringify([a,3,o])).digest("hex")}.json`);return{get(a,o){try{let s=JSON.parse(pe(r(a,o),{maxBytes:Fn,inputKind:"agent probe cache entry"}));if(typeof s.storedAt!="number"||n()-s.storedAt>=t*Ln)return;let{probes:d}=Ee(s.probes);return X(d)?d:void 0}catch{return}},set(a,o,s){let d=r(a,o),i=`${d}.${process.pid}.tmp`;try{Ct(e,{recursive:!0}),wt(i,JSON.stringify({storedAt:n(),probes:s})),hn(i,d)}catch{try{kt(i,{force:!0})}catch{}}}}}import{BlockList as In,isIP as $n}from"net";var Ce=64*1024*1024,Dn=2,Tt="embedding request aborted",Un="codebaseiq embedding canary: parse a retry delay from a config file",M=class extends Error{constructor(n,r,a){super(r);this.kind=n;this.status=a;this.name="EmbeddingClientError"}kind;status},ne=new In;for(let[e,t]of[["127.0.0.0",8],["10.0.0.0",8],["172.16.0.0",12],["192.168.0.0",16],["100.64.0.0",10],["169.254.0.0",16]])ne.addSubnet(e,t,"ipv4");ne.addAddress("::1","ipv6");ne.addSubnet("fe80::",10,"ipv6");ne.addSubnet("fc00::",7,"ipv6");var Hn=[".local",".lan",".home.arpa",".internal"];function _t(e){let t;try{t=new URL(e).hostname}catch{return!1}let n=(t.startsWith("[")?t.slice(1,-1):t).replace(/\.$/,""),r=$n(n);return r!==0?ne.check(n,r===4?"ipv4":"ipv6"):n==="localhost"||Hn.some(a=>n.endsWith(a))}function Nt(e,t={}){let n=t.fetchImpl??fetch,r=t.env??process.env,a=e.baseUrl.replace(/\/+$/,"");function o(){let l=e.apiKeyEnv?r[e.apiKeyEnv]:void 0;return l||void 0}function s(){let l;try{l=new URL(e.baseUrl)}catch{throw new M("invalid-endpoint",`embedding endpoint "${e.name}" has an invalid baseUrl`)}if(l.protocol!=="http:"&&l.protocol!=="https:")throw new M("invalid-endpoint",`embedding endpoint "${e.name}" must use http or https`);if(l.username!==""||l.password!=="")throw new M("invalid-endpoint",`embedding endpoint "${e.name}" must not embed credentials in baseUrl; use apiKeyEnv`);if(!e.allowRemote&&!_t(e.baseUrl))throw new M("remote-not-allowed",`embedding endpoint "${e.name}" is not on a private network; set allowRemote to use it`);if(l.protocol==="http:"&&o()!==void 0&&!_t(e.baseUrl))throw new M("insecure-token-transport",`embedding endpoint "${e.name}" would send its API key over plain http to a non-private host; use https`)}function d(l){let b={};l&&(b["content-type"]="application/json");let p=o();return p&&(b.authorization=`Bearer ${p}`),b}async function i(l,b,p,S){let g={model:e.model,input:l,encoding_format:"float",...e.dimensions!==void 0?{dimensions:e.dimensions}:{}},{status:m,text:w}=await Mt(n,`${a}/embeddings`,{method:"POST",headers:d(!0),body:JSON.stringify(g)},b,!0,S);if(m<200||m>=300)throw new M("http",`embeddings request failed with HTTP ${m}`,m);return Vn(w,l.length,p)}async function c(l,b,p){try{return await i(l,e.requestTimeoutMs,b,p)}catch(S){if(!Wn(S))throw S;return i(l,e.requestTimeoutMs,b,p)}}return{async checkHealth({signal:l}={}){try{s()}catch(p){return ve(p)}try{await Mt(n,`${a}/models`,{method:"GET",headers:d(!1)},e.healthTimeoutMs,!1,l)}catch(p){return l?.aborted?ve(p,l):{ok:!1,reason:"unreachable",detail:ke(p)}}let b=ge();try{let[p]=await i([e.documentPrefix+Un],e.warmTimeoutMs,{dims:e.dimensions},l);return{ok:!0,model:e.model,dimensions:p.length,latencyMs:Math.round(ge()-b),canary:p}}catch(p){return ve(p,l)}},async embed(l,b,{signal:p}={}){if(s(),l.length===0)return[];let S=b==="query"?e.queryPrefix:e.documentPrefix,g=Math.max(1,Math.floor(e.batchSize)),m=[];for(let x=0;x<l.length;x+=g)m.push(l.slice(x,x+g).map(A=>S+A));let w={dims:e.dimensions};return(await at(m,Dn,x=>c(x,w,p))).flat()}}}function Wn(e){return e instanceof M&&(e.kind==="timeout"||e.kind==="http"&&(e.status??0)>=500)}function ve(e,t){let n=ke(e);if(t?.aborted)return{ok:!1,reason:"aborted",detail:n};if(!(e instanceof M))return{ok:!1,reason:"bad-response",detail:n};switch(e.kind){case"remote-not-allowed":case"insecure-token-transport":case"invalid-endpoint":return{ok:!1,reason:e.kind,detail:n};case"network":return{ok:!1,reason:"unreachable",detail:n};case"timeout":return{ok:!1,reason:"model-loading",detail:n};case"http":return e.status===503?{ok:!1,reason:"model-loading",detail:n}:e.status===401||e.status===403?{ok:!1,reason:"unauthorized",detail:n}:{ok:!1,reason:"bad-response",detail:n};default:return{ok:!1,reason:"bad-response",detail:n}}}function ke(e){return e instanceof Error?e.message:String(e)}async function Mt(e,t,n,r,a,o){J(o,Tt);let s=new AbortController,d=setTimeout(()=>{s.abort(new M("timeout",`no response within ${r}ms`))},r),i=()=>s.abort(o?.reason);o?.addEventListener("abort",i,{once:!0});try{let c=await Ot(e(t,{...n,signal:s.signal,redirect:"error"}),s.signal);return{status:c.status,text:a?await Kn(c,s.signal):""}}catch(c){throw o?.aborted&&s.signal.reason===o.reason?H(o,Tt):c instanceof M?c:s.signal.aborted&&s.signal.reason instanceof M?s.signal.reason:new M("network",`could not reach the embeddings endpoint: ${jn(c)}`)}finally{clearTimeout(d),o?.removeEventListener("abort",i),s.abort()}}function jn(e){let t=e instanceof Error?e.cause:void 0;return typeof t?.code=="string"?t.code:ke(e)}async function Kn(e,t){let n=Number(e.headers.get("content-length"));if(Number.isFinite(n)&&n>Ce)throw Bt();if(!e.body)return"";let r=e.body.getReader(),a=[],o=0;for(;;){let{done:s,value:d}=await Ot(r.read(),t);if(s)break;if(o+=d.byteLength,o>Ce)throw r.cancel().catch(()=>{}),Bt();a.push(d)}return new TextDecoder().decode(Buffer.concat(a))}function Bt(){return new M("too-large",`embeddings response exceeded the ${Ce} byte limit`)}function Ot(e,t){return new Promise((n,r)=>{let a=()=>r(t.reason);if(t.aborted){a();return}t.addEventListener("abort",a,{once:!0}),e.then(n,r).finally(()=>t.removeEventListener("abort",a))})}function Vn(e,t,n){let r;try{r=JSON.parse(e)}catch{throw j("response is not valid JSON")}let a=typeof r=="object"&&r!==null?r.data:void 0;if(!Array.isArray(a)||a.length!==t)throw j(`expected ${t} embeddings, received ${Array.isArray(a)?a.length:"none"}`);let o=new Array(t).fill(void 0),s=new Set;return a.forEach((d,i)=>{let c=typeof d=="object"&&d!==null?d:{},l=c.index===void 0?i:c.index;if(typeof l!="number"||!Number.isInteger(l)||l<0||l>=t||s.has(l))throw j("embedding indexes are not a permutation of the inputs");s.add(l),o[l]=c.embedding}),o.map(d=>Gn(d,n))}function Gn(e,t){if(!Array.isArray(e)||e.length===0)throw j("embedding is not a non-empty float array");if(t.dims!==void 0&&e.length!==t.dims)throw j(`embedding has ${e.length} dimensions, expected ${t.dims}`);let n=0;for(let o of e){if(typeof o!="number"||!Number.isFinite(o))throw j("embedding contains a non-finite value");n+=o*o}let r=Math.sqrt(n);if(!Number.isFinite(r)||r===0)throw j("embedding has zero or unrepresentable magnitude");t.dims=e.length;let a=new Float32Array(e.length);for(let o=0;o<e.length;o+=1)a[o]=e[o]/r;return a}function j(e){return new M("bad-response",`embeddings response rejected: ${e}`)}var xe=["name","container","doc","signature","path"],qn=1e3,zn=150,Jn=400,Xn=3,we=/@deprecated\b|#\[deprecated\b|\bdeprecated\s*[:(]/i,Ft=/^\s*(?:\/\/|\/\*|\*|#|@)/,Yn=new Set(gt()),Qn=/(?:^|\/)(?:__generated__|generated)\/|\.(?:generated|gen|g)\.[a-z0-9]+$|\.pb2?\.[a-z0-9]+$|_pb2?\.[a-z0-9]+$/i,Re=/@generated\b|\bcode generated\b.*\bdo not edit\b/i,Zn=40,er=/^(?:\/\/|--|#(?![[!\w]))/,tr=/^\s*export\s+(?:default\s+)?(?:(?:async\s+)?function|(?:abstract\s+)?class|interface|type|enum|namespace|module|const|let|var)\s+([\p{L}\p{N}_$]+)/u,nr=/^\s*export\s*\{([^}\n]*)/,rr=/[\p{L}\p{N}_$]+/gu,or=2,sr=qe("builder-candidate-corpus",{clearGroups:["whole-project","definition-catalog"]});function Y(e){return sr.get(e,()=>dr(e))}function D(e,t=2,n=Number.POSITIVE_INFINITY){let r=[],a=[],o=new Set;for(let s of W(e)){if(r.length>=n)break;if(Z.has(s.toLocaleLowerCase()))continue;let d=de(s),i=d[0];if(!(i.length<t||Z.has(i))){r.push(i),a.push(d);for(let c of d)o.add(c)}}return{words:r,variants:a,set:o}}function Pe(e){return W(e).map(bt)}function ar(e){let t=0,n=0,r=0,a=-1;for(let i=0;i<e.length&&a<0;i+=1){let c=e[i];c==="["?t+=1:c==="]"?t=Math.max(0,t-1):c==="{"?n+=1:c==="}"?n=Math.max(0,n-1):c==="<"?r+=1:c===">"&&e[i-1]!=="="&&e[i-1]!=="-"?r=Math.max(0,r-1):c==="("&&t===0&&n===0&&r===0&&(a=i)}if(a<0)return{params:null,returns:null};let o=0,s=-1;for(let i=a;i<e.length;i+=1){let c=e[i];if(c==="(")o+=1;else if(c===")"&&(o-=1,o===0)){s=i;break}}if(s<0)return{params:e.slice(a+1).trim(),returns:null};let d=e.slice(s+1).trim().replace(/^(?:=>|->|:)\s*/,"").replace(/\s+where\b.*$/,"").replace(/\s*(?:=>|=|\{|:)\s*$/,"").trim();return{params:e.slice(a+1,s).trim(),returns:d||null}}function ir(e){if(!e)return"";let t=/^\s*```(?:\w+)?\s*\n?[\s\S]*?\n?```/.exec(e);return(t?e.slice(t[0].length):e.includes("|")?e.slice(0,e.indexOf("|")):"").replace(/\s+/g," ").trim().slice(0,qn)}function dr(e){let t=new Map,n=new Set;for(let s of tt(e)){if(s.symbol.startsWith("local ")||!s.isFunctionLike&&!s.isTypeLike||e.isIgnored(s.relativePath)||he(s.relativePath)==="test")continue;let d=`${s.symbol}\0${s.relativePath}`;if(n.has(d))continue;n.add(d);let i=t.get(s.relativePath);i?i.push(s):t.set(s.relativePath,[s])}let r=[];for(let s of[...t.keys()].sort()){let d=Je(e,s);if(Cr(s,d))continue;let i=t.get(s),c=fr(e,s,d,i);for(let l of i){let b=pr(l,c);b&&r.push({definition:l,candidate:b})}}r.sort((s,d)=>s.candidate.file.localeCompare(d.candidate.file)||s.candidate.startLine-d.candidate.startLine||s.candidate.name.localeCompare(d.candidate.name));let a=ht(e,new Set,r.map(({definition:s})=>s.symbolId)),o=r.map(({definition:s,candidate:d})=>{let i=[...a.get(s.symbolId)??[]].filter(([c,l])=>c!==d.file&&l.occurrences>0&&he(c)!=="test").map(([c])=>c).sort();return{...d,referencedFrom:i,consumable:d.exported||i.length>0}});return lr(o,r.map(({definition:s})=>cr(s)))}function cr(e){let{symbolId:t,documentId:n,startLine:r,endLine:a,symbol:o,relativePath:s}=e;return{symbolId:t,documentId:n,startLine:r,endLine:a,symbol:o,relativePath:s}}function lr(e,t){let n=new Map,r=new Map,a=new Map,o=new Set;return e.forEach((s,d)=>{let i=new Set;for(let c of xe)for(let l of s.fields[c].set)i.add(l);for(let c of i)It(n,c,d);for(let c of s.fields.name.set)r.set(c,(r.get(c)??0)+1);It(a,s.name,d);for(let c of s.calleeLeaves)o.add(c)}),{candidates:e,locations:t,byToken:n,nameDocFreq:r,byName:a,calledLeaves:o}}var Lt=new WeakMap;function $t(e,t,n,r){let a=Lt.get(t);a||(a=new Map,Lt.set(t,a));let o=a.get(n);return o||(o=ur(e,t.locations[n],t.candidates[n].name),a.set(n,o)),o.get(r)??[]}function ur(e,t,n){let r=new Map;for(let o of rt(e,[t.symbolId])){if(e.isIgnored(o.relative_path))continue;let s=[o.chunk_start,o.chunk_end],d=r.get(o.relative_path);d?d.push(s):r.set(o.relative_path,[s])}let a=new Map;for(let[o,s]of r){let d=o===t.relativePath?{excludeStartLine:t.startLine,excludeEndLine:t.endLine}:{},i=nt(e,o,n,d);a.set(o,s.flatMap(([c,l])=>{let b=i.filter(p=>p>=c&&p<=l);return b.length>0?b.map(p=>[p,p]):[[c,l]]}))}return a}function It(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function fr(e,t,n,r){let a=null;return{lines:n,units:mr(e,t),endLines:r.map(o=>o.endLine).sort((o,s)=>o-s),exportedNames:()=>a??=Sr(n)}}function mr(e,t){let n=new Map,r=ze(e,t);if(!r)return n;for(let a of mt(e,t,r)?.units??[]){let o=n.get(a.name);o?o.push(a):n.set(a.name,[a])}return n}function pr(e,t){let{units:n}=t,r=e.isTypeLike?null:gr(n.get(e.leaf),e.startLine),a=!e.isTypeLike&&(r!==null||Qe(e.symbol)||Yn.has(e.kind??-1));if(!e.isTypeLike&&!a)return null;let o=Ze(et(e.documentation)),s=kr(a&&(!o||!o.includes("("))&&r?r.signature:o??r?.signature??"").slice(0,Jn),d=a&&s?ar(s):{params:null,returns:null},i=ir(e.documentation),c=br(e,r),l=e.leaf;return{symbol:e.symbol,name:l,kind:a?e.parentTypeName?"method":"function":hr(e,s),file:e.relativePath,startLine:e.startLine,endLine:e.endLine,container:c,doc:i,signature:s||null,paramsText:d.params,returnsText:d.returns,nameWords:Pe(l),fields:{name:D(l),container:D(c??""),doc:D(i,3,zn),signature:D(s),path:D(e.relativePath.replace(/\.[^./]+$/,""))},calleeLeaves:r?.calleeLeaves??[],hasBody:r!==null,exported:r?.exported===!0||vr(t.exportedNames(),e),deprecated:Er(t,e,i)}}function gr(e,t){let n=null;for(let r of e??[]){let a=Math.abs(r.startLine-t);a<=Xn&&(!n||a<Math.abs(n.startLine-t))&&(n=r)}return n}function br(e,t){return e.parentTypeName?e.parentTypeName:e.enclosingSymbol&&Ye(e.enclosingSymbol)!=="namespace"?Xe(e.enclosingSymbol)||null:t?.container.at(-1)??null}function hr(e,t){let r=(/^(?:export\s+)?(?:default\s+)?(?:declare\s+)?(?:abstract\s+)?(class|struct|interface|trait|protocol)\b/.exec(t)?.[1]??pt(e.kind??0)).toLowerCase();return r==="class"||r==="struct"?"class":r==="interface"||r==="trait"||r==="protocol"?"interface":"type"}function Er(e,t,n){if(we.test(n))return!0;let{lines:r}=e,a=r[t.startLine];if(a!==void 0&&Ft.test(a)&&we.test(a))return!0;let o=yr(e.endLines,t.startLine),s=!1;for(let d=t.startLine-1;d>o;d-=1){let i=r[d]?.trim()??"";if(i===""){if(s)continue;return!1}if(!s&&!Ft.test(i))return!1;if(we.test(i))return!0;s?s=!i.includes("/*"):s=i.endsWith("*/")&&!i.includes("/*")}return!1}function yr(e,t){let n=0,r=e.length;for(;n<r;){let a=n+r>>>1;e[a]<t?n=a+1:r=a}return n>0?e[n-1]:-1}function Sr(e){let t=new Map,n=new Set;return e.forEach((r,a)=>{if(!r.includes("export"))return;let o=tr.exec(r)?.[1];if(o){let s=t.get(o);s?s.push(a):t.set(o,[a])}for(let s of nr.exec(r)?.[1]?.match(rr)??[])n.add(s)}),{declared:t,listed:n}}function vr(e,t){if(e.listed.has(t.leaf))return!0;let n=t.startLine-or;return e.declared.get(t.leaf)?.some(r=>r>=n&&r<=t.startLine)??!1}function Cr(e,t){if(Qn.test(e.replace(/\\/g,"/")))return!0;let n=!1;for(let[r,a]of t.slice(0,Zn).entries()){let o=a.trim();if(n){if(Re.test(o))return!0;n=!o.includes("*/")}else{if(o===""||r===0&&o.startsWith("#!"))continue;if(o.startsWith("/*")){if(Re.test(o))return!0;n=!o.includes("*/",2)}else if(er.test(o)){if(Re.test(o))return!0}else return!1}}return!1}function kr(e){return e.replace(/\s+/g," ").trim()}var wr={name:1,container:.8,doc:.6,signature:.5,path:.3},Rr=200,xr=3,Pr=5,Ar=new Set(["add","apply","build","calculate","call","check","compute","config","context","convert","create","data","default","delete","do","ensure","error","fetch","find","format","get","handle","has","info","init","is","item","load","make","new","normalize","option","param","parse","process","read","remove","resolve","result","run","set","state","type","update","use","validate","value","with","wrap","write"]);function Ut(e,t,n={}){let r=Tr(e,t,n.scope),a=[];for(let o of Mr(e,r)){if(!Wt(r,e.candidates[o]))continue;let s=jt(r,e,o);(s.exactName||s.match>0)&&a.push(s)}return a.sort((o,s)=>Number(s.exactName)-Number(o.exactName)||s.match-o.match||s.nameCoverage-o.nameCoverage||o.index-s.index),{plan:r,corpusUnits:e.candidates.filter(o=>Q(r.scope,o)).length,shortlist:a.slice(0,Rr).map(o=>Kt(r,e,o)),unresolvedProbes:r.calls.filter(o=>o.status!=="matched").map(o=>({probe:o.probe,status:o.status}))}}function Ht(e,t,n){return Wt(t,e.candidates[n])?Kt(t,e,jt(t,e,n)):null}function re(e){return e?e.replace(/\\/g,"/").toLowerCase():null}function Q(e,t){return!e||t.file.toLowerCase().includes(e)}function Wt(e,t){return Q(e.scope,t)?e.kinds.size===0||e.kinds.has(t.kind)?!0:(t.kind==="function"||t.kind==="method")&&(e.kinds.has("function")||e.kinds.has("method")):!1}function Tr(e,t,n){let r=new Set,a=i=>{for(let c of W(i))for(let l of de(c))r.add(l)},o=[];for(let i of t.terms){let c=[],l=[];for(let p of i){let S=Ae(p);S.length!==0&&(c.push(p),l.push(S),a(p))}if(l.length===0)continue;let b=Math.max(...l.map(p=>_r(e,p)));o.push({labels:c,synonyms:l,weight:Math.log((e.candidates.length+1)/(b+1))+1})}let s=t.names.map(Pe).filter(i=>i.length>0);for(let i of t.names)a(i);for(let i of t.calls)a(i);for(let i of[...t.params,...t.returns])a(i);let d=t.calls.map(i=>Nr(e,i));return{groups:o,totalWeight:o.reduce((i,c)=>i+c.weight,0),names:s,vocab:r,calls:d,callTargets:new Set(d.flatMap(i=>i.targets)),params:{label:t.params.join("/"),words:t.params.flatMap(Ae)},returns:{label:t.returns.join("/"),words:t.returns.flatMap(Ae)},kinds:new Set(t.kinds),scope:re(n)}}function Ae(e){return D(e).variants}function _r(e,t){return Math.min(...t.map(n=>Math.max(0,...n.map(r=>e.nameDocFreq.get(r)??0))))}function Mr(e,t){let n=new Set,r=o=>o.flatMap(s=>e.byToken.get(s)??[]),a=o=>{let s=o.map(r).sort((d,i)=>d.length-i.length)[0];for(let d of s??[])n.add(d)};for(let o of t.groups)for(let s of o.synonyms)a(s);for(let o of t.names)a(o.filter(s=>s.length>=2&&!Z.has(s)).map(s=>[s]));return n}var Br=/[.#:/]/;function Nr(e,t){let n=t.replace(/`/g,""),r=Br.test(n),a=r?n.split(/[.#:/]+/).filter(Boolean).at(-1)??n:n,o=e.byName.get(a)??[],s=r?o.filter(i=>Fr(e.candidates[i]).has(n)):o;if(s.length>0)return new Set(s.map(c=>Or(e.candidates[c]))).size>Pr?{probe:t,leaf:a,status:"ambiguous",targets:[]}:{probe:t,leaf:a,status:"matched",targets:s};let d=!r&&e.calledLeaves.has(n);return{probe:t,leaf:a,status:d?"matched":"unmatched",targets:[]}}function Or(e){return`${e.file}\0${e.container??""}`}function Fr(e){let t=new Set,n=[e.name];if(e.container){for(let r of[".","#","::"])t.add(`${e.container}${r}${e.name}`);n.push(`${e.container}.${e.name}`)}for(let r of[e.file,e.file.replace(/\.[^./]+$/,"")])for(let a of[":","#","/"])for(let o of n)t.add(`${r}${a}${o}`);return t}function jt(e,t,n){let r=t.candidates[n],a=e.names.some(l=>Lr(l,r.nameWords)),o=0,s=0,d=0,i=[];for(let l of e.groups){let b={label:l.labels[0],field:null};for(let p of xe){let S=l.synonyms.findIndex(g=>Ir(r.fields[p],g));if(!(S<0)){b={label:l.labels[S],field:p};break}}i.push(b),b.field&&(o+=l.weight*wr[b.field]),b.field==="name"&&(s+=l.weight,d+=1)}let c=e.totalWeight;return{index:n,match:c>0?o/c:0,nameCoverage:c>0?s/c:0,nameGroups:d,exactName:a,hits:i}}function Lr(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Ir(e,t){if(t.length===1)return t[0].some(n=>e.set.has(n));for(let n=0;n+t.length<=e.words.length;n+=1)if(t.every((r,a)=>e.variants[n+a].some(o=>r.includes(o))))return!0;return!1}function Kt(e,t,n){let r=t.candidates[n.index],a=e.calls.filter(i=>i.status==="matched"),o=a.filter(i=>r.calleeLeaves.includes(i.leaf)).map(i=>i.probe),{fit:s,note:d}=Dr(e,r);return{...n,candidate:r,callContainment:r.hasBody&&a.length>0?o.length/a.length:null,callsFound:o,fit:s,fitNote:d,specializedWords:$r(e,t,r),isCallTarget:e.callTargets.has(n.index)}}function $r(e,t,n){let r=n.fields.name;return r.words.filter((a,o)=>(t.nameDocFreq.get(a)??0)<=xr&&!Ar.has(a)&&!r.variants[o].some(s=>e.vocab.has(s)))}function Dr(e,t){if(t.kind!=="function"&&t.kind!=="method")return{fit:"unknown",note:null};let n=[Ur(e,t),Hr(e,t)].filter(a=>a!==null),r=n.find(a=>a.verdict==="conflicts")??n[0];return r?{fit:r.verdict,note:r.note}:{fit:"unknown",note:null}}function Ur(e,t){if(e.returns.words.length===0)return null;let n=t.returnsText;return n?Vt(D(n),e.returns.words)?{verdict:"fits",note:`returns ${Dt(n)}`}:{verdict:"conflicts",note:`returns ${Dt(n)}, probe expects ${e.returns.label}`}:null}function Hr(e,t){return e.params.words.length===0||t.paramsText===null?null:t.paramsText===""?{verdict:"conflicts",note:`takes no parameters, probe expects ${e.params.label}`}:Vt(D(t.paramsText),e.params.words)?{verdict:"fits",note:`parameters include ${e.params.label}`}:null}function Vt(e,t){return t.some(n=>n.some(r=>e.set.has(r)))}function Dt(e){return e.length>40?`${e.slice(0,39)}\u2026`:e}import{createHash as Yr}from"crypto";var Wr=.6,jr=.35,Gt=.5,Kr=.75,Vr=.5,Me="blocked: file-internal (not exported, no references from other files)",Be="blocked: marked @deprecated",oe=["reuse","rework","compose"];function zt(e,t,n){let{plan:r}=n,a=new Map(n.shortlist.map(i=>[i.index,i])),o=i=>{if(a.has(i))return;let c=Ht(t,r,i);c&&a.set(i,c)};for(let i of r.callTargets)o(i);let s=new Map;for(let i of[...a.values()].filter(c=>qr(r,c)))for(let c of i.candidate.calleeLeaves)for(let l of Jr(e,t,i.candidate,c)){if(l===i.index)continue;let b=s.get(l);b?b.push(i):s.set(l,[i])}for(let i of s.keys())o(i);let d=[];for(let i of a.values()){let c=Gr(r,i,s.get(i.index)??[]);c&&d.push(c)}return d.sort(Xr)}function Gr(e,t,n){let r=Yt(t),a=zr(e,t,n),o=t.exactName||t.nameCoverage>=Kr,s=t.candidate.consumable&&!t.candidate.deprecated;return a.length>0&&!o&&s?Te(t,"compose",[..._e(t),...a]):Jt(t,r)?Te(t,"reuse",_e(t)):(t.exactName||t.match>=jr)&&r.length>0?Te(t,"rework",[..._e(t),...r.map(d=>d.text)]):null}function Te(e,t,n){let r=e.exactName||(e.callContainment??0)>=Vr&&e.fit==="fits";return{candidate:e.candidate,bucket:t,tier:r?"direct":"signal",score:Le(e.exactName?Math.max(e.match,.9):e.match),why:n}}function Jt(e,t){return(e.exactName||e.match>=Wr)&&t.length===0}function qr(e,t){return Jt(t,Yt(t))&&!t.isCallTarget&&!Xt(e,t)}function Xt(e,t){return e.groups.length>=2&&t.nameGroups===1&&t.specializedWords.length===0&&t.hits.some(n=>n.field===null)}function zr(e,t,n){let r=[];t.isCallTarget&&r.push(`name matches call probe ${t.candidate.name}`),Xt(e,t)&&r.push(`part of the task: name covers 1 of ${e.groups.length} concepts`);let a=n.filter(o=>qt(o)>qt(t));if(a.length>0){let o=[...new Set(a.map(s=>s.candidate.name))].slice(0,3);r.push(`referenced inside ${o.join(", ")}`)}return r}function qt(e){return e.exactName?Math.max(e.match,.9):e.match}function Jr(e,t,n,r){return(t.byName.get(r)??[]).filter(a=>{let o=t.candidates[a];return o.file!==n.file&&!o.referencedFrom.includes(n.file)?!1:$t(e,t,a,n.file).some(([s,d])=>s>=n.startLine&&d<=n.endLine)})}function Yt(e){let{candidate:t}=e,n=[];e.fit==="conflicts"&&n.push({kind:"signature",text:`blocked: ${e.fitNote??"signature conflicts with the probes"}`}),t.consumable||n.push({kind:"file-internal",text:Me}),e.specializedWords.length>0&&n.push({kind:"specialized",text:`blocked: specialized name (${e.specializedWords.join(", ")} not in the probes)`}),t.deprecated&&n.push({kind:"deprecated",text:Be});let r=[...new Set(e.hits.flatMap(o=>o.field&&o.field!=="name"?[o.field]:[]))],a=e.exactName||e.nameCoverage>=Gt||(e.callContainment??0)>=Gt;return r.length>0&&!a&&n.push({kind:"doc-only",text:`blocked: concept appears only in ${r.join("/")}, not in the name or callees`}),n}function _e(e){let t=[];e.exactName&&t.push(`name equals probe name ${e.candidate.name}`);let n=new Map;for(let a of e.hits){if(!a.field)continue;let o=n.get(a.field)??[];o.push(a.label),n.set(a.field,o)}let r=n.get("name");r&&!e.exactName&&t.push(`name matches ${r.join("+")}`);for(let[a,o]of n)a!=="name"&&t.push(`${a} mentions ${o.join("+")}`);return e.callsFound.length>0&&t.push(`calls ${e.callsFound.join(", ")}`),e.candidate.consumable&&t.push(Ne(e.candidate)),e.fit==="fits"&&e.fitNote&&t.push(`signature fits: ${e.fitNote}`),t}function Ne(e){let t=e.referencedFrom.length,n=`referenced from ${t} ${t===1?"file":"files"}`;return e.exported?t>0?`exported, ${n}`:"exported, no references from other files":t>0?`not exported, ${n}`:"file-internal"}function Oe(e,t){return{symbolId:e.symbol,name:e.kind==="method"&&e.container?`${e.container}.${e.name}`:e.name,file:e.file,line:e.startLine+1,signature:e.signature,...t}}function Fe(e,t,n){let r=new Map;return e.filter(a=>{if(n&&a.bucket!==n)return!1;let o=r.get(a.bucket)??0;return r.set(a.bucket,o+1),o<t})}function Xr(e,t){return oe.indexOf(e.bucket)-oe.indexOf(t.bucket)||+(t.tier==="direct")-+(e.tier==="direct")||t.score-e.score||e.candidate.file.localeCompare(t.candidate.file)||e.candidate.startLine-t.candidate.startLine||e.candidate.name.localeCompare(t.candidate.name)}function Le(e){return Math.round(e*1e3)/1e3}var tn=5,nn=1200,Qr=.05,Zr=.12,eo=15,to=3,no=.5,ro=200,oo=300,Qt=1e-9;function rn(e,t,n={}){let r=Y(e),a=Ut(r,t,{scope:n.scope}),o=zt(e,r,a);return{candidates:Fe(o,n.limit??tn,n.bucket).map(s=>Oe(s.candidate,{bucket:s.bucket,tier:s.tier,score:s.score,scoreBasis:"probe-match",why:s.why})),unresolvedProbes:a.unresolvedProbes,coverage:{corpusUnits:a.corpusUnits}}}var Zt=new WeakMap;function on(e,t=nn){return sn(Y(e),t).cards}function sn(e,t){let n=Zt.get(e);n||(n=new Map,Zt.set(e,n));let r=n.get(t);if(!r){let a=e.candidates.map((s,d)=>{let i=ao(s,t);return{cardHash:so(i),text:i,candidateIndex:d}}),o=new Map;for(let s of a){let d=o.get(s.cardHash);d?d.push(s.candidateIndex):o.set(s.cardHash,[s.candidateIndex])}r={cards:a,indexesByHash:o},n.set(t,r)}return r}function so(e){return Yr("sha256").update(`card-format-${1}
|
|
2
2
|
${e}`).digest("hex")}function ao(e,t){let n=o=>W(o).map(s=>s.toLocaleLowerCase()).join(" "),r=`name: ${n(e.name)} | kind: ${e.kind} | in: ${e.container??""}`,a=[`signature: ${(e.signature??"").slice(0,ro)}`,`doc: ${e.doc.slice(0,oo)}`,`path: ${n(e.file.replace(/\.[^./]+$/,""))}`].join(" | ");return`${r}
|
|
3
3
|
${a}`.slice(0,t)}function an(e,t,n={}){let{topBandMargin:r=Qr,maxCardChars:a=nn}=n,o=Y(e),{indexesByHash:s}=sn(o,a),d=re(n.scope),i=new Map;for(let b of t)for(let p of s.get(b.cardHash)??[])Q(d,o.candidates[p])&&i.set(p,Math.max(i.get(p)??Number.NEGATIVE_INFINITY,b.score));if(i.size===0)return[];let c=Math.max(...i.values()),l=[];for(let[b,p]of i){let S=o.candidates[b],g=c-p,m=io(S),w=S.endLine-S.startLine+1<=eo&&S.referencedFrom.length>=to,P=g<=Zr+Qt,x=null;if(g<=r+Qt?x=m.length===0?"reuse":"rework":w&&m.length===0&&(P||p>=no)?x="compose":P&&m.length>0&&(x="rework"),!x)continue;let A=[`cosine ${p.toFixed(3)} (best ${c.toFixed(3)})`];S.consumable&&A.push(Ne(S)),x==="compose"&&A.push(`small utility: ${S.endLine-S.startLine+1} lines, referenced from ${S.referencedFrom.length} files`),A.push(...m),l.push(Oe(S,{bucket:x,tier:"signal",score:Le(p),scoreBasis:"cosine",why:A}))}return l.sort((b,p)=>oe.indexOf(b.bucket)-oe.indexOf(p.bucket)||p.score-b.score||b.file.localeCompare(p.file)||b.line-p.line||b.name.localeCompare(p.name)),Fe(l,n.limit??tn,n.bucket)}function io(e){let t=[];return e.consumable||t.push(Me),e.deprecated&&t.push(Be),t}import{mkdirSync as co}from"fs";import{dirname as lo,join as uo}from"path";import fo from"better-sqlite3";var mo="embeddings",po=1,go=720*60*60*1e3,bo=.995,ho=3600*1e3;function Eo(e){return be(JSON.stringify({model:e.model,dims:e.dims,documentPrefix:e.documentPrefix,cardFormatVersion:e.cardFormatVersion})).slice(0,16)}function ln(e,t){return be(`${e}\0${t}`).slice(0,16)}function ce(e,t){process.env.CODEBASEIQ_DEBUG&&console.error(`embedding-store: ${e}: ${t instanceof Error?t.message:String(t)}`)}function Ie(e,t,n={}){let r=n.now??ie,a=n.storeKey??Eo(t),o=uo(e,mo,`${a}.db`),s=t.dims,d=yo(o,t),i=null;function c(g,m){ce(`disabled (${g})`,m),i=null;try{d?.db.close()}catch(w){ce("close failed while disabling",w)}d=null}function l(g){return g.readDataVersion.get()}function b(g){return i&&i.dataVersion===l(g)||(i=p(g)),i}function p(g){return g.db.transaction(()=>{let m=l(g),w=g.countRows.get().count,P=new Float32Array(w*s),x=[],A=new Map;for(let N of g.readAll.iterate())new Uint8Array(P.buffer,x.length*s*4,s*4).set(N.vector),A.set(N.card_hash,x.length),x.push(N.card_hash);return{dataVersion:m,hashes:x,index:A,data:P}})()}function S(g,m){let w=0;for(let P of m)g.readUsed.get(P)!==void 0&&(w+=1);return w}return{get available(){return d!==null},key:a,path:o,verifyCanary(g){if(!d)return"first";try{let m=d.readCanary.get();return m?Co(vo(m.value),g)>=bo?"match":"drift":(d.writeCanary.run(cn(g)),"first")}catch(m){return c("canary",m),"first"}},missing(g){let m=[...new Set(g)];if(!d)return m;try{let w=[],P=[],x=r()-ho;for(let A of m){let N=d.readUsed.get(A);N?N.last_used_at<x&&P.push(A):w.push(A)}if(P.length>0){let A=d,N=r();A.db.transaction(()=>{for(let O of P)A.touch.run(N,O)})()}return w}catch(w){return c("missing",w),m}},put(g){for(let m of g)if(m.vector.length!==s)throw new RangeError(`vector for ${m.cardHash} has ${m.vector.length} dimensions, store holds ${s}`);if(!(!d||g.length===0))try{let m=d,w=r();m.db.transaction(()=>{for(let P of g)m.upsert.run(P.cardHash,w,w,cn(P.vector))})(),i=null}catch(m){c("put",m)}},topK(g,m,w){if(g.length!==s)throw new RangeError(`query vector has ${g.length} dimensions, store holds ${s}`);if(!d||m<=0)return[];let P;try{P=b(d)}catch(B){return c("topK",B),[]}let{hashes:x,index:A,data:N}=P,O=[],ae=B=>{let I=x[B],K=0,fe=B*s;for(let G=0;G<s;G+=1)K+=N[fe+G]*g[G];if(O.length===m&&!dn(K,I,O[m-1]))return;let V=O.length;for(;V>0&&dn(K,I,O[V-1]);)V-=1;O.splice(V,0,{cardHash:I,score:K}),O.length>m&&O.pop()};if(w)for(let B of w){let I=A.get(B);I!==void 0&&ae(I)}else for(let B=0;B<x.length;B+=1)ae(B);return O},coverage(g){let m=new Set(g);if(m.size===0)return 1;if(!d)return 0;try{return S(d,m)/m.size}catch(w){return c("coverage",w),0}},prune(g={}){if(!d)return 0;try{let m=d,w=g.unusedForMs??go,P=m.db.transaction(()=>{let x=m.deleteUnusedBefore.run(r()-w).changes;if(g.maxRows!==void 0){let A=m.countRows.get().count;A>g.maxRows&&(x+=m.deleteOldest.run(A-g.maxRows).changes)}return x})();return P>0&&(i=null),P}catch(m){return c("prune",m),0}},async withRefreshLock(g){if(!d)return{acquired:!1};let m=await je(`${o}.refresh.lock`);if(!m)return{acquired:!1};try{return{acquired:!0,value:await g()}}finally{m.release()}},close(){i=null;try{d?.db.close()}catch(g){ce("close failed",g)}d=null}}}function dn(e,t,n){return e>n.score||e===n.score&&t<n.cardHash}function yo(e,t){let n;try{return co(lo(e),{recursive:!0}),n=new fo(We(e)),n.pragma("busy_timeout = 5000"),n.pragma("journal_mode = WAL"),n.pragma("synchronous = NORMAL"),n.exec(`
|
|
4
4
|
CREATE TABLE IF NOT EXISTS meta (key TEXT PRIMARY KEY, value) WITHOUT ROWID;
|
|
@@ -11,4 +11,4 @@ ${a}`.slice(0,t)}function an(e,t,n={}){let{topBandMargin:r=Qr,maxCardChars:a=nn}
|
|
|
11
11
|
`),So(n,t),{db:n,readDataVersion:n.prepare("PRAGMA data_version").pluck(),readCanary:n.prepare("SELECT value FROM meta WHERE key = 'canary'"),writeCanary:n.prepare("INSERT OR REPLACE INTO meta (key, value) VALUES ('canary', ?)"),readUsed:n.prepare("SELECT last_used_at FROM vectors WHERE card_hash = ?"),touch:n.prepare("UPDATE vectors SET last_used_at = ? WHERE card_hash = ?"),upsert:n.prepare("INSERT OR REPLACE INTO vectors (card_hash, embedded_at, last_used_at, vector) VALUES (?, ?, ?, ?)"),countRows:n.prepare("SELECT COUNT(*) AS count FROM vectors"),readAll:n.prepare("SELECT card_hash, vector FROM vectors"),deleteUnusedBefore:n.prepare("DELETE FROM vectors WHERE last_used_at < ?"),deleteOldest:n.prepare(`DELETE FROM vectors WHERE card_hash IN (
|
|
12
12
|
SELECT card_hash FROM vectors ORDER BY last_used_at ASC, embedded_at ASC, card_hash ASC LIMIT ?
|
|
13
13
|
)`)}}catch(r){ce("disabled (open failed)",r);try{n?.close()}catch{}return null}}function So(e,t){let n={schema_version:String(po),model:t.model,dims:String(t.dims),document_prefix:t.documentPrefix,card_format_version:String(t.cardFormatVersion)};e.transaction(()=>{let r=new Map(e.prepare("SELECT key, value FROM meta").all().map(s=>[s.key,s.value]));if(Object.entries(n).every(([s,d])=>r.get(s)===d))return;e.exec("DELETE FROM vectors; DELETE FROM meta;");let o=e.prepare("INSERT INTO meta (key, value) VALUES (?, ?)");for(let[s,d]of Object.entries(n))o.run(s,d)}).immediate()}function cn(e){return Buffer.from(e.buffer,e.byteOffset,e.byteLength)}function vo(e){return new Float32Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength))}function Co(e,t){if(e.length!==t.length)return 0;let n=0,r=0,a=0;for(let o=0;o<e.length;o+=1)n+=e[o]*t[o],r+=e[o]*e[o],a+=t[o]*t[o];return r===0||a===0?0:n/Math.sqrt(r*a)}var ko="builder";function $s(e){return $e(e,ko)}var wo=.8,un="inside an agent session: pass probes (--term/--name/--calls) instead of a description",Ro=3e4,xo=6e4,Po=2,Ao=50,To=12,De=2e3,_o=5,se="builder query aborted",Mo=2147483647;function Bo(e){return e>=De?`vector search returns at most ${De} hits; lower-ranked units are not listed`:void 0}function Ds(e){let{settings:t,storeRoot:n,languages:r}=e,a=e.env??process.env,o=e.now??ie,s=new Map,d;function i(u){let f=e.openDb();try{return u(f)}finally{e.closeDb?.(f)}}function c(){return Object.entries(a).some(([u,f])=>f!==void 0&&(u==="CLAUDECODE"||u.startsWith("CODEX_")))}function l(u){let f=s.get(u.name);return f||(f={client:Nt(u,{fetchImpl:e.fetchImpl,env:a})},s.set(u.name,f)),f}function b(u,f,h){u.health=void 0,u.failure={state:f,detail:h,openUntil:o()+xo}}async function p(u,f,h=!1){let E=l(u),v=o();if(!h&&E.failure&&v<E.failure.openUntil){let k=Math.ceil((E.failure.openUntil-v)/1e3);return{ok:!1,state:E.failure.state,detail:`${E.failure.detail} (not retried for another ${k}s)`}}let C=!h&&E.health!==void 0&&v-E.health.checkedAt<Ro,y;if(C)y=E.health.value;else{let k=await E.client.checkHealth({signal:f});if(!k.ok){J(f,se);let T=No(k.reason);return b(E,T,k.detail),{ok:!1,state:T,detail:k.detail}}y=k,E.health={value:k,checkedAt:o()},E.failure=void 0}let R=S(E,u,y,!C);return R.ok?{ok:!0,endpoint:u,store:R.held.store,client:E.client,...R.held.forked?{note:`model weights differ from the shared ${u.model} store; using a store forked for ${u.name}`}:{}}:R}function S(u,f,h,E){let v=u.held;if(v&&v.dims===h.dimensions&&(!E||v.store.verifyCanary(h.canary)!=="drift"))return{ok:!0,held:v};v?.store.close(),u.held=void 0;let C={model:f.model,dims:h.dimensions,documentPrefix:f.documentPrefix,cardFormatVersion:1},y=Ie(n,C);if(!y.available)return y.close(),{ok:!1,state:"degraded",detail:`the vector store ${y.path} could not be opened`};if(y.verifyCanary(h.canary)!=="drift")return u.held={store:y,dims:h.dimensions,forked:!1},{ok:!0,held:u.held};let R=y.key;y.close();let k=Ie(n,C,{storeKey:ln(R,f.name)});return!k.available||k.verifyCanary(h.canary)==="drift"?(k.close(),{ok:!1,state:"degraded",detail:`model weights for ${f.model} keep changing between runs`}):(u.held={store:k,dims:h.dimensions,forked:!0},{ok:!0,held:u.held})}function g(u){return i(f=>{let h=on(f,t.maxCardChars),E=new Map;for(let y of h)E.has(y.cardHash)||E.set(y.cardHash,y.text);let v=re(u),C=null;if(v){let{candidates:y}=Y(f);C=new Set(h.filter(R=>Q(v,y[R.candidateIndex])).map(R=>R.cardHash))}return{hashes:h.map(y=>y.cardHash),textByHash:E,scopedHashes:C}})}function m(u,f){let h=new Set(u.missing(f.hashes)),E=f.hashes.filter(v=>!h.has(v)).length;return{embeddedUnits:E,fraction:f.hashes.length===0?1:E/f.hashes.length}}async function w(u,f,h,E){let{endpoint:v,store:C,client:y}=u,R=C.missing(f.hashes);if(R.length===0)return{embedded:0,budgetExhausted:!1};let k=AbortSignal.timeout(Math.min(E,Mo)),T=h?AbortSignal.any([h,k]):k,F=Math.max(1,Math.floor(v.batchSize))*Po,_={embedded:0,budgetExhausted:!1};return(await C.withRefreshLock(async()=>{for(let q=0;q<R.length;q+=F){let z=R.slice(q,q+F);try{let U=await y.embed(z.map(L=>f.textByHash.get(L)),"document",{signal:T});C.put(z.map((L,me)=>({cardHash:L,vector:U[me]}))),_.embedded+=z.length}catch(U){if(h?.aborted)throw H(h,se);if(k.aborted){_.budgetExhausted=!0;return}b(l(v),"degraded",ue(U)),_.note=`embedding stopped: ${ue(U)}`;return}}})).acquired?_.embedded>0&&C.prune():_.note="another process is already embedding this repository",_}async function P(u,f,h,E){let v=await p(u,E);if(!v.ok)return{kind:"failed",reason:`${v.state}: ${v.detail}`};let C=g(f.scope),y=await w(v,C,E,t.indexBudgetMs),{embeddedUnits:R,fraction:k}=m(v.store,C),T;try{let[L]=await v.client.embed([h],"query",{signal:E}),me=Math.min(De,Math.max(Ao,(f.limit??_o)*To));T=v.store.topK(L,me,C.scopedHashes??new Set(C.hashes))}catch(L){if(E?.aborted)throw H(E,se);return b(l(u),"degraded",ue(L)),{kind:"failed",reason:`degraded: ${ue(L)}`}}let F=i(L=>an(L,T,{topBandMargin:t.topBandMargin,maxCardChars:t.maxCardChars,limit:f.limit,scope:f.scope,bucket:f.bucket})),_=C.hashes.length,Ue=R<_?`partial embeddings: ${R} of ${_} units (${le(k)})`:void 0,q=y.budgetExhausted?`index budget of ${t.indexBudgetMs} ms used up`:void 0,z=[v.note,Ue,q,y.note,Bo(T.length)].filter(L=>L!==void 0),U={provider:`embeddings:${u.name}`,probes:null,unresolvedProbes:[],candidates:F,coverage:{corpusUnits:_,embeddedUnits:R,...z.length>0?{note:z.join("; ")}:{}}};return k>=t.minCoverage?{kind:"answer",answer:U}:{kind:"degraded",answer:U,fraction:k,reason:`degraded: embedded ${R} of ${_} units (${le(k)}), below the ${le(t.minCoverage)} minimum`}}function x(){return d??=At($e(n,"agent-probes"),t.cacheTtlHours,o),d}async function A(u,f,h,E){if(c())return{kind:"failed",reason:un};let v=x(),C=v.get(u.argv,h);if(!C){let y=await Rt(u,{description:h,languages:r,workDir:$e(n,"agent-sandbox")},{signal:E,env:a});if(!y.ok)return{kind:"failed",reason:`${y.reason}: ${y.detail}`};C=y.probes,v.set(u.argv,h,C)}return{kind:"answer",answer:{provider:`agent:${u.name}`,...N(f,C)}}}function N(u,f){let h=i(E=>rn(E,f,{limit:u.limit,scope:u.scope,bucket:u.bucket}));return{probes:f,unresolvedProbes:h.unresolvedProbes,candidates:h.candidates,coverage:h.coverage}}function O(u){return u==="agent"?t.agents.map(f=>({kind:"agent",name:f.name})):u==="embeddings"?t.endpoints.map(f=>({kind:"embeddings",name:f.name})):t.chain}async function ae(u,f,h,E){if(u.kind==="agent"){let C=t.agents.find(y=>y.name===u.name);return C?A(C,f,h,E):{kind:"failed",reason:"not configured"}}let v=t.endpoints.find(C=>C.name===u.name);return v?P(v,f,h,E):{kind:"failed",reason:"not configured"}}function B(u,f){return{...u,fallbacksTried:f,evidence:"heuristic"}}function I(u,f){return B({provider:"none",probes:null,unresolvedProbes:[],candidates:[],coverage:{corpusUnits:0,note:f}},u)}async function K(u,f={}){let{signal:h}=f;J(h,se);let E=u.mode??t.mode;if(u.probes&&X(u.probes)&&E!=="embeddings")return B({provider:"agent:caller",...N(u,u.probes)},[]);let v=dt(u.description?.trim()??"").trim();if(v===""){let k=E==="embeddings"&&u.probes&&X(u.probes)?"embeddings mode ranks a description; probes are not embedded":"no description or probes were given";return I([{provider:"request",reason:k}],"nothing to look up")}let C=O(E);if(C.length===0)return I([{provider:E,reason:"no providers are configured for this mode"}],"no provider ran");let y=[],R=[];for(let k of C){J(h,se);let T=await ae(k,u,v,h);if(T.kind==="answer")return B(T.answer,y);let F={provider:lt(k),reason:T.reason};y.push(F),T.kind==="degraded"&&R.push({entry:F,answer:T.answer,fraction:T.fraction})}if(R.length>0){let k=R.reduce((T,F)=>F.fraction>T.fraction?F:T);return B(k.answer,y.filter(T=>T!==k.entry))}return I(y,"no provider answered")}function fe(u){let f=`agent:${u.name}`;if(c())return{provider:f,state:"skipped",detail:un};let h=Se(u);return h.ok?{provider:f,state:"ok",detail:`runs ${u.argv[0]} with a ${Math.round(u.timeoutMs/1e3)}s timeout`}:{provider:f,state:h.reason==="misconfigured"?"misconfigured":"unreachable",detail:h.detail}}async function V(u,f){let h=`embeddings:${u.name}`,E=await p(u,f,!0);if(!E.ok)return{provider:h,state:E.state,detail:E.detail};let v=g(void 0),{embeddedUnits:C,fraction:y}=m(E.store,v),R=`${u.model} reachable; embedded ${C} of ${v.hashes.length} units (${le(y)})`;return{provider:h,state:y>=t.minCoverage?"ok":"degraded",detail:E.note?`${R}; ${E.note}`:R,coverage:y}}async function G(u={}){let f=[];for(let h of t.endpoints)f.push(await V(h,u.signal));for(let h of t.agents)f.push(fe(h));return f}async function fn(u={}){let{endpoint:f,signal:h,endsAt:E,budgetMs:v=t.indexBudgetMs}=u,C=f===void 0?t.endpoints:t.endpoints.filter(R=>R.name===f);if(C.length===0)throw new Error(f===void 0?"No embeddings endpoint is configured.":`No embeddings endpoint is named ${f}.`);let y=[];for(let R of C){let k=await p(R,h);if(!k.ok){y.push(`embeddings:${R.name} ${k.state}: ${k.detail}`);continue}let T=g(void 0),F=E===void 0?v:Math.max(1,Math.floor((E-o())*wo)),_=await w(k,T,h,F);return{provider:`embeddings:${R.name}`,embedded:_.embedded,coverage:m(k.store,T).fraction,budgetExhausted:_.budgetExhausted,..._.note?{note:_.note}:{}}}throw new Error(`No embeddings endpoint could be refreshed: ${y.join("; ")}`)}function mn(){for(let u of s.values())u.held?.store.close(),u.held=void 0}return{query:K,providerStatus:G,refreshEmbeddings:fn,close:mn}}function No(e){switch(e){case"unreachable":return"unreachable";case"remote-not-allowed":case"insecure-token-transport":case"invalid-endpoint":case"unauthorized":return"misconfigured";default:return"degraded"}}function le(e){return`${Math.round(e*100)}%`}function ue(e){return e instanceof Error?e.message:String(e)}export{$s as a,Ds as b};
|
|
14
|
-
//# sourceMappingURL=chunk-
|
|
14
|
+
//# sourceMappingURL=chunk-65QIFIF6.js.map
|