@supen-ai/cli 0.1.6

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 (681) hide show
  1. package/README.md +235 -0
  2. package/daemon/dist/acp-client.d.ts +42 -0
  3. package/daemon/dist/acp-client.d.ts.map +1 -0
  4. package/daemon/dist/acp-client.js +149 -0
  5. package/daemon/dist/acp-client.js.map +1 -0
  6. package/daemon/dist/acp-types.d.ts +98 -0
  7. package/daemon/dist/acp-types.d.ts.map +1 -0
  8. package/daemon/dist/acp-types.js +2 -0
  9. package/daemon/dist/acp-types.js.map +1 -0
  10. package/daemon/dist/agent-sdk/app-server-approvals.d.ts +24 -0
  11. package/daemon/dist/agent-sdk/app-server-approvals.d.ts.map +1 -0
  12. package/daemon/dist/agent-sdk/app-server-approvals.js +99 -0
  13. package/daemon/dist/agent-sdk/app-server-approvals.js.map +1 -0
  14. package/daemon/dist/agent-sdk/app-server-stream.d.ts +8 -0
  15. package/daemon/dist/agent-sdk/app-server-stream.d.ts.map +1 -0
  16. package/daemon/dist/agent-sdk/app-server-stream.js +328 -0
  17. package/daemon/dist/agent-sdk/app-server-stream.js.map +1 -0
  18. package/daemon/dist/agent-sdk/driver-output-ui.d.ts +9 -0
  19. package/daemon/dist/agent-sdk/driver-output-ui.d.ts.map +1 -0
  20. package/daemon/dist/agent-sdk/driver-output-ui.js +290 -0
  21. package/daemon/dist/agent-sdk/driver-output-ui.js.map +1 -0
  22. package/daemon/dist/agent-sdk/drivers/acpx-driver.d.ts +21 -0
  23. package/daemon/dist/agent-sdk/drivers/acpx-driver.d.ts.map +1 -0
  24. package/daemon/dist/agent-sdk/drivers/acpx-driver.js +488 -0
  25. package/daemon/dist/agent-sdk/drivers/acpx-driver.js.map +1 -0
  26. package/daemon/dist/agent-sdk/drivers/claude-acpx-driver.d.ts +5 -0
  27. package/daemon/dist/agent-sdk/drivers/claude-acpx-driver.d.ts.map +1 -0
  28. package/daemon/dist/agent-sdk/drivers/claude-acpx-driver.js +7 -0
  29. package/daemon/dist/agent-sdk/drivers/claude-acpx-driver.js.map +1 -0
  30. package/daemon/dist/agent-sdk/drivers/claude-cli-direct-driver.d.ts +20 -0
  31. package/daemon/dist/agent-sdk/drivers/claude-cli-direct-driver.d.ts.map +1 -0
  32. package/daemon/dist/agent-sdk/drivers/claude-cli-direct-driver.js +264 -0
  33. package/daemon/dist/agent-sdk/drivers/claude-cli-direct-driver.js.map +1 -0
  34. package/daemon/dist/agent-sdk/drivers/claude-code-driver.d.ts +29 -0
  35. package/daemon/dist/agent-sdk/drivers/claude-code-driver.d.ts.map +1 -0
  36. package/daemon/dist/agent-sdk/drivers/claude-code-driver.js +24 -0
  37. package/daemon/dist/agent-sdk/drivers/claude-code-driver.js.map +1 -0
  38. package/daemon/dist/agent-sdk/drivers/claude-code-events.d.ts +25 -0
  39. package/daemon/dist/agent-sdk/drivers/claude-code-events.d.ts.map +1 -0
  40. package/daemon/dist/agent-sdk/drivers/claude-code-events.js +58 -0
  41. package/daemon/dist/agent-sdk/drivers/claude-code-events.js.map +1 -0
  42. package/daemon/dist/agent-sdk/drivers/claude-code-items.d.ts +41 -0
  43. package/daemon/dist/agent-sdk/drivers/claude-code-items.d.ts.map +1 -0
  44. package/daemon/dist/agent-sdk/drivers/claude-code-items.js +77 -0
  45. package/daemon/dist/agent-sdk/drivers/claude-code-items.js.map +1 -0
  46. package/daemon/dist/agent-sdk/drivers/codex-acpx-driver.d.ts +5 -0
  47. package/daemon/dist/agent-sdk/drivers/codex-acpx-driver.d.ts.map +1 -0
  48. package/daemon/dist/agent-sdk/drivers/codex-acpx-driver.js +7 -0
  49. package/daemon/dist/agent-sdk/drivers/codex-acpx-driver.js.map +1 -0
  50. package/daemon/dist/agent-sdk/drivers/codex-app-server-driver.d.ts +12 -0
  51. package/daemon/dist/agent-sdk/drivers/codex-app-server-driver.d.ts.map +1 -0
  52. package/daemon/dist/agent-sdk/drivers/codex-app-server-driver.js +484 -0
  53. package/daemon/dist/agent-sdk/drivers/codex-app-server-driver.js.map +1 -0
  54. package/daemon/dist/agent-sdk/drivers/codex-exec-driver.d.ts +28 -0
  55. package/daemon/dist/agent-sdk/drivers/codex-exec-driver.d.ts.map +1 -0
  56. package/daemon/dist/agent-sdk/drivers/codex-exec-driver.js +219 -0
  57. package/daemon/dist/agent-sdk/drivers/codex-exec-driver.js.map +1 -0
  58. package/daemon/dist/agent-sdk/drivers/codex-exec-events.d.ts +9 -0
  59. package/daemon/dist/agent-sdk/drivers/codex-exec-events.d.ts.map +1 -0
  60. package/daemon/dist/agent-sdk/drivers/codex-exec-events.js +82 -0
  61. package/daemon/dist/agent-sdk/drivers/codex-exec-events.js.map +1 -0
  62. package/daemon/dist/agent-sdk/drivers/codex-exec-items.d.ts +9 -0
  63. package/daemon/dist/agent-sdk/drivers/codex-exec-items.d.ts.map +1 -0
  64. package/daemon/dist/agent-sdk/drivers/codex-exec-items.js +86 -0
  65. package/daemon/dist/agent-sdk/drivers/codex-exec-items.js.map +1 -0
  66. package/daemon/dist/agent-sdk/drivers/driver.d.ts +60 -0
  67. package/daemon/dist/agent-sdk/drivers/driver.d.ts.map +1 -0
  68. package/daemon/dist/agent-sdk/drivers/driver.js +2 -0
  69. package/daemon/dist/agent-sdk/drivers/driver.js.map +1 -0
  70. package/daemon/dist/agent-sdk/drivers/gemini-cli-driver.d.ts +17 -0
  71. package/daemon/dist/agent-sdk/drivers/gemini-cli-driver.d.ts.map +1 -0
  72. package/daemon/dist/agent-sdk/drivers/gemini-cli-driver.js +255 -0
  73. package/daemon/dist/agent-sdk/drivers/gemini-cli-driver.js.map +1 -0
  74. package/daemon/dist/agent-sdk/drivers/registry.d.ts +21 -0
  75. package/daemon/dist/agent-sdk/drivers/registry.d.ts.map +1 -0
  76. package/daemon/dist/agent-sdk/drivers/registry.js +167 -0
  77. package/daemon/dist/agent-sdk/drivers/registry.js.map +1 -0
  78. package/daemon/dist/agent-sdk/index.d.ts +24 -0
  79. package/daemon/dist/agent-sdk/index.d.ts.map +1 -0
  80. package/daemon/dist/agent-sdk/index.js +19 -0
  81. package/daemon/dist/agent-sdk/index.js.map +1 -0
  82. package/daemon/dist/agent-sdk/intelligence/contracts.d.ts +17 -0
  83. package/daemon/dist/agent-sdk/intelligence/contracts.d.ts.map +1 -0
  84. package/daemon/dist/agent-sdk/intelligence/contracts.js +2 -0
  85. package/daemon/dist/agent-sdk/intelligence/contracts.js.map +1 -0
  86. package/daemon/dist/agent-sdk/memory/filesystem.d.ts +7 -0
  87. package/daemon/dist/agent-sdk/memory/filesystem.d.ts.map +1 -0
  88. package/daemon/dist/agent-sdk/memory/filesystem.js +133 -0
  89. package/daemon/dist/agent-sdk/memory/filesystem.js.map +1 -0
  90. package/daemon/dist/agent-sdk/memory/subsystem.d.ts +54 -0
  91. package/daemon/dist/agent-sdk/memory/subsystem.d.ts.map +1 -0
  92. package/daemon/dist/agent-sdk/memory/subsystem.js +106 -0
  93. package/daemon/dist/agent-sdk/memory/subsystem.js.map +1 -0
  94. package/daemon/dist/agent-sdk/session-events.d.ts +59 -0
  95. package/daemon/dist/agent-sdk/session-events.d.ts.map +1 -0
  96. package/daemon/dist/agent-sdk/session-events.js +104 -0
  97. package/daemon/dist/agent-sdk/session-events.js.map +1 -0
  98. package/daemon/dist/agent-sdk/session-manager.d.ts +28 -0
  99. package/daemon/dist/agent-sdk/session-manager.d.ts.map +1 -0
  100. package/daemon/dist/agent-sdk/session-manager.js +54 -0
  101. package/daemon/dist/agent-sdk/session-manager.js.map +1 -0
  102. package/daemon/dist/agent-sdk/types.d.ts +110 -0
  103. package/daemon/dist/agent-sdk/types.d.ts.map +1 -0
  104. package/daemon/dist/agent-sdk/types.js +2 -0
  105. package/daemon/dist/agent-sdk/types.js.map +1 -0
  106. package/daemon/dist/automation-event-listener.d.ts +27 -0
  107. package/daemon/dist/automation-event-listener.d.ts.map +1 -0
  108. package/daemon/dist/automation-event-listener.js +342 -0
  109. package/daemon/dist/automation-event-listener.js.map +1 -0
  110. package/daemon/dist/automation-runner.d.ts +17 -0
  111. package/daemon/dist/automation-runner.d.ts.map +1 -0
  112. package/daemon/dist/automation-runner.js +592 -0
  113. package/daemon/dist/automation-runner.js.map +1 -0
  114. package/daemon/dist/autonomy/feedback-memory.d.ts +8 -0
  115. package/daemon/dist/autonomy/feedback-memory.d.ts.map +1 -0
  116. package/daemon/dist/autonomy/feedback-memory.js +23 -0
  117. package/daemon/dist/autonomy/feedback-memory.js.map +1 -0
  118. package/daemon/dist/autonomy/intent-router.d.ts +10 -0
  119. package/daemon/dist/autonomy/intent-router.d.ts.map +1 -0
  120. package/daemon/dist/autonomy/intent-router.js +72 -0
  121. package/daemon/dist/autonomy/intent-router.js.map +1 -0
  122. package/daemon/dist/autonomy/memory-rules.d.ts +35 -0
  123. package/daemon/dist/autonomy/memory-rules.d.ts.map +1 -0
  124. package/daemon/dist/autonomy/memory-rules.js +117 -0
  125. package/daemon/dist/autonomy/memory-rules.js.map +1 -0
  126. package/daemon/dist/autonomy/proof-packet.d.ts +17 -0
  127. package/daemon/dist/autonomy/proof-packet.d.ts.map +1 -0
  128. package/daemon/dist/autonomy/proof-packet.js +28 -0
  129. package/daemon/dist/autonomy/proof-packet.js.map +1 -0
  130. package/daemon/dist/autonomy/session-autonomy.d.ts +18 -0
  131. package/daemon/dist/autonomy/session-autonomy.d.ts.map +1 -0
  132. package/daemon/dist/autonomy/session-autonomy.js +71 -0
  133. package/daemon/dist/autonomy/session-autonomy.js.map +1 -0
  134. package/daemon/dist/autonomy/source-inventory.d.ts +3 -0
  135. package/daemon/dist/autonomy/source-inventory.d.ts.map +1 -0
  136. package/daemon/dist/autonomy/source-inventory.js +84 -0
  137. package/daemon/dist/autonomy/source-inventory.js.map +1 -0
  138. package/daemon/dist/autonomy/types.d.ts +20 -0
  139. package/daemon/dist/autonomy/types.d.ts.map +1 -0
  140. package/daemon/dist/autonomy/types.js +2 -0
  141. package/daemon/dist/autonomy/types.js.map +1 -0
  142. package/daemon/dist/bin/mcp-os.d.ts +3 -0
  143. package/daemon/dist/bin/mcp-os.d.ts.map +1 -0
  144. package/daemon/dist/bin/mcp-os.js +63 -0
  145. package/daemon/dist/bin/mcp-os.js.map +1 -0
  146. package/daemon/dist/bin/mcp-scheduler.d.ts +3 -0
  147. package/daemon/dist/bin/mcp-scheduler.d.ts.map +1 -0
  148. package/daemon/dist/bin/mcp-scheduler.js +90 -0
  149. package/daemon/dist/bin/mcp-scheduler.js.map +1 -0
  150. package/daemon/dist/bin/supen-sys.d.ts +3 -0
  151. package/daemon/dist/bin/supen-sys.d.ts.map +1 -0
  152. package/daemon/dist/bin/supen-sys.js +38 -0
  153. package/daemon/dist/bin/supen-sys.js.map +1 -0
  154. package/daemon/dist/bootstrap/hub-bootstrap.d.ts +2 -0
  155. package/daemon/dist/bootstrap/hub-bootstrap.d.ts.map +1 -0
  156. package/daemon/dist/bootstrap/hub-bootstrap.js +409 -0
  157. package/daemon/dist/bootstrap/hub-bootstrap.js.map +1 -0
  158. package/daemon/dist/bootstrap/skill-bootstrap.d.ts +2 -0
  159. package/daemon/dist/bootstrap/skill-bootstrap.d.ts.map +1 -0
  160. package/daemon/dist/bootstrap/skill-bootstrap.js +92 -0
  161. package/daemon/dist/bootstrap/skill-bootstrap.js.map +1 -0
  162. package/daemon/dist/channels/acp.d.ts +23 -0
  163. package/daemon/dist/channels/acp.d.ts.map +1 -0
  164. package/daemon/dist/channels/acp.js +916 -0
  165. package/daemon/dist/channels/acp.js.map +1 -0
  166. package/daemon/dist/channels/base.d.ts +38 -0
  167. package/daemon/dist/channels/base.d.ts.map +1 -0
  168. package/daemon/dist/channels/base.js +56 -0
  169. package/daemon/dist/channels/base.js.map +1 -0
  170. package/daemon/dist/channels/http-routes.d.ts +44 -0
  171. package/daemon/dist/channels/http-routes.d.ts.map +1 -0
  172. package/daemon/dist/channels/http-routes.js +688 -0
  173. package/daemon/dist/channels/http-routes.js.map +1 -0
  174. package/daemon/dist/channels/http.d.ts +16 -0
  175. package/daemon/dist/channels/http.d.ts.map +1 -0
  176. package/daemon/dist/channels/http.js +84 -0
  177. package/daemon/dist/channels/http.js.map +1 -0
  178. package/daemon/dist/channels/index.d.ts +3 -0
  179. package/daemon/dist/channels/index.d.ts.map +1 -0
  180. package/daemon/dist/channels/index.js +7 -0
  181. package/daemon/dist/channels/index.js.map +1 -0
  182. package/daemon/dist/channels/registry.d.ts +18 -0
  183. package/daemon/dist/channels/registry.d.ts.map +1 -0
  184. package/daemon/dist/channels/registry.js +11 -0
  185. package/daemon/dist/channels/registry.js.map +1 -0
  186. package/daemon/dist/commands/builtin.d.ts +7 -0
  187. package/daemon/dist/commands/builtin.d.ts.map +1 -0
  188. package/daemon/dist/commands/builtin.js +111 -0
  189. package/daemon/dist/commands/builtin.js.map +1 -0
  190. package/daemon/dist/commands/catalog.d.ts +47 -0
  191. package/daemon/dist/commands/catalog.d.ts.map +1 -0
  192. package/daemon/dist/commands/catalog.js +487 -0
  193. package/daemon/dist/commands/catalog.js.map +1 -0
  194. package/daemon/dist/core/app.d.ts +18 -0
  195. package/daemon/dist/core/app.d.ts.map +1 -0
  196. package/daemon/dist/core/app.js +49 -0
  197. package/daemon/dist/core/app.js.map +1 -0
  198. package/daemon/dist/core/automation-timing.d.ts +10 -0
  199. package/daemon/dist/core/automation-timing.d.ts.map +1 -0
  200. package/daemon/dist/core/automation-timing.js +211 -0
  201. package/daemon/dist/core/automation-timing.js.map +1 -0
  202. package/daemon/dist/core/codex-subscription.d.ts +8 -0
  203. package/daemon/dist/core/codex-subscription.d.ts.map +1 -0
  204. package/daemon/dist/core/codex-subscription.js +150 -0
  205. package/daemon/dist/core/codex-subscription.js.map +1 -0
  206. package/daemon/dist/core/command-hub.d.ts +22 -0
  207. package/daemon/dist/core/command-hub.d.ts.map +1 -0
  208. package/daemon/dist/core/command-hub.js +59 -0
  209. package/daemon/dist/core/command-hub.js.map +1 -0
  210. package/daemon/dist/core/config.d.ts +146 -0
  211. package/daemon/dist/core/config.d.ts.map +1 -0
  212. package/daemon/dist/core/config.js +663 -0
  213. package/daemon/dist/core/config.js.map +1 -0
  214. package/daemon/dist/core/control-commands.d.ts +17 -0
  215. package/daemon/dist/core/control-commands.d.ts.map +1 -0
  216. package/daemon/dist/core/control-commands.js +35 -0
  217. package/daemon/dist/core/control-commands.js.map +1 -0
  218. package/daemon/dist/core/control-log.d.ts +17 -0
  219. package/daemon/dist/core/control-log.d.ts.map +1 -0
  220. package/daemon/dist/core/control-log.js +67 -0
  221. package/daemon/dist/core/control-log.js.map +1 -0
  222. package/daemon/dist/core/cortex.d.ts +53 -0
  223. package/daemon/dist/core/cortex.d.ts.map +1 -0
  224. package/daemon/dist/core/cortex.js +1690 -0
  225. package/daemon/dist/core/cortex.js.map +1 -0
  226. package/daemon/dist/core/daemon-lock.d.ts +16 -0
  227. package/daemon/dist/core/daemon-lock.d.ts.map +1 -0
  228. package/daemon/dist/core/daemon-lock.js +285 -0
  229. package/daemon/dist/core/daemon-lock.js.map +1 -0
  230. package/daemon/dist/core/dispatcher.d.ts +42 -0
  231. package/daemon/dist/core/dispatcher.d.ts.map +1 -0
  232. package/daemon/dist/core/dispatcher.js +173 -0
  233. package/daemon/dist/core/dispatcher.js.map +1 -0
  234. package/daemon/dist/core/enrollment.d.ts +41 -0
  235. package/daemon/dist/core/enrollment.d.ts.map +1 -0
  236. package/daemon/dist/core/enrollment.js +195 -0
  237. package/daemon/dist/core/enrollment.js.map +1 -0
  238. package/daemon/dist/core/env.d.ts +109 -0
  239. package/daemon/dist/core/env.d.ts.map +1 -0
  240. package/daemon/dist/core/env.js +329 -0
  241. package/daemon/dist/core/env.js.map +1 -0
  242. package/daemon/dist/core/gateway-config.d.ts +16 -0
  243. package/daemon/dist/core/gateway-config.d.ts.map +1 -0
  244. package/daemon/dist/core/gateway-config.js +103 -0
  245. package/daemon/dist/core/gateway-config.js.map +1 -0
  246. package/daemon/dist/core/gateway-protocol.d.ts +80 -0
  247. package/daemon/dist/core/gateway-protocol.d.ts.map +1 -0
  248. package/daemon/dist/core/gateway-protocol.js +2 -0
  249. package/daemon/dist/core/gateway-protocol.js.map +1 -0
  250. package/daemon/dist/core/gateway-routing-config.d.ts +21 -0
  251. package/daemon/dist/core/gateway-routing-config.d.ts.map +1 -0
  252. package/daemon/dist/core/gateway-routing-config.js +56 -0
  253. package/daemon/dist/core/gateway-routing-config.js.map +1 -0
  254. package/daemon/dist/core/gateway.d.ts +124 -0
  255. package/daemon/dist/core/gateway.d.ts.map +1 -0
  256. package/daemon/dist/core/gateway.js +887 -0
  257. package/daemon/dist/core/gateway.js.map +1 -0
  258. package/daemon/dist/core/hub-snapshot.d.ts +42 -0
  259. package/daemon/dist/core/hub-snapshot.d.ts.map +1 -0
  260. package/daemon/dist/core/hub-snapshot.js +125 -0
  261. package/daemon/dist/core/hub-snapshot.js.map +1 -0
  262. package/daemon/dist/core/interrupts.d.ts +7 -0
  263. package/daemon/dist/core/interrupts.d.ts.map +1 -0
  264. package/daemon/dist/core/interrupts.js +28 -0
  265. package/daemon/dist/core/interrupts.js.map +1 -0
  266. package/daemon/dist/core/logger.d.ts +3 -0
  267. package/daemon/dist/core/logger.d.ts.map +1 -0
  268. package/daemon/dist/core/logger.js +91 -0
  269. package/daemon/dist/core/logger.js.map +1 -0
  270. package/daemon/dist/core/loop-guard.d.ts +27 -0
  271. package/daemon/dist/core/loop-guard.d.ts.map +1 -0
  272. package/daemon/dist/core/loop-guard.js +47 -0
  273. package/daemon/dist/core/loop-guard.js.map +1 -0
  274. package/daemon/dist/core/observable-logging.d.ts +43 -0
  275. package/daemon/dist/core/observable-logging.d.ts.map +1 -0
  276. package/daemon/dist/core/observable-logging.js +77 -0
  277. package/daemon/dist/core/observable-logging.js.map +1 -0
  278. package/daemon/dist/core/pairing.d.ts +51 -0
  279. package/daemon/dist/core/pairing.d.ts.map +1 -0
  280. package/daemon/dist/core/pairing.js +207 -0
  281. package/daemon/dist/core/pairing.js.map +1 -0
  282. package/daemon/dist/core/progress.d.ts +32 -0
  283. package/daemon/dist/core/progress.d.ts.map +1 -0
  284. package/daemon/dist/core/progress.js +145 -0
  285. package/daemon/dist/core/progress.js.map +1 -0
  286. package/daemon/dist/core/protocol-adapter.d.ts +14 -0
  287. package/daemon/dist/core/protocol-adapter.d.ts.map +1 -0
  288. package/daemon/dist/core/protocol-adapter.js +472 -0
  289. package/daemon/dist/core/protocol-adapter.js.map +1 -0
  290. package/daemon/dist/core/sdk-wrapper.d.ts +36 -0
  291. package/daemon/dist/core/sdk-wrapper.d.ts.map +1 -0
  292. package/daemon/dist/core/sdk-wrapper.js +533 -0
  293. package/daemon/dist/core/sdk-wrapper.js.map +1 -0
  294. package/daemon/dist/core/security.d.ts +10 -0
  295. package/daemon/dist/core/security.d.ts.map +1 -0
  296. package/daemon/dist/core/security.js +95 -0
  297. package/daemon/dist/core/security.js.map +1 -0
  298. package/daemon/dist/core/space-env.d.ts +15 -0
  299. package/daemon/dist/core/space-env.d.ts.map +1 -0
  300. package/daemon/dist/core/space-env.js +182 -0
  301. package/daemon/dist/core/space-env.js.map +1 -0
  302. package/daemon/dist/core/status-inspector.d.ts +31 -0
  303. package/daemon/dist/core/status-inspector.d.ts.map +1 -0
  304. package/daemon/dist/core/status-inspector.js +35 -0
  305. package/daemon/dist/core/status-inspector.js.map +1 -0
  306. package/daemon/dist/core/storage-paths.d.ts +30 -0
  307. package/daemon/dist/core/storage-paths.d.ts.map +1 -0
  308. package/daemon/dist/core/storage-paths.js +84 -0
  309. package/daemon/dist/core/storage-paths.js.map +1 -0
  310. package/daemon/dist/core/store.d.ts +256 -0
  311. package/daemon/dist/core/store.d.ts.map +1 -0
  312. package/daemon/dist/core/store.js +2956 -0
  313. package/daemon/dist/core/store.js.map +1 -0
  314. package/daemon/dist/core/streaming.d.ts +24 -0
  315. package/daemon/dist/core/streaming.d.ts.map +1 -0
  316. package/daemon/dist/core/streaming.js +57 -0
  317. package/daemon/dist/core/streaming.js.map +1 -0
  318. package/daemon/dist/core/task-artifacts.d.ts +17 -0
  319. package/daemon/dist/core/task-artifacts.d.ts.map +1 -0
  320. package/daemon/dist/core/task-artifacts.js +104 -0
  321. package/daemon/dist/core/task-artifacts.js.map +1 -0
  322. package/daemon/dist/core/thread-event-log.d.ts +54 -0
  323. package/daemon/dist/core/thread-event-log.d.ts.map +1 -0
  324. package/daemon/dist/core/thread-event-log.js +218 -0
  325. package/daemon/dist/core/thread-event-log.js.map +1 -0
  326. package/daemon/dist/core/thread-runtime-state.d.ts +53 -0
  327. package/daemon/dist/core/thread-runtime-state.d.ts.map +1 -0
  328. package/daemon/dist/core/thread-runtime-state.js +271 -0
  329. package/daemon/dist/core/thread-runtime-state.js.map +1 -0
  330. package/daemon/dist/core/types.d.ts +552 -0
  331. package/daemon/dist/core/types.d.ts.map +1 -0
  332. package/daemon/dist/core/types.js +2 -0
  333. package/daemon/dist/core/types.js.map +1 -0
  334. package/daemon/dist/core/utils.d.ts +5 -0
  335. package/daemon/dist/core/utils.d.ts.map +1 -0
  336. package/daemon/dist/core/utils.js +35 -0
  337. package/daemon/dist/core/utils.js.map +1 -0
  338. package/daemon/dist/http/command-catalog.d.ts +3 -0
  339. package/daemon/dist/http/command-catalog.d.ts.map +1 -0
  340. package/daemon/dist/http/command-catalog.js +2 -0
  341. package/daemon/dist/http/command-catalog.js.map +1 -0
  342. package/daemon/dist/http/context.d.ts +18 -0
  343. package/daemon/dist/http/context.d.ts.map +1 -0
  344. package/daemon/dist/http/context.js +121 -0
  345. package/daemon/dist/http/context.js.map +1 -0
  346. package/daemon/dist/http/office-preview.d.ts +10 -0
  347. package/daemon/dist/http/office-preview.d.ts.map +1 -0
  348. package/daemon/dist/http/office-preview.js +234 -0
  349. package/daemon/dist/http/office-preview.js.map +1 -0
  350. package/daemon/dist/http/response.d.ts +5 -0
  351. package/daemon/dist/http/response.d.ts.map +1 -0
  352. package/daemon/dist/http/response.js +37 -0
  353. package/daemon/dist/http/response.js.map +1 -0
  354. package/daemon/dist/http/router.d.ts +4 -0
  355. package/daemon/dist/http/router.d.ts.map +1 -0
  356. package/daemon/dist/http/router.js +57 -0
  357. package/daemon/dist/http/router.js.map +1 -0
  358. package/daemon/dist/http/routes/agents.d.ts +4 -0
  359. package/daemon/dist/http/routes/agents.d.ts.map +1 -0
  360. package/daemon/dist/http/routes/agents.js +747 -0
  361. package/daemon/dist/http/routes/agents.js.map +1 -0
  362. package/daemon/dist/http/routes/automations.d.ts +6 -0
  363. package/daemon/dist/http/routes/automations.d.ts.map +1 -0
  364. package/daemon/dist/http/routes/automations.js +530 -0
  365. package/daemon/dist/http/routes/automations.js.map +1 -0
  366. package/daemon/dist/http/routes/autonomy.d.ts +4 -0
  367. package/daemon/dist/http/routes/autonomy.d.ts.map +1 -0
  368. package/daemon/dist/http/routes/autonomy.js +78 -0
  369. package/daemon/dist/http/routes/autonomy.js.map +1 -0
  370. package/daemon/dist/http/routes/chat-input.d.ts +18 -0
  371. package/daemon/dist/http/routes/chat-input.d.ts.map +1 -0
  372. package/daemon/dist/http/routes/chat-input.js +122 -0
  373. package/daemon/dist/http/routes/chat-input.js.map +1 -0
  374. package/daemon/dist/http/routes/plugins.d.ts +5 -0
  375. package/daemon/dist/http/routes/plugins.d.ts.map +1 -0
  376. package/daemon/dist/http/routes/plugins.js +221 -0
  377. package/daemon/dist/http/routes/plugins.js.map +1 -0
  378. package/daemon/dist/http/routes/rpc.d.ts +28 -0
  379. package/daemon/dist/http/routes/rpc.d.ts.map +1 -0
  380. package/daemon/dist/http/routes/rpc.js +790 -0
  381. package/daemon/dist/http/routes/rpc.js.map +1 -0
  382. package/daemon/dist/http/routes/sessions.d.ts +11 -0
  383. package/daemon/dist/http/routes/sessions.d.ts.map +1 -0
  384. package/daemon/dist/http/routes/sessions.js +963 -0
  385. package/daemon/dist/http/routes/sessions.js.map +1 -0
  386. package/daemon/dist/http/routes/skills.d.ts +5 -0
  387. package/daemon/dist/http/routes/skills.d.ts.map +1 -0
  388. package/daemon/dist/http/routes/skills.js +420 -0
  389. package/daemon/dist/http/routes/skills.js.map +1 -0
  390. package/daemon/dist/http/routes/system.d.ts +64 -0
  391. package/daemon/dist/http/routes/system.d.ts.map +1 -0
  392. package/daemon/dist/http/routes/system.js +2676 -0
  393. package/daemon/dist/http/routes/system.js.map +1 -0
  394. package/daemon/dist/http/stream.d.ts +11 -0
  395. package/daemon/dist/http/stream.d.ts.map +1 -0
  396. package/daemon/dist/http/stream.js +100 -0
  397. package/daemon/dist/http/stream.js.map +1 -0
  398. package/daemon/dist/http/thread-stream.d.ts +10 -0
  399. package/daemon/dist/http/thread-stream.d.ts.map +1 -0
  400. package/daemon/dist/http/thread-stream.js +50 -0
  401. package/daemon/dist/http/thread-stream.js.map +1 -0
  402. package/daemon/dist/http/thread-title.d.ts +12 -0
  403. package/daemon/dist/http/thread-title.d.ts.map +1 -0
  404. package/daemon/dist/http/thread-title.js +122 -0
  405. package/daemon/dist/http/thread-title.js.map +1 -0
  406. package/daemon/dist/http/utils.d.ts +2 -0
  407. package/daemon/dist/http/utils.d.ts.map +1 -0
  408. package/daemon/dist/http/utils.js +18 -0
  409. package/daemon/dist/http/utils.js.map +1 -0
  410. package/daemon/dist/http/websocket.d.ts +5 -0
  411. package/daemon/dist/http/websocket.d.ts.map +1 -0
  412. package/daemon/dist/http/websocket.js +100 -0
  413. package/daemon/dist/http/websocket.js.map +1 -0
  414. package/daemon/dist/index.d.ts +35 -0
  415. package/daemon/dist/index.d.ts.map +1 -0
  416. package/daemon/dist/index.js +1582 -0
  417. package/daemon/dist/index.js.map +1 -0
  418. package/daemon/dist/mcp/aggregate-config.d.ts +16 -0
  419. package/daemon/dist/mcp/aggregate-config.d.ts.map +1 -0
  420. package/daemon/dist/mcp/aggregate-config.js +97 -0
  421. package/daemon/dist/mcp/aggregate-config.js.map +1 -0
  422. package/daemon/dist/mcp/client.d.ts +94 -0
  423. package/daemon/dist/mcp/client.d.ts.map +1 -0
  424. package/daemon/dist/mcp/client.js +207 -0
  425. package/daemon/dist/mcp/client.js.map +1 -0
  426. package/daemon/dist/mcp/default-servers.d.ts +35 -0
  427. package/daemon/dist/mcp/default-servers.d.ts.map +1 -0
  428. package/daemon/dist/mcp/default-servers.js +209 -0
  429. package/daemon/dist/mcp/default-servers.js.map +1 -0
  430. package/daemon/dist/mcp/gateway-client.d.ts +58 -0
  431. package/daemon/dist/mcp/gateway-client.d.ts.map +1 -0
  432. package/daemon/dist/mcp/gateway-client.js +181 -0
  433. package/daemon/dist/mcp/gateway-client.js.map +1 -0
  434. package/daemon/dist/mcp/index.d.ts +26 -0
  435. package/daemon/dist/mcp/index.d.ts.map +1 -0
  436. package/daemon/dist/mcp/index.js +50 -0
  437. package/daemon/dist/mcp/index.js.map +1 -0
  438. package/daemon/dist/mcp/settings.d.ts +3 -0
  439. package/daemon/dist/mcp/settings.d.ts.map +1 -0
  440. package/daemon/dist/mcp/settings.js +60 -0
  441. package/daemon/dist/mcp/settings.js.map +1 -0
  442. package/daemon/dist/mcp/tools.d.ts +21 -0
  443. package/daemon/dist/mcp/tools.d.ts.map +1 -0
  444. package/daemon/dist/mcp/tools.js +136 -0
  445. package/daemon/dist/mcp/tools.js.map +1 -0
  446. package/daemon/dist/plugins/catalog.d.ts +10 -0
  447. package/daemon/dist/plugins/catalog.d.ts.map +1 -0
  448. package/daemon/dist/plugins/catalog.js +304 -0
  449. package/daemon/dist/plugins/catalog.js.map +1 -0
  450. package/daemon/dist/plugins/hub.d.ts +42 -0
  451. package/daemon/dist/plugins/hub.d.ts.map +1 -0
  452. package/daemon/dist/plugins/hub.js +812 -0
  453. package/daemon/dist/plugins/hub.js.map +1 -0
  454. package/daemon/dist/plugins/types.d.ts +144 -0
  455. package/daemon/dist/plugins/types.d.ts.map +1 -0
  456. package/daemon/dist/plugins/types.js +2 -0
  457. package/daemon/dist/plugins/types.js.map +1 -0
  458. package/daemon/dist/router.d.ts +13 -0
  459. package/daemon/dist/router.d.ts.map +1 -0
  460. package/daemon/dist/router.js +43 -0
  461. package/daemon/dist/router.js.map +1 -0
  462. package/daemon/dist/skills/adapter.d.ts +4 -0
  463. package/daemon/dist/skills/adapter.d.ts.map +1 -0
  464. package/daemon/dist/skills/adapter.js +141 -0
  465. package/daemon/dist/skills/adapter.js.map +1 -0
  466. package/daemon/dist/skills/allowlist.d.ts +20 -0
  467. package/daemon/dist/skills/allowlist.d.ts.map +1 -0
  468. package/daemon/dist/skills/allowlist.js +52 -0
  469. package/daemon/dist/skills/allowlist.js.map +1 -0
  470. package/daemon/dist/skills/catalog.d.ts +26 -0
  471. package/daemon/dist/skills/catalog.d.ts.map +1 -0
  472. package/daemon/dist/skills/catalog.js +274 -0
  473. package/daemon/dist/skills/catalog.js.map +1 -0
  474. package/daemon/dist/skills/claude_code.d.ts +25 -0
  475. package/daemon/dist/skills/claude_code.d.ts.map +1 -0
  476. package/daemon/dist/skills/claude_code.js +49 -0
  477. package/daemon/dist/skills/claude_code.js.map +1 -0
  478. package/daemon/dist/skills/commands.d.ts +3 -0
  479. package/daemon/dist/skills/commands.d.ts.map +1 -0
  480. package/daemon/dist/skills/commands.js +689 -0
  481. package/daemon/dist/skills/commands.js.map +1 -0
  482. package/daemon/dist/skills/enabled.d.ts +7 -0
  483. package/daemon/dist/skills/enabled.d.ts.map +1 -0
  484. package/daemon/dist/skills/enabled.js +37 -0
  485. package/daemon/dist/skills/enabled.js.map +1 -0
  486. package/daemon/dist/skills/hub.d.ts +35 -0
  487. package/daemon/dist/skills/hub.d.ts.map +1 -0
  488. package/daemon/dist/skills/hub.js +574 -0
  489. package/daemon/dist/skills/hub.js.map +1 -0
  490. package/daemon/dist/skills/loader.d.ts +24 -0
  491. package/daemon/dist/skills/loader.d.ts.map +1 -0
  492. package/daemon/dist/skills/loader.js +693 -0
  493. package/daemon/dist/skills/loader.js.map +1 -0
  494. package/daemon/dist/skills/mcp-config.d.ts +8 -0
  495. package/daemon/dist/skills/mcp-config.d.ts.map +1 -0
  496. package/daemon/dist/skills/mcp-config.js +110 -0
  497. package/daemon/dist/skills/mcp-config.js.map +1 -0
  498. package/daemon/dist/skills/parser.d.ts +3 -0
  499. package/daemon/dist/skills/parser.d.ts.map +1 -0
  500. package/daemon/dist/skills/parser.js +279 -0
  501. package/daemon/dist/skills/parser.js.map +1 -0
  502. package/daemon/dist/skills/registry.d.ts +2 -0
  503. package/daemon/dist/skills/registry.d.ts.map +1 -0
  504. package/daemon/dist/skills/registry.js +2 -0
  505. package/daemon/dist/skills/registry.js.map +1 -0
  506. package/daemon/dist/skills/runtime-contract.d.ts +3 -0
  507. package/daemon/dist/skills/runtime-contract.d.ts.map +1 -0
  508. package/daemon/dist/skills/runtime-contract.js +92 -0
  509. package/daemon/dist/skills/runtime-contract.js.map +1 -0
  510. package/daemon/dist/skills/runtime.d.ts +28 -0
  511. package/daemon/dist/skills/runtime.d.ts.map +1 -0
  512. package/daemon/dist/skills/runtime.js +286 -0
  513. package/daemon/dist/skills/runtime.js.map +1 -0
  514. package/daemon/dist/skills/types.d.ts +228 -0
  515. package/daemon/dist/skills/types.d.ts.map +1 -0
  516. package/daemon/dist/skills/types.js +2 -0
  517. package/daemon/dist/skills/types.js.map +1 -0
  518. package/daemon/dist/start.d.ts +6 -0
  519. package/daemon/dist/start.d.ts.map +1 -0
  520. package/daemon/dist/start.js +19 -0
  521. package/daemon/dist/start.js.map +1 -0
  522. package/daemon/dist/sub-agent.d.ts +46 -0
  523. package/daemon/dist/sub-agent.d.ts.map +1 -0
  524. package/daemon/dist/sub-agent.js +120 -0
  525. package/daemon/dist/sub-agent.js.map +1 -0
  526. package/daemon/dist/sync/supabase-sync.d.ts +16 -0
  527. package/daemon/dist/sync/supabase-sync.d.ts.map +1 -0
  528. package/daemon/dist/sync/supabase-sync.js +240 -0
  529. package/daemon/dist/sync/supabase-sync.js.map +1 -0
  530. package/daemon/dist/task-executor.d.ts +6 -0
  531. package/daemon/dist/task-executor.d.ts.map +1 -0
  532. package/daemon/dist/task-executor.js +31 -0
  533. package/daemon/dist/task-executor.js.map +1 -0
  534. package/daemon/dist/tools/automations.d.ts +57 -0
  535. package/daemon/dist/tools/automations.d.ts.map +1 -0
  536. package/daemon/dist/tools/automations.js +94 -0
  537. package/daemon/dist/tools/automations.js.map +1 -0
  538. package/daemon/dist/tools/built-ins.d.ts +112 -0
  539. package/daemon/dist/tools/built-ins.d.ts.map +1 -0
  540. package/daemon/dist/tools/built-ins.js +251 -0
  541. package/daemon/dist/tools/built-ins.js.map +1 -0
  542. package/daemon/dist/tools/index.d.ts +287 -0
  543. package/daemon/dist/tools/index.d.ts.map +1 -0
  544. package/daemon/dist/tools/index.js +86 -0
  545. package/daemon/dist/tools/index.js.map +1 -0
  546. package/daemon/dist/tools/shell.d.ts +15 -0
  547. package/daemon/dist/tools/shell.d.ts.map +1 -0
  548. package/daemon/dist/tools/shell.js +46 -0
  549. package/daemon/dist/tools/shell.js.map +1 -0
  550. package/daemon/dist/tools/skill-tools.d.ts +23 -0
  551. package/daemon/dist/tools/skill-tools.d.ts.map +1 -0
  552. package/daemon/dist/tools/skill-tools.js +64 -0
  553. package/daemon/dist/tools/skill-tools.js.map +1 -0
  554. package/daemon/dist/tools/system.d.ts +36 -0
  555. package/daemon/dist/tools/system.d.ts.map +1 -0
  556. package/daemon/dist/tools/system.js +54 -0
  557. package/daemon/dist/tools/system.js.map +1 -0
  558. package/daemon/dist/tools/types.d.ts +11 -0
  559. package/daemon/dist/tools/types.d.ts.map +1 -0
  560. package/daemon/dist/tools/types.js +2 -0
  561. package/daemon/dist/tools/types.js.map +1 -0
  562. package/daemon/scripts/browser-smoke.mjs +125 -0
  563. package/daemon/scripts/supen-daemon.js +15 -0
  564. package/dist/agent.d.ts +11 -0
  565. package/dist/agent.js +159 -0
  566. package/dist/agent.js.map +1 -0
  567. package/dist/auth/login.d.ts +20 -0
  568. package/dist/auth/login.js +151 -0
  569. package/dist/auth/login.js.map +1 -0
  570. package/dist/auth/logout.d.ts +5 -0
  571. package/dist/auth/logout.js +19 -0
  572. package/dist/auth/logout.js.map +1 -0
  573. package/dist/auth/store.d.ts +37 -0
  574. package/dist/auth/store.js +80 -0
  575. package/dist/auth/store.js.map +1 -0
  576. package/dist/auth/whoami.d.ts +5 -0
  577. package/dist/auth/whoami.js +24 -0
  578. package/dist/auth/whoami.js.map +1 -0
  579. package/dist/backend.d.ts +8 -0
  580. package/dist/backend.js +148 -0
  581. package/dist/backend.js.map +1 -0
  582. package/dist/bootstrap.d.ts +13 -0
  583. package/dist/bootstrap.js +230 -0
  584. package/dist/bootstrap.js.map +1 -0
  585. package/dist/chat.d.ts +13 -0
  586. package/dist/chat.js +255 -0
  587. package/dist/chat.js.map +1 -0
  588. package/dist/commands.d.ts +48 -0
  589. package/dist/commands.js +273 -0
  590. package/dist/commands.js.map +1 -0
  591. package/dist/computer.d.ts +2 -0
  592. package/dist/computer.js +510 -0
  593. package/dist/computer.js.map +1 -0
  594. package/dist/config.d.ts +11 -0
  595. package/dist/config.js +149 -0
  596. package/dist/config.js.map +1 -0
  597. package/dist/daemon-manage.d.ts +29 -0
  598. package/dist/daemon-manage.js +255 -0
  599. package/dist/daemon-manage.js.map +1 -0
  600. package/dist/daemon.d.ts +15 -0
  601. package/dist/daemon.js +205 -0
  602. package/dist/daemon.js.map +1 -0
  603. package/dist/doctor.d.ts +13 -0
  604. package/dist/doctor.js +323 -0
  605. package/dist/doctor.js.map +1 -0
  606. package/dist/enroll.d.ts +7 -0
  607. package/dist/enroll.js +154 -0
  608. package/dist/enroll.js.map +1 -0
  609. package/dist/env.d.ts +10 -0
  610. package/dist/env.js +363 -0
  611. package/dist/env.js.map +1 -0
  612. package/dist/index.d.ts +54 -0
  613. package/dist/index.js +141 -0
  614. package/dist/index.js.map +1 -0
  615. package/dist/knowledge.d.ts +3 -0
  616. package/dist/knowledge.js +1581 -0
  617. package/dist/knowledge.js.map +1 -0
  618. package/dist/mcp.d.ts +11 -0
  619. package/dist/mcp.js +137 -0
  620. package/dist/mcp.js.map +1 -0
  621. package/dist/model.d.ts +8 -0
  622. package/dist/model.js +192 -0
  623. package/dist/model.js.map +1 -0
  624. package/dist/pairing.d.ts +21 -0
  625. package/dist/pairing.js +376 -0
  626. package/dist/pairing.js.map +1 -0
  627. package/dist/repl-events.d.ts +60 -0
  628. package/dist/repl-events.js +89 -0
  629. package/dist/repl-events.js.map +1 -0
  630. package/dist/repl-renderer.d.ts +37 -0
  631. package/dist/repl-renderer.js +140 -0
  632. package/dist/repl-renderer.js.map +1 -0
  633. package/dist/repl.d.ts +52 -0
  634. package/dist/repl.js +624 -0
  635. package/dist/repl.js.map +1 -0
  636. package/dist/service.d.ts +8 -0
  637. package/dist/service.js +238 -0
  638. package/dist/service.js.map +1 -0
  639. package/dist/skills.d.ts +14 -0
  640. package/dist/skills.js +423 -0
  641. package/dist/skills.js.map +1 -0
  642. package/dist/sse.d.ts +15 -0
  643. package/dist/sse.js +166 -0
  644. package/dist/sse.js.map +1 -0
  645. package/dist/thread.d.ts +9 -0
  646. package/dist/thread.js +152 -0
  647. package/dist/thread.js.map +1 -0
  648. package/dist/transport/computer-api.d.ts +1 -0
  649. package/dist/transport/computer-api.js +20 -0
  650. package/dist/transport/computer-api.js.map +1 -0
  651. package/dist/transport/gateway.d.ts +23 -0
  652. package/dist/transport/gateway.js +161 -0
  653. package/dist/transport/gateway.js.map +1 -0
  654. package/dist/transport/index.d.ts +27 -0
  655. package/dist/transport/index.js +77 -0
  656. package/dist/transport/index.js.map +1 -0
  657. package/dist/transport/local.d.ts +20 -0
  658. package/dist/transport/local.js +138 -0
  659. package/dist/transport/local.js.map +1 -0
  660. package/dist/transport/types.d.ts +42 -0
  661. package/dist/transport/types.js +11 -0
  662. package/dist/transport/types.js.map +1 -0
  663. package/dist/ui/app.d.ts +7 -0
  664. package/dist/ui/app.js +192 -0
  665. package/dist/ui/app.js.map +1 -0
  666. package/dist/ui/history-item.d.ts +9 -0
  667. package/dist/ui/history-item.js +35 -0
  668. package/dist/ui/history-item.js.map +1 -0
  669. package/dist/ui/input-bar.d.ts +17 -0
  670. package/dist/ui/input-bar.js +67 -0
  671. package/dist/ui/input-bar.js.map +1 -0
  672. package/dist/ui/streaming-view.d.ts +6 -0
  673. package/dist/ui/streaming-view.js +6 -0
  674. package/dist/ui/streaming-view.js.map +1 -0
  675. package/dist/ui/thread-input-history.d.ts +18 -0
  676. package/dist/ui/thread-input-history.js +67 -0
  677. package/dist/ui/thread-input-history.js.map +1 -0
  678. package/dist/utils.d.ts +17 -0
  679. package/dist/utils.js +80 -0
  680. package/dist/utils.js.map +1 -0
  681. package/package.json +55 -0
@@ -0,0 +1,592 @@
1
+ import { randomUUID } from 'crypto';
2
+ import { SCHEDULER_POLL_INTERVAL } from './core/config.js';
3
+ import { detectAutomationNoOp } from './core/automation-timing.js';
4
+ import { logger } from './core/logger.js';
5
+ import { drainPendingAutomationEvent } from './automation-event-listener.js';
6
+ import { cleanupTaskFolderWithoutMeaningfulArtifacts } from './core/task-artifacts.js';
7
+ import { canonicalAutomationLogFields, classifyObservableLogEvent, excerptText, } from './core/observable-logging.js';
8
+ import { buildAutomationTriggerMessage, createAutomationRun, createScheduleRun, ensureAutomationTask, ensureSession, finalizeAutomationRun, finalizeAutomationEventForRun, finalizeScheduleRun, getAgent, getAutomationById, claimDueSchedules, listAutomationRuns, markAutomationTriggered, updateAutomation, updateAutomationState, updateSchedule, } from './core/store.js';
9
+ const AUTOMATION_POLL_INTERVAL_MS = SCHEDULER_POLL_INTERVAL;
10
+ let automationLoopRunning = false;
11
+ let timeoutId = null;
12
+ let loopRef = null;
13
+ let forcedRunPending = false;
14
+ function buildAutomationModelLogFields(modelId) {
15
+ const normalized = typeof modelId === 'string' ? modelId.trim() : '';
16
+ if (!normalized)
17
+ return {};
18
+ const separatorIndex = normalized.indexOf(':');
19
+ if (separatorIndex <= 0 || separatorIndex >= normalized.length - 1) {
20
+ return { model_id: normalized };
21
+ }
22
+ return {
23
+ model_id: normalized,
24
+ model_provider: normalized.slice(0, separatorIndex),
25
+ model_name: normalized.slice(separatorIndex + 1),
26
+ };
27
+ }
28
+ function buildAutomationNotificationText(input) {
29
+ const promptPreview = input.prompt.trim().length <= 120
30
+ ? input.prompt.trim()
31
+ : `${input.prompt.trim().slice(0, 117)}...`;
32
+ const detailPreview = input.detail.trim().length <= 280
33
+ ? input.detail.trim()
34
+ : `${input.detail.trim().slice(0, 277)}...`;
35
+ const status = input.outcome === 'succeeded' ? 'completed' : 'failed';
36
+ const lines = [`Automation ${status}: ${promptPreview}`];
37
+ if (input.taskId) {
38
+ lines.push(`Run task: ${input.taskId}`);
39
+ }
40
+ lines.push(input.outcome === 'succeeded'
41
+ ? `Summary: ${detailPreview}`
42
+ : `Error: ${detailPreview}`);
43
+ return lines.join('\n');
44
+ }
45
+ function resolveSessionId(chatJid, fallbackId) {
46
+ const parts = chatJid.split(':');
47
+ if (parts.length > 2) {
48
+ return parts.slice(2).join(':');
49
+ }
50
+ return parts[parts.length - 1] || fallbackId;
51
+ }
52
+ function cleanupAutomationTaskFolderWithoutMeaningfulArtifacts(sourceMessage) {
53
+ if (!sourceMessage.task_id) {
54
+ return false;
55
+ }
56
+ const sessionId = sourceMessage.session_id
57
+ || resolveSessionId(sourceMessage.chat_jid, sourceMessage.agent_id || 'main');
58
+ return cleanupTaskFolderWithoutMeaningfulArtifacts(sessionId, sourceMessage.task_id);
59
+ }
60
+ async function drainPendingEventIfNeeded(automationId) {
61
+ try {
62
+ const drained = await drainPendingAutomationEvent(automationId);
63
+ if (drained) {
64
+ logger.info({ automation_id: automationId }, 'Queued pending automation event after run completion');
65
+ }
66
+ }
67
+ catch (err) {
68
+ logger.warn({ err, automation_id: automationId }, 'Failed to queue pending automation event after run completion');
69
+ }
70
+ }
71
+ export function shouldSuppressAutomationReply(sourceMessage, outcome, detail) {
72
+ if (!sourceMessage.automation_id || outcome !== 'succeeded') {
73
+ return false;
74
+ }
75
+ return detectAutomationNoOp(detail).noOp;
76
+ }
77
+ export async function completeAutomationRun(deps, sourceMessage, runChatJid, outcome, detail) {
78
+ const modelLogFields = buildAutomationModelLogFields(sourceMessage.model);
79
+ logger.info({
80
+ ...canonicalAutomationLogFields({
81
+ automation_id: sourceMessage.automation_id,
82
+ schedule_id: sourceMessage.schedule_id,
83
+ automation_run_id: sourceMessage.automation_run_id,
84
+ schedule_run_id: sourceMessage.schedule_run_id,
85
+ task_id: sourceMessage.task_id,
86
+ agent_id: sourceMessage.agent_id,
87
+ chat_jid: runChatJid,
88
+ }),
89
+ ...modelLogFields,
90
+ outcome,
91
+ prompt_excerpt: excerptText(sourceMessage.content, 160),
92
+ }, 'Automation completion received');
93
+ const finishedAt = deps.now?.() ?? new Date().toISOString();
94
+ const automationId = sourceMessage.automation_id;
95
+ const automationRunId = sourceMessage.automation_run_id;
96
+ if (automationId && !automationRunId) {
97
+ return {
98
+ suppressReply: shouldSuppressAutomationReply(sourceMessage, outcome, detail),
99
+ };
100
+ }
101
+ if (automationId && automationRunId) {
102
+ const emptySuccess = outcome === 'succeeded' && detail.trim().length === 0;
103
+ const noOp = outcome === 'succeeded' && !emptySuccess
104
+ ? detectAutomationNoOp(detail)
105
+ : { noOp: false, reason: null };
106
+ if (noOp.noOp) {
107
+ const finalized = finalizeAutomationRun(automationRunId, {
108
+ status: 'succeeded',
109
+ finished_at: finishedAt,
110
+ result_preview: detail,
111
+ full_result: detail,
112
+ no_op_detected: true,
113
+ no_op_reason: noOp.reason,
114
+ notification_sent: false,
115
+ });
116
+ if (!finalized) {
117
+ logger.warn({ automation_id: automationId, automation_run_id: automationRunId }, 'Automation run completed but run record was not found');
118
+ }
119
+ else {
120
+ let task_folder_removed = false;
121
+ try {
122
+ task_folder_removed =
123
+ cleanupAutomationTaskFolderWithoutMeaningfulArtifacts(sourceMessage);
124
+ }
125
+ catch (err) {
126
+ logger.warn({
127
+ err,
128
+ automation_id: automationId,
129
+ automation_run_id: automationRunId,
130
+ task_id: sourceMessage.task_id,
131
+ }, 'Failed to clean up automation task folder without meaningful artifacts');
132
+ }
133
+ logger.info({
134
+ ...canonicalAutomationLogFields({
135
+ automation_id: automationId,
136
+ automation_run_id: automationRunId,
137
+ task_id: sourceMessage.task_id,
138
+ agent_id: sourceMessage.agent_id,
139
+ }),
140
+ ...modelLogFields,
141
+ outcome: 'succeeded',
142
+ suppress_reply: true,
143
+ task_folder_removed,
144
+ decision_excerpt: excerptText(noOp.reason ?? detail, 180),
145
+ result_excerpt: excerptText(detail, 220),
146
+ event_style: classifyObservableLogEvent('automation.no_task').emphasis,
147
+ }, 'Automation completed');
148
+ }
149
+ finalizeAutomationEventForRun(automationRunId, {
150
+ status: 'succeeded',
151
+ finishedAt,
152
+ });
153
+ await drainPendingEventIfNeeded(automationId);
154
+ return { suppressReply: true };
155
+ }
156
+ let finalOutcome = emptySuccess ? 'failed' : outcome;
157
+ let finalError = emptySuccess
158
+ ? 'Automation produced an empty response before completing the task.'
159
+ : outcome === 'failed' ? detail : null;
160
+ let notificationSent = false;
161
+ const notifyPolicy = sourceMessage.automation_notify_policy ??
162
+ sourceMessage.schedule_notify_policy;
163
+ const notifyTarget = notifyPolicy === 'none'
164
+ ? undefined
165
+ : sourceMessage.automation_notify_target_jid ??
166
+ sourceMessage.schedule_notify_target_jid;
167
+ if (notifyTarget && notifyTarget !== runChatJid) {
168
+ try {
169
+ deps.ensureNotificationSessionExists?.(notifyTarget, sourceMessage.agent_id);
170
+ await deps.sendMessage(notifyTarget, buildAutomationNotificationText({
171
+ prompt: sourceMessage.content,
172
+ taskId: sourceMessage.task_id || sourceMessage.session_id,
173
+ outcome,
174
+ detail,
175
+ }));
176
+ notificationSent = true;
177
+ }
178
+ catch (err) {
179
+ logger.error({
180
+ err,
181
+ automation_id: automationId,
182
+ automation_run_id: automationRunId,
183
+ notify_target_jid: notifyTarget,
184
+ }, 'Failed to deliver automation notification');
185
+ finalOutcome = 'failed';
186
+ finalError =
187
+ outcome === 'failed'
188
+ ? `${detail}\nNotification delivery failed: ${err?.message || String(err)}`
189
+ : `Notification delivery failed: ${err?.message || String(err)}`;
190
+ }
191
+ }
192
+ const finalized = finalizeAutomationRun(automationRunId, {
193
+ status: finalOutcome,
194
+ finished_at: finishedAt,
195
+ result_preview: finalOutcome === 'succeeded' ? detail : null,
196
+ full_result: finalOutcome === 'succeeded' ? detail : null,
197
+ error: finalOutcome === 'failed' ? finalError : null,
198
+ no_op_detected: false,
199
+ no_op_reason: null,
200
+ notification_sent: notificationSent,
201
+ });
202
+ if (!finalized) {
203
+ logger.warn({ automation_id: automationId, automation_run_id: automationRunId }, 'Automation run completed but run record was not found');
204
+ }
205
+ else {
206
+ let task_folder_removed = false;
207
+ if (finalOutcome === 'succeeded') {
208
+ try {
209
+ task_folder_removed =
210
+ cleanupAutomationTaskFolderWithoutMeaningfulArtifacts(sourceMessage);
211
+ }
212
+ catch (err) {
213
+ logger.warn({
214
+ err,
215
+ automation_id: automationId,
216
+ automation_run_id: automationRunId,
217
+ task_id: sourceMessage.task_id,
218
+ }, 'Failed to clean up automation task folder without meaningful artifacts');
219
+ }
220
+ }
221
+ logger.info({
222
+ ...canonicalAutomationLogFields({
223
+ automation_id: automationId,
224
+ automation_run_id: automationRunId,
225
+ task_id: sourceMessage.task_id,
226
+ agent_id: sourceMessage.agent_id,
227
+ }),
228
+ ...modelLogFields,
229
+ outcome: finalOutcome,
230
+ suppress_reply: false,
231
+ task_folder_removed,
232
+ decision_excerpt: excerptText(finalOutcome === 'succeeded'
233
+ ? detail
234
+ : finalError ?? detail, 180),
235
+ result_excerpt: excerptText(finalOutcome === 'succeeded'
236
+ ? detail
237
+ : finalError ?? detail, 220),
238
+ event_style: classifyObservableLogEvent(finalOutcome === 'failed'
239
+ ? 'automation.failed'
240
+ : 'automation.completed_real_work').emphasis,
241
+ }, 'Automation completed');
242
+ }
243
+ finalizeAutomationEventForRun(automationRunId, {
244
+ status: finalOutcome,
245
+ finishedAt,
246
+ error: finalError,
247
+ });
248
+ await drainPendingEventIfNeeded(automationId);
249
+ return { suppressReply: false };
250
+ }
251
+ if (!sourceMessage.schedule_id) {
252
+ return { suppressReply: false };
253
+ }
254
+ let finalOutcome = outcome;
255
+ let finalError = outcome === 'failed' ? detail : undefined;
256
+ const notifyTarget = sourceMessage.schedule_notify_policy === 'none'
257
+ ? undefined
258
+ : sourceMessage.schedule_notify_target_jid;
259
+ if (notifyTarget && notifyTarget !== runChatJid) {
260
+ try {
261
+ deps.ensureNotificationSessionExists?.(notifyTarget, sourceMessage.agent_id);
262
+ await deps.sendMessage(notifyTarget, buildAutomationNotificationText({
263
+ prompt: sourceMessage.content,
264
+ taskId: sourceMessage.task_id || sourceMessage.session_id,
265
+ outcome,
266
+ detail,
267
+ }));
268
+ }
269
+ catch (err) {
270
+ logger.error({
271
+ err,
272
+ schedule_id: sourceMessage.schedule_id,
273
+ notify_target_jid: notifyTarget,
274
+ }, 'Failed to deliver schedule notification');
275
+ finalOutcome = 'failed';
276
+ finalError =
277
+ outcome === 'failed'
278
+ ? `${detail}\nNotification delivery failed: ${err?.message || String(err)}`
279
+ : `Notification delivery failed: ${err?.message || String(err)}`;
280
+ }
281
+ }
282
+ const finalized = finalizeScheduleRun(sourceMessage.schedule_id, {
283
+ run_id: sourceMessage.schedule_run_id,
284
+ finished_at: finishedAt,
285
+ outcome: finalOutcome,
286
+ result_text: finalOutcome === 'succeeded' ? detail : undefined,
287
+ error: finalOutcome === 'failed' ? finalError : undefined,
288
+ });
289
+ if (!finalized) {
290
+ logger.warn({ schedule_id: sourceMessage.schedule_id }, 'Scheduled run completed but schedule record was not found');
291
+ }
292
+ else {
293
+ logger.info({
294
+ schedule_id: sourceMessage.schedule_id,
295
+ outcome: finalOutcome,
296
+ }, 'Scheduled run finalized');
297
+ }
298
+ return { suppressReply: false };
299
+ }
300
+ export function forceAutomationCheck() {
301
+ logger.info('Manually triggering automation check');
302
+ forcedRunPending = true;
303
+ if (timeoutId)
304
+ clearTimeout(timeoutId);
305
+ if (loopRef)
306
+ void loopRef();
307
+ }
308
+ function logRunningAutomationHeartbeats(nowIso) {
309
+ const running = listAutomationRuns({ status: 'running', limit: 100 });
310
+ if (running.length === 0)
311
+ return;
312
+ const nowMs = new Date(nowIso).getTime();
313
+ for (const run of running) {
314
+ const automation = getAutomationById(run.automation_id);
315
+ if (!automation || automation.status !== 'ACTIVE') {
316
+ const error = automation
317
+ ? `${run.automation_id}: automation is ${automation.status.toLowerCase()} while run is still marked running`
318
+ : `${run.automation_id}: automation record is missing while run is still marked running`;
319
+ const finalized = finalizeAutomationRun(run.run_id, {
320
+ status: 'failed',
321
+ finished_at: nowIso,
322
+ error,
323
+ notification_sent: false,
324
+ });
325
+ if (finalized) {
326
+ logger.info({
327
+ ...canonicalAutomationLogFields({
328
+ automation_id: run.automation_id,
329
+ automation_run_id: run.run_id,
330
+ task_id: run.task_id,
331
+ }),
332
+ automation_status: automation?.status ?? 'missing',
333
+ error,
334
+ }, 'Automation stale run finalized');
335
+ }
336
+ else {
337
+ logger.warn({
338
+ ...canonicalAutomationLogFields({
339
+ automation_id: run.automation_id,
340
+ automation_run_id: run.run_id,
341
+ task_id: run.task_id,
342
+ }),
343
+ automation_status: automation?.status ?? 'missing',
344
+ error,
345
+ }, 'Automation stale run could not be finalized');
346
+ }
347
+ continue;
348
+ }
349
+ const startedAt = run.started_at || run.triggered_at || run.created_at;
350
+ const startedMs = new Date(startedAt || nowIso).getTime();
351
+ const elapsedMs = Number.isFinite(startedMs) ? Math.max(0, nowMs - startedMs) : 0;
352
+ const updatedAt = run.updated_at || run.started_at || nowIso;
353
+ logger.info({
354
+ ...canonicalAutomationLogFields({
355
+ automation_id: run.automation_id,
356
+ automation_run_id: run.run_id,
357
+ task_id: run.task_id,
358
+ }),
359
+ session_id: run.session_id,
360
+ elapsed_s: Math.floor(elapsedMs / 1000),
361
+ updated_at: updatedAt,
362
+ detail: excerptText(run.prompt, 160),
363
+ }, 'Automation heartbeat');
364
+ }
365
+ }
366
+ export function startAutomationLoop(deps) {
367
+ if (automationLoopRunning) {
368
+ logger.debug('Automation loop already running, skipping duplicate start');
369
+ return;
370
+ }
371
+ automationLoopRunning = true;
372
+ logger.info('Automation loop started');
373
+ loopRef = async () => {
374
+ try {
375
+ const isForced = forcedRunPending;
376
+ forcedRunPending = false;
377
+ const nowIso = new Date().toISOString();
378
+ logRunningAutomationHeartbeats(nowIso);
379
+ const dueAutomations = claimDueSchedules(nowIso, isForced);
380
+ if (dueAutomations.length > 0) {
381
+ logger.info({ count: dueAutomations.length }, 'Found due automations');
382
+ }
383
+ for (const current of dueAutomations) {
384
+ const automation = getAutomationById(current.id);
385
+ const agentId = automation?.agent_id || current.agent_id;
386
+ if (!agentId) {
387
+ logger.warn({ automation_id: current.id }, 'Automation missing agent_id, skipping');
388
+ finalizeScheduleRun(current.id, {
389
+ finished_at: nowIso,
390
+ outcome: 'failed',
391
+ error: 'Automation missing agent_id',
392
+ });
393
+ continue;
394
+ }
395
+ const agent = getAgent(agentId);
396
+ if (!agent) {
397
+ logger.error({ agent_id: agentId, automation_id: current.id }, 'Automation agent not found, pausing');
398
+ if (automation) {
399
+ updateAutomation(current.id, { status: 'PAUSED' });
400
+ }
401
+ else {
402
+ updateSchedule(current.id, { status: 'paused', next_run: null });
403
+ }
404
+ finalizeScheduleRun(current.id, {
405
+ finished_at: nowIso,
406
+ outcome: 'failed',
407
+ error: `Automation agent "${agentId}" not found`,
408
+ });
409
+ continue;
410
+ }
411
+ let runId;
412
+ try {
413
+ logger.info({
414
+ ...canonicalAutomationLogFields({
415
+ automation_id: current.id,
416
+ agent_id: agentId,
417
+ }),
418
+ automation_name: excerptText(automation?.name ?? current.prompt, 80),
419
+ prompt_excerpt: excerptText(automation?.prompt ?? current.prompt, 160),
420
+ mode: current.session ?? 'isolated',
421
+ execution_status: current.execution_status,
422
+ event_style: classifyObservableLogEvent('automation.started_real_work').emphasis,
423
+ }, 'Automation started');
424
+ if (automation) {
425
+ const session = ensureAutomationTask(automation);
426
+ if (session.status === 'running') {
427
+ updateAutomationState(automation.id, {
428
+ execution_status: 'idle',
429
+ claimed_at: null,
430
+ started_at: null,
431
+ });
432
+ markAutomationTriggered({
433
+ automationId: automation.id,
434
+ messageId: `skipped-${Date.now()}`,
435
+ triggeredAt: nowIso,
436
+ });
437
+ logger.info({ automation_id: automation.id, task_id: session.session_id }, 'Automation trigger skipped because task is already running');
438
+ continue;
439
+ }
440
+ const run = createAutomationRun(automation.id, {
441
+ triggered_at: nowIso,
442
+ started_at: nowIso,
443
+ session_id: session.session_id,
444
+ task_id: session.session_id,
445
+ cwd: automation.cwds?.[0],
446
+ });
447
+ const message = buildAutomationTriggerMessage({
448
+ automation,
449
+ nowIso,
450
+ previousTriggeredAt: automation.last_triggered_at,
451
+ runId: run.run_id,
452
+ });
453
+ deps.enqueueMessage(message.chat_jid, message);
454
+ markAutomationTriggered({
455
+ automationId: automation.id,
456
+ messageId: message.id,
457
+ triggeredAt: nowIso,
458
+ keepExecutionStatus: true,
459
+ });
460
+ logger.info({
461
+ ...canonicalAutomationLogFields({
462
+ automation_id: automation.id,
463
+ automation_run_id: run.run_id,
464
+ task_id: message.task_id,
465
+ agent_id: agentId,
466
+ chat_jid: message.chat_jid,
467
+ }),
468
+ context_excerpt: excerptText(message.content, 160),
469
+ event_style: classifyObservableLogEvent('automation.started_real_work').emphasis,
470
+ }, 'Automation queued');
471
+ continue;
472
+ }
473
+ const isIsolated = (automation?.session_mode ?? current.session ?? 'isolated') ===
474
+ 'isolated';
475
+ const notificationTarget = current.notify_target_jid ||
476
+ current.target_jid ||
477
+ `web:${agentId}:main`;
478
+ const chatJid = isIsolated
479
+ ? `web:${agentId}:sched-${current.id}`
480
+ : notificationTarget;
481
+ const taskId = `automation-${current.id}-${Date.now()}`;
482
+ const sessionId = isIsolated
483
+ ? `sched-${current.id}`
484
+ : resolveSessionId(chatJid, agentId);
485
+ if (automation) {
486
+ const run = createAutomationRun(current.id, {
487
+ triggered_at: nowIso,
488
+ started_at: nowIso,
489
+ session_id: sessionId,
490
+ task_id: taskId,
491
+ cwd: automation.cwds?.[0],
492
+ });
493
+ runId = run.run_id;
494
+ }
495
+ else {
496
+ const run = createScheduleRun(current.id, {
497
+ started_at: nowIso,
498
+ session_id: sessionId,
499
+ task_id: taskId,
500
+ chat_jid: chatJid,
501
+ notify_target_jid: notificationTarget,
502
+ });
503
+ runId = run.id;
504
+ }
505
+ const notifyPolicy = current.notify_policy ?? 'none';
506
+ const message = {
507
+ id: randomUUID(),
508
+ chat_jid: chatJid,
509
+ sender: 'system',
510
+ sender_name: 'Automation',
511
+ content: automation?.prompt ?? current.prompt,
512
+ timestamp: nowIso,
513
+ is_from_me: false,
514
+ agent_id: agentId,
515
+ session_id: sessionId,
516
+ task_id: taskId,
517
+ ...(automation
518
+ ? {
519
+ automation_id: current.id,
520
+ automation_run_id: runId,
521
+ automation_notify_target_jid: notificationTarget,
522
+ automation_notify_policy: notifyPolicy,
523
+ model: automation.model,
524
+ metadata: {
525
+ runtime_options: {
526
+ ...(automation.permission_mode
527
+ ? { permissionMode: automation.permission_mode }
528
+ : {}),
529
+ ...(automation.network_access
530
+ ? { networkAccess: true }
531
+ : {}),
532
+ },
533
+ },
534
+ }
535
+ : {}),
536
+ schedule_id: current.id,
537
+ schedule_run_id: runId,
538
+ schedule_notify_target_jid: notificationTarget,
539
+ schedule_notify_policy: notifyPolicy,
540
+ };
541
+ ensureSession({
542
+ agent_id: agentId,
543
+ session_id: sessionId,
544
+ channel: isIsolated ? 'http' : chatJid.split(':')[0] || 'web',
545
+ source_ref: chatJid,
546
+ title: automation?.name || excerptText(current.prompt, 80),
547
+ });
548
+ logger.info({
549
+ ...canonicalAutomationLogFields({
550
+ automation_id: current.id,
551
+ automation_run_id: runId,
552
+ task_id: taskId,
553
+ agent_id: agentId,
554
+ chat_jid: chatJid,
555
+ }),
556
+ context_excerpt: excerptText(message.content, 160),
557
+ isolated: isIsolated,
558
+ event_style: classifyObservableLogEvent('automation.started_real_work').emphasis,
559
+ }, 'Automation queued');
560
+ deps.enqueueMessage(chatJid, message);
561
+ }
562
+ catch (err) {
563
+ logger.error({ err, automation_id: current.id, agent_id: agentId }, 'Failed to enqueue claimed automation');
564
+ finalizeScheduleRun(current.id, {
565
+ run_id: runId,
566
+ finished_at: new Date().toISOString(),
567
+ outcome: 'failed',
568
+ error: err?.message || 'Failed to enqueue claimed automation',
569
+ });
570
+ }
571
+ }
572
+ }
573
+ catch (err) {
574
+ logger.error({ err }, 'Error in automation loop');
575
+ }
576
+ if (loopRef) {
577
+ timeoutId = setTimeout(() => {
578
+ void loopRef?.();
579
+ }, AUTOMATION_POLL_INTERVAL_MS);
580
+ }
581
+ };
582
+ void loopRef();
583
+ }
584
+ export function _resetAutomationLoopForTests() {
585
+ automationLoopRunning = false;
586
+ if (timeoutId)
587
+ clearTimeout(timeoutId);
588
+ timeoutId = null;
589
+ loopRef = null;
590
+ forcedRunPending = false;
591
+ }
592
+ //# sourceMappingURL=automation-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation-runner.js","sourceRoot":"","sources":["../src/automation-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type MemoryCandidateType = 'template_preference' | 'field_mapping' | 'style_rule' | 'delivery_rule' | 'negative_example';
2
+ export interface MemoryCandidate {
3
+ type: MemoryCandidateType;
4
+ signal: string;
5
+ confidence: number;
6
+ }
7
+ export declare function extractMemoryCandidatesFromFeedback(text: string): MemoryCandidate[];
8
+ //# sourceMappingURL=feedback-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-memory.d.ts","sourceRoot":"","sources":["../../src/autonomy/feedback-memory.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB,eAAe,GACf,YAAY,GACZ,eAAe,GACf,kBAAkB,CAAC;AAEvB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CAsBnF"}
@@ -0,0 +1,23 @@
1
+ export function extractMemoryCandidatesFromFeedback(text) {
2
+ const normalized = text.trim();
3
+ if (!normalized)
4
+ return [];
5
+ const out = [];
6
+ if (/(按照|按|use).*(模板|format|格式|附件\d+)/i.test(normalized)) {
7
+ out.push({ type: 'template_preference', signal: normalized, confidence: 0.75 });
8
+ }
9
+ if (/(字段|field).*(来自|from|映射)/i.test(normalized)) {
10
+ out.push({ type: 'field_mapping', signal: normalized, confidence: 0.7 });
11
+ }
12
+ if (/(不要|别|not).*(口语|casual|风格)/i.test(normalized)) {
13
+ out.push({ type: 'style_rule', signal: normalized, confidence: 0.72 });
14
+ }
15
+ if (/(发|send).*(钉钉|dingtalk|群|channel)/i.test(normalized)) {
16
+ out.push({ type: 'delivery_rule', signal: normalized, confidence: 0.68 });
17
+ }
18
+ if (/(不要这样|wrong|不对|reject)/i.test(normalized)) {
19
+ out.push({ type: 'negative_example', signal: normalized, confidence: 0.6 });
20
+ }
21
+ return out;
22
+ }
23
+ //# sourceMappingURL=feedback-memory.js.map