@clawnch/clawtomaton 0.2.2 → 0.4.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.
Files changed (109) hide show
  1. package/README.md +82 -10
  2. package/dist/agent/index.d.ts +5 -1
  3. package/dist/agent/index.d.ts.map +1 -1
  4. package/dist/agent/index.js +120 -10
  5. package/dist/agent/index.js.map +1 -1
  6. package/dist/agent/prompt.d.ts +2 -0
  7. package/dist/agent/prompt.d.ts.map +1 -1
  8. package/dist/agent/prompt.js +199 -2
  9. package/dist/agent/prompt.js.map +1 -1
  10. package/dist/bunker/client.d.ts +113 -0
  11. package/dist/bunker/client.d.ts.map +1 -0
  12. package/dist/bunker/client.js +404 -0
  13. package/dist/bunker/client.js.map +1 -0
  14. package/dist/bunker/self-deploy.d.ts +54 -0
  15. package/dist/bunker/self-deploy.d.ts.map +1 -0
  16. package/dist/bunker/self-deploy.js +353 -0
  17. package/dist/bunker/self-deploy.js.map +1 -0
  18. package/dist/bunker/threat-monitor.d.ts +47 -0
  19. package/dist/bunker/threat-monitor.d.ts.map +1 -0
  20. package/dist/bunker/threat-monitor.js +173 -0
  21. package/dist/bunker/threat-monitor.js.map +1 -0
  22. package/dist/bunker/types.d.ts +320 -0
  23. package/dist/bunker/types.d.ts.map +1 -0
  24. package/dist/bunker/types.js +9 -0
  25. package/dist/bunker/types.js.map +1 -0
  26. package/dist/cli.js +207 -9
  27. package/dist/cli.js.map +1 -1
  28. package/dist/constants.d.ts +11 -0
  29. package/dist/constants.d.ts.map +1 -1
  30. package/dist/constants.js +10 -0
  31. package/dist/constants.js.map +1 -1
  32. package/dist/heartbeat/index.d.ts +28 -0
  33. package/dist/heartbeat/index.d.ts.map +1 -1
  34. package/dist/heartbeat/index.js +240 -11
  35. package/dist/heartbeat/index.js.map +1 -1
  36. package/dist/index.d.ts +10 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +9 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/market/index.d.ts +20 -1
  41. package/dist/market/index.d.ts.map +1 -1
  42. package/dist/market/index.js +76 -4
  43. package/dist/market/index.js.map +1 -1
  44. package/dist/skills/analyze-market.d.ts +17 -0
  45. package/dist/skills/analyze-market.d.ts.map +1 -0
  46. package/dist/skills/analyze-market.js +156 -0
  47. package/dist/skills/analyze-market.js.map +1 -0
  48. package/dist/skills/bunker.d.ts +29 -0
  49. package/dist/skills/bunker.d.ts.map +1 -0
  50. package/dist/skills/bunker.js +502 -0
  51. package/dist/skills/bunker.js.map +1 -0
  52. package/dist/skills/check-balance.d.ts +2 -2
  53. package/dist/skills/check-balance.d.ts.map +1 -1
  54. package/dist/skills/check-balance.js +43 -8
  55. package/dist/skills/check-balance.js.map +1 -1
  56. package/dist/skills/check-price.d.ts +11 -0
  57. package/dist/skills/check-price.d.ts.map +1 -0
  58. package/dist/skills/check-price.js +83 -0
  59. package/dist/skills/check-price.js.map +1 -0
  60. package/dist/skills/claim-vault.d.ts +15 -0
  61. package/dist/skills/claim-vault.d.ts.map +1 -0
  62. package/dist/skills/claim-vault.js +96 -0
  63. package/dist/skills/claim-vault.js.map +1 -0
  64. package/dist/skills/deploy.d.ts.map +1 -1
  65. package/dist/skills/deploy.js +10 -1
  66. package/dist/skills/deploy.js.map +1 -1
  67. package/dist/skills/index.d.ts +9 -1
  68. package/dist/skills/index.d.ts.map +1 -1
  69. package/dist/skills/index.js +34 -1
  70. package/dist/skills/index.js.map +1 -1
  71. package/dist/skills/manage-orders.d.ts +26 -0
  72. package/dist/skills/manage-orders.d.ts.map +1 -0
  73. package/dist/skills/manage-orders.js +470 -0
  74. package/dist/skills/manage-orders.js.map +1 -0
  75. package/dist/skills/portfolio.d.ts +19 -0
  76. package/dist/skills/portfolio.d.ts.map +1 -0
  77. package/dist/skills/portfolio.js +189 -0
  78. package/dist/skills/portfolio.js.map +1 -0
  79. package/dist/skills/watch-activity.d.ts +12 -0
  80. package/dist/skills/watch-activity.d.ts.map +1 -0
  81. package/dist/skills/watch-activity.js +130 -0
  82. package/dist/skills/watch-activity.js.map +1 -0
  83. package/dist/skills/xmtp.d.ts +18 -0
  84. package/dist/skills/xmtp.d.ts.map +1 -0
  85. package/dist/skills/xmtp.js +180 -0
  86. package/dist/skills/xmtp.js.map +1 -0
  87. package/dist/state/index.d.ts +25 -0
  88. package/dist/state/index.d.ts.map +1 -1
  89. package/dist/state/index.js +156 -0
  90. package/dist/state/index.js.map +1 -1
  91. package/dist/survival/index.d.ts.map +1 -1
  92. package/dist/survival/index.js +3 -0
  93. package/dist/survival/index.js.map +1 -1
  94. package/dist/types.d.ts +19 -0
  95. package/dist/types.d.ts.map +1 -1
  96. package/dist/types.js.map +1 -1
  97. package/dist/xmtp/client.d.ts +79 -0
  98. package/dist/xmtp/client.d.ts.map +1 -0
  99. package/dist/xmtp/client.js +282 -0
  100. package/dist/xmtp/client.js.map +1 -0
  101. package/dist/xmtp/index.d.ts +9 -0
  102. package/dist/xmtp/index.d.ts.map +1 -0
  103. package/dist/xmtp/index.js +8 -0
  104. package/dist/xmtp/index.js.map +1 -0
  105. package/dist/xmtp/types.d.ts +59 -0
  106. package/dist/xmtp/types.d.ts.map +1 -0
  107. package/dist/xmtp/types.js +5 -0
  108. package/dist/xmtp/types.js.map +1 -0
  109. package/package.json +3 -2
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import { formatSnapshot } from '../market/index.js';
13
13
  import { formatSurvivalStatus } from '../survival/index.js';
14
+ import { ClawnchTrader, ClawnchOrders } from '@clawnch/clawncher-sdk';
14
15
  /**
15
16
  * Build the full system prompt for an inference call.
16
17
  * If a market snapshot is available, it's injected as hard data.
@@ -76,7 +77,36 @@ ${formatSurvivalStatus(agent.survival)}`);
76
77
  You haven't deployed a token. When you have a concept ready, use deploy_token.
77
78
  Don't rush — a bad launch wastes gas and your one deploy slot.`);
78
79
  }
79
- // 7. Skills
80
+ // 7. Bunker deployment (if configured)
81
+ if (ctx.state) {
82
+ const bunkerSection = buildBunkerSection(ctx.state, snapshot);
83
+ if (bunkerSection) {
84
+ sections.push(bunkerSection);
85
+ }
86
+ }
87
+ // 8. Active orders + risk status
88
+ if (ctx.state) {
89
+ const ordersSection = buildOrdersSection(ctx.state);
90
+ if (ordersSection) {
91
+ sections.push(ordersSection);
92
+ }
93
+ const riskSection = buildRiskSection(ctx.state);
94
+ if (riskSection) {
95
+ sections.push(riskSection);
96
+ }
97
+ const portfolioSection = buildPortfolioSection(ctx.state);
98
+ if (portfolioSection) {
99
+ sections.push(portfolioSection);
100
+ }
101
+ }
102
+ // 9. XMTP messaging status
103
+ if (ctx.agent.xmtpClient?.isStarted()) {
104
+ const xmtpSection = buildXmtpSection(ctx.agent);
105
+ if (xmtpSection) {
106
+ sections.push(xmtpSection);
107
+ }
108
+ }
109
+ // 10. Skills
80
110
  sections.push(`# Skills
81
111
 
82
112
  ${formatSkills(agent.skills)}
@@ -87,7 +117,7 @@ Call a skill:
87
117
  {"skill": "skill_name", "params": {"key": "value"}}
88
118
  </tool_call>
89
119
  \`\`\``);
90
- // 8. Operating rules
120
+ // 11. Operating rules
91
121
  sections.push(`# Rules
92
122
 
93
123
  - Think before acting. State your reasoning, then use skills.
@@ -96,9 +126,44 @@ Call a skill:
96
126
  - Every tx costs gas. Be frugal.
97
127
  - Update SOUL.md to remember important decisions and observations.
98
128
  - If nothing needs doing, say so and end your turn. Silence is fine.
129
+ - If you receive XMTP messages, respond authentically. Be helpful, concise, and on-brand.
99
130
  - Turn: ${agent.turn}`);
100
131
  return sections.join('\n\n---\n\n');
101
132
  }
133
+ /**
134
+ * Build the bunker deployment section for the system prompt.
135
+ * Returns null if bunker is not configured or no deployment exists.
136
+ */
137
+ function buildBunkerSection(state, snapshot) {
138
+ const bunkerState = state.getBunkerState();
139
+ if (!bunkerState?.containerId)
140
+ return null;
141
+ const lines = [`# Bunker Deployment`];
142
+ lines.push(`Container: ${bunkerState.containerId}`);
143
+ if (bunkerState.botId) {
144
+ lines.push(`Bot: ${bunkerState.botId}`);
145
+ }
146
+ if (bunkerState.expiresAt) {
147
+ const hoursRemaining = Math.max(0, (bunkerState.expiresAt - Date.now()) / (1000 * 60 * 60));
148
+ const expiryStr = new Date(bunkerState.expiresAt).toISOString();
149
+ if (hoursRemaining < 48) {
150
+ lines.push(`Runtime: EXPIRING SOON — ${hoursRemaining.toFixed(1)}h remaining (${expiryStr})`);
151
+ lines.push(`ACTION NEEDED: Use bunker skill with action "extend" to renew.`);
152
+ }
153
+ else {
154
+ lines.push(`Runtime expires: ${expiryStr} (${Math.round(hoursRemaining / 24)}d remaining)`);
155
+ }
156
+ }
157
+ lines.push(`Threat: ${bunkerState.lastThreatLevel}${bunkerState.lastThreatCheck ? ` (last checked: ${new Date(bunkerState.lastThreatCheck).toISOString()})` : ''}`);
158
+ if (bunkerState.cloneIds.length > 0) {
159
+ lines.push(`Clones: ${bunkerState.cloneIds.length} active`);
160
+ }
161
+ if (snapshot?.bunkerBalance !== null && snapshot?.bunkerBalance !== undefined && snapshot.bunkerBalance > 0n) {
162
+ lines.push(`BUNKER token balance: ${snapshot.bunkerBalanceFormatted}`);
163
+ }
164
+ lines.push(``, `You are running on MoltBunker decentralized infrastructure. Monitor threats and extend runtime before expiry.`);
165
+ return lines.join('\n');
166
+ }
102
167
  // ============================================================================
103
168
  // Helpers
104
169
  // ============================================================================
@@ -112,6 +177,138 @@ function formatSkills(skills) {
112
177
  return `## ${s.name}\n${s.description}\nParams:\n${params}`;
113
178
  }).join('\n\n');
114
179
  }
180
+ /**
181
+ * Build a compact risk status section for the system prompt.
182
+ * Shows circuit breaker status, drawdown, and rate limit state.
183
+ */
184
+ function buildRiskSection(state) {
185
+ try {
186
+ const orders = new ClawnchOrders(state, state.asRiskStorage());
187
+ const risk = orders.getRiskConfig();
188
+ if (!risk.circuitBreakerTripped && risk.recentExecutions.length === 0 && risk.peakPortfolioEth === 0) {
189
+ return null; // No risk data yet — skip section
190
+ }
191
+ const lines = [`# Risk Status`];
192
+ if (risk.circuitBreakerTripped) {
193
+ lines.push(`CIRCUIT BREAKER: TRIPPED (${new Date(risk.circuitBreakerTrippedAt).toISOString()})`);
194
+ lines.push(`All orders halted. Use manage_orders action=reset_circuit_breaker to resume.`);
195
+ }
196
+ if (risk.peakPortfolioEth > 0) {
197
+ lines.push(`Peak portfolio: ${risk.peakPortfolioEth.toFixed(6)} ETH`);
198
+ lines.push(`Max drawdown limit: ${risk.maxDrawdownPct}% | Max position: ${risk.maxPositionPct}%`);
199
+ }
200
+ const oneHourAgo = Date.now() - 60 * 60 * 1000;
201
+ const recentCount = risk.recentExecutions.filter(t => t > oneHourAgo).length;
202
+ if (recentCount > 0) {
203
+ lines.push(`Executions this hour: ${recentCount}/${risk.maxExecutionsPerHour}`);
204
+ }
205
+ return lines.join('\n');
206
+ }
207
+ catch {
208
+ return null;
209
+ }
210
+ }
211
+ /**
212
+ * Build a compact portfolio section for the system prompt.
213
+ * Shows positions, P&L, and recent performance.
214
+ */
215
+ function buildPortfolioSection(state) {
216
+ try {
217
+ const trader = new ClawnchTrader(state.asTraderStorage());
218
+ const positions = trader.getPositions().filter(p => parseFloat(p.amount) > 0);
219
+ if (positions.length === 0)
220
+ return null;
221
+ const lines = [`# Trading Portfolio`];
222
+ let totalCost = 0;
223
+ for (const p of positions) {
224
+ const amount = parseFloat(p.amount);
225
+ const cost = amount * p.avgCostEth;
226
+ totalCost += cost;
227
+ const pnlSign = p.realizedPnlEth >= 0 ? '+' : '';
228
+ lines.push(` $${p.symbol}: ${amount.toFixed(2)} tokens | avg cost: ${p.avgCostEth.toExponential(3)} ETH | realized P&L: ${pnlSign}${p.realizedPnlEth.toFixed(6)} ETH | ${p.tradeCount} trades`);
229
+ }
230
+ lines.push(`Total cost basis: ${totalCost.toFixed(6)} ETH`);
231
+ // Recent performance
232
+ const perf24h = trader.getPerformance(24 * 60 * 60 * 1000);
233
+ if (perf24h) {
234
+ const sign = perf24h.changePct >= 0 ? '+' : '';
235
+ lines.push(`24h: ${sign}${perf24h.changePct.toFixed(1)}% (${sign}${perf24h.changeEth.toFixed(6)} ETH)`);
236
+ }
237
+ lines.push(``, `Use portfolio action=view for full P&L with live pricing.`);
238
+ return lines.join('\n');
239
+ }
240
+ catch {
241
+ return null;
242
+ }
243
+ }
244
+ /**
245
+ * Build the active orders section for the system prompt.
246
+ * Shows pending/triggered orders so the agent knows about them.
247
+ * Returns null if no active orders.
248
+ */
249
+ function buildOrdersSection(state) {
250
+ let orders;
251
+ try {
252
+ orders = state.getOrders();
253
+ }
254
+ catch {
255
+ return null;
256
+ }
257
+ const active = orders.filter(o => o.status === 'pending' || o.status === 'triggered');
258
+ if (active.length === 0)
259
+ return null;
260
+ const lines = [`# Active Orders`];
261
+ const triggered = active.filter(o => o.status === 'triggered');
262
+ const pending = active.filter(o => o.status === 'pending');
263
+ if (triggered.length > 0) {
264
+ lines.push(``);
265
+ lines.push(`TRIGGERED (execute now):`);
266
+ for (const o of triggered) {
267
+ lines.push(` ${o.id}: ${o.description} [${o.type}]`);
268
+ lines.push(` Action: ${o.action.side} ${o.action.amountPct ? `${o.action.amountPct}%` : o.action.amountRaw ?? '?'} — Token: ${o.token}`);
269
+ lines.push(` → Use swap skill to execute, then manage_orders action=executed orderId=${o.id}`);
270
+ }
271
+ }
272
+ if (pending.length > 0) {
273
+ lines.push(``);
274
+ lines.push(`Pending (${pending.length}):`);
275
+ for (const o of pending) {
276
+ const expiry = o.expiresAt ? ` (expires: ${new Date(o.expiresAt).toISOString()})` : '';
277
+ lines.push(` ${o.id}: ${o.description}${expiry}`);
278
+ if (o.dca) {
279
+ lines.push(` DCA: ${o.dca.buysCompleted}/${o.dca.maxBuys ?? '∞'} buys`);
280
+ }
281
+ }
282
+ }
283
+ return lines.join('\n');
284
+ }
285
+ /**
286
+ * Build the XMTP messaging section for the system prompt.
287
+ * Shows connection status and queued message count.
288
+ */
289
+ function buildXmtpSection(agent) {
290
+ const client = agent.xmtpClient;
291
+ if (!client || !client.isStarted())
292
+ return null;
293
+ const lines = [`# XMTP Messaging`];
294
+ const address = client.getAddress();
295
+ if (address) {
296
+ lines.push(`Address: \`${address}\``);
297
+ }
298
+ lines.push(`Status: Connected`);
299
+ const queueSize = client.getQueueSize();
300
+ if (queueSize > 0) {
301
+ lines.push(`Unread messages: ${queueSize}`);
302
+ lines.push(`Use xmtp action=check_inbox to read them.`);
303
+ }
304
+ else {
305
+ lines.push(`Inbox: empty`);
306
+ }
307
+ lines.push(``);
308
+ lines.push(`You are discoverable on Base App, World App, and xmtp.chat.`);
309
+ lines.push(`Users can message you directly. Respond via xmtp skill.`);
310
+ return lines.join('\n');
311
+ }
115
312
  function getActionGuidance(conditions, tier) {
116
313
  if (tier === 'dead') {
117
314
  return 'You are dead. No ETH, no actions. Wait for external funding.';
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/agent/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/agent/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAStE;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAkB;IAClD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;IAC5C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,cAAc;IACd,QAAQ,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,QAAQ,CAAC,IAAI;;;YAGpC,KAAK,CAAC,QAAQ,CAAC,OAAO;aACrB,KAAK,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAC;IAE9C,kBAAkB;IAClB,QAAQ,CAAC,IAAI,CAAC;;EAEd,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IAEtB,aAAa;IACb,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC;;EAEhB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACd,CAAC;IAED,oBAAoB;IACpB,QAAQ,CAAC,IAAI,CAAC;;EAEd,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAEhC,4CAA4C;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC;;EAEhB,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE1B,IAAI,UAAU,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC;;EAElB,UAAU,CAAC,OAAO;;EAElB,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iEAAiE;QACjE,QAAQ,CAAC,IAAI,CAAC;;EAEhB,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG;YACjB,cAAc;YACd,EAAE;YACF,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,QAAQ,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI;SACtE,CAAC;QACF,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC5H,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,iFAAiF,CAAC,CAAC;QACvG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC;;;+DAG6C,CAAC,CAAC;IAC/D,CAAC;IAED,uCAAuC;IACvC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9D,IAAI,aAAa,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,aAAa,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,gBAAgB,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,aAAa;IACb,QAAQ,CAAC,IAAI,CAAC;;EAEd,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;;;;;;;OAOrB,CAAC,CAAC;IAEP,sBAAsB;IACtB,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;UASN,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtB,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAiB,EAAE,QAAyB;IACtE,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3C,IAAI,CAAC,WAAW,EAAE,WAAW;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,KAAK,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEtC,KAAK,CAAC,IAAI,CAAC,cAAc,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAEpD,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,QAAQ,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5F,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAEhE,IAAI,cAAc,GAAG,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,4BAA4B,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,SAAS,GAAG,CAAC,CAAC;YAC9F,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,oBAAoB,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpK,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,QAAQ,EAAE,aAAa,KAAK,IAAI,IAAI,QAAQ,EAAE,aAAa,KAAK,SAAS,IAAI,QAAQ,CAAC,aAAa,GAAG,EAAE,EAAE,CAAC;QAC7G,KAAK,CAAC,IAAI,CAAC,yBAAyB,QAAQ,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,+GAA+G,CAAC,CAAC;IAEhI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,SAAS,YAAY,CAAC,MAAyB;IAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gDAAgD,CAAC;IAEjF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU;aACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;aAC9F,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,cAAc,MAAM,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,KAAiB;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE,CAAC;YACrG,OAAO,IAAI,CAAC,CAAC,kCAAkC;QACjD,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,6BAA6B,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACjG,KAAK,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAC7F,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,cAAc,qBAAqB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC;QAC7E,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,yBAAyB,WAAW,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,KAAiB;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAE9E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAExC,MAAM,KAAK,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACtC,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC;YACnC,SAAS,IAAI,IAAI,CAAC;YAClB,MAAM,OAAO,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB,OAAO,GAAG,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,SAAS,CAAC,CAAC;QACnM,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,qBAAqB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAE5D,qBAAqB;QACrB,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC3D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1G,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,2DAA2D,CAAC,CAAC;QAE5E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,KAAiB;IAC3C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,KAAK,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAE3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5I,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,OAAO,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,KAAmB;IAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;IAChC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;QAAE,OAAO,IAAI,CAAC;IAEhD,MAAM,KAAK,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAEhC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IACxC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAEtE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,UAA4B,EAAE,IAAkB;IACzE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,8DAA8D,CAAC;IACxE,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IACnF,CAAC;SAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,uBAAuB,oDAAoD,CAAC,CAAC;IAClH,CAAC;IAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAClF,CAAC;SAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mDAAmD,CAAC;AACnG,CAAC"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * MoltBunker API client — production-hardened HTTP client with wallet session auth.
3
+ *
4
+ * Auth: EIP-191 signed challenge → session token (wt_*). Auto-refreshes on 401.
5
+ * Rate limits: Exponential backoff on 429 with Retry-After header.
6
+ * Errors: Typed error hierarchy for structured handling.
7
+ * Timeouts: 30s default per request.
8
+ *
9
+ * This client is stateless except for the cached session token.
10
+ * All methods are safe to call concurrently (token refresh is serialized).
11
+ */
12
+ import type { WalletClient } from 'viem';
13
+ import type { Bot, BotCreateRequest, BotUpdateRequest, BotStatus, BunkerBalance, BunkerErrorResponse, CatalogResponse, Clone, CloneCreateRequest, CloneListParams, CloningConfig, Container, ContainerListParams, Deployment, DeploymentCreateRequest, Migration, MigrateRequest, Runtime, RuntimeExtendRequest, RuntimeReserveRequest, RuntimeStatus, Snapshot, SnapshotCreateRequest, SnapshotRestoreRequest, ThreatAssessment } from './types.js';
14
+ export declare class BunkerError extends Error {
15
+ readonly status: number;
16
+ readonly body?: BunkerErrorResponse | undefined;
17
+ constructor(message: string, status: number, body?: BunkerErrorResponse | undefined);
18
+ }
19
+ export declare class BunkerAuthError extends BunkerError {
20
+ constructor(message: string, body?: BunkerErrorResponse);
21
+ }
22
+ export declare class BunkerInsufficientFundsError extends BunkerError {
23
+ readonly required: number | undefined;
24
+ readonly available: number | undefined;
25
+ constructor(message: string, body?: BunkerErrorResponse);
26
+ }
27
+ export declare class BunkerNotFoundError extends BunkerError {
28
+ constructor(message: string, body?: BunkerErrorResponse);
29
+ }
30
+ export declare class BunkerRateLimitError extends BunkerError {
31
+ readonly retryAfterMs: number;
32
+ constructor(message: string, retryAfterMs: number, body?: BunkerErrorResponse);
33
+ }
34
+ export interface BunkerClientOptions {
35
+ apiUrl?: string;
36
+ walletClient: WalletClient;
37
+ /** Timeout per request in ms (default: 30_000) */
38
+ timeoutMs?: number;
39
+ }
40
+ export declare class BunkerClient {
41
+ private readonly apiUrl;
42
+ private readonly walletClient;
43
+ private readonly timeoutMs;
44
+ private sessionToken;
45
+ private sessionExpiresAt;
46
+ private refreshPromise;
47
+ constructor(opts: BunkerClientOptions);
48
+ /**
49
+ * Get a valid session token. Uses cached token if still valid,
50
+ * otherwise authenticates via challenge-response.
51
+ *
52
+ * Concurrent calls are serialized — only one auth request at a time.
53
+ */
54
+ private getSessionToken;
55
+ /**
56
+ * Full challenge-response auth flow. Signs with EIP-191 via viem wallet.
57
+ */
58
+ private authenticate;
59
+ /**
60
+ * Invalidate the current session and force re-authentication on next request.
61
+ */
62
+ invalidateSession(): void;
63
+ /**
64
+ * Low-level request without auth retry logic. Used for auth endpoints.
65
+ */
66
+ private rawRequest;
67
+ /**
68
+ * Authenticated request with auto-refresh on 401 and rate limit retry.
69
+ *
70
+ * For mutating operations that can't be safely retried (deploy, clone),
71
+ * set `idempotent: false` to skip rate-limit retry.
72
+ */
73
+ private request;
74
+ createBot(req: BotCreateRequest): Promise<Bot>;
75
+ listBots(): Promise<Bot[]>;
76
+ getBot(id: string): Promise<Bot>;
77
+ updateBot(id: string, req: BotUpdateRequest): Promise<Bot>;
78
+ deleteBot(id: string): Promise<void>;
79
+ getBotStatus(id: string): Promise<BotStatus>;
80
+ enableCloning(botId: string, config: CloningConfig): Promise<void>;
81
+ syncClones(botId: string): Promise<void>;
82
+ reserveRuntime(req: RuntimeReserveRequest): Promise<Runtime>;
83
+ getRuntime(id: string): Promise<Runtime>;
84
+ getRuntimeStatus(id: string): Promise<RuntimeStatus>;
85
+ extendRuntime(id: string, req: RuntimeExtendRequest): Promise<void>;
86
+ releaseRuntime(id: string): Promise<void>;
87
+ createDeployment(req: DeploymentCreateRequest): Promise<Deployment>;
88
+ listDeployments(botId?: string): Promise<Deployment[]>;
89
+ getDeployment(id: string): Promise<Deployment>;
90
+ stopDeployment(id: string): Promise<void>;
91
+ listContainers(params?: ContainerListParams): Promise<Container[]>;
92
+ getContainer(id: string): Promise<Container>;
93
+ startContainer(id: string): Promise<void>;
94
+ stopContainer(id: string): Promise<void>;
95
+ deleteContainer(id: string): Promise<void>;
96
+ getContainerLogs(id: string, tail?: number): Promise<string>;
97
+ enableCheckpoints(id: string): Promise<void>;
98
+ enableContainerCloning(id: string, config: CloningConfig): Promise<void>;
99
+ createSnapshot(req: SnapshotCreateRequest): Promise<Snapshot>;
100
+ listSnapshots(containerId?: string): Promise<Snapshot[]>;
101
+ getSnapshot(id: string): Promise<Snapshot>;
102
+ deleteSnapshot(id: string): Promise<void>;
103
+ restoreSnapshot(id: string, req: SnapshotRestoreRequest): Promise<Snapshot>;
104
+ createClone(req: CloneCreateRequest): Promise<Clone>;
105
+ listClones(params?: CloneListParams): Promise<Clone[]>;
106
+ getClone(id: string): Promise<Clone>;
107
+ cancelClone(id: string): Promise<void>;
108
+ getThreat(): Promise<ThreatAssessment>;
109
+ migrate(req: MigrateRequest): Promise<Migration>;
110
+ getCatalog(): Promise<CatalogResponse>;
111
+ getBalance(address?: string): Promise<BunkerBalance>;
112
+ }
113
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/bunker/client.ts"],"names":[],"mappings":"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"}