stitchkit 0.113.2 → 0.114.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 (83) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/contract/errors.d.ts +1 -0
  3. package/dist/contract/errors.d.ts.map +1 -1
  4. package/dist/entrypoints/agent-runtime/browser.js +2 -2
  5. package/dist/entrypoints/agent-runtime/coding-tools.js +4 -4
  6. package/dist/entrypoints/agent-runtime/harness.js +5 -5
  7. package/dist/entrypoints/agent-runtime/realtime.js +2 -2
  8. package/dist/entrypoints/agent-runtime/sandbox.js +4 -4
  9. package/dist/entrypoints/agent-runtime/sqlite/bun.js +6 -6
  10. package/dist/entrypoints/agent-runtime/sqlite/node.js +6 -6
  11. package/dist/entrypoints/agent-runtime/testing.js +6 -6
  12. package/dist/entrypoints/agent-runtime.js +11 -11
  13. package/dist/entrypoints/application/grammy.js +1 -1
  14. package/dist/entrypoints/application.js +2 -2
  15. package/dist/entrypoints/cli.js +8 -8
  16. package/dist/entrypoints/contract.js +2 -2
  17. package/dist/entrypoints/files.js +1 -1
  18. package/dist/entrypoints/index.js +5 -5
  19. package/dist/entrypoints/node.js +7 -7
  20. package/dist/entrypoints/observability.js +1 -1
  21. package/dist/entrypoints/realtime.js +3 -3
  22. package/dist/entrypoints/remote.js +1 -1
  23. package/dist/entrypoints/server.js +8 -8
  24. package/dist/entrypoints/telegram/screens.js +1 -1
  25. package/dist/entrypoints/telegram.d.ts +1 -0
  26. package/dist/entrypoints/telegram.d.ts.map +1 -1
  27. package/dist/entrypoints/telegram.js +241 -1
  28. package/dist/entrypoints/testing.js +3 -3
  29. package/dist/entrypoints/tools/connections.js +5 -5
  30. package/dist/entrypoints/tools/invoker.js +5 -5
  31. package/dist/entrypoints/tools/mcp.js +7 -7
  32. package/dist/entrypoints/tools.js +13 -13
  33. package/dist/{index-cn7xenet.js → index-095ya5hm.js} +5 -5
  34. package/dist/{index-6ez1r4j2.js → index-1csp1hwm.js} +4 -4
  35. package/dist/{index-sps9s3aj.js → index-2bqf0a74.js} +1 -1
  36. package/dist/{index-grn4brx1.js → index-3za04re9.js} +1 -1
  37. package/dist/{index-09dyy94r.js → index-523tq7y4.js} +1 -1
  38. package/dist/{index-8swt2h9y.js → index-7fc0c2np.js} +1 -1
  39. package/dist/{index-2s7wv547.js → index-86nbfysb.js} +3 -3
  40. package/dist/{index-5gmrx6sc.js → index-98hv3sba.js} +1 -1
  41. package/dist/{index-4e36ts8b.js → index-9dyd8xzf.js} +1 -1
  42. package/dist/{index-zbs0g0v2.js → index-aykhzcnf.js} +1 -1
  43. package/dist/{index-0pfk3c1p.js → index-bjcjqj46.js} +1 -1
  44. package/dist/{index-vgtzdykw.js → index-cqmqyjax.js} +1 -1
  45. package/dist/{index-bv51s0f4.js → index-ega3yz4c.js} +1 -1
  46. package/dist/{index-awbed0mk.js → index-fy4av0hq.js} +1 -1
  47. package/dist/{index-xvj9h8yh.js → index-hs35ss3p.js} +11 -3
  48. package/dist/{index-0gbn42hr.js → index-htxh46ej.js} +3 -3
  49. package/dist/{index-shg5xc9t.js → index-jk29rwkr.js} +1 -1
  50. package/dist/{index-e40rzw1m.js → index-k42ckyzx.js} +1 -1
  51. package/dist/{index-xtc8k5n9.js → index-k7z3j3hr.js} +47 -16
  52. package/dist/{index-pd578538.js → index-qcn84byh.js} +1 -0
  53. package/dist/{index-vf9c59t3.js → index-rhzkndr5.js} +2 -2
  54. package/dist/{index-z8fnfj42.js → index-tpwbct8j.js} +1 -1
  55. package/dist/{index-7ysby53h.js → index-v1tswj0z.js} +1 -1
  56. package/dist/{index-a31p9ekx.js → index-v6vb5qx8.js} +4 -4
  57. package/dist/{index-5zxe0f3h.js → index-vtann8bz.js} +3 -3
  58. package/dist/{index-kvga921h.js → index-vwhrnp67.js} +4 -4
  59. package/dist/{index-ptjx84pr.js → index-zktz242w.js} +2 -2
  60. package/dist/telegram/outbound-budget.d.ts +99 -0
  61. package/dist/telegram/outbound-budget.d.ts.map +1 -0
  62. package/dist/telegram/send-failure.d.ts +6 -1
  63. package/dist/telegram/send-failure.d.ts.map +1 -1
  64. package/dist/tools/cli/command.d.ts +2 -1
  65. package/dist/tools/cli/command.d.ts.map +1 -1
  66. package/dist/tools/cli/format.d.ts +5 -1
  67. package/dist/tools/cli/format.d.ts.map +1 -1
  68. package/dist/tools/cli/run-native.d.ts.map +1 -1
  69. package/llms/cli.2.txt +281 -0
  70. package/llms/cli.txt +18 -285
  71. package/llms/server.4.txt +6 -1
  72. package/llms/stitchkit.txt +4 -4
  73. package/llms/telegram.txt +64 -2
  74. package/llms/{upgrading-0.103.13-0.113.0.txt → upgrading-0.104.0-0.114.0.txt} +45 -84
  75. package/llms/upgrading-0.37.0-0.44.0.txt +444 -0
  76. package/llms/{upgrading-0.44.0-0.60.0.txt → upgrading-0.44.0-0.61.0.txt} +140 -271
  77. package/llms/{upgrading-0.61.0-0.74.0.txt → upgrading-0.62.0-0.78.0.txt} +137 -140
  78. package/llms/{upgrading-0.75.0-0.103.0.txt → upgrading-0.79.0-0.103.13.txt} +84 -137
  79. package/llms/upgrading.txt +5 -5
  80. package/llms-full.txt +134 -11
  81. package/llms.txt +9 -9
  82. package/package.json +1 -1
  83. package/llms/upgrading-0.37.0.txt +0 -176
@@ -11,7 +11,7 @@ import {
11
11
  isTelegramNotDispatchedError,
12
12
  TELEGRAM_SEND_FAILURE_REASONS2,
13
13
  classifyTelegramSendFailure2
14
- } from "../index-xvj9h8yh.js";
14
+ } from "../index-hs35ss3p.js";
15
15
  import {
16
16
  TELEGRAM_TEXT_LIMIT2,
17
17
  truncateTelegramHtml2
@@ -35,6 +35,9 @@ import {
35
35
  import {
36
36
  untilAborted
37
37
  } from "../index-a5qr2rj6.js";
38
+ import {
39
+ argumentsDigest
40
+ } from "../index-r7a7r7ha.js";
38
41
  import {
39
42
  isRecord,
40
43
  transportResult
@@ -898,6 +901,242 @@ function telegramOperatorSender(config) {
898
901
  ...config.fetch && { fetch: config.fetch }
899
902
  });
900
903
  }
904
+ // src/telegram/outbound-budget.ts
905
+ import { z as z5 } from "zod";
906
+ var DEFAULT_MESSAGES_PER_SECOND = 24;
907
+ var DEFAULT_RETRY_AFTER_FALLBACK_MS = 1000;
908
+ var TOKEN = z5.string().min(1, "token must not be empty");
909
+ var MESSAGES_PER_SECOND = z5.number().positive().max(1000);
910
+ var RETRY_AFTER_FALLBACK_MS = z5.number().int().nonnegative().max(MAX_TIMER_MS);
911
+ var SEND_METHODS = new Set([
912
+ "sendMessage",
913
+ "sendPhoto",
914
+ "sendAudio",
915
+ "sendDocument",
916
+ "sendVideo",
917
+ "sendAnimation",
918
+ "sendVoice",
919
+ "sendVideoNote",
920
+ "sendPaidMedia",
921
+ "sendMediaGroup",
922
+ "sendLocation",
923
+ "sendVenue",
924
+ "sendContact",
925
+ "sendPoll",
926
+ "sendChecklist",
927
+ "sendDice",
928
+ "sendMessageDraft",
929
+ "sendSticker",
930
+ "sendInvoice",
931
+ "sendGame",
932
+ "sendGift",
933
+ "sendGiveaway",
934
+ "sendLivePhoto",
935
+ "sendRichMessage",
936
+ "copyMessage",
937
+ "copyMessages",
938
+ "forwardMessage",
939
+ "forwardMessages",
940
+ "answerWebAppQuery"
941
+ ]);
942
+ var WEIGHTED_METHODS = new Map([
943
+ ["sendMediaGroup", "media"],
944
+ ["sendPaidMedia", "media"],
945
+ ["copyMessages", "message_ids"],
946
+ ["forwardMessages", "message_ids"]
947
+ ]);
948
+ function sendCost(method, payload) {
949
+ if (!SEND_METHODS.has(method))
950
+ return 0;
951
+ const field = WEIGHTED_METHODS.get(method);
952
+ if (field === undefined || !isRecord(payload))
953
+ return 1;
954
+ const value = payload[field];
955
+ return Array.isArray(value) ? Math.max(1, value.length) : 1;
956
+ }
957
+ function createBudget(rate, fallback, now, sleepFor) {
958
+ const interval = 1000 / rate;
959
+ const queue = [];
960
+ let nextGrantAt = now();
961
+ let pausedUntil = Number.NEGATIVE_INFINITY;
962
+ let granted = 0;
963
+ let messages = 0;
964
+ let draining = false;
965
+ let wake;
966
+ const wait = async (milliseconds, signal) => {
967
+ const delay = Math.min(MAX_TIMER_MS, Math.max(0, milliseconds));
968
+ if (delay <= 0)
969
+ return;
970
+ const pending = sleepFor(delay, signal);
971
+ if (signal)
972
+ await raceAbort(pending, signal);
973
+ else
974
+ await pending;
975
+ };
976
+ const wakeWaiting = () => {
977
+ const current = wake;
978
+ wake = undefined;
979
+ current?.abort();
980
+ };
981
+ const remove = (waiter) => {
982
+ const index = queue.indexOf(waiter);
983
+ if (index === -1)
984
+ return;
985
+ queue.splice(index, 1);
986
+ if (index === 0)
987
+ wakeWaiting();
988
+ };
989
+ const drain = async () => {
990
+ if (draining)
991
+ return;
992
+ draining = true;
993
+ try {
994
+ while (queue.length > 0) {
995
+ const head = queue[0];
996
+ if (head === undefined)
997
+ break;
998
+ if (head.signal?.aborted) {
999
+ remove(head);
1000
+ continue;
1001
+ }
1002
+ const current = now();
1003
+ const at = Math.max(current, nextGrantAt, pausedUntil);
1004
+ if (at > current) {
1005
+ const controller = new AbortController;
1006
+ wake = controller;
1007
+ try {
1008
+ await wait(at - current, controller.signal);
1009
+ } catch (error) {
1010
+ if (!controller.signal.aborted) {
1011
+ for (const waiter of queue.splice(0)) {
1012
+ if (waiter.onAbort)
1013
+ waiter.signal?.removeEventListener("abort", waiter.onAbort);
1014
+ waiter.reject(error);
1015
+ }
1016
+ return;
1017
+ }
1018
+ } finally {
1019
+ if (wake === controller)
1020
+ wake = undefined;
1021
+ }
1022
+ continue;
1023
+ }
1024
+ queue.shift();
1025
+ if (head.onAbort)
1026
+ head.signal?.removeEventListener("abort", head.onAbort);
1027
+ nextGrantAt = at + head.cost * interval;
1028
+ granted += 1;
1029
+ messages += head.cost;
1030
+ head.resolve();
1031
+ }
1032
+ } finally {
1033
+ draining = false;
1034
+ if (queue.length > 0)
1035
+ drain();
1036
+ }
1037
+ };
1038
+ const acquire = (cost, signal) => {
1039
+ if (!Number.isSafeInteger(cost) || cost < 1) {
1040
+ return Promise.reject(new RangeError("cost must be an integer of at least one message"));
1041
+ }
1042
+ if (signal?.aborted)
1043
+ return Promise.reject(signal.reason);
1044
+ return new Promise((resolve, reject) => {
1045
+ const waiter = { cost, resolve, reject, ...signal && { signal } };
1046
+ if (signal) {
1047
+ const onAbort = () => {
1048
+ remove(waiter);
1049
+ reject(signal.reason);
1050
+ };
1051
+ waiter.onAbort = onAbort;
1052
+ signal.addEventListener("abort", onAbort, { once: true });
1053
+ }
1054
+ queue.push(waiter);
1055
+ drain();
1056
+ });
1057
+ };
1058
+ const pauseFor = (milliseconds) => {
1059
+ if (Number.isNaN(milliseconds) || milliseconds < 0) {
1060
+ throw new RangeError("pause must be a non-negative number of milliseconds");
1061
+ }
1062
+ const duration = Number.isFinite(milliseconds) ? milliseconds : Number.MAX_SAFE_INTEGER;
1063
+ pausedUntil = Math.max(pausedUntil, now() + duration);
1064
+ wakeWaiting();
1065
+ };
1066
+ const pauseAfter = (error) => {
1067
+ const failure = classifyTelegramSendFailure2(error);
1068
+ if (failure.reason !== "rate-limited")
1069
+ return;
1070
+ pauseFor(failure.retryAfterSeconds === undefined ? fallback : failure.retryAfterSeconds * 1000);
1071
+ };
1072
+ const waitUntilResumed = async (signal) => {
1073
+ while (true) {
1074
+ if (signal?.aborted)
1075
+ throw signal.reason;
1076
+ const remaining = pausedUntil - now();
1077
+ if (remaining <= 0)
1078
+ return;
1079
+ await wait(Math.min(remaining, MAX_TIMER_MS), signal);
1080
+ }
1081
+ };
1082
+ const run = async (method, payload, signal, send) => {
1083
+ if (signal?.aborted)
1084
+ throw signal.reason;
1085
+ const cost = sendCost(method, payload);
1086
+ if (cost > 0)
1087
+ await acquire(cost, signal);
1088
+ if (signal?.aborted)
1089
+ throw signal.reason;
1090
+ try {
1091
+ return await send();
1092
+ } catch (error) {
1093
+ pauseAfter(error);
1094
+ throw error;
1095
+ }
1096
+ };
1097
+ const budget = {
1098
+ run,
1099
+ acquire,
1100
+ pause: pauseFor,
1101
+ pauseAfter,
1102
+ waitUntilResumed,
1103
+ stats: () => ({
1104
+ granted,
1105
+ messages,
1106
+ queued: queue.length,
1107
+ messagesPerSecond: rate,
1108
+ pausedForMs: Math.max(0, pausedUntil - now())
1109
+ })
1110
+ };
1111
+ return budget;
1112
+ }
1113
+ var budgets = new Map;
1114
+ function keyOf(token) {
1115
+ return `telegram-outbound:${argumentsDigest({ token })}`;
1116
+ }
1117
+ function telegramOutboundBudget(config) {
1118
+ const token = TOKEN.parse(config.token);
1119
+ const rate = MESSAGES_PER_SECOND.parse(config.messagesPerSecond ?? DEFAULT_MESSAGES_PER_SECOND);
1120
+ const fallback = RETRY_AFTER_FALLBACK_MS.parse(config.retryAfterFallbackMs ?? DEFAULT_RETRY_AFTER_FALLBACK_MS);
1121
+ const key = keyOf(token);
1122
+ const existing = budgets.get(key);
1123
+ if (existing) {
1124
+ const same = existing.rate === rate && existing.fallback === fallback && existing.nowOption === config.now && existing.sleepOption === config.sleep;
1125
+ if (!same) {
1126
+ throw new Error("a Telegram outbound budget already exists for this token with different options");
1127
+ }
1128
+ return existing.budget;
1129
+ }
1130
+ const budget = createBudget(rate, fallback, config.now ?? (() => performance.now()), config.sleep ?? sleep);
1131
+ budgets.set(key, {
1132
+ budget,
1133
+ rate,
1134
+ fallback,
1135
+ nowOption: config.now,
1136
+ sleepOption: config.sleep
1137
+ });
1138
+ return budget;
1139
+ }
901
1140
  // src/telegram/transport-connect.ts
902
1141
  import { lookup } from "node:dns/promises";
903
1142
  import { connect as connectTcp, isIP } from "node:net";
@@ -2609,6 +2848,7 @@ export {
2609
2848
  sqliteTelegramUpdateStore,
2610
2849
  telegramBroadcastSender,
2611
2850
  telegramOperatorSender,
2851
+ telegramOutboundBudget,
2612
2852
  telegramWebhookUrl,
2613
2853
  verifyTelegramInitData
2614
2854
  };
@@ -6,7 +6,7 @@ import"../index-p6apg0jg.js";
6
6
  import"../index-q0th8q0z.js";
7
7
  import {
8
8
  createApplication2
9
- } from "../index-7ysby53h.js";
9
+ } from "../index-v1tswj0z.js";
10
10
  import"../index-w5s3xftz.js";
11
11
  import {
12
12
  RealtimeRequestTimeoutError2,
@@ -30,8 +30,8 @@ import {
30
30
  projectToolSurface,
31
31
  mcpProjectionCandidate,
32
32
  prepareProjectedMcpTools
33
- } from "../index-vf9c59t3.js";
34
- import"../index-e40rzw1m.js";
33
+ } from "../index-rhzkndr5.js";
34
+ import"../index-k42ckyzx.js";
35
35
  import {
36
36
  createClient2,
37
37
  createClients2
@@ -2,8 +2,8 @@ import"../../index-ct75c3at.js";
2
2
  import {
3
3
  declaresDraft07,
4
4
  withDraft2020Keywords
5
- } from "../../index-vf9c59t3.js";
6
- import"../../index-e40rzw1m.js";
5
+ } from "../../index-rhzkndr5.js";
6
+ import"../../index-k42ckyzx.js";
7
7
  import {
8
8
  markJsonSchemaObjectGuards,
9
9
  markRemoteSchemaVerdict
@@ -26,10 +26,10 @@ import {
26
26
  } from "../../index-0s4xebbg.js";
27
27
  import {
28
28
  defineRuntimeTool2
29
- } from "../../index-bv51s0f4.js";
29
+ } from "../../index-ega3yz4c.js";
30
30
  import {
31
31
  TOOL_ERROR_PROJECTION
32
- } from "../../index-5gmrx6sc.js";
32
+ } from "../../index-98hv3sba.js";
33
33
  import {
34
34
  safeJsonParse
35
35
  } from "../../index-zsarb5xp.js";
@@ -37,7 +37,7 @@ import {
37
37
  AppError2,
38
38
  STITCH_ERROR_STATUS2,
39
39
  isRetryableStatus2
40
- } from "../../index-pd578538.js";
40
+ } from "../../index-qcn84byh.js";
41
41
  import {
42
42
  isRecord
43
43
  } from "../../index-9jfdm5tg.js";
@@ -1,13 +1,13 @@
1
- import"../../index-e40rzw1m.js";
1
+ import"../../index-k42ckyzx.js";
2
2
  import"../../index-dsa676h8.js";
3
3
  import"../../index-rbzq0q16.js";
4
4
  import"../../index-ct75c3at.js";
5
- import"../../index-vf9c59t3.js";
6
- import"../../index-a31p9ekx.js";
7
- import"../../index-0gbn42hr.js";
5
+ import"../../index-rhzkndr5.js";
6
+ import"../../index-v6vb5qx8.js";
7
+ import"../../index-htxh46ej.js";
8
8
  import {
9
9
  createToolInvoker2
10
- } from "../../index-kvga921h.js";
10
+ } from "../../index-vwhrnp67.js";
11
11
  export {
12
12
  createToolInvoker2 as createToolInvoker
13
13
  };
@@ -1,10 +1,10 @@
1
1
  import"../../index-ct75c3at.js";
2
- import"../../index-e40rzw1m.js";
2
+ import"../../index-k42ckyzx.js";
3
3
  import"../../index-dsa676h8.js";
4
4
  import"../../index-rbzq0q16.js";
5
- import"../../index-vf9c59t3.js";
6
- import"../../index-a31p9ekx.js";
7
- import"../../index-0gbn42hr.js";
5
+ import"../../index-rhzkndr5.js";
6
+ import"../../index-v6vb5qx8.js";
7
+ import"../../index-htxh46ej.js";
8
8
  import {
9
9
  RESOURCE_MIME_TYPE2,
10
10
  EXT_APPS_BUNDLE_PLACEHOLDER2,
@@ -20,9 +20,9 @@ import {
20
20
  createMcpHttpRoute2,
21
21
  createStdioMcpServer2,
22
22
  bindStdioProcessSignals2
23
- } from "../../index-cn7xenet.js";
24
- import"../../index-2s7wv547.js";
25
- import"../../index-bv51s0f4.js";
23
+ } from "../../index-095ya5hm.js";
24
+ import"../../index-86nbfysb.js";
25
+ import"../../index-ega3yz4c.js";
26
26
  export {
27
27
  EXT_APPS_BUNDLE_PLACEHOLDER2 as EXT_APPS_BUNDLE_PLACEHOLDER,
28
28
  MCP_CATALOG_META_KEY2 as MCP_CATALOG_META_KEY,
@@ -8,7 +8,7 @@ import {
8
8
  } from "../index-56yx8dxp.js";
9
9
  import {
10
10
  normalizeError2
11
- } from "../index-e40rzw1m.js";
11
+ } from "../index-k42ckyzx.js";
12
12
  import"../index-dsa676h8.js";
13
13
  import {
14
14
  coerceJsonArgs2
@@ -21,19 +21,19 @@ import {
21
21
  findNonPortableFormats2,
22
22
  flattenToolJsonSchema2,
23
23
  findUntypedProperties2
24
- } from "../index-vf9c59t3.js";
24
+ } from "../index-rhzkndr5.js";
25
25
  import {
26
26
  ToolExecutionControlError2,
27
27
  isToolExecutionControlError2
28
- } from "../index-a31p9ekx.js";
28
+ } from "../index-v6vb5qx8.js";
29
29
  import {
30
30
  collectTools2
31
- } from "../index-0gbn42hr.js";
31
+ } from "../index-htxh46ej.js";
32
32
  import {
33
33
  mountAgent2,
34
34
  describeToolCatalog2,
35
35
  buildToolManifest2
36
- } from "../index-6ez1r4j2.js";
36
+ } from "../index-1csp1hwm.js";
37
37
  import"../index-m38ej7e5.js";
38
38
  import {
39
39
  ALL_TRANSPORTS2,
@@ -60,7 +60,7 @@ import {
60
60
  createMcpHttpRoute2,
61
61
  createStdioMcpServer2,
62
62
  bindStdioProcessSignals2
63
- } from "../index-cn7xenet.js";
63
+ } from "../index-095ya5hm.js";
64
64
  import {
65
65
  AsyncOperationCancelResultSchema2,
66
66
  createAsyncOperationSnapshotSchema2,
@@ -74,7 +74,7 @@ import {
74
74
  WaitTimeoutError,
75
75
  runWaitOperation,
76
76
  createCli2
77
- } from "../index-xtc8k5n9.js";
77
+ } from "../index-k7z3j3hr.js";
78
78
  import {
79
79
  ManagedFilePathSchema2,
80
80
  ManagedFileRefSchema2
@@ -82,14 +82,14 @@ import {
82
82
  import {
83
83
  signJwt2,
84
84
  verifyPkce2
85
- } from "../index-4e36ts8b.js";
85
+ } from "../index-9dyd8xzf.js";
86
86
  import {
87
87
  contractOnlyService,
88
88
  mediaTypeEssence
89
- } from "../index-vgtzdykw.js";
89
+ } from "../index-cqmqyjax.js";
90
90
  import {
91
91
  createToolInvoker2
92
- } from "../index-kvga921h.js";
92
+ } from "../index-vwhrnp67.js";
93
93
  import {
94
94
  ManagedFileError2
95
95
  } from "../index-2f9r0jgr.js";
@@ -111,21 +111,21 @@ import {
111
111
  } from "../index-yk4g8805.js";
112
112
  import {
113
113
  collectToolSurface
114
- } from "../index-2s7wv547.js";
114
+ } from "../index-86nbfysb.js";
115
115
  import {
116
116
  getTraceId2
117
117
  } from "../index-r6v4mc67.js";
118
118
  import {
119
119
  defineRuntimeTool2,
120
120
  createRuntimeToolFactory2
121
- } from "../index-bv51s0f4.js";
121
+ } from "../index-ega3yz4c.js";
122
122
  import {
123
123
  formatZodError2
124
124
  } from "../index-1eeqpadm.js";
125
125
  import {
126
126
  AppError2,
127
127
  STITCH_ERROR_STATUS2
128
- } from "../index-pd578538.js";
128
+ } from "../index-qcn84byh.js";
129
129
  import {
130
130
  isRecord
131
131
  } from "../index-9jfdm5tg.js";
@@ -8,17 +8,17 @@ import {
8
8
  validateResolvedInputRounds,
9
9
  presentationMetadata,
10
10
  prepareProjectedMcpTools
11
- } from "./index-vf9c59t3.js";
11
+ } from "./index-rhzkndr5.js";
12
12
  import {
13
13
  parseToolCallArguments,
14
14
  toolResultFromError,
15
15
  observed
16
- } from "./index-a31p9ekx.js";
16
+ } from "./index-v6vb5qx8.js";
17
17
  import {
18
18
  collectTools2,
19
19
  createToolRunner,
20
20
  formatToolError
21
- } from "./index-0gbn42hr.js";
21
+ } from "./index-htxh46ej.js";
22
22
  import {
23
23
  DEFAULT_CORS_ALLOW_HEADERS2,
24
24
  DEFAULT_PROCESS_SIGNALS,
@@ -31,7 +31,7 @@ import {
31
31
  } from "./index-e6c2spsd.js";
32
32
  import {
33
33
  collectToolSurface
34
- } from "./index-2s7wv547.js";
34
+ } from "./index-86nbfysb.js";
35
35
  import {
36
36
  runWithRequestContext2,
37
37
  getRequestContext2
@@ -41,7 +41,7 @@ import {
41
41
  } from "./index-a5qr2rj6.js";
42
42
  import {
43
43
  AppError2
44
- } from "./index-pd578538.js";
44
+ } from "./index-qcn84byh.js";
45
45
  import {
46
46
  argumentsDigest
47
47
  } from "./index-r7a7r7ha.js";
@@ -2,21 +2,21 @@ import {
2
2
  toolResultFromError,
3
3
  toolCauseFromResult,
4
4
  isToolExecutionControlError2
5
- } from "./index-a31p9ekx.js";
5
+ } from "./index-v6vb5qx8.js";
6
6
  import {
7
7
  createToolRunner,
8
8
  formatToolError
9
- } from "./index-0gbn42hr.js";
9
+ } from "./index-htxh46ej.js";
10
10
  import {
11
11
  AgentToolError2,
12
12
  resolveToolDurability
13
13
  } from "./index-56yx8dxp.js";
14
14
  import {
15
15
  collectToolSurface
16
- } from "./index-2s7wv547.js";
16
+ } from "./index-86nbfysb.js";
17
17
  import {
18
18
  agentPresenterOf
19
- } from "./index-bv51s0f4.js";
19
+ } from "./index-ega3yz4c.js";
20
20
  import {
21
21
  isRecord
22
22
  } from "./index-9jfdm5tg.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createValidatedRealtimeSocket
3
- } from "./index-grn4brx1.js";
3
+ } from "./index-3za04re9.js";
4
4
 
5
5
  // src/server/realtime.ts
6
6
  function bindRealtimeServer2(contract, handle, options = {}) {
@@ -7,7 +7,7 @@ import {
7
7
  } from "./index-1eeqpadm.js";
8
8
  import {
9
9
  AppError2
10
- } from "./index-pd578538.js";
10
+ } from "./index-qcn84byh.js";
11
11
 
12
12
  // src/realtime/rejected-frame.ts
13
13
  var REALTIME_REJECTION_KEY2 = "@stitchkit/realtime-rejected";
@@ -4,7 +4,7 @@ import {
4
4
  AgentSandboxRestrictionSchema2,
5
5
  AgentSandboxGradeSchema2,
6
6
  AGENT_CODING_TOOL_NAMES
7
- } from "./index-ptjx84pr.js";
7
+ } from "./index-zktz242w.js";
8
8
  import {
9
9
  AgentRecordIdSchema2,
10
10
  AgentRecordVersionSchema2,
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  ToolExecutionControlError2,
16
16
  isToolExecutionControlError2
17
- } from "./index-a31p9ekx.js";
17
+ } from "./index-v6vb5qx8.js";
18
18
  import {
19
19
  agentDurableEventId2
20
20
  } from "./index-mnkk1ffz.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  projectToolSurface
3
- } from "./index-vf9c59t3.js";
3
+ } from "./index-rhzkndr5.js";
4
4
  import {
5
5
  contractToolMountable
6
- } from "./index-0gbn42hr.js";
6
+ } from "./index-htxh46ej.js";
7
7
  import {
8
8
  runtimeToolMountable
9
- } from "./index-bv51s0f4.js";
9
+ } from "./index-ega3yz4c.js";
10
10
 
11
11
  // src/tools/surface.ts
12
12
  function collectToolSurface({
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AppError2
3
- } from "./index-pd578538.js";
3
+ } from "./index-qcn84byh.js";
4
4
 
5
5
  // src/tools/internal/tool-error-projection.ts
6
6
  var TOOL_ERROR_PROJECTION = Symbol.for("stitchkit.toolErrorProjection");
@@ -10,7 +10,7 @@ import {
10
10
  } from "./index-zsarb5xp.js";
11
11
  import {
12
12
  unauthorized2
13
- } from "./index-pd578538.js";
13
+ } from "./index-qcn84byh.js";
14
14
  import {
15
15
  isRecord
16
16
  } from "./index-9jfdm5tg.js";
@@ -19,7 +19,7 @@ import {
19
19
  appendEventIn,
20
20
  ArchiveProjectionSchema,
21
21
  createAgentRuntimeStore2
22
- } from "./index-09dyy94r.js";
22
+ } from "./index-523tq7y4.js";
23
23
  import {
24
24
  AgentConversationPageSchema2,
25
25
  AgentConversationMessagePageSchema2
@@ -9,7 +9,7 @@ import {
9
9
  realtimeRequestTraces,
10
10
  createRequestTracer,
11
11
  bindRealtimeClient2
12
- } from "./index-shg5xc9t.js";
12
+ } from "./index-jk29rwkr.js";
13
13
 
14
14
  // src/browser/retained.ts
15
15
  function createRetainedTopics2() {
@@ -3,7 +3,7 @@ import {
3
3
  } from "./index-1bx1xv1k.js";
4
4
  import {
5
5
  AppError2
6
- } from "./index-pd578538.js";
6
+ } from "./index-qcn84byh.js";
7
7
  import {
8
8
  typedEntries,
9
9
  callRuntimeHandler
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  projectRuntimeTool
3
- } from "./index-vf9c59t3.js";
3
+ } from "./index-rhzkndr5.js";
4
4
  import {
5
5
  isRecord
6
6
  } from "./index-9jfdm5tg.js";
@@ -9,7 +9,7 @@ import {
9
9
  AppError2,
10
10
  STITCH_ERROR_STATUS2,
11
11
  isStitchErrorCode2
12
- } from "./index-pd578538.js";
12
+ } from "./index-qcn84byh.js";
13
13
  import {
14
14
  typedEntries,
15
15
  transportResult,