pybao-cli 1.3.3 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -440
- package/README.zh-CN.md +35 -35
- package/cli-acp.js +3 -3
- package/cli.js +4 -4
- package/dist/REPL-4YZC3LJO.js +42 -0
- package/dist/{acp-75HO2LBV.js → acp-SE4B3WSL.js} +43 -43
- package/dist/acp-SE4B3WSL.js.map +7 -0
- package/dist/{agentsValidate-6Z57ARKC.js → agentsValidate-LZISHE5F.js} +15 -15
- package/dist/agentsValidate-LZISHE5F.js.map +7 -0
- package/dist/{ask-NXXXCGY4.js → ask-5IDOHI4E.js} +26 -26
- package/dist/ask-5IDOHI4E.js.map +7 -0
- package/dist/{autoUpdater-PJMGNPUG.js → autoUpdater-ECGS62JN.js} +3 -3
- package/dist/{chunk-6RZIUY5K.js → chunk-3X2KNIS3.js} +5 -5
- package/dist/chunk-3X2KNIS3.js.map +7 -0
- package/dist/{chunk-VTVTEE5N.js → chunk-4U4MLA4R.js} +18 -18
- package/dist/chunk-4U4MLA4R.js.map +7 -0
- package/dist/{chunk-PCXUZ6AT.js → chunk-5AGDLQAW.js} +3 -3
- package/dist/chunk-5AGDLQAW.js.map +7 -0
- package/dist/{chunk-27GYWUY2.js → chunk-5JHD6MUL.js} +3 -3
- package/dist/chunk-5JHD6MUL.js.map +7 -0
- package/dist/{chunk-Z3HMXDXP.js → chunk-5JTKXNG4.js} +6 -6
- package/dist/chunk-5JTKXNG4.js.map +7 -0
- package/dist/{chunk-HIRIJ2LQ.js → chunk-5UJ7KHM7.js} +34 -33
- package/dist/chunk-5UJ7KHM7.js.map +7 -0
- package/dist/{chunk-JKGOGSFT.js → chunk-6BSVSUGW.js} +3 -3
- package/dist/{chunk-4XPNRLJG.js → chunk-AT7FEIUK.js} +7 -7
- package/dist/chunk-AT7FEIUK.js.map +7 -0
- package/dist/{chunk-T6GVXTNQ.js → chunk-B6IMQJZM.js} +7 -7
- package/dist/chunk-B6IMQJZM.js.map +7 -0
- package/dist/{chunk-ZJGXEWKF.js → chunk-BO63S4OP.js} +9 -9
- package/dist/chunk-BO63S4OP.js.map +7 -0
- package/dist/{chunk-6WELHKDA.js → chunk-C66U55GA.js} +11 -11
- package/dist/chunk-C66U55GA.js.map +7 -0
- package/dist/{chunk-3KNGJX7Q.js → chunk-CTKC574I.js} +11 -11
- package/dist/chunk-CTKC574I.js.map +7 -0
- package/dist/{chunk-QBHEERCF.js → chunk-E2R24MD6.js} +139 -129
- package/dist/chunk-E2R24MD6.js.map +7 -0
- package/dist/{chunk-3PDD7M4T.js → chunk-EGHIB45T.js} +5 -5
- package/dist/chunk-EGHIB45T.js.map +7 -0
- package/dist/{chunk-TXFCNQDE.js → chunk-G2W2B3A3.js} +25 -25
- package/dist/chunk-G2W2B3A3.js.map +7 -0
- package/dist/{chunk-XXFY63TM.js → chunk-HBWCMS4E.js} +7 -7
- package/dist/chunk-HBWCMS4E.js.map +7 -0
- package/dist/{chunk-3ZNSAB7B.js → chunk-KVP2VINI.js} +4 -4
- package/dist/chunk-KVP2VINI.js.map +7 -0
- package/dist/{chunk-JZDE77EH.js → chunk-MLU76W2R.js} +3 -3
- package/dist/{chunk-SWYJOV5E.js → chunk-MRHGVQ5T.js} +1 -1
- package/dist/{chunk-SWYJOV5E.js.map → chunk-MRHGVQ5T.js.map} +1 -1
- package/dist/{chunk-VRGR4ZTQ.js → chunk-MWPFU2KU.js} +2 -2
- package/dist/chunk-MWPFU2KU.js.map +7 -0
- package/dist/{chunk-7AAE6EO2.js → chunk-NAXCFXKW.js} +7 -7
- package/dist/chunk-NAXCFXKW.js.map +7 -0
- package/dist/{chunk-ICTEVBLN.js → chunk-NRKOXQT5.js} +11 -11
- package/dist/chunk-NRKOXQT5.js.map +7 -0
- package/dist/{chunk-BQA2EOUU.js → chunk-OTNHBUGC.js} +5 -5
- package/dist/chunk-OTNHBUGC.js.map +7 -0
- package/dist/{chunk-WPTPPOYN.js → chunk-PGLKCZAE.js} +2 -2
- package/dist/{chunk-UUNVJZWA.js → chunk-PMKSJ3AZ.js} +3 -3
- package/dist/chunk-PMKSJ3AZ.js.map +7 -0
- package/dist/{chunk-QIHB5PYM.js → chunk-R6WNNB47.js} +6 -6
- package/dist/{chunk-QIHB5PYM.js.map → chunk-R6WNNB47.js.map} +2 -2
- package/dist/{chunk-Q24ZGKIE.js → chunk-V3AKMLFM.js} +14 -14
- package/dist/chunk-V3AKMLFM.js.map +7 -0
- package/dist/{chunk-T7GPUZVK.js → chunk-VF3J4G4Z.js} +27 -27
- package/dist/chunk-VF3J4G4Z.js.map +7 -0
- package/dist/{chunk-4SNFQYCY.js → chunk-VKMVP2QQ.js} +12 -12
- package/dist/chunk-VKMVP2QQ.js.map +7 -0
- package/dist/chunk-XI4LTVYT.js.map +7 -0
- package/dist/{chunk-A6PUMROK.js → chunk-YDXW3IJK.js} +4 -4
- package/dist/{chunk-A6PUMROK.js.map → chunk-YDXW3IJK.js.map} +1 -1
- package/dist/{chunk-HB2P6645.js → chunk-ZZQ6WGYG.js} +4 -4
- package/dist/{cli-RFYBXM7F.js → cli-MBYLENJH.js} +119 -119
- package/dist/cli-MBYLENJH.js.map +7 -0
- package/dist/commands-ECIN5O3E.js +46 -0
- package/dist/{config-5OPX3H2K.js → config-45ETSXTS.js} +4 -4
- package/dist/{context-THRRBPFP.js → context-34YXWOMP.js} +5 -5
- package/dist/{customCommands-4XOZH44N.js → customCommands-J52KDUBX.js} +4 -4
- package/dist/{env-EL4KBHMB.js → env-ODQXSPMW.js} +8 -8
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/{llm-A3BCM4Q2.js → llm-BBYIGM3X.js} +34 -34
- package/dist/llm-BBYIGM3X.js.map +7 -0
- package/dist/{llmLazy-ZJSRLZVD.js → llmLazy-VHWTJ7FY.js} +1 -1
- package/dist/{loader-HZQBWO74.js → loader-TXZ3EJZO.js} +4 -4
- package/dist/{mcp-XKOJ55B2.js → mcp-SHR6KH2Y.js} +7 -7
- package/dist/{mentionProcessor-ANYU5MLF.js → mentionProcessor-CDELTWDV.js} +5 -5
- package/dist/{messages-75DL5XBP.js → messages-R4ICGYOI.js} +1 -1
- package/dist/{model-OPJGJZRC.js → model-AO4OE46E.js} +5 -5
- package/dist/{openai-DT54BAFP.js → openai-F7WL45GM.js} +5 -5
- package/dist/{outputStyles-TPFVI52O.js → outputStyles-BWAE3CTZ.js} +4 -4
- package/dist/{pluginRuntime-W74PYSZ4.js → pluginRuntime-AHKVCUSE.js} +8 -8
- package/dist/pluginRuntime-AHKVCUSE.js.map +7 -0
- package/dist/{pluginValidation-FALYRVI2.js → pluginValidation-YSUVH4GM.js} +6 -6
- package/dist/prompts-4AUAETB4.js +48 -0
- package/dist/pybAgentSessionId-3HDHCCI5.js +13 -0
- package/dist/pybAgentSessionLoad-5FMAFO4P.js +18 -0
- package/dist/pybAgentSessionResume-GCVJHXVV.js +16 -0
- package/dist/{kodeAgentStreamJson-3T26CHCP.js → pybAgentStreamJson-UG22YE4Z.js} +5 -5
- package/dist/{kodeAgentStreamJsonSession-BZS2VDCY.js → pybAgentStreamJsonSession-BRWXPZ5Z.js} +9 -9
- package/dist/pybAgentStreamJsonSession-BRWXPZ5Z.js.map +7 -0
- package/dist/{kodeAgentStructuredStdio-TNB6U6SP.js → pybAgentStructuredStdio-QDF6UGAJ.js} +3 -3
- package/dist/{kodeHooks-VUAWIY2D.js → pybHooks-WXEUSK2Y.js} +7 -7
- package/dist/query-JNWSOFYQ.js +50 -0
- package/dist/{ripgrep-XJGSUBG7.js → ripgrep-ON745BFW.js} +3 -3
- package/dist/{skillMarketplace-AUGKNCPW.js → skillMarketplace-ZLW4PQFC.js} +3 -3
- package/dist/{state-DQYRXKTG.js → state-E57SH5ZM.js} +2 -2
- package/dist/{theme-MS5HDUBJ.js → theme-XJG6O2YU.js} +5 -5
- package/dist/{toolPermissionSettings-4MPZVYDR.js → toolPermissionSettings-BXLCU7BK.js} +6 -6
- package/dist/tools-UJZBVLIU.js +47 -0
- package/dist/{userInput-F2PGBRFU.js → userInput-IVM4BDPE.js} +34 -34
- package/dist/userInput-IVM4BDPE.js.map +7 -0
- package/package.json +1 -1
- package/scripts/binary-utils.cjs +8 -8
- package/scripts/cli-acp-wrapper.cjs +3 -3
- package/scripts/cli-wrapper.cjs +4 -4
- package/scripts/postinstall.js +7 -7
- package/dist/REPL-WPV32MTF.js +0 -42
- package/dist/acp-75HO2LBV.js.map +0 -7
- package/dist/agentsValidate-6Z57ARKC.js.map +0 -7
- package/dist/ask-NXXXCGY4.js.map +0 -7
- package/dist/chunk-27GYWUY2.js.map +0 -7
- package/dist/chunk-3KNGJX7Q.js.map +0 -7
- package/dist/chunk-3PDD7M4T.js.map +0 -7
- package/dist/chunk-3ZNSAB7B.js.map +0 -7
- package/dist/chunk-4SNFQYCY.js.map +0 -7
- package/dist/chunk-4XPNRLJG.js.map +0 -7
- package/dist/chunk-6RZIUY5K.js.map +0 -7
- package/dist/chunk-6WELHKDA.js.map +0 -7
- package/dist/chunk-7AAE6EO2.js.map +0 -7
- package/dist/chunk-BQA2EOUU.js.map +0 -7
- package/dist/chunk-HIRIJ2LQ.js.map +0 -7
- package/dist/chunk-ICTEVBLN.js.map +0 -7
- package/dist/chunk-M624LT6O.js.map +0 -7
- package/dist/chunk-PCXUZ6AT.js.map +0 -7
- package/dist/chunk-Q24ZGKIE.js.map +0 -7
- package/dist/chunk-QBHEERCF.js.map +0 -7
- package/dist/chunk-T6GVXTNQ.js.map +0 -7
- package/dist/chunk-T7GPUZVK.js.map +0 -7
- package/dist/chunk-TXFCNQDE.js.map +0 -7
- package/dist/chunk-UUNVJZWA.js.map +0 -7
- package/dist/chunk-VRGR4ZTQ.js.map +0 -7
- package/dist/chunk-VTVTEE5N.js.map +0 -7
- package/dist/chunk-XXFY63TM.js.map +0 -7
- package/dist/chunk-Z3HMXDXP.js.map +0 -7
- package/dist/chunk-ZJGXEWKF.js.map +0 -7
- package/dist/cli-RFYBXM7F.js.map +0 -7
- package/dist/commands-YOXMODDO.js +0 -46
- package/dist/kodeAgentSessionId-PROTVRBR.js +0 -13
- package/dist/kodeAgentSessionLoad-UMPV7MC3.js +0 -18
- package/dist/kodeAgentSessionResume-YJS4FVQM.js +0 -16
- package/dist/kodeAgentStreamJsonSession-BZS2VDCY.js.map +0 -7
- package/dist/llm-A3BCM4Q2.js.map +0 -7
- package/dist/pluginRuntime-W74PYSZ4.js.map +0 -7
- package/dist/prompts-J4TPRMJ3.js +0 -48
- package/dist/query-K3QKBVDN.js +0 -50
- package/dist/tools-QW6SIJLJ.js +0 -47
- package/dist/userInput-F2PGBRFU.js.map +0 -7
- /package/dist/{REPL-WPV32MTF.js.map → REPL-4YZC3LJO.js.map} +0 -0
- /package/dist/{autoUpdater-PJMGNPUG.js.map → autoUpdater-ECGS62JN.js.map} +0 -0
- /package/dist/{chunk-JKGOGSFT.js.map → chunk-6BSVSUGW.js.map} +0 -0
- /package/dist/{chunk-JZDE77EH.js.map → chunk-MLU76W2R.js.map} +0 -0
- /package/dist/{chunk-WPTPPOYN.js.map → chunk-PGLKCZAE.js.map} +0 -0
- /package/dist/{chunk-M624LT6O.js → chunk-XI4LTVYT.js} +0 -0
- /package/dist/{chunk-HB2P6645.js.map → chunk-ZZQ6WGYG.js.map} +0 -0
- /package/dist/{commands-YOXMODDO.js.map → commands-ECIN5O3E.js.map} +0 -0
- /package/dist/{config-5OPX3H2K.js.map → config-45ETSXTS.js.map} +0 -0
- /package/dist/{context-THRRBPFP.js.map → context-34YXWOMP.js.map} +0 -0
- /package/dist/{customCommands-4XOZH44N.js.map → customCommands-J52KDUBX.js.map} +0 -0
- /package/dist/{env-EL4KBHMB.js.map → env-ODQXSPMW.js.map} +0 -0
- /package/dist/{kodeAgentSessionId-PROTVRBR.js.map → llmLazy-VHWTJ7FY.js.map} +0 -0
- /package/dist/{kodeAgentSessionLoad-UMPV7MC3.js.map → loader-TXZ3EJZO.js.map} +0 -0
- /package/dist/{kodeAgentSessionResume-YJS4FVQM.js.map → mcp-SHR6KH2Y.js.map} +0 -0
- /package/dist/{mentionProcessor-ANYU5MLF.js.map → mentionProcessor-CDELTWDV.js.map} +0 -0
- /package/dist/{kodeAgentStreamJson-3T26CHCP.js.map → messages-R4ICGYOI.js.map} +0 -0
- /package/dist/{kodeAgentStructuredStdio-TNB6U6SP.js.map → model-AO4OE46E.js.map} +0 -0
- /package/dist/{kodeHooks-VUAWIY2D.js.map → openai-F7WL45GM.js.map} +0 -0
- /package/dist/{llmLazy-ZJSRLZVD.js.map → outputStyles-BWAE3CTZ.js.map} +0 -0
- /package/dist/{loader-HZQBWO74.js.map → pluginValidation-YSUVH4GM.js.map} +0 -0
- /package/dist/{mcp-XKOJ55B2.js.map → prompts-4AUAETB4.js.map} +0 -0
- /package/dist/{messages-75DL5XBP.js.map → pybAgentSessionId-3HDHCCI5.js.map} +0 -0
- /package/dist/{model-OPJGJZRC.js.map → pybAgentSessionLoad-5FMAFO4P.js.map} +0 -0
- /package/dist/{openai-DT54BAFP.js.map → pybAgentSessionResume-GCVJHXVV.js.map} +0 -0
- /package/dist/{outputStyles-TPFVI52O.js.map → pybAgentStreamJson-UG22YE4Z.js.map} +0 -0
- /package/dist/{pluginValidation-FALYRVI2.js.map → pybAgentStructuredStdio-QDF6UGAJ.js.map} +0 -0
- /package/dist/{prompts-J4TPRMJ3.js.map → pybHooks-WXEUSK2Y.js.map} +0 -0
- /package/dist/{query-K3QKBVDN.js.map → query-JNWSOFYQ.js.map} +0 -0
- /package/dist/{ripgrep-XJGSUBG7.js.map → ripgrep-ON745BFW.js.map} +0 -0
- /package/dist/{skillMarketplace-AUGKNCPW.js.map → skillMarketplace-ZLW4PQFC.js.map} +0 -0
- /package/dist/{state-DQYRXKTG.js.map → state-E57SH5ZM.js.map} +0 -0
- /package/dist/{theme-MS5HDUBJ.js.map → theme-XJG6O2YU.js.map} +0 -0
- /package/dist/{toolPermissionSettings-4MPZVYDR.js.map → toolPermissionSettings-BXLCU7BK.js.map} +0 -0
- /package/dist/{tools-QW6SIJLJ.js.map → tools-UJZBVLIU.js.map} +0 -0
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
BunShell,
|
|
5
5
|
execFileNoThrow,
|
|
6
6
|
logError
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-G2W2B3A3.js";
|
|
8
8
|
|
|
9
9
|
// src/utils/system/ripgrep.ts
|
|
10
10
|
import { rgPath } from "@vscode/ripgrep";
|
|
@@ -14,16 +14,16 @@ import { existsSync } from "node:fs";
|
|
|
14
14
|
import { execFile } from "child_process";
|
|
15
15
|
import debug from "debug";
|
|
16
16
|
import { quote } from "shell-quote";
|
|
17
|
-
var d = debug("
|
|
17
|
+
var d = debug("pyb:ripgrep");
|
|
18
18
|
function isTruthyEnv(value) {
|
|
19
19
|
if (!value) return false;
|
|
20
20
|
return ["1", "true", "yes", "on"].includes(value.trim().toLowerCase());
|
|
21
21
|
}
|
|
22
22
|
function resolveRipgrepPathOrThrow() {
|
|
23
|
-
const explicit = process.env.
|
|
23
|
+
const explicit = process.env.PYB_RIPGREP_PATH;
|
|
24
24
|
if (explicit) {
|
|
25
25
|
if (!existsSync(explicit)) {
|
|
26
|
-
throw new Error(`
|
|
26
|
+
throw new Error(`PYB_RIPGREP_PATH points to a missing file: ${explicit}`);
|
|
27
27
|
}
|
|
28
28
|
return explicit;
|
|
29
29
|
}
|
|
@@ -41,7 +41,7 @@ function resolveRipgrepPathOrThrow() {
|
|
|
41
41
|
"ripgrep (rg) was not found on PATH, and @vscode/ripgrep is missing.",
|
|
42
42
|
"Fix:",
|
|
43
43
|
"- Install ripgrep: https://github.com/BurntSushi/ripgrep",
|
|
44
|
-
"- Or reinstall
|
|
44
|
+
"- Or reinstall pyb (ensure dependencies are present)"
|
|
45
45
|
].join("\n")
|
|
46
46
|
);
|
|
47
47
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/utils/system/ripgrep.ts"],
|
|
4
|
+
"sourcesContent": ["import { rgPath } from '@vscode/ripgrep'\nimport { findActualExecutable } from 'spawn-rx'\nimport { memoize } from 'lodash-es'\nimport { existsSync } from 'node:fs'\nimport { execFile } from 'child_process'\nimport debug from 'debug'\nimport { quote } from 'shell-quote'\nimport { logError } from '@utils/log'\nimport { execFileNoThrow } from '@utils/system/execFileNoThrow'\nimport type { BunShellSandboxOptions } from '@utils/bun/shell'\nimport { BunShell } from '@utils/bun/shell'\n\nconst d = debug('pyb:ripgrep')\n\nfunction isTruthyEnv(value: string | undefined): boolean {\n if (!value) return false\n return ['1', 'true', 'yes', 'on'].includes(value.trim().toLowerCase())\n}\n\nfunction resolveRipgrepPathOrThrow(): string {\n const explicit = process.env.PYB_RIPGREP_PATH\n if (explicit) {\n if (!existsSync(explicit)) {\n throw new Error(`PYB_RIPGREP_PATH points to a missing file: ${explicit}`)\n }\n return explicit\n }\n\n const preferBundled = isTruthyEnv(process.env.USE_BUILTIN_RIPGREP)\n if (!preferBundled) {\n const { cmd } = findActualExecutable('rg', [])\n d(`ripgrep initially resolved as: ${cmd}`)\n if (cmd !== 'rg') {\n return cmd\n }\n }\n\n if (!rgPath || !existsSync(rgPath)) {\n throw new Error(\n [\n 'ripgrep (rg) was not found on PATH, and @vscode/ripgrep is missing.',\n 'Fix:',\n '- Install ripgrep: https://github.com/BurntSushi/ripgrep',\n '- Or reinstall pyb (ensure dependencies are present)',\n ].join('\\n'),\n )\n }\n\n d('Using @vscode/ripgrep fallback: %s', rgPath)\n return rgPath\n}\n\nexport const getRipgrepPath = memoize((): string => resolveRipgrepPathOrThrow())\n\nexport async function ripGrep(\n args: string[],\n target: string,\n abortSignal: AbortSignal,\n options?: { sandbox?: BunShellSandboxOptions },\n): Promise<string[]> {\n await codesignRipgrepIfNecessary()\n const rg = getRipgrepPath()\n d('ripgrep called: %s %o', rg, target, args)\n\n if (options?.sandbox?.enabled === true) {\n const cmd = quote([rg, ...args, target])\n const result = await BunShell.getInstance().exec(cmd, abortSignal, 10_000, {\n sandbox: options.sandbox,\n })\n if (result.code === 1) return []\n if (result.code !== 0) {\n logError(`ripgrep failed with exit code ${result.code}: ${result.stderr}`)\n return []\n }\n return result.stdout.trim().split('\\n').filter(Boolean)\n }\n\n return new Promise(resolve => {\n execFile(\n rg,\n [...args, target],\n {\n maxBuffer: 1_000_000,\n signal: abortSignal,\n timeout: 10_000,\n },\n (error, stdout) => {\n if (error) {\n if (error.code !== 1) {\n d('ripgrep error: %o', error)\n logError(error)\n }\n resolve([])\n } else {\n d('ripgrep succeeded with %s', stdout)\n resolve(stdout.trim().split('\\n').filter(Boolean))\n }\n },\n )\n })\n}\n\nexport async function listAllContentFiles(\n path: string,\n abortSignal: AbortSignal,\n limit: number,\n): Promise<string[]> {\n try {\n d('listAllContentFiles called: %s', path)\n return (await ripGrep(['-l', '.', path], path, abortSignal)).slice(0, limit)\n } catch (e) {\n d('listAllContentFiles failed: %o', e)\n\n logError(e)\n return []\n }\n}\n\nlet alreadyDoneSignCheck = false\nasync function codesignRipgrepIfNecessary(): Promise<void> {\n if (process.platform !== 'darwin' || alreadyDoneSignCheck) {\n return\n }\n\n alreadyDoneSignCheck = true\n\n d('checking if ripgrep is already signed')\n const lines = (\n await execFileNoThrow(\n 'codesign',\n ['-vv', '-d', getRipgrepPath()],\n undefined,\n undefined,\n false,\n )\n ).stdout.split('\\n')\n\n const needsSigned = lines.find(line => line.includes('linker-signed'))\n if (!needsSigned) {\n d('seems to be already signed')\n return\n }\n\n try {\n d('signing ripgrep')\n const signResult = await execFileNoThrow('codesign', [\n '--sign',\n '-',\n '--force',\n '--preserve-metadata=entitlements,requirements,flags,runtime',\n getRipgrepPath(),\n ])\n\n if (signResult.code !== 0) {\n d('failed to sign ripgrep: %o', signResult)\n logError(\n `Failed to sign ripgrep: ${signResult.stdout} ${signResult.stderr}`,\n )\n }\n\n d('removing quarantine')\n const quarantineResult = await execFileNoThrow('xattr', [\n '-d',\n 'com.apple.quarantine',\n getRipgrepPath(),\n ])\n\n if (quarantineResult.code !== 0) {\n d('failed to remove quarantine: %o', quarantineResult)\n logError(\n `Failed to remove quarantine: ${quarantineResult.stdout} ${quarantineResult.stderr}`,\n )\n }\n } catch (e) {\n d('failed during sign: %o', e)\n logError(e)\n }\n}\n\nexport function resetRipgrepPathCacheForTests(): void {\n ;(getRipgrepPath as any).cache?.clear?.()\n alreadyDoneSignCheck = false\n}\n\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -2,7 +2,7 @@ import { createRequire as __pybCreateRequire } from "node:module";
|
|
|
2
2
|
const require = __pybCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
MACRO
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-YDXW3IJK.js";
|
|
6
6
|
|
|
7
7
|
// src/utils/state/index.ts
|
|
8
8
|
import { cwd } from "process";
|
|
@@ -106,16 +106,16 @@ function execFileNoThrow(file, args, abortSignal, timeout = 10 * SECONDS_IN_MINU
|
|
|
106
106
|
import { memoize } from "lodash-es";
|
|
107
107
|
import { join } from "path";
|
|
108
108
|
import { homedir } from "os";
|
|
109
|
-
function
|
|
110
|
-
return process.env.
|
|
109
|
+
function getPybBaseDir() {
|
|
110
|
+
return process.env.PYB_CONFIG_DIR ?? process.env.CLAUDE_CONFIG_DIR ?? join(homedir(), CONFIG_BASE_DIR);
|
|
111
111
|
}
|
|
112
112
|
function getGlobalConfigFilePath() {
|
|
113
|
-
return process.env.
|
|
113
|
+
return process.env.PYB_CONFIG_DIR || process.env.CLAUDE_CONFIG_DIR ? join(getPybBaseDir(), "config.json") : join(homedir(), CONFIG_FILE);
|
|
114
114
|
}
|
|
115
115
|
function getMemoryDir() {
|
|
116
|
-
return join(
|
|
116
|
+
return join(getPybBaseDir(), "memory");
|
|
117
117
|
}
|
|
118
|
-
var
|
|
118
|
+
var PYB_BASE_DIR = getPybBaseDir();
|
|
119
119
|
var GLOBAL_CONFIG_FILE = getGlobalConfigFilePath();
|
|
120
120
|
var MEMORY_DIR = getMemoryDir();
|
|
121
121
|
var getIsDocker = memoize(async () => {
|
|
@@ -126,7 +126,7 @@ var getIsDocker = memoize(async () => {
|
|
|
126
126
|
return process.platform === "linux";
|
|
127
127
|
});
|
|
128
128
|
var hasInternetAccess = memoize(async () => {
|
|
129
|
-
const offline = process.env.
|
|
129
|
+
const offline = process.env.PYB_OFFLINE ?? process.env.OFFLINE ?? process.env.NO_NETWORK ?? "";
|
|
130
130
|
const normalized = String(offline).trim().toLowerCase();
|
|
131
131
|
if (["1", "true", "yes", "on"].includes(normalized)) return false;
|
|
132
132
|
return true;
|
|
@@ -1182,7 +1182,7 @@ function hydratePlanSlugFromMessages(messages, context) {
|
|
|
1182
1182
|
return false;
|
|
1183
1183
|
}
|
|
1184
1184
|
function getPlanDirectory() {
|
|
1185
|
-
const dir = join2(
|
|
1185
|
+
const dir = join2(getPybBaseDir(), "plans");
|
|
1186
1186
|
if (!existsSync(dir)) {
|
|
1187
1187
|
mkdirSync(dir, { recursive: true });
|
|
1188
1188
|
}
|
|
@@ -1257,10 +1257,10 @@ function getProjectDir(cwd2) {
|
|
|
1257
1257
|
return cwd2.replace(/[^a-zA-Z0-9]/g, "-");
|
|
1258
1258
|
}
|
|
1259
1259
|
function getLegacyCacheRoot() {
|
|
1260
|
-
return process.env.
|
|
1260
|
+
return process.env.PYB_LEGACY_CACHE_ROOT ?? paths.cache;
|
|
1261
1261
|
}
|
|
1262
1262
|
function getNewLogRoot() {
|
|
1263
|
-
return process.env.
|
|
1263
|
+
return process.env.PYB_LOG_ROOT ?? join3(getPybBaseDir(), "logs");
|
|
1264
1264
|
}
|
|
1265
1265
|
var CACHE_PATHS = {
|
|
1266
1266
|
errors: () => join3(getNewLogRoot(), getProjectDir(process.cwd()), "errors"),
|
|
@@ -1586,7 +1586,7 @@ function getProjectDir2(cwd2) {
|
|
|
1586
1586
|
}
|
|
1587
1587
|
var PROJECT_ROOT = process.cwd();
|
|
1588
1588
|
function getTaskOutputsDir() {
|
|
1589
|
-
return join4(
|
|
1589
|
+
return join4(getPybBaseDir(), getProjectDir2(PROJECT_ROOT), "tasks");
|
|
1590
1590
|
}
|
|
1591
1591
|
function getTaskOutputFilePath(taskId) {
|
|
1592
1592
|
return join4(getTaskOutputsDir(), `${taskId}.output`);
|
|
@@ -1655,12 +1655,12 @@ function maybeAnnotateMacosSandboxStderr(stderr, sandbox) {
|
|
|
1655
1655
|
if (platform !== "darwin") return stderr;
|
|
1656
1656
|
if (stderr.includes("[sandbox]")) return stderr;
|
|
1657
1657
|
const lower = stderr.toLowerCase();
|
|
1658
|
-
const looksLikeSandboxViolation = stderr.includes("KODE_SANDBOX") || lower.includes("sandbox-exec") && (lower.includes("deny") || lower.includes("operation not permitted")) || lower.includes("operation not permitted") && lower.includes("sandbox");
|
|
1658
|
+
const looksLikeSandboxViolation = stderr.includes("PYB_SANDBOX") || stderr.includes("KODE_SANDBOX") || lower.includes("sandbox-exec") && (lower.includes("deny") || lower.includes("operation not permitted")) || lower.includes("operation not permitted") && lower.includes("sandbox");
|
|
1659
1659
|
if (!looksLikeSandboxViolation) return stderr;
|
|
1660
1660
|
return [
|
|
1661
1661
|
stderr.trimEnd(),
|
|
1662
1662
|
"",
|
|
1663
|
-
"[sandbox] This failure looks like a macOS sandbox denial. Adjust sandbox settings (e.g. /sandbox or .
|
|
1663
|
+
"[sandbox] This failure looks like a macOS sandbox denial. Adjust sandbox settings (e.g. /sandbox or .pyb/settings.json) to grant the minimal required access."
|
|
1664
1664
|
].join("\n");
|
|
1665
1665
|
}
|
|
1666
1666
|
function hasGlobPattern(value) {
|
|
@@ -1702,9 +1702,9 @@ function buildLinuxBwrapFilesystemArgs(options) {
|
|
|
1702
1702
|
if (writeConfig) {
|
|
1703
1703
|
args.push("--ro-bind", "/", "/");
|
|
1704
1704
|
const allowedRoots = [];
|
|
1705
|
-
if (existsSync4("/tmp/
|
|
1706
|
-
args.push("--bind", "/tmp/
|
|
1707
|
-
allowedRoots.push("/tmp/
|
|
1705
|
+
if (existsSync4("/tmp/pyb")) {
|
|
1706
|
+
args.push("--bind", "/tmp/pyb", "/tmp/pyb");
|
|
1707
|
+
allowedRoots.push("/tmp/pyb");
|
|
1708
1708
|
}
|
|
1709
1709
|
for (const raw of writeConfig.allowOnly ?? []) {
|
|
1710
1710
|
const resolved = normalizeLinuxSandboxPath(raw, { cwd: cwd2, homeDir });
|
|
@@ -1768,7 +1768,7 @@ function buildLinuxBwrapCommand(options) {
|
|
|
1768
1768
|
"1",
|
|
1769
1769
|
"--setenv",
|
|
1770
1770
|
"TMPDIR",
|
|
1771
|
-
"/tmp/
|
|
1771
|
+
"/tmp/pyb"
|
|
1772
1772
|
);
|
|
1773
1773
|
if (!options.enableWeakerNestedSandbox) args.push("--proc", "/proc");
|
|
1774
1774
|
args.push("--", options.binShellPath, "-c", options.command);
|
|
@@ -1778,7 +1778,7 @@ function buildSandboxEnvAssignments(options) {
|
|
|
1778
1778
|
const httpProxyPort = options?.httpProxyPort;
|
|
1779
1779
|
const socksProxyPort = options?.socksProxyPort;
|
|
1780
1780
|
const platform = options?.platform ?? process.platform;
|
|
1781
|
-
const env2 = ["SANDBOX_RUNTIME=1", "TMPDIR=/tmp/
|
|
1781
|
+
const env2 = ["SANDBOX_RUNTIME=1", "TMPDIR=/tmp/pyb"];
|
|
1782
1782
|
if (!httpProxyPort && !socksProxyPort) return env2;
|
|
1783
1783
|
const noProxy = [
|
|
1784
1784
|
"localhost",
|
|
@@ -1954,12 +1954,12 @@ function buildMacosSandboxFileWriteRules(writeConfig, logTag) {
|
|
|
1954
1954
|
return lines;
|
|
1955
1955
|
}
|
|
1956
1956
|
function buildMacosSandboxExecCommand(options) {
|
|
1957
|
-
const logTag = "
|
|
1957
|
+
const logTag = "PYB_SANDBOX";
|
|
1958
1958
|
const profileLines = [
|
|
1959
1959
|
"(version 1)",
|
|
1960
1960
|
`(deny default (with message "${logTag}"))`,
|
|
1961
1961
|
"",
|
|
1962
|
-
";
|
|
1962
|
+
"; Pyb sandbox-exec profile (reference CLI compatible)",
|
|
1963
1963
|
"",
|
|
1964
1964
|
"(allow process*)",
|
|
1965
1965
|
"(allow sysctl-read)",
|
|
@@ -2120,7 +2120,7 @@ var BunShell = class _BunShell {
|
|
|
2120
2120
|
return null;
|
|
2121
2121
|
}
|
|
2122
2122
|
try {
|
|
2123
|
-
mkdirSync4("/tmp/
|
|
2123
|
+
mkdirSync4("/tmp/pyb", { recursive: true });
|
|
2124
2124
|
} catch {
|
|
2125
2125
|
}
|
|
2126
2126
|
const cmd = buildLinuxBwrapCommand({
|
|
@@ -2141,11 +2141,11 @@ var BunShell = class _BunShell {
|
|
|
2141
2141
|
return null;
|
|
2142
2142
|
}
|
|
2143
2143
|
try {
|
|
2144
|
-
mkdirSync4("/tmp/
|
|
2144
|
+
mkdirSync4("/tmp/pyb", { recursive: true });
|
|
2145
2145
|
} catch {
|
|
2146
2146
|
}
|
|
2147
2147
|
try {
|
|
2148
|
-
mkdirSync4("/private/tmp/
|
|
2148
|
+
mkdirSync4("/private/tmp/pyb", { recursive: true });
|
|
2149
2149
|
} catch {
|
|
2150
2150
|
}
|
|
2151
2151
|
return {
|
|
@@ -2899,10 +2899,10 @@ export {
|
|
|
2899
2899
|
getOriginalCwd,
|
|
2900
2900
|
getCwd,
|
|
2901
2901
|
execFileNoThrow,
|
|
2902
|
-
|
|
2902
|
+
getPybBaseDir,
|
|
2903
2903
|
getGlobalConfigFilePath,
|
|
2904
2904
|
getMemoryDir,
|
|
2905
|
-
|
|
2905
|
+
PYB_BASE_DIR,
|
|
2906
2906
|
GLOBAL_CONFIG_FILE,
|
|
2907
2907
|
MEMORY_DIR,
|
|
2908
2908
|
env,
|