@codemation/core 0.5.0 → 0.7.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 (63) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/{EngineRuntimeRegistration.types-BtTZolK0.d.ts → EngineRuntimeRegistration.types-_M7KFD3D.d.ts} +2 -2
  3. package/dist/{EngineWorkflowRunnerService-Ddl0fekp.d.cts → EngineWorkflowRunnerService-D0Cwngv7.d.cts} +2 -2
  4. package/dist/{InMemoryRunDataFactory-i-u2yngD.d.cts → InMemoryRunDataFactory-BIWx6e02.d.cts} +15 -6
  5. package/dist/{RunIntentService-Cjx-glgz.d.cts → RunIntentService-5k0p-J67.d.cts} +31 -12
  6. package/dist/{RunIntentService-Dkr4YwN8.d.ts → RunIntentService-CuXAIO6_.d.ts} +52 -28
  7. package/dist/bootstrap/index.cjs +2 -2
  8. package/dist/bootstrap/index.d.cts +6 -6
  9. package/dist/bootstrap/index.d.ts +3 -3
  10. package/dist/bootstrap/index.js +2 -2
  11. package/dist/{bootstrap-DbUlOl11.js → bootstrap-BhYxSivA.js} +5 -4
  12. package/dist/bootstrap-BhYxSivA.js.map +1 -0
  13. package/dist/{bootstrap-DHH2uo-W.cjs → bootstrap-D-TDU9Lu.cjs} +5 -4
  14. package/dist/bootstrap-D-TDU9Lu.cjs.map +1 -0
  15. package/dist/{index-B2v4wtys.d.ts → index-BnJ7_IrO.d.ts} +92 -13
  16. package/dist/index.cjs +94 -10
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +98 -23
  19. package/dist/index.d.ts +3 -3
  20. package/dist/index.js +84 -6
  21. package/dist/index.js.map +1 -1
  22. package/dist/{runtime-feFn8OmG.cjs → runtime-3YVDd2vY.cjs} +81 -73
  23. package/dist/runtime-3YVDd2vY.cjs.map +1 -0
  24. package/dist/{runtime-BdH94eBR.js → runtime-CJnObwsU.js} +66 -64
  25. package/dist/runtime-CJnObwsU.js.map +1 -0
  26. package/dist/testing.cjs +2 -2
  27. package/dist/testing.cjs.map +1 -1
  28. package/dist/testing.d.cts +2 -2
  29. package/dist/testing.d.ts +2 -2
  30. package/dist/testing.js +2 -2
  31. package/dist/testing.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/ai/AgentConfigInspectorFactory.ts +2 -2
  34. package/src/ai/AgentMessageConfigNormalizerFactory.ts +3 -3
  35. package/src/ai/AiHost.ts +22 -2
  36. package/src/ai/CallableToolConfig.ts +84 -0
  37. package/src/ai/CallableToolFactory.ts +13 -0
  38. package/src/ai/CallableToolKindToken.ts +5 -0
  39. package/src/authoring/callableTool.types.ts +12 -0
  40. package/src/authoring/defineNode.types.ts +38 -9
  41. package/src/authoring/index.ts +2 -0
  42. package/src/bootstrap/runtime/EngineRuntimeRegistrar.ts +12 -4
  43. package/src/contracts/credentialTypes.ts +20 -0
  44. package/src/contracts/index.ts +2 -1
  45. package/src/contracts/{itemValue.ts → itemExpr.ts} +31 -32
  46. package/src/contracts/params.ts +10 -0
  47. package/src/contracts/runtimeTypes.ts +4 -2
  48. package/src/contracts/workflowTypes.ts +11 -9
  49. package/src/execution/{ItemValueResolver.ts → ItemExprResolver.ts} +5 -5
  50. package/src/execution/NodeExecutor.ts +13 -31
  51. package/src/execution/NodeExecutorFactory.ts +7 -2
  52. package/src/execution/NodeOutputNormalizer.ts +22 -23
  53. package/src/execution/RunnableOutputBehaviorResolver.ts +23 -0
  54. package/src/execution/index.ts +2 -1
  55. package/src/index.ts +2 -1
  56. package/src/runStorage/InMemoryRunData.ts +9 -5
  57. package/src/testing/SwitchHarnessNode.ts +0 -1
  58. package/src/types/index.ts +2 -1
  59. package/src/workflowSnapshots/WorkflowSnapshotCodec.ts +1 -1
  60. package/dist/bootstrap-DHH2uo-W.cjs.map +0 -1
  61. package/dist/bootstrap-DbUlOl11.js.map +0 -1
  62. package/dist/runtime-BdH94eBR.js.map +0 -1
  63. package/dist/runtime-feFn8OmG.cjs.map +0 -1
@@ -165,43 +165,43 @@ function chatModel(options = {}) {
165
165
  }
166
166
 
167
167
  //#endregion
168
- //#region src/contracts/itemValue.ts
169
- const ITEM_VALUE_BRAND = Symbol.for("codemation.itemValue");
170
- function itemValue(fn) {
168
+ //#region src/contracts/itemExpr.ts
169
+ const ITEM_EXPR_BRAND = Symbol.for("codemation.itemExpr");
170
+ function itemExpr(fn) {
171
171
  return {
172
- [ITEM_VALUE_BRAND]: true,
172
+ [ITEM_EXPR_BRAND]: true,
173
173
  fn
174
174
  };
175
175
  }
176
- function isItemValue(value) {
176
+ function isItemExpr(value) {
177
177
  if (typeof value !== "object" || value === null) return false;
178
178
  const v = value;
179
- if (v[ITEM_VALUE_BRAND] === true) return true;
179
+ if (v[ITEM_EXPR_BRAND] === true) return true;
180
180
  const keys = Object.keys(v);
181
181
  if (keys.length === 1 && keys[0] === "fn" && typeof v.fn === "function") return true;
182
- for (const sym of Object.getOwnPropertySymbols(v)) if (sym.description === "codemation.itemValue" && v[sym] === true) return true;
182
+ for (const sym of Object.getOwnPropertySymbols(v)) if (sym.description === "codemation.itemExpr" && v[sym] === true) return true;
183
183
  return false;
184
184
  }
185
- function containsItemValueInUnknown(value, seen = /* @__PURE__ */ new WeakSet()) {
186
- if (isItemValue(value)) return true;
185
+ function containsItemExprInUnknown(value, seen = /* @__PURE__ */ new WeakSet()) {
186
+ if (isItemExpr(value)) return true;
187
187
  if (value === null || typeof value !== "object") return false;
188
188
  if (seen.has(value)) return false;
189
189
  seen.add(value);
190
- if (Array.isArray(value)) return value.some((entry) => containsItemValueInUnknown(entry, seen));
191
- for (const entry of Object.values(value)) if (containsItemValueInUnknown(entry, seen)) return true;
190
+ if (Array.isArray(value)) return value.some((entry) => containsItemExprInUnknown(entry, seen));
191
+ for (const entry of Object.values(value)) if (containsItemExprInUnknown(entry, seen)) return true;
192
192
  return false;
193
193
  }
194
194
  /**
195
- * Deep-resolves {@link itemValue} leaves. Returns a new graph (does not mutate the original config object).
195
+ * Deep-resolves {@link itemExpr} leaves. Returns a new graph (does not mutate the original config object).
196
196
  */
197
- async function resolveItemValuesInUnknown(value, args, seen = /* @__PURE__ */ new WeakSet()) {
198
- if (isItemValue(value)) return await Promise.resolve(value.fn(args));
197
+ async function resolveItemExprsInUnknown(value, args, seen = /* @__PURE__ */ new WeakSet()) {
198
+ if (isItemExpr(value)) return await Promise.resolve(value.fn(args));
199
199
  if (value === null || typeof value !== "object") return value;
200
200
  if (seen.has(value)) return value;
201
201
  seen.add(value);
202
202
  if (Array.isArray(value)) {
203
203
  const out$1 = [];
204
- for (let i = 0; i < value.length; i++) out$1.push(await resolveItemValuesInUnknown(value[i], args, seen));
204
+ for (let i = 0; i < value.length; i++) out$1.push(await resolveItemExprsInUnknown(value[i], args, seen));
205
205
  return out$1;
206
206
  }
207
207
  const rec = value;
@@ -209,14 +209,14 @@ async function resolveItemValuesInUnknown(value, args, seen = /* @__PURE__ */ ne
209
209
  const proto = Object.getPrototypeOf(value);
210
210
  if (proto !== Object.prototype && proto !== null && entries.length === 0) return value;
211
211
  const out = Object.create(proto);
212
- for (const [k, v] of entries) out[k] = await resolveItemValuesInUnknown(v, args, seen);
212
+ for (const [k, v] of entries) out[k] = await resolveItemExprsInUnknown(v, args, seen);
213
213
  return out;
214
214
  }
215
215
  /**
216
- * Clones runnable config (best-effort) so per-item {@link itemValue} resolution never mutates shared instances.
216
+ * Clones runnable config (best-effort) so per-item {@link itemExpr} resolution never mutates shared instances.
217
217
  */
218
- async function resolveItemValuesForExecution(config, nodeCtx, item, itemIndex, items) {
219
- const ivArgs = {
218
+ async function resolveItemExprsForExecution(config, nodeCtx, item, itemIndex, items) {
219
+ const exprArgs = {
220
220
  item,
221
221
  itemIndex,
222
222
  items,
@@ -228,8 +228,8 @@ async function resolveItemValuesForExecution(config, nodeCtx, item, itemIndex, i
228
228
  data: nodeCtx.data
229
229
  }
230
230
  };
231
- if (!containsItemValueInUnknown(config)) return;
232
- return await resolveItemValuesInUnknown(config, ivArgs);
231
+ if (!containsItemExprInUnknown(config)) return;
232
+ return await resolveItemExprsInUnknown(config, exprArgs);
233
233
  }
234
234
 
235
235
  //#endregion
@@ -941,14 +941,14 @@ var InProcessRetryRunner = class InProcessRetryRunner {
941
941
  };
942
942
 
943
943
  //#endregion
944
- //#region src/execution/ItemValueResolver.ts
944
+ //#region src/execution/ItemExprResolver.ts
945
945
  /**
946
- * Resolves {@link import("../contracts/itemValue").ItemValue} leaves on runnable config before {@link RunnableNode.execute}.
946
+ * Resolves {@link import("../contracts/itemExpr").ItemExpr} leaves on runnable config before {@link RunnableNode.execute}.
947
947
  */
948
- var ItemValueResolver = class {
948
+ var ItemExprResolver = class {
949
949
  async resolveConfigForItem(ctx, item, itemIndex, items) {
950
- if (!ctx) throw new Error("ItemValueResolver.resolveConfigForItem: ctx is required");
951
- const resolvedConfig = await resolveItemValuesForExecution(ctx.config, ctx, item, itemIndex, items);
950
+ if (!ctx) throw new Error("ItemExprResolver.resolveConfigForItem: ctx is required");
951
+ const resolvedConfig = await resolveItemExprsForExecution(ctx.config, ctx, item, itemIndex, items);
952
952
  const merged = resolvedConfig !== void 0 && resolvedConfig !== null ? resolvedConfig : ctx.config;
953
953
  if (merged === void 0 || merged === null) return ctx;
954
954
  return {
@@ -978,49 +978,56 @@ function isUnbrandedPortsEmissionShape(value) {
978
978
  //#region src/execution/NodeOutputNormalizer.ts
979
979
  var NodeOutputNormalizer = class {
980
980
  normalizeExecuteResult(args) {
981
- const { baseItem, raw, carry } = args;
982
- if (isPortsEmission(raw)) return this.emitPortsToOutputs(baseItem, raw, carry);
981
+ const { baseItem, raw, behavior } = args;
982
+ if (isPortsEmission(raw)) return this.emitPortsToOutputs(baseItem, raw, behavior);
983
983
  if (isUnbrandedPortsEmissionShape(raw)) throw new Error("execute() returned an unbranded `{ ports: ... }` object. Use emitPorts(...) for multi-port runnable outputs.");
984
- if (Array.isArray(raw)) return this.arrayFanOutToMain(baseItem, raw, carry);
985
- if (this.isItemLike(raw)) return { main: [this.applyLineage(baseItem, raw, carry)] };
986
- return { main: [this.applyLineage(baseItem, { json: raw }, carry)] };
984
+ if (Array.isArray(raw)) return this.arrayFanOutToMain(baseItem, raw, behavior);
985
+ if (this.isItemLike(raw)) return { main: [this.applyOutput(baseItem, raw, behavior)] };
986
+ return { main: [this.applyOutput(baseItem, { json: raw }, behavior)] };
987
987
  }
988
- arrayFanOutToMain(baseItem, raw, carry) {
988
+ arrayFanOutToMain(baseItem, raw, behavior) {
989
989
  for (const el of raw) if (Array.isArray(el)) throw new Error("execute() fan-out arrays must contain only non-array JSON elements (nested arrays belong inside objects).");
990
- return { main: raw.map((json) => this.applyLineage(baseItem, { json }, carry)) };
990
+ return { main: raw.map((json) => this.applyOutput(baseItem, { json }, behavior)) };
991
991
  }
992
- emitPortsToOutputs(baseItem, emission, carry) {
992
+ emitPortsToOutputs(baseItem, emission, behavior) {
993
993
  const out = {};
994
994
  for (const [port, payload] of Object.entries(emission.ports)) {
995
995
  if (payload === void 0) continue;
996
- out[port] = this.normalizePortPayload(baseItem, payload, carry);
996
+ out[port] = this.normalizePortPayload(baseItem, payload, behavior);
997
997
  }
998
998
  return out;
999
999
  }
1000
- normalizePortPayload(baseItem, payload, carry) {
1000
+ normalizePortPayload(baseItem, payload, behavior) {
1001
1001
  if (payload.length === 0) return [];
1002
1002
  const el0 = payload[0];
1003
- if (this.isItemLike(el0)) return payload.map((it) => this.applyLineage(baseItem, it, carry));
1004
- return payload.map((json) => this.applyLineage(baseItem, { json }, carry));
1003
+ if (this.isItemLike(el0)) return payload.map((it) => this.applyOutput(baseItem, it, behavior));
1004
+ return payload.map((json) => this.applyOutput(baseItem, { json }, behavior));
1005
1005
  }
1006
1006
  isItemLike(value) {
1007
1007
  return typeof value === "object" && value !== null && "json" in value;
1008
1008
  }
1009
- applyLineage(baseItem, next, carry) {
1010
- if (carry === "carryThrough") return {
1011
- ...baseItem,
1012
- ...next,
1013
- json: next.json
1014
- };
1009
+ applyOutput(baseItem, next, behavior) {
1010
+ const explicitBinary = next.binary;
1015
1011
  return {
1016
1012
  json: next.json,
1017
- ...next.binary ? { binary: next.binary } : {},
1013
+ ...explicitBinary !== void 0 ? { binary: explicitBinary } : behavior.keepBinaries && baseItem.binary ? { binary: baseItem.binary } : {},
1018
1014
  ...next.meta ? { meta: next.meta } : {},
1019
1015
  ...next.paired ? { paired: next.paired } : {}
1020
1016
  };
1021
1017
  }
1022
1018
  };
1023
1019
 
1020
+ //#endregion
1021
+ //#region src/execution/RunnableOutputBehaviorResolver.ts
1022
+ var RunnableOutputBehaviorResolver = class {
1023
+ resolve(config) {
1024
+ return { keepBinaries: this.isKeepBinariesEnabled(config) };
1025
+ }
1026
+ isKeepBinariesEnabled(config) {
1027
+ return config.keepBinaries === true;
1028
+ }
1029
+ };
1030
+
1024
1031
  //#endregion
1025
1032
  //#region src/execution/InProcessRetryRunnerFactory.ts
1026
1033
  var InProcessRetryRunnerFactory = class {
@@ -1124,11 +1131,13 @@ var NodeActivationRequestComposer = class {
1124
1131
  var NodeExecutor = class {
1125
1132
  fanInMerger = new FanInMergeByOriginMerger();
1126
1133
  outputNormalizer = new NodeOutputNormalizer();
1127
- itemValueResolver;
1128
- constructor(nodeInstanceFactory, retryRunner, itemValueResolver) {
1134
+ itemExprResolver;
1135
+ outputBehaviorResolver;
1136
+ constructor(nodeInstanceFactory, retryRunner, itemExprResolver, outputBehaviorResolver) {
1129
1137
  this.nodeInstanceFactory = nodeInstanceFactory;
1130
1138
  this.retryRunner = retryRunner;
1131
- this.itemValueResolver = itemValueResolver ?? new ItemValueResolver();
1139
+ this.itemExprResolver = itemExprResolver ?? new ItemExprResolver();
1140
+ this.outputBehaviorResolver = outputBehaviorResolver ?? new RunnableOutputBehaviorResolver();
1132
1141
  }
1133
1142
  async execute(request) {
1134
1143
  const policy = request.ctx.config.retryPolicy;
@@ -1191,14 +1200,14 @@ var NodeExecutor = class {
1191
1200
  }
1192
1201
  async executeRunnableActivation(request, node$1) {
1193
1202
  const runnableConfig = request.ctx.config;
1194
- const carry = this.resolveLineageCarry(node$1, runnableConfig);
1203
+ const behavior = this.outputBehaviorResolver.resolve(runnableConfig);
1195
1204
  const inputSchema = this.resolveInputSchema(node$1, runnableConfig);
1196
1205
  const inputBatch = request.input ?? [];
1197
1206
  if (inputBatch.length === 0 && runnableConfig.emptyBatchExecution === "runOnce") {
1198
1207
  const syntheticItem = { json: {} };
1199
1208
  const parsed = inputSchema.parse(syntheticItem.json);
1200
1209
  const runnableCtx = request.ctx;
1201
- const resolvedCtx = await this.itemValueResolver.resolveConfigForItem(runnableCtx, syntheticItem, 0, inputBatch);
1210
+ const resolvedCtx = await this.itemExprResolver.resolveConfigForItem(runnableCtx, syntheticItem, 0, inputBatch);
1202
1211
  const args = {
1203
1212
  input: parsed,
1204
1213
  item: syntheticItem,
@@ -1210,7 +1219,7 @@ var NodeExecutor = class {
1210
1219
  return this.outputNormalizer.normalizeExecuteResult({
1211
1220
  baseItem: syntheticItem,
1212
1221
  raw,
1213
- carry
1222
+ behavior
1214
1223
  });
1215
1224
  }
1216
1225
  const byPort = {};
@@ -1219,7 +1228,7 @@ var NodeExecutor = class {
1219
1228
  this.assertItemJsonNotTopLevelArray(request.nodeId, item);
1220
1229
  const parsed = inputSchema.parse(item.json);
1221
1230
  const runnableCtx = request.ctx;
1222
- const resolvedCtx = await this.itemValueResolver.resolveConfigForItem(runnableCtx, item, i, inputBatch);
1231
+ const resolvedCtx = await this.itemExprResolver.resolveConfigForItem(runnableCtx, item, i, inputBatch);
1223
1232
  const ctx = this.pickExecutionContext(runnableCtx, resolvedCtx);
1224
1233
  const args = {
1225
1234
  input: parsed,
@@ -1232,7 +1241,7 @@ var NodeExecutor = class {
1232
1241
  const normalized = this.outputNormalizer.normalizeExecuteResult({
1233
1242
  baseItem: item,
1234
1243
  raw,
1235
- carry
1244
+ behavior
1236
1245
  });
1237
1246
  for (const [port, batch] of Object.entries(normalized)) {
1238
1247
  if (!batch || batch.length === 0) continue;
@@ -1262,20 +1271,13 @@ var NodeExecutor = class {
1262
1271
  if (isPortsEmission(value)) throw new Error(`Node ${nodeId}: ${methodName} must return NodeOutputs, not emitPorts(...).`);
1263
1272
  if (isUnbrandedPortsEmissionShape(value)) throw new Error(`Node ${nodeId}: ${methodName} returned an unbranded \`{ ports: ... }\` object. Return NodeOutputs instead.`);
1264
1273
  }
1265
- resolveLineageCarry(node$1, config) {
1266
- if (config.lineageCarry) return config.lineageCarry;
1267
- const base = config;
1268
- const declared = base.declaredOutputPorts;
1269
- if ((declared && declared.length > 0 ? [...new Set([...declared, ...base.nodeErrorHandler ? ["error"] : []])] : base.nodeErrorHandler ? ["main", "error"] : ["main"]).length > 1) return "carryThrough";
1270
- return "emitOnly";
1271
- }
1272
1274
  };
1273
1275
 
1274
1276
  //#endregion
1275
1277
  //#region src/execution/NodeExecutorFactory.ts
1276
1278
  var NodeExecutorFactory = class {
1277
- create(workflowNodeInstanceFactory, retryRunner) {
1278
- return new NodeExecutor(workflowNodeInstanceFactory, retryRunner);
1279
+ create(workflowNodeInstanceFactory, retryRunner, outputBehaviorResolver) {
1280
+ return new NodeExecutor(workflowNodeInstanceFactory, retryRunner, void 0, outputBehaviorResolver);
1279
1281
  }
1280
1282
  };
1281
1283
 
@@ -5037,10 +5039,10 @@ Object.defineProperty(exports, 'InlineDrivingScheduler', {
5037
5039
  return InlineDrivingScheduler;
5038
5040
  }
5039
5041
  });
5040
- Object.defineProperty(exports, 'ItemValueResolver', {
5042
+ Object.defineProperty(exports, 'ItemExprResolver', {
5041
5043
  enumerable: true,
5042
5044
  get: function () {
5043
- return ItemValueResolver;
5045
+ return ItemExprResolver;
5044
5046
  }
5045
5047
  });
5046
5048
  Object.defineProperty(exports, 'LocalOnlyScheduler', {
@@ -5139,6 +5141,12 @@ Object.defineProperty(exports, 'RunTerminalPersistenceCoordinator', {
5139
5141
  return RunTerminalPersistenceCoordinator;
5140
5142
  }
5141
5143
  });
5144
+ Object.defineProperty(exports, 'RunnableOutputBehaviorResolver', {
5145
+ enumerable: true,
5146
+ get: function () {
5147
+ return RunnableOutputBehaviorResolver;
5148
+ }
5149
+ });
5142
5150
  Object.defineProperty(exports, 'StackTraceCallSitePathResolver', {
5143
5151
  enumerable: true,
5144
5152
  get: function () {
@@ -5223,10 +5231,10 @@ Object.defineProperty(exports, 'getPersistedRuntimeTypeMetadata', {
5223
5231
  return getPersistedRuntimeTypeMetadata;
5224
5232
  }
5225
5233
  });
5226
- Object.defineProperty(exports, 'isItemValue', {
5234
+ Object.defineProperty(exports, 'isItemExpr', {
5227
5235
  enumerable: true,
5228
5236
  get: function () {
5229
- return isItemValue;
5237
+ return isItemExpr;
5230
5238
  }
5231
5239
  });
5232
5240
  Object.defineProperty(exports, 'isPortsEmission', {
@@ -5241,10 +5249,10 @@ Object.defineProperty(exports, 'isUnbrandedPortsEmissionShape', {
5241
5249
  return isUnbrandedPortsEmissionShape;
5242
5250
  }
5243
5251
  });
5244
- Object.defineProperty(exports, 'itemValue', {
5252
+ Object.defineProperty(exports, 'itemExpr', {
5245
5253
  enumerable: true,
5246
5254
  get: function () {
5247
- return itemValue;
5255
+ return itemExpr;
5248
5256
  }
5249
5257
  });
5250
5258
  Object.defineProperty(exports, 'node', {
@@ -5253,16 +5261,16 @@ Object.defineProperty(exports, 'node', {
5253
5261
  return node;
5254
5262
  }
5255
5263
  });
5256
- Object.defineProperty(exports, 'resolveItemValuesForExecution', {
5264
+ Object.defineProperty(exports, 'resolveItemExprsForExecution', {
5257
5265
  enumerable: true,
5258
5266
  get: function () {
5259
- return resolveItemValuesForExecution;
5267
+ return resolveItemExprsForExecution;
5260
5268
  }
5261
5269
  });
5262
- Object.defineProperty(exports, 'resolveItemValuesInUnknown', {
5270
+ Object.defineProperty(exports, 'resolveItemExprsInUnknown', {
5263
5271
  enumerable: true,
5264
5272
  get: function () {
5265
- return resolveItemValuesInUnknown;
5273
+ return resolveItemExprsInUnknown;
5266
5274
  }
5267
5275
  });
5268
5276
  Object.defineProperty(exports, 'tool', {
@@ -5271,4 +5279,4 @@ Object.defineProperty(exports, 'tool', {
5271
5279
  return tool;
5272
5280
  }
5273
5281
  });
5274
- //# sourceMappingURL=runtime-feFn8OmG.cjs.map
5282
+ //# sourceMappingURL=runtime-3YVDd2vY.cjs.map