create-ailk 0.24.0 → 0.26.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/README.md +53 -22
- package/component-catalog.json +3 -3
- package/component-catalog.md +3 -3
- package/dist/add-module.js +4 -2
- package/dist/add-route.d.ts +12 -1
- package/dist/add-route.js +31 -3
- package/dist/cli.js +12 -7
- package/dist/derive-architecture.d.ts +3 -4
- package/dist/derive-architecture.js +65 -29
- package/dist/lib/design-checks.d.ts +9 -4
- package/dist/lib/design-checks.js +13 -7
- package/dist/lib/extract-module-bundle.js +29 -2
- package/dist/lib/fetch-template-snapshot.d.ts +2 -1
- package/dist/lib/fetch-template-snapshot.js +8 -3
- package/dist/lib/import-graph.d.ts +1 -1
- package/dist/lib/import-graph.js +4 -4
- package/dist/lib/module-license-gate.d.ts +12 -1
- package/dist/lib/module-license-gate.js +36 -15
- package/dist/lib/module-tier.d.ts +2 -8
- package/dist/lib/module-tier.js +13 -12
- package/dist/module-architecture.d.ts +20 -3
- package/dist/module-architecture.js +129 -552
- package/dist/paid-sections.d.ts +25 -1
- package/dist/paid-sections.js +88 -3
- package/dist/starter-grid.d.ts +6 -6
- package/dist/starter-grid.js +12 -5
- package/dist/surfaces.js +39 -2
- package/dist/template-record.d.ts +21 -3
- package/dist/template-record.js +38 -7
- package/dist/topology.d.ts +16 -3
- package/dist/topology.js +54 -23
- package/dist/update.d.ts +10 -1
- package/dist/update.js +715 -21
- package/package.json +3 -3
- package/release-scope.json +2 -2
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +8 -2
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +2 -2
- package/site-templates/marketing-site/ailk-template.json +7 -1
- package/site-templates/marketing-site/provenance.json +7 -1
- package/site-templates/saas-product/ailk-template.json +2 -1
- package/site-templates/saas-product/provenance.json +1 -0
- package/templates/.claude/cloudparity-repo-hooks.json +5 -0
- package/templates/.claude/hooks/template-guard.sh +137 -0
- package/templates/.claude/rules/extending.md +106 -0
- package/templates/.claude/rules/loop-contract.md +2 -2
- package/templates/.claude/settings.json +11 -0
- package/templates/.env.example +20 -5
- package/templates/.github/workflows/ci.yml +7 -4
- package/templates/CLAUDE.md +11 -1
- package/templates/CONVENTIONS.md +8 -10
- package/templates/README.md +14 -13
- package/templates/apps/api/.env.example +23 -2
- package/templates/apps/api/CLAUDE.md +119 -83
- package/templates/apps/api/jest.config.cjs +15 -5
- package/templates/apps/api/package.json +16 -20
- package/templates/apps/api/src/__tests__/trusted-origins.server.test.ts +2 -2
- package/templates/apps/api/src/__tests__/vercel-handler.test.ts +4 -4
- package/templates/apps/api/src/index.ts +1 -1
- package/templates/apps/api/src/lib/__mocks__/prisma-client.js +16 -0
- package/templates/apps/api/src/lib/__mocks__/prisma.ts +3 -3
- package/templates/apps/api/src/modules/commerce.ts +10 -0
- package/templates/apps/api/src/modules/content-write.ts +10 -0
- package/templates/apps/api/src/modules/multi-tenant.ts +10 -0
- package/templates/apps/api/src/modules/scheduling.ts +10 -0
- package/templates/apps/api/src/modules/signal-collectors.ts +10 -0
- package/templates/apps/api/src/modules/workspace.ts +10 -0
- package/templates/apps/api/src/server.ts +117 -1882
- package/templates/apps/api/vercel.json +2 -2
- package/templates/apps/mcp/CLAUDE.md +90 -26
- package/templates/apps/mcp/__tests__/app-entry.test.ts +4 -254
- package/templates/apps/mcp/__tests__/boot-file.test.ts +92 -0
- package/templates/apps/mcp/jest.config.cjs +6 -1
- package/templates/apps/mcp/package.json +5 -13
- package/templates/apps/mcp/src/app.ts +8 -7
- package/templates/apps/mcp/src/index.ts +6 -34
- package/templates/apps/mcp/src/lib/paid-tools.generated.ts +10 -0
- package/templates/apps/mcp/src/lib/topology.generated.ts +2 -2
- package/templates/apps/mcp/src/site.ts +12 -0
- package/templates/apps/web/.env.example +1 -1
- package/templates/apps/web/CLAUDE.md +31 -3
- package/templates/apps/web/app/.well-known/mcp.json/route.ts +9 -3
- package/templates/apps/web/app/[locale]/(auth)/__tests__/auth-pages.test.tsx +43 -4
- package/templates/apps/web/app/[locale]/(auth)/legal-footnote.tsx +35 -0
- package/templates/apps/web/app/[locale]/(auth)/sign-in/__tests__/page.test.tsx +117 -8
- package/templates/apps/web/app/[locale]/(auth)/sign-in/page.tsx +14 -37
- package/templates/apps/web/app/[locale]/(auth)/sign-in/sign-in-card.tsx +6 -6
- package/templates/apps/web/app/[locale]/(auth)/sign-in/sign-in-text.ts +20 -35
- package/templates/apps/web/app/[locale]/(auth)/sign-up/__tests__/page.test.tsx +108 -0
- package/templates/apps/web/app/[locale]/(auth)/sign-up/__tests__/sign-up-card.test.tsx +111 -5
- package/templates/apps/web/app/[locale]/(auth)/sign-up/page.tsx +78 -16
- package/templates/apps/web/app/[locale]/(auth)/sign-up/sign-up-card.tsx +132 -12
- package/templates/apps/web/app/[locale]/(authed)/__tests__/gate.test.tsx +53 -1
- package/templates/apps/web/app/[locale]/(authed)/account/__tests__/billing.test.tsx +38 -0
- package/templates/apps/web/app/[locale]/(authed)/account/billing/page.tsx +4 -2
- package/templates/apps/web/app/[locale]/(authed)/sign-in-gate.tsx +47 -24
- package/templates/apps/web/app/[locale]/(authed)/signed-out-gate.generated.tsx +23 -4
- package/templates/apps/web/app/[locale]/contact/intake-analytics.ts +1 -1
- package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/magnet-page.test.tsx +22 -1
- package/templates/apps/web/app/[locale]/flows/[slug]/magnet-page.tsx +7 -3
- package/templates/apps/web/app/[locale]/layout.tsx +33 -13
- package/templates/apps/web/app/[locale]/meet/confirmed/BookingHandOff.tsx +128 -0
- package/templates/apps/web/app/[locale]/meet/confirmed/__tests__/BookingHandOff.test.tsx +126 -0
- package/templates/apps/web/app/[locale]/pricing/__tests__/unconnected.test.tsx +43 -0
- package/templates/apps/web/app/[locale]/pricing/page.tsx +7 -3
- package/templates/apps/web/app/api/offerings/checkout/[lookupKey]/__tests__/route.test.ts +222 -0
- package/templates/apps/web/app/api/offerings/checkout/[lookupKey]/route.ts +10 -3
- package/templates/apps/web/app/api/revalidate/route.ts +3 -3
- package/templates/apps/web/auth.ts +10 -6
- package/templates/apps/web/i18n/request.ts +49 -1
- package/templates/apps/web/jest.config.cjs +1 -0
- package/templates/apps/web/lib/__tests__/account-config.test.ts +7 -0
- package/templates/apps/web/lib/__tests__/auth-email.test.ts +276 -0
- package/templates/apps/web/lib/auth-email.ts +103 -21
- package/templates/apps/web/lib/hub-session/__tests__/sign-in-gate.test.tsx +72 -23
- package/templates/apps/web/lib/hub-session/sign-in-gate.tsx +94 -70
- package/templates/apps/web/lib/prisma-for-auth.ts +5 -2
- package/templates/apps/web/lib/relay.ts +2 -2
- package/templates/apps/web/lib/release-scope.ts +47 -0
- package/templates/apps/web/lib/server-api.ts +1 -1
- package/templates/apps/web/lib/sign-up-agreements.ts +291 -28
- package/templates/apps/web/lib/site-contributions.ts +18 -0
- package/templates/apps/web/messages/en.json +186 -20
- package/templates/apps/web/messages/site/en.json +1 -0
- package/templates/apps/web/src/lib/commerce-claim.ts +1 -1
- package/templates/customizations.yaml +37 -0
- package/templates/database/prisma.config.ts +10 -14
- package/templates/database/seed-test.ts +2 -2
- package/templates/database/seed.ts +5 -5
- package/templates/package.json +12 -6
- package/templates/pnpm-workspace.yaml +0 -1
- package/templates/project.yaml +16 -8
- package/templates/tools/jest/reporters.cjs +65 -0
- package/templates/tools/lint-architecture.ts +553 -7
- package/templates/tsconfig.json +1 -2
- package/versions.json +49 -36
- package/templates/apps/api/src/__tests__/commerce-claim-registration.test.ts +0 -409
- package/templates/apps/api/src/__tests__/factories/agent-caller.ts +0 -102
- package/templates/apps/api/src/__tests__/factories/content-fixture.ts +0 -138
- package/templates/apps/api/src/__tests__/factories/in-memory-prisma.ts +0 -441
- package/templates/apps/api/src/__tests__/factories/index.ts +0 -70
- package/templates/apps/api/src/__tests__/factories/lead-fixture.ts +0 -82
- package/templates/apps/api/src/__tests__/leads-forwarded-rate-limit.test.ts +0 -135
- package/templates/apps/api/src/__tests__/services/enrichment-shim.test.ts +0 -126
- package/templates/apps/api/src/__tests__/stripe-boot.test.ts +0 -132
- package/templates/apps/api/src/__tests__/support/hub-sign-in-fake-db.ts +0 -362
- package/templates/apps/api/src/bin/__tests__/rate-limit-probe.test.ts +0 -184
- package/templates/apps/api/src/bin/abandon-sweep.ts +0 -42
- package/templates/apps/api/src/bin/rate-limit-probe.ts +0 -53
- package/templates/apps/api/src/bin/spokes.ts +0 -198
- package/templates/apps/api/src/bin/stripe-connections-rekey.ts +0 -45
- package/templates/apps/api/src/config/__tests__/hub-require-spoke-key.test.ts +0 -196
- package/templates/apps/api/src/config/__tests__/index.test.ts +0 -233
- package/templates/apps/api/src/config/__tests__/modules.test.ts +0 -76
- package/templates/apps/api/src/config/__tests__/stripe-connection-key.test.ts +0 -185
- package/templates/apps/api/src/config/__tests__/trusted-origins.test.ts +0 -238
- package/templates/apps/api/src/config/index.ts +0 -596
- package/templates/apps/api/src/config/modules.ts +0 -83
- package/templates/apps/api/src/lib/__tests__/agent-store.test.ts +0 -581
- package/templates/apps/api/src/lib/__tests__/auth-email-budget.test.ts +0 -143
- package/templates/apps/api/src/lib/__tests__/consent-ledger-double.ts +0 -237
- package/templates/apps/api/src/lib/__tests__/consent-store.test.ts +0 -353
- package/templates/apps/api/src/lib/__tests__/content-adapter.test.ts +0 -201
- package/templates/apps/api/src/lib/__tests__/deliverable-asset-store.test.ts +0 -224
- package/templates/apps/api/src/lib/__tests__/error-serializer.test.ts +0 -120
- package/templates/apps/api/src/lib/__tests__/errors.test.ts +0 -94
- package/templates/apps/api/src/lib/__tests__/file-fallback.test.ts +0 -144
- package/templates/apps/api/src/lib/__tests__/fixtures/HomePage/home.mdx +0 -8
- package/templates/apps/api/src/lib/__tests__/flow-completion-store.test.ts +0 -149
- package/templates/apps/api/src/lib/__tests__/flow-rename-race.db.test.ts +0 -116
- package/templates/apps/api/src/lib/__tests__/hub-sign-in-store.test.ts +0 -209
- package/templates/apps/api/src/lib/__tests__/lead-capture-store.test.ts +0 -257
- package/templates/apps/api/src/lib/__tests__/lead-delivery.test.ts +0 -96
- package/templates/apps/api/src/lib/__tests__/outbound-http.test.ts +0 -125
- package/templates/apps/api/src/lib/__tests__/prisma.test.ts +0 -165
- package/templates/apps/api/src/lib/__tests__/require-commerce-claim.test.ts +0 -317
- package/templates/apps/api/src/lib/__tests__/require-paid-tier.test.ts +0 -129
- package/templates/apps/api/src/lib/__tests__/site.test.ts +0 -308
- package/templates/apps/api/src/lib/__tests__/slice-load.test.ts +0 -89
- package/templates/apps/api/src/lib/__tests__/spoke-store.test.ts +0 -202
- package/templates/apps/api/src/lib/__tests__/stripe-admission.test.ts +0 -217
- package/templates/apps/api/src/lib/__tests__/stripe.test.ts +0 -82
- package/templates/apps/api/src/lib/agent-store.ts +0 -613
- package/templates/apps/api/src/lib/auth-email-budget.ts +0 -161
- package/templates/apps/api/src/lib/consent-store.ts +0 -363
- package/templates/apps/api/src/lib/content-adapter.ts +0 -112
- package/templates/apps/api/src/lib/deliverable-asset-store.ts +0 -96
- package/templates/apps/api/src/lib/error-serializer.ts +0 -164
- package/templates/apps/api/src/lib/errors.ts +0 -95
- package/templates/apps/api/src/lib/file-fallback.ts +0 -87
- package/templates/apps/api/src/lib/flow-completion-store.ts +0 -136
- package/templates/apps/api/src/lib/hub-sign-in-store.ts +0 -455
- package/templates/apps/api/src/lib/lead-capture-store.ts +0 -122
- package/templates/apps/api/src/lib/lead-delivery.ts +0 -52
- package/templates/apps/api/src/lib/license-key-store.ts +0 -45
- package/templates/apps/api/src/lib/locales.ts +0 -201
- package/templates/apps/api/src/lib/outbound-http.ts +0 -127
- package/templates/apps/api/src/lib/prisma.ts +0 -21
- package/templates/apps/api/src/lib/proposal-paid-store.ts +0 -66
- package/templates/apps/api/src/lib/rate-limit-probe.ts +0 -165
- package/templates/apps/api/src/lib/rate-limit-store.ts +0 -142
- package/templates/apps/api/src/lib/require-commerce-claim.ts +0 -250
- package/templates/apps/api/src/lib/require-paid-tier.ts +0 -53
- package/templates/apps/api/src/lib/site.ts +0 -257
- package/templates/apps/api/src/lib/slice-load.ts +0 -90
- package/templates/apps/api/src/lib/spoke-store.ts +0 -180
- package/templates/apps/api/src/lib/stripe.ts +0 -321
- package/templates/apps/api/src/lib/webhook-idempotency.ts +0 -156
- package/templates/apps/api/src/middleware/__tests__/adversarial/bearer-token-format.test.ts +0 -111
- package/templates/apps/api/src/middleware/__tests__/adversarial/cookie-or-bearer-precedence.test.ts +0 -172
- package/templates/apps/api/src/middleware/__tests__/adversarial/csrf-bearer-skip.test.ts +0 -119
- package/templates/apps/api/src/middleware/__tests__/adversarial/csrf-cookie-path.test.ts +0 -138
- package/templates/apps/api/src/middleware/__tests__/adversarial/csrf-trusted-origins.test.ts +0 -142
- package/templates/apps/api/src/middleware/__tests__/adversarial/session-fixation.test.ts +0 -155
- package/templates/apps/api/src/middleware/__tests__/adversarial/session-timeout.test.ts +0 -139
- package/templates/apps/api/src/middleware/__tests__/auth.bearer-path.test.ts +0 -562
- package/templates/apps/api/src/middleware/__tests__/auth.both-present-precedence.test.ts +0 -76
- package/templates/apps/api/src/middleware/__tests__/auth.cookie-path.test.ts +0 -220
- package/templates/apps/api/src/middleware/__tests__/auth.database-not-configured.test.ts +0 -97
- package/templates/apps/api/src/middleware/__tests__/auth.hub-session-path.test.ts +0 -557
- package/templates/apps/api/src/middleware/__tests__/auth.neither-present.test.ts +0 -72
- package/templates/apps/api/src/middleware/__tests__/auth.optional-cookie.test.ts +0 -140
- package/templates/apps/api/src/middleware/__tests__/default-tenant.test.ts +0 -721
- package/templates/apps/api/src/middleware/__tests__/rate-limit-cross-isolate.db.test.ts +0 -220
- package/templates/apps/api/src/middleware/__tests__/rate-limit-store.test.ts +0 -430
- package/templates/apps/api/src/middleware/__tests__/rate-limit.test.ts +0 -1409
- package/templates/apps/api/src/middleware/__tests__/write-budget.test.ts +0 -174
- package/templates/apps/api/src/middleware/auth.ts +0 -864
- package/templates/apps/api/src/middleware/default-tenant.ts +0 -166
- package/templates/apps/api/src/middleware/rate-limit.ts +0 -983
- package/templates/apps/api/src/openapi/__tests__/openapi.test.ts +0 -391
- package/templates/apps/api/src/openapi/__tests__/spec-identity.test.ts +0 -182
- package/templates/apps/api/src/openapi/index.ts +0 -18
- package/templates/apps/api/src/openapi/spec.ts +0 -2148
- package/templates/apps/api/src/openapi/surface-drift.ts +0 -195
- package/templates/apps/api/src/routes/aeo/__tests__/index.test.ts +0 -175
- package/templates/apps/api/src/routes/aeo/index.ts +0 -107
- package/templates/apps/api/src/routes/auth/__tests__/auth-tokens.functional.test.ts +0 -196
- package/templates/apps/api/src/routes/auth/__tests__/auth-user.functional.test.ts +0 -249
- package/templates/apps/api/src/routes/auth/__tests__/hub-sign-in.test.ts +0 -532
- package/templates/apps/api/src/routes/auth/__tests__/tokens.test.ts +0 -313
- package/templates/apps/api/src/routes/auth/__tests__/transactional-email.test.ts +0 -413
- package/templates/apps/api/src/routes/auth/__tests__/user.test.ts +0 -609
- package/templates/apps/api/src/routes/auth/hub-sign-in.ts +0 -242
- package/templates/apps/api/src/routes/auth/tokens.ts +0 -211
- package/templates/apps/api/src/routes/auth/transactional-email.ts +0 -301
- package/templates/apps/api/src/routes/auth/user.ts +0 -305
- package/templates/apps/api/src/routes/billing/plan-checkout.ts +0 -332
- package/templates/apps/api/src/routes/checkout/__tests__/live-key.test.ts +0 -178
- package/templates/apps/api/src/routes/checkout/__tests__/offerings-authorization.test.ts +0 -1426
- package/templates/apps/api/src/routes/checkout/__tests__/session.test.ts +0 -448
- package/templates/apps/api/src/routes/checkout/__tests__/sessions.test.ts +0 -1742
- package/templates/apps/api/src/routes/checkout/index.ts +0 -34
- package/templates/apps/api/src/routes/checkout/session.ts +0 -171
- package/templates/apps/api/src/routes/checkout/sessions.ts +0 -540
- package/templates/apps/api/src/routes/consent/__tests__/account.test.ts +0 -386
- package/templates/apps/api/src/routes/consent/__tests__/sign-up-rate-limit.test.ts +0 -160
- package/templates/apps/api/src/routes/consent/account.ts +0 -268
- package/templates/apps/api/src/routes/consent/cookie.ts +0 -90
- package/templates/apps/api/src/routes/consent/index.ts +0 -26
- package/templates/apps/api/src/routes/consent/unsubscribe.ts +0 -127
- package/templates/apps/api/src/routes/content/__tests__/get-page.test.ts +0 -853
- package/templates/apps/api/src/routes/content/__tests__/list-pages.test.ts +0 -230
- package/templates/apps/api/src/routes/content/__tests__/list-types.test.ts +0 -44
- package/templates/apps/api/src/routes/content/__tests__/locale.test.ts +0 -118
- package/templates/apps/api/src/routes/content/__tests__/offerings.test.ts +0 -731
- package/templates/apps/api/src/routes/content/__tests__/pricing.test.ts +0 -753
- package/templates/apps/api/src/routes/content/__tests__/rate-limit.test.ts +0 -51
- package/templates/apps/api/src/routes/content/__tests__/search.test.ts +0 -450
- package/templates/apps/api/src/routes/content/__tests__/shown-offerings.test.ts +0 -762
- package/templates/apps/api/src/routes/content/get-page.ts +0 -183
- package/templates/apps/api/src/routes/content/index.ts +0 -49
- package/templates/apps/api/src/routes/content/list-pages.ts +0 -74
- package/templates/apps/api/src/routes/content/list-types.ts +0 -19
- package/templates/apps/api/src/routes/content/offerings.ts +0 -184
- package/templates/apps/api/src/routes/content/pricing.ts +0 -176
- package/templates/apps/api/src/routes/content/rate-limit.ts +0 -22
- package/templates/apps/api/src/routes/content/search.ts +0 -100
- package/templates/apps/api/src/routes/content/shown-offerings.ts +0 -229
- package/templates/apps/api/src/routes/leads/__tests__/capture.test.ts +0 -88
- package/templates/apps/api/src/routes/leads/__tests__/list.test.ts +0 -171
- package/templates/apps/api/src/routes/leads/__tests__/magnet-completion.test.ts +0 -515
- package/templates/apps/api/src/routes/leads/__tests__/spoke.test.ts +0 -392
- package/templates/apps/api/src/routes/leads/__tests__/track.test.ts +0 -165
- package/templates/apps/api/src/routes/leads/index.ts +0 -639
- package/templates/apps/api/src/routes/leads/list.ts +0 -104
- package/templates/apps/api/src/routes/project-listings/__tests__/configured-application.test.ts +0 -626
- package/templates/apps/api/src/routes/project-listings/__tests__/drafts.test.ts +0 -1268
- package/templates/apps/api/src/routes/project-listings/__tests__/founder-identity.test.ts +0 -847
- package/templates/apps/api/src/routes/project-listings/__tests__/me.test.ts +0 -491
- package/templates/apps/api/src/routes/project-listings/__tests__/public.test.ts +0 -476
- package/templates/apps/api/src/routes/project-listings/__tests__/resume-email.test.ts +0 -872
- package/templates/apps/api/src/routes/project-listings/__tests__/site-answers.test.ts +0 -1022
- package/templates/apps/api/src/routes/project-listings/__tests__/site-key.test.ts +0 -484
- package/templates/apps/api/src/routes/project-listings/__tests__/structured-address.test.ts +0 -535
- package/templates/apps/api/src/routes/project-listings/index.ts +0 -164
- package/templates/apps/api/src/routes/project-listings/me.ts +0 -87
- package/templates/apps/api/src/routes/project-listings/patch-copy.ts +0 -224
- package/templates/apps/api/src/routes/project-listings/patch-draft.ts +0 -102
- package/templates/apps/api/src/routes/project-listings/public.ts +0 -98
- package/templates/apps/api/src/routes/project-listings/respond.ts +0 -48
- package/templates/apps/api/src/routes/project-listings/resume-token.ts +0 -27
- package/templates/apps/api/src/routes/project-listings/start.ts +0 -140
- package/templates/apps/api/src/routes/project-listings/submit.ts +0 -130
- package/templates/apps/api/src/routes/project-listings/verify-email.ts +0 -150
- package/templates/apps/api/src/routes/requests/__tests__/confirm.test.ts +0 -686
- package/templates/apps/api/src/routes/requests/confirm.ts +0 -601
- package/templates/apps/api/src/routes/requests/index.ts +0 -54
- package/templates/apps/api/src/routes/test/auth/__tests__/session.test.ts +0 -306
- package/templates/apps/api/src/routes/test/auth/session.ts +0 -143
- package/templates/apps/api/src/routes/webhooks/README.md +0 -398
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-checkout-consent.test.ts +0 -649
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-dunning.test.ts +0 -749
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-flow-checkout.test.ts +0 -449
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-idempotency.test.ts +0 -264
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-livemode-live.test.ts +0 -159
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-livemode.test.ts +0 -158
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-offerings.test.ts +0 -814
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-org-billing.test.ts +0 -301
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-proposal-paid.test.ts +0 -369
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-rate-limit.test.ts +0 -215
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-request-paid.test.ts +0 -301
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-site-filter.test.ts +0 -809
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe.test.ts +0 -1155
- package/templates/apps/api/src/routes/webhooks/index.ts +0 -141
- package/templates/apps/api/src/routes/webhooks/stripe-offerings.ts +0 -384
- package/templates/apps/api/src/routes/webhooks/stripe.ts +0 -2028
- package/templates/apps/api/src/services/__tests__/abandon-email.test.ts +0 -645
- package/templates/apps/api/src/services/__tests__/answer-distributions.test.ts +0 -132
- package/templates/apps/api/src/services/__tests__/audit-log.test.ts +0 -1028
- package/templates/apps/api/src/services/__tests__/checkout-plan.test.ts +0 -313
- package/templates/apps/api/src/services/__tests__/consent-ledger.test.ts +0 -503
- package/templates/apps/api/src/services/__tests__/consent-migration.test.ts +0 -65
- package/templates/apps/api/src/services/__tests__/consent.test.ts +0 -299
- package/templates/apps/api/src/services/__tests__/default-tenant.test.ts +0 -147
- package/templates/apps/api/src/services/__tests__/deliverable-fulfillment.test.ts +0 -877
- package/templates/apps/api/src/services/__tests__/deliverable-resend.test.ts +0 -379
- package/templates/apps/api/src/services/__tests__/dunning-policy.test.ts +0 -368
- package/templates/apps/api/src/services/__tests__/entitlements.test.ts +0 -142
- package/templates/apps/api/src/services/__tests__/hub-sign-in.test.ts +0 -854
- package/templates/apps/api/src/services/__tests__/keyless-workspace-predicate.test.ts +0 -234
- package/templates/apps/api/src/services/__tests__/lead-accept-user.test.ts +0 -251
- package/templates/apps/api/src/services/__tests__/lead-routing.test.ts +0 -2660
- package/templates/apps/api/src/services/__tests__/listing-config.test.ts +0 -166
- package/templates/apps/api/src/services/__tests__/magnet-completion.test.ts +0 -389
- package/templates/apps/api/src/services/__tests__/person.test.ts +0 -1204
- package/templates/apps/api/src/services/__tests__/plan-offerings.test.ts +0 -450
- package/templates/apps/api/src/services/__tests__/project-listings.counts.test.ts +0 -202
- package/templates/apps/api/src/services/__tests__/project-listings.fence.test.ts +0 -151
- package/templates/apps/api/src/services/__tests__/public-site-resolver.test.ts +0 -137
- package/templates/apps/api/src/services/__tests__/request-confirm.test.ts +0 -531
- package/templates/apps/api/src/services/__tests__/revalidation.test.ts +0 -372
- package/templates/apps/api/src/services/__tests__/slack-notify.test.ts +0 -348
- package/templates/apps/api/src/services/__tests__/spoke-resolution.test.ts +0 -660
- package/templates/apps/api/src/services/__tests__/usage-aggregation.test.ts +0 -941
- package/templates/apps/api/src/services/__tests__/usage-credits.test.ts +0 -588
- package/templates/apps/api/src/services/__tests__/verified-email.test.ts +0 -78
- package/templates/apps/api/src/services/abandon-email.ts +0 -336
- package/templates/apps/api/src/services/aeo-score.ts +0 -325
- package/templates/apps/api/src/services/answer-distributions.ts +0 -138
- package/templates/apps/api/src/services/audit-log.ts +0 -961
- package/templates/apps/api/src/services/checkout-buyer.ts +0 -168
- package/templates/apps/api/src/services/consent.ts +0 -834
- package/templates/apps/api/src/services/default-tenant.ts +0 -416
- package/templates/apps/api/src/services/deliverable-fulfillment.ts +0 -750
- package/templates/apps/api/src/services/dunning-policy.ts +0 -294
- package/templates/apps/api/src/services/enrichment-shim.ts +0 -53
- package/templates/apps/api/src/services/entitlements.ts +0 -338
- package/templates/apps/api/src/services/hub-sign-in.ts +0 -472
- package/templates/apps/api/src/services/lead-accept-user.ts +0 -126
- package/templates/apps/api/src/services/lead-promotion.ts +0 -160
- package/templates/apps/api/src/services/lead-routing.ts +0 -1372
- package/templates/apps/api/src/services/leads-inbox.ts +0 -312
- package/templates/apps/api/src/services/listing-config.ts +0 -178
- package/templates/apps/api/src/services/magnet-completion.ts +0 -242
- package/templates/apps/api/src/services/offerings/__tests__/catalog.test.ts +0 -348
- package/templates/apps/api/src/services/offerings/__tests__/checkout-session-record.test.ts +0 -268
- package/templates/apps/api/src/services/offerings/__tests__/connection.test.ts +0 -975
- package/templates/apps/api/src/services/offerings/__tests__/fixtures.ts +0 -416
- package/templates/apps/api/src/services/offerings/__tests__/org-products.test.ts +0 -400
- package/templates/apps/api/src/services/offerings/__tests__/readers.test.ts +0 -685
- package/templates/apps/api/src/services/offerings/__tests__/source.test.ts +0 -231
- package/templates/apps/api/src/services/offerings/catalog.ts +0 -318
- package/templates/apps/api/src/services/offerings/checkout-authorization.ts +0 -403
- package/templates/apps/api/src/services/offerings/checkout-session-record.ts +0 -192
- package/templates/apps/api/src/services/offerings/connection.ts +0 -1083
- package/templates/apps/api/src/services/offerings/index.ts +0 -614
- package/templates/apps/api/src/services/offerings/source.ts +0 -140
- package/templates/apps/api/src/services/offerings/store.ts +0 -150
- package/templates/apps/api/src/services/owner-workspaces.ts +0 -132
- package/templates/apps/api/src/services/person.ts +0 -1211
- package/templates/apps/api/src/services/plan-offerings.ts +0 -125
- package/templates/apps/api/src/services/project-listing-resume-email.ts +0 -326
- package/templates/apps/api/src/services/project-listings.ts +0 -2085
- package/templates/apps/api/src/services/public-site-resolver.ts +0 -396
- package/templates/apps/api/src/services/request-confirm.ts +0 -698
- package/templates/apps/api/src/services/revalidation.ts +0 -235
- package/templates/apps/api/src/services/slack-notify.ts +0 -291
- package/templates/apps/api/src/services/usage-aggregation.ts +0 -516
- package/templates/apps/api/src/services/usage-credits.ts +0 -340
- package/templates/apps/api/src/services/verified-email.ts +0 -71
- package/templates/apps/mcp/__tests__/abuse/daily-cap.test.ts +0 -52
- package/templates/apps/mcp/__tests__/abuse/email-validator.test.ts +0 -46
- package/templates/apps/mcp/__tests__/abuse/guard.test.ts +0 -198
- package/templates/apps/mcp/__tests__/abuse/honeypot.test.ts +0 -36
- package/templates/apps/mcp/__tests__/abuse/user-agent-deny.test.ts +0 -54
- package/templates/apps/mcp/__tests__/aeo-cli-parity.test.ts +0 -116
- package/templates/apps/mcp/__tests__/audit-single-page.test.ts +0 -299
- package/templates/apps/mcp/__tests__/boot.test.ts +0 -280
- package/templates/apps/mcp/__tests__/catalog-drift.test.ts +0 -359
- package/templates/apps/mcp/__tests__/config/modules.test.ts +0 -78
- package/templates/apps/mcp/__tests__/get_business_hours.test.ts +0 -82
- package/templates/apps/mcp/__tests__/get_faq.test.ts +0 -80
- package/templates/apps/mcp/__tests__/get_locations.test.ts +0 -65
- package/templates/apps/mcp/__tests__/get_offerings.test.ts +0 -557
- package/templates/apps/mcp/__tests__/get_pricing.test.ts +0 -524
- package/templates/apps/mcp/__tests__/get_site_info.test.ts +0 -81
- package/templates/apps/mcp/__tests__/http-transport.test.ts +0 -1232
- package/templates/apps/mcp/__tests__/index.test.ts +0 -195
- package/templates/apps/mcp/__tests__/lib/audit-single-page-readiness-scan.test.ts +0 -191
- package/templates/apps/mcp/__tests__/lib/commerce-claim.test.ts +0 -531
- package/templates/apps/mcp/__tests__/lib/content-adapter-parity.test.ts +0 -70
- package/templates/apps/mcp/__tests__/lib/content-adapter.test.ts +0 -162
- package/templates/apps/mcp/__tests__/lib/content-root.test.ts +0 -93
- package/templates/apps/mcp/__tests__/lib/errors.test.ts +0 -75
- package/templates/apps/mcp/__tests__/lib/fail-closed-tools.test.ts +0 -180
- package/templates/apps/mcp/__tests__/lib/public-workspace.test.ts +0 -124
- package/templates/apps/mcp/__tests__/list_pages.test.ts +0 -268
- package/templates/apps/mcp/__tests__/locale.test.ts +0 -120
- package/templates/apps/mcp/__tests__/module-exclusion.test.ts +0 -175
- package/templates/apps/mcp/__tests__/purchase-disabled.test.ts +0 -101
- package/templates/apps/mcp/__tests__/rate-limit-write.test.ts +0 -189
- package/templates/apps/mcp/__tests__/read_content.test.ts +0 -511
- package/templates/apps/mcp/__tests__/request_callback.test.ts +0 -160
- package/templates/apps/mcp/__tests__/search_content.test.ts +0 -271
- package/templates/apps/mcp/__tests__/server.test.ts +0 -388
- package/templates/apps/mcp/__tests__/start_purchase.test.ts +0 -448
- package/templates/apps/mcp/__tests__/submit_lead.test.ts +0 -222
- package/templates/apps/mcp/__tests__/subscribe_newsletter.test.ts +0 -152
- package/templates/apps/mcp/__tests__/tools/create_project.test.ts +0 -243
- package/templates/apps/mcp/__tests__/tools/purchase.test.ts +0 -451
- package/templates/apps/mcp/src/abuse/daily-cap.ts +0 -47
- package/templates/apps/mcp/src/abuse/email-validator.ts +0 -25
- package/templates/apps/mcp/src/abuse/honeypot.ts +0 -21
- package/templates/apps/mcp/src/abuse/index.ts +0 -349
- package/templates/apps/mcp/src/abuse/user-agent-deny.ts +0 -58
- package/templates/apps/mcp/src/boot.ts +0 -167
- package/templates/apps/mcp/src/config/modules.ts +0 -43
- package/templates/apps/mcp/src/http-transport.ts +0 -564
- package/templates/apps/mcp/src/lib/audit-single-page.ts +0 -308
- package/templates/apps/mcp/src/lib/commerce-claim.ts +0 -263
- package/templates/apps/mcp/src/lib/content-adapter.ts +0 -116
- package/templates/apps/mcp/src/lib/empty-content-adapter.ts +0 -140
- package/templates/apps/mcp/src/lib/errors.ts +0 -61
- package/templates/apps/mcp/src/lib/license-key-store.ts +0 -45
- package/templates/apps/mcp/src/lib/locales.ts +0 -171
- package/templates/apps/mcp/src/lib/prisma.ts +0 -39
- package/templates/apps/mcp/src/lib/public-workspace.ts +0 -133
- package/templates/apps/mcp/src/lib/resolve-locale.ts +0 -30
- package/templates/apps/mcp/src/lib/shown-offerings.ts +0 -105
- package/templates/apps/mcp/src/lib/site-config.ts +0 -53
- package/templates/apps/mcp/src/lib/stripe-tax-signal.ts +0 -59
- package/templates/apps/mcp/src/request-context.ts +0 -52
- package/templates/apps/mcp/src/server.ts +0 -343
- package/templates/apps/mcp/src/serverless-app.ts +0 -88
- package/templates/apps/mcp/src/tools/audit.ts +0 -127
- package/templates/apps/mcp/src/tools/capture_lead.ts +0 -66
- package/templates/apps/mcp/src/tools/create_project.ts +0 -134
- package/templates/apps/mcp/src/tools/get_business_hours.ts +0 -68
- package/templates/apps/mcp/src/tools/get_faq.ts +0 -71
- package/templates/apps/mcp/src/tools/get_locations.ts +0 -88
- package/templates/apps/mcp/src/tools/get_offerings.ts +0 -96
- package/templates/apps/mcp/src/tools/get_pricing.ts +0 -94
- package/templates/apps/mcp/src/tools/get_site_info.ts +0 -86
- package/templates/apps/mcp/src/tools/index.ts +0 -138
- package/templates/apps/mcp/src/tools/list_pages.ts +0 -68
- package/templates/apps/mcp/src/tools/person_notes.ts +0 -25
- package/templates/apps/mcp/src/tools/proposals.ts +0 -27
- package/templates/apps/mcp/src/tools/purchase.ts +0 -205
- package/templates/apps/mcp/src/tools/read_content.ts +0 -81
- package/templates/apps/mcp/src/tools/request_callback.ts +0 -52
- package/templates/apps/mcp/src/tools/search_content.ts +0 -63
- package/templates/apps/mcp/src/tools/subscribe_newsletter.ts +0 -54
- package/templates/apps/mcp/src/workspace-server.ts +0 -224
- package/templates/database/CHANGELOG.md +0 -981
- package/templates/database/LICENSE +0 -202
- package/templates/database/NOTICE +0 -2
- package/templates/database/README.md +0 -243
- package/templates/database/__tests__/agents.db.test.ts +0 -320
- package/templates/database/__tests__/appointment.db.test.ts +0 -106
- package/templates/database/__tests__/artifact-content-store.db.test.ts +0 -316
- package/templates/database/__tests__/composite-fence.db.test.ts +0 -206
- package/templates/database/__tests__/consent-ledger.db.test.ts +0 -345
- package/templates/database/__tests__/consent-source-checkout-migration.test.ts +0 -79
- package/templates/database/__tests__/fence-fan-out.db.test.ts +0 -715
- package/templates/database/__tests__/fixtures/appointment-create-probe.ts +0 -79
- package/templates/database/__tests__/fixtures/person-backfill.json +0 -264
- package/templates/database/__tests__/fixtures/person-contact-backfill.json +0 -182
- package/templates/database/__tests__/fixtures/project-listing-consent-probe.ts +0 -100
- package/templates/database/__tests__/flow-completion-migration.test.ts +0 -115
- package/templates/database/__tests__/flow-completion.db.test.ts +0 -136
- package/templates/database/__tests__/flow-workspace-key.db.test.ts +0 -263
- package/templates/database/__tests__/flows-listing-diagnostic.test.ts +0 -392
- package/templates/database/__tests__/flows-presets.test.ts +0 -173
- package/templates/database/__tests__/in-page-magnets-migration.test.ts +0 -161
- package/templates/database/__tests__/lead-idempotency-key.db.test.ts +0 -92
- package/templates/database/__tests__/member-area.db.test.ts +0 -257
- package/templates/database/__tests__/member-contract-migration.test.ts +0 -85
- package/templates/database/__tests__/member-contract.db.test.ts +0 -413
- package/templates/database/__tests__/offerings-checkout-session.db.test.ts +0 -270
- package/templates/database/__tests__/offerings-migration.test.ts +0 -197
- package/templates/database/__tests__/offerings-shown-price-ids-migration.test.ts +0 -86
- package/templates/database/__tests__/offerings.db.test.ts +0 -303
- package/templates/database/__tests__/outbound-message-action.db.test.ts +0 -80
- package/templates/database/__tests__/person-contact.db.test.ts +0 -563
- package/templates/database/__tests__/person-notes.db.test.ts +0 -249
- package/templates/database/__tests__/person.db.test.ts +0 -586
- package/templates/database/__tests__/piece-kind-migration.test.ts +0 -67
- package/templates/database/__tests__/piece-kind.db.test.ts +0 -208
- package/templates/database/__tests__/prefixed-ids.db.test.ts +0 -222
- package/templates/database/__tests__/project-listing-consent-at.db.test.ts +0 -111
- package/templates/database/__tests__/seed.test.ts +0 -272
- package/templates/database/__tests__/spoke-registry.db.test.ts +0 -191
- package/templates/database/__tests__/tenancy.test.ts +0 -141
- package/templates/database/__tests__/trial-magnet-migration.test.ts +0 -186
- package/templates/database/__tests__/user-cascade.test.ts +0 -140
- package/templates/database/_gitignore +0 -8
- package/templates/database/auth/.gitkeep +0 -0
- package/templates/database/auth/schema.prisma +0 -641
- package/templates/database/config/.gitkeep +0 -0
- package/templates/database/config/schema.prisma +0 -441
- package/templates/database/content/.gitkeep +0 -0
- package/templates/database/content/schema.prisma +0 -339
- package/templates/database/eslint.config.mjs +0 -69
- package/templates/database/flows/listing-diagnostic.ts +0 -182
- package/templates/database/flows/presets.ts +0 -315
- package/templates/database/inbox/.gitkeep +0 -0
- package/templates/database/inbox/README.md +0 -3
- package/templates/database/inbox/__tests__/schema.test.ts +0 -44
- package/templates/database/inbox/schema.prisma +0 -1447
- package/templates/database/jest.config.cjs +0 -36
- package/templates/database/migrations/20260508000000_add_inbox_namespace/migration.sql +0 -328
- package/templates/database/migrations/20260513000000_better_auth_migration/migration.sql +0 -100
- package/templates/database/migrations/20260515000000_add_user_billing_fields/migration.sql +0 -28
- package/templates/database/migrations/20260516000000_add_user_tier_care_plan_seat/migration.sql +0 -25
- package/templates/database/migrations/20260518000000_add_telemetry_records/migration.sql +0 -42
- package/templates/database/migrations/20260525000000_theme_wiring/migration.sql +0 -67
- package/templates/database/migrations/20260710000000_retire_commercial_tier/migration.sql +0 -21
- package/templates/database/migrations/20260712215647_add_multi_tenant_tenancy/migration.sql +0 -201
- package/templates/database/migrations/20260713143320_reanchor_site_config_to_workspace/migration.sql +0 -67
- package/templates/database/migrations/20260713174000_add_audit_logs/migration.sql +0 -46
- package/templates/database/migrations/20260713190000_drop_telemetry_records/migration.sql +0 -25
- package/templates/database/migrations/20260713192000_add_uuidv7_function/migration.sql +0 -49
- package/templates/database/migrations/20260713192429_prefixed_uuid_entity_ids/migration.sql +0 -197
- package/templates/database/migrations/20260713200000_add_org_billing/migration.sql +0 -32
- package/templates/database/migrations/20260714000000_add_lead_promotion_fields/migration.sql +0 -22
- package/templates/database/migrations/20260714010000_add_usage_billing_content_models/migration.sql +0 -151
- package/templates/database/migrations/20260714020000_add_usage_billing_auth_config_models/migration.sql +0 -223
- package/templates/database/migrations/20260714030000_credit_balance_non_negative/migration.sql +0 -22
- package/templates/database/migrations/20260714030000_widen_usage_billing_report_aggregates/migration.sql +0 -32
- package/templates/database/migrations/20260810233516_add_flow_engine_models/migration.sql +0 -40
- package/templates/database/migrations/20260811020000_add_flow_session_abandon_email_columns/migration.sql +0 -4
- package/templates/database/migrations/20260811030000_add_flow_session_abandon_email_index/migration.sql +0 -2
- package/templates/database/migrations/20260811040000_add_flow_session_segment/migration.sql +0 -2
- package/templates/database/migrations/20260811050000_add_deliverable_models/migration.sql +0 -29
- package/templates/database/migrations/20260812000000_add_deliverable_grant_send_columns/migration.sql +0 -6
- package/templates/database/migrations/20260902222948_add_waitlist_experiment_models/migration.sql +0 -39
- package/templates/database/migrations/20260902224500_add_waitlist_id_format_checks/migration.sql +0 -24
- package/templates/database/migrations/20260903004112_add_flow_session_flags_aeo_score/migration.sql +0 -3
- package/templates/database/migrations/20260903010000_add_playbook_instance/migration.sql +0 -33
- package/templates/database/migrations/20260904000000_add_waitlist_followup_send/migration.sql +0 -30
- package/templates/database/migrations/20260905230000_add_flow_checkout/migration.sql +0 -47
- package/templates/database/migrations/20260906000000_add_flow_checkout_idempotency/migration.sql +0 -16
- package/templates/database/migrations/20260907120000_add_project_listing/migration.sql +0 -47
- package/templates/database/migrations/20260907130000_add_project_listing_slack_columns/migration.sql +0 -10
- package/templates/database/migrations/20260907180000_add_listing_csv_send/migration.sql +0 -26
- package/templates/database/migrations/20260909120000_project_listings_platform/migration.sql +0 -90
- package/templates/database/migrations/20260909180000_listing_draft_and_fields/migration.sql +0 -174
- package/templates/database/migrations/20260910120000_listing_public_site_key/migration.sql +0 -14
- package/templates/database/migrations/20260911120000_listing_copy_edit_audit/migration.sql +0 -25
- package/templates/database/migrations/20260911140000_listing_structured_address/migration.sql +0 -32
- package/templates/database/migrations/20260911180000_consent_grants/migration.sql +0 -71
- package/templates/database/migrations/20260911200000_listing_site_answers/migration.sql +0 -30
- package/templates/database/migrations/20260912120000_listing_owner_link/migration.sql +0 -49
- package/templates/database/migrations/20260914120000_listing_founder_identity/migration.sql +0 -123
- package/templates/database/migrations/20260915120000_project_listing_solution/migration.sql +0 -15
- package/templates/database/migrations/20260916120000_artifact_content_store/migration.sql +0 -158
- package/templates/database/migrations/20260917120000_callback_request_confirm/migration.sql +0 -40
- package/templates/database/migrations/20260918120000_add_appointment/migration.sql +0 -67
- package/templates/database/migrations/20260918120000_asset_metadata_columns/migration.sql +0 -70
- package/templates/database/migrations/20260919120000_flow_workspace_key/migration.sql +0 -181
- package/templates/database/migrations/20260919130000_flow_definition_admin_columns/migration.sql +0 -172
- package/templates/database/migrations/20260919130000_workspace_meetings/migration.sql +0 -41
- package/templates/database/migrations/20260919140000_inbox_workspace_key/migration.sql +0 -185
- package/templates/database/migrations/20260920120000_lead_handled_at/migration.sql +0 -70
- package/templates/database/migrations/20260920130000_lead_workspace_source_index/migration.sql +0 -57
- package/templates/database/migrations/20260921120000_deliverable_grant_workspace_key/migration.sql +0 -68
- package/templates/database/migrations/20260922120000_tenancy_fence/migration.sql +0 -1067
- package/templates/database/migrations/20260923120000_listing_capturing_magnet/migration.sql +0 -210
- package/templates/database/migrations/20261003120000_spoke_registry/migration.sql +0 -80
- package/templates/database/migrations/20261003130000_scheduling_connection/migration.sql +0 -49
- package/templates/database/migrations/20261005120000_agents/migration.sql +0 -84
- package/templates/database/migrations/20261008120000_user_last_workspace/migration.sql +0 -35
- package/templates/database/migrations/20261008130000_lead_idempotency_key/migration.sql +0 -20
- package/templates/database/migrations/20261009120000_agent_grants/migration.sql +0 -33
- package/templates/database/migrations/20261010120000_person/migration.sql +0 -106
- package/templates/database/migrations/20261010121000_person_backfill/migration.sql +0 -132
- package/templates/database/migrations/20261010130000_agent_grants_people_read/migration.sql +0 -20
- package/templates/database/migrations/20261011120000_member_area/migration.sql +0 -158
- package/templates/database/migrations/20261011130000_agent_grants_member_pieces_manage/migration.sql +0 -21
- package/templates/database/migrations/20261012120000_member_contract/migration.sql +0 -192
- package/templates/database/migrations/20261013120000_lead_spoke_checkout/migration.sql +0 -20
- package/templates/database/migrations/20261014120000_consent_ledger/migration.sql +0 -122
- package/templates/database/migrations/20261014120000_person_contact/migration.sql +0 -231
- package/templates/database/migrations/20261015120000_person_notes/migration.sql +0 -77
- package/templates/database/migrations/20261015120000_rate_limit_counters/migration.sql +0 -43
- package/templates/database/migrations/20261016120000_piece_kind/migration.sql +0 -95
- package/templates/database/migrations/20261017120000_outbound_message_action/migration.sql +0 -30
- package/templates/database/migrations/20261018120000_flow_completion/migration.sql +0 -52
- package/templates/database/migrations/20261019120000_consent_source_checkout/migration.sql +0 -27
- package/templates/database/migrations/20261020120000_offerings_data_model/migration.sql +0 -146
- package/templates/database/migrations/20261021120000_offerings_checkout_session/migration.sql +0 -77
- package/templates/database/migrations/20261022120000_in_page_magnets/migration.sql +0 -45
- package/templates/database/migrations/20261023120000_offerings_shown_price_ids/migration.sql +0 -47
- package/templates/database/migrations/20261024120000_organization_plan_checkout_session/migration.sql +0 -16
- package/templates/database/migrations/20261025120000_trial_magnet/migration.sql +0 -28
- package/templates/database/migrations/20261026120000_trial_magnet_proof_line/migration.sql +0 -23
- package/templates/database/migrations/migration_lock.toml +0 -3
- package/templates/database/ops/.gitkeep +0 -0
- package/templates/database/ops/schema.prisma +0 -43
- package/templates/database/package.json +0 -89
- package/templates/database/schema.prisma +0 -71
- package/templates/database/scripts/db-generate-locked.sh +0 -80
- package/templates/database/scripts/person-backfill.sql +0 -132
- package/templates/database/tenancy.ts +0 -183
- package/templates/database/tsconfig.build.json +0 -16
- package/templates/database/tsconfig.flows.json +0 -15
- package/templates/database/tsconfig.json +0 -16
- package/templates/database/tsconfig.tenancy.json +0 -14
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* get_offerings — returns Services and/or Products as a unified offerings array.
|
|
3
|
-
*
|
|
4
|
-
* Pure read: resolves its adapter through `getMcpContentAdapter()` — the one
|
|
5
|
-
* resolver seam (#5805, ADR 0011), MDX by default — and answers through
|
|
6
|
-
* `listOfferings` (`@working-theory/content-adapters`), which lists pages of
|
|
7
|
-
* type "Service" and/or "Product" and shapes them into a unified offerings
|
|
8
|
-
* array. Optionally filtered by type.
|
|
9
|
-
*
|
|
10
|
-
* HTTP twin (#7177): `GET /v1/content/offerings` in `apps/api` takes the same
|
|
11
|
-
* arguments and answers through the same `listOfferings` — the shared seam
|
|
12
|
-
* the pair proves parity at. The tool still reads content locally, so it
|
|
13
|
-
* needs no API to answer.
|
|
14
|
-
*
|
|
15
|
-
* Phase 3 S3: optional `locale` parameter (BCP-47). Validated against the
|
|
16
|
-
* project's allowlist; invalid or unknown values silently fall back to the
|
|
17
|
-
* default locale (AC-i18n-07). Lists are locale-scoped.
|
|
18
|
-
*
|
|
19
|
-
* The offering fields (#5838) — `provider`, `categories`, `price` and
|
|
20
|
-
* `priceCurrency` — come off the page's own frontmatter; `listOfferings`
|
|
21
|
-
* documents the mapping.
|
|
22
|
-
*
|
|
23
|
-
* Offerings (#8933, spec D8): when the site sells through its connected
|
|
24
|
-
* Stripe catalog and `type` is not `service`, the tool answers the Service
|
|
25
|
-
* pages followed by the workspace's Offerings shown set, in place of the
|
|
26
|
-
* Product pages — read over HTTP by `lib/shown-offerings.ts` (D6: only on a
|
|
27
|
-
* `claimed` host, at most `MCP_SHOWN_SET_BUDGET_MS`) and mapped by
|
|
28
|
-
* `listOfferingsWithShownSet`, the function the twin route answers through
|
|
29
|
-
* too, so each shown product also carries `prices` (every price with its
|
|
30
|
-
* interval and full lookup key). Names, descriptions and prices are
|
|
31
|
-
* seller-provided data returned as plain JSON values (T5). `type: "service"`,
|
|
32
|
-
* an unclaimed host, a workspace with no current set, a failed read or a
|
|
33
|
-
* mapping that throws answers the page content below, unchanged.
|
|
34
|
-
*
|
|
35
|
-
* Input: { type?: 'service' | 'product', locale?: string }
|
|
36
|
-
* Output: { offerings: Array<{ name, description, category?, image?, provider, categories, price, priceCurrency, prices? }> }
|
|
37
|
-
* Session/scope: none — read-only public content.
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
|
-
import {
|
|
41
|
-
listOfferings,
|
|
42
|
-
listOfferingsWithShownSet,
|
|
43
|
-
} from "@working-theory/content-adapters";
|
|
44
|
-
import {
|
|
45
|
-
getOfferingsInputSchema,
|
|
46
|
-
getOfferingsOutputSchema,
|
|
47
|
-
type GetOfferingsInput,
|
|
48
|
-
type GetOfferingsOutput,
|
|
49
|
-
} from "@working-theory/validation";
|
|
50
|
-
|
|
51
|
-
import {
|
|
52
|
-
getMcpContentAdapter,
|
|
53
|
-
mcpContentRoot,
|
|
54
|
-
} from "../lib/content-adapter.js";
|
|
55
|
-
import { resolveLocale } from "../lib/resolve-locale.js";
|
|
56
|
-
import {
|
|
57
|
-
mcpCurrentShownSet,
|
|
58
|
-
reportMappingFailure,
|
|
59
|
-
} from "../lib/shown-offerings.js";
|
|
60
|
-
|
|
61
|
-
export { getOfferingsInputSchema, getOfferingsOutputSchema };
|
|
62
|
-
export type { GetOfferingsInput, GetOfferingsOutput };
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* get_offerings handler.
|
|
66
|
-
*
|
|
67
|
-
* Accepts an optional `contentRoot` override for testing. When omitted,
|
|
68
|
-
* resolves it through `mcpContentRoot()` (#8070 D3).
|
|
69
|
-
*/
|
|
70
|
-
export async function ailkGetOfferings(
|
|
71
|
-
input: GetOfferingsInput,
|
|
72
|
-
contentRoot?: string,
|
|
73
|
-
): Promise<GetOfferingsOutput> {
|
|
74
|
-
getOfferingsInputSchema.parse(input);
|
|
75
|
-
|
|
76
|
-
const root = contentRoot ?? mcpContentRoot();
|
|
77
|
-
const locale = resolveLocale(input.locale);
|
|
78
|
-
const adapter = getMcpContentAdapter({ contentRoot: root, locale });
|
|
79
|
-
|
|
80
|
-
if (input.type !== "service") {
|
|
81
|
-
const shownSet = await mcpCurrentShownSet();
|
|
82
|
-
if (shownSet !== null) {
|
|
83
|
-
try {
|
|
84
|
-
return await listOfferingsWithShownSet(
|
|
85
|
-
adapter,
|
|
86
|
-
{ type: input.type, locale },
|
|
87
|
-
shownSet,
|
|
88
|
-
);
|
|
89
|
-
} catch (err) {
|
|
90
|
-
reportMappingFailure(err);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return listOfferings(adapter, { type: input.type, locale });
|
|
96
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* get_pricing — returns pricing tiers from Offer structured data.
|
|
3
|
-
*
|
|
4
|
-
* Pure read: resolves its adapter through `getMcpContentAdapter()` — the one
|
|
5
|
-
* resolver seam (#5805, ADR 0011), MDX by default.
|
|
6
|
-
* Resolves a page by slug (default: "pricing") and extracts Offer schema.
|
|
7
|
-
* Returns null when the page is not found or has no offer data.
|
|
8
|
-
*
|
|
9
|
-
* Phase 3 S3: optional `locale` parameter (BCP-47). Validated against the
|
|
10
|
-
* project's allowlist; invalid or unknown values silently fall back to the
|
|
11
|
-
* default locale (AC-i18n-07).
|
|
12
|
-
*
|
|
13
|
-
* Fallback (#5838): when the page authors no `offers` in its `schema`, the
|
|
14
|
-
* offering fields on its own frontmatter answer instead — a listing that
|
|
15
|
-
* declares `price` + `priceCurrency` yields one tier named for the page. A
|
|
16
|
-
* listing with neither an authored offer nor a price still returns `null`: no
|
|
17
|
-
* price means no tier, never a fabricated zero. `getPricingTiers`
|
|
18
|
-
* (`@working-theory/content-adapters`) documents the mapping.
|
|
19
|
-
*
|
|
20
|
-
* HTTP twin (#7178): `GET /v1/content/pricing` in `apps/api` takes the same
|
|
21
|
-
* arguments and answers through the same `getPricingTiers` — the shared seam
|
|
22
|
-
* the pair proves parity at. The tool still reads content locally, so it
|
|
23
|
-
* needs no API to answer.
|
|
24
|
-
*
|
|
25
|
-
* Offerings (#8933, spec D8): when the site sells through its connected
|
|
26
|
-
* Stripe catalog and `slug` is omitted or `pricing`, the tool answers the
|
|
27
|
-
* workspace's Offerings shown set instead — read over HTTP by
|
|
28
|
-
* `lib/shown-offerings.ts` (D6: only on a `claimed` host, at most
|
|
29
|
-
* `MCP_SHOWN_SET_BUDGET_MS`) and mapped by `pricingTiersFromShownSet`, the
|
|
30
|
-
* function the twin route answers through too, so each tier also carries
|
|
31
|
-
* `interval` and the full `lookupKey`. Names, descriptions and prices are
|
|
32
|
-
* seller-provided data returned as plain JSON values (T5). Any other slug, an
|
|
33
|
-
* unclaimed host, a workspace with no current set, a failed read or a mapping
|
|
34
|
-
* that throws answers the page content below, unchanged.
|
|
35
|
-
*
|
|
36
|
-
* Input: { slug?: string, locale?: string }
|
|
37
|
-
* Output: { tiers: Array<{ name, price, priceCurrency, description?, interval?, lookupKey? }> } | null
|
|
38
|
-
* Session/scope: none — read-only public content.
|
|
39
|
-
*/
|
|
40
|
-
|
|
41
|
-
import {
|
|
42
|
-
getPricingTiers,
|
|
43
|
-
pricingTiersFromShownSet,
|
|
44
|
-
shownSetAnswersPricing,
|
|
45
|
-
} from "@working-theory/content-adapters";
|
|
46
|
-
import {
|
|
47
|
-
getPricingInputSchema,
|
|
48
|
-
getPricingOutputSchema,
|
|
49
|
-
type GetPricingInput,
|
|
50
|
-
type GetPricingOutput,
|
|
51
|
-
} from "@working-theory/validation";
|
|
52
|
-
|
|
53
|
-
import {
|
|
54
|
-
getMcpContentAdapter,
|
|
55
|
-
mcpContentRoot,
|
|
56
|
-
} from "../lib/content-adapter.js";
|
|
57
|
-
import { resolveLocale } from "../lib/resolve-locale.js";
|
|
58
|
-
import {
|
|
59
|
-
mcpCurrentShownSet,
|
|
60
|
-
reportMappingFailure,
|
|
61
|
-
} from "../lib/shown-offerings.js";
|
|
62
|
-
|
|
63
|
-
export { getPricingInputSchema, getPricingOutputSchema };
|
|
64
|
-
export type { GetPricingInput, GetPricingOutput };
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* get_pricing handler.
|
|
68
|
-
*
|
|
69
|
-
* Accepts an optional `contentRoot` override for testing. When omitted,
|
|
70
|
-
* resolves it through `mcpContentRoot()` (#8070 D3).
|
|
71
|
-
*/
|
|
72
|
-
export async function ailkGetPricing(
|
|
73
|
-
input: GetPricingInput,
|
|
74
|
-
contentRoot?: string,
|
|
75
|
-
): Promise<GetPricingOutput> {
|
|
76
|
-
getPricingInputSchema.parse(input);
|
|
77
|
-
|
|
78
|
-
if (shownSetAnswersPricing(input.slug)) {
|
|
79
|
-
const shownSet = await mcpCurrentShownSet();
|
|
80
|
-
if (shownSet !== null) {
|
|
81
|
-
try {
|
|
82
|
-
return pricingTiersFromShownSet(shownSet);
|
|
83
|
-
} catch (err) {
|
|
84
|
-
reportMappingFailure(err);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const root = contentRoot ?? mcpContentRoot();
|
|
90
|
-
const locale = resolveLocale(input.locale);
|
|
91
|
-
const adapter = getMcpContentAdapter({ contentRoot: root, locale });
|
|
92
|
-
|
|
93
|
-
return getPricingTiers(adapter, { slug: input.slug, locale });
|
|
94
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* get_site_info — returns structured site identity from the HomePage.
|
|
3
|
-
*
|
|
4
|
-
* Pure read: resolves its adapter through `getMcpContentAdapter()` — the one
|
|
5
|
-
* resolver seam (#5805, ADR 0011), MDX by default.
|
|
6
|
-
* Resolves the HomePage by slug (default: "home") and extracts the `schema`
|
|
7
|
-
* frontmatter field. Returns null when the page is not found or has no schema.
|
|
8
|
-
*
|
|
9
|
-
* Phase 3 S3: optional `locale` parameter (BCP-47). Validated against the
|
|
10
|
-
* project's allowlist; invalid or unknown values silently fall back to the
|
|
11
|
-
* default locale (AC-i18n-07).
|
|
12
|
-
*
|
|
13
|
-
* Input: { slug?: string, locale?: string }
|
|
14
|
-
* Output: { name, description, contact?, brandColors?, socialHandles? } | null
|
|
15
|
-
* Session/scope: none — read-only public content.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import {
|
|
19
|
-
getSiteInfoInputSchema,
|
|
20
|
-
getSiteInfoOutputSchema,
|
|
21
|
-
type GetSiteInfoInput,
|
|
22
|
-
type GetSiteInfoOutput,
|
|
23
|
-
} from "@working-theory/validation";
|
|
24
|
-
|
|
25
|
-
import {
|
|
26
|
-
getMcpContentAdapter,
|
|
27
|
-
mcpContentRoot,
|
|
28
|
-
} from "../lib/content-adapter.js";
|
|
29
|
-
import { resolveLocale } from "../lib/resolve-locale.js";
|
|
30
|
-
|
|
31
|
-
export { getSiteInfoInputSchema, getSiteInfoOutputSchema };
|
|
32
|
-
export type { GetSiteInfoInput, GetSiteInfoOutput };
|
|
33
|
-
|
|
34
|
-
const DEFAULT_SLUG = "home";
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* get_site_info handler.
|
|
38
|
-
*
|
|
39
|
-
* Accepts an optional `contentRoot` override for testing. When omitted,
|
|
40
|
-
* resolves it through `mcpContentRoot()` (#8070 D3).
|
|
41
|
-
*/
|
|
42
|
-
export async function ailkGetSiteInfo(
|
|
43
|
-
input: GetSiteInfoInput,
|
|
44
|
-
contentRoot?: string,
|
|
45
|
-
): Promise<GetSiteInfoOutput> {
|
|
46
|
-
getSiteInfoInputSchema.parse(input);
|
|
47
|
-
|
|
48
|
-
const root = contentRoot ?? mcpContentRoot();
|
|
49
|
-
const locale = resolveLocale(input.locale);
|
|
50
|
-
const adapter = getMcpContentAdapter({ contentRoot: root, locale });
|
|
51
|
-
|
|
52
|
-
const slug = input.slug ?? DEFAULT_SLUG;
|
|
53
|
-
const data = await adapter.extractStructuredData("HomePage", slug, locale);
|
|
54
|
-
if (!data) return null;
|
|
55
|
-
|
|
56
|
-
const schema = data as Record<string, unknown>;
|
|
57
|
-
|
|
58
|
-
const contactRaw = schema["contactPoint"] as
|
|
59
|
-
| Record<string, unknown>
|
|
60
|
-
| undefined;
|
|
61
|
-
const contact =
|
|
62
|
-
contactRaw !== undefined
|
|
63
|
-
? {
|
|
64
|
-
email: contactRaw["email"] as string | undefined,
|
|
65
|
-
phone: contactRaw["telephone"] as string | undefined,
|
|
66
|
-
}
|
|
67
|
-
: undefined;
|
|
68
|
-
|
|
69
|
-
const colorsRaw = schema["brandColors"];
|
|
70
|
-
const brandColors = Array.isArray(colorsRaw)
|
|
71
|
-
? (colorsRaw as string[])
|
|
72
|
-
: undefined;
|
|
73
|
-
|
|
74
|
-
const socialsRaw = schema["sameAs"];
|
|
75
|
-
const socialHandles = Array.isArray(socialsRaw)
|
|
76
|
-
? (socialsRaw as string[])
|
|
77
|
-
: undefined;
|
|
78
|
-
|
|
79
|
-
return getSiteInfoOutputSchema.parse({
|
|
80
|
-
name: (schema["name"] as string) ?? "",
|
|
81
|
-
description: (schema["description"] as string) ?? "",
|
|
82
|
-
contact,
|
|
83
|
-
brandColors,
|
|
84
|
-
socialHandles,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP tool registry — re-exports every tool module.
|
|
3
|
-
*
|
|
4
|
-
* Add new tool modules here as they land in Phase 3+.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
purchaseInputSchema,
|
|
9
|
-
purchaseOutputSchema,
|
|
10
|
-
ailkPurchase,
|
|
11
|
-
type PurchaseInput,
|
|
12
|
-
type PurchaseOutput,
|
|
13
|
-
} from "./purchase.js";
|
|
14
|
-
|
|
15
|
-
export {
|
|
16
|
-
contentListParamsSchema,
|
|
17
|
-
contentListQuerySchema,
|
|
18
|
-
contentListResultSchema,
|
|
19
|
-
ailkListPages,
|
|
20
|
-
type ListPagesInput,
|
|
21
|
-
type ContentListResult,
|
|
22
|
-
} from "./list_pages.js";
|
|
23
|
-
|
|
24
|
-
export {
|
|
25
|
-
contentPageParamsSchema,
|
|
26
|
-
contentPageQuerySchema,
|
|
27
|
-
contentPageResultSchema,
|
|
28
|
-
ailkReadContent,
|
|
29
|
-
type ReadContentInput,
|
|
30
|
-
type ContentPageResult,
|
|
31
|
-
} from "./read_content.js";
|
|
32
|
-
|
|
33
|
-
export {
|
|
34
|
-
contentSearchQuerySchema,
|
|
35
|
-
contentSearchResultSchema,
|
|
36
|
-
ailkSearchContent,
|
|
37
|
-
type SearchContentInput,
|
|
38
|
-
type ContentSearchResult,
|
|
39
|
-
} from "./search_content.js";
|
|
40
|
-
|
|
41
|
-
export {
|
|
42
|
-
getSiteInfoInputSchema,
|
|
43
|
-
getSiteInfoOutputSchema,
|
|
44
|
-
ailkGetSiteInfo,
|
|
45
|
-
type GetSiteInfoInput,
|
|
46
|
-
type GetSiteInfoOutput,
|
|
47
|
-
} from "./get_site_info.js";
|
|
48
|
-
|
|
49
|
-
export {
|
|
50
|
-
getBusinessHoursInputSchema,
|
|
51
|
-
getBusinessHoursOutputSchema,
|
|
52
|
-
ailkGetBusinessHours,
|
|
53
|
-
type GetBusinessHoursInput,
|
|
54
|
-
type GetBusinessHoursOutput,
|
|
55
|
-
} from "./get_business_hours.js";
|
|
56
|
-
|
|
57
|
-
export {
|
|
58
|
-
getLocationsInputSchema,
|
|
59
|
-
getLocationsOutputSchema,
|
|
60
|
-
ailkGetLocations,
|
|
61
|
-
type GetLocationsInput,
|
|
62
|
-
type GetLocationsOutput,
|
|
63
|
-
} from "./get_locations.js";
|
|
64
|
-
|
|
65
|
-
export {
|
|
66
|
-
getOfferingsInputSchema,
|
|
67
|
-
getOfferingsOutputSchema,
|
|
68
|
-
ailkGetOfferings,
|
|
69
|
-
type GetOfferingsInput,
|
|
70
|
-
type GetOfferingsOutput,
|
|
71
|
-
} from "./get_offerings.js";
|
|
72
|
-
|
|
73
|
-
export {
|
|
74
|
-
getPricingInputSchema,
|
|
75
|
-
getPricingOutputSchema,
|
|
76
|
-
ailkGetPricing,
|
|
77
|
-
type GetPricingInput,
|
|
78
|
-
type GetPricingOutput,
|
|
79
|
-
} from "./get_pricing.js";
|
|
80
|
-
|
|
81
|
-
export {
|
|
82
|
-
getFaqInputSchema,
|
|
83
|
-
getFaqOutputSchema,
|
|
84
|
-
ailkGetFaq,
|
|
85
|
-
type GetFaqInput,
|
|
86
|
-
type GetFaqOutput,
|
|
87
|
-
} from "./get_faq.js";
|
|
88
|
-
|
|
89
|
-
export {
|
|
90
|
-
auditInputSchema,
|
|
91
|
-
auditOutputSchema,
|
|
92
|
-
ailkAudit,
|
|
93
|
-
type AuditInput,
|
|
94
|
-
type AuditOutput,
|
|
95
|
-
} from "./audit.js";
|
|
96
|
-
|
|
97
|
-
// #7171, #7172, #7173 — the three lead writes take their routes' body
|
|
98
|
-
// exports and share one output schema (the route's 201 body or the tool's
|
|
99
|
-
// error), re-exported once from capture_lead.
|
|
100
|
-
export {
|
|
101
|
-
leadSubmitBodySchema,
|
|
102
|
-
leadWriteOutputSchema,
|
|
103
|
-
ailkCaptureLead,
|
|
104
|
-
type LeadSubmitBody,
|
|
105
|
-
type LeadWriteOutput,
|
|
106
|
-
} from "./capture_lead.js";
|
|
107
|
-
|
|
108
|
-
export {
|
|
109
|
-
leadSubscribeBodySchema,
|
|
110
|
-
ailkSubscribeNewsletter,
|
|
111
|
-
type LeadSubscribeBody,
|
|
112
|
-
} from "./subscribe_newsletter.js";
|
|
113
|
-
|
|
114
|
-
export {
|
|
115
|
-
leadCallbackBodySchema,
|
|
116
|
-
ailkRequestCallback,
|
|
117
|
-
type LeadCallbackBody,
|
|
118
|
-
} from "./request_callback.js";
|
|
119
|
-
|
|
120
|
-
export {
|
|
121
|
-
scaffoldInputSchema,
|
|
122
|
-
scaffoldOutputSchema,
|
|
123
|
-
ailkCreateProject,
|
|
124
|
-
type ScaffoldInput,
|
|
125
|
-
type ScaffoldOutput,
|
|
126
|
-
} from "./create_project.js";
|
|
127
|
-
|
|
128
|
-
// The scheduling tools (list_availability, get_event_meta, create_booking)
|
|
129
|
-
// and the signal-collectors flow tools (get_flow, submit_flow_step) are
|
|
130
|
-
// deliberately NOT re-exported here. (The content-write tools that used to sit
|
|
131
|
-
// in this list — create_page, update_page, delete_page — no longer exist at
|
|
132
|
-
// all: #5853 retired them with their HTTP twins.)
|
|
133
|
-
// Both remaining groups are module-conditional slice files
|
|
134
|
-
// (#5182): a re-export from this barrel is a static path into a file the OSS
|
|
135
|
-
// strip removes, which reds the public tree's type-check. They are reached
|
|
136
|
-
// only through `createMcpServer`'s per-module loader in ../server.ts.
|
|
137
|
-
// The rule this barrel now follows: it re-exports exactly the tools no module
|
|
138
|
-
// gate can remove.
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* list_pages — returns one page of the published content pages of a type.
|
|
3
|
-
*
|
|
4
|
-
* Pure read: resolves its adapter through `getMcpContentAdapter()` — the one
|
|
5
|
-
* resolver seam (#5805, ADR 0011), MDX by default — and answers through
|
|
6
|
-
* `listPagesItemList` (`@working-theory/content-adapters`).
|
|
7
|
-
* No auth, no side effects, no network. The adapter reads from the filesystem.
|
|
8
|
-
*
|
|
9
|
-
* HTTP twin (#7168): `GET /v1/content/:type` in `apps/api` parses the same
|
|
10
|
-
* `contentListParamsSchema` + `contentListQuerySchema` and answers through
|
|
11
|
-
* the same builder — the tool adopted the API, arguments and results: `type`
|
|
12
|
-
* is required, and `page` (default 1) / `pageSize` (default 20, at most 100)
|
|
13
|
-
* pick the window.
|
|
14
|
-
*
|
|
15
|
-
* Phase 3 S3: optional `locale` parameter. Validated against `readLocales()`
|
|
16
|
-
* allowlist; invalid or unknown values silently fall back to the project's
|
|
17
|
-
* default locale (AC-i18n-07). Lists are locale-scoped — pages must exist in
|
|
18
|
-
* the requested locale's directory to be enumerated.
|
|
19
|
-
*
|
|
20
|
-
* Input: { type: SchemaOrgType, page?: number, pageSize?: number, locale?: string }
|
|
21
|
-
* Output: { "@context", "@type": "ItemList", type, items: ContentPage[],
|
|
22
|
-
* pagination: { page, pageSize, totalItems, totalPages } }
|
|
23
|
-
* Session/scope: none — read-only public content.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
import { listPagesItemList } from "@working-theory/content-adapters";
|
|
27
|
-
import {
|
|
28
|
-
contentListParamsSchema,
|
|
29
|
-
contentListQuerySchema,
|
|
30
|
-
contentListResultSchema,
|
|
31
|
-
type ContentListResult,
|
|
32
|
-
type ListPagesInput,
|
|
33
|
-
} from "@working-theory/validation";
|
|
34
|
-
|
|
35
|
-
import {
|
|
36
|
-
getMcpContentAdapter,
|
|
37
|
-
mcpContentRoot,
|
|
38
|
-
} from "../lib/content-adapter.js";
|
|
39
|
-
import { resolveLocale } from "../lib/resolve-locale.js";
|
|
40
|
-
|
|
41
|
-
export {
|
|
42
|
-
contentListParamsSchema,
|
|
43
|
-
contentListQuerySchema,
|
|
44
|
-
contentListResultSchema,
|
|
45
|
-
};
|
|
46
|
-
export type { ListPagesInput, ContentListResult };
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* list_pages handler.
|
|
50
|
-
*
|
|
51
|
-
* Accepts an optional `contentRoot` override for testing (avoids coupling
|
|
52
|
-
* unit tests to the deployed filesystem layout). When omitted, resolves it
|
|
53
|
-
* through `mcpContentRoot()` (#8070 D3).
|
|
54
|
-
*/
|
|
55
|
-
export async function ailkListPages(
|
|
56
|
-
input: ListPagesInput,
|
|
57
|
-
contentRoot?: string,
|
|
58
|
-
): Promise<ContentListResult> {
|
|
59
|
-
const { type } = contentListParamsSchema.parse(input);
|
|
60
|
-
const { page, pageSize } = contentListQuerySchema.parse(input);
|
|
61
|
-
|
|
62
|
-
// Default: the one content-root resolver (#8070 D3).
|
|
63
|
-
const root = contentRoot ?? mcpContentRoot();
|
|
64
|
-
const locale = resolveLocale(input.locale);
|
|
65
|
-
const adapter = getMcpContentAdapter({ contentRoot: root, locale });
|
|
66
|
-
|
|
67
|
-
return listPagesItemList(adapter, { type, page, pageSize, locale });
|
|
68
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// oss: false
|
|
2
|
-
/**
|
|
3
|
-
* The signed-in workspace surface's People notes tools (#8514 D8) — the twins
|
|
4
|
-
* of `apps/api/src/routes/workspaces/people.ts`'s notes pair:
|
|
5
|
-
*
|
|
6
|
-
* get_person_notes GET /v1/workspaces/:workspaceId/people/:personId/notes
|
|
7
|
-
* set_person_notes PUT /v1/workspaces/:workspaceId/people/:personId/notes
|
|
8
|
-
*
|
|
9
|
-
* Each takes the route's params and body (the SDK has already parsed them
|
|
10
|
-
* against the catalog's input shape, which is the route's own schemas),
|
|
11
|
-
* forwards the caller's agent key through `@working-theory/api-client`, and
|
|
12
|
-
* returns the route's answer untouched. apps/api checks the key, the grant and
|
|
13
|
-
* the workspace; this file only carries the key, and never logs or returns it.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
import { people, type PersonRef } from "@working-theory/api-client";
|
|
17
|
-
import type { PersonNotesPutInput } from "@working-theory/validation";
|
|
18
|
-
|
|
19
|
-
export function ailkGetPersonNotes(key: string, input: PersonRef) {
|
|
20
|
-
return people.notes(key, input);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function ailkSetPersonNotes(key: string, input: PersonRef & PersonNotesPutInput) {
|
|
24
|
-
return people.setNotes(key, input);
|
|
25
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
// oss: false
|
|
2
|
-
/**
|
|
3
|
-
* The signed-in workspace surface's proposals tools (#8516 D7) — the twins of
|
|
4
|
-
* `apps/api/src/routes/workspaces/pieces.ts`'s proposals pair:
|
|
5
|
-
*
|
|
6
|
-
* list_proposals GET /v1/workspaces/:workspaceId/people/:personId/proposals
|
|
7
|
-
* create_proposal POST /v1/workspaces/:workspaceId/people/:personId/proposals
|
|
8
|
-
*
|
|
9
|
-
* Each takes the route's params and body (the SDK has already parsed them
|
|
10
|
-
* against the catalog's input shape, which is the route's own schemas),
|
|
11
|
-
* forwards the caller's agent key through `@working-theory/api-client`, and
|
|
12
|
-
* returns the route's answer untouched. apps/api checks the key, the grant,
|
|
13
|
-
* the workspace and the money gate (an agent's price is `403
|
|
14
|
-
* proposal_needs_person`); this file only carries the key, and never logs or
|
|
15
|
-
* returns it.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import { people, type PersonRef } from "@working-theory/api-client";
|
|
19
|
-
import type { ProposalCreateBody } from "@working-theory/validation";
|
|
20
|
-
|
|
21
|
-
export function ailkListProposals(key: string, input: PersonRef) {
|
|
22
|
-
return people.proposals(key, input);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export function ailkCreateProposal(key: string, input: PersonRef & ProposalCreateBody) {
|
|
26
|
-
return people.createProposal(key, input);
|
|
27
|
-
}
|