@dotsetlabs/dotclaw 1.9.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/.env.example +6 -0
  2. package/README.md +13 -8
  3. package/config-examples/groups/global/CLAUDE.md +6 -14
  4. package/config-examples/groups/main/CLAUDE.md +8 -39
  5. package/config-examples/runtime.json +16 -122
  6. package/config-examples/tool-policy.json +2 -15
  7. package/container/agent-runner/package-lock.json +258 -0
  8. package/container/agent-runner/package.json +2 -1
  9. package/container/agent-runner/src/agent-config.ts +62 -47
  10. package/container/agent-runner/src/browser.ts +180 -0
  11. package/container/agent-runner/src/container-protocol.ts +4 -9
  12. package/container/agent-runner/src/id.ts +3 -2
  13. package/container/agent-runner/src/index.ts +331 -846
  14. package/container/agent-runner/src/ipc.ts +3 -33
  15. package/container/agent-runner/src/mcp-client.ts +222 -0
  16. package/container/agent-runner/src/mcp-registry.ts +163 -0
  17. package/container/agent-runner/src/skill-loader.ts +375 -0
  18. package/container/agent-runner/src/tools.ts +154 -184
  19. package/container/agent-runner/src/tts.ts +61 -0
  20. package/dist/admin-commands.d.ts.map +1 -1
  21. package/dist/admin-commands.js +12 -0
  22. package/dist/admin-commands.js.map +1 -1
  23. package/dist/agent-execution.d.ts +5 -9
  24. package/dist/agent-execution.d.ts.map +1 -1
  25. package/dist/agent-execution.js +32 -20
  26. package/dist/agent-execution.js.map +1 -1
  27. package/dist/cli.js +61 -16
  28. package/dist/cli.js.map +1 -1
  29. package/dist/config.d.ts +1 -4
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js +2 -5
  32. package/dist/config.js.map +1 -1
  33. package/dist/container-protocol.d.ts +4 -9
  34. package/dist/container-protocol.d.ts.map +1 -1
  35. package/dist/container-runner.d.ts.map +1 -1
  36. package/dist/container-runner.js +3 -8
  37. package/dist/container-runner.js.map +1 -1
  38. package/dist/dashboard.d.ts +5 -6
  39. package/dist/dashboard.d.ts.map +1 -1
  40. package/dist/dashboard.js +12 -60
  41. package/dist/dashboard.js.map +1 -1
  42. package/dist/db.d.ts +1 -59
  43. package/dist/db.d.ts.map +1 -1
  44. package/dist/db.js +41 -262
  45. package/dist/db.js.map +1 -1
  46. package/dist/error-messages.d.ts.map +1 -1
  47. package/dist/error-messages.js +5 -1
  48. package/dist/error-messages.js.map +1 -1
  49. package/dist/hooks.d.ts +7 -0
  50. package/dist/hooks.d.ts.map +1 -0
  51. package/dist/hooks.js +93 -0
  52. package/dist/hooks.js.map +1 -0
  53. package/dist/id.d.ts.map +1 -1
  54. package/dist/id.js +2 -1
  55. package/dist/id.js.map +1 -1
  56. package/dist/index.js +673 -2790
  57. package/dist/index.js.map +1 -1
  58. package/dist/ipc-dispatcher.d.ts +26 -0
  59. package/dist/ipc-dispatcher.d.ts.map +1 -0
  60. package/dist/ipc-dispatcher.js +861 -0
  61. package/dist/ipc-dispatcher.js.map +1 -0
  62. package/dist/local-embeddings.d.ts +7 -0
  63. package/dist/local-embeddings.d.ts.map +1 -0
  64. package/dist/local-embeddings.js +60 -0
  65. package/dist/local-embeddings.js.map +1 -0
  66. package/dist/maintenance.d.ts.map +1 -1
  67. package/dist/maintenance.js +3 -7
  68. package/dist/maintenance.js.map +1 -1
  69. package/dist/memory-embeddings.d.ts +1 -1
  70. package/dist/memory-embeddings.d.ts.map +1 -1
  71. package/dist/memory-embeddings.js +59 -31
  72. package/dist/memory-embeddings.js.map +1 -1
  73. package/dist/memory-store.d.ts +0 -10
  74. package/dist/memory-store.d.ts.map +1 -1
  75. package/dist/memory-store.js +11 -27
  76. package/dist/memory-store.js.map +1 -1
  77. package/dist/message-pipeline.d.ts +47 -0
  78. package/dist/message-pipeline.d.ts.map +1 -0
  79. package/dist/message-pipeline.js +652 -0
  80. package/dist/message-pipeline.js.map +1 -0
  81. package/dist/metrics.d.ts +7 -10
  82. package/dist/metrics.d.ts.map +1 -1
  83. package/dist/metrics.js +2 -33
  84. package/dist/metrics.js.map +1 -1
  85. package/dist/model-registry.d.ts +0 -14
  86. package/dist/model-registry.d.ts.map +1 -1
  87. package/dist/model-registry.js +0 -36
  88. package/dist/model-registry.js.map +1 -1
  89. package/dist/paths.d.ts.map +1 -1
  90. package/dist/paths.js +2 -0
  91. package/dist/paths.js.map +1 -1
  92. package/dist/providers/discord/discord-format.d.ts +16 -0
  93. package/dist/providers/discord/discord-format.d.ts.map +1 -0
  94. package/dist/providers/discord/discord-format.js +153 -0
  95. package/dist/providers/discord/discord-format.js.map +1 -0
  96. package/dist/providers/discord/discord-provider.d.ts +50 -0
  97. package/dist/providers/discord/discord-provider.d.ts.map +1 -0
  98. package/dist/providers/discord/discord-provider.js +607 -0
  99. package/dist/providers/discord/discord-provider.js.map +1 -0
  100. package/dist/providers/discord/index.d.ts +4 -0
  101. package/dist/providers/discord/index.d.ts.map +1 -0
  102. package/dist/providers/discord/index.js +3 -0
  103. package/dist/providers/discord/index.js.map +1 -0
  104. package/dist/providers/registry.d.ts +14 -0
  105. package/dist/providers/registry.d.ts.map +1 -0
  106. package/dist/providers/registry.js +49 -0
  107. package/dist/providers/registry.js.map +1 -0
  108. package/dist/providers/telegram/index.d.ts +4 -0
  109. package/dist/providers/telegram/index.d.ts.map +1 -0
  110. package/dist/providers/telegram/index.js +3 -0
  111. package/dist/providers/telegram/index.js.map +1 -0
  112. package/dist/providers/telegram/telegram-format.d.ts +3 -0
  113. package/dist/providers/telegram/telegram-format.d.ts.map +1 -0
  114. package/dist/providers/telegram/telegram-format.js +215 -0
  115. package/dist/providers/telegram/telegram-format.js.map +1 -0
  116. package/dist/providers/telegram/telegram-provider.d.ts +51 -0
  117. package/dist/providers/telegram/telegram-provider.d.ts.map +1 -0
  118. package/dist/providers/telegram/telegram-provider.js +824 -0
  119. package/dist/providers/telegram/telegram-provider.js.map +1 -0
  120. package/dist/providers/types.d.ts +107 -0
  121. package/dist/providers/types.d.ts.map +1 -0
  122. package/dist/providers/types.js +2 -0
  123. package/dist/providers/types.js.map +1 -0
  124. package/dist/request-router.d.ts +9 -31
  125. package/dist/request-router.d.ts.map +1 -1
  126. package/dist/request-router.js +12 -142
  127. package/dist/request-router.js.map +1 -1
  128. package/dist/runtime-config.d.ts +79 -101
  129. package/dist/runtime-config.d.ts.map +1 -1
  130. package/dist/runtime-config.js +140 -208
  131. package/dist/runtime-config.js.map +1 -1
  132. package/dist/skill-manager.d.ts +39 -0
  133. package/dist/skill-manager.d.ts.map +1 -0
  134. package/dist/skill-manager.js +286 -0
  135. package/dist/skill-manager.js.map +1 -0
  136. package/dist/streaming.d.ts +58 -0
  137. package/dist/streaming.d.ts.map +1 -0
  138. package/dist/streaming.js +196 -0
  139. package/dist/streaming.js.map +1 -0
  140. package/dist/task-scheduler.d.ts.map +1 -1
  141. package/dist/task-scheduler.js +11 -45
  142. package/dist/task-scheduler.js.map +1 -1
  143. package/dist/tool-policy.d.ts.map +1 -1
  144. package/dist/tool-policy.js +13 -5
  145. package/dist/tool-policy.js.map +1 -1
  146. package/dist/transcription.d.ts +8 -0
  147. package/dist/transcription.d.ts.map +1 -0
  148. package/dist/transcription.js +174 -0
  149. package/dist/transcription.js.map +1 -0
  150. package/dist/types.d.ts +2 -50
  151. package/dist/types.d.ts.map +1 -1
  152. package/package.json +15 -4
  153. package/scripts/bootstrap.js +40 -4
  154. package/scripts/configure.js +129 -7
  155. package/scripts/doctor.js +30 -4
  156. package/scripts/init.js +13 -6
  157. package/scripts/install.sh +1 -1
  158. package/config-examples/plugin-http.json +0 -18
  159. package/container/skills/agent-browser.md +0 -159
  160. package/dist/background-job-classifier.d.ts +0 -20
  161. package/dist/background-job-classifier.d.ts.map +0 -1
  162. package/dist/background-job-classifier.js +0 -145
  163. package/dist/background-job-classifier.js.map +0 -1
  164. package/dist/background-jobs.d.ts +0 -56
  165. package/dist/background-jobs.d.ts.map +0 -1
  166. package/dist/background-jobs.js +0 -550
  167. package/dist/background-jobs.js.map +0 -1
  168. package/dist/planner-probe.d.ts +0 -14
  169. package/dist/planner-probe.d.ts.map +0 -1
  170. package/dist/planner-probe.js +0 -97
  171. package/dist/planner-probe.js.map +0 -1
@@ -2,13 +2,14 @@ import fs from 'fs';
2
2
  import path from 'path';
3
3
  import { CronExpressionParser } from 'cron-parser';
4
4
  import { claimDueTasks, updateTaskAfterRun, logTaskRun, getTaskById, updateTask, updateTaskRunStatsOnly } from './db.js';
5
- import { recordTaskRun, recordError, recordMessage, recordRoutingDecision, recordStageLatency } from './metrics.js';
5
+ import { recordTaskRun, recordError, recordMessage } from './metrics.js';
6
6
  import { GROUPS_DIR, SCHEDULER_POLL_INTERVAL, TIMEZONE } from './config.js';
7
7
  import { loadRuntimeConfig } from './runtime-config.js';
8
8
  import { createTraceBase, executeAgentRun, recordAgentTelemetry, AgentExecutionError } from './agent-execution.js';
9
9
  import { routePrompt } from './request-router.js';
10
10
  import { writeTrace } from './trace-writer.js';
11
11
  import { logger } from './logger.js';
12
+ import { emitHook } from './hooks.js';
12
13
  const runtime = loadRuntimeConfig();
13
14
  const TASK_MAX_RETRIES = runtime.host.scheduler.taskMaxRetries;
14
15
  const TASK_RETRY_BASE_MS = runtime.host.scheduler.taskRetryBaseMs;
@@ -150,6 +151,7 @@ async function runTask(task, deps) {
150
151
  // Do not re-check/re-claim here or claimed tasks will be skipped.
151
152
  logger.info({ taskId: task.id, group: task.group_folder }, 'Running scheduled task');
152
153
  recordMessage('scheduler');
154
+ void emitHook('task:fired', { task_id: task.id, group_folder: task.group_folder, prompt: task.prompt.slice(0, 200) });
153
155
  const abortController = new AbortController();
154
156
  const taskTimeout = setTimeout(() => abortController.abort(), TASK_TIMEOUT_MS);
155
157
  const groups = deps.registeredGroups();
@@ -205,43 +207,25 @@ ${task.prompt}` : task.prompt;
205
207
  inputText: task.prompt,
206
208
  source: 'dotclaw-scheduler'
207
209
  });
208
- const routingStartedAt = Date.now();
209
210
  const routingDecision = routePrompt(taskPrompt);
210
- recordRoutingDecision(routingDecision.profile);
211
- const routerMs = Date.now() - routingStartedAt;
212
- recordStageLatency('router', routerMs, 'scheduler');
213
211
  try {
214
- const recallMaxResults = routingDecision.enableMemoryRecall
215
- ? (Number.isFinite(routingDecision.recallMaxResults)
216
- ? Math.max(0, Math.floor(routingDecision.recallMaxResults))
217
- : runtime.host.memory.recall.maxResults)
218
- : 0;
219
- const recallMaxTokens = routingDecision.enableMemoryRecall
220
- ? (Number.isFinite(routingDecision.recallMaxTokens)
221
- ? Math.max(0, Math.floor(routingDecision.recallMaxTokens))
222
- : runtime.host.memory.recall.maxTokens)
223
- : 0;
224
212
  const execution = await executeAgentRun({
225
213
  group,
226
214
  prompt: taskPrompt,
227
215
  chatJid: task.chat_jid,
228
216
  userId: null,
229
217
  recallQuery: task.prompt,
230
- recallMaxResults,
231
- recallMaxTokens,
218
+ recallMaxResults: routingDecision.recallMaxResults,
219
+ recallMaxTokens: routingDecision.recallMaxTokens,
232
220
  sessionId,
233
221
  persistSession: task.context_mode === 'group',
234
222
  onSessionUpdate: (sessionId) => deps.setSession(task.group_folder, sessionId),
235
223
  isScheduledTask: true,
236
224
  taskId: task.id,
237
225
  useGroupLock: false,
238
- modelOverride: routingDecision.modelOverride,
226
+ modelOverride: routingDecision.model,
239
227
  modelMaxOutputTokens: routingDecision.maxOutputTokens,
240
228
  maxToolSteps: routingDecision.maxToolSteps,
241
- disablePlanner: !routingDecision.enablePlanner,
242
- disableResponseValidation: !routingDecision.enableResponseValidation,
243
- responseValidationMaxRetries: routingDecision.responseValidationMaxRetries,
244
- disableMemoryExtraction: !routingDecision.enableMemoryExtraction,
245
229
  abortSignal: abortController.signal,
246
230
  timeoutMs: TASK_TIMEOUT_MS,
247
231
  timezone: taskTimezone
@@ -278,7 +262,7 @@ ${task.prompt}` : task.prompt;
278
262
  toolAuditSource: 'scheduler',
279
263
  errorMessage: error ?? undefined,
280
264
  errorType: error ? 'scheduler' : undefined,
281
- extraTimings: { router_ms: routerMs }
265
+ extraTimings: {}
282
266
  });
283
267
  }
284
268
  else if (error) {
@@ -392,42 +376,24 @@ export async function runTaskNow(taskId, deps) {
392
376
  inputText: task.prompt,
393
377
  source: 'dotclaw-manual-task'
394
378
  });
395
- const routingStartedAt = Date.now();
396
379
  const routingDecision = routePrompt(taskPrompt);
397
- recordRoutingDecision(routingDecision.profile);
398
- const routerMs = Date.now() - routingStartedAt;
399
- recordStageLatency('router', routerMs, 'scheduler');
400
380
  try {
401
- const recallMaxResults = routingDecision.enableMemoryRecall
402
- ? (Number.isFinite(routingDecision.recallMaxResults)
403
- ? Math.max(0, Math.floor(routingDecision.recallMaxResults))
404
- : runtime.host.memory.recall.maxResults)
405
- : 0;
406
- const recallMaxTokens = routingDecision.enableMemoryRecall
407
- ? (Number.isFinite(routingDecision.recallMaxTokens)
408
- ? Math.max(0, Math.floor(routingDecision.recallMaxTokens))
409
- : runtime.host.memory.recall.maxTokens)
410
- : 0;
411
381
  const execution = await executeAgentRun({
412
382
  group,
413
383
  prompt: taskPrompt,
414
384
  chatJid: task.chat_jid,
415
385
  userId: null,
416
386
  recallQuery: task.prompt,
417
- recallMaxResults,
418
- recallMaxTokens,
387
+ recallMaxResults: routingDecision.recallMaxResults,
388
+ recallMaxTokens: routingDecision.recallMaxTokens,
419
389
  sessionId,
420
390
  persistSession: task.context_mode === 'group',
421
391
  onSessionUpdate: (sessionId) => deps.setSession(task.group_folder, sessionId),
422
392
  isScheduledTask: true,
423
393
  taskId: task.id,
424
- modelOverride: routingDecision.modelOverride,
394
+ modelOverride: routingDecision.model,
425
395
  modelMaxOutputTokens: routingDecision.maxOutputTokens,
426
396
  maxToolSteps: routingDecision.maxToolSteps,
427
- disablePlanner: !routingDecision.enablePlanner,
428
- disableResponseValidation: !routingDecision.enableResponseValidation,
429
- responseValidationMaxRetries: routingDecision.responseValidationMaxRetries,
430
- disableMemoryExtraction: !routingDecision.enableMemoryExtraction,
431
397
  abortSignal: abortController.signal,
432
398
  timeoutMs: TASK_TIMEOUT_MS,
433
399
  timezone: task.timezone || TIMEZONE
@@ -464,7 +430,7 @@ export async function runTaskNow(taskId, deps) {
464
430
  toolAuditSource: 'scheduler',
465
431
  errorMessage: error ?? undefined,
466
432
  errorType: error ? 'scheduler' : undefined,
467
- extraTimings: { router_ms: routerMs }
433
+ extraTimings: {}
468
434
  });
469
435
  }
470
436
  else if (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"task-scheduler.js","sourceRoot":"","sources":["../src/task-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-scheduler.js","sourceRoot":"","sources":["../src/task-scheduler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../src/tool-policy.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpC;AAkDD,wBAAgB,oBAAoB,IAAI,gBAAgB,CAEvD;AA2BD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG,UAAU,CAOb;AAGD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKtF"}
1
+ {"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../src/tool-policy.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpC;AA0DD,wBAAgB,oBAAoB,IAAI,gBAAgB,CAEvD;AA2BD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG,UAAU,CAOb;AAGD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKtF"}
@@ -13,7 +13,20 @@ const DEFAULT_POLICY = {
13
13
  'WebFetch',
14
14
  'Bash',
15
15
  'Python',
16
+ 'Browser',
16
17
  'mcp__dotclaw__send_message',
18
+ 'mcp__dotclaw__send_file',
19
+ 'mcp__dotclaw__send_photo',
20
+ 'mcp__dotclaw__send_voice',
21
+ 'mcp__dotclaw__send_audio',
22
+ 'mcp__dotclaw__send_location',
23
+ 'mcp__dotclaw__send_contact',
24
+ 'mcp__dotclaw__send_poll',
25
+ 'mcp__dotclaw__send_buttons',
26
+ 'mcp__dotclaw__edit_message',
27
+ 'mcp__dotclaw__delete_message',
28
+ 'mcp__dotclaw__download_url',
29
+ 'mcp__dotclaw__text_to_speech',
17
30
  'mcp__dotclaw__schedule_task',
18
31
  'mcp__dotclaw__run_task',
19
32
  'mcp__dotclaw__list_tasks',
@@ -21,11 +34,6 @@ const DEFAULT_POLICY = {
21
34
  'mcp__dotclaw__resume_task',
22
35
  'mcp__dotclaw__cancel_task',
23
36
  'mcp__dotclaw__update_task',
24
- 'mcp__dotclaw__spawn_job',
25
- 'mcp__dotclaw__job_status',
26
- 'mcp__dotclaw__list_jobs',
27
- 'mcp__dotclaw__cancel_job',
28
- 'mcp__dotclaw__job_update',
29
37
  'mcp__dotclaw__register_group',
30
38
  'mcp__dotclaw__remove_group',
31
39
  'mcp__dotclaw__list_groups',
@@ -1 +1 @@
1
- {"version":3,"file":"tool-policy.js","sourceRoot":"","sources":["../src/tool-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-policy.js","sourceRoot":"","sources":["../src/tool-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function transcribeVoice(filePath: string): Promise<string | null>;
2
+ /**
3
+ * Host-side TTS: convert text to an OGG Opus voice file using Edge TTS.
4
+ * Edge TTS outputs MP3, then ffmpeg converts to OGG Opus for Telegram.
5
+ * Returns the path to the generated .ogg file, or null on failure.
6
+ */
7
+ export declare function synthesizeSpeechHost(text: string, outputDir: string): Promise<string | null>;
8
+ //# sourceMappingURL=transcription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcription.d.ts","sourceRoot":"","sources":["../src/transcription.ts"],"names":[],"mappings":"AA4BA,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4C9E;AAmED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsClG"}
@@ -0,0 +1,174 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { execFileSync } from 'child_process';
4
+ import { loadRuntimeConfig } from './runtime-config.js';
5
+ import { logger } from './logger.js';
6
+ const runtime = loadRuntimeConfig();
7
+ const voiceConfig = runtime.host.voice;
8
+ const MAX_RETRIES = 2;
9
+ const TIMEOUT_MS = 30_000;
10
+ /**
11
+ * Convert audio to mono 16kHz WAV using ffmpeg.
12
+ * OpenRouter's input_audio requires WAV format — OGG/Opus from Telegram
13
+ * is not reliably handled by providers.
14
+ */
15
+ function convertToWav(inputPath) {
16
+ const wavPath = inputPath.replace(/\.[^.]+$/, '_transcribe.wav');
17
+ execFileSync('ffmpeg', [
18
+ '-y', '-i', inputPath,
19
+ '-ac', '1', // mono
20
+ '-ar', '16000', // 16kHz (standard for speech recognition)
21
+ wavPath
22
+ ], { timeout: 15_000, stdio: 'pipe' });
23
+ return wavPath;
24
+ }
25
+ export async function transcribeVoice(filePath) {
26
+ if (!voiceConfig.transcription.enabled)
27
+ return null;
28
+ const resolvedPath = path.resolve(filePath);
29
+ if (!fs.existsSync(resolvedPath)) {
30
+ logger.warn({ filePath }, 'Voice file not found for transcription');
31
+ return null;
32
+ }
33
+ const stat = fs.statSync(resolvedPath);
34
+ if (stat.size === 0) {
35
+ logger.warn({ filePath }, 'Voice file is empty');
36
+ return null;
37
+ }
38
+ // Convert to WAV first (required for reliable OpenRouter audio input)
39
+ let wavPath = null;
40
+ try {
41
+ wavPath = convertToWav(resolvedPath);
42
+ }
43
+ catch (err) {
44
+ logger.error({ error: err instanceof Error ? err.message : String(err) }, 'ffmpeg conversion failed — is ffmpeg installed?');
45
+ return null;
46
+ }
47
+ try {
48
+ for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
49
+ try {
50
+ return await callTranscriptionApi(wavPath);
51
+ }
52
+ catch (err) {
53
+ const message = err instanceof Error ? err.message : String(err);
54
+ if (attempt < MAX_RETRIES) {
55
+ logger.warn({ attempt, error: message }, 'Transcription failed, retrying');
56
+ await new Promise(r => setTimeout(r, 1000 * Math.pow(2, attempt)));
57
+ }
58
+ else {
59
+ logger.error({ error: message, filePath }, 'Transcription failed after retries');
60
+ return null;
61
+ }
62
+ }
63
+ }
64
+ return null;
65
+ }
66
+ finally {
67
+ // Clean up temp WAV file
68
+ try {
69
+ fs.unlinkSync(wavPath);
70
+ }
71
+ catch { /* ignore */ }
72
+ }
73
+ }
74
+ async function callTranscriptionApi(wavPath) {
75
+ const apiKey = process.env.OPENROUTER_API_KEY;
76
+ if (!apiKey) {
77
+ throw new Error('OPENROUTER_API_KEY is not set');
78
+ }
79
+ const fileBuffer = fs.readFileSync(wavPath);
80
+ const base64Audio = fileBuffer.toString('base64');
81
+ const languageHint = voiceConfig.transcription.language
82
+ ? ` The audio is in ${voiceConfig.transcription.language}.`
83
+ : '';
84
+ // Plain chat completions with input_audio — no modalities/stream needed.
85
+ // Matches the proven OpenClaw openrouter-transcribe approach.
86
+ const payload = {
87
+ model: voiceConfig.transcription.model,
88
+ messages: [
89
+ {
90
+ role: 'user',
91
+ content: [
92
+ {
93
+ type: 'text',
94
+ text: `Transcribe this audio exactly. Output only the transcription text, nothing else.${languageHint}`
95
+ },
96
+ {
97
+ type: 'input_audio',
98
+ input_audio: { data: base64Audio, format: 'wav' }
99
+ }
100
+ ]
101
+ }
102
+ ],
103
+ };
104
+ const response = await fetch(`${voiceConfig.transcription.baseUrl}/chat/completions`, {
105
+ method: 'POST',
106
+ headers: {
107
+ 'Authorization': `Bearer ${apiKey}`,
108
+ 'Content-Type': 'application/json',
109
+ 'HTTP-Referer': 'https://dotsetlabs.com',
110
+ 'X-Title': 'DotClaw',
111
+ },
112
+ body: JSON.stringify(payload),
113
+ signal: AbortSignal.timeout(TIMEOUT_MS)
114
+ });
115
+ const body = await response.text();
116
+ if (!response.ok) {
117
+ throw new Error(`Transcription API error ${response.status}: ${body.slice(0, 500)}`);
118
+ }
119
+ const result = JSON.parse(body);
120
+ const text = result.choices?.[0]?.message?.content;
121
+ if (!text || typeof text !== 'string') {
122
+ throw new Error(`Transcription response missing text content: ${body.slice(0, 300)}`);
123
+ }
124
+ logger.info({ model: voiceConfig.transcription.model, transcriptLength: text.length, preview: text.slice(0, 200) }, 'Transcription result');
125
+ return text.trim();
126
+ }
127
+ /**
128
+ * Host-side TTS: convert text to an OGG Opus voice file using Edge TTS.
129
+ * Edge TTS outputs MP3, then ffmpeg converts to OGG Opus for Telegram.
130
+ * Returns the path to the generated .ogg file, or null on failure.
131
+ */
132
+ export async function synthesizeSpeechHost(text, outputDir) {
133
+ if (!voiceConfig.tts.enabled)
134
+ return null;
135
+ if (!text || !text.trim())
136
+ return null;
137
+ let mp3Path = null;
138
+ try {
139
+ const { EdgeTTS } = await import('node-edge-tts');
140
+ const tts = new EdgeTTS({
141
+ voice: voiceConfig.tts.defaultVoice,
142
+ lang: 'en-US',
143
+ outputFormat: 'audio-24khz-48kbitrate-mono-mp3',
144
+ timeout: 15_000,
145
+ });
146
+ fs.mkdirSync(outputDir, { recursive: true });
147
+ const ts = Date.now();
148
+ mp3Path = path.join(outputDir, `tts_reply_${ts}.mp3`);
149
+ const oggPath = path.join(outputDir, `tts_reply_${ts}.ogg`);
150
+ await tts.ttsPromise(text.slice(0, 4096), mp3Path);
151
+ // Convert MP3 → OGG Opus for Telegram voice notes
152
+ execFileSync('ffmpeg', [
153
+ '-y', '-i', mp3Path,
154
+ '-c:a', 'libopus', '-b:a', '48k',
155
+ oggPath
156
+ ], { timeout: 15_000, stdio: 'pipe' });
157
+ const stat = fs.statSync(oggPath);
158
+ logger.info({ outputPath: oggPath, bytes: stat.size, voice: voiceConfig.tts.defaultVoice }, 'TTS voice generated');
159
+ return oggPath;
160
+ }
161
+ catch (err) {
162
+ logger.warn({ error: err instanceof Error ? err.message : String(err) }, 'TTS synthesis failed');
163
+ return null;
164
+ }
165
+ finally {
166
+ // Clean up temp MP3
167
+ if (mp3Path)
168
+ try {
169
+ fs.unlinkSync(mp3Path);
170
+ }
171
+ catch { /* ignore */ }
172
+ }
173
+ }
174
+ //# sourceMappingURL=transcription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcription.js","sourceRoot":"","sources":["../src/transcription.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -35,8 +35,7 @@ export interface Session {
35
35
  }
36
36
  export interface MessageAttachment {
37
37
  type: 'photo' | 'document' | 'voice' | 'video' | 'audio';
38
- file_id: string;
39
- file_unique_id: string;
38
+ provider_file_ref?: string;
40
39
  file_name?: string;
41
40
  mime_type?: string;
42
41
  file_size?: number;
@@ -44,6 +43,7 @@ export interface MessageAttachment {
44
43
  duration?: number;
45
44
  width?: number;
46
45
  height?: number;
46
+ transcript?: string;
47
47
  }
48
48
  export interface NewMessage {
49
49
  id: string;
@@ -82,54 +82,6 @@ export interface TaskRunLog {
82
82
  result: string | null;
83
83
  error: string | null;
84
84
  }
85
- export type BackgroundJobStatus = 'queued' | 'running' | 'succeeded' | 'failed' | 'canceled' | 'timed_out';
86
- export interface BackgroundJob {
87
- id: string;
88
- group_folder: string;
89
- chat_jid: string;
90
- prompt: string;
91
- context_mode: 'group' | 'isolated';
92
- status: BackgroundJobStatus;
93
- created_at: string;
94
- updated_at: string;
95
- started_at: string | null;
96
- finished_at: string | null;
97
- timeout_ms: number | null;
98
- max_tool_steps: number | null;
99
- tool_policy_json?: string | null;
100
- model_override?: string | null;
101
- priority?: number | null;
102
- tags?: string | null;
103
- parent_trace_id?: string | null;
104
- parent_message_id?: string | null;
105
- result_summary?: string | null;
106
- output_path?: string | null;
107
- output_truncated?: number | null;
108
- last_error?: string | null;
109
- lease_expires_at?: string | null;
110
- }
111
- export interface BackgroundJobRunLog {
112
- job_id: string;
113
- run_at: string;
114
- duration_ms: number;
115
- status: 'success' | 'error' | 'canceled' | 'timed_out';
116
- result_summary: string | null;
117
- error: string | null;
118
- }
119
- export interface BackgroundJobEvent {
120
- job_id: string;
121
- created_at: string;
122
- level: 'info' | 'progress' | 'warn' | 'error';
123
- message: string;
124
- data_json?: string | null;
125
- }
126
- export interface ToolCallRecord {
127
- name: string;
128
- args?: unknown;
129
- ok: boolean;
130
- duration_ms?: number;
131
- error?: string;
132
- }
133
85
  export interface TokenEstimateConfig {
134
86
  tokens_per_char: number;
135
87
  tokens_per_message: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dotsetlabs/dotclaw",
3
- "version": "1.9.0",
3
+ "version": "2.1.0",
4
4
  "description": "Personal OpenRouter-based assistant. Lightweight, secure, customizable.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,7 +24,6 @@
24
24
  "container/Dockerfile",
25
25
  "container/build.sh",
26
26
  "container/.dockerignore",
27
- "container/skills",
28
27
  "container/agent-runner/package.json",
29
28
  "container/agent-runner/package-lock.json",
30
29
  "container/agent-runner/tsconfig.json",
@@ -65,19 +64,23 @@
65
64
  },
66
65
  "dependencies": {
67
66
  "@dotsetlabs/autotune": "^1.1.0",
67
+ "@huggingface/transformers": "^3.8.1",
68
68
  "better-sqlite3": "^11.8.1",
69
69
  "cron-parser": "^5.5.0",
70
70
  "dotenv": "^17.2.3",
71
+ "js-yaml": "^4.1.1",
72
+ "node-edge-tts": "^1.2.10",
71
73
  "pino": "^9.6.0",
72
74
  "pino-pretty": "^13.0.0",
73
75
  "prom-client": "^15.1.3",
74
- "telegraf": "^4.16.3",
75
- "zod": "^4.3.6"
76
+ "telegraf": "^4.16.3"
76
77
  },
77
78
  "devDependencies": {
78
79
  "@eslint/js": "^9.19.0",
79
80
  "@types/better-sqlite3": "^7.6.12",
81
+ "@types/js-yaml": "^4.0.9",
80
82
  "@types/node": "^22.10.0",
83
+ "discord.js": "^14.16.0",
81
84
  "eslint": "^9.19.0",
82
85
  "globals": "^15.14.0",
83
86
  "tsx": "^4.19.0",
@@ -85,6 +88,14 @@
85
88
  "typescript-eslint": "^8.23.0",
86
89
  "vitepress": "^1.2.0"
87
90
  },
91
+ "peerDependencies": {
92
+ "discord.js": "^14.16.0"
93
+ },
94
+ "peerDependenciesMeta": {
95
+ "discord.js": {
96
+ "optional": true
97
+ }
98
+ },
88
99
  "engines": {
89
100
  "node": ">=20"
90
101
  },