@wildo-ai/platform-core-shared 1.1.2 → 1.1.4

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.
Files changed (32) hide show
  1. package/dist/esm/core/resources/resources-operations.custom.shared.definitions.d.ts.map +1 -1
  2. package/dist/esm/core/resources/resources-relationships.custom.shared.definitions.d.ts.map +1 -1
  3. package/dist/esm/index.d.ts.map +1 -1
  4. package/dist/esm/runtime/application-backend-env.contracts.d.ts +20 -0
  5. package/dist/esm/runtime/application-backend-env.contracts.d.ts.map +1 -1
  6. package/dist/esm/runtime/application-backend-env.contracts.js +22 -0
  7. package/dist/esm/runtime/application-backend-env.contracts.js.map +1 -1
  8. package/dist/esm/runtime/runtime-topology.contracts.d.ts.map +1 -1
  9. package/dist/esm/security/authorizations/roles.custom.shared.definitions.d.ts.map +1 -1
  10. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts.map +1 -1
  11. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts.map +1 -1
  12. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts.map +1 -1
  13. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.d.ts.map +1 -1
  14. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.d.ts.map +1 -1
  15. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.js +12 -1
  16. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.js.map +1 -1
  17. package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.d.ts.map +1 -1
  18. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.d.ts.map +1 -1
  19. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.js +12 -1
  20. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.js.map +1 -1
  21. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.d.ts.map +1 -1
  22. package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.d.ts.map +1 -1
  23. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts.map +1 -1
  24. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts +1 -3
  25. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts.map +1 -1
  26. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js +9 -4
  27. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js.map +1 -1
  28. package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts.map +1 -1
  29. package/dist/esm/workbench/workbench-resources.custom.shared.schemas.d.ts.map +1 -1
  30. package/dist/esm/workbench/workbench-resources.custom.shared.schemas.js.map +1 -1
  31. package/dist/tsconfig.build.tsbuildinfo +1 -1
  32. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"resources-operations.custom.shared.definitions.d.ts","sourceRoot":"","sources":["../../../../../src/core/resources/resources-operations.custom.shared.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8CAA8C,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAapF,eAAO,MAAM,8CAA8C,EAAE,8CAA8C,CAAC,yBAAyB,CAYpI,CAAC"}
1
+ {"version":3,"file":"resources-operations.custom.shared.definitions.d.ts","sourceRoot":"","sources":["../../../../src/core/resources/resources-operations.custom.shared.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8CAA8C,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAapF,eAAO,MAAM,8CAA8C,EAAE,8CAA8C,CAAC,yBAAyB,CAYpI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resources-relationships.custom.shared.definitions.d.ts","sourceRoot":"","sources":["../../../../../src/core/resources/resources-relationships.custom.shared.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,oBAAoB,EAA+G,MAAM,uBAAuB,CAAC;AAG3N;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,mCAAmC,EAAE,oBAAoB,EA4KrE,CAAC"}
1
+ {"version":3,"file":"resources-relationships.custom.shared.definitions.d.ts","sourceRoot":"","sources":["../../../../src/core/resources/resources-relationships.custom.shared.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,oBAAoB,EAA+G,MAAM,uBAAuB,CAAC;AAG3N;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,mCAAmC,EAAE,oBAAoB,EA4KrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,wDAAwD,CAAC;AAWvE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,uDAAuD,CAAC;AACtE,cAAc,wEAAwE,CAAC;AACvF,cAAc,4DAA4D,CAAC;AAC3E,cAAc,6EAA6E,CAAC;AAC5F,cAAc,8DAA8D,CAAC;AAC7E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,0DAA0D,CAAC;AACzE,cAAc,oEAAoE,CAAC;AACnF,cAAc,iEAAiE,CAAC;AAGhF,cAAc,2DAA2D,CAAC;AAC1E,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AAGrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,EAAO,CAAC;AAK9D,cAAc,+DAA+D,CAAC;AAC9E,cAAc,iFAAiF,CAAC;AAIhG,cAAc,mFAAmF,CAAC;AAClG,cAAc,yEAAyE,CAAC;AACxF,cAAc,oGAAoG,CAAC;AACnH,cAAc,0FAA0F,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,wDAAwD,CAAC;AAWvE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,uDAAuD,CAAC;AACtE,cAAc,wEAAwE,CAAC;AACvF,cAAc,4DAA4D,CAAC;AAC3E,cAAc,6EAA6E,CAAC;AAC5F,cAAc,8DAA8D,CAAC;AAC7E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,0DAA0D,CAAC;AACzE,cAAc,oEAAoE,CAAC;AACnF,cAAc,iEAAiE,CAAC;AAGhF,cAAc,2DAA2D,CAAC;AAC1E,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AAGrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,EAAO,CAAC;AAK9D,cAAc,+DAA+D,CAAC;AAC9E,cAAc,iFAAiF,CAAC;AAIhG,cAAc,mFAAmF,CAAC;AAClG,cAAc,yEAAyE,CAAC;AACxF,cAAc,oGAAoG,CAAC;AACnH,cAAc,0FAA0F,CAAC"}
@@ -265,4 +265,24 @@ export declare function buildMinionServiceName(appSlug: string, minionName: stri
265
265
  * `http.port` (schema default 8080).
266
266
  */
267
267
  export declare function buildWorkerInternalUrl(appSlug: string, workerName: string, port: number): string;
268
+ /**
269
+ * The base URL the app-backend uses to reach a per-app worker in LOCAL development.
270
+ *
271
+ * There is no k8s Service locally, so there is no name to resolve — the worker is a supervised
272
+ * process listening on its authored `http.port` on the loopback interface, which is the same
273
+ * convention every other local runtime address in this repository uses.
274
+ *
275
+ * ## Why this exists at all (#426)
276
+ *
277
+ * `buildApplicationWorkerDispatchUrls` used to return `undefined` for anything but REMOTE, on the
278
+ * reasoning that "local dev has no k8s Services, and worker dispatch is a k8s-deploy concern". The
279
+ * first half is still true and the second no longer is: local dev now STARTS the worker, so the
280
+ * only thing missing was an address. Without one, `WorkerRemoteClientFactory.client()` fails closed
281
+ * on the absent `WILDO_WORKER_<NAME>_URL` — which is why the whole backend-to-worker chain had
282
+ * never been exercised by anyone, in a test or in the dev stack.
283
+ *
284
+ * Declared here, beside its in-cluster sibling and the env-key helper both sides derive, so the
285
+ * emit side and the read side cannot drift apart for either deployment shape.
286
+ */
287
+ export declare function buildWorkerLocalUrl(port: number): string;
268
288
  //# sourceMappingURL=application-backend-env.contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application-backend-env.contracts.d.ts","sourceRoot":"","sources":["../../../../src/runtime/application-backend-env.contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application-backend-env.contracts.d.ts","sourceRoot":"","sources":["../../../src/runtime/application-backend-env.contracts.ts"],"names":[],"mappings":"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"}
@@ -356,4 +356,26 @@ export function buildMinionServiceName(appSlug, minionName) {
356
356
  export function buildWorkerInternalUrl(appSlug, workerName, port) {
357
357
  return `http://${buildWorkerServiceName(appSlug, workerName)}:${port}`;
358
358
  }
359
+ /**
360
+ * The base URL the app-backend uses to reach a per-app worker in LOCAL development.
361
+ *
362
+ * There is no k8s Service locally, so there is no name to resolve — the worker is a supervised
363
+ * process listening on its authored `http.port` on the loopback interface, which is the same
364
+ * convention every other local runtime address in this repository uses.
365
+ *
366
+ * ## Why this exists at all (#426)
367
+ *
368
+ * `buildApplicationWorkerDispatchUrls` used to return `undefined` for anything but REMOTE, on the
369
+ * reasoning that "local dev has no k8s Services, and worker dispatch is a k8s-deploy concern". The
370
+ * first half is still true and the second no longer is: local dev now STARTS the worker, so the
371
+ * only thing missing was an address. Without one, `WorkerRemoteClientFactory.client()` fails closed
372
+ * on the absent `WILDO_WORKER_<NAME>_URL` — which is why the whole backend-to-worker chain had
373
+ * never been exercised by anyone, in a test or in the dev stack.
374
+ *
375
+ * Declared here, beside its in-cluster sibling and the env-key helper both sides derive, so the
376
+ * emit side and the read side cannot drift apart for either deployment shape.
377
+ */
378
+ export function buildWorkerLocalUrl(port) {
379
+ return `http://localhost:${port}`;
380
+ }
359
381
  //# sourceMappingURL=application-backend-env.contracts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"application-backend-env.contracts.js","sourceRoot":"","sources":["../../../../src/runtime/application-backend-env.contracts.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared environment contract for application backend processes.\n *\n * This is the canonical vocabulary for the app-backend `.env` surface emitted\n * by the CLI and parsed by backend runtimes. Keep the keys here purely\n * declarative: they describe names and ownership, not executor-specific\n * behavior.\n */\n\nexport enum ApplicationBackendBootstrapEnvKey {\n APPLICATION_ID = 'APPLICATION_ID',\n SERVICE_NAME = 'SERVICE_NAME',\n PLATFORM_ENVIRONMENT_ID = 'PLATFORM_ENVIRONMENT_ID',\n /** Deployment topology authority (`local` or `remote`), distinct from APPLICATION_ENV behavior mode and from the environment id. */\n DEPLOYMENT_LOCATION_TYPE = 'DEPLOYMENT_LOCATION_TYPE',\n PLATFORM_APPLICATION_PRIMARY_SECRET = 'PLATFORM_APPLICATION_PRIMARY_SECRET',\n PLATFORM_APPS_MANAGER_URL = 'PLATFORM_APPS_MANAGER_URL',\n APPLICATION_ENV = 'APPLICATION_ENV',\n}\n\nexport enum ApplicationBackendPlatformUrlEnvKey {\n PLATFORM_CRONTABS_BATCHES_MANAGER_URL = 'PLATFORM_CRONTABS_BATCHES_MANAGER_URL',\n PLATFORM_MODULE_REGISTRY_URL = 'PLATFORM_MODULE_REGISTRY_URL',\n}\n\nexport enum ApplicationBackendRuntimeEnvKey {\n APPLICATION_RUNTIME_ENDPOINTS = 'APPLICATION_RUNTIME_ENDPOINTS',\n /** Explicit app-owned filesystem handoff shared by a local backend and its companion. Absence means no filesystem transport is authorized. */\n APPLICATION_RUNTIME_SIGNALS_HOME = 'APPLICATION_RUNTIME_SIGNALS_HOME',\n}\n\nexport enum ApplicationBackendDataEnvKey {\n /**\n * Which persistence adapter the application's resources use.\n *\n * DECLARED, not derived. Until this existed the config loader hard-coded MONGODB, so no\n * environment, secret or bootstrap value could select PostgreSQL — the adapter was reachable only\n * by a test that reached into the config object directly, which is why no application had ever\n * booted on it. Deriving it instead (\"PostgreSQL keys are present, so use PostgreSQL\") was\n * rejected: which store an application persists to is a deployment decision that must be legible\n * in one place, not an emergent property of which variables happen to be set.\n *\n * Absent means MONGODB, so every existing deployment is unaffected.\n */\n DATABASE_DEFAULT_ADAPTER = 'DATABASE_DEFAULT_ADAPTER',\n /**\n * The format NEW resource identifiers are minted in — `object-id` or `uuid`.\n *\n * DECLARED, and specifically NOT derived from {@link DATABASE_DEFAULT_ADAPTER}. The engine used to\n * derive it (MongoDB implied `OBJECT_ID`, PostgreSQL implied `UUID`), which made an application's\n * identity format a side effect of where its rows happen to live: moving a resource between\n * adapters silently changed the shape of every id it minted AND made every id it had already\n * minted fail `validateForResource`. Identity reaches URLs, exports, external references and\n * integrations, so it is an application-level decision that must outlive a storage decision.\n *\n * It needed an env key for the same reason the adapter did. The loader hard-coded\n * `ResourceIdFormat.OBJECT_ID`, so the value was legible nowhere and changeable by nobody: an\n * application could select PostgreSQL and still had no supported way to STATE its identity format,\n * which left the engine's \"declared, never derived\" rule true in the schema and unreachable in\n * practice.\n *\n * Absent means `OBJECT_ID` — what every existing application already mints — so no deployment\n * changes behaviour by adding this key to the contract.\n *\n * One deployment constraint travels with it: on PostgreSQL the `_id` COLUMN must be able to hold\n * the declared format. DDL rendered from the schema plan types it `text`, which is correct for\n * either member; a hand-written `_id uuid` column restricts the application to `UUID` and rejects\n * an `OBJECT_ID` outright.\n */\n RESOURCE_ID_FORMAT = 'RESOURCE_ID_FORMAT',\n MONGODB_HOST = 'MONGODB_HOST',\n MONGODB_DATABASE = 'MONGODB_DATABASE',\n MONGODB_PROTOCOL = 'MONGODB_PROTOCOL',\n MONGODB_DIRECT_CONNECTION = 'MONGODB_DIRECT_CONNECTION',\n /**\n * PostgreSQL TOPOLOGY only — host, port, database, ssl.\n *\n * CREDENTIALS are deliberately NOT here. They arrive through\n * `secrets.database.postgresql`, exactly as MongoDB's do: env carries where the database is,\n * secrets carry who may open it. Putting a password in an env contract would make it readable\n * from every process listing and every container inspect.\n */\n POSTGRESQL_HOST = 'POSTGRESQL_HOST',\n POSTGRESQL_PORT = 'POSTGRESQL_PORT',\n POSTGRESQL_DATABASE = 'POSTGRESQL_DATABASE',\n POSTGRESQL_SSL_MODE = 'POSTGRESQL_SSL_MODE',\n REDIS_HOST = 'REDIS_HOST',\n REDIS_PORT = 'REDIS_PORT',\n /**\n * Optional Redis logical database index (0–15). Emitted only when the\n * author sets `backingServices.redis.database` in `wildo.infra.<env>.config.ts`.\n * Consumers default to DB 0 when this var is missing.\n */\n REDIS_DATABASE = 'REDIS_DATABASE',\n /**\n * Canonical app-level Redis key namespace. Emitted only when the author\n * sets `dataServices.redis.keyPrefix` in `wildo.saas.config.ts` (Slice 3.6).\n * `RedisService` uses this as the `appPrefix` for all keys it writes — every\n * key becomes `${REDIS_KEY_PREFIX}org:${orgId}:${key}` or\n * `${REDIS_KEY_PREFIX}global:${key}`. When unset, the app-level prefix\n * stays empty (multi-tenant isolation falls back to the\n * `org:`/`global:` segment alone).\n *\n * REPLACE semantics: this supersedes the legacy\n * `secrets.database.redis.username`-derived prefix (Slice 3.6 audit\n * decision — single source of truth = `wildo.saas.config.dataServices`).\n */\n REDIS_KEY_PREFIX = 'REDIS_KEY_PREFIX',\n RABBITMQ_HOST = 'RABBITMQ_HOST',\n RABBITMQ_PORT = 'RABBITMQ_PORT',\n /**\n * Optional RabbitMQ virtual host. Emitted only when the author sets\n * `backingServices.rabbitmq.vhost` in `wildo.infra.<env>.config.ts`.\n * Consumers default to `/` (the RabbitMQ root vhost) when missing.\n *\n * Note (Slice 3.6 audit): the symmetric saas-side field\n * `dataServices.rabbitmq.vhost` was DELETED. Vhost is an\n * infra/topology concern with a single authoring seam (infra config).\n */\n RABBITMQ_VHOST = 'RABBITMQ_VHOST',\n STORAGE_PROVIDER = 'STORAGE_PROVIDER',\n /**\n * S3-compatible endpoint **hostname** (NOT a URL). The variable name\n * pre-dates the convention pin and is intentionally kept stable for\n * backward compatibility with deployed manifests, but the value is\n * always a bare host (`minio`, `s3.amazonaws.com`, `127.0.0.1`) — the\n * `STORAGE_PORT` and `STORAGE_USE_SSL` siblings are what compose the\n * full `https?://host:port` URL at the SDK initialization site.\n *\n * Slice 3.2 audit (L-4): authoring an explicit URL here (`http://...`)\n * silently breaks the `host:port` contract downstream because the SDK\n * concatenates the parts naively. If a future migration wants to flip\n * the contract to a URL, rename the env key (`STORAGE_URL`) rather\n * than overloading this one — the rename surfaces the breaking change\n * to operators.\n */\n STORAGE_ENDPOINT = 'STORAGE_ENDPOINT',\n STORAGE_PORT = 'STORAGE_PORT',\n STORAGE_USE_SSL = 'STORAGE_USE_SSL',\n STORAGE_BUCKET = 'STORAGE_BUCKET',\n /**\n * Optional app-level object-key namespace prefix prepended to every\n * application file path produced by `WildoManagedStorageProvider`\n * (Slice 3.6). Final key shape becomes\n * `${STORAGE_BUCKET_PREFIX}/applications/${applicationId}/files/${fileId}`\n * (extra segment above the existing `applicationId`-based namespace).\n *\n * Emitted only when the author sets `dataServices.s3.bucketPrefix` in\n * `wildo.saas.config.ts`. The actual MinIO bucket name (`STORAGE_BUCKET`)\n * remains infra-controlled and is unaffected by this prefix — N apps\n * can share one bucket while keeping their object trees disjoint.\n */\n STORAGE_BUCKET_PREFIX = 'STORAGE_BUCKET_PREFIX',\n // ⚠️ `STORAGE_ACCESS_KEY` / `STORAGE_SECRET_KEY` are deliberately ABSENT from\n // this contract, and must not be re-added.\n //\n // They carried the object store's ROOT credential — the same pair the MinIO\n // container itself is created with — into every application, minion and worker\n // environment. An application now obtains short-lived, prefix-confined session\n // credentials from apps-manager instead (`createStsStorageCredentialResolver`),\n // so there is no application-tier storage credential to name here.\n //\n // Re-adding them would not merely restore a variable: this enum is the DECLARED\n // app-backend env surface, so a key here is an invitation for a builder to fill\n // it. `assertNoStorageSecretInGeneratedEnv` fails the build if one ever does.\n // See `.claude/plans/object-storage-root-credential-distribution.md`.\n STORAGE_LOCAL_BASE_DIR = 'STORAGE_LOCAL_BASE_DIR',\n CLAMAV_HOST = 'CLAMAV_HOST',\n CLAMAV_PORT = 'CLAMAV_PORT',\n YARA_ENABLED = 'YARA_ENABLED',\n YARA_HOST = 'YARA_HOST',\n YARA_PORT = 'YARA_PORT',\n}\n\n/**\n * Keep the plural `*Keys` aliases so current consumers keep reading naturally,\n * while the actual source of truth is the scoped enum definition above.\n */\nexport const ApplicationBackendBootstrapEnvKeys = ApplicationBackendBootstrapEnvKey;\nexport const ApplicationBackendPlatformUrlEnvKeys = ApplicationBackendPlatformUrlEnvKey;\nexport const ApplicationBackendRuntimeEnvKeys = ApplicationBackendRuntimeEnvKey;\nexport const ApplicationBackendDataEnvKeys = ApplicationBackendDataEnvKey;\n\nexport const APPLICATION_BACKEND_BOOTSTRAP_ENV_KEY_LIST = [\n ApplicationBackendBootstrapEnvKey.APPLICATION_ID,\n ApplicationBackendBootstrapEnvKey.SERVICE_NAME,\n ApplicationBackendBootstrapEnvKey.PLATFORM_ENVIRONMENT_ID,\n ApplicationBackendBootstrapEnvKey.DEPLOYMENT_LOCATION_TYPE,\n ApplicationBackendBootstrapEnvKey.PLATFORM_APPLICATION_PRIMARY_SECRET,\n ApplicationBackendBootstrapEnvKey.PLATFORM_APPS_MANAGER_URL,\n ApplicationBackendBootstrapEnvKey.APPLICATION_ENV,\n] as const;\n\nexport const APPLICATION_BACKEND_PLATFORM_URL_ENV_KEY_LIST = [\n ApplicationBackendPlatformUrlEnvKey.PLATFORM_CRONTABS_BATCHES_MANAGER_URL,\n ApplicationBackendPlatformUrlEnvKey.PLATFORM_MODULE_REGISTRY_URL,\n] as const;\n\nexport const APPLICATION_BACKEND_RUNTIME_ENV_KEY_LIST = [\n ApplicationBackendRuntimeEnvKey.APPLICATION_RUNTIME_ENDPOINTS,\n ApplicationBackendRuntimeEnvKey.APPLICATION_RUNTIME_SIGNALS_HOME,\n] as const;\n\nexport const APPLICATION_BACKEND_DATA_ENV_KEY_LIST = [\n ApplicationBackendDataEnvKey.DATABASE_DEFAULT_ADAPTER,\n ApplicationBackendDataEnvKey.RESOURCE_ID_FORMAT,\n ApplicationBackendDataEnvKey.MONGODB_HOST,\n ApplicationBackendDataEnvKey.MONGODB_DATABASE,\n ApplicationBackendDataEnvKey.MONGODB_PROTOCOL,\n ApplicationBackendDataEnvKey.MONGODB_DIRECT_CONNECTION,\n ApplicationBackendDataEnvKey.POSTGRESQL_HOST,\n ApplicationBackendDataEnvKey.POSTGRESQL_PORT,\n ApplicationBackendDataEnvKey.POSTGRESQL_DATABASE,\n ApplicationBackendDataEnvKey.POSTGRESQL_SSL_MODE,\n ApplicationBackendDataEnvKey.REDIS_HOST,\n ApplicationBackendDataEnvKey.REDIS_PORT,\n ApplicationBackendDataEnvKey.REDIS_DATABASE,\n ApplicationBackendDataEnvKey.REDIS_KEY_PREFIX,\n ApplicationBackendDataEnvKey.RABBITMQ_HOST,\n ApplicationBackendDataEnvKey.RABBITMQ_PORT,\n ApplicationBackendDataEnvKey.RABBITMQ_VHOST,\n ApplicationBackendDataEnvKey.STORAGE_PROVIDER,\n ApplicationBackendDataEnvKey.STORAGE_ENDPOINT,\n ApplicationBackendDataEnvKey.STORAGE_PORT,\n ApplicationBackendDataEnvKey.STORAGE_USE_SSL,\n ApplicationBackendDataEnvKey.STORAGE_BUCKET,\n ApplicationBackendDataEnvKey.STORAGE_BUCKET_PREFIX,\n ApplicationBackendDataEnvKey.STORAGE_LOCAL_BASE_DIR,\n ApplicationBackendDataEnvKey.CLAMAV_HOST,\n ApplicationBackendDataEnvKey.CLAMAV_PORT,\n ApplicationBackendDataEnvKey.YARA_ENABLED,\n ApplicationBackendDataEnvKey.YARA_HOST,\n ApplicationBackendDataEnvKey.YARA_PORT,\n] as const;\n\nexport const APPLICATION_BACKEND_ENV_KEY_LIST = [\n ...APPLICATION_BACKEND_BOOTSTRAP_ENV_KEY_LIST,\n ...APPLICATION_BACKEND_PLATFORM_URL_ENV_KEY_LIST,\n ...APPLICATION_BACKEND_RUNTIME_ENV_KEY_LIST,\n ...APPLICATION_BACKEND_DATA_ENV_KEY_LIST,\n] as const;\n\n/**\n * Keys that must always be treated as secrets when this app-backend env surface\n * is materialized into logs, CI artifacts, or deployment manifests.\n */\nexport const APPLICATION_BACKEND_SENSITIVE_ENV_KEYS = new Set<string>([\n ApplicationBackendBootstrapEnvKey.PLATFORM_APPLICATION_PRIMARY_SECRET,\n // The storage pair is gone rather than listed: an app-tier env no longer\n // carries an object-storage credential at all, so there is nothing here to\n // mark sensitive. See the note on the enum above.\n]);\n\nexport type ApplicationBackendEnvKey =\n typeof APPLICATION_BACKEND_ENV_KEY_LIST[number];\n\n/**\n * ────────────────────────────────────────────────────────────────────────\n * Backend → worker dispatch contract (G-8 / MW4)\n * ────────────────────────────────────────────────────────────────────────\n * A declared worker's HTTP base URL is injected into the app-backend env at\n * deploy time as `WILDO_WORKER_<NAME>_URL`. The `<NAME>` segment is DYNAMIC\n * (one per declared worker), so — unlike the static enums above — the key is a\n * HELPER, not a fixed member. Both the CLI EMIT side\n * (`PlatformEnvVarsBuilder.buildApplicationBackendEnv`) and the backend READ\n * side (`WorkerRemoteClientFactoryBackendService`) MUST derive the key + URL\n * through these single helpers so the two can never drift.\n */\nexport const WILDO_WORKER_URL_ENV_PREFIX = 'WILDO_WORKER_';\nexport const WILDO_WORKER_URL_ENV_SUFFIX = '_URL';\n\n/**\n * Normalize a worker identifier (the `wildo.saas.config.ts` bucket key —\n * camelCase or kebab-case, e.g. `myNodeWorker` / `my-node-worker`) into the\n * UPPER_SNAKE segment embedded inside `WILDO_WORKER_<NAME>_URL`. Both\n * `myNodeWorker` and `my-node-worker` normalize to `MY_NODE_WORKER`, so the env\n * key is stable regardless of the authoring style.\n */\nexport function normalizeWorkerEnvSegment(workerName: string): string {\n return workerName\n .replace(/([a-z0-9])([A-Z])/g, '$1_$2') // camelCase word boundary → underscore\n .replace(/[^A-Za-z0-9]+/g, '_') // kebab / space / other → underscore\n .replace(/_+/g, '_') // collapse repeats\n .replace(/^_|_$/g, '') // trim edges\n .toUpperCase();\n}\n\n/**\n * The `WILDO_WORKER_<NAME>_URL` env-var name for a declared worker. The single\n * source of truth for both emit (CLI) and read (backend factory).\n *\n * @example wildoWorkerUrlEnvKey('myNodeWorker') // 'WILDO_WORKER_MY_NODE_WORKER_URL'\n */\nexport function wildoWorkerUrlEnvKey(workerName: string): string {\n return `${WILDO_WORKER_URL_ENV_PREFIX}${normalizeWorkerEnvSegment(workerName)}${WILDO_WORKER_URL_ENV_SUFFIX}`;\n}\n\n/**\n * Normalize a service key (the `wildo.saas.config.ts` `minions`/`workers` bucket\n * key — authored camelCase or kebab, e.g. `marketingScrapper` / `my-rust-worker`)\n * into an RFC1123-valid DNS label segment: lowercase, `[a-z0-9-]` only, no\n * leading/trailing hyphen. `marketingScrapper` → `marketing-scrapper`,\n * `myNodeWorker` → `my-node-worker`.\n *\n * This is the DNS-NAME axis of a background runtime — the segment embedded in the\n * k8s object/Service name, the built container image ref, the compose service name,\n * and the worker dispatch URL host. It is DISTINCT from the IDENTITY axis (the raw\n * bucket key), which apps-manager keys on (`appConfig.workers[key]` /\n * `appConfig.minions[key]`) and which the worker stamps as `APP_OWNED_SERVICE_NAME`\n * / both runtimes carry as the `wildo.ai/owned-service-name` pod label — the\n * identity axis MUST stay raw and is NEVER passed through this helper. The\n * env-key axis (`WILDO_WORKER_<NAME>_URL`) has its own normalization,\n * {@link normalizeWorkerEnvSegment}, because an env-var name is UPPER_SNAKE, not a\n * DNS label.\n *\n * This helper does NOT truncate — a name too long for a DNS label (63 chars) is\n * REJECTED at authoring, not silently shortened (truncation risks colliding with\n * a sibling key). Returns `''` for all-symbol input. The authoring-time guard in\n * `define-saas-config.ts` fails fast on keys that normalize to empty, collide with\n * a sibling after normalization, or whose full `{slug}-{kind}-{name}` deploy name\n * exceeds 63 chars — so an empty / duplicate / over-long DNS name can never reach\n * the render.\n */\nexport function normalizeServiceKeyToDnsName(key: string): string {\n return key\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2') // camelCase word boundary → hyphen\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-') // any non-DNS char (kebab already ok) → hyphen\n .replace(/^-+|-+$/g, ''); // trim leading/trailing hyphens\n}\n\n/**\n * The k8s Service (and same-network compose service) name for a per-app worker:\n * `{appSlug}-worker-{dnsName}`, where `dnsName` is the bucket key normalized to an\n * RFC1123 label ({@link normalizeServiceKeyToDnsName}). Coherent-by-construction\n * with the CLI k8s render (`renderWorkerForTarget`), the compose render\n * (`deriveAppRuntimeServiceName`), the CI image build (`syncCicd`), and the worker\n * dispatch URL host ({@link buildWorkerInternalUrl}) — EVERY DNS-name site derives\n * the name through THIS helper (rather than inlining `{appSlug}-worker-{key}`), so\n * the backend calls the exact Service the render deploys and CI builds the exact\n * image ref the deploy pulls.\n *\n * `workerName` is the saas-config bucket key (NOT the per-folder `config.name`) —\n * passed raw; the normalization happens inside. The raw key remains the worker's\n * IDENTITY (apps-manager lookup + `APP_OWNED_SERVICE_NAME`), a separate axis that\n * is never derived from this function.\n */\nexport function buildWorkerServiceName(appSlug: string, workerName: string): string {\n return `${appSlug}-worker-${normalizeServiceKeyToDnsName(workerName)}`;\n}\n\n/**\n * The k8s Deployment (and same-network compose service) name for a per-app minion:\n * `{appSlug}-minion-{dnsName}`, where `dnsName` is the bucket key normalized to an\n * RFC1123 label ({@link normalizeServiceKeyToDnsName}). Symmetric with\n * {@link buildWorkerServiceName} — minions have no inbound Service / dispatch URL,\n * but the k8s render, the compose render, and the CI image build all need the\n * deploy name, and it must be RFC1123-valid for the same reasons. `minionName` is\n * the saas-config bucket key; the raw key stays the minion's IDENTITY (the\n * `wildo.ai/owned-service-name` pod label), never derived from here.\n */\nexport function buildMinionServiceName(appSlug: string, minionName: string): string {\n return `${appSlug}-minion-${normalizeServiceKeyToDnsName(minionName)}`;\n}\n\n/**\n * The in-cluster base URL the app-backend uses to reach a per-app worker\n * (`http://{appSlug}-worker-{workerName}:{port}`). The backend + its workers\n * deploy into the SAME namespace (per-app deploy), so the short Service name\n * resolves without a namespace qualifier. `port` is the worker's authored\n * `http.port` (schema default 8080).\n */\nexport function buildWorkerInternalUrl(appSlug: string, workerName: string, port: number): string {\n return `http://${buildWorkerServiceName(appSlug, workerName)}:${port}`;\n}\n"]}
1
+ {"version":3,"file":"application-backend-env.contracts.js","sourceRoot":"","sources":["../../../src/runtime/application-backend-env.contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAN,IAAY,iCASX;AATD,WAAY,iCAAiC;IAC3C,sEAAiC,CAAA;IACjC,kEAA6B,CAAA;IAC7B,wFAAmD,CAAA;IACnD,oIAAoI;IACpI,0FAAqD,CAAA;IACrD,gHAA2E,CAAA;IAC3E,4FAAuD,CAAA;IACvD,wEAAmC,CAAA;AACrC,CAAC,EATW,iCAAiC,KAAjC,iCAAiC,QAS5C;AAED,MAAM,CAAN,IAAY,mCAGX;AAHD,WAAY,mCAAmC;IAC7C,sHAA+E,CAAA;IAC/E,oGAA6D,CAAA;AAC/D,CAAC,EAHW,mCAAmC,KAAnC,mCAAmC,QAG9C;AAED,MAAM,CAAN,IAAY,+BAIX;AAJD,WAAY,+BAA+B;IACzC,kGAA+D,CAAA;IAC/D,8IAA8I;IAC9I,wGAAqE,CAAA;AACvE,CAAC,EAJW,+BAA+B,KAA/B,+BAA+B,QAI1C;AAED,MAAM,CAAN,IAAY,4BA6IX;AA7ID,WAAY,4BAA4B;IACtC;;;;;;;;;;;OAWG;IACH,qFAAqD,CAAA;IACrD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,yEAAyC,CAAA;IACzC,6DAA6B,CAAA;IAC7B,qEAAqC,CAAA;IACrC,qEAAqC,CAAA;IACrC,uFAAuD,CAAA;IACvD;;;;;;;OAOG;IACH,mEAAmC,CAAA;IACnC,mEAAmC,CAAA;IACnC,2EAA2C,CAAA;IAC3C,2EAA2C,CAAA;IAC3C,yDAAyB,CAAA;IACzB,yDAAyB,CAAA;IACzB;;;;OAIG;IACH,iEAAiC,CAAA;IACjC;;;;;;;;;;;;OAYG;IACH,qEAAqC,CAAA;IACrC,+DAA+B,CAAA;IAC/B,+DAA+B,CAAA;IAC/B;;;;;;;;OAQG;IACH,iEAAiC,CAAA;IACjC,qEAAqC,CAAA;IACrC;;;;;;;;;;;;;;OAcG;IACH,qEAAqC,CAAA;IACrC,6DAA6B,CAAA;IAC7B,mEAAmC,CAAA;IACnC,iEAAiC,CAAA;IACjC;;;;;;;;;;;OAWG;IACH,+EAA+C,CAAA;IAC/C,8EAA8E;IAC9E,2CAA2C;IAC3C,EAAE;IACF,4EAA4E;IAC5E,+EAA+E;IAC/E,+EAA+E;IAC/E,gFAAgF;IAChF,mEAAmE;IACnE,EAAE;IACF,gFAAgF;IAChF,gFAAgF;IAChF,8EAA8E;IAC9E,sEAAsE;IACtE,iFAAiD,CAAA;IACjD,2DAA2B,CAAA;IAC3B,2DAA2B,CAAA;IAC3B,6DAA6B,CAAA;IAC7B,uDAAuB,CAAA;IACvB,uDAAuB,CAAA;AACzB,CAAC,EA7IW,4BAA4B,KAA5B,4BAA4B,QA6IvC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,iCAAiC,CAAC;AACpF,MAAM,CAAC,MAAM,oCAAoC,GAAG,mCAAmC,CAAC;AACxF,MAAM,CAAC,MAAM,gCAAgC,GAAG,+BAA+B,CAAC;AAChF,MAAM,CAAC,MAAM,6BAA6B,GAAG,4BAA4B,CAAC;AAE1E,MAAM,CAAC,MAAM,0CAA0C,GAAG;IACxD,iCAAiC,CAAC,cAAc;IAChD,iCAAiC,CAAC,YAAY;IAC9C,iCAAiC,CAAC,uBAAuB;IACzD,iCAAiC,CAAC,wBAAwB;IAC1D,iCAAiC,CAAC,mCAAmC;IACrE,iCAAiC,CAAC,yBAAyB;IAC3D,iCAAiC,CAAC,eAAe;CACzC,CAAC;AAEX,MAAM,CAAC,MAAM,6CAA6C,GAAG;IAC3D,mCAAmC,CAAC,qCAAqC;IACzE,mCAAmC,CAAC,4BAA4B;CACxD,CAAC;AAEX,MAAM,CAAC,MAAM,wCAAwC,GAAG;IACtD,+BAA+B,CAAC,6BAA6B;IAC7D,+BAA+B,CAAC,gCAAgC;CACxD,CAAC;AAEX,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACnD,4BAA4B,CAAC,wBAAwB;IACrD,4BAA4B,CAAC,kBAAkB;IAC/C,4BAA4B,CAAC,YAAY;IACzC,4BAA4B,CAAC,gBAAgB;IAC7C,4BAA4B,CAAC,gBAAgB;IAC7C,4BAA4B,CAAC,yBAAyB;IACtD,4BAA4B,CAAC,eAAe;IAC5C,4BAA4B,CAAC,eAAe;IAC5C,4BAA4B,CAAC,mBAAmB;IAChD,4BAA4B,CAAC,mBAAmB;IAChD,4BAA4B,CAAC,UAAU;IACvC,4BAA4B,CAAC,UAAU;IACvC,4BAA4B,CAAC,cAAc;IAC3C,4BAA4B,CAAC,gBAAgB;IAC7C,4BAA4B,CAAC,aAAa;IAC1C,4BAA4B,CAAC,aAAa;IAC1C,4BAA4B,CAAC,cAAc;IAC3C,4BAA4B,CAAC,gBAAgB;IAC7C,4BAA4B,CAAC,gBAAgB;IAC7C,4BAA4B,CAAC,YAAY;IACzC,4BAA4B,CAAC,eAAe;IAC5C,4BAA4B,CAAC,cAAc;IAC3C,4BAA4B,CAAC,qBAAqB;IAClD,4BAA4B,CAAC,sBAAsB;IACnD,4BAA4B,CAAC,WAAW;IACxC,4BAA4B,CAAC,WAAW;IACxC,4BAA4B,CAAC,YAAY;IACzC,4BAA4B,CAAC,SAAS;IACtC,4BAA4B,CAAC,SAAS;CAC9B,CAAC;AAEX,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,GAAG,0CAA0C;IAC7C,GAAG,6CAA6C;IAChD,GAAG,wCAAwC;IAC3C,GAAG,qCAAqC;CAChC,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,IAAI,GAAG,CAAS;IACpE,iCAAiC,CAAC,mCAAmC;IACrE,yEAAyE;IACzE,2EAA2E;IAC3E,kDAAkD;CACnD,CAAC,CAAC;AAKH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,eAAe,CAAC;AAC3D,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,UAAkB;IAC1D,OAAO,UAAU;SACd,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,uCAAuC;SAC9E,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,qCAAqC;SACpE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,mBAAmB;SACvC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,aAAa;SACnC,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,OAAO,GAAG,2BAA2B,GAAG,yBAAyB,CAAC,UAAU,CAAC,GAAG,2BAA2B,EAAE,CAAC;AAChH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,4BAA4B,CAAC,GAAW;IACtD,OAAO,GAAG;SACP,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,mCAAmC;SAC1E,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,+CAA+C;SAC3E,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,gCAAgC;AAC9D,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,UAAkB;IACxE,OAAO,GAAG,OAAO,WAAW,4BAA4B,CAAC,UAAU,CAAC,EAAE,CAAC;AACzE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,UAAkB;IACxE,OAAO,GAAG,OAAO,WAAW,4BAA4B,CAAC,UAAU,CAAC,EAAE,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,UAAkB,EAAE,IAAY;IACtF,OAAO,UAAU,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,oBAAoB,IAAI,EAAE,CAAC;AACpC,CAAC","sourcesContent":["/**\n * Shared environment contract for application backend processes.\n *\n * This is the canonical vocabulary for the app-backend `.env` surface emitted\n * by the CLI and parsed by backend runtimes. Keep the keys here purely\n * declarative: they describe names and ownership, not executor-specific\n * behavior.\n */\n\nexport enum ApplicationBackendBootstrapEnvKey {\n APPLICATION_ID = 'APPLICATION_ID',\n SERVICE_NAME = 'SERVICE_NAME',\n PLATFORM_ENVIRONMENT_ID = 'PLATFORM_ENVIRONMENT_ID',\n /** Deployment topology authority (`local` or `remote`), distinct from APPLICATION_ENV behavior mode and from the environment id. */\n DEPLOYMENT_LOCATION_TYPE = 'DEPLOYMENT_LOCATION_TYPE',\n PLATFORM_APPLICATION_PRIMARY_SECRET = 'PLATFORM_APPLICATION_PRIMARY_SECRET',\n PLATFORM_APPS_MANAGER_URL = 'PLATFORM_APPS_MANAGER_URL',\n APPLICATION_ENV = 'APPLICATION_ENV',\n}\n\nexport enum ApplicationBackendPlatformUrlEnvKey {\n PLATFORM_CRONTABS_BATCHES_MANAGER_URL = 'PLATFORM_CRONTABS_BATCHES_MANAGER_URL',\n PLATFORM_MODULE_REGISTRY_URL = 'PLATFORM_MODULE_REGISTRY_URL',\n}\n\nexport enum ApplicationBackendRuntimeEnvKey {\n APPLICATION_RUNTIME_ENDPOINTS = 'APPLICATION_RUNTIME_ENDPOINTS',\n /** Explicit app-owned filesystem handoff shared by a local backend and its companion. Absence means no filesystem transport is authorized. */\n APPLICATION_RUNTIME_SIGNALS_HOME = 'APPLICATION_RUNTIME_SIGNALS_HOME',\n}\n\nexport enum ApplicationBackendDataEnvKey {\n /**\n * Which persistence adapter the application's resources use.\n *\n * DECLARED, not derived. Until this existed the config loader hard-coded MONGODB, so no\n * environment, secret or bootstrap value could select PostgreSQL — the adapter was reachable only\n * by a test that reached into the config object directly, which is why no application had ever\n * booted on it. Deriving it instead (\"PostgreSQL keys are present, so use PostgreSQL\") was\n * rejected: which store an application persists to is a deployment decision that must be legible\n * in one place, not an emergent property of which variables happen to be set.\n *\n * Absent means MONGODB, so every existing deployment is unaffected.\n */\n DATABASE_DEFAULT_ADAPTER = 'DATABASE_DEFAULT_ADAPTER',\n /**\n * The format NEW resource identifiers are minted in — `object-id` or `uuid`.\n *\n * DECLARED, and specifically NOT derived from {@link DATABASE_DEFAULT_ADAPTER}. The engine used to\n * derive it (MongoDB implied `OBJECT_ID`, PostgreSQL implied `UUID`), which made an application's\n * identity format a side effect of where its rows happen to live: moving a resource between\n * adapters silently changed the shape of every id it minted AND made every id it had already\n * minted fail `validateForResource`. Identity reaches URLs, exports, external references and\n * integrations, so it is an application-level decision that must outlive a storage decision.\n *\n * It needed an env key for the same reason the adapter did. The loader hard-coded\n * `ResourceIdFormat.OBJECT_ID`, so the value was legible nowhere and changeable by nobody: an\n * application could select PostgreSQL and still had no supported way to STATE its identity format,\n * which left the engine's \"declared, never derived\" rule true in the schema and unreachable in\n * practice.\n *\n * Absent means `OBJECT_ID` — what every existing application already mints — so no deployment\n * changes behaviour by adding this key to the contract.\n *\n * One deployment constraint travels with it: on PostgreSQL the `_id` COLUMN must be able to hold\n * the declared format. DDL rendered from the schema plan types it `text`, which is correct for\n * either member; a hand-written `_id uuid` column restricts the application to `UUID` and rejects\n * an `OBJECT_ID` outright.\n */\n RESOURCE_ID_FORMAT = 'RESOURCE_ID_FORMAT',\n MONGODB_HOST = 'MONGODB_HOST',\n MONGODB_DATABASE = 'MONGODB_DATABASE',\n MONGODB_PROTOCOL = 'MONGODB_PROTOCOL',\n MONGODB_DIRECT_CONNECTION = 'MONGODB_DIRECT_CONNECTION',\n /**\n * PostgreSQL TOPOLOGY only — host, port, database, ssl.\n *\n * CREDENTIALS are deliberately NOT here. They arrive through\n * `secrets.database.postgresql`, exactly as MongoDB's do: env carries where the database is,\n * secrets carry who may open it. Putting a password in an env contract would make it readable\n * from every process listing and every container inspect.\n */\n POSTGRESQL_HOST = 'POSTGRESQL_HOST',\n POSTGRESQL_PORT = 'POSTGRESQL_PORT',\n POSTGRESQL_DATABASE = 'POSTGRESQL_DATABASE',\n POSTGRESQL_SSL_MODE = 'POSTGRESQL_SSL_MODE',\n REDIS_HOST = 'REDIS_HOST',\n REDIS_PORT = 'REDIS_PORT',\n /**\n * Optional Redis logical database index (0–15). Emitted only when the\n * author sets `backingServices.redis.database` in `wildo.infra.<env>.config.ts`.\n * Consumers default to DB 0 when this var is missing.\n */\n REDIS_DATABASE = 'REDIS_DATABASE',\n /**\n * Canonical app-level Redis key namespace. Emitted only when the author\n * sets `dataServices.redis.keyPrefix` in `wildo.saas.config.ts` (Slice 3.6).\n * `RedisService` uses this as the `appPrefix` for all keys it writes — every\n * key becomes `${REDIS_KEY_PREFIX}org:${orgId}:${key}` or\n * `${REDIS_KEY_PREFIX}global:${key}`. When unset, the app-level prefix\n * stays empty (multi-tenant isolation falls back to the\n * `org:`/`global:` segment alone).\n *\n * REPLACE semantics: this supersedes the legacy\n * `secrets.database.redis.username`-derived prefix (Slice 3.6 audit\n * decision — single source of truth = `wildo.saas.config.dataServices`).\n */\n REDIS_KEY_PREFIX = 'REDIS_KEY_PREFIX',\n RABBITMQ_HOST = 'RABBITMQ_HOST',\n RABBITMQ_PORT = 'RABBITMQ_PORT',\n /**\n * Optional RabbitMQ virtual host. Emitted only when the author sets\n * `backingServices.rabbitmq.vhost` in `wildo.infra.<env>.config.ts`.\n * Consumers default to `/` (the RabbitMQ root vhost) when missing.\n *\n * Note (Slice 3.6 audit): the symmetric saas-side field\n * `dataServices.rabbitmq.vhost` was DELETED. Vhost is an\n * infra/topology concern with a single authoring seam (infra config).\n */\n RABBITMQ_VHOST = 'RABBITMQ_VHOST',\n STORAGE_PROVIDER = 'STORAGE_PROVIDER',\n /**\n * S3-compatible endpoint **hostname** (NOT a URL). The variable name\n * pre-dates the convention pin and is intentionally kept stable for\n * backward compatibility with deployed manifests, but the value is\n * always a bare host (`minio`, `s3.amazonaws.com`, `127.0.0.1`) — the\n * `STORAGE_PORT` and `STORAGE_USE_SSL` siblings are what compose the\n * full `https?://host:port` URL at the SDK initialization site.\n *\n * Slice 3.2 audit (L-4): authoring an explicit URL here (`http://...`)\n * silently breaks the `host:port` contract downstream because the SDK\n * concatenates the parts naively. If a future migration wants to flip\n * the contract to a URL, rename the env key (`STORAGE_URL`) rather\n * than overloading this one — the rename surfaces the breaking change\n * to operators.\n */\n STORAGE_ENDPOINT = 'STORAGE_ENDPOINT',\n STORAGE_PORT = 'STORAGE_PORT',\n STORAGE_USE_SSL = 'STORAGE_USE_SSL',\n STORAGE_BUCKET = 'STORAGE_BUCKET',\n /**\n * Optional app-level object-key namespace prefix prepended to every\n * application file path produced by `WildoManagedStorageProvider`\n * (Slice 3.6). Final key shape becomes\n * `${STORAGE_BUCKET_PREFIX}/applications/${applicationId}/files/${fileId}`\n * (extra segment above the existing `applicationId`-based namespace).\n *\n * Emitted only when the author sets `dataServices.s3.bucketPrefix` in\n * `wildo.saas.config.ts`. The actual MinIO bucket name (`STORAGE_BUCKET`)\n * remains infra-controlled and is unaffected by this prefix — N apps\n * can share one bucket while keeping their object trees disjoint.\n */\n STORAGE_BUCKET_PREFIX = 'STORAGE_BUCKET_PREFIX',\n // ⚠️ `STORAGE_ACCESS_KEY` / `STORAGE_SECRET_KEY` are deliberately ABSENT from\n // this contract, and must not be re-added.\n //\n // They carried the object store's ROOT credential — the same pair the MinIO\n // container itself is created with — into every application, minion and worker\n // environment. An application now obtains short-lived, prefix-confined session\n // credentials from apps-manager instead (`createStsStorageCredentialResolver`),\n // so there is no application-tier storage credential to name here.\n //\n // Re-adding them would not merely restore a variable: this enum is the DECLARED\n // app-backend env surface, so a key here is an invitation for a builder to fill\n // it. `assertNoStorageSecretInGeneratedEnv` fails the build if one ever does.\n // See `.claude/plans/object-storage-root-credential-distribution.md`.\n STORAGE_LOCAL_BASE_DIR = 'STORAGE_LOCAL_BASE_DIR',\n CLAMAV_HOST = 'CLAMAV_HOST',\n CLAMAV_PORT = 'CLAMAV_PORT',\n YARA_ENABLED = 'YARA_ENABLED',\n YARA_HOST = 'YARA_HOST',\n YARA_PORT = 'YARA_PORT',\n}\n\n/**\n * Keep the plural `*Keys` aliases so current consumers keep reading naturally,\n * while the actual source of truth is the scoped enum definition above.\n */\nexport const ApplicationBackendBootstrapEnvKeys = ApplicationBackendBootstrapEnvKey;\nexport const ApplicationBackendPlatformUrlEnvKeys = ApplicationBackendPlatformUrlEnvKey;\nexport const ApplicationBackendRuntimeEnvKeys = ApplicationBackendRuntimeEnvKey;\nexport const ApplicationBackendDataEnvKeys = ApplicationBackendDataEnvKey;\n\nexport const APPLICATION_BACKEND_BOOTSTRAP_ENV_KEY_LIST = [\n ApplicationBackendBootstrapEnvKey.APPLICATION_ID,\n ApplicationBackendBootstrapEnvKey.SERVICE_NAME,\n ApplicationBackendBootstrapEnvKey.PLATFORM_ENVIRONMENT_ID,\n ApplicationBackendBootstrapEnvKey.DEPLOYMENT_LOCATION_TYPE,\n ApplicationBackendBootstrapEnvKey.PLATFORM_APPLICATION_PRIMARY_SECRET,\n ApplicationBackendBootstrapEnvKey.PLATFORM_APPS_MANAGER_URL,\n ApplicationBackendBootstrapEnvKey.APPLICATION_ENV,\n] as const;\n\nexport const APPLICATION_BACKEND_PLATFORM_URL_ENV_KEY_LIST = [\n ApplicationBackendPlatformUrlEnvKey.PLATFORM_CRONTABS_BATCHES_MANAGER_URL,\n ApplicationBackendPlatformUrlEnvKey.PLATFORM_MODULE_REGISTRY_URL,\n] as const;\n\nexport const APPLICATION_BACKEND_RUNTIME_ENV_KEY_LIST = [\n ApplicationBackendRuntimeEnvKey.APPLICATION_RUNTIME_ENDPOINTS,\n ApplicationBackendRuntimeEnvKey.APPLICATION_RUNTIME_SIGNALS_HOME,\n] as const;\n\nexport const APPLICATION_BACKEND_DATA_ENV_KEY_LIST = [\n ApplicationBackendDataEnvKey.DATABASE_DEFAULT_ADAPTER,\n ApplicationBackendDataEnvKey.RESOURCE_ID_FORMAT,\n ApplicationBackendDataEnvKey.MONGODB_HOST,\n ApplicationBackendDataEnvKey.MONGODB_DATABASE,\n ApplicationBackendDataEnvKey.MONGODB_PROTOCOL,\n ApplicationBackendDataEnvKey.MONGODB_DIRECT_CONNECTION,\n ApplicationBackendDataEnvKey.POSTGRESQL_HOST,\n ApplicationBackendDataEnvKey.POSTGRESQL_PORT,\n ApplicationBackendDataEnvKey.POSTGRESQL_DATABASE,\n ApplicationBackendDataEnvKey.POSTGRESQL_SSL_MODE,\n ApplicationBackendDataEnvKey.REDIS_HOST,\n ApplicationBackendDataEnvKey.REDIS_PORT,\n ApplicationBackendDataEnvKey.REDIS_DATABASE,\n ApplicationBackendDataEnvKey.REDIS_KEY_PREFIX,\n ApplicationBackendDataEnvKey.RABBITMQ_HOST,\n ApplicationBackendDataEnvKey.RABBITMQ_PORT,\n ApplicationBackendDataEnvKey.RABBITMQ_VHOST,\n ApplicationBackendDataEnvKey.STORAGE_PROVIDER,\n ApplicationBackendDataEnvKey.STORAGE_ENDPOINT,\n ApplicationBackendDataEnvKey.STORAGE_PORT,\n ApplicationBackendDataEnvKey.STORAGE_USE_SSL,\n ApplicationBackendDataEnvKey.STORAGE_BUCKET,\n ApplicationBackendDataEnvKey.STORAGE_BUCKET_PREFIX,\n ApplicationBackendDataEnvKey.STORAGE_LOCAL_BASE_DIR,\n ApplicationBackendDataEnvKey.CLAMAV_HOST,\n ApplicationBackendDataEnvKey.CLAMAV_PORT,\n ApplicationBackendDataEnvKey.YARA_ENABLED,\n ApplicationBackendDataEnvKey.YARA_HOST,\n ApplicationBackendDataEnvKey.YARA_PORT,\n] as const;\n\nexport const APPLICATION_BACKEND_ENV_KEY_LIST = [\n ...APPLICATION_BACKEND_BOOTSTRAP_ENV_KEY_LIST,\n ...APPLICATION_BACKEND_PLATFORM_URL_ENV_KEY_LIST,\n ...APPLICATION_BACKEND_RUNTIME_ENV_KEY_LIST,\n ...APPLICATION_BACKEND_DATA_ENV_KEY_LIST,\n] as const;\n\n/**\n * Keys that must always be treated as secrets when this app-backend env surface\n * is materialized into logs, CI artifacts, or deployment manifests.\n */\nexport const APPLICATION_BACKEND_SENSITIVE_ENV_KEYS = new Set<string>([\n ApplicationBackendBootstrapEnvKey.PLATFORM_APPLICATION_PRIMARY_SECRET,\n // The storage pair is gone rather than listed: an app-tier env no longer\n // carries an object-storage credential at all, so there is nothing here to\n // mark sensitive. See the note on the enum above.\n]);\n\nexport type ApplicationBackendEnvKey =\n typeof APPLICATION_BACKEND_ENV_KEY_LIST[number];\n\n/**\n * ────────────────────────────────────────────────────────────────────────\n * Backend → worker dispatch contract (G-8 / MW4)\n * ────────────────────────────────────────────────────────────────────────\n * A declared worker's HTTP base URL is injected into the app-backend env at\n * deploy time as `WILDO_WORKER_<NAME>_URL`. The `<NAME>` segment is DYNAMIC\n * (one per declared worker), so — unlike the static enums above — the key is a\n * HELPER, not a fixed member. Both the CLI EMIT side\n * (`PlatformEnvVarsBuilder.buildApplicationBackendEnv`) and the backend READ\n * side (`WorkerRemoteClientFactoryBackendService`) MUST derive the key + URL\n * through these single helpers so the two can never drift.\n */\nexport const WILDO_WORKER_URL_ENV_PREFIX = 'WILDO_WORKER_';\nexport const WILDO_WORKER_URL_ENV_SUFFIX = '_URL';\n\n/**\n * Normalize a worker identifier (the `wildo.saas.config.ts` bucket key —\n * camelCase or kebab-case, e.g. `myNodeWorker` / `my-node-worker`) into the\n * UPPER_SNAKE segment embedded inside `WILDO_WORKER_<NAME>_URL`. Both\n * `myNodeWorker` and `my-node-worker` normalize to `MY_NODE_WORKER`, so the env\n * key is stable regardless of the authoring style.\n */\nexport function normalizeWorkerEnvSegment(workerName: string): string {\n return workerName\n .replace(/([a-z0-9])([A-Z])/g, '$1_$2') // camelCase word boundary → underscore\n .replace(/[^A-Za-z0-9]+/g, '_') // kebab / space / other → underscore\n .replace(/_+/g, '_') // collapse repeats\n .replace(/^_|_$/g, '') // trim edges\n .toUpperCase();\n}\n\n/**\n * The `WILDO_WORKER_<NAME>_URL` env-var name for a declared worker. The single\n * source of truth for both emit (CLI) and read (backend factory).\n *\n * @example wildoWorkerUrlEnvKey('myNodeWorker') // 'WILDO_WORKER_MY_NODE_WORKER_URL'\n */\nexport function wildoWorkerUrlEnvKey(workerName: string): string {\n return `${WILDO_WORKER_URL_ENV_PREFIX}${normalizeWorkerEnvSegment(workerName)}${WILDO_WORKER_URL_ENV_SUFFIX}`;\n}\n\n/**\n * Normalize a service key (the `wildo.saas.config.ts` `minions`/`workers` bucket\n * key — authored camelCase or kebab, e.g. `marketingScrapper` / `my-rust-worker`)\n * into an RFC1123-valid DNS label segment: lowercase, `[a-z0-9-]` only, no\n * leading/trailing hyphen. `marketingScrapper` → `marketing-scrapper`,\n * `myNodeWorker` → `my-node-worker`.\n *\n * This is the DNS-NAME axis of a background runtime — the segment embedded in the\n * k8s object/Service name, the built container image ref, the compose service name,\n * and the worker dispatch URL host. It is DISTINCT from the IDENTITY axis (the raw\n * bucket key), which apps-manager keys on (`appConfig.workers[key]` /\n * `appConfig.minions[key]`) and which the worker stamps as `APP_OWNED_SERVICE_NAME`\n * / both runtimes carry as the `wildo.ai/owned-service-name` pod label — the\n * identity axis MUST stay raw and is NEVER passed through this helper. The\n * env-key axis (`WILDO_WORKER_<NAME>_URL`) has its own normalization,\n * {@link normalizeWorkerEnvSegment}, because an env-var name is UPPER_SNAKE, not a\n * DNS label.\n *\n * This helper does NOT truncate — a name too long for a DNS label (63 chars) is\n * REJECTED at authoring, not silently shortened (truncation risks colliding with\n * a sibling key). Returns `''` for all-symbol input. The authoring-time guard in\n * `define-saas-config.ts` fails fast on keys that normalize to empty, collide with\n * a sibling after normalization, or whose full `{slug}-{kind}-{name}` deploy name\n * exceeds 63 chars — so an empty / duplicate / over-long DNS name can never reach\n * the render.\n */\nexport function normalizeServiceKeyToDnsName(key: string): string {\n return key\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2') // camelCase word boundary → hyphen\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-') // any non-DNS char (kebab already ok) → hyphen\n .replace(/^-+|-+$/g, ''); // trim leading/trailing hyphens\n}\n\n/**\n * The k8s Service (and same-network compose service) name for a per-app worker:\n * `{appSlug}-worker-{dnsName}`, where `dnsName` is the bucket key normalized to an\n * RFC1123 label ({@link normalizeServiceKeyToDnsName}). Coherent-by-construction\n * with the CLI k8s render (`renderWorkerForTarget`), the compose render\n * (`deriveAppRuntimeServiceName`), the CI image build (`syncCicd`), and the worker\n * dispatch URL host ({@link buildWorkerInternalUrl}) — EVERY DNS-name site derives\n * the name through THIS helper (rather than inlining `{appSlug}-worker-{key}`), so\n * the backend calls the exact Service the render deploys and CI builds the exact\n * image ref the deploy pulls.\n *\n * `workerName` is the saas-config bucket key (NOT the per-folder `config.name`) —\n * passed raw; the normalization happens inside. The raw key remains the worker's\n * IDENTITY (apps-manager lookup + `APP_OWNED_SERVICE_NAME`), a separate axis that\n * is never derived from this function.\n */\nexport function buildWorkerServiceName(appSlug: string, workerName: string): string {\n return `${appSlug}-worker-${normalizeServiceKeyToDnsName(workerName)}`;\n}\n\n/**\n * The k8s Deployment (and same-network compose service) name for a per-app minion:\n * `{appSlug}-minion-{dnsName}`, where `dnsName` is the bucket key normalized to an\n * RFC1123 label ({@link normalizeServiceKeyToDnsName}). Symmetric with\n * {@link buildWorkerServiceName} — minions have no inbound Service / dispatch URL,\n * but the k8s render, the compose render, and the CI image build all need the\n * deploy name, and it must be RFC1123-valid for the same reasons. `minionName` is\n * the saas-config bucket key; the raw key stays the minion's IDENTITY (the\n * `wildo.ai/owned-service-name` pod label), never derived from here.\n */\nexport function buildMinionServiceName(appSlug: string, minionName: string): string {\n return `${appSlug}-minion-${normalizeServiceKeyToDnsName(minionName)}`;\n}\n\n/**\n * The in-cluster base URL the app-backend uses to reach a per-app worker\n * (`http://{appSlug}-worker-{workerName}:{port}`). The backend + its workers\n * deploy into the SAME namespace (per-app deploy), so the short Service name\n * resolves without a namespace qualifier. `port` is the worker's authored\n * `http.port` (schema default 8080).\n */\nexport function buildWorkerInternalUrl(appSlug: string, workerName: string, port: number): string {\n return `http://${buildWorkerServiceName(appSlug, workerName)}:${port}`;\n}\n\n/**\n * The base URL the app-backend uses to reach a per-app worker in LOCAL development.\n *\n * There is no k8s Service locally, so there is no name to resolve — the worker is a supervised\n * process listening on its authored `http.port` on the loopback interface, which is the same\n * convention every other local runtime address in this repository uses.\n *\n * ## Why this exists at all (#426)\n *\n * `buildApplicationWorkerDispatchUrls` used to return `undefined` for anything but REMOTE, on the\n * reasoning that \"local dev has no k8s Services, and worker dispatch is a k8s-deploy concern\". The\n * first half is still true and the second no longer is: local dev now STARTS the worker, so the\n * only thing missing was an address. Without one, `WorkerRemoteClientFactory.client()` fails closed\n * on the absent `WILDO_WORKER_<NAME>_URL` — which is why the whole backend-to-worker chain had\n * never been exercised by anyone, in a test or in the dev stack.\n *\n * Declared here, beside its in-cluster sibling and the env-key helper both sides derive, so the\n * emit side and the read side cannot drift apart for either deployment shape.\n */\nexport function buildWorkerLocalUrl(port: number): string {\n return `http://localhost:${port}`;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-topology.contracts.d.ts","sourceRoot":"","sources":["../../../../src/runtime/runtime-topology.contracts.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,oBAAY,uBAAuB;IACjC,qBAAqB,0BAA0B;IAC/C,iCAAiC,sCAAsC;IACvE,wBAAwB,6BAA6B;IACrD,qBAAqB,0BAA0B;IAC/C,QAAQ,aAAa;IACrB,aAAa,kBAAkB;CAChC;AAED;;;;;GAKG;AACH,oBAAY,0BAA0B;IACpC,qBAAqB,0BAAgD;IACrE,iCAAiC,sCAA4D;IAC7F,wBAAwB,6BAAmD;CAC5E;AAED,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,mBAAmB,CAAC;IACjC,sBAAsB,EAAE,mBAAmB,CAAC;IAC5C;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,6BAA6B,GACnC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CASrC;AAED,MAAM,WAAW,gCAAgC;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACvE,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC1C,sBAAsB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACzD,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,iBAAiB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACpD,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC1C;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,gCAAgC,GACtC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CA2BrC;AAED,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC7C,MAAM,CAER;AAED,wBAAgB,2BAA2B,CACzC,0BAA0B,EAAE,MAAM,GACjC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAsBrC"}
1
+ {"version":3,"file":"runtime-topology.contracts.d.ts","sourceRoot":"","sources":["../../../src/runtime/runtime-topology.contracts.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,oBAAY,uBAAuB;IACjC,qBAAqB,0BAA0B;IAC/C,iCAAiC,sCAAsC;IACvE,wBAAwB,6BAA6B;IACrD,qBAAqB,0BAA0B;IAC/C,QAAQ,aAAa;IACrB,aAAa,kBAAkB;CAChC;AAED;;;;;GAKG;AACH,oBAAY,0BAA0B;IACpC,qBAAqB,0BAAgD;IACrE,iCAAiC,sCAA4D;IAC7F,wBAAwB,6BAAmD;CAC5E;AAED,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,mBAAmB,CAAC;IACjC,sBAAsB,EAAE,mBAAmB,CAAC;IAC5C;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,6BAA6B,GACnC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CASrC;AAED,MAAM,WAAW,gCAAgC;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACvE,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC1C,sBAAsB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACzD,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,iBAAiB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACpD,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC1C;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,gCAAgC,GACtC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CA2BrC;AAED,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC7C,MAAM,CAER;AAED,wBAAgB,2BAA2B,CACzC,0BAA0B,EAAE,MAAM,GACjC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAsBrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"roles.custom.shared.definitions.d.ts","sourceRoot":"","sources":["../../../../../src/security/authorizations/roles.custom.shared.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAwB,MAAM,uBAAuB,CAAC;AAEjF,eAAO,MAAM,0BAA0B,EAAE,kBAExC,CAAC"}
1
+ {"version":3,"file":"roles.custom.shared.definitions.d.ts","sourceRoot":"","sources":["../../../../src/security/authorizations/roles.custom.shared.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAwB,MAAM,uBAAuB,CAAC;AAEjF,eAAO,MAAM,0BAA0B,EAAE,kBAExC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wildo-application-executions.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,EAGrB,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAY/B,KAAK,wCAAwC,GACzC,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,CAAC;AA2CjC;;;;GAIG;AACH,eAAO,MAAM,iFAAiF,GAC3F,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAwB7C,CAAC;AAEL,eAAO,MAAM,gFAAgF,GAC1F,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAwB7C,CAAC"}
1
+ {"version":3,"file":"wildo-application-executions.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../src/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,EAGrB,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAY/B,KAAK,wCAAwC,GACzC,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,CAAC;AA2CjC;;;;GAIG;AACH,eAAO,MAAM,iFAAiF,GAC3F,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAwB7C,CAAC;AAEL,eAAO,MAAM,gFAAgF,GAC1F,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAwB7C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wildo-application-executions.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/wildo-application-executions/wildo-application-executions.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAK/B;;;GAGG;AACH,eAAO,MAAM,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMzD,CAAC;AACH,MAAM,MAAM,uCAAuC,GACjD,CAAC,CAAC,KAAK,CAAC,OAAO,8CAA8C,CAAC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMxD,CAAC;AACH,MAAM,MAAM,sCAAsC,GAChD,CAAC,CAAC,KAAK,CAAC,OAAO,6CAA6C,CAAC,CAAC"}
1
+ {"version":3,"file":"wildo-application-executions.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/wildo-application-executions/wildo-application-executions.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAK/B;;;GAGG;AACH,eAAO,MAAM,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMzD,CAAC;AACH,MAAM,MAAM,uCAAuC,GACjD,CAAC,CAAC,KAAK,CAAC,OAAO,8CAA8C,CAAC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMxD,CAAC;AACH,MAAM,MAAM,sCAAsC,GAChD,CAAC,CAAC,KAAK,CAAC,OAAO,6CAA6C,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wildo-application-tasks.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,EAGrB,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAS/B,KAAK,yCAAyC,GAC1C,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,CAAC;AA2CjC;;;;GAIG;AACH,eAAO,MAAM,sEAAsE,GAChF,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAwB7C,CAAC"}
1
+ {"version":3,"file":"wildo-application-tasks.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../src/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,EAGrB,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAS/B,KAAK,yCAAyC,GAC1C,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,CAAC;AA2CjC;;;;GAIG;AACH,eAAO,MAAM,sEAAsE,GAChF,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAwB7C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wildo-application-tasks.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAK/B;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuC9C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC"}
1
+ {"version":3,"file":"wildo-application-tasks.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAK/B;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuC9C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wildo-applications.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6BH,eAAO,MAAM,6DAA6D,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAuI9F,CAAC"}
1
+ {"version":3,"file":"wildo-applications.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../src/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6BH,eAAO,MAAM,6DAA6D,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAkJ9F,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Handles creation, updates, and management of billable items across invoices.
6
6
  */
7
7
  import { z } from 'zod';
8
- import { CoreResourceOperation, CORE_APP_ROLES } from '@wildo-ai/saas-models';
8
+ import { CoreResourceOperation, CORE_APP_ROLES, ResourceSystemAccessMode } from '@wildo-ai/saas-models';
9
9
  import { ResourceOperationVariantType, ResourceOperationRiskLevel } from '@wildo-ai/saas-models';
10
10
  import { CoreUserNotificationTarget, CoreUserNotificationChannel } from '@wildo-ai/saas-models';
11
11
  import { createResourceConfiguration_Initialization } from '@wildo-ai/saas-models';
@@ -16,6 +16,17 @@ const WildoApplications_Operations = undefined;
16
16
  export const wildoApplications_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
17
17
  mainSchema: Wildo_Application_Schema,
18
18
  resourceIdentifier: CustomShared_ResourceType.WILDO_APPLICATION,
19
+ /**
20
+ * A subject export never includes this row: it is a managed application's platform record (slug, status, topology) — infrastructure identity, no person.
21
+ *
22
+ * Answered explicitly because the privacy gate at boot asks every resource whether its rows
23
+ * are about people. The unauthored default is already FORBIDDEN; writing it down is what turns
24
+ * "nobody asked" into "no". Not `retentionPolicy: RETAIN_ONLY`, although it is the same claim:
25
+ * that opt-in injects the `retentionStatus` / `impersonalizedAt` marker columns and demands the
26
+ * retention write door (UPDATE_MANY) on a resource no erasure walk can reach — there is no
27
+ * USERS edge — which is schema and surface for a path that never runs.
28
+ */
29
+ systemAccessPolicy: { exportSubject: ResourceSystemAccessMode.FORBIDDEN },
19
30
  /**
20
31
  * BOOTSTRAP-STORE pin RETIRED 2026-08-22 (item C). This resource now follows the platform's
21
32
  * configured engine like every other platform resource, instead of declaring MONGODB.
@@ -1 +1 @@
1
- {"version":3,"file":"wildo-applications.custom.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../src/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAsC,qBAAqB,EAA0C,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1J,OAAO,EAAwB,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACvH,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,0CAA0C,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EACL,yBAAyB,EACzB,oCAAoC,EACrC,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAGtF,MAAM,4BAA4B,GAAG,SAAS,CAAC;AAU/C,MAAM,CAAC,MAAM,6DAA6D,GAA6B,CAAC,sBAA8C,EAAE,EAAE,CAAC,0CAA0C,CAInM;IACA,UAAU,EAAE,wBAAwB;IACpC,kBAAkB,EAAE,yBAAyB,CAAC,iBAAiB;IAC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,uBAAuB,EAAE,oCAAoC,CAAC,yBAAyB,CAAC,iBAAiB,CAAC;IAC1G,qBAAqB,EAAE,sBAAsB;IAC7C,gBAAgB,EAAE,KAAK;IAEvB,cAAc,EAAE;QACd,qBAAqB,CAAC,IAAI;QAC1B,qBAAqB,CAAC,IAAI;QAC1B,qBAAqB,CAAC,MAAM;QAC5B,qBAAqB,CAAC,MAAM;QAC5B,qBAAqB,CAAC,MAAM;QAC5B,qBAAqB,CAAC,MAAM;KAC7B;IAED,eAAe,EAAE,4BAA4B;IAE7C,uBAAuB,EAAE;QACvB,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC9B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,qBAAqB,CAAC;oBAC7C,SAAS,EAAE,0BAA0B,CAAC,IAAI;oBAC1C,0CAA0C;iBAC3C;aACF;YACD,iBAAiB,EAAE;gBACjB;oBACE,MAAM,EAAE,0BAA0B,CAAC,SAAS;oBAC5C,OAAO,EAAE,2BAA2B,CAAC,iBAAiB;iBACvD;aACF;SACF;QAED,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC5B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;oBAClC,SAAS,EAAE,0BAA0B,CAAC,GAAG;iBAC1C;aACF;SACF;QAED,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC5B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;oBAClC,SAAS,EAAE,0BAA0B,CAAC,GAAG;iBAC1C;aACF;SACF;QAED,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC9B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,qBAAqB,CAAC;oBAC7C,SAAS,EAAE,0BAA0B,CAAC,GAAG;oBACzC,YAAY,EAAE,IAAI;oBAClB,gBAAgB,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;oBAC/C,iBAAiB,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;oBACjE,YAAY,EAAE;wBACZ,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;qBAC3B;oBACD,UAAU,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,CAAU;oBAC5E,8BAA8B,EAAE,GAAG;iBACpC;aACF;SACF;QAED,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC9B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC;oBACnC,SAAS,EAAE,0BAA0B,CAAC,GAAG;oBACzC,0CAA0C;iBAC3C;aACF;SACF;QAED,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC9B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;oBAClC,SAAS,EAAE,0BAA0B,CAAC,GAAG;iBAC1C;aACF;SACF;KACF;IACD,iEAAiE;CAClE,CAAC,CAAC","sourcesContent":["/**\n * Billable Items Shared Resource Configuration\n * \n * Resource configuration for managing invoice line items and billable entries.\n * Handles creation, updates, and management of billable items across invoices.\n */\n\nimport { z } from 'zod';\n\n\nimport { coreResourceShared_FieldIdentifier, CoreResourceOperation, CoreResourceType, ResourceRelationship, CORE_APP_ROLES } from '@wildo-ai/saas-models';\nimport { ResourcePrimaryScope, ResourceOperationVariantType, ResourceOperationRiskLevel } from '@wildo-ai/saas-models';\nimport { CoreUserNotificationTarget, CoreUserNotificationChannel } from '@wildo-ai/saas-models';\nimport { createResourceConfiguration_Initialization } from '@wildo-ai/saas-models';\nimport { CORE_ORG_ROLES } from '@wildo-ai/saas-models';\n\n\nimport {\n CustomShared_ResourceType,\n CustomShared_ResourceFieldIdentifier\n} from '../core/resources/resources-types.custom.shared.schemas';\nimport { Wildo_Application_Schema } from './wildo-applications.custom.shared.schemas';\n\n\nconst WildoApplications_Operations = undefined; \n\ntype WildoApplications_CoreOperations = \n | CoreResourceOperation.READ \n | CoreResourceOperation.LIST\n | CoreResourceOperation.SEARCH\n | CoreResourceOperation.CREATE\n | CoreResourceOperation.UPDATE\n | CoreResourceOperation.DELETE;\n\nexport const wildoApplications_ResourceConfiguration_InitializationFactory: (...args: any[]) => any = (resourcesRelationships: ResourceRelationship[]) => createResourceConfiguration_Initialization<\n typeof WildoApplications_Operations,\n WildoApplications_CoreOperations,\n typeof Wildo_Application_Schema\n>({\n mainSchema: Wildo_Application_Schema,\n resourceIdentifier: CustomShared_ResourceType.WILDO_APPLICATION,\n /**\n * BOOTSTRAP-STORE pin RETIRED 2026-08-22 (item C). This resource now follows the platform's\n * configured engine like every other platform resource, instead of declaring MONGODB.\n *\n * The pin existed because this document was WRITTEN by a Mongo-wired plane an adapter override\n * could never redirect, so a PG-engined platform would READ it from PostgreSQL while the\n * bootstrap plane kept WRITING it to MongoDB. Its own contract named the two conditions that\n * would free it, and BOTH are now met — verified rather than assumed:\n *\n * 1. **The infra-manager's raw writers are ported.** `pnpm check:platform-bootstrap-raw-store`\n * inspects 49 files and reports no undeclared raw-driver access; its `--self-test` passes 14\n * cases, so the clean result is the checker working rather than a checker matching nothing.\n * The 8 remaining DECLARED exemptions all sit in the bootstrap seed, and they write\n * `organizations` and `applications` — neither of which is one of these six — through arms\n * that are already adapter-aware.\n * 2. **INIT's repository plane resolves the platform engine.** Phase 2.5\n * (`initializePlatformPostgresIfDeclared`, which calls\n * `setPlatformModeDefaultPersistenceAdapter`) runs BEFORE Phase 2.6 builds the registries —\n * an ordering the file marks as the one constraint that cannot be relaxed.\n *\n * Retired for all SIX declarations in one change, as the pin instructed (\"Never migrate one\n * declaration on its own\"): a partial retirement is precisely the split-brain the pin prevented.\n * `bootstrap-plane-persistence-adapter.test.ts` now asserts the inverse — that none of the six\n * declares an adapter — so re-pinning any single one fails the suite.\n *\n * NOTE the data consequence, which the pin never covered: flipping the engine does not MOVE\n * existing rows. A platform whose documents live in MongoDB must have them re-provisioned (or\n * migrated) into PostgreSQL, or it reads empty tables. See item G.\n */\n resourceFieldIdentifier: CustomShared_ResourceFieldIdentifier[CustomShared_ResourceType.WILDO_APPLICATION],\n resourceRelationships: resourcesRelationships,\n isSystemResource: false,\n \n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.SEARCH,\n CoreResourceOperation.CREATE,\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.DELETE\n ],\n \n customOperation: WildoApplications_Operations,\n \n operationsConfiguration: {\n [CoreResourceOperation.CREATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n riskLevel: ResourceOperationRiskLevel.HIGH,\n // requestDto auto-derived from decorators\n }\n ],\n userNotifications: [\n {\n target: CoreUserNotificationTarget.USER_SELF,\n channel: CoreUserNotificationChannel.FRONT_END_SUCCESS,\n }\n ]\n },\n \n [CoreResourceOperation.READ]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }\n ]\n },\n \n [CoreResourceOperation.LIST]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }\n ]\n },\n\n [CoreResourceOperation.SEARCH]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n riskLevel: ResourceOperationRiskLevel.LOW,\n isSearchable: true,\n searchableFields: ['appSlug', 'organizationId'],\n searchableOptions: { caseSensitive: false, fullMatchOnly: false },\n filterFields: {\n organizationId: z.string(),\n },\n sortFields: ['appSlug', 'organizationId', 'createdAt', 'updatedAt'] as const,\n maxPaginatedResultPerPageLimit: 100,\n }\n ],\n },\n \n [CoreResourceOperation.UPDATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MANAGER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n // requestDto auto-derived from decorators\n }\n ]\n },\n \n [CoreResourceOperation.DELETE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }\n ]\n },\n },\n // responseSummaryDto auto-derived from isSummaryField decorators\n}); "]}
1
+ {"version":3,"file":"wildo-applications.custom.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../src/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Billable Items Shared Resource Configuration\n * \n * Resource configuration for managing invoice line items and billable entries.\n * Handles creation, updates, and management of billable items across invoices.\n */\n\nimport { z } from 'zod';\n\n\nimport { coreResourceShared_FieldIdentifier, CoreResourceOperation, CoreResourceType, ResourceRelationship, CORE_APP_ROLES, ResourceSystemAccessMode } from '@wildo-ai/saas-models';\nimport { ResourcePrimaryScope, ResourceOperationVariantType, ResourceOperationRiskLevel } from '@wildo-ai/saas-models';\nimport { CoreUserNotificationTarget, CoreUserNotificationChannel } from '@wildo-ai/saas-models';\nimport { createResourceConfiguration_Initialization } from '@wildo-ai/saas-models';\nimport { CORE_ORG_ROLES } from '@wildo-ai/saas-models';\n\n\nimport {\n CustomShared_ResourceType,\n CustomShared_ResourceFieldIdentifier\n} from '../core/resources/resources-types.custom.shared.schemas';\nimport { Wildo_Application_Schema } from './wildo-applications.custom.shared.schemas';\n\n\nconst WildoApplications_Operations = undefined; \n\ntype WildoApplications_CoreOperations = \n | CoreResourceOperation.READ \n | CoreResourceOperation.LIST\n | CoreResourceOperation.SEARCH\n | CoreResourceOperation.CREATE\n | CoreResourceOperation.UPDATE\n | CoreResourceOperation.DELETE;\n\nexport const wildoApplications_ResourceConfiguration_InitializationFactory: (...args: any[]) => any = (resourcesRelationships: ResourceRelationship[]) => createResourceConfiguration_Initialization<\n typeof WildoApplications_Operations,\n WildoApplications_CoreOperations,\n typeof Wildo_Application_Schema\n>({\n mainSchema: Wildo_Application_Schema,\n resourceIdentifier: CustomShared_ResourceType.WILDO_APPLICATION,\n /**\n * A subject export never includes this row: it is a managed application's platform record (slug, status, topology) — infrastructure identity, no person.\n *\n * Answered explicitly because the privacy gate at boot asks every resource whether its rows\n * are about people. The unauthored default is already FORBIDDEN; writing it down is what turns\n * \"nobody asked\" into \"no\". Not `retentionPolicy: RETAIN_ONLY`, although it is the same claim:\n * that opt-in injects the `retentionStatus` / `impersonalizedAt` marker columns and demands the\n * retention write door (UPDATE_MANY) on a resource no erasure walk can reach — there is no\n * USERS edge — which is schema and surface for a path that never runs.\n */\n systemAccessPolicy: { exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n /**\n * BOOTSTRAP-STORE pin RETIRED 2026-08-22 (item C). This resource now follows the platform's\n * configured engine like every other platform resource, instead of declaring MONGODB.\n *\n * The pin existed because this document was WRITTEN by a Mongo-wired plane an adapter override\n * could never redirect, so a PG-engined platform would READ it from PostgreSQL while the\n * bootstrap plane kept WRITING it to MongoDB. Its own contract named the two conditions that\n * would free it, and BOTH are now met — verified rather than assumed:\n *\n * 1. **The infra-manager's raw writers are ported.** `pnpm check:platform-bootstrap-raw-store`\n * inspects 49 files and reports no undeclared raw-driver access; its `--self-test` passes 14\n * cases, so the clean result is the checker working rather than a checker matching nothing.\n * The 8 remaining DECLARED exemptions all sit in the bootstrap seed, and they write\n * `organizations` and `applications` — neither of which is one of these six — through arms\n * that are already adapter-aware.\n * 2. **INIT's repository plane resolves the platform engine.** Phase 2.5\n * (`initializePlatformPostgresIfDeclared`, which calls\n * `setPlatformModeDefaultPersistenceAdapter`) runs BEFORE Phase 2.6 builds the registries —\n * an ordering the file marks as the one constraint that cannot be relaxed.\n *\n * Retired for all SIX declarations in one change, as the pin instructed (\"Never migrate one\n * declaration on its own\"): a partial retirement is precisely the split-brain the pin prevented.\n * `bootstrap-plane-persistence-adapter.test.ts` now asserts the inverse — that none of the six\n * declares an adapter — so re-pinning any single one fails the suite.\n *\n * NOTE the data consequence, which the pin never covered: flipping the engine does not MOVE\n * existing rows. A platform whose documents live in MongoDB must have them re-provisioned (or\n * migrated) into PostgreSQL, or it reads empty tables. See item G.\n */\n resourceFieldIdentifier: CustomShared_ResourceFieldIdentifier[CustomShared_ResourceType.WILDO_APPLICATION],\n resourceRelationships: resourcesRelationships,\n isSystemResource: false,\n \n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.SEARCH,\n CoreResourceOperation.CREATE,\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.DELETE\n ],\n \n customOperation: WildoApplications_Operations,\n \n operationsConfiguration: {\n [CoreResourceOperation.CREATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n riskLevel: ResourceOperationRiskLevel.HIGH,\n // requestDto auto-derived from decorators\n }\n ],\n userNotifications: [\n {\n target: CoreUserNotificationTarget.USER_SELF,\n channel: CoreUserNotificationChannel.FRONT_END_SUCCESS,\n }\n ]\n },\n \n [CoreResourceOperation.READ]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }\n ]\n },\n \n [CoreResourceOperation.LIST]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }\n ]\n },\n\n [CoreResourceOperation.SEARCH]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n riskLevel: ResourceOperationRiskLevel.LOW,\n isSearchable: true,\n searchableFields: ['appSlug', 'organizationId'],\n searchableOptions: { caseSensitive: false, fullMatchOnly: false },\n filterFields: {\n organizationId: z.string(),\n },\n sortFields: ['appSlug', 'organizationId', 'createdAt', 'updatedAt'] as const,\n maxPaginatedResultPerPageLimit: 100,\n }\n ],\n },\n \n [CoreResourceOperation.UPDATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MANAGER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n // requestDto auto-derived from decorators\n }\n ]\n },\n \n [CoreResourceOperation.DELETE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }\n ]\n },\n },\n // responseSummaryDto auto-derived from isSummaryField decorators\n}); "]}
@@ -1 +1 @@
1
- {"version":3,"file":"wildo-applications.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/wildo-applications/wildo-applications.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,wBAAwB;;;;;;;;;iBAyCnC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"wildo-applications.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/wildo-applications/wildo-applications.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,wBAAwB;;;;;;;;;iBAyCnC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wildo-applications-versions.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,eAAO,MAAM,oEAAoE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GA6DrG,CAAC"}
1
+ {"version":3,"file":"wildo-applications-versions.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../src/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,eAAO,MAAM,oEAAoE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAwErG,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Resource configuration for managing invoice line items and billable entries.
5
5
  * Handles creation, updates, and management of billable items across invoices.
6
6
  */
7
- import { CoreResourceOperation, CORE_APP_ROLES } from '@wildo-ai/saas-models';
7
+ import { CoreResourceOperation, CORE_APP_ROLES, ResourceSystemAccessMode } from '@wildo-ai/saas-models';
8
8
  import { ResourceOperationVariantType, ResourceOperationRiskLevel } from '@wildo-ai/saas-models';
9
9
  import { CoreUserNotificationTarget, CoreUserNotificationChannel } from '@wildo-ai/saas-models';
10
10
  import { createResourceConfiguration_Initialization } from '@wildo-ai/saas-models';
@@ -15,6 +15,17 @@ const WildoApplicationVersions_Operations = undefined;
15
15
  export const wildoApplicationVersions_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
16
16
  mainSchema: Wildo_Application_Version_Schema,
17
17
  resourceIdentifier: CustomShared_ResourceType.WILDO_APPLICATION_VERSIONS,
18
+ /**
19
+ * A subject export never includes this row: it is a managed application's version record — a software artifact, no person.
20
+ *
21
+ * Answered explicitly because the privacy gate at boot asks every resource whether its rows
22
+ * are about people. The unauthored default is already FORBIDDEN; writing it down is what turns
23
+ * "nobody asked" into "no". Not `retentionPolicy: RETAIN_ONLY`, although it is the same claim:
24
+ * that opt-in injects the `retentionStatus` / `impersonalizedAt` marker columns and demands the
25
+ * retention write door (UPDATE_MANY) on a resource no erasure walk can reach — there is no
26
+ * USERS edge — which is schema and surface for a path that never runs.
27
+ */
28
+ systemAccessPolicy: { exportSubject: ResourceSystemAccessMode.FORBIDDEN },
18
29
  resourceFieldIdentifier: CustomShared_ResourceFieldIdentifier[CustomShared_ResourceType.WILDO_APPLICATION_VERSIONS],
19
30
  resourceRelationships: resourcesRelationships,
20
31
  isSystemResource: false,
@@ -1 +1 @@
1
- {"version":3,"file":"wildo-applications-versions.custom.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../src/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAsC,qBAAqB,EAA0C,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1J,OAAO,EAAwB,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACvH,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,0CAA0C,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EACL,yBAAyB,EACzB,oCAAoC,EACrC,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qDAAqD,CAAC;AAGvG,MAAM,mCAAmC,GAAG,SAAS,CAAC;AAOtD,MAAM,CAAC,MAAM,oEAAoE,GAA6B,CAAC,sBAA8C,EAAE,EAAE,CAAC,0CAA0C,CAI1M;IACA,UAAU,EAAE,gCAAgC;IAC5C,kBAAkB,EAAE,yBAAyB,CAAC,0BAA0B;IACxE,uBAAuB,EAAE,oCAAoC,CAAC,yBAAyB,CAAC,0BAA0B,CAAC;IACnH,qBAAqB,EAAE,sBAAsB;IAC7C,gBAAgB,EAAE,KAAK;IAEvB,cAAc,EAAE;QACd,qBAAqB,CAAC,IAAI;QAC1B,qBAAqB,CAAC,IAAI;QAC1B,qBAAqB,CAAC,MAAM;KAC7B;IAED,eAAe,EAAE,mCAAmC;IAEpD,uBAAuB,EAAE;QACvB,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC9B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,qBAAqB,CAAC;oBAC7C,SAAS,EAAE,0BAA0B,CAAC,IAAI;oBAC1C,0CAA0C;iBAC3C;aACF;YACD,iBAAiB,EAAE;gBACjB;oBACE,MAAM,EAAE,0BAA0B,CAAC,SAAS;oBAC5C,OAAO,EAAE,2BAA2B,CAAC,iBAAiB;iBACvD;aACF;SACF;QAED,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC5B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;oBAClC,SAAS,EAAE,0BAA0B,CAAC,GAAG;iBAC1C;aACF;SACF;QAED,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC5B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;oBAClC,SAAS,EAAE,0BAA0B,CAAC,GAAG;iBAC1C;aACF;SACF;KACF;IACD,iEAAiE;CAClE,CAAC,CAAC","sourcesContent":["/**\n * Billable Items Shared Resource Configuration\n * \n * Resource configuration for managing invoice line items and billable entries.\n * Handles creation, updates, and management of billable items across invoices.\n */\n\nimport { z } from 'zod';\n\nimport { coreResourceShared_FieldIdentifier, CoreResourceOperation, CoreResourceType, ResourceRelationship, CORE_APP_ROLES } from '@wildo-ai/saas-models';\nimport { ResourcePrimaryScope, ResourceOperationVariantType, ResourceOperationRiskLevel } from '@wildo-ai/saas-models';\nimport { CoreUserNotificationTarget, CoreUserNotificationChannel } from '@wildo-ai/saas-models';\nimport { createResourceConfiguration_Initialization } from '@wildo-ai/saas-models';\nimport { CORE_ORG_ROLES } from '@wildo-ai/saas-models';\n\nimport {\n CustomShared_ResourceType,\n CustomShared_ResourceFieldIdentifier\n} from '../core/resources/resources-types.custom.shared.schemas';\nimport { Wildo_Application_Version_Schema } from './wildo-applications-versions.custom.shared.schemas';\n\n\nconst WildoApplicationVersions_Operations = undefined; \n\ntype WildoApplicationVersions_CoreOperations = \n | CoreResourceOperation.READ \n | CoreResourceOperation.LIST\n | CoreResourceOperation.CREATE\n\nexport const wildoApplicationVersions_ResourceConfiguration_InitializationFactory: (...args: any[]) => any = (resourcesRelationships: ResourceRelationship[]) => createResourceConfiguration_Initialization<\n typeof WildoApplicationVersions_Operations,\n WildoApplicationVersions_CoreOperations,\n typeof Wildo_Application_Version_Schema\n>({\n mainSchema: Wildo_Application_Version_Schema,\n resourceIdentifier: CustomShared_ResourceType.WILDO_APPLICATION_VERSIONS,\n resourceFieldIdentifier: CustomShared_ResourceFieldIdentifier[CustomShared_ResourceType.WILDO_APPLICATION_VERSIONS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: false,\n \n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.CREATE,\n ],\n \n customOperation: WildoApplicationVersions_Operations,\n \n operationsConfiguration: {\n [CoreResourceOperation.CREATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n riskLevel: ResourceOperationRiskLevel.HIGH,\n // requestDto auto-derived from decorators\n }\n ],\n userNotifications: [\n {\n target: CoreUserNotificationTarget.USER_SELF,\n channel: CoreUserNotificationChannel.FRONT_END_SUCCESS,\n }\n ]\n },\n \n [CoreResourceOperation.READ]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }\n ]\n },\n \n [CoreResourceOperation.LIST]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }\n ]\n },\n },\n // responseSummaryDto auto-derived from isSummaryField decorators\n}); "]}
1
+ {"version":3,"file":"wildo-applications-versions.custom.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../src/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAsC,qBAAqB,EAA0C,cAAc,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACpL,OAAO,EAAwB,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACvH,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,0CAA0C,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EACL,yBAAyB,EACzB,oCAAoC,EACrC,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qDAAqD,CAAC;AAGvG,MAAM,mCAAmC,GAAG,SAAS,CAAC;AAOtD,MAAM,CAAC,MAAM,oEAAoE,GAA6B,CAAC,sBAA8C,EAAE,EAAE,CAAC,0CAA0C,CAI1M;IACA,UAAU,EAAE,gCAAgC;IAC5C,kBAAkB,EAAE,yBAAyB,CAAC,0BAA0B;IACxE;;;;;;;;;OASG;IACH,kBAAkB,EAAE,EAAE,aAAa,EAAE,wBAAwB,CAAC,SAAS,EAAE;IACzE,uBAAuB,EAAE,oCAAoC,CAAC,yBAAyB,CAAC,0BAA0B,CAAC;IACnH,qBAAqB,EAAE,sBAAsB;IAC7C,gBAAgB,EAAE,KAAK;IAEvB,cAAc,EAAE;QACd,qBAAqB,CAAC,IAAI;QAC1B,qBAAqB,CAAC,IAAI;QAC1B,qBAAqB,CAAC,MAAM;KAC7B;IAED,eAAe,EAAE,mCAAmC;IAEpD,uBAAuB,EAAE;QACvB,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC9B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,qBAAqB,CAAC;oBAC7C,SAAS,EAAE,0BAA0B,CAAC,IAAI;oBAC1C,0CAA0C;iBAC3C;aACF;YACD,iBAAiB,EAAE;gBACjB;oBACE,MAAM,EAAE,0BAA0B,CAAC,SAAS;oBAC5C,OAAO,EAAE,2BAA2B,CAAC,iBAAiB;iBACvD;aACF;SACF;QAED,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC5B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;oBAClC,SAAS,EAAE,0BAA0B,CAAC,GAAG;iBAC1C;aACF;SACF;QAED,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC5B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;oBAClC,SAAS,EAAE,0BAA0B,CAAC,GAAG;iBAC1C;aACF;SACF;KACF;IACD,iEAAiE;CAClE,CAAC,CAAC","sourcesContent":["/**\n * Billable Items Shared Resource Configuration\n * \n * Resource configuration for managing invoice line items and billable entries.\n * Handles creation, updates, and management of billable items across invoices.\n */\n\nimport { z } from 'zod';\n\nimport { coreResourceShared_FieldIdentifier, CoreResourceOperation, CoreResourceType, ResourceRelationship, CORE_APP_ROLES, ResourceSystemAccessMode } from '@wildo-ai/saas-models';\nimport { ResourcePrimaryScope, ResourceOperationVariantType, ResourceOperationRiskLevel } from '@wildo-ai/saas-models';\nimport { CoreUserNotificationTarget, CoreUserNotificationChannel } from '@wildo-ai/saas-models';\nimport { createResourceConfiguration_Initialization } from '@wildo-ai/saas-models';\nimport { CORE_ORG_ROLES } from '@wildo-ai/saas-models';\n\nimport {\n CustomShared_ResourceType,\n CustomShared_ResourceFieldIdentifier\n} from '../core/resources/resources-types.custom.shared.schemas';\nimport { Wildo_Application_Version_Schema } from './wildo-applications-versions.custom.shared.schemas';\n\n\nconst WildoApplicationVersions_Operations = undefined; \n\ntype WildoApplicationVersions_CoreOperations = \n | CoreResourceOperation.READ \n | CoreResourceOperation.LIST\n | CoreResourceOperation.CREATE\n\nexport const wildoApplicationVersions_ResourceConfiguration_InitializationFactory: (...args: any[]) => any = (resourcesRelationships: ResourceRelationship[]) => createResourceConfiguration_Initialization<\n typeof WildoApplicationVersions_Operations,\n WildoApplicationVersions_CoreOperations,\n typeof Wildo_Application_Version_Schema\n>({\n mainSchema: Wildo_Application_Version_Schema,\n resourceIdentifier: CustomShared_ResourceType.WILDO_APPLICATION_VERSIONS,\n /**\n * A subject export never includes this row: it is a managed application's version record — a software artifact, no person.\n *\n * Answered explicitly because the privacy gate at boot asks every resource whether its rows\n * are about people. The unauthored default is already FORBIDDEN; writing it down is what turns\n * \"nobody asked\" into \"no\". Not `retentionPolicy: RETAIN_ONLY`, although it is the same claim:\n * that opt-in injects the `retentionStatus` / `impersonalizedAt` marker columns and demands the\n * retention write door (UPDATE_MANY) on a resource no erasure walk can reach — there is no\n * USERS edge — which is schema and surface for a path that never runs.\n */\n systemAccessPolicy: { exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n resourceFieldIdentifier: CustomShared_ResourceFieldIdentifier[CustomShared_ResourceType.WILDO_APPLICATION_VERSIONS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: false,\n \n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.CREATE,\n ],\n \n customOperation: WildoApplicationVersions_Operations,\n \n operationsConfiguration: {\n [CoreResourceOperation.CREATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n riskLevel: ResourceOperationRiskLevel.HIGH,\n // requestDto auto-derived from decorators\n }\n ],\n userNotifications: [\n {\n target: CoreUserNotificationTarget.USER_SELF,\n channel: CoreUserNotificationChannel.FRONT_END_SUCCESS,\n }\n ]\n },\n \n [CoreResourceOperation.READ]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }\n ]\n },\n \n [CoreResourceOperation.LIST]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }\n ]\n },\n },\n // responseSummaryDto auto-derived from isSummaryField decorators\n}); "]}
@@ -1 +1 @@
1
- {"version":3,"file":"wildo-applications-versions.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,gCAAgC;;;;;;;;iBAQ3C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
1
+ {"version":3,"file":"wildo-applications-versions.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,gCAAgC;;;;;;;;iBAQ3C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workbench-aspect-resources.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/workbench/workbench-aspect-resources.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAMrB,oBAAoB,EAKrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,EAEL,4BAA4B,EAC7B,MAAM,mDAAmD,CAAC;AAM3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;;;;;GAOG;AACH,oBAAY,2BAA2B;IACrC,mFAAmF;IACnF,YAAY,iBAAiB;IAC7B,8DAA8D;IAC9D,SAAS,cAAc;IACvB,gGAAgG;IAChG,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,4BAA4B,CAAC;IACpD,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,6BAA6B,EAAE,CAAC;CAC1D;AAED,eAAO,MAAM,4BAA4B,EAAE,SAAS,yBAAyB,EAuX5E,CAAC;AAMF,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS,CAErG;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,yBAAyB,GACpC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAuC5B;AAED,KAAK,8BAA8B,GAAG,qBAAqB,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;AAE9F;;;;;GAKG;AACH,wBAAgB,wCAAwC,CAAC,UAAU,EAAE,yBAAyB,IAEpF,wBAAwB,oBAAoB,EAAE;;oBA6BvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,IAAI,oBAAoB,EAAE,CA8D1E;AAED,mGAAmG;AACnG,eAAO,MAAM,iDAAiD,EAAE,MAAM,CACpE,MAAM,EACN,UAAU,CAAC,OAAO,wCAAwC,CAAC,CAM5D,CAAC"}
1
+ {"version":3,"file":"workbench-aspect-resources.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/workbench/workbench-aspect-resources.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAMrB,oBAAoB,EAKrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,EAEL,4BAA4B,EAC7B,MAAM,mDAAmD,CAAC;AAM3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;;;;;GAOG;AACH,oBAAY,2BAA2B;IACrC,mFAAmF;IACnF,YAAY,iBAAiB;IAC7B,8DAA8D;IAC9D,SAAS,cAAc;IACvB,gGAAgG;IAChG,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,4BAA4B,CAAC;IACpD,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,6BAA6B,EAAE,CAAC;CAC1D;AAED,eAAO,MAAM,4BAA4B,EAAE,SAAS,yBAAyB,EAuX5E,CAAC;AAMF,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS,CAErG;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,yBAAyB,GACpC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAuC5B;AAED,KAAK,8BAA8B,GAAG,qBAAqB,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;AAE9F;;;;;GAKG;AACH,wBAAgB,wCAAwC,CAAC,UAAU,EAAE,yBAAyB,IAEpF,wBAAwB,oBAAoB,EAAE;;oBA6BvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,IAAI,oBAAoB,EAAE,CA8D1E;AAED,mGAAmG;AACnG,eAAO,MAAM,iDAAiD,EAAE,MAAM,CACpE,MAAM,EACN,UAAU,CAAC,OAAO,wCAAwC,CAAC,CAM5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workbench-creation-plane.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EACd,qBAAqB,EAIrB,0BAA0B,EAC1B,4BAA4B,EAE5B,oBAAoB,EAMrB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAYL,kCAAkC,EAElC,6BAA6B,EAC7B,mCAAmC,EACpC,MAAM,kDAAkD,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iCAAiC;;;;;EAOhD;AAED,2FAA2F;AAC3F,wBAAgB,qCAAqC;;;;;;EAKpD;AAED;;;;GAIG;AACH,eAAO,MAAM,6CAA6C,EAAE,oBAAoB,EAgB9E,CAAC;AA8EH,KAAK,qCAAqC,GACtC,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,CAAC;AAK/B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,8DAA8D,GACxE,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;kBAuC7C,CAAC;AAEL,eAAO,MAAM,mEAAmE,GAC7E,wBAAwB,oBAAoB,EAAE;;;;;;;;kBA6B7C,CAAC;AAEL,eAAO,MAAM,oEAAoE,GAC9E,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;kBAiD7C,CAAC;AAEL,eAAO,MAAM,kEAAkE,GAC5E,wBAAwB,oBAAoB,EAAE;;;;;;;kBAqB7C,CAAC;AAEL,eAAO,MAAM,wDAAwD;iDArJ1C,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;sDA0CtB,oBAAoB,EAAE;;;;;;;;;uDAgCtB,oBAAoB,EAAE;;;;;;;;;;;;;qDAoDtB,oBAAoB,EAAE;;;;;;;;CA4BhD,CAAC"}
1
+ {"version":3,"file":"workbench-creation-plane.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../src/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EACd,qBAAqB,EAIrB,0BAA0B,EAC1B,4BAA4B,EAE5B,oBAAoB,EAMrB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAYL,kCAAkC,EAElC,6BAA6B,EAC7B,mCAAmC,EACpC,MAAM,kDAAkD,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iCAAiC;;;;;EAOhD;AAED,2FAA2F;AAC3F,wBAAgB,qCAAqC;;;;;;EAKpD;AAED;;;;GAIG;AACH,eAAO,MAAM,6CAA6C,EAAE,oBAAoB,EAgB9E,CAAC;AA8EH,KAAK,qCAAqC,GACtC,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,CAAC;AAK/B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,8DAA8D,GACxE,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;kBAuC7C,CAAC;AAEL,eAAO,MAAM,mEAAmE,GAC7E,wBAAwB,oBAAoB,EAAE;;;;;;;;kBA6B7C,CAAC;AAEL,eAAO,MAAM,oEAAoE,GAC9E,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;kBAiD7C,CAAC;AAEL,eAAO,MAAM,kEAAkE,GAC5E,wBAAwB,oBAAoB,EAAE;;;;;;;kBAqB7C,CAAC;AAEL,eAAO,MAAM,wDAAwD;iDArJ1C,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;sDA0CtB,oBAAoB,EAAE;;;;;;;;;uDAgCtB,oBAAoB,EAAE;;;;;;;;;;;;;qDAoDtB,oBAAoB,EAAE;;;;;;;;CA4BhD,CAAC"}
@@ -184,9 +184,7 @@ export declare const Workbench_PlaybookResumeRequest_Schema: z.ZodObject<{
184
184
  }, z.core.$strip>>>;
185
185
  }, z.core.$strip>;
186
186
  export type Workbench_PlaybookResumeRequest = z.infer<typeof Workbench_PlaybookResumeRequest_Schema>;
187
- export declare const Workbench_BuildPlanDispatchNextRequest_Schema: z.ZodObject<{
188
- maximumTokenBudget: z.ZodOptional<z.ZodNumber>;
189
- }, z.core.$strip>;
187
+ export declare const Workbench_BuildPlanDispatchNextRequest_Schema: z.ZodObject<{}, z.core.$strip>;
190
188
  export type Workbench_BuildPlanDispatchNextRequest = z.infer<typeof Workbench_BuildPlanDispatchNextRequest_Schema>;
191
189
  export declare const Workbench_RunWriteRevertRequest_Schema: z.ZodObject<{
192
190
  force: z.ZodOptional<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"workbench-creation-plane.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/workbench/workbench-creation-plane.custom.shared.schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workbench-creation-plane.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/workbench/workbench-creation-plane.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;;;;GAUG;AACH,oBAAY,8BAA8B;IACxC,uGAAuG;IACvG,oBAAoB,wCAAwC;IAC5D,2GAA2G;IAC3G,gBAAgB,oCAAoC;IACpD,8DAA8D;IAC9D,iBAAiB,qCAAqC;IACtD,yCAAyC;IACzC,cAAc,kCAAkC;CACjD;AAED,wDAAwD;AACxD,eAAO,MAAM,qCAAqC,EAAE,SAAS,MAAM,EAElE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;;;;GAMG;AACH,oBAAY,4BAA4B;IACtC,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;iBA0CpC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;iBAazC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAErF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;iBA+B1C,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAEvF,8EAA8E;AAC9E,eAAO,MAAM,6BAA6B;;;;;;;iBASxC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAcnF,8CAA8C;AAC9C,oBAAY,6BAA6B;IACvC,8FAA8F;IAC9F,GAAG,QAAQ;IACX,8FAA8F;IAC9F,MAAM,eAAe;CACtB;AAED,+CAA+C;AAC/C,oBAAY,kCAAkC;IAC5C;;;;OAIG;IACH,aAAa,kBAAkB;CAChC;AAED,iDAAiD;AACjD,oBAAY,mCAAmC;IAC7C,uFAAuF;IACvF,MAAM,kBAAkB;CACzB;AAED,eAAO,MAAM,mCAAmC;;;;;;;iBAc9C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAE/F,eAAO,MAAM,sCAAsC;;;;;;;iBASjD,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC;AAUrG,eAAO,MAAM,6CAA6C,gCAAe,CAAC;AAC1E,MAAM,MAAM,sCAAsC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6CAA6C,CAAC,CAAC;AAEnH,eAAO,MAAM,sCAAsC;;iBAGjD,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC;AAErG;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC;;IAE9C,8EAA8E;;;iBAG9E,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAE/F,eAAO,MAAM,yCAAyC;;;iBAGpD,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yCAAyC,CAAC,CAAC;AAE3G,eAAO,MAAM,sCAAsC;;;IAGjD,yGAAyG;;;iBAGzG,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC"}
@@ -258,10 +258,15 @@ export const Workbench_PlaybookResumeRequest_Schema = z.object({
258
258
  answer: z.string().min(1),
259
259
  })).optional(),
260
260
  });
261
- export const Workbench_BuildPlanDispatchNextRequest_Schema = z.object({
262
- /** Optional model-token ceiling forwarded to the dispatch. */
263
- maximumTokenBudget: z.number().int().positive().optional(),
264
- });
261
+ /*
262
+ * DELIBERATELY EMPTY. It carried `maximumTokenBudget`, a ceiling the caller stated and nothing
263
+ * ever enforced: `composeBuildTaskCodingContract` dropped the input on 2026-09-08 and now DERIVES
264
+ * the budget by summing the selected sources' `estimatedTokens`. A request field that reads as a
265
+ * limit and binds nothing is worse than no field, so the whole chain — query parameter, body field,
266
+ * and the three service signatures that forwarded it — is gone. The schema stays because the verb
267
+ * still takes a (currently empty) request body.
268
+ */
269
+ export const Workbench_BuildPlanDispatchNextRequest_Schema = z.object({});
265
270
  export const Workbench_RunWriteRevertRequest_Schema = z.object({
266
271
  /** Overwrite files edited since the run. NOT defaulted on — a human edit is never silently destroyed. */
267
272
  force: z.boolean().optional(),