0sec-cli 0.21.4 → 0.22.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 +56 -56
- package/README.md +48 -63
- package/chunks/{adapt-loop-IGBRQAXO.js → adapt-loop-7I57LXXR.js} +4 -4
- package/chunks/{artifact-scraper-LNQJUORS.js → artifact-scraper-PYZ3RU3O.js} +2 -2
- package/chunks/{assumption-mining-4MJTP6H5.js → assumption-mining-MFLF43IR.js} +16 -16
- package/chunks/{chunk-Z3IKZX3X.js → chunk-23DG5YKS.js} +1 -1
- package/chunks/{chunk-BACXRTQ4.js → chunk-2GV4HQKE.js} +87 -767
- package/chunks/{chunk-QZVG3BG4.js → chunk-5IBCBQEH.js} +1 -2
- package/chunks/{chunk-NDJU5ZZ7.js → chunk-5MWAG3FT.js} +3 -3
- package/chunks/{chunk-PC6RCKQV.js → chunk-76KSBWOQ.js} +59 -26
- package/chunks/chunk-7DEHG7YT.js +2143 -0
- package/chunks/{chunk-CL5KAUM6.js → chunk-7UFUALR2.js} +274 -8
- package/chunks/{chunk-IMGWPNQM.js → chunk-CAYANSH6.js} +67 -574
- package/chunks/{chunk-P6YG6TEZ.js → chunk-DKSCN2AB.js} +1 -1
- package/chunks/{chunk-O6SD4A36.js → chunk-DM5C5L5D.js} +1 -1
- package/chunks/{chunk-FAH6V4QM.js → chunk-EGZGZFAH.js} +1116 -2291
- package/chunks/chunk-HR2TU42B.js +1228 -0
- package/chunks/{chunk-TF46UWFU.js → chunk-HUNAPTKV.js} +1 -1
- package/chunks/chunk-IO7R7WBM.js +114 -0
- package/chunks/{chunk-W4JOXE4N.js → chunk-IXT64DV5.js} +709 -1929
- package/chunks/{chunk-HBKCGJAV.js → chunk-LCRTAQN2.js} +1 -1
- package/chunks/{chunk-WPQLBN4S.js → chunk-LPTRPRZR.js} +1 -1
- package/chunks/{chunk-Y5H6E24H.js → chunk-LYUAM3TG.js} +1 -1
- package/chunks/{chunk-NOPBXZUV.js → chunk-MICHDTBK.js} +1 -1
- package/chunks/{chunk-CAJJRUTV.js → chunk-OAYUPGF6.js} +1 -1
- package/chunks/{chunk-FWAYJ2IV.js → chunk-OWLJYJ5O.js} +8 -8
- package/chunks/chunk-RE5EZDG2.js +5523 -0
- package/chunks/{chunk-RF5QGKLR.js → chunk-RRD4XXPU.js} +3 -3
- package/chunks/{chunk-2WSXFFJZ.js → chunk-RSIUX3RW.js} +2 -2
- package/chunks/{chunk-ANDKY54G.js → chunk-SJBCK2EI.js} +4019 -7299
- package/chunks/{chunk-G34QP2XW.js → chunk-TM74SSHC.js} +1 -1
- package/chunks/{chunk-VOAXLO4A.js → chunk-TO35Y326.js} +5 -721
- package/chunks/{chunk-SBMB4OL3.js → chunk-TZFIAMWZ.js} +62 -8
- package/chunks/chunk-UELXHK2Y.js +1950 -0
- package/chunks/{chunk-YHWWF4QY.js → chunk-UU7PQP6N.js} +3 -3
- package/chunks/{chunk-E2UOY5PJ.js → chunk-UV5QWZGE.js} +12 -70
- package/chunks/{chunk-YA4PUM4H.js → chunk-VMRRNRMR.js} +1 -1
- package/chunks/{chunk-WZISK5VC.js → chunk-VNRY6AWF.js} +53 -7
- package/chunks/{chunk-ER3SUMYJ.js → chunk-W6UWZFKL.js} +0 -195
- package/chunks/{chunk-5T6D5BVY.js → chunk-XFCTUKXR.js} +1 -1
- package/chunks/{chunk-YPOA3W4O.js → chunk-YIQSGNAA.js} +875 -108
- package/chunks/{codex-models-TYYV4JNN.js → codex-models-7TLJSY3L.js} +5 -3
- package/chunks/{commands-WF5RG4I2.js → commands-NEI7L3QA.js} +2151 -3642
- package/chunks/{db-U3WQZVAO.js → db-5AP3JB4W.js} +3 -3
- package/chunks/{disclose-67GZCDBO.js → disclose-LDNKAVRH.js} +10 -8
- package/chunks/{dist-F6X62TQK.js → dist-3FNZIBB4.js} +223 -192
- package/chunks/{dist-EVTN3UTT.js → dist-5YHYNLI3.js} +2 -2
- package/chunks/{dist-ACC3DZUZ.js → dist-DD4H6HMQ.js} +3 -1
- package/chunks/{eval-runner-SA6OUGHZ.js → eval-runner-43BO2C4T.js} +11 -11
- package/chunks/{exploit-agent-36Q7XQFP.js → exploit-agent-N4A5ELBK.js} +1 -1
- package/chunks/{exploit-autoclimb-J4OTSTZ6.js → exploit-autoclimb-N7P6KIF5.js} +1 -1
- package/chunks/{exploit-climb-PYEJDIC4.js → exploit-climb-WNEJUB5W.js} +2 -2
- package/chunks/fix-Z452M4EC.js +26 -0
- package/chunks/{harness-GDUMKGSE.js → harness-QJJJVSG4.js} +3 -3
- package/chunks/{hunt-scan-UDJSCISU.js → hunt-scan-K6D2V3PX.js} +14 -14
- package/chunks/{identity-JTIVJSV7.js → identity-62SVRW4H.js} +1 -1
- package/chunks/{kernel-primitive-F2IXUFAX.js → kernel-primitive-TKUACPKD.js} +2 -2
- package/chunks/{kernel-vm-runner-276LHIOV.js → kernel-vm-runner-RAAO2PGT.js} +2 -2
- package/chunks/{memsafety-scan-NHUOGTEX.js → memsafety-scan-FCPAXIZE.js} +2 -2
- package/chunks/{native-loop-3BSYVDUI.js → native-loop-2ZRJENZ3.js} +10 -10
- package/chunks/{npm-detectors-VIYJXKFQ.js → npm-detectors-Z2ZIQCN4.js} +2 -2
- package/chunks/orchestrate-2GWGNTBF.js +58 -0
- package/chunks/{process-PNMC36JI.js → process-N245QIQG.js} +1 -4
- package/chunks/{run-CBGE6DRQ.js → run-U3XU4CTC.js} +9940 -12572
- package/chunks/{runtime-PXO5G6UV.js → runtime-G75TEWQY.js} +4 -5
- package/chunks/{scope-NJHIDDTN.js → scope-WXI46UHJ.js} +4 -1
- package/chunks/{session-store-46WBZM22.js → session-store-27L3ZU73.js} +2 -2
- package/chunks/{variant-candidates-UH2WC2HA.js → variant-candidates-YWZORZMK.js} +3 -3
- package/chunks/{web-recon-prepass-SFXU44SS.js → web-recon-prepass-YVMFXCIK.js} +3 -3
- package/cli-path-traversal-fixture.js +352 -0
- package/dashboard/assets/bot-Bg1Tp9_d.js +1 -0
- package/dashboard/assets/dist-B_dDCPbu.js +1 -0
- package/dashboard/assets/findings-page-mayGhNx6.js +5 -0
- package/dashboard/assets/format--susmHX7.js +1 -0
- package/dashboard/assets/input-TuVPR3Zl.js +1 -0
- package/dashboard/assets/jsx-runtime-MGseXjj5.js +3 -0
- package/dashboard/assets/live-page-HWWHX99U.js +1 -0
- package/dashboard/assets/meta-tile-ckHo-w7k.js +1 -0
- package/dashboard/assets/operations-BxZ0OoXO.js +10 -0
- package/dashboard/assets/operations-app-D3d35rgo.js +46 -0
- package/dashboard/assets/overview-page-W_4IteEr.js +1 -0
- package/dashboard/assets/page-header-Bw9AJgBV.js +1 -0
- package/dashboard/assets/scans-page-CgzVXHnn.js +1 -0
- package/dashboard/assets/siren-KQj8QAnJ.js +1 -0
- package/dashboard/assets/table-8EDklulN.js +1 -0
- package/dashboard/assets/tabs-CFHPOwg8.js +1 -0
- package/dashboard/index.html +2 -3
- package/node_modules/node-addon-api/LICENSE.md +9 -0
- package/node_modules/node-addon-api/README.md +95 -0
- package/node_modules/node-addon-api/common.gypi +21 -0
- package/node_modules/node-addon-api/except.gypi +25 -0
- package/node_modules/node-addon-api/index.js +14 -0
- package/node_modules/node-addon-api/napi-inl.deprecated.h +186 -0
- package/node_modules/node-addon-api/napi-inl.h +7250 -0
- package/node_modules/node-addon-api/napi.h +3463 -0
- package/node_modules/node-addon-api/node_addon_api.gyp +42 -0
- package/node_modules/node-addon-api/node_api.gyp +9 -0
- package/node_modules/node-addon-api/noexcept.gypi +26 -0
- package/node_modules/node-addon-api/nothing.c +0 -0
- package/node_modules/node-addon-api/package-support.json +21 -0
- package/node_modules/node-addon-api/package.json +481 -0
- package/node_modules/node-addon-api/tools/README.md +73 -0
- package/node_modules/node-addon-api/tools/check-napi.js +99 -0
- package/node_modules/node-addon-api/tools/clang-format.js +71 -0
- package/node_modules/node-addon-api/tools/conversion.js +301 -0
- package/node_modules/node-gyp-build/LICENSE +21 -0
- package/node_modules/node-gyp-build/README.md +58 -0
- package/node_modules/node-gyp-build/SECURITY.md +5 -0
- package/node_modules/node-gyp-build/bin.js +84 -0
- package/node_modules/node-gyp-build/build-test.js +19 -0
- package/node_modules/node-gyp-build/index.js +6 -0
- package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
- package/node_modules/node-gyp-build/optional.js +7 -0
- package/node_modules/node-gyp-build/package.json +43 -0
- package/node_modules/tree-sitter/LICENSE +21 -0
- package/node_modules/tree-sitter/README.md +90 -0
- package/node_modules/tree-sitter/binding.gyp +76 -0
- package/node_modules/tree-sitter/index.js +895 -0
- package/node_modules/tree-sitter/package.json +62 -0
- package/node_modules/tree-sitter/prebuilds/darwin-arm64/tree-sitter.node +0 -0
- package/node_modules/tree-sitter/prebuilds/darwin-x64/tree-sitter.node +0 -0
- package/node_modules/tree-sitter/prebuilds/linux-x64/tree-sitter.node +0 -0
- package/node_modules/tree-sitter/prebuilds/win32-x64/tree-sitter.node +0 -0
- package/node_modules/tree-sitter/src/addon_data.h +47 -0
- package/node_modules/tree-sitter/src/binding.cc +35 -0
- package/node_modules/tree-sitter/src/conversions.cc +140 -0
- package/node_modules/tree-sitter/src/conversions.h +22 -0
- package/node_modules/tree-sitter/src/language.cc +106 -0
- package/node_modules/tree-sitter/src/language.h +17 -0
- package/node_modules/tree-sitter/src/logger.cc +70 -0
- package/node_modules/tree-sitter/src/logger.h +19 -0
- package/node_modules/tree-sitter/src/lookaheaditerator.cc +122 -0
- package/node_modules/tree-sitter/src/lookaheaditerator.h +33 -0
- package/node_modules/tree-sitter/src/node.cc +1056 -0
- package/node_modules/tree-sitter/src/node.h +30 -0
- package/node_modules/tree-sitter/src/parser.cc +298 -0
- package/node_modules/tree-sitter/src/parser.h +35 -0
- package/node_modules/tree-sitter/src/query.cc +383 -0
- package/node_modules/tree-sitter/src/query.h +39 -0
- package/node_modules/tree-sitter/src/tree.cc +307 -0
- package/node_modules/tree-sitter/src/tree.h +45 -0
- package/node_modules/tree-sitter/src/tree_cursor.cc +213 -0
- package/node_modules/tree-sitter/src/tree_cursor.h +52 -0
- package/node_modules/tree-sitter/tree-sitter.d.ts +211 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/LICENSE +21 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/README.md +21 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/README.md +6 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/include/tree_sitter/api.h +1266 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.c +48 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.h +41 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/array.h +290 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/atomic.h +68 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/clock.h +146 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/error_costs.h +11 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.c +501 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.h +36 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/host.h +21 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.c +221 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.h +299 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/length.h +52 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.c +419 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.h +49 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lib.c +14 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/node.c +774 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.c +2151 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.h +230 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/point.h +62 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/query.c +4134 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reduce_action.h +34 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reusable_node.h +95 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.c +899 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.h +133 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.c +1060 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.h +382 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.c +165 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.h +31 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.c +714 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.h +48 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ICU_SHA +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/LICENSE +414 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/README.md +29 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ptypes.h +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/umachine.h +448 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/urename.h +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf.h +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf16.h +733 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf8.h +881 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode.h +50 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib-symbols.txt +23 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib.c +109 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/wasm-stdlib.h +1294 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.c +1823 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.h +31 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/test/fixtures/grammars/.gitkeep +0 -0
- package/node_modules/tree-sitter-c/LICENSE +21 -0
- package/node_modules/tree-sitter-c/README.md +18 -0
- package/node_modules/tree-sitter-c/binding.gyp +20 -0
- package/node_modules/tree-sitter-c/bindings/node/binding.cc +20 -0
- package/node_modules/tree-sitter-c/bindings/node/index.d.ts +28 -0
- package/node_modules/tree-sitter-c/bindings/node/index.js +7 -0
- package/node_modules/tree-sitter-c/grammar.js +1463 -0
- package/node_modules/tree-sitter-c/package.json +108 -0
- package/node_modules/tree-sitter-c/prebuilds/darwin-arm64/tree-sitter-c.node +0 -0
- package/node_modules/tree-sitter-c/prebuilds/darwin-x64/tree-sitter-c.node +0 -0
- package/node_modules/tree-sitter-c/prebuilds/linux-x64/tree-sitter-c.node +0 -0
- package/node_modules/tree-sitter-c/prebuilds/win32-x64/tree-sitter-c.node +0 -0
- package/node_modules/tree-sitter-c/queries/highlights.scm +81 -0
- package/node_modules/tree-sitter-c/queries/tags.scm +9 -0
- package/node_modules/tree-sitter-c/src/grammar.json +9682 -0
- package/node_modules/tree-sitter-c/src/node-types.json +4556 -0
- package/node_modules/tree-sitter-c/src/parser.c +113852 -0
- package/node_modules/tree-sitter-c/src/tree_sitter/alloc.h +54 -0
- package/node_modules/tree-sitter-c/src/tree_sitter/array.h +290 -0
- package/node_modules/tree-sitter-c/src/tree_sitter/parser.h +265 -0
- package/package.json +10 -3
- package/vendor/tree-sitter-0.21.1-node24.json +16 -0
- package/vendor/tree-sitter-0.21.1-node24.tgz +0 -0
- package/chunks/chunk-CGHCEN7W.js +0 -169
- package/chunks/chunk-CXKDWFNO.js +0 -102
- package/chunks/chunk-GIQKESMN.js +0 -687
- package/chunks/chunk-HPQZHOIU.js +0 -67
- package/chunks/chunk-PD2BBBKT.js +0 -245
- package/chunks/chunk-WF5W75WY.js +0 -1070
- package/chunks/fix-J2KBRJDV.js +0 -12
- package/chunks/orchestrate-DHBFRTSI.js +0 -59
- package/chunks/replay-runner-LK2XFIVG.js +0 -39
- package/dashboard/assets/bot-yILPnRgD.js +0 -1
- package/dashboard/assets/chevron-down-BeDJ-Vka.js +0 -1
- package/dashboard/assets/circle-alert-BEnMBMT-.js +0 -1
- package/dashboard/assets/client-DRYsuOGl.js +0 -9
- package/dashboard/assets/copy-Bi5vzoF9.js +0 -1
- package/dashboard/assets/desktop-BT7RkC4q.js +0 -32
- package/dashboard/assets/desktop-OaBI0E0e.css +0 -1
- package/dashboard/assets/dist-CmX-h7a4.js +0 -1
- package/dashboard/assets/dist-DAwYQmf_.js +0 -45
- package/dashboard/assets/findings-page-B4rwF6fZ.js +0 -5
- package/dashboard/assets/format-LNQSSpn6.js +0 -1
- package/dashboard/assets/jsx-runtime-C7oxC63R.js +0 -1
- package/dashboard/assets/live-page-DoNwpPAO.js +0 -1
- package/dashboard/assets/meta-tile-BMtBC-Qq.js +0 -1
- package/dashboard/assets/operations-app-ER0gg7GN.js +0 -2
- package/dashboard/assets/operations-e2CGYKB1.js +0 -4
- package/dashboard/assets/overview-page-CmeWH17A.js +0 -1
- package/dashboard/assets/page-header-CIJyycfz.js +0 -1
- package/dashboard/assets/play-Dwo-9xt6.js +0 -1
- package/dashboard/assets/scans-page-CuhzWhHx.js +0 -1
- package/dashboard/assets/search-CiooTLck.js +0 -1
- package/dashboard/assets/siren-CCBwTSuk.js +0 -1
- package/dashboard/assets/table-BgsSBdke.js +0 -1
- package/dashboard/assets/tabs-vn6v7Bk6.js +0 -1
- package/dashboard/desktop.html +0 -21
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
makeSkepticVerifier,
|
|
6
6
|
runHuntScan,
|
|
7
7
|
scoreGeometry
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UV5QWZGE.js";
|
|
9
9
|
import {
|
|
10
10
|
runReproducerInKernelVm
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-XFCTUKXR.js";
|
|
12
12
|
import {
|
|
13
13
|
LlmApiRuntime
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2GV4HQKE.js";
|
|
15
15
|
import {
|
|
16
16
|
__commonJS,
|
|
17
17
|
__require,
|
|
@@ -5,46 +5,46 @@ import {
|
|
|
5
5
|
BUDGET_WARNING_HARD,
|
|
6
6
|
BUDGET_WARNING_SOFT,
|
|
7
7
|
ToolExecutor,
|
|
8
|
-
analyticsPipeline,
|
|
9
8
|
buildToolCallLogEntry,
|
|
10
9
|
buildToolCallsPayload,
|
|
11
10
|
computeBudgetWarningTurns,
|
|
12
11
|
formatJitSkillsInstruction,
|
|
13
|
-
getCloudSinkConfig,
|
|
14
12
|
getToolsForRole,
|
|
15
13
|
newCorrelationId,
|
|
16
14
|
parseFindingsFromCliOutput,
|
|
17
|
-
postFinding,
|
|
18
15
|
registerSignalCleanup,
|
|
19
|
-
reportUnsupportedContributionMode,
|
|
20
16
|
runNativeAgentLoop,
|
|
21
17
|
toolCallPreview
|
|
22
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-SJBCK2EI.js";
|
|
23
19
|
import {
|
|
24
20
|
WafDetector
|
|
25
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-TZFIAMWZ.js";
|
|
26
22
|
import {
|
|
27
23
|
RECIPE_LIBRARY
|
|
28
24
|
} from "./chunk-UEX7PFSE.js";
|
|
25
|
+
import {
|
|
26
|
+
analyticsPipeline,
|
|
27
|
+
reportUnsupportedContributionMode
|
|
28
|
+
} from "./chunk-RE5EZDG2.js";
|
|
29
29
|
import {
|
|
30
30
|
createRuntime,
|
|
31
31
|
detectAvailableRuntimes,
|
|
32
32
|
pickRuntimeForStage
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-5MWAG3FT.js";
|
|
34
34
|
import {
|
|
35
35
|
osecDB
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-VNRY6AWF.js";
|
|
37
37
|
import {
|
|
38
38
|
CLI_RUNTIME_TYPES
|
|
39
39
|
} from "./chunk-4VGLO2YS.js";
|
|
40
40
|
import {
|
|
41
41
|
LlmApiRuntime,
|
|
42
42
|
features
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-2GV4HQKE.js";
|
|
44
44
|
import {
|
|
45
45
|
estimateCost,
|
|
46
46
|
modelProvider
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-76KSBWOQ.js";
|
|
48
48
|
import {
|
|
49
49
|
external_exports
|
|
50
50
|
} from "./chunk-VIT5ALXF.js";
|
|
@@ -3919,59 +3919,6 @@ function persistSession(db, state, config, sessionId, status) {
|
|
|
3919
3919
|
});
|
|
3920
3920
|
}
|
|
3921
3921
|
|
|
3922
|
-
// packages/core/dist/agent/cloud-inbox.js
|
|
3923
|
-
var POLL_MS = 3e3;
|
|
3924
|
-
function startCloudInboxPoller(config) {
|
|
3925
|
-
const buffer = [];
|
|
3926
|
-
let stopped = false;
|
|
3927
|
-
const headers = {
|
|
3928
|
-
"X-0-Scan-Id": config.scanId
|
|
3929
|
-
};
|
|
3930
|
-
if (config.token)
|
|
3931
|
-
headers["Authorization"] = `Bearer ${config.token}`;
|
|
3932
|
-
const url = `${config.sinkUrl.replace(/\/+$/, "")}/scans/${encodeURIComponent(config.scanId)}/inbox`;
|
|
3933
|
-
const poll = async () => {
|
|
3934
|
-
if (stopped)
|
|
3935
|
-
return;
|
|
3936
|
-
try {
|
|
3937
|
-
const res = await fetch(url, { headers });
|
|
3938
|
-
if (!res.ok)
|
|
3939
|
-
return;
|
|
3940
|
-
const rows = await res.json();
|
|
3941
|
-
if (!Array.isArray(rows))
|
|
3942
|
-
return;
|
|
3943
|
-
for (const r of rows) {
|
|
3944
|
-
if (r.role === "human" && typeof r.body === "string" && r.body.trim().length > 0) {
|
|
3945
|
-
const prefix = r.kind === "approval" ? "[Operator approval]" : "[Operator steer]";
|
|
3946
|
-
buffer.push(`${prefix}: ${r.body.trim()}`);
|
|
3947
|
-
}
|
|
3948
|
-
}
|
|
3949
|
-
} catch {
|
|
3950
|
-
}
|
|
3951
|
-
};
|
|
3952
|
-
const handle = setInterval(() => void poll(), POLL_MS);
|
|
3953
|
-
if (typeof handle.unref === "function") {
|
|
3954
|
-
handle.unref();
|
|
3955
|
-
}
|
|
3956
|
-
return {
|
|
3957
|
-
drain() {
|
|
3958
|
-
if (buffer.length === 0)
|
|
3959
|
-
return [];
|
|
3960
|
-
return buffer.splice(0, buffer.length);
|
|
3961
|
-
},
|
|
3962
|
-
stop() {
|
|
3963
|
-
stopped = true;
|
|
3964
|
-
clearInterval(handle);
|
|
3965
|
-
}
|
|
3966
|
-
};
|
|
3967
|
-
}
|
|
3968
|
-
function maybeStartCloudInboxPoller() {
|
|
3969
|
-
const cfg = getCloudSinkConfig();
|
|
3970
|
-
if (!cfg)
|
|
3971
|
-
return null;
|
|
3972
|
-
return startCloudInboxPoller(cfg);
|
|
3973
|
-
}
|
|
3974
|
-
|
|
3975
3922
|
// packages/core/dist/secure/project-context.js
|
|
3976
3923
|
import { createHash as createHash2 } from "node:crypto";
|
|
3977
3924
|
import { execFileSync as execFileSync2 } from "node:child_process";
|
|
@@ -4207,7 +4154,7 @@ async function runAnalysisAgent(opts) {
|
|
|
4207
4154
|
},
|
|
4208
4155
|
required: ["findings", "summary"]
|
|
4209
4156
|
};
|
|
4210
|
-
const { ProcessRuntime } = await import("./process-
|
|
4157
|
+
const { ProcessRuntime } = await import("./process-N245QIQG.js");
|
|
4211
4158
|
const codexHome = runtimeType === "codex" && isEphemeralScope(scopePath) ? createEphemeralCodexHome() : void 0;
|
|
4212
4159
|
const cliRuntime = new ProcessRuntime({
|
|
4213
4160
|
type: runtimeType,
|
|
@@ -4316,7 +4263,6 @@ async function runAnalysisAgent(opts) {
|
|
|
4316
4263
|
if (supportsNative) {
|
|
4317
4264
|
const turnBudget = getMaxTurns(role, config.depth, "native", purpose);
|
|
4318
4265
|
const maxTurns2 = Math.min(opts.maxTurns ?? turnBudget, opts.singleAgent ? 20 : turnBudget);
|
|
4319
|
-
const cloudInbox = maybeStartCloudInboxPoller();
|
|
4320
4266
|
const agentState2 = await runNativeAgentLoop({
|
|
4321
4267
|
config: {
|
|
4322
4268
|
role,
|
|
@@ -4329,7 +4275,7 @@ async function runAnalysisAgent(opts) {
|
|
|
4329
4275
|
target,
|
|
4330
4276
|
scanId,
|
|
4331
4277
|
scopePath,
|
|
4332
|
-
codebaseLearning:
|
|
4278
|
+
codebaseLearning: scopedSourceAudit && purpose === "research",
|
|
4333
4279
|
sessionId,
|
|
4334
4280
|
costCeilingUsd: config.costCeilingUsd,
|
|
4335
4281
|
costModel: config.model,
|
|
@@ -4337,7 +4283,6 @@ async function runAnalysisAgent(opts) {
|
|
|
4337
4283
|
},
|
|
4338
4284
|
runtime: apiRuntime,
|
|
4339
4285
|
db,
|
|
4340
|
-
getPendingUserMessages: cloudInbox?.drain,
|
|
4341
4286
|
onFindingSaved: (finding) => {
|
|
4342
4287
|
if (purpose === "verify" && opts.singleAgent)
|
|
4343
4288
|
return;
|
|
@@ -4346,7 +4291,6 @@ async function runAnalysisAgent(opts) {
|
|
|
4346
4291
|
message: `[${finding.severity}] ${finding.title}`,
|
|
4347
4292
|
data: finding
|
|
4348
4293
|
});
|
|
4349
|
-
void postFinding(finding, getCloudSinkConfig());
|
|
4350
4294
|
try {
|
|
4351
4295
|
analyticsPipeline.recordFinding({
|
|
4352
4296
|
severity: finding.severity,
|
|
@@ -4477,7 +4421,6 @@ async function runAnalysisAgent(opts) {
|
|
|
4477
4421
|
message: `[${finding.severity}] ${finding.title}`,
|
|
4478
4422
|
data: finding
|
|
4479
4423
|
});
|
|
4480
|
-
void postFinding(finding, getCloudSinkConfig());
|
|
4481
4424
|
try {
|
|
4482
4425
|
analyticsPipeline.recordFinding({
|
|
4483
4426
|
severity: finding.severity,
|
|
@@ -5908,7 +5851,6 @@ export {
|
|
|
5908
5851
|
describeRefuterChoice,
|
|
5909
5852
|
scoreGeometry,
|
|
5910
5853
|
runAgentLoop,
|
|
5911
|
-
maybeStartCloudInboxPoller,
|
|
5912
5854
|
prepareProjectContext,
|
|
5913
5855
|
PROJECT_OBSERVATION_PROMPT,
|
|
5914
5856
|
captureProjectSuggestions,
|
|
@@ -4,7 +4,7 @@ const require = __0CreateRequire(import.meta.url);
|
|
|
4
4
|
import {
|
|
5
5
|
homeStateDir,
|
|
6
6
|
runStateDir
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-76KSBWOQ.js";
|
|
8
8
|
import {
|
|
9
9
|
__export
|
|
10
10
|
} from "./chunk-VCSFCHAJ.js";
|
|
@@ -409,6 +409,12 @@ var findings = sqliteTable("findings", {
|
|
|
409
409
|
* `verificationSpec`: the blob is read and written whole.
|
|
410
410
|
*/
|
|
411
411
|
verificationResult: text("verificationResult"),
|
|
412
|
+
/**
|
|
413
|
+
* JSON-stringified safe code-only source-verification summary. NULL when
|
|
414
|
+
* no scoped source workspace/spec was available or data is unusable; it
|
|
415
|
+
* never carries canonical replay status.
|
|
416
|
+
*/
|
|
417
|
+
sourceVerification: text("sourceVerification"),
|
|
412
418
|
/**
|
|
413
419
|
* JSON-stringified Finding["reviewAnnotation"] — the scoped source
|
|
414
420
|
* reference (`path` + line range, optional suggestion / knownMarker)
|
|
@@ -873,6 +879,9 @@ var osecDB = class {
|
|
|
873
879
|
if (!colNames.has("reviewAnnotation")) {
|
|
874
880
|
this.sqlite.exec("ALTER TABLE findings ADD COLUMN reviewAnnotation TEXT");
|
|
875
881
|
}
|
|
882
|
+
if (!colNames.has("sourceVerification")) {
|
|
883
|
+
this.sqlite.exec("ALTER TABLE findings ADD COLUMN sourceVerification TEXT");
|
|
884
|
+
}
|
|
876
885
|
this.sqlite.exec("UPDATE findings SET fingerprint = id WHERE fingerprint IS NULL OR fingerprint = ''");
|
|
877
886
|
this.sqlite.exec("UPDATE findings SET triageStatus = 'new' WHERE triageStatus IS NULL OR triageStatus = ''");
|
|
878
887
|
this.sqlite.exec(`
|
|
@@ -1364,6 +1373,7 @@ var osecDB = class {
|
|
|
1364
1373
|
const semanticDedupeJson = finding.semanticDedupe ? JSON.stringify(finding.semanticDedupe) : null;
|
|
1365
1374
|
const verificationResultJson = serializeFindingVerificationResult(finding.verification_result);
|
|
1366
1375
|
const reviewAnnotationJson = serializeFindingReviewAnnotation(finding.reviewAnnotation);
|
|
1376
|
+
const sourceVerificationJson = serializeFindingSourceVerification(finding.sourceVerification);
|
|
1367
1377
|
const candidateFindingRank = finding.findingRank;
|
|
1368
1378
|
const findingRank = typeof candidateFindingRank === "number" && Number.isSafeInteger(candidateFindingRank) && candidateFindingRank > 0 ? candidateFindingRank : null;
|
|
1369
1379
|
const derivedEvidence = deriveEvidenceFromPocSteps(finding);
|
|
@@ -1400,6 +1410,7 @@ var osecDB = class {
|
|
|
1400
1410
|
findingRank,
|
|
1401
1411
|
verificationResult: verificationResultJson,
|
|
1402
1412
|
reviewAnnotation: reviewAnnotationJson,
|
|
1413
|
+
sourceVerification: sourceVerificationJson,
|
|
1403
1414
|
timestamp: finding.timestamp
|
|
1404
1415
|
}).onConflictDoUpdate({
|
|
1405
1416
|
target: findings.id,
|
|
@@ -1431,6 +1442,7 @@ var osecDB = class {
|
|
|
1431
1442
|
findingRank,
|
|
1432
1443
|
verificationResult: verificationResultJson,
|
|
1433
1444
|
reviewAnnotation: reviewAnnotationJson,
|
|
1445
|
+
sourceVerification: sourceVerificationJson,
|
|
1434
1446
|
timestamp: finding.timestamp
|
|
1435
1447
|
}
|
|
1436
1448
|
}).run();
|
|
@@ -1440,11 +1452,10 @@ var osecDB = class {
|
|
|
1440
1452
|
return this.db.select().from(findings).where(eq(findings.id, findingId)).get();
|
|
1441
1453
|
}
|
|
1442
1454
|
/**
|
|
1443
|
-
* Read path for the
|
|
1444
|
-
* `
|
|
1445
|
-
*
|
|
1446
|
-
*
|
|
1447
|
-
* `{ ...mapped, ...db.getFindingReviewFields(id) }`.
|
|
1455
|
+
* Read path for the persisted `verification_result`, `reviewAnnotation`,
|
|
1456
|
+
* and `sourceVerification` fields. The first two retain their existing
|
|
1457
|
+
* source-fix gate semantics; a source-only check is never replay evidence.
|
|
1458
|
+
* Each key is omitted when absent, including for pre-migration rows.
|
|
1448
1459
|
*/
|
|
1449
1460
|
getFindingReviewFields(findingId) {
|
|
1450
1461
|
return restoreFindingReviewFields(this.getFinding(findingId));
|
|
@@ -2169,6 +2180,38 @@ function parseFindingReviewAnnotation(value) {
|
|
|
2169
2180
|
return void 0;
|
|
2170
2181
|
return parsed;
|
|
2171
2182
|
}
|
|
2183
|
+
function parseFindingSourceVerification(value) {
|
|
2184
|
+
const parsed = parseJsonObjectColumn(value);
|
|
2185
|
+
if (!parsed)
|
|
2186
|
+
return void 0;
|
|
2187
|
+
const status = parsed.status;
|
|
2188
|
+
const totalPredicates = parsed.totalPredicates;
|
|
2189
|
+
const matchedPredicates = parsed.matchedPredicates;
|
|
2190
|
+
const notMatchedPredicates = parsed.notMatchedPredicates;
|
|
2191
|
+
const inconclusivePredicates = parsed.inconclusivePredicates;
|
|
2192
|
+
const behaviorPending = parsed.behaviorPending;
|
|
2193
|
+
if (status !== "matched" && status !== "not_confirmed" && status !== "inconclusive" || typeof totalPredicates !== "number" || !Number.isSafeInteger(totalPredicates) || totalPredicates < 0 || typeof matchedPredicates !== "number" || !Number.isSafeInteger(matchedPredicates) || matchedPredicates < 0 || typeof notMatchedPredicates !== "number" || !Number.isSafeInteger(notMatchedPredicates) || notMatchedPredicates < 0 || typeof inconclusivePredicates !== "number" || !Number.isSafeInteger(inconclusivePredicates) || inconclusivePredicates < 0 || typeof behaviorPending !== "boolean") {
|
|
2194
|
+
return void 0;
|
|
2195
|
+
}
|
|
2196
|
+
const countSum = matchedPredicates + notMatchedPredicates + inconclusivePredicates;
|
|
2197
|
+
if (!Number.isSafeInteger(countSum) || countSum !== totalPredicates)
|
|
2198
|
+
return void 0;
|
|
2199
|
+
if (status === "matched" && (totalPredicates === 0 || matchedPredicates !== totalPredicates || notMatchedPredicates !== 0 || inconclusivePredicates !== 0) || status === "not_confirmed" && (notMatchedPredicates === 0 || inconclusivePredicates !== 0) || status === "inconclusive" && inconclusivePredicates === 0 && totalPredicates !== 0) {
|
|
2200
|
+
return void 0;
|
|
2201
|
+
}
|
|
2202
|
+
return {
|
|
2203
|
+
status,
|
|
2204
|
+
totalPredicates,
|
|
2205
|
+
matchedPredicates,
|
|
2206
|
+
notMatchedPredicates,
|
|
2207
|
+
inconclusivePredicates,
|
|
2208
|
+
behaviorPending
|
|
2209
|
+
};
|
|
2210
|
+
}
|
|
2211
|
+
function serializeFindingSourceVerification(value) {
|
|
2212
|
+
const usable = parseFindingSourceVerification(value);
|
|
2213
|
+
return usable ? JSON.stringify(usable) : null;
|
|
2214
|
+
}
|
|
2172
2215
|
function serializeFindingVerificationResult(value) {
|
|
2173
2216
|
const usable = parseFindingVerificationResult(value);
|
|
2174
2217
|
return usable ? JSON.stringify(usable) : null;
|
|
@@ -2182,9 +2225,11 @@ function restoreFindingReviewFields(row) {
|
|
|
2182
2225
|
return {};
|
|
2183
2226
|
const verificationResult = parseFindingVerificationResult(row.verificationResult);
|
|
2184
2227
|
const reviewAnnotation = parseFindingReviewAnnotation(row.reviewAnnotation);
|
|
2228
|
+
const sourceVerification = parseFindingSourceVerification(row.sourceVerification);
|
|
2185
2229
|
return {
|
|
2186
2230
|
...verificationResult ? { verification_result: verificationResult } : {},
|
|
2187
|
-
...reviewAnnotation ? { reviewAnnotation } : {}
|
|
2231
|
+
...reviewAnnotation ? { reviewAnnotation } : {},
|
|
2232
|
+
...sourceVerification ? { sourceVerification } : {}
|
|
2188
2233
|
};
|
|
2189
2234
|
}
|
|
2190
2235
|
function deriveEvidenceFromPocSteps(finding) {
|
|
@@ -2278,6 +2323,7 @@ CREATE TABLE IF NOT EXISTS findings (
|
|
|
2278
2323
|
findingRank INTEGER,
|
|
2279
2324
|
verificationResult TEXT,
|
|
2280
2325
|
reviewAnnotation TEXT,
|
|
2326
|
+
sourceVerification TEXT,
|
|
2281
2327
|
timestamp INTEGER NOT NULL
|
|
2282
2328
|
);
|
|
2283
2329
|
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __0CreateRequire } from "node:module";
|
|
3
3
|
const require = __0CreateRequire(import.meta.url);
|
|
4
|
-
import {
|
|
5
|
-
eventBus,
|
|
6
|
-
isCloudEventSinkActive
|
|
7
|
-
} from "./chunk-CXKDWFNO.js";
|
|
8
4
|
|
|
9
5
|
// packages/core/dist/runtime/process.js
|
|
10
6
|
import { spawn } from "node:child_process";
|
|
@@ -76,21 +72,6 @@ function buildOsecMcpCommandArgs(context) {
|
|
|
76
72
|
}
|
|
77
73
|
return args;
|
|
78
74
|
}
|
|
79
|
-
function numericField(obj, key) {
|
|
80
|
-
const v = obj[key];
|
|
81
|
-
if (typeof v === "number" && Number.isFinite(v))
|
|
82
|
-
return v;
|
|
83
|
-
if (typeof v === "string" && /^\d+$/.test(v))
|
|
84
|
-
return Number(v);
|
|
85
|
-
return void 0;
|
|
86
|
-
}
|
|
87
|
-
function safeJsonStringify(v) {
|
|
88
|
-
try {
|
|
89
|
-
return JSON.stringify(v) ?? "";
|
|
90
|
-
} catch {
|
|
91
|
-
return "(unserialisable)";
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
75
|
function buildClaudeMcpConfig(context) {
|
|
95
76
|
return JSON.stringify({
|
|
96
77
|
mcpServers: {
|
|
@@ -124,180 +105,6 @@ var ProcessRuntime = class {
|
|
|
124
105
|
const args = this.buildArgs(prompt, context);
|
|
125
106
|
const env = this.buildEnv(context);
|
|
126
107
|
const onToolCall = this.config.onToolCall;
|
|
127
|
-
const scanId = context?.scanId;
|
|
128
|
-
const emitScanEvents = this.type === "codex" && isCloudEventSinkActive();
|
|
129
|
-
const maxTurnsHint = 40;
|
|
130
|
-
let turnNumber = 0;
|
|
131
|
-
let toolCallSeq = 0;
|
|
132
|
-
let deltaSeq = 0;
|
|
133
|
-
let turnStartedAt = 0;
|
|
134
|
-
const toolCallStartedAt = /* @__PURE__ */ new Map();
|
|
135
|
-
const seenSequenceNumbers = /* @__PURE__ */ new Set();
|
|
136
|
-
const isSeenSequence = (event) => {
|
|
137
|
-
const seq = event.sequence_number;
|
|
138
|
-
if (typeof seq !== "number" && typeof seq !== "string")
|
|
139
|
-
return false;
|
|
140
|
-
const key = `${event.type ?? "?"}|${seq}`;
|
|
141
|
-
if (seenSequenceNumbers.has(key))
|
|
142
|
-
return true;
|
|
143
|
-
seenSequenceNumbers.add(key);
|
|
144
|
-
return false;
|
|
145
|
-
};
|
|
146
|
-
const emitCodexCloudEvents = (event) => {
|
|
147
|
-
if (isSeenSequence(event))
|
|
148
|
-
return;
|
|
149
|
-
const eventType = typeof event.type === "string" ? event.type : "";
|
|
150
|
-
switch (eventType) {
|
|
151
|
-
case "thread.started": {
|
|
152
|
-
eventBus.emit("llm_planner_invoked", {
|
|
153
|
-
turn: 0,
|
|
154
|
-
model: this.config.model,
|
|
155
|
-
role: "attack"
|
|
156
|
-
});
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
case "turn.started": {
|
|
160
|
-
turnNumber += 1;
|
|
161
|
-
turnStartedAt = Date.now();
|
|
162
|
-
deltaSeq = 0;
|
|
163
|
-
eventBus.emit("agent_turn_started", {
|
|
164
|
-
turn: turnNumber,
|
|
165
|
-
max_turns: maxTurnsHint,
|
|
166
|
-
role: "attack"
|
|
167
|
-
});
|
|
168
|
-
eventBus.emit("llm_planner_invoked", {
|
|
169
|
-
turn: turnNumber,
|
|
170
|
-
model: this.config.model,
|
|
171
|
-
role: "attack"
|
|
172
|
-
});
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
175
|
-
case "turn.completed": {
|
|
176
|
-
const usage = event.usage ?? {};
|
|
177
|
-
const inputTokens = numericField(usage, "input_tokens");
|
|
178
|
-
const cachedInputTokens = numericField(usage, "cached_input_tokens");
|
|
179
|
-
const outputTokens = numericField(usage, "output_tokens");
|
|
180
|
-
const reasoningTokens = numericField(usage, "reasoning_output_tokens");
|
|
181
|
-
const durationMs = turnStartedAt > 0 ? Date.now() - turnStartedAt : 0;
|
|
182
|
-
eventBus.emit("agent_turn_completed", {
|
|
183
|
-
turn: turnNumber,
|
|
184
|
-
duration_ms: durationMs,
|
|
185
|
-
reason: "continue",
|
|
186
|
-
role: "attack"
|
|
187
|
-
});
|
|
188
|
-
eventBus.emit("cost_update", {
|
|
189
|
-
turn: turnNumber,
|
|
190
|
-
cost_usd: 0,
|
|
191
|
-
input_tokens: inputTokens,
|
|
192
|
-
output_tokens: outputTokens,
|
|
193
|
-
token_input: inputTokens,
|
|
194
|
-
token_output: outputTokens,
|
|
195
|
-
cached_input_tokens: cachedInputTokens,
|
|
196
|
-
reasoning_output_tokens: reasoningTokens
|
|
197
|
-
});
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
case "item.started": {
|
|
201
|
-
const item = event.item ?? {};
|
|
202
|
-
const itemType = typeof item.type === "string" ? item.type : "";
|
|
203
|
-
if (itemType === "command_execution" && typeof item.command === "string") {
|
|
204
|
-
toolCallSeq += 1;
|
|
205
|
-
toolCallStartedAt.set(toolCallSeq, Date.now());
|
|
206
|
-
eventBus.emit("tool_call_started", {
|
|
207
|
-
tool: "shell",
|
|
208
|
-
turn: turnNumber,
|
|
209
|
-
args_preview: item.command.slice(0, 200),
|
|
210
|
-
ts: Date.now()
|
|
211
|
-
});
|
|
212
|
-
} else if (itemType === "mcp_tool_call") {
|
|
213
|
-
toolCallSeq += 1;
|
|
214
|
-
toolCallStartedAt.set(toolCallSeq, Date.now());
|
|
215
|
-
const server = typeof item.server === "string" ? item.server : "?";
|
|
216
|
-
const tool = typeof item.tool === "string" ? item.tool : "?";
|
|
217
|
-
const argsRaw = item.arguments ?? {};
|
|
218
|
-
const argsPreview = typeof argsRaw === "string" ? argsRaw : safeJsonStringify(argsRaw);
|
|
219
|
-
eventBus.emit("tool_call_started", {
|
|
220
|
-
tool: `${server}__${tool}`,
|
|
221
|
-
turn: turnNumber,
|
|
222
|
-
args_preview: argsPreview.slice(0, 200),
|
|
223
|
-
ts: Date.now()
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
return;
|
|
227
|
-
}
|
|
228
|
-
case "item.completed": {
|
|
229
|
-
const item = event.item ?? {};
|
|
230
|
-
const itemType = typeof item.type === "string" ? item.type : "";
|
|
231
|
-
if (itemType === "command_execution") {
|
|
232
|
-
const startedAt = toolCallStartedAt.get(toolCallSeq);
|
|
233
|
-
const durationMs = startedAt != null ? Date.now() - startedAt : 0;
|
|
234
|
-
toolCallStartedAt.delete(toolCallSeq);
|
|
235
|
-
eventBus.emit("tool_call_completed", {
|
|
236
|
-
tool: "shell",
|
|
237
|
-
turn: turnNumber,
|
|
238
|
-
duration_ms: durationMs,
|
|
239
|
-
status: "ok",
|
|
240
|
-
ts: Date.now()
|
|
241
|
-
});
|
|
242
|
-
} else if (itemType === "mcp_tool_call") {
|
|
243
|
-
const startedAt = toolCallStartedAt.get(toolCallSeq);
|
|
244
|
-
const durationMs = startedAt != null ? Date.now() - startedAt : 0;
|
|
245
|
-
toolCallStartedAt.delete(toolCallSeq);
|
|
246
|
-
const server = typeof item.server === "string" ? item.server : "?";
|
|
247
|
-
const tool = typeof item.tool === "string" ? item.tool : "?";
|
|
248
|
-
const status = item.status === "success" || item.status === "completed" ? "ok" : "error";
|
|
249
|
-
const errorMsg = status === "error" ? typeof item.error === "string" ? item.error : safeJsonStringify(item.error ?? null) : void 0;
|
|
250
|
-
eventBus.emit("tool_call_completed", {
|
|
251
|
-
tool: `${server}__${tool}`,
|
|
252
|
-
turn: turnNumber,
|
|
253
|
-
duration_ms: durationMs,
|
|
254
|
-
status,
|
|
255
|
-
...errorMsg ? { error: errorMsg.slice(0, 400) } : {},
|
|
256
|
-
ts: Date.now()
|
|
257
|
-
});
|
|
258
|
-
} else if (itemType === "function_call" || itemType === "tool_call") {
|
|
259
|
-
toolCallSeq += 1;
|
|
260
|
-
const toolName = typeof item.tool_name === "string" && item.tool_name || typeof item.name === "string" && item.name || "mcp_tool";
|
|
261
|
-
const argsField = item.arguments ?? item.input ?? "";
|
|
262
|
-
const detail = typeof argsField === "string" ? argsField : safeJsonStringify(argsField);
|
|
263
|
-
eventBus.emit("tool_call_started", {
|
|
264
|
-
tool: toolName,
|
|
265
|
-
turn: turnNumber,
|
|
266
|
-
args_preview: detail.slice(0, 200),
|
|
267
|
-
ts: Date.now()
|
|
268
|
-
});
|
|
269
|
-
eventBus.emit("tool_call_completed", {
|
|
270
|
-
tool: toolName,
|
|
271
|
-
turn: turnNumber,
|
|
272
|
-
duration_ms: 0,
|
|
273
|
-
status: "ok",
|
|
274
|
-
ts: Date.now()
|
|
275
|
-
});
|
|
276
|
-
} else if (itemType === "reasoning") {
|
|
277
|
-
const reasoningText = typeof item.text === "string" && item.text || typeof item.summary === "string" && item.summary || "";
|
|
278
|
-
if (reasoningText.length > 0) {
|
|
279
|
-
eventBus.emit("reasoning_summary", {
|
|
280
|
-
turn: turnNumber,
|
|
281
|
-
summary: reasoningText.slice(0, 2e3)
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
} else if (itemType === "agent_message") {
|
|
285
|
-
const messageText = typeof item.text === "string" ? item.text : "";
|
|
286
|
-
if (messageText.length > 0) {
|
|
287
|
-
deltaSeq += 1;
|
|
288
|
-
eventBus.emit("delta", {
|
|
289
|
-
turn: turnNumber,
|
|
290
|
-
scope: "assistant_response",
|
|
291
|
-
text: messageText.slice(0, 2e3),
|
|
292
|
-
seq: deltaSeq,
|
|
293
|
-
role: "attack"
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
};
|
|
301
108
|
return new Promise((resolve2) => {
|
|
302
109
|
let stdout = "";
|
|
303
110
|
let stderr = "";
|
|
@@ -352,8 +159,6 @@ var ProcessRuntime = class {
|
|
|
352
159
|
} else if (event.item.type === "command_execution" && event.item.command) {
|
|
353
160
|
}
|
|
354
161
|
}
|
|
355
|
-
if (emitScanEvents)
|
|
356
|
-
emitCodexCloudEvents(event);
|
|
357
162
|
} catch {
|
|
358
163
|
}
|
|
359
164
|
}
|
|
@@ -3,7 +3,7 @@ import { createRequire as __0CreateRequire } from "node:module";
|
|
|
3
3
|
const require = __0CreateRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
homeStateDir
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-76KSBWOQ.js";
|
|
7
7
|
|
|
8
8
|
// packages/core/dist/triage/kernel-vm-runner.js
|
|
9
9
|
import { execFileSync, spawn } from "node:child_process";
|