@socketsecurity/lib 5.28.0 → 6.0.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.
Files changed (1042) hide show
  1. package/CHANGELOG.md +64 -37
  2. package/README.md +1 -1
  3. package/dist/abort/signal.d.ts +28 -0
  4. package/dist/{abort.js → abort/signal.js} +12 -10
  5. package/dist/ai/discover.d.mts +50 -0
  6. package/dist/ai/discover.js +128 -0
  7. package/dist/ai/profiles.d.mts +39 -0
  8. package/dist/ai/profiles.js +61 -0
  9. package/dist/ai/spawn.d.mts +49 -0
  10. package/dist/ai/spawn.js +207 -0
  11. package/dist/ai/types.d.mts +117 -0
  12. package/dist/ai/types.js +18 -0
  13. package/dist/ai/worktree.d.mts +104 -0
  14. package/dist/ai/worktree.js +200 -0
  15. package/dist/ansi/constants.d.ts +10 -0
  16. package/dist/ansi/constants.js +45 -0
  17. package/dist/ansi/strip.d.ts +33 -0
  18. package/dist/{ansi.js → ansi/strip.js} +7 -24
  19. package/dist/archives/_internal.d.ts +39 -0
  20. package/dist/archives/_internal.js +87 -0
  21. package/dist/archives/detect.d.ts +19 -0
  22. package/dist/archives/detect.js +46 -0
  23. package/dist/archives/extract.d.ts +22 -0
  24. package/dist/archives/extract.js +53 -0
  25. package/dist/archives/tar.d.ts +42 -0
  26. package/dist/archives/tar.js +233 -0
  27. package/dist/archives/types.d.ts +34 -0
  28. package/dist/archives/types.js +18 -0
  29. package/dist/archives/zip.d.ts +20 -0
  30. package/dist/archives/zip.js +124 -0
  31. package/dist/argv/flag-predicates.d.ts +179 -0
  32. package/dist/argv/flag-predicates.js +118 -0
  33. package/dist/argv/flag-types.d.ts +123 -0
  34. package/dist/argv/flag-types.js +116 -0
  35. package/dist/argv/parse.d.ts +34 -33
  36. package/dist/argv/parse.js +6 -4
  37. package/dist/arrays/_internal.d.ts +43 -0
  38. package/dist/{arrays.js → arrays/_internal.js} +8 -41
  39. package/dist/arrays/chunk.d.ts +37 -0
  40. package/dist/arrays/chunk.js +43 -0
  41. package/dist/arrays/join.d.ts +76 -0
  42. package/dist/{env/helpers.js → arrays/join.js} +12 -18
  43. package/dist/arrays/predicates.d.ts +40 -0
  44. package/dist/arrays/predicates.js +30 -0
  45. package/dist/arrays/unique.d.ts +36 -0
  46. package/dist/arrays/unique.js +34 -0
  47. package/dist/bin/_internal.d.ts +22 -0
  48. package/dist/bin/_internal.js +43 -0
  49. package/dist/bin/check-primordials.d.ts +41 -15
  50. package/dist/bin/check-primordials.js +36 -20
  51. package/dist/bin/check.d.ts +7 -12
  52. package/dist/bin/check.js +5 -1
  53. package/dist/bin/exec.d.ts +37 -0
  54. package/dist/bin/exec.js +79 -0
  55. package/dist/bin/find.d.ts +58 -0
  56. package/dist/bin/find.js +143 -0
  57. package/dist/bin/resolve.d.ts +30 -0
  58. package/dist/bin/resolve.js +249 -0
  59. package/dist/bin/shadow.d.ts +16 -0
  60. package/dist/bin/shadow.js +36 -0
  61. package/dist/bin/socket-lib.d.ts +10 -14
  62. package/dist/bin/socket-lib.js +18 -3
  63. package/dist/bin/types.d.ts +34 -0
  64. package/dist/bin/types.js +18 -0
  65. package/dist/bin/which.d.ts +111 -0
  66. package/dist/bin/which.js +155 -0
  67. package/dist/cacache/_internal.d.ts +15 -0
  68. package/dist/cacache/_internal.js +43 -0
  69. package/dist/cacache/clear.d.ts +43 -0
  70. package/dist/cacache/clear.js +77 -0
  71. package/dist/cacache/read.d.ts +31 -0
  72. package/dist/cacache/read.js +51 -0
  73. package/dist/cacache/tmp.d.ts +18 -0
  74. package/dist/cacache/tmp.js +39 -0
  75. package/dist/cacache/types.d.ts +37 -0
  76. package/dist/cacache/types.js +18 -0
  77. package/dist/cacache/write.d.ts +31 -0
  78. package/dist/cacache/write.js +53 -0
  79. package/dist/checks/primordials.d.ts +69 -61
  80. package/dist/checks/primordials.js +141 -92
  81. package/dist/colors/convert.d.ts +35 -0
  82. package/dist/colors/convert.js +42 -0
  83. package/dist/colors/palette.d.ts +7 -0
  84. package/dist/{colors.js → colors/palette.js} +5 -17
  85. package/dist/colors/types.d.ts +29 -0
  86. package/dist/colors/types.js +18 -0
  87. package/dist/compression/_internal.d.ts +33 -0
  88. package/dist/compression/_internal.js +77 -0
  89. package/dist/compression/brotli.d.ts +82 -0
  90. package/dist/{compression.js → compression/brotli.js} +17 -145
  91. package/dist/compression/gzip.d.ts +70 -0
  92. package/dist/compression/gzip.js +142 -0
  93. package/dist/compression/types.d.ts +37 -0
  94. package/dist/compression/types.js +18 -0
  95. package/dist/constants/agents.d.ts +4 -3
  96. package/dist/constants/agents.js +7 -4
  97. package/dist/constants/encoding.d.ts +3 -3
  98. package/dist/constants/github.d.ts +2 -3
  99. package/dist/constants/licenses.d.ts +5 -5
  100. package/dist/constants/licenses.js +2 -2
  101. package/dist/constants/lifecycle-script-names.d.ts +3 -4
  102. package/dist/constants/lifecycle-script-names.js +2 -2
  103. package/dist/constants/maintained-node-versions.d.ts +1 -1
  104. package/dist/constants/maintained-node-versions.js +3 -4
  105. package/dist/constants/node.d.ts +21 -20
  106. package/dist/constants/node.js +4 -4
  107. package/dist/constants/package-default-node-range.d.ts +1 -1
  108. package/dist/constants/package-default-socket-categories.d.ts +1 -1
  109. package/dist/constants/package-default-socket-categories.js +2 -2
  110. package/dist/constants/packages.d.ts +4 -4
  111. package/dist/constants/packages.js +7 -5
  112. package/dist/constants/platform.d.ts +3 -1
  113. package/dist/constants/platform.js +3 -10
  114. package/dist/constants/{core.d.ts → sentinels.d.ts} +4 -4
  115. package/dist/constants/{core.js → sentinels.js} +3 -3
  116. package/dist/constants/socket.d.ts +4 -6
  117. package/dist/constants/socket.js +6 -9
  118. package/dist/constants/testing.d.ts +3 -3
  119. package/dist/constants/time.d.ts +3 -3
  120. package/dist/constants/typescript.d.ts +3 -3
  121. package/dist/cover/code.d.ts +11 -3
  122. package/dist/cover/code.js +26 -36
  123. package/dist/cover/formatters.d.ts +19 -15
  124. package/dist/cover/formatters.js +21 -18
  125. package/dist/cover/type.d.ts +4 -3
  126. package/dist/cover/type.js +9 -8
  127. package/dist/cover/types.d.ts +1 -1
  128. package/dist/crypto/hash.d.ts +36 -0
  129. package/dist/{crypto.js → crypto/hash.js} +17 -17
  130. package/dist/debug/_internal.d.ts +25 -0
  131. package/dist/debug/_internal.js +77 -0
  132. package/dist/debug/caller-info.d.ts +12 -0
  133. package/dist/debug/caller-info.js +67 -0
  134. package/dist/debug/namespace.d.ts +35 -0
  135. package/dist/debug/namespace.js +101 -0
  136. package/dist/{debug.d.ts → debug/output.d.ts} +23 -42
  137. package/dist/debug/output.js +209 -0
  138. package/dist/debug/types.d.ts +21 -0
  139. package/dist/debug/types.js +18 -0
  140. package/dist/dlx/_internal.d.ts +10 -0
  141. package/dist/dlx/_internal.js +47 -0
  142. package/dist/dlx/arborist.d.ts +86 -61
  143. package/dist/dlx/arborist.js +30 -35
  144. package/dist/dlx/binary-cache.d.ts +108 -0
  145. package/dist/dlx/binary-cache.js +212 -0
  146. package/dist/dlx/binary-download.d.ts +67 -0
  147. package/dist/dlx/binary-download.js +216 -0
  148. package/dist/dlx/binary-resolution.d.ts +61 -0
  149. package/dist/dlx/binary-resolution.js +164 -0
  150. package/dist/dlx/binary-types.d.ts +144 -0
  151. package/dist/dlx/binary-types.js +18 -0
  152. package/dist/dlx/binary.d.ts +39 -268
  153. package/dist/dlx/binary.js +38 -319
  154. package/dist/dlx/cache.d.ts +21 -16
  155. package/dist/dlx/cache.js +2 -2
  156. package/dist/dlx/detect.d.ts +94 -68
  157. package/dist/dlx/detect.js +32 -35
  158. package/dist/dlx/dir.d.ts +20 -18
  159. package/dist/dlx/dir.js +7 -14
  160. package/dist/dlx/firewall.d.ts +27 -0
  161. package/dist/dlx/firewall.js +107 -0
  162. package/dist/dlx/lockfile.d.ts +73 -56
  163. package/dist/dlx/lockfile.js +36 -44
  164. package/dist/dlx/manifest.d.ts +50 -51
  165. package/dist/dlx/manifest.js +51 -52
  166. package/dist/dlx/package.d.ts +83 -279
  167. package/dist/dlx/package.js +44 -266
  168. package/dist/dlx/packages.d.ts +22 -20
  169. package/dist/dlx/packages.js +15 -20
  170. package/dist/dlx/paths.d.ts +26 -23
  171. package/dist/dlx/paths.js +8 -15
  172. package/dist/dlx/spec.d.ts +25 -0
  173. package/dist/dlx/spec.js +63 -0
  174. package/dist/dlx/types.d.ts +142 -0
  175. package/dist/dlx/types.js +18 -0
  176. package/dist/eco/cargo/lockfile-format.d.ts +8 -0
  177. package/dist/eco/cargo/lockfile-format.js +39 -0
  178. package/dist/eco/cargo/manifest-format.d.ts +7 -0
  179. package/dist/eco/cargo/manifest-format.js +38 -0
  180. package/dist/eco/cargo/parse-lockfile.d.ts +84 -0
  181. package/dist/eco/cargo/parse-lockfile.js +257 -0
  182. package/dist/eco/manifest/analyze-lockfile.d.ts +10 -0
  183. package/dist/eco/manifest/analyze-lockfile.js +67 -0
  184. package/dist/eco/manifest/detect-format.d.ts +15 -0
  185. package/dist/eco/manifest/detect-format.js +98 -0
  186. package/dist/eco/manifest/find-packages.d.ts +14 -0
  187. package/dist/eco/manifest/find-packages.js +69 -0
  188. package/dist/eco/manifest/get-package-versions.d.ts +8 -0
  189. package/dist/eco/manifest/get-package-versions.js +52 -0
  190. package/dist/eco/manifest/get-package.d.ts +10 -0
  191. package/dist/eco/manifest/get-package.js +44 -0
  192. package/dist/eco/manifest/manifest-error.d.ts +18 -0
  193. package/dist/eco/manifest/manifest-error.js +37 -0
  194. package/dist/eco/manifest/parse-lockfile.d.ts +16 -0
  195. package/dist/eco/manifest/parse-lockfile.js +91 -0
  196. package/dist/eco/manifest/parse-manifest.d.ts +12 -0
  197. package/dist/eco/manifest/parse-manifest.js +48 -0
  198. package/dist/eco/manifest/parse.d.ts +9 -0
  199. package/dist/eco/manifest/parse.js +52 -0
  200. package/dist/eco/manifest/types.d.ts +10 -0
  201. package/dist/eco/manifest/types.js +18 -0
  202. package/dist/eco/npm/bun/exec.d.ts +15 -0
  203. package/dist/eco/npm/bun/exec.js +35 -0
  204. package/dist/eco/npm/manifest-format.d.ts +11 -0
  205. package/dist/eco/npm/manifest-format.js +38 -0
  206. package/dist/eco/npm/npm/exec.d.ts +24 -0
  207. package/dist/eco/npm/npm/exec.js +64 -0
  208. package/dist/eco/npm/npm/extract-package-name-from-path.d.ts +9 -0
  209. package/dist/eco/npm/npm/extract-package-name-from-path.js +54 -0
  210. package/dist/eco/npm/npm/flags.d.ts +62 -0
  211. package/dist/eco/npm/npm/flags.js +63 -0
  212. package/dist/eco/npm/npm/lockfile-format.d.ts +9 -0
  213. package/dist/eco/npm/npm/lockfile-format.js +42 -0
  214. package/dist/eco/npm/npm/parse-git-url.d.ts +13 -0
  215. package/dist/eco/npm/npm/parse-git-url.js +43 -0
  216. package/dist/eco/npm/npm/parse-lockfile.d.ts +70 -0
  217. package/dist/eco/npm/npm/parse-lockfile.js +224 -0
  218. package/dist/eco/npm/parse-package-json.d.ts +16 -0
  219. package/dist/eco/npm/parse-package-json.js +115 -0
  220. package/dist/eco/npm/pnpm/detect-pnpm-version.d.ts +7 -0
  221. package/dist/eco/npm/pnpm/detect-pnpm-version.js +47 -0
  222. package/dist/eco/npm/pnpm/exec.d.ts +26 -0
  223. package/dist/eco/npm/pnpm/exec.js +65 -0
  224. package/dist/eco/npm/pnpm/flags.d.ts +44 -0
  225. package/dist/eco/npm/pnpm/flags.js +76 -0
  226. package/dist/eco/npm/pnpm/lockfile-format.d.ts +8 -0
  227. package/dist/eco/npm/pnpm/lockfile-format.js +39 -0
  228. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +69 -0
  229. package/dist/eco/npm/pnpm/parse-lockfile.js +274 -0
  230. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.d.ts +15 -0
  231. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +50 -0
  232. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.d.ts +11 -0
  233. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +52 -0
  234. package/dist/eco/npm/script.d.ts +35 -0
  235. package/dist/eco/npm/script.js +93 -0
  236. package/dist/eco/npm/vlt/exec.d.ts +16 -0
  237. package/dist/eco/npm/vlt/exec.js +35 -0
  238. package/dist/eco/npm/yarnpkg/yarn/exec.d.ts +28 -0
  239. package/dist/eco/npm/yarnpkg/yarn/exec.js +63 -0
  240. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.d.ts +9 -0
  241. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +39 -0
  242. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +61 -0
  243. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +261 -0
  244. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.d.ts +16 -0
  245. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +68 -0
  246. package/dist/{types.d.ts → eco/purl.d.ts} +14 -26
  247. package/dist/{types.js → eco/purl.js} +3 -3
  248. package/dist/eco/types.d.ts +51 -0
  249. package/dist/eco/types.js +18 -0
  250. package/dist/effects/pulse-frames.d.ts +16 -17
  251. package/dist/effects/pulse-frames.js +4 -4
  252. package/dist/effects/shimmer-keyframes.d.ts +39 -37
  253. package/dist/effects/shimmer-terminal.d.ts +43 -42
  254. package/dist/effects/shimmer-terminal.js +3 -3
  255. package/dist/effects/shimmer.d.ts +172 -153
  256. package/dist/effects/shimmer.js +78 -76
  257. package/dist/env/boolean.d.ts +33 -0
  258. package/dist/env/boolean.js +46 -0
  259. package/dist/env/case-insensitive.d.ts +42 -0
  260. package/dist/env/case-insensitive.js +42 -0
  261. package/dist/env/ci.d.ts +11 -12
  262. package/dist/env/debug.d.ts +10 -10
  263. package/dist/env/github.d.ts +71 -74
  264. package/dist/env/home.d.ts +15 -14
  265. package/dist/env/locale.d.ts +26 -29
  266. package/dist/env/node-auth-token.d.ts +10 -10
  267. package/dist/env/node-env.d.ts +10 -10
  268. package/dist/env/npm.d.ts +45 -47
  269. package/dist/env/number.d.ts +29 -0
  270. package/dist/env/number.js +54 -0
  271. package/dist/env/package-manager.d.ts +36 -33
  272. package/dist/env/package-manager.js +3 -3
  273. package/dist/env/path.d.ts +10 -10
  274. package/dist/env/pre-commit.d.ts +11 -11
  275. package/dist/env/pre-commit.js +2 -2
  276. package/dist/env/proxy.d.ts +44 -0
  277. package/dist/env/proxy.js +126 -0
  278. package/dist/env/rewire.d.ts +105 -99
  279. package/dist/env/rewire.js +11 -8
  280. package/dist/env/shell.d.ts +10 -10
  281. package/dist/env/socket-cli.d.ts +109 -125
  282. package/dist/env/socket-cli.js +7 -12
  283. package/dist/env/socket.d.ts +347 -130
  284. package/dist/env/socket.js +107 -8
  285. package/dist/env/string.d.ts +28 -0
  286. package/dist/env/string.js +47 -0
  287. package/dist/env/temp-dir.d.ts +26 -29
  288. package/dist/env/term.d.ts +10 -10
  289. package/dist/env/test.d.ts +29 -31
  290. package/dist/env/test.js +5 -4
  291. package/dist/env/types.d.ts +62 -0
  292. package/dist/env/types.js +18 -0
  293. package/dist/env/windows.d.ts +37 -38
  294. package/dist/env/xdg.d.ts +29 -29
  295. package/dist/errors/message.d.ts +27 -0
  296. package/dist/errors/message.js +49 -0
  297. package/dist/errors/predicates.d.ts +46 -0
  298. package/dist/{errors.js → errors/predicates.js} +13 -43
  299. package/dist/errors/stack.d.ts +16 -0
  300. package/dist/errors/stack.js +39 -0
  301. package/dist/external/@npmcli/package-json/lib/read-package.js +11 -1
  302. package/dist/external/@npmcli/package-json.js +300 -82
  303. package/dist/external/@npmcli/promise-spawn.js +15 -1
  304. package/dist/external/@socketregistry/packageurl-js.js +7 -1
  305. package/dist/external/@socketregistry/yocto-spinner.js +5 -1
  306. package/dist/external/@yarnpkg/extensions.js +1 -1
  307. package/dist/external/adm-zip.js +20 -4
  308. package/dist/external/debug.js +15 -1
  309. package/dist/external/external-pack.js +20 -4
  310. package/dist/external/fast-sort.js +3 -1
  311. package/dist/external/get-east-asian-width.js +3 -1
  312. package/dist/external/libnpmexec.js +5 -1
  313. package/dist/external/npm-pack.js +344 -113
  314. package/dist/external/p-map.js +7 -1
  315. package/dist/external/pico-pack.js +17 -1
  316. package/dist/external/pony-cause.js +1 -1
  317. package/dist/external/spdx-pack.js +3 -1
  318. package/dist/external/supports-color.js +1 -1
  319. package/dist/external/tar-fs.js +15 -1
  320. package/dist/external/which.js +11 -1
  321. package/dist/external/yargs-parser.js +15 -1
  322. package/dist/external-tools/bazel/asset-names.d.ts +66 -0
  323. package/dist/external-tools/bazel/asset-names.js +96 -0
  324. package/dist/external-tools/bazel/from-download.d.ts +49 -0
  325. package/dist/external-tools/bazel/from-download.js +49 -0
  326. package/dist/external-tools/bazel/from-path.d.ts +8 -0
  327. package/dist/external-tools/bazel/from-path.js +41 -0
  328. package/dist/external-tools/bazel/read-bazel-version-file.d.ts +12 -0
  329. package/dist/external-tools/bazel/read-bazel-version-file.js +61 -0
  330. package/dist/external-tools/bazel/resolve-asset-url.d.ts +14 -0
  331. package/dist/external-tools/bazel/resolve-asset-url.js +42 -0
  332. package/dist/external-tools/bazel/resolve-bazel-version.d.ts +19 -0
  333. package/dist/external-tools/bazel/resolve-bazel-version.js +59 -0
  334. package/dist/external-tools/bazel/resolve.d.ts +35 -0
  335. package/dist/external-tools/bazel/resolve.js +68 -0
  336. package/dist/external-tools/bazel/types.d.ts +22 -0
  337. package/dist/external-tools/bazel/types.js +18 -0
  338. package/dist/external-tools/cdxgen/asset-names.d.ts +58 -0
  339. package/dist/external-tools/cdxgen/asset-names.js +79 -0
  340. package/dist/external-tools/cdxgen/from-download.d.ts +43 -0
  341. package/dist/external-tools/cdxgen/from-download.js +83 -0
  342. package/dist/external-tools/cdxgen/from-path.d.ts +5 -0
  343. package/dist/external-tools/cdxgen/from-path.js +40 -0
  344. package/dist/external-tools/cdxgen/from-vfs.d.ts +7 -0
  345. package/dist/external-tools/cdxgen/from-vfs.js +47 -0
  346. package/dist/external-tools/cdxgen/resolve.d.ts +32 -0
  347. package/dist/external-tools/cdxgen/resolve.js +73 -0
  348. package/dist/external-tools/cdxgen/types.d.ts +33 -0
  349. package/dist/external-tools/cdxgen/types.js +18 -0
  350. package/dist/external-tools/from-download.d.ts +162 -0
  351. package/dist/external-tools/from-download.js +72 -0
  352. package/dist/external-tools/janus/asset-names.d.ts +36 -0
  353. package/dist/external-tools/janus/asset-names.js +52 -0
  354. package/dist/external-tools/janus/from-download.d.ts +26 -0
  355. package/dist/external-tools/janus/from-download.js +65 -0
  356. package/dist/external-tools/janus/from-path.d.ts +5 -0
  357. package/dist/external-tools/janus/from-path.js +40 -0
  358. package/dist/external-tools/janus/from-vfs.d.ts +7 -0
  359. package/dist/external-tools/janus/from-vfs.js +47 -0
  360. package/dist/external-tools/janus/resolve.d.ts +28 -0
  361. package/dist/external-tools/janus/resolve.js +73 -0
  362. package/dist/external-tools/janus/types.d.ts +24 -0
  363. package/dist/external-tools/janus/types.js +18 -0
  364. package/dist/external-tools/jre/asset-names.d.ts +91 -0
  365. package/dist/external-tools/jre/asset-names.js +88 -0
  366. package/dist/external-tools/jre/detect-platform-arch.d.ts +8 -0
  367. package/dist/external-tools/jre/detect-platform-arch.js +52 -0
  368. package/dist/external-tools/jre/from-download.d.ts +62 -0
  369. package/dist/external-tools/jre/from-download.js +70 -0
  370. package/dist/external-tools/jre/from-java-home.d.ts +10 -0
  371. package/dist/external-tools/jre/from-java-home.js +57 -0
  372. package/dist/external-tools/jre/from-path.d.ts +9 -0
  373. package/dist/external-tools/jre/from-path.js +52 -0
  374. package/dist/external-tools/jre/from-vfs.d.ts +17 -0
  375. package/dist/external-tools/jre/from-vfs.js +64 -0
  376. package/dist/external-tools/jre/resolve.d.ts +40 -0
  377. package/dist/external-tools/jre/resolve.js +78 -0
  378. package/dist/external-tools/jre/types.d.ts +28 -0
  379. package/dist/external-tools/jre/types.js +18 -0
  380. package/dist/external-tools/manifest.d.ts +105 -0
  381. package/dist/external-tools/manifest.js +167 -0
  382. package/dist/external-tools/opengrep/asset-names.d.ts +44 -0
  383. package/dist/external-tools/opengrep/asset-names.js +78 -0
  384. package/dist/external-tools/opengrep/from-download.d.ts +17 -0
  385. package/dist/external-tools/opengrep/from-download.js +83 -0
  386. package/dist/external-tools/opengrep/from-path.d.ts +5 -0
  387. package/dist/external-tools/opengrep/from-path.js +40 -0
  388. package/dist/external-tools/opengrep/from-vfs.d.ts +8 -0
  389. package/dist/external-tools/opengrep/from-vfs.js +47 -0
  390. package/dist/external-tools/opengrep/resolve.d.ts +26 -0
  391. package/dist/external-tools/opengrep/resolve.js +73 -0
  392. package/dist/external-tools/opengrep/types.d.ts +24 -0
  393. package/dist/external-tools/opengrep/types.js +18 -0
  394. package/dist/external-tools/sbt/asset-names.d.ts +31 -0
  395. package/dist/external-tools/sbt/asset-names.js +33 -0
  396. package/dist/external-tools/sbt/from-download.d.ts +44 -0
  397. package/dist/external-tools/sbt/from-download.js +64 -0
  398. package/dist/external-tools/sbt/from-path.d.ts +8 -0
  399. package/dist/external-tools/sbt/from-path.js +41 -0
  400. package/dist/external-tools/sbt/from-vfs.d.ts +14 -0
  401. package/dist/external-tools/sbt/from-vfs.js +48 -0
  402. package/dist/external-tools/sbt/resolve.d.ts +31 -0
  403. package/dist/external-tools/sbt/resolve.js +73 -0
  404. package/dist/external-tools/sbt/types.d.ts +32 -0
  405. package/dist/external-tools/sbt/types.js +18 -0
  406. package/dist/external-tools/synp/asset-names.d.ts +14 -0
  407. package/dist/external-tools/synp/asset-names.js +32 -0
  408. package/dist/external-tools/synp/from-download.d.ts +18 -0
  409. package/dist/external-tools/synp/from-download.js +44 -0
  410. package/dist/external-tools/synp/from-path.d.ts +5 -0
  411. package/dist/external-tools/synp/from-path.js +40 -0
  412. package/dist/external-tools/synp/from-vfs.d.ts +7 -0
  413. package/dist/external-tools/synp/from-vfs.js +47 -0
  414. package/dist/external-tools/synp/resolve.d.ts +21 -0
  415. package/dist/external-tools/synp/resolve.js +72 -0
  416. package/dist/external-tools/synp/types.d.ts +19 -0
  417. package/dist/external-tools/synp/types.js +18 -0
  418. package/dist/external-tools/trivy/asset-names.d.ts +34 -0
  419. package/dist/external-tools/trivy/asset-names.js +68 -0
  420. package/dist/external-tools/trivy/from-download.d.ts +17 -0
  421. package/dist/external-tools/trivy/from-download.js +67 -0
  422. package/dist/external-tools/trivy/from-path.d.ts +5 -0
  423. package/dist/external-tools/trivy/from-path.js +40 -0
  424. package/dist/external-tools/trivy/from-vfs.d.ts +7 -0
  425. package/dist/external-tools/trivy/from-vfs.js +47 -0
  426. package/dist/external-tools/trivy/resolve.d.ts +26 -0
  427. package/dist/external-tools/trivy/resolve.js +73 -0
  428. package/dist/external-tools/trivy/types.d.ts +24 -0
  429. package/dist/external-tools/trivy/types.js +18 -0
  430. package/dist/external-tools/trufflehog/asset-names.d.ts +34 -0
  431. package/dist/external-tools/trufflehog/asset-names.js +72 -0
  432. package/dist/external-tools/trufflehog/from-download.d.ts +37 -0
  433. package/dist/external-tools/trufflehog/from-download.js +65 -0
  434. package/dist/external-tools/trufflehog/from-path.d.ts +7 -0
  435. package/dist/external-tools/trufflehog/from-path.js +40 -0
  436. package/dist/external-tools/trufflehog/from-vfs.d.ts +11 -0
  437. package/dist/external-tools/trufflehog/from-vfs.js +47 -0
  438. package/dist/external-tools/trufflehog/resolve.d.ts +30 -0
  439. package/dist/external-tools/trufflehog/resolve.js +73 -0
  440. package/dist/external-tools/trufflehog/types.d.ts +25 -0
  441. package/dist/external-tools/trufflehog/types.js +18 -0
  442. package/dist/external-tools/uv/asset-names.d.ts +36 -0
  443. package/dist/external-tools/uv/asset-names.js +80 -0
  444. package/dist/external-tools/uv/from-download.d.ts +17 -0
  445. package/dist/external-tools/uv/from-download.js +68 -0
  446. package/dist/external-tools/uv/from-path.d.ts +5 -0
  447. package/dist/external-tools/uv/from-path.js +40 -0
  448. package/dist/external-tools/uv/from-vfs.d.ts +7 -0
  449. package/dist/external-tools/uv/from-vfs.js +47 -0
  450. package/dist/external-tools/uv/resolve.d.ts +25 -0
  451. package/dist/external-tools/uv/resolve.js +73 -0
  452. package/dist/external-tools/uv/types.d.ts +24 -0
  453. package/dist/external-tools/uv/types.js +18 -0
  454. package/dist/fs/_internal.d.ts +22 -0
  455. package/dist/fs/_internal.js +48 -0
  456. package/dist/fs/encoding.d.ts +49 -0
  457. package/dist/fs/encoding.js +102 -0
  458. package/dist/fs/find-up.d.ts +58 -0
  459. package/dist/fs/find-up.js +152 -0
  460. package/dist/fs/inspect.d.ts +117 -0
  461. package/dist/fs/inspect.js +112 -0
  462. package/dist/fs/path-cache.d.ts +21 -0
  463. package/dist/fs/path-cache.js +35 -0
  464. package/dist/fs/read-dir.d.ts +66 -0
  465. package/dist/fs/read-dir.js +86 -0
  466. package/dist/fs/read-file.d.ts +150 -0
  467. package/dist/fs/read-file.js +131 -0
  468. package/dist/fs/read-json.d.ts +72 -0
  469. package/dist/fs/read-json.js +120 -0
  470. package/dist/fs/safe.d.ts +153 -0
  471. package/dist/fs/safe.js +182 -0
  472. package/dist/fs/types.d.ts +277 -0
  473. package/dist/fs/types.js +18 -0
  474. package/dist/fs/unique.d.ts +29 -0
  475. package/dist/fs/unique.js +51 -0
  476. package/dist/fs/validate.d.ts +40 -0
  477. package/dist/fs/validate.js +46 -0
  478. package/dist/fs/write-json.d.ts +78 -0
  479. package/dist/fs/write-json.js +83 -0
  480. package/dist/git/_internal.d.ts +105 -0
  481. package/dist/git/_internal.js +236 -0
  482. package/dist/git/changed.d.ts +145 -0
  483. package/dist/git/changed.js +83 -0
  484. package/dist/git/repo.d.ts +62 -0
  485. package/dist/git/repo.js +111 -0
  486. package/dist/git/staged.d.ts +138 -0
  487. package/dist/git/staged.js +71 -0
  488. package/dist/git/types.d.ts +109 -0
  489. package/dist/git/types.js +18 -0
  490. package/dist/git/unstaged.d.ts +141 -0
  491. package/dist/git/unstaged.js +71 -0
  492. package/dist/github/constants.d.ts +18 -0
  493. package/dist/github/constants.js +36 -0
  494. package/dist/github/errors.d.ts +36 -0
  495. package/dist/github/errors.js +40 -0
  496. package/dist/github/fetch.d.ts +89 -0
  497. package/dist/github/fetch.js +87 -0
  498. package/dist/github/ghsa.d.ts +118 -0
  499. package/dist/github/ghsa.js +178 -0
  500. package/dist/github/refs-cache.d.ts +40 -0
  501. package/dist/github/refs-cache.js +49 -0
  502. package/dist/github/refs-graphql.d.ts +42 -0
  503. package/dist/github/refs-graphql.js +109 -0
  504. package/dist/github/refs-rest.d.ts +23 -0
  505. package/dist/github/refs-rest.js +104 -0
  506. package/dist/github/refs.d.ts +84 -0
  507. package/dist/github/refs.js +67 -0
  508. package/dist/github/token.d.ts +77 -0
  509. package/dist/github/token.js +55 -0
  510. package/dist/github/types.d.ts +277 -0
  511. package/dist/github/types.js +18 -0
  512. package/dist/globs/_internal.d.ts +46 -0
  513. package/dist/globs/_internal.js +96 -0
  514. package/dist/globs/defaults.d.ts +7 -0
  515. package/dist/globs/defaults.js +61 -0
  516. package/dist/globs/glob.d.ts +59 -0
  517. package/dist/globs/glob.js +84 -0
  518. package/dist/globs/matcher.d.ts +46 -0
  519. package/dist/globs/matcher.js +99 -0
  520. package/dist/globs/stream.d.ts +18 -0
  521. package/dist/globs/stream.js +58 -0
  522. package/dist/globs/types.d.ts +35 -0
  523. package/dist/globs/types.js +18 -0
  524. package/dist/http-request/_internal.d.ts +18 -0
  525. package/dist/http-request/_internal.js +39 -0
  526. package/dist/http-request/checksums.d.ts +69 -0
  527. package/dist/http-request/checksums.js +72 -0
  528. package/dist/http-request/convenience.d.ts +104 -0
  529. package/dist/http-request/convenience.js +96 -0
  530. package/dist/http-request/download-types.d.ts +224 -0
  531. package/dist/http-request/download-types.js +18 -0
  532. package/dist/http-request/download.d.ts +71 -0
  533. package/dist/http-request/download.js +201 -0
  534. package/dist/http-request/errors.d.ts +23 -0
  535. package/dist/http-request/errors.js +50 -0
  536. package/dist/http-request/headers.d.ts +57 -0
  537. package/dist/http-request/headers.js +86 -0
  538. package/dist/http-request/request-attempt.d.ts +21 -0
  539. package/dist/http-request/request-attempt.js +284 -0
  540. package/dist/http-request/request-types.d.ts +238 -0
  541. package/dist/http-request/request-types.js +18 -0
  542. package/dist/http-request/request.d.ts +59 -0
  543. package/dist/http-request/request.js +106 -0
  544. package/dist/http-request/response-reader.d.ts +25 -0
  545. package/dist/http-request/response-reader.js +54 -0
  546. package/dist/http-request/response-types.d.ts +123 -0
  547. package/dist/http-request/response-types.js +40 -0
  548. package/dist/http-request/user-agent.d.ts +55 -0
  549. package/dist/http-request/user-agent.js +61 -0
  550. package/dist/{dlx/integrity.d.ts → integrity.d.ts} +36 -30
  551. package/dist/{dlx/integrity.js → integrity.js} +25 -19
  552. package/dist/ipc/_internal.d.ts +25 -0
  553. package/dist/ipc/_internal.js +50 -0
  554. package/dist/ipc/directory.d.ts +18 -0
  555. package/dist/ipc/directory.js +66 -0
  556. package/dist/ipc/paths.d.ts +37 -0
  557. package/dist/ipc/paths.js +48 -0
  558. package/dist/ipc/types.d.ts +22 -0
  559. package/dist/ipc/types.js +18 -0
  560. package/dist/ipc/write.d.ts +39 -0
  561. package/dist/ipc/write.js +77 -0
  562. package/dist/ipc-cli/get.d.ts +21 -0
  563. package/dist/{ipc-cli.js → ipc-cli/get.js} +5 -5
  564. package/dist/ipc-cli/types.d.ts +14 -0
  565. package/dist/ipc-cli/types.js +18 -0
  566. package/dist/json/edit.d.ts +22 -8
  567. package/dist/json/edit.js +85 -96
  568. package/dist/json/format.d.ts +100 -86
  569. package/dist/json/format.js +4 -3
  570. package/dist/json/parse.d.ts +113 -88
  571. package/dist/json/parse.js +30 -24
  572. package/dist/json/types.d.ts +133 -117
  573. package/dist/links/link.d.ts +65 -0
  574. package/dist/{links.js → links/link.js} +10 -10
  575. package/dist/links/types.d.ts +19 -0
  576. package/dist/links/types.js +18 -0
  577. package/dist/logger/_internal.d.ts +82 -0
  578. package/dist/logger/_internal.js +80 -0
  579. package/dist/logger/colors.d.ts +18 -0
  580. package/dist/logger/colors.js +54 -0
  581. package/dist/logger/console.d.ts +33 -0
  582. package/dist/logger/console.js +119 -0
  583. package/dist/logger/logger.d.ts +405 -0
  584. package/dist/logger/logger.js +854 -0
  585. package/dist/logger/symbols-builder.d.ts +29 -0
  586. package/dist/logger/symbols-builder.js +61 -0
  587. package/dist/logger/symbols.d.ts +61 -0
  588. package/dist/logger/symbols.js +129 -0
  589. package/dist/logger/types.d.ts +88 -0
  590. package/dist/logger/types.js +18 -0
  591. package/dist/memo/_internal.d.ts +16 -0
  592. package/dist/memo/_internal.js +53 -0
  593. package/dist/memo/async.d.ts +32 -0
  594. package/dist/memo/async.js +120 -0
  595. package/dist/memo/clear.d.ts +15 -0
  596. package/dist/memo/clear.js +37 -0
  597. package/dist/memo/decorator.d.ts +29 -0
  598. package/dist/memo/decorator.js +40 -0
  599. package/dist/memo/memoize.d.ts +33 -0
  600. package/dist/memo/memoize.js +91 -0
  601. package/dist/memo/once.d.ts +25 -0
  602. package/dist/memo/once.js +44 -0
  603. package/dist/memo/types.d.ts +43 -0
  604. package/dist/memo/types.js +18 -0
  605. package/dist/memo/weak.d.ts +26 -0
  606. package/dist/memo/weak.js +44 -0
  607. package/dist/node/async-hooks.d.ts +2 -2
  608. package/dist/node/child-process.d.ts +5 -7
  609. package/dist/node/crypto.d.ts +2 -2
  610. package/dist/node/events.d.ts +2 -2
  611. package/dist/node/fs-promises.d.ts +2 -2
  612. package/dist/node/fs.d.ts +6 -10
  613. package/dist/node/http.d.ts +2 -2
  614. package/dist/node/https.d.ts +2 -2
  615. package/dist/node/module.d.ts +7 -0
  616. package/dist/node/module.js +41 -0
  617. package/dist/node/os.d.ts +2 -2
  618. package/dist/node/path.d.ts +2 -2
  619. package/dist/node/timers-promises.d.ts +2 -2
  620. package/dist/node/url.d.ts +2 -2
  621. package/dist/node/util.d.ts +2 -2
  622. package/dist/objects/getters.d.ts +116 -0
  623. package/dist/objects/getters.js +137 -0
  624. package/dist/objects/inspect.d.ts +67 -0
  625. package/dist/objects/inspect.js +59 -0
  626. package/dist/objects/mutate.d.ts +72 -0
  627. package/dist/objects/mutate.js +81 -0
  628. package/dist/objects/predicates.d.ts +96 -0
  629. package/dist/objects/predicates.js +68 -0
  630. package/dist/objects/sort.d.ts +88 -0
  631. package/dist/objects/sort.js +85 -0
  632. package/dist/objects/types.d.ts +68 -0
  633. package/dist/objects/types.js +18 -0
  634. package/dist/packages/edit-class.d.ts +39 -0
  635. package/dist/packages/edit-class.js +269 -0
  636. package/dist/packages/edit.d.ts +60 -61
  637. package/dist/packages/edit.js +21 -286
  638. package/dist/packages/exports.d.ts +30 -28
  639. package/dist/packages/exports.js +38 -34
  640. package/dist/packages/isolation.d.ts +16 -7
  641. package/dist/packages/isolation.js +50 -57
  642. package/dist/packages/licenses.d.ts +49 -45
  643. package/dist/packages/licenses.js +13 -18
  644. package/dist/packages/manifest.d.ts +14 -14
  645. package/dist/packages/manifest.js +16 -15
  646. package/dist/packages/normalize.d.ts +17 -16
  647. package/dist/packages/normalize.js +20 -17
  648. package/dist/packages/operations.d.ts +49 -36
  649. package/dist/packages/operations.js +30 -15
  650. package/dist/packages/provenance.d.ts +22 -9
  651. package/dist/packages/provenance.js +76 -66
  652. package/dist/packages/specs.d.ts +21 -21
  653. package/dist/packages/specs.js +7 -7
  654. package/dist/{packages.d.ts → packages/types.d.ts} +12 -20
  655. package/dist/packages/types.js +18 -0
  656. package/dist/packages/validation.d.ts +13 -13
  657. package/dist/packages/validation.js +2 -2
  658. package/dist/paths/_internal.d.ts +51 -0
  659. package/dist/paths/_internal.js +102 -0
  660. package/dist/paths/conversion.d.ts +82 -0
  661. package/dist/paths/conversion.js +74 -0
  662. package/dist/paths/dirnames.d.ts +1 -1
  663. package/dist/paths/exts.d.ts +1 -1
  664. package/dist/paths/filenames.d.ts +1 -1
  665. package/dist/paths/globs.d.ts +1 -1
  666. package/dist/paths/normalize.d.ts +30 -440
  667. package/dist/paths/normalize.js +49 -289
  668. package/dist/paths/packages.d.ts +7 -1
  669. package/dist/paths/packages.js +7 -12
  670. package/dist/paths/predicates.d.ts +129 -0
  671. package/dist/paths/predicates.js +121 -0
  672. package/dist/paths/resolve.d.ts +71 -0
  673. package/dist/paths/resolve.js +135 -0
  674. package/dist/paths/rewire.d.ts +37 -38
  675. package/dist/paths/rewire.js +3 -3
  676. package/dist/paths/socket.d.ts +146 -47
  677. package/dist/paths/socket.js +23 -25
  678. package/dist/perf/_internal.d.ts +10 -0
  679. package/dist/perf/_internal.js +30 -0
  680. package/dist/perf/enabled.d.ts +13 -0
  681. package/dist/perf/enabled.js +33 -0
  682. package/dist/perf/metrics.d.ts +51 -0
  683. package/dist/perf/metrics.js +74 -0
  684. package/dist/perf/report.d.ts +40 -0
  685. package/dist/perf/report.js +85 -0
  686. package/dist/perf/timer.d.ts +100 -0
  687. package/dist/perf/timer.js +137 -0
  688. package/dist/perf/types.d.ts +15 -0
  689. package/dist/perf/types.js +18 -0
  690. package/dist/pkg-ext/data.d.ts +8 -0
  691. package/dist/{package-extensions.js → pkg-ext/data.js} +4 -4
  692. package/dist/pkg-ext/types.d.ts +6 -0
  693. package/dist/pkg-ext/types.js +18 -0
  694. package/dist/primordials/array.d.ts +73 -0
  695. package/dist/primordials/array.js +220 -0
  696. package/dist/primordials/buffer.d.ts +17 -0
  697. package/dist/primordials/buffer.js +61 -0
  698. package/dist/primordials/date.d.ts +16 -0
  699. package/dist/primordials/date.js +56 -0
  700. package/dist/primordials/error.d.ts +19 -0
  701. package/dist/primordials/error.js +75 -0
  702. package/dist/primordials/function.d.ts +10 -0
  703. package/dist/primordials/function.js +42 -0
  704. package/dist/primordials/globals.d.ts +17 -0
  705. package/dist/primordials/globals.js +54 -0
  706. package/dist/primordials/json.d.ts +11 -0
  707. package/dist/primordials/json.js +33 -0
  708. package/dist/primordials/map-set.d.ts +35 -0
  709. package/dist/primordials/map-set.js +115 -0
  710. package/dist/primordials/math.d.ts +51 -0
  711. package/dist/primordials/math.js +161 -0
  712. package/dist/primordials/number.d.ts +25 -0
  713. package/dist/primordials/number.js +92 -0
  714. package/dist/primordials/object.d.ts +74 -0
  715. package/dist/primordials/object.js +142 -0
  716. package/dist/primordials/promise.d.ts +34 -0
  717. package/dist/primordials/promise.js +61 -0
  718. package/dist/primordials/reflect.d.ts +18 -0
  719. package/dist/primordials/reflect.js +66 -0
  720. package/dist/primordials/regexp.d.ts +14 -0
  721. package/dist/primordials/regexp.js +50 -0
  722. package/dist/primordials/string.d.ts +71 -0
  723. package/dist/primordials/string.js +174 -0
  724. package/dist/primordials/symbol.d.ts +28 -0
  725. package/dist/primordials/symbol.js +94 -0
  726. package/dist/primordials/uncurry.d.ts +18 -0
  727. package/dist/primordials/uncurry.js +65 -0
  728. package/dist/primordials/url.d.ts +13 -0
  729. package/dist/primordials/url.js +69 -0
  730. package/dist/process/_internal.d.ts +8 -0
  731. package/dist/process/_internal.js +33 -0
  732. package/dist/process/abort.d.ts +20 -0
  733. package/dist/{constants/process.js → process/abort.js} +3 -3
  734. package/dist/process/lock-instance.d.ts +19 -0
  735. package/dist/process/lock-instance.js +31 -0
  736. package/dist/process/lock-manager.d.ts +152 -0
  737. package/dist/{process-lock.js → process/lock-manager.js} +97 -105
  738. package/dist/process/lock-types.d.ts +43 -0
  739. package/dist/process/lock-types.js +18 -0
  740. package/dist/process/transient.d.ts +22 -0
  741. package/dist/{temporary-executor.js → process/transient.js} +8 -8
  742. package/dist/promise-queue/queue.d.ts +51 -0
  743. package/dist/{promise-queue.js → promise-queue/queue.js} +27 -22
  744. package/dist/promise-queue/types.d.ts +10 -0
  745. package/dist/promise-queue/types.js +18 -0
  746. package/dist/promises/_internal.d.ts +15 -0
  747. package/dist/promises/_internal.js +41 -0
  748. package/dist/promises/iterate.d.ts +190 -0
  749. package/dist/promises/iterate.js +111 -0
  750. package/dist/promises/options.d.ts +76 -0
  751. package/dist/promises/options.js +108 -0
  752. package/dist/promises/resolvers.d.ts +55 -0
  753. package/dist/promises/resolvers.js +49 -0
  754. package/dist/promises/retry.d.ts +105 -0
  755. package/dist/promises/retry.js +104 -0
  756. package/dist/promises/types.d.ts +190 -0
  757. package/dist/promises/types.js +18 -0
  758. package/dist/regexps/escape.d.ts +6 -0
  759. package/dist/regexps/escape.js +32 -0
  760. package/dist/regexps/hex.d.ts +7 -0
  761. package/dist/regexps/hex.js +38 -0
  762. package/dist/regexps/spec.d.ts +15 -0
  763. package/dist/{regexps.js → regexps/spec.js} +32 -36
  764. package/dist/releases/github-archives.d.ts +47 -36
  765. package/dist/releases/github-archives.js +21 -35
  766. package/dist/releases/github-asset-url.d.ts +72 -0
  767. package/dist/releases/github-asset-url.js +167 -0
  768. package/dist/releases/github-assets.d.ts +13 -11
  769. package/dist/releases/github-assets.js +2 -2
  770. package/dist/releases/github-auth.d.ts +9 -9
  771. package/dist/releases/github-downloads.d.ts +31 -26
  772. package/dist/releases/github-downloads.js +22 -34
  773. package/dist/releases/github-listing.d.ts +105 -0
  774. package/dist/releases/github-listing.js +171 -0
  775. package/dist/releases/github-types.d.ts +45 -19
  776. package/dist/releases/socket-btm.d.ts +149 -99
  777. package/dist/releases/socket-btm.js +14 -20
  778. package/dist/schema/parse.d.ts +14 -15
  779. package/dist/schema/parse.js +2 -2
  780. package/dist/schema/types.d.ts +49 -37
  781. package/dist/schema/validate.d.ts +42 -19
  782. package/dist/schema/validate.js +15 -6
  783. package/dist/sea/detect.d.ts +37 -0
  784. package/dist/sea/{util.js → detect.js} +6 -6
  785. package/dist/secrets/_internal.d.ts +57 -0
  786. package/dist/secrets/_internal.js +84 -0
  787. package/dist/secrets/find.d.ts +79 -0
  788. package/dist/secrets/find.js +84 -0
  789. package/dist/secrets/keychain.d.ts +138 -0
  790. package/dist/secrets/keychain.js +328 -0
  791. package/dist/secrets/linux.d.ts +20 -0
  792. package/dist/secrets/linux.js +151 -0
  793. package/dist/secrets/macos.d.ts +36 -0
  794. package/dist/secrets/macos.js +165 -0
  795. package/dist/secrets/rc.d.ts +139 -0
  796. package/dist/secrets/rc.js +196 -0
  797. package/dist/secrets/socket-api-token.d.ts +23 -0
  798. package/dist/secrets/socket-api-token.js +50 -0
  799. package/dist/secrets/types.d.ts +69 -0
  800. package/dist/secrets/types.js +18 -0
  801. package/dist/secrets/windows.d.ts +50 -0
  802. package/dist/secrets/windows.js +318 -0
  803. package/dist/shadow/skip.d.ts +25 -0
  804. package/dist/{shadow.js → shadow/skip.js} +4 -4
  805. package/dist/shadow/types.d.ts +8 -0
  806. package/dist/shadow/types.js +18 -0
  807. package/dist/signal-exit/_internal.d.ts +68 -0
  808. package/dist/signal-exit/_internal.js +127 -0
  809. package/dist/signal-exit/intercept.d.ts +8 -0
  810. package/dist/signal-exit/intercept.js +75 -0
  811. package/dist/signal-exit/lifecycle.d.ts +28 -0
  812. package/dist/signal-exit/lifecycle.js +109 -0
  813. package/dist/signal-exit/register.d.ts +20 -0
  814. package/dist/signal-exit/register.js +58 -0
  815. package/dist/signal-exit/signals.d.ts +16 -0
  816. package/dist/signal-exit/signals.js +34 -0
  817. package/dist/signal-exit/types.d.ts +21 -0
  818. package/dist/signal-exit/types.js +18 -0
  819. package/dist/smol/detect.d.ts +80 -0
  820. package/dist/smol/{util.js → detect.js} +16 -24
  821. package/dist/smol/http.d.ts +60 -0
  822. package/dist/smol/http.js +42 -0
  823. package/dist/smol/https.d.ts +59 -0
  824. package/dist/smol/https.js +42 -0
  825. package/dist/smol/manifest.d.ts +140 -0
  826. package/dist/smol/manifest.js +42 -0
  827. package/dist/smol/primordial.d.ts +16 -21
  828. package/dist/smol/primordial.js +7 -11
  829. package/dist/smol/purl.d.ts +84 -0
  830. package/dist/smol/purl.js +42 -0
  831. package/dist/smol/versions.d.ts +11 -14
  832. package/dist/smol/versions.js +7 -11
  833. package/dist/smol/vfs.d.ts +99 -0
  834. package/dist/smol/vfs.js +43 -0
  835. package/dist/sorts/_internal.d.ts +9 -0
  836. package/dist/sorts/_internal.js +47 -0
  837. package/dist/sorts/natural.d.ts +39 -0
  838. package/dist/{sorts.js → sorts/natural.js} +5 -42
  839. package/dist/sorts/semver.d.ts +15 -0
  840. package/dist/sorts/semver.js +46 -0
  841. package/dist/sorts/strings.d.ts +16 -0
  842. package/dist/sorts/strings.js +33 -0
  843. package/dist/sorts/types.d.ts +7 -0
  844. package/dist/sorts/types.js +18 -0
  845. package/dist/spawn/_internal.d.ts +24 -0
  846. package/dist/spawn/_internal.js +62 -0
  847. package/dist/spawn/errors.d.ts +45 -0
  848. package/dist/spawn/errors.js +118 -0
  849. package/dist/spawn/spawn.d.ts +134 -0
  850. package/dist/{spawn.js → spawn/spawn.js} +29 -147
  851. package/dist/spawn/stdio.d.ts +37 -0
  852. package/dist/spawn/stdio.js +38 -0
  853. package/dist/spawn/types.d.ts +325 -0
  854. package/dist/spawn/types.js +18 -0
  855. package/dist/spinner/format.d.ts +64 -0
  856. package/dist/spinner/format.js +83 -0
  857. package/dist/spinner/registry.d.ts +49 -0
  858. package/dist/spinner/registry.js +70 -0
  859. package/dist/spinner/spinner.d.ts +40 -0
  860. package/dist/spinner/spinner.js +802 -0
  861. package/dist/spinner/types.d.ts +368 -0
  862. package/dist/spinner/types.js +18 -0
  863. package/dist/spinner/with.d.ts +125 -0
  864. package/dist/spinner/with.js +144 -0
  865. package/dist/ssri/convert.d.ts +48 -0
  866. package/dist/{ssri.js → ssri/convert.js} +11 -34
  867. package/dist/ssri/parse.d.ts +27 -0
  868. package/dist/ssri/parse.js +40 -0
  869. package/dist/ssri/validate.d.ts +41 -0
  870. package/dist/ssri/validate.js +39 -0
  871. package/dist/stdio/{_stream.d.ts → _internal.d.ts} +10 -5
  872. package/dist/stdio/{_stream.js → _internal.js} +3 -3
  873. package/dist/stdio/clear.d.ts +98 -84
  874. package/dist/stdio/divider.d.ts +100 -78
  875. package/dist/stdio/divider.js +36 -14
  876. package/dist/stdio/footer.d.ts +75 -51
  877. package/dist/stdio/footer.js +28 -18
  878. package/dist/stdio/header.d.ts +61 -50
  879. package/dist/stdio/header.js +15 -13
  880. package/dist/stdio/progress.d.ts +67 -57
  881. package/dist/stdio/progress.js +55 -51
  882. package/dist/stdio/prompts.d.ts +147 -100
  883. package/dist/stdio/prompts.js +23 -15
  884. package/dist/stdio/stderr.d.ts +86 -84
  885. package/dist/stdio/stderr.js +6 -6
  886. package/dist/stdio/stdout.d.ts +77 -78
  887. package/dist/stdio/stdout.js +6 -6
  888. package/dist/streams/parallel.d.ts +40 -0
  889. package/dist/{streams.js → streams/parallel.js} +10 -27
  890. package/dist/streams/transform.d.ts +20 -0
  891. package/dist/streams/transform.js +48 -0
  892. package/dist/strings/format.d.ts +115 -0
  893. package/dist/strings/format.js +73 -0
  894. package/dist/strings/predicates.d.ts +52 -0
  895. package/dist/strings/predicates.js +39 -0
  896. package/dist/strings/search.d.ts +34 -0
  897. package/dist/strings/search.js +45 -0
  898. package/dist/strings/transform.d.ts +80 -0
  899. package/dist/strings/transform.js +79 -0
  900. package/dist/strings/types.d.ts +38 -0
  901. package/dist/strings/types.js +18 -0
  902. package/dist/strings/width.d.ts +42 -0
  903. package/dist/strings/width.js +95 -0
  904. package/dist/tables/bordered.d.ts +44 -0
  905. package/dist/tables/bordered.js +84 -0
  906. package/dist/tables/padding.d.ts +18 -0
  907. package/dist/tables/padding.js +51 -0
  908. package/dist/tables/simple.d.ts +36 -0
  909. package/dist/tables/simple.js +73 -0
  910. package/dist/tables/types.d.ts +15 -0
  911. package/dist/tables/types.js +18 -0
  912. package/dist/temporal/instant.d.ts +39 -0
  913. package/dist/temporal/instant.js +91 -0
  914. package/dist/temporal/now.d.ts +24 -0
  915. package/dist/temporal/now.js +34 -0
  916. package/dist/temporal/slots.d.ts +32 -0
  917. package/dist/temporal/slots.js +45 -0
  918. package/dist/temporal/system.d.ts +20 -0
  919. package/dist/temporal/system.js +42 -0
  920. package/dist/temporal/temporal.d.ts +22 -0
  921. package/dist/temporal/temporal.js +43 -0
  922. package/dist/themes/context.d.ts +65 -48
  923. package/dist/themes/context.js +6 -2
  924. package/dist/themes/resolve.d.ts +90 -0
  925. package/dist/themes/{utils.js → resolve.js} +6 -6
  926. package/dist/themes/themes.d.ts +14 -16
  927. package/dist/themes/types.d.ts +93 -35
  928. package/dist/ttl-cache/cache.d.ts +29 -0
  929. package/dist/{cache-with-ttl.js → ttl-cache/cache.js} +45 -37
  930. package/dist/ttl-cache/types.d.ts +109 -0
  931. package/dist/ttl-cache/types.js +18 -0
  932. package/dist/url/parse.d.ts +26 -0
  933. package/dist/url/parse.js +57 -0
  934. package/dist/url/predicates.d.ts +15 -0
  935. package/dist/url/predicates.js +34 -0
  936. package/dist/url/search-params.d.ts +71 -0
  937. package/dist/{url.js → url/search-params.js} +19 -54
  938. package/dist/url/types.d.ts +20 -0
  939. package/dist/url/types.js +18 -0
  940. package/dist/versions/_internal.d.ts +24 -0
  941. package/dist/versions/_internal.js +37 -0
  942. package/dist/versions/compare.d.ts +57 -0
  943. package/dist/versions/compare.js +65 -0
  944. package/dist/versions/modify.d.ts +28 -0
  945. package/dist/versions/modify.js +44 -0
  946. package/dist/versions/parse.d.ts +67 -0
  947. package/dist/versions/parse.js +77 -0
  948. package/dist/versions/range.d.ts +45 -0
  949. package/dist/versions/range.js +50 -0
  950. package/dist/versions/types.d.ts +13 -0
  951. package/dist/versions/types.js +18 -0
  952. package/dist/warnings/event-target.d.ts +31 -0
  953. package/dist/warnings/event-target.js +43 -0
  954. package/dist/warnings/suppress.d.ts +65 -0
  955. package/dist/{suppress-warnings.js → warnings/suppress.js} +16 -28
  956. package/dist/words/article.d.ts +14 -0
  957. package/dist/words/article.js +33 -0
  958. package/dist/words/capitalize.d.ts +15 -0
  959. package/dist/{words.js → words/capitalize.js} +5 -18
  960. package/dist/words/pluralize.d.ts +16 -0
  961. package/dist/words/pluralize.js +34 -0
  962. package/dist/words/types.d.ts +7 -0
  963. package/dist/words/types.js +18 -0
  964. package/package.json +1919 -247
  965. package/dist/abort.d.ts +0 -27
  966. package/dist/agent.d.ts +0 -196
  967. package/dist/agent.js +0 -287
  968. package/dist/ansi.d.ts +0 -39
  969. package/dist/archives.d.ts +0 -95
  970. package/dist/archives.js +0 -408
  971. package/dist/argv/flags.d.ts +0 -292
  972. package/dist/argv/flags.js +0 -297
  973. package/dist/arrays.d.ts +0 -168
  974. package/dist/bin.d.ts +0 -181
  975. package/dist/bin.js +0 -544
  976. package/dist/cacache.d.ts +0 -130
  977. package/dist/cacache.js +0 -156
  978. package/dist/cache-with-ttl.d.ts +0 -165
  979. package/dist/colors.d.ts +0 -49
  980. package/dist/compression.d.ts +0 -218
  981. package/dist/constants/process.d.ts +0 -20
  982. package/dist/crypto.d.ts +0 -36
  983. package/dist/debug.js +0 -337
  984. package/dist/env/helpers.d.ts +0 -66
  985. package/dist/env.d.ts +0 -182
  986. package/dist/env.js +0 -205
  987. package/dist/errors.d.ts +0 -100
  988. package/dist/fs.d.ts +0 -916
  989. package/dist/fs.js +0 -808
  990. package/dist/git.d.ts +0 -546
  991. package/dist/git.js +0 -409
  992. package/dist/github.d.ts +0 -526
  993. package/dist/github.js +0 -448
  994. package/dist/globs.d.ts +0 -119
  995. package/dist/globs.js +0 -282
  996. package/dist/http-request.d.ts +0 -951
  997. package/dist/http-request.js +0 -761
  998. package/dist/ipc-cli.d.ts +0 -28
  999. package/dist/ipc.d.ts +0 -76
  1000. package/dist/ipc.js +0 -130
  1001. package/dist/links.d.ts +0 -69
  1002. package/dist/logger.d.ts +0 -993
  1003. package/dist/logger.js +0 -1498
  1004. package/dist/memoization.d.ts +0 -131
  1005. package/dist/memoization.js +0 -243
  1006. package/dist/objects.d.ts +0 -500
  1007. package/dist/objects.js +0 -303
  1008. package/dist/package-extensions.d.ts +0 -9
  1009. package/dist/packages.js +0 -132
  1010. package/dist/performance.d.ts +0 -181
  1011. package/dist/performance.js +0 -233
  1012. package/dist/primordials.d.ts +0 -420
  1013. package/dist/primordials.js +0 -1116
  1014. package/dist/process-lock.d.ts +0 -180
  1015. package/dist/promise-queue.d.ts +0 -48
  1016. package/dist/promises.d.ts +0 -506
  1017. package/dist/promises.js +0 -292
  1018. package/dist/regexps.d.ts +0 -6
  1019. package/dist/releases/github-api.d.ts +0 -56
  1020. package/dist/releases/github-api.js +0 -275
  1021. package/dist/sea/util.d.ts +0 -43
  1022. package/dist/shadow.d.ts +0 -28
  1023. package/dist/signal-exit.d.ts +0 -50
  1024. package/dist/signal-exit.js +0 -247
  1025. package/dist/smol/util.d.ts +0 -87
  1026. package/dist/sorts.d.ts +0 -59
  1027. package/dist/spawn.d.ts +0 -454
  1028. package/dist/spinner.d.ts +0 -444
  1029. package/dist/spinner.js +0 -988
  1030. package/dist/ssri.d.ts +0 -90
  1031. package/dist/streams.d.ts +0 -45
  1032. package/dist/strings.d.ts +0 -414
  1033. package/dist/strings.js +0 -218
  1034. package/dist/suppress-warnings.d.ts +0 -81
  1035. package/dist/tables.d.ts +0 -73
  1036. package/dist/tables.js +0 -133
  1037. package/dist/temporary-executor.d.ts +0 -20
  1038. package/dist/themes/utils.d.ts +0 -86
  1039. package/dist/url.d.ts +0 -114
  1040. package/dist/versions.d.ts +0 -207
  1041. package/dist/versions.js +0 -181
  1042. package/dist/words.d.ts +0 -39
package/CHANGELOG.md CHANGED
@@ -5,46 +5,75 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [6.0.0](https://github.com/SocketDev/socket-lib/releases/tag/v6.0.0) - 2026-05-20
9
+
10
+ Public-surface reshape. All top-level barrels are gone; import from named leaf subpaths instead. `@socketsecurity/lib/logger` and `@socketsecurity/lib/errors` stay as aliases.
11
+
12
+ ### Removed (breaking)
13
+
14
+ - **All top-level barrel modules.** Replace with leaf subpaths — e.g. `fs` → `fs/safe`, `http-request` → `http-request/convenience`, `packages` → `packages/operations`, `versions` → `versions/compare`. Affects `fs`, `http-request`, `spinner`, `git`, `github`, `spawn`, `bin`, `primordials`, `objects`, `strings`, `promises`, `arrays`, `url`, `packages`, `cacache`, `signal-exit`, `compression`, `archives`, `globs`, `regexps`, `ssri`, `colors`, `ansi`, `crypto`, `abort`, `streams`, `links`, `shadow`, `ipc`, `ipc-cli`, `errors`, `words`, `tables`, `sorts`, `env`, `debug`, `versions`, `types`.
15
+ - **`agent` removed.** Per-tool helpers under `eco/npm/<tool>/{exec,flags}` (`bun`, `npm`, `pnpm`, `vlt`, `yarnpkg/yarn`).
16
+ - **`types/` removed.** Schema types under `eco/purl` and `eco/types`.
17
+ - **Subdir renames.** `memoization/` → `memo/`, `performance/` → `perf/`, `suppress-warnings/` → `warnings/`, `cache-with-ttl/` → `ttl-cache/`, `process-lock/` → `process/`, `package-extensions/` → `pkg-ext/`, `temporary-executor/` → `process/transient` (`isRunningInTemporaryExecutor` → `isTransientProcess`).
18
+ - **`SOCKET_LIB_USER_AGENT` + `SOCKET_LIB_URL` removed.** Use `getSocketCallerUserAgent()` from `http-request/user-agent` — see Added.
19
+
20
+ ### Changed (breaking)
21
+
22
+ - **`versions` API renamed.** `compareVersions` → `compare`, `isEqual` → `eq` (+ new `neq`), `isLessThan(OrEqual)` → `lt`/`lte`, `isGreaterThan(OrEqual)` → `gt`/`gte`, `sortVersions` → `sort`, `sortVersionsDesc` → `rsort`. Runs through `node:smol-versions` when present, falls back to `semver`.
23
+ - **`dlx/manifest` `ManifestEntry` → `DlxManifestEntry`** (disambiguates from `eco/types` `ManifestEntry`).
24
+ - **`dlx/arborist getBaseArboristOptions`** second arg is now `{ quiet }` instead of positional `quiet: boolean`.
25
+ - **Predicates renamed for scope clarity** — cwd/process-scoped predicates now carry the scope in the name.
26
+ - **Default `User-Agent` header** now `socketsecurity-lib/<version> node/<node-version> <platform>/<arch>` (was `socketsecurity-lib/<version> (<url>)`).
27
+
28
+ ### Added
29
+
30
+ - **`http-request/user-agent`** — `buildUserAgent({ name, version }, caller?)` for the canonical three-token UA, and `getSocketCallerUserAgent()` for the lib's own outbound requests. Set `SOCKET_CALLER_USER_AGENT` to append your own identifier to the lib UA (empty/whitespace is ignored).
31
+ - **`packages/operations#pkgNameToSlug(name)`** — `@scope/name` → `scope-name`, plain names unchanged.
32
+ - **`secrets/socket-api-token`** — `readSocketApiToken()` / `readSocketApiTokenSync()` resolve the Socket API token from keychain → `SOCKET_API_TOKEN` (canonical) → `SOCKET_API_KEY` (legacy). Pass `{ allowEnvOnly }` to skip keychain in headless contexts.
33
+ - **`ai/discover` + `ai/spawn`** — locked-down spawn helpers for Claude / Codex / Gemini / OpenCode CLIs. Type-level enforcement of the four lockdown flags (`tools`, `allowedTools`, `disallowedTools`, `permissionMode: 'dontAsk'`). Retries HTTP 529 / "Overloaded" with 5 s / 15 s / 45 s backoff.
34
+ - **`socket-lib check primordials --fix`** — applies suggested rewrites for `.socket-lib.json`-tracked drift.
35
+ - **9 new primordial exports** (305 total) — Array.prototype: `ToLocaleString`, `ToString`. String.prototype: `IsWellFormed` (ES2024), `ToString`, `ToWellFormed` (ES2024), `ValueOf`. Number.prototype: `ToExponential`, `ToPrecision`, `ValueOf`. `StringPrototypeIsWellFormed` routes through `node:smol-primordial` on the smol Node binary — ASCII strings short-circuit to `true` without an O(n) lone-surrogate scan.
36
+
37
+ ### Fixed
38
+
39
+ - **pnpm v9 `isDev` derivation.** Snapshot entries were stuck at `depType: 'prod'` because v9 dropped the per-snapshot `dev` marker. Now derived per-package across all importer blocks; ties go to prod, matching pnpm's resolver.
40
+ - **yarn `dependenciesMeta` inversion.** A child's `optional: true` was flipping the parent's `isOptional`; flags now refer to the child as declared.
41
+ - **pnpm v9 phantom PackageRef.** Block-shape importer entries emitted a parent ref with `version: ''` before the indented `version:` was consumed.
42
+ - **pnpm v9 protocol filter.** `workspace:`, `file:`, and `link:` importer values are no longer surfaced as registry refs.
43
+ - **npm v1 alias extraction.** Aliased installs (`"alias": { "version": "npm:<real>@<ver>" }`) now surface the real `{ name, version }`; the alias key is preserved on `_index`.
44
+ - **npm v2/v3 workspace + alias name preference.** Path-keyed workspace entries and aliased installs honor the explicit `pkg.name` over the path-derived fallback.
45
+
46
+ ### Migration
47
+
48
+ ```diff
49
+ - import { safeDelete, readJson } from '@socketsecurity/lib/fs'
50
+ + import { safeDelete } from '@socketsecurity/lib/fs/safe'
51
+ + import { readJson } from '@socketsecurity/lib/fs/read-json'
52
+
53
+ - import { httpJson } from '@socketsecurity/lib/http-request'
54
+ + import { httpJson } from '@socketsecurity/lib/http-request/convenience'
55
+
56
+ - import { compareVersions, isLessThan, sortVersions } from '@socketsecurity/lib/versions'
57
+ - compareVersions(a, b); isLessThan(a, b); sortVersions(arr)
58
+ + import { compare, lt, sort } from '@socketsecurity/lib/versions/compare'
59
+ + compare(a, b); lt(a, b); sort(arr)
60
+ ```
61
+
8
62
  ## [5.28.0](https://github.com/SocketDev/socket-lib/releases/tag/v5.28.0) - 2026-05-06
9
63
 
10
64
  ### Added
11
65
 
12
- - **`compression` (new export)** — brotli + gzip helpers with three calling shapes (in-memory `Buffer`, file-to-file, raw streams) and a single `{ inPlace: true }` option for compress/decompress-in-place. 28 named exports total:
13
- - In-memory: `compressBrotli`, `decompressBrotli`, `compressGzip`, `decompressGzip`
14
- - File-to-file: `compressBrotliFile`, `decompressBrotliFile`, `compressGzipFile`, `decompressGzipFile` each with three overloads (explicit dest, in-place, options object). The gzip in-place path follows `.tgz` → `.tar` convention so a round-trip is lossless
15
- - Streams: `createBrotliCompressor`, `createBrotliDecompressor`, `createGzipCompressor`, `createGzipDecompressor`
16
- - Detection: `isBrotliCompressed(buffer)` / `isGzipCompressed(buffer)` (magic-byte sniffing)
17
- - Path classification: `hasBrotliExt(filePath)` / `hasGzipExt(filePath)` — case-insensitive `path.extname` match against `.br` / `.brotli` / `.gz` / `.gzip` / `.tgz`
18
- - Helpers: `BROTLI_EXTS` / `GZIP_EXTS` `ReadonlySet<string>` constants; `stripExt(filePath, exts)` for trimming a recognized extension from a path; `resolveBrotliOptions` / `resolveGzipOptions` for translating `CompressOptions` into the underlying zlib option shapes
19
- - `CompressOptions` / `CompressFileOptions` interfaces
20
- - **`socket-lib` CLI (new `bin` entry)** — fleet-wide static-analysis dispatcher invoked via `pnpm exec socket-lib <command>`. Initial subcommand: `check primordials` (alias `check prim`) — diffs every name destructured from `primordials` in scanned source against `@socketsecurity/lib`'s exposed primordials set, emitting unmapped or missing-from-lib findings. Reads sectional config from `.socket-lib.json` (with `.config/socket-lib.json` as a fallback) or a bare object for single-check setups. Flags: `--config / -c <path>` (defaults to `.socket-lib.json`, falls back to `.config/socket-lib.json`), `--explain`, `--json`, `--silent`, `--help`. Lifted from socket-btm's `scripts/check-primordials-coverage.mts` so the same drift gate now ships to every consumer.
21
- - **`dlx/package` `installRoot` option** — new `EnsurePackageInstallOptions` (and `DlxPackageOptions`) field overriding the install root passed to Arborist. Default remains `~/.socket/_dlx/<cacheKey>/`; when set, the value is used verbatim. Lets build pipelines colocate the install with their own gitignored outputs (e.g. ink-builder bundling ink via esbuild). Caller owns per-spec separation; see JSDoc for the full contract.
66
+ - **`compression` (new)** — brotli + gzip helpers with in-memory `Buffer`, file-to-file (with `{ inPlace: true }`), and stream-creator shapes. Detection (`isBrotliCompressed` / `isGzipCompressed` magic-byte sniffing), extension classification (`hasBrotliExt` / `hasGzipExt`), `BROTLI_EXTS` / `GZIP_EXTS` constants, `stripExt(path, exts)`, and `CompressOptions` / `CompressFileOptions` types.
67
+ - **`socket-lib` CLI** — `pnpm exec socket-lib <command>` dispatcher. First subcommand: `check primordials` (alias `check prim`) diffs source-destructured primordials against the lib's set. Reads `.socket-lib.json` (or `.config/socket-lib.json`). Flags: `--config`, `--explain`, `--json`, `--silent`, `--help`.
68
+ - **`dlx/package` `installRoot`** option overrides the Arborist install root (default `~/.socket/_dlx/<cacheKey>/`). Useful for colocating installs with consumer-owned build outputs.
22
69
 
23
70
  ## [5.27.0](https://github.com/SocketDev/socket-lib/releases/tag/v5.27.0) - 2026-05-04
24
71
 
25
72
  ### Added
26
73
 
27
- - **45 new `primordials` exports** rounding out the surface to 296 total:
28
- - `BigIntCtor`
29
- - Math: 24 methods (Acos, Atan2, Hypot, Pow, etc.) + 8 constants (E, PI, SQRT2, etc.); `MathF16round` typed `| undefined` for ES2025
30
- - Number constants: `EPSILON`, `MAX_SAFE_INTEGER`, `MAX_VALUE`, `MIN_SAFE_INTEGER`, `MIN_VALUE`, `NEGATIVE_INFINITY`, `POSITIVE_INFINITY`
31
- - Symbol: 10 well-knowns (`HasInstance`, `KeyFor`, `Match`, `Species`, etc.); `SymbolAsyncDispose` / `SymbolDispose` typed `| undefined` for ES2024; prototype helpers (`Description`, `ToString`, `ValueOf`)
32
- - Function: `FunctionPrototypeToString`
33
- - Array (ES2023 Change Array By Copy): `ArrayPrototypeToSpliced`, `ArrayPrototypeWith`
34
- - Globals: `InfinityValue`, `NaNValue`, `globalThisRef`
35
- - Object (annex B): `ObjectPrototype{Define,Lookup}{Getter,Setter}`
36
- - Error (V8 stack-trace API, `| undefined`): `ErrorCaptureStackTrace`, `ErrorPrepareStackTrace`, `ErrorStackTraceLimit` (function-shaped, reads live value)
37
-
38
- - **`smol/*` (new exports)** — feature-detect + lazy-loaders for socket-btm's smol Node binary:
39
- - `smol/detect` — `isSmol()`: memoized boolean, mirrors `isSeaBinary()`
40
- - `smol/util` — `getSmolUtil()`: native `uncurryThis` / `applyBind` (~2x faster), or `undefined`
41
- - `smol/primordial` — `getSmolPrimordial()`: V8 Fast API typed `Math.*` / `Number.is*` (~30-50% faster on hot loops), or `undefined`
42
- - `primordials` transparently routes through these on smol; **zero call-site changes**, identical behavior on stock Node, smol, browsers, Deno, Bun
43
-
44
- - **`node/*` (new exports)** — per-builtin lazy-loaders for `node:*` modules. Each is `/*@__NO_SIDE_EFFECTS__*/`-marked so bundlers tree-shake the `require()` when unused:
45
- - `node/fs` (`getNodeFs`), `node/path` (`getNodePath`), `node/crypto` (`getNodeCrypto`), `node/http` (`getNodeHttp`), `node/https` (`getNodeHttps`), `node/os` (`getNodeOs`), `node/util` (`getNodeUtil`), `node/url` (`getNodeUrl`), `node/events` (`getNodeEvents`)
46
- - `node/child-process` (`getNodeChildProcess`), `node/async-hooks` (`getNodeAsyncHooks`), `node/fs-promises` (`getNodeFsPromises`), `node/timers-promises` (`getNodeTimersPromises`)
47
- - Replaces ~30 ad-hoc copies of the same lazy-loader boilerplate previously scattered across `http-request.ts`, `spawn.ts`, `fs.ts`, `crypto.ts`, etc.
74
+ - **45 new `primordials` exports** (296 total) `BigIntCtor`; 24 `Math.*` methods + 8 constants (`MathF16round` typed `| undefined` for ES2025); 7 `Number` constants; 10 `Symbol` well-knowns + 3 prototype helpers (`SymbolAsyncDispose` / `SymbolDispose` typed `| undefined`); `FunctionPrototypeToString`; ES2023 array-copy (`ArrayPrototypeToSpliced`, `ArrayPrototypeWith`); `InfinityValue` / `NaNValue` / `globalThisRef`; `ObjectPrototype{Define,Lookup}{Getter,Setter}`; V8 stack-trace API.
75
+ - **`smol/*`** — feature-detect for socket-btm's smol Node binary. `smol/detect` (`isSmol()`), `smol/util` (`getSmolUtil()` — native `uncurryThis` / `applyBind`), `smol/primordial` (`getSmolPrimordial()` — V8 Fast API typed `Math.*` / `Number.is*`). `primordials` routes through these on smol transparently; no call-site changes.
76
+ - **`node/*`** per-builtin lazy-loaders, side-effect-free for tree-shaking: `node/fs`, `node/path`, `node/crypto`, `node/http`, `node/https`, `node/os`, `node/util`, `node/url`, `node/events`, `node/child-process`, `node/async-hooks`, `node/fs-promises`, `node/timers-promises`.
48
77
 
49
78
  ## [5.26.1](https://github.com/SocketDev/socket-lib/releases/tag/v5.26.1) - 2026-05-01
50
79
 
@@ -78,12 +107,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
78
107
 
79
108
  ### Fixed
80
109
 
81
- - `globs` `getGlobMatcher` — narrow the `path.matchesGlob` fast-path that an earlier draft introduced. `path.matchesGlob` doesn't honor the picomatch defaults (`dot: true`, `nocase: true`) that callers expect, so taking the fast-path under those defaults silently changed observable behavior — including breaking the case-insensitive default everywhere a single-pattern matcher was used. The fast-path now activates only when the caller has explicitly opted out of both defaults (`nocase: false` AND `dot: false`), signaling "I want strict, case-sensitive, no-dotfile-match" exactly what `path.matchesGlob` provides
82
- - `globs` `glob` / `globSync` — normalize results to forward slashes via `paths/normalize.normalizePath` regardless of which backend (`node:fs.glob` or `fast-glob`) was used. Restores fast-glob's forward-slash contract on Windows, where `node:fs.glob` returns native-OS separators
83
- - `globs` `glob` / `globSync` / `globStreamLicenses` — strip a trailing `/` from `ignore` patterns before passing them to fast-glob. The gitignore convention of writing directory entries as `dist/` was silently dropped at the deep-filter level (fast-glob walked the entire subtree before discarding results), which on a large `dist/` could push memory past the limit. fast-glob v3.3.3 and the unreleased v4 both have the bug; tracked at [mrmlnc/fast-glob#437](https://github.com/mrmlnc/fast-glob/issues/437). Same workaround as [SocketDev/socket-cli#1288](https://github.com/SocketDev/socket-cli/pull/1288).
84
- - `releases/github-api` `getLatestRelease` and `getReleaseAssetUrl` transparently fall back to GraphQL when GitHub REST returns 200 + empty body (search-degraded incident shape)
85
- - `github` `resolveRefToSha` and `fetchGhsaDetails` get the same GraphQL fallback for the same incident shape
86
- - All fallbacks only fire on the empty-body signature; real 404s, rate-limits, and 5xx still propagate
110
+ - `globs` `getGlobMatcher` — `path.matchesGlob` fast-path only activates when the caller opts out of both picomatch defaults (`nocase: false` AND `dot: false`); previously took the fast-path under default options and silently broke case-insensitive matching.
111
+ - `globs` `glob` / `globSync` — results normalized to forward slashes on Windows regardless of backend (`node:fs.glob` returns native-OS separators).
112
+ - `globs` `glob` / `globSync` / `globStreamLicenses` — trailing `/` stripped from `ignore` patterns before passing to fast-glob (gitignore-style `dist/` was silently dropped at the deep-filter level). Workaround for [mrmlnc/fast-glob#437](https://github.com/mrmlnc/fast-glob/issues/437).
113
+ - GitHub helpers (`releases/github-api`, `github/resolveRefToSha`, `fetchGhsaDetails`) fall back to GraphQL on the "search-degraded" 200 OK + empty body shape. Real 404s / rate-limits / 5xx still propagate.
87
114
 
88
115
  ## [5.26.0](https://github.com/SocketDev/socket-lib/releases/tag/v5.26.0) - 2026-04-27
89
116
 
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Socket Badge](https://socket.dev/api/badge/npm/package/@socketsecurity/lib)](https://socket.dev/npm/package/@socketsecurity/lib)
4
4
  [![CI](https://github.com/SocketDev/socket-lib/actions/workflows/ci.yml/badge.svg)](https://github.com/SocketDev/socket-lib/actions/workflows/ci.yml)
5
- ![Coverage](https://img.shields.io/badge/coverage-85%25-brightgreen)
5
+ ![Coverage](https://img.shields.io/badge/coverage-98%25-brightgreen)
6
6
 
7
7
  [![Follow @SocketSecurity](https://img.shields.io/twitter/follow/SocketSecurity?style=social)](https://twitter.com/SocketSecurity)
8
8
  [![Follow @socket.dev on Bluesky](https://img.shields.io/badge/Follow-@socket.dev-1DA1F2?style=social&logo=bluesky)](https://bsky.app/profile/socket.dev)
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @file Abort signal utilities — composite signal construction from multiple
3
+ * sources and timeout-driven signal creation.
4
+ */
5
+ /**
6
+ * Create a composite AbortSignal from multiple signals.
7
+ *
8
+ * @example
9
+ * ;```typescript
10
+ * const ac1 = new AbortController()
11
+ * const ac2 = new AbortController()
12
+ * const signal = createCompositeAbortSignal(ac1.signal, ac2.signal)
13
+ * ```
14
+ */
15
+ export declare function createCompositeAbortSignal(...signals: Array<AbortSignal | null | undefined>): AbortSignal;
16
+ /**
17
+ * Create an AbortSignal that triggers after a timeout.
18
+ *
19
+ * @example
20
+ * ;```typescript
21
+ * const signal = createTimeoutSignal(5000) // aborts after 5 seconds
22
+ * fetch('https://example.com', { signal })
23
+ * ```
24
+ *
25
+ * @throws {TypeError} If `ms` is not a number, is NaN, is not finite, or is not
26
+ * positive.
27
+ */
28
+ export declare function createTimeoutSignal(ms: number): AbortSignal;
@@ -18,13 +18,15 @@ var __copyProps = (to, from, except, desc) => {
18
18
  return to;
19
19
  };
20
20
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
- var abort_exports = {};
22
- __export(abort_exports, {
21
+ var signal_exports = {};
22
+ __export(signal_exports, {
23
23
  createCompositeAbortSignal: () => createCompositeAbortSignal,
24
24
  createTimeoutSignal: () => createTimeoutSignal
25
25
  });
26
- module.exports = __toCommonJS(abort_exports);
27
- var import_primordials = require("./primordials");
26
+ module.exports = __toCommonJS(signal_exports);
27
+ var import_error = require("../primordials/error");
28
+ var import_math = require("../primordials/math");
29
+ var import_number = require("../primordials/number");
28
30
  function createCompositeAbortSignal(...signals) {
29
31
  const validSignals = signals.filter((s) => s != null);
30
32
  if (validSignals.length === 0) {
@@ -44,16 +46,16 @@ function createCompositeAbortSignal(...signals) {
44
46
  return controller.signal;
45
47
  }
46
48
  function createTimeoutSignal(ms) {
47
- if (typeof ms !== "number" || (0, import_primordials.NumberIsNaN)(ms)) {
48
- throw new import_primordials.TypeErrorCtor("timeout must be a number");
49
+ if (typeof ms !== "number" || (0, import_number.NumberIsNaN)(ms)) {
50
+ throw new import_error.TypeErrorCtor("timeout must be a number");
49
51
  }
50
- if (!(0, import_primordials.NumberIsFinite)(ms)) {
51
- throw new import_primordials.TypeErrorCtor("timeout must be a finite number");
52
+ if (!(0, import_number.NumberIsFinite)(ms)) {
53
+ throw new import_error.TypeErrorCtor("timeout must be a finite number");
52
54
  }
53
55
  if (ms <= 0) {
54
- throw new import_primordials.TypeErrorCtor("timeout must be a positive number");
56
+ throw new import_error.TypeErrorCtor("timeout must be a positive number");
55
57
  }
56
- return AbortSignal.timeout((0, import_primordials.MathCeil)(ms));
58
+ return AbortSignal.timeout((0, import_math.MathCeil)(ms));
57
59
  }
58
60
  // Annotate the CommonJS export names for ESM import in node:
59
61
  0 && (module.exports = {
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @file Detect which AI agent CLIs are installed on PATH. Strategy:
3
+ * which()-based lookup with a two-tier cache:
4
+ *
5
+ * 1. In-process Map — survives until the Node process exits.
6
+ * 2. On-disk JSON at `<repo>/.cache/agent-discovery.json`, TTL 1h — survives
7
+ * across subprocess invocations (per-file ai-lint-fix batches) without
8
+ * re-running which(). Cache invalidation: stale on-disk cache is detected
9
+ * by mtime comparison; missing or expired → fresh which() pass + rewrite.
10
+ * Why two tiers: hooks and skills spawn dozens of short-lived Node
11
+ * processes per session. In-process alone misses the cross-process
12
+ * speedup; on-disk alone hits the filesystem on every call. The
13
+ * combination keeps repeated lookups under a millisecond after the
14
+ * cold-start cost.
15
+ */
16
+ import type { DiscoveredAgents } from './types.mts';
17
+ export declare function cachePathFor(repoRoot: string): string;
18
+ /**
19
+ * Discover which AI agent CLIs are installed.
20
+ *
21
+ * @param options.repoRoot - Where to read/write the on-disk cache. Defaults to
22
+ * process.cwd(). Skill runners typically pass the target repo's root.
23
+ * @param options.refresh - When true, bypass both caches and re-run which().
24
+ * Useful after `npm i -g <agent>` mid-session.
25
+ *
26
+ * Returns a map of agent → absolute binary path. Agents that aren't installed
27
+ * are absent from the map (not present-with-undefined), so callers can use
28
+ * `'claude' in agents` for the existence check.
29
+ */
30
+ export declare function discoverAiAgents(options?: {
31
+ readonly refresh?: boolean;
32
+ readonly repoRoot?: string;
33
+ }): Promise<DiscoveredAgents>;
34
+ export declare function discoverFresh(): DiscoveredAgents;
35
+ /**
36
+ * Synchronous in-process lookup. Skips disk cache + which(). Returns undefined
37
+ * if discoverAiAgents() hasn't been called yet in this process, OR returns the
38
+ * most recent discovery result.
39
+ *
40
+ * Useful in fast paths where the caller has already populated the cache and
41
+ * just wants to read it back.
42
+ */
43
+ export declare function getDiscoveredAiAgents(): DiscoveredAgents | undefined;
44
+ export declare function readDiskCache(cachePath: string): DiscoveredAgents | undefined;
45
+ /**
46
+ * Reset the in-process cache. Tests use this; production callers shouldn't need
47
+ * it (use `refresh: true` on discoverAiAgents()).
48
+ */
49
+ export declare function resetAiAgentDiscoveryCache(): void;
50
+ export declare function writeDiskCache(cachePath: string, agents: DiscoveredAgents): Promise<void>;
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ /* Socket Lib - Built with esbuild */
3
+ "use strict";
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all)
12
+ __defProp(target, name, { get: all[name], enumerable: true });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from))
17
+ if (!__hasOwnProp.call(to, key) && key !== except)
18
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
+ mod
29
+ ));
30
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
+ var discover_exports = {};
32
+ __export(discover_exports, {
33
+ cachePathFor: () => cachePathFor,
34
+ discoverAiAgents: () => discoverAiAgents,
35
+ discoverFresh: () => discoverFresh,
36
+ getDiscoveredAiAgents: () => getDiscoveredAiAgents,
37
+ readDiskCache: () => readDiskCache,
38
+ resetAiAgentDiscoveryCache: () => resetAiAgentDiscoveryCache,
39
+ writeDiskCache: () => writeDiskCache
40
+ });
41
+ module.exports = __toCommonJS(discover_exports);
42
+ var import_node_fs = require("node:fs");
43
+ var import_promises = require("node:fs/promises");
44
+ var import_node_path = __toESM(require("node:path"), 1);
45
+ var import_which = require("../bin/which");
46
+ var import_message = require("../errors/message");
47
+ var import_logger = require("../logger/logger");
48
+ var import_json = require("../primordials/json");
49
+ const logger = (0, import_logger.getDefaultLogger)();
50
+ const KNOWN_AGENTS = [
51
+ "claude",
52
+ "codex",
53
+ "gemini",
54
+ "opencode"
55
+ ];
56
+ const CACHE_TTL_MS = 60 * 60 * 1e3;
57
+ let inProcessCache;
58
+ function cachePathFor(repoRoot) {
59
+ return import_node_path.default.join(repoRoot, ".cache", "agent-discovery.json");
60
+ }
61
+ async function discoverAiAgents(options = {}) {
62
+ const { refresh = false, repoRoot = process.cwd() } = options;
63
+ if (!refresh && inProcessCache) {
64
+ return inProcessCache;
65
+ }
66
+ const cachePath = cachePathFor(repoRoot);
67
+ if (!refresh) {
68
+ const fromDisk = readDiskCache(cachePath);
69
+ if (fromDisk) {
70
+ inProcessCache = fromDisk;
71
+ return fromDisk;
72
+ }
73
+ }
74
+ const fresh = discoverFresh();
75
+ inProcessCache = fresh;
76
+ await writeDiskCache(cachePath, fresh);
77
+ return fresh;
78
+ }
79
+ function discoverFresh() {
80
+ const out = {};
81
+ for (const name of KNOWN_AGENTS) {
82
+ const found = (0, import_which.whichSync)(name);
83
+ if (typeof found === "string" && found) {
84
+ out[name] = found;
85
+ }
86
+ }
87
+ return out;
88
+ }
89
+ function getDiscoveredAiAgents() {
90
+ return inProcessCache;
91
+ }
92
+ function readDiskCache(cachePath) {
93
+ if (!(0, import_node_fs.existsSync)(cachePath)) {
94
+ return void 0;
95
+ }
96
+ try {
97
+ const raw = (0, import_node_fs.readFileSync)(cachePath, "utf8");
98
+ const parsed = (0, import_json.JSONParse)(raw);
99
+ if (typeof parsed !== "object" || parsed === null || typeof parsed.writtenAt !== "number" || Date.now() - parsed.writtenAt > CACHE_TTL_MS) {
100
+ return void 0;
101
+ }
102
+ return parsed.agents;
103
+ } catch {
104
+ return void 0;
105
+ }
106
+ }
107
+ function resetAiAgentDiscoveryCache() {
108
+ inProcessCache = void 0;
109
+ }
110
+ async function writeDiskCache(cachePath, agents) {
111
+ try {
112
+ await (0, import_promises.mkdir)(import_node_path.default.dirname(cachePath), { recursive: true });
113
+ const payload = { agents, writtenAt: Date.now() };
114
+ (0, import_node_fs.writeFileSync)(cachePath, (0, import_json.JSONStringify)(payload, void 0, 2) + "\n");
115
+ } catch (e) {
116
+ logger.error(`discoverAiAgents: cache write failed (${(0, import_message.errorMessage)(e)})`);
117
+ }
118
+ }
119
+ // Annotate the CommonJS export names for ESM import in node:
120
+ 0 && (module.exports = {
121
+ cachePathFor,
122
+ discoverAiAgents,
123
+ discoverFresh,
124
+ getDiscoveredAiAgents,
125
+ readDiskCache,
126
+ resetAiAgentDiscoveryCache,
127
+ writeDiskCache
128
+ });
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @file Pre-built lockdown profiles for spawnAiAgent. Per CLAUDE.md
3
+ * "Programmatic Claude calls" rule: every spawn must set tools / disallow /
4
+ * permissionMode (and the helper always sets --no-session-persistence +
5
+ * --add-dir cwd). These profiles are canonical safe defaults that callers
6
+ * spread + override per call. Choose by capability:
7
+ *
8
+ * - `READ_ONLY_PROFILE` — research / scanning. Read + Grep + Glob
9
+ * - WebFetch + WebSearch. No Edit, no Write, no Bash. Use for static analysis
10
+ * skills (scanning-quality, scanning-security).
11
+ * - `EDIT_ONLY_PROFILE` — fix-mode. Read + Edit + Grep + Glob. Bash explicitly
12
+ * denied. Use for skills that mutate source files but don't run arbitrary
13
+ * shell (ai-lint-fix, refactor passes).
14
+ * - `FULL_FIX_PROFILE` — fix-mode WITH Bash. Read + Edit + Write + Grep + Glob
15
+ * - Bash (allowlisted to git/pnpm/node by default). Use for skills that need to
16
+ * commit, run tests, install deps. No `WIDE_OPEN_PROFILE` exists by design
17
+ * — letting an agent run arbitrary tools is the lockdown rule's exact
18
+ * failure mode.
19
+ */
20
+ import type { PermissionMode } from './types.mts';
21
+ interface Profile {
22
+ readonly allow: readonly string[];
23
+ readonly disallow: readonly string[];
24
+ readonly permissionMode: PermissionMode;
25
+ readonly tools: readonly string[];
26
+ }
27
+ /**
28
+ * Read-only research / scanning. No mutation.
29
+ */
30
+ export declare const READ_ONLY_PROFILE: Profile;
31
+ /**
32
+ * Edit-mode without Bash. Mutates source but can't run shell.
33
+ */
34
+ export declare const EDIT_ONLY_PROFILE: Profile;
35
+ /**
36
+ * Fix-mode with Bash, allowlisted to git / pnpm / node.
37
+ */
38
+ export declare const FULL_FIX_PROFILE: Profile;
39
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ /* Socket Lib - Built with esbuild */
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var profiles_exports = {};
22
+ __export(profiles_exports, {
23
+ EDIT_ONLY_PROFILE: () => EDIT_ONLY_PROFILE,
24
+ FULL_FIX_PROFILE: () => FULL_FIX_PROFILE,
25
+ READ_ONLY_PROFILE: () => READ_ONLY_PROFILE
26
+ });
27
+ module.exports = __toCommonJS(profiles_exports);
28
+ const READ_ONLY_PROFILE = {
29
+ allow: [],
30
+ disallow: ["Bash", "Edit", "MultiEdit", "Write"],
31
+ permissionMode: "dontAsk",
32
+ tools: ["Glob", "Grep", "Read", "WebFetch", "WebSearch"]
33
+ };
34
+ const EDIT_ONLY_PROFILE = {
35
+ allow: [],
36
+ disallow: ["Bash", "WebFetch", "WebSearch"],
37
+ permissionMode: "acceptEdits",
38
+ tools: ["Edit", "Glob", "Grep", "MultiEdit", "Read", "Write"]
39
+ };
40
+ const FULL_FIX_PROFILE = {
41
+ allow: [
42
+ "Bash(git status:*)",
43
+ "Bash(git diff:*)",
44
+ "Bash(git log:*)",
45
+ "Bash(git add:*)",
46
+ "Bash(git commit:*)",
47
+ "Bash(node:*)",
48
+ "Bash(pnpm exec:*)",
49
+ "Bash(pnpm run:*)",
50
+ "Bash(pnpm test:*)"
51
+ ],
52
+ disallow: ["WebFetch", "WebSearch"],
53
+ permissionMode: "acceptEdits",
54
+ tools: ["Bash", "Edit", "Glob", "Grep", "MultiEdit", "Read", "Write"]
55
+ };
56
+ // Annotate the CommonJS export names for ESM import in node:
57
+ 0 && (module.exports = {
58
+ EDIT_ONLY_PROFILE,
59
+ FULL_FIX_PROFILE,
60
+ READ_ONLY_PROFILE
61
+ });
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @file Locked-down spawn for AI agent CLIs (Claude / Codex / Gemini /
3
+ * OpenCode). Per the CLAUDE.md "Programmatic Claude calls" rule: every
4
+ * headless invocation MUST set the four lockdown flags (tools / disallow /
5
+ * permissionMode / no-session-persistence). The helper enforces this at the
6
+ * type level (`SpawnAiAgentOptions` requires the relevant fields) AND at the
7
+ * spawn site (per-agent flag translator). Why CLI subprocess instead of an
8
+ * SDK call: the fleet's contract matches what the local user sees when
9
+ * invoking the CLI — same auth config, same model availability, same tool
10
+ * permissions. SDK calls would diverge on auth handling and force per-agent
11
+ * SDK installs. Retry: 3 attempts on overload (HTTP 529 / "Overloaded"), exp.
12
+ * backoff (5s / 15s / 45s). Each retry is a fresh subprocess.
13
+ */
14
+ import type { AgentSpawnResult, AiAgentName, SpawnAiAgentOptions } from './types.mts';
15
+ export declare function backoffFor(attempt: number): number;
16
+ /**
17
+ * Build CLI arg list for a given agent. The flag names differ across agents but
18
+ * the conceptual surface is the same: "here are the allowed tools, here are the
19
+ * denied tools, here is the permission mode, do not persist a session." This
20
+ * translator is the single source of truth for how each agent's flags map.
21
+ *
22
+ * Update sites (when an agent changes its flag surface): 1. The relevant case
23
+ * below. 2. The agent's docs link (cited inline).
24
+ */
25
+ export declare function buildArgs(agent: AiAgentName, opts: SpawnAiAgentOptions): string[];
26
+ export declare function isOverloaded(stdout: string, stderr: string): boolean;
27
+ export declare function pickAgent(requested: AiAgentName | undefined, cwd: string): Promise<AiAgentName>;
28
+ /**
29
+ * Spawn an AI agent CLI subprocess with the locked-down flag set.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * import { EDIT_ONLY_PROFILE } from '@socketsecurity/lib/ai/profiles'
34
+ * import { spawnAiAgent } from '@socketsecurity/lib/ai/spawn'
35
+ *
36
+ * const result = await spawnAiAgent({
37
+ * ...EDIT_ONLY_PROFILE,
38
+ * prompt: 'Fix the lint findings in src/foo.ts',
39
+ * cwd: process.cwd(),
40
+ * model: 'claude-sonnet-4-6',
41
+ * timeoutMs: 5 * 60 * 1000,
42
+ * })
43
+ * if (result.exitCode !== 0) { ... }
44
+ * ```
45
+ *
46
+ * Throws when the requested agent isn't on PATH (or, when no agent
47
+ * is requested, when none of the known agents are on PATH).
48
+ */
49
+ export declare function spawnAiAgent(opts: SpawnAiAgentOptions): Promise<AgentSpawnResult>;