create-ailk 0.3.0 → 0.5.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/component-catalog.json +11939 -0
- package/component-catalog.md +176 -64
- package/dist/cli.js +48 -10
- package/dist/derive-architecture.js +5 -2
- package/dist/lib/extract-module-bundle.d.ts +88 -1
- package/dist/lib/extract-module-bundle.js +375 -80
- package/dist/lib/fetch-guard.d.ts +28 -0
- package/dist/lib/fetch-guard.js +101 -0
- package/dist/lib/fetch-module.js +4 -0
- package/dist/lib/fetch-template.d.ts +20 -0
- package/dist/lib/fetch-template.js +133 -0
- package/dist/lib/module-license-gate.d.ts +8 -0
- package/dist/lib/module-license-gate.js +12 -4
- package/dist/module-architecture.d.ts +116 -7
- package/dist/module-architecture.js +465 -94
- package/dist/parse-args.d.ts +8 -1
- package/dist/parse-args.js +49 -2
- package/dist/programmatic.d.ts +36 -1
- package/dist/programmatic.js +216 -5
- package/dist/site-chrome.d.ts +80 -0
- package/dist/site-chrome.js +135 -0
- package/dist/surfaces.d.ts +21 -6
- package/dist/surfaces.js +140 -23
- package/dist/template-manifest.d.ts +144 -0
- package/dist/template-manifest.js +337 -0
- package/dist/template-names.d.ts +41 -0
- package/dist/template-names.js +45 -0
- package/package.json +10 -2
- package/site-templates/_base/ailk-template.json +6 -0
- package/site-templates/_base/content/en/Pricing/pricing.mdx +169 -0
- package/site-templates/_base/content/en/PrivacyPage/privacy.mdx +79 -0
- package/site-templates/_base/content/en/TermsPage/terms.mdx +80 -0
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +331 -0
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +393 -0
- package/site-templates/marketing-site/ailk-template.json +11 -0
- package/site-templates/marketing-site/content/en/blog/05-this-vc-morning-routine-will-make-you-super-annoying.mdx +36 -0
- package/site-templates/marketing-site/provenance.json +4 -0
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.json +288 -0
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +285 -0
- package/site-templates/marketing-site-free/ailk-template.json +9 -0
- package/site-templates/marketing-site-free/provenance.json +4 -0
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.json +271 -0
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.md +324 -0
- package/site-templates/minimalism-site/ailk-template.json +21 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-1.svg +7 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-2.svg +7 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-3.svg +7 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-4.svg +7 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-5.svg +7 -0
- package/site-templates/minimalism-site/assets/avatar-placeholder-6.svg +7 -0
- package/site-templates/minimalism-site/assets/hero-backdrop.svg +17 -0
- package/site-templates/minimalism-site/assets/logo-placeholder-1.svg +6 -0
- package/site-templates/minimalism-site/assets/logo-placeholder-2.svg +6 -0
- package/site-templates/minimalism-site/assets/logo-placeholder-3.svg +6 -0
- package/site-templates/minimalism-site/content/en/AboutPage/about.mdx +110 -0
- package/site-templates/minimalism-site/content/en/ContactPage/contact.mdx +68 -0
- package/site-templates/minimalism-site/content/en/FAQPage/faq.mdx +57 -0
- package/site-templates/minimalism-site/content/en/HomePage/home.mdx +214 -0
- package/site-templates/minimalism-site/content/en/LandingPage/referral.mdx +77 -0
- package/site-templates/minimalism-site/content/en/LandingPage/reports.mdx +73 -0
- package/site-templates/minimalism-site/content/en/ReportPage/annual-letter-2024.mdx +52 -0
- package/site-templates/minimalism-site/content/en/ReportPage/field-notes-2023.mdx +52 -0
- package/site-templates/minimalism-site/content/en/ReportPage/platform-shift-2025.mdx +52 -0
- package/site-templates/minimalism-site/content/en/ReportPage/state-of-the-market-2026.mdx +52 -0
- package/site-templates/minimalism-site/content/en/Service/first-engagement.mdx +38 -0
- package/site-templates/minimalism-site/content/en/Service/second-engagement.mdx +38 -0
- package/site-templates/minimalism-site/content/en/Service/third-engagement.mdx +38 -0
- package/site-templates/minimalism-site/content/en/ServicesList/services.mdx +73 -0
- package/site-templates/minimalism-site/flows/referral.flow.json +71 -0
- package/site-templates/minimalism-site/provenance.json +4 -0
- package/site-templates/saas-product/TEMPLATE-MANIFEST.md +61 -0
- package/site-templates/saas-product/ailk-template.json +16 -0
- package/site-templates/saas-product/provenance.json +10 -0
- package/templates/.claude/skills/README.md +16 -25
- package/templates/.env.example +32 -7
- package/templates/.github/workflows/ci.yml +48 -0
- package/templates/README.md +3 -1
- package/templates/apps/api/CLAUDE.md +4 -1
- package/templates/apps/api/eslint.config.mjs +69 -0
- package/templates/apps/api/package.json +6 -2
- package/templates/apps/api/src/__tests__/module-exclusion.test.ts +6 -2
- package/templates/apps/api/src/__tests__/review-surface-registration.test.ts +167 -0
- package/templates/apps/api/src/__tests__/workspace-module-registration.test.ts +173 -0
- package/templates/apps/api/src/config/modules.ts +1 -1
- package/templates/apps/api/src/lib/__mocks__/prisma.ts +3 -0
- package/templates/apps/api/src/middleware/__tests__/default-tenant.test.ts +339 -0
- package/templates/apps/api/src/middleware/__tests__/rate-limit.test.ts +108 -0
- package/templates/apps/api/src/middleware/default-tenant.ts +136 -0
- package/templates/apps/api/src/routes/leads/__tests__/list.test.ts +171 -0
- package/templates/apps/api/src/routes/leads/list.ts +104 -0
- package/templates/apps/api/src/server.ts +122 -3
- package/templates/apps/api/src/services/__tests__/lead-promotion.test.ts +408 -0
- package/templates/apps/api/src/services/__tests__/leads-inbox.test.ts +329 -0
- package/templates/apps/api/src/services/default-tenant.ts +261 -0
- package/templates/apps/api/src/services/lead-promotion.ts +161 -0
- package/templates/apps/api/src/services/leads-inbox.ts +263 -0
- package/templates/apps/api/src/services/owner-workspaces.ts +132 -0
- package/templates/apps/mcp/CLAUDE.md +1 -1
- package/templates/apps/mcp/__tests__/parity.test.ts +2 -2
- package/templates/apps/mcp/__tests__/tools/{scaffold.test.ts → create_project.test.ts} +23 -23
- package/templates/apps/mcp/eslint.config.mjs +69 -0
- package/templates/apps/mcp/package.json +6 -2
- package/templates/apps/mcp/src/server.ts +2 -2
- package/templates/apps/mcp/src/tools/{scaffold.ts → create_project.ts} +3 -3
- package/templates/apps/mcp/src/tools/index.ts +2 -2
- package/templates/apps/web/.env.example +3 -3
- package/templates/apps/web/CLAUDE.md +2 -0
- package/templates/apps/web/app/[locale]/(authed)/account/page.tsx +4 -6
- package/templates/apps/web/app/[locale]/(authed)/layout.tsx +1 -1
- package/templates/apps/web/app/[locale]/(authed)/leads/__tests__/page.test.tsx +181 -0
- package/templates/apps/web/app/[locale]/(authed)/leads/components/LeadsTable.tsx +137 -0
- package/templates/apps/web/app/[locale]/(authed)/leads/page.tsx +111 -0
- package/templates/apps/web/app/[locale]/(authed)/sign-in-gate.tsx +1 -1
- package/templates/apps/web/app/[locale]/[slug]/__tests__/page.test.tsx +111 -0
- package/templates/apps/web/app/[locale]/[slug]/page.tsx +65 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/FlowStepperClient.tsx +1 -1
- package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/FlowStepperClient.permalink.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/FlowStepperClient.test.tsx +6 -5
- package/templates/apps/web/app/[locale]/flows/[slug]/flow.actions.ts +1 -1
- package/templates/apps/web/app/[locale]/layout.tsx +214 -17
- package/templates/apps/web/app/[locale]/pricing/page.tsx +40 -0
- package/templates/apps/web/app/[locale]/privacy/page.tsx +40 -0
- package/templates/apps/web/app/[locale]/terms/page.tsx +40 -0
- package/templates/apps/web/components/google-analytics.tsx +18 -1
- package/templates/apps/web/eslint.config.mjs +69 -0
- package/templates/apps/web/jest.config.cjs +12 -15
- package/templates/apps/web/lib/__tests__/server-api.test.ts +61 -0
- package/templates/apps/web/lib/__tests__/structured-data.test.tsx +32 -5
- package/templates/apps/web/lib/nav-config.ts +27 -7
- package/templates/apps/web/lib/server-api.ts +29 -13
- package/templates/apps/web/lib/site-chrome.ts +29 -0
- package/templates/apps/web/lib/telemetry-scrub.ts +46 -0
- package/templates/apps/web/messages/en.json +86 -1
- package/templates/apps/web/next.config.mjs +20 -0
- package/templates/apps/web/package.json +6 -2
- package/templates/apps/web/sentry.client.config.ts +131 -0
- package/templates/apps/web/sentry.edge.config.ts +72 -0
- package/templates/apps/web/sentry.server.config.ts +72 -0
- package/templates/apps/web/src/lib/routes.ts +13 -18
- package/templates/brand_assets/README.md +24 -0
- package/templates/content/en/AboutPage/about.mdx +160 -15
- package/templates/content/en/ContactPage/contact.mdx +90 -13
- package/templates/content/en/FAQPage/faq.mdx +62 -22
- package/templates/content/en/HomePage/home.mdx +244 -20
- package/templates/content/en/LandingPage/blog.mdx +83 -0
- package/templates/content/en/LandingPage/features.mdx +103 -0
- package/templates/content/en/LandingPage/how-it-works.mdx +143 -0
- package/templates/database/CHANGELOG.md +21 -0
- package/templates/database/__tests__/seed.test.ts +1 -1
- package/templates/database/eslint.config.mjs +69 -0
- package/templates/database/package.json +7 -3
- package/templates/database/seed.ts +1 -1
- package/templates/package.json +1 -14
- package/versions.json +52 -0
- /package/templates/apps/web/{src/components → components}/SiteNav.tsx +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Self-contained ESLint flat config for this scaffolded package.
|
|
2
|
+
//
|
|
3
|
+
// It deliberately does NOT depend on @working-theory/eslint-config — that
|
|
4
|
+
// package is internal to the AI Launch Kit monorepo and is not published, so
|
|
5
|
+
// it cannot be a dependency of a scaffolded starter. Everything below comes
|
|
6
|
+
// from public npm packages already pinned as devDependencies (see
|
|
7
|
+
// package.json): @eslint/js, globals and typescript-eslint.
|
|
8
|
+
//
|
|
9
|
+
// Source file name (#5556): this file is checked in as `_eslint.config.mjs`,
|
|
10
|
+
// not `eslint.config.mjs` — build-templates.mjs renames it at snapshot time
|
|
11
|
+
// (renameScaffoldLintConfigs()). A file literally named `eslint.config.mjs`
|
|
12
|
+
// anywhere under this monorepo (even one this repo's own root eslint.config.ts
|
|
13
|
+
// lists in its `ignores`) is auto-discovered by ESLint's flat-config nested
|
|
14
|
+
// resolution as a competing config root, which breaks the monorepo's own
|
|
15
|
+
// lint runs (verified live: typescript-eslint's "multiple candidate
|
|
16
|
+
// TSConfigRootDirs" parser error across unrelated packages/create-ailk
|
|
17
|
+
// files). The underscore prefix keeps it invisible to that discovery while
|
|
18
|
+
// it lives in this checkout; only the snapshot in templates/ — which ships
|
|
19
|
+
// to the customer, not this repo — gets the real filename.
|
|
20
|
+
import js from "@eslint/js";
|
|
21
|
+
import globals from "globals";
|
|
22
|
+
import tseslint from "typescript-eslint";
|
|
23
|
+
|
|
24
|
+
export default tseslint.config(
|
|
25
|
+
{
|
|
26
|
+
ignores: [
|
|
27
|
+
"**/.next/**",
|
|
28
|
+
"**/dist/**",
|
|
29
|
+
"**/generated/**",
|
|
30
|
+
"**/node_modules/**",
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
js.configs.recommended,
|
|
34
|
+
...tseslint.configs.recommended,
|
|
35
|
+
{
|
|
36
|
+
languageOptions: {
|
|
37
|
+
globals: {
|
|
38
|
+
...globals.node,
|
|
39
|
+
...globals.browser,
|
|
40
|
+
...globals.jest,
|
|
41
|
+
},
|
|
42
|
+
// Explicit, self-contained root — this scaffold config is never meant
|
|
43
|
+
// to combine with any sibling scaffold package's config (each ships
|
|
44
|
+
// standalone), and leaving it unset makes typescript-eslint's
|
|
45
|
+
// candidate-root disambiguation ambiguous the moment more than one
|
|
46
|
+
// scaffold package's config resolves in the same ESLint process (e.g.
|
|
47
|
+
// this monorepo's own `templates/` build, where all four exist
|
|
48
|
+
// side by side; a real customer scaffold never has that problem,
|
|
49
|
+
// since it only ever ships and lints ONE of these four at a time).
|
|
50
|
+
parserOptions: {
|
|
51
|
+
tsconfigRootDir: import.meta.dirname,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
rules: {
|
|
55
|
+
// Downgraded rather than off, so both stay visible without failing a
|
|
56
|
+
// fresh scaffold's lint:
|
|
57
|
+
// - unused-vars: most of the source follows the underscore-prefix
|
|
58
|
+
// convention for intentionally-unused bindings, which this rule's
|
|
59
|
+
// default options don't recognize; a handful of test fixtures also
|
|
60
|
+
// carry genuinely-unused locals this minimal config doesn't try to
|
|
61
|
+
// triage file-by-file.
|
|
62
|
+
// - require-imports: CommonJS require() is the correct form in Jest
|
|
63
|
+
// config/mock files and in a few test-only dynamic re-require
|
|
64
|
+
// patterns.
|
|
65
|
+
"@typescript-eslint/no-unused-vars": "warn",
|
|
66
|
+
"@typescript-eslint/no-require-imports": "warn",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@working-theory/database",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|
|
53
|
-
"lint": "
|
|
53
|
+
"lint": "eslint .",
|
|
54
54
|
"build": "tsc -b tsconfig.build.json && tsc -b tsconfig.tenancy.json && tsc -b tsconfig.flows.json",
|
|
55
55
|
"db:generate": "prisma generate && pnpm run build",
|
|
56
56
|
"db:migrate": "prisma migrate dev",
|
|
@@ -78,6 +78,10 @@
|
|
|
78
78
|
"prisma": "^7.8.0",
|
|
79
79
|
"ts-jest": "^29.4.11",
|
|
80
80
|
"tsx": "^4.22.4",
|
|
81
|
-
"typescript": "^6.0.3"
|
|
81
|
+
"typescript": "^6.0.3",
|
|
82
|
+
"eslint": "^10.6.0",
|
|
83
|
+
"@eslint/js": "^10.0.1",
|
|
84
|
+
"globals": "^17.7.0",
|
|
85
|
+
"typescript-eslint": "^8.62.1"
|
|
82
86
|
}
|
|
83
87
|
}
|
|
@@ -104,7 +104,7 @@ async function main(): Promise<void> {
|
|
|
104
104
|
// Dynamic imports: the generated client + adapter are constructed only when
|
|
105
105
|
// this module actually runs as the seed entrypoint — never at import time
|
|
106
106
|
// (spec §5.2 Quality Constraints), matching the DI note on seed-test.ts's
|
|
107
|
-
// sibling and the lazy-require pattern in apps-paid/
|
|
107
|
+
// sibling and the lazy-require pattern in apps-paid/admin/auth.ts.
|
|
108
108
|
const [{ PrismaClient: RealPrismaClient }, { PrismaPg }] = await Promise.all([
|
|
109
109
|
import("./generated/client/client.js"),
|
|
110
110
|
import("@prisma/adapter-pg"),
|
package/templates/package.json
CHANGED
|
@@ -45,10 +45,8 @@
|
|
|
45
45
|
"globals": "^17.7.0",
|
|
46
46
|
"gray-matter": "^4.0.3",
|
|
47
47
|
"http-server": "^14.1.1",
|
|
48
|
-
"husky": "^9.1.7",
|
|
49
48
|
"jest": "^30.4.2",
|
|
50
49
|
"jiti": "^2.4.2",
|
|
51
|
-
"lint-staged": "^15.3.0",
|
|
52
50
|
"prettier": "^3.9.4",
|
|
53
51
|
"ts-declaration-location": "^1.0.7",
|
|
54
52
|
"ts-jest": "^29.4.11",
|
|
@@ -60,18 +58,7 @@
|
|
|
60
58
|
"yaml": "^2.9.0",
|
|
61
59
|
"zod": "^4.2.1",
|
|
62
60
|
"zod-to-ts": "^2.1.0",
|
|
63
|
-
"@working-theory/cli": "
|
|
64
|
-
},
|
|
65
|
-
"lint-staged": {
|
|
66
|
-
"*.{ts,tsx}": [
|
|
67
|
-
"eslint --fix --cache"
|
|
68
|
-
],
|
|
69
|
-
"*.{js,jsx,json,md,mdx,yaml,yml,css,scss,html}": [
|
|
70
|
-
"prettier --write"
|
|
71
|
-
],
|
|
72
|
-
"{apps,packages,database}/**": [
|
|
73
|
-
"bash -c 'pnpm architecture'"
|
|
74
|
-
]
|
|
61
|
+
"@working-theory/cli": "workspace:*"
|
|
75
62
|
},
|
|
76
63
|
"packageManager": "pnpm@10.34.5+sha512.a4ee05f2f73658255bd6a89859c065a45c28a57daefae2c893a168ee2b73168c37b91e83e57ea67654ad03f03031746430e8bce38e362e042605fb8abc80192e",
|
|
77
64
|
"engines": {
|
package/versions.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@working-theory/admin-ui": "0.24.0",
|
|
3
|
+
"@working-theory/aeo": "0.24.0",
|
|
4
|
+
"@working-theory/agent-context": "0.24.0",
|
|
5
|
+
"@working-theory/agent-contract": "0.1.0",
|
|
6
|
+
"@working-theory/agent-memory": "0.0.0",
|
|
7
|
+
"@working-theory/ai": "0.1.0",
|
|
8
|
+
"@working-theory/analytics": "0.24.0",
|
|
9
|
+
"@working-theory/api-client": "0.24.0",
|
|
10
|
+
"@working-theory/cda-filesystem": "0.0.0",
|
|
11
|
+
"@working-theory/cli": "0.24.0",
|
|
12
|
+
"@working-theory/common": "0.24.0",
|
|
13
|
+
"@working-theory/consent": "0.1.0",
|
|
14
|
+
"@working-theory/content-adapters": "0.24.0",
|
|
15
|
+
"@working-theory/content-projection": "0.24.0",
|
|
16
|
+
"@working-theory/email": "0.24.0",
|
|
17
|
+
"@working-theory/env": "0.0.0",
|
|
18
|
+
"@working-theory/eslint-config": "0.24.0",
|
|
19
|
+
"@working-theory/fumadocs-schema": "0.24.0",
|
|
20
|
+
"@working-theory/ids": "0.7.0",
|
|
21
|
+
"@working-theory/jsonld": "0.24.0",
|
|
22
|
+
"@working-theory/license": "0.24.0",
|
|
23
|
+
"@working-theory/metadata": "0.24.0",
|
|
24
|
+
"@working-theory/observability": "0.24.0",
|
|
25
|
+
"@working-theory/page-renderer": "0.24.0",
|
|
26
|
+
"@working-theory/schema": "0.24.0",
|
|
27
|
+
"@working-theory/schema-pack-registry": "0.24.0",
|
|
28
|
+
"@working-theory/schema-validator": "0.24.0",
|
|
29
|
+
"@working-theory/sections-registry": "0.24.0",
|
|
30
|
+
"@working-theory/site-config": "0.24.0",
|
|
31
|
+
"@working-theory/stripe-client": "0.24.0",
|
|
32
|
+
"@working-theory/templates": "0.24.0",
|
|
33
|
+
"@working-theory/theme": "0.24.0",
|
|
34
|
+
"@working-theory/ui": "0.24.0",
|
|
35
|
+
"@working-theory/validation": "0.24.0",
|
|
36
|
+
"@working-theory/web-i18n": "0.24.0",
|
|
37
|
+
"@working-theory/billing-client": "0.0.0",
|
|
38
|
+
"@working-theory/branding": "0.0.0",
|
|
39
|
+
"@working-theory/license-client": "0.0.0",
|
|
40
|
+
"@working-theory/license-manifest": "0.0.0",
|
|
41
|
+
"@working-theory/marketing-api-client": "0.0.0",
|
|
42
|
+
"@working-theory/partner-session": "0.0.0",
|
|
43
|
+
"@working-theory/preview-protocol": "0.0.0",
|
|
44
|
+
"@working-theory/ui-commerce": "0.23.1",
|
|
45
|
+
"@working-theory/ui-docs-blog": "0.23.1",
|
|
46
|
+
"@working-theory/ui-scheduling": "0.23.1",
|
|
47
|
+
"@working-theory/ui-signal-collectors": "0.23.1",
|
|
48
|
+
"@working-theory/web": "0.0.0",
|
|
49
|
+
"@working-theory/api": "1.0.0",
|
|
50
|
+
"@working-theory/mcp": "0.0.0",
|
|
51
|
+
"@working-theory/database": "0.24.0"
|
|
52
|
+
}
|
|
File without changes
|