reflectt-node 0.1.4 → 0.1.6
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 +63 -146
- package/defaults/TEAM-ROLES.yaml +221 -31
- package/dist/activationEvents.d.ts +13 -2
- package/dist/activationEvents.d.ts.map +1 -1
- package/dist/activationEvents.js +172 -38
- package/dist/activationEvents.js.map +1 -1
- package/dist/activity.d.ts +72 -0
- package/dist/activity.d.ts.map +1 -0
- package/dist/activity.js +510 -0
- package/dist/activity.js.map +1 -0
- package/dist/alert-preflight.d.ts +33 -0
- package/dist/alert-preflight.d.ts.map +1 -1
- package/dist/alert-preflight.js +218 -2
- package/dist/alert-preflight.js.map +1 -1
- package/dist/assignment.d.ts.map +1 -1
- package/dist/assignment.js +11 -6
- package/dist/assignment.js.map +1 -1
- package/dist/boardHealthWorker.d.ts.map +1 -1
- package/dist/boardHealthWorker.js +25 -12
- package/dist/boardHealthWorker.js.map +1 -1
- package/dist/canvas-slots.d.ts +1 -1
- package/dist/channels.d.ts +1 -1
- package/dist/chat-approval-detector.d.ts.map +1 -1
- package/dist/chat-approval-detector.js +29 -11
- package/dist/chat-approval-detector.js.map +1 -1
- package/dist/chat.d.ts +14 -0
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +68 -4
- package/dist/chat.js.map +1 -1
- package/dist/cli.js +349 -28
- package/dist/cli.js.map +1 -1
- package/dist/cloud.d.ts +28 -1
- package/dist/cloud.d.ts.map +1 -1
- package/dist/cloud.js +62 -25
- package/dist/cloud.js.map +1 -1
- package/dist/compliance-detector.d.ts +42 -0
- package/dist/compliance-detector.d.ts.map +1 -0
- package/dist/compliance-detector.js +286 -0
- package/dist/compliance-detector.js.map +1 -0
- package/dist/continuity-loop.d.ts.map +1 -1
- package/dist/continuity-loop.js +7 -3
- package/dist/continuity-loop.js.map +1 -1
- package/dist/dashboard.d.ts +6 -2
- package/dist/dashboard.d.ts.map +1 -1
- package/dist/dashboard.js +84 -28
- package/dist/dashboard.js.map +1 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +24 -1
- package/dist/db.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +17 -6
- package/dist/doctor.js.map +1 -1
- package/dist/executionSweeper.d.ts +2 -0
- package/dist/executionSweeper.d.ts.map +1 -1
- package/dist/executionSweeper.js +60 -4
- package/dist/executionSweeper.js.map +1 -1
- package/dist/focus.d.ts +20 -0
- package/dist/focus.d.ts.map +1 -0
- package/dist/focus.js +57 -0
- package/dist/focus.js.map +1 -0
- package/dist/health.d.ts +1 -0
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js +47 -15
- package/dist/health.js.map +1 -1
- package/dist/hostConnectGuard.d.ts +25 -0
- package/dist/hostConnectGuard.d.ts.map +1 -0
- package/dist/hostConnectGuard.js +27 -0
- package/dist/hostConnectGuard.js.map +1 -0
- package/dist/index.js +257 -39
- package/dist/index.js.map +1 -1
- package/dist/insight-mutation.d.ts +26 -0
- package/dist/insight-mutation.d.ts.map +1 -1
- package/dist/insight-mutation.js +103 -12
- package/dist/insight-mutation.js.map +1 -1
- package/dist/insight-task-bridge.d.ts +1 -1
- package/dist/insight-task-bridge.d.ts.map +1 -1
- package/dist/insight-task-bridge.js +6 -3
- package/dist/insight-task-bridge.js.map +1 -1
- package/dist/insights.d.ts +20 -0
- package/dist/insights.d.ts.map +1 -1
- package/dist/insights.js +129 -4
- package/dist/insights.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +9 -8
- package/dist/mcp.js.map +1 -1
- package/dist/notificationDedupeGuard.d.ts +33 -0
- package/dist/notificationDedupeGuard.d.ts.map +1 -0
- package/dist/notificationDedupeGuard.js +88 -0
- package/dist/notificationDedupeGuard.js.map +1 -0
- package/dist/openclaw.d.ts.map +1 -1
- package/dist/openclaw.js +3 -2
- package/dist/openclaw.js.map +1 -1
- package/dist/policy.d.ts +1 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +3 -1
- package/dist/policy.js.map +1 -1
- package/dist/prAutoMerge.d.ts.map +1 -1
- package/dist/prAutoMerge.js +23 -0
- package/dist/prAutoMerge.js.map +1 -1
- package/dist/presence.d.ts +16 -1
- package/dist/presence.d.ts.map +1 -1
- package/dist/presence.js +97 -9
- package/dist/presence.js.map +1 -1
- package/dist/pulse.d.ts +60 -0
- package/dist/pulse.d.ts.map +1 -0
- package/dist/pulse.js +139 -0
- package/dist/pulse.js.map +1 -0
- package/dist/reflection-automation.d.ts.map +1 -1
- package/dist/reflection-automation.js +38 -0
- package/dist/reflection-automation.js.map +1 -1
- package/dist/release.d.ts +2 -0
- package/dist/release.d.ts.map +1 -1
- package/dist/release.js +14 -1
- package/dist/release.js.map +1 -1
- package/dist/request-tracker.d.ts +6 -0
- package/dist/request-tracker.d.ts.map +1 -1
- package/dist/request-tracker.js +31 -12
- package/dist/request-tracker.js.map +1 -1
- package/dist/scopeOverlap.d.ts +32 -0
- package/dist/scopeOverlap.d.ts.map +1 -0
- package/dist/scopeOverlap.js +219 -0
- package/dist/scopeOverlap.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +736 -117
- package/dist/server.js.map +1 -1
- package/dist/service-probe.d.ts.map +1 -1
- package/dist/service-probe.js +39 -2
- package/dist/service-probe.js.map +1 -1
- package/dist/shipped-heartbeat.d.ts +1 -1
- package/dist/shipped-heartbeat.js +1 -1
- package/dist/taskPrecheck.js +6 -6
- package/dist/taskPrecheck.js.map +1 -1
- package/dist/tasks-next-diagnostics.d.ts +15 -0
- package/dist/tasks-next-diagnostics.d.ts.map +1 -0
- package/dist/tasks-next-diagnostics.js +33 -0
- package/dist/tasks-next-diagnostics.js.map +1 -0
- package/dist/tasks.d.ts +3 -2
- package/dist/tasks.d.ts.map +1 -1
- package/dist/tasks.js +41 -16
- package/dist/tasks.js.map +1 -1
- package/dist/team-config.d.ts.map +1 -1
- package/dist/team-config.js +20 -0
- package/dist/team-config.js.map +1 -1
- package/dist/todoHoardingGuard.d.ts +35 -0
- package/dist/todoHoardingGuard.d.ts.map +1 -0
- package/dist/todoHoardingGuard.js +150 -0
- package/dist/todoHoardingGuard.js.map +1 -0
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +16 -0
- package/dist/version.js.map +1 -0
- package/dist/working-contract.d.ts.map +1 -1
- package/dist/working-contract.js +59 -3
- package/dist/working-contract.js.map +1 -1
- package/package.json +5 -1
- package/public/dashboard.js +161 -20
- package/public/docs.md +68 -8
- package/public/polls-mock.html +1 -1
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Entry point
|
|
7
7
|
*/
|
|
8
8
|
import { createServer } from './server.js';
|
|
9
|
-
import { serverConfig, isDev, openclawConfig, DATA_DIR } from './config.js';
|
|
9
|
+
import { serverConfig, isDev, openclawConfig, DATA_DIR, REFLECTT_HOME } from './config.js';
|
|
10
10
|
import { acquirePidLock, releasePidLock, getPidPath } from './pidlock.js';
|
|
11
11
|
import { startCloudIntegration, stopCloudIntegration, isCloudConfigured, watchConfigForCloudChanges, stopConfigWatcher } from './cloud.js';
|
|
12
12
|
import { stopConfigWatch } from './assignment.js';
|
|
@@ -17,10 +17,10 @@ import { startTeamConfigLinter, stopTeamConfigLinter } from './team-config.js';
|
|
|
17
17
|
* Build-freshness check: warn if dist/ is older than src/
|
|
18
18
|
* Prevents silently running stale compiled code after source changes.
|
|
19
19
|
*/
|
|
20
|
-
import { statSync, readdirSync, existsSync, readFileSync } from 'fs';
|
|
20
|
+
import { statSync, readdirSync, existsSync, readFileSync, writeFileSync } from 'fs';
|
|
21
21
|
import { join, dirname } from 'path';
|
|
22
22
|
import { fileURLToPath } from 'url';
|
|
23
|
-
import { hostname as osHostname } from 'os';
|
|
23
|
+
import { hostname as osHostname, homedir } from 'os';
|
|
24
24
|
import { randomBytes } from 'crypto';
|
|
25
25
|
function checkBuildFreshness() {
|
|
26
26
|
try {
|
|
@@ -149,7 +149,7 @@ function checkDockerBootstrap() {
|
|
|
149
149
|
console.log('│ 2. Restart: docker-compose up -d │');
|
|
150
150
|
console.log('│ │');
|
|
151
151
|
console.log('│ Get your token: openclaw gateway token │');
|
|
152
|
-
console.log('│ Full guide: https://reflectt.ai
|
|
152
|
+
console.log('│ Full guide: https://app.reflectt.ai │');
|
|
153
153
|
console.log('└──────────────────────────────────────────────────────────┘');
|
|
154
154
|
console.log('');
|
|
155
155
|
}
|
|
@@ -169,6 +169,31 @@ async function main() {
|
|
|
169
169
|
checkBuildFreshness();
|
|
170
170
|
// Docker identity isolation (must run before bootstrap)
|
|
171
171
|
checkDockerIdentity();
|
|
172
|
+
// Branch guard: refuse to run non-main branch against production DB
|
|
173
|
+
// unless REFLECTT_ALLOW_BRANCH_DB=1 is set
|
|
174
|
+
try {
|
|
175
|
+
const { getBuildInfo } = await import('./buildInfo.js');
|
|
176
|
+
const build = getBuildInfo();
|
|
177
|
+
const branch = build.gitBranch || '';
|
|
178
|
+
const isMainBranch = branch === 'main' || branch === 'master' || branch === '';
|
|
179
|
+
const isProdDb = DATA_DIR === join(homedir(), '.reflectt', 'data');
|
|
180
|
+
const allowOverride = process.env.REFLECTT_ALLOW_BRANCH_DB === '1';
|
|
181
|
+
if (!isMainBranch && isProdDb && !allowOverride) {
|
|
182
|
+
console.error('');
|
|
183
|
+
console.error(`🚫 [BRANCH GUARD] Refusing to start: branch "${branch}" is using production DB path`);
|
|
184
|
+
console.error(` DB path: ${DATA_DIR}`);
|
|
185
|
+
console.error(` Only "main" branch should run against the production database.`);
|
|
186
|
+
console.error(` To override: set REFLECTT_ALLOW_BRANCH_DB=1`);
|
|
187
|
+
console.error('');
|
|
188
|
+
process.exit(1);
|
|
189
|
+
}
|
|
190
|
+
else if (!isMainBranch && isProdDb && allowOverride) {
|
|
191
|
+
console.warn(`⚠️ [BRANCH GUARD] Running branch "${branch}" against production DB (override active)`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
// Non-fatal — skip if build-info not available
|
|
196
|
+
}
|
|
172
197
|
// Docker bootstrap guidance (non-blocking)
|
|
173
198
|
checkDockerBootstrap();
|
|
174
199
|
// Dev-mode port guard: prevent dev servers from hijacking production port
|
|
@@ -199,7 +224,10 @@ async function main() {
|
|
|
199
224
|
initVectorSearch();
|
|
200
225
|
}
|
|
201
226
|
catch {
|
|
202
|
-
|
|
227
|
+
// Vector search is optional — silent unless debug mode
|
|
228
|
+
if (process.env.DEBUG || process.env.REFLECTT_DEBUG) {
|
|
229
|
+
console.warn('⚠️ Vector search not available (sqlite-vec not installed)');
|
|
230
|
+
}
|
|
203
231
|
}
|
|
204
232
|
// Team config linter (TEAM.md + TEAM-ROLES.yaml + TEAM-STANDARDS.md)
|
|
205
233
|
startTeamConfigLinter();
|
|
@@ -209,6 +237,38 @@ async function main() {
|
|
|
209
237
|
host: serverConfig.host,
|
|
210
238
|
});
|
|
211
239
|
const baseUrl = `http://${serverConfig.host}:${serverConfig.port}`;
|
|
240
|
+
// ── Startup task count guard ──────────────────────────────────────
|
|
241
|
+
// Detect unexpected task count drops that indicate DB wipe/corruption.
|
|
242
|
+
try {
|
|
243
|
+
const db = getDb();
|
|
244
|
+
const currentCount = db.prepare('SELECT COUNT(*) as count FROM tasks').get()?.count ?? 0;
|
|
245
|
+
const lastKnown = db.prepare("SELECT value FROM kv WHERE key = 'startup_task_count'").get();
|
|
246
|
+
const lastCount = lastKnown ? parseInt(lastKnown.value, 10) : 0;
|
|
247
|
+
// Save current count for next startup
|
|
248
|
+
db.prepare("INSERT OR REPLACE INTO kv (key, value) VALUES ('startup_task_count', ?)").run(String(currentCount));
|
|
249
|
+
if (lastCount > 0 && currentCount < lastCount * 0.5) {
|
|
250
|
+
const dropPct = Math.round((1 - currentCount / lastCount) * 100);
|
|
251
|
+
console.error(`🚨 [STARTUP GUARD] Task count dropped ${dropPct}%: ${lastCount} → ${currentCount}. Possible DB wipe/corruption!`);
|
|
252
|
+
console.error(` Data dir: ${DATA_DIR}`);
|
|
253
|
+
console.error(` DB path: ${join(DATA_DIR, 'reflectt.db')}`);
|
|
254
|
+
// Post to chat if possible (best-effort)
|
|
255
|
+
try {
|
|
256
|
+
const { chatManager } = await import('./chat.js');
|
|
257
|
+
await chatManager.sendMessage({
|
|
258
|
+
from: 'system',
|
|
259
|
+
content: `🚨 **STARTUP GUARD ALERT**: Task count dropped ${dropPct}% (${lastCount} → ${currentCount}). Possible DB wipe or corruption. Data dir: \`${DATA_DIR}\``,
|
|
260
|
+
channel: 'ops',
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
catch { /* non-critical */ }
|
|
264
|
+
}
|
|
265
|
+
else if (currentCount > 0) {
|
|
266
|
+
console.log(`📊 Startup guard: ${currentCount} tasks (previous: ${lastCount || 'first run'})`);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
catch (err) {
|
|
270
|
+
console.warn('[STARTUP GUARD] Could not run task count check:', err);
|
|
271
|
+
}
|
|
212
272
|
console.log(`✅ Server running at ${baseUrl}`);
|
|
213
273
|
console.log(` - Dashboard: ${baseUrl}/dashboard`);
|
|
214
274
|
console.log(` - REST API: ${baseUrl}`);
|
|
@@ -219,12 +279,7 @@ async function main() {
|
|
|
219
279
|
if (openclawConfig.gatewayToken) {
|
|
220
280
|
console.log(`🔗 OpenClaw gateway: configured (${openclawConfig.gatewayUrl})`);
|
|
221
281
|
}
|
|
222
|
-
|
|
223
|
-
console.log('⚠️ OpenClaw gateway: not configured');
|
|
224
|
-
console.log(' To connect agents, set OPENCLAW_GATEWAY_URL and OPENCLAW_GATEWAY_TOKEN');
|
|
225
|
-
console.log(' Get your token: openclaw gateway token');
|
|
226
|
-
console.log(' Guide: https://reflectt.ai/bootstrap');
|
|
227
|
-
}
|
|
282
|
+
// Note: OpenClaw gateway is optional — suppress the warning for users connecting via Reflectt Cloud
|
|
228
283
|
// Cloud integration (checks env vars + config.json for credentials)
|
|
229
284
|
if (isCloudConfigured()) {
|
|
230
285
|
// Non-blocking: don't prevent server from starting if cloud is down
|
|
@@ -233,7 +288,12 @@ async function main() {
|
|
|
233
288
|
});
|
|
234
289
|
}
|
|
235
290
|
else {
|
|
236
|
-
console.log('
|
|
291
|
+
console.log('');
|
|
292
|
+
console.log('☁️ Connect to Reflectt Cloud (optional but recommended):');
|
|
293
|
+
console.log(' 1. Get a join token at: https://app.reflectt.ai → Hosts → Add Host');
|
|
294
|
+
console.log(' 2. Run: npx reflectt host connect --join-token <token>');
|
|
295
|
+
console.log(' (or: reflectt host connect --join-token <token> if installed globally)');
|
|
296
|
+
console.log('');
|
|
237
297
|
// Watch config.json so we auto-connect when agent enrolls
|
|
238
298
|
watchConfigForCloudChanges();
|
|
239
299
|
}
|
|
@@ -241,46 +301,204 @@ async function main() {
|
|
|
241
301
|
try {
|
|
242
302
|
const { taskManager } = await import('./tasks.js');
|
|
243
303
|
const { createStarterTeam } = await import('./starter-team.js');
|
|
304
|
+
// Seed TEAM.md if missing (every new node needs one)
|
|
305
|
+
const teamMdPath = join(REFLECTT_HOME, 'TEAM.md');
|
|
306
|
+
if (!existsSync(teamMdPath)) {
|
|
307
|
+
const teamName = process.env.TEAM_NAME || 'My Team';
|
|
308
|
+
const teamIntent = process.env.TEAM_INTENT || '';
|
|
309
|
+
const teamMdContent = [
|
|
310
|
+
`# ${teamName}`,
|
|
311
|
+
'',
|
|
312
|
+
teamIntent ? `> ${teamIntent}` : '> A team of AI agents working together.',
|
|
313
|
+
'',
|
|
314
|
+
'## How We Work',
|
|
315
|
+
'',
|
|
316
|
+
'- **Reflect → Tasks → Improve** — every insight becomes an actionable task',
|
|
317
|
+
'- **Quality over quantity** — ship fewer things that actually work',
|
|
318
|
+
'- **Read before writing** — understand what exists before changing it',
|
|
319
|
+
'- **Small changes, shipped often** — easier to review, revert, and understand',
|
|
320
|
+
'',
|
|
321
|
+
'## Communication',
|
|
322
|
+
'',
|
|
323
|
+
'- Status updates → task comments first',
|
|
324
|
+
'- Ship announcements → #shipping',
|
|
325
|
+
'- Blockers → #blockers with assignee + task ID',
|
|
326
|
+
'- #general is for decisions and coordination',
|
|
327
|
+
].join('\n');
|
|
328
|
+
writeFileSync(teamMdPath, teamMdContent, 'utf-8');
|
|
329
|
+
console.log(`🌱 Seeded TEAM.md at ${teamMdPath}`);
|
|
330
|
+
}
|
|
244
331
|
const allTasks = taskManager.listTasks({});
|
|
245
332
|
const agentsDir = join(DATA_DIR, 'agents');
|
|
246
333
|
const hasAgents = existsSync(agentsDir) && readdirSync(agentsDir).filter(f => !f.startsWith('.')).length > 0;
|
|
247
334
|
if (allTasks.length === 0 && !hasAgents) {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
'
|
|
335
|
+
const teamIntent = process.env.TEAM_INTENT || '';
|
|
336
|
+
if (teamIntent) {
|
|
337
|
+
// ── Intent-driven bootstrap: save intent + create bootstrap task ──
|
|
338
|
+
console.log('🌱 First boot detected with TEAM_INTENT — creating bootstrap task…');
|
|
339
|
+
// Save intent to a file the main agent can read
|
|
340
|
+
const intentPath = join(DATA_DIR, 'TEAM_INTENT.md');
|
|
341
|
+
const { writeFileSync, mkdirSync } = await import('node:fs');
|
|
342
|
+
mkdirSync(DATA_DIR, { recursive: true });
|
|
343
|
+
writeFileSync(intentPath, [
|
|
344
|
+
'# Team Intent',
|
|
258
345
|
'',
|
|
259
|
-
'
|
|
346
|
+
'> This was provided by the user during onboarding.',
|
|
260
347
|
'',
|
|
261
|
-
|
|
262
|
-
'2. **Explore the dashboard** — visit `/dashboard` to see tasks, agents, and chat',
|
|
263
|
-
'3. **Try the API** — `GET /capabilities` lists every endpoint',
|
|
264
|
-
'4. **Connect to the cloud** — `reflectt host connect --join-token <token>`',
|
|
348
|
+
teamIntent,
|
|
265
349
|
'',
|
|
266
|
-
'
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
350
|
+
'---',
|
|
351
|
+
'',
|
|
352
|
+
'Use `POST /bootstrap/team` to get the TEAM-ROLES.yaml schema,',
|
|
353
|
+
'then `PUT /config/team-roles` to save your team configuration.',
|
|
354
|
+
].join('\n'), 'utf-8');
|
|
355
|
+
console.log(` Saved team intent to ${intentPath}`);
|
|
356
|
+
// Create a single "main" agent so the gateway has someone to talk to
|
|
357
|
+
const result = await createStarterTeam({
|
|
358
|
+
agents: [{
|
|
359
|
+
name: 'main',
|
|
360
|
+
role: 'team-lead',
|
|
361
|
+
description: 'Bootstrap agent — reads TEAM_INTENT and creates the rest of the team.',
|
|
362
|
+
soulMd: [
|
|
363
|
+
'# Main Agent',
|
|
364
|
+
'',
|
|
365
|
+
'You are the first agent on a new team. Your job:',
|
|
366
|
+
'',
|
|
367
|
+
'1. Read TEAM_INTENT.md (in your data directory) — this is what the user wants',
|
|
368
|
+
'2. Call `GET /bootstrap/team` to get the team schema and examples',
|
|
369
|
+
'3. Design a team that fulfills the user\'s intent',
|
|
370
|
+
'4. Save it via `PUT /config/team-roles` with the YAML config',
|
|
371
|
+
'5. Post an intro message to #general explaining the team you built',
|
|
372
|
+
'6. Create initial tasks for each agent',
|
|
373
|
+
'',
|
|
374
|
+
'## The User Said:',
|
|
375
|
+
'',
|
|
376
|
+
teamIntent,
|
|
377
|
+
'',
|
|
378
|
+
'## Rules',
|
|
379
|
+
'- Build the right team for their needs, not a generic template',
|
|
380
|
+
'- Give agents specific names and personalities, not "agent-1"',
|
|
381
|
+
'- Start small (2-4 agents) — they can add more later',
|
|
382
|
+
'- Post to #general when done so the user sees activity immediately',
|
|
383
|
+
].join('\n'),
|
|
384
|
+
}],
|
|
385
|
+
});
|
|
386
|
+
console.log(` Created bootstrap agent: ${result.created.join(', ') || 'main (already exists)'}`);
|
|
387
|
+
// Create the bootstrap task
|
|
388
|
+
taskManager.createTask({
|
|
389
|
+
status: 'todo',
|
|
390
|
+
createdBy: 'system',
|
|
391
|
+
title: 'Bootstrap your team from the user\'s intent',
|
|
392
|
+
description: [
|
|
393
|
+
'## Your First Task',
|
|
394
|
+
'',
|
|
395
|
+
'The user described what they need:',
|
|
396
|
+
'',
|
|
397
|
+
`> ${teamIntent}`,
|
|
398
|
+
'',
|
|
399
|
+
'### Steps:',
|
|
400
|
+
'1. Read `TEAM_INTENT.md` for the full intent',
|
|
401
|
+
'2. Call `GET /bootstrap/team` for the TEAM-ROLES.yaml schema',
|
|
402
|
+
'3. Design agents that match what the user needs',
|
|
403
|
+
'4. Save the team config via `PUT /config/team-roles`',
|
|
404
|
+
'5. Post an intro to #general: "Hi! I\'m [name], your team lead. Here\'s the team I\'ve set up..."',
|
|
405
|
+
'6. Create starter tasks for each agent',
|
|
406
|
+
'',
|
|
407
|
+
'The user should see a working team with named agents when they check the dashboard.',
|
|
408
|
+
].join('\n'),
|
|
409
|
+
priority: 'P0',
|
|
410
|
+
assignee: 'main',
|
|
411
|
+
done_criteria: [
|
|
412
|
+
'TEAM-ROLES.yaml saved with agents matching user intent',
|
|
413
|
+
'Intro message posted to #general',
|
|
414
|
+
'At least one task created per agent',
|
|
415
|
+
],
|
|
416
|
+
metadata: { source: 'first-boot-intent', reflection_exempt: true, reflection_exempt_reason: 'Auto-created bootstrap task' },
|
|
417
|
+
});
|
|
418
|
+
console.log(' Created bootstrap task for main agent');
|
|
419
|
+
}
|
|
420
|
+
else {
|
|
421
|
+
// ── Default bootstrap: no intent, create starter team ──
|
|
422
|
+
console.log('🌱 First boot detected — seeding starter team…');
|
|
423
|
+
const result = await createStarterTeam();
|
|
424
|
+
console.log(` Created agents: ${result.created.join(', ') || 'none (already exist)'}`);
|
|
425
|
+
// Create a welcome task so the dashboard isn't empty
|
|
426
|
+
taskManager.createTask({
|
|
427
|
+
status: 'todo',
|
|
428
|
+
createdBy: 'system',
|
|
429
|
+
title: 'Welcome to reflectt-node — explore the dashboard and connect your agents',
|
|
430
|
+
description: [
|
|
431
|
+
'## Getting Started',
|
|
432
|
+
'',
|
|
433
|
+
'Your reflectt-node is running! Here\'s what to do next:',
|
|
434
|
+
'',
|
|
435
|
+
'1. **Connect OpenClaw agents** — set `OPENCLAW_GATEWAY_URL` and `OPENCLAW_GATEWAY_TOKEN`',
|
|
436
|
+
'2. **Explore the dashboard** — visit `/dashboard` to see tasks, agents, and chat',
|
|
437
|
+
'3. **Try the API** — `GET /capabilities` lists every endpoint',
|
|
438
|
+
'4. **Connect to the cloud** — `reflectt host connect --join-token <token>`',
|
|
439
|
+
'',
|
|
440
|
+
'When done, move this task to `done`. Your first task cycle is complete!',
|
|
441
|
+
].join('\n'),
|
|
442
|
+
priority: 'P2',
|
|
443
|
+
assignee: 'builder',
|
|
444
|
+
reviewer: 'ops',
|
|
445
|
+
done_criteria: [
|
|
446
|
+
'Dashboard loads and shows this task',
|
|
447
|
+
'At least one agent connected via OpenClaw',
|
|
448
|
+
],
|
|
449
|
+
metadata: { source: 'first-boot', reflection_exempt: true, reflection_exempt_reason: 'Auto-created welcome task' },
|
|
450
|
+
});
|
|
451
|
+
console.log(' Created welcome task');
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
// Print clear next-steps for first-time users
|
|
455
|
+
if (allTasks.length === 0) {
|
|
456
|
+
const cloudConfigured = isCloudConfigured();
|
|
457
|
+
console.log('');
|
|
458
|
+
console.log('┌──────────────────────────────────────────────┐');
|
|
459
|
+
console.log('│ 🎉 reflectt-node is running! │');
|
|
460
|
+
console.log('│ │');
|
|
461
|
+
console.log(`│ Dashboard: ${baseUrl}/dashboard`);
|
|
462
|
+
console.log(`│ API docs: ${baseUrl}/docs`);
|
|
463
|
+
if (!cloudConfigured) {
|
|
464
|
+
console.log('│ │');
|
|
465
|
+
console.log('│ Connect to Reflectt Cloud: │');
|
|
466
|
+
console.log('│ npx reflectt host connect │');
|
|
467
|
+
console.log('│ --join-token <your-token> │');
|
|
468
|
+
}
|
|
469
|
+
console.log('│ │');
|
|
470
|
+
console.log('│ Your agents are ready. Send them a task! │');
|
|
471
|
+
console.log('└──────────────────────────────────────────────┘');
|
|
472
|
+
console.log('');
|
|
278
473
|
}
|
|
279
474
|
}
|
|
280
475
|
catch (err) {
|
|
281
476
|
// Non-blocking — don't prevent server from starting
|
|
282
477
|
console.warn(`⚠️ First-boot seeding: ${err?.message || err}`);
|
|
283
478
|
}
|
|
479
|
+
// Post-restart auto-wake: seed presence + @mention all agents
|
|
480
|
+
try {
|
|
481
|
+
const { getAgentRoles } = await import('./assignment.js');
|
|
482
|
+
const { chatManager } = await import('./chat.js');
|
|
483
|
+
const { presenceManager } = await import('./presence.js');
|
|
484
|
+
const agents = getAgentRoles();
|
|
485
|
+
if (agents.length > 0) {
|
|
486
|
+
// Seed presence so idle-nudge system has agents to evaluate
|
|
487
|
+
for (const agent of agents) {
|
|
488
|
+
presenceManager.updatePresence(agent.name, 'idle');
|
|
489
|
+
}
|
|
490
|
+
const mentions = agents.map(a => `@${a.name}`).join(' ');
|
|
491
|
+
await chatManager.sendMessage({
|
|
492
|
+
from: 'system',
|
|
493
|
+
content: `${mentions} Server restarted. Resume your work.`,
|
|
494
|
+
channel: 'general',
|
|
495
|
+
});
|
|
496
|
+
console.log(`🔔 Auto-wake: seeded presence + pinged ${agents.length} agents`);
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
catch (err) {
|
|
500
|
+
console.warn(`⚠️ Auto-wake failed: ${err?.message || err}`);
|
|
501
|
+
}
|
|
284
502
|
// Graceful shutdown
|
|
285
503
|
const shutdown = async (signal) => {
|
|
286
504
|
console.log(`\n${signal} received, shutting down...`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,9 +24,35 @@ export interface InsightPatchRequest {
|
|
|
24
24
|
cluster_key_override?: string;
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
+
export interface InsightCooldownRequest {
|
|
28
|
+
actor: string;
|
|
29
|
+
reason: string;
|
|
30
|
+
/** Absolute ms timestamp; defaults to now+14d */
|
|
31
|
+
cooldown_until?: number;
|
|
32
|
+
/** Stored in cooldown_reason; defaults to reason */
|
|
33
|
+
cooldown_reason?: string;
|
|
34
|
+
/** Optional operator notes (merged into metadata.notes) */
|
|
35
|
+
notes?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface InsightCloseRequest {
|
|
38
|
+
actor: string;
|
|
39
|
+
reason: string;
|
|
40
|
+
/** Optional operator notes (merged into metadata.notes) */
|
|
41
|
+
notes?: string;
|
|
42
|
+
}
|
|
27
43
|
export declare function patchInsightById(insightId: string, patch: InsightPatchRequest): {
|
|
28
44
|
success: boolean;
|
|
29
45
|
insight?: Insight;
|
|
30
46
|
error?: string;
|
|
31
47
|
};
|
|
48
|
+
export declare function cooldownInsightById(insightId: string, req: InsightCooldownRequest): {
|
|
49
|
+
success: boolean;
|
|
50
|
+
insight?: Insight;
|
|
51
|
+
error?: string;
|
|
52
|
+
};
|
|
53
|
+
export declare function closeInsightById(insightId: string, req: InsightCloseRequest): {
|
|
54
|
+
success: boolean;
|
|
55
|
+
insight?: Insight;
|
|
56
|
+
error?: string;
|
|
57
|
+
};
|
|
32
58
|
//# sourceMappingURL=insight-mutation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insight-mutation.d.ts","sourceRoot":"","sources":["../src/insight-mutation.ts"],"names":[],"mappings":"AAOA,OAAO,EAAoB,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"insight-mutation.d.ts","sourceRoot":"","sources":["../src/insight-mutation.ts"],"names":[],"mappings":"AAOA,OAAO,EAAoB,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAQlF,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAClE,OAAO,EAAE,MAAM,CAAA;CAChB;AAKD,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAc3F;AAED,wBAAgB,8BAA8B,CAAC,KAAK,SAAK,GAAG,yBAAyB,EAAE,CAEtF;AAED,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAID,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAC9B,CAAA;CACF;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAiED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAwFvI;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,sBAAsB,GAC1B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAgDzD;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,mBAAmB,GACvB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAwCzD"}
|
package/dist/insight-mutation.js
CHANGED
|
@@ -5,6 +5,7 @@ import path from 'node:path';
|
|
|
5
5
|
import { getDb, safeJsonParse, safeJsonStringify } from './db.js';
|
|
6
6
|
import { DATA_DIR } from './config.js';
|
|
7
7
|
import { INSIGHT_STATUSES } from './insights.js';
|
|
8
|
+
const DEFAULT_COOLDOWN_14D_MS = 14 * 24 * 60 * 60 * 1000;
|
|
8
9
|
// ── Audit log ─────────────────────────────────────────────────────────────
|
|
9
10
|
const AUDIT_FILE = process.env.REFLECTT_INSIGHT_MUTATION_AUDIT_FILE || path.join(DATA_DIR, 'insight-mutation-audit.jsonl');
|
|
10
11
|
const auditEntries = [];
|
|
@@ -47,6 +48,8 @@ function diff(before, after) {
|
|
|
47
48
|
'workflow_stage',
|
|
48
49
|
'failure_family',
|
|
49
50
|
'impacted_unit',
|
|
51
|
+
'cooldown_until',
|
|
52
|
+
'cooldown_reason',
|
|
50
53
|
'metadata',
|
|
51
54
|
'updated_at',
|
|
52
55
|
];
|
|
@@ -58,18 +61,8 @@ function diff(before, after) {
|
|
|
58
61
|
}
|
|
59
62
|
return changes;
|
|
60
63
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (!patch.actor?.trim())
|
|
64
|
-
return { success: false, error: 'actor is required' };
|
|
65
|
-
if (!patch.reason?.trim())
|
|
66
|
-
return { success: false, error: 'reason is required' };
|
|
67
|
-
const row = db.prepare('SELECT * FROM insights WHERE id = ?').get(insightId);
|
|
68
|
-
if (!row)
|
|
69
|
-
return { success: false, error: 'Insight not found' };
|
|
70
|
-
// Defer to rowToInsight mapping via getInsight to keep consistent shapes.
|
|
71
|
-
const current = db.prepare('SELECT * FROM insights WHERE id = ?').get(insightId);
|
|
72
|
-
const before = {
|
|
64
|
+
function rowToInsightShape(current) {
|
|
65
|
+
return {
|
|
73
66
|
id: current.id,
|
|
74
67
|
cluster_key: current.cluster_key,
|
|
75
68
|
workflow_stage: current.workflow_stage,
|
|
@@ -93,6 +86,26 @@ export function patchInsightById(insightId, patch) {
|
|
|
93
86
|
created_at: current.created_at,
|
|
94
87
|
updated_at: current.updated_at,
|
|
95
88
|
};
|
|
89
|
+
}
|
|
90
|
+
function mergeAllowedMetadata(beforeMeta, notes, cluster_key_override) {
|
|
91
|
+
const next = { ...(beforeMeta ?? {}) };
|
|
92
|
+
if (typeof notes === 'string')
|
|
93
|
+
next.notes = notes;
|
|
94
|
+
if (typeof cluster_key_override === 'string')
|
|
95
|
+
next.cluster_key_override = cluster_key_override;
|
|
96
|
+
return next;
|
|
97
|
+
}
|
|
98
|
+
export function patchInsightById(insightId, patch) {
|
|
99
|
+
const db = getDb();
|
|
100
|
+
if (!patch.actor?.trim())
|
|
101
|
+
return { success: false, error: 'actor is required' };
|
|
102
|
+
if (!patch.reason?.trim())
|
|
103
|
+
return { success: false, error: 'reason is required' };
|
|
104
|
+
const row = db.prepare('SELECT * FROM insights WHERE id = ?').get(insightId);
|
|
105
|
+
if (!row)
|
|
106
|
+
return { success: false, error: 'Insight not found' };
|
|
107
|
+
const current = db.prepare('SELECT * FROM insights WHERE id = ?').get(insightId);
|
|
108
|
+
const before = rowToInsightShape(current);
|
|
96
109
|
// Validate status
|
|
97
110
|
if (patch.status !== undefined) {
|
|
98
111
|
if (!INSIGHT_STATUSES.includes(patch.status)) {
|
|
@@ -157,4 +170,82 @@ export function patchInsightById(insightId, patch) {
|
|
|
157
170
|
});
|
|
158
171
|
return { success: true, insight: after };
|
|
159
172
|
}
|
|
173
|
+
export function cooldownInsightById(insightId, req) {
|
|
174
|
+
const db = getDb();
|
|
175
|
+
if (!req.actor?.trim())
|
|
176
|
+
return { success: false, error: 'actor is required' };
|
|
177
|
+
if (!req.reason?.trim())
|
|
178
|
+
return { success: false, error: 'reason is required' };
|
|
179
|
+
const current = db.prepare('SELECT * FROM insights WHERE id = ?').get(insightId);
|
|
180
|
+
if (!current)
|
|
181
|
+
return { success: false, error: 'Insight not found' };
|
|
182
|
+
const before = rowToInsightShape(current);
|
|
183
|
+
const now = Date.now();
|
|
184
|
+
const until = typeof req.cooldown_until === 'number' && Number.isFinite(req.cooldown_until)
|
|
185
|
+
? req.cooldown_until
|
|
186
|
+
: now + DEFAULT_COOLDOWN_14D_MS;
|
|
187
|
+
const cooldownReason = (req.cooldown_reason && String(req.cooldown_reason).trim())
|
|
188
|
+
? String(req.cooldown_reason).trim()
|
|
189
|
+
: req.reason;
|
|
190
|
+
// Merge metadata (allowlist only)
|
|
191
|
+
const beforeMetaStr = (current.metadata ?? null);
|
|
192
|
+
const nextMeta = mergeAllowedMetadata(before.metadata, req.notes);
|
|
193
|
+
const nextMetaStr = safeJsonStringify(nextMeta);
|
|
194
|
+
db.prepare(`
|
|
195
|
+
UPDATE insights SET
|
|
196
|
+
status = 'cooldown',
|
|
197
|
+
cooldown_until = ?,
|
|
198
|
+
cooldown_reason = ?,
|
|
199
|
+
metadata = ?,
|
|
200
|
+
updated_at = ?
|
|
201
|
+
WHERE id = ?
|
|
202
|
+
`).run(until, cooldownReason, nextMetaStr ?? beforeMetaStr, now, insightId);
|
|
203
|
+
const updated = db.prepare('SELECT * FROM insights WHERE id = ?').get(insightId);
|
|
204
|
+
const after = rowToInsightShape(updated);
|
|
205
|
+
void recordInsightMutation({
|
|
206
|
+
timestamp: now,
|
|
207
|
+
insightId,
|
|
208
|
+
actor: req.actor,
|
|
209
|
+
reason: req.reason,
|
|
210
|
+
changes: diff(before, after),
|
|
211
|
+
context: 'POST /insights/:id/cooldown',
|
|
212
|
+
});
|
|
213
|
+
return { success: true, insight: after };
|
|
214
|
+
}
|
|
215
|
+
export function closeInsightById(insightId, req) {
|
|
216
|
+
const db = getDb();
|
|
217
|
+
if (!req.actor?.trim())
|
|
218
|
+
return { success: false, error: 'actor is required' };
|
|
219
|
+
if (!req.reason?.trim())
|
|
220
|
+
return { success: false, error: 'reason is required' };
|
|
221
|
+
const current = db.prepare('SELECT * FROM insights WHERE id = ?').get(insightId);
|
|
222
|
+
if (!current)
|
|
223
|
+
return { success: false, error: 'Insight not found' };
|
|
224
|
+
const before = rowToInsightShape(current);
|
|
225
|
+
const now = Date.now();
|
|
226
|
+
// Merge metadata (allowlist only)
|
|
227
|
+
const beforeMetaStr = (current.metadata ?? null);
|
|
228
|
+
const nextMeta = mergeAllowedMetadata(before.metadata, req.notes);
|
|
229
|
+
const nextMetaStr = safeJsonStringify(nextMeta);
|
|
230
|
+
db.prepare(`
|
|
231
|
+
UPDATE insights SET
|
|
232
|
+
status = 'closed',
|
|
233
|
+
cooldown_until = NULL,
|
|
234
|
+
cooldown_reason = NULL,
|
|
235
|
+
metadata = ?,
|
|
236
|
+
updated_at = ?
|
|
237
|
+
WHERE id = ?
|
|
238
|
+
`).run(nextMetaStr ?? beforeMetaStr, now, insightId);
|
|
239
|
+
const updated = db.prepare('SELECT * FROM insights WHERE id = ?').get(insightId);
|
|
240
|
+
const after = rowToInsightShape(updated);
|
|
241
|
+
void recordInsightMutation({
|
|
242
|
+
timestamp: now,
|
|
243
|
+
insightId,
|
|
244
|
+
actor: req.actor,
|
|
245
|
+
reason: req.reason,
|
|
246
|
+
changes: diff(before, after),
|
|
247
|
+
context: 'POST /insights/:id/close',
|
|
248
|
+
});
|
|
249
|
+
return { success: true, insight: after };
|
|
250
|
+
}
|
|
160
251
|
//# sourceMappingURL=insight-mutation.js.map
|