@jskit-ai/create-app 0.1.68 → 0.1.70
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/package.json +1 -1
- package/src/server/index.js +16 -4
- package/templates/ai-seed/AGENTS.md +38 -0
package/package.json
CHANGED
package/src/server/index.js
CHANGED
|
@@ -220,7 +220,9 @@ function printUsage(stream = process.stderr) {
|
|
|
220
220
|
stream.write("Usage: jskit-create-app [app-name] [options]\n");
|
|
221
221
|
stream.write("\n");
|
|
222
222
|
stream.write("Options:\n");
|
|
223
|
-
stream.write(
|
|
223
|
+
stream.write(
|
|
224
|
+
` --template <name> Template folder under templates/ (default: ${DEFAULT_TEMPLATE}; use ai-seed for the minimal AI seed flow)\n`
|
|
225
|
+
);
|
|
224
226
|
stream.write(" --title <text> App title used for template replacements\n");
|
|
225
227
|
stream.write(" --target <path> Target directory (default: ./<app-name>)\n");
|
|
226
228
|
stream.write(" --initial-bundles <preset> Optional bundle preset: none | auth (default: none)\n");
|
|
@@ -609,6 +611,9 @@ export async function runCli(
|
|
|
609
611
|
});
|
|
610
612
|
|
|
611
613
|
const targetLabel = toRelativeTargetLabel(path.resolve(cwd), result.targetDirectory);
|
|
614
|
+
const normalizedTemplateName = normalizeTemplatePathSegments(result.template).join("/");
|
|
615
|
+
const isAiSeedTemplate = normalizedTemplateName === "ai-seed";
|
|
616
|
+
const wrotePackageJson = result.touchedFiles.includes("package.json");
|
|
612
617
|
if (result.dryRun) {
|
|
613
618
|
stdout.write(
|
|
614
619
|
`[dry-run] Would create app "${result.appName}" from template "${result.template}" at ${targetLabel}.\n`
|
|
@@ -625,10 +630,17 @@ export async function runCli(
|
|
|
625
630
|
stdout.write("\n");
|
|
626
631
|
stdout.write("Next steps:\n");
|
|
627
632
|
stdout.write(`- cd ${shellQuote(targetLabel)}\n`);
|
|
628
|
-
|
|
629
|
-
|
|
633
|
+
if (isAiSeedTemplate) {
|
|
634
|
+
stdout.write("- hand the repo to your AI agent and have it read AGENTS.md\n");
|
|
635
|
+
stdout.write(
|
|
636
|
+
`- once the Stage 1 shape is clear, let it run npx @jskit-ai/create-app ${shellQuote(result.appName)} --target . --force --tenancy-mode <mode>\n`
|
|
637
|
+
);
|
|
638
|
+
} else if (wrotePackageJson) {
|
|
639
|
+
stdout.write("- npm install\n");
|
|
640
|
+
stdout.write("- npm run dev\n");
|
|
641
|
+
}
|
|
630
642
|
|
|
631
|
-
if (result.selectedSetupCommands.length > 0) {
|
|
643
|
+
if (!isAiSeedTemplate && result.selectedSetupCommands.length > 0) {
|
|
632
644
|
stdout.write("\n");
|
|
633
645
|
stdout.write(`Initial framework setup commands (${result.initialBundles}):\n`);
|
|
634
646
|
for (const command of result.selectedSetupCommands) {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# AI Seed Instructions
|
|
2
|
+
|
|
3
|
+
This workspace is intentionally only a JSKIT seed scaffold. It is not a real JSKIT app yet.
|
|
4
|
+
|
|
5
|
+
Use this file only for the initial JSKIT setup conversation.
|
|
6
|
+
|
|
7
|
+
If you need more JSKIT documentation before the real scaffold exists, use:
|
|
8
|
+
|
|
9
|
+
- `https://github.com/mobily-enterprises/jskit-ai/blob/main/packages/agent-docs/site/guide/index.md`
|
|
10
|
+
- `https://github.com/mobily-enterprises/jskit-ai/blob/main/packages/agent-docs/site/guide/app-setup/initial-scaffolding.md`
|
|
11
|
+
- `https://github.com/mobily-enterprises/jskit-ai/blob/main/packages/agent-docs/site/guide/app-setup/quickstart.md`
|
|
12
|
+
- `https://github.com/mobily-enterprises/jskit-ai/blob/main/packages/agent-docs/site/guide/app-setup/working-with-the-jskit-cli.md`
|
|
13
|
+
|
|
14
|
+
What to do now:
|
|
15
|
+
|
|
16
|
+
1. Ask only the Stage 1 setup questions first:
|
|
17
|
+
- app purpose
|
|
18
|
+
- tenancy mode: `none`, `personal`, or `workspaces`
|
|
19
|
+
- database engine: MySQL or Postgres
|
|
20
|
+
- auth provider
|
|
21
|
+
- whether the baseline should include users, console, workspaces, realtime, or assistant
|
|
22
|
+
2. If a database-backed baseline is selected, do not stop at the engine name. Confirm one of these is true before moving on:
|
|
23
|
+
- the target database already exists and the app connection values are known
|
|
24
|
+
- or the developer has enough local admin or create-database access for the chosen engine to create it now
|
|
25
|
+
3. Once the baseline package stack is clear, ask plainly for the exact local development setup values needed for the next chosen install step. Use the real env var names or option names instead of vague requests for "credentials".
|
|
26
|
+
4. Treat those values as routine local development setup inputs, not production secrets. Examples:
|
|
27
|
+
- `DB_HOST`, `DB_PORT`, `DB_NAME`, `DB_USER`, `DB_PASSWORD`
|
|
28
|
+
- `AUTH_SUPABASE_URL`, `AUTH_SUPABASE_PUBLISHABLE_KEY`, `APP_PUBLIC_URL`
|
|
29
|
+
- `OPENAI_API_KEY` if assistant support is selected
|
|
30
|
+
5. For MySQL or Postgres, if the database does not exist yet, ask for whatever local admin or create-database access is needed to create it, then make sure the database exists before promoting the scaffold. Do not move on while the database is still hypothetical.
|
|
31
|
+
6. If assistant support is selected, explain that `OPENAI_API_KEY` can be given now or wired later; the scaffold can still be created first.
|
|
32
|
+
7. Do not hand-write JSKIT runtime files or invent file topology in this seed workspace.
|
|
33
|
+
8. Once the Stage 1 decisions are clear, promote this directory into the real app scaffold by running:
|
|
34
|
+
`npx @jskit-ai/create-app <app-name> --target . --force --tenancy-mode <mode>`
|
|
35
|
+
Use the current directory name as `<app-name>` unless the developer explicitly wants a different app name.
|
|
36
|
+
9. After that, run `npm install`.
|
|
37
|
+
10. Then stop, re-read the overwritten `AGENTS.md`, and continue with the normal JSKIT app workflow from that file. Do not rely on memory from the seed stage.
|
|
38
|
+
11. Do not install JSKIT runtime packages until the new app `AGENTS.md` has been re-read.
|