@paytaca/opencode-plugin 0.1.13 → 0.1.15
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 -1
- package/dist/bundled/proxy.d.ts +1 -1
- package/dist/bundled/proxy.d.ts.map +1 -1
- package/dist/bundled/proxy.js +184 -101
- package/dist/bundled/proxy.js.map +1 -1
- package/dist/bundled/wrapper.d.ts +1 -1
- package/dist/bundled/wrapper.d.ts.map +1 -1
- package/dist/bundled/wrapper.js +7 -2
- package/dist/bundled/wrapper.js.map +1 -1
- package/dist/config.d.ts +0 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -26
- package/dist/config.js.map +1 -1
- package/dist/proxy.d.ts +0 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +112 -106
- package/dist/proxy.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/proxy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA4D5C,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYpE;AAuCD,wBAAsB,iBAAiB,CAAC,SAAS,GAAE,MAAa,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAOzG;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOrD;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiBlH;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA+GtF;AAqBD,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAU5G"}
|
package/dist/proxy.js
CHANGED
|
@@ -38,30 +38,24 @@ exports.findAvailablePort = findAvailablePort;
|
|
|
38
38
|
exports.isProcessRunning = isProcessRunning;
|
|
39
39
|
exports.getProxyStatus = getProxyStatus;
|
|
40
40
|
exports.startProxy = startProxy;
|
|
41
|
-
exports.stopProxy = stopProxy;
|
|
42
41
|
exports.getProxyConfig = getProxyConfig;
|
|
43
42
|
const fs = __importStar(require("fs"));
|
|
44
43
|
const path = __importStar(require("path"));
|
|
44
|
+
const crypto = __importStar(require("crypto"));
|
|
45
45
|
const child_process_1 = require("child_process");
|
|
46
46
|
const config_1 = require("./config");
|
|
47
47
|
const proxy_1 = require("./bundled/proxy");
|
|
48
48
|
const wrapper_1 = require("./bundled/wrapper");
|
|
49
|
-
// Store heartbeat interval reference
|
|
50
|
-
let heartbeatInterval = null;
|
|
51
|
-
// Get path to paytaca binary (multi-strategy resolution)
|
|
52
49
|
function getPaytacaCommand() {
|
|
53
|
-
// Priority 1: Local node_modules (via require.resolve)
|
|
54
50
|
try {
|
|
55
51
|
const paytacaCliPkg = require.resolve('paytaca-cli/package.json');
|
|
56
52
|
return path.resolve(path.dirname(paytacaCliPkg), 'bin', 'paytaca.js');
|
|
57
53
|
}
|
|
58
54
|
catch { }
|
|
59
|
-
// Priority 2: Local .bin symlink
|
|
60
55
|
const localPaytaca = path.join(__dirname, '..', 'node_modules', '.bin', 'paytaca');
|
|
61
56
|
if (fs.existsSync(localPaytaca)) {
|
|
62
57
|
return localPaytaca;
|
|
63
58
|
}
|
|
64
|
-
// Priority 3: Global npm root
|
|
65
59
|
try {
|
|
66
60
|
const globalRoot = (0, child_process_1.execSync)('npm root -g', { encoding: 'utf8' }).trim();
|
|
67
61
|
const pathsToCheck = [
|
|
@@ -75,7 +69,6 @@ function getPaytacaCommand() {
|
|
|
75
69
|
}
|
|
76
70
|
}
|
|
77
71
|
catch { }
|
|
78
|
-
// Priority 4: Common global installation paths
|
|
79
72
|
const commonPaths = [
|
|
80
73
|
'/usr/lib/node_modules/paytaca-cli/bin/paytaca.js',
|
|
81
74
|
'/usr/local/lib/node_modules/paytaca-cli/bin/paytaca.js',
|
|
@@ -86,7 +79,6 @@ function getPaytacaCommand() {
|
|
|
86
79
|
return p;
|
|
87
80
|
}
|
|
88
81
|
}
|
|
89
|
-
// Priority 5: which/where on PATH
|
|
90
82
|
try {
|
|
91
83
|
const which = process.platform === 'win32' ? 'where' : 'which';
|
|
92
84
|
const result = (0, child_process_1.execSync)(`${which} paytaca`, { encoding: 'utf8' }).trim().split('\n')[0];
|
|
@@ -95,7 +87,6 @@ function getPaytacaCommand() {
|
|
|
95
87
|
}
|
|
96
88
|
}
|
|
97
89
|
catch { }
|
|
98
|
-
// Priority 6: Bare command (rely on PATH at runtime)
|
|
99
90
|
return 'paytaca';
|
|
100
91
|
}
|
|
101
92
|
async function isPortAvailable(port) {
|
|
@@ -108,9 +99,41 @@ async function isPortAvailable(port) {
|
|
|
108
99
|
server.close();
|
|
109
100
|
resolve(true);
|
|
110
101
|
});
|
|
111
|
-
server.listen(port
|
|
102
|
+
server.listen(port);
|
|
112
103
|
});
|
|
113
104
|
}
|
|
105
|
+
async function waitForPortFree(port, timeout = 10000) {
|
|
106
|
+
const start = Date.now();
|
|
107
|
+
while (Date.now() - start < timeout) {
|
|
108
|
+
if (await isPortAvailable(port)) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
await new Promise(resolve => setTimeout(resolve, 300));
|
|
112
|
+
}
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
function scriptHash() {
|
|
116
|
+
return crypto.createHash('sha1').update(proxy_1.PROXY_SCRIPT_CONTENT).digest('hex');
|
|
117
|
+
}
|
|
118
|
+
function persistProxyInfo(configDir, config, port, pid, currentHash) {
|
|
119
|
+
fs.writeFileSync((0, config_1.getPidFile)(configDir), pid.toString());
|
|
120
|
+
config.proxyPort = port;
|
|
121
|
+
config.proxyPid = pid;
|
|
122
|
+
config.proxyScriptHash = currentHash;
|
|
123
|
+
(0, config_1.saveConfig)(configDir, config);
|
|
124
|
+
}
|
|
125
|
+
async function reuseExistingProxy(configDir, config, status, currentHash) {
|
|
126
|
+
persistProxyInfo(configDir, config, status.port, status.pid, currentHash);
|
|
127
|
+
return { port: status.port, pid: status.pid };
|
|
128
|
+
}
|
|
129
|
+
async function tryAdoptExistingFreshProxy(configDir, config, currentHash) {
|
|
130
|
+
const status = await getProxyStatus(configDir);
|
|
131
|
+
if (status.running && status.pid && status.port && status.pid > 0 &&
|
|
132
|
+
(0, config_1.loadConfig)(configDir).proxyScriptHash === currentHash) {
|
|
133
|
+
return await reuseExistingProxy(configDir, config, { port: status.port, pid: status.pid }, currentHash);
|
|
134
|
+
}
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
114
137
|
async function findAvailablePort(startPort = 8001, endPort = 8010) {
|
|
115
138
|
for (let port = startPort; port <= endPort; port++) {
|
|
116
139
|
if (await isPortAvailable(port)) {
|
|
@@ -141,118 +164,102 @@ async function getProxyStatus(configDir) {
|
|
|
141
164
|
}
|
|
142
165
|
}
|
|
143
166
|
catch {
|
|
144
|
-
// Invalid PID file
|
|
145
167
|
}
|
|
146
168
|
return { running: false };
|
|
147
169
|
}
|
|
148
170
|
async function startProxy(configDir, config) {
|
|
149
|
-
const pidFile = (0, config_1.getPidFile)(configDir);
|
|
150
171
|
const proxyScript = (0, config_1.getProxyScript)(configDir);
|
|
151
172
|
const logFile = (0, config_1.getLogFile)(configDir);
|
|
152
173
|
const wrapperScript = (0, config_1.getWrapperScript)(configDir);
|
|
153
|
-
// Ensure config directory exists
|
|
154
174
|
(0, config_1.ensureConfigDir)(configDir);
|
|
155
|
-
|
|
175
|
+
const currentHash = scriptHash();
|
|
176
|
+
const persistedConfig = (0, config_1.loadConfig)(configDir);
|
|
177
|
+
let existingStatus = await getProxyStatus(configDir);
|
|
178
|
+
const needsRestart = existingStatus.running &&
|
|
179
|
+
(existingStatus.pid || 0) > 0 &&
|
|
180
|
+
persistedConfig.proxyScriptHash !== currentHash;
|
|
156
181
|
fs.writeFileSync(proxyScript, proxy_1.PROXY_SCRIPT_CONTENT, 'utf8');
|
|
157
182
|
fs.chmodSync(proxyScript, '755');
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
183
|
+
if (existingStatus.running && existingStatus.pid && existingStatus.port && !needsRestart) {
|
|
184
|
+
return await reuseExistingProxy(configDir, config, { port: existingStatus.port, pid: existingStatus.pid }, currentHash);
|
|
185
|
+
}
|
|
186
|
+
if (existingStatus.running && existingStatus.pid) {
|
|
187
|
+
try {
|
|
188
|
+
process.kill(existingStatus.pid);
|
|
189
|
+
}
|
|
190
|
+
catch { }
|
|
191
|
+
if (existingStatus.port) {
|
|
192
|
+
await waitForPortFree(existingStatus.port);
|
|
167
193
|
}
|
|
168
|
-
heartbeatInterval = setInterval(() => {
|
|
169
|
-
try {
|
|
170
|
-
fs.writeFileSync(heartbeatFile, Date.now().toString());
|
|
171
|
-
}
|
|
172
|
-
catch { }
|
|
173
|
-
}, 5000);
|
|
174
|
-
return {
|
|
175
|
-
port: existingStatus.port,
|
|
176
|
-
pid: existingStatus.pid
|
|
177
|
-
};
|
|
178
194
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
195
|
+
const adopted = await tryAdoptExistingFreshProxy(configDir, config, currentHash);
|
|
196
|
+
if (adopted) {
|
|
197
|
+
return adopted;
|
|
198
|
+
}
|
|
182
199
|
fs.writeFileSync(wrapperScript, wrapper_1.WRAPPER_SCRIPT_CONTENT, 'utf8');
|
|
183
200
|
fs.chmodSync(wrapperScript, '755');
|
|
184
|
-
// Start proxy (detached to avoid receiving SIGINT from terminal)
|
|
185
201
|
const paytacaCmd = getPaytacaCommand();
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
202
|
+
const MAX_ATTEMPTS = 3;
|
|
203
|
+
for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
|
|
204
|
+
const port = await findAvailablePort(8001, 8010);
|
|
205
|
+
const proxy = (0, child_process_1.spawn)('node', [
|
|
206
|
+
proxyScript,
|
|
207
|
+
config.backendUrl,
|
|
208
|
+
port.toString()
|
|
209
|
+
], {
|
|
210
|
+
detached: true,
|
|
211
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
212
|
+
env: {
|
|
213
|
+
...process.env,
|
|
214
|
+
PAYTACA_CMD: paytacaCmd
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
proxy.unref();
|
|
218
|
+
if (!proxy.pid) {
|
|
219
|
+
continue;
|
|
196
220
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
const heartbeatFile = (0, config_1.getHeartbeatFile)(configDir);
|
|
210
|
-
fs.writeFileSync(heartbeatFile, Date.now().toString());
|
|
211
|
-
// Start heartbeat updates
|
|
212
|
-
if (heartbeatInterval) {
|
|
213
|
-
clearInterval(heartbeatInterval);
|
|
214
|
-
}
|
|
215
|
-
heartbeatInterval = setInterval(() => {
|
|
216
|
-
try {
|
|
217
|
-
fs.writeFileSync(heartbeatFile, Date.now().toString());
|
|
221
|
+
let childExited = false;
|
|
222
|
+
proxy.once('exit', () => { childExited = true; });
|
|
223
|
+
const logStream = fs.createWriteStream(logFile, { flags: 'a' });
|
|
224
|
+
proxy.stdout?.pipe(logStream);
|
|
225
|
+
proxy.stderr?.pipe(logStream);
|
|
226
|
+
const ready = await waitForProxy(port, 15000);
|
|
227
|
+
if (childExited) {
|
|
228
|
+
const a = await tryAdoptExistingFreshProxy(configDir, config, currentHash);
|
|
229
|
+
if (a) {
|
|
230
|
+
return a;
|
|
231
|
+
}
|
|
232
|
+
continue;
|
|
218
233
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
proxy.stderr?.pipe(logStream);
|
|
225
|
-
// Wait for proxy to be ready
|
|
226
|
-
await waitForProxy(port);
|
|
227
|
-
return {
|
|
228
|
-
port,
|
|
229
|
-
pid: proxy.pid
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
async function stopProxy(configDir) {
|
|
233
|
-
// Stop heartbeat updates
|
|
234
|
-
if (heartbeatInterval) {
|
|
235
|
-
clearInterval(heartbeatInterval);
|
|
236
|
-
heartbeatInterval = null;
|
|
237
|
-
}
|
|
238
|
-
// Note: We don't kill the proxy here anymore.
|
|
239
|
-
// The proxy monitors the heartbeat file and exits itself when stale.
|
|
240
|
-
// This handles multi-window scenarios correctly.
|
|
241
|
-
// Optional: Write a special "stopping" timestamp to speed up proxy shutdown
|
|
242
|
-
const heartbeatFile = (0, config_1.getHeartbeatFile)(configDir);
|
|
243
|
-
try {
|
|
244
|
-
fs.writeFileSync(heartbeatFile, '0'); // Special value: stopping
|
|
245
|
-
// Remove heartbeat file after a short delay
|
|
246
|
-
setTimeout(() => {
|
|
247
|
-
try {
|
|
248
|
-
if (fs.existsSync(heartbeatFile)) {
|
|
249
|
-
fs.unlinkSync(heartbeatFile);
|
|
234
|
+
if (ready) {
|
|
235
|
+
if (childExited) {
|
|
236
|
+
const a = await tryAdoptExistingFreshProxy(configDir, config, currentHash);
|
|
237
|
+
if (a) {
|
|
238
|
+
return a;
|
|
250
239
|
}
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
persistProxyInfo(configDir, config, port, proxy.pid, currentHash);
|
|
243
|
+
return { port, pid: proxy.pid };
|
|
244
|
+
}
|
|
245
|
+
const ready2 = await waitForProxy(port, 15000);
|
|
246
|
+
if (ready2 && !childExited) {
|
|
247
|
+
persistProxyInfo(configDir, config, port, proxy.pid, currentHash);
|
|
248
|
+
return { port, pid: proxy.pid };
|
|
249
|
+
}
|
|
250
|
+
if (childExited) {
|
|
251
|
+
const a = await tryAdoptExistingFreshProxy(configDir, config, currentHash);
|
|
252
|
+
if (a) {
|
|
253
|
+
return a;
|
|
251
254
|
}
|
|
252
|
-
|
|
253
|
-
|
|
255
|
+
}
|
|
256
|
+
try {
|
|
257
|
+
process.kill(proxy.pid);
|
|
258
|
+
}
|
|
259
|
+
catch { }
|
|
254
260
|
}
|
|
255
|
-
|
|
261
|
+
console.error(`[paytaca] Proxy failed to start within ${MAX_ATTEMPTS} attempts`);
|
|
262
|
+
throw new Error(`Proxy failed to start within ${MAX_ATTEMPTS} attempts`);
|
|
256
263
|
}
|
|
257
264
|
async function waitForProxy(port, timeout = 30000) {
|
|
258
265
|
const start = Date.now();
|
|
@@ -262,15 +269,14 @@ async function waitForProxy(port, timeout = 30000) {
|
|
|
262
269
|
signal: AbortSignal.timeout(8000)
|
|
263
270
|
});
|
|
264
271
|
if (response.ok) {
|
|
265
|
-
return;
|
|
272
|
+
return true;
|
|
266
273
|
}
|
|
267
274
|
}
|
|
268
275
|
catch {
|
|
269
|
-
// Not ready yet
|
|
270
276
|
}
|
|
271
277
|
await new Promise(resolve => setTimeout(resolve, 500));
|
|
272
278
|
}
|
|
273
|
-
|
|
279
|
+
return false;
|
|
274
280
|
}
|
|
275
281
|
async function getProxyConfig(configDir) {
|
|
276
282
|
const status = await getProxyStatus(configDir);
|
package/dist/proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paytaca/opencode-plugin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.15",
|
|
4
4
|
"description": "OpenCode plugin for Paytaca AI - AI inference provider powered by Bitcoin Cash micropayments",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@opencode-ai/plugin": "^1.17.8",
|
|
36
|
-
"paytaca-cli": "^0.4.
|
|
36
|
+
"paytaca-cli": "^0.4.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/node": "^20.0.0",
|