@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,346 @@
1
+ import { ZodType, ZodTypeDef } from "zod";
2
+ import { BaseComponent, type ComponentSchema, type ComponentWatchCallback } from "../env/component";
3
+ /**
4
+ * ConfigSource 类型
5
+ */
6
+ export type ConfigSourceType = "memory" | "file" | "env" | "remote" | "project";
7
+ /**
8
+ * SourceRegistration - Source 注册配置
9
+ */
10
+ export interface SourceRegistration {
11
+ /** Source 类型 */
12
+ type: ConfigSourceType;
13
+ /** 相对路径(file 类型使用,基于 XDG_DATA_HOME) */
14
+ relativePath?: string;
15
+ /** 环境变量前缀(env 类型使用) */
16
+ envPrefix?: string;
17
+ /** 项目根目录(project 类型使用,默认 process.cwd()) */
18
+ cwd?: string;
19
+ /** 优先级,默认值:memory=0, file=10, env=20, project=25 */
20
+ priority?: number;
21
+ /** 是否可选(file 类型使用,文件不存在时不报错) */
22
+ optional?: boolean;
23
+ /** 是否启用文件监听(file 类型使用,默认 true) */
24
+ watch?: boolean;
25
+ }
26
+ /**
27
+ * KeyRegistration - 配置 Key 注册
28
+ */
29
+ export interface KeyRegistration {
30
+ /** 配置 Key(支持点号嵌套,如 "llm.provider") */
31
+ key: string;
32
+ /** 优先使用的 Source 列表(按优先级从低到高) */
33
+ sources: ConfigSourceType[];
34
+ /** 自定义优先级(覆盖默认优先级) */
35
+ priority?: number;
36
+ /** 默认值 */
37
+ default?: unknown;
38
+ }
39
+ /**
40
+ * ComponentRegistration - Component 注册配置
41
+ */
42
+ export interface ComponentRegistration {
43
+ /** Component 名称 */
44
+ name: string;
45
+ /** 声明需要的 Source */
46
+ sources: SourceRegistration[];
47
+ /** 声明需要的配置 Key */
48
+ keys: KeyRegistration[];
49
+ /** 配置 Schema(用于验证,可选) */
50
+ schema?: ZodType<unknown, ZodTypeDef, unknown>;
51
+ /** 默认值 */
52
+ defaults?: Record<string, unknown>;
53
+ }
54
+ /**
55
+ * 配置源不存在错误
56
+ */
57
+ export declare class ConfigSourceNotFoundError extends Error {
58
+ constructor(sourceType: string, path?: string);
59
+ }
60
+ /**
61
+ * 配置文件不存在错误
62
+ */
63
+ export declare class ConfigFileNotFoundError extends Error {
64
+ constructor(filePath: string);
65
+ }
66
+ /**
67
+ * ConfigSource 接口
68
+ */
69
+ export interface ConfigSource {
70
+ readonly name: ConfigSourceType;
71
+ readonly priority: number;
72
+ read(key: string): unknown | undefined;
73
+ write?(key: string, value: unknown): boolean;
74
+ delete?(key: string): boolean;
75
+ list(): Array<{
76
+ key: string;
77
+ value: unknown;
78
+ }>;
79
+ watch?(callback: (event: ConfigChangeEvent) => void): () => void;
80
+ }
81
+ /**
82
+ * Config 变更事件
83
+ */
84
+ export interface ConfigChangeEvent {
85
+ type: "change" | "add" | "delete";
86
+ key: string;
87
+ oldValue: unknown;
88
+ newValue: unknown;
89
+ source: ConfigSourceType;
90
+ timestamp: number;
91
+ }
92
+ /**
93
+ * 异步持久化条目
94
+ */
95
+ interface PersistEntry {
96
+ key: string;
97
+ value: unknown;
98
+ timestamp: number;
99
+ }
100
+ /**
101
+ * MemorySource 实现
102
+ */
103
+ export declare class MemorySource implements ConfigSource {
104
+ readonly name: ConfigSourceType;
105
+ readonly priority = 0;
106
+ private store;
107
+ private watchers;
108
+ read(key: string): unknown | undefined;
109
+ write(key: string, value: unknown): boolean;
110
+ delete(key: string): boolean;
111
+ list(): Array<{
112
+ key: string;
113
+ value: unknown;
114
+ }>;
115
+ watch(callback: (event: ConfigChangeEvent) => void): () => void;
116
+ private notifyWatchers;
117
+ }
118
+ /**
119
+ * 异步持久化队列
120
+ */
121
+ export declare class AsyncPersistQueue {
122
+ private options;
123
+ private queue;
124
+ private timer?;
125
+ private paused;
126
+ constructor(options: {
127
+ debounceMs: number;
128
+ persistFn: (entries: PersistEntry[]) => Promise<void>;
129
+ });
130
+ add(key: string, value: unknown): void;
131
+ private scheduleFlush;
132
+ flush(): Promise<void>;
133
+ clear(): void;
134
+ size(): number;
135
+ pause(): void;
136
+ resume(): void;
137
+ }
138
+ /**
139
+ * ConfigComponent 配置
140
+ */
141
+ export interface ConfigComponentOptions {
142
+ /** 持久化文件路径 */
143
+ persistFile?: string;
144
+ /** 防抖延迟(ms) */
145
+ debounceMs?: number;
146
+ /** 最大批量大小 */
147
+ maxBatchSize?: number;
148
+ }
149
+ /**
150
+ * ConfigComponent
151
+ */
152
+ export declare class ConfigComponent extends BaseComponent {
153
+ readonly name = "config";
154
+ readonly version = "1.0.0";
155
+ private memorySource;
156
+ private sources;
157
+ private componentSchemas;
158
+ private componentPaths;
159
+ private watchers;
160
+ /** Source watch unsubscribe 函数 */
161
+ private sourceUnwatchFns;
162
+ private persistQueue;
163
+ private persistFile?;
164
+ /** Key 注册表:key -> KeyRegistration */
165
+ private keyRegistry;
166
+ /** Component 注册表:name -> ComponentRegistration */
167
+ private componentRegistrations;
168
+ /** 协议解析器 */
169
+ private protocolResolver?;
170
+ /** XDG_DATA_HOME 缓存(用于测试注入) */
171
+ private __xdgDataHome?;
172
+ /** Source 注册配置(延迟创建) */
173
+ private pendingSources;
174
+ /** Source 唯一标识缓存:type:relativePath -> true */
175
+ private sourceKeys;
176
+ /**
177
+ * 获取 XDG_DATA_HOME(动态获取,支持运行时覆盖)
178
+ */
179
+ getXdgDataHome(): string;
180
+ /**
181
+ * 设置 XDG_DATA_HOME(用于测试)
182
+ */
183
+ setXdgDataHome(path: string): void;
184
+ constructor(options?: ConfigComponentOptions);
185
+ /**
186
+ * 注册 Component Schema
187
+ */
188
+ register(schema: ComponentSchema): void;
189
+ /**
190
+ * 注销 Component
191
+ */
192
+ unregister(name: string): boolean;
193
+ /**
194
+ * 检查是否已注册
195
+ */
196
+ isRegistered(name: string): boolean;
197
+ /**
198
+ * 列出所有注册的 Component
199
+ */
200
+ listComponents(): string[];
201
+ /**
202
+ * 获取配置值(支持 xxx.yyy.zzz 嵌套访问)
203
+ * 支持两种模式:
204
+ * 1. 完整 key:直接查找,如 "component.key" -> 读取 "component.key"
205
+ * 2. 嵌套对象:查找 component 对象后从中获取属性,如 "component.nested.deep"
206
+ * -> 先找 "component.nested",再获取其 "deep" 属性
207
+ */
208
+ get(key: string): unknown;
209
+ /**
210
+ * 批量获取
211
+ */
212
+ getMany(keys: string[]): Record<string, unknown>;
213
+ /**
214
+ * 设置配置值(内存级别 + 异步持久化)
215
+ */
216
+ set(key: string, value: unknown): Promise<void>;
217
+ /**
218
+ * 批量设置
219
+ */
220
+ setMany(config: Record<string, unknown>): Promise<void>;
221
+ /**
222
+ * 获取 Component 的路径
223
+ */
224
+ getPath(component: string, subPath?: string): string;
225
+ /**
226
+ * 手动持久化
227
+ */
228
+ save(key?: string): Promise<void>;
229
+ /**
230
+ * 重置到默认值
231
+ */
232
+ reset(key: string): Promise<void>;
233
+ /**
234
+ * 监听配置变更
235
+ */
236
+ watch(pattern: string, callback: ComponentWatchCallback): () => void;
237
+ /**
238
+ * 添加配置源
239
+ */
240
+ addSource(source: ConfigSource): void;
241
+ /**
242
+ * 获取 Source 唯一标识
243
+ */
244
+ private getSourceKey;
245
+ /**
246
+ * 移除配置源
247
+ */
248
+ removeSource(name: ConfigSourceType): boolean;
249
+ /**
250
+ * 关闭所有配置源的 watcher(用于优雅退出)
251
+ */
252
+ unwatchAll(): void;
253
+ /**
254
+ * 释放持久化队列与文件 watcher(CLI 退出时调用)
255
+ */
256
+ shutdown(): void;
257
+ protected onStop(): Promise<void>;
258
+ /**
259
+ * 获取配置源列表
260
+ */
261
+ getSources(): ConfigSource[];
262
+ private getNestedValue;
263
+ private notifyWatchers;
264
+ private persistToFile;
265
+ /**
266
+ * 注册配置 Source
267
+ *
268
+ * Source 会在首次 load() 时被创建
269
+ *
270
+ * @example
271
+ * config.registerSource({ type: "file", relativePath: "llm-config.jsonc" });
272
+ * config.registerSource({ type: "env", envPrefix: "LLM" });
273
+ */
274
+ registerSource(registration: SourceRegistration): void;
275
+ /**
276
+ * 注册项目级配置 Source(从 `${cwd}/.roy/config.jsonc` 加载)
277
+ *
278
+ * 项目级配置优先级高于 env 和全局 file,可在不同项目下设置不同的配置。
279
+ * 如果文件不存在,静默忽略(不报错)。重复注册同一 cwd 是幂等的。
280
+ *
281
+ * @param options.cwd - 项目根目录,默认为 `process.cwd()`
282
+ * @param options.priority - 优先级,默认 25(高于 env=20、file=10)
283
+ *
284
+ * @example
285
+ * config.registerProjectSource();
286
+ * config.registerProjectSource({ cwd: "/path/to/project" });
287
+ */
288
+ registerProjectSource(options?: {
289
+ cwd?: string;
290
+ priority?: number;
291
+ }): void;
292
+ /**
293
+ * 创建 Source 实例
294
+ */
295
+ private createSource;
296
+ /**
297
+ * 确保所有待创建的 Source 已被创建
298
+ */
299
+ private ensureSourcesCreated;
300
+ /**
301
+ * 注册配置 Key
302
+ *
303
+ * @example
304
+ * config.registerKeys([
305
+ * { key: "llm.provider", sources: ["file", "memory"], default: "openai" },
306
+ * { key: "llm.model", sources: ["file"] },
307
+ * ]);
308
+ */
309
+ registerKeys(keys: KeyRegistration[]): void;
310
+ /**
311
+ * 注册 Component(一次性注册 Source 和 Keys)
312
+ *
313
+ * @example
314
+ * config.registerComponent({
315
+ * name: "llm",
316
+ * sources: [
317
+ * { type: "file", relativePath: "llm-config.jsonc" },
318
+ * { type: "env", envPrefix: "LLM" },
319
+ * ],
320
+ * keys: [
321
+ * { key: "llm.provider", sources: ["file", "env", "memory"] },
322
+ * ],
323
+ * });
324
+ */
325
+ registerComponent(registration: ComponentRegistration): void;
326
+ /**
327
+ * 按需加载配置
328
+ *
329
+ * 从注册的 Source 加载已注册 Keys 的配置值到内存中
330
+ *
331
+ * @param componentName - 可选,指定要加载的 Component 名称
332
+ *
333
+ * @example
334
+ * // 加载所有已注册的 Keys
335
+ * await config.load();
336
+ *
337
+ * // 只加载指定 Component 的 Keys
338
+ * await config.load("llm");
339
+ */
340
+ load(componentName?: string): Promise<void>;
341
+ /**
342
+ * 获取已注册的 Source 列表
343
+ */
344
+ getRegisteredSources(): ConfigSource[];
345
+ }
346
+ export {};
@@ -0,0 +1,45 @@
1
+ import { ProtocolResolver } from "./protocol-resolver";
2
+ /**
3
+ * Parse JSONC (JSON with Comments) content
4
+ * Supports single-line comments (//) and multi-line comments
5
+ *
6
+ * @param content - JSONC content string
7
+ * @returns Parsed JSON object
8
+ */
9
+ export declare function parseJSONC(content: string): Record<string, unknown>;
10
+ /**
11
+ * Substitute environment variables in a value
12
+ * Supports ${VAR} and ${VAR:-default} syntax
13
+ *
14
+ * @param value - Value to substitute (string, object, array, or primitive)
15
+ * @returns Value with environment variables substituted
16
+ */
17
+ export declare function substituteEnvVars(value: unknown): unknown;
18
+ /**
19
+ * Parse JSONC content and substitute environment variables
20
+ *
21
+ * @param content - JSONC content string
22
+ * @returns Parsed JSON object with env vars substituted
23
+ */
24
+ export declare function parseJSONCWithEnv(content: string): Record<string, unknown>;
25
+ /**
26
+ * Substitute protocol references in a value using the provided resolver
27
+ *
28
+ * Supports:
29
+ * - ${file://path#key} - Read from file
30
+ * - ${env://varName} - Read from environment variable
31
+ * - All above with default values: ${protocol://...:-default}
32
+ *
33
+ * @param value - Value to substitute (string, object, array, or primitive)
34
+ * @param resolver - ProtocolResolver instance
35
+ * @returns Value with protocol references substituted
36
+ */
37
+ export declare function substituteProtocolRefs(value: unknown, resolver: ProtocolResolver): unknown;
38
+ /**
39
+ * Parse JSONC content and substitute protocol references
40
+ *
41
+ * @param content - JSONC content string
42
+ * @param resolver - ProtocolResolver instance
43
+ * @returns Parsed JSON object with protocol refs substituted
44
+ */
45
+ export declare function parseJSONCWithProtocols(content: string, resolver: ProtocolResolver): Record<string, unknown>;
@@ -0,0 +1,97 @@
1
+ /**
2
+ * 环境变量键名转换工具
3
+ *
4
+ * 提供统一的环境变量键名转换逻辑,供 EnvSource 和其他组件使用
5
+ *
6
+ * 转换规则(toEnvKey):
7
+ * 1. 将点号替换为下划线
8
+ * 2. 将驼峰命名转换为下划线分隔的大写形式
9
+ * 3. 拼接前缀(如果前缀不以_结尾则自动添加)
10
+ *
11
+ * 转换规则(fromEnvKey - 用于 EnvSource):
12
+ * 1. 移除前缀
13
+ * 2. 保持原始格式(大小写)
14
+ *
15
+ * 转换规则(envKeyToConfigKey - 通用):
16
+ * 1. 移除前缀
17
+ * 2. 转小写
18
+ * 3. 将下划线替换为点号
19
+ * 4. 拼接组件名前缀
20
+ *
21
+ * @example
22
+ * // toEnvKey
23
+ * toEnvKey("llm.defaultModel", "LLM") -> "LLM_LLM_DEFAULT_MODEL"
24
+ * toEnvKey("logTrace.level", "LOG") -> "LOG_LOG_TRACE_LEVEL"
25
+ *
26
+ * // fromEnvKey (用于 EnvSource.list)
27
+ * fromEnvKey("LLM_LLM_DEBUG", "LLM_") -> "DEBUG"
28
+ *
29
+ * // envKeyToConfigKey (通用,支持任意组件)
30
+ * envKeyToConfigKey("LLM_LLM_DEFAULT_MODEL", "LLM", "llm") -> "llm.default.model"
31
+ * envKeyToConfigKey("LOG_LOG_TRACE_LEVEL", "LOG", "logTrace") -> "logTrace.level"
32
+ */
33
+ /**
34
+ * 将点号路径转换为环境变量名(带前缀)
35
+ *
36
+ * 规则:
37
+ * - `.` 和 `-` 都替换为路径分隔符 `_`
38
+ * - 驼峰转为下划线大写
39
+ * - 如果 key 规范化后的首段与 prefix 的去下划线大写形式一致,
40
+ * 则不再重复添加前缀(避免 "LLM_LLM_DEFAULT_PROVIDER" 这种双重前缀)
41
+ *
42
+ * 转换示例(Bug #2186 Bug 1 修复后):
43
+ * - `llm.defaultModel` + `LLM` -> `LLM_DEFAULT_MODEL`(无双 LLM 前缀)
44
+ * - `logTrace.level` + `LOG` -> `LOG_LEVEL`
45
+ * - `log-trace.logging.dir` + `LOG_TRACE` -> `LOG_TRACE_LOGGING_DIR`
46
+ * - `DEBUG` + `LLM` -> `LLM_DEBUG`(首段不匹配 prefix,正常前缀化)
47
+ *
48
+ * @example
49
+ * toEnvKey("llm.defaultModel", "LLM") -> "LLM_DEFAULT_MODEL"
50
+ * toEnvKey("log-trace.logging.dir", "LOG_TRACE") -> "LOG_TRACE_LOGGING_DIR"
51
+ * toEnvKey("DEBUG", "MY_APP_") -> "MY_APP_DEBUG"
52
+ */
53
+ export declare function toEnvKey(key: string, prefix: string): string;
54
+ /**
55
+ * 从环境变量名提取内部键名(移除前缀,保持原始格式)
56
+ *
57
+ * 用于 EnvSource.list() 等需要保持原始格式的场景
58
+ */
59
+ export declare function fromEnvKey(envKey: string, prefix: string): string;
60
+ /**
61
+ * 将环境变量名转换为配置键名(通用,支持任意组件)
62
+ *
63
+ * 规则:
64
+ * - `_` 转换为 `.` 作为键路径分隔符
65
+ * - 组件名中的 `-` 在环境变量中也会是 `_`(因为 toEnvKey 会转换)
66
+ *
67
+ * 环境变量格式约定:
68
+ * - PREFIX_KEY: 如 LLM_DEFAULT_MODEL -> llm.default.model
69
+ * - PREFIX_COMPONENT_KEY: 如 LLM_LLM_DEFAULT_MODEL -> llm.default.model
70
+ * - 对于带连字符的组件名: 如 LOG_TRACE_LOGGING_LEVEL -> log-trace.logging.level (当组件名为 log-trace)
71
+ *
72
+ * @param envKey - 环境变量名(如 LLM_LLM_DEFAULT_MODEL 或 LOG_TRACE_LOGGING_LEVEL)
73
+ * @param prefix - 环境变量前缀(如 LLM 或 LOG)
74
+ * @param componentName - 组件名(如 llm, logTrace, log-trace)
75
+ * @returns 配置键名(如 llm.default.model 或 log-trace.logging.level)
76
+ *
77
+ * @example
78
+ * // 格式1: PREFIX_KEY
79
+ * envKeyToConfigKey("LLM_DEFAULT_MODEL", "LLM", "llm") -> "llm.default.model"
80
+ *
81
+ * // 格式2: PREFIX_COMPONENT_KEY
82
+ * envKeyToConfigKey("LLM_LLM_DEFAULT_MODEL", "LLM", "llm") -> "llm.default.model"
83
+ *
84
+ * // 格式3: 连字符组件名(环境变量中 - 会被转成 _)
85
+ * envKeyToConfigKey("LOG_TRACE_LOGGING_LEVEL", "LOG", "log-trace") -> "log-trace.logging.level"
86
+ */
87
+ export declare function envKeyToConfigKey(envKey: string, prefix: string, componentName: string): string | undefined;
88
+ /**
89
+ * 从环境变量键名提取组件名
90
+ *
91
+ * 用于自动发现所有以 prefix 开头的环境变量
92
+ *
93
+ * @param envKey - 环境变量名
94
+ * @param prefix - 前缀
95
+ * @returns 组件名和剩余部分(如 ["llm", "default.model"])
96
+ */
97
+ export declare function extractComponentFromEnvKey(envKey: string, prefix: string): [string, string] | undefined;
@@ -0,0 +1,113 @@
1
+ import { ConfigSource, ConfigSourceType, ConfigChangeEvent } from "./config-component";
2
+ /**
3
+ * EnvSource 配置
4
+ */
5
+ export interface EnvSourceOptions {
6
+ /** 环境变量前缀 */
7
+ prefix?: string;
8
+ /** 值转换函数 */
9
+ transform?: (value: string, key: string) => unknown;
10
+ /** 轮询间隔(ms),用于检测环境变量变化 */
11
+ pollInterval?: number;
12
+ /** 优先级 */
13
+ priority?: number;
14
+ /** 是否启用监听(轮询),默认 true */
15
+ watch?: boolean;
16
+ }
17
+ /**
18
+ * 环境变量配置源
19
+ *
20
+ * 从 process.env 读取配置,支持:
21
+ * - 前缀过滤
22
+ * - 值转换
23
+ * - 环境变量监听(轮询)
24
+ */
25
+ export declare class EnvSource implements ConfigSource {
26
+ readonly name: ConfigSourceType;
27
+ readonly priority = 20;
28
+ private prefix;
29
+ private transform?;
30
+ private pollInterval?;
31
+ private watchers;
32
+ private pollTimer?;
33
+ private lastValues;
34
+ private watchEnabled;
35
+ constructor(options?: EnvSourceOptions);
36
+ /**
37
+ * 获取环境变量名(带前缀)
38
+ * 将点号路径转换为下划线分隔的大写形式
39
+ * 例如: "llm.provider" + prefix "LLM" -> "LLM_LLM_PROVIDER"
40
+ * 例如: "DEBUG" + prefix "MY_APP_" -> "MY_APP_DEBUG"
41
+ * 例如: "llm.defaultModel" + prefix "LLM" -> "LLM_LLM_DEFAULT_MODEL"
42
+ */
43
+ private getEnvKey;
44
+ /**
45
+ * 移除前缀获取内部 key
46
+ * 注意:保持原始格式(大小写),仅移除前缀
47
+ */
48
+ private getInternalKey;
49
+ /**
50
+ * 读取环境变量
51
+ */
52
+ read(key: string): unknown;
53
+ /**
54
+ * 写入环境变量
55
+ */
56
+ write(key: string, value: unknown): boolean;
57
+ /**
58
+ * 删除环境变量
59
+ */
60
+ delete(key: string): boolean;
61
+ /**
62
+ * 列出所有环境变量
63
+ */
64
+ list(): Array<{
65
+ key: string;
66
+ value: unknown;
67
+ }>;
68
+ /**
69
+ * 监听环境变量变化
70
+ */
71
+ watch(callback: (event: ConfigChangeEvent) => void): () => void;
72
+ private ensurePolling;
73
+ private stopPolling;
74
+ private recordCurrentValues;
75
+ private checkForChanges;
76
+ private transformValue;
77
+ private notifyWatchers;
78
+ /**
79
+ * 关闭并清理资源
80
+ */
81
+ close(): void;
82
+ /**
83
+ * 验证 process.env 中的环境变量,识别未在已知 config keys 中的项
84
+ * (Bug #2186 Bug 2 修复:env var 拼写错误时不再静默忽略)
85
+ *
86
+ * 遍历 process.env,对于以 prefix 开头的每个环境变量名:
87
+ * 1. 用 `envKeyToConfigKey` 反向解析为 config key(如 `LLM_DEFAULT_PROVIDER` → `llm.default.provider`)
88
+ * 2. 检查 configKey 是否在 `knownKeys` 中(精确匹配,或作为前缀匹配)
89
+ * 3. 如果不匹配且 logger 存在,输出警告
90
+ *
91
+ * @param options.componentName - 用于 envKeyToConfigKey 反向解析(如 "llm")
92
+ * @param options.knownKeys - 已知 config keys 集合(dotted 路径形式)
93
+ * - 精确匹配:knownKeys.has(configKey)
94
+ * - 前缀匹配:knownKeys 中任一项 + "." + 后缀 === configKey
95
+ * @param options.logger - 可选 logger({ warn(msg: string) })
96
+ * @returns 未识别的环境变量名列表
97
+ *
98
+ * @example
99
+ * const warnings: string[] = [];
100
+ * envSource.validateUnrecognizedEnvVars({
101
+ * componentName: "llm",
102
+ * knownKeys: new Set(["llm.defaultProvider", "llm.providers"]),
103
+ * logger: { warn: (msg) => warnings.push(msg) },
104
+ * });
105
+ */
106
+ validateUnrecognizedEnvVars(options?: {
107
+ componentName?: string;
108
+ knownKeys?: Set<string>;
109
+ logger?: {
110
+ warn: (msg: string) => void;
111
+ };
112
+ }): string[];
113
+ }
@@ -0,0 +1,90 @@
1
+ import { ConfigSource, ConfigSourceType, ConfigChangeEvent } from "./config-component";
2
+ import { ProtocolResolver } from "./protocol-resolver";
3
+ /**
4
+ * FileSource 配置
5
+ */
6
+ export interface FileSourceOptions {
7
+ /** 文件路径 */
8
+ filePath: string;
9
+ /** 写入防抖延迟(ms),默认 100ms */
10
+ debounceMs?: number;
11
+ /** 协议解析器(可选),用于解析 file://, env:// 协议 */
12
+ resolver?: ProtocolResolver;
13
+ /** 是否可选,文件不存在时不报错(默认 false) */
14
+ optional?: boolean;
15
+ /** 是否启用文件监听(默认 true) */
16
+ watch?: boolean;
17
+ /** 优先级(默认 10,越大越高) */
18
+ priority?: number;
19
+ /** Source 名称(默认 "file",project source 可设为 "project") */
20
+ name?: ConfigSourceType;
21
+ }
22
+ /**
23
+ * 文件配置源
24
+ *
25
+ * 从 JSON 文件读取/写入配置,支持:
26
+ * - 点号访问嵌套值(user.profile.name)
27
+ * - 文件监听
28
+ * - 异步批量写入
29
+ * - 协议引用解析 (file://, env://)
30
+ */
31
+ export declare class FileSource implements ConfigSource {
32
+ readonly name: ConfigSourceType;
33
+ readonly priority: number;
34
+ private filePath;
35
+ private data;
36
+ private watchers;
37
+ private watcherHandle?;
38
+ private debounceMs;
39
+ private pendingWrite?;
40
+ private lastFileContent;
41
+ private resolver?;
42
+ private optional;
43
+ private watchEnabled;
44
+ constructor(options: FileSourceOptions | string, resolver?: ProtocolResolver);
45
+ /**
46
+ * 同步初始化:加载文件内容
47
+ */
48
+ private initSync;
49
+ /**
50
+ * 异步初始化
51
+ */
52
+ private ensureInit;
53
+ /**
54
+ * 获取嵌套值
55
+ */
56
+ private getNestedValue;
57
+ /**
58
+ * 设置嵌套值
59
+ */
60
+ private setNestedValue;
61
+ /**
62
+ * 删除嵌套值
63
+ */
64
+ private deleteNestedValue;
65
+ /**
66
+ * 扁平化嵌套对象为点号路径
67
+ */
68
+ private flattenObject;
69
+ read(key: string): unknown | undefined;
70
+ readAsync(key: string): Promise<unknown | undefined>;
71
+ write(key: string, value: unknown): boolean;
72
+ private scheduleWrite;
73
+ private persistToFile;
74
+ delete(key: string): boolean;
75
+ list(): Array<{
76
+ key: string;
77
+ value: unknown;
78
+ }>;
79
+ listAsync(): Promise<Array<{
80
+ key: string;
81
+ value: unknown;
82
+ }>>;
83
+ watch(callback: (event: ConfigChangeEvent) => void): () => void;
84
+ private ensureWatch;
85
+ private stopWatch;
86
+ private reloadFromFile;
87
+ private notifyWatchers;
88
+ refresh(): Promise<void>;
89
+ close(): Promise<void>;
90
+ }
@@ -0,0 +1,4 @@
1
+ export { type ConfigSource, type ConfigSourceType, type ConfigChangeEvent, type ConfigComponentOptions, type SourceRegistration, type KeyRegistration, type ComponentRegistration, ConfigSourceNotFoundError, ConfigFileNotFoundError, ConfigComponent, MemorySource, } from "./config-component";
2
+ export { FileSource, type FileSourceOptions } from "./file-source";
3
+ export { EnvSource, type EnvSourceOptions } from "./env-source";
4
+ export { parseJSONC, parseJSONCWithEnv, parseJSONCWithProtocols, substituteEnvVars, substituteProtocolRefs, } from "./config-parser";