@tangle-network/tcloud 0.2.0 → 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.
package/dist/index.cjs CHANGED
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
+ BridgeSession: () => BridgeSession,
33
34
  PrivateRouter: () => PrivateRouter,
34
35
  TCloud: () => TCloud,
35
36
  TCloudClient: () => TCloudClient,
@@ -256,6 +257,7 @@ var PrivateRouter = class {
256
257
 
257
258
  // src/client.ts
258
259
  var DEFAULT_BASE_URL = "https://router.tangle.tools/v1";
260
+ var SDK_VERSION = "0.4.0";
259
261
  async function proxiedFetch(privacy, url, init, streaming) {
260
262
  if (!privacy || privacy.mode === "direct") {
261
263
  return fetch(url, init);
@@ -302,8 +304,10 @@ var DEFAULT_RETRY = {
302
304
  retryableStatuses: [429, 500, 502, 503, 504]
303
305
  };
304
306
  var DEFAULT_TIMEOUT_MS = 6e4;
307
+ var DEFAULT_PLATFORM_URL = "https://id.tangle.tools";
305
308
  var TCloudClient = class _TCloudClient {
306
309
  baseURL;
310
+ platformURL;
307
311
  apiKey;
308
312
  model;
309
313
  headers;
@@ -320,6 +324,7 @@ var TCloudClient = class _TCloudClient {
320
324
  static OPERATORS_TTL_MS = 5 * 60 * 1e3;
321
325
  constructor(config = {}) {
322
326
  this.baseURL = (config.baseURL || DEFAULT_BASE_URL).replace(/\/$/, "");
327
+ this.platformURL = (config.platformURL || DEFAULT_PLATFORM_URL).replace(/\/$/, "");
323
328
  this.apiKey = config.apiKey || process.env.TCLOUD_API_KEY;
324
329
  this.model = config.model || "gpt-4o-mini";
325
330
  this.privacy = config.privacy;
@@ -328,7 +333,7 @@ var TCloudClient = class _TCloudClient {
328
333
  this.timeoutMs = config.timeout ?? DEFAULT_TIMEOUT_MS;
329
334
  this.headers = {
330
335
  "Content-Type": "application/json",
331
- "X-Tangle-Client": "tcloud-sdk/0.2.0"
336
+ "X-Tangle-Client": `tcloud-sdk/${SDK_VERSION}`
332
337
  };
333
338
  if (this.apiKey) {
334
339
  this.headers["Authorization"] = `Bearer ${this.apiKey}`;
@@ -508,10 +513,11 @@ var TCloudClient = class _TCloudClient {
508
513
  return res;
509
514
  }
510
515
  /**
511
- * Prepare headers for chat requests — operator routing + SpendAuth.
516
+ * Prepare headers for chat requests — operator routing + SpendAuth +
517
+ * bridge short-circuit headers when `options.bridge` is set.
512
518
  * Shared between chat() and chatStream() to eliminate duplication.
513
519
  */
514
- async _prepareChatRequest(model) {
520
+ async _prepareChatRequest(model, bridge) {
515
521
  const headers = { ...this.headers };
516
522
  if (this.spendAuthFn) {
517
523
  const auth = await this.spendAuthFn();
@@ -528,12 +534,28 @@ var TCloudClient = class _TCloudClient {
528
534
  delete headers["Authorization"];
529
535
  }
530
536
  }
537
+ if (bridge) {
538
+ headers["X-Bridge-Unlock"] = bridge.unlock;
539
+ if (bridge.resume) headers["X-Resume"] = bridge.resume;
540
+ if (bridge.bridgeUrl) headers["X-Bridge-Url"] = bridge.bridgeUrl;
541
+ if (bridge.bridgeBearer) headers["X-Bridge-Bearer"] = bridge.bridgeBearer;
542
+ }
531
543
  return { headers, baseURL };
532
544
  }
545
+ /**
546
+ * Resolve the effective model string. When a bridge is set, rewrite to
547
+ * `bridge/<harness>/<model>` (or `bridge/<harness>` if no model).
548
+ */
549
+ _effectiveModel(options) {
550
+ if (options.bridge) {
551
+ return options.bridge.model ? `bridge/${options.bridge.harness}/${options.bridge.model}` : `bridge/${options.bridge.harness}`;
552
+ }
553
+ return options.model || this.model;
554
+ }
533
555
  /** Build the chat completions request body */
534
556
  _chatBody(options, stream) {
535
557
  return JSON.stringify({
536
- model: options.model || this.model,
558
+ model: this._effectiveModel(options),
537
559
  messages: options.messages,
538
560
  temperature: options.temperature,
539
561
  max_tokens: options.maxTokens,
@@ -545,13 +567,17 @@ var TCloudClient = class _TCloudClient {
545
567
  response_format: options.responseFormat,
546
568
  tools: options.tools,
547
569
  tool_choice: options.toolChoice,
570
+ ...options.gateway ? { gateway: options.gateway } : {},
548
571
  ...options.providerOptions
549
572
  });
550
573
  }
551
574
  /** Chat completion (non-streaming) */
552
575
  async chat(options) {
553
576
  this.checkLimits();
554
- const { headers, baseURL } = await this._prepareChatRequest(options.model || this.model);
577
+ const { headers, baseURL } = await this._prepareChatRequest(
578
+ this._effectiveModel(options),
579
+ options.bridge
580
+ );
555
581
  const res = await this._doFetch(`${baseURL}/chat/completions`, {
556
582
  method: "POST",
557
583
  headers,
@@ -565,7 +591,10 @@ var TCloudClient = class _TCloudClient {
565
591
  async *chatStream(options) {
566
592
  this.checkLimits();
567
593
  this._requestCount++;
568
- const { headers, baseURL } = await this._prepareChatRequest(options.model || this.model);
594
+ const { headers, baseURL } = await this._prepareChatRequest(
595
+ this._effectiveModel(options),
596
+ options.bridge
597
+ );
569
598
  const res = await this._doFetch(`${baseURL}/chat/completions`, {
570
599
  method: "POST",
571
600
  headers,
@@ -594,6 +623,24 @@ var TCloudClient = class _TCloudClient {
594
623
  }
595
624
  }
596
625
  }
626
+ /**
627
+ * Bridge — scoped helper for a subscription-backed CLI harness behind
628
+ * the Tangle Router's cli-bridge. Returns a mini-client bound to
629
+ * (harness, unlock, resume) so you don't thread those through every
630
+ * call.
631
+ *
632
+ * ```ts
633
+ * const kimi = tcloud.bridge({ harness: 'kimi-code', model: 'kimi-for-coding', unlock: UNLOCK, resume: 'pr-42' })
634
+ * await kimi.ask('review this diff…')
635
+ * for await (const chunk of kimi.stream('continue…')) process.stdout.write(chunk)
636
+ * ```
637
+ *
638
+ * Sessions persist across process restarts — use the same `resume` id
639
+ * to land on the same CLI conversation (context intact, no replay tax).
640
+ */
641
+ bridge(cfg) {
642
+ return new BridgeSession(this, cfg);
643
+ }
597
644
  /** Convenience: send a single message and get the text response */
598
645
  async ask(message, modelOrOptions) {
599
646
  const options = typeof modelOrOptions === "string" ? { model: modelOrOptions } : modelOrOptions;
@@ -632,43 +679,89 @@ var TCloudClient = class _TCloudClient {
632
679
  const apiRoot = this.baseURL.replace(/\/v1$/, "");
633
680
  return this._fetch(`${apiRoot}/api/operators`);
634
681
  }
682
+ // ── Billing (via id.tangle.tools) ──
635
683
  /** Get credit balance */
636
684
  async credits() {
637
- const apiRoot = this.baseURL.replace(/\/v1$/, "");
638
- return this._fetch(`${apiRoot}/api/billing`);
685
+ const { data } = await this._fetch(`${this.platformURL}/v1/billing/balance`);
686
+ return data;
639
687
  }
640
- /** Add credits */
688
+ /** Add credits via Stripe checkout. Returns the checkout URL. */
641
689
  async addCredits(amount) {
642
- const apiRoot = this.baseURL.replace(/\/v1$/, "");
643
- return this._fetch(`${apiRoot}/api/billing`, {
690
+ const { data } = await this._fetch(`${this.platformURL}/v1/billing/topup`, {
644
691
  method: "POST",
645
692
  body: JSON.stringify({ amount })
646
693
  });
694
+ return data;
647
695
  }
648
- /** Create a new API key */
649
- async createKey(name) {
650
- const apiRoot = this.baseURL.replace(/\/v1$/, "");
651
- return this._fetch(`${apiRoot}/api/keys`, {
696
+ /** Get transaction history */
697
+ async transactions(limit = 50) {
698
+ const { data } = await this._fetch(`${this.platformURL}/v1/billing/transactions?limit=${limit}`);
699
+ return data;
700
+ }
701
+ // ── API Keys (via id.tangle.tools) ──
702
+ /**
703
+ * Create a new API key.
704
+ * When called with an API key (not session), the new key is automatically
705
+ * a child of the calling key — enabling hierarchical key delegation.
706
+ *
707
+ * Pass `parentKeyId` explicitly to create a child of a specific key.
708
+ * Child keys inherit the parent's product scope, allowedModels, and rpmLimit
709
+ * if not specified. Budget cannot exceed the parent's remaining budget.
710
+ */
711
+ async createKey(opts) {
712
+ const { data } = await this._fetch(`${this.platformURL}/v1/keys`, {
652
713
  method: "POST",
653
- body: JSON.stringify({ name })
714
+ body: JSON.stringify(opts)
654
715
  });
716
+ return data;
655
717
  }
656
- /** List API keys */
657
- async keys() {
658
- const apiRoot = this.baseURL.replace(/\/v1$/, "");
659
- return this._fetch(`${apiRoot}/api/keys`);
718
+ /** Get a single API key by ID */
719
+ async getKey(id) {
720
+ const { data } = await this._fetch(`${this.platformURL}/v1/keys/${id}`);
721
+ return data;
722
+ }
723
+ /**
724
+ * List API keys.
725
+ * Pass `children: true` to list child keys of the calling API key.
726
+ */
727
+ async keys(opts) {
728
+ const q = opts?.children ? "?children=true" : "";
729
+ const { data } = await this._fetch(`${this.platformURL}/v1/keys${q}`);
730
+ return data;
660
731
  }
661
- /** Revoke an API key */
732
+ /**
733
+ * Update an API key's limits.
734
+ * Can adjust budget, allowedModels, rpmLimit, expiresAt, and name.
735
+ */
736
+ async updateKey(id, updates) {
737
+ const { data } = await this._fetch(`${this.platformURL}/v1/keys/${id}`, {
738
+ method: "PATCH",
739
+ body: JSON.stringify(updates)
740
+ });
741
+ return data;
742
+ }
743
+ /** Revoke an API key. If the key has children, they are also revoked recursively. */
662
744
  async revokeKey(id) {
663
- const apiRoot = this.baseURL.replace(/\/v1$/, "");
664
- const res = await proxiedFetch(this.privacy, `${apiRoot}/api/keys/${id}`, {
665
- method: "DELETE",
666
- headers: this.headers
667
- }, false);
668
- if (!res.ok) {
669
- const err = await res.json().catch(() => ({ error: res.statusText }));
670
- throw new TCloudError(res.status, err.error?.message || err.error || err.message || res.statusText);
671
- }
745
+ await this._fetch(`${this.platformURL}/v1/keys/${id}`, { method: "DELETE" });
746
+ }
747
+ /** Rotate an API key — creates new key with same config, revokes old */
748
+ async rotateKey(id) {
749
+ const { data } = await this._fetch(`${this.platformURL}/v1/keys/${id}/rotate`, { method: "POST" });
750
+ return data;
751
+ }
752
+ // ── Projects (via id.tangle.tools) ──
753
+ /** Create a project for usage attribution */
754
+ async createProject(name, product) {
755
+ const { data } = await this._fetch(`${this.platformURL}/v1/projects`, {
756
+ method: "POST",
757
+ body: JSON.stringify({ name, product })
758
+ });
759
+ return data;
760
+ }
761
+ /** List projects */
762
+ async projects() {
763
+ const { data } = await this._fetch(`${this.platformURL}/v1/projects`);
764
+ return data;
672
765
  }
673
766
  /** Generate embeddings */
674
767
  async embeddings(options) {
@@ -979,6 +1072,61 @@ var TCloudClient = class _TCloudClient {
979
1072
  };
980
1073
  });
981
1074
  }
1075
+ // ── Eval ──────────────────────────────────────────────────────────────
1076
+ get _apiRoot() {
1077
+ return this.baseURL.replace(/\/v1$/, "");
1078
+ }
1079
+ async eval(opts) {
1080
+ return this._request(`${this._apiRoot}/api/eval`, { method: "POST", body: JSON.stringify(opts) });
1081
+ }
1082
+ async createSuite(opts) {
1083
+ return this._request(`${this._apiRoot}/api/eval/suites`, { method: "POST", body: JSON.stringify(opts) });
1084
+ }
1085
+ async listSuites() {
1086
+ return this._fetch(`${this._apiRoot}/api/eval/suites`);
1087
+ }
1088
+ async runSuite(suiteId, opts) {
1089
+ return this._request(`${this._apiRoot}/api/eval/suites/${suiteId}/runs`, { method: "POST", body: JSON.stringify(opts || {}) });
1090
+ }
1091
+ async listRuns(suiteId) {
1092
+ return this._fetch(`${this._apiRoot}/api/eval/suites/${suiteId}/runs`);
1093
+ }
1094
+ async getRun(runId) {
1095
+ return this._fetch(`${this._apiRoot}/api/eval/runs/${runId}`);
1096
+ }
1097
+ async setBaseline(runId) {
1098
+ await this._request(`${this._apiRoot}/api/eval/runs/${runId}`, { method: "PATCH", body: JSON.stringify({ baseline: true }) });
1099
+ }
1100
+ // ── Sandbox ──────────────────────────────────────────────────────────
1101
+ async sandboxPricing(opts) {
1102
+ const p = new URLSearchParams();
1103
+ if (opts?.cpu) p.set("cpu", String(opts.cpu));
1104
+ if (opts?.ram) p.set("ram", String(opts.ram));
1105
+ if (opts?.disk) p.set("disk", String(opts.disk));
1106
+ return this._fetch(`${this._apiRoot}/api/sandbox/pricing?${p}`);
1107
+ }
1108
+ async sandboxStatus() {
1109
+ return this._fetch(`${this._apiRoot}/api/sandbox/link-key`);
1110
+ }
1111
+ async sandboxProvision() {
1112
+ return this._request(`${this._apiRoot}/api/sandbox/provision`, { method: "POST" });
1113
+ }
1114
+ async sandboxCreate(opts) {
1115
+ return this._request(`${this._apiRoot}/api/sandbox/sessions`, { method: "POST", body: JSON.stringify(opts) });
1116
+ }
1117
+ async sandboxList() {
1118
+ return this._fetch(`${this._apiRoot}/api/sandbox/sessions`);
1119
+ }
1120
+ async sandboxStats(sandboxId) {
1121
+ return this._fetch(`${this._apiRoot}/api/sandbox/stats/${sandboxId}`);
1122
+ }
1123
+ async sandboxDestroy(sessionId) {
1124
+ return this._request(`${this._apiRoot}/api/sandbox/sessions/${sessionId}`, { method: "DELETE" });
1125
+ }
1126
+ // ── User Info ────────────────────────────────────────────────────────
1127
+ async userInfo() {
1128
+ return this._fetch(`${this._apiRoot}/api/auth/userinfo`);
1129
+ }
982
1130
  };
983
1131
  var ALL_TIERS = [
984
1132
  { name: "cpu-only", cpu: 4, ramGb: 16, gpu: 0, tee: false },
@@ -989,6 +1137,59 @@ var ALL_TIERS = [
989
1137
  { name: "max-gpu", cpu: 64, ramGb: 256, gpu: 4, tee: false },
990
1138
  { name: "max-gpu-tee", cpu: 64, ramGb: 256, gpu: 4, tee: true }
991
1139
  ];
1140
+ var BridgeSession = class _BridgeSession {
1141
+ constructor(client, cfg) {
1142
+ this.client = client;
1143
+ this.cfg = cfg;
1144
+ }
1145
+ /** Full chat completion (non-streaming). */
1146
+ async chat(options) {
1147
+ return this.client.chat({ ...options, bridge: this.cfg });
1148
+ }
1149
+ /** Stream OpenAI chat.completion.chunks. */
1150
+ chatStream(options) {
1151
+ return this.client.chatStream({ ...options, bridge: this.cfg });
1152
+ }
1153
+ /** One-shot: send a string, get the assistant text. */
1154
+ async ask(message, extra) {
1155
+ const completion = await this.chat({
1156
+ messages: [{ role: "user", content: message }],
1157
+ ...extra
1158
+ });
1159
+ return completion.choices[0]?.message?.content || "";
1160
+ }
1161
+ /** One-shot: send a string, stream text deltas. */
1162
+ async *stream(message, extra) {
1163
+ for await (const chunk of this.chatStream({
1164
+ messages: [{ role: "user", content: message }],
1165
+ ...extra
1166
+ })) {
1167
+ const content = chunk.choices?.[0]?.delta?.content;
1168
+ if (content) yield content;
1169
+ }
1170
+ }
1171
+ /** Turn-based: send full message history, get assistant text. */
1172
+ async turn(messages, extra) {
1173
+ const completion = await this.chat({ messages, ...extra });
1174
+ return completion.choices[0]?.message?.content || "";
1175
+ }
1176
+ /** Clone with a new resume id — same harness, different logical conversation. */
1177
+ withResume(resume) {
1178
+ return new _BridgeSession(this.client, { ...this.cfg, resume });
1179
+ }
1180
+ /** Clone with a different model inside the same harness. */
1181
+ withModel(model) {
1182
+ return new _BridgeSession(this.client, { ...this.cfg, model });
1183
+ }
1184
+ /** The effective model id that will land on the router (`bridge/<harness>/<model>`). */
1185
+ get model() {
1186
+ return this.cfg.model ? `bridge/${this.cfg.harness}/${this.cfg.model}` : `bridge/${this.cfg.harness}`;
1187
+ }
1188
+ /** The resume id currently bound to this session, if any. */
1189
+ get resume() {
1190
+ return this.cfg.resume;
1191
+ }
1192
+ };
992
1193
  function selectTiers(all, n) {
993
1194
  if (n >= all.length) return [...all];
994
1195
  if (n <= 1) return [all[0]];
@@ -1306,6 +1507,7 @@ var TCloud = class _TCloud extends TCloudClient {
1306
1507
  };
1307
1508
  // Annotate the CommonJS export names for ESM import in node:
1308
1509
  0 && (module.exports = {
1510
+ BridgeSession,
1309
1511
  PrivateRouter,
1310
1512
  TCloud,
1311
1513
  TCloudClient,
package/dist/index.d.cts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { ShieldedWallet, generateWallet } from './shielded.cjs';
2
2
  export { createShieldedClient, estimateCost, signSpendAuth } from './shielded.cjs';
3
- import { T as TCloudClient, a as TCloudConfig } from './client-CcuHG7_w.cjs';
4
- export { A as AvatarGenerateRequest, b as AvatarGenerateResponse, c as AvatarJobStatus, d as AvatarResult, B as BatchJobResponse, e as BatchRequest, C as ChatCompletion, f as ChatCompletionChunk, g as ChatMessage, h as ChatOptions, i as CompletionOptions, j as CompletionResponse, k as CreditBalance, E as EmbeddingOptions, l as EmbeddingResponse, F as FineTuningJob, m as FineTuningJobOptions, I as ImageGenerateOptions, n as ImageResponse, J as JobEvent, M as Model, O as Operator, o as OperatorInfo, P as PricingTier, p as PrivacyConfig, q as PrivateRouter, r as PrivateRouterConfig, R as RerankOptions, s as RerankResponse, t as RetryConfig, u as RoutingConfig, v as RoutingStrategy, S as ShieldedConfig, w as SpendAuth, x as SpendingLimits, y as TCloudError, z as TierConfig, D as TranscriptionResponse, V as VideoGenerateOptions, G as VideoResponse, W as WatchJobOptions } from './client-CcuHG7_w.cjs';
3
+ import { T as TCloudClient, a as TCloudConfig } from './client-_ghO89WM.cjs';
4
+ export { A as ApiKeyInfo, b as AvatarGenerateRequest, c as AvatarGenerateResponse, d as AvatarJobStatus, e as AvatarResult, B as BatchJobResponse, f as BatchRequest, g as BridgeOptions, h as BridgeSession, C as ChatCompletion, i as ChatCompletionChunk, j as ChatMessage, k as ChatOptions, l as CompletionOptions, m as CompletionResponse, n as CreateKeyOptions, o as CreatedKey, p as CreditBalance, E as EmbeddingOptions, q as EmbeddingResponse, F as FineTuningJob, r as FineTuningJobOptions, G as GatewayOptions, I as ImageGenerateOptions, s as ImageResponse, J as JobEvent, M as Model, O as Operator, t as OperatorInfo, P as PricingTier, u as PrivacyConfig, v as PrivateRouter, w as PrivateRouterConfig, R as RerankOptions, x as RerankResponse, y as RetryConfig, z as RoutingConfig, D as RoutingStrategy, S as ShieldedConfig, H as SpendAuth, K as SpendingLimits, L as TCloudError, N as TierConfig, Q as TranscriptionResponse, U as UpdateKeyOptions, V as VideoGenerateOptions, W as VideoResponse, X as WatchJobOptions } from './client-_ghO89WM.cjs';
5
+ export { AgentProfile, AgentProfileCapabilities, AgentProfileMcpServer, AgentProfileModelHints, AgentProfilePermissionValue, AgentProfilePrompt, AgentProfileResources } from '@tangle-network/sandbox';
5
6
  import 'viem';
6
7
 
7
8
  declare class TCloud extends TCloudClient {
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { ShieldedWallet, generateWallet } from './shielded.js';
2
2
  export { createShieldedClient, estimateCost, signSpendAuth } from './shielded.js';
3
- import { T as TCloudClient, a as TCloudConfig } from './client-CcuHG7_w.js';
4
- export { A as AvatarGenerateRequest, b as AvatarGenerateResponse, c as AvatarJobStatus, d as AvatarResult, B as BatchJobResponse, e as BatchRequest, C as ChatCompletion, f as ChatCompletionChunk, g as ChatMessage, h as ChatOptions, i as CompletionOptions, j as CompletionResponse, k as CreditBalance, E as EmbeddingOptions, l as EmbeddingResponse, F as FineTuningJob, m as FineTuningJobOptions, I as ImageGenerateOptions, n as ImageResponse, J as JobEvent, M as Model, O as Operator, o as OperatorInfo, P as PricingTier, p as PrivacyConfig, q as PrivateRouter, r as PrivateRouterConfig, R as RerankOptions, s as RerankResponse, t as RetryConfig, u as RoutingConfig, v as RoutingStrategy, S as ShieldedConfig, w as SpendAuth, x as SpendingLimits, y as TCloudError, z as TierConfig, D as TranscriptionResponse, V as VideoGenerateOptions, G as VideoResponse, W as WatchJobOptions } from './client-CcuHG7_w.js';
3
+ import { T as TCloudClient, a as TCloudConfig } from './client-_ghO89WM.js';
4
+ export { A as ApiKeyInfo, b as AvatarGenerateRequest, c as AvatarGenerateResponse, d as AvatarJobStatus, e as AvatarResult, B as BatchJobResponse, f as BatchRequest, g as BridgeOptions, h as BridgeSession, C as ChatCompletion, i as ChatCompletionChunk, j as ChatMessage, k as ChatOptions, l as CompletionOptions, m as CompletionResponse, n as CreateKeyOptions, o as CreatedKey, p as CreditBalance, E as EmbeddingOptions, q as EmbeddingResponse, F as FineTuningJob, r as FineTuningJobOptions, G as GatewayOptions, I as ImageGenerateOptions, s as ImageResponse, J as JobEvent, M as Model, O as Operator, t as OperatorInfo, P as PricingTier, u as PrivacyConfig, v as PrivateRouter, w as PrivateRouterConfig, R as RerankOptions, x as RerankResponse, y as RetryConfig, z as RoutingConfig, D as RoutingStrategy, S as ShieldedConfig, H as SpendAuth, K as SpendingLimits, L as TCloudError, N as TierConfig, Q as TranscriptionResponse, U as UpdateKeyOptions, V as VideoGenerateOptions, W as VideoResponse, X as WatchJobOptions } from './client-_ghO89WM.js';
5
+ export { AgentProfile, AgentProfileCapabilities, AgentProfileMcpServer, AgentProfileModelHints, AgentProfilePermissionValue, AgentProfilePrompt, AgentProfileResources } from '@tangle-network/sandbox';
5
6
  import 'viem';
6
7
 
7
8
  declare class TCloud extends TCloudClient {
package/dist/index.js CHANGED
@@ -1,18 +1,20 @@
1
1
  import {
2
2
  TCloud
3
- } from "./chunk-STNZT6YR.js";
3
+ } from "./chunk-QNIJ7KAA.js";
4
4
  import {
5
5
  createShieldedClient,
6
6
  estimateCost,
7
7
  generateWallet,
8
8
  signSpendAuth
9
- } from "./chunk-VD4RNZOC.js";
9
+ } from "./chunk-MKLCBBHZ.js";
10
10
  import {
11
+ BridgeSession,
11
12
  PrivateRouter,
12
13
  TCloudClient,
13
14
  TCloudError
14
- } from "./chunk-HL4CXKET.js";
15
+ } from "./chunk-AKR7CS4P.js";
15
16
  export {
17
+ BridgeSession,
16
18
  PrivateRouter,
17
19
  TCloud,
18
20
  TCloudClient,