@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.
- package/.env.example +6 -0
- package/README.md +13 -8
- package/config-examples/groups/global/CLAUDE.md +6 -14
- package/config-examples/groups/main/CLAUDE.md +8 -39
- package/config-examples/runtime.json +16 -122
- package/config-examples/tool-policy.json +2 -15
- 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 +62 -47
- package/container/agent-runner/src/browser.ts +180 -0
- package/container/agent-runner/src/container-protocol.ts +4 -9
- package/container/agent-runner/src/id.ts +3 -2
- package/container/agent-runner/src/index.ts +331 -846
- package/container/agent-runner/src/ipc.ts +3 -33
- 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 +154 -184
- 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 +5 -9
- package/dist/agent-execution.d.ts.map +1 -1
- package/dist/agent-execution.js +32 -20
- package/dist/agent-execution.js.map +1 -1
- package/dist/cli.js +61 -16
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -5
- package/dist/config.js.map +1 -1
- package/dist/container-protocol.d.ts +4 -9
- 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 -6
- package/dist/dashboard.d.ts.map +1 -1
- package/dist/dashboard.js +12 -60
- package/dist/dashboard.js.map +1 -1
- package/dist/db.d.ts +1 -59
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +41 -262
- package/dist/db.js.map +1 -1
- package/dist/error-messages.d.ts.map +1 -1
- package/dist/error-messages.js +5 -1
- package/dist/error-messages.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 +673 -2790
- 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 +861 -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 +3 -7
- 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 +652 -0
- package/dist/message-pipeline.js.map +1 -0
- package/dist/metrics.d.ts +7 -10
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +2 -33
- 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/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 +607 -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 +9 -31
- package/dist/request-router.d.ts.map +1 -1
- package/dist/request-router.js +12 -142
- package/dist/request-router.js.map +1 -1
- package/dist/runtime-config.d.ts +79 -101
- package/dist/runtime-config.d.ts.map +1 -1
- package/dist/runtime-config.js +140 -208
- 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/streaming.d.ts +58 -0
- package/dist/streaming.d.ts.map +1 -0
- package/dist/streaming.js +196 -0
- package/dist/streaming.js.map +1 -0
- package/dist/task-scheduler.d.ts.map +1 -1
- package/dist/task-scheduler.js +11 -45
- package/dist/task-scheduler.js.map +1 -1
- package/dist/tool-policy.d.ts.map +1 -1
- package/dist/tool-policy.js +13 -5
- 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 -50
- package/dist/types.d.ts.map +1 -1
- package/package.json +15 -4
- package/scripts/bootstrap.js +40 -4
- package/scripts/configure.js +129 -7
- package/scripts/doctor.js +30 -4
- package/scripts/init.js +13 -6
- package/scripts/install.sh +1 -1
- package/config-examples/plugin-http.json +0 -18
- package/container/skills/agent-browser.md +0 -159
- package/dist/background-job-classifier.d.ts +0 -20
- package/dist/background-job-classifier.d.ts.map +0 -1
- package/dist/background-job-classifier.js +0 -145
- package/dist/background-job-classifier.js.map +0 -1
- package/dist/background-jobs.d.ts +0 -56
- package/dist/background-jobs.d.ts.map +0 -1
- package/dist/background-jobs.js +0 -550
- package/dist/background-jobs.js.map +0 -1
- package/dist/planner-probe.d.ts +0 -14
- package/dist/planner-probe.d.ts.map +0 -1
- package/dist/planner-probe.js +0 -97
- package/dist/planner-probe.js.map +0 -1
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,23 @@
|
|
|
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, task, memory events)
|
|
15
|
+
- Real-time streaming responses with edit-in-place delivery
|
|
11
16
|
- Long-term memory with embeddings and semantic search
|
|
12
17
|
- Scheduled tasks (cron and one-off)
|
|
13
|
-
- Background jobs for long-running work
|
|
14
18
|
- Tool policies and daily budgets
|
|
15
19
|
- Plugin tools and Autotune optimization
|
|
16
|
-
- Prometheus-compatible metrics
|
|
20
|
+
- Prometheus-compatible metrics and status dashboard
|
|
17
21
|
|
|
18
22
|
## Prerequisites
|
|
19
23
|
|
|
@@ -21,6 +25,7 @@ Personal OpenRouter-based assistant for Telegram. Each request runs inside an is
|
|
|
21
25
|
- Docker (running)
|
|
22
26
|
- Telegram bot token (from @BotFather)
|
|
23
27
|
- OpenRouter API key
|
|
28
|
+
- Discord bot token (optional — for Discord provider)
|
|
24
29
|
|
|
25
30
|
## Quick Start
|
|
26
31
|
|
|
@@ -53,9 +58,9 @@ dotclaw restart # Restart the service
|
|
|
53
58
|
dotclaw logs # View logs (add --follow to tail)
|
|
54
59
|
dotclaw status # Show service status
|
|
55
60
|
dotclaw doctor # Run diagnostics
|
|
56
|
-
dotclaw register # Register a new Telegram
|
|
57
|
-
dotclaw unregister # Remove a registered
|
|
58
|
-
dotclaw groups # List registered
|
|
61
|
+
dotclaw register # Register a new chat (Telegram or Discord)
|
|
62
|
+
dotclaw unregister # Remove a registered chat
|
|
63
|
+
dotclaw groups # List registered chats
|
|
59
64
|
dotclaw build # Build the Docker container image
|
|
60
65
|
dotclaw add-instance # Create and start an isolated instance
|
|
61
66
|
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
|
+
---
|
|
@@ -19,114 +19,20 @@
|
|
|
19
19
|
"enabled": true
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
|
-
"backgroundJobs": {
|
|
23
|
-
"enabled": true,
|
|
24
|
-
"maxConcurrent": 2,
|
|
25
|
-
"maxRuntimeMs": 2400000,
|
|
26
|
-
"maxToolSteps": 256,
|
|
27
|
-
"toolDeny": ["mcp__dotclaw__spawn_job"],
|
|
28
|
-
"progress": {
|
|
29
|
-
"enabled": false,
|
|
30
|
-
"startDelayMs": 30000,
|
|
31
|
-
"intervalMs": 120000,
|
|
32
|
-
"maxUpdates": 3
|
|
33
|
-
},
|
|
34
|
-
"autoSpawn": {
|
|
35
|
-
"enabled": true,
|
|
36
|
-
"foregroundTimeoutMs": 90000,
|
|
37
|
-
"onTimeout": true,
|
|
38
|
-
"onToolLimit": true,
|
|
39
|
-
"classifier": {
|
|
40
|
-
"enabled": true,
|
|
41
|
-
"model": "openai/gpt-5-nano",
|
|
42
|
-
"timeoutMs": 3000,
|
|
43
|
-
"maxOutputTokens": 32,
|
|
44
|
-
"temperature": 0,
|
|
45
|
-
"confidenceThreshold": 0.6,
|
|
46
|
-
"adaptive": {
|
|
47
|
-
"enabled": true,
|
|
48
|
-
"minThreshold": 0.55,
|
|
49
|
-
"maxThreshold": 0.65,
|
|
50
|
-
"queueDepthLow": 0,
|
|
51
|
-
"queueDepthHigh": 4
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
22
|
"routing": {
|
|
23
|
+
"model": "moonshotai/kimi-k2.5",
|
|
24
|
+
"fallbacks": ["anthropic/claude-sonnet-4-5", "openai/gpt-4.1"],
|
|
25
|
+
"maxOutputTokens": 4096,
|
|
26
|
+
"maxToolSteps": 50,
|
|
27
|
+
"temperature": 0.2,
|
|
28
|
+
"recallMaxResults": 8,
|
|
29
|
+
"recallMaxTokens": 1500
|
|
30
|
+
},
|
|
31
|
+
"streaming": {
|
|
57
32
|
"enabled": true,
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"fastKeywords": ["hi", "hello", "hey", "who are you", "what can you do", "help", "thanks", "thank you"],
|
|
62
|
-
"deepKeywords": ["research", "analysis", "analyze", "report", "dashboard", "vibe", "refactor", "architecture", "design", "spec", "strategy", "migration", "benchmark", "investigate", "evaluate", "summarize", "long-running"],
|
|
63
|
-
"backgroundKeywords": ["background", "long-running", "research", "deep dive", "multi-step", "multi step", "dashboard", "refactor", "benchmark", "report", "analysis", "survey", "crawl", "scrape", "codebase"],
|
|
64
|
-
"classifierFallback": {
|
|
65
|
-
"enabled": true,
|
|
66
|
-
"minChars": 600
|
|
67
|
-
},
|
|
68
|
-
"plannerProbe": {
|
|
69
|
-
"enabled": true,
|
|
70
|
-
"model": "openai/gpt-5-nano",
|
|
71
|
-
"timeoutMs": 3000,
|
|
72
|
-
"maxOutputTokens": 120,
|
|
73
|
-
"temperature": 0,
|
|
74
|
-
"minChars": 700,
|
|
75
|
-
"minSteps": 4,
|
|
76
|
-
"minTools": 3
|
|
77
|
-
},
|
|
78
|
-
"profiles": {
|
|
79
|
-
"fast": {
|
|
80
|
-
"model": "openai/gpt-5-nano",
|
|
81
|
-
"maxOutputTokens": 4096,
|
|
82
|
-
"maxToolSteps": 12,
|
|
83
|
-
"recallMaxResults": 0,
|
|
84
|
-
"recallMaxTokens": 0,
|
|
85
|
-
"enablePlanner": false,
|
|
86
|
-
"enableValidation": false,
|
|
87
|
-
"responseValidationMaxRetries": 0,
|
|
88
|
-
"enableMemoryRecall": false,
|
|
89
|
-
"enableMemoryExtraction": false,
|
|
90
|
-
"progress": { "enabled": false }
|
|
91
|
-
},
|
|
92
|
-
"standard": {
|
|
93
|
-
"model": "openai/gpt-5-mini",
|
|
94
|
-
"maxOutputTokens": 4096,
|
|
95
|
-
"maxToolSteps": 48,
|
|
96
|
-
"recallMaxResults": 6,
|
|
97
|
-
"recallMaxTokens": 1500,
|
|
98
|
-
"enablePlanner": true,
|
|
99
|
-
"enableValidation": true,
|
|
100
|
-
"responseValidationMaxRetries": 1,
|
|
101
|
-
"enableMemoryRecall": true,
|
|
102
|
-
"enableMemoryExtraction": true
|
|
103
|
-
},
|
|
104
|
-
"deep": {
|
|
105
|
-
"model": "moonshotai/kimi-k2.5",
|
|
106
|
-
"maxOutputTokens": 4096,
|
|
107
|
-
"maxToolSteps": 128,
|
|
108
|
-
"recallMaxResults": 12,
|
|
109
|
-
"recallMaxTokens": 2500,
|
|
110
|
-
"enablePlanner": true,
|
|
111
|
-
"enableValidation": true,
|
|
112
|
-
"responseValidationMaxRetries": 2,
|
|
113
|
-
"enableMemoryRecall": true,
|
|
114
|
-
"enableMemoryExtraction": true
|
|
115
|
-
},
|
|
116
|
-
"background": {
|
|
117
|
-
"model": "moonshotai/kimi-k2.5",
|
|
118
|
-
"maxOutputTokens": 4096,
|
|
119
|
-
"maxToolSteps": 256,
|
|
120
|
-
"recallMaxResults": 16,
|
|
121
|
-
"recallMaxTokens": 4000,
|
|
122
|
-
"enablePlanner": true,
|
|
123
|
-
"enableValidation": true,
|
|
124
|
-
"responseValidationMaxRetries": 2,
|
|
125
|
-
"enableMemoryRecall": true,
|
|
126
|
-
"enableMemoryExtraction": true,
|
|
127
|
-
"progress": { "enabled": true, "initialMs": 15000, "intervalMs": 60000, "maxUpdates": 3 }
|
|
128
|
-
}
|
|
129
|
-
}
|
|
33
|
+
"chunkFlushIntervalMs": 200,
|
|
34
|
+
"editIntervalMs": 400,
|
|
35
|
+
"maxEditLength": 3800
|
|
130
36
|
},
|
|
131
37
|
"toolBudgets": {
|
|
132
38
|
"enabled": false
|
|
@@ -134,26 +40,14 @@
|
|
|
134
40
|
},
|
|
135
41
|
"agent": {
|
|
136
42
|
"assistantName": "Rain",
|
|
43
|
+
"reasoning": { "effort": "low" },
|
|
137
44
|
"promptPacks": {
|
|
138
45
|
"enabled": true
|
|
139
46
|
},
|
|
140
|
-
"planner": {
|
|
141
|
-
"enabled": true,
|
|
142
|
-
"mode": "auto"
|
|
143
|
-
},
|
|
144
|
-
"responseValidation": {
|
|
145
|
-
"enabled": true,
|
|
146
|
-
"minPromptTokens": 400,
|
|
147
|
-
"minResponseTokens": 160
|
|
148
|
-
},
|
|
149
47
|
"tools": {
|
|
150
|
-
"
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
"notifyTools": [],
|
|
154
|
-
"notifyOnStart": false,
|
|
155
|
-
"notifyOnError": false
|
|
156
|
-
}
|
|
48
|
+
"enableBash": true,
|
|
49
|
+
"enableWebSearch": true,
|
|
50
|
+
"enableWebFetch": true
|
|
157
51
|
}
|
|
158
52
|
}
|
|
159
53
|
}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"WebFetch",
|
|
13
13
|
"Bash",
|
|
14
14
|
"Python",
|
|
15
|
+
"Browser",
|
|
15
16
|
"mcp__dotclaw__send_message",
|
|
16
17
|
"mcp__dotclaw__send_file",
|
|
17
18
|
"mcp__dotclaw__send_photo",
|
|
@@ -24,6 +25,7 @@
|
|
|
24
25
|
"mcp__dotclaw__edit_message",
|
|
25
26
|
"mcp__dotclaw__delete_message",
|
|
26
27
|
"mcp__dotclaw__download_url",
|
|
28
|
+
"mcp__dotclaw__text_to_speech",
|
|
27
29
|
"mcp__dotclaw__schedule_task",
|
|
28
30
|
"mcp__dotclaw__run_task",
|
|
29
31
|
"mcp__dotclaw__list_tasks",
|
|
@@ -31,11 +33,6 @@
|
|
|
31
33
|
"mcp__dotclaw__resume_task",
|
|
32
34
|
"mcp__dotclaw__cancel_task",
|
|
33
35
|
"mcp__dotclaw__update_task",
|
|
34
|
-
"mcp__dotclaw__spawn_job",
|
|
35
|
-
"mcp__dotclaw__job_status",
|
|
36
|
-
"mcp__dotclaw__list_jobs",
|
|
37
|
-
"mcp__dotclaw__cancel_job",
|
|
38
|
-
"mcp__dotclaw__job_update",
|
|
39
36
|
"mcp__dotclaw__register_group",
|
|
40
37
|
"mcp__dotclaw__remove_group",
|
|
41
38
|
"mcp__dotclaw__list_groups",
|
|
@@ -54,15 +51,5 @@
|
|
|
54
51
|
"WebFetch": 60
|
|
55
52
|
},
|
|
56
53
|
"default_max_per_run": 256
|
|
57
|
-
},
|
|
58
|
-
"groups": {
|
|
59
|
-
"main": {
|
|
60
|
-
"allow": ["Bash", "WebSearch", "WebFetch"]
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
"users": {
|
|
64
|
-
"123456789": {
|
|
65
|
-
"deny": ["Bash"]
|
|
66
|
-
}
|
|
67
54
|
}
|
|
68
55
|
}
|
|
@@ -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": {
|