Download src/register.ts from Snapkitty/myapplication: direct link, hf CLI and curl.
- Browser
- Download file 3.81 kB
-
https://huggingface.co/Snapkitty/myapplication/resolve/main/src/register.ts
- Command line
-
hf download hf://Snapkitty/myapplication/src/register.ts
-
curl -L -o register.ts https://huggingface.co/Snapkitty/myapplication/resolve/main/src/register.ts
3.81 kB
| // Run once to register all slash commands with Discord: | |
| // npx ts-node src/register.ts | |
| const STRING = 3 | |
| const NUMBER = 10 | |
| const SUB_COMMAND = 1 | |
| const AGENT_CHOICES = [ | |
| { name: 'RELAY β your plain-English guide', value: 'bridge' }, | |
| { name: 'AXIOM β finance & money pools', value: 'finance' }, | |
| { name: 'VAULT β treasury & approvals', value: 'treasury' }, | |
| { name: 'NEXUS β deals & CRM pipeline', value: 'crm' }, | |
| { name: 'FORGE β vendors & procurement', value: 'procurement' }, | |
| { name: 'HERALD β event infrastructure', value: 'bifrost' }, | |
| { name: 'TENSOR β anomaly detection & ML', value: 'ml' }, | |
| { name: 'SENTINEL β risk & compliance', value: 'risk' }, | |
| { name: 'LEDGE β audit & permanent record', value: 'auditor' }, | |
| { name: 'ATLAS β system ops & tier gating', value: 'operator' }, | |
| { name: 'QUILL β content & narrative engine', value: 'scriptwriter' }, | |
| ] | |
| const COMMANDS = [ | |
| { | |
| name: 'ask', | |
| description: 'Ask any of the 11 SnapKitty agents a question from Discord', | |
| options: [ | |
| { name: 'agent', description: 'Which agent to route to', type: STRING, required: true, choices: AGENT_CHOICES }, | |
| { name: 'message', description: 'Your question', type: STRING, required: true }, | |
| ], | |
| }, | |
| { | |
| name: 'pool', | |
| description: 'Money pool management β create, fund, and track capital pools', | |
| options: [ | |
| { name: 'create', description: 'Create a new money pool', type: SUB_COMMAND, | |
| options: [ | |
| { name: 'name', description: 'Pool name', type: STRING, required: true }, | |
| { name: 'purpose', description: 'What it is for', type: STRING, required: false }, | |
| { name: 'goal', description: 'Target USD amount', type: NUMBER, required: false }, | |
| ] }, | |
| { name: 'list', description: 'List all active pools', type: SUB_COMMAND }, | |
| { name: 'fund', description: 'Add funds to a pool', type: SUB_COMMAND, | |
| options: [ | |
| { name: 'name', description: 'Pool name', type: STRING, required: true }, | |
| { name: 'amount', description: 'Amount to add', type: NUMBER, required: true }, | |
| ] }, | |
| { name: 'close', description: 'Close a pool', type: SUB_COMMAND, | |
| options: [{ name: 'name', description: 'Pool name', type: STRING, required: true }] }, | |
| ], | |
| }, | |
| { name: 'tier', description: 'Current fundability tier status and blockers' }, | |
| { name: 'agents', description: 'Plain-English directory of all 11 SnapKitty agents' }, | |
| { name: 'status', description: 'System health β Bifrost, database, infrastructure' }, | |
| { name: 'seal', description: 'Last decision seal β event type, risk, timestamp' }, | |
| { name: 'audit', description: 'Audit trail β last 5 Bifrost events with risk scores' }, | |
| { name: 'merkle', description: 'Merkle root and WORM chain entry count' }, | |
| ] | |
| async function register() { | |
| const { DISCORD_BOT_TOKEN, DISCORD_APP_ID } = process.env | |
| if (!DISCORD_BOT_TOKEN || !DISCORD_APP_ID) { | |
| console.error('Missing DISCORD_BOT_TOKEN or DISCORD_APP_ID in environment') | |
| process.exit(1) | |
| } | |
| const url = `https://discord.com/api/v10/applications/${DISCORD_APP_ID}/commands` | |
| const res = await fetch(url, { | |
| method: 'PUT', | |
| headers: { Authorization: `Bot ${DISCORD_BOT_TOKEN}`, 'Content-Type': 'application/json' }, | |
| body: JSON.stringify(COMMANDS), | |
| }) | |
| const data = await res.json() as any[] | |
| if (!res.ok) { console.error('Discord error:', data); process.exit(1) } | |
| console.log(`Registered ${data.length} commands:`) | |
| data.forEach((c: any) => console.log(` /${c.name}`)) | |
| } | |
| register().catch(console.error) | |