pi-harness-runtime 0.10.13 → 0.10.15

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 (581) hide show
  1. package/harness/notification-events.ts +2 -2
  2. package/package.json +4 -7
  3. package/packages/auth/src/minimax-browser-auth.js +889 -0
  4. package/packages/capability-registry/src/types.js +10 -0
  5. package/packages/checkpoint/src/checkpoint-manager.js +29 -0
  6. package/packages/clipboard/src/copy-sync.js +169 -0
  7. package/packages/clipboard/src/gist-relay.js +185 -0
  8. package/packages/clipboard/src/github-login.js +68 -0
  9. package/packages/config-capture/src/index.js +268 -0
  10. package/packages/cookie-sanitizer/src/atomic-write.js +66 -0
  11. package/packages/cookie-sanitizer/src/detect-format.js +87 -0
  12. package/packages/cookie-sanitizer/src/index.js +38 -0
  13. package/packages/cookie-sanitizer/src/infer-provider.js +95 -0
  14. package/packages/cookie-sanitizer/src/normalize.js +74 -0
  15. package/packages/cookie-sanitizer/src/parse-json.js +107 -0
  16. package/packages/cookie-sanitizer/src/parse-netscape.js +98 -0
  17. package/packages/cookie-sanitizer/src/sync.js +268 -0
  18. package/packages/cookie-sanitizer/src/types.js +12 -0
  19. package/packages/cookie-sanitizer/src/watcher.js +147 -0
  20. package/packages/evaluation-engine/src/engine.js +343 -0
  21. package/packages/evaluation-engine/src/index.js +7 -0
  22. package/packages/evaluation-engine/src/types.js +14 -0
  23. package/packages/event-store/src/types.js +5 -0
  24. package/packages/experience-replay/src/index.js +6 -0
  25. package/packages/experience-replay/src/replay.js +228 -0
  26. package/packages/experience-replay/src/types.js +6 -0
  27. package/packages/learning-engine/src/engine.js +294 -0
  28. package/packages/learning-engine/src/index.js +7 -0
  29. package/packages/learning-engine/src/types.js +63 -0
  30. package/packages/memory-engine/src/engine.js +507 -0
  31. package/packages/memory-engine/src/index.js +7 -0
  32. package/packages/memory-engine/src/types.js +39 -0
  33. package/packages/model-registry/src/types.js +5 -0
  34. package/packages/performance-optimizer/src/index.js +6 -0
  35. package/packages/performance-optimizer/src/optimizer.js +304 -0
  36. package/packages/performance-optimizer/src/types.js +6 -0
  37. package/packages/projection-engine/src/types.js +5 -0
  38. package/packages/providers/src/provider-id.js +112 -0
  39. package/packages/quota-manager/src/quota-manager.js +259 -0
  40. package/packages/quota-manager/src/tui-usage-monitor.js +267 -0
  41. package/packages/todo-bd-sync/src/detector.js +131 -0
  42. package/packages/todo-bd-sync/src/extension.js +104 -0
  43. package/packages/todo-bd-sync/src/sync.js +289 -0
  44. package/packages/todo-bd-sync/src/task-analyzer.js +239 -0
  45. package/packages/todo-bd-sync/src/types.js +66 -0
  46. package/packages/token-estimation/src/index.js +114 -0
  47. package/packages/types/src/agent-worker-types.js +41 -0
  48. package/packages/types/src/ai-providers.js +66 -0
  49. package/packages/types/src/runtime-types.js +3 -0
  50. package/packages/workflow-events/src/types.js +5 -0
  51. package/packages/write-review/src/blackboard.js +228 -0
  52. package/packages/write-review/src/gate.js +137 -0
  53. package/packages/write-review/src/index.js +17 -0
  54. package/packages/write-review/src/injection.js +141 -0
  55. package/packages/write-review/src/review.js +153 -0
  56. package/packages/write-review/src/trigger.js +106 -0
  57. package/packages/write-review/src/types.js +25 -0
  58. package/IMPLEMENTATION/RFC-0010/ACCEPTANCE_CRITERIA.md +0 -7
  59. package/IMPLEMENTATION/RFC-0010/AI_BRIEF.md +0 -20
  60. package/IMPLEMENTATION/RFC-0010/FILES.md +0 -11
  61. package/IMPLEMENTATION/RFC-0010/TASKS.md +0 -10
  62. package/IMPLEMENTATION/RFC-0010/TESTS.md +0 -6
  63. package/IMPLEMENTATION/RFC-0011/ACCEPTANCE_CRITERIA.md +0 -7
  64. package/IMPLEMENTATION/RFC-0011/AI_BRIEF.md +0 -19
  65. package/IMPLEMENTATION/RFC-0011/FILES.md +0 -11
  66. package/IMPLEMENTATION/RFC-0011/TASKS.md +0 -10
  67. package/IMPLEMENTATION/RFC-0011/TESTS.md +0 -6
  68. package/IMPLEMENTATION/RFC-0012/ACCEPTANCE_CRITERIA.md +0 -7
  69. package/IMPLEMENTATION/RFC-0012/AI_BRIEF.md +0 -18
  70. package/IMPLEMENTATION/RFC-0012/FILES.md +0 -11
  71. package/IMPLEMENTATION/RFC-0012/TASKS.md +0 -10
  72. package/IMPLEMENTATION/RFC-0012/TESTS.md +0 -6
  73. package/IMPLEMENTATION/RFC-0013/ACCEPTANCE_CRITERIA.md +0 -7
  74. package/IMPLEMENTATION/RFC-0013/AI_BRIEF.md +0 -19
  75. package/IMPLEMENTATION/RFC-0013/FILES.md +0 -11
  76. package/IMPLEMENTATION/RFC-0013/TASKS.md +0 -10
  77. package/IMPLEMENTATION/RFC-0013/TESTS.md +0 -6
  78. package/IMPLEMENTATION/RFC-0014/ACCEPTANCE_CRITERIA.md +0 -7
  79. package/IMPLEMENTATION/RFC-0014/AI_BRIEF.md +0 -20
  80. package/IMPLEMENTATION/RFC-0014/FILES.md +0 -11
  81. package/IMPLEMENTATION/RFC-0014/TASKS.md +0 -10
  82. package/IMPLEMENTATION/RFC-0014/TESTS.md +0 -6
  83. package/IMPLEMENTATION/RFC-0015/ACCEPTANCE_CRITERIA.md +0 -2
  84. package/IMPLEMENTATION/RFC-0015/AI_BRIEF.md +0 -2
  85. package/IMPLEMENTATION/RFC-0015/FILES.md +0 -2
  86. package/IMPLEMENTATION/RFC-0015/TASKS.md +0 -4
  87. package/IMPLEMENTATION/RFC-0015/TESTS.md +0 -3
  88. package/IMPLEMENTATION/RFC-0016/ACCEPTANCE_CRITERIA.md +0 -2
  89. package/IMPLEMENTATION/RFC-0016/AI_BRIEF.md +0 -2
  90. package/IMPLEMENTATION/RFC-0016/FILES.md +0 -2
  91. package/IMPLEMENTATION/RFC-0016/TASKS.md +0 -4
  92. package/IMPLEMENTATION/RFC-0016/TESTS.md +0 -3
  93. package/IMPLEMENTATION/RFC-0017/ACCEPTANCE_CRITERIA.md +0 -2
  94. package/IMPLEMENTATION/RFC-0017/AI_BRIEF.md +0 -2
  95. package/IMPLEMENTATION/RFC-0017/FILES.md +0 -2
  96. package/IMPLEMENTATION/RFC-0017/TASKS.md +0 -4
  97. package/IMPLEMENTATION/RFC-0017/TESTS.md +0 -3
  98. package/IMPLEMENTATION/RFC-0018/ACCEPTANCE_CRITERIA.md +0 -2
  99. package/IMPLEMENTATION/RFC-0018/AI_BRIEF.md +0 -2
  100. package/IMPLEMENTATION/RFC-0018/FILES.md +0 -2
  101. package/IMPLEMENTATION/RFC-0018/TASKS.md +0 -4
  102. package/IMPLEMENTATION/RFC-0018/TESTS.md +0 -3
  103. package/IMPLEMENTATION/RFC-0019/ACCEPTANCE_CRITERIA.md +0 -7
  104. package/IMPLEMENTATION/RFC-0019/AI_BRIEF.md +0 -18
  105. package/IMPLEMENTATION/RFC-0019/TASKS.md +0 -10
  106. package/IMPLEMENTATION/RFC-0020/ACCEPTANCE_CRITERIA.md +0 -7
  107. package/IMPLEMENTATION/RFC-0020/AI_BRIEF.md +0 -18
  108. package/IMPLEMENTATION/RFC-0020/TASKS.md +0 -10
  109. package/IMPLEMENTATION/RFC-0021/ACCEPTANCE_CRITERIA.md +0 -7
  110. package/IMPLEMENTATION/RFC-0021/AI_BRIEF.md +0 -18
  111. package/IMPLEMENTATION/RFC-0021/TASKS.md +0 -10
  112. package/IMPLEMENTATION/RFC-0022/ACCEPTANCE_CRITERIA.md +0 -7
  113. package/IMPLEMENTATION/RFC-0022/AI_BRIEF.md +0 -18
  114. package/IMPLEMENTATION/RFC-0022/TASKS.md +0 -10
  115. package/IMPLEMENTATION/RFC-0023/ACCEPTANCE_CRITERIA.md +0 -7
  116. package/IMPLEMENTATION/RFC-0023/AI_BRIEF.md +0 -18
  117. package/IMPLEMENTATION/RFC-0023/TASKS.md +0 -10
  118. package/IMPLEMENTATION/RFC-0024/AI_BRIEF.md +0 -1
  119. package/IMPLEMENTATION/RFC-0024/TASKS.md +0 -3
  120. package/IMPLEMENTATION/RFC-0025/AI_BRIEF.md +0 -1
  121. package/IMPLEMENTATION/RFC-0025/TASKS.md +0 -3
  122. package/IMPLEMENTATION/RFC-0026/AI_BRIEF.md +0 -1
  123. package/IMPLEMENTATION/RFC-0026/TASKS.md +0 -3
  124. package/IMPLEMENTATION/RFC-0027/AI_BRIEF.md +0 -1
  125. package/IMPLEMENTATION/RFC-0027/TASKS.md +0 -3
  126. package/IMPLEMENTATION/RFC-0028/AI_BRIEF.md +0 -1
  127. package/IMPLEMENTATION/RFC-0028/TASKS.md +0 -3
  128. package/IMPLEMENTATION/RFC-0029/AI_BRIEF.md +0 -1
  129. package/IMPLEMENTATION/RFC-0029/TASKS.md +0 -4
  130. package/IMPLEMENTATION/RFC-0030/AI_BRIEF.md +0 -1
  131. package/IMPLEMENTATION/RFC-0030/TASKS.md +0 -3
  132. package/IMPLEMENTATION/RFC-0031/AI_BRIEF.md +0 -45
  133. package/IMPLEMENTATION/RFC-0031/TASKS.md +0 -48
  134. package/IMPLEMENTATION/RFC-0032/AI_BRIEF.md +0 -45
  135. package/IMPLEMENTATION/RFC-0032/TASKS.md +0 -44
  136. package/IMPLEMENTATION/RFC-0033/AI_BRIEF.md +0 -46
  137. package/IMPLEMENTATION/RFC-0033/TASKS.md +0 -49
  138. package/IMPLEMENTATION/RFC-0034/AI_BRIEF.md +0 -54
  139. package/IMPLEMENTATION/RFC-0034/TASKS.md +0 -57
  140. package/IMPLEMENTATION/RFC-0035/AI_BRIEF.md +0 -55
  141. package/IMPLEMENTATION/RFC-0035/TASKS.md +0 -75
  142. package/IMPLEMENTATION/RFC-0036/AI_BRIEF.md +0 -62
  143. package/IMPLEMENTATION/RFC-0036/TASKS.md +0 -60
  144. package/IMPLEMENTATION/RFC-0037/AI_BRIEF.md +0 -59
  145. package/IMPLEMENTATION/RFC-0037/TASKS.md +0 -63
  146. package/IMPLEMENTATION/RFC-0038/AI_BRIEF.md +0 -67
  147. package/IMPLEMENTATION/RFC-0038/TASKS.md +0 -65
  148. package/IMPLEMENTATION/RFC-0039/AI_BRIEF.md +0 -68
  149. package/IMPLEMENTATION/RFC-0039/TASKS.md +0 -74
  150. package/IMPLEMENTATION/RFC-0040/AI_BRIEF.md +0 -79
  151. package/IMPLEMENTATION/RFC-0040/TASKS.md +0 -77
  152. package/IMPLEMENTATION/RFC-0041/ACCEPTANCE_CRITERIA.md +0 -8
  153. package/IMPLEMENTATION/RFC-0041/AI_BRIEF.md +0 -26
  154. package/IMPLEMENTATION/RFC-0041/FILES.md +0 -12
  155. package/IMPLEMENTATION/RFC-0041/TASKS.md +0 -12
  156. package/IMPLEMENTATION/RFC-0041/TESTS.md +0 -12
  157. package/IMPLEMENTATION/RFC-0042/ACCEPTANCE_CRITERIA.md +0 -7
  158. package/IMPLEMENTATION/RFC-0042/AI_BRIEF.md +0 -5
  159. package/IMPLEMENTATION/RFC-0042/FILES.md +0 -14
  160. package/IMPLEMENTATION/RFC-0042/TASKS.md +0 -12
  161. package/IMPLEMENTATION/RFC-0042/TESTS.md +0 -11
  162. package/IMPLEMENTATION/RFC-0043/ACCEPTANCE_CRITERIA.md +0 -7
  163. package/IMPLEMENTATION/RFC-0043/AI_BRIEF.md +0 -5
  164. package/IMPLEMENTATION/RFC-0043/FILES.md +0 -14
  165. package/IMPLEMENTATION/RFC-0043/TASKS.md +0 -12
  166. package/IMPLEMENTATION/RFC-0043/TESTS.md +0 -10
  167. package/IMPLEMENTATION/RFC-0044/ACCEPTANCE_CRITERIA.md +0 -7
  168. package/IMPLEMENTATION/RFC-0044/AI_BRIEF.md +0 -5
  169. package/IMPLEMENTATION/RFC-0044/FILES.md +0 -13
  170. package/IMPLEMENTATION/RFC-0044/TASKS.md +0 -12
  171. package/IMPLEMENTATION/RFC-0044/TESTS.md +0 -10
  172. package/IMPLEMENTATION/RFC-0045/ACCEPTANCE_CRITERIA.md +0 -30
  173. package/IMPLEMENTATION/RFC-0045/AI_BRIEF.md +0 -53
  174. package/IMPLEMENTATION/RFC-0045/FILES.md +0 -13
  175. package/IMPLEMENTATION/RFC-0045/TASKS.md +0 -31
  176. package/IMPLEMENTATION/RFC-0045/TESTS.md +0 -62
  177. package/IMPLEMENTATION/RFC-0046/ACCEPTANCE_CRITERIA.md +0 -1
  178. package/IMPLEMENTATION/RFC-0046/AI_BRIEF.md +0 -1
  179. package/IMPLEMENTATION/RFC-0046/FILES.md +0 -2
  180. package/IMPLEMENTATION/RFC-0046/TASKS.md +0 -3
  181. package/IMPLEMENTATION/RFC-0046/TESTS.md +0 -1
  182. package/IMPLEMENTATION/RFC-0047/ACCEPTANCE_CRITERIA.md +0 -1
  183. package/IMPLEMENTATION/RFC-0047/AI_BRIEF.md +0 -1
  184. package/IMPLEMENTATION/RFC-0047/FILES.md +0 -2
  185. package/IMPLEMENTATION/RFC-0047/TASKS.md +0 -3
  186. package/IMPLEMENTATION/RFC-0047/TESTS.md +0 -1
  187. package/IMPLEMENTATION/RFC-0048/ACCEPTANCE_CRITERIA.md +0 -1
  188. package/IMPLEMENTATION/RFC-0048/AI_BRIEF.md +0 -1
  189. package/IMPLEMENTATION/RFC-0048/FILES.md +0 -2
  190. package/IMPLEMENTATION/RFC-0048/TASKS.md +0 -3
  191. package/IMPLEMENTATION/RFC-0048/TESTS.md +0 -1
  192. package/IMPLEMENTATION/RFC-0049/ACCEPTANCE_CRITERIA.md +0 -1
  193. package/IMPLEMENTATION/RFC-0049/AI_BRIEF.md +0 -1
  194. package/IMPLEMENTATION/RFC-0049/FILES.md +0 -2
  195. package/IMPLEMENTATION/RFC-0049/TASKS.md +0 -3
  196. package/IMPLEMENTATION/RFC-0049/TESTS.md +0 -1
  197. package/IMPLEMENTATION/RFC-0050/ACCEPTANCE_CRITERIA.md +0 -1
  198. package/IMPLEMENTATION/RFC-0050/AI_BRIEF.md +0 -1
  199. package/IMPLEMENTATION/RFC-0050/FILES.md +0 -2
  200. package/IMPLEMENTATION/RFC-0050/TASKS.md +0 -3
  201. package/IMPLEMENTATION/RFC-0050/TESTS.md +0 -1
  202. package/IMPLEMENTATION/RFC-0051/ACCEPTANCE_CRITERIA.md +0 -6
  203. package/IMPLEMENTATION/RFC-0051/AI_BRIEF.md +0 -20
  204. package/IMPLEMENTATION/RFC-0051/FILES.md +0 -8
  205. package/IMPLEMENTATION/RFC-0051/TASKS.md +0 -3
  206. package/IMPLEMENTATION/RFC-0051/TESTS.md +0 -4
  207. package/IMPLEMENTATION/RFC-0052/ACCEPTANCE_CRITERIA.md +0 -7
  208. package/IMPLEMENTATION/RFC-0052/AI_BRIEF.md +0 -19
  209. package/IMPLEMENTATION/RFC-0052/FILES.md +0 -8
  210. package/IMPLEMENTATION/RFC-0052/TASKS.md +0 -3
  211. package/IMPLEMENTATION/RFC-0052/TESTS.md +0 -1
  212. package/IMPLEMENTATION/RFC-0053/ACCEPTANCE_CRITERIA.md +0 -8
  213. package/IMPLEMENTATION/RFC-0053/AI_BRIEF.md +0 -20
  214. package/IMPLEMENTATION/RFC-0053/FILES.md +0 -9
  215. package/IMPLEMENTATION/RFC-0053/TASKS.md +0 -3
  216. package/IMPLEMENTATION/RFC-0053/TESTS.md +0 -1
  217. package/IMPLEMENTATION/RFC-0054/ACCEPTANCE_CRITERIA.md +0 -8
  218. package/IMPLEMENTATION/RFC-0054/AI_BRIEF.md +0 -19
  219. package/IMPLEMENTATION/RFC-0054/FILES.md +0 -8
  220. package/IMPLEMENTATION/RFC-0054/TASKS.md +0 -3
  221. package/IMPLEMENTATION/RFC-0054/TESTS.md +0 -1
  222. package/IMPLEMENTATION/RFC-0055/ACCEPTANCE_CRITERIA.md +0 -8
  223. package/IMPLEMENTATION/RFC-0055/AI_BRIEF.md +0 -17
  224. package/IMPLEMENTATION/RFC-0055/FILES.md +0 -9
  225. package/IMPLEMENTATION/RFC-0055/TASKS.md +0 -3
  226. package/IMPLEMENTATION/RFC-0055/TESTS.md +0 -1
  227. package/IMPLEMENTATION/RFC-0056/ACCEPTANCE_CRITERIA.md +0 -6
  228. package/IMPLEMENTATION/RFC-0056/AI_BRIEF.md +0 -18
  229. package/IMPLEMENTATION/RFC-0056/FILES.md +0 -9
  230. package/IMPLEMENTATION/RFC-0056/TASKS.md +0 -9
  231. package/IMPLEMENTATION/RFC-0056/TESTS.md +0 -7
  232. package/IMPLEMENTATION/RFC-0057/ACCEPTANCE_CRITERIA.md +0 -5
  233. package/IMPLEMENTATION/RFC-0057/AI_BRIEF.md +0 -5
  234. package/IMPLEMENTATION/RFC-0057/FILES.md +0 -11
  235. package/IMPLEMENTATION/RFC-0057/TASKS.md +0 -9
  236. package/IMPLEMENTATION/RFC-0057/TESTS.md +0 -7
  237. package/IMPLEMENTATION/RFC-0058/ACCEPTANCE_CRITERIA.md +0 -6
  238. package/IMPLEMENTATION/RFC-0058/AI_BRIEF.md +0 -5
  239. package/IMPLEMENTATION/RFC-0058/FILES.md +0 -11
  240. package/IMPLEMENTATION/RFC-0058/TASKS.md +0 -9
  241. package/IMPLEMENTATION/RFC-0058/TESTS.md +0 -7
  242. package/IMPLEMENTATION/RFC-0059/ACCEPTANCE_CRITERIA.md +0 -6
  243. package/IMPLEMENTATION/RFC-0059/AI_BRIEF.md +0 -5
  244. package/IMPLEMENTATION/RFC-0059/FILES.md +0 -11
  245. package/IMPLEMENTATION/RFC-0059/TASKS.md +0 -9
  246. package/IMPLEMENTATION/RFC-0059/TESTS.md +0 -7
  247. package/IMPLEMENTATION/RFC-0060/ACCEPTANCE_CRITERIA.md +0 -7
  248. package/IMPLEMENTATION/RFC-0060/AI_BRIEF.md +0 -5
  249. package/IMPLEMENTATION/RFC-0060/FILES.md +0 -14
  250. package/IMPLEMENTATION/RFC-0060/TASKS.md +0 -12
  251. package/IMPLEMENTATION/RFC-0060/TESTS.md +0 -10
  252. package/IMPLEMENTATION/RFC-0061/ACCEPTANCE_CRITERIA.md +0 -1
  253. package/IMPLEMENTATION/RFC-0061/AI_BRIEF.md +0 -1
  254. package/IMPLEMENTATION/RFC-0061/FILES.md +0 -2
  255. package/IMPLEMENTATION/RFC-0061/TASKS.md +0 -4
  256. package/IMPLEMENTATION/RFC-0061/TESTS.md +0 -2
  257. package/IMPLEMENTATION/RFC-0062/ACCEPTANCE_CRITERIA.md +0 -1
  258. package/IMPLEMENTATION/RFC-0062/AI_BRIEF.md +0 -1
  259. package/IMPLEMENTATION/RFC-0062/FILES.md +0 -2
  260. package/IMPLEMENTATION/RFC-0062/TASKS.md +0 -4
  261. package/IMPLEMENTATION/RFC-0062/TESTS.md +0 -2
  262. package/IMPLEMENTATION/RFC-0063/ACCEPTANCE_CRITERIA.md +0 -1
  263. package/IMPLEMENTATION/RFC-0063/AI_BRIEF.md +0 -1
  264. package/IMPLEMENTATION/RFC-0063/FILES.md +0 -2
  265. package/IMPLEMENTATION/RFC-0063/TASKS.md +0 -4
  266. package/IMPLEMENTATION/RFC-0063/TESTS.md +0 -2
  267. package/IMPLEMENTATION/RFC-0064/ACCEPTANCE_CRITERIA.md +0 -1
  268. package/IMPLEMENTATION/RFC-0064/AI_BRIEF.md +0 -1
  269. package/IMPLEMENTATION/RFC-0064/FILES.md +0 -2
  270. package/IMPLEMENTATION/RFC-0064/TASKS.md +0 -4
  271. package/IMPLEMENTATION/RFC-0064/TESTS.md +0 -2
  272. package/IMPLEMENTATION/RFC-0065/ACCEPTANCE_CRITERIA.md +0 -1
  273. package/IMPLEMENTATION/RFC-0065/AI_BRIEF.md +0 -1
  274. package/IMPLEMENTATION/RFC-0065/FILES.md +0 -2
  275. package/IMPLEMENTATION/RFC-0065/TASKS.md +0 -4
  276. package/IMPLEMENTATION/RFC-0065/TESTS.md +0 -2
  277. package/IMPLEMENTATION/RFC-0066/ACCEPTANCE_CRITERIA.md +0 -2
  278. package/IMPLEMENTATION/RFC-0066/AI_BRIEF.md +0 -2
  279. package/IMPLEMENTATION/RFC-0066/FILES.md +0 -2
  280. package/IMPLEMENTATION/RFC-0066/TASKS.md +0 -4
  281. package/IMPLEMENTATION/RFC-0066/TESTS.md +0 -3
  282. package/IMPLEMENTATION/RFC-0067/ACCEPTANCE_CRITERIA.md +0 -2
  283. package/IMPLEMENTATION/RFC-0067/AI_BRIEF.md +0 -2
  284. package/IMPLEMENTATION/RFC-0067/FILES.md +0 -2
  285. package/IMPLEMENTATION/RFC-0067/TASKS.md +0 -4
  286. package/IMPLEMENTATION/RFC-0067/TESTS.md +0 -3
  287. package/IMPLEMENTATION/RFC-0068/ACCEPTANCE_CRITERIA.md +0 -2
  288. package/IMPLEMENTATION/RFC-0068/AI_BRIEF.md +0 -2
  289. package/IMPLEMENTATION/RFC-0068/FILES.md +0 -2
  290. package/IMPLEMENTATION/RFC-0068/TASKS.md +0 -4
  291. package/IMPLEMENTATION/RFC-0068/TESTS.md +0 -3
  292. package/IMPLEMENTATION/RFC-0069/ACCEPTANCE_CRITERIA.md +0 -2
  293. package/IMPLEMENTATION/RFC-0069/AI_BRIEF.md +0 -2
  294. package/IMPLEMENTATION/RFC-0069/FILES.md +0 -2
  295. package/IMPLEMENTATION/RFC-0069/TASKS.md +0 -4
  296. package/IMPLEMENTATION/RFC-0069/TESTS.md +0 -3
  297. package/IMPLEMENTATION/RFC-0070/ACCEPTANCE_CRITERIA.md +0 -2
  298. package/IMPLEMENTATION/RFC-0070/AI_BRIEF.md +0 -2
  299. package/IMPLEMENTATION/RFC-0070/FILES.md +0 -2
  300. package/IMPLEMENTATION/RFC-0070/TASKS.md +0 -4
  301. package/IMPLEMENTATION/RFC-0070/TESTS.md +0 -3
  302. package/IMPLEMENTATION/RFC-0071/ACCEPTANCE_CRITERIA.md +0 -2
  303. package/IMPLEMENTATION/RFC-0071/AI_BRIEF.md +0 -2
  304. package/IMPLEMENTATION/RFC-0071/FILES.md +0 -2
  305. package/IMPLEMENTATION/RFC-0071/TASKS.md +0 -4
  306. package/IMPLEMENTATION/RFC-0071/TESTS.md +0 -3
  307. package/IMPLEMENTATION/RFC-0072/ACCEPTANCE_CRITERIA.md +0 -2
  308. package/IMPLEMENTATION/RFC-0072/AI_BRIEF.md +0 -2
  309. package/IMPLEMENTATION/RFC-0072/FILES.md +0 -2
  310. package/IMPLEMENTATION/RFC-0072/TASKS.md +0 -4
  311. package/IMPLEMENTATION/RFC-0072/TESTS.md +0 -3
  312. package/IMPLEMENTATION/RFC-0073/ACCEPTANCE_CRITERIA.md +0 -2
  313. package/IMPLEMENTATION/RFC-0073/AI_BRIEF.md +0 -2
  314. package/IMPLEMENTATION/RFC-0073/FILES.md +0 -2
  315. package/IMPLEMENTATION/RFC-0073/TASKS.md +0 -4
  316. package/IMPLEMENTATION/RFC-0073/TESTS.md +0 -3
  317. package/IMPLEMENTATION/RFC-0074/ACCEPTANCE_CRITERIA.md +0 -2
  318. package/IMPLEMENTATION/RFC-0074/AI_BRIEF.md +0 -17
  319. package/IMPLEMENTATION/RFC-0074/FILES.md +0 -2
  320. package/IMPLEMENTATION/RFC-0074/TASKS.md +0 -4
  321. package/IMPLEMENTATION/RFC-0074/TESTS.md +0 -3
  322. package/IMPLEMENTATION/RFC-0075/ACCEPTANCE_CRITERIA.md +0 -2
  323. package/IMPLEMENTATION/RFC-0075/AI_BRIEF.md +0 -2
  324. package/IMPLEMENTATION/RFC-0075/FILES.md +0 -2
  325. package/IMPLEMENTATION/RFC-0075/TASKS.md +0 -4
  326. package/IMPLEMENTATION/RFC-0075/TESTS.md +0 -3
  327. package/IMPLEMENTATION/RFC-0076/ACCEPTANCE_CRITERIA.md +0 -2
  328. package/IMPLEMENTATION/RFC-0076/AI_BRIEF.md +0 -2
  329. package/IMPLEMENTATION/RFC-0076/FILES.md +0 -2
  330. package/IMPLEMENTATION/RFC-0076/TASKS.md +0 -4
  331. package/IMPLEMENTATION/RFC-0076/TESTS.md +0 -3
  332. package/IMPLEMENTATION/RFC-0077/ACCEPTANCE_CRITERIA.md +0 -2
  333. package/IMPLEMENTATION/RFC-0077/AI_BRIEF.md +0 -2
  334. package/IMPLEMENTATION/RFC-0077/FILES.md +0 -2
  335. package/IMPLEMENTATION/RFC-0077/TASKS.md +0 -4
  336. package/IMPLEMENTATION/RFC-0077/TESTS.md +0 -3
  337. package/IMPLEMENTATION/RFC-0078/ACCEPTANCE_CRITERIA.md +0 -2
  338. package/IMPLEMENTATION/RFC-0078/AI_BRIEF.md +0 -17
  339. package/IMPLEMENTATION/RFC-0078/FILES.md +0 -2
  340. package/IMPLEMENTATION/RFC-0078/TASKS.md +0 -4
  341. package/IMPLEMENTATION/RFC-0078/TESTS.md +0 -3
  342. package/IMPLEMENTATION/RFC-0079/ACCEPTANCE_CRITERIA.md +0 -2
  343. package/IMPLEMENTATION/RFC-0079/AI_BRIEF.md +0 -7
  344. package/IMPLEMENTATION/RFC-0079/FILES.md +0 -2
  345. package/IMPLEMENTATION/RFC-0079/TASKS.md +0 -4
  346. package/IMPLEMENTATION/RFC-0079/TESTS.md +0 -3
  347. package/IMPLEMENTATION/RFC-0080/ACCEPTANCE_CRITERIA.md +0 -2
  348. package/IMPLEMENTATION/RFC-0080/AI_BRIEF.md +0 -2
  349. package/IMPLEMENTATION/RFC-0080/FILES.md +0 -2
  350. package/IMPLEMENTATION/RFC-0080/TASKS.md +0 -4
  351. package/IMPLEMENTATION/RFC-0080/TESTS.md +0 -3
  352. package/IMPLEMENTATION/RFC-0081/ACCEPTANCE_CRITERIA.md +0 -2
  353. package/IMPLEMENTATION/RFC-0081/AI_BRIEF.md +0 -2
  354. package/IMPLEMENTATION/RFC-0081/FILES.md +0 -2
  355. package/IMPLEMENTATION/RFC-0081/TASKS.md +0 -4
  356. package/IMPLEMENTATION/RFC-0081/TESTS.md +0 -3
  357. package/IMPLEMENTATION/RFC-0082/ACCEPTANCE_CRITERIA.md +0 -2
  358. package/IMPLEMENTATION/RFC-0082/AI_BRIEF.md +0 -2
  359. package/IMPLEMENTATION/RFC-0082/FILES.md +0 -2
  360. package/IMPLEMENTATION/RFC-0082/TASKS.md +0 -4
  361. package/IMPLEMENTATION/RFC-0082/TESTS.md +0 -3
  362. package/IMPLEMENTATION/RFC-0083/ACCEPTANCE_CRITERIA.md +0 -2
  363. package/IMPLEMENTATION/RFC-0083/AI_BRIEF.md +0 -2
  364. package/IMPLEMENTATION/RFC-0083/FILES.md +0 -2
  365. package/IMPLEMENTATION/RFC-0083/TASKS.md +0 -4
  366. package/IMPLEMENTATION/RFC-0083/TESTS.md +0 -3
  367. package/IMPLEMENTATION/RFC-0084/ACCEPTANCE_CRITERIA.md +0 -2
  368. package/IMPLEMENTATION/RFC-0084/AI_BRIEF.md +0 -2
  369. package/IMPLEMENTATION/RFC-0084/FILES.md +0 -2
  370. package/IMPLEMENTATION/RFC-0084/TASKS.md +0 -4
  371. package/IMPLEMENTATION/RFC-0084/TESTS.md +0 -3
  372. package/IMPLEMENTATION/RFC-0085/ACCEPTANCE_CRITERIA.md +0 -2
  373. package/IMPLEMENTATION/RFC-0085/AI_BRIEF.md +0 -2
  374. package/IMPLEMENTATION/RFC-0085/FILES.md +0 -2
  375. package/IMPLEMENTATION/RFC-0085/TASKS.md +0 -4
  376. package/IMPLEMENTATION/RFC-0085/TESTS.md +0 -3
  377. package/IMPLEMENTATION/RFC-0086/ACCEPTANCE_CRITERIA.md +0 -2
  378. package/IMPLEMENTATION/RFC-0086/AI_BRIEF.md +0 -2
  379. package/IMPLEMENTATION/RFC-0086/FILES.md +0 -2
  380. package/IMPLEMENTATION/RFC-0086/TASKS.md +0 -4
  381. package/IMPLEMENTATION/RFC-0086/TESTS.md +0 -3
  382. package/IMPLEMENTATION/RFC-0087/ACCEPTANCE_CRITERIA.md +0 -2
  383. package/IMPLEMENTATION/RFC-0087/AI_BRIEF.md +0 -2
  384. package/IMPLEMENTATION/RFC-0087/FILES.md +0 -2
  385. package/IMPLEMENTATION/RFC-0087/TASKS.md +0 -4
  386. package/IMPLEMENTATION/RFC-0087/TESTS.md +0 -3
  387. package/IMPLEMENTATION/RFC-0088/ACCEPTANCE_CRITERIA.md +0 -2
  388. package/IMPLEMENTATION/RFC-0088/AI_BRIEF.md +0 -2
  389. package/IMPLEMENTATION/RFC-0088/FILES.md +0 -2
  390. package/IMPLEMENTATION/RFC-0088/TASKS.md +0 -4
  391. package/IMPLEMENTATION/RFC-0088/TESTS.md +0 -3
  392. package/IMPLEMENTATION/RFC-0089/ACCEPTANCE_CRITERIA.md +0 -2
  393. package/IMPLEMENTATION/RFC-0089/AI_BRIEF.md +0 -2
  394. package/IMPLEMENTATION/RFC-0089/FILES.md +0 -2
  395. package/IMPLEMENTATION/RFC-0089/TASKS.md +0 -4
  396. package/IMPLEMENTATION/RFC-0089/TESTS.md +0 -3
  397. package/IMPLEMENTATION/RFC-0090/ACCEPTANCE_CRITERIA.md +0 -2
  398. package/IMPLEMENTATION/RFC-0090/AI_BRIEF.md +0 -2
  399. package/IMPLEMENTATION/RFC-0090/FILES.md +0 -2
  400. package/IMPLEMENTATION/RFC-0090/TASKS.md +0 -4
  401. package/IMPLEMENTATION/RFC-0090/TESTS.md +0 -3
  402. package/IMPLEMENTATION/RFC-0091/ACCEPTANCE_CRITERIA.md +0 -2
  403. package/IMPLEMENTATION/RFC-0091/AI_BRIEF.md +0 -2
  404. package/IMPLEMENTATION/RFC-0091/FILES.md +0 -2
  405. package/IMPLEMENTATION/RFC-0091/TASKS.md +0 -4
  406. package/IMPLEMENTATION/RFC-0091/TESTS.md +0 -3
  407. package/IMPLEMENTATION/RFC-0092/ACCEPTANCE_CRITERIA.md +0 -2
  408. package/IMPLEMENTATION/RFC-0092/AI_BRIEF.md +0 -20
  409. package/IMPLEMENTATION/RFC-0092/FILES.md +0 -2
  410. package/IMPLEMENTATION/RFC-0092/TASKS.md +0 -4
  411. package/IMPLEMENTATION/RFC-0092/TESTS.md +0 -3
  412. package/IMPLEMENTATION/RFC-0093/ACCEPTANCE_CRITERIA.md +0 -2
  413. package/IMPLEMENTATION/RFC-0093/AI_BRIEF.md +0 -22
  414. package/IMPLEMENTATION/RFC-0093/FILES.md +0 -2
  415. package/IMPLEMENTATION/RFC-0093/TASKS.md +0 -4
  416. package/IMPLEMENTATION/RFC-0093/TESTS.md +0 -3
  417. package/IMPLEMENTATION/RFC-0094/ACCEPTANCE_CRITERIA.md +0 -2
  418. package/IMPLEMENTATION/RFC-0094/AI_BRIEF.md +0 -2
  419. package/IMPLEMENTATION/RFC-0094/FILES.md +0 -2
  420. package/IMPLEMENTATION/RFC-0094/TASKS.md +0 -4
  421. package/IMPLEMENTATION/RFC-0094/TESTS.md +0 -3
  422. package/IMPLEMENTATION/RFC-0095/ACCEPTANCE_CRITERIA.md +0 -2
  423. package/IMPLEMENTATION/RFC-0095/AI_BRIEF.md +0 -2
  424. package/IMPLEMENTATION/RFC-0095/FILES.md +0 -2
  425. package/IMPLEMENTATION/RFC-0095/TASKS.md +0 -4
  426. package/IMPLEMENTATION/RFC-0095/TESTS.md +0 -3
  427. package/IMPLEMENTATION/RFC-0096/ACCEPTANCE_CRITERIA.md +0 -2
  428. package/IMPLEMENTATION/RFC-0096/AI_BRIEF.md +0 -2
  429. package/IMPLEMENTATION/RFC-0096/FILES.md +0 -2
  430. package/IMPLEMENTATION/RFC-0096/TASKS.md +0 -4
  431. package/IMPLEMENTATION/RFC-0096/TESTS.md +0 -3
  432. package/IMPLEMENTATION/RFC-0097/ACCEPTANCE_CRITERIA.md +0 -2
  433. package/IMPLEMENTATION/RFC-0097/AI_BRIEF.md +0 -2
  434. package/IMPLEMENTATION/RFC-0097/FILES.md +0 -2
  435. package/IMPLEMENTATION/RFC-0097/TASKS.md +0 -4
  436. package/IMPLEMENTATION/RFC-0097/TESTS.md +0 -3
  437. package/IMPLEMENTATION/RFC-0098/ACCEPTANCE_CRITERIA.md +0 -2
  438. package/IMPLEMENTATION/RFC-0098/AI_BRIEF.md +0 -2
  439. package/IMPLEMENTATION/RFC-0098/FILES.md +0 -2
  440. package/IMPLEMENTATION/RFC-0098/TASKS.md +0 -4
  441. package/IMPLEMENTATION/RFC-0098/TESTS.md +0 -3
  442. package/IMPLEMENTATION/RFC-0099/ACCEPTANCE_CRITERIA.md +0 -2
  443. package/IMPLEMENTATION/RFC-0099/AI_BRIEF.md +0 -2
  444. package/IMPLEMENTATION/RFC-0099/FILES.md +0 -2
  445. package/IMPLEMENTATION/RFC-0099/TASKS.md +0 -4
  446. package/IMPLEMENTATION/RFC-0099/TESTS.md +0 -3
  447. package/IMPLEMENTATION/RFC-0100/ACCEPTANCE_CRITERIA.md +0 -2
  448. package/IMPLEMENTATION/RFC-0100/AI_BRIEF.md +0 -2
  449. package/IMPLEMENTATION/RFC-0100/FILES.md +0 -2
  450. package/IMPLEMENTATION/RFC-0100/TASKS.md +0 -4
  451. package/IMPLEMENTATION/RFC-0100/TESTS.md +0 -3
  452. package/IMPLEMENTATION/RFC-0101/ACCEPTANCE_CRITERIA.md +0 -74
  453. package/IMPLEMENTATION/RFC-0101/AI_BRIEF.md +0 -80
  454. package/IMPLEMENTATION/RFC-0101/FILES.md +0 -82
  455. package/IMPLEMENTATION/RFC-0101/TASKS.md +0 -92
  456. package/IMPLEMENTATION/RFC-0101/TESTS.md +0 -127
  457. package/IMPLEMENTATION/RFC-0102/ACCEPTANCE_CRITERIA.md +0 -33
  458. package/IMPLEMENTATION/RFC-0102/AI_BRIEF.md +0 -34
  459. package/IMPLEMENTATION/RFC-0102/FILES.md +0 -73
  460. package/IMPLEMENTATION/RFC-0102/TASKS.md +0 -75
  461. package/IMPLEMENTATION/RFC-0102/TESTS.md +0 -78
  462. package/IMPLEMENTATION/RFC-0103/ACCEPTANCE_CRITERIA.md +0 -45
  463. package/IMPLEMENTATION/RFC-0103/AI_BRIEF.md +0 -46
  464. package/IMPLEMENTATION/RFC-0103/FILES.md +0 -121
  465. package/IMPLEMENTATION/RFC-0103/TASKS.md +0 -97
  466. package/IMPLEMENTATION/RFC-0103/TESTS.md +0 -118
  467. package/IMPLEMENTATION/RFC-0104/ACCEPTANCE_CRITERIA.md +0 -29
  468. package/IMPLEMENTATION/RFC-0104/FILES.md +0 -33
  469. package/IMPLEMENTATION/RFC-0105/ACCEPTANCE_CRITERIA.md +0 -29
  470. package/IMPLEMENTATION/RFC-0105/FILES.md +0 -41
  471. package/IMPLEMENTATION/RFC-0106/ACCEPTANCE_CRITERIA.md +0 -29
  472. package/IMPLEMENTATION/RFC-0106/FILES.md +0 -43
  473. package/RFC/0001_LOOP_RUNTIME.md +0 -14
  474. package/RFC/0002_PROVIDER_ADAPTER.md +0 -3
  475. package/RFC/0003_QUOTA_MANAGER.md +0 -3
  476. package/RFC/0004_PLAYWRIGHT_ADAPTER.md +0 -3
  477. package/RFC/0005_GIT_WORKTREE.md +0 -3
  478. package/RFC/0006_CHECKPOINT_MANAGER.md +0 -56
  479. package/RFC/0007_SCHEDULER.md +0 -32
  480. package/RFC/0008_PROVIDER_ROUTER.md +0 -44
  481. package/RFC/0009_SHARED_CONTEXT.md +0 -32
  482. package/RFC/0010_CONTEXT_WINDOW_MANAGER.md +0 -50
  483. package/RFC/0011_SHARED_BLACKBOARD.md +0 -42
  484. package/RFC/0012_AGENT_HANDOFF_PROTOCOL.md +0 -41
  485. package/RFC/0013_E2E_TEST_ENGINE.md +0 -42
  486. package/RFC/0014_PROJECT_DETECTOR_AND_TEST_DATA_ENGINE.md +0 -35
  487. package/RFC/0015_JOB_STATE_MACHINE.md +0 -45
  488. package/RFC/0016_TASK_GRAPH.md +0 -31
  489. package/RFC/0017_MASTER_PLANNER.md +0 -32
  490. package/RFC/0018_REPAIR_ENGINE.md +0 -36
  491. package/RFC/0019_AUTO_COMPACT_AND_CONTINUE.md +0 -51
  492. package/RFC/0020_OUTPUT_TOKEN_LIMIT_HANDLER.md +0 -49
  493. package/RFC/0021_PARTIAL_RESPONSE_RECOVERY.md +0 -49
  494. package/RFC/0022_NOTIFICATION_CENTER.md +0 -47
  495. package/RFC/0023_LOCAL_BROWSER_AGENT.md +0 -67
  496. package/RFC/0024_LOCAL_RUNTIME_AGENT.md +0 -3
  497. package/RFC/0025_COMMAND_EXECUTOR.md +0 -3
  498. package/RFC/0026_WORKSPACE_MANAGER.md +0 -3
  499. package/RFC/0027_RUNTIME_API.md +0 -3
  500. package/RFC/0028_POLICY_ENGINE.md +0 -3
  501. package/RFC/0029_DEEPAGENTS_ADAPTER.md +0 -2
  502. package/RFC/0030_AGENT_WORKER_INTERFACE.md +0 -2
  503. package/RFC/0031_PROVIDER_ADAPTER_SDK.md +0 -171
  504. package/RFC/0032_CHECKPOINT_ENGINE.md +0 -217
  505. package/RFC/0033_SESSION_MANAGER.md +0 -262
  506. package/RFC/0034_OBSERVABILITY.md +0 -416
  507. package/RFC/0035_ROADMAP_V1.md +0 -295
  508. package/RFC/0036_CODE_REVIEW_ENGINE.md +0 -430
  509. package/RFC/0037_CODE_GENERATION_PIPELINE.md +0 -504
  510. package/RFC/0038_FRAMEWORK_DETECTOR.md +0 -466
  511. package/RFC/0039_TEST_DATA_GENERATOR.md +0 -504
  512. package/RFC/0040_FRAMEWORK_PLUGIN_SDK.md +0 -543
  513. package/RFC/0041_PROMPT_COMPILER.md +0 -232
  514. package/RFC/0042_CONTEXT_COMPILER.md +0 -216
  515. package/RFC/0043_REQUIREMENT_COMPILER.md +0 -211
  516. package/RFC/0044_TASK_COMPILER.md +0 -207
  517. package/RFC/0045_PROJECT_ANALYZER.md +0 -246
  518. package/RFC/0046_DEPENDENCY_ANALYZER.md +0 -14
  519. package/RFC/0047_REPOSITORY_KNOWLEDGE_GRAPH.md +0 -14
  520. package/RFC/0048_CODE_MERGE_ENGINE.md +0 -14
  521. package/RFC/0049_CONFLICT_RESOLUTION_ENGINE.md +0 -14
  522. package/RFC/0050_DOCUMENTATION_GENERATOR.md +0 -14
  523. package/RFC/0051_CAPABILITY_REGISTRY.md +0 -144
  524. package/RFC/0052_SKILL_REGISTRY.md +0 -167
  525. package/RFC/0053_MODEL_REGISTRY.md +0 -214
  526. package/RFC/0054_PROVIDER_ROUTER.md +0 -239
  527. package/RFC/0055_COST_OPTIMIZER.md +0 -285
  528. package/RFC/0056_PERFORMANCE_OPTIMIZER.md +0 -118
  529. package/RFC/0057_EVALUATION_ENGINE.md +0 -116
  530. package/RFC/0058_LEARNING_ENGINE.md +0 -113
  531. package/RFC/0059_EXPERIENCE_REPLAY.md +0 -107
  532. package/RFC/0060_MEMORY_ENGINE_OKF.md +0 -152
  533. package/RFC/0061_FRAPPE_PLUGIN.md +0 -9
  534. package/RFC/0062_NEXTJS_PLUGIN.md +0 -9
  535. package/RFC/0063_REACT_VITE_PLUGIN.md +0 -9
  536. package/RFC/0064_DJANGO_PLUGIN.md +0 -9
  537. package/RFC/0065_LARAVEL_PLUGIN.md +0 -9
  538. package/RFC/0066_GENERIC_WEB_PLUGIN.md +0 -24
  539. package/RFC/0067_CLI_PLUGIN_SDK.md +0 -101
  540. package/RFC/0068_MCP_ADAPTER.md +0 -114
  541. package/RFC/0069_GOOGLE_A2A_ADAPTER.md +0 -139
  542. package/RFC/0070_OPENAI_CODEX_ADAPTER.md +0 -134
  543. package/RFC/0071_REQUIREMENT_INTAKE.md +0 -95
  544. package/RFC/0072_PROJECT_BOOTSTRAP.md +0 -82
  545. package/RFC/0073_ARCHITECTURE_GENERATOR.md +0 -85
  546. package/RFC/0074_SPRINT_PLANNER.md +0 -61
  547. package/RFC/0075_MILESTONE_MANAGER.md +0 -58
  548. package/RFC/0076_BACKLOG_MANAGER.md +0 -24
  549. package/RFC/0077_HUMAN_APPROVAL_GATE.md +0 -24
  550. package/RFC/0078_RELEASE_MANAGER.md +0 -24
  551. package/RFC/0079_VERSION_MANAGER.md +0 -24
  552. package/RFC/0080_DEPLOYMENT_PIPELINE.md +0 -24
  553. package/RFC/0081_MULTI_USER_RUNTIME.md +0 -24
  554. package/RFC/0082_RBAC.md +0 -24
  555. package/RFC/0083_AUDIT_TRAIL.md +0 -24
  556. package/RFC/0084_DASHBOARD.md +0 -24
  557. package/RFC/0085_ANALYTICS.md +0 -24
  558. package/RFC/0086_DISTRIBUTED_RUNTIME.md +0 -24
  559. package/RFC/0087_CLUSTER_MANAGER.md +0 -24
  560. package/RFC/0088_RUNTIME_FEDERATION.md +0 -24
  561. package/RFC/0089_HIGH_AVAILABILITY.md +0 -24
  562. package/RFC/0090_DISASTER_RECOVERY.md +0 -24
  563. package/RFC/0091_AUTONOMOUS_ARCHITECTURE_REVIEW.md +0 -24
  564. package/RFC/0092_AUTONOMOUS_REFACTORING.md +0 -24
  565. package/RFC/0093_AUTONOMOUS_BUG_FIXING.md +0 -24
  566. package/RFC/0094_AUTONOMOUS_PERFORMANCE_TUNING.md +0 -24
  567. package/RFC/0095_AUTONOMOUS_SECURITY_REVIEW.md +0 -24
  568. package/RFC/0096_AUTONOMOUS_COST_OPTIMIZATION.md +0 -24
  569. package/RFC/0097_AUTONOMOUS_DOCUMENTATION.md +0 -24
  570. package/RFC/0098_AUTONOMOUS_KNOWLEDGE_MANAGEMENT.md +0 -24
  571. package/RFC/0099_RUNTIME_EVOLUTION_ENGINE.md +0 -24
  572. package/RFC/0100_SELF_DEVELOPING_RUNTIME.md +0 -24
  573. package/RFC/0101_AUTONOMOUS_OPERATIONS_RUNTIME.md +0 -1105
  574. package/RFC/0102_CONTEXT_ENGINEERING_PIPELINE.md +0 -508
  575. package/RFC/0103_SESSION_EVENT_RUNTIME_AGENT_COMMUNICATION_LAYER.md +0 -616
  576. package/RFC/0104_DISTRIBUTED_AGENT_COMMUNICATION.md +0 -143
  577. package/RFC/0105_DISTRIBUTED_KNOWLEDGE_RETRIEVAL.md +0 -301
  578. package/RFC/0106_KNOWLEDGE_GRAPH_PROVENANCE.md +0 -368
  579. package/RFC/README.md +0 -11
  580. package/packages/event-bus/dist/tsconfig.tsbuildinfo +0 -1
  581. package/packages/provider-adapter-sdk/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,343 @@
1
+ /**
2
+ * Evaluation Engine (RFC-0057)
3
+ *
4
+ * Determines whether an agent-produced result is acceptable before advancing.
5
+ */
6
+ import { randomUUID } from "node:crypto";
7
+ import { DEFAULT_SCORING_WEIGHTS } from "./types.js";
8
+ // --- Evidence Collection -------------------------------------------------------
9
+ function collectEvidence(outputs, testResults, policyFindings) {
10
+ const evidence = [];
11
+ // Add test results as evidence
12
+ for (const test of testResults) {
13
+ evidence.push({
14
+ kind: "test",
15
+ path: test.testFile,
16
+ description: `Test ${test.id}: ${test.status}`,
17
+ hash: test.id,
18
+ });
19
+ }
20
+ // Add output files as evidence
21
+ for (const output of outputs) {
22
+ if (output.path) {
23
+ evidence.push({
24
+ kind: "file",
25
+ path: output.path,
26
+ description: output.description,
27
+ hash: output.hash,
28
+ });
29
+ }
30
+ }
31
+ // Add policy findings as evidence
32
+ for (const finding of policyFindings) {
33
+ evidence.push({
34
+ kind: "policy",
35
+ path: finding.filePath,
36
+ description: `[${finding.severity.toUpperCase()}] ${finding.ruleId}: ${finding.message}`,
37
+ });
38
+ }
39
+ return evidence;
40
+ }
41
+ // --- Missing Output Detection --------------------------------------------------
42
+ function findMissingOutputs(requiredArtifacts, outputs) {
43
+ const findings = [];
44
+ const outputPaths = new Set(outputs.filter((o) => o.path).map((o) => o.path));
45
+ for (const required of requiredArtifacts) {
46
+ const requiredLower = required.toLowerCase();
47
+ const found = outputPaths.has(required) ||
48
+ outputs.some((o) => o.description.toLowerCase().includes(requiredLower));
49
+ if (!found) {
50
+ findings.push({
51
+ dimension: "correctness",
52
+ severity: "critical",
53
+ message: `Required artifact '${required}' is missing from outputs`,
54
+ evidence: `Required: ${required}, Available: ${[...outputPaths].join(", ") || "none"}`,
55
+ });
56
+ }
57
+ }
58
+ return findings;
59
+ }
60
+ // --- Test Analysis ------------------------------------------------------------
61
+ function analyzeTests(testResults) {
62
+ const findings = [];
63
+ let passedCount = 0;
64
+ let totalCount = 0;
65
+ let hasFailures = false;
66
+ for (const test of testResults) {
67
+ totalCount++;
68
+ if (test.status === "passed") {
69
+ passedCount++;
70
+ }
71
+ else if (test.status === "failed" || test.status === "error") {
72
+ hasFailures = true;
73
+ findings.push({
74
+ dimension: "test_completeness",
75
+ severity: "critical",
76
+ message: `Test '${test.testFile}' ${test.status}: ${test.errorMessage || "Unknown error"}`,
77
+ evidence: test.errorMessage,
78
+ });
79
+ }
80
+ }
81
+ if (testResults.length === 0) {
82
+ findings.push({
83
+ dimension: "test_completeness",
84
+ severity: "high",
85
+ message: "No test results provided",
86
+ });
87
+ }
88
+ return { findings, passedCount, totalCount, hasFailures };
89
+ }
90
+ // --- Policy Analysis ----------------------------------------------------------
91
+ function analyzePolicies(policyFindings) {
92
+ const findings = [];
93
+ const criticalFindings = [];
94
+ for (const finding of policyFindings) {
95
+ findings.push({
96
+ dimension: "policy_compliance",
97
+ severity: finding.severity,
98
+ message: `${finding.ruleId}: ${finding.message}`,
99
+ evidence: finding.filePath
100
+ ? `${finding.filePath}:${finding.line || "?"}`
101
+ : undefined,
102
+ });
103
+ if (finding.severity === "critical") {
104
+ criticalFindings.push(finding);
105
+ }
106
+ }
107
+ return { findings, criticalFindings };
108
+ }
109
+ // --- Acceptance Criteria Coverage ---------------------------------------------
110
+ function analyzeAcceptanceCoverage(acceptanceCriteria, outputs, testResults) {
111
+ const findings = [];
112
+ const coveredCriteria = [];
113
+ const unmetCriteria = [];
114
+ const outputText = outputs
115
+ .map((o) => `${o.description} ${o.path || ""}`.toLowerCase())
116
+ .join(" ");
117
+ const passingTests = testResults.filter((t) => t.status === "passed");
118
+ const passingTestText = passingTests
119
+ .map((t) => `${t.testFile} ${t.errorMessage || ""}`.toLowerCase())
120
+ .join(" ");
121
+ for (const criterion of acceptanceCriteria) {
122
+ const criterionLower = criterion.toLowerCase();
123
+ const keywords = criterionLower
124
+ .split(/[^a-z0-9]+/)
125
+ .filter((word) => word.length >= 4);
126
+ const outputKeywordMatches = keywords.filter((word) => outputText.includes(word)).length;
127
+ const coveredByOutput = keywords.length > 0 &&
128
+ outputKeywordMatches >= Math.ceil(keywords.length / 2);
129
+ const coveredByPassingTests = passingTests.length > 0 &&
130
+ (criterionLower.includes("test") ||
131
+ criterionLower.includes("pass") ||
132
+ keywords.some((word) => passingTestText.includes(word)));
133
+ if (coveredByOutput || coveredByPassingTests) {
134
+ coveredCriteria.push(criterion);
135
+ }
136
+ else {
137
+ unmetCriteria.push(criterion);
138
+ findings.push({
139
+ dimension: "acceptance_coverage",
140
+ severity: "medium",
141
+ message: `Acceptance criterion not covered: '${criterion}'`,
142
+ criterion,
143
+ });
144
+ }
145
+ }
146
+ const coverage = acceptanceCriteria.length > 0
147
+ ? (coveredCriteria.length / acceptanceCriteria.length) * 100
148
+ : 100;
149
+ return { findings, coverage, unmetCriteria };
150
+ }
151
+ // --- Scoring -----------------------------------------------------------------
152
+ function calculateScore(weights, testAnalysis, acceptanceCoverage, criticalPolicies, securityFindings, regressionFindings) {
153
+ const breakdown = {};
154
+ // Correctness (30%) - based on missing outputs
155
+ const correctnessScore = weights.correctness;
156
+ breakdown.correctness = correctnessScore;
157
+ // Test completeness (20%)
158
+ let testScore = 0;
159
+ if (testAnalysis.totalCount > 0) {
160
+ testScore =
161
+ (testAnalysis.passedCount / testAnalysis.totalCount) * weights.test;
162
+ }
163
+ breakdown.tests = testScore;
164
+ // Acceptance coverage (20%)
165
+ const acceptanceScore = (acceptanceCoverage / 100) * weights.acceptance;
166
+ breakdown.acceptance = acceptanceScore;
167
+ // Code quality (15%) - assume passed if no major findings
168
+ const qualityScore = weights.quality;
169
+ breakdown.quality = qualityScore;
170
+ // Policy penalty (deducted)
171
+ let policyPenalty = 0;
172
+ for (const _ of criticalPolicies) {
173
+ policyPenalty += weights.policyPenalty;
174
+ }
175
+ breakdown.policyPenalty = -policyPenalty;
176
+ // Security penalty (deducted)
177
+ const securityPenalty = securityFindings.length * weights.securityPenalty;
178
+ breakdown.securityPenalty = -securityPenalty;
179
+ // Regression penalty (deducted)
180
+ const regressionPenalty = regressionFindings.length * weights.regressionPenalty;
181
+ breakdown.regressionPenalty = -regressionPenalty;
182
+ const totalScore = Math.max(0, Math.min(100, correctnessScore +
183
+ testScore +
184
+ acceptanceScore +
185
+ qualityScore -
186
+ policyPenalty -
187
+ securityPenalty -
188
+ regressionPenalty));
189
+ return { score: Math.round(totalScore), breakdown };
190
+ }
191
+ // --- Failure Classification ---------------------------------------------------
192
+ function classifyFailure(findings) {
193
+ const classes = [];
194
+ for (const finding of findings) {
195
+ if (finding.dimension === "test_completeness" &&
196
+ finding.severity === "critical") {
197
+ if (!classes.includes("test_failure"))
198
+ classes.push("test_failure");
199
+ }
200
+ if (finding.dimension === "correctness" && finding.severity === "high") {
201
+ if (!classes.includes("missing_output"))
202
+ classes.push("missing_output");
203
+ }
204
+ if (finding.dimension === "acceptance_coverage" &&
205
+ finding.severity === "medium") {
206
+ if (!classes.includes("acceptance_gap"))
207
+ classes.push("acceptance_gap");
208
+ }
209
+ if (finding.dimension === "policy_compliance") {
210
+ if (finding.severity === "critical") {
211
+ if (!classes.includes("policy_violation"))
212
+ classes.push("policy_violation");
213
+ }
214
+ }
215
+ if (finding.dimension === "security_risk") {
216
+ if (!classes.includes("security_issue"))
217
+ classes.push("security_issue");
218
+ }
219
+ if (finding.dimension === "regression_risk") {
220
+ if (!classes.includes("regression_risk"))
221
+ classes.push("regression_risk");
222
+ }
223
+ }
224
+ if (classes.length === 0 && findings.length > 0) {
225
+ classes.push("insufficient_evidence");
226
+ }
227
+ return classes;
228
+ }
229
+ // --- Main Engine ---------------------------------------------------------------
230
+ export class EvaluationEngine {
231
+ weights;
232
+ state = "pending";
233
+ constructor(weights) {
234
+ this.weights = { ...DEFAULT_SCORING_WEIGHTS, ...weights };
235
+ }
236
+ /**
237
+ * Evaluate a task against its acceptance criteria
238
+ */
239
+ evaluate(request) {
240
+ this.state = "collecting_evidence";
241
+ const { jobId, task, outputs, testResults, policyFindings } = request;
242
+ const allFindings = [];
243
+ this.state = "evaluating";
244
+ // 1. Check for missing required outputs
245
+ const missingOutputs = findMissingOutputs(task.requiredArtifacts, outputs);
246
+ allFindings.push(...missingOutputs);
247
+ // 2. Analyze tests
248
+ const testAnalysis = analyzeTests(testResults);
249
+ allFindings.push(...testAnalysis.findings);
250
+ // 3. Analyze policies
251
+ const policyAnalysis = analyzePolicies(policyFindings);
252
+ allFindings.push(...policyAnalysis.findings);
253
+ // 4. Check acceptance criteria coverage
254
+ const acceptanceAnalysis = analyzeAcceptanceCoverage(task.acceptanceCriteria, outputs, testResults);
255
+ allFindings.push(...acceptanceAnalysis.findings);
256
+ // 5. Check for security issues
257
+ const securityFindings = allFindings.filter((f) => f.dimension === "security_risk");
258
+ // 6. Check for regression risks
259
+ const regressionFindings = allFindings.filter((f) => f.dimension === "regression_risk");
260
+ // 7. Calculate score
261
+ const { score, breakdown: _breakdown } = calculateScore(this.weights, testAnalysis, acceptanceAnalysis.coverage, policyAnalysis.criticalFindings, securityFindings, regressionFindings);
262
+ // 8. Collect evidence
263
+ const evidence = collectEvidence(outputs, testResults, policyFindings);
264
+ // 9. Determine status and recommended action
265
+ let status;
266
+ let recommendedAction;
267
+ // Critical policy violations force failure
268
+ if (policyAnalysis.criticalFindings.length > 0) {
269
+ status = "failed";
270
+ recommendedAction = "repair";
271
+ this.state = "failed";
272
+ }
273
+ // Test failures force failure
274
+ else if (testAnalysis.hasFailures) {
275
+ status = "failed";
276
+ recommendedAction = "repair";
277
+ this.state = "failed";
278
+ }
279
+ // Missing critical outputs
280
+ else if (missingOutputs.some((f) => f.severity === "critical")) {
281
+ status = "failed";
282
+ recommendedAction = "repair";
283
+ this.state = "failed";
284
+ }
285
+ // Low score with significant gaps
286
+ else if (score < 50) {
287
+ status = "failed";
288
+ recommendedAction = "repair";
289
+ this.state = "failed";
290
+ }
291
+ // Ambiguous criteria coverage
292
+ else if (acceptanceAnalysis.coverage < 80 &&
293
+ acceptanceAnalysis.unmetCriteria.length > 0) {
294
+ status = "needs_review";
295
+ recommendedAction = "human_review";
296
+ this.state = "needs_review";
297
+ }
298
+ // Good score
299
+ else {
300
+ status = "passed";
301
+ recommendedAction = "continue";
302
+ this.state = "passed";
303
+ }
304
+ // 10. Classify failure
305
+ const failureClasses = classifyFailure(allFindings);
306
+ // Add failure classification as a finding if failed
307
+ if (status === "failed" && failureClasses.length > 0) {
308
+ allFindings.push({
309
+ dimension: "correctness",
310
+ severity: "critical",
311
+ message: `Evaluation failed due to: ${failureClasses.join(", ")}`,
312
+ evidence: failureClasses.join(", "),
313
+ });
314
+ }
315
+ return {
316
+ status,
317
+ score,
318
+ findings: allFindings,
319
+ evidence,
320
+ recommendedAction,
321
+ evaluationId: randomUUID(),
322
+ jobId,
323
+ taskId: task.id,
324
+ evaluatedAt: new Date().toISOString(),
325
+ };
326
+ }
327
+ /**
328
+ * Get current evaluation state
329
+ */
330
+ getState() {
331
+ return this.state;
332
+ }
333
+ /**
334
+ * Reset engine state
335
+ */
336
+ reset() {
337
+ this.state = "pending";
338
+ }
339
+ }
340
+ // --- Factory -----------------------------------------------------------------
341
+ export function createEvaluationEngine(weights) {
342
+ return new EvaluationEngine(weights);
343
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Evaluation Engine (RFC-0057)
3
+ *
4
+ * Re-exports all public types and classes.
5
+ */
6
+ export { EvaluationEngine, createEvaluationEngine } from "./engine.js";
7
+ export { DEFAULT_SCORING_WEIGHTS } from "./types.js";
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Evaluation Engine Types (RFC-0057)
3
+ *
4
+ * Interfaces for task evaluation and acceptance criteria checking.
5
+ */
6
+ export const DEFAULT_SCORING_WEIGHTS = {
7
+ correctness: 30,
8
+ test: 20,
9
+ acceptance: 20,
10
+ quality: 15,
11
+ policyPenalty: 20,
12
+ securityPenalty: 30,
13
+ regressionPenalty: 15,
14
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Event Store — Types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Experience Replay (RFC-0059)
3
+ *
4
+ * Re-exports all public types and classes.
5
+ */
6
+ export { ExperienceReplay, createExperienceReplay } from "./replay.js";
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Experience Replay (RFC-0059)
3
+ *
4
+ * Reconstructs prior runtime execution from persisted events and checkpoints.
5
+ */
6
+ // --- Event Timeline Reconstruction -------------------------------------------
7
+ function reconstructTimeline(events, startSequence = 0) {
8
+ return events.map((event, index) => ({
9
+ sequence: startSequence + index,
10
+ timestamp: event.ts,
11
+ type: event.type,
12
+ data: event.data || {},
13
+ }));
14
+ }
15
+ // --- State Reconstruction -----------------------------------------------------
16
+ function reconstructState(jobId, checkpoint, events, taskGraph) {
17
+ // Apply events to checkpoint to get final state
18
+ let currentTaskId = checkpoint?.currentTaskId;
19
+ let status = checkpoint?.status || "unknown";
20
+ // Process events to find latest state
21
+ for (const event of events) {
22
+ if (event.type === "task.started" && event.data?.taskId) {
23
+ currentTaskId = event.data.taskId;
24
+ }
25
+ if (event.type === "job.status") {
26
+ status = event.data?.status || status;
27
+ }
28
+ }
29
+ return {
30
+ jobId,
31
+ status,
32
+ currentTaskId,
33
+ checkpoint: checkpoint || {
34
+ version: 0,
35
+ jobId,
36
+ status: "unknown",
37
+ requirement: "",
38
+ createdAt: new Date().toISOString(),
39
+ updatedAt: new Date().toISOString(),
40
+ },
41
+ taskGraph: taskGraph || { nodes: [], edges: [] },
42
+ events,
43
+ timestamp: new Date().toISOString(),
44
+ };
45
+ }
46
+ // --- Divergence Detection ----------------------------------------------------
47
+ // --- Source Validation --------------------------------------------------------
48
+ function validateSources(sources) {
49
+ const missing = [];
50
+ if (!sources.checkpoint && !sources.events) {
51
+ missing.push("checkpoint or events");
52
+ }
53
+ return { valid: missing.length === 0, missing };
54
+ }
55
+ // --- Mode Handlers ------------------------------------------------------------
56
+ async function handleInspect(sources, jobId, fromSequence, toSequence) {
57
+ const events = sources.events || [];
58
+ const filteredEvents = fromSequence !== undefined || toSequence !== undefined
59
+ ? events.slice(fromSequence, toSequence)
60
+ : events;
61
+ const timeline = reconstructTimeline(filteredEvents, fromSequence ?? 0);
62
+ const state = reconstructState(jobId, sources.checkpoint, filteredEvents, sources.taskGraph);
63
+ return { state, timeline };
64
+ }
65
+ async function handleSimulate(sources, jobId, fromSequence, toSequence) {
66
+ const events = sources.events || [];
67
+ const filteredEvents = fromSequence !== undefined || toSequence !== undefined
68
+ ? events.slice(fromSequence, toSequence)
69
+ : events;
70
+ const timeline = reconstructTimeline(filteredEvents, fromSequence ?? 0);
71
+ const state = reconstructState(jobId, sources.checkpoint, filteredEvents, sources.taskGraph);
72
+ // Check for divergent events
73
+ const divergences = [];
74
+ for (let i = 0; i < timeline.length; i++) {
75
+ const event = timeline[i];
76
+ if (event.type.includes("error") || event.type.includes("failure")) {
77
+ divergences.push({
78
+ sequence: event.sequence,
79
+ reason: "Provider output differs",
80
+ severity: "warning",
81
+ });
82
+ }
83
+ }
84
+ return { state, timeline, divergences };
85
+ }
86
+ async function handleReexecute(sources, jobId, allowExternalCalls) {
87
+ // Reexecute requires explicit approval and valid sources
88
+ const validation = validateSources(sources);
89
+ if (!validation.valid) {
90
+ throw new Error(`Missing required sources: ${validation.missing.join(", ")}`);
91
+ }
92
+ if (!allowExternalCalls) {
93
+ throw new Error("Reexecution with external calls requires explicit approval");
94
+ }
95
+ // For reexecution, we simulate first then mark for actual reexecution
96
+ const result = await handleSimulate(sources, jobId);
97
+ // Add informational divergence for reexecution mode
98
+ result.divergences.push({
99
+ sequence: 0,
100
+ reason: "Runtime version differs",
101
+ severity: "info",
102
+ });
103
+ return result;
104
+ }
105
+ // --- Main Engine ---------------------------------------------------------------
106
+ export class ExperienceReplay {
107
+ eventListeners = [];
108
+ /**
109
+ * Replay a prior job execution
110
+ */
111
+ async replay(request, sources) {
112
+ const { jobId, mode } = request;
113
+ // Emit start event
114
+ this.emit({ type: "replay.started", jobId, mode });
115
+ // Validate sources
116
+ const validation = validateSources(sources);
117
+ if (!validation.valid) {
118
+ return {
119
+ jobId,
120
+ reconstructedState: {
121
+ jobId,
122
+ status: "error",
123
+ checkpoint: sources.checkpoint || {},
124
+ taskGraph: sources.taskGraph || { nodes: [], edges: [] },
125
+ events: [],
126
+ timestamp: new Date().toISOString(),
127
+ },
128
+ timeline: [],
129
+ divergences: [
130
+ {
131
+ sequence: 0,
132
+ reason: `Missing sources: ${validation.missing.join(", ")}`,
133
+ severity: "error",
134
+ },
135
+ ],
136
+ artifacts: [],
137
+ replayedAt: new Date().toISOString(),
138
+ };
139
+ }
140
+ try {
141
+ let result;
142
+ switch (mode) {
143
+ case "inspect":
144
+ result = await handleInspect(sources, jobId, request.fromSequence, request.toSequence);
145
+ break;
146
+ case "simulate":
147
+ result = await handleSimulate(sources, jobId, request.fromSequence, request.toSequence);
148
+ break;
149
+ case "reexecute":
150
+ result = await handleReexecute(sources, jobId, request.allowExternalCalls);
151
+ break;
152
+ }
153
+ // Emit divergence events
154
+ if (result.divergences) {
155
+ for (const div of result.divergences) {
156
+ this.emit({
157
+ type: "replay.divergence.detected",
158
+ jobId,
159
+ reason: div.reason,
160
+ });
161
+ }
162
+ }
163
+ // Collect artifacts
164
+ const artifacts = [];
165
+ if (sources.prompts)
166
+ artifacts.push(...Object.keys(sources.prompts));
167
+ if (sources.outputs)
168
+ artifacts.push(...Object.keys(sources.outputs));
169
+ // Emit completion event
170
+ this.emit({ type: "replay.completed", jobId });
171
+ return {
172
+ jobId,
173
+ reconstructedState: result.state,
174
+ timeline: result.timeline,
175
+ divergences: result.divergences || [],
176
+ artifacts,
177
+ replayedAt: new Date().toISOString(),
178
+ };
179
+ }
180
+ catch (error) {
181
+ const errorMessage = error instanceof Error ? error.message : String(error);
182
+ return {
183
+ jobId,
184
+ reconstructedState: {
185
+ jobId,
186
+ status: "error",
187
+ checkpoint: sources.checkpoint || {},
188
+ taskGraph: sources.taskGraph || { nodes: [], edges: [] },
189
+ events: [],
190
+ timestamp: new Date().toISOString(),
191
+ },
192
+ timeline: [],
193
+ divergences: [
194
+ {
195
+ sequence: 0,
196
+ reason: errorMessage,
197
+ severity: "error",
198
+ },
199
+ ],
200
+ artifacts: [],
201
+ replayedAt: new Date().toISOString(),
202
+ };
203
+ }
204
+ }
205
+ /**
206
+ * Subscribe to replay events
207
+ */
208
+ onEvent(listener) {
209
+ this.eventListeners.push(listener);
210
+ return () => {
211
+ this.eventListeners = this.eventListeners.filter((l) => l !== listener);
212
+ };
213
+ }
214
+ emit(event) {
215
+ for (const listener of this.eventListeners) {
216
+ try {
217
+ listener(event);
218
+ }
219
+ catch {
220
+ // Best effort
221
+ }
222
+ }
223
+ }
224
+ }
225
+ // --- Factory -----------------------------------------------------------------
226
+ export function createExperienceReplay() {
227
+ return new ExperienceReplay();
228
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Experience Replay Types (RFC-0059)
3
+ *
4
+ * Interfaces for replaying prior runtime execution.
5
+ */
6
+ export {};