veryfront 0.1.26 → 0.1.28

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.
Files changed (124) hide show
  1. package/README.md +3 -11
  2. package/esm/cli/app/shell.d.ts.map +1 -1
  3. package/esm/cli/app/shell.js +9 -5
  4. package/esm/cli/commands/demo/demo.js +1 -1
  5. package/esm/cli/commands/init/catalog.d.ts.map +1 -1
  6. package/esm/cli/commands/init/catalog.js +13 -5
  7. package/esm/cli/commands/init/command-help.js +4 -4
  8. package/esm/cli/commands/init/types.d.ts +1 -1
  9. package/esm/cli/commands/init/types.d.ts.map +1 -1
  10. package/esm/cli/commands/serve/command.d.ts.map +1 -1
  11. package/esm/cli/commands/serve/command.js +0 -4
  12. package/esm/cli/commands/start/command.d.ts.map +1 -1
  13. package/esm/cli/commands/start/command.js +16 -9
  14. package/esm/cli/help/tips.js +6 -6
  15. package/esm/cli/mcp/remote-file-tools.js +1 -1
  16. package/esm/cli/mcp/tools/catalog-tools.d.ts +3 -3
  17. package/esm/cli/mcp/tools/catalog-tools.d.ts.map +1 -1
  18. package/esm/cli/mcp/tools/catalog-tools.js +21 -13
  19. package/esm/cli/mcp/tools/project-tools.js +1 -1
  20. package/esm/cli/templates/index.js +11 -11
  21. package/esm/cli/templates/manifest.d.ts +22 -15
  22. package/esm/cli/templates/manifest.js +24 -17
  23. package/esm/cli/templates/types.d.ts +1 -1
  24. package/esm/cli/templates/types.d.ts.map +1 -1
  25. package/esm/cli/utils/index.d.ts.map +1 -1
  26. package/esm/cli/utils/index.js +13 -1
  27. package/esm/deno.js +1 -1
  28. package/esm/src/html/html-shell-generator.d.ts.map +1 -1
  29. package/esm/src/html/html-shell-generator.js +2 -0
  30. package/esm/src/html/styles-builder/project-css-cache.d.ts +8 -1
  31. package/esm/src/html/styles-builder/project-css-cache.d.ts.map +1 -1
  32. package/esm/src/html/styles-builder/project-css-cache.js +13 -2
  33. package/esm/src/html/styles-builder/tailwind-compiler.d.ts +2 -0
  34. package/esm/src/html/styles-builder/tailwind-compiler.d.ts.map +1 -1
  35. package/esm/src/html/styles-builder/tailwind-compiler.js +52 -19
  36. package/esm/src/modules/react-loader/css-import-collector.d.ts +29 -0
  37. package/esm/src/modules/react-loader/css-import-collector.d.ts.map +1 -0
  38. package/esm/src/modules/react-loader/css-import-collector.js +41 -0
  39. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
  40. package/esm/src/modules/react-loader/ssr-module-loader/loader.js +6 -0
  41. package/esm/src/modules/react-loader/ssr-module-loader/ssr-dependency-validator.d.ts.map +1 -1
  42. package/esm/src/modules/react-loader/ssr-module-loader/ssr-dependency-validator.js +5 -0
  43. package/esm/src/platform/adapters/fs/factory.d.ts.map +1 -1
  44. package/esm/src/platform/adapters/fs/factory.js +5 -1
  45. package/esm/src/platform/adapters/fs/veryfront/websocket-manager.d.ts +1 -0
  46. package/esm/src/platform/adapters/fs/veryfront/websocket-manager.d.ts.map +1 -1
  47. package/esm/src/platform/adapters/fs/veryfront/websocket-manager.js +19 -5
  48. package/esm/src/platform/compat/process.d.ts.map +1 -1
  49. package/esm/src/platform/compat/process.js +20 -3
  50. package/esm/src/proxy/main.js +31 -12
  51. package/esm/src/proxy/token-manager.d.ts +2 -0
  52. package/esm/src/proxy/token-manager.d.ts.map +1 -1
  53. package/esm/src/proxy/token-manager.js +47 -8
  54. package/esm/src/rendering/orchestrator/css-candidate-manifest.d.ts +23 -0
  55. package/esm/src/rendering/orchestrator/css-candidate-manifest.d.ts.map +1 -0
  56. package/esm/src/rendering/orchestrator/css-candidate-manifest.js +132 -0
  57. package/esm/src/rendering/orchestrator/html.d.ts +11 -1
  58. package/esm/src/rendering/orchestrator/html.d.ts.map +1 -1
  59. package/esm/src/rendering/orchestrator/html.js +103 -18
  60. package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
  61. package/esm/src/rendering/orchestrator/pipeline.js +14 -2
  62. package/esm/src/server/bootstrap.d.ts +2 -0
  63. package/esm/src/server/bootstrap.d.ts.map +1 -1
  64. package/esm/src/server/bootstrap.js +10 -0
  65. package/esm/src/server/handlers/preview/markdown-html-generator.d.ts.map +1 -1
  66. package/esm/src/server/handlers/preview/markdown-html-generator.js +11 -5
  67. package/esm/src/server/production-server.js +10 -2
  68. package/esm/src/studio/bridge-template.d.ts +2 -0
  69. package/esm/src/studio/bridge-template.d.ts.map +1 -1
  70. package/esm/src/studio/bridge-template.js +3390 -52
  71. package/esm/src/transforms/css-modules/naming.d.ts +33 -0
  72. package/esm/src/transforms/css-modules/naming.d.ts.map +1 -0
  73. package/esm/src/transforms/css-modules/naming.js +128 -0
  74. package/esm/src/transforms/esm/import-parser.d.ts +1 -0
  75. package/esm/src/transforms/esm/import-parser.d.ts.map +1 -1
  76. package/esm/src/transforms/esm/import-parser.js +16 -5
  77. package/esm/src/transforms/pipeline/index.d.ts.map +1 -1
  78. package/esm/src/transforms/pipeline/index.js +3 -1
  79. package/esm/src/transforms/pipeline/stages/index.d.ts +1 -0
  80. package/esm/src/transforms/pipeline/stages/index.d.ts.map +1 -1
  81. package/esm/src/transforms/pipeline/stages/index.js +1 -0
  82. package/esm/src/transforms/pipeline/stages/ssr-css-strip.d.ts +18 -0
  83. package/esm/src/transforms/pipeline/stages/ssr-css-strip.d.ts.map +1 -0
  84. package/esm/src/transforms/pipeline/stages/ssr-css-strip.js +168 -0
  85. package/package.json +1 -1
  86. package/src/cli/app/shell.ts +9 -5
  87. package/src/cli/commands/demo/demo.ts +1 -1
  88. package/src/cli/commands/init/catalog.ts +13 -5
  89. package/src/cli/commands/init/command-help.ts +4 -4
  90. package/src/cli/commands/init/types.ts +5 -5
  91. package/src/cli/commands/serve/command.ts +0 -5
  92. package/src/cli/commands/start/command.ts +15 -10
  93. package/src/cli/help/tips.ts +6 -6
  94. package/src/cli/mcp/remote-file-tools.ts +1 -1
  95. package/src/cli/mcp/tools/catalog-tools.ts +21 -13
  96. package/src/cli/mcp/tools/project-tools.ts +1 -1
  97. package/src/cli/templates/index.ts +11 -11
  98. package/src/cli/templates/manifest.js +24 -17
  99. package/src/cli/templates/types.ts +5 -5
  100. package/src/cli/utils/index.ts +12 -1
  101. package/src/deno.js +1 -1
  102. package/src/src/html/html-shell-generator.ts +2 -0
  103. package/src/src/html/styles-builder/project-css-cache.ts +24 -1
  104. package/src/src/html/styles-builder/tailwind-compiler.ts +67 -26
  105. package/src/src/modules/react-loader/css-import-collector.ts +50 -0
  106. package/src/src/modules/react-loader/ssr-module-loader/loader.ts +7 -0
  107. package/src/src/modules/react-loader/ssr-module-loader/ssr-dependency-validator.ts +6 -0
  108. package/src/src/platform/adapters/fs/factory.ts +5 -1
  109. package/src/src/platform/adapters/fs/veryfront/websocket-manager.ts +21 -5
  110. package/src/src/platform/compat/process.ts +28 -4
  111. package/src/src/proxy/main.ts +32 -12
  112. package/src/src/proxy/token-manager.ts +54 -8
  113. package/src/src/rendering/orchestrator/css-candidate-manifest.ts +176 -0
  114. package/src/src/rendering/orchestrator/html.ts +128 -16
  115. package/src/src/rendering/orchestrator/pipeline.ts +183 -165
  116. package/src/src/server/bootstrap.ts +16 -0
  117. package/src/src/server/handlers/preview/markdown-html-generator.ts +12 -5
  118. package/src/src/server/production-server.ts +12 -2
  119. package/src/src/studio/bridge-template.ts +3392 -52
  120. package/src/src/transforms/css-modules/naming.ts +152 -0
  121. package/src/src/transforms/esm/import-parser.ts +15 -5
  122. package/src/src/transforms/pipeline/index.ts +3 -0
  123. package/src/src/transforms/pipeline/stages/index.ts +1 -0
  124. package/src/src/transforms/pipeline/stages/ssr-css-strip.ts +201 -0
package/README.md CHANGED
@@ -56,19 +56,11 @@ brew install veryfront/tap/veryfront
56
56
 
57
57
  </details>
58
58
 
59
- Follow the [Quickstart guide](https://veryfront.com/docs/code/guides/quickstart) for step-by-step setup, or explore our [templates](https://veryfront.com/docs/code/guides/quickstart#templates) to start building with Veryfront today.
59
+ Follow the [Quickstart guide](https://veryfront.com/docs/code/guides/quickstart) for step-by-step setup, or explore our [templates](https://veryfront.com/docs/code/guides/quickstart#templates) to start building your first application with Veryfront. For the full documentation, visit [veryfront.com/docs/code](https://veryfront.com/docs/code).
60
60
 
61
- ## Documentation
61
+ ## Examples
62
62
 
63
- Visit our [official documentation](https://veryfront.com/docs/code).
64
-
65
- **Getting Started** — [Quickstart](https://veryfront.com/docs/code/guides/quickstart) · [Project Structure](https://veryfront.com/docs/code/guides/project-structure)
66
-
67
- **AI** — [Agents](https://veryfront.com/docs/code/guides/agents) · [Tools](https://veryfront.com/docs/code/guides/tools) · [Memory & Streaming](https://veryfront.com/docs/code/guides/memory-and-streaming) · [Chat UI](https://veryfront.com/docs/code/guides/chat-ui) · [Workflows](https://veryfront.com/docs/code/guides/workflows) · [Multi-Agent](https://veryfront.com/docs/code/guides/multi-agent)
68
-
69
- **Infrastructure** — [Providers](https://veryfront.com/docs/code/guides/providers) · [Pages & Routing](https://veryfront.com/docs/code/guides/pages-and-routing) · [Data Fetching](https://veryfront.com/docs/code/guides/data-fetching) · [API Routes](https://veryfront.com/docs/code/guides/api-routes) · [Middleware](https://veryfront.com/docs/code/guides/middleware) · [OAuth](https://veryfront.com/docs/code/guides/oauth) · [MCP Server](https://veryfront.com/docs/code/guides/mcp-server) · [Integrations](https://veryfront.com/docs/code/integrations)
70
-
71
- **Production** — [Configuration](https://veryfront.com/docs/code/guides/configuration) · [Building & Deploying](https://veryfront.com/docs/code/guides/deploying) · [Head & SEO](https://veryfront.com/docs/code/guides/head-and-seo)
63
+ You can find standalone, runnable examples in the [veryfront-examples](https://github.com/veryfront/veryfront-examples) repo.
72
64
 
73
65
  ## Contributing
74
66
 
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/cli/app/shell.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiEjD;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAikBhD"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/cli/app/shell.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiEjD;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAqkBhD"}
@@ -47,12 +47,16 @@ export function createApp(config) {
47
47
  state = { ...state, activeList: "projects" };
48
48
  }
49
49
  state = setTemplates([
50
- { id: "chat", name: "AI Chatbot", description: "Agent + chat UI + streaming" },
51
- { id: "rag", name: "Chat with Docs", description: "RAG with source citations" },
52
- { id: "multi-agent", name: "Multi-Agent", description: "Agents that delegate to each other" },
53
- { id: "workflow", name: "AI Workflow", description: "Steps + approvals + parallelism" },
50
+ { id: "ai-agent", name: "AI Chatbot", description: "Agent + chat UI + streaming" },
51
+ { id: "chat-with-your-docs", name: "Chat with Docs", description: "RAG with source citations" },
52
+ {
53
+ id: "multi-agent-system",
54
+ name: "Multi-Agent",
55
+ description: "Agents that delegate to each other",
56
+ },
57
+ { id: "agentic-workflow", name: "AI Workflow", description: "Steps + approvals + parallelism" },
54
58
  { id: "coding-agent", name: "Coding Agent", description: "AI code assistant with file tools" },
55
- { id: "saas", name: "AI SaaS", description: "Auth + chat + per-user memory" },
59
+ { id: "saas-starter", name: "AI SaaS", description: "Auth + chat + per-user memory" },
56
60
  { id: "minimal", name: "Minimal", description: "Blank canvas" },
57
61
  ])(state);
58
62
  state = updateServer({
@@ -268,7 +268,7 @@ async function executeStepAction(step, projectName, loginMethod) {
268
268
  case "create": {
269
269
  await initCommand({
270
270
  name: projectName,
271
- template: "chat",
271
+ template: "ai-agent",
272
272
  quiet: true,
273
273
  skipInstall: true,
274
274
  skipEnvPrompt: true,
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/catalog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAMnE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,EAAE,SAAS,cAAc,EAYrC,CAAC;AAEX,0DAA0D;AAC1D,wBAAgB,wBAAwB,IAAI,YAAY,EAAE,CAMzD;AAMD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,eAAe,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC5C;AAED,eAAO,MAAM,sBAAsB,EAAE,SAAS,mBAAmB,EAsGvD,CAAC;AAEX,2CAA2C;AAC3C,wBAAgB,kBAAkB,IAAI,iBAAiB,EAAE,CAExD;AAED,6DAA6D;AAC7D,wBAAgB,2BAA2B,IAAI,YAAY,EAAE,CAM5D;AAED,4DAA4D;AAC5D,wBAAgB,sBAAsB,IAAI,iBAAiB,EAAE,CAa5D;AAED,+DAA+D;AAC/D,wBAAgB,sCAAsC,IAAI,KAAK,CAC7D,YAAY,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CACtC,CAqBA"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/catalog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAMnE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,EAAE,SAAS,cAAc,EAoBrC,CAAC;AAEX,0DAA0D;AAC1D,wBAAgB,wBAAwB,IAAI,YAAY,EAAE,CAMzD;AAMD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,eAAe,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC5C;AAED,eAAO,MAAM,sBAAsB,EAAE,SAAS,mBAAmB,EAsGvD,CAAC;AAEX,2CAA2C;AAC3C,wBAAgB,kBAAkB,IAAI,iBAAiB,EAAE,CAExD;AAED,6DAA6D;AAC7D,wBAAgB,2BAA2B,IAAI,YAAY,EAAE,CAM5D;AAED,4DAA4D;AAC5D,wBAAgB,sBAAsB,IAAI,iBAAiB,EAAE,CAa5D;AAED,+DAA+D;AAC/D,wBAAgB,sCAAsC,IAAI,KAAK,CAC7D,YAAY,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CACtC,CAqBA"}
@@ -4,16 +4,24 @@
4
4
  */
5
5
  export const TEMPLATES = [
6
6
  { id: "minimal", label: "Minimal", description: "Blank canvas, no extras" },
7
- { id: "chat", label: "AI Chatbot", description: "Agent + chat UI + streaming" },
8
- { id: "rag", label: "Chat with Your Docs", description: "RAG with source citations" },
9
- { id: "workflow", label: "AI Workflow Pipeline", description: "Steps + approvals + parallelism" },
7
+ { id: "ai-agent", label: "AI Agent", description: "Agent + chat UI + streaming" },
10
8
  {
11
- id: "multi-agent",
9
+ id: "chat-with-your-docs",
10
+ label: "Chat with Your Docs",
11
+ description: "RAG with source citations",
12
+ },
13
+ {
14
+ id: "agentic-workflow",
15
+ label: "Agentic Workflow",
16
+ description: "Steps + approvals + parallelism",
17
+ },
18
+ {
19
+ id: "multi-agent-system",
12
20
  label: "Multi-Agent System",
13
21
  description: "Agents that delegate to each other",
14
22
  },
15
23
  { id: "coding-agent", label: "Coding Agent", description: "AI code assistant with file tools" },
16
- { id: "saas", label: "AI SaaS", description: "Auth + chat + per-user memory" },
24
+ { id: "saas-starter", label: "SaaS Starter", description: "Auth + chat + per-user memory" },
17
25
  ];
18
26
  /** Get templates as SelectOption[] for terminal-select */
19
27
  export function getTemplateSelectOptions() {
@@ -5,7 +5,7 @@ export const initHelp = {
5
5
  options: [
6
6
  {
7
7
  flag: "-t, --template <name>",
8
- description: "Project template (minimal | chat | rag | workflow | multi-agent | coding-agent | saas)",
8
+ description: "Project template (minimal | ai-agent | chat-with-your-docs | agentic-workflow | multi-agent-system | coding-agent | saas-starter)",
9
9
  },
10
10
  {
11
11
  flag: "--integrations <list>",
@@ -35,9 +35,9 @@ export const initHelp = {
35
35
  examples: [
36
36
  "veryfront init # Interactive wizard",
37
37
  "veryfront init my-app",
38
- "veryfront init my-app --template chat",
39
- "veryfront init my-rag --template rag",
40
- "veryfront init my-pipeline --template workflow",
38
+ "veryfront init my-app --template ai-agent",
39
+ "veryfront init my-rag --template chat-with-your-docs",
40
+ "veryfront init my-pipeline --template agentic-workflow",
41
41
  "veryfront init my-app --deploy # Create and deploy",
42
42
  "veryfront init --config project.json # From config file",
43
43
  ],
@@ -1,5 +1,5 @@
1
1
  import type { FeatureName, IntegrationName } from "../../templates/types.js";
2
- export type InitTemplate = "chat" | "rag" | "multi-agent" | "workflow" | "coding-agent" | "saas" | "minimal";
2
+ export type InitTemplate = "ai-agent" | "chat-with-your-docs" | "multi-agent-system" | "agentic-workflow" | "coding-agent" | "saas-starter" | "minimal";
3
3
  export type EnvValues = Record<string, string>;
4
4
  export interface InitOptions {
5
5
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE7E,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,KAAK,GACL,aAAa,GACb,UAAU,GACV,cAAc,GACd,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE7E,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,qBAAqB,GACrB,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,cAAc,GACd,SAAS,CAAC;AAEd,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/serve/command.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,YAAY,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB;AAgGD,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvE"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/serve/command.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,YAAY,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB;AA2FD,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvE"}
@@ -21,10 +21,6 @@ async function runProxy(options) {
21
21
  const { setEnv } = await import("../../../src/platform/index.js");
22
22
  setEnv("PORT", String(options.port));
23
23
  setEnv("HOST", options.bindAddress);
24
- registerTerminationSignals((signal) => {
25
- cliLogger.info(`Received ${signal}, shutting down proxy server...`);
26
- exitProcess(0);
27
- });
28
24
  // DenoHttpServer.serve() blocks until the server stops,
29
25
  // so this import keeps the process alive.
30
26
  await import("../../../src/proxy/main.js");
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/start/command.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;CACnB;AA8GD,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA+HvE"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/start/command.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;CACnB;AA8GD,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoIvE"}
@@ -179,20 +179,27 @@ export async function startCommand(options) {
179
179
  const mcpServer = await createMCPServer({ httpPort: mcpPort });
180
180
  app.setServerReady();
181
181
  let shuttingDown = false;
182
- async function shutdown() {
182
+ async function shutdown(signal) {
183
183
  if (shuttingDown)
184
184
  return;
185
185
  shuttingDown = true;
186
186
  restoreConsole();
187
- cliLogger.info("Shutting down...");
188
- app.stop();
189
- await mcpServer.stop();
190
- shutdownController.abort();
191
- await server.stop();
192
- await proxy.close();
193
- exitProcess(0);
187
+ cliLogger.info(`Received ${signal}, shutting down...`);
188
+ try {
189
+ app.stop();
190
+ await mcpServer.stop();
191
+ shutdownController.abort();
192
+ await server.stop();
193
+ await proxy.close();
194
+ }
195
+ catch (error) {
196
+ cliLogger.warn("Error while shutting down start command:", error);
197
+ }
198
+ finally {
199
+ exitProcess(0);
200
+ }
194
201
  }
195
- registerTerminationSignals(() => void shutdown());
202
+ registerTerminationSignals((signal) => shutdown(signal));
196
203
  app.start();
197
204
  await new Promise(() => { });
198
205
  }
@@ -13,12 +13,12 @@ export function getBuildTips() {
13
13
  }
14
14
  export function getInitTemplates() {
15
15
  return `${yellow("Available Templates:")}\n` +
16
- ` • ${green("chat")} - AI chatbot with tools and streaming\n` +
17
- ` • ${green("rag")} - Chat with your docs (RAG + citations)\n` +
18
- ` • ${green("multi-agent")} - Agents that delegate to each other\n` +
19
- ` • ${green("workflow")} - AI pipeline with approvals\n` +
20
- ` • ${green("coding-agent")} - AI code assistant with file tools\n` +
21
- ` • ${green("saas")} - AI SaaS with auth + per-user memory\n` +
16
+ ` • ${green("ai-agent")} - AI chatbot with tools and streaming\n` +
17
+ ` • ${green("chat-with-your-docs")} - Chat with your docs (RAG + citations)\n` +
18
+ ` • ${green("multi-agent-system")} - Agents that delegate to each other\n` +
19
+ ` • ${green("agentic-workflow")} - AI pipeline with approvals\n` +
20
+ ` • ${green("coding-agent")} - AI code assistant with file tools\n` +
21
+ ` • ${green("saas-starter")} - AI SaaS with auth + per-user memory\n` +
22
22
  ` • ${green("minimal")} - Blank canvas\n`;
23
23
  }
24
24
  const COMMAND_TIPS = {
@@ -364,7 +364,7 @@ export const vfRemoteDeleteBranch = {
364
364
  // ============================================================================
365
365
  const remoteCreateProjectInput = z.object({
366
366
  slug: z.string().describe("Project slug (lowercase letters, numbers, hyphens only). A random suffix is appended if the slug is already taken."),
367
- templateSlug: z.string().optional().describe("Template project slug to fork from (e.g., 'blank', 'chat', 'rag')"),
367
+ templateSlug: z.string().optional().describe("Template project slug to fork from (e.g., 'blank', 'ai-agent', 'chat-with-your-docs')"),
368
368
  is_public: z.boolean().optional().describe("Whether the project is public (default: false)"),
369
369
  });
370
370
  export const vfRemoteCreateProject = {
@@ -52,18 +52,18 @@ type ListUsecasesInput = z.infer<typeof listUsecasesInput>;
52
52
  export declare const vfListUsecases: MCPTool<ListUsecasesInput, UsecaseInfo[]>;
53
53
  declare const createProjectInput: z.ZodObject<{
54
54
  name: z.ZodString;
55
- template: z.ZodDefault<z.ZodOptional<z.ZodEnum<["chat", "rag", "multi-agent", "workflow", "coding-agent", "saas", "minimal"]>>>;
55
+ template: z.ZodDefault<z.ZodOptional<z.ZodEnum<["ai-agent", "chat-with-your-docs", "multi-agent-system", "agentic-workflow", "coding-agent", "saas-starter", "minimal"]>>>;
56
56
  integrations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
57
57
  directory: z.ZodOptional<z.ZodString>;
58
58
  }, "strip", z.ZodTypeAny, {
59
59
  name: string;
60
- template: "workflow" | "minimal" | "chat" | "rag" | "multi-agent" | "coding-agent" | "saas";
60
+ template: "minimal" | "ai-agent" | "chat-with-your-docs" | "multi-agent-system" | "agentic-workflow" | "coding-agent" | "saas-starter";
61
61
  integrations?: string[] | undefined;
62
62
  directory?: string | undefined;
63
63
  }, {
64
64
  name: string;
65
65
  integrations?: string[] | undefined;
66
- template?: "workflow" | "minimal" | "chat" | "rag" | "multi-agent" | "coding-agent" | "saas" | undefined;
66
+ template?: "minimal" | "ai-agent" | "chat-with-your-docs" | "multi-agent-system" | "agentic-workflow" | "coding-agent" | "saas-starter" | undefined;
67
67
  directory?: string | undefined;
68
68
  }>;
69
69
  type CreateProjectInput = z.infer<typeof createProjectInput>;
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/catalog-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAO3C,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAqDD,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAyCD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;CAChC;AAwJD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AA4CD,QAAA,MAAM,iBAAiB,gDAAe,CAAC;AAEvC,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAMpE,CAAC;AAMF,QAAA,MAAM,kBAAkB,gDAAe,CAAC;AAExC,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE7D,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAMvE,CAAC;AAMF,QAAA,MAAM,qBAAqB;;;;;;EAMzB,CAAC;AAEH,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEnE,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,qBAAqB,EAAE,eAAe,EAAE,CAUhF,CAAC;AAMF,QAAA,MAAM,iBAAiB,gDAAe,CAAC;AAEvC,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAMpE,CAAC;AAMF,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;EAetB,CAAC;AAEH,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE7D,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,CA+C5E,CAAC"}
1
+ {"version":3,"file":"catalog-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/catalog-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAO3C,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAqDD,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAyCD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;CAChC;AAwJD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AA4CD,QAAA,MAAM,iBAAiB,gDAAe,CAAC;AAEvC,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAMpE,CAAC;AAMF,QAAA,MAAM,kBAAkB,gDAAe,CAAC;AAExC,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE7D,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAMvE,CAAC;AAMF,QAAA,MAAM,qBAAqB;;;;;;EAMzB,CAAC;AAEH,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEnE,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,qBAAqB,EAAE,eAAe,EAAE,CAUhF,CAAC;AAMF,QAAA,MAAM,iBAAiB,gDAAe,CAAC;AAEvC,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAMpE,CAAC;AAMF,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;EAuBtB,CAAC;AAEH,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE7D,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,CA+C5E,CAAC"}
@@ -8,9 +8,9 @@ import { withSpan } from "../../../src/observability/tracing/otlp-setup.js";
8
8
  import { directoryExists, formatError, toSlug } from "./helpers.js";
9
9
  const EXAMPLES = [
10
10
  {
11
- name: "ai-assistant",
11
+ name: "ai-agent",
12
12
  description: "Personal AI assistant with Gmail, Slack, and Calendar integrations",
13
- template: "chat",
13
+ template: "ai-agent",
14
14
  integrations: ["gmail", "slack", "calendar"],
15
15
  features: ["Chat UI", "Tool calling", "OAuth"],
16
16
  difficulty: "beginner",
@@ -26,7 +26,7 @@ const EXAMPLES = [
26
26
  {
27
27
  name: "support-bot",
28
28
  description: "Multi-agent customer support with Zendesk and Slack",
29
- template: "multi-agent",
29
+ template: "multi-agent-system",
30
30
  integrations: ["zendesk", "slack", "notion"],
31
31
  features: ["Ticket management", "Knowledge base", "Escalation"],
32
32
  difficulty: "intermediate",
@@ -34,7 +34,7 @@ const EXAMPLES = [
34
34
  {
35
35
  name: "data-analyst",
36
36
  description: "RAG-powered data analyst with Sheets and Snowflake",
37
- template: "rag",
37
+ template: "chat-with-your-docs",
38
38
  integrations: ["sheets", "snowflake", "notion"],
39
39
  features: ["Document search", "Chart generation", "Reports"],
40
40
  difficulty: "advanced",
@@ -42,7 +42,7 @@ const EXAMPLES = [
42
42
  {
43
43
  name: "content-pipeline",
44
44
  description: "AI workflow for research, writing, and publishing",
45
- template: "workflow",
45
+ template: "agentic-workflow",
46
46
  integrations: ["notion", "slack"],
47
47
  features: ["Multi-step pipeline", "Approvals", "Parallel tasks"],
48
48
  difficulty: "intermediate",
@@ -50,7 +50,7 @@ const EXAMPLES = [
50
50
  {
51
51
  name: "saas-starter",
52
52
  description: "Full-stack AI SaaS with auth, billing, and per-user memory",
53
- template: "saas",
53
+ template: "saas-starter",
54
54
  integrations: ["stripe"],
55
55
  features: ["Auth", "Per-user memory", "Dashboard", "API"],
56
56
  difficulty: "advanced",
@@ -58,23 +58,23 @@ const EXAMPLES = [
58
58
  ];
59
59
  const TEMPLATES = [
60
60
  {
61
- name: "chat",
61
+ name: "ai-agent",
62
62
  description: "AI chatbot with agent, tools, and streaming chat UI",
63
63
  features: ["Chat UI", "AI tools", "Agent runtime", "Streaming"],
64
64
  recommended: true,
65
65
  },
66
66
  {
67
- name: "rag",
67
+ name: "chat-with-your-docs",
68
68
  description: "Chat with your docs using retrieval-augmented generation",
69
69
  features: ["Document search", "Source citations", "File-based knowledge"],
70
70
  },
71
71
  {
72
- name: "multi-agent",
72
+ name: "multi-agent-system",
73
73
  description: "Agents that delegate to each other as tools",
74
74
  features: ["Agent composition", "Orchestrator pattern", "Specialized agents"],
75
75
  },
76
76
  {
77
- name: "workflow",
77
+ name: "agentic-workflow",
78
78
  description: "Multi-step AI pipeline with approvals and parallelism",
79
79
  features: ["Step sequencing", "Approvals", "Parallel tasks", "React hooks"],
80
80
  },
@@ -84,7 +84,7 @@ const TEMPLATES = [
84
84
  features: ["File tools", "Code generation", "Code review"],
85
85
  },
86
86
  {
87
- name: "saas",
87
+ name: "saas-starter",
88
88
  description: "AI SaaS with auth, per-user chat, and memory",
89
89
  features: ["Auth", "Per-user memory", "Dashboard", "API routes"],
90
90
  },
@@ -337,9 +337,17 @@ export const vfListUsecases = {
337
337
  const createProjectInput = z.object({
338
338
  name: z.string().describe("Project name (will be converted to slug for directory)"),
339
339
  template: z
340
- .enum(["chat", "rag", "multi-agent", "workflow", "coding-agent", "saas", "minimal"])
340
+ .enum([
341
+ "ai-agent",
342
+ "chat-with-your-docs",
343
+ "multi-agent-system",
344
+ "agentic-workflow",
345
+ "coding-agent",
346
+ "saas-starter",
347
+ "minimal",
348
+ ])
341
349
  .optional()
342
- .default("chat")
350
+ .default("ai-agent")
343
351
  .describe("Project template to use"),
344
352
  integrations: z
345
353
  .array(z.string())
@@ -210,7 +210,7 @@ async function detectVeryfrontProject(projectPath) {
210
210
  const hasChatRoute = await fileExists(join(projectPath, "app/api/chat/route.ts"));
211
211
  let template;
212
212
  if (hasAIDir || hasChatRoute)
213
- template = "chat";
213
+ template = "ai-agent";
214
214
  else if (hasAppDir)
215
215
  template = "minimal";
216
216
  const integrations = [];
@@ -16,25 +16,25 @@ const OPENAI_KEY_CONFIG = {
16
16
  docsUrl: "https://platform.openai.com/api-keys",
17
17
  };
18
18
  export const templateConfigs = {
19
- chat: { envVars: [OPENAI_KEY_CONFIG] },
20
- rag: { envVars: [OPENAI_KEY_CONFIG] },
21
- "multi-agent": { envVars: [OPENAI_KEY_CONFIG] },
22
- workflow: { envVars: [OPENAI_KEY_CONFIG] },
19
+ "ai-agent": { envVars: [OPENAI_KEY_CONFIG] },
20
+ "chat-with-your-docs": { envVars: [OPENAI_KEY_CONFIG] },
21
+ "multi-agent-system": { envVars: [OPENAI_KEY_CONFIG] },
22
+ "agentic-workflow": { envVars: [OPENAI_KEY_CONFIG] },
23
23
  "coding-agent": { envVars: [OPENAI_KEY_CONFIG] },
24
- saas: { envVars: [OPENAI_KEY_CONFIG] },
24
+ "saas-starter": { envVars: [OPENAI_KEY_CONFIG] },
25
25
  };
26
26
  const DIRECTORY_BASED_TEMPLATES = [
27
- "chat",
28
- "rag",
29
- "multi-agent",
30
- "workflow",
27
+ "ai-agent",
28
+ "chat-with-your-docs",
29
+ "multi-agent-system",
30
+ "agentic-workflow",
31
31
  "coding-agent",
32
- "saas",
32
+ "saas-starter",
33
33
  "minimal",
34
34
  ];
35
35
  export async function getTemplate(name) {
36
36
  if (name === "pages-router" || name === "app-router") {
37
- return getTemplate("chat");
37
+ return getTemplate("ai-agent");
38
38
  }
39
39
  if (!DIRECTORY_BASED_TEMPLATES.includes(name)) {
40
40
  return null;
@@ -1,8 +1,9 @@
1
1
  declare namespace _default {
2
2
  let version: number;
3
3
  let templates: {
4
- workflow: {
4
+ "agentic-workflow": {
5
5
  files: {
6
+ "README.md": string;
6
7
  "workflows/content-pipeline.ts": string;
7
8
  "app/workflows/[id]/page.tsx": string;
8
9
  "app/layout.tsx": string;
@@ -12,8 +13,9 @@ declare namespace _default {
12
13
  "agents/writer.ts": string;
13
14
  };
14
15
  };
15
- saas: {
16
+ "saas-starter": {
16
17
  files: {
18
+ "README.md": string;
17
19
  "app/dashboard/page.tsx": string;
18
20
  "app/api/chat/route.ts": string;
19
21
  "app/login/page.tsx": string;
@@ -24,37 +26,41 @@ declare namespace _default {
24
26
  "tools/search.ts": string;
25
27
  };
26
28
  };
27
- chat: {
29
+ "chat-with-your-docs": {
28
30
  files: {
31
+ "README.md": string;
29
32
  "app/api/chat/route.ts": string;
30
33
  "app/layout.tsx": string;
31
34
  "app/page.tsx": string;
32
35
  "tsconfig.json": string;
33
- "agents/assistant.ts": string;
34
- "tools/calculator.ts": string;
36
+ "agents/qa.ts": string;
37
+ "content/getting-started.md": string;
38
+ "content/architecture.md": string;
39
+ "tools/search-docs.ts": string;
35
40
  };
36
41
  };
37
- minimal: {
42
+ "ai-agent": {
38
43
  files: {
39
- "app/about/page.mdx": string;
44
+ "README.md": string;
45
+ "app/api/chat/route.ts": string;
40
46
  "app/layout.tsx": string;
41
47
  "app/page.tsx": string;
48
+ "tsconfig.json": string;
49
+ "agents/assistant.ts": string;
50
+ "tools/calculator.ts": string;
42
51
  };
43
52
  };
44
- rag: {
53
+ minimal: {
45
54
  files: {
46
- "app/api/chat/route.ts": string;
55
+ "README.md": string;
56
+ "app/about/page.mdx": string;
47
57
  "app/layout.tsx": string;
48
58
  "app/page.tsx": string;
49
- "tsconfig.json": string;
50
- "agents/qa.ts": string;
51
- "content/getting-started.md": string;
52
- "content/architecture.md": string;
53
- "tools/search-docs.ts": string;
54
59
  };
55
60
  };
56
- "multi-agent": {
61
+ "multi-agent-system": {
57
62
  files: {
63
+ "README.md": string;
58
64
  "app/api/chat/route.ts": string;
59
65
  "app/layout.tsx": string;
60
66
  "app/page.tsx": string;
@@ -67,6 +73,7 @@ declare namespace _default {
67
73
  };
68
74
  "coding-agent": {
69
75
  files: {
76
+ "README.md": string;
70
77
  "app/api/chat/route.ts": string;
71
78
  "app/layout.tsx": string;
72
79
  "app/page.tsx": string;