procsi 0.4.0 → 0.4.1

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.
@@ -32,5 +32,38 @@ export declare function formatNodeOptionsExport(preloadPath: string): string;
32
32
  * value (or unset it if it was empty before procsi set it).
33
33
  */
34
34
  export declare function formatNodeOptionsRestore(): string;
35
+ /**
36
+ * Generate shell statements that save the current PYTHONPATH and prepend
37
+ * the override directory so Python auto-imports our sitecustomize.py.
38
+ *
39
+ * Same idempotency pattern as formatNodeOptionsExport.
40
+ */
41
+ export declare function formatPythonPathExport(overrideDir: string): string;
42
+ /**
43
+ * Generate shell statements that restore PYTHONPATH to its original value.
44
+ */
45
+ export declare function formatPythonPathRestore(): string;
46
+ /**
47
+ * Generate shell statements that save the current RUBYOPT and append
48
+ * a -r flag for the procsi intercept script.
49
+ *
50
+ * Same idempotency pattern as formatNodeOptionsExport.
51
+ */
52
+ export declare function formatRubyOptExport(overridePath: string): string;
53
+ /**
54
+ * Generate shell statements that restore RUBYOPT to its original value.
55
+ */
56
+ export declare function formatRubyOptRestore(): string;
57
+ /**
58
+ * Generate shell statements that save the current PHP_INI_SCAN_DIR and
59
+ * set it with a `:` prefix so PHP scans both default dirs and our override.
60
+ *
61
+ * Same idempotency pattern as formatNodeOptionsExport.
62
+ */
63
+ export declare function formatPhpIniScanDirExport(overrideDir: string): string;
64
+ /**
65
+ * Generate shell statements that restore PHP_INI_SCAN_DIR to its original value.
66
+ */
67
+ export declare function formatPhpIniScanDirRestore(): string;
35
68
  export declare const onCommand: Command;
36
69
  //# sourceMappingURL=on.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"on.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAIlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CASnE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAMjD;AAED,eAAO,MAAM,SAAS,SAmHnB,CAAC"}
1
+ {"version":3,"file":"on.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/on.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAIlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CASnE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAMjD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAKhD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAK7C;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAOrE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAKnD;AAED,eAAO,MAAM,SAAS,SAoInB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import * as path from "node:path";
1
2
  import { Command } from "commander";
2
3
  import { findOrCreateProjectRoot, ensureProcsiDir, getProcsiPaths } from "../../shared/project.js";
3
4
  import { startDaemon } from "../../shared/daemon.js";
@@ -5,6 +6,9 @@ import { ControlClient } from "../../shared/control-client.js";
5
6
  import { parseVerbosity } from "../../shared/logger.js";
6
7
  import { getErrorMessage, getGlobalOptions } from "./helpers.js";
7
8
  import { writeNodePreloadScript, getNodeEnvVars } from "../../overrides/node.js";
9
+ import { writePythonOverride } from "../../overrides/python.js";
10
+ import { writeRubyOverride } from "../../overrides/ruby.js";
11
+ import { writePhpOverride } from "../../overrides/php.js";
8
12
  /**
9
13
  * Escape a string for safe use inside double-quoted shell context.
10
14
  * Within double quotes, `\`, `"`, `$`, `` ` ``, and `!` are interpreted by the shell.
@@ -71,6 +75,73 @@ export function formatNodeOptionsRestore() {
71
75
  "unset PROCSI_ORIG_NODE_OPTIONS 2>/dev/null",
72
76
  ].join("\n");
73
77
  }
78
+ /**
79
+ * Generate shell statements that save the current PYTHONPATH and prepend
80
+ * the override directory so Python auto-imports our sitecustomize.py.
81
+ *
82
+ * Same idempotency pattern as formatNodeOptionsExport.
83
+ */
84
+ export function formatPythonPathExport(overrideDir) {
85
+ const escaped = escapeDoubleQuoted(overrideDir);
86
+ return [
87
+ `export PROCSI_ORIG_PYTHONPATH="\${PROCSI_ORIG_PYTHONPATH-\${PYTHONPATH:-}}"`,
88
+ `export PYTHONPATH="${escaped}\${PROCSI_ORIG_PYTHONPATH:+:\${PROCSI_ORIG_PYTHONPATH}}"`,
89
+ ].join("\n");
90
+ }
91
+ /**
92
+ * Generate shell statements that restore PYTHONPATH to its original value.
93
+ */
94
+ export function formatPythonPathRestore() {
95
+ return [
96
+ `test -n "\${PROCSI_ORIG_PYTHONPATH:-}" && export PYTHONPATH="\${PROCSI_ORIG_PYTHONPATH}" || unset PYTHONPATH 2>/dev/null`,
97
+ "unset PROCSI_ORIG_PYTHONPATH 2>/dev/null",
98
+ ].join("\n");
99
+ }
100
+ /**
101
+ * Generate shell statements that save the current RUBYOPT and append
102
+ * a -r flag for the procsi intercept script.
103
+ *
104
+ * Same idempotency pattern as formatNodeOptionsExport.
105
+ */
106
+ export function formatRubyOptExport(overridePath) {
107
+ const escaped = escapeDoubleQuoted(overridePath);
108
+ return [
109
+ `export PROCSI_ORIG_RUBYOPT="\${PROCSI_ORIG_RUBYOPT-\${RUBYOPT:-}}"`,
110
+ `export RUBYOPT="\${PROCSI_ORIG_RUBYOPT:+\${PROCSI_ORIG_RUBYOPT} }-r ${escaped}"`,
111
+ ].join("\n");
112
+ }
113
+ /**
114
+ * Generate shell statements that restore RUBYOPT to its original value.
115
+ */
116
+ export function formatRubyOptRestore() {
117
+ return [
118
+ `test -n "\${PROCSI_ORIG_RUBYOPT:-}" && export RUBYOPT="\${PROCSI_ORIG_RUBYOPT}" || unset RUBYOPT 2>/dev/null`,
119
+ "unset PROCSI_ORIG_RUBYOPT 2>/dev/null",
120
+ ].join("\n");
121
+ }
122
+ /**
123
+ * Generate shell statements that save the current PHP_INI_SCAN_DIR and
124
+ * set it with a `:` prefix so PHP scans both default dirs and our override.
125
+ *
126
+ * Same idempotency pattern as formatNodeOptionsExport.
127
+ */
128
+ export function formatPhpIniScanDirExport(overrideDir) {
129
+ const escaped = escapeDoubleQuoted(overrideDir);
130
+ return [
131
+ `export PROCSI_ORIG_PHP_INI_SCAN_DIR="\${PROCSI_ORIG_PHP_INI_SCAN_DIR-\${PHP_INI_SCAN_DIR:-}}"`,
132
+ // The `:` prefix tells PHP to scan default dirs plus our override dir
133
+ `export PHP_INI_SCAN_DIR=":\${PROCSI_ORIG_PHP_INI_SCAN_DIR:+\${PROCSI_ORIG_PHP_INI_SCAN_DIR}:}${escaped}"`,
134
+ ].join("\n");
135
+ }
136
+ /**
137
+ * Generate shell statements that restore PHP_INI_SCAN_DIR to its original value.
138
+ */
139
+ export function formatPhpIniScanDirRestore() {
140
+ return [
141
+ `test -n "\${PROCSI_ORIG_PHP_INI_SCAN_DIR:-}" && export PHP_INI_SCAN_DIR="\${PROCSI_ORIG_PHP_INI_SCAN_DIR}" || unset PHP_INI_SCAN_DIR 2>/dev/null`,
142
+ "unset PROCSI_ORIG_PHP_INI_SCAN_DIR 2>/dev/null",
143
+ ].join("\n");
144
+ }
74
145
  export const onCommand = new Command("on")
75
146
  .description("Output shell export statements to start intercepting HTTP traffic")
76
147
  .option("-l, --label <label>", "Label for this session")
@@ -111,8 +182,11 @@ export const onCommand = new Command("on")
111
182
  },
112
183
  });
113
184
  const proxyUrl = `http://127.0.0.1:${proxyPort}`;
114
- // Write the Node.js preload script to .procsi/
185
+ // Write runtime override scripts to .procsi/overrides/
115
186
  writeNodePreloadScript(paths.proxyPreloadFile);
187
+ writePythonOverride(paths.pythonOverrideDir, paths.caCertFile);
188
+ writeRubyOverride(path.dirname(paths.rubyOverrideFile), paths.caCertFile);
189
+ writePhpOverride(paths.phpOverrideDir, paths.caCertFile);
116
190
  // Register session with daemon
117
191
  const client = new ControlClient(paths.controlSocketFile);
118
192
  try {
@@ -124,11 +198,22 @@ export const onCommand = new Command("on")
124
198
  // Lowercase variants — many Unix tools check lowercase only
125
199
  http_proxy: proxyUrl,
126
200
  https_proxy: proxyUrl,
127
- // Python requests library
201
+ // CA cert trust — covers Python requests, curl, OpenSSL-based clients
128
202
  SSL_CERT_FILE: paths.caCertFile,
129
203
  REQUESTS_CA_BUNDLE: paths.caCertFile,
204
+ CURL_CA_BUNDLE: paths.caCertFile,
130
205
  // Node.js
131
206
  NODE_EXTRA_CA_CERTS: paths.caCertFile,
207
+ // Deno
208
+ DENO_CERT: paths.caCertFile,
209
+ // Rust Cargo
210
+ CARGO_HTTP_CAINFO: paths.caCertFile,
211
+ // Git
212
+ GIT_SSL_CAINFO: paths.caCertFile,
213
+ // AWS CLI
214
+ AWS_CA_BUNDLE: paths.caCertFile,
215
+ // PHP HTTPoxy-safe proxy variable
216
+ CGI_HTTP_PROXY: proxyUrl,
132
217
  // Node.js runtime overrides (global-agent + undici)
133
218
  ...getNodeEnvVars(proxyUrl),
134
219
  // procsi session tracking
@@ -157,8 +242,11 @@ export const onCommand = new Command("on")
157
242
  }
158
243
  // Output env vars for eval
159
244
  console.log(formatEnvVars(envVars));
160
- // NODE_OPTIONS requires raw shell expansion, output separately
245
+ // Runtime overrides require raw shell expansion, output separately
161
246
  console.log(formatNodeOptionsExport(paths.proxyPreloadFile));
247
+ console.log(formatPythonPathExport(paths.pythonOverrideDir));
248
+ console.log(formatRubyOptExport(paths.rubyOverrideFile));
249
+ console.log(formatPhpIniScanDirExport(paths.phpOverrideDir));
162
250
  // Output confirmation as a comment (shown but not executed)
163
251
  const labelInfo = label ? ` (label: ${label})` : "";
164
252
  console.log(`# procsi: intercepting traffic${labelInfo}`);
@@ -1 +1 @@
1
- {"version":3,"file":"on.js","sourceRoot":"","sources":["../../../src/cli/commands/on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEjF;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAA4B;IACxD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,KAAK,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;SACrE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAChD,OAAO;QACL,oGAAoG;QACpG,mFAAmF;QACnF,kEAAkE;QAClE,yFAAyF;QACzF,6FAA6F,OAAO,GAAG;KACxG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,0DAA0D;QAC1D,kIAAkI;QAClI,4CAA4C;KAC7C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;KACvC,WAAW,CAAC,mEAAmE,CAAC;KAChF,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;KACvD,MAAM,CAAC,qBAAqB,EAAE,8DAA8D,CAAC;KAC7F,MAAM,CAAC,cAAc,EAAE,gDAAgD,CAAC;KACxE,MAAM,CACL,KAAK,EAAE,OAA8D,EAAE,OAAgB,EAAE,EAAE;IACzF,oEAAoE;IACpE,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IACpC,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC;IACrC,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE3C,qDAAqD;IACrD,MAAM,WAAW,GAAG,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IACvE,eAAe,CAAC,WAAW,CAAC,CAAC;IAE7B,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,sCAAsC;QACtC,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE;YAC/C,QAAQ;YACR,WAAW;YACX,iBAAiB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;gBAClC,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,kDAAkD,OAAO,OAAO,GAAG,GAAG,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CACT,uDAAuD,OAAO,UAAU,GAAG,GAAG,CAC/E,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,oBAAoB,SAAS,EAAE,CAAC;QAEjD,+CAA+C;QAC/C,sBAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAE/C,+BAA+B;QAC/B,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAElF,8BAA8B;YAC9B,MAAM,OAAO,GAA2B;gBACtC,UAAU,EAAE,QAAQ;gBACpB,WAAW,EAAE,QAAQ;gBACrB,4DAA4D;gBAC5D,UAAU,EAAE,QAAQ;gBACpB,WAAW,EAAE,QAAQ;gBACrB,0BAA0B;gBAC1B,aAAa,EAAE,KAAK,CAAC,UAAU;gBAC/B,kBAAkB,EAAE,KAAK,CAAC,UAAU;gBACpC,UAAU;gBACV,mBAAmB,EAAE,KAAK,CAAC,UAAU;gBACrC,oDAAoD;gBACpD,GAAG,cAAc,CAAC,QAAQ,CAAC;gBAC3B,0BAA0B;gBAC1B,iBAAiB,EAAE,OAAO,CAAC,EAAE;gBAC7B,oBAAoB,EAAE,OAAO,CAAC,KAAK;aACpC,CAAC;YAEF,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;YAClC,CAAC;YAED,4BAA4B;YAC5B,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACrD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;oBAC9D,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,GAAG,UAAU,CAAC;oBACrD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;wBACnB,OAAO,CAAC,GAAG,CACT,YAAY,WAAW,kBAAkB,UAAU,qCAAqC,CACzF,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,0CAA0C,CAAC,CAAC;oBACjF,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;YAClD,CAAC;YAED,2BAA2B;YAC3B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YAEpC,+DAA+D;YAC/D,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAE7D,4DAA4D;YAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,mBAAmB,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"on.js","sourceRoot":"","sources":["../../../src/cli/commands/on.ts"],"names":[],"mappings":"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"}
@@ -77,8 +77,11 @@ async function main() {
77
77
  eventLog: interceptorEventLog,
78
78
  });
79
79
  }
80
- // Find a free port for the proxy
81
- const proxyPort = await findFreePort();
80
+ // Find a port for the proxy, preferring the previously used one
81
+ const preferred = fs.existsSync(paths.preferredPortFile)
82
+ ? parseInt(fs.readFileSync(paths.preferredPortFile, "utf-8").trim(), 10) || undefined
83
+ : undefined;
84
+ const proxyPort = await findPreferredPort(preferred);
82
85
  // Ensure daemon session exists (handles restarts gracefully)
83
86
  const DAEMON_SESSION_ID = "daemon";
84
87
  storage.ensureSession(DAEMON_SESSION_ID, "daemon", process.pid, "daemon");
@@ -97,6 +100,8 @@ async function main() {
97
100
  });
98
101
  // Write proxy port to file
99
102
  writeProxyPort(projectRoot, proxy.port);
103
+ // Write preferred port for next restart
104
+ fs.writeFileSync(paths.preferredPortFile, proxy.port.toString(), "utf-8");
100
105
  // Start control server
101
106
  const daemonVersion = getProcsiVersion();
102
107
  logger.info("Starting control server", {
@@ -156,6 +161,33 @@ async function main() {
156
161
  process.on("SIGTERM", () => void shutdown("SIGTERM"));
157
162
  process.on("SIGINT", () => void shutdown("SIGINT"));
158
163
  }
164
+ /**
165
+ * Try to bind to a specific port.
166
+ * Returns true if successful, false otherwise.
167
+ */
168
+ async function tryBindPort(port) {
169
+ return new Promise((resolve) => {
170
+ const server = net.createServer();
171
+ server.listen(port, "127.0.0.1", () => {
172
+ server.close(() => resolve(true));
173
+ });
174
+ server.on("error", () => {
175
+ resolve(false);
176
+ });
177
+ });
178
+ }
179
+ /**
180
+ * Find a port for the proxy, preferring the given port if available.
181
+ * Falls back to finding a free port if the preferred port is not available.
182
+ */
183
+ async function findPreferredPort(preferred) {
184
+ if (preferred !== undefined) {
185
+ if (await tryBindPort(preferred)) {
186
+ return preferred;
187
+ }
188
+ }
189
+ return findFreePort();
190
+ }
159
191
  /**
160
192
  * Find a free port to use for the proxy.
161
193
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Generate the contents of a procsi.ini file that configures PHP's
3
+ * curl and OpenSSL extensions to trust the proxy CA certificate.
4
+ *
5
+ * PHP INI directives don't require quotes around values.
6
+ */
7
+ export declare function generatePhpOverrideIni(caCertPath: string): string;
8
+ /**
9
+ * Write the procsi.ini file to the given directory (typically
10
+ * `.procsi/php/`). Creates parent directories if needed.
11
+ *
12
+ * Returns the directory path (for use in PHP_INI_SCAN_DIR).
13
+ */
14
+ export declare function writePhpOverride(outputDir: string, caCertPath: string): string;
15
+ //# sourceMappingURL=php.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../src/overrides/php.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAK9E"}
@@ -0,0 +1,29 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ /**
4
+ * Generate the contents of a procsi.ini file that configures PHP's
5
+ * curl and OpenSSL extensions to trust the proxy CA certificate.
6
+ *
7
+ * PHP INI directives don't require quotes around values.
8
+ */
9
+ export function generatePhpOverrideIni(caCertPath) {
10
+ return [
11
+ "; Generated by procsi — ensures PHP trusts the proxy CA certificate",
12
+ `curl.cainfo=${caCertPath}`,
13
+ `openssl.cafile=${caCertPath}`,
14
+ "",
15
+ ].join("\n");
16
+ }
17
+ /**
18
+ * Write the procsi.ini file to the given directory (typically
19
+ * `.procsi/php/`). Creates parent directories if needed.
20
+ *
21
+ * Returns the directory path (for use in PHP_INI_SCAN_DIR).
22
+ */
23
+ export function writePhpOverride(outputDir, caCertPath) {
24
+ fs.mkdirSync(outputDir, { recursive: true });
25
+ const iniPath = path.join(outputDir, "procsi.ini");
26
+ fs.writeFileSync(iniPath, generatePhpOverrideIni(caCertPath), "utf-8");
27
+ return outputDir;
28
+ }
29
+ //# sourceMappingURL=php.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"php.js","sourceRoot":"","sources":["../../src/overrides/php.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,OAAO;QACL,qEAAqE;QACrE,eAAe,UAAU,EAAE;QAC3B,kBAAkB,UAAU,EAAE;QAC9B,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,UAAkB;IACpE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACnD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,sBAAsB,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Generate the contents of `sitecustomize.py` that patches Python
3
+ * HTTP clients to use the procsi proxy and trust the CA certificate.
4
+ *
5
+ * The script patches httplib2 to respect HTTP_PROXY env vars and
6
+ * use the procsi CA certificate. All patching is wrapped in try/except
7
+ * so failures never break the user's Python environment.
8
+ *
9
+ * The caCertPath is embedded as a string literal in the generated Python.
10
+ */
11
+ export declare function generatePythonOverrideScript(caCertPath: string): string;
12
+ /**
13
+ * Write the `sitecustomize.py` override script to the given directory.
14
+ * Creates the directory recursively if it doesn't exist.
15
+ *
16
+ * Returns the absolute path to the directory where the script was written.
17
+ */
18
+ export declare function writePythonOverride(outputDir: string, caCertPath: string): string;
19
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/overrides/python.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA2CvE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAYjF"}
@@ -0,0 +1,74 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ /**
4
+ * Generate the contents of `sitecustomize.py` that patches Python
5
+ * HTTP clients to use the procsi proxy and trust the CA certificate.
6
+ *
7
+ * The script patches httplib2 to respect HTTP_PROXY env vars and
8
+ * use the procsi CA certificate. All patching is wrapped in try/except
9
+ * so failures never break the user's Python environment.
10
+ *
11
+ * The caCertPath is embedded as a string literal in the generated Python.
12
+ */
13
+ export function generatePythonOverrideScript(caCertPath) {
14
+ // Escape the path for Python string literals (backslashes and quotes)
15
+ const escapedCaCertPath = caCertPath.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
16
+ return [
17
+ "# Generated by procsi — patches Python HTTP clients to use the proxy",
18
+ "",
19
+ "import os",
20
+ "",
21
+ "# Patch httplib2 to trust procsi CA certificate and use proxy",
22
+ "try:",
23
+ " import httplib2",
24
+ "",
25
+ " # Override CA_CERTS to trust procsi's CA",
26
+ ` httplib2.CA_CERTS = '${escapedCaCertPath}'`,
27
+ "",
28
+ " # Patch Http.__init__ to inject proxy from HTTP_PROXY env var",
29
+ " _original_httplib2_init = httplib2.Http.__init__",
30
+ "",
31
+ " def _patched_httplib2_init(self, *args, **kwargs):",
32
+ " # If proxy_info not provided and HTTP_PROXY env var exists, inject it",
33
+ " if 'proxy_info' not in kwargs:",
34
+ " http_proxy = os.environ.get('HTTP_PROXY') or os.environ.get('http_proxy')",
35
+ " if http_proxy:",
36
+ " try:",
37
+ " from httplib2 import socks",
38
+ " import urllib.parse",
39
+ " parsed = urllib.parse.urlparse(http_proxy)",
40
+ " kwargs['proxy_info'] = httplib2.ProxyInfo(",
41
+ " socks.PROXY_TYPE_HTTP,",
42
+ " parsed.hostname,",
43
+ " parsed.port or 8080,",
44
+ " )",
45
+ " except Exception:",
46
+ " pass # Silently ignore proxy injection failures",
47
+ " _original_httplib2_init(self, *args, **kwargs)",
48
+ "",
49
+ " httplib2.Http.__init__ = _patched_httplib2_init",
50
+ "",
51
+ "except Exception:",
52
+ " pass # Silently ignore if httplib2 is not available or patching fails",
53
+ "",
54
+ ].join("\n");
55
+ }
56
+ /**
57
+ * Write the `sitecustomize.py` override script to the given directory.
58
+ * Creates the directory recursively if it doesn't exist.
59
+ *
60
+ * Returns the absolute path to the directory where the script was written.
61
+ */
62
+ export function writePythonOverride(outputDir, caCertPath) {
63
+ try {
64
+ fs.mkdirSync(outputDir, { recursive: true });
65
+ const scriptPath = path.join(outputDir, "sitecustomize.py");
66
+ const scriptContent = generatePythonOverrideScript(caCertPath);
67
+ fs.writeFileSync(scriptPath, scriptContent, "utf-8");
68
+ return outputDir;
69
+ }
70
+ catch (error) {
71
+ throw new Error(`Failed to write Python override to ${outputDir}: ${error instanceof Error ? error.message : String(error)}`);
72
+ }
73
+ }
74
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/overrides/python.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CAAC,UAAkB;IAC7D,sEAAsE;IACtE,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEjF,OAAO;QACL,sEAAsE;QACtE,EAAE;QACF,WAAW;QACX,EAAE;QACF,+DAA+D;QAC/D,MAAM;QACN,qBAAqB;QACrB,EAAE;QACF,8CAA8C;QAC9C,4BAA4B,iBAAiB,GAAG;QAChD,EAAE;QACF,mEAAmE;QACnE,sDAAsD;QACtD,EAAE;QACF,wDAAwD;QACxD,+EAA+E;QAC/E,wCAAwC;QACxC,uFAAuF;QACvF,4BAA4B;QAC5B,sBAAsB;QACtB,gDAAgD;QAChD,yCAAyC;QACzC,gEAAgE;QAChE,gEAAgE;QAChE,gDAAgD;QAChD,0CAA0C;QAC1C,8CAA8C;QAC9C,uBAAuB;QACvB,mCAAmC;QACnC,sEAAsE;QACtE,wDAAwD;QACxD,EAAE;QACF,qDAAqD;QACrD,EAAE;QACF,mBAAmB;QACnB,4EAA4E;QAC5E,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,UAAkB;IACvE,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,sCAAsC,SAAS,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC7G,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Generate the contents of the Ruby preload script that monkey-patches
3
+ * OpenSSL::X509::Store to add the procsi CA certificate to the default
4
+ * certificate store.
5
+ *
6
+ * This ensures gems with bundled CAs (Stripe, Cloudinary, etc.) also
7
+ * trust the proxy certificate.
8
+ */
9
+ export declare function generateRubyOverrideScript(caCertPath: string): string;
10
+ /**
11
+ * Write the Ruby override script to the given directory.
12
+ * Creates the directory recursively if needed.
13
+ *
14
+ * Returns the absolute path to the written file (not the directory).
15
+ */
16
+ export declare function writeRubyOverride(outputDir: string, caCertPath: string): string;
17
+ //# sourceMappingURL=ruby.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../src/overrides/ruby.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAgCrE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAK/E"}
@@ -0,0 +1,55 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ /**
4
+ * Generate the contents of the Ruby preload script that monkey-patches
5
+ * OpenSSL::X509::Store to add the procsi CA certificate to the default
6
+ * certificate store.
7
+ *
8
+ * This ensures gems with bundled CAs (Stripe, Cloudinary, etc.) also
9
+ * trust the proxy certificate.
10
+ */
11
+ export function generateRubyOverrideScript(caCertPath) {
12
+ // Escape single quotes in the path for Ruby string literal
13
+ const escapedCaCertPath = caCertPath.replace(/'/g, "\\'");
14
+ return [
15
+ "# Generated by procsi — ensures Ruby trusts the proxy CA certificate",
16
+ "",
17
+ "begin",
18
+ " require 'openssl'",
19
+ "",
20
+ " # Store the original set_default_paths method",
21
+ " module OpenSSL",
22
+ " module X509",
23
+ " class Store",
24
+ " alias_method :original_set_default_paths, :set_default_paths",
25
+ "",
26
+ " # Monkey-patch to add procsi CA cert alongside system certs",
27
+ " def set_default_paths",
28
+ " original_set_default_paths",
29
+ ` procsi_ca_path = '${escapedCaCertPath}'`,
30
+ " if File.exist?(procsi_ca_path)",
31
+ " add_file(procsi_ca_path)",
32
+ " end",
33
+ " end",
34
+ " end",
35
+ " end",
36
+ " end",
37
+ "rescue => e",
38
+ " # Silently fail to avoid breaking the user's Ruby application",
39
+ "end",
40
+ "",
41
+ ].join("\n");
42
+ }
43
+ /**
44
+ * Write the Ruby override script to the given directory.
45
+ * Creates the directory recursively if needed.
46
+ *
47
+ * Returns the absolute path to the written file (not the directory).
48
+ */
49
+ export function writeRubyOverride(outputDir, caCertPath) {
50
+ fs.mkdirSync(outputDir, { recursive: true });
51
+ const outputPath = path.join(outputDir, "procsi_intercept.rb");
52
+ fs.writeFileSync(outputPath, generateRubyOverrideScript(caCertPath), "utf-8");
53
+ return outputPath;
54
+ }
55
+ //# sourceMappingURL=ruby.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../src/overrides/ruby.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAAkB;IAC3D,2DAA2D;IAC3D,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE1D,OAAO;QACL,sEAAsE;QACtE,EAAE;QACF,OAAO;QACP,qBAAqB;QACrB,EAAE;QACF,iDAAiD;QACjD,kBAAkB;QAClB,iBAAiB;QACjB,mBAAmB;QACnB,sEAAsE;QACtE,EAAE;QACF,qEAAqE;QACrE,+BAA+B;QAC/B,sCAAsC;QACtC,+BAA+B,iBAAiB,GAAG;QACnD,0CAA0C;QAC1C,sCAAsC;QACtC,eAAe;QACf,aAAa;QACb,WAAW;QACX,SAAS;QACT,OAAO;QACP,aAAa;QACb,iEAAiE;QACjE,KAAK;QACL,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,UAAkB;IACrE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAC/D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,0BAA0B,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9E,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -211,6 +211,7 @@ async function waitForDaemonStop(pid, timeoutMs) {
211
211
  }
212
212
  /**
213
213
  * Clean up daemon files (socket, port file, pid file).
214
+ * Note: preferredPortFile is intentionally not deleted so it persists across restarts.
214
215
  */
215
216
  function cleanupDaemonFiles(paths) {
216
217
  const files = [paths.controlSocketFile, paths.proxyPortFile, paths.pidFile];
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/shared/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/shared/daemon.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ export declare function ensureProcsiDir(projectRoot: string): string;
37
37
  export declare function getProcsiPaths(projectRoot: string): {
38
38
  procsiDir: string;
39
39
  proxyPortFile: string;
40
+ preferredPortFile: string;
40
41
  controlSocketFile: string;
41
42
  databaseFile: string;
42
43
  caKeyFile: string;
@@ -46,6 +47,9 @@ export declare function getProcsiPaths(projectRoot: string): {
46
47
  configFile: string;
47
48
  interceptorsDir: string;
48
49
  proxyPreloadFile: string;
50
+ pythonOverrideDir: string;
51
+ rubyOverrideFile: string;
52
+ phpOverrideDir: string;
49
53
  };
50
54
  /**
51
55
  * Read the proxy port from the .procsi directory.
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/shared/project.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,GAAE,MAAsB,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CA8BpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,GAAE,MAAsB,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAyBR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM;;;;;;;;;;;;EAgBjD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAGtE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAGrE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAMzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQrD"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/shared/project.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,GAAE,MAAsB,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CA8BpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,GAAE,MAAsB,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAyBR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM;;;;;;;;;;;;;;;;EAoBjD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAGtE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAGrE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAMzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQrD"}
@@ -109,6 +109,7 @@ export function getProcsiPaths(projectRoot) {
109
109
  return {
110
110
  procsiDir,
111
111
  proxyPortFile: path.join(procsiDir, "proxy.port"),
112
+ preferredPortFile: path.join(procsiDir, "preferred.port"),
112
113
  controlSocketFile: path.join(procsiDir, "control.sock"),
113
114
  databaseFile: path.join(procsiDir, "requests.db"),
114
115
  caKeyFile: path.join(procsiDir, "ca-key.pem"),
@@ -118,6 +119,9 @@ export function getProcsiPaths(projectRoot) {
118
119
  configFile: path.join(procsiDir, "config.json"),
119
120
  interceptorsDir: path.join(procsiDir, "interceptors"),
120
121
  proxyPreloadFile: path.join(procsiDir, "proxy-preload.cjs"),
122
+ pythonOverrideDir: path.join(procsiDir, "overrides", "python"),
123
+ rubyOverrideFile: path.join(procsiDir, "overrides", "ruby", "procsi_intercept.rb"),
124
+ phpOverrideDir: path.join(procsiDir, "overrides", "php"),
121
125
  };
122
126
  }
123
127
  /**