[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-base44-cli":3,"mdc-x0a4r4-key":36,"related-org-openai-base44-cli":5325,"related-repo-openai-base44-cli":5526},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"base44-cli","configure and deploy base44 projects","The base44 CLI is used for EVERYTHING related to base44 projects: resource configuration (entities, backend functions, ai agents), initialization and actions (resource creation, deployment). This skill is the place for learning about how to configure resources. When you plan or implement a feature, you must learn this skill",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Configuration","configuration","tag",{"name":17,"slug":18,"type":15},"CLI","cli",{"name":20,"slug":21,"type":15},"Deployment","deployment",{"name":23,"slug":24,"type":15},"Engineering","engineering",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-06-30T19:00:57.102",null,465,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fbase44\u002Fskills\u002Fbase44-cli","---\nname: base44-cli\ndescription: \"The base44 CLI is used for EVERYTHING related to base44 projects: resource configuration (entities, backend functions, ai agents), initialization and actions (resource creation, deployment). This skill is the place for learning about how to configure resources. When you plan or implement a feature, you must learn this skill\"\nmetadata:\n  sourcePackage:\n    name: base44\n    version: 0.0.50\n---\n\n# Base44 CLI\n\nCreate and manage Base44 apps (projects) using the Base44 CLI tool.\n\n## ⚡ IMMEDIATE ACTION REQUIRED - Read This First\n\nThis skill activates on ANY mention of \"base44\" or when a `base44\u002F` folder exists. **DO NOT read documentation files or search the web before acting.**\n\n**Your first action MUST be:**\n1. Check if `base44\u002Fconfig.jsonc` exists in the current directory\n2. If **NO** (new project scenario):\n   - This skill (base44-cli) handles the request\n   - Guide user through project initialization\n   - Do NOT activate base44-sdk yet\n3. If **YES** (existing project scenario):\n   - Transfer to base44-sdk skill for implementation\n   - This skill only handles CLI commands (login, deploy, entities push)\n\n## Critical: Local Installation Only\n\nNEVER call `base44` directly. The CLI is installed locally as a dev dependency and must be accessed via a package manager:\n\n- `npx base44 \u003Ccommand>` (npm - recommended)\n- `yarn base44 \u003Ccommand>` (yarn)\n- `pnpm base44 \u003Ccommand>` (pnpm)\n\nWRONG: `base44 login`\nRIGHT: `npx base44 login`\n\n## MANDATORY: Authentication Check at Session Start\n\n**CRITICAL**: At the very start of every AI session when this skill is activated, you MUST:\n\n1. **Check authentication status** by running:\n   ```bash\n   npx base44 whoami\n   ```\n\n2. **If the user is logged in** (command succeeds and shows an email):\n   - Continue with the requested task\n\n3. **If the user is NOT logged in** (command fails or shows an error):\n   - **STOP immediately**\n   - **DO NOT proceed** with any CLI operations\n   - **Ask the user to login manually** by running:\n     ```bash\n     npx base44 login\n   ```\n   - Wait for the user to confirm they have logged in before continuing\n\n**This check is mandatory and must happen before executing any other Base44 CLI commands.**\n\n## Overview\n\nThe Base44 CLI provides command-line tools for authentication, creating projects, managing entities, and deploying Base44 applications. It is framework-agnostic and works with popular frontend frameworks like Vite, Next.js, and Create React App, Svelte, Vue, and more.\n\n## When to Use This Skill vs base44-sdk\n\n**Use base44-cli when:**\n- Creating a **NEW** Base44 project from scratch\n- Initializing a project in an empty directory\n- Directory is missing `base44\u002Fconfig.jsonc`\n- User mentions: \"create a new project\", \"initialize project\", \"setup a project\", \"start a new Base44 app\"\n- Deploying, pushing entities, or authenticating via CLI\n- Working with CLI commands (`npx base44 ...`)\n\n**Use base44-sdk when:**\n- Building features in an **EXISTING** Base44 project\n- `base44\u002Fconfig.jsonc` already exists\n- Writing JavaScript\u002FTypeScript code using Base44 SDK\n- Implementing functionality, components, or features\n- User mentions: \"implement\", \"build a feature\", \"add functionality\", \"write code\"\n\n**Skill Dependencies:**\n- `base44-cli` is a **prerequisite** for `base44-sdk` in new projects\n- If user wants to \"create an app\" and no Base44 project exists, use `base44-cli` first\n- `base44-sdk` assumes a Base44 project is already initialized\n\n**State Check Logic:**\nBefore selecting a skill, check:\n- IF (user mentions \"create\u002Fbuild app\" OR \"make a project\"):\n  - IF (directory is empty OR no `base44\u002Fconfig.jsonc` exists):\n    → Use **base44-cli** (project initialization needed)\n  - ELSE:\n    → Use **base44-sdk** (project exists, build features)\n\n## Project Structure\n\nA Base44 project combines a standard frontend project with a `base44\u002F` configuration folder:\n\n```\nmy-app\u002F\n├── base44\u002F                      # Base44 configuration (created by CLI)\n│   ├── config.jsonc             # Project settings, site config\n│   ├── .types\u002F                  # Auto-generated TypeScript types (created by `types generate`)\n│   │   └── types.d.ts           # Module augmentation for @base44\u002Fsdk\n│   ├── entities\u002F                # Entity schema definitions\n│   │   ├── task.jsonc\n│   │   └── board.jsonc\n│   ├── functions\u002F               # Backend functions (optional); automations live in function.jsonc\n│   │   └── my-function\u002F\n│   │       ├── function.jsonc\n│   │       └── index.ts\n│   ├── agents\u002F                  # Agent configurations (optional)\n│   │   └── support_agent.jsonc\n│   └── connectors\u002F              # OAuth connector configurations (optional)\n│       └── googlecalendar.jsonc\n├── src\u002F                         # Frontend source code\n│   ├── api\u002F\n│   │   └── base44Client.js      # Base44 SDK client\n│   ├── pages\u002F\n│   ├── components\u002F\n│   └── main.jsx\n├── index.html                   # SPA entry point\n├── package.json\n└── vite.config.js               # Or your framework's config\n```\n\n**Key files:**\n- `base44\u002Fconfig.jsonc` - Project name, description, site build settings\n- `base44\u002Fentities\u002F*.jsonc` - Data model schemas (see Entity Schema section)\n- `base44\u002Ffunctions\u002F*\u002Ffunction.jsonc` - Function config and optional `automations` (CRON, simple triggers, entity hooks)\n- `base44\u002Fagents\u002F*.jsonc` - Agent configurations (optional)\n- `base44\u002F.types\u002Ftypes.d.ts` - Auto-generated TypeScript types for entities, functions, and agents (created by `npx base44 types generate`)\n- `base44\u002Fconnectors\u002F*.jsonc` - OAuth connector configurations (optional)\n- `src\u002Fapi\u002Fbase44Client.js` - Pre-configured SDK client for frontend use\n\n**config.jsonc example:**\n```jsonc\n{\n  \"name\": \"My App\",                    \u002F\u002F Required: project name\n  \"description\": \"App description\",    \u002F\u002F Optional: project description\n  \"entitiesDir\": \".\u002Fentities\",         \u002F\u002F Optional: default \"entities\"\n  \"functionsDir\": \".\u002Ffunctions\",       \u002F\u002F Optional: default \"functions\"\n  \"agentsDir\": \".\u002Fagents\",             \u002F\u002F Optional: default \"agents\"\n  \"connectorsDir\": \".\u002Fconnectors\",     \u002F\u002F Optional: default \"connectors\"\n  \"site\": {                            \u002F\u002F Optional: site deployment config\n    \"installCommand\": \"npm install\",   \u002F\u002F Optional: install dependencies\n    \"buildCommand\": \"npm run build\",   \u002F\u002F Optional: build command\n    \"serveCommand\": \"npm run dev\",     \u002F\u002F Optional: local dev server\n    \"outputDirectory\": \".\u002Fdist\"        \u002F\u002F Optional: build output directory\n  }\n}\n```\n\n**Config properties:**\n\n| Property | Description | Default |\n|----------|-------------|---------|\n| `name` | Project name (required) | - |\n| `description` | Project description | - |\n| `entitiesDir` | Directory for entity schemas | `\"entities\"` |\n| `functionsDir` | Directory for backend functions | `\"functions\"` |\n| `agentsDir` | Directory for agent configs | `\"agents\"` |\n| `connectorsDir` | Directory for connector configs | `\"connectors\"` |\n| `site.installCommand` | Command to install dependencies | - |\n| `site.buildCommand` | Command to build the project | - |\n| `site.serveCommand` | Command to run dev server | - |\n| `site.outputDirectory` | Build output directory for deployment | - |\n\n## Installation\n\nInstall the Base44 CLI as a dev dependency in your project:\n\n```bash\nnpm install --save-dev base44\n```\n\n**Important:** Never assume or hardcode the `base44` package version. Always install without a version specifier to get the latest version.\n\nThen run commands using `npx`:\n\n```bash\nnpx base44 \u003Ccommand>\n```\n\n**Note:** All commands in this documentation use `npx base44`. You can also use `yarn base44`, or `pnpm base44` if preferred.\n\n## Available Commands\n\n### Authentication\n\n| Command         | Description                                     | Reference                                   |\n| --------------- | ----------------------------------------------- | ------------------------------------------- |\n| `base44 login`  | Authenticate with Base44 using device code flow | [auth-login.md](references\u002Fauth-login.md)   |\n| `base44 logout` | Logout from current device                      | [auth-logout.md](references\u002Fauth-logout.md) |\n| `base44 whoami` | Display current authenticated user              | [auth-whoami.md](references\u002Fauth-whoami.md) |\n\n### Project Management\n\n| Command | Description | Reference |\n|---------|-------------|-----------|\n| `base44 create` | Create a new Base44 project from a template | [create.md](references\u002Fcreate.md) ⚠️ **MUST READ** |\n| `base44 link` | Link an existing local project to Base44 | [link.md](references\u002Flink.md) |\n| `base44 eject` | Download the code for an existing Base44 project | [eject.md](references\u002Feject.md) |\n| `base44 dashboard open` | Open the app dashboard in your browser | [dashboard.md](references\u002Fdashboard.md) |\n\n### Deployment\n\n| Command | Description | Reference |\n|---------|-------------|-----------|\n| `base44 deploy` | Deploy all resources (entities, functions, agents, connectors, auth config, and site) | [deploy.md](references\u002Fdeploy.md) |\n\n### Entity Management\n\n| Action \u002F Command       | Description                                 | Reference                                           |\n| ---------------------- | ------------------------------------------- | --------------------------------------------------- |\n| Create Entities        | Define entities in `base44\u002Fentities` folder | [entities-create.md](references\u002Fentities-create.md) |\n| `base44 entities push` | Push local entities to Base44               | [entities-push.md](references\u002Fentities-push.md)     |\n| RLS Patterns           | Row-level security examples and operators   | [rls-examples.md](references\u002Frls-examples.md) ⚠️ **READ FOR RLS** |\n\n#### Entity Schema (Quick Reference)\n\nALWAYS follow this exact structure when creating entity files:\n\n**File naming:** `base44\u002Fentities\u002F{kebab-case-name}.jsonc` (e.g., `team-member.jsonc` for `TeamMember`)\n\n**Schema template:**\n```jsonc\n{\n  \"name\": \"EntityName\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"field_name\": {\n      \"type\": \"string\",\n      \"description\": \"Field description\"\n    }\n  },\n  \"required\": [\"field_name\"]\n}\n```\n\n**Field types:** `string`, `number`, `integer`, `boolean`, `array`, `object`, `binary`\n**String formats:** `date`, `date-time`, `time`, `email`, `uri`, `hostname`, `ipv4`, `ipv6`, `uuid`, `file`, `regex`, `richtext`\n**For enums:** Add `\"enum\": [\"value1\", \"value2\"]` and optionally `\"default\": \"value1\"`\n**Entity names:** Must be alphanumeric only (pattern: `\u002F^[a-zA-Z0-9]+$\u002F`)\n\nFor complete documentation, see [entities-create.md](references\u002Fentities-create.md).\n\n### Function Management\n\n| Action \u002F Command          | Description                                   | Reference                                               |\n| ------------------------- | --------------------------------------------- | ------------------------------------------------------- |\n| Create Functions          | Define functions in `base44\u002Ffunctions` folder | [functions-create.md](references\u002Ffunctions-create.md)   |\n| Configure Automations     | CRON, simple triggers, entity hooks in `function.jsonc` | [automations.md](references\u002Fautomations.md)   |\n| `base44 functions deploy [names...] [--force]` | Deploy local functions (and automations) to Base44; optionally target specific functions or prune removed ones | [functions-deploy.md](references\u002Ffunctions-deploy.md)   |\n| `base44 functions delete \u003Cnames...>` | Delete one or more deployed functions from Base44 | [functions-delete.md](references\u002Ffunctions-delete.md) |\n| `base44 functions list`   | List all deployed functions on Base44 remote  | [functions-list.md](references\u002Ffunctions-list.md)       |\n| `base44 functions pull [name]` | Pull deployed functions from Base44 to local files | [functions-pull.md](references\u002Ffunctions-pull.md)  |\n\n### Agent Management\n\nAgents are conversational AI assistants that can interact with users, access your app's entities, and call backend functions. Use these commands to manage agent configurations.\n\n| Action \u002F Command        | Description                             | Reference                                       |\n| ----------------------- | --------------------------------------- | ----------------------------------------------- |\n| Create Agents           | Define agents in `base44\u002Fagents` folder | See Agent Schema below                          |\n| `base44 agents pull`    | Pull remote agents to local files       | [agents-pull.md](references\u002Fagents-pull.md)     |\n| `base44 agents push`    | Push local agents to Base44             | [agents-push.md](references\u002Fagents-push.md)     |\n\n**Note:** Agent commands perform full synchronization - pushing replaces all remote agents with local ones, and pulling replaces all local agents with remote ones.\n\n#### Agent Schema (Quick Reference)\n\n**File naming:** `base44\u002Fagents\u002F{agent_name}.jsonc` (e.g., `support_agent.jsonc`)\n\n**Schema template:**\n```jsonc\n{\n  \"name\": \"agent_name\",\n  \"description\": \"Brief description of what this agent does\",\n  \"instructions\": \"Detailed instructions for the agent's behavior\",\n  \"tool_configs\": [\n    \u002F\u002F Entity tool - gives agent access to entity operations\n    { \"entity_name\": \"tasks\", \"allowed_operations\": [\"read\", \"create\", \"update\", \"delete\"] },\n    \u002F\u002F Backend function tool - gives agent access to a function\n    { \"function_name\": \"send_email\", \"description\": \"Send an email notification\" }\n  ],\n  \"whatsapp_greeting\": \"Hello! How can I help you today?\"\n}\n```\n\n**Naming rules:** \n- Agent names must match pattern: `\u002F^[a-z0-9_]+$\u002F` (lowercase alphanumeric with underscores, 1-100 chars)\n- Valid: `support_agent`, `order_bot`\n- Invalid: `Support-Agent`, `OrderBot`\n\n**Required fields:** `name`, `description`, `instructions`\n**Optional fields:** `tool_configs` (defaults to `[]`), `whatsapp_greeting`\n\n**Tool config types:**\n- **Entity tools**: `entity_name` + `allowed_operations` (array of: `read`, `create`, `update`, `delete`)\n- **Backend function tools**: `function_name` + `description`\n\n### Connector Management\n\nConnectors let your app connect to external services (Google Calendar, Slack, Stripe, etc.). Most connectors use OAuth to provide access tokens for backend functions to call external APIs. Stripe is the exception — it is provisioned automatically on the server side with no OAuth browser flow.\n\n| Action \u002F Command                   | Description                                          | Reference                                                           |\n| ---------------------------------- | ---------------------------------------------------- | ------------------------------------------------------------------- |\n| Create Connectors                  | Define connectors in `base44\u002Fconnectors` folder      | [connectors-create.md](references\u002Fconnectors-create.md)             |\n| `base44 connectors list-available` | List all available integration types from Base44     | [connectors-list-available.md](references\u002Fconnectors-list-available.md) |\n| `base44 connectors pull`           | Pull remote connectors to local files                | [connectors-pull.md](references\u002Fconnectors-pull.md)                 |\n| `base44 connectors push`           | Push local connectors to Base44                      | [connectors-push.md](references\u002Fconnectors-push.md)                 |\n\n**Note:** Connector commands perform full synchronization - pushing replaces all remote connectors with local ones (and triggers OAuth for new OAuth connectors), and pulling replaces all local connectors with remote ones.\n\n#### Connector Schema (Quick Reference)\n\n**File naming:** `base44\u002Fconnectors\u002F{type}.jsonc` (e.g., `googlecalendar.jsonc`, `slack.jsonc`)\n\n**Schema template:**\n```jsonc\n{\n  \"type\": \"googlecalendar\",\n  \"scopes\": [\n    \"https:\u002F\u002Fwww.googleapis.com\u002Fauth\u002Fcalendar.readonly\",\n    \"https:\u002F\u002Fwww.googleapis.com\u002Fauth\u002Fcalendar.events\"\n  ]\n}\n```\n\n**Required fields:** `type`\n**Optional fields:** `scopes` (defaults to `[]`)\n\n**Available connector types:** Run `npx base44 connectors list-available` to see all supported integration types.\n\n**Note:** `stripe` is also a valid connector type but is not returned by `list-available`. Treat it as a supported type — it is provisioned automatically by Base44 with no OAuth browser flow. See [connectors-create.md](references\u002Fconnectors-create.md) for details.\n\nFor complete documentation, see [connectors-create.md](references\u002Fconnectors-create.md).\n\n#### Automation Quick Reference\n\nAutomations are triggers defined in the `automations` array inside `function.jsonc`. They deploy with the function via `base44 functions deploy`. Four types:\n\n**Common fields (all types):** `name` (required), `description`, `function_args`, `is_active` (default: true)\n\n**Scheduled One-Time:** `type: \"scheduled\"`, `schedule_mode: \"one-time\"`, `one_time_date` (ISO string)\n\n**Scheduled CRON:** `type: \"scheduled\"`, `schedule_mode: \"recurring\"`, `schedule_type: \"cron\"`, `cron_expression`, optional `ends_type` \u002F `ends_on_date` \u002F `ends_after_count`\n\n**Scheduled Simple:** `type: \"scheduled\"`, `schedule_mode: \"recurring\"`, `schedule_type: \"simple\"`, `repeat_unit` (`\"minutes\"` \\| `\"hours\"` \\| `\"days\"` \\| `\"weeks\"` \\| `\"months\"`), optional `repeat_interval`, `start_time`, `repeat_on_days` (0–6), `repeat_on_day_of_month` (1–31), `ends_type` \u002F `ends_on_date` \u002F `ends_after_count`\n\n**Entity Hook:** `type: \"entity\"`, `entity_name` (matches entity schema name), `event_types`: array of `\"create\"` \\| `\"update\"` \\| `\"delete\"` (at least one)\n\nFor full schemas and examples, see [automations.md](references\u002Fautomations.md).\n\n### Auth Configuration\n\nManage your app's authentication settings (e.g., username & password login). Auth config is stored in `base44\u002Fauth\u002F` and synced with Base44 via `auth push`\u002F`auth pull`.\n\n| Command | Description | Reference |\n|---------|-------------|-----------|\n| `base44 auth password-login \u003Cenable\\|disable>` | Enable or disable username & password authentication | [auth-password-login.md](references\u002Fauth-password-login.md) |\n| `base44 auth pull` | Pull auth config from Base44 to local files | [auth-pull.md](references\u002Fauth-pull.md) |\n| `base44 auth push` | Push local auth config to Base44 | [auth-push.md](references\u002Fauth-push.md) |\n\n**Note:** Auth config is also deployed as part of `base44 deploy`.\n\n### Secrets Management\n\nManage project secrets (environment variables stored securely in Base44). These commands are hidden from `--help` output but are fully functional.\n\n| Command | Description | Reference |\n|---------|-------------|-----------|\n| `base44 secrets list` | List the names of all secrets | [secrets-list.md](references\u002Fsecrets-list.md) |\n| `base44 secrets set` | Set one or more secrets (KEY=VALUE or --env-file) | [secrets-set.md](references\u002Fsecrets-set.md) |\n| `base44 secrets delete \u003Ckey>` | Delete a secret by name | [secrets-delete.md](references\u002Fsecrets-delete.md) |\n\n### Script Execution\n\nRun one-off scripts against your app with the Base44 SDK pre-authenticated. Use it to perform CRUD operations on entities (`base44.entities.MyEntity.list\u002Fcreate\u002Fupdate\u002Fdelete`), call backend functions (`base44.functions.invoke(\"myFunction\", args)`), invoke agents, or access any other resource exposed by the SDK — without deploying a full function. Useful for data migrations, bulk operations, debugging, and automation scripts.\n\n| Command | Description | Reference |\n|---------|-------------|-----------|\n| `base44 exec` | Run a script (via stdin) with the Base44 SDK pre-authenticated | [exec.md](references\u002Fexec.md) |\n\n### Type Generation\n\n| Command | Description | Reference |\n|---------|-------------|-----------|\n| `base44 types generate` | Generate TypeScript types (`types.d.ts`) from entities, functions, agents, and connectors | [types-generate.md](references\u002Ftypes-generate.md) |\n\n**Output:** `base44\u002F.types\u002Ftypes.d.ts` — augments `@base44\u002Fsdk` module with typed registries (`EntityTypeRegistry`, `FunctionNameRegistry`, `AgentNameRegistry`, `ConnectorTypeRegistry`).\n\n**No authentication required.** Runs entirely locally. Automatically updates `tsconfig.json` to include the generated types.\n\n### Site Management\n\n| Command              | Description                               | Reference                                   |\n| -------------------- | ----------------------------------------- | ------------------------------------------- |\n| `base44 site deploy` | Deploy built site files to Base44 hosting | [site-deploy.md](references\u002Fsite-deploy.md) |\n| `base44 site open`   | Open the deployed site in your browser    | [site-open.md](references\u002Fsite-open.md)     |\n\n**SPA only**: Base44 hosting supports Single Page Applications with a single `index.html` entry point. All routes are served from `index.html` (client-side routing).\n\n## Quick Start\n\n1. Install the CLI in your project:\n   ```bash\n   npm install --save-dev base44\n   ```\n\n2. Authenticate with Base44:\n   ```bash\n   npx base44 login\n   ```\n\n3. Create a new project (ALWAYS provide name and `--path` flag):\n   ```bash\n   npx base44 create my-app -p .\n   ```\n\n4. Build and deploy everything:\n   ```bash\n   npm run build\n   npx base44 deploy -y\n   ```\n\nOr deploy individual resources:\n- `npx base44 entities push` - Push entities only\n- `npx base44 functions deploy` - Deploy functions only\n- `npx base44 functions delete \u003Cname>` - Delete a deployed function\n- `npx base44 functions list` - List all deployed functions\n- `npx base44 functions pull` - Pull deployed functions to local files\n- `npx base44 agents push` - Push agents only\n- `npx base44 connectors pull` - Pull connectors from Base44\n- `npx base44 connectors push` - Push connectors only\n- `npx base44 auth pull` - Pull auth config from Base44\n- `npx base44 auth push` - Push auth config only\n- `npx base44 site deploy -y` - Deploy site only\n\n## Common Workflows\n\n### Creating a New Project\n\n**⚠️ MANDATORY: Before running `base44 create`, you MUST read [create.md](references\u002Fcreate.md) for:**\n- **Template selection** - Choose the correct template (`backend-and-client` vs `backend-only`)\n- **Correct workflow** - Different templates require different setup steps\n- **Common pitfalls** - Avoid folder creation errors that cause failures\n\nFailure to follow the create.md instructions will result in broken project scaffolding.\n\n### Linking an Existing Project\n```bash\n# If you have base44\u002Fconfig.jsonc but no .app.jsonc\nnpx base44 link --create --name my-app\n```\n\n### Deploying All Changes\n```bash\n# Generate types (optional, for TypeScript projects)\nnpx base44 types generate\n\n# Build your project first\nnpm run build\n\n# Deploy everything (entities, functions, and site)\nnpx base44 deploy -y\n```\n\n### Generating TypeScript Types\n```bash\n# Generate types from entities, functions, agents, and connectors\nnpx base44 types generate\n```\n\nThis creates `base44\u002F.types\u002Ftypes.d.ts` with typed registries for the `@base44\u002Fsdk` module. Run this after changing entities, functions, agents, or connectors to keep your types in sync. No authentication required.\n\n### Deploying Individual Resources\n```bash\n# Push only entities\nnpx base44 entities push\n\n# Deploy only functions (all)\nnpx base44 functions deploy\n# Deploy specific functions\nnpx base44 functions deploy my-function other-function\n# Deploy and prune removed functions\nnpx base44 functions deploy --force\n\n# Push only agents\nnpx base44 agents push\n\n# Pull connectors from Base44\nnpx base44 connectors pull\n\n# Push only connectors\nnpx base44 connectors push\n\n# Deploy only site\nnpx base44 site deploy -y\n```\n\n### Opening the Dashboard\n```bash\n# Open app dashboard in browser\nnpx base44 dashboard\n```\n\n## Authentication\n\nMost commands require authentication. If you're not logged in, the CLI will automatically prompt you to login. Your session is stored locally and persists across CLI sessions.\n\n## Troubleshooting\n\n| Error                       | Solution                                                                            |\n| --------------------------- | ----------------------------------------------------------------------------------- |\n| Not authenticated           | Run `npx base44 login` first                                                        |\n| No entities found           | Ensure entities exist in `base44\u002Fentities\u002F` directory                               |\n| Entity not recognized       | Ensure file uses kebab-case naming (e.g., `team-member.jsonc` not `TeamMember.jsonc`) |\n| No functions found          | Ensure functions exist in `base44\u002Ffunctions\u002F` with valid `function.jsonc` configs   |\n| No agents found             | Ensure agents exist in `base44\u002Fagents\u002F` directory with valid `.jsonc` configs       |\n| Invalid agent name          | Agent names must be lowercase alphanumeric with underscores only                    |\n| No connectors found         | Ensure connectors exist in `base44\u002Fconnectors\u002F` directory with valid `.jsonc` configs |\n| Invalid connector type      | Run `npx base44 connectors list-available` to see valid types |\n| Duplicate connector type    | Each connector type can only be defined once per project                            |\n| Connector authorization timeout | Re-run `npx base44 connectors push` and complete the OAuth flow in your browser  |\n| No site configuration found | Check that `site.outputDirectory` is configured in project config                   |\n| Site deployment fails       | Ensure you ran `npm run build` first and the build succeeded                        |\n| Update available message    | If prompted to update, run `npm install -g base44@latest` (or use npx for local installs) |\n",{"data":37,"body":42},{"name":4,"description":6,"metadata":38},{"sourcePackage":39},{"name":40,"version":41},"base44","0.0.50",{"type":43,"children":44},"root",[45,53,59,66,86,94,167,173,185,221,240,246,256,395,403,409,414,420,428,481,489,529,537,587,597,637,643,655,664,672,766,774,963,971,1235,1241,1246,1276,1293,1305,1345,1379,1385,1392,1496,1502,1637,1641,1691,1697,1806,1813,1818,1850,1858,1951,2133,2144,2150,2335,2341,2346,2447,2456,2462,2484,2491,2592,2600,2652,2707,2715,2793,2799,2804,2935,2944,2950,2979,2986,3047,3079,3097,3127,3136,3142,3169,3206,3237,3295,3415,3468,3478,3484,3512,3614,3629,3635,3648,3750,3756,3777,3827,3833,3891,3944,3962,3968,4044,4069,4075,4235,4240,4364,4370,4376,4397,4445,4450,4456,4503,4509,4611,4617,4651,4670,4676,4968,4974,5005,5010,5015,5021,5319],{"type":46,"tag":47,"props":48,"children":49},"element","h1",{"id":4},[50],{"type":51,"value":52},"text","Base44 CLI",{"type":46,"tag":54,"props":55,"children":56},"p",{},[57],{"type":51,"value":58},"Create and manage Base44 apps (projects) using the Base44 CLI tool.",{"type":46,"tag":60,"props":61,"children":63},"h2",{"id":62},"immediate-action-required-read-this-first",[64],{"type":51,"value":65},"⚡ IMMEDIATE ACTION REQUIRED - Read This First",{"type":46,"tag":54,"props":67,"children":68},{},[69,71,78,80],{"type":51,"value":70},"This skill activates on ANY mention of \"base44\" or when a ",{"type":46,"tag":72,"props":73,"children":75},"code",{"className":74},[],[76],{"type":51,"value":77},"base44\u002F",{"type":51,"value":79}," folder exists. ",{"type":46,"tag":81,"props":82,"children":83},"strong",{},[84],{"type":51,"value":85},"DO NOT read documentation files or search the web before acting.",{"type":46,"tag":54,"props":87,"children":88},{},[89],{"type":46,"tag":81,"props":90,"children":91},{},[92],{"type":51,"value":93},"Your first action MUST be:",{"type":46,"tag":95,"props":96,"children":97},"ol",{},[98,112,143],{"type":46,"tag":99,"props":100,"children":101},"li",{},[102,104,110],{"type":51,"value":103},"Check if ",{"type":46,"tag":72,"props":105,"children":107},{"className":106},[],[108],{"type":51,"value":109},"base44\u002Fconfig.jsonc",{"type":51,"value":111}," exists in the current directory",{"type":46,"tag":99,"props":113,"children":114},{},[115,117,122,124],{"type":51,"value":116},"If ",{"type":46,"tag":81,"props":118,"children":119},{},[120],{"type":51,"value":121},"NO",{"type":51,"value":123}," (new project scenario):\n",{"type":46,"tag":125,"props":126,"children":127},"ul",{},[128,133,138],{"type":46,"tag":99,"props":129,"children":130},{},[131],{"type":51,"value":132},"This skill (base44-cli) handles the request",{"type":46,"tag":99,"props":134,"children":135},{},[136],{"type":51,"value":137},"Guide user through project initialization",{"type":46,"tag":99,"props":139,"children":140},{},[141],{"type":51,"value":142},"Do NOT activate base44-sdk yet",{"type":46,"tag":99,"props":144,"children":145},{},[146,147,152,154],{"type":51,"value":116},{"type":46,"tag":81,"props":148,"children":149},{},[150],{"type":51,"value":151},"YES",{"type":51,"value":153}," (existing project scenario):\n",{"type":46,"tag":125,"props":155,"children":156},{},[157,162],{"type":46,"tag":99,"props":158,"children":159},{},[160],{"type":51,"value":161},"Transfer to base44-sdk skill for implementation",{"type":46,"tag":99,"props":163,"children":164},{},[165],{"type":51,"value":166},"This skill only handles CLI commands (login, deploy, entities push)",{"type":46,"tag":60,"props":168,"children":170},{"id":169},"critical-local-installation-only",[171],{"type":51,"value":172},"Critical: Local Installation Only",{"type":46,"tag":54,"props":174,"children":175},{},[176,178,183],{"type":51,"value":177},"NEVER call ",{"type":46,"tag":72,"props":179,"children":181},{"className":180},[],[182],{"type":51,"value":40},{"type":51,"value":184}," directly. The CLI is installed locally as a dev dependency and must be accessed via a package manager:",{"type":46,"tag":125,"props":186,"children":187},{},[188,199,210],{"type":46,"tag":99,"props":189,"children":190},{},[191,197],{"type":46,"tag":72,"props":192,"children":194},{"className":193},[],[195],{"type":51,"value":196},"npx base44 \u003Ccommand>",{"type":51,"value":198}," (npm - recommended)",{"type":46,"tag":99,"props":200,"children":201},{},[202,208],{"type":46,"tag":72,"props":203,"children":205},{"className":204},[],[206],{"type":51,"value":207},"yarn base44 \u003Ccommand>",{"type":51,"value":209}," (yarn)",{"type":46,"tag":99,"props":211,"children":212},{},[213,219],{"type":46,"tag":72,"props":214,"children":216},{"className":215},[],[217],{"type":51,"value":218},"pnpm base44 \u003Ccommand>",{"type":51,"value":220}," (pnpm)",{"type":46,"tag":54,"props":222,"children":223},{},[224,226,232,234],{"type":51,"value":225},"WRONG: ",{"type":46,"tag":72,"props":227,"children":229},{"className":228},[],[230],{"type":51,"value":231},"base44 login",{"type":51,"value":233},"\nRIGHT: ",{"type":46,"tag":72,"props":235,"children":237},{"className":236},[],[238],{"type":51,"value":239},"npx base44 login",{"type":46,"tag":60,"props":241,"children":243},{"id":242},"mandatory-authentication-check-at-session-start",[244],{"type":51,"value":245},"MANDATORY: Authentication Check at Session Start",{"type":46,"tag":54,"props":247,"children":248},{},[249,254],{"type":46,"tag":81,"props":250,"children":251},{},[252],{"type":51,"value":253},"CRITICAL",{"type":51,"value":255},": At the very start of every AI session when this skill is activated, you MUST:",{"type":46,"tag":95,"props":257,"children":258},{},[259,303,321],{"type":46,"tag":99,"props":260,"children":261},{},[262,267,269],{"type":46,"tag":81,"props":263,"children":264},{},[265],{"type":51,"value":266},"Check authentication status",{"type":51,"value":268}," by running:",{"type":46,"tag":270,"props":271,"children":276},"pre",{"className":272,"code":273,"language":274,"meta":275,"style":275},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx base44 whoami\n","bash","",[277],{"type":46,"tag":72,"props":278,"children":279},{"__ignoreMap":275},[280],{"type":46,"tag":281,"props":282,"children":285},"span",{"class":283,"line":284},"line",1,[286,292,298],{"type":46,"tag":281,"props":287,"children":289},{"style":288},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[290],{"type":51,"value":291},"npx",{"type":46,"tag":281,"props":293,"children":295},{"style":294},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[296],{"type":51,"value":297}," base44",{"type":46,"tag":281,"props":299,"children":300},{"style":294},[301],{"type":51,"value":302}," whoami\n",{"type":46,"tag":99,"props":304,"children":305},{},[306,311,313],{"type":46,"tag":81,"props":307,"children":308},{},[309],{"type":51,"value":310},"If the user is logged in",{"type":51,"value":312}," (command succeeds and shows an email):",{"type":46,"tag":125,"props":314,"children":315},{},[316],{"type":46,"tag":99,"props":317,"children":318},{},[319],{"type":51,"value":320},"Continue with the requested task",{"type":46,"tag":99,"props":322,"children":323},{},[324,329,331,385],{"type":46,"tag":81,"props":325,"children":326},{},[327],{"type":51,"value":328},"If the user is NOT logged in",{"type":51,"value":330}," (command fails or shows an error):",{"type":46,"tag":125,"props":332,"children":333},{},[334,342,352],{"type":46,"tag":99,"props":335,"children":336},{},[337],{"type":46,"tag":81,"props":338,"children":339},{},[340],{"type":51,"value":341},"STOP immediately",{"type":46,"tag":99,"props":343,"children":344},{},[345,350],{"type":46,"tag":81,"props":346,"children":347},{},[348],{"type":51,"value":349},"DO NOT proceed",{"type":51,"value":351}," with any CLI operations",{"type":46,"tag":99,"props":353,"children":354},{},[355,360,362],{"type":46,"tag":81,"props":356,"children":357},{},[358],{"type":51,"value":359},"Ask the user to login manually",{"type":51,"value":361}," by running:\n",{"type":46,"tag":270,"props":363,"children":365},{"className":272,"code":364,"language":274,"meta":275,"style":275},"npx base44 login\n",[366],{"type":46,"tag":72,"props":367,"children":368},{"__ignoreMap":275},[369],{"type":46,"tag":281,"props":370,"children":371},{"class":283,"line":284},[372,376,380],{"type":46,"tag":281,"props":373,"children":374},{"style":288},[375],{"type":51,"value":291},{"type":46,"tag":281,"props":377,"children":378},{"style":294},[379],{"type":51,"value":297},{"type":46,"tag":281,"props":381,"children":382},{"style":294},[383],{"type":51,"value":384}," login\n",{"type":46,"tag":270,"props":386,"children":390},{"className":387,"code":389,"language":51},[388],"language-text","- Wait for the user to confirm they have logged in before continuing\n",[391],{"type":46,"tag":72,"props":392,"children":393},{"__ignoreMap":275},[394],{"type":51,"value":389},{"type":46,"tag":54,"props":396,"children":397},{},[398],{"type":46,"tag":81,"props":399,"children":400},{},[401],{"type":51,"value":402},"This check is mandatory and must happen before executing any other Base44 CLI commands.",{"type":46,"tag":60,"props":404,"children":406},{"id":405},"overview",[407],{"type":51,"value":408},"Overview",{"type":46,"tag":54,"props":410,"children":411},{},[412],{"type":51,"value":413},"The Base44 CLI provides command-line tools for authentication, creating projects, managing entities, and deploying Base44 applications. It is framework-agnostic and works with popular frontend frameworks like Vite, Next.js, and Create React App, Svelte, Vue, and more.",{"type":46,"tag":60,"props":415,"children":417},{"id":416},"when-to-use-this-skill-vs-base44-sdk",[418],{"type":51,"value":419},"When to Use This Skill vs base44-sdk",{"type":46,"tag":54,"props":421,"children":422},{},[423],{"type":46,"tag":81,"props":424,"children":425},{},[426],{"type":51,"value":427},"Use base44-cli when:",{"type":46,"tag":125,"props":429,"children":430},{},[431,443,448,458,463,468],{"type":46,"tag":99,"props":432,"children":433},{},[434,436,441],{"type":51,"value":435},"Creating a ",{"type":46,"tag":81,"props":437,"children":438},{},[439],{"type":51,"value":440},"NEW",{"type":51,"value":442}," Base44 project from scratch",{"type":46,"tag":99,"props":444,"children":445},{},[446],{"type":51,"value":447},"Initializing a project in an empty directory",{"type":46,"tag":99,"props":449,"children":450},{},[451,453],{"type":51,"value":452},"Directory is missing ",{"type":46,"tag":72,"props":454,"children":456},{"className":455},[],[457],{"type":51,"value":109},{"type":46,"tag":99,"props":459,"children":460},{},[461],{"type":51,"value":462},"User mentions: \"create a new project\", \"initialize project\", \"setup a project\", \"start a new Base44 app\"",{"type":46,"tag":99,"props":464,"children":465},{},[466],{"type":51,"value":467},"Deploying, pushing entities, or authenticating via CLI",{"type":46,"tag":99,"props":469,"children":470},{},[471,473,479],{"type":51,"value":472},"Working with CLI commands (",{"type":46,"tag":72,"props":474,"children":476},{"className":475},[],[477],{"type":51,"value":478},"npx base44 ...",{"type":51,"value":480},")",{"type":46,"tag":54,"props":482,"children":483},{},[484],{"type":46,"tag":81,"props":485,"children":486},{},[487],{"type":51,"value":488},"Use base44-sdk when:",{"type":46,"tag":125,"props":490,"children":491},{},[492,504,514,519,524],{"type":46,"tag":99,"props":493,"children":494},{},[495,497,502],{"type":51,"value":496},"Building features in an ",{"type":46,"tag":81,"props":498,"children":499},{},[500],{"type":51,"value":501},"EXISTING",{"type":51,"value":503}," Base44 project",{"type":46,"tag":99,"props":505,"children":506},{},[507,512],{"type":46,"tag":72,"props":508,"children":510},{"className":509},[],[511],{"type":51,"value":109},{"type":51,"value":513}," already exists",{"type":46,"tag":99,"props":515,"children":516},{},[517],{"type":51,"value":518},"Writing JavaScript\u002FTypeScript code using Base44 SDK",{"type":46,"tag":99,"props":520,"children":521},{},[522],{"type":51,"value":523},"Implementing functionality, components, or features",{"type":46,"tag":99,"props":525,"children":526},{},[527],{"type":51,"value":528},"User mentions: \"implement\", \"build a feature\", \"add functionality\", \"write code\"",{"type":46,"tag":54,"props":530,"children":531},{},[532],{"type":46,"tag":81,"props":533,"children":534},{},[535],{"type":51,"value":536},"Skill Dependencies:",{"type":46,"tag":125,"props":538,"children":539},{},[540,565,577],{"type":46,"tag":99,"props":541,"children":542},{},[543,548,550,555,557,563],{"type":46,"tag":72,"props":544,"children":546},{"className":545},[],[547],{"type":51,"value":4},{"type":51,"value":549}," is a ",{"type":46,"tag":81,"props":551,"children":552},{},[553],{"type":51,"value":554},"prerequisite",{"type":51,"value":556}," for ",{"type":46,"tag":72,"props":558,"children":560},{"className":559},[],[561],{"type":51,"value":562},"base44-sdk",{"type":51,"value":564}," in new projects",{"type":46,"tag":99,"props":566,"children":567},{},[568,570,575],{"type":51,"value":569},"If user wants to \"create an app\" and no Base44 project exists, use ",{"type":46,"tag":72,"props":571,"children":573},{"className":572},[],[574],{"type":51,"value":4},{"type":51,"value":576}," first",{"type":46,"tag":99,"props":578,"children":579},{},[580,585],{"type":46,"tag":72,"props":581,"children":583},{"className":582},[],[584],{"type":51,"value":562},{"type":51,"value":586}," assumes a Base44 project is already initialized",{"type":46,"tag":54,"props":588,"children":589},{},[590,595],{"type":46,"tag":81,"props":591,"children":592},{},[593],{"type":51,"value":594},"State Check Logic:",{"type":51,"value":596},"\nBefore selecting a skill, check:",{"type":46,"tag":125,"props":598,"children":599},{},[600],{"type":46,"tag":99,"props":601,"children":602},{},[603,605],{"type":51,"value":604},"IF (user mentions \"create\u002Fbuild app\" OR \"make a project\"):\n",{"type":46,"tag":125,"props":606,"children":607},{},[608,626],{"type":46,"tag":99,"props":609,"children":610},{},[611,613,618,620,624],{"type":51,"value":612},"IF (directory is empty OR no ",{"type":46,"tag":72,"props":614,"children":616},{"className":615},[],[617],{"type":51,"value":109},{"type":51,"value":619}," exists):\n→ Use ",{"type":46,"tag":81,"props":621,"children":622},{},[623],{"type":51,"value":4},{"type":51,"value":625}," (project initialization needed)",{"type":46,"tag":99,"props":627,"children":628},{},[629,631,635],{"type":51,"value":630},"ELSE:\n→ Use ",{"type":46,"tag":81,"props":632,"children":633},{},[634],{"type":51,"value":562},{"type":51,"value":636}," (project exists, build features)",{"type":46,"tag":60,"props":638,"children":640},{"id":639},"project-structure",[641],{"type":51,"value":642},"Project Structure",{"type":46,"tag":54,"props":644,"children":645},{},[646,648,653],{"type":51,"value":647},"A Base44 project combines a standard frontend project with a ",{"type":46,"tag":72,"props":649,"children":651},{"className":650},[],[652],{"type":51,"value":77},{"type":51,"value":654}," configuration folder:",{"type":46,"tag":270,"props":656,"children":659},{"className":657,"code":658,"language":51},[388],"my-app\u002F\n├── base44\u002F                      # Base44 configuration (created by CLI)\n│   ├── config.jsonc             # Project settings, site config\n│   ├── .types\u002F                  # Auto-generated TypeScript types (created by `types generate`)\n│   │   └── types.d.ts           # Module augmentation for @base44\u002Fsdk\n│   ├── entities\u002F                # Entity schema definitions\n│   │   ├── task.jsonc\n│   │   └── board.jsonc\n│   ├── functions\u002F               # Backend functions (optional); automations live in function.jsonc\n│   │   └── my-function\u002F\n│   │       ├── function.jsonc\n│   │       └── index.ts\n│   ├── agents\u002F                  # Agent configurations (optional)\n│   │   └── support_agent.jsonc\n│   └── connectors\u002F              # OAuth connector configurations (optional)\n│       └── googlecalendar.jsonc\n├── src\u002F                         # Frontend source code\n│   ├── api\u002F\n│   │   └── base44Client.js      # Base44 SDK client\n│   ├── pages\u002F\n│   ├── components\u002F\n│   └── main.jsx\n├── index.html                   # SPA entry point\n├── package.json\n└── vite.config.js               # Or your framework's config\n",[660],{"type":46,"tag":72,"props":661,"children":662},{"__ignoreMap":275},[663],{"type":51,"value":658},{"type":46,"tag":54,"props":665,"children":666},{},[667],{"type":46,"tag":81,"props":668,"children":669},{},[670],{"type":51,"value":671},"Key files:",{"type":46,"tag":125,"props":673,"children":674},{},[675,685,696,715,726,744,755],{"type":46,"tag":99,"props":676,"children":677},{},[678,683],{"type":46,"tag":72,"props":679,"children":681},{"className":680},[],[682],{"type":51,"value":109},{"type":51,"value":684}," - Project name, description, site build settings",{"type":46,"tag":99,"props":686,"children":687},{},[688,694],{"type":46,"tag":72,"props":689,"children":691},{"className":690},[],[692],{"type":51,"value":693},"base44\u002Fentities\u002F*.jsonc",{"type":51,"value":695}," - Data model schemas (see Entity Schema section)",{"type":46,"tag":99,"props":697,"children":698},{},[699,705,707,713],{"type":46,"tag":72,"props":700,"children":702},{"className":701},[],[703],{"type":51,"value":704},"base44\u002Ffunctions\u002F*\u002Ffunction.jsonc",{"type":51,"value":706}," - Function config and optional ",{"type":46,"tag":72,"props":708,"children":710},{"className":709},[],[711],{"type":51,"value":712},"automations",{"type":51,"value":714}," (CRON, simple triggers, entity hooks)",{"type":46,"tag":99,"props":716,"children":717},{},[718,724],{"type":46,"tag":72,"props":719,"children":721},{"className":720},[],[722],{"type":51,"value":723},"base44\u002Fagents\u002F*.jsonc",{"type":51,"value":725}," - Agent configurations (optional)",{"type":46,"tag":99,"props":727,"children":728},{},[729,735,737,743],{"type":46,"tag":72,"props":730,"children":732},{"className":731},[],[733],{"type":51,"value":734},"base44\u002F.types\u002Ftypes.d.ts",{"type":51,"value":736}," - Auto-generated TypeScript types for entities, functions, and agents (created by ",{"type":46,"tag":72,"props":738,"children":740},{"className":739},[],[741],{"type":51,"value":742},"npx base44 types generate",{"type":51,"value":480},{"type":46,"tag":99,"props":745,"children":746},{},[747,753],{"type":46,"tag":72,"props":748,"children":750},{"className":749},[],[751],{"type":51,"value":752},"base44\u002Fconnectors\u002F*.jsonc",{"type":51,"value":754}," - OAuth connector configurations (optional)",{"type":46,"tag":99,"props":756,"children":757},{},[758,764],{"type":46,"tag":72,"props":759,"children":761},{"className":760},[],[762],{"type":51,"value":763},"src\u002Fapi\u002Fbase44Client.js",{"type":51,"value":765}," - Pre-configured SDK client for frontend use",{"type":46,"tag":54,"props":767,"children":768},{},[769],{"type":46,"tag":81,"props":770,"children":771},{},[772],{"type":51,"value":773},"config.jsonc example:",{"type":46,"tag":270,"props":775,"children":779},{"className":776,"code":777,"language":778,"meta":275,"style":275},"language-jsonc shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"name\": \"My App\",                    \u002F\u002F Required: project name\n  \"description\": \"App description\",    \u002F\u002F Optional: project description\n  \"entitiesDir\": \".\u002Fentities\",         \u002F\u002F Optional: default \"entities\"\n  \"functionsDir\": \".\u002Ffunctions\",       \u002F\u002F Optional: default \"functions\"\n  \"agentsDir\": \".\u002Fagents\",             \u002F\u002F Optional: default \"agents\"\n  \"connectorsDir\": \".\u002Fconnectors\",     \u002F\u002F Optional: default \"connectors\"\n  \"site\": {                            \u002F\u002F Optional: site deployment config\n    \"installCommand\": \"npm install\",   \u002F\u002F Optional: install dependencies\n    \"buildCommand\": \"npm run build\",   \u002F\u002F Optional: build command\n    \"serveCommand\": \"npm run dev\",     \u002F\u002F Optional: local dev server\n    \"outputDirectory\": \".\u002Fdist\"        \u002F\u002F Optional: build output directory\n  }\n}\n","jsonc",[780],{"type":46,"tag":72,"props":781,"children":782},{"__ignoreMap":275},[783,791,805,819,833,847,861,875,889,903,917,931,945,954],{"type":46,"tag":281,"props":784,"children":785},{"class":283,"line":284},[786],{"type":46,"tag":281,"props":787,"children":788},{},[789],{"type":51,"value":790},"{\n",{"type":46,"tag":281,"props":792,"children":794},{"class":283,"line":793},2,[795,800],{"type":46,"tag":281,"props":796,"children":797},{},[798],{"type":51,"value":799},"  \"name\": \"My App\",",{"type":46,"tag":281,"props":801,"children":802},{},[803],{"type":51,"value":804},"                    \u002F\u002F Required: project name\n",{"type":46,"tag":281,"props":806,"children":808},{"class":283,"line":807},3,[809,814],{"type":46,"tag":281,"props":810,"children":811},{},[812],{"type":51,"value":813},"  \"description\": \"App description\",",{"type":46,"tag":281,"props":815,"children":816},{},[817],{"type":51,"value":818},"    \u002F\u002F Optional: project description\n",{"type":46,"tag":281,"props":820,"children":822},{"class":283,"line":821},4,[823,828],{"type":46,"tag":281,"props":824,"children":825},{},[826],{"type":51,"value":827},"  \"entitiesDir\": \".\u002Fentities\",",{"type":46,"tag":281,"props":829,"children":830},{},[831],{"type":51,"value":832},"         \u002F\u002F Optional: default \"entities\"\n",{"type":46,"tag":281,"props":834,"children":836},{"class":283,"line":835},5,[837,842],{"type":46,"tag":281,"props":838,"children":839},{},[840],{"type":51,"value":841},"  \"functionsDir\": \".\u002Ffunctions\",",{"type":46,"tag":281,"props":843,"children":844},{},[845],{"type":51,"value":846},"       \u002F\u002F Optional: default \"functions\"\n",{"type":46,"tag":281,"props":848,"children":850},{"class":283,"line":849},6,[851,856],{"type":46,"tag":281,"props":852,"children":853},{},[854],{"type":51,"value":855},"  \"agentsDir\": \".\u002Fagents\",",{"type":46,"tag":281,"props":857,"children":858},{},[859],{"type":51,"value":860},"             \u002F\u002F Optional: default \"agents\"\n",{"type":46,"tag":281,"props":862,"children":864},{"class":283,"line":863},7,[865,870],{"type":46,"tag":281,"props":866,"children":867},{},[868],{"type":51,"value":869},"  \"connectorsDir\": \".\u002Fconnectors\",",{"type":46,"tag":281,"props":871,"children":872},{},[873],{"type":51,"value":874},"     \u002F\u002F Optional: default \"connectors\"\n",{"type":46,"tag":281,"props":876,"children":878},{"class":283,"line":877},8,[879,884],{"type":46,"tag":281,"props":880,"children":881},{},[882],{"type":51,"value":883},"  \"site\": {",{"type":46,"tag":281,"props":885,"children":886},{},[887],{"type":51,"value":888},"                            \u002F\u002F Optional: site deployment config\n",{"type":46,"tag":281,"props":890,"children":892},{"class":283,"line":891},9,[893,898],{"type":46,"tag":281,"props":894,"children":895},{},[896],{"type":51,"value":897},"    \"installCommand\": \"npm install\",",{"type":46,"tag":281,"props":899,"children":900},{},[901],{"type":51,"value":902},"   \u002F\u002F Optional: install dependencies\n",{"type":46,"tag":281,"props":904,"children":906},{"class":283,"line":905},10,[907,912],{"type":46,"tag":281,"props":908,"children":909},{},[910],{"type":51,"value":911},"    \"buildCommand\": \"npm run build\",",{"type":46,"tag":281,"props":913,"children":914},{},[915],{"type":51,"value":916},"   \u002F\u002F Optional: build command\n",{"type":46,"tag":281,"props":918,"children":920},{"class":283,"line":919},11,[921,926],{"type":46,"tag":281,"props":922,"children":923},{},[924],{"type":51,"value":925},"    \"serveCommand\": \"npm run dev\",",{"type":46,"tag":281,"props":927,"children":928},{},[929],{"type":51,"value":930},"     \u002F\u002F Optional: local dev server\n",{"type":46,"tag":281,"props":932,"children":934},{"class":283,"line":933},12,[935,940],{"type":46,"tag":281,"props":936,"children":937},{},[938],{"type":51,"value":939},"    \"outputDirectory\": \".\u002Fdist\"",{"type":46,"tag":281,"props":941,"children":942},{},[943],{"type":51,"value":944},"        \u002F\u002F Optional: build output directory\n",{"type":46,"tag":281,"props":946,"children":948},{"class":283,"line":947},13,[949],{"type":46,"tag":281,"props":950,"children":951},{},[952],{"type":51,"value":953},"  }\n",{"type":46,"tag":281,"props":955,"children":957},{"class":283,"line":956},14,[958],{"type":46,"tag":281,"props":959,"children":960},{},[961],{"type":51,"value":962},"}\n",{"type":46,"tag":54,"props":964,"children":965},{},[966],{"type":46,"tag":81,"props":967,"children":968},{},[969],{"type":51,"value":970},"Config properties:",{"type":46,"tag":972,"props":973,"children":974},"table",{},[975,999],{"type":46,"tag":976,"props":977,"children":978},"thead",{},[979],{"type":46,"tag":980,"props":981,"children":982},"tr",{},[983,989,994],{"type":46,"tag":984,"props":985,"children":986},"th",{},[987],{"type":51,"value":988},"Property",{"type":46,"tag":984,"props":990,"children":991},{},[992],{"type":51,"value":993},"Description",{"type":46,"tag":984,"props":995,"children":996},{},[997],{"type":51,"value":998},"Default",{"type":46,"tag":1000,"props":1001,"children":1002},"tbody",{},[1003,1026,1047,1073,1099,1125,1151,1172,1193,1214],{"type":46,"tag":980,"props":1004,"children":1005},{},[1006,1016,1021],{"type":46,"tag":1007,"props":1008,"children":1009},"td",{},[1010],{"type":46,"tag":72,"props":1011,"children":1013},{"className":1012},[],[1014],{"type":51,"value":1015},"name",{"type":46,"tag":1007,"props":1017,"children":1018},{},[1019],{"type":51,"value":1020},"Project name (required)",{"type":46,"tag":1007,"props":1022,"children":1023},{},[1024],{"type":51,"value":1025},"-",{"type":46,"tag":980,"props":1027,"children":1028},{},[1029,1038,1043],{"type":46,"tag":1007,"props":1030,"children":1031},{},[1032],{"type":46,"tag":72,"props":1033,"children":1035},{"className":1034},[],[1036],{"type":51,"value":1037},"description",{"type":46,"tag":1007,"props":1039,"children":1040},{},[1041],{"type":51,"value":1042},"Project description",{"type":46,"tag":1007,"props":1044,"children":1045},{},[1046],{"type":51,"value":1025},{"type":46,"tag":980,"props":1048,"children":1049},{},[1050,1059,1064],{"type":46,"tag":1007,"props":1051,"children":1052},{},[1053],{"type":46,"tag":72,"props":1054,"children":1056},{"className":1055},[],[1057],{"type":51,"value":1058},"entitiesDir",{"type":46,"tag":1007,"props":1060,"children":1061},{},[1062],{"type":51,"value":1063},"Directory for entity schemas",{"type":46,"tag":1007,"props":1065,"children":1066},{},[1067],{"type":46,"tag":72,"props":1068,"children":1070},{"className":1069},[],[1071],{"type":51,"value":1072},"\"entities\"",{"type":46,"tag":980,"props":1074,"children":1075},{},[1076,1085,1090],{"type":46,"tag":1007,"props":1077,"children":1078},{},[1079],{"type":46,"tag":72,"props":1080,"children":1082},{"className":1081},[],[1083],{"type":51,"value":1084},"functionsDir",{"type":46,"tag":1007,"props":1086,"children":1087},{},[1088],{"type":51,"value":1089},"Directory for backend functions",{"type":46,"tag":1007,"props":1091,"children":1092},{},[1093],{"type":46,"tag":72,"props":1094,"children":1096},{"className":1095},[],[1097],{"type":51,"value":1098},"\"functions\"",{"type":46,"tag":980,"props":1100,"children":1101},{},[1102,1111,1116],{"type":46,"tag":1007,"props":1103,"children":1104},{},[1105],{"type":46,"tag":72,"props":1106,"children":1108},{"className":1107},[],[1109],{"type":51,"value":1110},"agentsDir",{"type":46,"tag":1007,"props":1112,"children":1113},{},[1114],{"type":51,"value":1115},"Directory for agent configs",{"type":46,"tag":1007,"props":1117,"children":1118},{},[1119],{"type":46,"tag":72,"props":1120,"children":1122},{"className":1121},[],[1123],{"type":51,"value":1124},"\"agents\"",{"type":46,"tag":980,"props":1126,"children":1127},{},[1128,1137,1142],{"type":46,"tag":1007,"props":1129,"children":1130},{},[1131],{"type":46,"tag":72,"props":1132,"children":1134},{"className":1133},[],[1135],{"type":51,"value":1136},"connectorsDir",{"type":46,"tag":1007,"props":1138,"children":1139},{},[1140],{"type":51,"value":1141},"Directory for connector configs",{"type":46,"tag":1007,"props":1143,"children":1144},{},[1145],{"type":46,"tag":72,"props":1146,"children":1148},{"className":1147},[],[1149],{"type":51,"value":1150},"\"connectors\"",{"type":46,"tag":980,"props":1152,"children":1153},{},[1154,1163,1168],{"type":46,"tag":1007,"props":1155,"children":1156},{},[1157],{"type":46,"tag":72,"props":1158,"children":1160},{"className":1159},[],[1161],{"type":51,"value":1162},"site.installCommand",{"type":46,"tag":1007,"props":1164,"children":1165},{},[1166],{"type":51,"value":1167},"Command to install dependencies",{"type":46,"tag":1007,"props":1169,"children":1170},{},[1171],{"type":51,"value":1025},{"type":46,"tag":980,"props":1173,"children":1174},{},[1175,1184,1189],{"type":46,"tag":1007,"props":1176,"children":1177},{},[1178],{"type":46,"tag":72,"props":1179,"children":1181},{"className":1180},[],[1182],{"type":51,"value":1183},"site.buildCommand",{"type":46,"tag":1007,"props":1185,"children":1186},{},[1187],{"type":51,"value":1188},"Command to build the project",{"type":46,"tag":1007,"props":1190,"children":1191},{},[1192],{"type":51,"value":1025},{"type":46,"tag":980,"props":1194,"children":1195},{},[1196,1205,1210],{"type":46,"tag":1007,"props":1197,"children":1198},{},[1199],{"type":46,"tag":72,"props":1200,"children":1202},{"className":1201},[],[1203],{"type":51,"value":1204},"site.serveCommand",{"type":46,"tag":1007,"props":1206,"children":1207},{},[1208],{"type":51,"value":1209},"Command to run dev server",{"type":46,"tag":1007,"props":1211,"children":1212},{},[1213],{"type":51,"value":1025},{"type":46,"tag":980,"props":1215,"children":1216},{},[1217,1226,1231],{"type":46,"tag":1007,"props":1218,"children":1219},{},[1220],{"type":46,"tag":72,"props":1221,"children":1223},{"className":1222},[],[1224],{"type":51,"value":1225},"site.outputDirectory",{"type":46,"tag":1007,"props":1227,"children":1228},{},[1229],{"type":51,"value":1230},"Build output directory for deployment",{"type":46,"tag":1007,"props":1232,"children":1233},{},[1234],{"type":51,"value":1025},{"type":46,"tag":60,"props":1236,"children":1238},{"id":1237},"installation",[1239],{"type":51,"value":1240},"Installation",{"type":46,"tag":54,"props":1242,"children":1243},{},[1244],{"type":51,"value":1245},"Install the Base44 CLI as a dev dependency in your project:",{"type":46,"tag":270,"props":1247,"children":1249},{"className":272,"code":1248,"language":274,"meta":275,"style":275},"npm install --save-dev base44\n",[1250],{"type":46,"tag":72,"props":1251,"children":1252},{"__ignoreMap":275},[1253],{"type":46,"tag":281,"props":1254,"children":1255},{"class":283,"line":284},[1256,1261,1266,1271],{"type":46,"tag":281,"props":1257,"children":1258},{"style":288},[1259],{"type":51,"value":1260},"npm",{"type":46,"tag":281,"props":1262,"children":1263},{"style":294},[1264],{"type":51,"value":1265}," install",{"type":46,"tag":281,"props":1267,"children":1268},{"style":294},[1269],{"type":51,"value":1270}," --save-dev",{"type":46,"tag":281,"props":1272,"children":1273},{"style":294},[1274],{"type":51,"value":1275}," base44\n",{"type":46,"tag":54,"props":1277,"children":1278},{},[1279,1284,1286,1291],{"type":46,"tag":81,"props":1280,"children":1281},{},[1282],{"type":51,"value":1283},"Important:",{"type":51,"value":1285}," Never assume or hardcode the ",{"type":46,"tag":72,"props":1287,"children":1289},{"className":1288},[],[1290],{"type":51,"value":40},{"type":51,"value":1292}," package version. Always install without a version specifier to get the latest version.",{"type":46,"tag":54,"props":1294,"children":1295},{},[1296,1298,1303],{"type":51,"value":1297},"Then run commands using ",{"type":46,"tag":72,"props":1299,"children":1301},{"className":1300},[],[1302],{"type":51,"value":291},{"type":51,"value":1304},":",{"type":46,"tag":270,"props":1306,"children":1308},{"className":272,"code":1307,"language":274,"meta":275,"style":275},"npx base44 \u003Ccommand>\n",[1309],{"type":46,"tag":72,"props":1310,"children":1311},{"__ignoreMap":275},[1312],{"type":46,"tag":281,"props":1313,"children":1314},{"class":283,"line":284},[1315,1319,1323,1329,1334,1340],{"type":46,"tag":281,"props":1316,"children":1317},{"style":288},[1318],{"type":51,"value":291},{"type":46,"tag":281,"props":1320,"children":1321},{"style":294},[1322],{"type":51,"value":297},{"type":46,"tag":281,"props":1324,"children":1326},{"style":1325},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1327],{"type":51,"value":1328}," \u003C",{"type":46,"tag":281,"props":1330,"children":1331},{"style":294},[1332],{"type":51,"value":1333},"comman",{"type":46,"tag":281,"props":1335,"children":1337},{"style":1336},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1338],{"type":51,"value":1339},"d",{"type":46,"tag":281,"props":1341,"children":1342},{"style":1325},[1343],{"type":51,"value":1344},">\n",{"type":46,"tag":54,"props":1346,"children":1347},{},[1348,1353,1355,1361,1363,1369,1371,1377],{"type":46,"tag":81,"props":1349,"children":1350},{},[1351],{"type":51,"value":1352},"Note:",{"type":51,"value":1354}," All commands in this documentation use ",{"type":46,"tag":72,"props":1356,"children":1358},{"className":1357},[],[1359],{"type":51,"value":1360},"npx base44",{"type":51,"value":1362},". You can also use ",{"type":46,"tag":72,"props":1364,"children":1366},{"className":1365},[],[1367],{"type":51,"value":1368},"yarn base44",{"type":51,"value":1370},", or ",{"type":46,"tag":72,"props":1372,"children":1374},{"className":1373},[],[1375],{"type":51,"value":1376},"pnpm base44",{"type":51,"value":1378}," if preferred.",{"type":46,"tag":60,"props":1380,"children":1382},{"id":1381},"available-commands",[1383],{"type":51,"value":1384},"Available Commands",{"type":46,"tag":1386,"props":1387,"children":1389},"h3",{"id":1388},"authentication",[1390],{"type":51,"value":1391},"Authentication",{"type":46,"tag":972,"props":1393,"children":1394},{},[1395,1415],{"type":46,"tag":976,"props":1396,"children":1397},{},[1398],{"type":46,"tag":980,"props":1399,"children":1400},{},[1401,1406,1410],{"type":46,"tag":984,"props":1402,"children":1403},{},[1404],{"type":51,"value":1405},"Command",{"type":46,"tag":984,"props":1407,"children":1408},{},[1409],{"type":51,"value":993},{"type":46,"tag":984,"props":1411,"children":1412},{},[1413],{"type":51,"value":1414},"Reference",{"type":46,"tag":1000,"props":1416,"children":1417},{},[1418,1444,1470],{"type":46,"tag":980,"props":1419,"children":1420},{},[1421,1429,1434],{"type":46,"tag":1007,"props":1422,"children":1423},{},[1424],{"type":46,"tag":72,"props":1425,"children":1427},{"className":1426},[],[1428],{"type":51,"value":231},{"type":46,"tag":1007,"props":1430,"children":1431},{},[1432],{"type":51,"value":1433},"Authenticate with Base44 using device code flow",{"type":46,"tag":1007,"props":1435,"children":1436},{},[1437],{"type":46,"tag":1438,"props":1439,"children":1441},"a",{"href":1440},"references\u002Fauth-login.md",[1442],{"type":51,"value":1443},"auth-login.md",{"type":46,"tag":980,"props":1445,"children":1446},{},[1447,1456,1461],{"type":46,"tag":1007,"props":1448,"children":1449},{},[1450],{"type":46,"tag":72,"props":1451,"children":1453},{"className":1452},[],[1454],{"type":51,"value":1455},"base44 logout",{"type":46,"tag":1007,"props":1457,"children":1458},{},[1459],{"type":51,"value":1460},"Logout from current device",{"type":46,"tag":1007,"props":1462,"children":1463},{},[1464],{"type":46,"tag":1438,"props":1465,"children":1467},{"href":1466},"references\u002Fauth-logout.md",[1468],{"type":51,"value":1469},"auth-logout.md",{"type":46,"tag":980,"props":1471,"children":1472},{},[1473,1482,1487],{"type":46,"tag":1007,"props":1474,"children":1475},{},[1476],{"type":46,"tag":72,"props":1477,"children":1479},{"className":1478},[],[1480],{"type":51,"value":1481},"base44 whoami",{"type":46,"tag":1007,"props":1483,"children":1484},{},[1485],{"type":51,"value":1486},"Display current authenticated user",{"type":46,"tag":1007,"props":1488,"children":1489},{},[1490],{"type":46,"tag":1438,"props":1491,"children":1493},{"href":1492},"references\u002Fauth-whoami.md",[1494],{"type":51,"value":1495},"auth-whoami.md",{"type":46,"tag":1386,"props":1497,"children":1499},{"id":1498},"project-management",[1500],{"type":51,"value":1501},"Project Management",{"type":46,"tag":972,"props":1503,"children":1504},{},[1505,1523],{"type":46,"tag":976,"props":1506,"children":1507},{},[1508],{"type":46,"tag":980,"props":1509,"children":1510},{},[1511,1515,1519],{"type":46,"tag":984,"props":1512,"children":1513},{},[1514],{"type":51,"value":1405},{"type":46,"tag":984,"props":1516,"children":1517},{},[1518],{"type":51,"value":993},{"type":46,"tag":984,"props":1520,"children":1521},{},[1522],{"type":51,"value":1414},{"type":46,"tag":1000,"props":1524,"children":1525},{},[1526,1559,1585,1611],{"type":46,"tag":980,"props":1527,"children":1528},{},[1529,1538,1543],{"type":46,"tag":1007,"props":1530,"children":1531},{},[1532],{"type":46,"tag":72,"props":1533,"children":1535},{"className":1534},[],[1536],{"type":51,"value":1537},"base44 create",{"type":46,"tag":1007,"props":1539,"children":1540},{},[1541],{"type":51,"value":1542},"Create a new Base44 project from a template",{"type":46,"tag":1007,"props":1544,"children":1545},{},[1546,1552,1554],{"type":46,"tag":1438,"props":1547,"children":1549},{"href":1548},"references\u002Fcreate.md",[1550],{"type":51,"value":1551},"create.md",{"type":51,"value":1553}," ⚠️ ",{"type":46,"tag":81,"props":1555,"children":1556},{},[1557],{"type":51,"value":1558},"MUST READ",{"type":46,"tag":980,"props":1560,"children":1561},{},[1562,1571,1576],{"type":46,"tag":1007,"props":1563,"children":1564},{},[1565],{"type":46,"tag":72,"props":1566,"children":1568},{"className":1567},[],[1569],{"type":51,"value":1570},"base44 link",{"type":46,"tag":1007,"props":1572,"children":1573},{},[1574],{"type":51,"value":1575},"Link an existing local project to Base44",{"type":46,"tag":1007,"props":1577,"children":1578},{},[1579],{"type":46,"tag":1438,"props":1580,"children":1582},{"href":1581},"references\u002Flink.md",[1583],{"type":51,"value":1584},"link.md",{"type":46,"tag":980,"props":1586,"children":1587},{},[1588,1597,1602],{"type":46,"tag":1007,"props":1589,"children":1590},{},[1591],{"type":46,"tag":72,"props":1592,"children":1594},{"className":1593},[],[1595],{"type":51,"value":1596},"base44 eject",{"type":46,"tag":1007,"props":1598,"children":1599},{},[1600],{"type":51,"value":1601},"Download the code for an existing Base44 project",{"type":46,"tag":1007,"props":1603,"children":1604},{},[1605],{"type":46,"tag":1438,"props":1606,"children":1608},{"href":1607},"references\u002Feject.md",[1609],{"type":51,"value":1610},"eject.md",{"type":46,"tag":980,"props":1612,"children":1613},{},[1614,1623,1628],{"type":46,"tag":1007,"props":1615,"children":1616},{},[1617],{"type":46,"tag":72,"props":1618,"children":1620},{"className":1619},[],[1621],{"type":51,"value":1622},"base44 dashboard open",{"type":46,"tag":1007,"props":1624,"children":1625},{},[1626],{"type":51,"value":1627},"Open the app dashboard in your browser",{"type":46,"tag":1007,"props":1629,"children":1630},{},[1631],{"type":46,"tag":1438,"props":1632,"children":1634},{"href":1633},"references\u002Fdashboard.md",[1635],{"type":51,"value":1636},"dashboard.md",{"type":46,"tag":1386,"props":1638,"children":1639},{"id":21},[1640],{"type":51,"value":20},{"type":46,"tag":972,"props":1642,"children":1643},{},[1644,1662],{"type":46,"tag":976,"props":1645,"children":1646},{},[1647],{"type":46,"tag":980,"props":1648,"children":1649},{},[1650,1654,1658],{"type":46,"tag":984,"props":1651,"children":1652},{},[1653],{"type":51,"value":1405},{"type":46,"tag":984,"props":1655,"children":1656},{},[1657],{"type":51,"value":993},{"type":46,"tag":984,"props":1659,"children":1660},{},[1661],{"type":51,"value":1414},{"type":46,"tag":1000,"props":1663,"children":1664},{},[1665],{"type":46,"tag":980,"props":1666,"children":1667},{},[1668,1677,1682],{"type":46,"tag":1007,"props":1669,"children":1670},{},[1671],{"type":46,"tag":72,"props":1672,"children":1674},{"className":1673},[],[1675],{"type":51,"value":1676},"base44 deploy",{"type":46,"tag":1007,"props":1678,"children":1679},{},[1680],{"type":51,"value":1681},"Deploy all resources (entities, functions, agents, connectors, auth config, and site)",{"type":46,"tag":1007,"props":1683,"children":1684},{},[1685],{"type":46,"tag":1438,"props":1686,"children":1688},{"href":1687},"references\u002Fdeploy.md",[1689],{"type":51,"value":1690},"deploy.md",{"type":46,"tag":1386,"props":1692,"children":1694},{"id":1693},"entity-management",[1695],{"type":51,"value":1696},"Entity Management",{"type":46,"tag":972,"props":1698,"children":1699},{},[1700,1719],{"type":46,"tag":976,"props":1701,"children":1702},{},[1703],{"type":46,"tag":980,"props":1704,"children":1705},{},[1706,1711,1715],{"type":46,"tag":984,"props":1707,"children":1708},{},[1709],{"type":51,"value":1710},"Action \u002F Command",{"type":46,"tag":984,"props":1712,"children":1713},{},[1714],{"type":51,"value":993},{"type":46,"tag":984,"props":1716,"children":1717},{},[1718],{"type":51,"value":1414},{"type":46,"tag":1000,"props":1720,"children":1721},{},[1722,1752,1778],{"type":46,"tag":980,"props":1723,"children":1724},{},[1725,1730,1743],{"type":46,"tag":1007,"props":1726,"children":1727},{},[1728],{"type":51,"value":1729},"Create Entities",{"type":46,"tag":1007,"props":1731,"children":1732},{},[1733,1735,1741],{"type":51,"value":1734},"Define entities in ",{"type":46,"tag":72,"props":1736,"children":1738},{"className":1737},[],[1739],{"type":51,"value":1740},"base44\u002Fentities",{"type":51,"value":1742}," folder",{"type":46,"tag":1007,"props":1744,"children":1745},{},[1746],{"type":46,"tag":1438,"props":1747,"children":1749},{"href":1748},"references\u002Fentities-create.md",[1750],{"type":51,"value":1751},"entities-create.md",{"type":46,"tag":980,"props":1753,"children":1754},{},[1755,1764,1769],{"type":46,"tag":1007,"props":1756,"children":1757},{},[1758],{"type":46,"tag":72,"props":1759,"children":1761},{"className":1760},[],[1762],{"type":51,"value":1763},"base44 entities push",{"type":46,"tag":1007,"props":1765,"children":1766},{},[1767],{"type":51,"value":1768},"Push local entities to Base44",{"type":46,"tag":1007,"props":1770,"children":1771},{},[1772],{"type":46,"tag":1438,"props":1773,"children":1775},{"href":1774},"references\u002Fentities-push.md",[1776],{"type":51,"value":1777},"entities-push.md",{"type":46,"tag":980,"props":1779,"children":1780},{},[1781,1786,1791],{"type":46,"tag":1007,"props":1782,"children":1783},{},[1784],{"type":51,"value":1785},"RLS Patterns",{"type":46,"tag":1007,"props":1787,"children":1788},{},[1789],{"type":51,"value":1790},"Row-level security examples and operators",{"type":46,"tag":1007,"props":1792,"children":1793},{},[1794,1800,1801],{"type":46,"tag":1438,"props":1795,"children":1797},{"href":1796},"references\u002Frls-examples.md",[1798],{"type":51,"value":1799},"rls-examples.md",{"type":51,"value":1553},{"type":46,"tag":81,"props":1802,"children":1803},{},[1804],{"type":51,"value":1805},"READ FOR RLS",{"type":46,"tag":1807,"props":1808,"children":1810},"h4",{"id":1809},"entity-schema-quick-reference",[1811],{"type":51,"value":1812},"Entity Schema (Quick Reference)",{"type":46,"tag":54,"props":1814,"children":1815},{},[1816],{"type":51,"value":1817},"ALWAYS follow this exact structure when creating entity files:",{"type":46,"tag":54,"props":1819,"children":1820},{},[1821,1826,1828,1834,1836,1842,1843,1849],{"type":46,"tag":81,"props":1822,"children":1823},{},[1824],{"type":51,"value":1825},"File naming:",{"type":51,"value":1827}," ",{"type":46,"tag":72,"props":1829,"children":1831},{"className":1830},[],[1832],{"type":51,"value":1833},"base44\u002Fentities\u002F{kebab-case-name}.jsonc",{"type":51,"value":1835}," (e.g., ",{"type":46,"tag":72,"props":1837,"children":1839},{"className":1838},[],[1840],{"type":51,"value":1841},"team-member.jsonc",{"type":51,"value":556},{"type":46,"tag":72,"props":1844,"children":1846},{"className":1845},[],[1847],{"type":51,"value":1848},"TeamMember",{"type":51,"value":480},{"type":46,"tag":54,"props":1851,"children":1852},{},[1853],{"type":46,"tag":81,"props":1854,"children":1855},{},[1856],{"type":51,"value":1857},"Schema template:",{"type":46,"tag":270,"props":1859,"children":1861},{"className":776,"code":1860,"language":778,"meta":275,"style":275},"{\n  \"name\": \"EntityName\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"field_name\": {\n      \"type\": \"string\",\n      \"description\": \"Field description\"\n    }\n  },\n  \"required\": [\"field_name\"]\n}\n",[1862],{"type":46,"tag":72,"props":1863,"children":1864},{"__ignoreMap":275},[1865,1872,1880,1888,1896,1904,1912,1920,1928,1936,1944],{"type":46,"tag":281,"props":1866,"children":1867},{"class":283,"line":284},[1868],{"type":46,"tag":281,"props":1869,"children":1870},{},[1871],{"type":51,"value":790},{"type":46,"tag":281,"props":1873,"children":1874},{"class":283,"line":793},[1875],{"type":46,"tag":281,"props":1876,"children":1877},{},[1878],{"type":51,"value":1879},"  \"name\": \"EntityName\",\n",{"type":46,"tag":281,"props":1881,"children":1882},{"class":283,"line":807},[1883],{"type":46,"tag":281,"props":1884,"children":1885},{},[1886],{"type":51,"value":1887},"  \"type\": \"object\",\n",{"type":46,"tag":281,"props":1889,"children":1890},{"class":283,"line":821},[1891],{"type":46,"tag":281,"props":1892,"children":1893},{},[1894],{"type":51,"value":1895},"  \"properties\": {\n",{"type":46,"tag":281,"props":1897,"children":1898},{"class":283,"line":835},[1899],{"type":46,"tag":281,"props":1900,"children":1901},{},[1902],{"type":51,"value":1903},"    \"field_name\": {\n",{"type":46,"tag":281,"props":1905,"children":1906},{"class":283,"line":849},[1907],{"type":46,"tag":281,"props":1908,"children":1909},{},[1910],{"type":51,"value":1911},"      \"type\": \"string\",\n",{"type":46,"tag":281,"props":1913,"children":1914},{"class":283,"line":863},[1915],{"type":46,"tag":281,"props":1916,"children":1917},{},[1918],{"type":51,"value":1919},"      \"description\": \"Field description\"\n",{"type":46,"tag":281,"props":1921,"children":1922},{"class":283,"line":877},[1923],{"type":46,"tag":281,"props":1924,"children":1925},{},[1926],{"type":51,"value":1927},"    }\n",{"type":46,"tag":281,"props":1929,"children":1930},{"class":283,"line":891},[1931],{"type":46,"tag":281,"props":1932,"children":1933},{},[1934],{"type":51,"value":1935},"  },\n",{"type":46,"tag":281,"props":1937,"children":1938},{"class":283,"line":905},[1939],{"type":46,"tag":281,"props":1940,"children":1941},{},[1942],{"type":51,"value":1943},"  \"required\": [\"field_name\"]\n",{"type":46,"tag":281,"props":1945,"children":1946},{"class":283,"line":919},[1947],{"type":46,"tag":281,"props":1948,"children":1949},{},[1950],{"type":51,"value":962},{"type":46,"tag":54,"props":1952,"children":1953},{},[1954,1959,1960,1966,1968,1974,1975,1981,1982,1988,1989,1995,1996,2002,2003,2009,2014,2015,2021,2022,2028,2029,2035,2036,2042,2043,2049,2050,2056,2057,2063,2064,2070,2071,2077,2078,2084,2085,2091,2092,2098,2103,2105,2111,2113,2119,2124,2126,2132],{"type":46,"tag":81,"props":1955,"children":1956},{},[1957],{"type":51,"value":1958},"Field types:",{"type":51,"value":1827},{"type":46,"tag":72,"props":1961,"children":1963},{"className":1962},[],[1964],{"type":51,"value":1965},"string",{"type":51,"value":1967},", ",{"type":46,"tag":72,"props":1969,"children":1971},{"className":1970},[],[1972],{"type":51,"value":1973},"number",{"type":51,"value":1967},{"type":46,"tag":72,"props":1976,"children":1978},{"className":1977},[],[1979],{"type":51,"value":1980},"integer",{"type":51,"value":1967},{"type":46,"tag":72,"props":1983,"children":1985},{"className":1984},[],[1986],{"type":51,"value":1987},"boolean",{"type":51,"value":1967},{"type":46,"tag":72,"props":1990,"children":1992},{"className":1991},[],[1993],{"type":51,"value":1994},"array",{"type":51,"value":1967},{"type":46,"tag":72,"props":1997,"children":1999},{"className":1998},[],[2000],{"type":51,"value":2001},"object",{"type":51,"value":1967},{"type":46,"tag":72,"props":2004,"children":2006},{"className":2005},[],[2007],{"type":51,"value":2008},"binary",{"type":46,"tag":81,"props":2010,"children":2011},{},[2012],{"type":51,"value":2013},"String formats:",{"type":51,"value":1827},{"type":46,"tag":72,"props":2016,"children":2018},{"className":2017},[],[2019],{"type":51,"value":2020},"date",{"type":51,"value":1967},{"type":46,"tag":72,"props":2023,"children":2025},{"className":2024},[],[2026],{"type":51,"value":2027},"date-time",{"type":51,"value":1967},{"type":46,"tag":72,"props":2030,"children":2032},{"className":2031},[],[2033],{"type":51,"value":2034},"time",{"type":51,"value":1967},{"type":46,"tag":72,"props":2037,"children":2039},{"className":2038},[],[2040],{"type":51,"value":2041},"email",{"type":51,"value":1967},{"type":46,"tag":72,"props":2044,"children":2046},{"className":2045},[],[2047],{"type":51,"value":2048},"uri",{"type":51,"value":1967},{"type":46,"tag":72,"props":2051,"children":2053},{"className":2052},[],[2054],{"type":51,"value":2055},"hostname",{"type":51,"value":1967},{"type":46,"tag":72,"props":2058,"children":2060},{"className":2059},[],[2061],{"type":51,"value":2062},"ipv4",{"type":51,"value":1967},{"type":46,"tag":72,"props":2065,"children":2067},{"className":2066},[],[2068],{"type":51,"value":2069},"ipv6",{"type":51,"value":1967},{"type":46,"tag":72,"props":2072,"children":2074},{"className":2073},[],[2075],{"type":51,"value":2076},"uuid",{"type":51,"value":1967},{"type":46,"tag":72,"props":2079,"children":2081},{"className":2080},[],[2082],{"type":51,"value":2083},"file",{"type":51,"value":1967},{"type":46,"tag":72,"props":2086,"children":2088},{"className":2087},[],[2089],{"type":51,"value":2090},"regex",{"type":51,"value":1967},{"type":46,"tag":72,"props":2093,"children":2095},{"className":2094},[],[2096],{"type":51,"value":2097},"richtext",{"type":46,"tag":81,"props":2099,"children":2100},{},[2101],{"type":51,"value":2102},"For enums:",{"type":51,"value":2104}," Add ",{"type":46,"tag":72,"props":2106,"children":2108},{"className":2107},[],[2109],{"type":51,"value":2110},"\"enum\": [\"value1\", \"value2\"]",{"type":51,"value":2112}," and optionally ",{"type":46,"tag":72,"props":2114,"children":2116},{"className":2115},[],[2117],{"type":51,"value":2118},"\"default\": \"value1\"",{"type":46,"tag":81,"props":2120,"children":2121},{},[2122],{"type":51,"value":2123},"Entity names:",{"type":51,"value":2125}," Must be alphanumeric only (pattern: ",{"type":46,"tag":72,"props":2127,"children":2129},{"className":2128},[],[2130],{"type":51,"value":2131},"\u002F^[a-zA-Z0-9]+$\u002F",{"type":51,"value":480},{"type":46,"tag":54,"props":2134,"children":2135},{},[2136,2138,2142],{"type":51,"value":2137},"For complete documentation, see ",{"type":46,"tag":1438,"props":2139,"children":2140},{"href":1748},[2141],{"type":51,"value":1751},{"type":51,"value":2143},".",{"type":46,"tag":1386,"props":2145,"children":2147},{"id":2146},"function-management",[2148],{"type":51,"value":2149},"Function Management",{"type":46,"tag":972,"props":2151,"children":2152},{},[2153,2171],{"type":46,"tag":976,"props":2154,"children":2155},{},[2156],{"type":46,"tag":980,"props":2157,"children":2158},{},[2159,2163,2167],{"type":46,"tag":984,"props":2160,"children":2161},{},[2162],{"type":51,"value":1710},{"type":46,"tag":984,"props":2164,"children":2165},{},[2166],{"type":51,"value":993},{"type":46,"tag":984,"props":2168,"children":2169},{},[2170],{"type":51,"value":1414},{"type":46,"tag":1000,"props":2172,"children":2173},{},[2174,2203,2231,2257,2283,2309],{"type":46,"tag":980,"props":2175,"children":2176},{},[2177,2182,2194],{"type":46,"tag":1007,"props":2178,"children":2179},{},[2180],{"type":51,"value":2181},"Create Functions",{"type":46,"tag":1007,"props":2183,"children":2184},{},[2185,2187,2193],{"type":51,"value":2186},"Define functions in ",{"type":46,"tag":72,"props":2188,"children":2190},{"className":2189},[],[2191],{"type":51,"value":2192},"base44\u002Ffunctions",{"type":51,"value":1742},{"type":46,"tag":1007,"props":2195,"children":2196},{},[2197],{"type":46,"tag":1438,"props":2198,"children":2200},{"href":2199},"references\u002Ffunctions-create.md",[2201],{"type":51,"value":2202},"functions-create.md",{"type":46,"tag":980,"props":2204,"children":2205},{},[2206,2211,2222],{"type":46,"tag":1007,"props":2207,"children":2208},{},[2209],{"type":51,"value":2210},"Configure Automations",{"type":46,"tag":1007,"props":2212,"children":2213},{},[2214,2216],{"type":51,"value":2215},"CRON, simple triggers, entity hooks in ",{"type":46,"tag":72,"props":2217,"children":2219},{"className":2218},[],[2220],{"type":51,"value":2221},"function.jsonc",{"type":46,"tag":1007,"props":2223,"children":2224},{},[2225],{"type":46,"tag":1438,"props":2226,"children":2228},{"href":2227},"references\u002Fautomations.md",[2229],{"type":51,"value":2230},"automations.md",{"type":46,"tag":980,"props":2232,"children":2233},{},[2234,2243,2248],{"type":46,"tag":1007,"props":2235,"children":2236},{},[2237],{"type":46,"tag":72,"props":2238,"children":2240},{"className":2239},[],[2241],{"type":51,"value":2242},"base44 functions deploy [names...] [--force]",{"type":46,"tag":1007,"props":2244,"children":2245},{},[2246],{"type":51,"value":2247},"Deploy local functions (and automations) to Base44; optionally target specific functions or prune removed ones",{"type":46,"tag":1007,"props":2249,"children":2250},{},[2251],{"type":46,"tag":1438,"props":2252,"children":2254},{"href":2253},"references\u002Ffunctions-deploy.md",[2255],{"type":51,"value":2256},"functions-deploy.md",{"type":46,"tag":980,"props":2258,"children":2259},{},[2260,2269,2274],{"type":46,"tag":1007,"props":2261,"children":2262},{},[2263],{"type":46,"tag":72,"props":2264,"children":2266},{"className":2265},[],[2267],{"type":51,"value":2268},"base44 functions delete \u003Cnames...>",{"type":46,"tag":1007,"props":2270,"children":2271},{},[2272],{"type":51,"value":2273},"Delete one or more deployed functions from Base44",{"type":46,"tag":1007,"props":2275,"children":2276},{},[2277],{"type":46,"tag":1438,"props":2278,"children":2280},{"href":2279},"references\u002Ffunctions-delete.md",[2281],{"type":51,"value":2282},"functions-delete.md",{"type":46,"tag":980,"props":2284,"children":2285},{},[2286,2295,2300],{"type":46,"tag":1007,"props":2287,"children":2288},{},[2289],{"type":46,"tag":72,"props":2290,"children":2292},{"className":2291},[],[2293],{"type":51,"value":2294},"base44 functions list",{"type":46,"tag":1007,"props":2296,"children":2297},{},[2298],{"type":51,"value":2299},"List all deployed functions on Base44 remote",{"type":46,"tag":1007,"props":2301,"children":2302},{},[2303],{"type":46,"tag":1438,"props":2304,"children":2306},{"href":2305},"references\u002Ffunctions-list.md",[2307],{"type":51,"value":2308},"functions-list.md",{"type":46,"tag":980,"props":2310,"children":2311},{},[2312,2321,2326],{"type":46,"tag":1007,"props":2313,"children":2314},{},[2315],{"type":46,"tag":72,"props":2316,"children":2318},{"className":2317},[],[2319],{"type":51,"value":2320},"base44 functions pull [name]",{"type":46,"tag":1007,"props":2322,"children":2323},{},[2324],{"type":51,"value":2325},"Pull deployed functions from Base44 to local files",{"type":46,"tag":1007,"props":2327,"children":2328},{},[2329],{"type":46,"tag":1438,"props":2330,"children":2332},{"href":2331},"references\u002Ffunctions-pull.md",[2333],{"type":51,"value":2334},"functions-pull.md",{"type":46,"tag":1386,"props":2336,"children":2338},{"id":2337},"agent-management",[2339],{"type":51,"value":2340},"Agent Management",{"type":46,"tag":54,"props":2342,"children":2343},{},[2344],{"type":51,"value":2345},"Agents are conversational AI assistants that can interact with users, access your app's entities, and call backend functions. Use these commands to manage agent configurations.",{"type":46,"tag":972,"props":2347,"children":2348},{},[2349,2367],{"type":46,"tag":976,"props":2350,"children":2351},{},[2352],{"type":46,"tag":980,"props":2353,"children":2354},{},[2355,2359,2363],{"type":46,"tag":984,"props":2356,"children":2357},{},[2358],{"type":51,"value":1710},{"type":46,"tag":984,"props":2360,"children":2361},{},[2362],{"type":51,"value":993},{"type":46,"tag":984,"props":2364,"children":2365},{},[2366],{"type":51,"value":1414},{"type":46,"tag":1000,"props":2368,"children":2369},{},[2370,2395,2421],{"type":46,"tag":980,"props":2371,"children":2372},{},[2373,2378,2390],{"type":46,"tag":1007,"props":2374,"children":2375},{},[2376],{"type":51,"value":2377},"Create Agents",{"type":46,"tag":1007,"props":2379,"children":2380},{},[2381,2383,2389],{"type":51,"value":2382},"Define agents in ",{"type":46,"tag":72,"props":2384,"children":2386},{"className":2385},[],[2387],{"type":51,"value":2388},"base44\u002Fagents",{"type":51,"value":1742},{"type":46,"tag":1007,"props":2391,"children":2392},{},[2393],{"type":51,"value":2394},"See Agent Schema below",{"type":46,"tag":980,"props":2396,"children":2397},{},[2398,2407,2412],{"type":46,"tag":1007,"props":2399,"children":2400},{},[2401],{"type":46,"tag":72,"props":2402,"children":2404},{"className":2403},[],[2405],{"type":51,"value":2406},"base44 agents pull",{"type":46,"tag":1007,"props":2408,"children":2409},{},[2410],{"type":51,"value":2411},"Pull remote agents to local files",{"type":46,"tag":1007,"props":2413,"children":2414},{},[2415],{"type":46,"tag":1438,"props":2416,"children":2418},{"href":2417},"references\u002Fagents-pull.md",[2419],{"type":51,"value":2420},"agents-pull.md",{"type":46,"tag":980,"props":2422,"children":2423},{},[2424,2433,2438],{"type":46,"tag":1007,"props":2425,"children":2426},{},[2427],{"type":46,"tag":72,"props":2428,"children":2430},{"className":2429},[],[2431],{"type":51,"value":2432},"base44 agents push",{"type":46,"tag":1007,"props":2434,"children":2435},{},[2436],{"type":51,"value":2437},"Push local agents to Base44",{"type":46,"tag":1007,"props":2439,"children":2440},{},[2441],{"type":46,"tag":1438,"props":2442,"children":2444},{"href":2443},"references\u002Fagents-push.md",[2445],{"type":51,"value":2446},"agents-push.md",{"type":46,"tag":54,"props":2448,"children":2449},{},[2450,2454],{"type":46,"tag":81,"props":2451,"children":2452},{},[2453],{"type":51,"value":1352},{"type":51,"value":2455}," Agent commands perform full synchronization - pushing replaces all remote agents with local ones, and pulling replaces all local agents with remote ones.",{"type":46,"tag":1807,"props":2457,"children":2459},{"id":2458},"agent-schema-quick-reference",[2460],{"type":51,"value":2461},"Agent Schema (Quick Reference)",{"type":46,"tag":54,"props":2463,"children":2464},{},[2465,2469,2470,2476,2477,2483],{"type":46,"tag":81,"props":2466,"children":2467},{},[2468],{"type":51,"value":1825},{"type":51,"value":1827},{"type":46,"tag":72,"props":2471,"children":2473},{"className":2472},[],[2474],{"type":51,"value":2475},"base44\u002Fagents\u002F{agent_name}.jsonc",{"type":51,"value":1835},{"type":46,"tag":72,"props":2478,"children":2480},{"className":2479},[],[2481],{"type":51,"value":2482},"support_agent.jsonc",{"type":51,"value":480},{"type":46,"tag":54,"props":2485,"children":2486},{},[2487],{"type":46,"tag":81,"props":2488,"children":2489},{},[2490],{"type":51,"value":1857},{"type":46,"tag":270,"props":2492,"children":2494},{"className":776,"code":2493,"language":778,"meta":275,"style":275},"{\n  \"name\": \"agent_name\",\n  \"description\": \"Brief description of what this agent does\",\n  \"instructions\": \"Detailed instructions for the agent's behavior\",\n  \"tool_configs\": [\n    \u002F\u002F Entity tool - gives agent access to entity operations\n    { \"entity_name\": \"tasks\", \"allowed_operations\": [\"read\", \"create\", \"update\", \"delete\"] },\n    \u002F\u002F Backend function tool - gives agent access to a function\n    { \"function_name\": \"send_email\", \"description\": \"Send an email notification\" }\n  ],\n  \"whatsapp_greeting\": \"Hello! How can I help you today?\"\n}\n",[2495],{"type":46,"tag":72,"props":2496,"children":2497},{"__ignoreMap":275},[2498,2505,2513,2521,2529,2537,2545,2553,2561,2569,2577,2585],{"type":46,"tag":281,"props":2499,"children":2500},{"class":283,"line":284},[2501],{"type":46,"tag":281,"props":2502,"children":2503},{},[2504],{"type":51,"value":790},{"type":46,"tag":281,"props":2506,"children":2507},{"class":283,"line":793},[2508],{"type":46,"tag":281,"props":2509,"children":2510},{},[2511],{"type":51,"value":2512},"  \"name\": \"agent_name\",\n",{"type":46,"tag":281,"props":2514,"children":2515},{"class":283,"line":807},[2516],{"type":46,"tag":281,"props":2517,"children":2518},{},[2519],{"type":51,"value":2520},"  \"description\": \"Brief description of what this agent does\",\n",{"type":46,"tag":281,"props":2522,"children":2523},{"class":283,"line":821},[2524],{"type":46,"tag":281,"props":2525,"children":2526},{},[2527],{"type":51,"value":2528},"  \"instructions\": \"Detailed instructions for the agent's behavior\",\n",{"type":46,"tag":281,"props":2530,"children":2531},{"class":283,"line":835},[2532],{"type":46,"tag":281,"props":2533,"children":2534},{},[2535],{"type":51,"value":2536},"  \"tool_configs\": [\n",{"type":46,"tag":281,"props":2538,"children":2539},{"class":283,"line":849},[2540],{"type":46,"tag":281,"props":2541,"children":2542},{},[2543],{"type":51,"value":2544},"    \u002F\u002F Entity tool - gives agent access to entity operations\n",{"type":46,"tag":281,"props":2546,"children":2547},{"class":283,"line":863},[2548],{"type":46,"tag":281,"props":2549,"children":2550},{},[2551],{"type":51,"value":2552},"    { \"entity_name\": \"tasks\", \"allowed_operations\": [\"read\", \"create\", \"update\", \"delete\"] },\n",{"type":46,"tag":281,"props":2554,"children":2555},{"class":283,"line":877},[2556],{"type":46,"tag":281,"props":2557,"children":2558},{},[2559],{"type":51,"value":2560},"    \u002F\u002F Backend function tool - gives agent access to a function\n",{"type":46,"tag":281,"props":2562,"children":2563},{"class":283,"line":891},[2564],{"type":46,"tag":281,"props":2565,"children":2566},{},[2567],{"type":51,"value":2568},"    { \"function_name\": \"send_email\", \"description\": \"Send an email notification\" }\n",{"type":46,"tag":281,"props":2570,"children":2571},{"class":283,"line":905},[2572],{"type":46,"tag":281,"props":2573,"children":2574},{},[2575],{"type":51,"value":2576},"  ],\n",{"type":46,"tag":281,"props":2578,"children":2579},{"class":283,"line":919},[2580],{"type":46,"tag":281,"props":2581,"children":2582},{},[2583],{"type":51,"value":2584},"  \"whatsapp_greeting\": \"Hello! How can I help you today?\"\n",{"type":46,"tag":281,"props":2586,"children":2587},{"class":283,"line":933},[2588],{"type":46,"tag":281,"props":2589,"children":2590},{},[2591],{"type":51,"value":962},{"type":46,"tag":54,"props":2593,"children":2594},{},[2595],{"type":46,"tag":81,"props":2596,"children":2597},{},[2598],{"type":51,"value":2599},"Naming rules:",{"type":46,"tag":125,"props":2601,"children":2602},{},[2603,2616,2634],{"type":46,"tag":99,"props":2604,"children":2605},{},[2606,2608,2614],{"type":51,"value":2607},"Agent names must match pattern: ",{"type":46,"tag":72,"props":2609,"children":2611},{"className":2610},[],[2612],{"type":51,"value":2613},"\u002F^[a-z0-9_]+$\u002F",{"type":51,"value":2615}," (lowercase alphanumeric with underscores, 1-100 chars)",{"type":46,"tag":99,"props":2617,"children":2618},{},[2619,2621,2627,2628],{"type":51,"value":2620},"Valid: ",{"type":46,"tag":72,"props":2622,"children":2624},{"className":2623},[],[2625],{"type":51,"value":2626},"support_agent",{"type":51,"value":1967},{"type":46,"tag":72,"props":2629,"children":2631},{"className":2630},[],[2632],{"type":51,"value":2633},"order_bot",{"type":46,"tag":99,"props":2635,"children":2636},{},[2637,2639,2645,2646],{"type":51,"value":2638},"Invalid: ",{"type":46,"tag":72,"props":2640,"children":2642},{"className":2641},[],[2643],{"type":51,"value":2644},"Support-Agent",{"type":51,"value":1967},{"type":46,"tag":72,"props":2647,"children":2649},{"className":2648},[],[2650],{"type":51,"value":2651},"OrderBot",{"type":46,"tag":54,"props":2653,"children":2654},{},[2655,2660,2661,2666,2667,2672,2673,2679,2684,2685,2691,2693,2699,2701],{"type":46,"tag":81,"props":2656,"children":2657},{},[2658],{"type":51,"value":2659},"Required fields:",{"type":51,"value":1827},{"type":46,"tag":72,"props":2662,"children":2664},{"className":2663},[],[2665],{"type":51,"value":1015},{"type":51,"value":1967},{"type":46,"tag":72,"props":2668,"children":2670},{"className":2669},[],[2671],{"type":51,"value":1037},{"type":51,"value":1967},{"type":46,"tag":72,"props":2674,"children":2676},{"className":2675},[],[2677],{"type":51,"value":2678},"instructions",{"type":46,"tag":81,"props":2680,"children":2681},{},[2682],{"type":51,"value":2683},"Optional fields:",{"type":51,"value":1827},{"type":46,"tag":72,"props":2686,"children":2688},{"className":2687},[],[2689],{"type":51,"value":2690},"tool_configs",{"type":51,"value":2692}," (defaults to ",{"type":46,"tag":72,"props":2694,"children":2696},{"className":2695},[],[2697],{"type":51,"value":2698},"[]",{"type":51,"value":2700},"), ",{"type":46,"tag":72,"props":2702,"children":2704},{"className":2703},[],[2705],{"type":51,"value":2706},"whatsapp_greeting",{"type":46,"tag":54,"props":2708,"children":2709},{},[2710],{"type":46,"tag":81,"props":2711,"children":2712},{},[2713],{"type":51,"value":2714},"Tool config types:",{"type":46,"tag":125,"props":2716,"children":2717},{},[2718,2772],{"type":46,"tag":99,"props":2719,"children":2720},{},[2721,2726,2728,2734,2736,2742,2744,2750,2751,2757,2758,2764,2765,2771],{"type":46,"tag":81,"props":2722,"children":2723},{},[2724],{"type":51,"value":2725},"Entity tools",{"type":51,"value":2727},": ",{"type":46,"tag":72,"props":2729,"children":2731},{"className":2730},[],[2732],{"type":51,"value":2733},"entity_name",{"type":51,"value":2735}," + ",{"type":46,"tag":72,"props":2737,"children":2739},{"className":2738},[],[2740],{"type":51,"value":2741},"allowed_operations",{"type":51,"value":2743}," (array of: ",{"type":46,"tag":72,"props":2745,"children":2747},{"className":2746},[],[2748],{"type":51,"value":2749},"read",{"type":51,"value":1967},{"type":46,"tag":72,"props":2752,"children":2754},{"className":2753},[],[2755],{"type":51,"value":2756},"create",{"type":51,"value":1967},{"type":46,"tag":72,"props":2759,"children":2761},{"className":2760},[],[2762],{"type":51,"value":2763},"update",{"type":51,"value":1967},{"type":46,"tag":72,"props":2766,"children":2768},{"className":2767},[],[2769],{"type":51,"value":2770},"delete",{"type":51,"value":480},{"type":46,"tag":99,"props":2773,"children":2774},{},[2775,2780,2781,2787,2788],{"type":46,"tag":81,"props":2776,"children":2777},{},[2778],{"type":51,"value":2779},"Backend function tools",{"type":51,"value":2727},{"type":46,"tag":72,"props":2782,"children":2784},{"className":2783},[],[2785],{"type":51,"value":2786},"function_name",{"type":51,"value":2735},{"type":46,"tag":72,"props":2789,"children":2791},{"className":2790},[],[2792],{"type":51,"value":1037},{"type":46,"tag":1386,"props":2794,"children":2796},{"id":2795},"connector-management",[2797],{"type":51,"value":2798},"Connector Management",{"type":46,"tag":54,"props":2800,"children":2801},{},[2802],{"type":51,"value":2803},"Connectors let your app connect to external services (Google Calendar, Slack, Stripe, etc.). Most connectors use OAuth to provide access tokens for backend functions to call external APIs. Stripe is the exception — it is provisioned automatically on the server side with no OAuth browser flow.",{"type":46,"tag":972,"props":2805,"children":2806},{},[2807,2825],{"type":46,"tag":976,"props":2808,"children":2809},{},[2810],{"type":46,"tag":980,"props":2811,"children":2812},{},[2813,2817,2821],{"type":46,"tag":984,"props":2814,"children":2815},{},[2816],{"type":51,"value":1710},{"type":46,"tag":984,"props":2818,"children":2819},{},[2820],{"type":51,"value":993},{"type":46,"tag":984,"props":2822,"children":2823},{},[2824],{"type":51,"value":1414},{"type":46,"tag":1000,"props":2826,"children":2827},{},[2828,2857,2883,2909],{"type":46,"tag":980,"props":2829,"children":2830},{},[2831,2836,2848],{"type":46,"tag":1007,"props":2832,"children":2833},{},[2834],{"type":51,"value":2835},"Create Connectors",{"type":46,"tag":1007,"props":2837,"children":2838},{},[2839,2841,2847],{"type":51,"value":2840},"Define connectors in ",{"type":46,"tag":72,"props":2842,"children":2844},{"className":2843},[],[2845],{"type":51,"value":2846},"base44\u002Fconnectors",{"type":51,"value":1742},{"type":46,"tag":1007,"props":2849,"children":2850},{},[2851],{"type":46,"tag":1438,"props":2852,"children":2854},{"href":2853},"references\u002Fconnectors-create.md",[2855],{"type":51,"value":2856},"connectors-create.md",{"type":46,"tag":980,"props":2858,"children":2859},{},[2860,2869,2874],{"type":46,"tag":1007,"props":2861,"children":2862},{},[2863],{"type":46,"tag":72,"props":2864,"children":2866},{"className":2865},[],[2867],{"type":51,"value":2868},"base44 connectors list-available",{"type":46,"tag":1007,"props":2870,"children":2871},{},[2872],{"type":51,"value":2873},"List all available integration types from Base44",{"type":46,"tag":1007,"props":2875,"children":2876},{},[2877],{"type":46,"tag":1438,"props":2878,"children":2880},{"href":2879},"references\u002Fconnectors-list-available.md",[2881],{"type":51,"value":2882},"connectors-list-available.md",{"type":46,"tag":980,"props":2884,"children":2885},{},[2886,2895,2900],{"type":46,"tag":1007,"props":2887,"children":2888},{},[2889],{"type":46,"tag":72,"props":2890,"children":2892},{"className":2891},[],[2893],{"type":51,"value":2894},"base44 connectors pull",{"type":46,"tag":1007,"props":2896,"children":2897},{},[2898],{"type":51,"value":2899},"Pull remote connectors to local files",{"type":46,"tag":1007,"props":2901,"children":2902},{},[2903],{"type":46,"tag":1438,"props":2904,"children":2906},{"href":2905},"references\u002Fconnectors-pull.md",[2907],{"type":51,"value":2908},"connectors-pull.md",{"type":46,"tag":980,"props":2910,"children":2911},{},[2912,2921,2926],{"type":46,"tag":1007,"props":2913,"children":2914},{},[2915],{"type":46,"tag":72,"props":2916,"children":2918},{"className":2917},[],[2919],{"type":51,"value":2920},"base44 connectors push",{"type":46,"tag":1007,"props":2922,"children":2923},{},[2924],{"type":51,"value":2925},"Push local connectors to Base44",{"type":46,"tag":1007,"props":2927,"children":2928},{},[2929],{"type":46,"tag":1438,"props":2930,"children":2932},{"href":2931},"references\u002Fconnectors-push.md",[2933],{"type":51,"value":2934},"connectors-push.md",{"type":46,"tag":54,"props":2936,"children":2937},{},[2938,2942],{"type":46,"tag":81,"props":2939,"children":2940},{},[2941],{"type":51,"value":1352},{"type":51,"value":2943}," Connector commands perform full synchronization - pushing replaces all remote connectors with local ones (and triggers OAuth for new OAuth connectors), and pulling replaces all local connectors with remote ones.",{"type":46,"tag":1807,"props":2945,"children":2947},{"id":2946},"connector-schema-quick-reference",[2948],{"type":51,"value":2949},"Connector Schema (Quick Reference)",{"type":46,"tag":54,"props":2951,"children":2952},{},[2953,2957,2958,2964,2965,2971,2972,2978],{"type":46,"tag":81,"props":2954,"children":2955},{},[2956],{"type":51,"value":1825},{"type":51,"value":1827},{"type":46,"tag":72,"props":2959,"children":2961},{"className":2960},[],[2962],{"type":51,"value":2963},"base44\u002Fconnectors\u002F{type}.jsonc",{"type":51,"value":1835},{"type":46,"tag":72,"props":2966,"children":2968},{"className":2967},[],[2969],{"type":51,"value":2970},"googlecalendar.jsonc",{"type":51,"value":1967},{"type":46,"tag":72,"props":2973,"children":2975},{"className":2974},[],[2976],{"type":51,"value":2977},"slack.jsonc",{"type":51,"value":480},{"type":46,"tag":54,"props":2980,"children":2981},{},[2982],{"type":46,"tag":81,"props":2983,"children":2984},{},[2985],{"type":51,"value":1857},{"type":46,"tag":270,"props":2987,"children":2989},{"className":776,"code":2988,"language":778,"meta":275,"style":275},"{\n  \"type\": \"googlecalendar\",\n  \"scopes\": [\n    \"https:\u002F\u002Fwww.googleapis.com\u002Fauth\u002Fcalendar.readonly\",\n    \"https:\u002F\u002Fwww.googleapis.com\u002Fauth\u002Fcalendar.events\"\n  ]\n}\n",[2990],{"type":46,"tag":72,"props":2991,"children":2992},{"__ignoreMap":275},[2993,3000,3008,3016,3024,3032,3040],{"type":46,"tag":281,"props":2994,"children":2995},{"class":283,"line":284},[2996],{"type":46,"tag":281,"props":2997,"children":2998},{},[2999],{"type":51,"value":790},{"type":46,"tag":281,"props":3001,"children":3002},{"class":283,"line":793},[3003],{"type":46,"tag":281,"props":3004,"children":3005},{},[3006],{"type":51,"value":3007},"  \"type\": \"googlecalendar\",\n",{"type":46,"tag":281,"props":3009,"children":3010},{"class":283,"line":807},[3011],{"type":46,"tag":281,"props":3012,"children":3013},{},[3014],{"type":51,"value":3015},"  \"scopes\": [\n",{"type":46,"tag":281,"props":3017,"children":3018},{"class":283,"line":821},[3019],{"type":46,"tag":281,"props":3020,"children":3021},{},[3022],{"type":51,"value":3023},"    \"https:\u002F\u002Fwww.googleapis.com\u002Fauth\u002Fcalendar.readonly\",\n",{"type":46,"tag":281,"props":3025,"children":3026},{"class":283,"line":835},[3027],{"type":46,"tag":281,"props":3028,"children":3029},{},[3030],{"type":51,"value":3031},"    \"https:\u002F\u002Fwww.googleapis.com\u002Fauth\u002Fcalendar.events\"\n",{"type":46,"tag":281,"props":3033,"children":3034},{"class":283,"line":849},[3035],{"type":46,"tag":281,"props":3036,"children":3037},{},[3038],{"type":51,"value":3039},"  ]\n",{"type":46,"tag":281,"props":3041,"children":3042},{"class":283,"line":863},[3043],{"type":46,"tag":281,"props":3044,"children":3045},{},[3046],{"type":51,"value":962},{"type":46,"tag":54,"props":3048,"children":3049},{},[3050,3054,3055,3061,3065,3066,3072,3073,3078],{"type":46,"tag":81,"props":3051,"children":3052},{},[3053],{"type":51,"value":2659},{"type":51,"value":1827},{"type":46,"tag":72,"props":3056,"children":3058},{"className":3057},[],[3059],{"type":51,"value":3060},"type",{"type":46,"tag":81,"props":3062,"children":3063},{},[3064],{"type":51,"value":2683},{"type":51,"value":1827},{"type":46,"tag":72,"props":3067,"children":3069},{"className":3068},[],[3070],{"type":51,"value":3071},"scopes",{"type":51,"value":2692},{"type":46,"tag":72,"props":3074,"children":3076},{"className":3075},[],[3077],{"type":51,"value":2698},{"type":51,"value":480},{"type":46,"tag":54,"props":3080,"children":3081},{},[3082,3087,3089,3095],{"type":46,"tag":81,"props":3083,"children":3084},{},[3085],{"type":51,"value":3086},"Available connector types:",{"type":51,"value":3088}," Run ",{"type":46,"tag":72,"props":3090,"children":3092},{"className":3091},[],[3093],{"type":51,"value":3094},"npx base44 connectors list-available",{"type":51,"value":3096}," to see all supported integration types.",{"type":46,"tag":54,"props":3098,"children":3099},{},[3100,3104,3105,3111,3113,3119,3121,3125],{"type":46,"tag":81,"props":3101,"children":3102},{},[3103],{"type":51,"value":1352},{"type":51,"value":1827},{"type":46,"tag":72,"props":3106,"children":3108},{"className":3107},[],[3109],{"type":51,"value":3110},"stripe",{"type":51,"value":3112}," is also a valid connector type but is not returned by ",{"type":46,"tag":72,"props":3114,"children":3116},{"className":3115},[],[3117],{"type":51,"value":3118},"list-available",{"type":51,"value":3120},". Treat it as a supported type — it is provisioned automatically by Base44 with no OAuth browser flow. See ",{"type":46,"tag":1438,"props":3122,"children":3123},{"href":2853},[3124],{"type":51,"value":2856},{"type":51,"value":3126}," for details.",{"type":46,"tag":54,"props":3128,"children":3129},{},[3130,3131,3135],{"type":51,"value":2137},{"type":46,"tag":1438,"props":3132,"children":3133},{"href":2853},[3134],{"type":51,"value":2856},{"type":51,"value":2143},{"type":46,"tag":1807,"props":3137,"children":3139},{"id":3138},"automation-quick-reference",[3140],{"type":51,"value":3141},"Automation Quick Reference",{"type":46,"tag":54,"props":3143,"children":3144},{},[3145,3147,3152,3154,3159,3161,3167],{"type":51,"value":3146},"Automations are triggers defined in the ",{"type":46,"tag":72,"props":3148,"children":3150},{"className":3149},[],[3151],{"type":51,"value":712},{"type":51,"value":3153}," array inside ",{"type":46,"tag":72,"props":3155,"children":3157},{"className":3156},[],[3158],{"type":51,"value":2221},{"type":51,"value":3160},". They deploy with the function via ",{"type":46,"tag":72,"props":3162,"children":3164},{"className":3163},[],[3165],{"type":51,"value":3166},"base44 functions deploy",{"type":51,"value":3168},". Four types:",{"type":46,"tag":54,"props":3170,"children":3171},{},[3172,3177,3178,3183,3185,3190,3191,3197,3198,3204],{"type":46,"tag":81,"props":3173,"children":3174},{},[3175],{"type":51,"value":3176},"Common fields (all types):",{"type":51,"value":1827},{"type":46,"tag":72,"props":3179,"children":3181},{"className":3180},[],[3182],{"type":51,"value":1015},{"type":51,"value":3184}," (required), ",{"type":46,"tag":72,"props":3186,"children":3188},{"className":3187},[],[3189],{"type":51,"value":1037},{"type":51,"value":1967},{"type":46,"tag":72,"props":3192,"children":3194},{"className":3193},[],[3195],{"type":51,"value":3196},"function_args",{"type":51,"value":1967},{"type":46,"tag":72,"props":3199,"children":3201},{"className":3200},[],[3202],{"type":51,"value":3203},"is_active",{"type":51,"value":3205}," (default: true)",{"type":46,"tag":54,"props":3207,"children":3208},{},[3209,3214,3215,3221,3222,3228,3229,3235],{"type":46,"tag":81,"props":3210,"children":3211},{},[3212],{"type":51,"value":3213},"Scheduled One-Time:",{"type":51,"value":1827},{"type":46,"tag":72,"props":3216,"children":3218},{"className":3217},[],[3219],{"type":51,"value":3220},"type: \"scheduled\"",{"type":51,"value":1967},{"type":46,"tag":72,"props":3223,"children":3225},{"className":3224},[],[3226],{"type":51,"value":3227},"schedule_mode: \"one-time\"",{"type":51,"value":1967},{"type":46,"tag":72,"props":3230,"children":3232},{"className":3231},[],[3233],{"type":51,"value":3234},"one_time_date",{"type":51,"value":3236}," (ISO string)",{"type":46,"tag":54,"props":3238,"children":3239},{},[3240,3245,3246,3251,3252,3258,3259,3265,3266,3272,3274,3280,3282,3288,3289],{"type":46,"tag":81,"props":3241,"children":3242},{},[3243],{"type":51,"value":3244},"Scheduled CRON:",{"type":51,"value":1827},{"type":46,"tag":72,"props":3247,"children":3249},{"className":3248},[],[3250],{"type":51,"value":3220},{"type":51,"value":1967},{"type":46,"tag":72,"props":3253,"children":3255},{"className":3254},[],[3256],{"type":51,"value":3257},"schedule_mode: \"recurring\"",{"type":51,"value":1967},{"type":46,"tag":72,"props":3260,"children":3262},{"className":3261},[],[3263],{"type":51,"value":3264},"schedule_type: \"cron\"",{"type":51,"value":1967},{"type":46,"tag":72,"props":3267,"children":3269},{"className":3268},[],[3270],{"type":51,"value":3271},"cron_expression",{"type":51,"value":3273},", optional ",{"type":46,"tag":72,"props":3275,"children":3277},{"className":3276},[],[3278],{"type":51,"value":3279},"ends_type",{"type":51,"value":3281}," \u002F ",{"type":46,"tag":72,"props":3283,"children":3285},{"className":3284},[],[3286],{"type":51,"value":3287},"ends_on_date",{"type":51,"value":3281},{"type":46,"tag":72,"props":3290,"children":3292},{"className":3291},[],[3293],{"type":51,"value":3294},"ends_after_count",{"type":46,"tag":54,"props":3296,"children":3297},{},[3298,3303,3304,3309,3310,3315,3316,3322,3323,3329,3331,3337,3339,3345,3346,3352,3353,3359,3360,3366,3368,3374,3375,3381,3382,3388,3390,3396,3398,3403,3404,3409,3410],{"type":46,"tag":81,"props":3299,"children":3300},{},[3301],{"type":51,"value":3302},"Scheduled Simple:",{"type":51,"value":1827},{"type":46,"tag":72,"props":3305,"children":3307},{"className":3306},[],[3308],{"type":51,"value":3220},{"type":51,"value":1967},{"type":46,"tag":72,"props":3311,"children":3313},{"className":3312},[],[3314],{"type":51,"value":3257},{"type":51,"value":1967},{"type":46,"tag":72,"props":3317,"children":3319},{"className":3318},[],[3320],{"type":51,"value":3321},"schedule_type: \"simple\"",{"type":51,"value":1967},{"type":46,"tag":72,"props":3324,"children":3326},{"className":3325},[],[3327],{"type":51,"value":3328},"repeat_unit",{"type":51,"value":3330}," (",{"type":46,"tag":72,"props":3332,"children":3334},{"className":3333},[],[3335],{"type":51,"value":3336},"\"minutes\"",{"type":51,"value":3338}," | ",{"type":46,"tag":72,"props":3340,"children":3342},{"className":3341},[],[3343],{"type":51,"value":3344},"\"hours\"",{"type":51,"value":3338},{"type":46,"tag":72,"props":3347,"children":3349},{"className":3348},[],[3350],{"type":51,"value":3351},"\"days\"",{"type":51,"value":3338},{"type":46,"tag":72,"props":3354,"children":3356},{"className":3355},[],[3357],{"type":51,"value":3358},"\"weeks\"",{"type":51,"value":3338},{"type":46,"tag":72,"props":3361,"children":3363},{"className":3362},[],[3364],{"type":51,"value":3365},"\"months\"",{"type":51,"value":3367},"), optional ",{"type":46,"tag":72,"props":3369,"children":3371},{"className":3370},[],[3372],{"type":51,"value":3373},"repeat_interval",{"type":51,"value":1967},{"type":46,"tag":72,"props":3376,"children":3378},{"className":3377},[],[3379],{"type":51,"value":3380},"start_time",{"type":51,"value":1967},{"type":46,"tag":72,"props":3383,"children":3385},{"className":3384},[],[3386],{"type":51,"value":3387},"repeat_on_days",{"type":51,"value":3389}," (0–6), ",{"type":46,"tag":72,"props":3391,"children":3393},{"className":3392},[],[3394],{"type":51,"value":3395},"repeat_on_day_of_month",{"type":51,"value":3397}," (1–31), ",{"type":46,"tag":72,"props":3399,"children":3401},{"className":3400},[],[3402],{"type":51,"value":3279},{"type":51,"value":3281},{"type":46,"tag":72,"props":3405,"children":3407},{"className":3406},[],[3408],{"type":51,"value":3287},{"type":51,"value":3281},{"type":46,"tag":72,"props":3411,"children":3413},{"className":3412},[],[3414],{"type":51,"value":3294},{"type":46,"tag":54,"props":3416,"children":3417},{},[3418,3423,3424,3430,3431,3436,3438,3444,3446,3452,3453,3459,3460,3466],{"type":46,"tag":81,"props":3419,"children":3420},{},[3421],{"type":51,"value":3422},"Entity Hook:",{"type":51,"value":1827},{"type":46,"tag":72,"props":3425,"children":3427},{"className":3426},[],[3428],{"type":51,"value":3429},"type: \"entity\"",{"type":51,"value":1967},{"type":46,"tag":72,"props":3432,"children":3434},{"className":3433},[],[3435],{"type":51,"value":2733},{"type":51,"value":3437}," (matches entity schema name), ",{"type":46,"tag":72,"props":3439,"children":3441},{"className":3440},[],[3442],{"type":51,"value":3443},"event_types",{"type":51,"value":3445},": array of ",{"type":46,"tag":72,"props":3447,"children":3449},{"className":3448},[],[3450],{"type":51,"value":3451},"\"create\"",{"type":51,"value":3338},{"type":46,"tag":72,"props":3454,"children":3456},{"className":3455},[],[3457],{"type":51,"value":3458},"\"update\"",{"type":51,"value":3338},{"type":46,"tag":72,"props":3461,"children":3463},{"className":3462},[],[3464],{"type":51,"value":3465},"\"delete\"",{"type":51,"value":3467}," (at least one)",{"type":46,"tag":54,"props":3469,"children":3470},{},[3471,3473,3477],{"type":51,"value":3472},"For full schemas and examples, see ",{"type":46,"tag":1438,"props":3474,"children":3475},{"href":2227},[3476],{"type":51,"value":2230},{"type":51,"value":2143},{"type":46,"tag":1386,"props":3479,"children":3481},{"id":3480},"auth-configuration",[3482],{"type":51,"value":3483},"Auth Configuration",{"type":46,"tag":54,"props":3485,"children":3486},{},[3487,3489,3495,3497,3503,3505,3511],{"type":51,"value":3488},"Manage your app's authentication settings (e.g., username & password login). Auth config is stored in ",{"type":46,"tag":72,"props":3490,"children":3492},{"className":3491},[],[3493],{"type":51,"value":3494},"base44\u002Fauth\u002F",{"type":51,"value":3496}," and synced with Base44 via ",{"type":46,"tag":72,"props":3498,"children":3500},{"className":3499},[],[3501],{"type":51,"value":3502},"auth push",{"type":51,"value":3504},"\u002F",{"type":46,"tag":72,"props":3506,"children":3508},{"className":3507},[],[3509],{"type":51,"value":3510},"auth pull",{"type":51,"value":2143},{"type":46,"tag":972,"props":3513,"children":3514},{},[3515,3533],{"type":46,"tag":976,"props":3516,"children":3517},{},[3518],{"type":46,"tag":980,"props":3519,"children":3520},{},[3521,3525,3529],{"type":46,"tag":984,"props":3522,"children":3523},{},[3524],{"type":51,"value":1405},{"type":46,"tag":984,"props":3526,"children":3527},{},[3528],{"type":51,"value":993},{"type":46,"tag":984,"props":3530,"children":3531},{},[3532],{"type":51,"value":1414},{"type":46,"tag":1000,"props":3534,"children":3535},{},[3536,3562,3588],{"type":46,"tag":980,"props":3537,"children":3538},{},[3539,3548,3553],{"type":46,"tag":1007,"props":3540,"children":3541},{},[3542],{"type":46,"tag":72,"props":3543,"children":3545},{"className":3544},[],[3546],{"type":51,"value":3547},"base44 auth password-login \u003Cenable|disable>",{"type":46,"tag":1007,"props":3549,"children":3550},{},[3551],{"type":51,"value":3552},"Enable or disable username & password authentication",{"type":46,"tag":1007,"props":3554,"children":3555},{},[3556],{"type":46,"tag":1438,"props":3557,"children":3559},{"href":3558},"references\u002Fauth-password-login.md",[3560],{"type":51,"value":3561},"auth-password-login.md",{"type":46,"tag":980,"props":3563,"children":3564},{},[3565,3574,3579],{"type":46,"tag":1007,"props":3566,"children":3567},{},[3568],{"type":46,"tag":72,"props":3569,"children":3571},{"className":3570},[],[3572],{"type":51,"value":3573},"base44 auth pull",{"type":46,"tag":1007,"props":3575,"children":3576},{},[3577],{"type":51,"value":3578},"Pull auth config from Base44 to local files",{"type":46,"tag":1007,"props":3580,"children":3581},{},[3582],{"type":46,"tag":1438,"props":3583,"children":3585},{"href":3584},"references\u002Fauth-pull.md",[3586],{"type":51,"value":3587},"auth-pull.md",{"type":46,"tag":980,"props":3589,"children":3590},{},[3591,3600,3605],{"type":46,"tag":1007,"props":3592,"children":3593},{},[3594],{"type":46,"tag":72,"props":3595,"children":3597},{"className":3596},[],[3598],{"type":51,"value":3599},"base44 auth push",{"type":46,"tag":1007,"props":3601,"children":3602},{},[3603],{"type":51,"value":3604},"Push local auth config to Base44",{"type":46,"tag":1007,"props":3606,"children":3607},{},[3608],{"type":46,"tag":1438,"props":3609,"children":3611},{"href":3610},"references\u002Fauth-push.md",[3612],{"type":51,"value":3613},"auth-push.md",{"type":46,"tag":54,"props":3615,"children":3616},{},[3617,3621,3623,3628],{"type":46,"tag":81,"props":3618,"children":3619},{},[3620],{"type":51,"value":1352},{"type":51,"value":3622}," Auth config is also deployed as part of ",{"type":46,"tag":72,"props":3624,"children":3626},{"className":3625},[],[3627],{"type":51,"value":1676},{"type":51,"value":2143},{"type":46,"tag":1386,"props":3630,"children":3632},{"id":3631},"secrets-management",[3633],{"type":51,"value":3634},"Secrets Management",{"type":46,"tag":54,"props":3636,"children":3637},{},[3638,3640,3646],{"type":51,"value":3639},"Manage project secrets (environment variables stored securely in Base44). These commands are hidden from ",{"type":46,"tag":72,"props":3641,"children":3643},{"className":3642},[],[3644],{"type":51,"value":3645},"--help",{"type":51,"value":3647}," output but are fully functional.",{"type":46,"tag":972,"props":3649,"children":3650},{},[3651,3669],{"type":46,"tag":976,"props":3652,"children":3653},{},[3654],{"type":46,"tag":980,"props":3655,"children":3656},{},[3657,3661,3665],{"type":46,"tag":984,"props":3658,"children":3659},{},[3660],{"type":51,"value":1405},{"type":46,"tag":984,"props":3662,"children":3663},{},[3664],{"type":51,"value":993},{"type":46,"tag":984,"props":3666,"children":3667},{},[3668],{"type":51,"value":1414},{"type":46,"tag":1000,"props":3670,"children":3671},{},[3672,3698,3724],{"type":46,"tag":980,"props":3673,"children":3674},{},[3675,3684,3689],{"type":46,"tag":1007,"props":3676,"children":3677},{},[3678],{"type":46,"tag":72,"props":3679,"children":3681},{"className":3680},[],[3682],{"type":51,"value":3683},"base44 secrets list",{"type":46,"tag":1007,"props":3685,"children":3686},{},[3687],{"type":51,"value":3688},"List the names of all secrets",{"type":46,"tag":1007,"props":3690,"children":3691},{},[3692],{"type":46,"tag":1438,"props":3693,"children":3695},{"href":3694},"references\u002Fsecrets-list.md",[3696],{"type":51,"value":3697},"secrets-list.md",{"type":46,"tag":980,"props":3699,"children":3700},{},[3701,3710,3715],{"type":46,"tag":1007,"props":3702,"children":3703},{},[3704],{"type":46,"tag":72,"props":3705,"children":3707},{"className":3706},[],[3708],{"type":51,"value":3709},"base44 secrets set",{"type":46,"tag":1007,"props":3711,"children":3712},{},[3713],{"type":51,"value":3714},"Set one or more secrets (KEY=VALUE or --env-file)",{"type":46,"tag":1007,"props":3716,"children":3717},{},[3718],{"type":46,"tag":1438,"props":3719,"children":3721},{"href":3720},"references\u002Fsecrets-set.md",[3722],{"type":51,"value":3723},"secrets-set.md",{"type":46,"tag":980,"props":3725,"children":3726},{},[3727,3736,3741],{"type":46,"tag":1007,"props":3728,"children":3729},{},[3730],{"type":46,"tag":72,"props":3731,"children":3733},{"className":3732},[],[3734],{"type":51,"value":3735},"base44 secrets delete \u003Ckey>",{"type":46,"tag":1007,"props":3737,"children":3738},{},[3739],{"type":51,"value":3740},"Delete a secret by name",{"type":46,"tag":1007,"props":3742,"children":3743},{},[3744],{"type":46,"tag":1438,"props":3745,"children":3747},{"href":3746},"references\u002Fsecrets-delete.md",[3748],{"type":51,"value":3749},"secrets-delete.md",{"type":46,"tag":1386,"props":3751,"children":3753},{"id":3752},"script-execution",[3754],{"type":51,"value":3755},"Script Execution",{"type":46,"tag":54,"props":3757,"children":3758},{},[3759,3761,3767,3769,3775],{"type":51,"value":3760},"Run one-off scripts against your app with the Base44 SDK pre-authenticated. Use it to perform CRUD operations on entities (",{"type":46,"tag":72,"props":3762,"children":3764},{"className":3763},[],[3765],{"type":51,"value":3766},"base44.entities.MyEntity.list\u002Fcreate\u002Fupdate\u002Fdelete",{"type":51,"value":3768},"), call backend functions (",{"type":46,"tag":72,"props":3770,"children":3772},{"className":3771},[],[3773],{"type":51,"value":3774},"base44.functions.invoke(\"myFunction\", args)",{"type":51,"value":3776},"), invoke agents, or access any other resource exposed by the SDK — without deploying a full function. Useful for data migrations, bulk operations, debugging, and automation scripts.",{"type":46,"tag":972,"props":3778,"children":3779},{},[3780,3798],{"type":46,"tag":976,"props":3781,"children":3782},{},[3783],{"type":46,"tag":980,"props":3784,"children":3785},{},[3786,3790,3794],{"type":46,"tag":984,"props":3787,"children":3788},{},[3789],{"type":51,"value":1405},{"type":46,"tag":984,"props":3791,"children":3792},{},[3793],{"type":51,"value":993},{"type":46,"tag":984,"props":3795,"children":3796},{},[3797],{"type":51,"value":1414},{"type":46,"tag":1000,"props":3799,"children":3800},{},[3801],{"type":46,"tag":980,"props":3802,"children":3803},{},[3804,3813,3818],{"type":46,"tag":1007,"props":3805,"children":3806},{},[3807],{"type":46,"tag":72,"props":3808,"children":3810},{"className":3809},[],[3811],{"type":51,"value":3812},"base44 exec",{"type":46,"tag":1007,"props":3814,"children":3815},{},[3816],{"type":51,"value":3817},"Run a script (via stdin) with the Base44 SDK pre-authenticated",{"type":46,"tag":1007,"props":3819,"children":3820},{},[3821],{"type":46,"tag":1438,"props":3822,"children":3824},{"href":3823},"references\u002Fexec.md",[3825],{"type":51,"value":3826},"exec.md",{"type":46,"tag":1386,"props":3828,"children":3830},{"id":3829},"type-generation",[3831],{"type":51,"value":3832},"Type Generation",{"type":46,"tag":972,"props":3834,"children":3835},{},[3836,3854],{"type":46,"tag":976,"props":3837,"children":3838},{},[3839],{"type":46,"tag":980,"props":3840,"children":3841},{},[3842,3846,3850],{"type":46,"tag":984,"props":3843,"children":3844},{},[3845],{"type":51,"value":1405},{"type":46,"tag":984,"props":3847,"children":3848},{},[3849],{"type":51,"value":993},{"type":46,"tag":984,"props":3851,"children":3852},{},[3853],{"type":51,"value":1414},{"type":46,"tag":1000,"props":3855,"children":3856},{},[3857],{"type":46,"tag":980,"props":3858,"children":3859},{},[3860,3869,3882],{"type":46,"tag":1007,"props":3861,"children":3862},{},[3863],{"type":46,"tag":72,"props":3864,"children":3866},{"className":3865},[],[3867],{"type":51,"value":3868},"base44 types generate",{"type":46,"tag":1007,"props":3870,"children":3871},{},[3872,3874,3880],{"type":51,"value":3873},"Generate TypeScript types (",{"type":46,"tag":72,"props":3875,"children":3877},{"className":3876},[],[3878],{"type":51,"value":3879},"types.d.ts",{"type":51,"value":3881},") from entities, functions, agents, and connectors",{"type":46,"tag":1007,"props":3883,"children":3884},{},[3885],{"type":46,"tag":1438,"props":3886,"children":3888},{"href":3887},"references\u002Ftypes-generate.md",[3889],{"type":51,"value":3890},"types-generate.md",{"type":46,"tag":54,"props":3892,"children":3893},{},[3894,3899,3900,3905,3907,3913,3915,3921,3922,3928,3929,3935,3936,3942],{"type":46,"tag":81,"props":3895,"children":3896},{},[3897],{"type":51,"value":3898},"Output:",{"type":51,"value":1827},{"type":46,"tag":72,"props":3901,"children":3903},{"className":3902},[],[3904],{"type":51,"value":734},{"type":51,"value":3906}," — augments ",{"type":46,"tag":72,"props":3908,"children":3910},{"className":3909},[],[3911],{"type":51,"value":3912},"@base44\u002Fsdk",{"type":51,"value":3914}," module with typed registries (",{"type":46,"tag":72,"props":3916,"children":3918},{"className":3917},[],[3919],{"type":51,"value":3920},"EntityTypeRegistry",{"type":51,"value":1967},{"type":46,"tag":72,"props":3923,"children":3925},{"className":3924},[],[3926],{"type":51,"value":3927},"FunctionNameRegistry",{"type":51,"value":1967},{"type":46,"tag":72,"props":3930,"children":3932},{"className":3931},[],[3933],{"type":51,"value":3934},"AgentNameRegistry",{"type":51,"value":1967},{"type":46,"tag":72,"props":3937,"children":3939},{"className":3938},[],[3940],{"type":51,"value":3941},"ConnectorTypeRegistry",{"type":51,"value":3943},").",{"type":46,"tag":54,"props":3945,"children":3946},{},[3947,3952,3954,3960],{"type":46,"tag":81,"props":3948,"children":3949},{},[3950],{"type":51,"value":3951},"No authentication required.",{"type":51,"value":3953}," Runs entirely locally. Automatically updates ",{"type":46,"tag":72,"props":3955,"children":3957},{"className":3956},[],[3958],{"type":51,"value":3959},"tsconfig.json",{"type":51,"value":3961}," to include the generated types.",{"type":46,"tag":1386,"props":3963,"children":3965},{"id":3964},"site-management",[3966],{"type":51,"value":3967},"Site Management",{"type":46,"tag":972,"props":3969,"children":3970},{},[3971,3989],{"type":46,"tag":976,"props":3972,"children":3973},{},[3974],{"type":46,"tag":980,"props":3975,"children":3976},{},[3977,3981,3985],{"type":46,"tag":984,"props":3978,"children":3979},{},[3980],{"type":51,"value":1405},{"type":46,"tag":984,"props":3982,"children":3983},{},[3984],{"type":51,"value":993},{"type":46,"tag":984,"props":3986,"children":3987},{},[3988],{"type":51,"value":1414},{"type":46,"tag":1000,"props":3990,"children":3991},{},[3992,4018],{"type":46,"tag":980,"props":3993,"children":3994},{},[3995,4004,4009],{"type":46,"tag":1007,"props":3996,"children":3997},{},[3998],{"type":46,"tag":72,"props":3999,"children":4001},{"className":4000},[],[4002],{"type":51,"value":4003},"base44 site deploy",{"type":46,"tag":1007,"props":4005,"children":4006},{},[4007],{"type":51,"value":4008},"Deploy built site files to Base44 hosting",{"type":46,"tag":1007,"props":4010,"children":4011},{},[4012],{"type":46,"tag":1438,"props":4013,"children":4015},{"href":4014},"references\u002Fsite-deploy.md",[4016],{"type":51,"value":4017},"site-deploy.md",{"type":46,"tag":980,"props":4019,"children":4020},{},[4021,4030,4035],{"type":46,"tag":1007,"props":4022,"children":4023},{},[4024],{"type":46,"tag":72,"props":4025,"children":4027},{"className":4026},[],[4028],{"type":51,"value":4029},"base44 site open",{"type":46,"tag":1007,"props":4031,"children":4032},{},[4033],{"type":51,"value":4034},"Open the deployed site in your browser",{"type":46,"tag":1007,"props":4036,"children":4037},{},[4038],{"type":46,"tag":1438,"props":4039,"children":4041},{"href":4040},"references\u002Fsite-open.md",[4042],{"type":51,"value":4043},"site-open.md",{"type":46,"tag":54,"props":4045,"children":4046},{},[4047,4052,4054,4060,4062,4067],{"type":46,"tag":81,"props":4048,"children":4049},{},[4050],{"type":51,"value":4051},"SPA only",{"type":51,"value":4053},": Base44 hosting supports Single Page Applications with a single ",{"type":46,"tag":72,"props":4055,"children":4057},{"className":4056},[],[4058],{"type":51,"value":4059},"index.html",{"type":51,"value":4061}," entry point. All routes are served from ",{"type":46,"tag":72,"props":4063,"children":4065},{"className":4064},[],[4066],{"type":51,"value":4059},{"type":51,"value":4068}," (client-side routing).",{"type":46,"tag":60,"props":4070,"children":4072},{"id":4071},"quick-start",[4073],{"type":51,"value":4074},"Quick Start",{"type":46,"tag":95,"props":4076,"children":4077},{},[4078,4108,4134,4185],{"type":46,"tag":99,"props":4079,"children":4080},{},[4081,4083],{"type":51,"value":4082},"Install the CLI in your project:",{"type":46,"tag":270,"props":4084,"children":4085},{"className":272,"code":1248,"language":274,"meta":275,"style":275},[4086],{"type":46,"tag":72,"props":4087,"children":4088},{"__ignoreMap":275},[4089],{"type":46,"tag":281,"props":4090,"children":4091},{"class":283,"line":284},[4092,4096,4100,4104],{"type":46,"tag":281,"props":4093,"children":4094},{"style":288},[4095],{"type":51,"value":1260},{"type":46,"tag":281,"props":4097,"children":4098},{"style":294},[4099],{"type":51,"value":1265},{"type":46,"tag":281,"props":4101,"children":4102},{"style":294},[4103],{"type":51,"value":1270},{"type":46,"tag":281,"props":4105,"children":4106},{"style":294},[4107],{"type":51,"value":1275},{"type":46,"tag":99,"props":4109,"children":4110},{},[4111,4113],{"type":51,"value":4112},"Authenticate with Base44:",{"type":46,"tag":270,"props":4114,"children":4115},{"className":272,"code":364,"language":274,"meta":275,"style":275},[4116],{"type":46,"tag":72,"props":4117,"children":4118},{"__ignoreMap":275},[4119],{"type":46,"tag":281,"props":4120,"children":4121},{"class":283,"line":284},[4122,4126,4130],{"type":46,"tag":281,"props":4123,"children":4124},{"style":288},[4125],{"type":51,"value":291},{"type":46,"tag":281,"props":4127,"children":4128},{"style":294},[4129],{"type":51,"value":297},{"type":46,"tag":281,"props":4131,"children":4132},{"style":294},[4133],{"type":51,"value":384},{"type":46,"tag":99,"props":4135,"children":4136},{},[4137,4139,4145,4147],{"type":51,"value":4138},"Create a new project (ALWAYS provide name and ",{"type":46,"tag":72,"props":4140,"children":4142},{"className":4141},[],[4143],{"type":51,"value":4144},"--path",{"type":51,"value":4146}," flag):",{"type":46,"tag":270,"props":4148,"children":4150},{"className":272,"code":4149,"language":274,"meta":275,"style":275},"npx base44 create my-app -p .\n",[4151],{"type":46,"tag":72,"props":4152,"children":4153},{"__ignoreMap":275},[4154],{"type":46,"tag":281,"props":4155,"children":4156},{"class":283,"line":284},[4157,4161,4165,4170,4175,4180],{"type":46,"tag":281,"props":4158,"children":4159},{"style":288},[4160],{"type":51,"value":291},{"type":46,"tag":281,"props":4162,"children":4163},{"style":294},[4164],{"type":51,"value":297},{"type":46,"tag":281,"props":4166,"children":4167},{"style":294},[4168],{"type":51,"value":4169}," create",{"type":46,"tag":281,"props":4171,"children":4172},{"style":294},[4173],{"type":51,"value":4174}," my-app",{"type":46,"tag":281,"props":4176,"children":4177},{"style":294},[4178],{"type":51,"value":4179}," -p",{"type":46,"tag":281,"props":4181,"children":4182},{"style":294},[4183],{"type":51,"value":4184}," .\n",{"type":46,"tag":99,"props":4186,"children":4187},{},[4188,4190],{"type":51,"value":4189},"Build and deploy everything:",{"type":46,"tag":270,"props":4191,"children":4193},{"className":272,"code":4192,"language":274,"meta":275,"style":275},"npm run build\nnpx base44 deploy -y\n",[4194],{"type":46,"tag":72,"props":4195,"children":4196},{"__ignoreMap":275},[4197,4214],{"type":46,"tag":281,"props":4198,"children":4199},{"class":283,"line":284},[4200,4204,4209],{"type":46,"tag":281,"props":4201,"children":4202},{"style":288},[4203],{"type":51,"value":1260},{"type":46,"tag":281,"props":4205,"children":4206},{"style":294},[4207],{"type":51,"value":4208}," run",{"type":46,"tag":281,"props":4210,"children":4211},{"style":294},[4212],{"type":51,"value":4213}," build\n",{"type":46,"tag":281,"props":4215,"children":4216},{"class":283,"line":793},[4217,4221,4225,4230],{"type":46,"tag":281,"props":4218,"children":4219},{"style":288},[4220],{"type":51,"value":291},{"type":46,"tag":281,"props":4222,"children":4223},{"style":294},[4224],{"type":51,"value":297},{"type":46,"tag":281,"props":4226,"children":4227},{"style":294},[4228],{"type":51,"value":4229}," deploy",{"type":46,"tag":281,"props":4231,"children":4232},{"style":294},[4233],{"type":51,"value":4234}," -y\n",{"type":46,"tag":54,"props":4236,"children":4237},{},[4238],{"type":51,"value":4239},"Or deploy individual resources:",{"type":46,"tag":125,"props":4241,"children":4242},{},[4243,4254,4265,4276,4287,4298,4309,4320,4331,4342,4353],{"type":46,"tag":99,"props":4244,"children":4245},{},[4246,4252],{"type":46,"tag":72,"props":4247,"children":4249},{"className":4248},[],[4250],{"type":51,"value":4251},"npx base44 entities push",{"type":51,"value":4253}," - Push entities only",{"type":46,"tag":99,"props":4255,"children":4256},{},[4257,4263],{"type":46,"tag":72,"props":4258,"children":4260},{"className":4259},[],[4261],{"type":51,"value":4262},"npx base44 functions deploy",{"type":51,"value":4264}," - Deploy functions only",{"type":46,"tag":99,"props":4266,"children":4267},{},[4268,4274],{"type":46,"tag":72,"props":4269,"children":4271},{"className":4270},[],[4272],{"type":51,"value":4273},"npx base44 functions delete \u003Cname>",{"type":51,"value":4275}," - Delete a deployed function",{"type":46,"tag":99,"props":4277,"children":4278},{},[4279,4285],{"type":46,"tag":72,"props":4280,"children":4282},{"className":4281},[],[4283],{"type":51,"value":4284},"npx base44 functions list",{"type":51,"value":4286}," - List all deployed functions",{"type":46,"tag":99,"props":4288,"children":4289},{},[4290,4296],{"type":46,"tag":72,"props":4291,"children":4293},{"className":4292},[],[4294],{"type":51,"value":4295},"npx base44 functions pull",{"type":51,"value":4297}," - Pull deployed functions to local files",{"type":46,"tag":99,"props":4299,"children":4300},{},[4301,4307],{"type":46,"tag":72,"props":4302,"children":4304},{"className":4303},[],[4305],{"type":51,"value":4306},"npx base44 agents push",{"type":51,"value":4308}," - Push agents only",{"type":46,"tag":99,"props":4310,"children":4311},{},[4312,4318],{"type":46,"tag":72,"props":4313,"children":4315},{"className":4314},[],[4316],{"type":51,"value":4317},"npx base44 connectors pull",{"type":51,"value":4319}," - Pull connectors from Base44",{"type":46,"tag":99,"props":4321,"children":4322},{},[4323,4329],{"type":46,"tag":72,"props":4324,"children":4326},{"className":4325},[],[4327],{"type":51,"value":4328},"npx base44 connectors push",{"type":51,"value":4330}," - Push connectors only",{"type":46,"tag":99,"props":4332,"children":4333},{},[4334,4340],{"type":46,"tag":72,"props":4335,"children":4337},{"className":4336},[],[4338],{"type":51,"value":4339},"npx base44 auth pull",{"type":51,"value":4341}," - Pull auth config from Base44",{"type":46,"tag":99,"props":4343,"children":4344},{},[4345,4351],{"type":46,"tag":72,"props":4346,"children":4348},{"className":4347},[],[4349],{"type":51,"value":4350},"npx base44 auth push",{"type":51,"value":4352}," - Push auth config only",{"type":46,"tag":99,"props":4354,"children":4355},{},[4356,4362],{"type":46,"tag":72,"props":4357,"children":4359},{"className":4358},[],[4360],{"type":51,"value":4361},"npx base44 site deploy -y",{"type":51,"value":4363}," - Deploy site only",{"type":46,"tag":60,"props":4365,"children":4367},{"id":4366},"common-workflows",[4368],{"type":51,"value":4369},"Common Workflows",{"type":46,"tag":1386,"props":4371,"children":4373},{"id":4372},"creating-a-new-project",[4374],{"type":51,"value":4375},"Creating a New Project",{"type":46,"tag":54,"props":4377,"children":4378},{},[4379],{"type":46,"tag":81,"props":4380,"children":4381},{},[4382,4384,4389,4391,4395],{"type":51,"value":4383},"⚠️ MANDATORY: Before running ",{"type":46,"tag":72,"props":4385,"children":4387},{"className":4386},[],[4388],{"type":51,"value":1537},{"type":51,"value":4390},", you MUST read ",{"type":46,"tag":1438,"props":4392,"children":4393},{"href":1548},[4394],{"type":51,"value":1551},{"type":51,"value":4396}," for:",{"type":46,"tag":125,"props":4398,"children":4399},{},[4400,4425,4435],{"type":46,"tag":99,"props":4401,"children":4402},{},[4403,4408,4410,4416,4418,4424],{"type":46,"tag":81,"props":4404,"children":4405},{},[4406],{"type":51,"value":4407},"Template selection",{"type":51,"value":4409}," - Choose the correct template (",{"type":46,"tag":72,"props":4411,"children":4413},{"className":4412},[],[4414],{"type":51,"value":4415},"backend-and-client",{"type":51,"value":4417}," vs ",{"type":46,"tag":72,"props":4419,"children":4421},{"className":4420},[],[4422],{"type":51,"value":4423},"backend-only",{"type":51,"value":480},{"type":46,"tag":99,"props":4426,"children":4427},{},[4428,4433],{"type":46,"tag":81,"props":4429,"children":4430},{},[4431],{"type":51,"value":4432},"Correct workflow",{"type":51,"value":4434}," - Different templates require different setup steps",{"type":46,"tag":99,"props":4436,"children":4437},{},[4438,4443],{"type":46,"tag":81,"props":4439,"children":4440},{},[4441],{"type":51,"value":4442},"Common pitfalls",{"type":51,"value":4444}," - Avoid folder creation errors that cause failures",{"type":46,"tag":54,"props":4446,"children":4447},{},[4448],{"type":51,"value":4449},"Failure to follow the create.md instructions will result in broken project scaffolding.",{"type":46,"tag":1386,"props":4451,"children":4453},{"id":4452},"linking-an-existing-project",[4454],{"type":51,"value":4455},"Linking an Existing Project",{"type":46,"tag":270,"props":4457,"children":4459},{"className":272,"code":4458,"language":274,"meta":275,"style":275},"# If you have base44\u002Fconfig.jsonc but no .app.jsonc\nnpx base44 link --create --name my-app\n",[4460],{"type":46,"tag":72,"props":4461,"children":4462},{"__ignoreMap":275},[4463,4472],{"type":46,"tag":281,"props":4464,"children":4465},{"class":283,"line":284},[4466],{"type":46,"tag":281,"props":4467,"children":4469},{"style":4468},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[4470],{"type":51,"value":4471},"# If you have base44\u002Fconfig.jsonc but no .app.jsonc\n",{"type":46,"tag":281,"props":4473,"children":4474},{"class":283,"line":793},[4475,4479,4483,4488,4493,4498],{"type":46,"tag":281,"props":4476,"children":4477},{"style":288},[4478],{"type":51,"value":291},{"type":46,"tag":281,"props":4480,"children":4481},{"style":294},[4482],{"type":51,"value":297},{"type":46,"tag":281,"props":4484,"children":4485},{"style":294},[4486],{"type":51,"value":4487}," link",{"type":46,"tag":281,"props":4489,"children":4490},{"style":294},[4491],{"type":51,"value":4492}," --create",{"type":46,"tag":281,"props":4494,"children":4495},{"style":294},[4496],{"type":51,"value":4497}," --name",{"type":46,"tag":281,"props":4499,"children":4500},{"style":294},[4501],{"type":51,"value":4502}," my-app\n",{"type":46,"tag":1386,"props":4504,"children":4506},{"id":4505},"deploying-all-changes",[4507],{"type":51,"value":4508},"Deploying All Changes",{"type":46,"tag":270,"props":4510,"children":4512},{"className":272,"code":4511,"language":274,"meta":275,"style":275},"# Generate types (optional, for TypeScript projects)\nnpx base44 types generate\n\n# Build your project first\nnpm run build\n\n# Deploy everything (entities, functions, and site)\nnpx base44 deploy -y\n",[4513],{"type":46,"tag":72,"props":4514,"children":4515},{"__ignoreMap":275},[4516,4524,4545,4554,4562,4577,4584,4592],{"type":46,"tag":281,"props":4517,"children":4518},{"class":283,"line":284},[4519],{"type":46,"tag":281,"props":4520,"children":4521},{"style":4468},[4522],{"type":51,"value":4523},"# Generate types (optional, for TypeScript projects)\n",{"type":46,"tag":281,"props":4525,"children":4526},{"class":283,"line":793},[4527,4531,4535,4540],{"type":46,"tag":281,"props":4528,"children":4529},{"style":288},[4530],{"type":51,"value":291},{"type":46,"tag":281,"props":4532,"children":4533},{"style":294},[4534],{"type":51,"value":297},{"type":46,"tag":281,"props":4536,"children":4537},{"style":294},[4538],{"type":51,"value":4539}," types",{"type":46,"tag":281,"props":4541,"children":4542},{"style":294},[4543],{"type":51,"value":4544}," generate\n",{"type":46,"tag":281,"props":4546,"children":4547},{"class":283,"line":807},[4548],{"type":46,"tag":281,"props":4549,"children":4551},{"emptyLinePlaceholder":4550},true,[4552],{"type":51,"value":4553},"\n",{"type":46,"tag":281,"props":4555,"children":4556},{"class":283,"line":821},[4557],{"type":46,"tag":281,"props":4558,"children":4559},{"style":4468},[4560],{"type":51,"value":4561},"# Build your project first\n",{"type":46,"tag":281,"props":4563,"children":4564},{"class":283,"line":835},[4565,4569,4573],{"type":46,"tag":281,"props":4566,"children":4567},{"style":288},[4568],{"type":51,"value":1260},{"type":46,"tag":281,"props":4570,"children":4571},{"style":294},[4572],{"type":51,"value":4208},{"type":46,"tag":281,"props":4574,"children":4575},{"style":294},[4576],{"type":51,"value":4213},{"type":46,"tag":281,"props":4578,"children":4579},{"class":283,"line":849},[4580],{"type":46,"tag":281,"props":4581,"children":4582},{"emptyLinePlaceholder":4550},[4583],{"type":51,"value":4553},{"type":46,"tag":281,"props":4585,"children":4586},{"class":283,"line":863},[4587],{"type":46,"tag":281,"props":4588,"children":4589},{"style":4468},[4590],{"type":51,"value":4591},"# Deploy everything (entities, functions, and site)\n",{"type":46,"tag":281,"props":4593,"children":4594},{"class":283,"line":877},[4595,4599,4603,4607],{"type":46,"tag":281,"props":4596,"children":4597},{"style":288},[4598],{"type":51,"value":291},{"type":46,"tag":281,"props":4600,"children":4601},{"style":294},[4602],{"type":51,"value":297},{"type":46,"tag":281,"props":4604,"children":4605},{"style":294},[4606],{"type":51,"value":4229},{"type":46,"tag":281,"props":4608,"children":4609},{"style":294},[4610],{"type":51,"value":4234},{"type":46,"tag":1386,"props":4612,"children":4614},{"id":4613},"generating-typescript-types",[4615],{"type":51,"value":4616},"Generating TypeScript Types",{"type":46,"tag":270,"props":4618,"children":4620},{"className":272,"code":4619,"language":274,"meta":275,"style":275},"# Generate types from entities, functions, agents, and connectors\nnpx base44 types generate\n",[4621],{"type":46,"tag":72,"props":4622,"children":4623},{"__ignoreMap":275},[4624,4632],{"type":46,"tag":281,"props":4625,"children":4626},{"class":283,"line":284},[4627],{"type":46,"tag":281,"props":4628,"children":4629},{"style":4468},[4630],{"type":51,"value":4631},"# Generate types from entities, functions, agents, and connectors\n",{"type":46,"tag":281,"props":4633,"children":4634},{"class":283,"line":793},[4635,4639,4643,4647],{"type":46,"tag":281,"props":4636,"children":4637},{"style":288},[4638],{"type":51,"value":291},{"type":46,"tag":281,"props":4640,"children":4641},{"style":294},[4642],{"type":51,"value":297},{"type":46,"tag":281,"props":4644,"children":4645},{"style":294},[4646],{"type":51,"value":4539},{"type":46,"tag":281,"props":4648,"children":4649},{"style":294},[4650],{"type":51,"value":4544},{"type":46,"tag":54,"props":4652,"children":4653},{},[4654,4656,4661,4663,4668],{"type":51,"value":4655},"This creates ",{"type":46,"tag":72,"props":4657,"children":4659},{"className":4658},[],[4660],{"type":51,"value":734},{"type":51,"value":4662}," with typed registries for the ",{"type":46,"tag":72,"props":4664,"children":4666},{"className":4665},[],[4667],{"type":51,"value":3912},{"type":51,"value":4669}," module. Run this after changing entities, functions, agents, or connectors to keep your types in sync. No authentication required.",{"type":46,"tag":1386,"props":4671,"children":4673},{"id":4672},"deploying-individual-resources",[4674],{"type":51,"value":4675},"Deploying Individual Resources",{"type":46,"tag":270,"props":4677,"children":4679},{"className":272,"code":4678,"language":274,"meta":275,"style":275},"# Push only entities\nnpx base44 entities push\n\n# Deploy only functions (all)\nnpx base44 functions deploy\n# Deploy specific functions\nnpx base44 functions deploy my-function other-function\n# Deploy and prune removed functions\nnpx base44 functions deploy --force\n\n# Push only agents\nnpx base44 agents push\n\n# Pull connectors from Base44\nnpx base44 connectors pull\n\n# Push only connectors\nnpx base44 connectors push\n\n# Deploy only site\nnpx base44 site deploy -y\n",[4680],{"type":46,"tag":72,"props":4681,"children":4682},{"__ignoreMap":275},[4683,4691,4712,4719,4727,4748,4756,4785,4793,4817,4824,4832,4852,4859,4867,4889,4897,4906,4926,4934,4943],{"type":46,"tag":281,"props":4684,"children":4685},{"class":283,"line":284},[4686],{"type":46,"tag":281,"props":4687,"children":4688},{"style":4468},[4689],{"type":51,"value":4690},"# Push only entities\n",{"type":46,"tag":281,"props":4692,"children":4693},{"class":283,"line":793},[4694,4698,4702,4707],{"type":46,"tag":281,"props":4695,"children":4696},{"style":288},[4697],{"type":51,"value":291},{"type":46,"tag":281,"props":4699,"children":4700},{"style":294},[4701],{"type":51,"value":297},{"type":46,"tag":281,"props":4703,"children":4704},{"style":294},[4705],{"type":51,"value":4706}," entities",{"type":46,"tag":281,"props":4708,"children":4709},{"style":294},[4710],{"type":51,"value":4711}," push\n",{"type":46,"tag":281,"props":4713,"children":4714},{"class":283,"line":807},[4715],{"type":46,"tag":281,"props":4716,"children":4717},{"emptyLinePlaceholder":4550},[4718],{"type":51,"value":4553},{"type":46,"tag":281,"props":4720,"children":4721},{"class":283,"line":821},[4722],{"type":46,"tag":281,"props":4723,"children":4724},{"style":4468},[4725],{"type":51,"value":4726},"# Deploy only functions (all)\n",{"type":46,"tag":281,"props":4728,"children":4729},{"class":283,"line":835},[4730,4734,4738,4743],{"type":46,"tag":281,"props":4731,"children":4732},{"style":288},[4733],{"type":51,"value":291},{"type":46,"tag":281,"props":4735,"children":4736},{"style":294},[4737],{"type":51,"value":297},{"type":46,"tag":281,"props":4739,"children":4740},{"style":294},[4741],{"type":51,"value":4742}," functions",{"type":46,"tag":281,"props":4744,"children":4745},{"style":294},[4746],{"type":51,"value":4747}," deploy\n",{"type":46,"tag":281,"props":4749,"children":4750},{"class":283,"line":849},[4751],{"type":46,"tag":281,"props":4752,"children":4753},{"style":4468},[4754],{"type":51,"value":4755},"# Deploy specific functions\n",{"type":46,"tag":281,"props":4757,"children":4758},{"class":283,"line":863},[4759,4763,4767,4771,4775,4780],{"type":46,"tag":281,"props":4760,"children":4761},{"style":288},[4762],{"type":51,"value":291},{"type":46,"tag":281,"props":4764,"children":4765},{"style":294},[4766],{"type":51,"value":297},{"type":46,"tag":281,"props":4768,"children":4769},{"style":294},[4770],{"type":51,"value":4742},{"type":46,"tag":281,"props":4772,"children":4773},{"style":294},[4774],{"type":51,"value":4229},{"type":46,"tag":281,"props":4776,"children":4777},{"style":294},[4778],{"type":51,"value":4779}," my-function",{"type":46,"tag":281,"props":4781,"children":4782},{"style":294},[4783],{"type":51,"value":4784}," other-function\n",{"type":46,"tag":281,"props":4786,"children":4787},{"class":283,"line":877},[4788],{"type":46,"tag":281,"props":4789,"children":4790},{"style":4468},[4791],{"type":51,"value":4792},"# Deploy and prune removed functions\n",{"type":46,"tag":281,"props":4794,"children":4795},{"class":283,"line":891},[4796,4800,4804,4808,4812],{"type":46,"tag":281,"props":4797,"children":4798},{"style":288},[4799],{"type":51,"value":291},{"type":46,"tag":281,"props":4801,"children":4802},{"style":294},[4803],{"type":51,"value":297},{"type":46,"tag":281,"props":4805,"children":4806},{"style":294},[4807],{"type":51,"value":4742},{"type":46,"tag":281,"props":4809,"children":4810},{"style":294},[4811],{"type":51,"value":4229},{"type":46,"tag":281,"props":4813,"children":4814},{"style":294},[4815],{"type":51,"value":4816}," --force\n",{"type":46,"tag":281,"props":4818,"children":4819},{"class":283,"line":905},[4820],{"type":46,"tag":281,"props":4821,"children":4822},{"emptyLinePlaceholder":4550},[4823],{"type":51,"value":4553},{"type":46,"tag":281,"props":4825,"children":4826},{"class":283,"line":919},[4827],{"type":46,"tag":281,"props":4828,"children":4829},{"style":4468},[4830],{"type":51,"value":4831},"# Push only agents\n",{"type":46,"tag":281,"props":4833,"children":4834},{"class":283,"line":933},[4835,4839,4843,4848],{"type":46,"tag":281,"props":4836,"children":4837},{"style":288},[4838],{"type":51,"value":291},{"type":46,"tag":281,"props":4840,"children":4841},{"style":294},[4842],{"type":51,"value":297},{"type":46,"tag":281,"props":4844,"children":4845},{"style":294},[4846],{"type":51,"value":4847}," agents",{"type":46,"tag":281,"props":4849,"children":4850},{"style":294},[4851],{"type":51,"value":4711},{"type":46,"tag":281,"props":4853,"children":4854},{"class":283,"line":947},[4855],{"type":46,"tag":281,"props":4856,"children":4857},{"emptyLinePlaceholder":4550},[4858],{"type":51,"value":4553},{"type":46,"tag":281,"props":4860,"children":4861},{"class":283,"line":956},[4862],{"type":46,"tag":281,"props":4863,"children":4864},{"style":4468},[4865],{"type":51,"value":4866},"# Pull connectors from Base44\n",{"type":46,"tag":281,"props":4868,"children":4870},{"class":283,"line":4869},15,[4871,4875,4879,4884],{"type":46,"tag":281,"props":4872,"children":4873},{"style":288},[4874],{"type":51,"value":291},{"type":46,"tag":281,"props":4876,"children":4877},{"style":294},[4878],{"type":51,"value":297},{"type":46,"tag":281,"props":4880,"children":4881},{"style":294},[4882],{"type":51,"value":4883}," connectors",{"type":46,"tag":281,"props":4885,"children":4886},{"style":294},[4887],{"type":51,"value":4888}," pull\n",{"type":46,"tag":281,"props":4890,"children":4892},{"class":283,"line":4891},16,[4893],{"type":46,"tag":281,"props":4894,"children":4895},{"emptyLinePlaceholder":4550},[4896],{"type":51,"value":4553},{"type":46,"tag":281,"props":4898,"children":4900},{"class":283,"line":4899},17,[4901],{"type":46,"tag":281,"props":4902,"children":4903},{"style":4468},[4904],{"type":51,"value":4905},"# Push only connectors\n",{"type":46,"tag":281,"props":4907,"children":4909},{"class":283,"line":4908},18,[4910,4914,4918,4922],{"type":46,"tag":281,"props":4911,"children":4912},{"style":288},[4913],{"type":51,"value":291},{"type":46,"tag":281,"props":4915,"children":4916},{"style":294},[4917],{"type":51,"value":297},{"type":46,"tag":281,"props":4919,"children":4920},{"style":294},[4921],{"type":51,"value":4883},{"type":46,"tag":281,"props":4923,"children":4924},{"style":294},[4925],{"type":51,"value":4711},{"type":46,"tag":281,"props":4927,"children":4929},{"class":283,"line":4928},19,[4930],{"type":46,"tag":281,"props":4931,"children":4932},{"emptyLinePlaceholder":4550},[4933],{"type":51,"value":4553},{"type":46,"tag":281,"props":4935,"children":4937},{"class":283,"line":4936},20,[4938],{"type":46,"tag":281,"props":4939,"children":4940},{"style":4468},[4941],{"type":51,"value":4942},"# Deploy only site\n",{"type":46,"tag":281,"props":4944,"children":4946},{"class":283,"line":4945},21,[4947,4951,4955,4960,4964],{"type":46,"tag":281,"props":4948,"children":4949},{"style":288},[4950],{"type":51,"value":291},{"type":46,"tag":281,"props":4952,"children":4953},{"style":294},[4954],{"type":51,"value":297},{"type":46,"tag":281,"props":4956,"children":4957},{"style":294},[4958],{"type":51,"value":4959}," site",{"type":46,"tag":281,"props":4961,"children":4962},{"style":294},[4963],{"type":51,"value":4229},{"type":46,"tag":281,"props":4965,"children":4966},{"style":294},[4967],{"type":51,"value":4234},{"type":46,"tag":1386,"props":4969,"children":4971},{"id":4970},"opening-the-dashboard",[4972],{"type":51,"value":4973},"Opening the Dashboard",{"type":46,"tag":270,"props":4975,"children":4977},{"className":272,"code":4976,"language":274,"meta":275,"style":275},"# Open app dashboard in browser\nnpx base44 dashboard\n",[4978],{"type":46,"tag":72,"props":4979,"children":4980},{"__ignoreMap":275},[4981,4989],{"type":46,"tag":281,"props":4982,"children":4983},{"class":283,"line":284},[4984],{"type":46,"tag":281,"props":4985,"children":4986},{"style":4468},[4987],{"type":51,"value":4988},"# Open app dashboard in browser\n",{"type":46,"tag":281,"props":4990,"children":4991},{"class":283,"line":793},[4992,4996,5000],{"type":46,"tag":281,"props":4993,"children":4994},{"style":288},[4995],{"type":51,"value":291},{"type":46,"tag":281,"props":4997,"children":4998},{"style":294},[4999],{"type":51,"value":297},{"type":46,"tag":281,"props":5001,"children":5002},{"style":294},[5003],{"type":51,"value":5004}," dashboard\n",{"type":46,"tag":60,"props":5006,"children":5008},{"id":5007},"authentication-1",[5009],{"type":51,"value":1391},{"type":46,"tag":54,"props":5011,"children":5012},{},[5013],{"type":51,"value":5014},"Most commands require authentication. If you're not logged in, the CLI will automatically prompt you to login. Your session is stored locally and persists across CLI sessions.",{"type":46,"tag":60,"props":5016,"children":5018},{"id":5017},"troubleshooting",[5019],{"type":51,"value":5020},"Troubleshooting",{"type":46,"tag":972,"props":5022,"children":5023},{},[5024,5040],{"type":46,"tag":976,"props":5025,"children":5026},{},[5027],{"type":46,"tag":980,"props":5028,"children":5029},{},[5030,5035],{"type":46,"tag":984,"props":5031,"children":5032},{},[5033],{"type":51,"value":5034},"Error",{"type":46,"tag":984,"props":5036,"children":5037},{},[5038],{"type":51,"value":5039},"Solution",{"type":46,"tag":1000,"props":5041,"children":5042},{},[5043,5062,5083,5110,5138,5166,5179,5205,5224,5237,5257,5277,5298],{"type":46,"tag":980,"props":5044,"children":5045},{},[5046,5051],{"type":46,"tag":1007,"props":5047,"children":5048},{},[5049],{"type":51,"value":5050},"Not authenticated",{"type":46,"tag":1007,"props":5052,"children":5053},{},[5054,5056,5061],{"type":51,"value":5055},"Run ",{"type":46,"tag":72,"props":5057,"children":5059},{"className":5058},[],[5060],{"type":51,"value":239},{"type":51,"value":576},{"type":46,"tag":980,"props":5063,"children":5064},{},[5065,5070],{"type":46,"tag":1007,"props":5066,"children":5067},{},[5068],{"type":51,"value":5069},"No entities found",{"type":46,"tag":1007,"props":5071,"children":5072},{},[5073,5075,5081],{"type":51,"value":5074},"Ensure entities exist in ",{"type":46,"tag":72,"props":5076,"children":5078},{"className":5077},[],[5079],{"type":51,"value":5080},"base44\u002Fentities\u002F",{"type":51,"value":5082}," directory",{"type":46,"tag":980,"props":5084,"children":5085},{},[5086,5091],{"type":46,"tag":1007,"props":5087,"children":5088},{},[5089],{"type":51,"value":5090},"Entity not recognized",{"type":46,"tag":1007,"props":5092,"children":5093},{},[5094,5096,5101,5103,5109],{"type":51,"value":5095},"Ensure file uses kebab-case naming (e.g., ",{"type":46,"tag":72,"props":5097,"children":5099},{"className":5098},[],[5100],{"type":51,"value":1841},{"type":51,"value":5102}," not ",{"type":46,"tag":72,"props":5104,"children":5106},{"className":5105},[],[5107],{"type":51,"value":5108},"TeamMember.jsonc",{"type":51,"value":480},{"type":46,"tag":980,"props":5111,"children":5112},{},[5113,5118],{"type":46,"tag":1007,"props":5114,"children":5115},{},[5116],{"type":51,"value":5117},"No functions found",{"type":46,"tag":1007,"props":5119,"children":5120},{},[5121,5123,5129,5131,5136],{"type":51,"value":5122},"Ensure functions exist in ",{"type":46,"tag":72,"props":5124,"children":5126},{"className":5125},[],[5127],{"type":51,"value":5128},"base44\u002Ffunctions\u002F",{"type":51,"value":5130}," with valid ",{"type":46,"tag":72,"props":5132,"children":5134},{"className":5133},[],[5135],{"type":51,"value":2221},{"type":51,"value":5137}," configs",{"type":46,"tag":980,"props":5139,"children":5140},{},[5141,5146],{"type":46,"tag":1007,"props":5142,"children":5143},{},[5144],{"type":51,"value":5145},"No agents found",{"type":46,"tag":1007,"props":5147,"children":5148},{},[5149,5151,5157,5159,5165],{"type":51,"value":5150},"Ensure agents exist in ",{"type":46,"tag":72,"props":5152,"children":5154},{"className":5153},[],[5155],{"type":51,"value":5156},"base44\u002Fagents\u002F",{"type":51,"value":5158}," directory with valid ",{"type":46,"tag":72,"props":5160,"children":5162},{"className":5161},[],[5163],{"type":51,"value":5164},".jsonc",{"type":51,"value":5137},{"type":46,"tag":980,"props":5167,"children":5168},{},[5169,5174],{"type":46,"tag":1007,"props":5170,"children":5171},{},[5172],{"type":51,"value":5173},"Invalid agent name",{"type":46,"tag":1007,"props":5175,"children":5176},{},[5177],{"type":51,"value":5178},"Agent names must be lowercase alphanumeric with underscores only",{"type":46,"tag":980,"props":5180,"children":5181},{},[5182,5187],{"type":46,"tag":1007,"props":5183,"children":5184},{},[5185],{"type":51,"value":5186},"No connectors found",{"type":46,"tag":1007,"props":5188,"children":5189},{},[5190,5192,5198,5199,5204],{"type":51,"value":5191},"Ensure connectors exist in ",{"type":46,"tag":72,"props":5193,"children":5195},{"className":5194},[],[5196],{"type":51,"value":5197},"base44\u002Fconnectors\u002F",{"type":51,"value":5158},{"type":46,"tag":72,"props":5200,"children":5202},{"className":5201},[],[5203],{"type":51,"value":5164},{"type":51,"value":5137},{"type":46,"tag":980,"props":5206,"children":5207},{},[5208,5213],{"type":46,"tag":1007,"props":5209,"children":5210},{},[5211],{"type":51,"value":5212},"Invalid connector type",{"type":46,"tag":1007,"props":5214,"children":5215},{},[5216,5217,5222],{"type":51,"value":5055},{"type":46,"tag":72,"props":5218,"children":5220},{"className":5219},[],[5221],{"type":51,"value":3094},{"type":51,"value":5223}," to see valid types",{"type":46,"tag":980,"props":5225,"children":5226},{},[5227,5232],{"type":46,"tag":1007,"props":5228,"children":5229},{},[5230],{"type":51,"value":5231},"Duplicate connector type",{"type":46,"tag":1007,"props":5233,"children":5234},{},[5235],{"type":51,"value":5236},"Each connector type can only be defined once per project",{"type":46,"tag":980,"props":5238,"children":5239},{},[5240,5245],{"type":46,"tag":1007,"props":5241,"children":5242},{},[5243],{"type":51,"value":5244},"Connector authorization timeout",{"type":46,"tag":1007,"props":5246,"children":5247},{},[5248,5250,5255],{"type":51,"value":5249},"Re-run ",{"type":46,"tag":72,"props":5251,"children":5253},{"className":5252},[],[5254],{"type":51,"value":4328},{"type":51,"value":5256}," and complete the OAuth flow in your browser",{"type":46,"tag":980,"props":5258,"children":5259},{},[5260,5265],{"type":46,"tag":1007,"props":5261,"children":5262},{},[5263],{"type":51,"value":5264},"No site configuration found",{"type":46,"tag":1007,"props":5266,"children":5267},{},[5268,5270,5275],{"type":51,"value":5269},"Check that ",{"type":46,"tag":72,"props":5271,"children":5273},{"className":5272},[],[5274],{"type":51,"value":1225},{"type":51,"value":5276}," is configured in project config",{"type":46,"tag":980,"props":5278,"children":5279},{},[5280,5285],{"type":46,"tag":1007,"props":5281,"children":5282},{},[5283],{"type":51,"value":5284},"Site deployment fails",{"type":46,"tag":1007,"props":5286,"children":5287},{},[5288,5290,5296],{"type":51,"value":5289},"Ensure you ran ",{"type":46,"tag":72,"props":5291,"children":5293},{"className":5292},[],[5294],{"type":51,"value":5295},"npm run build",{"type":51,"value":5297}," first and the build succeeded",{"type":46,"tag":980,"props":5299,"children":5300},{},[5301,5306],{"type":46,"tag":1007,"props":5302,"children":5303},{},[5304],{"type":51,"value":5305},"Update available message",{"type":46,"tag":1007,"props":5307,"children":5308},{},[5309,5311,5317],{"type":51,"value":5310},"If prompted to update, run ",{"type":46,"tag":72,"props":5312,"children":5314},{"className":5313},[],[5315],{"type":51,"value":5316},"npm install -g base44@latest",{"type":51,"value":5318}," (or use npx for local installs)",{"type":46,"tag":5320,"props":5321,"children":5322},"style",{},[5323],{"type":51,"value":5324},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":5326,"total":5525},[5327,5348,5371,5388,5402,5419,5436,5452,5468,5482,5494,5509],{"slug":5328,"name":5328,"fn":5329,"description":5330,"org":5331,"tags":5332,"stars":5345,"repoUrl":5346,"updatedAt":5347},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5333,5336,5339,5342],{"name":5334,"slug":5335,"type":15},"Documents","documents",{"name":5337,"slug":5338,"type":15},"Healthcare","healthcare",{"name":5340,"slug":5341,"type":15},"Insurance","insurance",{"name":5343,"slug":5344,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":5349,"name":5349,"fn":5350,"description":5351,"org":5352,"tags":5353,"stars":5368,"repoUrl":5369,"updatedAt":5370},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5354,5357,5359,5362,5365],{"name":5355,"slug":5356,"type":15},".NET","dotnet",{"name":5358,"slug":5349,"type":15},"ASP.NET Core",{"name":5360,"slug":5361,"type":15},"Blazor","blazor",{"name":5363,"slug":5364,"type":15},"C#","csharp",{"name":5366,"slug":5367,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":5372,"name":5372,"fn":5373,"description":5374,"org":5375,"tags":5376,"stars":5368,"repoUrl":5369,"updatedAt":5387},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5377,5380,5383,5386],{"name":5378,"slug":5379,"type":15},"Apps SDK","apps-sdk",{"name":5381,"slug":5382,"type":15},"ChatGPT","chatgpt",{"name":5384,"slug":5385,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":5389,"name":5389,"fn":5390,"description":5391,"org":5392,"tags":5393,"stars":5368,"repoUrl":5369,"updatedAt":5401},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5394,5397,5398],{"name":5395,"slug":5396,"type":15},"API Development","api-development",{"name":17,"slug":18,"type":15},{"name":5399,"slug":5400,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":5403,"name":5403,"fn":5404,"description":5405,"org":5406,"tags":5407,"stars":5368,"repoUrl":5369,"updatedAt":5418},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5408,5411,5414,5417],{"name":5409,"slug":5410,"type":15},"Cloudflare","cloudflare",{"name":5412,"slug":5413,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":5415,"slug":5416,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":20,"slug":21,"type":15},"2026-04-12T05:07:14.275118",{"slug":5420,"name":5420,"fn":5421,"description":5422,"org":5423,"tags":5424,"stars":5368,"repoUrl":5369,"updatedAt":5435},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5425,5428,5429,5432],{"name":5426,"slug":5427,"type":15},"Productivity","productivity",{"name":1501,"slug":1498,"type":15},{"name":5430,"slug":5431,"type":15},"Strategy","strategy",{"name":5433,"slug":5434,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":5437,"name":5437,"fn":5438,"description":5439,"org":5440,"tags":5441,"stars":5368,"repoUrl":5369,"updatedAt":5451},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5442,5445,5447,5450],{"name":5443,"slug":5444,"type":15},"Design","design",{"name":5446,"slug":5437,"type":15},"Figma",{"name":5448,"slug":5449,"type":15},"Frontend","frontend",{"name":5384,"slug":5385,"type":15},"2026-04-12T05:06:47.939943",{"slug":5453,"name":5453,"fn":5454,"description":5455,"org":5456,"tags":5457,"stars":5368,"repoUrl":5369,"updatedAt":5467},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5458,5459,5462,5463,5464],{"name":5443,"slug":5444,"type":15},{"name":5460,"slug":5461,"type":15},"Design System","design-system",{"name":5446,"slug":5437,"type":15},{"name":5448,"slug":5449,"type":15},{"name":5465,"slug":5466,"type":15},"UI Components","ui-components","2026-05-10T05:59:52.971881",{"slug":5469,"name":5469,"fn":5470,"description":5471,"org":5472,"tags":5473,"stars":5368,"repoUrl":5369,"updatedAt":5481},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5474,5475,5476,5479,5480],{"name":5443,"slug":5444,"type":15},{"name":5460,"slug":5461,"type":15},{"name":5477,"slug":5478,"type":15},"Documentation","documentation",{"name":5446,"slug":5437,"type":15},{"name":5448,"slug":5449,"type":15},"2026-05-16T06:07:47.821474",{"slug":5483,"name":5483,"fn":5484,"description":5485,"org":5486,"tags":5487,"stars":5368,"repoUrl":5369,"updatedAt":5493},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5488,5489,5490,5491,5492],{"name":5443,"slug":5444,"type":15},{"name":5446,"slug":5437,"type":15},{"name":5448,"slug":5449,"type":15},{"name":5465,"slug":5466,"type":15},{"name":5366,"slug":5367,"type":15},"2026-05-16T06:07:40.583615",{"slug":5495,"name":5495,"fn":5496,"description":5497,"org":5498,"tags":5499,"stars":5368,"repoUrl":5369,"updatedAt":5508},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5500,5503,5504,5507],{"name":5501,"slug":5502,"type":15},"Animation","animation",{"name":5399,"slug":5400,"type":15},{"name":5505,"slug":5506,"type":15},"Creative","creative",{"name":5443,"slug":5444,"type":15},"2026-05-02T05:31:48.48485",{"slug":5510,"name":5510,"fn":5511,"description":5512,"org":5513,"tags":5514,"stars":5368,"repoUrl":5369,"updatedAt":5524},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5515,5516,5517,5520,5523],{"name":5505,"slug":5506,"type":15},{"name":5443,"slug":5444,"type":15},{"name":5518,"slug":5519,"type":15},"Image Generation","image-generation",{"name":5521,"slug":5522,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675,{"items":5527,"total":5640},[5528,5544,5560,5572,5590,5608,5628],{"slug":5529,"name":5529,"fn":5530,"description":5531,"org":5532,"tags":5533,"stars":25,"repoUrl":26,"updatedAt":27},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5534,5537,5540,5543],{"name":5535,"slug":5536,"type":15},"Accessibility","accessibility",{"name":5538,"slug":5539,"type":15},"Charts","charts",{"name":5541,"slug":5542,"type":15},"Data Visualization","data-visualization",{"name":5443,"slug":5444,"type":15},{"slug":5545,"name":5545,"fn":5546,"description":5547,"org":5548,"tags":5549,"stars":25,"repoUrl":26,"updatedAt":5559},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5550,5553,5556],{"name":5551,"slug":5552,"type":15},"Agents","agents",{"name":5554,"slug":5555,"type":15},"Browser Automation","browser-automation",{"name":5557,"slug":5558,"type":15},"Testing","testing","2026-04-06T18:41:03.44016",{"slug":5561,"name":5561,"fn":5562,"description":5563,"org":5564,"tags":5565,"stars":25,"repoUrl":26,"updatedAt":5571},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5566,5567,5570],{"name":5554,"slug":5555,"type":15},{"name":5568,"slug":5569,"type":15},"Local Development","local-development",{"name":5557,"slug":5558,"type":15},"2026-04-06T18:41:17.526867",{"slug":5573,"name":5573,"fn":5574,"description":5575,"org":5576,"tags":5577,"stars":25,"repoUrl":26,"updatedAt":5589},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5578,5579,5580,5583,5586],{"name":5551,"slug":5552,"type":15},{"name":5415,"slug":5416,"type":15},{"name":5581,"slug":5582,"type":15},"SDK","sdk",{"name":5584,"slug":5585,"type":15},"Serverless","serverless",{"name":5587,"slug":5588,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":5591,"name":5591,"fn":5592,"description":5593,"org":5594,"tags":5595,"stars":25,"repoUrl":26,"updatedAt":5607},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5596,5597,5600,5603,5604],{"name":5448,"slug":5449,"type":15},{"name":5598,"slug":5599,"type":15},"React","react",{"name":5601,"slug":5602,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":5465,"slug":5466,"type":15},{"name":5605,"slug":5606,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":5609,"name":5609,"fn":5610,"description":5611,"org":5612,"tags":5613,"stars":25,"repoUrl":26,"updatedAt":5627},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5614,5617,5620,5623,5626],{"name":5615,"slug":5616,"type":15},"AI Infrastructure","ai-infrastructure",{"name":5618,"slug":5619,"type":15},"Cost Optimization","cost-optimization",{"name":5621,"slug":5622,"type":15},"LLM","llm",{"name":5624,"slug":5625,"type":15},"Performance","performance",{"name":5605,"slug":5606,"type":15},"2026-04-06T18:40:44.377464",{"slug":5629,"name":5629,"fn":5630,"description":5631,"org":5632,"tags":5633,"stars":25,"repoUrl":26,"updatedAt":5639},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5634,5635,5638],{"name":5618,"slug":5619,"type":15},{"name":5636,"slug":5637,"type":15},"Database","database",{"name":5621,"slug":5622,"type":15},"2026-04-06T18:41:08.513425",600]