reflectt-node 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/LICENSE +178 -0
  2. package/README.md +188 -0
  3. package/dist/activationEvents.d.ts +110 -0
  4. package/dist/activationEvents.d.ts.map +1 -0
  5. package/dist/activationEvents.js +378 -0
  6. package/dist/activationEvents.js.map +1 -0
  7. package/dist/activity-signal.d.ts +30 -0
  8. package/dist/activity-signal.d.ts.map +1 -0
  9. package/dist/activity-signal.js +93 -0
  10. package/dist/activity-signal.js.map +1 -0
  11. package/dist/alert-integrity.d.ts +100 -0
  12. package/dist/alert-integrity.d.ts.map +1 -0
  13. package/dist/alert-integrity.js +333 -0
  14. package/dist/alert-integrity.js.map +1 -0
  15. package/dist/alert-preflight.d.ts +40 -0
  16. package/dist/alert-preflight.d.ts.map +1 -0
  17. package/dist/alert-preflight.js +235 -0
  18. package/dist/alert-preflight.js.map +1 -0
  19. package/dist/analytics.d.ts +131 -0
  20. package/dist/analytics.d.ts.map +1 -0
  21. package/dist/analytics.js +371 -0
  22. package/dist/analytics.js.map +1 -0
  23. package/dist/artifact-mirror.d.ts +26 -0
  24. package/dist/artifact-mirror.d.ts.map +1 -0
  25. package/dist/artifact-mirror.js +170 -0
  26. package/dist/artifact-mirror.js.map +1 -0
  27. package/dist/artifact-resolver.d.ts +48 -0
  28. package/dist/artifact-resolver.d.ts.map +1 -0
  29. package/dist/artifact-resolver.js +164 -0
  30. package/dist/artifact-resolver.js.map +1 -0
  31. package/dist/assignment.d.ts +116 -0
  32. package/dist/assignment.d.ts.map +1 -0
  33. package/dist/assignment.js +475 -0
  34. package/dist/assignment.js.map +1 -0
  35. package/dist/auditLedger.d.ts +50 -0
  36. package/dist/auditLedger.d.ts.map +1 -0
  37. package/dist/auditLedger.js +136 -0
  38. package/dist/auditLedger.js.map +1 -0
  39. package/dist/boardHealthWorker.d.ts +134 -0
  40. package/dist/boardHealthWorker.d.ts.map +1 -0
  41. package/dist/boardHealthWorker.js +882 -0
  42. package/dist/boardHealthWorker.js.map +1 -0
  43. package/dist/bootstrap-team.d.ts +42 -0
  44. package/dist/bootstrap-team.d.ts.map +1 -0
  45. package/dist/bootstrap-team.js +111 -0
  46. package/dist/bootstrap-team.js.map +1 -0
  47. package/dist/buildInfo.d.ts +17 -0
  48. package/dist/buildInfo.d.ts.map +1 -0
  49. package/dist/buildInfo.js +56 -0
  50. package/dist/buildInfo.js.map +1 -0
  51. package/dist/calendar-events.d.ts +133 -0
  52. package/dist/calendar-events.d.ts.map +1 -0
  53. package/dist/calendar-events.js +615 -0
  54. package/dist/calendar-events.js.map +1 -0
  55. package/dist/calendar-ical.d.ts +41 -0
  56. package/dist/calendar-ical.d.ts.map +1 -0
  57. package/dist/calendar-ical.js +413 -0
  58. package/dist/calendar-ical.js.map +1 -0
  59. package/dist/calendar-reminder-engine.d.ts +10 -0
  60. package/dist/calendar-reminder-engine.d.ts.map +1 -0
  61. package/dist/calendar-reminder-engine.js +143 -0
  62. package/dist/calendar-reminder-engine.js.map +1 -0
  63. package/dist/calendar.d.ts +75 -0
  64. package/dist/calendar.d.ts.map +1 -0
  65. package/dist/calendar.js +391 -0
  66. package/dist/calendar.js.map +1 -0
  67. package/dist/canvas-multiplexer.d.ts +44 -0
  68. package/dist/canvas-multiplexer.d.ts.map +1 -0
  69. package/dist/canvas-multiplexer.js +150 -0
  70. package/dist/canvas-multiplexer.js.map +1 -0
  71. package/dist/canvas-slots.d.ts +83 -0
  72. package/dist/canvas-slots.d.ts.map +1 -0
  73. package/dist/canvas-slots.js +144 -0
  74. package/dist/canvas-slots.js.map +1 -0
  75. package/dist/canvas-types.d.ts +56 -0
  76. package/dist/canvas-types.d.ts.map +1 -0
  77. package/dist/canvas-types.js +54 -0
  78. package/dist/canvas-types.js.map +1 -0
  79. package/dist/cf-keepalive.d.ts +40 -0
  80. package/dist/cf-keepalive.d.ts.map +1 -0
  81. package/dist/cf-keepalive.js +153 -0
  82. package/dist/cf-keepalive.js.map +1 -0
  83. package/dist/changeFeed.d.ts +38 -0
  84. package/dist/changeFeed.d.ts.map +1 -0
  85. package/dist/changeFeed.js +324 -0
  86. package/dist/changeFeed.js.map +1 -0
  87. package/dist/channels.d.ts +28 -0
  88. package/dist/channels.d.ts.map +1 -0
  89. package/dist/channels.js +23 -0
  90. package/dist/channels.js.map +1 -0
  91. package/dist/chat-approval-detector.d.ts +47 -0
  92. package/dist/chat-approval-detector.d.ts.map +1 -0
  93. package/dist/chat-approval-detector.js +224 -0
  94. package/dist/chat-approval-detector.js.map +1 -0
  95. package/dist/chat.d.ts +119 -0
  96. package/dist/chat.d.ts.map +1 -0
  97. package/dist/chat.js +666 -0
  98. package/dist/chat.js.map +1 -0
  99. package/dist/cli.d.ts +3 -0
  100. package/dist/cli.d.ts.map +1 -0
  101. package/dist/cli.js +1142 -0
  102. package/dist/cli.js.map +1 -0
  103. package/dist/cloud.d.ts +45 -0
  104. package/dist/cloud.d.ts.map +1 -0
  105. package/dist/cloud.js +962 -0
  106. package/dist/cloud.js.map +1 -0
  107. package/dist/config.d.ts +17 -0
  108. package/dist/config.d.ts.map +1 -0
  109. package/dist/config.js +33 -0
  110. package/dist/config.js.map +1 -0
  111. package/dist/connectivity.d.ts +59 -0
  112. package/dist/connectivity.d.ts.map +1 -0
  113. package/dist/connectivity.js +173 -0
  114. package/dist/connectivity.js.map +1 -0
  115. package/dist/contacts.d.ts +59 -0
  116. package/dist/contacts.d.ts.map +1 -0
  117. package/dist/contacts.js +183 -0
  118. package/dist/contacts.js.map +1 -0
  119. package/dist/content.d.ts +130 -0
  120. package/dist/content.d.ts.map +1 -0
  121. package/dist/content.js +186 -0
  122. package/dist/content.js.map +1 -0
  123. package/dist/context-budget.d.ts +87 -0
  124. package/dist/context-budget.d.ts.map +1 -0
  125. package/dist/context-budget.js +459 -0
  126. package/dist/context-budget.js.map +1 -0
  127. package/dist/continuity-loop.d.ts +55 -0
  128. package/dist/continuity-loop.d.ts.map +1 -0
  129. package/dist/continuity-loop.js +267 -0
  130. package/dist/continuity-loop.js.map +1 -0
  131. package/dist/dashboard.d.ts +6 -0
  132. package/dist/dashboard.d.ts.map +1 -0
  133. package/dist/dashboard.js +2348 -0
  134. package/dist/dashboard.js.map +1 -0
  135. package/dist/db.d.ts +44 -0
  136. package/dist/db.d.ts.map +1 -0
  137. package/dist/db.js +648 -0
  138. package/dist/db.js.map +1 -0
  139. package/dist/doctor.d.ts +30 -0
  140. package/dist/doctor.d.ts.map +1 -0
  141. package/dist/doctor.js +159 -0
  142. package/dist/doctor.js.map +1 -0
  143. package/dist/duplicateClosureGuard.d.ts +31 -0
  144. package/dist/duplicateClosureGuard.d.ts.map +1 -0
  145. package/dist/duplicateClosureGuard.js +83 -0
  146. package/dist/duplicateClosureGuard.js.map +1 -0
  147. package/dist/embeddings.d.ts +13 -0
  148. package/dist/embeddings.d.ts.map +1 -0
  149. package/dist/embeddings.js +78 -0
  150. package/dist/embeddings.js.map +1 -0
  151. package/dist/escalation.d.ts +80 -0
  152. package/dist/escalation.d.ts.map +1 -0
  153. package/dist/escalation.js +213 -0
  154. package/dist/escalation.js.map +1 -0
  155. package/dist/events.d.ts +130 -0
  156. package/dist/events.d.ts.map +1 -0
  157. package/dist/events.js +382 -0
  158. package/dist/events.js.map +1 -0
  159. package/dist/executionSweeper.d.ts +97 -0
  160. package/dist/executionSweeper.d.ts.map +1 -0
  161. package/dist/executionSweeper.js +875 -0
  162. package/dist/executionSweeper.js.map +1 -0
  163. package/dist/experiments.d.ts +47 -0
  164. package/dist/experiments.d.ts.map +1 -0
  165. package/dist/experiments.js +133 -0
  166. package/dist/experiments.js.map +1 -0
  167. package/dist/feedback.d.ts +179 -0
  168. package/dist/feedback.d.ts.map +1 -0
  169. package/dist/feedback.js +397 -0
  170. package/dist/feedback.js.map +1 -0
  171. package/dist/files.d.ts +52 -0
  172. package/dist/files.d.ts.map +1 -0
  173. package/dist/files.js +172 -0
  174. package/dist/files.js.map +1 -0
  175. package/dist/format-duration.d.ts +19 -0
  176. package/dist/format-duration.d.ts.map +1 -0
  177. package/dist/format-duration.js +33 -0
  178. package/dist/format-duration.js.map +1 -0
  179. package/dist/github-actor-auth.d.ts +20 -0
  180. package/dist/github-actor-auth.d.ts.map +1 -0
  181. package/dist/github-actor-auth.js +54 -0
  182. package/dist/github-actor-auth.js.map +1 -0
  183. package/dist/github-ci.d.ts +16 -0
  184. package/dist/github-ci.d.ts.map +1 -0
  185. package/dist/github-ci.js +37 -0
  186. package/dist/github-ci.js.map +1 -0
  187. package/dist/github-identity.d.ts +30 -0
  188. package/dist/github-identity.d.ts.map +1 -0
  189. package/dist/github-identity.js +96 -0
  190. package/dist/github-identity.js.map +1 -0
  191. package/dist/github-reviews.d.ts +24 -0
  192. package/dist/github-reviews.d.ts.map +1 -0
  193. package/dist/github-reviews.js +56 -0
  194. package/dist/github-reviews.js.map +1 -0
  195. package/dist/health.d.ts +391 -0
  196. package/dist/health.d.ts.map +1 -0
  197. package/dist/health.js +1841 -0
  198. package/dist/health.js.map +1 -0
  199. package/dist/host-keepalive.d.ts +22 -0
  200. package/dist/host-keepalive.d.ts.map +1 -0
  201. package/dist/host-keepalive.js +126 -0
  202. package/dist/host-keepalive.js.map +1 -0
  203. package/dist/host-registry.d.ts +43 -0
  204. package/dist/host-registry.d.ts.map +1 -0
  205. package/dist/host-registry.js +93 -0
  206. package/dist/host-registry.js.map +1 -0
  207. package/dist/inbox.d.ts +87 -0
  208. package/dist/inbox.d.ts.map +1 -0
  209. package/dist/inbox.js +410 -0
  210. package/dist/inbox.js.map +1 -0
  211. package/dist/index.d.ts +2 -0
  212. package/dist/index.d.ts.map +1 -0
  213. package/dist/index.js +306 -0
  214. package/dist/index.js.map +1 -0
  215. package/dist/insight-mutation.d.ts +32 -0
  216. package/dist/insight-mutation.d.ts.map +1 -0
  217. package/dist/insight-mutation.js +160 -0
  218. package/dist/insight-mutation.js.map +1 -0
  219. package/dist/insight-promotion.d.ts +89 -0
  220. package/dist/insight-promotion.d.ts.map +1 -0
  221. package/dist/insight-promotion.js +278 -0
  222. package/dist/insight-promotion.js.map +1 -0
  223. package/dist/insight-task-bridge.d.ts +77 -0
  224. package/dist/insight-task-bridge.d.ts.map +1 -0
  225. package/dist/insight-task-bridge.js +556 -0
  226. package/dist/insight-task-bridge.js.map +1 -0
  227. package/dist/insights.d.ts +222 -0
  228. package/dist/insights.d.ts.map +1 -0
  229. package/dist/insights.js +871 -0
  230. package/dist/insights.js.map +1 -0
  231. package/dist/intake-pipeline.d.ts +74 -0
  232. package/dist/intake-pipeline.d.ts.map +1 -0
  233. package/dist/intake-pipeline.js +199 -0
  234. package/dist/intake-pipeline.js.map +1 -0
  235. package/dist/intensity.d.ts +31 -0
  236. package/dist/intensity.d.ts.map +1 -0
  237. package/dist/intensity.js +94 -0
  238. package/dist/intensity.js.map +1 -0
  239. package/dist/knowledge-auto-index.d.ts +37 -0
  240. package/dist/knowledge-auto-index.d.ts.map +1 -0
  241. package/dist/knowledge-auto-index.js +149 -0
  242. package/dist/knowledge-auto-index.js.map +1 -0
  243. package/dist/knowledge-docs.d.ts +45 -0
  244. package/dist/knowledge-docs.d.ts.map +1 -0
  245. package/dist/knowledge-docs.js +188 -0
  246. package/dist/knowledge-docs.js.map +1 -0
  247. package/dist/lane-config.d.ts +25 -0
  248. package/dist/lane-config.d.ts.map +1 -0
  249. package/dist/lane-config.js +105 -0
  250. package/dist/lane-config.js.map +1 -0
  251. package/dist/lineage.d.ts +86 -0
  252. package/dist/lineage.d.ts.map +1 -0
  253. package/dist/lineage.js +303 -0
  254. package/dist/lineage.js.map +1 -0
  255. package/dist/logStore.d.ts +25 -0
  256. package/dist/logStore.d.ts.map +1 -0
  257. package/dist/logStore.js +83 -0
  258. package/dist/logStore.js.map +1 -0
  259. package/dist/manage.d.ts +12 -0
  260. package/dist/manage.d.ts.map +1 -0
  261. package/dist/manage.js +253 -0
  262. package/dist/manage.js.map +1 -0
  263. package/dist/mcp.d.ts +5 -0
  264. package/dist/mcp.d.ts.map +1 -0
  265. package/dist/mcp.js +604 -0
  266. package/dist/mcp.js.map +1 -0
  267. package/dist/memory.d.ts +47 -0
  268. package/dist/memory.d.ts.map +1 -0
  269. package/dist/memory.js +149 -0
  270. package/dist/memory.js.map +1 -0
  271. package/dist/mention-ack.d.ts +80 -0
  272. package/dist/mention-ack.d.ts.map +1 -0
  273. package/dist/mention-ack.js +175 -0
  274. package/dist/mention-ack.js.map +1 -0
  275. package/dist/messageRouter.d.ts +60 -0
  276. package/dist/messageRouter.d.ts.map +1 -0
  277. package/dist/messageRouter.js +309 -0
  278. package/dist/messageRouter.js.map +1 -0
  279. package/dist/mutationAlert.d.ts +44 -0
  280. package/dist/mutationAlert.d.ts.map +1 -0
  281. package/dist/mutationAlert.js +174 -0
  282. package/dist/mutationAlert.js.map +1 -0
  283. package/dist/noise-budget.d.ts +136 -0
  284. package/dist/noise-budget.d.ts.map +1 -0
  285. package/dist/noise-budget.js +340 -0
  286. package/dist/noise-budget.js.map +1 -0
  287. package/dist/notifications.d.ts +67 -0
  288. package/dist/notifications.d.ts.map +1 -0
  289. package/dist/notifications.js +253 -0
  290. package/dist/notifications.js.map +1 -0
  291. package/dist/openclaw.d.ts +34 -0
  292. package/dist/openclaw.d.ts.map +1 -0
  293. package/dist/openclaw.js +208 -0
  294. package/dist/openclaw.js.map +1 -0
  295. package/dist/pause-controls.d.ts +31 -0
  296. package/dist/pause-controls.d.ts.map +1 -0
  297. package/dist/pause-controls.js +130 -0
  298. package/dist/pause-controls.js.map +1 -0
  299. package/dist/pidlock.d.ts +25 -0
  300. package/dist/pidlock.d.ts.map +1 -0
  301. package/dist/pidlock.js +179 -0
  302. package/dist/pidlock.js.map +1 -0
  303. package/dist/policy.d.ts +139 -0
  304. package/dist/policy.d.ts.map +1 -0
  305. package/dist/policy.js +264 -0
  306. package/dist/policy.js.map +1 -0
  307. package/dist/polls.d.ts +47 -0
  308. package/dist/polls.d.ts.map +1 -0
  309. package/dist/polls.js +162 -0
  310. package/dist/polls.js.map +1 -0
  311. package/dist/portability.d.ts +55 -0
  312. package/dist/portability.d.ts.map +1 -0
  313. package/dist/portability.js +292 -0
  314. package/dist/portability.js.map +1 -0
  315. package/dist/pr-integrity.d.ts +45 -0
  316. package/dist/pr-integrity.d.ts.map +1 -0
  317. package/dist/pr-integrity.js +124 -0
  318. package/dist/pr-integrity.js.map +1 -0
  319. package/dist/prAutoMerge.d.ts +62 -0
  320. package/dist/prAutoMerge.d.ts.map +1 -0
  321. package/dist/prAutoMerge.js +493 -0
  322. package/dist/prAutoMerge.js.map +1 -0
  323. package/dist/preflight.d.ts +66 -0
  324. package/dist/preflight.d.ts.map +1 -0
  325. package/dist/preflight.js +864 -0
  326. package/dist/preflight.js.map +1 -0
  327. package/dist/presence.d.ts +98 -0
  328. package/dist/presence.d.ts.map +1 -0
  329. package/dist/presence.js +347 -0
  330. package/dist/presence.js.map +1 -0
  331. package/dist/provisioning.d.ts +101 -0
  332. package/dist/provisioning.d.ts.map +1 -0
  333. package/dist/provisioning.js +430 -0
  334. package/dist/provisioning.js.map +1 -0
  335. package/dist/reflection-automation.d.ts +59 -0
  336. package/dist/reflection-automation.d.ts.map +1 -0
  337. package/dist/reflection-automation.js +350 -0
  338. package/dist/reflection-automation.js.map +1 -0
  339. package/dist/reflections.d.ts +65 -0
  340. package/dist/reflections.d.ts.map +1 -0
  341. package/dist/reflections.js +306 -0
  342. package/dist/reflections.js.map +1 -0
  343. package/dist/release.d.ts +67 -0
  344. package/dist/release.d.ts.map +1 -0
  345. package/dist/release.js +275 -0
  346. package/dist/release.js.map +1 -0
  347. package/dist/request-tracker.d.ts +36 -0
  348. package/dist/request-tracker.d.ts.map +1 -0
  349. package/dist/request-tracker.js +109 -0
  350. package/dist/request-tracker.js.map +1 -0
  351. package/dist/research.d.ts +75 -0
  352. package/dist/research.d.ts.map +1 -0
  353. package/dist/research.js +171 -0
  354. package/dist/research.js.map +1 -0
  355. package/dist/routing-approvals.d.ts +73 -0
  356. package/dist/routing-approvals.d.ts.map +1 -0
  357. package/dist/routing-approvals.js +88 -0
  358. package/dist/routing-approvals.js.map +1 -0
  359. package/dist/routing-override.d.ts +94 -0
  360. package/dist/routing-override.d.ts.map +1 -0
  361. package/dist/routing-override.js +290 -0
  362. package/dist/routing-override.js.map +1 -0
  363. package/dist/scope-routing.d.ts +18 -0
  364. package/dist/scope-routing.d.ts.map +1 -0
  365. package/dist/scope-routing.js +29 -0
  366. package/dist/scope-routing.js.map +1 -0
  367. package/dist/secrets.d.ts +77 -0
  368. package/dist/secrets.d.ts.map +1 -0
  369. package/dist/secrets.js +287 -0
  370. package/dist/secrets.js.map +1 -0
  371. package/dist/server.d.ts +3 -0
  372. package/dist/server.d.ts.map +1 -0
  373. package/dist/server.js +10887 -0
  374. package/dist/server.js.map +1 -0
  375. package/dist/service-probe.d.ts +53 -0
  376. package/dist/service-probe.d.ts.map +1 -0
  377. package/dist/service-probe.js +225 -0
  378. package/dist/service-probe.js.map +1 -0
  379. package/dist/shared-workspace-api.d.ts +73 -0
  380. package/dist/shared-workspace-api.d.ts.map +1 -0
  381. package/dist/shared-workspace-api.js +281 -0
  382. package/dist/shared-workspace-api.js.map +1 -0
  383. package/dist/shipped-heartbeat.d.ts +91 -0
  384. package/dist/shipped-heartbeat.d.ts.map +1 -0
  385. package/dist/shipped-heartbeat.js +272 -0
  386. package/dist/shipped-heartbeat.js.map +1 -0
  387. package/dist/starter-team.d.ts +23 -0
  388. package/dist/starter-team.d.ts.map +1 -0
  389. package/dist/starter-team.js +88 -0
  390. package/dist/starter-team.js.map +1 -0
  391. package/dist/suppression-ledger.d.ts +73 -0
  392. package/dist/suppression-ledger.d.ts.map +1 -0
  393. package/dist/suppression-ledger.js +125 -0
  394. package/dist/suppression-ledger.js.map +1 -0
  395. package/dist/system-loop-state.d.ts +4 -0
  396. package/dist/system-loop-state.d.ts.map +1 -0
  397. package/dist/system-loop-state.js +40 -0
  398. package/dist/system-loop-state.js.map +1 -0
  399. package/dist/taskCommentIngest.d.ts +43 -0
  400. package/dist/taskCommentIngest.d.ts.map +1 -0
  401. package/dist/taskCommentIngest.js +59 -0
  402. package/dist/taskCommentIngest.js.map +1 -0
  403. package/dist/taskPrecheck.d.ts +20 -0
  404. package/dist/taskPrecheck.d.ts.map +1 -0
  405. package/dist/taskPrecheck.js +329 -0
  406. package/dist/taskPrecheck.js.map +1 -0
  407. package/dist/taskStateSync.d.ts +8 -0
  408. package/dist/taskStateSync.d.ts.map +1 -0
  409. package/dist/taskStateSync.js +79 -0
  410. package/dist/taskStateSync.js.map +1 -0
  411. package/dist/tasks.d.ts +140 -0
  412. package/dist/tasks.d.ts.map +1 -0
  413. package/dist/tasks.js +1281 -0
  414. package/dist/tasks.js.map +1 -0
  415. package/dist/team-config.d.ts +24 -0
  416. package/dist/team-config.d.ts.map +1 -0
  417. package/dist/team-config.js +221 -0
  418. package/dist/team-config.js.map +1 -0
  419. package/dist/team-doctor.d.ts +22 -0
  420. package/dist/team-doctor.d.ts.map +1 -0
  421. package/dist/team-doctor.js +270 -0
  422. package/dist/team-doctor.js.map +1 -0
  423. package/dist/team-pulse.d.ts +52 -0
  424. package/dist/team-pulse.d.ts.map +1 -0
  425. package/dist/team-pulse.js +176 -0
  426. package/dist/team-pulse.js.map +1 -0
  427. package/dist/telemetry.d.ts +74 -0
  428. package/dist/telemetry.d.ts.map +1 -0
  429. package/dist/telemetry.js +256 -0
  430. package/dist/telemetry.js.map +1 -0
  431. package/dist/test-task-filter.d.ts +21 -0
  432. package/dist/test-task-filter.d.ts.map +1 -0
  433. package/dist/test-task-filter.js +48 -0
  434. package/dist/test-task-filter.js.map +1 -0
  435. package/dist/types.d.ts +126 -0
  436. package/dist/types.d.ts.map +1 -0
  437. package/dist/types.js +4 -0
  438. package/dist/types.js.map +1 -0
  439. package/dist/usage-tracking.d.ts +101 -0
  440. package/dist/usage-tracking.d.ts.map +1 -0
  441. package/dist/usage-tracking.js +325 -0
  442. package/dist/usage-tracking.js.map +1 -0
  443. package/dist/vector-store.d.ts +87 -0
  444. package/dist/vector-store.d.ts.map +1 -0
  445. package/dist/vector-store.js +247 -0
  446. package/dist/vector-store.js.map +1 -0
  447. package/dist/watchdog/idleNudgeLane.d.ts +22 -0
  448. package/dist/watchdog/idleNudgeLane.d.ts.map +1 -0
  449. package/dist/watchdog/idleNudgeLane.js +98 -0
  450. package/dist/watchdog/idleNudgeLane.js.map +1 -0
  451. package/dist/webhooks.d.ts +103 -0
  452. package/dist/webhooks.d.ts.map +1 -0
  453. package/dist/webhooks.js +398 -0
  454. package/dist/webhooks.js.map +1 -0
  455. package/dist/working-contract.d.ts +42 -0
  456. package/dist/working-contract.d.ts.map +1 -0
  457. package/dist/working-contract.js +228 -0
  458. package/dist/working-contract.js.map +1 -0
  459. package/dist/ws-heartbeat.d.ts +66 -0
  460. package/dist/ws-heartbeat.d.ts.map +1 -0
  461. package/dist/ws-heartbeat.js +174 -0
  462. package/dist/ws-heartbeat.js.map +1 -0
  463. package/package.json +87 -0
  464. package/plugins/reflectt-channel/README.md +96 -0
  465. package/plugins/reflectt-channel/index.ts +789 -0
  466. package/plugins/reflectt-channel/openclaw.plugin.json +23 -0
  467. package/plugins/reflectt-channel/package.json +23 -0
  468. package/plugins/reflectt-channel/src/channel.ts +433 -0
  469. package/plugins/reflectt-channel/src/types.ts +29 -0
  470. package/public/avatars/echo.png +0 -0
  471. package/public/avatars/harmony.png +0 -0
  472. package/public/avatars/kai.png +0 -0
  473. package/public/avatars/link.png +0 -0
  474. package/public/avatars/pixel.png +0 -0
  475. package/public/avatars/rhythm.png +0 -0
  476. package/public/avatars/ryan.png +0 -0
  477. package/public/avatars/sage.png +0 -0
  478. package/public/avatars/scout.png +0 -0
  479. package/public/avatars/spark.png +0 -0
  480. package/public/dashboard-animations.css +381 -0
  481. package/public/dashboard.js +3479 -0
  482. package/public/docs.md +1062 -0
  483. package/public/file-upload-mock.html +1097 -0
  484. package/public/og-card.png +0 -0
  485. package/public/ui-kit.html +318 -0
  486. package/public/widget/feedback.js +194 -0
@@ -0,0 +1,131 @@
1
+ interface VercelAnalytics {
2
+ pageviews: number;
3
+ visitors: number;
4
+ topPages: Array<{
5
+ page: string;
6
+ views: number;
7
+ }>;
8
+ period: string;
9
+ }
10
+ interface DevToArticle {
11
+ id: number;
12
+ title: string;
13
+ url: string;
14
+ views: number;
15
+ reactions: number;
16
+ comments: number;
17
+ published_at: string;
18
+ }
19
+ interface ContentPerformance {
20
+ devto: {
21
+ articles: DevToArticle[];
22
+ totalViews: number;
23
+ totalReactions: number;
24
+ };
25
+ foragents: VercelAnalytics;
26
+ }
27
+ interface TaskAnalytics {
28
+ total: number;
29
+ completed: number;
30
+ completionRate: number;
31
+ avgCycleTimeMs: number;
32
+ blockedCount: number;
33
+ blockerFrequency: number;
34
+ byPriority: Record<string, {
35
+ total: number;
36
+ completed: number;
37
+ avgCycleTimeMs: number;
38
+ }>;
39
+ byAssignee: Record<string, {
40
+ total: number;
41
+ completed: number;
42
+ avgCycleTimeMs: number;
43
+ }>;
44
+ }
45
+ interface ModelAnalytics {
46
+ totalTracked: number;
47
+ totalUntracked: number;
48
+ models: Array<{
49
+ model: string;
50
+ total: number;
51
+ completed: number;
52
+ avgCycleTimeMs: number;
53
+ reviewPassRate: number;
54
+ }>;
55
+ }
56
+ interface AgentModelAnalytics {
57
+ agent: string;
58
+ models: string[];
59
+ total: number;
60
+ completed: number;
61
+ avgCycleTimeMs: number;
62
+ reviewPassRate: number;
63
+ }
64
+ interface MetricsSummary {
65
+ tasks: TaskAnalytics;
66
+ content?: ContentPerformance;
67
+ timestamp: number;
68
+ }
69
+ interface DailyFunnelChannel {
70
+ channel: string;
71
+ utmSource?: string;
72
+ visits: number;
73
+ signups: number;
74
+ activations: number;
75
+ signupRate: number;
76
+ activationRate: number;
77
+ }
78
+ interface DailyFunnelMetrics {
79
+ day: string;
80
+ timezone: string;
81
+ totals: {
82
+ visits: number;
83
+ signups: number;
84
+ activations: number;
85
+ signupRate: number;
86
+ activationRate: number;
87
+ };
88
+ channels: DailyFunnelChannel[];
89
+ generatedAt: number;
90
+ note: string;
91
+ }
92
+ declare class AnalyticsManager {
93
+ private vercelToken?;
94
+ private devtoApiKey?;
95
+ private vercelTeamId?;
96
+ private vercelProjectId?;
97
+ constructor();
98
+ /**
99
+ * Fetch Vercel Analytics for forAgents.dev
100
+ */
101
+ getForAgentsAnalytics(period?: '1h' | '24h' | '7d' | '30d'): Promise<VercelAnalytics | null>;
102
+ /**
103
+ * Fetch dev.to article performance
104
+ */
105
+ getDevToPerformance(): Promise<DevToArticle[]>;
106
+ /**
107
+ * Get aggregated content performance
108
+ */
109
+ getContentPerformance(): Promise<ContentPerformance>;
110
+ /**
111
+ * Calculate task analytics from task data
112
+ */
113
+ getTaskAnalytics(since?: number): TaskAnalytics;
114
+ private inferChannelFromPath;
115
+ getDailyFunnelMetrics(timezone?: string): Promise<DailyFunnelMetrics>;
116
+ /**
117
+ * Model performance analytics: tasks per model, avg cycle time, review pass rates
118
+ */
119
+ getModelAnalytics(since?: number): ModelAnalytics;
120
+ /**
121
+ * Per-agent model + performance stats
122
+ */
123
+ getAgentModelAnalytics(since?: number): AgentModelAnalytics[];
124
+ /**
125
+ * Get summary metrics dashboard
126
+ */
127
+ getMetricsSummary(includeContent?: boolean): Promise<MetricsSummary>;
128
+ }
129
+ export declare const analyticsManager: AnalyticsManager;
130
+ export {};
131
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,371 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) Reflectt AI
3
+ /**
4
+ * Analytics Manager
5
+ *
6
+ * Integrates with external services:
7
+ * - Vercel Analytics API
8
+ * - dev.to API
9
+ * - Internal task metrics
10
+ */
11
+ import { taskManager } from './tasks.js';
12
+ class AnalyticsManager {
13
+ vercelToken;
14
+ devtoApiKey;
15
+ vercelTeamId;
16
+ vercelProjectId;
17
+ constructor() {
18
+ this.vercelToken = process.env.VERCEL_TOKEN;
19
+ this.devtoApiKey = process.env.DEVTO_API_KEY;
20
+ this.vercelTeamId = process.env.VERCEL_TEAM_ID;
21
+ this.vercelProjectId = process.env.VERCEL_PROJECT_ID;
22
+ }
23
+ /**
24
+ * Fetch Vercel Analytics for forAgents.dev
25
+ */
26
+ async getForAgentsAnalytics(period = '7d') {
27
+ if (!this.vercelToken || !this.vercelProjectId) {
28
+ console.warn('[Analytics] Vercel token or project ID not configured');
29
+ return null;
30
+ }
31
+ try {
32
+ // Vercel Analytics API endpoint
33
+ const teamQuery = this.vercelTeamId ? `?teamId=${this.vercelTeamId}` : '';
34
+ const url = `https://api.vercel.com/v1/analytics/${this.vercelProjectId}/stats${teamQuery}`;
35
+ const response = await fetch(url, {
36
+ headers: {
37
+ Authorization: `Bearer ${this.vercelToken}`,
38
+ },
39
+ });
40
+ if (!response.ok) {
41
+ console.error(`[Analytics] Vercel API error: ${response.status}`);
42
+ return null;
43
+ }
44
+ const data = await response.json();
45
+ // Transform to our format
46
+ return {
47
+ pageviews: data.pageviews || 0,
48
+ visitors: data.visitors || 0,
49
+ topPages: data.topPages || [],
50
+ period,
51
+ };
52
+ }
53
+ catch (err) {
54
+ console.error('[Analytics] Failed to fetch Vercel analytics:', err);
55
+ return null;
56
+ }
57
+ }
58
+ /**
59
+ * Fetch dev.to article performance
60
+ */
61
+ async getDevToPerformance() {
62
+ if (!this.devtoApiKey) {
63
+ console.warn('[Analytics] dev.to API key not configured');
64
+ return [];
65
+ }
66
+ try {
67
+ // Fetch user's published articles
68
+ const response = await fetch('https://dev.to/api/articles/me/published', {
69
+ headers: {
70
+ 'api-key': this.devtoApiKey,
71
+ },
72
+ });
73
+ if (!response.ok) {
74
+ console.error(`[Analytics] dev.to API error: ${response.status}`);
75
+ return [];
76
+ }
77
+ const articles = await response.json();
78
+ return articles.map((article) => ({
79
+ id: article.id,
80
+ title: article.title,
81
+ url: article.url,
82
+ views: article.page_views_count || 0,
83
+ reactions: article.public_reactions_count || 0,
84
+ comments: article.comments_count || 0,
85
+ published_at: article.published_at,
86
+ }));
87
+ }
88
+ catch (err) {
89
+ console.error('[Analytics] Failed to fetch dev.to articles:', err);
90
+ return [];
91
+ }
92
+ }
93
+ /**
94
+ * Get aggregated content performance
95
+ */
96
+ async getContentPerformance() {
97
+ const [devtoArticles, foragentsAnalytics] = await Promise.all([
98
+ this.getDevToPerformance(),
99
+ this.getForAgentsAnalytics(),
100
+ ]);
101
+ const totalViews = devtoArticles.reduce((sum, a) => sum + a.views, 0);
102
+ const totalReactions = devtoArticles.reduce((sum, a) => sum + a.reactions, 0);
103
+ return {
104
+ devto: {
105
+ articles: devtoArticles,
106
+ totalViews,
107
+ totalReactions,
108
+ },
109
+ foragents: foragentsAnalytics || {
110
+ pageviews: 0,
111
+ visitors: 0,
112
+ topPages: [],
113
+ period: '7d',
114
+ },
115
+ };
116
+ }
117
+ /**
118
+ * Calculate task analytics from task data
119
+ */
120
+ getTaskAnalytics(since) {
121
+ const tasks = taskManager.listTasks();
122
+ const filteredTasks = since ? tasks.filter(t => t.createdAt >= since) : tasks;
123
+ const completed = filteredTasks.filter(t => t.status === 'done');
124
+ const blocked = filteredTasks.filter(t => t.status === 'blocked');
125
+ // Calculate cycle times for completed tasks
126
+ const cycleTimes = completed
127
+ .map(t => t.updatedAt - t.createdAt)
128
+ .filter(ct => ct > 0);
129
+ const avgCycleTimeMs = cycleTimes.length > 0
130
+ ? cycleTimes.reduce((sum, ct) => sum + ct, 0) / cycleTimes.length
131
+ : 0;
132
+ // Group by priority
133
+ const byPriority = {};
134
+ for (const task of filteredTasks) {
135
+ const priority = task.priority || 'P3';
136
+ if (!byPriority[priority]) {
137
+ byPriority[priority] = { total: 0, completed: 0, avgCycleTimeMs: 0 };
138
+ }
139
+ byPriority[priority].total++;
140
+ if (task.status === 'done') {
141
+ byPriority[priority].completed++;
142
+ }
143
+ }
144
+ // Calculate avg cycle time per priority
145
+ for (const priority in byPriority) {
146
+ const priorityCompleted = completed.filter(t => (t.priority || 'P3') === priority);
147
+ const priorityCycleTimes = priorityCompleted
148
+ .map(t => t.updatedAt - t.createdAt)
149
+ .filter(ct => ct > 0);
150
+ byPriority[priority].avgCycleTimeMs = priorityCycleTimes.length > 0
151
+ ? priorityCycleTimes.reduce((sum, ct) => sum + ct, 0) / priorityCycleTimes.length
152
+ : 0;
153
+ }
154
+ // Group by assignee
155
+ const byAssignee = {};
156
+ for (const task of filteredTasks) {
157
+ if (task.assignee) {
158
+ if (!byAssignee[task.assignee]) {
159
+ byAssignee[task.assignee] = { total: 0, completed: 0, avgCycleTimeMs: 0 };
160
+ }
161
+ byAssignee[task.assignee].total++;
162
+ if (task.status === 'done') {
163
+ byAssignee[task.assignee].completed++;
164
+ }
165
+ }
166
+ }
167
+ // Calculate avg cycle time per assignee
168
+ for (const assignee in byAssignee) {
169
+ const assigneeCompleted = completed.filter(t => t.assignee === assignee);
170
+ const assigneeCycleTimes = assigneeCompleted
171
+ .map(t => t.updatedAt - t.createdAt)
172
+ .filter(ct => ct > 0);
173
+ byAssignee[assignee].avgCycleTimeMs = assigneeCycleTimes.length > 0
174
+ ? assigneeCycleTimes.reduce((sum, ct) => sum + ct, 0) / assigneeCycleTimes.length
175
+ : 0;
176
+ }
177
+ return {
178
+ total: filteredTasks.length,
179
+ completed: completed.length,
180
+ completionRate: filteredTasks.length > 0 ? completed.length / filteredTasks.length : 0,
181
+ avgCycleTimeMs,
182
+ blockedCount: blocked.length,
183
+ blockerFrequency: filteredTasks.length > 0 ? blocked.length / filteredTasks.length : 0,
184
+ byPriority,
185
+ byAssignee,
186
+ };
187
+ }
188
+ inferChannelFromPath(page) {
189
+ const raw = (page || '').toLowerCase();
190
+ const query = raw.includes('?') ? raw.split('?')[1] : '';
191
+ const utmMatch = query.match(/(?:^|&)utm_source=([^&]+)/);
192
+ if (utmMatch?.[1]) {
193
+ return decodeURIComponent(utmMatch[1]);
194
+ }
195
+ if (raw.includes('twitter') || raw.includes('x.com'))
196
+ return 'twitter';
197
+ if (raw.includes('linkedin'))
198
+ return 'linkedin';
199
+ if (raw.includes('discord'))
200
+ return 'discord';
201
+ if (raw.includes('github'))
202
+ return 'github';
203
+ if (raw.includes('google'))
204
+ return 'google';
205
+ if (raw.includes('direct'))
206
+ return 'direct';
207
+ return 'unknown';
208
+ }
209
+ async getDailyFunnelMetrics(timezone = 'America/Vancouver') {
210
+ const analytics = await this.getForAgentsAnalytics('24h');
211
+ const topPages = analytics?.topPages || [];
212
+ const channels = new Map();
213
+ for (const page of topPages) {
214
+ const channel = this.inferChannelFromPath(page.page);
215
+ const existing = channels.get(channel) || {
216
+ channel,
217
+ utmSource: channel === 'unknown' ? undefined : channel,
218
+ visits: 0,
219
+ signups: 0,
220
+ activations: 0,
221
+ signupRate: 0,
222
+ activationRate: 0,
223
+ };
224
+ existing.visits += page.views || 0;
225
+ channels.set(channel, existing);
226
+ }
227
+ if (channels.size === 0) {
228
+ channels.set('unknown', {
229
+ channel: 'unknown',
230
+ visits: analytics?.pageviews || 0,
231
+ signups: 0,
232
+ activations: 0,
233
+ signupRate: 0,
234
+ activationRate: 0,
235
+ });
236
+ }
237
+ const rows = Array.from(channels.values()).map((row) => ({
238
+ ...row,
239
+ signupRate: row.visits > 0 ? row.signups / row.visits : 0,
240
+ activationRate: row.visits > 0 ? row.activations / row.visits : 0,
241
+ }));
242
+ const visits = rows.reduce((sum, row) => sum + row.visits, 0);
243
+ const signups = rows.reduce((sum, row) => sum + row.signups, 0);
244
+ const activations = rows.reduce((sum, row) => sum + row.activations, 0);
245
+ const now = Date.now();
246
+ const day = new Intl.DateTimeFormat('en-CA', {
247
+ timeZone: timezone,
248
+ year: 'numeric',
249
+ month: '2-digit',
250
+ day: '2-digit',
251
+ }).format(new Date(now));
252
+ return {
253
+ day,
254
+ timezone,
255
+ totals: {
256
+ visits,
257
+ signups,
258
+ activations,
259
+ signupRate: visits > 0 ? signups / visits : 0,
260
+ activationRate: visits > 0 ? activations / visits : 0,
261
+ },
262
+ channels: rows.sort((a, b) => b.visits - a.visits),
263
+ generatedAt: now,
264
+ note: 'Funnel structure is live; signups/activations are placeholders until instrumentation is wired.',
265
+ };
266
+ }
267
+ /**
268
+ * Model performance analytics: tasks per model, avg cycle time, review pass rates
269
+ */
270
+ getModelAnalytics(since) {
271
+ const tasks = taskManager.listTasks();
272
+ const filtered = since ? tasks.filter(t => t.createdAt >= since) : tasks;
273
+ const completed = filtered.filter(t => t.status === 'done');
274
+ const byModel = {};
275
+ for (const task of filtered) {
276
+ const model = task.metadata?.model || 'unknown';
277
+ if (!byModel[model]) {
278
+ byModel[model] = {
279
+ model,
280
+ total: 0,
281
+ completed: 0,
282
+ avgCycleTimeMs: 0,
283
+ reviewPassRate: 0,
284
+ _cycleTimes: [],
285
+ _reviewPasses: 0,
286
+ _reviewTotal: 0,
287
+ };
288
+ }
289
+ byModel[model].total++;
290
+ if (task.status === 'done') {
291
+ byModel[model].completed++;
292
+ const cycleTime = task.updatedAt - task.createdAt;
293
+ if (cycleTime > 0)
294
+ byModel[model]._cycleTimes.push(cycleTime);
295
+ byModel[model]._reviewTotal++;
296
+ if (task.metadata?.reviewer_approved) {
297
+ byModel[model]._reviewPasses++;
298
+ }
299
+ }
300
+ }
301
+ // Finalize averages
302
+ const models = Object.values(byModel).map(m => {
303
+ const ct = m._cycleTimes;
304
+ return {
305
+ model: m.model,
306
+ total: m.total,
307
+ completed: m.completed,
308
+ avgCycleTimeMs: ct.length > 0 ? Math.round(ct.reduce((s, v) => s + v, 0) / ct.length) : 0,
309
+ reviewPassRate: m._reviewTotal > 0 ? Math.round((m._reviewPasses / m._reviewTotal) * 100) / 100 : 0,
310
+ };
311
+ }).sort((a, b) => b.completed - a.completed);
312
+ return {
313
+ totalTracked: filtered.filter(t => t.metadata?.model).length,
314
+ totalUntracked: filtered.filter(t => !t.metadata?.model).length,
315
+ models,
316
+ };
317
+ }
318
+ /**
319
+ * Per-agent model + performance stats
320
+ */
321
+ getAgentModelAnalytics(since) {
322
+ const tasks = taskManager.listTasks();
323
+ const filtered = since ? tasks.filter(t => t.createdAt >= since) : tasks;
324
+ const byAgent = {};
325
+ for (const task of filtered) {
326
+ const agent = task.assignee || 'unassigned';
327
+ if (!byAgent[agent]) {
328
+ byAgent[agent] = { agent, models: new Set(), total: 0, completed: 0, cycleTimes: [], reviewPasses: 0, reviewTotal: 0 };
329
+ }
330
+ const model = task.metadata?.model;
331
+ if (model)
332
+ byAgent[agent].models.add(model);
333
+ byAgent[agent].total++;
334
+ if (task.status === 'done') {
335
+ byAgent[agent].completed++;
336
+ const ct = task.updatedAt - task.createdAt;
337
+ if (ct > 0)
338
+ byAgent[agent].cycleTimes.push(ct);
339
+ byAgent[agent].reviewTotal++;
340
+ if (task.metadata?.reviewer_approved)
341
+ byAgent[agent].reviewPasses++;
342
+ }
343
+ }
344
+ return Object.values(byAgent).map(a => ({
345
+ agent: a.agent,
346
+ models: Array.from(a.models),
347
+ total: a.total,
348
+ completed: a.completed,
349
+ avgCycleTimeMs: a.cycleTimes.length > 0
350
+ ? Math.round(a.cycleTimes.reduce((s, v) => s + v, 0) / a.cycleTimes.length)
351
+ : 0,
352
+ reviewPassRate: a.reviewTotal > 0
353
+ ? Math.round((a.reviewPasses / a.reviewTotal) * 100) / 100
354
+ : 0,
355
+ })).sort((a, b) => b.completed - a.completed);
356
+ }
357
+ /**
358
+ * Get summary metrics dashboard
359
+ */
360
+ async getMetricsSummary(includeContent = true) {
361
+ const tasks = this.getTaskAnalytics();
362
+ const content = includeContent ? await this.getContentPerformance() : undefined;
363
+ return {
364
+ tasks,
365
+ content,
366
+ timestamp: Date.now(),
367
+ };
368
+ }
369
+ }
370
+ export const analyticsManager = new AnalyticsManager();
371
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export declare function WORKSPACE_ROOT(): string;
2
+ export declare function SHARED_WORKSPACE(): string;
3
+ export interface MirrorResult {
4
+ mirrored: boolean;
5
+ source: string;
6
+ destination: string;
7
+ filesCopied: number;
8
+ error?: string;
9
+ }
10
+ /**
11
+ * Mirror a task's process artifacts to the shared workspace.
12
+ *
13
+ * Supports both directory-style artifacts (process/task-xxx/) and
14
+ * single-file artifacts (process/task-xxx-proof.md).
15
+ */
16
+ export declare function mirrorArtifacts(artifactPath: string): Promise<MirrorResult>;
17
+ /**
18
+ * Called on task status transition to validating or done.
19
+ * Extracts artifact_path from task metadata and mirrors it.
20
+ */
21
+ export declare function onTaskReadyForReview(taskMeta: Record<string, unknown>): Promise<MirrorResult | null>;
22
+ /**
23
+ * Check if shared workspace is accessible.
24
+ */
25
+ export declare function isSharedWorkspaceReady(): Promise<boolean>;
26
+ //# sourceMappingURL=artifact-mirror.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-mirror.d.ts","sourceRoot":"","sources":["../src/artifact-mirror.ts"],"names":[],"mappings":"AA6CA,wBAAgB,cAAc,IAAI,MAAM,CAA8B;AACtE,wBAAgB,gBAAgB,IAAI,MAAM,CAAgC;AAI1E,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAqDD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA2DjF;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAI1G;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO/D"}