@auto-engineer/react-gen 1.135.0 → 1.137.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/agents/create-codegen-agent.d.ts +5 -0
- package/dist/src/agents/create-codegen-agent.d.ts.map +1 -0
- package/dist/src/agents/create-codegen-agent.js +30 -0
- package/dist/src/agents/create-codegen-agent.js.map +1 -0
- package/dist/src/agents/create-constants-agent.d.ts.map +1 -1
- package/dist/src/agents/create-constants-agent.js +25 -8
- package/dist/src/agents/create-constants-agent.js.map +1 -1
- package/dist/src/agents/create-landing-page-agent.d.ts.map +1 -1
- package/dist/src/agents/create-landing-page-agent.js +3 -4
- package/dist/src/agents/create-landing-page-agent.js.map +1 -1
- package/dist/src/agents/create-narrative-agent.d.ts.map +1 -1
- package/dist/src/agents/create-narrative-agent.js +4 -5
- package/dist/src/agents/create-narrative-agent.js.map +1 -1
- package/dist/src/agents/create-pipeline.d.ts +1 -0
- package/dist/src/agents/create-pipeline.d.ts.map +1 -1
- package/dist/src/agents/create-pipeline.js +4 -2
- package/dist/src/agents/create-pipeline.js.map +1 -1
- package/dist/src/agents/create-router-agent.d.ts.map +1 -1
- package/dist/src/agents/create-router-agent.js +3 -4
- package/dist/src/agents/create-router-agent.js.map +1 -1
- package/dist/src/agents/create-theme-agent.d.ts.map +1 -1
- package/dist/src/agents/create-theme-agent.js +3 -4
- package/dist/src/agents/create-theme-agent.js.map +1 -1
- package/dist/src/agents/create-validation-agent.d.ts.map +1 -1
- package/dist/src/agents/create-validation-agent.js +3 -4
- package/dist/src/agents/create-validation-agent.js.map +1 -1
- package/dist/src/commands/generate-react-app.d.ts.map +1 -1
- package/dist/src/commands/generate-react-app.js +2 -1
- package/dist/src/commands/generate-react-app.js.map +1 -1
- package/dist/src/prompts/build-narrative-context.d.ts +1 -1
- package/dist/src/prompts/build-narrative-context.d.ts.map +1 -1
- package/dist/src/prompts/build-narrative-context.js +25 -6
- package/dist/src/prompts/build-narrative-context.js.map +1 -1
- package/dist/src/prompts/narrative-system.d.ts +1 -1
- package/dist/src/prompts/narrative-system.d.ts.map +1 -1
- package/dist/src/prompts/narrative-system.js +15 -8
- package/dist/src/prompts/narrative-system.js.map +1 -1
- package/dist/src/prompts/router-system.d.ts +1 -1
- package/dist/src/prompts/router-system.d.ts.map +1 -1
- package/dist/src/prompts/router-system.js +2 -2
- package/dist/src/prompts/validation-system.d.ts +1 -1
- package/dist/src/prompts/validation-system.d.ts.map +1 -1
- package/dist/src/prompts/validation-system.js +5 -2
- package/dist/src/prompts/validation-system.js.map +1 -1
- package/dist/src/tools/check-imports.d.ts.map +1 -1
- package/dist/src/tools/check-imports.js +7 -2
- package/dist/src/tools/check-imports.js.map +1 -1
- package/dist/src/tools/list-files.d.ts.map +1 -1
- package/dist/src/tools/list-files.js +2 -0
- package/dist/src/tools/list-files.js.map +1 -1
- package/dist/src/tools/load-skills.d.ts +8 -0
- package/dist/src/tools/load-skills.d.ts.map +1 -0
- package/dist/src/tools/load-skills.js +28 -0
- package/dist/src/tools/load-skills.js.map +1 -0
- package/dist/src/tools/write-file.d.ts.map +1 -1
- package/dist/src/tools/write-file.js +10 -0
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/types.d.ts +19 -19
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +4 -4
- package/dist/src/types.js.map +1 -1
- package/dist/starter/codegen.ts +17 -0
- package/dist/starter/package.json +5 -1
- package/dist/starter/pnpm-lock.yaml +2382 -85
- package/dist/starter/src/App.tsx +1 -1
- package/dist/starter/src/gql/execute.ts +9 -0
- package/dist/starter/src/gql/fragment-masking.ts +82 -0
- package/dist/starter/src/gql/gql.ts +6 -0
- package/dist/starter/src/gql/graphql.ts +37 -0
- package/dist/starter/src/gql/index.ts +2 -0
- package/dist/starter/src/main.tsx +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/starter/codegen.ts +17 -0
- package/starter/package.json +5 -1
- package/starter/pnpm-lock.yaml +2382 -85
- package/starter/src/App.tsx +1 -1
- package/starter/src/gql/execute.ts +9 -0
- package/starter/src/gql/fragment-masking.ts +82 -0
- package/starter/src/gql/gql.ts +6 -0
- package/starter/src/gql/graphql.ts +37 -0
- package/starter/src/gql/index.ts +2 -0
- package/starter/src/main.tsx +1 -1
- package/dist/starter/package-lock.json +0 -7590
- package/starter/package-lock.json +0 -7590
|
@@ -11,23 +11,30 @@ Key rules you MUST follow:
|
|
|
11
11
|
- shadcn/ui components must be customized — never use default unstyled state.
|
|
12
12
|
|
|
13
13
|
## TECHNICAL CONSTRAINTS
|
|
14
|
-
- queries.ts ALREADY
|
|
15
|
-
-
|
|
16
|
-
- NEVER
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
- queries.ts and mutations.ts ALREADY exist with typed GraphQL operations — their content is shown below. Import from "./queries" or "./mutations".
|
|
15
|
+
- NEVER create new GraphQL operations or query strings. ALL operations you need are already in queries.ts/mutations.ts.
|
|
16
|
+
- NEVER write to queries.ts or mutations.ts — they are protected and will be rejected.
|
|
17
|
+
- If a slice has no request field, it does not need a GraphQL call — build it as a static/local component.
|
|
18
|
+
- ALWAYS use execute() from "@/gql/execute" with @tanstack/react-query. Types are inferred automatically.
|
|
19
|
+
- NEVER manually define response or variable types for GraphQL operations — they are inferred from the typed operations.
|
|
20
|
+
- NEVER import { request } from "graphql-request" or use graphqlClient.request() directly — ALWAYS use the typed execute() function.
|
|
21
|
+
CORRECT: import { execute } from "@/gql/execute"; import { MY_QUERY } from './queries.js'; execute(MY_QUERY, { id })
|
|
22
|
+
WRONG: import { graphqlClient } from "@/lib/graphql-client"; graphqlClient.request<ManualType>(QUERY, vars)
|
|
23
|
+
WRONG: import { request } from "graphql-request"; request("/graphql", QUERY, vars)
|
|
19
24
|
- Use shadcn/ui components from "@/components/ui/..." (customized) — never raw HTML elements.
|
|
20
25
|
- Use react-hook-form + zod when you need forms.
|
|
21
26
|
- Tailwind CSS only — no .css files.
|
|
22
27
|
- Use lucide-react for icons.
|
|
23
28
|
- Use toast from "sonner" for feedback.
|
|
24
29
|
- Skip "react" type slices — they are server-only.
|
|
25
|
-
- Don't write App.tsx, main.tsx, index.css, anything in src/lib/ or src/components/ui/.
|
|
26
|
-
- BEFORE generating, call read_file on queries.ts to see the available constants.
|
|
30
|
+
- Don't write App.tsx, main.tsx, index.css, anything in src/lib/, src/gql/, or src/components/ui/.
|
|
27
31
|
|
|
28
32
|
## FILE STRUCTURE
|
|
29
33
|
- Feature components: src/features/<narrative-slug>/
|
|
30
|
-
- REQUIRED: src/features/<narrative-slug>/index.ts — must
|
|
34
|
+
- REQUIRED: src/features/<narrative-slug>/index.ts — must re-export all components as NAMED exports.
|
|
35
|
+
- NEVER use default exports anywhere. ALL exports must be named exports (export function X, export const X).
|
|
36
|
+
- Example index.ts: export { WorkoutLogForm } from './WorkoutLogForm.js';
|
|
37
|
+
- Page files: src/pages/<NarrativeName>Page.tsx — export function <NarrativeName>Page() { ... }
|
|
31
38
|
|
|
32
39
|
## DESIGN QUALITY — MANDATORY
|
|
33
40
|
The output must look like a premium SaaS product. Be creative with layouts — don't default to the same structure every time.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"narrative-system.js","sourceRoot":"","sources":["../../../src/prompts/narrative-system.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG
|
|
1
|
+
{"version":3,"file":"narrative-system.js","sourceRoot":"","sources":["../../../src/prompts/narrative-system.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4FAyDqD,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const ROUTER_SYSTEM_PROMPT = "You are a senior design engineer. Create the app shell (App.tsx) that wires up routing and navigation for the generated features. Use write_file to create it.\n\n## MANDATORY SKILL COMPLIANCE\nYou have ACTIVE SKILLS injected below. They are hard requirements, not suggestions. Violations will be rejected.\n\n## PROCESS\n1. Call list_files to see what feature components have been generated.\n2. Call read_file on each feature's index.ts to find their exports.\n3. Call read_file on src/components/landing-page.tsx to see the landing page (already generated).\n4. Write src/App.tsx \u2014 the router shell with polished navigation.\n\n## APP.TSX\n- Wrap in <BrowserRouter> from react-router-dom (main.tsx does NOT provide a router).\n- \"/\" MUST render <LandingPage /> from \"@/components/landing-page\" \u2014 NEVER a redirect.\n- Navigation: design a TOP header (NOT a sidebar) that fits this app's identity. Include app name with a relevant icon, links to features.\n Use: sticky top-0 z-10 bg-background/80 backdrop-blur-sm border-b\n- Do NOT use a sidebar layout. Use a horizontal top navigation bar.\n- Each feature gets its own route.\n- Catch-all 404 using <NotFound /> from \"@/components/not-found\".\n- Wrap content in QueryClientProvider from @tanstack/react-query.\n- Export
|
|
1
|
+
export declare const ROUTER_SYSTEM_PROMPT = "You are a senior design engineer. Create the app shell (App.tsx) that wires up routing and navigation for the generated features. Use write_file to create it.\n\n## MANDATORY SKILL COMPLIANCE\nYou have ACTIVE SKILLS injected below. They are hard requirements, not suggestions. Violations will be rejected.\n\n## PROCESS\n1. Call list_files to see what feature components have been generated.\n2. Call read_file on each feature's index.ts to find their exports.\n3. Call read_file on src/components/landing-page.tsx to see the landing page (already generated).\n4. Write src/App.tsx \u2014 the router shell with polished navigation.\n\n## APP.TSX\n- Wrap in <BrowserRouter> from react-router-dom (main.tsx does NOT provide a router).\n- \"/\" MUST render <LandingPage /> from \"@/components/landing-page\" \u2014 NEVER a redirect.\n- Navigation: design a TOP header (NOT a sidebar) that fits this app's identity. Include app name with a relevant icon, links to features.\n Use: sticky top-0 z-10 bg-background/80 backdrop-blur-sm border-b\n- Do NOT use a sidebar layout. Use a horizontal top navigation bar.\n- Each feature gets its own route.\n- Catch-all 404 using <NotFound /> from \"@/components/not-found\".\n- Wrap content in QueryClientProvider from @tanstack/react-query.\n- Export as named export: export function App() { ... }. NEVER use default exports.\n\n## AVAILABLE IMPORTS\n- react-router-dom: BrowserRouter, Routes, Route, Link, NavLink\n- lucide-react: any icon\n- @/components/ui/*: Button, Card, CardHeader, CardTitle, CardContent, CardDescription, Badge, Separator\n- @/lib/utils: cn() helper\n- @/components/not-found: NotFound\n- @/components/landing-page: LandingPage (named export)\n- @tanstack/react-query: QueryClient, QueryClientProvider\n\nDO NOT modify main.tsx, landing-page.tsx, or any feature files. You may ONLY write src/App.tsx.\n\nAfter writing App.tsx, call exit_loop to finish.";
|
|
2
2
|
//# sourceMappingURL=router-system.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-system.d.ts","sourceRoot":"","sources":["../../../src/prompts/router-system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"router-system.d.ts","sourceRoot":"","sources":["../../../src/prompts/router-system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,i4DAiCgB,CAAC"}
|
|
@@ -18,7 +18,7 @@ You have ACTIVE SKILLS injected below. They are hard requirements, not suggestio
|
|
|
18
18
|
- Each feature gets its own route.
|
|
19
19
|
- Catch-all 404 using <NotFound /> from "@/components/not-found".
|
|
20
20
|
- Wrap content in QueryClientProvider from @tanstack/react-query.
|
|
21
|
-
- Export
|
|
21
|
+
- Export as named export: export function App() { ... }. NEVER use default exports.
|
|
22
22
|
|
|
23
23
|
## AVAILABLE IMPORTS
|
|
24
24
|
- react-router-dom: BrowserRouter, Routes, Route, Link, NavLink
|
|
@@ -26,7 +26,7 @@ You have ACTIVE SKILLS injected below. They are hard requirements, not suggestio
|
|
|
26
26
|
- @/components/ui/*: Button, Card, CardHeader, CardTitle, CardContent, CardDescription, Badge, Separator
|
|
27
27
|
- @/lib/utils: cn() helper
|
|
28
28
|
- @/components/not-found: NotFound
|
|
29
|
-
- @/components/landing-page:
|
|
29
|
+
- @/components/landing-page: LandingPage (named export)
|
|
30
30
|
- @tanstack/react-query: QueryClient, QueryClientProvider
|
|
31
31
|
|
|
32
32
|
DO NOT modify main.tsx, landing-page.tsx, or any feature files. You may ONLY write src/App.tsx.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VALIDATION_SYSTEM_PROMPT = "You are a TypeScript build validator for a generated React application. Your job is to ensure the project compiles and meets quality standards.\n\n## Process\n1. Run `run_tsc` to check for TypeScript errors\n2. Run `run_eslint` to check for lint errors\n3. Run `check_imports` to detect banned import patterns (e.g. direct graphql-request usage)\n4. If there are errors from ANY of the above:\n a. Use `read_file` to read the problematic files\n b. Fix errors using `write_file`\n c. Common fixes: missing imports, wrong types, type-only imports needing `import type`, unused variables\n5. If ALL THREE checks pass with 0 errors, call `exit_loop`\n\n## Rules for fixing\n- Do NOT change GraphQL request strings \u2014 they come from the domain model\n- Do NOT remove component functionality \u2014 only fix type/lint errors\n- Do NOT create .css files \u2014 convert any CSS to Tailwind classes\n- shadcn/ui imports: `import { Component } from \"@/components/ui/component\"`\n- If a component uses raw HTML inputs/tables/buttons, replace them with shadcn/ui equivalents\n- Add `import type` for type-only imports if verbatimModuleSyntax is enabled\n- CRITICAL:
|
|
1
|
+
export declare const VALIDATION_SYSTEM_PROMPT = "You are a TypeScript build validator for a generated React application. Your job is to ensure the project compiles and meets quality standards.\n\n## Process\n1. Run `run_tsc` to check for TypeScript errors\n2. Run `run_eslint` to check for lint errors\n3. Run `check_imports` to detect banned import patterns (e.g. direct graphql-request usage)\n4. If there are errors from ANY of the above:\n a. Use `read_file` to read the problematic files\n b. Fix errors using `write_file`\n c. Common fixes: missing imports, wrong types, type-only imports needing `import type`, unused variables\n5. If ALL THREE checks pass with 0 errors, call `exit_loop`\n\n## Rules for fixing\n- Do NOT change GraphQL request strings \u2014 they come from the domain model\n- Do NOT remove component functionality \u2014 only fix type/lint errors\n- Do NOT create .css files \u2014 convert any CSS to Tailwind classes\n- shadcn/ui imports: `import { Component } from \"@/components/ui/component\"`\n- If a component uses raw HTML inputs/tables/buttons, replace them with shadcn/ui equivalents\n- Add `import type` for type-only imports if verbatimModuleSyntax is enabled\n- CRITICAL: All GraphQL calls MUST use `execute()` from \"@/gql/execute\" with typed operations from queries.ts/mutations.ts. Fix pattern:\n WRONG: import { request } from \"graphql-request\"; ... request(\"/graphql\", QUERY, vars)\n WRONG: import { graphqlClient } from \"@/lib/graphql-client\"; ... graphqlClient.request<Type>(QUERY, vars)\n CORRECT: import { execute } from \"@/gql/execute\"; import { MY_QUERY } from \"./queries\"; ... execute(MY_QUERY, vars)\n- Do NOT modify files in src/gql/ \u2014 they are generated by graphql-codegen.\n- Do NOT modify queries.ts or mutations.ts in feature directories \u2014 they are generated from the domain model.\n- CRITICAL: The \"/\" route in App.tsx MUST render a LandingPage component, NEVER a <Navigate> redirect. If App.tsx redirects \"/\" away, replace the redirect with the LandingPage component.\n- NEVER modify or rewrite src/components/landing-page.tsx \u2014 it is pre-generated and must not be changed.\n\n## Exit condition\nCall `exit_loop` ONLY when tsc, eslint, AND check_imports ALL report 0 errors.";
|
|
2
2
|
//# sourceMappingURL=validation-system.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-system.d.ts","sourceRoot":"","sources":["../../../src/prompts/validation-system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"validation-system.d.ts","sourceRoot":"","sources":["../../../src/prompts/validation-system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,urEA6B4C,CAAC"}
|
|
@@ -17,9 +17,12 @@ export const VALIDATION_SYSTEM_PROMPT = `You are a TypeScript build validator fo
|
|
|
17
17
|
- shadcn/ui imports: \`import { Component } from "@/components/ui/component"\`
|
|
18
18
|
- If a component uses raw HTML inputs/tables/buttons, replace them with shadcn/ui equivalents
|
|
19
19
|
- Add \`import type\` for type-only imports if verbatimModuleSyntax is enabled
|
|
20
|
-
- CRITICAL:
|
|
20
|
+
- CRITICAL: All GraphQL calls MUST use \`execute()\` from "@/gql/execute" with typed operations from queries.ts/mutations.ts. Fix pattern:
|
|
21
21
|
WRONG: import { request } from "graphql-request"; ... request("/graphql", QUERY, vars)
|
|
22
|
-
|
|
22
|
+
WRONG: import { graphqlClient } from "@/lib/graphql-client"; ... graphqlClient.request<Type>(QUERY, vars)
|
|
23
|
+
CORRECT: import { execute } from "@/gql/execute"; import { MY_QUERY } from './queries.js'; ... execute(MY_QUERY, vars)
|
|
24
|
+
- Do NOT modify files in src/gql/ — they are generated by graphql-codegen.
|
|
25
|
+
- Do NOT modify queries.ts or mutations.ts in feature directories — they are generated from the domain model.
|
|
23
26
|
- CRITICAL: The "/" route in App.tsx MUST render a LandingPage component, NEVER a <Navigate> redirect. If App.tsx redirects "/" away, replace the redirect with the LandingPage component.
|
|
24
27
|
- NEVER modify or rewrite src/components/landing-page.tsx — it is pre-generated and must not be changed.
|
|
25
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-system.js","sourceRoot":"","sources":["../../../src/prompts/validation-system.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG
|
|
1
|
+
{"version":3,"file":"validation-system.js","sourceRoot":"","sources":["../../../src/prompts/validation-system.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFA6ByC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-imports.d.ts","sourceRoot":"","sources":["../../../src/tools/check-imports.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check-imports.d.ts","sourceRoot":"","sources":["../../../src/tools/check-imports.ts"],"names":[],"mappings":"AA+GA,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM;;;;GA8CvD"}
|
|
@@ -6,7 +6,12 @@ const BANNED_LINE_PATTERNS = [
|
|
|
6
6
|
{
|
|
7
7
|
regex: /import\s*\{[^}]*\brequest\b[^}]*\}\s*from\s*["']graphql-request["']/,
|
|
8
8
|
pattern: 'import { request } from "graphql-request"',
|
|
9
|
-
fix: 'Replace with: import {
|
|
9
|
+
fix: 'Replace with: import { execute } from "@/gql/execute"; then use execute(TYPED_QUERY, vars)',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
regex: /graphqlClient\.request\s*</,
|
|
13
|
+
pattern: 'graphqlClient.request<Type>() — manual type parameter bypasses codegen types',
|
|
14
|
+
fix: 'Replace with: import { execute } from "@/gql/execute"; execute(TYPED_QUERY, vars) — types are inferred automatically.',
|
|
10
15
|
},
|
|
11
16
|
{
|
|
12
17
|
regex: /<Route\s[^>]*path\s*=\s*["']\/["'][^>]*element\s*=\s*\{?\s*<Navigate\b/,
|
|
@@ -18,7 +23,7 @@ function walkDir(dir, ext) {
|
|
|
18
23
|
const results = [];
|
|
19
24
|
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
20
25
|
const full = path.join(dir, entry.name);
|
|
21
|
-
if (entry.isDirectory() && entry.name !== 'node_modules' && entry.name !== 'ui') {
|
|
26
|
+
if (entry.isDirectory() && entry.name !== 'node_modules' && entry.name !== 'ui' && entry.name !== 'gql') {
|
|
22
27
|
results.push(...walkDir(full, ext));
|
|
23
28
|
}
|
|
24
29
|
else if (entry.isFile() && ext.some((e) => entry.name.endsWith(e))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-imports.js","sourceRoot":"","sources":["../../../src/tools/check-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,MAAM,oBAAoB,GAAG;IAC3B;QACE,KAAK,EAAE,qEAAqE;QAC5E,OAAO,EAAE,2CAA2C;QACpD,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"check-imports.js","sourceRoot":"","sources":["../../../src/tools/check-imports.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-files.d.ts","sourceRoot":"","sources":["../../../src/tools/list-files.ts"],"names":[],"mappings":"AAKA,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM;;
|
|
1
|
+
{"version":3,"file":"list-files.d.ts","sourceRoot":"","sources":["../../../src/tools/list-files.ts"],"names":[],"mappings":"AAKA,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM;;GA6BpD"}
|
|
@@ -21,6 +21,8 @@ export function createListFilesTool(outputDir) {
|
|
|
21
21
|
continue;
|
|
22
22
|
if (dir === path.join(outputDir, 'src', 'components') && entry.name === 'ui')
|
|
23
23
|
continue;
|
|
24
|
+
if (dir === path.join(outputDir, 'src') && entry.name === 'gql')
|
|
25
|
+
continue;
|
|
24
26
|
await walk(full);
|
|
25
27
|
}
|
|
26
28
|
else if (/\.(tsx?|css)$/.test(entry.name)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-files.js","sourceRoot":"","sources":["../../../src/tools/list-files.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,IAAI,CAAC;QACV,WAAW,EACT,qJAAqJ;QACvJ,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACnC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACvB,CAAC;YACD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,UAAU,IAAI,CAAC,GAAW;gBAC7B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACxB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;4BAAE,SAAS;wBAC5C,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;4BAAE,SAAS;wBACvF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,CAAC;yBAAM,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC5C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"list-files.js","sourceRoot":"","sources":["../../../src/tools/list-files.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,IAAI,CAAC;QACV,WAAW,EACT,qJAAqJ;QACvJ,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACnC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACvB,CAAC;YACD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,UAAU,IAAI,CAAC,GAAW;gBAC7B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACxB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;4BAAE,SAAS;wBAC5C,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;4BAAE,SAAS;wBACvF,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;4BAAE,SAAS;wBAC1E,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,CAAC;yBAAM,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC5C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-skills.d.ts","sourceRoot":"","sources":["../../../src/tools/load-skills.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE;;;cAM7B,MAAM;sBAAgB,MAAM;;GAevD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { getSkillToolkit } from '../utils/create-skill-tool.js';
|
|
6
|
+
export function createLoadSkillsTool(skillNames) {
|
|
7
|
+
return tool({
|
|
8
|
+
description: `Load all ${skillNames.length} required design/quality skills at once. Call this ONCE at the start before doing any work.`,
|
|
9
|
+
inputSchema: z.object({}),
|
|
10
|
+
execute: async () => {
|
|
11
|
+
const toolkit = await getSkillToolkit();
|
|
12
|
+
const loaded = [];
|
|
13
|
+
for (const name of skillNames) {
|
|
14
|
+
const skill = toolkit.skills.find((s) => s.name === name);
|
|
15
|
+
if (skill) {
|
|
16
|
+
const mdPath = path.join(skill.localPath, 'SKILL.md');
|
|
17
|
+
if (await fs.pathExists(mdPath)) {
|
|
18
|
+
const content = await fs.readFile(mdPath, 'utf-8');
|
|
19
|
+
const body = content.replace(/^---[\s\S]*?---\n*/, '');
|
|
20
|
+
loaded.push({ name, instructions: body });
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return { skills_loaded: loaded.length, skills: loaded };
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=load-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-skills.js","sourceRoot":"","sources":["../../../src/tools/load-skills.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,UAAU,oBAAoB,CAAC,UAAoB;IACvD,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,YAAY,UAAU,CAAC,MAAM,6FAA6F;QACvI,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;YACxC,MAAM,MAAM,GAA6C,EAAE,CAAC;YAC5D,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBAC1D,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;oBACtD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;wBAChC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;wBACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;wBACvD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC1D,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../../src/tools/write-file.ts"],"names":[],"mappings":"AAiBA,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../../src/tools/write-file.ts"],"names":[],"mappings":"AAiBA,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;;;;;;GAwCzF"}
|
|
@@ -33,6 +33,16 @@ export function createWriteFileTool(outputDir, opts) {
|
|
|
33
33
|
error: `PROTECTED: shadcn/ui components in src/components/ui/ are pre-installed. Do not overwrite them.`,
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
|
+
if (normalized.startsWith('src/gql/')) {
|
|
37
|
+
return {
|
|
38
|
+
error: `PROTECTED: src/gql/ contains generated GraphQL types. Do not overwrite.`,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (/^src\/features\/[^/]+\/(queries|mutations)\.ts$/.test(normalized)) {
|
|
42
|
+
return {
|
|
43
|
+
error: `PROTECTED: queries.ts/mutations.ts files are generated from the domain model. Do not overwrite.`,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
36
46
|
}
|
|
37
47
|
const abs = path.resolve(outputDir, normalized);
|
|
38
48
|
await fs.ensureDir(path.dirname(abs));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/write-file.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,eAAe,GAAG;IACtB,cAAc;IACd,eAAe;IACf,eAAe;IACf,aAAa;IACb,kBAAkB;IAClB,2BAA2B;IAC3B,uBAAuB;IACvB,mCAAmC;IACnC,8BAA8B;CAC/B,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,IAAmC;IACxF,OAAO,IAAI,CAAC;QACV,WAAW,EACT,yUAAyU;QAC3U,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAChE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SAC3D,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAEhD,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC1B,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzC,OAAO;wBACL,KAAK,EAAE,oBAAoB,UAAU,kGAAkG;qBACxI,CAAC;gBACJ,CAAC;gBACD,IAAI,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBAChD,OAAO;wBACL,KAAK,EAAE,iGAAiG;qBACzG,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAChD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC7C,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/write-file.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,eAAe,GAAG;IACtB,cAAc;IACd,eAAe;IACf,eAAe;IACf,aAAa;IACb,kBAAkB;IAClB,2BAA2B;IAC3B,uBAAuB;IACvB,mCAAmC;IACnC,8BAA8B;CAC/B,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,IAAmC;IACxF,OAAO,IAAI,CAAC;QACV,WAAW,EACT,yUAAyU;QAC3U,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAChE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SAC3D,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAEhD,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC1B,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzC,OAAO;wBACL,KAAK,EAAE,oBAAoB,UAAU,kGAAkG;qBACxI,CAAC;gBACJ,CAAC;gBACD,IAAI,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBAChD,OAAO;wBACL,KAAK,EAAE,iGAAiG;qBACzG,CAAC;gBACJ,CAAC;gBACD,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,OAAO;wBACL,KAAK,EAAE,yEAAyE;qBACjF,CAAC;gBACJ,CAAC;gBACD,IAAI,iDAAiD,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBACvE,OAAO;wBACL,KAAK,EAAE,iGAAiG;qBACzG,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAChD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC7C,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export type ClientSpecNode = {
|
|
3
|
-
id
|
|
3
|
+
id?: string;
|
|
4
4
|
type: 'describe' | 'it';
|
|
5
5
|
title: string;
|
|
6
6
|
children?: ClientSpecNode[];
|
|
7
7
|
};
|
|
8
8
|
declare const gherkinStepSchema: z.ZodObject<{
|
|
9
|
-
id: z.ZodString
|
|
9
|
+
id: z.ZodOptional<z.ZodString>;
|
|
10
10
|
keyword: z.ZodEnum<{
|
|
11
11
|
Given: "Given";
|
|
12
12
|
When: "When";
|
|
@@ -18,10 +18,10 @@ declare const gherkinStepSchema: z.ZodObject<{
|
|
|
18
18
|
docString: z.ZodOptional<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown>]>>;
|
|
19
19
|
}, z.core.$strip>;
|
|
20
20
|
declare const gherkinExampleSchema: z.ZodObject<{
|
|
21
|
-
id: z.ZodString
|
|
21
|
+
id: z.ZodOptional<z.ZodString>;
|
|
22
22
|
name: z.ZodString;
|
|
23
23
|
steps: z.ZodArray<z.ZodObject<{
|
|
24
|
-
id: z.ZodString
|
|
24
|
+
id: z.ZodOptional<z.ZodString>;
|
|
25
25
|
keyword: z.ZodEnum<{
|
|
26
26
|
Given: "Given";
|
|
27
27
|
When: "When";
|
|
@@ -34,13 +34,13 @@ declare const gherkinExampleSchema: z.ZodObject<{
|
|
|
34
34
|
}, z.core.$strip>>;
|
|
35
35
|
}, z.core.$strip>;
|
|
36
36
|
declare const gherkinRuleSchema: z.ZodObject<{
|
|
37
|
-
id: z.ZodString
|
|
37
|
+
id: z.ZodOptional<z.ZodString>;
|
|
38
38
|
name: z.ZodString;
|
|
39
39
|
examples: z.ZodArray<z.ZodObject<{
|
|
40
|
-
id: z.ZodString
|
|
40
|
+
id: z.ZodOptional<z.ZodString>;
|
|
41
41
|
name: z.ZodString;
|
|
42
42
|
steps: z.ZodArray<z.ZodObject<{
|
|
43
|
-
id: z.ZodString
|
|
43
|
+
id: z.ZodOptional<z.ZodString>;
|
|
44
44
|
keyword: z.ZodEnum<{
|
|
45
45
|
Given: "Given";
|
|
46
46
|
When: "When";
|
|
@@ -57,13 +57,13 @@ declare const gherkinSpecSchema: z.ZodObject<{
|
|
|
57
57
|
type: z.ZodLiteral<"gherkin">;
|
|
58
58
|
feature: z.ZodString;
|
|
59
59
|
rules: z.ZodArray<z.ZodObject<{
|
|
60
|
-
id: z.ZodString
|
|
60
|
+
id: z.ZodOptional<z.ZodString>;
|
|
61
61
|
name: z.ZodString;
|
|
62
62
|
examples: z.ZodArray<z.ZodObject<{
|
|
63
|
-
id: z.ZodString
|
|
63
|
+
id: z.ZodOptional<z.ZodString>;
|
|
64
64
|
name: z.ZodString;
|
|
65
65
|
steps: z.ZodArray<z.ZodObject<{
|
|
66
|
-
id: z.ZodString
|
|
66
|
+
id: z.ZodOptional<z.ZodString>;
|
|
67
67
|
keyword: z.ZodEnum<{
|
|
68
68
|
Given: "Given";
|
|
69
69
|
When: "When";
|
|
@@ -109,13 +109,13 @@ declare const sliceSchema: z.ZodObject<{
|
|
|
109
109
|
type: z.ZodLiteral<"gherkin">;
|
|
110
110
|
feature: z.ZodString;
|
|
111
111
|
rules: z.ZodArray<z.ZodObject<{
|
|
112
|
-
id: z.ZodString
|
|
112
|
+
id: z.ZodOptional<z.ZodString>;
|
|
113
113
|
name: z.ZodString;
|
|
114
114
|
examples: z.ZodArray<z.ZodObject<{
|
|
115
|
-
id: z.ZodString
|
|
115
|
+
id: z.ZodOptional<z.ZodString>;
|
|
116
116
|
name: z.ZodString;
|
|
117
117
|
steps: z.ZodArray<z.ZodObject<{
|
|
118
|
-
id: z.ZodString
|
|
118
|
+
id: z.ZodOptional<z.ZodString>;
|
|
119
119
|
keyword: z.ZodEnum<{
|
|
120
120
|
Given: "Given";
|
|
121
121
|
When: "When";
|
|
@@ -185,13 +185,13 @@ declare const narrativeSchema: z.ZodObject<{
|
|
|
185
185
|
type: z.ZodLiteral<"gherkin">;
|
|
186
186
|
feature: z.ZodString;
|
|
187
187
|
rules: z.ZodArray<z.ZodObject<{
|
|
188
|
-
id: z.ZodString
|
|
188
|
+
id: z.ZodOptional<z.ZodString>;
|
|
189
189
|
name: z.ZodString;
|
|
190
190
|
examples: z.ZodArray<z.ZodObject<{
|
|
191
|
-
id: z.ZodString
|
|
191
|
+
id: z.ZodOptional<z.ZodString>;
|
|
192
192
|
name: z.ZodString;
|
|
193
193
|
steps: z.ZodArray<z.ZodObject<{
|
|
194
|
-
id: z.ZodString
|
|
194
|
+
id: z.ZodOptional<z.ZodString>;
|
|
195
195
|
keyword: z.ZodEnum<{
|
|
196
196
|
Given: "Given";
|
|
197
197
|
When: "When";
|
|
@@ -264,13 +264,13 @@ export declare const modelSchema: z.ZodObject<{
|
|
|
264
264
|
type: z.ZodLiteral<"gherkin">;
|
|
265
265
|
feature: z.ZodString;
|
|
266
266
|
rules: z.ZodArray<z.ZodObject<{
|
|
267
|
-
id: z.ZodString
|
|
267
|
+
id: z.ZodOptional<z.ZodString>;
|
|
268
268
|
name: z.ZodString;
|
|
269
269
|
examples: z.ZodArray<z.ZodObject<{
|
|
270
|
-
id: z.ZodString
|
|
270
|
+
id: z.ZodOptional<z.ZodString>;
|
|
271
271
|
name: z.ZodString;
|
|
272
272
|
steps: z.ZodArray<z.ZodObject<{
|
|
273
|
-
id: z.ZodString
|
|
273
|
+
id: z.ZodOptional<z.ZodString>;
|
|
274
274
|
keyword: z.ZodEnum<{
|
|
275
275
|
Given: "Given";
|
|
276
276
|
When: "When";
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B,CAAC;AAEF,QAAA,MAAM,iBAAiB;;;;;;;;;;;iBAKrB,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;iBAIxB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;iBAIrB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;iBAIrB,CAAC;AA6BH,QAAA,MAAM,aAAa;;;;;;;;;;;iBAWjB,CAAC;AAEH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBD,CAAC;AAEjB,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOL,CAAC;AAEjB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKR,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
|
package/dist/src/types.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
const clientSpecNodeSchema = z.object({
|
|
3
|
-
id: z.string(),
|
|
3
|
+
id: z.string().optional(),
|
|
4
4
|
type: z.enum(['describe', 'it']),
|
|
5
5
|
title: z.string(),
|
|
6
6
|
children: z.lazy(() => z.array(clientSpecNodeSchema)).optional(),
|
|
7
7
|
});
|
|
8
8
|
const gherkinStepSchema = z.object({
|
|
9
|
-
id: z.string(),
|
|
9
|
+
id: z.string().optional(),
|
|
10
10
|
keyword: z.enum(['Given', 'When', 'Then', 'And', 'But']),
|
|
11
11
|
text: z.string(),
|
|
12
12
|
docString: z.union([z.record(z.string(), z.unknown()), z.array(z.unknown())]).optional(),
|
|
13
13
|
});
|
|
14
14
|
const gherkinExampleSchema = z.object({
|
|
15
|
-
id: z.string(),
|
|
15
|
+
id: z.string().optional(),
|
|
16
16
|
name: z.string(),
|
|
17
17
|
steps: z.array(gherkinStepSchema),
|
|
18
18
|
});
|
|
19
19
|
const gherkinRuleSchema = z.object({
|
|
20
|
-
id: z.string(),
|
|
20
|
+
id: z.string().optional(),
|
|
21
21
|
name: z.string(),
|
|
22
22
|
examples: z.array(gherkinExampleSchema),
|
|
23
23
|
});
|
package/dist/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,oBAAoB,GAA8B,CAAC,CAAC,MAAM,CAAC;IAC/D,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CodegenConfig } from '@graphql-codegen/cli';
|
|
2
|
+
|
|
3
|
+
const config: CodegenConfig = {
|
|
4
|
+
schema: 'schema.graphql',
|
|
5
|
+
documents: ['src/features/**/queries.ts', 'src/features/**/mutations.ts'],
|
|
6
|
+
ignoreNoDocuments: true,
|
|
7
|
+
generates: {
|
|
8
|
+
'./src/gql/': {
|
|
9
|
+
preset: 'client',
|
|
10
|
+
config: {
|
|
11
|
+
documentMode: 'string',
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export default config;
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
"dev": "vite",
|
|
8
8
|
"build": "tsc -b && vite build",
|
|
9
9
|
"lint": "eslint .",
|
|
10
|
-
"preview": "vite preview"
|
|
10
|
+
"preview": "vite preview",
|
|
11
|
+
"codegen": "graphql-codegen"
|
|
11
12
|
},
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@base-ui/react": "^1.3.0",
|
|
@@ -49,6 +50,9 @@
|
|
|
49
50
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
50
51
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
51
52
|
"globals": "^17.4.0",
|
|
53
|
+
"@graphql-codegen/cli": "^6.1.1",
|
|
54
|
+
"@graphql-codegen/client-preset": "^5.2.2",
|
|
55
|
+
"@parcel/watcher": "^2.5.6",
|
|
52
56
|
"tailwindcss": "^4.2.1",
|
|
53
57
|
"typescript": "~5.9.3",
|
|
54
58
|
"typescript-eslint": "^8.56.1",
|