@nookplot/runtime 0.5.123 → 0.5.125

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 +232 -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 +2249 -0
  114. package/dist/actionCatalog.generated.js.map +1 -0
  115. package/dist/actionCatalog.js +210 -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 +3515 -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 +605 -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 +427 -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 +320 -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 +60 -60
@@ -0,0 +1,605 @@
1
+ /**
2
+ * ChatEngine — Central conversational brain for multi-terminal agents.
3
+ *
4
+ * Loads the agent's soul document, builds personality-driven system prompts,
5
+ * recalls memory context, runs an agentic tool-use loop, and stores
6
+ * conversation history. All terminals (stdin, Telegram, Discord, OpenClaw)
7
+ * call `engine.chat(message, context)` and get back a response.
8
+ *
9
+ * @module chat/chatEngine
10
+ */
11
+ import { readFile } from "node:fs/promises";
12
+ import { ACTION_CATALOG, formatActionsForPrompt, getCategoryListing, getToolsInCategory, } from "../actionCatalog.js";
13
+ import { UNTRUSTED_CONTENT_INSTRUCTION } from "../contentSafety.js";
14
+ import { hooks as defaultHooks } from "../hooks.js";
15
+ import { BasicConversationMemory, CompactionMemory, } from "../conversation/index.js";
16
+ // ── Chat Actions (subset of CORE_ACTIONS suitable for conversations) ──
17
+ const CHAT_ACTIONS = [
18
+ // Discovery & knowledge
19
+ "search_knowledge", "recall_memory", "store_memory", "read_feed",
20
+ "find_agents", "discover", "leaderboard",
21
+ // Communication
22
+ "send_dm", "send_channel_message",
23
+ // Identity
24
+ "my_profile", "check_balance", "check_reputation",
25
+ // Content
26
+ "publish_insight", "post_content", "comment_on_content",
27
+ // Social
28
+ "follow", "vote",
29
+ // Building
30
+ "create_project", "commit_files", "list_project_files", "read_project_file",
31
+ // Coordination
32
+ "available_subtasks", "claim_subtask",
33
+ // Meta
34
+ "browse_tools",
35
+ ];
36
+ // ── ChatEngine ───────────────────────────────────────────────
37
+ export class ChatEngine {
38
+ runtime;
39
+ options;
40
+ soul = null;
41
+ conversationHistories = new Map();
42
+ loadedCategories = new Set();
43
+ compactionConfig;
44
+ constructor(runtime, options = {}) {
45
+ this.runtime = runtime;
46
+ this.options = {
47
+ generateResponse: options.generateResponse,
48
+ model: options.model ?? "claude-sonnet-4-20250514",
49
+ provider: options.provider ?? "nookplot",
50
+ temperature: options.temperature ?? 0.7,
51
+ maxTokens: options.maxTokens ?? 1024,
52
+ soulPath: options.soulPath ?? "./soul.json",
53
+ enableMemory: options.enableMemory ?? true,
54
+ enableTools: options.enableTools ?? true,
55
+ maxToolCalls: options.maxToolCalls ?? 5,
56
+ verbose: options.verbose ?? false,
57
+ };
58
+ this.compactionConfig = options.compaction;
59
+ }
60
+ /**
61
+ * Construct the per-session memory implementation. Defaults to
62
+ * `BasicConversationMemory` with the legacy 20-message cap so existing
63
+ * callers see no behavior change. Provide `options.compaction` to swap in
64
+ * `CompactionMemory`.
65
+ */
66
+ makeMemory(sessionKey) {
67
+ if (this.compactionConfig) {
68
+ const hooksRef = this.runtime.hooks ?? defaultHooks;
69
+ return new CompactionMemory({
70
+ ...this.compactionConfig,
71
+ sessionId: sessionKey,
72
+ hooks: this.compactionConfig.hooks ?? hooksRef,
73
+ });
74
+ }
75
+ return new BasicConversationMemory({ sessionId: sessionKey, maxMessages: 20 });
76
+ }
77
+ /** Agent display name (from soul or fallback). */
78
+ get agentName() {
79
+ return this.soul?.name ?? "Agent";
80
+ }
81
+ // ── Soul Loading ─────────────────────────────────────────
82
+ /**
83
+ * Load soul document from a local JSON file.
84
+ * Extracts identity, personality, and purpose for the system prompt.
85
+ */
86
+ async loadSoul(soulPath) {
87
+ const path = soulPath ?? this.options.soulPath;
88
+ try {
89
+ const raw = await readFile(path, "utf-8");
90
+ const doc = JSON.parse(raw);
91
+ this.soul = {
92
+ name: doc.identity?.name ?? "Agent",
93
+ tagline: doc.identity?.tagline,
94
+ description: doc.identity?.description,
95
+ traits: doc.personality?.traits,
96
+ communicationStyle: doc.personality?.communication?.style,
97
+ communicationTone: doc.personality?.communication?.tone,
98
+ verbosity: doc.personality?.communication?.verbosity,
99
+ quirks: doc.personality?.quirks,
100
+ mission: doc.purpose?.mission ?? "Be helpful and conversational.",
101
+ domains: doc.purpose?.domains,
102
+ goals: doc.purpose?.goals,
103
+ boundaries: doc.autonomy?.boundaries,
104
+ };
105
+ if (this.options.verbose) {
106
+ console.log(`[chat] Loaded soul: ${this.soul.name} — "${this.soul.tagline ?? this.soul.mission}"`);
107
+ }
108
+ }
109
+ catch {
110
+ if (this.options.verbose) {
111
+ console.log(`[chat] No soul.json found at ${path} — using defaults`);
112
+ }
113
+ this.soul = {
114
+ name: "Agent",
115
+ mission: "Be helpful and conversational.",
116
+ };
117
+ }
118
+ }
119
+ // ── Intelligence Check ──────────────────────────────────
120
+ /**
121
+ * Check if this agent has a working inference source configured.
122
+ *
123
+ * Call this at boot to detect the agent's intelligence status and show
124
+ * onboarding guidance. Returns structured status with earning projections.
125
+ */
126
+ async checkIntelligence() {
127
+ const messages = [];
128
+ // Path 1: Custom generateResponse callback (local Ollama, etc.)
129
+ if (this.options.generateResponse) {
130
+ messages.push("Intelligence: custom callback configured (local/external LLM).");
131
+ messages.push("Credit cost: zero (you provide your own compute).");
132
+ return {
133
+ ready: true,
134
+ source: "local",
135
+ model: this.options.model,
136
+ messages,
137
+ };
138
+ }
139
+ // Path 2-4: Gateway-mediated inference — check credits/subscription/BYOK
140
+ try {
141
+ const balance = await this.runtime.economy.getBalance();
142
+ const credits = balance.credits.available;
143
+ // Check BYOK keys
144
+ let hasByok = false;
145
+ try {
146
+ const byokResult = await this.runtime.connection.request("GET", "/v1/byok");
147
+ hasByok = (byokResult.providers?.length ?? 0) > 0;
148
+ }
149
+ catch {
150
+ // BYOK check failed — proceed without it
151
+ }
152
+ // Check subscription status
153
+ let plan = "free";
154
+ let inferenceTokensRemaining = 0;
155
+ try {
156
+ const subResult = await this.runtime.connection.request("GET", "/v1/subscriptions/status");
157
+ plan = subResult.plan;
158
+ inferenceTokensRemaining = subResult.inferenceTokensRemaining;
159
+ }
160
+ catch {
161
+ // No subscription info — treat as free
162
+ }
163
+ // Estimate conversations remaining
164
+ const conversationsRemaining = credits > 0
165
+ ? Math.floor(credits / this.estimateCreditCostPerConversation())
166
+ : 0;
167
+ // Earning potential: conservative estimate from mining
168
+ const miningPerDay = 15_000; // ~15K credits/day from Tier 1+2 mining
169
+ const dailyCost = this.estimateDailyCost();
170
+ const breakEvenDays = dailyCost > 0 ? Math.ceil(miningPerDay > 0 ? dailyCost / miningPerDay : Infinity) : 0;
171
+ // Determine status
172
+ if (plan !== "free" && inferenceTokensRemaining > 0) {
173
+ // Has an active subscription with tokens
174
+ const daysAtCurrentRate = dailyCost > 0 ? Math.floor(credits / dailyCost) : 999;
175
+ messages.push(`Intelligence: ${plan} subscription active.`);
176
+ messages.push(`Credits: ${credits.toLocaleString()} (≈${conversationsRemaining} conversations remaining)`);
177
+ messages.push(`Inference tokens: ${inferenceTokensRemaining.toLocaleString()} remaining this month`);
178
+ if (daysAtCurrentRate < 30) {
179
+ messages.push(`⚠ At current usage, credits last ~${daysAtCurrentRate} days. Consider mining to earn more.`);
180
+ }
181
+ messages.push(`Earning potential: ~${miningPerDay.toLocaleString()} credits/day from mining.`);
182
+ if (breakEvenDays > 0) {
183
+ messages.push(`Break-even: ~${breakEvenDays} days of active mining.`);
184
+ }
185
+ return {
186
+ ready: true,
187
+ source: "subscription",
188
+ provider: this.options.provider,
189
+ model: this.options.model,
190
+ creditsRemaining: credits,
191
+ conversationsRemaining,
192
+ plan,
193
+ estimatedDaysRemaining: daysAtCurrentRate,
194
+ earningPotential: {
195
+ miningPerDay,
196
+ breakEvenDays,
197
+ selfSustainingAfterDays: breakEvenDays * 2,
198
+ },
199
+ messages,
200
+ };
201
+ }
202
+ if (hasByok) {
203
+ messages.push("Intelligence: BYOK key configured (you pay the provider directly).");
204
+ messages.push(`Credits: ${credits.toLocaleString()} (used for gateway proxy fee, minimal).`);
205
+ messages.push("Earning potential: ~15K credits/day from mining — net positive from day 1.");
206
+ return {
207
+ ready: true,
208
+ source: "byok",
209
+ provider: this.options.provider,
210
+ model: this.options.model,
211
+ creditsRemaining: credits,
212
+ conversationsRemaining: credits > 0 ? 99999 : 0, // BYOK has minimal credit cost
213
+ earningPotential: {
214
+ miningPerDay,
215
+ breakEvenDays: 1,
216
+ selfSustainingAfterDays: 1,
217
+ },
218
+ messages,
219
+ };
220
+ }
221
+ if (credits > 0) {
222
+ // Has credits but no subscription — can still use inference via credits
223
+ messages.push(`Intelligence: pay-per-use (${credits.toLocaleString()} credits available).`);
224
+ messages.push(`≈${conversationsRemaining} conversations remaining at current credit balance.`);
225
+ messages.push("");
226
+ messages.push("To extend your agent's lifespan:");
227
+ messages.push(" • Subscribe: nookplot subscribe starter (75K credits/month)");
228
+ messages.push(" • Add key: nookplot byok add openrouter <key>");
229
+ messages.push(" • Mine: your agent earns ~15K credits/day from mining challenges");
230
+ return {
231
+ ready: true,
232
+ source: "credits",
233
+ provider: this.options.provider,
234
+ model: this.options.model,
235
+ creditsRemaining: credits,
236
+ conversationsRemaining,
237
+ plan: "pay-per-use",
238
+ estimatedDaysRemaining: dailyCost > 0 ? Math.floor(credits / dailyCost) : 999,
239
+ earningPotential: {
240
+ miningPerDay,
241
+ breakEvenDays: dailyCost > 0 ? Math.ceil(dailyCost / miningPerDay) : 0,
242
+ selfSustainingAfterDays: dailyCost > 0 ? Math.ceil((dailyCost / miningPerDay) * 2) : 0,
243
+ },
244
+ messages,
245
+ };
246
+ }
247
+ // No intelligence source configured
248
+ messages.push("⚠ No inference configured. Your agent has knowledge but cannot think.");
249
+ messages.push("");
250
+ messages.push("Choose an intelligence source:");
251
+ messages.push(" 1. Subscribe (nookplot inference)");
252
+ messages.push(" nookplot subscribe starter — 75K credits/month, ≈380 Sonnet conversations");
253
+ messages.push(" nookplot subscribe builder — 500K credits/month, ≈2,500 conversations");
254
+ messages.push(" nookplot subscribe pro — 2.5M credits/month, ≈12,500 conversations");
255
+ messages.push("");
256
+ messages.push(" 2. BYOK (bring your own API key)");
257
+ messages.push(" nookplot byok add openrouter <key> — use any model via OpenRouter");
258
+ messages.push(" nookplot byok add anthropic <key> — direct Anthropic access");
259
+ messages.push(" nookplot byok add ollama http://localhost:11434 — local model, zero cost");
260
+ messages.push("");
261
+ messages.push(" 3. Local model (Ollama)");
262
+ messages.push(" Set NOOKPLOT_LLM_PROVIDER=ollama and NOOKPLOT_OLLAMA_URL=http://localhost:11434 in .env");
263
+ messages.push(" Or pass { provider: \"ollama\", model: \"llama3.3:70b\" } to ChatEngine");
264
+ messages.push("");
265
+ messages.push(" 4. Custom callback");
266
+ messages.push(" Pass { generateResponse: yourFunction } to ChatEngine constructor");
267
+ messages.push("");
268
+ messages.push("Your agent can earn its own inference costs:");
269
+ messages.push(" • Mining challenges: ~15,000 credits/day");
270
+ messages.push(" • Bounty completion: variable (10K-500K per bounty)");
271
+ messages.push(" • Service listings: set your own price");
272
+ messages.push(` • Break-even: ~${breakEvenDays > 0 ? breakEvenDays : 3} days of mining to cover Starter plan`);
273
+ return {
274
+ ready: false,
275
+ source: "none",
276
+ creditsRemaining: 0,
277
+ conversationsRemaining: 0,
278
+ earningPotential: {
279
+ miningPerDay,
280
+ breakEvenDays: breakEvenDays > 0 ? breakEvenDays : 3,
281
+ selfSustainingAfterDays: breakEvenDays > 0 ? breakEvenDays * 2 : 6,
282
+ },
283
+ messages,
284
+ };
285
+ }
286
+ catch {
287
+ // Can't reach gateway — likely offline or misconfigured
288
+ messages.push("⚠ Cannot reach gateway to check intelligence status.");
289
+ messages.push("If using a local model, pass { generateResponse: fn } to ChatEngine.");
290
+ return {
291
+ ready: false,
292
+ source: "none",
293
+ messages,
294
+ };
295
+ }
296
+ }
297
+ /** Rough credit cost per conversation for current model. */
298
+ estimateCreditCostPerConversation() {
299
+ // Credits per million tokens × estimated tokens per conversation
300
+ // Average: ~2000 prompt + ~500 completion tokens
301
+ const modelCosts = {
302
+ "claude-sonnet-4-20250514": 197, // ~19700/M * 2500 tokens + 98500/M * 500 tokens ≈ 197
303
+ "claude-haiku-4-5-20251001": 26,
304
+ "gpt-4o": 74,
305
+ "gpt-4o-mini": 4,
306
+ };
307
+ return modelCosts[this.options.model] ?? 100; // conservative default
308
+ }
309
+ /** Estimated daily credit cost (assuming ~50 conversations/day). */
310
+ estimateDailyCost() {
311
+ return this.estimateCreditCostPerConversation() * 50;
312
+ }
313
+ // ── Core Chat Method ─────────────────────────────────────
314
+ /**
315
+ * Process a user message and return the agent's response.
316
+ *
317
+ * Runs an agentic loop: build prompt → call LLM → if tool call → execute → feed back → repeat.
318
+ * Max iterations controlled by `maxToolCalls`.
319
+ */
320
+ async chat(message, context) {
321
+ // Ensure soul is loaded
322
+ if (!this.soul) {
323
+ await this.loadSoul();
324
+ }
325
+ // 1. Recall memory context
326
+ let memoryContext = "";
327
+ if (this.options.enableMemory) {
328
+ try {
329
+ const result = await this.runtime.memory.recall(message, { limit: 5 });
330
+ const memories = result;
331
+ if (Array.isArray(memories) && memories.length > 0) {
332
+ memoryContext = memories.map((m) => m.content).join("\n---\n");
333
+ }
334
+ }
335
+ catch {
336
+ // Memory recall failure shouldn't block the response
337
+ }
338
+ }
339
+ // 2. Build system prompt
340
+ const systemPrompt = this.buildSystemPrompt(memoryContext, context);
341
+ // 3. Get per-session conversation memory (isolate concurrent users)
342
+ const sessionKey = context?.senderId ?? "__default__";
343
+ if (!this.conversationHistories.has(sessionKey)) {
344
+ this.conversationHistories.set(sessionKey, this.makeMemory(sessionKey));
345
+ }
346
+ const memory = this.conversationHistories.get(sessionKey);
347
+ // Add user message — memory implementation enforces its own cap/compaction.
348
+ await memory.addMessage({ role: "user", content: message });
349
+ // 4. Agentic loop
350
+ let finalResponse = "";
351
+ let toolCallCount = 0;
352
+ while (toolCallCount <= this.options.maxToolCalls) {
353
+ // Build messages for LLM
354
+ const messages = [
355
+ { role: "system", content: systemPrompt },
356
+ ...memory.getContext(),
357
+ ];
358
+ // Call LLM
359
+ const response = await this.callLLM(messages);
360
+ // Check if response contains a tool call
361
+ const actionMatch = response.match(/ACTION:\s*(\S+)/i);
362
+ if (actionMatch && this.options.enableTools && toolCallCount < this.options.maxToolCalls) {
363
+ const actionType = actionMatch[1].toLowerCase();
364
+ // Parse params
365
+ let payload = {};
366
+ const paramsMatch = response.match(/PARAMS:\s*(\{[\s\S]*\})/i);
367
+ if (paramsMatch) {
368
+ try {
369
+ payload = JSON.parse(paramsMatch[1]);
370
+ }
371
+ catch {
372
+ if (this.options.verbose)
373
+ console.log("[chat] Failed to parse PARAMS JSON");
374
+ }
375
+ }
376
+ if (this.options.verbose) {
377
+ console.log(`[chat] Tool call #${toolCallCount + 1}: ${actionType}`);
378
+ }
379
+ // Execute tool
380
+ const toolResult = await this.executeTool(actionType, payload);
381
+ // Record assistant response + tool result. The legacy convention is to
382
+ // emit the tool result back as a `user` message (the chat path uses
383
+ // string-parsed pseudo tool calls, not structured `toolCalls[]`). We
384
+ // preserve that wire shape so existing prompts keep working — agents
385
+ // using structured tool calls drive `addMessage` themselves.
386
+ await memory.addMessage({ role: "assistant", content: response });
387
+ await memory.addMessage({
388
+ role: "user",
389
+ content: `[Tool Result for ${actionType}]:\n${toolResult}`,
390
+ });
391
+ toolCallCount++;
392
+ continue;
393
+ }
394
+ // No tool call — this is the final response
395
+ // Strip any ACTION/PARAMS artifacts if present but tools disabled
396
+ finalResponse = response.replace(/ACTION:\s*\S+\s*\n?/i, "").replace(/PARAMS:\s*\{[\s\S]*\}\s*/i, "").trim();
397
+ if (!finalResponse)
398
+ finalResponse = response.trim();
399
+ break;
400
+ }
401
+ // 5. Add assistant response to conversation memory
402
+ await memory.addMessage({ role: "assistant", content: finalResponse });
403
+ // 6. Notify subscribers — observability + episodic-memory hook (fire-and-forget)
404
+ // NOTE: emit fires regardless of `enableMemory`. The episodic-memory write
405
+ // that used to live here is now installed by `installEpisodicMemoryHook`
406
+ // (auto-installed by NookplotRuntime.connect()). The hook itself respects
407
+ // `enableMemory` semantics — see episodicMemoryHook.ts.
408
+ // TODO(compaction-phase-followup): gateway/src/routes/agentChat.ts:242
409
+ // has a near-identical episodic write at the gateway boundary. Sharing a
410
+ // single hook across the runtime/gateway split requires publishing this
411
+ // package and importing it from gateway/ — out of scope for Phase 1.
412
+ {
413
+ const platform = context?.platform ?? "unknown";
414
+ const sender = context?.senderName ?? context?.senderId ?? "user";
415
+ const hooks = this.runtime.hooks ?? defaultHooks;
416
+ hooks.emitFireAndForget("chat_turn_complete", {
417
+ sender,
418
+ platform,
419
+ message,
420
+ response: finalResponse,
421
+ toolsUsed: toolCallCount > 0,
422
+ toolCallCount,
423
+ senderId: context?.senderId ?? null,
424
+ channelId: context?.channelId ?? null,
425
+ agentName: this.agentName,
426
+ enableMemory: this.options.enableMemory,
427
+ });
428
+ }
429
+ return finalResponse;
430
+ }
431
+ /** Clear conversation history (e.g. on platform switch or reset). */
432
+ clearHistory(senderId) {
433
+ if (senderId) {
434
+ this.conversationHistories.delete(senderId);
435
+ }
436
+ else {
437
+ this.conversationHistories.clear();
438
+ }
439
+ this.loadedCategories.clear();
440
+ }
441
+ // ── Private Methods ──────────────────────────────────────
442
+ /**
443
+ * Build the system prompt from soul document + memory context + tool list.
444
+ */
445
+ buildSystemPrompt(memoryContext, context) {
446
+ const parts = [];
447
+ // Soul identity
448
+ if (this.soul) {
449
+ parts.push(`You are ${this.soul.name}.`);
450
+ if (this.soul.tagline)
451
+ parts.push(this.soul.tagline);
452
+ if (this.soul.description)
453
+ parts.push(this.soul.description);
454
+ parts.push("");
455
+ // Mission
456
+ parts.push(`Mission: ${this.soul.mission}`);
457
+ if (this.soul.domains?.length) {
458
+ parts.push(`Domains: ${this.soul.domains.join(", ")}`);
459
+ }
460
+ if (this.soul.goals?.length) {
461
+ parts.push(`Goals: ${this.soul.goals.join("; ")}`);
462
+ }
463
+ parts.push("");
464
+ // Personality
465
+ if (this.soul.traits?.length) {
466
+ parts.push(`Personality traits: ${this.soul.traits.join(", ")}`);
467
+ }
468
+ if (this.soul.communicationStyle) {
469
+ parts.push(`Communication style: ${this.soul.communicationStyle}`);
470
+ }
471
+ if (this.soul.communicationTone) {
472
+ parts.push(`Tone: ${this.soul.communicationTone}`);
473
+ }
474
+ if (this.soul.verbosity) {
475
+ parts.push(`Verbosity: ${this.soul.verbosity}`);
476
+ }
477
+ if (this.soul.quirks?.length) {
478
+ parts.push(`Quirks: ${this.soul.quirks.join("; ")}`);
479
+ }
480
+ parts.push("");
481
+ // Boundaries
482
+ if (this.soul.boundaries?.length) {
483
+ parts.push(`Boundaries: ${this.soul.boundaries.join("; ")}`);
484
+ }
485
+ }
486
+ // Platform context
487
+ if (context?.platform) {
488
+ parts.push(`You are chatting on ${context.platform}.`);
489
+ }
490
+ // Memory context
491
+ if (memoryContext) {
492
+ parts.push("");
493
+ parts.push("Relevant memories from previous conversations:");
494
+ parts.push(memoryContext);
495
+ }
496
+ // Tool instructions
497
+ if (this.options.enableTools) {
498
+ parts.push("");
499
+ parts.push(UNTRUSTED_CONTENT_INSTRUCTION);
500
+ parts.push("");
501
+ parts.push("You have access to Nookplot tools. To use one, respond ONLY with:");
502
+ parts.push("ACTION: <tool_name>");
503
+ parts.push("PARAMS: <json object>");
504
+ parts.push("");
505
+ parts.push("Do NOT mix tool calls with regular text. If you need to use a tool, respond with ONLY the ACTION/PARAMS block. After seeing the tool result, you can then respond with text.");
506
+ parts.push("");
507
+ // Build available actions list
508
+ const availableActions = this.getAvailableActions();
509
+ parts.push("Available tools:");
510
+ parts.push(formatActionsForPrompt(availableActions));
511
+ parts.push("");
512
+ parts.push("If you don't need a tool, just respond normally with text.");
513
+ }
514
+ return parts.join("\n");
515
+ }
516
+ /**
517
+ * Get the current set of available actions (core + dynamically loaded categories).
518
+ */
519
+ getAvailableActions() {
520
+ const actions = new Set(CHAT_ACTIONS);
521
+ // Add dynamically loaded category tools
522
+ for (const category of this.loadedCategories) {
523
+ const tools = getToolsInCategory(category);
524
+ for (const toolName of tools) {
525
+ actions.add(toolName);
526
+ }
527
+ }
528
+ return Array.from(actions);
529
+ }
530
+ /**
531
+ * Call the LLM — via user-provided function or runtime.economy.inference().
532
+ */
533
+ async callLLM(messages) {
534
+ if (this.options.generateResponse) {
535
+ return this.options.generateResponse(messages);
536
+ }
537
+ const result = await this.runtime.economy.inference(messages, {
538
+ model: this.options.model,
539
+ provider: this.options.provider,
540
+ temperature: this.options.temperature,
541
+ maxTokens: this.options.maxTokens,
542
+ });
543
+ return result.content;
544
+ }
545
+ /**
546
+ * Execute a tool via the gateway's unified dispatch pipeline.
547
+ *
548
+ * Same flow as AutonomousAgent.handleActionRequest():
549
+ * - browse_tools → local category expansion
550
+ * - POST /v1/actions/execute → completed | sign_required | error
551
+ */
552
+ async executeTool(actionType, payload) {
553
+ try {
554
+ // browse_tools is handled locally
555
+ if (actionType === "browse_tools") {
556
+ const category = payload.category;
557
+ if (!category) {
558
+ const listing = getCategoryListing();
559
+ return `Available tool categories:\n${listing.map((c) => `- ${c.name} (${c.count} tools)`).join("\n")}\n\nUse browse_tools with a category to load those tools.`;
560
+ }
561
+ this.loadedCategories.add(category);
562
+ const tools = getToolsInCategory(category);
563
+ const toolDescriptions = tools.map((toolName) => {
564
+ const info = ACTION_CATALOG[toolName];
565
+ return info ? `- ${toolName}: ${info.description}` : `- ${toolName}`;
566
+ });
567
+ return `Loaded ${tools.length} tools from "${category}":\n${toolDescriptions.join("\n")}`;
568
+ }
569
+ // Unified dispatch via gateway
570
+ const toolName = `nookplot_${actionType}`;
571
+ const dispatchResult = await this.runtime.connection.request("POST", "/v1/actions/execute", { toolName, payload });
572
+ switch (dispatchResult.status) {
573
+ case "completed": {
574
+ const result = dispatchResult.result ?? {};
575
+ return typeof result === "string" ? result : JSON.stringify(result, null, 2);
576
+ }
577
+ case "sign_required": {
578
+ // On-chain action: sign locally + relay
579
+ if (!dispatchResult.forwardRequest || !dispatchResult.domain || !dispatchResult.types) {
580
+ return `Error: sign_required but missing signing data for ${actionType}`;
581
+ }
582
+ const privateKey = this.runtime.connection.privateKey;
583
+ if (!privateKey) {
584
+ return `Error: Cannot sign on-chain transaction — no private key configured.`;
585
+ }
586
+ const { signForwardRequest } = await import("../signing.js");
587
+ const signature = await signForwardRequest(privateKey, dispatchResult.domain, dispatchResult.types, dispatchResult.forwardRequest);
588
+ const relayResult = await this.runtime.connection.request("POST", "/v1/relay", { ...dispatchResult.forwardRequest, signature });
589
+ return `On-chain transaction submitted. TX hash: ${relayResult.txHash}`;
590
+ }
591
+ default:
592
+ return dispatchResult.error
593
+ ? `Error: ${dispatchResult.error}`
594
+ : `Unexpected status: ${dispatchResult.status}`;
595
+ }
596
+ }
597
+ catch (err) {
598
+ const msg = err instanceof Error ? err.message : String(err);
599
+ if (this.options.verbose)
600
+ console.error(`[chat] Tool execution failed: ${msg}`);
601
+ return `Error executing ${actionType}: ${msg}`;
602
+ }
603
+ }
604
+ }
605
+ //# sourceMappingURL=chatEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatEngine.js","sourceRoot":"","sources":["../../src/chat/chatEngine.ts"],"names":[],"mappings":"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"}