@chozzz/vargos 2.0.6 → 2.0.7

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 (283) hide show
  1. package/dist/cli.js +5 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/edge/mcp/index.d.ts +33 -0
  4. package/dist/edge/mcp/index.d.ts.map +1 -0
  5. package/dist/edge/mcp/index.js +217 -0
  6. package/dist/edge/mcp/index.js.map +1 -0
  7. package/dist/edge/webhooks/index.d.ts +33 -0
  8. package/dist/edge/webhooks/index.d.ts.map +1 -0
  9. package/dist/edge/webhooks/index.js +231 -0
  10. package/dist/edge/webhooks/index.js.map +1 -0
  11. package/dist/edge/webhooks/transform.d.ts +8 -0
  12. package/dist/edge/webhooks/transform.d.ts.map +1 -0
  13. package/dist/edge/webhooks/transform.js +29 -0
  14. package/dist/edge/webhooks/transform.js.map +1 -0
  15. package/dist/gateway/bus.d.ts +48 -0
  16. package/dist/gateway/bus.d.ts.map +1 -0
  17. package/dist/gateway/bus.js +2 -0
  18. package/dist/gateway/bus.js.map +1 -0
  19. package/dist/gateway/decorators.d.ts +40 -0
  20. package/dist/gateway/decorators.d.ts.map +1 -0
  21. package/dist/gateway/decorators.js +43 -0
  22. package/dist/gateway/decorators.js.map +1 -0
  23. package/dist/gateway/emitter.d.ts +42 -0
  24. package/dist/gateway/emitter.d.ts.map +1 -0
  25. package/dist/gateway/emitter.js +259 -0
  26. package/dist/gateway/emitter.js.map +1 -0
  27. package/dist/gateway/events.d.ts +343 -0
  28. package/dist/gateway/events.d.ts.map +1 -0
  29. package/dist/gateway/events.js +7 -0
  30. package/dist/gateway/events.js.map +1 -0
  31. package/dist/gateway/tcp-server.d.ts +7 -0
  32. package/dist/gateway/tcp-server.d.ts.map +1 -0
  33. package/dist/gateway/tcp-server.js +115 -0
  34. package/dist/gateway/tcp-server.js.map +1 -0
  35. package/dist/index.d.ts +2 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +74 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/scripts/migrate-cron-sessions.d.ts +10 -0
  40. package/dist/scripts/migrate-cron-sessions.d.ts.map +1 -0
  41. package/dist/scripts/migrate-cron-sessions.js +139 -0
  42. package/dist/scripts/migrate-cron-sessions.js.map +1 -0
  43. package/dist/scripts/seed.d.ts +2 -0
  44. package/dist/scripts/seed.d.ts.map +1 -0
  45. package/dist/scripts/seed.js +4 -0
  46. package/dist/scripts/seed.js.map +1 -0
  47. package/dist/services/agent/directives.d.ts +14 -0
  48. package/dist/services/agent/directives.d.ts.map +1 -0
  49. package/dist/services/agent/directives.js +32 -0
  50. package/dist/services/agent/directives.js.map +1 -0
  51. package/dist/services/agent/index.d.ts +104 -0
  52. package/dist/services/agent/index.d.ts.map +1 -0
  53. package/dist/services/agent/index.js +534 -0
  54. package/dist/services/agent/index.js.map +1 -0
  55. package/dist/services/agent/persona.d.ts +15 -0
  56. package/dist/services/agent/persona.d.ts.map +1 -0
  57. package/dist/services/agent/persona.js +63 -0
  58. package/dist/services/agent/persona.js.map +1 -0
  59. package/dist/services/agent/prompt-interpolate.d.ts +41 -0
  60. package/dist/services/agent/prompt-interpolate.d.ts.map +1 -0
  61. package/dist/services/agent/prompt-interpolate.js +102 -0
  62. package/dist/services/agent/prompt-interpolate.js.map +1 -0
  63. package/dist/services/agent/schema.d.ts +10 -0
  64. package/dist/services/agent/schema.d.ts.map +1 -0
  65. package/dist/services/agent/schema.js +5 -0
  66. package/dist/services/agent/schema.js.map +1 -0
  67. package/dist/services/agent/tools.d.ts +26 -0
  68. package/dist/services/agent/tools.d.ts.map +1 -0
  69. package/dist/services/agent/tools.js +85 -0
  70. package/dist/services/agent/tools.js.map +1 -0
  71. package/dist/services/channels/base-adapter.d.ts +61 -0
  72. package/dist/services/channels/base-adapter.d.ts.map +1 -0
  73. package/dist/services/channels/base-adapter.js +181 -0
  74. package/dist/services/channels/base-adapter.js.map +1 -0
  75. package/dist/services/channels/contracts.d.ts +75 -0
  76. package/dist/services/channels/contracts.d.ts.map +1 -0
  77. package/dist/services/channels/contracts.js +6 -0
  78. package/dist/services/channels/contracts.js.map +1 -0
  79. package/dist/services/channels/debounce.d.ts +22 -0
  80. package/dist/services/channels/debounce.d.ts.map +1 -0
  81. package/dist/services/channels/debounce.js +53 -0
  82. package/dist/services/channels/debounce.js.map +1 -0
  83. package/dist/services/channels/dedupe.d.ts +19 -0
  84. package/dist/services/channels/dedupe.d.ts.map +1 -0
  85. package/dist/services/channels/dedupe.js +52 -0
  86. package/dist/services/channels/dedupe.js.map +1 -0
  87. package/dist/services/channels/delivery.d.ts +12 -0
  88. package/dist/services/channels/delivery.d.ts.map +1 -0
  89. package/dist/services/channels/delivery.js +53 -0
  90. package/dist/services/channels/delivery.js.map +1 -0
  91. package/dist/services/channels/index.d.ts +53 -0
  92. package/dist/services/channels/index.d.ts.map +1 -0
  93. package/dist/services/channels/index.js +405 -0
  94. package/dist/services/channels/index.js.map +1 -0
  95. package/dist/services/channels/link-expand.d.ts +8 -0
  96. package/dist/services/channels/link-expand.d.ts.map +1 -0
  97. package/dist/services/channels/link-expand.js +28 -0
  98. package/dist/services/channels/link-expand.js.map +1 -0
  99. package/dist/services/channels/media-extract.d.ts +7 -0
  100. package/dist/services/channels/media-extract.d.ts.map +1 -0
  101. package/dist/services/channels/media-extract.js +31 -0
  102. package/dist/services/channels/media-extract.js.map +1 -0
  103. package/dist/services/channels/pipeline.d.ts +29 -0
  104. package/dist/services/channels/pipeline.d.ts.map +1 -0
  105. package/dist/services/channels/pipeline.js +120 -0
  106. package/dist/services/channels/pipeline.js.map +1 -0
  107. package/dist/services/channels/provider-loader.d.ts +7 -0
  108. package/dist/services/channels/provider-loader.d.ts.map +1 -0
  109. package/dist/services/channels/provider-loader.js +13 -0
  110. package/dist/services/channels/provider-loader.js.map +1 -0
  111. package/dist/services/channels/providers/telegram/adapter.d.ts +34 -0
  112. package/dist/services/channels/providers/telegram/adapter.d.ts.map +1 -0
  113. package/dist/services/channels/providers/telegram/adapter.js +278 -0
  114. package/dist/services/channels/providers/telegram/adapter.js.map +1 -0
  115. package/dist/services/channels/providers/telegram/index.d.ts +11 -0
  116. package/dist/services/channels/providers/telegram/index.d.ts.map +1 -0
  117. package/dist/services/channels/providers/telegram/index.js +11 -0
  118. package/dist/services/channels/providers/telegram/index.js.map +1 -0
  119. package/dist/services/channels/providers/telegram/normalizer.d.ts +12 -0
  120. package/dist/services/channels/providers/telegram/normalizer.d.ts.map +1 -0
  121. package/dist/services/channels/providers/telegram/normalizer.js +50 -0
  122. package/dist/services/channels/providers/telegram/normalizer.js.map +1 -0
  123. package/dist/services/channels/providers/telegram/types.d.ts +72 -0
  124. package/dist/services/channels/providers/telegram/types.d.ts.map +1 -0
  125. package/dist/services/channels/providers/telegram/types.js +3 -0
  126. package/dist/services/channels/providers/telegram/types.js.map +1 -0
  127. package/dist/services/channels/providers/whatsapp/adapter.d.ts +36 -0
  128. package/dist/services/channels/providers/whatsapp/adapter.d.ts.map +1 -0
  129. package/dist/services/channels/providers/whatsapp/adapter.js +261 -0
  130. package/dist/services/channels/providers/whatsapp/adapter.js.map +1 -0
  131. package/dist/services/channels/providers/whatsapp/index.d.ts +11 -0
  132. package/dist/services/channels/providers/whatsapp/index.d.ts.map +1 -0
  133. package/dist/services/channels/providers/whatsapp/index.js +11 -0
  134. package/dist/services/channels/providers/whatsapp/index.js.map +1 -0
  135. package/dist/services/channels/providers/whatsapp/normalizer.d.ts +11 -0
  136. package/dist/services/channels/providers/whatsapp/normalizer.d.ts.map +1 -0
  137. package/dist/services/channels/providers/whatsapp/normalizer.js +47 -0
  138. package/dist/services/channels/providers/whatsapp/normalizer.js.map +1 -0
  139. package/dist/services/channels/providers/whatsapp/session.d.ts +9 -0
  140. package/dist/services/channels/providers/whatsapp/session.d.ts.map +1 -0
  141. package/dist/services/channels/providers/whatsapp/session.js +118 -0
  142. package/dist/services/channels/providers/whatsapp/session.js.map +1 -0
  143. package/dist/services/channels/providers/whatsapp/types.d.ts +23 -0
  144. package/dist/services/channels/providers/whatsapp/types.d.ts.map +1 -0
  145. package/dist/services/channels/providers/whatsapp/types.js +3 -0
  146. package/dist/services/channels/providers/whatsapp/types.js.map +1 -0
  147. package/dist/services/channels/reconnect.d.ts +23 -0
  148. package/dist/services/channels/reconnect.d.ts.map +1 -0
  149. package/dist/services/channels/reconnect.js +32 -0
  150. package/dist/services/channels/reconnect.js.map +1 -0
  151. package/dist/services/channels/status-reactions.d.ts +27 -0
  152. package/dist/services/channels/status-reactions.d.ts.map +1 -0
  153. package/dist/services/channels/status-reactions.js +63 -0
  154. package/dist/services/channels/status-reactions.js.map +1 -0
  155. package/dist/services/channels/types.d.ts +16 -0
  156. package/dist/services/channels/types.d.ts.map +1 -0
  157. package/dist/services/channels/types.js +2 -0
  158. package/dist/services/channels/types.js.map +1 -0
  159. package/dist/services/channels/typing-state.d.ts +22 -0
  160. package/dist/services/channels/typing-state.d.ts.map +1 -0
  161. package/dist/services/channels/typing-state.js +88 -0
  162. package/dist/services/channels/typing-state.js.map +1 -0
  163. package/dist/services/config/index.d.ts +2426 -0
  164. package/dist/services/config/index.d.ts.map +1 -0
  165. package/dist/services/config/index.js +232 -0
  166. package/dist/services/config/index.js.map +1 -0
  167. package/dist/services/config/schemas/agent.d.ts +720 -0
  168. package/dist/services/config/schemas/agent.d.ts.map +1 -0
  169. package/dist/services/config/schemas/agent.js +86 -0
  170. package/dist/services/config/schemas/agent.js.map +1 -0
  171. package/dist/services/config/schemas/auth.d.ts +60 -0
  172. package/dist/services/config/schemas/auth.d.ts.map +1 -0
  173. package/dist/services/config/schemas/auth.js +18 -0
  174. package/dist/services/config/schemas/auth.js.map +1 -0
  175. package/dist/services/config/schemas/channels.d.ts +117 -0
  176. package/dist/services/config/schemas/channels.d.ts.map +1 -0
  177. package/dist/services/config/schemas/channels.js +22 -0
  178. package/dist/services/config/schemas/channels.js.map +1 -0
  179. package/dist/services/config/schemas/cron.d.ts +97 -0
  180. package/dist/services/config/schemas/cron.d.ts.map +1 -0
  181. package/dist/services/config/schemas/cron.js +18 -0
  182. package/dist/services/config/schemas/cron.js.map +1 -0
  183. package/dist/services/config/schemas/features.d.ts +43 -0
  184. package/dist/services/config/schemas/features.d.ts.map +1 -0
  185. package/dist/services/config/schemas/features.js +20 -0
  186. package/dist/services/config/schemas/features.js.map +1 -0
  187. package/dist/services/config/schemas/index.d.ts +24 -0
  188. package/dist/services/config/schemas/index.d.ts.map +1 -0
  189. package/dist/services/config/schemas/index.js +24 -0
  190. package/dist/services/config/schemas/index.js.map +1 -0
  191. package/dist/services/config/schemas/mcp.d.ts +31 -0
  192. package/dist/services/config/schemas/mcp.d.ts.map +1 -0
  193. package/dist/services/config/schemas/mcp.js +39 -0
  194. package/dist/services/config/schemas/mcp.js.map +1 -0
  195. package/dist/services/config/schemas/primitives.d.ts +13 -0
  196. package/dist/services/config/schemas/primitives.d.ts.map +1 -0
  197. package/dist/services/config/schemas/primitives.js +17 -0
  198. package/dist/services/config/schemas/primitives.js.map +1 -0
  199. package/dist/services/config/schemas/providers.d.ts +335 -0
  200. package/dist/services/config/schemas/providers.d.ts.map +1 -0
  201. package/dist/services/config/schemas/providers.js +27 -0
  202. package/dist/services/config/schemas/providers.js.map +1 -0
  203. package/dist/services/config/schemas/storage.d.ts +16 -0
  204. package/dist/services/config/schemas/storage.d.ts.map +1 -0
  205. package/dist/services/config/schemas/storage.js +9 -0
  206. package/dist/services/config/schemas/storage.js.map +1 -0
  207. package/dist/services/config/schemas/webhooks.d.ts +25 -0
  208. package/dist/services/config/schemas/webhooks.d.ts.map +1 -0
  209. package/dist/services/config/schemas/webhooks.js +12 -0
  210. package/dist/services/config/schemas/webhooks.js.map +1 -0
  211. package/dist/services/cron/index.d.ts +50 -0
  212. package/dist/services/cron/index.d.ts.map +1 -0
  213. package/dist/services/cron/index.js +460 -0
  214. package/dist/services/cron/index.js.map +1 -0
  215. package/dist/services/log/index.d.ts +14 -0
  216. package/dist/services/log/index.d.ts.map +1 -0
  217. package/dist/services/log/index.js +137 -0
  218. package/dist/services/log/index.js.map +1 -0
  219. package/dist/services/mcp-client/index.d.ts +37 -0
  220. package/dist/services/mcp-client/index.d.ts.map +1 -0
  221. package/dist/services/mcp-client/index.js +258 -0
  222. package/dist/services/mcp-client/index.js.map +1 -0
  223. package/dist/services/media/extract-document.d.ts +8 -0
  224. package/dist/services/media/extract-document.d.ts.map +1 -0
  225. package/dist/services/media/extract-document.js +85 -0
  226. package/dist/services/media/extract-document.js.map +1 -0
  227. package/dist/services/media/index.d.ts +21 -0
  228. package/dist/services/media/index.d.ts.map +1 -0
  229. package/dist/services/media/index.js +116 -0
  230. package/dist/services/media/index.js.map +1 -0
  231. package/dist/services/media/providers/anthropic.d.ts +6 -0
  232. package/dist/services/media/providers/anthropic.d.ts.map +1 -0
  233. package/dist/services/media/providers/anthropic.js +38 -0
  234. package/dist/services/media/providers/anthropic.js.map +1 -0
  235. package/dist/services/media/providers/index.d.ts +6 -0
  236. package/dist/services/media/providers/index.d.ts.map +1 -0
  237. package/dist/services/media/providers/index.js +15 -0
  238. package/dist/services/media/providers/index.js.map +1 -0
  239. package/dist/services/media/providers/openai.d.ts +6 -0
  240. package/dist/services/media/providers/openai.d.ts.map +1 -0
  241. package/dist/services/media/providers/openai.js +48 -0
  242. package/dist/services/media/providers/openai.js.map +1 -0
  243. package/dist/services/media/providers/provider.d.ts +5 -0
  244. package/dist/services/media/providers/provider.d.ts.map +1 -0
  245. package/dist/services/media/providers/provider.js +2 -0
  246. package/dist/services/media/providers/provider.js.map +1 -0
  247. package/dist/services/memory/chunker.d.ts +7 -0
  248. package/dist/services/memory/chunker.d.ts.map +1 -0
  249. package/dist/services/memory/chunker.js +46 -0
  250. package/dist/services/memory/chunker.js.map +1 -0
  251. package/dist/services/memory/context.d.ts +68 -0
  252. package/dist/services/memory/context.d.ts.map +1 -0
  253. package/dist/services/memory/context.js +223 -0
  254. package/dist/services/memory/context.js.map +1 -0
  255. package/dist/services/memory/embedding.d.ts +9 -0
  256. package/dist/services/memory/embedding.d.ts.map +1 -0
  257. package/dist/services/memory/embedding.js +49 -0
  258. package/dist/services/memory/embedding.js.map +1 -0
  259. package/dist/services/memory/index.d.ts +24 -0
  260. package/dist/services/memory/index.d.ts.map +1 -0
  261. package/dist/services/memory/index.js +140 -0
  262. package/dist/services/memory/index.js.map +1 -0
  263. package/dist/services/memory/session-indexer.d.ts +5 -0
  264. package/dist/services/memory/session-indexer.d.ts.map +1 -0
  265. package/dist/services/memory/session-indexer.js +62 -0
  266. package/dist/services/memory/session-indexer.js.map +1 -0
  267. package/dist/services/memory/sqlite-storage.d.ts +23 -0
  268. package/dist/services/memory/sqlite-storage.d.ts.map +1 -0
  269. package/dist/services/memory/sqlite-storage.js +75 -0
  270. package/dist/services/memory/sqlite-storage.js.map +1 -0
  271. package/dist/services/memory/types.d.ts +31 -0
  272. package/dist/services/memory/types.d.ts.map +1 -0
  273. package/dist/services/memory/types.js +2 -0
  274. package/dist/services/memory/types.js.map +1 -0
  275. package/dist/services/web/index.d.ts +9 -0
  276. package/dist/services/web/index.d.ts.map +1 -0
  277. package/dist/services/web/index.js +101 -0
  278. package/dist/services/web/index.js.map +1 -0
  279. package/dist/vitest.config.d.ts +3 -0
  280. package/dist/vitest.config.d.ts.map +1 -0
  281. package/dist/vitest.config.js +9 -0
  282. package/dist/vitest.config.js.map +1 -0
  283. package/package.json +2 -8
@@ -0,0 +1,139 @@
1
+ /**
2
+ * One-time migration: merge old timestamped cron sessions into persistent ones.
3
+ *
4
+ * Old format: cron:<taskId>:<timestamp> → sessions/cron-<taskId>-<timestamp>/cron-<taskId>-<timestamp>.jsonl
5
+ * New format: cron:<taskId> → sessions/cron-<taskId>/cron-<taskId>.jsonl
6
+ *
7
+ * Usage: npx tsx scripts/migrate-cron-sessions.ts [--dry-run]
8
+ */
9
+ import { promises as fs } from 'node:fs';
10
+ import path from 'node:path';
11
+ import os from 'node:os';
12
+ const DATA_DIR = process.env.VARGOS_DATA_DIR || path.join(os.homedir(), '.vargos');
13
+ const SESSIONS_DIR = path.join(DATA_DIR, 'sessions');
14
+ const DRY_RUN = process.argv.includes('--dry-run');
15
+ // Match old cron session dirs: cron-<taskId>-<timestamp>
16
+ // Task IDs look like: cron-1708300000-a1b2c
17
+ // So full dir name: cron-cron-1708300000-a1b2c-1708300000000
18
+ const CRON_TIMESTAMPED_RE = /^(cron-.+)-(\d{13,})$/;
19
+ async function main() {
20
+ console.log(`Sessions dir: ${SESSIONS_DIR}`);
21
+ console.log(`Mode: ${DRY_RUN ? 'DRY RUN' : 'LIVE'}\n`);
22
+ let entries;
23
+ try {
24
+ entries = await fs.readdir(SESSIONS_DIR);
25
+ }
26
+ catch {
27
+ console.log('No sessions directory found. Nothing to migrate.');
28
+ return;
29
+ }
30
+ // Group old cron dirs by task ID
31
+ const groups = new Map(); // taskId → [full dir names]
32
+ for (const entry of entries) {
33
+ const match = entry.match(CRON_TIMESTAMPED_RE);
34
+ if (!match)
35
+ continue;
36
+ // Verify it's actually a cron session by checking the file inside
37
+ const jsonlPath = path.join(SESSIONS_DIR, entry, `${entry}.jsonl`);
38
+ try {
39
+ const content = await fs.readFile(jsonlPath, 'utf-8');
40
+ const firstLine = content.split('\n')[0];
41
+ if (!firstLine)
42
+ continue;
43
+ const meta = JSON.parse(firstLine);
44
+ if (!meta.sessionKey?.startsWith('cron:'))
45
+ continue;
46
+ }
47
+ catch {
48
+ continue;
49
+ }
50
+ const baseDir = match[1]; // e.g. "cron-cron-abc123-x7k"
51
+ if (!groups.has(baseDir))
52
+ groups.set(baseDir, []);
53
+ groups.get(baseDir).push(entry);
54
+ }
55
+ if (groups.size === 0) {
56
+ console.log('No old cron sessions found. Nothing to migrate.');
57
+ return;
58
+ }
59
+ console.log(`Found ${groups.size} cron task(s) with old timestamped sessions:\n`);
60
+ let totalMerged = 0;
61
+ let totalDeleted = 0;
62
+ for (const [baseDir, dirs] of groups) {
63
+ // Sort by timestamp (oldest first) for chronological merge
64
+ dirs.sort((a, b) => {
65
+ const tsA = parseInt(a.match(CRON_TIMESTAMPED_RE)[2]);
66
+ const tsB = parseInt(b.match(CRON_TIMESTAMPED_RE)[2]);
67
+ return tsA - tsB;
68
+ });
69
+ console.log(`Task: ${baseDir} (${dirs.length} old session(s))`);
70
+ // Collect all messages from old sessions
71
+ const allMessages = [];
72
+ let earliestCreated = '';
73
+ let latestUpdated = '';
74
+ for (const dir of dirs) {
75
+ const jsonlPath = path.join(SESSIONS_DIR, dir, `${dir}.jsonl`);
76
+ const content = await fs.readFile(jsonlPath, 'utf-8');
77
+ const lines = content.trim().split('\n').filter(Boolean);
78
+ if (lines.length === 0)
79
+ continue;
80
+ const meta = JSON.parse(lines[0]);
81
+ if (!earliestCreated || meta.createdAt < earliestCreated)
82
+ earliestCreated = meta.createdAt;
83
+ if (!latestUpdated || meta.updatedAt > latestUpdated)
84
+ latestUpdated = meta.updatedAt;
85
+ // Collect message lines (skip header)
86
+ for (let i = 1; i < lines.length; i++) {
87
+ allMessages.push(lines[i]);
88
+ }
89
+ }
90
+ // Build the new persistent session key from the old one
91
+ // Old sessionKey: "cron:<taskId>:<timestamp>" → extract taskId
92
+ const samplePath = path.join(SESSIONS_DIR, dirs[0], `${dirs[0]}.jsonl`);
93
+ const sampleContent = await fs.readFile(samplePath, 'utf-8');
94
+ const sampleMeta = JSON.parse(sampleContent.split('\n')[0]);
95
+ const parts = sampleMeta.sessionKey.split(':');
96
+ // cron:<taskId>:<timestamp> → taskId is parts[1]
97
+ const taskId = parts[1];
98
+ const newSessionKey = `cron:${taskId}`;
99
+ // Build new session file
100
+ const newMeta = {
101
+ sessionKey: newSessionKey,
102
+ kind: 'cron',
103
+ createdAt: earliestCreated,
104
+ updatedAt: latestUpdated,
105
+ metadata: sampleMeta.metadata ?? { taskId },
106
+ };
107
+ const newContent = [JSON.stringify(newMeta), ...allMessages].join('\n') + '\n';
108
+ const newDir = path.join(SESSIONS_DIR, baseDir);
109
+ const newFile = path.join(newDir, `${baseDir}.jsonl`);
110
+ console.log(` → Merging ${allMessages.length} messages into ${newSessionKey}`);
111
+ if (!DRY_RUN) {
112
+ // Check if target already exists (from a previous partial migration)
113
+ const targetExists = await fs.stat(newFile).then(() => true).catch(() => false);
114
+ if (targetExists) {
115
+ // Append messages to existing
116
+ const existing = await fs.readFile(newFile, 'utf-8');
117
+ const existingLines = existing.trim().split('\n').filter(Boolean);
118
+ const mergedContent = [existingLines[0], ...existingLines.slice(1), ...allMessages].join('\n') + '\n';
119
+ await fs.writeFile(newFile, mergedContent, 'utf-8');
120
+ }
121
+ else {
122
+ await fs.mkdir(newDir, { recursive: true });
123
+ await fs.writeFile(newFile, newContent, 'utf-8');
124
+ }
125
+ // Delete old dirs
126
+ for (const dir of dirs) {
127
+ await fs.rm(path.join(SESSIONS_DIR, dir), { recursive: true, force: true });
128
+ }
129
+ totalDeleted += dirs.length;
130
+ }
131
+ totalMerged++;
132
+ }
133
+ console.log(`\n${DRY_RUN ? 'Would merge' : 'Merged'}: ${totalMerged} task(s), deleted ${totalDeleted} old session dir(s)`);
134
+ }
135
+ main().catch(err => {
136
+ console.error('Migration failed:', err);
137
+ process.exit(1);
138
+ });
139
+ //# sourceMappingURL=migrate-cron-sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-cron-sessions.js","sourceRoot":"","sources":["../../scripts/migrate-cron-sessions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../scripts/seed.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { getDataPaths } from '../lib/paths.js';
2
+ import { seedDataDir } from '../lib/templates.js';
3
+ await seedDataDir(getDataPaths().dataDir, console);
4
+ //# sourceMappingURL=seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../scripts/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Chat directives parser — extracts /think and /verbose prefixes from user messages.
3
+ *
4
+ * Directives must appear at the start of the message or after whitespace,
5
+ * not inside URLs or as partial word matches.
6
+ */
7
+ import type { ThinkingLevel } from '@mariozechner/pi-agent-core';
8
+ export interface ParsedDirectives {
9
+ /** Message with all recognized directives stripped */
10
+ cleaned: string;
11
+ thinkingLevel?: ThinkingLevel;
12
+ }
13
+ export declare function parseDirectives(text: string): ParsedDirectives;
14
+ //# sourceMappingURL=directives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../../services/agent/directives.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AASD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAwB9D"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Chat directives parser — extracts /think and /verbose prefixes from user messages.
3
+ *
4
+ * Directives must appear at the start of the message or after whitespace,
5
+ * not inside URLs or as partial word matches.
6
+ */
7
+ // Mirrors ThinkingLevelSchema.options from services/config/schemas/primitives.ts.
8
+ // Kept local to avoid lib/ → services/ import boundary violation.
9
+ const THINK_LEVELS = new Set(['off', 'minimal', 'low', 'medium', 'high', 'xhigh']);
10
+ // Matches /think or /t with optional colon, then a level word
11
+ const THINK_RE = /(?<![:/\w])\/(?:think|t)[:=\s]+(\w+)/gi;
12
+ export function parseDirectives(text) {
13
+ let cleaned = text;
14
+ let thinkingLevel;
15
+ // Process /think directives — last match wins
16
+ let match;
17
+ THINK_RE.lastIndex = 0;
18
+ while ((match = THINK_RE.exec(text)) !== null) {
19
+ const level = match[1].toLowerCase();
20
+ if (THINK_LEVELS.has(level)) {
21
+ thinkingLevel = level;
22
+ }
23
+ }
24
+ // Strip matched directives from the cleaned string
25
+ if (thinkingLevel !== undefined) {
26
+ THINK_RE.lastIndex = 0;
27
+ cleaned = cleaned.replace(THINK_RE, '');
28
+ }
29
+ cleaned = cleaned.trim();
30
+ return { cleaned, thinkingLevel };
31
+ }
32
+ //# sourceMappingURL=directives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directives.js","sourceRoot":"","sources":["../../../services/agent/directives.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,kFAAkF;AAClF,kEAAkE;AAClE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE3F,8DAA8D;AAC9D,MAAM,QAAQ,GAAG,wCAAwC,CAAC;AAE1D,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,aAAwC,CAAC;IAE7C,8CAA8C;IAC9C,IAAI,KAA6B,CAAC;IAElC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;IACvB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,aAAa,GAAG,KAAsB,CAAC;QACzC,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAEzB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Agent — PiAgent-powered runtime
3
+ *
4
+ * Features:
5
+ * - PiAgent session persistence
6
+ * - PiAgent ResourceLoader for skills/prompts
7
+ * - Debug mode for inspecting tools, prompts, history
8
+ * - Streaming events passthrough to bus (agent.onDelta, agent.onTool, agent.onCompleted)
9
+ */
10
+ import type { Bus } from '../../gateway/bus.js';
11
+ import type { EventMap } from '../../gateway/events.js';
12
+ import type { AppConfig } from '../../services/config/index.js';
13
+ import type { AgentDeps } from './schema.js';
14
+ import { SettingsManager, AuthStorage, ModelRegistry, DefaultResourceLoader, type AgentSession, type ToolDefinition } from '@mariozechner/pi-coding-agent';
15
+ export declare class AgentService {
16
+ protected bus: Bus;
17
+ protected config: AppConfig;
18
+ protected sessions: Map<string, AgentSession>;
19
+ private activeRuns;
20
+ protected agentDir: string;
21
+ protected authStorage: AuthStorage;
22
+ protected modelRegistry: ModelRegistry;
23
+ protected settings: SettingsManager;
24
+ constructor(deps: AgentDeps);
25
+ /**
26
+ * Persist retry settings to disk during boot
27
+ */
28
+ start(): Promise<void>;
29
+ /**
30
+ * agent.execute — Run a task
31
+ *
32
+ * Note: sessionKey is declared optional here because it's auto-injected by
33
+ * wrapEventAsToolDefinition() when the agent calls this as a tool. Direct callers
34
+ * (channels, cron, webhooks, TCP) still provide sessionKey via EventMap.
35
+ *
36
+ * Schema for bus event is different than runtime types AgentExecuteParams.
37
+ * e.g. metadata is not injected here on purpose.
38
+ */
39
+ execute(params: EventMap['agent.execute']['params']): Promise<EventMap['agent.execute']['result']>;
40
+ /**
41
+ * agent.appendMessage — Append message to session JSONL without executing agent.
42
+ * Used for non-whitelisted messages (skipAgent=true) to record in history silently.
43
+ * Internal only — not exposed as an agent tool.
44
+ */
45
+ appendMessage(params: EventMap['agent.appendMessage']['params']): Promise<void>;
46
+ /**
47
+ * agent.status — Return currently active agent session keys.
48
+ */
49
+ status(_params: EventMap['agent.status']['params']): Promise<EventMap['agent.status']['result']>;
50
+ /**
51
+ * Get or create AgentSession for sessionKey.
52
+ */
53
+ protected getOrCreateSession(sessionKey: string, metadata?: EventMap['agent.execute']['params']['metadata']): Promise<AgentSession>;
54
+ /**
55
+ * Subscribe to PiAgent sessionsubscription - emit to bus for streaming + debug logging.
56
+ */
57
+ protected subscribeToSessionEvents(session: AgentSession, sessionKey: string, _metadata?: EventMap['agent.execute']['params']['metadata']): void;
58
+ /**
59
+ * Create ResourceLoader. PiAgent's DefaultResourceLoader handles skills, themes, and
60
+ * prompt templates. We override systemPrompt with our Vargos bootstrap files.
61
+ */
62
+ protected createResourceLoader(systemPromptOverride?: string, cwd?: string): Promise<DefaultResourceLoader>;
63
+ /**
64
+ * Load persona for the given sessionKey if it maps to a configured channel. Subagent
65
+ * sessionKeys naturally inherit because parseSessionKey strips the `:subagent:` suffix.
66
+ * Cron / CLI / other types return null (no persona override applied).
67
+ */
68
+ private loadPersonaIfChannel;
69
+ /**
70
+ * Build system prompt by merging bootstrap files from workspace and optional cwd, then
71
+ * appending the channel persona body if provided.
72
+ */
73
+ private getSystemPrompt;
74
+ /**
75
+ * Load custom tools from bus callable events. When `allowedPatterns` is provided
76
+ * (from a channel persona), filter the tool list down to names matching at least
77
+ * one glob pattern. Empty/undefined patterns = all tools allowed.
78
+ */
79
+ protected getCustomTools(sessionKey: string, allowedPatterns?: string[]): Promise<ToolDefinition[]>;
80
+ /**
81
+ * Validate model override if provided.
82
+ */
83
+ private validateModel;
84
+ /**
85
+ * Build context variables for prompt interpolation from sessionKey and metadata.
86
+ */
87
+ private buildPromptContext;
88
+ /**
89
+ * Collect directory paths in order: workspace first, then cwd if different.
90
+ */
91
+ private collectBootstrapDirs;
92
+ /**
93
+ * Extract the final assistant message: text content + error (when stopReason === 'error').
94
+ * Pi SDK records inference failures (e.g. missing API key) as assistant messages with
95
+ * empty content and `errorMessage` populated, instead of throwing — without inspecting
96
+ * `stopReason`/`errorMessage` here, those would surface as silent empty completions.
97
+ */
98
+ private extractFinalAssistant;
99
+ stop(): void;
100
+ }
101
+ export declare function boot(bus: Bus): Promise<{
102
+ stop(): void;
103
+ }>;
104
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../services/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAQ,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAMhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,OAAO,EAGL,eAAe,EACf,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAiBvC,qBAAa,YAAY;IACvB,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IACnB,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,QAAQ,4BAAmC;IACrD,OAAO,CAAC,UAAU,CAAqB;IAEvC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACnC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACvC,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC;gBAExB,IAAI,EAAE,SAAS;IAuC3B;;OAEG;IACG,KAAK;IAyBX;;;;;;;;;OASG;IAkBG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;IA8CxG;;;;OAIG;IAEG,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrF;;OAEG;IAKG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC;IAItG;;OAEG;cACa,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAiDzI;;OAEG;IACH,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI;IAoEhJ;;;OAGG;cACa,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAsBjH;;;;OAIG;YACW,oBAAoB;IAOlC;;;OAGG;YACW,eAAe;IAiD7B;;;;OAIG;cACa,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAMzG;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IA+B7B,IAAI,IAAI,IAAI;CAMb;AAID,wBAAsB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,IAAI,IAAI,IAAI,CAAA;CAAE,CAAC,CAM9D"}