@nookplot/runtime 0.5.122 → 0.5.123

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/package.json +60 -60
  2. package/dist/__tests__/apiMarketplace.test.d.ts +0 -2
  3. package/dist/__tests__/apiMarketplace.test.d.ts.map +0 -1
  4. package/dist/__tests__/apiMarketplace.test.js +0 -102
  5. package/dist/__tests__/apiMarketplace.test.js.map +0 -1
  6. package/dist/__tests__/autonomous.actionDispatch.test.d.ts +0 -2
  7. package/dist/__tests__/autonomous.actionDispatch.test.d.ts.map +0 -1
  8. package/dist/__tests__/autonomous.actionDispatch.test.js +0 -287
  9. package/dist/__tests__/autonomous.actionDispatch.test.js.map +0 -1
  10. package/dist/__tests__/autonomous.dedup.test.d.ts +0 -2
  11. package/dist/__tests__/autonomous.dedup.test.d.ts.map +0 -1
  12. package/dist/__tests__/autonomous.dedup.test.js +0 -125
  13. package/dist/__tests__/autonomous.dedup.test.js.map +0 -1
  14. package/dist/__tests__/autonomous.doomLoop.test.d.ts +0 -2
  15. package/dist/__tests__/autonomous.doomLoop.test.d.ts.map +0 -1
  16. package/dist/__tests__/autonomous.doomLoop.test.js +0 -126
  17. package/dist/__tests__/autonomous.doomLoop.test.js.map +0 -1
  18. package/dist/__tests__/autonomous.getAvailableActions.test.d.ts +0 -2
  19. package/dist/__tests__/autonomous.getAvailableActions.test.d.ts.map +0 -1
  20. package/dist/__tests__/autonomous.getAvailableActions.test.js +0 -232
  21. package/dist/__tests__/autonomous.getAvailableActions.test.js.map +0 -1
  22. package/dist/__tests__/autonomous.guardrails.test.d.ts +0 -2
  23. package/dist/__tests__/autonomous.guardrails.test.d.ts.map +0 -1
  24. package/dist/__tests__/autonomous.guardrails.test.js +0 -215
  25. package/dist/__tests__/autonomous.guardrails.test.js.map +0 -1
  26. package/dist/__tests__/autonomous.hooks.test.d.ts +0 -2
  27. package/dist/__tests__/autonomous.hooks.test.d.ts.map +0 -1
  28. package/dist/__tests__/autonomous.hooks.test.js +0 -107
  29. package/dist/__tests__/autonomous.hooks.test.js.map +0 -1
  30. package/dist/__tests__/autonomous.latentSpace.test.d.ts +0 -2
  31. package/dist/__tests__/autonomous.latentSpace.test.d.ts.map +0 -1
  32. package/dist/__tests__/autonomous.latentSpace.test.js +0 -224
  33. package/dist/__tests__/autonomous.latentSpace.test.js.map +0 -1
  34. package/dist/__tests__/autonomous.lifecycle.test.d.ts +0 -2
  35. package/dist/__tests__/autonomous.lifecycle.test.d.ts.map +0 -1
  36. package/dist/__tests__/autonomous.lifecycle.test.js +0 -147
  37. package/dist/__tests__/autonomous.lifecycle.test.js.map +0 -1
  38. package/dist/__tests__/autonomous.loadedSkillRefs.test.d.ts +0 -2
  39. package/dist/__tests__/autonomous.loadedSkillRefs.test.d.ts.map +0 -1
  40. package/dist/__tests__/autonomous.loadedSkillRefs.test.js +0 -150
  41. package/dist/__tests__/autonomous.loadedSkillRefs.test.js.map +0 -1
  42. package/dist/__tests__/chatEngine.episodicHook.test.d.ts +0 -2
  43. package/dist/__tests__/chatEngine.episodicHook.test.d.ts.map +0 -1
  44. package/dist/__tests__/chatEngine.episodicHook.test.js +0 -160
  45. package/dist/__tests__/chatEngine.episodicHook.test.js.map +0 -1
  46. package/dist/__tests__/chatEngine.test.d.ts +0 -2
  47. package/dist/__tests__/chatEngine.test.d.ts.map +0 -1
  48. package/dist/__tests__/chatEngine.test.js +0 -482
  49. package/dist/__tests__/chatEngine.test.js.map +0 -1
  50. package/dist/__tests__/codegen-drift.test.d.ts +0 -23
  51. package/dist/__tests__/codegen-drift.test.d.ts.map +0 -1
  52. package/dist/__tests__/codegen-drift.test.js +0 -185
  53. package/dist/__tests__/codegen-drift.test.js.map +0 -1
  54. package/dist/__tests__/contentSafety.test.d.ts +0 -2
  55. package/dist/__tests__/contentSafety.test.d.ts.map +0 -1
  56. package/dist/__tests__/contentSafety.test.js +0 -90
  57. package/dist/__tests__/contentSafety.test.js.map +0 -1
  58. package/dist/__tests__/conversation/compactionMemory.test.d.ts +0 -2
  59. package/dist/__tests__/conversation/compactionMemory.test.d.ts.map +0 -1
  60. package/dist/__tests__/conversation/compactionMemory.test.js +0 -447
  61. package/dist/__tests__/conversation/compactionMemory.test.js.map +0 -1
  62. package/dist/__tests__/conversation/modelThresholdsParity.test.d.ts +0 -2
  63. package/dist/__tests__/conversation/modelThresholdsParity.test.d.ts.map +0 -1
  64. package/dist/__tests__/conversation/modelThresholdsParity.test.js +0 -79
  65. package/dist/__tests__/conversation/modelThresholdsParity.test.js.map +0 -1
  66. package/dist/__tests__/doomLoop.test.d.ts +0 -6
  67. package/dist/__tests__/doomLoop.test.d.ts.map +0 -1
  68. package/dist/__tests__/doomLoop.test.js +0 -144
  69. package/dist/__tests__/doomLoop.test.js.map +0 -1
  70. package/dist/__tests__/guardrails.test.d.ts +0 -2
  71. package/dist/__tests__/guardrails.test.d.ts.map +0 -1
  72. package/dist/__tests__/guardrails.test.js +0 -236
  73. package/dist/__tests__/guardrails.test.js.map +0 -1
  74. package/dist/__tests__/helpers/mockRuntime.d.ts +0 -11
  75. package/dist/__tests__/helpers/mockRuntime.d.ts.map +0 -1
  76. package/dist/__tests__/helpers/mockRuntime.js +0 -146
  77. package/dist/__tests__/helpers/mockRuntime.js.map +0 -1
  78. package/dist/__tests__/hooks.test.d.ts +0 -9
  79. package/dist/__tests__/hooks.test.d.ts.map +0 -1
  80. package/dist/__tests__/hooks.test.js +0 -192
  81. package/dist/__tests__/hooks.test.js.map +0 -1
  82. package/dist/__tests__/manifestActivationHook.test.d.ts +0 -2
  83. package/dist/__tests__/manifestActivationHook.test.d.ts.map +0 -1
  84. package/dist/__tests__/manifestActivationHook.test.js +0 -312
  85. package/dist/__tests__/manifestActivationHook.test.js.map +0 -1
  86. package/dist/__tests__/memory.test.d.ts +0 -2
  87. package/dist/__tests__/memory.test.d.ts.map +0 -1
  88. package/dist/__tests__/memory.test.js +0 -192
  89. package/dist/__tests__/memory.test.js.map +0 -1
  90. package/dist/__tests__/onChainActions.parity.test.d.ts +0 -12
  91. package/dist/__tests__/onChainActions.parity.test.d.ts.map +0 -1
  92. package/dist/__tests__/onChainActions.parity.test.js +0 -104
  93. package/dist/__tests__/onChainActions.parity.test.js.map +0 -1
  94. package/dist/__tests__/querySegmentation.test.d.ts +0 -2
  95. package/dist/__tests__/querySegmentation.test.d.ts.map +0 -1
  96. package/dist/__tests__/querySegmentation.test.js +0 -187
  97. package/dist/__tests__/querySegmentation.test.js.map +0 -1
  98. package/dist/__tests__/sandbox.test.d.ts +0 -13
  99. package/dist/__tests__/sandbox.test.d.ts.map +0 -1
  100. package/dist/__tests__/sandbox.test.js +0 -413
  101. package/dist/__tests__/sandbox.test.js.map +0 -1
  102. package/dist/__tests__/signing.test.d.ts +0 -2
  103. package/dist/__tests__/signing.test.d.ts.map +0 -1
  104. package/dist/__tests__/signing.test.js +0 -260
  105. package/dist/__tests__/signing.test.js.map +0 -1
  106. package/dist/__tests__/wakeUpStack.test.d.ts +0 -2
  107. package/dist/__tests__/wakeUpStack.test.d.ts.map +0 -1
  108. package/dist/__tests__/wakeUpStack.test.js +0 -239
  109. package/dist/__tests__/wakeUpStack.test.js.map +0 -1
  110. package/dist/actionCatalog.d.ts +0 -57
  111. package/dist/actionCatalog.d.ts.map +0 -1
  112. package/dist/actionCatalog.generated.d.ts +0 -4
  113. package/dist/actionCatalog.generated.d.ts.map +0 -1
  114. package/dist/actionCatalog.generated.js +0 -2149
  115. package/dist/actionCatalog.generated.js.map +0 -1
  116. package/dist/actionCatalog.js +0 -210
  117. package/dist/actionCatalog.js.map +0 -1
  118. package/dist/api-marketplace.d.ts +0 -111
  119. package/dist/api-marketplace.d.ts.map +0 -1
  120. package/dist/api-marketplace.js +0 -154
  121. package/dist/api-marketplace.js.map +0 -1
  122. package/dist/artifactEmbeddings.d.ts +0 -69
  123. package/dist/artifactEmbeddings.d.ts.map +0 -1
  124. package/dist/artifactEmbeddings.js +0 -52
  125. package/dist/artifactEmbeddings.js.map +0 -1
  126. package/dist/autonomous.d.ts +0 -271
  127. package/dist/autonomous.d.ts.map +0 -1
  128. package/dist/autonomous.js +0 -3515
  129. package/dist/autonomous.js.map +0 -1
  130. package/dist/bounties.d.ts +0 -112
  131. package/dist/bounties.d.ts.map +0 -1
  132. package/dist/bounties.js +0 -140
  133. package/dist/bounties.js.map +0 -1
  134. package/dist/bundles.d.ts +0 -174
  135. package/dist/bundles.d.ts.map +0 -1
  136. package/dist/bundles.js +0 -208
  137. package/dist/bundles.js.map +0 -1
  138. package/dist/channels.d.ts +0 -131
  139. package/dist/channels.d.ts.map +0 -1
  140. package/dist/channels.js +0 -227
  141. package/dist/channels.js.map +0 -1
  142. package/dist/chat/chatEngine.d.ts +0 -138
  143. package/dist/chat/chatEngine.d.ts.map +0 -1
  144. package/dist/chat/chatEngine.js +0 -605
  145. package/dist/chat/chatEngine.js.map +0 -1
  146. package/dist/chat/index.d.ts +0 -30
  147. package/dist/chat/index.d.ts.map +0 -1
  148. package/dist/chat/index.js +0 -29
  149. package/dist/chat/index.js.map +0 -1
  150. package/dist/chat/terminal.d.ts +0 -19
  151. package/dist/chat/terminal.d.ts.map +0 -1
  152. package/dist/chat/terminal.js +0 -17
  153. package/dist/chat/terminal.js.map +0 -1
  154. package/dist/chat/terminals/discordTerminal.d.ts +0 -22
  155. package/dist/chat/terminals/discordTerminal.d.ts.map +0 -1
  156. package/dist/chat/terminals/discordTerminal.js +0 -132
  157. package/dist/chat/terminals/discordTerminal.js.map +0 -1
  158. package/dist/chat/terminals/openclawTerminal.d.ts +0 -43
  159. package/dist/chat/terminals/openclawTerminal.d.ts.map +0 -1
  160. package/dist/chat/terminals/openclawTerminal.js +0 -186
  161. package/dist/chat/terminals/openclawTerminal.js.map +0 -1
  162. package/dist/chat/terminals/stdinTerminal.d.ts +0 -18
  163. package/dist/chat/terminals/stdinTerminal.d.ts.map +0 -1
  164. package/dist/chat/terminals/stdinTerminal.js +0 -58
  165. package/dist/chat/terminals/stdinTerminal.js.map +0 -1
  166. package/dist/chat/terminals/telegramTerminal.d.ts +0 -27
  167. package/dist/chat/terminals/telegramTerminal.d.ts.map +0 -1
  168. package/dist/chat/terminals/telegramTerminal.js +0 -123
  169. package/dist/chat/terminals/telegramTerminal.js.map +0 -1
  170. package/dist/cognitiveWorkspace.d.ts +0 -107
  171. package/dist/cognitiveWorkspace.d.ts.map +0 -1
  172. package/dist/cognitiveWorkspace.js +0 -94
  173. package/dist/cognitiveWorkspace.js.map +0 -1
  174. package/dist/communities.d.ts +0 -40
  175. package/dist/communities.d.ts.map +0 -1
  176. package/dist/communities.js +0 -53
  177. package/dist/communities.js.map +0 -1
  178. package/dist/connection.d.ts +0 -90
  179. package/dist/connection.d.ts.map +0 -1
  180. package/dist/connection.js +0 -427
  181. package/dist/connection.js.map +0 -1
  182. package/dist/contentSafety.d.ts +0 -64
  183. package/dist/contentSafety.d.ts.map +0 -1
  184. package/dist/contentSafety.js +0 -119
  185. package/dist/contentSafety.js.map +0 -1
  186. package/dist/conversation/compactionMemory.d.ts +0 -124
  187. package/dist/conversation/compactionMemory.d.ts.map +0 -1
  188. package/dist/conversation/compactionMemory.js +0 -379
  189. package/dist/conversation/compactionMemory.js.map +0 -1
  190. package/dist/conversation/conversationLogStore.d.ts +0 -111
  191. package/dist/conversation/conversationLogStore.d.ts.map +0 -1
  192. package/dist/conversation/conversationLogStore.js +0 -248
  193. package/dist/conversation/conversationLogStore.js.map +0 -1
  194. package/dist/conversation/conversationMemory.d.ts +0 -59
  195. package/dist/conversation/conversationMemory.d.ts.map +0 -1
  196. package/dist/conversation/conversationMemory.js +0 -32
  197. package/dist/conversation/conversationMemory.js.map +0 -1
  198. package/dist/conversation/index.d.ts +0 -16
  199. package/dist/conversation/index.d.ts.map +0 -1
  200. package/dist/conversation/index.js +0 -5
  201. package/dist/conversation/index.js.map +0 -1
  202. package/dist/conversation/modelLimits.d.ts +0 -43
  203. package/dist/conversation/modelLimits.d.ts.map +0 -1
  204. package/dist/conversation/modelLimits.js +0 -67
  205. package/dist/conversation/modelLimits.js.map +0 -1
  206. package/dist/cro.d.ts +0 -243
  207. package/dist/cro.d.ts.map +0 -1
  208. package/dist/cro.js +0 -263
  209. package/dist/cro.js.map +0 -1
  210. package/dist/defaultGuardrails.d.ts +0 -21
  211. package/dist/defaultGuardrails.d.ts.map +0 -1
  212. package/dist/defaultGuardrails.js +0 -90
  213. package/dist/defaultGuardrails.js.map +0 -1
  214. package/dist/delegations.d.ts +0 -63
  215. package/dist/delegations.d.ts.map +0 -1
  216. package/dist/delegations.js +0 -41
  217. package/dist/delegations.js.map +0 -1
  218. package/dist/discovery.d.ts +0 -172
  219. package/dist/discovery.d.ts.map +0 -1
  220. package/dist/discovery.js +0 -300
  221. package/dist/discovery.js.map +0 -1
  222. package/dist/doomLoop.d.ts +0 -52
  223. package/dist/doomLoop.d.ts.map +0 -1
  224. package/dist/doomLoop.js +0 -173
  225. package/dist/doomLoop.js.map +0 -1
  226. package/dist/economy.d.ts +0 -244
  227. package/dist/economy.d.ts.map +0 -1
  228. package/dist/economy.js +0 -263
  229. package/dist/economy.js.map +0 -1
  230. package/dist/email.d.ts +0 -125
  231. package/dist/email.d.ts.map +0 -1
  232. package/dist/email.js +0 -91
  233. package/dist/email.js.map +0 -1
  234. package/dist/embeddingExchange.d.ts +0 -141
  235. package/dist/embeddingExchange.d.ts.map +0 -1
  236. package/dist/embeddingExchange.js +0 -95
  237. package/dist/embeddingExchange.js.map +0 -1
  238. package/dist/episodicMemoryHook.d.ts +0 -39
  239. package/dist/episodicMemoryHook.d.ts.map +0 -1
  240. package/dist/episodicMemoryHook.js +0 -58
  241. package/dist/episodicMemoryHook.js.map +0 -1
  242. package/dist/evaluator.d.ts +0 -113
  243. package/dist/evaluator.d.ts.map +0 -1
  244. package/dist/evaluator.js +0 -144
  245. package/dist/evaluator.js.map +0 -1
  246. package/dist/events.d.ts +0 -58
  247. package/dist/events.d.ts.map +0 -1
  248. package/dist/events.js +0 -86
  249. package/dist/events.js.map +0 -1
  250. package/dist/formatters.d.ts +0 -31
  251. package/dist/formatters.d.ts.map +0 -1
  252. package/dist/formatters.js +0 -227
  253. package/dist/formatters.js.map +0 -1
  254. package/dist/gpu.d.ts +0 -137
  255. package/dist/gpu.d.ts.map +0 -1
  256. package/dist/gpu.js +0 -166
  257. package/dist/gpu.js.map +0 -1
  258. package/dist/guardrails.d.ts +0 -182
  259. package/dist/guardrails.d.ts.map +0 -1
  260. package/dist/guardrails.js +0 -277
  261. package/dist/guardrails.js.map +0 -1
  262. package/dist/guilds.d.ts +0 -158
  263. package/dist/guilds.d.ts.map +0 -1
  264. package/dist/guilds.js +0 -205
  265. package/dist/guilds.js.map +0 -1
  266. package/dist/heartbeat.d.ts +0 -43
  267. package/dist/heartbeat.d.ts.map +0 -1
  268. package/dist/heartbeat.js +0 -72
  269. package/dist/heartbeat.js.map +0 -1
  270. package/dist/hooks.d.ts +0 -172
  271. package/dist/hooks.d.ts.map +0 -1
  272. package/dist/hooks.js +0 -91
  273. package/dist/hooks.js.map +0 -1
  274. package/dist/identity.d.ts +0 -61
  275. package/dist/identity.d.ts.map +0 -1
  276. package/dist/identity.js +0 -76
  277. package/dist/identity.js.map +0 -1
  278. package/dist/inbox.d.ts +0 -77
  279. package/dist/inbox.d.ts.map +0 -1
  280. package/dist/inbox.js +0 -98
  281. package/dist/inbox.js.map +0 -1
  282. package/dist/index.d.ts +0 -321
  283. package/dist/index.d.ts.map +0 -1
  284. package/dist/index.js +0 -361
  285. package/dist/index.js.map +0 -1
  286. package/dist/insights.d.ts +0 -166
  287. package/dist/insights.d.ts.map +0 -1
  288. package/dist/insights.js +0 -100
  289. package/dist/insights.js.map +0 -1
  290. package/dist/intents.d.ts +0 -132
  291. package/dist/intents.d.ts.map +0 -1
  292. package/dist/intents.js +0 -81
  293. package/dist/intents.js.map +0 -1
  294. package/dist/knowledgeContext.d.ts +0 -68
  295. package/dist/knowledgeContext.d.ts.map +0 -1
  296. package/dist/knowledgeContext.js +0 -109
  297. package/dist/knowledgeContext.js.map +0 -1
  298. package/dist/leaderboard.d.ts +0 -30
  299. package/dist/leaderboard.d.ts.map +0 -1
  300. package/dist/leaderboard.js +0 -34
  301. package/dist/leaderboard.js.map +0 -1
  302. package/dist/manifest.d.ts +0 -127
  303. package/dist/manifest.d.ts.map +0 -1
  304. package/dist/manifest.js +0 -123
  305. package/dist/manifest.js.map +0 -1
  306. package/dist/manifestActivationHook.d.ts +0 -72
  307. package/dist/manifestActivationHook.d.ts.map +0 -1
  308. package/dist/manifestActivationHook.js +0 -180
  309. package/dist/manifestActivationHook.js.map +0 -1
  310. package/dist/marketplace.d.ts +0 -156
  311. package/dist/marketplace.d.ts.map +0 -1
  312. package/dist/marketplace.js +0 -215
  313. package/dist/marketplace.js.map +0 -1
  314. package/dist/matching.d.ts +0 -192
  315. package/dist/matching.d.ts.map +0 -1
  316. package/dist/matching.js +0 -138
  317. package/dist/matching.js.map +0 -1
  318. package/dist/memory.d.ts +0 -287
  319. package/dist/memory.d.ts.map +0 -1
  320. package/dist/memory.js +0 -379
  321. package/dist/memory.js.map +0 -1
  322. package/dist/mining.d.ts +0 -155
  323. package/dist/mining.d.ts.map +0 -1
  324. package/dist/mining.js +0 -365
  325. package/dist/mining.js.map +0 -1
  326. package/dist/oracle.d.ts +0 -30
  327. package/dist/oracle.d.ts.map +0 -1
  328. package/dist/oracle.js +0 -31
  329. package/dist/oracle.js.map +0 -1
  330. package/dist/policies.d.ts +0 -132
  331. package/dist/policies.d.ts.map +0 -1
  332. package/dist/policies.js +0 -62
  333. package/dist/policies.js.map +0 -1
  334. package/dist/proactive.d.ts +0 -197
  335. package/dist/proactive.d.ts.map +0 -1
  336. package/dist/proactive.js +0 -229
  337. package/dist/proactive.js.map +0 -1
  338. package/dist/projects.d.ts +0 -307
  339. package/dist/projects.d.ts.map +0 -1
  340. package/dist/projects.js +0 -438
  341. package/dist/projects.js.map +0 -1
  342. package/dist/querySegmentation.d.ts +0 -54
  343. package/dist/querySegmentation.d.ts.map +0 -1
  344. package/dist/querySegmentation.js +0 -80
  345. package/dist/querySegmentation.js.map +0 -1
  346. package/dist/sandbox.d.ts +0 -156
  347. package/dist/sandbox.d.ts.map +0 -1
  348. package/dist/sandbox.js +0 -425
  349. package/dist/sandbox.js.map +0 -1
  350. package/dist/signalActionMap.d.ts +0 -59
  351. package/dist/signalActionMap.d.ts.map +0 -1
  352. package/dist/signalActionMap.js +0 -299
  353. package/dist/signalActionMap.js.map +0 -1
  354. package/dist/signing.d.ts +0 -94
  355. package/dist/signing.d.ts.map +0 -1
  356. package/dist/signing.js +0 -158
  357. package/dist/signing.js.map +0 -1
  358. package/dist/social.d.ts +0 -176
  359. package/dist/social.d.ts.map +0 -1
  360. package/dist/social.js +0 -232
  361. package/dist/social.js.map +0 -1
  362. package/dist/specialization.d.ts +0 -108
  363. package/dist/specialization.d.ts.map +0 -1
  364. package/dist/specialization.js +0 -104
  365. package/dist/specialization.js.map +0 -1
  366. package/dist/swarms.d.ts +0 -106
  367. package/dist/swarms.d.ts.map +0 -1
  368. package/dist/swarms.js +0 -99
  369. package/dist/swarms.js.map +0 -1
  370. package/dist/teaching.d.ts +0 -171
  371. package/dist/teaching.d.ts.map +0 -1
  372. package/dist/teaching.js +0 -87
  373. package/dist/teaching.js.map +0 -1
  374. package/dist/tools.d.ts +0 -223
  375. package/dist/tools.d.ts.map +0 -1
  376. package/dist/tools.js +0 -320
  377. package/dist/tools.js.map +0 -1
  378. package/dist/treasury-ops.d.ts +0 -101
  379. package/dist/treasury-ops.d.ts.map +0 -1
  380. package/dist/treasury-ops.js +0 -59
  381. package/dist/treasury-ops.js.map +0 -1
  382. package/dist/types.d.ts +0 -1193
  383. package/dist/types.d.ts.map +0 -1
  384. package/dist/types.js +0 -7
  385. package/dist/types.js.map +0 -1
  386. package/dist/wakeUpStack.d.ts +0 -94
  387. package/dist/wakeUpStack.d.ts.map +0 -1
  388. package/dist/wakeUpStack.js +0 -215
  389. package/dist/wakeUpStack.js.map +0 -1
  390. package/dist/workspace.d.ts +0 -318
  391. package/dist/workspace.d.ts.map +0 -1
  392. package/dist/workspace.js +0 -207
  393. package/dist/workspace.js.map +0 -1
  394. package/dist/xmtp.d.ts +0 -85
  395. package/dist/xmtp.d.ts.map +0 -1
  396. package/dist/xmtp.js +0 -250
  397. package/dist/xmtp.js.map +0 -1
@@ -1,482 +0,0 @@
1
- import { describe, it, expect, vi } from "vitest";
2
- // Mock fs (ChatEngine reads soul documents)
3
- vi.mock("node:fs/promises", () => ({
4
- readFile: vi.fn().mockRejectedValue(new Error("ENOENT")),
5
- writeFile: vi.fn(),
6
- }));
7
- // Mock action catalog
8
- vi.mock("../actionCatalog.js", () => ({
9
- ACTION_CATALOG: {},
10
- formatActionsForPrompt: vi.fn().mockReturnValue(""),
11
- getCategoryListing: vi.fn().mockReturnValue([]),
12
- getToolsInCategory: vi.fn().mockReturnValue([]),
13
- }));
14
- vi.mock("../signalActionMap.js", () => ({
15
- CORE_ACTIONS: [],
16
- }));
17
- vi.mock("../contentSafety.js", () => ({
18
- sanitizeForPrompt: vi.fn((s) => s),
19
- UNTRUSTED_CONTENT_INSTRUCTION: "",
20
- }));
21
- import { ChatEngine } from "../chat/chatEngine.js";
22
- // ── Mock runtime ──────────────────────────────────────────
23
- function createMockRuntime(overrides) {
24
- const opts = {
25
- credits: 0,
26
- byokProviders: [],
27
- plan: "free",
28
- inferenceTokensRemaining: 0,
29
- requestFails: false,
30
- ...overrides,
31
- };
32
- return {
33
- connection: {
34
- request: vi.fn().mockImplementation((method, path) => {
35
- if (opts.requestFails)
36
- throw new Error("Connection failed");
37
- if (path === "/v1/byok") {
38
- return { providers: opts.byokProviders.map((p) => ({ provider: p })) };
39
- }
40
- if (path === "/v1/subscriptions/status") {
41
- return { plan: opts.plan, inferenceTokensRemaining: opts.inferenceTokensRemaining };
42
- }
43
- return {};
44
- }),
45
- },
46
- memory: {
47
- storeMemory: vi.fn().mockResolvedValue({ id: "mem_1" }),
48
- recall: vi.fn().mockResolvedValue([]),
49
- },
50
- economy: {
51
- getBalance: vi.fn().mockResolvedValue({
52
- credits: { available: opts.credits, total: opts.credits, pending: 0 },
53
- }),
54
- inference: vi.fn(),
55
- },
56
- events: { subscribe: vi.fn() },
57
- identity: { getAddress: vi.fn().mockReturnValue("0xtest") },
58
- };
59
- }
60
- // ── checkIntelligence tests ───────────────────────────────
61
- describe("ChatEngine.checkIntelligence", () => {
62
- describe("source: local (custom callback)", () => {
63
- it("detects generateResponse callback as 'local' source", async () => {
64
- const runtime = createMockRuntime();
65
- const engine = new ChatEngine(runtime, {
66
- generateResponse: async () => "Hello from local",
67
- });
68
- const status = await engine.checkIntelligence();
69
- expect(status.ready).toBe(true);
70
- expect(status.source).toBe("local");
71
- expect(status.messages.some((m) => m.includes("custom callback"))).toBe(true);
72
- });
73
- it("does not call getBalance when local callback is set", async () => {
74
- const runtime = createMockRuntime();
75
- const engine = new ChatEngine(runtime, {
76
- generateResponse: async () => "local",
77
- });
78
- await engine.checkIntelligence();
79
- // getBalance should NOT be called — the local path returns early
80
- expect(runtime.economy.getBalance).not.toHaveBeenCalled();
81
- });
82
- it("reports zero credit cost for local callback", async () => {
83
- const runtime = createMockRuntime();
84
- const engine = new ChatEngine(runtime, {
85
- generateResponse: async () => "local",
86
- });
87
- const status = await engine.checkIntelligence();
88
- expect(status.messages.some((m) => m.toLowerCase().includes("zero"))).toBe(true);
89
- });
90
- it("includes model name in local source status", async () => {
91
- const runtime = createMockRuntime();
92
- const engine = new ChatEngine(runtime, {
93
- generateResponse: async () => "ok",
94
- model: "llama3:70b",
95
- });
96
- const status = await engine.checkIntelligence();
97
- expect(status.model).toBe("llama3:70b");
98
- });
99
- });
100
- describe("source: subscription", () => {
101
- it("detects active subscription with tokens", async () => {
102
- const runtime = createMockRuntime({
103
- credits: 50000,
104
- plan: "builder",
105
- inferenceTokensRemaining: 100000,
106
- });
107
- const engine = new ChatEngine(runtime, {});
108
- const status = await engine.checkIntelligence();
109
- expect(status.ready).toBe(true);
110
- expect(status.source).toBe("subscription");
111
- expect(status.plan).toBe("builder");
112
- expect(status.creditsRemaining).toBe(50000);
113
- expect(status.conversationsRemaining).toBeGreaterThan(0);
114
- });
115
- it("includes provider and model in subscription status", async () => {
116
- const runtime = createMockRuntime({
117
- credits: 50000,
118
- plan: "pro",
119
- inferenceTokensRemaining: 500000,
120
- });
121
- const engine = new ChatEngine(runtime, { provider: "nookplot", model: "claude-sonnet-4-20250514" });
122
- const status = await engine.checkIntelligence();
123
- expect(status.provider).toBe("nookplot");
124
- expect(status.model).toBe("claude-sonnet-4-20250514");
125
- });
126
- it("includes earning potential projections", async () => {
127
- const runtime = createMockRuntime({
128
- credits: 50000,
129
- plan: "starter",
130
- inferenceTokensRemaining: 75000,
131
- });
132
- const engine = new ChatEngine(runtime, {});
133
- const status = await engine.checkIntelligence();
134
- expect(status.earningPotential).toBeDefined();
135
- expect(status.earningPotential.miningPerDay).toBeGreaterThan(0);
136
- expect(status.earningPotential.breakEvenDays).toBeGreaterThanOrEqual(0);
137
- expect(status.earningPotential.selfSustainingAfterDays).toBeGreaterThanOrEqual(0);
138
- });
139
- it("warns when credits are running low", async () => {
140
- // Very few credits + subscription active
141
- const runtime = createMockRuntime({
142
- credits: 100, // extremely low
143
- plan: "starter",
144
- inferenceTokensRemaining: 50000,
145
- });
146
- const engine = new ChatEngine(runtime, {});
147
- const status = await engine.checkIntelligence();
148
- expect(status.source).toBe("subscription");
149
- expect(status.estimatedDaysRemaining).toBeDefined();
150
- });
151
- it("does not choose subscription when plan is free", async () => {
152
- const runtime = createMockRuntime({
153
- credits: 50000,
154
- plan: "free",
155
- inferenceTokensRemaining: 0,
156
- });
157
- const engine = new ChatEngine(runtime, {});
158
- const status = await engine.checkIntelligence();
159
- // Should NOT be subscription — free plan with 0 tokens
160
- expect(status.source).not.toBe("subscription");
161
- });
162
- });
163
- describe("source: byok", () => {
164
- it("detects BYOK keys when no subscription", async () => {
165
- const runtime = createMockRuntime({
166
- credits: 1000,
167
- byokProviders: ["openai"],
168
- });
169
- const engine = new ChatEngine(runtime, {});
170
- const status = await engine.checkIntelligence();
171
- expect(status.ready).toBe(true);
172
- expect(status.source).toBe("byok");
173
- expect(status.messages.some((m) => m.includes("BYOK"))).toBe(true);
174
- });
175
- it("reports minimal credit cost for BYOK mode", async () => {
176
- const runtime = createMockRuntime({
177
- credits: 5000,
178
- byokProviders: ["anthropic"],
179
- });
180
- const engine = new ChatEngine(runtime, {});
181
- const status = await engine.checkIntelligence();
182
- expect(status.source).toBe("byok");
183
- // BYOK should report very high conversations remaining (minimal gateway cost)
184
- expect(status.conversationsRemaining).toBe(99999);
185
- });
186
- it("prioritizes subscription over BYOK when both available", async () => {
187
- const runtime = createMockRuntime({
188
- credits: 50000,
189
- plan: "builder",
190
- inferenceTokensRemaining: 100000,
191
- byokProviders: ["openai"],
192
- });
193
- const engine = new ChatEngine(runtime, {});
194
- const status = await engine.checkIntelligence();
195
- // Subscription should take priority over BYOK
196
- expect(status.source).toBe("subscription");
197
- });
198
- it("reports break-even at 1 day for BYOK", async () => {
199
- const runtime = createMockRuntime({
200
- credits: 5000,
201
- byokProviders: ["openrouter"],
202
- });
203
- const engine = new ChatEngine(runtime, {});
204
- const status = await engine.checkIntelligence();
205
- expect(status.earningPotential).toBeDefined();
206
- expect(status.earningPotential.breakEvenDays).toBe(1);
207
- expect(status.earningPotential.selfSustainingAfterDays).toBe(1);
208
- });
209
- });
210
- describe("source: credits (pay-per-use)", () => {
211
- it("detects pay-per-use when credits > 0 and no subscription", async () => {
212
- const runtime = createMockRuntime({
213
- credits: 5000,
214
- plan: "free",
215
- inferenceTokensRemaining: 0,
216
- });
217
- const engine = new ChatEngine(runtime, {});
218
- const status = await engine.checkIntelligence();
219
- expect(status.ready).toBe(true);
220
- expect(status.source).toBe("credits");
221
- expect(status.plan).toBe("pay-per-use");
222
- expect(status.creditsRemaining).toBe(5000);
223
- });
224
- it("calculates conversations remaining based on model cost", async () => {
225
- const runtime = createMockRuntime({
226
- credits: 10000,
227
- plan: "free",
228
- inferenceTokensRemaining: 0,
229
- });
230
- const engine = new ChatEngine(runtime, {});
231
- const status = await engine.checkIntelligence();
232
- expect(status.conversationsRemaining).toBeGreaterThan(0);
233
- // With 10000 credits, conversationsRemaining should be credits / cost_per_conversation
234
- expect(status.conversationsRemaining).toBeDefined();
235
- });
236
- it("includes onboarding guidance messages", async () => {
237
- const runtime = createMockRuntime({
238
- credits: 2000,
239
- plan: "free",
240
- inferenceTokensRemaining: 0,
241
- });
242
- const engine = new ChatEngine(runtime, {});
243
- const status = await engine.checkIntelligence();
244
- expect(status.messages.some((m) => m.includes("pay-per-use"))).toBe(true);
245
- expect(status.messages.some((m) => m.includes("Subscribe") || m.includes("subscribe"))).toBe(true);
246
- });
247
- it("includes estimatedDaysRemaining", async () => {
248
- const runtime = createMockRuntime({
249
- credits: 50000,
250
- plan: "free",
251
- inferenceTokensRemaining: 0,
252
- });
253
- const engine = new ChatEngine(runtime, {});
254
- const status = await engine.checkIntelligence();
255
- expect(status.estimatedDaysRemaining).toBeDefined();
256
- expect(status.estimatedDaysRemaining).toBeGreaterThan(0);
257
- });
258
- });
259
- describe("source: none (no intelligence)", () => {
260
- it("returns not ready when no intelligence configured", async () => {
261
- const runtime = createMockRuntime({
262
- credits: 0,
263
- plan: "free",
264
- inferenceTokensRemaining: 0,
265
- });
266
- const engine = new ChatEngine(runtime, {});
267
- const status = await engine.checkIntelligence();
268
- expect(status.ready).toBe(false);
269
- expect(status.source).toBe("none");
270
- expect(status.creditsRemaining).toBe(0);
271
- expect(status.conversationsRemaining).toBe(0);
272
- });
273
- it("includes all onboarding options (subscribe, BYOK, Ollama, callback)", async () => {
274
- const runtime = createMockRuntime({ credits: 0 });
275
- const engine = new ChatEngine(runtime, {});
276
- const status = await engine.checkIntelligence();
277
- expect(status.messages.some((m) => m.includes("No inference configured"))).toBe(true);
278
- expect(status.messages.some((m) => m.includes("Subscribe"))).toBe(true);
279
- expect(status.messages.some((m) => m.includes("BYOK"))).toBe(true);
280
- expect(status.messages.some((m) => m.includes("Ollama"))).toBe(true);
281
- expect(status.messages.some((m) => m.includes("Custom callback"))).toBe(true);
282
- });
283
- it("includes earning potential even with zero credits", async () => {
284
- const runtime = createMockRuntime({ credits: 0 });
285
- const engine = new ChatEngine(runtime, {});
286
- const status = await engine.checkIntelligence();
287
- expect(status.earningPotential).toBeDefined();
288
- expect(status.earningPotential.miningPerDay).toBeGreaterThan(0);
289
- expect(status.earningPotential.breakEvenDays).toBeGreaterThan(0);
290
- });
291
- it("includes mining info in messages", async () => {
292
- const runtime = createMockRuntime({ credits: 0 });
293
- const engine = new ChatEngine(runtime, {});
294
- const status = await engine.checkIntelligence();
295
- expect(status.messages.some((m) => m.includes("Mining") || m.includes("mining"))).toBe(true);
296
- });
297
- });
298
- describe("gateway connection failure", () => {
299
- it("handles gateway connection failure gracefully", async () => {
300
- // economy.getBalance must throw to trigger the outer catch block
301
- const runtime = createMockRuntime();
302
- runtime.economy.getBalance = vi.fn().mockRejectedValue(new Error("Connection refused"));
303
- const engine = new ChatEngine(runtime, {});
304
- const status = await engine.checkIntelligence();
305
- expect(status.ready).toBe(false);
306
- expect(status.source).toBe("none");
307
- expect(status.messages.some((m) => m.includes("Cannot reach gateway"))).toBe(true);
308
- });
309
- it("suggests local model as fallback when gateway unreachable", async () => {
310
- const runtime = createMockRuntime();
311
- runtime.economy.getBalance = vi.fn().mockRejectedValue(new Error("ECONNREFUSED"));
312
- const engine = new ChatEngine(runtime, {});
313
- const status = await engine.checkIntelligence();
314
- expect(status.messages.some((m) => m.includes("generateResponse"))).toBe(true);
315
- });
316
- });
317
- describe("BYOK check failure", () => {
318
- it("proceeds without BYOK when BYOK endpoint fails", async () => {
319
- const runtime = createMockRuntime({
320
- credits: 5000,
321
- plan: "free",
322
- inferenceTokensRemaining: 0,
323
- });
324
- // Override request to throw on BYOK check
325
- runtime.connection.request = vi.fn().mockImplementation((method, path) => {
326
- if (path === "/v1/byok")
327
- throw new Error("BYOK not available");
328
- if (path === "/v1/subscriptions/status")
329
- return { plan: "free", inferenceTokensRemaining: 0 };
330
- return {};
331
- });
332
- const engine = new ChatEngine(runtime, {});
333
- const status = await engine.checkIntelligence();
334
- // Should fall through to credits (not crash)
335
- expect(status.ready).toBe(true);
336
- expect(status.source).toBe("credits");
337
- });
338
- });
339
- describe("subscription check failure", () => {
340
- it("treats as free plan when subscription endpoint fails", async () => {
341
- const runtime = createMockRuntime({
342
- credits: 5000,
343
- plan: "free",
344
- inferenceTokensRemaining: 0,
345
- });
346
- runtime.connection.request = vi.fn().mockImplementation((method, path) => {
347
- if (path === "/v1/byok")
348
- return { providers: [] };
349
- if (path === "/v1/subscriptions/status")
350
- throw new Error("Subscription service down");
351
- return {};
352
- });
353
- const engine = new ChatEngine(runtime, {});
354
- const status = await engine.checkIntelligence();
355
- // Should fall through to credits (not crash or claim subscription)
356
- expect(status.ready).toBe(true);
357
- expect(status.source).toBe("credits");
358
- });
359
- });
360
- });
361
- // ── Chat method tests ─────────────────────────────────────
362
- describe("ChatEngine.chat", () => {
363
- it("loads soul on first call if not loaded", async () => {
364
- const runtime = createMockRuntime({ credits: 5000 });
365
- const generateResponse = vi.fn().mockResolvedValue("Hello!");
366
- const engine = new ChatEngine(runtime, { generateResponse });
367
- const response = await engine.chat("Hi there");
368
- expect(response).toBe("Hello!");
369
- // soul should have been loaded (default fallback since readFile mock throws ENOENT)
370
- expect(engine.agentName).toBe("Agent");
371
- });
372
- it("passes system prompt + conversation history to LLM", async () => {
373
- const runtime = createMockRuntime({ credits: 5000 });
374
- const generateResponse = vi.fn().mockResolvedValue("Sure thing!");
375
- const engine = new ChatEngine(runtime, { generateResponse });
376
- await engine.chat("Tell me about biology");
377
- expect(generateResponse).toHaveBeenCalledTimes(1);
378
- const messages = generateResponse.mock.calls[0][0];
379
- // Should have system prompt + user message
380
- expect(messages[0].role).toBe("system");
381
- expect(messages[1].role).toBe("user");
382
- expect(messages[1].content).toBe("Tell me about biology");
383
- });
384
- it("stores conversation in episodic memory (fire-and-forget)", async () => {
385
- // Phase 1 refactor: episodic write moved out of chatEngine.ts and into
386
- // installEpisodicMemoryHook(). NookplotRuntime.connect() auto-installs it;
387
- // this test uses a mock runtime that never calls connect(), so we install
388
- // the hook manually to reproduce the prior inline behavior.
389
- const { HookRegistry } = await import("../hooks.js");
390
- const { installEpisodicMemoryHook } = await import("../episodicMemoryHook.js");
391
- const runtime = createMockRuntime({ credits: 5000 });
392
- const hooks = new HookRegistry();
393
- runtime.hooks = hooks;
394
- installEpisodicMemoryHook(runtime, { hooks });
395
- const generateResponse = vi.fn().mockResolvedValue("Hi!");
396
- const engine = new ChatEngine(runtime, { generateResponse, enableMemory: true });
397
- await engine.chat("Hello", { platform: "terminal" });
398
- // Hook fires fire-and-forget; flush microtasks.
399
- await new Promise((r) => setTimeout(r, 5));
400
- expect(runtime.memory.storeMemory).toHaveBeenCalledWith("episodic", expect.stringContaining("Hello"), expect.objectContaining({
401
- tags: expect.arrayContaining(["conversation", "terminal"]),
402
- }));
403
- });
404
- it("skips memory when enableMemory is false", async () => {
405
- const runtime = createMockRuntime({ credits: 5000 });
406
- const generateResponse = vi.fn().mockResolvedValue("Hi!");
407
- const engine = new ChatEngine(runtime, { generateResponse, enableMemory: false });
408
- await engine.chat("Hello");
409
- expect(runtime.memory.recall).not.toHaveBeenCalled();
410
- expect(runtime.memory.storeMemory).not.toHaveBeenCalled();
411
- });
412
- it("maintains separate conversation histories per sender", async () => {
413
- const runtime = createMockRuntime({ credits: 5000 });
414
- const generateResponse = vi.fn().mockResolvedValue("Reply");
415
- const engine = new ChatEngine(runtime, { generateResponse });
416
- await engine.chat("User A message", { platform: "telegram", senderId: "userA" });
417
- await engine.chat("User B message", { platform: "telegram", senderId: "userB" });
418
- // Second call should not include User A's history
419
- const secondCallMessages = generateResponse.mock.calls[1][0];
420
- const userMessages = secondCallMessages.filter((m) => m.role === "user");
421
- expect(userMessages).toHaveLength(1);
422
- expect(userMessages[0].content).toBe("User B message");
423
- });
424
- it("clears history for a specific sender", async () => {
425
- const runtime = createMockRuntime({ credits: 5000 });
426
- const generateResponse = vi.fn().mockResolvedValue("Reply");
427
- const engine = new ChatEngine(runtime, { generateResponse });
428
- await engine.chat("First message", { platform: "terminal", senderId: "userA" });
429
- engine.clearHistory("userA");
430
- await engine.chat("Second message", { platform: "terminal", senderId: "userA" });
431
- // After clearing, the second call should not have the first message in history
432
- const secondCallMessages = generateResponse.mock.calls[1][0];
433
- const userMessages = secondCallMessages.filter((m) => m.role === "user");
434
- expect(userMessages).toHaveLength(1);
435
- expect(userMessages[0].content).toBe("Second message");
436
- });
437
- it("clears all histories when no senderId provided", async () => {
438
- const runtime = createMockRuntime({ credits: 5000 });
439
- const generateResponse = vi.fn().mockResolvedValue("Reply");
440
- const engine = new ChatEngine(runtime, { generateResponse });
441
- await engine.chat("Msg A", { platform: "terminal", senderId: "userA" });
442
- await engine.chat("Msg B", { platform: "terminal", senderId: "userB" });
443
- engine.clearHistory();
444
- // Both users should have fresh histories
445
- await engine.chat("Fresh A", { platform: "terminal", senderId: "userA" });
446
- const callMessages = generateResponse.mock.calls[2][0];
447
- const userMessages = callMessages.filter((m) => m.role === "user");
448
- expect(userMessages).toHaveLength(1);
449
- expect(userMessages[0].content).toBe("Fresh A");
450
- });
451
- it("uses runtime.economy.inference when no custom callback", async () => {
452
- const runtime = createMockRuntime({ credits: 5000 });
453
- runtime.economy.inference.mockResolvedValue({ content: "From gateway" });
454
- const engine = new ChatEngine(runtime, {});
455
- const response = await engine.chat("Hello");
456
- expect(response).toBe("From gateway");
457
- expect(runtime.economy.inference).toHaveBeenCalledTimes(1);
458
- });
459
- });
460
- // ── loadSoul tests ────────────────────────────────────────
461
- describe("ChatEngine.loadSoul", () => {
462
- it("uses default agent name when soul file missing", async () => {
463
- const runtime = createMockRuntime();
464
- const engine = new ChatEngine(runtime, { generateResponse: async () => "" });
465
- await engine.loadSoul();
466
- expect(engine.agentName).toBe("Agent");
467
- });
468
- it("loads identity from soul.json", async () => {
469
- const { readFile: mockRead } = await import("node:fs/promises");
470
- const mockedRead = vi.mocked(mockRead);
471
- mockedRead.mockResolvedValueOnce(JSON.stringify({
472
- identity: { name: "Glitch", tagline: "Research agent" },
473
- personality: { traits: ["curious", "precise"] },
474
- purpose: { mission: "Advance biology research" },
475
- }));
476
- const runtime = createMockRuntime();
477
- const engine = new ChatEngine(runtime, { generateResponse: async () => "" });
478
- await engine.loadSoul("./soul.json");
479
- expect(engine.agentName).toBe("Glitch");
480
- });
481
- });
482
- //# sourceMappingURL=chatEngine.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chatEngine.test.js","sourceRoot":"","sources":["../../src/__tests__/chatEngine.test.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Codegen drift detector — guards against the three derived action catalogs
3
- * falling out of sync.
4
- *
5
- * Single source of truth: MCP tool definitions in `mcp-server/src/tools/*.ts`.
6
- * `mcp-server/scripts/generate-catalog.mjs` reads those tools and writes:
7
- * 1. `cli/src/tool-manifest.json` (JSON manifest)
8
- * 2. `runtime/src/actionCatalog.generated.ts` (TS catalog)
9
- * 3. `runtime-py/.../action_catalog_generated.py` (Python catalog)
10
- *
11
- * If any of these is hand-edited, or the codegen is run in only one repo
12
- * branch, agents start hallucinating endpoints / params / categories.
13
- *
14
- * This test parses all three artifacts and asserts:
15
- * - Identical key sets (same action names everywhere)
16
- * - Identical descriptions per key
17
- * - Identical params per key (presence + value)
18
- * - Identical category per key
19
- * - The "(N tools)" comment in the TS file matches the actual entry count
20
- * - tool-manifest entries follow the `nookplot_<actionName>` naming rule
21
- */
22
- export {};
23
- //# sourceMappingURL=codegen-drift.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codegen-drift.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/codegen-drift.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}