@ai-setting/roy-agent-core 1.7.52 → 1.7.55

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 (367) hide show
  1. package/dist/config/config-component.d.ts +346 -0
  2. package/dist/config/config-parser.d.ts +45 -0
  3. package/dist/config/env-key.d.ts +97 -0
  4. package/dist/config/env-source.d.ts +113 -0
  5. package/dist/config/file-source.d.ts +90 -0
  6. package/dist/config/index.d.ts +4 -0
  7. package/dist/config/protocol-resolver.d.ts +94 -0
  8. package/dist/env/agent/agent-component.d.ts +646 -0
  9. package/dist/env/agent/agent-config-registration.d.ts +18 -0
  10. package/dist/env/agent/agent-registry.d.ts +500 -0
  11. package/dist/env/agent/index.d.ts +9 -0
  12. package/dist/env/agent/index.js +3 -3
  13. package/dist/env/agent/summary-agent.d.ts +44 -0
  14. package/dist/env/agent/types.d.ts +503 -0
  15. package/dist/env/commands/commands-component.d.ts +97 -0
  16. package/dist/env/commands/commands-config-registration.d.ts +19 -0
  17. package/dist/env/commands/index.d.ts +7 -0
  18. package/dist/env/commands/parser.d.ts +18 -0
  19. package/dist/env/commands/types.d.ts +133 -0
  20. package/dist/env/component.d.ts +186 -0
  21. package/dist/env/constants.d.ts +112 -0
  22. package/dist/env/context/env-context.d.ts +420 -0
  23. package/dist/env/context/env-event.d.ts +144 -0
  24. package/dist/env/context/index.d.ts +13 -0
  25. package/dist/env/debug/debug-component.d.ts +160 -0
  26. package/dist/env/debug/formatters/index.d.ts +8 -0
  27. package/dist/env/debug/formatters/repl-formatter.d.ts +80 -0
  28. package/dist/env/debug/formatters/trace-formatter.d.ts +43 -0
  29. package/dist/env/debug/formatters/tree-formatter.d.ts +72 -0
  30. package/dist/env/debug/index.d.ts +15 -0
  31. package/dist/env/debug/index.js +1 -1
  32. package/dist/env/debug/parser/regex-parser.d.ts +49 -0
  33. package/dist/env/debug/parser/span-builder.d.ts +79 -0
  34. package/dist/env/debug/reader/log-reader.d.ts +55 -0
  35. package/dist/env/debug/reader/span-db-reader.d.ts +70 -0
  36. package/dist/env/debug/types.d.ts +145 -0
  37. package/dist/env/environment.d.ts +185 -0
  38. package/dist/env/error-reply.d.ts +184 -0
  39. package/dist/env/errors.d.ts +120 -0
  40. package/dist/env/event-source/bounty-cli-handler.d.ts +42 -0
  41. package/dist/env/event-source/bounty-im-handler.d.ts +232 -0
  42. package/dist/env/event-source/event-source-component.d.ts +177 -0
  43. package/dist/env/event-source/event-source-config-registration.d.ts +18 -0
  44. package/dist/env/event-source/event-source-handlers.d.ts +472 -0
  45. package/dist/env/event-source/event-store.d.ts +110 -0
  46. package/dist/env/event-source/idempotency-key.d.ts +19 -0
  47. package/dist/env/event-source/index.d.ts +15 -0
  48. package/dist/env/event-source/index.js +6 -6
  49. package/dist/env/event-source/timer-handler.d.ts +74 -0
  50. package/dist/env/event-source/types.d.ts +803 -0
  51. package/dist/env/hook/global-hook-manager.d.ts +73 -0
  52. package/dist/env/hook/hook-manager.d.ts +139 -0
  53. package/dist/env/hook/index.d.ts +9 -0
  54. package/dist/env/hook/types.d.ts +107 -0
  55. package/dist/env/index.d.ts +24 -0
  56. package/dist/env/index.js +18 -18
  57. package/dist/env/interface.d.ts +156 -0
  58. package/dist/env/lark-mention-utils.d.ts +59 -0
  59. package/dist/env/llm/adapter-ai-sdk.d.ts +10 -0
  60. package/dist/env/llm/adapter-pi-ai.d.ts +184 -0
  61. package/dist/env/llm/adapter.d.ts +100 -0
  62. package/dist/env/llm/factory.d.ts +13 -0
  63. package/dist/env/llm/hooks.d.ts +150 -0
  64. package/dist/env/llm/index.d.ts +16 -0
  65. package/dist/env/llm/index.js +2 -2
  66. package/dist/env/llm/invoke.d.ts +304 -0
  67. package/dist/env/llm/llm-cache.d.ts +38 -0
  68. package/dist/env/llm/llm.d.ts +263 -0
  69. package/dist/env/llm/opencode-session.d.ts +79 -0
  70. package/dist/env/llm/provider.d.ts +40 -0
  71. package/dist/env/llm/reasoning-defense.d.ts +104 -0
  72. package/dist/env/llm/tool-args-parser.d.ts +77 -0
  73. package/dist/env/llm/tool-schema.d.ts +54 -0
  74. package/dist/env/llm/transform.d.ts +57 -0
  75. package/dist/env/llm/types.d.ts +844 -0
  76. package/dist/env/log-trace/decorator.d.ts +88 -0
  77. package/dist/env/log-trace/index.d.ts +14 -0
  78. package/dist/env/log-trace/log-trace-component.d.ts +268 -0
  79. package/dist/env/log-trace/log-trace-config-registration.d.ts +25 -0
  80. package/dist/env/log-trace/logger.d.ts +83 -0
  81. package/dist/env/log-trace/opentelemetry/cli-propagation.d.ts +105 -0
  82. package/dist/env/log-trace/opentelemetry/mod.d.ts +24 -0
  83. package/dist/env/log-trace/opentelemetry/propagation-env.d.ts +81 -0
  84. package/dist/env/log-trace/opentelemetry/propagation.d.ts +79 -0
  85. package/dist/env/log-trace/opentelemetry/tracer-provider.d.ts +157 -0
  86. package/dist/env/log-trace/span-storage.d.ts +37 -0
  87. package/dist/env/log-trace/trace-context.d.ts +28 -0
  88. package/dist/env/log-trace/types.d.ts +127 -0
  89. package/dist/env/mcp/command-resolver.d.ts +12 -0
  90. package/dist/env/mcp/config.d.ts +103 -0
  91. package/dist/env/mcp/index.d.ts +13 -0
  92. package/dist/env/mcp/loader.d.ts +78 -0
  93. package/dist/env/mcp/mcp-component.d.ts +54 -0
  94. package/dist/env/mcp/mcp-config-registration.d.ts +19 -0
  95. package/dist/env/mcp/npm-prefix/index.d.ts +17 -0
  96. package/dist/env/mcp/scanner.d.ts +38 -0
  97. package/dist/env/mcp/tool/adapter.d.ts +32 -0
  98. package/dist/env/mcp/tool/index.d.ts +4 -0
  99. package/dist/env/mcp/types.d.ts +131 -0
  100. package/dist/env/memory/built-in/index.d.ts +41 -0
  101. package/dist/env/memory/built-in/recall-memory.d.ts +29 -0
  102. package/dist/env/memory/built-in/record-memory.d.ts +44 -0
  103. package/dist/env/memory/index.d.ts +10 -0
  104. package/dist/env/memory/memory-component.d.ts +114 -0
  105. package/dist/env/memory/memory-config-registration.d.ts +18 -0
  106. package/dist/env/memory/memory-config.d.ts +18 -0
  107. package/dist/env/memory/plugin/index.d.ts +16 -0
  108. package/dist/env/memory/plugin/memory-agent.d.ts +126 -0
  109. package/dist/env/memory/plugin/memory-manager.d.ts +71 -0
  110. package/dist/env/memory/plugin/memory-plugin.d.ts +103 -0
  111. package/dist/env/memory/plugin/recall-memory.d.ts +16 -0
  112. package/dist/env/memory/plugin/types.d.ts +75 -0
  113. package/dist/env/memory/tools/memory-agent-tools.d.ts +109 -0
  114. package/dist/env/memory/types.d.ts +80 -0
  115. package/dist/env/paths.d.ts +46 -0
  116. package/dist/env/plugin/bounty-cli-notification-channel.d.ts +60 -0
  117. package/dist/env/plugin/event-bus-notification-channel.d.ts +50 -0
  118. package/dist/env/plugin/index.d.ts +13 -0
  119. package/dist/env/plugin/lark-cli-notification-channel.d.ts +61 -0
  120. package/dist/env/plugin/notification-channel.d.ts +143 -0
  121. package/dist/env/plugin/plugin-component.d.ts +232 -0
  122. package/dist/env/plugin/types.d.ts +146 -0
  123. package/dist/env/prompt/index.d.ts +7 -0
  124. package/dist/env/prompt/index.js +2 -2
  125. package/dist/env/prompt/prompt-component.d.ts +194 -0
  126. package/dist/env/prompt/prompt-config-registration.d.ts +18 -0
  127. package/dist/env/prompt/prompt-store.d.ts +26 -0
  128. package/dist/env/prompt/prompts-index.d.ts +146 -0
  129. package/dist/env/prompt/renderer.d.ts +21 -0
  130. package/dist/env/prompt/types.d.ts +176 -0
  131. package/dist/env/session/hooks.d.ts +14 -0
  132. package/dist/env/session/index.d.ts +19 -0
  133. package/dist/env/session/index.js +4 -4
  134. package/dist/env/session/search-query-parser.d.ts +41 -0
  135. package/dist/env/session/session-component.d.ts +464 -0
  136. package/dist/env/session/session-config-registration.d.ts +18 -0
  137. package/dist/env/session/session-id.d.ts +26 -0
  138. package/dist/env/session/session-message-converter.d.ts +142 -0
  139. package/dist/env/session/session-store.d.ts +188 -0
  140. package/dist/env/session/storage/index.d.ts +5 -0
  141. package/dist/env/session/storage/index.js +3 -3
  142. package/dist/env/session/storage/memory.d.ts +119 -0
  143. package/dist/env/session/storage/sqlite.d.ts +108 -0
  144. package/dist/env/session/types.d.ts +705 -0
  145. package/dist/env/session-tree-stopper.d.ts +79 -0
  146. package/dist/env/skill/config.d.ts +13 -0
  147. package/dist/env/skill/index.d.ts +6 -0
  148. package/dist/env/skill/parser.d.ts +9 -0
  149. package/dist/env/skill/scanner.d.ts +25 -0
  150. package/dist/env/skill/skill-component.d.ts +89 -0
  151. package/dist/env/skill/skill-config-registration.d.ts +18 -0
  152. package/dist/env/skill/tool/index.d.ts +1 -0
  153. package/dist/env/skill/tool/skill-tool.d.ts +15 -0
  154. package/dist/env/skill/types.d.ts +61 -0
  155. package/dist/env/task/backend/index.d.ts +24 -0
  156. package/dist/env/task/backend/index.js +702 -0
  157. package/dist/env/task/backend/roy-sidecar-task-port.d.ts +148 -0
  158. package/dist/env/task/backend/sqlite-task-port.d.ts +28 -0
  159. package/dist/env/task/backend/task-store-backend.d.ts +107 -0
  160. package/dist/env/task/backend/types.d.ts +282 -0
  161. package/dist/env/task/delegate/bg-task-id-storage.d.ts +9 -0
  162. package/dist/env/task/delegate/delegate-tool.d.ts +681 -0
  163. package/dist/env/task/delegate/index.d.ts +8 -0
  164. package/dist/env/task/delegate/index.js +2 -2
  165. package/dist/env/task/delegate/process-registry.d.ts +58 -0
  166. package/dist/env/task/delegate/stop-tool.d.ts +12 -0
  167. package/dist/env/task/delegate/subagent-resolver.d.ts +25 -0
  168. package/dist/env/task/events/index.d.ts +7 -0
  169. package/dist/env/task/events/task-event-payloads.d.ts +101 -0
  170. package/dist/env/task/events/task-event-types.d.ts +23 -0
  171. package/dist/env/task/hooks/contexts.d.ts +191 -0
  172. package/dist/env/task/hooks/index.d.ts +7 -0
  173. package/dist/env/task/hooks/task-hook-points.d.ts +42 -0
  174. package/dist/env/task/index.d.ts +7 -0
  175. package/dist/env/task/index.js +3 -3
  176. package/dist/env/task/plugins/auto-task-plugin.d.ts +38 -0
  177. package/dist/env/task/plugins/card-chat-routing.d.ts +88 -0
  178. package/dist/env/task/plugins/fake-user-message-helper.d.ts +90 -0
  179. package/dist/env/task/plugins/index.d.ts +8 -0
  180. package/dist/env/task/plugins/index.js +4 -4
  181. package/dist/env/task/plugins/lark-card-action-handler.d.ts +166 -0
  182. package/dist/env/task/plugins/lark-card-patch-notifier.d.ts +600 -0
  183. package/dist/env/task/plugins/lark-cli-task-notify-plugin.d.ts +231 -0
  184. package/dist/env/task/plugins/max-iteration-reminder-plugin.d.ts +112 -0
  185. package/dist/env/task/plugins/per-task-group-chat-plugin.d.ts +561 -0
  186. package/dist/env/task/plugins/task-tag-plugin.d.ts +70 -0
  187. package/dist/env/task/plugins/workflow-extractor-agent.d.ts +43 -0
  188. package/dist/env/task/registry-hook-installer.d.ts +43 -0
  189. package/dist/env/task/storage/index.d.ts +5 -0
  190. package/dist/env/task/storage/migrations/001_add_project_path_context.d.ts +14 -0
  191. package/dist/env/task/storage/migrations/002_add_task_type.d.ts +14 -0
  192. package/dist/env/task/storage/migrations/003_add_process_description.d.ts +20 -0
  193. package/dist/env/task/storage/migrations/004_rename_action_to_milestone.d.ts +37 -0
  194. package/dist/env/task/storage/migrations/005_convert_blob_description_to_text.d.ts +51 -0
  195. package/dist/env/task/storage/sqlite-task-store.d.ts +241 -0
  196. package/dist/env/task/tag-service.d.ts +138 -0
  197. package/dist/env/task/task-child-context.d.ts +70 -0
  198. package/dist/env/task/task-component.d.ts +270 -0
  199. package/dist/env/task/task-config-registration.d.ts +19 -0
  200. package/dist/env/task/task-creation-registry.d.ts +181 -0
  201. package/dist/env/task/task-reuse-context.d.ts +52 -0
  202. package/dist/env/task/task-reuse-registry.d.ts +31 -0
  203. package/dist/env/task/tools/batch-archive-tool.d.ts +9 -0
  204. package/dist/env/task/tools/batch-delete-tool.d.ts +9 -0
  205. package/dist/env/task/tools/complete-tool.d.ts +12 -0
  206. package/dist/env/task/tools/create-tool.d.ts +6 -0
  207. package/dist/env/task/tools/delete-tool.d.ts +6 -0
  208. package/dist/env/task/tools/get-tool.d.ts +6 -0
  209. package/dist/env/task/tools/index.d.ts +13 -0
  210. package/dist/env/task/tools/list-tool.d.ts +6 -0
  211. package/dist/env/task/tools/operation/create-tool.d.ts +12 -0
  212. package/dist/env/task/tools/operation/delete-tool.d.ts +6 -0
  213. package/dist/env/task/tools/operation/get-tool.d.ts +6 -0
  214. package/dist/env/task/tools/operation/index.d.ts +8 -0
  215. package/dist/env/task/tools/operation/list-tool.d.ts +6 -0
  216. package/dist/env/task/tools/operation/operation-types.d.ts +225 -0
  217. package/dist/env/task/tools/operation/update-tool.d.ts +6 -0
  218. package/dist/env/task/tools/search-tool.d.ts +9 -0
  219. package/dist/env/task/tools/task-tree-tool.d.ts +65 -0
  220. package/dist/env/task/tools/task-types.d.ts +255 -0
  221. package/dist/env/task/tools/update-tool.d.ts +6 -0
  222. package/dist/env/task/types.d.ts +290 -0
  223. package/dist/env/tool/built-in/bash-effect.d.ts +36 -0
  224. package/dist/env/tool/built-in/bash.d.ts +16 -0
  225. package/dist/env/tool/built-in/echo.d.ts +7 -0
  226. package/dist/env/tool/built-in/edit-file.d.ts +6 -0
  227. package/dist/env/tool/built-in/glob.d.ts +6 -0
  228. package/dist/env/tool/built-in/grep.d.ts +6 -0
  229. package/dist/env/tool/built-in/index.d.ts +39 -0
  230. package/dist/env/tool/built-in/query-background-process-tool.d.ts +113 -0
  231. package/dist/env/tool/built-in/read-file.d.ts +5 -0
  232. package/dist/env/tool/built-in/understand-image.d.ts +59 -0
  233. package/dist/env/tool/built-in/write-file.d.ts +5 -0
  234. package/dist/env/tool/index.d.ts +16 -0
  235. package/dist/env/tool/registry.d.ts +61 -0
  236. package/dist/env/tool/tool-component.d.ts +242 -0
  237. package/dist/env/tool/tool-config-registration.d.ts +18 -0
  238. package/dist/env/tool/types.d.ts +274 -0
  239. package/dist/env/tool/validator.d.ts +14 -0
  240. package/dist/env/types.d.ts +184 -0
  241. package/dist/env/workflow/decorators/decorator-node.d.ts +76 -0
  242. package/dist/env/workflow/decorators/edge.d.ts +42 -0
  243. package/dist/env/workflow/decorators/index.d.ts +13 -0
  244. package/dist/env/workflow/decorators/node-as.d.ts +40 -0
  245. package/dist/env/workflow/decorators/workflow.d.ts +30 -0
  246. package/dist/env/workflow/engine/dag-manager.d.ts +176 -0
  247. package/dist/env/workflow/engine/engine.d.ts +440 -0
  248. package/dist/env/workflow/engine/event-bus.d.ts +54 -0
  249. package/dist/env/workflow/engine/executor.d.ts +122 -0
  250. package/dist/env/workflow/engine/index.d.ts +15 -0
  251. package/dist/env/workflow/engine/index.js +2 -2
  252. package/dist/env/workflow/engine/node-registry.d.ts +159 -0
  253. package/dist/env/workflow/engine/scheduler.d.ts +164 -0
  254. package/dist/env/workflow/extractor/workflow-converter.d.ts +55 -0
  255. package/dist/env/workflow/fixtures.d.ts +401 -0
  256. package/dist/env/workflow/hooks/index.d.ts +4 -0
  257. package/dist/env/workflow/hooks/workflow-hook-points.d.ts +161 -0
  258. package/dist/env/workflow/index.d.ts +30 -0
  259. package/dist/env/workflow/index.js +9 -9
  260. package/dist/env/workflow/metadata/keys.d.ts +6 -0
  261. package/dist/env/workflow/nodes/agent-component-adapter.d.ts +175 -0
  262. package/dist/env/workflow/nodes/agent-node.d.ts +206 -0
  263. package/dist/env/workflow/nodes/ask-user-node.d.ts +66 -0
  264. package/dist/env/workflow/nodes/condition-node.d.ts +39 -0
  265. package/dist/env/workflow/nodes/index.d.ts +8 -0
  266. package/dist/env/workflow/nodes/index.js +1 -1
  267. package/dist/env/workflow/nodes/merge-node.d.ts +40 -0
  268. package/dist/env/workflow/nodes/python-call-node.d.ts +95 -0
  269. package/dist/env/workflow/nodes/skill-node.d.ts +29 -0
  270. package/dist/env/workflow/nodes/tool-node.d.ts +64 -0
  271. package/dist/env/workflow/nodes/workflow-node.d.ts +118 -0
  272. package/dist/env/workflow/plugins/index.d.ts +6 -0
  273. package/dist/env/workflow/plugins/index.js +2 -2
  274. package/dist/env/workflow/plugins/lark-cli-workflow-notify-plugin.d.ts +107 -0
  275. package/dist/env/workflow/plugins/workflow-json-output-plugin.d.ts +166 -0
  276. package/dist/env/workflow/runtime/runtime-cancellation-scope.d.ts +121 -0
  277. package/dist/env/workflow/service/index.d.ts +9 -0
  278. package/dist/env/workflow/service/registry.d.ts +37 -0
  279. package/dist/env/workflow/service/workflow-service.d.ts +422 -0
  280. package/dist/env/workflow/storage/index.d.ts +11 -0
  281. package/dist/env/workflow/storage/mock-repositories.d.ts +106 -0
  282. package/dist/env/workflow/storage/safe-json.d.ts +62 -0
  283. package/dist/env/workflow/storage/sqlite.d.ts +57 -0
  284. package/dist/env/workflow/storage/tag-repo.d.ts +65 -0
  285. package/dist/env/workflow/storage/workflow-repo.d.ts +161 -0
  286. package/dist/env/workflow/tools/ask-user-tool.d.ts +35 -0
  287. package/dist/env/workflow/tools/index.d.ts +16 -0
  288. package/dist/env/workflow/tools/index.js +6 -6
  289. package/dist/env/workflow/tools/run-workflow.d.ts +130 -0
  290. package/dist/env/workflow/tools/submit-json-output-tool.d.ts +38 -0
  291. package/dist/env/workflow/tools/workflow-add-tool.d.ts +47 -0
  292. package/dist/env/workflow/tools/workflow-get-tool.d.ts +29 -0
  293. package/dist/env/workflow/tools/workflow-list-tool.d.ts +55 -0
  294. package/dist/env/workflow/tools/workflow-run-status-tool.d.ts +26 -0
  295. package/dist/env/workflow/tools/workflow-run-stop-tool.d.ts +29 -0
  296. package/dist/env/workflow/tools/workflow-search-tool.d.ts +33 -0
  297. package/dist/env/workflow/tools/workflow-tag-list-tool.d.ts +59 -0
  298. package/dist/env/workflow/tools/workflow-validate-tool.d.ts +69 -0
  299. package/dist/env/workflow/types/context.d.ts +17 -0
  300. package/dist/env/workflow/types/decorators-types.d.ts +182 -0
  301. package/dist/env/workflow/types/edge.d.ts +33 -0
  302. package/dist/env/workflow/types/event.d.ts +869 -0
  303. package/dist/env/workflow/types/index.d.ts +16 -0
  304. package/dist/env/workflow/types/run.d.ts +254 -0
  305. package/dist/env/workflow/types/workflow-error.d.ts +79 -0
  306. package/dist/env/workflow/types/workflow-hil.d.ts +57 -0
  307. package/dist/env/workflow/types/workflow-message.d.ts +193 -0
  308. package/dist/env/workflow/types/workflow-session.d.ts +17 -0
  309. package/dist/env/workflow/types/workflow.d.ts +654 -0
  310. package/dist/env/workflow/types_compat.d.ts +10 -0
  311. package/dist/env/workflow/utils/agent-session-metadata.d.ts +48 -0
  312. package/dist/env/workflow/utils/build-agent-node-output.d.ts +11 -0
  313. package/dist/env/workflow/utils/create-workflow.d.ts +35 -0
  314. package/dist/env/workflow/utils/dependency-prescan.d.ts +67 -0
  315. package/dist/env/workflow/utils/execution-state.d.ts +46 -0
  316. package/dist/env/workflow/utils/extract-agent-json-output.d.ts +6 -0
  317. package/dist/env/workflow/utils/index.d.ts +14 -0
  318. package/dist/env/workflow/utils/index.js +1 -1
  319. package/dist/env/workflow/utils/json-schema-to-zod.d.ts +23 -0
  320. package/dist/env/workflow/utils/node-id-utils.d.ts +20 -0
  321. package/dist/env/workflow/utils/node-output-contracts.d.ts +137 -0
  322. package/dist/env/workflow/utils/node-registry-helper.d.ts +36 -0
  323. package/dist/env/workflow/utils/output-schema-hint.d.ts +7 -0
  324. package/dist/env/workflow/utils/parse-agent-output-config.d.ts +9 -0
  325. package/dist/env/workflow/utils/recovery-validator.d.ts +30 -0
  326. package/dist/env/workflow/utils/redact-command-secrets.d.ts +70 -0
  327. package/dist/env/workflow/utils/sensitive-redact.d.ts +37 -0
  328. package/dist/env/workflow/utils/session-parser.d.ts +23 -0
  329. package/dist/env/workflow/utils/session-recovery.d.ts +122 -0
  330. package/dist/env/workflow/utils/shell-dialect-lint.d.ts +75 -0
  331. package/dist/env/workflow/utils/template-contract-validator.d.ts +87 -0
  332. package/dist/env/workflow/utils/template-resolver.d.ts +285 -0
  333. package/dist/env/workflow/utils/validate-workflow-definition.d.ts +79 -0
  334. package/dist/env/workflow/utils/validation-rules.d.ts +103 -0
  335. package/dist/env/workflow/utils/workflow-message-metadata.d.ts +20 -0
  336. package/dist/env/workflow/utils/workflow-sanitize.d.ts +51 -0
  337. package/dist/env/workflow/workflow-component.d.ts +138 -0
  338. package/dist/index.d.ts +59 -0
  339. package/dist/index.js +21 -21
  340. package/dist/shared/@ai-setting/{roy-agent-core-stnddvx9.js → roy-agent-core-12d2xap8.js} +1 -1
  341. package/dist/shared/@ai-setting/{roy-agent-core-pk1b3kvf.js → roy-agent-core-2b8jtv7m.js} +1 -1
  342. package/dist/shared/@ai-setting/{roy-agent-core-x8n1r7h4.js → roy-agent-core-2bscfrr1.js} +188 -7
  343. package/dist/shared/@ai-setting/{roy-agent-core-gdsqp6j8.js → roy-agent-core-6masakz4.js} +45 -0
  344. package/dist/shared/@ai-setting/{roy-agent-core-vvxb9522.js → roy-agent-core-6qxh4xrm.js} +67 -6
  345. package/dist/shared/@ai-setting/{roy-agent-core-h93v6p6y.js → roy-agent-core-7qy3nffr.js} +2 -2
  346. package/dist/shared/@ai-setting/{roy-agent-core-s214vmmd.js → roy-agent-core-8eqngasy.js} +2 -2
  347. package/dist/shared/@ai-setting/{roy-agent-core-brwzs8wf.js → roy-agent-core-9h72sk1n.js} +1 -1
  348. package/dist/shared/@ai-setting/{roy-agent-core-na73mym1.js → roy-agent-core-a4vzsn0g.js} +212 -1
  349. package/dist/shared/@ai-setting/{roy-agent-core-35s1w7tc.js → roy-agent-core-aer5kw1j.js} +142 -70
  350. package/dist/shared/@ai-setting/{roy-agent-core-j8e92gj8.js → roy-agent-core-b5ew8t0k.js} +0 -59
  351. package/dist/shared/@ai-setting/{roy-agent-core-rcfewbzr.js → roy-agent-core-cd62e9p1.js} +1 -1
  352. package/dist/shared/@ai-setting/{roy-agent-core-39xejr39.js → roy-agent-core-e2z1etk4.js} +1 -1
  353. package/dist/shared/@ai-setting/{roy-agent-core-pkpkctvf.js → roy-agent-core-g36jevrk.js} +14 -183
  354. package/dist/shared/@ai-setting/{roy-agent-core-ezgsem94.js → roy-agent-core-j2nvedt6.js} +465 -128
  355. package/dist/shared/@ai-setting/{roy-agent-core-p2r27era.js → roy-agent-core-mxdc756a.js} +1 -1
  356. package/dist/shared/@ai-setting/{roy-agent-core-p8ak03s0.js → roy-agent-core-w527pcpe.js} +293 -42
  357. package/dist/shared/@ai-setting/{roy-agent-core-3tv1q6f2.js → roy-agent-core-ytr2w0vb.js} +2 -2
  358. package/dist/shared/@ai-setting/{roy-agent-core-yd21n6c7.js → roy-agent-core-zvemdfx5.js} +1 -1
  359. package/dist/test-utils/child-process-mock.d.ts +73 -0
  360. package/dist/util/process/process-tree-killer.d.ts +67 -0
  361. package/dist/utils/id.d.ts +11 -0
  362. package/dist/utils/loose-json.d.ts +30 -0
  363. package/dist/utils/media.d.ts +70 -0
  364. package/dist/utils/temp-file-manager/index.d.ts +99 -0
  365. package/package.json +5 -3
  366. /package/dist/shared/@ai-setting/{roy-agent-core-zy3hqfwg.js → roy-agent-core-0hq21px2.js} +0 -0
  367. /package/dist/shared/@ai-setting/{roy-agent-core-0cfaqnz9.js → roy-agent-core-k25gv86p.js} +0 -0
@@ -0,0 +1,148 @@
1
+ /**
2
+ * @fileoverview Roy-sidecar task port — 通用 duck-typed 存储适配器
3
+ *
4
+ * Task #4380。有些 agent 插件的任务存储**已经有自己的业务模型**(自己的
5
+ * status 词表、自己的 uuid 主键、自己的 audit log),但愿意额外存一个
6
+ * roy 侧车(sidecar)字段来保留 roy 的全部语义。这类存储的共同形状是稳定
7
+ * 的,所以适配逻辑不该在每个 agent 插件里重写一遍。
8
+ *
9
+ * 本模块把这个形状抽象成 {@link RoySidecarTaskStore},并给出唯一实现
10
+ * {@link createRoySidecarTaskPort}。插件侧因此只剩「词表映射」这一件真正
11
+ * 属于它自己的事(business status ↔ roy status)。
12
+ *
13
+ * ```
14
+ * TaskStoreBackend roy 语义(shared,唯一实现)
15
+ * ↓ TaskPersistencePort
16
+ * createRoySidecarTaskPort(store, vocabulary) ← 本文件(shared)
17
+ * ↓ RoySidecarTaskStore
18
+ * plugin TaskStore (openCode / Claude / Codex 各自的业务库)
19
+ * ```
20
+ */
21
+ import type { StoredTaskRecord, TaskPersistencePort } from "./types";
22
+ /**
23
+ * 一条「带 roy 侧车」的存储记录。
24
+ *
25
+ * - `id`:存储自己的主键(uuid / 十进制字符串)
26
+ * - `num`:数值句柄(rowid),roy 用它做 task id
27
+ * - `roy`:roy 侧车(type / progress / project_path / context …)
28
+ * - `data`:operation 的 JSON payload(roy 的 milestone 字段住在这里)
29
+ */
30
+ export interface SidecarTask {
31
+ id: string;
32
+ num?: number;
33
+ title: string;
34
+ description?: string;
35
+ status: string;
36
+ priority: number;
37
+ tags?: string;
38
+ parent_id: string | null;
39
+ session_id?: string | null;
40
+ roy?: Record<string, unknown>;
41
+ created_at: string;
42
+ updated_at: string;
43
+ }
44
+ export interface SidecarOperation {
45
+ id: string;
46
+ num?: number;
47
+ task_id: string | null;
48
+ type: string;
49
+ data: Record<string, unknown>;
50
+ created_at: string;
51
+ }
52
+ /** 带 roy 侧车的存储最小契约(各 agent 插件的 store 都长这样)。 */
53
+ export interface RoySidecarTaskStore {
54
+ createTask(input: {
55
+ title: string;
56
+ description?: string;
57
+ priority?: number;
58
+ owner?: string;
59
+ tags?: string;
60
+ parent_id?: string | null;
61
+ session_id?: string | null;
62
+ roy?: Record<string, unknown>;
63
+ }): Promise<SidecarTask>;
64
+ updateTask(id: string, input: {
65
+ title?: string;
66
+ description?: string;
67
+ status?: string;
68
+ priority?: number;
69
+ tags?: string;
70
+ roy?: Record<string, unknown>;
71
+ }): Promise<SidecarTask | null>;
72
+ getTask(id: string): Promise<SidecarTask | null>;
73
+ /** 按数值句柄读(O(1));没实现就退化成全表扫描。 */
74
+ getTaskByNum?(num: number): Promise<SidecarTask | null>;
75
+ /**
76
+ * 纯分页读取(不做语义过滤 —— 那些由 `TaskStoreBackend` 统一负责)。
77
+ *
78
+ * 刻意**不**声明 `status` / `parent_id`:backend 从不需要它们,而声明一个
79
+ * 用不到的过滤字段只会让签名的结构兼容性变差(业务 store 的 status 通常是
80
+ * 自己的联合类型,`string` 反而不兼容 —— CV round 1)。
81
+ */
82
+ listTasks(filter?: {
83
+ limit?: number;
84
+ offset?: number;
85
+ }): Promise<{
86
+ tasks: SidecarTask[];
87
+ total: number;
88
+ }>;
89
+ deleteTask(id: string): Promise<boolean>;
90
+ /** 重挂父任务(`null` = 提升为根)。 */
91
+ setParentId?(id: string, parentId: string | null): Promise<void>;
92
+ appendOperation(input: {
93
+ task_id: string | null;
94
+ type: string;
95
+ data: Record<string, unknown>;
96
+ }): Promise<SidecarOperation>;
97
+ listOperations(filter?: {
98
+ task_id?: string;
99
+ type?: string;
100
+ limit?: number;
101
+ offset?: number;
102
+ }): Promise<{
103
+ operations: SidecarOperation[];
104
+ total: number;
105
+ }>;
106
+ getOperationByNum?(num: number): Promise<SidecarOperation | null>;
107
+ updateOperation?(num: number, patch: {
108
+ type?: string;
109
+ data?: Record<string, unknown>;
110
+ }): Promise<SidecarOperation | null>;
111
+ deleteOperation?(num: number): Promise<boolean>;
112
+ }
113
+ /**
114
+ * 业务词表 ↔ roy 词表的映射。
115
+ *
116
+ * 这是**唯一**需要每个 agent 插件自己提供的东西:它的业务 status 叫什么,
117
+ * priority 怎么编码。roy 的语义(BFS / depth / deliverable / total …)不需要管。
118
+ */
119
+ export interface SidecarVocabulary {
120
+ /** 存储 status → roy status。 */
121
+ toRoyStatus(storeStatus: string): StoredTaskRecord["status"];
122
+ /** roy status → 存储 status。 */
123
+ toStoreStatus(royStatus: string): string;
124
+ /** 存储数值 priority → roy priority 桶。 */
125
+ toRoyPriority(storePriority?: number): StoredTaskRecord["priority"];
126
+ /** roy priority → 存储数值 priority。 */
127
+ toStorePriority(royPriority?: string): number;
128
+ /** 存储逗号串 tags → roy string[]。 */
129
+ toRoyTags(storeTags?: string | null): string[];
130
+ /** roy string[] tags → 存储逗号串。 */
131
+ toStoreTags(royTags?: string[]): string | undefined;
132
+ }
133
+ export interface RoySidecarPortOptions {
134
+ /** audit log 里表示 roy milestone 的 type 值。 */
135
+ operationType?: string;
136
+ /** 建任务时写入的 owner。 */
137
+ agent?: string;
138
+ /** 全量扫描的分页大小。 */
139
+ scanLimit?: number;
140
+ }
141
+ /**
142
+ * 把任意「带 roy 侧车」的存储接成一个 {@link TaskPersistencePort}。
143
+ *
144
+ * ⚠️ 只做形状翻译 + num↔nativeId 解析:不做 BFS、不做 depth、不拼
145
+ * `Deliverable:`、不自动写 create operation —— 那些是 `TaskStoreBackend`
146
+ * 的职责,所有 agent 插件共享同一份。
147
+ */
148
+ export declare function createRoySidecarTaskPort(store: RoySidecarTaskStore, vocabulary: SidecarVocabulary, options?: RoySidecarPortOptions): TaskPersistencePort;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview SQLite Task Port — roy 自己的 store 的 port 实现
3
+ *
4
+ * Task #4380。`SQLiteTaskStore` 已经实现了 roy 的完整 `TaskStore` 接口(含
5
+ * depth / search / tags 等原生能力)。这个 adapter 只做两件事:
6
+ *
7
+ * 1. 把 `TaskStore` 的入参/出参翻译成 {@link TaskPersistencePort} 的纯原语
8
+ * 2. 补齐 `StoredTaskRecord.nativeId`(roy 的数字 id 直接当 nativeId 用)
9
+ *
10
+ * 语义(BFS / depth / deliverable / create-operation / total …)一律**不在**
11
+ * 这里实现 —— 那些由 `TaskStoreBackend` 统一负责,保证 roy 自己与所有
12
+ * agent 插件跑的是同一套逻辑。
13
+ */
14
+ import type { TaskStore } from "../storage/sqlite-task-store";
15
+ import type { ActionType } from "../types";
16
+ import type { TaskPersistencePort } from "./types";
17
+ /** 让 `TaskOperation.milestoneType` 与 port 的 `ActionType` 对齐。 */
18
+ declare function asActionType(value: string): ActionType;
19
+ /**
20
+ * 把 roy 的 `TaskStore`(`SQLiteTaskStore`)接成一个 port。
21
+ *
22
+ * ```ts
23
+ * const store = new SQLiteTaskStore();
24
+ * const backend = new TaskStoreBackend(createSQLiteTaskPort(store));
25
+ * ```
26
+ */
27
+ export declare function createSQLiteTaskPort(store: TaskStore): TaskPersistencePort;
28
+ export { asActionType };
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @fileoverview TaskStoreBackend — roy 语义的唯一实现
3
+ *
4
+ * Task #4380。这个类把「roy 的 task 语义」从各 agent 插件里收回来,只留一份:
5
+ *
6
+ * - 建任务自动写 `create` operation(review B2)
7
+ * - 完成任务把 deliverable merge 进 `context.deliverable_storage_path`(B3)
8
+ * - operation 列表返回扁平数组(B4)
9
+ * - `total` 是过滤后的真实条数(B5)
10
+ * - 子树 BFS(B1)、`depth` 展开(Y1)
11
+ * - 搜索的 8 个过滤项全部生效(Y2)
12
+ * - `milestoneType` 过滤(Y3)
13
+ * - 词汇单一来源:直接用 roy 的 `TaskStatusEnum` / `ActionTypeEnum`(Y4)
14
+ *
15
+ * 它只依赖 {@link TaskPersistencePort}(纯存取原语),所以:
16
+ *
17
+ * ```ts
18
+ * // roy 自己
19
+ * import { SQLiteTaskStore } from "@ai-setting/roy-agent-core/env/task/storage";
20
+ * import { TaskStoreBackend, createSQLiteTaskPort } from "@ai-setting/roy-agent-core/env/task/backend";
21
+ * const backend = new TaskStoreBackend(createSQLiteTaskPort(new SQLiteTaskStore()));
22
+ *
23
+ * // 任何 agent 插件(openCode / Claude Code / Codex …)
24
+ * const backend = new TaskStoreBackend(myPortOverMyStore);
25
+ * ```
26
+ */
27
+ import type { Task, TaskListResult, TaskOperation } from "../types";
28
+ import type { BackendCreateOperationOptions, BackendCreateTaskOptions, BackendListOperationsOptions, BackendListTasksOptions, BackendSearchTasksOptions, BackendUpdateOperationOptions, BackendUpdateTaskOptions, TaskBackend, TaskBackendOptions, TaskId, TaskPersistencePort } from "./types";
29
+ /** roy Task #2778 v2: deliverable 在 operation 里的统一前缀。 */
30
+ export declare const DELIVERABLE_OPERATION_PREFIX = "Deliverable: ";
31
+ /** 把 deliverable 路径格式化成 operation 的 milestoneDescription。 */
32
+ export declare function formatDeliverableForOperation(deliverableStoragePath?: string): string | undefined;
33
+ export declare class TaskStoreBackend implements TaskBackend {
34
+ private readonly port;
35
+ private readonly options;
36
+ constructor(port: TaskPersistencePort, options?: TaskBackendOptions);
37
+ private get defaultSessionId();
38
+ /**
39
+ * 把任意句柄解析成存储记录。
40
+ *
41
+ * - 数字(或全数字字符串):先问 port 有没有 `getTaskByNum`,没有就扫全表
42
+ * - 其它字符串:当作存储主键(uuid)
43
+ */
44
+ private resolve;
45
+ /** 去掉 port 的 `nativeId`,还原成纯 roy `Task`。 */
46
+ private toTask;
47
+ private toOperation;
48
+ /**
49
+ * Read every row, **including archived** ones.
50
+ *
51
+ * `includeArchived: true` is mandatory here: most stores hide archived rows by
52
+ * default (roy's SQLite appends `status != 'archived'`), so without it
53
+ * `status:"archived"` and `include_archived` would silently match nothing.
54
+ */
55
+ private scanAllTasks;
56
+ createTask(input: BackendCreateTaskOptions): Promise<Task>;
57
+ getTask(id: TaskId): Promise<Task | null>;
58
+ getTaskWithOperations(id: TaskId): Promise<(Task & {
59
+ operations: TaskOperation[];
60
+ }) | null>;
61
+ listTasks(options?: BackendListTasksOptions): Promise<TaskListResult>;
62
+ updateTask(id: TaskId, input: BackendUpdateTaskOptions): Promise<Task | null>;
63
+ deleteTask(id: TaskId): Promise<boolean>;
64
+ completeTask(id: TaskId, sessionId?: string, deliverable?: string): Promise<Task | null>;
65
+ /**
66
+ * review B1 — roy 的 `task-tree-tool.ts` 在子树模式下调这个方法;
67
+ * 老 facade 缺它导致 `task_tree(parent_task_id=…)` 直接抛
68
+ * `taskComponent.getTaskTree is not a function`。
69
+ *
70
+ * @returns 所有后代(**不含** root 自身),BFS 按层展开并扁平化
71
+ */
72
+ getTaskTree(id: TaskId, depth?: number): Promise<Task[]>;
73
+ searchTasksByKeywords(keywords: string[], options?: BackendSearchTasksOptions): Promise<TaskListResult>;
74
+ createOperation(input: BackendCreateOperationOptions): Promise<TaskOperation>;
75
+ listOperations(options?: BackendListOperationsOptions): Promise<TaskOperation[]>;
76
+ getOperation(id: number): Promise<TaskOperation | null>;
77
+ updateOperation(id: number, patch: BackendUpdateOperationOptions): Promise<TaskOperation | null>;
78
+ deleteOperation(id: number): Promise<boolean>;
79
+ /**
80
+ * roy 的过滤语义,一处实现,`listTasks` 与 `searchTasksByKeywords` 共用。
81
+ *
82
+ * 关键点:
83
+ * - 默认排除 `archived`,但**显式** `status="archived"` 时豁免(否则那个
84
+ * 过滤器自相矛盾、永远返回 0 —— #4375 交叉验证 nit #3)
85
+ * - `depth` 的根 = 「父不在可见集合里」的任务,与 roy 的孤儿提升规则一致
86
+ * - `parent_task_id` 只有 `listTasks` 会传(roy 的 `SearchTasksOptions` 没有
87
+ * 这个字段),`searchTasksByKeywords` 永远走不到那个分支
88
+ */
89
+ private applyFilters;
90
+ }
91
+ /** `3` / `"3"` → `3`;其它(uuid、非数字串)→ `undefined`。 */
92
+ export declare function toNumericHandle(id: TaskId): number | undefined;
93
+ /**
94
+ * roy 的 `depth` 语义:`0` 只根 / `1` 根+一层 / `N` N 层 / `-1` 全部。
95
+ *
96
+ * 根的定义:父不在可见集合里(孤儿提升,避免某任务因为父被过滤掉而消失)。
97
+ */
98
+ export declare function allowedIdsByDepth<T extends {
99
+ id: number;
100
+ parent_task_id?: number;
101
+ }>(views: T[], depth: number): Set<number>;
102
+ /**
103
+ * roy Task #2778 契约:`context` 是 JSON 对象,deliverable 作为
104
+ * `deliverable_storage_path` merge 进去,保留所有兄弟 key。
105
+ * 坏 JSON ⇒ 从空对象开始(绝不抛错:完成任务不能被脏 context 打断)。
106
+ */
107
+ export declare function mergeDeliverableIntoContext(rawContext: unknown, deliverable: string): string;
@@ -0,0 +1,282 @@
1
+ /**
2
+ * @fileoverview Task Backend Contract + Persistence Port
3
+ *
4
+ * Task #4380 — 「roy 语义上移」的接口层。
5
+ *
6
+ * ## 为什么需要这一层
7
+ *
8
+ * roy 的工具工厂(`createTaskTool` / `listTasksTool` / …)只依赖一个
9
+ * **duck-typed** 的对象:它们只调用 14 个方法,并不关心底层是不是
10
+ * `TaskComponent`。历史上有两个实现:
11
+ *
12
+ * 1. `TaskComponent`(roy-agent 自己)—— SQLite + hooks + events + tags
13
+ * 2. `roy_task_plugin_for_opencode` 的 `facade.ts`(869 行)—— 把同样的
14
+ * 14 个方法落到插件自己的 store 上
15
+ *
16
+ * 第 2 个实现里混着大量 **roy 语义**(子树 BFS、depth 展开、deliverable 落
17
+ * context、create operation 自动写、扁平 operation 列表、真实 total、搜索
18
+ * 的 8 个过滤…)。这些语义本不属于任何 agent 框架,却因为写着"opencode
19
+ * 插件"而无法被 claude / codex 复用。
20
+ *
21
+ * 本模块把它们收回 core,拆成两层:
22
+ *
23
+ * ```
24
+ * @ai-setting/roy-agent-core/env/task/backend
25
+ * ├── TaskBackend roy 语义(BFS / depth / deliverable / total …)
26
+ * │ ← 本文件定义契约,task-store-backend.ts 实现
27
+ * └── TaskPersistencePort 纯粹的存取原语(不含量级语义)
28
+ * ← roy 的 SQLite 与各 agent 插件的 store 各实现一份
29
+ *
30
+ * plugin-opencode / plugin-claude / plugin-codex
31
+ * └── 只实现 TaskPersistencePort(约 100 行形状对接)→ 自动获得全部 roy 语义
32
+ * ```
33
+ *
34
+ * ## 设计约束
35
+ *
36
+ * - **类型全部来自 roy 自己**(`Task` / `TaskOperation` / `TaskStatusEnum` …),
37
+ * 不手抄、不 re-declare —— 单一词汇来源(review finding Y4)。
38
+ * - 入参直接复用 roy 的 `CreateTaskOptions` / `ListTasksOptions` /
39
+ * `SearchTasksOptions`(只把 `sessionId` 放宽为可选,因为 adapter 有默认值)。
40
+ * - **语义只写一次**:adapter 里不许再出现 BFS / depth / total 之类的逻辑,
41
+ * 这些一律由 `TaskStoreBackend` 负责。
42
+ */
43
+ import type { ActionType, CreateOperationOptions, CreateTaskOptions, ListOperationsOptions, ListTasksOptions, SearchTasksOptions, Task, TaskListResult, TaskOperation, UpdateTaskOptions } from "../types";
44
+ /**
45
+ * roy 工具工厂实际调用的方法集合。
46
+ *
47
+ * ⚠️ 这是**契约**,不是建议:`TaskComponent` 与所有 adapter 都必须满足它。
48
+ * 任何缺失的方法都会让工具在运行时抛 `is not a function`(review finding
49
+ * B1 就是这么来的:`task_tree` 子树模式直接崩)。
50
+ */
51
+ export interface TaskBackend {
52
+ /**
53
+ * 创建任务。
54
+ *
55
+ * 契约(与 `TaskComponent.createTask` 对齐,review finding B2):
56
+ * 成功后会**自动**写入一条 `milestoneType: "create"` 的 operation。
57
+ */
58
+ createTask(input: BackendCreateTaskOptions): Promise<Task>;
59
+ /** 按 id 读取。id 可以是 roy 数字 id,也可以是 adapter 认得的其它句柄(如 uuid)。 */
60
+ getTask(id: TaskId): Promise<Task | null>;
61
+ /**
62
+ * 任务 + 它的 operations。
63
+ *
64
+ * ⚠️ 返回形状必须是 `Task & { operations }`(扁平展开),
65
+ * **不是** `{ task, operations }` —— `task_get` 工具直接 JSON.stringify 它。
66
+ */
67
+ getTaskWithOperations(id: TaskId): Promise<(Task & {
68
+ operations: TaskOperation[];
69
+ }) | null>;
70
+ /** 列表 + 真实总数(`total` 必须是过滤后的真实 COUNT,不能是当前页长度)。 */
71
+ listTasks(options?: BackendListTasksOptions): Promise<TaskListResult>;
72
+ updateTask(id: TaskId, input: BackendUpdateTaskOptions): Promise<Task | null>;
73
+ deleteTask(id: TaskId): Promise<boolean>;
74
+ /**
75
+ * 完成任务。
76
+ *
77
+ * 契约(review finding B3):
78
+ * - `status` → `completed`,`progress` → 100
79
+ * - 若给了 `deliverable`,merge 进 `context.deliverable_storage_path`
80
+ * 并写入 completion operation 的 `milestoneDescription`
81
+ * - `cycle` 类型任务拒绝完成(roy 语义)
82
+ */
83
+ completeTask(id: TaskId, sessionId?: string, deliverable?: string): Promise<Task | null>;
84
+ /** 子树(所有后代,**不含** root),BFS 按层展开,`depth` 限制层数。 */
85
+ getTaskTree(id: TaskId, depth?: number): Promise<Task[]>;
86
+ /** 关键词检索 + 全部 roy 过滤项(review finding Y2)。 */
87
+ searchTasksByKeywords(keywords: string[], options?: BackendSearchTasksOptions): Promise<TaskListResult>;
88
+ /** 写一条 operation。`action_*` 别名会被映射到 `milestone_*`。 */
89
+ createOperation(input: BackendCreateOperationOptions): Promise<TaskOperation>;
90
+ /**
91
+ * 读 operation 列表。
92
+ *
93
+ * ⚠️ 返回**扁平数组**(review finding B4)。`task_operation_list` 工具会做
94
+ * `JSON.stringify({ operations, count: operations.length })`,任何额外嵌套
95
+ * 都会让模型读到 `{"operations":{"operations":[…]}}`。
96
+ */
97
+ listOperations(options?: BackendListOperationsOptions): Promise<TaskOperation[]>;
98
+ getOperation(id: number): Promise<TaskOperation | null>;
99
+ updateOperation(id: number, patch: BackendUpdateOperationOptions): Promise<TaskOperation | null>;
100
+ deleteOperation(id: number): Promise<boolean>;
101
+ }
102
+ /**
103
+ * 任务 / operation 句柄。
104
+ *
105
+ * roy 自己用数字 id;插件 store 用 uuid 主键 + rowid 数值句柄。adapter 负责
106
+ * 把两者都接受进来(全数字字符串按数字处理)。
107
+ */
108
+ export type TaskId = number | string;
109
+ /** `createTask` 放宽版:`sessionId` 可由 backend 的默认值补上。 */
110
+ export type BackendCreateTaskOptions = Omit<CreateTaskOptions, "sessionId"> & {
111
+ sessionId?: string;
112
+ };
113
+ /** `listTasks` 放宽版:`depth` 语义与 roy 一致。 */
114
+ export type BackendListTasksOptions = ListTasksOptions;
115
+ /** `updateTask` 放宽版。 */
116
+ export type BackendUpdateTaskOptions = UpdateTaskOptions;
117
+ /** `searchTasksByKeywords` 放宽版。 */
118
+ export type BackendSearchTasksOptions = SearchTasksOptions;
119
+ /** `createOperation` 放宽版:`sessionId` 可省略。 */
120
+ export type BackendCreateOperationOptions = Omit<CreateOperationOptions, "sessionId"> & {
121
+ sessionId?: string;
122
+ };
123
+ /** `listOperations` 放宽版:`taskId` 接受任意句柄。 */
124
+ export interface BackendListOperationsOptions extends Omit<ListOperationsOptions, "taskId"> {
125
+ taskId?: TaskId;
126
+ }
127
+ /**
128
+ * operation 更新 payload。
129
+ *
130
+ * 比 `UpdateOperationOptions` 多了 `sessionId` / `mdPath` / `milestoneType`,
131
+ * 因为 adapter 需要能重写整条 operation 的 data blob(插件的 operation 是
132
+ * 一个 JSON 列,roy 的是独立列)。
133
+ */
134
+ export interface BackendUpdateOperationOptions {
135
+ sessionId?: string;
136
+ milestoneType?: ActionType;
137
+ milestoneTitle?: string;
138
+ milestoneDescription?: string;
139
+ processDescription?: string;
140
+ mdPath?: string;
141
+ /** @deprecated 旧别名,映射到 milestoneType。 */
142
+ actionType?: ActionType;
143
+ /** @deprecated 旧别名,映射到 milestoneTitle。 */
144
+ actionTitle?: string;
145
+ /** @deprecated 旧别名,映射到 milestoneDescription。 */
146
+ actionDescription?: string;
147
+ }
148
+ /** 构造 backend 时的可选配置。 */
149
+ export interface TaskBackendOptions {
150
+ /** 创建 task / operation 时默认写入的 session id(缺省 `"unknown"`)。 */
151
+ sessionId?: string;
152
+ }
153
+ /**
154
+ * 一条已持久化的任务记录:roy `Task` + 存储自己的主键。
155
+ *
156
+ * - `nativeId` 是存储的主键(uuid / 字符串 rowid),adapter 内部用
157
+ * - `id` / `parent_task_id` 是 roy 的数字句柄,adapter 负责转换
158
+ */
159
+ export interface StoredTaskRecord extends Task {
160
+ /** 存储自己的主键(uuid / 十进制字符串)。 */
161
+ nativeId: string;
162
+ }
163
+ /**
164
+ * 一条已持久化的 operation 记录:roy `TaskOperation` + 存储自己的主键。
165
+ */
166
+ export interface StoredOperationRecord extends TaskOperation {
167
+ /** 存储自己的主键(uuid / 十进制字符串)。 */
168
+ nativeId: string;
169
+ }
170
+ /** port 的建任务入参(roy 实体 + 可选的 owner)。 */
171
+ export interface PortCreateTaskInput {
172
+ title: string;
173
+ description?: string;
174
+ status?: Task["status"];
175
+ priority?: Task["priority"];
176
+ type?: Task["type"];
177
+ progress?: number;
178
+ current_status?: string;
179
+ goals_and_expected_deliverables?: string;
180
+ parent_task_id?: number;
181
+ due_date?: string;
182
+ tags?: string[];
183
+ project_path: string;
184
+ context: string;
185
+ sessionId?: string;
186
+ /**
187
+ * 记录创建者。**可选**,roy 自己的 store 忽略它;带业务模型的 adapter
188
+ * (插件)用它写自己的 `owner` 列。放这里是刻意的:port 已经是"桥接层",
189
+ * 与其让每个 adapter 在闭包里偷偷注入,不如显式声明。
190
+ */
191
+ owner?: string;
192
+ }
193
+ /** port 的更新入参。`null` 表示显式置空(用于把子任务提升为根)。 */
194
+ export interface PortUpdateTaskInput {
195
+ title?: string;
196
+ description?: string;
197
+ status?: Task["status"];
198
+ priority?: Task["priority"];
199
+ type?: Task["type"];
200
+ progress?: number;
201
+ current_status?: string;
202
+ goals_and_expected_deliverables?: string;
203
+ due_date?: string;
204
+ tags?: string[];
205
+ project_path?: string;
206
+ context?: string;
207
+ /** `null` = 提升为根任务。 */
208
+ parent_task_id?: number | null;
209
+ }
210
+ /** port 的建 operation 入参。 */
211
+ export interface PortCreateOperationInput {
212
+ taskId: number;
213
+ /** 存储主键(adapter 用;缺省时由 port 从 taskId 反查)。 */
214
+ taskNativeId?: string;
215
+ sessionId: string;
216
+ milestoneType: ActionType;
217
+ milestoneTitle: string;
218
+ milestoneDescription: string;
219
+ processDescription: string;
220
+ mdPath?: string;
221
+ }
222
+ /** port 的更新 operation 入参。 */
223
+ export interface PortUpdateOperationInput {
224
+ sessionId?: string;
225
+ milestoneType?: ActionType;
226
+ milestoneTitle?: string;
227
+ milestoneDescription?: string;
228
+ processDescription?: string;
229
+ mdPath?: string;
230
+ }
231
+ /**
232
+ * 纯存取原语。
233
+ *
234
+ * 这里**不允许**出现任何 roy 语义:
235
+ * - 不解释 `depth`(那是 backend 的事)
236
+ * - 不拼 `Deliverable: …`(那是 backend 的事)
237
+ * - 不自动写 create operation(那是 backend 的事)
238
+ * - 不做 total 收敛(原样返回存储自己的 COUNT / 长度)
239
+ *
240
+ * 只有 `num ↔ nativeId` 的解析是 port 的职责,因为只有它知道自己的主键。
241
+ */
242
+ export interface TaskPersistencePort {
243
+ createTask(input: PortCreateTaskInput): Promise<StoredTaskRecord>;
244
+ /** 按存储主键读取。 */
245
+ getTask(nativeId: string): Promise<StoredTaskRecord | null>;
246
+ /** 按 roy 数字句柄读取。没实现时 backend 会退回全表扫描。 */
247
+ getTaskByNum?(num: number): Promise<StoredTaskRecord | null>;
248
+ /**
249
+ * 列任务(**纯分页原语**)。
250
+ *
251
+ * 不带任何语义过滤:需要 status / depth / priority 等过滤时由 backend
252
+ * 自行在内存里做(adapter 的库都很小,实测 < 2k 行)。
253
+ *
254
+ * ⚠️ `includeArchived` 不是语义过滤,而是「让 archived 行可见」这条存储层
255
+ * 开关:很多 store(含 roy 自己的 SQLite)默认在 SQL 里排除它们。backend
256
+ * 在做全量扫描时必须传 `true`,否则 `status="archived"` 之类的查询永远空。
257
+ */
258
+ listTasks(options?: {
259
+ limit?: number;
260
+ offset?: number;
261
+ includeArchived?: boolean;
262
+ }): Promise<{
263
+ tasks: StoredTaskRecord[];
264
+ total: number;
265
+ }>;
266
+ updateTask(nativeId: string, patch: PortUpdateTaskInput): Promise<StoredTaskRecord | null>;
267
+ deleteTask(nativeId: string): Promise<boolean>;
268
+ createOperation(input: PortCreateOperationInput): Promise<StoredOperationRecord>;
269
+ listOperations(options?: {
270
+ taskNativeId?: string;
271
+ limit?: number;
272
+ offset?: number;
273
+ }): Promise<{
274
+ operations: StoredOperationRecord[];
275
+ total: number;
276
+ }>;
277
+ getOperationByNum?(num: number): Promise<StoredOperationRecord | null>;
278
+ updateOperationByNum?(num: number, patch: PortUpdateOperationInput): Promise<StoredOperationRecord | null>;
279
+ deleteOperationByNum?(num: number): Promise<boolean>;
280
+ }
281
+ /** `TaskBackend` 的方法名(编译期守卫用)。 */
282
+ export type TaskBackendMethodName = keyof TaskBackend;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 在异步作用域内暴露 bgTaskId 给 fn。
3
+ */
4
+ export declare function runWithBgTaskIdAsync<T>(bgTaskId: string, fn: () => Promise<T>): Promise<T>;
5
+ /**
6
+ * 当前 ALS 栈顶的 bgTaskId(如果存在)。
7
+ * 在 workflow_run 工具中调用:若返回 undefined 则跳过 attach(主 session 场景)。
8
+ */
9
+ export declare function getCurrentBgTaskId(): string | undefined;