{"version":3,"file":"contract.meta.mjs","names":[],"sources":["../src/contract.meta.ts"],"sourcesContent":["export type CliCommandMeta = {\n  commandPath?: string[];\n  summary: string;\n  description?: string;\n  examples?: string[];\n  interactive?: boolean;\n  longRunning?: boolean;\n  fields?: Record<string, { positional?: boolean; description?: string }>;\n};\n\nexport const cliCommandMeta = {\n  dev: {\n    commandPath: [\"dev\"],\n    summary: \"Start a development session\",\n    interactive: true,\n    longRunning: true,\n    fields: {\n      remotePlugins: {\n        description:\n          \"Comma-separated plugin IDs to force remote (e.g. --remote-plugins auth,registry)\",\n      },\n    },\n  },\n  start: {\n    commandPath: [\"start\"],\n    summary: \"Start the production host\",\n    interactive: false,\n    longRunning: true,\n    fields: {\n      env: { description: \"Environment: production or staging\" },\n    },\n  },\n  build: {\n    commandPath: [\"build\"],\n    summary: \"Build selected workspaces\",\n    interactive: false,\n    fields: {\n      packages: { positional: true, description: \"Comma-separated package list\" },\n    },\n  },\n  config: {\n    commandPath: [\"config\"],\n    summary: \"Print the loaded BOS configuration\",\n    interactive: false,\n    fields: {\n      full: { description: \"Print the fully resolved configuration\" },\n    },\n  },\n  pluginAdd: {\n    commandPath: [\"plugin\", \"add\"],\n    summary: \"Add a plugin attachment\",\n    interactive: false,\n    fields: {\n      source: {\n        positional: true,\n        description: \"Plugin source (local:path, bos://account/domain, or URL)\",\n      },\n      as: { description: \"Plugin alias\" },\n      production: { description: \"Production URL override\" },\n    },\n  },\n  pluginRemove: {\n    commandPath: [\"plugin\", \"remove\"],\n    summary: \"Remove a plugin attachment\",\n    interactive: false,\n    fields: { key: { positional: true, description: \"Plugin key\" } },\n  },\n  pluginList: {\n    commandPath: [\"plugin\", \"list\"],\n    summary: \"List configured plugins\",\n    interactive: false,\n  },\n  pluginPublish: {\n    commandPath: [\"plugin\", \"publish\"],\n    summary: \"Publish a single plugin\",\n    interactive: false,\n    fields: { key: { positional: true, description: \"Plugin key\" } },\n  },\n  publish: {\n    commandPath: [\"publish\"],\n    summary: \"Publish the current workspace configuration\",\n    interactive: false,\n    fields: {\n      deploy: { description: \"Build and deploy all workspaces before publish\" },\n      dryRun: { description: \"Preview what would be published without writing\" },\n      verbose: { description: \"Show full build output instead of clean summary\" },\n      env: { description: \"Environment: production or staging\" },\n      network: { description: \"NEAR network: mainnet or testnet\" },\n    },\n  },\n  deploy: {\n    commandPath: [\"deploy\"],\n    summary: \"Publish config and trigger Railway redeploy\",\n    interactive: false,\n    fields: {\n      env: { description: \"Environment: production or staging\" },\n      build: { description: \"Build and deploy workspaces before publish (default: true)\" },\n      dryRun: { description: \"Preview what would be deployed without writing\" },\n      verbose: { description: \"Show full build output instead of clean summary\" },\n      service: { description: \"Override Railway service name from config\" },\n    },\n  },\n  keyPublish: {\n    commandPath: [\"key\", \"generate\"],\n    summary: \"Generate a publish access key\",\n    interactive: true,\n  },\n  init: {\n    commandPath: [\"init\"],\n    summary: \"Scaffold a new project by extending a deployed app or template\",\n    interactive: true,\n    fields: {\n      domain: {\n        positional: true,\n        description: \"New project domain (e.g. myapp.everything.dev)\",\n      },\n      extends: {\n        description: \"Parent to extend from (e.g. bos://account/gateway or account/gateway)\",\n      },\n      account: { description: \"New project NEAR account (auto-derived from extends)\" },\n      directory: { description: \"Target directory (auto-derived from domain)\" },\n      source: { description: \"Local source dir (skips GitHub download)\" },\n      plugins: {\n        description: \"Comma-separated plugin keys to include (requires --overrides=plugins)\",\n      },\n      overrides: {\n        description: \"Comma-separated sections to customize locally: ui,api,host,plugins\",\n      },\n      noInteractive: { description: \"Skip prompts, use flags only\" },\n      noInstall: { description: \"Skip bun install\" },\n    },\n  },\n  sync: {\n    commandPath: [\"sync\"],\n    summary: \"Sync template files from parent project\",\n    interactive: false,\n    fields: {\n      dryRun: { description: \"Preview changes without writing files\" },\n      noInstall: { description: \"Skip bun install\" },\n    },\n  },\n  upgrade: {\n    commandPath: [\"upgrade\"],\n    summary: \"Upgrade framework packages and sync template files\",\n    interactive: true,\n    fields: {\n      dryRun: { description: \"Preview changes without writing\" },\n      noInstall: { description: \"Skip bun install\" },\n      noSync: { description: \"Only upgrade packages, skip template sync\" },\n    },\n  },\n  typesGen: {\n    commandPath: [\"types\", \"gen\"],\n    summary: \"Generate type definitions from configured API and plugin contracts\",\n    interactive: false,\n    fields: {\n      env: { description: \"Environment: development (default) or production\" },\n      dryRun: { description: \"Preview what would be fetched without writing files\" },\n    },\n  },\n  dbStudio: {\n    commandPath: [\"db\", \"studio\"],\n    summary: \"Open Drizzle Studio for a plugin's database\",\n    fields: {\n      plugin: {\n        positional: true,\n        description: \"Plugin key: api, auth, or a plugin name (default: api)\",\n      },\n    },\n  },\n  dbDoctor: {\n    commandPath: [\"db\", \"doctor\"],\n    summary: \"Diagnose migration health for a plugin's database\",\n    fields: {\n      plugin: {\n        positional: true,\n        description: \"Plugin key: api, auth, or a plugin name\",\n      },\n    },\n  },\n  dbRepair: {\n    commandPath: [\"db\", \"repair\"],\n    summary: \"Reset migration history and reapply migrations for a plugin\",\n    fields: {\n      plugin: {\n        positional: true,\n        description: \"Plugin key: api, auth, or a plugin name\",\n      },\n      mode: {\n        description: \"Repair mode: history-reset (default) or recreate (not yet supported)\",\n      },\n      yes: {\n        description: \"Skip confirmation prompt\",\n      },\n    },\n  },\n  status: {\n    commandPath: [\"status\"],\n    summary: \"Show project health, versions, and update availability\",\n    interactive: false,\n  },\n  ps: {\n    commandPath: [\"ps\"],\n    summary: \"List tracked development processes\",\n    interactive: false,\n  },\n  kill: {\n    commandPath: [\"kill\"],\n    summary: \"Stop tracked development processes\",\n    interactive: false,\n    fields: {\n      configDir: { description: \"Kill processes owned by a config directory (defaults to cwd)\" },\n      signal: { description: \"Signal: SIGTERM (default) or SIGKILL\" },\n      all: { description: \"Kill processes across all config directories\" },\n    },\n  },\n} as const satisfies Record<string, CliCommandMeta>;\n"],"mappings":"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"}