@dotsetlabs/dotclaw 1.3.0 → 1.5.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/README.md +9 -0
- package/config-examples/runtime.json +106 -3
- package/container/agent-runner/package-lock.json +2 -2
- package/container/agent-runner/package.json +1 -1
- package/container/agent-runner/src/agent-config.ts +20 -2
- package/container/agent-runner/src/container-protocol.ts +11 -0
- package/container/agent-runner/src/index.ts +128 -11
- package/container/agent-runner/src/tools.ts +84 -5
- package/dist/agent-context.d.ts +5 -0
- package/dist/agent-context.d.ts.map +1 -1
- package/dist/agent-context.js +19 -8
- package/dist/agent-context.js.map +1 -1
- package/dist/agent-execution.d.ts +6 -0
- package/dist/agent-execution.d.ts.map +1 -1
- package/dist/agent-execution.js +61 -4
- package/dist/agent-execution.js.map +1 -1
- package/dist/background-job-classifier.d.ts +4 -0
- package/dist/background-job-classifier.d.ts.map +1 -1
- package/dist/background-job-classifier.js +36 -15
- package/dist/background-job-classifier.js.map +1 -1
- package/dist/background-jobs.d.ts.map +1 -1
- package/dist/background-jobs.js +81 -4
- package/dist/background-jobs.js.map +1 -1
- package/dist/cli.js +343 -11
- 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 +0 -3
- package/dist/config.js.map +1 -1
- package/dist/container-protocol.d.ts +11 -0
- package/dist/container-protocol.d.ts.map +1 -1
- package/dist/container-runner.d.ts.map +1 -1
- package/dist/container-runner.js +9 -1
- 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 +58 -8
- package/dist/dashboard.js.map +1 -1
- package/dist/db.d.ts +11 -0
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +36 -0
- package/dist/db.js.map +1 -1
- package/dist/index.js +300 -37
- package/dist/index.js.map +1 -1
- package/dist/json-helpers.d.ts +6 -0
- package/dist/json-helpers.d.ts.map +1 -0
- package/dist/json-helpers.js +17 -0
- package/dist/json-helpers.js.map +1 -0
- package/dist/logger.d.ts +0 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/metrics.d.ts +3 -0
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +35 -1
- package/dist/metrics.js.map +1 -1
- package/dist/planner-probe.d.ts +14 -0
- package/dist/planner-probe.d.ts.map +1 -0
- package/dist/planner-probe.js +97 -0
- package/dist/planner-probe.js.map +1 -0
- package/dist/progress.d.ts +27 -0
- package/dist/progress.d.ts.map +1 -1
- package/dist/progress.js +151 -0
- package/dist/progress.js.map +1 -1
- package/dist/request-router.d.ts +34 -0
- package/dist/request-router.d.ts.map +1 -0
- package/dist/request-router.js +148 -0
- package/dist/request-router.js.map +1 -0
- package/dist/runtime-config.d.ts +67 -0
- package/dist/runtime-config.d.ts.map +1 -1
- package/dist/runtime-config.js +177 -14
- package/dist/runtime-config.js.map +1 -1
- package/dist/task-scheduler.d.ts.map +1 -1
- package/dist/task-scheduler.js +56 -9
- package/dist/task-scheduler.js.map +1 -1
- package/dist/trace-writer.d.ts +1 -0
- package/dist/trace-writer.d.ts.map +1 -1
- package/dist/trace-writer.js.map +1 -1
- package/package.json +1 -1
package/dist/background-jobs.js
CHANGED
|
@@ -18,6 +18,8 @@ const JOBS_INLINE_MAX_CHARS = runtime.host.backgroundJobs.inlineMaxChars;
|
|
|
18
18
|
const JOBS_CONTEXT_DEFAULT = runtime.host.backgroundJobs.contextModeDefault;
|
|
19
19
|
const JOBS_TOOL_ALLOW = runtime.host.backgroundJobs.toolAllow;
|
|
20
20
|
const JOBS_TOOL_DENY = runtime.host.backgroundJobs.toolDeny;
|
|
21
|
+
const JOBS_PROGRESS = runtime.host.backgroundJobs.progress;
|
|
22
|
+
const BACKGROUND_PROFILE = runtime.host.routing?.profiles?.background;
|
|
21
23
|
const inFlightJobs = new Map();
|
|
22
24
|
function formatJobCompletionMessage(params) {
|
|
23
25
|
const statusLine = `Background job ${params.job.id} ${params.status}.`;
|
|
@@ -41,6 +43,29 @@ function coerceJobPolicy(raw) {
|
|
|
41
43
|
return {};
|
|
42
44
|
}
|
|
43
45
|
}
|
|
46
|
+
function extractEstimatedMinutes(tags) {
|
|
47
|
+
if (!tags)
|
|
48
|
+
return null;
|
|
49
|
+
try {
|
|
50
|
+
const parsed = JSON.parse(tags);
|
|
51
|
+
if (!Array.isArray(parsed))
|
|
52
|
+
return null;
|
|
53
|
+
for (const tag of parsed) {
|
|
54
|
+
if (typeof tag !== 'string')
|
|
55
|
+
continue;
|
|
56
|
+
const match = tag.match(/^eta:(\\d+(?:\\.\\d+)?)$/i);
|
|
57
|
+
if (match) {
|
|
58
|
+
const value = Number(match[1]);
|
|
59
|
+
if (Number.isFinite(value) && value > 0)
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// ignore parse errors
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
44
69
|
function effectiveToolAllow(job) {
|
|
45
70
|
const policy = coerceJobPolicy(job.tool_policy_json ?? null);
|
|
46
71
|
if (policy.tool_allow && policy.tool_allow.length > 0)
|
|
@@ -105,6 +130,28 @@ async function runBackgroundJob(job, deps) {
|
|
|
105
130
|
let context = null;
|
|
106
131
|
let error = null;
|
|
107
132
|
let resultText = null;
|
|
133
|
+
const recallEnabled = BACKGROUND_PROFILE?.enableMemoryRecall ?? true;
|
|
134
|
+
const recallMaxResults = recallEnabled
|
|
135
|
+
? (Number.isFinite(BACKGROUND_PROFILE?.recallMaxResults)
|
|
136
|
+
? Math.max(0, Math.floor(BACKGROUND_PROFILE?.recallMaxResults))
|
|
137
|
+
: runtime.host.memory.recall.maxResults)
|
|
138
|
+
: 0;
|
|
139
|
+
const recallMaxTokens = recallEnabled
|
|
140
|
+
? (Number.isFinite(BACKGROUND_PROFILE?.recallMaxTokens)
|
|
141
|
+
? Math.max(0, Math.floor(BACKGROUND_PROFILE?.recallMaxTokens))
|
|
142
|
+
: runtime.host.memory.recall.maxTokens)
|
|
143
|
+
: 0;
|
|
144
|
+
const maxToolSteps = job.max_tool_steps ?? BACKGROUND_PROFILE?.maxToolSteps ?? JOBS_MAX_TOOL_STEPS;
|
|
145
|
+
const modelOverride = job.model_override ?? BACKGROUND_PROFILE?.model;
|
|
146
|
+
const modelMaxOutputTokens = BACKGROUND_PROFILE?.maxOutputTokens;
|
|
147
|
+
const disablePlanner = BACKGROUND_PROFILE ? !BACKGROUND_PROFILE.enablePlanner : undefined;
|
|
148
|
+
const disableResponseValidation = BACKGROUND_PROFILE ? !BACKGROUND_PROFILE.enableValidation : undefined;
|
|
149
|
+
const responseValidationMaxRetries = Number.isFinite(BACKGROUND_PROFILE?.responseValidationMaxRetries)
|
|
150
|
+
? Math.max(0, Math.floor(BACKGROUND_PROFILE?.responseValidationMaxRetries))
|
|
151
|
+
: undefined;
|
|
152
|
+
const disableMemoryExtraction = BACKGROUND_PROFILE ? !BACKGROUND_PROFILE.enableMemoryExtraction : undefined;
|
|
153
|
+
let progressTimer = null;
|
|
154
|
+
let progressCount = 0;
|
|
108
155
|
logBackgroundJobEvent({
|
|
109
156
|
job_id: job.id,
|
|
110
157
|
created_at: now,
|
|
@@ -126,6 +173,29 @@ async function runBackgroundJob(job, deps) {
|
|
|
126
173
|
});
|
|
127
174
|
try {
|
|
128
175
|
if (!error && group) {
|
|
176
|
+
if (JOBS_PROGRESS.enabled && job.chat_jid) {
|
|
177
|
+
const eta = extractEstimatedMinutes(job.tags);
|
|
178
|
+
const startedAt = Date.now();
|
|
179
|
+
const scheduleProgress = () => {
|
|
180
|
+
if (progressCount >= JOBS_PROGRESS.maxUpdates)
|
|
181
|
+
return;
|
|
182
|
+
progressCount += 1;
|
|
183
|
+
const elapsedMinutes = Math.max(0, Math.floor((Date.now() - startedAt) / 60_000));
|
|
184
|
+
const remaining = eta ? Math.max(1, Math.ceil(eta - elapsedMinutes)) : null;
|
|
185
|
+
const etaLine = remaining ? ` ~${remaining} min remaining.` : '';
|
|
186
|
+
void deps.sendMessage(job.chat_jid, `Background job ${job.id} is still running.${etaLine}`);
|
|
187
|
+
};
|
|
188
|
+
const startDelay = Math.max(0, JOBS_PROGRESS.startDelayMs);
|
|
189
|
+
if (startDelay === 0) {
|
|
190
|
+
scheduleProgress();
|
|
191
|
+
}
|
|
192
|
+
progressTimer = setTimeout(function tick() {
|
|
193
|
+
scheduleProgress();
|
|
194
|
+
if (progressCount < JOBS_PROGRESS.maxUpdates) {
|
|
195
|
+
progressTimer = setTimeout(tick, Math.max(5_000, JOBS_PROGRESS.intervalMs));
|
|
196
|
+
}
|
|
197
|
+
}, startDelay);
|
|
198
|
+
}
|
|
129
199
|
const sessions = deps.getSessions();
|
|
130
200
|
const sessionId = job.context_mode === 'group'
|
|
131
201
|
? createSessionSnapshot(job.group_folder, sessions[job.group_folder])
|
|
@@ -136,8 +206,8 @@ async function runBackgroundJob(job, deps) {
|
|
|
136
206
|
chatJid: job.chat_jid,
|
|
137
207
|
userId: null,
|
|
138
208
|
recallQuery: job.prompt,
|
|
139
|
-
recallMaxResults
|
|
140
|
-
recallMaxTokens
|
|
209
|
+
recallMaxResults,
|
|
210
|
+
recallMaxTokens,
|
|
141
211
|
sessionId,
|
|
142
212
|
persistSession: false,
|
|
143
213
|
isBackgroundJob: true,
|
|
@@ -147,8 +217,13 @@ async function runBackgroundJob(job, deps) {
|
|
|
147
217
|
abortSignal: abortController.signal,
|
|
148
218
|
toolAllow: effectiveToolAllow(job),
|
|
149
219
|
toolDeny: effectiveToolDeny(job),
|
|
150
|
-
modelOverride:
|
|
151
|
-
|
|
220
|
+
modelOverride: modelOverride ?? undefined,
|
|
221
|
+
modelMaxOutputTokens,
|
|
222
|
+
maxToolSteps,
|
|
223
|
+
disablePlanner,
|
|
224
|
+
disableResponseValidation,
|
|
225
|
+
responseValidationMaxRetries,
|
|
226
|
+
disableMemoryExtraction,
|
|
152
227
|
timeoutMs
|
|
153
228
|
});
|
|
154
229
|
output = execution.output;
|
|
@@ -173,6 +248,8 @@ async function runBackgroundJob(job, deps) {
|
|
|
173
248
|
}
|
|
174
249
|
finally {
|
|
175
250
|
clearTimeout(timeout);
|
|
251
|
+
if (progressTimer)
|
|
252
|
+
clearTimeout(progressTimer);
|
|
176
253
|
inFlightJobs.delete(job.id);
|
|
177
254
|
}
|
|
178
255
|
if (!error && (!resultText || !resultText.trim())) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background-jobs.js","sourceRoot":"","sources":["../src/background-jobs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"background-jobs.js","sourceRoot":"","sources":["../src/background-jobs.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -3,11 +3,18 @@ import fs from 'fs';
|
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { spawn, spawnSync, execSync } from 'child_process';
|
|
5
5
|
import readline from 'readline';
|
|
6
|
-
import
|
|
6
|
+
import net from 'net';
|
|
7
|
+
import { DOTCLAW_HOME, PACKAGE_ROOT, GROUPS_DIR, LOGS_DIR, ENV_PATH, RUNTIME_CONFIG_PATH, REGISTERED_GROUPS_PATH, CONTAINER_BUILD_SCRIPT, SCRIPTS_DIR, ensureDirectoryStructure, } from './paths.js';
|
|
7
8
|
const PLATFORM = process.platform;
|
|
8
9
|
const IS_MACOS = PLATFORM === 'darwin';
|
|
9
10
|
const IS_LINUX = PLATFORM === 'linux';
|
|
10
|
-
const
|
|
11
|
+
const INSTANCE_ID_RAW = process.env.DOTCLAW_INSTANCE_ID || '';
|
|
12
|
+
const INSTANCE_ID = INSTANCE_ID_RAW.trim()
|
|
13
|
+
? INSTANCE_ID_RAW.trim().replace(/[^a-zA-Z0-9_.-]+/g, '-').replace(/^-+|-+$/g, '')
|
|
14
|
+
: '';
|
|
15
|
+
const LAUNCHD_LABEL_BASE = 'com.dotclaw';
|
|
16
|
+
const LAUNCHD_LABEL = INSTANCE_ID ? `${LAUNCHD_LABEL_BASE}.${INSTANCE_ID}` : LAUNCHD_LABEL_BASE;
|
|
17
|
+
const LAUNCHD_PLIST_NAME = `${LAUNCHD_LABEL}.plist`;
|
|
11
18
|
const SYSTEMD_SERVICE_NAME = 'dotclaw.service';
|
|
12
19
|
function log(message) {
|
|
13
20
|
console.log(`[dotclaw] ${message}`);
|
|
@@ -18,6 +25,162 @@ function error(message) {
|
|
|
18
25
|
function warn(message) {
|
|
19
26
|
console.warn(`[dotclaw] WARN: ${message}`);
|
|
20
27
|
}
|
|
28
|
+
function getInstanceIdLabel(id) {
|
|
29
|
+
const normalized = id.trim().replace(/[^a-zA-Z0-9_.-]+/g, '-').replace(/^-+|-+$/g, '');
|
|
30
|
+
if (!normalized)
|
|
31
|
+
return LAUNCHD_LABEL_BASE;
|
|
32
|
+
return `${LAUNCHD_LABEL_BASE}.${normalized}`;
|
|
33
|
+
}
|
|
34
|
+
function normalizeInstanceId(id) {
|
|
35
|
+
return id.trim().replace(/[^a-zA-Z0-9_.-]+/g, '-').replace(/^-+|-+$/g, '');
|
|
36
|
+
}
|
|
37
|
+
function getInstanceHome(id) {
|
|
38
|
+
const normalized = normalizeInstanceId(id);
|
|
39
|
+
if (!normalized || normalized === 'default') {
|
|
40
|
+
return path.join(getUserHome(), '.dotclaw');
|
|
41
|
+
}
|
|
42
|
+
return path.join(getUserHome(), `.dotclaw-${normalized}`);
|
|
43
|
+
}
|
|
44
|
+
function listInstanceTargets() {
|
|
45
|
+
const targets = new Map();
|
|
46
|
+
const defaultHome = DOTCLAW_HOME;
|
|
47
|
+
const defaultId = INSTANCE_ID || 'default';
|
|
48
|
+
targets.set(defaultHome, { id: defaultId, home: defaultHome });
|
|
49
|
+
const homeDir = getUserHome();
|
|
50
|
+
try {
|
|
51
|
+
const entries = fs.readdirSync(homeDir, { withFileTypes: true });
|
|
52
|
+
for (const entry of entries) {
|
|
53
|
+
if (!entry.isDirectory())
|
|
54
|
+
continue;
|
|
55
|
+
if (!entry.name.startsWith('.dotclaw-'))
|
|
56
|
+
continue;
|
|
57
|
+
const id = entry.name.slice('.dotclaw-'.length);
|
|
58
|
+
const home = path.join(homeDir, entry.name);
|
|
59
|
+
if (!targets.has(home)) {
|
|
60
|
+
targets.set(home, { id, home });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// ignore read errors
|
|
66
|
+
}
|
|
67
|
+
return Array.from(targets.values()).sort((a, b) => {
|
|
68
|
+
if (a.id === 'default')
|
|
69
|
+
return -1;
|
|
70
|
+
if (b.id === 'default')
|
|
71
|
+
return 1;
|
|
72
|
+
return a.id.localeCompare(b.id);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
function parseCliArgs(argv) {
|
|
76
|
+
let command = '';
|
|
77
|
+
const args = [];
|
|
78
|
+
const passthrough = [];
|
|
79
|
+
let id;
|
|
80
|
+
let all = false;
|
|
81
|
+
let sawFollow = false;
|
|
82
|
+
let sawForeground = false;
|
|
83
|
+
let sawShortF = false;
|
|
84
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
85
|
+
const arg = argv[i];
|
|
86
|
+
if (arg === '--all') {
|
|
87
|
+
all = true;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (arg.startsWith('--id=')) {
|
|
91
|
+
id = arg.slice('--id='.length);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (arg === '--id') {
|
|
95
|
+
id = argv[i + 1];
|
|
96
|
+
i += 1;
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
if (arg === '--follow') {
|
|
100
|
+
sawFollow = true;
|
|
101
|
+
}
|
|
102
|
+
if (arg === '--foreground') {
|
|
103
|
+
sawForeground = true;
|
|
104
|
+
}
|
|
105
|
+
if (arg === '-f') {
|
|
106
|
+
sawShortF = true;
|
|
107
|
+
}
|
|
108
|
+
if (!command && !arg.startsWith('-')) {
|
|
109
|
+
command = arg;
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
if (arg.startsWith('-')) {
|
|
113
|
+
passthrough.push(arg);
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
args.push(arg);
|
|
117
|
+
}
|
|
118
|
+
const resolvedCommand = command || 'help';
|
|
119
|
+
const follow = resolvedCommand === 'logs' ? (sawFollow || sawShortF) : sawFollow;
|
|
120
|
+
const foreground = resolvedCommand === 'start' ? (sawForeground || sawShortF) : sawForeground;
|
|
121
|
+
return {
|
|
122
|
+
command: resolvedCommand,
|
|
123
|
+
args,
|
|
124
|
+
passthrough,
|
|
125
|
+
flags: {
|
|
126
|
+
id,
|
|
127
|
+
all,
|
|
128
|
+
follow,
|
|
129
|
+
foreground
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
function buildChildArgs(command, parsed) {
|
|
134
|
+
return [command, ...parsed.passthrough, ...parsed.args].filter(Boolean);
|
|
135
|
+
}
|
|
136
|
+
function runCliWithEnv(command, parsed, env) {
|
|
137
|
+
const cliPath = path.join(PACKAGE_ROOT, 'dist', 'cli.js');
|
|
138
|
+
if (!fs.existsSync(cliPath)) {
|
|
139
|
+
error(`DotClaw not properly installed. Missing: ${cliPath}`);
|
|
140
|
+
return 1;
|
|
141
|
+
}
|
|
142
|
+
const childArgs = buildChildArgs(command, parsed);
|
|
143
|
+
const result = spawnSync(getNodePath(), [cliPath, ...childArgs], { stdio: 'inherit', env });
|
|
144
|
+
return result.status || 0;
|
|
145
|
+
}
|
|
146
|
+
function ensureDirectoryStructureAt(dotclawHome) {
|
|
147
|
+
const dirs = [
|
|
148
|
+
dotclawHome,
|
|
149
|
+
path.join(dotclawHome, 'config'),
|
|
150
|
+
path.join(dotclawHome, 'data'),
|
|
151
|
+
path.join(dotclawHome, 'data', 'store'),
|
|
152
|
+
path.join(dotclawHome, 'data', 'ipc'),
|
|
153
|
+
path.join(dotclawHome, 'data', 'sessions'),
|
|
154
|
+
path.join(dotclawHome, 'groups'),
|
|
155
|
+
path.join(dotclawHome, 'groups', 'main'),
|
|
156
|
+
path.join(dotclawHome, 'groups', 'global'),
|
|
157
|
+
path.join(dotclawHome, 'logs'),
|
|
158
|
+
path.join(dotclawHome, 'traces'),
|
|
159
|
+
path.join(dotclawHome, 'prompts')
|
|
160
|
+
];
|
|
161
|
+
for (const dir of dirs) {
|
|
162
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
async function isPortAvailable(port) {
|
|
166
|
+
return await new Promise((resolve) => {
|
|
167
|
+
const server = net.createServer();
|
|
168
|
+
server.unref();
|
|
169
|
+
server.on('error', () => resolve(false));
|
|
170
|
+
server.listen(port, '127.0.0.1', () => {
|
|
171
|
+
server.close(() => resolve(true));
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
async function findAvailablePort(startPort, attempts = 20) {
|
|
176
|
+
let port = startPort;
|
|
177
|
+
for (let i = 0; i < attempts; i += 1) {
|
|
178
|
+
if (await isPortAvailable(port))
|
|
179
|
+
return port;
|
|
180
|
+
port += 1;
|
|
181
|
+
}
|
|
182
|
+
return startPort;
|
|
183
|
+
}
|
|
21
184
|
function getNodePath() {
|
|
22
185
|
return process.execPath;
|
|
23
186
|
}
|
|
@@ -30,8 +193,8 @@ function getLaunchdPlistPath() {
|
|
|
30
193
|
function isServiceRunning() {
|
|
31
194
|
if (IS_MACOS) {
|
|
32
195
|
try {
|
|
33
|
-
const result = execSync(`launchctl list | grep
|
|
34
|
-
return result.includes(
|
|
196
|
+
const result = execSync(`launchctl list | grep -F "${LAUNCHD_LABEL}"`, { encoding: 'utf-8', stdio: 'pipe' });
|
|
197
|
+
return result.includes(LAUNCHD_LABEL);
|
|
35
198
|
}
|
|
36
199
|
catch {
|
|
37
200
|
return false;
|
|
@@ -57,7 +220,7 @@ function generateLaunchdPlist() {
|
|
|
57
220
|
<plist version="1.0">
|
|
58
221
|
<dict>
|
|
59
222
|
<key>Label</key>
|
|
60
|
-
<string
|
|
223
|
+
<string>${LAUNCHD_LABEL}</string>
|
|
61
224
|
<key>ProgramArguments</key>
|
|
62
225
|
<array>
|
|
63
226
|
<string>${nodePath}</string>
|
|
@@ -360,6 +523,7 @@ async function cmdDoctor() {
|
|
|
360
523
|
if (IS_MACOS) {
|
|
361
524
|
const plistPath = getLaunchdPlistPath();
|
|
362
525
|
console.log(`launchd plist: ${fs.existsSync(plistPath) ? 'installed' : 'not installed'}`);
|
|
526
|
+
console.log(`launchd label: ${LAUNCHD_LABEL}`);
|
|
363
527
|
console.log(`Service running: ${isServiceRunning() ? 'yes' : 'no'}`);
|
|
364
528
|
}
|
|
365
529
|
else if (IS_LINUX) {
|
|
@@ -459,6 +623,91 @@ async function cmdUninstallService() {
|
|
|
459
623
|
warn(`Unsupported platform: ${PLATFORM}`);
|
|
460
624
|
}
|
|
461
625
|
}
|
|
626
|
+
async function cmdAddInstance(instanceId) {
|
|
627
|
+
const normalized = normalizeInstanceId(instanceId);
|
|
628
|
+
if (!normalized) {
|
|
629
|
+
error('Usage: dotclaw add-instance <instance-id>');
|
|
630
|
+
process.exit(1);
|
|
631
|
+
}
|
|
632
|
+
const newHome = getInstanceHome(normalized);
|
|
633
|
+
const runtimePath = path.join(newHome, 'config', 'runtime.json');
|
|
634
|
+
const envPath = path.join(newHome, '.env');
|
|
635
|
+
if (fs.existsSync(newHome)) {
|
|
636
|
+
error(`Instance home already exists: ${newHome}`);
|
|
637
|
+
process.exit(1);
|
|
638
|
+
}
|
|
639
|
+
ensureDirectoryStructureAt(newHome);
|
|
640
|
+
if (fs.existsSync(ENV_PATH)) {
|
|
641
|
+
const copyEnv = await prompt('Copy .env from existing instance? (yes/no)', 'yes');
|
|
642
|
+
if (copyEnv.toLowerCase().startsWith('y')) {
|
|
643
|
+
fs.copyFileSync(ENV_PATH, envPath);
|
|
644
|
+
log(`Copied .env to ${envPath}`);
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
let runtimeConfig = {};
|
|
648
|
+
if (fs.existsSync(RUNTIME_CONFIG_PATH)) {
|
|
649
|
+
try {
|
|
650
|
+
runtimeConfig = JSON.parse(fs.readFileSync(RUNTIME_CONFIG_PATH, 'utf-8'));
|
|
651
|
+
}
|
|
652
|
+
catch {
|
|
653
|
+
warn('Failed to parse existing runtime.json; starting fresh');
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
const host = typeof runtimeConfig.host === 'object' && runtimeConfig.host ? runtimeConfig.host : {};
|
|
657
|
+
const container = typeof host.container === 'object' && host.container ? host.container : {};
|
|
658
|
+
container.instanceId = normalized;
|
|
659
|
+
host.container = container;
|
|
660
|
+
const metrics = typeof host.metrics === 'object' && host.metrics ? host.metrics : {};
|
|
661
|
+
const metricsEnabled = metrics.enabled !== false;
|
|
662
|
+
if (metricsEnabled) {
|
|
663
|
+
const basePort = typeof metrics.port === 'number' ? metrics.port : 3001;
|
|
664
|
+
const availablePort = await findAvailablePort(basePort + 1);
|
|
665
|
+
metrics.port = availablePort;
|
|
666
|
+
}
|
|
667
|
+
host.metrics = metrics;
|
|
668
|
+
runtimeConfig.host = host;
|
|
669
|
+
fs.mkdirSync(path.dirname(runtimePath), { recursive: true });
|
|
670
|
+
fs.writeFileSync(runtimePath, JSON.stringify(runtimeConfig, null, 2));
|
|
671
|
+
log(`Wrote runtime config: ${runtimePath}`);
|
|
672
|
+
if (process.env.DOTCLAW_TEST_MODE === '1') {
|
|
673
|
+
log('Test mode enabled: skipping service install/start');
|
|
674
|
+
return;
|
|
675
|
+
}
|
|
676
|
+
const cliPath = path.join(PACKAGE_ROOT, 'dist', 'cli.js');
|
|
677
|
+
if (!fs.existsSync(cliPath)) {
|
|
678
|
+
error(`DotClaw not properly installed. Missing: ${cliPath}`);
|
|
679
|
+
process.exit(1);
|
|
680
|
+
}
|
|
681
|
+
const env = { ...process.env, DOTCLAW_HOME: newHome, DOTCLAW_INSTANCE_ID: normalized };
|
|
682
|
+
const launchdLabel = getInstanceIdLabel(normalized);
|
|
683
|
+
if (IS_MACOS) {
|
|
684
|
+
try {
|
|
685
|
+
const existing = execSync(`launchctl list | grep -F "${launchdLabel}"`, { encoding: 'utf-8', stdio: 'pipe' });
|
|
686
|
+
if (existing.includes(launchdLabel)) {
|
|
687
|
+
error(`launchd service already exists for ${launchdLabel}`);
|
|
688
|
+
process.exit(1);
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
catch {
|
|
692
|
+
// not running, ok
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
log(`Installing service for instance "${normalized}"...`);
|
|
696
|
+
const installResult = spawnSync(getNodePath(), [cliPath, 'install-service'], { stdio: 'inherit', env });
|
|
697
|
+
if (installResult.status !== 0) {
|
|
698
|
+
process.exit(installResult.status || 1);
|
|
699
|
+
}
|
|
700
|
+
log(`Starting instance "${normalized}"...`);
|
|
701
|
+
const startResult = spawnSync(getNodePath(), [cliPath, 'start'], { stdio: 'inherit', env });
|
|
702
|
+
if (startResult.status !== 0) {
|
|
703
|
+
process.exit(startResult.status || 1);
|
|
704
|
+
}
|
|
705
|
+
log(`Instance "${normalized}" started at ${newHome}`);
|
|
706
|
+
log(`Launchd label: ${launchdLabel}`);
|
|
707
|
+
if (fs.existsSync(envPath)) {
|
|
708
|
+
log(`If you want a different Telegram bot, edit: ${envPath}`);
|
|
709
|
+
}
|
|
710
|
+
}
|
|
462
711
|
async function cmdRegister() {
|
|
463
712
|
// Ensure directories exist
|
|
464
713
|
ensureDirectoryStructure();
|
|
@@ -509,6 +758,7 @@ async function cmdRegister() {
|
|
|
509
758
|
async function cmdStatus() {
|
|
510
759
|
console.log(`Platform: ${PLATFORM}`);
|
|
511
760
|
console.log(`DOTCLAW_HOME: ${DOTCLAW_HOME}`);
|
|
761
|
+
console.log(`Instance ID: ${INSTANCE_ID || 'default'}`);
|
|
512
762
|
console.log(`Package root: ${PACKAGE_ROOT}`);
|
|
513
763
|
console.log(`Service running: ${isServiceRunning() ? 'yes' : 'no'}`);
|
|
514
764
|
console.log(`.env: ${fs.existsSync(ENV_PATH) ? 'present' : 'missing'}`);
|
|
@@ -526,6 +776,17 @@ async function cmdStatus() {
|
|
|
526
776
|
console.log('Registered groups: none');
|
|
527
777
|
}
|
|
528
778
|
}
|
|
779
|
+
async function cmdInstances() {
|
|
780
|
+
const instances = listInstanceTargets();
|
|
781
|
+
if (instances.length === 0) {
|
|
782
|
+
console.log('No instances found.');
|
|
783
|
+
return;
|
|
784
|
+
}
|
|
785
|
+
console.log('Instances:');
|
|
786
|
+
for (const instance of instances) {
|
|
787
|
+
console.log(`- ${instance.id}: ${instance.home}`);
|
|
788
|
+
}
|
|
789
|
+
}
|
|
529
790
|
function printHelp() {
|
|
530
791
|
console.log(`
|
|
531
792
|
DotClaw - Personal OpenRouter-based assistant
|
|
@@ -535,6 +796,8 @@ Usage: dotclaw <command> [options]
|
|
|
535
796
|
Commands:
|
|
536
797
|
setup Run initial setup (init, configure, build, install service)
|
|
537
798
|
configure Re-run configuration (change API keys, model, etc.)
|
|
799
|
+
add-instance Create and start a new isolated instance
|
|
800
|
+
instances List discovered instances
|
|
538
801
|
start Start the service (or run in foreground with --foreground)
|
|
539
802
|
stop Stop the service
|
|
540
803
|
restart Restart the service
|
|
@@ -550,6 +813,8 @@ Commands:
|
|
|
550
813
|
Options:
|
|
551
814
|
--foreground, -f Run in foreground (for 'start' command)
|
|
552
815
|
--follow, -f Follow log output (for 'logs' command)
|
|
816
|
+
--id <id> Run command against a specific instance
|
|
817
|
+
--all Run command against all instances (supported commands only)
|
|
553
818
|
|
|
554
819
|
Data directory: ${DOTCLAW_HOME}
|
|
555
820
|
Override with DOTCLAW_HOME environment variable.
|
|
@@ -557,6 +822,10 @@ Override with DOTCLAW_HOME environment variable.
|
|
|
557
822
|
Examples:
|
|
558
823
|
dotclaw setup # First-time setup
|
|
559
824
|
dotclaw configure # Change configuration
|
|
825
|
+
dotclaw add-instance dev # Create a new instance (~/.dotclaw-dev)
|
|
826
|
+
dotclaw instances # List instance homes
|
|
827
|
+
dotclaw status --id dev # Status for a specific instance
|
|
828
|
+
dotclaw restart --all # Restart all instances
|
|
560
829
|
dotclaw start # Start as background service
|
|
561
830
|
dotclaw start --foreground # Run in terminal
|
|
562
831
|
dotclaw logs --follow # Tail logs
|
|
@@ -564,11 +833,68 @@ Examples:
|
|
|
564
833
|
`);
|
|
565
834
|
}
|
|
566
835
|
async function main() {
|
|
567
|
-
const
|
|
568
|
-
const command =
|
|
569
|
-
const flags = args.slice(1);
|
|
570
|
-
const hasFlag = (short, long) => flags.includes(short) || flags.includes(long);
|
|
836
|
+
const parsed = parseCliArgs(process.argv.slice(2));
|
|
837
|
+
const command = parsed.command;
|
|
571
838
|
try {
|
|
839
|
+
if ((command === 'add-instance' || command === 'instances') && (parsed.flags.id || parsed.flags.all)) {
|
|
840
|
+
error(`${command} does not support --id or --all.`);
|
|
841
|
+
process.exit(1);
|
|
842
|
+
}
|
|
843
|
+
if (parsed.flags.id && parsed.flags.all) {
|
|
844
|
+
error('Use either --id or --all, not both.');
|
|
845
|
+
process.exit(1);
|
|
846
|
+
}
|
|
847
|
+
const allSupported = new Set(['start', 'stop', 'restart', 'status', 'logs', 'doctor']);
|
|
848
|
+
if (parsed.flags.all) {
|
|
849
|
+
if (!allSupported.has(command)) {
|
|
850
|
+
error(`--all is not supported for "${command}".`);
|
|
851
|
+
process.exit(1);
|
|
852
|
+
}
|
|
853
|
+
if (command === 'logs' && parsed.flags.follow) {
|
|
854
|
+
error('--all cannot be used with logs --follow.');
|
|
855
|
+
process.exit(1);
|
|
856
|
+
}
|
|
857
|
+
if (command === 'start' && parsed.flags.foreground) {
|
|
858
|
+
error('--all cannot be used with start --foreground.');
|
|
859
|
+
process.exit(1);
|
|
860
|
+
}
|
|
861
|
+
const instances = listInstanceTargets();
|
|
862
|
+
let exitCode = 0;
|
|
863
|
+
for (const instance of instances) {
|
|
864
|
+
console.log(`\n=== ${instance.id} (${instance.home}) ===`);
|
|
865
|
+
const env = { ...process.env, DOTCLAW_HOME: instance.home };
|
|
866
|
+
if (instance.id && instance.id !== 'default') {
|
|
867
|
+
env.DOTCLAW_INSTANCE_ID = instance.id;
|
|
868
|
+
}
|
|
869
|
+
else {
|
|
870
|
+
delete env.DOTCLAW_INSTANCE_ID;
|
|
871
|
+
}
|
|
872
|
+
const code = runCliWithEnv(command, parsed, env);
|
|
873
|
+
if (code !== 0)
|
|
874
|
+
exitCode = code;
|
|
875
|
+
}
|
|
876
|
+
process.exit(exitCode);
|
|
877
|
+
}
|
|
878
|
+
if (parsed.flags.id) {
|
|
879
|
+
const normalized = normalizeInstanceId(parsed.flags.id);
|
|
880
|
+
if (!normalized) {
|
|
881
|
+
error('Invalid instance id.');
|
|
882
|
+
process.exit(1);
|
|
883
|
+
}
|
|
884
|
+
const targetHome = getInstanceHome(normalized);
|
|
885
|
+
const targetInstanceId = normalized === 'default' ? '' : normalized;
|
|
886
|
+
if (DOTCLAW_HOME !== targetHome || INSTANCE_ID !== targetInstanceId) {
|
|
887
|
+
const env = { ...process.env, DOTCLAW_HOME: targetHome };
|
|
888
|
+
if (targetInstanceId) {
|
|
889
|
+
env.DOTCLAW_INSTANCE_ID = targetInstanceId;
|
|
890
|
+
}
|
|
891
|
+
else {
|
|
892
|
+
delete env.DOTCLAW_INSTANCE_ID;
|
|
893
|
+
}
|
|
894
|
+
const exitCode = runCliWithEnv(command, parsed, env);
|
|
895
|
+
process.exit(exitCode);
|
|
896
|
+
}
|
|
897
|
+
}
|
|
572
898
|
switch (command) {
|
|
573
899
|
case 'setup':
|
|
574
900
|
await cmdSetup();
|
|
@@ -576,11 +902,17 @@ async function main() {
|
|
|
576
902
|
case 'configure':
|
|
577
903
|
await cmdConfigure();
|
|
578
904
|
break;
|
|
905
|
+
case 'add-instance':
|
|
906
|
+
await cmdAddInstance(parsed.args[0] || '');
|
|
907
|
+
break;
|
|
908
|
+
case 'instances':
|
|
909
|
+
await cmdInstances();
|
|
910
|
+
break;
|
|
579
911
|
case 'build':
|
|
580
912
|
await cmdBuild();
|
|
581
913
|
break;
|
|
582
914
|
case 'start':
|
|
583
|
-
await cmdStart(
|
|
915
|
+
await cmdStart(parsed.flags.foreground);
|
|
584
916
|
break;
|
|
585
917
|
case 'stop':
|
|
586
918
|
await cmdStop();
|
|
@@ -589,7 +921,7 @@ async function main() {
|
|
|
589
921
|
await cmdRestart();
|
|
590
922
|
break;
|
|
591
923
|
case 'logs':
|
|
592
|
-
await cmdLogs(
|
|
924
|
+
await cmdLogs(parsed.flags.follow);
|
|
593
925
|
break;
|
|
594
926
|
case 'doctor':
|
|
595
927
|
await cmdDoctor();
|