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,6 @@
1
+ {
2
+ "verifyPackages": [
3
+ "xlsx",
4
+ "dayjs"
5
+ ]
6
+ }
@@ -0,0 +1,14 @@
1
+ import Application from '@nocobase/server';
2
+ import { SandboxRunner } from '../../services/SandboxRunner';
3
+ import { FileManager } from '../../services/FileManager';
4
+ import { SkillRepositoryService } from '../../services/SkillRepositoryService';
5
+ export declare class SkillExecutionTask {
6
+ private execution;
7
+ private sandboxRunner;
8
+ private fileManager;
9
+ private skillRepoService;
10
+ private app;
11
+ constructor(execution: any, sandboxRunner: SandboxRunner, fileManager: FileManager, skillRepoService: SkillRepositoryService, app: Application);
12
+ run(): Promise<void>;
13
+ private renderTemplate;
14
+ }
@@ -0,0 +1,267 @@
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 SkillExecutionTask_exports = {};
28
+ __export(SkillExecutionTask_exports, {
29
+ SkillExecutionTask: () => SkillExecutionTask
30
+ });
31
+ module.exports = __toCommonJS(SkillExecutionTask_exports);
32
+ var import_path = require("path");
33
+ var import_json_fields = require("../utils/json-fields");
34
+ class TaskAbortController {
35
+ listeners = [];
36
+ _aborted = false;
37
+ get aborted() {
38
+ return this._aborted;
39
+ }
40
+ get signal() {
41
+ return {
42
+ addEventListener: (_event, listener) => {
43
+ if (this._aborted) {
44
+ listener();
45
+ } else {
46
+ this.listeners.push(listener);
47
+ }
48
+ }
49
+ };
50
+ }
51
+ abort() {
52
+ if (this._aborted) return;
53
+ this._aborted = true;
54
+ for (const listener of this.listeners) {
55
+ try {
56
+ listener();
57
+ } catch {
58
+ }
59
+ }
60
+ this.listeners = [];
61
+ }
62
+ }
63
+ class SkillExecutionTask {
64
+ constructor(execution, sandboxRunner, fileManager, skillRepoService, app) {
65
+ this.execution = execution;
66
+ this.sandboxRunner = sandboxRunner;
67
+ this.fileManager = fileManager;
68
+ this.skillRepoService = skillRepoService;
69
+ this.app = app;
70
+ }
71
+ async run() {
72
+ var _a, _b, _c, _d, _e;
73
+ const skill = this.execution.get("skill") || this.execution.skill;
74
+ const execId = String(this.execution.get("id"));
75
+ await this.execution.update({ status: "running" });
76
+ const abortController = new TaskAbortController();
77
+ const abortChannel = `skill-hub.abort.${execId}`;
78
+ const abortCallback = async () => {
79
+ this.app.logger.info(`[skill-hub] Task ${execId}: received abort signal`);
80
+ abortController.abort();
81
+ };
82
+ try {
83
+ await this.app.pubSubManager.subscribe(abortChannel, abortCallback);
84
+ const inputArgs = (0, import_json_fields.parseJsonText)(this.execution.get("inputArgs"), {});
85
+ const storageType = skill.get ? skill.get("storageType") : skill.storageType;
86
+ let rawCodeTemplate = skill.get ? skill.get("codeTemplate") : skill.codeTemplate;
87
+ let language = skill.get ? skill.get("language") : skill.language;
88
+ let timeoutSeconds = skill.get ? skill.get("timeoutSeconds") : skill.timeoutSeconds;
89
+ let maxOutputSizeMb = skill.get ? skill.get("maxOutputSizeMb") : skill.maxOutputSizeMb;
90
+ const skillName = skill.get ? skill.get("name") : skill.name;
91
+ const workDir = this.fileManager.createExecDir(execId);
92
+ let skillDir;
93
+ if (storageType === "plugin") {
94
+ const pluginSkillName = (skill.get ? skill.get("pluginSource") : skill.pluginSource) || skillName;
95
+ const orchestratorPlugin = this.app.pm.get("plugin-agent-orchestrator");
96
+ const skillHub = orchestratorPlugin == null ? void 0 : orchestratorPlugin.skillHub;
97
+ let pluginTemplate = typeof (skillHub == null ? void 0 : skillHub.resolveSkillTemplate) === "function" ? skillHub.resolveSkillTemplate(pluginSkillName) : (_a = skillHub == null ? void 0 : skillHub.skillTemplates) == null ? void 0 : _a.get(pluginSkillName);
98
+ if (!pluginTemplate && skillHub) {
99
+ const allPlugins = this.app.pm.getPlugins();
100
+ for (const [, pInstance] of allPlugins) {
101
+ if (typeof pInstance.getSkillTemplates === "function") {
102
+ const pluginSkills = pInstance.getSkillTemplates();
103
+ if (Array.isArray(pluginSkills)) {
104
+ for (const s of pluginSkills) {
105
+ if (s.name === pluginSkillName) {
106
+ pluginTemplate = typeof (skillHub == null ? void 0 : skillHub.hydrateSkillTemplate) === "function" ? skillHub.hydrateSkillTemplate(pInstance.name, s) : { ...s, pluginSource: s.name, pluginName: pInstance.name };
107
+ skillHub.skillTemplates.set(s.name, pluginTemplate);
108
+ break;
109
+ }
110
+ }
111
+ }
112
+ }
113
+ if (pluginTemplate) break;
114
+ }
115
+ }
116
+ if (pluginTemplate) {
117
+ rawCodeTemplate = pluginTemplate.codeTemplate;
118
+ language = pluginTemplate.language;
119
+ if (pluginTemplate.timeoutSeconds) timeoutSeconds = pluginTemplate.timeoutSeconds;
120
+ if (pluginTemplate.maxOutputSizeMb) maxOutputSizeMb = pluginTemplate.maxOutputSizeMb;
121
+ const packageRoot = (_b = pluginTemplate.skillPackage) == null ? void 0 : _b.rootDir;
122
+ if (packageRoot) {
123
+ const mountMode = ((_c = pluginTemplate.skillPackage) == null ? void 0 : _c.mountMode) || "reference";
124
+ if (mountMode === "copy") {
125
+ skillDir = (0, import_path.resolve)(workDir, "skill");
126
+ this.skillRepoService.copyDirectoryTo(packageRoot, skillDir);
127
+ } else {
128
+ skillDir = packageRoot;
129
+ }
130
+ }
131
+ } else {
132
+ throw new Error(`Plugin skill "${pluginSkillName}" not found. Is the parent plugin enabled?`);
133
+ }
134
+ }
135
+ if (!rawCodeTemplate) {
136
+ throw new Error(
137
+ `Skill "${skillName}" has no codeTemplate. Add a code file, inline codeTemplate, or bind it to an installed plugin skill.`
138
+ );
139
+ }
140
+ if (storageType !== "plugin") {
141
+ skillDir = workDir;
142
+ }
143
+ const code = this.renderTemplate(rawCodeTemplate, inputArgs, execId, skillDir);
144
+ await this.execution.update({ executedCode: code });
145
+ let packageWhitelist = [];
146
+ try {
147
+ const workerConfig = await this.app.db.getRepository("skillWorkerConfigs").findOne();
148
+ if (workerConfig) {
149
+ const wl = (0, import_json_fields.parseJsonText)(
150
+ workerConfig.get ? workerConfig.get("packageWhitelist") : workerConfig.packageWhitelist,
151
+ { python: [], node: [], apt: [] }
152
+ );
153
+ if (wl) {
154
+ packageWhitelist = (language === "node" ? wl.node : wl.python) || [];
155
+ }
156
+ }
157
+ } catch {
158
+ }
159
+ const fileId = skill.get ? skill.get("fileId") : skill.fileId;
160
+ if (!require("fs").existsSync(this.skillRepoService.getSkillPath(skillName)) && fileId) {
161
+ const fmPlugin = this.app.pm.get("@nocobase/plugin-file-manager");
162
+ const attachment = await this.app.db.getRepository("attachments").findOne({ filter: { id: fileId } });
163
+ if (fmPlugin && attachment) {
164
+ try {
165
+ const streamData = await fmPlugin.getFileStream(attachment);
166
+ if (streamData == null ? void 0 : streamData.stream) {
167
+ const tempZipPath = require("path").resolve(require("os").tmpdir(), `skill_${Date.now()}_exec.zip`);
168
+ await new Promise((resolve2, reject) => {
169
+ const writeStream = require("fs").createWriteStream(tempZipPath);
170
+ streamData.stream.pipe(writeStream);
171
+ writeStream.on("finish", resolve2);
172
+ writeStream.on("error", reject);
173
+ streamData.stream.on("error", reject);
174
+ });
175
+ await this.skillRepoService.extractSkillPackage(skillName, tempZipPath);
176
+ require("fs").unlinkSync(tempZipPath);
177
+ this.app.logger.info(
178
+ `[skill-hub] Task ${execId}: Auto-restored skill package ${skillName} from S3/Storage`
179
+ );
180
+ }
181
+ } catch (fetchErr) {
182
+ this.app.logger.warn(
183
+ `[skill-hub] Task ${execId}: Failed to fetch skill package ${skillName} from storage`,
184
+ { error: fetchErr }
185
+ );
186
+ }
187
+ }
188
+ }
189
+ if (storageType !== "plugin") {
190
+ this.skillRepoService.copySkillPackageTo(skillName, workDir);
191
+ skillDir = workDir;
192
+ }
193
+ const result = await this.sandboxRunner.execute({
194
+ language,
195
+ code,
196
+ execId,
197
+ timeoutSeconds: timeoutSeconds || 60,
198
+ maxOutputSizeMb: maxOutputSizeMb || 50,
199
+ skillDir,
200
+ signal: abortController.signal,
201
+ packageWhitelist,
202
+ onProgress: (progress) => {
203
+ this.app.pubSubManager.publish(`skill-hub.progress.${execId}`, progress);
204
+ }
205
+ });
206
+ let status;
207
+ if (result.canceled) {
208
+ status = "canceled";
209
+ } else if (result.timedOut) {
210
+ status = "timeout";
211
+ } else {
212
+ status = result.success ? "succeeded" : "failed";
213
+ }
214
+ await this.execution.update({
215
+ status,
216
+ stdout: result.stdout,
217
+ stderr: result.stderr,
218
+ outputFiles: (0, import_json_fields.stringifyJsonText)(result.files, []),
219
+ durationMs: result.durationMs
220
+ });
221
+ await this.app.pubSubManager.publish(`skill-hub.done.${execId}`, {
222
+ status,
223
+ stdout: (_d = result.stdout) == null ? void 0 : _d.slice(0, 3e3),
224
+ stderr: (_e = result.stderr) == null ? void 0 : _e.slice(0, 1e3),
225
+ files: result.files,
226
+ durationMs: result.durationMs
227
+ });
228
+ this.app.logger.info(
229
+ `[skill-hub] Execution ${execId} ${status}: skill=${skill.get ? skill.get("name") : skill.name}, language=${language}, duration=${result.durationMs}ms, files=${result.files.length}, outputSize=${this.fileManager.getTotalOutputSize(execId)}bytes`
230
+ );
231
+ } catch (error) {
232
+ const errorMessage = error instanceof Error ? error.message : String(error);
233
+ await this.execution.update({
234
+ status: "failed",
235
+ stderr: errorMessage
236
+ });
237
+ await this.app.pubSubManager.publish(`skill-hub.done.${execId}`, {
238
+ status: "failed",
239
+ stderr: errorMessage,
240
+ files: [],
241
+ durationMs: 0
242
+ });
243
+ this.app.logger.error(`[skill-hub] Execution ${execId} error: ${errorMessage}`);
244
+ } finally {
245
+ try {
246
+ await this.app.pubSubManager.unsubscribe(abortChannel, abortCallback);
247
+ } catch {
248
+ }
249
+ }
250
+ }
251
+ renderTemplate(template, args, execId, skillDir) {
252
+ let code = template;
253
+ for (const [key, value] of Object.entries(args)) {
254
+ const serialized = typeof value === "string" ? value : JSON.stringify(value);
255
+ code = code.replaceAll(`{{${key}}}`, serialized);
256
+ const b64 = Buffer.from(serialized, "utf-8").toString("base64");
257
+ code = code.replaceAll(`{{${key}_b64}}`, b64);
258
+ }
259
+ code = code.replaceAll("{{outputDir}}", this.fileManager.getOutputDir(execId).replace(/\\/g, "/"));
260
+ code = code.replaceAll("{{skillDir}}", (skillDir || "").replace(/\\/g, "/"));
261
+ return code;
262
+ }
263
+ }
264
+ // Annotate the CommonJS export names for ESM import in node:
265
+ 0 && (module.exports = {
266
+ SkillExecutionTask
267
+ });
@@ -0,0 +1,7 @@
1
+ export declare function parseJsonText<T = any>(value: any, fallback: T): T;
2
+ export declare function stringifyJsonText(value: any, fallback?: any): string;
3
+ export declare function parseJsonLike(value: any, fallback: any): any;
4
+ export declare function parseSkillMarkdown(markdown: string): {
5
+ metadata: Record<string, any>;
6
+ body: string;
7
+ };
@@ -0,0 +1,88 @@
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 json_fields_exports = {};
28
+ __export(json_fields_exports, {
29
+ parseJsonLike: () => parseJsonLike,
30
+ parseJsonText: () => parseJsonText,
31
+ parseSkillMarkdown: () => parseSkillMarkdown,
32
+ stringifyJsonText: () => stringifyJsonText
33
+ });
34
+ module.exports = __toCommonJS(json_fields_exports);
35
+ function parseJsonText(value, fallback) {
36
+ if (value === void 0 || value === null || value === "") return fallback;
37
+ if (typeof value !== "string") return value;
38
+ const trimmed = value.trim();
39
+ const fenced = trimmed.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i);
40
+ const json = fenced ? fenced[1].trim() : trimmed;
41
+ try {
42
+ return JSON.parse(json);
43
+ } catch {
44
+ return fallback;
45
+ }
46
+ }
47
+ function stringifyJsonText(value, fallback = null) {
48
+ const normalized = value === void 0 || value === null || value === "" ? fallback : value;
49
+ if (typeof normalized === "string") {
50
+ const parsed = parseJsonText(normalized, void 0);
51
+ if (parsed === void 0) return normalized;
52
+ return `\`\`\`json
53
+ ${JSON.stringify(parsed, null, 2)}
54
+ \`\`\``;
55
+ }
56
+ return `\`\`\`json
57
+ ${JSON.stringify(normalized, null, 2)}
58
+ \`\`\``;
59
+ }
60
+ function parseJsonLike(value, fallback) {
61
+ if (value === void 0 || value === null || value === "") return fallback;
62
+ if (typeof value !== "string") return value;
63
+ const parsed = parseJsonText(value, void 0);
64
+ if (parsed !== void 0) return parsed;
65
+ return value.includes(",") ? value.split(",").map((item) => item.trim()).filter(Boolean) : fallback;
66
+ }
67
+ function parseSkillMarkdown(markdown) {
68
+ const match = markdown.match(/^---\r?\n([\s\S]*?)\r?\n---/);
69
+ if (!match) return { metadata: {}, body: markdown.trim() };
70
+ const result = {};
71
+ match[1].split(/\r?\n/).forEach((line) => {
72
+ const idx = line.indexOf(":");
73
+ if (idx > 0) {
74
+ const key = line.substring(0, idx).trim();
75
+ const value = line.substring(idx + 1).trim();
76
+ if (key) result[key] = value;
77
+ }
78
+ });
79
+ const body = markdown.substring(match[0].length).trim();
80
+ return { metadata: result, body };
81
+ }
82
+ // Annotate the CommonJS export names for ESM import in node:
83
+ 0 && (module.exports = {
84
+ parseJsonLike,
85
+ parseJsonText,
86
+ parseSkillMarkdown,
87
+ stringifyJsonText
88
+ });
@@ -13,3 +13,7 @@
13
13
  * leaderUsername field, so scoping is enforced in the invoke callback)
14
14
  */
15
15
  export declare function createDelegateToolsProvider(plugin: any): (register: any) => Promise<void>;
16
+ /**
17
+ * Test/internal helper to drop the in-memory tool cache (e.g., from a CLI op).
18
+ */
19
+ export declare function invalidateDelegateToolsCache(): void;