veryfront 0.1.853 → 0.1.855

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 (65) hide show
  1. package/esm/cli/commands/generate/command-help.d.ts.map +1 -1
  2. package/esm/cli/commands/generate/command-help.js +7 -2
  3. package/esm/cli/commands/generate/command.d.ts.map +1 -1
  4. package/esm/cli/commands/generate/command.js +25 -101
  5. package/esm/cli/commands/generate/handler.d.ts +1 -1
  6. package/esm/cli/commands/generate/handler.d.ts.map +1 -1
  7. package/esm/cli/commands/generate/handler.js +2 -1
  8. package/esm/cli/commands/generate/integration-generator.js +4 -4
  9. package/esm/cli/commands/init/init-command.d.ts.map +1 -1
  10. package/esm/cli/commands/init/init-command.js +100 -1
  11. package/esm/cli/commands/mcp/command-help.js +1 -1
  12. package/esm/cli/commands/skills/command-help.js +1 -1
  13. package/esm/cli/commands/skills/command.d.ts +1 -1
  14. package/esm/cli/commands/skills/command.js +2 -2
  15. package/esm/cli/commands/skills/create.d.ts.map +1 -1
  16. package/esm/cli/commands/skills/create.js +14 -40
  17. package/esm/cli/commands/skills/handler.js +15 -16
  18. package/esm/cli/commands/skills/validate.d.ts +6 -0
  19. package/esm/cli/commands/skills/validate.d.ts.map +1 -1
  20. package/esm/cli/commands/skills/validate.js +18 -43
  21. package/esm/cli/mcp/server.js +4 -4
  22. package/esm/cli/mcp/standalone.js +4 -4
  23. package/esm/cli/mcp/tools/helpers.d.ts +0 -8
  24. package/esm/cli/mcp/tools/helpers.d.ts.map +1 -1
  25. package/esm/cli/mcp/tools/scaffold-tools.d.ts +2 -2
  26. package/esm/cli/mcp/tools/scaffold-tools.d.ts.map +1 -1
  27. package/esm/cli/mcp/tools/scaffold-tools.js +24 -193
  28. package/esm/cli/scaffold/engine.d.ts +33 -0
  29. package/esm/cli/scaffold/engine.d.ts.map +1 -0
  30. package/esm/cli/scaffold/engine.js +303 -0
  31. package/esm/cli/skills/core-skills.d.ts.map +1 -1
  32. package/esm/cli/skills/core-skills.js +23 -75
  33. package/esm/cli/skills/loader.d.ts +2 -2
  34. package/esm/cli/skills/loader.d.ts.map +1 -1
  35. package/esm/cli/skills/loader.js +14 -15
  36. package/esm/cli/skills/types.d.ts +2 -38
  37. package/esm/cli/skills/types.d.ts.map +1 -1
  38. package/esm/cli/skills/types.js +1 -27
  39. package/esm/cli/templates/index.d.ts +1 -0
  40. package/esm/cli/templates/index.d.ts.map +1 -1
  41. package/esm/cli/templates/index.js +4 -1
  42. package/esm/cli/templates/loader.d.ts +1 -0
  43. package/esm/cli/templates/loader.d.ts.map +1 -1
  44. package/esm/cli/templates/loader.js +6 -0
  45. package/esm/cli/templates/manifest.js +7 -7
  46. package/esm/deno.js +1 -1
  47. package/esm/src/agent/hosted/default-chat-runtime.d.ts.map +1 -1
  48. package/esm/src/agent/hosted/default-chat-runtime.js +6 -1
  49. package/esm/src/agent/runtime/constants.d.ts.map +1 -1
  50. package/esm/src/agent/runtime/constants.js +0 -2
  51. package/esm/src/agent/runtime/model-resolution.d.ts.map +1 -1
  52. package/esm/src/agent/runtime/model-resolution.js +14 -4
  53. package/esm/src/agent/runtime/skill-metadata.d.ts.map +1 -1
  54. package/esm/src/agent/runtime/skill-metadata.js +2 -1
  55. package/esm/src/integrations/_data.js +1 -1
  56. package/esm/src/provider/veryfront-cloud/model-catalog.d.ts +1 -0
  57. package/esm/src/provider/veryfront-cloud/model-catalog.d.ts.map +1 -1
  58. package/esm/src/provider/veryfront-cloud/model-catalog.js +13 -14
  59. package/esm/src/provider/veryfront-cloud/shared.d.ts.map +1 -1
  60. package/esm/src/provider/veryfront-cloud/shared.js +8 -0
  61. package/esm/src/skill/parser.d.ts.map +1 -1
  62. package/esm/src/skill/parser.js +2 -1
  63. package/esm/src/utils/version-constant.d.ts +1 -1
  64. package/esm/src/utils/version-constant.js +1 -1
  65. package/package.json +1 -1
@@ -5,7 +5,7 @@
5
5
  * This provides better IDE support (syntax highlighting, linting) compared
6
6
  * to inline string templates.
7
7
  */
8
- import { loadTemplateFromDirectory, templateDirectoryExists } from "./loader.js";
8
+ import { loadAiRuleTemplate, loadTemplateFromDirectory, templateDirectoryExists, } from "./loader.js";
9
9
  import { STARTER_TEMPLATE_NAMES } from "./types.js";
10
10
  export { AVAILABLE_FEATURES, featureExists, loadFeature, loadFeatureConfig, mergeConfig, mergeDependencies, mergeFiles, resolveFeatures, validateFeatures, } from "./feature-loader.js";
11
11
  export const templateConfigs = {
@@ -36,3 +36,6 @@ export async function getTemplate(name) {
36
36
  export function getTemplateConfig(name) {
37
37
  return templateConfigs[name] ?? null;
38
38
  }
39
+ export function getAiRuleTemplate(templateName) {
40
+ return loadAiRuleTemplate(templateName);
41
+ }
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import type { TemplateFile } from "./types.js";
9
9
  export declare function loadTemplateFromDirectory(templateName: string): Promise<TemplateFile[]>;
10
+ export declare function loadAiRuleTemplate(templateName: string): string | null;
10
11
  export declare function getTemplateDirectory(templateName: string): string;
11
12
  export declare function templateDirectoryExists(templateName: string): Promise<boolean>;
12
13
  export declare function getIntegrationTemplate(integrationName: string): TemplateFile[] | null;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgB/C,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,EAAE,CAAC,CAKzB;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,GACtB,YAAY,EAAE,GAAG,IAAI,CAKvB;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAIxC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAI3C"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgB/C,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,EAAE,CAAC,CAKzB;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKtE;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,GACtB,YAAY,EAAE,GAAG,IAAI,CAKvB;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAIxC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAI3C"}
@@ -18,6 +18,12 @@ export function loadTemplateFromDirectory(templateName) {
18
18
  return Promise.resolve([]);
19
19
  return Promise.resolve(getSortedFiles(entry));
20
20
  }
21
+ export function loadAiRuleTemplate(templateName) {
22
+ const entry = typedManifest.templates[`ai-rules:${templateName}`];
23
+ if (!entry)
24
+ return null;
25
+ return entry.files[templateName] ?? null;
26
+ }
21
27
  export function getTemplateDirectory(templateName) {
22
28
  // For compatibility - returns a virtual path since templates are in manifest
23
29
  return `manifest://${templateName}`;
@@ -93,7 +93,7 @@ export default {
93
93
  "app/login/page.tsx": "\"use client\";\n\n// Demo sign-in: the buttons below pass straight through to /dashboard so the\n// starter is usable out of the box. To wire up real OAuth, scaffold provider\n// routes at app/api/auth/google/route.ts and app/api/auth/github/route.ts and\n// point the hrefs there. See https://veryfront.com/docs/code/guides/oauth.\nexport default function LoginPage(): JSX.Element {\n return (\n <div className=\"min-h-screen flex items-center justify-center bg-neutral-50 dark:bg-neutral-950 px-4\">\n <div className=\"w-full max-w-sm\">\n <div className=\"text-center mb-8\">\n <h1 className=\"text-xl font-bold text-neutral-900 dark:text-white\">\n Welcome back\n </h1>\n <p className=\"text-sm text-neutral-500 dark:text-neutral-400 mt-1\">\n Sign in to continue\n </p>\n </div>\n\n <div className=\"bg-white dark:bg-neutral-900 rounded-2xl border border-neutral-200 dark:border-neutral-800 p-6 space-y-3\">\n <a\n href=\"/dashboard\"\n className=\"flex items-center justify-center gap-2 w-full px-4 py-2.5 border border-neutral-200 dark:border-neutral-800 rounded-xl text-sm font-medium text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors\"\n >\n <svg className=\"w-4 h-4\" viewBox=\"0 0 24 24\">\n <path\n fill=\"#4285F4\"\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 01-2.2 3.32v2.76h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\n />\n <path\n fill=\"#34A853\"\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M5.84 14.09a7.12 7.12 0 010-4.18V7.07H2.18A11.99 11.99 0 001 12c0 1.94.46 3.77 1.18 5.43l3.66-3.34z\"\n />\n <path\n fill=\"#EA4335\"\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"\n />\n </svg>\n Continue with Google\n </a>\n <a\n href=\"/dashboard\"\n className=\"flex items-center justify-center gap-2 w-full px-4 py-2.5 border border-neutral-200 dark:border-neutral-800 rounded-xl text-sm font-medium text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors\"\n >\n <svg className=\"w-4 h-4\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.51 11.51 0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z\" />\n </svg>\n Continue with GitHub\n </a>\n </div>\n\n <p className=\"mt-6 text-center text-xs text-neutral-400\">\n <a\n href=\"/\"\n className=\"hover:text-neutral-600 dark:hover:text-neutral-300\"\n >\n &larr; Back to home\n </a>\n </p>\n </div>\n </div>\n );\n}\n",
94
94
  "app/page.tsx": "export default function LandingPage(): JSX.Element {\n return (\n <div className=\"min-h-screen bg-white dark:bg-neutral-950\">\n {/* Nav */}\n <nav className=\"border-b border-neutral-100 dark:border-neutral-900\">\n <div className=\"max-w-5xl mx-auto flex items-center justify-between px-6 h-14\">\n <span className=\"font-semibold text-neutral-900 dark:text-white\">\n AI SaaS\n </span>\n <div className=\"flex items-center gap-4\">\n <a\n href=\"/login\"\n className=\"text-sm text-neutral-600 dark:text-neutral-400 hover:text-neutral-900 dark:hover:text-white transition-colors\"\n >\n Sign in\n </a>\n <a\n href=\"/login\"\n className=\"text-sm px-4 py-1.5 bg-neutral-900 dark:bg-white text-white dark:text-neutral-900 rounded-full font-medium hover:opacity-90 transition-opacity\"\n >\n Get started\n </a>\n </div>\n </div>\n </nav>\n\n {/* Hero */}\n <main className=\"max-w-5xl mx-auto px-6\">\n <div className=\"pt-24 pb-16 text-center\">\n <h1 className=\"text-4xl md:text-5xl font-bold tracking-tight text-neutral-900 dark:text-white\">\n Your AI-powered platform\n </h1>\n <p className=\"mt-4 text-lg text-neutral-500 dark:text-neutral-400 max-w-lg mx-auto\">\n Built with Veryfront. Agents, tools, and memory are ready for\n production.\n </p>\n <div className=\"mt-8 flex gap-3 justify-center\">\n <a\n href=\"/login\"\n className=\"px-6 py-2.5 bg-neutral-900 dark:bg-white text-white dark:text-neutral-900 rounded-full font-medium hover:opacity-90 transition-opacity\"\n >\n Start free\n </a>\n <a\n href=\"https://veryfront.com/docs/code/guides\"\n className=\"px-6 py-2.5 border border-neutral-200 dark:border-neutral-800 text-neutral-700 dark:text-neutral-300 rounded-full font-medium hover:bg-neutral-50 dark:hover:bg-neutral-900 transition-colors\"\n >\n Documentation\n </a>\n </div>\n </div>\n\n {/* Features */}\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-6 py-16 border-t border-neutral-100 dark:border-neutral-900\">\n {[\n {\n title: \"AI Agents\",\n desc: \"Define agents with tools, memory, and streaming. Veryfront auto-discovers them from your project.\",\n },\n {\n title: \"Per-User Memory\",\n desc: \"Each user gets their own conversation history, persisted across sessions.\",\n },\n {\n title: \"Production Ready\",\n desc: \"Use auth, rate limiting, and deployment to ship to production with one command.\",\n },\n ].map(({ title, desc }) => (\n <div key={title}>\n <h3 className=\"font-medium text-neutral-900 dark:text-white\">\n {title}\n </h3>\n <p className=\"mt-1 text-sm text-neutral-500 dark:text-neutral-400\">\n {desc}\n </p>\n </div>\n ))}\n </div>\n </main>\n </div>\n );\n}\n",
95
95
  "globals.css": "@import \"tailwindcss\";\n",
96
- "README.md": "# SaaS Starter\n\nA production-ready app with authentication, conversation memory, and a full UI.\n\n## What's included\n\n- Landing page with feature highlights\n- OAuth login (Google and GitHub)\n- Dashboard with conversation sidebar\n- Per-user conversation memory persisted across sessions\n\n## Structure\n\n```\nagents/assistant.ts Agent with conversation memory\ntools/search.ts Placeholder domain search\napp/\n api/ag-ui/route.ts AG-UI endpoint\n page.tsx Landing page\n login/page.tsx OAuth login\n dashboard/page.tsx Chat with sidebar\n```\n\nThis starter is not production-ready.\n",
96
+ "README.md": "# SaaS Starter\n\nA SaaS-shaped starter with authentication, conversation memory, and a full UI.\n\n## What's included\n\n- Landing page with feature highlights\n- OAuth login (Google and GitHub)\n- Dashboard with conversation sidebar\n- Per-user conversation memory persisted across sessions\n\n## Structure\n\n```\nagents/assistant.ts Agent with conversation memory\ntools/search.ts Placeholder domain search\napp/\n api/ag-ui/route.ts AG-UI endpoint\n page.tsx Landing page\n login/page.tsx OAuth login\n dashboard/page.tsx Chat with sidebar\n```\n\nThis starter is not production-ready.\n",
97
97
  "tools/search.ts": "import { tool } from \"veryfront/tool\";\nimport { defineSchema } from \"veryfront/schemas\";\n\nexport default tool({\n id: \"search\",\n description: \"Search your knowledge base\",\n inputSchema: defineSchema((v) => v.object({\n query: v.string().describe(\"Search query\"),\n }))(),\n execute: async ({ query }) => {\n // Replace with your domain-specific search logic\n return {\n results: [],\n query,\n message: \"Connect your data source for real results.\",\n };\n },\n});\n",
98
98
  "tsconfig.json": "{\n \"compilerOptions\": {\n \"target\": \"ES2022\",\n \"module\": \"ESNext\",\n \"moduleResolution\": \"bundler\",\n \"strict\": true,\n \"jsx\": \"react-jsx\",\n \"skipLibCheck\": true,\n \"esModuleInterop\": true,\n \"paths\": {\n \"@/*\": [\"./*\"]\n }\n },\n \"include\": [\"**/*.ts\", \"**/*.tsx\"],\n \"exclude\": [\"node_modules\"]\n}\n"
99
99
  }
@@ -608,32 +608,32 @@ export default {
608
608
  },
609
609
  "ai-rules:agents.md": {
610
610
  "files": {
611
- "agents.md": "# Veryfront Agent Instructions\n\nThis is a Veryfront project. Veryfront is a zero-config React meta-framework for AI-native applications.\n\n## Commands\n\n- `npx veryfront dev` - Start development server\n- `npx veryfront build` - Build for production\n- `npx veryfront deploy` - Deploy to cloud\n- `npx veryfront generate page <name>` - Generate a page\n- `npx veryfront generate api <name>` - Generate an API route\n\n## File Conventions\n\n- **Pages**: `src/pages/*.tsx` (file-based routing)\n- **APIs**: `src/api/*.ts` (serverless functions at `/api/*`)\n- **Components**: `src/components/*.tsx`\n- **AI Agents**: `agents/*.ts`\n- **MCP Tools**: `tools/*.ts`\n\n## Examples\n\n### Create a new page\n\n```tsx\n// src/pages/about.tsx\nexport default function About() {\n return <h1>About</h1>;\n}\n```\n\nThis page will be accessible at `/about`.\n\n### Create an API endpoint\n\n```ts\n// src/api/hello.ts\nexport function GET() {\n return Response.json({ message: \"Hello\" });\n}\n\nexport function POST(request: Request) {\n return Response.json({ success: true });\n}\n```\n\nThis API will be accessible at `/api/hello`.\n\n### Create a dynamic API route\n\n```ts\n// src/api/users/[id].ts\nexport function GET(_req: Request, { params }: { params: { id: string } }) {\n return Response.json({ userId: params.id });\n}\n```\n\nThis API will be accessible at `/api/users/:id`.\n\n## Technology Stack\n\n- **Runtime**: Deno\n- **UI Framework**: React 19\n- **Styling**: Tailwind CSS\n- **Language**: TypeScript\n\n## Best Practices\n\n- Co-locate tests with implementation files (`*.test.ts`)\n- Use `#veryfront/*` import aliases\n- Use React 19 features (use hook, Server Components)\n- Return `Response.json()` from API routes\n"
611
+ "agents.md": "# Veryfront project guide\n\nThis is a Veryfront project. Veryfront is a framework for building and running AI apps and agents in TypeScript and React.\n\n## Project conventions\n\nUse these folders as runtime boundaries. Create folders only when the feature needs them.\n\n- `app/`: pages, layouts, route handlers, and user-facing API routes.\n- `agents/`: model reasoning and tool use.\n- `tools/`: deterministic callable capabilities.\n- `workflows/`: multi-step coordination.\n- `tasks/`: background work targets.\n- `prompts/`: reusable prompt templates.\n- `resources/`: project data exposed to MCP clients.\n- `skills/`: reusable agent instructions in `skills/<id>/SKILL.md`.\n- `integrations/`: service connectors and integration-local code.\n\n## Developer loop\n\n1. Start local development with `veryfront dev`.\n2. Generate new files with `veryfront generate <type> <name>`.\n3. Inspect current CLI commands with `veryfront schema --json`.\n4. Use https://veryfront.com/docs when local files and CLI schema do not answer a Veryfront API or convention question.\n5. Run focused tests and lint before shipping.\n\n## Coding agent loop\n\nWhen the Veryfront MCP server is connected, call `vf_bootstrap` once at session start. Use `vf_get_conventions` before adding files, `vf_scaffold` for new routes and AI primitives, `vf_get_errors` after edits, and `vf_run_tests` or `vf_run_lint` for verification.\n\n`veryfront dev` starts the HTTP MCP endpoint on the app port plus 2. With the default app port, use `http://localhost:3002/mcp`.\n\nIf MCP is not connected, use `veryfront schema --json` and the documented CLI commands from the shell.\n\nPrefer Veryfront scaffold tools over hand-written boilerplate. Keep app routes, agents, tools, workflows, tasks, resources, prompts, and skills in their expected folders.\n\n## Inference\n\nAgent routes need model access. Use `veryfront login` for the Veryfront Cloud gateway, set `VERYFRONT_API_TOKEN`, or set provider keys such as `OPENAI_API_KEY` or `ANTHROPIC_API_KEY`.\n"
612
612
  }
613
613
  },
614
614
  "ai-rules:claude-code.md": {
615
615
  "files": {
616
- "claude-code.md": "# Veryfront Project\n\nZero-config React meta-framework for AI-native applications.\n\n## Quick Reference\n\n| Command | Purpose |\n| -------------------------------- | ---------------------------------------- |\n| `veryfront dev` | Start dev server (http://localhost:3000) |\n| `veryfront build` | Production build |\n| `veryfront deploy` | Deploy to Veryfront cloud |\n| `veryfront generate page <name>` | Generate new page |\n| `veryfront generate api <name>` | Generate API route |\n\n## Project Structure\n\n- `src/pages/*.tsx` Routes (file-based routing)\n- `src/api/*.ts` API endpoints (`/api/*`)\n- `src/components/` Shared components\n- `agents/` AI agents\n- `tools/` MCP tools\n\n## When Asked to Add Features\n\n1. **Pages**: Create in `src/pages/` (e.g., `about.tsx` `/about`)\n2. **APIs**: Create in `src/api/` (e.g., `users.ts` `/api/users`)\n3. **Components**: Create in `src/components/`\n4. **AI Agents**: Create in `agents/`\n\n## Code Patterns\n\n```tsx\n// Page (src/pages/about.tsx)\nexport default function About() {\n return <h1>About</h1>;\n}\n\n// API (src/api/hello.ts)\nexport function GET() {\n return Response.json({ message: \"Hello\" });\n}\n\n// Dynamic API (src/api/users/[id].ts)\nexport function GET(_req: Request, { params }: { params: { id: string } }) {\n return Response.json({ id: params.id });\n}\n```\n\n## Conventions\n\n- Use TypeScript\n- Use React 19 features\n- Use Tailwind for styling\n- Co-locate tests (`*.test.ts`)\n- Use `#veryfront/*` imports\n\n## Testing\n\n- Run `veryfront dev` and check browser\n- API endpoints at `/api/*`\n- Run `deno task test` for tests\n"
616
+ "claude-code.md": "# Veryfront project guide\n\nFollow `AGENTS.md` when it exists. If it does not exist, use this guide.\n\nThis is a Veryfront project. Veryfront is a framework for building and running AI apps and agents in TypeScript and React.\n\n## Project conventions\n\nUse these folders as runtime boundaries. Create folders only when the feature needs them.\n\n- `app/`: pages, layouts, route handlers, and user-facing API routes.\n- `agents/`: model reasoning and tool use.\n- `tools/`: deterministic callable capabilities.\n- `workflows/`: multi-step coordination.\n- `tasks/`: background work targets.\n- `prompts/`: reusable prompt templates.\n- `resources/`: project data exposed to MCP clients.\n- `skills/`: reusable agent instructions in `skills/<id>/SKILL.md`.\n- `integrations/`: service connectors and integration-local code.\n\n## Developer loop\n\n1. Start local development with `veryfront dev`.\n2. Generate new files with `veryfront generate <type> <name>`.\n3. Inspect current CLI commands with `veryfront schema --json`.\n4. Use https://veryfront.com/docs when local files and CLI schema do not answer a Veryfront API or convention question.\n5. Run focused tests and lint before shipping.\n\n## Coding agent loop\n\nWhen the Veryfront MCP server is connected, call `vf_bootstrap` once at session start. Use `vf_get_conventions` before adding files, `vf_scaffold` for new routes and AI primitives, `vf_get_errors` after edits, and `vf_run_tests` or `vf_run_lint` for verification.\n\n`veryfront dev` starts the HTTP MCP endpoint on the app port plus 2. With the default app port, use `http://localhost:3002/mcp`.\n\nIf MCP is not connected, use `veryfront schema --json` and the documented CLI commands from the shell.\n\nPrefer Veryfront scaffold tools over hand-written boilerplate. Keep app routes, agents, tools, workflows, tasks, resources, prompts, and skills in their expected folders.\n\n## Inference\n\nAgent routes need model access. Use `veryfront login` for the Veryfront Cloud gateway, set `VERYFRONT_API_TOKEN`, or set provider keys such as `OPENAI_API_KEY` or `ANTHROPIC_API_KEY`.\n"
617
617
  }
618
618
  },
619
619
  "ai-rules:copilot.md": {
620
620
  "files": {
621
- "copilot.md": "# Veryfront Project Instructions\n\nThis is a Veryfront project - a zero-config React meta-framework for AI-native applications.\n\n## CLI Commands\n\n- `veryfront dev` - Start development server with hot module replacement\n- `veryfront build` - Build for production deployment\n- `veryfront deploy` - Deploy to Veryfront cloud\n- `veryfront generate page <name>` - Scaffold a new page\n- `veryfront generate api <name>` - Scaffold an API route\n\n## File Structure\n\nThe project uses file-based routing:\n\n- `src/pages/*.tsx` - React pages (automatically become routes)\n- `src/api/*.ts` - API endpoints (accessible at `/api/*`)\n- `src/components/` - Shared React components\n- `agents/` - AI agent definitions\n- `tools/` - MCP tool implementations\n\n## Code Patterns\n\n### Creating a Page\n\n```tsx\n// src/pages/about.tsx accessible at /about\nexport default function About() {\n return <h1>About</h1>;\n}\n```\n\n### Creating an API Endpoint\n\n```ts\n// src/api/hello.ts accessible at /api/hello\nexport function GET() {\n return Response.json({ message: \"Hello\" });\n}\n\nexport function POST(request: Request) {\n // Handle POST request\n return Response.json({ success: true });\n}\n```\n\n### Dynamic Routes\n\n```ts\n// src/api/users/[id].ts accessible at /api/users/:id\nexport function GET(_req: Request, { params }: { params: { id: string } }) {\n return Response.json({ userId: params.id });\n}\n```\n\n## Technology Stack\n\n- Runtime: Deno\n- UI: React 19 with Server Components\n- Styling: Tailwind CSS\n- Language: TypeScript (required)\n\n## Best Practices\n\n- Co-locate test files with implementation (`*.test.ts`)\n- Use `#veryfront/*` import aliases for framework modules\n- Follow React 19 patterns (use hook, Server Components)\n- Use Response.json() for API responses\n"
621
+ "copilot.md": "# Veryfront project guide\n\nFollow `AGENTS.md` when it exists. If it does not exist, use this guide.\n\nThis is a Veryfront project. Veryfront is a framework for building and running AI apps and agents in TypeScript and React.\n\n## Project conventions\n\nUse these folders as runtime boundaries. Create folders only when the feature needs them.\n\n- `app/`: pages, layouts, route handlers, and user-facing API routes.\n- `agents/`: model reasoning and tool use.\n- `tools/`: deterministic callable capabilities.\n- `workflows/`: multi-step coordination.\n- `tasks/`: background work targets.\n- `prompts/`: reusable prompt templates.\n- `resources/`: project data exposed to MCP clients.\n- `skills/`: reusable agent instructions in `skills/<id>/SKILL.md`.\n- `integrations/`: service connectors and integration-local code.\n\n## Developer loop\n\n1. Start local development with `veryfront dev`.\n2. Generate new files with `veryfront generate <type> <name>`.\n3. Inspect current CLI commands with `veryfront schema --json`.\n4. Use https://veryfront.com/docs when local files and CLI schema do not answer a Veryfront API or convention question.\n5. Run focused tests and lint before shipping.\n\n## Coding agent loop\n\nWhen the Veryfront MCP server is connected, call `vf_bootstrap` once at session start. Use `vf_get_conventions` before adding files, `vf_scaffold` for new routes and AI primitives, `vf_get_errors` after edits, and `vf_run_tests` or `vf_run_lint` for verification.\n\n`veryfront dev` starts the HTTP MCP endpoint on the app port plus 2. With the default app port, use `http://localhost:3002/mcp`.\n\nIf MCP is not connected, use `veryfront schema --json` and the documented CLI commands from the shell.\n\nPrefer Veryfront scaffold tools over hand-written boilerplate. Keep app routes, agents, tools, workflows, tasks, resources, prompts, and skills in their expected folders.\n\n## Inference\n\nAgent routes need model access. Use `veryfront login` for the Veryfront Cloud gateway, set `VERYFRONT_API_TOKEN`, or set provider keys such as `OPENAI_API_KEY` or `ANTHROPIC_API_KEY`.\n"
622
622
  }
623
623
  },
624
624
  "ai-rules:cursor.md": {
625
625
  "files": {
626
- "cursor.md": "# Veryfront Project\n\nYou are in a Veryfront project - zero-config React meta-framework for AI-native applications.\n\n## Commands\n\n- `veryfront dev` - Start development server with HMR\n- `veryfront build` - Build for production\n- `veryfront deploy` - Deploy to Veryfront cloud\n- `veryfront generate page <name>` - Generate a new page\n- `veryfront generate api <name>` - Generate an API route\n\n## Project Structure\n\n```\nsrc/\n├── pages/ # File-based routing (pages/*.tsx routes)\n├── api/ # API routes (api/*.ts /api/*)\n├── components/ # Shared React components\n├── ai/\n│ ├── agents/ # AI agents\n│ └── tools/ # MCP tools\n└── styles/ # Global styles\n```\n\n## Adding Features\n\n- **New page**: Create `src/pages/about.tsx` accessible at `/about`\n- **API endpoint**: Create `src/api/users.ts` accessible at `/api/users`\n- **AI agent**: Create `agents/assistant.ts`\n- **MCP tool**: Create `tools/search.ts`\n\n## Conventions\n\n- TypeScript required\n- React 19 features (use, Server Components)\n- Tailwind CSS for styling\n- Co-locate tests with implementation (`*.test.ts`)\n- Use `#veryfront/*` imports for framework modules\n\n## File Patterns\n\n```tsx\n// Page component (src/pages/about.tsx)\nexport default function About() {\n return <h1>About</h1>;\n}\n\n// API route (src/api/hello.ts)\nexport function GET() {\n return Response.json({ message: \"Hello\" });\n}\n\n// API with params (src/api/users/[id].ts)\nexport function GET(_req: Request, { params }: { params: { id: string } }) {\n return Response.json({ id: params.id });\n}\n```\n\n## Testing\n\n- Run `veryfront dev` and check browser at http://localhost:3000\n- API endpoints available at `/api/*`\n- Use `deno task test` to run tests\n"
626
+ "cursor.md": "# Veryfront project guide\n\nFollow `AGENTS.md` when it exists. If it does not exist, use this guide.\n\nThis is a Veryfront project. Veryfront is a framework for building and running AI apps and agents in TypeScript and React.\n\n## Project conventions\n\nUse these folders as runtime boundaries. Create folders only when the feature needs them.\n\n- `app/`: pages, layouts, route handlers, and user-facing API routes.\n- `agents/`: model reasoning and tool use.\n- `tools/`: deterministic callable capabilities.\n- `workflows/`: multi-step coordination.\n- `tasks/`: background work targets.\n- `prompts/`: reusable prompt templates.\n- `resources/`: project data exposed to MCP clients.\n- `skills/`: reusable agent instructions in `skills/<id>/SKILL.md`.\n- `integrations/`: service connectors and integration-local code.\n\n## Developer loop\n\n1. Start local development with `veryfront dev`.\n2. Generate new files with `veryfront generate <type> <name>`.\n3. Inspect current CLI commands with `veryfront schema --json`.\n4. Use https://veryfront.com/docs when local files and CLI schema do not answer a Veryfront API or convention question.\n5. Run focused tests and lint before shipping.\n\n## Coding agent loop\n\nWhen the Veryfront MCP server is connected, call `vf_bootstrap` once at session start. Use `vf_get_conventions` before adding files, `vf_scaffold` for new routes and AI primitives, `vf_get_errors` after edits, and `vf_run_tests` or `vf_run_lint` for verification.\n\n`veryfront dev` starts the HTTP MCP endpoint on the app port plus 2. With the default app port, use `http://localhost:3002/mcp`.\n\nIf MCP is not connected, use `veryfront schema --json` and the documented CLI commands from the shell.\n\nPrefer Veryfront scaffold tools over hand-written boilerplate. Keep app routes, agents, tools, workflows, tasks, resources, prompts, and skills in their expected folders.\n\n## Inference\n\nAgent routes need model access. Use `veryfront login` for the Veryfront Cloud gateway, set `VERYFRONT_API_TOKEN`, or set provider keys such as `OPENAI_API_KEY` or `ANTHROPIC_API_KEY`.\n"
627
627
  }
628
628
  },
629
629
  "ai-rules:skill.md": {
630
630
  "files": {
631
- "skill.md": "---\nname: veryfront\ndescription: Build and deploy fullstack AI-native React apps with Veryfront CLI\nlicense: MIT\ncompatibility: Claude Code, Cursor, VS Code, Codex, Gemini CLI\nmetadata:\n author: veryfront\n version: \"1.0\"\n---\n\n# Veryfront\n\nZero-config React meta-framework for AI-native applications.\n\n## Commands\n\n| Command | Purpose |\n| -------------------------------- | --------------------------------- |\n| `veryfront dev` | Start development server with HMR |\n| `veryfront build` | Build for production |\n| `veryfront deploy` | Deploy to Veryfront cloud |\n| `veryfront generate page <name>` | Generate a new page |\n| `veryfront generate api <name>` | Generate an API route |\n\n## Project Structure\n\n```\nsrc/\n├── pages/ # File-based routing (*.tsx routes)\n├── api/ # API routes (*.ts /api/*)\n├── components/ # Shared React components\n├── ai/\n│ ├── agents/ # AI agents\n│ └── tools/ # MCP tools\n└── styles/ # Global styles\n```\n\n## Adding Features\n\n- **New page**: Create `src/pages/about.tsx` `/about`\n- **API endpoint**: Create `src/api/users.ts` `/api/users`\n- **AI agent**: Create `agents/assistant.ts`\n- **MCP tool**: Create `tools/search.ts`\n\n## Code Examples\n\n### Page Component\n\n```tsx\n// src/pages/about.tsx\nexport default function About() {\n return <h1>About</h1>;\n}\n```\n\n### API Route\n\n```ts\n// src/api/hello.ts\nexport function GET() {\n return Response.json({ message: \"Hello\" });\n}\n```\n\n### Dynamic API Route\n\n```ts\n// src/api/users/[id].ts\nexport function GET(_req: Request, { params }: { params: { id: string } }) {\n return Response.json({ id: params.id });\n}\n```\n\n## Conventions\n\n- TypeScript required\n- React 19 features (use, Server Components)\n- Tailwind CSS for styling\n- Co-locate tests with implementation\n- Use `#veryfront/*` imports for framework modules\n\n## Testing\n\n- Development: `veryfront dev` (http://localhost:3000)\n- API endpoints: `/api/*`\n- Run tests: `deno task test`\n"
631
+ "skill.md": "---\nname: veryfront\ndescription: Build and run AI apps and agents with Veryfront CLI\nlicense: Apache-2.0\ncompatibility: Claude Code, Cursor, VS Code, Codex, Gemini CLI\nmetadata:\n author: veryfront\n version: \"1.0\"\n---\n\n# Veryfront\n\nVeryfront is a framework for building and running AI apps and agents in TypeScript and React.\n\n## Project conventions\n\nUse these folders as runtime boundaries. Create folders only when the feature needs them.\n\n- `app/`: pages, layouts, route handlers, and user-facing API routes.\n- `agents/`: model reasoning and tool use.\n- `tools/`: deterministic callable capabilities.\n- `workflows/`: multi-step coordination.\n- `tasks/`: background work targets.\n- `prompts/`: reusable prompt templates.\n- `resources/`: project data exposed to MCP clients.\n- `skills/`: reusable agent instructions in `skills/<id>/SKILL.md`.\n- `integrations/`: service connectors and integration-local code.\n\n## Developer loop\n\n1. Start local development with `veryfront dev`.\n2. Generate new files with `veryfront generate <type> <name>`.\n3. Inspect current CLI commands with `veryfront schema --json`.\n4. Use https://veryfront.com/docs when local files and CLI schema do not answer a Veryfront API or convention question.\n5. Run focused tests and lint before shipping.\n\n## Coding agent loop\n\nWhen the Veryfront MCP server is connected, call `vf_bootstrap` once at session start. Use `vf_get_conventions` before adding files, `vf_scaffold` for new routes and AI primitives, `vf_get_errors` after edits, and `vf_run_tests` or `vf_run_lint` for verification.\n\n`veryfront dev` starts the HTTP MCP endpoint on the app port plus 2. With the default app port, use `http://localhost:3002/mcp`.\n\nIf MCP is not connected, use `veryfront schema --json` and the documented CLI commands from the shell.\n\n## Inference\n\nAgent routes need model access. Use `veryfront login` for the Veryfront Cloud gateway, set `VERYFRONT_API_TOKEN`, or set provider keys such as `OPENAI_API_KEY` or `ANTHROPIC_API_KEY`.\n"
632
632
  }
633
633
  },
634
634
  "ai-rules:windsurf.md": {
635
635
  "files": {
636
- "windsurf.md": "# Veryfront Project\n\nYou are in a Veryfront project - zero-config React meta-framework for AI-native applications.\n\n## Commands\n\n- `veryfront dev` - Start development server with HMR\n- `veryfront build` - Build for production\n- `veryfront deploy` - Deploy to Veryfront cloud\n- `veryfront generate page <name>` - Generate a new page\n- `veryfront generate api <name>` - Generate an API route\n\n## Project Structure\n\n```\nsrc/\n├── pages/ # File-based routing (pages/*.tsx routes)\n├── api/ # API routes (api/*.ts /api/*)\n├── components/ # Shared React components\n├── ai/\n│ ├── agents/ # AI agents\n│ └── tools/ # MCP tools\n└── styles/ # Global styles\n```\n\n## Adding Features\n\n- **New page**: Create `src/pages/about.tsx` accessible at `/about`\n- **API endpoint**: Create `src/api/users.ts` accessible at `/api/users`\n- **AI agent**: Create `agents/assistant.ts`\n- **MCP tool**: Create `tools/search.ts`\n\n## Conventions\n\n- TypeScript required\n- React 19 features (use, Server Components)\n- Tailwind CSS for styling\n- Co-locate tests with implementation (`*.test.ts`)\n- Use `#veryfront/*` imports for framework modules\n\n## File Patterns\n\n```tsx\n// Page component (src/pages/about.tsx)\nexport default function About() {\n return <h1>About</h1>;\n}\n\n// API route (src/api/hello.ts)\nexport function GET() {\n return Response.json({ message: \"Hello\" });\n}\n\n// API with params (src/api/users/[id].ts)\nexport function GET(_req: Request, { params }: { params: { id: string } }) {\n return Response.json({ id: params.id });\n}\n```\n\n## Testing\n\n- Run `veryfront dev` and check browser at http://localhost:3000\n- API endpoints available at `/api/*`\n- Use `deno task test` to run tests\n"
636
+ "windsurf.md": "# Veryfront project guide\n\nFollow `AGENTS.md` when it exists. If it does not exist, use this guide.\n\nThis is a Veryfront project. Veryfront is a framework for building and running AI apps and agents in TypeScript and React.\n\n## Project conventions\n\nUse these folders as runtime boundaries. Create folders only when the feature needs them.\n\n- `app/`: pages, layouts, route handlers, and user-facing API routes.\n- `agents/`: model reasoning and tool use.\n- `tools/`: deterministic callable capabilities.\n- `workflows/`: multi-step coordination.\n- `tasks/`: background work targets.\n- `prompts/`: reusable prompt templates.\n- `resources/`: project data exposed to MCP clients.\n- `skills/`: reusable agent instructions in `skills/<id>/SKILL.md`.\n- `integrations/`: service connectors and integration-local code.\n\n## Developer loop\n\n1. Start local development with `veryfront dev`.\n2. Generate new files with `veryfront generate <type> <name>`.\n3. Inspect current CLI commands with `veryfront schema --json`.\n4. Use https://veryfront.com/docs when local files and CLI schema do not answer a Veryfront API or convention question.\n5. Run focused tests and lint before shipping.\n\n## Coding agent loop\n\nWhen the Veryfront MCP server is connected, call `vf_bootstrap` once at session start. Use `vf_get_conventions` before adding files, `vf_scaffold` for new routes and AI primitives, `vf_get_errors` after edits, and `vf_run_tests` or `vf_run_lint` for verification.\n\n`veryfront dev` starts the HTTP MCP endpoint on the app port plus 2. With the default app port, use `http://localhost:3002/mcp`.\n\nIf MCP is not connected, use `veryfront schema --json` and the documented CLI commands from the shell.\n\nPrefer Veryfront scaffold tools over hand-written boilerplate. Keep app routes, agents, tools, workflows, tasks, resources, prompts, and skills in their expected folders.\n\n## Inference\n\nAgent routes need model access. Use `veryfront login` for the Veryfront Cloud gateway, set `VERYFRONT_API_TOKEN`, or set provider keys such as `OPENAI_API_KEY` or `ANTHROPIC_API_KEY`.\n"
637
637
  }
638
638
  }
639
639
  }
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.853",
3
+ "version": "0.1.855",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "minimumDependencyAge": {
@@ -1 +1 @@
1
- {"version":3,"file":"default-chat-runtime.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/default-chat-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-chat-runtime.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/default-chat-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAmB7B,OAAO,KAAK,EACV,gCAAgC,EAChC,+BAA+B,EAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,mCAAmC,EAExC,KAAK,yCAAyC,EAC/C,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EACV,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,gCAAgC,CAAC;AAIxC,yDAAyD;AACzD,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;CACrD,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACjE,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,uCAAuC,GAC/C,gCAAgC,CAChC,8BAA8B,EAC9B,0BAA0B,CAC3B,GACC;IACA,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEJ,oDAAoD;AACpD,MAAM,MAAM,mCAAmC,GAAG,iCAAiC,GAAG;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,uCAAuC,CAAC,eAAe,CAAC,CAAC;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,sBAAsB,CAAC,EAAE,uCAAuC,CAAC,wBAAwB,CAAC,CAAC;IAC3F,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,wBAAwB,CAAC,EAAE,uCAAuC,CAAC,0BAA0B,CAAC,CAAC;CAChG,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,0CAA0C,GAAG;IACvD,OAAO,EAAE,uCAAuC,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,0CAA0C,GAAG;IACvD,WAAW,EAAE,mCAAmC,CAAC;IACjD,mBAAmB,EAAE,WAAW,CAAC,uCAAuC,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACjG,YAAY,EAAE,mCAAmC,CAAC;CACnD,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,6CAA6C,GAAG;IAC1D,QAAQ,EAAE,6BAA6B,CAAC;IACxC,WAAW,EAAE,mCAAmC,CAAC;CAClD,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,0CAA0C,GAAG;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,mCAAmC,CAAC;CAClD,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,qCAAqC,GAAG;IAClD,OAAO,EAAE,uCAAuC,CAAC;IACjD,MAAM,EAAE,8BAA8B,CAAC;IACvC,eAAe,EAAE,CAAC,WAAW,EAAE,mCAAmC,KAAK,WAAW,CAAC;IACnF,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,0CAA0C,KAC9C,mCAAmC,CAAC;IACzC,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,0CAA0C,KAC9C,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,CACnB,KAAK,EAAE,6CAA6C,KACjD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,qBAAqB,CAAC,EAAE,CACtB,KAAK,EAAE,0CAA0C,KAC9C,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,8BAA8B,CAAC,EAC7B,yCAAyC,CAAC,gCAAgC,CAAC,CAAC;IAC9E,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,gBAAgB,CAAC;IACjF,eAAe,CAAC,EAAE,yCAAyC,CAAC,iBAAiB,CAAC,CAAC;IAC/E,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,8BAA8B,CAAC;CACzC,CAAC;AAqKF,0CAA0C;AAC1C,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,qCAAqC,GAC3C,OAAO,CAAC,+BAA+B,CAAC,CAyD1C"}
@@ -3,6 +3,7 @@ import { runWithRequestContextAsync, serverLogger } from "../../utils/index.js";
3
3
  import { resolveVeryfrontCloudModelId, resolveVeryfrontCloudThinkingProviderOptions, } from "../../provider/veryfront-cloud/model-catalog.js";
4
4
  import { runWithVeryfrontCloudContext, runWithVeryfrontCloudContextAsync, } from "../../provider/veryfront-cloud/context.js";
5
5
  import { agent } from "../factory.js";
6
+ import { markRuntimeLocalTool } from "../runtime/local-tool.js";
6
7
  import { applyDefaultResearchArtifactPath, createDefaultResearchRunArtifactMirrorHandler, shouldRetryCreateResearchArtifactAsUpdate, } from "../artifacts/default-research-artifact-support.js";
7
8
  import { createHostedChatRuntimeAgentAdapter } from "./chat-runtime-agent-adapter.js";
8
9
  import { prepareHostedChatRuntimeToolAssembly, } from "./chat-runtime-tool-assembly.js";
@@ -79,11 +80,15 @@ function createRuntimeAgentConfig(input) {
79
80
  toolAssembly: input.toolAssembly,
80
81
  })
81
82
  : undefined;
83
+ const runtimeTools = Object.fromEntries(Object.entries(input.toolAssembly.runtimeTools).map(([toolName, runtimeTool]) => [
84
+ toolName,
85
+ markRuntimeLocalTool(runtimeTool),
86
+ ]));
82
87
  const runtimeConfig = {
83
88
  id: "veryfront-hosted-runtime",
84
89
  model: input.modelId,
85
90
  system: input.toolAssembly.systemInstructions,
86
- tools: input.toolAssembly.runtimeTools,
91
+ tools: runtimeTools,
87
92
  providerTools: input.toolAssembly.providerToolNames,
88
93
  __vfRemoteToolSources: input.toolAssembly.remoteToolSources,
89
94
  __vfAllowedRemoteTools: input.toolAssembly.compatibleRemoteToolNames,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,MAA2B,CAAC;AAC3D,eAAO,MAAM,mBAAmB,GAA6B,CAAC;AAC9D,eAAO,MAAM,sBAAsB,QAAmC,CAAC;AACvE,eAAO,MAAM,iBAAiB,KAAK,CAAC;AA+BpC,sFAAsF;AACtF,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK/E"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,MAA2B,CAAC;AAC3D,eAAO,MAAM,mBAAmB,GAA6B,CAAC;AAC9D,eAAO,MAAM,sBAAsB,QAAmC,CAAC;AACvE,eAAO,MAAM,iBAAiB,KAAK,CAAC;AA6BpC,sFAAsF;AACtF,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK/E"}
@@ -18,8 +18,6 @@ const MODEL_MAX_OUTPUT_TOKENS = {
18
18
  "google-ai-studio/gemini-2.5-pro": 65_536,
19
19
  "google-ai-studio/gemini-2.5-flash": 65_536,
20
20
  "mistral/mistral-large-2512": 131_072,
21
- "mistral/mistral-medium-3-5": 131_072,
22
- "mistral/mistral-small-2603": 131_072,
23
21
  };
24
22
  const MODEL_MAX_OUTPUT_TOKEN_ALIASES = {
25
23
  "google/gemini-3.1-pro": "google-ai-studio/gemini-3.1-pro-preview",
@@ -1 +1 @@
1
- {"version":3,"file":"model-resolution.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/model-resolution.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAgDvC,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAWlE;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CA6B1D"}
1
+ {"version":3,"file":"model-resolution.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/model-resolution.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,gBAAgB,SAAS,CAAC;AA4CvC,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAWlE;AA0BD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAoC1D"}
@@ -1,5 +1,6 @@
1
1
  import { getAnthropicEnvConfig, getGoogleGenAIEnvConfig, getMistralEnvConfig, getOpenAIEnvConfig, } from "../../config/env.js";
2
2
  import { findAvailableCloudModel } from "../../provider/index.js";
3
+ import { findVeryfrontCloudModelByModelId } from "../../provider/veryfront-cloud/model-catalog.js";
3
4
  import { DEFAULT_LOCAL_MODEL } from "../../provider/local/model-catalog.js";
4
5
  import { isVeryfrontCloudEnabled } from "../../platform/cloud/resolver.js";
5
6
  export const AUTO_AGENT_MODEL = "auto";
@@ -39,10 +40,6 @@ const LEGACY_MODEL_ALIASES = {
39
40
  "gemini-3.1-flash-lite": "google-ai-studio/gemini-3.1-flash-lite",
40
41
  "gemini-2.5-pro": "google-ai-studio/gemini-2.5-pro",
41
42
  "gemini-2.5-flash": "google-ai-studio/gemini-2.5-flash",
42
- "mistral-small": "mistral/mistral-small-2603",
43
- "mistral-small-2603": "mistral/mistral-small-2603",
44
- "mistral-medium": "mistral/mistral-medium-3-5",
45
- "mistral-medium-3-5": "mistral/mistral-medium-3-5",
46
43
  "mistral-large": "mistral/mistral-large-2512",
47
44
  "mistral-large-2512": "mistral/mistral-large-2512",
48
45
  "kimi-k2.6": "moonshotai/kimi-k2.6",
@@ -76,6 +73,13 @@ function hasDirectProviderCredentials(provider) {
76
73
  return false;
77
74
  }
78
75
  }
76
+ function isSupportedHostedMistralModel(modelId) {
77
+ return Boolean(findVeryfrontCloudModelByModelId(`mistral/${modelId}`));
78
+ }
79
+ function isUnsupportedVeryfrontCloudMistralModel(modelId) {
80
+ return modelId.startsWith("veryfront-cloud/mistral/") &&
81
+ !findVeryfrontCloudModelByModelId(modelId);
82
+ }
79
83
  /**
80
84
  * Resolve the effective runtime model string for agent execution.
81
85
  *
@@ -89,6 +93,9 @@ function hasDirectProviderCredentials(provider) {
89
93
  export function resolveRuntimeModel(model) {
90
94
  const configuredModel = resolveConfiguredAgentModel(model);
91
95
  if (configuredModel.startsWith("veryfront-cloud/")) {
96
+ if (isUnsupportedVeryfrontCloudMistralModel(configuredModel)) {
97
+ throw new Error(`Unsupported Mistral model "${configuredModel}"`);
98
+ }
92
99
  return configuredModel;
93
100
  }
94
101
  if (configuredModel.startsWith("local/")) {
@@ -103,6 +110,9 @@ export function resolveRuntimeModel(model) {
103
110
  if (!HOSTED_PROVIDER_NAMES.has(provider) || !modelId) {
104
111
  return configuredModel;
105
112
  }
113
+ if (provider === "mistral" && !isSupportedHostedMistralModel(modelId)) {
114
+ return configuredModel;
115
+ }
106
116
  if (!isVeryfrontCloudEnabled() || hasDirectProviderCredentials(provider)) {
107
117
  const runtimeProvider = DIRECT_RUNTIME_PROVIDER_ALIASES[provider] ?? provider;
108
118
  return `${runtimeProvider}/${modelId}`;
@@ -1 +1 @@
1
- {"version":3,"file":"skill-metadata.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/skill-metadata.ts"],"names":[],"mappings":"AAmBA,yDAAyD;AACzD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,eAAO,MAAM,gCAAgC,iFAuB5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,2EAA+C,CAAC;AAE1F,oCAAoC;AACpC,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC,EACxD,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAET;AAED,sEAAsE;AACtE,MAAM,MAAM,kCAAkC,GAAG;IAC/C,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wCAAwC,EAAE,MAAM,CAAC;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACvE,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAwBF,qCAAqC;AACrC,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,0BAA0B,CAAA;CAAO,GACpD,0BAA0B,GAAG,IAAI,CAsBnC;AAED,qCAAqC;AACrC,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,0BAA0B,CAAA;CAAO,GACpD,uBAAuB,GAAG,IAAI,CAEhC;AAED,0CAA0C;AAC1C,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,0BAA0B,CAAC;CACrC,GAAG,sBAAsB,GAAG,IAAI,CAwBhC;AAED,+CAA+C;AAC/C,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa9E;AAED,uDAAuD;AACvD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,kCAAkC,CAAC;IAC7C,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,0BAA0B,CAAC;CACrC,GAAG,0BAA0B,CAkD7B"}
1
+ {"version":3,"file":"skill-metadata.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/skill-metadata.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export const getRuntimeSkillFrontmatterSchema = defineSchema((v) => v
16
16
  name: v.string().optional(),
17
17
  description: v.string().optional(),
18
18
  "allowed-tools": v.union([v.string(), v.array(v.string())]).optional(),
19
+ allowed_tools: v.union([v.string(), v.array(v.string())]).optional(),
19
20
  model: v.string().optional(),
20
21
  thinking: v.union([v.literal(false), v.coerce.number().int().positive()]).optional(),
21
22
  "max-steps": v.coerce.number().int().positive().optional(),
@@ -27,7 +28,7 @@ export const getRuntimeSkillFrontmatterSchema = defineSchema((v) => v
27
28
  name: (typeof d.name === "string" ? d.name.trim() : undefined) || undefined,
28
29
  description: (typeof d.description === "string" ? d.description.trim() : undefined) ||
29
30
  undefined,
30
- allowedTools: normalizeAllowedTools(d["allowed-tools"]),
31
+ allowedTools: normalizeAllowedTools((d["allowed-tools"] ?? d.allowed_tools)),
31
32
  model: (typeof d.model === "string" ? d.model.trim() : undefined) || undefined,
32
33
  thinking: d.thinking,
33
34
  maxSteps: d["max-steps"],
@@ -32465,7 +32465,7 @@ export const connectors = [
32465
32465
  "model": {
32466
32466
  "type": "string",
32467
32467
  "in": "path",
32468
- "description": "Model ID, e.g. mistral-large-2512 or mistral-small-2603",
32468
+ "description": "Model ID, e.g. mistral-large-2512",
32469
32469
  "required": true,
32470
32470
  },
32471
32471
  },
@@ -17,6 +17,7 @@ export type VeryfrontCloudChatModel = {
17
17
  export declare const DEFAULT_VERYFRONT_CLOUD_MODEL_ID = "opus";
18
18
  /** Shared Veryfront Cloud model prefix value. */
19
19
  export declare const VERYFRONT_CLOUD_MODEL_PREFIX = "veryfront-cloud/";
20
+ export declare function isSupportedMistralModelId(modelId: string): boolean;
20
21
  /** Shared Veryfront Cloud chat models value. */
21
22
  export declare const VERYFRONT_CLOUD_CHAT_MODELS: VeryfrontCloudChatModel[];
22
23
  /** Find Veryfront Cloud model. */
@@ -1 +1 @@
1
- {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/model-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,4DAA4D;AAC5D,MAAM,MAAM,iCAAiC,GAAG;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,wBAAwB,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,gCAAgC,SAAS,CAAC;AACvD,iDAAiD;AACjD,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAW/D,gDAAgD;AAChD,eAAO,MAAM,2BAA2B,EAAE,uBAAuB,EAyEhE,CAAC;AAEF,kCAAkC;AAClC,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAEvF;AAED,2CAA2C;AAC3C,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItE;AAED,8CAA8C;AAC9C,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,GACd,uBAAuB,GAAG,SAAS,CAGrC;AAED,qDAAqD;AACrD,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,MAAM,GACd,wBAAwB,CAe1B;AAED,yDAAyD;AACzD,wBAAgB,uCAAuC,CACrD,OAAO,EAAE,MAAM,GACd,wBAAwB,GAAG,SAAS,CAMtC;AAED,yCAAyC;AACzC,wBAAgB,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBnE;AAED,iDAAiD;AACjD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,MAAM,GAAG,SAAS,CAcpB;AAED,+CAA+C;AAC/C,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,iCAAiC,GAAG,SAAS,CAc/C;AAED,qEAAqE;AACrE,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iCAAiC,GAAG,SAAS,GACtD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAqBrC;AAkBD,gDAAgD;AAChD,wBAAgB,mCAAmC,IAAI,KAAK,CAAC;IAC3D,QAAQ,EAAE,wBAAwB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,uBAAuB,EAAE,CAAC;CACnC,CAAC,CAMD;AAED,gDAAgD;AAChD,eAAO,MAAM,kCAAkC,4CAAsC,CAAC"}
1
+ {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/model-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,4DAA4D;AAC5D,MAAM,MAAM,iCAAiC,GAAG;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,wBAAwB,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,gCAAgC,SAAS,CAAC;AACvD,iDAAiD;AACjD,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAW/D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAElE;AAED,gDAAgD;AAChD,eAAO,MAAM,2BAA2B,EAAE,uBAAuB,EA2DhE,CAAC;AAEF,kCAAkC;AAClC,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAEvF;AAED,2CAA2C;AAC3C,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItE;AAED,8CAA8C;AAC9C,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,GACd,uBAAuB,GAAG,SAAS,CAGrC;AAED,qDAAqD;AACrD,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,MAAM,GACd,wBAAwB,CAe1B;AAED,yDAAyD;AACzD,wBAAgB,uCAAuC,CACrD,OAAO,EAAE,MAAM,GACd,wBAAwB,GAAG,SAAS,CAMtC;AAED,yCAAyC;AACzC,wBAAgB,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBnE;AAED,iDAAiD;AACjD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,MAAM,GAAG,SAAS,CAsBpB;AAED,+CAA+C;AAC/C,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,iCAAiC,GAAG,SAAS,CAc/C;AAED,qEAAqE;AACrE,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iCAAiC,GAAG,SAAS,GACtD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAqBrC;AAkBD,gDAAgD;AAChD,wBAAgB,mCAAmC,IAAI,KAAK,CAAC;IAC3D,QAAQ,EAAE,wBAAwB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,uBAAuB,EAAE,CAAC;CACnC,CAAC,CAMD;AAED,gDAAgD;AAChD,eAAO,MAAM,kCAAkC,4CAAsC,CAAC"}
@@ -10,6 +10,9 @@ const VERYFRONT_CLOUD_GATEWAY_MODEL_PROVIDER_PREFIXES = [
10
10
  "mistral/",
11
11
  "moonshotai/",
12
12
  ];
13
+ export function isSupportedMistralModelId(modelId) {
14
+ return VERYFRONT_CLOUD_CHAT_MODELS.some((model) => model.modelId === modelId);
15
+ }
13
16
  /** Shared Veryfront Cloud chat models value. */
14
17
  export const VERYFRONT_CLOUD_CHAT_MODELS = [
15
18
  {
@@ -56,20 +59,6 @@ export const VERYFRONT_CLOUD_CHAT_MODELS = [
56
59
  name: "Gemini 3.5 Flash",
57
60
  description: "Fast and cost-efficient",
58
61
  },
59
- {
60
- id: "mistral-small-2603",
61
- modelId: "mistral/mistral-small-2603",
62
- provider: "mistral",
63
- name: "Mistral Small 2603",
64
- description: "Fast Mistral model for everyday tasks",
65
- },
66
- {
67
- id: "mistral-medium-3-5",
68
- modelId: "mistral/mistral-medium-3-5",
69
- provider: "mistral",
70
- name: "Mistral Medium 3.5",
71
- description: "Balanced Mistral model for multi-step work",
72
- },
73
62
  {
74
63
  id: "mistral-large-2512",
75
64
  modelId: "mistral/mistral-large-2512",
@@ -132,6 +121,9 @@ export function resolveVeryfrontCloudModelId(alias) {
132
121
  return catalogModel.modelId;
133
122
  }
134
123
  if (requestedModel.includes("/")) {
124
+ if (requestedModel.startsWith("mistral/") && !isSupportedMistralModelId(requestedModel)) {
125
+ throw new Error(`Unsupported Mistral model "${requestedModel}"`);
126
+ }
135
127
  return requestedModel;
136
128
  }
137
129
  const model = findVeryfrontCloudModel(requestedModel);
@@ -146,6 +138,13 @@ export function resolveVeryfrontCloudGatewayModelId(modelId) {
146
138
  return modelId;
147
139
  }
148
140
  if (modelId.startsWith(VERYFRONT_CLOUD_MODEL_PREFIX)) {
141
+ const unprefixedModelId = modelId.slice(VERYFRONT_CLOUD_MODEL_PREFIX.length);
142
+ if (unprefixedModelId.startsWith("mistral/") && !isSupportedMistralModelId(unprefixedModelId)) {
143
+ return modelId;
144
+ }
145
+ return modelId;
146
+ }
147
+ if (modelId.startsWith("mistral/") && !isSupportedMistralModelId(modelId)) {
149
148
  return modelId;
150
149
  }
151
150
  return VERYFRONT_CLOUD_GATEWAY_MODEL_PROVIDER_PREFIXES.some((prefix) => modelId.startsWith(prefix))
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/shared.ts"],"names":[],"mappings":"AAGA,2DAA2D;AAC3D,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,YAAY,CAAC;AAEjB,UAAU,2BAA2B;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAiCD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,GAAG,WAAW,GAC7B,2BAA2B,CA+B7B;AAED,wBAAgB,8BAA8B,IAAI;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAmBA;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,wBAAwB,GACjC,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,KAAK,CAed"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/shared.ts"],"names":[],"mappings":"AAIA,2DAA2D;AAC3D,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,YAAY,CAAC;AAEjB,UAAU,2BAA2B;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAiCD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,GAAG,WAAW,GAC7B,2BAA2B,CA2C7B;AAED,wBAAgB,8BAA8B,IAAI;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAmBA;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,wBAAwB,GACjC,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,KAAK,CAed"}
@@ -1,5 +1,6 @@
1
1
  import { createError, toError } from "../../errors/veryfront-error.js";
2
2
  import { getVeryfrontCloudBootstrap } from "../../platform/cloud/resolver.js";
3
+ import { isSupportedMistralModelId } from "./model-catalog.js";
3
4
  const PROVIDER_ALIASES = {
4
5
  anthropic: "anthropic",
5
6
  openai: "openai",
@@ -44,6 +45,13 @@ export function parseVeryfrontCloudModelId(modelId, kind) {
44
45
  `Supported providers: openai, google.`,
45
46
  }));
46
47
  }
48
+ if (kind === "language" && normalizedProvider === "mistral" &&
49
+ !isSupportedMistralModelId(`mistral/${upstreamModelId}`)) {
50
+ throw toError(createError({
51
+ type: "config",
52
+ message: `Unsupported Mistral model "mistral/${upstreamModelId}"`,
53
+ }));
54
+ }
47
55
  return {
48
56
  provider: normalizedProvider,
49
57
  modelId: upstreamModelId,
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/src/skill/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhG,wCAAwC;AACxC,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAYxF;AA+BD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,aAAa,EAAE,MAAM,GACpB,aAAa,CAiDf"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/src/skill/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhG,wCAAwC;AACxC,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAYxF;AA+BD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,aAAa,EAAE,MAAM,GACpB,aAAa,CAkDf"}
@@ -79,7 +79,8 @@ export function validateSkillMetadata(frontmatter, directoryName) {
79
79
  }
80
80
  const description = rawDescription.trim().slice(0, SKILL_DESCRIPTION_MAX_LENGTH);
81
81
  // Allowed-tools: parse from space-delimited string or array
82
- const allowedTools = parseAllowedTools(frontmatter["allowed-tools"], rawName);
82
+ const allowedToolPatterns = frontmatter["allowed-tools"] ?? frontmatter.allowed_tools;
83
+ const allowedTools = parseAllowedTools(allowedToolPatterns, rawName);
83
84
  // License: optional string passthrough
84
85
  const license = typeof frontmatter.license === "string" ? frontmatter.license.trim() : undefined;
85
86
  // Compatibility: optional string passthrough
@@ -1,3 +1,3 @@
1
1
  /** Shared version value. */
2
- export declare const VERSION = "0.1.853";
2
+ export declare const VERSION = "0.1.855";
3
3
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
3
  /** Shared version value. */
4
- export const VERSION = "0.1.853";
4
+ export const VERSION = "0.1.855";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.853",
3
+ "version": "0.1.855",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",