create-pyric 0.1.0-alpha.19 → 0.1.0-alpha.20
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/template-nextjs.js +7 -7
- package/dist/template-nextjs.js.map +1 -1
- package/dist/templates.d.ts +1 -1
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +21 -23
- package/dist/templates.js.map +1 -1
- package/package.json +2 -2
- package/src/template-nextjs.ts +7 -7
- package/src/templates.ts +21 -23
- package/templates/chat/vite.config.ts +1 -1
package/dist/template-nextjs.js
CHANGED
|
@@ -19,7 +19,7 @@ const nextConfig = {
|
|
|
19
19
|
],
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
// Under development mode (\`pyric
|
|
22
|
+
// Under development mode (\`pyric sandbox -- next dev\`), withPyric maps client-side
|
|
23
23
|
// firebase/* SDK imports to Pyric sandbox adapters via Webpack/Turbopack aliases,
|
|
24
24
|
// externalizes server-side firebase and firebase-admin imports for Node loader
|
|
25
25
|
// hooks (@pyric/cli/register), and proxies /__pyric/* bridge traffic.
|
|
@@ -56,7 +56,7 @@ const NEXTJS_TSCONFIG_JSON = `{
|
|
|
56
56
|
}
|
|
57
57
|
`;
|
|
58
58
|
const NEXTJS_ENV_EXAMPLE = `# Your real Firebase application configuration from the Firebase Console.
|
|
59
|
-
# UNUSED in local development under \`pyric
|
|
59
|
+
# UNUSED in local development under \`pyric sandbox\` (the Pyric sandbox stands in);
|
|
60
60
|
# USED by \`next build\` for production cloud builds. Next.js exposes environment
|
|
61
61
|
# variables prefixed with \`NEXT_PUBLIC_\` to client-side code in the browser.
|
|
62
62
|
NEXT_PUBLIC_FIREBASE_API_KEY=
|
|
@@ -458,18 +458,18 @@ function buildReadme(projectName) {
|
|
|
458
458
|
return `# ${projectName}
|
|
459
459
|
|
|
460
460
|
A Firebase web application built with Next.js and wrapped with \`@pyric/cli/next\` (\`withPyric\`).
|
|
461
|
-
In development, the application runs entirely on Pyric's local sandbox
|
|
461
|
+
In development, the application runs entirely on Pyric's local sandbox and requires
|
|
462
462
|
zero Firebase projects, service account keys, or cloud emulators.
|
|
463
463
|
|
|
464
|
-
- **Develop:** \`npm run dev\` or \`bun run dev\`
|
|
465
|
-
- **Build for production:** \`npm run build\` or \`bun run build\`
|
|
466
|
-
- **Start:** \`npm start\` or \`bun run start\`
|
|
464
|
+
- **Develop:** \`npm run dev\` or \`bun run dev\` executes \`pyric sandbox -- next dev\`. The \`withPyric\` wrapper substitutes client SDK imports with local sandbox mirrors via Webpack and Turbopack aliases, intercepts server-side API requests via \`@pyric/cli/register\`, and proxies WebSocket bridge traffic automatically.
|
|
465
|
+
- **Build for production:** \`npm run build\` or \`bun run build\` executes \`next build\`. Production mode makes \`withPyric\` an identity passthrough and compiles the standard Firebase and Firebase Admin SDKs without sandbox code.
|
|
466
|
+
- **Start:** \`npm start\` or \`bun run start\` serves your built Next.js production server.
|
|
467
467
|
- **Deploy:** \`npx firebase-tools deploy\` (via Firebase Web Frameworks) after production build, or deploy standard built artifacts directly to Vercel and cloud compute platforms.
|
|
468
468
|
`;
|
|
469
469
|
}
|
|
470
470
|
export const NEXTJS_TEMPLATE = {
|
|
471
471
|
scripts: {
|
|
472
|
-
dev: 'pyric
|
|
472
|
+
dev: 'pyric sandbox -- next dev',
|
|
473
473
|
'dev:direct': 'next dev',
|
|
474
474
|
build: 'next build',
|
|
475
475
|
start: 'next start',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-nextjs.js","sourceRoot":"","sources":["../src/template-nextjs.ts"],"names":[],"mappings":"AAKA,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BzB,CAAC;AAEF,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B5B,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;;;;;;;;CAU1B,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCxB,CAAC;AAEF,MAAM,oBAAoB,GAAG;;;;;;CAM5B,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;;CAIhC,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;CAoB9B,CAAC;AAEF,SAAS,eAAe,CAAC,WAAmB;IAC1C,OAAO;;;;YAIG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;CAwBtB,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DR,CAAC;AACF,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB;IACxC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAgLG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDtB,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,WAAmB;IACtC,OAAO,KAAK,WAAW;;;;;;;;;;CAUxB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAqB;IAC/C,OAAO,EAAE;QACP,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"template-nextjs.js","sourceRoot":"","sources":["../src/template-nextjs.ts"],"names":[],"mappings":"AAKA,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BzB,CAAC;AAEF,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B5B,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;;;;;;;;CAU1B,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCxB,CAAC;AAEF,MAAM,oBAAoB,GAAG;;;;;;CAM5B,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;;CAIhC,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;CAoB9B,CAAC;AAEF,SAAS,eAAe,CAAC,WAAmB;IAC1C,OAAO;;;;YAIG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;CAwBtB,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DR,CAAC;AACF,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB;IACxC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAgLG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDtB,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,WAAmB;IACtC,OAAO,KAAK,WAAW;;;;;;;;;;CAUxB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAqB;IAC/C,OAAO,EAAE;QACP,GAAG,EAAE,2BAA2B;QAChC,YAAY,EAAE,UAAU;QACxB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,YAAY;KACpB;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,UAAU;QACpB,gBAAgB,EAAE,SAAS;QAC3B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,SAAS;KACvB;IACD,eAAe,EAAE;QACf,YAAY,EAAE,GAAG;QACjB,aAAa,EAAE,SAAS;QACxB,cAAc,EAAE,SAAS;QACzB,kBAAkB,EAAE,SAAS;QAC7B,UAAU,EAAE,QAAQ;KACrB;IACD,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,CAAC;IAC7D,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC;QACvB,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,EAAE;QACvD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,EAAE;QACxD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,kBAAkB,EAAE;QACrD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE;QACjD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,EAAE;QACxD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,wBAAwB,EAAE;QACrE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,sBAAsB,EAAE;QAC5D,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE;QACjD,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;QAC9D,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE;QAC1D,EAAE,IAAI,EAAE,6BAA6B,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE;KACxE;IACD,SAAS,EAAE;QACT,kCAAkC;QAClC,0DAA0D;QAC1D,yDAAyD;KAC1D;CACF,CAAC"}
|
package/dist/templates.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* toolchain, no graduation cliff — the sandbox↔Firebase swap is environmental
|
|
8
8
|
* (dev vs build), never a code edit (the design rationale section 9).
|
|
9
9
|
*
|
|
10
|
-
* `static` is the
|
|
10
|
+
* `static` is the no-bundler scaffold. A static app run by `pyric sandbox`
|
|
11
11
|
* runs against the in-page sandbox via a runtime import map. For pre-built /
|
|
12
12
|
* retrofit apps, or anyone who wants zero build step.
|
|
13
13
|
*
|
package/dist/templates.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,eAAO,MAAM,cAAc,sDAAuD,CAAC;AACnF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE;AAED,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;6EACyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,8EAA8E;IAC9E,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qDAAqD;IACrD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,4DAA4D;IAC5D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAMD,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAkBD,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG;IAC9E,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC,CAAC;IACF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB,CAkEA;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,eAAO,MAAM,cAAc,sDAAuD,CAAC;AACnF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE;AAED,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;6EACyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,8EAA8E;IAC9E,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qDAAqD;IACrD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,4DAA4D;IAC5D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAMD,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAkBD,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG;IAC9E,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC,CAAC;IACF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB,CAkEA;AA4mBD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAoG5D,CAAC"}
|
package/dist/templates.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* toolchain, no graduation cliff — the sandbox↔Firebase swap is environmental
|
|
8
8
|
* (dev vs build), never a code edit (the design rationale section 9).
|
|
9
9
|
*
|
|
10
|
-
* `static` is the
|
|
10
|
+
* `static` is the no-bundler scaffold. A static app run by `pyric sandbox`
|
|
11
11
|
* runs against the in-page sandbox via a runtime import map. For pre-built /
|
|
12
12
|
* retrofit apps, or anyone who wants zero build step.
|
|
13
13
|
*
|
|
@@ -126,7 +126,7 @@ const WEB_INDEX_HTML = (name) => `<!doctype html>
|
|
|
126
126
|
</body>
|
|
127
127
|
</html>
|
|
128
128
|
`;
|
|
129
|
-
const WEB_APP_JS = `// Canonical firebase/* imports. Under \`pyric
|
|
129
|
+
const WEB_APP_JS = `// Canonical firebase/* imports. Under \`pyric sandbox\` they are served by the
|
|
130
130
|
// in-page pyric sandbox (the config below is ignored); under any standard
|
|
131
131
|
// bundler/pipeline the same imports resolve to the real \`firebase\` package.
|
|
132
132
|
// Graduation changes where you run this code, never the code itself.
|
|
@@ -148,7 +148,7 @@ import {
|
|
|
148
148
|
|
|
149
149
|
const app = initializeApp({
|
|
150
150
|
// Graduation: your real web-app config from the Firebase console
|
|
151
|
-
// (see .env.example). Unused while developing under \`pyric
|
|
151
|
+
// (see .env.example). Unused while developing under \`pyric sandbox\`.
|
|
152
152
|
apiKey: 'demo',
|
|
153
153
|
authDomain: 'demo.firebaseapp.com',
|
|
154
154
|
projectId: 'demo',
|
|
@@ -201,7 +201,7 @@ onSnapshot(collection(db, 'posts'), (snap) => {
|
|
|
201
201
|
const WEB_RULES = `rules_version = '2';
|
|
202
202
|
service cloud.firestore {
|
|
203
203
|
match /databases/{database}/documents {
|
|
204
|
-
// Owner-based from line 1
|
|
204
|
+
// Owner-based from line 1. \`pyric sandbox\` hot-reloads this file and
|
|
205
205
|
// ships a sign-in helper, so safe rules are cheap to iterate. These
|
|
206
206
|
// deploy as-is.
|
|
207
207
|
match /posts/{postId} {
|
|
@@ -236,7 +236,7 @@ const WEB_SEED_JSON = `{
|
|
|
236
236
|
}
|
|
237
237
|
`;
|
|
238
238
|
const WEB_ENV_EXAMPLE = `# Graduation config — your real Firebase web app (console → project settings).
|
|
239
|
-
# Unused under \`pyric
|
|
239
|
+
# Unused under \`pyric sandbox\`; wire it into public/app.js (or a bundler env)
|
|
240
240
|
# when you deploy against the real backend.
|
|
241
241
|
FIREBASE_API_KEY=
|
|
242
242
|
FIREBASE_AUTH_DOMAIN=
|
|
@@ -255,14 +255,14 @@ sandbox — no Firebase project, credentials, or emulators.
|
|
|
255
255
|
popup sign-in via the helper dialog.
|
|
256
256
|
- **Agent:** \`bun run dev:agent\` — same, plus the MCP bridge on the dev-server
|
|
257
257
|
origin (\`/__pyric/mcp\`).
|
|
258
|
-
- **Persist (optional):** \`pyric
|
|
258
|
+
- **Persist (optional):** \`pyric sandbox --persist --seed seed.json\` keeps data and
|
|
259
259
|
test users survive reloads and restarts in \`.pyric/state/state.json\`
|
|
260
260
|
(plain JSON; gitignored). Promote lived state to a committable fixture
|
|
261
|
-
with \`pyric snapshot\`, then
|
|
261
|
+
with \`pyric snapshot\`, then load it again: \`pyric sandbox --seed pyric-state.json\`.
|
|
262
262
|
- **Graduate:** fill \`.env\` from the Firebase console and point the config in
|
|
263
263
|
\`public/app.js\` at it, then run \`npx firebase-tools deploy\`. Bare
|
|
264
264
|
\`firebase/*\` imports need a bundler
|
|
265
|
-
(e.g. \`vite build\`) or an import map in production
|
|
265
|
+
(e.g. \`vite build\`) or an import map in production. \`pyric sandbox\`
|
|
266
266
|
provides the map in dev.
|
|
267
267
|
|
|
268
268
|
The app code uses canonical \`firebase/*\` imports everywhere. Switching
|
|
@@ -378,18 +378,18 @@ npx plugins add davideast/pyric
|
|
|
378
378
|
Antigravity CLI and OpenCode use the standalone skill installer:
|
|
379
379
|
|
|
380
380
|
\`\`\`bash
|
|
381
|
-
npx skills add https://github.com/davideast/pyric/tree/main/pyric-plugin/skills/pyric
|
|
382
|
-
npx skills add https://github.com/davideast/pyric/tree/main/pyric-plugin/skills/pyric
|
|
381
|
+
npx skills add https://github.com/davideast/pyric/tree/main/pyric-plugin/skills/pyric --agent antigravity-cli
|
|
382
|
+
npx skills add https://github.com/davideast/pyric/tree/main/pyric-plugin/skills/pyric --agent opencode
|
|
383
383
|
\`\`\`
|
|
384
384
|
|
|
385
385
|
Then invoke the skill:
|
|
386
386
|
|
|
387
387
|
| Agent | Enter |
|
|
388
388
|
|---|---|
|
|
389
|
-
| Codex | \`$pyric
|
|
390
|
-
| Claude Code | \`/pyric:pyric
|
|
391
|
-
| Antigravity CLI | \`/pyric
|
|
392
|
-
| OpenCode | \`/pyric
|
|
389
|
+
| Codex | \`$pyric\` |
|
|
390
|
+
| Claude Code | \`/pyric:pyric\` |
|
|
391
|
+
| Antigravity CLI | \`/pyric\` |
|
|
392
|
+
| OpenCode | \`/pyric\` |
|
|
393
393
|
|
|
394
394
|
The skill starts the bridge and connects the agent's Pyric tools.
|
|
395
395
|
|
|
@@ -595,7 +595,7 @@ import { pyric } from '@pyric/cli/vite';
|
|
|
595
595
|
// sandbox and deploys + hot-reloads firestore.rules — no Firebase project,
|
|
596
596
|
// credentials, or emulators. \`vite build\` (mode production) ships the real
|
|
597
597
|
// firebase package; the swap never reaches the deployed artifact. For a
|
|
598
|
-
// self-contained sandbox preview you can serve under \`pyric
|
|
598
|
+
// self-contained sandbox preview you can serve under \`pyric sandbox\`, build with a
|
|
599
599
|
// non-production mode: \`vite build --mode development\` (see the \`build:sandbox\`
|
|
600
600
|
// script). That output is marked and can never be deployed.
|
|
601
601
|
export default defineConfig({
|
|
@@ -676,10 +676,8 @@ in-process sandbox — no Firebase project, credentials, or emulators.
|
|
|
676
676
|
> between the sandbox and real Firebase is \`vite dev\` vs \`vite build\`, never
|
|
677
677
|
> what you wrote.
|
|
678
678
|
|
|
679
|
-
The plugin is
|
|
680
|
-
|
|
681
|
-
later releases. For a pre-built / no-build app, use \`pyric init --template static\`
|
|
682
|
-
+ \`pyric dev\`.
|
|
679
|
+
The plugin is development-only. For a pre-built or no-build app, use
|
|
680
|
+
\`pyric init --template static\` and \`pyric sandbox\`.
|
|
683
681
|
`;
|
|
684
682
|
let chatAssets;
|
|
685
683
|
const getChatAssets = () => (chatAssets ??= loadAssetTemplate('chat'));
|
|
@@ -721,7 +719,7 @@ export const TEMPLATES = {
|
|
|
721
719
|
node: {
|
|
722
720
|
scripts: {
|
|
723
721
|
start: 'node --env-file-if-exists=.env --experimental-strip-types src/app.ts',
|
|
724
|
-
dev: 'pyric
|
|
722
|
+
dev: 'pyric sandbox --no-open -- node --env-file-if-exists=.env --experimental-strip-types src/app.ts',
|
|
725
723
|
bridge: 'pyric bridge',
|
|
726
724
|
},
|
|
727
725
|
dependencies: { firebase: '^12.12.0' },
|
|
@@ -739,13 +737,13 @@ export const TEMPLATES = {
|
|
|
739
737
|
],
|
|
740
738
|
nextSteps: ['bun install', 'bun run dev', 'bun start # production: real Firebase'],
|
|
741
739
|
},
|
|
742
|
-
// static
|
|
740
|
+
// static: the no-bundler scaffold run by `pyric sandbox`
|
|
743
741
|
// runs against the in-page sandbox via a runtime import map. For pre-built /
|
|
744
742
|
// retrofit apps, or anyone who wants zero build step.
|
|
745
743
|
static: {
|
|
746
744
|
scripts: {
|
|
747
|
-
dev: 'pyric
|
|
748
|
-
'dev:agent': 'pyric
|
|
745
|
+
dev: 'pyric sandbox --seed seed.json',
|
|
746
|
+
'dev:agent': 'pyric sandbox --bridge --seed seed.json',
|
|
749
747
|
},
|
|
750
748
|
dependencies: { firebase: '^12.12.0' },
|
|
751
749
|
devDependencies: { '@pyric/cli': '*' },
|
package/dist/templates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-pyric",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.20",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"homepage": "https://pyric.dev",
|
|
6
6
|
"repository": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"typecheck": "bun x tsc -p tsconfig.json --noEmit"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@types/bun": "
|
|
38
|
+
"@types/bun": "1.3.14",
|
|
39
39
|
"typescript": "^5.7.0"
|
|
40
40
|
},
|
|
41
41
|
"engines": {
|
package/src/template-nextjs.ts
CHANGED
|
@@ -24,7 +24,7 @@ const nextConfig = {
|
|
|
24
24
|
],
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
// Under development mode (\`pyric
|
|
27
|
+
// Under development mode (\`pyric sandbox -- next dev\`), withPyric maps client-side
|
|
28
28
|
// firebase/* SDK imports to Pyric sandbox adapters via Webpack/Turbopack aliases,
|
|
29
29
|
// externalizes server-side firebase and firebase-admin imports for Node loader
|
|
30
30
|
// hooks (@pyric/cli/register), and proxies /__pyric/* bridge traffic.
|
|
@@ -63,7 +63,7 @@ const NEXTJS_TSCONFIG_JSON = `{
|
|
|
63
63
|
`;
|
|
64
64
|
|
|
65
65
|
const NEXTJS_ENV_EXAMPLE = `# Your real Firebase application configuration from the Firebase Console.
|
|
66
|
-
# UNUSED in local development under \`pyric
|
|
66
|
+
# UNUSED in local development under \`pyric sandbox\` (the Pyric sandbox stands in);
|
|
67
67
|
# USED by \`next build\` for production cloud builds. Next.js exposes environment
|
|
68
68
|
# variables prefixed with \`NEXT_PUBLIC_\` to client-side code in the browser.
|
|
69
69
|
NEXT_PUBLIC_FIREBASE_API_KEY=
|
|
@@ -473,19 +473,19 @@ function buildReadme(projectName: string): string {
|
|
|
473
473
|
return `# ${projectName}
|
|
474
474
|
|
|
475
475
|
A Firebase web application built with Next.js and wrapped with \`@pyric/cli/next\` (\`withPyric\`).
|
|
476
|
-
In development, the application runs entirely on Pyric's local sandbox
|
|
476
|
+
In development, the application runs entirely on Pyric's local sandbox and requires
|
|
477
477
|
zero Firebase projects, service account keys, or cloud emulators.
|
|
478
478
|
|
|
479
|
-
- **Develop:** \`npm run dev\` or \`bun run dev\`
|
|
480
|
-
- **Build for production:** \`npm run build\` or \`bun run build\`
|
|
481
|
-
- **Start:** \`npm start\` or \`bun run start\`
|
|
479
|
+
- **Develop:** \`npm run dev\` or \`bun run dev\` executes \`pyric sandbox -- next dev\`. The \`withPyric\` wrapper substitutes client SDK imports with local sandbox mirrors via Webpack and Turbopack aliases, intercepts server-side API requests via \`@pyric/cli/register\`, and proxies WebSocket bridge traffic automatically.
|
|
480
|
+
- **Build for production:** \`npm run build\` or \`bun run build\` executes \`next build\`. Production mode makes \`withPyric\` an identity passthrough and compiles the standard Firebase and Firebase Admin SDKs without sandbox code.
|
|
481
|
+
- **Start:** \`npm start\` or \`bun run start\` serves your built Next.js production server.
|
|
482
482
|
- **Deploy:** \`npx firebase-tools deploy\` (via Firebase Web Frameworks) after production build, or deploy standard built artifacts directly to Vercel and cloud compute platforms.
|
|
483
483
|
`;
|
|
484
484
|
}
|
|
485
485
|
|
|
486
486
|
export const NEXTJS_TEMPLATE: ScaffoldTemplate = {
|
|
487
487
|
scripts: {
|
|
488
|
-
dev: 'pyric
|
|
488
|
+
dev: 'pyric sandbox -- next dev',
|
|
489
489
|
'dev:direct': 'next dev',
|
|
490
490
|
build: 'next build',
|
|
491
491
|
start: 'next start',
|
package/src/templates.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* toolchain, no graduation cliff — the sandbox↔Firebase swap is environmental
|
|
8
8
|
* (dev vs build), never a code edit (the design rationale section 9).
|
|
9
9
|
*
|
|
10
|
-
* `static` is the
|
|
10
|
+
* `static` is the no-bundler scaffold. A static app run by `pyric sandbox`
|
|
11
11
|
* runs against the in-page sandbox via a runtime import map. For pre-built /
|
|
12
12
|
* retrofit apps, or anyone who wants zero build step.
|
|
13
13
|
*
|
|
@@ -181,7 +181,7 @@ const WEB_INDEX_HTML = (name: string): string => `<!doctype html>
|
|
|
181
181
|
</html>
|
|
182
182
|
`;
|
|
183
183
|
|
|
184
|
-
const WEB_APP_JS = `// Canonical firebase/* imports. Under \`pyric
|
|
184
|
+
const WEB_APP_JS = `// Canonical firebase/* imports. Under \`pyric sandbox\` they are served by the
|
|
185
185
|
// in-page pyric sandbox (the config below is ignored); under any standard
|
|
186
186
|
// bundler/pipeline the same imports resolve to the real \`firebase\` package.
|
|
187
187
|
// Graduation changes where you run this code, never the code itself.
|
|
@@ -203,7 +203,7 @@ import {
|
|
|
203
203
|
|
|
204
204
|
const app = initializeApp({
|
|
205
205
|
// Graduation: your real web-app config from the Firebase console
|
|
206
|
-
// (see .env.example). Unused while developing under \`pyric
|
|
206
|
+
// (see .env.example). Unused while developing under \`pyric sandbox\`.
|
|
207
207
|
apiKey: 'demo',
|
|
208
208
|
authDomain: 'demo.firebaseapp.com',
|
|
209
209
|
projectId: 'demo',
|
|
@@ -257,7 +257,7 @@ onSnapshot(collection(db, 'posts'), (snap) => {
|
|
|
257
257
|
const WEB_RULES = `rules_version = '2';
|
|
258
258
|
service cloud.firestore {
|
|
259
259
|
match /databases/{database}/documents {
|
|
260
|
-
// Owner-based from line 1
|
|
260
|
+
// Owner-based from line 1. \`pyric sandbox\` hot-reloads this file and
|
|
261
261
|
// ships a sign-in helper, so safe rules are cheap to iterate. These
|
|
262
262
|
// deploy as-is.
|
|
263
263
|
match /posts/{postId} {
|
|
@@ -295,7 +295,7 @@ const WEB_SEED_JSON = `{
|
|
|
295
295
|
`;
|
|
296
296
|
|
|
297
297
|
const WEB_ENV_EXAMPLE = `# Graduation config — your real Firebase web app (console → project settings).
|
|
298
|
-
# Unused under \`pyric
|
|
298
|
+
# Unused under \`pyric sandbox\`; wire it into public/app.js (or a bundler env)
|
|
299
299
|
# when you deploy against the real backend.
|
|
300
300
|
FIREBASE_API_KEY=
|
|
301
301
|
FIREBASE_AUTH_DOMAIN=
|
|
@@ -315,14 +315,14 @@ sandbox — no Firebase project, credentials, or emulators.
|
|
|
315
315
|
popup sign-in via the helper dialog.
|
|
316
316
|
- **Agent:** \`bun run dev:agent\` — same, plus the MCP bridge on the dev-server
|
|
317
317
|
origin (\`/__pyric/mcp\`).
|
|
318
|
-
- **Persist (optional):** \`pyric
|
|
318
|
+
- **Persist (optional):** \`pyric sandbox --persist --seed seed.json\` keeps data and
|
|
319
319
|
test users survive reloads and restarts in \`.pyric/state/state.json\`
|
|
320
320
|
(plain JSON; gitignored). Promote lived state to a committable fixture
|
|
321
|
-
with \`pyric snapshot\`, then
|
|
321
|
+
with \`pyric snapshot\`, then load it again: \`pyric sandbox --seed pyric-state.json\`.
|
|
322
322
|
- **Graduate:** fill \`.env\` from the Firebase console and point the config in
|
|
323
323
|
\`public/app.js\` at it, then run \`npx firebase-tools deploy\`. Bare
|
|
324
324
|
\`firebase/*\` imports need a bundler
|
|
325
|
-
(e.g. \`vite build\`) or an import map in production
|
|
325
|
+
(e.g. \`vite build\`) or an import map in production. \`pyric sandbox\`
|
|
326
326
|
provides the map in dev.
|
|
327
327
|
|
|
328
328
|
The app code uses canonical \`firebase/*\` imports everywhere. Switching
|
|
@@ -447,18 +447,18 @@ npx plugins add davideast/pyric
|
|
|
447
447
|
Antigravity CLI and OpenCode use the standalone skill installer:
|
|
448
448
|
|
|
449
449
|
\`\`\`bash
|
|
450
|
-
npx skills add https://github.com/davideast/pyric/tree/main/pyric-plugin/skills/pyric
|
|
451
|
-
npx skills add https://github.com/davideast/pyric/tree/main/pyric-plugin/skills/pyric
|
|
450
|
+
npx skills add https://github.com/davideast/pyric/tree/main/pyric-plugin/skills/pyric --agent antigravity-cli
|
|
451
|
+
npx skills add https://github.com/davideast/pyric/tree/main/pyric-plugin/skills/pyric --agent opencode
|
|
452
452
|
\`\`\`
|
|
453
453
|
|
|
454
454
|
Then invoke the skill:
|
|
455
455
|
|
|
456
456
|
| Agent | Enter |
|
|
457
457
|
|---|---|
|
|
458
|
-
| Codex | \`$pyric
|
|
459
|
-
| Claude Code | \`/pyric:pyric
|
|
460
|
-
| Antigravity CLI | \`/pyric
|
|
461
|
-
| OpenCode | \`/pyric
|
|
458
|
+
| Codex | \`$pyric\` |
|
|
459
|
+
| Claude Code | \`/pyric:pyric\` |
|
|
460
|
+
| Antigravity CLI | \`/pyric\` |
|
|
461
|
+
| OpenCode | \`/pyric\` |
|
|
462
462
|
|
|
463
463
|
The skill starts the bridge and connects the agent's Pyric tools.
|
|
464
464
|
|
|
@@ -668,7 +668,7 @@ import { pyric } from '@pyric/cli/vite';
|
|
|
668
668
|
// sandbox and deploys + hot-reloads firestore.rules — no Firebase project,
|
|
669
669
|
// credentials, or emulators. \`vite build\` (mode production) ships the real
|
|
670
670
|
// firebase package; the swap never reaches the deployed artifact. For a
|
|
671
|
-
// self-contained sandbox preview you can serve under \`pyric
|
|
671
|
+
// self-contained sandbox preview you can serve under \`pyric sandbox\`, build with a
|
|
672
672
|
// non-production mode: \`vite build --mode development\` (see the \`build:sandbox\`
|
|
673
673
|
// script). That output is marked and can never be deployed.
|
|
674
674
|
export default defineConfig({
|
|
@@ -755,10 +755,8 @@ in-process sandbox — no Firebase project, credentials, or emulators.
|
|
|
755
755
|
> between the sandbox and real Firebase is \`vite dev\` vs \`vite build\`, never
|
|
756
756
|
> what you wrote.
|
|
757
757
|
|
|
758
|
-
The plugin is
|
|
759
|
-
|
|
760
|
-
later releases. For a pre-built / no-build app, use \`pyric init --template static\`
|
|
761
|
-
+ \`pyric dev\`.
|
|
758
|
+
The plugin is development-only. For a pre-built or no-build app, use
|
|
759
|
+
\`pyric init --template static\` and \`pyric sandbox\`.
|
|
762
760
|
`;
|
|
763
761
|
|
|
764
762
|
let chatAssets: ReturnType<typeof loadAssetTemplate> | undefined;
|
|
@@ -804,7 +802,7 @@ export const TEMPLATES: Record<TemplateName, ScaffoldTemplate> = {
|
|
|
804
802
|
node: {
|
|
805
803
|
scripts: {
|
|
806
804
|
start: 'node --env-file-if-exists=.env --experimental-strip-types src/app.ts',
|
|
807
|
-
dev: 'pyric
|
|
805
|
+
dev: 'pyric sandbox --no-open -- node --env-file-if-exists=.env --experimental-strip-types src/app.ts',
|
|
808
806
|
bridge: 'pyric bridge',
|
|
809
807
|
},
|
|
810
808
|
dependencies: { firebase: '^12.12.0' },
|
|
@@ -822,13 +820,13 @@ export const TEMPLATES: Record<TemplateName, ScaffoldTemplate> = {
|
|
|
822
820
|
],
|
|
823
821
|
nextSteps: ['bun install', 'bun run dev', 'bun start # production: real Firebase'],
|
|
824
822
|
},
|
|
825
|
-
// static
|
|
823
|
+
// static: the no-bundler scaffold run by `pyric sandbox`
|
|
826
824
|
// runs against the in-page sandbox via a runtime import map. For pre-built /
|
|
827
825
|
// retrofit apps, or anyone who wants zero build step.
|
|
828
826
|
static: {
|
|
829
827
|
scripts: {
|
|
830
|
-
dev: 'pyric
|
|
831
|
-
'dev:agent': 'pyric
|
|
828
|
+
dev: 'pyric sandbox --seed seed.json',
|
|
829
|
+
'dev:agent': 'pyric sandbox --bridge --seed seed.json',
|
|
832
830
|
},
|
|
833
831
|
dependencies: { firebase: '^12.12.0' },
|
|
834
832
|
devDependencies: { '@pyric/cli': '*' },
|
|
@@ -8,7 +8,7 @@ import path from 'node:path';
|
|
|
8
8
|
// sandbox and deploys + hot-reloads the rules — no Firebase project,
|
|
9
9
|
// credentials, or emulators. `vite build` (mode production) ships the real
|
|
10
10
|
// firebase package; the swap never reaches the deployed artifact. For a
|
|
11
|
-
// self-contained sandbox preview you can serve under `pyric
|
|
11
|
+
// self-contained sandbox preview you can serve under `pyric sandbox`, build with a
|
|
12
12
|
// non-production mode: `vite build --mode development` (see the `build:sandbox`
|
|
13
13
|
// script). That output is marked and can never be deployed.
|
|
14
14
|
export default defineConfig({
|