Files
nanoclaw/scripts/seed-discord.ts
gavrielc 22498ae69c fix: remaining npm→pnpm gaps + dockerignore for pnpm symlinks
- container/.dockerignore (new): exclude agent-runner/node_modules and
  agent-runner/dist so COPY agent-runner/ ./ doesn't clobber the
  pnpm-installed node_modules with host directories. Under npm's flat
  layout this was forgiving; under pnpm's symlink layout it's a hard
  conflict (overlay2 cannot copy onto a symlink target).
- setup/{groups,service}.ts: execSync('pnpm run build') not npm.
- setup/index.ts: usage string.
- scripts/*.ts: usage comments + seed-discord final log.
- .claude/settings.json: permission allowlist entries.
- .claude/skills/{add-whatsapp-v2,add-dashboard}/SKILL.md: docs.
- container/skills/{frontend-engineer,vercel-cli,self-customize}/SKILL.md:
  agent-facing docs still told the container agent to run npm.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 09:53:00 +03:00

77 lines
2.0 KiB
TypeScript

/**
* Seed the v2 central DB with a Discord agent group + messaging group.
*
* Usage: pnpm exec tsx scripts/seed-discord.ts
*/
import path from 'path';
import { DATA_DIR } from '../src/config.js';
import { initDb } from '../src/db/connection.js';
import { runMigrations } from '../src/db/migrations/index.js';
import { createAgentGroup, getAgentGroup } from '../src/db/agent-groups.js';
import {
createMessagingGroup,
createMessagingGroupAgent,
getMessagingGroup,
} from '../src/db/messaging-groups.js';
const db = initDb(path.join(DATA_DIR, 'v2.db'));
runMigrations(db);
const AGENT_GROUP_ID = 'ag-main';
const MESSAGING_GROUP_ID = 'mg-discord';
const CHANNEL_ID = 'discord:1470188214710046894:1491569326447132673';
// Agent group
if (!getAgentGroup(AGENT_GROUP_ID)) {
createAgentGroup({
id: AGENT_GROUP_ID,
name: 'Main',
folder: 'main',
agent_provider: 'claude',
created_at: new Date().toISOString(),
});
console.log('Created agent group:', AGENT_GROUP_ID);
} else {
console.log('Agent group already exists:', AGENT_GROUP_ID);
}
// Messaging group
if (!getMessagingGroup(MESSAGING_GROUP_ID)) {
createMessagingGroup({
id: MESSAGING_GROUP_ID,
channel_type: 'discord',
platform_id: CHANNEL_ID,
name: 'Discord Test',
is_group: 1,
unknown_sender_policy: 'strict',
created_at: new Date().toISOString(),
});
console.log('Created messaging group:', MESSAGING_GROUP_ID);
} else {
console.log('Messaging group already exists:', MESSAGING_GROUP_ID);
}
// Link
try {
createMessagingGroupAgent({
id: 'mga-discord',
messaging_group_id: MESSAGING_GROUP_ID,
agent_group_id: AGENT_GROUP_ID,
trigger_rules: null,
response_scope: 'all',
session_mode: 'shared',
priority: 0,
created_at: new Date().toISOString(),
});
console.log('Created messaging_group_agent link');
} catch (err: any) {
if (err.message?.includes('UNIQUE')) {
console.log('Messaging group agent link already exists');
} else {
throw err;
}
}
console.log('Done! Run: pnpm run build && node dist/index.js');