plugin-agent-orchestrator 1.0.13 → 1.0.14

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 (251) hide show
  1. package/README.md +16 -291
  2. package/dist/client/AIEmployeesContext.d.ts +7 -0
  3. package/dist/client/OrchestratorSettings.d.ts +2 -1
  4. package/dist/client/index.js +1 -1
  5. package/dist/client/plugin.d.ts +1 -0
  6. package/dist/client/skill-hub/components/ExecutionHistory.d.ts +2 -0
  7. package/dist/client/skill-hub/components/ExecutionProgress.d.ts +20 -0
  8. package/dist/client/skill-hub/components/GitSkillImport.d.ts +7 -0
  9. package/dist/client/skill-hub/components/SkillEditor.d.ts +7 -0
  10. package/dist/client/skill-hub/components/SkillManager.d.ts +2 -0
  11. package/dist/client/skill-hub/components/SkillMetrics.d.ts +2 -0
  12. package/dist/client/skill-hub/components/SkillTestPanel.d.ts +7 -0
  13. package/dist/client/skill-hub/index.d.ts +10 -0
  14. package/dist/client/skill-hub/locale.d.ts +3 -0
  15. package/dist/client/skill-hub/tools/InteractionSchemasProvider.d.ts +19 -0
  16. package/dist/client/skill-hub/tools/SkillHubCard.d.ts +3 -0
  17. package/dist/client/skill-hub/utils/jsonFields.d.ts +3 -0
  18. package/dist/externalVersion.js +6 -6
  19. package/dist/node_modules/adm-zip/LICENSE +21 -0
  20. package/dist/node_modules/adm-zip/adm-zip.js +1 -0
  21. package/dist/node_modules/adm-zip/headers/entryHeader.js +377 -0
  22. package/dist/node_modules/adm-zip/headers/index.js +2 -0
  23. package/dist/node_modules/adm-zip/headers/mainHeader.js +130 -0
  24. package/dist/node_modules/adm-zip/methods/deflater.js +33 -0
  25. package/dist/node_modules/adm-zip/methods/index.js +3 -0
  26. package/dist/node_modules/adm-zip/methods/inflater.js +34 -0
  27. package/dist/node_modules/adm-zip/methods/zipcrypto.js +175 -0
  28. package/dist/node_modules/adm-zip/package.json +1 -0
  29. package/dist/node_modules/adm-zip/util/constants.js +142 -0
  30. package/dist/node_modules/adm-zip/util/decoder.js +5 -0
  31. package/dist/node_modules/adm-zip/util/errors.js +63 -0
  32. package/dist/node_modules/adm-zip/util/fattr.js +76 -0
  33. package/dist/node_modules/adm-zip/util/index.js +5 -0
  34. package/dist/node_modules/adm-zip/util/utils.js +339 -0
  35. package/dist/node_modules/adm-zip/zipEntry.js +405 -0
  36. package/dist/node_modules/adm-zip/zipFile.js +446 -0
  37. package/dist/node_modules/simple-git/dist/cjs/index.js +7399 -0
  38. package/dist/node_modules/simple-git/dist/esm/index.js +4745 -0
  39. package/dist/node_modules/simple-git/dist/esm/package.json +3 -0
  40. package/dist/node_modules/simple-git/dist/src/lib/api.d.ts +13 -0
  41. package/dist/node_modules/simple-git/dist/src/lib/args/log-format.d.ts +9 -0
  42. package/dist/node_modules/simple-git/dist/src/lib/errors/git-construct-error.d.ts +15 -0
  43. package/dist/node_modules/simple-git/dist/src/lib/errors/git-error.d.ts +30 -0
  44. package/dist/node_modules/simple-git/dist/src/lib/errors/git-plugin-error.d.ts +7 -0
  45. package/dist/node_modules/simple-git/dist/src/lib/errors/git-response-error.d.ts +32 -0
  46. package/dist/node_modules/simple-git/dist/src/lib/errors/task-configuration-error.d.ts +12 -0
  47. package/dist/node_modules/simple-git/dist/src/lib/git-factory.d.ts +15 -0
  48. package/dist/node_modules/simple-git/dist/src/lib/git-logger.d.ts +21 -0
  49. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-branch-delete.d.ts +5 -0
  50. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-branch.d.ts +2 -0
  51. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-commit.d.ts +2 -0
  52. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-diff-summary.d.ts +3 -0
  53. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-fetch.d.ts +2 -0
  54. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-list-log-summary.d.ts +6 -0
  55. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-merge.d.ts +11 -0
  56. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-move.d.ts +2 -0
  57. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-pull.d.ts +6 -0
  58. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-push.d.ts +4 -0
  59. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-remote-messages.d.ts +5 -0
  60. package/dist/node_modules/simple-git/dist/src/lib/parsers/parse-remote-objects.d.ts +3 -0
  61. package/dist/node_modules/simple-git/dist/src/lib/plugins/abort-plugin.d.ts +3 -0
  62. package/dist/node_modules/simple-git/dist/src/lib/plugins/block-unsafe-operations-plugin.d.ts +3 -0
  63. package/dist/node_modules/simple-git/dist/src/lib/plugins/command-config-prefixing-plugin.d.ts +2 -0
  64. package/dist/node_modules/simple-git/dist/src/lib/plugins/completion-detection.plugin.d.ts +3 -0
  65. package/dist/node_modules/simple-git/dist/src/lib/plugins/custom-binary.plugin.d.ts +3 -0
  66. package/dist/node_modules/simple-git/dist/src/lib/plugins/error-detection.plugin.d.ts +7 -0
  67. package/dist/node_modules/simple-git/dist/src/lib/plugins/index.d.ts +11 -0
  68. package/dist/node_modules/simple-git/dist/src/lib/plugins/plugin-store.d.ts +11 -0
  69. package/dist/node_modules/simple-git/dist/src/lib/plugins/progress-monitor-plugin.d.ts +3 -0
  70. package/dist/node_modules/simple-git/dist/src/lib/plugins/simple-git-plugin.d.ts +48 -0
  71. package/dist/node_modules/simple-git/dist/src/lib/plugins/spawn-options-plugin.d.ts +3 -0
  72. package/dist/node_modules/simple-git/dist/src/lib/plugins/suffix-paths.plugin.d.ts +2 -0
  73. package/dist/node_modules/simple-git/dist/src/lib/plugins/timout-plugin.d.ts +3 -0
  74. package/dist/node_modules/simple-git/dist/src/lib/responses/BranchDeleteSummary.d.ts +12 -0
  75. package/dist/node_modules/simple-git/dist/src/lib/responses/BranchSummary.d.ts +14 -0
  76. package/dist/node_modules/simple-git/dist/src/lib/responses/CheckIgnore.d.ts +4 -0
  77. package/dist/node_modules/simple-git/dist/src/lib/responses/CleanSummary.d.ts +9 -0
  78. package/dist/node_modules/simple-git/dist/src/lib/responses/ConfigList.d.ts +13 -0
  79. package/dist/node_modules/simple-git/dist/src/lib/responses/DiffSummary.d.ts +10 -0
  80. package/dist/node_modules/simple-git/dist/src/lib/responses/FileStatusSummary.d.ts +9 -0
  81. package/dist/node_modules/simple-git/dist/src/lib/responses/GetRemoteSummary.d.ts +11 -0
  82. package/dist/node_modules/simple-git/dist/src/lib/responses/InitSummary.d.ts +9 -0
  83. package/dist/node_modules/simple-git/dist/src/lib/responses/MergeSummary.d.ts +16 -0
  84. package/dist/node_modules/simple-git/dist/src/lib/responses/PullSummary.d.ts +25 -0
  85. package/dist/node_modules/simple-git/dist/src/lib/responses/StatusSummary.d.ts +19 -0
  86. package/dist/node_modules/simple-git/dist/src/lib/responses/TagList.d.ts +7 -0
  87. package/dist/node_modules/simple-git/dist/src/lib/runners/git-executor-chain.d.ts +25 -0
  88. package/dist/node_modules/simple-git/dist/src/lib/runners/git-executor.d.ts +14 -0
  89. package/dist/node_modules/simple-git/dist/src/lib/runners/promise-wrapped.d.ts +2 -0
  90. package/dist/node_modules/simple-git/dist/src/lib/runners/scheduler.d.ts +11 -0
  91. package/dist/node_modules/simple-git/dist/src/lib/runners/tasks-pending-queue.d.ts +23 -0
  92. package/dist/node_modules/simple-git/dist/src/lib/simple-git-api.d.ts +20 -0
  93. package/dist/node_modules/simple-git/dist/src/lib/task-callback.d.ts +2 -0
  94. package/dist/node_modules/simple-git/dist/src/lib/tasks/apply-patch.d.ts +3 -0
  95. package/dist/node_modules/simple-git/dist/src/lib/tasks/branch.d.ts +7 -0
  96. package/dist/node_modules/simple-git/dist/src/lib/tasks/change-working-directory.d.ts +2 -0
  97. package/dist/node_modules/simple-git/dist/src/lib/tasks/check-ignore.d.ts +2 -0
  98. package/dist/node_modules/simple-git/dist/src/lib/tasks/check-is-repo.d.ts +9 -0
  99. package/dist/node_modules/simple-git/dist/src/lib/tasks/checkout.d.ts +2 -0
  100. package/dist/node_modules/simple-git/dist/src/lib/tasks/clean.d.ts +25 -0
  101. package/dist/node_modules/simple-git/dist/src/lib/tasks/clone.d.ts +9 -0
  102. package/dist/node_modules/simple-git/dist/src/lib/tasks/commit.d.ts +4 -0
  103. package/dist/node_modules/simple-git/dist/src/lib/tasks/config.d.ts +8 -0
  104. package/dist/node_modules/simple-git/dist/src/lib/tasks/count-objects.d.ts +12 -0
  105. package/dist/node_modules/simple-git/dist/src/lib/tasks/diff-name-status.d.ts +12 -0
  106. package/dist/node_modules/simple-git/dist/src/lib/tasks/diff.d.ts +5 -0
  107. package/dist/node_modules/simple-git/dist/src/lib/tasks/fetch.d.ts +4 -0
  108. package/dist/node_modules/simple-git/dist/src/lib/tasks/first-commit.d.ts +2 -0
  109. package/dist/node_modules/simple-git/dist/src/lib/tasks/grep.d.ts +12 -0
  110. package/dist/node_modules/simple-git/dist/src/lib/tasks/hash-object.d.ts +5 -0
  111. package/dist/node_modules/simple-git/dist/src/lib/tasks/init.d.ts +3 -0
  112. package/dist/node_modules/simple-git/dist/src/lib/tasks/log.d.ts +32 -0
  113. package/dist/node_modules/simple-git/dist/src/lib/tasks/merge.d.ts +4 -0
  114. package/dist/node_modules/simple-git/dist/src/lib/tasks/move.d.ts +3 -0
  115. package/dist/node_modules/simple-git/dist/src/lib/tasks/pull.d.ts +3 -0
  116. package/dist/node_modules/simple-git/dist/src/lib/tasks/push.d.ts +9 -0
  117. package/dist/node_modules/simple-git/dist/src/lib/tasks/remote.d.ts +8 -0
  118. package/dist/node_modules/simple-git/dist/src/lib/tasks/reset.d.ts +11 -0
  119. package/dist/node_modules/simple-git/dist/src/lib/tasks/show.d.ts +2 -0
  120. package/dist/node_modules/simple-git/dist/src/lib/tasks/stash-list.d.ts +4 -0
  121. package/dist/node_modules/simple-git/dist/src/lib/tasks/status.d.ts +3 -0
  122. package/dist/node_modules/simple-git/dist/src/lib/tasks/sub-module.d.ts +5 -0
  123. package/dist/node_modules/simple-git/dist/src/lib/tasks/tag.d.ts +18 -0
  124. package/dist/node_modules/simple-git/dist/src/lib/tasks/task.d.ts +14 -0
  125. package/dist/node_modules/simple-git/dist/src/lib/tasks/version.d.ts +9 -0
  126. package/dist/node_modules/simple-git/dist/src/lib/types/handlers.d.ts +21 -0
  127. package/dist/node_modules/simple-git/dist/src/lib/types/index.d.ts +136 -0
  128. package/dist/node_modules/simple-git/dist/src/lib/types/tasks.d.ts +19 -0
  129. package/dist/node_modules/simple-git/dist/src/lib/utils/argument-filters.d.ts +14 -0
  130. package/dist/node_modules/simple-git/dist/src/lib/utils/exit-codes.d.ts +10 -0
  131. package/dist/node_modules/simple-git/dist/src/lib/utils/git-output-streams.d.ts +7 -0
  132. package/dist/node_modules/simple-git/dist/src/lib/utils/index.d.ts +8 -0
  133. package/dist/node_modules/simple-git/dist/src/lib/utils/line-parser.d.ts +15 -0
  134. package/dist/node_modules/simple-git/dist/src/lib/utils/simple-git-options.d.ts +2 -0
  135. package/dist/node_modules/simple-git/dist/src/lib/utils/task-options.d.ts +13 -0
  136. package/dist/node_modules/simple-git/dist/src/lib/utils/task-parser.d.ts +5 -0
  137. package/dist/node_modules/simple-git/dist/src/lib/utils/util.d.ts +47 -0
  138. package/dist/node_modules/simple-git/dist/typings/errors.d.ts +5 -0
  139. package/dist/node_modules/simple-git/dist/typings/index.d.ts +14 -0
  140. package/dist/node_modules/simple-git/dist/typings/response.d.ts +556 -0
  141. package/dist/node_modules/simple-git/dist/typings/simple-git.d.ts +1033 -0
  142. package/dist/node_modules/simple-git/dist/typings/types.d.ts +22 -0
  143. package/dist/node_modules/simple-git/node_modules/debug/package.json +64 -0
  144. package/dist/node_modules/simple-git/node_modules/debug/src/browser.js +272 -0
  145. package/dist/node_modules/simple-git/node_modules/debug/src/common.js +292 -0
  146. package/dist/node_modules/simple-git/node_modules/debug/src/index.js +10 -0
  147. package/dist/node_modules/simple-git/node_modules/debug/src/node.js +263 -0
  148. package/dist/node_modules/simple-git/package.json +1 -0
  149. package/dist/node_modules/simple-git/promise.js +17 -0
  150. package/dist/server/collections/agent-execution-spans.d.ts +9 -0
  151. package/dist/server/collections/agent-execution-spans.js +152 -0
  152. package/dist/server/collections/orchestrator-config.js +6 -0
  153. package/dist/server/collections/skill-definitions.d.ts +3 -0
  154. package/dist/server/collections/skill-definitions.js +158 -0
  155. package/dist/server/collections/skill-executions.d.ts +3 -0
  156. package/dist/server/collections/skill-executions.js +123 -0
  157. package/dist/server/collections/skill-worker-configs.d.ts +3 -0
  158. package/dist/server/collections/skill-worker-configs.js +115 -0
  159. package/dist/server/migrations/20260423000000-add-progress-fields.d.ts +4 -0
  160. package/dist/server/migrations/20260423000000-add-progress-fields.js +69 -0
  161. package/dist/server/migrations/20260425000000-add-interaction-schema.d.ts +4 -0
  162. package/dist/server/migrations/20260425000000-add-interaction-schema.js +61 -0
  163. package/dist/server/migrations/20260427000000-change-packages-to-text.d.ts +4 -0
  164. package/dist/server/migrations/20260427000000-change-packages-to-text.js +70 -0
  165. package/dist/server/migrations/20260427000001-change-other-json-to-text.d.ts +4 -0
  166. package/dist/server/migrations/20260427000001-change-other-json-to-text.js +80 -0
  167. package/dist/server/migrations/20260429000000-add-llm-fields.js +8 -0
  168. package/dist/server/migrations/20260429000000-fix-inputargs-json-to-text.d.ts +16 -0
  169. package/dist/server/migrations/20260429000000-fix-inputargs-json-to-text.js +51 -0
  170. package/dist/server/migrations/20260503000000-add-orchestrator-trace-fields.d.ts +7 -0
  171. package/dist/server/migrations/20260503000000-add-orchestrator-trace-fields.js +57 -0
  172. package/dist/server/plugin.d.ts +3 -0
  173. package/dist/server/plugin.js +37 -1
  174. package/dist/server/resources/tracing.js +154 -11
  175. package/dist/server/services/CodeValidator.d.ts +32 -0
  176. package/dist/server/services/CodeValidator.js +205 -0
  177. package/dist/server/services/ExecutionSpanService.d.ts +44 -0
  178. package/dist/server/services/ExecutionSpanService.js +104 -0
  179. package/dist/server/services/FileManager.d.ts +28 -0
  180. package/dist/server/services/FileManager.js +151 -0
  181. package/dist/server/services/SandboxRunner.d.ts +41 -0
  182. package/dist/server/services/SandboxRunner.js +167 -0
  183. package/dist/server/services/SkillManager.d.ts +6 -0
  184. package/dist/server/services/SkillManager.js +640 -0
  185. package/dist/server/services/SkillRepositoryService.d.ts +22 -0
  186. package/dist/server/services/SkillRepositoryService.js +157 -0
  187. package/dist/server/services/WorkerEnvManager.d.ts +26 -0
  188. package/dist/server/services/WorkerEnvManager.js +120 -0
  189. package/dist/server/skill-hub/actions/git-import.d.ts +21 -0
  190. package/dist/server/skill-hub/actions/git-import.js +413 -0
  191. package/dist/server/skill-hub/mcp/McpController.d.ts +15 -0
  192. package/dist/server/skill-hub/mcp/McpController.js +111 -0
  193. package/dist/server/skill-hub/plugin.d.ts +58 -0
  194. package/dist/server/skill-hub/plugin.js +694 -0
  195. package/dist/server/skill-hub/sandbox-config.json +6 -0
  196. package/dist/server/skill-hub/tasks/SkillExecutionTask.d.ts +14 -0
  197. package/dist/server/skill-hub/tasks/SkillExecutionTask.js +267 -0
  198. package/dist/server/skill-hub/utils/json-fields.d.ts +7 -0
  199. package/dist/server/skill-hub/utils/json-fields.js +88 -0
  200. package/dist/server/tools/delegate-task.d.ts +4 -0
  201. package/dist/server/tools/delegate-task.js +606 -104
  202. package/dist/server/tools/skill-execute.d.ts +36 -0
  203. package/dist/server/tools/skill-execute.js +167 -0
  204. package/package.json +3 -1
  205. package/src/client/AIEmployeeSelect.tsx +1 -3
  206. package/src/client/AIEmployeesContext.tsx +28 -13
  207. package/src/client/OrchestratorSettings.tsx +43 -5
  208. package/src/client/RulesTab.tsx +253 -32
  209. package/src/client/TracingTab.tsx +277 -213
  210. package/src/client/plugin.tsx +39 -0
  211. package/src/client/skill-hub/components/ExecutionHistory.tsx +201 -0
  212. package/src/client/skill-hub/components/ExecutionProgress.tsx +55 -0
  213. package/src/client/skill-hub/components/GitSkillImport.tsx +555 -0
  214. package/src/client/skill-hub/components/SkillEditor.tsx +456 -0
  215. package/src/client/skill-hub/components/SkillManager.tsx +181 -0
  216. package/src/client/skill-hub/components/SkillMetrics.tsx +124 -0
  217. package/src/client/skill-hub/components/SkillTestPanel.tsx +144 -0
  218. package/src/client/skill-hub/index.tsx +75 -0
  219. package/src/client/skill-hub/locale.ts +16 -0
  220. package/src/client/skill-hub/tools/InteractionSchemasProvider.tsx +59 -0
  221. package/src/client/skill-hub/tools/SkillHubCard.tsx +78 -0
  222. package/src/client/skill-hub/utils/jsonFields.ts +37 -0
  223. package/src/server/collections/agent-execution-spans.ts +129 -0
  224. package/src/server/collections/orchestrator-config.ts +7 -0
  225. package/src/server/collections/skill-definitions.ts +128 -0
  226. package/src/server/collections/skill-executions.ts +94 -0
  227. package/src/server/collections/skill-worker-configs.ts +86 -0
  228. package/src/server/migrations/20260423000000-add-progress-fields.ts +50 -0
  229. package/src/server/migrations/20260425000000-add-interaction-schema.ts +35 -0
  230. package/src/server/migrations/20260427000000-change-packages-to-text.ts +47 -0
  231. package/src/server/migrations/20260427000001-change-other-json-to-text.ts +57 -0
  232. package/src/server/migrations/20260429000000-add-llm-fields.ts +9 -0
  233. package/src/server/migrations/20260429000000-fix-inputargs-json-to-text.ts +38 -0
  234. package/src/server/migrations/20260503000000-add-orchestrator-trace-fields.ts +32 -0
  235. package/src/server/plugin.ts +51 -3
  236. package/src/server/resources/tracing.ts +182 -15
  237. package/src/server/services/CodeValidator.ts +159 -0
  238. package/src/server/services/ExecutionSpanService.ts +106 -0
  239. package/src/server/services/FileManager.ts +144 -0
  240. package/src/server/services/SandboxRunner.ts +205 -0
  241. package/src/server/services/SkillManager.ts +623 -0
  242. package/src/server/services/SkillRepositoryService.ts +142 -0
  243. package/src/server/services/WorkerEnvManager.ts +113 -0
  244. package/src/server/skill-hub/actions/git-import.ts +486 -0
  245. package/src/server/skill-hub/mcp/McpController.ts +86 -0
  246. package/src/server/skill-hub/plugin.ts +771 -0
  247. package/src/server/skill-hub/sandbox-config.json +6 -0
  248. package/src/server/skill-hub/tasks/SkillExecutionTask.ts +297 -0
  249. package/src/server/skill-hub/utils/json-fields.ts +57 -0
  250. package/src/server/tools/delegate-task.ts +803 -127
  251. package/src/server/tools/skill-execute.ts +157 -0
@@ -0,0 +1,123 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var skill_executions_exports = {};
28
+ __export(skill_executions_exports, {
29
+ default: () => skill_executions_default
30
+ });
31
+ module.exports = __toCommonJS(skill_executions_exports);
32
+ var skill_executions_default = {
33
+ name: "skillExecutions",
34
+ title: "Skill Executions",
35
+ fields: [
36
+ {
37
+ name: "id",
38
+ type: "bigInt",
39
+ autoIncrement: true,
40
+ primaryKey: true
41
+ },
42
+ {
43
+ name: "skill",
44
+ type: "belongsTo",
45
+ target: "skillDefinitions",
46
+ foreignKey: "skillId"
47
+ },
48
+ {
49
+ // 'pending' | 'running' | 'succeeded' | 'failed' | 'canceled' | 'timeout'
50
+ name: "status",
51
+ type: "string",
52
+ length: 20,
53
+ defaultValue: "pending"
54
+ },
55
+ {
56
+ name: "inputArgs",
57
+ type: "text"
58
+ },
59
+ {
60
+ // Final code after template rendering
61
+ name: "executedCode",
62
+ type: "text"
63
+ },
64
+ {
65
+ name: "stdout",
66
+ type: "text"
67
+ },
68
+ {
69
+ name: "stderr",
70
+ type: "text"
71
+ },
72
+ {
73
+ // [{ name, size, mimeType }]
74
+ name: "outputFiles",
75
+ type: "text",
76
+ defaultValue: null
77
+ },
78
+ {
79
+ name: "durationMs",
80
+ type: "integer"
81
+ },
82
+ {
83
+ name: "sessionId",
84
+ type: "string",
85
+ length: 100,
86
+ allowNull: true
87
+ },
88
+ {
89
+ name: "orchestratorRootRunId",
90
+ type: "string",
91
+ length: 100,
92
+ allowNull: true
93
+ },
94
+ {
95
+ name: "orchestratorSpanId",
96
+ type: "string",
97
+ length: 100,
98
+ allowNull: true
99
+ },
100
+ {
101
+ name: "orchestratorParentSpanId",
102
+ type: "string",
103
+ length: 100,
104
+ allowNull: true
105
+ },
106
+ {
107
+ name: "orchestratorToolCallId",
108
+ type: "string",
109
+ length: 100,
110
+ allowNull: true
111
+ },
112
+ {
113
+ name: "triggeredBy",
114
+ type: "belongsTo",
115
+ target: "users",
116
+ foreignKey: "triggeredById"
117
+ },
118
+ {
119
+ name: "createdAt",
120
+ type: "date"
121
+ }
122
+ ]
123
+ };
@@ -0,0 +1,3 @@
1
+ import { CollectionOptions } from '@nocobase/database';
2
+ declare const _default: CollectionOptions;
3
+ export default _default;
@@ -0,0 +1,115 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var skill_worker_configs_exports = {};
28
+ __export(skill_worker_configs_exports, {
29
+ default: () => skill_worker_configs_default
30
+ });
31
+ module.exports = __toCommonJS(skill_worker_configs_exports);
32
+ var skill_worker_configs_default = {
33
+ name: "skillWorkerConfigs",
34
+ title: "Skill Worker Configs",
35
+ fields: [
36
+ {
37
+ name: "id",
38
+ type: "bigInt",
39
+ autoIncrement: true,
40
+ primaryKey: true
41
+ },
42
+ {
43
+ name: "retentionHours",
44
+ type: "integer",
45
+ defaultValue: 24
46
+ },
47
+ {
48
+ name: "packageWhitelist",
49
+ type: "text",
50
+ defaultValue: null
51
+ },
52
+ {
53
+ name: "customPackages",
54
+ type: "text",
55
+ defaultValue: null
56
+ },
57
+ {
58
+ name: "npmRegistryUrl",
59
+ type: "string",
60
+ length: 500
61
+ },
62
+ {
63
+ name: "npmAuthToken",
64
+ type: "string",
65
+ length: 1e3
66
+ },
67
+ {
68
+ name: "pypiIndexUrl",
69
+ type: "string",
70
+ length: 500
71
+ },
72
+ {
73
+ name: "pypiTrustedHost",
74
+ type: "string",
75
+ length: 255
76
+ },
77
+ {
78
+ name: "aptMirrorUrl",
79
+ type: "string",
80
+ length: 500
81
+ },
82
+ {
83
+ name: "aptGpgKeyUrl",
84
+ type: "string",
85
+ length: 500
86
+ },
87
+ {
88
+ name: "initStatus",
89
+ type: "string",
90
+ length: 20,
91
+ defaultValue: "idle"
92
+ },
93
+ {
94
+ name: "lastInitLog",
95
+ type: "text"
96
+ },
97
+ {
98
+ name: "initProgressPercent",
99
+ type: "integer",
100
+ defaultValue: 0
101
+ },
102
+ {
103
+ name: "initProgressLog",
104
+ type: "text"
105
+ },
106
+ {
107
+ name: "createdAt",
108
+ type: "date"
109
+ },
110
+ {
111
+ name: "updatedAt",
112
+ type: "date"
113
+ }
114
+ ]
115
+ };
@@ -0,0 +1,4 @@
1
+ import { Migration } from '@nocobase/server';
2
+ export default class AddProgressFieldsMigration extends Migration {
3
+ up(): Promise<void>;
4
+ }
@@ -0,0 +1,69 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var add_progress_fields_exports = {};
28
+ __export(add_progress_fields_exports, {
29
+ default: () => AddProgressFieldsMigration
30
+ });
31
+ module.exports = __toCommonJS(add_progress_fields_exports);
32
+ var import_server = require("@nocobase/server");
33
+ class AddProgressFieldsMigration extends import_server.Migration {
34
+ async up() {
35
+ const queryInterface = this.db.sequelize.getQueryInterface();
36
+ const tablePrefix = this.db.options.tablePrefix || "";
37
+ const tableName = `${tablePrefix}skillWorkerConfigs`;
38
+ try {
39
+ const tableExists = await queryInterface.tableExists(tableName);
40
+ if (!tableExists) return;
41
+ const tableDesc = await queryInterface.describeTable(tableName);
42
+ const fieldRepo = this.db.getRepository("fields");
43
+ const collectionName = "skillWorkerConfigs";
44
+ const fieldsToSync = [
45
+ { name: "initProgressPercent", type: "integer", defaultValue: 0 },
46
+ { name: "initProgressLog", type: "text" }
47
+ ];
48
+ for (const f of fieldsToSync) {
49
+ const fieldMeta = await fieldRepo.findOne({
50
+ filter: { name: f.name, collectionName }
51
+ });
52
+ if (!fieldMeta && tableDesc[f.name]) {
53
+ await fieldRepo.create({
54
+ values: {
55
+ name: f.name,
56
+ type: f.type,
57
+ collectionName,
58
+ // Avoid trying to physically add it because it already exists
59
+ interface: f.type
60
+ }
61
+ });
62
+ this.app.logger.info(`[skill-hub] Restored NocoBase metadata for preexisting column ${f.name}`);
63
+ }
64
+ }
65
+ } catch (error) {
66
+ this.app.logger.error(`[skill-hub] Failed to check progress fields: ${error.message}`);
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,4 @@
1
+ import { Migration } from '@nocobase/server';
2
+ export default class AddInteractionSchemaMigration extends Migration {
3
+ up(): Promise<void>;
4
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var add_interaction_schema_exports = {};
28
+ __export(add_interaction_schema_exports, {
29
+ default: () => AddInteractionSchemaMigration
30
+ });
31
+ module.exports = __toCommonJS(add_interaction_schema_exports);
32
+ var import_server = require("@nocobase/server");
33
+ class AddInteractionSchemaMigration extends import_server.Migration {
34
+ async up() {
35
+ const queryInterface = this.db.sequelize.getQueryInterface();
36
+ const tableName = `${this.db.options.tablePrefix || ""}skillDefinitions`;
37
+ try {
38
+ const tableExists = await queryInterface.tableExists(tableName);
39
+ if (!tableExists) return;
40
+ const tableDesc = await queryInterface.describeTable(tableName);
41
+ const fieldRepo = this.db.getRepository("fields");
42
+ const collectionName = "skillDefinitions";
43
+ const fieldMeta = await fieldRepo.findOne({
44
+ filter: { name: "interactionSchema", collectionName }
45
+ });
46
+ if (!fieldMeta && tableDesc.interactionSchema) {
47
+ await fieldRepo.create({
48
+ values: {
49
+ name: "interactionSchema",
50
+ type: "text",
51
+ collectionName,
52
+ interface: "textarea"
53
+ }
54
+ });
55
+ this.app.logger.info("[skill-hub] Restored NocoBase metadata for preexisting column interactionSchema");
56
+ }
57
+ } catch (error) {
58
+ this.app.logger.error(`[skill-hub] Failed to check interactionSchema field: ${error.message}`);
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,4 @@
1
+ import { Migration } from '@nocobase/server';
2
+ export default class ChangePackagesToTextMigration extends Migration {
3
+ up(): Promise<void>;
4
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var change_packages_to_text_exports = {};
28
+ __export(change_packages_to_text_exports, {
29
+ default: () => ChangePackagesToTextMigration
30
+ });
31
+ module.exports = __toCommonJS(change_packages_to_text_exports);
32
+ var import_server = require("@nocobase/server");
33
+ class ChangePackagesToTextMigration extends import_server.Migration {
34
+ async up() {
35
+ const queryInterface = this.db.sequelize.getQueryInterface();
36
+ const tableName = `${this.db.options.tablePrefix || ""}skillDefinitions`;
37
+ try {
38
+ const tableExists = await queryInterface.tableExists(tableName);
39
+ if (!tableExists) return;
40
+ const tableDesc = await queryInterface.describeTable(tableName);
41
+ const columnsToChange = ["packages", "inputSchema", "interactionSchema"];
42
+ const fieldRepo = this.db.getRepository("fields");
43
+ const collectionName = "skillDefinitions";
44
+ for (const col of columnsToChange) {
45
+ if (tableDesc[col]) {
46
+ const dialect = this.db.sequelize.getDialect();
47
+ if (dialect === "postgres") {
48
+ await this.db.sequelize.query(`ALTER TABLE "${tableName}" ALTER COLUMN "${col}" TYPE text USING "${col}"::text;`);
49
+ } else {
50
+ await queryInterface.changeColumn(tableName, col, {
51
+ type: "TEXT"
52
+ });
53
+ }
54
+ const fieldMeta = await fieldRepo.findOne({
55
+ filter: { name: col, collectionName }
56
+ });
57
+ if (fieldMeta) {
58
+ await fieldRepo.update({
59
+ filterByTk: fieldMeta.get("id"),
60
+ values: { type: "text" }
61
+ });
62
+ }
63
+ this.app.logger.info(`[skill-hub] Changed ${col} column type to text to support markdown`);
64
+ }
65
+ }
66
+ } catch (error) {
67
+ this.app.logger.error(`[skill-hub] Failed to change packages field type: ${error.message}`);
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,4 @@
1
+ import { Migration } from '@nocobase/server';
2
+ export default class ChangeOtherJsonToTextMigration extends Migration {
3
+ up(): Promise<void>;
4
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var change_other_json_to_text_exports = {};
28
+ __export(change_other_json_to_text_exports, {
29
+ default: () => ChangeOtherJsonToTextMigration
30
+ });
31
+ module.exports = __toCommonJS(change_other_json_to_text_exports);
32
+ var import_server = require("@nocobase/server");
33
+ class ChangeOtherJsonToTextMigration extends import_server.Migration {
34
+ async up() {
35
+ const queryInterface = this.db.sequelize.getQueryInterface();
36
+ const dialect = this.db.sequelize.getDialect();
37
+ const fieldRepo = this.db.getRepository("fields");
38
+ const tablePrefix = this.db.options.tablePrefix || "";
39
+ const workerTableName = `${tablePrefix}skillWorkerConfigs`;
40
+ try {
41
+ if (await queryInterface.tableExists(workerTableName)) {
42
+ const tableDesc = await queryInterface.describeTable(workerTableName);
43
+ const columns = ["packageWhitelist", "customPackages"];
44
+ for (const col of columns) {
45
+ if (tableDesc[col]) {
46
+ if (dialect === "postgres") {
47
+ await this.db.sequelize.query(`ALTER TABLE "${workerTableName}" ALTER COLUMN "${col}" TYPE text USING "${col}"::text;`);
48
+ } else {
49
+ await queryInterface.changeColumn(workerTableName, col, { type: "TEXT" });
50
+ }
51
+ const fieldMeta = await fieldRepo.findOne({ filter: { name: col, collectionName: "skillWorkerConfigs" } });
52
+ if (fieldMeta) await fieldRepo.update({ filterByTk: fieldMeta.get("id"), values: { type: "text" } });
53
+ this.app.logger.info(`[skill-hub] Changed ${col} in skillWorkerConfigs to text`);
54
+ }
55
+ }
56
+ }
57
+ } catch (e) {
58
+ this.app.logger.warn(`[skill-hub] Failed to migrate skillWorkerConfigs: ${e.message}`);
59
+ }
60
+ const execTableName = `${tablePrefix}skillExecutions`;
61
+ try {
62
+ if (await queryInterface.tableExists(execTableName)) {
63
+ const tableDesc = await queryInterface.describeTable(execTableName);
64
+ const col = "outputFiles";
65
+ if (tableDesc[col]) {
66
+ if (dialect === "postgres") {
67
+ await this.db.sequelize.query(`ALTER TABLE "${execTableName}" ALTER COLUMN "${col}" TYPE text USING "${col}"::text;`);
68
+ } else {
69
+ await queryInterface.changeColumn(execTableName, col, { type: "TEXT" });
70
+ }
71
+ const fieldMeta = await fieldRepo.findOne({ filter: { name: col, collectionName: "skillExecutions" } });
72
+ if (fieldMeta) await fieldRepo.update({ filterByTk: fieldMeta.get("id"), values: { type: "text" } });
73
+ this.app.logger.info(`[skill-hub] Changed ${col} in skillExecutions to text`);
74
+ }
75
+ }
76
+ } catch (e) {
77
+ this.app.logger.warn(`[skill-hub] Failed to migrate skillExecutions: ${e.message}`);
78
+ }
79
+ }
80
+ }
@@ -54,6 +54,14 @@ class AddLlmFieldsToOrchestratorConfig extends import_server.Migration {
54
54
  });
55
55
  console.log(`[AgentOrchestrator] Added model column to ${tableName}`);
56
56
  }
57
+ if (!tableDesc["recursionLimit"]) {
58
+ await queryInterface.addColumn(tableName, "recursionLimit", {
59
+ type: "INTEGER",
60
+ allowNull: true,
61
+ defaultValue: 50
62
+ });
63
+ console.log(`[AgentOrchestrator] Added recursionLimit column to ${tableName}`);
64
+ }
57
65
  }
58
66
  async down() {
59
67
  }
@@ -0,0 +1,16 @@
1
+ import { Migration } from '@nocobase/server';
2
+ /**
3
+ * Fix: inputArgs column in skillExecutions was json type but should be text.
4
+ *
5
+ * Root cause: The column was created as `json` from an older schema version,
6
+ * but the collection defines it as `text`. The `stringifyJsonText()` utility
7
+ * wraps values in markdown code fences (```json\n...\n```) which PostgreSQL
8
+ * rejects as invalid JSON syntax, causing SequelizeDatabaseError on every
9
+ * skill execution attempt.
10
+ */
11
+ export default class FixInputArgsJsonToText extends Migration {
12
+ on: string;
13
+ appVersion: string;
14
+ up(): Promise<void>;
15
+ down(): Promise<void>;
16
+ }
@@ -0,0 +1,51 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var fix_inputargs_json_to_text_exports = {};
28
+ __export(fix_inputargs_json_to_text_exports, {
29
+ default: () => FixInputArgsJsonToText
30
+ });
31
+ module.exports = __toCommonJS(fix_inputargs_json_to_text_exports);
32
+ var import_server = require("@nocobase/server");
33
+ class FixInputArgsJsonToText extends import_server.Migration {
34
+ on = "afterLoad";
35
+ appVersion = ">=0.1.0";
36
+ async up() {
37
+ const queryInterface = this.db.sequelize.getQueryInterface();
38
+ const tableDesc = await queryInterface.describeTable("skillExecutions").catch(() => null);
39
+ if (!tableDesc) return;
40
+ const col = tableDesc["inputArgs"];
41
+ if (!col) return;
42
+ if (col.type && col.type.toLowerCase().includes("json")) {
43
+ await this.db.sequelize.query(
44
+ `ALTER TABLE "skillExecutions" ALTER COLUMN "inputArgs" TYPE text USING "inputArgs"::text`
45
+ );
46
+ console.log("[skill-hub] Migration: converted skillExecutions.inputArgs from json to text");
47
+ }
48
+ }
49
+ async down() {
50
+ }
51
+ }
@@ -0,0 +1,7 @@
1
+ import { Migration } from '@nocobase/server';
2
+ export default class AddOrchestratorTraceFieldsToSkillExecutions extends Migration {
3
+ on: string;
4
+ appVersion: string;
5
+ up(): Promise<void>;
6
+ down(): Promise<void>;
7
+ }