@oomol-lab/open-flow 0.1.0-beta.68 → 0.1.0-beta.69

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 (67) hide show
  1. package/dist/browser/{ContentIcon-Sx9bywU-.js → ContentIcon-CsECY5id.js} +14 -7
  2. package/dist/browser/{FlowCanvas-CXpaeurx.js → FlowCanvas-C5X22xQ7.js} +18 -18
  3. package/dist/browser/{createResourceDialog-BKmimKA_.js → createResourceDialog-Di5BBrQv.js} +2 -2
  4. package/dist/browser/{dialog-ZmfcwuMS.js → dialog-Bjo-r9B0.js} +85 -8
  5. package/dist/browser/event-sources.d.ts +4 -2
  6. package/dist/browser/{exportSvg-D4CqCcx2.js → exportSvg-Cj6Spxx-.js} +2 -2
  7. package/dist/browser/flow-authoring-node.d.ts +3 -1
  8. package/dist/browser/flow-authoring.js +68 -7
  9. package/dist/browser/flow-change-schema.d.ts +3 -1
  10. package/dist/browser/flow-change.d.ts +17 -2
  11. package/dist/browser/flow-change.js +82 -9
  12. package/dist/browser/{flowChanges-B5tZMcGr.js → flowChanges-Dp-rcEJ6.js} +737 -1180
  13. package/dist/browser/{flowWorkspace-zFBFtZPo.js → flowWorkspace-CB1QACku.js} +440 -70
  14. package/dist/browser/preview.css +49 -41
  15. package/dist/browser/preview.js +2229 -2359
  16. package/dist/browser/{typeScriptSession-D0bjYDeg.js → typeScriptSession-B0hC-C8y.js} +1 -1
  17. package/dist/browser/ui.css +8 -0
  18. package/dist/browser/workbench.css +53 -41
  19. package/dist/browser/workbench.js +74 -32
  20. package/dist/browser/{workbenchSelect-CChdgugI.js → workbenchSelect-C3hxUcYm.js} +1 -1
  21. package/dist/command/index.js +55 -51
  22. package/dist/common/authoring.d.ts +20 -0
  23. package/dist/common/authoringSchema.d.ts +243 -0
  24. package/dist/common/connector-proxy.d.ts +4 -0
  25. package/dist/common/control-api-conformance.js +147 -33
  26. package/dist/common/control-api.d.ts +14 -7
  27. package/dist/common/control-api.js +130 -15
  28. package/dist/common/control-requests.d.ts +32 -19
  29. package/dist/common/control-requests.js +2854 -152
  30. package/dist/common/decision.js +27 -3
  31. package/dist/common/engine-contract.d.ts +2 -2
  32. package/dist/common/event-source-definition.d.ts +34 -16
  33. package/dist/common/event-source.d.ts +63 -5
  34. package/dist/common/event-source.js +5744 -261
  35. package/dist/common/event-sources.d.ts +99 -6
  36. package/dist/common/flow-encoding.js +49 -10
  37. package/dist/common/flow-errorHandling.d.ts +36 -0
  38. package/dist/common/flow-graph.d.ts +4 -2
  39. package/dist/common/flow-retry.d.ts +19 -0
  40. package/dist/common/flow-semantics.js +94 -10
  41. package/dist/common/{fr-Du5gv3kM.js → fr-CNTSedYU.js} +259 -18
  42. package/dist/common/integration-trigger.d.ts +1 -1
  43. package/dist/common/integration-trigger.js +27 -3
  44. package/dist/common/{ja-D2wyPdTF.js → ja-CxQBHr2J.js} +259 -18
  45. package/dist/common/{ko-Cuu2AOaC.js → ko-D1Exiv1h.js} +259 -18
  46. package/dist/common/mcp.d.ts +30 -0
  47. package/dist/common/mcp.js +132 -17
  48. package/dist/common/openapi.js +27 -3
  49. package/dist/common/poll-trigger.js +27 -3
  50. package/dist/common/provider-triggers.d.ts +0 -2
  51. package/dist/common/provider-triggers.js +358 -155
  52. package/dist/common/{ru-BjI_JSsx.js → ru-BzLZv0B7.js} +259 -18
  53. package/dist/common/run-events.d.ts +2 -0
  54. package/dist/common/run-events.js +4 -2
  55. package/dist/common/runtime-contract.d.ts +1 -0
  56. package/dist/common/runtime-contract.js +4 -4
  57. package/dist/common/scheduler.d.ts +13 -2
  58. package/dist/common/scheduler.js +288 -98
  59. package/dist/common/webhook-trigger.js +27 -3
  60. package/dist/common/workflow.js +27 -3
  61. package/dist/common/{zh-CN-CnnXkzLh.js → zh-CN-Dg_xSGde.js} +259 -18
  62. package/dist/common/{zh-TW-CJnR2dgF.js → zh-TW-oxuLwsV0.js} +259 -18
  63. package/dist/index.d.ts +1 -0
  64. package/package.json +1 -1
  65. package/dist/common/event-source-feishu.d.ts +0 -3
  66. package/dist/common/feishu-events.d.ts +0 -19
  67. package/dist/common/feishu-subscriptions.d.ts +0 -6
@@ -1,9 +1,9 @@
1
1
  import { o as __toESM, t as __commonJSMin } from "./rolldown-runtime-CEgmsyvS.js";
2
- import { $ as ko_default$2, Q as ru_default$2, T as DropdownMenuItem, X as zh_TW_default$2, Y as waitBranchLocales, Z as zh_CN_default$2, a as spriteIcon, at as Checkbox, et as ja_default$2, i as initialsIcon, it as providerIconAppearance, l as wrapLayout, nt as en_default$2, q as uiLocales, r as imageIcon, rt as I18n, tt as fr_default$2 } from "./ContentIcon-Sx9bywU-.js";
2
+ import { $ as ko_default$2, Q as ru_default$2, T as DropdownMenuItem, X as zh_TW_default$2, Y as waitBranchLocales, Z as zh_CN_default$2, a as spriteIcon, at as Checkbox, et as ja_default$2, i as initialsIcon, it as providerIconAppearance, l as wrapLayout, nt as en_default$2, q as uiLocales, r as imageIcon, rt as I18n, tt as fr_default$2 } from "./ContentIcon-CsECY5id.js";
3
3
  import { a as derive, i as compute, l as val, t as arrayShallowEqual } from "./dist-bO8nvHFH.js";
4
4
  import { a as toPlainObject, l as useTranslate, o as I18nProvider } from "./dist-BFmpkX4P.js";
5
5
  import { C as object$1, D as string$1, E as strictObject, O as union, S as number, T as record$2, _ as int, _r as cva, b as literal, g as discriminatedUnion, gr as cn, h as boolean, hr as buttonVariants, i as TooltipTrigger, k as unknown, kr as mergeProps, m as array, mr as Button, n as TooltipContent, p as _enum, t as Tooltip, v as json$2, y as lazy$1, yr as useRenderElement } from "./tooltip-CJjYs_2I.js";
6
- import { $ as dequal, C as isTriggerNode, D as portsByHandle, E as normalizeNodeName, F as nodeInputMappings, G as checkJsonDepth, H as decodeRevisionContent, N as conditionInputPorts, Q as format, R as otherwiseOutput, S as isSchemaKeyword, V as authoringDefinitionSchemas, W as webhookSupportsBody, Y as decisionTask, _ as matchesSchema, et as Select, g as comparePorts, it as SelectItem, j as clearConditionBindings, nt as SelectContent, ot as SelectTrigger, rt as SelectGroup, st as SelectValue, v as schemaObject, vt as Label, w as nextNodeName, x as applyFlowChanges$1, yt as Input } from "./dialog-ZmfcwuMS.js";
6
+ import { C as isTriggerNode, D as portsByHandle, E as normalizeNodeName, Et as Input, G as decodeRevisionContent, I as conditionInputPorts, M as nodeSystemOutputPorts, P as clearConditionBindings, Q as checkJsonDepth, R as nodeInputMappings, S as isSchemaKeyword, Tt as Label, V as otherwiseOutput, W as authoringDefinitionSchemas, X as retryConfigurationSchema, _ as matchesSchema, at as format, dt as SelectItem, g as comparePorts, lt as SelectContent, mt as SelectValue, nt as decisionTask, ot as dequal, pt as SelectTrigger, q as webhookSupportsBody, st as Select, ut as SelectGroup, v as schemaObject, w as nextNodeName, x as applyFlowChanges$1 } from "./dialog-Bjo-r9B0.js";
7
7
  import { a as uiLanguages, n as isUiLanguage, r as resolveUiLanguage } from "./languages-gYzoQqCi.js";
8
8
  import "./lib-Dws05GHj.js";
9
9
  import { i as objectValue, s as valueType, t as initialValue } from "./value-BbFQZZ_V.js";
@@ -12,6 +12,129 @@ import { useCallback, useEffect, useId, useMemo, useRef, useState } from "react"
12
12
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
13
13
  import * as Effect from "effect/Effect";
14
14
  import * as Deferred from "effect/Deferred";
15
+ //#region src/workbench/browser/runtime/eventSourcePresentation.ts
16
+ var eventSourcePresentations = {
17
+ jira: {
18
+ provider: "jira",
19
+ label: "Jira",
20
+ events: [
21
+ "jira:issue_created",
22
+ "jira:issue_updated",
23
+ "comment_created"
24
+ ],
25
+ identity: /^jira:[^:]+/,
26
+ secret: "eventSources.signingSecret",
27
+ console: "https://developer.atlassian.com/console/myapps/",
28
+ connectHint: "eventSources.jiraConnectHint",
29
+ secretsHint: "eventSources.jiraSetupHint",
30
+ configureHint: "eventSources.jiraSetupHint",
31
+ setup: "eventSources.setupJira",
32
+ setupHint: "eventSources.jiraSetupHint",
33
+ eventsHint: "eventSources.jiraEventsHint"
34
+ },
35
+ fireflies: {
36
+ provider: "fireflies",
37
+ label: "Fireflies",
38
+ events: ["meeting.transcribed", "meeting.summarized"],
39
+ identity: /.+/,
40
+ secret: "eventSources.signingSecret",
41
+ console: "https://app.fireflies.ai/integrations/api/webhook",
42
+ connectHint: "eventSources.firefliesConnectHint",
43
+ secretsHint: "eventSources.firefliesSecretsHint",
44
+ configureHint: "eventSources.firefliesSecretsHint",
45
+ setup: "eventSources.setupFireflies",
46
+ setupHint: "eventSources.setupFirefliesHint",
47
+ eventsHint: "eventSources.setupFirefliesHint"
48
+ },
49
+ zoom: {
50
+ provider: "zoom",
51
+ label: "Zoom",
52
+ events: ["recording.completed"],
53
+ identity: /.+/,
54
+ secret: "eventSources.webhookSecret",
55
+ console: "https://marketplace.zoom.us/",
56
+ connectHint: "eventSources.zoomConnectHint",
57
+ secretsHint: "eventSources.zoomSecretsHint",
58
+ configureHint: "eventSources.zoomSecretsHint",
59
+ setup: "eventSources.setupZoom",
60
+ setupHint: "eventSources.setupZoomHint",
61
+ eventsHint: "eventSources.setupZoomHint"
62
+ },
63
+ feishu: {
64
+ provider: "feishu_app_bot",
65
+ label: "Feishu",
66
+ events: ["im.message.receive_v1"],
67
+ identity: /^cli_[a-zA-Z0-9]+$/,
68
+ secret: "eventSources.encryptKey",
69
+ console: "https://open.feishu.cn/app",
70
+ connectHint: "eventSources.selectAppHint",
71
+ secretsHint: "eventSources.secretsHint",
72
+ configureHint: "eventSources.configureCallbackHint",
73
+ setup: "eventSources.setupFeishu",
74
+ setupHint: "eventSources.setupFeishuHint",
75
+ eventsHint: "eventSources.eventsHint"
76
+ },
77
+ slack: {
78
+ provider: "slackbot",
79
+ label: "Slack Bot",
80
+ events: ["app_mention", "message.im"],
81
+ identity: /^U[A-Z0-9]+$/,
82
+ secret: "eventSources.signingSecret",
83
+ console: "https://api.slack.com/apps",
84
+ connectHint: "eventSources.slackConnectHint",
85
+ secretsHint: "eventSources.slackSecretsHint",
86
+ configureHint: "eventSources.slackSecretsHint",
87
+ setup: "eventSources.setupSlack",
88
+ setupHint: "eventSources.setupSlackHint",
89
+ eventsHint: "eventSources.setupSlackHint"
90
+ },
91
+ intercom: {
92
+ provider: "intercom",
93
+ label: "Intercom",
94
+ events: [
95
+ "conversation.user.created",
96
+ "conversation.user.replied",
97
+ "ticket.created"
98
+ ],
99
+ identity: /^[^:]+:[^:]+$/,
100
+ secret: "eventSources.clientSecret",
101
+ console: "https://app.intercom.com/a/developer-hub",
102
+ connectHint: "eventSources.intercomConnectHint",
103
+ secretsHint: "eventSources.intercomSecretsHint",
104
+ configureHint: "eventSources.intercomSecretsHint",
105
+ setup: "eventSources.setupIntercom",
106
+ setupHint: "eventSources.setupIntercomHint",
107
+ eventsHint: "eventSources.setupIntercomHint"
108
+ },
109
+ sentry: {
110
+ provider: "sentry",
111
+ label: "Sentry",
112
+ events: ["issue.alert"],
113
+ identity: /.+/,
114
+ secret: "eventSources.clientSecret",
115
+ console: "https://sentry.io/settings/",
116
+ connectHint: "eventSources.sentryConnectHint",
117
+ secretsHint: "eventSources.sentrySecretsHint",
118
+ configureHint: "eventSources.sentrySecretsHint",
119
+ setup: "eventSources.setupSentry",
120
+ setupHint: "eventSources.setupSentryHint",
121
+ eventsHint: "eventSources.setupSentryHint"
122
+ }
123
+ };
124
+ var providerKinds = {
125
+ feishu: "feishu",
126
+ feishu_app_bot: "feishu",
127
+ slackbot: "slack",
128
+ intercom: "intercom",
129
+ sentry: "sentry",
130
+ zoom: "zoom",
131
+ fireflies: "fireflies",
132
+ jira: "jira"
133
+ };
134
+ function eventSourceKind(provider) {
135
+ return providerKinds[provider];
136
+ }
137
+ //#endregion
15
138
  //#region src/control/common/errors.ts
16
139
  var controlErrorCode = {
17
140
  authenticationRequired: "authentication.required",
@@ -116,6 +239,35 @@ function optionalString(value) {
116
239
  return string(value);
117
240
  }
118
241
  //#endregion
242
+ //#region src/execution/common/engineContract.ts
243
+ var currentEngineContract = "open-flow-engine/v6";
244
+ `${JSON.stringify(currentEngineContract)}`, new Set([
245
+ "assert",
246
+ "assert/strict",
247
+ "buffer",
248
+ "console",
249
+ "constants",
250
+ "crypto",
251
+ "events",
252
+ "fs",
253
+ "fs/promises",
254
+ "os",
255
+ "path",
256
+ "path/posix",
257
+ "process",
258
+ "punycode",
259
+ "querystring",
260
+ "stream",
261
+ "stream/promises",
262
+ "stream/web",
263
+ "string_decoder",
264
+ "timers",
265
+ "timers/promises",
266
+ "url",
267
+ "util",
268
+ "zlib"
269
+ ].flatMap((name) => [name, `node:${name}`])), `${JSON.stringify("open-flow-engine/v6/nodejs-compat-v1")}`;
270
+ //#endregion
119
271
  //#region src/flow/common/inputValue.ts
120
272
  /** An explicit clear suppresses the default; absent mappings still inherit it. */
121
273
  function inputValue(mapping, fallback) {
@@ -713,12 +865,19 @@ var output = strictObject({
713
865
  port: id$1.optional().describe("Omit for a node with one output. For multiple outputs, choose a name from node details."),
714
866
  field: string$1().optional()
715
867
  });
868
+ var system = strictObject({
869
+ kind: literal("system"),
870
+ node: referenceSchema,
871
+ port: literal("error"),
872
+ field: string$1().optional()
873
+ });
716
874
  var variable$1 = strictObject({
717
875
  kind: literal("variable"),
718
876
  name: id$1
719
877
  });
720
878
  var authoringSourceSchema = union([
721
879
  output,
880
+ system,
722
881
  variable$1,
723
882
  strictObject({
724
883
  kind: literal("value"),
@@ -728,7 +887,11 @@ var authoringSourceSchema = union([
728
887
  strictObject({ kind: literal("default") }),
729
888
  strictObject({
730
889
  kind: literal("sources"),
731
- sources: array(union([output, variable$1])).min(1)
890
+ sources: array(union([
891
+ output,
892
+ system,
893
+ variable$1
894
+ ])).min(1)
732
895
  })
733
896
  ]);
734
897
  var operand = union([
@@ -738,6 +901,7 @@ var operand = union([
738
901
  schema: json$1.optional()
739
902
  }),
740
903
  output,
904
+ system,
741
905
  variable$1
742
906
  ]);
743
907
  var agentTool$1 = authoringDefinitionSchemas.agent.shape.tools.element.omit({
@@ -829,11 +993,13 @@ var authoringConfigurations = {
829
993
  approval: strictObject({ inputs: inputFields })
830
994
  };
831
995
  var metadata$1 = {
996
+ onError: _enum(["stop", "error"]).optional(),
832
997
  name: id$1.optional(),
833
998
  description: string$1().optional(),
834
999
  icon: string$1().optional(),
835
1000
  maxExecutions: int().positive().optional(),
836
- timeoutMs: number().nonnegative().optional()
1001
+ timeoutMs: number().nonnegative().optional(),
1002
+ retry: retryConfigurationSchema.partial().optional().describe("Node retry policy for Code, Connector, OpenAPI, LLM and AI Decision. Omitted update fields preserve the policy; use clear: [[\"retry\"]] to disable it. maxRetries counts additional attempts; intervalMs is 1000–60000 in whole seconds.")
837
1003
  };
838
1004
  var updates = strictObject({
839
1005
  ...metadata$1,
@@ -845,6 +1011,8 @@ var authoringEditSchema = discriminatedUnion("op", [
845
1011
  as: id$1.regex(/^[A-Za-z][\w-]*$/).describe("Unique batch-local alias without the $ prefix. Later edits must reference this new node as $alias; the bare alias is not its node ID."),
846
1012
  type,
847
1013
  name: id$1,
1014
+ onError: _enum(["stop", "error"]).optional(),
1015
+ retry: retryConfigurationSchema.optional(),
848
1016
  config: patch.optional(),
849
1017
  inputs: record$2(id$1, authoringSourceSchema).optional().describe("Input data sources, applied after creation, as input.set operations. Execution edges are separate."),
850
1018
  code: string$1().optional(),
@@ -1406,7 +1574,11 @@ function decodeEntries(values, current) {
1406
1574
  //#region src/trigger/common/config.ts
1407
1575
  /** Deployment-bound selections owned by the Trigger configuration contract. */
1408
1576
  function clearTriggerExternalConfig(key, config) {
1409
- const fields = key == "feishu_app_bot.on_event" ? [
1577
+ const fields = key == "jira.on_issue_event" || key == "intercom.on_conversation_event" || key == "sentry.on_issue_alert" || key == "zoom.on_recording_ready" || key == "fireflies.on_meeting_ready" ? ["sourceId", "eventTypes"] : key == "slackbot.on_event" ? [
1578
+ "sourceId",
1579
+ "eventTypes",
1580
+ "channelIds"
1581
+ ] : key == "feishu_app_bot.on_event" ? [
1410
1582
  "sourceId",
1411
1583
  "eventTypes",
1412
1584
  "resource",
@@ -2256,7 +2428,8 @@ function sourcePort(output, field) {
2256
2428
  }
2257
2429
  /** Present a selected first-level field as a compact path from its output. */
2258
2430
  function sourceOutputLabel(source) {
2259
- return source.field === void 0 ? source.output : `${source.output} / ${source.field}`;
2431
+ const output = source.system ? `$system / ${source.output}` : source.output;
2432
+ return source.field === void 0 ? output : `${output} / ${source.field}`;
2260
2433
  }
2261
2434
  //#endregion
2262
2435
  //#region src/flow/common/graph.ts
@@ -2338,6 +2511,14 @@ function nodeOutputPorts(node) {
2338
2511
  case "webhook": return triggerOutputPorts(node);
2339
2512
  }
2340
2513
  }
2514
+ function nodeSourceOutputPorts(node, system) {
2515
+ if (system) return nodeSystemOutputPorts(node);
2516
+ const ports = nodeOutputPorts(node);
2517
+ return node.onError == "error" ? Object.fromEntries(Object.entries(ports).map(([key, port]) => [key, {
2518
+ ...port,
2519
+ nullable: true
2520
+ }])) : ports;
2521
+ }
2341
2522
  function nodeOutputDescription(graph, nodeId, output) {
2342
2523
  const node = graph.nodes[nodeId];
2343
2524
  return node == null ? void 0 : nodeOutputPorts(node)[output]?.description;
@@ -2467,7 +2648,7 @@ function checkInputSource(graph, target, handle, source) {
2467
2648
  const targetNode = graph.nodes[target];
2468
2649
  if (node == null) return { kind: "source-missing" };
2469
2650
  if (targetNode == null) return { kind: "not-ready" };
2470
- const output = nodeOutputPorts(node)[source.output];
2651
+ const output = nodeSourceOutputPorts(node, source.system)[source.output];
2471
2652
  const input = nodeInputPorts(targetNode)[handle];
2472
2653
  if (output == null) return { kind: "output-missing" };
2473
2654
  if (input == null) return { kind: "not-ready" };
@@ -2500,22 +2681,33 @@ function inputSourceCandidates(graph, target, handle) {
2500
2681
  return Object.fromEntries([...analysis.ancestors.get(target) ?? []].flatMap((nodeId) => {
2501
2682
  const node = graph.nodes[nodeId];
2502
2683
  if (node == null) return [];
2503
- const outputs = Object.entries(nodeOutputPorts(node)).flatMap(([output, definition]) => {
2684
+ const outputs = [...Object.entries(nodeSourceOutputPorts(node)).map(([output, definition]) => ({
2685
+ output,
2686
+ definition,
2687
+ system: void 0
2688
+ })), ...Object.entries(nodeSystemOutputPorts(node)).map(([output, definition]) => ({
2689
+ output,
2690
+ definition,
2691
+ system: true
2692
+ }))].flatMap(({ output, definition, system }) => {
2504
2693
  if (!mappingAvailable(graph, target, {
2505
2694
  kind: "sources",
2506
2695
  sources: [{
2507
2696
  kind: "node",
2508
2697
  nodeId,
2509
- output
2698
+ output,
2699
+ ...system ? { system } : {}
2510
2700
  }]
2511
2701
  }, analysis)) return [];
2512
2702
  const check = sourceCompatibility(definition, input);
2513
2703
  const fields = sourceFields(definition).map(({ field, port }) => Object.assign({
2514
2704
  output,
2515
2705
  field,
2706
+ ...system ? { system } : {},
2516
2707
  check: sourceCompatibility(port, input)
2517
2708
  }, port.description == null ? {} : { description: port.description }));
2518
2709
  return [{
2710
+ ...system ? { system } : {},
2519
2711
  ...definition.description == null ? {} : { description: definition.description },
2520
2712
  output,
2521
2713
  check,
@@ -2528,22 +2720,44 @@ function inputSourceCandidates(graph, target, handle) {
2528
2720
  //#endregion
2529
2721
  //#region src/control/common/eventSources.ts
2530
2722
  var id = string$1().min(1).max(256);
2531
- var eventType = string$1().regex(/^[a-z][a-z0-9_.]{0,127}$/);
2723
+ var eventType = string$1().regex(/^[a-z][a-z0-9_.:]{0,127}$/);
2532
2724
  var name = string$1().trim().min(1).max(128);
2533
2725
  var eventSourceSchema = object$1({
2534
2726
  version: literal(1),
2535
2727
  sourceId: id,
2536
2728
  revision: int().positive(),
2537
2729
  name,
2538
- provider: _enum(["feishu", "feishu_app_bot"]),
2539
- appId: id,
2730
+ provider: _enum([
2731
+ "feishu",
2732
+ "feishu_app_bot",
2733
+ "slackbot",
2734
+ "intercom",
2735
+ "sentry",
2736
+ "zoom",
2737
+ "fireflies",
2738
+ "jira"
2739
+ ]),
2740
+ appId: id.nullable(),
2741
+ workspaceId: id.optional(),
2742
+ installationId: id.optional(),
2743
+ organizationId: id.optional(),
2744
+ projectId: id.optional(),
2745
+ projectKey: id.optional(),
2746
+ subscriptionStatus: _enum([
2747
+ "idle",
2748
+ "pending",
2749
+ "ready",
2750
+ "error"
2751
+ ]).optional(),
2752
+ lastError: string$1().optional(),
2753
+ signingSecretConfigured: boolean().optional(),
2540
2754
  connectionId: id,
2541
2755
  teamId: id.nullable(),
2542
2756
  enabled: boolean(),
2543
2757
  eventTypes: array(eventType),
2544
- manageSubscriptions: boolean(),
2545
- verificationTokenConfigured: boolean(),
2546
- encryptKeyConfigured: boolean(),
2758
+ manageSubscriptions: boolean().nullable(),
2759
+ verificationTokenConfigured: boolean().nullable(),
2760
+ encryptKeyConfigured: boolean().nullable(),
2547
2761
  endpointUrl: string$1().nullable(),
2548
2762
  verifiedAt: string$1().nullable(),
2549
2763
  lastReceivedAt: string$1().nullable(),
@@ -2554,6 +2768,21 @@ var eventSourceSchema = object$1({
2554
2768
  triggerNodeId: id
2555
2769
  }))
2556
2770
  });
2771
+ eventSourceSchema.pick({
2772
+ appId: true,
2773
+ workspaceId: true,
2774
+ installationId: true,
2775
+ organizationId: true,
2776
+ projectId: true,
2777
+ projectKey: true,
2778
+ subscriptionStatus: true,
2779
+ lastError: true,
2780
+ signingSecretConfigured: true,
2781
+ manageSubscriptions: true,
2782
+ verificationTokenConfigured: true,
2783
+ encryptKeyConfigured: true,
2784
+ verifiedAt: true
2785
+ });
2557
2786
  function decodeEventSource(value) {
2558
2787
  return eventSourceSchema.parse(value);
2559
2788
  }
@@ -3403,6 +3632,7 @@ function decodeRunEvent(value) {
3403
3632
  kind,
3404
3633
  payload: {
3405
3634
  ...node,
3635
+ ...payload.systemOutputs === void 0 ? {} : { systemOutputs: Object.fromEntries(Object.entries(record$1(payload.systemOutputs)).map(([key, item]) => [key, jsonValue(item)])) },
3406
3636
  outputs: Object.fromEntries(Object.entries(record$1(payload.outputs)).map(([key, item]) => [key, jsonValue(item)]))
3407
3637
  }
3408
3638
  };
@@ -3413,6 +3643,8 @@ function decodeRunEvent(value) {
3413
3643
  kind,
3414
3644
  payload: {
3415
3645
  ...node,
3646
+ ...payload.handled === true ? { handled: true } : {},
3647
+ ...payload.systemOutputs === void 0 ? {} : { systemOutputs: Object.fromEntries(Object.entries(record$1(payload.systemOutputs)).map(([key, item]) => [key, jsonValue(item)])) },
3416
3648
  error: {
3417
3649
  code: string(error.code),
3418
3650
  message: string(error.message)
@@ -3519,8 +3751,8 @@ var ControlClient = class {
3519
3751
  async listEventSources(flowId, signal) {
3520
3752
  return decodeEventSources(await this.request("/v1/event-sources" + (flowId == null ? "" : `?flowId=${segment$1(flowId)}`), { signal }));
3521
3753
  }
3522
- async listEventSourceConnections(teamId, signal) {
3523
- const source = record$1(await this.request(`/v1/event-sources/connections${teamId == null ? "" : `?teamId=${segment$1(teamId)}`}`, { signal }));
3754
+ async listEventSourceConnections(teamId, signal, kind = "feishu") {
3755
+ const source = record$1(await this.request(`/v1/event-sources/connections?kind=${kind}${teamId == null ? "" : `&teamId=${segment$1(teamId)}`}`, { signal }));
3524
3756
  requiredFields(source, ["version", "connections"]);
3525
3757
  if (source.version != 1 || !Array.isArray(source.connections)) return invalidResponse();
3526
3758
  return source.connections.map(connection);
@@ -3983,7 +4215,7 @@ var ControlClient = class {
3983
4215
  async checkFlow(flowId, revisionId) {
3984
4216
  return flowCheck(await this.request(`/v1/flows/${segment$1(flowId)}/revisions/${segment$1(revisionId)}/check`, {
3985
4217
  body: JSON.stringify({
3986
- engineContract: "open-flow-engine/v5",
4218
+ engineContract: currentEngineContract,
3987
4219
  version: 1
3988
4220
  }),
3989
4221
  method: "POST"
@@ -4008,7 +4240,7 @@ var ControlClient = class {
4008
4240
  async createDraftRun(flowId, revisionId, options) {
4009
4241
  const created = runDetails(await this.request(`/v1/flows/${segment$1(flowId)}/revisions/${segment$1(revisionId)}/runs`, {
4010
4242
  body: JSON.stringify({
4011
- engineContract: "open-flow-engine/v5",
4243
+ engineContract: currentEngineContract,
4012
4244
  inputs: options.inputs ?? {},
4013
4245
  trigger: options.trigger,
4014
4246
  version: 2
@@ -4050,7 +4282,7 @@ var ControlClient = class {
4050
4282
  async publishFlow(flowId, revisionId, expectedLivePublicationId, options = {}) {
4051
4283
  return publishOperation(await this.request(`/v1/flows/${segment$1(flowId)}/revisions/${segment$1(revisionId)}/publications`, {
4052
4284
  body: JSON.stringify({
4053
- engineContract: "open-flow-engine/v5",
4285
+ engineContract: currentEngineContract,
4054
4286
  expectedLivePublicationId,
4055
4287
  version: 1
4056
4288
  }),
@@ -4326,6 +4558,7 @@ function errorNotice(error, t) {
4326
4558
  //#region src/workbench/browser/runtime/eventSourceSetup.tsx
4327
4559
  function EventSourceSetup({ source, client, onChange, notify }) {
4328
4560
  const t = useTranslate();
4561
+ const presentation = eventSourcePresentations[eventSourceKind(source.provider)];
4329
4562
  const [copied, setCopied] = useState();
4330
4563
  const [pending, setPending] = useState(false);
4331
4564
  const request = useRef(null);
@@ -4360,11 +4593,11 @@ function EventSourceSetup({ source, client, onChange, notify }) {
4360
4593
  children: [
4361
4594
  /* @__PURE__ */ jsx("h3", {
4362
4595
  className: "m-0 text-sm font-medium",
4363
- children: t("eventSources.setupCopy")
4596
+ children: t(source.provider === "jira" ? "eventSources.setupJira" : "eventSources.setupCopy")
4364
4597
  }),
4365
4598
  source.endpointUrl == null ? /* @__PURE__ */ jsx("p", {
4366
4599
  className: "m-0 text-sm text-destructive",
4367
- children: t("eventSources.originMissing")
4600
+ children: t(source.appId == null ? "eventSources.identityUnknown" : "eventSources.originMissing")
4368
4601
  }) : /* @__PURE__ */ jsxs("div", {
4369
4602
  className: "flex items-center gap-2",
4370
4603
  children: [/* @__PURE__ */ jsx(Input, {
@@ -4401,22 +4634,26 @@ function EventSourceSetup({ source, client, onChange, notify }) {
4401
4634
  children: [
4402
4635
  /* @__PURE__ */ jsx("h3", {
4403
4636
  className: "m-0 text-sm font-medium",
4404
- children: t("eventSources.setupFeishu")
4637
+ children: t(presentation.setup)
4405
4638
  }),
4406
4639
  /* @__PURE__ */ jsx("p", {
4407
4640
  className: "m-0 text-sm leading-5 text-muted-foreground",
4408
- children: t("eventSources.setupFeishuHint")
4641
+ children: t(presentation.setupHint)
4409
4642
  }),
4410
4643
  /* @__PURE__ */ jsxs("p", {
4411
4644
  className: "m-0 text-xs text-muted-foreground",
4412
- children: ["App ID: ", /* @__PURE__ */ jsx("code", { children: source.appId })]
4645
+ children: [
4646
+ t("eventSources.appId"),
4647
+ ": ",
4648
+ /* @__PURE__ */ jsx("code", { children: source.appId ?? t("eventSources.identityUnknown") })
4649
+ ]
4413
4650
  }),
4414
4651
  /* @__PURE__ */ jsx("a", {
4415
4652
  className: "self-start text-sm text-primary underline underline-offset-4",
4416
- href: "https://open.feishu.cn/app",
4653
+ href: presentation.console,
4417
4654
  target: "_blank",
4418
4655
  rel: "noreferrer",
4419
- children: t("eventSources.openFeishu")
4656
+ children: t("eventSources.openConsole")
4420
4657
  }),
4421
4658
  /* @__PURE__ */ jsx("div", {
4422
4659
  className: "flex flex-wrap gap-2",
@@ -4427,7 +4664,7 @@ function EventSourceSetup({ source, client, onChange, notify }) {
4427
4664
  }),
4428
4665
  /* @__PURE__ */ jsx("p", {
4429
4666
  className: "m-0 text-xs leading-5 text-muted-foreground",
4430
- children: t("eventSources.manualSubscriptionHint")
4667
+ children: t(source.provider === "jira" ? "eventSources.jiraEventsHint" : "eventSources.manualSubscriptionHint")
4431
4668
  })
4432
4669
  ]
4433
4670
  }),
@@ -4441,11 +4678,16 @@ function EventSourceSetup({ source, client, onChange, notify }) {
4441
4678
  /* @__PURE__ */ jsx("p", {
4442
4679
  role: "status",
4443
4680
  className: "m-0 text-sm leading-5",
4444
- children: t(!source.enabled ? "eventSources.disabled" : source.verifiedAt == null ? "eventSources.awaitingVerification" : "eventSources.callbackVerified")
4681
+ children: source.provider === "jira" ? t(`eventSources.subscription.${source.subscriptionStatus ?? "idle"}`) : t(!source.enabled ? "eventSources.disabled" : source.verifiedAt == null ? "eventSources.awaitingVerification" : "eventSources.callbackVerified")
4445
4682
  }),
4446
4683
  /* @__PURE__ */ jsx("p", {
4447
4684
  className: "m-0 text-xs leading-5 text-muted-foreground",
4448
- children: t("eventSources.verifyBeforePublish")
4685
+ children: t(source.provider === "jira" ? "eventSources.jiraSetupHint" : "eventSources.verifyBeforePublish")
4686
+ }),
4687
+ source.lastError && /* @__PURE__ */ jsx("p", {
4688
+ role: "alert",
4689
+ className: "m-0 text-sm text-destructive",
4690
+ children: source.lastError
4449
4691
  }),
4450
4692
  /* @__PURE__ */ jsx(Button, {
4451
4693
  className: "self-start",
@@ -4760,6 +5002,7 @@ var formLocales = {
4760
5002
  "hours": "Hours",
4761
5003
  "minutes": "Minutes",
4762
5004
  "seconds": "Seconds",
5005
+ "constant": "Constant {{value}}",
4763
5006
  "components": {
4764
5007
  "string": "Text",
4765
5008
  "text": "Multiline",
@@ -4859,6 +5102,7 @@ var formLocales = {
4859
5102
  "hours": "时",
4860
5103
  "minutes": "分",
4861
5104
  "seconds": "秒",
5105
+ "constant": "常量 {{value}}",
4862
5106
  "components": {
4863
5107
  "string": "单行文本",
4864
5108
  "text": "多行文本",
@@ -4958,6 +5202,7 @@ var formLocales = {
4958
5202
  "hours": "時",
4959
5203
  "minutes": "分",
4960
5204
  "seconds": "秒",
5205
+ "constant": "常數 {{value}}",
4961
5206
  "components": {
4962
5207
  "string": "單行文字",
4963
5208
  "text": "多行文字",
@@ -5057,6 +5302,7 @@ var formLocales = {
5057
5302
  "hours": "時",
5058
5303
  "minutes": "分",
5059
5304
  "seconds": "秒",
5305
+ "constant": "定数 {{value}}",
5060
5306
  "components": {
5061
5307
  "string": "単一行",
5062
5308
  "text": "複数行",
@@ -5156,6 +5402,7 @@ var formLocales = {
5156
5402
  "hours": "시",
5157
5403
  "minutes": "분",
5158
5404
  "seconds": "초",
5405
+ "constant": "상수 {{value}}",
5159
5406
  "components": {
5160
5407
  "string": "한 줄",
5161
5408
  "text": "여러 줄",
@@ -5255,6 +5502,7 @@ var formLocales = {
5255
5502
  "hours": "Часы",
5256
5503
  "minutes": "Минуты",
5257
5504
  "seconds": "Секунды",
5505
+ "constant": "Константа {{value}}",
5258
5506
  "components": {
5259
5507
  "string": "Одна строка",
5260
5508
  "text": "Несколько строк",
@@ -5354,6 +5602,7 @@ var formLocales = {
5354
5602
  "hours": "Heures",
5355
5603
  "minutes": "Minutes",
5356
5604
  "seconds": "Secondes",
5605
+ "constant": "Constante {{value}}",
5357
5606
  "components": {
5358
5607
  "string": "Une ligne",
5359
5608
  "text": "Multiligne",
@@ -5681,7 +5930,32 @@ var resources = {
5681
5930
  "description": "Purpose",
5682
5931
  "describe": "Describe what this step does.",
5683
5932
  "icon": "Icon",
5684
- "name": "Title"
5933
+ "name": "Title",
5934
+ "retry": "Retry on error",
5935
+ "retryCount": "Up to {{count}} retries",
5936
+ "retryInterval": "Retry interval",
5937
+ "retryError": "Use an interval of 1–60 whole seconds.",
5938
+ "retryHint": "The retry count is the number of additional attempts after the first execution. Retries repeat the entire node and may repeat external operations. The timeout includes all attempts and intervals.",
5939
+ "retryNone": "No retries",
5940
+ "retrySeconds": "seconds",
5941
+ "retryHelp": "About retries",
5942
+ "retryOnce": "Retry once",
5943
+ "onError": "On failure",
5944
+ "onErrorStop": "Stop workflow",
5945
+ "onErrorOutput": "Output to error port",
5946
+ "onErrorHelp": "About failure handling",
5947
+ "onErrorHint": "After retries fail, write the error to the system error output and continue along existing connections. On success, error is null. Cancellation, timeouts, resource limits and indeterminate outcomes still stop execution.",
5948
+ "systemOutputs": "System outputs",
5949
+ "systemError": "Error information (system)",
5950
+ "errorFields": {
5951
+ "error": "Error information when the node fails; null on success.",
5952
+ "code": "A code identifying the type of error.",
5953
+ "message": "A description of the error, with sensitive content redacted.",
5954
+ "nodeId": "The ID of the node that failed.",
5955
+ "nodeName": "The node name at the time of failure.",
5956
+ "runId": "The ID of this workflow run.",
5957
+ "executionId": "The ID of this node execution, shared across its retry attempts."
5958
+ }
5685
5959
  },
5686
5960
  "selectNode": "Select one Draft node to inspect and edit it.",
5687
5961
  "locateNode": "Locate this node on the canvas",
@@ -6154,7 +6428,8 @@ var resources = {
6154
6428
  "completed": "Succeeded",
6155
6429
  "failed": "Failed",
6156
6430
  "unknown": "Unconfirmed"
6157
- }
6431
+ },
6432
+ "errorHandled": "Failure handled"
6158
6433
  },
6159
6434
  sidebar: {
6160
6435
  "createFirstFlow": "Create Flow",
@@ -6611,148 +6886,7 @@ var resources = {
6611
6886
  "results": "Search results",
6612
6887
  "builtIn": "Built-in"
6613
6888
  },
6614
- eventSources: {
6615
- "required": "Required",
6616
- "optional": "Optional",
6617
- "secretsHint": "Copy both values from the app’s Events & Callbacks encryption settings. This event source requires encrypted callbacks. When editing, leave a secret blank to keep its current value.",
6618
- "openConsole": "Open Feishu Developer Console",
6619
- "defaultName": "Feishu event source",
6620
- "title": "Event sources",
6621
- "description": "Receive application events once and share them across Flows.",
6622
- "refresh": "Refresh",
6623
- "add": "Add event source",
6624
- "loading": "Loading event sources…",
6625
- "empty": "No event sources yet",
6626
- "emptyDescription": "Connect a Feishu application to start Flows when events occur.",
6627
- "edit": "Edit",
6628
- "disabled": "Disabled",
6629
- "unverified": "Waiting for address verification",
6630
- "ready": "Callback verified",
6631
- "disable": "Disable",
6632
- "enable": "Enable",
6633
- "callback": "Callback URL",
6634
- "originMissing": "Configure the public Integration origin in deployment settings first.",
6635
- "connection": "Connection",
6636
- "lastReceived": "Last event received",
6637
- "never": "No events received",
6638
- "consumers": "Published Flows",
6639
- "noConsumers": "No published Flows use this source.",
6640
- "deleteConfirm": "Delete this event source?",
6641
- "delete": "Delete",
6642
- "cancel": "Cancel",
6643
- "name": "Name",
6644
- "team": "Connector Team",
6645
- "keepSecret": "Leave empty to keep the saved value",
6646
- "events": "Events to receive",
6647
- "eventsHint": "Select events to receive here, and enable the same events and permissions in Feishu. This selection does not configure the Feishu app. Synchronous interactive callbacks are not supported.",
6648
- "manageHint": "Allow this deployment to manage resource subscriptions for this application, including existing subscriptions and automatic cleanup when no published Flow needs them.",
6649
- "save": "Save",
6650
- "invalid": "The event source configuration is invalid. Check its Connection, tenant and required fields.",
6651
- "notFound": "This event source is unavailable for the selected Connection.",
6652
- "conflict": "The source changed or is still in use. Refresh and check the affected Flows and subscriptions.",
6653
- "source": "Event source",
6654
- "selectSourceFirst": "Select an event source first",
6655
- "noSources": "This Flow’s team has no Feishu event sources yet. Create one here to continue.",
6656
- "loadFailed": "Event sources could not be loaded.",
6657
- "searchEvents": "Search by name or event ID",
6658
- "customEvent": "Add custom event type",
6659
- "addCustom": "Add",
6660
- "noEventMatches": "No matching events",
6661
- "chooseEvents": "Select at least one event",
6662
- "customInvalid": "Enter a valid asynchronous event ID.",
6663
- "sourceEventsHint": "Only events allowed by the selected source are available.",
6664
- "eventUnavailable": "This event is not allowed by the selected source. Remove it or update the source.",
6665
- "eventGroups": {
6666
- "messages": "Messages",
6667
- "documents": "Documents",
6668
- "base": "Base",
6669
- "calendar": "Calendar",
6670
- "approval": "Approvals",
6671
- "contacts": "Contacts",
6672
- "custom": "Custom events"
6673
- },
6674
- "eventNames": {
6675
- "im_message_receive_v1": "Message received",
6676
- "im_message_recalled_v1": "Message recalled",
6677
- "im_message_reaction_created_v1": "Reaction added",
6678
- "im_chat_member_bot_added_v1": "Bot added to group",
6679
- "drive_file_edit_v1": "Document edited",
6680
- "drive_file_title_updated_v1": "Document renamed",
6681
- "drive_file_created_in_folder_v1": "File added to folder",
6682
- "drive_file_deleted_v1": "File deleted",
6683
- "drive_file_bitable_record_changed_v1": "Base records changed",
6684
- "drive_file_bitable_field_changed_v1": "Base fields changed",
6685
- "calendar_calendar_event_changed_v4": "Calendar event changed",
6686
- "calendar_calendar_changed_v4": "Calendar changed",
6687
- "approval_instance_status_changed_v4": "Approval instance status changed",
6688
- "approval_task_status_changed_v4": "Approval task status changed",
6689
- "approval_instance": "Approval instance (legacy)",
6690
- "contact_user_created_v3": "Employee added",
6691
- "contact_user_updated_v3": "Employee updated",
6692
- "contact_user_deleted_v3": "Employee removed"
6693
- },
6694
- "identityUnavailable": "This Connector does not provide a verified application ID. Upgrade Connector before creating this event source.",
6695
- "selectApp": "Select a Feishu app",
6696
- "configureCallback": "Configure the callback",
6697
- "selectAppHint": "Create a custom enterprise app in Feishu, then select Feishu App Bot in Connector and connect with its App ID and App Secret. Feishu user OAuth connections are not used here. Creating the app does not require a callback URL.",
6698
- "configureCallbackHint": "Get the Verification Token and configure an Encrypt Key under Events & Callbacks → Security Settings in Feishu. Save this form first, then paste the generated URL into Feishu.",
6699
- "feishuApp": "Feishu app (Feishu App Bot)",
6700
- "noApplications": "This team has no active Feishu App Bot connections. Connect an app to continue.",
6701
- "appSourceName": "{{name}} events",
6702
- "resourceManagement": "Resource subscription management",
6703
- "back": "Back",
6704
- "next": "Next",
6705
- "receiving": "Events received",
6706
- "create": "Create event source",
6707
- "created": "Event source created",
6708
- "flowCreateHint": "This event source belongs to the current Flow’s team and can be shared by multiple Flows.",
6709
- "bindFailed": "The event source was created, but could not be selected. Try again.",
6710
- "useSource": "Use this event source",
6711
- "verifyBeforePublish": "You can continue editing this Flow. Verify the callback in Feishu before publishing.",
6712
- "setupCopy": "1. Copy the callback URL",
6713
- "setupFeishu": "2. Configure event subscriptions in Feishu",
6714
- "setupVerify": "3. Return here to check verification",
6715
- "copy": "Copy",
6716
- "copied": "Copied",
6717
- "copyFailed": "Copy failed. Select the URL and copy it manually.",
6718
- "publicCallbackHint": "Feishu must be able to reach this URL over the public internet. Localhost and private addresses will not work.",
6719
- "setupFeishuHint": "Open the app’s Events & Callbacks → Event Configuration. Choose delivery to your server, paste the URL and save. Add the events below and their required permissions, then publish an app version as required by Feishu.",
6720
- "openFeishu": "Open Feishu Developer Console",
6721
- "manualSubscriptionHint": "Selecting events here does not add them to Feishu. Configure each event in the Feishu console.",
6722
- "awaitingVerification": "No callback verification received yet. Finish configuration in Feishu, then check below.",
6723
- "callbackVerified": "Callback verified. Check the source’s receiving status to see whether business events have arrived.",
6724
- "checkingVerification": "Checking…",
6725
- "checkVerification": "Check verification",
6726
- "specifiedChats": "Specific chats (optional)",
6727
- "specifiedChatsHint": "Enter one chat_id per line. Leave empty for all chats the app has permission to receive events from.",
6728
- "subscribeResource": "Subscribe to a specific resource",
6729
- "subscribeResourceHint": "Optional. Publishing will request a Feishu subscription for this resource and restrict this Flow to its events.",
6730
- "managementRequired": "Enable resource subscription management on this event source in Settings first.",
6731
- "incompatibleChats": "The selected events do not support chat filtering. Remove the previous filter.",
6732
- "incompatibleResource": "The configured resource does not match the selected events. Turn off the subscription and select compatible events.",
6733
- "removeFilter": "Remove filter",
6734
- "documentType": "Document type",
6735
- "documentTypes": {
6736
- "doc": "Legacy document",
6737
- "docx": "Document",
6738
- "sheet": "Spreadsheet",
6739
- "bitable": "Base",
6740
- "file": "File",
6741
- "folder": "Folder"
6742
- },
6743
- "resourceIds": {
6744
- "document": "Document token",
6745
- "calendar": "Calendar ID",
6746
- "approval": "Approval definition code"
6747
- },
6748
- "resourceHints": {
6749
- "document": "Enter the document or Base token, not its full URL.",
6750
- "calendar": "Enter the calendar ID whose event changes you want to receive.",
6751
- "approval": "Enter the approval definition code, not an instance ID. Only legacy approval business events are supported."
6752
- },
6753
- "connectApp": "Connect Feishu App Bot",
6754
- "connectAppHint": "Connector opens in a new tab. Use this Flow’s team; the list refreshes automatically when you return after connecting."
6755
- },
6889
+ eventSources: /* @__PURE__ */ JSON.parse("{\"required\":\"Required\",\"optional\":\"Optional\",\"secretsHint\":\"Copy both values from the app’s Events & Callbacks encryption settings. This event source requires encrypted callbacks. When editing, leave a secret blank to keep its current value.\",\"openConsole\":\"Open Developer Console\",\"defaultName\":\"Application event source\",\"title\":\"Event sources\",\"description\":\"Receive application events once and share them across Flows.\",\"refresh\":\"Refresh\",\"add\":\"Add event source\",\"loading\":\"Loading event sources…\",\"empty\":\"No event sources yet\",\"emptyDescription\":\"Connect an application to start Flows when events occur.\",\"edit\":\"Edit\",\"disabled\":\"Disabled\",\"unverified\":\"Waiting for address verification\",\"ready\":\"Callback verified\",\"disable\":\"Disable\",\"enable\":\"Enable\",\"callback\":\"Callback URL\",\"originMissing\":\"Configure the public Integration origin in deployment settings first.\",\"connection\":\"Connection\",\"lastReceived\":\"Last event received\",\"never\":\"No events received\",\"consumers\":\"Published Flows\",\"noConsumers\":\"No published Flows use this source.\",\"deleteConfirm\":\"Delete this event source?\",\"delete\":\"Delete\",\"cancel\":\"Cancel\",\"name\":\"Name\",\"team\":\"Connector Team\",\"keepSecret\":\"Leave empty to keep the saved value\",\"events\":\"Events to receive\",\"eventsHint\":\"Select events to receive here, and enable the same events and permissions in Feishu. This selection does not configure the Feishu app. Synchronous interactive callbacks are not supported.\",\"manageHint\":\"Allow this deployment to manage resource subscriptions for this application, including existing subscriptions and automatic cleanup when no published Flow needs them.\",\"save\":\"Save\",\"invalid\":\"The event source configuration is invalid. Check its Connection, tenant and required fields.\",\"notFound\":\"This event source is unavailable for the selected Connection.\",\"conflict\":\"The source changed or is still in use. Refresh and check the affected Flows and subscriptions.\",\"source\":\"Event source\",\"selectSourceFirst\":\"Select an event source first\",\"noSources\":\"This Flow’s team has no matching event sources yet. Create one to continue.\",\"loadFailed\":\"Event sources could not be loaded.\",\"searchEvents\":\"Search by name or event ID\",\"customEvent\":\"Add custom event type\",\"addCustom\":\"Add\",\"noEventMatches\":\"No matching events\",\"chooseEvents\":\"Select at least one event\",\"customInvalid\":\"Enter a valid asynchronous event ID.\",\"sourceEventsHint\":\"Only events allowed by the selected source are available.\",\"eventUnavailable\":\"This event is not allowed by the selected source. Remove it or update the source.\",\"eventGroups\":{\"messages\":\"Messages\",\"documents\":\"Documents\",\"base\":\"Base\",\"calendar\":\"Calendar\",\"approval\":\"Approvals\",\"contacts\":\"Contacts\",\"custom\":\"Custom events\"},\"eventNames\":{\"im_message_receive_v1\":\"Message received\",\"im_message_recalled_v1\":\"Message recalled\",\"im_message_reaction_created_v1\":\"Reaction added\",\"im_chat_member_bot_added_v1\":\"Bot added to group\",\"drive_file_edit_v1\":\"Document edited\",\"drive_file_title_updated_v1\":\"Document renamed\",\"drive_file_created_in_folder_v1\":\"File added to folder\",\"drive_file_deleted_v1\":\"File deleted\",\"drive_file_bitable_record_changed_v1\":\"Base records changed\",\"drive_file_bitable_field_changed_v1\":\"Base fields changed\",\"calendar_calendar_event_changed_v4\":\"Calendar event changed\",\"calendar_calendar_changed_v4\":\"Calendar changed\",\"approval_instance_status_changed_v4\":\"Approval instance status changed\",\"approval_task_status_changed_v4\":\"Approval task status changed\",\"approval_instance\":\"Approval instance (legacy)\",\"contact_user_created_v3\":\"Employee added\",\"contact_user_updated_v3\":\"Employee updated\",\"contact_user_deleted_v3\":\"Employee removed\"},\"identityUnavailable\":\"This Connector does not provide a verified application ID. Upgrade Connector before creating this event source.\",\"selectApp\":\"Select an application\",\"configureCallback\":\"Configure the callback\",\"selectAppHint\":\"Create a custom enterprise app in Feishu, then select Feishu App Bot in Connector and connect with its App ID and App Secret. Feishu user OAuth connections are not used here. Creating the app does not require a callback URL.\",\"configureCallbackHint\":\"Get the Verification Token and configure an Encrypt Key under Events & Callbacks → Security Settings in Feishu. Save this form first, then paste the generated URL into Feishu.\",\"feishuApp\":\"Feishu app (Feishu App Bot)\",\"noApplications\":\"This team has no active matching connections. Connect an application to continue.\",\"appSourceName\":\"{{name}} events\",\"resourceManagement\":\"Resource subscription management\",\"back\":\"Back\",\"next\":\"Next\",\"receiving\":\"Events received\",\"create\":\"Create event source\",\"created\":\"Event source created\",\"flowCreateHint\":\"This event source belongs to the current Flow’s team and can be shared by multiple Flows.\",\"bindFailed\":\"The event source was created, but could not be selected. Try again.\",\"useSource\":\"Use this event source\",\"verifyBeforePublish\":\"You can continue editing. Verify the application callback before publishing.\",\"setupCopy\":\"1. Copy the callback URL\",\"setupFeishu\":\"2. Configure event subscriptions in Feishu\",\"setupVerify\":\"3. Return here to check verification\",\"copy\":\"Copy\",\"copied\":\"Copied\",\"copyFailed\":\"Copy failed. Select the URL and copy it manually.\",\"publicCallbackHint\":\"The provider must reach this URL over the public internet. Localhost and private addresses will not work.\",\"setupFeishuHint\":\"Open the app’s Events & Callbacks → Event Configuration. Choose delivery to your server, paste the URL and save. Add the events below and their required permissions, then publish an app version as required by Feishu.\",\"openFeishu\":\"Open Feishu Developer Console\",\"manualSubscriptionHint\":\"Selecting events here does not enable them upstream. Configure them in the application console.\",\"awaitingVerification\":\"No callback verification received yet. Finish application configuration, then check below.\",\"callbackVerified\":\"Callback verified. Check the source’s receiving status to see whether business events have arrived.\",\"checkingVerification\":\"Checking…\",\"checkVerification\":\"Check verification\",\"specifiedChats\":\"Specific chats (optional)\",\"specifiedChatsHint\":\"Enter one chat_id per line. Leave empty for all chats the app has permission to receive events from.\",\"subscribeResource\":\"Subscribe to a specific resource\",\"subscribeResourceHint\":\"Optional. Publishing will request a Feishu subscription for this resource and restrict this Flow to its events.\",\"managementRequired\":\"Enable resource subscription management on this event source in Settings first.\",\"incompatibleChats\":\"The selected events do not support chat filtering. Remove the previous filter.\",\"incompatibleResource\":\"The configured resource does not match the selected events. Turn off the subscription and select compatible events.\",\"removeFilter\":\"Remove filter\",\"documentType\":\"Document type\",\"documentTypes\":{\"doc\":\"Legacy document\",\"docx\":\"Document\",\"sheet\":\"Spreadsheet\",\"bitable\":\"Base\",\"file\":\"File\",\"folder\":\"Folder\"},\"resourceIds\":{\"document\":\"Document token\",\"calendar\":\"Calendar ID\",\"approval\":\"Approval definition code\"},\"resourceHints\":{\"document\":\"Enter the document or Base token, not its full URL.\",\"calendar\":\"Enter the calendar ID whose event changes you want to receive.\",\"approval\":\"Enter the approval definition code, not an instance ID. Only legacy approval business events are supported.\"},\"connectApp\":\"Connect application\",\"connectAppHint\":\"Connector opens in a new tab. Use this Flow’s team; the list refreshes automatically when you return after connecting.\",\"provider\":\"Provider\",\"slackSecretsHint\":\"This Signing Secret belongs to the Slack application and is shared by its workspace sources. Rotating it resets verification for all sources.\",\"setupSlack\":\"Configure Slack Events API\",\"setupSlackHint\":\"Set the application Request URL below and subscribe to app_mention and message.im. Slack Connect shared channels are excluded.\",\"slackConnectHint\":\"Install your Slack application with a Bot OAuth connection. Its verified Bot user identity determines which installation may deliver events.\",\"intercomConnectHint\":\"Choose the connection for the workspace where your Intercom app is installed.\",\"intercomSecretsHint\":\"Enter the developer application ID and its Client Secret from Developer Hub.\",\"setupIntercom\":\"Configure Intercom webhooks\",\"setupIntercomHint\":\"In Developer Hub, set this URL, select the listed topics, and send a ping to verify. Administrator replies do not start runs.\",\"sentryConnectHint\":\"Choose the connection for the Sentry organization where the Custom Integration is installed.\",\"sentrySecretsHint\":\"Enter the Custom Integration UUID, Installation UUID and Client Secret. The installation is checked against the connected organization.\",\"setupSentry\":\"Configure Sentry Issue Alerts\",\"setupSentryHint\":\"Set this URL on the Custom Integration, enable the Issue Alert action, and send a test alert before publishing.\",\"zoomConnectHint\":\"Choose the Zoom user whose hosted recordings should start flows.\",\"zoomSecretsHint\":\"Enter the application Client ID and Webhook Secret Token from Zoom Marketplace.\",\"setupZoom\":\"Configure Zoom recording events\",\"setupZoomHint\":\"Configure this URL for recording.completed and validate it in Zoom Marketplace. Only recordings hosted by the connected user are accepted.\",\"firefliesConnectHint\":\"Choose a Fireflies connection with access to the meetings.\",\"firefliesSecretsHint\":\"Enter the Signing Secret configured for this URL in Webhooks V2.\",\"setupFireflies\":\"Configure Fireflies Webhooks V2\",\"setupFirefliesHint\":\"Set this URL, Signing Secret and events in Webhooks V2. Send an event for a meeting accessible to this connection before publishing. Transcript and summary events are independent.\",\"jiraConnectHint\":\"Choose a Jira Cloud OAuth connection with webhook management permission.\",\"jiraSetupHint\":\"Enter a project key or ID. Publishing the first Flow creates the webhook automatically; Connector renews it before expiry and removes it after the last consumer stops. The public HTTPS callback domain must be allowed by the OAuth app.\",\"setupJira\":\"Automatic Jira project subscription\",\"jiraEventsHint\":\"One webhook covers this project. Flows filter the issue and comment events they need.\",\"jiraProject\":\"Jira project key or ID\",\"subscription\":{\"idle\":\"Publishes automatically with the first Flow\",\"pending\":\"Creating or renewing the webhook\",\"ready\":\"Webhook active\",\"error\":\"Webhook unavailable; check the connection and retry publication\"},\"accountIdentity\":\"Connection account identity\",\"appId\":\"App ID\",\"slackAppId\":\"Slack App ID\",\"integrationId\":\"Integration UUID\",\"developerAppId\":\"Developer App ID\",\"organizationId\":\"Organization ID / slug\",\"installationId\":\"Installation UUID\",\"workspaceId\":\"Workspace ID\",\"verificationToken\":\"Verification Token\",\"signingSecret\":\"Signing Secret\",\"webhookSecret\":\"Webhook Secret Token\",\"encryptKey\":\"Encrypt Key\",\"clientSecret\":\"Client Secret\",\"identityUnknown\":\"Temporarily unavailable\"}"),
6756
6890
  connectionUsage: {
6757
6891
  "title": "Connection overview",
6758
6892
  "needsAttention": "Connections need attention",
@@ -6933,6 +7067,15 @@ var resources = {
6933
7067
  "deleteImpact": "Calls in {{count}} workflows will break",
6934
7068
  "deleteAnyway": "Delete anyway",
6935
7069
  "deleteListeners": "Error listeners that will stop receiving: {{count}}"
7070
+ },
7071
+ tallyTrigger: {
7072
+ "form": "Form",
7073
+ "selectForm": "Choose a form",
7074
+ "loading": "Loading forms…",
7075
+ "noForms": "No accessible forms.",
7076
+ "unavailable": "This form is no longer accessible. Choose another form.",
7077
+ "failed": "Could not load forms.",
7078
+ "retry": "Retry"
6936
7079
  }
6937
7080
  },
6938
7081
  "zh-CN": {
@@ -7218,7 +7361,32 @@ var resources = {
7218
7361
  "description": "用途说明",
7219
7362
  "describe": "描述这一步要完成什么。",
7220
7363
  "icon": "图标",
7221
- "name": "标题"
7364
+ "name": "标题",
7365
+ "retry": "失败重试",
7366
+ "retryCount": "最多重试 {{count}} 次",
7367
+ "retryInterval": "重试间隔",
7368
+ "retryError": "间隔须为 1~60 整数秒。",
7369
+ "retryHint": "重试次数是首次执行失败后的追加次数。重试会重新执行整个节点,可能重复外部操作。超时包含全部尝试和等待间隔。",
7370
+ "retryNone": "不重试",
7371
+ "retrySeconds": "秒",
7372
+ "retryHelp": "重试说明",
7373
+ "retryOnce": "最多重试 1 次",
7374
+ "onError": "失败处理",
7375
+ "onErrorStop": "终止工作流",
7376
+ "onErrorOutput": "输出到 error 端口",
7377
+ "onErrorHelp": "失败处理说明",
7378
+ "onErrorHint": "重试后仍失败时,将错误写入系统 error 并沿现有连线继续。成功时 error 为 null。取消、超时、资源限制和结果不确定仍终止工作流。",
7379
+ "systemOutputs": "系统输出",
7380
+ "systemError": "错误信息(系统)",
7381
+ "errorFields": {
7382
+ "error": "节点失败时的错误信息;成功时为 null。",
7383
+ "code": "用于识别错误类型的错误码。",
7384
+ "message": "错误的说明信息,敏感内容已脱敏。",
7385
+ "nodeId": "发生错误的节点 ID。",
7386
+ "nodeName": "发生错误时的节点名称。",
7387
+ "runId": "本次工作流运行的 ID。",
7388
+ "executionId": "本次节点执行的 ID,多次重试共用此 ID。"
7389
+ }
7222
7390
  },
7223
7391
  "selectNode": "选择一个草稿节点以查看和编辑。",
7224
7392
  "locateNode": "在画布上定位该节点",
@@ -7691,7 +7859,8 @@ var resources = {
7691
7859
  "completed": "成功",
7692
7860
  "failed": "失败",
7693
7861
  "unknown": "状态未确认"
7694
- }
7862
+ },
7863
+ "errorHandled": "失败已处理"
7695
7864
  },
7696
7865
  sidebar: {
7697
7866
  "createFirstFlow": "创建工作流",
@@ -8148,148 +8317,7 @@ var resources = {
8148
8317
  "results": "搜索结果",
8149
8318
  "builtIn": "内置"
8150
8319
  },
8151
- eventSources: {
8152
- "required": "必填",
8153
- "optional": "选填",
8154
- "secretsHint": "从飞书应用的“事件与回调”加密设置中复制这两项。本事件源使用加密回调;编辑时留空可保留原密钥。",
8155
- "openConsole": "打开飞书开发者后台",
8156
- "defaultName": "飞书事件源",
8157
- "title": "事件源",
8158
- "description": "统一接收应用事件,供多个工作流使用。",
8159
- "refresh": "刷新",
8160
- "add": "添加事件源",
8161
- "loading": "正在加载事件源…",
8162
- "empty": "尚无事件源",
8163
- "emptyDescription": "接入飞书应用,在事件发生时启动工作流。",
8164
- "edit": "编辑",
8165
- "disabled": "已停用",
8166
- "unverified": "等待验证回调地址",
8167
- "ready": "回调已验证",
8168
- "disable": "停用",
8169
- "enable": "启用",
8170
- "callback": "回调地址",
8171
- "originMissing": "请先在部署设置中配置 Integration 公网地址。",
8172
- "connection": "连接账号",
8173
- "lastReceived": "最近接收事件",
8174
- "never": "尚未收到事件",
8175
- "consumers": "引用此来源的已发布工作流",
8176
- "noConsumers": "暂无已发布工作流使用此事件源。",
8177
- "deleteConfirm": "删除此事件源?",
8178
- "delete": "删除",
8179
- "cancel": "取消",
8180
- "name": "名称",
8181
- "team": "Connector 团队",
8182
- "keepSecret": "留空保留已保存的值",
8183
- "events": "接收的事件",
8184
- "eventsHint": "在这里选择接收的事件,并在飞书应用后台启用对应事件和权限。此处选择不会自动配置飞书应用,不支持需要同步响应的交互回调。",
8185
- "manageHint": "允许当前部署管理该应用的资源订阅,包括接管已有订阅,以及在不再被已发布工作流使用时自动清理。",
8186
- "save": "保存",
8187
- "invalid": "事件源配置无效,请检查连接账号、租户和必填字段。",
8188
- "notFound": "所选连接账号无法使用此事件源。",
8189
- "conflict": "事件源已变更或仍在使用,请刷新并检查相关工作流和订阅。",
8190
- "source": "事件源",
8191
- "selectSourceFirst": "请先选择事件源",
8192
- "noSources": "当前工作流所属团队暂无飞书事件源,可以在这里创建。",
8193
- "loadFailed": "无法加载事件源。",
8194
- "searchEvents": "搜索事件名称或标识",
8195
- "customEvent": "添加自定义事件类型",
8196
- "addCustom": "添加",
8197
- "noEventMatches": "没有匹配的事件",
8198
- "chooseEvents": "请至少选择一个事件",
8199
- "customInvalid": "请输入有效的异步事件标识。",
8200
- "sourceEventsHint": "只能选择此事件源允许接收的事件。",
8201
- "eventUnavailable": "此事件不在所选事件源的接收范围内,请移除或修改事件源。",
8202
- "eventGroups": {
8203
- "messages": "消息",
8204
- "documents": "文档",
8205
- "base": "多维表格",
8206
- "calendar": "日历",
8207
- "approval": "审批",
8208
- "contacts": "通讯录",
8209
- "custom": "自定义事件"
8210
- },
8211
- "eventNames": {
8212
- "im_message_receive_v1": "收到消息",
8213
- "im_message_recalled_v1": "消息被撤回",
8214
- "im_message_reaction_created_v1": "添加消息表情回复",
8215
- "im_chat_member_bot_added_v1": "机器人入群",
8216
- "drive_file_edit_v1": "文档内容变化",
8217
- "drive_file_title_updated_v1": "文档标题变化",
8218
- "drive_file_created_in_folder_v1": "文件夹中新增文件",
8219
- "drive_file_deleted_v1": "文件被删除",
8220
- "drive_file_bitable_record_changed_v1": "多维表格记录变化",
8221
- "drive_file_bitable_field_changed_v1": "多维表格字段变化",
8222
- "calendar_calendar_event_changed_v4": "日程变化",
8223
- "calendar_calendar_changed_v4": "日历变化",
8224
- "approval_instance_status_changed_v4": "审批实例状态变化",
8225
- "approval_task_status_changed_v4": "审批任务状态变化",
8226
- "approval_instance": "审批实例(旧版事件)",
8227
- "contact_user_created_v3": "员工入职",
8228
- "contact_user_updated_v3": "员工信息变化",
8229
- "contact_user_deleted_v3": "员工离职"
8230
- },
8231
- "identityUnavailable": "当前 Connector 未提供已验证的应用 ID,请升级 Connector 后再创建事件源。",
8232
- "selectApp": "选择飞书应用",
8233
- "configureCallback": "配置事件回调",
8234
- "selectAppHint": "先在飞书创建企业自建应用,再在 Connector 中选择 Feishu App Bot,用 App ID 和 App Secret 连接。这里不使用 Feishu 用户授权连接;创建飞书应用时不需要事件回调地址。",
8235
- "configureCallbackHint": "从飞书应用的“事件与回调 → 安全设置”获取 Verification Token 并配置 Encrypt Key。先保存这里的表单,再把生成的地址填回飞书。",
8236
- "feishuApp": "飞书应用(Feishu App Bot)",
8237
- "noApplications": "当前团队还没有有效的 Feishu App Bot 连接,请先连接应用。",
8238
- "appSourceName": "{{name}} 事件源",
8239
- "resourceManagement": "资源订阅管理",
8240
- "back": "上一步",
8241
- "next": "下一步",
8242
- "receiving": "已收到事件",
8243
- "create": "创建事件源",
8244
- "created": "事件源已创建",
8245
- "flowCreateHint": "事件源将归属当前工作流的团队,可供团队内多个工作流共用。",
8246
- "bindFailed": "事件源已创建,但未能关联到当前节点,请重试。",
8247
- "useSource": "使用此事件源",
8248
- "verifyBeforePublish": "可以继续编辑工作流;发布前,请先在飞书完成回调验证。",
8249
- "setupCopy": "1. 复制回调地址",
8250
- "setupFeishu": "2. 在飞书配置事件订阅",
8251
- "setupVerify": "3. 回到这里检查验证结果",
8252
- "copy": "复制",
8253
- "copied": "已复制",
8254
- "copyFailed": "复制失败,请选中地址手动复制。",
8255
- "publicCallbackHint": "此地址需要能被飞书从公网访问;localhost 和内网地址不可用。",
8256
- "setupFeishuHint": "打开对应应用的“事件与回调 → 事件配置”,选择“将事件发送至开发者服务器”,粘贴地址并保存。随后添加下列事件及所需权限,按飞书要求发布应用版本。",
8257
- "openFeishu": "打开飞书开放平台",
8258
- "manualSubscriptionHint": "这里选择的事件不会自动添加到飞书,请在飞书后台逐项配置。",
8259
- "awaitingVerification": "尚未收到飞书的回调验证。完成飞书配置后,点击下方按钮检查。",
8260
- "callbackVerified": "回调已验证。是否已收到业务事件,请查看事件源的接收状态。",
8261
- "checkingVerification": "正在检查…",
8262
- "checkVerification": "检查验证结果",
8263
- "specifiedChats": "指定会话(可选)",
8264
- "specifiedChatsHint": "每行填写一个会话 ID(chat_id)。留空表示不限制会话;应用仍只能接收有权限访问的会话事件。",
8265
- "subscribeResource": "订阅指定资源",
8266
- "subscribeResourceHint": "可选。开启后会在发布时向飞书申请该资源的订阅,并仅用该资源的事件触发此工作流。",
8267
- "managementRequired": "此事件源未开启“资源订阅管理”,请先在设置中的事件源页面开启。",
8268
- "incompatibleChats": "当前事件不支持会话筛选,请移除旧的会话条件。",
8269
- "incompatibleResource": "当前事件与已配置的资源不匹配,请关闭资源订阅后重新选择事件。",
8270
- "removeFilter": "移除筛选条件",
8271
- "documentType": "文档类型",
8272
- "documentTypes": {
8273
- "doc": "旧版文档",
8274
- "docx": "新版文档",
8275
- "sheet": "电子表格",
8276
- "bitable": "多维表格",
8277
- "file": "文件",
8278
- "folder": "文件夹"
8279
- },
8280
- "resourceIds": {
8281
- "document": "文档 Token",
8282
- "calendar": "日历 ID",
8283
- "approval": "审批定义 Code"
8284
- },
8285
- "resourceHints": {
8286
- "document": "填写文档或多维表格的 Token,不是完整链接。",
8287
- "calendar": "填写需要监听日程变化的日历 ID。",
8288
- "approval": "填写审批定义的 Code,不是单个审批实例 ID;当前仅支持旧版审批业务事件。"
8289
- },
8290
- "connectApp": "连接 Feishu App Bot",
8291
- "connectAppHint": "将在新标签页打开 Connector。请使用当前工作流所属团队;连接完成后返回这里,列表会自动刷新。"
8292
- },
8320
+ eventSources: /* @__PURE__ */ JSON.parse("{\"required\":\"必填\",\"optional\":\"选填\",\"secretsHint\":\"从飞书应用的“事件与回调”加密设置中复制这两项。本事件源使用加密回调;编辑时留空可保留原密钥。\",\"openConsole\":\"打开开发者控制台\",\"defaultName\":\"应用事件源\",\"title\":\"事件源\",\"description\":\"统一接收应用事件,供多个工作流使用。\",\"refresh\":\"刷新\",\"add\":\"添加事件源\",\"loading\":\"正在加载事件源…\",\"empty\":\"尚无事件源\",\"emptyDescription\":\"连接应用,在事件发生时启动 Flow。\",\"edit\":\"编辑\",\"disabled\":\"已停用\",\"unverified\":\"等待验证回调地址\",\"ready\":\"回调已验证\",\"disable\":\"停用\",\"enable\":\"启用\",\"callback\":\"回调地址\",\"originMissing\":\"请先在部署设置中配置 Integration 公网地址。\",\"connection\":\"连接账号\",\"lastReceived\":\"最近接收事件\",\"never\":\"尚未收到事件\",\"consumers\":\"引用此来源的已发布工作流\",\"noConsumers\":\"暂无已发布工作流使用此事件源。\",\"deleteConfirm\":\"删除此事件源?\",\"delete\":\"删除\",\"cancel\":\"取消\",\"name\":\"名称\",\"team\":\"Connector 团队\",\"keepSecret\":\"留空保留已保存的值\",\"events\":\"接收的事件\",\"eventsHint\":\"在这里选择接收的事件,并在飞书应用后台启用对应事件和权限。此处选择不会自动配置飞书应用,不支持需要同步响应的交互回调。\",\"manageHint\":\"允许当前部署管理该应用的资源订阅,包括接管已有订阅,以及在不再被已发布工作流使用时自动清理。\",\"save\":\"保存\",\"invalid\":\"事件源配置无效,请检查连接账号、租户和必填字段。\",\"notFound\":\"所选连接账号无法使用此事件源。\",\"conflict\":\"事件源已变更或仍在使用,请刷新并检查相关工作流和订阅。\",\"source\":\"事件源\",\"selectSourceFirst\":\"请先选择事件源\",\"noSources\":\"此 Flow 所在团队暂无匹配的事件源,请先创建。\",\"loadFailed\":\"无法加载事件源。\",\"searchEvents\":\"搜索事件名称或标识\",\"customEvent\":\"添加自定义事件类型\",\"addCustom\":\"添加\",\"noEventMatches\":\"没有匹配的事件\",\"chooseEvents\":\"请至少选择一个事件\",\"customInvalid\":\"请输入有效的异步事件标识。\",\"sourceEventsHint\":\"只能选择此事件源允许接收的事件。\",\"eventUnavailable\":\"此事件不在所选事件源的接收范围内,请移除或修改事件源。\",\"eventGroups\":{\"messages\":\"消息\",\"documents\":\"文档\",\"base\":\"多维表格\",\"calendar\":\"日历\",\"approval\":\"审批\",\"contacts\":\"通讯录\",\"custom\":\"自定义事件\"},\"eventNames\":{\"im_message_receive_v1\":\"收到消息\",\"im_message_recalled_v1\":\"消息被撤回\",\"im_message_reaction_created_v1\":\"添加消息表情回复\",\"im_chat_member_bot_added_v1\":\"机器人入群\",\"drive_file_edit_v1\":\"文档内容变化\",\"drive_file_title_updated_v1\":\"文档标题变化\",\"drive_file_created_in_folder_v1\":\"文件夹中新增文件\",\"drive_file_deleted_v1\":\"文件被删除\",\"drive_file_bitable_record_changed_v1\":\"多维表格记录变化\",\"drive_file_bitable_field_changed_v1\":\"多维表格字段变化\",\"calendar_calendar_event_changed_v4\":\"日程变化\",\"calendar_calendar_changed_v4\":\"日历变化\",\"approval_instance_status_changed_v4\":\"审批实例状态变化\",\"approval_task_status_changed_v4\":\"审批任务状态变化\",\"approval_instance\":\"审批实例(旧版事件)\",\"contact_user_created_v3\":\"员工入职\",\"contact_user_updated_v3\":\"员工信息变化\",\"contact_user_deleted_v3\":\"员工离职\"},\"identityUnavailable\":\"当前 Connector 未提供已验证的应用 ID,请升级 Connector 后再创建事件源。\",\"selectApp\":\"选择应用\",\"configureCallback\":\"配置事件回调\",\"selectAppHint\":\"先在飞书创建企业自建应用,再在 Connector 中选择 Feishu App Bot,用 App ID 和 App Secret 连接。这里不使用 Feishu 用户授权连接;创建飞书应用时不需要事件回调地址。\",\"configureCallbackHint\":\"从飞书应用的“事件与回调 → 安全设置”获取 Verification Token 并配置 Encrypt Key。先保存这里的表单,再把生成的地址填回飞书。\",\"feishuApp\":\"飞书应用(Feishu App Bot)\",\"noApplications\":\"此团队暂无匹配的有效连接,请先连接应用。\",\"appSourceName\":\"{{name}} 事件源\",\"resourceManagement\":\"资源订阅管理\",\"back\":\"上一步\",\"next\":\"下一步\",\"receiving\":\"已收到事件\",\"create\":\"创建事件源\",\"created\":\"事件源已创建\",\"flowCreateHint\":\"事件源将归属当前工作流的团队,可供团队内多个工作流共用。\",\"bindFailed\":\"事件源已创建,但未能关联到当前节点,请重试。\",\"useSource\":\"使用此事件源\",\"verifyBeforePublish\":\"可继续编辑 Flow;发布前请验证应用回调。\",\"setupCopy\":\"1. 复制回调地址\",\"setupFeishu\":\"2. 在飞书配置事件订阅\",\"setupVerify\":\"3. 回到这里检查验证结果\",\"copy\":\"复制\",\"copied\":\"已复制\",\"copyFailed\":\"复制失败,请选中地址手动复制。\",\"publicCallbackHint\":\"服务商必须能通过公网访问此地址,不能使用 localhost 或内网地址。\",\"setupFeishuHint\":\"打开对应应用的“事件与回调 → 事件配置”,选择“将事件发送至开发者服务器”,粘贴地址并保存。随后添加下列事件及所需权限,按飞书要求发布应用版本。\",\"openFeishu\":\"打开飞书开放平台\",\"manualSubscriptionHint\":\"此处选择事件不会启用上游订阅,请在应用控制台中配置。\",\"awaitingVerification\":\"尚未收到回调验证,请完成应用配置后检查。\",\"callbackVerified\":\"回调已验证。是否已收到业务事件,请查看事件源的接收状态。\",\"checkingVerification\":\"正在检查…\",\"checkVerification\":\"检查验证结果\",\"specifiedChats\":\"指定会话(可选)\",\"specifiedChatsHint\":\"每行填写一个会话 ID(chat_id)。留空表示不限制会话;应用仍只能接收有权限访问的会话事件。\",\"subscribeResource\":\"订阅指定资源\",\"subscribeResourceHint\":\"可选。开启后会在发布时向飞书申请该资源的订阅,并仅用该资源的事件触发此工作流。\",\"managementRequired\":\"此事件源未开启“资源订阅管理”,请先在设置中的事件源页面开启。\",\"incompatibleChats\":\"当前事件不支持会话筛选,请移除旧的会话条件。\",\"incompatibleResource\":\"当前事件与已配置的资源不匹配,请关闭资源订阅后重新选择事件。\",\"removeFilter\":\"移除筛选条件\",\"documentType\":\"文档类型\",\"documentTypes\":{\"doc\":\"旧版文档\",\"docx\":\"新版文档\",\"sheet\":\"电子表格\",\"bitable\":\"多维表格\",\"file\":\"文件\",\"folder\":\"文件夹\"},\"resourceIds\":{\"document\":\"文档 Token\",\"calendar\":\"日历 ID\",\"approval\":\"审批定义 Code\"},\"resourceHints\":{\"document\":\"填写文档或多维表格的 Token,不是完整链接。\",\"calendar\":\"填写需要监听日程变化的日历 ID。\",\"approval\":\"填写审批定义的 Code,不是单个审批实例 ID;当前仅支持旧版审批业务事件。\"},\"connectApp\":\"连接应用\",\"connectAppHint\":\"将在新标签页打开 Connector。请使用当前工作流所属团队;连接完成后返回这里,列表会自动刷新。\",\"provider\":\"服务\",\"slackSecretsHint\":\"Signing Secret 属于 Slack 应用,由其工作区事件源共享。更换后所有事件源都需要重新验证。\",\"setupSlack\":\"配置 Slack Events API\",\"setupSlackHint\":\"将下方地址设为应用 Request URL,并订阅 app_mention 和 message.im。不接收 Slack Connect 共享频道事件。\",\"slackConnectHint\":\"通过 Bot OAuth 连接安装 Slack 应用,系统依据已验证的 Bot 用户身份匹配安装。\",\"intercomConnectHint\":\"选择已安装 Intercom 应用的工作区连接。\",\"intercomSecretsHint\":\"填写 Developer Hub 中开发者应用的 ID 和 Client Secret。\",\"setupIntercom\":\"配置 Intercom Webhook\",\"setupIntercomHint\":\"在 Developer Hub 配置此地址和下列事件,并发送 ping 完成验证。管理员回复不会启动运行。\",\"sentryConnectHint\":\"选择安装了自定义集成的 Sentry 组织连接。\",\"sentrySecretsHint\":\"填写自定义集成 UUID、安装 UUID 和 Client Secret。系统将检查它是否安装于当前连接的组织。\",\"setupSentry\":\"配置 Sentry Issue 告警\",\"setupSentryHint\":\"在自定义集成中配置此地址,启用 Issue Alert 动作,并在发布前发送测试告警。\",\"zoomConnectHint\":\"选择需要监听其主持会议录制的 Zoom 用户连接。\",\"zoomSecretsHint\":\"填写 Zoom Marketplace 中的应用 Client ID 和 Webhook Secret Token。\",\"setupZoom\":\"配置 Zoom 录制事件\",\"setupZoomHint\":\"在 Zoom Marketplace 为 recording.completed 配置此地址并完成验证。仅接收连接用户主持的会议录制。\",\"firefliesConnectHint\":\"选择具有会议访问权限的 Fireflies 连接。\",\"firefliesSecretsHint\":\"填写在 Webhooks V2 中为此回调地址配置的 Signing Secret。\",\"setupFireflies\":\"配置 Fireflies Webhooks V2\",\"setupFirefliesHint\":\"在 Webhooks V2 配置此地址、Signing Secret 和事件。发布前发送当前连接可访问会议的事件以完成验证。转写与摘要分别触发。\",\"jiraConnectHint\":\"选择具有 Webhook 管理权限的 Jira Cloud OAuth 连接。\",\"jiraSetupHint\":\"填写项目 Key 或 ID。发布第一个 Flow 时自动创建 Webhook,Connector 会在到期前续期,并在最后一个消费者停止后删除。公网 HTTPS 回调域名必须已获 OAuth 应用允许。\",\"setupJira\":\"自动订阅 Jira 项目\",\"jiraEventsHint\":\"同一项目共用一个 Webhook,各 Flow 分别筛选需要的 Issue 和评论事件。\",\"jiraProject\":\"Jira 项目 Key 或 ID\",\"subscription\":{\"idle\":\"发布第一个 Flow 时自动订阅\",\"pending\":\"正在创建或续期 Webhook\",\"ready\":\"Webhook 已启用\",\"error\":\"Webhook 不可用,请检查连接并重试发布\"},\"accountIdentity\":\"连接账号标识\",\"appId\":\"应用 ID\",\"slackAppId\":\"Slack 应用 ID\",\"integrationId\":\"集成 UUID\",\"developerAppId\":\"开发者应用 ID\",\"organizationId\":\"组织 ID / 简称\",\"installationId\":\"安装 UUID\",\"workspaceId\":\"工作区 ID\",\"verificationToken\":\"验证令牌\",\"signingSecret\":\"签名密钥\",\"webhookSecret\":\"Webhook 密钥令牌\",\"encryptKey\":\"加密密钥\",\"clientSecret\":\"客户端密钥\",\"identityUnknown\":\"暂不可用\"}"),
8293
8321
  connectionUsage: {
8294
8322
  "title": "连接概览",
8295
8323
  "needsAttention": "连接需要处理",
@@ -8470,6 +8498,15 @@ var resources = {
8470
8498
  "deleteImpact": "{{count}} 个工作流中的调用将失效",
8471
8499
  "deleteAnyway": "仍然删除",
8472
8500
  "deleteListeners": "{{count}} 个错误监听将停止接收"
8501
+ },
8502
+ tallyTrigger: {
8503
+ "form": "表单",
8504
+ "selectForm": "选择表单",
8505
+ "loading": "正在加载表单…",
8506
+ "noForms": "没有可访问的表单。",
8507
+ "unavailable": "此表单已无法访问,请选择其他表单。",
8508
+ "failed": "无法加载表单。",
8509
+ "retry": "重试"
8473
8510
  }
8474
8511
  },
8475
8512
  "zh-TW": {
@@ -8755,7 +8792,32 @@ var resources = {
8755
8792
  "description": "用途說明",
8756
8793
  "describe": "描述這個步驟要完成什麼。",
8757
8794
  "icon": "圖示",
8758
- "name": "標題"
8795
+ "name": "標題",
8796
+ "retry": "失敗重試",
8797
+ "retryCount": "最多重試 {{count}} 次",
8798
+ "retryInterval": "重試間隔",
8799
+ "retryError": "間隔須為 1~60 整數秒。",
8800
+ "retryHint": "重試次數是首次執行失敗後的追加次數。重試會重新執行整個節點,可能重複外部操作。逾時包含全部嘗試和等待間隔。",
8801
+ "retryNone": "不重試",
8802
+ "retrySeconds": "秒",
8803
+ "retryHelp": "重試說明",
8804
+ "retryOnce": "最多重試 1 次",
8805
+ "onError": "失敗處理",
8806
+ "onErrorStop": "終止工作流程",
8807
+ "onErrorOutput": "輸出至 error 連接埠",
8808
+ "onErrorHelp": "失敗處理說明",
8809
+ "onErrorHint": "重試後仍失敗時,將錯誤寫入系統 error 並沿現有連線繼續。成功時 error 為 null。取消、逾時、資源限制及結果不確定仍終止工作流程。",
8810
+ "systemOutputs": "系統輸出",
8811
+ "systemError": "錯誤資訊(系統)",
8812
+ "errorFields": {
8813
+ "error": "節點失敗時的錯誤資訊;成功時為 null。",
8814
+ "code": "用於識別錯誤類型的錯誤碼。",
8815
+ "message": "錯誤的說明資訊,敏感內容已遮蔽。",
8816
+ "nodeId": "發生錯誤的節點 ID。",
8817
+ "nodeName": "發生錯誤時的節點名稱。",
8818
+ "runId": "本次工作流程執行的 ID。",
8819
+ "executionId": "本次節點執行的 ID,多次重試共用此 ID。"
8820
+ }
8759
8821
  },
8760
8822
  "selectNode": "選取一個草稿節點即可檢視並編輯它。",
8761
8823
  "locateNode": "在畫布上定位此節點",
@@ -9228,7 +9290,8 @@ var resources = {
9228
9290
  "completed": "成功",
9229
9291
  "failed": "失敗",
9230
9292
  "unknown": "狀態未確認"
9231
- }
9293
+ },
9294
+ "errorHandled": "失敗已處理"
9232
9295
  },
9233
9296
  sidebar: {
9234
9297
  "createFirstFlow": "建立 Flow",
@@ -9685,148 +9748,7 @@ var resources = {
9685
9748
  "results": "搜尋結果",
9686
9749
  "builtIn": "內建"
9687
9750
  },
9688
- eventSources: {
9689
- "required": "必填",
9690
- "optional": "選填",
9691
- "secretsHint": "從飛書應用程式的「事件與回呼」加密設定中複製這兩項。本事件來源使用加密回呼;編輯時留空可保留原金鑰。",
9692
- "openConsole": "開啟飛書開發者後台",
9693
- "defaultName": "飛書事件來源",
9694
- "title": "事件來源",
9695
- "description": "統一接收應用程式事件,供多個 Flow 使用。",
9696
- "refresh": "重新整理",
9697
- "add": "新增事件來源",
9698
- "loading": "正在載入事件來源…",
9699
- "empty": "尚無事件來源",
9700
- "emptyDescription": "連接飛書應用程式,在事件發生時啟動 Flow。",
9701
- "edit": "編輯",
9702
- "disabled": "已停用",
9703
- "unverified": "等待驗證回呼位址",
9704
- "ready": "回呼已驗證",
9705
- "disable": "停用",
9706
- "enable": "啟用",
9707
- "callback": "回呼位址",
9708
- "originMissing": "請先在部署設定中設定 Integration 公開位址。",
9709
- "connection": "連線帳號",
9710
- "lastReceived": "最近接收事件",
9711
- "never": "尚未收到事件",
9712
- "consumers": "引用此來源的已發佈 Flow",
9713
- "noConsumers": "尚無已發佈 Flow 使用此來源。",
9714
- "deleteConfirm": "刪除此事件來源?",
9715
- "delete": "刪除",
9716
- "cancel": "取消",
9717
- "name": "名稱",
9718
- "team": "Connector 團隊",
9719
- "keepSecret": "留空保留已儲存的值",
9720
- "events": "接收的事件",
9721
- "eventsHint": "在此選擇接收的事件,並在飛書應用程式後台啟用對應事件與權限。此處選擇不會自動設定飛書應用程式,不支援需要同步回應的互動回呼。",
9722
- "manageHint": "允許目前部署管理該應用程式的資源訂閱,包括接管既有訂閱,以及在不再被已發佈 Flow 使用時自動清理。",
9723
- "save": "儲存",
9724
- "invalid": "事件來源設定無效,請檢查帳號、租戶和必填欄位。",
9725
- "notFound": "所選帳號無法使用此事件來源。",
9726
- "conflict": "來源已變更或仍在使用,請重新整理並檢查相關 Flow 和訂閱。",
9727
- "source": "事件來源",
9728
- "selectSourceFirst": "請先選擇事件來源",
9729
- "noSources": "目前 Flow 所屬團隊尚無飛書事件來源,可以在此建立。",
9730
- "loadFailed": "無法載入事件來源。",
9731
- "searchEvents": "搜尋事件名稱或識別碼",
9732
- "customEvent": "新增自訂事件類型",
9733
- "addCustom": "新增",
9734
- "noEventMatches": "沒有符合的事件",
9735
- "chooseEvents": "請至少選擇一個事件",
9736
- "customInvalid": "請輸入有效的非同步事件識別碼。",
9737
- "sourceEventsHint": "只能選擇此事件來源允許接收的事件。",
9738
- "eventUnavailable": "此事件不在所選事件來源的接收範圍內,請移除或修改事件來源。",
9739
- "eventGroups": {
9740
- "messages": "訊息",
9741
- "documents": "文件",
9742
- "base": "多維表格",
9743
- "calendar": "日曆",
9744
- "approval": "審批",
9745
- "contacts": "通訊錄",
9746
- "custom": "自訂事件"
9747
- },
9748
- "eventNames": {
9749
- "im_message_receive_v1": "收到訊息",
9750
- "im_message_recalled_v1": "訊息被撤回",
9751
- "im_message_reaction_created_v1": "新增訊息表情回覆",
9752
- "im_chat_member_bot_added_v1": "機器人加入群組",
9753
- "drive_file_edit_v1": "文件內容變更",
9754
- "drive_file_title_updated_v1": "文件標題變更",
9755
- "drive_file_created_in_folder_v1": "資料夾新增檔案",
9756
- "drive_file_deleted_v1": "檔案被刪除",
9757
- "drive_file_bitable_record_changed_v1": "多維表格記錄變更",
9758
- "drive_file_bitable_field_changed_v1": "多維表格欄位變更",
9759
- "calendar_calendar_event_changed_v4": "行程變更",
9760
- "calendar_calendar_changed_v4": "日曆變更",
9761
- "approval_instance_status_changed_v4": "審批實例狀態變更",
9762
- "approval_task_status_changed_v4": "審批任務狀態變更",
9763
- "approval_instance": "審批實例(舊版事件)",
9764
- "contact_user_created_v3": "員工到職",
9765
- "contact_user_updated_v3": "員工資訊變更",
9766
- "contact_user_deleted_v3": "員工離職"
9767
- },
9768
- "identityUnavailable": "目前 Connector 未提供已驗證的應用程式 ID,請升級 Connector 後再建立事件來源。",
9769
- "selectApp": "選擇飛書應用程式",
9770
- "configureCallback": "設定事件回呼",
9771
- "selectAppHint": "先在飛書建立企業自建應用,再於 Connector 選擇 Feishu App Bot,以 App ID 與 App Secret 連接。此處不使用 Feishu 使用者授權連接;建立應用時不需要事件回呼地址。",
9772
- "configureCallbackHint": "從飛書應用的「事件與回呼 → 安全設定」取得 Verification Token 並設定 Encrypt Key。先儲存此表單,再將產生的地址填回飛書。",
9773
- "feishuApp": "飛書應用(Feishu App Bot)",
9774
- "noApplications": "目前團隊尚無有效的 Feishu App Bot 連接,請先連接應用。",
9775
- "appSourceName": "{{name}} 事件來源",
9776
- "resourceManagement": "資源訂閱管理",
9777
- "back": "上一步",
9778
- "next": "下一步",
9779
- "receiving": "已收到事件",
9780
- "create": "建立事件來源",
9781
- "created": "事件來源已建立",
9782
- "flowCreateHint": "事件來源將歸屬目前 Flow 的團隊,可供團隊內多個 Flow 共用。",
9783
- "bindFailed": "事件來源已建立,但未能關聯至目前節點,請重試。",
9784
- "useSource": "使用此事件來源",
9785
- "verifyBeforePublish": "可以繼續編輯 Flow;發佈前,請先在飛書完成回呼驗證。",
9786
- "setupCopy": "1. 複製回呼地址",
9787
- "setupFeishu": "2. 在飛書設定事件訂閱",
9788
- "setupVerify": "3. 回到此處檢查驗證結果",
9789
- "copy": "複製",
9790
- "copied": "已複製",
9791
- "copyFailed": "複製失敗,請選取地址手動複製。",
9792
- "publicCallbackHint": "此地址必須能讓飛書從公網存取;localhost 與內網地址無法使用。",
9793
- "setupFeishuHint": "開啟對應應用的「事件與回呼 → 事件設定」,選擇將事件傳送至開發者伺服器,貼上地址並儲存。接著新增下列事件與所需權限,依飛書要求發佈應用版本。",
9794
- "openFeishu": "開啟飛書開放平台",
9795
- "manualSubscriptionHint": "此處選取的事件不會自動新增至飛書,請在飛書後台逐項設定。",
9796
- "awaitingVerification": "尚未收到飛書的回呼驗證。完成飛書設定後,點擊下方按鈕檢查。",
9797
- "callbackVerified": "回呼已驗證。是否已收到業務事件,請查看事件來源的接收狀態。",
9798
- "checkingVerification": "正在檢查…",
9799
- "checkVerification": "檢查驗證結果",
9800
- "specifiedChats": "指定會話(選填)",
9801
- "specifiedChatsHint": "每行填寫一個會話 ID(chat_id)。留空表示不限會話;應用仍只能接收有權限存取的會話事件。",
9802
- "subscribeResource": "訂閱指定資源",
9803
- "subscribeResourceHint": "選填。開啟後會在發佈時向飛書申請該資源的訂閱,並僅以該資源的事件觸發此 Flow。",
9804
- "managementRequired": "此事件來源未開啟「資源訂閱管理」,請先在設定中的事件來源頁面開啟。",
9805
- "incompatibleChats": "目前事件不支援會話篩選,請移除舊的會話條件。",
9806
- "incompatibleResource": "目前事件與已設定的資源不符,請關閉資源訂閱後重新選取事件。",
9807
- "removeFilter": "移除篩選條件",
9808
- "documentType": "文件類型",
9809
- "documentTypes": {
9810
- "doc": "舊版文件",
9811
- "docx": "新版文件",
9812
- "sheet": "試算表",
9813
- "bitable": "多維表格",
9814
- "file": "檔案",
9815
- "folder": "資料夾"
9816
- },
9817
- "resourceIds": {
9818
- "document": "文件 Token",
9819
- "calendar": "日曆 ID",
9820
- "approval": "審批定義 Code"
9821
- },
9822
- "resourceHints": {
9823
- "document": "填寫文件或多維表格的 Token,非完整連結。",
9824
- "calendar": "填寫要監聽日程變更的日曆 ID。",
9825
- "approval": "填寫審批定義 Code,非單個審批實例 ID;目前僅支援舊版審批業務事件。"
9826
- },
9827
- "connectApp": "連接 Feishu App Bot",
9828
- "connectAppHint": "將於新分頁開啟 Connector。請使用目前 Flow 所屬團隊;連接完成後返回此處,清單會自動更新。"
9829
- },
9751
+ eventSources: /* @__PURE__ */ JSON.parse("{\"required\":\"必填\",\"optional\":\"選填\",\"secretsHint\":\"從飛書應用程式的「事件與回呼」加密設定中複製這兩項。本事件來源使用加密回呼;編輯時留空可保留原金鑰。\",\"openConsole\":\"開啟開發者控制台\",\"defaultName\":\"應用事件源\",\"title\":\"事件來源\",\"description\":\"統一接收應用程式事件,供多個 Flow 使用。\",\"refresh\":\"重新整理\",\"add\":\"新增事件來源\",\"loading\":\"正在載入事件來源…\",\"empty\":\"尚無事件來源\",\"emptyDescription\":\"連接應用,在事件發生時啟動 Flow。\",\"edit\":\"編輯\",\"disabled\":\"已停用\",\"unverified\":\"等待驗證回呼位址\",\"ready\":\"回呼已驗證\",\"disable\":\"停用\",\"enable\":\"啟用\",\"callback\":\"回呼位址\",\"originMissing\":\"請先在部署設定中設定 Integration 公開位址。\",\"connection\":\"連線帳號\",\"lastReceived\":\"最近接收事件\",\"never\":\"尚未收到事件\",\"consumers\":\"引用此來源的已發佈 Flow\",\"noConsumers\":\"尚無已發佈 Flow 使用此來源。\",\"deleteConfirm\":\"刪除此事件來源?\",\"delete\":\"刪除\",\"cancel\":\"取消\",\"name\":\"名稱\",\"team\":\"Connector 團隊\",\"keepSecret\":\"留空保留已儲存的值\",\"events\":\"接收的事件\",\"eventsHint\":\"在此選擇接收的事件,並在飛書應用程式後台啟用對應事件與權限。此處選擇不會自動設定飛書應用程式,不支援需要同步回應的互動回呼。\",\"manageHint\":\"允許目前部署管理該應用程式的資源訂閱,包括接管既有訂閱,以及在不再被已發佈 Flow 使用時自動清理。\",\"save\":\"儲存\",\"invalid\":\"事件來源設定無效,請檢查帳號、租戶和必填欄位。\",\"notFound\":\"所選帳號無法使用此事件來源。\",\"conflict\":\"來源已變更或仍在使用,請重新整理並檢查相關 Flow 和訂閱。\",\"source\":\"事件來源\",\"selectSourceFirst\":\"請先選擇事件來源\",\"noSources\":\"此 Flow 所在團隊尚無符合條件的事件源,請先建立。\",\"loadFailed\":\"無法載入事件來源。\",\"searchEvents\":\"搜尋事件名稱或識別碼\",\"customEvent\":\"新增自訂事件類型\",\"addCustom\":\"新增\",\"noEventMatches\":\"沒有符合的事件\",\"chooseEvents\":\"請至少選擇一個事件\",\"customInvalid\":\"請輸入有效的非同步事件識別碼。\",\"sourceEventsHint\":\"只能選擇此事件來源允許接收的事件。\",\"eventUnavailable\":\"此事件不在所選事件來源的接收範圍內,請移除或修改事件來源。\",\"eventGroups\":{\"messages\":\"訊息\",\"documents\":\"文件\",\"base\":\"多維表格\",\"calendar\":\"日曆\",\"approval\":\"審批\",\"contacts\":\"通訊錄\",\"custom\":\"自訂事件\"},\"eventNames\":{\"im_message_receive_v1\":\"收到訊息\",\"im_message_recalled_v1\":\"訊息被撤回\",\"im_message_reaction_created_v1\":\"新增訊息表情回覆\",\"im_chat_member_bot_added_v1\":\"機器人加入群組\",\"drive_file_edit_v1\":\"文件內容變更\",\"drive_file_title_updated_v1\":\"文件標題變更\",\"drive_file_created_in_folder_v1\":\"資料夾新增檔案\",\"drive_file_deleted_v1\":\"檔案被刪除\",\"drive_file_bitable_record_changed_v1\":\"多維表格記錄變更\",\"drive_file_bitable_field_changed_v1\":\"多維表格欄位變更\",\"calendar_calendar_event_changed_v4\":\"行程變更\",\"calendar_calendar_changed_v4\":\"日曆變更\",\"approval_instance_status_changed_v4\":\"審批實例狀態變更\",\"approval_task_status_changed_v4\":\"審批任務狀態變更\",\"approval_instance\":\"審批實例(舊版事件)\",\"contact_user_created_v3\":\"員工到職\",\"contact_user_updated_v3\":\"員工資訊變更\",\"contact_user_deleted_v3\":\"員工離職\"},\"identityUnavailable\":\"目前 Connector 未提供已驗證的應用程式 ID,請升級 Connector 後再建立事件來源。\",\"selectApp\":\"選擇應用\",\"configureCallback\":\"設定事件回呼\",\"selectAppHint\":\"先在飛書建立企業自建應用,再於 Connector 選擇 Feishu App Bot,以 App ID 與 App Secret 連接。此處不使用 Feishu 使用者授權連接;建立應用時不需要事件回呼地址。\",\"configureCallbackHint\":\"從飛書應用的「事件與回呼 → 安全設定」取得 Verification Token 並設定 Encrypt Key。先儲存此表單,再將產生的地址填回飛書。\",\"feishuApp\":\"飛書應用(Feishu App Bot)\",\"noApplications\":\"此團隊尚無符合條件的有效連線,請先連接應用。\",\"appSourceName\":\"{{name}} 事件來源\",\"resourceManagement\":\"資源訂閱管理\",\"back\":\"上一步\",\"next\":\"下一步\",\"receiving\":\"已收到事件\",\"create\":\"建立事件來源\",\"created\":\"事件來源已建立\",\"flowCreateHint\":\"事件來源將歸屬目前 Flow 的團隊,可供團隊內多個 Flow 共用。\",\"bindFailed\":\"事件來源已建立,但未能關聯至目前節點,請重試。\",\"useSource\":\"使用此事件來源\",\"verifyBeforePublish\":\"可繼續編輯 Flow;發佈前請驗證應用回呼。\",\"setupCopy\":\"1. 複製回呼地址\",\"setupFeishu\":\"2. 在飛書設定事件訂閱\",\"setupVerify\":\"3. 回到此處檢查驗證結果\",\"copy\":\"複製\",\"copied\":\"已複製\",\"copyFailed\":\"複製失敗,請選取地址手動複製。\",\"publicCallbackHint\":\"服務商必須能透過公網存取此位址,不能使用 localhost 或內網位址。\",\"setupFeishuHint\":\"開啟對應應用的「事件與回呼 → 事件設定」,選擇將事件傳送至開發者伺服器,貼上地址並儲存。接著新增下列事件與所需權限,依飛書要求發佈應用版本。\",\"openFeishu\":\"開啟飛書開放平台\",\"manualSubscriptionHint\":\"此處選擇事件不會啟用上游訂閱,請在應用控制台設定。\",\"awaitingVerification\":\"尚未收到回呼驗證,請完成應用設定後檢查。\",\"callbackVerified\":\"回呼已驗證。是否已收到業務事件,請查看事件來源的接收狀態。\",\"checkingVerification\":\"正在檢查…\",\"checkVerification\":\"檢查驗證結果\",\"specifiedChats\":\"指定會話(選填)\",\"specifiedChatsHint\":\"每行填寫一個會話 ID(chat_id)。留空表示不限會話;應用仍只能接收有權限存取的會話事件。\",\"subscribeResource\":\"訂閱指定資源\",\"subscribeResourceHint\":\"選填。開啟後會在發佈時向飛書申請該資源的訂閱,並僅以該資源的事件觸發此 Flow。\",\"managementRequired\":\"此事件來源未開啟「資源訂閱管理」,請先在設定中的事件來源頁面開啟。\",\"incompatibleChats\":\"目前事件不支援會話篩選,請移除舊的會話條件。\",\"incompatibleResource\":\"目前事件與已設定的資源不符,請關閉資源訂閱後重新選取事件。\",\"removeFilter\":\"移除篩選條件\",\"documentType\":\"文件類型\",\"documentTypes\":{\"doc\":\"舊版文件\",\"docx\":\"新版文件\",\"sheet\":\"試算表\",\"bitable\":\"多維表格\",\"file\":\"檔案\",\"folder\":\"資料夾\"},\"resourceIds\":{\"document\":\"文件 Token\",\"calendar\":\"日曆 ID\",\"approval\":\"審批定義 Code\"},\"resourceHints\":{\"document\":\"填寫文件或多維表格的 Token,非完整連結。\",\"calendar\":\"填寫要監聽日程變更的日曆 ID。\",\"approval\":\"填寫審批定義 Code,非單個審批實例 ID;目前僅支援舊版審批業務事件。\"},\"connectApp\":\"連接應用\",\"connectAppHint\":\"將於新分頁開啟 Connector。請使用目前 Flow 所屬團隊;連接完成後返回此處,清單會自動更新。\",\"provider\":\"服務\",\"slackSecretsHint\":\"Signing Secret 屬於 Slack 應用,由其工作區事件源共用。更換後所有事件源都需要重新驗證。\",\"setupSlack\":\"設定 Slack Events API\",\"setupSlackHint\":\"將下方位址設為應用 Request URL,並訂閱 app_mention 和 message.im。不接收 Slack Connect 共用頻道事件。\",\"slackConnectHint\":\"透過 Bot OAuth 連線安裝 Slack 應用,系統依據已驗證的 Bot 使用者身分匹配安裝。\",\"intercomConnectHint\":\"選擇已安裝 Intercom 應用的工作區連線。\",\"intercomSecretsHint\":\"填寫 Developer Hub 中開發者應用的 ID 和 Client Secret。\",\"setupIntercom\":\"設定 Intercom Webhook\",\"setupIntercomHint\":\"在 Developer Hub 設定此網址和下列事件,並傳送 ping 完成驗證。管理員回覆不會啟動執行。\",\"sentryConnectHint\":\"選擇安裝了自訂整合的 Sentry 組織連線。\",\"sentrySecretsHint\":\"填寫自訂整合 UUID、安裝 UUID 和 Client Secret。系統將檢查是否安裝於目前連線的組織。\",\"setupSentry\":\"設定 Sentry Issue 警示\",\"setupSentryHint\":\"在自訂整合中設定此網址,啟用 Issue Alert 動作,並於發布前傳送測試警示。\",\"zoomConnectHint\":\"選擇要監聽其主持會議錄製的 Zoom 使用者連線。\",\"zoomSecretsHint\":\"填寫 Zoom Marketplace 中的應用 Client ID 和 Webhook Secret Token。\",\"setupZoom\":\"設定 Zoom 錄製事件\",\"setupZoomHint\":\"在 Zoom Marketplace 為 recording.completed 設定此網址並完成驗證。僅接收連線使用者主持的會議錄製。\",\"firefliesConnectHint\":\"選擇具有會議存取權限的 Fireflies 連線。\",\"firefliesSecretsHint\":\"填寫在 Webhooks V2 中為此回呼網址設定的 Signing Secret。\",\"setupFireflies\":\"設定 Fireflies Webhooks V2\",\"setupFirefliesHint\":\"在 Webhooks V2 設定此網址、Signing Secret 和事件。發布前傳送目前連線可存取會議的事件以完成驗證。轉寫與摘要分別觸發。\",\"jiraConnectHint\":\"選擇具有 Webhook 管理權限的 Jira Cloud OAuth 連線。\",\"jiraSetupHint\":\"填寫專案 Key 或 ID。發佈第一個 Flow 時自動建立 Webhook,Connector 在到期前續期,最後一個消費者停止後刪除。OAuth 應用須允許公開 HTTPS 回呼網域。\",\"setupJira\":\"自動訂閱 Jira 專案\",\"jiraEventsHint\":\"同一專案共用一個 Webhook,各 Flow 分別篩選 Issue 和留言事件。\",\"jiraProject\":\"Jira 專案 Key 或 ID\",\"subscription\":{\"idle\":\"發佈第一個 Flow 時自動訂閱\",\"pending\":\"正在建立或續期 Webhook\",\"ready\":\"Webhook 已啟用\",\"error\":\"Webhook 無法使用,請檢查連線並重試發佈\"},\"accountIdentity\":\"連線帳號識別碼\",\"appId\":\"應用程式 ID\",\"slackAppId\":\"Slack 應用程式 ID\",\"integrationId\":\"整合 UUID\",\"developerAppId\":\"開發者應用程式 ID\",\"organizationId\":\"組織 ID / 簡稱\",\"installationId\":\"安裝 UUID\",\"workspaceId\":\"工作區 ID\",\"verificationToken\":\"驗證權杖\",\"signingSecret\":\"簽署密鑰\",\"webhookSecret\":\"Webhook 密鑰權杖\",\"encryptKey\":\"加密密鑰\",\"clientSecret\":\"用戶端密鑰\",\"identityUnknown\":\"暫時無法取得\"}"),
9830
9752
  connectionUsage: {
9831
9753
  "title": "連線概覽",
9832
9754
  "needsAttention": "連線需要處理",
@@ -10007,6 +9929,15 @@ var resources = {
10007
9929
  "deleteImpact": "{{count}} 個工作流程中的呼叫將失效",
10008
9930
  "deleteAnyway": "仍然刪除",
10009
9931
  "deleteListeners": "{{count}} 個錯誤監聽將停止接收"
9932
+ },
9933
+ tallyTrigger: {
9934
+ "form": "表單",
9935
+ "selectForm": "選擇表單",
9936
+ "loading": "正在載入表單…",
9937
+ "noForms": "沒有可存取的表單。",
9938
+ "unavailable": "此表單已無法存取,請選擇其他表單。",
9939
+ "failed": "無法載入表單。",
9940
+ "retry": "重試"
10010
9941
  }
10011
9942
  },
10012
9943
  "ja": {
@@ -10235,7 +10166,7 @@ var resources = {
10235
10166
  "exportSvgFailed": "SVG 画像をエクスポートできませんでした。もう一度お試しください。",
10236
10167
  "importInvalid": "無効または未対応のワークフローファイルです。"
10237
10168
  },
10238
- inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"ノード一覧\",\"backToOutline\":\"ノード一覧に戻る\",\"emptyOutline\":\"ノードはまだありません\",\"triggers\":\"トリガー\",\"nodes\":\"ノード\",\"multipleSelected\":\"{{count}} 個のノードを選択中\",\"account\":{\"contactAdmin\":\"この操作を実行する権限がありません。管理者にお問い合わせください。\",\"accessTitle\":\"アクセス権限\",\"manageFlowAccess\":\"Code で使用できる接続\",\"configureAccess\":\"アカウントを選択\",\"manageAccount\":\"アカウントを管理\",\"required\":\"アカウント接続が必要\",\"addAccount\":\"アカウントを追加\",\"manage\":\"管理\",\"authorizationPending\":\"Connection ページで認証を完了してください。ここに戻ると、このアカウントが更新されます。\",\"chooseAccount\":\"アカウントを選択\",\"deferred\":\"今は設定しない\",\"clearDeferred\":\"選択をクリア\",\"noAccounts\":\"利用可能なアカウントがありません\",\"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\":\"入力\",\"requiredInputs\":\"必須\",\"optionalInputs\":\"任意\",\"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(クエリパラメーターを除く)です。\"}},\"startParametersTitle\":\"開始パラメーター\"}}"),
10169
+ inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"ノード一覧\",\"backToOutline\":\"ノード一覧に戻る\",\"emptyOutline\":\"ノードはまだありません\",\"triggers\":\"トリガー\",\"nodes\":\"ノード\",\"multipleSelected\":\"{{count}} 個のノードを選択中\",\"account\":{\"contactAdmin\":\"この操作を実行する権限がありません。管理者にお問い合わせください。\",\"accessTitle\":\"アクセス権限\",\"manageFlowAccess\":\"Code で使用できる接続\",\"configureAccess\":\"アカウントを選択\",\"manageAccount\":\"アカウントを管理\",\"required\":\"アカウント接続が必要\",\"addAccount\":\"アカウントを追加\",\"manage\":\"管理\",\"authorizationPending\":\"Connection ページで認証を完了してください。ここに戻ると、このアカウントが更新されます。\",\"chooseAccount\":\"アカウントを選択\",\"deferred\":\"今は設定しない\",\"clearDeferred\":\"選択をクリア\",\"noAccounts\":\"利用可能なアカウントがありません\",\"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\":\"タイトル\",\"retry\":\"失敗時の再試行\",\"retryCount\":\"最大 {{count}} 回再試行\",\"retryInterval\":\"再試行の間隔\",\"retryError\":\"間隔は 1~60 の整数秒で指定してください。\",\"retryHint\":\"再試行回数は、初回の実行に失敗した後に追加する試行の回数です。再試行はノード全体を再実行するため、外部操作が重複する場合があります。タイムアウトには全試行と待機時間を含みます。\",\"retryNone\":\"再試行しない\",\"retrySeconds\":\"秒\",\"retryHelp\":\"再試行について\",\"retryOnce\":\"最大 1 回再試行\",\"onError\":\"失敗時の処理\",\"onErrorStop\":\"ワークフローを停止\",\"onErrorOutput\":\"error ポートに出力\",\"onErrorHelp\":\"失敗時の処理について\",\"onErrorHint\":\"再試行後も失敗した場合、システム error にエラーを出力して既存の接続で続行します。成功時は null です。キャンセル、タイムアウト、リソース制限、結果不明の場合は停止します。\",\"systemOutputs\":\"システム出力\",\"systemError\":\"エラー情報(システム)\",\"errorFields\":{\"error\":\"ノードが失敗した場合のエラー情報。成功時は null です。\",\"code\":\"エラーの種類を識別するコード。\",\"message\":\"機密情報をマスクしたエラーの説明。\",\"nodeId\":\"エラーが発生したノードの ID。\",\"nodeName\":\"エラー発生時のノード名。\",\"runId\":\"今回のワークフロー実行の ID。\",\"executionId\":\"今回のノード実行の ID。再試行でも同じ ID を使用します。\"}},\"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\":\"入力\",\"requiredInputs\":\"必須\",\"optionalInputs\":\"任意\",\"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(クエリパラメーターを除く)です。\"}},\"startParametersTitle\":\"開始パラメーター\"}}"),
10239
10170
  language: { "label": "言語" },
10240
10171
  notice: {
10241
10172
  "connectorUnconfigured": "このデプロイには Connector が設定されていません。",
@@ -10555,7 +10486,8 @@ var resources = {
10555
10486
  "completed": "成功",
10556
10487
  "failed": "失敗",
10557
10488
  "unknown": "状態未確認"
10558
- }
10489
+ },
10490
+ "errorHandled": "失敗を処理済み"
10559
10491
  },
10560
10492
  sidebar: {
10561
10493
  "createFirstFlow": "Flow を作成",
@@ -11012,148 +10944,7 @@ var resources = {
11012
10944
  "results": "検索結果",
11013
10945
  "builtIn": "組み込み"
11014
10946
  },
11015
- eventSources: {
11016
- "required": "必須",
11017
- "optional": "任意",
11018
- "secretsHint": "アプリのイベントとコールバックの暗号化設定から両方の値をコピーします。暗号化されたコールバックが必要です。編集時は空欄にすると現在のキーを保持します。",
11019
- "openConsole": "Feishu 開発者コンソールを開く",
11020
- "defaultName": "Feishu イベントソース",
11021
- "title": "イベントソース",
11022
- "description": "アプリのイベントを受信し、複数の Flow で共有します。",
11023
- "refresh": "更新",
11024
- "add": "イベントソースを追加",
11025
- "loading": "イベントソースを読み込み中…",
11026
- "empty": "イベントソースがありません",
11027
- "emptyDescription": "Feishu アプリを接続し、イベントで Flow を開始します。",
11028
- "edit": "編集",
11029
- "disabled": "無効",
11030
- "unverified": "アドレスの検証待ち",
11031
- "ready": "コールバック検証済み",
11032
- "disable": "無効にする",
11033
- "enable": "有効にする",
11034
- "callback": "コールバック URL",
11035
- "originMissing": "先にデプロイ設定で Integration の公開 URL を設定してください。",
11036
- "connection": "接続",
11037
- "lastReceived": "最終イベント受信",
11038
- "never": "未受信",
11039
- "consumers": "公開済み Flow",
11040
- "noConsumers": "このソースを使用する公開済み Flow はありません。",
11041
- "deleteConfirm": "このイベントソースを削除しますか?",
11042
- "delete": "削除",
11043
- "cancel": "キャンセル",
11044
- "name": "名前",
11045
- "team": "Connector チーム",
11046
- "keepSecret": "空欄で保存済みの値を維持",
11047
- "events": "受信するイベント",
11048
- "eventsHint": "受信するイベントを選択し、Feishu 側でも対応するイベントと権限を有効にしてください。この選択ではアプリは設定されません。同期応答が必要なコールバックには対応していません。",
11049
- "manageHint": "既存の購読の引き継ぎと、公開済み Flow が使用しなくなった購読の自動削除を含め、このデプロイによるリソース購読の管理を許可します。",
11050
- "save": "保存",
11051
- "invalid": "イベントソースの設定が無効です。接続、テナント、必須項目を確認してください。",
11052
- "notFound": "選択した接続ではこのソースを使用できません。",
11053
- "conflict": "ソースが変更されたか使用中です。更新して Flow と購読を確認してください。",
11054
- "source": "イベントソース",
11055
- "selectSourceFirst": "先にイベントソースを選択してください",
11056
- "noSources": "この Flow のチームには Feishu イベントソースがありません。ここで作成できます。",
11057
- "loadFailed": "イベントソースを読み込めませんでした。",
11058
- "searchEvents": "イベント名または ID を検索",
11059
- "customEvent": "カスタムイベント追加",
11060
- "addCustom": "追加",
11061
- "noEventMatches": "一致するイベントがありません",
11062
- "chooseEvents": "イベントを1つ以上選択してください",
11063
- "customInvalid": "有効な非同期イベント ID を入力してください。",
11064
- "sourceEventsHint": "選択したソースで許可されたイベントのみ選択できます。",
11065
- "eventUnavailable": "このソースでは許可されていません。削除するかソースを更新してください。",
11066
- "eventGroups": {
11067
- "messages": "メッセージ",
11068
- "documents": "ドキュメント",
11069
- "base": "Base",
11070
- "calendar": "カレンダー",
11071
- "approval": "承認",
11072
- "contacts": "連絡先",
11073
- "custom": "カスタムイベント"
11074
- },
11075
- "eventNames": {
11076
- "im_message_receive_v1": "メッセージ受信",
11077
- "im_message_recalled_v1": "メッセージ取り消し",
11078
- "im_message_reaction_created_v1": "リアクション追加",
11079
- "im_chat_member_bot_added_v1": "ボットがグループに参加",
11080
- "drive_file_edit_v1": "ドキュメント編集",
11081
- "drive_file_title_updated_v1": "ドキュメント名変更",
11082
- "drive_file_created_in_folder_v1": "フォルダー内にファイル追加",
11083
- "drive_file_deleted_v1": "ファイル削除",
11084
- "drive_file_bitable_record_changed_v1": "Base レコード変更",
11085
- "drive_file_bitable_field_changed_v1": "Base フィールド変更",
11086
- "calendar_calendar_event_changed_v4": "予定変更",
11087
- "calendar_calendar_changed_v4": "カレンダー変更",
11088
- "approval_instance_status_changed_v4": "承認インスタンスの状態変更",
11089
- "approval_task_status_changed_v4": "承認タスクの状態変更",
11090
- "approval_instance": "承認インスタンス(旧形式)",
11091
- "contact_user_created_v3": "従業員追加",
11092
- "contact_user_updated_v3": "従業員情報更新",
11093
- "contact_user_deleted_v3": "従業員削除"
11094
- },
11095
- "identityUnavailable": "Connector が検証済みアプリ ID を提供していません。更新してから作成してください。",
11096
- "selectApp": "Feishu アプリを選択",
11097
- "configureCallback": "コールバックを設定",
11098
- "selectAppHint": "Feishu で企業自作アプリを作成し、Connector の Feishu App Bot を選んで App ID と App Secret で接続します。Feishu のユーザー認証接続は対象外です。アプリ作成時にコールバック URL は不要です。",
11099
- "configureCallbackHint": "Feishu の「イベントとコールバック → セキュリティ設定」で Verification Token を取得し、Encrypt Key を設定します。このフォームを保存してから、生成された URL を Feishu に入力してください。",
11100
- "feishuApp": "Feishu アプリ(Feishu App Bot)",
11101
- "noApplications": "このチームには有効な Feishu App Bot 接続がありません。先にアプリを接続してください。",
11102
- "appSourceName": "{{name}} イベント",
11103
- "resourceManagement": "リソース購読管理",
11104
- "back": "戻る",
11105
- "next": "次へ",
11106
- "receiving": "イベント受信済み",
11107
- "create": "イベントソースを作成",
11108
- "created": "イベントソースを作成しました",
11109
- "flowCreateHint": "このイベントソースは現在の Flow のチームに属し、複数の Flow で共有できます。",
11110
- "bindFailed": "イベントソースを作成しましたが、ノードに関連付けられませんでした。再試行してください。",
11111
- "useSource": "このイベントソースを使用",
11112
- "verifyBeforePublish": "Flow の編集を続けられます。公開前に Feishu でコールバックを検証してください。",
11113
- "setupCopy": "1. コールバック URL をコピー",
11114
- "setupFeishu": "2. Feishu でイベント購読を設定",
11115
- "setupVerify": "3. ここに戻って検証結果を確認",
11116
- "copy": "コピー",
11117
- "copied": "コピー済み",
11118
- "copyFailed": "コピーに失敗しました。URL を選択して手動でコピーしてください。",
11119
- "publicCallbackHint": "Feishu からインターネット経由でアクセスできる URL が必要です。localhost やプライベートアドレスは使えません。",
11120
- "setupFeishuHint": "アプリの「イベントとコールバック → イベント設定」で開発者サーバーへの送信を選び、URL を貼り付けて保存します。以下のイベントと必要な権限を追加し、Feishu の要件に従ってアプリを公開してください。",
11121
- "openFeishu": "Feishu 開発者コンソールを開く",
11122
- "manualSubscriptionHint": "ここで選んだイベントは Feishu に自動追加されません。Feishu 側でも設定してください。",
11123
- "awaitingVerification": "コールバック検証はまだ届いていません。Feishu の設定後に確認してください。",
11124
- "callbackVerified": "コールバック検証済みです。業務イベントの到着はソースの受信状態で確認してください。",
11125
- "checkingVerification": "確認中…",
11126
- "checkVerification": "検証結果を確認",
11127
- "specifiedChats": "会話を指定(任意)",
11128
- "specifiedChatsHint": "1 行に 1 つの chat_id を入力します。空欄の場合、アプリに権限があるすべての会話が対象です。",
11129
- "subscribeResource": "特定のリソースを購読",
11130
- "subscribeResourceHint": "任意です。公開時に Feishu でリソースを購読し、この Flow をそのリソースのイベントに限定します。",
11131
- "managementRequired": "先に設定のイベントソースでリソース購読管理を有効にしてください。",
11132
- "incompatibleChats": "選択したイベントは会話フィルターに対応していません。以前の条件を削除してください。",
11133
- "incompatibleResource": "リソースとイベントが一致しません。購読を無効にして、対応するイベントを選択してください。",
11134
- "removeFilter": "フィルターを削除",
11135
- "documentType": "文書の種類",
11136
- "documentTypes": {
11137
- "doc": "旧文書",
11138
- "docx": "文書",
11139
- "sheet": "スプレッドシート",
11140
- "bitable": "Base",
11141
- "file": "ファイル",
11142
- "folder": "フォルダー"
11143
- },
11144
- "resourceIds": {
11145
- "document": "文書トークン",
11146
- "calendar": "カレンダー ID",
11147
- "approval": "承認定義コード"
11148
- },
11149
- "resourceHints": {
11150
- "document": "URL ではなく、文書または Base のトークンを入力します。",
11151
- "calendar": "予定の変更を監視するカレンダー ID を入力します。",
11152
- "approval": "承認インスタンス ID ではなく承認定義コードを入力します。旧版の承認イベントのみ対応しています。"
11153
- },
11154
- "connectApp": "Feishu App Bot を接続",
11155
- "connectAppHint": "Connector を新しいタブで開きます。この Flow のチームを使用してください。接続後に戻ると一覧が自動更新されます。"
11156
- },
10947
+ eventSources: /* @__PURE__ */ JSON.parse("{\"required\":\"必須\",\"optional\":\"任意\",\"secretsHint\":\"アプリのイベントとコールバックの暗号化設定から両方の値をコピーします。暗号化されたコールバックが必要です。編集時は空欄にすると現在のキーを保持します。\",\"openConsole\":\"開発者コンソールを開く\",\"defaultName\":\"アプリイベントソース\",\"title\":\"イベントソース\",\"description\":\"アプリのイベントを受信し、複数の Flow で共有します。\",\"refresh\":\"更新\",\"add\":\"イベントソースを追加\",\"loading\":\"イベントソースを読み込み中…\",\"empty\":\"イベントソースがありません\",\"emptyDescription\":\"アプリを接続してイベント発生時に Flow を開始します。\",\"edit\":\"編集\",\"disabled\":\"無効\",\"unverified\":\"アドレスの検証待ち\",\"ready\":\"コールバック検証済み\",\"disable\":\"無効にする\",\"enable\":\"有効にする\",\"callback\":\"コールバック URL\",\"originMissing\":\"先にデプロイ設定で Integration の公開 URL を設定してください。\",\"connection\":\"接続\",\"lastReceived\":\"最終イベント受信\",\"never\":\"未受信\",\"consumers\":\"公開済み Flow\",\"noConsumers\":\"このソースを使用する公開済み Flow はありません。\",\"deleteConfirm\":\"このイベントソースを削除しますか?\",\"delete\":\"削除\",\"cancel\":\"キャンセル\",\"name\":\"名前\",\"team\":\"Connector チーム\",\"keepSecret\":\"空欄で保存済みの値を維持\",\"events\":\"受信するイベント\",\"eventsHint\":\"受信するイベントを選択し、Feishu 側でも対応するイベントと権限を有効にしてください。この選択ではアプリは設定されません。同期応答が必要なコールバックには対応していません。\",\"manageHint\":\"既存の購読の引き継ぎと、公開済み Flow が使用しなくなった購読の自動削除を含め、このデプロイによるリソース購読の管理を許可します。\",\"save\":\"保存\",\"invalid\":\"イベントソースの設定が無効です。接続、テナント、必須項目を確認してください。\",\"notFound\":\"選択した接続ではこのソースを使用できません。\",\"conflict\":\"ソースが変更されたか使用中です。更新して Flow と購読を確認してください。\",\"source\":\"イベントソース\",\"selectSourceFirst\":\"先にイベントソースを選択してください\",\"noSources\":\"一致するイベントソースがありません。作成してください。\",\"loadFailed\":\"イベントソースを読み込めませんでした。\",\"searchEvents\":\"イベント名または ID を検索\",\"customEvent\":\"カスタムイベント追加\",\"addCustom\":\"追加\",\"noEventMatches\":\"一致するイベントがありません\",\"chooseEvents\":\"イベントを1つ以上選択してください\",\"customInvalid\":\"有効な非同期イベント ID を入力してください。\",\"sourceEventsHint\":\"選択したソースで許可されたイベントのみ選択できます。\",\"eventUnavailable\":\"このソースでは許可されていません。削除するかソースを更新してください。\",\"eventGroups\":{\"messages\":\"メッセージ\",\"documents\":\"ドキュメント\",\"base\":\"Base\",\"calendar\":\"カレンダー\",\"approval\":\"承認\",\"contacts\":\"連絡先\",\"custom\":\"カスタムイベント\"},\"eventNames\":{\"im_message_receive_v1\":\"メッセージ受信\",\"im_message_recalled_v1\":\"メッセージ取り消し\",\"im_message_reaction_created_v1\":\"リアクション追加\",\"im_chat_member_bot_added_v1\":\"ボットがグループに参加\",\"drive_file_edit_v1\":\"ドキュメント編集\",\"drive_file_title_updated_v1\":\"ドキュメント名変更\",\"drive_file_created_in_folder_v1\":\"フォルダー内にファイル追加\",\"drive_file_deleted_v1\":\"ファイル削除\",\"drive_file_bitable_record_changed_v1\":\"Base レコード変更\",\"drive_file_bitable_field_changed_v1\":\"Base フィールド変更\",\"calendar_calendar_event_changed_v4\":\"予定変更\",\"calendar_calendar_changed_v4\":\"カレンダー変更\",\"approval_instance_status_changed_v4\":\"承認インスタンスの状態変更\",\"approval_task_status_changed_v4\":\"承認タスクの状態変更\",\"approval_instance\":\"承認インスタンス(旧形式)\",\"contact_user_created_v3\":\"従業員追加\",\"contact_user_updated_v3\":\"従業員情報更新\",\"contact_user_deleted_v3\":\"従業員削除\"},\"identityUnavailable\":\"Connector が検証済みアプリ ID を提供していません。更新してから作成してください。\",\"selectApp\":\"アプリを選択\",\"configureCallback\":\"コールバックを設定\",\"selectAppHint\":\"Feishu で企業自作アプリを作成し、Connector の Feishu App Bot を選んで App ID と App Secret で接続します。Feishu のユーザー認証接続は対象外です。アプリ作成時にコールバック URL は不要です。\",\"configureCallbackHint\":\"Feishu の「イベントとコールバック → セキュリティ設定」で Verification Token を取得し、Encrypt Key を設定します。このフォームを保存してから、生成された URL を Feishu に入力してください。\",\"feishuApp\":\"Feishu アプリ(Feishu App Bot)\",\"noApplications\":\"有効な接続がありません。アプリを接続してください。\",\"appSourceName\":\"{{name}} イベント\",\"resourceManagement\":\"リソース購読管理\",\"back\":\"戻る\",\"next\":\"次へ\",\"receiving\":\"イベント受信済み\",\"create\":\"イベントソースを作成\",\"created\":\"イベントソースを作成しました\",\"flowCreateHint\":\"このイベントソースは現在の Flow のチームに属し、複数の Flow で共有できます。\",\"bindFailed\":\"イベントソースを作成しましたが、ノードに関連付けられませんでした。再試行してください。\",\"useSource\":\"このイベントソースを使用\",\"verifyBeforePublish\":\"編集は続行できます。公開前にコールバックを検証してください。\",\"setupCopy\":\"1. コールバック URL をコピー\",\"setupFeishu\":\"2. Feishu でイベント購読を設定\",\"setupVerify\":\"3. ここに戻って検証結果を確認\",\"copy\":\"コピー\",\"copied\":\"コピー済み\",\"copyFailed\":\"コピーに失敗しました。URL を選択して手動でコピーしてください。\",\"publicCallbackHint\":\"この URL は公開インターネットから到達可能である必要があります。\",\"setupFeishuHint\":\"アプリの「イベントとコールバック → イベント設定」で開発者サーバーへの送信を選び、URL を貼り付けて保存します。以下のイベントと必要な権限を追加し、Feishu の要件に従ってアプリを公開してください。\",\"openFeishu\":\"Feishu 開発者コンソールを開く\",\"manualSubscriptionHint\":\"イベントはアプリのコンソールでも設定してください。\",\"awaitingVerification\":\"コールバック未検証です。アプリ設定後に確認してください。\",\"callbackVerified\":\"コールバック検証済みです。業務イベントの到着はソースの受信状態で確認してください。\",\"checkingVerification\":\"確認中…\",\"checkVerification\":\"検証結果を確認\",\"specifiedChats\":\"会話を指定(任意)\",\"specifiedChatsHint\":\"1 行に 1 つの chat_id を入力します。空欄の場合、アプリに権限があるすべての会話が対象です。\",\"subscribeResource\":\"特定のリソースを購読\",\"subscribeResourceHint\":\"任意です。公開時に Feishu でリソースを購読し、この Flow をそのリソースのイベントに限定します。\",\"managementRequired\":\"先に設定のイベントソースでリソース購読管理を有効にしてください。\",\"incompatibleChats\":\"選択したイベントは会話フィルターに対応していません。以前の条件を削除してください。\",\"incompatibleResource\":\"リソースとイベントが一致しません。購読を無効にして、対応するイベントを選択してください。\",\"removeFilter\":\"フィルターを削除\",\"documentType\":\"文書の種類\",\"documentTypes\":{\"doc\":\"旧文書\",\"docx\":\"文書\",\"sheet\":\"スプレッドシート\",\"bitable\":\"Base\",\"file\":\"ファイル\",\"folder\":\"フォルダー\"},\"resourceIds\":{\"document\":\"文書トークン\",\"calendar\":\"カレンダー ID\",\"approval\":\"承認定義コード\"},\"resourceHints\":{\"document\":\"URL ではなく、文書または Base のトークンを入力します。\",\"calendar\":\"予定の変更を監視するカレンダー ID を入力します。\",\"approval\":\"承認インスタンス ID ではなく承認定義コードを入力します。旧版の承認イベントのみ対応しています。\"},\"connectApp\":\"アプリを接続\",\"connectAppHint\":\"Connector を新しいタブで開きます。この Flow のチームを使用してください。接続後に戻ると一覧が自動更新されます。\",\"provider\":\"プロバイダー\",\"slackSecretsHint\":\"Signing Secret は Slack アプリのワークスペース間で共有されます。変更すると全ソースの再検証が必要です。\",\"setupSlack\":\"Slack Events API を設定\",\"setupSlackHint\":\"以下をアプリの Request URL に設定し、app_mention と message.im を購読してください。Slack Connect の共有チャンネルは対象外です。\",\"slackConnectHint\":\"Bot OAuth で Slack アプリをインストールしてください。検証済み Bot ユーザー ID でインストールを識別します。\",\"intercomConnectHint\":\"Intercom アプリをインストールしたワークスペースの接続を選択します。\",\"intercomSecretsHint\":\"Developer Hub の開発者アプリ ID と Client Secret を入力します。\",\"setupIntercom\":\"Intercom Webhook を設定\",\"setupIntercomHint\":\"Developer Hub で URL と以下のトピックを設定し、ping を送信して確認します。管理者の返信では実行しません。\",\"sentryConnectHint\":\"カスタム統合をインストールした Sentry 組織の接続を選択します。\",\"sentrySecretsHint\":\"統合 UUID、インストール UUID、Client Secret を入力します。接続先の組織へのインストールを確認します。\",\"setupSentry\":\"Sentry Issue アラートを設定\",\"setupSentryHint\":\"カスタム統合に URL を設定し、Issue Alert アクションを有効にして、公開前にテスト通知を送信します。\",\"zoomConnectHint\":\"録画を受信するホストの Zoom 接続を選択します。\",\"zoomSecretsHint\":\"Zoom Marketplace の Client ID と Webhook Secret Token を入力します。\",\"setupZoom\":\"Zoom 録画イベントを設定\",\"setupZoomHint\":\"Zoom Marketplace で recording.completed と URL を設定し検証します。接続ユーザーがホストした録画のみ受信します。\",\"firefliesConnectHint\":\"会議にアクセスできる Fireflies 接続を選択します。\",\"firefliesSecretsHint\":\"Webhooks V2 でこの URL に設定した Signing Secret を入力します。\",\"setupFireflies\":\"Fireflies Webhooks V2 を設定\",\"setupFirefliesHint\":\"V2 に URL、Signing Secret、イベントを設定し、アクセス可能な会議のイベントで確認します。文字起こしと要約は別々に実行します。\",\"jiraConnectHint\":\"Webhook 管理権限を持つ Jira Cloud OAuth 接続を選択します。\",\"jiraSetupHint\":\"プロジェクトキーまたは ID を入力します。最初の Flow の公開時に Webhook を作成し、有効期限前に更新、最後の利用者の停止後に削除します。公開 HTTPS コールバックのドメインを OAuth アプリで許可してください。\",\"setupJira\":\"Jira プロジェクトの自動購読\",\"jiraEventsHint\":\"プロジェクトの Webhook を共有し、各 Flow で課題やコメントのイベントを絞り込みます。\",\"jiraProject\":\"Jira プロジェクトキーまたは ID\",\"subscription\":{\"idle\":\"最初の Flow の公開時に自動購読\",\"pending\":\"Webhook の作成または更新中\",\"ready\":\"Webhook は有効です\",\"error\":\"Webhook を利用できません。接続を確認して公開を再試行してください\"},\"accountIdentity\":\"接続アカウント識別子\",\"appId\":\"アプリ ID\",\"slackAppId\":\"Slack アプリ ID\",\"integrationId\":\"インテグレーション UUID\",\"developerAppId\":\"開発者アプリ ID\",\"organizationId\":\"組織 ID / スラッグ\",\"installationId\":\"インストール UUID\",\"workspaceId\":\"ワークスペース ID\",\"verificationToken\":\"検証トークン\",\"signingSecret\":\"署名シークレット\",\"webhookSecret\":\"Webhook シークレットトークン\",\"encryptKey\":\"暗号化キー\",\"clientSecret\":\"クライアントシークレット\",\"identityUnknown\":\"一時的に取得できません\"}"),
11157
10948
  connectionUsage: {
11158
10949
  "title": "接続の概要",
11159
10950
  "needsAttention": "接続に対応が必要です",
@@ -11334,6 +11125,15 @@ var resources = {
11334
11125
  "deleteImpact": "{{count}} 件のワークフローの呼び出しが無効になります",
11335
11126
  "deleteAnyway": "削除する",
11336
11127
  "deleteListeners": "エラーの受信が停止するリスナー:{{count}} 件"
11128
+ },
11129
+ tallyTrigger: {
11130
+ "form": "フォーム",
11131
+ "selectForm": "フォームを選択",
11132
+ "loading": "フォームを読み込み中…",
11133
+ "noForms": "アクセス可能なフォームはありません。",
11134
+ "unavailable": "このフォームにはアクセスできません。別のフォームを選択してください。",
11135
+ "failed": "フォームを読み込めませんでした。",
11136
+ "retry": "再試行"
11337
11137
  }
11338
11138
  },
11339
11139
  "ko": {
@@ -11562,7 +11362,7 @@ var resources = {
11562
11362
  "exportSvgFailed": "SVG 이미지를 내보내지 못했습니다. 다시 시도해 주세요.",
11563
11363
  "importInvalid": "잘못되었거나 지원하지 않는 워크플로 파일입니다."
11564
11364
  },
11565
- inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"노드 목록\",\"backToOutline\":\"노드 목록으로 돌아가기\",\"emptyOutline\":\"아직 노드가 없습니다\",\"triggers\":\"트리거\",\"nodes\":\"노드\",\"multipleSelected\":\"노드 {{count}}개 선택됨\",\"account\":{\"contactAdmin\":\"이 작업을 실행할 권한이 없습니다. 관리자에게 문의하세요.\",\"accessTitle\":\"접근 권한\",\"manageFlowAccess\":\"Code에서 사용할 수 있는 연결\",\"configureAccess\":\"계정 선택\",\"manageAccount\":\"계정 관리\",\"required\":\"계정 연결 필요\",\"addAccount\":\"계정 추가\",\"manage\":\"관리\",\"authorizationPending\":\"Connection 페이지에서 인증을 마친 뒤 여기로 돌아와 이 계정을 새로 고치세요.\",\"chooseAccount\":\"계정 선택\",\"deferred\":\"지금은 설정하지 않음\",\"clearDeferred\":\"선택 지우기\",\"noAccounts\":\"사용 가능한 계정이 없습니다\",\"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\":\"제한 시간(ms)\",\"maxExecutions\":\"노드 실행 한도\",\"maxExecutionsError\":\"노드 실행 한도는 양의 정수여야 합니다.\",\"timeoutError\":\"제한 시간은 밀리초 단위의 양의 정수여야 합니다.\",\"title\":\"노드 설정\",\"description\":\"목적\",\"describe\":\"이 단계의 목적을 설명하세요.\",\"icon\":\"아이콘\",\"name\":\"제목\"},\"selectNode\":\"확인하고 편집할 초안 노드를 하나 선택하세요.\",\"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}}. 여기서는 하나만 사용할 수 있습니다.\",\"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\":\"입력\",\"requiredInputs\":\"필수\",\"optionalInputs\":\"선택\",\"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이며 쿼리 매개변수는 포함하지 않습니다.\"}},\"startParametersTitle\":\"시작 매개변수\"}}"),
11365
+ inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"노드 목록\",\"backToOutline\":\"노드 목록으로 돌아가기\",\"emptyOutline\":\"아직 노드가 없습니다\",\"triggers\":\"트리거\",\"nodes\":\"노드\",\"multipleSelected\":\"노드 {{count}}개 선택됨\",\"account\":{\"contactAdmin\":\"이 작업을 실행할 권한이 없습니다. 관리자에게 문의하세요.\",\"accessTitle\":\"접근 권한\",\"manageFlowAccess\":\"Code에서 사용할 수 있는 연결\",\"configureAccess\":\"계정 선택\",\"manageAccount\":\"계정 관리\",\"required\":\"계정 연결 필요\",\"addAccount\":\"계정 추가\",\"manage\":\"관리\",\"authorizationPending\":\"Connection 페이지에서 인증을 마친 뒤 여기로 돌아와 이 계정을 새로 고치세요.\",\"chooseAccount\":\"계정 선택\",\"deferred\":\"지금은 설정하지 않음\",\"clearDeferred\":\"선택 지우기\",\"noAccounts\":\"사용 가능한 계정이 없습니다\",\"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\":\"제한 시간(ms)\",\"maxExecutions\":\"노드 실행 한도\",\"maxExecutionsError\":\"노드 실행 한도는 양의 정수여야 합니다.\",\"timeoutError\":\"제한 시간은 밀리초 단위의 양의 정수여야 합니다.\",\"title\":\"노드 설정\",\"description\":\"목적\",\"describe\":\"이 단계의 목적을 설명하세요.\",\"icon\":\"아이콘\",\"name\":\"제목\",\"retry\":\"실패 시 재시도\",\"retryCount\":\"최대 {{count}}회 재시도\",\"retryInterval\":\"재시도 간격\",\"retryError\":\"간격은 1~60초의 정수로 입력하세요.\",\"retryHint\":\"재시도 횟수는 최초 실행 실패 후 추가로 시도하는 횟수입니다. 노드 전체를 다시 실행하므로 외부 작업이 중복될 수 있습니다. 제한 시간에는 모든 시도와 대기 시간이 포함됩니다.\",\"retryNone\":\"재시도 안 함\",\"retrySeconds\":\"초\",\"retryHelp\":\"재시도 안내\",\"retryOnce\":\"최대 1회 재시도\",\"onError\":\"실패 처리\",\"onErrorStop\":\"워크플로 중지\",\"onErrorOutput\":\"error 포트로 출력\",\"onErrorHelp\":\"실패 처리 안내\",\"onErrorHint\":\"재시도 후에도 실패하면 시스템 error에 오류를 기록하고 기존 연결을 따라 계속합니다. 성공 시 null입니다. 취소, 시간 초과, 리소스 제한 및 결과 불명 상태는 실행을 중지합니다.\",\"systemOutputs\":\"시스템 출력\",\"systemError\":\"오류 정보(시스템)\",\"errorFields\":{\"error\":\"노드 실패 시 오류 정보입니다. 성공 시 null입니다.\",\"code\":\"오류 유형을 식별하는 코드입니다.\",\"message\":\"민감한 내용이 가려진 오류 설명입니다.\",\"nodeId\":\"오류가 발생한 노드의 ID입니다.\",\"nodeName\":\"오류 발생 시점의 노드 이름입니다.\",\"runId\":\"이번 워크플로 실행의 ID입니다.\",\"executionId\":\"이번 노드 실행의 ID입니다. 재시도에서도 같은 ID를 사용합니다.\"}},\"selectNode\":\"확인하고 편집할 초안 노드를 하나 선택하세요.\",\"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}}. 여기서는 하나만 사용할 수 있습니다.\",\"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\":\"입력\",\"requiredInputs\":\"필수\",\"optionalInputs\":\"선택\",\"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이며 쿼리 매개변수는 포함하지 않습니다.\"}},\"startParametersTitle\":\"시작 매개변수\"}}"),
11566
11366
  language: { "label": "언어" },
11567
11367
  notice: {
11568
11368
  "connectorUnconfigured": "이 배포에는 Connector가 구성되어 있지 않습니다.",
@@ -11882,7 +11682,8 @@ var resources = {
11882
11682
  "completed": "성공",
11883
11683
  "failed": "실패",
11884
11684
  "unknown": "상태 미확인"
11885
- }
11685
+ },
11686
+ "errorHandled": "실패 처리됨"
11886
11687
  },
11887
11688
  sidebar: {
11888
11689
  "createFirstFlow": "Flow 만들기",
@@ -12339,148 +12140,7 @@ var resources = {
12339
12140
  "results": "검색 결과",
12340
12141
  "builtIn": "기본 제공"
12341
12142
  },
12342
- eventSources: {
12343
- "required": "필수",
12344
- "optional": "선택",
12345
- "secretsHint": "앱의 이벤트 및 콜백 암호화 설정에서 두 값을 복사하세요. 암호화된 콜백이 필요합니다. 수정 시 비워 두면 기존 키가 유지됩니다.",
12346
- "openConsole": "Feishu 개발자 콘솔 열기",
12347
- "defaultName": "Feishu 이벤트 소스",
12348
- "title": "이벤트 소스",
12349
- "description": "앱 이벤트를 수신하여 여러 Flow에서 공유합니다.",
12350
- "refresh": "새로 고침",
12351
- "add": "이벤트 소스 추가",
12352
- "loading": "이벤트 소스 로드 중…",
12353
- "empty": "이벤트 소스가 없습니다",
12354
- "emptyDescription": "Feishu 앱을 연결하여 이벤트가 발생하면 Flow를 시작합니다.",
12355
- "edit": "편집",
12356
- "disabled": "비활성화됨",
12357
- "unverified": "주소 확인 대기 중",
12358
- "ready": "콜백 검증 완료",
12359
- "disable": "비활성화",
12360
- "enable": "활성화",
12361
- "callback": "콜백 URL",
12362
- "originMissing": "먼저 배포 설정에서 Integration 공개 주소를 설정하세요.",
12363
- "connection": "연결",
12364
- "lastReceived": "마지막 이벤트 수신",
12365
- "never": "수신한 이벤트 없음",
12366
- "consumers": "게시된 Flow",
12367
- "noConsumers": "이 소스를 사용하는 게시된 Flow가 없습니다.",
12368
- "deleteConfirm": "이 이벤트 소스를 삭제할까요?",
12369
- "delete": "삭제",
12370
- "cancel": "취소",
12371
- "name": "이름",
12372
- "team": "Connector 팀",
12373
- "keepSecret": "비워 두면 저장된 값 유지",
12374
- "events": "수신할 이벤트",
12375
- "eventsHint": "수신할 이벤트를 선택하고 Feishu 앱에서도 해당 이벤트와 권한을 활성화하세요. 여기서 선택해도 앱은 자동 설정되지 않습니다. 동기 응답이 필요한 콜백은 지원하지 않습니다.",
12376
- "manageHint": "기존 구독 인계 및 게시된 Flow에서 더 이상 필요하지 않은 구독의 자동 정리를 포함하여 이 배포가 리소스 구독을 관리하도록 허용합니다.",
12377
- "save": "저장",
12378
- "invalid": "이벤트 소스 설정이 잘못되었습니다. 연결, 테넌트 및 필수 항목을 확인하세요.",
12379
- "notFound": "선택한 연결에서 이 소스를 사용할 수 없습니다.",
12380
- "conflict": "소스가 변경되었거나 사용 중입니다. 새로 고침 후 Flow와 구독을 확인하세요.",
12381
- "source": "이벤트 소스",
12382
- "selectSourceFirst": "먼저 이벤트 소스를 선택하세요",
12383
- "noSources": "현재 Flow의 팀에 Feishu 이벤트 소스가 없습니다. 여기에서 만들 수 있습니다.",
12384
- "loadFailed": "이벤트 소스를 불러올 수 없습니다。",
12385
- "searchEvents": "이벤트 이름 또는 ID 검색",
12386
- "customEvent": "사용자 지정 이벤트 추가",
12387
- "addCustom": "추가",
12388
- "noEventMatches": "일치하는 이벤트 없음",
12389
- "chooseEvents": "이벤트를 하나 이상 선택하세요",
12390
- "customInvalid": "유효한 비동기 이벤트 ID를 입력하세요.",
12391
- "sourceEventsHint": "선택한 소스에서 허용한 이벤트만 선택할 수 있습니다.",
12392
- "eventUnavailable": "이 소스에서 허용하지 않는 이벤트입니다. 제거하거나 소스를 수정하세요.",
12393
- "eventGroups": {
12394
- "messages": "메시지",
12395
- "documents": "문서",
12396
- "base": "Base",
12397
- "calendar": "캘린더",
12398
- "approval": "승인",
12399
- "contacts": "연락처",
12400
- "custom": "사용자 지정 이벤트"
12401
- },
12402
- "eventNames": {
12403
- "im_message_receive_v1": "메시지 수신",
12404
- "im_message_recalled_v1": "메시지 회수",
12405
- "im_message_reaction_created_v1": "반응 추가",
12406
- "im_chat_member_bot_added_v1": "봇이 그룹에 추가됨",
12407
- "drive_file_edit_v1": "문서 편집",
12408
- "drive_file_title_updated_v1": "문서 이름 변경",
12409
- "drive_file_created_in_folder_v1": "폴더에 파일 추가",
12410
- "drive_file_deleted_v1": "파일 삭제",
12411
- "drive_file_bitable_record_changed_v1": "Base 레코드 변경",
12412
- "drive_file_bitable_field_changed_v1": "Base 필드 변경",
12413
- "calendar_calendar_event_changed_v4": "일정 변경",
12414
- "calendar_calendar_changed_v4": "캘린더 변경",
12415
- "approval_instance_status_changed_v4": "승인 인스턴스 상태 변경",
12416
- "approval_task_status_changed_v4": "승인 작업 상태 변경",
12417
- "approval_instance": "승인 인스턴스 (레거시)",
12418
- "contact_user_created_v3": "직원 추가",
12419
- "contact_user_updated_v3": "직원 정보 변경",
12420
- "contact_user_deleted_v3": "직원 삭제"
12421
- },
12422
- "identityUnavailable": "Connector가 검증된 앱 ID를 제공하지 않습니다. 업데이트 후 생성하세요.",
12423
- "selectApp": "Feishu 앱 선택",
12424
- "configureCallback": "콜백 설정",
12425
- "selectAppHint": "Feishu에서 기업 자체 앱을 만든 후 Connector의 Feishu App Bot을 선택해 App ID와 App Secret으로 연결하세요. Feishu 사용자 OAuth 연결은 대상이 아닙니다. 앱 생성 시 콜백 URL은 필요하지 않습니다.",
12426
- "configureCallbackHint": "Feishu의 이벤트 및 콜백 → 보안 설정에서 Verification Token을 확인하고 Encrypt Key를 설정하세요. 이 양식을 먼저 저장한 후 생성된 URL을 Feishu에 입력하세요.",
12427
- "feishuApp": "Feishu 앱 (Feishu App Bot)",
12428
- "noApplications": "이 팀에 활성 Feishu App Bot 연결이 없습니다. 먼저 앱을 연결하세요.",
12429
- "appSourceName": "{{name}} 이벤트",
12430
- "resourceManagement": "리소스 구독 관리",
12431
- "back": "이전",
12432
- "next": "다음",
12433
- "receiving": "이벤트 수신됨",
12434
- "create": "이벤트 소스 만들기",
12435
- "created": "이벤트 소스 생성 완료",
12436
- "flowCreateHint": "이벤트 소스는 현재 Flow의 팀에 속하며 여러 Flow에서 공유할 수 있습니다.",
12437
- "bindFailed": "이벤트 소스를 만들었지만 현재 노드에 연결하지 못했습니다. 다시 시도하세요.",
12438
- "useSource": "이 이벤트 소스 사용",
12439
- "verifyBeforePublish": "Flow 편집을 계속할 수 있습니다. 게시 전에 Feishu에서 콜백을 검증하세요.",
12440
- "setupCopy": "1. 콜백 URL 복사",
12441
- "setupFeishu": "2. Feishu에서 이벤트 구독 설정",
12442
- "setupVerify": "3. 여기로 돌아와 검증 결과 확인",
12443
- "copy": "복사",
12444
- "copied": "복사됨",
12445
- "copyFailed": "복사하지 못했습니다. URL을 선택하여 직접 복사하세요.",
12446
- "publicCallbackHint": "Feishu가 인터넷을 통해 접근할 수 있는 URL이어야 합니다. localhost와 사설 주소는 사용할 수 없습니다.",
12447
- "setupFeishuHint": "앱의 이벤트 및 콜백 → 이벤트 설정에서 개발자 서버로 전송을 선택하고 URL을 붙여 넣어 저장하세요. 아래 이벤트와 필요한 권한을 추가하고 Feishu 요구 사항에 따라 앱 버전을 게시하세요.",
12448
- "openFeishu": "Feishu 개발자 콘솔 열기",
12449
- "manualSubscriptionHint": "여기서 선택한 이벤트는 Feishu에 자동으로 추가되지 않습니다. Feishu 콘솔에서도 설정하세요.",
12450
- "awaitingVerification": "아직 콜백 검증을 받지 못했습니다. Feishu 설정을 마친 후 아래에서 확인하세요.",
12451
- "callbackVerified": "콜백이 검증되었습니다. 실제 이벤트 수신 여부는 소스의 수신 상태에서 확인하세요.",
12452
- "checkingVerification": "확인 중…",
12453
- "checkVerification": "검증 결과 확인",
12454
- "specifiedChats": "특정 대화 지정 (선택)",
12455
- "specifiedChatsHint": "한 줄에 chat_id 하나를 입력하세요. 비워 두면 앱에 권한이 있는 모든 대화가 대상입니다.",
12456
- "subscribeResource": "특정 리소스 구독",
12457
- "subscribeResourceHint": "선택 사항입니다. 게시 시 Feishu에 리소스 구독을 요청하고 이 Flow를 해당 리소스의 이벤트로 제한합니다.",
12458
- "managementRequired": "먼저 설정의 이벤트 소스에서 리소스 구독 관리를 활성화하세요.",
12459
- "incompatibleChats": "선택한 이벤트는 대화 필터를 지원하지 않습니다. 기존 조건을 삭제하세요.",
12460
- "incompatibleResource": "리소스가 선택한 이벤트와 일치하지 않습니다. 구독을 끄고 호환되는 이벤트를 선택하세요.",
12461
- "removeFilter": "필터 삭제",
12462
- "documentType": "문서 유형",
12463
- "documentTypes": {
12464
- "doc": "이전 문서",
12465
- "docx": "문서",
12466
- "sheet": "스프레드시트",
12467
- "bitable": "Base",
12468
- "file": "파일",
12469
- "folder": "폴더"
12470
- },
12471
- "resourceIds": {
12472
- "document": "문서 토큰",
12473
- "calendar": "캘린더 ID",
12474
- "approval": "승인 정의 코드"
12475
- },
12476
- "resourceHints": {
12477
- "document": "전체 URL 대신 문서 또는 Base 토큰을 입력하세요.",
12478
- "calendar": "일정 변경을 수신할 캘린더 ID를 입력하세요.",
12479
- "approval": "인스턴스 ID 대신 승인 정의 코드를 입력하세요. 이전 버전 승인 이벤트만 지원합니다."
12480
- },
12481
- "connectApp": "Feishu App Bot 연결",
12482
- "connectAppHint": "새 탭에서 Connector를 엽니다. 현재 Flow의 팀을 사용하세요. 연결 후 돌아오면 목록이 자동으로 새로 고쳐집니다."
12483
- },
12143
+ eventSources: /* @__PURE__ */ JSON.parse("{\"required\":\"필수\",\"optional\":\"선택\",\"secretsHint\":\"앱의 이벤트 및 콜백 암호화 설정에서 두 값을 복사하세요. 암호화된 콜백이 필요합니다. 수정 시 비워 두면 기존 키가 유지됩니다.\",\"openConsole\":\"개발자 콘솔 열기\",\"defaultName\":\"앱 이벤트 소스\",\"title\":\"이벤트 소스\",\"description\":\"앱 이벤트를 수신하여 여러 Flow에서 공유합니다.\",\"refresh\":\"새로 고침\",\"add\":\"이벤트 소스 추가\",\"loading\":\"이벤트 소스 로드 중…\",\"empty\":\"이벤트 소스가 없습니다\",\"emptyDescription\":\"앱을 연결하여 이벤트가 발생하면 Flow를 시작하세요.\",\"edit\":\"편집\",\"disabled\":\"비활성화됨\",\"unverified\":\"주소 확인 대기 중\",\"ready\":\"콜백 검증 완료\",\"disable\":\"비활성화\",\"enable\":\"활성화\",\"callback\":\"콜백 URL\",\"originMissing\":\"먼저 배포 설정에서 Integration 공개 주소를 설정하세요.\",\"connection\":\"연결\",\"lastReceived\":\"마지막 이벤트 수신\",\"never\":\"수신한 이벤트 없음\",\"consumers\":\"게시된 Flow\",\"noConsumers\":\"이 소스를 사용하는 게시된 Flow가 없습니다.\",\"deleteConfirm\":\"이 이벤트 소스를 삭제할까요?\",\"delete\":\"삭제\",\"cancel\":\"취소\",\"name\":\"이름\",\"team\":\"Connector 팀\",\"keepSecret\":\"비워 두면 저장된 값 유지\",\"events\":\"수신할 이벤트\",\"eventsHint\":\"수신할 이벤트를 선택하고 Feishu 앱에서도 해당 이벤트와 권한을 활성화하세요. 여기서 선택해도 앱은 자동 설정되지 않습니다. 동기 응답이 필요한 콜백은 지원하지 않습니다.\",\"manageHint\":\"기존 구독 인계 및 게시된 Flow에서 더 이상 필요하지 않은 구독의 자동 정리를 포함하여 이 배포가 리소스 구독을 관리하도록 허용합니다.\",\"save\":\"저장\",\"invalid\":\"이벤트 소스 설정이 잘못되었습니다. 연결, 테넌트 및 필수 항목을 확인하세요.\",\"notFound\":\"선택한 연결에서 이 소스를 사용할 수 없습니다.\",\"conflict\":\"소스가 변경되었거나 사용 중입니다. 새로 고침 후 Flow와 구독을 확인하세요.\",\"source\":\"이벤트 소스\",\"selectSourceFirst\":\"먼저 이벤트 소스를 선택하세요\",\"noSources\":\"일치하는 이벤트 소스가 없습니다. 먼저 생성하세요.\",\"loadFailed\":\"이벤트 소스를 불러올 수 없습니다。\",\"searchEvents\":\"이벤트 이름 또는 ID 검색\",\"customEvent\":\"사용자 지정 이벤트 추가\",\"addCustom\":\"추가\",\"noEventMatches\":\"일치하는 이벤트 없음\",\"chooseEvents\":\"이벤트를 하나 이상 선택하세요\",\"customInvalid\":\"유효한 비동기 이벤트 ID를 입력하세요.\",\"sourceEventsHint\":\"선택한 소스에서 허용한 이벤트만 선택할 수 있습니다.\",\"eventUnavailable\":\"이 소스에서 허용하지 않는 이벤트입니다. 제거하거나 소스를 수정하세요.\",\"eventGroups\":{\"messages\":\"메시지\",\"documents\":\"문서\",\"base\":\"Base\",\"calendar\":\"캘린더\",\"approval\":\"승인\",\"contacts\":\"연락처\",\"custom\":\"사용자 지정 이벤트\"},\"eventNames\":{\"im_message_receive_v1\":\"메시지 수신\",\"im_message_recalled_v1\":\"메시지 회수\",\"im_message_reaction_created_v1\":\"반응 추가\",\"im_chat_member_bot_added_v1\":\"봇이 그룹에 추가됨\",\"drive_file_edit_v1\":\"문서 편집\",\"drive_file_title_updated_v1\":\"문서 이름 변경\",\"drive_file_created_in_folder_v1\":\"폴더에 파일 추가\",\"drive_file_deleted_v1\":\"파일 삭제\",\"drive_file_bitable_record_changed_v1\":\"Base 레코드 변경\",\"drive_file_bitable_field_changed_v1\":\"Base 필드 변경\",\"calendar_calendar_event_changed_v4\":\"일정 변경\",\"calendar_calendar_changed_v4\":\"캘린더 변경\",\"approval_instance_status_changed_v4\":\"승인 인스턴스 상태 변경\",\"approval_task_status_changed_v4\":\"승인 작업 상태 변경\",\"approval_instance\":\"승인 인스턴스 (레거시)\",\"contact_user_created_v3\":\"직원 추가\",\"contact_user_updated_v3\":\"직원 정보 변경\",\"contact_user_deleted_v3\":\"직원 삭제\"},\"identityUnavailable\":\"Connector가 검증된 앱 ID를 제공하지 않습니다. 업데이트 후 생성하세요.\",\"selectApp\":\"앱 선택\",\"configureCallback\":\"콜백 설정\",\"selectAppHint\":\"Feishu에서 기업 자체 앱을 만든 후 Connector의 Feishu App Bot을 선택해 App ID와 App Secret으로 연결하세요. Feishu 사용자 OAuth 연결은 대상이 아닙니다. 앱 생성 시 콜백 URL은 필요하지 않습니다.\",\"configureCallbackHint\":\"Feishu의 이벤트 및 콜백 → 보안 설정에서 Verification Token을 확인하고 Encrypt Key를 설정하세요. 이 양식을 먼저 저장한 후 생성된 URL을 Feishu에 입력하세요.\",\"feishuApp\":\"Feishu 앱 (Feishu App Bot)\",\"noApplications\":\"활성 연결이 없습니다. 앱을 연결하세요.\",\"appSourceName\":\"{{name}} 이벤트\",\"resourceManagement\":\"리소스 구독 관리\",\"back\":\"이전\",\"next\":\"다음\",\"receiving\":\"이벤트 수신됨\",\"create\":\"이벤트 소스 만들기\",\"created\":\"이벤트 소스 생성 완료\",\"flowCreateHint\":\"이벤트 소스는 현재 Flow의 팀에 속하며 여러 Flow에서 공유할 수 있습니다.\",\"bindFailed\":\"이벤트 소스를 만들었지만 현재 노드에 연결하지 못했습니다. 다시 시도하세요.\",\"useSource\":\"이 이벤트 소스 사용\",\"verifyBeforePublish\":\"계속 편집할 수 있습니다. 게시 전에 콜백을 검증하세요.\",\"setupCopy\":\"1. 콜백 URL 복사\",\"setupFeishu\":\"2. Feishu에서 이벤트 구독 설정\",\"setupVerify\":\"3. 여기로 돌아와 검증 결과 확인\",\"copy\":\"복사\",\"copied\":\"복사됨\",\"copyFailed\":\"복사하지 못했습니다. URL을 선택하여 직접 복사하세요.\",\"publicCallbackHint\":\"제공자가 공용 인터넷을 통해 이 URL에 접근할 수 있어야 합니다.\",\"setupFeishuHint\":\"앱의 이벤트 및 콜백 → 이벤트 설정에서 개발자 서버로 전송을 선택하고 URL을 붙여 넣어 저장하세요. 아래 이벤트와 필요한 권한을 추가하고 Feishu 요구 사항에 따라 앱 버전을 게시하세요.\",\"openFeishu\":\"Feishu 개발자 콘솔 열기\",\"manualSubscriptionHint\":\"이벤트를 앱 콘솔에서도 설정하세요.\",\"awaitingVerification\":\"콜백이 아직 검증되지 않았습니다. 앱 설정 후 확인하세요.\",\"callbackVerified\":\"콜백이 검증되었습니다. 실제 이벤트 수신 여부는 소스의 수신 상태에서 확인하세요.\",\"checkingVerification\":\"확인 중…\",\"checkVerification\":\"검증 결과 확인\",\"specifiedChats\":\"특정 대화 지정 (선택)\",\"specifiedChatsHint\":\"한 줄에 chat_id 하나를 입력하세요. 비워 두면 앱에 권한이 있는 모든 대화가 대상입니다.\",\"subscribeResource\":\"특정 리소스 구독\",\"subscribeResourceHint\":\"선택 사항입니다. 게시 시 Feishu에 리소스 구독을 요청하고 이 Flow를 해당 리소스의 이벤트로 제한합니다.\",\"managementRequired\":\"먼저 설정의 이벤트 소스에서 리소스 구독 관리를 활성화하세요.\",\"incompatibleChats\":\"선택한 이벤트는 대화 필터를 지원하지 않습니다. 기존 조건을 삭제하세요.\",\"incompatibleResource\":\"리소스가 선택한 이벤트와 일치하지 않습니다. 구독을 끄고 호환되는 이벤트를 선택하세요.\",\"removeFilter\":\"필터 삭제\",\"documentType\":\"문서 유형\",\"documentTypes\":{\"doc\":\"이전 문서\",\"docx\":\"문서\",\"sheet\":\"스프레드시트\",\"bitable\":\"Base\",\"file\":\"파일\",\"folder\":\"폴더\"},\"resourceIds\":{\"document\":\"문서 토큰\",\"calendar\":\"캘린더 ID\",\"approval\":\"승인 정의 코드\"},\"resourceHints\":{\"document\":\"전체 URL 대신 문서 또는 Base 토큰을 입력하세요.\",\"calendar\":\"일정 변경을 수신할 캘린더 ID를 입력하세요.\",\"approval\":\"인스턴스 ID 대신 승인 정의 코드를 입력하세요. 이전 버전 승인 이벤트만 지원합니다.\"},\"connectApp\":\"앱 연결\",\"connectAppHint\":\"새 탭에서 Connector를 엽니다. 현재 Flow의 팀을 사용하세요. 연결 후 돌아오면 목록이 자동으로 새로 고쳐집니다.\",\"provider\":\"공급자\",\"slackSecretsHint\":\"Signing Secret은 Slack 앱의 워크스페이스 소스가 공유합니다. 변경하면 모든 소스를 다시 검증해야 합니다.\",\"setupSlack\":\"Slack Events API 설정\",\"setupSlackHint\":\"아래 주소를 앱 Request URL로 설정하고 app_mention 및 message.im을 구독하세요. Slack Connect 공유 채널은 제외됩니다.\",\"slackConnectHint\":\"Bot OAuth 연결로 Slack 앱을 설치하세요. 검증된 Bot 사용자 ID로 설치를 구분합니다.\",\"intercomConnectHint\":\"Intercom 앱이 설치된 워크스페이스 연결을 선택하세요.\",\"intercomSecretsHint\":\"Developer Hub의 개발자 앱 ID와 Client Secret을 입력하세요.\",\"setupIntercom\":\"Intercom 웹훅 설정\",\"setupIntercomHint\":\"Developer Hub에서 URL과 아래 주제를 설정하고 ping을 보내 검증하세요. 관리자 답글은 실행을 시작하지 않습니다.\",\"sentryConnectHint\":\"사용자 지정 통합이 설치된 Sentry 조직 연결을 선택하세요.\",\"sentrySecretsHint\":\"통합 UUID, 설치 UUID 및 Client Secret을 입력하세요. 연결된 조직의 설치를 확인합니다.\",\"setupSentry\":\"Sentry Issue 알림 설정\",\"setupSentryHint\":\"통합에 URL을 설정하고 Issue Alert 작업을 활성화한 후 게시 전에 테스트 알림을 보내세요.\",\"zoomConnectHint\":\"녹화를 수신할 Zoom 호스트 연결을 선택하세요.\",\"zoomSecretsHint\":\"Zoom Marketplace의 Client ID와 Webhook Secret Token을 입력하세요.\",\"setupZoom\":\"Zoom 녹화 이벤트 설정\",\"setupZoomHint\":\"Zoom Marketplace에서 recording.completed와 URL을 설정하고 검증하세요. 연결 사용자가 호스트한 녹화만 수신합니다.\",\"firefliesConnectHint\":\"회의 접근 권한이 있는 Fireflies 연결을 선택하세요.\",\"firefliesSecretsHint\":\"Webhooks V2에서 이 URL에 설정한 Signing Secret을 입력하세요.\",\"setupFireflies\":\"Fireflies Webhooks V2 설정\",\"setupFirefliesHint\":\"V2에 URL, Signing Secret 및 이벤트를 설정하고 접근 가능한 회의 이벤트로 검증하세요. 전사와 요약은 별도로 실행됩니다.\",\"jiraConnectHint\":\"Webhook 관리 권한이 있는 Jira Cloud OAuth 연결을 선택하세요.\",\"jiraSetupHint\":\"프로젝트 키 또는 ID를 입력하세요. 첫 Flow 게시 시 Webhook을 생성하고 만료 전에 갱신하며 마지막 사용자가 중지하면 삭제합니다. OAuth 앱에서 공개 HTTPS 콜백 도메인을 허용해야 합니다.\",\"setupJira\":\"Jira 프로젝트 자동 구독\",\"jiraEventsHint\":\"프로젝트의 Webhook을 공유하며 각 Flow에서 이슈 및 댓글 이벤트를 필터링합니다.\",\"jiraProject\":\"Jira 프로젝트 키 또는 ID\",\"subscription\":{\"idle\":\"첫 Flow 게시 시 자동 구독\",\"pending\":\"Webhook 생성 또는 갱신 중\",\"ready\":\"Webhook 활성화됨\",\"error\":\"Webhook을 사용할 수 없습니다. 연결을 확인하고 게시를 다시 시도하세요\"},\"accountIdentity\":\"연결 계정 식별자\",\"appId\":\"앱 ID\",\"slackAppId\":\"Slack 앱 ID\",\"integrationId\":\"통합 UUID\",\"developerAppId\":\"개발자 앱 ID\",\"organizationId\":\"조직 ID / 슬러그\",\"installationId\":\"설치 UUID\",\"workspaceId\":\"워크스페이스 ID\",\"verificationToken\":\"검증 토큰\",\"signingSecret\":\"서명 비밀 키\",\"webhookSecret\":\"Webhook 비밀 토큰\",\"encryptKey\":\"암호화 키\",\"clientSecret\":\"클라이언트 비밀 키\",\"identityUnknown\":\"일시적으로 사용할 수 없음\"}"),
12484
12144
  connectionUsage: {
12485
12145
  "title": "연결 개요",
12486
12146
  "needsAttention": "연결에 확인이 필요합니다",
@@ -12661,6 +12321,15 @@ var resources = {
12661
12321
  "deleteImpact": "{{count}}개 워크플로의 호출이 실패합니다",
12662
12322
  "deleteAnyway": "그래도 삭제",
12663
12323
  "deleteListeners": "오류 수신이 중단되는 리스너: {{count}}개"
12324
+ },
12325
+ tallyTrigger: {
12326
+ "form": "양식",
12327
+ "selectForm": "양식 선택",
12328
+ "loading": "양식 불러오는 중…",
12329
+ "noForms": "접근 가능한 양식이 없습니다.",
12330
+ "unavailable": "이 양식에 더 이상 접근할 수 없습니다. 다른 양식을 선택하세요.",
12331
+ "failed": "양식을 불러올 수 없습니다.",
12332
+ "retry": "다시 시도"
12664
12333
  }
12665
12334
  },
12666
12335
  "ru": {
@@ -12889,7 +12558,7 @@ var resources = {
12889
12558
  "exportSvgFailed": "Не удалось экспортировать изображение SVG. Повторите попытку.",
12890
12559
  "importInvalid": "Некорректный или неподдерживаемый файл процесса."
12891
12560
  },
12892
- inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"Список узлов\",\"backToOutline\":\"Вернуться к списку узлов\",\"emptyOutline\":\"Узлов пока нет\",\"triggers\":\"Триггеры\",\"nodes\":\"Узлы\",\"multipleSelected\":\"Выбрано узлов: {{count}}\",\"account\":{\"contactAdmin\":\"У вас нет прав для выполнения этой операции. Обратитесь к администратору.\",\"accessTitle\":\"Права доступа\",\"manageFlowAccess\":\"Подключения, доступные Code\",\"configureAccess\":\"Выбрать аккаунт\",\"manageAccount\":\"Управление аккаунтами\",\"required\":\"Требуется подключение аккаунта\",\"addAccount\":\"Добавить аккаунт\",\"manage\":\"Управление\",\"authorizationPending\":\"Завершите авторизацию на странице Connection, затем вернитесь сюда, чтобы обновить этот аккаунт.\",\"chooseAccount\":\"Выберите аккаунт\",\"deferred\":\"Пока не настраивать\",\"clearDeferred\":\"Сбросить выбор\",\"noAccounts\":\"Нет доступных аккаунтов\",\"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\":\"Входы\",\"requiredInputs\":\"Обязательные\",\"optionalInputs\":\"Необязательные\",\"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, получивший этот запрос, без параметров запроса.\"}},\"startParametersTitle\":\"Параметры запуска\"}}"),
12561
+ inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"Список узлов\",\"backToOutline\":\"Вернуться к списку узлов\",\"emptyOutline\":\"Узлов пока нет\",\"triggers\":\"Триггеры\",\"nodes\":\"Узлы\",\"multipleSelected\":\"Выбрано узлов: {{count}}\",\"account\":{\"contactAdmin\":\"У вас нет прав для выполнения этой операции. Обратитесь к администратору.\",\"accessTitle\":\"Права доступа\",\"manageFlowAccess\":\"Подключения, доступные Code\",\"configureAccess\":\"Выбрать аккаунт\",\"manageAccount\":\"Управление аккаунтами\",\"required\":\"Требуется подключение аккаунта\",\"addAccount\":\"Добавить аккаунт\",\"manage\":\"Управление\",\"authorizationPending\":\"Завершите авторизацию на странице Connection, затем вернитесь сюда, чтобы обновить этот аккаунт.\",\"chooseAccount\":\"Выберите аккаунт\",\"deferred\":\"Пока не настраивать\",\"clearDeferred\":\"Сбросить выбор\",\"noAccounts\":\"Нет доступных аккаунтов\",\"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\":\"Заголовок\",\"retry\":\"Повторять при ошибке\",\"retryCount\":\"До {{count}} повторов\",\"retryInterval\":\"Интервал повторов\",\"retryError\":\"Укажите целый интервал от 1 до 60 секунд.\",\"retryHint\":\"Число повторов означает дополнительные попытки после неудачной первой попытки. Повтор запускает весь узел заново и может повторить внешние операции. Тайм-аут включает все попытки и интервалы.\",\"retryNone\":\"Без повторов\",\"retrySeconds\":\"сек.\",\"retryHelp\":\"О повторах\",\"retryOnce\":\"Не более 1 повтора\",\"onError\":\"При ошибке\",\"onErrorStop\":\"Остановить процесс\",\"onErrorOutput\":\"Вывод в порт error\",\"onErrorHelp\":\"Обработка ошибок\",\"onErrorHint\":\"После неудачных повторов записать ошибку в системный выход error и продолжить по существующим связям. При успехе error равен null. Отмена, тайм-ауты, ограничения ресурсов и неопределённые результаты останавливают выполнение.\",\"systemOutputs\":\"Системные выходы\",\"systemError\":\"Ошибка (системная)\",\"errorFields\":{\"error\":\"Информация об ошибке узла; при успешном выполнении — null.\",\"code\":\"Код, определяющий тип ошибки.\",\"message\":\"Описание ошибки со скрытыми конфиденциальными данными.\",\"nodeId\":\"Идентификатор узла, в котором произошла ошибка.\",\"nodeName\":\"Имя узла на момент ошибки.\",\"runId\":\"Идентификатор этого запуска рабочего процесса.\",\"executionId\":\"Идентификатор этого выполнения узла, общий для всех повторных попыток.\"}},\"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\":\"Входы\",\"requiredInputs\":\"Обязательные\",\"optionalInputs\":\"Необязательные\",\"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, получивший этот запрос, без параметров запроса.\"}},\"startParametersTitle\":\"Параметры запуска\"}}"),
12893
12562
  language: { "label": "Язык" },
12894
12563
  notice: {
12895
12564
  "connectorUnconfigured": "Для этого развертывания Connector не настроен.",
@@ -13209,7 +12878,8 @@ var resources = {
13209
12878
  "completed": "Успешно",
13210
12879
  "failed": "Ошибка",
13211
12880
  "unknown": "Состояние не подтверждено"
13212
- }
12881
+ },
12882
+ "errorHandled": "Ошибка обработана"
13213
12883
  },
13214
12884
  sidebar: {
13215
12885
  "createFirstFlow": "Создать Flow",
@@ -13666,7 +13336,7 @@ var resources = {
13666
13336
  "results": "Результаты поиска",
13667
13337
  "builtIn": "Встроенные"
13668
13338
  },
13669
- eventSources: /* @__PURE__ */ JSON.parse("{\"required\":\"Обязательно\",\"optional\":\"Необязательно\",\"secretsHint\":\"Скопируйте оба значения из настроек шифрования событий и обратных вызовов приложения. Требуются зашифрованные вызовы. При редактировании оставьте поле пустым, чтобы сохранить текущий ключ.\",\"openConsole\":\"Открыть консоль разработчика Feishu\",\"defaultName\":\"Источник событий Feishu\",\"title\":\"Источники событий\",\"description\":\"Принимайте события приложения и передавайте их нескольким Flow.\",\"refresh\":\"Обновить\",\"add\":\"Добавить источник\",\"loading\":\"Загрузка источников…\",\"empty\":\"Источников событий пока нет\",\"emptyDescription\":\"Подключите приложение Feishu для запуска Flow по событиям.\",\"edit\":\"Изменить\",\"disabled\":\"Отключён\",\"unverified\":\"Ожидается проверка адреса\",\"ready\":\"Обратный вызов проверен\",\"disable\":\"Отключить\",\"enable\":\"Включить\",\"callback\":\"URL обратного вызова\",\"originMissing\":\"Сначала настройте публичный адрес Integration в параметрах развёртывания.\",\"connection\":\"Подключение\",\"lastReceived\":\"Последнее полученное событие\",\"never\":\"Событий ещё нет\",\"consumers\":\"Опубликованные Flow\",\"noConsumers\":\"Ни один опубликованный Flow не использует этот источник.\",\"deleteConfirm\":\"Удалить этот источник?\",\"delete\":\"Удалить\",\"cancel\":\"Отмена\",\"name\":\"Название\",\"team\":\"Команда Connector\",\"keepSecret\":\"Оставьте пустым, чтобы сохранить значение\",\"events\":\"Принимаемые события\",\"eventsHint\":\"Выберите события и включите их с нужными разрешениями в Feishu. Этот выбор не настраивает приложение. Интерактивные вызовы с синхронным ответом не поддерживаются.\",\"manageHint\":\"Разрешить управление подписками на ресурсы, включая существующие подписки и их автоматическое удаление, когда они не нужны опубликованным Flow.\",\"save\":\"Сохранить\",\"invalid\":\"Неверные параметры источника. Проверьте подключение, организацию и обязательные поля.\",\"notFound\":\"Источник недоступен для выбранного подключения.\",\"conflict\":\"Источник изменён или используется. Обновите данные и проверьте Flow и подписки.\",\"source\":\"Источник событий\",\"selectSourceFirst\":\"Сначала выберите источник событий\",\"noSources\":\"У команды этого Flow пока нет источников событий Feishu. Создайте источник здесь.\",\"loadFailed\":\"Не удалось загрузить источники.\",\"searchEvents\":\"Поиск по названию или ID\",\"customEvent\":\"Добавить свой тип события\",\"addCustom\":\"Добавить\",\"noEventMatches\":\"Нет подходящих событий\",\"chooseEvents\":\"Выберите хотя бы одно событие\",\"customInvalid\":\"Введите корректный ID асинхронного события.\",\"sourceEventsHint\":\"Доступны только события, разрешённые выбранным источником.\",\"eventUnavailable\":\"Событие не разрешено источником. Удалите его или обновите источник.\",\"eventGroups\":{\"messages\":\"Сообщения\",\"documents\":\"Документы\",\"base\":\"Base\",\"calendar\":\"Календарь\",\"approval\":\"Согласования\",\"contacts\":\"Контакты\",\"custom\":\"Свои события\"},\"eventNames\":{\"im_message_receive_v1\":\"Получено сообщение\",\"im_message_recalled_v1\":\"Сообщение отозвано\",\"im_message_reaction_created_v1\":\"Добавлена реакция\",\"im_chat_member_bot_added_v1\":\"Бот добавлен в группу\",\"drive_file_edit_v1\":\"Документ изменён\",\"drive_file_title_updated_v1\":\"Документ переименован\",\"drive_file_created_in_folder_v1\":\"Файл добавлен в папку\",\"drive_file_deleted_v1\":\"Файл удалён\",\"drive_file_bitable_record_changed_v1\":\"Записи Base изменены\",\"drive_file_bitable_field_changed_v1\":\"Поля Base изменены\",\"calendar_calendar_event_changed_v4\":\"Событие календаря изменено\",\"calendar_calendar_changed_v4\":\"Календарь изменён\",\"approval_instance_status_changed_v4\":\"Статус экземпляра согласования изменён\",\"approval_task_status_changed_v4\":\"Статус задачи согласования изменён\",\"approval_instance\":\"Экземпляр согласования (старый формат)\",\"contact_user_created_v3\":\"Сотрудник добавлен\",\"contact_user_updated_v3\":\"Данные сотрудника обновлены\",\"contact_user_deleted_v3\":\"Сотрудник удалён\"},\"identityUnavailable\":\"Connector не предоставляет проверенный ID приложения. Обновите Connector перед созданием источника.\",\"selectApp\":\"Выберите приложение Feishu\",\"configureCallback\":\"Настройте обратный вызов\",\"selectAppHint\":\"Создайте корпоративное приложение в Feishu, затем выберите Feishu App Bot в Connector и подключитесь через App ID и App Secret. Пользовательские OAuth-подключения Feishu здесь не используются. Для создания приложения URL callback не нужен.\",\"configureCallbackHint\":\"Получите Verification Token и настройте Encrypt Key в разделе «События и callback → Настройки безопасности». Сохраните эту форму, затем укажите полученный URL в Feishu.\",\"feishuApp\":\"Приложение Feishu (Feishu App Bot)\",\"noApplications\":\"В этой команде нет активных подключений Feishu App Bot. Сначала подключите приложение.\",\"appSourceName\":\"События {{name}}\",\"resourceManagement\":\"Управление подписками на ресурсы\",\"back\":\"Назад\",\"next\":\"Далее\",\"receiving\":\"События получены\",\"create\":\"Создать источник событий\",\"created\":\"Источник событий создан\",\"flowCreateHint\":\"Источник принадлежит команде текущего Flow и доступен нескольким Flow.\",\"bindFailed\":\"Источник создан, но его не удалось связать с узлом. Повторите попытку.\",\"useSource\":\"Использовать этот источник\",\"verifyBeforePublish\":\"Можно продолжить редактирование Flow. Перед публикацией подтвердите callback в Feishu.\",\"setupCopy\":\"1. Скопируйте URL callback\",\"setupFeishu\":\"2. Настройте подписки в Feishu\",\"setupVerify\":\"3. Вернитесь сюда для проверки\",\"copy\":\"Копировать\",\"copied\":\"Скопировано\",\"copyFailed\":\"Не удалось скопировать. Выделите URL и скопируйте вручную.\",\"publicCallbackHint\":\"URL должен быть доступен Feishu через интернет. Localhost и частные адреса не подходят.\",\"setupFeishuHint\":\"В приложении откройте «События и callback → Настройка событий», выберите отправку на сервер разработчика, вставьте URL и сохраните. Добавьте события ниже и необходимые разрешения, затем опубликуйте версию по требованиям Feishu.\",\"openFeishu\":\"Открыть консоль Feishu\",\"manualSubscriptionHint\":\"Выбор здесь не добавляет события в Feishu автоматически. Настройте их также в консоли Feishu.\",\"awaitingVerification\":\"Подтверждение callback ещё не получено. Завершите настройку в Feishu и проверьте результат ниже.\",\"callbackVerified\":\"Callback подтверждён. Поступление рабочих событий смотрите в статусе приёма источника.\",\"checkingVerification\":\"Проверка…\",\"checkVerification\":\"Проверить callback\",\"specifiedChats\":\"Конкретные чаты (необязательно)\",\"specifiedChatsHint\":\"Один chat_id в каждой строке. Пустое поле означает все чаты, доступные приложению.\",\"subscribeResource\":\"Подписаться на конкретный ресурс\",\"subscribeResourceHint\":\"Необязательно. При публикации будет запрошена подписка Feishu, и Flow будет получать только события этого ресурса.\",\"managementRequired\":\"Сначала включите управление подписками у этого источника в настройках.\",\"incompatibleChats\":\"Выбранные события не поддерживают фильтр чатов. Удалите прежний фильтр.\",\"incompatibleResource\":\"Ресурс не соответствует событиям. Отключите подписку и выберите совместимые события.\",\"removeFilter\":\"Удалить фильтр\",\"documentType\":\"Тип документа\",\"documentTypes\":{\"doc\":\"Старый документ\",\"docx\":\"Документ\",\"sheet\":\"Таблица\",\"bitable\":\"Base\",\"file\":\"Файл\",\"folder\":\"Папка\"},\"resourceIds\":{\"document\":\"Токен документа\",\"calendar\":\"ID календаря\",\"approval\":\"Код определения согласования\"},\"resourceHints\":{\"document\":\"Введите токен документа или Base, а не полный URL.\",\"calendar\":\"Введите ID календаря для отслеживания изменений встреч.\",\"approval\":\"Введите код определения, а не ID экземпляра. Поддерживаются только старые бизнес-события согласования.\"},\"connectApp\":\"Подключить Feishu App Bot\",\"connectAppHint\":\"Connector откроется в новой вкладке. Используйте команду текущего Flow. После подключения и возвращения список обновится автоматически.\"}"),
13339
+ eventSources: /* @__PURE__ */ JSON.parse("{\"required\":\"Обязательно\",\"optional\":\"Необязательно\",\"secretsHint\":\"Скопируйте оба значения из настроек шифрования событий и обратных вызовов приложения. Требуются зашифрованные вызовы. При редактировании оставьте поле пустым, чтобы сохранить текущий ключ.\",\"openConsole\":\"Открыть консоль разработчика\",\"defaultName\":\"Источник событий приложения\",\"title\":\"Источники событий\",\"description\":\"Принимайте события приложения и передавайте их нескольким Flow.\",\"refresh\":\"Обновить\",\"add\":\"Добавить источник\",\"loading\":\"Загрузка источников…\",\"empty\":\"Источников событий пока нет\",\"emptyDescription\":\"Подключите приложение для запуска Flow по событиям.\",\"edit\":\"Изменить\",\"disabled\":\"Отключён\",\"unverified\":\"Ожидается проверка адреса\",\"ready\":\"Обратный вызов проверен\",\"disable\":\"Отключить\",\"enable\":\"Включить\",\"callback\":\"URL обратного вызова\",\"originMissing\":\"Сначала настройте публичный адрес Integration в параметрах развёртывания.\",\"connection\":\"Подключение\",\"lastReceived\":\"Последнее полученное событие\",\"never\":\"Событий ещё нет\",\"consumers\":\"Опубликованные Flow\",\"noConsumers\":\"Ни один опубликованный Flow не использует этот источник.\",\"deleteConfirm\":\"Удалить этот источник?\",\"delete\":\"Удалить\",\"cancel\":\"Отмена\",\"name\":\"Название\",\"team\":\"Команда Connector\",\"keepSecret\":\"Оставьте пустым, чтобы сохранить значение\",\"events\":\"Принимаемые события\",\"eventsHint\":\"Выберите события и включите их с нужными разрешениями в Feishu. Этот выбор не настраивает приложение. Интерактивные вызовы с синхронным ответом не поддерживаются.\",\"manageHint\":\"Разрешить управление подписками на ресурсы, включая существующие подписки и их автоматическое удаление, когда они не нужны опубликованным Flow.\",\"save\":\"Сохранить\",\"invalid\":\"Неверные параметры источника. Проверьте подключение, организацию и обязательные поля.\",\"notFound\":\"Источник недоступен для выбранного подключения.\",\"conflict\":\"Источник изменён или используется. Обновите данные и проверьте Flow и подписки.\",\"source\":\"Источник событий\",\"selectSourceFirst\":\"Сначала выберите источник событий\",\"noSources\":\"Подходящих источников нет. Создайте источник.\",\"loadFailed\":\"Не удалось загрузить источники.\",\"searchEvents\":\"Поиск по названию или ID\",\"customEvent\":\"Добавить свой тип события\",\"addCustom\":\"Добавить\",\"noEventMatches\":\"Нет подходящих событий\",\"chooseEvents\":\"Выберите хотя бы одно событие\",\"customInvalid\":\"Введите корректный ID асинхронного события.\",\"sourceEventsHint\":\"Доступны только события, разрешённые выбранным источником.\",\"eventUnavailable\":\"Событие не разрешено источником. Удалите его или обновите источник.\",\"eventGroups\":{\"messages\":\"Сообщения\",\"documents\":\"Документы\",\"base\":\"Base\",\"calendar\":\"Календарь\",\"approval\":\"Согласования\",\"contacts\":\"Контакты\",\"custom\":\"Свои события\"},\"eventNames\":{\"im_message_receive_v1\":\"Получено сообщение\",\"im_message_recalled_v1\":\"Сообщение отозвано\",\"im_message_reaction_created_v1\":\"Добавлена реакция\",\"im_chat_member_bot_added_v1\":\"Бот добавлен в группу\",\"drive_file_edit_v1\":\"Документ изменён\",\"drive_file_title_updated_v1\":\"Документ переименован\",\"drive_file_created_in_folder_v1\":\"Файл добавлен в папку\",\"drive_file_deleted_v1\":\"Файл удалён\",\"drive_file_bitable_record_changed_v1\":\"Записи Base изменены\",\"drive_file_bitable_field_changed_v1\":\"Поля Base изменены\",\"calendar_calendar_event_changed_v4\":\"Событие календаря изменено\",\"calendar_calendar_changed_v4\":\"Календарь изменён\",\"approval_instance_status_changed_v4\":\"Статус экземпляра согласования изменён\",\"approval_task_status_changed_v4\":\"Статус задачи согласования изменён\",\"approval_instance\":\"Экземпляр согласования (старый формат)\",\"contact_user_created_v3\":\"Сотрудник добавлен\",\"contact_user_updated_v3\":\"Данные сотрудника обновлены\",\"contact_user_deleted_v3\":\"Сотрудник удалён\"},\"identityUnavailable\":\"Connector не предоставляет проверенный ID приложения. Обновите Connector перед созданием источника.\",\"selectApp\":\"Выберите приложение\",\"configureCallback\":\"Настройте обратный вызов\",\"selectAppHint\":\"Создайте корпоративное приложение в Feishu, затем выберите Feishu App Bot в Connector и подключитесь через App ID и App Secret. Пользовательские OAuth-подключения Feishu здесь не используются. Для создания приложения URL callback не нужен.\",\"configureCallbackHint\":\"Получите Verification Token и настройте Encrypt Key в разделе «События и callback → Настройки безопасности». Сохраните эту форму, затем укажите полученный URL в Feishu.\",\"feishuApp\":\"Приложение Feishu (Feishu App Bot)\",\"noApplications\":\"Нет активных подключений. Подключите приложение.\",\"appSourceName\":\"События {{name}}\",\"resourceManagement\":\"Управление подписками на ресурсы\",\"back\":\"Назад\",\"next\":\"Далее\",\"receiving\":\"События получены\",\"create\":\"Создать источник событий\",\"created\":\"Источник событий создан\",\"flowCreateHint\":\"Источник принадлежит команде текущего Flow и доступен нескольким Flow.\",\"bindFailed\":\"Источник создан, но его не удалось связать с узлом. Повторите попытку.\",\"useSource\":\"Использовать этот источник\",\"verifyBeforePublish\":\"Можно продолжать редактирование. Проверьте обратный вызов перед публикацией.\",\"setupCopy\":\"1. Скопируйте URL callback\",\"setupFeishu\":\"2. Настройте подписки в Feishu\",\"setupVerify\":\"3. Вернитесь сюда для проверки\",\"copy\":\"Копировать\",\"copied\":\"Скопировано\",\"copyFailed\":\"Не удалось скопировать. Выделите URL и скопируйте вручную.\",\"publicCallbackHint\":\"Провайдер должен иметь доступ к этому URL через публичный интернет.\",\"setupFeishuHint\":\"В приложении откройте «События и callback → Настройка событий», выберите отправку на сервер разработчика, вставьте URL и сохраните. Добавьте события ниже и необходимые разрешения, затем опубликуйте версию по требованиям Feishu.\",\"openFeishu\":\"Открыть консоль Feishu\",\"manualSubscriptionHint\":\"Настройте события также в консоли приложения.\",\"awaitingVerification\":\"Обратный вызов ещё не проверен. Завершите настройку приложения.\",\"callbackVerified\":\"Callback подтверждён. Поступление рабочих событий смотрите в статусе приёма источника.\",\"checkingVerification\":\"Проверка…\",\"checkVerification\":\"Проверить callback\",\"specifiedChats\":\"Конкретные чаты (необязательно)\",\"specifiedChatsHint\":\"Один chat_id в каждой строке. Пустое поле означает все чаты, доступные приложению.\",\"subscribeResource\":\"Подписаться на конкретный ресурс\",\"subscribeResourceHint\":\"Необязательно. При публикации будет запрошена подписка Feishu, и Flow будет получать только события этого ресурса.\",\"managementRequired\":\"Сначала включите управление подписками у этого источника в настройках.\",\"incompatibleChats\":\"Выбранные события не поддерживают фильтр чатов. Удалите прежний фильтр.\",\"incompatibleResource\":\"Ресурс не соответствует событиям. Отключите подписку и выберите совместимые события.\",\"removeFilter\":\"Удалить фильтр\",\"documentType\":\"Тип документа\",\"documentTypes\":{\"doc\":\"Старый документ\",\"docx\":\"Документ\",\"sheet\":\"Таблица\",\"bitable\":\"Base\",\"file\":\"Файл\",\"folder\":\"Папка\"},\"resourceIds\":{\"document\":\"Токен документа\",\"calendar\":\"ID календаря\",\"approval\":\"Код определения согласования\"},\"resourceHints\":{\"document\":\"Введите токен документа или Base, а не полный URL.\",\"calendar\":\"Введите ID календаря для отслеживания изменений встреч.\",\"approval\":\"Введите код определения, а не ID экземпляра. Поддерживаются только старые бизнес-события согласования.\"},\"connectApp\":\"Подключить приложение\",\"connectAppHint\":\"Connector откроется в новой вкладке. Используйте команду текущего Flow. После подключения и возвращения список обновится автоматически.\",\"provider\":\"Провайдер\",\"slackSecretsHint\":\"Signing Secret принадлежит приложению Slack и используется всеми его источниками. После замены нужна повторная проверка всех источников.\",\"setupSlack\":\"Настройте Slack Events API\",\"setupSlackHint\":\"Укажите адрес ниже как Request URL приложения и подпишитесь на app_mention и message.im. Общие каналы Slack Connect исключены.\",\"slackConnectHint\":\"Установите приложение Slack через Bot OAuth. Установка определяется проверенным ID пользователя бота.\",\"intercomConnectHint\":\"Выберите подключение рабочего пространства с установленным приложением Intercom.\",\"intercomSecretsHint\":\"Введите ID приложения и Client Secret из Developer Hub.\",\"setupIntercom\":\"Настройте вебхуки Intercom\",\"setupIntercomHint\":\"Укажите URL и темы в Developer Hub, затем отправьте ping для проверки. Ответы администраторов не запускают поток.\",\"sentryConnectHint\":\"Выберите подключение организации Sentry с установленной интеграцией.\",\"sentrySecretsHint\":\"Введите UUID интеграции, UUID установки и Client Secret. Установка проверяется для подключённой организации.\",\"setupSentry\":\"Настройте оповещения Sentry\",\"setupSentryHint\":\"Укажите URL в интеграции, включите действие Issue Alert и отправьте тестовое оповещение перед публикацией.\",\"zoomConnectHint\":\"Выберите подключение Zoom ведущего встреч.\",\"zoomSecretsHint\":\"Введите Client ID и Webhook Secret Token из Zoom Marketplace.\",\"setupZoom\":\"Настройте события записи Zoom\",\"setupZoomHint\":\"Настройте URL для recording.completed и проверьте его в Zoom Marketplace. Принимаются записи встреч подключённого ведущего.\",\"firefliesConnectHint\":\"Выберите подключение Fireflies с доступом к встречам.\",\"firefliesSecretsHint\":\"Введите Signing Secret, настроенный для этого URL в Webhooks V2.\",\"setupFireflies\":\"Настройте Fireflies Webhooks V2\",\"setupFirefliesHint\":\"Настройте URL, Signing Secret и события V2. Перед публикацией отправьте событие доступной встречи. Расшифровка и резюме запускаются отдельно.\",\"jiraConnectHint\":\"Выберите OAuth-подключение Jira Cloud с правами управления вебхуками.\",\"jiraSetupHint\":\"Укажите ключ или ID проекта. Публикация первого Flow создаёт вебхук; Connector продлевает его до истечения срока и удаляет после остановки последнего потребителя. Домен публичного HTTPS-адреса должен быть разрешён OAuth-приложением.\",\"setupJira\":\"Автоматическая подписка на проект Jira\",\"jiraEventsHint\":\"Проект использует общий вебхук. Каждый Flow выбирает события задач и комментариев.\",\"jiraProject\":\"Ключ или ID проекта Jira\",\"subscription\":{\"idle\":\"Автоматическая подписка при публикации первого Flow\",\"pending\":\"Создание или продление вебхука\",\"ready\":\"Вебхук активен\",\"error\":\"Вебхук недоступен. Проверьте подключение и повторите публикацию\"},\"accountIdentity\":\"Идентификатор подключённого аккаунта\",\"appId\":\"ID приложения\",\"slackAppId\":\"ID приложения Slack\",\"integrationId\":\"UUID интеграции\",\"developerAppId\":\"ID приложения разработчика\",\"organizationId\":\"ID / имя организации\",\"installationId\":\"UUID установки\",\"workspaceId\":\"ID рабочего пространства\",\"verificationToken\":\"Токен проверки\",\"signingSecret\":\"Секрет подписи\",\"webhookSecret\":\"Секретный токен Webhook\",\"encryptKey\":\"Ключ шифрования\",\"clientSecret\":\"Секрет клиента\",\"identityUnknown\":\"Временно недоступно\"}"),
13670
13340
  connectionUsage: {
13671
13341
  "title": "Обзор подключений",
13672
13342
  "needsAttention": "Подключения требуют внимания",
@@ -13847,6 +13517,15 @@ var resources = {
13847
13517
  "deleteImpact": "Вызовы из {{count}} процессов перестанут работать",
13848
13518
  "deleteAnyway": "Всё равно удалить",
13849
13519
  "deleteListeners": "Перестанут получать ошибки: {{count}} обработчиков"
13520
+ },
13521
+ tallyTrigger: {
13522
+ "form": "Форма",
13523
+ "selectForm": "Выберите форму",
13524
+ "loading": "Загрузка форм…",
13525
+ "noForms": "Нет доступных форм.",
13526
+ "unavailable": "Эта форма больше недоступна. Выберите другую.",
13527
+ "failed": "Не удалось загрузить формы.",
13528
+ "retry": "Повторить"
13850
13529
  }
13851
13530
  },
13852
13531
  "fr": {
@@ -14075,217 +13754,7 @@ var resources = {
14075
13754
  "exportSvgFailed": "Impossible d’exporter l’image SVG. Veuillez réessayer.",
14076
13755
  "importInvalid": "Fichier de workflow invalide ou non pris en charge."
14077
13756
  },
14078
- inspector: {
14079
- "outline": "Liste des nœuds",
14080
- "backToOutline": "Retour à la liste des nœuds",
14081
- "emptyOutline": "Aucun nœud pour le moment",
14082
- "triggers": "Déclencheurs",
14083
- "nodes": "Nœuds",
14084
- "multipleSelected": "{{count}} nœuds sélectionnés",
14085
- "account": {
14086
- "contactAdmin": "Vous n’avez pas l’autorisation d’effectuer cette opération. Contactez un administrateur.",
14087
- "accessTitle": "Autorisations d’accès",
14088
- "manageFlowAccess": "Connexions disponibles pour Code",
14089
- "configureAccess": "Choisir un compte",
14090
- "manageAccount": "Gérer les comptes",
14091
- "required": "Compte à connecter",
14092
- "addAccount": "Ajouter un compte",
14093
- "manage": "Gérer",
14094
- "authorizationPending": "Terminez l'autorisation sur la page Connection, puis revenez ici pour actualiser ce compte.",
14095
- "chooseAccount": "Choisir un compte",
14096
- "deferred": "Ne pas configurer maintenant",
14097
- "clearDeferred": "Effacer la sélection",
14098
- "noAccounts": "Aucun compte disponible",
14099
- "connectBeforeRun": "Connectez {{service}} pour que ce bloc puisse être exécuté ou publié.",
14100
- "connectService": "Connecter {{service}}",
14101
- "connection": "Connection",
14102
- "loading": "Chargement des Connections…",
14103
- "oomolBuiltIn": "Compte intégré OOMOL",
14104
- "missing": "Le compte sélectionné pour ce nœud est indisponible. Choisissez un autre compte ou gérez les connexions.",
14105
- "refreshFailed": "Impossible d'actualiser les Connections.",
14106
- "retry": "Réessayer",
14107
- "status": {
14108
- "disconnected": "Cette Connection est déconnectée. Reconnectez-la ou choisissez un autre compte.",
14109
- "error": "Cette Connection présente une erreur. Réparez-la ou choisissez un autre compte.",
14110
- "reauth_required": "Cette Connection doit être autorisée à nouveau. Reconnectez-la ou choisissez un autre compte."
14111
- },
14112
- "statusUnavailable": "Le statut de la Connection est indisponible pour {{action}}.",
14113
- "teamDefault": "Par défaut de l'équipe",
14114
- "title": "Compte",
14115
- "unavailable": "indisponible"
14116
- },
14117
- "close": "Fermer l'inspecteur",
14118
- "configurationRequired": "Configuration requise",
14119
- "diagnostics": "Diagnostics",
14120
- "errors": {
14121
- "jsonObject": "{{label}} doit être un objet JSON.",
14122
- "portDefinitions": "Saisissez des définitions de ports valides."
14123
- },
14124
- "node": {
14125
- "nameDuplicate": "Un nœud portant ce nom existe déjà dans ce graphe.",
14126
- "nameEmpty": "Le nom du nœud ne peut pas être vide.",
14127
- "timeout": "Délai d'expiration (ms)",
14128
- "maxExecutions": "Limite d’exécutions du nœud",
14129
- "maxExecutionsError": "La limite d’exécutions du nœud doit être un entier positif.",
14130
- "timeoutError": "Le délai d'expiration doit être un entier positif exprimé en millisecondes.",
14131
- "title": "Paramètres du nœud",
14132
- "description": "Objectif",
14133
- "describe": "Décrivez le rôle de cette étape.",
14134
- "icon": "Icône",
14135
- "name": "Titre"
14136
- },
14137
- "selectNode": "Sélectionnez un nœud du Brouillon pour l'inspecter et le modifier.",
14138
- "locateNode": "Localiser ce nœud sur le canevas",
14139
- "task": {
14140
- "sharedPermissions": "Utiliser le groupe d’autorisations partagé du Flow",
14141
- "sharedPermissionsHint": "Utilisez toutes les Actions autorisées par le groupe du Flow, sans les ajouter à ce nœud.",
14142
- "addAction": "Ajouter une action",
14143
- "removeAction": "Supprimer l’action",
14144
- "actionAccount": "Compte",
14145
- "chooseAccount": "Choisir un compte",
14146
- "permissionSaveFailed": "Impossible d’enregistrer les autorisations Code. Réessayez.",
14147
- "chatText": "Texte de conversation",
14148
- "connectorAction": "Action Connector",
14149
- "definition": "Définition de la tâche",
14150
- "discardCode": "Abandonner les modifications",
14151
- "editorLoading": "Chargement de l'éditeur…",
14152
- "editorUnavailable": "Impossible de charger l'éditeur de code.",
14153
- "inputPorts": "Ports d'entrée",
14154
- "javascriptModule": "Code",
14155
- "missing": "La tâche référencée n'existe pas.",
14156
- "outputPorts": "Ports de sortie",
14157
- "responseMode": "Mode de réponse",
14158
- "source": "Source",
14159
- "structuredJson": "JSON structuré",
14160
- "retrySave": "Réessayer",
14161
- "additionalInputs": "Entrées supplémentaires"
14162
- },
14163
- "wait": {
14164
- "approval": "Approuver ou refuser",
14165
- "changeNotification": "Changer",
14166
- "continue": "Continuer",
14167
- "mode": "Traitement",
14168
- "inputsLoading": "Chargement des paramètres de notification…",
14169
- "pendingDescription": "La sortie en attente se déclenche une fois au début de l’attente et fournit les liens de confirmation et les données associées. Reliez-la pour envoyer un message ou exécuter d’autres étapes.",
14170
- "prompt": "Invite",
14171
- "promptError": "L’invite doit contenir entre 1 et 1 000 caractères."
14172
- },
14173
- "title": "Inspecteur",
14174
- "sources": {
14175
- "loading": "Chargement des sources d’entrée…",
14176
- "loadFailed": "Impossible de charger les sources d’entrée. Rouvrez le menu pour réessayer.",
14177
- "checkFailed": "Impossible de vérifier cette source.",
14178
- "select": "Sélectionner la source d’entrée",
14179
- "title": "Source d’entrée",
14180
- "sourceMissing": "La source d’entrée d’origine n’existe plus. Choisissez-en une autre.",
14181
- "outputMissing": "« {{output}} » est introuvable dans « {{source}} ». Choisissez à nouveau.",
14182
- "wholeObject": "Objet entier",
14183
- "fieldMissing": "Le champ {{field}} n’est plus déclaré dans « {{output}} ». Choisissez à nouveau.",
14184
- "notReady": "« {{source}} {{handle}} » peut ne pas avoir de valeur lors de cette étape.",
14185
- "sourceConflict": "Ces champs peuvent avoir une valeur en même temps : {{sources}}. Un seul peut être utilisé ici.",
14186
- "incompatibleRight": "Le type de la valeur de droite est incompatible avec cette comparaison.",
14187
- "incompatible": "Incompatible",
14188
- "unverified": "Non vérifié",
14189
- "schemaIncompatible": "Le format des données ne correspond pas.",
14190
- "schemaPathIncompatible": "Le format de « {{path}} » ne correspond pas.",
14191
- "schemaCompareFailed": "Impossible de vérifier le format. Vérifiez le schéma JSON.",
14192
- "binaryIncompatible": "Les données binaires ne peuvent pas être utilisées ici.",
14193
- "artifactIncompatible": "Les données de fichier ne peuvent pas être utilisées ici.",
14194
- "nullableIncompatible": "Une valeur est requise, mais le champ sélectionné peut être vide.",
14195
- "typeIncompatible": "Le type attendu est {{target}}, mais le champ sélectionné est de type {{source}}.",
14196
- "propertyTypeIncompatible": "« {{path}} » doit être de type {{target}}, mais est de type {{source}}.",
14197
- "requiredIncompatible": "La propriété requise « {{property}} » peut être absente.",
14198
- "enumIncompatible": "Certaines valeurs possibles ne sont pas acceptées : {{values}}.",
14199
- "constIncompatible": "Seul {{target}} est accepté, mais le champ sélectionné vaut toujours {{source}}.",
14200
- "constraintSubject": "« {{path}} » ",
14201
- "minLength": "{{subject}}doit contenir au moins {{value}} caractères.",
14202
- "maxLength": "{{subject}}doit contenir au plus {{value}} caractères.",
14203
- "pattern": "{{subject}}doit correspondre à {{value}}.",
14204
- "minimum": "{{subject}}ne peut pas être inférieur à {{value}}.",
14205
- "exclusiveMinimum": "{{subject}}doit être supérieur à {{value}}.",
14206
- "maximum": "{{subject}}ne peut pas être supérieur à {{value}}.",
14207
- "exclusiveMaximum": "{{subject}}doit être inférieur à {{value}}.",
14208
- "multipleOf": "{{subject}}doit être un multiple de {{value}}.",
14209
- "minItems": "{{subject}}doit contenir au moins {{value}} éléments.",
14210
- "maxItems": "{{subject}}doit contenir au plus {{value}} éléments.",
14211
- "minProperties": "{{subject}}doit contenir au moins {{value}} propriétés.",
14212
- "maxProperties": "{{subject}}doit contenir au plus {{value}} propriétés.",
14213
- "integer": "Entier",
14214
- "unknownType": "type inconnu",
14215
- "typeSeparator": " ou "
14216
- },
14217
- "actions": {
14218
- "flowAccess": "Services disponibles",
14219
- "flowAccessHint": "Gérer les connexions partagées par tous les nœuds Code de ce Flow",
14220
- "chooseConnection": "Choisir une connexion {{provider}}",
14221
- "connectionDescription": "La connexion est insérée dans cet appel. L’accès Provider du Flow détermine toujours si elle peut être utilisée.",
14222
- "title": "Actions accessibles au code",
14223
- "search": "Rechercher des actions",
14224
- "description": "Choisissez les actions et les comptes autorisés pour ce code.",
14225
- "empty": "Aucune action correspondante.",
14226
- "remove": "Retirer",
14227
- "default": "Compte par défaut",
14228
- "defaultHint": "Compte utilisé si aucun compte n’est précisé lors de l’appel.",
14229
- "removeAction": "Retirer l’action",
14230
- "explicit": "Choisir explicitement dans le code",
14231
- "connect": "Connecter un compte",
14232
- "refresh": "Actualiser les comptes",
14233
- "aliases": "Mettre à jour les alias enregistrés",
14234
- "add": "Ajouter une action",
14235
- "cancel": "Annuler",
14236
- "loading": "Recherche…",
14237
- "needsAccount": "Connecter un compte",
14238
- "accounts": "{{count}} comptes",
14239
- "public": "Sans compte",
14240
- "allowed": "Comptes autorisés",
14241
- "unavailable": "Indisponible",
14242
- "details": "Détails des connexions",
14243
- "example": "Exemple d’appel",
14244
- "syntax": "Syntaxe d’appel",
14245
- "nested": "Par fournisseur",
14246
- "fullId": "ID complet",
14247
- "copy": "Copier",
14248
- "copied": "Copié",
14249
- "copyError": "Échec de la copie. Sélectionnez le code pour le copier manuellement.",
14250
- "introDescription": "Ajoutez des actions au besoin pour appeler des applications externes via {{context}}.",
14251
- "insertAction": "Insérer le code",
14252
- "chooseAccounts": "Gérer les comptes"
14253
- },
14254
- "comment": {
14255
- "markdown": "Markdown",
14256
- "preview": "Aperçu"
14257
- },
14258
- "ports": {
14259
- "reorder": "Réordonner {{name}}",
14260
- "reorderHint": "Glissez dans le groupe ou utilisez les flèches haut / bas au clavier.",
14261
- "moved": "{{name}} déplacé en position {{position}}.",
14262
- "groupSettings": "Paramètres du groupe",
14263
- "connected": "Connecté",
14264
- "sort": "Réordonner",
14265
- "finishSorting": "Terminer",
14266
- "inputsTitle": "Entrées",
14267
- "requiredInputs": "Obligatoires",
14268
- "optionalInputs": "Facultatifs",
14269
- "noInputs": "Ce nœud ne nécessite pas de données d’entrée.",
14270
- "noOutputs": "Ce nœud ne fournit pas de données de sortie.",
14271
- "outputsTitle": "Sorties",
14272
- "valuesTitle": "Valeurs",
14273
- "columnHandle": "Handle",
14274
- "columnName": "Nom",
14275
- "columnType": "Type",
14276
- "columnValue": "Valeur",
14277
- "builtIn": {
14278
- "cron": { "scheduledAt": "Heure planifiée ayant déclenché cette exécution, au format ISO 8601." },
14279
- "webhook": {
14280
- "headers": "Les en-têtes reçus avec cette requête Webhook.",
14281
- "query": "Les paramètres de requête URL reçus avec cette requête Webhook.",
14282
- "body": "Le corps reçu avec cette requête Webhook.",
14283
- "webhookUrl": "L’URL Webhook ayant reçu cette requête, sans les paramètres de requête."
14284
- }
14285
- },
14286
- "startParametersTitle": "Paramètres de démarrage"
14287
- }
14288
- },
13757
+ inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"Liste des nœuds\",\"backToOutline\":\"Retour à la liste des nœuds\",\"emptyOutline\":\"Aucun nœud pour le moment\",\"triggers\":\"Déclencheurs\",\"nodes\":\"Nœuds\",\"multipleSelected\":\"{{count}} nœuds sélectionnés\",\"account\":{\"contactAdmin\":\"Vous n’avez pas l’autorisation d’effectuer cette opération. Contactez un administrateur.\",\"accessTitle\":\"Autorisations d’accès\",\"manageFlowAccess\":\"Connexions disponibles pour Code\",\"configureAccess\":\"Choisir un compte\",\"manageAccount\":\"Gérer les comptes\",\"required\":\"Compte à connecter\",\"addAccount\":\"Ajouter un compte\",\"manage\":\"Gérer\",\"authorizationPending\":\"Terminez l'autorisation sur la page Connection, puis revenez ici pour actualiser ce compte.\",\"chooseAccount\":\"Choisir un compte\",\"deferred\":\"Ne pas configurer maintenant\",\"clearDeferred\":\"Effacer la sélection\",\"noAccounts\":\"Aucun compte disponible\",\"connectBeforeRun\":\"Connectez {{service}} pour que ce bloc puisse être exécuté ou publié.\",\"connectService\":\"Connecter {{service}}\",\"connection\":\"Connection\",\"loading\":\"Chargement des Connections…\",\"oomolBuiltIn\":\"Compte intégré OOMOL\",\"missing\":\"Le compte sélectionné pour ce nœud est indisponible. Choisissez un autre compte ou gérez les connexions.\",\"refreshFailed\":\"Impossible d'actualiser les Connections.\",\"retry\":\"Réessayer\",\"status\":{\"disconnected\":\"Cette Connection est déconnectée. Reconnectez-la ou choisissez un autre compte.\",\"error\":\"Cette Connection présente une erreur. Réparez-la ou choisissez un autre compte.\",\"reauth_required\":\"Cette Connection doit être autorisée à nouveau. Reconnectez-la ou choisissez un autre compte.\"},\"statusUnavailable\":\"Le statut de la Connection est indisponible pour {{action}}.\",\"teamDefault\":\"Par défaut de l'équipe\",\"title\":\"Compte\",\"unavailable\":\"indisponible\"},\"close\":\"Fermer l'inspecteur\",\"configurationRequired\":\"Configuration requise\",\"diagnostics\":\"Diagnostics\",\"errors\":{\"jsonObject\":\"{{label}} doit être un objet JSON.\",\"portDefinitions\":\"Saisissez des définitions de ports valides.\"},\"node\":{\"nameDuplicate\":\"Un nœud portant ce nom existe déjà dans ce graphe.\",\"nameEmpty\":\"Le nom du nœud ne peut pas être vide.\",\"timeout\":\"Délai d'expiration (ms)\",\"maxExecutions\":\"Limite d’exécutions du nœud\",\"maxExecutionsError\":\"La limite d’exécutions du nœud doit être un entier positif.\",\"timeoutError\":\"Le délai d'expiration doit être un entier positif exprimé en millisecondes.\",\"title\":\"Paramètres du nœud\",\"description\":\"Objectif\",\"describe\":\"Décrivez le rôle de cette étape.\",\"icon\":\"Icône\",\"name\":\"Titre\",\"retry\":\"Réessayer en cas d’erreur\",\"retryCount\":\"Nouvelles tentatives : {{count}} max.\",\"retryInterval\":\"Intervalle\",\"retryError\":\"Indiquez un intervalle entier de 1 à 60 secondes.\",\"retryHint\":\"Le nombre de nouvelles tentatives s’ajoute à la première exécution en cas d’échec. Chaque tentative réexécute le nœud entier et peut répéter des opérations externes. Le délai maximal inclut toutes les tentatives et les intervalles.\",\"retryNone\":\"Aucune nouvelle tentative\",\"retrySeconds\":\"secondes\",\"retryHelp\":\"À propos des nouvelles tentatives\",\"retryOnce\":\"Une nouvelle tentative max.\",\"onError\":\"En cas d’échec\",\"onErrorStop\":\"Arrêter le workflow\",\"onErrorOutput\":\"Sortir vers le port error\",\"onErrorHelp\":\"Gestion des échecs\",\"onErrorHint\":\"Après les nouvelles tentatives, placer l’erreur dans la sortie système error et continuer par les connexions existantes. En cas de succès, error vaut null. Annulation, délais, limites de ressources et résultats indéterminés arrêtent toujours l’exécution.\",\"systemOutputs\":\"Sorties système\",\"systemError\":\"Erreur (système)\",\"errorFields\":{\"error\":\"Informations sur l’erreur en cas d’échec du nœud ; null en cas de réussite.\",\"code\":\"Code identifiant le type d’erreur.\",\"message\":\"Description de l’erreur, avec les informations sensibles masquées.\",\"nodeId\":\"Identifiant du nœud ayant échoué.\",\"nodeName\":\"Nom du nœud au moment de l’échec.\",\"runId\":\"Identifiant de cette exécution du workflow.\",\"executionId\":\"Identifiant de cette exécution du nœud, commun à toutes ses tentatives.\"}},\"selectNode\":\"Sélectionnez un nœud du Brouillon pour l'inspecter et le modifier.\",\"locateNode\":\"Localiser ce nœud sur le canevas\",\"task\":{\"sharedPermissions\":\"Utiliser le groupe d’autorisations partagé du Flow\",\"sharedPermissionsHint\":\"Utilisez toutes les Actions autorisées par le groupe du Flow, sans les ajouter à ce nœud.\",\"addAction\":\"Ajouter une action\",\"removeAction\":\"Supprimer l’action\",\"actionAccount\":\"Compte\",\"chooseAccount\":\"Choisir un compte\",\"permissionSaveFailed\":\"Impossible d’enregistrer les autorisations Code. Réessayez.\",\"chatText\":\"Texte de conversation\",\"connectorAction\":\"Action Connector\",\"definition\":\"Définition de la tâche\",\"discardCode\":\"Abandonner les modifications\",\"editorLoading\":\"Chargement de l'éditeur…\",\"editorUnavailable\":\"Impossible de charger l'éditeur de code.\",\"inputPorts\":\"Ports d'entrée\",\"javascriptModule\":\"Code\",\"missing\":\"La tâche référencée n'existe pas.\",\"outputPorts\":\"Ports de sortie\",\"responseMode\":\"Mode de réponse\",\"source\":\"Source\",\"structuredJson\":\"JSON structuré\",\"retrySave\":\"Réessayer\",\"additionalInputs\":\"Entrées supplémentaires\"},\"wait\":{\"approval\":\"Approuver ou refuser\",\"changeNotification\":\"Changer\",\"continue\":\"Continuer\",\"mode\":\"Traitement\",\"inputsLoading\":\"Chargement des paramètres de notification…\",\"pendingDescription\":\"La sortie en attente se déclenche une fois au début de l’attente et fournit les liens de confirmation et les données associées. Reliez-la pour envoyer un message ou exécuter d’autres étapes.\",\"prompt\":\"Invite\",\"promptError\":\"L’invite doit contenir entre 1 et 1 000 caractères.\"},\"title\":\"Inspecteur\",\"sources\":{\"loading\":\"Chargement des sources d’entrée…\",\"loadFailed\":\"Impossible de charger les sources d’entrée. Rouvrez le menu pour réessayer.\",\"checkFailed\":\"Impossible de vérifier cette source.\",\"select\":\"Sélectionner la source d’entrée\",\"title\":\"Source d’entrée\",\"sourceMissing\":\"La source d’entrée d’origine n’existe plus. Choisissez-en une autre.\",\"outputMissing\":\"« {{output}} » est introuvable dans « {{source}} ». Choisissez à nouveau.\",\"wholeObject\":\"Objet entier\",\"fieldMissing\":\"Le champ {{field}} n’est plus déclaré dans « {{output}} ». Choisissez à nouveau.\",\"notReady\":\"« {{source}} {{handle}} » peut ne pas avoir de valeur lors de cette étape.\",\"sourceConflict\":\"Ces champs peuvent avoir une valeur en même temps : {{sources}}. Un seul peut être utilisé ici.\",\"incompatibleRight\":\"Le type de la valeur de droite est incompatible avec cette comparaison.\",\"incompatible\":\"Incompatible\",\"unverified\":\"Non vérifié\",\"schemaIncompatible\":\"Le format des données ne correspond pas.\",\"schemaPathIncompatible\":\"Le format de « {{path}} » ne correspond pas.\",\"schemaCompareFailed\":\"Impossible de vérifier le format. Vérifiez le schéma JSON.\",\"binaryIncompatible\":\"Les données binaires ne peuvent pas être utilisées ici.\",\"artifactIncompatible\":\"Les données de fichier ne peuvent pas être utilisées ici.\",\"nullableIncompatible\":\"Une valeur est requise, mais le champ sélectionné peut être vide.\",\"typeIncompatible\":\"Le type attendu est {{target}}, mais le champ sélectionné est de type {{source}}.\",\"propertyTypeIncompatible\":\"« {{path}} » doit être de type {{target}}, mais est de type {{source}}.\",\"requiredIncompatible\":\"La propriété requise « {{property}} » peut être absente.\",\"enumIncompatible\":\"Certaines valeurs possibles ne sont pas acceptées : {{values}}.\",\"constIncompatible\":\"Seul {{target}} est accepté, mais le champ sélectionné vaut toujours {{source}}.\",\"constraintSubject\":\"« {{path}} » \",\"minLength\":\"{{subject}}doit contenir au moins {{value}} caractères.\",\"maxLength\":\"{{subject}}doit contenir au plus {{value}} caractères.\",\"pattern\":\"{{subject}}doit correspondre à {{value}}.\",\"minimum\":\"{{subject}}ne peut pas être inférieur à {{value}}.\",\"exclusiveMinimum\":\"{{subject}}doit être supérieur à {{value}}.\",\"maximum\":\"{{subject}}ne peut pas être supérieur à {{value}}.\",\"exclusiveMaximum\":\"{{subject}}doit être inférieur à {{value}}.\",\"multipleOf\":\"{{subject}}doit être un multiple de {{value}}.\",\"minItems\":\"{{subject}}doit contenir au moins {{value}} éléments.\",\"maxItems\":\"{{subject}}doit contenir au plus {{value}} éléments.\",\"minProperties\":\"{{subject}}doit contenir au moins {{value}} propriétés.\",\"maxProperties\":\"{{subject}}doit contenir au plus {{value}} propriétés.\",\"integer\":\"Entier\",\"unknownType\":\"type inconnu\",\"typeSeparator\":\" ou \"},\"actions\":{\"flowAccess\":\"Services disponibles\",\"flowAccessHint\":\"Gérer les connexions partagées par tous les nœuds Code de ce Flow\",\"chooseConnection\":\"Choisir une connexion {{provider}}\",\"connectionDescription\":\"La connexion est insérée dans cet appel. L’accès Provider du Flow détermine toujours si elle peut être utilisée.\",\"title\":\"Actions accessibles au code\",\"search\":\"Rechercher des actions\",\"description\":\"Choisissez les actions et les comptes autorisés pour ce code.\",\"empty\":\"Aucune action correspondante.\",\"remove\":\"Retirer\",\"default\":\"Compte par défaut\",\"defaultHint\":\"Compte utilisé si aucun compte n’est précisé lors de l’appel.\",\"removeAction\":\"Retirer l’action\",\"explicit\":\"Choisir explicitement dans le code\",\"connect\":\"Connecter un compte\",\"refresh\":\"Actualiser les comptes\",\"aliases\":\"Mettre à jour les alias enregistrés\",\"add\":\"Ajouter une action\",\"cancel\":\"Annuler\",\"loading\":\"Recherche…\",\"needsAccount\":\"Connecter un compte\",\"accounts\":\"{{count}} comptes\",\"public\":\"Sans compte\",\"allowed\":\"Comptes autorisés\",\"unavailable\":\"Indisponible\",\"details\":\"Détails des connexions\",\"example\":\"Exemple d’appel\",\"syntax\":\"Syntaxe d’appel\",\"nested\":\"Par fournisseur\",\"fullId\":\"ID complet\",\"copy\":\"Copier\",\"copied\":\"Copié\",\"copyError\":\"Échec de la copie. Sélectionnez le code pour le copier manuellement.\",\"introDescription\":\"Ajoutez des actions au besoin pour appeler des applications externes via {{context}}.\",\"insertAction\":\"Insérer le code\",\"chooseAccounts\":\"Gérer les comptes\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"Aperçu\"},\"ports\":{\"reorder\":\"Réordonner {{name}}\",\"reorderHint\":\"Glissez dans le groupe ou utilisez les flèches haut / bas au clavier.\",\"moved\":\"{{name}} déplacé en position {{position}}.\",\"groupSettings\":\"Paramètres du groupe\",\"connected\":\"Connecté\",\"sort\":\"Réordonner\",\"finishSorting\":\"Terminer\",\"inputsTitle\":\"Entrées\",\"requiredInputs\":\"Obligatoires\",\"optionalInputs\":\"Facultatifs\",\"noInputs\":\"Ce nœud ne nécessite pas de données d’entrée.\",\"noOutputs\":\"Ce nœud ne fournit pas de données de sortie.\",\"outputsTitle\":\"Sorties\",\"valuesTitle\":\"Valeurs\",\"columnHandle\":\"Handle\",\"columnName\":\"Nom\",\"columnType\":\"Type\",\"columnValue\":\"Valeur\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"Heure planifiée ayant déclenché cette exécution, au format ISO 8601.\"},\"webhook\":{\"headers\":\"Les en-têtes reçus avec cette requête Webhook.\",\"query\":\"Les paramètres de requête URL reçus avec cette requête Webhook.\",\"body\":\"Le corps reçu avec cette requête Webhook.\",\"webhookUrl\":\"L’URL Webhook ayant reçu cette requête, sans les paramètres de requête.\"}},\"startParametersTitle\":\"Paramètres de démarrage\"}}"),
14289
13758
  language: { "label": "Langue" },
14290
13759
  notice: {
14291
13760
  "connectorUnconfigured": "Le Connector n’est pas configuré pour ce déploiement.",
@@ -14605,7 +14074,8 @@ var resources = {
14605
14074
  "completed": "Réussie",
14606
14075
  "failed": "Échec",
14607
14076
  "unknown": "État non confirmé"
14608
- }
14077
+ },
14078
+ "errorHandled": "Échec traité"
14609
14079
  },
14610
14080
  sidebar: {
14611
14081
  "createFirstFlow": "Créer un Flow",
@@ -15062,148 +14532,7 @@ var resources = {
15062
14532
  "results": "Résultats",
15063
14533
  "builtIn": "Intégrés"
15064
14534
  },
15065
- eventSources: {
15066
- "required": "Obligatoire",
15067
- "optional": "Facultatif",
15068
- "secretsHint": "Copiez ces deux valeurs depuis les paramètres de chiffrement des événements et rappels de l’application. Les rappels chiffrés sont requis. Lors d’une modification, laissez un secret vide pour conserver sa valeur.",
15069
- "openConsole": "Ouvrir la console développeur Feishu",
15070
- "defaultName": "Source d’événements Feishu",
15071
- "title": "Sources d’événements",
15072
- "description": "Recevez les événements d’une application et partagez-les entre plusieurs Flows.",
15073
- "refresh": "Actualiser",
15074
- "add": "Ajouter une source",
15075
- "loading": "Chargement des sources…",
15076
- "empty": "Aucune source d’événements",
15077
- "emptyDescription": "Connectez une application Feishu pour démarrer des Flows lors d’événements.",
15078
- "edit": "Modifier",
15079
- "disabled": "Désactivée",
15080
- "unverified": "Vérification de l’adresse en attente",
15081
- "ready": "Rappel vérifié",
15082
- "disable": "Désactiver",
15083
- "enable": "Activer",
15084
- "callback": "URL de rappel",
15085
- "originMissing": "Configurez d’abord l’URL publique Integration dans les paramètres du déploiement.",
15086
- "connection": "Connexion",
15087
- "lastReceived": "Dernier événement reçu",
15088
- "never": "Aucun événement reçu",
15089
- "consumers": "Flows publiés",
15090
- "noConsumers": "Aucun Flow publié n’utilise cette source.",
15091
- "deleteConfirm": "Supprimer cette source ?",
15092
- "delete": "Supprimer",
15093
- "cancel": "Annuler",
15094
- "name": "Nom",
15095
- "team": "Équipe Connector",
15096
- "keepSecret": "Laisser vide pour conserver la valeur enregistrée",
15097
- "events": "Événements à recevoir",
15098
- "eventsHint": "Sélectionnez les événements à recevoir et activez les mêmes événements et autorisations dans Feishu. Ce choix ne configure pas l’application. Les rappels interactifs synchrones ne sont pas pris en charge.",
15099
- "manageHint": "Autoriser ce déploiement à gérer les abonnements aux ressources, y compris les abonnements existants et leur suppression automatique lorsqu’aucun Flow publié ne les utilise.",
15100
- "save": "Enregistrer",
15101
- "invalid": "Configuration invalide. Vérifiez la connexion, le tenant et les champs obligatoires.",
15102
- "notFound": "Cette source n’est pas disponible pour la connexion sélectionnée.",
15103
- "conflict": "La source a changé ou est utilisée. Actualisez et vérifiez les Flows et abonnements concernés.",
15104
- "source": "Source d’événements",
15105
- "selectSourceFirst": "Sélectionnez d'abord une source d'événements",
15106
- "noSources": "L’équipe de ce Flow ne possède aucune source Feishu. Vous pouvez en créer une ici.",
15107
- "loadFailed": "Impossible de charger les sources.",
15108
- "searchEvents": "Rechercher un nom ou un identifiant",
15109
- "customEvent": "Ajouter un type personnalisé",
15110
- "addCustom": "Ajouter",
15111
- "noEventMatches": "Aucun événement correspondant",
15112
- "chooseEvents": "Sélectionnez au moins un événement",
15113
- "customInvalid": "Saisissez un identifiant d’événement asynchrone valide.",
15114
- "sourceEventsHint": "Seuls les événements autorisés par cette source sont disponibles.",
15115
- "eventUnavailable": "Événement non autorisé par cette source. Supprimez-le ou modifiez la source.",
15116
- "eventGroups": {
15117
- "messages": "Messages",
15118
- "documents": "Documents",
15119
- "base": "Base",
15120
- "calendar": "Calendrier",
15121
- "approval": "Approbations",
15122
- "contacts": "Contacts",
15123
- "custom": "Événements personnalisés"
15124
- },
15125
- "eventNames": {
15126
- "im_message_receive_v1": "Message reçu",
15127
- "im_message_recalled_v1": "Message retiré",
15128
- "im_message_reaction_created_v1": "Réaction ajoutée",
15129
- "im_chat_member_bot_added_v1": "Bot ajouté au groupe",
15130
- "drive_file_edit_v1": "Document modifié",
15131
- "drive_file_title_updated_v1": "Document renommé",
15132
- "drive_file_created_in_folder_v1": "Fichier ajouté au dossier",
15133
- "drive_file_deleted_v1": "Fichier supprimé",
15134
- "drive_file_bitable_record_changed_v1": "Enregistrements Base modifiés",
15135
- "drive_file_bitable_field_changed_v1": "Champs Base modifiés",
15136
- "calendar_calendar_event_changed_v4": "Événement de calendrier modifié",
15137
- "calendar_calendar_changed_v4": "Calendrier modifié",
15138
- "approval_instance_status_changed_v4": "Statut de l’instance d’approbation modifié",
15139
- "approval_task_status_changed_v4": "Statut de la tâche d’approbation modifié",
15140
- "approval_instance": "Instance d’approbation (ancien format)",
15141
- "contact_user_created_v3": "Employé ajouté",
15142
- "contact_user_updated_v3": "Employé mis à jour",
15143
- "contact_user_deleted_v3": "Employé supprimé"
15144
- },
15145
- "identityUnavailable": "Ce Connector ne fournit pas d’identifiant d’application vérifié. Mettez-le à jour avant de créer la source.",
15146
- "selectApp": "Choisir une application Feishu",
15147
- "configureCallback": "Configurer le rappel",
15148
- "selectAppHint": "Créez une application d’entreprise dans Feishu, puis choisissez Feishu App Bot dans Connector et utilisez son App ID et son App Secret. Les connexions OAuth utilisateur Feishu ne sont pas utilisées ici. Aucun callback n’est nécessaire pour créer l’application.",
15149
- "configureCallbackHint": "Récupérez le Verification Token et configurez l’Encrypt Key dans Événements et callbacks → Paramètres de sécurité. Enregistrez ce formulaire, puis renseignez l’URL générée dans Feishu.",
15150
- "feishuApp": "Application Feishu (Feishu App Bot)",
15151
- "noApplications": "Cette équipe ne possède aucune connexion Feishu App Bot active. Connectez une application pour continuer.",
15152
- "appSourceName": "Événements {{name}}",
15153
- "resourceManagement": "Gestion des abonnements aux ressources",
15154
- "back": "Retour",
15155
- "next": "Suivant",
15156
- "receiving": "Événements reçus",
15157
- "create": "Créer une source d’événements",
15158
- "created": "Source d’événements créée",
15159
- "flowCreateHint": "Cette source appartient à l’équipe du Flow actuel et peut être partagée par plusieurs Flows.",
15160
- "bindFailed": "La source a été créée, mais son association au nœud a échoué. Réessayez.",
15161
- "useSource": "Utiliser cette source",
15162
- "verifyBeforePublish": "Vous pouvez continuer à modifier le Flow. Validez le callback dans Feishu avant de publier.",
15163
- "setupCopy": "1. Copier l’URL de callback",
15164
- "setupFeishu": "2. Configurer les abonnements dans Feishu",
15165
- "setupVerify": "3. Revenir ici pour vérifier",
15166
- "copy": "Copier",
15167
- "copied": "Copié",
15168
- "copyFailed": "Échec de la copie. Sélectionnez l’URL et copiez-la manuellement.",
15169
- "publicCallbackHint": "Cette URL doit être accessible à Feishu sur Internet. Les adresses privées et localhost ne conviennent pas.",
15170
- "setupFeishuHint": "Dans Événements et callbacks → Configuration des événements, choisissez l’envoi vers votre serveur, collez l’URL et enregistrez. Ajoutez les événements ci-dessous et leurs permissions, puis publiez une version selon les exigences de Feishu.",
15171
- "openFeishu": "Ouvrir la console Feishu",
15172
- "manualSubscriptionHint": "La sélection ici n’ajoute pas les événements dans Feishu. Configurez-les aussi dans sa console.",
15173
- "awaitingVerification": "Aucune vérification reçue. Terminez la configuration dans Feishu, puis vérifiez ci-dessous.",
15174
- "callbackVerified": "Callback vérifié. Consultez l’état de réception de la source pour savoir si des événements métier sont arrivés.",
15175
- "checkingVerification": "Vérification…",
15176
- "checkVerification": "Vérifier le callback",
15177
- "specifiedChats": "Conversations précises (facultatif)",
15178
- "specifiedChatsHint": "Saisissez un chat_id par ligne. Laissez vide pour toutes les conversations accessibles à l’application.",
15179
- "subscribeResource": "S’abonner à une ressource précise",
15180
- "subscribeResourceHint": "Facultatif. La publication demandera un abonnement Feishu à cette ressource et limitera ce Flow à ses événements.",
15181
- "managementRequired": "Activez d’abord la gestion des abonnements de cette source dans les paramètres.",
15182
- "incompatibleChats": "Ces événements ne permettent pas de filtrer les conversations. Supprimez le filtre précédent.",
15183
- "incompatibleResource": "La ressource ne correspond pas aux événements. Désactivez l’abonnement et choisissez des événements compatibles.",
15184
- "removeFilter": "Supprimer le filtre",
15185
- "documentType": "Type de document",
15186
- "documentTypes": {
15187
- "doc": "Ancien document",
15188
- "docx": "Document",
15189
- "sheet": "Tableur",
15190
- "bitable": "Base",
15191
- "file": "Fichier",
15192
- "folder": "Dossier"
15193
- },
15194
- "resourceIds": {
15195
- "document": "Token du document",
15196
- "calendar": "ID du calendrier",
15197
- "approval": "Code de définition d’approbation"
15198
- },
15199
- "resourceHints": {
15200
- "document": "Saisissez le token du document ou de la Base, pas son URL complète.",
15201
- "calendar": "Saisissez l’ID du calendrier dont vous souhaitez suivre les changements de rendez-vous.",
15202
- "approval": "Saisissez le code de définition, pas un ID d’instance. Seuls les anciens événements métier d’approbation sont pris en charge."
15203
- },
15204
- "connectApp": "Connecter Feishu App Bot",
15205
- "connectAppHint": "Connector s’ouvre dans un nouvel onglet. Utilisez l’équipe de ce Flow ; la liste sera actualisée à votre retour après la connexion."
15206
- },
14535
+ eventSources: /* @__PURE__ */ JSON.parse("{\"required\":\"Obligatoire\",\"optional\":\"Facultatif\",\"secretsHint\":\"Copiez ces deux valeurs depuis les paramètres de chiffrement des événements et rappels de l’application. Les rappels chiffrés sont requis. Lors d’une modification, laissez un secret vide pour conserver sa valeur.\",\"openConsole\":\"Ouvrir la console développeur\",\"defaultName\":\"Source d’événements d’application\",\"title\":\"Sources d’événements\",\"description\":\"Recevez les événements d’une application et partagez-les entre plusieurs Flows.\",\"refresh\":\"Actualiser\",\"add\":\"Ajouter une source\",\"loading\":\"Chargement des sources…\",\"empty\":\"Aucune source d’événements\",\"emptyDescription\":\"Connectez une application pour démarrer les Flows lors des événements.\",\"edit\":\"Modifier\",\"disabled\":\"Désactivée\",\"unverified\":\"Vérification de l’adresse en attente\",\"ready\":\"Rappel vérifié\",\"disable\":\"Désactiver\",\"enable\":\"Activer\",\"callback\":\"URL de rappel\",\"originMissing\":\"Configurez d’abord l’URL publique Integration dans les paramètres du déploiement.\",\"connection\":\"Connexion\",\"lastReceived\":\"Dernier événement reçu\",\"never\":\"Aucun événement reçu\",\"consumers\":\"Flows publiés\",\"noConsumers\":\"Aucun Flow publié n’utilise cette source.\",\"deleteConfirm\":\"Supprimer cette source ?\",\"delete\":\"Supprimer\",\"cancel\":\"Annuler\",\"name\":\"Nom\",\"team\":\"Équipe Connector\",\"keepSecret\":\"Laisser vide pour conserver la valeur enregistrée\",\"events\":\"Événements à recevoir\",\"eventsHint\":\"Sélectionnez les événements à recevoir et activez les mêmes événements et autorisations dans Feishu. Ce choix ne configure pas l’application. Les rappels interactifs synchrones ne sont pas pris en charge.\",\"manageHint\":\"Autoriser ce déploiement à gérer les abonnements aux ressources, y compris les abonnements existants et leur suppression automatique lorsqu’aucun Flow publié ne les utilise.\",\"save\":\"Enregistrer\",\"invalid\":\"Configuration invalide. Vérifiez la connexion, le tenant et les champs obligatoires.\",\"notFound\":\"Cette source n’est pas disponible pour la connexion sélectionnée.\",\"conflict\":\"La source a changé ou est utilisée. Actualisez et vérifiez les Flows et abonnements concernés.\",\"source\":\"Source d’événements\",\"selectSourceFirst\":\"Sélectionnez d'abord une source d'événements\",\"noSources\":\"Aucune source correspondante. Créez une source pour continuer.\",\"loadFailed\":\"Impossible de charger les sources.\",\"searchEvents\":\"Rechercher un nom ou un identifiant\",\"customEvent\":\"Ajouter un type personnalisé\",\"addCustom\":\"Ajouter\",\"noEventMatches\":\"Aucun événement correspondant\",\"chooseEvents\":\"Sélectionnez au moins un événement\",\"customInvalid\":\"Saisissez un identifiant d’événement asynchrone valide.\",\"sourceEventsHint\":\"Seuls les événements autorisés par cette source sont disponibles.\",\"eventUnavailable\":\"Événement non autorisé par cette source. Supprimez-le ou modifiez la source.\",\"eventGroups\":{\"messages\":\"Messages\",\"documents\":\"Documents\",\"base\":\"Base\",\"calendar\":\"Calendrier\",\"approval\":\"Approbations\",\"contacts\":\"Contacts\",\"custom\":\"Événements personnalisés\"},\"eventNames\":{\"im_message_receive_v1\":\"Message reçu\",\"im_message_recalled_v1\":\"Message retiré\",\"im_message_reaction_created_v1\":\"Réaction ajoutée\",\"im_chat_member_bot_added_v1\":\"Bot ajouté au groupe\",\"drive_file_edit_v1\":\"Document modifié\",\"drive_file_title_updated_v1\":\"Document renommé\",\"drive_file_created_in_folder_v1\":\"Fichier ajouté au dossier\",\"drive_file_deleted_v1\":\"Fichier supprimé\",\"drive_file_bitable_record_changed_v1\":\"Enregistrements Base modifiés\",\"drive_file_bitable_field_changed_v1\":\"Champs Base modifiés\",\"calendar_calendar_event_changed_v4\":\"Événement de calendrier modifié\",\"calendar_calendar_changed_v4\":\"Calendrier modifié\",\"approval_instance_status_changed_v4\":\"Statut de l’instance d’approbation modifié\",\"approval_task_status_changed_v4\":\"Statut de la tâche d’approbation modifié\",\"approval_instance\":\"Instance d’approbation (ancien format)\",\"contact_user_created_v3\":\"Employé ajouté\",\"contact_user_updated_v3\":\"Employé mis à jour\",\"contact_user_deleted_v3\":\"Employé supprimé\"},\"identityUnavailable\":\"Ce Connector ne fournit pas d’identifiant d’application vérifié. Mettez-le à jour avant de créer la source.\",\"selectApp\":\"Choisir une application\",\"configureCallback\":\"Configurer le rappel\",\"selectAppHint\":\"Créez une application d’entreprise dans Feishu, puis choisissez Feishu App Bot dans Connector et utilisez son App ID et son App Secret. Les connexions OAuth utilisateur Feishu ne sont pas utilisées ici. Aucun callback n’est nécessaire pour créer l’application.\",\"configureCallbackHint\":\"Récupérez le Verification Token et configurez l’Encrypt Key dans Événements et callbacks → Paramètres de sécurité. Enregistrez ce formulaire, puis renseignez l’URL générée dans Feishu.\",\"feishuApp\":\"Application Feishu (Feishu App Bot)\",\"noApplications\":\"Aucune connexion active correspondante. Connectez une application.\",\"appSourceName\":\"Événements {{name}}\",\"resourceManagement\":\"Gestion des abonnements aux ressources\",\"back\":\"Retour\",\"next\":\"Suivant\",\"receiving\":\"Événements reçus\",\"create\":\"Créer une source d’événements\",\"created\":\"Source d’événements créée\",\"flowCreateHint\":\"Cette source appartient à l’équipe du Flow actuel et peut être partagée par plusieurs Flows.\",\"bindFailed\":\"La source a été créée, mais son association au nœud a échoué. Réessayez.\",\"useSource\":\"Utiliser cette source\",\"verifyBeforePublish\":\"Vous pouvez continuer à modifier. Vérifiez le callback avant publication.\",\"setupCopy\":\"1. Copier l’URL de callback\",\"setupFeishu\":\"2. Configurer les abonnements dans Feishu\",\"setupVerify\":\"3. Revenir ici pour vérifier\",\"copy\":\"Copier\",\"copied\":\"Copié\",\"copyFailed\":\"Échec de la copie. Sélectionnez l’URL et copiez-la manuellement.\",\"publicCallbackHint\":\"Le fournisseur doit pouvoir accéder à cette URL via Internet public.\",\"setupFeishuHint\":\"Dans Événements et callbacks → Configuration des événements, choisissez l’envoi vers votre serveur, collez l’URL et enregistrez. Ajoutez les événements ci-dessous et leurs permissions, puis publiez une version selon les exigences de Feishu.\",\"openFeishu\":\"Ouvrir la console Feishu\",\"manualSubscriptionHint\":\"Configurez aussi les événements dans la console de l’application.\",\"awaitingVerification\":\"Callback non vérifié. Terminez la configuration de l’application.\",\"callbackVerified\":\"Callback vérifié. Consultez l’état de réception de la source pour savoir si des événements métier sont arrivés.\",\"checkingVerification\":\"Vérification…\",\"checkVerification\":\"Vérifier le callback\",\"specifiedChats\":\"Conversations précises (facultatif)\",\"specifiedChatsHint\":\"Saisissez un chat_id par ligne. Laissez vide pour toutes les conversations accessibles à l’application.\",\"subscribeResource\":\"S’abonner à une ressource précise\",\"subscribeResourceHint\":\"Facultatif. La publication demandera un abonnement Feishu à cette ressource et limitera ce Flow à ses événements.\",\"managementRequired\":\"Activez d’abord la gestion des abonnements de cette source dans les paramètres.\",\"incompatibleChats\":\"Ces événements ne permettent pas de filtrer les conversations. Supprimez le filtre précédent.\",\"incompatibleResource\":\"La ressource ne correspond pas aux événements. Désactivez l’abonnement et choisissez des événements compatibles.\",\"removeFilter\":\"Supprimer le filtre\",\"documentType\":\"Type de document\",\"documentTypes\":{\"doc\":\"Ancien document\",\"docx\":\"Document\",\"sheet\":\"Tableur\",\"bitable\":\"Base\",\"file\":\"Fichier\",\"folder\":\"Dossier\"},\"resourceIds\":{\"document\":\"Token du document\",\"calendar\":\"ID du calendrier\",\"approval\":\"Code de définition d’approbation\"},\"resourceHints\":{\"document\":\"Saisissez le token du document ou de la Base, pas son URL complète.\",\"calendar\":\"Saisissez l’ID du calendrier dont vous souhaitez suivre les changements de rendez-vous.\",\"approval\":\"Saisissez le code de définition, pas un ID d’instance. Seuls les anciens événements métier d’approbation sont pris en charge.\"},\"connectApp\":\"Connecter une application\",\"connectAppHint\":\"Connector s’ouvre dans un nouvel onglet. Utilisez l’équipe de ce Flow ; la liste sera actualisée à votre retour après la connexion.\",\"provider\":\"Fournisseur\",\"slackSecretsHint\":\"Le Signing Secret appartient à l’application Slack et est partagé entre ses sources. Sa rotation nécessite une nouvelle vérification de toutes les sources.\",\"setupSlack\":\"Configurer Slack Events API\",\"setupSlackHint\":\"Utilisez cette adresse comme Request URL et abonnez-vous à app_mention et message.im. Les canaux partagés Slack Connect sont exclus.\",\"slackConnectHint\":\"Installez l’application Slack via Bot OAuth. L’identité vérifiée du bot détermine l’installation autorisée.\",\"intercomConnectHint\":\"Choisissez la connexion de l’espace où l’application Intercom est installée.\",\"intercomSecretsHint\":\"Saisissez l’ID de l’application et son Client Secret depuis Developer Hub.\",\"setupIntercom\":\"Configurer les webhooks Intercom\",\"setupIntercomHint\":\"Configurez cette URL et les sujets dans Developer Hub, puis envoyez un ping. Les réponses des administrateurs ne démarrent pas de flux.\",\"sentryConnectHint\":\"Choisissez la connexion de l’organisation Sentry où l’intégration est installée.\",\"sentrySecretsHint\":\"Saisissez les UUID d’intégration et d’installation et le Client Secret. L’installation est vérifiée dans l’organisation connectée.\",\"setupSentry\":\"Configurer les alertes Sentry\",\"setupSentryHint\":\"Configurez cette URL, activez l’action Issue Alert et envoyez une alerte de test avant publication.\",\"zoomConnectHint\":\"Choisissez la connexion Zoom de l’hôte des réunions.\",\"zoomSecretsHint\":\"Saisissez le Client ID et le Webhook Secret Token depuis Zoom Marketplace.\",\"setupZoom\":\"Configurer les événements Zoom\",\"setupZoomHint\":\"Configurez cette URL pour recording.completed et validez-la dans Zoom Marketplace. Seuls les enregistrements de l’hôte connecté sont acceptés.\",\"firefliesConnectHint\":\"Choisissez une connexion Fireflies ayant accès aux réunions.\",\"firefliesSecretsHint\":\"Saisissez le Signing Secret configuré pour cette URL dans Webhooks V2.\",\"setupFireflies\":\"Configurer Fireflies Webhooks V2\",\"setupFirefliesHint\":\"Configurez URL, Signing Secret et événements V2, puis envoyez un événement de réunion accessible avant publication. Transcription et résumé sont indépendants.\",\"jiraConnectHint\":\"Choisissez une connexion OAuth Jira Cloud autorisée à gérer les webhooks.\",\"jiraSetupHint\":\"Indiquez une clé ou un ID de projet. Le premier Flow publié crée le webhook, renouvelé avant expiration et supprimé après l’arrêt du dernier consommateur. L’application OAuth doit autoriser le domaine HTTPS public de rappel.\",\"setupJira\":\"Abonnement automatique au projet Jira\",\"jiraEventsHint\":\"Un webhook partagé couvre le projet. Chaque Flow filtre les événements de tickets et de commentaires.\",\"jiraProject\":\"Clé ou ID du projet Jira\",\"subscription\":{\"idle\":\"Abonnement automatique à la publication du premier Flow\",\"pending\":\"Création ou renouvellement du webhook\",\"ready\":\"Webhook actif\",\"error\":\"Webhook indisponible. Vérifiez la connexion et réessayez la publication\"},\"accountIdentity\":\"Identité du compte connecté\",\"appId\":\"ID de l’application\",\"slackAppId\":\"ID de l’application Slack\",\"integrationId\":\"UUID de l’intégration\",\"developerAppId\":\"ID de l’application développeur\",\"organizationId\":\"ID / identifiant de l’organisation\",\"installationId\":\"UUID de l’installation\",\"workspaceId\":\"ID de l’espace de travail\",\"verificationToken\":\"Jeton de vérification\",\"signingSecret\":\"Secret de signature\",\"webhookSecret\":\"Jeton secret Webhook\",\"encryptKey\":\"Clé de chiffrement\",\"clientSecret\":\"Secret client\",\"identityUnknown\":\"Temporairement indisponible\"}"),
15207
14536
  connectionUsage: {
15208
14537
  "title": "Vue d’ensemble des connexions",
15209
14538
  "needsAttention": "Connexions à vérifier",
@@ -15384,6 +14713,15 @@ var resources = {
15384
14713
  "deleteImpact": "Les appels de {{count}} workflows échoueront",
15385
14714
  "deleteAnyway": "Supprimer quand même",
15386
14715
  "deleteListeners": "Écouteurs qui ne recevront plus d’erreurs : {{count}}"
14716
+ },
14717
+ tallyTrigger: {
14718
+ "form": "Formulaire",
14719
+ "selectForm": "Choisir un formulaire",
14720
+ "loading": "Chargement des formulaires…",
14721
+ "noForms": "Aucun formulaire accessible.",
14722
+ "unavailable": "Ce formulaire n’est plus accessible. Choisissez-en un autre.",
14723
+ "failed": "Impossible de charger les formulaires.",
14724
+ "retry": "Réessayer"
15387
14725
  }
15388
14726
  }
15389
14727
  };
@@ -15535,10 +14873,10 @@ function EventSources({ client, teams, onSourcesChange, notify }) {
15535
14873
  }), /* @__PURE__ */ jsxs("p", {
15536
14874
  className: "mt-1 text-sm text-muted-foreground",
15537
14875
  children: [
15538
- source.appId,
14876
+ source.appId ?? t("eventSources.identityUnknown"),
15539
14877
  " ·",
15540
14878
  " ",
15541
- t(source.enabled ? source.verifiedAt == null ? "eventSources.unverified" : source.lastReceivedAt == null ? "eventSources.ready" : "eventSources.receiving" : "eventSources.disabled")
14879
+ source.provider === "jira" && source.enabled ? t(`eventSources.subscription.${source.subscriptionStatus ?? "idle"}`) : t(source.enabled ? source.verifiedAt == null ? "eventSources.unverified" : source.lastReceivedAt == null ? "eventSources.ready" : "eventSources.receiving" : "eventSources.disabled")
15542
14880
  ]
15543
14881
  })] }), /* @__PURE__ */ jsxs("div", {
15544
14882
  className: "flex gap-2",
@@ -15626,8 +14964,15 @@ function EventSources({ client, teams, onSourcesChange, notify }) {
15626
14964
  ]
15627
14965
  });
15628
14966
  }
15629
- function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange, client, teams, onSaved, onCancel, notify }) {
14967
+ function SourceForm({ source, sourceKind, existingNames = [], fixedTeamId, onPendingChange, client, teams, onSaved, onCancel, notify }) {
15630
14968
  const t = useTranslate();
14969
+ const [kind, setKind] = useState(source == null ? sourceKind ?? "feishu" : eventSourceKind(source.provider));
14970
+ const presentation = eventSourcePresentations[kind];
14971
+ const [applicationId, setApplicationId] = useState(source != null && source.provider !== "feishu" && source.provider !== "feishu_app_bot" ? source.appId ?? "" : "");
14972
+ const [organizationId, setOrganizationId] = useState(source?.organizationId ?? "");
14973
+ const [installationId, setInstallationId] = useState(source?.installationId ?? "");
14974
+ const [project, setProject] = useState(source?.projectKey ?? "");
14975
+ const [workspaceId, setWorkspaceId] = useState(source?.workspaceId ?? "");
15631
14976
  const [step, setStep] = useState(source == null ? 1 : 2);
15632
14977
  const [name, setName] = useState(source?.name ?? t("eventSources.defaultName"));
15633
14978
  const [nameEdited, setNameEdited] = useState(false);
@@ -15641,7 +14986,7 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15641
14986
  const [attempt, setAttempt] = useState(0);
15642
14987
  const [token, setToken] = useState("");
15643
14988
  const [key, setKey] = useState("");
15644
- const [events, setEvents] = useState(source?.eventTypes ?? ["im.message.receive_v1"]);
14989
+ const [events, setEvents] = useState(source?.eventTypes ?? [...presentation.events]);
15645
14990
  const [managed, setManaged] = useState(source?.manageSubscriptions ?? false);
15646
14991
  const [pending, setPending] = useState(false);
15647
14992
  useEffect(() => {
@@ -15649,7 +14994,7 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15649
14994
  const controller = new AbortController();
15650
14995
  setConnections(void 0);
15651
14996
  setConnectionError(void 0);
15652
- client.listEventSourceConnections(teamId || null, controller.signal).then((items) => {
14997
+ client.listEventSourceConnections(teamId || null, controller.signal, kind).then((items) => {
15653
14998
  if (!controller.signal.aborted) setConnections(items);
15654
14999
  }, (cause) => {
15655
15000
  if (!controller.signal.aborted) setConnectionError(errorNotice(cause, t).message);
@@ -15660,14 +15005,16 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15660
15005
  source,
15661
15006
  teamId,
15662
15007
  attempt,
15663
- t
15008
+ t,
15009
+ kind,
15010
+ presentation.provider
15664
15011
  ]);
15665
15012
  useEffect(() => {
15666
15013
  if (source != null) return;
15667
15014
  let current = true;
15668
15015
  setPageError(void 0);
15669
15016
  setConnectionPage(void 0);
15670
- client.createConnectorConnectionPage("feishu_app_bot", void 0, teamId || void 0).then((url) => {
15017
+ client.createConnectorConnectionPage(presentation.provider, void 0, teamId || void 0).then((url) => {
15671
15018
  if (current) setConnectionPage(url);
15672
15019
  }, (cause) => {
15673
15020
  if (current) setPageError(errorNotice(cause, t).message);
@@ -15680,7 +15027,9 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15680
15027
  source,
15681
15028
  teamId,
15682
15029
  attempt,
15683
- t
15030
+ t,
15031
+ kind,
15032
+ presentation.provider
15684
15033
  ]);
15685
15034
  useEffect(() => {
15686
15035
  const refreshAfterConnection = () => {
@@ -15693,7 +15042,7 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15693
15042
  }, []);
15694
15043
  const connection = connections?.find((item) => item.connectionId == connectionId && item.status == "active");
15695
15044
  const appId = source?.appId ?? connection?.providerAccountId;
15696
- const identified = appId != null && /^cli_[a-zA-Z0-9]+$/.test(appId);
15045
+ const identified = source != null || appId != null && presentation.identity.test(appId);
15697
15046
  function selectApp(value) {
15698
15047
  setConnectionId(value);
15699
15048
  if (nameEdited) return;
@@ -15715,23 +15064,75 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15715
15064
  setPending(true);
15716
15065
  onPendingChange?.(true);
15717
15066
  try {
15718
- const saved = source == null ? await client.createEventSource({
15719
- version: 1,
15720
- name,
15721
- connectionId,
15722
- teamId: teamId || null,
15723
- verificationToken: token,
15724
- encryptKey: key,
15725
- eventTypes: events,
15726
- manageSubscriptions: managed
15727
- }) : await client.updateEventSource(source.sourceId, {
15067
+ let saved;
15068
+ if (source == null) {
15069
+ const common = {
15070
+ version: 1,
15071
+ name,
15072
+ connectionId,
15073
+ teamId: teamId || null,
15074
+ eventTypes: events
15075
+ };
15076
+ let input;
15077
+ switch (kind) {
15078
+ case "jira":
15079
+ input = {
15080
+ ...common,
15081
+ kind,
15082
+ project
15083
+ };
15084
+ break;
15085
+ case "feishu":
15086
+ input = {
15087
+ ...common,
15088
+ verificationToken: token,
15089
+ encryptKey: key,
15090
+ manageSubscriptions: managed
15091
+ };
15092
+ break;
15093
+ case "slack":
15094
+ input = {
15095
+ ...common,
15096
+ kind,
15097
+ appId: applicationId,
15098
+ workspaceId,
15099
+ signingSecret: key
15100
+ };
15101
+ break;
15102
+ case "fireflies":
15103
+ input = {
15104
+ ...common,
15105
+ kind,
15106
+ signingSecret: key
15107
+ };
15108
+ break;
15109
+ case "zoom":
15110
+ case "intercom":
15111
+ input = {
15112
+ ...common,
15113
+ kind,
15114
+ appId: applicationId,
15115
+ signingSecret: key
15116
+ };
15117
+ break;
15118
+ case "sentry": input = {
15119
+ ...common,
15120
+ kind,
15121
+ appId: applicationId,
15122
+ installationId,
15123
+ organizationId,
15124
+ signingSecret: key
15125
+ };
15126
+ }
15127
+ saved = await client.createEventSource(input);
15128
+ } else saved = await client.updateEventSource(source.sourceId, {
15728
15129
  version: 1,
15729
15130
  expectedRevision: source.revision,
15730
15131
  name,
15731
15132
  enabled: source.enabled,
15732
15133
  eventTypes: events,
15733
- ...token ? { verificationToken: token } : {},
15734
- ...key ? { encryptKey: key } : {}
15134
+ ...kind === "feishu" && token ? { verificationToken: token } : {},
15135
+ ...key ? kind !== "feishu" ? { signingSecret: key } : { encryptKey: key } : {}
15735
15136
  });
15736
15137
  setToken("");
15737
15138
  setKey("");
@@ -15758,11 +15159,28 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15758
15159
  children: [
15759
15160
  step,
15760
15161
  " / 2 · ",
15761
- t(step == 1 ? "eventSources.selectAppHint" : "eventSources.configureCallbackHint")
15162
+ t(step === 1 ? presentation.connectHint : presentation.configureHint)
15762
15163
  ]
15763
15164
  })]
15764
15165
  }),
15765
15166
  step == 1 ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
15167
+ /* @__PURE__ */ jsx(SourceSelect, {
15168
+ label: t("eventSources.provider"),
15169
+ value: kind,
15170
+ options: Object.entries(eventSourcePresentations).map(([value, item]) => ({
15171
+ value,
15172
+ label: item.label
15173
+ })),
15174
+ disabled: pending || sourceKind != null,
15175
+ onChange: (value) => {
15176
+ const next = value;
15177
+ setKind(next);
15178
+ setConnectionId("");
15179
+ setEvents([...eventSourcePresentations[next].events]);
15180
+ setToken("");
15181
+ setKey("");
15182
+ }
15183
+ }),
15766
15184
  fixedTeamId === void 0 && teams.length > 0 && /* @__PURE__ */ jsx(SourceSelect, {
15767
15185
  label: t("eventSources.team"),
15768
15186
  value: teamId,
@@ -15777,7 +15195,7 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15777
15195
  }
15778
15196
  }),
15779
15197
  /* @__PURE__ */ jsx(SourceSelect, {
15780
- label: t("eventSources.feishuApp"),
15198
+ label: kind === "feishu" ? t("eventSources.feishuApp") : presentation.label,
15781
15199
  value: connectionId,
15782
15200
  options: (connections ?? []).filter((item) => item.status == "active").map((item) => ({
15783
15201
  value: item.connectionId,
@@ -15837,7 +15255,11 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15837
15255
  }),
15838
15256
  identified && /* @__PURE__ */ jsxs("p", {
15839
15257
  className: "m-0 text-xs text-muted-foreground",
15840
- children: ["App ID: ", /* @__PURE__ */ jsx("code", { children: appId })]
15258
+ children: [
15259
+ t(source == null ? "eventSources.accountIdentity" : "eventSources.appId"),
15260
+ ": ",
15261
+ /* @__PURE__ */ jsx("code", { children: appId ?? t("eventSources.identityUnknown") })
15262
+ ]
15841
15263
  })
15842
15264
  ] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [
15843
15265
  /* @__PURE__ */ jsxs("div", {
@@ -15847,7 +15269,11 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15847
15269
  children: connection?.displayName ?? source?.name
15848
15270
  }), /* @__PURE__ */ jsxs("p", {
15849
15271
  className: "m-0 break-all",
15850
- children: ["App ID: ", appId]
15272
+ children: [
15273
+ t(source == null ? "eventSources.accountIdentity" : "eventSources.appId"),
15274
+ ": ",
15275
+ appId ?? t("eventSources.identityUnknown")
15276
+ ]
15851
15277
  })]
15852
15278
  }),
15853
15279
  /* @__PURE__ */ jsxs(Label, {
@@ -15863,12 +15289,65 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15863
15289
  }
15864
15290
  })]
15865
15291
  }),
15866
- /* @__PURE__ */ jsxs("div", {
15292
+ kind !== "feishu" && kind !== "fireflies" && kind !== "jira" && source == null && /* @__PURE__ */ jsxs("div", {
15867
15293
  className: "grid gap-4 sm:grid-cols-2",
15868
- children: [/* @__PURE__ */ jsxs(Label, {
15294
+ children: [
15295
+ /* @__PURE__ */ jsxs(Label, {
15296
+ className: "flex flex-col items-stretch gap-2",
15297
+ children: [t(kind === "slack" ? "eventSources.slackAppId" : kind === "sentry" ? "eventSources.integrationId" : "eventSources.developerAppId"), /* @__PURE__ */ jsx(Input, {
15298
+ required: true,
15299
+ pattern: kind === "slack" ? "A[A-Z0-9]+" : void 0,
15300
+ value: applicationId,
15301
+ onChange: (event) => setApplicationId(event.target.value),
15302
+ disabled: pending
15303
+ })]
15304
+ }),
15305
+ kind === "sentry" && /* @__PURE__ */ jsxs(Label, {
15306
+ className: "flex flex-col items-stretch gap-2",
15307
+ children: [t("eventSources.organizationId"), /* @__PURE__ */ jsx(Input, {
15308
+ required: true,
15309
+ value: organizationId,
15310
+ onChange: (event) => setOrganizationId(event.target.value),
15311
+ disabled: pending
15312
+ })]
15313
+ }),
15314
+ kind === "sentry" && /* @__PURE__ */ jsxs(Label, {
15315
+ className: "flex flex-col items-stretch gap-2",
15316
+ children: [t("eventSources.installationId"), /* @__PURE__ */ jsx(Input, {
15317
+ required: true,
15318
+ value: installationId,
15319
+ onChange: (event) => setInstallationId(event.target.value),
15320
+ disabled: pending
15321
+ })]
15322
+ }),
15323
+ kind === "slack" && /* @__PURE__ */ jsxs(Label, {
15324
+ className: "flex flex-col items-stretch gap-2",
15325
+ children: [t("eventSources.workspaceId"), /* @__PURE__ */ jsx(Input, {
15326
+ required: true,
15327
+ pattern: "T[A-Z0-9]+",
15328
+ value: workspaceId,
15329
+ onChange: (event) => setWorkspaceId(event.target.value),
15330
+ disabled: pending
15331
+ })]
15332
+ })
15333
+ ]
15334
+ }),
15335
+ kind === "jira" && /* @__PURE__ */ jsxs(Label, {
15336
+ className: "flex flex-col items-stretch gap-2",
15337
+ children: [t("eventSources.jiraProject"), /* @__PURE__ */ jsx(Input, {
15338
+ required: true,
15339
+ value: project,
15340
+ maxLength: 256,
15341
+ disabled: pending || source != null,
15342
+ onChange: (event) => setProject(event.target.value)
15343
+ })]
15344
+ }),
15345
+ kind !== "jira" && /* @__PURE__ */ jsxs("div", {
15346
+ className: "grid gap-4 sm:grid-cols-2",
15347
+ children: [kind === "feishu" && /* @__PURE__ */ jsxs(Label, {
15869
15348
  className: "flex flex-col items-stretch gap-2",
15870
15349
  children: [/* @__PURE__ */ jsxs("span", { children: [
15871
- "Verification Token",
15350
+ t("eventSources.verificationToken"),
15872
15351
  " ",
15873
15352
  /* @__PURE__ */ jsx("span", {
15874
15353
  className: "font-normal text-muted-foreground",
@@ -15885,10 +15364,14 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15885
15364
  })]
15886
15365
  }), /* @__PURE__ */ jsxs(Label, {
15887
15366
  className: "flex flex-col items-stretch gap-2",
15888
- children: [/* @__PURE__ */ jsxs("span", { children: ["Encrypt Key ", /* @__PURE__ */ jsx("span", {
15889
- className: "font-normal text-muted-foreground",
15890
- children: t(source == null ? "eventSources.required" : "eventSources.optional")
15891
- })] }), /* @__PURE__ */ jsx(Input, {
15367
+ children: [/* @__PURE__ */ jsxs("span", { children: [
15368
+ t(presentation.secret),
15369
+ " ",
15370
+ /* @__PURE__ */ jsx("span", {
15371
+ className: "font-normal text-muted-foreground",
15372
+ children: t(source == null ? "eventSources.required" : "eventSources.optional")
15373
+ })
15374
+ ] }), /* @__PURE__ */ jsx(Input, {
15892
15375
  type: "password",
15893
15376
  autoComplete: "new-password",
15894
15377
  required: source == null,
@@ -15901,27 +15384,34 @@ function SourceForm({ source, existingNames = [], fixedTeamId, onPendingChange,
15901
15384
  }),
15902
15385
  /* @__PURE__ */ jsx("p", {
15903
15386
  className: "m-0 text-xs leading-5 text-muted-foreground",
15904
- children: t("eventSources.secretsHint")
15387
+ children: t(presentation.secretsHint)
15905
15388
  }),
15906
15389
  /* @__PURE__ */ jsx("a", {
15907
15390
  className: "w-fit text-xs text-foreground underline underline-offset-4",
15908
- href: "https://open.feishu.cn/app",
15391
+ href: presentation.console,
15909
15392
  target: "_blank",
15910
15393
  rel: "noreferrer",
15911
15394
  children: t("eventSources.openConsole")
15912
15395
  }),
15913
15396
  /* @__PURE__ */ jsxs("section", {
15914
15397
  className: "flex flex-col gap-3 border-t border-border pt-5",
15915
- children: [/* @__PURE__ */ jsx(FeishuEventPicker, {
15398
+ children: [kind === "feishu" ? /* @__PURE__ */ jsx(FeishuEventPicker, {
15916
15399
  value: events,
15917
15400
  onChange: setEvents,
15918
15401
  disabled: pending
15919
- }), /* @__PURE__ */ jsx("p", {
15402
+ }) : presentation.events.map((type) => /* @__PURE__ */ jsxs(Label, {
15403
+ className: "flex items-center gap-2",
15404
+ children: [/* @__PURE__ */ jsx(Checkbox, {
15405
+ disabled: pending,
15406
+ checked: events.includes(type),
15407
+ onCheckedChange: (checked) => setEvents(checked ? [...events, type] : events.filter((event) => event !== type))
15408
+ }), /* @__PURE__ */ jsx("code", { children: type })]
15409
+ }, type)), /* @__PURE__ */ jsx("p", {
15920
15410
  className: "m-0 text-xs leading-5 text-muted-foreground",
15921
- children: t("eventSources.eventsHint")
15411
+ children: t(presentation.eventsHint)
15922
15412
  })]
15923
15413
  }),
15924
- source == null && /* @__PURE__ */ jsxs("details", { children: [/* @__PURE__ */ jsx("summary", {
15414
+ source == null && kind === "feishu" && /* @__PURE__ */ jsxs("details", { children: [/* @__PURE__ */ jsx("summary", {
15925
15415
  className: "cursor-pointer text-xs text-muted-foreground",
15926
15416
  children: t("eventSources.resourceManagement")
15927
15417
  }), /* @__PURE__ */ jsxs(Label, {
@@ -16210,7 +15700,7 @@ function renamedPort(previous, next) {
16210
15700
  }
16211
15701
  function renameOutputMapping(mapping, nodeIds, rename) {
16212
15702
  if (rename == null || mapping.kind != "sources") return mapping;
16213
- const sources = mapping.sources.map((source) => source.kind == "node" && nodeIds.has(source.nodeId) && source.output == rename[0] ? {
15703
+ const sources = mapping.sources.map((source) => source.kind == "node" && !source.system && nodeIds.has(source.nodeId) && source.output == rename[0] ? {
16214
15704
  ...source,
16215
15705
  output: rename[1]
16216
15706
  } : source);
@@ -16562,6 +16052,20 @@ function updateSettings(content, nodeId, settings) {
16562
16052
  nodeId,
16563
16053
  value: settings.timeoutMs
16564
16054
  });
16055
+ if (Object.hasOwn(settings, "onError") && node.onError != settings.onError) operations.push({
16056
+ before: node.onError,
16057
+ field: "onError",
16058
+ kind: "graph.node.field.set",
16059
+ nodeId,
16060
+ value: settings.onError
16061
+ });
16062
+ if (Object.hasOwn(settings, "retry") && !dequal(node.retry, settings.retry)) operations.push({
16063
+ before: node.retry,
16064
+ field: "retry",
16065
+ kind: "graph.node.field.set",
16066
+ nodeId,
16067
+ value: settings.retry
16068
+ });
16565
16069
  return operations;
16566
16070
  }
16567
16071
  function setInputValue$1(content, nodeId, handle, value) {
@@ -17324,32 +16828,6 @@ var promptReferencePattern = /\{\{\s*([^{}\s]+)\s*\}\}/g;
17324
16828
  function renamePromptInput(template, before, after) {
17325
16829
  return template.replace(promptReferencePattern, (match, name) => name == before ? "{{" + after + "}}" : match);
17326
16830
  }
17327
- `${JSON.stringify("open-flow-engine/v5")}`, new Set([
17328
- "assert",
17329
- "assert/strict",
17330
- "buffer",
17331
- "console",
17332
- "constants",
17333
- "crypto",
17334
- "events",
17335
- "fs",
17336
- "fs/promises",
17337
- "os",
17338
- "path",
17339
- "path/posix",
17340
- "process",
17341
- "punycode",
17342
- "querystring",
17343
- "stream",
17344
- "stream/promises",
17345
- "stream/web",
17346
- "string_decoder",
17347
- "timers",
17348
- "timers/promises",
17349
- "url",
17350
- "util",
17351
- "zlib"
17352
- ].flatMap((name) => [name, `node:${name}`])), `${JSON.stringify("open-flow-engine/v5/nodejs-compat-v1")}`;
17353
16831
  //#endregion
17354
16832
  //#region src/flow/common/agent.ts
17355
16833
  var schema = lazy$1(() => union([boolean(), strictObject({
@@ -17622,7 +17100,7 @@ var RevisionView = class {
17622
17100
  sourceType(source) {
17623
17101
  const graph = this.graph();
17624
17102
  const node = source.kind === "node" ? graph.nodes[source.nodeId] : void 0;
17625
- const output = source.kind === "node" && node != null ? nodeOutputPorts(node)[source.output] : void 0;
17103
+ const output = source.kind === "node" && node != null ? (source.system ? nodeSystemOutputPorts(node) : nodeOutputPorts(node))[source.output] : void 0;
17626
17104
  const schema = output == null || source.kind !== "node" ? void 0 : sourcePort(output, source.field)?.jsonSchema;
17627
17105
  if (source.kind === "binding") return "string";
17628
17106
  if (schema != null && typeof schema === "object" && !Array.isArray(schema) && "type" in schema && typeof schema.type === "string") return schema.type;
@@ -26888,7 +26366,7 @@ function runProjection(revision, run, events) {
26888
26366
  runId: run.runId,
26889
26367
  finishedAt: event.createdAt,
26890
26368
  error: event.payload.error,
26891
- status: "error"
26369
+ status: event.payload.handled ? "handled" : "error"
26892
26370
  });
26893
26371
  break;
26894
26372
  case "node.log":
@@ -27960,6 +27438,73 @@ function addNodeIntent(option, revision, t) {
27960
27438
  }
27961
27439
  }
27962
27440
  //#endregion
27441
+ //#region src/event-source/common/catalog.generated.json
27442
+ var catalog_generated_default = [
27443
+ {
27444
+ "key": "feishu_app_bot.on_event",
27445
+ "kind": "feishu",
27446
+ "provider": "feishu_app_bot",
27447
+ "triggerId": "feishu_app_bot.on_event",
27448
+ "maximumBodyBytes": 65536,
27449
+ "applicationIngress": false,
27450
+ "managed": false
27451
+ },
27452
+ {
27453
+ "key": "fireflies.on_meeting_ready",
27454
+ "kind": "fireflies",
27455
+ "provider": "fireflies",
27456
+ "triggerId": "fireflies.on_meeting_ready",
27457
+ "maximumBodyBytes": 65536,
27458
+ "applicationIngress": false,
27459
+ "managed": false
27460
+ },
27461
+ {
27462
+ "key": "intercom.on_conversation_event",
27463
+ "kind": "intercom",
27464
+ "provider": "intercom",
27465
+ "triggerId": "intercom.on_conversation_event",
27466
+ "maximumBodyBytes": 65536,
27467
+ "applicationIngress": true,
27468
+ "managed": false
27469
+ },
27470
+ {
27471
+ "key": "jira.on_issue_event",
27472
+ "kind": "jira",
27473
+ "provider": "jira",
27474
+ "triggerId": "jira.on_issue_event",
27475
+ "maximumBodyBytes": 65536,
27476
+ "applicationIngress": false,
27477
+ "managed": true
27478
+ },
27479
+ {
27480
+ "key": "sentry.on_issue_alert",
27481
+ "kind": "sentry",
27482
+ "provider": "sentry",
27483
+ "triggerId": "sentry.on_issue_alert",
27484
+ "maximumBodyBytes": 65536,
27485
+ "applicationIngress": true,
27486
+ "managed": false
27487
+ },
27488
+ {
27489
+ "key": "slackbot.on_event",
27490
+ "kind": "slack",
27491
+ "provider": "slackbot",
27492
+ "triggerId": "slackbot.on_event",
27493
+ "maximumBodyBytes": 65536,
27494
+ "applicationIngress": true,
27495
+ "managed": false
27496
+ },
27497
+ {
27498
+ "key": "zoom.on_recording_ready",
27499
+ "kind": "zoom",
27500
+ "provider": "zoom",
27501
+ "triggerId": "zoom.on_recording_ready",
27502
+ "maximumBodyBytes": 65536,
27503
+ "applicationIngress": true,
27504
+ "managed": false
27505
+ }
27506
+ ];
27507
+ //#endregion
27963
27508
  //#region src/form/common/dateValue.ts
27964
27509
  var import_dayjs_min = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
27965
27510
  (function(t, e) {
@@ -28506,7 +28051,7 @@ function initialEditorValue(schema) {
28506
28051
  return Object.hasOwn(objectValue(schema) ?? {}, "default") || editorComponent(schema) === "json" ? initialValue(schema) : getDefaultValue(typeOfSchema(schema), schema);
28507
28052
  }
28508
28053
  //#endregion
28509
- //#region src/trigger/providers/feishu/config.ts
28054
+ //#region src/workbench/browser/runtime/editor/feishuEventConfig.ts
28510
28055
  function feishuResourceKind(events) {
28511
28056
  if (events.length == 0) return;
28512
28057
  if (events.every((event) => event.startsWith("drive.file."))) return "document";
@@ -28531,7 +28076,7 @@ function applyFlowChanges(draft, changes) {
28531
28076
  }
28532
28077
  function setTriggerEventSource(revision, triggerId, source) {
28533
28078
  const trigger = revision.graph().nodes[triggerId];
28534
- if (trigger?.kind != "integration" || trigger.definition.key != "feishu_app_bot.on_event" || source.provider != trigger.definition.provider) return;
28079
+ if (trigger?.kind != "integration" || !catalog_generated_default.some((entry) => entry.key === trigger.definition.key) || source.provider != trigger.definition.provider) return;
28535
28080
  const content = revision.revision.content;
28536
28081
  const changes = setTriggerConnection$1(content, triggerId, source.connectionId);
28537
28082
  if (changes == null) return;
@@ -28539,9 +28084,21 @@ function setTriggerEventSource(revision, triggerId, source) {
28539
28084
  return [
28540
28085
  ...changes,
28541
28086
  ...updateTriggerConfig$1(content, triggerId, "sourceId", source.sourceId) ?? [],
28542
- ...changed ? updateTriggerConfig$1(content, triggerId, "eventTypes", void 0) ?? [] : [],
28543
- ...changed ? updateTriggerConfig$1(content, triggerId, "resource", void 0) ?? [] : [],
28544
- ...changed ? updateTriggerConfig$1(content, triggerId, "chatIds", void 0) ?? [] : []
28087
+ ...[
28088
+ "eventTypes",
28089
+ "resource",
28090
+ "chatIds",
28091
+ "channelIds"
28092
+ ].flatMap((handle) => {
28093
+ if (trigger.definition.configInputs.some((input) => "handle" in input && input.handle === handle)) return changed ? updateTriggerConfig$1(content, triggerId, handle, void 0) ?? [] : [];
28094
+ return Object.hasOwn(trigger.config, handle) ? [{
28095
+ kind: "graph.trigger.config.set",
28096
+ nodeId: triggerId,
28097
+ name: handle,
28098
+ before: trigger.config[handle],
28099
+ value: void 0
28100
+ }] : [];
28101
+ })
28545
28102
  ];
28546
28103
  }
28547
28104
  function updateTriggerConfig(revision, triggerId, name, value) {
@@ -29135,4 +28692,4 @@ function updateOutputPorts(revision, nodeId, definitions, values) {
29135
28692
  return updateOutputsDefs(content, nodeId, ports, updatedInputMappings(node.outputMappings, node.outputDefs, ports, renamedPort(node.outputDefs, ports), values));
29136
28693
  }
29137
28694
  //#endregion
29138
- export { providerIcon as $, decodeResultList as $t, getDefaultValue as A, string as An, WorkflowExportMenuItem as At, indexAddNodeOptions as B, EmptyMedia as Bt, feishuResourceKind as C, workflowCandidate as Cn, resetInputValues as Ct, editorGroups as D, invalidResponse as Dn, setServiceConnections as Dt, editorComponent as E, inputValue as En, setInputSources as Et, datePickerChange as F, InputGroupInput as Ft, observeResource as G, SourceSelect as Gt, mapSource as H, Badge as Ht, datePickerValue as I, Empty as It, connectorActionPorts as J, EventSourceSetup as Jt, resourceData as K, createI18n as Kt, isDateFormat as L, EmptyContent as Lt, typeOfSchema as M, controlErrorCode as Mn, followWorkbenchLink as Mt, calendarChange as N, InputGroup as Nt, schemaForEditor as O, jsonValue as On, updateStartInputDefs as Ot, calendarDate as P, InputGroupAddon as Pt, actionSummary as Q, allConnectorConnectionsQuery as Qt, addNodeIntent as R, EmptyDescription as Rt, updateWebhook as S, servers as Sn, repairNodeNames as St, defaultValueEditorSchema as T, workflowSelectionTask as Tn, setConnectorConnection as Tt, scopedValue as U, EventSourcesPage as Ut, combineSources as V, EmptyTitle as Vt, CacheResource as W, SourceForm as Wt, semanticNodeIcon as X, WorkbenchClient as Xt, designerGraph as Y, errorNotice as Yt, triggerNodeIcon as Z, randomId as Zt, updateTask as _, openApiFieldIssues as _n, restoreCanvasPresentation as _t, nameCreatedNodes as a, triggerOutputDefinitions as an, Latest as at, updateTriggerConfig as b, selectOperation as bn, setNodeContentHidden as bt, setTriggerConnection as c, connectorActionMetadata as cn, diagnosticMessage as ct, updateNodeDescription as d, workflowFileName as dn, actionWithConnections as dt, decodeTriggerCatalog as en, RunStore as et, updateNodeIcon as f, workflowNameFromFile as fn, connectionCatalog as ft, updateResolution as g, object as gn, removeComments as gt, updateOutputPorts as h, listOperations as hn, flowPresentation as ht, deleteSelection as i, sampleErrorOutputs as in, flowResourceReferences as it, isUnconstrainedSchema as j, ApiError as jn, IdTooltip as jt, valueForEditor as k, record$1 as kn, updateTriggerSchedule as kt, setTriggerEventSource as l, encodeWorkflowFile as ln, diagnosticNodeId as lt, updateNodeSettings as m, triggerConfigValues as mn, commentIds as mt, agentTool as n, sourceOutputLabel as nn, hasRunFilter as nt, setInputValue as o, isJsonObject as on, deriveInspectorDiagnostics as ot, updateNodeName as p, triggerConfigValue as pn, canvasPresentationChange as pt, resourceValue as q, FeishuEventPicker as qt, applyFlowChanges as r, normalizeTriggerOutputs as rn, revisionView as rt, setInputVariable as s, connection as sn, diagnosticItems as st, addNode as t, resolutionOutputPorts as tn, canCancelRun as tt, updateCondition as u, parseWorkflowFile as un, schemaMismatchMessage as ut, updateTaskAdditionalInputs as v, openApiTask as vn, setComment as vt, supportsFeishuChatFilter as w, workflowCandidateGroup as wn, setCodeActions as wt, updateValue as x, serverAddress as xn, setNodePositions as xt, updateTaskPorts as y, securityOptions as yn, setFlowViewport as yt, deriveAddNodeOptions as z, EmptyHeader as zt };
28695
+ export { providerIcon as $, decodeResultList as $t, getDefaultValue as A, record$1 as An, WorkflowExportMenuItem as At, indexAddNodeOptions as B, EmptyMedia as Bt, feishuResourceKind as C, servers as Cn, resetInputValues as Ct, editorGroups as D, inputValue as Dn, setServiceConnections as Dt, editorComponent as E, workflowSelectionTask as En, setInputSources as Et, datePickerChange as F, InputGroupInput as Ft, observeResource as G, SourceSelect as Gt, mapSource as H, Badge as Ht, datePickerValue as I, Empty as It, connectorActionPorts as J, EventSourceSetup as Jt, resourceData as K, createI18n as Kt, isDateFormat as L, EmptyContent as Lt, typeOfSchema as M, ApiError as Mn, followWorkbenchLink as Mt, calendarChange as N, controlErrorCode as Nn, InputGroup as Nt, schemaForEditor as O, invalidResponse as On, updateStartInputDefs as Ot, calendarDate as P, eventSourceKind as Pn, InputGroupAddon as Pt, actionSummary as Q, allConnectorConnectionsQuery as Qt, addNodeIntent as R, EmptyDescription as Rt, updateWebhook as S, serverAddress as Sn, repairNodeNames as St, defaultValueEditorSchema as T, workflowCandidateGroup as Tn, setConnectorConnection as Tt, scopedValue as U, EventSourcesPage as Ut, combineSources as V, EmptyTitle as Vt, CacheResource as W, SourceForm as Wt, semanticNodeIcon as X, WorkbenchClient as Xt, designerGraph as Y, errorNotice as Yt, triggerNodeIcon as Z, randomId as Zt, updateTask as _, object as _n, restoreCanvasPresentation as _t, nameCreatedNodes as a, sampleErrorOutputs as an, Latest as at, updateTriggerConfig as b, securityOptions as bn, setNodeContentHidden as bt, setTriggerConnection as c, connection as cn, diagnosticMessage as ct, updateNodeDescription as d, parseWorkflowFile as dn, actionWithConnections as dt, decodeTriggerCatalog as en, RunStore as et, updateNodeIcon as f, workflowFileName as fn, connectionCatalog as ft, updateResolution as g, listOperations as gn, removeComments as gt, updateOutputPorts as h, triggerConfigValues as hn, flowPresentation as ht, deleteSelection as i, normalizeTriggerOutputs as in, flowResourceReferences as it, isUnconstrainedSchema as j, string as jn, IdTooltip as jt, valueForEditor as k, jsonValue as kn, updateTriggerSchedule as kt, setTriggerEventSource as l, connectorActionMetadata as ln, diagnosticNodeId as lt, updateNodeSettings as m, triggerConfigValue as mn, commentIds as mt, agentTool as n, sourceOutputLabel as nn, hasRunFilter as nt, setInputValue as o, triggerOutputDefinitions as on, deriveInspectorDiagnostics as ot, updateNodeName as p, workflowNameFromFile as pn, canvasPresentationChange as pt, resourceValue as q, FeishuEventPicker as qt, applyFlowChanges as r, sourcePort as rn, revisionView as rt, setInputVariable as s, isJsonObject as sn, diagnosticItems as st, addNode as t, resolutionOutputPorts as tn, canCancelRun as tt, updateCondition as u, encodeWorkflowFile as un, schemaMismatchMessage as ut, updateTaskAdditionalInputs as v, openApiFieldIssues as vn, setComment as vt, supportsFeishuChatFilter as w, workflowCandidate as wn, setCodeActions as wt, updateValue as x, selectOperation as xn, setNodePositions as xt, updateTaskPorts as y, openApiTask as yn, setFlowViewport as yt, deriveAddNodeOptions as z, EmptyHeader as zt };