@agent-native/core 0.136.2 → 0.136.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/agent-page/AgentJobsTab.js +19 -4
- package/dist/client/agent-page/use-jobs.d.ts +10 -0
- package/dist/client/agent-page/use-jobs.js +21 -0
- package/dist/collab/routes.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/jobs/actions/run-automation-now.d.ts +6 -0
- package/dist/jobs/actions/run-automation-now.js +22 -0
- package/dist/jobs/background-automation-runner.d.ts +2 -0
- package/dist/jobs/background-automation-runner.js +22 -16
- package/dist/jobs/run-history.d.ts +17 -3
- package/dist/jobs/run-history.js +73 -7
- package/dist/jobs/run-now.d.ts +20 -0
- package/dist/jobs/run-now.js +99 -0
- package/dist/jobs/scheduler.d.ts +15 -0
- package/dist/jobs/scheduler.js +76 -12
- package/dist/localization/default-messages.d.ts +3 -0
- package/dist/localization/default-messages.js +3 -0
- package/dist/mcp/screen-memory-stdio.d.ts +7 -7
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/provider-api/actions/custom-provider-registration.d.ts +12 -12
- package/dist/provider-api/actions/provider-api.d.ts +4 -4
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/server/action-discovery.js +4 -0
- package/dist/server/agent-chat-plugin.js +135 -68
- package/dist/server/email-actions.d.ts +6 -3
- package/dist/server/email-actions.js +17 -83
- package/dist/server/email-markdown.d.ts +4 -0
- package/dist/server/email-markdown.js +174 -0
- package/dist/templates/workspace-core/.agents/skills/automations/SKILL.md +1 -0
- package/dist/triggers/actions.d.ts +1 -1
- package/dist/triggers/actions.js +27 -5
- package/package.json +1 -1
- package/src/templates/workspace-core/.agents/skills/automations/SKILL.md +1 -0
package/dist/jobs/scheduler.js
CHANGED
|
@@ -2,6 +2,7 @@ import { resourceGetByPath, resourceListAllOwners, resourcePutIfCurrent, } from
|
|
|
2
2
|
import { backgroundRunCutOffReason, isBackgroundAutomationRunActive, resolveBackgroundAutomationIdentity, runBackgroundAutomation, } from "./background-automation-runner.js";
|
|
3
3
|
import { nextOccurrence, isValidCron, describeCron, effectiveTimezone, } from "./cron.js";
|
|
4
4
|
import { buildJobResourceContent, parseJobResource, } from "./frontmatter.js";
|
|
5
|
+
import { claimAutomationRun, finishAutomationRun, getAutomationRun, } from "./run-history.js";
|
|
5
6
|
// ─── Frontmatter parsing ────────────────────────────────────────────────────
|
|
6
7
|
export { classifyJobFrontmatter, classifyJobResource, normalizeJobMcpTools, parseJobResource, } from "./frontmatter.js";
|
|
7
8
|
export function parseJobFrontmatter(content) {
|
|
@@ -128,7 +129,7 @@ export async function processRecurringJobs(deps) {
|
|
|
128
129
|
}
|
|
129
130
|
}
|
|
130
131
|
export const jobRunCutOffReason = backgroundRunCutOffReason;
|
|
131
|
-
async function executeJob(resource, meta, body, deps, now) {
|
|
132
|
+
async function executeJob(resource, meta, body, deps, now, options = {}) {
|
|
132
133
|
const jobName = resource.path.replace(/^jobs\//, "").replace(/\.md$/, "");
|
|
133
134
|
const jobContext = {
|
|
134
135
|
name: jobName,
|
|
@@ -156,17 +157,36 @@ async function executeJob(resource, meta, body, deps, now) {
|
|
|
156
157
|
meta.lastError = identity.reason;
|
|
157
158
|
if (!alreadyRecorded)
|
|
158
159
|
await updateResource(resource, meta, body);
|
|
159
|
-
|
|
160
|
+
if (options.historyId) {
|
|
161
|
+
await finishAutomationRun(options.historyId, "error", `Automation did not run: ${identity.reason}. No delivery was confirmed.`);
|
|
162
|
+
}
|
|
163
|
+
return { status: "skipped", error: identity.reason };
|
|
160
164
|
}
|
|
161
165
|
const jobUserEmail = identity.identity.userEmail;
|
|
162
166
|
const jobOrgId = identity.identity.orgId;
|
|
167
|
+
// Manual runs use the same resource row as scheduled runs for concurrency
|
|
168
|
+
// protection. The check is paired with the conditional write below: two
|
|
169
|
+
// requests that read the same idle snapshot cannot both claim it.
|
|
170
|
+
if (options.manual && isBackgroundAutomationRunActive(meta, now)) {
|
|
171
|
+
const error = "The automation is already running.";
|
|
172
|
+
if (options.historyId) {
|
|
173
|
+
await finishAutomationRun(options.historyId, "error", `${error} No delivery was confirmed.`);
|
|
174
|
+
}
|
|
175
|
+
return { status: "skipped", error };
|
|
176
|
+
}
|
|
163
177
|
// Mark as running
|
|
164
178
|
meta.lastRun = now.toISOString();
|
|
165
179
|
meta.lastStatus = "running";
|
|
166
180
|
meta.lastError = undefined;
|
|
167
181
|
if (!(await updateResource(resource, meta, body))) {
|
|
168
182
|
console.log(`[recurring-jobs] "${resource.path}" changed before it could start; dropping this tick.`);
|
|
169
|
-
|
|
183
|
+
if (options.historyId) {
|
|
184
|
+
await finishAutomationRun(options.historyId, "error", "The automation changed before the run could start. No delivery was confirmed.");
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
status: "error",
|
|
188
|
+
error: "The automation changed before the run could start.",
|
|
189
|
+
};
|
|
170
190
|
}
|
|
171
191
|
const requestContext = meta.originScopeId && meta.deliveryPlatform && meta.deliveryDestination
|
|
172
192
|
? {
|
|
@@ -193,33 +213,74 @@ async function executeJob(resource, meta, body, deps, now) {
|
|
|
193
213
|
}
|
|
194
214
|
: undefined;
|
|
195
215
|
try {
|
|
196
|
-
await runBackgroundAutomation({
|
|
216
|
+
const result = await runBackgroundAutomation({
|
|
197
217
|
automation: jobContext,
|
|
198
218
|
ownerEmail: jobUserEmail,
|
|
199
219
|
orgId: jobOrgId,
|
|
200
|
-
prompt:
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
220
|
+
prompt: options.manual
|
|
221
|
+
? `[Manual Automation Run: ${jobName}]\nThis run was explicitly started by the automation owner. Execute the following instructions now:\n\n${body}`
|
|
222
|
+
: `[Recurring Job: ${jobName}]\nSchedule: ${describeCron(meta.schedule, effectiveTimezone(meta.timezone))}\n\nExecute the following job instructions:\n\n${body}`,
|
|
223
|
+
threadTitle: `${options.manual ? "Automation" : "Job"}: ${jobName} — ${now.toLocaleDateString()}`,
|
|
224
|
+
runIdPrefix: `${options.manual ? "manual" : "job"}-${jobName}`,
|
|
225
|
+
usageLabel: `${options.manual ? "manual-automation" : "recurring-job"}:${jobName}`,
|
|
204
226
|
requestContext,
|
|
227
|
+
...(options.historyId ? { historyId: options.historyId } : {}),
|
|
228
|
+
actionCaller: "automation",
|
|
205
229
|
}, deps);
|
|
206
230
|
await recordExecutionOutcome(resource, {
|
|
207
231
|
lastRun: meta.lastRun,
|
|
208
232
|
lastStatus: "success",
|
|
209
233
|
lastError: undefined,
|
|
234
|
+
advanceSchedule: options.advanceSchedule,
|
|
210
235
|
});
|
|
211
236
|
console.log(`[recurring-jobs] Job "${jobName}" completed.`);
|
|
237
|
+
return { status: "success", runId: result.runId };
|
|
212
238
|
}
|
|
213
239
|
catch (err) {
|
|
214
240
|
const lastError = err instanceof Error ? err.message.slice(0, 200) : "Unknown error";
|
|
241
|
+
const reportedError = `${lastError}. No delivery was confirmed.`;
|
|
215
242
|
await recordExecutionOutcome(resource, {
|
|
216
243
|
lastRun: meta.lastRun,
|
|
217
244
|
lastStatus: "error",
|
|
218
|
-
lastError,
|
|
245
|
+
lastError: reportedError,
|
|
246
|
+
advanceSchedule: options.advanceSchedule,
|
|
219
247
|
});
|
|
220
|
-
console.error(`[recurring-jobs] Job "${jobName}" failed:`,
|
|
248
|
+
console.error(`[recurring-jobs] Job "${jobName}" failed:`, reportedError);
|
|
249
|
+
return { status: "error", error: reportedError };
|
|
221
250
|
}
|
|
222
251
|
}
|
|
252
|
+
/** Execute one stored automation without changing its scheduled next run. */
|
|
253
|
+
export async function runJobNow(owner, name, deps, options = {}) {
|
|
254
|
+
const path = `jobs/${name}.md`;
|
|
255
|
+
const resource = await resourceGetByPath(owner, path);
|
|
256
|
+
if (!resource)
|
|
257
|
+
throw new Error(`Automation "${name}" not found.`);
|
|
258
|
+
const { meta, body } = parseJobFrontmatter(resource.content);
|
|
259
|
+
if (!body.trim())
|
|
260
|
+
throw new Error(`Automation "${name}" has no instructions.`);
|
|
261
|
+
return executeJob(resource, meta, body, deps, new Date(), {
|
|
262
|
+
advanceSchedule: false,
|
|
263
|
+
historyId: options.historyId,
|
|
264
|
+
manual: true,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
/** Process a durable run-now history row exactly once in the background worker. */
|
|
268
|
+
export async function runQueuedAutomation(historyId, deps) {
|
|
269
|
+
const queued = await getAutomationRun(historyId);
|
|
270
|
+
if (!queued)
|
|
271
|
+
throw new Error(`Automation run "${historyId}" not found.`);
|
|
272
|
+
if (!(await claimAutomationRun(historyId))) {
|
|
273
|
+
return { skipped: true };
|
|
274
|
+
}
|
|
275
|
+
const result = await runJobNow(queued.owner, queued.automation, deps, {
|
|
276
|
+
historyId,
|
|
277
|
+
});
|
|
278
|
+
return {
|
|
279
|
+
skipped: false,
|
|
280
|
+
...(result.runId ? { runId: result.runId } : {}),
|
|
281
|
+
...(result.error ? { error: result.error } : {}),
|
|
282
|
+
};
|
|
283
|
+
}
|
|
223
284
|
async function updateResource(resource, meta, body) {
|
|
224
285
|
const content = buildJobContent(meta, body);
|
|
225
286
|
const written = await resourcePutIfCurrent({
|
|
@@ -256,8 +317,11 @@ async function recordExecutionOutcome(resource, outcome) {
|
|
|
256
317
|
return;
|
|
257
318
|
}
|
|
258
319
|
const current = parseJobResource(latest.content);
|
|
259
|
-
const
|
|
260
|
-
|
|
320
|
+
const { advanceSchedule, ...execution } = outcome;
|
|
321
|
+
const meta = { ...current.meta, ...execution };
|
|
322
|
+
if (advanceSchedule !== false &&
|
|
323
|
+
meta.schedule &&
|
|
324
|
+
isValidCron(meta.schedule)) {
|
|
261
325
|
// Measured from completion so a long run cannot immediately re-fire.
|
|
262
326
|
meta.nextRun = nextOccurrence(meta.schedule, new Date(), meta.timezone).toISOString();
|
|
263
327
|
}
|
|
@@ -562,6 +562,9 @@ declare const messages: {
|
|
|
562
562
|
eventTrigger: string;
|
|
563
563
|
deleteAutomationTitle: string;
|
|
564
564
|
deleteAutomationDescription: string;
|
|
565
|
+
runNow: string;
|
|
566
|
+
runNowTitle: string;
|
|
567
|
+
runNowDescription: string;
|
|
565
568
|
automationDetails: string;
|
|
566
569
|
automationEventDetails: string;
|
|
567
570
|
condition: string;
|
|
@@ -567,6 +567,9 @@ const messages = {
|
|
|
567
567
|
eventTrigger: "Event-triggered",
|
|
568
568
|
deleteAutomationTitle: "Delete automation?",
|
|
569
569
|
deleteAutomationDescription: "This permanently removes the automation and cannot be undone.",
|
|
570
|
+
runNow: "Run now",
|
|
571
|
+
runNowTitle: "Run automation now?",
|
|
572
|
+
runNowDescription: "This runs the automation's real actions immediately. It may send messages or change data, and it will not change the next scheduled run.",
|
|
570
573
|
automationDetails: "Automation details",
|
|
571
574
|
automationEventDetails: "Runs when {{event}}.",
|
|
572
575
|
condition: "Condition",
|
|
@@ -137,13 +137,13 @@ export declare function screenMemoryMcpToolDefinitions(): ({
|
|
|
137
137
|
inputSchema: {
|
|
138
138
|
type: string;
|
|
139
139
|
properties: {
|
|
140
|
+
count?: undefined;
|
|
140
141
|
query?: undefined;
|
|
141
142
|
minutes?: undefined;
|
|
142
143
|
limit?: undefined;
|
|
143
144
|
clientHint?: undefined;
|
|
144
145
|
timestamp?: undefined;
|
|
145
146
|
chapterId?: undefined;
|
|
146
|
-
count?: undefined;
|
|
147
147
|
startAt?: undefined;
|
|
148
148
|
endAt?: undefined;
|
|
149
149
|
reason?: undefined;
|
|
@@ -159,6 +159,7 @@ export declare function screenMemoryMcpToolDefinitions(): ({
|
|
|
159
159
|
inputSchema: {
|
|
160
160
|
type: string;
|
|
161
161
|
properties: {
|
|
162
|
+
count?: undefined;
|
|
162
163
|
query: {
|
|
163
164
|
type: string;
|
|
164
165
|
description: string;
|
|
@@ -174,7 +175,6 @@ export declare function screenMemoryMcpToolDefinitions(): ({
|
|
|
174
175
|
clientHint?: undefined;
|
|
175
176
|
timestamp?: undefined;
|
|
176
177
|
chapterId?: undefined;
|
|
177
|
-
count?: undefined;
|
|
178
178
|
startAt?: undefined;
|
|
179
179
|
endAt?: undefined;
|
|
180
180
|
reason?: undefined;
|
|
@@ -190,6 +190,7 @@ export declare function screenMemoryMcpToolDefinitions(): ({
|
|
|
190
190
|
inputSchema: {
|
|
191
191
|
type: string;
|
|
192
192
|
properties: {
|
|
193
|
+
count?: undefined;
|
|
193
194
|
minutes: {
|
|
194
195
|
type: string;
|
|
195
196
|
description: string;
|
|
@@ -199,7 +200,6 @@ export declare function screenMemoryMcpToolDefinitions(): ({
|
|
|
199
200
|
clientHint?: undefined;
|
|
200
201
|
timestamp?: undefined;
|
|
201
202
|
chapterId?: undefined;
|
|
202
|
-
count?: undefined;
|
|
203
203
|
startAt?: undefined;
|
|
204
204
|
endAt?: undefined;
|
|
205
205
|
reason?: undefined;
|
|
@@ -216,6 +216,7 @@ export declare function screenMemoryMcpToolDefinitions(): ({
|
|
|
216
216
|
type: string;
|
|
217
217
|
required: string[];
|
|
218
218
|
properties: {
|
|
219
|
+
count?: undefined;
|
|
219
220
|
query: {
|
|
220
221
|
type: string;
|
|
221
222
|
description: string;
|
|
@@ -234,7 +235,6 @@ export declare function screenMemoryMcpToolDefinitions(): ({
|
|
|
234
235
|
};
|
|
235
236
|
timestamp?: undefined;
|
|
236
237
|
chapterId?: undefined;
|
|
237
|
-
count?: undefined;
|
|
238
238
|
startAt?: undefined;
|
|
239
239
|
endAt?: undefined;
|
|
240
240
|
reason?: undefined;
|
|
@@ -250,6 +250,7 @@ export declare function screenMemoryMcpToolDefinitions(): ({
|
|
|
250
250
|
type: string;
|
|
251
251
|
required: string[];
|
|
252
252
|
properties: {
|
|
253
|
+
count?: undefined;
|
|
253
254
|
query?: undefined;
|
|
254
255
|
minutes?: undefined;
|
|
255
256
|
limit?: undefined;
|
|
@@ -263,7 +264,6 @@ export declare function screenMemoryMcpToolDefinitions(): ({
|
|
|
263
264
|
description: string;
|
|
264
265
|
};
|
|
265
266
|
chapterId?: undefined;
|
|
266
|
-
count?: undefined;
|
|
267
267
|
startAt?: undefined;
|
|
268
268
|
endAt?: undefined;
|
|
269
269
|
includeMicrophone?: undefined;
|
|
@@ -314,13 +314,13 @@ export declare function screenMemoryMcpToolDefinitions(): ({
|
|
|
314
314
|
type: string;
|
|
315
315
|
required: string[];
|
|
316
316
|
properties: {
|
|
317
|
+
count?: undefined;
|
|
317
318
|
query?: undefined;
|
|
318
319
|
minutes?: undefined;
|
|
319
320
|
limit?: undefined;
|
|
320
321
|
clientHint?: undefined;
|
|
321
322
|
timestamp?: undefined;
|
|
322
323
|
chapterId?: undefined;
|
|
323
|
-
count?: undefined;
|
|
324
324
|
startAt: {
|
|
325
325
|
type: string;
|
|
326
326
|
description: string;
|
|
@@ -349,13 +349,13 @@ export declare function screenMemoryMcpToolDefinitions(): ({
|
|
|
349
349
|
type: string;
|
|
350
350
|
required: string[];
|
|
351
351
|
properties: {
|
|
352
|
+
count?: undefined;
|
|
352
353
|
query?: undefined;
|
|
353
354
|
minutes?: undefined;
|
|
354
355
|
limit?: undefined;
|
|
355
356
|
clientHint?: undefined;
|
|
356
357
|
timestamp?: undefined;
|
|
357
358
|
chapterId?: undefined;
|
|
358
|
-
count?: undefined;
|
|
359
359
|
startAt?: undefined;
|
|
360
360
|
endAt?: undefined;
|
|
361
361
|
reason?: undefined;
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
export declare function createNotificationsHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<"" | import("./types.js").Notification[] | {
|
|
14
14
|
count: number;
|
|
15
15
|
updated?: undefined;
|
|
16
|
-
error?: undefined;
|
|
17
16
|
ok?: undefined;
|
|
17
|
+
error?: undefined;
|
|
18
18
|
} | {
|
|
19
19
|
count?: undefined;
|
|
20
20
|
updated: number;
|
|
21
|
-
error?: undefined;
|
|
22
21
|
ok?: undefined;
|
|
22
|
+
error?: undefined;
|
|
23
23
|
} | {
|
|
24
24
|
count?: undefined;
|
|
25
25
|
updated?: undefined;
|
|
@@ -75,10 +75,8 @@ export declare function createCustomProviderRegistrationAction<TSchema extends Z
|
|
|
75
75
|
user: "user";
|
|
76
76
|
}>>;
|
|
77
77
|
}, z.core.$strip>>, {
|
|
78
|
-
message?: undefined;
|
|
79
|
-
id?: undefined;
|
|
80
|
-
found?: undefined;
|
|
81
78
|
deleted?: undefined;
|
|
79
|
+
found?: undefined;
|
|
82
80
|
providers: {
|
|
83
81
|
id: string;
|
|
84
82
|
label: string;
|
|
@@ -91,42 +89,44 @@ export declare function createCustomProviderRegistrationAction<TSchema extends Z
|
|
|
91
89
|
count: number;
|
|
92
90
|
provider?: undefined;
|
|
93
91
|
registered?: undefined;
|
|
92
|
+
id?: undefined;
|
|
94
93
|
label?: undefined;
|
|
95
|
-
} | {
|
|
96
94
|
message?: undefined;
|
|
97
|
-
|
|
95
|
+
} | {
|
|
98
96
|
deleted?: undefined;
|
|
99
|
-
providers?: undefined;
|
|
100
97
|
count?: undefined;
|
|
98
|
+
providers?: undefined;
|
|
101
99
|
found: boolean;
|
|
102
100
|
provider: import("../custom-registry.js").CustomProviderConfig;
|
|
103
101
|
registered?: undefined;
|
|
102
|
+
id?: undefined;
|
|
104
103
|
label?: undefined;
|
|
105
|
-
} | {
|
|
106
104
|
message?: undefined;
|
|
105
|
+
} | {
|
|
107
106
|
deleted?: undefined;
|
|
108
|
-
providers?: undefined;
|
|
109
107
|
count?: undefined;
|
|
108
|
+
providers?: undefined;
|
|
110
109
|
provider?: undefined;
|
|
111
110
|
found: boolean;
|
|
112
111
|
id: string;
|
|
113
112
|
registered?: undefined;
|
|
114
113
|
label?: undefined;
|
|
115
|
-
} | {
|
|
116
114
|
message?: undefined;
|
|
115
|
+
} | {
|
|
116
|
+
count?: undefined;
|
|
117
117
|
found?: undefined;
|
|
118
118
|
providers?: undefined;
|
|
119
|
-
count?: undefined;
|
|
120
119
|
provider?: undefined;
|
|
121
120
|
deleted: boolean;
|
|
122
121
|
id: string;
|
|
123
122
|
registered?: undefined;
|
|
124
123
|
label?: undefined;
|
|
124
|
+
message?: undefined;
|
|
125
125
|
} | {
|
|
126
|
-
found?: undefined;
|
|
127
126
|
deleted?: undefined;
|
|
128
|
-
providers?: undefined;
|
|
129
127
|
count?: undefined;
|
|
128
|
+
found?: undefined;
|
|
129
|
+
providers?: undefined;
|
|
130
130
|
provider?: undefined;
|
|
131
131
|
registered: boolean;
|
|
132
132
|
id: string;
|
|
@@ -329,9 +329,9 @@ export declare function createProviderApiActions(runtime: Pick<ProviderApiRuntim
|
|
|
329
329
|
label?: undefined;
|
|
330
330
|
message?: undefined;
|
|
331
331
|
} | {
|
|
332
|
-
count?: undefined;
|
|
333
332
|
id?: undefined;
|
|
334
333
|
deleted?: undefined;
|
|
334
|
+
count?: undefined;
|
|
335
335
|
providers?: undefined;
|
|
336
336
|
found: boolean;
|
|
337
337
|
provider: import("../custom-registry.js").CustomProviderConfig;
|
|
@@ -339,9 +339,9 @@ export declare function createProviderApiActions(runtime: Pick<ProviderApiRuntim
|
|
|
339
339
|
label?: undefined;
|
|
340
340
|
message?: undefined;
|
|
341
341
|
} | {
|
|
342
|
-
count?: undefined;
|
|
343
342
|
provider?: undefined;
|
|
344
343
|
deleted?: undefined;
|
|
344
|
+
count?: undefined;
|
|
345
345
|
providers?: undefined;
|
|
346
346
|
found: boolean;
|
|
347
347
|
id: string;
|
|
@@ -349,9 +349,9 @@ export declare function createProviderApiActions(runtime: Pick<ProviderApiRuntim
|
|
|
349
349
|
label?: undefined;
|
|
350
350
|
message?: undefined;
|
|
351
351
|
} | {
|
|
352
|
-
count?: undefined;
|
|
353
352
|
provider?: undefined;
|
|
354
353
|
found?: undefined;
|
|
354
|
+
count?: undefined;
|
|
355
355
|
providers?: undefined;
|
|
356
356
|
deleted: boolean;
|
|
357
357
|
id: string;
|
|
@@ -359,10 +359,10 @@ export declare function createProviderApiActions(runtime: Pick<ProviderApiRuntim
|
|
|
359
359
|
label?: undefined;
|
|
360
360
|
message?: undefined;
|
|
361
361
|
} | {
|
|
362
|
-
count?: undefined;
|
|
363
362
|
provider?: undefined;
|
|
364
363
|
deleted?: undefined;
|
|
365
364
|
found?: undefined;
|
|
365
|
+
count?: undefined;
|
|
366
366
|
providers?: undefined;
|
|
367
367
|
registered: boolean;
|
|
368
368
|
id: string;
|
|
@@ -73,6 +73,7 @@ export declare function createProviderCorpusJobAction(options: CreateProviderCor
|
|
|
73
73
|
offset?: unknown;
|
|
74
74
|
limit?: unknown;
|
|
75
75
|
}, {
|
|
76
|
+
deleted?: undefined;
|
|
76
77
|
jobs: {
|
|
77
78
|
id: string;
|
|
78
79
|
name: string;
|
|
@@ -83,7 +84,6 @@ export declare function createProviderCorpusJobAction(options: CreateProviderCor
|
|
|
83
84
|
updatedAt: string;
|
|
84
85
|
}[];
|
|
85
86
|
total: number;
|
|
86
|
-
deleted?: undefined;
|
|
87
87
|
jobId?: undefined;
|
|
88
88
|
} | {
|
|
89
89
|
jobs?: undefined;
|
|
@@ -91,9 +91,9 @@ export declare function createProviderCorpusJobAction(options: CreateProviderCor
|
|
|
91
91
|
deleted: boolean;
|
|
92
92
|
jobId: string;
|
|
93
93
|
} | {
|
|
94
|
+
deleted?: undefined;
|
|
94
95
|
jobs?: undefined;
|
|
95
96
|
total?: undefined;
|
|
96
|
-
deleted?: undefined;
|
|
97
97
|
jobId?: undefined;
|
|
98
98
|
hits: Record<string, unknown>[];
|
|
99
99
|
offset: number;
|
|
@@ -540,6 +540,10 @@ export async function mergeCoreSharingActions(registry) {
|
|
|
540
540
|
"manage-recurring-job",
|
|
541
541
|
() => import("../jobs/actions/manage-recurring-job.js"),
|
|
542
542
|
],
|
|
543
|
+
[
|
|
544
|
+
"run-automation-now",
|
|
545
|
+
() => import("../jobs/actions/run-automation-now.js"),
|
|
546
|
+
],
|
|
543
547
|
[
|
|
544
548
|
"list-automation-runs",
|
|
545
549
|
() => import("../jobs/actions/list-automation-runs.js"),
|