@happyvertical/smrt-jobs 0.40.62 → 0.40.63
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 +26 -0
- package/dist/background-policy.d.ts +22 -10
- package/dist/background-policy.d.ts.map +1 -1
- package/dist/chunks/{runner-DwSN-ZHr.js → runner-2pHbN2QY.js} +2 -2
- package/dist/chunks/runner-2pHbN2QY.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/manifest.json +1 -1
- package/dist/runner.js +1 -1
- package/dist/smrt-knowledge.json +5 -5
- package/package.json +11 -11
- package/dist/chunks/runner-DwSN-ZHr.js.map +0 -1
package/AGENTS.md
CHANGED
|
@@ -109,6 +109,32 @@ transitions and monotonic checkpoints in
|
|
|
109
109
|
|
|
110
110
|
Mixin that adds `bg()` and `background()` to any SmrtObject. Uses WeakMap for collection caching per DB instance.
|
|
111
111
|
|
|
112
|
+
## Background policy (`background-policy.ts`, S5 audit #1402)
|
|
113
|
+
|
|
114
|
+
Three opt-in guards, all owned **and enforced here**. Other packages apply the
|
|
115
|
+
eligibility marker (`reports`, `support`, `fields`, the MCP conformance
|
|
116
|
+
fixture), but nothing outside this package acts on it — `TaskRunner` is the only
|
|
117
|
+
reader. In particular `@happyvertical/smrt-agents` has no reference to any of
|
|
118
|
+
these guards and does not depend on this package, so marking a method does not
|
|
119
|
+
change what the agents runtime will dispatch.
|
|
120
|
+
|
|
121
|
+
- `clampRetries()` / `MAX_JOB_RETRIES` (25): a requested retry count above the
|
|
122
|
+
ceiling is clamped, not rejected.
|
|
123
|
+
- `assertWithinTenantCreationCap(tenantId, current, cap)` /
|
|
124
|
+
`DEFAULT_TENANT_JOB_CAP` (10 000): throws `TenantJobCapExceededError` when the
|
|
125
|
+
tenant's count of non-terminal jobs is already at or above the cap. Applied in
|
|
126
|
+
`SmrtJobCollection.enqueueJob()` (`smrt-job.ts`), which is the single choke
|
|
127
|
+
point for the builder and `ScheduleRunner`; a `null` tenant and a `cap <= 0`
|
|
128
|
+
both skip the check. Deliberately not serialized — concurrent enqueues can
|
|
129
|
+
overshoot by the number of in-flight creators (see the method's own comment).
|
|
130
|
+
- `@backgroundEligible()` / `markBackgroundEligible()` /
|
|
131
|
+
`isBackgroundEligibleMethod()`: an allowlist of methods `TaskRunner` may
|
|
132
|
+
dispatch, enforced at exactly one call site (`runner.ts`, after the method
|
|
133
|
+
lookup). **Restrictive, not enabling** — a class with no marked methods allows
|
|
134
|
+
any of its methods, and the first mark makes the set exhaustive, excluding
|
|
135
|
+
every sibling method. Adding the decorator to one method of an existing class
|
|
136
|
+
is therefore a behaviour change for the rest of it.
|
|
137
|
+
|
|
112
138
|
## Gotchas
|
|
113
139
|
|
|
114
140
|
- **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)
|
|
@@ -14,8 +14,14 @@
|
|
|
14
14
|
* opt-in allowlist of methods that may be invoked by the runner. The runner's
|
|
15
15
|
* dispatch is already bounded to existing prototype methods (no eval / dynamic
|
|
16
16
|
* import), but a class can further restrict which of its methods are reachable
|
|
17
|
-
* from a persisted job row.
|
|
18
|
-
*
|
|
17
|
+
* from a persisted job row.
|
|
18
|
+
*
|
|
19
|
+
* All three live in and are enforced by this package (`@happyvertical/smrt-jobs`).
|
|
20
|
+
* Other packages apply the marker (`smrt-reports`, `smrt-support`,
|
|
21
|
+
* `smrt-fields`), but the only thing that reads it is `TaskRunner`'s dispatch in
|
|
22
|
+
* `runner.ts`. `@happyvertical/smrt-agents` neither imports nor honours it, and
|
|
23
|
+
* does not depend on this package. Marking a method does **not** make it
|
|
24
|
+
* background-eligible anywhere outside the jobs runner.
|
|
19
25
|
*/
|
|
20
26
|
/**
|
|
21
27
|
* Hard ceiling on retry attempts a caller may request via `.retries(n)` /
|
|
@@ -60,9 +66,9 @@ export declare function assertWithinTenantCreationCap(tenantId: string | null |
|
|
|
60
66
|
*/
|
|
61
67
|
export interface BackgroundEligibleClass {
|
|
62
68
|
/**
|
|
63
|
-
* Method names that may be invoked by
|
|
64
|
-
*
|
|
65
|
-
*
|
|
69
|
+
* Method names that may be invoked by `TaskRunner`. When present (even if
|
|
70
|
+
* empty), it is treated as an exhaustive allowlist. When absent, the runner
|
|
71
|
+
* falls back to its default behaviour (any existing method).
|
|
66
72
|
*/
|
|
67
73
|
backgroundEligibleMethods?: ReadonlyArray<string> | ReadonlySet<string>;
|
|
68
74
|
}
|
|
@@ -73,8 +79,9 @@ export interface BackgroundEligibleClass {
|
|
|
73
79
|
* Once any method is marked, the runner refuses to dispatch a job whose
|
|
74
80
|
* `method` is not in the set — turning the dispatch surface from "any prototype
|
|
75
81
|
* method" into an explicit contract. Use this when applying the
|
|
76
|
-
* {@link backgroundEligible} decorator is inconvenient
|
|
77
|
-
*
|
|
82
|
+
* {@link backgroundEligible} decorator is inconvenient. Non-decorator code can
|
|
83
|
+
* skip the helper entirely and declare the static array directly, as
|
|
84
|
+
* `smrt-fields` does in `usage-learning.ts`.
|
|
78
85
|
*
|
|
79
86
|
* @param ctor - The class constructor to annotate.
|
|
80
87
|
* @param methods - Method names to allow.
|
|
@@ -83,11 +90,16 @@ export declare function markBackgroundEligible(ctor: object, ...methods: string[
|
|
|
83
90
|
/**
|
|
84
91
|
* Decorator: mark a method as background-eligible.
|
|
85
92
|
*
|
|
93
|
+
* This is **restrictive, not enabling**. Without it, `TaskRunner` will dispatch
|
|
94
|
+
* any existing prototype method; the first `@backgroundEligible()` on a class
|
|
95
|
+
* closes that surface and turns the set into an exhaustive allowlist, so every
|
|
96
|
+
* *other* method on that class stops being reachable from a persisted job row.
|
|
97
|
+
* Adding it to one method of an existing class is therefore a behaviour change
|
|
98
|
+
* for its siblings — mark all the methods you dispatch, or none of them.
|
|
99
|
+
*
|
|
86
100
|
* This is a legacy (`experimentalDecorators`) method decorator — the mode the
|
|
87
101
|
* SMRT monorepo compiles with. Applying it (one or more times) builds up the
|
|
88
|
-
* static `backgroundEligibleMethods` allowlist on the owning class.
|
|
89
|
-
* method is marked, the runner will refuse to dispatch a job whose `method` is
|
|
90
|
-
* not in the set.
|
|
102
|
+
* static `backgroundEligibleMethods` allowlist on the owning class.
|
|
91
103
|
*
|
|
92
104
|
* @example
|
|
93
105
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background-policy.d.ts","sourceRoot":"","sources":["../src/background-policy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"background-policy.d.ts","sourceRoot":"","sources":["../src/background-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQtD;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;aAEhC,QAAQ,EAAE,MAAM;aAChB,GAAG,EAAE,MAAM;aACX,OAAO,EAAE,MAAM;gBAFf,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM;CAQlC;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,IAAI,CAKN;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;CACzE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,GAAG,OAAO,EAAE,MAAM,EAAE,GACnB,IAAI,CASN;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,KAE9B,QAAQ,MAAM,EACd,aAAa,MAAM,GAAG,MAAM,EAC5B,aAAa,kBAAkB,KAC9B,kBAAkB,GAAG,SAAS,CAOlC;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,OAAO,GACZ,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAK5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAIT"}
|
|
@@ -7,7 +7,7 @@ import { EventEmitter } from "node:events";
|
|
|
7
7
|
import { Worker } from "node:worker_threads";
|
|
8
8
|
import { createLogger } from "@happyvertical/logger";
|
|
9
9
|
//#region src/__smrt-register__.ts
|
|
10
|
-
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-jobs\",\"packageVersion\":\"0.40.62\",\"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\"}},\"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,\"tenantScoped\":{\"mode\":\"required\"}},\"extends\":\"SmrtObject\",\"exportName\":\"ForgeDelivery\",\"collectionExportName\":\"ForgeDeliveryCollection\",\"validationRules\":[{\"field\":\"tenantId\",\"rule\":\"required\",\"fieldType\":\"text\"},{\"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_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_forge_deliveries_tenant_id_provider_idx\",\"columns\":[\"tenant_id\",\"provider\",\"delivery_id\"],\"unique\":true}],\"version\":\"38d3f476\"}},\"@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\":\"tenantId\",\"rule\":\"required\",\"fieldType\":\"text\"},{\"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_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_forge_projection_checkpoints_tenant_id_projection_idx\",\"columns\":[\"tenant_id\",\"projection\",\"subject_key\"],\"unique\":true}],\"version\":\"39c12493\"}},\"@happyvertical/smrt-jobs:ForgeDeliveryCollection\":{\"name\":\"forgedeliverycollection\",\"className\":\"ForgeDeliveryCollection\",\"qualifiedName\":\"@happyvertical/smrt-jobs:ForgeDeliveryCollection\",\"collection\":\"forgedeliveries\",\"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);\",\"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\"}},\"indexes\":[{\"name\":\"_smrt_forge_deliveries_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_forge_deliveries_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"0a680146\"}},\"@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}},\"type\":{\"type\":\"text\",\"required\":true,\"default\":\"log\",\"_meta\":{\"required\":true,\"default\":\"log\"}},\"level\":{\"type\":\"text\",\"required\":true,\"default\":\"info\",\"_meta\":{\"required\":true,\"default\":\"info\"}},\"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\"}},\"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_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_job_events_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"8a9faeec\"}},\"@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\",\"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}],\"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}],\"returnType\":\"Promise<Map<string, SmrtJobEvent>>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_job_events\"},\"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);\",\"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\"}},\"indexes\":[{\"name\":\"_smrt_job_events_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_job_events_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"bcf5b3bc\"}},\"@happyvertical/smrt-jobs:SmrtJob\":{\"name\":\"smrtjob\",\"className\":\"SmrtJob\",\"qualifiedName\":\"@happyvertical/smrt-jobs:SmrtJob\",\"collection\":\"smrtjobs\",\"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}},\"priority\":{\"type\":\"integer\",\"required\":true,\"default\":50,\"_meta\":{\"required\":true,\"default\":50}},\"status\":{\"type\":\"text\",\"required\":true,\"default\":\"pending\",\"_meta\":{\"required\":true,\"default\":\"pending\"}},\"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\"}},\"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\",\"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,\"tenantScoped\":{\"mode\":\"optional\"}},\"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_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_jobs_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"43e1324f\"}},\"@happyvertical/smrt-jobs:SmrtJobCollection\":{\"name\":\"smrtjobcollection\",\"className\":\"SmrtJobCollection\",\"qualifiedName\":\"@happyvertical/smrt-jobs:SmrtJobCollection\",\"collection\":\"smrtjobs\",\"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\",\"isStatic\":false,\"isPublic\":true},\"listByStatus\":{\"name\":\"listByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"JobStatus | JobStatus[]\",\"optional\":false},{\"name\":\"options\",\"type\":\"object\",\"optional\":true}],\"returnType\":\"Promise<SmrtJob[]>\",\"isStatic\":false,\"isPublic\":true},\"listReady\":{\"name\":\"listReady\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"object\",\"optional\":true}],\"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}],\"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}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_jobs\"},\"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);\",\"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\"}},\"indexes\":[{\"name\":\"_smrt_jobs_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_jobs_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"d99c04d1\"}},\"@happyvertical/smrt-jobs:SmrtWorker\":{\"name\":\"smrtworker\",\"className\":\"SmrtWorker\",\"qualifiedName\":\"@happyvertical/smrt-jobs:SmrtWorker\",\"collection\":\"smrtworkers\",\"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_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_workers_worker_id_idx\",\"columns\":[\"worker_id\"],\"unique\":true}],\"version\":\"bfaad669\"}},\"@happyvertical/smrt-jobs:SmrtWorkerCollection\":{\"name\":\"smrtworkercollection\",\"className\":\"SmrtWorkerCollection\",\"qualifiedName\":\"@happyvertical/smrt-jobs:SmrtWorkerCollection\",\"collection\":\"smrtworkers\",\"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\"},\"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);\",\"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\"}},\"indexes\":[{\"name\":\"_smrt_workers_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_workers_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"d3a7edbd\"}}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
10
|
+
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-jobs\",\"packageVersion\":\"0.40.63\",\"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\"}},\"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,\"tenantScoped\":{\"mode\":\"required\"}},\"extends\":\"SmrtObject\",\"exportName\":\"ForgeDelivery\",\"collectionExportName\":\"ForgeDeliveryCollection\",\"validationRules\":[{\"field\":\"tenantId\",\"rule\":\"required\",\"fieldType\":\"text\"},{\"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_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_forge_deliveries_tenant_id_provider_idx\",\"columns\":[\"tenant_id\",\"provider\",\"delivery_id\"],\"unique\":true}],\"version\":\"38d3f476\"}},\"@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\":\"tenantId\",\"rule\":\"required\",\"fieldType\":\"text\"},{\"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_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_forge_projection_checkpoints_tenant_id_projection_idx\",\"columns\":[\"tenant_id\",\"projection\",\"subject_key\"],\"unique\":true}],\"version\":\"39c12493\"}},\"@happyvertical/smrt-jobs:ForgeDeliveryCollection\":{\"name\":\"forgedeliverycollection\",\"className\":\"ForgeDeliveryCollection\",\"qualifiedName\":\"@happyvertical/smrt-jobs:ForgeDeliveryCollection\",\"collection\":\"forgedeliveries\",\"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);\",\"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\"}},\"indexes\":[{\"name\":\"_smrt_forge_deliveries_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_forge_deliveries_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"0a680146\"}},\"@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}},\"type\":{\"type\":\"text\",\"required\":true,\"default\":\"log\",\"_meta\":{\"required\":true,\"default\":\"log\"}},\"level\":{\"type\":\"text\",\"required\":true,\"default\":\"info\",\"_meta\":{\"required\":true,\"default\":\"info\"}},\"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\"}},\"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_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_job_events_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"8a9faeec\"}},\"@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\",\"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}],\"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}],\"returnType\":\"Promise<Map<string, SmrtJobEvent>>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_job_events\"},\"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);\",\"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\"}},\"indexes\":[{\"name\":\"_smrt_job_events_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_job_events_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"bcf5b3bc\"}},\"@happyvertical/smrt-jobs:SmrtJob\":{\"name\":\"smrtjob\",\"className\":\"SmrtJob\",\"qualifiedName\":\"@happyvertical/smrt-jobs:SmrtJob\",\"collection\":\"smrtjobs\",\"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}},\"priority\":{\"type\":\"integer\",\"required\":true,\"default\":50,\"_meta\":{\"required\":true,\"default\":50}},\"status\":{\"type\":\"text\",\"required\":true,\"default\":\"pending\",\"_meta\":{\"required\":true,\"default\":\"pending\"}},\"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\"}},\"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\",\"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,\"tenantScoped\":{\"mode\":\"optional\"}},\"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_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_jobs_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"43e1324f\"}},\"@happyvertical/smrt-jobs:SmrtJobCollection\":{\"name\":\"smrtjobcollection\",\"className\":\"SmrtJobCollection\",\"qualifiedName\":\"@happyvertical/smrt-jobs:SmrtJobCollection\",\"collection\":\"smrtjobs\",\"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\",\"isStatic\":false,\"isPublic\":true},\"listByStatus\":{\"name\":\"listByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"JobStatus | JobStatus[]\",\"optional\":false},{\"name\":\"options\",\"type\":\"object\",\"optional\":true}],\"returnType\":\"Promise<SmrtJob[]>\",\"isStatic\":false,\"isPublic\":true},\"listReady\":{\"name\":\"listReady\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"object\",\"optional\":true}],\"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}],\"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}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_jobs\"},\"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);\",\"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\"}},\"indexes\":[{\"name\":\"_smrt_jobs_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_jobs_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"d99c04d1\"}},\"@happyvertical/smrt-jobs:SmrtWorker\":{\"name\":\"smrtworker\",\"className\":\"SmrtWorker\",\"qualifiedName\":\"@happyvertical/smrt-jobs:SmrtWorker\",\"collection\":\"smrtworkers\",\"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_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_workers_worker_id_idx\",\"columns\":[\"worker_id\"],\"unique\":true}],\"version\":\"bfaad669\"}},\"@happyvertical/smrt-jobs:SmrtWorkerCollection\":{\"name\":\"smrtworkercollection\",\"className\":\"SmrtWorkerCollection\",\"qualifiedName\":\"@happyvertical/smrt-jobs:SmrtWorkerCollection\",\"collection\":\"smrtworkers\",\"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\"},\"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);\",\"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\"}},\"indexes\":[{\"name\":\"_smrt_workers_id_idx\",\"columns\":[\"id\"]},{\"name\":\"_smrt_workers_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"d3a7edbd\"}}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
11
11
|
//#endregion
|
|
12
12
|
//#region src/background-policy.ts
|
|
13
13
|
var MAX_JOB_RETRIES = 25;
|
|
@@ -1798,4 +1798,4 @@ function createTaskRunner(config) {
|
|
|
1798
1798
|
//#endregion
|
|
1799
1799
|
export { markBackgroundEligible as A, MAX_JOB_RETRIES as C, clampRetries as D, backgroundEligible as E, getBackgroundEligibleMethods as O, DEFAULT_TENANT_JOB_CAP as S, assertWithinTenantCreationCap as T, SmrtJob as _, SmrtWorker as a, redactErrorForPersistence as b, SmrtJobEventCollection as c, McpTaskNotFoundError as d, McpTaskStore as f, taskFromJob as g, requestMcpTaskInput as h, DEFAULT_TASK_HEARTBEAT_INTERVAL_MS as i, isBackgroundEligibleMethod as k, MCP_TASKS_EXTENSION as l, getMcpTaskMarker as m, TaskRunner as n, SmrtWorkerCollection as o, createMcpTaskResult as p, createTaskRunner as r, SmrtJobEvent as s, JobTimeoutError as t, McpTaskCancelledError as u, SmrtJobCollection as v, TenantJobCapExceededError as w, redactErrorMessage as x, JobContextLogger as y };
|
|
1800
1800
|
|
|
1801
|
-
//# sourceMappingURL=runner-
|
|
1801
|
+
//# sourceMappingURL=runner-2pHbN2QY.js.map
|