@ai-setting/roy-agent-core 1.0.0

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 (378) hide show
  1. package/dist/index.js +99145 -0
  2. package/package.json +114 -0
  3. package/src/config/config-component.test.ts +627 -0
  4. package/src/config/config-component.ts +906 -0
  5. package/src/config/config-parser.test.ts +319 -0
  6. package/src/config/config-parser.ts +203 -0
  7. package/src/config/decentralized-config.test.ts +740 -0
  8. package/src/config/env-key.ts +210 -0
  9. package/src/config/env-source.test.ts +252 -0
  10. package/src/config/env-source.ts +301 -0
  11. package/src/config/file-source.test.ts +357 -0
  12. package/src/config/file-source.ts +421 -0
  13. package/src/config/index.ts +24 -0
  14. package/src/config/protocol-resolver.test.ts +217 -0
  15. package/src/config/protocol-resolver.ts +228 -0
  16. package/src/env/agent/agent-component.abort.test.ts +511 -0
  17. package/src/env/agent/agent-component.record-session.test.ts +349 -0
  18. package/src/env/agent/agent-component.test.ts +1389 -0
  19. package/src/env/agent/agent-component.tool-error.test.ts +327 -0
  20. package/src/env/agent/agent-component.ts +1711 -0
  21. package/src/env/agent/agent-config-registration.test.ts +226 -0
  22. package/src/env/agent/agent-config-registration.ts +46 -0
  23. package/src/env/agent/agent-reminder-plugin.integration.test.ts +243 -0
  24. package/src/env/agent/index.ts +10 -0
  25. package/src/env/agent/summary-agent.parse-hint.test.ts +360 -0
  26. package/src/env/agent/summary-agent.ts +508 -0
  27. package/src/env/agent/types.ts +536 -0
  28. package/src/env/commands/commands-component.test.ts +364 -0
  29. package/src/env/commands/commands-component.ts +604 -0
  30. package/src/env/commands/commands-config-registration.test.ts +198 -0
  31. package/src/env/commands/commands-config-registration.ts +38 -0
  32. package/src/env/commands/index.ts +21 -0
  33. package/src/env/commands/parser.test.ts +203 -0
  34. package/src/env/commands/parser.ts +115 -0
  35. package/src/env/commands/types.ts +184 -0
  36. package/src/env/commands-prompt-integration.test.ts +243 -0
  37. package/src/env/component-env.test.ts +119 -0
  38. package/src/env/component.ts +335 -0
  39. package/src/env/constants.test.ts +72 -0
  40. package/src/env/constants.ts +123 -0
  41. package/src/env/debug/debug-component.test.ts +114 -0
  42. package/src/env/debug/debug-component.ts +547 -0
  43. package/src/env/debug/formatters/index.ts +9 -0
  44. package/src/env/debug/formatters/repl-formatter.test.ts +139 -0
  45. package/src/env/debug/formatters/repl-formatter.ts +358 -0
  46. package/src/env/debug/formatters/trace-formatter.test.ts +119 -0
  47. package/src/env/debug/formatters/trace-formatter.ts +191 -0
  48. package/src/env/debug/formatters/tree-formatter.test.ts +107 -0
  49. package/src/env/debug/formatters/tree-formatter.ts +325 -0
  50. package/src/env/debug/index.ts +38 -0
  51. package/src/env/debug/parser/regex-parser.test.ts +201 -0
  52. package/src/env/debug/parser/regex-parser.ts +196 -0
  53. package/src/env/debug/parser/span-builder.test.ts +241 -0
  54. package/src/env/debug/parser/span-builder.ts +386 -0
  55. package/src/env/debug/reader/log-reader.test.ts +170 -0
  56. package/src/env/debug/reader/log-reader.ts +186 -0
  57. package/src/env/debug/reader/span-db-reader.test.ts +118 -0
  58. package/src/env/debug/reader/span-db-reader.ts +201 -0
  59. package/src/env/debug/types.test.ts +187 -0
  60. package/src/env/debug/types.ts +171 -0
  61. package/src/env/environment-init.test.ts +183 -0
  62. package/src/env/environment-lifecycle.test.ts +516 -0
  63. package/src/env/environment-service.test.ts +332 -0
  64. package/src/env/environment.handle-query.test.ts +96 -0
  65. package/src/env/environment.test.ts +232 -0
  66. package/src/env/environment.ts +708 -0
  67. package/src/env/errors.test.ts +165 -0
  68. package/src/env/errors.ts +157 -0
  69. package/src/env/event-source/event-source-agent-handler.test.ts +193 -0
  70. package/src/env/event-source/event-source-agent-handler.ts +111 -0
  71. package/src/env/event-source/event-source-component.process-cleanup.test.ts +236 -0
  72. package/src/env/event-source/event-source-component.stop.test.ts +346 -0
  73. package/src/env/event-source/event-source-component.test.ts +1207 -0
  74. package/src/env/event-source/event-source-component.ts +1379 -0
  75. package/src/env/event-source/event-source-config-registration.test.ts +242 -0
  76. package/src/env/event-source/event-source-config-registration.ts +37 -0
  77. package/src/env/event-source/event-source-integration.test.ts +320 -0
  78. package/src/env/event-source/event-source-platform.test.ts +630 -0
  79. package/src/env/event-source/types.ts +298 -0
  80. package/src/env/hook/global-hook-manager.ts +162 -0
  81. package/src/env/hook/hook-manager.test.ts +374 -0
  82. package/src/env/hook/hook-manager.ts +309 -0
  83. package/src/env/hook/index.ts +38 -0
  84. package/src/env/hook/types.ts +138 -0
  85. package/src/env/index.ts +144 -0
  86. package/src/env/interface.ts +203 -0
  87. package/src/env/llm/hooks.test.ts +293 -0
  88. package/src/env/llm/hooks.ts +316 -0
  89. package/src/env/llm/index.ts +61 -0
  90. package/src/env/llm/invoke-threshold-check.test.ts +88 -0
  91. package/src/env/llm/invoke-timeout.test.ts +54 -0
  92. package/src/env/llm/invoke.test.ts +71 -0
  93. package/src/env/llm/invoke.ts +1039 -0
  94. package/src/env/llm/llm-config.test.ts +523 -0
  95. package/src/env/llm/llm.test.ts +233 -0
  96. package/src/env/llm/llm.ts +568 -0
  97. package/src/env/llm/provider.test.ts +182 -0
  98. package/src/env/llm/provider.ts +108 -0
  99. package/src/env/llm/transform.test.ts +251 -0
  100. package/src/env/llm/transform.ts +286 -0
  101. package/src/env/llm/types.test.ts +580 -0
  102. package/src/env/llm/types.ts +424 -0
  103. package/src/env/log-trace/decorator-otel.test.ts +182 -0
  104. package/src/env/log-trace/decorator.ts +230 -0
  105. package/src/env/log-trace/index.ts +79 -0
  106. package/src/env/log-trace/log-trace-component.test.ts +242 -0
  107. package/src/env/log-trace/log-trace-component.ts +497 -0
  108. package/src/env/log-trace/log-trace-config-registration.test.ts +348 -0
  109. package/src/env/log-trace/log-trace-config-registration.ts +45 -0
  110. package/src/env/log-trace/logger.test.ts +149 -0
  111. package/src/env/log-trace/logger.ts +522 -0
  112. package/src/env/log-trace/opentelemetry/cli-propagation.test.ts +147 -0
  113. package/src/env/log-trace/opentelemetry/cli-propagation.ts +194 -0
  114. package/src/env/log-trace/opentelemetry/integration.test.ts +668 -0
  115. package/src/env/log-trace/opentelemetry/mod.ts +25 -0
  116. package/src/env/log-trace/opentelemetry/propagation-env.test.ts +181 -0
  117. package/src/env/log-trace/opentelemetry/propagation-env.ts +136 -0
  118. package/src/env/log-trace/opentelemetry/propagation.test.ts +259 -0
  119. package/src/env/log-trace/opentelemetry/propagation.ts +215 -0
  120. package/src/env/log-trace/opentelemetry/tracer-provider-context.test.ts +166 -0
  121. package/src/env/log-trace/opentelemetry/tracer-provider.test.ts +379 -0
  122. package/src/env/log-trace/opentelemetry/tracer-provider.ts +612 -0
  123. package/src/env/log-trace/span-storage.test.ts +145 -0
  124. package/src/env/log-trace/span-storage.ts +230 -0
  125. package/src/env/log-trace/trace-context.test.ts +187 -0
  126. package/src/env/log-trace/trace-context.ts +162 -0
  127. package/src/env/log-trace/types.test.ts +63 -0
  128. package/src/env/log-trace/types.ts +172 -0
  129. package/src/env/mcp/README.md +244 -0
  130. package/src/env/mcp/__integration__/mcp-component.integration.test.ts +373 -0
  131. package/src/env/mcp/config.test.ts +74 -0
  132. package/src/env/mcp/config.ts +116 -0
  133. package/src/env/mcp/index.ts +41 -0
  134. package/src/env/mcp/loader.test.ts +161 -0
  135. package/src/env/mcp/loader.ts +209 -0
  136. package/src/env/mcp/mcp-component.test.ts +111 -0
  137. package/src/env/mcp/mcp-component.ts +358 -0
  138. package/src/env/mcp/mcp-config-registration.test.ts +304 -0
  139. package/src/env/mcp/mcp-config-registration.ts +50 -0
  140. package/src/env/mcp/scanner.test.ts +170 -0
  141. package/src/env/mcp/scanner.ts +246 -0
  142. package/src/env/mcp/tool/adapter.test.ts +520 -0
  143. package/src/env/mcp/tool/adapter.ts +521 -0
  144. package/src/env/mcp/tool/index.ts +5 -0
  145. package/src/env/mcp/types.test.ts +171 -0
  146. package/src/env/mcp/types.ts +79 -0
  147. package/src/env/memory/README.md +177 -0
  148. package/src/env/memory/built-in/index.ts +59 -0
  149. package/src/env/memory/built-in/recall-memory.ts +103 -0
  150. package/src/env/memory/built-in/record-memory.ts +148 -0
  151. package/src/env/memory/index.ts +20 -0
  152. package/src/env/memory/memory-component.test.ts +239 -0
  153. package/src/env/memory/memory-component.ts +503 -0
  154. package/src/env/memory/memory-config-registration.test.ts +67 -0
  155. package/src/env/memory/memory-config-registration.ts +48 -0
  156. package/src/env/memory/memory-config.ts +45 -0
  157. package/src/env/memory/memory-file.test.ts +268 -0
  158. package/src/env/memory/plugin/index.ts +48 -0
  159. package/src/env/memory/plugin/memory-agent.test.ts +249 -0
  160. package/src/env/memory/plugin/memory-agent.ts +365 -0
  161. package/src/env/memory/plugin/memory-manager.ts +198 -0
  162. package/src/env/memory/plugin/memory-plugin-agent.test.ts +145 -0
  163. package/src/env/memory/plugin/memory-plugin.ts +210 -0
  164. package/src/env/memory/plugin/plugin-simplified.test.ts +51 -0
  165. package/src/env/memory/plugin/recall-memory.test.ts +106 -0
  166. package/src/env/memory/plugin/recall-memory.ts +53 -0
  167. package/src/env/memory/plugin/types.ts +101 -0
  168. package/src/env/memory/tools/memory-agent-tools.ts +228 -0
  169. package/src/env/memory/types.ts +85 -0
  170. package/src/env/paths.ts +118 -0
  171. package/src/env/prompt/index.ts +18 -0
  172. package/src/env/prompt/memory-prompts.test.ts +91 -0
  173. package/src/env/prompt/prompt-component.test.ts +491 -0
  174. package/src/env/prompt/prompt-component.ts +619 -0
  175. package/src/env/prompt/prompt-config-registration.test.ts +213 -0
  176. package/src/env/prompt/prompt-config-registration.ts +39 -0
  177. package/src/env/prompt/prompts-index.ts +504 -0
  178. package/src/env/prompt/renderer.ts +67 -0
  179. package/src/env/prompt/types.ts +136 -0
  180. package/src/env/session/hooks.ts +18 -0
  181. package/src/env/session/index.ts +37 -0
  182. package/src/env/session/search-query-parser.test.ts +425 -0
  183. package/src/env/session/search-query-parser.ts +171 -0
  184. package/src/env/session/session-checkpoint.test.ts +523 -0
  185. package/src/env/session/session-component.extract-recent-messages.test.ts +209 -0
  186. package/src/env/session/session-component.test.ts +132 -0
  187. package/src/env/session/session-component.ts +1249 -0
  188. package/src/env/session/session-config-registration.test.ts +138 -0
  189. package/src/env/session/session-config-registration.ts +52 -0
  190. package/src/env/session/session-message-converter.test.ts +763 -0
  191. package/src/env/session/session-message-converter.ts +415 -0
  192. package/src/env/session/session-message-e2e.test.ts +448 -0
  193. package/src/env/session/session-search.test.ts +391 -0
  194. package/src/env/session/session-store.test.ts +362 -0
  195. package/src/env/session/session-store.ts +141 -0
  196. package/src/env/session/storage/index.ts +6 -0
  197. package/src/env/session/storage/memory.ts +502 -0
  198. package/src/env/session/storage/sqlite.ts +794 -0
  199. package/src/env/session/types.ts +742 -0
  200. package/src/env/skill/config.ts +39 -0
  201. package/src/env/skill/index.ts +6 -0
  202. package/src/env/skill/parser.test.ts +116 -0
  203. package/src/env/skill/parser.ts +77 -0
  204. package/src/env/skill/scanner.test.ts +211 -0
  205. package/src/env/skill/scanner.ts +119 -0
  206. package/src/env/skill/skill-component.test.ts +234 -0
  207. package/src/env/skill/skill-component.ts +352 -0
  208. package/src/env/skill/skill-config-registration.test.ts +60 -0
  209. package/src/env/skill/skill-config-registration.ts +43 -0
  210. package/src/env/skill/tool/index.ts +1 -0
  211. package/src/env/skill/tool/skill-tool.test.ts +100 -0
  212. package/src/env/skill/tool/skill-tool.ts +72 -0
  213. package/src/env/skill/types.ts +64 -0
  214. package/src/env/task/delegate/delegate-tool.test.ts +498 -0
  215. package/src/env/task/delegate/delegate-tool.ts +1014 -0
  216. package/src/env/task/delegate/index.ts +18 -0
  217. package/src/env/task/delegate/stop-tool.test.ts +140 -0
  218. package/src/env/task/delegate/stop-tool.ts +119 -0
  219. package/src/env/task/delegate/task-events.test.ts +178 -0
  220. package/src/env/task/delegate/task-events.ts +143 -0
  221. package/src/env/task/hooks/contexts.test.ts +92 -0
  222. package/src/env/task/hooks/contexts.ts +192 -0
  223. package/src/env/task/hooks/index.ts +23 -0
  224. package/src/env/task/hooks/task-hook-points.test.ts +32 -0
  225. package/src/env/task/hooks/task-hook-points.ts +54 -0
  226. package/src/env/task/index.ts +7 -0
  227. package/src/env/task/plugins/index.ts +13 -0
  228. package/src/env/task/plugins/task-plugin.test.ts +74 -0
  229. package/src/env/task/plugins/task-plugin.ts +89 -0
  230. package/src/env/task/plugins/task-tag-plugin.test.ts +377 -0
  231. package/src/env/task/plugins/task-tag-plugin.ts +319 -0
  232. package/src/env/task/plugins/task-workflow-extractor.integration.test.ts +226 -0
  233. package/src/env/task/plugins/workflow-extractor-agent.test.ts +107 -0
  234. package/src/env/task/plugins/workflow-extractor-agent.ts +225 -0
  235. package/src/env/task/storage/index.ts +6 -0
  236. package/src/env/task/storage/sqlite-task-store.test.ts +283 -0
  237. package/src/env/task/storage/sqlite-task-store.ts +903 -0
  238. package/src/env/task/storage/task-search.test.ts +291 -0
  239. package/src/env/task/tag-service.test.ts +198 -0
  240. package/src/env/task/tag-service.ts +264 -0
  241. package/src/env/task/task-component.test.ts +193 -0
  242. package/src/env/task/task-component.ts +658 -0
  243. package/src/env/task/task-config-registration.test.ts +57 -0
  244. package/src/env/task/task-config-registration.ts +37 -0
  245. package/src/env/task/task-types.test.ts +137 -0
  246. package/src/env/task/tools/complete-tool.ts +44 -0
  247. package/src/env/task/tools/create-tool.ts +49 -0
  248. package/src/env/task/tools/delete-tool.ts +43 -0
  249. package/src/env/task/tools/get-tool.ts +59 -0
  250. package/src/env/task/tools/index.ts +10 -0
  251. package/src/env/task/tools/list-tool.ts +40 -0
  252. package/src/env/task/tools/operation/create-tool.ts +48 -0
  253. package/src/env/task/tools/operation/delete-tool.ts +43 -0
  254. package/src/env/task/tools/operation/get-tool.ts +43 -0
  255. package/src/env/task/tools/operation/index.ts +9 -0
  256. package/src/env/task/tools/operation/list-tool.ts +40 -0
  257. package/src/env/task/tools/operation/operation-tools.test.ts +274 -0
  258. package/src/env/task/tools/operation/operation-types.ts +75 -0
  259. package/src/env/task/tools/operation/update-tool.ts +47 -0
  260. package/src/env/task/tools/task-tools.test.ts +203 -0
  261. package/src/env/task/tools/task-types.test.ts +75 -0
  262. package/src/env/task/tools/task-types.ts +68 -0
  263. package/src/env/task/tools/update-tool.ts +70 -0
  264. package/src/env/task/types.ts +160 -0
  265. package/src/env/tool/built-in/bash.ts +201 -0
  266. package/src/env/tool/built-in/echo.ts +29 -0
  267. package/src/env/tool/built-in/edit-file.test.ts +136 -0
  268. package/src/env/tool/built-in/edit-file.ts +92 -0
  269. package/src/env/tool/built-in/glob.test.ts +94 -0
  270. package/src/env/tool/built-in/glob.ts +65 -0
  271. package/src/env/tool/built-in/grep.test.ts +122 -0
  272. package/src/env/tool/built-in/grep.ts +108 -0
  273. package/src/env/tool/built-in/index.ts +44 -0
  274. package/src/env/tool/built-in/read-file.test.ts +84 -0
  275. package/src/env/tool/built-in/read-file.ts +75 -0
  276. package/src/env/tool/built-in/write-file.test.ts +119 -0
  277. package/src/env/tool/built-in/write-file.ts +68 -0
  278. package/src/env/tool/index.ts +24 -0
  279. package/src/env/tool/registry.test.ts +257 -0
  280. package/src/env/tool/registry.ts +167 -0
  281. package/src/env/tool/tool-component.test.ts +559 -0
  282. package/src/env/tool/tool-component.ts +563 -0
  283. package/src/env/tool/tool-config-registration.test.ts +249 -0
  284. package/src/env/tool/tool-config-registration.ts +46 -0
  285. package/src/env/tool/types.ts +267 -0
  286. package/src/env/tool/validator.test.ts +143 -0
  287. package/src/env/tool/validator.ts +44 -0
  288. package/src/env/types.ts +180 -0
  289. package/src/env/workflow/ask-user-tool-registration.test.ts +216 -0
  290. package/src/env/workflow/complex-workflow.integration.test.ts +1900 -0
  291. package/src/env/workflow/decorators/decorator-node.ts +229 -0
  292. package/src/env/workflow/decorators/decorator.test.ts +196 -0
  293. package/src/env/workflow/decorators/edge.ts +82 -0
  294. package/src/env/workflow/decorators/index.ts +31 -0
  295. package/src/env/workflow/decorators/node-as.ts +98 -0
  296. package/src/env/workflow/decorators/workflow.ts +54 -0
  297. package/src/env/workflow/engine/dag-manager.test.ts +570 -0
  298. package/src/env/workflow/engine/dag-manager.ts +594 -0
  299. package/src/env/workflow/engine/engine.ts +1422 -0
  300. package/src/env/workflow/engine/event-bus.test.ts +359 -0
  301. package/src/env/workflow/engine/event-bus.ts +156 -0
  302. package/src/env/workflow/engine/executor-agent-session.test.ts +84 -0
  303. package/src/env/workflow/engine/executor.test.ts +619 -0
  304. package/src/env/workflow/engine/executor.ts +593 -0
  305. package/src/env/workflow/engine/index.ts +24 -0
  306. package/src/env/workflow/engine/node-registry.test.ts +560 -0
  307. package/src/env/workflow/engine/node-registry.ts +289 -0
  308. package/src/env/workflow/engine/resume-removed.test.ts +22 -0
  309. package/src/env/workflow/engine/scheduler.test.ts +715 -0
  310. package/src/env/workflow/engine/scheduler.ts +318 -0
  311. package/src/env/workflow/engine/workflow-engine.test.ts +815 -0
  312. package/src/env/workflow/extractor/workflow-converter.ts +306 -0
  313. package/src/env/workflow/fixtures.ts +380 -0
  314. package/src/env/workflow/index.ts +38 -0
  315. package/src/env/workflow/integration/run-resume-unified.test.ts +186 -0
  316. package/src/env/workflow/integration/service-integration.test.ts +267 -0
  317. package/src/env/workflow/metadata/keys.ts +12 -0
  318. package/src/env/workflow/nodes/agent-component-adapter.test.ts +318 -0
  319. package/src/env/workflow/nodes/agent-component-adapter.ts +448 -0
  320. package/src/env/workflow/nodes/agent-node.test.ts +371 -0
  321. package/src/env/workflow/nodes/agent-node.ts +598 -0
  322. package/src/env/workflow/nodes/ask-user-node.ts +113 -0
  323. package/src/env/workflow/nodes/condition-node.ts +200 -0
  324. package/src/env/workflow/nodes/index.ts +9 -0
  325. package/src/env/workflow/nodes/merge-node.ts +141 -0
  326. package/src/env/workflow/nodes/skill-node.test.ts +253 -0
  327. package/src/env/workflow/nodes/skill-node.ts +393 -0
  328. package/src/env/workflow/nodes/tool-node.test.ts +251 -0
  329. package/src/env/workflow/nodes/tool-node.ts +493 -0
  330. package/src/env/workflow/nodes/workflow-llm-history.test.ts +455 -0
  331. package/src/env/workflow/nodes/workflow-node.test.ts +315 -0
  332. package/src/env/workflow/nodes/workflow-node.ts +311 -0
  333. package/src/env/workflow/service/index.ts +27 -0
  334. package/src/env/workflow/service/registry.test.ts +133 -0
  335. package/src/env/workflow/service/registry.ts +71 -0
  336. package/src/env/workflow/service/workflow-service.test.ts +310 -0
  337. package/src/env/workflow/service/workflow-service.ts +393 -0
  338. package/src/env/workflow/storage/index.ts +28 -0
  339. package/src/env/workflow/storage/mock-repositories.ts +385 -0
  340. package/src/env/workflow/storage/sqlite.test.ts +179 -0
  341. package/src/env/workflow/storage/sqlite.ts +163 -0
  342. package/src/env/workflow/storage/workflow-repo.test.ts +780 -0
  343. package/src/env/workflow/storage/workflow-repo.ts +342 -0
  344. package/src/env/workflow/tools/ask-user-tool.ts +82 -0
  345. package/src/env/workflow/tools/index.ts +26 -0
  346. package/src/env/workflow/tools/run-workflow.test.ts +352 -0
  347. package/src/env/workflow/tools/run-workflow.ts +214 -0
  348. package/src/env/workflow/types/context.ts +18 -0
  349. package/src/env/workflow/types/decorators-types.ts +198 -0
  350. package/src/env/workflow/types/event.test.ts +515 -0
  351. package/src/env/workflow/types/event.ts +193 -0
  352. package/src/env/workflow/types/index.ts +49 -0
  353. package/src/env/workflow/types/run.test.ts +437 -0
  354. package/src/env/workflow/types/run.ts +173 -0
  355. package/src/env/workflow/types/workflow-hil.ts +114 -0
  356. package/src/env/workflow/types/workflow-message.test.ts +138 -0
  357. package/src/env/workflow/types/workflow-message.ts +196 -0
  358. package/src/env/workflow/types/workflow-session.test.ts +95 -0
  359. package/src/env/workflow/types/workflow-session.ts +59 -0
  360. package/src/env/workflow/types/workflow.test.ts +495 -0
  361. package/src/env/workflow/types/workflow.ts +195 -0
  362. package/src/env/workflow/types_compat.ts +51 -0
  363. package/src/env/workflow/utils/create-workflow.ts +47 -0
  364. package/src/env/workflow/utils/execution-state.ts +245 -0
  365. package/src/env/workflow/utils/index.ts +18 -0
  366. package/src/env/workflow/utils/node-registry-helper.ts +58 -0
  367. package/src/env/workflow/utils/recovery-validator.test.ts +460 -0
  368. package/src/env/workflow/utils/recovery-validator.ts +377 -0
  369. package/src/env/workflow/utils/session-parser.test.ts +111 -0
  370. package/src/env/workflow/utils/session-parser.ts +94 -0
  371. package/src/env/workflow/utils/session-recovery.test.ts +334 -0
  372. package/src/env/workflow/utils/session-recovery.ts +188 -0
  373. package/src/env/workflow/utils/template-resolver.test.ts +258 -0
  374. package/src/env/workflow/utils/template-resolver.ts +436 -0
  375. package/src/env/workflow/utils/validation-rules.ts +149 -0
  376. package/src/env/workflow/workflow-component.ts +544 -0
  377. package/src/index.ts +422 -0
  378. package/src/utils/id.ts +21 -0
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @fileoverview Hook 系统统一导出
3
+ *
4
+ * 注意:HookContext 泛型版本从 ./types 导出
5
+ * Agent 特有的 HookContext 包含 iteration, maxIterations 等字段,在 ./agent/types.ts 中
6
+ */
7
+
8
+ export {
9
+ type HookPhase,
10
+ type HookMeta,
11
+ type HookContext,
12
+ type Hook,
13
+ type HookFn,
14
+ type HookActionType,
15
+ type HookAction,
16
+ type HookResult,
17
+ // 导出别名供内部使用
18
+ type HookContext as BaseHookContext,
19
+ type Hook as BaseHook,
20
+ type HookFn as BaseHookFn,
21
+ createHook,
22
+ createPriorityHook,
23
+ } from "./types";
24
+
25
+ // HookManager
26
+ export { HookManager, type HookManagerOptions } from "./hook-manager";
27
+
28
+ // GlobalHookManager
29
+ export {
30
+ globalHookManager,
31
+ AgentHookPoints,
32
+ LLMHookPoints,
33
+ ToolHookPoints,
34
+ executeAgentHook,
35
+ executeAgentHookWithIntervention,
36
+ executeLLMHook,
37
+ executeToolHook,
38
+ } from "./global-hook-manager";
@@ -0,0 +1,138 @@
1
+ /**
2
+ * @fileoverview Hook 系统统一类型定义
3
+ *
4
+ * 提供所有 Component 使用的统一 Hook 接口
5
+ */
6
+
7
+ /**
8
+ * Hook 执行阶段
9
+ */
10
+ export type HookPhase = "before" | "after" | "error";
11
+
12
+ /**
13
+ * Hook 元信息
14
+ */
15
+ export interface HookMeta {
16
+ /** Hook 唯一名称 */
17
+ name: string;
18
+ /** 执行优先级,默认 0,数值越小越先执行 */
19
+ priority?: number;
20
+ /** 描述 */
21
+ description?: string;
22
+ }
23
+
24
+ /**
25
+ * 统一 Hook 上下文
26
+ *
27
+ * 泛型参数 T 表示该 Component 的上下文数据类型
28
+ */
29
+ export interface HookContext<T = unknown> {
30
+ /** 当前组件信息 */
31
+ component: {
32
+ /** 组件名称 */
33
+ name: string;
34
+ /** 组件版本 */
35
+ version: string;
36
+ };
37
+ /** 上下文数据(Component 特定) */
38
+ data: T;
39
+ /** 元数据(可用于传递额外信息) */
40
+ metadata: Record<string, unknown>;
41
+ /** 执行阶段 */
42
+ phase: HookPhase;
43
+ /** 关联的 hook 点名称 */
44
+ hookPoint: string;
45
+ }
46
+
47
+ /**
48
+ * 统一 Hook 接口
49
+ *
50
+ * 所有 Component 的 Hook 都应实现此接口
51
+ */
52
+ export interface Hook<T = unknown> extends HookMeta {
53
+ /** 执行 Hook
54
+ * @param ctx 上下文
55
+ */
56
+ execute(ctx: HookContext<T>): void | Promise<void>;
57
+ }
58
+
59
+ /**
60
+ * Hook 函数类型(便捷别名)
61
+ */
62
+ export type HookFn<T = unknown> = (ctx: HookContext<T>) => void | Promise<void>;
63
+
64
+ // ========================================================================
65
+ // Hook 干预机制
66
+ // ========================================================================
67
+
68
+ /**
69
+ * Hook 干预动作类型
70
+ */
71
+ export type HookActionType =
72
+ | "stop" // 停止执行
73
+ | "retry" // 重试
74
+ | "compress" // 压缩上下文
75
+ | "extract_memory" // 提取记忆
76
+ | "inject_message" // 注入消息
77
+ | "skip_tool" // 跳过工具调用
78
+ | "custom"; // 自定义动作
79
+
80
+ /**
81
+ * Hook 干预动作
82
+ */
83
+ export interface HookAction {
84
+ /** 动作类型 */
85
+ type: HookActionType;
86
+ /** 动作参数 */
87
+ params?: Record<string, unknown>;
88
+ /** 动作描述 */
89
+ description?: string;
90
+ }
91
+
92
+ /**
93
+ * Hook 执行结果
94
+ */
95
+ export interface HookResult {
96
+ /** 是否被停止 */
97
+ stopped?: boolean;
98
+ /** 干预动作(如果有) */
99
+ action?: HookAction;
100
+ /** 执行结果数据 */
101
+ results?: unknown[];
102
+ }
103
+
104
+ /**
105
+ * 创建 Hook 的工厂函数
106
+ *
107
+ * @param meta Hook 元信息
108
+ * @param fn 执行函数
109
+ * @returns Hook 实例
110
+ *
111
+ * @example
112
+ * ```typescript
113
+ * const hook = createHook(
114
+ * { name: "my-hook", priority: 10 },
115
+ * async (ctx) => { console.log(ctx.data); }
116
+ * );
117
+ * ```
118
+ */
119
+ export function createHook<T = unknown>(
120
+ meta: HookMeta,
121
+ fn: HookFn<T>
122
+ ): Hook<T> {
123
+ return {
124
+ ...meta,
125
+ execute: fn,
126
+ };
127
+ }
128
+
129
+ /**
130
+ * 创建带优先级的 Hook 的便捷函数
131
+ */
132
+ export function createPriorityHook<T = unknown>(
133
+ name: string,
134
+ fn: HookFn<T>,
135
+ priority: number
136
+ ): Hook<T> {
137
+ return createHook({ name, priority }, fn);
138
+ }
@@ -0,0 +1,144 @@
1
+ /**
2
+ * @fileoverview Environment Module
3
+ *
4
+ * 导出 Environment 相关的类型和实现。
5
+ */
6
+
7
+ // Environment 接口
8
+ export type { Environment } from "./interface";
9
+
10
+ // Environment 类型
11
+ export type {
12
+ EnvironmentConfig,
13
+ BaseEnvironmentConfig,
14
+ EnvEvent,
15
+ EnvEventMetadata,
16
+ EnvEventHandler,
17
+ Action,
18
+ ToolResult,
19
+ Context,
20
+ } from "./types";
21
+
22
+ // BaseEnvironment 实现
23
+ export { BaseEnvironment } from "./environment";
24
+
25
+ // Component
26
+ export {
27
+ type Component,
28
+ type ComponentConfig,
29
+ type ComponentSchema,
30
+ type ComponentPaths,
31
+ type ComponentStatus,
32
+ type ComponentConfigChangeEvent,
33
+ type ComponentWatchCallback,
34
+ BaseComponent,
35
+ } from "./component";
36
+
37
+ // Hook 系统
38
+ export {
39
+ type Hook,
40
+ type HookContext,
41
+ type HookPhase,
42
+ type HookMeta,
43
+ type HookFn,
44
+ type HookManagerOptions,
45
+ createHook,
46
+ createPriorityHook,
47
+ HookManager,
48
+ } from "./hook";
49
+
50
+ // Paths
51
+ export {
52
+ type XDGPaths,
53
+ type XDGDirType,
54
+ XDG_PATHS,
55
+ getXDGPaths,
56
+ getXDGPath,
57
+ } from "./paths";
58
+
59
+ // Agent Component
60
+ export {
61
+ AgentComponent,
62
+ type AgentComponentConfig,
63
+ AgentComponentConfigSchema,
64
+ type AgentInstance,
65
+ type AgentInstanceConfig,
66
+ type AgentRunResult,
67
+ type AgentContext,
68
+ type Plugin,
69
+ type HookContext as AgentHookContext,
70
+ type HookPoint,
71
+ type HookResult,
72
+ type HookActionType,
73
+ type Tool,
74
+ type ToolCall,
75
+ type ToolResult as AgentToolResult,
76
+ type ToolCallResult,
77
+ type LLMOutput,
78
+ } from "./agent";
79
+
80
+ // Task Component
81
+ export {
82
+ TaskComponent,
83
+ type TaskComponentOptions,
84
+ } from "./task";
85
+ export type {
86
+ Task,
87
+ TaskOperation,
88
+ TaskStatus,
89
+ TaskPriority,
90
+ ActionType,
91
+ CreateTaskOptions,
92
+ UpdateTaskOptions,
93
+ ListTasksOptions,
94
+ CreateOperationOptions,
95
+ ListOperationsOptions,
96
+ TaskConfig,
97
+ } from "./task/types";
98
+
99
+ // MCP Component
100
+ export {
101
+ McpComponent,
102
+ } from "./mcp";
103
+ export type {
104
+ McpComponentConfig,
105
+ McpComponentOptions,
106
+ McpPath,
107
+ McpServerConfig,
108
+ McpServerStatus,
109
+ DiscoveredMcpServer,
110
+ } from "./mcp";
111
+
112
+ // EventSource Component
113
+ export {
114
+ EventSourceComponent,
115
+ } from "./event-source/event-source-component";
116
+
117
+ export {
118
+ EventSourceAgentHandler,
119
+ } from "./event-source/event-source-agent-handler";
120
+ export type {
121
+ EventSourceConfig,
122
+ EventSourceStatus,
123
+ EventSourceType,
124
+ EventSourceEvent,
125
+ EventSourceEventPayload,
126
+ EventSourceEventHandler,
127
+ EventSourceStatusChangeEvent,
128
+ EventSourcePersistenceConfig,
129
+ EventSourceComponentInterface,
130
+ EventSourceAgentHandlerConfig,
131
+ } from "./event-source/types";
132
+ export {
133
+ isValidEventSourceType,
134
+ getDefaultConfigForType,
135
+ validateEventSourceConfig,
136
+ } from "./event-source/types";
137
+
138
+ // Workflow Component
139
+ export {
140
+ WorkflowComponent,
141
+ } from "./workflow/workflow-component";
142
+ export type {
143
+ WorkflowComponentConfig,
144
+ } from "./workflow/workflow-component";
@@ -0,0 +1,203 @@
1
+ /**
2
+ * @fileoverview Environment Interface
3
+ *
4
+ * Environment 是智能体运行时的核心抽象。
5
+ *
6
+ * 设计原则:
7
+ * 1. Environment 只做两件事:
8
+ * - 组件管理:持有、注册、获取组件
9
+ * - 核心调度:handle_query / handle_action / EnvEvent
10
+ * 2. 其他能力归属到对应 Component
11
+ *
12
+ * 服务配置能力:
13
+ * - loadServiceConfig(): 从配置文件加载服务配置
14
+ * - generateComponentOptions(): 生成组件初始化选项
15
+ * - registerComponentWithConfig(): 注册并用配置初始化组件
16
+ * - initFromConfig(): 从配置文件初始化整个环境
17
+ */
18
+
19
+ import type { Component } from "./component";
20
+ import type { EnvEvent, EnvEventHandler, EnvEventInput, EnvironmentConfig, Action, ToolResult, Context } from "./types";
21
+ import type { AgentContext } from "./agent/types";
22
+ import type { ConfigComponent } from "../config/config-component";
23
+
24
+ // Re-export for convenience
25
+ export type { AgentContext };
26
+
27
+ /**
28
+ * 服务配置接口
29
+ */
30
+ export interface ServiceConfig {
31
+ /** 环境配置 */
32
+ environment?: {
33
+ name?: string;
34
+ version?: string;
35
+ };
36
+ /** 组件配置映射 */
37
+ components?: Record<string, ComponentConfigEntry>;
38
+ }
39
+
40
+ /**
41
+ * 组件配置项
42
+ */
43
+ export interface ComponentConfigEntry {
44
+ /** 配置文件路径(可选) */
45
+ configPath?: string;
46
+ /** 环境变量前缀(可选) */
47
+ envPrefix?: string;
48
+ /** 直接配置对象(可选) */
49
+ config?: Record<string, unknown>;
50
+ /** 是否启用(可选,默认 true) */
51
+ enabled?: boolean;
52
+ }
53
+
54
+ /**
55
+ * 组件初始化选项(由 generateComponentOptions 生成)
56
+ */
57
+ export interface GeneratedComponentOptions {
58
+ /** ConfigComponent 实例 */
59
+ configComponent: ConfigComponent;
60
+ /** 配置文件路径 */
61
+ configPath?: string;
62
+ /** 环境变量前缀 */
63
+ envPrefix?: string;
64
+ /** 直接配置对象 */
65
+ config?: Record<string, unknown>;
66
+ /** 允许的其他属性 */
67
+ [key: string]: unknown;
68
+ }
69
+
70
+ /**
71
+ * Environment 接口
72
+ *
73
+ * 定义 Agent 运行时的核心能力接口。
74
+ */
75
+ export interface Environment {
76
+ // ============ 标识 ============
77
+
78
+ /** 环境名称 */
79
+ readonly name: string;
80
+
81
+ /** 环境版本 */
82
+ readonly version: string;
83
+
84
+ /** 获取环境配置 */
85
+ getConfig(): EnvironmentConfig;
86
+
87
+ // ============ 组件管理(核心职责) ============
88
+
89
+ /**
90
+ * 注册组件
91
+ */
92
+ registerComponent(component: Component): void;
93
+
94
+ /**
95
+ * 注销组件
96
+ */
97
+ unregisterComponent(name: string): void;
98
+
99
+ /**
100
+ * 获取组件
101
+ */
102
+ getComponent<T extends Component>(name: string): T | undefined;
103
+
104
+ /**
105
+ * 列出所有组件
106
+ */
107
+ listComponents(): Component[];
108
+
109
+ // ============ 核心能力(Agent 调度) ============
110
+
111
+ /**
112
+ * 处理自然语言查询(核心入口)
113
+ *
114
+ * @param query 用户查询文本
115
+ * @param context 执行上下文(可选)
116
+ * @returns 完整的文本响应
117
+ */
118
+ handle_query(
119
+ query: string,
120
+ context?: AgentContext
121
+ ): Promise<string>;
122
+
123
+ /**
124
+ * 处理动作
125
+ */
126
+ handle_action(
127
+ action: Action,
128
+ context: Context
129
+ ): Promise<ToolResult>;
130
+
131
+ // ============ EnvEvent 机制 ============
132
+
133
+ /**
134
+ * 订阅 EnvEvent(返回取消订阅函数)
135
+ */
136
+ subscribe(handler: EnvEventHandler): () => void;
137
+
138
+ /**
139
+ * 订阅指定类型事件
140
+ */
141
+ subscribeTo(
142
+ eventType: string | string[],
143
+ handler: EnvEventHandler
144
+ ): () => void;
145
+
146
+ /**
147
+ * 订阅所有事件(通配符)
148
+ */
149
+ subscribeAll(handler: EnvEventHandler): () => void;
150
+
151
+ /**
152
+ * 推送事件
153
+ *
154
+ * @param event EnvEvent 或 EnvEventInput(部分属性)
155
+ */
156
+ pushEnvEvent(event: EnvEvent | EnvEventInput): void;
157
+
158
+ // ============ 服务配置能力 ============
159
+
160
+ /**
161
+ * 从配置文件加载服务配置
162
+ *
163
+ * @param configPath 配置文件路径(基于 XDG_DATA_HOME)
164
+ * @returns 解析后的服务配置对象
165
+ */
166
+ loadServiceConfig(configPath: string): Promise<ServiceConfig>;
167
+
168
+ /**
169
+ * 生成组件初始化选项
170
+ *
171
+ * 根据组件配置项生成可用于初始化的选项对象。
172
+ *
173
+ * @param componentName 组件名称
174
+ * @param configEntry 组件配置项
175
+ * @returns 生成的组件初始化选项
176
+ */
177
+ generateComponentOptions(
178
+ componentName: string,
179
+ configEntry: ComponentConfigEntry
180
+ ): GeneratedComponentOptions;
181
+
182
+ /**
183
+ * 注册组件并用配置初始化
184
+ *
185
+ * 便捷方法:注册组件并通过 ConfigComponent 初始化。
186
+ *
187
+ * @param component 要注册的组件实例
188
+ * @param configEntry 组件配置项
189
+ */
190
+ registerComponentWithConfig(
191
+ component: Component,
192
+ configEntry: ComponentConfigEntry
193
+ ): Promise<void>;
194
+
195
+ /**
196
+ * 从配置文件初始化整个环境
197
+ *
198
+ * 加载服务配置,注册并初始化所有配置的组件。
199
+ *
200
+ * @param configPath 配置文件路径(基于 XDG_DATA_HOME)
201
+ */
202
+ initFromConfig(configPath: string): Promise<void>;
203
+ }