@socketsecurity/lib 6.0.2 → 6.0.4

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 (552) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/_virtual/_rolldown/runtime.js +45 -0
  3. package/dist/abort/signal.js +53 -59
  4. package/dist/ai/discover.js +110 -110
  5. package/dist/ai/profiles.d.mts +48 -25
  6. package/dist/ai/profiles.js +95 -59
  7. package/dist/ai/spawn.d.mts +2 -2
  8. package/dist/ai/spawn.js +172 -194
  9. package/dist/ai/types.d.mts +3 -3
  10. package/dist/ai/types.js +1 -17
  11. package/dist/ai/worktree.d.mts +2 -2
  12. package/dist/ai/worktree.js +160 -183
  13. package/dist/ansi/constants.js +16 -38
  14. package/dist/ansi/strip.js +44 -41
  15. package/dist/archives/_internal.js +64 -73
  16. package/dist/archives/detect.js +30 -43
  17. package/dist/archives/extract.js +43 -50
  18. package/dist/archives/tar.js +197 -228
  19. package/dist/archives/types.js +1 -17
  20. package/dist/archives/zip.js +85 -121
  21. package/dist/argv/flag-predicates.js +203 -101
  22. package/dist/argv/flag-types.js +96 -113
  23. package/dist/argv/parse-args-string.d.ts +16 -14
  24. package/dist/argv/parse-args-string.js +42 -39
  25. package/dist/argv/parse.js +145 -163
  26. package/dist/arrays/_internal.js +65 -48
  27. package/dist/arrays/chunk.js +51 -40
  28. package/dist/arrays/join.js +87 -35
  29. package/dist/arrays/predicates.js +46 -28
  30. package/dist/arrays/unique.js +45 -31
  31. package/dist/bin/_internal.js +34 -42
  32. package/dist/bin/check-primordials.js +175 -233
  33. package/dist/bin/check.js +51 -72
  34. package/dist/bin/exec.js +70 -74
  35. package/dist/bin/find.js +151 -134
  36. package/dist/bin/resolve.js +180 -246
  37. package/dist/bin/shadow.js +24 -33
  38. package/dist/bin/socket-lib.js +51 -73
  39. package/dist/bin/types.js +1 -17
  40. package/dist/bin/which.js +211 -146
  41. package/dist/cacache/_internal.js +25 -40
  42. package/dist/cacache/clear.js +79 -72
  43. package/dist/cacache/read.js +48 -46
  44. package/dist/cacache/tmp.js +29 -36
  45. package/dist/cacache/types.js +1 -17
  46. package/dist/cacache/write.js +43 -48
  47. package/dist/cache/ttl/store.js +232 -288
  48. package/dist/cache/ttl/types.js +1 -17
  49. package/dist/checks/primordials-defaults.js +83 -89
  50. package/dist/checks/primordials.js +225 -277
  51. package/dist/colors/convert.js +45 -37
  52. package/dist/colors/palette.js +88 -45
  53. package/dist/colors/socket-palette.js +74 -84
  54. package/dist/colors/types.js +1 -17
  55. package/dist/compression/_internal.js +57 -72
  56. package/dist/compression/brotli.js +94 -127
  57. package/dist/compression/gzip.js +95 -121
  58. package/dist/compression/types.js +1 -17
  59. package/dist/constants/agents.js +61 -113
  60. package/dist/constants/encoding.js +19 -42
  61. package/dist/constants/github.js +12 -30
  62. package/dist/constants/licenses.js +48 -63
  63. package/dist/constants/lifecycle-script-names.js +31 -45
  64. package/dist/constants/maintained-node-versions.js +22 -37
  65. package/dist/constants/node.js +226 -167
  66. package/dist/constants/package-default-node-range.js +16 -41
  67. package/dist/constants/package-default-socket-categories.js +12 -30
  68. package/dist/constants/packages.js +77 -126
  69. package/dist/constants/platform.js +27 -49
  70. package/dist/constants/sentinels.js +23 -48
  71. package/dist/constants/socket.js +42 -87
  72. package/dist/constants/testing.js +15 -34
  73. package/dist/constants/time.js +16 -36
  74. package/dist/constants/typescript.js +32 -52
  75. package/dist/cover/code.js +111 -142
  76. package/dist/cover/formatters.js +118 -101
  77. package/dist/cover/type.js +50 -76
  78. package/dist/cover/types.js +1 -17
  79. package/dist/crypto/hash.js +54 -46
  80. package/dist/debug/_internal.js +62 -71
  81. package/dist/debug/caller-info.js +53 -64
  82. package/dist/debug/namespace.js +80 -90
  83. package/dist/debug/output.js +172 -188
  84. package/dist/debug/types.js +1 -17
  85. package/dist/dlx/_internal.js +24 -43
  86. package/dist/dlx/arborist.js +162 -160
  87. package/dist/dlx/binary-cache.js +228 -200
  88. package/dist/dlx/binary-download.js +172 -211
  89. package/dist/dlx/binary-resolution.js +165 -157
  90. package/dist/dlx/binary-types.js +1 -17
  91. package/dist/dlx/binary.js +149 -189
  92. package/dist/dlx/cache.js +45 -30
  93. package/dist/dlx/detect.js +245 -167
  94. package/dist/dlx/dir.js +67 -51
  95. package/dist/dlx/firewall.js +62 -100
  96. package/dist/dlx/lockfile.js +122 -127
  97. package/dist/dlx/manifest.js +264 -274
  98. package/dist/dlx/package.js +241 -244
  99. package/dist/dlx/packages.js +99 -96
  100. package/dist/dlx/paths.js +73 -59
  101. package/dist/dlx/spec.js +52 -60
  102. package/dist/dlx/types.js +1 -17
  103. package/dist/eco/cargo/lockfile-format.js +19 -36
  104. package/dist/eco/cargo/manifest-format.js +17 -35
  105. package/dist/eco/cargo/parse-lockfile.js +210 -237
  106. package/dist/eco/manifest/analyze-lockfile.js +46 -63
  107. package/dist/eco/manifest/detect-format.js +66 -90
  108. package/dist/eco/manifest/find-packages.js +39 -64
  109. package/dist/eco/manifest/get-package-versions.js +27 -48
  110. package/dist/eco/manifest/get-package.js +21 -40
  111. package/dist/eco/manifest/manifest-error.js +14 -35
  112. package/dist/eco/manifest/parse-lockfile.js +40 -86
  113. package/dist/eco/manifest/parse-manifest.js +26 -43
  114. package/dist/eco/manifest/parse.js +26 -47
  115. package/dist/eco/manifest/types.js +1 -17
  116. package/dist/eco/npm/bun/exec.js +23 -32
  117. package/dist/eco/npm/manifest-format.js +21 -35
  118. package/dist/eco/npm/npm/exec.js +51 -61
  119. package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
  120. package/dist/eco/npm/npm/flags.js +80 -52
  121. package/dist/eco/npm/npm/lockfile-format.js +21 -40
  122. package/dist/eco/npm/npm/parse-git-url.js +26 -40
  123. package/dist/eco/npm/npm/parse-lockfile.js +184 -210
  124. package/dist/eco/npm/parse-package-json.js +71 -102
  125. package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
  126. package/dist/eco/npm/pnpm/exec.js +51 -62
  127. package/dist/eco/npm/pnpm/flags.js +75 -68
  128. package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
  129. package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
  130. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
  131. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
  132. package/dist/eco/npm/script.js +82 -90
  133. package/dist/eco/npm/vlt/exec.js +24 -32
  134. package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
  135. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
  136. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
  137. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
  138. package/dist/eco/purl.js +50 -60
  139. package/dist/eco/types.js +1 -17
  140. package/dist/effects/pulse-frames.js +64 -65
  141. package/dist/effects/shimmer-keyframes.js +71 -52
  142. package/dist/effects/shimmer-terminal.js +81 -50
  143. package/dist/effects/shimmer.js +290 -153
  144. package/dist/env/boolean.js +42 -43
  145. package/dist/env/case-insensitive.js +54 -39
  146. package/dist/env/ci.js +29 -31
  147. package/dist/env/debug.js +28 -31
  148. package/dist/env/github.js +144 -59
  149. package/dist/env/home.js +38 -31
  150. package/dist/env/locale.js +59 -39
  151. package/dist/env/node-auth-token.js +28 -31
  152. package/dist/env/node-env.js +28 -31
  153. package/dist/env/npm.js +94 -47
  154. package/dist/env/number.js +50 -51
  155. package/dist/env/package-manager.js +95 -83
  156. package/dist/env/path.js +28 -31
  157. package/dist/env/pre-commit.js +30 -32
  158. package/dist/env/proxy.js +121 -122
  159. package/dist/env/rewire.js +204 -96
  160. package/dist/env/shell.js +28 -31
  161. package/dist/env/socket-cli.js +233 -81
  162. package/dist/env/socket.js +521 -156
  163. package/dist/env/string.js +43 -44
  164. package/dist/env/temp-dir.js +59 -39
  165. package/dist/env/term.js +28 -31
  166. package/dist/env/test.js +65 -43
  167. package/dist/env/types.js +1 -17
  168. package/dist/env/windows.js +78 -43
  169. package/dist/env/xdg.js +62 -39
  170. package/dist/errors/message.js +40 -46
  171. package/dist/errors/predicates.js +61 -49
  172. package/dist/errors/stack.js +24 -36
  173. package/dist/events/exit/_internal.js +86 -103
  174. package/dist/events/exit/handler.js +48 -55
  175. package/dist/events/exit/intercept.js +49 -70
  176. package/dist/events/exit/lifecycle.js +92 -101
  177. package/dist/events/exit/signals.js +25 -31
  178. package/dist/events/exit/types.js +1 -17
  179. package/dist/events/warning/handler.js +43 -40
  180. package/dist/events/warning/suppress.js +111 -90
  181. package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
  182. package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
  183. package/dist/external/@npmcli/package-json.js +12705 -15140
  184. package/dist/external/@npmcli/promise-spawn.js +451 -472
  185. package/dist/external/@sinclair/typebox/value.js +7443 -9002
  186. package/dist/external/@sinclair/typebox.js +7516 -7885
  187. package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
  188. package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
  189. package/dist/external/@socketregistry/yocto-spinner.js +394 -455
  190. package/dist/external/@yarnpkg/extensions.js +435 -1022
  191. package/dist/external/adm-zip.js +2313 -2673
  192. package/dist/external/debug.js +700 -687
  193. package/dist/external/external-pack.js +2658 -3171
  194. package/dist/external/fast-sort.js +124 -138
  195. package/dist/external/get-east-asian-width.js +70 -64
  196. package/dist/external/libnpmexec.js +28 -31
  197. package/dist/external/npm-pack.js +43617 -50137
  198. package/dist/external/p-map.js +198 -222
  199. package/dist/external/pico-pack.js +6735 -7304
  200. package/dist/external/pony-cause.js +143 -139
  201. package/dist/external/shell-quote.js +226 -0
  202. package/dist/external/spdx-pack.js +1283 -1403
  203. package/dist/external/streaming-iterables.js +835 -1052
  204. package/dist/external/tar-fs.js +2769 -3048
  205. package/dist/external/which.js +267 -251
  206. package/dist/external/yargs-parser.js +851 -1074
  207. package/dist/external-tools/bazel/asset-names.js +98 -90
  208. package/dist/external-tools/bazel/from-download.js +52 -46
  209. package/dist/external-tools/bazel/from-path.js +27 -38
  210. package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
  211. package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
  212. package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
  213. package/dist/external-tools/bazel/resolve.js +44 -58
  214. package/dist/external-tools/bazel/types.js +1 -17
  215. package/dist/external-tools/cdxgen/asset-names.js +59 -66
  216. package/dist/external-tools/cdxgen/from-download.js +52 -80
  217. package/dist/external-tools/cdxgen/from-path.js +19 -37
  218. package/dist/external-tools/cdxgen/from-vfs.js +22 -43
  219. package/dist/external-tools/cdxgen/resolve.js +48 -63
  220. package/dist/external-tools/cdxgen/types.js +1 -17
  221. package/dist/external-tools/from-download.js +107 -67
  222. package/dist/external-tools/janus/asset-names.js +44 -51
  223. package/dist/external-tools/janus/from-download.js +45 -70
  224. package/dist/external-tools/janus/from-path.js +19 -37
  225. package/dist/external-tools/janus/from-vfs.js +22 -43
  226. package/dist/external-tools/janus/resolve.js +45 -63
  227. package/dist/external-tools/janus/types.js +1 -17
  228. package/dist/external-tools/jre/asset-names.js +109 -82
  229. package/dist/external-tools/jre/detect-platform-arch.js +25 -49
  230. package/dist/external-tools/jre/from-download.js +71 -67
  231. package/dist/external-tools/jre/from-java-home.js +27 -54
  232. package/dist/external-tools/jre/from-path.js +27 -49
  233. package/dist/external-tools/jre/from-vfs.js +39 -60
  234. package/dist/external-tools/jre/resolve.js +55 -68
  235. package/dist/external-tools/jre/types.js +1 -17
  236. package/dist/external-tools/manifest.js +130 -150
  237. package/dist/external-tools/opengrep/asset-names.js +60 -72
  238. package/dist/external-tools/opengrep/from-download.js +58 -80
  239. package/dist/external-tools/opengrep/from-path.js +19 -37
  240. package/dist/external-tools/opengrep/from-vfs.js +23 -43
  241. package/dist/external-tools/opengrep/resolve.js +43 -63
  242. package/dist/external-tools/opengrep/types.js +1 -17
  243. package/dist/external-tools/sbt/asset-names.js +21 -30
  244. package/dist/external-tools/sbt/from-download.js +50 -61
  245. package/dist/external-tools/sbt/from-path.js +23 -38
  246. package/dist/external-tools/sbt/from-vfs.js +30 -44
  247. package/dist/external-tools/sbt/resolve.js +45 -63
  248. package/dist/external-tools/sbt/types.js +1 -17
  249. package/dist/external-tools/synp/asset-names.js +11 -29
  250. package/dist/external-tools/synp/from-download.js +24 -41
  251. package/dist/external-tools/synp/from-path.js +19 -37
  252. package/dist/external-tools/synp/from-vfs.js +22 -43
  253. package/dist/external-tools/synp/resolve.js +43 -62
  254. package/dist/external-tools/synp/types.js +1 -17
  255. package/dist/external-tools/trivy/asset-names.js +51 -62
  256. package/dist/external-tools/trivy/from-download.js +42 -64
  257. package/dist/external-tools/trivy/from-path.js +19 -37
  258. package/dist/external-tools/trivy/from-vfs.js +22 -43
  259. package/dist/external-tools/trivy/resolve.js +43 -63
  260. package/dist/external-tools/trivy/types.js +1 -17
  261. package/dist/external-tools/trufflehog/asset-names.js +54 -66
  262. package/dist/external-tools/trufflehog/from-download.js +44 -62
  263. package/dist/external-tools/trufflehog/from-path.js +21 -37
  264. package/dist/external-tools/trufflehog/from-vfs.js +26 -43
  265. package/dist/external-tools/trufflehog/resolve.js +43 -63
  266. package/dist/external-tools/trufflehog/types.js +1 -17
  267. package/dist/external-tools/uv/asset-names.js +64 -74
  268. package/dist/external-tools/uv/from-download.js +44 -65
  269. package/dist/external-tools/uv/from-path.js +19 -37
  270. package/dist/external-tools/uv/from-vfs.js +22 -43
  271. package/dist/external-tools/uv/resolve.js +42 -63
  272. package/dist/external-tools/uv/types.js +1 -17
  273. package/dist/fs/_internal.js +40 -42
  274. package/dist/fs/access.d.ts +32 -0
  275. package/dist/fs/access.js +66 -0
  276. package/dist/fs/encoding.js +80 -97
  277. package/dist/fs/find-up.js +126 -147
  278. package/dist/fs/inspect.js +168 -99
  279. package/dist/fs/path-cache.js +31 -32
  280. package/dist/fs/read-dir.js +102 -79
  281. package/dist/fs/read-file.js +177 -118
  282. package/dist/fs/read-json-cache.js +150 -134
  283. package/dist/fs/read-json.js +172 -187
  284. package/dist/fs/resolve-module.d.ts +57 -0
  285. package/dist/fs/resolve-module.js +40 -0
  286. package/dist/fs/safe.js +278 -169
  287. package/dist/fs/types.js +1 -17
  288. package/dist/fs/unique.js +52 -48
  289. package/dist/fs/validate.js +56 -43
  290. package/dist/fs/write-json.js +109 -75
  291. package/dist/git/_internal.js +251 -216
  292. package/dist/git/changed.js +191 -74
  293. package/dist/git/repo.js +118 -104
  294. package/dist/git/staged.js +172 -62
  295. package/dist/git/types.js +1 -17
  296. package/dist/git/unstaged.js +175 -62
  297. package/dist/github/constants.js +25 -33
  298. package/dist/github/errors.js +46 -38
  299. package/dist/github/fetch.js +137 -82
  300. package/dist/github/ghsa.js +217 -151
  301. package/dist/github/refs-cache.js +54 -43
  302. package/dist/github/refs-graphql.js +97 -89
  303. package/dist/github/refs-rest.js +70 -101
  304. package/dist/github/refs.js +105 -64
  305. package/dist/github/token.js +96 -48
  306. package/dist/github/types.js +1 -17
  307. package/dist/globs/_internal.js +73 -82
  308. package/dist/globs/defaults.js +40 -59
  309. package/dist/globs/match.js +93 -77
  310. package/dist/globs/matcher.js +104 -92
  311. package/dist/globs/stream.js +43 -55
  312. package/dist/globs/types.js +1 -17
  313. package/dist/http-request/_internal.js +11 -38
  314. package/dist/http-request/browser-fetch.js +19 -29
  315. package/dist/http-request/browser.js +188 -206
  316. package/dist/http-request/checksums.js +101 -65
  317. package/dist/http-request/download-types.js +1 -17
  318. package/dist/http-request/download.js +195 -196
  319. package/dist/http-request/errors.js +39 -47
  320. package/dist/http-request/headers.js +95 -80
  321. package/dist/http-request/http-request.js +10 -35
  322. package/dist/http-request/node.js +71 -97
  323. package/dist/http-request/request-attempt.js +232 -285
  324. package/dist/http-request/request-types.js +1 -17
  325. package/dist/http-request/request.js +106 -108
  326. package/dist/http-request/response-reader.js +47 -51
  327. package/dist/http-request/response-types.js +22 -38
  328. package/dist/http-request/user-agent.js +73 -55
  329. package/dist/integrity.js +105 -106
  330. package/dist/ipc/_internal.js +34 -48
  331. package/dist/ipc/directory.js +55 -63
  332. package/dist/ipc/paths.js +52 -45
  333. package/dist/ipc/types.js +1 -17
  334. package/dist/ipc/write.js +81 -74
  335. package/dist/ipc-cli/get.js +29 -56
  336. package/dist/ipc-cli/types.js +1 -17
  337. package/dist/json/edit.js +182 -242
  338. package/dist/json/format.js +202 -103
  339. package/dist/json/parse.js +206 -109
  340. package/dist/json/types.js +1 -17
  341. package/dist/links/create.js +93 -60
  342. package/dist/links/types.js +1 -17
  343. package/dist/logger/_internal.js +109 -73
  344. package/dist/logger/browser.js +45 -56
  345. package/dist/logger/colors.js +31 -49
  346. package/dist/logger/console.js +89 -112
  347. package/dist/logger/default.js +19 -33
  348. package/dist/logger/logger.js +5 -29
  349. package/dist/logger/node.js +794 -854
  350. package/dist/logger/symbols-builder.js +54 -56
  351. package/dist/logger/symbols.js +135 -118
  352. package/dist/logger/types.js +1 -17
  353. package/dist/memo/_internal.js +39 -49
  354. package/dist/memo/async.js +133 -117
  355. package/dist/memo/clear.js +25 -34
  356. package/dist/memo/decorator.js +43 -37
  357. package/dist/memo/memoize.js +97 -88
  358. package/dist/memo/once.js +42 -41
  359. package/dist/memo/types.js +1 -17
  360. package/dist/memo/weak.js +45 -41
  361. package/dist/node/async-hooks.js +9 -30
  362. package/dist/node/child-process.js +9 -30
  363. package/dist/node/crypto.js +9 -30
  364. package/dist/node/events.js +9 -30
  365. package/dist/node/fs-promises.js +9 -30
  366. package/dist/node/fs.js +9 -30
  367. package/dist/node/http.js +9 -30
  368. package/dist/node/https.js +9 -30
  369. package/dist/node/module.js +20 -34
  370. package/dist/node/os.js +9 -30
  371. package/dist/node/path.js +9 -30
  372. package/dist/node/timers-promises.js +9 -30
  373. package/dist/node/url.js +9 -30
  374. package/dist/node/util.js +9 -30
  375. package/dist/objects/getters.js +185 -126
  376. package/dist/objects/inspect.js +85 -52
  377. package/dist/objects/mutate.js +96 -76
  378. package/dist/objects/predicates.js +112 -59
  379. package/dist/objects/sort.js +120 -76
  380. package/dist/objects/types.js +1 -17
  381. package/dist/packages/edit-class.js +198 -265
  382. package/dist/packages/edit.js +79 -86
  383. package/dist/packages/exports.js +146 -157
  384. package/dist/packages/isolation.js +159 -209
  385. package/dist/packages/licenses.js +207 -189
  386. package/dist/packages/manifest.js +134 -172
  387. package/dist/packages/normalize.js +91 -102
  388. package/dist/packages/operations.d.ts +2 -0
  389. package/dist/packages/operations.js +283 -254
  390. package/dist/packages/provenance.js +195 -245
  391. package/dist/packages/specs.js +94 -84
  392. package/dist/packages/types.js +1 -17
  393. package/dist/packages/validation.js +49 -50
  394. package/dist/paths/_internal.js +82 -86
  395. package/dist/paths/conversion.js +112 -65
  396. package/dist/paths/dirnames.js +17 -42
  397. package/dist/paths/exts.js +23 -54
  398. package/dist/paths/filenames.js +21 -50
  399. package/dist/paths/globs.js +15 -38
  400. package/dist/paths/normalize.js +215 -236
  401. package/dist/paths/packages.js +34 -49
  402. package/dist/paths/predicates.js +184 -106
  403. package/dist/paths/resolve.js +146 -128
  404. package/dist/paths/rewire.js +108 -72
  405. package/dist/paths/socket.js +252 -132
  406. package/dist/paths/walk.d.ts +40 -0
  407. package/dist/paths/walk.js +58 -0
  408. package/dist/perf/_internal.js +10 -28
  409. package/dist/perf/enabled.js +21 -30
  410. package/dist/perf/metrics.js +81 -67
  411. package/dist/perf/report.js +79 -80
  412. package/dist/perf/timer.js +180 -126
  413. package/dist/perf/types.js +1 -17
  414. package/dist/pkg-ext/data.js +29 -82
  415. package/dist/pkg-ext/types.js +1 -17
  416. package/dist/primordials/array.js +120 -198
  417. package/dist/primordials/buffer.js +28 -51
  418. package/dist/primordials/date.js +26 -51
  419. package/dist/primordials/error.js +33 -59
  420. package/dist/primordials/function.js +21 -41
  421. package/dist/primordials/globals.js +25 -48
  422. package/dist/primordials/json.js +14 -30
  423. package/dist/primordials/map-set.js +88 -152
  424. package/dist/primordials/math.js +59 -116
  425. package/dist/primordials/number.js +41 -76
  426. package/dist/primordials/object.js +56 -116
  427. package/dist/primordials/promise.js +28 -52
  428. package/dist/primordials/reflect.js +24 -52
  429. package/dist/primordials/regexp.js +25 -47
  430. package/dist/primordials/string.js +114 -167
  431. package/dist/primordials/symbol.js +40 -72
  432. package/dist/primordials/uncurry.js +38 -55
  433. package/dist/primordials/url.js +27 -66
  434. package/dist/process/_internal.js +7 -32
  435. package/dist/process/abort.js +29 -35
  436. package/dist/process/lock-instance.js +26 -30
  437. package/dist/process/lock-manager.js +279 -307
  438. package/dist/process/lock-types.js +1 -17
  439. package/dist/process/spawn/_internal.js +43 -55
  440. package/dist/process/spawn/child.js +172 -211
  441. package/dist/process/spawn/errors.js +116 -113
  442. package/dist/process/spawn/stdio.js +51 -35
  443. package/dist/process/spawn/types.js +1 -17
  444. package/dist/process/transient.js +49 -66
  445. package/dist/promises/_internal.d.ts +8 -2
  446. package/dist/promises/_internal.js +31 -38
  447. package/dist/promises/iterate.js +238 -102
  448. package/dist/promises/options.js +123 -101
  449. package/dist/promises/queue.js +115 -136
  450. package/dist/promises/resolvers.js +77 -46
  451. package/dist/promises/retry.js +156 -101
  452. package/dist/promises/types.js +1 -17
  453. package/dist/regexps/escape.js +32 -30
  454. package/dist/regexps/hex.js +16 -33
  455. package/dist/regexps/spec.js +53 -81
  456. package/dist/releases/github-archives.js +127 -118
  457. package/dist/releases/github-asset-url.js +162 -155
  458. package/dist/releases/github-assets.js +37 -49
  459. package/dist/releases/github-auth.js +32 -48
  460. package/dist/releases/github-downloads.js +118 -138
  461. package/dist/releases/github-listing.js +175 -154
  462. package/dist/releases/github-retry-config.d.ts +31 -0
  463. package/dist/releases/github-retry-config.js +46 -0
  464. package/dist/releases/github-types.js +1 -17
  465. package/dist/releases/socket-btm.js +273 -192
  466. package/dist/schema/parse.js +35 -36
  467. package/dist/schema/types.js +1 -17
  468. package/dist/schema/validate.js +118 -99
  469. package/dist/sea/detect.js +57 -52
  470. package/dist/secrets/_internal.js +86 -67
  471. package/dist/secrets/find.js +96 -77
  472. package/dist/secrets/keychain.js +315 -309
  473. package/dist/secrets/linux.js +133 -135
  474. package/dist/secrets/macos.js +151 -147
  475. package/dist/secrets/rc.js +182 -181
  476. package/dist/secrets/socket-api-token.js +28 -43
  477. package/dist/secrets/types.js +1 -17
  478. package/dist/secrets/windows.js +184 -242
  479. package/dist/shadow/skip.js +51 -70
  480. package/dist/shadow/types.js +1 -17
  481. package/dist/shell/parse.d.ts +26 -0
  482. package/dist/shell/parse.js +35 -0
  483. package/dist/shell/quote.d.ts +19 -0
  484. package/dist/shell/quote.js +30 -0
  485. package/dist/smol/detect.js +67 -43
  486. package/dist/smol/http.js +33 -37
  487. package/dist/smol/https.js +31 -37
  488. package/dist/smol/manifest.js +33 -37
  489. package/dist/smol/path.d.ts +51 -0
  490. package/dist/smol/path.js +38 -0
  491. package/dist/smol/primordial.js +35 -37
  492. package/dist/smol/purl.js +34 -37
  493. package/dist/smol/versions.js +31 -37
  494. package/dist/smol/vfs.js +46 -38
  495. package/dist/sorts/_internal.js +14 -40
  496. package/dist/sorts/natural.js +57 -64
  497. package/dist/sorts/semver.js +33 -43
  498. package/dist/sorts/strings.js +24 -30
  499. package/dist/sorts/types.js +1 -17
  500. package/dist/spinner/default.js +72 -63
  501. package/dist/spinner/format.js +86 -71
  502. package/dist/spinner/spinner.js +749 -797
  503. package/dist/spinner/types.js +1 -17
  504. package/dist/spinner/with.js +193 -137
  505. package/dist/ssri/convert.js +64 -47
  506. package/dist/ssri/parse.js +38 -37
  507. package/dist/ssri/validate.js +51 -34
  508. package/dist/stdio/_internal.js +50 -46
  509. package/dist/stdio/clear.js +208 -86
  510. package/dist/stdio/divider.js +170 -97
  511. package/dist/stdio/footer.js +116 -110
  512. package/dist/stdio/header.js +117 -90
  513. package/dist/stdio/progress.js +189 -218
  514. package/dist/stdio/prompts.js +244 -168
  515. package/dist/stdio/stderr.js +173 -78
  516. package/dist/stdio/stdout.js +177 -94
  517. package/dist/streams/parallel.js +58 -50
  518. package/dist/streams/transform.js +36 -45
  519. package/dist/strings/format.js +145 -63
  520. package/dist/strings/predicates.js +56 -34
  521. package/dist/strings/search.js +52 -42
  522. package/dist/strings/transform.js +113 -72
  523. package/dist/strings/types.js +1 -17
  524. package/dist/strings/width.js +89 -82
  525. package/dist/tables/bordered.js +81 -81
  526. package/dist/tables/padding.js +36 -46
  527. package/dist/tables/simple.js +62 -70
  528. package/dist/tables/types.js +1 -17
  529. package/dist/temporal/instant.js +72 -81
  530. package/dist/temporal/now.js +40 -31
  531. package/dist/temporal/slots.js +42 -36
  532. package/dist/temporal/system.js +36 -36
  533. package/dist/temporal/temporal.js +11 -41
  534. package/dist/themes/context.js +131 -69
  535. package/dist/themes/resolve.js +207 -132
  536. package/dist/themes/themes.js +225 -194
  537. package/dist/themes/types.js +1 -17
  538. package/dist/url/parse.js +48 -51
  539. package/dist/url/predicates.js +24 -31
  540. package/dist/url/search-params.js +133 -101
  541. package/dist/url/types.js +1 -17
  542. package/dist/versions/_internal.js +31 -33
  543. package/dist/versions/compare.js +80 -58
  544. package/dist/versions/modify.js +41 -39
  545. package/dist/versions/parse.js +88 -64
  546. package/dist/versions/range.js +58 -41
  547. package/dist/versions/types.js +1 -17
  548. package/dist/words/article.js +22 -30
  549. package/dist/words/capitalize.js +25 -34
  550. package/dist/words/pluralize.js +23 -31
  551. package/dist/words/types.js +1 -17
  552. package/package.json +42 -5
@@ -1,61 +1,97 @@
1
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"]
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ //#region src/ai/profiles.mts
6
+ /**
7
+ * Capability ladder of lockdown profiles, ordered least → most capable. Key
8
+ * order documents the ladder; each tier is a strict superset of the previous
9
+ * tier's tool surface.
10
+ */
11
+ const AI_PROFILE = {
12
+ read: {
13
+ allow: [],
14
+ disallow: [
15
+ "Agent",
16
+ "Bash",
17
+ "Edit",
18
+ "MultiEdit",
19
+ "Write"
20
+ ],
21
+ permissionMode: "dontAsk",
22
+ tools: [
23
+ "Glob",
24
+ "Grep",
25
+ "Read",
26
+ "WebFetch",
27
+ "WebSearch"
28
+ ]
29
+ },
30
+ edit: {
31
+ allow: [],
32
+ disallow: [
33
+ "Agent",
34
+ "Bash",
35
+ "MultiEdit",
36
+ "WebFetch",
37
+ "WebSearch",
38
+ "Write"
39
+ ],
40
+ permissionMode: "acceptEdits",
41
+ tools: [
42
+ "Edit",
43
+ "Glob",
44
+ "Grep",
45
+ "Read"
46
+ ]
47
+ },
48
+ create: {
49
+ allow: [],
50
+ disallow: [
51
+ "Agent",
52
+ "Bash",
53
+ "WebFetch",
54
+ "WebSearch"
55
+ ],
56
+ permissionMode: "acceptEdits",
57
+ tools: [
58
+ "Edit",
59
+ "Glob",
60
+ "Grep",
61
+ "MultiEdit",
62
+ "Read",
63
+ "Write"
64
+ ]
65
+ },
66
+ full: {
67
+ allow: [
68
+ "Bash(git status:*)",
69
+ "Bash(git diff:*)",
70
+ "Bash(git log:*)",
71
+ "Bash(git add:*)",
72
+ "Bash(git commit:*)",
73
+ "Bash(node:*)",
74
+ "Bash(pnpm exec:*)",
75
+ "Bash(pnpm run:*)",
76
+ "Bash(pnpm test:*)"
77
+ ],
78
+ disallow: [
79
+ "Agent",
80
+ "WebFetch",
81
+ "WebSearch"
82
+ ],
83
+ permissionMode: "acceptEdits",
84
+ tools: [
85
+ "Bash",
86
+ "Edit",
87
+ "Glob",
88
+ "Grep",
89
+ "MultiEdit",
90
+ "Read",
91
+ "Write"
92
+ ]
93
+ }
55
94
  };
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
- });
95
+
96
+ //#endregion
97
+ exports.AI_PROFILE = AI_PROFILE;
@@ -30,11 +30,11 @@ export declare function pickAgent(requested: AiAgentName | undefined, cwd: strin
30
30
  *
31
31
  * @example
32
32
  * ```ts
33
- * import { EDIT_ONLY_PROFILE } from '@socketsecurity/lib/ai/profiles'
33
+ * import { AI_PROFILE } from '@socketsecurity/lib/ai/profiles'
34
34
  * import { spawnAiAgent } from '@socketsecurity/lib/ai/spawn'
35
35
  *
36
36
  * const result = await spawnAiAgent({
37
- * ...EDIT_ONLY_PROFILE,
37
+ * ...AI_PROFILE.edit,
38
38
  * prompt: 'Fix the lint findings in src/foo.ts',
39
39
  * cwd: process.cwd(),
40
40
  * model: 'claude-sonnet-4-6',
package/dist/ai/spawn.js CHANGED
@@ -1,207 +1,185 @@
1
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 spawn_exports = {};
22
- __export(spawn_exports, {
23
- backoffFor: () => backoffFor,
24
- buildArgs: () => buildArgs,
25
- isOverloaded: () => isOverloaded,
26
- pickAgent: () => pickAgent,
27
- spawnAiAgent: () => spawnAiAgent
28
- });
29
- module.exports = __toCommonJS(spawn_exports);
30
- var import_message = require("../errors/message");
31
- var import_object = require("../primordials/object");
32
- var import_child = require("../process/spawn/child");
33
- var import_errors = require("../process/spawn/errors");
34
- var import_discover = require("./discover");
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_object = require('../primordials/object.js');
5
+ const require_errors_message = require('../errors/message.js');
6
+ const require_ai_discover = require('./discover.js');
7
+ const require_process_spawn_errors = require('../process/spawn/errors.js');
8
+ const require_process_spawn_child = require('../process/spawn/child.js');
9
+
10
+ //#region src/ai/spawn.mts
11
+ /**
12
+ * @file Locked-down spawn for AI agent CLIs (Claude / Codex / Gemini /
13
+ * OpenCode). Per the CLAUDE.md "Programmatic Claude calls" rule: every
14
+ * headless invocation MUST set the four lockdown flags (tools / disallow /
15
+ * permissionMode / no-session-persistence). The helper enforces this at the
16
+ * type level (`SpawnAiAgentOptions` requires the relevant fields) AND at the
17
+ * spawn site (per-agent flag translator). Why CLI subprocess instead of an
18
+ * SDK call: the fleet's contract matches what the local user sees when
19
+ * invoking the CLI — same auth config, same model availability, same tool
20
+ * permissions. SDK calls would diverge on auth handling and force per-agent
21
+ * SDK installs. Retry: 3 attempts on overload (HTTP 529 / "Overloaded"), exp.
22
+ * backoff (5s / 15s / 45s). Each retry is a fresh subprocess.
23
+ */
35
24
  const MAX_ATTEMPTS = 3;
36
25
  const BACKOFF_BASE_MS = 5e3;
37
26
  function backoffFor(attempt) {
38
- return BACKOFF_BASE_MS * 3 ** (attempt - 1);
27
+ return BACKOFF_BASE_MS * 3 ** (attempt - 1);
39
28
  }
29
+ /**
30
+ * Build CLI arg list for a given agent. The flag names differ across agents but
31
+ * the conceptual surface is the same: "here are the allowed tools, here are the
32
+ * denied tools, here is the permission mode, do not persist a session." This
33
+ * translator is the single source of truth for how each agent's flags map.
34
+ *
35
+ * Update sites (when an agent changes its flag surface): 1. The relevant case
36
+ * below. 2. The agent's docs link (cited inline).
37
+ */
40
38
  function buildArgs(agent, opts) {
41
- const allAllowed = [...opts.tools, ...opts.allow ?? []];
42
- switch (agent) {
43
- case "claude": {
44
- const args = [
45
- "--print",
46
- "--no-session-persistence",
47
- "--permission-mode",
48
- opts.permissionMode,
49
- "--add-dir",
50
- opts.cwd
51
- ];
52
- for (const dir of opts.addDirs ?? []) {
53
- args.push("--add-dir", dir);
54
- }
55
- if (opts.model) {
56
- args.push("--model", opts.model);
57
- }
58
- if (allAllowed.length > 0) {
59
- args.push("--allowedTools", ...allAllowed);
60
- }
61
- if (opts.disallow.length > 0) {
62
- args.push("--disallowedTools", ...opts.disallow);
63
- }
64
- if (opts.extraArgs) {
65
- args.push(...opts.extraArgs);
66
- }
67
- return args;
68
- }
69
- case "codex": {
70
- const args = ["--print"];
71
- if (opts.permissionMode === "plan") {
72
- args.push("--read-only");
73
- }
74
- if (opts.model) {
75
- args.push("--model", opts.model);
76
- }
77
- if (allAllowed.length > 0) {
78
- args.push("--tools", allAllowed.join(","));
79
- }
80
- if (opts.disallow.length > 0) {
81
- args.push("--disallow-tools", opts.disallow.join(","));
82
- }
83
- args.push("--cwd", opts.cwd);
84
- if (opts.extraArgs) {
85
- args.push(...opts.extraArgs);
86
- }
87
- return args;
88
- }
89
- case "gemini": {
90
- const args = ["--no-interactive", "--workspace", opts.cwd];
91
- if (opts.model) {
92
- args.push("--model", opts.model);
93
- }
94
- if (allAllowed.length > 0) {
95
- args.push("--allowed-tools", allAllowed.join(","));
96
- }
97
- if (opts.disallow.length > 0) {
98
- args.push("--denied-tools", opts.disallow.join(","));
99
- }
100
- if (opts.permissionMode === "plan") {
101
- args.push("--read-only");
102
- }
103
- if (opts.extraArgs) {
104
- args.push(...opts.extraArgs);
105
- }
106
- return args;
107
- }
108
- case "opencode": {
109
- const args = ["--print", "--cwd", opts.cwd];
110
- if (opts.model) {
111
- args.push("--model", opts.model);
112
- }
113
- if (allAllowed.length > 0) {
114
- args.push("--tools", allAllowed.join(","));
115
- }
116
- if (opts.disallow.length > 0) {
117
- args.push("--no-tools", opts.disallow.join(","));
118
- }
119
- if (opts.extraArgs) {
120
- args.push(...opts.extraArgs);
121
- }
122
- return args;
123
- }
124
- }
39
+ const allAllowed = [...opts.tools, ...opts.allow ?? []];
40
+ switch (agent) {
41
+ case "claude": {
42
+ const args = [
43
+ "--print",
44
+ "--no-session-persistence",
45
+ "--permission-mode",
46
+ opts.permissionMode,
47
+ "--add-dir",
48
+ opts.cwd
49
+ ];
50
+ for (const dir of opts.addDirs ?? []) args.push("--add-dir", dir);
51
+ if (opts.model) args.push("--model", opts.model);
52
+ if (allAllowed.length > 0) args.push("--allowedTools", ...allAllowed);
53
+ if (opts.disallow.length > 0) args.push("--disallowedTools", ...opts.disallow);
54
+ if (opts.extraArgs) args.push(...opts.extraArgs);
55
+ return args;
56
+ }
57
+ case "codex": {
58
+ const args = ["--print"];
59
+ if (opts.permissionMode === "plan") args.push("--read-only");
60
+ if (opts.model) args.push("--model", opts.model);
61
+ if (allAllowed.length > 0) args.push("--tools", allAllowed.join(","));
62
+ if (opts.disallow.length > 0) args.push("--disallow-tools", opts.disallow.join(","));
63
+ args.push("--cwd", opts.cwd);
64
+ if (opts.extraArgs) args.push(...opts.extraArgs);
65
+ return args;
66
+ }
67
+ case "gemini": {
68
+ const args = [
69
+ "--no-interactive",
70
+ "--workspace",
71
+ opts.cwd
72
+ ];
73
+ if (opts.model) args.push("--model", opts.model);
74
+ if (allAllowed.length > 0) args.push("--allowed-tools", allAllowed.join(","));
75
+ if (opts.disallow.length > 0) args.push("--denied-tools", opts.disallow.join(","));
76
+ if (opts.permissionMode === "plan") args.push("--read-only");
77
+ if (opts.extraArgs) args.push(...opts.extraArgs);
78
+ return args;
79
+ }
80
+ case "opencode": {
81
+ const args = [
82
+ "--print",
83
+ "--cwd",
84
+ opts.cwd
85
+ ];
86
+ if (opts.model) args.push("--model", opts.model);
87
+ if (allAllowed.length > 0) args.push("--tools", allAllowed.join(","));
88
+ if (opts.disallow.length > 0) args.push("--no-tools", opts.disallow.join(","));
89
+ if (opts.extraArgs) args.push(...opts.extraArgs);
90
+ return args;
91
+ }
92
+ }
125
93
  }
126
94
  function isOverloaded(stdout, stderr) {
127
- const re = /API Error: 529|Overloaded/i;
128
- return re.test(stdout) || re.test(stderr);
95
+ const re = /API Error: 529|Overloaded/i;
96
+ return re.test(stdout) || re.test(stderr);
129
97
  }
130
98
  async function pickAgent(requested, cwd) {
131
- const discovered = await (0, import_discover.discoverAiAgents)({ repoRoot: cwd });
132
- if (requested) {
133
- if (!(requested in discovered)) {
134
- throw new Error(
135
- `spawnAiAgent: requested agent "${requested}" is not on PATH. Install the CLI or pass a different agent. Discovered: ${(0, import_object.ObjectKeys)(discovered).join(", ") || "(none)"}`
136
- );
137
- }
138
- return requested;
139
- }
140
- if ("claude" in discovered) {
141
- return "claude";
142
- }
143
- for (const candidate of ["codex", "opencode", "gemini"]) {
144
- if (candidate in discovered) {
145
- return candidate;
146
- }
147
- }
148
- throw new Error(
149
- "spawnAiAgent: no AI agent CLI on PATH. Install one of: claude, codex, opencode, gemini."
150
- );
99
+ const discovered = await require_ai_discover.discoverAiAgents({ repoRoot: cwd });
100
+ if (requested) {
101
+ if (!(requested in discovered)) throw new Error(`spawnAiAgent: requested agent "${requested}" is not on PATH. Install the CLI or pass a different agent. Discovered: ${require_primordials_object.ObjectKeys(discovered).join(", ") || "(none)"}`);
102
+ return requested;
103
+ }
104
+ if ("claude" in discovered) return "claude";
105
+ for (const candidate of [
106
+ "codex",
107
+ "opencode",
108
+ "gemini"
109
+ ]) if (candidate in discovered) return candidate;
110
+ throw new Error("spawnAiAgent: no AI agent CLI on PATH. Install one of: claude, codex, opencode, gemini.");
151
111
  }
112
+ /**
113
+ * Spawn an AI agent CLI subprocess with the locked-down flag set.
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * import { AI_PROFILE } from '@socketsecurity/lib/ai/profiles'
118
+ * import { spawnAiAgent } from '@socketsecurity/lib/ai/spawn'
119
+ *
120
+ * const result = await spawnAiAgent({
121
+ * ...AI_PROFILE.edit,
122
+ * prompt: 'Fix the lint findings in src/foo.ts',
123
+ * cwd: process.cwd(),
124
+ * model: 'claude-sonnet-4-6',
125
+ * timeoutMs: 5 * 60 * 1000,
126
+ * })
127
+ * if (result.exitCode !== 0) { ... }
128
+ * ```
129
+ *
130
+ * Throws when the requested agent isn't on PATH (or, when no agent
131
+ * is requested, when none of the known agents are on PATH).
132
+ */
152
133
  async function spawnAiAgent(opts) {
153
- const agent = await pickAgent(opts.agent, opts.cwd);
154
- const args = buildArgs(agent, opts);
155
- let stdout = "";
156
- let stderr = "";
157
- let exitCode = 0;
158
- let attempts = 0;
159
- const start = Date.now();
160
- while (attempts < MAX_ATTEMPTS) {
161
- attempts += 1;
162
- stdout = "";
163
- stderr = "";
164
- exitCode = 0;
165
- try {
166
- const child = (0, import_child.spawn)(agent, args, {
167
- cwd: opts.cwd,
168
- stdio: "pipe",
169
- stdioString: true,
170
- timeout: opts.timeoutMs
171
- });
172
- child.stdin?.end(opts.prompt);
173
- const result = await child;
174
- stdout = String(result.stdout ?? "");
175
- stderr = String(result.stderr ?? "");
176
- exitCode = result.code ?? 0;
177
- } catch (e) {
178
- if ((0, import_errors.isSpawnError)(e)) {
179
- stdout = String(e.stdout ?? "");
180
- stderr = String(e.stderr ?? "");
181
- exitCode = e.code ?? 1;
182
- } else {
183
- stderr = (0, import_message.errorMessage)(e);
184
- exitCode = 1;
185
- }
186
- }
187
- if (!isOverloaded(stdout, stderr) || attempts >= MAX_ATTEMPTS) {
188
- break;
189
- }
190
- await new Promise((resolve) => setTimeout(resolve, backoffFor(attempts)));
191
- }
192
- return {
193
- attempts,
194
- durationMs: Date.now() - start,
195
- exitCode,
196
- stderr,
197
- stdout
198
- };
134
+ const agent = await pickAgent(opts.agent, opts.cwd);
135
+ const args = buildArgs(agent, opts);
136
+ let stdout = "";
137
+ let stderr = "";
138
+ let exitCode = 0;
139
+ let attempts = 0;
140
+ const start = Date.now();
141
+ while (attempts < MAX_ATTEMPTS) {
142
+ attempts += 1;
143
+ stdout = "";
144
+ stderr = "";
145
+ exitCode = 0;
146
+ try {
147
+ const child = require_process_spawn_child.spawn(agent, args, {
148
+ cwd: opts.cwd,
149
+ stdio: "pipe",
150
+ stdioString: true,
151
+ timeout: opts.timeoutMs
152
+ });
153
+ child.stdin?.end(opts.prompt);
154
+ const result = await child;
155
+ stdout = String(result.stdout ?? "");
156
+ stderr = String(result.stderr ?? "");
157
+ exitCode = result.code ?? 0;
158
+ } catch (e) {
159
+ if (/* @__PURE__ */ require_process_spawn_errors.isSpawnError(e)) {
160
+ stdout = String(e.stdout ?? "");
161
+ stderr = String(e.stderr ?? "");
162
+ exitCode = e.code ?? 1;
163
+ } else {
164
+ stderr = require_errors_message.errorMessage(e);
165
+ exitCode = 1;
166
+ }
167
+ }
168
+ if (!isOverloaded(stdout, stderr) || attempts >= MAX_ATTEMPTS) break;
169
+ await new Promise((resolve) => setTimeout(resolve, backoffFor(attempts)));
170
+ }
171
+ return {
172
+ attempts,
173
+ durationMs: Date.now() - start,
174
+ exitCode,
175
+ stderr,
176
+ stdout
177
+ };
199
178
  }
200
- // Annotate the CommonJS export names for ESM import in node:
201
- 0 && (module.exports = {
202
- backoffFor,
203
- buildArgs,
204
- isOverloaded,
205
- pickAgent,
206
- spawnAiAgent
207
- });
179
+
180
+ //#endregion
181
+ exports.backoffFor = backoffFor;
182
+ exports.buildArgs = buildArgs;
183
+ exports.isOverloaded = isOverloaded;
184
+ exports.pickAgent = pickAgent;
185
+ exports.spawnAiAgent = spawnAiAgent;
@@ -42,9 +42,9 @@ export interface AgentSpawnResult {
42
42
  *
43
43
  * Required: `prompt`, `cwd`, `tools`, `disallow`, `permissionMode`.
44
44
  *
45
- * Pre-built profiles in `profiles.ts` cover the common shapes
46
- * (READ_ONLY_PROFILE, EDIT_ONLY_PROFILE) — callers spread the profile and
47
- * override per-call (model, timeout, addDirs).
45
+ * Pre-built profiles in `profiles.ts` cover the common shapes (the `AI_PROFILE`
46
+ * capability ladder) — callers spread a tier and override per-call (model,
47
+ * timeout, addDirs).
48
48
  *
49
49
  * Why the lockdown fields are required (not defaulted to a permissive shape):
50
50
  * the CLAUDE.md rule says "all four lockdown flags MUST be set on every spawn."
package/dist/ai/types.js CHANGED
@@ -1,18 +1,2 @@
1
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 __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
17
- var types_exports = {};
18
- module.exports = __toCommonJS(types_exports);
2
+ /* Socket Lib - Built with rolldown */
@@ -77,14 +77,14 @@ export declare function runOne<I, T>(item: I, index: number, worktreeBranch: str
77
77
  * ;```ts
78
78
  * import { spawnAiAgentsInWorktrees } from '@socketsecurity/lib/ai/worktree'
79
79
  * import { spawnAiAgent } from '@socketsecurity/lib/ai/spawn'
80
- * import { EDIT_ONLY_PROFILE } from '@socketsecurity/lib/ai/profiles'
80
+ * import { AI_PROFILE } from '@socketsecurity/lib/ai/profiles'
81
81
  *
82
82
  * const repos = ['socket-addon', 'socket-btm', 'socket-lib']
83
83
  * const settled = await spawnAiAgentsInWorktrees(
84
84
  * repos,
85
85
  * async ({ cwd }) => {
86
86
  * return await spawnAiAgent({
87
- * ...EDIT_ONLY_PROFILE,
87
+ * ...AI_PROFILE.create,
88
88
  * prompt: 'Run the cleanup task',
89
89
  * cwd,
90
90
  * })