@beignet/cli 0.0.19 → 0.0.21
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/CHANGELOG.md +16 -0
- package/README.md +11 -1
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -0
- package/dist/config.js.map +1 -1
- package/dist/inspect.d.ts.map +1 -1
- package/dist/inspect.js +10 -7
- package/dist/inspect.js.map +1 -1
- package/dist/lint.d.ts.map +1 -1
- package/dist/lint.js +6 -9
- package/dist/lint.js.map +1 -1
- package/dist/make.d.ts.map +1 -1
- package/dist/make.js +1 -5
- package/dist/make.js.map +1 -1
- package/dist/templates/agents.d.ts.map +1 -1
- package/dist/templates/agents.js +30 -0
- package/dist/templates/agents.js.map +1 -1
- package/dist/templates/base.d.ts.map +1 -1
- package/dist/templates/base.js +30 -0
- package/dist/templates/base.js.map +1 -1
- package/package.json +5 -3
- package/skills/app-structure/SKILL.md +136 -0
- package/src/config.ts +24 -0
- package/src/inspect.ts +12 -8
- package/src/lint.ts +10 -9
- package/src/make.ts +1 -6
- package/src/templates/agents.ts +31 -0
- package/src/templates/base.ts +34 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/templates/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/templates/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAiHrD;AAeD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CASrD"}
|
package/dist/templates/agents.js
CHANGED
|
@@ -19,6 +19,10 @@ export function agentsMd(ctx) {
|
|
|
19
19
|
const typecheck = ctx.packageManager === "npm"
|
|
20
20
|
? "npm run typecheck"
|
|
21
21
|
: `${ctx.packageManager} run typecheck`;
|
|
22
|
+
const intent = intentRunner(ctx);
|
|
23
|
+
const specificSkills = ctx.api
|
|
24
|
+
? "`@beignet/next#routes-server` or `@beignet/cli#app-structure`"
|
|
25
|
+
: "`@beignet/next#routes-server`, `@beignet/react-query#client`, or `@beignet/cli#app-structure`";
|
|
22
26
|
return `# ${ctx.name} — agent guide
|
|
23
27
|
|
|
24
28
|
This is a Beignet contract-first app. Full framework docs live at
|
|
@@ -70,6 +74,20 @@ ${typecheck}
|
|
|
70
74
|
\`${lint}\` runs Biome's code lint. Use \`${format}\` to apply formatting.
|
|
71
75
|
\`${cli} lint\` is Beignet's dependency-direction lint.
|
|
72
76
|
|
|
77
|
+
## Package skills
|
|
78
|
+
|
|
79
|
+
This app trusts Beignet's package-shipped agent skills through
|
|
80
|
+
\`package.json#intent.skills\`. Before substantial Beignet changes, run:
|
|
81
|
+
|
|
82
|
+
\`\`\`bash
|
|
83
|
+
${intent} list
|
|
84
|
+
${intent} load @beignet/core#app-architecture
|
|
85
|
+
\`\`\`
|
|
86
|
+
|
|
87
|
+
Load more specific skills when they match the task, for example ${specificSkills}.
|
|
88
|
+
Run \`${intent} install\` if this repository does not yet have Intent's managed
|
|
89
|
+
skill-loading block.
|
|
90
|
+
|
|
73
91
|
## Placement rules
|
|
74
92
|
|
|
75
93
|
- Feature artifacts live under \`features/<feature>/\`, with tests in
|
|
@@ -96,6 +114,18 @@ structured tools named exactly: \`routes\`, \`doctor\`, \`doctor_fix\`,
|
|
|
96
114
|
command from the app root; use \`${cli} mcp\` only for terminal debugging.
|
|
97
115
|
`;
|
|
98
116
|
}
|
|
117
|
+
function intentRunner(ctx) {
|
|
118
|
+
switch (ctx.packageManager) {
|
|
119
|
+
case "npm":
|
|
120
|
+
return "npx @tanstack/intent@latest";
|
|
121
|
+
case "pnpm":
|
|
122
|
+
return "pnpm dlx @tanstack/intent@latest";
|
|
123
|
+
case "yarn":
|
|
124
|
+
return "yarn dlx @tanstack/intent@latest";
|
|
125
|
+
default:
|
|
126
|
+
return "bunx @tanstack/intent@latest";
|
|
127
|
+
}
|
|
128
|
+
}
|
|
99
129
|
/**
|
|
100
130
|
* .mcp.json registers the `beignet mcp` stdio server for MCP-aware clients.
|
|
101
131
|
* The runner must not print banners on stdout, which corrupts JSON-RPC, so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/templates/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAoB;IAC3C,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,IAAI,GACR,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,WAAW,CAAC;IACvC,MAAM,IAAI,GACR,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,WAAW,CAAC;IACvC,MAAM,MAAM,GACV,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,aAAa,CAAC;IACzC,MAAM,SAAS,GACb,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/templates/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAoB;IAC3C,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,IAAI,GACR,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,WAAW,CAAC;IACvC,MAAM,IAAI,GACR,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,WAAW,CAAC;IACvC,MAAM,MAAM,GACV,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,aAAa,CAAC;IACzC,MAAM,SAAS,GACb,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,gBAAgB,CAAC;IAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG;QAC5B,CAAC,CAAC,+DAA+D;QACjE,CAAC,CAAC,+FAA+F,CAAC;IAEpG,OAAO,KAAK,GAAG,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;mCAsBa,GAAG,oBAAoB,GAAG;IACzD,GAAG,uBAAuB,GAAG,mBAAmB,GAAG;IACnD,GAAG;IACH,GAAG,2CAA2C,GAAG;;;;;;IAMjD,GAAG;kDAC2C,GAAG;;IAEjD,GAAG,yBAAyB,GAAG;;;;;;;EAOjC,IAAI;EACJ,GAAG;EACH,GAAG;EACH,IAAI;EACJ,SAAS;;;IAGP,IAAI,oCAAoC,MAAM;IAC9C,GAAG;;;;;;;;EAQL,MAAM;EACN,MAAM;;;kEAG0D,cAAc;QACxE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;mCA0BqB,GAAG;CACrC,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CAAC,GAAoB;IACxC,QAAQ,GAAG,CAAC,cAAc,EAAE,CAAC;QAC3B,KAAK,KAAK;YACR,OAAO,6BAA6B,CAAC;QACvC,KAAK,MAAM;YACT,OAAO,kCAAkC,CAAC;QAC5C,KAAK,MAAM;YACT,OAAO,kCAAkC,CAAC;QAC5C;YACE,OAAO,8BAA8B,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,IAAqB;IAC3C,OAAO,IAAI,CAAC;QACV,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,OAAO,EAAE,6BAA6B;gBACtC,IAAI,EAAE,CAAC,KAAK,CAAC;aACd;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/templates/base.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAGrB,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/templates/base.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAGrB,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA0GxD;AAkBD,wBAAgB,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAkMnD;AAeD,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAiD5D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA+DvD;AAED,QAAA,MAAM,KAAK;;;;;;CAqFV,CAAC;AAEF,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC"}
|
package/dist/templates/base.js
CHANGED
|
@@ -91,10 +91,20 @@ export function packageJson(ctx) {
|
|
|
91
91
|
private: true,
|
|
92
92
|
type: "module",
|
|
93
93
|
scripts,
|
|
94
|
+
intent: {
|
|
95
|
+
skills: intentSkillPackages(ctx),
|
|
96
|
+
},
|
|
94
97
|
dependencies: sortRecord(dependencies),
|
|
95
98
|
devDependencies: sortRecord(devDependencies),
|
|
96
99
|
});
|
|
97
100
|
}
|
|
101
|
+
function intentSkillPackages(ctx) {
|
|
102
|
+
const packages = ["@beignet/core", "@beignet/next", "@beignet/cli"];
|
|
103
|
+
if (!ctx.api) {
|
|
104
|
+
packages.push("@beignet/react-query");
|
|
105
|
+
}
|
|
106
|
+
return packages;
|
|
107
|
+
}
|
|
98
108
|
function sortRecord(record) {
|
|
99
109
|
return Object.fromEntries(Object.entries(record).sort(([left], [right]) => left.localeCompare(right)));
|
|
100
110
|
}
|
|
@@ -194,6 +204,14 @@ ${typecheck}
|
|
|
194
204
|
\`routes\` shows the contracts Beignet can inspect. \`${cli} lint\` checks dependency direction. \`doctor\` catches route, OpenAPI, and resource drift.
|
|
195
205
|
\`${lint}\` runs Biome over the starter; use \`${format}\` to apply formatting.
|
|
196
206
|
${testingNotes}
|
|
207
|
+
## Coding agents
|
|
208
|
+
|
|
209
|
+
This app trusts Beignet package skills through \`package.json#intent.skills\`.
|
|
210
|
+
Run \`${intentRunner(ctx)} install\` to add Intent's managed skill-loading block
|
|
211
|
+
to your agent config, then load matching package skills before substantial
|
|
212
|
+
Beignet changes. The generated \`AGENTS.md\` and \`CLAUDE.md\` stay short and
|
|
213
|
+
point agents at app-local conventions, generators, validation, and MCP tools.
|
|
214
|
+
|
|
197
215
|
## Build for production
|
|
198
216
|
|
|
199
217
|
\`\`\`bash
|
|
@@ -263,6 +281,18 @@ ${shellMap}
|
|
|
263
281
|
- Review the starter authorization policy before exposing user-owned data.
|
|
264
282
|
${ctx.integrations.length > 0 ? "\nSee `docs/integrations.md` for setup notes.\n" : ""}`;
|
|
265
283
|
}
|
|
284
|
+
function intentRunner(ctx) {
|
|
285
|
+
switch (ctx.packageManager) {
|
|
286
|
+
case "npm":
|
|
287
|
+
return "npx @tanstack/intent@latest";
|
|
288
|
+
case "pnpm":
|
|
289
|
+
return "pnpm dlx @tanstack/intent@latest";
|
|
290
|
+
case "yarn":
|
|
291
|
+
return "yarn dlx @tanstack/intent@latest";
|
|
292
|
+
default:
|
|
293
|
+
return "bunx @tanstack/intent@latest";
|
|
294
|
+
}
|
|
295
|
+
}
|
|
266
296
|
export function integrationsDoc(ctx) {
|
|
267
297
|
const lines = [
|
|
268
298
|
"# Integrations",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/templates/base.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/templates/base.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beignet/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.21",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "CLI for creating and maintaining Beignet apps.",
|
|
6
6
|
"main": "./dist/lib.js",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"!src/**/*.test.ts",
|
|
25
25
|
"!src/**/*.test.tsx",
|
|
26
26
|
"!src/**/*.test-d.ts",
|
|
27
|
+
"skills",
|
|
27
28
|
"README.md",
|
|
28
29
|
"CHANGELOG.md"
|
|
29
30
|
],
|
|
@@ -42,7 +43,8 @@
|
|
|
42
43
|
"typescript",
|
|
43
44
|
"cli",
|
|
44
45
|
"scaffold",
|
|
45
|
-
"nextjs"
|
|
46
|
+
"nextjs",
|
|
47
|
+
"tanstack-intent"
|
|
46
48
|
],
|
|
47
49
|
"license": "MIT",
|
|
48
50
|
"repository": {
|
|
@@ -66,7 +68,7 @@
|
|
|
66
68
|
"typescript": "^5.3.0"
|
|
67
69
|
},
|
|
68
70
|
"dependencies": {
|
|
69
|
-
"@beignet/core": "^0.0.
|
|
71
|
+
"@beignet/core": "^0.0.21",
|
|
70
72
|
"@clack/prompts": "^1.5.1",
|
|
71
73
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
72
74
|
"@stricli/core": "^1.2.7",
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: app-structure
|
|
3
|
+
description: "Maintain Beignet app structure with @beignet/cli: create starter output, make generators, beignet.config paths, routes inspection, lint dependency boundaries, doctor drift checks, MCP tools, generated AGENTS.md guidance, and generated-app validation. Use when scaffolding, generating, fixing, or reviewing a Beignet app's structure."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Beignet CLI App Structure
|
|
7
|
+
|
|
8
|
+
Use this skill when working with Beignet apps through `@beignet/cli`. Prefer
|
|
9
|
+
generators and validation commands before hand-editing framework wiring.
|
|
10
|
+
|
|
11
|
+
## Starter Sources
|
|
12
|
+
|
|
13
|
+
Generated apps include:
|
|
14
|
+
|
|
15
|
+
- `AGENTS.md` and `CLAUDE.md` for local agent guidance
|
|
16
|
+
- `.mcp.json` for `beignet mcp`
|
|
17
|
+
- `beignet.config.*` only when paths are moved
|
|
18
|
+
- canonical folders for app routes, client setup, features, infra, ports,
|
|
19
|
+
server composition, and tests
|
|
20
|
+
|
|
21
|
+
Do not copy package skills into generated apps. Generated apps should load
|
|
22
|
+
package-shipped skills from installed `@beignet/*` dependencies when Intent is
|
|
23
|
+
available.
|
|
24
|
+
|
|
25
|
+
## Prefer Generators
|
|
26
|
+
|
|
27
|
+
Use:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
beignet make feature projects
|
|
31
|
+
beignet make resource projects/project --auth --tenant
|
|
32
|
+
beignet make job billing/sync
|
|
33
|
+
beignet make schedule billing/nightly --cron "0 2 * * *"
|
|
34
|
+
beignet make task admin/backfill
|
|
35
|
+
beignet make upload issues/attachment
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Generators place files under the owning feature, update central registries
|
|
39
|
+
when possible, and keep `doctor` clean.
|
|
40
|
+
|
|
41
|
+
## Explicit Registration
|
|
42
|
+
|
|
43
|
+
Hand-written files do not run until registered:
|
|
44
|
+
|
|
45
|
+
- feature route groups -> `server/routes.ts`
|
|
46
|
+
- schedules -> `server/schedules.ts`
|
|
47
|
+
- tasks -> `server/tasks.ts`
|
|
48
|
+
- outbox events/jobs -> `server/outbox.ts`
|
|
49
|
+
- listeners -> app listener registration
|
|
50
|
+
|
|
51
|
+
Run `beignet doctor --strict` after hand edits. Use `beignet doctor --fix` for
|
|
52
|
+
low-risk registry repair; listener drift remains manual.
|
|
53
|
+
|
|
54
|
+
## Path Config
|
|
55
|
+
|
|
56
|
+
`beignet.config.*` moves paths; it does not change architecture.
|
|
57
|
+
|
|
58
|
+
Common `src/` apps configure:
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
export default defineConfig({
|
|
62
|
+
framework: "next",
|
|
63
|
+
paths: {
|
|
64
|
+
appContext: "src/app-context.ts",
|
|
65
|
+
features: "src/features",
|
|
66
|
+
contracts: "src/features",
|
|
67
|
+
routes: "src/app/api",
|
|
68
|
+
server: "src/server/index.ts",
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
When `appContext` moves under `src/`, root client setup follows that source
|
|
74
|
+
root at `src/client/index.ts`.
|
|
75
|
+
|
|
76
|
+
## Lint And Doctor
|
|
77
|
+
|
|
78
|
+
`beignet lint` enforces dependency direction:
|
|
79
|
+
|
|
80
|
+
- domain and use cases must not import infra, routes, server, providers, React,
|
|
81
|
+
or client modules
|
|
82
|
+
- client-reachable modules must not import server-only code
|
|
83
|
+
- routes may import contracts, use cases, policies, and app context types, but
|
|
84
|
+
not concrete infra
|
|
85
|
+
|
|
86
|
+
`beignet doctor --strict` reports structure and registration drift:
|
|
87
|
+
|
|
88
|
+
- missing route group registration
|
|
89
|
+
- stale OpenAPI contract arrays
|
|
90
|
+
- provider packages installed but not registered
|
|
91
|
+
- provider env drift
|
|
92
|
+
- route-owned error catalog drift
|
|
93
|
+
- misplaced workflow artifacts
|
|
94
|
+
|
|
95
|
+
Fix structure or config instead of suppressing diagnostics.
|
|
96
|
+
|
|
97
|
+
## MCP Tools
|
|
98
|
+
|
|
99
|
+
Generated apps register:
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"mcpServers": {
|
|
104
|
+
"beignet": {
|
|
105
|
+
"command": "./node_modules/.bin/beignet",
|
|
106
|
+
"args": ["mcp"]
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
The MCP server exposes `routes`, `doctor`, `doctor_fix`, `lint`, and `make`.
|
|
113
|
+
Run it from the app root so the local CLI version is used.
|
|
114
|
+
|
|
115
|
+
## Validation Loop
|
|
116
|
+
|
|
117
|
+
After structural changes:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
beignet routes
|
|
121
|
+
beignet lint
|
|
122
|
+
beignet doctor --strict
|
|
123
|
+
bun run test
|
|
124
|
+
bun run typecheck
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
For generated app template changes inside the Beignet monorepo, also run:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
cd packages/cli
|
|
131
|
+
bun run test
|
|
132
|
+
bun run lint
|
|
133
|
+
bun run build
|
|
134
|
+
cd ../..
|
|
135
|
+
bun run check:generated-app
|
|
136
|
+
```
|
package/src/config.ts
CHANGED
|
@@ -176,6 +176,30 @@ export function directoryPath(filePath: string): string {
|
|
|
176
176
|
return normalizePath(filePath).replaceAll(/^\/+|\/+$/g, "");
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
+
/**
|
|
180
|
+
* Infer the app source root from app-context.ts placement.
|
|
181
|
+
*
|
|
182
|
+
* Default apps put app-context.ts at the project root, while src-layout apps
|
|
183
|
+
* configure it as src/app-context.ts. Client setup follows that same root.
|
|
184
|
+
*/
|
|
185
|
+
export function appRootPath(config: ResolvedBeignetConfig): string {
|
|
186
|
+
const appRoot = directoryPath(path.posix.dirname(config.paths.appContext));
|
|
187
|
+
return appRoot === "." ? "" : appRoot;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export function clientDirPath(config: ResolvedBeignetConfig): string {
|
|
191
|
+
const appRoot = appRootPath(config);
|
|
192
|
+
return path.posix.join(appRoot, "client");
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export function clientIndexPath(config: ResolvedBeignetConfig): string {
|
|
196
|
+
return path.posix.join(clientDirPath(config), "index.ts");
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export function clientFormsPath(config: ResolvedBeignetConfig): string {
|
|
200
|
+
return path.posix.join(clientDirPath(config), "forms.ts");
|
|
201
|
+
}
|
|
202
|
+
|
|
179
203
|
const configFileNames = [
|
|
180
204
|
"beignet.config.ts",
|
|
181
205
|
"beignet.config.json",
|
package/src/inspect.ts
CHANGED
|
@@ -8,6 +8,9 @@ import {
|
|
|
8
8
|
import { createPainter } from "./ansi.js";
|
|
9
9
|
import {
|
|
10
10
|
type BeignetConfig,
|
|
11
|
+
clientDirPath,
|
|
12
|
+
clientFormsPath,
|
|
13
|
+
clientIndexPath,
|
|
11
14
|
directoryPath,
|
|
12
15
|
loadBeignetConfig,
|
|
13
16
|
normalizePath,
|
|
@@ -1362,13 +1365,16 @@ async function inspectCanonicalConformance(
|
|
|
1362
1365
|
const packageJson = await readPackageJson(targetDir, files);
|
|
1363
1366
|
const installedPackages = installedPackageNames(packageJson);
|
|
1364
1367
|
const featuresPath = directoryPath(config.paths.features);
|
|
1368
|
+
const clientDir = clientDirPath(config);
|
|
1369
|
+
const clientIndex = clientIndexPath(config);
|
|
1370
|
+
const clientForms = clientFormsPath(config);
|
|
1365
1371
|
const hasClientSurface =
|
|
1366
1372
|
files.some(
|
|
1367
1373
|
(file) =>
|
|
1368
1374
|
file.startsWith(`${featuresPath}/`) &&
|
|
1369
1375
|
(file.includes("/components/") || file.includes("/client/")),
|
|
1370
1376
|
) ||
|
|
1371
|
-
files.some((file) => file.startsWith(
|
|
1377
|
+
files.some((file) => file.startsWith(`${clientDir}/`)) ||
|
|
1372
1378
|
[
|
|
1373
1379
|
"@beignet/react-query",
|
|
1374
1380
|
"@beignet/react-hook-form",
|
|
@@ -1406,20 +1412,18 @@ async function inspectCanonicalConformance(
|
|
|
1406
1412
|
|
|
1407
1413
|
if (hasClientSurface) {
|
|
1408
1414
|
requiredFiles.push({
|
|
1409
|
-
file:
|
|
1410
|
-
reason:
|
|
1411
|
-
"client/index.ts should own the typed client and frontend adapter setup.",
|
|
1415
|
+
file: clientIndex,
|
|
1416
|
+
reason: `${clientIndex} should own the typed client and frontend adapter setup.`,
|
|
1412
1417
|
});
|
|
1413
1418
|
}
|
|
1414
1419
|
|
|
1415
1420
|
if (
|
|
1416
1421
|
installedPackages.has("@beignet/react-hook-form") ||
|
|
1417
|
-
files.includes(
|
|
1422
|
+
files.includes(clientForms)
|
|
1418
1423
|
) {
|
|
1419
1424
|
requiredFiles.push({
|
|
1420
|
-
file:
|
|
1421
|
-
reason:
|
|
1422
|
-
"client/forms.ts should own React Hook Form adapter setup when form helpers are used.",
|
|
1425
|
+
file: clientForms,
|
|
1426
|
+
reason: `${clientForms} should own React Hook Form adapter setup when form helpers are used.`,
|
|
1423
1427
|
});
|
|
1424
1428
|
}
|
|
1425
1429
|
|
package/src/lint.ts
CHANGED
|
@@ -3,6 +3,7 @@ import path from "node:path";
|
|
|
3
3
|
import { createPainter } from "./ansi.js";
|
|
4
4
|
import {
|
|
5
5
|
type BeignetConfig,
|
|
6
|
+
clientDirPath,
|
|
6
7
|
directoryPath,
|
|
7
8
|
loadBeignetConfig,
|
|
8
9
|
normalizePath,
|
|
@@ -946,7 +947,7 @@ function runtimeBoundaryRootKind(
|
|
|
946
947
|
if (layer === "contract") return "contract";
|
|
947
948
|
if (layer === "client") return "client";
|
|
948
949
|
if (hasUseClientDirective(source)) return "client";
|
|
949
|
-
if (isGeneratedClientAdapter(file)) return "client";
|
|
950
|
+
if (isGeneratedClientAdapter(file, config)) return "client";
|
|
950
951
|
return undefined;
|
|
951
952
|
}
|
|
952
953
|
|
|
@@ -960,13 +961,13 @@ function hasUseClientDirective(source: string): boolean {
|
|
|
960
961
|
);
|
|
961
962
|
}
|
|
962
963
|
|
|
963
|
-
function isGeneratedClientAdapter(
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
file ===
|
|
964
|
+
function isGeneratedClientAdapter(
|
|
965
|
+
file: string,
|
|
966
|
+
config: ResolvedBeignetConfig,
|
|
967
|
+
): boolean {
|
|
968
|
+
const clientDir = clientDirPath(config);
|
|
969
|
+
return ["index.ts", "api-client.ts", "rhf.ts", "rq.ts", "uploads.ts"].some(
|
|
970
|
+
(adapterFile) => file === path.posix.join(clientDir, adapterFile),
|
|
970
971
|
);
|
|
971
972
|
}
|
|
972
973
|
|
|
@@ -1174,7 +1175,7 @@ function classifyPath(
|
|
|
1174
1175
|
return "infra";
|
|
1175
1176
|
}
|
|
1176
1177
|
if (isUnder(normalizedPath, portsDir)) return "port";
|
|
1177
|
-
if (isUnder(normalizedPath,
|
|
1178
|
+
if (isUnder(normalizedPath, clientDirPath(config))) return "client";
|
|
1178
1179
|
if (isUnder(normalizedPath, "components")) return "component";
|
|
1179
1180
|
if (isUnder(normalizedPath, legacySharedDomainPath(config))) return "domain";
|
|
1180
1181
|
if (isUnder(normalizedPath, "lib")) return "lib";
|
package/src/make.ts
CHANGED
|
@@ -4,6 +4,7 @@ import path from "node:path";
|
|
|
4
4
|
import type { MakeFeatureAddon } from "./choices.js";
|
|
5
5
|
import {
|
|
6
6
|
type BeignetConfig,
|
|
7
|
+
clientIndexPath,
|
|
7
8
|
directoryPath,
|
|
8
9
|
loadBeignetConfig,
|
|
9
10
|
normalizePath,
|
|
@@ -5842,12 +5843,6 @@ function featureUiIndexFilePath(
|
|
|
5842
5843
|
return path.join(featureUiDir(names, config), "index.ts");
|
|
5843
5844
|
}
|
|
5844
5845
|
|
|
5845
|
-
function clientIndexPath(config: ResolvedBeignetConfig): string {
|
|
5846
|
-
const appRoot = path.posix.dirname(config.paths.appContext);
|
|
5847
|
-
|
|
5848
|
-
return path.join(appRoot === "." ? "" : appRoot, "client/index.ts");
|
|
5849
|
-
}
|
|
5850
|
-
|
|
5851
5846
|
function usesFeatureOwnedContracts(config: ResolvedBeignetConfig): boolean {
|
|
5852
5847
|
return (
|
|
5853
5848
|
directoryPath(config.paths.contracts) ===
|
package/src/templates/agents.ts
CHANGED
|
@@ -24,6 +24,10 @@ export function agentsMd(ctx: TemplateContext): string {
|
|
|
24
24
|
ctx.packageManager === "npm"
|
|
25
25
|
? "npm run typecheck"
|
|
26
26
|
: `${ctx.packageManager} run typecheck`;
|
|
27
|
+
const intent = intentRunner(ctx);
|
|
28
|
+
const specificSkills = ctx.api
|
|
29
|
+
? "`@beignet/next#routes-server` or `@beignet/cli#app-structure`"
|
|
30
|
+
: "`@beignet/next#routes-server`, `@beignet/react-query#client`, or `@beignet/cli#app-structure`";
|
|
27
31
|
|
|
28
32
|
return `# ${ctx.name} — agent guide
|
|
29
33
|
|
|
@@ -76,6 +80,20 @@ ${typecheck}
|
|
|
76
80
|
\`${lint}\` runs Biome's code lint. Use \`${format}\` to apply formatting.
|
|
77
81
|
\`${cli} lint\` is Beignet's dependency-direction lint.
|
|
78
82
|
|
|
83
|
+
## Package skills
|
|
84
|
+
|
|
85
|
+
This app trusts Beignet's package-shipped agent skills through
|
|
86
|
+
\`package.json#intent.skills\`. Before substantial Beignet changes, run:
|
|
87
|
+
|
|
88
|
+
\`\`\`bash
|
|
89
|
+
${intent} list
|
|
90
|
+
${intent} load @beignet/core#app-architecture
|
|
91
|
+
\`\`\`
|
|
92
|
+
|
|
93
|
+
Load more specific skills when they match the task, for example ${specificSkills}.
|
|
94
|
+
Run \`${intent} install\` if this repository does not yet have Intent's managed
|
|
95
|
+
skill-loading block.
|
|
96
|
+
|
|
79
97
|
## Placement rules
|
|
80
98
|
|
|
81
99
|
- Feature artifacts live under \`features/<feature>/\`, with tests in
|
|
@@ -103,6 +121,19 @@ command from the app root; use \`${cli} mcp\` only for terminal debugging.
|
|
|
103
121
|
`;
|
|
104
122
|
}
|
|
105
123
|
|
|
124
|
+
function intentRunner(ctx: TemplateContext): string {
|
|
125
|
+
switch (ctx.packageManager) {
|
|
126
|
+
case "npm":
|
|
127
|
+
return "npx @tanstack/intent@latest";
|
|
128
|
+
case "pnpm":
|
|
129
|
+
return "pnpm dlx @tanstack/intent@latest";
|
|
130
|
+
case "yarn":
|
|
131
|
+
return "yarn dlx @tanstack/intent@latest";
|
|
132
|
+
default:
|
|
133
|
+
return "bunx @tanstack/intent@latest";
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
106
137
|
/**
|
|
107
138
|
* .mcp.json registers the `beignet mcp` stdio server for MCP-aware clients.
|
|
108
139
|
* The runner must not print banners on stdout, which corrupts JSON-RPC, so
|
package/src/templates/base.ts
CHANGED
|
@@ -110,11 +110,24 @@ export function packageJson(ctx: TemplateContext): string {
|
|
|
110
110
|
private: true,
|
|
111
111
|
type: "module",
|
|
112
112
|
scripts,
|
|
113
|
+
intent: {
|
|
114
|
+
skills: intentSkillPackages(ctx),
|
|
115
|
+
},
|
|
113
116
|
dependencies: sortRecord(dependencies),
|
|
114
117
|
devDependencies: sortRecord(devDependencies),
|
|
115
118
|
});
|
|
116
119
|
}
|
|
117
120
|
|
|
121
|
+
function intentSkillPackages(ctx: TemplateContext): string[] {
|
|
122
|
+
const packages = ["@beignet/core", "@beignet/next", "@beignet/cli"];
|
|
123
|
+
|
|
124
|
+
if (!ctx.api) {
|
|
125
|
+
packages.push("@beignet/react-query");
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return packages;
|
|
129
|
+
}
|
|
130
|
+
|
|
118
131
|
function sortRecord(record: Record<string, string>): Record<string, string> {
|
|
119
132
|
return Object.fromEntries(
|
|
120
133
|
Object.entries(record).sort(([left], [right]) => left.localeCompare(right)),
|
|
@@ -231,6 +244,14 @@ ${typecheck}
|
|
|
231
244
|
\`routes\` shows the contracts Beignet can inspect. \`${cli} lint\` checks dependency direction. \`doctor\` catches route, OpenAPI, and resource drift.
|
|
232
245
|
\`${lint}\` runs Biome over the starter; use \`${format}\` to apply formatting.
|
|
233
246
|
${testingNotes}
|
|
247
|
+
## Coding agents
|
|
248
|
+
|
|
249
|
+
This app trusts Beignet package skills through \`package.json#intent.skills\`.
|
|
250
|
+
Run \`${intentRunner(ctx)} install\` to add Intent's managed skill-loading block
|
|
251
|
+
to your agent config, then load matching package skills before substantial
|
|
252
|
+
Beignet changes. The generated \`AGENTS.md\` and \`CLAUDE.md\` stay short and
|
|
253
|
+
point agents at app-local conventions, generators, validation, and MCP tools.
|
|
254
|
+
|
|
234
255
|
## Build for production
|
|
235
256
|
|
|
236
257
|
\`\`\`bash
|
|
@@ -309,6 +330,19 @@ ${shellMap}
|
|
|
309
330
|
${ctx.integrations.length > 0 ? "\nSee `docs/integrations.md` for setup notes.\n" : ""}`;
|
|
310
331
|
}
|
|
311
332
|
|
|
333
|
+
function intentRunner(ctx: TemplateContext): string {
|
|
334
|
+
switch (ctx.packageManager) {
|
|
335
|
+
case "npm":
|
|
336
|
+
return "npx @tanstack/intent@latest";
|
|
337
|
+
case "pnpm":
|
|
338
|
+
return "pnpm dlx @tanstack/intent@latest";
|
|
339
|
+
case "yarn":
|
|
340
|
+
return "yarn dlx @tanstack/intent@latest";
|
|
341
|
+
default:
|
|
342
|
+
return "bunx @tanstack/intent@latest";
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
312
346
|
export function integrationsDoc(ctx: TemplateContext): string {
|
|
313
347
|
const lines = [
|
|
314
348
|
"# Integrations",
|