gadget/gadget-drone/AGENTS.md

1.2 KiB

AGENTS.md

Dev Commands

pnpm dev          # Run with tsx (src/gadget-drone.ts)
pnpm build        # Compile TypeScript to dist/
pnpm start        # Run built code (dist/gadget-drone.js)

Requirements

  • Redis must be running (configure via GADGET_REDIS_HOST, GADGET_REDIS_PORT)
  • Platform credentials required in .env:
    • GADGET_PLATFORM_URL
    • GADGET_PLATFORM_KEY

Architecture

  • Entry: src/gadget-drone.ts - extends GadgetProcess, registers with platform, attaches to Bull queue
  • Services: AgentService, PlatformService in src/services/
  • Queue: Bull queue named gadget-drone, job type prompt

Build

tsc with module: NodeNext outputs to dist/. ES modules only.

Tests

None configured (pnpm test exits with error).

GadgetId

All entity IDs use GadgetId (a string alias) from @gadget/api:

import { GadgetId } from "@gadget/api";

// Use GadgetId for all ID fields
const registrationId: GadgetId = "abc123...";

Schema _id pattern (for Mongoose models):

_id: { type: String, default: () => nanoid() }

Never add unique: true or required: true to _id — MongoDB handles this automatically.

See docs/gadget-id.md for full documentation.