@mevdragon/vidfarm-devcli 0.20.6 → 0.20.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/.agents/skills/editor-capabilities/SKILL.md +15 -1
  2. package/.agents/skills/vidfarm-director/SKILL.md +106 -0
  3. package/.agents/skills/vidfarm-director/recipes/find-and-fork-template.md +16 -0
  4. package/.agents/skills/vidfarm-director/recipes/local-edit-render-approve.md +13 -0
  5. package/.agents/skills/vidfarm-director/recipes/onboard-a-new-director.md +13 -0
  6. package/.agents/skills/vidfarm-director/recipes/retheme-template.md +17 -0
  7. package/.agents/skills/vidfarm-director/references/assets-and-sourcing.md +117 -0
  8. package/.agents/skills/vidfarm-director/references/automation-and-local-dev.md +245 -0
  9. package/.agents/skills/vidfarm-director/references/core-workflows.md +273 -0
  10. package/.agents/skills/vidfarm-director/references/editor-workflows.md +365 -0
  11. package/.agents/skills/vidfarm-director/references/onboarding.md +28 -0
  12. package/.agents/skills/vidfarm-director/references/primitives.md +308 -0
  13. package/SKILL.director.md +517 -250
  14. package/dist/src/cli.js +563 -99
  15. package/dist/src/devcli/clips.js +29 -12
  16. package/dist/src/devcli/doctor.js +2 -2
  17. package/dist/src/devcli/local-backend.js +46 -2
  18. package/dist/src/services/clip-curation/cost.js +5 -1
  19. package/dist/src/services/clip-curation/gemini.js +14 -2
  20. package/dist/src/services/clip-curation/hunt.js +56 -0
  21. package/dist/src/services/clip-curation/index.js +1 -1
  22. package/dist/src/services/clip-curation/scan.js +5 -3
  23. package/package.json +30 -10
  24. package/SKILL.platform.md +0 -432
  25. package/demo/README.md +0 -28
  26. package/demo/dist/app.css +0 -1
  27. package/demo/dist/app.js +0 -1850
  28. package/demo/dist/chunks/chunk-DXB73IDG.js +0 -1
  29. package/demo/dist/chunks/chunk-S7OWAJDS.js +0 -36
  30. package/demo/dist/chunks/chunk-VTIBZ6AN.js +0 -1
  31. package/demo/dist/chunks/dist-ADSJKBVE.js +0 -332
  32. package/demo/dist/chunks/domEditingLayers-VZMLL4AP-SGHWPND4.js +0 -1
  33. package/demo/dist/chunks/hyperframes-player-XB65TCD6.js +0 -425
  34. package/demo/dist/chunks/lib-XAQ37YOE.js +0 -1
  35. package/demo/dist/chunks/src-TJ2QYA4U.js +0 -207
  36. package/demo/dist/favicon.ico +0 -0
  37. package/demo/dist/icons/timeline/audio.svg +0 -7
  38. package/demo/dist/icons/timeline/captions.svg +0 -5
  39. package/demo/dist/icons/timeline/composition.svg +0 -12
  40. package/demo/dist/icons/timeline/image.svg +0 -18
  41. package/demo/dist/icons/timeline/music.svg +0 -10
  42. package/demo/dist/icons/timeline/text.svg +0 -3
  43. package/demo/dist/index.html +0 -15
  44. package/dist/src/account-pages-legacy.js +0 -9396
  45. package/dist/src/account-pages.js +0 -61
  46. package/dist/src/app.js +0 -21603
  47. package/dist/src/composition-runtime.js +0 -1053
  48. package/dist/src/config.js +0 -217
  49. package/dist/src/context.js +0 -447
  50. package/dist/src/dev-app-legacy.js +0 -739
  51. package/dist/src/dev-app.js +0 -6
  52. package/dist/src/devcli/migrate-local.js +0 -140
  53. package/dist/src/devcli/sync.js +0 -368
  54. package/dist/src/domain.js +0 -5
  55. package/dist/src/editor-chat-history.js +0 -82
  56. package/dist/src/editor-chat.js +0 -828
  57. package/dist/src/editor-dark-theme.js +0 -1128
  58. package/dist/src/frontend/debug.js +0 -71
  59. package/dist/src/frontend/discover-client.js +0 -130
  60. package/dist/src/frontend/discover-store.js +0 -23
  61. package/dist/src/frontend/file-directory.js +0 -1018
  62. package/dist/src/frontend/flockposter-cache-store.js +0 -124
  63. package/dist/src/frontend/homepage-client.js +0 -446
  64. package/dist/src/frontend/homepage-shared.js +0 -201
  65. package/dist/src/frontend/homepage-store.js +0 -66
  66. package/dist/src/frontend/homepage-view.js +0 -705
  67. package/dist/src/frontend/page-runtime-client.js +0 -132
  68. package/dist/src/frontend/page-runtime-store.js +0 -9
  69. package/dist/src/frontend/sentry.js +0 -42
  70. package/dist/src/frontend/template-editor-chat.js +0 -4181
  71. package/dist/src/help-page.js +0 -346
  72. package/dist/src/homepage.js +0 -1458
  73. package/dist/src/index.js +0 -16
  74. package/dist/src/instrument.js +0 -30
  75. package/dist/src/landing-page.js +0 -384
  76. package/dist/src/page-runtime.js +0 -2
  77. package/dist/src/page-shell.js +0 -1452
  78. package/dist/src/primitive-context.js +0 -416
  79. package/dist/src/primitive-registry.js +0 -3940
  80. package/dist/src/primitive-sdk.js +0 -4
  81. package/dist/src/primitives/hyperframes-media.js +0 -108
  82. package/dist/src/react-page-shell.js +0 -35
  83. package/dist/src/ready-post-schedule-component.js +0 -1540
  84. package/dist/src/registry.js +0 -296
  85. package/dist/src/reskin/agency-page.js +0 -299
  86. package/dist/src/reskin/calendar-page.js +0 -568
  87. package/dist/src/reskin/chat-page.js +0 -942
  88. package/dist/src/reskin/discover-page.js +0 -1788
  89. package/dist/src/reskin/document.js +0 -1587
  90. package/dist/src/reskin/help-page.js +0 -357
  91. package/dist/src/reskin/index-page.js +0 -62
  92. package/dist/src/reskin/inpaint-clipper-page.js +0 -890
  93. package/dist/src/reskin/inpaint-page.js +0 -2554
  94. package/dist/src/reskin/inpaint-video-page.js +0 -1339
  95. package/dist/src/reskin/job-runs-page.js +0 -477
  96. package/dist/src/reskin/library-page.js +0 -1634
  97. package/dist/src/reskin/login-page.js +0 -262
  98. package/dist/src/reskin/portfolio-page.js +0 -687
  99. package/dist/src/reskin/pricing-page.js +0 -390
  100. package/dist/src/reskin/settings-page.js +0 -732
  101. package/dist/src/reskin/theme.js +0 -711
  102. package/dist/src/runtime.js +0 -35
  103. package/dist/src/services/api-call-history.js +0 -249
  104. package/dist/src/services/auth.js +0 -152
  105. package/dist/src/services/billing-pricing.js +0 -39
  106. package/dist/src/services/billing.js +0 -241
  107. package/dist/src/services/cast.js +0 -127
  108. package/dist/src/services/chat-threads.js +0 -92
  109. package/dist/src/services/clip-records.js +0 -250
  110. package/dist/src/services/clip-search.js +0 -77
  111. package/dist/src/services/clip-vectors.js +0 -125
  112. package/dist/src/services/composition-sanitize.js +0 -124
  113. package/dist/src/services/composition-watch.js +0 -79
  114. package/dist/src/services/elevenlabs.js +0 -222
  115. package/dist/src/services/file-directory.js +0 -117
  116. package/dist/src/services/fork-access.js +0 -93
  117. package/dist/src/services/fork-manifest.js +0 -42
  118. package/dist/src/services/ghostcut.js +0 -179
  119. package/dist/src/services/hyperframes.js +0 -3654
  120. package/dist/src/services/job-capacity.js +0 -14
  121. package/dist/src/services/job-logs.js +0 -197
  122. package/dist/src/services/jobs.js +0 -136
  123. package/dist/src/services/local-dynamo.js +0 -0
  124. package/dist/src/services/media-processing.js +0 -766
  125. package/dist/src/services/primitive-media-lambda.js +0 -280
  126. package/dist/src/services/providers.js +0 -2748
  127. package/dist/src/services/rate-limits.js +0 -262
  128. package/dist/src/services/scene-annotations.js +0 -32
  129. package/dist/src/services/serverless-auth.js +0 -382
  130. package/dist/src/services/serverless-jobs.js +0 -1084
  131. package/dist/src/services/serverless-provider-keys.js +0 -409
  132. package/dist/src/services/serverless-records.js +0 -1515
  133. package/dist/src/services/serverless-template-configs.js +0 -75
  134. package/dist/src/services/storage.js +0 -461
  135. package/dist/src/services/swipe-customize.js +0 -437
  136. package/dist/src/services/template-certification.js +0 -413
  137. package/dist/src/services/template-loader.js +0 -99
  138. package/dist/src/services/template-runtime-bundles.js +0 -217
  139. package/dist/src/services/template-sources.js +0 -1017
  140. package/dist/src/services/upstream.js +0 -248
  141. package/dist/src/services/video-normalization.js +0 -2
  142. package/dist/src/services/webhooks.js +0 -62
  143. package/dist/src/template-editor-pages.js +0 -2576
  144. package/dist/src/template-editor-shell.js +0 -2893
  145. package/dist/src/template-sdk.js +0 -4
  146. package/dist/src/worker.js +0 -17
  147. package/public/assets/discover-client-app.js +0 -1
  148. package/public/assets/file-directory-app.js +0 -3
  149. package/public/assets/homepage-app.js +0 -54
  150. package/public/assets/homepage-client-app.js +0 -80
  151. package/public/assets/page-runtime-client-app.js +0 -94
  152. package/public/assets/placeholders/scene-placeholder.png +0 -0
  153. package/src/assets/SELLING_AWARENESS_STAGES.md +0 -579
  154. package/src/assets/SELLING_WITH_HOOKS.md +0 -377
  155. package/src/assets/SELLING_WITH_VSLS.md +0 -606
  156. package/src/assets/favicon.ico +0 -0
  157. package/src/assets/logo-vidfarm.png +0 -0
@@ -1,14 +0,0 @@
1
- export class ActiveJobLimitExceededError extends Error {
2
- limit;
3
- activeCount;
4
- pendingStatuses;
5
- retryAfterSeconds;
6
- constructor(message, limit, activeCount, pendingStatuses, retryAfterSeconds) {
7
- super(message);
8
- this.limit = limit;
9
- this.activeCount = activeCount;
10
- this.pendingStatuses = pendingStatuses;
11
- this.retryAfterSeconds = retryAfterSeconds;
12
- }
13
- }
14
- //# sourceMappingURL=job-capacity.js.map
@@ -1,197 +0,0 @@
1
- import { StorageService } from "./storage.js";
2
- const JOB_LOG_PREFIX = "job-logs";
3
- const JOB_LOG_CHUNK_INTERVAL_MS = 60_000;
4
- const JOB_LOG_CHUNK_MAX_BYTES = 1024 * 1024;
5
- const JOB_LOG_FLUSH_INTERVAL_MS = 5_000;
6
- export class JobLogStore {
7
- storage = new StorageService();
8
- activeChunks = new Map();
9
- flushTimer = setInterval(() => {
10
- void this.flushExpiredChunks();
11
- }, JOB_LOG_FLUSH_INTERVAL_MS);
12
- constructor() {
13
- this.flushTimer.unref();
14
- }
15
- addEvent(event) {
16
- const normalized = {
17
- ...event,
18
- createdAt: event.createdAt ?? new Date().toISOString()
19
- };
20
- const minuteStartMs = floorToMinute(Date.parse(normalized.createdAt));
21
- const activePrefix = this.activeChunkPrefix(normalized.jobId, minuteStartMs);
22
- const current = this.findLatestChunk(activePrefix);
23
- const eventBytes = serializedEventSize(normalized);
24
- const chunk = current && current.sizeBytes + eventBytes <= JOB_LOG_CHUNK_MAX_BYTES
25
- ? current
26
- : this.createChunk(normalized.jobId, minuteStartMs, current ? current.sequence + 1 : 0);
27
- chunk.events.push(normalized);
28
- chunk.sizeBytes += eventBytes;
29
- chunk.dirty = true;
30
- if (chunk.sizeBytes >= JOB_LOG_CHUNK_MAX_BYTES) {
31
- void this.persistChunk(chunk, true);
32
- }
33
- }
34
- async listEvents(input) {
35
- const persisted = await this.readPersistedEvents(input);
36
- const buffered = this.readBufferedEvents(input);
37
- const merged = dedupeAndSort([...persisted, ...buffered]).reverse();
38
- const filtered = input.cursor
39
- ? merged.filter((event) => (Date.parse(event.createdAt) < Date.parse(input.cursor.createdAt)
40
- || (event.createdAt === input.cursor.createdAt && event.id < input.cursor.id)))
41
- : merged;
42
- if (input.limit === undefined) {
43
- return filtered;
44
- }
45
- const limit = Math.max(1, Math.min(input.limit, 501));
46
- return filtered.slice(0, limit);
47
- }
48
- async listStorageKeys(input) {
49
- return this.listRelevantKeys(input);
50
- }
51
- async shutdown() {
52
- clearInterval(this.flushTimer);
53
- await Promise.all([...this.activeChunks.values()].map((chunk) => this.persistChunk(chunk, true)));
54
- }
55
- async readPersistedEvents(input) {
56
- const keys = await this.listRelevantKeys(input);
57
- const events = await Promise.all(keys.map(async (key) => parseChunk(await this.storage.readText(key))));
58
- return events
59
- .flat()
60
- .filter((event) => event.jobId === input.jobId)
61
- .filter((event) => withinRange(event.createdAt, input.startTime, input.endTime));
62
- }
63
- readBufferedEvents(input) {
64
- const buffered = [];
65
- for (const chunk of this.activeChunks.values()) {
66
- if (chunk.jobId !== input.jobId) {
67
- continue;
68
- }
69
- for (const event of chunk.events.slice(chunk.lastPersistedEventCount)) {
70
- if (withinRange(event.createdAt, input.startTime, input.endTime)) {
71
- buffered.push(event);
72
- }
73
- }
74
- }
75
- return buffered;
76
- }
77
- async listRelevantKeys(input) {
78
- const minuteStarts = this.minuteStartsForQuery(input.startTime, input.endTime);
79
- if (minuteStarts === null) {
80
- return this.storage.listKeys(`${JOB_LOG_PREFIX}/job_id=${input.jobId}/`);
81
- }
82
- const nested = await Promise.all(minuteStarts.map((minuteStartMs) => (this.storage.listKeys(this.minutePrefix(input.jobId, minuteStartMs)))));
83
- return nested.flat();
84
- }
85
- minuteStartsForQuery(startTime, endTime) {
86
- if (!startTime && !endTime) {
87
- return null;
88
- }
89
- const startMs = floorToMinute(Date.parse(startTime ?? endTime ?? new Date().toISOString()));
90
- const endMs = floorToMinute(Date.parse(endTime ?? startTime ?? new Date().toISOString()));
91
- const minMs = Math.min(startMs, endMs);
92
- const maxMs = Math.max(startMs, endMs);
93
- const minuteStarts = [];
94
- for (let cursor = minMs; cursor <= maxMs; cursor += 60_000) {
95
- minuteStarts.push(cursor);
96
- }
97
- return minuteStarts;
98
- }
99
- async flushExpiredChunks() {
100
- const now = Date.now();
101
- await Promise.all([...this.activeChunks.values()].map(async (chunk) => {
102
- const intervalElapsed = now >= chunk.minuteStartMs + JOB_LOG_CHUNK_INTERVAL_MS;
103
- if (intervalElapsed || chunk.sizeBytes >= JOB_LOG_CHUNK_MAX_BYTES) {
104
- await this.persistChunk(chunk, true);
105
- return;
106
- }
107
- if (chunk.dirty) {
108
- await this.persistChunk(chunk, false);
109
- }
110
- }));
111
- }
112
- createChunk(jobId, minuteStartMs, sequence) {
113
- const chunk = {
114
- jobId,
115
- minuteStartMs,
116
- sequence,
117
- events: [],
118
- sizeBytes: 0,
119
- lastPersistedEventCount: 0,
120
- dirty: false
121
- };
122
- this.activeChunks.set(this.chunkKeyForMap(jobId, minuteStartMs, sequence), chunk);
123
- return chunk;
124
- }
125
- findLatestChunk(activePrefix) {
126
- const matching = [...this.activeChunks.entries()]
127
- .filter(([key]) => key.startsWith(activePrefix))
128
- .map(([, chunk]) => chunk)
129
- .sort((a, b) => a.sequence - b.sequence);
130
- return matching.at(-1) ?? null;
131
- }
132
- activeChunkPrefix(jobId, minuteStartMs) {
133
- return `${jobId}:${minuteStartMs}:`;
134
- }
135
- chunkKeyForMap(jobId, minuteStartMs, sequence) {
136
- return `${this.activeChunkPrefix(jobId, minuteStartMs)}${sequence}`;
137
- }
138
- async persistChunk(chunk, finalize) {
139
- if (!chunk.events.length) {
140
- if (finalize) {
141
- this.activeChunks.delete(this.chunkKeyForMap(chunk.jobId, chunk.minuteStartMs, chunk.sequence));
142
- }
143
- return;
144
- }
145
- const key = this.objectKeyForChunk(chunk);
146
- const body = `${chunk.events.map((event) => JSON.stringify(event)).join("\n")}\n`;
147
- await this.storage.putText(key, body, "application/x-ndjson; charset=utf-8");
148
- chunk.lastPersistedEventCount = chunk.events.length;
149
- chunk.dirty = false;
150
- if (finalize) {
151
- this.activeChunks.delete(this.chunkKeyForMap(chunk.jobId, chunk.minuteStartMs, chunk.sequence));
152
- }
153
- }
154
- objectKeyForChunk(chunk) {
155
- const startTs = Math.floor(chunk.events[0] ? Date.parse(chunk.events[0].createdAt) / 1000 : chunk.minuteStartMs / 1000);
156
- const endTs = Math.floor(chunk.events.at(-1) ? Date.parse(chunk.events.at(-1).createdAt) / 1000 : chunk.minuteStartMs / 1000);
157
- return `${this.minutePrefix(chunk.jobId, chunk.minuteStartMs)}chunk-${startTs}-${endTs}-${String(chunk.sequence).padStart(4, "0")}.ndjson`;
158
- }
159
- minutePrefix(jobId, minuteStartMs) {
160
- return `${JOB_LOG_PREFIX}/job_id=${jobId}/minute=${Math.floor(minuteStartMs / 1000)}/`;
161
- }
162
- }
163
- export const jobLogStore = new JobLogStore();
164
- function serializedEventSize(event) {
165
- return Buffer.byteLength(`${JSON.stringify(event)}\n`, "utf8");
166
- }
167
- function floorToMinute(timestampMs) {
168
- return Math.floor(timestampMs / 60_000) * 60_000;
169
- }
170
- function parseChunk(content) {
171
- if (!content) {
172
- return [];
173
- }
174
- return content
175
- .split("\n")
176
- .map((line) => line.trim())
177
- .filter(Boolean)
178
- .map((line) => JSON.parse(line));
179
- }
180
- function dedupeAndSort(events) {
181
- const deduped = new Map();
182
- for (const event of events) {
183
- deduped.set(event.id, event);
184
- }
185
- return [...deduped.values()].sort((a, b) => Date.parse(a.createdAt) - Date.parse(b.createdAt));
186
- }
187
- function withinRange(createdAt, startTime, endTime) {
188
- const value = Date.parse(createdAt);
189
- if (startTime && value < Date.parse(startTime)) {
190
- return false;
191
- }
192
- if (endTime && value > Date.parse(endTime)) {
193
- return false;
194
- }
195
- return true;
196
- }
197
- //# sourceMappingURL=job-logs.js.map
@@ -1,136 +0,0 @@
1
- import * as Sentry from "@sentry/node";
2
- import { addSeconds, nowIso } from "../lib/time.js";
3
- export { ActiveJobLimitExceededError } from "./job-capacity.js";
4
- import { ServerlessJobsService } from "./serverless-jobs.js";
5
- export class JobsService {
6
- serverless = new ServerlessJobsService();
7
- async createRootJob(input) {
8
- return this.serverless.createRootJob(input);
9
- }
10
- getRootQueueCapacityStatus(customer) {
11
- return this.serverless.getRootQueueCapacityStatus(customer);
12
- }
13
- sweepStaleActiveJobs(input = {}) {
14
- return this.serverless.sweepStaleActiveJobs(input);
15
- }
16
- async enqueueChildJob(input) {
17
- return this.serverless.createChildJob(input);
18
- }
19
- getJob(jobId) {
20
- void jobId;
21
- throw new Error(`Synchronous job lookup is unavailable in the DynamoDB runtime. Use getJobAsync(${jobId}).`);
22
- }
23
- async getJobAsync(jobId) {
24
- return this.serverless.getJob(jobId);
25
- }
26
- listJobs(input) {
27
- void input;
28
- throw new Error("Synchronous job listing is unavailable in the DynamoDB runtime. Use listJobsAsync().");
29
- }
30
- async listJobsAsync(input) {
31
- return this.serverless.listJobs(input);
32
- }
33
- renameTracer(input) {
34
- void input;
35
- throw new Error("Renaming job tracers is not implemented in the serverless DynamoDB runtime.");
36
- }
37
- async listChildJobs(parentJobId) {
38
- return this.serverless.listChildJobs(parentJobId);
39
- }
40
- async insertArtifact(record) {
41
- await this.serverless.insertArtifact(record);
42
- }
43
- async listArtifactsForJob(input) {
44
- return this.serverless.listArtifactsForJob(input);
45
- }
46
- async listLogs(input) {
47
- return this.serverless.listLogs(input);
48
- }
49
- async addLogEvent(event) {
50
- return this.serverless.addLogEvent(event);
51
- }
52
- async listLogStorageKeys(input) {
53
- void input;
54
- return this.serverless.listLogStorageKeys();
55
- }
56
- async updateJobStatus(input) {
57
- await this.serverless.updateJobStatus(input);
58
- }
59
- cancelJob(jobId) {
60
- return this.serverless.cancelJob(jobId);
61
- }
62
- async cancelJobAsync(jobId) {
63
- await this.serverless.cancelJob(jobId);
64
- }
65
- markRunning(jobId) {
66
- return this.serverless.updateJobStatus({ id: jobId, status: "running" });
67
- }
68
- failExpiredActiveJobs(input) {
69
- void input;
70
- throw new Error("Expiring active jobs is handled by the serverless workflow runtime.");
71
- }
72
- claimRunnableJob(jobId) {
73
- void jobId;
74
- throw new Error("Runnable job claiming is unavailable in the serverless workflow runtime.");
75
- }
76
- succeedJob(jobId, result, progress = 1) {
77
- return this.serverless.updateJobStatus({
78
- id: jobId,
79
- status: "succeeded",
80
- progress,
81
- result,
82
- error: null,
83
- completedAt: nowIso()
84
- });
85
- }
86
- failJob(jobId, error, options) {
87
- void options;
88
- return this.serverless.updateJobStatus({
89
- id: jobId,
90
- status: "failed",
91
- error,
92
- completedAt: nowIso()
93
- });
94
- }
95
- requeueJob(job, delaySeconds = 30, error, options) {
96
- void options;
97
- return this.serverless.updateJobStatus({
98
- id: job.id,
99
- status: job.attemptCount >= job.maxAttempts ? "failed" : "queued",
100
- error: job.attemptCount >= job.maxAttempts ? error : null,
101
- runAfter: addSeconds(new Date(), delaySeconds),
102
- completedAt: job.attemptCount >= job.maxAttempts ? nowIso() : null
103
- });
104
- }
105
- captureJobFailure(job, error, options) {
106
- const message = typeof error.message === "string" ? error.message : "Job failed";
107
- const type = typeof error.type === "string" ? error.type : "job_failed";
108
- const baseContext = {
109
- job_id: job.id,
110
- customer_id: job.customerId,
111
- template_id: job.templateId,
112
- operation_name: job.operationName,
113
- workflow_name: job.workflowName,
114
- tracer: job.tracer,
115
- attempt_count: job.attemptCount,
116
- max_attempts: job.maxAttempts,
117
- provider_hint: typeof job.payload?._providerHint === "string" ? job.payload._providerHint : null,
118
- error
119
- };
120
- Sentry.withScope((scope) => {
121
- scope.setLevel("error");
122
- scope.setTag("surface", "worker");
123
- scope.setTag("job.failure_type", type);
124
- scope.setTag("job.id", job.id);
125
- scope.setTag("job.template_id", job.templateId);
126
- scope.setTag("job.operation_name", job.operationName);
127
- scope.setContext("job", baseContext);
128
- if (options?.cause instanceof Error) {
129
- Sentry.captureException(options.cause);
130
- return;
131
- }
132
- Sentry.captureMessage(message, "error");
133
- });
134
- }
135
- }
136
- //# sourceMappingURL=jobs.js.map
Binary file