@dotsetlabs/dotclaw 1.9.0 → 2.0.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.
- package/.env.example +6 -0
- package/README.md +14 -7
- package/config-examples/groups/global/CLAUDE.md +6 -14
- package/config-examples/groups/main/CLAUDE.md +8 -39
- package/config-examples/runtime.json +4 -4
- package/container/agent-runner/package-lock.json +258 -0
- package/container/agent-runner/package.json +2 -1
- package/container/agent-runner/src/agent-config.ts +57 -8
- package/container/agent-runner/src/browser.ts +180 -0
- package/container/agent-runner/src/container-protocol.ts +2 -0
- package/container/agent-runner/src/id.ts +3 -2
- package/container/agent-runner/src/index.ts +167 -436
- package/container/agent-runner/src/ipc.ts +33 -1
- package/container/agent-runner/src/mcp-client.ts +222 -0
- package/container/agent-runner/src/mcp-registry.ts +163 -0
- package/container/agent-runner/src/skill-loader.ts +375 -0
- package/container/agent-runner/src/tools.ts +249 -21
- package/container/agent-runner/src/tts.ts +61 -0
- package/dist/admin-commands.d.ts.map +1 -1
- package/dist/admin-commands.js +12 -0
- package/dist/admin-commands.js.map +1 -1
- package/dist/agent-execution.d.ts +3 -1
- package/dist/agent-execution.d.ts.map +1 -1
- package/dist/agent-execution.js +20 -0
- package/dist/agent-execution.js.map +1 -1
- package/dist/background-job-classifier.d.ts +1 -1
- package/dist/background-job-classifier.d.ts.map +1 -1
- package/dist/background-jobs.d.ts.map +1 -1
- package/dist/background-jobs.js +9 -0
- package/dist/background-jobs.js.map +1 -1
- package/dist/cli.js +61 -16
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +0 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -3
- package/dist/config.js.map +1 -1
- package/dist/container-protocol.d.ts +2 -0
- package/dist/container-protocol.d.ts.map +1 -1
- package/dist/container-runner.d.ts.map +1 -1
- package/dist/container-runner.js +3 -8
- package/dist/container-runner.js.map +1 -1
- package/dist/dashboard.d.ts +5 -0
- package/dist/dashboard.d.ts.map +1 -1
- package/dist/dashboard.js +11 -5
- package/dist/dashboard.js.map +1 -1
- package/dist/db.d.ts +0 -13
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +41 -70
- package/dist/db.js.map +1 -1
- package/dist/hooks.d.ts +7 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +93 -0
- package/dist/hooks.js.map +1 -0
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +2 -1
- package/dist/id.js.map +1 -1
- package/dist/index.js +741 -2812
- package/dist/index.js.map +1 -1
- package/dist/ipc-dispatcher.d.ts +26 -0
- package/dist/ipc-dispatcher.d.ts.map +1 -0
- package/dist/ipc-dispatcher.js +1044 -0
- package/dist/ipc-dispatcher.js.map +1 -0
- package/dist/local-embeddings.d.ts +7 -0
- package/dist/local-embeddings.d.ts.map +1 -0
- package/dist/local-embeddings.js +60 -0
- package/dist/local-embeddings.js.map +1 -0
- package/dist/maintenance.d.ts.map +1 -1
- package/dist/maintenance.js +7 -1
- package/dist/maintenance.js.map +1 -1
- package/dist/memory-embeddings.d.ts +1 -1
- package/dist/memory-embeddings.d.ts.map +1 -1
- package/dist/memory-embeddings.js +59 -31
- package/dist/memory-embeddings.js.map +1 -1
- package/dist/memory-store.d.ts +0 -10
- package/dist/memory-store.d.ts.map +1 -1
- package/dist/memory-store.js +11 -27
- package/dist/memory-store.js.map +1 -1
- package/dist/message-pipeline.d.ts +47 -0
- package/dist/message-pipeline.d.ts.map +1 -0
- package/dist/message-pipeline.js +876 -0
- package/dist/message-pipeline.js.map +1 -0
- package/dist/metrics.d.ts +8 -8
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js.map +1 -1
- package/dist/model-registry.d.ts +0 -14
- package/dist/model-registry.d.ts.map +1 -1
- package/dist/model-registry.js +0 -36
- package/dist/model-registry.js.map +1 -1
- package/dist/orchestration.d.ts +39 -0
- package/dist/orchestration.d.ts.map +1 -0
- package/dist/orchestration.js +136 -0
- package/dist/orchestration.js.map +1 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +2 -0
- package/dist/paths.js.map +1 -1
- package/dist/providers/discord/discord-format.d.ts +16 -0
- package/dist/providers/discord/discord-format.d.ts.map +1 -0
- package/dist/providers/discord/discord-format.js +153 -0
- package/dist/providers/discord/discord-format.js.map +1 -0
- package/dist/providers/discord/discord-provider.d.ts +50 -0
- package/dist/providers/discord/discord-provider.d.ts.map +1 -0
- package/dist/providers/discord/discord-provider.js +604 -0
- package/dist/providers/discord/discord-provider.js.map +1 -0
- package/dist/providers/discord/index.d.ts +4 -0
- package/dist/providers/discord/index.d.ts.map +1 -0
- package/dist/providers/discord/index.js +3 -0
- package/dist/providers/discord/index.js.map +1 -0
- package/dist/providers/registry.d.ts +14 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +49 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/telegram/index.d.ts +4 -0
- package/dist/providers/telegram/index.d.ts.map +1 -0
- package/dist/providers/telegram/index.js +3 -0
- package/dist/providers/telegram/index.js.map +1 -0
- package/dist/providers/telegram/telegram-format.d.ts +3 -0
- package/dist/providers/telegram/telegram-format.d.ts.map +1 -0
- package/dist/providers/telegram/telegram-format.js +215 -0
- package/dist/providers/telegram/telegram-format.js.map +1 -0
- package/dist/providers/telegram/telegram-provider.d.ts +51 -0
- package/dist/providers/telegram/telegram-provider.d.ts.map +1 -0
- package/dist/providers/telegram/telegram-provider.js +824 -0
- package/dist/providers/telegram/telegram-provider.js.map +1 -0
- package/dist/providers/types.d.ts +107 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/request-router.d.ts.map +1 -1
- package/dist/request-router.js +12 -26
- package/dist/request-router.js.map +1 -1
- package/dist/runtime-config.d.ts +70 -6
- package/dist/runtime-config.d.ts.map +1 -1
- package/dist/runtime-config.js +119 -65
- package/dist/runtime-config.js.map +1 -1
- package/dist/skill-manager.d.ts +39 -0
- package/dist/skill-manager.d.ts.map +1 -0
- package/dist/skill-manager.js +286 -0
- package/dist/skill-manager.js.map +1 -0
- package/dist/task-scheduler.d.ts.map +1 -1
- package/dist/task-scheduler.js +4 -0
- package/dist/task-scheduler.js.map +1 -1
- package/dist/tool-intent-probe.d.ts +11 -0
- package/dist/tool-intent-probe.d.ts.map +1 -0
- package/dist/tool-intent-probe.js +63 -0
- package/dist/tool-intent-probe.js.map +1 -0
- package/dist/tool-policy.d.ts.map +1 -1
- package/dist/tool-policy.js +18 -0
- package/dist/tool-policy.js.map +1 -1
- package/dist/transcription.d.ts +8 -0
- package/dist/transcription.d.ts.map +1 -0
- package/dist/transcription.js +174 -0
- package/dist/transcription.js.map +1 -0
- package/dist/types.d.ts +2 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/workflow-engine.d.ts +51 -0
- package/dist/workflow-engine.d.ts.map +1 -0
- package/dist/workflow-engine.js +281 -0
- package/dist/workflow-engine.js.map +1 -0
- package/dist/workflow-store.d.ts +39 -0
- package/dist/workflow-store.d.ts.map +1 -0
- package/dist/workflow-store.js +173 -0
- package/dist/workflow-store.js.map +1 -0
- package/package.json +15 -3
- package/scripts/bootstrap.js +40 -4
- package/scripts/configure.js +48 -7
- package/scripts/doctor.js +30 -4
- package/scripts/init.js +13 -6
package/.env.example
CHANGED
|
@@ -15,12 +15,18 @@ TELEGRAM_BOT_TOKEN=123456789:replace-with-real-token
|
|
|
15
15
|
OPENROUTER_API_KEY=sk-or-replace-with-real-key
|
|
16
16
|
|
|
17
17
|
# --- Optional (app runtime) ---
|
|
18
|
+
# Discord bot token (enables Discord provider)
|
|
19
|
+
# DISCORD_BOT_TOKEN=replace-with-discord-token
|
|
20
|
+
|
|
18
21
|
# Brave Search API key (enables WebSearch tool in the agent)
|
|
19
22
|
BRAVE_SEARCH_API_KEY=replace-with-brave-key
|
|
20
23
|
|
|
21
24
|
# Override host timezone (defaults to system TZ)
|
|
22
25
|
TZ=America/New_York
|
|
23
26
|
|
|
27
|
+
# GitHub Personal Access Token (enables gh CLI in containers)
|
|
28
|
+
# GH_TOKEN=ghp_your_token_here
|
|
29
|
+
|
|
24
30
|
# --- Optional: System (set in shell before starting) ---
|
|
25
31
|
# Override DotClaw home directory (defaults to ~/.dotclaw)
|
|
26
32
|
# DOTCLAW_HOME=~/.dotclaw
|
package/README.md
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
# DotClaw
|
|
2
2
|
|
|
3
|
-
Personal OpenRouter-based assistant for Telegram. Each request runs inside an isolated Docker container with long-term memory, scheduling, and tool governance.
|
|
3
|
+
Personal OpenRouter-based assistant for Telegram and Discord. Each request runs inside an isolated Docker container with long-term memory, scheduling, and tool governance.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- Telegram
|
|
7
|
+
- Multi-provider messaging (Telegram + Discord) with per-group isolation
|
|
8
8
|
- Containerized agent runtime with strict mounts
|
|
9
|
-
- Rich
|
|
9
|
+
- Rich I/O tools (file/photo/voice/audio/location/contact/poll/buttons/edit/delete)
|
|
10
10
|
- Incoming media ingestion to workspace (`/workspace/group/inbox`) for agent processing
|
|
11
|
+
- Voice transcription and text-to-speech
|
|
12
|
+
- Browser automation (Chromium in-container)
|
|
13
|
+
- MCP server integration (stdio transport)
|
|
14
|
+
- Lifecycle hooks (message, agent, job, task, memory events)
|
|
15
|
+
- Multi-agent orchestration (parallel fan-out with aggregation)
|
|
16
|
+
- Declarative YAML/JSON workflows (multi-step pipelines)
|
|
11
17
|
- Long-term memory with embeddings and semantic search
|
|
12
18
|
- Scheduled tasks (cron and one-off)
|
|
13
19
|
- Background jobs for long-running work
|
|
14
20
|
- Tool policies and daily budgets
|
|
15
21
|
- Plugin tools and Autotune optimization
|
|
16
|
-
- Prometheus-compatible metrics
|
|
22
|
+
- Prometheus-compatible metrics and status dashboard
|
|
17
23
|
|
|
18
24
|
## Prerequisites
|
|
19
25
|
|
|
@@ -21,6 +27,7 @@ Personal OpenRouter-based assistant for Telegram. Each request runs inside an is
|
|
|
21
27
|
- Docker (running)
|
|
22
28
|
- Telegram bot token (from @BotFather)
|
|
23
29
|
- OpenRouter API key
|
|
30
|
+
- Discord bot token (optional — for Discord provider)
|
|
24
31
|
|
|
25
32
|
## Quick Start
|
|
26
33
|
|
|
@@ -53,9 +60,9 @@ dotclaw restart # Restart the service
|
|
|
53
60
|
dotclaw logs # View logs (add --follow to tail)
|
|
54
61
|
dotclaw status # Show service status
|
|
55
62
|
dotclaw doctor # Run diagnostics
|
|
56
|
-
dotclaw register # Register a new Telegram
|
|
57
|
-
dotclaw unregister # Remove a registered
|
|
58
|
-
dotclaw groups # List registered
|
|
63
|
+
dotclaw register # Register a new chat (Telegram or Discord)
|
|
64
|
+
dotclaw unregister # Remove a registered chat
|
|
65
|
+
dotclaw groups # List registered chats
|
|
59
66
|
dotclaw build # Build the Docker container image
|
|
60
67
|
dotclaw add-instance # Create and start an isolated instance
|
|
61
68
|
dotclaw instances # List discovered instances
|
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Global Notes
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Guidance
|
|
6
|
-
|
|
7
|
-
- Be concise and action-oriented when possible.
|
|
8
|
-
- Prefer tool use when it improves accuracy or saves time.
|
|
9
|
-
- Ask clarifying questions if the request is underspecified.
|
|
3
|
+
Shared guidance across all groups.
|
|
10
4
|
|
|
11
5
|
## Long Tasks
|
|
12
6
|
|
|
13
|
-
|
|
7
|
+
For significant work, send a brief acknowledgement first using `mcp__dotclaw__send_message` before starting.
|
|
14
8
|
|
|
15
|
-
##
|
|
9
|
+
## Notes
|
|
16
10
|
|
|
17
|
-
|
|
18
|
-
- `mcp__dotclaw__memory_upsert`
|
|
19
|
-
- `mcp__dotclaw__memory_search`
|
|
11
|
+
Add durable global notes below this line. The agent can edit this file to record stable guidance that applies to all groups.
|
|
20
12
|
|
|
21
|
-
|
|
13
|
+
---
|
|
@@ -1,47 +1,16 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Main Group
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## What You Can Do
|
|
6
|
-
|
|
7
|
-
- Answer questions and have conversations
|
|
8
|
-
- Search the web and fetch content from URLs
|
|
9
|
-
- Read and write files in your workspace
|
|
10
|
-
- Run bash commands in your sandbox
|
|
11
|
-
- Schedule tasks to run later or on a recurring basis
|
|
12
|
-
- Send messages back to the chat
|
|
3
|
+
This is the main (admin) group with elevated privileges: model changes, group management, and configuration.
|
|
13
4
|
|
|
14
5
|
## Long Tasks
|
|
15
6
|
|
|
16
|
-
If a request requires significant work (research,
|
|
17
|
-
|
|
18
|
-
1. Send a brief message: what you understood and what you'll do
|
|
7
|
+
If a request requires significant work (research, multi-step operations, file processing), acknowledge first with `mcp__dotclaw__send_message`:
|
|
8
|
+
1. Brief message: what you understood and what you'll do
|
|
19
9
|
2. Do the work
|
|
20
|
-
3. Return the final
|
|
21
|
-
|
|
22
|
-
## Main Group Privileges
|
|
23
|
-
|
|
24
|
-
The main group can manage other groups and change models:
|
|
25
|
-
|
|
26
|
-
- `mcp__dotclaw__list_groups`
|
|
27
|
-
- `mcp__dotclaw__register_group`
|
|
28
|
-
- `mcp__dotclaw__remove_group`
|
|
29
|
-
- `mcp__dotclaw__set_model`
|
|
30
|
-
|
|
31
|
-
Available groups are also written to `/workspace/ipc/available_groups.json`.
|
|
32
|
-
|
|
33
|
-
## Workspace Layout (Container)
|
|
34
|
-
|
|
35
|
-
- `/workspace/group` is your writable workspace
|
|
36
|
-
- `/workspace/project` is the DotClaw package (read-only)
|
|
37
|
-
- `/workspace/global` is the global group folder (read-only)
|
|
38
|
-
- `/workspace/ipc` is for host IPC files
|
|
39
|
-
- `/workspace/session` is for model sessions
|
|
10
|
+
3. Return the final result
|
|
40
11
|
|
|
41
|
-
##
|
|
12
|
+
## Notes
|
|
42
13
|
|
|
43
|
-
|
|
44
|
-
- `mcp__dotclaw__memory_upsert`
|
|
45
|
-
- `mcp__dotclaw__memory_search`
|
|
14
|
+
Add durable notes below this line. The agent can edit this file to record stable, high-level guidance.
|
|
46
15
|
|
|
47
|
-
|
|
16
|
+
---
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"onToolLimit": true,
|
|
39
39
|
"classifier": {
|
|
40
40
|
"enabled": true,
|
|
41
|
-
"model": "
|
|
41
|
+
"model": "deepseek/deepseek-v3.2",
|
|
42
42
|
"timeoutMs": 3000,
|
|
43
43
|
"maxOutputTokens": 32,
|
|
44
44
|
"temperature": 0,
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
"plannerProbe": {
|
|
69
69
|
"enabled": true,
|
|
70
|
-
"model": "
|
|
70
|
+
"model": "deepseek/deepseek-v3.2",
|
|
71
71
|
"timeoutMs": 3000,
|
|
72
72
|
"maxOutputTokens": 120,
|
|
73
73
|
"temperature": 0,
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
},
|
|
78
78
|
"profiles": {
|
|
79
79
|
"fast": {
|
|
80
|
-
"model": "
|
|
80
|
+
"model": "deepseek/deepseek-v3.2",
|
|
81
81
|
"maxOutputTokens": 4096,
|
|
82
82
|
"maxToolSteps": 12,
|
|
83
83
|
"recallMaxResults": 0,
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"progress": { "enabled": false }
|
|
91
91
|
},
|
|
92
92
|
"standard": {
|
|
93
|
-
"model": "
|
|
93
|
+
"model": "moonshotai/kimi-k2.5",
|
|
94
94
|
"maxOutputTokens": 4096,
|
|
95
95
|
"maxToolSteps": 48,
|
|
96
96
|
"recallMaxResults": 6,
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@openrouter/sdk": "^0.3.0",
|
|
12
12
|
"cron-parser": "^5.0.0",
|
|
13
|
+
"node-edge-tts": "^1.2.10",
|
|
13
14
|
"zod": "^4.0.0"
|
|
14
15
|
},
|
|
15
16
|
"devDependencies": {
|
|
@@ -37,6 +38,71 @@
|
|
|
37
38
|
"undici-types": "~6.21.0"
|
|
38
39
|
}
|
|
39
40
|
},
|
|
41
|
+
"node_modules/agent-base": {
|
|
42
|
+
"version": "7.1.4",
|
|
43
|
+
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
|
|
44
|
+
"integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
|
|
45
|
+
"license": "MIT",
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">= 14"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"node_modules/ansi-regex": {
|
|
51
|
+
"version": "5.0.1",
|
|
52
|
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
|
53
|
+
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
|
54
|
+
"license": "MIT",
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=8"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"node_modules/ansi-styles": {
|
|
60
|
+
"version": "4.3.0",
|
|
61
|
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
|
62
|
+
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
|
63
|
+
"license": "MIT",
|
|
64
|
+
"dependencies": {
|
|
65
|
+
"color-convert": "^2.0.1"
|
|
66
|
+
},
|
|
67
|
+
"engines": {
|
|
68
|
+
"node": ">=8"
|
|
69
|
+
},
|
|
70
|
+
"funding": {
|
|
71
|
+
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"node_modules/cliui": {
|
|
75
|
+
"version": "8.0.1",
|
|
76
|
+
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
|
|
77
|
+
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
|
|
78
|
+
"license": "ISC",
|
|
79
|
+
"dependencies": {
|
|
80
|
+
"string-width": "^4.2.0",
|
|
81
|
+
"strip-ansi": "^6.0.1",
|
|
82
|
+
"wrap-ansi": "^7.0.0"
|
|
83
|
+
},
|
|
84
|
+
"engines": {
|
|
85
|
+
"node": ">=12"
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"node_modules/color-convert": {
|
|
89
|
+
"version": "2.0.1",
|
|
90
|
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
|
91
|
+
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
|
92
|
+
"license": "MIT",
|
|
93
|
+
"dependencies": {
|
|
94
|
+
"color-name": "~1.1.4"
|
|
95
|
+
},
|
|
96
|
+
"engines": {
|
|
97
|
+
"node": ">=7.0.0"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"node_modules/color-name": {
|
|
101
|
+
"version": "1.1.4",
|
|
102
|
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
|
103
|
+
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
|
104
|
+
"license": "MIT"
|
|
105
|
+
},
|
|
40
106
|
"node_modules/cron-parser": {
|
|
41
107
|
"version": "5.5.0",
|
|
42
108
|
"resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-5.5.0.tgz",
|
|
@@ -49,6 +115,69 @@
|
|
|
49
115
|
"node": ">=18"
|
|
50
116
|
}
|
|
51
117
|
},
|
|
118
|
+
"node_modules/debug": {
|
|
119
|
+
"version": "4.4.3",
|
|
120
|
+
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
|
|
121
|
+
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
|
|
122
|
+
"license": "MIT",
|
|
123
|
+
"dependencies": {
|
|
124
|
+
"ms": "^2.1.3"
|
|
125
|
+
},
|
|
126
|
+
"engines": {
|
|
127
|
+
"node": ">=6.0"
|
|
128
|
+
},
|
|
129
|
+
"peerDependenciesMeta": {
|
|
130
|
+
"supports-color": {
|
|
131
|
+
"optional": true
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"node_modules/emoji-regex": {
|
|
136
|
+
"version": "8.0.0",
|
|
137
|
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
|
138
|
+
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
|
139
|
+
"license": "MIT"
|
|
140
|
+
},
|
|
141
|
+
"node_modules/escalade": {
|
|
142
|
+
"version": "3.2.0",
|
|
143
|
+
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
|
144
|
+
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
|
|
145
|
+
"license": "MIT",
|
|
146
|
+
"engines": {
|
|
147
|
+
"node": ">=6"
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"node_modules/get-caller-file": {
|
|
151
|
+
"version": "2.0.5",
|
|
152
|
+
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
|
153
|
+
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
|
|
154
|
+
"license": "ISC",
|
|
155
|
+
"engines": {
|
|
156
|
+
"node": "6.* || 8.* || >= 10.*"
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"node_modules/https-proxy-agent": {
|
|
160
|
+
"version": "7.0.6",
|
|
161
|
+
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
|
|
162
|
+
"integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
|
|
163
|
+
"license": "MIT",
|
|
164
|
+
"dependencies": {
|
|
165
|
+
"agent-base": "^7.1.2",
|
|
166
|
+
"debug": "4"
|
|
167
|
+
},
|
|
168
|
+
"engines": {
|
|
169
|
+
"node": ">= 14"
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"node_modules/is-fullwidth-code-point": {
|
|
173
|
+
"version": "3.0.0",
|
|
174
|
+
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
|
175
|
+
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
|
176
|
+
"license": "MIT",
|
|
177
|
+
"engines": {
|
|
178
|
+
"node": ">=8"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
52
181
|
"node_modules/luxon": {
|
|
53
182
|
"version": "3.7.2",
|
|
54
183
|
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz",
|
|
@@ -58,6 +187,61 @@
|
|
|
58
187
|
"node": ">=12"
|
|
59
188
|
}
|
|
60
189
|
},
|
|
190
|
+
"node_modules/ms": {
|
|
191
|
+
"version": "2.1.3",
|
|
192
|
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
|
193
|
+
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
|
194
|
+
"license": "MIT"
|
|
195
|
+
},
|
|
196
|
+
"node_modules/node-edge-tts": {
|
|
197
|
+
"version": "1.2.10",
|
|
198
|
+
"resolved": "https://registry.npmjs.org/node-edge-tts/-/node-edge-tts-1.2.10.tgz",
|
|
199
|
+
"integrity": "sha512-bV2i4XU54D45+US0Zm1HcJRkifuB3W438dWyuJEHLQdKxnuqlI1kim2MOvR6Q3XUQZvfF9PoDyR1Rt7aeXhPdQ==",
|
|
200
|
+
"license": "MIT",
|
|
201
|
+
"dependencies": {
|
|
202
|
+
"https-proxy-agent": "^7.0.1",
|
|
203
|
+
"ws": "^8.13.0",
|
|
204
|
+
"yargs": "^17.7.2"
|
|
205
|
+
},
|
|
206
|
+
"bin": {
|
|
207
|
+
"node-edge-tts": "bin.js"
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
"node_modules/require-directory": {
|
|
211
|
+
"version": "2.1.1",
|
|
212
|
+
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
|
213
|
+
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
|
|
214
|
+
"license": "MIT",
|
|
215
|
+
"engines": {
|
|
216
|
+
"node": ">=0.10.0"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
"node_modules/string-width": {
|
|
220
|
+
"version": "4.2.3",
|
|
221
|
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
|
222
|
+
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
|
223
|
+
"license": "MIT",
|
|
224
|
+
"dependencies": {
|
|
225
|
+
"emoji-regex": "^8.0.0",
|
|
226
|
+
"is-fullwidth-code-point": "^3.0.0",
|
|
227
|
+
"strip-ansi": "^6.0.1"
|
|
228
|
+
},
|
|
229
|
+
"engines": {
|
|
230
|
+
"node": ">=8"
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
"node_modules/strip-ansi": {
|
|
234
|
+
"version": "6.0.1",
|
|
235
|
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
|
236
|
+
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
|
237
|
+
"license": "MIT",
|
|
238
|
+
"dependencies": {
|
|
239
|
+
"ansi-regex": "^5.0.1"
|
|
240
|
+
},
|
|
241
|
+
"engines": {
|
|
242
|
+
"node": ">=8"
|
|
243
|
+
}
|
|
244
|
+
},
|
|
61
245
|
"node_modules/typescript": {
|
|
62
246
|
"version": "5.9.3",
|
|
63
247
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
|
@@ -79,6 +263,80 @@
|
|
|
79
263
|
"dev": true,
|
|
80
264
|
"license": "MIT"
|
|
81
265
|
},
|
|
266
|
+
"node_modules/wrap-ansi": {
|
|
267
|
+
"version": "7.0.0",
|
|
268
|
+
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
|
269
|
+
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
|
270
|
+
"license": "MIT",
|
|
271
|
+
"dependencies": {
|
|
272
|
+
"ansi-styles": "^4.0.0",
|
|
273
|
+
"string-width": "^4.1.0",
|
|
274
|
+
"strip-ansi": "^6.0.0"
|
|
275
|
+
},
|
|
276
|
+
"engines": {
|
|
277
|
+
"node": ">=10"
|
|
278
|
+
},
|
|
279
|
+
"funding": {
|
|
280
|
+
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
"node_modules/ws": {
|
|
284
|
+
"version": "8.19.0",
|
|
285
|
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
|
|
286
|
+
"integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
|
|
287
|
+
"license": "MIT",
|
|
288
|
+
"engines": {
|
|
289
|
+
"node": ">=10.0.0"
|
|
290
|
+
},
|
|
291
|
+
"peerDependencies": {
|
|
292
|
+
"bufferutil": "^4.0.1",
|
|
293
|
+
"utf-8-validate": ">=5.0.2"
|
|
294
|
+
},
|
|
295
|
+
"peerDependenciesMeta": {
|
|
296
|
+
"bufferutil": {
|
|
297
|
+
"optional": true
|
|
298
|
+
},
|
|
299
|
+
"utf-8-validate": {
|
|
300
|
+
"optional": true
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
"node_modules/y18n": {
|
|
305
|
+
"version": "5.0.8",
|
|
306
|
+
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
|
307
|
+
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
|
|
308
|
+
"license": "ISC",
|
|
309
|
+
"engines": {
|
|
310
|
+
"node": ">=10"
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
"node_modules/yargs": {
|
|
314
|
+
"version": "17.7.2",
|
|
315
|
+
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
|
|
316
|
+
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
|
|
317
|
+
"license": "MIT",
|
|
318
|
+
"dependencies": {
|
|
319
|
+
"cliui": "^8.0.1",
|
|
320
|
+
"escalade": "^3.1.1",
|
|
321
|
+
"get-caller-file": "^2.0.5",
|
|
322
|
+
"require-directory": "^2.1.1",
|
|
323
|
+
"string-width": "^4.2.3",
|
|
324
|
+
"y18n": "^5.0.5",
|
|
325
|
+
"yargs-parser": "^21.1.1"
|
|
326
|
+
},
|
|
327
|
+
"engines": {
|
|
328
|
+
"node": ">=12"
|
|
329
|
+
}
|
|
330
|
+
},
|
|
331
|
+
"node_modules/yargs-parser": {
|
|
332
|
+
"version": "21.1.1",
|
|
333
|
+
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
|
|
334
|
+
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
|
|
335
|
+
"license": "ISC",
|
|
336
|
+
"engines": {
|
|
337
|
+
"node": ">=12"
|
|
338
|
+
}
|
|
339
|
+
},
|
|
82
340
|
"node_modules/zod": {
|
|
83
341
|
"version": "4.3.6",
|
|
84
342
|
"resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dotclaw-agent-runner",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Container-side agent runner for DotClaw",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@openrouter/sdk": "^0.3.0",
|
|
13
13
|
"cron-parser": "^5.0.0",
|
|
14
|
+
"node-edge-tts": "^1.2.10",
|
|
14
15
|
"zod": "^4.0.0"
|
|
15
16
|
},
|
|
16
17
|
"devDependencies": {
|
|
@@ -113,6 +113,34 @@ export type AgentRuntimeConfig = {
|
|
|
113
113
|
tokensPerMessage: number;
|
|
114
114
|
tokensPerRequest: number;
|
|
115
115
|
};
|
|
116
|
+
tts: {
|
|
117
|
+
enabled: boolean;
|
|
118
|
+
model: string;
|
|
119
|
+
baseUrl: string;
|
|
120
|
+
defaultVoice: string;
|
|
121
|
+
};
|
|
122
|
+
browser: {
|
|
123
|
+
enabled: boolean;
|
|
124
|
+
timeoutMs: number;
|
|
125
|
+
screenshotQuality: number;
|
|
126
|
+
};
|
|
127
|
+
mcp: {
|
|
128
|
+
enabled: boolean;
|
|
129
|
+
servers: Array<{
|
|
130
|
+
name: string;
|
|
131
|
+
transport: 'stdio';
|
|
132
|
+
command?: string;
|
|
133
|
+
args?: string[];
|
|
134
|
+
env?: Record<string, string>;
|
|
135
|
+
url?: string;
|
|
136
|
+
}>;
|
|
137
|
+
connectionTimeoutMs: number;
|
|
138
|
+
};
|
|
139
|
+
skills: {
|
|
140
|
+
enabled: boolean;
|
|
141
|
+
maxSkills: number;
|
|
142
|
+
maxSummaryChars: number;
|
|
143
|
+
};
|
|
116
144
|
};
|
|
117
145
|
};
|
|
118
146
|
|
|
@@ -126,8 +154,8 @@ const DEFAULT_AGENT_CONFIG: AgentRuntimeConfig['agent'] = {
|
|
|
126
154
|
openrouter: {
|
|
127
155
|
timeoutMs: 180_000,
|
|
128
156
|
retry: true,
|
|
129
|
-
siteUrl: '',
|
|
130
|
-
siteName: ''
|
|
157
|
+
siteUrl: 'https://github.com/dotsetlabs/dotclaw',
|
|
158
|
+
siteName: 'DotClaw'
|
|
131
159
|
},
|
|
132
160
|
promptPacks: {
|
|
133
161
|
enabled: true,
|
|
@@ -158,11 +186,11 @@ const DEFAULT_AGENT_CONFIG: AgentRuntimeConfig['agent'] = {
|
|
|
158
186
|
extractScheduled: false
|
|
159
187
|
},
|
|
160
188
|
models: {
|
|
161
|
-
summary: '
|
|
162
|
-
memory: '
|
|
163
|
-
planner: '
|
|
164
|
-
responseValidation: '
|
|
165
|
-
toolSummary: '
|
|
189
|
+
summary: 'deepseek/deepseek-v3.2',
|
|
190
|
+
memory: 'deepseek/deepseek-v3.2',
|
|
191
|
+
planner: 'deepseek/deepseek-v3.2',
|
|
192
|
+
responseValidation: 'deepseek/deepseek-v3.2',
|
|
193
|
+
toolSummary: 'deepseek/deepseek-v3.2'
|
|
166
194
|
},
|
|
167
195
|
planner: {
|
|
168
196
|
enabled: true,
|
|
@@ -222,13 +250,34 @@ const DEFAULT_AGENT_CONFIG: AgentRuntimeConfig['agent'] = {
|
|
|
222
250
|
}
|
|
223
251
|
},
|
|
224
252
|
ipc: {
|
|
225
|
-
requestTimeoutMs:
|
|
253
|
+
requestTimeoutMs: 30_000,
|
|
226
254
|
requestPollMs: 150
|
|
227
255
|
},
|
|
228
256
|
tokenEstimate: {
|
|
229
257
|
tokensPerChar: 0.25,
|
|
230
258
|
tokensPerMessage: 3,
|
|
231
259
|
tokensPerRequest: 0
|
|
260
|
+
},
|
|
261
|
+
tts: {
|
|
262
|
+
enabled: true,
|
|
263
|
+
model: 'edge-tts',
|
|
264
|
+
baseUrl: '',
|
|
265
|
+
defaultVoice: 'en-US-AriaNeural'
|
|
266
|
+
},
|
|
267
|
+
browser: {
|
|
268
|
+
enabled: true,
|
|
269
|
+
timeoutMs: 30_000,
|
|
270
|
+
screenshotQuality: 80
|
|
271
|
+
},
|
|
272
|
+
mcp: {
|
|
273
|
+
enabled: false,
|
|
274
|
+
servers: [],
|
|
275
|
+
connectionTimeoutMs: 10_000
|
|
276
|
+
},
|
|
277
|
+
skills: {
|
|
278
|
+
enabled: true,
|
|
279
|
+
maxSkills: 32,
|
|
280
|
+
maxSummaryChars: 4000,
|
|
232
281
|
}
|
|
233
282
|
};
|
|
234
283
|
|