@agent-native/core 0.7.52 → 0.7.53
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/dist/cli/templates-meta.d.ts.map +1 -1
- package/dist/cli/templates-meta.js +1 -0
- package/dist/cli/templates-meta.js.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.js +54 -13
- package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
- package/docs/content/a2a-protocol.md +19 -9
- package/docs/content/agent-mentions.md +2 -2
- package/docs/content/agent-teams.md +2 -2
- package/docs/content/client.md +1 -1
- package/docs/content/cloneable-saas.md +13 -13
- package/docs/content/creating-templates.md +251 -219
- package/docs/content/faq.md +2 -2
- package/docs/content/frames.md +1 -1
- package/docs/content/getting-started.md +1 -1
- package/docs/content/key-concepts.md +1 -1
- package/docs/content/messaging.md +11 -6
- package/docs/content/multi-app-workspace.md +2 -2
- package/docs/content/server.md +117 -133
- package/docs/content/skills-guide.md +3 -3
- package/docs/content/template-analytics.md +8 -6
- package/docs/content/template-design.md +25 -27
- package/docs/content/template-forms.md +26 -21
- package/docs/content/template-mail.md +4 -0
- package/docs/content/template-video.md +4 -4
- package/docs/content/what-is-agent-native.md +1 -1
- package/docs/content/workspace.md +37 -30
- package/package.json +1 -1
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Forms Template"
|
|
3
|
-
description: "Agent-native form builder — create, edit, and
|
|
3
|
+
description: "Agent-native form builder — create, edit, publish, and route form submissions through natural language plus a visual editor."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Forms
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Forms is an agent-native form builder. Describe the form you want, refine it in the editor, and publish a public form that stores submissions in your own SQL database.
|
|
9
9
|
|
|
10
|
-
When you open the app, you
|
|
10
|
+
When you open the app, you see your forms, the current editor, and a live preview. The agent can create a form from a prompt, update field labels and options, change validation, and connect submission destinations using the same actions the UI uses.
|
|
11
11
|
|
|
12
12
|
## What you can do with it
|
|
13
13
|
|
|
14
|
-
- **Build forms conversationally.** "Create a contact form," "add an NPS score question," "make the email field required." The agent updates the schema and the preview updates
|
|
15
|
-
- **
|
|
16
|
-
- **
|
|
17
|
-
- **
|
|
18
|
-
- **
|
|
19
|
-
- **Publish
|
|
14
|
+
- **Build forms conversationally.** "Create a contact form," "add an NPS score question," "make the email field required." The agent updates the form schema and the preview updates from SQL-backed state.
|
|
15
|
+
- **Fine-tune visually.** Edit labels, placeholders, required state, options, and field order from the builder UI when you want direct control.
|
|
16
|
+
- **Use the shipped field types.** Text, email, number, long text, select, multi-select, checkbox, radio, date, rating, and scale fields are supported out of the box.
|
|
17
|
+
- **Collect responses.** Each submission is stored in SQL with a per-response detail view and a dashboard for reviewing entries.
|
|
18
|
+
- **Route submissions.** Send submission payloads to webhooks, Slack, Discord, or Google Sheets using the built-in integrations.
|
|
19
|
+
- **Publish public forms.** Share a public form URL and show a thank-you message after submission.
|
|
20
20
|
|
|
21
21
|
## Why it's interesting
|
|
22
22
|
|
|
23
|
-
The
|
|
23
|
+
The useful part of an agent-native form builder is that setup and iteration happen in the same place. You can ask the agent to add fields, adjust copy, connect Slack notifications, or inspect the submission data, while the UI remains the direct editor for the same SQL records.
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
See [What is agent-native?](/docs/what-is-agent-native) for the broader framework model.
|
|
26
|
+
|
|
27
|
+
## For Developers
|
|
26
28
|
|
|
27
29
|
### Scaffolding
|
|
28
30
|
|
|
@@ -30,25 +32,28 @@ The hard part of a form builder isn't the editor UI — it's everything around i
|
|
|
30
32
|
pnpm dlx @agent-native/core create my-forms --template forms --standalone
|
|
31
33
|
```
|
|
32
34
|
|
|
33
|
-
For a workspace with
|
|
35
|
+
For a workspace with Forms alongside other apps:
|
|
34
36
|
|
|
35
37
|
```bash
|
|
36
|
-
pnpm dlx @agent-native/core create my-platform
|
|
38
|
+
pnpm dlx @agent-native/core create my-platform
|
|
37
39
|
```
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
Pick Forms and any other templates you want during the workspace setup.
|
|
42
|
+
|
|
43
|
+
### Customize It
|
|
40
44
|
|
|
41
|
-
Ask the agent for
|
|
45
|
+
Ask the agent for shipped behavior first:
|
|
42
46
|
|
|
43
|
-
- "Add a
|
|
44
|
-
- "
|
|
47
|
+
- "Add a required radio field for preferred contact method."
|
|
48
|
+
- "Post every new submission to Slack." Connect Slack first via [Messaging](/docs/messaging).
|
|
49
|
+
- "Add a webhook destination for our CRM."
|
|
50
|
+
- "Create a customer feedback form with a 1-10 scale and a long-text follow-up."
|
|
45
51
|
- "Make some forms public and others login-only."
|
|
46
|
-
- "Send everyone who scored below 5 a follow-up email asking what we could do better."
|
|
47
52
|
|
|
48
|
-
|
|
53
|
+
If you need new capabilities such as file uploads, signatures, or custom field widgets, treat them as template extensions: add the SQL shape, actions, UI editor controls, public renderer support, and agent instructions together. See [Creating Templates](/docs/creating-templates) for the current build pattern.
|
|
49
54
|
|
|
50
|
-
## What's
|
|
55
|
+
## What's Next
|
|
51
56
|
|
|
52
57
|
- [**Cloneable SaaS**](/docs/cloneable-saas) — the clone-and-own model
|
|
53
58
|
- [**Actions**](/docs/actions) — the action system powering the builder
|
|
54
|
-
- [**
|
|
59
|
+
- [**Messaging**](/docs/messaging) — Slack and other submission destinations
|
|
@@ -14,6 +14,7 @@ When you open the app, you'll see your inbox on the left, the open thread in the
|
|
|
14
14
|
- **Read and triage email** with keyboard shortcuts (`J`/`K` to move, `E` to archive, `R` to reply, `C` to compose).
|
|
15
15
|
- **Connect multiple Gmail accounts** — personal and work in one inbox.
|
|
16
16
|
- **Ask the agent to do anything you can do.** "Summarize my unread emails." "Draft a reply that politely declines." "Archive all Netlify bot emails older than a week."
|
|
17
|
+
- **Queue drafts for review.** Teammates and Slack users can ask the agent to prepare an email for an org member; the owner reviews, edits, and sends it from Mail.
|
|
17
18
|
- **Auto-triage with rules.** Set up automation rules in plain English ("from a newsletter") with actions (label, archive, mark read, star, trash).
|
|
18
19
|
- **Track opens and clicks** on the emails you send.
|
|
19
20
|
- **Search across every connected inbox** with one query.
|
|
@@ -96,6 +97,8 @@ agent-native add-app
|
|
|
96
97
|
|
|
97
98
|
**Multiple compose drafts.** The compose panel supports multiple draft tabs at once. Each draft is stored as an `application_state` entry at `compose-{id}` and syncs live between the agent and the UI. The agent can create a new draft with `manage-draft --action=create`, edit your in-progress draft with `--action=update`, or close tabs with `--action=delete`. Drafts use markdown in the body field; the TipTap editor renders it as rich text and converts to HTML on send.
|
|
98
99
|
|
|
100
|
+
**Queued draft review.** Drafts requested by teammates or Slack are durable SQL rows in `queued_email_drafts`. The agent uses `queue-email-draft` to assign a draft to an org member, returns a review URL such as `/draft-queue/<id>`, and waits for the owner to review or explicitly send. The queue supports listing assigned drafts, editing them, opening one in the compose panel, dismissing it, and sending one or all reviewed drafts.
|
|
101
|
+
|
|
99
102
|
**AI triage via automations.** Mail supports automation rules that run against new inbox email using AI. A rule has a natural-language condition (for example, `"from a newsletter"` or `"subject contains invoice"`) and a list of actions (`label`, `archive`, `mark_read`, `star`, `trash`). Manage them via `pnpm action manage-automations --action=create|list|update|delete|enable|disable`, or through the Settings page. Rules fire automatically and can be triggered manually with `pnpm action trigger-automations`.
|
|
100
103
|
|
|
101
104
|
**Send tracking.** Sent messages get open-pixel and link-click tracking injected automatically. Settings live under `mail-settings.tracking` with `tracking.opens` and `tracking.clicks` (both default `true`). Only links in the new portion of a reply or forward are rewritten — quoted content is left alone. Pull stats for any sent message with `pnpm action get-tracking --id=<message-id>`, or from `GET /api/emails/:id/tracking`. Open and click events are stored in the `email_tracking` and `email_link_tracking` tables.
|
|
@@ -132,6 +135,7 @@ When a Google account is connected, email lives in Gmail — the app is a view o
|
|
|
132
135
|
| `getSetting("labels")` | System and user labels, with unread counts |
|
|
133
136
|
| `getSetting("mail-settings")` | User profile, tracking preferences, signature, aliases |
|
|
134
137
|
| `getSetting("aliases")` | Email aliases |
|
|
138
|
+
| `queued_email_drafts` table | Teammate-requested drafts awaiting owner review/send |
|
|
135
139
|
| `email_tracking` table | Open-pixel events for sent messages |
|
|
136
140
|
| `email_link_tracking` table | Link-click events for sent messages |
|
|
137
141
|
| `application_state` table | `navigation`, `navigate`, `compose-{id}` entries (ephemeral) |
|
|
@@ -124,7 +124,7 @@ User edits (track values, parameter values, prop overrides, composition settings
|
|
|
124
124
|
|
|
125
125
|
The agent always knows which composition you have open. Navigation state (`{ view, compositionId }`) is written to the framework's `application_state` table, and the `view-screen` action returns it plus a hint pointing at `app/remotion/registry.ts`. You don't have to tell the agent which composition you're on — ask it to act on "this one" and it will.
|
|
126
126
|
|
|
127
|
-
Under the hood the agent calls actions like `navigate`, `
|
|
127
|
+
Under the hood the agent calls actions like `navigate`, `save-composition`, and `generate-animated-component`. SQL-backed composition records are created or updated through `save-composition`; code-backed Remotion components still live in `app/remotion/compositions/*.tsx` and are registered in `app/remotion/registry.ts`.
|
|
128
128
|
|
|
129
129
|
### Data model
|
|
130
130
|
|
|
@@ -151,10 +151,10 @@ The template folder is `templates/videos/` (the user-facing slug is `video`, but
|
|
|
151
151
|
|
|
152
152
|
- `view-screen.ts` — returns current navigation state for the agent.
|
|
153
153
|
- `navigate.ts` — navigate to a composition (`--compositionId <id>`) or the home view (`--view home`).
|
|
154
|
-
- `
|
|
155
|
-
- `generate-animated-component.ts` — generate a new
|
|
154
|
+
- `save-composition.ts` — create or update a SQL-backed composition record.
|
|
155
|
+
- `generate-animated-component.ts` — generate a new Remotion component file with boilerplate.
|
|
156
156
|
- `validate-compositions.ts` — check all registered compositions for structural problems.
|
|
157
|
-
- `list-compositions.ts`, `get-composition.ts`, `update-composition.ts`, `delete-composition.ts
|
|
157
|
+
- `list-compositions.ts`, `get-composition.ts`, `update-composition.ts`, `delete-composition.ts` — read, update, and delete SQL-backed composition records.
|
|
158
158
|
|
|
159
159
|
**Routes** — `templates/videos/app/routes/`
|
|
160
160
|
|
|
@@ -120,7 +120,7 @@ The vision: fewer handoffs, one person doing the work of a small team.
|
|
|
120
120
|
|
|
121
121
|
## Fork and customize {#fork-and-customize}
|
|
122
122
|
|
|
123
|
-
Agent-native apps follow a fork-and-customize model. You start from a **cloneable SaaS** template — Mail, Calendar, Analytics, Slides, Clips, Forms, Dispatch — and make it yours:
|
|
123
|
+
Agent-native apps follow a fork-and-customize model. You start from a **cloneable SaaS** template — Mail, Calendar, Analytics, Slides, Clips, Design, Forms, Dispatch — and make it yours:
|
|
124
124
|
|
|
125
125
|
1. Pick a template on [agent-native.com/templates](/templates)
|
|
126
126
|
2. Use it immediately as a hosted app (e.g. mail.agent-native.com)
|
|
@@ -7,7 +7,7 @@ description: "Claude-Code-level customization per user — skills, memory, instr
|
|
|
7
7
|
|
|
8
8
|
> **See also:** Deploying multiple apps as one workspace? See [Multi-App Workspaces](/docs/multi-app-workspace). Governance, branching, and CODEOWNERS? See [Workspace Governance](/docs/workspace-management).
|
|
9
9
|
|
|
10
|
-
Every agent-native app ships with a **workspace**: the customization layer that makes the agent yours. It contains team instructions (`AGENTS.md`),
|
|
10
|
+
Every agent-native app ships with a **workspace**: the customization layer that makes the agent yours. It contains team instructions (`AGENTS.md`), shared learnings (`LEARNINGS.md`), personal structured memory (`memory/MEMORY.md`), skills the agent pulls in on demand, custom sub-agents, scheduled jobs, and connected MCP servers — everything you'd expect from a Claude Code / Codex setup.
|
|
11
11
|
|
|
12
12
|
The twist: **it's SQL rows, not filesystem files.** Each user gets their own workspace stored in the database. There's no dev-box to spin up, no container per user, no files to mount. A multi-tenant SaaS can give every user a fully-customizable agent for essentially free, because all of it is rows — personal memory, personal MCP servers, personal skills, personal sub-agents — and the shared codebase hosts all of them at once.
|
|
13
13
|
|
|
@@ -17,7 +17,7 @@ The twist: **it's SQL rows, not filesystem files.** Each user gets their own wor
|
|
|
17
17
|
| One codebase per developer | One codebase, many users |
|
|
18
18
|
| Needs a dev-box or container | Runs on any serverless/edge host |
|
|
19
19
|
| Customization at `~/.claude/` | Customization per-user, scoped `u:<email>:…` |
|
|
20
|
-
| Per-project `CLAUDE.md` / skills | Per-app `AGENTS.md` +
|
|
20
|
+
| Per-project `CLAUDE.md` / skills | Per-app `AGENTS.md` + workspace memory resources |
|
|
21
21
|
| MCP config in a JSON file | MCP config in JSON _or_ the settings UI, per scope |
|
|
22
22
|
|
|
23
23
|
Same capabilities. Different economics. See [Cloneable SaaS](/docs/cloneable-saas) for why this matters for SaaS.
|
|
@@ -32,19 +32,20 @@ The **Workspace** tab in the agent sidebar is where you and the agent share pers
|
|
|
32
32
|
- Create files with the `+` menu. Upload with the upload button. Edit inline (visual or code view).
|
|
33
33
|
- **Personal** is just you. **Shared** is your team/org.
|
|
34
34
|
- The agent can read, write, and rename any of these files as part of a conversation.
|
|
35
|
-
- Special files the agent
|
|
35
|
+
- Special files the agent preloads: shared `AGENTS.md`, shared `LEARNINGS.md`, and personal structured memory at `memory/MEMORY.md`.
|
|
36
36
|
|
|
37
37
|
## What goes in here? {#what-goes-in-here}
|
|
38
38
|
|
|
39
|
-
| File / path | What it's for
|
|
40
|
-
| --------------------------- |
|
|
41
|
-
| `AGENTS.md` (Shared) | Team instructions the agent reads every turn — tone, rules, domain context, skill references.
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
|
|
|
39
|
+
| File / path | What it's for |
|
|
40
|
+
| --------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
41
|
+
| `AGENTS.md` (Shared) | Team instructions the agent reads every turn — tone, rules, domain context, skill references. |
|
|
42
|
+
| `LEARNINGS.md` (Shared) | Shared corrections, conventions, and durable project memory the agent preloads. |
|
|
43
|
+
| `memory/MEMORY.md` | Personal structured memory the chat preloads for the current user. |
|
|
44
|
+
| `skills/<name>.md` | Focused domain guidance the agent pulls in on demand (invoked with `/` slash commands). |
|
|
45
|
+
| `agents/<name>.md` | **Custom agents** — reusable sub-agent profiles the agent can delegate to (invoked with `@` mentions). |
|
|
46
|
+
| `remote-agents/<name>.json` | A2A manifests for connected remote agents — edited via a form, not raw JSON. |
|
|
47
|
+
| `jobs/<name>.md` | Scheduled tasks that run on a cron (see the recurring-jobs docs). |
|
|
48
|
+
| Anything else | Notes, prompts, config, dataset snippets — any text file. |
|
|
48
49
|
|
|
49
50
|
## Overview {#overview}
|
|
50
51
|
|
|
@@ -95,7 +96,7 @@ Change how the agent behaves, in 60 seconds.
|
|
|
95
96
|
- **Skills** (`+` → **Skill**) — focused how-to files invoked in chat with `/skill-name`.
|
|
96
97
|
- **Agents** (`+` → **Agent**) — reusable sub-agent personas invoked with `@agent-name`.
|
|
97
98
|
- **Scheduled Tasks** (`+` → **Scheduled Task**) — prompts that run on a cron.
|
|
98
|
-
- **
|
|
99
|
+
- **Memory** — shared `LEARNINGS.md` and personal `memory/MEMORY.md` keep durable context available across conversations.
|
|
99
100
|
|
|
100
101
|
## How the Agent Uses Resources {#how-the-agent-uses-resources}
|
|
101
102
|
|
|
@@ -126,11 +127,16 @@ Be concise. Lead with the answer.
|
|
|
126
127
|
| data-analysis | `skills/data-analysis.md` | BigQuery and data workflows |
|
|
127
128
|
```
|
|
128
129
|
|
|
129
|
-
###
|
|
130
|
+
### Memory {#memory}
|
|
130
131
|
|
|
131
|
-
|
|
132
|
+
The workspace has two current memory surfaces:
|
|
132
133
|
|
|
133
|
-
|
|
134
|
+
- `LEARNINGS.md` in **Shared** scope for project-wide conventions, corrections, and durable team knowledge.
|
|
135
|
+
- `memory/MEMORY.md` in **Personal** scope for structured memory about the current user.
|
|
136
|
+
|
|
137
|
+
The resource system also seeds a personal `LEARNINGS.md` for compatibility with older workspaces, but the chat preload path is shared `LEARNINGS.md` plus personal `memory/MEMORY.md`.
|
|
138
|
+
|
|
139
|
+
**What gets saved.** When you correct the agent ("no, always use X instead of Y"), share a preference ("I prefer concise answers"), or reveal context ("my team calls this 'the dispatch layer'"), the agent can capture that learning so it doesn't repeat the mistake or have to re-ask next time. Project-wide learnings belong in shared `LEARNINGS.md`; user-specific memory belongs under `memory/`. This behavior lives in the framework system prompt and the `capture-learnings` skill spells out the rules for when and how.
|
|
134
140
|
|
|
135
141
|
**What it looks like.**
|
|
136
142
|
|
|
@@ -152,13 +158,14 @@ Be concise. Lead with the answer.
|
|
|
152
158
|
|
|
153
159
|
**Where it fits.**
|
|
154
160
|
|
|
155
|
-
| Surface
|
|
156
|
-
|
|
|
157
|
-
| `AGENTS.md`
|
|
158
|
-
| `
|
|
159
|
-
| `
|
|
161
|
+
| Surface | Scope | Written by | Read when |
|
|
162
|
+
| ------------------ | -------- | ------------------------- | ---------------------------- |
|
|
163
|
+
| `AGENTS.md` | Shared | Humans / agent on request | Every turn |
|
|
164
|
+
| `LEARNINGS.md` | Shared | Humans / agent on request | Every turn |
|
|
165
|
+
| `memory/MEMORY.md` | Personal | Agent / humans | Every turn |
|
|
166
|
+
| `skills/…` | Shared | Humans / agent on request | On demand (`/slash` command) |
|
|
160
167
|
|
|
161
|
-
Users can edit
|
|
168
|
+
Users can edit these memory files directly in the Workspace tab — they're regular resources. Delete lines the agent got wrong, keep personal preferences in `memory/MEMORY.md`, or promote team-wide rules into `AGENTS.md`.
|
|
162
169
|
|
|
163
170
|
## Skills {#skills}
|
|
164
171
|
|
|
@@ -222,7 +229,7 @@ Recommended conventions:
|
|
|
222
229
|
There are two agent types in Workspace:
|
|
223
230
|
|
|
224
231
|
- **Custom agents** — local profiles in `agents/*.md`, executed inside the current app/runtime
|
|
225
|
-
- **Connected agents** — remote A2A peers described by manifests in `agents/*.json`
|
|
232
|
+
- **Connected agents** — remote A2A peers described by manifests in `remote-agents/*.json` (legacy `agents/*.json` manifests are still recognized)
|
|
226
233
|
|
|
227
234
|
Use custom agents for delegation within one app. Use connected agents when you need to call another app over A2A.
|
|
228
235
|
|
|
@@ -286,13 +293,13 @@ If no skills are configured, the dropdown shows a hint with a link to these docs
|
|
|
286
293
|
|
|
287
294
|
The resource system works identically in both modes. The difference is what additional sources are available for `@` tagging and `/` commands:
|
|
288
295
|
|
|
289
|
-
| Feature
|
|
290
|
-
|
|
|
291
|
-
| @ tagging
|
|
292
|
-
| / slash commands
|
|
293
|
-
| Agent file access
|
|
294
|
-
| Workspace panel
|
|
295
|
-
| AGENTS.md /
|
|
296
|
+
| Feature | Dev Mode | Production |
|
|
297
|
+
| ------------------ | ----------------------------------------------------------------------- | ------------------------------------------------------ |
|
|
298
|
+
| @ tagging | Codebase files + workspace resources + custom agents + connected agents | Workspace resources + custom agents + connected agents |
|
|
299
|
+
| / slash commands | .agents/skills/ + resource skills | Resource skills only |
|
|
300
|
+
| Agent file access | Filesystem + resources | Resources only |
|
|
301
|
+
| Workspace panel | Full access | Full access |
|
|
302
|
+
| AGENTS.md / memory | Available | Available |
|
|
296
303
|
|
|
297
304
|
## Resource API {#resource-api}
|
|
298
305
|
|