paytaca-cli 0.6.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +183 -34
- package/dist/ai/autoRefill.d.ts +85 -0
- package/dist/ai/autoRefill.d.ts.map +1 -0
- package/dist/ai/autoRefill.js +266 -0
- package/dist/ai/autoRefill.js.map +1 -0
- package/dist/ai/client.d.ts +73 -0
- package/dist/ai/client.d.ts.map +1 -0
- package/dist/ai/client.js +90 -0
- package/dist/ai/client.js.map +1 -0
- package/dist/ai/config.d.ts +8 -0
- package/dist/ai/config.d.ts.map +1 -0
- package/dist/ai/config.js +17 -0
- package/dist/ai/config.js.map +1 -0
- package/dist/ai/configure.d.ts +61 -0
- package/dist/ai/configure.d.ts.map +1 -0
- package/dist/ai/configure.js +452 -0
- package/dist/ai/configure.js.map +1 -0
- package/dist/ai/credits.d.ts +27 -0
- package/dist/ai/credits.d.ts.map +1 -0
- package/dist/ai/credits.js +108 -0
- package/dist/ai/credits.js.map +1 -0
- package/dist/ai/images.d.ts +128 -0
- package/dist/ai/images.d.ts.map +1 -0
- package/dist/ai/images.js +399 -0
- package/dist/ai/images.js.map +1 -0
- package/dist/ai/models.d.ts +13 -0
- package/dist/ai/models.d.ts.map +1 -0
- package/dist/ai/models.js +49 -0
- package/dist/ai/models.js.map +1 -0
- package/dist/ai/oauth.d.ts +45 -0
- package/dist/ai/oauth.d.ts.map +1 -0
- package/dist/ai/oauth.js +137 -0
- package/dist/ai/oauth.js.map +1 -0
- package/dist/ai/purchase.d.ts +30 -0
- package/dist/ai/purchase.d.ts.map +1 -0
- package/dist/ai/purchase.js +456 -0
- package/dist/ai/purchase.js.map +1 -0
- package/dist/commands/address.d.ts.map +1 -1
- package/dist/commands/address.js +86 -47
- package/dist/commands/address.js.map +1 -1
- package/dist/commands/ai.d.ts +9 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +951 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/balance.d.ts.map +1 -1
- package/dist/commands/balance.js +68 -129
- package/dist/commands/balance.js.map +1 -1
- package/dist/commands/history.d.ts.map +1 -1
- package/dist/commands/history.js +38 -78
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/mcp.d.ts +14 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +68 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/pay.js +1 -1
- package/dist/commands/pay.js.map +1 -1
- package/dist/commands/receive.d.ts +1 -8
- package/dist/commands/receive.d.ts.map +1 -1
- package/dist/commands/receive.js +51 -124
- package/dist/commands/receive.js.map +1 -1
- package/dist/commands/send.d.ts +0 -10
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +40 -50
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/swap.js +1 -1
- package/dist/commands/swap.js.map +1 -1
- package/dist/commands/token.d.ts +1 -9
- package/dist/commands/token.d.ts.map +1 -1
- package/dist/commands/token.js +192 -289
- package/dist/commands/token.js.map +1 -1
- package/dist/commands/update.d.ts +32 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +200 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/wallet.js +1 -1
- package/dist/commands/wallet.js.map +1 -1
- package/dist/commands/web.d.ts +3 -0
- package/dist/commands/web.d.ts.map +1 -0
- package/dist/commands/web.js +71 -0
- package/dist/commands/web.js.map +1 -0
- package/dist/core/context.d.ts +30 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +45 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/wallet.d.ts +130 -0
- package/dist/core/wallet.d.ts.map +1 -0
- package/dist/core/wallet.js +276 -0
- package/dist/core/wallet.js.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +8 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +52 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +7 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +752 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/utils/format.d.ts +23 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +62 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/x402.js +1 -1
- package/dist/utils/x402.js.map +1 -1
- package/dist/wallet/cauldron/swap.d.ts +15 -0
- package/dist/wallet/cauldron/swap.d.ts.map +1 -1
- package/dist/wallet/cauldron/swap.js +31 -0
- package/dist/wallet/cauldron/swap.js.map +1 -1
- package/dist/wallet/index.d.ts +29 -1
- package/dist/wallet/index.d.ts.map +1 -1
- package/dist/wallet/index.js +92 -8
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/keys.d.ts.map +1 -1
- package/dist/wallet/keys.js +2 -0
- package/dist/wallet/keys.js.map +1 -1
- package/dist/web/assets.d.ts +3 -0
- package/dist/web/assets.d.ts.map +1 -0
- package/dist/web/assets.js +3 -0
- package/dist/web/assets.js.map +1 -0
- package/dist/web/page.d.ts +2 -0
- package/dist/web/page.d.ts.map +1 -0
- package/dist/web/page.js +637 -0
- package/dist/web/page.js.map +1 -0
- package/dist/web/server.d.ts +79 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +665 -0
- package/dist/web/server.js.map +1 -0
- package/package.json +8 -3
- package/dist/commands/wallet.test.d.ts +0 -2
- package/dist/commands/wallet.test.d.ts.map +0 -1
- package/dist/commands/wallet.test.js +0 -68
- package/dist/commands/wallet.test.js.map +0 -1
- package/dist/nostr/chat.test.d.ts +0 -2
- package/dist/nostr/chat.test.d.ts.map +0 -1
- package/dist/nostr/chat.test.js +0 -121
- package/dist/nostr/chat.test.js.map +0 -1
- package/dist/nostr/store.test.d.ts +0 -2
- package/dist/nostr/store.test.d.ts.map +0 -1
- package/dist/nostr/store.test.js +0 -456
- package/dist/nostr/store.test.js.map +0 -1
- package/dist/utils/prices.test.d.ts +0 -5
- package/dist/utils/prices.test.d.ts.map +0 -1
- package/dist/utils/prices.test.js +0 -62
- package/dist/utils/prices.test.js.map +0 -1
- package/dist/utils/x402.test.d.ts +0 -2
- package/dist/utils/x402.test.d.ts.map +0 -1
- package/dist/utils/x402.test.js +0 -216
- package/dist/utils/x402.test.js.map +0 -1
- package/dist/wallet/cauldron/pools.test.d.ts +0 -3
- package/dist/wallet/cauldron/pools.test.d.ts.map +0 -1
- package/dist/wallet/cauldron/pools.test.js +0 -149
- package/dist/wallet/cauldron/pools.test.js.map +0 -1
- package/dist/wallet/cauldron/swap.test.d.ts +0 -2
- package/dist/wallet/cauldron/swap.test.d.ts.map +0 -1
- package/dist/wallet/cauldron/swap.test.js +0 -179
- package/dist/wallet/cauldron/swap.test.js.map +0 -1
- package/skills/README.md +0 -68
- package/skills/paytaca-send/SKILL.md +0 -159
- package/skills/paytaca-wallet/SKILL.md +0 -164
- package/skills/paytaca-x402/SKILL.md +0 -130
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { PAYTACA_DIR, AUTO_REFILL_FILE, AUTO_REFILL_EVENTS_FILE, } from './config.js';
|
|
3
|
+
export function readAutoRefillState() {
|
|
4
|
+
try {
|
|
5
|
+
const raw = fs.readFileSync(AUTO_REFILL_FILE, 'utf8');
|
|
6
|
+
const parsed = JSON.parse(raw);
|
|
7
|
+
if (!parsed || typeof parsed !== 'object')
|
|
8
|
+
return null;
|
|
9
|
+
return parsed;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export function writeAutoRefillState(state) {
|
|
16
|
+
fs.mkdirSync(PAYTACA_DIR, { recursive: true, mode: 0o700 });
|
|
17
|
+
const tmp = `${AUTO_REFILL_FILE}.tmp`;
|
|
18
|
+
fs.writeFileSync(tmp, JSON.stringify(state, null, 2), {
|
|
19
|
+
mode: 0o600,
|
|
20
|
+
});
|
|
21
|
+
fs.renameSync(tmp, AUTO_REFILL_FILE);
|
|
22
|
+
}
|
|
23
|
+
export function appendAutoRefillEvent(event, file = AUTO_REFILL_EVENTS_FILE) {
|
|
24
|
+
fs.mkdirSync(PAYTACA_DIR, { recursive: true, mode: 0o700 });
|
|
25
|
+
fs.appendFileSync(file, `${JSON.stringify(event)}\n`, { mode: 0o600 });
|
|
26
|
+
}
|
|
27
|
+
export function deleteAutoRefill(file = AUTO_REFILL_FILE) {
|
|
28
|
+
try {
|
|
29
|
+
fs.unlinkSync(file);
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
if (err?.code === 'ENOENT')
|
|
34
|
+
return false;
|
|
35
|
+
throw err;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export function armAutoRefill(opts) {
|
|
39
|
+
const existing = readAutoRefillState();
|
|
40
|
+
const state = {
|
|
41
|
+
enabled: true,
|
|
42
|
+
model: opts.model ?? existing?.model,
|
|
43
|
+
minutes: opts.minutes ?? existing?.minutes,
|
|
44
|
+
maxMinutes: opts.maxMinutes ?? existing?.maxMinutes,
|
|
45
|
+
spentMinutes: existing?.spentMinutes ?? 0,
|
|
46
|
+
refillCount: existing?.refillCount ?? 0,
|
|
47
|
+
paymentMethod: opts.paymentMethod ?? existing?.paymentMethod ?? 'bch',
|
|
48
|
+
startedAt: new Date().toISOString(),
|
|
49
|
+
lastRefillAt: existing?.lastRefillAt,
|
|
50
|
+
lastRefillTxid: existing?.lastRefillTxid ?? null,
|
|
51
|
+
lastEvent: existing?.lastEvent,
|
|
52
|
+
};
|
|
53
|
+
writeAutoRefillState(state);
|
|
54
|
+
return state;
|
|
55
|
+
}
|
|
56
|
+
export function disarmAutoRefill() {
|
|
57
|
+
const existing = readAutoRefillState();
|
|
58
|
+
const state = {
|
|
59
|
+
...(existing || {}),
|
|
60
|
+
enabled: false,
|
|
61
|
+
};
|
|
62
|
+
writeAutoRefillState(state);
|
|
63
|
+
return state;
|
|
64
|
+
}
|
|
65
|
+
export function remainingBudget(state) {
|
|
66
|
+
if (!state || state.maxMinutes === undefined)
|
|
67
|
+
return null;
|
|
68
|
+
return Math.max(0, state.maxMinutes - (state.spentMinutes ?? 0));
|
|
69
|
+
}
|
|
70
|
+
export function autoRefillCanBuy(state, model, minutes) {
|
|
71
|
+
if (!state || !state.enabled) {
|
|
72
|
+
return { canBuy: false, reason: 'Auto-refill is not enabled.' };
|
|
73
|
+
}
|
|
74
|
+
if (state.model && state.model !== model) {
|
|
75
|
+
return {
|
|
76
|
+
canBuy: false,
|
|
77
|
+
reason: `Auto-refill is armed for ${state.model}, not ${model}.`,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (state.minutes && state.minutes !== minutes) {
|
|
81
|
+
return {
|
|
82
|
+
canBuy: false,
|
|
83
|
+
reason: `Auto-refill is armed for ${state.minutes}-minute plans, not ${minutes}.`,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
const budget = remainingBudget(state);
|
|
87
|
+
if (budget !== null && budget < minutes) {
|
|
88
|
+
return {
|
|
89
|
+
canBuy: false,
|
|
90
|
+
reason: `Auto-refill budget exhausted (${budget} min left).`,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return { canBuy: true };
|
|
94
|
+
}
|
|
95
|
+
export const REFILL_COOLDOWN_MS = 5 * 60 * 1000;
|
|
96
|
+
export async function autoRefillTick(deps) {
|
|
97
|
+
const read = deps.readState ?? readAutoRefillState;
|
|
98
|
+
const write = deps.writeState ?? writeAutoRefillState;
|
|
99
|
+
const append = deps.appendEvent ?? appendAutoRefillEvent;
|
|
100
|
+
const now = deps.now ? deps.now() : Date.now();
|
|
101
|
+
const disarmWithState = (current, reason, extra) => {
|
|
102
|
+
const at = new Date(now).toISOString();
|
|
103
|
+
const next = {
|
|
104
|
+
...current,
|
|
105
|
+
enabled: false,
|
|
106
|
+
lastEvent: {
|
|
107
|
+
action: 'disarmed',
|
|
108
|
+
reason,
|
|
109
|
+
at,
|
|
110
|
+
txid: extra?.txid ?? null,
|
|
111
|
+
status: extra?.status ?? 'completed',
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
write(next);
|
|
115
|
+
append({
|
|
116
|
+
action: 'disarmed',
|
|
117
|
+
reason,
|
|
118
|
+
at,
|
|
119
|
+
model: current.model ?? null,
|
|
120
|
+
minutes: current.minutes ?? null,
|
|
121
|
+
txid: extra?.txid ?? null,
|
|
122
|
+
priceSats: extra?.priceSats ?? null,
|
|
123
|
+
paymentMethod: current.paymentMethod ?? null,
|
|
124
|
+
status: extra?.status ?? 'completed',
|
|
125
|
+
});
|
|
126
|
+
return { action: 'disarmed', reason, state: next };
|
|
127
|
+
};
|
|
128
|
+
const state = read();
|
|
129
|
+
if (!state || !state.enabled)
|
|
130
|
+
return { action: 'idle' };
|
|
131
|
+
const model = state.model;
|
|
132
|
+
const minutes = state.minutes;
|
|
133
|
+
if (!model || !minutes || minutes <= 0) {
|
|
134
|
+
return disarmWithState(state, 'incomplete config');
|
|
135
|
+
}
|
|
136
|
+
const budget = remainingBudget(state);
|
|
137
|
+
if (budget !== null && budget < minutes) {
|
|
138
|
+
return disarmWithState(state, 'budget exhausted');
|
|
139
|
+
}
|
|
140
|
+
let active;
|
|
141
|
+
try {
|
|
142
|
+
active = await deps.hasActiveCredits(model);
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
return { action: 'skipped', reason: `credit check failed: ${err?.message || err}` };
|
|
146
|
+
}
|
|
147
|
+
if (active)
|
|
148
|
+
return { action: 'idle' };
|
|
149
|
+
const fresh = read();
|
|
150
|
+
if (!fresh || !fresh.enabled)
|
|
151
|
+
return { action: 'idle' };
|
|
152
|
+
if (fresh.lastRefillAt) {
|
|
153
|
+
const last = Date.parse(fresh.lastRefillAt);
|
|
154
|
+
if (Number.isFinite(last) &&
|
|
155
|
+
now - last < REFILL_COOLDOWN_MS) {
|
|
156
|
+
return { action: 'skipped', reason: 'cooldown: last refill less than 5 minutes ago' };
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
const freshModel = fresh.model;
|
|
160
|
+
const freshMinutes = fresh.minutes;
|
|
161
|
+
if (!freshModel || !freshMinutes || freshMinutes <= 0) {
|
|
162
|
+
return disarmWithState(fresh, 'incomplete config');
|
|
163
|
+
}
|
|
164
|
+
const freshBudget = remainingBudget(fresh);
|
|
165
|
+
if (freshBudget !== null && freshBudget < freshMinutes) {
|
|
166
|
+
return disarmWithState(fresh, 'budget exhausted');
|
|
167
|
+
}
|
|
168
|
+
let result;
|
|
169
|
+
try {
|
|
170
|
+
result = await deps.buy({
|
|
171
|
+
model: freshModel,
|
|
172
|
+
minutes: freshMinutes,
|
|
173
|
+
paymentMethod: fresh.paymentMethod || 'bch',
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
return { action: 'skipped', reason: `purchase failed: ${err?.message || err}` };
|
|
178
|
+
}
|
|
179
|
+
if (!result.success || !result.paid) {
|
|
180
|
+
return disarmWithState(fresh, result.error || 'purchase failed', {
|
|
181
|
+
priceSats: result.priceSats ?? null,
|
|
182
|
+
status: 'failed',
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
const at = new Date(now).toISOString();
|
|
186
|
+
const txid = result.txid ?? null;
|
|
187
|
+
const next = {
|
|
188
|
+
...fresh,
|
|
189
|
+
spentMinutes: (fresh.spentMinutes ?? 0) + freshMinutes,
|
|
190
|
+
refillCount: (fresh.refillCount ?? 0) + 1,
|
|
191
|
+
lastRefillAt: at,
|
|
192
|
+
lastRefillTxid: txid,
|
|
193
|
+
lastEvent: {
|
|
194
|
+
action: 'refilled',
|
|
195
|
+
reason: null,
|
|
196
|
+
at,
|
|
197
|
+
txid,
|
|
198
|
+
status: 'completed',
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
const nextBudget = remainingBudget(next);
|
|
202
|
+
let exhausted = false;
|
|
203
|
+
if (nextBudget !== null && nextBudget < freshMinutes) {
|
|
204
|
+
exhausted = true;
|
|
205
|
+
next.enabled = false;
|
|
206
|
+
next.lastEvent = {
|
|
207
|
+
action: 'disarmed',
|
|
208
|
+
reason: 'budget exhausted',
|
|
209
|
+
at,
|
|
210
|
+
txid,
|
|
211
|
+
status: 'completed',
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
write(next);
|
|
215
|
+
append({
|
|
216
|
+
action: 'refilled',
|
|
217
|
+
reason: null,
|
|
218
|
+
at,
|
|
219
|
+
model: freshModel,
|
|
220
|
+
minutes: freshMinutes,
|
|
221
|
+
txid,
|
|
222
|
+
priceSats: result.priceSats ?? null,
|
|
223
|
+
paymentMethod: fresh.paymentMethod ?? null,
|
|
224
|
+
status: 'completed',
|
|
225
|
+
});
|
|
226
|
+
if (exhausted) {
|
|
227
|
+
append({
|
|
228
|
+
action: 'disarmed',
|
|
229
|
+
reason: 'budget exhausted',
|
|
230
|
+
at,
|
|
231
|
+
model: freshModel,
|
|
232
|
+
minutes: freshMinutes,
|
|
233
|
+
txid,
|
|
234
|
+
priceSats: result.priceSats ?? null,
|
|
235
|
+
paymentMethod: fresh.paymentMethod ?? null,
|
|
236
|
+
status: 'completed',
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
return { action: 'refilled', state: next };
|
|
240
|
+
}
|
|
241
|
+
export function startAutoRefillLoop(opts) {
|
|
242
|
+
const intervalMs = opts.intervalMs && opts.intervalMs > 0 ? opts.intervalMs : 60_000;
|
|
243
|
+
let running = false;
|
|
244
|
+
const tick = async () => {
|
|
245
|
+
if (running)
|
|
246
|
+
return;
|
|
247
|
+
running = true;
|
|
248
|
+
try {
|
|
249
|
+
const result = await autoRefillTick(opts);
|
|
250
|
+
if (result.action !== 'idle')
|
|
251
|
+
opts.onEvent?.(result);
|
|
252
|
+
}
|
|
253
|
+
catch (err) {
|
|
254
|
+
opts.onEvent?.({ action: 'skipped', reason: err?.message || String(err) });
|
|
255
|
+
}
|
|
256
|
+
finally {
|
|
257
|
+
running = false;
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
const timer = setInterval(() => void tick(), intervalMs);
|
|
261
|
+
if (typeof timer.unref === 'function')
|
|
262
|
+
timer.unref();
|
|
263
|
+
void tick();
|
|
264
|
+
return () => clearInterval(timer);
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=autoRefill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoRefill.js","sourceRoot":"","sources":["../../src/ai/autoRefill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export interface PriceTier {
|
|
2
|
+
minutes: number;
|
|
3
|
+
price_usd?: number;
|
|
4
|
+
price_php?: number;
|
|
5
|
+
price_sats: number;
|
|
6
|
+
}
|
|
7
|
+
export interface AiModelConfig {
|
|
8
|
+
id: string;
|
|
9
|
+
display_name: string;
|
|
10
|
+
price_tiers: PriceTier[];
|
|
11
|
+
}
|
|
12
|
+
export interface AiConfig {
|
|
13
|
+
models: AiModelConfig[];
|
|
14
|
+
default_model?: string;
|
|
15
|
+
default_duration_minutes?: number;
|
|
16
|
+
context_retention_hours?: number;
|
|
17
|
+
lift_payment_discount_percent?: number;
|
|
18
|
+
proxy_url?: string;
|
|
19
|
+
image_models?: unknown[];
|
|
20
|
+
}
|
|
21
|
+
export interface WalletSession {
|
|
22
|
+
model_id?: string;
|
|
23
|
+
ai_model?: string;
|
|
24
|
+
display_name?: string;
|
|
25
|
+
model_active?: boolean;
|
|
26
|
+
session_active?: boolean;
|
|
27
|
+
time_credits_seconds?: number;
|
|
28
|
+
time_used_seconds?: number;
|
|
29
|
+
time_remaining_seconds?: number;
|
|
30
|
+
token_limit?: number;
|
|
31
|
+
}
|
|
32
|
+
export interface WalletStatus extends WalletSession {
|
|
33
|
+
sessions?: WalletSession[];
|
|
34
|
+
}
|
|
35
|
+
export interface ChatMessage {
|
|
36
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
37
|
+
content: string;
|
|
38
|
+
}
|
|
39
|
+
export interface ChatResult {
|
|
40
|
+
ok: boolean;
|
|
41
|
+
status: number;
|
|
42
|
+
statusText: string;
|
|
43
|
+
headers: Record<string, string>;
|
|
44
|
+
data: any;
|
|
45
|
+
}
|
|
46
|
+
export declare class AiApiError extends Error {
|
|
47
|
+
status?: number;
|
|
48
|
+
body?: unknown;
|
|
49
|
+
constructor(message: string, status?: number, body?: unknown);
|
|
50
|
+
}
|
|
51
|
+
export interface RequestOptions {
|
|
52
|
+
backendUrl?: string;
|
|
53
|
+
headers?: Record<string, string>;
|
|
54
|
+
timeoutMs?: number;
|
|
55
|
+
signal?: AbortSignal;
|
|
56
|
+
}
|
|
57
|
+
export declare function getConfig(opts?: RequestOptions): Promise<AiConfig>;
|
|
58
|
+
export declare function getWalletStatus(walletHash: string, opts?: RequestOptions & {
|
|
59
|
+
modelId?: string;
|
|
60
|
+
}): Promise<WalletStatus>;
|
|
61
|
+
export interface ChatRequestOptions extends RequestOptions {
|
|
62
|
+
walletHash: string;
|
|
63
|
+
body: {
|
|
64
|
+
model?: string;
|
|
65
|
+
messages: ChatMessage[];
|
|
66
|
+
stream?: boolean;
|
|
67
|
+
temperature?: number;
|
|
68
|
+
max_tokens?: number;
|
|
69
|
+
[key: string]: unknown;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export declare function chatCompletions(opts: ChatRequestOptions): Promise<ChatResult>;
|
|
73
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ai/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { resolveBackendUrl, apiUrl } from './config.js';
|
|
2
|
+
export class AiApiError extends Error {
|
|
3
|
+
status;
|
|
4
|
+
body;
|
|
5
|
+
constructor(message, status, body) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'AiApiError';
|
|
8
|
+
this.status = status;
|
|
9
|
+
this.body = body;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
async function doFetch(url, init, timeoutMs) {
|
|
13
|
+
const signal = timeoutMs ? AbortSignal.timeout(timeoutMs) : undefined;
|
|
14
|
+
return fetch(url, { ...init, signal });
|
|
15
|
+
}
|
|
16
|
+
async function parseBody(response) {
|
|
17
|
+
const text = await response.text();
|
|
18
|
+
if (!text)
|
|
19
|
+
return null;
|
|
20
|
+
try {
|
|
21
|
+
return JSON.parse(text);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return text;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function headersToObject(headers) {
|
|
28
|
+
const out = {};
|
|
29
|
+
headers.forEach((value, key) => {
|
|
30
|
+
out[key] = value;
|
|
31
|
+
});
|
|
32
|
+
return out;
|
|
33
|
+
}
|
|
34
|
+
export async function getConfig(opts = {}) {
|
|
35
|
+
const base = resolveBackendUrl(opts.backendUrl);
|
|
36
|
+
let response;
|
|
37
|
+
try {
|
|
38
|
+
response = await doFetch(apiUrl(base, '/v1/config'), { method: 'GET', headers: opts.headers }, opts.timeoutMs ?? 15000);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
throw new AiApiError(`Backend unreachable: ${err?.message || err}`);
|
|
42
|
+
}
|
|
43
|
+
const body = await parseBody(response);
|
|
44
|
+
if (!response.ok) {
|
|
45
|
+
throw new AiApiError(`GET /v1/config failed (${response.status} ${response.statusText})`, response.status, body);
|
|
46
|
+
}
|
|
47
|
+
return body;
|
|
48
|
+
}
|
|
49
|
+
export async function getWalletStatus(walletHash, opts = {}) {
|
|
50
|
+
const base = resolveBackendUrl(opts.backendUrl);
|
|
51
|
+
const url = new URL(apiUrl(base, '/v1/wallet/status'));
|
|
52
|
+
if (opts.modelId)
|
|
53
|
+
url.searchParams.set('model_id', opts.modelId);
|
|
54
|
+
let response;
|
|
55
|
+
try {
|
|
56
|
+
response = await doFetch(url.toString(), {
|
|
57
|
+
method: 'GET',
|
|
58
|
+
headers: { 'X-Wallet-Hash': walletHash, ...(opts.headers || {}) },
|
|
59
|
+
}, opts.timeoutMs ?? 15000);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
throw new AiApiError(`Backend unreachable: ${err?.message || err}`);
|
|
63
|
+
}
|
|
64
|
+
const body = await parseBody(response);
|
|
65
|
+
if (!response.ok) {
|
|
66
|
+
throw new AiApiError(`GET /v1/wallet/status failed (${response.status} ${response.statusText})`, response.status, body);
|
|
67
|
+
}
|
|
68
|
+
return body;
|
|
69
|
+
}
|
|
70
|
+
export async function chatCompletions(opts) {
|
|
71
|
+
const base = resolveBackendUrl(opts.backendUrl);
|
|
72
|
+
const headers = {
|
|
73
|
+
'Content-Type': 'application/json',
|
|
74
|
+
'X-Wallet-Hash': opts.walletHash,
|
|
75
|
+
...(opts.headers || {}),
|
|
76
|
+
};
|
|
77
|
+
const response = await doFetch(apiUrl(base, '/v1/chat/completions'), {
|
|
78
|
+
method: 'POST',
|
|
79
|
+
headers,
|
|
80
|
+
body: JSON.stringify({ stream: false, ...opts.body }),
|
|
81
|
+
}, opts.timeoutMs ?? 240000);
|
|
82
|
+
return {
|
|
83
|
+
ok: response.ok,
|
|
84
|
+
status: response.status,
|
|
85
|
+
statusText: response.statusText,
|
|
86
|
+
headers: headersToObject(response.headers),
|
|
87
|
+
data: await parseBody(response),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ai/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const DEFAULT_BACKEND_URL = "https://api.paytaca.ai";
|
|
2
|
+
export declare const LIFT_TOKEN_ID = "5932b2fd4915d6a75d3ec53282cd49118149a2176ee67ed68b1111ff0786f7fc";
|
|
3
|
+
export declare const PAYTACA_DIR: string;
|
|
4
|
+
export declare const AUTO_REFILL_FILE: string;
|
|
5
|
+
export declare const AUTO_REFILL_EVENTS_FILE: string;
|
|
6
|
+
export declare function resolveBackendUrl(explicit?: string): string;
|
|
7
|
+
export declare function apiUrl(baseUrl: string, apiPath: string): string;
|
|
8
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/ai/config.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,2BAA2B,CAAA;AAE3D,eAAO,MAAM,aAAa,qEAC0C,CAAA;AAEpE,eAAO,MAAM,WAAW,QAAsC,CAAA;AAC9D,eAAO,MAAM,gBAAgB,QAA6C,CAAA;AAC1E,eAAO,MAAM,uBAAuB,QAGnC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAI/D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import os from 'os';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
export const DEFAULT_BACKEND_URL = 'https://api.paytaca.ai';
|
|
4
|
+
export const LIFT_TOKEN_ID = '5932b2fd4915d6a75d3ec53282cd49118149a2176ee67ed68b1111ff0786f7fc';
|
|
5
|
+
export const PAYTACA_DIR = path.join(os.homedir(), '.paytaca');
|
|
6
|
+
export const AUTO_REFILL_FILE = path.join(PAYTACA_DIR, 'auto-refill.json');
|
|
7
|
+
export const AUTO_REFILL_EVENTS_FILE = path.join(PAYTACA_DIR, 'auto-refill-events.jsonl');
|
|
8
|
+
export function resolveBackendUrl(explicit) {
|
|
9
|
+
const url = explicit || process.env.PAYTACA_BACKEND_URL || DEFAULT_BACKEND_URL;
|
|
10
|
+
return url.replace(/\/+$/, '');
|
|
11
|
+
}
|
|
12
|
+
export function apiUrl(baseUrl, apiPath) {
|
|
13
|
+
const normalized = baseUrl.replace(/\/+$/, '');
|
|
14
|
+
const suffix = apiPath.startsWith('/') ? apiPath : `/${apiPath}`;
|
|
15
|
+
return `${normalized}${suffix}`;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/ai/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAA;AAE3D,MAAM,CAAC,MAAM,aAAa,GACxB,kEAAkE,CAAA;AAEpE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAA;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;AAC1E,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAC9C,WAAW,EACX,0BAA0B,CAC3B,CAAA;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,MAAM,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,mBAAmB,CAAA;IAC9E,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAe,EAAE,OAAe;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAA;IAChE,OAAO,GAAG,UAAU,GAAG,MAAM,EAAE,CAAA;AACjC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Harness configuration: writes the MCP server entry and the Paytaca AI
|
|
3
|
+
* provider (models + API key) — the opencode provider block or the Pi
|
|
4
|
+
* models.json — so AI models are usable right after `paytaca ai configure`.
|
|
5
|
+
*/
|
|
6
|
+
import { type McpClient } from '../commands/mcp.js';
|
|
7
|
+
import { type AiConfig } from './client.js';
|
|
8
|
+
import { type CreditsSummary } from './credits.js';
|
|
9
|
+
export declare const OPENCODE_PROVIDER_ID = "paytaca-ai";
|
|
10
|
+
export declare const PI_PROVIDER_ID = "paytaca-ai";
|
|
11
|
+
export declare const OMP_PROVIDER_ID = "paytaca-ai";
|
|
12
|
+
export declare const OPENCODE_PROVIDER_NPM = "@ai-sdk/openai-compatible";
|
|
13
|
+
export declare const DEFAULT_MODEL_CONTEXT = 128000;
|
|
14
|
+
export declare const DEFAULT_MODEL_OUTPUT = 8192;
|
|
15
|
+
export interface PlanSuggestion {
|
|
16
|
+
modelId: string;
|
|
17
|
+
displayName: string;
|
|
18
|
+
minutes: number;
|
|
19
|
+
priceSats: number;
|
|
20
|
+
priceUsd?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface ConfigureResult {
|
|
23
|
+
harness: McpClient;
|
|
24
|
+
path: string | null;
|
|
25
|
+
format: 'json';
|
|
26
|
+
instructions: string;
|
|
27
|
+
mcpInstalled: boolean;
|
|
28
|
+
providerInstalled: boolean;
|
|
29
|
+
providerError?: string;
|
|
30
|
+
canSign: boolean;
|
|
31
|
+
apiKeyReused: boolean;
|
|
32
|
+
apiKeyProvided: boolean;
|
|
33
|
+
apiKeyPrefix?: string;
|
|
34
|
+
models: {
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
}[];
|
|
38
|
+
creditsActive: boolean;
|
|
39
|
+
credits: CreditsSummary[];
|
|
40
|
+
planSuggestion?: PlanSuggestion;
|
|
41
|
+
warnings?: string[];
|
|
42
|
+
}
|
|
43
|
+
export interface ConfigureOptions {
|
|
44
|
+
harness: McpClient;
|
|
45
|
+
chipnet?: boolean;
|
|
46
|
+
backendUrl?: string;
|
|
47
|
+
path?: string;
|
|
48
|
+
apiKey?: string;
|
|
49
|
+
requestApiKey?: () => Promise<string | null>;
|
|
50
|
+
}
|
|
51
|
+
export declare function isValidApiKey(key: string): boolean;
|
|
52
|
+
export declare function deepMerge(target: Record<string, unknown>, patch: Record<string, unknown>): Record<string, unknown>;
|
|
53
|
+
export declare function buildOpencodeProvider(config: AiConfig, backendUrl: string, apiKey: string): Record<string, unknown>;
|
|
54
|
+
export declare function extractExistingApiKey(config: Record<string, unknown>, providerId?: string): string | null;
|
|
55
|
+
export declare function buildPiProvider(config: AiConfig, backendUrl: string, apiKey: string): Record<string, unknown>;
|
|
56
|
+
export declare function extractPiApiKey(config: Record<string, unknown>, providerId?: string): string | null;
|
|
57
|
+
export declare function extractOmpDefaultModel(yaml: string): string | null;
|
|
58
|
+
export declare function replaceOmpDefaultModel(yaml: string, nextModelRef: string): string | null;
|
|
59
|
+
export declare function parseJsonConfig(raw: string): Record<string, unknown>;
|
|
60
|
+
export declare function configureHarness(options: ConfigureOptions): Promise<ConfigureResult>;
|
|
61
|
+
//# sourceMappingURL=configure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../../src/ai/configure.ts"],"names":[],"mappings":"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"}
|