gencow 0.1.176 → 0.1.178
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/bin/gencow.mjs +8 -2
- package/core/index.js +26 -4
- package/dashboard/assets/index-CFHaaHZs.js +408 -0
- package/dashboard/assets/index-DQfrJITv.css +1 -0
- package/dashboard/index.html +2 -2
- package/lib/app-command.mjs +43 -12
- package/lib/app-create-response.mjs +51 -0
- package/lib/auth-schema-provenance-guard.mjs +55 -0
- package/lib/backend-env-resolver.mjs +147 -0
- package/lib/cli-project-runtime.mjs +40 -26
- package/lib/cli-schema-paths.mjs +7 -1
- package/lib/codegen-command.mjs +14 -32
- package/lib/component-readme.mjs +33 -10
- package/lib/db-command.mjs +31 -34
- package/lib/db-migration-command-steps.mjs +234 -0
- package/lib/db-push-command.mjs +238 -200
- package/lib/deploy-command.mjs +1 -0
- package/lib/deploy-contract.mjs +154 -0
- package/lib/deploy-existing-bundle-candidate.mjs +48 -0
- package/lib/deploy-package-claim.mjs +119 -0
- package/lib/deploy-package-runtime.mjs +206 -62
- package/lib/deploy-receipt-store.mjs +169 -0
- package/lib/deploy-runtime.mjs +113 -17
- package/lib/deploy-static-fullstack-runtime.mjs +34 -8
- package/lib/dev-cloud-bundle.mjs +50 -7
- package/lib/dev-cloud-command.mjs +58 -20
- package/lib/dev-cloud-migrations.mjs +30 -5
- package/lib/doctor-command.mjs +31 -12
- package/lib/drizzle-generate.mjs +38 -1
- package/lib/env-command.mjs +75 -10
- package/lib/init-command.mjs +44 -10
- package/lib/install-features.mjs +24 -5
- package/lib/migration-bundle-manifest.mjs +58 -7
- package/lib/migration-bundle-staging.mjs +59 -0
- package/lib/migration-client-diagnostic.mjs +61 -1
- package/lib/migration-diagnostic-contract.mjs +6 -238
- package/lib/migration-diagnostic.mjs +35 -25
- package/lib/migration-operation-client.mjs +92 -0
- package/lib/project-migration-manifest.mjs +111 -0
- package/lib/project-schema-deployment-preview.mjs +86 -0
- package/lib/project-validator.mjs +20 -4
- package/lib/readme-codegen.mjs +5 -4
- package/lib/static-artifact-manifest.mjs +40 -0
- package/lib/static-command.mjs +27 -4
- package/lib/static-deploy-command.mjs +98 -11
- package/package.json +10 -6
- package/runtime/config.mjs +4 -0
- package/runtime/server.mjs +4675 -2721
- package/runtime/server.mjs.map +4 -4
- package/runtime/tooling.mjs +184 -2
- package/templateFeature/ai/ai-errors.ts +3 -2
- package/templateFeature/ai/ai-provider.ts +5 -4
- package/templateFeature/ai/ai.ts +1 -1
- package/templateFeature/ai/manifest.json +2 -1
- package/templateFeature/embedding-profile.ts +9 -0
- package/templateFeature/memory/embedding-profile.ts +1 -0
- package/templateFeature/memory/manifest.json +6 -5
- package/templateFeature/memory/memory.ts +141 -46
- package/templateFeature/memory/schema-memory.ts +11 -2
- package/templateFeature/rag/embedding-profile.ts +1 -0
- package/templateFeature/rag/manifest.json +9 -8
- package/templateFeature/rag/rag.ts +104 -35
- package/templateFeature/rag/schema-rag.ts +11 -2
- package/templateFeature/search/embedding-profile.ts +1 -0
- package/templateFeature/search/manifest.json +5 -3
- package/templateFeature/search/schema-search.ts +14 -1
- package/templates/SECURITY.md +1 -1
- package/dashboard/assets/index-DjLw1oMy.css +0 -1
- package/dashboard/assets/index-DnlR7gj_.js +0 -408
package/bin/gencow.mjs
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Commands:
|
|
6
6
|
* gencow dev — push schema → start server with hot-reload
|
|
7
|
-
* gencow db:push —
|
|
7
|
+
* gencow db:push — generate and apply versioned cloud migrations
|
|
8
8
|
* gencow db:generate — generate SQL migration files from schema.ts
|
|
9
9
|
* gencow db:migrate — apply pending migrations
|
|
10
10
|
* gencow db:reset — backup + reset DB (safe reset)
|
|
@@ -125,6 +125,7 @@ const runCodegenCommand = createCodegenCommand({
|
|
|
125
125
|
RESET,
|
|
126
126
|
});
|
|
127
127
|
const runDoctorCommand = createDoctorCommand({
|
|
128
|
+
cliVersion: CLI_VERSION,
|
|
128
129
|
loadConfig,
|
|
129
130
|
logImpl: log,
|
|
130
131
|
infoImpl: info,
|
|
@@ -142,6 +143,7 @@ const {
|
|
|
142
143
|
dbRestore: runDbRestoreCommand,
|
|
143
144
|
dbPush: runDbPushCommand,
|
|
144
145
|
dbCheck: runDbCheckCommand,
|
|
146
|
+
dbCheckForProject: runDbCheckForProjectCommand,
|
|
145
147
|
dbGenerate: runDbGenerateCommand,
|
|
146
148
|
dbMigrate: runDbMigrateCommand,
|
|
147
149
|
dbStudio: runDbStudioCommand,
|
|
@@ -156,6 +158,7 @@ const {
|
|
|
156
158
|
runInServer,
|
|
157
159
|
});
|
|
158
160
|
const runDevCloudCommand = createDevCloudCommand({
|
|
161
|
+
cliVersion: CLI_VERSION,
|
|
159
162
|
buildEnvImpl: buildEnv,
|
|
160
163
|
requireCreds,
|
|
161
164
|
loadConfig,
|
|
@@ -220,6 +223,7 @@ const { dev: runDevCommand, devLocal: runDevLocalCommand } = createDevLocalComma
|
|
|
220
223
|
const runConfigCommand = createConfigCommand();
|
|
221
224
|
const runCorsCommand = createCorsCommand();
|
|
222
225
|
const runStaticDeployRuntime = createStaticDeployRuntime({
|
|
226
|
+
cliVersion: CLI_VERSION,
|
|
223
227
|
cwdImpl: () => process.cwd(),
|
|
224
228
|
drizzleKitCmdImpl: _drizzleKitCmd,
|
|
225
229
|
verifyAppReadyImpl: verifyAppReady,
|
|
@@ -227,6 +231,7 @@ const runStaticDeployRuntime = createStaticDeployRuntime({
|
|
|
227
231
|
});
|
|
228
232
|
const runDeployCommand = createDeployCommand({
|
|
229
233
|
buildEnvImpl: buildEnv,
|
|
234
|
+
cliVersion: CLI_VERSION,
|
|
230
235
|
cwdImpl: () => process.cwd(),
|
|
231
236
|
drizzleKitCmdImpl: _drizzleKitCmd,
|
|
232
237
|
existsSyncImpl: existsSync,
|
|
@@ -234,6 +239,7 @@ const runDeployCommand = createDeployCommand({
|
|
|
234
239
|
handleDeployReadonlySubcommandImpl: handleDeployReadonlySubcommand,
|
|
235
240
|
isMonorepoImpl: isMonorepo,
|
|
236
241
|
loadConfigImpl: loadConfig,
|
|
242
|
+
runDbCheckForProjectImpl: runDbCheckForProjectCommand,
|
|
237
243
|
platformFetchImpl: platformFetch,
|
|
238
244
|
processEnv: process.env,
|
|
239
245
|
processRef: process,
|
|
@@ -356,7 +362,7 @@ ${BOLD}Commands (login required):${RESET}
|
|
|
356
362
|
${GREEN}whoami${RESET} Show current user info
|
|
357
363
|
${GREEN}dev${RESET} Watch + auto-deploy to cloud + live logs
|
|
358
364
|
${DIM}--verbose Show all HTTP logs (including admin/ws)${RESET}
|
|
359
|
-
${GREEN}db:push${RESET}
|
|
365
|
+
${GREEN}db:push${RESET} Apply versioned migrations to cloud DB
|
|
360
366
|
${DIM}--prod Push to production DB (confirmation required)${RESET}
|
|
361
367
|
${GREEN}db:check${RESET} Audit cloud migrations without applying DDL
|
|
362
368
|
${DIM}--prod Check production DB without mutation${RESET}
|
package/core/index.js
CHANGED
|
@@ -274,7 +274,21 @@ function buildWakeAppSuccessResult(status, port) {
|
|
|
274
274
|
}
|
|
275
275
|
function buildWakeAppBootFailedResult(error) {
|
|
276
276
|
const message = error instanceof Error ? error.message : String(error);
|
|
277
|
-
|
|
277
|
+
if (!error || typeof error !== "object") {
|
|
278
|
+
return { ok: false, status: "boot_failed", error: message };
|
|
279
|
+
}
|
|
280
|
+
const metadata = error;
|
|
281
|
+
const publicMessage = typeof metadata.publicMessage === "string" && metadata.publicMessage.length <= 200 ? metadata.publicMessage : message;
|
|
282
|
+
const reasonCode = typeof metadata.reasonCode === "string" && /^[a-z][a-z0-9_]{2,80}$/.test(metadata.reasonCode) ? metadata.reasonCode : void 0;
|
|
283
|
+
const correlationId = typeof metadata.correlationId === "string" && /^rt_[A-Za-z0-9_-]{8,80}$/.test(metadata.correlationId) ? metadata.correlationId : void 0;
|
|
284
|
+
return {
|
|
285
|
+
ok: false,
|
|
286
|
+
status: "boot_failed",
|
|
287
|
+
error: publicMessage,
|
|
288
|
+
...reasonCode ? { reasonCode } : {},
|
|
289
|
+
...typeof metadata.retryable === "boolean" ? { retryable: metadata.retryable } : {},
|
|
290
|
+
...correlationId ? { correlationId } : {}
|
|
291
|
+
};
|
|
278
292
|
}
|
|
279
293
|
function isWakeAppDeferredResult(result) {
|
|
280
294
|
return !result.ok && (result.status === "capacity_rejected" || result.status === "queue_timeout");
|
|
@@ -2954,7 +2968,7 @@ function sleep(ms) {
|
|
|
2954
2968
|
}
|
|
2955
2969
|
|
|
2956
2970
|
// ../core/src/runtime-env-policy.ts
|
|
2957
|
-
var RESERVED_TENANT_RUNTIME_ENV_KEYS =
|
|
2971
|
+
var RESERVED_TENANT_RUNTIME_ENV_KEYS = [
|
|
2958
2972
|
"PORT",
|
|
2959
2973
|
"DATABASE_URL",
|
|
2960
2974
|
"GENCOW_DB_URL",
|
|
@@ -2978,6 +2992,11 @@ var RESERVED_TENANT_RUNTIME_ENV_KEYS = /* @__PURE__ */ new Set([
|
|
|
2978
2992
|
"COWBOX_WARM_POOL_PROFILE",
|
|
2979
2993
|
"PGBOUNCER_PORT",
|
|
2980
2994
|
"DIRECT_PG_PORT",
|
|
2995
|
+
"GENCOW_DIRECT_DATABASE_URL",
|
|
2996
|
+
"DIRECT_DATABASE_URL",
|
|
2997
|
+
"GENCOW_APP_USER_PASS",
|
|
2998
|
+
"GENCOW_DDL_USER_PASS",
|
|
2999
|
+
"GENCOW_SYSTEM_USER_PASS",
|
|
2981
3000
|
"GENCOW_WAKE_SIGNAL_ENABLED",
|
|
2982
3001
|
"GENCOW_WAKE_SIGNAL_DATABASE_URL",
|
|
2983
3002
|
"GENCOW_REALTIME_OUTBOX_POLL_INTERVAL_MS",
|
|
@@ -3022,19 +3041,22 @@ var RESERVED_TENANT_RUNTIME_ENV_KEYS = /* @__PURE__ */ new Set([
|
|
|
3022
3041
|
"BUN_JSC_forceRAMSize",
|
|
3023
3042
|
"MIMALLOC_PURGE_DELAY",
|
|
3024
3043
|
"NODE_PATH"
|
|
3025
|
-
]
|
|
3044
|
+
];
|
|
3045
|
+
var RESERVED_TENANT_RUNTIME_ENV_KEY_SET = new Set(RESERVED_TENANT_RUNTIME_ENV_KEYS);
|
|
3026
3046
|
var RESERVED_TENANT_RUNTIME_ENV_PREFIXES = [
|
|
3027
3047
|
"__GENCOW_",
|
|
3048
|
+
"GENCOW_CONTROL_PLANE_",
|
|
3028
3049
|
"GENCOW_PLATFORM_STORAGE_",
|
|
3029
3050
|
"GENCOW_DOCUMENT_",
|
|
3030
3051
|
"GENCOW_TEMPLATE_",
|
|
3031
3052
|
"GENCOW_WARM_",
|
|
3032
3053
|
"GENCOW_DIRECT_RUNNER_",
|
|
3054
|
+
"GENCOW_RUNTIME_PINNING_",
|
|
3033
3055
|
"GENCOW_COWBOX_"
|
|
3034
3056
|
];
|
|
3035
3057
|
function isReservedTenantRuntimeEnvKey(key) {
|
|
3036
3058
|
const normalized = key.trim();
|
|
3037
|
-
return
|
|
3059
|
+
return RESERVED_TENANT_RUNTIME_ENV_KEY_SET.has(normalized) || RESERVED_TENANT_RUNTIME_ENV_PREFIXES.some((prefix) => normalized.startsWith(prefix));
|
|
3038
3060
|
}
|
|
3039
3061
|
function filterTenantRuntimeEnvVars(vars) {
|
|
3040
3062
|
const allowed = {};
|