0sec-cli 0.22.1 → 0.23.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/0.js +64 -47
- package/README.md +73 -53
- package/chunks/{adapt-loop-J6QCZZTB.js → adapt-loop-V3JFWOKC.js} +4 -4
- package/chunks/{artifact-scraper-MFKT6OI4.js → artifact-scraper-NYKUF2M5.js} +2 -2
- package/chunks/{assumption-mining-646LYSJY.js → assumption-mining-ZX3YVWEH.js} +19 -15
- package/chunks/backend-connections-H52NIVH2.js +23 -0
- package/chunks/{chunk-NLH4LMWH.js → chunk-3E54JYS4.js} +1 -1
- package/chunks/chunk-3P3XXSIJ.js +463 -0
- package/chunks/{chunk-CPWA6RWE.js → chunk-3ZNI7F42.js} +3 -3
- package/chunks/{chunk-LGCASF2C.js → chunk-4HGGNBKK.js} +7405 -2225
- package/chunks/{chunk-TM74SSHC.js → chunk-62ENS6XO.js} +1 -1
- package/chunks/{chunk-4VGLO2YS.js → chunk-65H3MRBF.js} +5 -2
- package/chunks/chunk-A2ADXAC5.js +5329 -0
- package/chunks/chunk-A5QO7N3S.js +74 -0
- package/chunks/chunk-AAA4PRWK.js +990 -0
- package/chunks/{chunk-AV2LG2L7.js → chunk-BF5FIK7H.js} +257 -145
- package/chunks/chunk-CP6HANBE.js +355 -0
- package/chunks/{chunk-HHPWRY2M.js → chunk-EH2WTNY7.js} +23474 -22746
- package/chunks/{chunk-OSBPGWTE.js → chunk-EJH2TNVH.js} +3 -3
- package/chunks/chunk-EWXOG6D3.js +1695 -0
- package/chunks/{chunk-WZRVS7SB.js → chunk-F344NYUN.js} +1 -1
- package/chunks/chunk-FXR3BT2G.js +226 -0
- package/chunks/{chunk-GOEA3NW6.js → chunk-HFDSIHTE.js} +1603 -1295
- package/chunks/chunk-I3OCJ2OA.js +309 -0
- package/chunks/{chunk-X7LAEEUW.js → chunk-ITES7BCY.js} +1 -1
- package/chunks/{chunk-YL6YAGLL.js → chunk-JEYIWMGL.js} +1 -1
- package/chunks/{chunk-WSDDGFA6.js → chunk-K55B4OH4.js} +1 -1
- package/chunks/{chunk-TH2LW437.js → chunk-KCA35IL3.js} +2 -190
- package/chunks/chunk-KHPOSLCF.js +1659 -0
- package/chunks/chunk-LT7BFGXA.js +733 -0
- package/chunks/{chunk-KAU6NLGP.js → chunk-LTEE2JWK.js} +786 -20
- package/chunks/{chunk-ZKQ2I3S2.js → chunk-LVGZGG63.js} +1 -1
- package/chunks/chunk-MQJVU2GZ.js +277 -0
- package/chunks/{chunk-OHHCGDJ2.js → chunk-NI6QYQSK.js} +126 -1089
- package/chunks/{chunk-6YNKRUMC.js → chunk-NJLKFC66.js} +321 -5
- package/chunks/{chunk-3E2KALZ5.js → chunk-NX4H6L4M.js} +2 -2
- package/chunks/{chunk-W6UWZFKL.js → chunk-O6KPVYOI.js} +100 -5
- package/chunks/{chunk-IVQV574Y.js → chunk-O6Z4XPOM.js} +1 -1
- package/chunks/{chunk-V6GHX34G.js → chunk-OLSKXTQZ.js} +8 -274
- package/chunks/{chunk-5BTJMINS.js → chunk-P7KDN5PK.js} +208 -46
- package/chunks/chunk-PIR6BNE7.js +83 -0
- package/chunks/{chunk-XCISCI4T.js → chunk-QMICC5O2.js} +30 -12
- package/chunks/{chunk-6GHSR47F.js → chunk-R35KKJA4.js} +1 -58
- package/chunks/chunk-RS4MAN3Q.js +73 -0
- package/chunks/{chunk-VWITLWXB.js → chunk-T7ZEVY5G.js} +307 -34
- package/chunks/chunk-TPUJZ74W.js +36 -0
- package/chunks/{chunk-IFME676H.js → chunk-UZUELPFW.js} +79 -18
- package/chunks/{chunk-TV27OWIW.js → chunk-V2BWXPZP.js} +9 -9
- package/chunks/chunk-VDOWARMJ.js +63 -0
- package/chunks/{chunk-XDKB2P5X.js → chunk-W5VNCB57.js} +1 -1
- package/chunks/{chunk-4G7OVYJX.js → chunk-WIYNYNL2.js} +1 -1
- package/chunks/chunk-WYNZFNMF.js +457 -0
- package/chunks/{chunk-7XCKYNLO.js → chunk-XORZUR2H.js} +1 -1
- package/chunks/{chunk-2OQOQ2FZ.js → chunk-Y4HJRUFE.js} +20 -4
- package/chunks/{chunk-V36HVTUL.js → chunk-YAEJAZYW.js} +21 -18
- package/chunks/{chunk-XA2O4WXA.js → chunk-YYS2H33A.js} +169 -15
- package/chunks/{codex-models-NHQW45SO.js → codex-models-Y457ND6Q.js} +9 -3
- package/chunks/{commands-N6GN5SBF.js → commands-PBDAOZKA.js} +7019 -5937
- package/chunks/{db-5IWEJUYV.js → db-TPSI552V.js} +3 -3
- package/chunks/deep-review-DKED6EN5.js +81 -0
- package/chunks/{dist-L3XJWWZ6.js → dist-4LGRIBOC.js} +209 -114
- package/chunks/{dist-FSS7MBDF.js → dist-7Q5A6TQM.js} +12 -2
- package/chunks/{dist-KEULE5IQ.js → dist-LNXGATR2.js} +2 -2
- package/chunks/{dist-XZB53PS5.js → dist-M2X367VW.js} +2 -2
- package/chunks/{dist-BS4CY4RG.js → dist-RLPNLRZD.js} +79 -1
- package/chunks/eval-runner-RZKDOQ2G.js +30 -0
- package/chunks/{exploit-agent-KW4EB7BE.js → exploit-agent-RMFYNG7H.js} +1 -1
- package/chunks/{exploit-autoclimb-CXJ2ERRO.js → exploit-autoclimb-2A2PQI4E.js} +1 -1
- package/chunks/{exploit-climb-TJWLY4XC.js → exploit-climb-DEJ232QN.js} +2 -2
- package/chunks/{fix-UUKPXCFB.js → fix-JGBW7XUN.js} +12 -6
- package/chunks/{harness-C5HOKIEV.js → harness-CBOLMUHB.js} +3 -3
- package/chunks/{hunt-scan-KZZ444V2.js → hunt-scan-MIRMABY4.js} +17 -13
- package/chunks/{kernel-primitive-Z77IR7YS.js → kernel-primitive-NAPDMJC7.js} +2 -2
- package/chunks/{kernel-vm-runner-JW77P276.js → kernel-vm-runner-PR5OSDQ2.js} +2 -2
- package/chunks/managed-operation-YNQQEA5V.js +59 -0
- package/chunks/{memsafety-scan-FCPAXIZE.js → memsafety-scan-RPS446CD.js} +2 -2
- package/chunks/{native-loop-P6P5GYVJ.js → native-loop-CGOJMNHV.js} +19 -9
- package/chunks/orchestrate-5NK34H3W.js +62 -0
- package/chunks/{prepare-KYHGFWCJ.js → prepare-YVNENPNL.js} +6 -2
- package/chunks/{process-N245QIQG.js → process-MJYJ2K5E.js} +2 -1
- package/chunks/remote-workflow-runtime-RGQ5ECMN.js +96 -0
- package/chunks/{run-GAFKBCTN.js → run-VH4OIDKF.js} +1919 -4817
- package/chunks/{runtime-XFWJTBUO.js → runtime-4TAJFVF7.js} +7 -1
- package/chunks/{runtime-H7YBR5IZ.js → runtime-HWL6HG7A.js} +10 -4
- package/chunks/{scan-stream-BMOCPKQX.js → scan-stream-HJAZJONE.js} +7 -1
- package/chunks/{scope-QWY4VQZ7.js → scope-Q5PIX2IS.js} +2 -2
- package/chunks/service-plugins-QYFITODK.js +63 -0
- package/chunks/{session-store-XIDFGG7K.js → session-store-2FEIZGSV.js} +6 -4
- package/chunks/{variant-candidates-7D4F5E4H.js → variant-candidates-TX5V6XOT.js} +9 -3
- package/chunks/{web-recon-prepass-VXXBPDAV.js → web-recon-prepass-6HOUGF7Q.js} +11 -6
- package/chunks/workflow-runtime-ZEEBJFQG.js +64 -0
- package/dashboard/apple-touch-icon.png +0 -0
- package/dashboard/assets/abnfDiagram-VCTEODGH-BuvumFYR.js +1 -0
- package/dashboard/assets/arc-DZzWDuCG.js +1 -0
- package/dashboard/assets/architecture-7GRP2DOG-DK9bv1Md.js +1 -0
- package/dashboard/assets/architectureDiagram-5GKGNRK7-Bw5el_EL.js +36 -0
- package/dashboard/assets/array-BifhSqXX.js +1 -0
- package/dashboard/assets/blockDiagram-I7D4REHJ-BjVLEApp.js +129 -0
- package/dashboard/assets/c4Diagram-7LVT6UL2-B9nNzx2J.js +38 -0
- package/dashboard/assets/channel-Ck17eKdX.js +1 -0
- package/dashboard/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dashboard/assets/chunk-4HAMMTFA-y72Q95nW.js +62 -0
- package/dashboard/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/dashboard/assets/chunk-75Z2AOVW-BOhrOGMO.js +2 -0
- package/dashboard/assets/chunk-DU6HZSFF-B0EhAaNb.js +127 -0
- package/dashboard/assets/chunk-F27PBJKO-BR-hiDvM.js +1 -0
- package/dashboard/assets/chunk-FOHPRMQF-DHwB1DNv.js +161 -0
- package/dashboard/assets/chunk-GMAD6QVW-H15vJYXg.js +72 -0
- package/dashboard/assets/chunk-GVQU2GXP-BRndps0o.js +1 -0
- package/dashboard/assets/chunk-IMKFNOWR-CIzC_OWx.js +231 -0
- package/dashboard/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dashboard/assets/chunk-L3NEJ4N5-NR4P1Vko.js +1 -0
- package/dashboard/assets/chunk-OSK3NFVY-DtjTDf8S.js +10 -0
- package/dashboard/assets/chunk-P2QGCYS3-CYT11Qjx.js +1 -0
- package/dashboard/assets/chunk-POPQ4Y6H-Duj2Ygwu.js +1 -0
- package/dashboard/assets/chunk-PWAF6VOD-z4p5Tf_y.js +1 -0
- package/dashboard/assets/chunk-SHT3W25Y-DYeLYLS3.js +168 -0
- package/dashboard/assets/chunk-SVP7TREG-BKowxCVI.js +88 -0
- package/dashboard/assets/chunk-TICWLB2K-GDAwEFlH.js +206 -0
- package/dashboard/assets/chunk-XXDRQBXY-DRD79Mjx.js +1 -0
- package/dashboard/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dashboard/assets/classDiagram-ZZMXUADV-BaeZA6LE.js +1 -0
- package/dashboard/assets/classDiagram-v2-VYDZK3BY-BaeZA6LE.js +1 -0
- package/dashboard/assets/common-vnzd7UOF.js +5 -0
- package/dashboard/assets/cose-bilkent-JH36ORCC-GqCLsRyf.js +1 -0
- package/dashboard/assets/cynefin-OW5HDTMX-CJN9YwWN.js +1 -0
- package/dashboard/assets/cynefinDiagram-5FMLGOSQ-DVJHCYQY.js +62 -0
- package/dashboard/assets/cytoscape.esm-CGd-uY3x.js +321 -0
- package/dashboard/assets/dagre-GXQ25YYZ-BMCrrJJR.js +4 -0
- package/dashboard/assets/dagre-PrKaheQc.js +1 -0
- package/dashboard/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dashboard/assets/diagram-S7CK7UJ4-CLYDdOEm.js +30 -0
- package/dashboard/assets/diagram-UQ7AKVKN-CnPuAZK7.js +41 -0
- package/dashboard/assets/diagram-VSXAHHWV-Cr2I2DnG.js +3 -0
- package/dashboard/assets/diagram-VX7I27RA-_mGW1wpp.js +24 -0
- package/dashboard/assets/diagram-Z3DM3KII-igybB0l9.js +24 -0
- package/dashboard/assets/dist-Bb7_-x5y.js +1 -0
- package/dashboard/assets/ebnfDiagram-PWID7BFC-CVCICf2R.js +1 -0
- package/dashboard/assets/erDiagram-RLTQ6QDP-CRjnfgxj.js +99 -0
- package/dashboard/assets/eventmodeling-NTZA5JFV-po5oDydv.js +1 -0
- package/dashboard/assets/flowDiagram-HODETNUW-TSV9s7q4.js +1 -0
- package/dashboard/assets/ganttDiagram-EL5Y4UJY-DppD7sD7.js +292 -0
- package/dashboard/assets/gitGraph-4MIJSDKK-Tw0vNnQc.js +1 -0
- package/dashboard/assets/gitGraphDiagram-WWUBYQGX-Cpf96-z3.js +106 -0
- package/dashboard/assets/graphlib-DS17s2tU.js +1 -0
- package/dashboard/assets/info-A6RAGUB7-DLyt9arx.js +1 -0
- package/dashboard/assets/infoDiagram-27XIBGKW-B6_piSNS.js +2 -0
- package/dashboard/assets/init-C-OQMol4.js +1 -0
- package/dashboard/assets/ishikawaDiagram-5VMMS53U-DvMO0B0X.js +70 -0
- package/dashboard/assets/journeyDiagram-3NMN7TZE-f7ZK98b6.js +139 -0
- package/dashboard/assets/kanban-definition-UXKFOSKX-Dso0nAxL.js +89 -0
- package/dashboard/assets/katex-CXMH3UgJ.js +257 -0
- package/dashboard/assets/line-VcKaFG0G.js +1 -0
- package/dashboard/assets/linear-D7YnpiWh.js +1 -0
- package/dashboard/assets/mermaid-parser.core-DriL2hrV.js +7 -0
- package/dashboard/assets/mermaid.core-DJWYDh_P.js +44 -0
- package/dashboard/assets/mindmap-definition-YA3MSWOX-DZsoIeac.js +96 -0
- package/dashboard/assets/operations-BIaUSnYv.js +121 -0
- package/dashboard/assets/operations-BeCdkT4S.css +1 -0
- package/dashboard/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dashboard/assets/packet-AYTQ26CC-BQBIXKxk.js +1 -0
- package/dashboard/assets/path-fybaL0A-.js +1 -0
- package/dashboard/assets/pegDiagram-XKGWAZYB-B0-lslgW.js +1 -0
- package/dashboard/assets/pie-WAS4IAKB-DoY6dwQs.js +1 -0
- package/dashboard/assets/pieDiagram-E7YTZNPT-ElmdRjp5.js +39 -0
- package/dashboard/assets/quadrantDiagram-AXDQQJYC-Ci1h98Q2.js +7 -0
- package/dashboard/assets/radar-RG4KPBEZ-DHod2WgB.js +1 -0
- package/dashboard/assets/railroad-74A4TZTK-90JxB4xV.js +1 -0
- package/dashboard/assets/railroad-abnf-HS5TGJTU-BkXGl114.js +1 -0
- package/dashboard/assets/railroad-ebnf-LZEXJU2U-QVAERn2C.js +1 -0
- package/dashboard/assets/railroad-peg-WCYAUIDC-B1-PM01z.js +1 -0
- package/dashboard/assets/railroadDiagram-O6MQD6OU-k3190A6L.js +1 -0
- package/dashboard/assets/requirementDiagram-BXWQKSXE-C3-eR7I5.js +84 -0
- package/dashboard/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/dashboard/assets/sankeyDiagram-P5KCCOFB-Bc86pi8w.js +40 -0
- package/dashboard/assets/sequenceDiagram-WJ2MYXX4-Bv_MvEmz.js +162 -0
- package/dashboard/assets/sizeCapture-INFHLROL-B0uUizjq.js +1 -0
- package/dashboard/assets/src-D7Dqq5yP.js +1 -0
- package/dashboard/assets/stateDiagram-D77RDMKH-Bq_GVmeW.js +1 -0
- package/dashboard/assets/stateDiagram-v2-MP3YSRHH-z1XRaftz.js +1 -0
- package/dashboard/assets/swimlanes-42K2YHIH-q0iK-e0P.js +1 -0
- package/dashboard/assets/swimlanesDiagram-VR7AAH4N-C9L6XBQj.js +8 -0
- package/dashboard/assets/timeline-definition-24CTP7MA-CNfF07hM.js +120 -0
- package/dashboard/assets/treeView-Q6P3EWNA-m629ePnS.js +1 -0
- package/dashboard/assets/treemap-WGGIJYW6-D9Cb2ETv.js +1 -0
- package/dashboard/assets/vennDiagram-4TSXK5OY-v4dKF-FE.js +34 -0
- package/dashboard/assets/wardley-WFR3VGLG-DkwH_nRe.js +1 -0
- package/dashboard/assets/wardleyDiagram-VM6X3IG4-3ImohVu4.js +78 -0
- package/dashboard/assets/xychartDiagram-S5SC5T6Z-QJu3dm7K.js +7 -0
- package/dashboard/assets/zero-connect-BGDY0PMZ.webp +0 -0
- package/dashboard/assets/zero-curious-DovTLOs8.webp +0 -0
- package/dashboard/assets/zero-peek-Dzm3MT3X.png +0 -0
- package/dashboard/assets/zero-planning-CBeHDrG_.webp +0 -0
- package/dashboard/favicon.ico +0 -0
- package/dashboard/favicon.svg +10 -0
- package/dashboard/index.html +5 -3
- package/package.json +1 -1
- package/chunks/chunk-BCSRRQG5.js +0 -3514
- package/chunks/chunk-BOUGKEKA.js +0 -193
- package/chunks/chunk-GHWODZMR.js +0 -16
- package/chunks/eval-runner-EMEGF24P.js +0 -26
- package/chunks/orchestrate-DWWUT5RC.js +0 -58
- package/dashboard/assets/bot-Bg1Tp9_d.js +0 -1
- package/dashboard/assets/dist-B_dDCPbu.js +0 -1
- package/dashboard/assets/findings-page-mayGhNx6.js +0 -5
- package/dashboard/assets/format--susmHX7.js +0 -1
- package/dashboard/assets/input-TuVPR3Zl.js +0 -1
- package/dashboard/assets/jsx-runtime-MGseXjj5.js +0 -3
- package/dashboard/assets/live-page-HWWHX99U.js +0 -1
- package/dashboard/assets/meta-tile-ckHo-w7k.js +0 -1
- package/dashboard/assets/operations-BxZ0OoXO.js +0 -10
- package/dashboard/assets/operations-CMFVrXEe.css +0 -2
- package/dashboard/assets/operations-app-D3d35rgo.js +0 -46
- package/dashboard/assets/overview-page-W_4IteEr.js +0 -1
- package/dashboard/assets/page-header-Bw9AJgBV.js +0 -1
- package/dashboard/assets/scans-page-CgzVXHnn.js +0 -1
- package/dashboard/assets/siren-KQj8QAnJ.js +0 -1
- package/dashboard/assets/table-8EDklulN.js +0 -1
- package/dashboard/assets/tabs-CFHPOwg8.js +0 -1
|
@@ -3,7 +3,10 @@ import { createRequire as __0CreateRequire } from "node:module";
|
|
|
3
3
|
const require = __0CreateRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
jitterFor
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-JEYIWMGL.js";
|
|
7
|
+
import {
|
|
8
|
+
scanExecutionSignal
|
|
9
|
+
} from "./chunk-CP6HANBE.js";
|
|
7
10
|
|
|
8
11
|
// packages/core/dist/scope/rate-limit.js
|
|
9
12
|
var TokenBucket = class {
|
|
@@ -57,24 +60,26 @@ var TokenBucket = class {
|
|
|
57
60
|
* the 429 park deadline first, then refill-and-spin with sleeps
|
|
58
61
|
* sized to the exact next-token-available time.
|
|
59
62
|
*/
|
|
60
|
-
async acquire(n = 1) {
|
|
63
|
+
async acquire(n = 1, signal = scanExecutionSignal()) {
|
|
64
|
+
signal?.throwIfAborted();
|
|
61
65
|
if (n > this.state.capacity) {
|
|
62
66
|
n = this.state.capacity;
|
|
63
67
|
}
|
|
64
68
|
while (this.nowFn() < this.state.retryUntil) {
|
|
65
69
|
const wait = this.state.retryUntil - this.nowFn();
|
|
66
|
-
await this.sleepFn(Math.max(1, Math.min(wait, 1e3)));
|
|
70
|
+
await this.sleepFn(Math.max(1, Math.min(wait, 1e3)), signal);
|
|
67
71
|
}
|
|
68
72
|
while (true) {
|
|
73
|
+
signal?.throwIfAborted();
|
|
69
74
|
this.refill();
|
|
70
75
|
if (this.state.tokens >= n) {
|
|
71
76
|
this.state.tokens -= n;
|
|
72
|
-
await this.pace();
|
|
77
|
+
await this.pace(signal);
|
|
73
78
|
return;
|
|
74
79
|
}
|
|
75
80
|
const tokensNeeded = n - this.state.tokens;
|
|
76
81
|
const waitMs = Math.max(1, Math.ceil(tokensNeeded / this.state.refillRatePerMs));
|
|
77
|
-
await this.sleepFn(waitMs);
|
|
82
|
+
await this.sleepFn(waitMs, signal);
|
|
78
83
|
}
|
|
79
84
|
}
|
|
80
85
|
/**
|
|
@@ -85,12 +90,13 @@ var TokenBucket = class {
|
|
|
85
90
|
* yields full jitter in `[0, baseMs]` — rather than growing a second
|
|
86
91
|
* jitter implementation.
|
|
87
92
|
*/
|
|
88
|
-
async pace() {
|
|
93
|
+
async pace(signal = scanExecutionSignal()) {
|
|
94
|
+
signal?.throwIfAborted();
|
|
89
95
|
if (!this.jitter)
|
|
90
96
|
return;
|
|
91
97
|
const ms = jitterFor(0, this.jitter.baseMs, this.jitter.rng ?? Math.random);
|
|
92
98
|
if (ms > 0)
|
|
93
|
-
await this.sleepFn(ms);
|
|
99
|
+
await this.sleepFn(ms, signal);
|
|
94
100
|
}
|
|
95
101
|
/**
|
|
96
102
|
* Park the bucket until `deadline` (ms since epoch). Subsequent
|
|
@@ -187,17 +193,18 @@ var RateLimiter = class _RateLimiter {
|
|
|
187
193
|
* immediately) — callers should not rely on rate-limiting unknowable
|
|
188
194
|
* hosts. The fetch sites that wire this up always pass full URLs.
|
|
189
195
|
*/
|
|
190
|
-
async acquire(urlOrHost, n = 1) {
|
|
196
|
+
async acquire(urlOrHost, n = 1, signal = scanExecutionSignal()) {
|
|
197
|
+
signal?.throwIfAborted();
|
|
191
198
|
const host = this.hostKey(urlOrHost);
|
|
192
199
|
if (!host)
|
|
193
200
|
return;
|
|
194
201
|
const bucket = this.getBucket(host);
|
|
195
202
|
if (bucket.tryConsume(n)) {
|
|
196
|
-
await bucket.pace();
|
|
203
|
+
await bucket.pace(signal);
|
|
197
204
|
return;
|
|
198
205
|
}
|
|
199
206
|
this.onThrottle?.();
|
|
200
|
-
await bucket.acquire(n);
|
|
207
|
+
await bucket.acquire(n, signal);
|
|
201
208
|
}
|
|
202
209
|
/**
|
|
203
210
|
* Non-blocking variant. Returns true and consumes if available,
|
|
@@ -238,8 +245,19 @@ var RateLimiter = class _RateLimiter {
|
|
|
238
245
|
this.buckets.clear();
|
|
239
246
|
}
|
|
240
247
|
};
|
|
241
|
-
function defaultSleep(ms) {
|
|
242
|
-
|
|
248
|
+
function defaultSleep(ms, signal) {
|
|
249
|
+
signal?.throwIfAborted();
|
|
250
|
+
const { promise, resolve, reject } = Promise.withResolvers();
|
|
251
|
+
const timer = setTimeout(() => {
|
|
252
|
+
signal?.removeEventListener("abort", abort);
|
|
253
|
+
resolve();
|
|
254
|
+
}, ms);
|
|
255
|
+
const abort = () => {
|
|
256
|
+
clearTimeout(timer);
|
|
257
|
+
reject(signal?.reason ?? new Error("Rate-limit wait cancelled."));
|
|
258
|
+
};
|
|
259
|
+
signal?.addEventListener("abort", abort, { once: true });
|
|
260
|
+
return promise;
|
|
243
261
|
}
|
|
244
262
|
function readHeader(headers, name) {
|
|
245
263
|
if (typeof headers.get === "function") {
|
|
@@ -5,54 +5,7 @@ import {
|
|
|
5
5
|
expandHomePath,
|
|
6
6
|
isExistingLocalTargetPath,
|
|
7
7
|
isExplicitLocalTargetPath
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
|
|
10
|
-
// packages/cli/src/herdr-state.ts
|
|
11
|
-
var sink = null;
|
|
12
|
-
function setHerdrSink(next) {
|
|
13
|
-
sink = next;
|
|
14
|
-
}
|
|
15
|
-
function reportOperatorGate(blocked) {
|
|
16
|
-
if (!sink) return;
|
|
17
|
-
try {
|
|
18
|
-
if (blocked) sink.reportBlocked();
|
|
19
|
-
else sink.reportWorking();
|
|
20
|
-
} catch {
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function withSink(fn) {
|
|
24
|
-
if (!sink) return;
|
|
25
|
-
try {
|
|
26
|
-
fn(sink);
|
|
27
|
-
} catch {
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
function reportHerdrModel(model, provider) {
|
|
31
|
-
withSink((s) => s.setModel(model, provider));
|
|
32
|
-
}
|
|
33
|
-
function reportHerdrContextPercent(percent) {
|
|
34
|
-
withSink((s) => s.setContextPercent(percent));
|
|
35
|
-
}
|
|
36
|
-
function reportHerdrTarget(target) {
|
|
37
|
-
withSink((s) => s.setTarget(target));
|
|
38
|
-
}
|
|
39
|
-
function reportHerdrObjective(objective) {
|
|
40
|
-
withSink((s) => s.setObjective(objective));
|
|
41
|
-
}
|
|
42
|
-
function reportHerdrActivity(activity) {
|
|
43
|
-
withSink((s) => s.setActivity(activity));
|
|
44
|
-
}
|
|
45
|
-
function reportHerdrCompaction() {
|
|
46
|
-
withSink((s) => s.reportCompacting());
|
|
47
|
-
}
|
|
48
|
-
function reportHerdrSession(ref) {
|
|
49
|
-
withSink((s) => s.reportSession(ref));
|
|
50
|
-
}
|
|
51
|
-
function reportHerdrSessionClose() {
|
|
52
|
-
withSink((s) => {
|
|
53
|
-
void s.release();
|
|
54
|
-
});
|
|
55
|
-
}
|
|
8
|
+
} from "./chunk-YAEJAZYW.js";
|
|
56
9
|
|
|
57
10
|
// packages/cli/src/engagement-plan.ts
|
|
58
11
|
var PACKAGE_PREFIXES = {
|
|
@@ -133,15 +86,5 @@ function resolveEngagement(rawTarget) {
|
|
|
133
86
|
}
|
|
134
87
|
|
|
135
88
|
export {
|
|
136
|
-
setHerdrSink,
|
|
137
|
-
reportOperatorGate,
|
|
138
|
-
reportHerdrModel,
|
|
139
|
-
reportHerdrContextPercent,
|
|
140
|
-
reportHerdrTarget,
|
|
141
|
-
reportHerdrObjective,
|
|
142
|
-
reportHerdrActivity,
|
|
143
|
-
reportHerdrCompaction,
|
|
144
|
-
reportHerdrSession,
|
|
145
|
-
reportHerdrSessionClose,
|
|
146
89
|
resolveEngagement
|
|
147
90
|
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __0CreateRequire } from "node:module";
|
|
3
|
+
const require = __0CreateRequire(import.meta.url);
|
|
4
|
+
|
|
5
|
+
// packages/core/dist/runtime/prompt-cache.js
|
|
6
|
+
var MAX_CACHE_BREAKPOINTS = 4;
|
|
7
|
+
var MESSAGE_CACHE_BREAKPOINTS = MAX_CACHE_BREAKPOINTS - 1;
|
|
8
|
+
var BREAKPOINT_SPACING_BLOCKS = 15;
|
|
9
|
+
var NATIVE_CACHE_PROVIDERS = /* @__PURE__ */ new Set(["anthropic"]);
|
|
10
|
+
var OPT_IN_CACHE_PROVIDERS = /* @__PURE__ */ new Set(["z-ai", "kimi"]);
|
|
11
|
+
function providerSupportsPromptCache(provider) {
|
|
12
|
+
if (NATIVE_CACHE_PROVIDERS.has(provider))
|
|
13
|
+
return true;
|
|
14
|
+
if (!OPT_IN_CACHE_PROVIDERS.has(provider))
|
|
15
|
+
return false;
|
|
16
|
+
return readExtraCacheProviders().has(provider);
|
|
17
|
+
}
|
|
18
|
+
function readExtraCacheProviders() {
|
|
19
|
+
const raw = process.env["ZERO_PROMPT_CACHE_EXTRA_PROVIDERS"];
|
|
20
|
+
if (!raw)
|
|
21
|
+
return /* @__PURE__ */ new Set();
|
|
22
|
+
return new Set(raw.split(",").map((entry) => entry.trim().toLowerCase()).filter((entry) => entry.length > 0));
|
|
23
|
+
}
|
|
24
|
+
function planMessageBreakpoints(messages, budget = MESSAGE_CACHE_BREAKPOINTS) {
|
|
25
|
+
if (messages.length === 0 || budget <= 0)
|
|
26
|
+
return [];
|
|
27
|
+
const lastIndex = messages.length - 1;
|
|
28
|
+
const picks = /* @__PURE__ */ new Set([lastIndex]);
|
|
29
|
+
const rollingBudget = Math.max(1, budget - 1);
|
|
30
|
+
let blocksSincePick = blockCount(messages[lastIndex]);
|
|
31
|
+
for (let i = lastIndex - 1; i >= 0 && picks.size < rollingBudget; i--) {
|
|
32
|
+
if (blocksSincePick >= BREAKPOINT_SPACING_BLOCKS) {
|
|
33
|
+
picks.add(i);
|
|
34
|
+
blocksSincePick = 0;
|
|
35
|
+
}
|
|
36
|
+
blocksSincePick += blockCount(messages[i]);
|
|
37
|
+
}
|
|
38
|
+
if (picks.size < budget)
|
|
39
|
+
picks.add(0);
|
|
40
|
+
return [...picks].sort((a, b) => a - b).slice(0, budget);
|
|
41
|
+
}
|
|
42
|
+
function blockCount(message) {
|
|
43
|
+
return message?.content.length ?? 0;
|
|
44
|
+
}
|
|
45
|
+
function withCacheControl(block) {
|
|
46
|
+
return { ...block, cache_control: { type: "ephemeral" } };
|
|
47
|
+
}
|
|
48
|
+
function readCacheUsage(raw) {
|
|
49
|
+
if (typeof raw !== "object" || raw === null)
|
|
50
|
+
return void 0;
|
|
51
|
+
const usage = raw;
|
|
52
|
+
const uncachedInput = numberOr(usage.input_tokens, 0);
|
|
53
|
+
const outputTokens = numberOr(usage.output_tokens, 0);
|
|
54
|
+
const cacheRead = numberOr(usage.cache_read_input_tokens, void 0);
|
|
55
|
+
const cacheWrite = numberOr(usage.cache_creation_input_tokens, void 0);
|
|
56
|
+
return {
|
|
57
|
+
inputTokens: uncachedInput + (cacheRead ?? 0) + (cacheWrite ?? 0),
|
|
58
|
+
outputTokens,
|
|
59
|
+
...cacheRead !== void 0 ? { cachedInputTokens: cacheRead } : {},
|
|
60
|
+
...cacheWrite !== void 0 ? { cacheWriteTokens: cacheWrite } : {}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function numberOr(value, fallback) {
|
|
64
|
+
return typeof value === "number" && Number.isFinite(value) ? value : fallback;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export {
|
|
68
|
+
MESSAGE_CACHE_BREAKPOINTS,
|
|
69
|
+
providerSupportsPromptCache,
|
|
70
|
+
planMessageBreakpoints,
|
|
71
|
+
withCacheControl,
|
|
72
|
+
readCacheUsage
|
|
73
|
+
};
|