@happyvertical/smrt-jobs 0.55.22 → 0.55.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -70,7 +70,7 @@ The job is enqueued **before** `next_run` is advanced and `running_count` is inc
70
70
 
71
71
  `next_run` is always recomputed from *now*, never from the previous `next_run` — this is **fire-once-forward**: runs that came due while the runner was down are not caught up, only the next future occurrence fires. There is no missed-run backfill.
72
72
 
73
- Custom cron parser: 5-field (minute hour dom month dow). `*`, ranges, lists, steps supported. **Not timezone-aware**: cron fields are matched against the **server's local time** (the parser uses `getHours`/`getDate`/`getDay`/… local accessors), so `0 0 * * *` fires at local midnight on the host, not at 00:00 UTC. Deploy runners in a known timezone (e.g. `TZ=UTC`) for UTC semantics. A per-schedule timezone option is a possible future enhancement.
73
+ Custom cron parser (`getNextCronDate(cron, timezone?)`): 5-field (minute hour dom month dow); `*`, ranges, lists, steps supported, each list term matched on its own. Fields match the wall clock of the schedule's IANA `timezone` (`Intl.DateTimeFormat`, DST-correct, no dependency); the re-arm passes the row's `timezone`, and a NULL/blank zone falls back to the column default `UTC`. Unknown zones throw `Invalid cron timezone`; the runner moves a row whose cron or zone is invalid to `status='error'` with `last_error`, since retrying it every poll cannot succeed. Only an omitted argument uses the host process zone (legacy; `smrt-reports` still relies on it). DST follows Vixie cron: fixed-time crons (no `*` in minute or hour) run once per day, a gap-skipped wall time runs shifted forward by the gap, a repeated one only at its first occurrence; wildcard crons follow elapsed time (gap minutes skipped, the repeated hour runs again) (#3859).
74
74
 
75
75
  ## JobBuilder — Fluent API
76
76
 
@@ -201,7 +201,7 @@ the framework retention sweep in `@happyvertical/smrt-core`.
201
201
 
202
202
  - The shared claim/recovery projection casts both job and tenant UUIDs to strings; DuckDB otherwise returns native UUID objects. Preserve NULL for global jobs.
203
203
 
204
- - **Cron not timezone-aware**: cron fields match the server's **local** time, not UTC (set `TZ` for UTC); no missed-run catch-up (fire-once-forward)
204
+ - **Cron zone comes from the row**: `_smrt_agent_schedules.timezone` (default `UTC`), not the host `TZ`; no missed-run catch-up (fire-once-forward)
205
205
  - **At-least-once execution**: a timeout cannot preempt a running handler; timed-out jobs fail without retry but the handler keeps running — make handlers idempotent (see "Timeouts & at-least-once")
206
206
  - **No dead letter queue**: failed jobs stay in DB with `status='failed'` — manual intervention
207
207
  - **Forge deliveries are not SmrtJobs**: they use their own replayable
package/README.md CHANGED
@@ -191,7 +191,11 @@ ownership record before displaying it.
191
191
 
192
192
  ### Schedule recurring jobs with ScheduleRunner
193
193
 
194
- The `ScheduleRunner` polls the `_smrt_agent_schedules` table for due cron entries and creates `SmrtJob` records for the `TaskRunner` to execute. Wire them together via events:
194
+ The `ScheduleRunner` polls the `_smrt_agent_schedules` table for due cron entries and creates `SmrtJob` records for the `TaskRunner` to execute. Each schedule's cron is evaluated in its row's IANA `timezone` (default `UTC`, DST-correct), independent of the host `TZ`. Each comma-separated list term is matched separately, and a step (`*/n`, `a-b/n`, `a/n`) counts from the field minimum or the term's base, as in standard cron.
195
+
196
+ Upgrade note: rows that relied on the old behaviour shift. A row left at the default `timezone = 'UTC'` on a non-UTC host now fires in UTC, and day-of-month or month `*/n` now matches 1, 1+n, … (for example `0 0 */2 * *` runs on odd days) instead of counting from 0.
197
+
198
+ Wire them together via events:
195
199
 
196
200
  ```typescript
197
201
  import { ScheduleRunner } from '@happyvertical/smrt-jobs';
@@ -10,7 +10,7 @@ import { AsyncLocalStorage } from "node:async_hooks";
10
10
  import { EventEmitter } from "node:events";
11
11
  import { Worker } from "node:worker_threads";
12
12
  //#region src/__smrt-register__.ts
13
- ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-jobs","packageVersion":"0.55.22","objects":{"@happyvertical/smrt-jobs:ForgeDelivery":{"name":"forgedelivery","className":"ForgeDelivery","qualifiedName":"@happyvertical/smrt-jobs:ForgeDelivery","collection":"forgedeliveries","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/forge-projection.ts","packageName":"@happyvertical/smrt-jobs","fields":{"tenantId":{"type":"text","required":true,"_meta":{"sqlType":"UUID","__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":true,"autoPopulate":true,"nullable":false,"mode":"required","field":"tenantId","allowSuperAdminBypass":false}}},"provider":{"type":"text","required":true,"_meta":{"required":true}},"deliveryId":{"type":"text","required":true,"_meta":{"required":true}},"installationKey":{"type":"text","required":false,"_meta":{"nullable":true}},"repositoryKey":{"type":"text","required":false,"_meta":{"nullable":true}},"eventName":{"type":"text","required":true,"_meta":{"required":true}},"payload":{"type":"json","required":false,"_meta":{}},"status":{"type":"text","required":true,"default":"pending","_meta":{"required":true,"default":"pending"},"enum":["pending","leased","retry","completed","dead_letter"]},"attempts":{"type":"integer","required":true,"default":0,"_meta":{"required":true,"default":0}},"maxAttempts":{"type":"integer","required":true,"default":5,"_meta":{"required":true,"default":5}},"receivedAt":{"type":"datetime","required":true,"_meta":{"required":true}},"nextAttemptAt":{"type":"datetime","required":true,"_meta":{"required":true}},"leaseOwner":{"type":"text","required":false,"_meta":{"nullable":true}},"leaseToken":{"type":"text","required":false,"_meta":{"nullable":true}},"leaseExpiresAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"lastError":{"type":"text","required":false,"_meta":{"nullable":true}},"completedAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"replayCount":{"type":"integer","required":true,"default":0,"_meta":{"required":true,"default":0}}},"methods":{},"decoratorConfig":{"tableName":"_smrt_forge_deliveries","conflictColumns":["tenant_id","provider","delivery_id"],"api":false,"cli":false,"mcp":false,"indexes":[{"name":"_smrt_forge_deliveries_status_next_attempt_at_idx","columns":["status","nextAttemptAt"]},{"name":"_smrt_forge_deliveries_status_lease_expires_at_idx","columns":["status","leaseExpiresAt"]}],"tenantScoped":{"mode":"required"}},"extends":"SmrtObject","exportName":"ForgeDelivery","collectionExportName":"ForgeDeliveryCollection","validationRules":[{"field":"provider","rule":"required","fieldType":"text"},{"field":"deliveryId","rule":"required","fieldType":"text"},{"field":"eventName","rule":"required","fieldType":"text"},{"field":"status","rule":"required","fieldType":"text"},{"field":"attempts","rule":"required","fieldType":"integer"},{"field":"maxAttempts","rule":"required","fieldType":"integer"},{"field":"receivedAt","rule":"required","fieldType":"datetime"},{"field":"nextAttemptAt","rule":"required","fieldType":"datetime"},{"field":"replayCount","rule":"required","fieldType":"integer"}],"schema":{"tableName":"_smrt_forge_deliveries","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_forge_deliveries\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID NOT NULL,\\n \\"provider\\" TEXT NOT NULL,\\n \\"delivery_id\\" TEXT NOT NULL,\\n \\"installation_key\\" TEXT,\\n \\"repository_key\\" TEXT,\\n \\"event_name\\" TEXT NOT NULL,\\n \\"payload\\" JSON,\\n \\"status\\" TEXT NOT NULL DEFAULT 'pending',\\n \\"attempts\\" INTEGER NOT NULL DEFAULT 0,\\n \\"max_attempts\\" INTEGER NOT NULL DEFAULT 5,\\n \\"received_at\\" TIMESTAMP NOT NULL,\\n \\"next_attempt_at\\" TIMESTAMP NOT NULL,\\n \\"lease_owner\\" TEXT,\\n \\"lease_token\\" TEXT,\\n \\"lease_expires_at\\" TIMESTAMP,\\n \\"last_error\\" TEXT,\\n \\"completed_at\\" TIMESTAMP,\\n \\"replay_count\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"provider":{"type":"TEXT","notNull":true,"unique":false},"delivery_id":{"type":"TEXT","notNull":true,"unique":false},"installation_key":{"type":"TEXT","notNull":false,"unique":false},"repository_key":{"type":"TEXT","notNull":false,"unique":false},"event_name":{"type":"TEXT","notNull":true,"unique":false},"payload":{"type":"JSON","notNull":false,"unique":false},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"pending"},"attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"max_attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":5},"received_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"next_attempt_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"lease_owner":{"type":"TEXT","notNull":false,"unique":false},"lease_token":{"type":"TEXT","notNull":false,"unique":false},"lease_expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"last_error":{"type":"TEXT","notNull":false,"unique":false},"completed_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"replay_count":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"_smrt_forge_deliveries_tenant_id_provider_idx","columns":["tenant_id","provider","delivery_id"],"unique":true},{"name":"_smrt_forge_deliveries_slug_context_idx","columns":["slug","context"]},{"name":"_smrt_forge_deliveries_status_next_attempt_at_idx","columns":["status","next_attempt_at"]},{"name":"_smrt_forge_deliveries_status_lease_expires_at_idx","columns":["status","lease_expires_at"]},{"name":"_smrt_forge_deliveries_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"38d3f476"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:ForgeProjectionCheckpoint":{"name":"forgeprojectioncheckpoint","className":"ForgeProjectionCheckpoint","qualifiedName":"@happyvertical/smrt-jobs:ForgeProjectionCheckpoint","collection":"forgeprojectioncheckpoints","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/forge-projection.ts","packageName":"@happyvertical/smrt-jobs","fields":{"tenantId":{"type":"text","required":true,"_meta":{"sqlType":"UUID","__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":true,"autoPopulate":true,"nullable":false,"mode":"required","field":"tenantId","allowSuperAdminBypass":false}}},"projection":{"type":"text","required":true,"_meta":{"required":true}},"subjectKey":{"type":"text","required":true,"_meta":{"required":true}},"observationVersion":{"type":"integer","required":true,"_meta":{"required":true}},"deliveryId":{"type":"text","required":true,"_meta":{"required":true}},"observedAt":{"type":"datetime","required":true,"_meta":{"required":true}}},"methods":{},"decoratorConfig":{"tableName":"_smrt_forge_projection_checkpoints","conflictColumns":["tenant_id","projection","subject_key"],"api":false,"cli":false,"mcp":false,"tenantScoped":{"mode":"required"}},"extends":"SmrtObject","exportName":"ForgeProjectionCheckpoint","collectionExportName":"ForgeProjectionCheckpointCollection","validationRules":[{"field":"projection","rule":"required","fieldType":"text"},{"field":"subjectKey","rule":"required","fieldType":"text"},{"field":"observationVersion","rule":"required","fieldType":"integer"},{"field":"deliveryId","rule":"required","fieldType":"text"},{"field":"observedAt","rule":"required","fieldType":"datetime"}],"schema":{"tableName":"_smrt_forge_projection_checkpoints","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_forge_projection_checkpoints\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID NOT NULL,\\n \\"projection\\" TEXT NOT NULL,\\n \\"subject_key\\" TEXT NOT NULL,\\n \\"observation_version\\" INTEGER NOT NULL,\\n \\"delivery_id\\" TEXT NOT NULL,\\n \\"observed_at\\" TIMESTAMP NOT NULL\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"projection":{"type":"TEXT","notNull":true,"unique":false},"subject_key":{"type":"TEXT","notNull":true,"unique":false},"observation_version":{"type":"INTEGER","notNull":true,"unique":false},"delivery_id":{"type":"TEXT","notNull":true,"unique":false},"observed_at":{"type":"TIMESTAMP","notNull":true,"unique":false}},"indexes":[{"name":"_smrt_forge_projection_checkpoints_tenant_id_projection_idx","columns":["tenant_id","projection","subject_key"],"unique":true},{"name":"_smrt_forge_projection_checkpoints_slug_context_idx","columns":["slug","context"]},{"name":"_smrt_forge_projection_checkpoints_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"39c12493"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:ForgeDeliveryCollection":{"name":"forgedeliverycollection","className":"ForgeDeliveryCollection","qualifiedName":"@happyvertical/smrt-jobs:ForgeDeliveryCollection","collection":"forgedeliveries","description":"Durable provider delivery inbox.","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/forge-projection.ts","packageName":"@happyvertical/smrt-jobs","fields":{},"methods":{"accept":{"name":"accept","async":true,"parameters":[{"name":"input","type":"AcceptForgeDeliveryInput","optional":false},{"name":"audit","type":"ForgeProjectionAuditHook","optional":true}],"returnType":"Promise<AcceptedForgeDelivery>","isStatic":false,"isPublic":true},"claimReady":{"name":"claimReady","async":true,"parameters":[{"name":"options","type":"ClaimForgeDeliveryOptions","optional":false},{"name":"audit","type":"ForgeProjectionAuditHook","optional":true}],"returnType":"Promise<ForgeDelivery | null>","isStatic":false,"isPublic":true},"replay":{"name":"replay","async":true,"parameters":[{"name":"id","type":"string","optional":false},{"name":"audit","type":"ForgeProjectionAuditHook","optional":true}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":false,"cli":false,"mcp":false,"tableName":"_smrt_forge_deliveries"},"extends":"SmrtCollection","extendsTypeArg":"ForgeDelivery","exportName":"ForgeDeliveryCollection","collectionExportName":"ForgeDeliveryCollectionCollection","schema":{"tableName":"_smrt_forge_deliveries","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_forge_deliveries\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID NOT NULL,\\n \\"provider\\" TEXT NOT NULL,\\n \\"delivery_id\\" TEXT NOT NULL,\\n \\"installation_key\\" TEXT,\\n \\"repository_key\\" TEXT,\\n \\"event_name\\" TEXT NOT NULL,\\n \\"payload\\" JSON,\\n \\"status\\" TEXT NOT NULL DEFAULT 'pending',\\n \\"attempts\\" INTEGER NOT NULL DEFAULT 0,\\n \\"max_attempts\\" INTEGER NOT NULL DEFAULT 5,\\n \\"received_at\\" TIMESTAMP NOT NULL,\\n \\"next_attempt_at\\" TIMESTAMP NOT NULL,\\n \\"lease_owner\\" TEXT,\\n \\"lease_token\\" TEXT,\\n \\"lease_expires_at\\" TIMESTAMP,\\n \\"last_error\\" TEXT,\\n \\"completed_at\\" TIMESTAMP,\\n \\"replay_count\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"provider":{"type":"TEXT","notNull":true,"unique":false},"delivery_id":{"type":"TEXT","notNull":true,"unique":false},"installation_key":{"type":"TEXT","notNull":false,"unique":false},"repository_key":{"type":"TEXT","notNull":false,"unique":false},"event_name":{"type":"TEXT","notNull":true,"unique":false},"payload":{"type":"JSON","notNull":false,"unique":false},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"pending"},"attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"max_attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":5},"received_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"next_attempt_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"lease_owner":{"type":"TEXT","notNull":false,"unique":false},"lease_token":{"type":"TEXT","notNull":false,"unique":false},"lease_expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"last_error":{"type":"TEXT","notNull":false,"unique":false},"completed_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"replay_count":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"_smrt_forge_deliveries_tenant_id_provider_idx","columns":["tenant_id","provider","delivery_id"],"unique":true},{"name":"_smrt_forge_deliveries_slug_context_idx","columns":["slug","context"]},{"name":"_smrt_forge_deliveries_status_next_attempt_at_idx","columns":["status","next_attempt_at"]},{"name":"_smrt_forge_deliveries_status_lease_expires_at_idx","columns":["status","lease_expires_at"]},{"name":"_smrt_forge_deliveries_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"38d3f476"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtJobEvent":{"name":"smrtjobevent","className":"SmrtJobEvent","qualifiedName":"@happyvertical/smrt-jobs:SmrtJobEvent","collection":"smrtjobevents","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-job-event.ts","packageName":"@happyvertical/smrt-jobs","fields":{"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"jobId":{"type":"foreignKey","required":true,"related":"SmrtJob","_meta":{"required":true,"constraint":false}},"type":{"type":"text","required":true,"default":"log","_meta":{"required":true,"default":"log"}},"level":{"type":"text","required":true,"default":"info","_meta":{"required":true,"default":"info"},"enum":["debug","info","warn","error"]},"stage":{"type":"text","required":false,"_meta":{"nullable":true}},"progress":{"type":"integer","required":false,"_meta":{"nullable":true}},"message":{"type":"text","required":true,"default":"","_meta":{"required":true,"default":""}},"data":{"type":"json","required":false,"_meta":{}},"createdAt":{"type":"datetime","required":true,"_meta":{"required":true}}},"methods":{"toCursor":{"name":"toCursor","async":false,"parameters":[],"returnType":"string","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_job_events","api":false,"cli":{"include":["list","get"],"http":false,"skipApiCheck":true},"mcp":false,"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"SmrtJobEvent","collectionExportName":"SmrtJobEventCollection","validationRules":[{"field":"jobId","rule":"required","fieldType":"foreignKey"},{"field":"type","rule":"required","fieldType":"text"},{"field":"level","rule":"required","fieldType":"text"},{"field":"message","rule":"required","fieldType":"text"},{"field":"createdAt","rule":"required","fieldType":"datetime"}],"schema":{"tableName":"_smrt_job_events","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_job_events\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"job_id\\" UUID NOT NULL,\\n \\"type\\" TEXT NOT NULL DEFAULT 'log',\\n \\"level\\" TEXT NOT NULL DEFAULT 'info',\\n \\"stage\\" TEXT,\\n \\"progress\\" INTEGER,\\n \\"message\\" TEXT NOT NULL DEFAULT '',\\n \\"data\\" JSON\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"job_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false},"type":{"type":"TEXT","notNull":true,"unique":false,"default":"log"},"level":{"type":"TEXT","notNull":true,"unique":false,"default":"info"},"stage":{"type":"TEXT","notNull":false,"unique":false},"progress":{"type":"INTEGER","notNull":false,"unique":false},"message":{"type":"TEXT","notNull":true,"unique":false,"default":""},"data":{"type":"JSON","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_job_events_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"_smrt_job_events_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"_smrt_job_events_job_id_idx","columns":["job_id"]}],"version":"8a9faeec"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtJobEventCollection":{"name":"smrtjobeventcollection","className":"SmrtJobEventCollection","qualifiedName":"@happyvertical/smrt-jobs:SmrtJobEventCollection","collection":"smrtjobevents","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-job-event.ts","packageName":"@happyvertical/smrt-jobs","fields":{},"methods":{"initialize":{"name":"initialize","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"append":{"name":"append","async":true,"parameters":[{"name":"input","type":"SmrtJobEventData","optional":false}],"returnType":"Promise<SmrtJobEvent>","isStatic":false,"isPublic":true},"listByJob":{"name":"listByJob","async":true,"parameters":[{"name":"jobId","type":"string","optional":false},{"name":"options","type":"ListJobEventsOptions","optional":true}],"returnType":"Promise<SmrtJobEvent[]>","isStatic":false,"isPublic":true},"listSinceCursor":{"name":"listSinceCursor","async":true,"parameters":[{"name":"options","type":"any","optional":true,"typeUnresolved":true}],"returnType":"Promise<SmrtJobEvent[]>","isStatic":false,"isPublic":true},"latestProgressByJobIds":{"name":"latestProgressByJobIds","async":true,"parameters":[{"name":"jobIds","type":"string[]","optional":false},{"name":"options","type":"object","optional":true,"memberTypes":["string | null"]}],"returnType":"Promise<Map<string, SmrtJobEvent>>","isStatic":false,"isPublic":true},"listTerminalOutcomes":{"name":"listTerminalOutcomes","async":true,"parameters":[{"name":"options","type":"ListTerminalOutcomesOptions","optional":false}],"returnType":"Promise<SmrtJobTerminalOutcomePage>","isStatic":false,"isPublic":true},"cleanup":{"name":"cleanup","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["Date","boolean"]}],"returnType":"Promise<number>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_job_events","api":false,"mcp":false},"extends":"SmrtCollection","extendsTypeArg":"SmrtJobEvent","exportName":"SmrtJobEventCollection","collectionExportName":"SmrtJobEventCollectionCollection","schema":{"tableName":"_smrt_job_events","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_job_events\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"job_id\\" UUID NOT NULL,\\n \\"type\\" TEXT NOT NULL DEFAULT 'log',\\n \\"level\\" TEXT NOT NULL DEFAULT 'info',\\n \\"stage\\" TEXT,\\n \\"progress\\" INTEGER,\\n \\"message\\" TEXT NOT NULL DEFAULT '',\\n \\"data\\" JSON\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"job_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false},"type":{"type":"TEXT","notNull":true,"unique":false,"default":"log"},"level":{"type":"TEXT","notNull":true,"unique":false,"default":"info"},"stage":{"type":"TEXT","notNull":false,"unique":false},"progress":{"type":"INTEGER","notNull":false,"unique":false},"message":{"type":"TEXT","notNull":true,"unique":false,"default":""},"data":{"type":"JSON","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_job_events_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"_smrt_job_events_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"_smrt_job_events_job_id_idx","columns":["job_id"]}],"version":"8a9faeec"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtJob":{"name":"smrtjob","className":"SmrtJob","qualifiedName":"@happyvertical/smrt-jobs:SmrtJob","collection":"smrtjobs","description":"Persistent job record stored in the _smrt_jobs system table.","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-job.ts","packageName":"@happyvertical/smrt-jobs","fields":{"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"queue":{"type":"text","required":true,"default":"default","_meta":{"required":true,"default":"default"}},"objectType":{"type":"text","required":true,"_meta":{"required":true}},"objectId":{"type":"text","required":false,"_meta":{"nullable":true}},"method":{"type":"text","required":true,"_meta":{"required":true}},"args":{"type":"json","required":false,"_meta":{}},"runAt":{"type":"datetime","required":true,"_meta":{"required":true,"indexed":true}},"priority":{"type":"integer","required":true,"default":50,"_meta":{"required":true,"default":50}},"status":{"type":"text","required":true,"default":"pending","_meta":{"required":true,"default":"pending","indexed":true},"enum":["pending","ready","running","completed","failed","cancelled"]},"attempts":{"type":"integer","required":true,"default":0,"_meta":{"required":true,"default":0}},"maxAttempts":{"type":"integer","required":true,"default":3,"_meta":{"required":true,"default":3}},"timeout":{"type":"integer","required":true,"default":300000,"_meta":{"required":true,"default":300000}},"timeoutBehavior":{"type":"text","required":true,"default":"fail","_meta":{"required":true,"default":"fail"},"enum":["fail","kill","warn"]},"startedAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"completedAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"lastError":{"type":"text","required":false,"_meta":{"nullable":true}},"resultPointer":{"type":"text","required":false,"_meta":{"nullable":true}},"taskId":{"type":"text","required":false,"_meta":{"nullable":true,"unique":true}},"taskOwnerId":{"type":"text","required":false,"_meta":{"nullable":true}},"taskResult":{"type":"json","required":false,"_meta":{"nullable":true}},"taskInputRequests":{"type":"json","required":false,"_meta":{"nullable":true}},"taskInputResponses":{"type":"json","required":false,"_meta":{"nullable":true}},"retryStrategy":{"type":"json","required":false,"_meta":{}},"workerId":{"type":"text","required":false,"_meta":{"nullable":true}},"workerHeartbeat":{"type":"datetime","required":false,"_meta":{"nullable":true}}},"methods":{"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"retry":{"name":"retry","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"cancel":{"name":"cancel","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getDescription":{"name":"getDescription","async":false,"parameters":[],"returnType":"string","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_jobs","api":false,"cli":{"include":["list","get","retry","cancel"],"skipApiCheck":true,"http":false},"mcp":false,"indexes":[{"name":"_smrt_jobs_status_run_at_idx","columns":["status","runAt"]},{"name":"_smrt_jobs_ready_idx","columns":["status","runAt"],"where":"status = 'pending' AND (task_input_requests IS NULL OR task_input_responses IS NOT NULL)"}],"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"SmrtJob","collectionExportName":"SmrtJobCollection","validationRules":[{"field":"queue","rule":"required","fieldType":"text"},{"field":"objectType","rule":"required","fieldType":"text"},{"field":"method","rule":"required","fieldType":"text"},{"field":"runAt","rule":"required","fieldType":"datetime"},{"field":"priority","rule":"required","fieldType":"integer"},{"field":"status","rule":"required","fieldType":"text"},{"field":"attempts","rule":"required","fieldType":"integer"},{"field":"maxAttempts","rule":"required","fieldType":"integer"},{"field":"timeout","rule":"required","fieldType":"integer"},{"field":"timeoutBehavior","rule":"required","fieldType":"text"}],"schema":{"tableName":"_smrt_jobs","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_jobs\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"queue\\" TEXT NOT NULL DEFAULT 'default',\\n \\"object_type\\" TEXT NOT NULL,\\n \\"object_id\\" TEXT,\\n \\"method\\" TEXT NOT NULL,\\n \\"args\\" JSON,\\n \\"run_at\\" TIMESTAMP NOT NULL,\\n \\"priority\\" INTEGER NOT NULL DEFAULT 50,\\n \\"status\\" TEXT NOT NULL DEFAULT 'pending',\\n \\"attempts\\" INTEGER NOT NULL DEFAULT 0,\\n \\"max_attempts\\" INTEGER NOT NULL DEFAULT 3,\\n \\"timeout\\" INTEGER NOT NULL DEFAULT 300000,\\n \\"timeout_behavior\\" TEXT NOT NULL DEFAULT 'fail',\\n \\"started_at\\" TIMESTAMP,\\n \\"completed_at\\" TIMESTAMP,\\n \\"last_error\\" TEXT,\\n \\"result_pointer\\" TEXT,\\n \\"task_id\\" TEXT UNIQUE,\\n \\"task_owner_id\\" TEXT,\\n \\"task_result\\" JSON,\\n \\"task_input_requests\\" JSON,\\n \\"task_input_responses\\" JSON,\\n \\"retry_strategy\\" JSON,\\n \\"worker_id\\" TEXT,\\n \\"worker_heartbeat\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"queue":{"type":"TEXT","notNull":true,"unique":false,"default":"default"},"object_type":{"type":"TEXT","notNull":true,"unique":false},"object_id":{"type":"TEXT","notNull":false,"unique":false},"method":{"type":"TEXT","notNull":true,"unique":false},"args":{"type":"JSON","notNull":false,"unique":false},"run_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"priority":{"type":"INTEGER","notNull":true,"unique":false,"default":50},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"pending"},"attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"max_attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":3},"timeout":{"type":"INTEGER","notNull":true,"unique":false,"default":300000},"timeout_behavior":{"type":"TEXT","notNull":true,"unique":false,"default":"fail"},"started_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"completed_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"last_error":{"type":"TEXT","notNull":false,"unique":false},"result_pointer":{"type":"TEXT","notNull":false,"unique":false},"task_id":{"type":"TEXT","notNull":false,"unique":true},"task_owner_id":{"type":"TEXT","notNull":false,"unique":false},"task_result":{"type":"JSON","notNull":false,"unique":false},"task_input_requests":{"type":"JSON","notNull":false,"unique":false},"task_input_responses":{"type":"JSON","notNull":false,"unique":false},"retry_strategy":{"type":"JSON","notNull":false,"unique":false},"worker_id":{"type":"TEXT","notNull":false,"unique":false},"worker_heartbeat":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_jobs_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"_smrt_jobs_run_at_idx","columns":["run_at"]},{"name":"_smrt_jobs_status_idx","columns":["status"]},{"name":"_smrt_jobs_status_run_at_idx","columns":["status","run_at"]},{"name":"_smrt_jobs_ready_idx","columns":["status","run_at"],"where":"status = 'pending' AND (task_input_requests IS NULL OR task_input_responses IS NOT NULL)"},{"name":"_smrt_jobs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"43e1324f"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtJobCollection":{"name":"smrtjobcollection","className":"SmrtJobCollection","qualifiedName":"@happyvertical/smrt-jobs:SmrtJobCollection","collection":"smrtjobs","description":"Collection for managing SmrtJob objects","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-job.ts","packageName":"@happyvertical/smrt-jobs","fields":{},"methods":{"initialize":{"name":"initialize","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"listByStatus":{"name":"listByStatus","async":true,"parameters":[{"name":"status","type":"JobStatus | JobStatus[]","optional":false,"unionBranches":[{"type":"JobStatus"},{"type":"JobStatus[]"}]},{"name":"options","type":"object","optional":true,"memberTypes":["number","string"]}],"returnType":"Promise<SmrtJob[]>","isStatic":false,"isPublic":true},"listReady":{"name":"listReady","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["number","string[]"]}],"returnType":"Promise<SmrtJob[]>","isStatic":false,"isPublic":true},"claimReady":{"name":"claimReady","async":true,"parameters":[{"name":"options","type":"ClaimReadyOptions","optional":false}],"returnType":"Promise<SmrtJob[]>","isStatic":false,"isPublic":true},"countInFlightForTenant":{"name":"countInFlightForTenant","async":true,"parameters":[{"name":"tenantId","type":"string | null","optional":false,"unionBranches":[{"type":"string"},{"type":"null"}]}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"enqueueJob":{"name":"enqueueJob","async":true,"parameters":[{"name":"data","type":"SmrtJobData","optional":false},{"name":"options","type":"EnqueueJobOptions","optional":true}],"returnType":"Promise<SmrtJob>","isStatic":false,"isPublic":true},"stats":{"name":"stats","async":true,"parameters":[{"name":"queue","type":"string","optional":true}],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"cleanup":{"name":"cleanup","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["Date","number","boolean"]}],"returnType":"Promise<number>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_jobs","api":false,"mcp":false},"extends":"SmrtCollection","extendsTypeArg":"SmrtJob","exportName":"SmrtJobCollection","collectionExportName":"SmrtJobCollectionCollection","schema":{"tableName":"_smrt_jobs","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_jobs\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"queue\\" TEXT NOT NULL DEFAULT 'default',\\n \\"object_type\\" TEXT NOT NULL,\\n \\"object_id\\" TEXT,\\n \\"method\\" TEXT NOT NULL,\\n \\"args\\" JSON,\\n \\"run_at\\" TIMESTAMP NOT NULL,\\n \\"priority\\" INTEGER NOT NULL DEFAULT 50,\\n \\"status\\" TEXT NOT NULL DEFAULT 'pending',\\n \\"attempts\\" INTEGER NOT NULL DEFAULT 0,\\n \\"max_attempts\\" INTEGER NOT NULL DEFAULT 3,\\n \\"timeout\\" INTEGER NOT NULL DEFAULT 300000,\\n \\"timeout_behavior\\" TEXT NOT NULL DEFAULT 'fail',\\n \\"started_at\\" TIMESTAMP,\\n \\"completed_at\\" TIMESTAMP,\\n \\"last_error\\" TEXT,\\n \\"result_pointer\\" TEXT,\\n \\"task_id\\" TEXT UNIQUE,\\n \\"task_owner_id\\" TEXT,\\n \\"task_result\\" JSON,\\n \\"task_input_requests\\" JSON,\\n \\"task_input_responses\\" JSON,\\n \\"retry_strategy\\" JSON,\\n \\"worker_id\\" TEXT,\\n \\"worker_heartbeat\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"queue":{"type":"TEXT","notNull":true,"unique":false,"default":"default"},"object_type":{"type":"TEXT","notNull":true,"unique":false},"object_id":{"type":"TEXT","notNull":false,"unique":false},"method":{"type":"TEXT","notNull":true,"unique":false},"args":{"type":"JSON","notNull":false,"unique":false},"run_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"priority":{"type":"INTEGER","notNull":true,"unique":false,"default":50},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"pending"},"attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"max_attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":3},"timeout":{"type":"INTEGER","notNull":true,"unique":false,"default":300000},"timeout_behavior":{"type":"TEXT","notNull":true,"unique":false,"default":"fail"},"started_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"completed_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"last_error":{"type":"TEXT","notNull":false,"unique":false},"result_pointer":{"type":"TEXT","notNull":false,"unique":false},"task_id":{"type":"TEXT","notNull":false,"unique":true},"task_owner_id":{"type":"TEXT","notNull":false,"unique":false},"task_result":{"type":"JSON","notNull":false,"unique":false},"task_input_requests":{"type":"JSON","notNull":false,"unique":false},"task_input_responses":{"type":"JSON","notNull":false,"unique":false},"retry_strategy":{"type":"JSON","notNull":false,"unique":false},"worker_id":{"type":"TEXT","notNull":false,"unique":false},"worker_heartbeat":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_jobs_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"_smrt_jobs_run_at_idx","columns":["run_at"]},{"name":"_smrt_jobs_status_idx","columns":["status"]},{"name":"_smrt_jobs_status_run_at_idx","columns":["status","run_at"]},{"name":"_smrt_jobs_ready_idx","columns":["status","run_at"],"where":"status = 'pending' AND (task_input_requests IS NULL OR task_input_responses IS NOT NULL)"},{"name":"_smrt_jobs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"43e1324f"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtWorker":{"name":"smrtworker","className":"SmrtWorker","qualifiedName":"@happyvertical/smrt-jobs:SmrtWorker","collection":"smrtworkers","description":"Liveness record for a single TaskRunner / ScheduleRunner incarnation, stored in the _smrt_workers system table.","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-worker.ts","packageName":"@happyvertical/smrt-jobs","fields":{"workerId":{"type":"text","required":true,"_meta":{"required":true}},"pid":{"type":"integer","required":false,"_meta":{"nullable":true}},"hostname":{"type":"text","required":false,"_meta":{"nullable":true}},"startedAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"heartbeatAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"leaseExpiresAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"status":{"type":"text","required":true,"default":"running","_meta":{"required":true,"default":"running"}}},"methods":{},"decoratorConfig":{"tableName":"_smrt_workers","conflictColumns":["worker_id"],"api":false,"cli":false,"mcp":false},"extends":"SmrtObject","exportName":"SmrtWorker","collectionExportName":"SmrtWorkerCollection","validationRules":[{"field":"workerId","rule":"required","fieldType":"text"},{"field":"status","rule":"required","fieldType":"text"}],"schema":{"tableName":"_smrt_workers","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_workers\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"worker_id\\" TEXT NOT NULL,\\n \\"pid\\" INTEGER,\\n \\"hostname\\" TEXT,\\n \\"started_at\\" TIMESTAMP,\\n \\"heartbeat_at\\" TIMESTAMP,\\n \\"lease_expires_at\\" TIMESTAMP,\\n \\"status\\" TEXT NOT NULL DEFAULT 'running'\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"worker_id":{"type":"TEXT","notNull":true,"unique":false},"pid":{"type":"INTEGER","notNull":false,"unique":false},"hostname":{"type":"TEXT","notNull":false,"unique":false},"started_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"heartbeat_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"lease_expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"running"}},"indexes":[{"name":"_smrt_workers_worker_id_idx","columns":["worker_id"],"unique":true},{"name":"_smrt_workers_slug_context_idx","columns":["slug","context"]},{"name":"_smrt_workers_created_at_idx","columns":["created_at"]}],"version":"bfaad669"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtWorkerCollection":{"name":"smrtworkercollection","className":"SmrtWorkerCollection","qualifiedName":"@happyvertical/smrt-jobs:SmrtWorkerCollection","collection":"smrtworkers","description":"Collection for managing _smrt_workers liveness rows.","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-worker.ts","packageName":"@happyvertical/smrt-jobs","fields":{},"methods":{"assertReady":{"name":"assertReady","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"tableReady":{"name":"tableReady","async":true,"parameters":[],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"registerWorker":{"name":"registerWorker","async":true,"parameters":[{"name":"input","type":"RegisterWorkerInput","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"renewLease":{"name":"renewLease","async":true,"parameters":[{"name":"workerKey","type":"string","optional":false},{"name":"leaseTtlMs","type":"number","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"expireWorker":{"name":"expireWorker","async":true,"parameters":[{"name":"workerKey","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"freshLeaseWorkerKeys":{"name":"freshLeaseWorkerKeys","async":true,"parameters":[],"returnType":"Promise<Set<string>>","isStatic":false,"isPublic":true},"pruneExpired":{"name":"pruneExpired","async":true,"parameters":[{"name":"graceMs","type":"number","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_workers","api":false,"mcp":false,"cli":false},"extends":"SmrtCollection","extendsTypeArg":"SmrtWorker","exportName":"SmrtWorkerCollection","collectionExportName":"SmrtWorkerCollectionCollection","schema":{"tableName":"_smrt_workers","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_workers\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"worker_id\\" TEXT NOT NULL,\\n \\"pid\\" INTEGER,\\n \\"hostname\\" TEXT,\\n \\"started_at\\" TIMESTAMP,\\n \\"heartbeat_at\\" TIMESTAMP,\\n \\"lease_expires_at\\" TIMESTAMP,\\n \\"status\\" TEXT NOT NULL DEFAULT 'running'\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"worker_id":{"type":"TEXT","notNull":true,"unique":false},"pid":{"type":"INTEGER","notNull":false,"unique":false},"hostname":{"type":"TEXT","notNull":false,"unique":false},"started_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"heartbeat_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"lease_expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"running"}},"indexes":[{"name":"_smrt_workers_worker_id_idx","columns":["worker_id"],"unique":true},{"name":"_smrt_workers_slug_context_idx","columns":["slug","context"]},{"name":"_smrt_workers_created_at_idx","columns":["created_at"]}],"version":"bfaad669"},"importPath":"@happyvertical/smrt-jobs"}},"moduleType":"smrt","smrtDependencies":["@happyvertical/smrt-core","@happyvertical/smrt-tenancy"],"browser":{"status":"server-only","issues":["#3615","#3624","#3627"],"reason":"worker_threads runner (the edge commerce inherits), node:events/crypto, bull/bullmq/cloud-tasks SDK graph","via":["@happyvertical/smrt-tenancy"]},"stampsConstructors":true}`));
13
+ ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-jobs","packageVersion":"0.55.24","objects":{"@happyvertical/smrt-jobs:ForgeDelivery":{"name":"forgedelivery","className":"ForgeDelivery","qualifiedName":"@happyvertical/smrt-jobs:ForgeDelivery","collection":"forgedeliveries","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/forge-projection.ts","packageName":"@happyvertical/smrt-jobs","fields":{"tenantId":{"type":"text","required":true,"_meta":{"sqlType":"UUID","__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":true,"autoPopulate":true,"nullable":false,"mode":"required","field":"tenantId","allowSuperAdminBypass":false}}},"provider":{"type":"text","required":true,"_meta":{"required":true}},"deliveryId":{"type":"text","required":true,"_meta":{"required":true}},"installationKey":{"type":"text","required":false,"_meta":{"nullable":true}},"repositoryKey":{"type":"text","required":false,"_meta":{"nullable":true}},"eventName":{"type":"text","required":true,"_meta":{"required":true}},"payload":{"type":"json","required":false,"_meta":{}},"status":{"type":"text","required":true,"default":"pending","_meta":{"required":true,"default":"pending"},"enum":["pending","leased","retry","completed","dead_letter"]},"attempts":{"type":"integer","required":true,"default":0,"_meta":{"required":true,"default":0}},"maxAttempts":{"type":"integer","required":true,"default":5,"_meta":{"required":true,"default":5}},"receivedAt":{"type":"datetime","required":true,"_meta":{"required":true}},"nextAttemptAt":{"type":"datetime","required":true,"_meta":{"required":true}},"leaseOwner":{"type":"text","required":false,"_meta":{"nullable":true}},"leaseToken":{"type":"text","required":false,"_meta":{"nullable":true}},"leaseExpiresAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"lastError":{"type":"text","required":false,"_meta":{"nullable":true}},"completedAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"replayCount":{"type":"integer","required":true,"default":0,"_meta":{"required":true,"default":0}}},"methods":{},"decoratorConfig":{"tableName":"_smrt_forge_deliveries","conflictColumns":["tenant_id","provider","delivery_id"],"api":false,"cli":false,"mcp":false,"indexes":[{"name":"_smrt_forge_deliveries_status_next_attempt_at_idx","columns":["status","nextAttemptAt"]},{"name":"_smrt_forge_deliveries_status_lease_expires_at_idx","columns":["status","leaseExpiresAt"]}],"tenantScoped":{"mode":"required"}},"extends":"SmrtObject","exportName":"ForgeDelivery","collectionExportName":"ForgeDeliveryCollection","validationRules":[{"field":"provider","rule":"required","fieldType":"text"},{"field":"deliveryId","rule":"required","fieldType":"text"},{"field":"eventName","rule":"required","fieldType":"text"},{"field":"status","rule":"required","fieldType":"text"},{"field":"attempts","rule":"required","fieldType":"integer"},{"field":"maxAttempts","rule":"required","fieldType":"integer"},{"field":"receivedAt","rule":"required","fieldType":"datetime"},{"field":"nextAttemptAt","rule":"required","fieldType":"datetime"},{"field":"replayCount","rule":"required","fieldType":"integer"}],"schema":{"tableName":"_smrt_forge_deliveries","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_forge_deliveries\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID NOT NULL,\\n \\"provider\\" TEXT NOT NULL,\\n \\"delivery_id\\" TEXT NOT NULL,\\n \\"installation_key\\" TEXT,\\n \\"repository_key\\" TEXT,\\n \\"event_name\\" TEXT NOT NULL,\\n \\"payload\\" JSON,\\n \\"status\\" TEXT NOT NULL DEFAULT 'pending',\\n \\"attempts\\" INTEGER NOT NULL DEFAULT 0,\\n \\"max_attempts\\" INTEGER NOT NULL DEFAULT 5,\\n \\"received_at\\" TIMESTAMP NOT NULL,\\n \\"next_attempt_at\\" TIMESTAMP NOT NULL,\\n \\"lease_owner\\" TEXT,\\n \\"lease_token\\" TEXT,\\n \\"lease_expires_at\\" TIMESTAMP,\\n \\"last_error\\" TEXT,\\n \\"completed_at\\" TIMESTAMP,\\n \\"replay_count\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"provider":{"type":"TEXT","notNull":true,"unique":false},"delivery_id":{"type":"TEXT","notNull":true,"unique":false},"installation_key":{"type":"TEXT","notNull":false,"unique":false},"repository_key":{"type":"TEXT","notNull":false,"unique":false},"event_name":{"type":"TEXT","notNull":true,"unique":false},"payload":{"type":"JSON","notNull":false,"unique":false},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"pending"},"attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"max_attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":5},"received_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"next_attempt_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"lease_owner":{"type":"TEXT","notNull":false,"unique":false},"lease_token":{"type":"TEXT","notNull":false,"unique":false},"lease_expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"last_error":{"type":"TEXT","notNull":false,"unique":false},"completed_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"replay_count":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"_smrt_forge_deliveries_tenant_id_provider_idx","columns":["tenant_id","provider","delivery_id"],"unique":true},{"name":"_smrt_forge_deliveries_slug_context_idx","columns":["slug","context"]},{"name":"_smrt_forge_deliveries_status_next_attempt_at_idx","columns":["status","next_attempt_at"]},{"name":"_smrt_forge_deliveries_status_lease_expires_at_idx","columns":["status","lease_expires_at"]},{"name":"_smrt_forge_deliveries_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"38d3f476"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:ForgeProjectionCheckpoint":{"name":"forgeprojectioncheckpoint","className":"ForgeProjectionCheckpoint","qualifiedName":"@happyvertical/smrt-jobs:ForgeProjectionCheckpoint","collection":"forgeprojectioncheckpoints","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/forge-projection.ts","packageName":"@happyvertical/smrt-jobs","fields":{"tenantId":{"type":"text","required":true,"_meta":{"sqlType":"UUID","__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":true,"autoPopulate":true,"nullable":false,"mode":"required","field":"tenantId","allowSuperAdminBypass":false}}},"projection":{"type":"text","required":true,"_meta":{"required":true}},"subjectKey":{"type":"text","required":true,"_meta":{"required":true}},"observationVersion":{"type":"integer","required":true,"_meta":{"required":true}},"deliveryId":{"type":"text","required":true,"_meta":{"required":true}},"observedAt":{"type":"datetime","required":true,"_meta":{"required":true}}},"methods":{},"decoratorConfig":{"tableName":"_smrt_forge_projection_checkpoints","conflictColumns":["tenant_id","projection","subject_key"],"api":false,"cli":false,"mcp":false,"tenantScoped":{"mode":"required"}},"extends":"SmrtObject","exportName":"ForgeProjectionCheckpoint","collectionExportName":"ForgeProjectionCheckpointCollection","validationRules":[{"field":"projection","rule":"required","fieldType":"text"},{"field":"subjectKey","rule":"required","fieldType":"text"},{"field":"observationVersion","rule":"required","fieldType":"integer"},{"field":"deliveryId","rule":"required","fieldType":"text"},{"field":"observedAt","rule":"required","fieldType":"datetime"}],"schema":{"tableName":"_smrt_forge_projection_checkpoints","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_forge_projection_checkpoints\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID NOT NULL,\\n \\"projection\\" TEXT NOT NULL,\\n \\"subject_key\\" TEXT NOT NULL,\\n \\"observation_version\\" INTEGER NOT NULL,\\n \\"delivery_id\\" TEXT NOT NULL,\\n \\"observed_at\\" TIMESTAMP NOT NULL\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"projection":{"type":"TEXT","notNull":true,"unique":false},"subject_key":{"type":"TEXT","notNull":true,"unique":false},"observation_version":{"type":"INTEGER","notNull":true,"unique":false},"delivery_id":{"type":"TEXT","notNull":true,"unique":false},"observed_at":{"type":"TIMESTAMP","notNull":true,"unique":false}},"indexes":[{"name":"_smrt_forge_projection_checkpoints_tenant_id_projection_idx","columns":["tenant_id","projection","subject_key"],"unique":true},{"name":"_smrt_forge_projection_checkpoints_slug_context_idx","columns":["slug","context"]},{"name":"_smrt_forge_projection_checkpoints_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"39c12493"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:ForgeDeliveryCollection":{"name":"forgedeliverycollection","className":"ForgeDeliveryCollection","qualifiedName":"@happyvertical/smrt-jobs:ForgeDeliveryCollection","collection":"forgedeliveries","description":"Durable provider delivery inbox.","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/forge-projection.ts","packageName":"@happyvertical/smrt-jobs","fields":{},"methods":{"accept":{"name":"accept","async":true,"parameters":[{"name":"input","type":"AcceptForgeDeliveryInput","optional":false},{"name":"audit","type":"ForgeProjectionAuditHook","optional":true}],"returnType":"Promise<AcceptedForgeDelivery>","isStatic":false,"isPublic":true},"claimReady":{"name":"claimReady","async":true,"parameters":[{"name":"options","type":"ClaimForgeDeliveryOptions","optional":false},{"name":"audit","type":"ForgeProjectionAuditHook","optional":true}],"returnType":"Promise<ForgeDelivery | null>","isStatic":false,"isPublic":true},"replay":{"name":"replay","async":true,"parameters":[{"name":"id","type":"string","optional":false},{"name":"audit","type":"ForgeProjectionAuditHook","optional":true}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":false,"cli":false,"mcp":false,"tableName":"_smrt_forge_deliveries"},"extends":"SmrtCollection","extendsTypeArg":"ForgeDelivery","exportName":"ForgeDeliveryCollection","collectionExportName":"ForgeDeliveryCollectionCollection","schema":{"tableName":"_smrt_forge_deliveries","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_forge_deliveries\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID NOT NULL,\\n \\"provider\\" TEXT NOT NULL,\\n \\"delivery_id\\" TEXT NOT NULL,\\n \\"installation_key\\" TEXT,\\n \\"repository_key\\" TEXT,\\n \\"event_name\\" TEXT NOT NULL,\\n \\"payload\\" JSON,\\n \\"status\\" TEXT NOT NULL DEFAULT 'pending',\\n \\"attempts\\" INTEGER NOT NULL DEFAULT 0,\\n \\"max_attempts\\" INTEGER NOT NULL DEFAULT 5,\\n \\"received_at\\" TIMESTAMP NOT NULL,\\n \\"next_attempt_at\\" TIMESTAMP NOT NULL,\\n \\"lease_owner\\" TEXT,\\n \\"lease_token\\" TEXT,\\n \\"lease_expires_at\\" TIMESTAMP,\\n \\"last_error\\" TEXT,\\n \\"completed_at\\" TIMESTAMP,\\n \\"replay_count\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"provider":{"type":"TEXT","notNull":true,"unique":false},"delivery_id":{"type":"TEXT","notNull":true,"unique":false},"installation_key":{"type":"TEXT","notNull":false,"unique":false},"repository_key":{"type":"TEXT","notNull":false,"unique":false},"event_name":{"type":"TEXT","notNull":true,"unique":false},"payload":{"type":"JSON","notNull":false,"unique":false},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"pending"},"attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"max_attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":5},"received_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"next_attempt_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"lease_owner":{"type":"TEXT","notNull":false,"unique":false},"lease_token":{"type":"TEXT","notNull":false,"unique":false},"lease_expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"last_error":{"type":"TEXT","notNull":false,"unique":false},"completed_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"replay_count":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"_smrt_forge_deliveries_tenant_id_provider_idx","columns":["tenant_id","provider","delivery_id"],"unique":true},{"name":"_smrt_forge_deliveries_slug_context_idx","columns":["slug","context"]},{"name":"_smrt_forge_deliveries_status_next_attempt_at_idx","columns":["status","next_attempt_at"]},{"name":"_smrt_forge_deliveries_status_lease_expires_at_idx","columns":["status","lease_expires_at"]},{"name":"_smrt_forge_deliveries_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"38d3f476"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtJobEvent":{"name":"smrtjobevent","className":"SmrtJobEvent","qualifiedName":"@happyvertical/smrt-jobs:SmrtJobEvent","collection":"smrtjobevents","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-job-event.ts","packageName":"@happyvertical/smrt-jobs","fields":{"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"jobId":{"type":"foreignKey","required":true,"related":"SmrtJob","_meta":{"required":true,"constraint":false}},"type":{"type":"text","required":true,"default":"log","_meta":{"required":true,"default":"log"}},"level":{"type":"text","required":true,"default":"info","_meta":{"required":true,"default":"info"},"enum":["debug","info","warn","error"]},"stage":{"type":"text","required":false,"_meta":{"nullable":true}},"progress":{"type":"integer","required":false,"_meta":{"nullable":true}},"message":{"type":"text","required":true,"default":"","_meta":{"required":true,"default":""}},"data":{"type":"json","required":false,"_meta":{}},"createdAt":{"type":"datetime","required":true,"_meta":{"required":true}}},"methods":{"toCursor":{"name":"toCursor","async":false,"parameters":[],"returnType":"string","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_job_events","api":false,"cli":{"include":["list","get"],"http":false,"skipApiCheck":true},"mcp":false,"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"SmrtJobEvent","collectionExportName":"SmrtJobEventCollection","validationRules":[{"field":"jobId","rule":"required","fieldType":"foreignKey"},{"field":"type","rule":"required","fieldType":"text"},{"field":"level","rule":"required","fieldType":"text"},{"field":"message","rule":"required","fieldType":"text"},{"field":"createdAt","rule":"required","fieldType":"datetime"}],"schema":{"tableName":"_smrt_job_events","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_job_events\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"job_id\\" UUID NOT NULL,\\n \\"type\\" TEXT NOT NULL DEFAULT 'log',\\n \\"level\\" TEXT NOT NULL DEFAULT 'info',\\n \\"stage\\" TEXT,\\n \\"progress\\" INTEGER,\\n \\"message\\" TEXT NOT NULL DEFAULT '',\\n \\"data\\" JSON\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"job_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false},"type":{"type":"TEXT","notNull":true,"unique":false,"default":"log"},"level":{"type":"TEXT","notNull":true,"unique":false,"default":"info"},"stage":{"type":"TEXT","notNull":false,"unique":false},"progress":{"type":"INTEGER","notNull":false,"unique":false},"message":{"type":"TEXT","notNull":true,"unique":false,"default":""},"data":{"type":"JSON","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_job_events_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"_smrt_job_events_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"_smrt_job_events_job_id_idx","columns":["job_id"]}],"version":"8a9faeec"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtJobEventCollection":{"name":"smrtjobeventcollection","className":"SmrtJobEventCollection","qualifiedName":"@happyvertical/smrt-jobs:SmrtJobEventCollection","collection":"smrtjobevents","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-job-event.ts","packageName":"@happyvertical/smrt-jobs","fields":{},"methods":{"initialize":{"name":"initialize","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"append":{"name":"append","async":true,"parameters":[{"name":"input","type":"SmrtJobEventData","optional":false}],"returnType":"Promise<SmrtJobEvent>","isStatic":false,"isPublic":true},"listByJob":{"name":"listByJob","async":true,"parameters":[{"name":"jobId","type":"string","optional":false},{"name":"options","type":"ListJobEventsOptions","optional":true}],"returnType":"Promise<SmrtJobEvent[]>","isStatic":false,"isPublic":true},"listSinceCursor":{"name":"listSinceCursor","async":true,"parameters":[{"name":"options","type":"any","optional":true,"typeUnresolved":true}],"returnType":"Promise<SmrtJobEvent[]>","isStatic":false,"isPublic":true},"latestProgressByJobIds":{"name":"latestProgressByJobIds","async":true,"parameters":[{"name":"jobIds","type":"string[]","optional":false},{"name":"options","type":"object","optional":true,"memberTypes":["string | null"]}],"returnType":"Promise<Map<string, SmrtJobEvent>>","isStatic":false,"isPublic":true},"listTerminalOutcomes":{"name":"listTerminalOutcomes","async":true,"parameters":[{"name":"options","type":"ListTerminalOutcomesOptions","optional":false}],"returnType":"Promise<SmrtJobTerminalOutcomePage>","isStatic":false,"isPublic":true},"cleanup":{"name":"cleanup","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["Date","boolean"]}],"returnType":"Promise<number>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_job_events","api":false,"mcp":false},"extends":"SmrtCollection","extendsTypeArg":"SmrtJobEvent","exportName":"SmrtJobEventCollection","collectionExportName":"SmrtJobEventCollectionCollection","schema":{"tableName":"_smrt_job_events","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_job_events\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"job_id\\" UUID NOT NULL,\\n \\"type\\" TEXT NOT NULL DEFAULT 'log',\\n \\"level\\" TEXT NOT NULL DEFAULT 'info',\\n \\"stage\\" TEXT,\\n \\"progress\\" INTEGER,\\n \\"message\\" TEXT NOT NULL DEFAULT '',\\n \\"data\\" JSON\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"job_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false},"type":{"type":"TEXT","notNull":true,"unique":false,"default":"log"},"level":{"type":"TEXT","notNull":true,"unique":false,"default":"info"},"stage":{"type":"TEXT","notNull":false,"unique":false},"progress":{"type":"INTEGER","notNull":false,"unique":false},"message":{"type":"TEXT","notNull":true,"unique":false,"default":""},"data":{"type":"JSON","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_job_events_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"_smrt_job_events_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"_smrt_job_events_job_id_idx","columns":["job_id"]}],"version":"8a9faeec"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtJob":{"name":"smrtjob","className":"SmrtJob","qualifiedName":"@happyvertical/smrt-jobs:SmrtJob","collection":"smrtjobs","description":"Persistent job record stored in the _smrt_jobs system table.","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-job.ts","packageName":"@happyvertical/smrt-jobs","fields":{"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"queue":{"type":"text","required":true,"default":"default","_meta":{"required":true,"default":"default"}},"objectType":{"type":"text","required":true,"_meta":{"required":true}},"objectId":{"type":"text","required":false,"_meta":{"nullable":true}},"method":{"type":"text","required":true,"_meta":{"required":true}},"args":{"type":"json","required":false,"_meta":{}},"runAt":{"type":"datetime","required":true,"_meta":{"required":true,"indexed":true}},"priority":{"type":"integer","required":true,"default":50,"_meta":{"required":true,"default":50}},"status":{"type":"text","required":true,"default":"pending","_meta":{"required":true,"default":"pending","indexed":true},"enum":["pending","ready","running","completed","failed","cancelled"]},"attempts":{"type":"integer","required":true,"default":0,"_meta":{"required":true,"default":0}},"maxAttempts":{"type":"integer","required":true,"default":3,"_meta":{"required":true,"default":3}},"timeout":{"type":"integer","required":true,"default":300000,"_meta":{"required":true,"default":300000}},"timeoutBehavior":{"type":"text","required":true,"default":"fail","_meta":{"required":true,"default":"fail"},"enum":["fail","kill","warn"]},"startedAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"completedAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"lastError":{"type":"text","required":false,"_meta":{"nullable":true}},"resultPointer":{"type":"text","required":false,"_meta":{"nullable":true}},"taskId":{"type":"text","required":false,"_meta":{"nullable":true,"unique":true}},"taskOwnerId":{"type":"text","required":false,"_meta":{"nullable":true}},"taskResult":{"type":"json","required":false,"_meta":{"nullable":true}},"taskInputRequests":{"type":"json","required":false,"_meta":{"nullable":true}},"taskInputResponses":{"type":"json","required":false,"_meta":{"nullable":true}},"retryStrategy":{"type":"json","required":false,"_meta":{}},"workerId":{"type":"text","required":false,"_meta":{"nullable":true}},"workerHeartbeat":{"type":"datetime","required":false,"_meta":{"nullable":true}}},"methods":{"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"retry":{"name":"retry","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"cancel":{"name":"cancel","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getDescription":{"name":"getDescription","async":false,"parameters":[],"returnType":"string","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_jobs","api":false,"cli":{"include":["list","get","retry","cancel"],"skipApiCheck":true,"http":false},"mcp":false,"indexes":[{"name":"_smrt_jobs_status_run_at_idx","columns":["status","runAt"]},{"name":"_smrt_jobs_ready_idx","columns":["status","runAt"],"where":"status = 'pending' AND (task_input_requests IS NULL OR task_input_responses IS NOT NULL)"}],"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"SmrtJob","collectionExportName":"SmrtJobCollection","validationRules":[{"field":"queue","rule":"required","fieldType":"text"},{"field":"objectType","rule":"required","fieldType":"text"},{"field":"method","rule":"required","fieldType":"text"},{"field":"runAt","rule":"required","fieldType":"datetime"},{"field":"priority","rule":"required","fieldType":"integer"},{"field":"status","rule":"required","fieldType":"text"},{"field":"attempts","rule":"required","fieldType":"integer"},{"field":"maxAttempts","rule":"required","fieldType":"integer"},{"field":"timeout","rule":"required","fieldType":"integer"},{"field":"timeoutBehavior","rule":"required","fieldType":"text"}],"schema":{"tableName":"_smrt_jobs","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_jobs\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"queue\\" TEXT NOT NULL DEFAULT 'default',\\n \\"object_type\\" TEXT NOT NULL,\\n \\"object_id\\" TEXT,\\n \\"method\\" TEXT NOT NULL,\\n \\"args\\" JSON,\\n \\"run_at\\" TIMESTAMP NOT NULL,\\n \\"priority\\" INTEGER NOT NULL DEFAULT 50,\\n \\"status\\" TEXT NOT NULL DEFAULT 'pending',\\n \\"attempts\\" INTEGER NOT NULL DEFAULT 0,\\n \\"max_attempts\\" INTEGER NOT NULL DEFAULT 3,\\n \\"timeout\\" INTEGER NOT NULL DEFAULT 300000,\\n \\"timeout_behavior\\" TEXT NOT NULL DEFAULT 'fail',\\n \\"started_at\\" TIMESTAMP,\\n \\"completed_at\\" TIMESTAMP,\\n \\"last_error\\" TEXT,\\n \\"result_pointer\\" TEXT,\\n \\"task_id\\" TEXT UNIQUE,\\n \\"task_owner_id\\" TEXT,\\n \\"task_result\\" JSON,\\n \\"task_input_requests\\" JSON,\\n \\"task_input_responses\\" JSON,\\n \\"retry_strategy\\" JSON,\\n \\"worker_id\\" TEXT,\\n \\"worker_heartbeat\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"queue":{"type":"TEXT","notNull":true,"unique":false,"default":"default"},"object_type":{"type":"TEXT","notNull":true,"unique":false},"object_id":{"type":"TEXT","notNull":false,"unique":false},"method":{"type":"TEXT","notNull":true,"unique":false},"args":{"type":"JSON","notNull":false,"unique":false},"run_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"priority":{"type":"INTEGER","notNull":true,"unique":false,"default":50},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"pending"},"attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"max_attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":3},"timeout":{"type":"INTEGER","notNull":true,"unique":false,"default":300000},"timeout_behavior":{"type":"TEXT","notNull":true,"unique":false,"default":"fail"},"started_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"completed_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"last_error":{"type":"TEXT","notNull":false,"unique":false},"result_pointer":{"type":"TEXT","notNull":false,"unique":false},"task_id":{"type":"TEXT","notNull":false,"unique":true},"task_owner_id":{"type":"TEXT","notNull":false,"unique":false},"task_result":{"type":"JSON","notNull":false,"unique":false},"task_input_requests":{"type":"JSON","notNull":false,"unique":false},"task_input_responses":{"type":"JSON","notNull":false,"unique":false},"retry_strategy":{"type":"JSON","notNull":false,"unique":false},"worker_id":{"type":"TEXT","notNull":false,"unique":false},"worker_heartbeat":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_jobs_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"_smrt_jobs_run_at_idx","columns":["run_at"]},{"name":"_smrt_jobs_status_idx","columns":["status"]},{"name":"_smrt_jobs_status_run_at_idx","columns":["status","run_at"]},{"name":"_smrt_jobs_ready_idx","columns":["status","run_at"],"where":"status = 'pending' AND (task_input_requests IS NULL OR task_input_responses IS NOT NULL)"},{"name":"_smrt_jobs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"43e1324f"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtJobCollection":{"name":"smrtjobcollection","className":"SmrtJobCollection","qualifiedName":"@happyvertical/smrt-jobs:SmrtJobCollection","collection":"smrtjobs","description":"Collection for managing SmrtJob objects","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-job.ts","packageName":"@happyvertical/smrt-jobs","fields":{},"methods":{"initialize":{"name":"initialize","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"listByStatus":{"name":"listByStatus","async":true,"parameters":[{"name":"status","type":"JobStatus | JobStatus[]","optional":false,"unionBranches":[{"type":"JobStatus"},{"type":"JobStatus[]"}]},{"name":"options","type":"object","optional":true,"memberTypes":["number","string"]}],"returnType":"Promise<SmrtJob[]>","isStatic":false,"isPublic":true},"listReady":{"name":"listReady","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["number","string[]"]}],"returnType":"Promise<SmrtJob[]>","isStatic":false,"isPublic":true},"claimReady":{"name":"claimReady","async":true,"parameters":[{"name":"options","type":"ClaimReadyOptions","optional":false}],"returnType":"Promise<SmrtJob[]>","isStatic":false,"isPublic":true},"countInFlightForTenant":{"name":"countInFlightForTenant","async":true,"parameters":[{"name":"tenantId","type":"string | null","optional":false,"unionBranches":[{"type":"string"},{"type":"null"}]}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"enqueueJob":{"name":"enqueueJob","async":true,"parameters":[{"name":"data","type":"SmrtJobData","optional":false},{"name":"options","type":"EnqueueJobOptions","optional":true}],"returnType":"Promise<SmrtJob>","isStatic":false,"isPublic":true},"stats":{"name":"stats","async":true,"parameters":[{"name":"queue","type":"string","optional":true}],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"cleanup":{"name":"cleanup","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["Date","number","boolean"]}],"returnType":"Promise<number>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_jobs","api":false,"mcp":false},"extends":"SmrtCollection","extendsTypeArg":"SmrtJob","exportName":"SmrtJobCollection","collectionExportName":"SmrtJobCollectionCollection","schema":{"tableName":"_smrt_jobs","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_jobs\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"queue\\" TEXT NOT NULL DEFAULT 'default',\\n \\"object_type\\" TEXT NOT NULL,\\n \\"object_id\\" TEXT,\\n \\"method\\" TEXT NOT NULL,\\n \\"args\\" JSON,\\n \\"run_at\\" TIMESTAMP NOT NULL,\\n \\"priority\\" INTEGER NOT NULL DEFAULT 50,\\n \\"status\\" TEXT NOT NULL DEFAULT 'pending',\\n \\"attempts\\" INTEGER NOT NULL DEFAULT 0,\\n \\"max_attempts\\" INTEGER NOT NULL DEFAULT 3,\\n \\"timeout\\" INTEGER NOT NULL DEFAULT 300000,\\n \\"timeout_behavior\\" TEXT NOT NULL DEFAULT 'fail',\\n \\"started_at\\" TIMESTAMP,\\n \\"completed_at\\" TIMESTAMP,\\n \\"last_error\\" TEXT,\\n \\"result_pointer\\" TEXT,\\n \\"task_id\\" TEXT UNIQUE,\\n \\"task_owner_id\\" TEXT,\\n \\"task_result\\" JSON,\\n \\"task_input_requests\\" JSON,\\n \\"task_input_responses\\" JSON,\\n \\"retry_strategy\\" JSON,\\n \\"worker_id\\" TEXT,\\n \\"worker_heartbeat\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"queue":{"type":"TEXT","notNull":true,"unique":false,"default":"default"},"object_type":{"type":"TEXT","notNull":true,"unique":false},"object_id":{"type":"TEXT","notNull":false,"unique":false},"method":{"type":"TEXT","notNull":true,"unique":false},"args":{"type":"JSON","notNull":false,"unique":false},"run_at":{"type":"TIMESTAMP","notNull":true,"unique":false},"priority":{"type":"INTEGER","notNull":true,"unique":false,"default":50},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"pending"},"attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"max_attempts":{"type":"INTEGER","notNull":true,"unique":false,"default":3},"timeout":{"type":"INTEGER","notNull":true,"unique":false,"default":300000},"timeout_behavior":{"type":"TEXT","notNull":true,"unique":false,"default":"fail"},"started_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"completed_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"last_error":{"type":"TEXT","notNull":false,"unique":false},"result_pointer":{"type":"TEXT","notNull":false,"unique":false},"task_id":{"type":"TEXT","notNull":false,"unique":true},"task_owner_id":{"type":"TEXT","notNull":false,"unique":false},"task_result":{"type":"JSON","notNull":false,"unique":false},"task_input_requests":{"type":"JSON","notNull":false,"unique":false},"task_input_responses":{"type":"JSON","notNull":false,"unique":false},"retry_strategy":{"type":"JSON","notNull":false,"unique":false},"worker_id":{"type":"TEXT","notNull":false,"unique":false},"worker_heartbeat":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_jobs_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"_smrt_jobs_run_at_idx","columns":["run_at"]},{"name":"_smrt_jobs_status_idx","columns":["status"]},{"name":"_smrt_jobs_status_run_at_idx","columns":["status","run_at"]},{"name":"_smrt_jobs_ready_idx","columns":["status","run_at"],"where":"status = 'pending' AND (task_input_requests IS NULL OR task_input_responses IS NOT NULL)"},{"name":"_smrt_jobs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"43e1324f"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtWorker":{"name":"smrtworker","className":"SmrtWorker","qualifiedName":"@happyvertical/smrt-jobs:SmrtWorker","collection":"smrtworkers","description":"Liveness record for a single TaskRunner / ScheduleRunner incarnation, stored in the _smrt_workers system table.","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-worker.ts","packageName":"@happyvertical/smrt-jobs","fields":{"workerId":{"type":"text","required":true,"_meta":{"required":true}},"pid":{"type":"integer","required":false,"_meta":{"nullable":true}},"hostname":{"type":"text","required":false,"_meta":{"nullable":true}},"startedAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"heartbeatAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"leaseExpiresAt":{"type":"datetime","required":false,"_meta":{"nullable":true}},"status":{"type":"text","required":true,"default":"running","_meta":{"required":true,"default":"running"}}},"methods":{},"decoratorConfig":{"tableName":"_smrt_workers","conflictColumns":["worker_id"],"api":false,"cli":false,"mcp":false},"extends":"SmrtObject","exportName":"SmrtWorker","collectionExportName":"SmrtWorkerCollection","validationRules":[{"field":"workerId","rule":"required","fieldType":"text"},{"field":"status","rule":"required","fieldType":"text"}],"schema":{"tableName":"_smrt_workers","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_workers\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"worker_id\\" TEXT NOT NULL,\\n \\"pid\\" INTEGER,\\n \\"hostname\\" TEXT,\\n \\"started_at\\" TIMESTAMP,\\n \\"heartbeat_at\\" TIMESTAMP,\\n \\"lease_expires_at\\" TIMESTAMP,\\n \\"status\\" TEXT NOT NULL DEFAULT 'running'\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"worker_id":{"type":"TEXT","notNull":true,"unique":false},"pid":{"type":"INTEGER","notNull":false,"unique":false},"hostname":{"type":"TEXT","notNull":false,"unique":false},"started_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"heartbeat_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"lease_expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"running"}},"indexes":[{"name":"_smrt_workers_worker_id_idx","columns":["worker_id"],"unique":true},{"name":"_smrt_workers_slug_context_idx","columns":["slug","context"]},{"name":"_smrt_workers_created_at_idx","columns":["created_at"]}],"version":"bfaad669"},"importPath":"@happyvertical/smrt-jobs"},"@happyvertical/smrt-jobs:SmrtWorkerCollection":{"name":"smrtworkercollection","className":"SmrtWorkerCollection","qualifiedName":"@happyvertical/smrt-jobs:SmrtWorkerCollection","collection":"smrtworkers","description":"Collection for managing _smrt_workers liveness rows.","filePath":"/home/runner/work/smrt/smrt/packages/jobs/src/smrt-worker.ts","packageName":"@happyvertical/smrt-jobs","fields":{},"methods":{"assertReady":{"name":"assertReady","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"tableReady":{"name":"tableReady","async":true,"parameters":[],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"registerWorker":{"name":"registerWorker","async":true,"parameters":[{"name":"input","type":"RegisterWorkerInput","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"renewLease":{"name":"renewLease","async":true,"parameters":[{"name":"workerKey","type":"string","optional":false},{"name":"leaseTtlMs","type":"number","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"expireWorker":{"name":"expireWorker","async":true,"parameters":[{"name":"workerKey","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"freshLeaseWorkerKeys":{"name":"freshLeaseWorkerKeys","async":true,"parameters":[],"returnType":"Promise<Set<string>>","isStatic":false,"isPublic":true},"pruneExpired":{"name":"pruneExpired","async":true,"parameters":[{"name":"graceMs","type":"number","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_workers","api":false,"mcp":false,"cli":false},"extends":"SmrtCollection","extendsTypeArg":"SmrtWorker","exportName":"SmrtWorkerCollection","collectionExportName":"SmrtWorkerCollectionCollection","schema":{"tableName":"_smrt_workers","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_workers\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"worker_id\\" TEXT NOT NULL,\\n \\"pid\\" INTEGER,\\n \\"hostname\\" TEXT,\\n \\"started_at\\" TIMESTAMP,\\n \\"heartbeat_at\\" TIMESTAMP,\\n \\"lease_expires_at\\" TIMESTAMP,\\n \\"status\\" TEXT NOT NULL DEFAULT 'running'\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"worker_id":{"type":"TEXT","notNull":true,"unique":false},"pid":{"type":"INTEGER","notNull":false,"unique":false},"hostname":{"type":"TEXT","notNull":false,"unique":false},"started_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"heartbeat_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"lease_expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"status":{"type":"TEXT","notNull":true,"unique":false,"default":"running"}},"indexes":[{"name":"_smrt_workers_worker_id_idx","columns":["worker_id"],"unique":true},{"name":"_smrt_workers_slug_context_idx","columns":["slug","context"]},{"name":"_smrt_workers_created_at_idx","columns":["created_at"]}],"version":"bfaad669"},"importPath":"@happyvertical/smrt-jobs"}},"moduleType":"smrt","smrtDependencies":["@happyvertical/smrt-core","@happyvertical/smrt-tenancy"],"browser":{"status":"server-only","issues":["#3615","#3624","#3627"],"reason":"worker_threads runner (the edge commerce inherits), node:events/crypto, bull/bullmq/cloud-tasks SDK graph","via":["@happyvertical/smrt-tenancy"]},"stampsConstructors":true}`));
14
14
  //#endregion
15
15
  //#region src/background-policy.ts
16
16
  var MAX_JOB_RETRIES = 25;
@@ -2447,4 +2447,4 @@ function createTaskRunner(config) {
2447
2447
  //#endregion
2448
2448
  export { SmrtJobCollection as A, isBackgroundEligibleMethod as B, DEFAULT_RETENTION_SWEEP_INTERVAL_MS as C, startRetentionSweeper as D, registerJobRetentionTasks as E, TenantJobCapExceededError as F, assertWithinTenantCreationCap as I, backgroundEligible as L, SmrtJobEventCollection as M, DEFAULT_TENANT_JOB_CAP as N, unregisterJobRetentionTasks as O, MAX_JOB_RETRIES as P, clampRetries as R, DEFAULT_JOB_RETENTION as S, JOB_EVENTS_RETENTION_TASK as T, markBackgroundEligible as V, requestMcpTaskInput as _, isRunnerExecutionContext as a, redactErrorForPersistence as b, SmrtWorkerCollection as c, McpTaskNotFoundError as d, McpTaskStore as f, requestMcpTaskContinuation as g, getMcpTaskMarker as h, getActiveJobExecutionContext as i, SmrtJobEvent as j, SmrtJob as k, MCP_TASKS_EXTENSION as l, createMcpTaskResult as m, TaskRunner as n, DEFAULT_TASK_HEARTBEAT_INTERVAL_MS as o, McpTaskSuspendedError as p, createTaskRunner as r, SmrtWorker as s, JobTimeoutError as t, McpTaskCancelledError as u, taskFromJob as v, JOBS_RETENTION_TASK as w, redactErrorMessage as x, JobContextLogger as y, getBackgroundEligibleMethods as z };
2449
2449
 
2450
- //# sourceMappingURL=runner-CWurlpMA.js.map
2450
+ //# sourceMappingURL=runner-CbKjN2tD.js.map