@chozzz/vargos 2.0.14 → 2.2.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 (214) hide show
  1. package/README.md +1 -1
  2. package/dist/.templates/agents/subagent.md +36 -0
  3. package/dist/.templates/{vargos/workspace → workspace}/AGENTS.md +2 -18
  4. package/dist/boot.d.ts +2 -0
  5. package/dist/boot.d.ts.map +1 -0
  6. package/dist/boot.js +111 -0
  7. package/dist/boot.js.map +1 -0
  8. package/dist/cli/channels.d.ts +27 -0
  9. package/dist/cli/channels.d.ts.map +1 -0
  10. package/dist/cli/channels.js +116 -0
  11. package/dist/cli/channels.js.map +1 -0
  12. package/dist/cli/onboard.d.ts.map +1 -1
  13. package/dist/cli/onboard.js +181 -109
  14. package/dist/cli/onboard.js.map +1 -1
  15. package/dist/cli.js +92 -3
  16. package/dist/cli.js.map +1 -1
  17. package/dist/edge/webhooks/index.js +1 -1
  18. package/dist/edge/webhooks/index.js.map +1 -1
  19. package/dist/gateway/bus.d.ts +2 -0
  20. package/dist/gateway/bus.d.ts.map +1 -1
  21. package/dist/gateway/emitter.d.ts +10 -0
  22. package/dist/gateway/emitter.d.ts.map +1 -1
  23. package/dist/gateway/emitter.js +48 -3
  24. package/dist/gateway/emitter.js.map +1 -1
  25. package/dist/gateway/events.d.ts +26 -55
  26. package/dist/gateway/events.d.ts.map +1 -1
  27. package/dist/gateway/tcp-server.js +3 -0
  28. package/dist/gateway/tcp-server.js.map +1 -1
  29. package/dist/index.js +44 -69
  30. package/dist/index.js.map +1 -1
  31. package/dist/lib/{glob.d.ts → glob-match.d.ts} +1 -1
  32. package/dist/lib/glob-match.d.ts.map +1 -0
  33. package/dist/lib/{glob.js → glob-match.js} +1 -1
  34. package/dist/lib/glob-match.js.map +1 -0
  35. package/dist/lib/media.js +1 -1
  36. package/dist/lib/media.js.map +1 -1
  37. package/dist/lib/mime.d.ts +10 -3
  38. package/dist/lib/mime.d.ts.map +1 -1
  39. package/dist/lib/mime.js +48 -67
  40. package/dist/lib/mime.js.map +1 -1
  41. package/dist/lib/session-key.d.ts +21 -0
  42. package/dist/lib/session-key.d.ts.map +1 -0
  43. package/dist/lib/session-key.js +44 -0
  44. package/dist/lib/session-key.js.map +1 -0
  45. package/dist/lib/templates.d.ts +2 -2
  46. package/dist/lib/templates.d.ts.map +1 -1
  47. package/dist/lib/templates.js +7 -14
  48. package/dist/lib/templates.js.map +1 -1
  49. package/dist/scripts/migrate-templates.d.ts +14 -0
  50. package/dist/scripts/migrate-templates.d.ts.map +1 -0
  51. package/dist/scripts/migrate-templates.js +98 -0
  52. package/dist/scripts/migrate-templates.js.map +1 -0
  53. package/dist/{lib → services/agent}/error-store.d.ts +1 -1
  54. package/dist/services/agent/error-store.d.ts.map +1 -0
  55. package/dist/{lib → services/agent}/error-store.js +2 -2
  56. package/dist/services/agent/error-store.js.map +1 -0
  57. package/dist/services/agent/index.d.ts +19 -20
  58. package/dist/services/agent/index.d.ts.map +1 -1
  59. package/dist/services/agent/index.js +70 -93
  60. package/dist/services/agent/index.js.map +1 -1
  61. package/dist/services/agent/persona.d.ts +6 -0
  62. package/dist/services/agent/persona.d.ts.map +1 -1
  63. package/dist/services/agent/persona.js +19 -0
  64. package/dist/services/agent/persona.js.map +1 -1
  65. package/dist/services/agent/prompt-interpolate.d.ts +3 -3
  66. package/dist/services/agent/prompt-interpolate.js +10 -15
  67. package/dist/services/agent/prompt-interpolate.js.map +1 -1
  68. package/dist/services/agent/skills.d.ts.map +1 -0
  69. package/dist/services/agent/skills.js.map +1 -0
  70. package/dist/services/agent/tools.d.ts +11 -4
  71. package/dist/services/agent/tools.d.ts.map +1 -1
  72. package/dist/services/agent/tools.js +30 -8
  73. package/dist/services/agent/tools.js.map +1 -1
  74. package/dist/services/agent/{schema.d.ts → types.d.ts} +1 -1
  75. package/dist/services/agent/types.d.ts.map +1 -0
  76. package/dist/services/agent/{schema.js → types.js} +1 -1
  77. package/dist/services/agent/types.js.map +1 -0
  78. package/dist/services/channels/base-adapter.d.ts +22 -7
  79. package/dist/services/channels/base-adapter.d.ts.map +1 -1
  80. package/dist/services/channels/base-adapter.js +56 -73
  81. package/dist/services/channels/base-adapter.js.map +1 -1
  82. package/dist/services/channels/debounce.d.ts +1 -1
  83. package/dist/services/channels/debounce.d.ts.map +1 -1
  84. package/dist/services/channels/index.d.ts +1 -1
  85. package/dist/services/channels/index.d.ts.map +1 -1
  86. package/dist/services/channels/index.js +64 -25
  87. package/dist/services/channels/index.js.map +1 -1
  88. package/dist/services/channels/{media-extract.d.ts → media-paths.d.ts} +1 -1
  89. package/dist/services/channels/media-paths.d.ts.map +1 -0
  90. package/dist/services/channels/{media-extract.js → media-paths.js} +2 -2
  91. package/dist/services/channels/media-paths.js.map +1 -0
  92. package/dist/services/channels/pipeline.d.ts +2 -7
  93. package/dist/services/channels/pipeline.d.ts.map +1 -1
  94. package/dist/services/channels/pipeline.js +29 -48
  95. package/dist/services/channels/pipeline.js.map +1 -1
  96. package/dist/services/channels/provider-loader.d.ts +1 -1
  97. package/dist/services/channels/provider-loader.d.ts.map +1 -1
  98. package/dist/services/channels/providers/telegram/adapter.d.ts +5 -5
  99. package/dist/services/channels/providers/telegram/adapter.d.ts.map +1 -1
  100. package/dist/services/channels/providers/telegram/adapter.js +4 -6
  101. package/dist/services/channels/providers/telegram/adapter.js.map +1 -1
  102. package/dist/services/channels/providers/telegram/index.d.ts +1 -1
  103. package/dist/services/channels/providers/telegram/index.d.ts.map +1 -1
  104. package/dist/services/channels/providers/telegram/index.js +1 -1
  105. package/dist/services/channels/providers/telegram/index.js.map +1 -1
  106. package/dist/services/channels/providers/telegram/normalizer.d.ts +1 -1
  107. package/dist/services/channels/providers/telegram/normalizer.d.ts.map +1 -1
  108. package/dist/services/channels/providers/telegram/normalizer.js +9 -5
  109. package/dist/services/channels/providers/telegram/normalizer.js.map +1 -1
  110. package/dist/services/channels/providers/whatsapp/adapter.d.ts +6 -9
  111. package/dist/services/channels/providers/whatsapp/adapter.d.ts.map +1 -1
  112. package/dist/services/channels/providers/whatsapp/adapter.js +43 -59
  113. package/dist/services/channels/providers/whatsapp/adapter.js.map +1 -1
  114. package/dist/services/channels/providers/whatsapp/index.d.ts +1 -1
  115. package/dist/services/channels/providers/whatsapp/index.d.ts.map +1 -1
  116. package/dist/services/channels/providers/whatsapp/index.js +1 -1
  117. package/dist/services/channels/providers/whatsapp/index.js.map +1 -1
  118. package/dist/services/channels/providers/whatsapp/normalizer.d.ts +2 -1
  119. package/dist/services/channels/providers/whatsapp/normalizer.d.ts.map +1 -1
  120. package/dist/services/channels/providers/whatsapp/normalizer.js +17 -12
  121. package/dist/services/channels/providers/whatsapp/normalizer.js.map +1 -1
  122. package/dist/services/channels/providers/whatsapp/session.d.ts.map +1 -1
  123. package/dist/services/channels/providers/whatsapp/session.js +15 -7
  124. package/dist/services/channels/providers/whatsapp/session.js.map +1 -1
  125. package/dist/services/channels/providers/whatsapp/types.d.ts +1 -0
  126. package/dist/services/channels/providers/whatsapp/types.d.ts.map +1 -1
  127. package/dist/services/channels/types.d.ts +68 -3
  128. package/dist/services/channels/types.d.ts.map +1 -1
  129. package/dist/services/channels/types.js +4 -0
  130. package/dist/services/channels/types.js.map +1 -1
  131. package/dist/services/config/index.d.ts +3 -3
  132. package/dist/services/config/schemas/auth.d.ts +2 -2
  133. package/dist/services/config/schemas/channels.d.ts +2 -0
  134. package/dist/services/config/schemas/channels.d.ts.map +1 -1
  135. package/dist/services/config/schemas/channels.js +2 -0
  136. package/dist/services/config/schemas/channels.js.map +1 -1
  137. package/dist/services/config/schemas/index.d.ts +3 -3
  138. package/dist/services/config/schemas/index.d.ts.map +1 -1
  139. package/dist/services/config/schemas/index.js +2 -2
  140. package/dist/services/config/schemas/index.js.map +1 -1
  141. package/dist/services/config/schemas/primitives.d.ts +0 -2
  142. package/dist/services/config/schemas/primitives.d.ts.map +1 -1
  143. package/dist/services/config/schemas/primitives.js +0 -1
  144. package/dist/services/config/schemas/primitives.js.map +1 -1
  145. package/dist/services/cron/heartbeat.d.ts.map +1 -0
  146. package/dist/services/cron/heartbeat.js.map +1 -0
  147. package/dist/services/cron/index.d.ts.map +1 -1
  148. package/dist/services/cron/index.js +10 -5
  149. package/dist/services/cron/index.js.map +1 -1
  150. package/dist/services/media/index.d.ts +1 -0
  151. package/dist/services/media/index.d.ts.map +1 -1
  152. package/dist/services/media/index.js +61 -5
  153. package/dist/services/media/index.js.map +1 -1
  154. package/dist/services/media/providers/anthropic.js +1 -1
  155. package/dist/services/media/providers/anthropic.js.map +1 -1
  156. package/dist/services/media/{extract-document.d.ts → providers/document.d.ts} +1 -1
  157. package/dist/services/media/providers/document.d.ts.map +1 -0
  158. package/dist/services/media/{extract-document.js → providers/document.js} +4 -4
  159. package/dist/services/media/providers/document.js.map +1 -0
  160. package/dist/services/media/providers/openai.d.ts.map +1 -1
  161. package/dist/services/media/providers/openai.js +5 -1
  162. package/dist/services/media/providers/openai.js.map +1 -1
  163. package/package.json +16 -16
  164. package/dist/lib/async-handlers.d.ts +0 -13
  165. package/dist/lib/async-handlers.d.ts.map +0 -1
  166. package/dist/lib/async-handlers.js +0 -6
  167. package/dist/lib/async-handlers.js.map +0 -1
  168. package/dist/lib/error-store.d.ts.map +0 -1
  169. package/dist/lib/error-store.js.map +0 -1
  170. package/dist/lib/glob.d.ts.map +0 -1
  171. package/dist/lib/glob.js.map +0 -1
  172. package/dist/lib/heartbeat.d.ts.map +0 -1
  173. package/dist/lib/heartbeat.js.map +0 -1
  174. package/dist/lib/media-transcribe.d.ts +0 -57
  175. package/dist/lib/media-transcribe.d.ts.map +0 -1
  176. package/dist/lib/media-transcribe.js +0 -98
  177. package/dist/lib/media-transcribe.js.map +0 -1
  178. package/dist/lib/safe-async.d.ts +0 -27
  179. package/dist/lib/safe-async.d.ts.map +0 -1
  180. package/dist/lib/safe-async.js +0 -38
  181. package/dist/lib/safe-async.js.map +0 -1
  182. package/dist/lib/skills.d.ts.map +0 -1
  183. package/dist/lib/skills.js.map +0 -1
  184. package/dist/lib/subagent.d.ts +0 -14
  185. package/dist/lib/subagent.d.ts.map +0 -1
  186. package/dist/lib/subagent.js +0 -25
  187. package/dist/lib/subagent.js.map +0 -1
  188. package/dist/services/agent/schema.d.ts.map +0 -1
  189. package/dist/services/agent/schema.js.map +0 -1
  190. package/dist/services/channels/contracts.d.ts +0 -75
  191. package/dist/services/channels/contracts.d.ts.map +0 -1
  192. package/dist/services/channels/contracts.js +0 -6
  193. package/dist/services/channels/contracts.js.map +0 -1
  194. package/dist/services/channels/media-extract.d.ts.map +0 -1
  195. package/dist/services/channels/media-extract.js.map +0 -1
  196. package/dist/services/media/extract-document.d.ts.map +0 -1
  197. package/dist/services/media/extract-document.js.map +0 -1
  198. /package/dist/.templates/{vargos/agent → agent}/extensions/.gitkeep +0 -0
  199. /package/dist/.templates/{vargos/agent → agent}/mcp.json +0 -0
  200. /package/dist/.templates/{vargos/agent → agent}/skills/skill-creator/SKILL.md +0 -0
  201. /package/dist/.templates/{vargos/agent → agent}/skills/token-capture/SKILL.md +0 -0
  202. /package/dist/.templates/{vargos/agent → agent}/skills/token-capture/scripts/capture-bearer-token.sh +0 -0
  203. /package/dist/.templates/{vargos/agents → agents}/README +0 -0
  204. /package/dist/.templates/{vargos/agents → agents}/default.md +0 -0
  205. /package/dist/.templates/{vargos/config.json → config.json} +0 -0
  206. /package/dist/.templates/{vargos/cron → cron}/heartbeat.md +0 -0
  207. /package/dist/.templates/{vargos/workspace → workspace}/HEARTBEAT.md +0 -0
  208. /package/dist/.templates/{vargos/workspace → workspace}/MEMORY.md +0 -0
  209. /package/dist/.templates/{vargos/workspace → workspace}/SOUL.md +0 -0
  210. /package/dist/.templates/{vargos/workspace → workspace}/TOOLS.md +0 -0
  211. /package/dist/{lib → services/agent}/skills.d.ts +0 -0
  212. /package/dist/{lib → services/agent}/skills.js +0 -0
  213. /package/dist/{lib → services/cron}/heartbeat.d.ts +0 -0
  214. /package/dist/{lib → services/cron}/heartbeat.js +0 -0
package/dist/lib/mime.js CHANGED
@@ -1,71 +1,52 @@
1
1
  /**
2
- * MIME type detection from file buffer
3
- * Simple implementation based on magic numbers
2
+ * MIME file-extension maps and helpers. Pure data — no I/O, no domain imports.
4
3
  */
5
- export async function detectMimeType(buffer) {
6
- // Check magic numbers
7
- if (buffer.length < 4) {
8
- return 'application/octet-stream';
9
- }
10
- const hex = buffer.toString('hex', 0, 4);
11
- // PNG
12
- if (hex.startsWith('89504e47')) {
13
- return 'image/png';
14
- }
15
- // JPEG
16
- if (hex.startsWith('ffd8ff')) {
17
- return 'image/jpeg';
18
- }
19
- // GIF
20
- if (hex.startsWith('47494638')) {
21
- return 'image/gif';
22
- }
23
- // WebP
24
- if (hex.startsWith('52494646') && buffer.length >= 12) {
25
- const webpHex = buffer.toString('hex', 8, 12);
26
- if (webpHex.startsWith('57454250')) {
27
- return 'image/webp';
28
- }
29
- }
30
- // BMP
31
- if (hex.startsWith('424d')) {
32
- return 'image/bmp';
33
- }
34
- // SVG (check content)
35
- const contentStart = buffer.toString('utf-8', 0, Math.min(100, buffer.length));
36
- if (contentStart.includes('<?xml') && contentStart.includes('<svg')) {
37
- return 'image/svg+xml';
38
- }
39
- if (contentStart.includes('<svg')) {
40
- return 'image/svg+xml';
41
- }
42
- // Text files
43
- const textContent = buffer.toString('utf-8', 0, Math.min(100, buffer.length));
44
- if (textContent.includes('<?xml')) {
45
- return 'application/xml';
46
- }
47
- if (textContent.includes('<!DOCTYPE html') || textContent.includes('<html')) {
48
- return 'text/html';
49
- }
50
- if (textContent.includes('{') || textContent.includes('[')) {
51
- // Might be JSON
52
- try {
53
- JSON.parse(textContent.slice(0, textContent.indexOf('\n')) || textContent);
54
- return 'application/json';
55
- }
56
- catch {
57
- // Not valid JSON
58
- }
59
- }
60
- // Check if mostly printable (text)
61
- const printable = buffer.slice(0, Math.min(100, buffer.length)).toString('utf-8');
62
- const nonPrintable = [...printable].filter(c => {
63
- const code = c.charCodeAt(0);
64
- return code < 32 && code !== 9 && code !== 10 && code !== 13;
65
- }).length;
66
- if (nonPrintable === 0) {
67
- return 'text/plain';
68
- }
69
- return 'application/octet-stream';
4
+ // Supported audio extensions for Whisper API
5
+ export const WHISPER_EXTS = new Set(['.flac', '.m4a', '.mp3', '.mp4', '.mpeg', '.mpga', '.oga', '.ogg', '.wav', '.webm']);
6
+ // MIME type to audio extension mapping
7
+ export const MIME_TO_AUDIO_EXT = {
8
+ 'audio/ogg': '.ogg', 'audio/mpeg': '.mp3', 'audio/mp4': '.m4a',
9
+ 'audio/wav': '.wav', 'audio/webm': '.webm', 'audio/flac': '.flac',
10
+ 'audio/x-m4a': '.m4a', 'audio/mp3': '.mp3',
11
+ };
12
+ // MIME type to file extension mapping (includes images and video)
13
+ export const MIME_EXT = {
14
+ 'image/jpeg': '.jpg',
15
+ 'image/png': '.png',
16
+ 'image/gif': '.gif',
17
+ 'image/webp': '.webp',
18
+ 'image/bmp': '.bmp',
19
+ 'image/svg+xml': '.svg',
20
+ 'audio/ogg': '.ogg',
21
+ 'audio/mpeg': '.mp3',
22
+ 'audio/mp4': '.m4a',
23
+ 'video/mp4': '.mp4',
24
+ 'application/pdf': '.pdf',
25
+ };
26
+ // Media type to default MIME type mapping (for fallback when MIME is unknown)
27
+ export const MEDIA_TYPE_MIME_DEFAULTS = {
28
+ image: 'image/jpeg',
29
+ audio: 'audio/ogg',
30
+ video: 'video/mp4',
31
+ document: 'application/pdf',
32
+ };
33
+ // Extension to MIME type mapping (inverse of MIME_EXT, includes common variations)
34
+ export const EXT_TO_MIME = {
35
+ '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg',
36
+ '.png': 'image/png', '.gif': 'image/gif', '.webp': 'image/webp',
37
+ '.mp4': 'video/mp4', '.mp3': 'audio/mpeg',
38
+ '.ogg': 'audio/ogg', '.m4a': 'audio/mp4',
39
+ '.pdf': 'application/pdf',
40
+ '.txt': 'text/plain', '.md': 'text/markdown',
41
+ '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
42
+ '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
43
+ };
44
+ /** Get file extension for a MIME type. */
45
+ export function extFromMime(mimeType) {
46
+ return MIME_EXT[mimeType] || '.bin';
47
+ }
48
+ /** Get MIME type from a file extension. */
49
+ export function getMimeTypeFromExt(ext) {
50
+ return EXT_TO_MIME[ext.toLowerCase()] || 'image/jpeg';
70
51
  }
71
52
  //# sourceMappingURL=mime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mime.js","sourceRoot":"","sources":["../../lib/mime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mime.js","sourceRoot":"","sources":["../../lib/mime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1H,uCAAuC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAC9D,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO;IACjE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAC3C,CAAC;AAEF,kEAAkE;AAClE,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC9C,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;IACnB,iBAAiB,EAAE,MAAM;CAC1B,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC9D,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,iBAAiB;CAC5B,CAAC;AAEF,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY;IAC3C,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY;IAC/D,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY;IACzC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;IACxC,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe;IAC5C,OAAO,EAAE,yEAAyE;IAClF,OAAO,EAAE,mEAAmE;CAC7E,CAAC;AAEF,0CAA0C;AAC1C,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;AACtC,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,YAAY,CAAC;AACxD,CAAC"}
@@ -0,0 +1,21 @@
1
+ export declare function cronSessionKey(taskId: string): string;
2
+ export declare function webhookSessionKey(hookId: string): string;
3
+ /**
4
+ * Generate a unique subagent session key from the parent key.
5
+ * Appends `:subagent:<shortId>` so each delegation gets its own session,
6
+ * enabling parallel subagents without collision.
7
+ */
8
+ export declare function subagentSessionKey(parentKey: string): string;
9
+ /** Check if a sessionKey belongs to any subagent (any depth). */
10
+ export declare function isSubagentSession(key: string): boolean;
11
+ /** Extract the root parent sessionKey by stripping all subagent suffixes. */
12
+ export declare function rootSessionKey(key: string): string;
13
+ export declare function parseSessionKey(key: string): {
14
+ type: string;
15
+ id: string;
16
+ };
17
+ export declare function parseChannelTarget(target: string): {
18
+ channel: string;
19
+ userId: string;
20
+ } | null;
21
+ //# sourceMappingURL=session-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-key.d.ts","sourceRoot":"","sources":["../../lib/session-key.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGlD;AASD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAGzE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAG7F"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Pure session key helpers — no domain dependencies.
3
+ */
4
+ import { randomBytes } from 'node:crypto';
5
+ export function cronSessionKey(taskId) {
6
+ return `cron:${taskId}:${new Date().toISOString().slice(0, 10)}`;
7
+ }
8
+ export function webhookSessionKey(hookId) {
9
+ return `webhook:${hookId}:${Date.now()}`;
10
+ }
11
+ /**
12
+ * Generate a unique subagent session key from the parent key.
13
+ * Appends `:subagent:<shortId>` so each delegation gets its own session,
14
+ * enabling parallel subagents without collision.
15
+ */
16
+ export function subagentSessionKey(parentKey) {
17
+ const shortId = randomBytes(4).toString('hex');
18
+ return `${parentKey}:subagent:${shortId}`;
19
+ }
20
+ /** Check if a sessionKey belongs to any subagent (any depth). */
21
+ export function isSubagentSession(key) {
22
+ return key.includes(':subagent:');
23
+ }
24
+ /** Extract the root parent sessionKey by stripping all subagent suffixes. */
25
+ export function rootSessionKey(key) {
26
+ const idx = key.indexOf(':subagent:');
27
+ return idx === -1 ? key : key.slice(0, idx);
28
+ }
29
+ /** Parse "type:id" format from a string, extracting first component. */
30
+ function parseTypeIdFormat(str) {
31
+ const sep = str.indexOf(':');
32
+ if (sep === -1)
33
+ return { type: str, id: '' };
34
+ return { type: str.slice(0, sep), id: str.slice(sep + 1) };
35
+ }
36
+ export function parseSessionKey(key) {
37
+ const root = rootSessionKey(key);
38
+ return parseTypeIdFormat(root);
39
+ }
40
+ export function parseChannelTarget(target) {
41
+ const { type: channel, id: userId } = parseTypeIdFormat(target);
42
+ return userId ? { channel, userId } : null;
43
+ }
44
+ //# sourceMappingURL=session-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-key.js","sourceRoot":"","sources":["../../lib/session-key.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,QAAQ,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,OAAO,WAAW,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,GAAG,SAAS,aAAa,OAAO,EAAE,CAAC;AAC5C,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACpC,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,wEAAwE;AACxE,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC7C,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC"}
@@ -1,6 +1,6 @@
1
- /** Walk up from this module to locate `.templates/vargos/`. Works in both dev and dist layouts. */
1
+ /** Walk up from this module to locate `.templates/`. Works in both dev and dist layouts. */
2
2
  export declare function findTemplatesRoot(): string | null;
3
- /** Seed the VARGOS data dir from `.templates/vargos/`. Workspace markdown is refreshed; other user edits are preserved. */
3
+ /** Seed the VARGOS data dir from `.templates/`. Copies missing files only user edits are always preserved. */
4
4
  export declare function seedDataDir(logger: {
5
5
  info: (s: string) => void;
6
6
  warn: (s: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../lib/templates.ts"],"names":[],"mappings":"AAKA,mGAAmG;AACnG,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAQjD;AA8BD,2HAA2H;AAC3H,wBAAsB,WAAW,CAC/B,MAAM,EAAE;IAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC/D,OAAO,CAAC,IAAI,CAAC,CAOf"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../lib/templates.ts"],"names":[],"mappings":"AAKA,4FAA4F;AAC5F,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAQjD;AAsBD,gHAAgH;AAChH,wBAAsB,WAAW,CAC/B,MAAM,EAAE;IAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC/D,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -2,44 +2,37 @@ import { promises as fs, existsSync } from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import { getDataPaths } from './paths.js';
5
- /** Walk up from this module to locate `.templates/vargos/`. Works in both dev and dist layouts. */
5
+ /** Walk up from this module to locate `.templates/`. Works in both dev and dist layouts. */
6
6
  export function findTemplatesRoot() {
7
7
  let dir = path.dirname(fileURLToPath(import.meta.url));
8
8
  while (dir !== path.dirname(dir)) {
9
- const candidate = path.join(dir, '.templates', 'vargos');
9
+ const candidate = path.join(dir, '.templates');
10
10
  if (existsSync(candidate))
11
11
  return candidate;
12
12
  dir = path.dirname(dir);
13
13
  }
14
14
  return null;
15
15
  }
16
- /** Walks both trees in parallel; copies missing files, and refreshes workspace markdown templates. */
16
+ /** Walks both trees in parallel; copies missing files only user edits are always preserved. */
17
17
  async function seedTree(srcDir, destDir, relativeDir, logger) {
18
18
  await fs.mkdir(destDir, { recursive: true });
19
19
  for (const entry of await fs.readdir(srcDir, { withFileTypes: true })) {
20
20
  const src = path.join(srcDir, entry.name);
21
21
  const dest = path.join(destDir, entry.name);
22
- const relativePath = path.join(relativeDir, entry.name);
23
22
  if (entry.isDirectory()) {
24
- await seedTree(src, dest, relativePath, logger);
23
+ await seedTree(src, dest, path.join(relativeDir, entry.name), logger);
25
24
  }
26
- else if (shouldReseed(relativePath) || !existsSync(dest)) {
25
+ else if (!existsSync(dest)) {
27
26
  await fs.copyFile(src, dest);
28
27
  logger.info(`seeded ${dest}`);
29
28
  }
30
29
  }
31
30
  }
32
- function shouldReseed(relativePath) {
33
- const parts = relativePath.split(path.sep);
34
- return parts.length === 2
35
- && parts[0] === 'workspace'
36
- && path.extname(relativePath).toLowerCase() === '.md';
37
- }
38
- /** Seed the VARGOS data dir from `.templates/vargos/`. Workspace markdown is refreshed; other user edits are preserved. */
31
+ /** Seed the VARGOS data dir from `.templates/`. Copies missing files only — user edits are always preserved. */
39
32
  export async function seedDataDir(logger) {
40
33
  const root = findTemplatesRoot();
41
34
  if (!root) {
42
- logger.warn('.templates/vargos not found — skipping seed');
35
+ logger.warn('.templates not found — skipping seed');
43
36
  return;
44
37
  }
45
38
  await seedTree(root, getDataPaths().dataDir, '', logger);
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../lib/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,mGAAmG;AACnG,MAAM,UAAU,iBAAiB;IAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sGAAsG;AACtG,KAAK,UAAU,QAAQ,CACrB,MAAc,EACd,OAAe,EACf,WAAmB,EACnB,MAAqC;IAErC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,YAAoB;IACxC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;WACpB,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW;WACxB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;AAC1D,CAAC;AAED,2HAA2H;AAC3H,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAgE;IAEhE,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../lib/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,4FAA4F;AAC5F,MAAM,UAAU,iBAAiB;IAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC/C,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iGAAiG;AACjG,KAAK,UAAU,QAAQ,CACrB,MAAc,EACd,OAAe,EACf,WAAmB,EACnB,MAAqC;IAErC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC;AAED,gHAAgH;AAChH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAgE;IAEhE,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * One-time migration: remove `.templates/vargos/` prefix from bundled templates.
3
+ *
4
+ * Before: `.templates/vargos/` → `~/.vargos/` (seeded with vargos/ prefix stripped)
5
+ * After: `.templates/` → `~/.vargos/` (same behavior, no vargos/ prefix needed)
6
+ *
7
+ * The seeded files in `~/.vargos/` are already in the correct locations — no migration
8
+ * needed for user data. This script only cleans up the old template tree if it still
9
+ * exists on disk.
10
+ *
11
+ * Usage: npx tsx scripts/migrate-templates.ts [--dry-run]
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=migrate-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-templates.d.ts","sourceRoot":"","sources":["../../scripts/migrate-templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * One-time migration: remove `.templates/vargos/` prefix from bundled templates.
3
+ *
4
+ * Before: `.templates/vargos/` → `~/.vargos/` (seeded with vargos/ prefix stripped)
5
+ * After: `.templates/` → `~/.vargos/` (same behavior, no vargos/ prefix needed)
6
+ *
7
+ * The seeded files in `~/.vargos/` are already in the correct locations — no migration
8
+ * needed for user data. This script only cleans up the old template tree if it still
9
+ * exists on disk.
10
+ *
11
+ * Usage: npx tsx scripts/migrate-templates.ts [--dry-run]
12
+ */
13
+ import { promises as fs, existsSync } from 'node:fs';
14
+ import path from 'node:path';
15
+ const ROOT_DIR = process.cwd();
16
+ const OLD_TEMPLATES = path.join(ROOT_DIR, '.templates', 'vargos');
17
+ const NEW_TEMPLATES = path.join(ROOT_DIR, '.templates');
18
+ const DRY_RUN = process.argv.includes('--dry-run');
19
+ async function main() {
20
+ console.log(`Root dir: ${ROOT_DIR}`);
21
+ console.log(`Mode: ${DRY_RUN ? 'DRY RUN' : 'LIVE'}\n`);
22
+ // Check if old templates exist
23
+ if (!existsSync(OLD_TEMPLATES)) {
24
+ console.log('Old templates (.templates/vargos/) not found. Nothing to migrate.');
25
+ console.log('If you already moved templates to .templates/, you are up to date.');
26
+ return;
27
+ }
28
+ // Check if new templates already exist (partial migration)
29
+ const newAgentDir = path.join(NEW_TEMPLATES, 'agent');
30
+ if (existsSync(newAgentDir)) {
31
+ console.log('New templates (.templates/) already exist. Migration may have been run.');
32
+ console.log('If old .templates/vargos/ still exists, you can manually remove it.');
33
+ return;
34
+ }
35
+ console.log('Found old templates at:', OLD_TEMPLATES);
36
+ console.log('Target directory:', NEW_TEMPLATES);
37
+ // List files that will be moved
38
+ const fileCount = await countFiles(OLD_TEMPLATES);
39
+ console.log(`\nWill move ${fileCount} file(s) from .templates/vargos/ to .templates/\n`);
40
+ if (DRY_RUN) {
41
+ console.log('Files that would be moved:');
42
+ await listFiles(OLD_TEMPLATES, '.templates/');
43
+ }
44
+ else {
45
+ // Copy files to new location
46
+ await copyDir(OLD_TEMPLATES, NEW_TEMPLATES);
47
+ console.log(`Copied ${fileCount} file(s) to .templates/`);
48
+ // Remove old directory
49
+ await fs.rm(OLD_TEMPLATES, { recursive: true, force: true });
50
+ console.log('Removed .templates/vargos/');
51
+ }
52
+ console.log('\n✅ Migration complete. Next startup will use .templates/ directly.');
53
+ }
54
+ async function countFiles(dir) {
55
+ let count = 0;
56
+ const entries = await fs.readdir(dir, { withFileTypes: true });
57
+ for (const entry of entries) {
58
+ const fullPath = path.join(dir, entry.name);
59
+ if (entry.isDirectory()) {
60
+ count += await countFiles(fullPath);
61
+ }
62
+ else {
63
+ count++;
64
+ }
65
+ }
66
+ return count;
67
+ }
68
+ async function listFiles(dir, prefix) {
69
+ const entries = await fs.readdir(dir, { withFileTypes: true });
70
+ for (const entry of entries) {
71
+ const fullPath = path.join(dir, entry.name);
72
+ if (entry.isDirectory()) {
73
+ await listFiles(fullPath, path.join(prefix, entry.name));
74
+ }
75
+ else {
76
+ console.log(` ${path.join(prefix, entry.name)}`);
77
+ }
78
+ }
79
+ }
80
+ async function copyDir(src, dest) {
81
+ await fs.mkdir(dest, { recursive: true });
82
+ const entries = await fs.readdir(src, { withFileTypes: true });
83
+ for (const entry of entries) {
84
+ const srcPath = path.join(src, entry.name);
85
+ const destPath = path.join(dest, entry.name);
86
+ if (entry.isDirectory()) {
87
+ await copyDir(srcPath, destPath);
88
+ }
89
+ else {
90
+ await fs.copyFile(srcPath, destPath);
91
+ }
92
+ }
93
+ }
94
+ main().catch(err => {
95
+ console.error('Migration failed:', err);
96
+ process.exit(1);
97
+ });
98
+ //# sourceMappingURL=migrate-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-templates.js","sourceRoot":"","sources":["../../scripts/migrate-templates.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Centralized error store — append-only JSONL at ~/.vargos/errors.jsonl
3
3
  * Persists classified errors for pattern analysis and self-healing.
4
4
  */
5
- import { type ErrorClass } from './error.js';
5
+ import { type ErrorClass } from '../../lib/error.js';
6
6
  export interface ErrorRecord {
7
7
  ts: string;
8
8
  runId?: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-store.d.ts","sourceRoot":"","sources":["../../../services/agent/error-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEnF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,YAAY,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,OAAO,CAAA;CAAE,GACnG,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -4,8 +4,8 @@
4
4
  */
5
5
  import { promises as fs } from 'node:fs';
6
6
  import path from 'node:path';
7
- import { getDataPaths } from './paths.js';
8
- import { sanitizeError, classifyError } from './error.js';
7
+ import { getDataPaths } from '../../lib/paths.js';
8
+ import { sanitizeError, classifyError } from '../../lib/error.js';
9
9
  export async function appendError(entry) {
10
10
  const full = {
11
11
  ts: new Date().toISOString(),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-store.js","sourceRoot":"","sources":["../../../services/agent/error-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,oBAAoB,CAAC;AAanF,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAoG;IAEpG,MAAM,IAAI,GAAgB;QACxB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5D,GAAG,KAAK;QACR,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;KACtC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC"}
@@ -10,7 +10,7 @@
10
10
  import type { Bus } from '../../gateway/bus.js';
11
11
  import type { EventMap } from '../../gateway/events.js';
12
12
  import type { AppConfig } from '../../services/config/index.js';
13
- import type { AgentDeps } from './schema.js';
13
+ import type { AgentDeps } from './types.js';
14
14
  import { SettingsManager, AuthStorage, ModelRegistry, DefaultResourceLoader, type AgentSession, type ToolDefinition } from '@mariozechner/pi-coding-agent';
15
15
  export declare class AgentService {
16
16
  protected bus: Bus;
@@ -32,14 +32,11 @@ export declare class AgentService {
32
32
  * Note: sessionKey is declared optional here because it's auto-injected by
33
33
  * wrapEventAsToolDefinition() when the agent calls this as a tool. Direct callers
34
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
35
  */
39
36
  execute(params: EventMap['agent.execute']['params']): Promise<EventMap['agent.execute']['result']>;
40
37
  /**
41
38
  * agent.appendMessage — Append message to session JSONL without executing agent.
42
- * Used for non-whitelisted messages (skipAgent=true) to record in history silently.
39
+ * Records inbound messages in session history (observe-only for non-whitelisted).
43
40
  * Internal only — not exposed as an agent tool.
44
41
  */
45
42
  appendMessage(params: EventMap['agent.appendMessage']['params']): Promise<void>;
@@ -49,26 +46,36 @@ export declare class AgentService {
49
46
  status(_params: EventMap['agent.status']['params']): Promise<EventMap['agent.status']['result']>;
50
47
  /**
51
48
  * Get or create AgentSession for sessionKey.
49
+ * Uses SessionManager.continueRecent() to load the latest session file,
50
+ * preserving conversation history across restarts.
52
51
  */
53
- protected getOrCreateSession(sessionKey: string, metadata?: EventMap['agent.execute']['params']['metadata']): Promise<AgentSession>;
52
+ protected getOrCreateSession(sessionKey: string, options?: {
53
+ cwd?: string;
54
+ model?: string;
55
+ }): Promise<AgentSession>;
54
56
  /**
55
57
  * Subscribe to PiAgent sessionsubscription - emit to bus for streaming + debug logging.
56
58
  */
57
- protected subscribeToSessionEvents(session: AgentSession, sessionKey: string, _metadata?: EventMap['agent.execute']['params']['metadata']): void;
59
+ protected subscribeToSessionEvents(session: AgentSession, sessionKey: string): void;
58
60
  /**
59
61
  * Create ResourceLoader. PiAgent's DefaultResourceLoader handles skills, themes, and
60
62
  * prompt templates. We override systemPrompt with our Vargos bootstrap files.
61
63
  */
62
64
  protected createResourceLoader(systemPromptOverride?: string, cwd?: string): Promise<DefaultResourceLoader>;
63
65
  /**
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).
66
+ * Load persona for the given sessionKey.
67
+ * - Subagent sessions: load `agents/subagent.md` (preamble + allowedTools whitelist).
68
+ * - Channel sessions: load `agents/<channelId>.md` (persona + tool filter).
69
+ * - Cron / CLI / other types: return null (no persona override applied).
67
70
  */
68
71
  private loadPersonaIfChannel;
69
72
  /**
70
- * Build system prompt by merging bootstrap files from workspace and optional cwd, then
71
- * appending the channel persona body if provided.
73
+ * Build system prompt.
74
+ * - Subagent sessions: return the persona body from `agents/subagent.md`.
75
+ * No bootstrap files (AGENTS.md, SOUL.md, TOOLS.md) are loaded — the parent's
76
+ * task description is the subagent's sole context.
77
+ * - Parent/other sessions: merge AGENTS.md + SOUL.md + TOOLS.md from workspace/cwd,
78
+ * then append channel persona body if provided.
72
79
  */
73
80
  private getSystemPrompt;
74
81
  /**
@@ -81,14 +88,6 @@ export declare class AgentService {
81
88
  * Validate model override if provided.
82
89
  */
83
90
  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
91
  /**
93
92
  * Extract the final assistant message: text content + error (when stopReason === 'error').
94
93
  * Pi SDK records inference failures (e.g. missing API key) as assistant messages with
@@ -1 +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;IAmBG,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;IAuDzI;;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"}
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,YAAY,CAAC;AAM5C,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;;;;;;OAMG;IAaG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;IAuCxG;;;;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;;;;OAIG;cACa,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAmDzH;;OAEG;IACH,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAsEnF;;;OAGG;cACa,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAsBjH;;;;;OAKG;YACW,oBAAoB;IAQlC;;;;;;;OAOG;YACW,eAAe;IAsD7B;;;;OAIG;cACa,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IASzG;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAuC7B,IAAI,IAAI,IAAI;CAMb;AAID,wBAAsB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,IAAI,IAAI,IAAI,CAAA;CAAE,CAAC,CAM9D"}