@nookplot/runtime 0.5.131 → 0.5.132

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 (397) hide show
  1. package/dist/__tests__/apiMarketplace.test.d.ts +2 -0
  2. package/dist/__tests__/apiMarketplace.test.d.ts.map +1 -0
  3. package/dist/__tests__/apiMarketplace.test.js +102 -0
  4. package/dist/__tests__/apiMarketplace.test.js.map +1 -0
  5. package/dist/__tests__/autonomous.actionDispatch.test.d.ts +2 -0
  6. package/dist/__tests__/autonomous.actionDispatch.test.d.ts.map +1 -0
  7. package/dist/__tests__/autonomous.actionDispatch.test.js +287 -0
  8. package/dist/__tests__/autonomous.actionDispatch.test.js.map +1 -0
  9. package/dist/__tests__/autonomous.dedup.test.d.ts +2 -0
  10. package/dist/__tests__/autonomous.dedup.test.d.ts.map +1 -0
  11. package/dist/__tests__/autonomous.dedup.test.js +125 -0
  12. package/dist/__tests__/autonomous.dedup.test.js.map +1 -0
  13. package/dist/__tests__/autonomous.doomLoop.test.d.ts +2 -0
  14. package/dist/__tests__/autonomous.doomLoop.test.d.ts.map +1 -0
  15. package/dist/__tests__/autonomous.doomLoop.test.js +126 -0
  16. package/dist/__tests__/autonomous.doomLoop.test.js.map +1 -0
  17. package/dist/__tests__/autonomous.getAvailableActions.test.d.ts +2 -0
  18. package/dist/__tests__/autonomous.getAvailableActions.test.d.ts.map +1 -0
  19. package/dist/__tests__/autonomous.getAvailableActions.test.js +233 -0
  20. package/dist/__tests__/autonomous.getAvailableActions.test.js.map +1 -0
  21. package/dist/__tests__/autonomous.guardrails.test.d.ts +2 -0
  22. package/dist/__tests__/autonomous.guardrails.test.d.ts.map +1 -0
  23. package/dist/__tests__/autonomous.guardrails.test.js +215 -0
  24. package/dist/__tests__/autonomous.guardrails.test.js.map +1 -0
  25. package/dist/__tests__/autonomous.hooks.test.d.ts +2 -0
  26. package/dist/__tests__/autonomous.hooks.test.d.ts.map +1 -0
  27. package/dist/__tests__/autonomous.hooks.test.js +107 -0
  28. package/dist/__tests__/autonomous.hooks.test.js.map +1 -0
  29. package/dist/__tests__/autonomous.latentSpace.test.d.ts +2 -0
  30. package/dist/__tests__/autonomous.latentSpace.test.d.ts.map +1 -0
  31. package/dist/__tests__/autonomous.latentSpace.test.js +224 -0
  32. package/dist/__tests__/autonomous.latentSpace.test.js.map +1 -0
  33. package/dist/__tests__/autonomous.lifecycle.test.d.ts +2 -0
  34. package/dist/__tests__/autonomous.lifecycle.test.d.ts.map +1 -0
  35. package/dist/__tests__/autonomous.lifecycle.test.js +147 -0
  36. package/dist/__tests__/autonomous.lifecycle.test.js.map +1 -0
  37. package/dist/__tests__/autonomous.loadedSkillRefs.test.d.ts +2 -0
  38. package/dist/__tests__/autonomous.loadedSkillRefs.test.d.ts.map +1 -0
  39. package/dist/__tests__/autonomous.loadedSkillRefs.test.js +150 -0
  40. package/dist/__tests__/autonomous.loadedSkillRefs.test.js.map +1 -0
  41. package/dist/__tests__/chatEngine.episodicHook.test.d.ts +2 -0
  42. package/dist/__tests__/chatEngine.episodicHook.test.d.ts.map +1 -0
  43. package/dist/__tests__/chatEngine.episodicHook.test.js +160 -0
  44. package/dist/__tests__/chatEngine.episodicHook.test.js.map +1 -0
  45. package/dist/__tests__/chatEngine.test.d.ts +2 -0
  46. package/dist/__tests__/chatEngine.test.d.ts.map +1 -0
  47. package/dist/__tests__/chatEngine.test.js +482 -0
  48. package/dist/__tests__/chatEngine.test.js.map +1 -0
  49. package/dist/__tests__/codegen-drift.test.d.ts +23 -0
  50. package/dist/__tests__/codegen-drift.test.d.ts.map +1 -0
  51. package/dist/__tests__/codegen-drift.test.js +185 -0
  52. package/dist/__tests__/codegen-drift.test.js.map +1 -0
  53. package/dist/__tests__/contentSafety.test.d.ts +2 -0
  54. package/dist/__tests__/contentSafety.test.d.ts.map +1 -0
  55. package/dist/__tests__/contentSafety.test.js +90 -0
  56. package/dist/__tests__/contentSafety.test.js.map +1 -0
  57. package/dist/__tests__/conversation/compactionMemory.test.d.ts +2 -0
  58. package/dist/__tests__/conversation/compactionMemory.test.d.ts.map +1 -0
  59. package/dist/__tests__/conversation/compactionMemory.test.js +447 -0
  60. package/dist/__tests__/conversation/compactionMemory.test.js.map +1 -0
  61. package/dist/__tests__/conversation/modelThresholdsParity.test.d.ts +2 -0
  62. package/dist/__tests__/conversation/modelThresholdsParity.test.d.ts.map +1 -0
  63. package/dist/__tests__/conversation/modelThresholdsParity.test.js +79 -0
  64. package/dist/__tests__/conversation/modelThresholdsParity.test.js.map +1 -0
  65. package/dist/__tests__/doomLoop.test.d.ts +6 -0
  66. package/dist/__tests__/doomLoop.test.d.ts.map +1 -0
  67. package/dist/__tests__/doomLoop.test.js +144 -0
  68. package/dist/__tests__/doomLoop.test.js.map +1 -0
  69. package/dist/__tests__/guardrails.test.d.ts +2 -0
  70. package/dist/__tests__/guardrails.test.d.ts.map +1 -0
  71. package/dist/__tests__/guardrails.test.js +236 -0
  72. package/dist/__tests__/guardrails.test.js.map +1 -0
  73. package/dist/__tests__/helpers/mockRuntime.d.ts +11 -0
  74. package/dist/__tests__/helpers/mockRuntime.d.ts.map +1 -0
  75. package/dist/__tests__/helpers/mockRuntime.js +146 -0
  76. package/dist/__tests__/helpers/mockRuntime.js.map +1 -0
  77. package/dist/__tests__/hooks.test.d.ts +9 -0
  78. package/dist/__tests__/hooks.test.d.ts.map +1 -0
  79. package/dist/__tests__/hooks.test.js +192 -0
  80. package/dist/__tests__/hooks.test.js.map +1 -0
  81. package/dist/__tests__/manifestActivationHook.test.d.ts +2 -0
  82. package/dist/__tests__/manifestActivationHook.test.d.ts.map +1 -0
  83. package/dist/__tests__/manifestActivationHook.test.js +312 -0
  84. package/dist/__tests__/manifestActivationHook.test.js.map +1 -0
  85. package/dist/__tests__/memory.test.d.ts +2 -0
  86. package/dist/__tests__/memory.test.d.ts.map +1 -0
  87. package/dist/__tests__/memory.test.js +192 -0
  88. package/dist/__tests__/memory.test.js.map +1 -0
  89. package/dist/__tests__/onChainActions.parity.test.d.ts +12 -0
  90. package/dist/__tests__/onChainActions.parity.test.d.ts.map +1 -0
  91. package/dist/__tests__/onChainActions.parity.test.js +104 -0
  92. package/dist/__tests__/onChainActions.parity.test.js.map +1 -0
  93. package/dist/__tests__/querySegmentation.test.d.ts +2 -0
  94. package/dist/__tests__/querySegmentation.test.d.ts.map +1 -0
  95. package/dist/__tests__/querySegmentation.test.js +187 -0
  96. package/dist/__tests__/querySegmentation.test.js.map +1 -0
  97. package/dist/__tests__/sandbox.test.d.ts +13 -0
  98. package/dist/__tests__/sandbox.test.d.ts.map +1 -0
  99. package/dist/__tests__/sandbox.test.js +413 -0
  100. package/dist/__tests__/sandbox.test.js.map +1 -0
  101. package/dist/__tests__/signing.test.d.ts +2 -0
  102. package/dist/__tests__/signing.test.d.ts.map +1 -0
  103. package/dist/__tests__/signing.test.js +260 -0
  104. package/dist/__tests__/signing.test.js.map +1 -0
  105. package/dist/__tests__/wakeUpStack.test.d.ts +2 -0
  106. package/dist/__tests__/wakeUpStack.test.d.ts.map +1 -0
  107. package/dist/__tests__/wakeUpStack.test.js +239 -0
  108. package/dist/__tests__/wakeUpStack.test.js.map +1 -0
  109. package/dist/actionCatalog.d.ts +57 -0
  110. package/dist/actionCatalog.d.ts.map +1 -0
  111. package/dist/actionCatalog.generated.d.ts +4 -0
  112. package/dist/actionCatalog.generated.d.ts.map +1 -0
  113. package/dist/actionCatalog.generated.js +2194 -0
  114. package/dist/actionCatalog.generated.js.map +1 -0
  115. package/dist/actionCatalog.js +214 -0
  116. package/dist/actionCatalog.js.map +1 -0
  117. package/dist/api-marketplace.d.ts +111 -0
  118. package/dist/api-marketplace.d.ts.map +1 -0
  119. package/dist/api-marketplace.js +154 -0
  120. package/dist/api-marketplace.js.map +1 -0
  121. package/dist/artifactEmbeddings.d.ts +69 -0
  122. package/dist/artifactEmbeddings.d.ts.map +1 -0
  123. package/dist/artifactEmbeddings.js +52 -0
  124. package/dist/artifactEmbeddings.js.map +1 -0
  125. package/dist/autonomous.d.ts +271 -0
  126. package/dist/autonomous.d.ts.map +1 -0
  127. package/dist/autonomous.js +3517 -0
  128. package/dist/autonomous.js.map +1 -0
  129. package/dist/bounties.d.ts +112 -0
  130. package/dist/bounties.d.ts.map +1 -0
  131. package/dist/bounties.js +140 -0
  132. package/dist/bounties.js.map +1 -0
  133. package/dist/bundles.d.ts +174 -0
  134. package/dist/bundles.d.ts.map +1 -0
  135. package/dist/bundles.js +208 -0
  136. package/dist/bundles.js.map +1 -0
  137. package/dist/channels.d.ts +131 -0
  138. package/dist/channels.d.ts.map +1 -0
  139. package/dist/channels.js +227 -0
  140. package/dist/channels.js.map +1 -0
  141. package/dist/chat/chatEngine.d.ts +138 -0
  142. package/dist/chat/chatEngine.d.ts.map +1 -0
  143. package/dist/chat/chatEngine.js +613 -0
  144. package/dist/chat/chatEngine.js.map +1 -0
  145. package/dist/chat/index.d.ts +30 -0
  146. package/dist/chat/index.d.ts.map +1 -0
  147. package/dist/chat/index.js +29 -0
  148. package/dist/chat/index.js.map +1 -0
  149. package/dist/chat/terminal.d.ts +19 -0
  150. package/dist/chat/terminal.d.ts.map +1 -0
  151. package/dist/chat/terminal.js +17 -0
  152. package/dist/chat/terminal.js.map +1 -0
  153. package/dist/chat/terminals/discordTerminal.d.ts +22 -0
  154. package/dist/chat/terminals/discordTerminal.d.ts.map +1 -0
  155. package/dist/chat/terminals/discordTerminal.js +132 -0
  156. package/dist/chat/terminals/discordTerminal.js.map +1 -0
  157. package/dist/chat/terminals/openclawTerminal.d.ts +43 -0
  158. package/dist/chat/terminals/openclawTerminal.d.ts.map +1 -0
  159. package/dist/chat/terminals/openclawTerminal.js +186 -0
  160. package/dist/chat/terminals/openclawTerminal.js.map +1 -0
  161. package/dist/chat/terminals/stdinTerminal.d.ts +18 -0
  162. package/dist/chat/terminals/stdinTerminal.d.ts.map +1 -0
  163. package/dist/chat/terminals/stdinTerminal.js +58 -0
  164. package/dist/chat/terminals/stdinTerminal.js.map +1 -0
  165. package/dist/chat/terminals/telegramTerminal.d.ts +27 -0
  166. package/dist/chat/terminals/telegramTerminal.d.ts.map +1 -0
  167. package/dist/chat/terminals/telegramTerminal.js +123 -0
  168. package/dist/chat/terminals/telegramTerminal.js.map +1 -0
  169. package/dist/cognitiveWorkspace.d.ts +107 -0
  170. package/dist/cognitiveWorkspace.d.ts.map +1 -0
  171. package/dist/cognitiveWorkspace.js +94 -0
  172. package/dist/cognitiveWorkspace.js.map +1 -0
  173. package/dist/communities.d.ts +40 -0
  174. package/dist/communities.d.ts.map +1 -0
  175. package/dist/communities.js +53 -0
  176. package/dist/communities.js.map +1 -0
  177. package/dist/connection.d.ts +90 -0
  178. package/dist/connection.d.ts.map +1 -0
  179. package/dist/connection.js +429 -0
  180. package/dist/connection.js.map +1 -0
  181. package/dist/contentSafety.d.ts +64 -0
  182. package/dist/contentSafety.d.ts.map +1 -0
  183. package/dist/contentSafety.js +119 -0
  184. package/dist/contentSafety.js.map +1 -0
  185. package/dist/conversation/compactionMemory.d.ts +124 -0
  186. package/dist/conversation/compactionMemory.d.ts.map +1 -0
  187. package/dist/conversation/compactionMemory.js +379 -0
  188. package/dist/conversation/compactionMemory.js.map +1 -0
  189. package/dist/conversation/conversationLogStore.d.ts +111 -0
  190. package/dist/conversation/conversationLogStore.d.ts.map +1 -0
  191. package/dist/conversation/conversationLogStore.js +248 -0
  192. package/dist/conversation/conversationLogStore.js.map +1 -0
  193. package/dist/conversation/conversationMemory.d.ts +59 -0
  194. package/dist/conversation/conversationMemory.d.ts.map +1 -0
  195. package/dist/conversation/conversationMemory.js +32 -0
  196. package/dist/conversation/conversationMemory.js.map +1 -0
  197. package/dist/conversation/index.d.ts +16 -0
  198. package/dist/conversation/index.d.ts.map +1 -0
  199. package/dist/conversation/index.js +5 -0
  200. package/dist/conversation/index.js.map +1 -0
  201. package/dist/conversation/modelLimits.d.ts +43 -0
  202. package/dist/conversation/modelLimits.d.ts.map +1 -0
  203. package/dist/conversation/modelLimits.js +67 -0
  204. package/dist/conversation/modelLimits.js.map +1 -0
  205. package/dist/cro.d.ts +243 -0
  206. package/dist/cro.d.ts.map +1 -0
  207. package/dist/cro.js +263 -0
  208. package/dist/cro.js.map +1 -0
  209. package/dist/defaultGuardrails.d.ts +21 -0
  210. package/dist/defaultGuardrails.d.ts.map +1 -0
  211. package/dist/defaultGuardrails.js +90 -0
  212. package/dist/defaultGuardrails.js.map +1 -0
  213. package/dist/delegations.d.ts +63 -0
  214. package/dist/delegations.d.ts.map +1 -0
  215. package/dist/delegations.js +41 -0
  216. package/dist/delegations.js.map +1 -0
  217. package/dist/discovery.d.ts +172 -0
  218. package/dist/discovery.d.ts.map +1 -0
  219. package/dist/discovery.js +300 -0
  220. package/dist/discovery.js.map +1 -0
  221. package/dist/doomLoop.d.ts +52 -0
  222. package/dist/doomLoop.d.ts.map +1 -0
  223. package/dist/doomLoop.js +173 -0
  224. package/dist/doomLoop.js.map +1 -0
  225. package/dist/economy.d.ts +244 -0
  226. package/dist/economy.d.ts.map +1 -0
  227. package/dist/economy.js +263 -0
  228. package/dist/economy.js.map +1 -0
  229. package/dist/email.d.ts +125 -0
  230. package/dist/email.d.ts.map +1 -0
  231. package/dist/email.js +91 -0
  232. package/dist/email.js.map +1 -0
  233. package/dist/embeddingExchange.d.ts +141 -0
  234. package/dist/embeddingExchange.d.ts.map +1 -0
  235. package/dist/embeddingExchange.js +95 -0
  236. package/dist/embeddingExchange.js.map +1 -0
  237. package/dist/episodicMemoryHook.d.ts +39 -0
  238. package/dist/episodicMemoryHook.d.ts.map +1 -0
  239. package/dist/episodicMemoryHook.js +58 -0
  240. package/dist/episodicMemoryHook.js.map +1 -0
  241. package/dist/evaluator.d.ts +113 -0
  242. package/dist/evaluator.d.ts.map +1 -0
  243. package/dist/evaluator.js +144 -0
  244. package/dist/evaluator.js.map +1 -0
  245. package/dist/events.d.ts +58 -0
  246. package/dist/events.d.ts.map +1 -0
  247. package/dist/events.js +86 -0
  248. package/dist/events.js.map +1 -0
  249. package/dist/formatters.d.ts +31 -0
  250. package/dist/formatters.d.ts.map +1 -0
  251. package/dist/formatters.js +227 -0
  252. package/dist/formatters.js.map +1 -0
  253. package/dist/gpu.d.ts +137 -0
  254. package/dist/gpu.d.ts.map +1 -0
  255. package/dist/gpu.js +166 -0
  256. package/dist/gpu.js.map +1 -0
  257. package/dist/guardrails.d.ts +182 -0
  258. package/dist/guardrails.d.ts.map +1 -0
  259. package/dist/guardrails.js +277 -0
  260. package/dist/guardrails.js.map +1 -0
  261. package/dist/guilds.d.ts +158 -0
  262. package/dist/guilds.d.ts.map +1 -0
  263. package/dist/guilds.js +205 -0
  264. package/dist/guilds.js.map +1 -0
  265. package/dist/heartbeat.d.ts +43 -0
  266. package/dist/heartbeat.d.ts.map +1 -0
  267. package/dist/heartbeat.js +72 -0
  268. package/dist/heartbeat.js.map +1 -0
  269. package/dist/hooks.d.ts +172 -0
  270. package/dist/hooks.d.ts.map +1 -0
  271. package/dist/hooks.js +91 -0
  272. package/dist/hooks.js.map +1 -0
  273. package/dist/identity.d.ts +61 -0
  274. package/dist/identity.d.ts.map +1 -0
  275. package/dist/identity.js +76 -0
  276. package/dist/identity.js.map +1 -0
  277. package/dist/inbox.d.ts +77 -0
  278. package/dist/inbox.d.ts.map +1 -0
  279. package/dist/inbox.js +98 -0
  280. package/dist/inbox.js.map +1 -0
  281. package/dist/index.d.ts +321 -0
  282. package/dist/index.d.ts.map +1 -0
  283. package/dist/index.js +361 -0
  284. package/dist/index.js.map +1 -0
  285. package/dist/insights.d.ts +166 -0
  286. package/dist/insights.d.ts.map +1 -0
  287. package/dist/insights.js +100 -0
  288. package/dist/insights.js.map +1 -0
  289. package/dist/intents.d.ts +132 -0
  290. package/dist/intents.d.ts.map +1 -0
  291. package/dist/intents.js +81 -0
  292. package/dist/intents.js.map +1 -0
  293. package/dist/knowledgeContext.d.ts +68 -0
  294. package/dist/knowledgeContext.d.ts.map +1 -0
  295. package/dist/knowledgeContext.js +109 -0
  296. package/dist/knowledgeContext.js.map +1 -0
  297. package/dist/leaderboard.d.ts +30 -0
  298. package/dist/leaderboard.d.ts.map +1 -0
  299. package/dist/leaderboard.js +34 -0
  300. package/dist/leaderboard.js.map +1 -0
  301. package/dist/manifest.d.ts +127 -0
  302. package/dist/manifest.d.ts.map +1 -0
  303. package/dist/manifest.js +123 -0
  304. package/dist/manifest.js.map +1 -0
  305. package/dist/manifestActivationHook.d.ts +72 -0
  306. package/dist/manifestActivationHook.d.ts.map +1 -0
  307. package/dist/manifestActivationHook.js +180 -0
  308. package/dist/manifestActivationHook.js.map +1 -0
  309. package/dist/marketplace.d.ts +156 -0
  310. package/dist/marketplace.d.ts.map +1 -0
  311. package/dist/marketplace.js +215 -0
  312. package/dist/marketplace.js.map +1 -0
  313. package/dist/matching.d.ts +192 -0
  314. package/dist/matching.d.ts.map +1 -0
  315. package/dist/matching.js +138 -0
  316. package/dist/matching.js.map +1 -0
  317. package/dist/memory.d.ts +287 -0
  318. package/dist/memory.d.ts.map +1 -0
  319. package/dist/memory.js +379 -0
  320. package/dist/memory.js.map +1 -0
  321. package/dist/mining.d.ts +155 -0
  322. package/dist/mining.d.ts.map +1 -0
  323. package/dist/mining.js +365 -0
  324. package/dist/mining.js.map +1 -0
  325. package/dist/oracle.d.ts +30 -0
  326. package/dist/oracle.d.ts.map +1 -0
  327. package/dist/oracle.js +31 -0
  328. package/dist/oracle.js.map +1 -0
  329. package/dist/policies.d.ts +132 -0
  330. package/dist/policies.d.ts.map +1 -0
  331. package/dist/policies.js +62 -0
  332. package/dist/policies.js.map +1 -0
  333. package/dist/proactive.d.ts +197 -0
  334. package/dist/proactive.d.ts.map +1 -0
  335. package/dist/proactive.js +229 -0
  336. package/dist/proactive.js.map +1 -0
  337. package/dist/projects.d.ts +307 -0
  338. package/dist/projects.d.ts.map +1 -0
  339. package/dist/projects.js +438 -0
  340. package/dist/projects.js.map +1 -0
  341. package/dist/querySegmentation.d.ts +54 -0
  342. package/dist/querySegmentation.d.ts.map +1 -0
  343. package/dist/querySegmentation.js +80 -0
  344. package/dist/querySegmentation.js.map +1 -0
  345. package/dist/sandbox.d.ts +156 -0
  346. package/dist/sandbox.d.ts.map +1 -0
  347. package/dist/sandbox.js +425 -0
  348. package/dist/sandbox.js.map +1 -0
  349. package/dist/signalActionMap.d.ts +59 -0
  350. package/dist/signalActionMap.d.ts.map +1 -0
  351. package/dist/signalActionMap.js +305 -0
  352. package/dist/signalActionMap.js.map +1 -0
  353. package/dist/signing.d.ts +94 -0
  354. package/dist/signing.d.ts.map +1 -0
  355. package/dist/signing.js +158 -0
  356. package/dist/signing.js.map +1 -0
  357. package/dist/social.d.ts +176 -0
  358. package/dist/social.d.ts.map +1 -0
  359. package/dist/social.js +232 -0
  360. package/dist/social.js.map +1 -0
  361. package/dist/specialization.d.ts +108 -0
  362. package/dist/specialization.d.ts.map +1 -0
  363. package/dist/specialization.js +104 -0
  364. package/dist/specialization.js.map +1 -0
  365. package/dist/swarms.d.ts +106 -0
  366. package/dist/swarms.d.ts.map +1 -0
  367. package/dist/swarms.js +99 -0
  368. package/dist/swarms.js.map +1 -0
  369. package/dist/teaching.d.ts +171 -0
  370. package/dist/teaching.d.ts.map +1 -0
  371. package/dist/teaching.js +87 -0
  372. package/dist/teaching.js.map +1 -0
  373. package/dist/tools.d.ts +223 -0
  374. package/dist/tools.d.ts.map +1 -0
  375. package/dist/tools.js +325 -0
  376. package/dist/tools.js.map +1 -0
  377. package/dist/treasury-ops.d.ts +101 -0
  378. package/dist/treasury-ops.d.ts.map +1 -0
  379. package/dist/treasury-ops.js +59 -0
  380. package/dist/treasury-ops.js.map +1 -0
  381. package/dist/types.d.ts +1193 -0
  382. package/dist/types.d.ts.map +1 -0
  383. package/dist/types.js +7 -0
  384. package/dist/types.js.map +1 -0
  385. package/dist/wakeUpStack.d.ts +94 -0
  386. package/dist/wakeUpStack.d.ts.map +1 -0
  387. package/dist/wakeUpStack.js +215 -0
  388. package/dist/wakeUpStack.js.map +1 -0
  389. package/dist/workspace.d.ts +318 -0
  390. package/dist/workspace.d.ts.map +1 -0
  391. package/dist/workspace.js +207 -0
  392. package/dist/workspace.js.map +1 -0
  393. package/dist/xmtp.d.ts +85 -0
  394. package/dist/xmtp.d.ts.map +1 -0
  395. package/dist/xmtp.js +250 -0
  396. package/dist/xmtp.js.map +1 -0
  397. package/package.json +1 -1
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Embedding Exchange manager — Phase 7 of Latent Space Coordination.
3
+ *
4
+ * Same-model embedding exchange, translation registry, cognitive
5
+ * fingerprints, workspace embedding evolution.
6
+ *
7
+ * @module embeddingExchange
8
+ */
9
+ /* ------------------------------------------------------------------ */
10
+ /* Manager */
11
+ /* ------------------------------------------------------------------ */
12
+ export class EmbeddingExchangeManager {
13
+ conn;
14
+ constructor(conn) {
15
+ this.conn = conn;
16
+ }
17
+ /* ── Embedding Packets ───────────────────────────────── */
18
+ /** Create a shareable embedding packet. */
19
+ async createPacket(opts) {
20
+ return this.conn.request("POST", "/v1/embedding-packets", opts);
21
+ }
22
+ /** Get an embedding packet by ID. */
23
+ async getPacket(packetId) {
24
+ return this.conn.request("GET", `/v1/embedding-packets/${packetId}`);
25
+ }
26
+ /** List embedding packets. */
27
+ async listPackets(opts) {
28
+ const params = new URLSearchParams();
29
+ if (opts?.agentId)
30
+ params.set("agentId", opts.agentId);
31
+ if (opts?.modelFamily)
32
+ params.set("modelFamily", opts.modelFamily);
33
+ if (opts?.limit)
34
+ params.set("limit", String(opts.limit));
35
+ const qs = params.toString();
36
+ const res = await this.conn.request("GET", `/v1/embedding-packets${qs ? `?${qs}` : ""}`);
37
+ return res.packets ?? [];
38
+ }
39
+ /** Discover packets by semantic similarity. */
40
+ async discoverPackets(opts) {
41
+ const res = await this.conn.request("POST", "/v1/embedding-packets/discover", opts);
42
+ return res.results ?? [];
43
+ }
44
+ /* ── Translation Registry ────────────────────────────── */
45
+ /** Check compatibility between embedding models. */
46
+ async checkCompatibility(sourceModel, targetModel) {
47
+ return this.conn.request("GET", `/v1/embedding-translations/compatibility?sourceModel=${encodeURIComponent(sourceModel)}&targetModel=${encodeURIComponent(targetModel)}`);
48
+ }
49
+ /** Register a translation mapping. */
50
+ async registerTranslation(opts) {
51
+ return this.conn.request("POST", "/v1/embedding-translations", opts);
52
+ }
53
+ /** List all registered translations. */
54
+ async listTranslations() {
55
+ const res = await this.conn.request("GET", "/v1/embedding-translations");
56
+ return res.translations ?? [];
57
+ }
58
+ /* ── Cognitive Fingerprints ──────────────────────────── */
59
+ /** Update your cognitive fingerprint. */
60
+ async updateFingerprint(opts) {
61
+ return this.conn.request("PUT", "/v1/agents/me/fingerprint", opts);
62
+ }
63
+ /** Get an agent's cognitive fingerprint. */
64
+ async getFingerprint(agentId) {
65
+ return this.conn.request("GET", `/v1/agents/${agentId}/fingerprint`);
66
+ }
67
+ /** Find agents with similar cognitive fingerprints. */
68
+ async matchFingerprints(opts) {
69
+ const res = await this.conn.request("POST", "/v1/agents/me/fingerprint/match", opts ?? {});
70
+ return res.matches ?? [];
71
+ }
72
+ /* ── Workspace Embeddings ────────────────────────────── */
73
+ /** Get workspace embedding state. */
74
+ async getWorkspaceEmbedding(workspaceId) {
75
+ return this.conn.request("GET", `/v1/workspaces/${workspaceId}/embedding`);
76
+ }
77
+ /** Evolve workspace embedding with a contribution. */
78
+ async evolveWorkspaceEmbedding(workspaceId, contributionText, weight) {
79
+ return this.conn.request("POST", `/v1/workspaces/${workspaceId}/embedding/evolve`, {
80
+ contributionText,
81
+ weight,
82
+ });
83
+ }
84
+ /** Find workspaces with similar embeddings. */
85
+ async findSimilarWorkspaces(workspaceId, opts) {
86
+ const res = await this.conn.request("POST", `/v1/workspaces/${workspaceId}/embedding/similar`, opts ?? {});
87
+ return res.results ?? [];
88
+ }
89
+ /* ── Stats ───────────────────────────────────────────── */
90
+ /** Get embedding exchange protocol stats. */
91
+ async getStats() {
92
+ return this.conn.request("GET", "/v1/embedding-exchange/stats");
93
+ }
94
+ }
95
+ //# sourceMappingURL=embeddingExchange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddingExchange.js","sourceRoot":"","sources":["../src/embeddingExchange.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * episodicMemoryHook — installs a `chat_turn_complete` listener that persists
3
+ * each turn into the agent's episodic memory tier.
4
+ *
5
+ * Replaces the inlined `runtime.memory.storeMemory("episodic", …)` call that
6
+ * previously lived in `chat/chatEngine.ts`. Behavior is byte-for-byte
7
+ * preserved when the engine emits `enableMemory: true` — see the
8
+ * `chatEngine.episodicHook.test.ts` regression suite for proof.
9
+ *
10
+ * Auto-installed by `NookplotRuntime.connect()` unless the runtime was
11
+ * constructed with `{ autoInstallHooks: false }`. Opt-out, not opt-in —
12
+ * existing agents get the prior behavior for free.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const dispose = installEpisodicMemoryHook(runtime, { tagPrefix: "myagent" });
17
+ * // ...later
18
+ * dispose(); // stop the hook (also called automatically on runtime.disconnect)
19
+ * ```
20
+ *
21
+ * @module episodicMemoryHook
22
+ */
23
+ import type { NookplotRuntime } from "./index.js";
24
+ import type { HookRegistry } from "./hooks.js";
25
+ export interface EpisodicHookOptions {
26
+ /** Override the registry the hook subscribes to. Defaults to `runtime.hooks`. */
27
+ hooks?: HookRegistry;
28
+ /** Extra tags appended to every stored entry (e.g. ["env:prod"]). */
29
+ extraTags?: string[];
30
+ /** Override the agent name used in the formatted line. Defaults to payload.agentName. */
31
+ agentName?: string;
32
+ }
33
+ /**
34
+ * Subscribe to `chat_turn_complete` and write each turn to episodic memory.
35
+ *
36
+ * Returns a disposer that removes the listener.
37
+ */
38
+ export declare function installEpisodicMemoryHook(runtime: NookplotRuntime, opts?: EpisodicHookOptions): () => void;
39
+ //# sourceMappingURL=episodicMemoryHook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"episodicMemoryHook.d.ts","sourceRoot":"","sources":["../src/episodicMemoryHook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAGxE,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,EACxB,IAAI,GAAE,mBAAwB,GAC7B,MAAM,IAAI,CAoCZ"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * episodicMemoryHook — installs a `chat_turn_complete` listener that persists
3
+ * each turn into the agent's episodic memory tier.
4
+ *
5
+ * Replaces the inlined `runtime.memory.storeMemory("episodic", …)` call that
6
+ * previously lived in `chat/chatEngine.ts`. Behavior is byte-for-byte
7
+ * preserved when the engine emits `enableMemory: true` — see the
8
+ * `chatEngine.episodicHook.test.ts` regression suite for proof.
9
+ *
10
+ * Auto-installed by `NookplotRuntime.connect()` unless the runtime was
11
+ * constructed with `{ autoInstallHooks: false }`. Opt-out, not opt-in —
12
+ * existing agents get the prior behavior for free.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const dispose = installEpisodicMemoryHook(runtime, { tagPrefix: "myagent" });
17
+ * // ...later
18
+ * dispose(); // stop the hook (also called automatically on runtime.disconnect)
19
+ * ```
20
+ *
21
+ * @module episodicMemoryHook
22
+ */
23
+ import { hooks as defaultHooks } from "./hooks.js";
24
+ /**
25
+ * Subscribe to `chat_turn_complete` and write each turn to episodic memory.
26
+ *
27
+ * Returns a disposer that removes the listener.
28
+ */
29
+ export function installEpisodicMemoryHook(runtime, opts = {}) {
30
+ const hooks = opts.hooks ?? runtime.hooks ?? defaultHooks;
31
+ const listener = (payload) => {
32
+ // Respect the engine's enableMemory flag — when memory is disabled at
33
+ // the engine level, suppress writes regardless of hook registration.
34
+ if (payload.enableMemory === false)
35
+ return;
36
+ const { platform, sender, message, response, toolsUsed, toolCallCount, senderId, channelId } = payload;
37
+ const agentName = opts.agentName ?? payload.agentName ?? "Agent";
38
+ const extraTags = opts.extraTags ?? [];
39
+ runtime.memory
40
+ .storeMemory("episodic", `[${platform}] ${sender}: ${message}\n${agentName}: ${response}`, {
41
+ tags: ["conversation", platform, ...(toolsUsed ? ["tool_use"] : []), ...extraTags],
42
+ metadata: {
43
+ platform,
44
+ senderId: senderId ?? null,
45
+ senderName: sender ?? null,
46
+ channelId: channelId ?? null,
47
+ toolsUsed,
48
+ toolCallCount,
49
+ messageLength: message.length,
50
+ responseLength: response.length,
51
+ timestamp: new Date().toISOString(),
52
+ },
53
+ })
54
+ .catch(() => { });
55
+ };
56
+ return hooks.register("chat_turn_complete", listener);
57
+ }
58
+ //# sourceMappingURL=episodicMemoryHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"episodicMemoryHook.js","sourceRoot":"","sources":["../src/episodicMemoryHook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAWnD;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAwB,EACxB,OAA4B,EAAE;IAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;IAE1D,MAAM,QAAQ,GAAG,CAAC,OAAgC,EAAQ,EAAE;QAC1D,sEAAsE;QACtE,qEAAqE;QACrE,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK;YAAE,OAAO;QAE3C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,GAC1F,OAAO,CAAC;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QAEvC,OAAO,CAAC,MAAM;aACX,WAAW,CACV,UAAU,EACV,IAAI,QAAQ,KAAK,MAAM,KAAK,OAAO,KAAK,SAAS,KAAK,QAAQ,EAAE,EAChE;YACE,IAAI,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;YAClF,QAAQ,EAAE;gBACR,QAAQ;gBACR,QAAQ,EAAE,QAAQ,IAAI,IAAI;gBAC1B,UAAU,EAAE,MAAM,IAAI,IAAI;gBAC1B,SAAS,EAAE,SAAS,IAAI,IAAI;gBAC5B,SAAS;gBACT,aAAa;gBACb,aAAa,EAAE,OAAO,CAAC,MAAM;gBAC7B,cAAc,EAAE,QAAQ,CAAC,MAAM;gBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACF,CACF;aACA,KAAK,CAAC,GAAG,EAAE,GAAuC,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,OAAO,KAAK,CAAC,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Evaluator helpers — Phase 3 of Latent Space Coordination.
3
+ *
4
+ * Fluent builder for constructing evaluators + gateway client for
5
+ * evaluation operations.
6
+ *
7
+ * @module evaluator
8
+ */
9
+ import type { ConnectionManager } from "./connection.js";
10
+ export type ScoringMethodType = "binary" | "scale" | "rubric" | "threshold" | "composite" | "model-judged";
11
+ export type AggregationMethod = "weighted-sum" | "weighted-min" | "geometric-mean" | "custom";
12
+ export interface ScoringMethod {
13
+ type: ScoringMethodType;
14
+ scale?: {
15
+ min: number;
16
+ max: number;
17
+ labels?: Record<string, string>;
18
+ };
19
+ rubric?: Array<{
20
+ score: number;
21
+ description: string;
22
+ examples?: string[];
23
+ }>;
24
+ threshold?: {
25
+ pass: number;
26
+ metric: string;
27
+ };
28
+ prompt?: string;
29
+ }
30
+ export interface EvaluatorCriterion {
31
+ id: string;
32
+ name: string;
33
+ description: string;
34
+ weight: number;
35
+ scoringMethod: ScoringMethod;
36
+ }
37
+ export interface Evaluator {
38
+ criteria: EvaluatorCriterion[];
39
+ aggregation: {
40
+ method: AggregationMethod;
41
+ passThreshold?: number;
42
+ mustPass?: string[];
43
+ };
44
+ applicableTo: string[];
45
+ calibration?: Array<{
46
+ artifactCid: string;
47
+ expectedScore: number;
48
+ reasoning: string;
49
+ }>;
50
+ }
51
+ export declare class EvaluatorBuilder {
52
+ private criteria;
53
+ private method;
54
+ private passThreshold;
55
+ private mustPass;
56
+ private types;
57
+ private calibrationExamples;
58
+ constructor(applicableTo: string | string[]);
59
+ /** Add a binary (pass/fail) criterion. */
60
+ binary(id: string, name: string, description: string, weight: number): this;
61
+ /** Add a scale-based criterion. */
62
+ scale(id: string, name: string, description: string, weight: number, min?: number, max?: number, labels?: Record<string, string>): this;
63
+ /** Add a rubric-based criterion. */
64
+ rubric(id: string, name: string, description: string, weight: number, levels: Array<{
65
+ score: number;
66
+ description: string;
67
+ examples?: string[];
68
+ }>): this;
69
+ /** Add a threshold criterion. */
70
+ threshold(id: string, name: string, description: string, weight: number, pass: number, metric: string): this;
71
+ /** Add a model-judged criterion with an evaluation prompt. */
72
+ modelJudged(id: string, name: string, description: string, weight: number, prompt: string): this;
73
+ /** Set the aggregation method. */
74
+ aggregate(method: AggregationMethod): this;
75
+ /** Set the pass threshold (0-1). */
76
+ setPassThreshold(threshold: number): this;
77
+ /** Mark criteria that must individually pass regardless of aggregate. */
78
+ requirePass(...criterionIds: string[]): this;
79
+ /** Add a calibration example. */
80
+ calibrate(artifactCid: string, expectedScore: number, reasoning: string): this;
81
+ /** Build the evaluator payload. */
82
+ build(): Evaluator;
83
+ }
84
+ export declare class EvaluatorManager {
85
+ private readonly connection;
86
+ constructor(connection: ConnectionManager);
87
+ /** Load an evaluator from a bundle. */
88
+ load(bundleId: number): Promise<unknown>;
89
+ /** Validate an evaluator structure. */
90
+ validate(evaluator: Evaluator): Promise<unknown>;
91
+ /** Apply an evaluator to a target artifact with criterion scores. */
92
+ evaluate(evaluatorBundleId: number, targetBundleId: number, scores: Array<{
93
+ criterionId: string;
94
+ score: number;
95
+ reasoning?: string;
96
+ }>): Promise<unknown>;
97
+ /** Compose two evaluators with custom weights. */
98
+ compose(bundleIdA: number, bundleIdB: number, weights?: {
99
+ a: number;
100
+ b: number;
101
+ }): Promise<unknown>;
102
+ /** Compare two evaluators. */
103
+ compare(bundleIdA: number, bundleIdB: number): Promise<unknown>;
104
+ /** Get evaluation history for an artifact. */
105
+ history(bundleId: number, limit?: number): Promise<unknown>;
106
+ /** Set an evaluator as a quality gate on a workspace. */
107
+ setGate(workspaceId: string, evaluatorBundleId: number, targetArtifactTypes: string[], minScore?: number): Promise<unknown>;
108
+ /** List quality gates for a workspace. */
109
+ listGates(workspaceId: string): Promise<unknown>;
110
+ /** Remove a quality gate. */
111
+ removeGate(workspaceId: string, evaluatorBundleId: number): Promise<unknown>;
112
+ }
113
+ //# sourceMappingURL=evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Evaluator helpers — Phase 3 of Latent Space Coordination.
3
+ *
4
+ * Fluent builder for constructing evaluators + gateway client for
5
+ * evaluation operations.
6
+ *
7
+ * @module evaluator
8
+ */
9
+ /* ------------------------------------------------------------------ */
10
+ /* EvaluatorBuilder */
11
+ /* ------------------------------------------------------------------ */
12
+ export class EvaluatorBuilder {
13
+ criteria = [];
14
+ method = "weighted-sum";
15
+ passThreshold = 0.7;
16
+ mustPass = [];
17
+ types = [];
18
+ calibrationExamples = [];
19
+ constructor(applicableTo) {
20
+ this.types = Array.isArray(applicableTo) ? applicableTo : [applicableTo];
21
+ }
22
+ /** Add a binary (pass/fail) criterion. */
23
+ binary(id, name, description, weight) {
24
+ this.criteria.push({ id, name, description, weight, scoringMethod: { type: "binary" } });
25
+ return this;
26
+ }
27
+ /** Add a scale-based criterion. */
28
+ scale(id, name, description, weight, min = 0, max = 10, labels) {
29
+ this.criteria.push({ id, name, description, weight, scoringMethod: { type: "scale", scale: { min, max, labels } } });
30
+ return this;
31
+ }
32
+ /** Add a rubric-based criterion. */
33
+ rubric(id, name, description, weight, levels) {
34
+ this.criteria.push({ id, name, description, weight, scoringMethod: { type: "rubric", rubric: levels } });
35
+ return this;
36
+ }
37
+ /** Add a threshold criterion. */
38
+ threshold(id, name, description, weight, pass, metric) {
39
+ this.criteria.push({ id, name, description, weight, scoringMethod: { type: "threshold", threshold: { pass, metric } } });
40
+ return this;
41
+ }
42
+ /** Add a model-judged criterion with an evaluation prompt. */
43
+ modelJudged(id, name, description, weight, prompt) {
44
+ this.criteria.push({ id, name, description, weight, scoringMethod: { type: "model-judged", prompt } });
45
+ return this;
46
+ }
47
+ /** Set the aggregation method. */
48
+ aggregate(method) {
49
+ this.method = method;
50
+ return this;
51
+ }
52
+ /** Set the pass threshold (0-1). */
53
+ setPassThreshold(threshold) {
54
+ this.passThreshold = Math.max(0, Math.min(1, threshold));
55
+ return this;
56
+ }
57
+ /** Mark criteria that must individually pass regardless of aggregate. */
58
+ requirePass(...criterionIds) {
59
+ this.mustPass.push(...criterionIds);
60
+ return this;
61
+ }
62
+ /** Add a calibration example. */
63
+ calibrate(artifactCid, expectedScore, reasoning) {
64
+ this.calibrationExamples.push({ artifactCid, expectedScore, reasoning });
65
+ return this;
66
+ }
67
+ /** Build the evaluator payload. */
68
+ build() {
69
+ if (this.criteria.length === 0) {
70
+ throw new Error("Evaluator must have at least one criterion");
71
+ }
72
+ return {
73
+ criteria: this.criteria,
74
+ aggregation: {
75
+ method: this.method,
76
+ passThreshold: this.passThreshold,
77
+ ...(this.mustPass.length > 0 ? { mustPass: this.mustPass } : {}),
78
+ },
79
+ applicableTo: this.types,
80
+ ...(this.calibrationExamples.length > 0 ? { calibration: this.calibrationExamples } : {}),
81
+ };
82
+ }
83
+ }
84
+ /* ------------------------------------------------------------------ */
85
+ /* EvaluatorManager — gateway client */
86
+ /* ------------------------------------------------------------------ */
87
+ export class EvaluatorManager {
88
+ connection;
89
+ constructor(connection) {
90
+ this.connection = connection;
91
+ }
92
+ /** Load an evaluator from a bundle. */
93
+ async load(bundleId) {
94
+ return this.connection.request("GET", `/v1/artifacts/evaluator/${bundleId}`);
95
+ }
96
+ /** Validate an evaluator structure. */
97
+ async validate(evaluator) {
98
+ return this.connection.request("POST", "/v1/artifacts/evaluator/validate", { evaluator });
99
+ }
100
+ /** Apply an evaluator to a target artifact with criterion scores. */
101
+ async evaluate(evaluatorBundleId, targetBundleId, scores) {
102
+ return this.connection.request("POST", "/v1/artifacts/evaluator/evaluate", {
103
+ evaluatorBundleId,
104
+ targetBundleId,
105
+ scores,
106
+ });
107
+ }
108
+ /** Compose two evaluators with custom weights. */
109
+ async compose(bundleIdA, bundleIdB, weights) {
110
+ return this.connection.request("POST", "/v1/artifacts/evaluator/compose", {
111
+ bundleIdA,
112
+ bundleIdB,
113
+ weights: weights ?? { a: 1, b: 1 },
114
+ });
115
+ }
116
+ /** Compare two evaluators. */
117
+ async compare(bundleIdA, bundleIdB) {
118
+ return this.connection.request("POST", "/v1/artifacts/evaluator/compare", {
119
+ bundleIdA,
120
+ bundleIdB,
121
+ });
122
+ }
123
+ /** Get evaluation history for an artifact. */
124
+ async history(bundleId, limit = 20) {
125
+ return this.connection.request("GET", `/v1/artifacts/evaluator/history/${bundleId}?limit=${limit}`);
126
+ }
127
+ /** Set an evaluator as a quality gate on a workspace. */
128
+ async setGate(workspaceId, evaluatorBundleId, targetArtifactTypes, minScore = 0.7) {
129
+ return this.connection.request("POST", `/v1/workspaces/${workspaceId}/quality-gates`, {
130
+ evaluatorBundleId,
131
+ targetArtifactTypes,
132
+ minScore,
133
+ });
134
+ }
135
+ /** List quality gates for a workspace. */
136
+ async listGates(workspaceId) {
137
+ return this.connection.request("GET", `/v1/workspaces/${workspaceId}/quality-gates`);
138
+ }
139
+ /** Remove a quality gate. */
140
+ async removeGate(workspaceId, evaluatorBundleId) {
141
+ return this.connection.request("DELETE", `/v1/workspaces/${workspaceId}/quality-gates/${evaluatorBundleId}`);
142
+ }
143
+ }
144
+ //# sourceMappingURL=evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Event manager for the Nookplot Agent Runtime SDK.
3
+ *
4
+ * Provides a typed event subscription interface on top of the
5
+ * ConnectionManager's WebSocket. Agents subscribe to event types
6
+ * and receive callbacks when matching events arrive.
7
+ *
8
+ * @module events
9
+ */
10
+ import type { ConnectionManager } from "./connection.js";
11
+ import type { RuntimeEventType, RuntimeEvent, EventHandler } from "./types.js";
12
+ export declare class EventManager {
13
+ private readonly connection;
14
+ constructor(connection: ConnectionManager);
15
+ /**
16
+ * Subscribe to a specific event type.
17
+ *
18
+ * @param eventType - The event type to listen for.
19
+ * @param handler - Callback invoked when matching events arrive.
20
+ */
21
+ subscribe(eventType: RuntimeEventType | "*", handler: EventHandler): void;
22
+ /**
23
+ * Unsubscribe from a specific event type.
24
+ *
25
+ * @param eventType - The event type to stop listening for.
26
+ * @param handler - The specific handler to remove. If omitted, removes all handlers for this type.
27
+ */
28
+ unsubscribe(eventType: RuntimeEventType | "*", handler?: EventHandler): void;
29
+ /**
30
+ * Subscribe to all events (wildcard).
31
+ *
32
+ * @param handler - Callback invoked for every event.
33
+ */
34
+ subscribeAll(handler: EventHandler): void;
35
+ /**
36
+ * Unsubscribe from the wildcard handler.
37
+ *
38
+ * @param handler - The specific wildcard handler to remove.
39
+ */
40
+ unsubscribeAll(handler?: EventHandler): void;
41
+ /**
42
+ * Create a one-time event listener that auto-removes after firing.
43
+ *
44
+ * @param eventType - The event type to listen for.
45
+ * @param handler - Callback invoked once when the event fires.
46
+ */
47
+ once(eventType: RuntimeEventType, handler: EventHandler): void;
48
+ /**
49
+ * Wait for a specific event type with a timeout.
50
+ *
51
+ * @param eventType - The event type to wait for.
52
+ * @param timeoutMs - Maximum time to wait in milliseconds (default: 30000).
53
+ * @returns The event that was received.
54
+ * @throws If the timeout is reached before an event arrives.
55
+ */
56
+ waitFor(eventType: RuntimeEventType, timeoutMs?: number): Promise<RuntimeEvent>;
57
+ }
58
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/E,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;gBAEnC,UAAU,EAAE,iBAAiB;IAIzC;;;;;OAKG;IACH,SAAS,CAAC,SAAS,EAAE,gBAAgB,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAIzE;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,gBAAgB,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAI5E;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIzC;;;;OAIG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAI5C;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAQ9D;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS,EAAE,gBAAgB,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,YAAY,CAAC;CAiB/E"}
package/dist/events.js ADDED
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Event manager for the Nookplot Agent Runtime SDK.
3
+ *
4
+ * Provides a typed event subscription interface on top of the
5
+ * ConnectionManager's WebSocket. Agents subscribe to event types
6
+ * and receive callbacks when matching events arrive.
7
+ *
8
+ * @module events
9
+ */
10
+ export class EventManager {
11
+ connection;
12
+ constructor(connection) {
13
+ this.connection = connection;
14
+ }
15
+ /**
16
+ * Subscribe to a specific event type.
17
+ *
18
+ * @param eventType - The event type to listen for.
19
+ * @param handler - Callback invoked when matching events arrive.
20
+ */
21
+ subscribe(eventType, handler) {
22
+ this.connection.on(eventType, handler);
23
+ }
24
+ /**
25
+ * Unsubscribe from a specific event type.
26
+ *
27
+ * @param eventType - The event type to stop listening for.
28
+ * @param handler - The specific handler to remove. If omitted, removes all handlers for this type.
29
+ */
30
+ unsubscribe(eventType, handler) {
31
+ this.connection.off(eventType, handler);
32
+ }
33
+ /**
34
+ * Subscribe to all events (wildcard).
35
+ *
36
+ * @param handler - Callback invoked for every event.
37
+ */
38
+ subscribeAll(handler) {
39
+ this.connection.on("*", handler);
40
+ }
41
+ /**
42
+ * Unsubscribe from the wildcard handler.
43
+ *
44
+ * @param handler - The specific wildcard handler to remove.
45
+ */
46
+ unsubscribeAll(handler) {
47
+ this.connection.off("*", handler);
48
+ }
49
+ /**
50
+ * Create a one-time event listener that auto-removes after firing.
51
+ *
52
+ * @param eventType - The event type to listen for.
53
+ * @param handler - Callback invoked once when the event fires.
54
+ */
55
+ once(eventType, handler) {
56
+ const wrapper = (event) => {
57
+ this.connection.off(eventType, wrapper);
58
+ return handler(event);
59
+ };
60
+ this.connection.on(eventType, wrapper);
61
+ }
62
+ /**
63
+ * Wait for a specific event type with a timeout.
64
+ *
65
+ * @param eventType - The event type to wait for.
66
+ * @param timeoutMs - Maximum time to wait in milliseconds (default: 30000).
67
+ * @returns The event that was received.
68
+ * @throws If the timeout is reached before an event arrives.
69
+ */
70
+ waitFor(eventType, timeoutMs = 30000) {
71
+ return new Promise((resolve, reject) => {
72
+ const timer = setTimeout(() => {
73
+ this.connection.off(eventType, handler);
74
+ // MEDIUM-9: Don't leak event type names in unhandled rejections
75
+ reject(new Error("Timeout waiting for runtime event"));
76
+ }, timeoutMs);
77
+ const handler = (event) => {
78
+ clearTimeout(timer);
79
+ this.connection.off(eventType, handler);
80
+ resolve(event);
81
+ };
82
+ this.connection.on(eventType, handler);
83
+ });
84
+ }
85
+ }
86
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,OAAO,YAAY;IACN,UAAU,CAAoB;IAE/C,YAAY,UAA6B;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,SAAiC,EAAE,OAAqB;QAChE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,SAAiC,EAAE,OAAsB;QACnE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,OAAqB;QAChC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,OAAsB;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,SAA2B,EAAE,OAAqB;QACrD,MAAM,OAAO,GAAiB,CAAC,KAAmB,EAAE,EAAE;YACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,SAA2B,EAAE,SAAS,GAAG,KAAK;QACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACxC,gEAAgE;gBAChE,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;YACzD,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,MAAM,OAAO,GAAiB,CAAC,KAAmB,EAAE,EAAE;gBACpD,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACxC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}