@kolbo/mcp 1.37.0 → 1.37.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.
- package/README.md +1 -0
- package/package.json +1 -1
- package/skill/SKILL.md +14 -3
- package/skill/references/workflows/app-builder.md +140 -21
- package/src/index.js +1 -1
package/README.md
CHANGED
|
@@ -239,6 +239,7 @@ Every generation tool also accepts an optional `project_id` arg that routes the
|
|
|
239
239
|
| `create_project` / `update_project` / `archive_project` / `unarchive_project` | Project lifecycle (create/rename/describe/archive; deletion stays in-app) |
|
|
240
240
|
| `list_agents` / `create_agent` / `update_agent` / `delete_agent` | Custom chat agents (reusable named personas; `description` is the system instruction) |
|
|
241
241
|
| `get_creative_director_status` | Re-check a Creative Director batch by generation_id until all parallel scenes finish (use after a `_timed_out` Director run) |
|
|
242
|
+
| `app_builder_list_projects` / `app_builder_create_session` / `app_builder_generate_app` / `app_builder_edit_app` / `app_builder_get_build_status` / `app_builder_get_session` / `app_builder_list_sessions` / `app_builder_list_generations` / `app_builder_delete_session` | **App Builder (preview)** — full React app generation that auto-provisions a GitHub repo + Supabase DB + a live deployment URL. Different surface from the generation tools (4-layer mental model: project → session → app → end-users). The app embeds `@kolbo/app-sdk` so visitors can call Kolbo AI from the browser; the OWNER pays for visitor AI usage. Read the App Builder workflow doc before the first turn. |
|
|
242
243
|
| `list_sessions` | Enumerate sessions across all types, filterable by project and type |
|
|
243
244
|
| `add_project_context` / `list_project_context` / `delete_project_context` / `get_project_profile` / `regenerate_project_profile` | Project knowledge base (RAG): feed scripts/URLs/notes, read the synthesized living brief |
|
|
244
245
|
| `create_moodboard` / `update_moodboard` / `delete_moodboard` | Build/edit moodboards from image URLs (AI style analysis → master prompt) |
|
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -83,7 +83,7 @@ For multi-scene / batch work this pairs with `generate_creative_director` (see b
|
|
|
83
83
|
| **Transcribe** or **analyze** audio/video | `references/workflows/transcription.md` |
|
|
84
84
|
| **Scrape brand/product info** before generating + persist as `.kolbo/brand-kits/<slug>.md` | `references/workflows/research-first.md` |
|
|
85
85
|
| Browse, manage, or present existing **media library** items | `references/workflows/media-library.md` |
|
|
86
|
-
| Use the **App Builder** (React app generation) | `references/workflows/app-builder.md` |
|
|
86
|
+
| Use the **App Builder** (React app generation) — preview, ask first | `references/workflows/app-builder.md` |
|
|
87
87
|
| Confirm **cost** or validate **resolution / aspect / duration** against model caps | `references/workflows/cost-and-validation.md` |
|
|
88
88
|
| Hit an **auth / MCP / 429** issue | `references/workflows/troubleshooting.md` |
|
|
89
89
|
|
|
@@ -124,7 +124,7 @@ Each `references/models/*.md` mirrors the matching skill prompt in `kolbo-api/sr
|
|
|
124
124
|
| `trim_video` | Frame-accurate trim of a Kolbo-hosted video (tool waits and returns the URL). `edit_video` also gained `remove_background`. |
|
|
125
125
|
| `create_doc` / `list_docs` / `get_doc` / `update_doc` / `share_doc` / `delete_doc` | AI Docs (Magic Pad): YOU author full HTML documents (plans, briefs, scripts, research) saved into the user's project, editable in the Kolbo app. `share_doc` returns a public link. `update_doc` content replaces the WHOLE doc — `get_doc` first. |
|
|
126
126
|
| `chat_send_message` / `chat_list_conversations` / `chat_get_messages` | Kolbo chat with optional `media_urls` (up to 10 per call) |
|
|
127
|
-
| `app_builder_*` (9 tools) | Full React app generation — see `workflows/app-builder.md` |
|
|
127
|
+
| `app_builder_*` (9 tools) | Full React app generation (preview) — see `workflows/app-builder.md`. Different surface from generation tools: produces a deployed app with GitHub repo + Supabase DB + live URL. Don't confuse `session_id` types, don't confuse `app_builder_generate_app` with `generate_image`. |
|
|
128
128
|
| `publish_html_artifact` | Publish HTML / SVG / Mermaid to `sites.kolbo.ai`. Server dedupes by content hash. Strict CSP. |
|
|
129
129
|
|
|
130
130
|
## ⚠️ If the User Names a Tool, USE THAT TOOL (HARD RULE)
|
|
@@ -175,9 +175,20 @@ Everything in Kolbo — sessions, generations, media, docs — lives inside a PR
|
|
|
175
175
|
|
|
176
176
|
1. **User names a project** ("in my Acme project", "for the film") → call `list_projects` ONCE to resolve the name to an ObjectId, then pass that id as `project_id` on **EVERY** subsequent `generate_*` / `upload_media` / `create_doc` / `chat_send_message` call in the conversation. It is **per-call, NOT sticky** — any call that omits it silently lands in the default "API Generations" bucket (`is_default: true`).
|
|
177
177
|
2. **No project mentioned** → omit `project_id`; the default bucket is correct. Don't ask unless intent is ambiguous.
|
|
178
|
-
3. **`list_projects` ≠ `app_builder_list_projects`** — the
|
|
178
|
+
3. **`list_projects` ≠ `app_builder_list_projects`** — both return the SAME Kolbo projects (different endpoints, different shapes). Use `list_projects` for generation/media/chat flows; use `app_builder_list_projects` when scoping an App Builder session. Never substitute one for the other.
|
|
179
179
|
4. **Work landed in the wrong project? MOVE it, never regenerate**: `move_session` relocates a whole session + all its media (works for any session type — the `session_id` from generation responses, chats, transcriptions); `move_media` / `bulk_move_media` / `move_folder_contents` relocate individual media items.
|
|
180
180
|
|
|
181
|
+
## 🧱 App Builder ≠ regular Kolbo project (4-layer mental model)
|
|
182
|
+
|
|
183
|
+
App Builder is a separate surface that builds and runs full React apps. It shares the **Kolbo project** layer with regular generations (a single Kolbo project can hold BOTH app-builder sessions AND image/video sessions), but every layer above it is distinct. The single biggest routing mistake is treating an `app_builder_generate_app` call as a media-generation call, or passing an App Builder `session_id` to `generate_image`. Read `workflows/app-builder.md` before the first App Builder turn — the four layers are:
|
|
184
|
+
|
|
185
|
+
1. **Kolbo project** (shared) — `list_projects` / `app_builder_list_projects`
|
|
186
|
+
2. **App Builder session** — `app_builder_create_session(project_id)` → returns a `session_id` distinct from any chat/generation session id
|
|
187
|
+
3. **The app itself** — `deployment_url` + `github_repo_url` + `supabase_url` + `supabase_anon_key` (auto-provisioned on first successful build)
|
|
188
|
+
4. **App end-users** — per-app JWT, hit `/api/apps/:appId/ai/*`; the OWNER of the app pays for their AI usage (NOT surfaced as MCP tools — owned by `@kolbo/app-sdk` in the deployed bundle)
|
|
189
|
+
|
|
190
|
+
Heuristic: deliverable is a **single file** (image / video / doc / artifact) → regular tools. Deliverable is "**an app** that does X" or "my **users** can do Y" → App Builder. App Builder is **preview** — don't proactively advertise; if the user asks, load `workflows/app-builder.md` and confirm they're an opted-in owner.
|
|
191
|
+
|
|
181
192
|
## Cost Awareness — Quick Rules
|
|
182
193
|
|
|
183
194
|
Full tables + formulas in `references/workflows/cost-and-validation.md`. Quick rules:
|
|
@@ -1,41 +1,160 @@
|
|
|
1
1
|
# App Builder
|
|
2
2
|
|
|
3
|
-
Load this file when the user wants to build
|
|
3
|
+
Load this file when the user wants to **build, edit, or iterate on a full React app** with Kolbo's App Builder — "build me a todo app", "add dark mode to my app", "give me the GitHub repo", "I want my app to use Kolbo image generation from the user's browser". Do NOT load this for single-asset generation requests (use the regular `generate_*` tools).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## 🚦 Preview / not live to the public yet
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
App Builder is in **preview** as of this writing. The MCP tools (`app_builder_*`) are wired and the backend runs end-to-end — owners can create projects, generate apps, edit them, get GitHub repos + Supabase DBs + a live deployment URL. The user-facing launch (in-app promo, self-serve public onboarding) is still pending. So:
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- Fires the build in the background, polls until `build_status === "deployed"` (up to 5 min)
|
|
13
|
-
- Always surface the `deployment_url` to the user: **"Your app is live at: [url]"**
|
|
14
|
-
4. **Iterate**: `app_builder_list_generations` → get `generation_id` → `app_builder_edit_app` with natural language instruction
|
|
9
|
+
- **You CAN call these tools** for owners / opted-in users — the flow works.
|
|
10
|
+
- **Don't proactively advertise App Builder** to users who haven't asked for it (no marketing pitch about "build apps with AI").
|
|
11
|
+
- If the user pushes back ("is this ready?"), say it's a working preview and ask if they want to try it.
|
|
15
12
|
|
|
16
|
-
|
|
13
|
+
## 🧠 Mental model — 4 layers, easy to conflate
|
|
17
14
|
|
|
18
|
-
|
|
15
|
+
This is the single biggest source of confusion. App Builder is NOT a generation tool. It's a **complete app factory** with its own lifecycle, its own runtime, and its own end-user identity model. Lock this in once:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
┌─────────────────────────────────────────────────────────────────────────┐
|
|
19
|
+
│ Layer 1 — KOLBO PROJECT (Kolbo account) │
|
|
20
|
+
│ The same project you use for generations/media/chat. │
|
|
21
|
+
│ `list_projects` returns these. `app_builder_list_projects` ALSO │
|
|
22
|
+
│ returns these (same data, different endpoint shape). A project can │
|
|
23
|
+
│ hold BOTH regular sessions AND app-builder sessions at the same time. │
|
|
24
|
+
└─────────────────────────────────────────────────────────────────────────┘
|
|
25
|
+
│
|
|
26
|
+
▼
|
|
27
|
+
┌─────────────────────────────────────────────────────────────────────────┐
|
|
28
|
+
│ Layer 2 — APP BUILDER SESSION (one session = one app being built) │
|
|
29
|
+
│ Created with `app_builder_create_session` against a Kolbo project. │
|
|
30
|
+
│ Has a `session_id` that is COMPLETELY DIFFERENT from the │
|
|
31
|
+
│ `session_id` returned by `chat_send_message` or any `generate_*` │
|
|
32
|
+
│ tool. Don't mix them. │
|
|
33
|
+
│ A session accumulates "generations" — each one is a build / edit. │
|
|
34
|
+
└─────────────────────────────────────────────────────────────────────────┘
|
|
35
|
+
│
|
|
36
|
+
▼
|
|
37
|
+
┌─────────────────────────────────────────────────────────────────────────┐
|
|
38
|
+
│ Layer 3 — THE APP ITSELF (a deployed React app) │
|
|
39
|
+
│ After the first successful generation the session has a real app: │
|
|
40
|
+
│ • `deployment_url` — the live, hosted URL (e.g. apps.kolbo.ai/…) │
|
|
41
|
+
│ • `github_repo_url` — auto-provisioned GitHub repo (clone, hack) │
|
|
42
|
+
│ • `supabase_url` + `supabase_anon_key` — auto-provisioned DB │
|
|
43
|
+
│ The app embeds `@kolbo/app-sdk` so it can call Kolbo AI directly │
|
|
44
|
+
│ from the user's browser — see Layer 4. │
|
|
45
|
+
└─────────────────────────────────────────────────────────────────────────┘
|
|
46
|
+
│
|
|
47
|
+
▼
|
|
48
|
+
┌─────────────────────────────────────────────────────────────────────────┐
|
|
49
|
+
│ Layer 4 — APP END-USERS (real humans visiting the deployed app) │
|
|
50
|
+
│ Each visitor authenticates with a PER-APP JWT — NOT a Kolbo user │
|
|
51
|
+
│ account, NOT an API key. They hit `/api/apps/:appId/ai/*` endpoints │
|
|
52
|
+
│ that proxy Kolbo AI. The OWNER of the app (the person who built it) │
|
|
53
|
+
│ is the one whose credits get billed for every generation. This is a │
|
|
54
|
+
│ completely different surface from the MCP — there are no MCP tools │
|
|
55
|
+
│ for app end-users; the SDK lives in the generated app's bundle. │
|
|
56
|
+
└─────────────────────────────────────────────────────────────────────────┘
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**The five easy confusions** — re-read this before every App Builder turn:
|
|
60
|
+
|
|
61
|
+
1. `list_projects` and `app_builder_list_projects` return the **same Kolbo projects** — different endpoints, different shapes, but the same data. Use whichever the current flow needs.
|
|
62
|
+
2. `session_id` from `app_builder_create_session` is NOT the same as `session_id` from `chat_send_message`. Don't pass an App Builder session id to a `generate_*` tool or vice versa.
|
|
63
|
+
3. `app_builder_generate_app` is NOT a media-generation tool. It kicks off a full multi-minute app build that produces code + infra + a deployment URL. Never confuse it with `generate_image` / `generate_video`.
|
|
64
|
+
4. The deployed app is its OWN product. Visiting it is not "using Kolbo"; the visitor's identity is per-app, not Kolbo.
|
|
65
|
+
5. The OWNER pays. App end-users consume credits from the owner's account. Confirm the owner understands this before they share their app publicly.
|
|
66
|
+
|
|
67
|
+
## When to route here
|
|
68
|
+
|
|
69
|
+
The user wants to **build or modify a full app**, not generate a single asset:
|
|
70
|
+
|
|
71
|
+
- "Build me a [todo / landing page / dashboard / form / marketplace / internal tool / mobile-friendly site] app"
|
|
72
|
+
- "Make me a [SaaS / site / app] that does X"
|
|
73
|
+
- "I want an app where my users can [Y]" (the visitor-runtime question — usually means App Builder + Layer 4)
|
|
74
|
+
- "Add [dark mode / a contact form / a chart / auth / a settings page] to my app"
|
|
75
|
+
- "Show me the GitHub repo" / "I want to clone it" / "Connect my own Supabase"
|
|
76
|
+
- "Is my app deployed?" / "My build failed" / "Why is the deployment URL blank?"
|
|
77
|
+
- "What apps have I built?" / "Show me my App Builder sessions"
|
|
78
|
+
- "Delete this app" (always confirm — see Rules)
|
|
79
|
+
|
|
80
|
+
## When NOT to route here
|
|
81
|
+
|
|
82
|
+
The user wants a single asset or a Kolbo-internal workflow. Stay on the regular `generate_*` / media / doc / chat tools:
|
|
83
|
+
|
|
84
|
+
- "Generate an image / video / song / voice / 3D model" → regular tools (the output lives in Kolbo)
|
|
85
|
+
- "Edit this image" → `generate_image_edit`
|
|
86
|
+
- "Write me a [plan / brief / script]" → `create_doc` (AI Docs)
|
|
87
|
+
- "Build a presentation / landing page artifact" → `publish_html_artifact`
|
|
88
|
+
- "I want a campaign with 4 product shots" → `generate_creative_director`
|
|
89
|
+
- "Make me a Kolbo character consistent across images" → Visual DNA tools
|
|
90
|
+
|
|
91
|
+
**Heuristic:** if the deliverable is a single file (image / video / doc / page artifact), it's NOT App Builder. If the deliverable is "an app that does X" or "my users can do Y in it", it IS App Builder.
|
|
92
|
+
|
|
93
|
+
## Standard workflow (build + iterate)
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
1. app_builder_list_projects → pick a Kolbo project (or note "default bucket")
|
|
97
|
+
2. app_builder_create_session(project_id) → returns session_id
|
|
98
|
+
3. app_builder_generate_app(session_id,
|
|
99
|
+
prompt="...") → blocks until build_status="deployed"
|
|
100
|
+
(up to ~5 min — surface the deployment_url!)
|
|
101
|
+
4. (later) app_builder_list_generations(session_id)
|
|
102
|
+
→ app_builder_edit_app(session_id,
|
|
103
|
+
generation_id=<latest>,
|
|
104
|
+
edit_prompt="add dark mode")
|
|
105
|
+
→ blocks until redeployed
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Surface the deployment URL on success** — always show the user: "Your app is live at: `<deployment_url>`". That's the whole payoff. If `deployment_url` is null after a successful build, treat it as a build failure and call `app_builder_get_build_status` to investigate.
|
|
109
|
+
|
|
110
|
+
**No manual polling needed.** `generate_app` and `edit_app` block until the build completes (or throws). If a build times out, the user can resume by calling `app_builder_get_build_status(session_id)` — DO NOT auto-retry; wait for the user's call.
|
|
111
|
+
|
|
112
|
+
## Local dev + handoff
|
|
19
113
|
|
|
20
114
|
If the user wants to run the app locally or connect to the database directly:
|
|
115
|
+
|
|
21
116
|
```
|
|
22
117
|
app_builder_get_session(session_id) → returns:
|
|
23
|
-
github_repo_url
|
|
24
|
-
supabase_url
|
|
25
|
-
supabase_anon_key
|
|
118
|
+
github_repo_url → git clone <url> && npm install && npm run dev
|
|
119
|
+
supabase_url → paste into .env as NEXT_PUBLIC_SUPABASE_URL
|
|
120
|
+
supabase_anon_key → paste into .env as NEXT_PUBLIC_SUPABASE_ANON_KEY
|
|
121
|
+
deployment_url → the currently deployed URL
|
|
26
122
|
```
|
|
27
123
|
|
|
28
|
-
|
|
124
|
+
The repo is a standard Next.js + Tailwind + shadcn/ui + Supabase app. The bundled `@kolbo/app-sdk` (`kolbo.auth`, `kolbo.data`, `kolbo.storage`, `kolbo.ai`) is what lets the app call Kolbo AI without exposing a full-access API key.
|
|
125
|
+
|
|
126
|
+
## End-user runtime — when the user asks "can my visitors do X in the app?"
|
|
29
127
|
|
|
30
|
-
|
|
31
|
-
- **On build timeout** (rare): use `app_builder_get_build_status` to check manually, then continue or report.
|
|
128
|
+
This is Layer 4 — the deployed app's AI proxy. The MCP doesn't have direct tools for it, but you should KNOW it exists so you can answer:
|
|
32
129
|
|
|
33
|
-
|
|
130
|
+
- **What end-users see:** the deployed React app at `deployment_url`. They authenticate with a per-app JWT (auto-issued; the SDK handles it).
|
|
131
|
+
- **What they can do:** anything the app is coded to do, including calling Kolbo AI (image / video / chat / etc.) via `@kolbo/app-sdk`. The SDK hits `/api/apps/:appId/ai/*` proxy endpoints server-side; the OWNER's account is billed for those calls.
|
|
132
|
+
- **Spend controls:** the owner can set a per-app spend policy and per-user rate limits on the AI proxy (see `appAI/spendPolicy.js`). If the user says "my app is burning credits" or "someone is abusing my app", route them to that dashboard.
|
|
133
|
+
- **What you CAN'T do from the MCP:** inspect an end-user's session inside the app, view their chat history, or read their app-scoped data. Those live in the Kolbo dashboard under the App's settings.
|
|
34
134
|
|
|
35
135
|
## Routing examples
|
|
36
136
|
|
|
37
137
|
| User says | Sequence |
|
|
38
138
|
|---|---|
|
|
39
|
-
| "Build me a todo app" / "Make a landing page with waitlist" | `app_builder_list_projects` → `app_builder_create_session` → `app_builder_generate_app` → show `deployment_url` |
|
|
40
|
-
| "Add dark mode to my app" / "Add a contact form" | `app_builder_list_generations` → `app_builder_edit_app` |
|
|
41
|
-
| "Give me the GitHub repo" / "
|
|
139
|
+
| "Build me a todo app" / "Make me a SaaS landing page with waitlist" | `app_builder_list_projects` → `app_builder_create_session` → `app_builder_generate_app` → show `deployment_url` |
|
|
140
|
+
| "Add dark mode to my app" / "Add a contact form / chart / auth" | `app_builder_list_generations` → grab latest `generation_id` → `app_builder_edit_app` → show `deployment_url` |
|
|
141
|
+
| "Give me the GitHub repo" / "I want to clone it and run it locally" | `app_builder_get_session` → return `github_repo_url` (+ `supabase_url` + `supabase_anon_key` if they ask) |
|
|
142
|
+
| "Show me my apps" / "What apps have I built?" | `app_builder_list_projects` → for each, `app_builder_list_sessions` → surface session list |
|
|
143
|
+
| "Is my build still running?" / "My build timed out" | `app_builder_get_build_status(session_id)` → resume |
|
|
144
|
+
| "Delete this app" | **ALWAYS CONFIRM FIRST** — see Rules. Then `app_builder_delete_session` |
|
|
145
|
+
| "My app visitors are burning my credits" | Not an MCP action — point them at the App → Settings → Spend Policy dashboard |
|
|
146
|
+
| "I want my app users to be able to generate images inside the app" | Tell them the `@kolbo/app-sdk` `kolbo.ai.generateImage` namespace handles it server-side via `/api/apps/:appId/ai/generate/image` — the OWNER pays |
|
|
147
|
+
|
|
148
|
+
## Hard rules
|
|
149
|
+
|
|
150
|
+
- **ALWAYS confirm before `app_builder_delete_session`** — permanently deletes the GitHub repo, Supabase DB (unless user-connected their own), deployed files, generation history, messages, and form submissions. IRREVERSIBLE.
|
|
151
|
+
- **On build timeout / failure:** use `app_builder_get_build_status(session_id)` and report the actual status to the user. DO NOT auto-retry the build.
|
|
152
|
+
- **Never invent a `deployment_url` or `github_repo_url`** — they come back from the tool. If null, the build didn't finish.
|
|
153
|
+
- **The owner pays for every AI call made by an app visitor.** Make sure the user understands this before they share the app publicly. Direct them to spend-policy settings if they need a cap.
|
|
154
|
+
- **Whitelabel works automatically** — the MCP client routes App Builder calls through the whitelabel API endpoints when configured.
|
|
155
|
+
- **Don't conflate `project_id` types.** A Kolbo project holds App Builder sessions; the App Builder session is a CHILD of that project. The deployed app has its OWN `:appId` (visible in `app_builder_get_session`) which is what the app-runtime uses to route AI calls — that's a different id namespace from the Kolbo `project_id`.
|
|
156
|
+
|
|
157
|
+
## Versioning note (MCP)
|
|
158
|
+
|
|
159
|
+
- The App Builder MCP surface is **stable as of `@kolbo/mcp@1.37.0`**. No renames or removals planned. New optional args ship as `npm version minor` per the standard rules.
|
|
160
|
+
- The kolbo-code skill mirrors this doc (canonical source: `kolbo-code/packages/opencode/skills/kolbo/references/workflows/app-builder.md`); a `chore(skill)` bot keeps them in sync.
|
package/src/index.js
CHANGED
|
@@ -113,7 +113,7 @@ function createServer(opts = {}) {
|
|
|
113
113
|
'PROJECT CONTRACT (read this before generating anything):',
|
|
114
114
|
'Everything in Kolbo lives inside a PROJECT — sessions, generations, and media are all project-scoped.',
|
|
115
115
|
'1. When the user names a project ("in my Acme project", "for the summer campaign"), call `list_projects` ONCE to resolve the name to an id, then pass that id as `project_id` on EVERY subsequent generate_* / chat_send_message / upload_media call in the conversation. The target project is per-call, NOT sticky — any call that omits `project_id` silently lands in the default "API Generations" bucket (flagged is_default:true), which users experience as their work going to the wrong project.',
|
|
116
|
-
'2. `list_projects` lists the user\'s platform projects (for generations/media/chat). `app_builder_list_projects` is a DIFFERENT tool that scopes App Builder coding sessions only — never use one where the other is meant.',
|
|
116
|
+
'2. `list_projects` lists the user\'s platform projects (for generations/media/chat). `app_builder_list_projects` is a DIFFERENT tool that scopes App Builder coding sessions only — never use one where the other is meant (both return the same projects but via different endpoints, different shapes). The App Builder surface (project → session → deployed app with GitHub+Supabase+live URL → end-users who hit `/api/apps/:appId/ai/*`) is a SEPARATE world from the generation tools — `app_builder_generate_app` is NOT a media-generation call, and an App Builder `session_id` is NOT interchangeable with a chat/generation `session_id`. Read `skill/references/workflows/app-builder.md` before the first App Builder turn; App Builder is preview-only, do not proactively advertise it.',
|
|
117
117
|
'3. Misplaced work is fixable: `move_media` / `bulk_move_media` / `move_folder_contents` move media items between projects; `move_session` moves a whole session (plus its media) to another project. If the user says a generation landed in the wrong project, move it rather than regenerating.',
|
|
118
118
|
'4. If the user has not mentioned any project, omit `project_id` — the default bucket is correct in that case. Do not ask which project to use unless the user\'s intent is ambiguous.',
|
|
119
119
|
'5. Written deliverables (plans, briefs, scripts, research summaries) can live in Kolbo too: author them as AI Docs with `create_doc` (project-scoped, editable in the app, shareable via `share_doc`).',
|