swallowkit 1.1.2 → 2.0.0-alpha.10
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.ja.md +61 -7
- package/README.md +61 -7
- package/dist/cli/commands/add-auth.d.ts.map +1 -1
- package/dist/cli/commands/add-auth.js +103 -27
- package/dist/cli/commands/add-auth.js.map +1 -1
- package/dist/cli/commands/configure-mcp.d.ts +12 -0
- package/dist/cli/commands/configure-mcp.d.ts.map +1 -0
- package/dist/cli/commands/configure-mcp.js +42 -0
- package/dist/cli/commands/configure-mcp.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +5 -2
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +143 -67
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/init.d.ts +14 -7
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +149 -170
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/migrations.d.ts.map +1 -1
- package/dist/cli/commands/migrations.js +25 -0
- package/dist/cli/commands/migrations.js.map +1 -1
- package/dist/cli/commands/provision.d.ts +5 -0
- package/dist/cli/commands/provision.d.ts.map +1 -1
- package/dist/cli/commands/provision.js +278 -55
- package/dist/cli/commands/provision.js.map +1 -1
- package/dist/cli/commands/scaffold.d.ts +5 -1
- package/dist/cli/commands/scaffold.d.ts.map +1 -1
- package/dist/cli/commands/scaffold.js +123 -18
- package/dist/cli/commands/scaffold.js.map +1 -1
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +49 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/core/config.d.ts +2 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +19 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/operations/create-model.d.ts +2 -0
- package/dist/core/operations/create-model.d.ts.map +1 -1
- package/dist/core/operations/create-model.js +60 -8
- package/dist/core/operations/create-model.js.map +1 -1
- package/dist/core/operations/migration-generator.d.ts.map +1 -1
- package/dist/core/operations/migration-generator.js +12 -1
- package/dist/core/operations/migration-generator.js.map +1 -1
- package/dist/core/operations/model-migration.d.ts +22 -0
- package/dist/core/operations/model-migration.d.ts.map +1 -0
- package/dist/core/operations/model-migration.js +36 -0
- package/dist/core/operations/model-migration.js.map +1 -0
- package/dist/core/operations/provision-deployment.d.ts +52 -0
- package/dist/core/operations/provision-deployment.d.ts.map +1 -0
- package/dist/core/operations/provision-deployment.js +164 -0
- package/dist/core/operations/provision-deployment.js.map +1 -0
- package/dist/core/operations/provision-operations.d.ts +62 -6
- package/dist/core/operations/provision-operations.d.ts.map +1 -1
- package/dist/core/operations/provision-operations.js +653 -115
- package/dist/core/operations/provision-operations.js.map +1 -1
- package/dist/core/operations/scaffold-apply.d.ts +1 -0
- package/dist/core/operations/scaffold-apply.d.ts.map +1 -1
- package/dist/core/operations/scaffold-apply.js +1 -0
- package/dist/core/operations/scaffold-apply.js.map +1 -1
- package/dist/core/operations/scaffold-machine.d.ts +1 -0
- package/dist/core/operations/scaffold-machine.d.ts.map +1 -1
- package/dist/core/operations/scaffold-machine.js.map +1 -1
- package/dist/core/operations/scaffold-plan.d.ts +2 -0
- package/dist/core/operations/scaffold-plan.d.ts.map +1 -1
- package/dist/core/operations/scaffold-plan.js +3 -1
- package/dist/core/operations/scaffold-plan.js.map +1 -1
- package/dist/core/project/agent-instructions.d.ts +2 -1
- package/dist/core/project/agent-instructions.d.ts.map +1 -1
- package/dist/core/project/agent-instructions.js +15 -0
- package/dist/core/project/agent-instructions.js.map +1 -1
- package/dist/core/project/boundaries.d.ts +5 -2
- package/dist/core/project/boundaries.d.ts.map +1 -1
- package/dist/core/project/boundaries.js +51 -20
- package/dist/core/project/boundaries.js.map +1 -1
- package/dist/core/project/capabilities.d.ts +17 -0
- package/dist/core/project/capabilities.d.ts.map +1 -1
- package/dist/core/project/capabilities.js +45 -6
- package/dist/core/project/capabilities.js.map +1 -1
- package/dist/core/project/home-page.d.ts +4 -0
- package/dist/core/project/home-page.d.ts.map +1 -0
- package/dist/core/project/home-page.js +113 -0
- package/dist/core/project/home-page.js.map +1 -0
- package/dist/core/project/manifest.d.ts +3 -1
- package/dist/core/project/manifest.d.ts.map +1 -1
- package/dist/core/project/manifest.js +47 -25
- package/dist/core/project/manifest.js.map +1 -1
- package/dist/core/project/mcp-config.d.ts +26 -0
- package/dist/core/project/mcp-config.d.ts.map +1 -0
- package/dist/core/project/mcp-config.js +117 -0
- package/dist/core/project/mcp-config.js.map +1 -0
- package/dist/core/project/react-project.d.ts +26 -0
- package/dist/core/project/react-project.d.ts.map +1 -0
- package/dist/core/project/react-project.js +443 -0
- package/dist/core/project/react-project.js.map +1 -0
- package/dist/core/project/state.d.ts +7 -0
- package/dist/core/project/state.d.ts.map +1 -1
- package/dist/core/project/state.js +86 -0
- package/dist/core/project/state.js.map +1 -1
- package/dist/core/project/validation.d.ts.map +1 -1
- package/dist/core/project/validation.js +32 -10
- package/dist/core/project/validation.js.map +1 -1
- package/dist/core/project/workflows.d.ts.map +1 -1
- package/dist/core/project/workflows.js +53 -7
- package/dist/core/project/workflows.js.map +1 -1
- package/dist/core/scaffold/auth-generator.d.ts.map +1 -1
- package/dist/core/scaffold/auth-generator.js +26 -27
- package/dist/core/scaffold/auth-generator.js.map +1 -1
- package/dist/core/scaffold/model-parser.d.ts +23 -0
- package/dist/core/scaffold/model-parser.d.ts.map +1 -1
- package/dist/core/scaffold/model-parser.js +407 -137
- package/dist/core/scaffold/model-parser.js.map +1 -1
- package/dist/core/scaffold/native-schema-generator.d.ts +13 -0
- package/dist/core/scaffold/native-schema-generator.d.ts.map +1 -1
- package/dist/core/scaffold/native-schema-generator.js +294 -91
- package/dist/core/scaffold/native-schema-generator.js.map +1 -1
- package/dist/core/scaffold/openapi-generator.d.ts +5 -0
- package/dist/core/scaffold/openapi-generator.d.ts.map +1 -1
- package/dist/core/scaffold/openapi-generator.js +53 -3
- package/dist/core/scaffold/openapi-generator.js.map +1 -1
- package/dist/core/scaffold/react-bff-generator.d.ts +10 -0
- package/dist/core/scaffold/react-bff-generator.d.ts.map +1 -0
- package/dist/core/scaffold/react-bff-generator.js +252 -0
- package/dist/core/scaffold/react-bff-generator.js.map +1 -0
- package/dist/core/scaffold/react-ui-generator.d.ts +6 -0
- package/dist/core/scaffold/react-ui-generator.d.ts.map +1 -0
- package/dist/core/scaffold/react-ui-generator.js +41 -0
- package/dist/core/scaffold/react-ui-generator.js.map +1 -0
- package/dist/core/scaffold/ui-generator.d.ts +0 -3
- package/dist/core/scaffold/ui-generator.d.ts.map +1 -1
- package/dist/core/scaffold/ui-generator.js +68 -7
- package/dist/core/scaffold/ui-generator.js.map +1 -1
- package/dist/core/verify/index.d.ts +4 -3
- package/dist/core/verify/index.d.ts.map +1 -1
- package/dist/core/verify/index.js +122 -5
- package/dist/core/verify/index.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/machine/contracts.d.ts +1 -0
- package/dist/machine/contracts.d.ts.map +1 -1
- package/dist/machine/errors.d.ts +3 -2
- package/dist/machine/errors.d.ts.map +1 -1
- package/dist/machine/errors.js +2 -1
- package/dist/machine/errors.js.map +1 -1
- package/dist/machine/index.d.ts.map +1 -1
- package/dist/machine/index.js +61 -30
- package/dist/machine/index.js.map +1 -1
- package/dist/mcp/index.d.ts +6 -4
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +210 -25
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/version-selection.d.ts +55 -0
- package/dist/mcp/version-selection.d.ts.map +1 -0
- package/dist/mcp/version-selection.js +152 -0
- package/dist/mcp/version-selection.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/azure-cli.d.ts +56 -0
- package/dist/utils/azure-cli.d.ts.map +1 -0
- package/dist/utils/azure-cli.js +326 -0
- package/dist/utils/azure-cli.js.map +1 -0
- package/dist/utils/azure-diagnostics.d.ts +16 -0
- package/dist/utils/azure-diagnostics.d.ts.map +1 -0
- package/dist/utils/azure-diagnostics.js +68 -0
- package/dist/utils/azure-diagnostics.js.map +1 -0
- package/dist/utils/package-manager.d.ts +2 -2
- package/dist/utils/package-manager.d.ts.map +1 -1
- package/dist/utils/package-manager.js +6 -3
- package/dist/utils/package-manager.js.map +1 -1
- package/dist/utils/python-uv.d.ts +5 -7
- package/dist/utils/python-uv.d.ts.map +1 -1
- package/dist/utils/python-uv.js +50 -24
- package/dist/utils/python-uv.js.map +1 -1
- package/dist/utils/react-dev.d.ts +4 -0
- package/dist/utils/react-dev.d.ts.map +1 -0
- package/dist/utils/react-dev.js +35 -0
- package/dist/utils/react-dev.js.map +1 -0
- package/dist/utils/semver.d.ts +14 -0
- package/dist/utils/semver.d.ts.map +1 -0
- package/dist/utils/semver.js +61 -0
- package/dist/utils/semver.js.map +1 -0
- package/package.json +7 -4
- package/src/__tests__/__snapshots__/boundaries.test.ts.snap +154 -0
- package/src/__tests__/agent-instructions.test.ts +6 -1
- package/src/__tests__/agent-loop-phase34.test.ts +143 -8
- package/src/__tests__/auth.test.ts +9 -0
- package/src/__tests__/azure-cli.test.ts +202 -0
- package/src/__tests__/boundaries.test.ts +42 -0
- package/src/__tests__/csharp-schema.test.ts +261 -0
- package/src/__tests__/dev.test.ts +13 -6
- package/src/__tests__/fixtures/az wrapper.cmd +2 -0
- package/src/__tests__/fixtures/azure-cli.cjs +153 -0
- package/src/__tests__/fixtures/provision-runner.cjs +28 -0
- package/src/__tests__/generated-project-matrix.test.ts +789 -0
- package/src/__tests__/home-page.test.ts +50 -0
- package/src/__tests__/init.test.ts +145 -5
- package/src/__tests__/mcp-version.test.ts +262 -0
- package/src/__tests__/mcp.test.ts +120 -3
- package/src/__tests__/multi-auth.test.ts +115 -4
- package/src/__tests__/package-manager.test.ts +17 -2
- package/src/__tests__/plan-apply.test.ts +179 -0
- package/src/__tests__/provision-runtime.test.ts +722 -0
- package/src/__tests__/python-uv.test.ts +50 -14
- package/src/__tests__/python-venv.test.ts +48 -0
- package/src/__tests__/react-dev.test.ts +72 -0
- package/src/__tests__/react.test.ts +838 -0
- package/src/__tests__/release-metadata.test.ts +121 -0
- package/src/__tests__/schema-analysis.test.ts +329 -0
- package/src/cli/commands/add-auth.ts +103 -29
- package/src/cli/commands/configure-mcp.ts +54 -0
- package/src/cli/commands/dev.ts +145 -73
- package/src/cli/commands/init.ts +147 -172
- package/src/cli/commands/migrations.ts +22 -0
- package/src/cli/commands/provision.ts +294 -56
- package/src/cli/commands/scaffold.ts +145 -22
- package/src/cli/index.ts +46 -10
- package/src/core/config.ts +21 -1
- package/src/core/operations/create-model.ts +51 -13
- package/src/core/operations/migration-generator.ts +14 -1
- package/src/core/operations/model-migration.ts +52 -0
- package/src/core/operations/provision-deployment.ts +183 -0
- package/src/core/operations/provision-operations.ts +662 -154
- package/src/core/operations/scaffold-apply.ts +2 -0
- package/src/core/operations/scaffold-machine.ts +1 -0
- package/src/core/operations/scaffold-plan.ts +5 -1
- package/src/core/project/agent-instructions.ts +17 -1
- package/src/core/project/agent-templates/AGENTS.md +113 -15
- package/src/core/project/agent-templates/CLAUDE.md +14 -1
- package/src/core/project/agent-templates/bff-routes.instructions.md +5 -3
- package/src/core/project/agent-templates/copilot-instructions.md +15 -1
- package/src/core/project/agent-templates/shared-models.instructions.md +11 -3
- package/src/core/project/boundaries.ts +62 -20
- package/src/core/project/capabilities.ts +63 -6
- package/src/core/project/home-page.ts +114 -0
- package/src/core/project/manifest.ts +52 -27
- package/src/core/project/mcp-config.ts +84 -0
- package/src/core/project/react-project.ts +529 -0
- package/src/core/project/state.ts +70 -0
- package/src/core/project/validation.ts +32 -10
- package/src/core/project/workflows.ts +53 -7
- package/src/core/scaffold/auth-generator.ts +26 -27
- package/src/core/scaffold/model-parser.ts +413 -129
- package/src/core/scaffold/native-schema-generator.ts +319 -103
- package/src/core/scaffold/openapi-generator.ts +63 -5
- package/src/core/scaffold/react-bff-generator.ts +292 -0
- package/src/core/scaffold/react-ui-generator.ts +51 -0
- package/src/core/scaffold/ui-generator.ts +70 -8
- package/src/core/verify/index.ts +118 -6
- package/src/index.ts +3 -1
- package/src/machine/contracts.ts +1 -0
- package/src/machine/errors.ts +4 -2
- package/src/machine/index.ts +67 -36
- package/src/mcp/index.ts +221 -31
- package/src/mcp/version-selection.ts +163 -0
- package/src/types/index.ts +4 -0
- package/src/utils/azure-cli.ts +315 -0
- package/src/utils/azure-diagnostics.ts +75 -0
- package/src/utils/package-manager.ts +7 -4
- package/src/utils/python-uv.ts +53 -33
- package/src/utils/react-dev.ts +31 -0
- package/src/utils/semver.ts +59 -0
|
@@ -22,6 +22,13 @@ export interface CapabilityAuthProvider {
|
|
|
22
22
|
export interface CapabilitiesContract {
|
|
23
23
|
contractVersion: number;
|
|
24
24
|
swallowkitVersion: string;
|
|
25
|
+
frontends: {
|
|
26
|
+
supported: string[];
|
|
27
|
+
default: string;
|
|
28
|
+
configuration: string;
|
|
29
|
+
reactArchitecture: string;
|
|
30
|
+
development: string;
|
|
31
|
+
};
|
|
25
32
|
modelDeclarations: CapabilityModelDeclaration[];
|
|
26
33
|
authentication: {
|
|
27
34
|
correctWorkflow: string[];
|
|
@@ -41,6 +48,7 @@ export interface CapabilitiesContract {
|
|
|
41
48
|
sharedModels: {
|
|
42
49
|
idFieldRule: string;
|
|
43
50
|
buildNote: string;
|
|
51
|
+
nativeSchemaMapping: string[];
|
|
44
52
|
};
|
|
45
53
|
seeding: {
|
|
46
54
|
createTemplates: string;
|
|
@@ -48,10 +56,19 @@ export interface CapabilitiesContract {
|
|
|
48
56
|
notes: string[];
|
|
49
57
|
};
|
|
50
58
|
machineCommands: string[];
|
|
59
|
+
provisioning: {
|
|
60
|
+
execution: string;
|
|
61
|
+
completion: string;
|
|
62
|
+
tracking: string;
|
|
63
|
+
recovery: string;
|
|
64
|
+
diagnostics: string;
|
|
65
|
+
approval: string;
|
|
66
|
+
};
|
|
51
67
|
verifyChecks: {
|
|
52
68
|
defaultChecks: string[];
|
|
53
69
|
optInChecks: string[];
|
|
54
70
|
customChecks: string;
|
|
71
|
+
backendBuild: string;
|
|
55
72
|
};
|
|
56
73
|
}
|
|
57
74
|
export declare function inspectCapabilities(): CapabilitiesContract;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/core/project/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,0BAA0B,EAAE,CAAC;IAChD,cAAc,EAAE;QACd,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,SAAS,EAAE,sBAAsB,EAAE,CAAC;QACpC,qBAAqB,EAAE;YACrB,SAAS,EAAE,MAAM,CAAC;YAClB,aAAa,EAAE,MAAM,CAAC;YACtB,eAAe,EAAE,OAAO,CAAC;SAC1B,CAAC;KACH,CAAC;IACF,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,YAAY,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/core/project/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,iBAAiB,EAAE,0BAA0B,EAAE,CAAC;IAChD,cAAc,EAAE;QACd,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,SAAS,EAAE,sBAAsB,EAAE,CAAC;QACpC,qBAAqB,EAAE;YACrB,SAAS,EAAE,MAAM,CAAC;YAClB,aAAa,EAAE,MAAM,CAAC;YACtB,eAAe,EAAE,OAAO,CAAC;SAC1B,CAAC;KACH,CAAC;IACF,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,YAAY,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,EAAE;QACZ,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,wBAAgB,mBAAmB,IAAI,oBAAoB,CA0K1D"}
|
|
@@ -15,6 +15,13 @@ function inspectCapabilities() {
|
|
|
15
15
|
return {
|
|
16
16
|
contractVersion: 1,
|
|
17
17
|
swallowkitVersion: (0, version_1.getSwallowKitVersion)(),
|
|
18
|
+
frontends: {
|
|
19
|
+
supported: ["nextjs", "react"],
|
|
20
|
+
default: "nextjs",
|
|
21
|
+
configuration: "init --frontend nextjs|react; stored as frontend.framework in swallowkit.config.js. Missing settings preserve Next.js.",
|
|
22
|
+
reactArchitecture: "React/Vite SPA on SWA -> HTTP-only SWA managed Functions BFF (bff/) -> standalone Functions (functions/). Never link standalone Functions to SWA. Backend keys stay server-side.",
|
|
23
|
+
development: "React dev runs Vite:3000, BFF:7073, Functions:7071 and SWA CLI:4280; use the SWA port for same-origin APIs and authentication. Build/verify include BFF typechecking.",
|
|
24
|
+
},
|
|
18
25
|
modelDeclarations: [
|
|
19
26
|
{
|
|
20
27
|
name: "schema",
|
|
@@ -40,6 +47,18 @@ function inspectCapabilities() {
|
|
|
40
47
|
required: false,
|
|
41
48
|
description: "Role-based access control metadata applied to the generated CRUD Functions. `roles` guards all operations; `read`/`write` guard per-operation; `policy` references a named authorization policy from swallowkit.config auth.authorization.policies.",
|
|
42
49
|
format: "export const authPolicy = { roles: ['admin'] };\n// or per-operation:\nexport const authPolicy = { read: ['user'], write: ['admin'] };\n// or a named policy:\nexport const authPolicy = { policy: 'adminOnly' };",
|
|
50
|
+
notes: [
|
|
51
|
+
"An explicit authPolicy without configured authentication blocks plan/apply/generate scaffold with auth-policy-without-auth before any artifacts are written. Run plan auth, apply auth, then re-plan scaffold. An empty {} declaration keeps the existing behavior: no explicit policy.",
|
|
52
|
+
"With named auth.schemes, define auth.authorization.policies selecting schemes and roles, then reference them via policy or read/write names. A role-only declaration cannot select a named scheme and blocks with auth-policy-requires-named-policy; it is supported by legacy single-provider authentication.",
|
|
53
|
+
"Conversely, single-provider authentication (auth.provider) supports role lists only. Referencing a named policy (authPolicy.policy, read/write names, or a named auth.authorization.defaultPolicy) blocks with auth-named-policy-requires-named-scheme; add a named scheme first.",
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "references",
|
|
58
|
+
required: false,
|
|
59
|
+
description: "Explicit foreign keys used by generated UI lookups. Without it, a string field named <model>Id is treated as a foreign key only when shared/models contains that model (userId -> User only if user.ts exists). Map a field to false to disable inference. References to missing models are ignored with a reference-model-not-found warning.",
|
|
60
|
+
format: "export const references = { authorId: 'User', legacyId: false };",
|
|
61
|
+
notes: ["Only single string id fields can reference a model.", "No lookup UI, fetch, or OpenAPI reference is generated for fields that do not reference an existing model."],
|
|
43
62
|
},
|
|
44
63
|
{
|
|
45
64
|
name: "connectorConfig",
|
|
@@ -102,14 +121,23 @@ function inspectCapabilities() {
|
|
|
102
121
|
],
|
|
103
122
|
notGuaranteed: [
|
|
104
123
|
"Owner scoping: generated CRUD does NOT restrict rows to the authenticated principal. Any authenticated caller passing the policy can read/write any document.",
|
|
124
|
+
"Without authentication, plan scaffold reports user-scoped-data-without-auth when the partition key or an owner-like field (userId, learnerId, ownerId, ...) suggests per-user data.",
|
|
105
125
|
],
|
|
106
126
|
guidance: [
|
|
107
|
-
"For multi-user data where users may only touch their own records, add ai-authored custom endpoints that derive the scoping key (e.g. learnerId) from the verified principal — never from the request body — and restrict generated write endpoints to admin roles or disable them.",
|
|
127
|
+
"Configure authentication via plan/apply auth before declaring authPolicy. For multi-user data where users may only touch their own records, add ai-authored custom endpoints that derive the scoping key (e.g. learnerId) from the verified principal — never from the request body — and restrict generated write endpoints to admin roles or disable them.",
|
|
108
128
|
],
|
|
109
129
|
},
|
|
110
130
|
sharedModels: {
|
|
111
131
|
idFieldRule: "id: z.string() (required). createdAt/updatedAt: z.string().optional(). The backend owns their values.",
|
|
112
|
-
|
|
132
|
+
nativeSchemaMapping: [
|
|
133
|
+
"C#/Python schema assets derive types from Zod, never from field names: z.string() -> string/str (including createdAt/updatedAt).",
|
|
134
|
+
"Date types only when declared: z.iso.datetime() -> DateTime/datetime, z.iso.date() -> DateOnly/date, z.date() -> DateTime/datetime.",
|
|
135
|
+
"z.number() -> double / float|int; z.number().int() or z.int() -> long / int.",
|
|
136
|
+
"Inline z.object({...}) fields become named classes <Model><Field> (e.g. ProbeItemNested); imported model schemas keep their own class.",
|
|
137
|
+
"min/max/length/nonempty/regex/int/gt/gte/lt/lte/positive/nonnegative and array min/max are enforced by C# IValidatableObject.Validate and Python Field bounds/validators. Regexes use search semantics like Zod.",
|
|
138
|
+
"String formats (email/uuid/url), refinements, and transforms are not re-implemented natively; the BFF Zod schemas remain the authoritative validation.",
|
|
139
|
+
],
|
|
140
|
+
buildNote: "create-model and plan/apply scaffold append missing model exports to shared/index.ts, including manually authored models. Manual exports are allowed (no markers); existing content is preserved. verify typecheck resolves the shared package from its built dist/. SwallowKit rebuilds shared automatically during verify; when typechecking manually, build shared first.",
|
|
113
141
|
},
|
|
114
142
|
seeding: {
|
|
115
143
|
createTemplates: "swallowkit create-dev-seeds <environment> — writes dev-seeds/<environment>/<model>.json templates.",
|
|
@@ -117,18 +145,29 @@ function inspectCapabilities() {
|
|
|
117
145
|
notes: ["Editing dev-seeds/*.json alone does nothing; seeds are only applied via dev --seed-env."],
|
|
118
146
|
},
|
|
119
147
|
machineCommands: [
|
|
120
|
-
"inspect project | entities | routes | artifacts | boundaries | infra | drift | capabilities",
|
|
148
|
+
"inspect project | entities | routes | artifacts | boundaries | infra | drift | capabilities; inspect provision --plan <runId> [--wait-seconds <0-3600>]",
|
|
121
149
|
"validate project",
|
|
122
150
|
"generate model <names...> | generate scaffold <model>",
|
|
123
|
-
"plan scaffold <models...> | plan auth --provider <p> [--scheme <name>] [--allowed-providers <csv>] | plan provision -g <rg> --location <loc> --swa-location <loc> [--adopt-existing --baseline 0 --what-if] [--reconcile --what-if]",
|
|
124
|
-
"apply scaffold [models...] --plan <id> [--approve] | apply auth --plan <id> [--approve] | apply provision --plan <id> --approve",
|
|
151
|
+
"plan scaffold <models...> [--api-only] [--skip-infra] | plan auth --provider <p> [--scheme <name>] [--allowed-providers <csv>] | plan provision -g <rg> --location <loc> --swa-location <loc> [--adopt-existing --baseline 0 --what-if] [--reconcile --what-if] [--resume-deployment <name>]",
|
|
152
|
+
"apply scaffold [models...] --plan <id> [--approve] [--skip-infra] | apply auth --plan <id> [--approve] | apply provision --plan <id> --approve [--wait-seconds <0-3600>] (also resumes the same execution checkpoint)",
|
|
125
153
|
"verify project [--checks <ids>] [--compact]",
|
|
126
154
|
"explain failure [--check <id>]",
|
|
155
|
+
"(regular CLI) migrations add-model <model> [--dry-run] — generate only the container migration after scaffold --skip-infra",
|
|
156
|
+
"(regular CLI) configure-mcp [--version auto|latest|<semver>] — re-select the MCP launcher version in .mcp.json",
|
|
127
157
|
],
|
|
158
|
+
provisioning: {
|
|
159
|
+
execution: "Submit Bicep once with az deployment group create --no-wait, then bounded state polling (default 300 seconds, configurable 0-3600) for machine/MCP; the human `swallowkit provision` command waits until Azure reaches a terminal state. Azure CLI invocations are bounded separately. Warning-only stderr with exit 0 is not a failure; output capture limits do not terminate az.",
|
|
160
|
+
completion: "status complete/outcome succeeded requires Azure Succeeded plus verified migration tags and local ledger completion. Running/Accepted -> in-progress; unreadable/not-found state -> blocked/outcome unknown; bookkeeping interruption after Azure Succeeded -> blocked/outcome partial; Failed/Canceled -> failed with Azure causes.",
|
|
161
|
+
tracking: "Approved runs persist before Azure writes under .swallowkit/state/provision/. runId equals the original planId and preserves the subscription, RG, deployment ID/correlation, fingerprints and migration state. inspect provision is read-only; apply provision --plan resumes without re-submitting attempted deployments. Ctrl+C/termination may leave Azure running; never cancel/delete without explicit consent.",
|
|
162
|
+
recovery: "For an older untracked baseline, plan provision --resume-deployment <name> compares the existing ARM template and non-secure parameters to the local Bicep/parameters. It observes that deployment and only tags/records it after Succeeded. Mismatches, unreadable evidence, secure parameters or non-baseline migrations block; do not use reconcile just to repair bookkeeping.",
|
|
163
|
+
diagnostics: "Machine/MCP results include bounded/redacted stdout/stderr, omitted-output flags, exit code, signal, failure kind, elapsed time and deployment identity, but no deployment outputs. Normal CLI shows named resource information and CI/CD setup guidance after success. Never print --debug output, keys, tokens or connection strings.",
|
|
164
|
+
approval: "Machine/MCP initial apply and every resume require explicit human approval. A human invoking normal provision or provision --resume explicitly requests execution without another confirmation prompt. Agents must not switch to normal CLI to bypass approval. A passing local command or an ok envelope is not proof of completed Azure provisioning; inspect status, outcome and nextActions.",
|
|
165
|
+
},
|
|
128
166
|
verifyChecks: {
|
|
129
|
-
defaultChecks: ["structure", "drift", "typecheck"],
|
|
167
|
+
defaultChecks: ["structure", "drift", "typecheck", "backend-build"],
|
|
130
168
|
optInChecks: ["build", "lint", "test"],
|
|
131
169
|
customChecks: "swallowkit.config verify.checks: [{ id, command, title?, timeoutMs? }]",
|
|
170
|
+
backendBuild: "Runs dotnet build in functions/ (C#), the project tsc --noEmit (TypeScript), or Python 3 compileall (syntax only, using functions/.venv before PATH). Missing toolchains are skip with a reason, not proof of validation. Root build scripts do not replace backend-build; use --checks \"structure,drift,typecheck,backend-build,build\" for both.",
|
|
132
171
|
},
|
|
133
172
|
};
|
|
134
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/core/project/capabilities.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/core/project/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home-page.d.ts","sourceRoot":"","sources":["../../../src/core/project/home-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAe,MAAM,6BAA6B,CAAC;AAG1E,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,iBAAiB,EAC3B,EAAE,EAAE,cAAc,GACjB,MAAM,CA0GR"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildHomePage = buildHomePage;
|
|
4
|
+
const package_manager_1 = require("../../utils/package-manager");
|
|
5
|
+
const react_ui_generator_1 = require("../scaffold/react-ui-generator");
|
|
6
|
+
function buildHomePage(frontend, pm) {
|
|
7
|
+
const framework = frontend === "react" ? "React" : "Next.js";
|
|
8
|
+
const page = `import { useState } from 'react';
|
|
9
|
+
import Link from 'next/link';
|
|
10
|
+
import { scaffoldConfig } from '@/lib/scaffold-config';
|
|
11
|
+
|
|
12
|
+
export default function Home() {
|
|
13
|
+
const [greetingStatus, setGreetingStatus] = useState<'idle' | 'loading' | 'success' | 'error'>('idle');
|
|
14
|
+
const [message, setMessage] = useState('');
|
|
15
|
+
|
|
16
|
+
const testConnection = async () => {
|
|
17
|
+
setGreetingStatus('loading');
|
|
18
|
+
try {
|
|
19
|
+
const response = await fetch('/api/greet?name=SwallowKit');
|
|
20
|
+
const data = await response.json();
|
|
21
|
+
if (!response.ok) {
|
|
22
|
+
throw new Error(data.error || \`Server error: \${response.status}\`);
|
|
23
|
+
}
|
|
24
|
+
setMessage(data.message);
|
|
25
|
+
setGreetingStatus('success');
|
|
26
|
+
} catch (error) {
|
|
27
|
+
setMessage(error instanceof Error ? error.message : 'Failed to connect to Azure Functions');
|
|
28
|
+
setGreetingStatus('error');
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<div className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-50 dark:from-gray-900 dark:to-gray-800">
|
|
34
|
+
<div className="container mx-auto px-4 py-12">
|
|
35
|
+
<header className="text-center mb-16">
|
|
36
|
+
<h1 className="text-5xl font-bold text-gray-800 dark:text-white mb-4">
|
|
37
|
+
Welcome to SwallowKit
|
|
38
|
+
</h1>
|
|
39
|
+
<p className="text-xl text-gray-600 dark:text-gray-400">
|
|
40
|
+
${framework} on Azure Static Web Apps + Functions + Cosmos DB — Zod schema sharing
|
|
41
|
+
</p>
|
|
42
|
+
</header>
|
|
43
|
+
|
|
44
|
+
<section className="max-w-2xl mx-auto mb-12">
|
|
45
|
+
<div className="bg-white dark:bg-gray-800 rounded-xl p-8 border border-gray-200 dark:border-gray-700">
|
|
46
|
+
<h2 className="text-2xl font-semibold mb-4 text-gray-900 dark:text-gray-100">
|
|
47
|
+
Test BFF → Functions Connection
|
|
48
|
+
</h2>
|
|
49
|
+
<button
|
|
50
|
+
onClick={testConnection}
|
|
51
|
+
disabled={greetingStatus === 'loading'}
|
|
52
|
+
className="px-6 py-3 bg-blue-600 hover:bg-blue-700 disabled:bg-gray-400 text-white rounded-lg font-medium transition-colors"
|
|
53
|
+
>
|
|
54
|
+
{greetingStatus === 'loading' ? 'Testing...' : 'Test Connection'}
|
|
55
|
+
</button>
|
|
56
|
+
{greetingStatus === 'success' && (
|
|
57
|
+
<div role="status" className="mt-4 p-4 bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 rounded-lg">
|
|
58
|
+
<p className="text-green-800 dark:text-green-200 font-medium">✅ Connection successful!</p>
|
|
59
|
+
<p className="text-green-700 dark:text-green-300 text-sm mt-1">{message}</p>
|
|
60
|
+
</div>
|
|
61
|
+
)}
|
|
62
|
+
{greetingStatus === 'error' && (
|
|
63
|
+
<div role="alert" className="mt-4 p-4 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg">
|
|
64
|
+
<p className="text-red-800 dark:text-red-200 font-medium">❌ Connection failed</p>
|
|
65
|
+
<p className="text-red-700 dark:text-red-300 text-sm mt-1">{message}</p>
|
|
66
|
+
</div>
|
|
67
|
+
)}
|
|
68
|
+
</div>
|
|
69
|
+
</section>
|
|
70
|
+
|
|
71
|
+
{scaffoldConfig.models.length > 0 ? (
|
|
72
|
+
<section className="max-w-6xl mx-auto">
|
|
73
|
+
<h2 className="text-3xl font-bold mb-8 text-gray-900 dark:text-gray-100">Your Models</h2>
|
|
74
|
+
<div className="grid gap-6 grid-cols-1 md:grid-cols-2 lg:grid-cols-3">
|
|
75
|
+
{scaffoldConfig.models.map((model) => (
|
|
76
|
+
<Link
|
|
77
|
+
key={model.name}
|
|
78
|
+
href={model.path}
|
|
79
|
+
className="block p-8 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-xl hover:shadow-lg hover:border-blue-400 dark:hover:border-blue-600 transition-all"
|
|
80
|
+
>
|
|
81
|
+
<h3 className="text-2xl font-semibold mb-2 text-gray-900 dark:text-gray-100">{model.label}</h3>
|
|
82
|
+
<p className="text-gray-600 dark:text-gray-400">Manage {model.label.toLowerCase()}</p>
|
|
83
|
+
</Link>
|
|
84
|
+
))}
|
|
85
|
+
</div>
|
|
86
|
+
</section>
|
|
87
|
+
) : (
|
|
88
|
+
<section className="max-w-2xl mx-auto text-center">
|
|
89
|
+
<div className="bg-white dark:bg-gray-800 rounded-xl p-12 border border-gray-200 dark:border-gray-700">
|
|
90
|
+
<h2 className="text-2xl font-semibold mb-4 text-gray-900 dark:text-gray-100">Get Started</h2>
|
|
91
|
+
<p className="text-gray-600 dark:text-gray-400 mb-6">
|
|
92
|
+
Create your first model with Zod and generate CRUD operations automatically.
|
|
93
|
+
</p>
|
|
94
|
+
<code className="block bg-gray-100 dark:bg-gray-900 p-4 rounded text-left text-sm">
|
|
95
|
+
${(0, package_manager_1.getCommands)(pm).exec} swallowkit scaffold shared/models/your-model.ts
|
|
96
|
+
</code>
|
|
97
|
+
</div>
|
|
98
|
+
</section>
|
|
99
|
+
)}
|
|
100
|
+
|
|
101
|
+
<footer className="mt-16 text-center text-gray-600 dark:text-gray-400 text-sm">
|
|
102
|
+
<p>Built with SwallowKit</p>
|
|
103
|
+
</footer>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
`;
|
|
109
|
+
return frontend === "react"
|
|
110
|
+
? (0, react_ui_generator_1.adaptReactPage)(page)
|
|
111
|
+
: `'use client'\n\nexport const dynamic = 'force-dynamic';\n\n${page}`;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=home-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home-page.js","sourceRoot":"","sources":["../../../src/core/project/home-page.ts"],"names":[],"mappings":";;AAIA,sCA6GC;AAhHD,iEAA0E;AAC1E,uEAAgE;AAEhE,SAAgB,aAAa,CAC3B,QAA2B,EAC3B,EAAkB;IAElB,MAAM,SAAS,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgCD,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAuDL,IAAA,6BAAW,EAAC,EAAE,CAAC,CAAC,IAAI;;;;;;;;;;;;;CAarC,CAAC;IACA,OAAO,QAAQ,KAAK,OAAO;QACzB,CAAC,CAAC,IAAA,mCAAc,EAAC,IAAI,CAAC;QACtB,CAAC,CAAC,8DAA8D,IAAI,EAAE,CAAC;AAC3E,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AuthConfig, BackendLanguage, ConnectorDefinition, ModelAuthPolicy, ModelConnectorConfig } from "../../types";
|
|
1
|
+
import { AuthConfig, BackendLanguage, FrontendFramework, ConnectorDefinition, ModelAuthPolicy, ModelConnectorConfig } from "../../types";
|
|
2
2
|
export declare const SWALLOWKIT_MANIFEST_PATH: string;
|
|
3
3
|
export declare const SWALLOWKIT_MANIFEST_VERSION = 1;
|
|
4
4
|
export interface ProjectManifestField {
|
|
@@ -51,6 +51,7 @@ export interface ProjectManifestArtifacts {
|
|
|
51
51
|
}
|
|
52
52
|
export interface ProjectManifestArchitecture {
|
|
53
53
|
pattern: string;
|
|
54
|
+
frontendFramework?: FrontendFramework;
|
|
54
55
|
backendLanguage: BackendLanguage;
|
|
55
56
|
layerBoundaries: string[];
|
|
56
57
|
hasSharedWorkspace: boolean;
|
|
@@ -62,6 +63,7 @@ export interface ProjectManifest {
|
|
|
62
63
|
generatedAt: string;
|
|
63
64
|
configPath: string | null;
|
|
64
65
|
backendLanguage: BackendLanguage;
|
|
66
|
+
frontendFramework?: FrontendFramework;
|
|
65
67
|
configValidation: {
|
|
66
68
|
valid: boolean;
|
|
67
69
|
errors: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/core/project/manifest.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/core/project/manifest.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AASzI,eAAO,MAAM,wBAAwB,QAA2C,CAAC;AACjF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,OAAO,EAAE,KAAK,GAAG,WAAW,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,GAAG,KAAK,GAAG,WAAW,GAAG,IAAI,GAAG,gBAAgB,GAAG,MAAM,CAAC;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,OAAO,CAAC;IAClC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0BAA0B,EAAE,MAAM,EAAE,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,EAAE;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,mBAAmB,CAAA;KAAE,CAAC,CAAC;IACrE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,SAAS,EAAE,wBAAwB,CAAC;IACpC,YAAY,EAAE,2BAA2B,CAAC;CAC3C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC;IACjC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAgND,wBAAsB,oBAAoB,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC;IACvF,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC,CA4ED;AAED,wBAAgB,mBAAmB,CAAC,WAAW,GAAE,MAAsB,GAAG,eAAe,GAAG,IAAI,CAQ/F;AAED,wBAAsB,mBAAmB,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAiB7G;AAED,wBAAsB,mBAAmB,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAMvG"}
|
|
@@ -62,7 +62,10 @@ function resolveConfigPath(projectRoot) {
|
|
|
62
62
|
function relativeProjectPath(projectRoot, targetPath) {
|
|
63
63
|
return path.relative(projectRoot, targetPath).replace(/\\/g, "/");
|
|
64
64
|
}
|
|
65
|
-
function buildModules(projectRoot) {
|
|
65
|
+
function buildModules(projectRoot, frontend) {
|
|
66
|
+
const bffRoot = frontend === "react" ? "bff" : "app/api";
|
|
67
|
+
const uiRoot = frontend === "react" ? "src" : "app";
|
|
68
|
+
const authRoot = frontend === "react" ? "bff/src/auth" : "app/api/auth";
|
|
66
69
|
const candidates = [
|
|
67
70
|
{
|
|
68
71
|
name: "shared-models",
|
|
@@ -73,8 +76,8 @@ function buildModules(projectRoot) {
|
|
|
73
76
|
{
|
|
74
77
|
name: "bff",
|
|
75
78
|
kind: "bff",
|
|
76
|
-
rootPath:
|
|
77
|
-
exists: fs.existsSync(path.join(projectRoot,
|
|
79
|
+
rootPath: bffRoot,
|
|
80
|
+
exists: fs.existsSync(path.join(projectRoot, bffRoot)),
|
|
78
81
|
},
|
|
79
82
|
{
|
|
80
83
|
name: "functions",
|
|
@@ -85,8 +88,8 @@ function buildModules(projectRoot) {
|
|
|
85
88
|
{
|
|
86
89
|
name: "ui",
|
|
87
90
|
kind: "ui",
|
|
88
|
-
rootPath:
|
|
89
|
-
exists: fs.existsSync(path.join(projectRoot,
|
|
91
|
+
rootPath: uiRoot,
|
|
92
|
+
exists: fs.existsSync(path.join(projectRoot, uiRoot)),
|
|
90
93
|
},
|
|
91
94
|
{
|
|
92
95
|
name: "infrastructure",
|
|
@@ -97,18 +100,18 @@ function buildModules(projectRoot) {
|
|
|
97
100
|
{
|
|
98
101
|
name: "auth",
|
|
99
102
|
kind: "auth",
|
|
100
|
-
rootPath:
|
|
101
|
-
exists: fs.existsSync(path.join(projectRoot,
|
|
103
|
+
rootPath: authRoot,
|
|
104
|
+
exists: fs.existsSync(path.join(projectRoot, authRoot)),
|
|
102
105
|
},
|
|
103
106
|
];
|
|
104
107
|
return candidates;
|
|
105
108
|
}
|
|
106
|
-
function buildArtifacts(projectRoot) {
|
|
109
|
+
function buildArtifacts(projectRoot, frontend) {
|
|
107
110
|
const openApiDir = path.join(projectRoot, "functions", "openapi");
|
|
108
111
|
const generatedDir = path.join(projectRoot, "functions", "generated");
|
|
109
112
|
return {
|
|
110
|
-
callFunctionHelperPath: "lib/api/call-function.ts",
|
|
111
|
-
callFunctionHelperExists: fs.existsSync(path.join(projectRoot, "lib", "api", "call-function.ts")),
|
|
113
|
+
callFunctionHelperPath: frontend === "react" ? "bff/src/lib/call-function.ts" : "lib/api/call-function.ts",
|
|
114
|
+
callFunctionHelperExists: fs.existsSync(path.join(projectRoot, ...(frontend === "react" ? ["bff", "src", "lib", "call-function.ts"] : ["lib", "api", "call-function.ts"]))),
|
|
112
115
|
openApiSpecs: fs.existsSync(openApiDir)
|
|
113
116
|
? fs.readdirSync(openApiDir)
|
|
114
117
|
.filter((entry) => entry.endsWith(".json"))
|
|
@@ -122,13 +125,13 @@ function buildArtifacts(projectRoot) {
|
|
|
122
125
|
: [],
|
|
123
126
|
proxyPath: "proxy.ts",
|
|
124
127
|
proxyExists: fs.existsSync(path.join(projectRoot, "proxy.ts")),
|
|
125
|
-
loginPagePath: "app/login/page.tsx",
|
|
126
|
-
loginPageExists: fs.existsSync(path.join(projectRoot, "app", "login", "page.tsx")),
|
|
128
|
+
loginPagePath: frontend === "react" ? "src/pages/login.tsx" : "app/login/page.tsx",
|
|
129
|
+
loginPageExists: fs.existsSync(path.join(projectRoot, ...(frontend === "react" ? ["src", "pages", "login.tsx"] : ["app", "login", "page.tsx"]))),
|
|
127
130
|
authContextPath: "lib/auth/auth-context.tsx",
|
|
128
131
|
authContextExists: fs.existsSync(path.join(projectRoot, "lib", "auth", "auth-context.tsx")),
|
|
129
132
|
};
|
|
130
133
|
}
|
|
131
|
-
function buildEntityRoutes(projectRoot, backendLanguage, entity) {
|
|
134
|
+
function buildEntityRoutes(projectRoot, backendLanguage, entity, frontend) {
|
|
132
135
|
const modelCamel = (0, model_parser_1.toCamelCase)(entity.name);
|
|
133
136
|
const modelKebab = (0, model_parser_1.toKebabCase)(entity.name);
|
|
134
137
|
const isConnectorEntity = Boolean(entity.connectorConfig);
|
|
@@ -165,8 +168,10 @@ function buildEntityRoutes(projectRoot, backendLanguage, entity) {
|
|
|
165
168
|
entityName: entity.name,
|
|
166
169
|
methods: listMethods,
|
|
167
170
|
publicPath: `/api/${modelCamel}`,
|
|
168
|
-
filePath: `app/api/${modelCamel}/route.ts`,
|
|
169
|
-
exists:
|
|
171
|
+
filePath: frontend === "react" ? `bff/src/${modelCamel}/index.ts` : `app/api/${modelCamel}/route.ts`,
|
|
172
|
+
exists: frontend === "react"
|
|
173
|
+
? fs.existsSync(path.join(projectRoot, "bff", "src", modelCamel, "index.ts")) && fs.existsSync(path.join(projectRoot, "bff", modelCamel, "function.json"))
|
|
174
|
+
: fs.existsSync(path.join(projectRoot, "app", "api", modelCamel, "route.ts")),
|
|
170
175
|
},
|
|
171
176
|
{
|
|
172
177
|
name: `${entity.name}-bff-detail`,
|
|
@@ -175,8 +180,10 @@ function buildEntityRoutes(projectRoot, backendLanguage, entity) {
|
|
|
175
180
|
entityName: entity.name,
|
|
176
181
|
methods: detailMethods,
|
|
177
182
|
publicPath: `/api/${modelCamel}/{id}`,
|
|
178
|
-
filePath: `app/api/${modelCamel}/[id]/route.ts`,
|
|
179
|
-
exists:
|
|
183
|
+
filePath: frontend === "react" ? `bff/src/${modelCamel}/index.ts` : `app/api/${modelCamel}/[id]/route.ts`,
|
|
184
|
+
exists: frontend === "react"
|
|
185
|
+
? fs.existsSync(path.join(projectRoot, "bff", "src", modelCamel, "index.ts")) && fs.existsSync(path.join(projectRoot, "bff", modelCamel, "function.json"))
|
|
186
|
+
: fs.existsSync(path.join(projectRoot, "app", "api", modelCamel, "[id]", "route.ts")),
|
|
180
187
|
},
|
|
181
188
|
{
|
|
182
189
|
name: `${entity.name}-functions`,
|
|
@@ -190,7 +197,18 @@ function buildEntityRoutes(projectRoot, backendLanguage, entity) {
|
|
|
190
197
|
},
|
|
191
198
|
];
|
|
192
199
|
}
|
|
193
|
-
function buildSystemRoutes(projectRoot) {
|
|
200
|
+
function buildSystemRoutes(projectRoot, frontend, auth) {
|
|
201
|
+
if (frontend === "react") {
|
|
202
|
+
const providers = Object.values((0, config_1.normalizeAuthConfig)(auth)?.schemes ?? {}).map(scheme => scheme.provider);
|
|
203
|
+
return ["login", "logout", "me"].map(action => ({
|
|
204
|
+
name: `auth-${action}`, kind: "system", surface: "bff",
|
|
205
|
+
methods: [action === "me" ? "GET" : "POST"], publicPath: `/api/auth/${action}`,
|
|
206
|
+
filePath: "bff/src/auth/index.ts",
|
|
207
|
+
exists: (providers.includes("custom-jwt") || (action === "me" && providers.includes("external-token"))) &&
|
|
208
|
+
fs.existsSync(path.join(projectRoot, "bff", "src", "auth", "index.ts")) &&
|
|
209
|
+
fs.existsSync(path.join(projectRoot, "bff", "auth", "function.json")),
|
|
210
|
+
}));
|
|
211
|
+
}
|
|
194
212
|
return [
|
|
195
213
|
{
|
|
196
214
|
name: "auth-login",
|
|
@@ -226,6 +244,7 @@ async function buildProjectManifest(projectRoot = process.cwd()) {
|
|
|
226
244
|
return (0, runtime_1.withWorkingDirectory)(projectRoot, async () => {
|
|
227
245
|
const configPath = resolveConfigPath(projectRoot);
|
|
228
246
|
const backendLanguage = (0, config_1.getBackendLanguage)(configPath || undefined);
|
|
247
|
+
const frontendFramework = (0, config_1.getFrontendFramework)(configPath || undefined);
|
|
229
248
|
const config = (0, config_1.getFullConfig)(configPath || undefined);
|
|
230
249
|
const configValidation = (0, config_1.validateConfig)(config);
|
|
231
250
|
const { result: entities, messages } = await (0, runtime_1.captureConsoleMessages)(async () => {
|
|
@@ -252,14 +271,15 @@ async function buildProjectManifest(projectRoot = process.cwd()) {
|
|
|
252
271
|
});
|
|
253
272
|
diagnostics.push(...messages.warnings.map((warning) => `warning:${warning}`), ...messages.errors.map((error) => `error:${error}`));
|
|
254
273
|
const routes = [
|
|
255
|
-
...entities.flatMap((entity) => buildEntityRoutes(projectRoot, backendLanguage, entity)),
|
|
256
|
-
...buildSystemRoutes(projectRoot),
|
|
274
|
+
...entities.flatMap((entity) => buildEntityRoutes(projectRoot, backendLanguage, entity, frontendFramework)),
|
|
275
|
+
...buildSystemRoutes(projectRoot, frontendFramework, config.auth),
|
|
257
276
|
].sort((left, right) => left.name.localeCompare(right.name));
|
|
258
277
|
const manifest = {
|
|
259
278
|
version: exports.SWALLOWKIT_MANIFEST_VERSION,
|
|
260
279
|
generatedAt: new Date().toISOString(),
|
|
261
280
|
configPath,
|
|
262
281
|
backendLanguage,
|
|
282
|
+
frontendFramework,
|
|
263
283
|
configValidation,
|
|
264
284
|
connectors: Object.entries(config.connectors || {})
|
|
265
285
|
.map(([name, definition]) => ({ name, definition }))
|
|
@@ -267,16 +287,18 @@ async function buildProjectManifest(projectRoot = process.cwd()) {
|
|
|
267
287
|
auth: (0, config_1.normalizeAuthConfig)(config.auth) || null,
|
|
268
288
|
entities: entities.sort((left, right) => left.name.localeCompare(right.name)),
|
|
269
289
|
routes,
|
|
270
|
-
modules: buildModules(projectRoot),
|
|
271
|
-
artifacts: buildArtifacts(projectRoot),
|
|
290
|
+
modules: buildModules(projectRoot, frontendFramework),
|
|
291
|
+
artifacts: buildArtifacts(projectRoot, frontendFramework),
|
|
272
292
|
architecture: {
|
|
273
|
-
pattern: "Next.js BFF + Azure Functions + shared Zod models",
|
|
293
|
+
pattern: frontendFramework === "react" ? "React SPA + SWA managed Functions BFF + standalone Azure Functions + shared Zod models" : "Next.js BFF + Azure Functions + shared Zod models",
|
|
294
|
+
frontendFramework,
|
|
274
295
|
backendLanguage,
|
|
275
296
|
layerBoundaries: [
|
|
276
297
|
"shared/models -> schema source of truth",
|
|
277
|
-
"app/api -> BFF layer only
|
|
298
|
+
`${frontendFramework === "react" ? "bff" : "app/api"} -> BFF layer only`,
|
|
278
299
|
"functions -> backend logic and data access",
|
|
279
|
-
"app -> UI and pages
|
|
300
|
+
`${frontendFramework === "react" ? "src" : "app"} -> UI and pages`,
|
|
301
|
+
"SWA and standalone Functions are not linked; backend credentials stay in the BFF",
|
|
280
302
|
],
|
|
281
303
|
hasSharedWorkspace: fs.existsSync(path.join(projectRoot, "shared", "package.json")),
|
|
282
304
|
hasConnectors: Object.keys(config.connectors || {}).length > 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/core/project/manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/core/project/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project-scoped MCP launcher version management.
|
|
3
|
+
*
|
|
4
|
+
* `.mcp.json` intentionally resolves `swallowkit@latest` so that projects created
|
|
5
|
+
* with older releases still get the current stable tools. A prerelease project can
|
|
6
|
+
* be newer than `latest`; in that case the launcher is pinned to the project
|
|
7
|
+
* version until a stable release that understands project-aware delegation catches up.
|
|
8
|
+
*/
|
|
9
|
+
export declare const MCP_CONFIG_PATH = ".mcp.json";
|
|
10
|
+
export declare const MCP_VERSION_ENV = "SWALLOWKIT_MCP_VERSION";
|
|
11
|
+
export declare const MCP_LATEST = "latest";
|
|
12
|
+
export interface McpPinDecision {
|
|
13
|
+
version: string;
|
|
14
|
+
reason: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Decide the SWALLOWKIT_MCP_VERSION value for a project that uses `projectVersion`.
|
|
18
|
+
* Uses `latest` unless the project version is newer than the published `latest`.
|
|
19
|
+
* When the registry could not be reached, prereleases are pinned conservatively.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveMcpPinVersion(projectVersion: string, publishedLatest: string | null): McpPinDecision;
|
|
22
|
+
export declare function lookupPublishedLatestVersion(packageName: string, timeoutMs?: number): string | null;
|
|
23
|
+
export declare function readMcpConfigVersion(projectDir: string): string | null;
|
|
24
|
+
/** Update only the SwallowKit MCP version in .mcp.json, preserving all other content. */
|
|
25
|
+
export declare function writeMcpConfigVersion(projectDir: string, version: string): void;
|
|
26
|
+
//# sourceMappingURL=mcp-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../../src/core/project/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,eAAe,2BAA2B,CAAC;AACxD,eAAO,MAAM,UAAU,WAAW,CAAC;AAEnC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,CAa3G;AAED,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,MAAM,GAAG,IAAI,CAYlG;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUtE;AAED,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAY/E"}
|