@tool-bridge/server 0.13.1 → 0.15.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 (108) hide show
  1. package/dist/{airtable-UNWCQOO5.js → airtable-QYTOPRFV.js} +4 -4
  2. package/dist/{alt_text_generator_ai-7U2B7DWL.js → alt_text_generator_ai-2CFYNSZV.js} +4 -4
  3. package/dist/{amap-SAB3CM4I.js → amap-HGOBOHSZ.js} +4 -4
  4. package/dist/{anthropic-IHWDMPTS.js → anthropic-3OXOQNSR.js} +4 -4
  5. package/dist/{apify-PJOKBSVM.js → apify-PUV2QGKL.js} +4 -4
  6. package/dist/{brave_search-UTFAT6LW.js → brave_search-DG75AVKA.js} +4 -4
  7. package/dist/{chunk-EF33TVRV.js → chunk-DXXYNIXV.js} +236 -190
  8. package/dist/{chunk-7KSQ6GMZ.js → chunk-KH663T3A.js} +1 -1
  9. package/dist/{chunk-O7XJFJIP.js → chunk-NLPTB3IL.js} +76 -8
  10. package/dist/{chunk-QMBAFKBX.js → chunk-NQ67PIIS.js} +2 -2
  11. package/dist/{chunk-YZMU3Y2S.js → chunk-UI4E4T5Q.js} +1 -1
  12. package/dist/{circleci-CYNZ4RNR.js → circleci-EFNLX5AW.js} +4 -4
  13. package/dist/{clerk-LEO34VS5.js → clerk-UWDLMZVM.js} +4 -4
  14. package/dist/{cloudflare_dns-GR2QRDOR.js → cloudflare_dns-WQXVDSPU.js} +4 -4
  15. package/dist/{cohere-GGMHBGBX.js → cohere-VPDIKUDP.js} +4 -4
  16. package/dist/{confluence-BV3HXUK5.js → confluence-NBOOQNTR.js} +4 -4
  17. package/dist/{convertapi-GS2YMFYF.js → convertapi-6Z6OP25T.js} +4 -4
  18. package/dist/{currencyapi-PVT6NG64.js → currencyapi-CAMUWCTV.js} +4 -4
  19. package/dist/{deepseek-N3A33XJS.js → deepseek-GRALXYXR.js} +4 -4
  20. package/dist/{docker_hub-T52LCIXM.js → docker_hub-5AASF3TJ.js} +4 -4
  21. package/dist/{dropbox-7D5KGZWB.js → dropbox-HS3VGRD3.js} +4 -4
  22. package/dist/{dub-4MYONVIJ.js → dub-KHERUTW6.js} +4 -4
  23. package/dist/{e2b-D4RJYFWX.js → e2b-4MGHPFXY.js} +4 -4
  24. package/dist/{exa-QY3FJWKM.js → exa-O77PKTBT.js} +4 -4
  25. package/dist/{fal_ai-KZWNB4EL.js → fal_ai-TX2TZFMP.js} +4 -4
  26. package/dist/{feishu-5A2BTU5Z.js → feishu-I7VPWO3C.js} +3 -3
  27. package/dist/{feishu_custom_bot-JSPSGC7F.js → feishu_custom_bot-D4XZDLES.js} +4 -4
  28. package/dist/{figma-SLJPNPIA.js → figma-SW3HZCZ5.js} +4 -4
  29. package/dist/{firehydrant-RWAQFAPG.js → firehydrant-ND5DEW3L.js} +4 -4
  30. package/dist/{fixer-KN7PNA2S.js → fixer-ZTSV7ZK3.js} +4 -4
  31. package/dist/{fly-EUUMRUOA.js → fly-RZ7SZKFT.js} +4 -4
  32. package/dist/{front-NDQEA5FF.js → front-Q5MZVUGX.js} +4 -4
  33. package/dist/{geocodio-43AW5OCB.js → geocodio-QPHHODHG.js} +4 -4
  34. package/dist/{ghost-MZCUCRIB.js → ghost-3Q6O7EWZ.js} +4 -4
  35. package/dist/{github-2DAQEJIN.js → github-LDMGJHXV.js} +4 -4
  36. package/dist/{gmail-XHLM4BQE.js → gmail-6QBCI3TT.js} +4 -4
  37. package/dist/{googlecalendar-C6TQ5TPM.js → googlecalendar-LLSYY4ZJ.js} +4 -4
  38. package/dist/{googledocs-PHWMCVQJ.js → googledocs-KRGVBGWY.js} +4 -4
  39. package/dist/{grafana-34MZYU2V.js → grafana-OHPZMRHT.js} +4 -4
  40. package/dist/{graphhopper-X6APDY3M.js → graphhopper-2PBY7OX4.js} +4 -4
  41. package/dist/index.d.ts +25 -9
  42. package/dist/index.js +2 -2
  43. package/dist/{ip2proxy-AODVERWD.js → ip2proxy-GPBQZKKG.js} +4 -4
  44. package/dist/{ipgeolocation_io-2WZ3462V.js → ipgeolocation_io-YNTOLOFH.js} +4 -4
  45. package/dist/{ipqualityscore-AWRQEQKM.js → ipqualityscore-CZLQUAQ7.js} +4 -4
  46. package/dist/{jina_ai-BTBWMSHI.js → jina_ai-JIFEYH5C.js} +4 -4
  47. package/dist/{jira-ME62KT7T.js → jira-2DKTIWHK.js} +4 -4
  48. package/dist/{langsmith-X4V62JDO.js → langsmith-UCX7NHKP.js} +4 -4
  49. package/dist/{lemlist-X2F4X4XI.js → lemlist-IS6K2VJG.js} +4 -4
  50. package/dist/{linear-NXXHNHYR.js → linear-AK6547ZS.js} +4 -4
  51. package/dist/{logsnag-CMNFM5DD.js → logsnag-EB5LICOH.js} +4 -4
  52. package/dist/main.js +101 -101
  53. package/dist/{mattermost-UUPXATVV.js → mattermost-YOSWUA3R.js} +4 -4
  54. package/dist/{mem0-J4ZT6KFD.js → mem0-IICTSHLB.js} +4 -4
  55. package/dist/{memos-O7OLF43F.js → memos-DIV6MZPB.js} +4 -4
  56. package/dist/{metabase-LW5CT4SE.js → metabase-ZGHNTCAT.js} +4 -4
  57. package/dist/{mistral_ai-UBPH5I2O.js → mistral_ai-IAG3WZYO.js} +4 -4
  58. package/dist/{mother_duck-FSXTF7W3.js → mother_duck-PYKG4ZHO.js} +4 -4
  59. package/dist/{ngrok-7ZEFTQFO.js → ngrok-BXN3DGTK.js} +4 -4
  60. package/dist/{notes-E2SOGAC5.js → notes-L2UO36HQ.js} +2 -2
  61. package/dist/{notion-6L2B5SOP.js → notion-PVHVOV4R.js} +4 -4
  62. package/dist/{open_exchange_rates-5MEDCXDA.js → open_exchange_rates-DVMOPFNQ.js} +4 -4
  63. package/dist/{openai-DGZ4UVGN.js → openai-VW6F5YTK.js} +4 -4
  64. package/dist/{opengraph_io-3WZHS2G7.js → opengraph_io-MQUREYWM.js} +4 -4
  65. package/dist/{openrouter-AEVJKGL2.js → openrouter-5MI3ODCU.js} +4 -4
  66. package/dist/{outline-NIDSWKQL.js → outline-B2U7NIVA.js} +4 -4
  67. package/dist/{paddle-KXUMVYWP.js → paddle-LDZTVYQO.js} +4 -4
  68. package/dist/{perplexity-SGCXVRPL.js → perplexity-P7BNWFMH.js} +4 -4
  69. package/dist/{pinecone-TEPE2YN6.js → pinecone-3Y67EJYP.js} +4 -4
  70. package/dist/{pipedrive-HSLALJJF.js → pipedrive-4KFLGCJW.js} +4 -4
  71. package/dist/{polar-W3MS7L3S.js → polar-NIULQPUD.js} +4 -4
  72. package/dist/{posthog-Q26LDFUB.js → posthog-UXGCIHRP.js} +4 -4
  73. package/dist/{postmark-Y4CGMQ6N.js → postmark-XT77YNQM.js} +4 -4
  74. package/dist/{prerender-ZXDEGJFM.js → prerender-37E6ZN6Z.js} +4 -4
  75. package/dist/{pubmed-M5D6VUDC.js → pubmed-BO2W4IR6.js} +4 -4
  76. package/dist/{railway-IMKRAE5U.js → railway-5BACZNYC.js} +4 -4
  77. package/dist/{readwise-KVO2HGRR.js → readwise-DXABSDKY.js} +4 -4
  78. package/dist/{render-PCF3BY2W.js → render-4MCO6RLA.js} +4 -4
  79. package/dist/{replicate-SPYM2A2X.js → replicate-IVEPY4EP.js} +4 -4
  80. package/dist/{resend-J2VSMZEQ.js → resend-XJBJO46B.js} +4 -4
  81. package/dist/{rootly-XLVVLQ5E.js → rootly-R6QDVF3D.js} +4 -4
  82. package/dist/{scrapfly-4MCQ2L3S.js → scrapfly-E24XNN32.js} +4 -4
  83. package/dist/{scrapingbee-I5B45KRL.js → scrapingbee-QT3O334C.js} +4 -4
  84. package/dist/{screenshot_fyi-ZRVS7KGW.js → screenshot_fyi-MJNFPUFV.js} +4 -4
  85. package/dist/{semantic_scholar-EOOCAOGH.js → semantic_scholar-BVKWS72R.js} +4 -4
  86. package/dist/{sentry-NQFN5QWM.js → sentry-52T5XARK.js} +4 -4
  87. package/dist/{shodan-NA4YQ5EF.js → shodan-RTOTTCX2.js} +4 -4
  88. package/dist/{shopify-SSQWQLVZ.js → shopify-3RVWQDZ6.js} +4 -4
  89. package/dist/{stripe-4O4LFWWX.js → stripe-M3T2K3EW.js} +4 -4
  90. package/dist/{supabase-L6HIG3AO.js → supabase-UUUXAEYR.js} +4 -4
  91. package/dist/{tavily-YIZ257JR.js → tavily-LVOZQQKJ.js} +4 -4
  92. package/dist/{telegram-GCHRPOUO.js → telegram-WJQPCKQT.js} +4 -4
  93. package/dist/{telnyx-SAPDG42W.js → telnyx-THKSKAI2.js} +4 -4
  94. package/dist/{todoist-PLWNX5EV.js → todoist-YTRGFFRC.js} +4 -4
  95. package/dist/{trello-P373RD2Z.js → trello-QBK6WKN2.js} +4 -4
  96. package/dist/{turso-UOK734KL.js → turso-EA44ZKLR.js} +4 -4
  97. package/dist/{twilio-QTZ5B5JF.js → twilio-GSW3V55S.js} +4 -4
  98. package/dist/{umami-JR24H6UL.js → umami-DVZ7XUYC.js} +4 -4
  99. package/dist/{unsplash-2REBXIN5.js → unsplash-ZWUWQ7OS.js} +4 -4
  100. package/dist/{upstash_redis-JW5CLN3M.js → upstash_redis-BQIQB5NM.js} +4 -4
  101. package/dist/{uptimerobot-T7ZY334I.js → uptimerobot-2OJHTUPV.js} +4 -4
  102. package/dist/{v2ex-OZXEQ7YR.js → v2ex-IZF4BB4O.js} +4 -4
  103. package/dist/{vercel-IRS2BQMP.js → vercel-PI3BJENX.js} +4 -4
  104. package/dist/{wolfram_alpha_api-FXO3FCL6.js → wolfram_alpha_api-EYQ2QCHH.js} +4 -4
  105. package/dist/{wordpress-HDJP5IKC.js → wordpress-ETDA6XLX.js} +4 -4
  106. package/dist/{workos-HDXADI3J.js → workos-D7INO4Y4.js} +4 -4
  107. package/dist/{zhihu-6MRZYPMO.js → zhihu-Q7FNHEDM.js} +4 -4
  108. package/package.json +5 -5
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  AnnotationStore,
3
3
  CONTEXT_CAPABILITIES,
4
+ CONTEXT_DIRECT_UPLOAD_CAPABILITY,
4
5
  DEFAULT_MAX_NODES,
5
6
  DEVICE_CALL_TIMEOUT_MS,
6
7
  DeviceGatewaySession,
@@ -25,6 +26,7 @@ import {
25
26
  PG_SEARCH_TOOLS_TABLE,
26
27
  PG_SEARCH_WRITE_LOCK_KEY,
27
28
  PRESIGN_TTL_SEC_DEFAULT,
29
+ PRESIGN_TTL_SEC_MAX,
28
30
  RemoteAllowlistStore,
29
31
  SKILLHUB_CAPABILITIES,
30
32
  SKRegistryStore,
@@ -47,6 +49,7 @@ import {
47
49
  appendVia,
48
50
  array,
49
51
  assertPluginPayloadSize,
52
+ assertPresignTtlSec,
50
53
  assertSecretRefUse,
51
54
  assertSecureUrl,
52
55
  authHeaderFor,
@@ -71,8 +74,10 @@ import {
71
74
  contextHelpModel,
72
75
  contextMethodsOf,
73
76
  contextScopeForCmd,
77
+ contextUploadCmd,
74
78
  createBuiltins,
75
79
  createObjectContextProvider,
80
+ createObjectContextUploadGrant,
76
81
  createSkillhubProvider,
77
82
  decodeDeviceFrame,
78
83
  derivePresence,
@@ -141,7 +146,7 @@ import {
141
146
  url,
142
147
  validatePath,
143
148
  virtualizeTools
144
- } from "./chunk-EF33TVRV.js";
149
+ } from "./chunk-DXXYNIXV.js";
145
150
 
146
151
  // src/config.ts
147
152
  var DEFAULT_PORT = 8787;
@@ -151,6 +156,10 @@ function positiveIntEnv(value) {
151
156
  const n = Number(value);
152
157
  return Number.isFinite(n) && n > 0 ? Math.floor(n) : void 0;
153
158
  }
159
+ function presignTtlEnv(value) {
160
+ const ttl = positiveIntEnv(value);
161
+ return ttl === void 0 ? void 0 : Math.min(ttl, PRESIGN_TTL_SEC_MAX);
162
+ }
154
163
  function portEnv(value) {
155
164
  if (value === void 0 || value === "") return void 0;
156
165
  const n = Number(value);
@@ -224,8 +233,10 @@ function configFromEnv(env = process.env) {
224
233
  if (ttl !== void 0) config.toolCacheTtlSec = ttl;
225
234
  const refThreshold = positiveIntEnv(env.TB_REF_THRESHOLD_BYTES);
226
235
  if (refThreshold !== void 0) config.refThresholdBytes = refThreshold;
227
- const refTtl = positiveIntEnv(env.TB_REF_TTL_SEC);
236
+ const refTtl = presignTtlEnv(env.TB_REF_TTL_SEC);
228
237
  if (refTtl !== void 0) config.refTtlSec = refTtl;
238
+ const uploadGrantTtl = presignTtlEnv(env.TB_UPLOAD_GRANT_TTL_SEC);
239
+ if (uploadGrantTtl !== void 0) config.uploadGrantTtlSec = uploadGrantTtl;
229
240
  return config;
230
241
  }
231
242
 
@@ -533,6 +544,7 @@ function encodeObjectKey(key) {
533
544
  return key.split("/").map(encodeURIComponent).join("/");
534
545
  }
535
546
  async function presignS3Url(client, url2, ttlSec) {
547
+ assertPresignTtlSec(ttlSec);
536
548
  const target = new URL(url2);
537
549
  target.searchParams.set("X-Amz-Expires", String(ttlSec));
538
550
  const signed = await client.sign(new Request(target.toString(), { method: "GET" }), {
@@ -540,6 +552,20 @@ async function presignS3Url(client, url2, ttlSec) {
540
552
  });
541
553
  return signed.url;
542
554
  }
555
+ async function presignS3Put(client, url2, ttlSec, opts) {
556
+ assertPresignTtlSec(ttlSec);
557
+ const target = new URL(url2);
558
+ target.searchParams.set("X-Amz-Expires", String(ttlSec));
559
+ const headers = {
560
+ "content-type": opts.contentType,
561
+ ...opts.ifNoneMatch === void 0 ? {} : { "if-none-match": opts.ifNoneMatch }
562
+ };
563
+ const signed = await client.sign(
564
+ new Request(target.toString(), { method: "PUT", headers }),
565
+ { aws: { signQuery: true, allHeaders: true } }
566
+ );
567
+ return { method: "PUT", url: signed.url, headers };
568
+ }
543
569
 
544
570
  // ../app/src/providers/s3Object.ts
545
571
  var META_HEADER_PREFIX = "x-amz-meta-";
@@ -701,6 +727,9 @@ function createS3ObjectStore(cfg, opts) {
701
727
  },
702
728
  presign(key, ttlSec) {
703
729
  return presignS3Url(client, urlFor(key), ttlSec);
730
+ },
731
+ presignPut(key, ttlSec, putOpts) {
732
+ return presignS3Put(client, urlFor(key), ttlSec, putOpts);
704
733
  }
705
734
  };
706
735
  }
@@ -19692,6 +19721,24 @@ async function contextObjectStoreFor(cfg, deps) {
19692
19721
  }
19693
19722
  throw TBError.unimplemented(`context provider '${cfg.provider}' not implemented yet`);
19694
19723
  }
19724
+ async function contextDirectUploadAvailable(cfg, deps) {
19725
+ if (cfg.provider === "s3") return true;
19726
+ try {
19727
+ return (await contextObjectStoreFor(cfg, deps)).presignPut !== void 0;
19728
+ } catch {
19729
+ return false;
19730
+ }
19731
+ }
19732
+ async function createContextUploadGrant(node, cfg, deps, input) {
19733
+ const objects = await contextObjectStoreFor(cfg, deps);
19734
+ const uploadGrantTtlSec = deps.uploadGrantTtlSec ?? Math.min(deps.refTtlSec ?? PRESIGN_TTL_SEC_DEFAULT, PRESIGN_TTL_SEC_DEFAULT);
19735
+ return createObjectContextUploadGrant(objects, {
19736
+ nsPath: node.path,
19737
+ keyPrefix: contextKeyPrefix(cfg, node.path),
19738
+ readOnly: cfg.readOnly ?? false,
19739
+ uploadGrantTtlSec
19740
+ }, input);
19741
+ }
19695
19742
  async function contextProviderFor(node, cfg, deps, requestUrl) {
19696
19743
  const objects = await contextObjectStoreFor(cfg, deps);
19697
19744
  const opts = {
@@ -36473,7 +36520,10 @@ async function handleDescribe(c, env) {
36473
36520
  await assertContextAlive(node, node.config, registry);
36474
36521
  const cfg = node.config;
36475
36522
  const local = cfg.provider !== "r2" && cfg.provider !== "s3" ? localContext(deps, node) : null;
36476
- const capabilities = cfg.provider === "r2" || cfg.provider === "s3" || cfg.provider === "device-fs" || deviceMarkerOf(cfg.providerConfig) !== null ? CONTEXT_CAPABILITIES : local !== null ? localCapabilities(local) : (await requirePluginExport(deps, cfg.provider, "context", "context", cfg.export)).export.capabilities ?? [];
36523
+ let capabilities = cfg.provider === "r2" || cfg.provider === "s3" || cfg.provider === "device-fs" || deviceMarkerOf(cfg.providerConfig) !== null ? CONTEXT_CAPABILITIES : local !== null ? localCapabilities(local) : (await requirePluginExport(deps, cfg.provider, "context", "context", cfg.export)).export.capabilities ?? [];
36524
+ if ((cfg.provider === "r2" || cfg.provider === "s3") && cfg.readOnly !== true && await contextDirectUploadAvailable(cfg, deps)) {
36525
+ capabilities = [...capabilities, CONTEXT_DIRECT_UPLOAD_CAPABILITY];
36526
+ }
36477
36527
  return new Response(JSON.stringify({ kind: "context", capabilities }), {
36478
36528
  headers: { "content-type": contentTypeFor("json") }
36479
36529
  });
@@ -36857,7 +36907,7 @@ async function helpModelFor(node, registry, ctx, builtins, deps, opts) {
36857
36907
  readOnly: (node.config.readOnly ?? false) || isReadOnlyProvider(local)
36858
36908
  });
36859
36909
  }
36860
- const model = contextHelpModel(node, { readOnly: node.config.readOnly ?? false });
36910
+ const model2 = contextHelpModel(node, { readOnly: node.config.readOnly ?? false });
36861
36911
  const { export: exported } = await requirePluginExport(
36862
36912
  deps,
36863
36913
  node.config.provider,
@@ -36872,9 +36922,13 @@ async function helpModelFor(node, registry, ctx, builtins, deps, opts) {
36872
36922
  "update",
36873
36923
  ...optionalMethodsForCapabilities(exported.capabilities ?? [])
36874
36924
  ]);
36875
- return { ...model, cmds: model.cmds.filter((c) => declared.has(c.name)) };
36925
+ return { ...model2, cmds: model2.cmds.filter((c) => declared.has(c.name)) };
36926
+ }
36927
+ const model = contextHelpModel(node, { readOnly: node.config.readOnly ?? false });
36928
+ if (node.config.readOnly !== true && opts.includeDirectUpload !== false && await contextDirectUploadAvailable(node.config, deps)) {
36929
+ return { ...model, cmds: [...model.cmds, contextUploadCmd(node.path)] };
36876
36930
  }
36877
- return contextHelpModel(node, { readOnly: node.config.readOnly ?? false });
36931
+ return model;
36878
36932
  }
36879
36933
  if (node.kind === "skillhub" && node.config?.kind === "skillhub") {
36880
36934
  await assertContextAlive(node, node.config, registry);
@@ -37135,6 +37189,7 @@ function mcpBridgeFor(c, env, app) {
37135
37189
  continue;
37136
37190
  }
37137
37191
  const model = await helpModelFor(node, registry, ctx, builtinsOf(c.get("store")), deps, {
37192
+ includeDirectUpload: check(ctx, node.path, "write").allow,
37138
37193
  refresh: false,
37139
37194
  now
37140
37195
  });
@@ -37332,7 +37387,8 @@ async function handleInvoke(c, env) {
37332
37387
  await assertContextAlive(node, cfg, registry);
37333
37388
  const args2 = await readInvokeBody();
37334
37389
  const scope = contextScopeForCmd(command);
37335
- if (scope === null) {
37390
+ const directUpload = command === "create_upload";
37391
+ if (scope === null || directUpload && cfg.provider !== "r2" && cfg.provider !== "s3") {
37336
37392
  throw new TBError("invalid_argument", `unknown cmd '${command}' on '${node.path}'`);
37337
37393
  }
37338
37394
  if (!check(ctx, node.path, scope).allow) {
@@ -37341,6 +37397,15 @@ async function handleInvoke(c, env) {
37341
37397
  if (cfg.readOnly === true && scope === "write") {
37342
37398
  throw new TBError("permission_denied", `readOnly \u6302\u8F7D\u62D2\u7EDD '${command}'`);
37343
37399
  }
37400
+ if (directUpload) {
37401
+ const result3 = await createContextUploadGrant(
37402
+ node,
37403
+ cfg,
37404
+ deps,
37405
+ args2
37406
+ );
37407
+ return renderResult(result3, negotiate(c.req.header("accept")));
37408
+ }
37344
37409
  if (cfg.provider === "device-fs") {
37345
37410
  const result3 = await invokeDevice(deps, deviceIdForDeviceFs(cfg), {
37346
37411
  path: `fs/${command}`,
@@ -38816,7 +38881,7 @@ import { join as join4 } from "path";
38816
38881
  // package.json
38817
38882
  var package_default = {
38818
38883
  name: "@tool-bridge/server",
38819
- version: "0.13.1",
38884
+ version: "0.15.0",
38820
38885
  description: "tool-bridge self-hosted server: run the HTBP gateway on Node with SQLite or PostgreSQL persistence, filesystem object storage and WebSocket device channel \u2014 single container via docker run",
38821
38886
  type: "module",
38822
38887
  license: "MIT",
@@ -39128,6 +39193,9 @@ function createTbServer(config) {
39128
39193
  if (config.toolCacheTtlSec !== void 0) deps.toolCacheTtlSec = config.toolCacheTtlSec;
39129
39194
  if (config.refThresholdBytes !== void 0) deps.refThresholdBytes = config.refThresholdBytes;
39130
39195
  if (config.refTtlSec !== void 0) deps.refTtlSec = config.refTtlSec;
39196
+ if (config.uploadGrantTtlSec !== void 0) {
39197
+ deps.uploadGrantTtlSec = config.uploadGrantTtlSec;
39198
+ }
39131
39199
  const app = createTbApp(deps);
39132
39200
  let server;
39133
39201
  return {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createPlugin
3
- } from "./chunk-YZMU3Y2S.js";
3
+ } from "./chunk-UI4E4T5Q.js";
4
4
  import {
5
5
  TBError
6
- } from "./chunk-EF33TVRV.js";
6
+ } from "./chunk-DXXYNIXV.js";
7
7
 
8
8
  // ../plugins/src/_runtime/plugin.ts
9
9
  function requireApiKey(ctx, service) {
@@ -10,7 +10,7 @@ import {
10
10
  isTBError,
11
11
  parseCredentialValues,
12
12
  toToolResult
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
 
15
15
  // ../plugin-sdk/src/index.ts
16
16
  var CONTEXT_HANDLER_VERBS = ["list", "get", "write", "update", "delete", "search"];
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/circleci/api.ts
@@ -2,14 +2,14 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  external_exports
12
- } from "./chunk-EF33TVRV.js";
12
+ } from "./chunk-DXXYNIXV.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
 
15
15
  // ../plugins/src/clerk/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/cloudflare_dns/api.ts
@@ -2,14 +2,14 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  external_exports
12
- } from "./chunk-EF33TVRV.js";
12
+ } from "./chunk-DXXYNIXV.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
 
15
15
  // ../plugins/src/cohere/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireCredential,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/confluence/api.ts
@@ -2,16 +2,16 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  assertPublicHttpUrl,
8
8
  guardedFetch
9
- } from "./chunk-7KSQ6GMZ.js";
10
- import "./chunk-YZMU3Y2S.js";
9
+ } from "./chunk-KH663T3A.js";
10
+ import "./chunk-UI4E4T5Q.js";
11
11
  import {
12
12
  TBError,
13
13
  external_exports
14
- } from "./chunk-EF33TVRV.js";
14
+ } from "./chunk-DXXYNIXV.js";
15
15
  import "./chunk-MLKGABMK.js";
16
16
 
17
17
  // ../plugins/src/convertapi/schema.ts
@@ -2,14 +2,14 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  external_exports
12
- } from "./chunk-EF33TVRV.js";
12
+ } from "./chunk-DXXYNIXV.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
 
15
15
  // ../plugins/src/currencyapi/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/deepseek/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/docker_hub/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/dropbox/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/dub/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/e2b/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/exa/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/fal_ai/api.ts
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createGuardedFetch
3
- } from "./chunk-7KSQ6GMZ.js";
3
+ } from "./chunk-KH663T3A.js";
4
4
  import {
5
5
  createPlugin
6
- } from "./chunk-YZMU3Y2S.js";
6
+ } from "./chunk-UI4E4T5Q.js";
7
7
  import {
8
8
  TBError,
9
9
  isTBError,
10
10
  normalizeUpstreamError
11
- } from "./chunk-EF33TVRV.js";
11
+ } from "./chunk-DXXYNIXV.js";
12
12
  import "./chunk-MLKGABMK.js";
13
13
 
14
14
  // ../plugins/src/feishu/feishuMcp.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireCredential,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/feishu_custom_bot/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/figma/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/firehydrant/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/fixer/api.ts
@@ -2,15 +2,15 @@ import {
2
2
  createProviderPlugin,
3
3
  requireApiKey,
4
4
  upstreamError
5
- } from "./chunk-QMBAFKBX.js";
5
+ } from "./chunk-NQ67PIIS.js";
6
6
  import {
7
7
  guardedFetch
8
- } from "./chunk-7KSQ6GMZ.js";
9
- import "./chunk-YZMU3Y2S.js";
8
+ } from "./chunk-KH663T3A.js";
9
+ import "./chunk-UI4E4T5Q.js";
10
10
  import {
11
11
  TBError,
12
12
  external_exports
13
- } from "./chunk-EF33TVRV.js";
13
+ } from "./chunk-DXXYNIXV.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // ../plugins/src/fly/api.ts