@agent-native/core 0.3.2 → 0.4.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 +21 -50
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +8 -0
- package/dist/cli/create.js.map +1 -1
- package/dist/scripts/runner.d.ts.map +1 -1
- package/dist/scripts/runner.js +8 -2
- package/dist/scripts/runner.js.map +1 -1
- package/dist/vite/express-plugin.d.ts +3 -0
- package/dist/vite/express-plugin.d.ts.map +1 -1
- package/dist/vite/express-plugin.js +39 -8
- package/dist/vite/express-plugin.js.map +1 -1
- package/package.json +1 -1
- package/src/templates/default/.claude/settings.json +1 -0
- package/src/templates/default/AGENTS.md +15 -0
- package/src/templates/default/_gitignore +4 -0
- package/src/templates/default/learnings.defaults.md +5 -0
package/README.md
CHANGED
|
@@ -2,9 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
**Agentic applications you own.**
|
|
4
4
|
|
|
5
|
-
Agent-native is an open source framework for building
|
|
5
|
+
Agent-native is an open source framework for building full-featured apps with agentic capabilities integrated from the ground up.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
SaaS products charge you for rigid software you can't change. Agent-native gives you the code — you own it, you customize it, you evolve it with AI.
|
|
8
|
+
|
|
9
|
+
## Agents and UIs — Fully Connected
|
|
10
|
+
|
|
11
|
+
The agent and the UI are equal citizens of the same system. Every action works both ways — click it or ask for it.
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
- **The agent sees everything** — It can read and update any UI, any data, any state in the application.
|
|
16
|
+
- **The UI talks to the agent** — Buttons, forms, and workflows push structured content to the agent, giving you guided flows that all go through the agent — including skills, rules, and instructions.
|
|
17
|
+
- **The agent updates its own code** — It can modify the app itself to change features and functionality. Your tools get better over time.
|
|
18
|
+
- **Everything works both ways** — Every action available in the UI is also available to the agent. You can click to do something, or ask the agent to do it.
|
|
8
19
|
|
|
9
20
|
## Templates
|
|
10
21
|
|
|
@@ -96,55 +107,15 @@ pnpm dev
|
|
|
96
107
|
|
|
97
108
|
Or **[launch a template](https://agent-native.com/templates)** — no setup required.
|
|
98
109
|
|
|
99
|
-
##
|
|
100
|
-
|
|
101
|
-
Agent-native apps follow five rules:
|
|
102
|
-
|
|
103
|
-
- **Files as database** — All state lives in files. The agent and UI share the same source of truth.
|
|
104
|
-
- **AI through the agent** — No inline LLM calls. The UI delegates to the agent via a chat bridge. One AI, customizable with skills and instructions.
|
|
105
|
-
- **Agent updates code** — The agent can modify the app itself. Your tools get better over time.
|
|
106
|
-
- **Real-time sync** — File watcher streams changes via SSE. Agent edits appear instantly.
|
|
107
|
-
- **Agent + UI + Computer** — The powerful trio. Everything the UI can do, the agent can do — and vice versa.
|
|
108
|
-
|
|
109
|
-
## Harnesses
|
|
110
|
-
|
|
111
|
-
Agent-native apps run inside a **harness** — a host that provides the AI agent alongside your app UI.
|
|
112
|
-
|
|
113
|
-
| | Local / Open Source | Builder Cloud |
|
|
114
|
-
| ----------------- | ------------------------------------ | ----------------------------------- |
|
|
115
|
-
| **Run** | Claude Code CLI or any local harness | One-click launch from templates |
|
|
116
|
-
| **Collaboration** | Solo | Real-time multiplayer |
|
|
117
|
-
| **Features** | Full permissions, full control | Visual editing, roles & permissions |
|
|
118
|
-
| **Best for** | Solo dev, local testing, OSS | Teams, production |
|
|
119
|
-
|
|
120
|
-
Your app code is identical regardless of harness. Start local, go to cloud when you need teams.
|
|
121
|
-
|
|
122
|
-
## Skills
|
|
123
|
-
|
|
124
|
-
Agent-native ships with built-in **skills** — structured guidance files in `.agents/skills/` that teach the AI agent how to work within the framework. Every new app created with `npx @agent-native/core create` includes them automatically.
|
|
125
|
-
|
|
126
|
-
| Skill | Purpose |
|
|
127
|
-
| --------------------- | -------------------------------------- |
|
|
128
|
-
| `files-as-database` | Store and read all state as files |
|
|
129
|
-
| `delegate-to-agent` | Route AI work through the agent chat |
|
|
130
|
-
| `scripts` | Create and run agent-callable scripts |
|
|
131
|
-
| `sse-file-watcher` | Keep the UI in sync via SSE |
|
|
132
|
-
| `self-modifying-code` | Safely edit app source and components |
|
|
133
|
-
| `create-skill` | Add new skills to the agent |
|
|
134
|
-
| `capture-learnings` | Record corrections and patterns |
|
|
135
|
-
| `frontend-design` | Build distinctive, production-grade UI |
|
|
136
|
-
|
|
137
|
-
### Frontend Design Skill
|
|
138
|
-
|
|
139
|
-
The **`frontend-design`** skill (sourced from [Anthropic's skills library](https://github.com/anthropics/skills/blob/main/skills/frontend-design/SKILL.md)) is active across all templates and new apps. It guides the agent to produce visually striking, memorable interfaces — committing to a clear aesthetic direction rather than defaulting to generic AI-generated patterns.
|
|
140
|
-
|
|
141
|
-
Key principles it enforces:
|
|
110
|
+
## The Best of Both Worlds
|
|
142
111
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
112
|
+
| | SaaS Tools | Raw AI Agents | Internal Tools | Agent-Native |
|
|
113
|
+
| -------------------- | ------------------ | ----------------------- | ---------------- | ----------------------- |
|
|
114
|
+
| **UI** | Polished but rigid | None | Months to build | Full UI, fork & go |
|
|
115
|
+
| **AI** | Bolted on | Powerful, no guardrails | Disconnected | Agent-first, integrated |
|
|
116
|
+
| **Customization** | Can't | Prompt-only | Full but slow | Agent modifies the app |
|
|
117
|
+
| **Ownership** | Rented | N/A | Yours but costly | You own the code |
|
|
118
|
+
| **Non-dev friendly** | Yes | No | Rarely | Guided UI + agent |
|
|
148
119
|
|
|
149
120
|
## Docs
|
|
150
121
|
|
package/dist/cli/create.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAoH7C"}
|
package/dist/cli/create.js
CHANGED
|
@@ -57,6 +57,14 @@ export function createApp(name) {
|
|
|
57
57
|
content = content.replace(/\{\{APP_NAME\}\}/g, name);
|
|
58
58
|
fs.writeFileSync(agentsPath, content);
|
|
59
59
|
}
|
|
60
|
+
// Copy defaults files (gitignored files that get seeded from .defaults on first create)
|
|
61
|
+
for (const base of ["learnings"]) {
|
|
62
|
+
const defaultsFile = path.join(targetDir, `${base}.defaults.md`);
|
|
63
|
+
const targetFile = path.join(targetDir, `${base}.md`);
|
|
64
|
+
if (fs.existsSync(defaultsFile) && !fs.existsSync(targetFile)) {
|
|
65
|
+
fs.copyFileSync(defaultsFile, targetFile);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
60
68
|
// Rename gitignore (npm strips .gitignore from packages)
|
|
61
69
|
const gitignoreSrc = path.join(targetDir, "_gitignore");
|
|
62
70
|
const gitignoreDst = path.join(targetDir, ".gitignore");
|
package/dist/cli/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/scripts/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/scripts/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;;;GAKG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAwC/C"}
|
package/dist/scripts/runner.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Usage: pnpm script <script-name> [--args]
|
|
8
8
|
*/
|
|
9
|
+
import path from "path";
|
|
10
|
+
import { pathToFileURL } from "url";
|
|
9
11
|
/**
|
|
10
12
|
* Run the script dispatcher. Call this from your app's scripts/run.ts:
|
|
11
13
|
*
|
|
@@ -25,13 +27,17 @@ export async function runScript() {
|
|
|
25
27
|
process.exit(1);
|
|
26
28
|
}
|
|
27
29
|
// Dynamically import and run the script
|
|
30
|
+
// Resolve from the app's scripts/ directory (process.cwd()), not from this package
|
|
28
31
|
try {
|
|
29
|
-
const
|
|
32
|
+
const scriptPath = path.resolve(process.cwd(), "scripts", `${scriptName}.ts`);
|
|
33
|
+
const mod = await import(/* @vite-ignore */ pathToFileURL(scriptPath).href);
|
|
30
34
|
const args = process.argv.slice(3);
|
|
31
35
|
await mod.default(args);
|
|
32
36
|
}
|
|
33
37
|
catch (err) {
|
|
34
|
-
if (err.code === "ERR_MODULE_NOT_FOUND"
|
|
38
|
+
if (err.code === "ERR_MODULE_NOT_FOUND" ||
|
|
39
|
+
err.code === "ERR_UNSUPPORTED_ESM_URL_SCHEME" ||
|
|
40
|
+
err.message?.includes("Cannot find module")) {
|
|
35
41
|
console.error(`Error: Script "${scriptName}" not found. Run "pnpm script --help" for usage.`);
|
|
36
42
|
process.exit(1);
|
|
37
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/scripts/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2DAA2D;IAC3D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,+BAA+B,UAAU,GAAG,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/scripts/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2DAA2D;IAC3D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,+BAA+B,UAAU,GAAG,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wCAAwC;IACxC,mFAAmF;IACnF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAC7B,OAAO,CAAC,GAAG,EAAE,EACb,SAAS,EACT,GAAG,UAAU,KAAK,CACnB,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IACE,GAAG,CAAC,IAAI,KAAK,sBAAsB;YACnC,GAAG,CAAC,IAAI,KAAK,gCAAgC;YAC7C,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAC3C,CAAC;YACD,OAAO,CAAC,KAAK,CACX,kBAAkB,UAAU,kDAAkD,CAC/E,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,WAAW,UAAU,WAAW,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -6,6 +6,9 @@ export interface ExpressPluginOptions {
|
|
|
6
6
|
/**
|
|
7
7
|
* Vite plugin that mounts the Express app as middleware during dev.
|
|
8
8
|
* Only active in serve mode (not during build).
|
|
9
|
+
*
|
|
10
|
+
* The Express app is re-created when server files change so you don't
|
|
11
|
+
* have to manually restart `pnpm dev` after editing server code.
|
|
9
12
|
*/
|
|
10
13
|
export declare function expressPlugin(options?: ExpressPluginOptions): Plugin;
|
|
11
14
|
//# sourceMappingURL=express-plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-plugin.d.ts","sourceRoot":"","sources":["../../src/vite/express-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"express-plugin.d.ts","sourceRoot":"","sources":["../../src/vite/express-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAGlD,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CA2DxE"}
|
|
@@ -1,21 +1,52 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Vite plugin that mounts the Express app as middleware during dev.
|
|
3
3
|
* Only active in serve mode (not during build).
|
|
4
|
+
*
|
|
5
|
+
* The Express app is re-created when server files change so you don't
|
|
6
|
+
* have to manually restart `pnpm dev` after editing server code.
|
|
4
7
|
*/
|
|
5
8
|
export function expressPlugin(options = {}) {
|
|
6
9
|
const serverEntry = options.serverEntry ?? "./server";
|
|
7
10
|
return {
|
|
8
11
|
name: "agent-native-express",
|
|
9
12
|
apply: "serve",
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
configureServer(server) {
|
|
14
|
+
let app = null;
|
|
15
|
+
async function loadApp() {
|
|
16
|
+
// Invalidate the module graph so we get fresh code
|
|
17
|
+
const resolved = await server.moduleGraph.resolveUrl(serverEntry);
|
|
18
|
+
if (resolved) {
|
|
19
|
+
const mod = server.moduleGraph.getModuleById(resolved[1]);
|
|
20
|
+
if (mod)
|
|
21
|
+
server.moduleGraph.invalidateModule(mod);
|
|
22
|
+
}
|
|
23
|
+
const ssrMod = await server.ssrLoadModule(serverEntry);
|
|
24
|
+
const createServer = ssrMod.createServer ?? ssrMod.createAppServer ?? ssrMod.default;
|
|
25
|
+
if (typeof createServer !== "function") {
|
|
26
|
+
throw new Error(`[@agent-native/core] Could not find createServer export in "${serverEntry}". ` +
|
|
27
|
+
`Export a createServer() function that returns an Express app.`);
|
|
28
|
+
}
|
|
29
|
+
app = createServer();
|
|
16
30
|
}
|
|
17
|
-
|
|
18
|
-
|
|
31
|
+
// Initial load
|
|
32
|
+
const ready = loadApp();
|
|
33
|
+
// Re-create the app when any server file changes
|
|
34
|
+
server.watcher.on("change", (file) => {
|
|
35
|
+
if (file.includes("/server/") || file.includes("\\server\\")) {
|
|
36
|
+
console.log(`[agent-native] Server file changed, reloading: ${file.split("/server/").pop()}`);
|
|
37
|
+
loadApp().catch((err) => console.error("[agent-native] Failed to reload server:", err));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
// Proxy middleware — delegates to the latest Express app
|
|
41
|
+
server.middlewares.use(async (req, res, next) => {
|
|
42
|
+
await ready; // wait for initial load
|
|
43
|
+
if (app) {
|
|
44
|
+
app(req, res, next);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
next();
|
|
48
|
+
}
|
|
49
|
+
});
|
|
19
50
|
},
|
|
20
51
|
};
|
|
21
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-plugin.js","sourceRoot":"","sources":["../../src/vite/express-plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"express-plugin.js","sourceRoot":"","sources":["../../src/vite/express-plugin.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,UAAgC,EAAE;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,UAAU,CAAC;IAEtD,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,OAAO;QACd,eAAe,CAAC,MAAM;YACpB,IAAI,GAAG,GAAQ,IAAI,CAAC;YAEpB,KAAK,UAAU,OAAO;gBACpB,mDAAmD;gBACnD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAClE,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1D,IAAI,GAAG;wBAAE,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACpD,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACvD,MAAM,YAAY,GAChB,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,OAAO,CAAC;gBAElE,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CACb,+DAA+D,WAAW,KAAK;wBAC7E,+DAA+D,CAClE,CAAC;gBACJ,CAAC;gBAED,GAAG,GAAG,YAAY,EAAE,CAAC;YACvB,CAAC;YAED,eAAe;YACf,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;YAExB,iDAAiD;YACjD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE;gBAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC7D,OAAO,CAAC,GAAG,CACT,kDAAkD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,CACjF,CAAC;oBACF,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACtB,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAC9D,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,yDAAyD;YACzD,MAAM,CAAC,WAAW,CAAC,GAAG,CACpB,KAAK,EAAE,GAAoB,EAAE,GAAmB,EAAE,IAAgB,EAAE,EAAE;gBACpE,MAAM,KAAK,CAAC,CAAC,wBAAwB;gBACrC,IAAI,GAAG,EAAE,CAAC;oBACR,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -36,6 +36,21 @@ data/ # App data files (watched by SSE)
|
|
|
36
36
|
.agents/skills/ # Agent skills — detailed guidance for each rule
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
## Learnings & Preferences
|
|
40
|
+
|
|
41
|
+
**Always read `learnings.md` at the start of every conversation.** This file is the app's memory — it contains user preferences, corrections, important context, and patterns learned from past interactions.
|
|
42
|
+
|
|
43
|
+
**Update `learnings.md` when you learn something important:**
|
|
44
|
+
|
|
45
|
+
- User corrects your tone, style, or approach
|
|
46
|
+
- User shares personal info relevant to the app (contacts, preferences, habits)
|
|
47
|
+
- You discover a non-obvious pattern or gotcha
|
|
48
|
+
- User gives feedback that should apply to future conversations
|
|
49
|
+
|
|
50
|
+
Keep entries concise and actionable. Group by category. This file is gitignored so personal data stays local.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
39
54
|
Skills in `.agents/skills/` provide detailed guidance for each architectural rule. Read them before making changes.
|
|
40
55
|
|
|
41
56
|
| Skill | When to read |
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Learnings
|
|
2
|
+
|
|
3
|
+
<!-- This file is your app's memory. The AI reads it at the start of every conversation and updates it when it learns something new. -->
|
|
4
|
+
<!-- Your personal learnings.md is gitignored so preferences and private info stay local. -->
|
|
5
|
+
<!-- This defaults file is what new checkouts start with. -->
|