@oomol-lab/open-flow 0.1.0-beta.61 → 0.1.0-beta.63

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 (55) hide show
  1. package/dist/browser/{createResourceDialog-D71fO68i.js → createResourceDialog-BAJXbzNH.js} +20 -7
  2. package/dist/browser/flow-authoring.js +8 -7
  3. package/dist/browser/flow-change-schema.d.ts +1 -0
  4. package/dist/browser/flow-change.d.ts +1 -0
  5. package/dist/browser/flow-change.js +8 -7
  6. package/dist/browser/{flowChanges-DSA0FxxN.js → flowChanges-DpZOQuJE.js} +3001 -2588
  7. package/dist/browser/{flowRunInputEditorStore-Dsxyfwae.js → flowRunInputEditorStore-B2Rw4VsT.js} +1 -1
  8. package/dist/browser/{flowWorkspace-0sUJ5JhQ.js → flowWorkspace-B7a5NNA_.js} +217 -83
  9. package/dist/browser/{icons-DVJvrj1H.js → icons-Db2Jb2iX.js} +2907 -2887
  10. package/dist/browser/preview.css +5 -6
  11. package/dist/browser/preview.js +889 -541
  12. package/dist/browser/{typeScriptSession-fXPMFGjW.js → typeScriptSession-D0bjYDeg.js} +1 -1
  13. package/dist/browser/ui.css +4 -5
  14. package/dist/browser/ui.js +2 -2
  15. package/dist/browser/{value-DL_poNiC.js → value-BADHeZ9I.js} +12 -1
  16. package/dist/browser/workbench-contract.d.ts +10 -0
  17. package/dist/browser/workbench.css +9 -26
  18. package/dist/browser/workbench.d.ts +5 -3
  19. package/dist/browser/workbench.js +272 -178
  20. package/dist/browser/{workbenchSelect-cr4-mKq3.js → workbenchSelect-C-jf6NIM.js} +1 -1
  21. package/dist/command/index.js +45 -44
  22. package/dist/common/authoring.d.ts +1 -1
  23. package/dist/common/authoringSchema.d.ts +1 -0
  24. package/dist/common/connector-action.d.ts +1 -0
  25. package/dist/common/connector-action.js +15 -12
  26. package/dist/common/control-api-conformance.js +1371 -1207
  27. package/dist/common/control-api-errors.d.ts +0 -4
  28. package/dist/common/control-api.d.ts +18 -11
  29. package/dist/common/control-api.js +2053 -2274
  30. package/dist/common/control-requests.d.ts +6 -0
  31. package/dist/common/control-requests.js +64 -33
  32. package/dist/common/decision.js +8 -7
  33. package/dist/common/flow-connectionUsage.d.ts +1 -0
  34. package/dist/common/flow-encoding.d.ts +1 -0
  35. package/dist/common/flow-encoding.js +202 -10
  36. package/dist/common/flow-semantics.js +64 -46
  37. package/dist/common/flow-workflowFile.d.ts +23 -0
  38. package/dist/common/integration-trigger.js +8 -7
  39. package/dist/common/liveDetails.d.ts +138 -0
  40. package/dist/common/localization.d.ts +1 -0
  41. package/dist/common/localization.js +12 -1
  42. package/dist/common/mcp.d.ts +55 -26
  43. package/dist/common/mcp.js +377 -245
  44. package/dist/common/openapi.js +8 -7
  45. package/dist/common/poll-trigger.js +8 -7
  46. package/dist/common/runtime-contract.js +1 -1
  47. package/dist/common/scheduler.d.ts +22 -2
  48. package/dist/common/scheduler.js +354 -83
  49. package/dist/common/trigger-config.d.ts +2 -0
  50. package/dist/common/webhook-trigger.js +8 -7
  51. package/dist/index.d.ts +2 -2
  52. package/package.json +1 -1
  53. package/skills/open-flow/SKILL.md +6 -3
  54. package/skills/open-flow/references/flow-authoring.md +48 -24
  55. package/dist/common/publicationResources.d.ts +0 -29
@@ -49805,7 +49805,7 @@ function datetime(args) {
49805
49805
  return new RegExp(`^${dateSource}T(?:${timeRegex})$`);
49806
49806
  }
49807
49807
  var anyString = /^[\s\S]{0,}$/;
49808
- var integer = /^-?\d+$/;
49808
+ var integer$1 = /^-?\d+$/;
49809
49809
  var number$1 = /^-?\d+(?:\.\d+)?$/;
49810
49810
  var boolean$1 = /^(?:true|false)$/i;
49811
49811
  var _null$2 = /^null$/i;
@@ -53292,7 +53292,7 @@ function stringifyKeyNames(bySchema, json, visited) {
53292
53292
  else if (typeof rest.const === "number") rest.const = String(rest.const);
53293
53293
  if (!numericType) return rest;
53294
53294
  rest.type = "string";
53295
- if (!values) rest.pattern = (types.includes("number") ? number$1 : integer).source;
53295
+ if (!values) rest.pattern = (types.includes("number") ? number$1 : integer$1).source;
53296
53296
  return rest;
53297
53297
  }
53298
53298
  /** Every record of one conversion, so the carriers are found in a single pass rather than once per record. */
@@ -53825,7 +53825,7 @@ var ZodString = /*@__PURE__*/ $constructor("ZodString", (inst, def) => {
53825
53825
  return this.check(/* @__PURE__ */ _isoDuration(ZodISODuration, params));
53826
53826
  }
53827
53827
  });
53828
- function string(params) {
53828
+ function string$1(params) {
53829
53829
  return /* @__PURE__ */ _string(ZodString, params);
53830
53830
  }
53831
53831
  var ZodStringFormat = /*@__PURE__*/ $constructor("ZodStringFormat", (inst, def) => {
@@ -54173,10 +54173,10 @@ var ZodRecord = /*@__PURE__*/ $constructor("ZodRecord", (inst, def) => {
54173
54173
  inst.keyType = def.keyType;
54174
54174
  inst.valueType = def.valueType;
54175
54175
  });
54176
- function record$2(keyType, valueType, params) {
54176
+ function record$3(keyType, valueType, params) {
54177
54177
  if (!valueType || !valueType._zod) return new ZodRecord({
54178
54178
  type: "record",
54179
- keyType: string(),
54179
+ keyType: string$1(),
54180
54180
  valueType: keyType,
54181
54181
  ...normalizeParams(valueType)
54182
54182
  });
@@ -54424,12 +54424,12 @@ function superRefine(fn, params) {
54424
54424
  function json$4(params) {
54425
54425
  const jsonSchema = lazy$1(() => {
54426
54426
  return union$1([
54427
- string(params),
54427
+ string$1(params),
54428
54428
  number(),
54429
54429
  boolean(),
54430
54430
  _null(),
54431
54431
  array(jsonSchema),
54432
- record$2(string(), jsonSchema)
54432
+ record$3(string$1(), jsonSchema)
54433
54433
  ]);
54434
54434
  });
54435
54435
  return jsonSchema;
@@ -54594,8 +54594,8 @@ function checkJsonDepth(value, depth = 0) {
54594
54594
  //#region src/flow/common/triggerScheduleSchema.ts
54595
54595
  var triggerScheduleSchema = array(union$1([object$1({
54596
54596
  type: literal("cron"),
54597
- expression: string(),
54598
- timezone: string()
54597
+ expression: string$1(),
54598
+ timezone: string$1()
54599
54599
  }), object$1({
54600
54600
  type: literal("every"),
54601
54601
  unit: _enum([
@@ -54619,7 +54619,7 @@ var webhookMethods = [
54619
54619
  function webhookSupportsBody(method) {
54620
54620
  return method !== "GET";
54621
54621
  }
54622
- var text = string();
54622
+ var text = string$1();
54623
54623
  var json$3 = json$4();
54624
54624
  var strings = array(text);
54625
54625
  var port = object$1({
@@ -54650,7 +54650,7 @@ var mapping = union$1([fixedInput, object$1({
54650
54650
  kind: literal("sources"),
54651
54651
  sources: array(source)
54652
54652
  })]);
54653
- var inputs = record$2(text, mapping);
54653
+ var inputs = record$3(text, mapping);
54654
54654
  var ports = {
54655
54655
  inputs: array(union$1([input, group$1])),
54656
54656
  outputs: array(union$1([port, group$1]))
@@ -54734,7 +54734,8 @@ var managedFields = object$1({
54734
54734
  object$1({
54735
54735
  kind: literal("connector"),
54736
54736
  action: text,
54737
- connectionId: text.optional()
54737
+ connectionId: text.optional(),
54738
+ outputMode: literal("value").optional()
54738
54739
  }),
54739
54740
  object$1({
54740
54741
  kind: literal("openapi"),
@@ -54782,7 +54783,7 @@ var managedFields = object$1({
54782
54783
  connectionId: text.optional(),
54783
54784
  inputDefinitions: array(input),
54784
54785
  messageHandle: text,
54785
- inputs: record$2(text, agentValue)
54786
+ inputs: record$3(text, agentValue)
54786
54787
  }).optional()
54787
54788
  })
54788
54789
  ])
@@ -54838,7 +54839,7 @@ var webhookOptions = object$1({
54838
54839
  allowedOrigins: strings.optional(),
54839
54840
  noResponseBody: never().optional(),
54840
54841
  responseData: text.optional(),
54841
- responseHeaders: record$2(text, text).optional(),
54842
+ responseHeaders: record$3(text, text).optional(),
54842
54843
  responseStatusCode: number().int().min(200).max(599).optional()
54843
54844
  });
54844
54845
  var webhook = {
@@ -54894,7 +54895,7 @@ var base = {
54894
54895
  var node = union$1([
54895
54896
  object$1({
54896
54897
  ...base,
54897
- inputs: record$2(text, never()),
54898
+ inputs: record$3(text, never()),
54898
54899
  kind: literal("condition"),
54899
54900
  ...condition
54900
54901
  }),
@@ -54943,7 +54944,7 @@ var node = union$1([
54943
54944
  ...trigger,
54944
54945
  kind: literal("poll"),
54945
54946
  connectionId: text.min(1).optional(),
54946
- config: record$2(text, fixedInput),
54947
+ config: record$3(text, fixedInput),
54947
54948
  definition: object$1({
54948
54949
  ...definition,
54949
54950
  type: literal("poll")
@@ -54954,7 +54955,7 @@ var node = union$1([
54954
54955
  ...trigger,
54955
54956
  kind: literal("integration"),
54956
54957
  connectionId: text.min(1).optional(),
54957
- config: record$2(text, fixedInput),
54958
+ config: record$3(text, fixedInput),
54958
54959
  definition: object$1({
54959
54960
  ...definition,
54960
54961
  type: literal("integration"),
@@ -54991,10 +54992,10 @@ var at = {
54991
54992
  target: never().optional()
54992
54993
  };
54993
54994
  var graph = object$1({
54994
- nodes: record$2(text, node),
54995
+ nodes: record$3(text, node),
54995
54996
  edges: array(edge).default([])
54996
54997
  });
54997
- var binding = object$1({
54998
+ var binding$1 = object$1({
54998
54999
  kind: literal("variable"),
54999
55000
  target: text
55000
55001
  });
@@ -55004,7 +55005,7 @@ var module$1 = object$1({
55004
55005
  source: text
55005
55006
  });
55006
55007
  var document$1 = preprocess(rejectRetiredDefinitions, object$1({
55007
- bindings: record$2(text, binding),
55008
+ bindings: record$3(text, binding$1),
55008
55009
  graph
55009
55010
  }));
55010
55011
  var revision = object$1({
@@ -55015,22 +55016,22 @@ var revision = object$1({
55015
55016
  literal(6)
55016
55017
  ]),
55017
55018
  document: document$1,
55018
- modules: record$2(text, module$1)
55019
+ modules: record$3(text, module$1)
55019
55020
  });
55020
55021
  revision.extend({
55021
55022
  kind: literal("open-flow-flow-revision"),
55022
55023
  version: literal(1)
55023
55024
  });
55024
55025
  function rejectRetiredDefinitions(value) {
55025
- const candidate = record$1(value);
55026
+ const candidate = record$2(value);
55026
55027
  if (candidate.tasks !== void 0 && (candidate.tasks === null || typeof candidate.tasks !== "object" || Array.isArray(candidate.tasks) || Object.keys(candidate.tasks).length > 0)) throw new TypeError("Independent Task definitions are no longer supported.");
55027
- if (Object.values(record$1(record$1(candidate.graph).nodes)).some((candidateNode) => Object.hasOwn(record$1(candidateNode), "taskId"))) throw new TypeError("Task references are no longer supported.");
55028
+ if (Object.values(record$2(record$2(candidate.graph).nodes)).some((candidateNode) => Object.hasOwn(record$2(candidateNode), "taskId"))) throw new TypeError("Task references are no longer supported.");
55028
55029
  const subflows = candidate.subflows;
55029
55030
  if (subflows !== void 0 && (subflows === null || typeof subflows !== "object" || Array.isArray(subflows) || Object.keys(subflows).length > 0)) throw new TypeError("Subflows are no longer supported.");
55030
- if (Object.values(record$1(record$1(candidate.graph).nodes)).some((candidateNode) => record$1(candidateNode).kind === "subflow")) throw new TypeError("Subflow nodes are no longer supported.");
55031
+ if (Object.values(record$2(record$2(candidate.graph).nodes)).some((candidateNode) => record$2(candidateNode).kind === "subflow")) throw new TypeError("Subflow nodes are no longer supported.");
55031
55032
  return value;
55032
55033
  }
55033
- function record$1(value) {
55034
+ function record$2(value) {
55034
55035
  return value != null && typeof value == "object" && !Array.isArray(value) ? value : {};
55035
55036
  }
55036
55037
  function decodeRevisionContent(value) {
@@ -55048,7 +55049,7 @@ var shapes = {
55048
55049
  },
55049
55050
  "binding.create": {
55050
55051
  bindingId: text,
55051
- binding
55052
+ binding: binding$1
55052
55053
  },
55053
55054
  "binding.delete": { bindingId: text },
55054
55055
  "binding.target.set": {
@@ -56172,10 +56173,10 @@ function compileEnumAndConst(context, enumList, constValue, schema) {
56172
56173
  }
56173
56174
  if (compiledEnum.length === 0) recordWarn(context, "all of elements from list is rejected by currently schema object", "enum");
56174
56175
  }
56175
- if (constValue && valid(schema, constValue) === ValidResult.Invalid) isNever = true;
56176
+ if (constValue !== void 0 && valid(schema, constValue) === ValidResult.Invalid) isNever = true;
56176
56177
  if (compiledEnum) {
56177
56178
  if (compiledEnum.length === 0) isNever = true;
56178
- else if (constValue) {
56179
+ else if (constValue !== void 0) {
56179
56180
  let foundEquals = false;
56180
56181
  for (const enumValue of compiledEnum) if (isDeepEquals(enumValue, constValue)) {
56181
56182
  foundEquals = true;
@@ -56188,7 +56189,7 @@ function compileEnumAndConst(context, enumList, constValue, schema) {
56188
56189
  const compiledSchema = {};
56189
56190
  if (schema.type) compiledSchema.type = schema.type;
56190
56191
  if (compiledEnum) compiledSchema.enum = compiledEnum;
56191
- if (constValue) compiledSchema.const = wrapCompiledValue(deepCopy(constValue));
56192
+ if (constValue !== void 0) compiledSchema.const = wrapCompiledValue(deepCopy(constValue));
56192
56193
  return wrapCompiledSchema(kind, compiledSchema, context.delegate, context.path);
56193
56194
  }
56194
56195
  //#endregion
@@ -56583,7 +56584,7 @@ function compileSchema(context, schema) {
56583
56584
  let targetSchema = schema;
56584
56585
  let shouldHandleEnumAndConst = false;
56585
56586
  const { enum: enumList, const: constValue } = schema;
56586
- if (enumList || constValue) {
56587
+ if (enumList || constValue !== void 0) {
56587
56588
  const { enum: _0, const: _1, ...rest } = schema;
56588
56589
  targetSchema = rest;
56589
56590
  shouldHandleEnumAndConst = true;
@@ -57173,7 +57174,7 @@ function schemaEqualsChecker(extendsContext) {
57173
57174
  }
57174
57175
  function isValueEquals(value1, value2) {
57175
57176
  if (value1 === value2) return true;
57176
- if (value1 === null) return false;
57177
+ if (value1 === null || value2 === null) return false;
57177
57178
  if (typeof value1 !== "object") return false;
57178
57179
  if (typeof value1 !== typeof value2) return false;
57179
57180
  if (isCompiledSchema(value1) && isCompiledSchema(value2)) return isCompiledSchemaEquals(value1, value2);
@@ -57739,7 +57740,7 @@ function findMismatchPath(source, target) {
57739
57740
  if ((sourceSchema.maxProperties ?? Number.POSITIVE_INFINITY) > (targetSchema.maxProperties ?? Number.POSITIVE_INFINITY)) return [...targetPath, "maxProperties"];
57740
57741
  break;
57741
57742
  }
57742
- case CompiledKind.EnumOrConst: return [...targetPath, targetSchema.const == null ? "enum" : "const"];
57743
+ case CompiledKind.EnumOrConst: return [...targetPath, targetSchema.const === void 0 ? "enum" : "const"];
57743
57744
  }
57744
57745
  return targetPath;
57745
57746
  }
@@ -58660,18 +58661,13 @@ function mappingAvailable(graph, target, mapping, analysis) {
58660
58661
  if (target != null && mapping.sources.some((source) => source.kind == "node" && isResolutionNode(graph.nodes[source.nodeId]) && !analysis.resolutionOutputs.get(target)?.has(resolutionOutputKey(source.nodeId, source.output)))) return false;
58661
58662
  const sources = mapping.sources.map((source) => sourcePaths(graph, paths, source));
58662
58663
  const targetPaths = target == null ? [{}] : paths.get(target) ?? [];
58663
- for (const [index, routes] of sources.entries()) for (const [offset, other] of sources.slice(index + 1).entries()) {
58664
- const leftSource = mapping.sources[index];
58665
- const rightSource = mapping.sources[index + offset + 1];
58666
- if (target != null && leftSource.kind == "node" && rightSource.kind == "node" && leftSource.nodeId != rightSource.nodeId && !ancestors.get(leftSource.nodeId)?.has(rightSource.nodeId) && !ancestors.get(rightSource.nodeId)?.has(leftSource.nodeId)) continue;
58667
- for (const left of routes) for (const targetRoute of targetPaths) {
58668
- if (!routesCompatible(left, targetRoute)) continue;
58669
- const path = {
58670
- ...targetRoute,
58671
- ...left
58672
- };
58673
- if (other.some((right) => routesCompatible(right, path))) return false;
58674
- }
58664
+ for (const [index, routes] of sources.entries()) for (const other of sources.slice(index + 1)) for (const left of routes) for (const targetRoute of targetPaths) {
58665
+ if (!routesCompatible(left, targetRoute)) continue;
58666
+ const path = {
58667
+ ...targetRoute,
58668
+ ...left
58669
+ };
58670
+ if (other.some((right) => routesCompatible(right, path))) return false;
58675
58671
  }
58676
58672
  return true;
58677
58673
  }
@@ -59236,23 +59232,23 @@ var schema$1 = lazy$1(() => union$1([boolean(), strictObject({
59236
59232
  if: schema$1.optional(),
59237
59233
  then: schema$1.optional(),
59238
59234
  else: schema$1.optional(),
59239
- $ref: string().optional(),
59235
+ $ref: string$1().optional(),
59240
59236
  $schema: _enum([
59241
59237
  "http://json-schema.org/draft-07/schema#",
59242
59238
  "https://json-schema.org/draft-07/schema",
59243
59239
  "https://json-schema.org/draft/2019-09/schema",
59244
59240
  "https://json-schema.org/draft/2020-12/schema"
59245
59241
  ]).optional(),
59246
- $defs: record$2(string(), schema$1).optional(),
59247
- definitions: record$2(string(), schema$1).optional(),
59248
- pattern: string().refine((value) => {
59242
+ $defs: record$3(string$1(), schema$1).optional(),
59243
+ definitions: record$3(string$1(), schema$1).optional(),
59244
+ pattern: string$1().refine((value) => {
59249
59245
  try {
59250
59246
  return new RegExp(value, "u").source.length > 0;
59251
59247
  } catch {
59252
59248
  return false;
59253
59249
  }
59254
59250
  }, "Invalid regular expression.").optional(),
59255
- format: string().refine((value) => Object.hasOwn(format$1, value), "Unsupported string format.").optional(),
59251
+ format: string$1().refine((value) => Object.hasOwn(format$1, value), "Unsupported string format.").optional(),
59256
59252
  multipleOf: number().positive().optional(),
59257
59253
  uniqueItems: boolean().optional(),
59258
59254
  contains: schema$1.optional(),
@@ -59261,31 +59257,31 @@ var schema$1 = lazy$1(() => union$1([boolean(), strictObject({
59261
59257
  minProperties: number().int().nonnegative().optional(),
59262
59258
  maxProperties: number().int().nonnegative().optional(),
59263
59259
  propertyNames: schema$1.optional(),
59264
- patternProperties: record$2(string().refine((value) => {
59260
+ patternProperties: record$3(string$1().refine((value) => {
59265
59261
  try {
59266
59262
  return new RegExp(value, "u").source.length > 0;
59267
59263
  } catch {
59268
59264
  return false;
59269
59265
  }
59270
59266
  }, "Invalid regular expression."), schema$1).optional(),
59271
- dependentRequired: record$2(string(), array(string())).optional(),
59272
- dependentSchemas: record$2(string(), schema$1).optional(),
59273
- dependencies: record$2(string(), union$1([schema$1, array(string())])).optional(),
59267
+ dependentRequired: record$3(string$1(), array(string$1())).optional(),
59268
+ dependentSchemas: record$3(string$1(), schema$1).optional(),
59269
+ dependencies: record$3(string$1(), union$1([schema$1, array(string$1())])).optional(),
59274
59270
  prefixItems: array(schema$1).optional(),
59275
59271
  additionalItems: schema$1.optional(),
59276
59272
  unevaluatedItems: schema$1.optional(),
59277
59273
  unevaluatedProperties: schema$1.optional(),
59278
- description: string().optional(),
59279
- title: string().optional(),
59274
+ description: string$1().optional(),
59275
+ title: string$1().optional(),
59280
59276
  default: json$4().optional(),
59281
59277
  examples: array(json$4()).optional(),
59282
59278
  readOnly: boolean().optional(),
59283
59279
  writeOnly: boolean().optional(),
59284
59280
  deprecated: boolean().optional(),
59285
- $comment: string().optional(),
59281
+ $comment: string$1().optional(),
59286
59282
  enum: array(json$4()).min(1).optional(),
59287
- properties: record$2(string(), schema$1).optional(),
59288
- required: array(string()).optional(),
59283
+ properties: record$3(string$1(), schema$1).optional(),
59284
+ required: array(string$1()).optional(),
59289
59285
  additionalProperties: schema$1.optional(),
59290
59286
  items: union$1([schema$1, array(schema$1)]).optional(),
59291
59287
  minItems: number().int().nonnegative().optional(),
@@ -59297,6 +59293,13 @@ var schema$1 = lazy$1(() => union$1([boolean(), strictObject({
59297
59293
  exclusiveMinimum: number().optional(),
59298
59294
  exclusiveMaximum: number().optional()
59299
59295
  }).transform(({ title: _title, default: _default, examples: _examples, readOnly: _readOnly, writeOnly: _writeOnly, deprecated: _deprecated, $comment: _comment, ...value }) => value)]));
59296
+ strictObject({
59297
+ kind: literal("open-flow-workflow"),
59298
+ version: literal(1),
59299
+ name: string$1().optional(),
59300
+ content: unknown(),
59301
+ presentation: record$3(string$1(), json$4()).optional()
59302
+ });
59300
59303
  new TextEncoder();
59301
59304
  //#endregion
59302
59305
  //#region ../../node_modules/.bun/@babel+parser@8.0.4/node_modules/@babel/parser/lib/index.js
@@ -60317,18 +60320,18 @@ function connectorAccessReferences(document) {
60317
60320
  //#region \0virtual:oomol-provider-icons
60318
60321
  var spriteCatalog = {
60319
60322
  "iconSprite": {
60320
- "version": "8ea143c870865b9d01ef4a921f01e711fa37e575648a97baf41bf53705f72f81",
60323
+ "version": "fc73797317d203337fb05a8ccc50220a78ead444f276bc60c80412f87eef9a80",
60321
60324
  "pixelRatio": 2,
60322
60325
  "iconSize": 48,
60323
60326
  "bleed": 1,
60324
60327
  "width": 2050,
60325
60328
  "height": 2e3,
60326
- "lightUrl": "https://static.oomol.com/logo/provider-sprites/8ea143c870865b9d01ef4a921f01e711fa37e575648a97baf41bf53705f72f81/light.png",
60327
- "darkUrl": "https://static.oomol.com/logo/provider-sprites/8ea143c870865b9d01ef4a921f01e711fa37e575648a97baf41bf53705f72f81/dark.png"
60329
+ "lightUrl": "https://static.oomol.com/logo/provider-sprites/fc73797317d203337fb05a8ccc50220a78ead444f276bc60c80412f87eef9a80/light.png",
60330
+ "darkUrl": "https://static.oomol.com/logo/provider-sprites/fc73797317d203337fb05a8ccc50220a78ead444f276bc60c80412f87eef9a80/dark.png"
60328
60331
  },
60329
60332
  "positions": {
60330
60333
  "solarwinds_service_desk": {
60331
- "x": 51,
60334
+ "x": 1,
60332
60335
  "y": 1601
60333
60336
  },
60334
60337
  "finlight": {
@@ -60340,7 +60343,7 @@ var spriteCatalog = {
60340
60343
  "y": 851
60341
60344
  },
60342
60345
  "viral_loops": {
60343
- "x": 1451,
60346
+ "x": 1401,
60344
60347
  "y": 1801
60345
60348
  },
60346
60349
  "greip": {
@@ -60352,11 +60355,11 @@ var spriteCatalog = {
60352
60355
  "y": 51
60353
60356
  },
60354
60357
  "unirateapi": {
60355
- "x": 1801,
60358
+ "x": 1751,
60356
60359
  "y": 1751
60357
60360
  },
60358
60361
  "thesportsdb": {
60359
- "x": 651,
60362
+ "x": 601,
60360
60363
  "y": 1701
60361
60364
  },
60362
60365
  "17track": {
@@ -60592,7 +60595,7 @@ var spriteCatalog = {
60592
60595
  "y": 51
60593
60596
  },
60594
60597
  "voicemaker": {
60595
- "x": 1651,
60598
+ "x": 1601,
60596
60599
  "y": 1801
60597
60600
  },
60598
60601
  "aircall": {
@@ -60852,7 +60855,7 @@ var spriteCatalog = {
60852
60855
  "y": 551
60853
60856
  },
60854
60857
  "xydc_mcp": {
60855
- "x": 1251,
60858
+ "x": 1201,
60856
60859
  "y": 1901
60857
60860
  },
60858
60861
  "sellersprite_mcp": {
@@ -60860,11 +60863,11 @@ var spriteCatalog = {
60860
60863
  "y": 1501
60861
60864
  },
60862
60865
  "slickdeals": {
60863
- "x": 1301,
60866
+ "x": 1251,
60864
60867
  "y": 1551
60865
60868
  },
60866
60869
  "sif": {
60867
- "x": 351,
60870
+ "x": 301,
60868
60871
  "y": 1551
60869
60872
  },
60870
60873
  "ixspy": {
@@ -60872,11 +60875,11 @@ var spriteCatalog = {
60872
60875
  "y": 851
60873
60876
  },
60874
60877
  "sorftime": {
60875
- "x": 201,
60878
+ "x": 151,
60876
60879
  "y": 1601
60877
60880
  },
60878
60881
  "sorftime_mcp": {
60879
- "x": 251,
60882
+ "x": 201,
60880
60883
  "y": 1601
60881
60884
  },
60882
60885
  "sage_hr": {
@@ -60964,11 +60967,11 @@ var spriteCatalog = {
60964
60967
  "y": 501
60965
60968
  },
60966
60969
  "thehive": {
60967
- "x": 501,
60970
+ "x": 451,
60968
60971
  "y": 1701
60969
60972
  },
60970
60973
  "thehive5": {
60971
- "x": 551,
60974
+ "x": 501,
60972
60975
  "y": 1701
60973
60976
  },
60974
60977
  "eraser": {
@@ -61232,11 +61235,11 @@ var spriteCatalog = {
61232
61235
  "y": 901
61233
61236
  },
61234
61237
  "waitwhile": {
61235
- "x": 2001,
61238
+ "x": 1951,
61236
61239
  "y": 1801
61237
61240
  },
61238
61241
  "workpath": {
61239
- "x": 551,
61242
+ "x": 501,
61240
61243
  "y": 1901
61241
61244
  },
61242
61245
  "apiverve": {
@@ -61332,15 +61335,15 @@ var spriteCatalog = {
61332
61335
  "y": 1501
61333
61336
  },
61334
61337
  "smartsheet": {
61335
- "x": 1601,
61338
+ "x": 1551,
61336
61339
  "y": 1551
61337
61340
  },
61338
61341
  "smartrecruiters": {
61339
- "x": 1551,
61342
+ "x": 1501,
61340
61343
  "y": 1551
61341
61344
  },
61342
61345
  "smartlead_ai": {
61343
- "x": 1501,
61346
+ "x": 1451,
61344
61347
  "y": 1551
61345
61348
  },
61346
61349
  "shipengine": {
@@ -61352,11 +61355,11 @@ var spriteCatalog = {
61352
61355
  "y": 1151
61353
61356
  },
61354
61357
  "shotstack": {
61355
- "x": 301,
61358
+ "x": 251,
61356
61359
  "y": 1551
61357
61360
  },
61358
61361
  "skyvern": {
61359
- "x": 1101,
61362
+ "x": 1051,
61360
61363
  "y": 1551
61361
61364
  },
61362
61365
  "shopify": {
@@ -61367,18 +61370,14 @@ var spriteCatalog = {
61367
61370
  "x": 1851,
61368
61371
  "y": 1501
61369
61372
  },
61370
- "shopify_admin": {
61373
+ "shopify_partner": {
61371
61374
  "x": 1951,
61372
61375
  "y": 1501
61373
61376
  },
61374
- "shopify_partner": {
61377
+ "shopify_storefront": {
61375
61378
  "x": 2001,
61376
61379
  "y": 1501
61377
61380
  },
61378
- "shopify_storefront": {
61379
- "x": 1,
61380
- "y": 1551
61381
- },
61382
61381
  "shippo": {
61383
61382
  "x": 1751,
61384
61383
  "y": 1501
@@ -61448,7 +61447,7 @@ var spriteCatalog = {
61448
61447
  "y": 1051
61449
61448
  },
61450
61449
  "wbiztool": {
61451
- "x": 501,
61450
+ "x": 451,
61452
61451
  "y": 1851
61453
61452
  },
61454
61453
  "calendarific": {
@@ -61464,7 +61463,7 @@ var spriteCatalog = {
61464
61463
  "y": 551
61465
61464
  },
61466
61465
  "zyhub": {
61467
- "x": 801,
61466
+ "x": 751,
61468
61467
  "y": 1951
61469
61468
  },
61470
61469
  "benchmarkone": {
@@ -61520,7 +61519,7 @@ var spriteCatalog = {
61520
61519
  "y": 351
61521
61520
  },
61522
61521
  "surveymethods": {
61523
- "x": 501,
61522
+ "x": 451,
61524
61523
  "y": 1651
61525
61524
  },
61526
61525
  "countly": {
@@ -61548,8 +61547,8 @@ var spriteCatalog = {
61548
61547
  "y": 351
61549
61548
  },
61550
61549
  "waiverfile": {
61551
- "x": 1,
61552
- "y": 1851
61550
+ "x": 2001,
61551
+ "y": 1801
61553
61552
  },
61554
61553
  "northbeam": {
61555
61554
  "x": 551,
@@ -61708,7 +61707,7 @@ var spriteCatalog = {
61708
61707
  "y": 1151
61709
61708
  },
61710
61709
  "wordpress": {
61711
- "x": 251,
61710
+ "x": 201,
61712
61711
  "y": 1901
61713
61712
  },
61714
61713
  "onlyoffice_docspace": {
@@ -61792,7 +61791,7 @@ var spriteCatalog = {
61792
61791
  "y": 251
61793
61792
  },
61794
61793
  "sslmate_cert_spotter_api": {
61795
- "x": 701,
61794
+ "x": 651,
61796
61795
  "y": 1601
61797
61796
  },
61798
61797
  "issue_badge": {
@@ -62908,7 +62907,7 @@ var spriteCatalog = {
62908
62907
  "y": 601
62909
62908
  },
62910
62909
  "square": {
62911
- "x": 651,
62910
+ "x": 601,
62912
62911
  "y": 1601
62913
62912
  },
62914
62913
  "moonclerk": {
@@ -63152,7 +63151,7 @@ var spriteCatalog = {
63152
63151
  "y": 651
63153
63152
  },
63154
63153
  "wandb": {
63155
- "x": 251,
63154
+ "x": 201,
63156
63155
  "y": 1851
63157
63156
  },
63158
63157
  "gitee": {
@@ -63252,7 +63251,7 @@ var spriteCatalog = {
63252
63251
  "y": 701
63253
63252
  },
63254
63253
  "youtube": {
63255
- "x": 1601,
63254
+ "x": 1551,
63256
63255
  "y": 1901
63257
63256
  },
63258
63257
  "groqcloud": {
@@ -63264,11 +63263,11 @@ var spriteCatalog = {
63264
63263
  "y": 701
63265
63264
  },
63266
63265
  "x_ai": {
63267
- "x": 1001,
63266
+ "x": 951,
63268
63267
  "y": 1901
63269
63268
  },
63270
63269
  "xata": {
63271
- "x": 1051,
63270
+ "x": 1001,
63272
63271
  "y": 1901
63273
63272
  },
63274
63273
  "quickbooks": {
@@ -63276,15 +63275,15 @@ var spriteCatalog = {
63276
63275
  "y": 1351
63277
63276
  },
63278
63277
  "xero": {
63279
- "x": 1101,
63278
+ "x": 1051,
63280
63279
  "y": 1901
63281
63280
  },
63282
63281
  "xingpan": {
63283
- "x": 1201,
63282
+ "x": 1151,
63284
63283
  "y": 1901
63285
63284
  },
63286
63285
  "xiaohongshu_store": {
63287
- "x": 1151,
63286
+ "x": 1101,
63288
63287
  "y": 1901
63289
63288
  },
63290
63289
  "oura": {
@@ -63480,7 +63479,7 @@ var spriteCatalog = {
63480
63479
  "y": 801
63481
63480
  },
63482
63481
  "tomba": {
63483
- "x": 2001,
63482
+ "x": 1951,
63484
63483
  "y": 1701
63485
63484
  },
63486
63485
  "hubspot": {
@@ -63616,7 +63615,7 @@ var spriteCatalog = {
63616
63615
  "y": 851
63617
63616
  },
63618
63617
  "typesafe_ai": {
63619
- "x": 1501,
63618
+ "x": 1451,
63620
63619
  "y": 1751
63621
63620
  },
63622
63621
  "jira": {
@@ -63644,7 +63643,7 @@ var spriteCatalog = {
63644
63643
  "y": 851
63645
63644
  },
63646
63645
  "zipcodebase": {
63647
- "x": 501,
63646
+ "x": 451,
63648
63647
  "y": 1951
63649
63648
  },
63650
63649
  "ipqualityscore": {
@@ -64352,7 +64351,7 @@ var spriteCatalog = {
64352
64351
  "y": 1051
64353
64352
  },
64354
64353
  "supermemory": {
64355
- "x": 251,
64354
+ "x": 201,
64356
64355
  "y": 1651
64357
64356
  },
64358
64357
  "memberstack": {
@@ -64552,11 +64551,11 @@ var spriteCatalog = {
64552
64551
  "y": 1151
64553
64552
  },
64554
64553
  "signwell": {
64555
- "x": 551,
64554
+ "x": 501,
64556
64555
  "y": 1551
64557
64556
  },
64558
64557
  "signaturely": {
64559
- "x": 451,
64558
+ "x": 401,
64560
64559
  "y": 1551
64561
64560
  },
64562
64561
  "opencage": {
@@ -64832,7 +64831,7 @@ var spriteCatalog = {
64832
64831
  "y": 1351
64833
64832
  },
64834
64833
  "signalbase": {
64835
- "x": 401,
64834
+ "x": 351,
64836
64835
  "y": 1551
64837
64836
  },
64838
64837
  "pingbell": {
@@ -64904,7 +64903,7 @@ var spriteCatalog = {
64904
64903
  "y": 1301
64905
64904
  },
64906
64905
  "umami": {
64907
- "x": 1601,
64906
+ "x": 1551,
64908
64907
  "y": 1751
64909
64908
  },
64910
64909
  "pdf_api_io": {
@@ -65300,7 +65299,7 @@ var spriteCatalog = {
65300
65299
  "y": 1451
65301
65300
  },
65302
65301
  "spider": {
65303
- "x": 451,
65302
+ "x": 401,
65304
65303
  "y": 1601
65305
65304
  },
65306
65305
  "scraperapi": {
@@ -65324,8 +65323,8 @@ var spriteCatalog = {
65324
65323
  "y": 1451
65325
65324
  },
65326
65325
  "zenscrape": {
65327
- "x": 1,
65328
- "y": 1951
65326
+ "x": 2001,
65327
+ "y": 1901
65329
65328
  },
65330
65329
  "search_api": {
65331
65330
  "x": 51,
@@ -65344,11 +65343,11 @@ var spriteCatalog = {
65344
65343
  "y": 1451
65345
65344
  },
65346
65345
  "the_colony": {
65347
- "x": 251,
65346
+ "x": 201,
65348
65347
  "y": 1701
65349
65348
  },
65350
65349
  "the_official_board": {
65351
- "x": 401,
65350
+ "x": 351,
65352
65351
  "y": 1701
65353
65352
  },
65354
65353
  "semantic_scholar": {
@@ -65364,7 +65363,7 @@ var spriteCatalog = {
65364
65363
  "y": 1501
65365
65364
  },
65366
65365
  "spyfu": {
65367
- "x": 601,
65366
+ "x": 551,
65368
65367
  "y": 1601
65369
65368
  },
65370
65369
  "serpdog": {
@@ -65388,11 +65387,11 @@ var spriteCatalog = {
65388
65387
  "y": 1501
65389
65388
  },
65390
65389
  "shortpixel": {
65391
- "x": 251,
65390
+ "x": 201,
65392
65391
  "y": 1551
65393
65392
  },
65394
65393
  "signpath": {
65395
- "x": 501,
65394
+ "x": 451,
65396
65395
  "y": 1551
65397
65396
  },
65398
65397
  "sendbird": {
@@ -65448,16 +65447,16 @@ var spriteCatalog = {
65448
65447
  "y": 1501
65449
65448
  },
65450
65449
  "sitespeakai": {
65451
- "x": 951,
65450
+ "x": 901,
65452
65451
  "y": 1551
65453
65452
  },
65454
65453
  "speak_ai": {
65455
- "x": 301,
65454
+ "x": 251,
65456
65455
  "y": 1601
65457
65456
  },
65458
65457
  "softr": {
65459
- "x": 1,
65460
- "y": 1601
65458
+ "x": 2001,
65459
+ "y": 1551
65461
65460
  },
65462
65461
  "planly": {
65463
65462
  "x": 701,
@@ -65484,11 +65483,11 @@ var spriteCatalog = {
65484
65483
  "y": 1451
65485
65484
  },
65486
65485
  "smartsuite": {
65487
- "x": 1651,
65486
+ "x": 1601,
65488
65487
  "y": 1551
65489
65488
  },
65490
65489
  "sportsdata": {
65491
- "x": 551,
65490
+ "x": 501,
65492
65491
  "y": 1601
65493
65492
  },
65494
65493
  "ringg_ai": {
@@ -65504,7 +65503,7 @@ var spriteCatalog = {
65504
65503
  "y": 1401
65505
65504
  },
65506
65505
  "workiz": {
65507
- "x": 451,
65506
+ "x": 401,
65508
65507
  "y": 1901
65509
65508
  },
65510
65509
  "salesflare": {
@@ -65528,87 +65527,87 @@ var spriteCatalog = {
65528
65527
  "y": 1501
65529
65528
  },
65530
65529
  "supportbee": {
65531
- "x": 351,
65530
+ "x": 301,
65532
65531
  "y": 1651
65533
65532
  },
65534
65533
  "similarweb_digitalrank_api": {
65535
- "x": 601,
65534
+ "x": 551,
65536
65535
  "y": 1551
65537
65536
  },
65538
65537
  "simla": {
65539
- "x": 651,
65538
+ "x": 601,
65540
65539
  "y": 1551
65541
65540
  },
65542
65541
  "simplybook_me": {
65543
- "x": 901,
65542
+ "x": 851,
65544
65543
  "y": 1551
65545
65544
  },
65546
65545
  "short_io": {
65547
- "x": 51,
65546
+ "x": 1,
65548
65547
  "y": 1551
65549
65548
  },
65550
65549
  "shorten_rest": {
65551
- "x": 201,
65550
+ "x": 151,
65552
65551
  "y": 1551
65553
65552
  },
65554
65553
  "shortcut": {
65555
- "x": 151,
65554
+ "x": 101,
65556
65555
  "y": 1551
65557
65556
  },
65558
65557
  "short_menu": {
65559
- "x": 101,
65558
+ "x": 51,
65560
65559
  "y": 1551
65561
65560
  },
65562
65561
  "simple_analytics": {
65563
- "x": 701,
65562
+ "x": 651,
65564
65563
  "y": 1551
65565
65564
  },
65566
65565
  "simplelocalize": {
65567
- "x": 751,
65566
+ "x": 701,
65568
65567
  "y": 1551
65569
65568
  },
65570
65569
  "simplesat": {
65571
- "x": 801,
65570
+ "x": 751,
65572
65571
  "y": 1551
65573
65572
  },
65574
65573
  "slack": {
65575
- "x": 1201,
65574
+ "x": 1151,
65576
65575
  "y": 1551
65577
65576
  },
65578
65577
  "slackbot": {
65579
- "x": 1251,
65578
+ "x": 1201,
65580
65579
  "y": 1551
65581
65580
  },
65582
65581
  "slab": {
65583
- "x": 1151,
65582
+ "x": 1101,
65584
65583
  "y": 1551
65585
65584
  },
65586
65585
  "slicktext": {
65587
- "x": 1351,
65586
+ "x": 1301,
65588
65587
  "y": 1551
65589
65588
  },
65590
65589
  "sling": {
65591
- "x": 1401,
65590
+ "x": 1351,
65592
65591
  "y": 1551
65593
65592
  },
65594
65593
  "splunk_http_event_collector": {
65595
- "x": 501,
65594
+ "x": 451,
65596
65595
  "y": 1601
65597
65596
  },
65598
65597
  "snipe_it": {
65599
- "x": 1901,
65598
+ "x": 1851,
65600
65599
  "y": 1551
65601
65600
  },
65602
65601
  "snipcart": {
65603
- "x": 1851,
65602
+ "x": 1801,
65604
65603
  "y": 1551
65605
65604
  },
65606
65605
  "snyk": {
65607
- "x": 1951,
65606
+ "x": 1901,
65608
65607
  "y": 1551
65609
65608
  },
65610
65609
  "slite": {
65611
- "x": 1451,
65610
+ "x": 1401,
65612
65611
  "y": 1551
65613
65612
  },
65614
65613
  "picky_assist": {
@@ -65616,195 +65615,195 @@ var spriteCatalog = {
65616
65615
  "y": 1251
65617
65616
  },
65618
65617
  "sms_alert": {
65619
- "x": 1701,
65618
+ "x": 1651,
65620
65619
  "y": 1551
65621
65620
  },
65622
65621
  "smtp2go": {
65623
- "x": 1751,
65622
+ "x": 1701,
65624
65623
  "y": 1551
65625
65624
  },
65626
65625
  "smugmug": {
65627
- "x": 1801,
65626
+ "x": 1751,
65628
65627
  "y": 1551
65629
65628
  },
65630
65629
  "solcast": {
65631
- "x": 101,
65630
+ "x": 51,
65632
65631
  "y": 1601
65633
65632
  },
65634
65633
  "sonarcloud": {
65635
- "x": 151,
65634
+ "x": 101,
65636
65635
  "y": 1601
65637
65636
  },
65638
65637
  "social_fetch": {
65639
- "x": 2001,
65638
+ "x": 1951,
65640
65639
  "y": 1551
65641
65640
  },
65642
65641
  "stannp": {
65643
- "x": 901,
65642
+ "x": 851,
65644
65643
  "y": 1601
65645
65644
  },
65646
65645
  "stealthgpt": {
65647
- "x": 1351,
65646
+ "x": 1301,
65648
65647
  "y": 1601
65649
65648
  },
65650
65649
  "speechmatics": {
65651
- "x": 351,
65650
+ "x": 301,
65652
65651
  "y": 1601
65653
65652
  },
65654
65653
  "statista": {
65655
- "x": 1051,
65654
+ "x": 1001,
65656
65655
  "y": 1601
65657
65656
  },
65658
65657
  "statamic": {
65659
- "x": 1001,
65658
+ "x": 951,
65660
65659
  "y": 1601
65661
65660
  },
65662
65661
  "statsig": {
65663
- "x": 1101,
65662
+ "x": 1051,
65664
65663
  "y": 1601
65665
65664
  },
65666
65665
  "statuscake": {
65667
- "x": 1151,
65666
+ "x": 1101,
65668
65667
  "y": 1601
65669
65668
  },
65670
65669
  "statuspage": {
65671
- "x": 1201,
65670
+ "x": 1151,
65672
65671
  "y": 1601
65673
65672
  },
65674
65673
  "statuspal": {
65675
- "x": 1251,
65674
+ "x": 1201,
65676
65675
  "y": 1601
65677
65676
  },
65678
65677
  "stay_ai": {
65679
- "x": 1301,
65678
+ "x": 1251,
65680
65679
  "y": 1601
65681
65680
  },
65682
65681
  "store_leads": {
65683
- "x": 1401,
65682
+ "x": 1351,
65684
65683
  "y": 1601
65685
65684
  },
65686
65685
  "storecensus": {
65687
- "x": 1451,
65686
+ "x": 1401,
65688
65687
  "y": 1601
65689
65688
  },
65690
65689
  "stormboard": {
65691
- "x": 1501,
65690
+ "x": 1451,
65692
65691
  "y": 1601
65693
65692
  },
65694
65693
  "storyblok": {
65695
- "x": 1601,
65694
+ "x": 1551,
65696
65695
  "y": 1601
65697
65696
  },
65698
65697
  "stripe": {
65699
- "x": 1851,
65698
+ "x": 1801,
65700
65699
  "y": 1601
65701
65700
  },
65702
65701
  "streak": {
65703
- "x": 1701,
65702
+ "x": 1651,
65704
65703
  "y": 1601
65705
65704
  },
65706
65705
  "stabilityai": {
65707
- "x": 751,
65706
+ "x": 701,
65708
65707
  "y": 1601
65709
65708
  },
65710
65709
  "subvisory": {
65711
- "x": 1901,
65710
+ "x": 1851,
65712
65711
  "y": 1601
65713
65712
  },
65714
65713
  "supervisely": {
65715
- "x": 301,
65714
+ "x": 251,
65716
65715
  "y": 1651
65717
65716
  },
65718
65717
  "starton": {
65719
- "x": 951,
65718
+ "x": 901,
65720
65719
  "y": 1601
65721
65720
  },
65722
65721
  "stormglass_io": {
65723
- "x": 1551,
65722
+ "x": 1501,
65724
65723
  "y": 1601
65725
65724
  },
65726
65725
  "stream_estate": {
65727
- "x": 1751,
65726
+ "x": 1701,
65728
65727
  "y": 1601
65729
65728
  },
65730
65729
  "streamtime": {
65731
- "x": 1801,
65730
+ "x": 1751,
65732
65731
  "y": 1601
65733
65732
  },
65734
65733
  "sunoapi": {
65735
- "x": 2001,
65734
+ "x": 1951,
65736
65735
  "y": 1601
65737
65736
  },
65738
65737
  "strava": {
65739
- "x": 1651,
65738
+ "x": 1601,
65740
65739
  "y": 1601
65741
65740
  },
65742
65741
  "supabase": {
65743
- "x": 51,
65742
+ "x": 1,
65744
65743
  "y": 1651
65745
65744
  },
65746
65745
  "surecontact": {
65747
- "x": 401,
65746
+ "x": 351,
65748
65747
  "y": 1651
65749
65748
  },
65750
65749
  "supadata": {
65751
- "x": 101,
65750
+ "x": 51,
65752
65751
  "y": 1651
65753
65752
  },
65754
65753
  "sumup": {
65755
- "x": 1951,
65754
+ "x": 1901,
65756
65755
  "y": 1601
65757
65756
  },
65758
65757
  "superchat": {
65759
- "x": 201,
65758
+ "x": 151,
65760
65759
  "y": 1651
65761
65760
  },
65762
65761
  "super_saas": {
65763
- "x": 151,
65762
+ "x": 101,
65764
65763
  "y": 1651
65765
65764
  },
65766
65765
  "sunsama_mcp": {
65767
- "x": 1,
65768
- "y": 1651
65766
+ "x": 2001,
65767
+ "y": 1601
65769
65768
  },
65770
65769
  "skio": {
65771
- "x": 1001,
65770
+ "x": 951,
65772
65771
  "y": 1551
65773
65772
  },
65774
65773
  "skyfire": {
65775
- "x": 1051,
65774
+ "x": 1001,
65776
65775
  "y": 1551
65777
65776
  },
65778
65777
  "stack_ai": {
65779
- "x": 801,
65778
+ "x": 751,
65780
65779
  "y": 1601
65781
65780
  },
65782
65781
  "stack_overflow_for_teams": {
65783
- "x": 851,
65782
+ "x": 801,
65784
65783
  "y": 1601
65785
65784
  },
65786
65785
  "svix": {
65787
- "x": 551,
65786
+ "x": 501,
65788
65787
  "y": 1651
65789
65788
  },
65790
65789
  "systeme_io": {
65791
- "x": 651,
65790
+ "x": 601,
65792
65791
  "y": 1651
65793
65792
  },
65794
65793
  "swaggerhub": {
65795
- "x": 601,
65794
+ "x": 551,
65796
65795
  "y": 1651
65797
65796
  },
65798
65797
  "taggun": {
65799
- "x": 751,
65798
+ "x": 701,
65800
65799
  "y": 1651
65801
65800
  },
65802
65801
  "tabapi": {
65803
- "x": 701,
65802
+ "x": 651,
65804
65803
  "y": 1651
65805
65804
  },
65806
65805
  "talenox": {
65807
- "x": 901,
65806
+ "x": 851,
65808
65807
  "y": 1651
65809
65808
  },
65810
65809
  "commonninja": {
@@ -65812,7 +65811,7 @@ var spriteCatalog = {
65812
65811
  "y": 351
65813
65812
  },
65814
65813
  "simpletexting": {
65815
- "x": 851,
65814
+ "x": 801,
65816
65815
  "y": 1551
65817
65816
  },
65818
65817
  "pointagram": {
@@ -65820,7 +65819,7 @@ var spriteCatalog = {
65820
65819
  "y": 1301
65821
65820
  },
65822
65821
  "validemail": {
65823
- "x": 551,
65822
+ "x": 501,
65824
65823
  "y": 1801
65825
65824
  },
65826
65825
  "kenjo": {
@@ -65828,171 +65827,171 @@ var spriteCatalog = {
65828
65827
  "y": 901
65829
65828
  },
65830
65829
  "talenthr": {
65831
- "x": 951,
65830
+ "x": 901,
65832
65831
  "y": 1651
65833
65832
  },
65834
65833
  "talentlms": {
65835
- "x": 1001,
65834
+ "x": 951,
65836
65835
  "y": 1651
65837
65836
  },
65838
65837
  "tailscale": {
65839
- "x": 851,
65838
+ "x": 801,
65840
65839
  "y": 1651
65841
65840
  },
65842
65841
  "teamtailor": {
65843
- "x": 1451,
65842
+ "x": 1401,
65844
65843
  "y": 1651
65845
65844
  },
65846
65845
  "teable": {
65847
- "x": 1351,
65846
+ "x": 1301,
65848
65847
  "y": 1651
65849
65848
  },
65850
65849
  "telnyx": {
65851
- "x": 1601,
65850
+ "x": 1551,
65852
65851
  "y": 1651
65853
65852
  },
65854
65853
  "taxjar": {
65855
- "x": 1301,
65854
+ "x": 1251,
65856
65855
  "y": 1651
65857
65856
  },
65858
65857
  "tally": {
65859
- "x": 1051,
65858
+ "x": 1001,
65860
65859
  "y": 1651
65861
65860
  },
65862
65861
  "tapfiliate": {
65863
- "x": 1151,
65862
+ "x": 1101,
65864
65863
  "y": 1651
65865
65864
  },
65866
65865
  "tanium": {
65867
- "x": 1101,
65866
+ "x": 1051,
65868
65867
  "y": 1651
65869
65868
  },
65870
65869
  "taiga": {
65871
- "x": 801,
65870
+ "x": 751,
65872
65871
  "y": 1651
65873
65872
  },
65874
65873
  "teamcamp": {
65875
- "x": 1401,
65874
+ "x": 1351,
65876
65875
  "y": 1651
65877
65876
  },
65878
65877
  "teamup": {
65879
- "x": 1501,
65878
+ "x": 1451,
65880
65879
  "y": 1651
65881
65880
  },
65882
65881
  "tave": {
65883
- "x": 1201,
65882
+ "x": 1151,
65884
65883
  "y": 1651
65885
65884
  },
65886
65885
  "tavily": {
65887
- "x": 1251,
65886
+ "x": 1201,
65888
65887
  "y": 1651
65889
65888
  },
65890
65889
  "tianyancha": {
65891
- "x": 751,
65890
+ "x": 701,
65892
65891
  "y": 1701
65893
65892
  },
65894
65893
  "tongdaxin": {
65895
- "x": 51,
65894
+ "x": 1,
65896
65895
  "y": 1751
65897
65896
  },
65898
65897
  "terraform": {
65899
- "x": 2001,
65898
+ "x": 1951,
65900
65899
  "y": 1651
65901
65900
  },
65902
65901
  "torii": {
65903
- "x": 101,
65902
+ "x": 51,
65904
65903
  "y": 1751
65905
65904
  },
65906
65905
  "torii_image_translator": {
65907
- "x": 151,
65906
+ "x": 101,
65908
65907
  "y": 1751
65909
65908
  },
65910
65909
  "the_swarm": {
65911
- "x": 451,
65910
+ "x": 401,
65912
65911
  "y": 1701
65913
65912
  },
65914
65913
  "valyu": {
65915
- "x": 601,
65914
+ "x": 551,
65916
65915
  "y": 1801
65917
65916
  },
65918
65917
  "vbout": {
65919
- "x": 751,
65918
+ "x": 701,
65920
65919
  "y": 1801
65921
65920
  },
65922
65921
  "vitally": {
65923
- "x": 1551,
65922
+ "x": 1501,
65924
65923
  "y": 1801
65925
65924
  },
65926
65925
  "templated": {
65927
- "x": 1701,
65926
+ "x": 1651,
65928
65927
  "y": 1651
65929
65928
  },
65930
65929
  "templatefox": {
65931
- "x": 1801,
65930
+ "x": 1751,
65932
65931
  "y": 1651
65933
65932
  },
65934
65933
  "tikhub": {
65935
- "x": 1101,
65934
+ "x": 1051,
65936
65935
  "y": 1701
65937
65936
  },
65938
65937
  "tianapi": {
65939
- "x": 701,
65938
+ "x": 651,
65940
65939
  "y": 1701
65941
65940
  },
65942
65941
  "tiktok_business": {
65943
- "x": 1151,
65942
+ "x": 1101,
65944
65943
  "y": 1701
65945
65944
  },
65946
65945
  "tiktok_business_mcp": {
65947
- "x": 1201,
65946
+ "x": 1151,
65948
65947
  "y": 1701
65949
65948
  },
65950
65949
  "timem_space": {
65951
- "x": 1451,
65950
+ "x": 1401,
65952
65951
  "y": 1701
65953
65952
  },
65954
65953
  "timelinesai": {
65955
- "x": 1351,
65954
+ "x": 1301,
65956
65955
  "y": 1701
65957
65956
  },
65958
65957
  "tidb": {
65959
- "x": 1051,
65958
+ "x": 1001,
65960
65959
  "y": 1701
65961
65960
  },
65962
65961
  "teltel": {
65963
- "x": 1651,
65962
+ "x": 1601,
65964
65963
  "y": 1651
65965
65964
  },
65966
65965
  "timelink": {
65967
- "x": 1401,
65966
+ "x": 1351,
65968
65967
  "y": 1701
65969
65968
  },
65970
65969
  "timecamp": {
65971
- "x": 1301,
65970
+ "x": 1251,
65972
65971
  "y": 1701
65973
65972
  },
65974
65973
  "timebuzzer": {
65975
- "x": 1251,
65974
+ "x": 1201,
65976
65975
  "y": 1701
65977
65976
  },
65978
65977
  "tldv": {
65979
- "x": 1701,
65978
+ "x": 1651,
65980
65979
  "y": 1701
65981
65980
  },
65982
65981
  "tencent_docs": {
65983
- "x": 1851,
65982
+ "x": 1801,
65984
65983
  "y": 1651
65985
65984
  },
65986
65985
  "tencent_maps": {
65987
- "x": 1901,
65986
+ "x": 1851,
65988
65987
  "y": 1651
65989
65988
  },
65990
65989
  "terminus_app": {
65991
- "x": 1951,
65990
+ "x": 1901,
65992
65991
  "y": 1651
65993
65992
  },
65994
65993
  "templatedocs": {
65995
- "x": 1751,
65994
+ "x": 1701,
65996
65995
  "y": 1651
65997
65996
  },
65998
65997
  "pdf_vector": {
@@ -66000,211 +65999,211 @@ var spriteCatalog = {
66000
65999
  "y": 1251
66001
66000
  },
66002
66001
  "tinypng": {
66003
- "x": 1551,
66002
+ "x": 1501,
66004
66003
  "y": 1701
66005
66004
  },
66006
66005
  "tinybird": {
66007
- "x": 1501,
66006
+ "x": 1451,
66008
66007
  "y": 1701
66009
66008
  },
66010
66009
  "telegram": {
66011
- "x": 1551,
66010
+ "x": 1501,
66012
66011
  "y": 1651
66013
66012
  },
66014
66013
  "ticketmaster": {
66015
- "x": 951,
66014
+ "x": 901,
66016
66015
  "y": 1701
66017
66016
  },
66018
66017
  "ticket_tailor": {
66019
- "x": 901,
66018
+ "x": 851,
66020
66019
  "y": 1701
66021
66020
  },
66022
66021
  "ticket_source": {
66023
- "x": 851,
66022
+ "x": 801,
66024
66023
  "y": 1701
66025
66024
  },
66026
66025
  "tick": {
66027
- "x": 801,
66026
+ "x": 751,
66028
66027
  "y": 1701
66029
66028
  },
66030
66029
  "ticktick": {
66031
- "x": 1001,
66030
+ "x": 951,
66032
66031
  "y": 1701
66033
66032
  },
66034
66033
  "textrazor": {
66035
- "x": 151,
66034
+ "x": 101,
66036
66035
  "y": 1701
66037
66036
  },
66038
66037
  "textcortex": {
66039
- "x": 1,
66040
- "y": 1701
66038
+ "x": 2001,
66039
+ "y": 1651
66041
66040
  },
66042
66041
  "textit": {
66043
- "x": 51,
66042
+ "x": 1,
66044
66043
  "y": 1701
66045
66044
  },
66046
66045
  "textmagic": {
66047
- "x": 101,
66046
+ "x": 51,
66048
66047
  "y": 1701
66049
66048
  },
66050
66049
  "wp_maps": {
66051
- "x": 701,
66050
+ "x": 651,
66052
66051
  "y": 1901
66053
66052
  },
66054
66053
  "you": {
66055
- "x": 1551,
66054
+ "x": 1501,
66056
66055
  "y": 1901
66057
66056
  },
66058
66057
  "y_gy": {
66059
- "x": 1301,
66058
+ "x": 1251,
66060
66059
  "y": 1901
66061
66060
  },
66062
66061
  "yoplanning": {
66063
- "x": 1501,
66062
+ "x": 1451,
66064
66063
  "y": 1901
66065
66064
  },
66066
66065
  "yuandian": {
66067
- "x": 1701,
66066
+ "x": 1651,
66068
66067
  "y": 1901
66069
66068
  },
66070
66069
  "yuanfenju": {
66071
- "x": 1751,
66070
+ "x": 1701,
66072
66071
  "y": 1901
66073
66072
  },
66074
66073
  "zhihu": {
66075
- "x": 351,
66074
+ "x": 301,
66076
66075
  "y": 1951
66077
66076
  },
66078
66077
  "ynab": {
66079
- "x": 1451,
66078
+ "x": 1401,
66080
66079
  "y": 1901
66081
66080
  },
66082
66081
  "tisane": {
66083
- "x": 1651,
66082
+ "x": 1601,
66084
66083
  "y": 1701
66085
66084
  },
66086
66085
  "tinyurl": {
66087
- "x": 1601,
66086
+ "x": 1551,
66088
66087
  "y": 1701
66089
66088
  },
66090
66089
  "todoist": {
66091
- "x": 1801,
66090
+ "x": 1751,
66092
66091
  "y": 1701
66093
66092
  },
66094
66093
  "tmdb": {
66095
- "x": 1751,
66094
+ "x": 1701,
66096
66095
  "y": 1701
66097
66096
  },
66098
66097
  "toggl": {
66099
- "x": 1901,
66098
+ "x": 1851,
66100
66099
  "y": 1701
66101
66100
  },
66102
66101
  "tomtom": {
66103
- "x": 1,
66104
- "y": 1751
66102
+ "x": 2001,
66103
+ "y": 1701
66105
66104
  },
66106
66105
  "trello": {
66107
- "x": 351,
66106
+ "x": 301,
66108
66107
  "y": 1751
66109
66108
  },
66110
66109
  "trendshift": {
66111
- "x": 451,
66110
+ "x": 401,
66112
66111
  "y": 1751
66113
66112
  },
66114
66113
  "trilium": {
66115
- "x": 651,
66114
+ "x": 601,
66116
66115
  "y": 1751
66117
66116
  },
66118
66117
  "trent": {
66119
- "x": 501,
66118
+ "x": 451,
66120
66119
  "y": 1751
66121
66120
  },
66122
66121
  "tremendous": {
66123
- "x": 401,
66122
+ "x": 351,
66124
66123
  "y": 1751
66125
66124
  },
66126
66125
  "trawlingweb": {
66127
- "x": 301,
66126
+ "x": 251,
66128
66127
  "y": 1751
66129
66128
  },
66130
66129
  "twelve_data": {
66131
- "x": 1051,
66130
+ "x": 1001,
66132
66131
  "y": 1751
66133
66132
  },
66134
66133
  "turbot_pipes": {
66135
- "x": 851,
66134
+ "x": 801,
66136
66135
  "y": 1751
66137
66136
  },
66138
66137
  "tushare": {
66139
- "x": 951,
66138
+ "x": 901,
66140
66139
  "y": 1751
66141
66140
  },
66142
66141
  "tuskr": {
66143
- "x": 1001,
66142
+ "x": 951,
66144
66143
  "y": 1751
66145
66144
  },
66146
66145
  "together_ai": {
66147
- "x": 1851,
66146
+ "x": 1801,
66148
66147
  "y": 1701
66149
66148
  },
66150
66149
  "token_metrics": {
66151
- "x": 1951,
66150
+ "x": 1901,
66152
66151
  "y": 1701
66153
66152
  },
66154
66153
  "totp": {
66155
- "x": 201,
66154
+ "x": 151,
66156
66155
  "y": 1751
66157
66156
  },
66158
66157
  "theirstack": {
66159
- "x": 601,
66158
+ "x": 551,
66160
66159
  "y": 1701
66161
66160
  },
66162
66161
  "the_odds_api": {
66163
- "x": 351,
66162
+ "x": 301,
66164
66163
  "y": 1701
66165
66164
  },
66166
66165
  "the_cat_api": {
66167
- "x": 201,
66166
+ "x": 151,
66168
66167
  "y": 1701
66169
66168
  },
66170
66169
  "the_dog_api": {
66171
- "x": 301,
66170
+ "x": 251,
66172
66171
  "y": 1701
66173
66172
  },
66174
66173
  "tripadvisor": {
66175
- "x": 701,
66174
+ "x": 651,
66176
66175
  "y": 1751
66177
66176
  },
66178
66177
  "triple_whale": {
66179
- "x": 751,
66178
+ "x": 701,
66180
66179
  "y": 1751
66181
66180
  },
66182
66181
  "tpscheck": {
66183
- "x": 251,
66182
+ "x": 201,
66184
66183
  "y": 1751
66185
66184
  },
66186
66185
  "twochat": {
66187
- "x": 1301,
66186
+ "x": 1251,
66188
66187
  "y": 1751
66189
66188
  },
66190
66189
  "unifapi": {
66191
- "x": 1651,
66190
+ "x": 1601,
66192
66191
  "y": 1751
66193
66192
  },
66194
66193
  "unione": {
66195
- "x": 1701,
66194
+ "x": 1651,
66196
66195
  "y": 1751
66197
66196
  },
66198
66197
  "unipile": {
66199
- "x": 1751,
66198
+ "x": 1701,
66200
66199
  "y": 1751
66201
66200
  },
66202
66201
  "unpaywall": {
66203
- "x": 1901,
66202
+ "x": 1851,
66204
66203
  "y": 1751
66205
66204
  },
66206
66205
  "unthread": {
66207
- "x": 2001,
66206
+ "x": 1951,
66208
66207
  "y": 1751
66209
66208
  },
66210
66209
  "practitest": {
@@ -66212,155 +66211,155 @@ var spriteCatalog = {
66212
66211
  "y": 1301
66213
66212
  },
66214
66213
  "u301": {
66215
- "x": 1551,
66214
+ "x": 1501,
66216
66215
  "y": 1751
66217
66216
  },
66218
66217
  "updown_io": {
66219
- "x": 1,
66220
- "y": 1801
66218
+ "x": 2001,
66219
+ "y": 1751
66221
66220
  },
66222
66221
  "upstash_redis": {
66223
- "x": 151,
66222
+ "x": 101,
66224
66223
  "y": 1801
66225
66224
  },
66226
66225
  "uploadcare": {
66227
- "x": 51,
66226
+ "x": 1,
66228
66227
  "y": 1801
66229
66228
  },
66230
66229
  "upsales": {
66231
- "x": 101,
66230
+ "x": 51,
66232
66231
  "y": 1801
66233
66232
  },
66234
66233
  "uptimerobot": {
66235
- "x": 201,
66234
+ "x": 151,
66236
66235
  "y": 1801
66237
66236
  },
66238
66237
  "vapi": {
66239
- "x": 651,
66238
+ "x": 601,
66240
66239
  "y": 1801
66241
66240
  },
66242
66241
  "vonage": {
66243
- "x": 1701,
66242
+ "x": 1651,
66244
66243
  "y": 1801
66245
66244
  },
66246
66245
  "vida": {
66247
- "x": 1251,
66246
+ "x": 1201,
66248
66247
  "y": 1801
66249
66248
  },
66250
66249
  "vtex": {
66251
- "x": 1751,
66250
+ "x": 1701,
66252
66251
  "y": 1801
66253
66252
  },
66254
66253
  "vultr": {
66255
- "x": 1801,
66254
+ "x": 1751,
66256
66255
  "y": 1801
66257
66256
  },
66258
66257
  "venafitlsprotectcloud": {
66259
- "x": 901,
66258
+ "x": 851,
66260
66259
  "y": 1801
66261
66260
  },
66262
66261
  "venafitlsprotectdatacenter": {
66263
- "x": 951,
66262
+ "x": 901,
66264
66263
  "y": 1801
66265
66264
  },
66266
66265
  "vectera": {
66267
- "x": 801,
66266
+ "x": 751,
66268
66267
  "y": 1801
66269
66268
  },
66270
66269
  "vectorshift": {
66271
- "x": 851,
66270
+ "x": 801,
66272
66271
  "y": 1801
66273
66272
  },
66274
66273
  "twilio": {
66275
- "x": 1151,
66274
+ "x": 1101,
66276
66275
  "y": 1751
66277
66276
  },
66278
66277
  "twenty_crm": {
66279
- "x": 1101,
66278
+ "x": 1051,
66280
66279
  "y": 1751
66281
66280
  },
66282
66281
  "truvera": {
66283
- "x": 801,
66282
+ "x": 751,
66284
66283
  "y": 1751
66285
66284
  },
66286
66285
  "twitter": {
66287
- "x": 1201,
66286
+ "x": 1151,
66288
66287
  "y": 1751
66289
66288
  },
66290
66289
  "twitterapi_io": {
66291
- "x": 1251,
66290
+ "x": 1201,
66292
66291
  "y": 1751
66293
66292
  },
66294
66293
  "uniswap_api": {
66295
- "x": 1851,
66294
+ "x": 1801,
66296
66295
  "y": 1751
66297
66296
  },
66298
66297
  "typebot": {
66299
- "x": 1351,
66298
+ "x": 1301,
66300
66299
  "y": 1751
66301
66300
  },
66302
66301
  "typeform": {
66303
- "x": 1401,
66302
+ "x": 1351,
66304
66303
  "y": 1751
66305
66304
  },
66306
66305
  "survey_monkey": {
66307
- "x": 451,
66306
+ "x": 401,
66308
66307
  "y": 1651
66309
66308
  },
66310
66309
  "typefully": {
66311
- "x": 1451,
66310
+ "x": 1401,
66312
66311
  "y": 1751
66313
66312
  },
66314
66313
  "trigger_dev": {
66315
- "x": 551,
66314
+ "x": 501,
66316
66315
  "y": 1751
66317
66316
  },
66318
66317
  "triggercmd": {
66319
- "x": 601,
66318
+ "x": 551,
66320
66319
  "y": 1751
66321
66320
  },
66322
66321
  "turso": {
66323
- "x": 901,
66322
+ "x": 851,
66324
66323
  "y": 1751
66325
66324
  },
66326
66325
  "unsplash": {
66327
- "x": 1951,
66326
+ "x": 1901,
66328
66327
  "y": 1751
66329
66328
  },
66330
66329
  "uspto": {
66331
- "x": 401,
66330
+ "x": 351,
66332
66331
  "y": 1801
66333
66332
  },
66334
66333
  "urlscan": {
66335
- "x": 251,
66334
+ "x": 201,
66336
66335
  "y": 1801
66337
66336
  },
66338
66337
  "userflow": {
66339
- "x": 301,
66338
+ "x": 251,
66340
66339
  "y": 1801
66341
66340
  },
66342
66341
  "userlist": {
66343
- "x": 351,
66342
+ "x": 301,
66344
66343
  "y": 1801
66345
66344
  },
66346
66345
  "v2ex": {
66347
- "x": 501,
66346
+ "x": 451,
66348
66347
  "y": 1801
66349
66348
  },
66350
66349
  "viggle": {
66351
- "x": 1301,
66350
+ "x": 1251,
66352
66351
  "y": 1801
66353
66352
  },
66354
66353
  "vimeo": {
66355
- "x": 1351,
66354
+ "x": 1301,
66356
66355
  "y": 1801
66357
66356
  },
66358
66357
  "vercel": {
66359
- "x": 1001,
66358
+ "x": 951,
66360
66359
  "y": 1801
66361
66360
  },
66362
66361
  "veremark": {
66363
- "x": 1051,
66362
+ "x": 1001,
66364
66363
  "y": 1801
66365
66364
  },
66366
66365
  "mumble": {
@@ -66368,31 +66367,31 @@ var spriteCatalog = {
66368
66367
  "y": 1101
66369
66368
  },
66370
66369
  "veriphone": {
66371
- "x": 1151,
66370
+ "x": 1101,
66372
66371
  "y": 1801
66373
66372
  },
66374
66373
  "vincario": {
66375
- "x": 1401,
66374
+ "x": 1351,
66376
66375
  "y": 1801
66377
66376
  },
66378
66377
  "verifiedemail": {
66379
- "x": 1101,
66378
+ "x": 1051,
66380
66379
  "y": 1801
66381
66380
  },
66382
66381
  "vatlayer": {
66383
- "x": 701,
66382
+ "x": 651,
66384
66383
  "y": 1801
66385
66384
  },
66386
66385
  "vestaboard": {
66387
- "x": 1201,
66386
+ "x": 1151,
66388
66387
  "y": 1801
66389
66388
  },
66390
66389
  "v0": {
66391
- "x": 451,
66390
+ "x": 401,
66392
66391
  "y": 1801
66393
66392
  },
66394
66393
  "virustotal": {
66395
- "x": 1501,
66394
+ "x": 1451,
66396
66395
  "y": 1801
66397
66396
  },
66398
66397
  "kling": {
@@ -66412,7 +66411,7 @@ var spriteCatalog = {
66412
66411
  "y": 451
66413
66412
  },
66414
66413
  "wanx": {
66415
- "x": 351,
66414
+ "x": 301,
66416
66415
  "y": 1851
66417
66416
  },
66418
66417
  "qwen": {
@@ -66420,75 +66419,75 @@ var spriteCatalog = {
66420
66419
  "y": 1351
66421
66420
  },
66422
66421
  "voiceflow": {
66423
- "x": 1601,
66422
+ "x": 1551,
66424
66423
  "y": 1801
66425
66424
  },
66426
66425
  "waboxapp": {
66427
- "x": 1851,
66426
+ "x": 1801,
66428
66427
  "y": 1801
66429
66428
  },
66430
66429
  "wachete": {
66431
- "x": 1901,
66430
+ "x": 1851,
66432
66431
  "y": 1801
66433
66432
  },
66434
66433
  "wufoo": {
66435
- "x": 951,
66434
+ "x": 901,
66436
66435
  "y": 1901
66437
66436
  },
66438
66437
  "waffo": {
66439
- "x": 1951,
66438
+ "x": 1901,
66440
66439
  "y": 1801
66441
66440
  },
66442
66441
  "walmart_marketplace": {
66443
- "x": 201,
66442
+ "x": 151,
66444
66443
  "y": 1851
66445
66444
  },
66446
66445
  "waiverforever": {
66447
- "x": 51,
66446
+ "x": 1,
66448
66447
  "y": 1851
66449
66448
  },
66450
66449
  "wakatime": {
66451
- "x": 101,
66450
+ "x": 51,
66452
66451
  "y": 1851
66453
66452
  },
66454
66453
  "wangdian": {
66455
- "x": 301,
66454
+ "x": 251,
66456
66455
  "y": 1851
66457
66456
  },
66458
66457
  "waterfall": {
66459
- "x": 451,
66458
+ "x": 401,
66460
66459
  "y": 1851
66461
66460
  },
66462
66461
  "wappalyzer": {
66463
- "x": 401,
66462
+ "x": 351,
66464
66463
  "y": 1851
66465
66464
  },
66466
66465
  "walletap": {
66467
- "x": 151,
66466
+ "x": 101,
66468
66467
  "y": 1851
66469
66468
  },
66470
66469
  "webinarjam": {
66471
- "x": 901,
66470
+ "x": 851,
66472
66471
  "y": 1851
66473
66472
  },
66474
66473
  "web_of_science": {
66475
- "x": 701,
66474
+ "x": 651,
66476
66475
  "y": 1851
66477
66476
  },
66478
66477
  "web_of_science_expanded": {
66479
- "x": 751,
66478
+ "x": 701,
66480
66479
  "y": 1851
66481
66480
  },
66482
66481
  "wejam_ai": {
66483
- "x": 1401,
66482
+ "x": 1351,
66484
66483
  "y": 1851
66485
66484
  },
66486
66485
  "weatherapi": {
66487
- "x": 551,
66486
+ "x": 501,
66488
66487
  "y": 1851
66489
66488
  },
66490
66489
  "weatherbit": {
66491
- "x": 601,
66490
+ "x": 551,
66492
66491
  "y": 1851
66493
66492
  },
66494
66493
  "iqair_airvisual": {
@@ -66496,47 +66495,47 @@ var spriteCatalog = {
66496
66495
  "y": 851
66497
66496
  },
66498
66497
  "wttr_in": {
66499
- "x": 901,
66498
+ "x": 851,
66500
66499
  "y": 1901
66501
66500
  },
66502
66501
  "weaviate": {
66503
- "x": 651,
66502
+ "x": 601,
66504
66503
  "y": 1851
66505
66504
  },
66506
66505
  "webvizio": {
66507
- "x": 1101,
66506
+ "x": 1051,
66508
66507
  "y": 1851
66509
66508
  },
66510
66509
  "webshare": {
66511
- "x": 1051,
66510
+ "x": 1001,
66512
66511
  "y": 1851
66513
66512
  },
66514
66513
  "webscraping_ai": {
66515
- "x": 1001,
66514
+ "x": 951,
66516
66515
  "y": 1851
66517
66516
  },
66518
66517
  "webflow": {
66519
- "x": 851,
66518
+ "x": 801,
66520
66519
  "y": 1851
66521
66520
  },
66522
66521
  "woodpecker_co": {
66523
- "x": 151,
66522
+ "x": 101,
66524
66523
  "y": 1901
66525
66524
  },
66526
66525
  "webscraper_io": {
66527
- "x": 951,
66526
+ "x": 901,
66528
66527
  "y": 1851
66529
66528
  },
66530
66529
  "what3words": {
66531
- "x": 1451,
66530
+ "x": 1401,
66532
66531
  "y": 1851
66533
66532
  },
66534
66533
  "woocommerce": {
66535
- "x": 101,
66534
+ "x": 51,
66536
66535
  "y": 1901
66537
66536
  },
66538
66537
  "woot": {
66539
- "x": 201,
66538
+ "x": 151,
66540
66539
  "y": 1901
66541
66540
  },
66542
66541
  "baizhi_mcp": {
@@ -66552,7 +66551,7 @@ var spriteCatalog = {
66552
66551
  "y": 601
66553
66552
  },
66554
66553
  "zerotier": {
66555
- "x": 301,
66554
+ "x": 251,
66556
66555
  "y": 1951
66557
66556
  },
66558
66557
  "linear_mcp": {
@@ -66568,95 +66567,95 @@ var spriteCatalog = {
66568
66567
  "y": 1101
66569
66568
  },
66570
66569
  "wisburg": {
66571
- "x": 1901,
66570
+ "x": 1851,
66572
66571
  "y": 1851
66573
66572
  },
66574
66573
  "wise": {
66575
- "x": 1951,
66574
+ "x": 1901,
66576
66575
  "y": 1851
66577
66576
  },
66578
66577
  "wrike": {
66579
- "x": 801,
66578
+ "x": 751,
66580
66579
  "y": 1901
66581
66580
  },
66582
66581
  "workiom": {
66583
- "x": 401,
66582
+ "x": 351,
66584
66583
  "y": 1901
66585
66584
  },
66586
66585
  "worksnaps": {
66587
- "x": 601,
66586
+ "x": 551,
66588
66587
  "y": 1901
66589
66588
  },
66590
66589
  "workable": {
66591
- "x": 301,
66590
+ "x": 251,
66592
66591
  "y": 1901
66593
66592
  },
66594
66593
  "workast": {
66595
- "x": 351,
66594
+ "x": 301,
66596
66595
  "y": 1901
66597
66596
  },
66598
66597
  "workos": {
66599
- "x": 501,
66598
+ "x": 451,
66600
66599
  "y": 1901
66601
66600
  },
66602
66601
  "wecom_bot": {
66603
- "x": 1151,
66602
+ "x": 1101,
66604
66603
  "y": 1851
66605
66604
  },
66606
66605
  "weixin_bot": {
66607
- "x": 1251,
66606
+ "x": 1201,
66608
66607
  "y": 1851
66609
66608
  },
66610
66609
  "weixin_official_account": {
66611
- "x": 1301,
66610
+ "x": 1251,
66612
66611
  "y": 1851
66613
66612
  },
66614
66613
  "weixin_store": {
66615
- "x": 1351,
66614
+ "x": 1301,
66616
66615
  "y": 1851
66617
66616
  },
66618
66617
  "wecom_mcp": {
66619
- "x": 1201,
66618
+ "x": 1151,
66620
66619
  "y": 1851
66621
66620
  },
66622
66621
  "whatsapp": {
66623
- "x": 1551,
66622
+ "x": 1501,
66624
66623
  "y": 1851
66625
66624
  },
66626
66625
  "whatsable": {
66627
- "x": 1501,
66626
+ "x": 1451,
66628
66627
  "y": 1851
66629
66628
  },
66630
66629
  "whop": {
66631
- "x": 1701,
66630
+ "x": 1651,
66632
66631
  "y": 1851
66633
66632
  },
66634
66633
  "who_gho": {
66635
- "x": 1601,
66634
+ "x": 1551,
66636
66635
  "y": 1851
66637
66636
  },
66638
66637
  "whoisfreaks": {
66639
- "x": 1651,
66638
+ "x": 1601,
66640
66639
  "y": 1851
66641
66640
  },
66642
66641
  "wolfram_alpha_api": {
66643
- "x": 51,
66642
+ "x": 1,
66644
66643
  "y": 1901
66645
66644
  },
66646
66645
  "world_news_api": {
66647
- "x": 651,
66646
+ "x": 601,
66648
66647
  "y": 1901
66649
66648
  },
66650
66649
  "writer": {
66651
- "x": 851,
66650
+ "x": 801,
66652
66651
  "y": 1901
66653
66652
  },
66654
66653
  "winston_ai": {
66655
- "x": 1801,
66654
+ "x": 1751,
66656
66655
  "y": 1851
66657
66656
  },
66658
66657
  "wire2air": {
66659
- "x": 1851,
66658
+ "x": 1801,
66660
66659
  "y": 1851
66661
66660
  },
66662
66661
  "optimoroute": {
@@ -66668,31 +66667,31 @@ var spriteCatalog = {
66668
66667
  "y": 1451
66669
66668
  },
66670
66669
  "wiza": {
66671
- "x": 1,
66672
- "y": 1901
66670
+ "x": 2001,
66671
+ "y": 1851
66673
66672
  },
66674
66673
  "wit_ai": {
66675
- "x": 2001,
66674
+ "x": 1951,
66676
66675
  "y": 1851
66677
66676
  },
66678
66677
  "zep": {
66679
- "x": 151,
66678
+ "x": 101,
66680
66679
  "y": 1951
66681
66680
  },
66682
66681
  "z_api": {
66683
- "x": 1801,
66682
+ "x": 1751,
66684
66683
  "y": 1901
66685
66684
  },
66686
66685
  "zerobounce": {
66687
- "x": 251,
66686
+ "x": 201,
66688
66687
  "y": 1951
66689
66688
  },
66690
66689
  "yelp": {
66691
- "x": 1351,
66690
+ "x": 1301,
66692
66691
  "y": 1901
66693
66692
  },
66694
66693
  "wind": {
66695
- "x": 1751,
66694
+ "x": 1701,
66696
66695
  "y": 1851
66697
66696
  },
66698
66697
  "investoday_mcp": {
@@ -66700,71 +66699,71 @@ var spriteCatalog = {
66700
66699
  "y": 801
66701
66700
  },
66702
66701
  "yingmi_mcp": {
66703
- "x": 1401,
66702
+ "x": 1351,
66704
66703
  "y": 1901
66705
66704
  },
66706
66705
  "wps_mcp": {
66707
- "x": 751,
66706
+ "x": 701,
66708
66707
  "y": 1901
66709
66708
  },
66710
66709
  "youzan": {
66711
- "x": 1651,
66710
+ "x": 1601,
66712
66711
  "y": 1901
66713
66712
  },
66714
66713
  "zendesk": {
66715
- "x": 1901,
66714
+ "x": 1851,
66716
66715
  "y": 1901
66717
66716
  },
66718
66717
  "zenkit": {
66719
- "x": 1951,
66718
+ "x": 1901,
66720
66719
  "y": 1901
66721
66720
  },
66722
66721
  "zammad": {
66723
- "x": 1851,
66722
+ "x": 1801,
66724
66723
  "y": 1901
66725
66724
  },
66726
66725
  "zenventory": {
66727
- "x": 101,
66726
+ "x": 51,
66728
66727
  "y": 1951
66729
66728
  },
66730
66729
  "zenrows": {
66731
- "x": 2001,
66730
+ "x": 1951,
66732
66731
  "y": 1901
66733
66732
  },
66734
66733
  "zenserp": {
66735
- "x": 51,
66734
+ "x": 1,
66736
66735
  "y": 1951
66737
66736
  },
66738
66737
  "zeplin": {
66739
- "x": 201,
66738
+ "x": 151,
66740
66739
  "y": 1951
66741
66740
  },
66742
66741
  "zigpoll": {
66743
- "x": 401,
66742
+ "x": 351,
66744
66743
  "y": 1951
66745
66744
  },
66746
66745
  "zip_archive_api": {
66747
- "x": 451,
66746
+ "x": 401,
66748
66747
  "y": 1951
66749
66748
  },
66750
66749
  "zlibrary": {
66751
- "x": 601,
66750
+ "x": 551,
66752
66751
  "y": 1951
66753
66752
  },
66754
66753
  "zylvie": {
66755
- "x": 851,
66754
+ "x": 801,
66756
66755
  "y": 1951
66757
66756
  },
66758
66757
  "zyte_api": {
66759
- "x": 901,
66758
+ "x": 851,
66760
66759
  "y": 1951
66761
66760
  },
66762
66761
  "zorus": {
66763
- "x": 701,
66762
+ "x": 651,
66764
66763
  "y": 1951
66765
66764
  },
66766
66765
  "zixflow": {
66767
- "x": 551,
66766
+ "x": 501,
66768
66767
  "y": 1951
66769
66768
  },
66770
66769
  "evervault": {
@@ -66776,19 +66775,19 @@ var spriteCatalog = {
66776
66775
  "y": 551
66777
66776
  },
66778
66777
  "zoom": {
66779
- "x": 651,
66778
+ "x": 601,
66780
66779
  "y": 1951
66781
66780
  },
66782
66781
  "webex": {
66783
- "x": 801,
66782
+ "x": 751,
66784
66783
  "y": 1851
66785
66784
  },
66786
66785
  "zotero": {
66787
- "x": 751,
66786
+ "x": 701,
66788
66787
  "y": 1951
66789
66788
  },
66790
66789
  "speedtest_tracker": {
66791
- "x": 401,
66790
+ "x": 351,
66792
66791
  "y": 1601
66793
66792
  },
66794
66793
  "bloomerang": {
@@ -66814,6 +66813,8 @@ var _virtual_oomol_provider_icons_default = {
66814
66813
  "7_shifts": "https://static.oomol.com/logo/third-party/7_shifts.png",
66815
66814
  "ably": "https://static.oomol.com/logo/third-party/ably.svg",
66816
66815
  "aisa": "https://static.oomol.com/logo/third-party/aisa.svg",
66816
+ "opper": "https://static.oomol.com/logo/third-party/opper.svg",
66817
+ "scanmalware": "https://static.oomol.com/logo/third-party/scanmalware.svg",
66817
66818
  "osv": "https://static.oomol.com/logo/third-party/osv.svg",
66818
66819
  "ably_control": "https://static.oomol.com/logo/third-party/ably_control.svg",
66819
66820
  "abyssale": "https://static.oomol.com/logo/third-party/abyssale.svg",
@@ -67060,7 +67061,6 @@ var _virtual_oomol_provider_icons_default = {
67060
67061
  "skyvern": "https://static.oomol.com/logo/third-party/skyvern.png",
67061
67062
  "shopify": "https://static.oomol.com/logo/third-party/shopify.svg",
67062
67063
  "shopee": "https://static.oomol.com/logo/third-party/shopee.svg",
67063
- "shopify_admin": "https://static.oomol.com/logo/third-party/shopify_admin.svg",
67064
67064
  "shopify_partner": "https://static.oomol.com/logo/third-party/shopify_partner.svg",
67065
67065
  "shopify_storefront": "https://static.oomol.com/logo/third-party/shopify_storefront.svg",
67066
67066
  "shippo": "https://static.oomol.com/logo/third-party/shippo.png",
@@ -68481,7 +68481,7 @@ function actionSummary(entries, actions, providers) {
68481
68481
  }
68482
68482
  //#endregion
68483
68483
  //#region src/workbench/browser/runtime/canvasPresentation.ts
68484
- function record(value) {
68484
+ function record$1(value) {
68485
68485
  if (value == null || typeof value != "object" || Array.isArray(value)) return void 0;
68486
68486
  return value;
68487
68487
  }
@@ -68489,15 +68489,15 @@ function finite(value) {
68489
68489
  return typeof value == "number" && Number.isFinite(value) ? value : void 0;
68490
68490
  }
68491
68491
  function flowPresentation(value) {
68492
- const designer = record(value.designer);
68492
+ const designer = record$1(value.designer);
68493
68493
  if (designer?.version != 1) return void 0;
68494
- return record(designer.flow);
68494
+ return record$1(designer.flow);
68495
68495
  }
68496
68496
  function savedPositions(value) {
68497
68497
  const current = flowPresentation(value);
68498
68498
  const positions = (source) => {
68499
- return Object.fromEntries(Object.entries(record(source) ?? {}).flatMap(([nodeId, candidate]) => {
68500
- const position = record(candidate);
68499
+ return Object.fromEntries(Object.entries(record$1(source) ?? {}).flatMap(([nodeId, candidate]) => {
68500
+ const position = record$1(candidate);
68501
68501
  const x = finite(position?.x);
68502
68502
  const y = finite(position?.y);
68503
68503
  return x == null || y == null ? [] : [[nodeId, {
@@ -68515,7 +68515,7 @@ function savedOrder(value) {
68515
68515
  return [.../* @__PURE__ */ new Set([...order, ...Object.keys(positions)])];
68516
68516
  }
68517
68517
  function optionalViewport(value) {
68518
- const viewport = record(flowPresentation(value)?.viewport);
68518
+ const viewport = record$1(flowPresentation(value)?.viewport);
68519
68519
  const x = finite(viewport?.x);
68520
68520
  const y = finite(viewport?.y);
68521
68521
  const zoom = finite(viewport?.zoom);
@@ -68533,9 +68533,9 @@ function savedViewport(value) {
68533
68533
  };
68534
68534
  }
68535
68535
  function savedComments(value, positions) {
68536
- const comments = record(flowPresentation(value)?.comments) ?? {};
68536
+ const comments = record$1(flowPresentation(value)?.comments) ?? {};
68537
68537
  return Object.fromEntries(Object.entries(comments).flatMap(([nodeId, candidate]) => {
68538
- const comment = record(candidate);
68538
+ const comment = record$1(candidate);
68539
68539
  const title = typeof comment?.title == "string" ? comment.title : void 0;
68540
68540
  const content = typeof comment?.content == "string" ? comment.content : void 0;
68541
68541
  return title == null || content == null ? [] : [[nodeId, {
@@ -68549,7 +68549,7 @@ function savedComments(value, positions) {
68549
68549
  }));
68550
68550
  }
68551
68551
  function savedHiddenNodeContent(value) {
68552
- return record(flowPresentation(value)?.hiddenNodeContent);
68552
+ return record$1(flowPresentation(value)?.hiddenNodeContent);
68553
68553
  }
68554
68554
  //#endregion
68555
68555
  //#region src/workbench/browser/runtime/workspace.ts
@@ -70807,7 +70807,7 @@ var Input = m$4.forwardRef(function Input({ className, type, controlSize = "defa
70807
70807
  ref,
70808
70808
  type,
70809
70809
  "data-slot": "input",
70810
- className: cn$1("h-8 w-full min-w-0 rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] border border-input bg-[var(--ui-control-background,var(--ui-muted))] px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground read-only:cursor-default placeholder:text-muted-foreground data-[slot=input]:focus-visible:text-field-focus data-[slot=input]:focus-visible:aria-invalid:invalid-text-field-focus disabled:pointer-events-none disabled:cursor-[var(--ui-disabled-cursor,not-allowed)] disabled:bg-[var(--ui-disabled-background,color-mix(in_srgb,var(--ui-input)_50%,transparent))] disabled:opacity-[var(--ui-disabled-opacity,0.5)] aria-invalid:border-destructive md:text-sm dark:bg-[var(--ui-control-background,var(--ui-muted))] dark:disabled:bg-[var(--ui-disabled-background,color-mix(in_srgb,var(--ui-input)_80%,transparent))]", controlSize === "field" && "h-[30px] px-2 text-xs md:text-xs", className),
70810
+ className: cn$1("h-8 w-full min-w-0 rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] border border-input bg-[var(--ui-control-background,var(--ui-muted))] px-2.5 py-1 text-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground read-only:cursor-default placeholder:text-muted-foreground data-[slot=input]:focus-visible:text-field-focus data-[slot=input]:focus-visible:aria-invalid:invalid-text-field-focus disabled:pointer-events-none disabled:cursor-[var(--ui-disabled-cursor,not-allowed)] disabled:bg-[var(--ui-disabled-background,color-mix(in_srgb,var(--ui-input)_50%,transparent))] disabled:opacity-[var(--ui-disabled-opacity,0.5)] aria-invalid:border-destructive dark:bg-[var(--ui-control-background,var(--ui-muted))] dark:disabled:bg-[var(--ui-disabled-background,color-mix(in_srgb,var(--ui-input)_80%,transparent))]", controlSize === "field" && "h-[30px] px-2 text-xs", className),
70811
70811
  ...props
70812
70812
  });
70813
70813
  });
@@ -79523,7 +79523,7 @@ function DialogTitle({ className, ...props }) {
79523
79523
  function DialogDescription({ className, ...props }) {
79524
79524
  return /* @__PURE__ */ jsx(DialogDescription$1, {
79525
79525
  "data-slot": "dialog-description",
79526
- className: cn$1("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", className),
79526
+ className: cn$1("m-0 text-sm text-muted-foreground *:[a]:text-inherit *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", className),
79527
79527
  ...props
79528
79528
  });
79529
79529
  }
@@ -98279,7 +98279,7 @@ function CodeEditor({ ariaDescribedBy, ariaLabel, diagnostics, disabled, errorLa
98279
98279
  darkMode.current = darkMode$;
98280
98280
  setFailed(false);
98281
98281
  setLoading(true);
98282
- const extension = import("./typeScriptSession-fXPMFGjW.js").then(({ loadTypeScriptExtension }) => loadTypeScriptExtension(uri, typingRef.current, () => prepareCompletionRef.current?.())).catch(() => void 0);
98282
+ const extension = import("./typeScriptSession-D0bjYDeg.js").then(({ loadTypeScriptExtension }) => loadTypeScriptExtension(uri, typingRef.current, () => prepareCompletionRef.current?.())).catch(() => void 0);
98283
98283
  claimEditor(uri).then((nextRelease) => {
98284
98284
  release = nextRelease;
98285
98285
  if (disposed) {
@@ -98366,7 +98366,7 @@ function CodeEditor({ ariaDescribedBy, ariaLabel, diagnostics, disabled, errorLa
98366
98366
  editor.current?.updateOptions({ ariaDescribedBy });
98367
98367
  }, [ariaDescribedBy]);
98368
98368
  useEffect(() => {
98369
- import("./typeScriptSession-fXPMFGjW.js").then(({ updateTypeScriptTyping }) => updateTypeScriptTyping(uri, typing)).catch(noop);
98369
+ import("./typeScriptSession-D0bjYDeg.js").then(({ updateTypeScriptTyping }) => updateTypeScriptTyping(uri, typing)).catch(noop);
98370
98370
  }, [typing, uri]);
98371
98371
  useEffect(() => {
98372
98372
  if (location != null) editor.current?.revealPosition?.(location.line, location.column);
@@ -103761,7 +103761,6 @@ var controlErrorCode = {
103761
103761
  publicationConflict: "publication.conflict",
103762
103762
  publicationNotFound: "publication.not-found",
103763
103763
  publicationUnsupported: "publication.unsupported",
103764
- resourceNotFound: "resource.not-found",
103765
103764
  publishOperationNotFound: "publication.operation-not-found",
103766
103765
  routeNotFound: "route.not-found",
103767
103766
  runConflict: "run.conflict",
@@ -103778,7 +103777,7 @@ var controlErrorCode = {
103778
103777
  variableLimitReached: "variable.limit-reached",
103779
103778
  variableNotFound: "variable.not-found"
103780
103779
  };
103781
- controlErrorCode.eventSourceInvalid, controlErrorCode.eventSourceIdentityUnavailable, controlErrorCode.eventSourceNotFound, controlErrorCode.eventSourceConflict, controlErrorCode.authenticationRequired, controlErrorCode.authorizationDenied, controlErrorCode.bindingUnresolved, controlErrorCode.connectorActionNotFound, controlErrorCode.connectorAccessConflict, controlErrorCode.connectorAccessInvalid, controlErrorCode.connectorAccessRequired, controlErrorCode.connectorAccessUnsupported, controlErrorCode.connectorUnconfigured, controlErrorCode.connectorUnavailable, controlErrorCode.connectorConsoleUnconfigured, controlErrorCode.engineUnavailable, controlErrorCode.engineUnsupported, controlErrorCode.flowInvalid, controlErrorCode.flowRepairRequired, controlErrorCode.flowUpgradeRequired, controlErrorCode.flowNotFound, controlErrorCode.flowBusy, controlErrorCode.flowConflict, controlErrorCode.flowPresentationConflict, controlErrorCode.flowRevisionConflict, controlErrorCode.liveConflict, controlErrorCode.liveNotFound, controlErrorCode.pageInvalidCursor, controlErrorCode.publicationConflict, controlErrorCode.publicationNotFound, controlErrorCode.publicationUnsupported, controlErrorCode.resourceNotFound, controlErrorCode.publishOperationNotFound, controlErrorCode.routeNotFound, controlErrorCode.runConflict, controlErrorCode.runEventsExpired, controlErrorCode.runInvalid, controlErrorCode.runNotFound, controlErrorCode.runNotTerminal, controlErrorCode.runOverloaded, controlErrorCode.runWaitNotFound, controlErrorCode.triggerKeyInvalid, controlErrorCode.triggerKeyNotFound, controlErrorCode.triggerNotFound, controlErrorCode.variableInvalid, controlErrorCode.variableLimitReached, controlErrorCode.variableNotFound;
103780
+ controlErrorCode.eventSourceInvalid, controlErrorCode.eventSourceIdentityUnavailable, controlErrorCode.eventSourceNotFound, controlErrorCode.eventSourceConflict, controlErrorCode.authenticationRequired, controlErrorCode.authorizationDenied, controlErrorCode.bindingUnresolved, controlErrorCode.connectorActionNotFound, controlErrorCode.connectorAccessConflict, controlErrorCode.connectorAccessInvalid, controlErrorCode.connectorAccessRequired, controlErrorCode.connectorAccessUnsupported, controlErrorCode.connectorUnconfigured, controlErrorCode.connectorUnavailable, controlErrorCode.connectorConsoleUnconfigured, controlErrorCode.engineUnavailable, controlErrorCode.engineUnsupported, controlErrorCode.flowInvalid, controlErrorCode.flowRepairRequired, controlErrorCode.flowUpgradeRequired, controlErrorCode.flowNotFound, controlErrorCode.flowBusy, controlErrorCode.flowConflict, controlErrorCode.flowPresentationConflict, controlErrorCode.flowRevisionConflict, controlErrorCode.liveConflict, controlErrorCode.liveNotFound, controlErrorCode.pageInvalidCursor, controlErrorCode.publicationConflict, controlErrorCode.publicationNotFound, controlErrorCode.publicationUnsupported, controlErrorCode.publishOperationNotFound, controlErrorCode.routeNotFound, controlErrorCode.runConflict, controlErrorCode.runEventsExpired, controlErrorCode.runInvalid, controlErrorCode.runNotFound, controlErrorCode.runNotTerminal, controlErrorCode.runOverloaded, controlErrorCode.runWaitNotFound, controlErrorCode.triggerKeyInvalid, controlErrorCode.triggerKeyNotFound, controlErrorCode.triggerNotFound, controlErrorCode.variableInvalid, controlErrorCode.variableLimitReached, controlErrorCode.variableNotFound;
103782
103781
  var ApiError = class extends Error {
103783
103782
  constructor(status, code, message, details) {
103784
103783
  super(message);
@@ -103796,6 +103795,19 @@ var InvalidResponseError = class extends ApiError {
103796
103795
  this.detail = detail;
103797
103796
  }
103798
103797
  };
103798
+ function invalidResponse(detail) {
103799
+ throw new InvalidResponseError(detail);
103800
+ }
103801
+ function record(value) {
103802
+ if (value == null || typeof value != "object" || Array.isArray(value)) return invalidResponse("Expected an object.");
103803
+ return value;
103804
+ }
103805
+ function string(value) {
103806
+ return typeof value == "string" && value.length > 0 ? value : invalidResponse("Expected a non-empty string.");
103807
+ }
103808
+ function integer(value) {
103809
+ return Number.isSafeInteger(value) ? value : invalidResponse("Expected a safe integer.");
103810
+ }
103799
103811
  //#endregion
103800
103812
  //#region src/control/common/authoringLlm.ts
103801
103813
  var authoringLlmConfiguration = strictObject({
@@ -103808,26 +103820,26 @@ var authoringLlmConfiguration = strictObject({
103808
103820
  //#endregion
103809
103821
  //#region src/control/common/authoringOpenApi.ts
103810
103822
  var authenticationSchema = union$1([
103811
- strictObject({ schemes: array(string().min(1)).describe("One complete security alternative advertised by this operation; [] selects no authentication.") }),
103823
+ strictObject({ schemes: array(string$1().min(1)).describe("One complete security alternative advertised by this operation; [] selects no authentication.") }),
103812
103824
  strictObject({ type: _enum(["bearer", "basic"]) }),
103813
103825
  strictObject({
103814
103826
  type: literal("apiKey"),
103815
- name: string().min(1),
103827
+ name: string$1().min(1),
103816
103828
  in: _enum(["header", "query"])
103817
103829
  })
103818
103830
  ]);
103819
- strictObject({
103820
- sourceUrl: string().min(1),
103821
- path: string().min(1),
103822
- method: string().min(1),
103823
- serverUrl: string().optional(),
103831
+ var authoringOpenApiSchema = strictObject({
103832
+ sourceUrl: string$1().min(1),
103833
+ path: string$1().min(1),
103834
+ method: string$1().min(1),
103835
+ serverUrl: string$1().optional(),
103824
103836
  authentication: authenticationSchema.optional().describe("Omit to use the operation default. Bind credentials through the advertised node inputs.")
103825
103837
  });
103826
103838
  //#endregion
103827
103839
  //#region src/control/common/authoringSchema.ts
103828
- var id$1 = string().min(1);
103840
+ var id$1 = string$1().min(1);
103829
103841
  var json$1 = json$4();
103830
- var patch = record$2(id$1, json$1);
103842
+ var patch = record$3(id$1, json$1);
103831
103843
  var type$1 = _enum([
103832
103844
  "manual",
103833
103845
  "webhook",
@@ -103851,7 +103863,7 @@ var output = strictObject({
103851
103863
  kind: literal("output"),
103852
103864
  node: referenceSchema,
103853
103865
  port: id$1.optional().describe("Omit for a node with one output. For multiple outputs, choose a name from node details."),
103854
- field: string().optional()
103866
+ field: string$1().optional()
103855
103867
  });
103856
103868
  var variable = strictObject({
103857
103869
  kind: literal("variable"),
@@ -103883,11 +103895,11 @@ var operand = union$1([
103883
103895
  var agentTool = authoringDefinitionSchemas.agent.shape.tools.element.omit({
103884
103896
  id: true,
103885
103897
  inputs: true
103886
- }).extend({ inputs: record$2(id$1, authoringDefinitionSchemas.agent.shape.tools.element.shape.inputs.element.shape.source).optional().describe("Action input sources by name. The tool resolves types from the Action. New inputs default to model-provided; existing sources are preserved when omitted.") }).strict();
103898
+ }).extend({ inputs: record$3(id$1, authoringDefinitionSchemas.agent.shape.tools.element.shape.inputs.element.shape.source).optional().describe("Action input sources by name. The tool resolves types from the Action. New inputs default to model-provided; existing sources are preserved when omitted.") }).strict();
103887
103899
  var notification = strictObject({
103888
103900
  ...authoringDefinitionSchemas.connector.shape,
103889
103901
  messageHandle: id$1,
103890
- inputs: record$2(id$1, union$1([strictObject({
103902
+ inputs: record$3(id$1, union$1([strictObject({
103891
103903
  kind: literal("value"),
103892
103904
  value: json$1
103893
103905
  }), strictObject({
@@ -103898,10 +103910,10 @@ var notification = strictObject({
103898
103910
  var field = strictObject({
103899
103911
  schema: json$1.optional(),
103900
103912
  nullable: boolean().optional(),
103901
- description: string().optional()
103913
+ description: string$1().optional()
103902
103914
  });
103903
- var inputFields = record$2(id$1, field.extend({ default: json$1.optional() })).describe("Optional business input constraints by name. A binding to a new Code, Agent, LLM, Wait or Approval input automatically declares an input accepting any JSON. Existing constraints are preserved. Omitted schema accepts any JSON; omitted nullable is true. Use default for inherited values; input.set supplies data.");
103904
- var outputFields = record$2(id$1, field).describe("Code return fields by name. Omitted schema accepts any JSON; omitted nullable is true.");
103915
+ var inputFields = record$3(id$1, field.extend({ default: json$1.optional() })).describe("Optional business input constraints by name. A binding to a new Code, Agent, LLM, Wait or Approval input automatically declares an input accepting any JSON. Existing constraints are preserved. Omitted schema accepts any JSON; omitted nullable is true. Use default for inherited values; input.set supplies data.");
103916
+ var outputFields = record$3(id$1, field).describe("Code return fields by name. Omitted schema accepts any JSON; omitted nullable is true.");
103905
103917
  var expression = strictObject({
103906
103918
  left: operand,
103907
103919
  operator: authoringDefinitionSchemas.condition.shape.cases.element.shape.groups.element.shape.expressions.element.shape.operator,
@@ -103913,40 +103925,57 @@ var when = union$1([
103913
103925
  all,
103914
103926
  strictObject({ any: array(union$1([expression, all])) })
103915
103927
  ]);
103916
- strictObject({}), strictObject({ sourceFlowIds: array(id$1).optional() }), authoringDefinitionSchemas.webhook.omit({ bodyFields: true }).extend({ body: inputFields }).strict(), strictObject({ schedule: authoringDefinitionSchemas.schedule }), strictObject({
103917
- key: id$1,
103918
- connectionId: id$1.optional(),
103919
- schedule: authoringDefinitionSchemas.schedule
103920
- }), strictObject({
103921
- key: id$1,
103922
- connectionId: id$1.optional()
103923
- }), strictObject({
103924
- inputs: inputFields,
103925
- outputs: outputFields,
103926
- capabilities: authoringDefinitionSchemas.capabilities.optional()
103927
- }), authoringDefinitionSchemas.connector.strict(), authoringDefinitionSchemas.agent.omit({
103928
- prompt: true,
103929
- tools: true
103930
- }).extend({
103931
- inputs: inputFields,
103932
- resultSchema: json$1.describe("JSON schema of the final result. Defaults to text. The tool manages the output definition; references can omit port."),
103933
- tools: array(agentTool),
103934
- notification: notification.optional()
103935
- }).strict(), authoringLlmConfiguration.extend({ inputs: inputFields }), authoringDefinitionSchemas.decision, strictObject({
103936
- match: _enum(["first", "all"]),
103937
- branches: array(strictObject({
103938
- name: id$1,
103939
- description: string().optional(),
103940
- when
103941
- }))
103942
- }), strictObject({
103943
- values: patch,
103944
- outputs: outputFields
103945
- }), strictObject({ inputs: inputFields }), strictObject({ inputs: inputFields });
103928
+ var authoringConfigurations = {
103929
+ manual: strictObject({}),
103930
+ error: strictObject({ sourceFlowIds: array(id$1).optional() }),
103931
+ webhook: authoringDefinitionSchemas.webhook.omit({ bodyFields: true }).extend({ body: inputFields }).strict(),
103932
+ cron: strictObject({ schedule: authoringDefinitionSchemas.schedule }),
103933
+ poll: strictObject({
103934
+ key: id$1,
103935
+ connectionId: id$1.optional(),
103936
+ schedule: authoringDefinitionSchemas.schedule
103937
+ }),
103938
+ integration: strictObject({
103939
+ key: id$1,
103940
+ connectionId: id$1.optional()
103941
+ }),
103942
+ code: strictObject({
103943
+ inputs: inputFields,
103944
+ outputs: outputFields,
103945
+ capabilities: authoringDefinitionSchemas.capabilities.optional()
103946
+ }),
103947
+ connector: authoringDefinitionSchemas.connector.omit({ outputMode: true }).strict(),
103948
+ openapi: authoringOpenApiSchema,
103949
+ agent: authoringDefinitionSchemas.agent.omit({
103950
+ prompt: true,
103951
+ tools: true
103952
+ }).extend({
103953
+ inputs: inputFields,
103954
+ resultSchema: json$1.describe("JSON schema of the final result. Defaults to text. The tool manages the output definition; references can omit port."),
103955
+ tools: array(agentTool),
103956
+ notification: notification.optional()
103957
+ }).strict(),
103958
+ llm: authoringLlmConfiguration.extend({ inputs: inputFields }),
103959
+ decision: authoringDefinitionSchemas.decision,
103960
+ condition: strictObject({
103961
+ match: _enum(["first", "all"]),
103962
+ branches: array(strictObject({
103963
+ name: id$1,
103964
+ description: string$1().optional(),
103965
+ when
103966
+ }))
103967
+ }),
103968
+ value: strictObject({
103969
+ values: patch,
103970
+ outputs: outputFields
103971
+ }),
103972
+ wait: strictObject({ inputs: inputFields }),
103973
+ approval: strictObject({ inputs: inputFields })
103974
+ };
103946
103975
  var updates = strictObject({
103947
103976
  name: id$1.optional(),
103948
- description: string().optional(),
103949
- icon: string().optional(),
103977
+ description: string$1().optional(),
103978
+ icon: string$1().optional(),
103950
103979
  maxExecutions: int().positive().optional(),
103951
103980
  timeoutMs: number().nonnegative().optional(),
103952
103981
  config: patch.optional().describe("Recursively merge configuration; omitted fields remain unchanged and arrays replace as a whole. This includes schema objects: {} does not clear an existing schema. Use clear paths to remove fields, e.g. [\"config\",\"inputs\",\"amount\",\"schema\",\"type\"].")
@@ -103958,9 +103987,9 @@ var authoringEditSchema = discriminatedUnion("op", [
103958
103987
  type: type$1,
103959
103988
  name: id$1,
103960
103989
  config: patch.optional(),
103961
- inputs: record$2(id$1, authoringSourceSchema).optional().describe("Input data sources, applied after creation, as input.set operations. Execution edges are separate."),
103962
- code: string().optional(),
103963
- prompt: string().optional()
103990
+ inputs: record$3(id$1, authoringSourceSchema).optional().describe("Input data sources, applied after creation, as input.set operations. Execution edges are separate."),
103991
+ code: string$1().optional(),
103992
+ prompt: string$1().optional()
103964
103993
  }),
103965
103994
  strictObject({
103966
103995
  op: literal("node.update"),
@@ -103989,13 +104018,13 @@ var authoringEditSchema = discriminatedUnion("op", [
103989
104018
  node: referenceSchema,
103990
104019
  field: _enum(["code", "prompt"]),
103991
104020
  oldText: id$1,
103992
- newText: string()
104021
+ newText: string$1()
103993
104022
  }),
103994
104023
  strictObject({
103995
104024
  op: literal("text.set"),
103996
104025
  node: referenceSchema,
103997
104026
  field: _enum(["code", "prompt"]),
103998
- text: string()
104027
+ text: string$1()
103999
104028
  })
104000
104029
  ]);
104001
104030
  strictObject({
@@ -104030,9 +104059,9 @@ strictObject({
104030
104059
  }).refine((v) => v.type == null || v.action == null, "Choose type or action.");
104031
104060
  var authoringDiagnosticSchema = object$1({
104032
104061
  code: id$1,
104033
- message: string(),
104062
+ message: string$1(),
104034
104063
  nodes: array(id$1),
104035
- field: string().optional(),
104064
+ field: string$1().optional(),
104036
104065
  line: number().optional(),
104037
104066
  column: number().optional()
104038
104067
  });
@@ -104047,7 +104076,7 @@ object$1({
104047
104076
  flowId: id$1,
104048
104077
  saved: literal(true),
104049
104078
  revision: id$1,
104050
- nodes: record$2(id$1, id$1),
104079
+ nodes: record$3(id$1, id$1),
104051
104080
  changes: array(object$1({
104052
104081
  index: int(),
104053
104082
  op: id$1,
@@ -104067,9 +104096,9 @@ object$1({
104067
104096
  flowId: id$1,
104068
104097
  revision: id$1,
104069
104098
  data: object$1({
104070
- nodes: array(record$2(string(), json$1)).optional(),
104099
+ nodes: array(record$3(string$1(), json$1)).optional(),
104071
104100
  edges: array(json$1).optional(),
104072
- text: record$2(string(), json$1).optional()
104101
+ text: record$3(string$1(), json$1).optional()
104073
104102
  }),
104074
104103
  version: literal(1)
104075
104104
  });
@@ -104081,7 +104110,7 @@ object$1({
104081
104110
  node: id$1,
104082
104111
  field: id$1,
104083
104112
  line: int().optional(),
104084
- excerpt: string()
104113
+ excerpt: string$1()
104085
104114
  })),
104086
104115
  total: int(),
104087
104116
  nextOffset: int().optional()
@@ -104089,24 +104118,122 @@ object$1({
104089
104118
  version: literal(1)
104090
104119
  });
104091
104120
  union$1([strictObject({
104092
- handle: string().min(1),
104093
- description: string().optional(),
104121
+ handle: string$1().min(1),
104122
+ description: string$1().optional(),
104094
104123
  jsonSchema: json$4(),
104095
104124
  nullable: boolean(),
104096
104125
  value: json$4().optional()
104097
104126
  }), strictObject({
104098
- group: string(),
104127
+ group: string$1(),
104099
104128
  collapsed: boolean().optional()
104100
104129
  })]);
104130
+ //#endregion
104131
+ //#region src/control/common/triggerDecoders.ts
104132
+ var triggerKinds = /* @__PURE__ */ new Set([
104133
+ "error",
104134
+ "cron",
104135
+ "integration",
104136
+ "poll",
104137
+ "webhook"
104138
+ ]);
104139
+ var triggerHealth = /* @__PURE__ */ new Set([
104140
+ "failed",
104141
+ "healthy",
104142
+ "initializing",
104143
+ "needs_reauth",
104144
+ "suspended"
104145
+ ]);
104146
+ function triggerBinding(value) {
104147
+ const source = record(value);
104148
+ const health = source.health;
104149
+ const listener = source.listener == null ? void 0 : record(source.listener);
104150
+ if (listener != null && listener.health != "healthy" && listener.health != "failed" && listener.health != "needs_reauth") return invalidResponse();
104151
+ const kind = source.kind;
104152
+ const runtimeVersion = integer(source.runtimeVersion);
104153
+ if (source.version != 1 || typeof health != "string" || !triggerHealth.has(health)) return invalidResponse();
104154
+ if (typeof kind != "string" || !triggerKinds.has(kind)) return invalidResponse();
104155
+ if (runtimeVersion <= 0) return invalidResponse();
104156
+ return {
104157
+ ...source.currentPublicationId == null ? {} : { currentPublicationId: string(source.currentPublicationId) },
104158
+ ...source.currentRevisionId == null ? {} : { currentRevisionId: string(source.currentRevisionId) },
104159
+ ...source.endpointUrl == null ? {} : { endpointUrl: string(source.endpointUrl) },
104160
+ ...listener == null ? {} : { listener: {
104161
+ health: listener.health,
104162
+ ...listener.lastErrorCode == null ? {} : { lastErrorCode: string(listener.lastErrorCode) }
104163
+ } },
104164
+ flowId: string(source.flowId),
104165
+ health,
104166
+ kind,
104167
+ ...source.lastErrorCode == null ? {} : { lastErrorCode: string(source.lastErrorCode) },
104168
+ runtimeVersion,
104169
+ triggerNodeId: string(source.triggerNodeId),
104170
+ updatedAt: string(source.updatedAt),
104171
+ version: 1
104172
+ };
104173
+ }
104174
+ //#endregion
104175
+ //#region src/control/common/liveDetails.ts
104176
+ var metadata = {
104177
+ nodeId: string$1().min(1),
104178
+ name: string$1(),
104179
+ description: string$1().optional()
104180
+ };
104181
+ var binding = unknown().transform(triggerBinding);
104182
+ var provider = {
104183
+ provider: string$1().min(1),
104184
+ inputs: record$3(string$1(), discriminatedUnion("kind", [strictObject({
104185
+ kind: literal("value"),
104186
+ value: json$4()
104187
+ }), strictObject({ kind: literal("unset") })]))
104188
+ };
104189
+ discriminatedUnion("type", [
104190
+ strictObject({
104191
+ ...metadata,
104192
+ type: literal("manual"),
104193
+ config: authoringConfigurations.manual
104194
+ }),
104195
+ strictObject({
104196
+ ...metadata,
104197
+ type: literal("webhook"),
104198
+ config: authoringConfigurations.webhook,
104199
+ binding
104200
+ }),
104201
+ strictObject({
104202
+ ...metadata,
104203
+ type: literal("cron"),
104204
+ config: authoringConfigurations.cron,
104205
+ binding
104206
+ }),
104207
+ strictObject({
104208
+ ...metadata,
104209
+ type: literal("error"),
104210
+ config: authoringConfigurations.error,
104211
+ binding
104212
+ }),
104213
+ strictObject({
104214
+ ...metadata,
104215
+ ...provider,
104216
+ type: literal("poll"),
104217
+ config: authoringConfigurations.poll,
104218
+ binding
104219
+ }),
104220
+ strictObject({
104221
+ ...metadata,
104222
+ ...provider,
104223
+ type: literal("integration"),
104224
+ config: authoringConfigurations.integration,
104225
+ binding
104226
+ })
104227
+ ]);
104101
104228
  discriminatedUnion("kind", [strictObject({ kind: literal("admin-delegation") }), strictObject({
104102
104229
  kind: literal("policy"),
104103
- ruleId: string().min(1).nullable()
104230
+ ruleId: string$1().min(1).nullable()
104104
104231
  })]);
104105
104232
  //#endregion
104106
104233
  //#region src/control/common/eventSources.ts
104107
- var id = string().min(1).max(256);
104108
- var eventType = string().regex(/^[a-z][a-z0-9_.]{0,127}$/);
104109
- var name$1 = string().trim().min(1).max(128);
104234
+ var id = string$1().min(1).max(256);
104235
+ var eventType = string$1().regex(/^[a-z][a-z0-9_.]{0,127}$/);
104236
+ var name$1 = string$1().trim().min(1).max(128);
104110
104237
  strictObject({
104111
104238
  version: literal(1),
104112
104239
  sourceId: id,
@@ -104121,18 +104248,18 @@ strictObject({
104121
104248
  manageSubscriptions: boolean(),
104122
104249
  verificationTokenConfigured: boolean(),
104123
104250
  encryptKeyConfigured: boolean(),
104124
- endpointUrl: string().nullable(),
104125
- verifiedAt: string().nullable(),
104126
- lastReceivedAt: string().nullable(),
104127
- updatedAt: string(),
104251
+ endpointUrl: string$1().nullable(),
104252
+ verifiedAt: string$1().nullable(),
104253
+ lastReceivedAt: string$1().nullable(),
104254
+ updatedAt: string$1(),
104128
104255
  consumers: array(strictObject({
104129
104256
  flowId: id,
104130
- flowName: string(),
104257
+ flowName: string$1(),
104131
104258
  triggerNodeId: id
104132
104259
  }))
104133
104260
  });
104134
104261
  strictObject({
104135
- pointer: string().max(4096).default(""),
104262
+ pointer: string$1().max(4096).default(""),
104136
104263
  offset: number().int().nonnegative().default(0),
104137
104264
  limit: number().int().min(1).max(100).default(20),
104138
104265
  maxBytes: number().int().min(1).max(1048576).default(15e3)
@@ -104141,7 +104268,7 @@ strictObject({
104141
104268
  //#region src/control/common/results.ts
104142
104269
  var json = json$4();
104143
104270
  var entry = strictObject({
104144
- pointer: string(),
104271
+ pointer: string$1(),
104145
104272
  type: _enum([
104146
104273
  "object",
104147
104274
  "array",
@@ -104160,26 +104287,26 @@ var page = entry.extend({
104160
104287
  entries: array(entry).optional()
104161
104288
  });
104162
104289
  var result = strictObject({
104163
- resultId: string().min(1),
104164
- callId: string().min(1),
104165
- toolId: string().min(1),
104290
+ resultId: string$1().min(1),
104291
+ callId: string$1().min(1),
104292
+ toolId: string$1().min(1),
104166
104293
  source: discriminatedUnion("kind", [strictObject({
104167
104294
  kind: literal("connector"),
104168
- action: string().min(1)
104295
+ action: string$1().min(1)
104169
104296
  }), strictObject({ kind: literal("code") })]),
104170
104297
  bytes: number().int().nonnegative(),
104171
- digest: string().regex(/^[a-f0-9]{64}$/),
104172
- createdAt: string().datetime()
104298
+ digest: string$1().regex(/^[a-f0-9]{64}$/),
104299
+ createdAt: string$1().datetime()
104173
104300
  });
104174
104301
  strictObject({
104175
104302
  version: literal(1),
104176
- runId: string(),
104303
+ runId: string$1(),
104177
104304
  results: array(result),
104178
- nextAfter: string().optional()
104305
+ nextAfter: string$1().optional()
104179
104306
  });
104180
104307
  strictObject({
104181
104308
  version: literal(1),
104182
- runId: string(),
104309
+ runId: string$1(),
104183
104310
  result,
104184
104311
  page
104185
104312
  });
@@ -104217,7 +104344,6 @@ var errorKeys = {
104217
104344
  [controlErrorCode.pageInvalidCursor]: "notice.error.pageInvalidCursor",
104218
104345
  [controlErrorCode.publicationConflict]: "notice.error.publicationConflict",
104219
104346
  [controlErrorCode.publicationNotFound]: "notice.error.publicationNotFound",
104220
- [controlErrorCode.resourceNotFound]: "notice.error.resourceNotFound",
104221
104347
  [controlErrorCode.publicationUnsupported]: "notice.error.publicationUnsupported",
104222
104348
  [controlErrorCode.publishOperationNotFound]: "notice.error.publishOperationNotFound",
104223
104349
  [controlErrorCode.routeNotFound]: "notice.error.routeNotFound",
@@ -105555,7 +105681,10 @@ var resources = {
105555
105681
  "enabledHint": "Controls new live runs. Draft tests remain available.",
105556
105682
  "publish": "Publish",
105557
105683
  "publishUpdate": "Update",
105558
- "deleteDescription": "This deletes the flow and its run history and stops live triggers. This cannot be undone."
105684
+ "deleteDescription": "This deletes the flow and its run history and stops live triggers. This cannot be undone.",
105685
+ "importFlow": "Import workflow",
105686
+ "exportFlow": "Export workflow",
105687
+ "importInvalid": "Invalid or unsupported workflow file."
105559
105688
  },
105560
105689
  inspector: {
105561
105690
  "outline": "Node outline",
@@ -105792,7 +105921,6 @@ var resources = {
105792
105921
  "pageInvalidCursor": "This list changed while it was loading. Reload the list.",
105793
105922
  "publicationConflict": "The publication state changed since it was loaded. Refresh and try again.",
105794
105923
  "publicationNotFound": "This Publication does not exist or was deleted. Refresh the Publication list.",
105795
- "resourceNotFound": "The resource was not found in this publication.",
105796
105924
  "publicationUnsupported": "This Flow cannot be published because an existing Trigger subscription cannot be changed safely.",
105797
105925
  "publishOperationNotFound": "The publishing status is no longer available. Start publishing again.",
105798
105926
  "responseInvalid": "The service returned data that Open Flow could not read. Try again later.",
@@ -105821,7 +105949,9 @@ var resources = {
105821
105949
  "networkFailed": "Could not reach the service. Check your connection and try again.",
105822
105950
  "published": "Published {{name}}.",
105823
105951
  "rolledBack": "Rolled Live back to revision {{revision}}.",
105824
- "requestFailed": "The service could not complete this operation. Try again later."
105952
+ "requestFailed": "The service could not complete this operation. Try again later.",
105953
+ "flowImported": "Workflow imported. Configure external resources before running or publishing.",
105954
+ "exportSaveFailed": "Export stopped because the draft or layout could not be saved. Retry saving before exporting."
105825
105955
  },
105826
105956
  publication: {
105827
105957
  "active": "Active",
@@ -106348,6 +106478,14 @@ var resources = {
106348
106478
  "description": "Description",
106349
106479
  "required": "Input required"
106350
106480
  },
106481
+ webhookDeployment: {
106482
+ "title": "Live Webhook",
106483
+ "unpublished": "Publish this flow to generate a Webhook URL.",
106484
+ "unpublishedChanges": "Live uses the published version. Draft changes are not live yet.",
106485
+ "loadFailed": "Could not load the Webhook deployment.",
106486
+ "pending": "The Webhook URL is not available yet.",
106487
+ "copyFailed": "Could not copy. Select the URL and copy it manually."
106488
+ },
106351
106489
  webhookEditor: {
106352
106490
  "webhookAddHeader": "Add header",
106353
106491
  "webhookDeleteHeader": "Delete response header",
@@ -106988,7 +107126,10 @@ var resources = {
106988
107126
  "enabledHint": "控制新的线上运行,草稿测试仍可使用。",
106989
107127
  "publish": "发布",
106990
107128
  "publishUpdate": "更新",
106991
- "deleteDescription": "此操作将删除工作流及其运行记录,并停止线上触发,无法撤销。"
107129
+ "deleteDescription": "此操作将删除工作流及其运行记录,并停止线上触发,无法撤销。",
107130
+ "importFlow": "导入工作流",
107131
+ "exportFlow": "导出工作流",
107132
+ "importInvalid": "文件损坏或工作流格式不受支持。"
106992
107133
  },
106993
107134
  inspector: {
106994
107135
  "outline": "节点大纲",
@@ -107225,7 +107366,6 @@ var resources = {
107225
107366
  "pageInvalidCursor": "列表加载期间内容已发生变化,请重新加载列表。",
107226
107367
  "publicationConflict": "发布状态已发生变化,请刷新后重试。",
107227
107368
  "publicationNotFound": "找不到这条发布记录,请刷新发布列表。",
107228
- "resourceNotFound": "此发布版本中找不到该资源。",
107229
107369
  "publicationUnsupported": "现有 Trigger 订阅无法安全变更,因此无法发布此工作流。",
107230
107370
  "publishOperationNotFound": "本次发布状态已不可用,请重新发起发布。",
107231
107371
  "responseInvalid": "服务返回了无法识别的数据,请稍后重试。",
@@ -107254,7 +107394,9 @@ var resources = {
107254
107394
  "networkFailed": "暂时无法连接服务,请检查网络后重试。",
107255
107395
  "published": "已发布 {{name}}。",
107256
107396
  "rolledBack": "已将线上版本回滚到修订 {{revision}}。",
107257
- "requestFailed": "服务未能完成此操作,请稍后重试。"
107397
+ "requestFailed": "服务未能完成此操作,请稍后重试。",
107398
+ "flowImported": "工作流已导入。运行或发布前请重新配置外部资源。",
107399
+ "exportSaveFailed": "草稿或布局未能保存,已停止导出。请保存成功后重试。"
107258
107400
  },
107259
107401
  publication: {
107260
107402
  "active": "运行中",
@@ -107781,6 +107923,14 @@ var resources = {
107781
107923
  "description": "说明",
107782
107924
  "required": "需要输入"
107783
107925
  },
107926
+ webhookDeployment: {
107927
+ "title": "线上 Webhook",
107928
+ "unpublished": "发布后生成 Webhook 地址。",
107929
+ "unpublishedChanges": "线上使用已发布版本,草稿修改尚未生效。",
107930
+ "loadFailed": "无法加载 Webhook 部署信息。",
107931
+ "pending": "Webhook 地址暂未就绪。",
107932
+ "copyFailed": "复制失败,请选中地址手动复制。"
107933
+ },
107784
107934
  webhookEditor: {
107785
107935
  "webhookAddHeader": "添加响应头",
107786
107936
  "webhookDeleteHeader": "删除响应头",
@@ -108421,7 +108571,10 @@ var resources = {
108421
108571
  "enabledHint": "控制新的線上執行,草稿測試仍可使用。",
108422
108572
  "publish": "發佈",
108423
108573
  "publishUpdate": "更新",
108424
- "deleteDescription": "此操作將刪除工作流程及其執行記錄,並停止線上觸發,無法復原。"
108574
+ "deleteDescription": "此操作將刪除工作流程及其執行記錄,並停止線上觸發,無法復原。",
108575
+ "importFlow": "匯入工作流",
108576
+ "exportFlow": "匯出工作流",
108577
+ "importInvalid": "檔案損壞或工作流格式不受支援。"
108425
108578
  },
108426
108579
  inspector: {
108427
108580
  "outline": "節點大綱",
@@ -108658,7 +108811,6 @@ var resources = {
108658
108811
  "pageInvalidCursor": "列表載入期間內容已變更,請重新載入列表。",
108659
108812
  "publicationConflict": "發布狀態已變更,請重新整理後再試一次。",
108660
108813
  "publicationNotFound": "找不到這筆發布記錄,請重新整理發布列表。",
108661
- "resourceNotFound": "此發布版本中找不到該資源。",
108662
108814
  "publicationUnsupported": "現有的 Trigger 訂閱無法安全變更,因此無法發布此 Flow。",
108663
108815
  "publishOperationNotFound": "本次發布狀態已無法使用,請重新發起發布。",
108664
108816
  "responseInvalid": "服務傳回了無法識別的資料,請稍後再試一次。",
@@ -108687,7 +108839,9 @@ var resources = {
108687
108839
  "networkFailed": "暫時無法連線到服務,請檢查網路後再試一次。",
108688
108840
  "published": "已發布 {{name}}。",
108689
108841
  "rolledBack": "已將線上版本還原到修訂 {{revision}}。",
108690
- "requestFailed": "服務未能完成此操作,請稍後再試一次。"
108842
+ "requestFailed": "服務未能完成此操作,請稍後再試一次。",
108843
+ "flowImported": "工作流已匯入。執行或發佈前請重新設定外部資源。",
108844
+ "exportSaveFailed": "草稿或版面未能儲存,已停止匯出。請儲存成功後重試。"
108691
108845
  },
108692
108846
  publication: {
108693
108847
  "active": "運作中",
@@ -109214,6 +109368,14 @@ var resources = {
109214
109368
  "description": "說明",
109215
109369
  "required": "需要輸入"
109216
109370
  },
109371
+ webhookDeployment: {
109372
+ "title": "線上 Webhook",
109373
+ "unpublished": "發佈後產生 Webhook 位址。",
109374
+ "unpublishedChanges": "線上使用已發佈版本,草稿修改尚未生效。",
109375
+ "loadFailed": "無法載入 Webhook 部署資訊。",
109376
+ "pending": "Webhook 位址尚未就緒。",
109377
+ "copyFailed": "複製失敗,請選取位址手動複製。"
109378
+ },
109217
109379
  webhookEditor: {
109218
109380
  "webhookAddHeader": "新增標頭",
109219
109381
  "webhookDeleteHeader": "刪除回應標頭",
@@ -109854,7 +110016,10 @@ var resources = {
109854
110016
  "enabledHint": "新しい本番実行を制御します。下書きのテストは引き続き利用できます。",
109855
110017
  "publish": "公開",
109856
110018
  "publishUpdate": "更新",
109857
- "deleteDescription": "フローと実行履歴を削除し、本番のトリガーを停止します。この操作は取り消せません。"
110019
+ "deleteDescription": "フローと実行履歴を削除し、本番のトリガーを停止します。この操作は取り消せません。",
110020
+ "importFlow": "ワークフローをインポート",
110021
+ "exportFlow": "ワークフローをエクスポート",
110022
+ "importInvalid": "無効または未対応のワークフローファイルです。"
109858
110023
  },
109859
110024
  inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"ノード一覧\",\"backToOutline\":\"ノード一覧に戻る\",\"emptyOutline\":\"ノードはまだありません\",\"triggers\":\"トリガー\",\"nodes\":\"ノード\",\"multipleSelected\":\"{{count}} 個のノードを選択中\",\"account\":{\"contactAdmin\":\"この操作を実行する権限がありません。管理者にお問い合わせください。\",\"accessTitle\":\"アクセス権限\",\"manageFlowAccess\":\"Code で使用できる接続\",\"configureAccess\":\"アカウントを選択\",\"manageAccount\":\"アカウントを管理\",\"required\":\"アカウント接続が必要\",\"addAccount\":\"アカウントを追加\",\"manage\":\"管理\",\"authorizationPending\":\"Connection ページで認証を完了してください。ここに戻ると、このアカウントが更新されます。\",\"chooseAccount\":\"アカウントを選択\",\"connectBeforeRun\":\"このノードを実行または公開するには、先に {{service}} を接続してください。\",\"connectService\":\"{{service}} を接続\",\"connection\":\"Connection\",\"loading\":\"Connection を読み込み中…\",\"oomolBuiltIn\":\"OOMOL 組み込みアカウント\",\"missing\":\"このノードで選択されたアカウントは現在利用できません。別のアカウントを選択するか、アカウントを管理してください。\",\"refreshFailed\":\"Connection を更新できませんでした。\",\"retry\":\"再試行\",\"status\":{\"disconnected\":\"この Connection は切断されています。再接続するか、別のアカウントを選択してください。\",\"error\":\"この Connection にエラーがあります。修復するか、別のアカウントを選択してください。\",\"reauth_required\":\"この Connection は再認証が必要です。再接続するか、別のアカウントを選択してください。\"},\"statusUnavailable\":\"{{action}} の Connection 状態を取得できません。\",\"teamDefault\":\"チームのデフォルト\",\"title\":\"アカウント\",\"unavailable\":\"利用不可\"},\"close\":\"インスペクターを閉じる\",\"configurationRequired\":\"設定が必要\",\"diagnostics\":\"診断\",\"errors\":{\"jsonObject\":\"{{label}} は JSON オブジェクトである必要があります。\",\"portDefinitions\":\"有効なポート定義を入力してください。\"},\"node\":{\"nameDuplicate\":\"このグラフには同じ名前のノードが既に存在します。\",\"nameEmpty\":\"ノード名を空にすることはできません。\",\"timeout\":\"タイムアウト(ミリ秒)\",\"maxExecutions\":\"ノード実行上限\",\"maxExecutionsError\":\"ノード実行上限は正の整数で指定してください。\",\"timeoutError\":\"タイムアウトはミリ秒単位の正の整数で指定してください。\",\"title\":\"ノード設定\",\"description\":\"目的\",\"describe\":\"このステップの目的を記述します。\",\"icon\":\"アイコン\",\"name\":\"タイトル\"},\"selectNode\":\"ドラフトのノードを 1 つ選択すると、内容を確認して編集できます。\",\"locateNode\":\"キャンバス上でこのノードを表示\",\"task\":{\"sharedPermissions\":\"Flow の共有権限グループを使用\",\"sharedPermissionsHint\":\"Flow の共有権限グループで許可されたすべての Action を使用します。個別の追加は不要です。\",\"addAction\":\"Action を追加\",\"removeAction\":\"Action を削除\",\"actionAccount\":\"アカウント\",\"chooseAccount\":\"アカウントを選択\",\"permissionSaveFailed\":\"Code の権限を保存できませんでした。再試行してください。\",\"chatText\":\"チャットテキスト\",\"connectorAction\":\"Connector アクション\",\"definition\":\"タスク定義\",\"discardCode\":\"変更を破棄\",\"editorLoading\":\"エディターを読み込み中…\",\"editorUnavailable\":\"コードエディターを読み込めませんでした。\",\"inputPorts\":\"入力ポート\",\"javascriptModule\":\"コード\",\"missing\":\"参照しているタスクが存在しません。\",\"outputPorts\":\"出力ポート\",\"responseMode\":\"応答モード\",\"source\":\"ソースコード\",\"structuredJson\":\"構造化 JSON\",\"retrySave\":\"保存を再試行\",\"additionalInputs\":\"追加入力\"},\"wait\":{\"approval\":\"承認または拒否\",\"changeNotification\":\"変更\",\"continue\":\"続行\",\"mode\":\"処理方法\",\"inputsLoading\":\"通知パラメーターを読み込んでいます…\",\"pendingDescription\":\"確認待ち出力は待機開始時に一度だけ発火し、確認リンクと関連データを提供します。接続先でメッセージの送信や他のステップを実行できます。\",\"prompt\":\"プロンプト\",\"promptError\":\"プロンプトは1〜1,000文字で入力してください。\"},\"title\":\"インスペクター\",\"sources\":{\"loading\":\"入力元を読み込み中…\",\"loadFailed\":\"入力元を読み込めません。メニューを開き直してください。\",\"checkFailed\":\"このソースを確認できませんでした。\",\"select\":\"入力元を選択\",\"title\":\"入力元\",\"sourceMissing\":\"元の入力元は存在しません。選択し直してください。\",\"outputMissing\":\"「{{source}}」に「{{output}}」が見つかりません。選択し直してください。\",\"wholeObject\":\"オブジェクト全体\",\"fieldMissing\":\"「{{output}}」にフィールド {{field}} が宣言されていません。選択し直してください。\",\"notReady\":\"ここを実行するとき、「{{source}} {{handle}}」にまだ値がない可能性があります。\",\"sourceConflict\":\"同時に値を持つ可能性があります:{{sources}}。ここでは 1 つだけ使用できます。\",\"incompatibleRight\":\"右辺の値の型はこの比較に対応していません。\",\"incompatible\":\"非互換\",\"unverified\":\"未検証\",\"schemaIncompatible\":\"データ形式が一致しません。\",\"schemaPathIncompatible\":\"「{{path}}」のデータ形式が一致しません。\",\"schemaCompareFailed\":\"データ形式を確認できません。JSON Schema を確認してください。\",\"binaryIncompatible\":\"バイナリデータは使用できません。\",\"artifactIncompatible\":\"ファイルデータは使用できません。\",\"nullableIncompatible\":\"値が必要ですが、選択したフィールドは空になる可能性があります。\",\"typeIncompatible\":\"{{target}}が必要ですが、選択したフィールドは{{source}}です。\",\"propertyTypeIncompatible\":\"「{{path}}」は{{target}}である必要がありますが、実際は{{source}}です。\",\"requiredIncompatible\":\"必須プロパティ「{{property}}」がない可能性があります。\",\"enumIncompatible\":\"使用できない値が含まれる可能性があります:{{values}}。\",\"constIncompatible\":\"{{target}}のみ使用できますが、選択したフィールドは常に {{source}} です。\",\"constraintSubject\":\"「{{path}}」は\",\"minLength\":\"{{subject}}少なくとも {{value}} 文字必要です。\",\"maxLength\":\"{{subject}}最大 {{value}} 文字です。\",\"pattern\":\"{{subject}}{{value}} に一致する必要があります。\",\"minimum\":\"{{subject}}{{value}} 未満にできません。\",\"exclusiveMinimum\":\"{{subject}}{{value}} より大きい必要があります。\",\"maximum\":\"{{subject}}{{value}} を超えられません。\",\"exclusiveMaximum\":\"{{subject}}{{value}} より小さい必要があります。\",\"multipleOf\":\"{{subject}}{{value}} の倍数である必要があります。\",\"minItems\":\"{{subject}}少なくとも {{value}} 項必要です。\",\"maxItems\":\"{{subject}}最大 {{value}} 項です。\",\"minProperties\":\"{{subject}}少なくとも {{value}} 個のプロパティが必要です。\",\"maxProperties\":\"{{subject}}最大 {{value}} 個のプロパティです。\",\"integer\":\"整数\",\"unknownType\":\"不明な型\",\"typeSeparator\":\"または\"},\"actions\":{\"flowAccess\":\"利用可能なサービス\",\"flowAccessHint\":\"この Flow のすべての Code ノードで共有する接続を管理\",\"chooseConnection\":\"{{provider}} Connection を選択\",\"connectionDescription\":\"Connection はこの呼び出しに挿入されます。使用可否は引き続き Flow Provider Access によって制御されます。\",\"title\":\"このコードから呼び出せるアクション\",\"search\":\"Action を検索\",\"description\":\"このコードで使用する Action とアカウントを選択します。\",\"empty\":\"一致する Action はありません。\",\"remove\":\"削除\",\"default\":\"既定のアカウント\",\"defaultHint\":\"呼び出し時にアカウントを指定しない場合に使用します。\",\"removeAction\":\"アクションを削除\",\"explicit\":\"コード内で明示的に選択\",\"connect\":\"アカウントを接続\",\"refresh\":\"アカウントを更新\",\"aliases\":\"保存済みの別名を更新\",\"add\":\"アクションを追加\",\"cancel\":\"キャンセル\",\"loading\":\"検索中…\",\"needsAccount\":\"アカウントを接続\",\"accounts\":\"{{count}} アカウント\",\"public\":\"アカウント不要\",\"allowed\":\"使用するアカウント\",\"unavailable\":\"利用不可\",\"details\":\"接続の詳細\",\"example\":\"呼び出し例\",\"syntax\":\"呼び出し形式\",\"nested\":\"プロバイダー形式\",\"fullId\":\"完全な ID\",\"copy\":\"コピー\",\"copied\":\"コピー済み\",\"copyError\":\"コピーできませんでした。コードを選択して手動でコピーしてください。\",\"introDescription\":\"必要に応じてアクションを追加し、{{context}} から外部アプリを呼び出せます。\",\"insertAction\":\"コードを挿入\",\"chooseAccounts\":\"アカウントを管理\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"プレビュー\"},\"ports\":{\"reorder\":\"{{name}} の順序を変更\",\"reorderHint\":\"ドラッグでグループ内の順序を変更。フォーカス時は上下キーでも移動できます。\",\"moved\":\"{{name}} を {{position}} 番目に移動しました。\",\"groupSettings\":\"グループ設定\",\"connected\":\"接続済み\",\"sort\":\"並べ替え\",\"finishSorting\":\"並べ替えを完了\",\"inputsTitle\":\"入力\",\"noInputs\":\"このノードには入力データが必要ありません。\",\"noOutputs\":\"このノードは出力データを提供しません。\",\"outputsTitle\":\"出力\",\"valuesTitle\":\"値\",\"columnHandle\":\"Handle\",\"columnName\":\"名前\",\"columnType\":\"型\",\"columnValue\":\"値\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"この実行をトリガーした予定時刻(ISO 8601 形式)です。\"},\"webhook\":{\"headers\":\"この Webhook リクエストで受信したリクエストヘッダーです。\",\"query\":\"この Webhook リクエストで受信した URL クエリパラメーターです。\",\"body\":\"この Webhook リクエストで受信したリクエストボディです。\",\"webhookUrl\":\"このリクエストを受信した Webhook URL(クエリパラメーターを除く)です。\"}}}}"),
109860
110025
  language: { "label": "言語" },
@@ -109887,7 +110052,6 @@ var resources = {
109887
110052
  "pageInvalidCursor": "読み込み中に一覧が変更されました。一覧を再読み込みしてください。",
109888
110053
  "publicationConflict": "公開状態は読み込み後に変更されました。更新してから再試行してください。",
109889
110054
  "publicationNotFound": "この Publication は存在しないか、削除されています。Publication 一覧を更新してください。",
109890
- "resourceNotFound": "この公開バージョンにリソースが見つかりません。",
109891
110055
  "publicationUnsupported": "既存の Trigger サブスクリプションを安全に変更できないため、この Flow は公開できません。",
109892
110056
  "publishOperationNotFound": "公開状況を確認できなくなりました。もう一度公開を開始してください。",
109893
110057
  "responseInvalid": "サービスから読み取れないデータが返されました。しばらくしてから再試行してください。",
@@ -109916,7 +110080,9 @@ var resources = {
109916
110080
  "networkFailed": "サービスに接続できません。ネットワーク接続を確認してから再試行してください。",
109917
110081
  "published": "{{name}} を公開しました。",
109918
110082
  "rolledBack": "本番をリビジョン {{revision}} にロールバックしました。",
109919
- "requestFailed": "サービスがこの操作を完了できませんでした。しばらくしてから再試行してください。"
110083
+ "requestFailed": "サービスがこの操作を完了できませんでした。しばらくしてから再試行してください。",
110084
+ "flowImported": "インポートしました。実行や公開の前に外部リソースを設定してください。",
110085
+ "exportSaveFailed": "下書きまたはレイアウトを保存できませんでした。保存後に再度エクスポートしてください。"
109920
110086
  },
109921
110087
  publication: {
109922
110088
  "active": "稼働中",
@@ -110443,6 +110609,14 @@ var resources = {
110443
110609
  "description": "説明",
110444
110610
  "required": "入力が必要"
110445
110611
  },
110612
+ webhookDeployment: {
110613
+ "title": "公開中の Webhook",
110614
+ "unpublished": "公開すると Webhook URL が生成されます。",
110615
+ "unpublishedChanges": "公開済みのバージョンが使用されています。下書きの変更はまだ反映されていません。",
110616
+ "loadFailed": "Webhook のデプロイ情報を読み込めませんでした。",
110617
+ "pending": "Webhook URL はまだ利用できません。",
110618
+ "copyFailed": "コピーできませんでした。URL を選択して手動でコピーしてください。"
110619
+ },
110446
110620
  webhookEditor: {
110447
110621
  "webhookAddHeader": "レスポンスヘッダーを追加",
110448
110622
  "webhookDeleteHeader": "レスポンスヘッダーを削除",
@@ -111083,7 +111257,10 @@ var resources = {
111083
111257
  "enabledHint": "새 프로덕션 실행을 제어합니다. 초안 테스트는 계속 사용할 수 있습니다.",
111084
111258
  "publish": "게시",
111085
111259
  "publishUpdate": "업데이트",
111086
- "deleteDescription": "워크플로와 실행 기록을 삭제하고 프로덕션 트리거를 중지합니다. 이 작업은 되돌릴 수 없습니다."
111260
+ "deleteDescription": "워크플로와 실행 기록을 삭제하고 프로덕션 트리거를 중지합니다. 이 작업은 되돌릴 수 없습니다.",
111261
+ "importFlow": "워크플로 가져오기",
111262
+ "exportFlow": "워크플로 내보내기",
111263
+ "importInvalid": "잘못되었거나 지원하지 않는 워크플로 파일입니다."
111087
111264
  },
111088
111265
  inspector: {
111089
111266
  "outline": "노드 목록",
@@ -111320,7 +111497,6 @@ var resources = {
111320
111497
  "pageInvalidCursor": "목록을 불러오는 중에 내용이 변경되었습니다. 목록을 다시 불러오세요.",
111321
111498
  "publicationConflict": "불러온 뒤 게시 상태가 변경되었습니다. 새로 고친 뒤 다시 시도하세요.",
111322
111499
  "publicationNotFound": "이 Publication이 없거나 삭제되었습니다. Publication 목록을 새로 고치세요.",
111323
- "resourceNotFound": "이 게시 버전에서 리소스를 찾을 수 없습니다.",
111324
111500
  "publicationUnsupported": "기존 Trigger 구독을 안전하게 변경할 수 없어 이 Flow를 게시할 수 없습니다.",
111325
111501
  "publishOperationNotFound": "게시 상태를 더 이상 확인할 수 없습니다. 게시를 다시 시작하세요.",
111326
111502
  "responseInvalid": "서비스에서 Open Flow가 읽을 수 없는 데이터를 반환했습니다. 나중에 다시 시도하세요.",
@@ -111349,7 +111525,9 @@ var resources = {
111349
111525
  "networkFailed": "서비스에 연결할 수 없습니다. 네트워크 연결을 확인한 뒤 다시 시도하세요.",
111350
111526
  "published": "{{name}} 게시를 완료했습니다.",
111351
111527
  "rolledBack": "라이브를 리비전 {{revision}}(으)로 롤백했습니다.",
111352
- "requestFailed": "서비스에서 이 작업을 완료하지 못했습니다. 나중에 다시 시도하세요."
111528
+ "requestFailed": "서비스에서 이 작업을 완료하지 못했습니다. 나중에 다시 시도하세요.",
111529
+ "flowImported": "가져왔습니다. 실행하거나 게시하기 전에 외부 리소스를 설정하세요.",
111530
+ "exportSaveFailed": "초안 또는 레이아웃을 저장하지 못했습니다. 저장 후 다시 내보내세요."
111353
111531
  },
111354
111532
  publication: {
111355
111533
  "active": "활성",
@@ -111876,6 +112054,14 @@ var resources = {
111876
112054
  "description": "설명",
111877
112055
  "required": "입력 필요"
111878
112056
  },
112057
+ webhookDeployment: {
112058
+ "title": "배포된 Webhook",
112059
+ "unpublished": "게시하면 Webhook URL이 생성됩니다.",
112060
+ "unpublishedChanges": "게시된 버전을 사용 중입니다. 초안 변경 사항은 아직 반영되지 않았습니다.",
112061
+ "loadFailed": "Webhook 배포 정보를 불러올 수 없습니다.",
112062
+ "pending": "Webhook URL이 아직 준비되지 않았습니다.",
112063
+ "copyFailed": "복사하지 못했습니다. URL을 선택하여 직접 복사하세요."
112064
+ },
111879
112065
  webhookEditor: {
111880
112066
  "webhookAddHeader": "헤더 추가",
111881
112067
  "webhookDeleteHeader": "응답 헤더 삭제",
@@ -112516,7 +112702,10 @@ var resources = {
112516
112702
  "enabledHint": "Управляет новыми рабочими запусками. Тесты черновика остаются доступны.",
112517
112703
  "publish": "Опубликовать",
112518
112704
  "publishUpdate": "Обновить",
112519
- "deleteDescription": "Поток и история запусков будут удалены, рабочие триггеры остановлены. Это действие нельзя отменить."
112705
+ "deleteDescription": "Поток и история запусков будут удалены, рабочие триггеры остановлены. Это действие нельзя отменить.",
112706
+ "importFlow": "Импортировать процесс",
112707
+ "exportFlow": "Экспортировать процесс",
112708
+ "importInvalid": "Некорректный или неподдерживаемый файл процесса."
112520
112709
  },
112521
112710
  inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"Список узлов\",\"backToOutline\":\"Вернуться к списку узлов\",\"emptyOutline\":\"Узлов пока нет\",\"triggers\":\"Триггеры\",\"nodes\":\"Узлы\",\"multipleSelected\":\"Выбрано узлов: {{count}}\",\"account\":{\"contactAdmin\":\"У вас нет прав для выполнения этой операции. Обратитесь к администратору.\",\"accessTitle\":\"Права доступа\",\"manageFlowAccess\":\"Подключения, доступные Code\",\"configureAccess\":\"Выбрать аккаунт\",\"manageAccount\":\"Управление аккаунтами\",\"required\":\"Требуется подключение аккаунта\",\"addAccount\":\"Добавить аккаунт\",\"manage\":\"Управление\",\"authorizationPending\":\"Завершите авторизацию на странице Connection, затем вернитесь сюда, чтобы обновить этот аккаунт.\",\"chooseAccount\":\"Выберите аккаунт\",\"connectBeforeRun\":\"Подключите {{service}}, чтобы этот узел можно было запускать и публиковать.\",\"connectService\":\"Подключить {{service}}\",\"connection\":\"Connection\",\"loading\":\"Загрузка Connection…\",\"oomolBuiltIn\":\"Встроенный аккаунт OOMOL\",\"missing\":\"Выбранный для этого узла аккаунт недоступен. Выберите другой аккаунт или откройте управление подключениями.\",\"refreshFailed\":\"Не удалось обновить Connection.\",\"retry\":\"Повторить\",\"status\":{\"disconnected\":\"Этот Connection отключён. Подключите его заново или выберите другой аккаунт.\",\"error\":\"В этом Connection ошибка. Исправьте её или выберите другой аккаунт.\",\"reauth_required\":\"Этому Connection нужна повторная авторизация. Подключите его заново или выберите другой аккаунт.\"},\"statusUnavailable\":\"Статус Connection недоступен для {{action}}.\",\"teamDefault\":\"По умолчанию для команды\",\"title\":\"Аккаунт\",\"unavailable\":\"недоступно\"},\"close\":\"Закрыть инспектор\",\"configurationRequired\":\"Требуется настройка\",\"diagnostics\":\"Диагностика\",\"errors\":{\"jsonObject\":\"{{label}} должен быть JSON-объектом.\",\"portDefinitions\":\"Введите корректные определения портов.\"},\"node\":{\"nameDuplicate\":\"Узел с таким именем уже существует в этом графе.\",\"nameEmpty\":\"Имя узла не может быть пустым.\",\"timeout\":\"Время ожидания (мс)\",\"maxExecutions\":\"Лимит выполнений узла\",\"maxExecutionsError\":\"Лимит выполнений узла должен быть положительным целым числом.\",\"timeoutError\":\"Время ожидания должно быть положительным целым числом в миллисекундах.\",\"title\":\"Настройки узла\",\"description\":\"Назначение\",\"describe\":\"Опишите назначение этого шага.\",\"icon\":\"Значок\",\"name\":\"Заголовок\"},\"selectNode\":\"Выберите один узел черновика, чтобы просмотреть и изменить его.\",\"locateNode\":\"Найти этот узел на холсте\",\"task\":{\"sharedPermissions\":\"Использовать общую группу разрешений Flow\",\"sharedPermissionsHint\":\"Используйте все Actions, разрешённые общей группой Flow. Добавлять их в узел по отдельности не нужно.\",\"addAction\":\"Добавить Action\",\"removeAction\":\"Удалить Action\",\"actionAccount\":\"Аккаунт\",\"chooseAccount\":\"Выбрать аккаунт\",\"permissionSaveFailed\":\"Не удалось сохранить разрешения Code. Повторите попытку.\",\"chatText\":\"Текст чата\",\"connectorAction\":\"Действие Connector\",\"definition\":\"Определение задачи\",\"discardCode\":\"Отменить изменения\",\"editorLoading\":\"Загрузка редактора…\",\"editorUnavailable\":\"Не удалось загрузить редактор кода.\",\"inputPorts\":\"Входные порты\",\"javascriptModule\":\"Код\",\"missing\":\"Указанная задача не существует.\",\"outputPorts\":\"Выходные порты\",\"responseMode\":\"Режим ответа\",\"source\":\"Исходный код\",\"structuredJson\":\"Структурированный JSON\",\"retrySave\":\"Повторить сохранение\",\"additionalInputs\":\"Дополнительные входы\"},\"wait\":{\"approval\":\"Одобрить или отклонить\",\"changeNotification\":\"Изменить\",\"continue\":\"Продолжить\",\"mode\":\"Обработка\",\"inputsLoading\":\"Загрузка параметров уведомления…\",\"pendingDescription\":\"Выход ожидания срабатывает один раз при начале ожидания и передаёт ссылки подтверждения и связанные данные. Подключите его для отправки сообщения или выполнения других шагов.\",\"prompt\":\"Запрос\",\"promptError\":\"Запрос должен содержать от 1 до 1 000 символов.\"},\"title\":\"Инспектор\",\"sources\":{\"loading\":\"Загрузка источников входных данных…\",\"loadFailed\":\"Не удалось загрузить источники входных данных. Откройте меню ещё раз.\",\"checkFailed\":\"Не удалось проверить этот источник.\",\"select\":\"Выбрать источник входных данных\",\"title\":\"Источник входных данных\",\"sourceMissing\":\"Исходный источник входных данных больше не существует. Выберите другой.\",\"outputMissing\":\"«{{output}}» не найден в «{{source}}». Выберите снова.\",\"wholeObject\":\"Весь объект\",\"fieldMissing\":\"Поле {{field}} больше не объявлено в «{{output}}». Выберите снова.\",\"notReady\":\"К моменту выполнения этого шага у «{{source}} {{handle}}» может ещё не быть значения.\",\"sourceConflict\":\"Эти поля могут иметь значения одновременно: {{sources}}. Здесь можно использовать только одно.\",\"incompatibleRight\":\"Тип правого значения несовместим с этим сравнением.\",\"incompatible\":\"Несовместимо\",\"unverified\":\"Не проверено\",\"schemaIncompatible\":\"Формат данных не совпадает.\",\"schemaPathIncompatible\":\"Формат данных «{{path}}» не совпадает.\",\"schemaCompareFailed\":\"Не удалось проверить формат данных. Проверьте схему JSON.\",\"binaryIncompatible\":\"Двоичные данные здесь использовать нельзя.\",\"artifactIncompatible\":\"Файловые данные здесь использовать нельзя.\",\"nullableIncompatible\":\"Требуется значение, но выбранное поле может быть пустым.\",\"typeIncompatible\":\"Ожидается {{target}}, но выбранное поле имеет тип {{source}}.\",\"propertyTypeIncompatible\":\"«{{path}}» должно иметь тип {{target}}, но имеет тип {{source}}.\",\"requiredIncompatible\":\"Обязательное свойство «{{property}}» может отсутствовать.\",\"enumIncompatible\":\"Некоторые возможные значения не принимаются: {{values}}.\",\"constIncompatible\":\"Принимается только {{target}}, но выбранное поле всегда равно {{source}}.\",\"constraintSubject\":\"«{{path}}» \",\"minLength\":\"{{subject}}должно содержать не менее {{value}} символов.\",\"maxLength\":\"{{subject}}должно содержать не более {{value}} символов.\",\"pattern\":\"{{subject}}должно соответствовать {{value}}.\",\"minimum\":\"{{subject}}не может быть меньше {{value}}.\",\"exclusiveMinimum\":\"{{subject}}должно быть больше {{value}}.\",\"maximum\":\"{{subject}}не может быть больше {{value}}.\",\"exclusiveMaximum\":\"{{subject}}должно быть меньше {{value}}.\",\"multipleOf\":\"{{subject}}должно быть кратно {{value}}.\",\"minItems\":\"{{subject}}должно содержать не менее {{value}} элементов.\",\"maxItems\":\"{{subject}}должно содержать не более {{value}} элементов.\",\"minProperties\":\"{{subject}}должно содержать не менее {{value}} свойств.\",\"maxProperties\":\"{{subject}}должно содержать не более {{value}} свойств.\",\"integer\":\"Целое число\",\"unknownType\":\"неизвестный тип\",\"typeSeparator\":\" или \"},\"actions\":{\"flowAccess\":\"Доступные сервисы\",\"flowAccessHint\":\"Управлять подключениями, общими для всех узлов Code в этом Flow\",\"chooseConnection\":\"Выбрать подключение {{provider}}\",\"connectionDescription\":\"Подключение будет вставлено в этот вызов. Возможность его использования по-прежнему контролирует Flow Provider Access.\",\"title\":\"Действия, доступные коду\",\"search\":\"Поиск действий\",\"description\":\"Выберите действия и аккаунты, доступные этому коду.\",\"empty\":\"Подходящих действий нет.\",\"remove\":\"Удалить\",\"default\":\"Аккаунт по умолчанию\",\"defaultHint\":\"Используется, если при вызове не указан аккаунт.\",\"removeAction\":\"Удалить действие\",\"explicit\":\"Выбирать явно в коде\",\"connect\":\"Подключить аккаунт\",\"refresh\":\"Обновить аккаунты\",\"aliases\":\"Обновить сохранённые псевдонимы\",\"add\":\"Добавить действие\",\"cancel\":\"Отмена\",\"loading\":\"Поиск…\",\"needsAccount\":\"Подключите аккаунт\",\"accounts\":\"Аккаунты: {{count}}\",\"public\":\"Без аккаунта\",\"allowed\":\"Разрешённые аккаунты\",\"unavailable\":\"Недоступен\",\"details\":\"Данные подключений\",\"example\":\"Пример вызова\",\"syntax\":\"Синтаксис вызова\",\"nested\":\"Через провайдера\",\"fullId\":\"Полный ID\",\"copy\":\"Копировать\",\"copied\":\"Скопировано\",\"copyError\":\"Не удалось скопировать. Выделите код и скопируйте вручную.\",\"introDescription\":\"При необходимости добавьте действия для вызова внешних приложений через {{context}}.\",\"insertAction\":\"Вставить код\",\"chooseAccounts\":\"Управление аккаунтами\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"Предпросмотр\"},\"ports\":{\"reorder\":\"Изменить порядок {{name}}\",\"reorderHint\":\"Перетащите внутри группы или используйте стрелки вверх / вниз при фокусе.\",\"moved\":\"{{name}} перемещён на позицию {{position}}.\",\"groupSettings\":\"Настройки группы\",\"connected\":\"Подключено\",\"sort\":\"Изменить порядок\",\"finishSorting\":\"Готово\",\"inputsTitle\":\"Входы\",\"noInputs\":\"Этому узлу не требуются входные данные.\",\"noOutputs\":\"Этот узел не предоставляет выходных данных.\",\"outputsTitle\":\"Выходы\",\"valuesTitle\":\"Значения\",\"columnHandle\":\"Handle\",\"columnName\":\"Имя\",\"columnType\":\"Тип\",\"columnValue\":\"Значение\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"Запланированное время этого запуска в формате ISO 8601.\"},\"webhook\":{\"headers\":\"Заголовки, полученные с этим Webhook-запросом.\",\"query\":\"Параметры URL-запроса, полученные с этим Webhook-запросом.\",\"body\":\"Тело, полученное с этим Webhook-запросом.\",\"webhookUrl\":\"URL Webhook, получивший этот запрос, без параметров запроса.\"}}}}"),
112522
112711
  language: { "label": "Язык" },
@@ -112549,7 +112738,6 @@ var resources = {
112549
112738
  "pageInvalidCursor": "Список изменился во время загрузки. Загрузите список заново.",
112550
112739
  "publicationConflict": "Состояние публикации изменилось после загрузки. Обновите данные и повторите попытку.",
112551
112740
  "publicationNotFound": "Эта публикация не существует или была удалена. Обновите список публикаций.",
112552
- "resourceNotFound": "Ресурс не найден в этой публикации.",
112553
112741
  "publicationUnsupported": "Этот Flow нельзя опубликовать, так как существующую подписку Trigger невозможно безопасно изменить.",
112554
112742
  "publishOperationNotFound": "Состояние публикации больше недоступно. Запустите публикацию снова.",
112555
112743
  "responseInvalid": "Сервис вернул данные, которые Open Flow не может прочитать. Повторите попытку позже.",
@@ -112578,7 +112766,9 @@ var resources = {
112578
112766
  "networkFailed": "Не удалось подключиться к сервису. Проверьте сетевое соединение и повторите попытку.",
112579
112767
  "published": "Опубликовано: {{name}}.",
112580
112768
  "rolledBack": "Рабочая версия откачена к ревизии {{revision}}.",
112581
- "requestFailed": "Сервис не смог выполнить эту операцию. Повторите попытку позже."
112769
+ "requestFailed": "Сервис не смог выполнить эту операцию. Повторите попытку позже.",
112770
+ "flowImported": "Процесс импортирован. Настройте внешние ресурсы перед запуском или публикацией.",
112771
+ "exportSaveFailed": "Экспорт остановлен: не удалось сохранить черновик или расположение. Сохраните изменения и повторите попытку."
112582
112772
  },
112583
112773
  publication: {
112584
112774
  "active": "Активно",
@@ -113105,6 +113295,14 @@ var resources = {
113105
113295
  "description": "Описание",
113106
113296
  "required": "Требуется вход"
113107
113297
  },
113298
+ webhookDeployment: {
113299
+ "title": "Опубликованный Webhook",
113300
+ "unpublished": "Опубликуйте процесс, чтобы создать URL Webhook.",
113301
+ "unpublishedChanges": "Используется опубликованная версия. Изменения черновика ещё не применены.",
113302
+ "loadFailed": "Не удалось загрузить данные развёртывания Webhook.",
113303
+ "pending": "URL Webhook пока недоступен.",
113304
+ "copyFailed": "Не удалось скопировать. Выделите URL и скопируйте его вручную."
113305
+ },
113108
113306
  webhookEditor: {
113109
113307
  "webhookAddHeader": "Добавить заголовок",
113110
113308
  "webhookDeleteHeader": "Удалить заголовок ответа",
@@ -113604,7 +113802,10 @@ var resources = {
113604
113802
  "enabledHint": "Contrôle les nouvelles exécutions en production. Les tests du brouillon restent disponibles.",
113605
113803
  "publish": "Publier",
113606
113804
  "publishUpdate": "Mettre à jour",
113607
- "deleteDescription": "Le flux et son historique seront supprimés et les déclencheurs arrêtés. Cette action est irréversible."
113805
+ "deleteDescription": "Le flux et son historique seront supprimés et les déclencheurs arrêtés. Cette action est irréversible.",
113806
+ "importFlow": "Importer un workflow",
113807
+ "exportFlow": "Exporter le workflow",
113808
+ "importInvalid": "Fichier de workflow invalide ou non pris en charge."
113608
113809
  },
113609
113810
  inspector: {
113610
113811
  "outline": "Liste des nœuds",
@@ -113841,7 +114042,6 @@ var resources = {
113841
114042
  "pageInvalidCursor": "La liste a changé pendant son chargement. Rechargez-la.",
113842
114043
  "publicationConflict": "L’état de la Publication a changé depuis son chargement. Actualisez, puis réessayez.",
113843
114044
  "publicationNotFound": "Cette Publication n’existe pas ou a été supprimée. Actualisez la liste des Publications.",
113844
- "resourceNotFound": "La ressource est introuvable dans cette publication.",
113845
114045
  "publicationUnsupported": "Ce Flow ne peut pas être publié, car un abonnement Trigger existant ne peut pas être modifié en toute sécurité.",
113846
114046
  "publishOperationNotFound": "L’état de la publication n’est plus disponible. Relancez la publication.",
113847
114047
  "responseInvalid": "Le service a renvoyé des données illisibles par Open Flow. Réessayez plus tard.",
@@ -113870,7 +114070,9 @@ var resources = {
113870
114070
  "networkFailed": "Impossible de joindre le service. Vérifiez votre connexion, puis réessayez.",
113871
114071
  "published": "{{name}} publié.",
113872
114072
  "rolledBack": "Version en ligne restaurée à la révision {{revision}}.",
113873
- "requestFailed": "Le service n’a pas pu terminer cette opération. Réessayez plus tard."
114073
+ "requestFailed": "Le service n’a pas pu terminer cette opération. Réessayez plus tard.",
114074
+ "flowImported": "Workflow importé. Configurez les ressources externes avant de lancer ou publier.",
114075
+ "exportSaveFailed": "Export arrêté : le brouillon ou la disposition n’a pas pu être enregistré. Réessayez après avoir enregistré."
113874
114076
  },
113875
114077
  publication: {
113876
114078
  "active": "Actif",
@@ -114397,6 +114599,14 @@ var resources = {
114397
114599
  "description": "Description",
114398
114600
  "required": "Entrée requise"
114399
114601
  },
114602
+ webhookDeployment: {
114603
+ "title": "Webhook en ligne",
114604
+ "unpublished": "Publiez ce flux pour générer une URL Webhook.",
114605
+ "unpublishedChanges": "La version publiée est utilisée. Les modifications du brouillon ne sont pas encore en ligne.",
114606
+ "loadFailed": "Impossible de charger le déploiement du Webhook.",
114607
+ "pending": "L’URL Webhook n’est pas encore disponible.",
114608
+ "copyFailed": "Échec de la copie. Sélectionnez l’URL et copiez-la manuellement."
114609
+ },
114400
114610
  webhookEditor: {
114401
114611
  "webhookAddHeader": "Ajouter un en-tête",
114402
114612
  "webhookDeleteHeader": "Supprimer l'en-tête de réponse",
@@ -118029,6 +118239,143 @@ function TriggerSummary({ trigger, display }) {
118029
118239
  });
118030
118240
  }
118031
118241
  //#endregion
118242
+ //#region src/workbench/browser/runtime/publications/triggerStatus.tsx
118243
+ function triggerLabel(binding, enabled, t) {
118244
+ if (binding.currentPublicationId == null) return t("publication.retired");
118245
+ if (!enabled) return t("publication.suspended");
118246
+ if (binding.listener?.health == "healthy" && (binding.health == "failed" || binding.health == "needs_reauth")) return t("publication.listenerDegraded");
118247
+ switch (binding.listener?.health == "failed" || binding.listener?.health == "needs_reauth" ? binding.listener.health : binding.health) {
118248
+ case "healthy": return t("publication.active");
118249
+ case "failed": return t("publication.failed");
118250
+ case "needs_reauth": return t("publication.needsReauth");
118251
+ case "initializing": return t("publication.reconciling");
118252
+ case "suspended": return t("publication.suspended");
118253
+ }
118254
+ }
118255
+ function triggerClass(binding, enabled) {
118256
+ if (binding.currentPublicationId == null || !enabled) return "neutral";
118257
+ if (binding.listener?.health == "healthy" && (binding.health == "failed" || binding.health == "needs_reauth")) return "running";
118258
+ switch (binding.listener?.health == "failed" || binding.listener?.health == "needs_reauth" ? binding.listener.health : binding.health) {
118259
+ case "healthy": return "success";
118260
+ case "failed":
118261
+ case "needs_reauth": return "danger";
118262
+ case "initializing": return "running";
118263
+ case "suspended": return "neutral";
118264
+ }
118265
+ }
118266
+ function TriggerStatus({ binding, enabled }) {
118267
+ const t = useTranslate();
118268
+ return /* @__PURE__ */ jsx("span", {
118269
+ className: "trigger-binding-state " + triggerClass(binding, enabled),
118270
+ children: triggerLabel(binding, enabled, t)
118271
+ });
118272
+ }
118273
+ //#endregion
118274
+ //#region src/workbench/browser/runtime/publications/webhookEndpoint.tsx
118275
+ function WebhookCopyButton({ endpointUrl, iconOnly = false }) {
118276
+ const t = useTranslate();
118277
+ const [copyResult, setCopyResult] = useState();
118278
+ const [container, setContainer] = useState(null);
118279
+ useEffect(() => {
118280
+ if (copyResult !== "copied") return;
118281
+ const timer = globalThis.setTimeout(() => setCopyResult(void 0), 1500);
118282
+ return () => globalThis.clearTimeout(timer);
118283
+ }, [copyResult]);
118284
+ const label = t(copyResult === "copied" ? "publication.webhookCopied" : copyResult === "failed" ? "webhookDeployment.copyFailed" : "publication.webhookCopy");
118285
+ const copy = async () => {
118286
+ try {
118287
+ await navigator.clipboard.writeText(endpointUrl);
118288
+ setCopyResult("copied");
118289
+ } catch {
118290
+ setCopyResult("failed");
118291
+ }
118292
+ };
118293
+ return /* @__PURE__ */ jsxs("span", {
118294
+ className: "inline-flex shrink-0 flex-col gap-2",
118295
+ ref: setContainer,
118296
+ children: [iconOnly ? /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
118297
+ render: /* @__PURE__ */ jsx(Button$1, {
118298
+ "aria-label": label,
118299
+ size: "icon-sm",
118300
+ variant: "ghost",
118301
+ onClick: copy
118302
+ }),
118303
+ children: /* @__PURE__ */ jsx("i", {
118304
+ "aria-hidden": "true",
118305
+ className: copyResult === "copied" ? "i-lucide-light:check text-base" : "i-lucide-light:copy text-base"
118306
+ })
118307
+ }), /* @__PURE__ */ jsx(TooltipContent, {
118308
+ container,
118309
+ side: "bottom",
118310
+ align: "end",
118311
+ children: label
118312
+ })] }) : /* @__PURE__ */ jsx(Button$1, {
118313
+ size: "sm",
118314
+ variant: "outline",
118315
+ onClick: copy,
118316
+ children: t(copyResult === "copied" ? "publication.webhookCopied" : "publication.webhookCopy")
118317
+ }), /* @__PURE__ */ jsx("span", {
118318
+ className: iconOnly || copyResult !== "failed" ? "sr-only" : "text-xs text-destructive",
118319
+ role: "status",
118320
+ children: copyResult == null ? "" : label
118321
+ })]
118322
+ });
118323
+ }
118324
+ //#endregion
118325
+ //#region src/workbench/browser/runtime/editor/webhookDeployment.tsx
118326
+ function WebhookDeployment({ binding, status, enabled, hasUnpublishedChanges, onRetry }) {
118327
+ const t = useTranslate();
118328
+ const current = binding?.currentPublicationId != null;
118329
+ const ready = status === "loaded" && current;
118330
+ return /* @__PURE__ */ jsx(InspectorSection, {
118331
+ title: /* @__PURE__ */ jsxs("span", {
118332
+ className: "flex w-full items-center justify-between gap-2",
118333
+ children: [/* @__PURE__ */ jsxs("span", {
118334
+ className: "flex flex-wrap items-center gap-2",
118335
+ children: [/* @__PURE__ */ jsx("span", { children: t("webhookDeployment.title") }), ready && /* @__PURE__ */ jsx(TriggerStatus, {
118336
+ binding,
118337
+ enabled
118338
+ })]
118339
+ }), ready && binding.endpointUrl != null && /* @__PURE__ */ jsx(WebhookCopyButton, {
118340
+ endpointUrl: binding.endpointUrl,
118341
+ iconOnly: true
118342
+ }, binding.endpointUrl)]
118343
+ }),
118344
+ children: /* @__PURE__ */ jsx("div", {
118345
+ className: "flex min-w-0 flex-col gap-2 text-xs",
118346
+ children: status === "failed" ? /* @__PURE__ */ jsxs("div", {
118347
+ className: "flex items-center justify-between gap-2",
118348
+ role: "status",
118349
+ children: [/* @__PURE__ */ jsx("span", {
118350
+ className: "text-muted-foreground",
118351
+ children: t("webhookDeployment.loadFailed")
118352
+ }), /* @__PURE__ */ jsx(Button$1, {
118353
+ size: "sm",
118354
+ variant: "outline",
118355
+ onClick: onRetry,
118356
+ children: t("connectorAccess.retry")
118357
+ })]
118358
+ }) : status !== "loaded" ? /* @__PURE__ */ jsx("p", {
118359
+ className: "m-0 text-muted-foreground",
118360
+ role: "status",
118361
+ children: t("publication.loadingTrigger")
118362
+ }) : !current ? /* @__PURE__ */ jsx("p", {
118363
+ className: "m-0 text-muted-foreground",
118364
+ children: t("webhookDeployment.unpublished")
118365
+ }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [binding.endpointUrl != null ? /* @__PURE__ */ jsx("code", {
118366
+ className: "min-w-0 select-text break-all text-foreground text-xs leading-5",
118367
+ children: binding.endpointUrl
118368
+ }) : /* @__PURE__ */ jsx("p", {
118369
+ className: "m-0 text-muted-foreground",
118370
+ children: t("webhookDeployment.pending")
118371
+ }), hasUnpublishedChanges && /* @__PURE__ */ jsx("p", {
118372
+ className: "m-0 text-muted-foreground",
118373
+ children: t("webhookDeployment.unpublishedChanges")
118374
+ })] })
118375
+ })
118376
+ });
118377
+ }
118378
+ //#endregion
118032
118379
  //#region src/workbench/browser/runtime/editor/webhookEditor.tsx
118033
118380
  function deferInspection(check, signal) {
118034
118381
  return new Promise((resolve, reject) => {
@@ -118438,7 +118785,7 @@ function inputUpstreamSources({ revision, sourceNodeIcons, selection, store, han
118438
118785
  }
118439
118786
  };
118440
118787
  }
118441
- function NodeInspector({ variables = {
118788
+ function NodeInspector({ webhookDeployment, variables = {
118442
118789
  enabled: false,
118443
118790
  loaded: false,
118444
118791
  loading: false,
@@ -118486,6 +118833,7 @@ function NodeInspector({ variables = {
118486
118833
  className: "inspector-content",
118487
118834
  ref: content,
118488
118835
  children: [
118836
+ selection?.kind === "trigger" && selection.trigger.kind === "webhook" && webhookDeployment != null && /* @__PURE__ */ jsx(WebhookDeployment, { ...webhookDeployment }, selection.id),
118489
118837
  readOnly && connector != null && /* @__PURE__ */ jsx(SavedConnectionReference, {
118490
118838
  action: connector.action,
118491
118839
  connectionId: connector.connectionId