@antelopejs/dms-automation 0.0.1

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 (305) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +95 -0
  3. package/dist/cluster/bus.d.ts +17 -0
  4. package/dist/cluster/bus.js +82 -0
  5. package/dist/cluster/bus.js.map +1 -0
  6. package/dist/cluster/instance.d.ts +1 -0
  7. package/dist/cluster/instance.js +6 -0
  8. package/dist/cluster/instance.js.map +1 -0
  9. package/dist/cluster/leader.d.ts +7 -0
  10. package/dist/cluster/leader.js +123 -0
  11. package/dist/cluster/leader.js.map +1 -0
  12. package/dist/cluster/mode.d.ts +3 -0
  13. package/dist/cluster/mode.js +25 -0
  14. package/dist/cluster/mode.js.map +1 -0
  15. package/dist/data/procedures-table.d.ts +66 -0
  16. package/dist/data/procedures-table.js +271 -0
  17. package/dist/data/procedures-table.js.map +1 -0
  18. package/dist/data/runs-table.d.ts +23 -0
  19. package/dist/data/runs-table.js +125 -0
  20. package/dist/data/runs-table.js.map +1 -0
  21. package/dist/db/index.d.ts +7 -0
  22. package/dist/db/index.js +24 -0
  23. package/dist/db/index.js.map +1 -0
  24. package/dist/db/models/automation_template.model.d.ts +58 -0
  25. package/dist/db/models/automation_template.model.js +134 -0
  26. package/dist/db/models/automation_template.model.js.map +1 -0
  27. package/dist/db/models/index.d.ts +3 -0
  28. package/dist/db/models/index.js +20 -0
  29. package/dist/db/models/index.js.map +1 -0
  30. package/dist/db/models/procedure.model.d.ts +25 -0
  31. package/dist/db/models/procedure.model.js +28 -0
  32. package/dist/db/models/procedure.model.js.map +1 -0
  33. package/dist/db/models/procedure_run.model.d.ts +34 -0
  34. package/dist/db/models/procedure_run.model.js +39 -0
  35. package/dist/db/models/procedure_run.model.js.map +1 -0
  36. package/dist/db/models/stats.model.d.ts +73 -0
  37. package/dist/db/models/stats.model.js +267 -0
  38. package/dist/db/models/stats.model.js.map +1 -0
  39. package/dist/db/models/type_config.model.d.ts +47 -0
  40. package/dist/db/models/type_config.model.js +51 -0
  41. package/dist/db/models/type_config.model.js.map +1 -0
  42. package/dist/db/tables/action_type_config.table.d.ts +7 -0
  43. package/dist/db/tables/action_type_config.table.js +35 -0
  44. package/dist/db/tables/action_type_config.table.js.map +1 -0
  45. package/dist/db/tables/automation_template.table.d.ts +11 -0
  46. package/dist/db/tables/automation_template.table.js +52 -0
  47. package/dist/db/tables/automation_template.table.js.map +1 -0
  48. package/dist/db/tables/index.d.ts +5 -0
  49. package/dist/db/tables/index.js +22 -0
  50. package/dist/db/tables/index.js.map +1 -0
  51. package/dist/db/tables/procedure.table.d.ts +10 -0
  52. package/dist/db/tables/procedure.table.js +48 -0
  53. package/dist/db/tables/procedure.table.js.map +1 -0
  54. package/dist/db/tables/procedure_run.table.d.ts +13 -0
  55. package/dist/db/tables/procedure_run.table.js +57 -0
  56. package/dist/db/tables/procedure_run.table.js.map +1 -0
  57. package/dist/db/tables/trigger_type_config.table.d.ts +7 -0
  58. package/dist/db/tables/trigger_type_config.table.js +35 -0
  59. package/dist/db/tables/trigger_type_config.table.js.map +1 -0
  60. package/dist/implementations/dms-automation/index.d.ts +19 -0
  61. package/dist/implementations/dms-automation/index.js +50 -0
  62. package/dist/implementations/dms-automation/index.js.map +1 -0
  63. package/dist/index.d.ts +14 -0
  64. package/dist/index.js +121 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/pages/builder.d.ts +10 -0
  67. package/dist/pages/builder.js +28 -0
  68. package/dist/pages/builder.js.map +1 -0
  69. package/dist/pages/category.d.ts +1 -0
  70. package/dist/pages/category.js +10 -0
  71. package/dist/pages/category.js.map +1 -0
  72. package/dist/pages/index.d.ts +6 -0
  73. package/dist/pages/index.js +9 -0
  74. package/dist/pages/index.js.map +1 -0
  75. package/dist/pages/library.d.ts +10 -0
  76. package/dist/pages/library.js +28 -0
  77. package/dist/pages/library.js.map +1 -0
  78. package/dist/pages/overview.d.ts +10 -0
  79. package/dist/pages/overview.js +28 -0
  80. package/dist/pages/overview.js.map +1 -0
  81. package/dist/pages/procedures.d.ts +10 -0
  82. package/dist/pages/procedures.js +72 -0
  83. package/dist/pages/procedures.js.map +1 -0
  84. package/dist/pages/runs.d.ts +11 -0
  85. package/dist/pages/runs.js +61 -0
  86. package/dist/pages/runs.js.map +1 -0
  87. package/dist/routes/action-types.d.ts +23 -0
  88. package/dist/routes/action-types.js +80 -0
  89. package/dist/routes/action-types.js.map +1 -0
  90. package/dist/routes/data-node-types.d.ts +6 -0
  91. package/dist/routes/data-node-types.js +36 -0
  92. package/dist/routes/data-node-types.js.map +1 -0
  93. package/dist/routes/graphSchema.d.ts +92 -0
  94. package/dist/routes/graphSchema.js +60 -0
  95. package/dist/routes/graphSchema.js.map +1 -0
  96. package/dist/routes/index.d.ts +8 -0
  97. package/dist/routes/index.js +11 -0
  98. package/dist/routes/index.js.map +1 -0
  99. package/dist/routes/node-kinds.d.ts +9 -0
  100. package/dist/routes/node-kinds.js +35 -0
  101. package/dist/routes/node-kinds.js.map +1 -0
  102. package/dist/routes/procedures.d.ts +23 -0
  103. package/dist/routes/procedures.js +181 -0
  104. package/dist/routes/procedures.js.map +1 -0
  105. package/dist/routes/runs.d.ts +7 -0
  106. package/dist/routes/runs.js +81 -0
  107. package/dist/routes/runs.js.map +1 -0
  108. package/dist/routes/stats.d.ts +6 -0
  109. package/dist/routes/stats.js +35 -0
  110. package/dist/routes/stats.js.map +1 -0
  111. package/dist/routes/templates.d.ts +20 -0
  112. package/dist/routes/templates.js +243 -0
  113. package/dist/routes/templates.js.map +1 -0
  114. package/dist/routes/trigger-types.d.ts +24 -0
  115. package/dist/routes/trigger-types.js +80 -0
  116. package/dist/routes/trigger-types.js.map +1 -0
  117. package/dist/routes/typeConfigShared.d.ts +22 -0
  118. package/dist/routes/typeConfigShared.js +37 -0
  119. package/dist/routes/typeConfigShared.js.map +1 -0
  120. package/dist/runtime/builtins/actions/http.d.ts +13 -0
  121. package/dist/runtime/builtins/actions/http.js +47 -0
  122. package/dist/runtime/builtins/actions/http.js.map +1 -0
  123. package/dist/runtime/builtins/actions/index.d.ts +2 -0
  124. package/dist/runtime/builtins/actions/index.js +7 -0
  125. package/dist/runtime/builtins/actions/index.js.map +1 -0
  126. package/dist/runtime/builtins/actions/log.d.ts +13 -0
  127. package/dist/runtime/builtins/actions/log.js +49 -0
  128. package/dist/runtime/builtins/actions/log.js.map +1 -0
  129. package/dist/runtime/builtins/data/boolean.d.ts +2 -0
  130. package/dist/runtime/builtins/data/boolean.js +39 -0
  131. package/dist/runtime/builtins/data/boolean.js.map +1 -0
  132. package/dist/runtime/builtins/data/compare.d.ts +2 -0
  133. package/dist/runtime/builtins/data/compare.js +29 -0
  134. package/dist/runtime/builtins/data/compare.js.map +1 -0
  135. package/dist/runtime/builtins/data/constant.d.ts +2 -0
  136. package/dist/runtime/builtins/data/constant.js +29 -0
  137. package/dist/runtime/builtins/data/constant.js.map +1 -0
  138. package/dist/runtime/builtins/data/index.d.ts +2 -0
  139. package/dist/runtime/builtins/data/index.js +20 -0
  140. package/dist/runtime/builtins/data/index.js.map +1 -0
  141. package/dist/runtime/builtins/data/json.d.ts +2 -0
  142. package/dist/runtime/builtins/data/json.js +46 -0
  143. package/dist/runtime/builtins/data/json.js.map +1 -0
  144. package/dist/runtime/builtins/data/math.d.ts +2 -0
  145. package/dist/runtime/builtins/data/math.js +53 -0
  146. package/dist/runtime/builtins/data/math.js.map +1 -0
  147. package/dist/runtime/builtins/data/object.d.ts +2 -0
  148. package/dist/runtime/builtins/data/object.js +121 -0
  149. package/dist/runtime/builtins/data/object.js.map +1 -0
  150. package/dist/runtime/builtins/data/string.d.ts +2 -0
  151. package/dist/runtime/builtins/data/string.js +143 -0
  152. package/dist/runtime/builtins/data/string.js.map +1 -0
  153. package/dist/runtime/builtins/index.d.ts +17 -0
  154. package/dist/runtime/builtins/index.js +24 -0
  155. package/dist/runtime/builtins/index.js.map +1 -0
  156. package/dist/runtime/builtins/nodes/action.d.ts +1 -0
  157. package/dist/runtime/builtins/nodes/action.js +36 -0
  158. package/dist/runtime/builtins/nodes/action.js.map +1 -0
  159. package/dist/runtime/builtins/nodes/data.d.ts +1 -0
  160. package/dist/runtime/builtins/nodes/data.js +28 -0
  161. package/dist/runtime/builtins/nodes/data.js.map +1 -0
  162. package/dist/runtime/builtins/nodes/delay.d.ts +1 -0
  163. package/dist/runtime/builtins/nodes/delay.js +41 -0
  164. package/dist/runtime/builtins/nodes/delay.js.map +1 -0
  165. package/dist/runtime/builtins/nodes/forRange.d.ts +1 -0
  166. package/dist/runtime/builtins/nodes/forRange.js +52 -0
  167. package/dist/runtime/builtins/nodes/forRange.js.map +1 -0
  168. package/dist/runtime/builtins/nodes/foreach.d.ts +1 -0
  169. package/dist/runtime/builtins/nodes/foreach.js +31 -0
  170. package/dist/runtime/builtins/nodes/foreach.js.map +1 -0
  171. package/dist/runtime/builtins/nodes/groupInput.d.ts +1 -0
  172. package/dist/runtime/builtins/nodes/groupInput.js +11 -0
  173. package/dist/runtime/builtins/nodes/groupInput.js.map +1 -0
  174. package/dist/runtime/builtins/nodes/groupOutput.d.ts +1 -0
  175. package/dist/runtime/builtins/nodes/groupOutput.js +11 -0
  176. package/dist/runtime/builtins/nodes/groupOutput.js.map +1 -0
  177. package/dist/runtime/builtins/nodes/if.d.ts +1 -0
  178. package/dist/runtime/builtins/nodes/if.js +23 -0
  179. package/dist/runtime/builtins/nodes/if.js.map +1 -0
  180. package/dist/runtime/builtins/nodes/parallel.d.ts +1 -0
  181. package/dist/runtime/builtins/nodes/parallel.js +34 -0
  182. package/dist/runtime/builtins/nodes/parallel.js.map +1 -0
  183. package/dist/runtime/builtins/nodes/retry.d.ts +1 -0
  184. package/dist/runtime/builtins/nodes/retry.js +46 -0
  185. package/dist/runtime/builtins/nodes/retry.js.map +1 -0
  186. package/dist/runtime/builtins/nodes/setVariable.d.ts +1 -0
  187. package/dist/runtime/builtins/nodes/setVariable.js +31 -0
  188. package/dist/runtime/builtins/nodes/setVariable.js.map +1 -0
  189. package/dist/runtime/builtins/nodes/switch.d.ts +1 -0
  190. package/dist/runtime/builtins/nodes/switch.js +33 -0
  191. package/dist/runtime/builtins/nodes/switch.js.map +1 -0
  192. package/dist/runtime/builtins/nodes/trigger.d.ts +1 -0
  193. package/dist/runtime/builtins/nodes/trigger.js +25 -0
  194. package/dist/runtime/builtins/nodes/trigger.js.map +1 -0
  195. package/dist/runtime/builtins/nodes/tryCatch.d.ts +1 -0
  196. package/dist/runtime/builtins/nodes/tryCatch.js +35 -0
  197. package/dist/runtime/builtins/nodes/tryCatch.js.map +1 -0
  198. package/dist/runtime/builtins/triggers/cron.d.ts +9 -0
  199. package/dist/runtime/builtins/triggers/cron.js +52 -0
  200. package/dist/runtime/builtins/triggers/cron.js.map +1 -0
  201. package/dist/runtime/builtins/triggers/index.d.ts +2 -0
  202. package/dist/runtime/builtins/triggers/index.js +12 -0
  203. package/dist/runtime/builtins/triggers/index.js.map +1 -0
  204. package/dist/runtime/builtins/triggers/manual.d.ts +3 -0
  205. package/dist/runtime/builtins/triggers/manual.js +20 -0
  206. package/dist/runtime/builtins/triggers/manual.js.map +1 -0
  207. package/dist/runtime/builtins/triggers/webhook.d.ts +14 -0
  208. package/dist/runtime/builtins/triggers/webhook.js +90 -0
  209. package/dist/runtime/builtins/triggers/webhook.js.map +1 -0
  210. package/dist/runtime/executionResult.d.ts +6 -0
  211. package/dist/runtime/executionResult.js +3 -0
  212. package/dist/runtime/executionResult.js.map +1 -0
  213. package/dist/runtime/executor.d.ts +9 -0
  214. package/dist/runtime/executor.js +300 -0
  215. package/dist/runtime/executor.js.map +1 -0
  216. package/dist/runtime/flatten.d.ts +3 -0
  217. package/dist/runtime/flatten.js +188 -0
  218. package/dist/runtime/flatten.js.map +1 -0
  219. package/dist/runtime/nodeKinds.d.ts +64 -0
  220. package/dist/runtime/nodeKinds.js +43 -0
  221. package/dist/runtime/nodeKinds.js.map +1 -0
  222. package/dist/runtime/reconcileDiff.d.ts +9 -0
  223. package/dist/runtime/reconcileDiff.js +26 -0
  224. package/dist/runtime/reconcileDiff.js.map +1 -0
  225. package/dist/runtime/registry.d.ts +19 -0
  226. package/dist/runtime/registry.js +47 -0
  227. package/dist/runtime/registry.js.map +1 -0
  228. package/dist/runtime/resolveInputs.d.ts +14 -0
  229. package/dist/runtime/resolveInputs.js +64 -0
  230. package/dist/runtime/resolveInputs.js.map +1 -0
  231. package/dist/runtime/resolveSubgraph.d.ts +7 -0
  232. package/dist/runtime/resolveSubgraph.js +15 -0
  233. package/dist/runtime/resolveSubgraph.js.map +1 -0
  234. package/dist/runtime/subscriptions.d.ts +16 -0
  235. package/dist/runtime/subscriptions.js +419 -0
  236. package/dist/runtime/subscriptions.js.map +1 -0
  237. package/dist/runtime/subwalk.d.ts +17 -0
  238. package/dist/runtime/subwalk.js +74 -0
  239. package/dist/runtime/subwalk.js.map +1 -0
  240. package/dist/runtime/topo.d.ts +3 -0
  241. package/dist/runtime/topo.js +75 -0
  242. package/dist/runtime/topo.js.map +1 -0
  243. package/dist/runtime/typeOrigin.d.ts +7 -0
  244. package/dist/runtime/typeOrigin.js +24 -0
  245. package/dist/runtime/typeOrigin.js.map +1 -0
  246. package/dist/runtime/validate.d.ts +10 -0
  247. package/dist/runtime/validate.js +185 -0
  248. package/dist/runtime/validate.js.map +1 -0
  249. package/dist/runtime/validateTemplate.d.ts +3 -0
  250. package/dist/runtime/validateTemplate.js +54 -0
  251. package/dist/runtime/validateTemplate.js.map +1 -0
  252. package/dist/types/constants.d.ts +6 -0
  253. package/dist/types/constants.js +10 -0
  254. package/dist/types/constants.js.map +1 -0
  255. package/dist/types/graph.d.ts +51 -0
  256. package/dist/types/graph.js +23 -0
  257. package/dist/types/graph.js.map +1 -0
  258. package/dist/types/pagination.d.ts +8 -0
  259. package/dist/types/pagination.js +3 -0
  260. package/dist/types/pagination.js.map +1 -0
  261. package/dist/types/runLog.d.ts +26 -0
  262. package/dist/types/runLog.js +3 -0
  263. package/dist/types/runLog.js.map +1 -0
  264. package/frontend-vue/.prettierignore +4 -0
  265. package/frontend-vue/app/components/Actions.vue +141 -0
  266. package/frontend-vue/app/components/Catalog/TypeConfigForm.vue +166 -0
  267. package/frontend-vue/app/components/Catalog/TypeList.vue +198 -0
  268. package/frontend-vue/app/components/DataNodes.vue +259 -0
  269. package/frontend-vue/app/components/Editor/BuilderPalette.vue +234 -0
  270. package/frontend-vue/app/components/Editor/GraphCanvas.vue +994 -0
  271. package/frontend-vue/app/components/Editor/GroupPortEditor.vue +289 -0
  272. package/frontend-vue/app/components/Editor/JsonField.vue +63 -0
  273. package/frontend-vue/app/components/Editor/NodeInspector.vue +356 -0
  274. package/frontend-vue/app/components/Editor/ProcedureList.vue +156 -0
  275. package/frontend-vue/app/components/Editor/RunsDrawer.vue +312 -0
  276. package/frontend-vue/app/components/Editor/WiredField.vue +42 -0
  277. package/frontend-vue/app/components/Editor/nodes/GenericNode.vue +161 -0
  278. package/frontend-vue/app/components/Editor/nodes/GroupInputNode.vue +19 -0
  279. package/frontend-vue/app/components/Editor/nodes/GroupNode.vue +200 -0
  280. package/frontend-vue/app/components/Editor/nodes/GroupOutputNode.vue +19 -0
  281. package/frontend-vue/app/components/Editor/nodes/GroupSentinel.vue +161 -0
  282. package/frontend-vue/app/components/Editor/nodes/styles.ts +53 -0
  283. package/frontend-vue/app/components/Editor.vue +2504 -0
  284. package/frontend-vue/app/components/Library.vue +67 -0
  285. package/frontend-vue/app/components/Overview.vue +503 -0
  286. package/frontend-vue/app/components/RunDetailDrawer.vue +165 -0
  287. package/frontend-vue/app/components/RunFireTree.vue +170 -0
  288. package/frontend-vue/app/components/RunTraceDrawer.vue +59 -0
  289. package/frontend-vue/app/components/RunsStats.vue +126 -0
  290. package/frontend-vue/app/components/RunsTimelineDisplay.vue +287 -0
  291. package/frontend-vue/app/components/Templates.vue +663 -0
  292. package/frontend-vue/app/components/Triggers.vue +137 -0
  293. package/frontend-vue/app/composables/useAutomationNodeKinds.ts +48 -0
  294. package/frontend-vue/app/composables/useAutomationRuns.ts +75 -0
  295. package/frontend-vue/app/composables/useGraphConnect.ts +542 -0
  296. package/frontend-vue/app/plugins/runs-timeline-display.client.ts +16 -0
  297. package/frontend-vue/app/utils/automation.ts +51 -0
  298. package/frontend-vue/dms.frontend.ts +26 -0
  299. package/frontend-vue/eslint.config.mjs +24 -0
  300. package/frontend-vue/i18n/locales/dms-automation-en-GB.json +369 -0
  301. package/frontend-vue/i18n/locales/dms-automation-fr-FR.json +369 -0
  302. package/frontend-vue/package.json +33 -0
  303. package/frontend-vue/pnpm-lock.yaml +6483 -0
  304. package/frontend-vue/pnpm-workspace.yaml +2 -0
  305. package/package.json +81 -0
@@ -0,0 +1,369 @@
1
+ {
2
+ "dms_automation": {
3
+ "module": {
4
+ "title": "Automation",
5
+ "description": "Procedures, triggers, and actions"
6
+ },
7
+ "builder": {
8
+ "title": "Builder",
9
+ "description": "Visual builder — drag blocks from the palette and wire them together.",
10
+ "palette": {
11
+ "search": "Search blocks…",
12
+ "empty": "No blocks match"
13
+ }
14
+ },
15
+ "procedures": {
16
+ "title": "Procedures",
17
+ "description": "Every automation procedure — status, triggers and recent health.",
18
+ "newProcedure": "New procedure",
19
+ "newProcedureName": "New procedure",
20
+ "search": "Search procedures…",
21
+ "pagination": "{shown} of {total}",
22
+ "filters": {
23
+ "all": "All",
24
+ "active": "Active",
25
+ "paused": "Paused",
26
+ "failing": "Failing"
27
+ },
28
+ "cols": {
29
+ "procedure": "Procedure",
30
+ "trigger": "Trigger",
31
+ "status": "Status",
32
+ "lastRun": "Last run",
33
+ "success": "Success",
34
+ "avg": "Avg",
35
+ "runs": "Runs"
36
+ },
37
+ "status": {
38
+ "active": "Active",
39
+ "paused": "Paused",
40
+ "failing": "Failing"
41
+ },
42
+ "trigger": {
43
+ "none": "No trigger",
44
+ "manual": "Manual"
45
+ },
46
+ "lastRunAgo": "{ago} ago",
47
+ "runNow": "Run now",
48
+ "runStarted": "Run started",
49
+ "edit": "Edit",
50
+ "runQueued": "Run queued · {name}",
51
+ "runFailed": "Run failed",
52
+ "never": "Never",
53
+ "empty": "No procedures",
54
+ "emptyHint": "Create your first procedure to get started.",
55
+ "loadError": "Failed to load procedures",
56
+ "createError": "Failed to create procedure"
57
+ },
58
+ "library": {
59
+ "title": "Library",
60
+ "description": "Every building block in one place — triggers, actions, data nodes and reusable templates.",
61
+ "tabs": {
62
+ "triggers": "Triggers",
63
+ "actions": "Actions",
64
+ "dataNodes": "Data Nodes",
65
+ "templates": "Templates"
66
+ }
67
+ },
68
+ "editor": {
69
+ "title": "Editor",
70
+ "description": "Design procedures",
71
+ "loadProceduresError": "Failed to load procedures",
72
+ "loadTemplateError": "Failed to load template",
73
+ "procedures": "Procedures",
74
+ "procedureName": "Procedure name",
75
+ "templateName": "Template name",
76
+ "enabled": "Enabled",
77
+ "runNow": "Run now",
78
+ "noProcedure": "No procedure selected. Open the Procedures drawer to pick or create one.",
79
+ "templateNotLoaded": "Template not loaded.",
80
+ "disabledTitle": "This procedure is disabled",
81
+ "disabledDescription": "Triggers (webhook, cron, …) will not fire until you enable it and save. Manual triggers still work via Run now.",
82
+ "enableAndSave": "Enable and save",
83
+ "exitSubgraph": "Exit subgraph",
84
+ "linkedTitle": "Linked to a template — read-only",
85
+ "linkedDescription": "This subgraph is provided by a template and updates live whenever the template changes. Fork to a local group to edit a private copy.",
86
+ "forkToEdit": "Fork to edit",
87
+ "enterGroup": "Enter group",
88
+ "groupSelection": "Group selection ({n})",
89
+ "saveAsTemplate": "Save as template",
90
+ "forkToLocal": "Fork to local group",
91
+ "loading": "Loading editor…",
92
+ "saveTemplateModal": {
93
+ "title": "Save as template",
94
+ "name": "Name",
95
+ "namePlaceholder": "Template name",
96
+ "description": "Description",
97
+ "descriptionPlaceholder": "What does this template do?",
98
+ "icon": "Icon",
99
+ "iconHelp": "Iconify name, e.g. i-ph-package",
100
+ "error": "Could not save template",
101
+ "cancel": "Cancel",
102
+ "submit": "Save template"
103
+ },
104
+ "forkModal": {
105
+ "title": "Fork to local group",
106
+ "body": "This template instance will become a local group. Subsequent edits to the original template will no longer affect this copy.",
107
+ "error": "Could not fork template instance",
108
+ "cancel": "Cancel",
109
+ "submit": "Fork to local group"
110
+ },
111
+ "canvas": {
112
+ "addNode": "Add node",
113
+ "undo": "Undo",
114
+ "redo": "Redo",
115
+ "cancel": "Cancel",
116
+ "apply": "Apply",
117
+ "zoomOut": "Zoom out",
118
+ "resetZoom": "Reset zoom",
119
+ "zoomIn": "Zoom in",
120
+ "fitView": "Fit view"
121
+ },
122
+ "procedureList": {
123
+ "title": "Procedures",
124
+ "new": "New",
125
+ "empty": "No procedures yet. Click \"New\" to create one.",
126
+ "enabled": "Enabled",
127
+ "disabled": "Disabled",
128
+ "deleteAria": "Delete procedure",
129
+ "deleteTitle": "Delete procedure",
130
+ "deleteConfirm": "Are you sure you want to delete {name}? This cannot be undone.",
131
+ "cancel": "Cancel",
132
+ "delete": "Delete"
133
+ },
134
+ "inspector": {
135
+ "title": "Inspector",
136
+ "empty": "Select a node to edit.",
137
+ "enterSubgraph": "Enter subgraph",
138
+ "type": "Type",
139
+ "nodeId": "Node id",
140
+ "noFields": "This node has no configurable fields.",
141
+ "arrayPlaceholder": "One item per line",
142
+ "deleteNode": "Delete node"
143
+ },
144
+ "groupPorts": {
145
+ "title": "Group ports",
146
+ "duplicate": "Duplicate port name: {name}",
147
+ "duplicateHelp": "Each port within an inputs or outputs list must have a unique name.",
148
+ "remove": "Delete port"
149
+ },
150
+ "wiredField": {
151
+ "wiredFrom": "wired from",
152
+ "unwire": "Unwire"
153
+ },
154
+ "runsDrawer": {
155
+ "title": "Runs",
156
+ "loading": "Runs (loading…)",
157
+ "count": "Runs ({n})",
158
+ "selectProcedure": "Select a procedure to view runs.",
159
+ "loadingShort": "Loading…",
160
+ "runCount": "{n} run(s)",
161
+ "refresh": "Refresh",
162
+ "empty": "No runs yet.",
163
+ "cols": {
164
+ "status": "Status",
165
+ "started": "Started",
166
+ "duration": "Duration",
167
+ "error": "Error"
168
+ }
169
+ }
170
+ },
171
+ "common": {
172
+ "refresh": "Refresh",
173
+ "previous": "Previous",
174
+ "next": "Next"
175
+ },
176
+ "catalog": {
177
+ "empty": "No types registered.",
178
+ "search": "Search types…",
179
+ "noResults": "No matches.",
180
+ "selectPrompt": "Select a type on the left to view its configuration.",
181
+ "enabled": "Enabled",
182
+ "enabledHelp": "Allow this type to be used by procedures.",
183
+ "configSchema": "Config schema (read-only)",
184
+ "globalConfig": "Global config (JSON)",
185
+ "save": "Save",
186
+ "invalidJson": "Invalid JSON"
187
+ },
188
+ "triggers": {
189
+ "title": "Triggers",
190
+ "description": "Registered triggers",
191
+ "listLabel": "Trigger types",
192
+ "loadError": "Failed to load trigger types"
193
+ },
194
+ "actions": {
195
+ "title": "Actions",
196
+ "description": "Registered actions",
197
+ "listLabel": "Action types",
198
+ "loadError": "Failed to load action types"
199
+ },
200
+ "runs": {
201
+ "title": "Runs",
202
+ "description": "Execution history across all procedures — inspect, replay and debug.",
203
+ "pageLabel": "Page {n}",
204
+ "empty": "No runs",
205
+ "emptyHint": "No runs match this filter.",
206
+ "kpis": {
207
+ "today": "Runs today",
208
+ "success": "Success",
209
+ "failed": "Failed",
210
+ "avgDuration": "Avg duration"
211
+ },
212
+ "badge": {
213
+ "success": "Success",
214
+ "failed": "Failed"
215
+ },
216
+ "cols": {
217
+ "procedure": "Procedure",
218
+ "status": "Status",
219
+ "startedAt": "Started",
220
+ "endedAt": "Ended",
221
+ "trigger": "Trigger",
222
+ "error": "Error"
223
+ },
224
+ "status": {
225
+ "ok": "Success",
226
+ "failed": "Failed"
227
+ },
228
+ "display": {
229
+ "timeline": "Timeline"
230
+ },
231
+ "listTitle": "Run history",
232
+ "timeline": {
233
+ "trace": "Trace",
234
+ "replay": "Replay",
235
+ "completed": "Completed successfully",
236
+ "failed": "Failed",
237
+ "replayQueued": "Replay queued",
238
+ "replayFailed": "Replay failed"
239
+ },
240
+ "detail": {
241
+ "error": "Error",
242
+ "triggerPayload": "Trigger payload",
243
+ "logs": "Logs",
244
+ "noLogs": "No log entries.",
245
+ "none": "No additional details for this run.",
246
+ "runId": "run id",
247
+ "trigger": "trigger"
248
+ }
249
+ },
250
+ "data_nodes": {
251
+ "title": "Data Nodes",
252
+ "description": "Pure functions you can wire into a procedure's data flow",
253
+ "listLabel": "Data nodes",
254
+ "loadError": "Failed to load data node types",
255
+ "refresh": "Refresh",
256
+ "category": "Category",
257
+ "inputs": "Inputs",
258
+ "outputs": "Outputs",
259
+ "empty": "Select a data node to see its details",
260
+ "noPorts": "No ports declared",
261
+ "col": {
262
+ "name": "Name",
263
+ "type": "Type",
264
+ "description": "Description"
265
+ }
266
+ },
267
+ "templates": {
268
+ "title": "Templates",
269
+ "description": "Reusable groups shared across procedures",
270
+ "loadError": "Failed to load templates",
271
+ "saveError": "Failed to save",
272
+ "usagesError": "Failed to load usages",
273
+ "deleteError": "Failed to delete",
274
+ "refresh": "Refresh",
275
+ "search": "Search templates…",
276
+ "empty": "No templates yet — create one by selecting a group in the editor and choosing \"Save as template\".",
277
+ "save": "Save",
278
+ "editSubgraph": "Edit subgraph",
279
+ "delete": "Delete",
280
+ "forceDelete": "Delete and fork usages",
281
+ "usedInN": "Used in {n}",
282
+ "form": {
283
+ "name": "Name",
284
+ "description": "Description",
285
+ "icon": "Icon",
286
+ "iconHelp": "Iconify name, e.g. i-ph-package"
287
+ },
288
+ "ports": {
289
+ "title": "Ports",
290
+ "editHint": "To edit ports, open the subgraph.",
291
+ "empty": "No ports declared.",
292
+ "col": {
293
+ "kind": "Kind",
294
+ "direction": "Direction",
295
+ "name": "Name",
296
+ "type": "Type"
297
+ }
298
+ },
299
+ "usages": {
300
+ "title": "Used in",
301
+ "empty": "Not used by any procedure."
302
+ },
303
+ "deleteConfirm": {
304
+ "title": "Delete template?",
305
+ "message": "Delete \"{name}\"? This cannot be undone.",
306
+ "usageWarningTitle": "Template is in use",
307
+ "usageWarning": "{n} procedure(s) reference this template. Deleting will fork each usage into a local group so they keep working.",
308
+ "cancel": "Cancel"
309
+ }
310
+ },
311
+ "overview": {
312
+ "title": "Overview",
313
+ "description": "Automation health, recent runs and the procedures that need attention.",
314
+ "loadError": "Failed to load stats",
315
+ "refresh": "Refresh",
316
+ "autoPoll": "Auto-poll (30s)",
317
+ "head": {
318
+ "procedures": "Procedures",
319
+ "newProcedure": "New procedure"
320
+ },
321
+ "stats": {
322
+ "procedures": "Procedures",
323
+ "active": "Active",
324
+ "runsToday": "Runs today",
325
+ "successRate": "Success rate"
326
+ },
327
+ "runs7d": {
328
+ "title": "Runs (7 days)"
329
+ },
330
+ "chart": {
331
+ "legendOk": "Success",
332
+ "legendFailed": "Failed",
333
+ "empty": "No runs in the last 7 days"
334
+ },
335
+ "execHealth": {
336
+ "title": "Execution health",
337
+ "operational": "Operational",
338
+ "needsAttention": "Needs attention",
339
+ "avgDuration": "Avg duration",
340
+ "p95Duration": "p95 duration",
341
+ "failed24h": "Failed (24h)",
342
+ "total24h": "Runs (24h)",
343
+ "successRate": "Success rate"
344
+ },
345
+ "needsAttention": {
346
+ "title": "Needs attention",
347
+ "subtitle": "Failing or paused procedures",
348
+ "all": "All procedures",
349
+ "empty": "Nothing needs attention",
350
+ "failingDetail": "{n} failed runs",
351
+ "pausedDetail": "Paused",
352
+ "lastRun": "last run {ago} ago",
353
+ "open": "Open"
354
+ },
355
+ "recentRuns": {
356
+ "title": "Recent runs",
357
+ "viewAll": "View all",
358
+ "empty": "No runs yet",
359
+ "ago": "{ago} ago"
360
+ },
361
+ "timeAgo": {
362
+ "now": "just now",
363
+ "min": "{n} min",
364
+ "hour": "{n}h",
365
+ "day": "{n}d"
366
+ }
367
+ }
368
+ }
369
+ }