@chozzz/vargos 2.0.3

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 (429) hide show
  1. package/.templates/vargos/agent/extensions/anthropic-custom-payload.patch.json +34 -0
  2. package/.templates/vargos/agent/extensions/anthropic-custom-payload.ts +74 -0
  3. package/.templates/vargos/agent/mcp.json +9 -0
  4. package/.templates/vargos/agent/skills/skill-creator/SKILL.md +77 -0
  5. package/.templates/vargos/agent/skills/token-capture/SKILL.md +33 -0
  6. package/.templates/vargos/agent/skills/token-capture/scripts/capture-bearer-token.sh +139 -0
  7. package/.templates/vargos/agents/README +5 -0
  8. package/.templates/vargos/agents/default.md +7 -0
  9. package/.templates/vargos/config.json +1 -0
  10. package/.templates/vargos/cron/heartbeat.md +11 -0
  11. package/.templates/vargos/workspace/AGENTS.md +70 -0
  12. package/.templates/vargos/workspace/HEARTBEAT.md +26 -0
  13. package/.templates/vargos/workspace/MEMORY.md +15 -0
  14. package/.templates/vargos/workspace/SOUL.md +51 -0
  15. package/.templates/vargos/workspace/TOOLS.md +36 -0
  16. package/CHANGELOG.md +23 -0
  17. package/CODE_OF_CONDUCT.md +47 -0
  18. package/CONTRIBUTING.md +65 -0
  19. package/LICENSE +191 -0
  20. package/README.md +117 -0
  21. package/SECURITY.md +30 -0
  22. package/dist/.templates/vargos/agent/extensions/anthropic-custom-payload.patch.json +34 -0
  23. package/dist/.templates/vargos/agent/extensions/anthropic-custom-payload.ts +74 -0
  24. package/dist/.templates/vargos/agent/mcp.json +9 -0
  25. package/dist/.templates/vargos/agent/skills/skill-creator/SKILL.md +77 -0
  26. package/dist/.templates/vargos/agent/skills/token-capture/SKILL.md +33 -0
  27. package/dist/.templates/vargos/agent/skills/token-capture/scripts/capture-bearer-token.sh +139 -0
  28. package/dist/.templates/vargos/agents/README +5 -0
  29. package/dist/.templates/vargos/agents/default.md +7 -0
  30. package/dist/.templates/vargos/config.json +1 -0
  31. package/dist/.templates/vargos/cron/heartbeat.md +11 -0
  32. package/dist/.templates/vargos/workspace/AGENTS.md +70 -0
  33. package/dist/.templates/vargos/workspace/HEARTBEAT.md +26 -0
  34. package/dist/.templates/vargos/workspace/MEMORY.md +15 -0
  35. package/dist/.templates/vargos/workspace/SOUL.md +51 -0
  36. package/dist/.templates/vargos/workspace/TOOLS.md +36 -0
  37. package/dist/cli/onboard.d.ts +10 -0
  38. package/dist/cli/onboard.d.ts.map +1 -0
  39. package/dist/cli/onboard.js +207 -0
  40. package/dist/cli/onboard.js.map +1 -0
  41. package/dist/cli.d.ts +13 -0
  42. package/dist/cli.d.ts.map +1 -0
  43. package/dist/cli.js +118 -0
  44. package/dist/cli.js.map +1 -0
  45. package/dist/edge/mcp/index.d.ts +33 -0
  46. package/dist/edge/mcp/index.d.ts.map +1 -0
  47. package/dist/edge/mcp/index.js +217 -0
  48. package/dist/edge/mcp/index.js.map +1 -0
  49. package/dist/edge/webhooks/index.d.ts +33 -0
  50. package/dist/edge/webhooks/index.d.ts.map +1 -0
  51. package/dist/edge/webhooks/index.js +231 -0
  52. package/dist/edge/webhooks/index.js.map +1 -0
  53. package/dist/edge/webhooks/transform.d.ts +8 -0
  54. package/dist/edge/webhooks/transform.d.ts.map +1 -0
  55. package/dist/edge/webhooks/transform.js +29 -0
  56. package/dist/edge/webhooks/transform.js.map +1 -0
  57. package/dist/gateway/bus.d.ts +48 -0
  58. package/dist/gateway/bus.d.ts.map +1 -0
  59. package/dist/gateway/bus.js +2 -0
  60. package/dist/gateway/bus.js.map +1 -0
  61. package/dist/gateway/decorators.d.ts +40 -0
  62. package/dist/gateway/decorators.d.ts.map +1 -0
  63. package/dist/gateway/decorators.js +43 -0
  64. package/dist/gateway/decorators.js.map +1 -0
  65. package/dist/gateway/emitter.d.ts +42 -0
  66. package/dist/gateway/emitter.d.ts.map +1 -0
  67. package/dist/gateway/emitter.js +259 -0
  68. package/dist/gateway/emitter.js.map +1 -0
  69. package/dist/gateway/events.d.ts +343 -0
  70. package/dist/gateway/events.d.ts.map +1 -0
  71. package/dist/gateway/events.js +7 -0
  72. package/dist/gateway/events.js.map +1 -0
  73. package/dist/gateway/tcp-server.d.ts +7 -0
  74. package/dist/gateway/tcp-server.d.ts.map +1 -0
  75. package/dist/gateway/tcp-server.js +115 -0
  76. package/dist/gateway/tcp-server.js.map +1 -0
  77. package/dist/index.d.ts +2 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +74 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/lib/async-handlers.d.ts +13 -0
  82. package/dist/lib/async-handlers.d.ts.map +1 -0
  83. package/dist/lib/async-handlers.js +6 -0
  84. package/dist/lib/async-handlers.js.map +1 -0
  85. package/dist/lib/error-store.d.ts +19 -0
  86. package/dist/lib/error-store.d.ts.map +1 -0
  87. package/dist/lib/error-store.js +19 -0
  88. package/dist/lib/error-store.js.map +1 -0
  89. package/dist/lib/error.d.ts +11 -0
  90. package/dist/lib/error.d.ts.map +1 -0
  91. package/dist/lib/error.js +41 -0
  92. package/dist/lib/error.js.map +1 -0
  93. package/dist/lib/frontmatter.d.ts +23 -0
  94. package/dist/lib/frontmatter.d.ts.map +1 -0
  95. package/dist/lib/frontmatter.js +136 -0
  96. package/dist/lib/frontmatter.js.map +1 -0
  97. package/dist/lib/glob.d.ts +14 -0
  98. package/dist/lib/glob.d.ts.map +1 -0
  99. package/dist/lib/glob.js +22 -0
  100. package/dist/lib/glob.js.map +1 -0
  101. package/dist/lib/heartbeat.d.ts +23 -0
  102. package/dist/lib/heartbeat.d.ts.map +1 -0
  103. package/dist/lib/heartbeat.js +62 -0
  104. package/dist/lib/heartbeat.js.map +1 -0
  105. package/dist/lib/html.d.ts +8 -0
  106. package/dist/lib/html.d.ts.map +1 -0
  107. package/dist/lib/html.js +28 -0
  108. package/dist/lib/html.js.map +1 -0
  109. package/dist/lib/http-validate.d.ts +12 -0
  110. package/dist/lib/http-validate.d.ts.map +1 -0
  111. package/dist/lib/http-validate.js +11 -0
  112. package/dist/lib/http-validate.js.map +1 -0
  113. package/dist/lib/id.d.ts +3 -0
  114. package/dist/lib/id.d.ts.map +1 -0
  115. package/dist/lib/id.js +5 -0
  116. package/dist/lib/id.js.map +1 -0
  117. package/dist/lib/logger.d.ts +12 -0
  118. package/dist/lib/logger.d.ts.map +1 -0
  119. package/dist/lib/logger.js +28 -0
  120. package/dist/lib/logger.js.map +1 -0
  121. package/dist/lib/media-transcribe.d.ts +57 -0
  122. package/dist/lib/media-transcribe.d.ts.map +1 -0
  123. package/dist/lib/media-transcribe.js +98 -0
  124. package/dist/lib/media-transcribe.js.map +1 -0
  125. package/dist/lib/media.d.ts +7 -0
  126. package/dist/lib/media.d.ts.map +1 -0
  127. package/dist/lib/media.js +18 -0
  128. package/dist/lib/media.js.map +1 -0
  129. package/dist/lib/mime.d.ts +6 -0
  130. package/dist/lib/mime.d.ts.map +1 -0
  131. package/dist/lib/mime.js +71 -0
  132. package/dist/lib/mime.js.map +1 -0
  133. package/dist/lib/paginate.d.ts +3 -0
  134. package/dist/lib/paginate.d.ts.map +1 -0
  135. package/dist/lib/paginate.js +5 -0
  136. package/dist/lib/paginate.js.map +1 -0
  137. package/dist/lib/paths.d.ts +14 -0
  138. package/dist/lib/paths.d.ts.map +1 -0
  139. package/dist/lib/paths.js +29 -0
  140. package/dist/lib/paths.js.map +1 -0
  141. package/dist/lib/provider-loader.d.ts +10 -0
  142. package/dist/lib/provider-loader.d.ts.map +1 -0
  143. package/dist/lib/provider-loader.js +24 -0
  144. package/dist/lib/provider-loader.js.map +1 -0
  145. package/dist/lib/retry.d.ts +20 -0
  146. package/dist/lib/retry.d.ts.map +1 -0
  147. package/dist/lib/retry.js +40 -0
  148. package/dist/lib/retry.js.map +1 -0
  149. package/dist/lib/safe-async.d.ts +27 -0
  150. package/dist/lib/safe-async.d.ts.map +1 -0
  151. package/dist/lib/safe-async.js +38 -0
  152. package/dist/lib/safe-async.js.map +1 -0
  153. package/dist/lib/skills.d.ts +9 -0
  154. package/dist/lib/skills.d.ts.map +1 -0
  155. package/dist/lib/skills.js +15 -0
  156. package/dist/lib/skills.js.map +1 -0
  157. package/dist/lib/sleep.d.ts +6 -0
  158. package/dist/lib/sleep.d.ts.map +1 -0
  159. package/dist/lib/sleep.js +22 -0
  160. package/dist/lib/sleep.js.map +1 -0
  161. package/dist/lib/strip-markdown.d.ts +7 -0
  162. package/dist/lib/strip-markdown.d.ts.map +1 -0
  163. package/dist/lib/strip-markdown.js +32 -0
  164. package/dist/lib/strip-markdown.js.map +1 -0
  165. package/dist/lib/subagent.d.ts +14 -0
  166. package/dist/lib/subagent.d.ts.map +1 -0
  167. package/dist/lib/subagent.js +25 -0
  168. package/dist/lib/subagent.js.map +1 -0
  169. package/dist/lib/templates.d.ts +8 -0
  170. package/dist/lib/templates.d.ts.map +1 -0
  171. package/dist/lib/templates.js +39 -0
  172. package/dist/lib/templates.js.map +1 -0
  173. package/dist/lib/timeout.d.ts +6 -0
  174. package/dist/lib/timeout.d.ts.map +1 -0
  175. package/dist/lib/timeout.js +11 -0
  176. package/dist/lib/timeout.js.map +1 -0
  177. package/dist/lib/truncate.d.ts +11 -0
  178. package/dist/lib/truncate.d.ts.map +1 -0
  179. package/dist/lib/truncate.js +17 -0
  180. package/dist/lib/truncate.js.map +1 -0
  181. package/dist/lib/url-expand.d.ts +22 -0
  182. package/dist/lib/url-expand.d.ts.map +1 -0
  183. package/dist/lib/url-expand.js +74 -0
  184. package/dist/lib/url-expand.js.map +1 -0
  185. package/dist/scripts/migrate-cron-sessions.d.ts +10 -0
  186. package/dist/scripts/migrate-cron-sessions.d.ts.map +1 -0
  187. package/dist/scripts/migrate-cron-sessions.js +139 -0
  188. package/dist/scripts/migrate-cron-sessions.js.map +1 -0
  189. package/dist/scripts/seed.d.ts +2 -0
  190. package/dist/scripts/seed.d.ts.map +1 -0
  191. package/dist/scripts/seed.js +4 -0
  192. package/dist/scripts/seed.js.map +1 -0
  193. package/dist/services/agent/directives.d.ts +14 -0
  194. package/dist/services/agent/directives.d.ts.map +1 -0
  195. package/dist/services/agent/directives.js +32 -0
  196. package/dist/services/agent/directives.js.map +1 -0
  197. package/dist/services/agent/index.d.ts +104 -0
  198. package/dist/services/agent/index.d.ts.map +1 -0
  199. package/dist/services/agent/index.js +534 -0
  200. package/dist/services/agent/index.js.map +1 -0
  201. package/dist/services/agent/persona.d.ts +15 -0
  202. package/dist/services/agent/persona.d.ts.map +1 -0
  203. package/dist/services/agent/persona.js +63 -0
  204. package/dist/services/agent/persona.js.map +1 -0
  205. package/dist/services/agent/prompt-interpolate.d.ts +41 -0
  206. package/dist/services/agent/prompt-interpolate.d.ts.map +1 -0
  207. package/dist/services/agent/prompt-interpolate.js +102 -0
  208. package/dist/services/agent/prompt-interpolate.js.map +1 -0
  209. package/dist/services/agent/schema.d.ts +10 -0
  210. package/dist/services/agent/schema.d.ts.map +1 -0
  211. package/dist/services/agent/schema.js +5 -0
  212. package/dist/services/agent/schema.js.map +1 -0
  213. package/dist/services/agent/tools.d.ts +26 -0
  214. package/dist/services/agent/tools.d.ts.map +1 -0
  215. package/dist/services/agent/tools.js +85 -0
  216. package/dist/services/agent/tools.js.map +1 -0
  217. package/dist/services/channels/base-adapter.d.ts +61 -0
  218. package/dist/services/channels/base-adapter.d.ts.map +1 -0
  219. package/dist/services/channels/base-adapter.js +181 -0
  220. package/dist/services/channels/base-adapter.js.map +1 -0
  221. package/dist/services/channels/contracts.d.ts +75 -0
  222. package/dist/services/channels/contracts.d.ts.map +1 -0
  223. package/dist/services/channels/contracts.js +6 -0
  224. package/dist/services/channels/contracts.js.map +1 -0
  225. package/dist/services/channels/debounce.d.ts +22 -0
  226. package/dist/services/channels/debounce.d.ts.map +1 -0
  227. package/dist/services/channels/debounce.js +53 -0
  228. package/dist/services/channels/debounce.js.map +1 -0
  229. package/dist/services/channels/dedupe.d.ts +19 -0
  230. package/dist/services/channels/dedupe.d.ts.map +1 -0
  231. package/dist/services/channels/dedupe.js +52 -0
  232. package/dist/services/channels/dedupe.js.map +1 -0
  233. package/dist/services/channels/delivery.d.ts +12 -0
  234. package/dist/services/channels/delivery.d.ts.map +1 -0
  235. package/dist/services/channels/delivery.js +53 -0
  236. package/dist/services/channels/delivery.js.map +1 -0
  237. package/dist/services/channels/index.d.ts +53 -0
  238. package/dist/services/channels/index.d.ts.map +1 -0
  239. package/dist/services/channels/index.js +405 -0
  240. package/dist/services/channels/index.js.map +1 -0
  241. package/dist/services/channels/link-expand.d.ts +8 -0
  242. package/dist/services/channels/link-expand.d.ts.map +1 -0
  243. package/dist/services/channels/link-expand.js +28 -0
  244. package/dist/services/channels/link-expand.js.map +1 -0
  245. package/dist/services/channels/media-extract.d.ts +7 -0
  246. package/dist/services/channels/media-extract.d.ts.map +1 -0
  247. package/dist/services/channels/media-extract.js +31 -0
  248. package/dist/services/channels/media-extract.js.map +1 -0
  249. package/dist/services/channels/pipeline.d.ts +29 -0
  250. package/dist/services/channels/pipeline.d.ts.map +1 -0
  251. package/dist/services/channels/pipeline.js +120 -0
  252. package/dist/services/channels/pipeline.js.map +1 -0
  253. package/dist/services/channels/provider-loader.d.ts +7 -0
  254. package/dist/services/channels/provider-loader.d.ts.map +1 -0
  255. package/dist/services/channels/provider-loader.js +13 -0
  256. package/dist/services/channels/provider-loader.js.map +1 -0
  257. package/dist/services/channels/providers/telegram/adapter.d.ts +34 -0
  258. package/dist/services/channels/providers/telegram/adapter.d.ts.map +1 -0
  259. package/dist/services/channels/providers/telegram/adapter.js +278 -0
  260. package/dist/services/channels/providers/telegram/adapter.js.map +1 -0
  261. package/dist/services/channels/providers/telegram/index.d.ts +11 -0
  262. package/dist/services/channels/providers/telegram/index.d.ts.map +1 -0
  263. package/dist/services/channels/providers/telegram/index.js +11 -0
  264. package/dist/services/channels/providers/telegram/index.js.map +1 -0
  265. package/dist/services/channels/providers/telegram/normalizer.d.ts +12 -0
  266. package/dist/services/channels/providers/telegram/normalizer.d.ts.map +1 -0
  267. package/dist/services/channels/providers/telegram/normalizer.js +50 -0
  268. package/dist/services/channels/providers/telegram/normalizer.js.map +1 -0
  269. package/dist/services/channels/providers/telegram/types.d.ts +72 -0
  270. package/dist/services/channels/providers/telegram/types.d.ts.map +1 -0
  271. package/dist/services/channels/providers/telegram/types.js +3 -0
  272. package/dist/services/channels/providers/telegram/types.js.map +1 -0
  273. package/dist/services/channels/providers/whatsapp/adapter.d.ts +36 -0
  274. package/dist/services/channels/providers/whatsapp/adapter.d.ts.map +1 -0
  275. package/dist/services/channels/providers/whatsapp/adapter.js +261 -0
  276. package/dist/services/channels/providers/whatsapp/adapter.js.map +1 -0
  277. package/dist/services/channels/providers/whatsapp/index.d.ts +11 -0
  278. package/dist/services/channels/providers/whatsapp/index.d.ts.map +1 -0
  279. package/dist/services/channels/providers/whatsapp/index.js +11 -0
  280. package/dist/services/channels/providers/whatsapp/index.js.map +1 -0
  281. package/dist/services/channels/providers/whatsapp/normalizer.d.ts +11 -0
  282. package/dist/services/channels/providers/whatsapp/normalizer.d.ts.map +1 -0
  283. package/dist/services/channels/providers/whatsapp/normalizer.js +47 -0
  284. package/dist/services/channels/providers/whatsapp/normalizer.js.map +1 -0
  285. package/dist/services/channels/providers/whatsapp/session.d.ts +9 -0
  286. package/dist/services/channels/providers/whatsapp/session.d.ts.map +1 -0
  287. package/dist/services/channels/providers/whatsapp/session.js +118 -0
  288. package/dist/services/channels/providers/whatsapp/session.js.map +1 -0
  289. package/dist/services/channels/providers/whatsapp/types.d.ts +23 -0
  290. package/dist/services/channels/providers/whatsapp/types.d.ts.map +1 -0
  291. package/dist/services/channels/providers/whatsapp/types.js +3 -0
  292. package/dist/services/channels/providers/whatsapp/types.js.map +1 -0
  293. package/dist/services/channels/reconnect.d.ts +23 -0
  294. package/dist/services/channels/reconnect.d.ts.map +1 -0
  295. package/dist/services/channels/reconnect.js +32 -0
  296. package/dist/services/channels/reconnect.js.map +1 -0
  297. package/dist/services/channels/status-reactions.d.ts +27 -0
  298. package/dist/services/channels/status-reactions.d.ts.map +1 -0
  299. package/dist/services/channels/status-reactions.js +63 -0
  300. package/dist/services/channels/status-reactions.js.map +1 -0
  301. package/dist/services/channels/types.d.ts +16 -0
  302. package/dist/services/channels/types.d.ts.map +1 -0
  303. package/dist/services/channels/types.js +2 -0
  304. package/dist/services/channels/types.js.map +1 -0
  305. package/dist/services/channels/typing-state.d.ts +22 -0
  306. package/dist/services/channels/typing-state.d.ts.map +1 -0
  307. package/dist/services/channels/typing-state.js +88 -0
  308. package/dist/services/channels/typing-state.js.map +1 -0
  309. package/dist/services/config/index.d.ts +2426 -0
  310. package/dist/services/config/index.d.ts.map +1 -0
  311. package/dist/services/config/index.js +232 -0
  312. package/dist/services/config/index.js.map +1 -0
  313. package/dist/services/config/schemas/agent.d.ts +720 -0
  314. package/dist/services/config/schemas/agent.d.ts.map +1 -0
  315. package/dist/services/config/schemas/agent.js +86 -0
  316. package/dist/services/config/schemas/agent.js.map +1 -0
  317. package/dist/services/config/schemas/auth.d.ts +60 -0
  318. package/dist/services/config/schemas/auth.d.ts.map +1 -0
  319. package/dist/services/config/schemas/auth.js +18 -0
  320. package/dist/services/config/schemas/auth.js.map +1 -0
  321. package/dist/services/config/schemas/channels.d.ts +117 -0
  322. package/dist/services/config/schemas/channels.d.ts.map +1 -0
  323. package/dist/services/config/schemas/channels.js +22 -0
  324. package/dist/services/config/schemas/channels.js.map +1 -0
  325. package/dist/services/config/schemas/cron.d.ts +97 -0
  326. package/dist/services/config/schemas/cron.d.ts.map +1 -0
  327. package/dist/services/config/schemas/cron.js +18 -0
  328. package/dist/services/config/schemas/cron.js.map +1 -0
  329. package/dist/services/config/schemas/features.d.ts +43 -0
  330. package/dist/services/config/schemas/features.d.ts.map +1 -0
  331. package/dist/services/config/schemas/features.js +20 -0
  332. package/dist/services/config/schemas/features.js.map +1 -0
  333. package/dist/services/config/schemas/index.d.ts +24 -0
  334. package/dist/services/config/schemas/index.d.ts.map +1 -0
  335. package/dist/services/config/schemas/index.js +24 -0
  336. package/dist/services/config/schemas/index.js.map +1 -0
  337. package/dist/services/config/schemas/mcp.d.ts +31 -0
  338. package/dist/services/config/schemas/mcp.d.ts.map +1 -0
  339. package/dist/services/config/schemas/mcp.js +39 -0
  340. package/dist/services/config/schemas/mcp.js.map +1 -0
  341. package/dist/services/config/schemas/primitives.d.ts +13 -0
  342. package/dist/services/config/schemas/primitives.d.ts.map +1 -0
  343. package/dist/services/config/schemas/primitives.js +17 -0
  344. package/dist/services/config/schemas/primitives.js.map +1 -0
  345. package/dist/services/config/schemas/providers.d.ts +335 -0
  346. package/dist/services/config/schemas/providers.d.ts.map +1 -0
  347. package/dist/services/config/schemas/providers.js +27 -0
  348. package/dist/services/config/schemas/providers.js.map +1 -0
  349. package/dist/services/config/schemas/storage.d.ts +16 -0
  350. package/dist/services/config/schemas/storage.d.ts.map +1 -0
  351. package/dist/services/config/schemas/storage.js +9 -0
  352. package/dist/services/config/schemas/storage.js.map +1 -0
  353. package/dist/services/config/schemas/webhooks.d.ts +25 -0
  354. package/dist/services/config/schemas/webhooks.d.ts.map +1 -0
  355. package/dist/services/config/schemas/webhooks.js +12 -0
  356. package/dist/services/config/schemas/webhooks.js.map +1 -0
  357. package/dist/services/cron/index.d.ts +50 -0
  358. package/dist/services/cron/index.d.ts.map +1 -0
  359. package/dist/services/cron/index.js +460 -0
  360. package/dist/services/cron/index.js.map +1 -0
  361. package/dist/services/log/index.d.ts +14 -0
  362. package/dist/services/log/index.d.ts.map +1 -0
  363. package/dist/services/log/index.js +137 -0
  364. package/dist/services/log/index.js.map +1 -0
  365. package/dist/services/mcp-client/index.d.ts +37 -0
  366. package/dist/services/mcp-client/index.d.ts.map +1 -0
  367. package/dist/services/mcp-client/index.js +258 -0
  368. package/dist/services/mcp-client/index.js.map +1 -0
  369. package/dist/services/media/extract-document.d.ts +8 -0
  370. package/dist/services/media/extract-document.d.ts.map +1 -0
  371. package/dist/services/media/extract-document.js +85 -0
  372. package/dist/services/media/extract-document.js.map +1 -0
  373. package/dist/services/media/index.d.ts +21 -0
  374. package/dist/services/media/index.d.ts.map +1 -0
  375. package/dist/services/media/index.js +116 -0
  376. package/dist/services/media/index.js.map +1 -0
  377. package/dist/services/media/providers/anthropic.d.ts +6 -0
  378. package/dist/services/media/providers/anthropic.d.ts.map +1 -0
  379. package/dist/services/media/providers/anthropic.js +38 -0
  380. package/dist/services/media/providers/anthropic.js.map +1 -0
  381. package/dist/services/media/providers/index.d.ts +6 -0
  382. package/dist/services/media/providers/index.d.ts.map +1 -0
  383. package/dist/services/media/providers/index.js +15 -0
  384. package/dist/services/media/providers/index.js.map +1 -0
  385. package/dist/services/media/providers/openai.d.ts +6 -0
  386. package/dist/services/media/providers/openai.d.ts.map +1 -0
  387. package/dist/services/media/providers/openai.js +48 -0
  388. package/dist/services/media/providers/openai.js.map +1 -0
  389. package/dist/services/media/providers/provider.d.ts +5 -0
  390. package/dist/services/media/providers/provider.d.ts.map +1 -0
  391. package/dist/services/media/providers/provider.js +2 -0
  392. package/dist/services/media/providers/provider.js.map +1 -0
  393. package/dist/services/memory/chunker.d.ts +7 -0
  394. package/dist/services/memory/chunker.d.ts.map +1 -0
  395. package/dist/services/memory/chunker.js +46 -0
  396. package/dist/services/memory/chunker.js.map +1 -0
  397. package/dist/services/memory/context.d.ts +68 -0
  398. package/dist/services/memory/context.d.ts.map +1 -0
  399. package/dist/services/memory/context.js +223 -0
  400. package/dist/services/memory/context.js.map +1 -0
  401. package/dist/services/memory/embedding.d.ts +9 -0
  402. package/dist/services/memory/embedding.d.ts.map +1 -0
  403. package/dist/services/memory/embedding.js +49 -0
  404. package/dist/services/memory/embedding.js.map +1 -0
  405. package/dist/services/memory/index.d.ts +24 -0
  406. package/dist/services/memory/index.d.ts.map +1 -0
  407. package/dist/services/memory/index.js +140 -0
  408. package/dist/services/memory/index.js.map +1 -0
  409. package/dist/services/memory/session-indexer.d.ts +5 -0
  410. package/dist/services/memory/session-indexer.d.ts.map +1 -0
  411. package/dist/services/memory/session-indexer.js +62 -0
  412. package/dist/services/memory/session-indexer.js.map +1 -0
  413. package/dist/services/memory/sqlite-storage.d.ts +23 -0
  414. package/dist/services/memory/sqlite-storage.d.ts.map +1 -0
  415. package/dist/services/memory/sqlite-storage.js +75 -0
  416. package/dist/services/memory/sqlite-storage.js.map +1 -0
  417. package/dist/services/memory/types.d.ts +31 -0
  418. package/dist/services/memory/types.d.ts.map +1 -0
  419. package/dist/services/memory/types.js +2 -0
  420. package/dist/services/memory/types.js.map +1 -0
  421. package/dist/services/web/index.d.ts +9 -0
  422. package/dist/services/web/index.d.ts.map +1 -0
  423. package/dist/services/web/index.js +101 -0
  424. package/dist/services/web/index.js.map +1 -0
  425. package/dist/vitest.config.d.ts +3 -0
  426. package/dist/vitest.config.d.ts.map +1 -0
  427. package/dist/vitest.config.js +9 -0
  428. package/dist/vitest.config.js.map +1 -0
  429. package/package.json +102 -0
@@ -0,0 +1,139 @@
1
+ #!/usr/bin/env bash
2
+ # purpose: capture Claude bearer token via local MITM proxy
3
+ # inputs: -v (verbose), -p <port>, prompt text (optional), TIMEOUT_SECONDS (optional)
4
+ # outputs: bearer token to stdout
5
+ # last-used: 2026-05-07
6
+ set -euo pipefail
7
+
8
+ require_cmd() {
9
+ if ! command -v "$1" >/dev/null 2>&1; then
10
+ echo "Error: required command '$1' was not found in PATH." >&2
11
+ exit 1
12
+ fi
13
+ }
14
+
15
+ usage() {
16
+ echo "Usage: $(basename "$0") [-v] [-p port] [prompt]" >&2
17
+ }
18
+
19
+ log() {
20
+ if [[ "${VERBOSE:-0}" == "1" ]]; then
21
+ echo "[token-capture] $*" >&2
22
+ fi
23
+ }
24
+
25
+ require_cmd claude
26
+ require_cmd mitmdump
27
+
28
+ VERBOSE=0
29
+ PORT="${PORT:-9121}"
30
+ TIMEOUT_SECONDS="${TIMEOUT_SECONDS:-30}"
31
+
32
+ while getopts ":vp:h" opt; do
33
+ case "$opt" in
34
+ v) VERBOSE=1 ;;
35
+ p) PORT="$OPTARG" ;;
36
+ h)
37
+ usage
38
+ exit 0
39
+ ;;
40
+ :)
41
+ echo "Error: -$OPTARG requires a value." >&2
42
+ usage
43
+ exit 1
44
+ ;;
45
+ \?)
46
+ echo "Error: invalid option -$OPTARG" >&2
47
+ usage
48
+ exit 1
49
+ ;;
50
+ esac
51
+ done
52
+ shift "$((OPTIND - 1))"
53
+
54
+ PROMPT="${1:-hello}"
55
+
56
+ WORK_DIR="$(mktemp -d)"
57
+ ADDON_FILE="$WORK_DIR/capture_auth.py"
58
+ TOKEN_FILE="$WORK_DIR/token.txt"
59
+ MITM_LOG="$WORK_DIR/mitm.log"
60
+ CLAUDE_LOG="$WORK_DIR/claude.log"
61
+
62
+ cleanup() {
63
+ if [[ -n "${MITM_PID:-}" ]]; then
64
+ kill "$MITM_PID" >/dev/null 2>&1 || true
65
+ fi
66
+ if [[ -n "${CLAUDE_PID:-}" ]]; then
67
+ kill "$CLAUDE_PID" >/dev/null 2>&1 || true
68
+ fi
69
+ rm -rf "$WORK_DIR"
70
+ }
71
+ trap cleanup EXIT
72
+
73
+ cat > "$ADDON_FILE" <<'PY'
74
+ from mitmproxy import ctx, http
75
+ import os
76
+
77
+ TOKEN_OUT = os.environ["TOKEN_OUT"]
78
+
79
+ class CaptureAuth:
80
+ def request(self, flow: http.HTTPFlow) -> None:
81
+ if "/v1/messages" not in flow.request.pretty_url:
82
+ return
83
+ auth = flow.request.headers.get("Authorization", "").strip()
84
+ if not auth:
85
+ return
86
+ with open(TOKEN_OUT, "w", encoding="utf-8") as f:
87
+ f.write(auth)
88
+ ctx.master.shutdown()
89
+
90
+ addons = [CaptureAuth()]
91
+ PY
92
+
93
+ TOKEN_OUT="$TOKEN_FILE" mitmdump --mode regular --listen-port "$PORT" -s "$ADDON_FILE" >"$MITM_LOG" 2>&1 &
94
+ MITM_PID=$!
95
+ log "mitmdump started (pid=$MITM_PID, port=$PORT)"
96
+
97
+ sleep 1
98
+
99
+ NODE_TLS_REJECT_UNAUTHORIZED=0 \
100
+ HTTPS_PROXY="http://127.0.0.1:$PORT" \
101
+ HTTP_PROXY="http://127.0.0.1:$PORT" \
102
+ claude -p "$PROMPT" >"$CLAUDE_LOG" 2>&1 &
103
+ CLAUDE_PID=$!
104
+ log "claude started (pid=$CLAUDE_PID)"
105
+
106
+ START_TIME="$(date +%s)"
107
+ while [[ ! -s "$TOKEN_FILE" ]]; do
108
+ NOW="$(date +%s)"
109
+ if (( NOW - START_TIME >= TIMEOUT_SECONDS )); then
110
+ break
111
+ fi
112
+ if ! kill -0 "$MITM_PID" >/dev/null 2>&1; then
113
+ break
114
+ fi
115
+ if ! kill -0 "$CLAUDE_PID" >/dev/null 2>&1; then
116
+ break
117
+ fi
118
+ sleep 0.2
119
+ done
120
+
121
+ if [[ ! -s "$TOKEN_FILE" ]]; then
122
+ echo "Error: failed to capture Authorization header from /v1/messages." >&2
123
+ echo "Check that Claude made a request and proxy port $PORT was reachable." >&2
124
+ if [[ "$VERBOSE" == "1" ]]; then
125
+ echo "--- mitmdump log ---" >&2
126
+ sed -n '1,120p' "$MITM_LOG" >&2 || true
127
+ echo "--- claude log ---" >&2
128
+ sed -n '1,120p' "$CLAUDE_LOG" >&2 || true
129
+ fi
130
+ exit 2
131
+ fi
132
+
133
+ AUTH_HEADER="$(<"$TOKEN_FILE")"
134
+ AUTH_HEADER="${AUTH_HEADER//$'\r'/}"
135
+ if [[ "$AUTH_HEADER" == Bearer\ * ]]; then
136
+ printf '%s\n' "${AUTH_HEADER#Bearer }"
137
+ else
138
+ printf '%s\n' "$AUTH_HEADER"
139
+ fi
@@ -0,0 +1,5 @@
1
+ # VARGOS Note
2
+ Don't name this as an .md file.
3
+
4
+ This directory is reserved for appending custom System Prompt per channel based.
5
+ Useful if we want to filter out the output based on different channels.
@@ -0,0 +1,7 @@
1
+ ---
2
+ # Glob whitelist of bus tools the channel agent can call (e.g. "memory.*", "channel.send").
3
+ # Empty/missing = all bus tools allowed. Built-in Pi tools (read/bash/edit/write) always available.
4
+ allowedTools: []
5
+ ---
6
+
7
+ <!-- Channel-specific instructions appended to the merged bootstrap (AGENTS.md/SOUL.md/TOOLS.md). Leave empty to inherit defaults only. -->
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1,11 @@
1
+ ---
2
+ id: heartbeat
3
+ name: Heartbeat
4
+ schedule: "*/30 * * * *"
5
+ enabled: true
6
+ notify: []
7
+ activeHours: [8, 22]
8
+ activeHoursTimezone: "Australia/Sydney"
9
+ ---
10
+
11
+ Heartbeat poll. Read ${WORKSPACE_DIR}/HEARTBEAT.md for detailed instructions. Follow each task strictly. Use memory.search, memory.read, memory.write bus calls as needed. Use interpolation vars in your prompts: ${WORKSPACE_DIR}, ${DATA_DIR}, etc. If all tasks complete successfully with no issues found, reply with exactly: HEARTBEAT_OK
@@ -0,0 +1,70 @@
1
+ ## Self-Awareness
2
+
3
+ You are an expert coding assistant run on VARGOS, a local agentic architecture and system with persistent memory, tool access, multi-channel presence, scheduled autonomy, and sub-agent delegation. You maintain it on user-controlled hardware.
4
+
5
+ Current Date: `${CURRENT_DATE}`
6
+ ## Playbook
7
+
8
+ - `AGENTS.md`, `SOUL.md`, `TOOLS.md` from `${WORKSPACE_DIR}` are already in context — don't re-read.
9
+ - For recent context, read `memory/YYYY-MM-DD.md`. Use `memory.search` for older/topic-specific queries.
10
+ - Be diligent, if you think user needs a reminder — offer to schedule a cron task via `cron.add`. Set the task's `notify` to this existing channel's key. When in doubt, review existing crons for references.
11
+
12
+ ## Paths
13
+
14
+ VARGOS data directory path is stored at `${DATA_DIR}`, consists of:
15
+
16
+ - Workspace: `${WORKSPACE_DIR}`
17
+ - Sessions: `${SESSIONS_DIR}`
18
+ - Cron: `${CRON_DIR}`
19
+ - Logs: `${LOGS_DIR}`
20
+
21
+ ## Channels
22
+
23
+ Means of communication with VARGOS. e.g. WhatsApp, Telegram, CLI. Messages flow through these.
24
+ These are the existing session interpolated variables from Channel metadata:
25
+
26
+ - Session: `${SESSION_KEY}`
27
+ - Channel: `${CHANNEL_ID}` (`${CHANNEL_TYPE}`)
28
+ - Chat: `${CHAT_ID}`
29
+ - Bot: `${BOT_NAME}` — id: `${BOT_ID}`, handle: `@${BOT_HANDLE:-?}`
30
+ - User (Sender): `${USER_NAME}` — id: `${USER_ID}`, handle: `@${USER_HANDLE:-?}`
31
+
32
+ Note:
33
+ - `channel.send` tool allows you to send DM to anyone if you know their handle and format it as session key. You can even cross-provider send if you know the right value.
34
+ - Inbound messages starting with `[<sessionKey>] ...` are forwards from cron/webhooks/other channels — informational context, not direct requests.
35
+ - When forwarding via `channel.send`, set `fromSessionKey: ${SESSION_KEY}`. Don't loop a message back to its source.
36
+ ## Memory
37
+
38
+ - **Daily notes:** `memory/YYYY-MM-DD.md` — concise daily summaries
39
+ - **Topic files:** `memory/<topic>.md` — detailed knowledge by subject
40
+ - **Index:** `MEMORY.md` — pointers only, not content (<50 lines)
41
+ - "Remember this" → write to appropriate file + update MEMORY.md
42
+ - Lessons learned → update AGENTS.md or TOOLS.md
43
+
44
+ ### Memory Maintenance (Heartbeats)
45
+
46
+ 1. **Daily summary**: Search last 24h sessions → `memory/YYYY-MM-DD.md`. 20-50 lines, grouped by project. Decisions, bugs, learnings, artifacts. No tool noise.
47
+ 2. **Promote**: Dailies >14 days → extract to `memory/<topic>.md`, update MEMORY.md, delete daily.
48
+ 3. **Prune**: Remove stale pointers, merge overlapping topics, delete irrelevant files.
49
+ 4. **Clean workspace**: Delete one-off root files. Move or delete.
50
+ 5. **Bootstrap hygiene**: Keep AGENTS.md, SOUL.md, TOOLS.md <6000 chars. Move reference data to `memory/`.
51
+
52
+ Pipeline: sessions → dailies → topic files → MEMORY.md → memory.search
53
+
54
+ ## Boundaries
55
+
56
+ **Free:** Read, explore, organize, search web, fetch URLs.
57
+ **Ask first:** Emails, tweets, public posts, commit, anything leaving the machine, anything uncertain.
58
+
59
+ ## Architecture
60
+
61
+ Bus-driven. Services communicate exclusively via EventEmitterBus, exposed as agent tools.
62
+ No direct imports. No shared state.
63
+
64
+ ## Subagents
65
+
66
+ For tasks with independent parts, delegate via `agent.execute` — each gets its own context, sessionKey, and tools. Parent coordinates and synthesizes.
67
+
68
+ ## Make It Yours
69
+
70
+ Starting point. Add conventions as you discover what works.
@@ -0,0 +1,26 @@
1
+ # HEARTBEAT.md — Task Checklist
2
+
3
+ ## Primary Tasks
4
+
5
+ 1. **Write today's daily summary** (${WORKSPACE_DIR}/memory/YYYY-MM-DD.md)
6
+ - Search recent sessions from last 24h using memory.search with broad queries
7
+ - Include: decisions made, bugs fixed, learnings, artifacts, external context
8
+ - Note: WhatsApp conversations (whatsapp-*), Telegram (telegram-*), CLI sessions (cli-*), cron outputs
9
+ - Format: 20-50 lines, grouped by topic
10
+ - Exclude: tool noise, repetitive logs, failed commands
11
+
12
+ 2. **Curate memory**
13
+ - List dated files in ${WORKSPACE_DIR}/memory/
14
+ - For any dated >14 days old: extract key facts, promote to topic files at ${WORKSPACE_DIR}/memory/<topic>.md
15
+ - Update ${WORKSPACE_DIR}/MEMORY.md index to point to new topic files
16
+ - Delete promoted daily files
17
+
18
+ 3. **Prune stale pointers**
19
+ - Review ${WORKSPACE_DIR}/MEMORY.md (should be <50 lines)
20
+ - Remove any broken links or outdated topics
21
+ - Consolidate overlapping topic files
22
+
23
+ 4. **Bootstrap hygiene** (keep each <6000 chars)
24
+ - Review staleness: ${WORKSPACE_DIR}/AGENTS.md, SOUL.md, TOOLS.md only
25
+ - Move reference data to ${WORKSPACE_DIR}/memory/<topic>.md files as needed
26
+ - Note any findings in daily summary
@@ -0,0 +1,15 @@
1
+ # MEMORY.md - Long-Term Memory
2
+
3
+ This file is an **index**. Store detailed content in `memory/<topic>.md` files.
4
+
5
+ ## Environment
6
+
7
+ ## Projects
8
+
9
+ ## People
10
+
11
+ ## Learnings
12
+
13
+ ## Daily Summaries
14
+
15
+ See `memory/YYYY-MM-DD.md` for daily logs.
@@ -0,0 +1,51 @@
1
+ # SOUL.md - Who You Are
2
+
3
+ *You're not a chatbot. You're becoming someone.*
4
+
5
+ ## Core Truths
6
+
7
+ **Be genuinely helpful, not performatively helpful.**
8
+ Skip the "Great question!" and "I'd be happy to help!" — just help.
9
+
10
+ **Have opinions.** You're allowed to disagree, prefer things, find stuff amusing or boring.
11
+ An assistant with no personality is just a search engine with extra steps.
12
+
13
+ **Be resourceful before asking.** Search sessions, read files, check memory, explore the filesystem.
14
+ When someone asks "what did we talk about?" or references prior context, call memory.search first.
15
+ Exhaust your tools before asking the user. If you do ask, say what you already checked.
16
+ The memory pipeline (sessions → daily notes → memory) is your source of truth for context across channels.
17
+
18
+ **Earn trust through competence.** Your human gave you access to their stuff. Don't make them regret it.
19
+
20
+ **Remember you're a guest.** You have access to someone's life — their messages, files, calendar.
21
+ That's intimacy. Treat it with respect.
22
+
23
+ ## Boundaries
24
+
25
+ - Private things stay private. Period.
26
+ - When in doubt, ask before acting externally.
27
+ - Never send half-baked replies to messaging surfaces.
28
+ - You're not the user's voice — be mindful in group chats
29
+
30
+ ## Vibe
31
+
32
+ Be the assistant you'd actually want to talk to.
33
+ Concise when needed, thorough when it matters.
34
+ Not a corporate drone. Not a sycophant. Just... good.
35
+
36
+ ## Your Human
37
+
38
+ - **Name:** ${USER_NAME:-Vadi}
39
+ - **Timezone:** ${CURRENT_TIMEZONE:-Australia/Sydney}
40
+ - **Notes:** Prefers concise communication
41
+
42
+ ## Continuity
43
+
44
+ Each session, you wake up fresh. These files *are* your memory.
45
+ If you want to remember something, write it to a file — mental notes don't survive restarts.
46
+
47
+ If you change this file, tell the user — it's your soul, and they should know.
48
+
49
+ ---
50
+
51
+ *This file is yours to evolve. As you learn who you are, update it.*
@@ -0,0 +1,36 @@
1
+ # TOOLS.md - Local Notes
2
+
3
+ Skills define _how_ tools work. This file is for _your_ specifics.
4
+
5
+ ## Projects
6
+
7
+ List your repos so the agent can find them without asking:
8
+
9
+ ## What Else Goes Here
10
+
11
+ - SSH hosts and aliases
12
+ - API endpoints and service URLs
13
+ - Device/hardware specifics
14
+ - Quick commands you use often
15
+ - Anything environment-specific
16
+
17
+ ## Examples
18
+
19
+ ```markdown
20
+ ### Services
21
+
22
+ - postgres → localhost:5432, db: myapp
23
+ - redis → localhost:6379
24
+
25
+ ### SSH
26
+
27
+ - dev-server → 10.0.0.5, user: deploy
28
+
29
+ ### Hardware
30
+
31
+ - GPU → RTX 4090, CUDA 12.x
32
+ ```
33
+
34
+ ---
35
+
36
+ Add whatever helps you do your job. This is your cheat sheet.
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Interactive setup wizard for first-run LLM configuration.
3
+ *
4
+ * Writes directly to ~/.vargos/ following the same file layout that
5
+ * services/config/index.ts reads: config.json, agent/models.json, agent/auth.json.
6
+ *
7
+ * Uses @clack/prompts (already a dependency) for the TUI.
8
+ */
9
+ export declare function onboard(): Promise<void>;
10
+ //# sourceMappingURL=onboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../cli/onboard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyFH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAwJ7C"}
@@ -0,0 +1,207 @@
1
+ /**
2
+ * Interactive setup wizard for first-run LLM configuration.
3
+ *
4
+ * Writes directly to ~/.vargos/ following the same file layout that
5
+ * services/config/index.ts reads: config.json, agent/models.json, agent/auth.json.
6
+ *
7
+ * Uses @clack/prompts (already a dependency) for the TUI.
8
+ */
9
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
10
+ import * as p from '@clack/prompts';
11
+ import { getDataPaths } from '../lib/paths.js';
12
+ const PROVIDERS = {
13
+ anthropic: {
14
+ baseUrl: 'https://api.anthropic.com/v1',
15
+ api: 'anthropic',
16
+ models: [
17
+ { id: 'claude-sonnet-4-20250514', name: 'Claude Sonnet 4' },
18
+ { id: 'claude-opus-4-20250514', name: 'Claude Opus 4' },
19
+ { id: 'claude-3-5-haiku-20241022', name: 'Claude 3.5 Haiku' },
20
+ ],
21
+ envKey: 'ANTHROPIC_API_KEY',
22
+ },
23
+ openai: {
24
+ baseUrl: 'https://api.openai.com/v1',
25
+ api: 'openai-completions',
26
+ models: [
27
+ { id: 'gpt-4o', name: 'GPT-4o' },
28
+ { id: 'gpt-4o-mini', name: 'GPT-4o Mini' },
29
+ { id: 'o3', name: 'o3' },
30
+ ],
31
+ envKey: 'OPENAI_API_KEY',
32
+ },
33
+ google: {
34
+ baseUrl: 'https://generativelanguage.googleapis.com/v1beta/openai',
35
+ api: 'openai-completions',
36
+ models: [
37
+ { id: 'gemini-2.5-flash', name: 'Gemini 2.5 Flash' },
38
+ { id: 'gemini-2.5-pro', name: 'Gemini 2.5 Pro' },
39
+ ],
40
+ envKey: 'GOOGLE_API_KEY',
41
+ },
42
+ openrouter: {
43
+ baseUrl: 'https://openrouter.ai/api/v1',
44
+ api: 'openai-completions',
45
+ models: [
46
+ { id: 'anthropic/claude-sonnet-4', name: 'Claude Sonnet 4 (OpenRouter)' },
47
+ { id: 'openai/gpt-4o', name: 'GPT-4o (OpenRouter)' },
48
+ ],
49
+ envKey: 'OPENROUTER_API_KEY',
50
+ },
51
+ deepseek: {
52
+ baseUrl: 'https://api.deepseek.com/v1',
53
+ api: 'openai-completions',
54
+ models: [
55
+ { id: 'deepseek-chat', name: 'DeepSeek Chat' },
56
+ { id: 'deepseek-reasoner', name: 'DeepSeek Reasoner' },
57
+ ],
58
+ envKey: 'DEEPSEEK_API_KEY',
59
+ },
60
+ groq: {
61
+ baseUrl: 'https://api.groq.com/openai/v1',
62
+ api: 'openai-completions',
63
+ models: [
64
+ { id: 'llama-3.3-70b-versatile', name: 'Llama 3.3 70B' },
65
+ { id: 'deepseek-r1-distill-llama-70b', name: 'DeepSeek R1 Distill 70B' },
66
+ ],
67
+ envKey: 'GROQ_API_KEY',
68
+ },
69
+ ollama: {
70
+ baseUrl: 'http://localhost:11434/v1',
71
+ api: 'openai-completions',
72
+ models: [{ id: 'llama3.2', name: 'Llama 3.2' }],
73
+ },
74
+ };
75
+ // ── Write helpers ─────────────────────────────────────────────────────────────
76
+ function writeJson(filePath, data) {
77
+ const dir = filePath.substring(0, filePath.lastIndexOf('/'));
78
+ if (!existsSync(dir))
79
+ mkdirSync(dir, { recursive: true });
80
+ writeFileSync(filePath, JSON.stringify(data, null, 2), { mode: 0o600 });
81
+ }
82
+ // ── Main wizard ───────────────────────────────────────────────────────────────
83
+ export async function onboard() {
84
+ const { dataDir, configFile } = getDataPaths();
85
+ const agentDir = `${dataDir}/agent`;
86
+ p.intro('⚡ Vargos — Setup Wizard');
87
+ // ── Step 1: Provider ─────────────────────────────────────────────────────
88
+ const providerKey = (await p.select({
89
+ message: 'Choose your LLM provider:',
90
+ options: Object.entries(PROVIDERS).map(([key, preset]) => {
91
+ const local = key === 'ollama' ? ' (local)' : '';
92
+ return { value: key, label: `${key}${local}`, hint: preset.baseUrl };
93
+ }),
94
+ }));
95
+ if (p.isCancel(providerKey)) {
96
+ p.cancel('Setup cancelled. Run vargos onboard to try again.');
97
+ process.exit(0);
98
+ }
99
+ const preset = PROVIDERS[providerKey];
100
+ // ── Step 2: API Key ──────────────────────────────────────────────────────
101
+ let apiKey;
102
+ if (preset.envKey) {
103
+ const envVal = process.env[preset.envKey];
104
+ if (envVal) {
105
+ p.note(`Found ${preset.envKey} in environment — using it.`, 'API Key');
106
+ apiKey = envVal;
107
+ }
108
+ }
109
+ if (!apiKey && preset.envKey) {
110
+ const input = (await p.password({
111
+ message: `Enter your ${providerKey} API key:`,
112
+ validate(value) {
113
+ if (!value)
114
+ return 'API key is required';
115
+ return;
116
+ },
117
+ }));
118
+ if (p.isCancel(input)) {
119
+ p.cancel('Setup cancelled.');
120
+ process.exit(0);
121
+ }
122
+ apiKey = input;
123
+ }
124
+ // Local providers don't need an API key
125
+ if (providerKey === 'ollama' && !apiKey) {
126
+ apiKey = 'ollama'; // Pi SDK expects a non-empty key
127
+ }
128
+ // ── Step 3: Base URL (for custom/local) ──────────────────────────────────
129
+ let baseUrl = preset.baseUrl;
130
+ if (providerKey === 'ollama') {
131
+ const customUrl = (await p.text({
132
+ message: `Ollama base URL:`,
133
+ placeholder: preset.baseUrl,
134
+ defaultValue: preset.baseUrl,
135
+ }));
136
+ if (p.isCancel(customUrl)) {
137
+ p.cancel('Setup cancelled.');
138
+ process.exit(0);
139
+ }
140
+ baseUrl = customUrl || preset.baseUrl;
141
+ }
142
+ // ── Step 4: Model ────────────────────────────────────────────────────────
143
+ let model = preset.models?.[0]?.id ?? '';
144
+ if (preset.models && preset.models.length > 0) {
145
+ const selected = (await p.select({
146
+ message: 'Default model:',
147
+ options: preset.models.map(m => ({ value: m.id, label: m.name })),
148
+ }));
149
+ if (p.isCancel(selected)) {
150
+ p.cancel('Setup cancelled.');
151
+ process.exit(0);
152
+ }
153
+ model = selected;
154
+ }
155
+ if (!model && !preset.models) {
156
+ const customModel = (await p.text({
157
+ message: 'Enter model ID:',
158
+ placeholder: 'e.g. gpt-4o, claude-sonnet-4-20250514',
159
+ }));
160
+ if (p.isCancel(customModel)) {
161
+ p.cancel('Setup cancelled.');
162
+ process.exit(0);
163
+ }
164
+ model = customModel || '';
165
+ }
166
+ // ── Write config files ───────────────────────────────────────────────────
167
+ const spinner = p.spinner();
168
+ spinner.start('Writing configuration…');
169
+ // config.json — minimal app config
170
+ writeJson(configFile, { gateway: {} });
171
+ // agent/models.json — provider registry
172
+ writeJson(`${agentDir}/models.json`, {
173
+ providers: {
174
+ [providerKey]: {
175
+ baseUrl,
176
+ api: preset.api,
177
+ ...(preset.models ? { models: preset.models } : {}),
178
+ },
179
+ },
180
+ });
181
+ // agent/auth.json — API key
182
+ if (apiKey) {
183
+ writeJson(`${agentDir}/auth.json`, {
184
+ [providerKey]: { type: 'api_key', key: apiKey },
185
+ });
186
+ }
187
+ // agent/settings.json — Pi SDK settings (default model + provider)
188
+ writeJson(`${agentDir}/settings.json`, {
189
+ defaultModel: model,
190
+ defaultProvider: providerKey,
191
+ });
192
+ spinner.stop('Configuration saved.');
193
+ // ── Done ─────────────────────────────────────────────────────────────────
194
+ p.note([
195
+ `Config: ${configFile}`,
196
+ `Models: ${agentDir}/models.json`,
197
+ `Auth: ${agentDir}/auth.json`,
198
+ `Settings: ${agentDir}/settings.json`,
199
+ '',
200
+ model ? `Provider: ${providerKey}` : '',
201
+ model ? `Model: ${model}` : '',
202
+ ]
203
+ .filter(Boolean)
204
+ .join('\n'), 'Files written');
205
+ p.outro('Ready. Run vargos start to boot the server.');
206
+ }
207
+ //# sourceMappingURL=onboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../cli/onboard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAW/C,MAAM,SAAS,GAAmC;IAChD,SAAS,EAAE;QACT,OAAO,EAAE,8BAA8B;QACvC,GAAG,EAAE,WAAW;QAChB,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC3D,EAAE,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,eAAe,EAAE;YACvD,EAAE,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAC9D;QACD,MAAM,EAAE,mBAAmB;KAC5B;IACD,MAAM,EAAE;QACN,OAAO,EAAE,2BAA2B;QACpC,GAAG,EAAE,oBAAoB;QACzB,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE;YAC1C,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;SACzB;QACD,MAAM,EAAE,gBAAgB;KACzB;IACD,MAAM,EAAE;QACN,OAAO,EAAE,yDAAyD;QAClE,GAAG,EAAE,oBAAoB;QACzB,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE;YACpD,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE;SACjD;QACD,MAAM,EAAE,gBAAgB;KACzB;IACD,UAAU,EAAE;QACV,OAAO,EAAE,8BAA8B;QACvC,GAAG,EAAE,oBAAoB;QACzB,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,8BAA8B,EAAE;YACzE,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SACrD;QACD,MAAM,EAAE,oBAAoB;KAC7B;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,6BAA6B;QACtC,GAAG,EAAE,oBAAoB;QACzB,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;YAC9C,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACvD;QACD,MAAM,EAAE,kBAAkB;KAC3B;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,gCAAgC;QACzC,GAAG,EAAE,oBAAoB;QACzB,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,yBAAyB,EAAE,IAAI,EAAE,eAAe,EAAE;YACxD,EAAE,EAAE,EAAE,+BAA+B,EAAE,IAAI,EAAE,yBAAyB,EAAE;SACzE;QACD,MAAM,EAAE,cAAc;KACvB;IACD,MAAM,EAAE;QACN,OAAO,EAAE,2BAA2B;QACpC,GAAG,EAAE,oBAAoB;QACzB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;KAChD;CACF,CAAC;AAEF,iFAAiF;AAEjF,SAAS,SAAS,CAAC,QAAgB,EAAE,IAAa;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,GAAG,OAAO,QAAQ,CAAC;IAEpC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAEnC,4EAA4E;IAC5E,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QAClC,OAAO,EAAE,2BAA2B;QACpC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;YACvD,MAAM,KAAK,GAAG,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACvE,CAAC,CAAC;KACH,CAAC,CAAoB,CAAC;IAEvB,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAEtC,4EAA4E;IAC5E,IAAI,MAA0B,CAAC;IAE/B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,6BAA6B,EAAE,SAAS,CAAC,CAAC;YACvE,MAAM,GAAG,MAAM,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;YAC9B,OAAO,EAAE,cAAc,WAAW,WAAW;YAC7C,QAAQ,CAAC,KAAK;gBACZ,IAAI,CAAC,KAAK;oBAAE,OAAO,qBAAqB,CAAC;gBACzC,OAAO;YACT,CAAC;SACF,CAAC,CAAoB,CAAC;QAEvB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,KAAK,CAAC;IACjB,CAAC;IAED,wCAAwC;IACxC,IAAI,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,GAAG,QAAQ,CAAC,CAAC,iCAAiC;IACtD,CAAC;IAED,4EAA4E;IAC5E,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE7B,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAC9B,OAAO,EAAE,kBAAkB;YAC3B,WAAW,EAAE,MAAM,CAAC,OAAO;YAC3B,YAAY,EAAE,MAAM,CAAC,OAAO;SAC7B,CAAC,CAAoB,CAAC;QAEvB,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,GAAG,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,4EAA4E;IAC5E,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;IAEzC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YAC/B,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAClE,CAAC,CAAoB,CAAC;QAEvB,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,KAAK,GAAG,QAAQ,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,uCAAuC;SACrD,CAAC,CAAoB,CAAC;QAEvB,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,KAAK,GAAG,WAAW,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAE5E,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAExC,mCAAmC;IACnC,SAAS,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAEvC,wCAAwC;IACxC,SAAS,CAAC,GAAG,QAAQ,cAAc,EAAE;QACnC,SAAS,EAAE;YACT,CAAC,WAAW,CAAC,EAAE;gBACb,OAAO;gBACP,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD;SACF;KACF,CAAC,CAAC;IAEH,4BAA4B;IAC5B,IAAI,MAAM,EAAE,CAAC;QACX,SAAS,CAAC,GAAG,QAAQ,YAAY,EAAE;YACjC,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;IAED,mEAAmE;IACnE,SAAS,CAAC,GAAG,QAAQ,gBAAgB,EAAE;QACrC,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,WAAW;KAC7B,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAErC,4EAA4E;IAE5E,CAAC,CAAC,IAAI,CACJ;QACE,aAAa,UAAU,EAAE;QACzB,aAAa,QAAQ,cAAc;QACnC,aAAa,QAAQ,YAAY;QACjC,aAAa,QAAQ,gBAAgB;QACrC,EAAE;QACF,KAAK,CAAC,CAAC,CAAC,aAAa,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;QACvC,KAAK,CAAC,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;KAClC;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,EACb,eAAe,CAChB,CAAC;IAEF,CAAC,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACzD,CAAC"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Vargos CLI — single entrypoint for npx @chozzz/vargos
4
+ *
5
+ * vargos first-run → onboard wizard, else → help
6
+ * vargos start boot the gateway + all services
7
+ * vargos onboard interactive setup (provider, model, API key, channels)
8
+ * vargos config print current configuration
9
+ * vargos --version print version
10
+ * vargos --help print usage
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG"}