@xopcai/xopcbot 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (535) hide show
  1. package/README.md +132 -0
  2. package/README.zh-CN.md +130 -0
  3. package/dist/__tests__/core.test.d.ts +1 -0
  4. package/dist/__tests__/core.test.js +72 -0
  5. package/dist/__tests__/core.test.js.map +1 -0
  6. package/dist/agent/fallback/__tests__/index.test.d.ts +1 -0
  7. package/dist/agent/fallback/__tests__/index.test.js +111 -0
  8. package/dist/agent/fallback/__tests__/index.test.js.map +1 -0
  9. package/dist/agent/fallback/candidates.d.ts +23 -0
  10. package/dist/agent/fallback/candidates.js +62 -0
  11. package/dist/agent/fallback/candidates.js.map +1 -0
  12. package/dist/agent/fallback/error.d.ts +22 -0
  13. package/dist/agent/fallback/error.js +27 -0
  14. package/dist/agent/fallback/error.js.map +1 -0
  15. package/dist/agent/fallback/index.d.ts +6 -0
  16. package/dist/agent/fallback/index.js +5 -0
  17. package/dist/agent/fallback/index.js.map +1 -0
  18. package/dist/agent/fallback/reason.d.ts +7 -0
  19. package/dist/agent/fallback/reason.js +78 -0
  20. package/dist/agent/fallback/reason.js.map +1 -0
  21. package/dist/agent/fallback/runner.d.ts +22 -0
  22. package/dist/agent/fallback/runner.js +34 -0
  23. package/dist/agent/fallback/runner.js.map +1 -0
  24. package/dist/agent/helpers.d.ts +38 -0
  25. package/dist/agent/helpers.js +122 -0
  26. package/dist/agent/helpers.js.map +1 -0
  27. package/dist/agent/index.d.ts +7 -0
  28. package/dist/agent/index.js +7 -0
  29. package/dist/agent/index.js.map +1 -0
  30. package/dist/agent/memory/compaction.d.ts +63 -0
  31. package/dist/agent/memory/compaction.js +233 -0
  32. package/dist/agent/memory/compaction.js.map +1 -0
  33. package/dist/agent/memory/window.d.ts +29 -0
  34. package/dist/agent/memory/window.js +64 -0
  35. package/dist/agent/memory/window.js.map +1 -0
  36. package/dist/agent/model-manager.d.ts +80 -0
  37. package/dist/agent/model-manager.js +213 -0
  38. package/dist/agent/model-manager.js.map +1 -0
  39. package/dist/agent/prompt/heartbeat.d.ts +97 -0
  40. package/dist/agent/prompt/heartbeat.js +313 -0
  41. package/dist/agent/prompt/heartbeat.js.map +1 -0
  42. package/dist/agent/prompt/index.d.ts +65 -0
  43. package/dist/agent/prompt/index.js +215 -0
  44. package/dist/agent/prompt/index.js.map +1 -0
  45. package/dist/agent/prompt/memory/index.d.ts +37 -0
  46. package/dist/agent/prompt/memory/index.js +241 -0
  47. package/dist/agent/prompt/memory/index.js.map +1 -0
  48. package/dist/agent/prompt/modes.d.ts +44 -0
  49. package/dist/agent/prompt/modes.js +167 -0
  50. package/dist/agent/prompt/modes.js.map +1 -0
  51. package/dist/agent/prompt/safety.d.ts +88 -0
  52. package/dist/agent/prompt/safety.js +290 -0
  53. package/dist/agent/prompt/safety.js.map +1 -0
  54. package/dist/agent/service.d.ts +91 -0
  55. package/dist/agent/service.js +641 -0
  56. package/dist/agent/service.js.map +1 -0
  57. package/dist/agent/session-tracker.d.ts +73 -0
  58. package/dist/agent/session-tracker.js +137 -0
  59. package/dist/agent/session-tracker.js.map +1 -0
  60. package/dist/agent/skills/__tests__/test-framework.test.d.ts +4 -0
  61. package/dist/agent/skills/__tests__/test-framework.test.js +343 -0
  62. package/dist/agent/skills/__tests__/test-framework.test.js.map +1 -0
  63. package/dist/agent/skills/config.d.ts +58 -0
  64. package/dist/agent/skills/config.js +212 -0
  65. package/dist/agent/skills/config.js.map +1 -0
  66. package/dist/agent/skills/index.d.ts +25 -0
  67. package/dist/agent/skills/index.js +349 -0
  68. package/dist/agent/skills/index.js.map +1 -0
  69. package/dist/agent/skills/installer.d.ts +38 -0
  70. package/dist/agent/skills/installer.js +352 -0
  71. package/dist/agent/skills/installer.js.map +1 -0
  72. package/dist/agent/skills/scanner.d.ts +32 -0
  73. package/dist/agent/skills/scanner.js +265 -0
  74. package/dist/agent/skills/scanner.js.map +1 -0
  75. package/dist/agent/skills/test-framework.d.ts +107 -0
  76. package/dist/agent/skills/test-framework.js +607 -0
  77. package/dist/agent/skills/test-framework.js.map +1 -0
  78. package/dist/agent/skills/types.d.ts +181 -0
  79. package/dist/agent/skills/types.js +7 -0
  80. package/dist/agent/skills/types.js.map +1 -0
  81. package/dist/agent/skills/watcher.d.ts +37 -0
  82. package/dist/agent/skills/watcher.js +124 -0
  83. package/dist/agent/skills/watcher.js.map +1 -0
  84. package/dist/agent/tools/communication.d.ts +18 -0
  85. package/dist/agent/tools/communication.js +56 -0
  86. package/dist/agent/tools/communication.js.map +1 -0
  87. package/dist/agent/tools/edit-diff.d.ts +21 -0
  88. package/dist/agent/tools/edit-diff.js +69 -0
  89. package/dist/agent/tools/edit-diff.js.map +1 -0
  90. package/dist/agent/tools/edit.d.ts +13 -0
  91. package/dist/agent/tools/edit.js +65 -0
  92. package/dist/agent/tools/edit.js.map +1 -0
  93. package/dist/agent/tools/find.d.ts +24 -0
  94. package/dist/agent/tools/find.js +99 -0
  95. package/dist/agent/tools/find.js.map +1 -0
  96. package/dist/agent/tools/grep.d.ts +33 -0
  97. package/dist/agent/tools/grep.js +183 -0
  98. package/dist/agent/tools/grep.js.map +1 -0
  99. package/dist/agent/tools/index.d.ts +13 -0
  100. package/dist/agent/tools/index.js +18 -0
  101. package/dist/agent/tools/index.js.map +1 -0
  102. package/dist/agent/tools/list-dir.d.ts +6 -0
  103. package/dist/agent/tools/list-dir.js +37 -0
  104. package/dist/agent/tools/list-dir.js.map +1 -0
  105. package/dist/agent/tools/memory-tool.d.ts +14 -0
  106. package/dist/agent/tools/memory-tool.js +81 -0
  107. package/dist/agent/tools/memory-tool.js.map +1 -0
  108. package/dist/agent/tools/path-utils.d.ts +4 -0
  109. package/dist/agent/tools/path-utils.js +13 -0
  110. package/dist/agent/tools/path-utils.js.map +1 -0
  111. package/dist/agent/tools/read.d.ts +7 -0
  112. package/dist/agent/tools/read.js +47 -0
  113. package/dist/agent/tools/read.js.map +1 -0
  114. package/dist/agent/tools/send-media.d.ts +18 -0
  115. package/dist/agent/tools/send-media.js +104 -0
  116. package/dist/agent/tools/send-media.js.map +1 -0
  117. package/dist/agent/tools/shell.d.ts +13 -0
  118. package/dist/agent/tools/shell.js +114 -0
  119. package/dist/agent/tools/shell.js.map +1 -0
  120. package/dist/agent/tools/truncate.d.ts +36 -0
  121. package/dist/agent/tools/truncate.js +98 -0
  122. package/dist/agent/tools/truncate.js.map +1 -0
  123. package/dist/agent/tools/web.d.ts +14 -0
  124. package/dist/agent/tools/web.js +109 -0
  125. package/dist/agent/tools/web.js.map +1 -0
  126. package/dist/agent/tools/write.d.ts +7 -0
  127. package/dist/agent/tools/write.js +35 -0
  128. package/dist/agent/tools/write.js.map +1 -0
  129. package/dist/agent/types.d.ts +8 -0
  130. package/dist/agent/types.js +2 -0
  131. package/dist/agent/types.js.map +1 -0
  132. package/dist/agent/typing.d.ts +9 -0
  133. package/dist/agent/typing.js +32 -0
  134. package/dist/agent/typing.js.map +1 -0
  135. package/dist/auth/index.d.ts +12 -0
  136. package/dist/auth/index.js +14 -0
  137. package/dist/auth/index.js.map +1 -0
  138. package/dist/auth/oauth/anthropic.d.ts +7 -0
  139. package/dist/auth/oauth/anthropic.js +89 -0
  140. package/dist/auth/oauth/anthropic.js.map +1 -0
  141. package/dist/auth/oauth/github-copilot.d.ts +8 -0
  142. package/dist/auth/oauth/github-copilot.js +35 -0
  143. package/dist/auth/oauth/github-copilot.js.map +1 -0
  144. package/dist/auth/oauth/google-antigravity.d.ts +7 -0
  145. package/dist/auth/oauth/google-antigravity.js +27 -0
  146. package/dist/auth/oauth/google-antigravity.js.map +1 -0
  147. package/dist/auth/oauth/google-gemini-cli.d.ts +7 -0
  148. package/dist/auth/oauth/google-gemini-cli.js +28 -0
  149. package/dist/auth/oauth/google-gemini-cli.js.map +1 -0
  150. package/dist/auth/oauth/index.d.ts +14 -0
  151. package/dist/auth/oauth/index.js +15 -0
  152. package/dist/auth/oauth/index.js.map +1 -0
  153. package/dist/auth/oauth/kimi.d.ts +8 -0
  154. package/dist/auth/oauth/kimi.js +104 -0
  155. package/dist/auth/oauth/kimi.js.map +1 -0
  156. package/dist/auth/oauth/minimax.d.ts +8 -0
  157. package/dist/auth/oauth/minimax.js +109 -0
  158. package/dist/auth/oauth/minimax.js.map +1 -0
  159. package/dist/auth/oauth/openai-codex.d.ts +7 -0
  160. package/dist/auth/oauth/openai-codex.js +33 -0
  161. package/dist/auth/oauth/openai-codex.js.map +1 -0
  162. package/dist/auth/oauth/pkce.d.ts +8 -0
  163. package/dist/auth/oauth/pkce.js +22 -0
  164. package/dist/auth/oauth/pkce.js.map +1 -0
  165. package/dist/auth/oauth/qwen.d.ts +7 -0
  166. package/dist/auth/oauth/qwen.js +114 -0
  167. package/dist/auth/oauth/qwen.js.map +1 -0
  168. package/dist/auth/oauth/types.d.ts +46 -0
  169. package/dist/auth/oauth/types.js +7 -0
  170. package/dist/auth/oauth/types.js.map +1 -0
  171. package/dist/auth/profiles/index.d.ts +16 -0
  172. package/dist/auth/profiles/index.js +17 -0
  173. package/dist/auth/profiles/index.js.map +1 -0
  174. package/dist/auth/profiles/oauth.d.ts +12 -0
  175. package/dist/auth/profiles/oauth.js +106 -0
  176. package/dist/auth/profiles/oauth.js.map +1 -0
  177. package/dist/auth/profiles/order.d.ts +19 -0
  178. package/dist/auth/profiles/order.js +63 -0
  179. package/dist/auth/profiles/order.js.map +1 -0
  180. package/dist/auth/profiles/profiles.d.ts +27 -0
  181. package/dist/auth/profiles/profiles.js +110 -0
  182. package/dist/auth/profiles/profiles.js.map +1 -0
  183. package/dist/auth/profiles/store.d.ts +17 -0
  184. package/dist/auth/profiles/store.js +234 -0
  185. package/dist/auth/profiles/store.js.map +1 -0
  186. package/dist/auth/profiles/types.d.ts +64 -0
  187. package/dist/auth/profiles/types.js +7 -0
  188. package/dist/auth/profiles/types.js.map +1 -0
  189. package/dist/auth/profiles/usage.d.ts +24 -0
  190. package/dist/auth/profiles/usage.js +99 -0
  191. package/dist/auth/profiles/usage.js.map +1 -0
  192. package/dist/auth/storage.d.ts +99 -0
  193. package/dist/auth/storage.js +315 -0
  194. package/dist/auth/storage.js.map +1 -0
  195. package/dist/bus/index.d.ts +3 -0
  196. package/dist/bus/index.js +2 -0
  197. package/dist/bus/index.js.map +1 -0
  198. package/dist/bus/queue.d.ts +20 -0
  199. package/dist/bus/queue.js +57 -0
  200. package/dist/bus/queue.js.map +1 -0
  201. package/dist/channels/__tests__/access-control.test.d.ts +4 -0
  202. package/dist/channels/__tests__/access-control.test.js +310 -0
  203. package/dist/channels/__tests__/access-control.test.js.map +1 -0
  204. package/dist/channels/__tests__/draft-stream.test.d.ts +4 -0
  205. package/dist/channels/__tests__/draft-stream.test.js +243 -0
  206. package/dist/channels/__tests__/draft-stream.test.js.map +1 -0
  207. package/dist/channels/__tests__/format.test.d.ts +4 -0
  208. package/dist/channels/__tests__/format.test.js +146 -0
  209. package/dist/channels/__tests__/format.test.js.map +1 -0
  210. package/dist/channels/__tests__/manager.test.d.ts +6 -0
  211. package/dist/channels/__tests__/manager.test.js +34 -0
  212. package/dist/channels/__tests__/manager.test.js.map +1 -0
  213. package/dist/channels/__tests__/typing-controller.test.d.ts +4 -0
  214. package/dist/channels/__tests__/typing-controller.test.js +109 -0
  215. package/dist/channels/__tests__/typing-controller.test.js.map +1 -0
  216. package/dist/channels/__tests__/update-offset-store.test.d.ts +7 -0
  217. package/dist/channels/__tests__/update-offset-store.test.js +35 -0
  218. package/dist/channels/__tests__/update-offset-store.test.js.map +1 -0
  219. package/dist/channels/access-control.d.ts +93 -0
  220. package/dist/channels/access-control.js +201 -0
  221. package/dist/channels/access-control.js.map +1 -0
  222. package/dist/channels/draft-stream.d.ts +55 -0
  223. package/dist/channels/draft-stream.js +211 -0
  224. package/dist/channels/draft-stream.js.map +1 -0
  225. package/dist/channels/format.d.ts +38 -0
  226. package/dist/channels/format.js +187 -0
  227. package/dist/channels/format.js.map +1 -0
  228. package/dist/channels/index.d.ts +22 -0
  229. package/dist/channels/index.js +23 -0
  230. package/dist/channels/index.js.map +1 -0
  231. package/dist/channels/manager.d.ts +30 -0
  232. package/dist/channels/manager.js +125 -0
  233. package/dist/channels/manager.js.map +1 -0
  234. package/dist/channels/telegram/__tests__/index.test.d.ts +4 -0
  235. package/dist/channels/telegram/__tests__/index.test.js +153 -0
  236. package/dist/channels/telegram/__tests__/index.test.js.map +1 -0
  237. package/dist/channels/telegram/__tests__/inline-keyboards.test.d.ts +4 -0
  238. package/dist/channels/telegram/__tests__/inline-keyboards.test.js +99 -0
  239. package/dist/channels/telegram/__tests__/inline-keyboards.test.js.map +1 -0
  240. package/dist/channels/telegram/client.d.ts +48 -0
  241. package/dist/channels/telegram/client.js +177 -0
  242. package/dist/channels/telegram/client.js.map +1 -0
  243. package/dist/channels/telegram/command-handler.d.ts +28 -0
  244. package/dist/channels/telegram/command-handler.js +209 -0
  245. package/dist/channels/telegram/command-handler.js.map +1 -0
  246. package/dist/channels/telegram/index.d.ts +8 -0
  247. package/dist/channels/telegram/index.js +9 -0
  248. package/dist/channels/telegram/index.js.map +1 -0
  249. package/dist/channels/telegram/inline-keyboards.d.ts +20 -0
  250. package/dist/channels/telegram/inline-keyboards.js +38 -0
  251. package/dist/channels/telegram/inline-keyboards.js.map +1 -0
  252. package/dist/channels/telegram/plugin.d.ts +33 -0
  253. package/dist/channels/telegram/plugin.js +640 -0
  254. package/dist/channels/telegram/plugin.js.map +1 -0
  255. package/dist/channels/telegram/webhook.d.ts +31 -0
  256. package/dist/channels/telegram/webhook.js +129 -0
  257. package/dist/channels/telegram/webhook.js.map +1 -0
  258. package/dist/channels/types.d.ts +186 -0
  259. package/dist/channels/types.js +7 -0
  260. package/dist/channels/types.js.map +1 -0
  261. package/dist/channels/typing-controller.d.ts +47 -0
  262. package/dist/channels/typing-controller.js +117 -0
  263. package/dist/channels/typing-controller.js.map +1 -0
  264. package/dist/channels/update-offset-store.d.ts +37 -0
  265. package/dist/channels/update-offset-store.js +165 -0
  266. package/dist/channels/update-offset-store.js.map +1 -0
  267. package/dist/channels/whatsapp/index.d.ts +4 -0
  268. package/dist/channels/whatsapp/index.js +5 -0
  269. package/dist/channels/whatsapp/index.js.map +1 -0
  270. package/dist/channels/whatsapp/plugin.d.ts +27 -0
  271. package/dist/channels/whatsapp/plugin.js +66 -0
  272. package/dist/channels/whatsapp/plugin.js.map +1 -0
  273. package/dist/cli/__tests__/registry.test.d.ts +1 -0
  274. package/dist/cli/__tests__/registry.test.js +366 -0
  275. package/dist/cli/__tests__/registry.test.js.map +1 -0
  276. package/dist/cli/commands/agent.d.ts +1 -0
  277. package/dist/cli/commands/agent.js +216 -0
  278. package/dist/cli/commands/agent.js.map +1 -0
  279. package/dist/cli/commands/auth.d.ts +6 -0
  280. package/dist/cli/commands/auth.js +440 -0
  281. package/dist/cli/commands/auth.js.map +1 -0
  282. package/dist/cli/commands/config.d.ts +1 -0
  283. package/dist/cli/commands/config.js +135 -0
  284. package/dist/cli/commands/config.js.map +1 -0
  285. package/dist/cli/commands/configure.d.ts +1 -0
  286. package/dist/cli/commands/configure.js +173 -0
  287. package/dist/cli/commands/configure.js.map +1 -0
  288. package/dist/cli/commands/cron.d.ts +1 -0
  289. package/dist/cli/commands/cron.js +81 -0
  290. package/dist/cli/commands/cron.js.map +1 -0
  291. package/dist/cli/commands/gateway.d.ts +1 -0
  292. package/dist/cli/commands/gateway.js +91 -0
  293. package/dist/cli/commands/gateway.js.map +1 -0
  294. package/dist/cli/commands/index.d.ts +0 -0
  295. package/dist/cli/commands/index.js +2 -0
  296. package/dist/cli/commands/index.js.map +1 -0
  297. package/dist/cli/commands/models.d.ts +1 -0
  298. package/dist/cli/commands/models.js +79 -0
  299. package/dist/cli/commands/models.js.map +1 -0
  300. package/dist/cli/commands/onboard.d.ts +1 -0
  301. package/dist/cli/commands/onboard.js +621 -0
  302. package/dist/cli/commands/onboard.js.map +1 -0
  303. package/dist/cli/commands/plugin.d.ts +1 -0
  304. package/dist/cli/commands/plugin.js +341 -0
  305. package/dist/cli/commands/plugin.js.map +1 -0
  306. package/dist/cli/commands/session.d.ts +1 -0
  307. package/dist/cli/commands/session.js +450 -0
  308. package/dist/cli/commands/session.js.map +1 -0
  309. package/dist/cli/commands/skills-test.d.ts +9 -0
  310. package/dist/cli/commands/skills-test.js +195 -0
  311. package/dist/cli/commands/skills-test.js.map +1 -0
  312. package/dist/cli/commands/skills.d.ts +9 -0
  313. package/dist/cli/commands/skills.js +385 -0
  314. package/dist/cli/commands/skills.js.map +1 -0
  315. package/dist/cli/index.d.ts +19 -0
  316. package/dist/cli/index.js +40 -0
  317. package/dist/cli/index.js.map +1 -0
  318. package/dist/cli/registry.d.ts +43 -0
  319. package/dist/cli/registry.js +82 -0
  320. package/dist/cli/registry.js.map +1 -0
  321. package/dist/cli/templates.d.ts +19 -0
  322. package/dist/cli/templates.js +191 -0
  323. package/dist/cli/templates.js.map +1 -0
  324. package/dist/cli/utils/colors.d.ts +13 -0
  325. package/dist/cli/utils/colors.js +16 -0
  326. package/dist/cli/utils/colors.js.map +1 -0
  327. package/dist/config/__tests__/diff.test.d.ts +1 -0
  328. package/dist/config/__tests__/diff.test.js +192 -0
  329. package/dist/config/__tests__/diff.test.js.map +1 -0
  330. package/dist/config/__tests__/loader.test.d.ts +1 -0
  331. package/dist/config/__tests__/loader.test.js +356 -0
  332. package/dist/config/__tests__/loader.test.js.map +1 -0
  333. package/dist/config/__tests__/paths.test.d.ts +1 -0
  334. package/dist/config/__tests__/paths.test.js +192 -0
  335. package/dist/config/__tests__/paths.test.js.map +1 -0
  336. package/dist/config/__tests__/reload.test.d.ts +1 -0
  337. package/dist/config/__tests__/reload.test.js +374 -0
  338. package/dist/config/__tests__/reload.test.js.map +1 -0
  339. package/dist/config/__tests__/rules.test.d.ts +1 -0
  340. package/dist/config/__tests__/rules.test.js +204 -0
  341. package/dist/config/__tests__/rules.test.js.map +1 -0
  342. package/dist/config/__tests__/schema.test.d.ts +1 -0
  343. package/dist/config/__tests__/schema.test.js +672 -0
  344. package/dist/config/__tests__/schema.test.js.map +1 -0
  345. package/dist/config/diff.d.ts +7 -0
  346. package/dist/config/diff.js +46 -0
  347. package/dist/config/diff.js.map +1 -0
  348. package/dist/config/index.d.ts +6 -0
  349. package/dist/config/index.js +7 -0
  350. package/dist/config/index.js.map +1 -0
  351. package/dist/config/loader.d.ts +5 -0
  352. package/dist/config/loader.js +81 -0
  353. package/dist/config/loader.js.map +1 -0
  354. package/dist/config/paths.d.ts +35 -0
  355. package/dist/config/paths.js +79 -0
  356. package/dist/config/paths.js.map +1 -0
  357. package/dist/config/reload.d.ts +78 -0
  358. package/dist/config/reload.js +190 -0
  359. package/dist/config/reload.js.map +1 -0
  360. package/dist/config/rules.d.ts +42 -0
  361. package/dist/config/rules.js +114 -0
  362. package/dist/config/rules.js.map +1 -0
  363. package/dist/config/schema.d.ts +1340 -0
  364. package/dist/config/schema.js +611 -0
  365. package/dist/config/schema.js.map +1 -0
  366. package/dist/cron/executor.d.ts +54 -0
  367. package/dist/cron/executor.js +364 -0
  368. package/dist/cron/executor.js.map +1 -0
  369. package/dist/cron/index.d.ts +5 -0
  370. package/dist/cron/index.js +6 -0
  371. package/dist/cron/index.js.map +1 -0
  372. package/dist/cron/persistence.d.ts +61 -0
  373. package/dist/cron/persistence.js +188 -0
  374. package/dist/cron/persistence.js.map +1 -0
  375. package/dist/cron/service.d.ts +94 -0
  376. package/dist/cron/service.js +382 -0
  377. package/dist/cron/service.js.map +1 -0
  378. package/dist/cron/types.d.ts +119 -0
  379. package/dist/cron/types.js +3 -0
  380. package/dist/cron/types.js.map +1 -0
  381. package/dist/cron/validation.d.ts +144 -0
  382. package/dist/cron/validation.js +113 -0
  383. package/dist/cron/validation.js.map +1 -0
  384. package/dist/errors/__tests__/index.test.d.ts +1 -0
  385. package/dist/errors/__tests__/index.test.js +301 -0
  386. package/dist/errors/__tests__/index.test.js.map +1 -0
  387. package/dist/errors/index.d.ts +114 -0
  388. package/dist/errors/index.js +278 -0
  389. package/dist/errors/index.js.map +1 -0
  390. package/dist/gateway/hono/app.d.ts +7 -0
  391. package/dist/gateway/hono/app.js +668 -0
  392. package/dist/gateway/hono/app.js.map +1 -0
  393. package/dist/gateway/hono/index.d.ts +2 -0
  394. package/dist/gateway/hono/index.js +3 -0
  395. package/dist/gateway/hono/index.js.map +1 -0
  396. package/dist/gateway/hono/middleware/auth.d.ts +18 -0
  397. package/dist/gateway/hono/middleware/auth.js +79 -0
  398. package/dist/gateway/hono/middleware/auth.js.map +1 -0
  399. package/dist/gateway/hono/middleware/logger.d.ts +1 -0
  400. package/dist/gateway/hono/middleware/logger.js +17 -0
  401. package/dist/gateway/hono/middleware/logger.js.map +1 -0
  402. package/dist/gateway/hono/sse.d.ts +55 -0
  403. package/dist/gateway/hono/sse.js +224 -0
  404. package/dist/gateway/hono/sse.js.map +1 -0
  405. package/dist/gateway/index.d.ts +4 -0
  406. package/dist/gateway/index.js +5 -0
  407. package/dist/gateway/index.js.map +1 -0
  408. package/dist/gateway/protocol.d.ts +28 -0
  409. package/dist/gateway/protocol.js +14 -0
  410. package/dist/gateway/protocol.js.map +1 -0
  411. package/dist/gateway/server.d.ts +19 -0
  412. package/dist/gateway/server.js +64 -0
  413. package/dist/gateway/server.js.map +1 -0
  414. package/dist/gateway/service.d.ts +265 -0
  415. package/dist/gateway/service.js +621 -0
  416. package/dist/gateway/service.js.map +1 -0
  417. package/dist/gateway/static/root/assets/main-CfIxL-cL.js +2105 -0
  418. package/dist/gateway/static/root/assets/main-CfIxL-cL.js.map +1 -0
  419. package/dist/gateway/static/root/assets/main-DndcTCgX.css +1 -0
  420. package/dist/gateway/static/root/index.html +116 -0
  421. package/dist/heartbeat/index.d.ts +1 -0
  422. package/dist/heartbeat/index.js +2 -0
  423. package/dist/heartbeat/index.js.map +1 -0
  424. package/dist/heartbeat/service.d.ts +19 -0
  425. package/dist/heartbeat/service.js +61 -0
  426. package/dist/heartbeat/service.js.map +1 -0
  427. package/dist/plugin-sdk/index.d.ts +21 -0
  428. package/dist/plugin-sdk/index.js +12 -0
  429. package/dist/plugin-sdk/index.js.map +1 -0
  430. package/dist/plugins/__tests__/api.test.d.ts +1 -0
  431. package/dist/plugins/__tests__/api.test.js +164 -0
  432. package/dist/plugins/__tests__/api.test.js.map +1 -0
  433. package/dist/plugins/__tests__/hooks.test.d.ts +1 -0
  434. package/dist/plugins/__tests__/hooks.test.js +159 -0
  435. package/dist/plugins/__tests__/hooks.test.js.map +1 -0
  436. package/dist/plugins/__tests__/loader.test.d.ts +1 -0
  437. package/dist/plugins/__tests__/loader.test.js +120 -0
  438. package/dist/plugins/__tests__/loader.test.js.map +1 -0
  439. package/dist/plugins/api.d.ts +41 -0
  440. package/dist/plugins/api.js +131 -0
  441. package/dist/plugins/api.js.map +1 -0
  442. package/dist/plugins/hooks.d.ts +153 -0
  443. package/dist/plugins/hooks.js +172 -0
  444. package/dist/plugins/hooks.js.map +1 -0
  445. package/dist/plugins/index.d.ts +11 -0
  446. package/dist/plugins/index.js +16 -0
  447. package/dist/plugins/index.js.map +1 -0
  448. package/dist/plugins/install.d.ts +59 -0
  449. package/dist/plugins/install.js +324 -0
  450. package/dist/plugins/install.js.map +1 -0
  451. package/dist/plugins/loader.d.ts +84 -0
  452. package/dist/plugins/loader.js +545 -0
  453. package/dist/plugins/loader.js.map +1 -0
  454. package/dist/plugins/types.d.ts +190 -0
  455. package/dist/plugins/types.js +7 -0
  456. package/dist/plugins/types.js.map +1 -0
  457. package/dist/providers/__tests__/registry.test.d.ts +1 -0
  458. package/dist/providers/__tests__/registry.test.js +110 -0
  459. package/dist/providers/__tests__/registry.test.js.map +1 -0
  460. package/dist/providers/api-strategies.d.ts +15 -0
  461. package/dist/providers/api-strategies.js +96 -0
  462. package/dist/providers/api-strategies.js.map +1 -0
  463. package/dist/providers/auto-discovery.d.ts +84 -0
  464. package/dist/providers/auto-discovery.js +236 -0
  465. package/dist/providers/auto-discovery.js.map +1 -0
  466. package/dist/providers/config.d.ts +25 -0
  467. package/dist/providers/config.js +42 -0
  468. package/dist/providers/config.js.map +1 -0
  469. package/dist/providers/index.d.ts +25 -0
  470. package/dist/providers/index.js +55 -0
  471. package/dist/providers/index.js.map +1 -0
  472. package/dist/providers/model-catalog.d.ts +205 -0
  473. package/dist/providers/model-catalog.js +1071 -0
  474. package/dist/providers/model-catalog.js.map +1 -0
  475. package/dist/providers/models-dev-data.d.ts +11 -0
  476. package/dist/providers/models-dev-data.js +1035 -0
  477. package/dist/providers/models-dev-data.js.map +1 -0
  478. package/dist/providers/models-dev.d.ts +30 -0
  479. package/dist/providers/models-dev.js +42 -0
  480. package/dist/providers/models-dev.js.map +1 -0
  481. package/dist/providers/pi-ai.d.ts +62 -0
  482. package/dist/providers/pi-ai.js +221 -0
  483. package/dist/providers/pi-ai.js.map +1 -0
  484. package/dist/providers/provider-catalog.d.ts +173 -0
  485. package/dist/providers/provider-catalog.js +834 -0
  486. package/dist/providers/provider-catalog.js.map +1 -0
  487. package/dist/providers/registry.d.ts +155 -0
  488. package/dist/providers/registry.js +524 -0
  489. package/dist/providers/registry.js.map +1 -0
  490. package/dist/providers/types.d.ts +95 -0
  491. package/dist/providers/types.js +7 -0
  492. package/dist/providers/types.js.map +1 -0
  493. package/dist/session/chat-manager.d.ts +49 -0
  494. package/dist/session/chat-manager.js +167 -0
  495. package/dist/session/chat-manager.js.map +1 -0
  496. package/dist/session/chat-types.d.ts +53 -0
  497. package/dist/session/chat-types.js +63 -0
  498. package/dist/session/chat-types.js.map +1 -0
  499. package/dist/session/index.d.ts +5 -0
  500. package/dist/session/index.js +5 -0
  501. package/dist/session/index.js.map +1 -0
  502. package/dist/session/manager.d.ts +103 -0
  503. package/dist/session/manager.js +200 -0
  504. package/dist/session/manager.js.map +1 -0
  505. package/dist/session/store.d.ts +114 -0
  506. package/dist/session/store.js +687 -0
  507. package/dist/session/store.js.map +1 -0
  508. package/dist/session/types.d.ts +88 -0
  509. package/dist/session/types.js +10 -0
  510. package/dist/session/types.js.map +1 -0
  511. package/dist/types/index.d.ts +177 -0
  512. package/dist/types/index.js +4 -0
  513. package/dist/types/index.js.map +1 -0
  514. package/dist/types/providers.d.ts +67 -0
  515. package/dist/types/providers.js +7 -0
  516. package/dist/types/providers.js.map +1 -0
  517. package/dist/utils/frontmatter.d.ts +17 -0
  518. package/dist/utils/frontmatter.js +104 -0
  519. package/dist/utils/frontmatter.js.map +1 -0
  520. package/dist/utils/helpers.d.ts +5 -0
  521. package/dist/utils/helpers.js +36 -0
  522. package/dist/utils/helpers.js.map +1 -0
  523. package/dist/utils/index.d.ts +2 -0
  524. package/dist/utils/index.js +3 -0
  525. package/dist/utils/index.js.map +1 -0
  526. package/dist/utils/log-store.d.ts +78 -0
  527. package/dist/utils/log-store.js +432 -0
  528. package/dist/utils/log-store.js.map +1 -0
  529. package/dist/utils/logger.d.ts +127 -0
  530. package/dist/utils/logger.js +481 -0
  531. package/dist/utils/logger.js.map +1 -0
  532. package/dist/utils/logger.types.d.ts +152 -0
  533. package/dist/utils/logger.types.js +30 -0
  534. package/dist/utils/logger.types.js.map +1 -0
  535. package/package.json +93 -0
@@ -0,0 +1,313 @@
1
+ // Heartbeat System - Proactive monitoring and intelligent checks
2
+ import { existsSync, readFileSync, writeFileSync } from 'fs';
3
+ import { join } from 'path';
4
+ // =============================================================================
5
+ // Default Configuration
6
+ // =============================================================================
7
+ export const DEFAULT_HEARTBEAT_CONFIG = {
8
+ enabled: true,
9
+ interval: 30, // 30 minutes
10
+ checks: [
11
+ {
12
+ name: 'email',
13
+ enabled: false,
14
+ priority: 'high',
15
+ },
16
+ {
17
+ name: 'calendar',
18
+ enabled: true,
19
+ priority: 'normal',
20
+ interval: 60, // 1 hour
21
+ },
22
+ {
23
+ name: 'mentions',
24
+ enabled: true,
25
+ priority: 'high',
26
+ interval: 15,
27
+ },
28
+ {
29
+ name: 'weather',
30
+ enabled: false,
31
+ priority: 'low',
32
+ },
33
+ ],
34
+ quietHours: {
35
+ start: 23,
36
+ end: 8,
37
+ },
38
+ };
39
+ // =============================================================================
40
+ // Heartbeat Manager
41
+ // =============================================================================
42
+ export class HeartbeatManager {
43
+ config;
44
+ state;
45
+ statePath;
46
+ timers = new Map();
47
+ constructor(configDir, config) {
48
+ this.config = { ...DEFAULT_HEARTBEAT_CONFIG, ...config };
49
+ this.statePath = join(configDir, 'heartbeat-state.json');
50
+ this.state = this.loadState();
51
+ }
52
+ /**
53
+ * Load state from disk
54
+ */
55
+ loadState() {
56
+ if (existsSync(this.statePath)) {
57
+ try {
58
+ const content = readFileSync(this.statePath, 'utf-8');
59
+ return JSON.parse(content);
60
+ }
61
+ catch {
62
+ return { lastChecks: {}, lastResults: {} };
63
+ }
64
+ }
65
+ return { lastChecks: {}, lastResults: {} };
66
+ }
67
+ /**
68
+ * Save state to disk
69
+ */
70
+ saveState() {
71
+ const content = JSON.stringify(this.state, null, 2);
72
+ writeFileSync(this.statePath, content, 'utf-8');
73
+ }
74
+ /**
75
+ * Check if quiet hours are active
76
+ */
77
+ isQuietHours() {
78
+ if (!this.config.quietHours)
79
+ return false;
80
+ const now = new Date();
81
+ const currentHour = now.getHours();
82
+ const { start, end } = this.config.quietHours;
83
+ if (start > end) {
84
+ // Wraps around midnight (e.g., 23-7)
85
+ return currentHour >= start || currentHour < end;
86
+ }
87
+ return currentHour >= start && currentHour < end;
88
+ }
89
+ /**
90
+ * Check if a specific check should run
91
+ */
92
+ shouldRunCheck(check) {
93
+ if (!check.enabled)
94
+ return false;
95
+ if (this.isQuietHours())
96
+ return false;
97
+ const lastRun = this.state.lastChecks[check.name] || 0;
98
+ const interval = (check.interval || this.config.interval) * 60 * 1000;
99
+ const now = Date.now();
100
+ return (now - lastRun) >= interval;
101
+ }
102
+ /**
103
+ * Execute a single check
104
+ */
105
+ async executeCheck(check) {
106
+ try {
107
+ let result;
108
+ switch (check.name) {
109
+ case 'email':
110
+ result = await this.checkEmail();
111
+ break;
112
+ case 'calendar':
113
+ result = await this.checkCalendar();
114
+ break;
115
+ case 'mentions':
116
+ result = await this.checkMentions();
117
+ break;
118
+ case 'weather':
119
+ result = await this.checkWeather();
120
+ break;
121
+ default:
122
+ result = {
123
+ check: check.name,
124
+ status: 'skipped',
125
+ message: `Unknown check: ${check.name}`,
126
+ timestamp: new Date(),
127
+ };
128
+ }
129
+ // Update state
130
+ this.state.lastChecks[check.name] = Date.now();
131
+ this.state.lastResults[check.name] = result;
132
+ this.saveState();
133
+ return result;
134
+ }
135
+ catch (error) {
136
+ const result = {
137
+ check: check.name,
138
+ status: 'error',
139
+ message: `Check failed: ${error instanceof Error ? error.message : String(error)}`,
140
+ timestamp: new Date(),
141
+ };
142
+ this.state.lastChecks[check.name] = Date.now();
143
+ this.state.lastResults[check.name] = result;
144
+ this.saveState();
145
+ return result;
146
+ }
147
+ }
148
+ /**
149
+ * Execute all due checks
150
+ */
151
+ async executeAllChecks() {
152
+ const results = [];
153
+ for (const check of this.config.checks) {
154
+ if (this.shouldRunCheck(check)) {
155
+ const result = await this.executeCheck(check);
156
+ results.push(result);
157
+ }
158
+ }
159
+ return results;
160
+ }
161
+ // =============================================================================
162
+ // Individual Check Implementations
163
+ // =============================================================================
164
+ async checkEmail() {
165
+ // Placeholder - would need email API integration
166
+ return {
167
+ check: 'email',
168
+ status: 'ok',
169
+ message: 'Email check not configured',
170
+ timestamp: new Date(),
171
+ };
172
+ }
173
+ async checkCalendar() {
174
+ // Placeholder - would need calendar API integration
175
+ return {
176
+ check: 'calendar',
177
+ status: 'ok',
178
+ message: 'Calendar check not configured',
179
+ timestamp: new Date(),
180
+ };
181
+ }
182
+ async checkMentions() {
183
+ // Placeholder - would need social media API integration
184
+ return {
185
+ check: 'mentions',
186
+ status: 'ok',
187
+ message: 'Mentions check not configured',
188
+ timestamp: new Date(),
189
+ };
190
+ }
191
+ async checkWeather() {
192
+ // Placeholder - would need weather API integration
193
+ return {
194
+ check: 'weather',
195
+ status: 'ok',
196
+ message: 'Weather check not configured',
197
+ timestamp: new Date(),
198
+ };
199
+ }
200
+ // =============================================================================
201
+ // Public API
202
+ // =============================================================================
203
+ /**
204
+ * Get current state
205
+ */
206
+ getState() {
207
+ return { ...this.state };
208
+ }
209
+ /**
210
+ * Get last result for a check
211
+ */
212
+ getLastResult(checkName) {
213
+ return this.state.lastResults[checkName];
214
+ }
215
+ /**
216
+ * Get all results
217
+ */
218
+ getAllResults() {
219
+ return Object.values(this.state.lastResults);
220
+ }
221
+ /**
222
+ * Enable/disable a check
223
+ */
224
+ setCheckEnabled(checkName, enabled) {
225
+ const check = this.config.checks.find(c => c.name === checkName);
226
+ if (!check)
227
+ return false;
228
+ check.enabled = enabled;
229
+ return true;
230
+ }
231
+ /**
232
+ * Format results for display
233
+ */
234
+ formatResults(results) {
235
+ if (results.length === 0) {
236
+ return 'No checks to report.';
237
+ }
238
+ const lines = ['## Heartbeat Results', ''];
239
+ for (const result of results) {
240
+ const icon = {
241
+ ok: '✅',
242
+ warning: '⚠️',
243
+ error: '🚫',
244
+ skipped: '⏭️',
245
+ }[result.status];
246
+ lines.push(`${icon} **${result.check}**: ${result.message}`);
247
+ }
248
+ return lines.join('\n');
249
+ }
250
+ }
251
+ // =============================================================================
252
+ // Heartbeat Prompt Section
253
+ // =============================================================================
254
+ export function buildHeartbeatPromptSection(config, results = []) {
255
+ if (!config.enabled) {
256
+ return '';
257
+ }
258
+ const lines = [
259
+ '## Heartbeats',
260
+ '',
261
+ 'Heartbeats enable proactive monitoring.',
262
+ '',
263
+ '### Available Checks',
264
+ ];
265
+ for (const check of config.checks) {
266
+ const status = results.find(r => r.check === check.name);
267
+ const statusIcon = status ? {
268
+ ok: '✅',
269
+ warning: '⚠️',
270
+ error: '🚫',
271
+ skipped: '⏭️',
272
+ }[status.status] : '⏳';
273
+ lines.push(`- ${statusIcon} ${check.name} (${check.priority})`);
274
+ }
275
+ if (config.quietHours) {
276
+ lines.push('', `**Quiet hours**: ${config.quietHours.start}:00 - ${config.quietHours.end}:00`);
277
+ }
278
+ lines.push('', 'When polling and nothing needs attention, reply: `HEARTBEAT_OK`', 'Only reply with alerts when something needs attention.');
279
+ return lines.join('\n');
280
+ }
281
+ // =============================================================================
282
+ // Singleton
283
+ // =============================================================================
284
+ let heartbeatManager = null;
285
+ export function getHeartbeatManager(configDir) {
286
+ if (!heartbeatManager) {
287
+ heartbeatManager = new HeartbeatManager(configDir);
288
+ }
289
+ return heartbeatManager;
290
+ }
291
+ // =============================================================================
292
+ // Convenience Functions
293
+ // =============================================================================
294
+ /**
295
+ * Quick heartbeat check
296
+ */
297
+ export async function quickHeartbeat(configDir) {
298
+ const manager = getHeartbeatManager(configDir);
299
+ return manager.executeAllChecks();
300
+ }
301
+ /**
302
+ * Get heartbeat status summary
303
+ */
304
+ export function getHeartbeatStatus(configDir) {
305
+ const manager = getHeartbeatManager(configDir);
306
+ return {
307
+ enabled: manager['config'].enabled,
308
+ quietHours: manager.isQuietHours(),
309
+ checks: manager['config'].checks.filter(c => c.enabled).length,
310
+ results: manager.getAllResults(),
311
+ };
312
+ }
313
+ //# sourceMappingURL=heartbeat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../../src/agent/prompt/heartbeat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import type { Static } from '@sinclair/typebox';
2
+ export declare const PromptConfigSchema: import("@sinclair/typebox/build/cjs/index.js").TObject<{
3
+ mode: import("@sinclair/typebox/build/cjs/index.js").TUnion<[import("@sinclair/typebox/build/cjs/index.js").TLiteral<"full">, import("@sinclair/typebox/build/cjs/index.js").TLiteral<"minimal">, import("@sinclair/typebox/build/cjs/index.js").TLiteral<"none">]>;
4
+ workspaceDir: import("@sinclair/typebox/build/cjs/index.js").TString;
5
+ heartbeatEnabled: import("@sinclair/typebox/build/cjs/index.js").TOptional<import("@sinclair/typebox/build/cjs/index.js").TBoolean>;
6
+ heartbeatPrompt: import("@sinclair/typebox/build/cjs/index.js").TOptional<import("@sinclair/typebox/build/cjs/index.js").TString>;
7
+ contextFiles: import("@sinclair/typebox/build/cjs/index.js").TOptional<import("@sinclair/typebox/build/cjs/index.js").TArray<import("@sinclair/typebox/build/cjs/index.js").TObject<{
8
+ name: import("@sinclair/typebox/build/cjs/index.js").TString;
9
+ content: import("@sinclair/typebox/build/cjs/index.js").TString;
10
+ }>>>;
11
+ }>;
12
+ export type PromptConfig = Static<typeof PromptConfigSchema>;
13
+ export interface PromptSection {
14
+ header?: string;
15
+ content: string;
16
+ priority: number;
17
+ }
18
+ export declare function buildIdentitySection(): PromptSection;
19
+ export declare function buildVersionSection(version?: string): PromptSection;
20
+ export declare function buildToolSection(availableTools: string[]): PromptSection;
21
+ export declare function buildGuidelinesSection(): PromptSection;
22
+ export declare function buildSafetySection(): PromptSection;
23
+ export declare function buildMemorySection(): PromptSection;
24
+ export declare function buildWorkspaceSection(workspaceDir: string): PromptSection;
25
+ export declare function buildSkillsSection(hasSkills?: boolean, skillsCount?: number): PromptSection;
26
+ export declare function buildMessagingSection(channels?: string[]): PromptSection;
27
+ export interface ContextFile {
28
+ name: string;
29
+ content: string;
30
+ missing?: boolean;
31
+ }
32
+ export declare function buildContextFilesSection(contextFiles?: ContextFile[]): PromptSection;
33
+ export declare function buildHeartbeatSection(enabled: boolean, _prompt?: string): PromptSection;
34
+ export declare function buildRuntimeSection(runtime: {
35
+ version?: string;
36
+ model?: string;
37
+ channel?: string;
38
+ }): PromptSection;
39
+ export declare class PromptBuilder {
40
+ private config;
41
+ private sections;
42
+ constructor(config: PromptConfig);
43
+ addSection(section: PromptSection): this;
44
+ build(): string;
45
+ static createFullPrompt(config: {
46
+ workspaceDir: string;
47
+ }, options?: {
48
+ version?: string;
49
+ channels?: string[];
50
+ skills?: {
51
+ enabled: boolean;
52
+ count: number;
53
+ };
54
+ contextFiles?: ContextFile[];
55
+ heartbeatEnabled?: boolean;
56
+ heartbeatPrompt?: string;
57
+ }): string;
58
+ static createMinimalPrompt(config: {
59
+ workspaceDir: string;
60
+ }, options?: {
61
+ contextFiles?: ContextFile[];
62
+ }): string;
63
+ static createNonePrompt(): string;
64
+ }
65
+ export * from './memory/index.js';
@@ -0,0 +1,215 @@
1
+ import { Type } from '@sinclair/typebox';
2
+ // =============================================================================
3
+ // Schema Definitions
4
+ // =============================================================================
5
+ export const PromptConfigSchema = Type.Object({
6
+ mode: Type.Union([
7
+ Type.Literal('full'),
8
+ Type.Literal('minimal'),
9
+ Type.Literal('none'),
10
+ ], { default: 'full' }),
11
+ workspaceDir: Type.String(),
12
+ heartbeatEnabled: Type.Optional(Type.Boolean({ default: true })),
13
+ heartbeatPrompt: Type.Optional(Type.String()),
14
+ contextFiles: Type.Optional(Type.Array(Type.Object({
15
+ name: Type.String(),
16
+ content: Type.String(),
17
+ }))),
18
+ });
19
+ // Simplified identity - just who you are
20
+ export function buildIdentitySection() {
21
+ return {
22
+ content: `You are xopcbot, an ultra-efficient personal AI assistant.`,
23
+ priority: 0,
24
+ };
25
+ }
26
+ // Compact version info
27
+ export function buildVersionSection(version = '1.0.0') {
28
+ return {
29
+ content: `xopcbot v${version}`,
30
+ priority: 1,
31
+ };
32
+ }
33
+ // Simplified tool section - just list available tools
34
+ export function buildToolSection(availableTools) {
35
+ const toolsList = availableTools.length > 0
36
+ ? availableTools.map(t => `- ${t}`).join('\n')
37
+ : '(none - use filesystem and shell)';
38
+ return {
39
+ header: '## Tools',
40
+ content: toolsList,
41
+ priority: 10,
42
+ };
43
+ }
44
+ // Key guidelines - direct and concise (inspired by pi)
45
+ export function buildGuidelinesSection() {
46
+ return {
47
+ header: '## Guidelines',
48
+ content: [
49
+ 'Call tools directly without narrating routine steps.',
50
+ 'Prioritize getting results over explaining process.',
51
+ 'Use tools proactively to accomplish goals.',
52
+ 'Be concise: value-dense responses preferred.',
53
+ 'Show file paths when working with files.',
54
+ 'Prefer read before edit.',
55
+ 'Prefer grep/find over bash for file exploration.',
56
+ ].join('\n'),
57
+ priority: 15,
58
+ };
59
+ }
60
+ // Minimal safety - trust the LLM
61
+ export function buildSafetySection() {
62
+ return {
63
+ header: '## Guidelines (Safety)',
64
+ content: [
65
+ 'Do not take independent actions that persist beyond the session.',
66
+ 'If asked to do something dangerous, refuse and explain why.',
67
+ ].join('\n'),
68
+ priority: 20,
69
+ };
70
+ }
71
+ // Compact memory section
72
+ export function buildMemorySection() {
73
+ return {
74
+ header: '## Memory',
75
+ content: [
76
+ 'Files provide continuity:',
77
+ '- `memory/YYYY-MM-DD.md` — daily notes',
78
+ '- `MEMORY.md` — long-term memory',
79
+ 'Before answering about prior work: memory_search → memory_get → cite sources.',
80
+ ].join('\n'),
81
+ priority: 30,
82
+ };
83
+ }
84
+ export function buildWorkspaceSection(workspaceDir) {
85
+ return {
86
+ content: `Working directory: ${workspaceDir}`,
87
+ priority: 40,
88
+ };
89
+ }
90
+ export function buildSkillsSection(hasSkills = false, skillsCount = 0) {
91
+ if (!hasSkills) {
92
+ return { content: '', priority: 50 };
93
+ }
94
+ return {
95
+ header: '## Skills',
96
+ content: `${skillsCount} skill(s) loaded. Use /skill:name to activate.`,
97
+ priority: 50,
98
+ };
99
+ }
100
+ export function buildMessagingSection(channels = []) {
101
+ if (channels.length === 0) {
102
+ return { content: '', priority: 60 };
103
+ }
104
+ return {
105
+ header: '## Channels',
106
+ content: `Active: ${channels.join(', ')}`,
107
+ priority: 60,
108
+ };
109
+ }
110
+ // Compact context files
111
+ export function buildContextFilesSection(contextFiles) {
112
+ if (!contextFiles || contextFiles.length === 0) {
113
+ return { content: '', priority: 90 };
114
+ }
115
+ const loadedFiles = contextFiles.filter(f => !f.missing);
116
+ if (loadedFiles.length === 0) {
117
+ return { content: '', priority: 90 };
118
+ }
119
+ const lines = ['## Project Context', ''];
120
+ for (const file of loadedFiles) {
121
+ // Only include first 2000 chars to avoid token bloat
122
+ const content = file.content.length > 2000
123
+ ? file.content.slice(0, 2000) + '\n... (truncated)'
124
+ : file.content;
125
+ lines.push(`### ${file.name}`, '', content, '');
126
+ }
127
+ return {
128
+ header: '',
129
+ content: lines.join('\n'),
130
+ priority: 90,
131
+ };
132
+ }
133
+ export function buildHeartbeatSection(enabled, _prompt) {
134
+ if (!enabled) {
135
+ return { content: '', priority: 70 };
136
+ }
137
+ return {
138
+ header: '## Heartbeat',
139
+ content: 'Poll for tasks. If nothing needs attention, reply: HEARTBEAT_OK',
140
+ priority: 70,
141
+ };
142
+ }
143
+ export function buildRuntimeSection(runtime) {
144
+ const parts = [];
145
+ if (runtime.version)
146
+ parts.push(`v${runtime.version}`);
147
+ if (runtime.model)
148
+ parts.push(`model=${runtime.model.split('/').pop()}`);
149
+ if (runtime.channel)
150
+ parts.push(`ch=${runtime.channel}`);
151
+ return {
152
+ content: parts.length > 0 ? `[${parts.join(' | ')}]` : '',
153
+ priority: 80,
154
+ };
155
+ }
156
+ // =============================================================================
157
+ // Main Prompt Builder - Simplified
158
+ // =============================================================================
159
+ export class PromptBuilder {
160
+ config;
161
+ sections = new Map();
162
+ constructor(config) {
163
+ this.config = config;
164
+ }
165
+ addSection(section) {
166
+ this.sections.set(section.priority, section);
167
+ return this;
168
+ }
169
+ build() {
170
+ const lines = [];
171
+ const sortedSections = Array.from(this.sections.values())
172
+ .sort((a, b) => a.priority - b.priority);
173
+ for (const section of sortedSections) {
174
+ if (!section.content)
175
+ continue;
176
+ if (section.header) {
177
+ lines.push(section.header, '');
178
+ }
179
+ lines.push(section.content, '');
180
+ }
181
+ return lines.filter(Boolean).join('\n');
182
+ }
183
+ static createFullPrompt(config, options = {}) {
184
+ const builder = new PromptBuilder({ ...config, mode: 'full' });
185
+ return builder
186
+ .addSection(buildIdentitySection())
187
+ .addSection(buildVersionSection(options.version))
188
+ .addSection(buildGuidelinesSection())
189
+ .addSection(buildSafetySection())
190
+ .addSection(buildWorkspaceSection(config.workspaceDir))
191
+ .addSection(buildMemorySection())
192
+ .addSection(buildSkillsSection(options.skills?.enabled ?? false, options.skills?.count ?? 0))
193
+ .addSection(buildMessagingSection(options.channels || []))
194
+ .addSection(buildHeartbeatSection(options.heartbeatEnabled ?? true))
195
+ .addSection(buildRuntimeSection({
196
+ version: options.version,
197
+ }))
198
+ .addSection(buildContextFilesSection(options.contextFiles))
199
+ .build();
200
+ }
201
+ static createMinimalPrompt(config, options = {}) {
202
+ const builder = new PromptBuilder({ ...config, mode: 'minimal' });
203
+ return builder
204
+ .addSection(buildIdentitySection())
205
+ .addSection(buildGuidelinesSection())
206
+ .addSection(buildWorkspaceSection(config.workspaceDir))
207
+ .addSection(buildContextFilesSection(options.contextFiles))
208
+ .build();
209
+ }
210
+ static createNonePrompt() {
211
+ return `You are xopcbot, an efficient AI assistant.`;
212
+ }
213
+ }
214
+ export * from './memory/index.js';
215
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/prompt/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export interface MemoryMatch {
2
+ file: string;
3
+ lines: string;
4
+ score: number;
5
+ lineNumbers: number[];
6
+ }
7
+ export interface MemorySearchOptions {
8
+ maxResults?: number;
9
+ minScore?: number;
10
+ glob?: string[];
11
+ exclude?: string[];
12
+ }
13
+ export interface MemoryFile {
14
+ path: string;
15
+ content: string;
16
+ modified: Date;
17
+ }
18
+ export declare function getDailyMemoryPath(baseDir: string, date?: Date): string;
19
+ export declare function getLongTermMemoryPath(baseDir: string): string;
20
+ export declare function getAllMemoryPaths(baseDir: string): string[];
21
+ export declare function parseMemoryFile(path: string): MemoryFile;
22
+ export declare function extractSections(content: string): Map<string, string>;
23
+ export declare function fuzzyMatch(query: string, text: string): number;
24
+ export declare function searchInContent(query: string, content: string, options?: MemorySearchOptions): MemoryMatch | null;
25
+ export declare function memorySearch(baseDir: string, query: string, options?: MemorySearchOptions): Promise<MemoryMatch[]>;
26
+ export declare function memoryGet(baseDir: string, path: string, from?: number, lines?: number): {
27
+ content: string;
28
+ lineNumbers: {
29
+ start: number;
30
+ end: number;
31
+ };
32
+ } | null;
33
+ export declare function writeToMemory(baseDir: string, content: string, date?: Date): Promise<void>;
34
+ export declare function updateLongTermMemory(baseDir: string, content: string, section?: string): Promise<void>;
35
+ export declare function generateCitation(file: string, line?: number): string;
36
+ export declare function recallRecentContext(baseDir: string, days?: number): Promise<string>;
37
+ export declare function getPreference(baseDir: string, key: string): Promise<string | null>;