@project-ava-supernova/core 0.2.71

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 (1497) hide show
  1. package/dist/agent/agent.d.ts +623 -0
  2. package/dist/agent/agent.d.ts.map +1 -0
  3. package/dist/agent/agent.js +3558 -0
  4. package/dist/agent/agent.js.map +1 -0
  5. package/dist/agent/claims-auditor.d.ts +54 -0
  6. package/dist/agent/claims-auditor.d.ts.map +1 -0
  7. package/dist/agent/claims-auditor.js +125 -0
  8. package/dist/agent/claims-auditor.js.map +1 -0
  9. package/dist/agent/context-continuity.d.ts +125 -0
  10. package/dist/agent/context-continuity.d.ts.map +1 -0
  11. package/dist/agent/context-continuity.js +231 -0
  12. package/dist/agent/context-continuity.js.map +1 -0
  13. package/dist/agent/conversation.d.ts +26 -0
  14. package/dist/agent/conversation.d.ts.map +1 -0
  15. package/dist/agent/conversation.js +86 -0
  16. package/dist/agent/conversation.js.map +1 -0
  17. package/dist/agent/design-reinjection.d.ts +93 -0
  18. package/dist/agent/design-reinjection.d.ts.map +1 -0
  19. package/dist/agent/design-reinjection.js +235 -0
  20. package/dist/agent/design-reinjection.js.map +1 -0
  21. package/dist/agent/error-loop-detector.d.ts +59 -0
  22. package/dist/agent/error-loop-detector.d.ts.map +1 -0
  23. package/dist/agent/error-loop-detector.js +124 -0
  24. package/dist/agent/error-loop-detector.js.map +1 -0
  25. package/dist/agent/fresh-eyes.d.ts +52 -0
  26. package/dist/agent/fresh-eyes.d.ts.map +1 -0
  27. package/dist/agent/fresh-eyes.js +118 -0
  28. package/dist/agent/fresh-eyes.js.map +1 -0
  29. package/dist/agent/intent-classifier.d.ts +51 -0
  30. package/dist/agent/intent-classifier.d.ts.map +1 -0
  31. package/dist/agent/intent-classifier.js +125 -0
  32. package/dist/agent/intent-classifier.js.map +1 -0
  33. package/dist/agent/post-edit-verify.d.ts +79 -0
  34. package/dist/agent/post-edit-verify.d.ts.map +1 -0
  35. package/dist/agent/post-edit-verify.js +143 -0
  36. package/dist/agent/post-edit-verify.js.map +1 -0
  37. package/dist/agent/recover-written-calls.d.ts +90 -0
  38. package/dist/agent/recover-written-calls.d.ts.map +1 -0
  39. package/dist/agent/recover-written-calls.js +257 -0
  40. package/dist/agent/recover-written-calls.js.map +1 -0
  41. package/dist/agent/social-craft.d.ts +76 -0
  42. package/dist/agent/social-craft.d.ts.map +1 -0
  43. package/dist/agent/social-craft.js +210 -0
  44. package/dist/agent/social-craft.js.map +1 -0
  45. package/dist/agent/stop-command.d.ts +23 -0
  46. package/dist/agent/stop-command.d.ts.map +1 -0
  47. package/dist/agent/stop-command.js +59 -0
  48. package/dist/agent/stop-command.js.map +1 -0
  49. package/dist/agent/system-prompt.d.ts +125 -0
  50. package/dist/agent/system-prompt.d.ts.map +1 -0
  51. package/dist/agent/system-prompt.js +1334 -0
  52. package/dist/agent/system-prompt.js.map +1 -0
  53. package/dist/agent/task-classifier.d.ts +50 -0
  54. package/dist/agent/task-classifier.d.ts.map +1 -0
  55. package/dist/agent/task-classifier.js +187 -0
  56. package/dist/agent/task-classifier.js.map +1 -0
  57. package/dist/agent/text-tool-parser.d.ts +34 -0
  58. package/dist/agent/text-tool-parser.d.ts.map +1 -0
  59. package/dist/agent/text-tool-parser.js +96 -0
  60. package/dist/agent/text-tool-parser.js.map +1 -0
  61. package/dist/agent/vision-bridge.d.ts +29 -0
  62. package/dist/agent/vision-bridge.d.ts.map +1 -0
  63. package/dist/agent/vision-bridge.js +143 -0
  64. package/dist/agent/vision-bridge.js.map +1 -0
  65. package/dist/audit/cost.d.ts +18 -0
  66. package/dist/audit/cost.d.ts.map +1 -0
  67. package/dist/audit/cost.js +170 -0
  68. package/dist/audit/cost.js.map +1 -0
  69. package/dist/audit/export.d.ts +30 -0
  70. package/dist/audit/export.d.ts.map +1 -0
  71. package/dist/audit/export.js +155 -0
  72. package/dist/audit/export.js.map +1 -0
  73. package/dist/audit/index.d.ts +11 -0
  74. package/dist/audit/index.d.ts.map +1 -0
  75. package/dist/audit/index.js +9 -0
  76. package/dist/audit/index.js.map +1 -0
  77. package/dist/audit/integrity.d.ts +7 -0
  78. package/dist/audit/integrity.d.ts.map +1 -0
  79. package/dist/audit/integrity.js +78 -0
  80. package/dist/audit/integrity.js.map +1 -0
  81. package/dist/audit/logger.d.ts +18 -0
  82. package/dist/audit/logger.d.ts.map +1 -0
  83. package/dist/audit/logger.js +113 -0
  84. package/dist/audit/logger.js.map +1 -0
  85. package/dist/audit/patterns.d.ts +34 -0
  86. package/dist/audit/patterns.d.ts.map +1 -0
  87. package/dist/audit/patterns.js +104 -0
  88. package/dist/audit/patterns.js.map +1 -0
  89. package/dist/audit/security.d.ts +8 -0
  90. package/dist/audit/security.d.ts.map +1 -0
  91. package/dist/audit/security.js +56 -0
  92. package/dist/audit/security.js.map +1 -0
  93. package/dist/audit/summary.d.ts +22 -0
  94. package/dist/audit/summary.d.ts.map +1 -0
  95. package/dist/audit/summary.js +51 -0
  96. package/dist/audit/summary.js.map +1 -0
  97. package/dist/audit/types.d.ts +104 -0
  98. package/dist/audit/types.d.ts.map +1 -0
  99. package/dist/audit/types.js +11 -0
  100. package/dist/audit/types.js.map +1 -0
  101. package/dist/auto/aurora-router.d.ts +71 -0
  102. package/dist/auto/aurora-router.d.ts.map +1 -0
  103. package/dist/auto/aurora-router.js +138 -0
  104. package/dist/auto/aurora-router.js.map +1 -0
  105. package/dist/auto/auto-coordinator.d.ts +232 -0
  106. package/dist/auto/auto-coordinator.d.ts.map +1 -0
  107. package/dist/auto/auto-coordinator.js +1260 -0
  108. package/dist/auto/auto-coordinator.js.map +1 -0
  109. package/dist/auto/brief-generator.d.ts +10 -0
  110. package/dist/auto/brief-generator.d.ts.map +1 -0
  111. package/dist/auto/brief-generator.js +67 -0
  112. package/dist/auto/brief-generator.js.map +1 -0
  113. package/dist/auto/changes-summary.d.ts +19 -0
  114. package/dist/auto/changes-summary.d.ts.map +1 -0
  115. package/dist/auto/changes-summary.js +45 -0
  116. package/dist/auto/changes-summary.js.map +1 -0
  117. package/dist/auto/context-tracker.d.ts +27 -0
  118. package/dist/auto/context-tracker.d.ts.map +1 -0
  119. package/dist/auto/context-tracker.js +56 -0
  120. package/dist/auto/context-tracker.js.map +1 -0
  121. package/dist/auto/coordinator-model.d.ts +31 -0
  122. package/dist/auto/coordinator-model.d.ts.map +1 -0
  123. package/dist/auto/coordinator-model.js +68 -0
  124. package/dist/auto/coordinator-model.js.map +1 -0
  125. package/dist/auto/index.d.ts +12 -0
  126. package/dist/auto/index.d.ts.map +1 -0
  127. package/dist/auto/index.js +11 -0
  128. package/dist/auto/index.js.map +1 -0
  129. package/dist/auto/intent-gate.d.ts +85 -0
  130. package/dist/auto/intent-gate.d.ts.map +1 -0
  131. package/dist/auto/intent-gate.js +247 -0
  132. package/dist/auto/intent-gate.js.map +1 -0
  133. package/dist/auto/longxiang-router.d.ts +123 -0
  134. package/dist/auto/longxiang-router.d.ts.map +1 -0
  135. package/dist/auto/longxiang-router.js +184 -0
  136. package/dist/auto/longxiang-router.js.map +1 -0
  137. package/dist/auto/model-router.d.ts +42 -0
  138. package/dist/auto/model-router.d.ts.map +1 -0
  139. package/dist/auto/model-router.js +208 -0
  140. package/dist/auto/model-router.js.map +1 -0
  141. package/dist/auto/routing-modes.d.ts +33 -0
  142. package/dist/auto/routing-modes.d.ts.map +1 -0
  143. package/dist/auto/routing-modes.js +34 -0
  144. package/dist/auto/routing-modes.js.map +1 -0
  145. package/dist/auto/supernova-router.d.ts +50 -0
  146. package/dist/auto/supernova-router.d.ts.map +1 -0
  147. package/dist/auto/supernova-router.js +116 -0
  148. package/dist/auto/supernova-router.js.map +1 -0
  149. package/dist/auto/task-classifier.d.ts +10 -0
  150. package/dist/auto/task-classifier.d.ts.map +1 -0
  151. package/dist/auto/task-classifier.js +116 -0
  152. package/dist/auto/task-classifier.js.map +1 -0
  153. package/dist/auto/task-executor.d.ts +86 -0
  154. package/dist/auto/task-executor.d.ts.map +1 -0
  155. package/dist/auto/task-executor.js +271 -0
  156. package/dist/auto/task-executor.js.map +1 -0
  157. package/dist/auto/types.d.ts +57 -0
  158. package/dist/auto/types.d.ts.map +1 -0
  159. package/dist/auto/types.js +2 -0
  160. package/dist/auto/types.js.map +1 -0
  161. package/dist/awareness/tick-engine.d.ts +73 -0
  162. package/dist/awareness/tick-engine.d.ts.map +1 -0
  163. package/dist/awareness/tick-engine.js +156 -0
  164. package/dist/awareness/tick-engine.js.map +1 -0
  165. package/dist/billing/credits.d.ts +213 -0
  166. package/dist/billing/credits.d.ts.map +1 -0
  167. package/dist/billing/credits.js +535 -0
  168. package/dist/billing/credits.js.map +1 -0
  169. package/dist/billing/meter.d.ts +43 -0
  170. package/dist/billing/meter.d.ts.map +1 -0
  171. package/dist/billing/meter.js +67 -0
  172. package/dist/billing/meter.js.map +1 -0
  173. package/dist/billing/plans.d.ts +34 -0
  174. package/dist/billing/plans.d.ts.map +1 -0
  175. package/dist/billing/plans.js +108 -0
  176. package/dist/billing/plans.js.map +1 -0
  177. package/dist/briefing/briefing-engine.d.ts +51 -0
  178. package/dist/briefing/briefing-engine.d.ts.map +1 -0
  179. package/dist/briefing/briefing-engine.js +289 -0
  180. package/dist/briefing/briefing-engine.js.map +1 -0
  181. package/dist/briefing/index.d.ts +3 -0
  182. package/dist/briefing/index.d.ts.map +1 -0
  183. package/dist/briefing/index.js +2 -0
  184. package/dist/briefing/index.js.map +1 -0
  185. package/dist/briefing/types.d.ts +49 -0
  186. package/dist/briefing/types.d.ts.map +1 -0
  187. package/dist/briefing/types.js +8 -0
  188. package/dist/briefing/types.js.map +1 -0
  189. package/dist/checkpoint/checkpoint-manager.d.ts +33 -0
  190. package/dist/checkpoint/checkpoint-manager.d.ts.map +1 -0
  191. package/dist/checkpoint/checkpoint-manager.js +144 -0
  192. package/dist/checkpoint/checkpoint-manager.js.map +1 -0
  193. package/dist/config/config.d.ts +10 -0
  194. package/dist/config/config.d.ts.map +1 -0
  195. package/dist/config/config.js +169 -0
  196. package/dist/config/config.js.map +1 -0
  197. package/dist/config/personality.d.ts +32 -0
  198. package/dist/config/personality.d.ts.map +1 -0
  199. package/dist/config/personality.js +96 -0
  200. package/dist/config/personality.js.map +1 -0
  201. package/dist/config/project-config.d.ts +17 -0
  202. package/dist/config/project-config.d.ts.map +1 -0
  203. package/dist/config/project-config.js +38 -0
  204. package/dist/config/project-config.js.map +1 -0
  205. package/dist/config/project.d.ts +155 -0
  206. package/dist/config/project.d.ts.map +1 -0
  207. package/dist/config/project.js +746 -0
  208. package/dist/config/project.js.map +1 -0
  209. package/dist/config/schema.d.ts +61 -0
  210. package/dist/config/schema.d.ts.map +1 -0
  211. package/dist/config/schema.js +11 -0
  212. package/dist/config/schema.js.map +1 -0
  213. package/dist/core/constants.d.ts +13 -0
  214. package/dist/core/constants.d.ts.map +1 -0
  215. package/dist/core/constants.js +15 -0
  216. package/dist/core/constants.js.map +1 -0
  217. package/dist/core/dates.d.ts +35 -0
  218. package/dist/core/dates.d.ts.map +1 -0
  219. package/dist/core/dates.js +45 -0
  220. package/dist/core/dates.js.map +1 -0
  221. package/dist/core/errors.d.ts +27 -0
  222. package/dist/core/errors.d.ts.map +1 -0
  223. package/dist/core/errors.js +172 -0
  224. package/dist/core/errors.js.map +1 -0
  225. package/dist/core/file-lock.d.ts +22 -0
  226. package/dist/core/file-lock.d.ts.map +1 -0
  227. package/dist/core/file-lock.js +120 -0
  228. package/dist/core/file-lock.js.map +1 -0
  229. package/dist/core/logger.d.ts +9 -0
  230. package/dist/core/logger.d.ts.map +1 -0
  231. package/dist/core/logger.js +32 -0
  232. package/dist/core/logger.js.map +1 -0
  233. package/dist/core/types.d.ts +157 -0
  234. package/dist/core/types.d.ts.map +1 -0
  235. package/dist/core/types.js +13 -0
  236. package/dist/core/types.js.map +1 -0
  237. package/dist/creative/index.d.ts +50 -0
  238. package/dist/creative/index.d.ts.map +1 -0
  239. package/dist/creative/index.js +178 -0
  240. package/dist/creative/index.js.map +1 -0
  241. package/dist/dataset/capture.d.ts +15 -0
  242. package/dist/dataset/capture.d.ts.map +1 -0
  243. package/dist/dataset/capture.js +203 -0
  244. package/dist/dataset/capture.js.map +1 -0
  245. package/dist/dataset/config.d.ts +33 -0
  246. package/dist/dataset/config.d.ts.map +1 -0
  247. package/dist/dataset/config.js +60 -0
  248. package/dist/dataset/config.js.map +1 -0
  249. package/dist/dataset/consumer.d.ts +33 -0
  250. package/dist/dataset/consumer.d.ts.map +1 -0
  251. package/dist/dataset/consumer.js +97 -0
  252. package/dist/dataset/consumer.js.map +1 -0
  253. package/dist/dataset/emitter.d.ts +153 -0
  254. package/dist/dataset/emitter.d.ts.map +1 -0
  255. package/dist/dataset/emitter.js +157 -0
  256. package/dist/dataset/emitter.js.map +1 -0
  257. package/dist/dataset/events.d.ts +360 -0
  258. package/dist/dataset/events.d.ts.map +1 -0
  259. package/dist/dataset/events.js +30 -0
  260. package/dist/dataset/events.js.map +1 -0
  261. package/dist/dataset/generation-emit.d.ts +72 -0
  262. package/dist/dataset/generation-emit.d.ts.map +1 -0
  263. package/dist/dataset/generation-emit.js +94 -0
  264. package/dist/dataset/generation-emit.js.map +1 -0
  265. package/dist/dataset/redactor.d.ts +22 -0
  266. package/dist/dataset/redactor.d.ts.map +1 -0
  267. package/dist/dataset/redactor.js +68 -0
  268. package/dist/dataset/redactor.js.map +1 -0
  269. package/dist/dataset/routing.d.ts +17 -0
  270. package/dist/dataset/routing.d.ts.map +1 -0
  271. package/dist/dataset/routing.js +77 -0
  272. package/dist/dataset/routing.js.map +1 -0
  273. package/dist/dataset/summarizers.d.ts +47 -0
  274. package/dist/dataset/summarizers.d.ts.map +1 -0
  275. package/dist/dataset/summarizers.js +98 -0
  276. package/dist/dataset/summarizers.js.map +1 -0
  277. package/dist/dataset/verification.d.ts +29 -0
  278. package/dist/dataset/verification.d.ts.map +1 -0
  279. package/dist/dataset/verification.js +70 -0
  280. package/dist/dataset/verification.js.map +1 -0
  281. package/dist/desktop/budget.d.ts +66 -0
  282. package/dist/desktop/budget.d.ts.map +1 -0
  283. package/dist/desktop/budget.js +159 -0
  284. package/dist/desktop/budget.js.map +1 -0
  285. package/dist/desktop/capability.d.ts +28 -0
  286. package/dist/desktop/capability.d.ts.map +1 -0
  287. package/dist/desktop/capability.js +39 -0
  288. package/dist/desktop/capability.js.map +1 -0
  289. package/dist/desktop/conductor.d.ts +104 -0
  290. package/dist/desktop/conductor.d.ts.map +1 -0
  291. package/dist/desktop/conductor.js +876 -0
  292. package/dist/desktop/conductor.js.map +1 -0
  293. package/dist/desktop/fork-points.d.ts +56 -0
  294. package/dist/desktop/fork-points.d.ts.map +1 -0
  295. package/dist/desktop/fork-points.js +138 -0
  296. package/dist/desktop/fork-points.js.map +1 -0
  297. package/dist/desktop/index.d.ts +22 -0
  298. package/dist/desktop/index.d.ts.map +1 -0
  299. package/dist/desktop/index.js +21 -0
  300. package/dist/desktop/index.js.map +1 -0
  301. package/dist/desktop/perception.d.ts +24 -0
  302. package/dist/desktop/perception.d.ts.map +1 -0
  303. package/dist/desktop/perception.js +106 -0
  304. package/dist/desktop/perception.js.map +1 -0
  305. package/dist/desktop/personas.d.ts +30 -0
  306. package/dist/desktop/personas.d.ts.map +1 -0
  307. package/dist/desktop/personas.js +206 -0
  308. package/dist/desktop/personas.js.map +1 -0
  309. package/dist/desktop/safety.d.ts +86 -0
  310. package/dist/desktop/safety.d.ts.map +1 -0
  311. package/dist/desktop/safety.js +272 -0
  312. package/dist/desktop/safety.js.map +1 -0
  313. package/dist/desktop/screen-key.d.ts +54 -0
  314. package/dist/desktop/screen-key.d.ts.map +1 -0
  315. package/dist/desktop/screen-key.js +187 -0
  316. package/dist/desktop/screen-key.js.map +1 -0
  317. package/dist/desktop/types.d.ts +141 -0
  318. package/dist/desktop/types.d.ts.map +1 -0
  319. package/dist/desktop/types.js +8 -0
  320. package/dist/desktop/types.js.map +1 -0
  321. package/dist/docs/adapter.d.ts +71 -0
  322. package/dist/docs/adapter.d.ts.map +1 -0
  323. package/dist/docs/adapter.js +75 -0
  324. package/dist/docs/adapter.js.map +1 -0
  325. package/dist/docs/content/concepts.d.ts +3 -0
  326. package/dist/docs/content/concepts.d.ts.map +1 -0
  327. package/dist/docs/content/concepts.js +304 -0
  328. package/dist/docs/content/concepts.js.map +1 -0
  329. package/dist/docs/content/features.d.ts +3 -0
  330. package/dist/docs/content/features.d.ts.map +1 -0
  331. package/dist/docs/content/features.js +275 -0
  332. package/dist/docs/content/features.js.map +1 -0
  333. package/dist/docs/content/index.d.ts +3 -0
  334. package/dist/docs/content/index.d.ts.map +1 -0
  335. package/dist/docs/content/index.js +15 -0
  336. package/dist/docs/content/index.js.map +1 -0
  337. package/dist/docs/content/reference.d.ts +3 -0
  338. package/dist/docs/content/reference.d.ts.map +1 -0
  339. package/dist/docs/content/reference.js +220 -0
  340. package/dist/docs/content/reference.js.map +1 -0
  341. package/dist/docs/content/start.d.ts +3 -0
  342. package/dist/docs/content/start.d.ts.map +1 -0
  343. package/dist/docs/content/start.js +203 -0
  344. package/dist/docs/content/start.js.map +1 -0
  345. package/dist/docs/content/troubleshooting.d.ts +3 -0
  346. package/dist/docs/content/troubleshooting.d.ts.map +1 -0
  347. package/dist/docs/content/troubleshooting.js +98 -0
  348. package/dist/docs/content/troubleshooting.js.map +1 -0
  349. package/dist/docs/corpus.d.ts +7 -0
  350. package/dist/docs/corpus.d.ts.map +1 -0
  351. package/dist/docs/corpus.js +18 -0
  352. package/dist/docs/corpus.js.map +1 -0
  353. package/dist/docs/data/capabilities.d.ts +24 -0
  354. package/dist/docs/data/capabilities.d.ts.map +1 -0
  355. package/dist/docs/data/capabilities.js +63 -0
  356. package/dist/docs/data/capabilities.js.map +1 -0
  357. package/dist/docs/data/modes.d.ts +11 -0
  358. package/dist/docs/data/modes.d.ts.map +1 -0
  359. package/dist/docs/data/modes.js +60 -0
  360. package/dist/docs/data/modes.js.map +1 -0
  361. package/dist/docs/data/permissions.d.ts +12 -0
  362. package/dist/docs/data/permissions.d.ts.map +1 -0
  363. package/dist/docs/data/permissions.js +62 -0
  364. package/dist/docs/data/permissions.js.map +1 -0
  365. package/dist/docs/data/personas.d.ts +13 -0
  366. package/dist/docs/data/personas.d.ts.map +1 -0
  367. package/dist/docs/data/personas.js +42 -0
  368. package/dist/docs/data/personas.js.map +1 -0
  369. package/dist/docs/data/providers.d.ts +21 -0
  370. package/dist/docs/data/providers.d.ts.map +1 -0
  371. package/dist/docs/data/providers.js +210 -0
  372. package/dist/docs/data/providers.js.map +1 -0
  373. package/dist/docs/data/shortcuts.d.ts +9 -0
  374. package/dist/docs/data/shortcuts.d.ts.map +1 -0
  375. package/dist/docs/data/shortcuts.js +18 -0
  376. package/dist/docs/data/shortcuts.js.map +1 -0
  377. package/dist/docs/data/tasks.d.ts +17 -0
  378. package/dist/docs/data/tasks.d.ts.map +1 -0
  379. package/dist/docs/data/tasks.js +64 -0
  380. package/dist/docs/data/tasks.js.map +1 -0
  381. package/dist/docs/data/tools.d.ts +12 -0
  382. package/dist/docs/data/tools.d.ts.map +1 -0
  383. package/dist/docs/data/tools.js +100 -0
  384. package/dist/docs/data/tools.js.map +1 -0
  385. package/dist/docs/filter.d.ts +35 -0
  386. package/dist/docs/filter.d.ts.map +1 -0
  387. package/dist/docs/filter.js +68 -0
  388. package/dist/docs/filter.js.map +1 -0
  389. package/dist/docs/i18n/translations.d.ts +2 -0
  390. package/dist/docs/i18n/translations.d.ts.map +1 -0
  391. package/dist/docs/i18n/translations.js +4 -0
  392. package/dist/docs/i18n/translations.js.map +1 -0
  393. package/dist/docs/i18n.d.ts +15 -0
  394. package/dist/docs/i18n.d.ts.map +1 -0
  395. package/dist/docs/i18n.js +88 -0
  396. package/dist/docs/i18n.js.map +1 -0
  397. package/dist/docs/index.d.ts +16 -0
  398. package/dist/docs/index.d.ts.map +1 -0
  399. package/dist/docs/index.js +15 -0
  400. package/dist/docs/index.js.map +1 -0
  401. package/dist/docs/product-knowledge.d.ts +45 -0
  402. package/dist/docs/product-knowledge.d.ts.map +1 -0
  403. package/dist/docs/product-knowledge.js +147 -0
  404. package/dist/docs/product-knowledge.js.map +1 -0
  405. package/dist/docs/types.d.ts +138 -0
  406. package/dist/docs/types.d.ts.map +1 -0
  407. package/dist/docs/types.js +14 -0
  408. package/dist/docs/types.js.map +1 -0
  409. package/dist/events/event-detector.d.ts +39 -0
  410. package/dist/events/event-detector.d.ts.map +1 -0
  411. package/dist/events/event-detector.js +223 -0
  412. package/dist/events/event-detector.js.map +1 -0
  413. package/dist/events/index.d.ts +3 -0
  414. package/dist/events/index.d.ts.map +1 -0
  415. package/dist/events/index.js +2 -0
  416. package/dist/events/index.js.map +1 -0
  417. package/dist/events/types.d.ts +35 -0
  418. package/dist/events/types.d.ts.map +1 -0
  419. package/dist/events/types.js +8 -0
  420. package/dist/events/types.js.map +1 -0
  421. package/dist/exercises/index.d.ts +249 -0
  422. package/dist/exercises/index.d.ts.map +1 -0
  423. package/dist/exercises/index.js +181 -0
  424. package/dist/exercises/index.js.map +1 -0
  425. package/dist/health/aisles.d.ts +33 -0
  426. package/dist/health/aisles.d.ts.map +1 -0
  427. package/dist/health/aisles.js +417 -0
  428. package/dist/health/aisles.js.map +1 -0
  429. package/dist/health/cooking.d.ts +13 -0
  430. package/dist/health/cooking.d.ts.map +1 -0
  431. package/dist/health/cooking.js +19 -0
  432. package/dist/health/cooking.js.map +1 -0
  433. package/dist/health/duplicate.d.ts +47 -0
  434. package/dist/health/duplicate.d.ts.map +1 -0
  435. package/dist/health/duplicate.js +136 -0
  436. package/dist/health/duplicate.js.map +1 -0
  437. package/dist/health/index.d.ts +7 -0
  438. package/dist/health/index.d.ts.map +1 -0
  439. package/dist/health/index.js +10 -0
  440. package/dist/health/index.js.map +1 -0
  441. package/dist/health/node-store.d.ts +30 -0
  442. package/dist/health/node-store.d.ts.map +1 -0
  443. package/dist/health/node-store.js +250 -0
  444. package/dist/health/node-store.js.map +1 -0
  445. package/dist/health/prep.d.ts +86 -0
  446. package/dist/health/prep.d.ts.map +1 -0
  447. package/dist/health/prep.js +152 -0
  448. package/dist/health/prep.js.map +1 -0
  449. package/dist/health/profile-fields.d.ts +46 -0
  450. package/dist/health/profile-fields.d.ts.map +1 -0
  451. package/dist/health/profile-fields.js +194 -0
  452. package/dist/health/profile-fields.js.map +1 -0
  453. package/dist/health/session-store.d.ts +30 -0
  454. package/dist/health/session-store.d.ts.map +1 -0
  455. package/dist/health/session-store.js +20 -0
  456. package/dist/health/session-store.js.map +1 -0
  457. package/dist/health/session-summary.d.ts +10 -0
  458. package/dist/health/session-summary.d.ts.map +1 -0
  459. package/dist/health/session-summary.js +106 -0
  460. package/dist/health/session-summary.js.map +1 -0
  461. package/dist/health/session-types.d.ts +74 -0
  462. package/dist/health/session-types.d.ts.map +1 -0
  463. package/dist/health/session-types.js +53 -0
  464. package/dist/health/session-types.js.map +1 -0
  465. package/dist/health/shopping-list.d.ts +226 -0
  466. package/dist/health/shopping-list.d.ts.map +1 -0
  467. package/dist/health/shopping-list.js +432 -0
  468. package/dist/health/shopping-list.js.map +1 -0
  469. package/dist/health/starters.d.ts +155 -0
  470. package/dist/health/starters.d.ts.map +1 -0
  471. package/dist/health/starters.js +270 -0
  472. package/dist/health/starters.js.map +1 -0
  473. package/dist/health/store.d.ts +59 -0
  474. package/dist/health/store.d.ts.map +1 -0
  475. package/dist/health/store.js +17 -0
  476. package/dist/health/store.js.map +1 -0
  477. package/dist/health/types.d.ts +213 -0
  478. package/dist/health/types.d.ts.map +1 -0
  479. package/dist/health/types.js +11 -0
  480. package/dist/health/types.js.map +1 -0
  481. package/dist/history/conversation-title.d.ts +67 -0
  482. package/dist/history/conversation-title.d.ts.map +1 -0
  483. package/dist/history/conversation-title.js +184 -0
  484. package/dist/history/conversation-title.js.map +1 -0
  485. package/dist/history/history-manager.d.ts +50 -0
  486. package/dist/history/history-manager.d.ts.map +1 -0
  487. package/dist/history/history-manager.js +168 -0
  488. package/dist/history/history-manager.js.map +1 -0
  489. package/dist/history/storage.d.ts +41 -0
  490. package/dist/history/storage.d.ts.map +1 -0
  491. package/dist/history/storage.js +133 -0
  492. package/dist/history/storage.js.map +1 -0
  493. package/dist/i18n/index.d.ts +41 -0
  494. package/dist/i18n/index.d.ts.map +1 -0
  495. package/dist/i18n/index.js +188 -0
  496. package/dist/i18n/index.js.map +1 -0
  497. package/dist/i18n/keep-english.d.ts +12 -0
  498. package/dist/i18n/keep-english.d.ts.map +1 -0
  499. package/dist/i18n/keep-english.js +351 -0
  500. package/dist/i18n/keep-english.js.map +1 -0
  501. package/dist/i18n/locales/ar.d.ts +4 -0
  502. package/dist/i18n/locales/ar.d.ts.map +1 -0
  503. package/dist/i18n/locales/ar.js +4143 -0
  504. package/dist/i18n/locales/ar.js.map +1 -0
  505. package/dist/i18n/locales/de.d.ts +4 -0
  506. package/dist/i18n/locales/de.d.ts.map +1 -0
  507. package/dist/i18n/locales/de.js +4133 -0
  508. package/dist/i18n/locales/de.js.map +1 -0
  509. package/dist/i18n/locales/en.d.ts +4068 -0
  510. package/dist/i18n/locales/en.d.ts.map +1 -0
  511. package/dist/i18n/locales/en.js +4347 -0
  512. package/dist/i18n/locales/en.js.map +1 -0
  513. package/dist/i18n/locales/es.d.ts +4 -0
  514. package/dist/i18n/locales/es.d.ts.map +1 -0
  515. package/dist/i18n/locales/es.js +4128 -0
  516. package/dist/i18n/locales/es.js.map +1 -0
  517. package/dist/i18n/locales/fr.d.ts +4 -0
  518. package/dist/i18n/locales/fr.d.ts.map +1 -0
  519. package/dist/i18n/locales/fr.js +4140 -0
  520. package/dist/i18n/locales/fr.js.map +1 -0
  521. package/dist/i18n/locales/hi.d.ts +4 -0
  522. package/dist/i18n/locales/hi.d.ts.map +1 -0
  523. package/dist/i18n/locales/hi.js +4143 -0
  524. package/dist/i18n/locales/hi.js.map +1 -0
  525. package/dist/i18n/locales/id.d.ts +4 -0
  526. package/dist/i18n/locales/id.d.ts.map +1 -0
  527. package/dist/i18n/locales/id.js +4142 -0
  528. package/dist/i18n/locales/id.js.map +1 -0
  529. package/dist/i18n/locales/it.d.ts +4 -0
  530. package/dist/i18n/locales/it.d.ts.map +1 -0
  531. package/dist/i18n/locales/it.js +4143 -0
  532. package/dist/i18n/locales/it.js.map +1 -0
  533. package/dist/i18n/locales/ja.d.ts +4 -0
  534. package/dist/i18n/locales/ja.d.ts.map +1 -0
  535. package/dist/i18n/locales/ja.js +4144 -0
  536. package/dist/i18n/locales/ja.js.map +1 -0
  537. package/dist/i18n/locales/ko.d.ts +4 -0
  538. package/dist/i18n/locales/ko.d.ts.map +1 -0
  539. package/dist/i18n/locales/ko.js +4143 -0
  540. package/dist/i18n/locales/ko.js.map +1 -0
  541. package/dist/i18n/locales/nl.d.ts +4 -0
  542. package/dist/i18n/locales/nl.d.ts.map +1 -0
  543. package/dist/i18n/locales/nl.js +4143 -0
  544. package/dist/i18n/locales/nl.js.map +1 -0
  545. package/dist/i18n/locales/pl.d.ts +4 -0
  546. package/dist/i18n/locales/pl.d.ts.map +1 -0
  547. package/dist/i18n/locales/pl.js +4133 -0
  548. package/dist/i18n/locales/pl.js.map +1 -0
  549. package/dist/i18n/locales/pt.d.ts +4 -0
  550. package/dist/i18n/locales/pt.d.ts.map +1 -0
  551. package/dist/i18n/locales/pt.js +4141 -0
  552. package/dist/i18n/locales/pt.js.map +1 -0
  553. package/dist/i18n/locales/ru.d.ts +4 -0
  554. package/dist/i18n/locales/ru.d.ts.map +1 -0
  555. package/dist/i18n/locales/ru.js +4143 -0
  556. package/dist/i18n/locales/ru.js.map +1 -0
  557. package/dist/i18n/locales/th.d.ts +4 -0
  558. package/dist/i18n/locales/th.d.ts.map +1 -0
  559. package/dist/i18n/locales/th.js +4143 -0
  560. package/dist/i18n/locales/th.js.map +1 -0
  561. package/dist/i18n/locales/tr.d.ts +4 -0
  562. package/dist/i18n/locales/tr.d.ts.map +1 -0
  563. package/dist/i18n/locales/tr.js +4143 -0
  564. package/dist/i18n/locales/tr.js.map +1 -0
  565. package/dist/i18n/locales/uk.d.ts +4 -0
  566. package/dist/i18n/locales/uk.d.ts.map +1 -0
  567. package/dist/i18n/locales/uk.js +4133 -0
  568. package/dist/i18n/locales/uk.js.map +1 -0
  569. package/dist/i18n/locales/vi.d.ts +4 -0
  570. package/dist/i18n/locales/vi.d.ts.map +1 -0
  571. package/dist/i18n/locales/vi.js +4143 -0
  572. package/dist/i18n/locales/vi.js.map +1 -0
  573. package/dist/i18n/locales/zh-CN.d.ts +4 -0
  574. package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
  575. package/dist/i18n/locales/zh-CN.js +4133 -0
  576. package/dist/i18n/locales/zh-CN.js.map +1 -0
  577. package/dist/i18n/locales/zh-TW.d.ts +4 -0
  578. package/dist/i18n/locales/zh-TW.d.ts.map +1 -0
  579. package/dist/i18n/locales/zh-TW.js +4143 -0
  580. package/dist/i18n/locales/zh-TW.js.map +1 -0
  581. package/dist/i18n/types.d.ts +5 -0
  582. package/dist/i18n/types.d.ts.map +1 -0
  583. package/dist/i18n/types.js +46 -0
  584. package/dist/i18n/types.js.map +1 -0
  585. package/dist/index.d.ts +142 -0
  586. package/dist/index.d.ts.map +1 -0
  587. package/dist/index.js +159 -0
  588. package/dist/index.js.map +1 -0
  589. package/dist/indexer/project-indexer.d.ts +66 -0
  590. package/dist/indexer/project-indexer.d.ts.map +1 -0
  591. package/dist/indexer/project-indexer.js +574 -0
  592. package/dist/indexer/project-indexer.js.map +1 -0
  593. package/dist/indexer/symbol-indexer.d.ts +56 -0
  594. package/dist/indexer/symbol-indexer.d.ts.map +1 -0
  595. package/dist/indexer/symbol-indexer.js +579 -0
  596. package/dist/indexer/symbol-indexer.js.map +1 -0
  597. package/dist/journal/journal-manager.d.ts +143 -0
  598. package/dist/journal/journal-manager.d.ts.map +1 -0
  599. package/dist/journal/journal-manager.js +472 -0
  600. package/dist/journal/journal-manager.js.map +1 -0
  601. package/dist/journal/platform-sync.d.ts +17 -0
  602. package/dist/journal/platform-sync.d.ts.map +1 -0
  603. package/dist/journal/platform-sync.js +21 -0
  604. package/dist/journal/platform-sync.js.map +1 -0
  605. package/dist/journal/types.d.ts +78 -0
  606. package/dist/journal/types.d.ts.map +1 -0
  607. package/dist/journal/types.js +74 -0
  608. package/dist/journal/types.js.map +1 -0
  609. package/dist/knowledge/index.d.ts +2 -0
  610. package/dist/knowledge/index.d.ts.map +1 -0
  611. package/dist/knowledge/index.js +2 -0
  612. package/dist/knowledge/index.js.map +1 -0
  613. package/dist/learning/index.d.ts +6 -0
  614. package/dist/learning/index.d.ts.map +1 -0
  615. package/dist/learning/index.js +9 -0
  616. package/dist/learning/index.js.map +1 -0
  617. package/dist/learning/learner-context.d.ts +11 -0
  618. package/dist/learning/learner-context.d.ts.map +1 -0
  619. package/dist/learning/learner-context.js +57 -0
  620. package/dist/learning/learner-context.js.map +1 -0
  621. package/dist/learning/library-fork.d.ts +33 -0
  622. package/dist/learning/library-fork.d.ts.map +1 -0
  623. package/dist/learning/library-fork.js +92 -0
  624. package/dist/learning/library-fork.js.map +1 -0
  625. package/dist/learning/progression-export.d.ts +4 -0
  626. package/dist/learning/progression-export.d.ts.map +1 -0
  627. package/dist/learning/progression-export.js +21 -0
  628. package/dist/learning/progression-export.js.map +1 -0
  629. package/dist/learning/progression-markdown.d.ts +14 -0
  630. package/dist/learning/progression-markdown.d.ts.map +1 -0
  631. package/dist/learning/progression-markdown.js +73 -0
  632. package/dist/learning/progression-markdown.js.map +1 -0
  633. package/dist/learning/progression.d.ts +65 -0
  634. package/dist/learning/progression.d.ts.map +1 -0
  635. package/dist/learning/progression.js +186 -0
  636. package/dist/learning/progression.js.map +1 -0
  637. package/dist/memory/ambient-capture.d.ts +26 -0
  638. package/dist/memory/ambient-capture.d.ts.map +1 -0
  639. package/dist/memory/ambient-capture.js +174 -0
  640. package/dist/memory/ambient-capture.js.map +1 -0
  641. package/dist/memory/auto-extract.d.ts +54 -0
  642. package/dist/memory/auto-extract.d.ts.map +1 -0
  643. package/dist/memory/auto-extract.js +499 -0
  644. package/dist/memory/auto-extract.js.map +1 -0
  645. package/dist/memory/config.d.ts +47 -0
  646. package/dist/memory/config.d.ts.map +1 -0
  647. package/dist/memory/config.js +52 -0
  648. package/dist/memory/config.js.map +1 -0
  649. package/dist/memory/consolidation.d.ts +60 -0
  650. package/dist/memory/consolidation.d.ts.map +1 -0
  651. package/dist/memory/consolidation.js +311 -0
  652. package/dist/memory/consolidation.js.map +1 -0
  653. package/dist/memory/embedding-service.d.ts +50 -0
  654. package/dist/memory/embedding-service.d.ts.map +1 -0
  655. package/dist/memory/embedding-service.js +86 -0
  656. package/dist/memory/embedding-service.js.map +1 -0
  657. package/dist/memory/embedding-store.d.ts +31 -0
  658. package/dist/memory/embedding-store.d.ts.map +1 -0
  659. package/dist/memory/embedding-store.js +109 -0
  660. package/dist/memory/embedding-store.js.map +1 -0
  661. package/dist/memory/graph-engine.d.ts +145 -0
  662. package/dist/memory/graph-engine.d.ts.map +1 -0
  663. package/dist/memory/graph-engine.js +628 -0
  664. package/dist/memory/graph-engine.js.map +1 -0
  665. package/dist/memory/insights.d.ts +39 -0
  666. package/dist/memory/insights.d.ts.map +1 -0
  667. package/dist/memory/insights.js +138 -0
  668. package/dist/memory/insights.js.map +1 -0
  669. package/dist/memory/memory-agent.d.ts +93 -0
  670. package/dist/memory/memory-agent.d.ts.map +1 -0
  671. package/dist/memory/memory-agent.js +475 -0
  672. package/dist/memory/memory-agent.js.map +1 -0
  673. package/dist/memory/memory-manager.d.ts +232 -0
  674. package/dist/memory/memory-manager.d.ts.map +1 -0
  675. package/dist/memory/memory-manager.js +1633 -0
  676. package/dist/memory/memory-manager.js.map +1 -0
  677. package/dist/memory/migration-v3.d.ts +22 -0
  678. package/dist/memory/migration-v3.d.ts.map +1 -0
  679. package/dist/memory/migration-v3.js +193 -0
  680. package/dist/memory/migration-v3.js.map +1 -0
  681. package/dist/memory/mode-recall.d.ts +20 -0
  682. package/dist/memory/mode-recall.d.ts.map +1 -0
  683. package/dist/memory/mode-recall.js +104 -0
  684. package/dist/memory/mode-recall.js.map +1 -0
  685. package/dist/memory/patterns.d.ts +92 -0
  686. package/dist/memory/patterns.d.ts.map +1 -0
  687. package/dist/memory/patterns.js +389 -0
  688. package/dist/memory/patterns.js.map +1 -0
  689. package/dist/memory/platform-sync.d.ts +54 -0
  690. package/dist/memory/platform-sync.d.ts.map +1 -0
  691. package/dist/memory/platform-sync.js +176 -0
  692. package/dist/memory/platform-sync.js.map +1 -0
  693. package/dist/memory/procedural.d.ts +47 -0
  694. package/dist/memory/procedural.d.ts.map +1 -0
  695. package/dist/memory/procedural.js +182 -0
  696. package/dist/memory/procedural.js.map +1 -0
  697. package/dist/memory/project-brain.d.ts +27 -0
  698. package/dist/memory/project-brain.d.ts.map +1 -0
  699. package/dist/memory/project-brain.js +158 -0
  700. package/dist/memory/project-brain.js.map +1 -0
  701. package/dist/memory/self-improvement.d.ts +45 -0
  702. package/dist/memory/self-improvement.d.ts.map +1 -0
  703. package/dist/memory/self-improvement.js +178 -0
  704. package/dist/memory/self-improvement.js.map +1 -0
  705. package/dist/memory/tfidf.d.ts +71 -0
  706. package/dist/memory/tfidf.d.ts.map +1 -0
  707. package/dist/memory/tfidf.js +223 -0
  708. package/dist/memory/tfidf.js.map +1 -0
  709. package/dist/memory/training-export.d.ts +51 -0
  710. package/dist/memory/training-export.d.ts.map +1 -0
  711. package/dist/memory/training-export.js +122 -0
  712. package/dist/memory/training-export.js.map +1 -0
  713. package/dist/memory/types.d.ts +380 -0
  714. package/dist/memory/types.d.ts.map +1 -0
  715. package/dist/memory/types.js +99 -0
  716. package/dist/memory/types.js.map +1 -0
  717. package/dist/news/index.d.ts +163 -0
  718. package/dist/news/index.d.ts.map +1 -0
  719. package/dist/news/index.js +184 -0
  720. package/dist/news/index.js.map +1 -0
  721. package/dist/papers/arxiv-client.d.ts +21 -0
  722. package/dist/papers/arxiv-client.d.ts.map +1 -0
  723. package/dist/papers/arxiv-client.js +130 -0
  724. package/dist/papers/arxiv-client.js.map +1 -0
  725. package/dist/papers/crossref-client.d.ts +3 -0
  726. package/dist/papers/crossref-client.d.ts.map +1 -0
  727. package/dist/papers/crossref-client.js +96 -0
  728. package/dist/papers/crossref-client.js.map +1 -0
  729. package/dist/papers/discipline.d.ts +19 -0
  730. package/dist/papers/discipline.d.ts.map +1 -0
  731. package/dist/papers/discipline.js +96 -0
  732. package/dist/papers/discipline.js.map +1 -0
  733. package/dist/papers/index.d.ts +10 -0
  734. package/dist/papers/index.d.ts.map +1 -0
  735. package/dist/papers/index.js +7 -0
  736. package/dist/papers/index.js.map +1 -0
  737. package/dist/papers/openalex-client.d.ts +13 -0
  738. package/dist/papers/openalex-client.d.ts.map +1 -0
  739. package/dist/papers/openalex-client.js +206 -0
  740. package/dist/papers/openalex-client.js.map +1 -0
  741. package/dist/papers/paper-fetcher.d.ts +37 -0
  742. package/dist/papers/paper-fetcher.d.ts.map +1 -0
  743. package/dist/papers/paper-fetcher.js +75 -0
  744. package/dist/papers/paper-fetcher.js.map +1 -0
  745. package/dist/papers/types.d.ts +80 -0
  746. package/dist/papers/types.d.ts.map +1 -0
  747. package/dist/papers/types.js +25 -0
  748. package/dist/papers/types.js.map +1 -0
  749. package/dist/personas/conductor.d.ts +184 -0
  750. package/dist/personas/conductor.d.ts.map +1 -0
  751. package/dist/personas/conductor.js +871 -0
  752. package/dist/personas/conductor.js.map +1 -0
  753. package/dist/personas/definitions.d.ts +48 -0
  754. package/dist/personas/definitions.d.ts.map +1 -0
  755. package/dist/personas/definitions.js +828 -0
  756. package/dist/personas/definitions.js.map +1 -0
  757. package/dist/personas/index.d.ts +4 -0
  758. package/dist/personas/index.d.ts.map +1 -0
  759. package/dist/personas/index.js +3 -0
  760. package/dist/personas/index.js.map +1 -0
  761. package/dist/personas/types.d.ts +148 -0
  762. package/dist/personas/types.d.ts.map +1 -0
  763. package/dist/personas/types.js +5 -0
  764. package/dist/personas/types.js.map +1 -0
  765. package/dist/personas/verification-matrix.d.ts +44 -0
  766. package/dist/personas/verification-matrix.d.ts.map +1 -0
  767. package/dist/personas/verification-matrix.js +232 -0
  768. package/dist/personas/verification-matrix.js.map +1 -0
  769. package/dist/portability/bundle.d.ts +80 -0
  770. package/dist/portability/bundle.d.ts.map +1 -0
  771. package/dist/portability/bundle.js +155 -0
  772. package/dist/portability/bundle.js.map +1 -0
  773. package/dist/portability/crypto.d.ts +42 -0
  774. package/dist/portability/crypto.d.ts.map +1 -0
  775. package/dist/portability/crypto.js +89 -0
  776. package/dist/portability/crypto.js.map +1 -0
  777. package/dist/portability/data-types.d.ts +54 -0
  778. package/dist/portability/data-types.d.ts.map +1 -0
  779. package/dist/portability/data-types.js +281 -0
  780. package/dist/portability/data-types.js.map +1 -0
  781. package/dist/portability/index.d.ts +35 -0
  782. package/dist/portability/index.d.ts.map +1 -0
  783. package/dist/portability/index.js +41 -0
  784. package/dist/portability/index.js.map +1 -0
  785. package/dist/providers/base-provider.d.ts +65 -0
  786. package/dist/providers/base-provider.d.ts.map +1 -0
  787. package/dist/providers/base-provider.js +305 -0
  788. package/dist/providers/base-provider.js.map +1 -0
  789. package/dist/providers/catalog.d.ts +25 -0
  790. package/dist/providers/catalog.d.ts.map +1 -0
  791. package/dist/providers/catalog.js +53 -0
  792. package/dist/providers/catalog.js.map +1 -0
  793. package/dist/providers/deepseek/index.d.ts +9 -0
  794. package/dist/providers/deepseek/index.d.ts.map +1 -0
  795. package/dist/providers/deepseek/index.js +19 -0
  796. package/dist/providers/deepseek/index.js.map +1 -0
  797. package/dist/providers/deepseek/models.d.ts +3 -0
  798. package/dist/providers/deepseek/models.d.ts.map +1 -0
  799. package/dist/providers/deepseek/models.js +56 -0
  800. package/dist/providers/deepseek/models.js.map +1 -0
  801. package/dist/providers/generic/index.d.ts +25 -0
  802. package/dist/providers/generic/index.d.ts.map +1 -0
  803. package/dist/providers/generic/index.js +51 -0
  804. package/dist/providers/generic/index.js.map +1 -0
  805. package/dist/providers/generic/models.d.ts +3 -0
  806. package/dist/providers/generic/models.d.ts.map +1 -0
  807. package/dist/providers/generic/models.js +13 -0
  808. package/dist/providers/generic/models.js.map +1 -0
  809. package/dist/providers/health-tracker.d.ts +44 -0
  810. package/dist/providers/health-tracker.d.ts.map +1 -0
  811. package/dist/providers/health-tracker.js +110 -0
  812. package/dist/providers/health-tracker.js.map +1 -0
  813. package/dist/providers/kimi/index.d.ts +9 -0
  814. package/dist/providers/kimi/index.d.ts.map +1 -0
  815. package/dist/providers/kimi/index.js +13 -0
  816. package/dist/providers/kimi/index.js.map +1 -0
  817. package/dist/providers/kimi/models.d.ts +3 -0
  818. package/dist/providers/kimi/models.d.ts.map +1 -0
  819. package/dist/providers/kimi/models.js +60 -0
  820. package/dist/providers/kimi/models.js.map +1 -0
  821. package/dist/providers/minimax/index.d.ts +9 -0
  822. package/dist/providers/minimax/index.d.ts.map +1 -0
  823. package/dist/providers/minimax/index.js +13 -0
  824. package/dist/providers/minimax/index.js.map +1 -0
  825. package/dist/providers/minimax/models.d.ts +3 -0
  826. package/dist/providers/minimax/models.d.ts.map +1 -0
  827. package/dist/providers/minimax/models.js +65 -0
  828. package/dist/providers/minimax/models.js.map +1 -0
  829. package/dist/providers/mistral/index.d.ts +11 -0
  830. package/dist/providers/mistral/index.d.ts.map +1 -0
  831. package/dist/providers/mistral/index.js +24 -0
  832. package/dist/providers/mistral/index.js.map +1 -0
  833. package/dist/providers/mistral/models.d.ts +3 -0
  834. package/dist/providers/mistral/models.d.ts.map +1 -0
  835. package/dist/providers/mistral/models.js +65 -0
  836. package/dist/providers/mistral/models.js.map +1 -0
  837. package/dist/providers/nvidia/index.d.ts +16 -0
  838. package/dist/providers/nvidia/index.d.ts.map +1 -0
  839. package/dist/providers/nvidia/index.js +20 -0
  840. package/dist/providers/nvidia/index.js.map +1 -0
  841. package/dist/providers/nvidia/models.d.ts +3 -0
  842. package/dist/providers/nvidia/models.d.ts.map +1 -0
  843. package/dist/providers/nvidia/models.js +56 -0
  844. package/dist/providers/nvidia/models.js.map +1 -0
  845. package/dist/providers/platform/index.d.ts +10 -0
  846. package/dist/providers/platform/index.d.ts.map +1 -0
  847. package/dist/providers/platform/index.js +16 -0
  848. package/dist/providers/platform/index.js.map +1 -0
  849. package/dist/providers/platform/models.d.ts +3 -0
  850. package/dist/providers/platform/models.d.ts.map +1 -0
  851. package/dist/providers/platform/models.js +233 -0
  852. package/dist/providers/platform/models.js.map +1 -0
  853. package/dist/providers/provider-registry.d.ts +44 -0
  854. package/dist/providers/provider-registry.d.ts.map +1 -0
  855. package/dist/providers/provider-registry.js +197 -0
  856. package/dist/providers/provider-registry.js.map +1 -0
  857. package/dist/providers/qwen/index.d.ts +9 -0
  858. package/dist/providers/qwen/index.d.ts.map +1 -0
  859. package/dist/providers/qwen/index.js +13 -0
  860. package/dist/providers/qwen/index.js.map +1 -0
  861. package/dist/providers/qwen/models.d.ts +3 -0
  862. package/dist/providers/qwen/models.d.ts.map +1 -0
  863. package/dist/providers/qwen/models.js +164 -0
  864. package/dist/providers/qwen/models.js.map +1 -0
  865. package/dist/providers/request-shaping/index.d.ts +29 -0
  866. package/dist/providers/request-shaping/index.d.ts.map +1 -0
  867. package/dist/providers/request-shaping/index.js +31 -0
  868. package/dist/providers/request-shaping/index.js.map +1 -0
  869. package/dist/providers/request-shaping/messages.d.ts +61 -0
  870. package/dist/providers/request-shaping/messages.d.ts.map +1 -0
  871. package/dist/providers/request-shaping/messages.js +114 -0
  872. package/dist/providers/request-shaping/messages.js.map +1 -0
  873. package/dist/providers/request-shaping/model-ids.d.ts +44 -0
  874. package/dist/providers/request-shaping/model-ids.d.ts.map +1 -0
  875. package/dist/providers/request-shaping/model-ids.js +96 -0
  876. package/dist/providers/request-shaping/model-ids.js.map +1 -0
  877. package/dist/providers/request-shaping/params.d.ts +38 -0
  878. package/dist/providers/request-shaping/params.d.ts.map +1 -0
  879. package/dist/providers/request-shaping/params.js +79 -0
  880. package/dist/providers/request-shaping/params.js.map +1 -0
  881. package/dist/providers/resilient-provider.d.ts +44 -0
  882. package/dist/providers/resilient-provider.d.ts.map +1 -0
  883. package/dist/providers/resilient-provider.js +141 -0
  884. package/dist/providers/resilient-provider.js.map +1 -0
  885. package/dist/providers/tencent/index.d.ts +19 -0
  886. package/dist/providers/tencent/index.d.ts.map +1 -0
  887. package/dist/providers/tencent/index.js +50 -0
  888. package/dist/providers/tencent/index.js.map +1 -0
  889. package/dist/providers/tencent/models.d.ts +3 -0
  890. package/dist/providers/tencent/models.d.ts.map +1 -0
  891. package/dist/providers/tencent/models.js +29 -0
  892. package/dist/providers/tencent/models.js.map +1 -0
  893. package/dist/providers/types.d.ts +98 -0
  894. package/dist/providers/types.d.ts.map +1 -0
  895. package/dist/providers/types.js +2 -0
  896. package/dist/providers/types.js.map +1 -0
  897. package/dist/providers/xiaomi/index.d.ts +9 -0
  898. package/dist/providers/xiaomi/index.d.ts.map +1 -0
  899. package/dist/providers/xiaomi/index.js +16 -0
  900. package/dist/providers/xiaomi/index.js.map +1 -0
  901. package/dist/providers/xiaomi/models.d.ts +3 -0
  902. package/dist/providers/xiaomi/models.d.ts.map +1 -0
  903. package/dist/providers/xiaomi/models.js +37 -0
  904. package/dist/providers/xiaomi/models.js.map +1 -0
  905. package/dist/providers/zhipu/index.d.ts +11 -0
  906. package/dist/providers/zhipu/index.d.ts.map +1 -0
  907. package/dist/providers/zhipu/index.js +44 -0
  908. package/dist/providers/zhipu/index.js.map +1 -0
  909. package/dist/providers/zhipu/models.d.ts +3 -0
  910. package/dist/providers/zhipu/models.d.ts.map +1 -0
  911. package/dist/providers/zhipu/models.js +37 -0
  912. package/dist/providers/zhipu/models.js.map +1 -0
  913. package/dist/recipes/index.d.ts +215 -0
  914. package/dist/recipes/index.d.ts.map +1 -0
  915. package/dist/recipes/index.js +232 -0
  916. package/dist/recipes/index.js.map +1 -0
  917. package/dist/remote/client.d.ts +67 -0
  918. package/dist/remote/client.d.ts.map +1 -0
  919. package/dist/remote/client.js +202 -0
  920. package/dist/remote/client.js.map +1 -0
  921. package/dist/remote/index.d.ts +9 -0
  922. package/dist/remote/index.d.ts.map +1 -0
  923. package/dist/remote/index.js +7 -0
  924. package/dist/remote/index.js.map +1 -0
  925. package/dist/remote/schema.d.ts +152 -0
  926. package/dist/remote/schema.d.ts.map +1 -0
  927. package/dist/remote/schema.js +26 -0
  928. package/dist/remote/schema.js.map +1 -0
  929. package/dist/security/index.d.ts +6 -0
  930. package/dist/security/index.d.ts.map +1 -0
  931. package/dist/security/index.js +5 -0
  932. package/dist/security/index.js.map +1 -0
  933. package/dist/security/scanner.d.ts +67 -0
  934. package/dist/security/scanner.d.ts.map +1 -0
  935. package/dist/security/scanner.js +422 -0
  936. package/dist/security/scanner.js.map +1 -0
  937. package/dist/social/day-plan.d.ts +38 -0
  938. package/dist/social/day-plan.d.ts.map +1 -0
  939. package/dist/social/day-plan.js +16 -0
  940. package/dist/social/day-plan.js.map +1 -0
  941. package/dist/social/index.d.ts +290 -0
  942. package/dist/social/index.d.ts.map +1 -0
  943. package/dist/social/index.js +96 -0
  944. package/dist/social/index.js.map +1 -0
  945. package/dist/tasks/platform-sync.d.ts +22 -0
  946. package/dist/tasks/platform-sync.d.ts.map +1 -0
  947. package/dist/tasks/platform-sync.js +132 -0
  948. package/dist/tasks/platform-sync.js.map +1 -0
  949. package/dist/tasks/task-manager.d.ts +164 -0
  950. package/dist/tasks/task-manager.d.ts.map +1 -0
  951. package/dist/tasks/task-manager.js +643 -0
  952. package/dist/tasks/task-manager.js.map +1 -0
  953. package/dist/tasks/types.d.ts +105 -0
  954. package/dist/tasks/types.d.ts.map +1 -0
  955. package/dist/tasks/types.js +23 -0
  956. package/dist/tasks/types.js.map +1 -0
  957. package/dist/tools/analyze-architecture.d.ts +17 -0
  958. package/dist/tools/analyze-architecture.d.ts.map +1 -0
  959. package/dist/tools/analyze-architecture.js +316 -0
  960. package/dist/tools/analyze-architecture.js.map +1 -0
  961. package/dist/tools/apply-plan.d.ts +12 -0
  962. package/dist/tools/apply-plan.d.ts.map +1 -0
  963. package/dist/tools/apply-plan.js +119 -0
  964. package/dist/tools/apply-plan.js.map +1 -0
  965. package/dist/tools/ask-user.d.ts +11 -0
  966. package/dist/tools/ask-user.d.ts.map +1 -0
  967. package/dist/tools/ask-user.js +32 -0
  968. package/dist/tools/ask-user.js.map +1 -0
  969. package/dist/tools/audit-dependencies.d.ts +13 -0
  970. package/dist/tools/audit-dependencies.d.ts.map +1 -0
  971. package/dist/tools/audit-dependencies.js +156 -0
  972. package/dist/tools/audit-dependencies.js.map +1 -0
  973. package/dist/tools/authoring/doc-model.d.ts +128 -0
  974. package/dist/tools/authoring/doc-model.d.ts.map +1 -0
  975. package/dist/tools/authoring/doc-model.js +82 -0
  976. package/dist/tools/authoring/doc-model.js.map +1 -0
  977. package/dist/tools/authoring/frontmatter.d.ts +51 -0
  978. package/dist/tools/authoring/frontmatter.d.ts.map +1 -0
  979. package/dist/tools/authoring/frontmatter.js +203 -0
  980. package/dist/tools/authoring/frontmatter.js.map +1 -0
  981. package/dist/tools/authoring/image-size.d.ts +17 -0
  982. package/dist/tools/authoring/image-size.d.ts.map +1 -0
  983. package/dist/tools/authoring/image-size.js +47 -0
  984. package/dist/tools/authoring/image-size.js.map +1 -0
  985. package/dist/tools/authoring/index.d.ts +34 -0
  986. package/dist/tools/authoring/index.d.ts.map +1 -0
  987. package/dist/tools/authoring/index.js +44 -0
  988. package/dist/tools/authoring/index.js.map +1 -0
  989. package/dist/tools/authoring/md-parse.d.ts +18 -0
  990. package/dist/tools/authoring/md-parse.d.ts.map +1 -0
  991. package/dist/tools/authoring/md-parse.js +262 -0
  992. package/dist/tools/authoring/md-parse.js.map +1 -0
  993. package/dist/tools/authoring/render-docx.d.ts +18 -0
  994. package/dist/tools/authoring/render-docx.d.ts.map +1 -0
  995. package/dist/tools/authoring/render-docx.js +272 -0
  996. package/dist/tools/authoring/render-docx.js.map +1 -0
  997. package/dist/tools/authoring/render-md.d.ts +13 -0
  998. package/dist/tools/authoring/render-md.d.ts.map +1 -0
  999. package/dist/tools/authoring/render-md.js +139 -0
  1000. package/dist/tools/authoring/render-md.js.map +1 -0
  1001. package/dist/tools/authoring/render-pdf.d.ts +16 -0
  1002. package/dist/tools/authoring/render-pdf.d.ts.map +1 -0
  1003. package/dist/tools/authoring/render-pdf.js +298 -0
  1004. package/dist/tools/authoring/render-pdf.js.map +1 -0
  1005. package/dist/tools/authoring/sections.d.ts +35 -0
  1006. package/dist/tools/authoring/sections.d.ts.map +1 -0
  1007. package/dist/tools/authoring/sections.js +81 -0
  1008. package/dist/tools/authoring/sections.js.map +1 -0
  1009. package/dist/tools/authoring/templates/builtins.d.ts +11 -0
  1010. package/dist/tools/authoring/templates/builtins.d.ts.map +1 -0
  1011. package/dist/tools/authoring/templates/builtins.js +478 -0
  1012. package/dist/tools/authoring/templates/builtins.js.map +1 -0
  1013. package/dist/tools/authoring/templates/index.d.ts +15 -0
  1014. package/dist/tools/authoring/templates/index.d.ts.map +1 -0
  1015. package/dist/tools/authoring/templates/index.js +25 -0
  1016. package/dist/tools/authoring/templates/index.js.map +1 -0
  1017. package/dist/tools/authoring/templates/store.d.ts +15 -0
  1018. package/dist/tools/authoring/templates/store.d.ts.map +1 -0
  1019. package/dist/tools/authoring/templates/store.js +63 -0
  1020. package/dist/tools/authoring/templates/store.js.map +1 -0
  1021. package/dist/tools/authoring/templates/template-model.d.ts +44 -0
  1022. package/dist/tools/authoring/templates/template-model.d.ts.map +1 -0
  1023. package/dist/tools/authoring/templates/template-model.js +39 -0
  1024. package/dist/tools/authoring/templates/template-model.js.map +1 -0
  1025. package/dist/tools/bash.d.ts +34 -0
  1026. package/dist/tools/bash.d.ts.map +1 -0
  1027. package/dist/tools/bash.js +353 -0
  1028. package/dist/tools/bash.js.map +1 -0
  1029. package/dist/tools/benchmark.d.ts +12 -0
  1030. package/dist/tools/benchmark.d.ts.map +1 -0
  1031. package/dist/tools/benchmark.js +147 -0
  1032. package/dist/tools/benchmark.js.map +1 -0
  1033. package/dist/tools/browse-library.d.ts +12 -0
  1034. package/dist/tools/browse-library.d.ts.map +1 -0
  1035. package/dist/tools/browse-library.js +188 -0
  1036. package/dist/tools/browse-library.js.map +1 -0
  1037. package/dist/tools/browser-click.d.ts +12 -0
  1038. package/dist/tools/browser-click.d.ts.map +1 -0
  1039. package/dist/tools/browser-click.js +58 -0
  1040. package/dist/tools/browser-click.js.map +1 -0
  1041. package/dist/tools/browser-close.d.ts +11 -0
  1042. package/dist/tools/browser-close.d.ts.map +1 -0
  1043. package/dist/tools/browser-close.js +27 -0
  1044. package/dist/tools/browser-close.js.map +1 -0
  1045. package/dist/tools/browser-navigate.d.ts +12 -0
  1046. package/dist/tools/browser-navigate.d.ts.map +1 -0
  1047. package/dist/tools/browser-navigate.js +66 -0
  1048. package/dist/tools/browser-navigate.js.map +1 -0
  1049. package/dist/tools/browser-snapshot.d.ts +11 -0
  1050. package/dist/tools/browser-snapshot.d.ts.map +1 -0
  1051. package/dist/tools/browser-snapshot.js +56 -0
  1052. package/dist/tools/browser-snapshot.js.map +1 -0
  1053. package/dist/tools/browser-type.d.ts +12 -0
  1054. package/dist/tools/browser-type.d.ts.map +1 -0
  1055. package/dist/tools/browser-type.js +68 -0
  1056. package/dist/tools/browser-type.js.map +1 -0
  1057. package/dist/tools/browser.d.ts +29 -0
  1058. package/dist/tools/browser.d.ts.map +1 -0
  1059. package/dist/tools/browser.js +307 -0
  1060. package/dist/tools/browser.js.map +1 -0
  1061. package/dist/tools/conversation-recall.d.ts +43 -0
  1062. package/dist/tools/conversation-recall.d.ts.map +1 -0
  1063. package/dist/tools/conversation-recall.js +177 -0
  1064. package/dist/tools/conversation-recall.js.map +1 -0
  1065. package/dist/tools/creative-asset-sync.d.ts +33 -0
  1066. package/dist/tools/creative-asset-sync.d.ts.map +1 -0
  1067. package/dist/tools/creative-asset-sync.js +39 -0
  1068. package/dist/tools/creative-asset-sync.js.map +1 -0
  1069. package/dist/tools/curator.d.ts +34 -0
  1070. package/dist/tools/curator.d.ts.map +1 -0
  1071. package/dist/tools/curator.js +191 -0
  1072. package/dist/tools/curator.js.map +1 -0
  1073. package/dist/tools/database-query.d.ts +11 -0
  1074. package/dist/tools/database-query.d.ts.map +1 -0
  1075. package/dist/tools/database-query.js +228 -0
  1076. package/dist/tools/database-query.js.map +1 -0
  1077. package/dist/tools/day-plan.d.ts +27 -0
  1078. package/dist/tools/day-plan.d.ts.map +1 -0
  1079. package/dist/tools/day-plan.js +207 -0
  1080. package/dist/tools/day-plan.js.map +1 -0
  1081. package/dist/tools/debug-logs.d.ts +13 -0
  1082. package/dist/tools/debug-logs.d.ts.map +1 -0
  1083. package/dist/tools/debug-logs.js +141 -0
  1084. package/dist/tools/debug-logs.js.map +1 -0
  1085. package/dist/tools/deploy-manifest.d.ts +37 -0
  1086. package/dist/tools/deploy-manifest.d.ts.map +1 -0
  1087. package/dist/tools/deploy-manifest.js +71 -0
  1088. package/dist/tools/deploy-manifest.js.map +1 -0
  1089. package/dist/tools/design-studio-tools.d.ts +83 -0
  1090. package/dist/tools/design-studio-tools.d.ts.map +1 -0
  1091. package/dist/tools/design-studio-tools.js +761 -0
  1092. package/dist/tools/design-studio-tools.js.map +1 -0
  1093. package/dist/tools/desktop-click-by-name.d.ts +12 -0
  1094. package/dist/tools/desktop-click-by-name.d.ts.map +1 -0
  1095. package/dist/tools/desktop-click-by-name.js +64 -0
  1096. package/dist/tools/desktop-click-by-name.js.map +1 -0
  1097. package/dist/tools/desktop-focus-window.d.ts +12 -0
  1098. package/dist/tools/desktop-focus-window.d.ts.map +1 -0
  1099. package/dist/tools/desktop-focus-window.js +59 -0
  1100. package/dist/tools/desktop-focus-window.js.map +1 -0
  1101. package/dist/tools/desktop-key-press.d.ts +12 -0
  1102. package/dist/tools/desktop-key-press.d.ts.map +1 -0
  1103. package/dist/tools/desktop-key-press.js +73 -0
  1104. package/dist/tools/desktop-key-press.js.map +1 -0
  1105. package/dist/tools/desktop-launch-app.d.ts +12 -0
  1106. package/dist/tools/desktop-launch-app.d.ts.map +1 -0
  1107. package/dist/tools/desktop-launch-app.js +58 -0
  1108. package/dist/tools/desktop-launch-app.js.map +1 -0
  1109. package/dist/tools/desktop-list-elements.d.ts +11 -0
  1110. package/dist/tools/desktop-list-elements.d.ts.map +1 -0
  1111. package/dist/tools/desktop-list-elements.js +65 -0
  1112. package/dist/tools/desktop-list-elements.js.map +1 -0
  1113. package/dist/tools/desktop-plan-approve.d.ts +30 -0
  1114. package/dist/tools/desktop-plan-approve.d.ts.map +1 -0
  1115. package/dist/tools/desktop-plan-approve.js +135 -0
  1116. package/dist/tools/desktop-plan-approve.js.map +1 -0
  1117. package/dist/tools/desktop-providers.d.ts +144 -0
  1118. package/dist/tools/desktop-providers.d.ts.map +1 -0
  1119. package/dist/tools/desktop-providers.js +12 -0
  1120. package/dist/tools/desktop-providers.js.map +1 -0
  1121. package/dist/tools/desktop-safety-gate.d.ts +84 -0
  1122. package/dist/tools/desktop-safety-gate.d.ts.map +1 -0
  1123. package/dist/tools/desktop-safety-gate.js +171 -0
  1124. package/dist/tools/desktop-safety-gate.js.map +1 -0
  1125. package/dist/tools/desktop-tools.d.ts +22 -0
  1126. package/dist/tools/desktop-tools.d.ts.map +1 -0
  1127. package/dist/tools/desktop-tools.js +71 -0
  1128. package/dist/tools/desktop-tools.js.map +1 -0
  1129. package/dist/tools/desktop-type.d.ts +12 -0
  1130. package/dist/tools/desktop-type.d.ts.map +1 -0
  1131. package/dist/tools/desktop-type.js +63 -0
  1132. package/dist/tools/desktop-type.js.map +1 -0
  1133. package/dist/tools/detect-language.d.ts +11 -0
  1134. package/dist/tools/detect-language.d.ts.map +1 -0
  1135. package/dist/tools/detect-language.js +235 -0
  1136. package/dist/tools/detect-language.js.map +1 -0
  1137. package/dist/tools/discover-news.d.ts +11 -0
  1138. package/dist/tools/discover-news.d.ts.map +1 -0
  1139. package/dist/tools/discover-news.js +261 -0
  1140. package/dist/tools/discover-news.js.map +1 -0
  1141. package/dist/tools/doc-generate.d.ts +17 -0
  1142. package/dist/tools/doc-generate.d.ts.map +1 -0
  1143. package/dist/tools/doc-generate.js +222 -0
  1144. package/dist/tools/doc-generate.js.map +1 -0
  1145. package/dist/tools/docs-lookup.d.ts +38 -0
  1146. package/dist/tools/docs-lookup.d.ts.map +1 -0
  1147. package/dist/tools/docs-lookup.js +174 -0
  1148. package/dist/tools/docs-lookup.js.map +1 -0
  1149. package/dist/tools/document-author.d.ts +40 -0
  1150. package/dist/tools/document-author.d.ts.map +1 -0
  1151. package/dist/tools/document-author.js +465 -0
  1152. package/dist/tools/document-author.js.map +1 -0
  1153. package/dist/tools/document-manage.d.ts +43 -0
  1154. package/dist/tools/document-manage.d.ts.map +1 -0
  1155. package/dist/tools/document-manage.js +665 -0
  1156. package/dist/tools/document-manage.js.map +1 -0
  1157. package/dist/tools/document-styling.d.ts +132 -0
  1158. package/dist/tools/document-styling.d.ts.map +1 -0
  1159. package/dist/tools/document-styling.js +360 -0
  1160. package/dist/tools/document-styling.js.map +1 -0
  1161. package/dist/tools/document-templates.d.ts +32 -0
  1162. package/dist/tools/document-templates.d.ts.map +1 -0
  1163. package/dist/tools/document-templates.js +95 -0
  1164. package/dist/tools/document-templates.js.map +1 -0
  1165. package/dist/tools/email-draft.d.ts +20 -0
  1166. package/dist/tools/email-draft.d.ts.map +1 -0
  1167. package/dist/tools/email-draft.js +191 -0
  1168. package/dist/tools/email-draft.js.map +1 -0
  1169. package/dist/tools/env-write.d.ts +32 -0
  1170. package/dist/tools/env-write.d.ts.map +1 -0
  1171. package/dist/tools/env-write.js +145 -0
  1172. package/dist/tools/env-write.js.map +1 -0
  1173. package/dist/tools/error-guidance.d.ts +38 -0
  1174. package/dist/tools/error-guidance.d.ts.map +1 -0
  1175. package/dist/tools/error-guidance.js +261 -0
  1176. package/dist/tools/error-guidance.js.map +1 -0
  1177. package/dist/tools/exercise-repair.d.ts +89 -0
  1178. package/dist/tools/exercise-repair.d.ts.map +1 -0
  1179. package/dist/tools/exercise-repair.js +350 -0
  1180. package/dist/tools/exercise-repair.js.map +1 -0
  1181. package/dist/tools/fact-check.d.ts +24 -0
  1182. package/dist/tools/fact-check.d.ts.map +1 -0
  1183. package/dist/tools/fact-check.js +78 -0
  1184. package/dist/tools/fact-check.js.map +1 -0
  1185. package/dist/tools/file-edit.d.ts +11 -0
  1186. package/dist/tools/file-edit.d.ts.map +1 -0
  1187. package/dist/tools/file-edit.js +166 -0
  1188. package/dist/tools/file-edit.js.map +1 -0
  1189. package/dist/tools/file-read.d.ts +12 -0
  1190. package/dist/tools/file-read.d.ts.map +1 -0
  1191. package/dist/tools/file-read.js +98 -0
  1192. package/dist/tools/file-read.js.map +1 -0
  1193. package/dist/tools/file-write.d.ts +13 -0
  1194. package/dist/tools/file-write.d.ts.map +1 -0
  1195. package/dist/tools/file-write.js +163 -0
  1196. package/dist/tools/file-write.js.map +1 -0
  1197. package/dist/tools/find-symbol.d.ts +13 -0
  1198. package/dist/tools/find-symbol.d.ts.map +1 -0
  1199. package/dist/tools/find-symbol.js +144 -0
  1200. package/dist/tools/find-symbol.js.map +1 -0
  1201. package/dist/tools/generate-image.d.ts +19 -0
  1202. package/dist/tools/generate-image.d.ts.map +1 -0
  1203. package/dist/tools/generate-image.js +438 -0
  1204. package/dist/tools/generate-image.js.map +1 -0
  1205. package/dist/tools/generate-video.d.ts +21 -0
  1206. package/dist/tools/generate-video.d.ts.map +1 -0
  1207. package/dist/tools/generate-video.js +197 -0
  1208. package/dist/tools/generate-video.js.map +1 -0
  1209. package/dist/tools/generate-voice.d.ts +13 -0
  1210. package/dist/tools/generate-voice.d.ts.map +1 -0
  1211. package/dist/tools/generate-voice.js +156 -0
  1212. package/dist/tools/generate-voice.js.map +1 -0
  1213. package/dist/tools/generation-manager.d.ts +75 -0
  1214. package/dist/tools/generation-manager.d.ts.map +1 -0
  1215. package/dist/tools/generation-manager.js +150 -0
  1216. package/dist/tools/generation-manager.js.map +1 -0
  1217. package/dist/tools/get-datetime.d.ts +11 -0
  1218. package/dist/tools/get-datetime.d.ts.map +1 -0
  1219. package/dist/tools/get-datetime.js +59 -0
  1220. package/dist/tools/get-datetime.js.map +1 -0
  1221. package/dist/tools/git-commit.d.ts +13 -0
  1222. package/dist/tools/git-commit.d.ts.map +1 -0
  1223. package/dist/tools/git-commit.js +136 -0
  1224. package/dist/tools/git-commit.js.map +1 -0
  1225. package/dist/tools/git-create-pr.d.ts +13 -0
  1226. package/dist/tools/git-create-pr.d.ts.map +1 -0
  1227. package/dist/tools/git-create-pr.js +134 -0
  1228. package/dist/tools/git-create-pr.js.map +1 -0
  1229. package/dist/tools/git-diff.d.ts +12 -0
  1230. package/dist/tools/git-diff.d.ts.map +1 -0
  1231. package/dist/tools/git-diff.js +134 -0
  1232. package/dist/tools/git-diff.js.map +1 -0
  1233. package/dist/tools/git.d.ts +11 -0
  1234. package/dist/tools/git.d.ts.map +1 -0
  1235. package/dist/tools/git.js +89 -0
  1236. package/dist/tools/git.js.map +1 -0
  1237. package/dist/tools/glob.d.ts +11 -0
  1238. package/dist/tools/glob.d.ts.map +1 -0
  1239. package/dist/tools/glob.js +64 -0
  1240. package/dist/tools/glob.js.map +1 -0
  1241. package/dist/tools/grep.d.ts +11 -0
  1242. package/dist/tools/grep.d.ts.map +1 -0
  1243. package/dist/tools/grep.js +131 -0
  1244. package/dist/tools/grep.js.map +1 -0
  1245. package/dist/tools/health-catalogue-search.d.ts +11 -0
  1246. package/dist/tools/health-catalogue-search.d.ts.map +1 -0
  1247. package/dist/tools/health-catalogue-search.js +179 -0
  1248. package/dist/tools/health-catalogue-search.js.map +1 -0
  1249. package/dist/tools/health-plan-create.d.ts +24 -0
  1250. package/dist/tools/health-plan-create.d.ts.map +1 -0
  1251. package/dist/tools/health-plan-create.js +325 -0
  1252. package/dist/tools/health-plan-create.js.map +1 -0
  1253. package/dist/tools/health-plan-delete.d.ts +11 -0
  1254. package/dist/tools/health-plan-delete.d.ts.map +1 -0
  1255. package/dist/tools/health-plan-delete.js +97 -0
  1256. package/dist/tools/health-plan-delete.js.map +1 -0
  1257. package/dist/tools/health-plan-list.d.ts +11 -0
  1258. package/dist/tools/health-plan-list.d.ts.map +1 -0
  1259. package/dist/tools/health-plan-list.js +123 -0
  1260. package/dist/tools/health-plan-list.js.map +1 -0
  1261. package/dist/tools/health-plan-update-day.d.ts +18 -0
  1262. package/dist/tools/health-plan-update-day.d.ts.map +1 -0
  1263. package/dist/tools/health-plan-update-day.js +134 -0
  1264. package/dist/tools/health-plan-update-day.js.map +1 -0
  1265. package/dist/tools/health-plan-update.d.ts +11 -0
  1266. package/dist/tools/health-plan-update.d.ts.map +1 -0
  1267. package/dist/tools/health-plan-update.js +103 -0
  1268. package/dist/tools/health-plan-update.js.map +1 -0
  1269. package/dist/tools/health-profile-ask.d.ts +21 -0
  1270. package/dist/tools/health-profile-ask.d.ts.map +1 -0
  1271. package/dist/tools/health-profile-ask.js +50 -0
  1272. package/dist/tools/health-profile-ask.js.map +1 -0
  1273. package/dist/tools/http-request.d.ts +12 -0
  1274. package/dist/tools/http-request.d.ts.map +1 -0
  1275. package/dist/tools/http-request.js +329 -0
  1276. package/dist/tools/http-request.js.map +1 -0
  1277. package/dist/tools/journal.d.ts +17 -0
  1278. package/dist/tools/journal.d.ts.map +1 -0
  1279. package/dist/tools/journal.js +159 -0
  1280. package/dist/tools/journal.js.map +1 -0
  1281. package/dist/tools/learning.d.ts +154 -0
  1282. package/dist/tools/learning.d.ts.map +1 -0
  1283. package/dist/tools/learning.js +1344 -0
  1284. package/dist/tools/learning.js.map +1 -0
  1285. package/dist/tools/list-directory.d.ts +11 -0
  1286. package/dist/tools/list-directory.d.ts.map +1 -0
  1287. package/dist/tools/list-directory.js +95 -0
  1288. package/dist/tools/list-directory.js.map +1 -0
  1289. package/dist/tools/memory-delete.d.ts +11 -0
  1290. package/dist/tools/memory-delete.d.ts.map +1 -0
  1291. package/dist/tools/memory-delete.js +54 -0
  1292. package/dist/tools/memory-delete.js.map +1 -0
  1293. package/dist/tools/memory-recall.d.ts +11 -0
  1294. package/dist/tools/memory-recall.d.ts.map +1 -0
  1295. package/dist/tools/memory-recall.js +101 -0
  1296. package/dist/tools/memory-recall.js.map +1 -0
  1297. package/dist/tools/memory-save.d.ts +11 -0
  1298. package/dist/tools/memory-save.d.ts.map +1 -0
  1299. package/dist/tools/memory-save.js +110 -0
  1300. package/dist/tools/memory-save.js.map +1 -0
  1301. package/dist/tools/memory-update.d.ts +11 -0
  1302. package/dist/tools/memory-update.d.ts.map +1 -0
  1303. package/dist/tools/memory-update.js +88 -0
  1304. package/dist/tools/memory-update.js.map +1 -0
  1305. package/dist/tools/news.d.ts +11 -0
  1306. package/dist/tools/news.d.ts.map +1 -0
  1307. package/dist/tools/news.js +137 -0
  1308. package/dist/tools/news.js.map +1 -0
  1309. package/dist/tools/open-design-studio.d.ts +20 -0
  1310. package/dist/tools/open-design-studio.d.ts.map +1 -0
  1311. package/dist/tools/open-design-studio.js +45 -0
  1312. package/dist/tools/open-design-studio.js.map +1 -0
  1313. package/dist/tools/open-health-room.d.ts +19 -0
  1314. package/dist/tools/open-health-room.d.ts.map +1 -0
  1315. package/dist/tools/open-health-room.js +44 -0
  1316. package/dist/tools/open-health-room.js.map +1 -0
  1317. package/dist/tools/open-learning-room.d.ts +20 -0
  1318. package/dist/tools/open-learning-room.d.ts.map +1 -0
  1319. package/dist/tools/open-learning-room.js +44 -0
  1320. package/dist/tools/open-learning-room.js.map +1 -0
  1321. package/dist/tools/paper-fetch.d.ts +11 -0
  1322. package/dist/tools/paper-fetch.d.ts.map +1 -0
  1323. package/dist/tools/paper-fetch.js +236 -0
  1324. package/dist/tools/paper-fetch.js.map +1 -0
  1325. package/dist/tools/post-performance.d.ts +17 -0
  1326. package/dist/tools/post-performance.d.ts.map +1 -0
  1327. package/dist/tools/post-performance.js +58 -0
  1328. package/dist/tools/post-performance.js.map +1 -0
  1329. package/dist/tools/present-plan.d.ts +34 -0
  1330. package/dist/tools/present-plan.d.ts.map +1 -0
  1331. package/dist/tools/present-plan.js +117 -0
  1332. package/dist/tools/present-plan.js.map +1 -0
  1333. package/dist/tools/project-index.d.ts +11 -0
  1334. package/dist/tools/project-index.d.ts.map +1 -0
  1335. package/dist/tools/project-index.js +88 -0
  1336. package/dist/tools/project-index.js.map +1 -0
  1337. package/dist/tools/propose-hooks.d.ts +17 -0
  1338. package/dist/tools/propose-hooks.d.ts.map +1 -0
  1339. package/dist/tools/propose-hooks.js +71 -0
  1340. package/dist/tools/propose-hooks.js.map +1 -0
  1341. package/dist/tools/propose-tool.d.ts +11 -0
  1342. package/dist/tools/propose-tool.d.ts.map +1 -0
  1343. package/dist/tools/propose-tool.js +155 -0
  1344. package/dist/tools/propose-tool.js.map +1 -0
  1345. package/dist/tools/recipe-repair.d.ts +116 -0
  1346. package/dist/tools/recipe-repair.d.ts.map +1 -0
  1347. package/dist/tools/recipe-repair.js +404 -0
  1348. package/dist/tools/recipe-repair.js.map +1 -0
  1349. package/dist/tools/record-machine-rule.d.ts +24 -0
  1350. package/dist/tools/record-machine-rule.d.ts.map +1 -0
  1351. package/dist/tools/record-machine-rule.js +60 -0
  1352. package/dist/tools/record-machine-rule.js.map +1 -0
  1353. package/dist/tools/release-notes.d.ts +11 -0
  1354. package/dist/tools/release-notes.d.ts.map +1 -0
  1355. package/dist/tools/release-notes.js +59 -0
  1356. package/dist/tools/release-notes.js.map +1 -0
  1357. package/dist/tools/remove-background.d.ts +15 -0
  1358. package/dist/tools/remove-background.d.ts.map +1 -0
  1359. package/dist/tools/remove-background.js +117 -0
  1360. package/dist/tools/remove-background.js.map +1 -0
  1361. package/dist/tools/report-generate.d.ts +30 -0
  1362. package/dist/tools/report-generate.d.ts.map +1 -0
  1363. package/dist/tools/report-generate.js +325 -0
  1364. package/dist/tools/report-generate.js.map +1 -0
  1365. package/dist/tools/research-post.d.ts +20 -0
  1366. package/dist/tools/research-post.d.ts.map +1 -0
  1367. package/dist/tools/research-post.js +87 -0
  1368. package/dist/tools/research-post.js.map +1 -0
  1369. package/dist/tools/research-story.d.ts +29 -0
  1370. package/dist/tools/research-story.d.ts.map +1 -0
  1371. package/dist/tools/research-story.js +78 -0
  1372. package/dist/tools/research-story.js.map +1 -0
  1373. package/dist/tools/rollback.d.ts +11 -0
  1374. package/dist/tools/rollback.d.ts.map +1 -0
  1375. package/dist/tools/rollback.js +81 -0
  1376. package/dist/tools/rollback.js.map +1 -0
  1377. package/dist/tools/scan-industry.d.ts +19 -0
  1378. package/dist/tools/scan-industry.d.ts.map +1 -0
  1379. package/dist/tools/scan-industry.js +82 -0
  1380. package/dist/tools/scan-industry.js.map +1 -0
  1381. package/dist/tools/screenshot.d.ts +11 -0
  1382. package/dist/tools/screenshot.d.ts.map +1 -0
  1383. package/dist/tools/screenshot.js +82 -0
  1384. package/dist/tools/screenshot.js.map +1 -0
  1385. package/dist/tools/secret-request.d.ts +24 -0
  1386. package/dist/tools/secret-request.d.ts.map +1 -0
  1387. package/dist/tools/secret-request.js +75 -0
  1388. package/dist/tools/secret-request.js.map +1 -0
  1389. package/dist/tools/security.d.ts +26 -0
  1390. package/dist/tools/security.d.ts.map +1 -0
  1391. package/dist/tools/security.js +78 -0
  1392. package/dist/tools/security.js.map +1 -0
  1393. package/dist/tools/self-inspect.d.ts +34 -0
  1394. package/dist/tools/self-inspect.d.ts.map +1 -0
  1395. package/dist/tools/self-inspect.js +427 -0
  1396. package/dist/tools/self-inspect.js.map +1 -0
  1397. package/dist/tools/suggest-beats.d.ts +17 -0
  1398. package/dist/tools/suggest-beats.d.ts.map +1 -0
  1399. package/dist/tools/suggest-beats.js +71 -0
  1400. package/dist/tools/suggest-beats.js.map +1 -0
  1401. package/dist/tools/suggest-stories.d.ts +26 -0
  1402. package/dist/tools/suggest-stories.d.ts.map +1 -0
  1403. package/dist/tools/suggest-stories.js +102 -0
  1404. package/dist/tools/suggest-stories.js.map +1 -0
  1405. package/dist/tools/support-request.d.ts +11 -0
  1406. package/dist/tools/support-request.d.ts.map +1 -0
  1407. package/dist/tools/support-request.js +110 -0
  1408. package/dist/tools/support-request.js.map +1 -0
  1409. package/dist/tools/switch-mode.d.ts +21 -0
  1410. package/dist/tools/switch-mode.d.ts.map +1 -0
  1411. package/dist/tools/switch-mode.js +57 -0
  1412. package/dist/tools/switch-mode.js.map +1 -0
  1413. package/dist/tools/task-manage.d.ts +16 -0
  1414. package/dist/tools/task-manage.d.ts.map +1 -0
  1415. package/dist/tools/task-manage.js +256 -0
  1416. package/dist/tools/task-manage.js.map +1 -0
  1417. package/dist/tools/task-suggest.d.ts +27 -0
  1418. package/dist/tools/task-suggest.d.ts.map +1 -0
  1419. package/dist/tools/task-suggest.js +70 -0
  1420. package/dist/tools/task-suggest.js.map +1 -0
  1421. package/dist/tools/test-generate.d.ts +20 -0
  1422. package/dist/tools/test-generate.d.ts.map +1 -0
  1423. package/dist/tools/test-generate.js +259 -0
  1424. package/dist/tools/test-generate.js.map +1 -0
  1425. package/dist/tools/test-run.d.ts +13 -0
  1426. package/dist/tools/test-run.d.ts.map +1 -0
  1427. package/dist/tools/test-run.js +177 -0
  1428. package/dist/tools/test-run.js.map +1 -0
  1429. package/dist/tools/todo-write.d.ts +11 -0
  1430. package/dist/tools/todo-write.d.ts.map +1 -0
  1431. package/dist/tools/todo-write.js +70 -0
  1432. package/dist/tools/todo-write.js.map +1 -0
  1433. package/dist/tools/tool-registry.d.ts +84 -0
  1434. package/dist/tools/tool-registry.d.ts.map +1 -0
  1435. package/dist/tools/tool-registry.js +728 -0
  1436. package/dist/tools/tool-registry.js.map +1 -0
  1437. package/dist/tools/types.d.ts +128 -0
  1438. package/dist/tools/types.d.ts.map +1 -0
  1439. package/dist/tools/types.js +2 -0
  1440. package/dist/tools/types.js.map +1 -0
  1441. package/dist/tools/verification-trust.d.ts +39 -0
  1442. package/dist/tools/verification-trust.d.ts.map +1 -0
  1443. package/dist/tools/verification-trust.js +135 -0
  1444. package/dist/tools/verification-trust.js.map +1 -0
  1445. package/dist/tools/verify-change.d.ts +11 -0
  1446. package/dist/tools/verify-change.d.ts.map +1 -0
  1447. package/dist/tools/verify-change.js +775 -0
  1448. package/dist/tools/verify-change.js.map +1 -0
  1449. package/dist/tools/weather.d.ts +11 -0
  1450. package/dist/tools/weather.d.ts.map +1 -0
  1451. package/dist/tools/weather.js +96 -0
  1452. package/dist/tools/weather.js.map +1 -0
  1453. package/dist/tools/web-search.d.ts +12 -0
  1454. package/dist/tools/web-search.d.ts.map +1 -0
  1455. package/dist/tools/web-search.js +137 -0
  1456. package/dist/tools/web-search.js.map +1 -0
  1457. package/dist/tools/write-article.d.ts +33 -0
  1458. package/dist/tools/write-article.d.ts.map +1 -0
  1459. package/dist/tools/write-article.js +206 -0
  1460. package/dist/tools/write-article.js.map +1 -0
  1461. package/dist/tools/write-exercise.d.ts +31 -0
  1462. package/dist/tools/write-exercise.d.ts.map +1 -0
  1463. package/dist/tools/write-exercise.js +278 -0
  1464. package/dist/tools/write-exercise.js.map +1 -0
  1465. package/dist/tools/write-post-image.d.ts +31 -0
  1466. package/dist/tools/write-post-image.d.ts.map +1 -0
  1467. package/dist/tools/write-post-image.js +102 -0
  1468. package/dist/tools/write-post-image.js.map +1 -0
  1469. package/dist/tools/write-post.d.ts +20 -0
  1470. package/dist/tools/write-post.d.ts.map +1 -0
  1471. package/dist/tools/write-post.js +113 -0
  1472. package/dist/tools/write-post.js.map +1 -0
  1473. package/dist/tools/write-recipe.d.ts +29 -0
  1474. package/dist/tools/write-recipe.d.ts.map +1 -0
  1475. package/dist/tools/write-recipe.js +262 -0
  1476. package/dist/tools/write-recipe.js.map +1 -0
  1477. package/dist/tools/write-video-post.d.ts +25 -0
  1478. package/dist/tools/write-video-post.d.ts.map +1 -0
  1479. package/dist/tools/write-video-post.js +238 -0
  1480. package/dist/tools/write-video-post.js.map +1 -0
  1481. package/dist/tools/write-voiceover.d.ts +29 -0
  1482. package/dist/tools/write-voiceover.d.ts.map +1 -0
  1483. package/dist/tools/write-voiceover.js +98 -0
  1484. package/dist/tools/write-voiceover.js.map +1 -0
  1485. package/dist/workflows/index.d.ts +4 -0
  1486. package/dist/workflows/index.d.ts.map +1 -0
  1487. package/dist/workflows/index.js +2 -0
  1488. package/dist/workflows/index.js.map +1 -0
  1489. package/dist/workflows/types.d.ts +112 -0
  1490. package/dist/workflows/types.d.ts.map +1 -0
  1491. package/dist/workflows/types.js +10 -0
  1492. package/dist/workflows/types.js.map +1 -0
  1493. package/dist/workflows/workflow-manager.d.ts +54 -0
  1494. package/dist/workflows/workflow-manager.d.ts.map +1 -0
  1495. package/dist/workflows/workflow-manager.js +277 -0
  1496. package/dist/workflows/workflow-manager.js.map +1 -0
  1497. package/package.json +223 -0
@@ -0,0 +1,876 @@
1
+ // ─── Desktop Automation Conductor ──────────────────────────────────────────
2
+ //
3
+ // Orchestrates the five-persona wave (Scout → Planner → Actor → Verifier →
4
+ // Narrator) into a real trajectory loop. This is the brain that the persona
5
+ // definitions, types, safety ontology, and budget tracker were all built for
6
+ // but which never existed — until now.
7
+ //
8
+ // Design (Phase A):
9
+ // - Scout — DETERMINISTIC. Structures the raw accessibility blob into a
10
+ // typed ScreenState. (LLM/vision merge lands in Phase C.)
11
+ // - Planner — LLM. The single reasoning call per step: picks the next action.
12
+ // - [gate] — classifyAction → decideApproval. Irreversible always confirms;
13
+ // privileged forbidden without opt-in. Prompts the host when needed.
14
+ // - Actor — DETERMINISTIC. Executes the exact ProposedAction via providers.
15
+ // - Verifier — LLM. Re-reads the screen, judges against expectedPostState.
16
+ // - Narrator — DETERMINISTIC (Phase A). Plain-English line + audit record.
17
+ //
18
+ // Host-agnostic: the host (IDE sidecar) injects the providers, the model-call,
19
+ // the approval prompt, and an emit callback. Core never imports Tauri.
20
+ import { ctxKey } from './screen-key.js';
21
+ import { mergeTiers, browserSnapshotToTier } from './perception.js';
22
+ import { DESKTOP_PLANNER, DESKTOP_VERIFIER, ACTION_KINDS as PLANNER_ACTION_KINDS, } from './personas.js';
23
+ import { classifyAction, decideApproval, escalateRisk, IRREVERSIBLE_VERBS, } from './safety.js';
24
+ import { BudgetTracker } from './budget.js';
25
+ // ── Runtime constants ──────────────────────────────────────────────────────
26
+ // Single source of truth: the exact set of kinds the Planner is TOLD it can
27
+ // use (personas.ts). Keeping a separate hand-maintained copy here is what let
28
+ // 'drag' and 'minimize_all' be advertised to the model but rejected by
29
+ // coerceAction as "invalid planner output" — derive it instead so it can never
30
+ // drift again.
31
+ const ACTION_KINDS = new Set(PLANNER_ACTION_KINDS);
32
+ // Advisory only — the authoritative credential gate is classifyAction(). This
33
+ // just flags fields so the user sees the lock icon and the Planner is warned.
34
+ const SENSITIVE_NAME = /password|secret|token|api.?key|credential|card.?number|cvv|cvc|pin\b/i;
35
+ const MAX_OBSERVE_MORE = 3; // consecutive re-reads before we call it stuck
36
+ const MAX_CONSECUTIVE_DEVIATIONS = 3;
37
+ // ── Public entry point ─────────────────────────────────────────────────────
38
+ /**
39
+ * Run a full desktop-automation trajectory. Returns when the task is done,
40
+ * the user stops it, it gets stuck, the budget is exhausted, or an error
41
+ * aborts it. Every step is gated, verified, and narrated.
42
+ */
43
+ export async function runDesktopTrajectory(opts) {
44
+ const { task, permissionLevel, providers, callModel, requestApproval, emit, signal } = opts;
45
+ const log = opts.log ?? (() => { });
46
+ const budget = new BudgetTracker(opts.budget ?? {});
47
+ const trajectory = {
48
+ id: genId(),
49
+ task,
50
+ startedAt: new Date().toISOString(),
51
+ steps: [],
52
+ whitelist: opts.whitelist ?? [],
53
+ permissionLevel,
54
+ outcome: 'error',
55
+ };
56
+ let observeMore = 0;
57
+ let consecutiveDeviations = 0;
58
+ // Hard cycle brake: count verified successes per action signature. A small
59
+ // Planner re-runs the task like a checklist forever (click → arrive →
60
+ // re-navigate → re-click …); the second verified success of an IDENTICAL
61
+ // action means the work is done and the model has lost track — end the
62
+ // trajectory deterministically instead of letting it lap.
63
+ const successSignatures = new Map();
64
+ const actionSignature = (a) => JSON.stringify([a.kind, a.target ?? '', a.params ?? {}]);
65
+ try {
66
+ while (true) {
67
+ if (signal?.aborted) {
68
+ trajectory.outcome = 'stopped';
69
+ emit({ type: 'narrate', line: 'Stopped.' });
70
+ break;
71
+ }
72
+ if (budget.snapshot().breached) {
73
+ trajectory.outcome = 'budget_exceeded';
74
+ break;
75
+ }
76
+ const stepNumber = trajectory.steps.length + 1;
77
+ // 1 — Scout: perceive (deterministic structuring of the accessibility blob).
78
+ const { state: screenState, raw } = await scout(providers);
79
+ log(`step ${stepNumber} · Scout: ${screenState.elements.length} elements, activeApp=${screenState.activeApp ?? '?'}, confidence=${screenState.confidence}`);
80
+ // Phase 3 — fingerprint the screen we're about to plan on. Image key
81
+ // when the host allows capture; honest textual app+task key when not.
82
+ // Then pull hindsight for this screen: "last time it looked like this,
83
+ // X failed; Z worked" — TEXT for the Planner, never an order.
84
+ let screenKey;
85
+ try {
86
+ screenKey = (await opts.captureScreenKey?.()) ?? ctxKey(screenState.activeApp, task);
87
+ }
88
+ catch {
89
+ screenKey = ctxKey(screenState.activeApp, task);
90
+ }
91
+ let forkHint = null;
92
+ if (opts.forkPointHint) {
93
+ try {
94
+ forkHint = await opts.forkPointHint(screenKey);
95
+ }
96
+ catch { /* hindsight is optional */ }
97
+ if (forkHint)
98
+ log(`step ${stepNumber} · Fork-point recall: hindsight available for this screen`);
99
+ }
100
+ // 2 — Planner: the one reasoning call. Decide the single next action.
101
+ const planned = await runPlanner(callModel, task, trajectory, screenState, providers.vision?.isAvailable() ?? false, log, forkHint);
102
+ const action = planned.action;
103
+ log(`step ${stepNumber} · Planner: ${action.kind}${action.target ? ` → "${action.target}"` : ''} [${action.riskClass}] — ${truncate(action.reasoning, 120)}`);
104
+ // Terminal / control kinds short-circuit the wave.
105
+ if (action.kind === 'done') {
106
+ trajectory.outcome = 'completed';
107
+ emit({ type: 'narrate', line: action.reasoning?.trim() || 'Task complete.' });
108
+ break;
109
+ }
110
+ if (action.kind === 'stuck') {
111
+ trajectory.outcome = 'stuck';
112
+ emit({ type: 'narrate', line: `Stuck: ${String(action.params?.reason ?? action.reasoning ?? 'no progress')}` });
113
+ break;
114
+ }
115
+ if (action.kind === 'observe_more') {
116
+ if (++observeMore > MAX_OBSERVE_MORE) {
117
+ trajectory.outcome = 'stuck';
118
+ emit({ type: 'narrate', line: 'Kept needing another look without acting — pausing.' });
119
+ break;
120
+ }
121
+ continue; // re-scout next iteration without acting
122
+ }
123
+ observeMore = 0;
124
+ // 3 — Safety gate. Resolve the target, classify, decide.
125
+ const element = action.target
126
+ ? screenState.elements.find(e => e.id === action.target || e.name === action.target)
127
+ : undefined;
128
+ // For a drag, the DROP target drives the risk (dragging a file onto
129
+ // "Trash" is irreversible even though the file itself is innocuous).
130
+ const dropRef = action.kind === 'drag' ? (action.params?.dropTarget ?? action.params?.to) : undefined;
131
+ const dropEl = dropRef ? screenState.elements.find(e => e.id === dropRef || e.name === dropRef) : undefined;
132
+ const classification = classifyAction({
133
+ kind: action.kind,
134
+ targetName: element?.name,
135
+ dropTargetName: dropRef ? (dropEl?.name ?? String(dropRef)) : undefined,
136
+ targetType: element?.kind,
137
+ isMaskedField: element?.sensitive,
138
+ appName: screenState.activeApp,
139
+ });
140
+ // Defence in depth: the computed classification may only ESCALATE
141
+ // relative to what the Planner itself declared — never launder it down.
142
+ // (Observed: Planner said "Empty Recycle Bin" was irreversible, "empty"
143
+ // wasn't in the verb list, and the gate auto-ran it as reversible.)
144
+ const escalated = escalateRisk(classification.riskClass, action.riskClass);
145
+ if (escalated !== classification.riskClass) {
146
+ classification.riskClass = escalated;
147
+ classification.reasons.push(`escalated: the Planner itself declared this ${escalated}`);
148
+ }
149
+ const decision = decideApproval(classification.riskClass, permissionLevel, opts.privilegedOptIn ?? false);
150
+ // Screen-said-so containment (Phase 1): if the impetus for a mutative
151
+ // action came from CONTENT ON THE SCREEN rather than the user's task —
152
+ // Planner self-declared, or the backstop heuristic caught an
153
+ // irreversible verb in the target the task never mentioned — it always
154
+ // gets a fresh confirm, even in Drive. A webpage must never be able to
155
+ // drive Ava's hands unattended. Defence in depth: this stacks ON TOP of
156
+ // the irreversible floor, it never replaces it.
157
+ action.origin = inferObservedOrigin(action, task, element?.name);
158
+ const MUTATIVE = new Set(['mutative-reversible', 'mutative-irreversible', 'privileged']);
159
+ if (action.origin === 'observed' && MUTATIVE.has(classification.riskClass)
160
+ && !decision.forbidden && !decision.requiresApproval) {
161
+ decision.requiresApproval = true;
162
+ decision.reason = 'This action was prompted by content on the screen (the page asked for it), not by your instructions — confirming with you first.';
163
+ classification.reasons.push('observed-origin: impetus came from screen content, not the user task');
164
+ }
165
+ const inOwnBrowser = action.kind === 'navigate'
166
+ || action.kind === 'scroll' && !!providers.browser?.isLive?.()
167
+ || element?.source === 'playwright';
168
+ log(`step ${stepNumber} · Gate: ${decision.forbidden ? 'FORBIDDEN' : decision.requiresApproval ? 'approval required' : 'auto-allowed'} (${classification.riskClass}${inOwnBrowser ? ', own-browser' : ''})`);
169
+ if (decision.forbidden) {
170
+ emit({ type: 'narrate', line: `Blocked a ${classification.riskClass} action — ${decision.reason}.` });
171
+ trajectory.outcome = 'stopped';
172
+ break;
173
+ }
174
+ if (decision.requiresApproval) {
175
+ emit({ type: 'approval_required', action, classification });
176
+ const approved = await requestApproval({ action, classification, element });
177
+ if (!approved) {
178
+ emit({ type: 'narrate', line: `You declined: ${describeAction(action, element)}.` });
179
+ trajectory.outcome = 'stopped';
180
+ break;
181
+ }
182
+ }
183
+ // Kill-switch: never execute an action after the stop fired — this catches
184
+ // an abort during the (abortable) Planner call OR the approval wait, so a
185
+ // mutating action can't land after Ctrl+Alt+K.
186
+ if (signal?.aborted) {
187
+ trajectory.outcome = 'stopped';
188
+ emit({ type: 'narrate', line: 'Stopped.' });
189
+ break;
190
+ }
191
+ // 4 — Actor: execute exactly (deterministic). In Drive, the Actor flashes
192
+ // a preview box on the target first (Phase 0D) — Ask/Watch already show
193
+ // the approval card, so the preview is Drive's "watch me work" signal.
194
+ const executionResult = await runActor(providers, action, raw, screenState.elements, permissionLevel === 'drive');
195
+ log(`step ${stepNumber} · Actor: ${executionResult.ok ? `ok (${executionResult.latencyMs}ms)` : `FAILED — ${executionResult.error ?? 'unknown'}`}`);
196
+ // Stop the instant the kill lands — don't scout/verify/plan another step.
197
+ // Bounds the residual after Ctrl+Alt+K to the one action just executed.
198
+ if (signal?.aborted) {
199
+ trajectory.outcome = 'stopped';
200
+ emit({ type: 'narrate', line: 'Stopped.' });
201
+ break;
202
+ }
203
+ // 5 — Verifier: re-read the screen, judge against the prediction — WITH
204
+ // measured evidence (URL/title/element-count deltas). The LLM's
205
+ // impression of "did anything change" is unreliable; the deltas aren't.
206
+ // Let the UI settle first: context menus, dialogs and window transitions
207
+ // take a few hundred ms to render, and a scout that races the animation
208
+ // hands the Verifier a half-drawn screen — the source of false
209
+ // "menu did not appear" / "0 elements" deviations on successful actions.
210
+ if (executionResult.ok)
211
+ await delay(600);
212
+ const { state: freshState } = await scout(providers);
213
+ const evidence = {
214
+ urlBefore: screenState.activeUrl ?? null,
215
+ urlAfter: freshState.activeUrl ?? null,
216
+ urlChanged: (screenState.activeUrl ?? null) !== (freshState.activeUrl ?? null),
217
+ titleBefore: screenState.activeTitle ?? null,
218
+ titleAfter: freshState.activeTitle ?? null,
219
+ elementCountBefore: screenState.elements.length,
220
+ elementCountAfter: freshState.elements.length,
221
+ };
222
+ const verified = await runVerifier(callModel, action, executionResult, freshState, evidence);
223
+ const verificationResult = verified.verification;
224
+ log(`step ${stepNumber} · Verifier: ${verificationResult.status} — ${truncate(verificationResult.detail, 120)}`);
225
+ consecutiveDeviations = verificationResult.status === 'verified' ? 0 : consecutiveDeviations + 1;
226
+ // 6 — Narrator: the user-facing line + audit (deterministic in Phase A).
227
+ // `element` resolves the target to its human name — the user must never
228
+ // see a raw selector or internal id in chat.
229
+ const userUpdate = narrate(stepNumber, action, executionResult, verificationResult, element);
230
+ // 7 — Record the step + advance the budget.
231
+ const tokensConsumed = {
232
+ scout: 0,
233
+ planner: planned.tokens,
234
+ actor: 0,
235
+ verifier: verified.tokens,
236
+ narrator: 0,
237
+ omniParser: 0,
238
+ };
239
+ const step = {
240
+ stepNumber, screenState, proposedAction: action,
241
+ executionResult, verificationResult, userUpdate, tokensConsumed,
242
+ screenKey,
243
+ };
244
+ trajectory.steps.push(step);
245
+ const snap = budget.recordStep(tokensConsumed);
246
+ emit({ type: 'step', step, budget: snap, header: budget.formatHeader() });
247
+ if (consecutiveDeviations >= MAX_CONSECUTIVE_DEVIATIONS) {
248
+ emit({ type: 'narrate', line: 'Three steps without progress — pausing for you.' });
249
+ trajectory.outcome = 'stuck';
250
+ break;
251
+ }
252
+ if (executionResult.ok && verificationResult.status === 'verified') {
253
+ const sig = actionSignature(action);
254
+ const count = (successSignatures.get(sig) ?? 0) + 1;
255
+ successSignatures.set(sig, count);
256
+ if (count >= 2) {
257
+ trajectory.outcome = 'completed';
258
+ log(`step ${stepNumber} · Brake: action repeated successfully (${action.kind}) — task treated as complete`);
259
+ emit({ type: 'narrate', line: 'Done — everything the task asked for has been carried out.' });
260
+ break;
261
+ }
262
+ }
263
+ if (snap.breached) {
264
+ trajectory.outcome = 'budget_exceeded';
265
+ break;
266
+ }
267
+ }
268
+ }
269
+ catch (err) {
270
+ const msg = err instanceof Error ? err.message : String(err);
271
+ // A request rejected by the kill-switch surfaces as a thrown 'aborted' —
272
+ // that's a clean stop, not an error to alarm the user with.
273
+ if (signal?.aborted || msg === 'aborted') {
274
+ trajectory.outcome = 'stopped';
275
+ emit({ type: 'narrate', line: 'Stopped.' });
276
+ }
277
+ else {
278
+ trajectory.outcome = 'error';
279
+ emit({ type: 'error', message: msg });
280
+ }
281
+ }
282
+ trajectory.endedAt = new Date().toISOString();
283
+ emit({ type: 'done', trajectory });
284
+ return trajectory;
285
+ }
286
+ // ── Scout (deterministic) ──────────────────────────────────────────────────
287
+ //
288
+ // Phase C1: Scout gathers every perception tier that is already live and
289
+ // merges them into one ranked ScreenState (perception.ts). The UIA tree is
290
+ // always attempted; the Playwright DOM contributes only when a browser is
291
+ // already open (observation never launches anything). Vision joins in C3.
292
+ async function scout(providers) {
293
+ const raw = providers.uia ? await providers.uia.listElements() : [];
294
+ const uiaTier = {
295
+ source: 'uia',
296
+ elements: raw.map((e, i) => ({
297
+ id: e.name && e.name.trim() ? e.name : `${e.control_type || 'el'}-${i}`,
298
+ kind: e.control_type || 'unknown',
299
+ name: e.name || '',
300
+ source: 'uia',
301
+ // Real enabled-state from UIA: a greyed-out control is visible but NOT
302
+ // interactable — and often the fact itself is the answer (a disabled
303
+ // "Empty Recycle Bin" means the bin is already empty).
304
+ interactable: e.enabled !== false,
305
+ // A covered element (desktop icon behind an app window) is enumerable
306
+ // but untouchable — the Planner must clear the occlusion first.
307
+ occluded: e.occluded === true || undefined,
308
+ // Surface provenance: without it the Verifier reads an open context
309
+ // menu as "a list of search results" and misjudges the step.
310
+ surface: e.surface,
311
+ sensitive: SENSITIVE_NAME.test(e.name || ''),
312
+ })),
313
+ };
314
+ const tiers = [uiaTier];
315
+ if (providers.browser?.isLive?.()) {
316
+ try {
317
+ tiers.push(browserSnapshotToTier(await providers.browser.snapshot()));
318
+ }
319
+ catch {
320
+ uiaTier.notes = 'A browser is open but its DOM snapshot failed — web elements may be missing.';
321
+ }
322
+ }
323
+ else if (providers.browser) {
324
+ // Affordance, not just absence: the Planner needs to know the door
325
+ // exists, or an empty screen reads as a dead end instead of a start.
326
+ uiaTier.notes = [uiaTier.notes, "Ava's built-in browser is closed — the 'navigate' action opens it automatically."]
327
+ .filter(Boolean).join(' ');
328
+ }
329
+ const state = mergeTiers(tiers);
330
+ // Phase C3 — when the structured tiers came back thin and a vision lane is
331
+ // enabled, tell the Planner it can target by DESCRIPTION: the Actor will
332
+ // locate described elements visually. Advertise the lane HONESTLY — if it's
333
+ // an unverified lane (local Holo, platform preview), say so, so the Planner
334
+ // leans on the accessibility tree first and treats visual hits with caution.
335
+ const cap = providers.vision?.capability?.();
336
+ const visionAvailable = cap ? cap.available : !!providers.vision?.isAvailable();
337
+ if (state.elements.length < 3 && visionAvailable) {
338
+ const caveat = cap && !cap.verified ? ' (this vision lane is unverified — prefer accessibility-tree targets, and treat visual results with a little caution)' : '';
339
+ state.notes = [state.notes,
340
+ `Vision is available${caveat}: you may 'click' elements by DESCRIBING them in plain words (e.g. "the blue Save button") — the system locates them visually on screen.`]
341
+ .filter(Boolean).join(' ');
342
+ }
343
+ return { state, raw };
344
+ }
345
+ // ── Planner (LLM) ──────────────────────────────────────────────────────────
346
+ async function runPlanner(callModel, task, trajectory, screen, visionAvailable = false, log = () => { }, forkHint = null) {
347
+ // Explicit completion ledger — a small model can't reliably infer "I already
348
+ // did that" from raw step history, so we hand it the conclusion: a plain
349
+ // list of everything that has already succeeded this run.
350
+ const alreadyCompleted = trajectory.steps
351
+ .filter(s => s.executionResult.ok && s.verificationResult.status === 'verified')
352
+ .map(s => pastTense(s.proposedAction));
353
+ const userContent = JSON.stringify({
354
+ task,
355
+ alreadyCompletedThisRun: alreadyCompleted.length > 0
356
+ ? { actions: alreadyCompleted, rule: 'These are DONE. Never repeat them. If they cover the whole task, output kind "done" now.' }
357
+ : undefined,
358
+ // Phase 3 — fork-point hindsight for THIS screen. Weigh it, don't obey
359
+ // it: conditions change, and every action still passes the safety gate.
360
+ learnedAtThisScreen: forkHint ?? undefined,
361
+ recentSteps: summariseTrajectory(trajectory),
362
+ // activeUrl/activeTitle matter as much as the elements: without them the
363
+ // Planner cannot recognise "the page I'm on IS the destination" and
364
+ // re-navigates to confirm instead of declaring done.
365
+ screen: {
366
+ activeApp: screen.activeApp, activeUrl: screen.activeUrl, activeTitle: screen.activeTitle,
367
+ confidence: screen.confidence, notes: screen.notes, elements: screen.elements,
368
+ },
369
+ });
370
+ const { text, tokensIn, tokensOut } = await callModel({
371
+ persona: 'planner', systemPrompt: DESKTOP_PLANNER.systemPrompt, userContent,
372
+ });
373
+ let tokens = tokensIn + tokensOut;
374
+ let action = coerceAction(parseJson(text));
375
+ // Diagnostic: when the model's reply won't parse into an action, log what it
376
+ // actually returned. An empty reply almost always means the active model put
377
+ // everything into a reasoning channel (or ran out of tokens mid-think) and
378
+ // left `content` blank — the Planner needs plain JSON, not a thinking model.
379
+ if (action.kind === 'stuck' && action.params?.reason === 'invalid planner output') {
380
+ const raw = (text ?? '').trim();
381
+ log(`Planner RAW reply unparseable — len=${raw.length}, tokensOut=${tokensOut}, first200=${JSON.stringify(raw.slice(0, 200))}`);
382
+ }
383
+ // Structural validation + ONE corrective retry. Smaller local models drop
384
+ // required fields (a click with no target executes as a guaranteed miss and
385
+ // burns a whole wave on it) — a pointed correction usually snaps them back.
386
+ const problem = validateAction(action, screen, visionAvailable) ?? validatePrediction(action);
387
+ if (problem) {
388
+ const retry = await callModel({
389
+ persona: 'planner',
390
+ systemPrompt: DESKTOP_PLANNER.systemPrompt,
391
+ userContent: `${userContent}\n\nYour previous output was INVALID: ${problem}\nPrevious output: ${text.slice(0, 400)}\nReturn ONE corrected JSON ProposedAction now. No prose.`,
392
+ });
393
+ tokens += retry.tokensIn + retry.tokensOut;
394
+ const retried = coerceAction(parseJson(retry.text));
395
+ if (!(validateAction(retried, screen, visionAvailable) ?? validatePrediction(retried))) {
396
+ action = retried;
397
+ }
398
+ else {
399
+ // Still malformed — take another look next cycle rather than crash
400
+ // or execute a doomed action.
401
+ action = {
402
+ kind: 'observe_more',
403
+ riskClass: 'observational',
404
+ reasoning: `Planner output stayed invalid after a retry (${problem}).`,
405
+ expectedPostState: 'n/a',
406
+ params: { reason: problem },
407
+ };
408
+ }
409
+ }
410
+ return { action, tokens };
411
+ }
412
+ /**
413
+ * Structural check — does the action carry what its kind requires, and does
414
+ * its target actually exist on the CURRENT screen? The second half matters
415
+ * because recalled memories contain element ids from past sessions; small
416
+ * models copy them verbatim and click ghosts (observed: a planner repeating
417
+ * a dead selector from memory while 21 live elements sat in front of it).
418
+ */
419
+ function validateAction(action, screen, visionAvailable = false) {
420
+ switch (action.kind) {
421
+ case 'click':
422
+ case 'double_click':
423
+ case 'right_click': {
424
+ if (!action.target) {
425
+ return `"${action.kind}" requires "target" — the exact id or name of an element from the screen list`;
426
+ }
427
+ // With a vision lane available, a descriptive target the structured
428
+ // tiers can't see is legitimate — the Actor will ground it visually.
429
+ if (!visionAvailable && screen && screen.elements.length > 0) {
430
+ const t = action.target.toLowerCase();
431
+ const onScreen = screen.elements.some(e => e.id === action.target || e.name.toLowerCase() === t || (!!e.name && e.name.toLowerCase().includes(t)));
432
+ if (!onScreen) {
433
+ return `target "${action.target}" is NOT on the current screen — it may be a stale id from notes of a previous session. Pick the exact "id" of an element from the CURRENT screen.elements list`;
434
+ }
435
+ }
436
+ return null;
437
+ }
438
+ case 'drag': {
439
+ if (!action.target)
440
+ return '"drag" requires "target" — the id/name of the element to drag';
441
+ if (!action.params?.dropTarget && !action.params?.to)
442
+ return '"drag" requires params.dropTarget — the id/name of the element to drop onto';
443
+ return null;
444
+ }
445
+ case 'type':
446
+ return typeof action.params?.text === 'string' && String(action.params.text).length > 0
447
+ ? null : '"type" requires params.text (the text to type)';
448
+ case 'key':
449
+ return action.params?.key ? null : '"key" requires params.key (e.g. "Enter")';
450
+ case 'navigate':
451
+ return action.params?.url ? null : '"navigate" requires params.url';
452
+ case 'launch':
453
+ return (action.params?.app || action.target) ? null : '"launch" requires params.app (the application name)';
454
+ default:
455
+ return null;
456
+ }
457
+ }
458
+ /**
459
+ * Acting kinds must carry a real expectedPostState. Without a prediction the
460
+ * Verifier has nothing to check and confabulates verdicts — observed: it ruled
461
+ * "no navigation happened" while standing on the destination page, sending the
462
+ * Planner into an undo/redo loop of its own completed task.
463
+ */
464
+ const ACTING_KINDS = new Set([
465
+ 'click', 'double_click', 'right_click', 'type', 'key', 'scroll', 'drag', 'minimize_all', 'navigate', 'launch',
466
+ ]);
467
+ function validatePrediction(action) {
468
+ if (!ACTING_KINDS.has(action.kind))
469
+ return null;
470
+ const p = (action.expectedPostState ?? '').trim();
471
+ return p.length >= 5
472
+ ? null
473
+ : '"expectedPostState" is required — one concrete sentence describing what the screen should show after this action (the Verifier checks against it)';
474
+ }
475
+ /** Defensive: a malformed Planner output becomes a controlled 'stuck', never a crash.
476
+ * Exported for the regression suite (0G) — pure function, no side effects. */
477
+ export function coerceAction(parsed) {
478
+ // Some models wrap the action: {"action": {"kind": ...}, "riskClass": ...}
479
+ // — kind inside, siblings outside (observed live; it killed a perfectly
480
+ // good recovery plan as "invalid"). Unwrap and merge, inner fields winning.
481
+ const wrapped = parsed?.action;
482
+ if (parsed && typeof parsed.kind !== 'string' && wrapped && typeof wrapped === 'object') {
483
+ parsed = { ...parsed, ...wrapped };
484
+ }
485
+ if (!parsed || typeof parsed.kind !== 'string' || !ACTION_KINDS.has(parsed.kind)) {
486
+ return {
487
+ kind: 'stuck',
488
+ riskClass: 'observational',
489
+ reasoning: 'Planner returned an unparseable or invalid action.',
490
+ expectedPostState: 'n/a',
491
+ params: { reason: 'invalid planner output' },
492
+ };
493
+ }
494
+ return {
495
+ kind: parsed.kind,
496
+ target: parsed.target,
497
+ params: parsed.params,
498
+ riskClass: parsed.riskClass ?? 'mutative-reversible',
499
+ reasoning: parsed.reasoning ?? '',
500
+ expectedPostState: parsed.expectedPostState ?? '',
501
+ // Anti-injection origin (Phase 1). Anything that isn't an explicit 'user'
502
+ // declaration stays 'observed'-eligible downstream — but we only trust an
503
+ // explicit value here; the conductor's heuristic may still override.
504
+ origin: parsed.origin === 'user' || parsed.origin === 'observed' ? parsed.origin : undefined,
505
+ };
506
+ }
507
+ /**
508
+ * Backstop heuristic for the origin flag (Phase 1) — never the only guard.
509
+ * If the action's target text carries an irreversible verb that the USER'S
510
+ * OWN TASK never mentioned, the impetus likely came from the screen (a page
511
+ * saying "click Delete to continue"), whatever the Planner declared. We only
512
+ * ever UPGRADE user→observed, never launder observed→user.
513
+ * Exported for the regression suite.
514
+ */
515
+ export function inferObservedOrigin(action, task, elementName) {
516
+ if (action.origin === 'observed')
517
+ return 'observed';
518
+ const text = `${elementName ?? ''} ${action.target ?? ''}`.toLowerCase();
519
+ const taskLower = task.toLowerCase();
520
+ for (const verb of IRREVERSIBLE_VERBS) {
521
+ const pattern = new RegExp(`\\b${verb}\\b`, 'i');
522
+ if (pattern.test(text) && !pattern.test(taskLower)) {
523
+ return 'observed';
524
+ }
525
+ }
526
+ return action.origin;
527
+ }
528
+ // ── Actor (deterministic) ──────────────────────────────────────────────────
529
+ async function runActor(providers, action, raw, merged = [], preview = false) {
530
+ const start = Date.now();
531
+ try {
532
+ const input = providers.input;
533
+ // Visual preview (Phase 0D) — in Drive, flash a click-through box on the
534
+ // target BEFORE acting so autonomous operation is legible. Best-effort:
535
+ // a host without an overlay (or a failed flash) never blocks the action,
536
+ // and this is never a safety guard — irreversible actions still confirm.
537
+ const PREVIEW_MS = 450;
538
+ const showPreview = async (bx, by, bw, bh) => {
539
+ if (!preview || !input?.highlight || bw <= 0 || bh <= 0)
540
+ return;
541
+ try {
542
+ await input.highlight(bx, by, bw, bh, PREVIEW_MS);
543
+ }
544
+ catch { /* preview is cosmetic */ }
545
+ };
546
+ // Phase C2: a target grounded by the DOM tier carries a selector — those
547
+ // actions route through the browser (exact under scroll/resize), while
548
+ // UIA-grounded targets keep the native coordinate path.
549
+ const webEl = action.target ? resolveWebTarget(action.target, merged) : null;
550
+ switch (action.kind) {
551
+ case 'click': {
552
+ if (webEl?.selector && providers.browser) {
553
+ await providers.browser.click(webEl.selector);
554
+ break;
555
+ }
556
+ const el = resolveTarget(action.target, raw);
557
+ if (el) {
558
+ // A greyed-out control can't be clicked — and the disabled state is
559
+ // usually the answer itself (disabled "Empty Recycle Bin" = already
560
+ // empty). Fail with the meaning so the Planner can conclude 'done'.
561
+ if (el.enabled === false) {
562
+ throw new Error(`'${el.name}' is visible but DISABLED (greyed out) — Windows disables an action when there is nothing for it to do, so its purpose is likely already satisfied. Do not retry it; if the task's goal is already met, declare done.`);
563
+ }
564
+ if (el.occluded === true) {
565
+ throw new Error(`'${el.name}' is COVERED by another window — a click would hit that window instead. Clear the occlusion first (minimize_all for desktop icons, or focus the right window), then retry.`);
566
+ }
567
+ await showPreview(el.x, el.y, el.width, el.height);
568
+ // Native clicks go through UIA's name-based invoke (exact, and the
569
+ // host may not wire coordinate input at all); coords are the fallback.
570
+ if (providers.uia?.clickElement) {
571
+ const clicked = await providers.uia.clickElement(el.name);
572
+ if (clicked)
573
+ break;
574
+ // The invoke does its OWN fresh lookup, which can land on a
575
+ // different surface if focus bounced (e.g. straight after an
576
+ // approval card closed). The coordinates from the planning scout
577
+ // still stand — fall back to them rather than stranding the step.
578
+ if (input && typeof input.click === 'function') {
579
+ await input.click(el.cx, el.cy);
580
+ break;
581
+ }
582
+ throw new Error(`could not click '${el.name}' via UIA`);
583
+ }
584
+ if (!input || typeof input.click !== 'function')
585
+ throw new Error('no click provider');
586
+ await input.click(el.cx, el.cy);
587
+ break;
588
+ }
589
+ // Phase C3 — vision fallback: the target isn't in any structured
590
+ // tier (custom-rendered UI), so locate it visually from the
591
+ // description and click the returned screen coordinates.
592
+ if (providers.vision?.isAvailable() && action.target) {
593
+ const pt = await providers.vision.localize(action.target);
594
+ if (!pt)
595
+ throw new Error(`couldn't locate '${action.target}' visually on the screen`);
596
+ if (!input || typeof input.click !== 'function')
597
+ throw new Error('vision located the element but no coordinate click is available');
598
+ await showPreview(pt.x - 16, pt.y - 16, 32, 32); // no bbox from vision — box the point
599
+ await input.click(pt.x, pt.y);
600
+ return { ok: true, latencyMs: Date.now() - start, sideEffects: ['located visually'] };
601
+ }
602
+ throw new Error(`target '${action.target ?? '?'}' not found on screen`);
603
+ }
604
+ case 'double_click':
605
+ case 'right_click': {
606
+ if (!input)
607
+ throw new Error('no input provider');
608
+ const el = resolveTarget(action.target, raw);
609
+ if (!el) {
610
+ throw new Error(webEl
611
+ ? `'${action.target}' is a web element — ${action.kind} on web elements isn't supported yet; use click`
612
+ : `target '${action.target ?? '?'}' not found on screen`);
613
+ }
614
+ if (el.occluded === true) {
615
+ throw new Error(`'${el.name}' is COVERED by another window — the ${action.kind} would hit that window instead. Clear the occlusion first (minimize_all for desktop icons, or focus the right window), then retry.`);
616
+ }
617
+ await showPreview(el.x, el.y, el.width, el.height);
618
+ if (action.kind === 'double_click')
619
+ await input.doubleClick(el.cx, el.cy);
620
+ else
621
+ await input.rightClick(el.cx, el.cy);
622
+ break;
623
+ }
624
+ case 'type': {
625
+ if (webEl?.selector && providers.browser) {
626
+ await providers.browser.type(String(action.params?.text ?? ''), webEl.selector);
627
+ break;
628
+ }
629
+ if (!input)
630
+ throw new Error('no input provider');
631
+ const el = action.target ? resolveTarget(action.target, raw) : null;
632
+ if (el) {
633
+ await showPreview(el.x, el.y, el.width, el.height);
634
+ await input.click(el.cx, el.cy); // focus the field first
635
+ }
636
+ await input.typeText(String(action.params?.text ?? ''));
637
+ break;
638
+ }
639
+ case 'key': {
640
+ if (!input)
641
+ throw new Error('no input provider');
642
+ await input.keyPress(String(action.params?.key ?? ''));
643
+ break;
644
+ }
645
+ case 'scroll': {
646
+ const dir = action.params?.direction ?? 'down';
647
+ const amount = Number(action.params?.amount) || undefined;
648
+ // Web scroll rides the browser when it's open; native wheel input is
649
+ // a Phase D primitive, so fail with the truth rather than a TypeError.
650
+ if (providers.browser?.isLive?.() && providers.browser.scroll) {
651
+ await providers.browser.scroll(dir, amount);
652
+ break;
653
+ }
654
+ if (input && typeof input.scroll === 'function') {
655
+ await input.scroll(dir, amount);
656
+ break;
657
+ }
658
+ throw new Error('native scroll is not available yet — only the browser can scroll for now');
659
+ }
660
+ case 'drag': {
661
+ if (!input || typeof input.drag !== 'function')
662
+ throw new Error('no drag provider');
663
+ const src = resolveTarget(action.target, raw);
664
+ if (!src)
665
+ throw new Error(`drag source '${action.target ?? '?'}' not found on screen`);
666
+ const dropRef = String(action.params?.dropTarget ?? action.params?.to ?? '');
667
+ const dst = dropRef ? resolveTarget(dropRef, raw) : null;
668
+ if (!dst)
669
+ throw new Error(`drop target '${dropRef || '?'}' not found on screen — pass params.dropTarget (the id/name of where to drop)`);
670
+ await showPreview(src.x, src.y, src.width, src.height); // box the element being dragged
671
+ await input.drag(src.cx, src.cy, dst.cx, dst.cy);
672
+ break;
673
+ }
674
+ case 'minimize_all': {
675
+ // Reveal the desktop so its icons (Recycle Bin, This PC, files) become
676
+ // visible + clickable — the fix for "the icon's behind a window".
677
+ if (!input || typeof input.minimizeAll !== 'function')
678
+ throw new Error('no minimize provider');
679
+ await input.minimizeAll();
680
+ break;
681
+ }
682
+ case 'navigate': {
683
+ if (!providers.browser)
684
+ throw new Error('no browser provider for navigate');
685
+ await providers.browser.navigate(String(action.params?.url ?? ''));
686
+ break;
687
+ }
688
+ case 'launch': {
689
+ if (!providers.appLauncher)
690
+ throw new Error('no app launcher provider');
691
+ const app = String(action.params?.app ?? action.target ?? '').trim();
692
+ if (!app)
693
+ throw new Error('launch requires params.app (the app name or path)');
694
+ // The host's launcher is the trust boundary — it rejects shell
695
+ // interpreters and admin tools by basename. Core just forwards the name.
696
+ const { launched } = await providers.appLauncher.launch(app);
697
+ return { ok: true, latencyMs: Date.now() - start, sideEffects: [`launched ${launched}`] };
698
+ }
699
+ case 'wait': {
700
+ await delay(Math.min(5000, Number(action.params?.ms) || 500));
701
+ break;
702
+ }
703
+ default:
704
+ throw new Error(`actor cannot execute kind '${action.kind}'`);
705
+ }
706
+ return { ok: true, latencyMs: Date.now() - start, sideEffects: [] };
707
+ }
708
+ catch (err) {
709
+ return { ok: false, error: err instanceof Error ? err.message : String(err), latencyMs: Date.now() - start };
710
+ }
711
+ }
712
+ /** Match a ProposedAction.target back to the raw UIA element (for exact coords). */
713
+ function resolveTarget(target, raw) {
714
+ if (!target)
715
+ return null;
716
+ const t = target.toLowerCase();
717
+ return raw.find(e => (e.name || '').toLowerCase() === t)
718
+ ?? raw.find(e => (e.name || '').toLowerCase().includes(t))
719
+ ?? null;
720
+ }
721
+ /** Match a target to a DOM-grounded element from the merged ScreenState. */
722
+ function resolveWebTarget(target, merged) {
723
+ const t = target.toLowerCase();
724
+ const web = merged.filter(e => e.source === 'playwright' && e.selector);
725
+ return web.find(e => e.id === target)
726
+ ?? web.find(e => e.name.toLowerCase() === t)
727
+ ?? web.find(e => !!e.name && e.name.toLowerCase().includes(t))
728
+ ?? null;
729
+ }
730
+ // ── Verifier (LLM) ─────────────────────────────────────────────────────────
731
+ async function runVerifier(callModel, action, result, freshScreen, evidence) {
732
+ const userContent = JSON.stringify({
733
+ proposedAction: action,
734
+ executionResult: result,
735
+ // Measured facts — the Verifier is instructed these outrank impressions.
736
+ evidence,
737
+ freshScreen: {
738
+ activeApp: freshScreen.activeApp, activeUrl: freshScreen.activeUrl, activeTitle: freshScreen.activeTitle,
739
+ confidence: freshScreen.confidence, notes: freshScreen.notes, elements: freshScreen.elements,
740
+ },
741
+ });
742
+ const { text, tokensIn, tokensOut } = await callModel({
743
+ persona: 'verifier', systemPrompt: DESKTOP_VERIFIER.systemPrompt, userContent,
744
+ });
745
+ const parsed = parseJson(text);
746
+ const status = parsed && ['verified', 'deviated', 'rollback_needed'].includes(parsed.status)
747
+ ? parsed.status
748
+ : 'deviated';
749
+ return {
750
+ verification: {
751
+ status,
752
+ detail: parsed?.detail ?? 'Verifier returned no detail.',
753
+ deviation: parsed?.deviation,
754
+ },
755
+ tokens: tokensIn + tokensOut,
756
+ };
757
+ }
758
+ // ── Narrator (deterministic, Phase A) ──────────────────────────────────────
759
+ function narrate(step, action, result, vr, element) {
760
+ let line;
761
+ if (!result.ok) {
762
+ line = `Tried to ${describeAction(action, element)}, but it failed${result.error ? `: ${humaniseDetail(result.error)}` : '.'}`;
763
+ }
764
+ else if (vr.status === 'deviated') {
765
+ line = `${capitalise(describeAction(action, element))} — but ${humaniseDetail(vr.deviation ?? 'the screen didn’t change as expected')}.`;
766
+ }
767
+ else if (vr.status === 'rollback_needed') {
768
+ line = `${capitalise(describeAction(action, element))} — that left things worse than before; pausing.`;
769
+ }
770
+ else {
771
+ line = `${capitalise(pastTense(action, element))}.`;
772
+ }
773
+ return {
774
+ line,
775
+ audit: { step, action, result, verification: vr, timestamp: new Date().toISOString() },
776
+ };
777
+ }
778
+ // The user-facing rule (from the Narrator spec): no selectors, no internal
779
+ // identifiers. A target the merge layer can't resolve to a human name is
780
+ // shown as a plain phrase, never as raw CSS/ids.
781
+ const SELECTOR_LIKE = /^\[|^#|^\.|data-ava-id|^web-\d+$|nth-of-type|^[a-z]+\[/i;
782
+ function displayTarget(action, element) {
783
+ const name = element?.name?.trim();
784
+ if (name)
785
+ return name;
786
+ const target = action.target?.trim();
787
+ if (!target || SELECTOR_LIKE.test(target))
788
+ return undefined;
789
+ return target;
790
+ }
791
+ /** Strip selector debris from Verifier/Actor prose before it reaches chat. */
792
+ function humaniseDetail(detail) {
793
+ return detail
794
+ // Playwright timeout dumps include a multi-line call log — replace the
795
+ // whole thing with a sentence a person can act on.
796
+ .replace(/page\.\w+: Timeout \d+ms exceeded[\s\S]*/i, "the element couldn't be found on the page in time")
797
+ .replace(/['"`]?\[data-ava-id="[^"]*"\]['"`]?/gi, 'that element')
798
+ .replace(/data-ava-id="?[^\s"\]]*"?\]?/gi, 'that element')
799
+ .replace(/['"`]web-\d+['"`]/gi, 'that element')
800
+ .replace(/\bweb-\d+\b/gi, 'that element');
801
+ }
802
+ function describeAction(action, element) {
803
+ const target = displayTarget(action, element);
804
+ switch (action.kind) {
805
+ case 'click': return target ? `click "${target}"` : 'click an element on the page';
806
+ case 'double_click': return target ? `double-click "${target}"` : 'double-click an element';
807
+ case 'right_click': return target ? `right-click "${target}"` : 'right-click an element';
808
+ case 'type': return target ? `type into "${target}"` : 'type';
809
+ case 'key': return `press ${String(action.params?.key ?? 'a key')}`;
810
+ case 'scroll': return `scroll ${String(action.params?.direction ?? 'down')}`;
811
+ case 'drag': return target ? `drag "${target}" onto "${String(action.params?.dropTarget ?? action.params?.to ?? '?')}"` : 'drag an element';
812
+ case 'minimize_all': return 'minimize all windows to show the desktop';
813
+ case 'navigate': return `open ${String(action.params?.url ?? 'a page')}`;
814
+ case 'launch': return `open ${String(action.params?.app ?? action.target ?? 'an app')}`;
815
+ case 'wait': return 'wait';
816
+ default: return action.kind;
817
+ }
818
+ }
819
+ function pastTense(action, element) {
820
+ const target = displayTarget(action, element);
821
+ switch (action.kind) {
822
+ case 'click': return target ? `clicked "${target}"` : 'clicked an element on the page';
823
+ case 'double_click': return target ? `double-clicked "${target}"` : 'double-clicked an element';
824
+ case 'right_click': return target ? `right-clicked "${target}"` : 'right-clicked an element';
825
+ case 'type': return target ? `typed into "${target}"` : 'typed';
826
+ case 'key': return `pressed ${String(action.params?.key ?? 'a key')}`;
827
+ case 'scroll': return `scrolled ${String(action.params?.direction ?? 'down')}`;
828
+ case 'drag': return target ? `dragged "${target}"` : 'dragged an element';
829
+ case 'minimize_all': return 'minimized all windows to show the desktop';
830
+ case 'navigate': return `opened ${String(action.params?.url ?? 'a page')}`;
831
+ case 'launch': return `opened ${String(action.params?.app ?? action.target ?? 'an app')}`;
832
+ case 'wait': return 'waited';
833
+ default: return action.kind;
834
+ }
835
+ }
836
+ // ── Helpers ────────────────────────────────────────────────────────────────
837
+ /** Compact recent trajectory for the Planner prompt — last 5 steps only. */
838
+ function summariseTrajectory(trajectory) {
839
+ return trajectory.steps.slice(-5).map(s => ({
840
+ step: s.stepNumber,
841
+ action: { kind: s.proposedAction.kind, target: s.proposedAction.target, params: s.proposedAction.params },
842
+ ok: s.executionResult.ok,
843
+ verification: s.verificationResult.status,
844
+ detail: s.verificationResult.detail,
845
+ }));
846
+ }
847
+ /** Exported for the regression suite (0G) — pure function, no side effects. */
848
+ export function parseJson(text) {
849
+ if (!text)
850
+ return null;
851
+ const cleaned = text.replace(/^```(?:json)?\s*/i, '').replace(/\s*```$/i, '').trim();
852
+ try {
853
+ return JSON.parse(cleaned);
854
+ }
855
+ catch {
856
+ // tolerate prose around the JSON — grab the first {...} block
857
+ const match = cleaned.match(/\{[\s\S]*\}/);
858
+ if (match) {
859
+ try {
860
+ return JSON.parse(match[0]);
861
+ }
862
+ catch { /* fall through */ }
863
+ }
864
+ return null;
865
+ }
866
+ }
867
+ function capitalise(s) { return s.charAt(0).toUpperCase() + s.slice(1); }
868
+ function truncate(s, max) {
869
+ const str = (s ?? '').trim();
870
+ return str.length > max ? `${str.slice(0, max - 1)}…` : str;
871
+ }
872
+ function delay(ms) { return new Promise(r => setTimeout(r, ms)); }
873
+ function genId() {
874
+ return `traj-${Date.now().toString(36)}-${Math.floor(Math.random() * 1e9).toString(36)}`;
875
+ }
876
+ //# sourceMappingURL=conductor.js.map