@methodts/runtime 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (537) hide show
  1. package/dist/__fixtures__/executor-fixtures.d.ts +10 -0
  2. package/dist/__fixtures__/executor-fixtures.d.ts.map +1 -0
  3. package/dist/__fixtures__/executor-fixtures.js +36 -0
  4. package/dist/__fixtures__/executor-fixtures.js.map +1 -0
  5. package/dist/architecture.test.d.ts +2 -0
  6. package/dist/architecture.test.d.ts.map +1 -0
  7. package/dist/architecture.test.js +143 -0
  8. package/dist/architecture.test.js.map +1 -0
  9. package/dist/config/cost-governor-config.d.ts +40 -0
  10. package/dist/config/cost-governor-config.d.ts.map +1 -0
  11. package/dist/config/cost-governor-config.js +48 -0
  12. package/dist/config/cost-governor-config.js.map +1 -0
  13. package/dist/config/index.d.ts +7 -0
  14. package/dist/config/index.d.ts.map +1 -0
  15. package/dist/config/index.js +6 -0
  16. package/dist/config/index.js.map +1 -0
  17. package/dist/config/sessions-config.d.ts +29 -0
  18. package/dist/config/sessions-config.d.ts.map +1 -0
  19. package/dist/config/sessions-config.js +37 -0
  20. package/dist/config/sessions-config.js.map +1 -0
  21. package/dist/config/strategies-config.d.ts +38 -0
  22. package/dist/config/strategies-config.d.ts.map +1 -0
  23. package/dist/config/strategies-config.js +41 -0
  24. package/dist/config/strategies-config.js.map +1 -0
  25. package/dist/cost-governor/backpressure-queue.d.ts +20 -0
  26. package/dist/cost-governor/backpressure-queue.d.ts.map +1 -0
  27. package/dist/cost-governor/backpressure-queue.js +78 -0
  28. package/dist/cost-governor/backpressure-queue.js.map +1 -0
  29. package/dist/cost-governor/backpressure-queue.test.d.ts +2 -0
  30. package/dist/cost-governor/backpressure-queue.test.d.ts.map +1 -0
  31. package/dist/cost-governor/backpressure-queue.test.js +48 -0
  32. package/dist/cost-governor/backpressure-queue.test.js.map +1 -0
  33. package/dist/cost-governor/cost-events.d.ts +65 -0
  34. package/dist/cost-governor/cost-events.d.ts.map +1 -0
  35. package/dist/cost-governor/cost-events.js +48 -0
  36. package/dist/cost-governor/cost-events.js.map +1 -0
  37. package/dist/cost-governor/cost-governor-app-id.test.d.ts +19 -0
  38. package/dist/cost-governor/cost-governor-app-id.test.d.ts.map +1 -0
  39. package/dist/cost-governor/cost-governor-app-id.test.js +201 -0
  40. package/dist/cost-governor/cost-governor-app-id.test.js.map +1 -0
  41. package/dist/cost-governor/cost-oracle-impl.d.ts +19 -0
  42. package/dist/cost-governor/cost-oracle-impl.d.ts.map +1 -0
  43. package/dist/cost-governor/cost-oracle-impl.js +52 -0
  44. package/dist/cost-governor/cost-oracle-impl.js.map +1 -0
  45. package/dist/cost-governor/estimator.d.ts +22 -0
  46. package/dist/cost-governor/estimator.d.ts.map +1 -0
  47. package/dist/cost-governor/estimator.js +119 -0
  48. package/dist/cost-governor/estimator.js.map +1 -0
  49. package/dist/cost-governor/estimator.test.d.ts +2 -0
  50. package/dist/cost-governor/estimator.test.d.ts.map +1 -0
  51. package/dist/cost-governor/estimator.test.js +141 -0
  52. package/dist/cost-governor/estimator.test.js.map +1 -0
  53. package/dist/cost-governor/index.d.ts +75 -0
  54. package/dist/cost-governor/index.d.ts.map +1 -0
  55. package/dist/cost-governor/index.js +120 -0
  56. package/dist/cost-governor/index.js.map +1 -0
  57. package/dist/cost-governor/observations-store.d.ts +49 -0
  58. package/dist/cost-governor/observations-store.d.ts.map +1 -0
  59. package/dist/cost-governor/observations-store.js +179 -0
  60. package/dist/cost-governor/observations-store.js.map +1 -0
  61. package/dist/cost-governor/observations-store.test.d.ts +2 -0
  62. package/dist/cost-governor/observations-store.test.d.ts.map +1 -0
  63. package/dist/cost-governor/observations-store.test.js +191 -0
  64. package/dist/cost-governor/observations-store.test.js.map +1 -0
  65. package/dist/cost-governor/percentile.d.ts +17 -0
  66. package/dist/cost-governor/percentile.d.ts.map +1 -0
  67. package/dist/cost-governor/percentile.js +33 -0
  68. package/dist/cost-governor/percentile.js.map +1 -0
  69. package/dist/cost-governor/percentile.test.d.ts +2 -0
  70. package/dist/cost-governor/percentile.test.d.ts.map +1 -0
  71. package/dist/cost-governor/percentile.test.js +46 -0
  72. package/dist/cost-governor/percentile.test.js.map +1 -0
  73. package/dist/cost-governor/rate-governor-impl.d.ts +73 -0
  74. package/dist/cost-governor/rate-governor-impl.d.ts.map +1 -0
  75. package/dist/cost-governor/rate-governor-impl.js +148 -0
  76. package/dist/cost-governor/rate-governor-impl.js.map +1 -0
  77. package/dist/cost-governor/signature-builder.d.ts +22 -0
  78. package/dist/cost-governor/signature-builder.d.ts.map +1 -0
  79. package/dist/cost-governor/signature-builder.js +43 -0
  80. package/dist/cost-governor/signature-builder.js.map +1 -0
  81. package/dist/cost-governor/signature-builder.test.d.ts +2 -0
  82. package/dist/cost-governor/signature-builder.test.d.ts.map +1 -0
  83. package/dist/cost-governor/signature-builder.test.js +58 -0
  84. package/dist/cost-governor/signature-builder.test.js.map +1 -0
  85. package/dist/cost-governor/token-bucket.d.ts +57 -0
  86. package/dist/cost-governor/token-bucket.d.ts.map +1 -0
  87. package/dist/cost-governor/token-bucket.js +109 -0
  88. package/dist/cost-governor/token-bucket.js.map +1 -0
  89. package/dist/cost-governor/token-bucket.test.d.ts +2 -0
  90. package/dist/cost-governor/token-bucket.test.d.ts.map +1 -0
  91. package/dist/cost-governor/token-bucket.test.js +67 -0
  92. package/dist/cost-governor/token-bucket.test.js.map +1 -0
  93. package/dist/dlq/cortex-dlq-observer.d.ts +22 -0
  94. package/dist/dlq/cortex-dlq-observer.d.ts.map +1 -0
  95. package/dist/dlq/cortex-dlq-observer.js +29 -0
  96. package/dist/dlq/cortex-dlq-observer.js.map +1 -0
  97. package/dist/dlq/dlq-observer.test.d.ts +8 -0
  98. package/dist/dlq/dlq-observer.test.d.ts.map +1 -0
  99. package/dist/dlq/dlq-observer.test.js +103 -0
  100. package/dist/dlq/dlq-observer.test.js.map +1 -0
  101. package/dist/dlq/index.d.ts +6 -0
  102. package/dist/dlq/index.d.ts.map +1 -0
  103. package/dist/dlq/index.js +6 -0
  104. package/dist/dlq/index.js.map +1 -0
  105. package/dist/event-bus/adapters.d.ts +50 -0
  106. package/dist/event-bus/adapters.d.ts.map +1 -0
  107. package/dist/event-bus/adapters.js +51 -0
  108. package/dist/event-bus/adapters.js.map +1 -0
  109. package/dist/event-bus/adapters.test.d.ts +5 -0
  110. package/dist/event-bus/adapters.test.d.ts.map +1 -0
  111. package/dist/event-bus/adapters.test.js +73 -0
  112. package/dist/event-bus/adapters.test.js.map +1 -0
  113. package/dist/event-bus/agent-event-adapter.d.ts +22 -0
  114. package/dist/event-bus/agent-event-adapter.d.ts.map +1 -0
  115. package/dist/event-bus/agent-event-adapter.js +49 -0
  116. package/dist/event-bus/agent-event-adapter.js.map +1 -0
  117. package/dist/event-bus/agent-event-adapter.test.d.ts +5 -0
  118. package/dist/event-bus/agent-event-adapter.test.d.ts.map +1 -0
  119. package/dist/event-bus/agent-event-adapter.test.js +170 -0
  120. package/dist/event-bus/agent-event-adapter.test.js.map +1 -0
  121. package/dist/event-bus/channel-sink.d.ts +71 -0
  122. package/dist/event-bus/channel-sink.d.ts.map +1 -0
  123. package/dist/event-bus/channel-sink.js +159 -0
  124. package/dist/event-bus/channel-sink.js.map +1 -0
  125. package/dist/event-bus/channel-sink.test.d.ts +5 -0
  126. package/dist/event-bus/channel-sink.test.d.ts.map +1 -0
  127. package/dist/event-bus/channel-sink.test.js +234 -0
  128. package/dist/event-bus/channel-sink.test.js.map +1 -0
  129. package/dist/event-bus/event-types.snapshot.test.d.ts +27 -0
  130. package/dist/event-bus/event-types.snapshot.test.d.ts.map +1 -0
  131. package/dist/event-bus/event-types.snapshot.test.js +165 -0
  132. package/dist/event-bus/event-types.snapshot.test.js.map +1 -0
  133. package/dist/event-bus/genesis-sink.d.ts +55 -0
  134. package/dist/event-bus/genesis-sink.d.ts.map +1 -0
  135. package/dist/event-bus/genesis-sink.js +141 -0
  136. package/dist/event-bus/genesis-sink.js.map +1 -0
  137. package/dist/event-bus/genesis-sink.test.d.ts +5 -0
  138. package/dist/event-bus/genesis-sink.test.d.ts.map +1 -0
  139. package/dist/event-bus/genesis-sink.test.js +160 -0
  140. package/dist/event-bus/genesis-sink.test.js.map +1 -0
  141. package/dist/event-bus/in-memory-event-bus.d.ts +60 -0
  142. package/dist/event-bus/in-memory-event-bus.d.ts.map +1 -0
  143. package/dist/event-bus/in-memory-event-bus.js +274 -0
  144. package/dist/event-bus/in-memory-event-bus.js.map +1 -0
  145. package/dist/event-bus/in-memory-event-bus.test.d.ts +5 -0
  146. package/dist/event-bus/in-memory-event-bus.test.d.ts.map +1 -0
  147. package/dist/event-bus/in-memory-event-bus.test.js +457 -0
  148. package/dist/event-bus/in-memory-event-bus.test.js.map +1 -0
  149. package/dist/event-bus/index.d.ts +22 -0
  150. package/dist/event-bus/index.d.ts.map +1 -0
  151. package/dist/event-bus/index.js +17 -0
  152. package/dist/event-bus/index.js.map +1 -0
  153. package/dist/event-bus/persistence-sink.d.ts +74 -0
  154. package/dist/event-bus/persistence-sink.d.ts.map +1 -0
  155. package/dist/event-bus/persistence-sink.js +193 -0
  156. package/dist/event-bus/persistence-sink.js.map +1 -0
  157. package/dist/event-bus/persistence-sink.test.d.ts +6 -0
  158. package/dist/event-bus/persistence-sink.test.d.ts.map +1 -0
  159. package/dist/event-bus/persistence-sink.test.js +319 -0
  160. package/dist/event-bus/persistence-sink.test.js.map +1 -0
  161. package/dist/event-bus/session-checkpoint-sink.d.ts +91 -0
  162. package/dist/event-bus/session-checkpoint-sink.d.ts.map +1 -0
  163. package/dist/event-bus/session-checkpoint-sink.js +107 -0
  164. package/dist/event-bus/session-checkpoint-sink.js.map +1 -0
  165. package/dist/event-bus/session-checkpoint-sink.test.d.ts +5 -0
  166. package/dist/event-bus/session-checkpoint-sink.test.d.ts.map +1 -0
  167. package/dist/event-bus/session-checkpoint-sink.test.js +215 -0
  168. package/dist/event-bus/session-checkpoint-sink.test.js.map +1 -0
  169. package/dist/event-bus/webhook-connector.d.ts +59 -0
  170. package/dist/event-bus/webhook-connector.d.ts.map +1 -0
  171. package/dist/event-bus/webhook-connector.js +191 -0
  172. package/dist/event-bus/webhook-connector.js.map +1 -0
  173. package/dist/event-bus/webhook-connector.test.d.ts +5 -0
  174. package/dist/event-bus/webhook-connector.test.d.ts.map +1 -0
  175. package/dist/event-bus/webhook-connector.test.js +214 -0
  176. package/dist/event-bus/webhook-connector.test.js.map +1 -0
  177. package/dist/executors/cortex-job-backed-executor.d.ts +137 -0
  178. package/dist/executors/cortex-job-backed-executor.d.ts.map +1 -0
  179. package/dist/executors/cortex-job-backed-executor.js +441 -0
  180. package/dist/executors/cortex-job-backed-executor.js.map +1 -0
  181. package/dist/executors/cortex-job-backed-executor.test.d.ts +13 -0
  182. package/dist/executors/cortex-job-backed-executor.test.d.ts.map +1 -0
  183. package/dist/executors/cortex-job-backed-executor.test.js +303 -0
  184. package/dist/executors/cortex-job-backed-executor.test.js.map +1 -0
  185. package/dist/executors/index.d.ts +9 -0
  186. package/dist/executors/index.d.ts.map +1 -0
  187. package/dist/executors/index.js +9 -0
  188. package/dist/executors/index.js.map +1 -0
  189. package/dist/index.d.ts +2 -0
  190. package/dist/index.d.ts.map +1 -0
  191. package/dist/index.js +13 -0
  192. package/dist/index.js.map +1 -0
  193. package/dist/ports/checkpoint-sink.d.ts +69 -0
  194. package/dist/ports/checkpoint-sink.d.ts.map +1 -0
  195. package/dist/ports/checkpoint-sink.js +16 -0
  196. package/dist/ports/checkpoint-sink.js.map +1 -0
  197. package/dist/ports/checkpoint.d.ts +68 -0
  198. package/dist/ports/checkpoint.d.ts.map +1 -0
  199. package/dist/ports/checkpoint.js +14 -0
  200. package/dist/ports/checkpoint.js.map +1 -0
  201. package/dist/ports/continuation-envelope-cross-app.test.d.ts +10 -0
  202. package/dist/ports/continuation-envelope-cross-app.test.d.ts.map +1 -0
  203. package/dist/ports/continuation-envelope-cross-app.test.js +95 -0
  204. package/dist/ports/continuation-envelope-cross-app.test.js.map +1 -0
  205. package/dist/ports/continuation-envelope.d.ts +199 -0
  206. package/dist/ports/continuation-envelope.d.ts.map +1 -0
  207. package/dist/ports/continuation-envelope.js +69 -0
  208. package/dist/ports/continuation-envelope.js.map +1 -0
  209. package/dist/ports/conversation.d.ts +64 -0
  210. package/dist/ports/conversation.d.ts.map +1 -0
  211. package/dist/ports/conversation.js +19 -0
  212. package/dist/ports/conversation.js.map +1 -0
  213. package/dist/ports/cost-oracle.d.ts +26 -0
  214. package/dist/ports/cost-oracle.d.ts.map +1 -0
  215. package/dist/ports/cost-oracle.js +9 -0
  216. package/dist/ports/cost-oracle.js.map +1 -0
  217. package/dist/ports/cross-app-invoker.d.ts +198 -0
  218. package/dist/ports/cross-app-invoker.d.ts.map +1 -0
  219. package/dist/ports/cross-app-invoker.js +157 -0
  220. package/dist/ports/cross-app-invoker.js.map +1 -0
  221. package/dist/ports/dlq-observer.d.ts +40 -0
  222. package/dist/ports/dlq-observer.d.ts.map +1 -0
  223. package/dist/ports/dlq-observer.js +20 -0
  224. package/dist/ports/dlq-observer.js.map +1 -0
  225. package/dist/ports/event-bus.d.ts +169 -0
  226. package/dist/ports/event-bus.d.ts.map +1 -0
  227. package/dist/ports/event-bus.js +20 -0
  228. package/dist/ports/event-bus.js.map +1 -0
  229. package/dist/ports/event-reader.d.ts +21 -0
  230. package/dist/ports/event-reader.d.ts.map +1 -0
  231. package/dist/ports/event-reader.js +12 -0
  232. package/dist/ports/event-reader.js.map +1 -0
  233. package/dist/ports/event-rotator.d.ts +39 -0
  234. package/dist/ports/event-rotator.d.ts.map +1 -0
  235. package/dist/ports/event-rotator.js +15 -0
  236. package/dist/ports/event-rotator.js.map +1 -0
  237. package/dist/ports/file-system.d.ts +48 -0
  238. package/dist/ports/file-system.d.ts.map +1 -0
  239. package/dist/ports/file-system.js +10 -0
  240. package/dist/ports/file-system.js.map +1 -0
  241. package/dist/ports/historical-observations.d.ts +39 -0
  242. package/dist/ports/historical-observations.d.ts.map +1 -0
  243. package/dist/ports/historical-observations.js +12 -0
  244. package/dist/ports/historical-observations.js.map +1 -0
  245. package/dist/ports/in-memory-source.d.ts +46 -0
  246. package/dist/ports/in-memory-source.d.ts.map +1 -0
  247. package/dist/ports/in-memory-source.js +69 -0
  248. package/dist/ports/in-memory-source.js.map +1 -0
  249. package/dist/ports/index.d.ts +32 -0
  250. package/dist/ports/index.d.ts.map +1 -0
  251. package/dist/ports/index.js +10 -0
  252. package/dist/ports/index.js.map +1 -0
  253. package/dist/ports/job-backed-executor.d.ts +139 -0
  254. package/dist/ports/job-backed-executor.d.ts.map +1 -0
  255. package/dist/ports/job-backed-executor.js +56 -0
  256. package/dist/ports/job-backed-executor.js.map +1 -0
  257. package/dist/ports/methodology-source.d.ts +95 -0
  258. package/dist/ports/methodology-source.d.ts.map +1 -0
  259. package/dist/ports/methodology-source.js +26 -0
  260. package/dist/ports/methodology-source.js.map +1 -0
  261. package/dist/ports/native-session-discovery.d.ts +20 -0
  262. package/dist/ports/native-session-discovery.d.ts.map +1 -0
  263. package/dist/ports/native-session-discovery.js +13 -0
  264. package/dist/ports/native-session-discovery.js.map +1 -0
  265. package/dist/ports/projection-store.d.ts +48 -0
  266. package/dist/ports/projection-store.d.ts.map +1 -0
  267. package/dist/ports/projection-store.js +17 -0
  268. package/dist/ports/projection-store.js.map +1 -0
  269. package/dist/ports/projection.d.ts +29 -0
  270. package/dist/ports/projection.d.ts.map +1 -0
  271. package/dist/ports/projection.js +13 -0
  272. package/dist/ports/projection.js.map +1 -0
  273. package/dist/ports/rate-governor.d.ts +17 -0
  274. package/dist/ports/rate-governor.d.ts.map +1 -0
  275. package/dist/ports/rate-governor.js +11 -0
  276. package/dist/ports/rate-governor.js.map +1 -0
  277. package/dist/ports/schedule-client.d.ts +29 -0
  278. package/dist/ports/schedule-client.d.ts.map +1 -0
  279. package/dist/ports/schedule-client.js +2 -0
  280. package/dist/ports/schedule-client.js.map +1 -0
  281. package/dist/ports/session-pool.d.ts +162 -0
  282. package/dist/ports/session-pool.d.ts.map +1 -0
  283. package/dist/ports/session-pool.js +21 -0
  284. package/dist/ports/session-pool.js.map +1 -0
  285. package/dist/ports/session-store-errors.d.ts +22 -0
  286. package/dist/ports/session-store-errors.d.ts.map +1 -0
  287. package/dist/ports/session-store-errors.js +29 -0
  288. package/dist/ports/session-store-errors.js.map +1 -0
  289. package/dist/ports/session-store-types.d.ts +132 -0
  290. package/dist/ports/session-store-types.d.ts.map +1 -0
  291. package/dist/ports/session-store-types.js +14 -0
  292. package/dist/ports/session-store-types.js.map +1 -0
  293. package/dist/ports/session-store.d.ts +69 -0
  294. package/dist/ports/session-store.d.ts.map +1 -0
  295. package/dist/ports/session-store.js +23 -0
  296. package/dist/ports/session-store.js.map +1 -0
  297. package/dist/ports/yaml-loader.d.ts +15 -0
  298. package/dist/ports/yaml-loader.d.ts.map +1 -0
  299. package/dist/ports/yaml-loader.js +13 -0
  300. package/dist/ports/yaml-loader.js.map +1 -0
  301. package/dist/scheduling/index.d.ts +6 -0
  302. package/dist/scheduling/index.d.ts.map +1 -0
  303. package/dist/scheduling/index.js +6 -0
  304. package/dist/scheduling/index.js.map +1 -0
  305. package/dist/scheduling/scheduled-pact.d.ts +97 -0
  306. package/dist/scheduling/scheduled-pact.d.ts.map +1 -0
  307. package/dist/scheduling/scheduled-pact.js +89 -0
  308. package/dist/scheduling/scheduled-pact.js.map +1 -0
  309. package/dist/sessions/__tests__/cognitive-modules.test.d.ts +10 -0
  310. package/dist/sessions/__tests__/cognitive-modules.test.d.ts.map +1 -0
  311. package/dist/sessions/__tests__/cognitive-modules.test.js +535 -0
  312. package/dist/sessions/__tests__/cognitive-modules.test.js.map +1 -0
  313. package/dist/sessions/__tests__/cognitive-provider.test.d.ts +13 -0
  314. package/dist/sessions/__tests__/cognitive-provider.test.d.ts.map +1 -0
  315. package/dist/sessions/__tests__/cognitive-provider.test.js +331 -0
  316. package/dist/sessions/__tests__/cognitive-provider.test.js.map +1 -0
  317. package/dist/sessions/__tests__/cognitive-sink.test.d.ts +19 -0
  318. package/dist/sessions/__tests__/cognitive-sink.test.d.ts.map +1 -0
  319. package/dist/sessions/__tests__/cognitive-sink.test.js +334 -0
  320. package/dist/sessions/__tests__/cognitive-sink.test.js.map +1 -0
  321. package/dist/sessions/__tests__/runtime-tools.test.d.ts +2 -0
  322. package/dist/sessions/__tests__/runtime-tools.test.d.ts.map +1 -0
  323. package/dist/sessions/__tests__/runtime-tools.test.js +83 -0
  324. package/dist/sessions/__tests__/runtime-tools.test.js.map +1 -0
  325. package/dist/sessions/auto-retro.d.ts +29 -0
  326. package/dist/sessions/auto-retro.d.ts.map +1 -0
  327. package/dist/sessions/auto-retro.js +181 -0
  328. package/dist/sessions/auto-retro.js.map +1 -0
  329. package/dist/sessions/auto-retro.test.d.ts +2 -0
  330. package/dist/sessions/auto-retro.test.d.ts.map +1 -0
  331. package/dist/sessions/auto-retro.test.js +361 -0
  332. package/dist/sessions/auto-retro.test.js.map +1 -0
  333. package/dist/sessions/channels.d.ts +55 -0
  334. package/dist/sessions/channels.d.ts.map +1 -0
  335. package/dist/sessions/channels.js +118 -0
  336. package/dist/sessions/channels.js.map +1 -0
  337. package/dist/sessions/channels.test.d.ts +2 -0
  338. package/dist/sessions/channels.test.d.ts.map +1 -0
  339. package/dist/sessions/channels.test.js +285 -0
  340. package/dist/sessions/channels.test.js.map +1 -0
  341. package/dist/sessions/cognitive-modules.d.ts +100 -0
  342. package/dist/sessions/cognitive-modules.d.ts.map +1 -0
  343. package/dist/sessions/cognitive-modules.js +458 -0
  344. package/dist/sessions/cognitive-modules.js.map +1 -0
  345. package/dist/sessions/cognitive-provider.d.ts +42 -0
  346. package/dist/sessions/cognitive-provider.d.ts.map +1 -0
  347. package/dist/sessions/cognitive-provider.js +208 -0
  348. package/dist/sessions/cognitive-provider.js.map +1 -0
  349. package/dist/sessions/cognitive-sink.d.ts +73 -0
  350. package/dist/sessions/cognitive-sink.d.ts.map +1 -0
  351. package/dist/sessions/cognitive-sink.js +154 -0
  352. package/dist/sessions/cognitive-sink.js.map +1 -0
  353. package/dist/sessions/diagnostics.d.ts +70 -0
  354. package/dist/sessions/diagnostics.d.ts.map +1 -0
  355. package/dist/sessions/diagnostics.js +129 -0
  356. package/dist/sessions/diagnostics.js.map +1 -0
  357. package/dist/sessions/diagnostics.test.d.ts +2 -0
  358. package/dist/sessions/diagnostics.test.d.ts.map +1 -0
  359. package/dist/sessions/diagnostics.test.js +135 -0
  360. package/dist/sessions/diagnostics.test.js.map +1 -0
  361. package/dist/sessions/index.d.ts +32 -0
  362. package/dist/sessions/index.d.ts.map +1 -0
  363. package/dist/sessions/index.js +33 -0
  364. package/dist/sessions/index.js.map +1 -0
  365. package/dist/sessions/pool.d.ts +218 -0
  366. package/dist/sessions/pool.d.ts.map +1 -0
  367. package/dist/sessions/pool.js +991 -0
  368. package/dist/sessions/pool.js.map +1 -0
  369. package/dist/sessions/pool.test.d.ts +2 -0
  370. package/dist/sessions/pool.test.d.ts.map +1 -0
  371. package/dist/sessions/pool.test.js +633 -0
  372. package/dist/sessions/pool.test.js.map +1 -0
  373. package/dist/sessions/print-session.d.ts +142 -0
  374. package/dist/sessions/print-session.d.ts.map +1 -0
  375. package/dist/sessions/print-session.js +325 -0
  376. package/dist/sessions/print-session.js.map +1 -0
  377. package/dist/sessions/print-session.test.d.ts +2 -0
  378. package/dist/sessions/print-session.test.d.ts.map +1 -0
  379. package/dist/sessions/print-session.test.js +418 -0
  380. package/dist/sessions/print-session.test.js.map +1 -0
  381. package/dist/sessions/runtime-tools.d.ts +22 -0
  382. package/dist/sessions/runtime-tools.d.ts.map +1 -0
  383. package/dist/sessions/runtime-tools.js +162 -0
  384. package/dist/sessions/runtime-tools.js.map +1 -0
  385. package/dist/sessions/scope-hook.d.ts +77 -0
  386. package/dist/sessions/scope-hook.d.ts.map +1 -0
  387. package/dist/sessions/scope-hook.js +323 -0
  388. package/dist/sessions/scope-hook.js.map +1 -0
  389. package/dist/sessions/scope-hook.test.d.ts +2 -0
  390. package/dist/sessions/scope-hook.test.d.ts.map +1 -0
  391. package/dist/sessions/scope-hook.test.js +249 -0
  392. package/dist/sessions/scope-hook.test.js.map +1 -0
  393. package/dist/sessions/session-store/checkpoint-sink-impl.d.ts +16 -0
  394. package/dist/sessions/session-store/checkpoint-sink-impl.d.ts.map +1 -0
  395. package/dist/sessions/session-store/checkpoint-sink-impl.js +191 -0
  396. package/dist/sessions/session-store/checkpoint-sink-impl.js.map +1 -0
  397. package/dist/sessions/session-store/checkpoint-sink-impl.test.d.ts +5 -0
  398. package/dist/sessions/session-store/checkpoint-sink-impl.test.d.ts.map +1 -0
  399. package/dist/sessions/session-store/checkpoint-sink-impl.test.js +137 -0
  400. package/dist/sessions/session-store/checkpoint-sink-impl.test.js.map +1 -0
  401. package/dist/sessions/session-store/conformance.d.ts +59 -0
  402. package/dist/sessions/session-store/conformance.d.ts.map +1 -0
  403. package/dist/sessions/session-store/conformance.js +172 -0
  404. package/dist/sessions/session-store/conformance.js.map +1 -0
  405. package/dist/sessions/session-store/conformance.test.d.ts +7 -0
  406. package/dist/sessions/session-store/conformance.test.d.ts.map +1 -0
  407. package/dist/sessions/session-store/conformance.test.js +22 -0
  408. package/dist/sessions/session-store/conformance.test.js.map +1 -0
  409. package/dist/sessions/session-store/in-memory-session-store.d.ts +23 -0
  410. package/dist/sessions/session-store/in-memory-session-store.d.ts.map +1 -0
  411. package/dist/sessions/session-store/in-memory-session-store.js +197 -0
  412. package/dist/sessions/session-store/in-memory-session-store.js.map +1 -0
  413. package/dist/sessions/session-store/in-memory-session-store.test.d.ts +6 -0
  414. package/dist/sessions/session-store/in-memory-session-store.test.d.ts.map +1 -0
  415. package/dist/sessions/session-store/in-memory-session-store.test.js +183 -0
  416. package/dist/sessions/session-store/in-memory-session-store.test.js.map +1 -0
  417. package/dist/sessions/session-store/index.d.ts +20 -0
  418. package/dist/sessions/session-store/index.d.ts.map +1 -0
  419. package/dist/sessions/session-store/index.js +15 -0
  420. package/dist/sessions/session-store/index.js.map +1 -0
  421. package/dist/sessions/session-store/resume.d.ts +88 -0
  422. package/dist/sessions/session-store/resume.d.ts.map +1 -0
  423. package/dist/sessions/session-store/resume.js +96 -0
  424. package/dist/sessions/session-store/resume.js.map +1 -0
  425. package/dist/sessions/session-store/resume.test.d.ts +5 -0
  426. package/dist/sessions/session-store/resume.test.d.ts.map +1 -0
  427. package/dist/sessions/session-store/resume.test.js +119 -0
  428. package/dist/sessions/session-store/resume.test.js.map +1 -0
  429. package/dist/sessions/spawn-queue.d.ts +28 -0
  430. package/dist/sessions/spawn-queue.d.ts.map +1 -0
  431. package/dist/sessions/spawn-queue.js +63 -0
  432. package/dist/sessions/spawn-queue.js.map +1 -0
  433. package/dist/sessions/spawn-queue.test.d.ts +2 -0
  434. package/dist/sessions/spawn-queue.test.d.ts.map +1 -0
  435. package/dist/sessions/spawn-queue.test.js +65 -0
  436. package/dist/sessions/spawn-queue.test.js.map +1 -0
  437. package/dist/sessions/types.d.ts +16 -0
  438. package/dist/sessions/types.d.ts.map +1 -0
  439. package/dist/sessions/types.js +11 -0
  440. package/dist/sessions/types.js.map +1 -0
  441. package/dist/sessions/worktree-stale.test.d.ts +2 -0
  442. package/dist/sessions/worktree-stale.test.d.ts.map +1 -0
  443. package/dist/sessions/worktree-stale.test.js +468 -0
  444. package/dist/sessions/worktree-stale.test.js.map +1 -0
  445. package/dist/strategy/artifact-store.d.ts +12 -0
  446. package/dist/strategy/artifact-store.d.ts.map +1 -0
  447. package/dist/strategy/artifact-store.js +12 -0
  448. package/dist/strategy/artifact-store.js.map +1 -0
  449. package/dist/strategy/artifact-store.test.d.ts +2 -0
  450. package/dist/strategy/artifact-store.test.d.ts.map +1 -0
  451. package/dist/strategy/artifact-store.test.js +170 -0
  452. package/dist/strategy/artifact-store.test.js.map +1 -0
  453. package/dist/strategy/context-load-executor.d.ts +23 -0
  454. package/dist/strategy/context-load-executor.d.ts.map +1 -0
  455. package/dist/strategy/context-load-executor.js +87 -0
  456. package/dist/strategy/context-load-executor.js.map +1 -0
  457. package/dist/strategy/context-load-executor.test.d.ts +16 -0
  458. package/dist/strategy/context-load-executor.test.d.ts.map +1 -0
  459. package/dist/strategy/context-load-executor.test.js +158 -0
  460. package/dist/strategy/context-load-executor.test.js.map +1 -0
  461. package/dist/strategy/cortex-cross-app-invoker.stub.d.ts +65 -0
  462. package/dist/strategy/cortex-cross-app-invoker.stub.d.ts.map +1 -0
  463. package/dist/strategy/cortex-cross-app-invoker.stub.js +68 -0
  464. package/dist/strategy/cortex-cross-app-invoker.stub.js.map +1 -0
  465. package/dist/strategy/cross-app-node-executor.d.ts +54 -0
  466. package/dist/strategy/cross-app-node-executor.d.ts.map +1 -0
  467. package/dist/strategy/cross-app-node-executor.js +98 -0
  468. package/dist/strategy/cross-app-node-executor.js.map +1 -0
  469. package/dist/strategy/cross-app-node-executor.test.d.ts +13 -0
  470. package/dist/strategy/cross-app-node-executor.test.d.ts.map +1 -0
  471. package/dist/strategy/cross-app-node-executor.test.js +160 -0
  472. package/dist/strategy/cross-app-node-executor.test.js.map +1 -0
  473. package/dist/strategy/gates.d.ts +13 -0
  474. package/dist/strategy/gates.d.ts.map +1 -0
  475. package/dist/strategy/gates.js +13 -0
  476. package/dist/strategy/gates.js.map +1 -0
  477. package/dist/strategy/gates.test.d.ts +2 -0
  478. package/dist/strategy/gates.test.d.ts.map +1 -0
  479. package/dist/strategy/gates.test.js +299 -0
  480. package/dist/strategy/gates.test.js.map +1 -0
  481. package/dist/strategy/human-approval-resolver.d.ts +23 -0
  482. package/dist/strategy/human-approval-resolver.d.ts.map +1 -0
  483. package/dist/strategy/human-approval-resolver.js +94 -0
  484. package/dist/strategy/human-approval-resolver.js.map +1 -0
  485. package/dist/strategy/human-approval-resolver.test.d.ts +16 -0
  486. package/dist/strategy/human-approval-resolver.test.d.ts.map +1 -0
  487. package/dist/strategy/human-approval-resolver.test.js +200 -0
  488. package/dist/strategy/human-approval-resolver.test.js.map +1 -0
  489. package/dist/strategy/in-process-cross-app-invoker.d.ts +105 -0
  490. package/dist/strategy/in-process-cross-app-invoker.d.ts.map +1 -0
  491. package/dist/strategy/in-process-cross-app-invoker.js +206 -0
  492. package/dist/strategy/in-process-cross-app-invoker.js.map +1 -0
  493. package/dist/strategy/in-process-cross-app-invoker.test.d.ts +15 -0
  494. package/dist/strategy/in-process-cross-app-invoker.test.d.ts.map +1 -0
  495. package/dist/strategy/in-process-cross-app-invoker.test.js +190 -0
  496. package/dist/strategy/in-process-cross-app-invoker.test.js.map +1 -0
  497. package/dist/strategy/index.d.ts +29 -0
  498. package/dist/strategy/index.d.ts.map +1 -0
  499. package/dist/strategy/index.js +29 -0
  500. package/dist/strategy/index.js.map +1 -0
  501. package/dist/strategy/pacta-strategy.d.ts +97 -0
  502. package/dist/strategy/pacta-strategy.d.ts.map +1 -0
  503. package/dist/strategy/pacta-strategy.js +117 -0
  504. package/dist/strategy/pacta-strategy.js.map +1 -0
  505. package/dist/strategy/pacta-strategy.test.d.ts +2 -0
  506. package/dist/strategy/pacta-strategy.test.d.ts.map +1 -0
  507. package/dist/strategy/pacta-strategy.test.js +234 -0
  508. package/dist/strategy/pacta-strategy.test.js.map +1 -0
  509. package/dist/strategy/retro-generator.d.ts +18 -0
  510. package/dist/strategy/retro-generator.d.ts.map +1 -0
  511. package/dist/strategy/retro-generator.js +22 -0
  512. package/dist/strategy/retro-generator.js.map +1 -0
  513. package/dist/strategy/retro-writer.d.ts +25 -0
  514. package/dist/strategy/retro-writer.d.ts.map +1 -0
  515. package/dist/strategy/retro-writer.js +65 -0
  516. package/dist/strategy/retro-writer.js.map +1 -0
  517. package/dist/strategy/strategy-executor.d.ts +39 -0
  518. package/dist/strategy/strategy-executor.d.ts.map +1 -0
  519. package/dist/strategy/strategy-executor.js +253 -0
  520. package/dist/strategy/strategy-executor.js.map +1 -0
  521. package/dist/strategy/strategy-executor.test.d.ts +8 -0
  522. package/dist/strategy/strategy-executor.test.d.ts.map +1 -0
  523. package/dist/strategy/strategy-executor.test.js +1301 -0
  524. package/dist/strategy/strategy-executor.test.js.map +1 -0
  525. package/dist/strategy/strategy-parser.d.ts +30 -0
  526. package/dist/strategy/strategy-parser.d.ts.map +1 -0
  527. package/dist/strategy/strategy-parser.js +30 -0
  528. package/dist/strategy/strategy-parser.js.map +1 -0
  529. package/dist/strategy/sub-strategy-source.d.ts +27 -0
  530. package/dist/strategy/sub-strategy-source.d.ts.map +1 -0
  531. package/dist/strategy/sub-strategy-source.js +77 -0
  532. package/dist/strategy/sub-strategy-source.js.map +1 -0
  533. package/dist/strategy/types.d.ts +12 -0
  534. package/dist/strategy/types.d.ts.map +1 -0
  535. package/dist/strategy/types.js +9 -0
  536. package/dist/strategy/types.js.map +1 -0
  537. package/package.json +87 -0
@@ -0,0 +1,535 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ /**
3
+ * Tests for cognitive-modules.ts — BridgeReasonerActorModule and BridgeMonitorModule.
4
+ *
5
+ * PRD 042 Phase 1-4: CognitiveModule implementations extracted from the
6
+ * monolithic cognitive-provider.ts inline loop, plus manual composition integration.
7
+ *
8
+ * 12 test scenarios covering AC-1 through AC-7 and AC-11.
9
+ */
10
+ import { describe, it } from 'node:test';
11
+ import assert from 'node:assert/strict';
12
+ import { moduleId, createWorkspace } from '@methodts/pacta';
13
+ import { createBridgeReasonerActorModule, createBridgeMonitorModule, defaultBridgeMonitorControl, READ_ONLY_ACTIONS, } from '../cognitive-modules.js';
14
+ // ── Test Helpers ───────────────────────────────────────────────
15
+ /** Build an LLM response in the expected XML format. */
16
+ function buildResponse(plan, reasoning, action) {
17
+ return `<plan>${plan}</plan>\n<reasoning>${reasoning}</reasoning>\n<action>${JSON.stringify(action)}</action>`;
18
+ }
19
+ /** Create a mock adapter that returns responses from a queue. */
20
+ function createMockAdapter(responses) {
21
+ let callIndex = 0;
22
+ return {
23
+ async invoke() {
24
+ const idx = callIndex++;
25
+ const output = idx < responses.length ? responses[idx] : responses[responses.length - 1];
26
+ return {
27
+ output,
28
+ usage: { inputTokens: 100, outputTokens: 50, totalTokens: 150, cacheReadTokens: 0, cacheWriteTokens: 0 },
29
+ cost: { totalUsd: 0.001, perModel: {} },
30
+ };
31
+ },
32
+ };
33
+ }
34
+ /** Create a mock tool provider with configurable results. */
35
+ function createMockTools(resultMap) {
36
+ const executedTools = [];
37
+ return {
38
+ list: () => [
39
+ { name: 'Read', description: 'Read a file by path. Input: { path: string }' },
40
+ { name: 'Write', description: 'Write content to a file. Input: { path: string, content: string }' },
41
+ { name: 'Glob', description: 'Find files matching a glob pattern. Input: { pattern: string }' },
42
+ { name: 'Grep', description: 'Search file contents with a regex. Input: { pattern: string, path?: string }' },
43
+ { name: 'Bash', description: 'Execute a shell command. Input: { command: string }' },
44
+ ],
45
+ async execute(name, input) {
46
+ executedTools.push({ name, input });
47
+ if (resultMap && name in resultMap) {
48
+ return resultMap[name];
49
+ }
50
+ return { output: `Mock result for ${name}` };
51
+ },
52
+ get _executed() { return executedTools; },
53
+ };
54
+ }
55
+ /** Collect events from onEvent callback. */
56
+ function createEventCollector() {
57
+ const events = [];
58
+ return {
59
+ events,
60
+ onEvent: (e) => events.push(e),
61
+ };
62
+ }
63
+ /** Create a workspace with standard test config. */
64
+ function createTestWorkspace(capacity = 8) {
65
+ const salienceCtx = {
66
+ now: Date.now(),
67
+ goals: ['complete the task'],
68
+ sourcePriorities: new Map([
69
+ [moduleId('reasoner-actor'), 0.9],
70
+ [moduleId('observer'), 0.6],
71
+ [moduleId('monitor'), 0.7],
72
+ ]),
73
+ };
74
+ const ws = createWorkspace({ capacity }, salienceCtx);
75
+ return {
76
+ ws,
77
+ obsPort: ws.getWritePort(moduleId('observer')),
78
+ raWritePort: ws.getWritePort(moduleId('reasoner-actor')),
79
+ raReadPort: ws.getReadPort(moduleId('reasoner-actor')),
80
+ monitorPort: ws.getWritePort(moduleId('monitor')),
81
+ };
82
+ }
83
+ // ── Tests ─────────────────────────────────────────────────────
84
+ describe('cognitive-modules (PRD 042 Phase 1-3)', () => {
85
+ // ── Scenario 1: AC-1 — RA module satisfies CognitiveModule interface ──
86
+ it('RA module satisfies CognitiveModule interface (TypeScript compile gate)', () => {
87
+ const { ws, obsPort, raWritePort, raReadPort } = createTestWorkspace();
88
+ const { onEvent } = createEventCollector();
89
+ const adapter = createMockAdapter([buildResponse('done', 'done', { tool: 'done', input: { result: 'ok' } })]);
90
+ const tools = createMockTools();
91
+ const raModule = createBridgeReasonerActorModule(adapter, tools, ws, raWritePort, raReadPort, obsPort, { maxToolsPerCycle: 5, maxOutputTokens: 8192, wsCapacity: 8, cycleNumber: 1, maxCycles: 15 }, onEvent);
92
+ // TypeScript compile gate: the variable type is CognitiveModule<...>
93
+ const _typeCheck = raModule;
94
+ assert.ok(_typeCheck); // suppress unused variable warning
95
+ // Interface shape checks
96
+ assert.equal(typeof raModule.step, 'function');
97
+ assert.equal(typeof raModule.initialState, 'function');
98
+ assert.equal(typeof raModule.id, 'string');
99
+ assert.equal(raModule.id, moduleId('reasoner-actor'));
100
+ });
101
+ // ── Scenario 2: AC-1 — Monitor module satisfies CognitiveModule interface ──
102
+ it('Monitor module satisfies CognitiveModule interface (TypeScript compile gate)', () => {
103
+ const { ws, monitorPort } = createTestWorkspace();
104
+ const { onEvent } = createEventCollector();
105
+ const monModule = createBridgeMonitorModule(ws, monitorPort, 8, { confThreshold: 0.3, stagThreshold: 2, intBudget: 5 }, onEvent);
106
+ // TypeScript compile gate
107
+ const _typeCheck = monModule;
108
+ assert.ok(_typeCheck);
109
+ assert.equal(typeof monModule.step, 'function');
110
+ assert.equal(typeof monModule.initialState, 'function');
111
+ assert.equal(typeof monModule.id, 'string');
112
+ assert.equal(monModule.id, moduleId('monitor'));
113
+ });
114
+ // ── Scenario 3: AC-2 — RA step() with mock adapter returning done ──
115
+ it('RA step() with mock adapter returning done -> monitoring.cycleDone === true', async () => {
116
+ const { ws, obsPort, raWritePort, raReadPort } = createTestWorkspace();
117
+ const { onEvent } = createEventCollector();
118
+ const adapter = createMockAdapter([
119
+ buildResponse('Complete task', 'Task is done', { tool: 'done', input: { result: 'completed successfully' } }),
120
+ ]);
121
+ const tools = createMockTools();
122
+ const raModule = createBridgeReasonerActorModule(adapter, tools, ws, raWritePort, raReadPort, obsPort, { maxToolsPerCycle: 5, maxOutputTokens: 8192, wsCapacity: 8, cycleNumber: 1, maxCycles: 15 }, onEvent);
123
+ const state = raModule.initialState();
124
+ const control = defaultBridgeMonitorControl();
125
+ const result = await raModule.step('Do the task', state, control);
126
+ assert.equal(result.monitoring.cycleDone, true);
127
+ assert.equal(result.monitoring.lastOutput, 'completed successfully');
128
+ assert.equal(result.output.cycleDone, true);
129
+ });
130
+ // ── Scenario 4: RA step() write-completion hint fires after successful Write ──
131
+ it('RA step() write-completion hint fires after successful Write', async () => {
132
+ const { ws, obsPort, raWritePort, raReadPort } = createTestWorkspace();
133
+ const { onEvent } = createEventCollector();
134
+ const adapter = createMockAdapter([
135
+ buildResponse('Write file', 'Writing output', { tool: 'Write', input: { path: 'out.md', content: 'hello' } }),
136
+ buildResponse('Done', 'Complete', { tool: 'done', input: { result: 'wrote out.md' } }),
137
+ ]);
138
+ const tools = createMockTools({
139
+ Write: { output: 'Written successfully' },
140
+ });
141
+ const raModule = createBridgeReasonerActorModule(adapter, tools, ws, raWritePort, raReadPort, obsPort, { maxToolsPerCycle: 5, maxOutputTokens: 8192, wsCapacity: 8, cycleNumber: 1, maxCycles: 15 }, onEvent);
142
+ // Seed workspace (Observer would normally do this)
143
+ obsPort.write({ source: moduleId('observer'), content: 'Write a file', salience: 0.95, timestamp: Date.now() });
144
+ const state = raModule.initialState();
145
+ const control = defaultBridgeMonitorControl();
146
+ const result = await raModule.step('Write a file', state, control);
147
+ // After Write, the module should have written a deliverable hint to workspace
148
+ const snapshot = ws.snapshot();
149
+ const deliverableHint = snapshot.find(e => typeof e.content === 'string' && e.content.includes('DELIVERABLE WRITTEN'));
150
+ assert.ok(deliverableHint, 'Write-completion hint should be written to workspace');
151
+ // Note: the workspace engine recomputes salience via its salience function,
152
+ // so the raw 1.0 value written may differ. We verify the content is present.
153
+ // Write gate counters should update
154
+ assert.equal(result.state.promptSuccessfulWrites, 1);
155
+ });
156
+ // ── Scenario 5: AC-5 — RA step() impasse detection ──
157
+ it('RA step() impasse detection: consecutive identical action -> impasse in workspace', async () => {
158
+ const { ws, obsPort, raWritePort, raReadPort } = createTestWorkspace();
159
+ const { events, onEvent } = createEventCollector();
160
+ // Two identical Read calls, then done
161
+ const adapter = createMockAdapter([
162
+ buildResponse('Read file', 'Reading', { tool: 'Read', input: { path: 'file.ts' } }),
163
+ buildResponse('Read file', 'Reading again', { tool: 'Read', input: { path: 'file.ts' } }),
164
+ buildResponse('Done', 'Complete', { tool: 'done', input: { result: 'ok' } }),
165
+ ]);
166
+ const tools = createMockTools();
167
+ const raModule = createBridgeReasonerActorModule(adapter, tools, ws, raWritePort, raReadPort, obsPort, { maxToolsPerCycle: 5, maxOutputTokens: 8192, wsCapacity: 8, cycleNumber: 1, maxCycles: 15 }, onEvent);
168
+ obsPort.write({ source: moduleId('observer'), content: 'Task', salience: 0.95, timestamp: Date.now() });
169
+ const state = raModule.initialState();
170
+ const control = defaultBridgeMonitorControl();
171
+ await raModule.step('Read file.ts', state, control);
172
+ // Check that impasse-detected event was emitted
173
+ const impasseEvent = events.find(e => e.type === 'monitor' && e.intervention === 'impasse-detected');
174
+ assert.ok(impasseEvent, 'Impasse detection event should be emitted');
175
+ // Check workspace for impasse intervention
176
+ const snapshot = ws.snapshot();
177
+ const impasseEntry = snapshot.find(e => typeof e.content === 'string' && e.content.includes('IMPASSE'));
178
+ assert.ok(impasseEntry, 'Impasse intervention should be written to workspace');
179
+ });
180
+ // ── Scenario 6: RA step() circuit-breaker: 3 consecutive parse failures ──
181
+ it('RA step() circuit-breaker: 3 consecutive parse failures -> cycleDone true + diagnostic lastOutput', async () => {
182
+ const { ws, obsPort, raWritePort, raReadPort } = createTestWorkspace();
183
+ const { onEvent } = createEventCollector();
184
+ // Return invalid responses (no valid JSON in <action>)
185
+ const adapter = createMockAdapter([
186
+ '<plan>Plan</plan>\n<reasoning>Trying</reasoning>\n<action>not valid json</action>',
187
+ '<plan>Plan</plan>\n<reasoning>Still trying</reasoning>\n<action>also not json</action>',
188
+ '<plan>Plan</plan>\n<reasoning>Third attempt</reasoning>\n<action>nope</action>',
189
+ ]);
190
+ const tools = createMockTools();
191
+ const raModule = createBridgeReasonerActorModule(adapter, tools, ws, raWritePort, raReadPort, obsPort, { maxToolsPerCycle: 5, maxOutputTokens: 8192, wsCapacity: 8, cycleNumber: 1, maxCycles: 15 }, onEvent);
192
+ obsPort.write({ source: moduleId('observer'), content: 'Task', salience: 0.95, timestamp: Date.now() });
193
+ const state = raModule.initialState();
194
+ const control = defaultBridgeMonitorControl();
195
+ const result = await raModule.step('Do something', state, control);
196
+ // Circuit-breaker should fire on the 3rd parse failure
197
+ assert.equal(result.monitoring.cycleDone, true, 'Circuit-breaker should set cycleDone');
198
+ assert.ok(result.monitoring.lastOutput.length > 0, 'lastOutput should contain diagnostic string');
199
+ });
200
+ // ── Scenario 7: Monitor step() with low-confidence -> forceReplan: true ──
201
+ it('Monitor step() with low-confidence -> forceReplan: true', async () => {
202
+ const { ws, monitorPort } = createTestWorkspace();
203
+ const { onEvent } = createEventCollector();
204
+ const monModule = createBridgeMonitorModule(ws, monitorPort, 8, { confThreshold: 0.3, stagThreshold: 2, intBudget: 5 }, onEvent);
205
+ const state = monModule.initialState();
206
+ const monitoring = {
207
+ source: moduleId('reasoner-actor'),
208
+ timestamp: Date.now(),
209
+ type: 'bridge-reasoner-actor',
210
+ prevConf: 0.1, // below confThreshold (0.3)
211
+ prevAction: 'Read',
212
+ consecutiveFailedParses: 0,
213
+ wsUtilization: 0.3,
214
+ promptInputTokens: 500,
215
+ promptOutputTokens: 200,
216
+ writeGateFired: false,
217
+ promptSuccessfulReads: 1,
218
+ promptSuccessfulWrites: 0,
219
+ cycleDone: false,
220
+ lastOutput: '',
221
+ };
222
+ const noControl = { target: moduleId('monitor'), timestamp: Date.now() };
223
+ const result = await monModule.step(monitoring, state, noControl);
224
+ assert.equal(result.output.forceReplan, true, 'Low confidence should trigger forceReplan');
225
+ });
226
+ // ── Scenario 8: AC-3 — Monitor step() with write gate condition ──
227
+ it('Monitor step() with write gate condition (>=3 reads, 0 writes, !fired) -> restricted contains read tools', async () => {
228
+ const { ws, monitorPort } = createTestWorkspace();
229
+ const { onEvent } = createEventCollector();
230
+ const monModule = createBridgeMonitorModule(ws, monitorPort, 8, { confThreshold: 0.3, stagThreshold: 2, intBudget: 5 }, onEvent);
231
+ const state = monModule.initialState();
232
+ const monitoring = {
233
+ source: moduleId('reasoner-actor'),
234
+ timestamp: Date.now(),
235
+ type: 'bridge-reasoner-actor',
236
+ prevConf: 0.7, // above threshold — no anomaly
237
+ prevAction: 'Read',
238
+ consecutiveFailedParses: 0,
239
+ wsUtilization: 0.3,
240
+ promptInputTokens: 500,
241
+ promptOutputTokens: 200,
242
+ writeGateFired: false,
243
+ promptSuccessfulReads: 3, // >= 3 reads
244
+ promptSuccessfulWrites: 0, // 0 writes
245
+ cycleDone: false,
246
+ lastOutput: '',
247
+ };
248
+ const noControl = { target: moduleId('monitor'), timestamp: Date.now() };
249
+ const result = await monModule.step(monitoring, state, noControl);
250
+ // Write gate should fire: restricted should contain all READ_ONLY_ACTIONS
251
+ for (const tool of READ_ONLY_ACTIONS) {
252
+ assert.ok(result.output.restricted.includes(tool), `restricted should contain ${tool}`);
253
+ }
254
+ assert.equal(result.output.forceReplan, true, 'Write gate should set forceReplan');
255
+ });
256
+ // ── Scenario 9: AC-4 — Monitor step() with writeGateFired: true -> gate does NOT re-fire ──
257
+ it('Monitor step() with writeGateFired: true -> gate does NOT re-fire', async () => {
258
+ const { ws, monitorPort } = createTestWorkspace();
259
+ const { onEvent } = createEventCollector();
260
+ const monModule = createBridgeMonitorModule(ws, monitorPort, 8, { confThreshold: 0.3, stagThreshold: 2, intBudget: 5 }, onEvent);
261
+ const state = monModule.initialState();
262
+ const monitoring = {
263
+ source: moduleId('reasoner-actor'),
264
+ timestamp: Date.now(),
265
+ type: 'bridge-reasoner-actor',
266
+ prevConf: 0.7, // above threshold
267
+ prevAction: 'Read',
268
+ consecutiveFailedParses: 0,
269
+ wsUtilization: 0.3,
270
+ promptInputTokens: 500,
271
+ promptOutputTokens: 200,
272
+ writeGateFired: true, // already fired
273
+ promptSuccessfulReads: 5, // many reads
274
+ promptSuccessfulWrites: 0, // still 0 writes
275
+ cycleDone: false,
276
+ lastOutput: '',
277
+ };
278
+ const noControl = { target: moduleId('monitor'), timestamp: Date.now() };
279
+ const result = await monModule.step(monitoring, state, noControl);
280
+ // Gate already fired — should NOT add read-only tools to restricted
281
+ const hasReadOnlyRestriction = result.output.restricted.some(r => READ_ONLY_ACTIONS.has(r));
282
+ assert.equal(hasReadOnlyRestriction, false, 'Write gate should NOT re-fire when writeGateFired is true');
283
+ });
284
+ // ── Scenario 10: AC-11 — Monitor initialState() returns fresh state ──
285
+ it('Monitor initialState() returns fresh state (interventions=0, readOnlyRun=0, accumulatedInputTokens=0)', () => {
286
+ const { ws, monitorPort } = createTestWorkspace();
287
+ const { onEvent } = createEventCollector();
288
+ const monModule = createBridgeMonitorModule(ws, monitorPort, 8, { confThreshold: 0.3, stagThreshold: 2, intBudget: 5 }, onEvent);
289
+ const state = monModule.initialState();
290
+ assert.equal(state.interventions, 0);
291
+ assert.equal(state.readOnlyRun, 0);
292
+ assert.equal(state.accumulatedInputTokens, 0);
293
+ });
294
+ // ── Scenario 11: AC-6 — Manual loop with monitor + raModule produces 'done' ──
295
+ it('Manual composition loop: monitor + raModule produces done when adapter returns done action', async () => {
296
+ const { ws, obsPort, raWritePort, raReadPort, monitorPort } = createTestWorkspace();
297
+ const { events, onEvent } = createEventCollector();
298
+ const adapter = createMockAdapter([
299
+ buildResponse('Complete task', 'Task is done', { tool: 'done', input: { result: 'completed successfully' } }),
300
+ ]);
301
+ const tools = createMockTools();
302
+ const raConfig = { maxToolsPerCycle: 5, maxOutputTokens: 8192, wsCapacity: 8, cycleNumber: 1, maxCycles: 3 };
303
+ const raModule = createBridgeReasonerActorModule(adapter, tools, ws, raWritePort, raReadPort, obsPort, raConfig, onEvent);
304
+ const monModule = createBridgeMonitorModule(ws, monitorPort, 8, { confThreshold: 0.3, stagThreshold: 2, intBudget: 5 }, onEvent);
305
+ // Seed workspace (Observer seeds)
306
+ obsPort.write({ source: moduleId('observer'), content: 'Do the task', salience: 0.95, timestamp: Date.now() });
307
+ let raState = raModule.initialState();
308
+ let monState = monModule.initialState();
309
+ let lastRAMonitoring = null;
310
+ let lastOutput = '';
311
+ let actualCycles = 0;
312
+ for (let c = 0; c < 3; c++) {
313
+ actualCycles = c + 1;
314
+ raConfig.cycleNumber = c + 1;
315
+ // Monitor FIRST
316
+ const monResult = await monModule.step(lastRAMonitoring, monState, { target: moduleId('monitor'), timestamp: Date.now() });
317
+ monState = monResult.state;
318
+ const control = monResult.output;
319
+ // RA SECOND
320
+ const raResult = await raModule.step('Do the task', raState, control);
321
+ raState = raResult.state;
322
+ lastRAMonitoring = raResult.monitoring;
323
+ if (raResult.monitoring.cycleDone) {
324
+ lastOutput = raResult.monitoring.lastOutput;
325
+ break;
326
+ }
327
+ }
328
+ assert.equal(lastOutput, 'completed successfully');
329
+ assert.equal(actualCycles, 1, 'Should complete in cycle 1');
330
+ // Verify both modules ran (cycle-action 'done' event present)
331
+ const doneEvent = events.find(e => e.type === 'cycle-action' && e.action === 'done');
332
+ assert.ok(doneEvent, 'done action event should be emitted');
333
+ });
334
+ // ── Scenario 12: AC-7 — Monitor fires anomaly intervention in cycle 2 ──
335
+ it('Manual composition loop: monitor fires anomaly in cycle 2 when cycle 1 has low confidence', async () => {
336
+ const { ws, obsPort, raWritePort, raReadPort, monitorPort } = createTestWorkspace();
337
+ const { events, onEvent } = createEventCollector();
338
+ // Cycle 1: empty response → prevConf 0.1 (low confidence)
339
+ // Cycle 2 (after monitor intervention with forceReplan): done
340
+ const adapter = createMockAdapter([
341
+ // Cycle 1: empty response → prevConf 0.1
342
+ ' ',
343
+ // Cycle 2 (after monitor intervention): done
344
+ buildResponse('Done', 'Complete', { tool: 'done', input: { result: 'recovered' } }),
345
+ ]);
346
+ const tools = createMockTools();
347
+ const raConfig = { maxToolsPerCycle: 5, maxOutputTokens: 8192, wsCapacity: 8, cycleNumber: 1, maxCycles: 5 };
348
+ const raModule = createBridgeReasonerActorModule(adapter, tools, ws, raWritePort, raReadPort, obsPort, raConfig, onEvent);
349
+ const monModule = createBridgeMonitorModule(ws, monitorPort, 8, { confThreshold: 0.3, stagThreshold: 2, intBudget: 5 }, onEvent);
350
+ obsPort.write({ source: moduleId('observer'), content: 'Task', salience: 0.95, timestamp: Date.now() });
351
+ let raState = raModule.initialState();
352
+ let monState = monModule.initialState();
353
+ let lastRAMonitoring = null;
354
+ let lastOutput = '';
355
+ let cycle2Control = null;
356
+ for (let c = 0; c < 5; c++) {
357
+ raConfig.cycleNumber = c + 1;
358
+ // Monitor FIRST
359
+ const monResult = await monModule.step(lastRAMonitoring, monState, { target: moduleId('monitor'), timestamp: Date.now() });
360
+ monState = monResult.state;
361
+ const control = monResult.output;
362
+ if (c === 1) {
363
+ cycle2Control = control;
364
+ }
365
+ // RA SECOND
366
+ const raResult = await raModule.step('Task', raState, control);
367
+ raState = raResult.state;
368
+ lastRAMonitoring = raResult.monitoring;
369
+ if (raResult.monitoring.cycleDone) {
370
+ lastOutput = raResult.monitoring.lastOutput;
371
+ break;
372
+ }
373
+ }
374
+ // Verify: cycle 1 produced low-confidence monitoring (empty response → prevConf 0.1)
375
+ // Monitor in cycle 2 should have detected anomaly and set forceReplan
376
+ assert.ok(cycle2Control, 'Cycle 2 control should exist');
377
+ assert.equal(cycle2Control.forceReplan, true, 'Monitor should set forceReplan in cycle 2 due to low confidence from cycle 1');
378
+ // Verify a monitor event was emitted for the anomaly
379
+ const monitorEvent = events.find(e => e.type === 'monitor' && (e.intervention === 'constrain' || e.intervention === 'reframe'));
380
+ assert.ok(monitorEvent, 'Monitor anomaly event should be emitted in cycle 2');
381
+ assert.equal(lastOutput, 'recovered', 'Session should complete with recovered output');
382
+ });
383
+ // ── Scenario 13: Workspace saturation intervention ──
384
+ it('Monitor step() with workspace near capacity (>=0.8) -> workspace-saturation intervention', async () => {
385
+ const capacity = 5;
386
+ const { ws, monitorPort } = createTestWorkspace(capacity);
387
+ const { events, onEvent } = createEventCollector();
388
+ const monModule = createBridgeMonitorModule(ws, monitorPort, capacity, { confThreshold: 0.3, stagThreshold: 2, intBudget: 5 }, onEvent);
389
+ // Fill workspace to >= 0.8 utilization (need 4 out of 5 entries)
390
+ const obsPort = ws.getWritePort(moduleId('observer'));
391
+ for (let i = 0; i < 4; i++) {
392
+ obsPort.write({ source: moduleId('observer'), content: `Entry ${i}`, salience: 0.5, timestamp: Date.now() });
393
+ }
394
+ const state = monModule.initialState();
395
+ const monitoring = {
396
+ source: moduleId('reasoner-actor'),
397
+ timestamp: Date.now(),
398
+ type: 'bridge-reasoner-actor',
399
+ prevConf: 0.7, // above threshold — no anomaly
400
+ prevAction: 'Read',
401
+ consecutiveFailedParses: 0,
402
+ wsUtilization: 0.85, // reported by RA, but monitor recomputes from ws.snapshot()
403
+ promptInputTokens: 500,
404
+ promptOutputTokens: 200,
405
+ writeGateFired: false,
406
+ promptSuccessfulReads: 1,
407
+ promptSuccessfulWrites: 0,
408
+ cycleDone: false,
409
+ lastOutput: '',
410
+ };
411
+ const noControl = { target: moduleId('monitor'), timestamp: Date.now() };
412
+ await monModule.step(monitoring, state, noControl);
413
+ // Assert: workspace contains a [WORKSPACE entry
414
+ const snapshot = ws.snapshot();
415
+ const saturationEntry = snapshot.find(e => typeof e.content === 'string' && e.content.includes('[WORKSPACE'));
416
+ assert.ok(saturationEntry, 'Workspace should contain a saturation intervention entry');
417
+ // Assert: workspace-saturation event was emitted
418
+ const saturationEvent = events.find(e => e.type === 'monitor' && e.intervention === 'workspace-saturation');
419
+ assert.ok(saturationEvent, 'workspace-saturation event should be emitted');
420
+ });
421
+ // ── Scenario 14: Token budget threshold ──
422
+ it('Monitor step() accumulates input tokens and fires token-budget-pressure when >100k', async () => {
423
+ const { ws, monitorPort } = createTestWorkspace();
424
+ const { events, onEvent } = createEventCollector();
425
+ const monModule = createBridgeMonitorModule(ws, monitorPort, 8, { confThreshold: 0.3, stagThreshold: 2, intBudget: 5 }, onEvent);
426
+ const state = monModule.initialState();
427
+ const noControl = { target: moduleId('monitor'), timestamp: Date.now() };
428
+ // First call: 60k tokens — should NOT trigger budget pressure
429
+ const monitoring1 = {
430
+ source: moduleId('reasoner-actor'),
431
+ timestamp: Date.now(),
432
+ type: 'bridge-reasoner-actor',
433
+ prevConf: 0.7,
434
+ prevAction: 'Write',
435
+ consecutiveFailedParses: 0,
436
+ wsUtilization: 0.3,
437
+ promptInputTokens: 60000,
438
+ promptOutputTokens: 200,
439
+ writeGateFired: false,
440
+ promptSuccessfulReads: 1,
441
+ promptSuccessfulWrites: 1,
442
+ cycleDone: false,
443
+ lastOutput: '',
444
+ };
445
+ const result1 = await monModule.step(monitoring1, state, noControl);
446
+ // No token-budget-pressure after first call (60k < 100k)
447
+ const budgetEventBefore = events.find(e => e.type === 'monitor' && e.intervention === 'token-budget-pressure');
448
+ assert.equal(budgetEventBefore, undefined, 'No token-budget-pressure at 60k');
449
+ // Second call: 50k more (accumulated = 110k > 100k)
450
+ const monitoring2 = {
451
+ source: moduleId('reasoner-actor'),
452
+ timestamp: Date.now(),
453
+ type: 'bridge-reasoner-actor',
454
+ prevConf: 0.7,
455
+ prevAction: 'Write',
456
+ consecutiveFailedParses: 0,
457
+ wsUtilization: 0.3,
458
+ promptInputTokens: 50000,
459
+ promptOutputTokens: 200,
460
+ writeGateFired: false,
461
+ promptSuccessfulReads: 1,
462
+ promptSuccessfulWrites: 1,
463
+ cycleDone: false,
464
+ lastOutput: '',
465
+ };
466
+ const result2 = await monModule.step(monitoring2, result1.state, noControl);
467
+ // Assert: token-budget-pressure event emitted
468
+ const budgetEvent = events.find(e => e.type === 'monitor' && e.intervention === 'token-budget-pressure');
469
+ assert.ok(budgetEvent, 'token-budget-pressure event should be emitted when accumulated > 100k');
470
+ // Assert: accumulated tokens in state
471
+ assert.equal(result2.state.accumulatedInputTokens, 110000, 'accumulatedInputTokens should be 110000');
472
+ });
473
+ // ── Scenario 15: Tool execution error handling ──
474
+ it('RA step() handles tool execution errors gracefully — error caught, workspace gets Tool error entry, confidence degraded', async () => {
475
+ const { ws, obsPort, raWritePort, raReadPort } = createTestWorkspace();
476
+ const { events, onEvent } = createEventCollector();
477
+ const adapter = createMockAdapter([
478
+ buildResponse('Read file', 'Reading the file', { tool: 'Read', input: { path: 'missing.ts' } }),
479
+ buildResponse('Done', 'Complete', { tool: 'done', input: { result: 'recovered from error' } }),
480
+ ]);
481
+ // Tool provider that THROWS on execute
482
+ const throwingTools = {
483
+ list: () => [
484
+ { name: 'Read', description: 'Read a file' },
485
+ { name: 'Write', description: 'Write a file' },
486
+ ],
487
+ async execute(_name, _input) {
488
+ throw new Error('Simulated tool crash');
489
+ },
490
+ };
491
+ const raModule = createBridgeReasonerActorModule(adapter, throwingTools, ws, raWritePort, raReadPort, obsPort, { maxToolsPerCycle: 5, maxOutputTokens: 8192, wsCapacity: 8, cycleNumber: 1, maxCycles: 15 }, onEvent);
492
+ obsPort.write({ source: moduleId('observer'), content: 'Read a file', salience: 0.95, timestamp: Date.now() });
493
+ const state = raModule.initialState();
494
+ const control = defaultBridgeMonitorControl();
495
+ // step() should NOT throw even though tool.execute throws
496
+ const result = await raModule.step('Read a file', state, control);
497
+ // Assert: workspace contains a Tool error entry
498
+ const snapshot = ws.snapshot();
499
+ const errorEntry = snapshot.find(e => typeof e.content === 'string' && e.content.includes('Tool error:'));
500
+ assert.ok(errorEntry, 'Workspace should contain a Tool error entry');
501
+ // Assert: confidence was degraded (prevConf should be 0.1 for the error tool call)
502
+ // After the error, the next tool call (done) sets prevConf to 1.0,
503
+ // but the cycle-action event for the errored Read should show confidence 0.1
504
+ const errorActionEvent = events.find(e => e.type === 'cycle-action' && e.action === 'Read' && e.confidence === 0.1);
505
+ assert.ok(errorActionEvent, 'Tool error should produce a cycle-action event with confidence 0.1');
506
+ });
507
+ // ── Scenario 16: Adapter invoke() throw handling ──
508
+ it('RA step() handles adapter invoke() throw — error caught, error event emitted, does not throw', async () => {
509
+ const { ws, obsPort, raWritePort, raReadPort } = createTestWorkspace();
510
+ const { events, onEvent } = createEventCollector();
511
+ // Adapter that THROWS on invoke
512
+ const throwingAdapter = {
513
+ async invoke() {
514
+ throw new Error('Simulated adapter crash');
515
+ },
516
+ };
517
+ const tools = createMockTools();
518
+ const raModule = createBridgeReasonerActorModule(throwingAdapter, tools, ws, raWritePort, raReadPort, obsPort, { maxToolsPerCycle: 5, maxOutputTokens: 8192, wsCapacity: 8, cycleNumber: 1, maxCycles: 15 }, onEvent);
519
+ obsPort.write({ source: moduleId('observer'), content: 'Do something', salience: 0.95, timestamp: Date.now() });
520
+ const state = raModule.initialState();
521
+ const control = defaultBridgeMonitorControl();
522
+ // step() should NOT throw even though adapter.invoke throws
523
+ const result = await raModule.step('Do something', state, control);
524
+ // Assert: an error event was emitted
525
+ const errorEvent = events.find(e => e.type === 'cycle-action' && e.action === 'error');
526
+ assert.ok(errorEvent, 'An error cycle-action event should be emitted');
527
+ // Assert: cycleDone should be false (error breaks the inner loop, but doesn't set cycleDone)
528
+ // The error is caught by the outer try/catch which breaks out of the while loop.
529
+ // cycleDone stays false since 'done' was never reached.
530
+ assert.equal(result.monitoring.cycleDone, false, 'cycleDone should be false — error is not a clean done');
531
+ // Assert: lastOutput is empty (no successful completion)
532
+ assert.equal(result.monitoring.lastOutput, '', 'lastOutput should be empty on adapter error');
533
+ });
534
+ });
535
+ //# sourceMappingURL=cognitive-modules.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cognitive-modules.test.js","sourceRoot":"","sources":["../../../src/sessions/__tests__/cognitive-modules.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Tests for cognitive-provider v2 (PRD 040 C-2).
3
+ *
4
+ * Mocks the ProviderAdapter and ToolProvider to test:
5
+ * 1. Multi-tool cycles
6
+ * 2. Workspace persistence across prompts
7
+ * 3. Cost/token accumulation
8
+ * 4. Cycle limit enforcement
9
+ * 5. Edit tool execution in a cycle
10
+ * 6. Impasse detection (consecutive identical actions)
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=cognitive-provider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cognitive-provider.test.d.ts","sourceRoot":"","sources":["../../../src/sessions/__tests__/cognitive-provider.test.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG"}