@agentuity/skills 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,214 @@
1
+ ---
2
+ name: agentuity-cloud
3
+ description: >-
4
+ Use when managing Agentuity Cloud from the terminal. Covers deployments,
5
+ deployment logs, environment variables and secrets, regions, project resource
6
+ linking, cloud resource commands, SSH, SCP, monitoring snapshots, and
7
+ agent-friendly CLI workarounds.
8
+ license: Apache-2.0
9
+ metadata:
10
+ author: agentuity
11
+ version: "1.0.0"
12
+ ---
13
+
14
+ # Agentuity Cloud Operations
15
+
16
+ Use this skill when operating Agentuity from the CLI: deployments, logs,
17
+ environment values, resources, SSH access, and live debugging. Use
18
+ `agentuity-services` or `agentuity-database` for app-code client usage.
19
+
20
+ ## Deployment Lifecycle
21
+
22
+ Deploy from a linked project:
23
+
24
+ ```bash
25
+ agentuity deploy
26
+ ```
27
+
28
+ List recent deployments:
29
+
30
+ ```bash
31
+ agentuity cloud deployment list
32
+ agentuity cloud deployment list --count=25
33
+ agentuity cloud deployment list --project-id=proj_abc123xyz
34
+ ```
35
+
36
+ Show one deployment:
37
+
38
+ ```bash
39
+ agentuity cloud deployment show deploy_abc123xyz
40
+ agentuity cloud deployment show deploy_abc123xyz --project-id=proj_abc123xyz
41
+ ```
42
+
43
+ View deployment logs:
44
+
45
+ ```bash
46
+ agentuity cloud deployment logs deploy_abc123xyz
47
+ agentuity cloud deployment logs deploy_abc123xyz --limit=50
48
+ agentuity cloud deployment logs deploy_abc123xyz --no-timestamps
49
+ agentuity cloud deployment logs deploy_abc123xyz --project-id=proj_abc123xyz
50
+ ```
51
+
52
+ Deployment logs are currently a snapshot command, not a follow stream. If an
53
+ agent needs to wait for new log output, poll with a bounded loop and stop when
54
+ the deploy reaches a terminal state or enough evidence is collected.
55
+
56
+ Rollback, undeploy, and delete:
57
+
58
+ ```bash
59
+ agentuity cloud deployment rollback
60
+ agentuity cloud deployment undeploy --force
61
+ agentuity cloud deployment delete deploy_abc123xyz --force
62
+ ```
63
+
64
+ Use destructive commands carefully. Prefer explicit `--force` or `--confirm`
65
+ flags in automation when a command supports them.
66
+
67
+ ## Environment Variables and Secrets
68
+
69
+ List and inspect project values:
70
+
71
+ ```bash
72
+ agentuity cloud env list
73
+ agentuity cloud env get NODE_ENV
74
+ agentuity cloud env list --secrets
75
+ ```
76
+
77
+ Set values:
78
+
79
+ ```bash
80
+ agentuity cloud env set NODE_ENV production
81
+ agentuity cloud env set API_KEY "sk_live_..." --secret
82
+ ```
83
+
84
+ Sync `.env`:
85
+
86
+ ```bash
87
+ agentuity cloud env push
88
+ agentuity cloud env pull
89
+ agentuity cloud env pull --force
90
+ agentuity cloud env import .env.staging
91
+ ```
92
+
93
+ There is no separate secret namespace command. Secrets are managed through `agentuity cloud env` with `--secret`.
94
+
95
+ ## Regions and Project Context
96
+
97
+ Use explicit project and region options in non-interactive automation:
98
+
99
+ ```bash
100
+ agentuity cloud region list
101
+ agentuity cloud region current
102
+ agentuity cloud region select usc
103
+ agentuity project show --json
104
+ ```
105
+
106
+ Project resolution usually comes from `agentuity.json` in the app directory. In
107
+ monorepos, run commands from the app package or pass `--dir`.
108
+
109
+ ## Resource Management
110
+
111
+ Use cloud commands to create, inspect, and manage resources. Use `--json` when an agent needs to parse output.
112
+
113
+ | Resource | Commands to start with |
114
+ |---|---|
115
+ | Key-value | `agentuity cloud kv list-namespaces`, `get`, `set`, `keys`, `stats` |
116
+ | Vector | `agentuity cloud vector list`, `upsert`, `search`, `get`, `delete` |
117
+ | Object storage | `agentuity cloud storage create`, `list`, `upload`, `download` |
118
+ | Database | `agentuity cloud db create`, `list`, `get --show-credentials`, `logs` |
119
+ | Queues | `agentuity cloud queue create`, `publish`, `receive`, `destinations` |
120
+ | Sandboxes | `agentuity cloud sandbox create`, `exec`, `files`, `cp`, `snapshot` |
121
+ | Email | `agentuity cloud email create`, `send`, `list`, `stats` |
122
+ | Schedules | `agentuity cloud schedule create`, `list`, `get`, `delete` |
123
+ | Tasks | `agentuity cloud task list`, `get`, `create`, `update` |
124
+ | Webhooks | `agentuity cloud webhook create`, `list`, `get`, `delete` |
125
+ | Streams | `agentuity cloud stream create`, `list`, `get`, `delete` |
126
+ | AI Gateway | `agentuity cloud aigateway models --recommended`, `--ids`, `--provider` |
127
+
128
+ Link resources to the current project when app code needs local `.env` values:
129
+
130
+ ```bash
131
+ agentuity project add database app_data
132
+ agentuity project add storage my-bucket
133
+ ```
134
+
135
+ Check `agentuity project add --help` for the supported resource types in the installed CLI.
136
+
137
+ ## SSH and File Transfer
138
+
139
+ Add an SSH key first:
140
+
141
+ ```bash
142
+ agentuity auth ssh add --file ~/.ssh/id_rsa.pub
143
+ ```
144
+
145
+ Connect:
146
+
147
+ ```bash
148
+ agentuity cloud ssh
149
+ agentuity cloud ssh proj_abc123xyz
150
+ agentuity cloud ssh deploy_abc123xyz
151
+ agentuity cloud ssh 'ps aux'
152
+ agentuity cloud ssh --show
153
+ ```
154
+
155
+ Transfer files:
156
+
157
+ ```bash
158
+ agentuity cloud scp upload ./config.json /app/config.json
159
+ agentuity cloud scp download /var/log/app.log ./logs/
160
+ ```
161
+
162
+ SSH is for debugging. Do not treat manual container changes as deployable source-of-truth changes.
163
+
164
+ ## Monitoring and Debugging
165
+
166
+ Use snapshot output for automation:
167
+
168
+ ```bash
169
+ agentuity cloud monitor --json
170
+ agentuity cloud monitor --snapshot
171
+ agentuity cloud monitor --deployment deploy_abc123xyz --snapshot
172
+ ```
173
+
174
+ Inspect sessions when debugging request-specific behavior:
175
+
176
+ ```bash
177
+ agentuity cloud session list --count=25
178
+ agentuity cloud session list --success=false --count=25
179
+ agentuity cloud session get sess_abc123xyz
180
+ agentuity cloud session logs sess_abc123xyz --no-timestamps
181
+ ```
182
+
183
+ ## Agent-Friendly Workflow
184
+
185
+ For deploy-debug loops:
186
+
187
+ 1. Run `agentuity deploy --json` when machine-readable output is needed.
188
+ 2. Capture the deployment ID from output.
189
+ 3. Run `agentuity cloud deployment show <id> --json`.
190
+ 4. Inspect recent logs with `agentuity cloud deployment logs <id> --limit=100`.
191
+ 5. Use `agentuity cloud monitor --deployment <id> --snapshot` for machine health.
192
+ 6. Use SSH only after logs and structured status point to runtime-only evidence.
193
+
194
+ Known CLI gaps are tracked under the `agentic flow` GitHub label. Until
195
+ wait/follow/status primitives exist, use bounded polling and explicit timeouts
196
+ in automation.
197
+
198
+ ## Common Mistakes
199
+
200
+ | Mistake | Better approach |
201
+ |---|---|
202
+ | Guessing URLs after deploy | Read deploy output or `cloud deployment show` |
203
+ | Expecting deployment logs to follow live | Poll with a limit until follow support exists |
204
+ | Managing secrets with a separate command | Use `cloud env set --secret` |
205
+ | Running destructive commands without explicit confirmation flags | Use `--force` or `--confirm` when supported |
206
+ | Editing a debug container and calling it deployed | Commit the source change and redeploy |
207
+
208
+ ## Useful Docs
209
+
210
+ - Deployment: https://agentuity.dev/reference/cli/deployment
211
+ - Debugging: https://agentuity.dev/reference/cli/debugging
212
+ - Configuration: https://agentuity.dev/reference/cli/configuration
213
+ - Monitoring: https://agentuity.dev/reference/cli/monitoring
214
+ - Storage commands: https://agentuity.dev/reference/cli/storage
@@ -0,0 +1,229 @@
1
+ ---
2
+ name: agentuity-database
3
+ description: >-
4
+ Use when adding relational data to an Agentuity app. Covers creating or linking
5
+ managed Postgres, DATABASE_URL, pg, Drizzle ORM, pooling, transactions,
6
+ migrations, safe parameter binding, and the narrow admin-script role for
7
+ DBClient.
8
+ license: Apache-2.0
9
+ metadata:
10
+ author: agentuity
11
+ version: "1.0.0"
12
+ ---
13
+
14
+ # Agentuity Database
15
+
16
+ Use database resources when your app needs SQL, joins, constraints,
17
+ transactions, or relational user data. Agentuity-managed databases are Postgres
18
+ databases. App code should connect through `DATABASE_URL` with the Postgres
19
+ client or ORM your app owns.
20
+
21
+ ## Create or Link a Database
22
+
23
+ Create a database and link it to the current project:
24
+
25
+ ```bash
26
+ agentuity cloud db create --name app_data
27
+ agentuity project add database app_data
28
+ ```
29
+
30
+ Linking writes `DATABASE_URL` to `.env`. Recover the URL later with credentials shown only in a trusted shell:
31
+
32
+ ```bash
33
+ agentuity cloud db get app_data --show-credentials
34
+ ```
35
+
36
+ Use the `agentuity-cloud` skill for database CLI management and logs.
37
+
38
+ ## Choose a Client
39
+
40
+ | Need | Use |
41
+ |---|---|
42
+ | Direct SQL with parameter binding | `pg` |
43
+ | Schema-first TypeScript queries | `drizzle-orm/node-postgres` with `pg` |
44
+ | Existing Prisma, Kysely, or another Postgres client | Keep it and point it at `DATABASE_URL` |
45
+ | Trusted admin script by Agentuity database resource name | `DBClient` from `@agentuity/db` |
46
+
47
+ `DBClient` is not the app query layer. It calls the Agentuity database service
48
+ API by resource name and organization ID, which is useful for trusted scripts,
49
+ introspection, or query logs.
50
+
51
+ ## Use `pg`
52
+
53
+ ```bash
54
+ npm install pg
55
+ npm install -D @types/pg
56
+ ```
57
+
58
+ ```typescript
59
+ import { Pool } from 'pg';
60
+
61
+ const databaseUrl = process.env.DATABASE_URL;
62
+
63
+ if (!databaseUrl) {
64
+ throw new Error('DATABASE_URL is required');
65
+ }
66
+
67
+ export const pool = new Pool({
68
+ connectionString: databaseUrl,
69
+ max: 10,
70
+ idleTimeoutMillis: 30_000,
71
+ });
72
+
73
+ export async function findUserByEmail(email: string): Promise<{
74
+ readonly id: string;
75
+ readonly email: string;
76
+ } | null> {
77
+ const { rows } = await pool.query<{
78
+ readonly id: string;
79
+ readonly email: string;
80
+ }>('SELECT id, email FROM users WHERE email = $1 LIMIT 1', [email]);
81
+
82
+ return rows[0] ?? null;
83
+ }
84
+ ```
85
+
86
+ Use placeholders such as `$1` for every request value, form value, queue payload,
87
+ or model output. Do not concatenate untrusted values into SQL strings.
88
+
89
+ ## Use Drizzle
90
+
91
+ ```bash
92
+ npm install drizzle-orm pg
93
+ npm install -D drizzle-kit @types/pg
94
+ ```
95
+
96
+ ```typescript
97
+ import { drizzle } from 'drizzle-orm/node-postgres';
98
+ import { boolean, pgTable, serial, text } from 'drizzle-orm/pg-core';
99
+ import { Pool } from 'pg';
100
+
101
+ export const users = pgTable('users', {
102
+ id: serial('id').primaryKey(),
103
+ email: text('email').notNull().unique(),
104
+ active: boolean('active').notNull().default(true),
105
+ });
106
+
107
+ const databaseUrl = process.env.DATABASE_URL;
108
+
109
+ if (!databaseUrl) {
110
+ throw new Error('DATABASE_URL is required');
111
+ }
112
+
113
+ export const db = drizzle(new Pool({ connectionString: databaseUrl }), {
114
+ schema: { users },
115
+ });
116
+ ```
117
+
118
+ Route usage:
119
+
120
+ ```typescript
121
+ import { eq } from 'drizzle-orm';
122
+ import { db, users } from '@/src/db/client';
123
+
124
+ export async function GET(): Promise<Response> {
125
+ const activeUsers = await db
126
+ .select({ id: users.id, email: users.email })
127
+ .from(users)
128
+ .where(eq(users.active, true))
129
+ .limit(20);
130
+
131
+ return Response.json({ users: activeUsers });
132
+ }
133
+ ```
134
+
135
+ ## Migrations
136
+
137
+ Use `drizzle-kit` when the app uses Drizzle:
138
+
139
+ ```typescript
140
+ import { defineConfig } from 'drizzle-kit';
141
+
142
+ const databaseUrl = process.env.DATABASE_URL;
143
+
144
+ if (!databaseUrl) {
145
+ throw new Error('DATABASE_URL is required for Drizzle migrations');
146
+ }
147
+
148
+ export default defineConfig({
149
+ schema: './src/db/schema.ts',
150
+ out: './drizzle',
151
+ dialect: 'postgresql',
152
+ dbCredentials: {
153
+ url: databaseUrl,
154
+ },
155
+ });
156
+ ```
157
+
158
+ ```bash
159
+ bunx drizzle-kit generate
160
+ bunx drizzle-kit migrate
161
+ ```
162
+
163
+ Use migration files for repeatable deploy-time schema changes. Use
164
+ `bunx drizzle-kit push` only for quick development loops.
165
+
166
+ ## Transactions
167
+
168
+ Use one transaction boundary for one write workflow:
169
+
170
+ ```typescript
171
+ const client = await pool.connect();
172
+
173
+ try {
174
+ await client.query('BEGIN');
175
+ await client.query('UPDATE accounts SET balance = balance - $1 WHERE name = $2', [100, 'Alice']);
176
+ await client.query('UPDATE accounts SET balance = balance + $1 WHERE name = $2', [100, 'Bob']);
177
+ await client.query('COMMIT');
178
+ } catch (error) {
179
+ await client.query('ROLLBACK');
180
+ throw error;
181
+ } finally {
182
+ client.release();
183
+ }
184
+ ```
185
+
186
+ Use your ORM's transaction helper when the app already uses an ORM.
187
+
188
+ ## DBClient for Trusted Scripts
189
+
190
+ ```bash
191
+ npm install @agentuity/db
192
+ ```
193
+
194
+ ```typescript
195
+ import { DBClient } from '@agentuity/db';
196
+
197
+ const database = process.env.AGENTUITY_DB_DATABASE;
198
+ const orgId = process.env.AGENTUITY_CLOUD_ORG_ID;
199
+
200
+ if (!database || !orgId) {
201
+ throw new Error('AGENTUITY_DB_DATABASE and AGENTUITY_CLOUD_ORG_ID are required');
202
+ }
203
+
204
+ const db = new DBClient({ database, orgId });
205
+
206
+ const result = await db.query('SELECT 1 AS ok');
207
+ const tables = await db.tables();
208
+ const logs = await db.logs({ limit: 50 });
209
+ ```
210
+
211
+ Use `DBClient` only for trusted SQL such as introspection or administrative
212
+ checks. It does not replace a parameterized app query client.
213
+
214
+ ## Common Mistakes
215
+
216
+ | Mistake | Better approach |
217
+ |---|---|
218
+ | Creating a new pool inside every request | Create one pool at module scope |
219
+ | Using KV for relational queries | Use Postgres for joins, constraints, and transactions |
220
+ | Concatenating request values into SQL | Use placeholders or ORM query builders |
221
+ | Treating `DBClient` as the app ORM | Use `pg`, Drizzle, Prisma, Kysely, or your existing client |
222
+ | Forgetting to link the database | Run `agentuity project add database <name>` so `DATABASE_URL` is written |
223
+
224
+ ## Useful Docs
225
+
226
+ - Database overview: https://agentuity.dev/services/database
227
+ - Postgres clients: https://agentuity.dev/services/database/postgres
228
+ - Drizzle ORM: https://agentuity.dev/services/database/drizzle
229
+ - Database API reference: https://agentuity.dev/reference/api/database
@@ -0,0 +1,142 @@
1
+ ---
2
+ name: agentuity-frameworks
3
+ description: >-
4
+ Use when adding Agentuity code to a framework app and choosing where routes,
5
+ pages, server functions, config, or service clients belong. Covers Next.js,
6
+ Nuxt, SvelteKit, Astro, Hono, React Router, Vite with React, and TanStack Start
7
+ file placement.
8
+ license: Apache-2.0
9
+ metadata:
10
+ author: agentuity
11
+ version: "1.0.0"
12
+ ---
13
+
14
+ # Agentuity Framework Placement
15
+
16
+ Agentuity works with your framework's normal file layout. Put routes, pages,
17
+ server functions, and config where the framework expects them. Add Agentuity
18
+ clients only in server-side code.
19
+
20
+ ## Create-Supported Frameworks
21
+
22
+ `agentuity create` can scaffold these frameworks:
23
+
24
+ | Framework | API route location | App UI location | Dev script owner |
25
+ |---|---|---|---|
26
+ | Next.js | `src/app/api/<name>/route.ts` | `src/app/page.tsx` | Next.js |
27
+ | Nuxt | `server/api/<name>.get.ts` or `.post.ts` | `app/app.vue` | Nuxt |
28
+ | SvelteKit | `src/routes/<path>/+server.ts` | `src/routes/+page.svelte` | Vite/SvelteKit |
29
+ | Astro | `src/pages/api/<name>.ts` | `src/pages/index.astro` | Astro |
30
+ | Hono | `src/index.ts` route handlers | `src/landing.tsx` when scaffolded | Hono server script |
31
+
32
+ Use the framework's route handler to validate the request, then call a shared function for the real work.
33
+
34
+ ## Existing-App Adoption
35
+
36
+ For apps you already have, install the CLI and import the project without changing the app shape:
37
+
38
+ ```bash
39
+ npm install -D @agentuity/cli
40
+ agentuity project import --name existing-app --confirm
41
+ ```
42
+
43
+ Useful route locations:
44
+
45
+ | Framework | Server route shape |
46
+ |---|---|
47
+ | React Router | `app/routes/api.agentuity.ts`, registered in `app/routes.ts` |
48
+ | TanStack Start | `src/routes/api.agentuity.tsx` with server handlers |
49
+ | Vite + React | A server boundary such as `server.ts`; browser code calls that server |
50
+ | Express or other routers | Existing route module; import Agentuity clients server-side |
51
+
52
+ ## Server-Only Rule
53
+
54
+ Do not expose Agentuity SDK keys to browser bundles. Service clients belong in
55
+ routes, server actions, workers, scripts, or other server-only modules.
56
+
57
+ ```typescript
58
+ import { KeyValueClient } from '@agentuity/keyvalue';
59
+
60
+ const kv = new KeyValueClient();
61
+
62
+ export async function GET(): Promise<Response> {
63
+ const result = await kv.get<{ checkedAt: string }>('health', 'latest');
64
+ return Response.json({ ok: true, exists: result.exists });
65
+ }
66
+ ```
67
+
68
+ Browser components should call your server route:
69
+
70
+ ```typescript
71
+ const response = await fetch('/api/agentuity-health');
72
+ const status = await response.json();
73
+ ```
74
+
75
+ ## Thin Route, Shared Function
76
+
77
+ Prefer this split for AI features, background work, and service calls:
78
+
79
+ ```typescript
80
+ // lib/triage.ts
81
+ export async function triageMessage(message: string): Promise<{ priority: string }> {
82
+ return { priority: message.includes('urgent') ? 'high' : 'normal' };
83
+ }
84
+ ```
85
+
86
+ ```typescript
87
+ // framework route file
88
+ import { triageMessage } from '@/lib/triage';
89
+
90
+ export async function POST(request: Request): Promise<Response> {
91
+ const body = (await request.json()) as { message?: string };
92
+ if (!body.message) {
93
+ return Response.json({ error: 'message is required' }, { status: 400 });
94
+ }
95
+
96
+ const result = await triageMessage(body.message);
97
+ return Response.json(result);
98
+ }
99
+ ```
100
+
101
+ This keeps route-specific code small and lets the core function move between
102
+ frameworks, tests, queues, schedules, and scripts.
103
+
104
+ ## Hono Middleware Option
105
+
106
+ In Hono apps, use direct clients by default when portability matters. Use
107
+ `@agentuity/hono` when accessing clients through Hono context improves
108
+ readability:
109
+
110
+ ```typescript
111
+ import { Hono } from 'hono';
112
+ import { agentuity } from '@agentuity/hono';
113
+ import type { Services } from '@agentuity/hono';
114
+
115
+ const app = new Hono<{ Variables: Pick<Services, 'kv'> }>();
116
+
117
+ app.use('*', agentuity());
118
+
119
+ app.get('/api/preferences/:userId', async (c) => {
120
+ const result = await c.var.kv.get('preferences', c.req.param('userId'));
121
+ return c.json({ exists: result.exists });
122
+ });
123
+ ```
124
+
125
+ AI Gateway, database, object storage, webhooks, and Coder are direct clients.
126
+
127
+ ## Common Mistakes
128
+
129
+ | Mistake | Better approach |
130
+ |---|---|
131
+ | Putting service clients in browser components | Call a server route that owns the client |
132
+ | Adding new folders that bypass framework conventions | Use the framework's route/page locations |
133
+ | Duplicating AI or service logic in every route | Put shared work in a plain function and import it |
134
+ | Assuming every framework uses the same API route path | Check the route table before editing |
135
+ | Putting SDK keys in public env prefixes | Keep `AGENTUITY_SDK_KEY` server-side |
136
+
137
+ ## Useful Docs
138
+
139
+ - Frameworks: https://agentuity.dev/frameworks
140
+ - Project structure: https://agentuity.dev/get-started/project-structure
141
+ - Add to existing app: https://agentuity.dev/get-started/import-existing-app
142
+ - Standalone packages: https://agentuity.dev/reference/standalone-packages
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: agentuity-project
3
+ description: >-
4
+ Use when creating, importing, running, building, or deploying an Agentuity app.
5
+ Covers framework-first project structure, agentuity.json, .env setup,
6
+ agentuity dev, agentuity build, agentuity deploy, monorepo --dir usage, and
7
+ deployment bundle inspection.
8
+ license: Apache-2.0
9
+ metadata:
10
+ author: agentuity
11
+ version: "1.0.0"
12
+ ---
13
+
14
+ # Agentuity Project Lifecycle
15
+
16
+ Agentuity deploys framework apps as they are. Keep the framework's routing,
17
+ pages, server functions, and config in their normal locations. Agentuity adds
18
+ project metadata, local environment wiring, build packaging, deployment, and
19
+ managed services.
20
+
21
+ ## Choose Create or Import
22
+
23
+ Use `agentuity create` for a new app:
24
+
25
+ ```bash
26
+ agentuity create --name my-app --framework nextjs
27
+ ```
28
+
29
+ Use `agentuity project import` for an existing framework app:
30
+
31
+ ```bash
32
+ agentuity project import --name my-app --confirm
33
+ ```
34
+
35
+ For monorepos, run commands from the app package or pass `--dir`:
36
+
37
+ ```bash
38
+ agentuity project import --dir apps/web --name web --confirm
39
+ agentuity deploy --dir apps/web
40
+ ```
41
+
42
+ ## What Agentuity Adds
43
+
44
+ After create/import, expect these files next to the app's `package.json`:
45
+
46
+ | File | Purpose |
47
+ |---|---|
48
+ | `agentuity.json` | Project, org, region, and deployment metadata |
49
+ | `.env` | Local SDK key and linked resource values |
50
+ | `.agentuity/launch.json` | Build output contract produced by `agentuity build` |
51
+
52
+ The framework still owns `dev`, `build`, and route files. Agentuity adds deploy tooling and cloud resource wiring.
53
+
54
+ ## Development Loop
55
+
56
+ Use the framework's normal dev command for everyday framework work. Run through
57
+ Agentuity when you want the CLI to inject linked project credentials, expose the
58
+ Agentuity tunnel, or validate the deployed-like environment:
59
+
60
+ ```bash
61
+ agentuity dev
62
+ ```
63
+
64
+ Read the terminal output for the actual local URL and tunnel URL. Do not invent
65
+ localhost ports or public deployment URLs.
66
+
67
+ ## Build and Deploy
68
+
69
+ Build locally when you need to inspect packaging:
70
+
71
+ ```bash
72
+ agentuity build
73
+ ```
74
+
75
+ Check `.agentuity/launch.json` after a build. It describes the process Agentuity will start after deployment.
76
+
77
+ Deploy from a linked project:
78
+
79
+ ```bash
80
+ agentuity deploy
81
+ ```
82
+
83
+ The deploy flow syncs non-Agentuity `.env` values, builds the app, packages the
84
+ bundle, uploads assets, provisions the deployment, and prints the deployment ID
85
+ plus URLs.
86
+
87
+ ## Existing App Checklist
88
+
89
+ Before deploying an existing app:
90
+
91
+ 1. Run `agentuity project import --validate-only`.
92
+ 2. Fix any reported framework, package, or build issues.
93
+ 3. Run `agentuity project import --name <name> --confirm`.
94
+ 4. Run `agentuity build`.
95
+ 5. Inspect `.agentuity/launch.json`.
96
+ 6. Run `agentuity deploy`.
97
+
98
+ ## Working With Services
99
+
100
+ When adding Agentuity services to app code, import standalone clients in the server-side module that owns the work:
101
+
102
+ ```typescript
103
+ import { KeyValueClient } from '@agentuity/keyvalue';
104
+
105
+ const kv = new KeyValueClient();
106
+
107
+ export async function saveDraft(userId: string, draft: string): Promise<void> {
108
+ await kv.set('drafts', userId, { draft }, { ttl: 60 * 60 * 24 });
109
+ }
110
+ ```
111
+
112
+ For service selection and client examples, use the `agentuity-services` skill.
113
+ For terminal management of resources, use the `agentuity-cloud` skill.
114
+
115
+ ## Common Mistakes
116
+
117
+ | Mistake | Better approach |
118
+ |---|---|
119
+ | Moving framework files into Agentuity-owned folders | Keep route and page files where the framework expects them |
120
+ | Creating project metadata by hand | Use `agentuity create` or `agentuity project import` |
121
+ | Treating `agentuity dev` as mandatory | Use it only for CLI env wiring, tunnel output, or deploy-like validation |
122
+ | Guessing deployment URLs | Read `agentuity deploy` output or inspect deployments with the CLI |
123
+ | Importing from the repo root in a monorepo | Run from the app package or use `--dir` |
124
+
125
+ ## Useful Docs
126
+
127
+ - Project structure: https://agentuity.dev/get-started/project-structure
128
+ - Import existing app: https://agentuity.dev/get-started/import-existing-app
129
+ - Deployment: https://agentuity.dev/reference/cli/deployment
130
+ - Build configuration: https://agentuity.dev/reference/cli/build-configuration