@qontinui/shared-types 2.5.0 → 3.0.0
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/scheduler.d.cts +46 -38
- package/dist/scheduler.d.ts +46 -38
- package/package.json +1 -1
- package/src/generated/ExecutePlaybookStep.d.ts +5 -4
- package/src/generated/ManagedBy.d.ts +45 -0
- package/src/generated/RecurringAgentDispatchRole.d.ts +11 -0
- package/src/generated/RecurringAgentExcludedValue.d.ts +20 -0
- package/src/generated/RecurringAgentOs.d.ts +11 -0
- package/src/generated/RecurringAgentOverride.d.ts +48 -0
- package/src/generated/RecurringAgentParamDef.d.ts +100 -0
- package/src/generated/RecurringAgentParamKind.d.ts +89 -0
- package/src/generated/RecurringAgentParamSchema.d.ts +16 -0
- package/src/generated/RecurringAgentSpec.d.ts +91 -0
- package/src/generated/RecurringAgentState.d.ts +13 -0
- package/src/generated/RecurringAgentStatus.d.ts +79 -0
- package/src/generated/RecurringAgentStatusReport.d.ts +48 -0
- package/src/generated/RecurringAgentTarget.d.ts +78 -0
- package/src/generated/ScheduledTask.d.ts +1 -38
- package/src/generated/index.ts +13 -0
package/dist/scheduler.d.cts
CHANGED
|
@@ -252,6 +252,52 @@ interface ConditionStatus {
|
|
|
252
252
|
*/
|
|
253
253
|
type CatchUpPolicy = "run" | "skip" | "run_once";
|
|
254
254
|
|
|
255
|
+
/* eslint-disable */
|
|
256
|
+
/**
|
|
257
|
+
* This file was automatically generated.
|
|
258
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
259
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
260
|
+
*/
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Provenance of a [`ScheduledTask`] that the runner reconciles from a
|
|
264
|
+
* fleet-wide declaration (plan
|
|
265
|
+
* `2026-10-29-recurring-agents-declared-in-coord-reconciled-by-runner`, D5).
|
|
266
|
+
*
|
|
267
|
+
* `(source, tenant_id, agent)` is the managed key: the runner holds at most
|
|
268
|
+
* one task per key. What the reconciler compares to decide whether a task is
|
|
269
|
+
* current is `digest`, never `version` — a catalog fix in coord's code moves
|
|
270
|
+
* no row version, and a deleted-and-recreated agent restarts its version at 1.
|
|
271
|
+
*/
|
|
272
|
+
interface ManagedBy {
|
|
273
|
+
/**
|
|
274
|
+
* The recurring agent's name — its join key across coord's status, run
|
|
275
|
+
* requests and this managed task (coord forbids renames).
|
|
276
|
+
*/
|
|
277
|
+
agent: string;
|
|
278
|
+
/**
|
|
279
|
+
* sha256 (64 lowercase hex) of the resolved spec coord served when this
|
|
280
|
+
* task was applied. `None` = applied from a declaration that carried no
|
|
281
|
+
* digest.
|
|
282
|
+
*/
|
|
283
|
+
digest?: string | null;
|
|
284
|
+
/**
|
|
285
|
+
* Which declaration store the task came from — [`MANAGED_SOURCE_COORD`].
|
|
286
|
+
* A plain string rather than an enum, so a stored task from a newer
|
|
287
|
+
* source still loads; the consumer decides what it recognises.
|
|
288
|
+
*/
|
|
289
|
+
source: string;
|
|
290
|
+
/**
|
|
291
|
+
* The coord tenant (UUID) whose declaration this task applies. A device
|
|
292
|
+
* bound to several tenants holds one managed task per tenant and agent.
|
|
293
|
+
*/
|
|
294
|
+
tenantId: string;
|
|
295
|
+
/**
|
|
296
|
+
* The declaration's row version when applied. History and display only.
|
|
297
|
+
*/
|
|
298
|
+
version: number;
|
|
299
|
+
}
|
|
300
|
+
|
|
255
301
|
/* eslint-disable */
|
|
256
302
|
/**
|
|
257
303
|
* This file was automatically generated.
|
|
@@ -643,44 +689,6 @@ interface ScheduledTask {
|
|
|
643
689
|
*/
|
|
644
690
|
timezone?: string | null;
|
|
645
691
|
}
|
|
646
|
-
/**
|
|
647
|
-
* Provenance of a [`ScheduledTask`] that the runner reconciles from a
|
|
648
|
-
* fleet-wide declaration (plan
|
|
649
|
-
* `2026-10-29-recurring-agents-declared-in-coord-reconciled-by-runner`, D5).
|
|
650
|
-
*
|
|
651
|
-
* `(source, tenant_id, agent)` is the managed key: the runner holds at most
|
|
652
|
-
* one task per key. What the reconciler compares to decide whether a task is
|
|
653
|
-
* current is `digest`, never `version` — a catalog fix in coord's code moves
|
|
654
|
-
* no row version, and a deleted-and-recreated agent restarts its version at 1.
|
|
655
|
-
*/
|
|
656
|
-
interface ManagedBy {
|
|
657
|
-
/**
|
|
658
|
-
* The recurring agent's name — its join key across coord's status, run
|
|
659
|
-
* requests and this managed task (coord forbids renames).
|
|
660
|
-
*/
|
|
661
|
-
agent: string;
|
|
662
|
-
/**
|
|
663
|
-
* sha256 (64 lowercase hex) of the resolved spec coord served when this
|
|
664
|
-
* task was applied. `None` = applied from a declaration that carried no
|
|
665
|
-
* digest.
|
|
666
|
-
*/
|
|
667
|
-
digest?: string | null;
|
|
668
|
-
/**
|
|
669
|
-
* Which declaration store the task came from — [`MANAGED_SOURCE_COORD`].
|
|
670
|
-
* A plain string rather than an enum, so a stored task from a newer
|
|
671
|
-
* source still loads; the consumer decides what it recognises.
|
|
672
|
-
*/
|
|
673
|
-
source: string;
|
|
674
|
-
/**
|
|
675
|
-
* The coord tenant (UUID) whose declaration this task applies. A device
|
|
676
|
-
* bound to several tenants holds one managed task per tenant and agent.
|
|
677
|
-
*/
|
|
678
|
-
tenantId: string;
|
|
679
|
-
/**
|
|
680
|
-
* The declaration's row version when applied. History and display only.
|
|
681
|
-
*/
|
|
682
|
-
version: number;
|
|
683
|
-
}
|
|
684
692
|
|
|
685
693
|
/* eslint-disable */
|
|
686
694
|
/**
|
package/dist/scheduler.d.ts
CHANGED
|
@@ -252,6 +252,52 @@ interface ConditionStatus {
|
|
|
252
252
|
*/
|
|
253
253
|
type CatchUpPolicy = "run" | "skip" | "run_once";
|
|
254
254
|
|
|
255
|
+
/* eslint-disable */
|
|
256
|
+
/**
|
|
257
|
+
* This file was automatically generated.
|
|
258
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
259
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
260
|
+
*/
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Provenance of a [`ScheduledTask`] that the runner reconciles from a
|
|
264
|
+
* fleet-wide declaration (plan
|
|
265
|
+
* `2026-10-29-recurring-agents-declared-in-coord-reconciled-by-runner`, D5).
|
|
266
|
+
*
|
|
267
|
+
* `(source, tenant_id, agent)` is the managed key: the runner holds at most
|
|
268
|
+
* one task per key. What the reconciler compares to decide whether a task is
|
|
269
|
+
* current is `digest`, never `version` — a catalog fix in coord's code moves
|
|
270
|
+
* no row version, and a deleted-and-recreated agent restarts its version at 1.
|
|
271
|
+
*/
|
|
272
|
+
interface ManagedBy {
|
|
273
|
+
/**
|
|
274
|
+
* The recurring agent's name — its join key across coord's status, run
|
|
275
|
+
* requests and this managed task (coord forbids renames).
|
|
276
|
+
*/
|
|
277
|
+
agent: string;
|
|
278
|
+
/**
|
|
279
|
+
* sha256 (64 lowercase hex) of the resolved spec coord served when this
|
|
280
|
+
* task was applied. `None` = applied from a declaration that carried no
|
|
281
|
+
* digest.
|
|
282
|
+
*/
|
|
283
|
+
digest?: string | null;
|
|
284
|
+
/**
|
|
285
|
+
* Which declaration store the task came from — [`MANAGED_SOURCE_COORD`].
|
|
286
|
+
* A plain string rather than an enum, so a stored task from a newer
|
|
287
|
+
* source still loads; the consumer decides what it recognises.
|
|
288
|
+
*/
|
|
289
|
+
source: string;
|
|
290
|
+
/**
|
|
291
|
+
* The coord tenant (UUID) whose declaration this task applies. A device
|
|
292
|
+
* bound to several tenants holds one managed task per tenant and agent.
|
|
293
|
+
*/
|
|
294
|
+
tenantId: string;
|
|
295
|
+
/**
|
|
296
|
+
* The declaration's row version when applied. History and display only.
|
|
297
|
+
*/
|
|
298
|
+
version: number;
|
|
299
|
+
}
|
|
300
|
+
|
|
255
301
|
/* eslint-disable */
|
|
256
302
|
/**
|
|
257
303
|
* This file was automatically generated.
|
|
@@ -643,44 +689,6 @@ interface ScheduledTask {
|
|
|
643
689
|
*/
|
|
644
690
|
timezone?: string | null;
|
|
645
691
|
}
|
|
646
|
-
/**
|
|
647
|
-
* Provenance of a [`ScheduledTask`] that the runner reconciles from a
|
|
648
|
-
* fleet-wide declaration (plan
|
|
649
|
-
* `2026-10-29-recurring-agents-declared-in-coord-reconciled-by-runner`, D5).
|
|
650
|
-
*
|
|
651
|
-
* `(source, tenant_id, agent)` is the managed key: the runner holds at most
|
|
652
|
-
* one task per key. What the reconciler compares to decide whether a task is
|
|
653
|
-
* current is `digest`, never `version` — a catalog fix in coord's code moves
|
|
654
|
-
* no row version, and a deleted-and-recreated agent restarts its version at 1.
|
|
655
|
-
*/
|
|
656
|
-
interface ManagedBy {
|
|
657
|
-
/**
|
|
658
|
-
* The recurring agent's name — its join key across coord's status, run
|
|
659
|
-
* requests and this managed task (coord forbids renames).
|
|
660
|
-
*/
|
|
661
|
-
agent: string;
|
|
662
|
-
/**
|
|
663
|
-
* sha256 (64 lowercase hex) of the resolved spec coord served when this
|
|
664
|
-
* task was applied. `None` = applied from a declaration that carried no
|
|
665
|
-
* digest.
|
|
666
|
-
*/
|
|
667
|
-
digest?: string | null;
|
|
668
|
-
/**
|
|
669
|
-
* Which declaration store the task came from — [`MANAGED_SOURCE_COORD`].
|
|
670
|
-
* A plain string rather than an enum, so a stored task from a newer
|
|
671
|
-
* source still loads; the consumer decides what it recognises.
|
|
672
|
-
*/
|
|
673
|
-
source: string;
|
|
674
|
-
/**
|
|
675
|
-
* The coord tenant (UUID) whose declaration this task applies. A device
|
|
676
|
-
* bound to several tenants holds one managed task per tenant and agent.
|
|
677
|
-
*/
|
|
678
|
-
tenantId: string;
|
|
679
|
-
/**
|
|
680
|
-
* The declaration's row version when applied. History and display only.
|
|
681
|
-
*/
|
|
682
|
-
version: number;
|
|
683
|
-
}
|
|
684
692
|
|
|
685
693
|
/* eslint-disable */
|
|
686
694
|
/**
|
package/package.json
CHANGED
|
@@ -11,6 +11,11 @@ import type { VerificationCategoryKind } from "./VerificationCategoryKind";
|
|
|
11
11
|
/**
|
|
12
12
|
* Drive a state machine through recorded transitions from a playbook.
|
|
13
13
|
*
|
|
14
|
+
* The playbook travels inline in `content`, the only body the runner's
|
|
15
|
+
* executor reads. There is no path form: a `playbookPath` key on a stored
|
|
16
|
+
* step is ignored when it is decoded and dropped when the step is written
|
|
17
|
+
* back.
|
|
18
|
+
*
|
|
14
19
|
* Wire tag: `"execute_playbook"`.
|
|
15
20
|
*/
|
|
16
21
|
export interface ExecutePlaybookStep {
|
|
@@ -50,10 +55,6 @@ export interface ExecutePlaybookStep {
|
|
|
50
55
|
* Display name for the step. Absent or `null` reads as `""`.
|
|
51
56
|
*/
|
|
52
57
|
name: string;
|
|
53
|
-
/**
|
|
54
|
-
* Path to a playbook file.
|
|
55
|
-
*/
|
|
56
|
-
playbookPath?: string | null;
|
|
57
58
|
/**
|
|
58
59
|
* Whether this step is required (default: `true` on consumer side).
|
|
59
60
|
*/
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Provenance of a [`ScheduledTask`] that the runner reconciles from a
|
|
10
|
+
* fleet-wide declaration (plan
|
|
11
|
+
* `2026-10-29-recurring-agents-declared-in-coord-reconciled-by-runner`, D5).
|
|
12
|
+
*
|
|
13
|
+
* `(source, tenant_id, agent)` is the managed key: the runner holds at most
|
|
14
|
+
* one task per key. What the reconciler compares to decide whether a task is
|
|
15
|
+
* current is `digest`, never `version` — a catalog fix in coord's code moves
|
|
16
|
+
* no row version, and a deleted-and-recreated agent restarts its version at 1.
|
|
17
|
+
*/
|
|
18
|
+
export interface ManagedBy {
|
|
19
|
+
/**
|
|
20
|
+
* The recurring agent's name — its join key across coord's status, run
|
|
21
|
+
* requests and this managed task (coord forbids renames).
|
|
22
|
+
*/
|
|
23
|
+
agent: string;
|
|
24
|
+
/**
|
|
25
|
+
* sha256 (64 lowercase hex) of the resolved spec coord served when this
|
|
26
|
+
* task was applied. `None` = applied from a declaration that carried no
|
|
27
|
+
* digest.
|
|
28
|
+
*/
|
|
29
|
+
digest?: string | null;
|
|
30
|
+
/**
|
|
31
|
+
* Which declaration store the task came from — [`MANAGED_SOURCE_COORD`].
|
|
32
|
+
* A plain string rather than an enum, so a stored task from a newer
|
|
33
|
+
* source still loads; the consumer decides what it recognises.
|
|
34
|
+
*/
|
|
35
|
+
source: string;
|
|
36
|
+
/**
|
|
37
|
+
* The coord tenant (UUID) whose declaration this task applies. A device
|
|
38
|
+
* bound to several tenants holds one managed task per tenant and agent.
|
|
39
|
+
*/
|
|
40
|
+
tenantId: string;
|
|
41
|
+
/**
|
|
42
|
+
* The declaration's row version when applied. History and display only.
|
|
43
|
+
*/
|
|
44
|
+
version: number;
|
|
45
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A device's dispatch role, in coord's vocabulary (`dispatch_role.rs`).
|
|
10
|
+
*/
|
|
11
|
+
export type RecurringAgentDispatchRole = "workhorse" | "bench" | "ci_node";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* An [`RecurringAgentParamKind::IntegerSet`] value the entry refuses.
|
|
10
|
+
*/
|
|
11
|
+
export interface RecurringAgentExcludedValue {
|
|
12
|
+
/**
|
|
13
|
+
* Why it is refused.
|
|
14
|
+
*/
|
|
15
|
+
reason: string;
|
|
16
|
+
/**
|
|
17
|
+
* The refused value.
|
|
18
|
+
*/
|
|
19
|
+
value: number;
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* An operating system a [`RecurringAgentTarget::Os`] target selects.
|
|
10
|
+
*/
|
|
11
|
+
export type RecurringAgentOs = "linux" | "windows" | "macos";
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ConditionScheduleConfig } from "./ConditionScheduleConfig";
|
|
9
|
+
import type { IdleCondition } from "./IdleCondition";
|
|
10
|
+
import type { McpConnectionRef } from "./McpConnectionRef";
|
|
11
|
+
import type { ProbeCondition } from "./ProbeCondition";
|
|
12
|
+
import type { RepositoryInactiveCondition } from "./RepositoryInactiveCondition";
|
|
13
|
+
import type { RepositoryWatch } from "./RepositoryWatch";
|
|
14
|
+
import type { ScheduleConditions } from "./ScheduleConditions";
|
|
15
|
+
import type { ScheduleExpression } from "./ScheduleExpression";
|
|
16
|
+
import type { ScheduledTaskType } from "./ScheduledTaskType";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A local override of a managed task on one machine (plan D6), stored by the
|
|
20
|
+
* runner and reported to coord so the web shows it. Only the fields set are
|
|
21
|
+
* overridden; the rest follow the fleet declaration.
|
|
22
|
+
*/
|
|
23
|
+
export interface RecurringAgentOverride {
|
|
24
|
+
/**
|
|
25
|
+
* Replacement conditions (e.g. require idle / repo inactive).
|
|
26
|
+
*/
|
|
27
|
+
conditions?: ScheduleConditions | null;
|
|
28
|
+
/**
|
|
29
|
+
* ISO 8601 timestamp when the override was made.
|
|
30
|
+
*/
|
|
31
|
+
created_at: string;
|
|
32
|
+
/**
|
|
33
|
+
* Free-form note from whoever made the override.
|
|
34
|
+
*/
|
|
35
|
+
note?: string | null;
|
|
36
|
+
/**
|
|
37
|
+
* Replacement schedule.
|
|
38
|
+
*/
|
|
39
|
+
schedule?: ScheduleExpression | null;
|
|
40
|
+
/**
|
|
41
|
+
* Replacement task.
|
|
42
|
+
*/
|
|
43
|
+
task?: ScheduledTaskType | null;
|
|
44
|
+
/**
|
|
45
|
+
* Replacement IANA time zone.
|
|
46
|
+
*/
|
|
47
|
+
timezone?: string | null;
|
|
48
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { RecurringAgentExcludedValue } from "./RecurringAgentExcludedValue";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* One parameter a catalog entry's prompt is rendered from (plan D2), e.g.
|
|
12
|
+
* cleanup-steward's `mode` enum or return-to-main's `daily_cap` integer.
|
|
13
|
+
*/
|
|
14
|
+
export type RecurringAgentParamDef = {
|
|
15
|
+
/**
|
|
16
|
+
* Human-readable explanation, shown beside the form control.
|
|
17
|
+
*/
|
|
18
|
+
description: string;
|
|
19
|
+
/**
|
|
20
|
+
* The key a value is supplied under in [`RecurringAgentSpec::params`].
|
|
21
|
+
*/
|
|
22
|
+
name: string;
|
|
23
|
+
/**
|
|
24
|
+
* A required parameter with no default must be supplied by the tenant
|
|
25
|
+
* row before the entry renders at all (strategic-pulse's tenant slug).
|
|
26
|
+
*/
|
|
27
|
+
required: boolean;
|
|
28
|
+
[k: string]: unknown;
|
|
29
|
+
} & (
|
|
30
|
+
| {
|
|
31
|
+
/**
|
|
32
|
+
* The value used when the tenant sets none.
|
|
33
|
+
*/
|
|
34
|
+
default: boolean;
|
|
35
|
+
type: "boolean";
|
|
36
|
+
[k: string]: unknown;
|
|
37
|
+
}
|
|
38
|
+
| {
|
|
39
|
+
/**
|
|
40
|
+
* The value used when the tenant sets none. Within the bounds.
|
|
41
|
+
*/
|
|
42
|
+
default: number;
|
|
43
|
+
/**
|
|
44
|
+
* Largest allowed value.
|
|
45
|
+
*/
|
|
46
|
+
maximum: number;
|
|
47
|
+
/**
|
|
48
|
+
* Smallest allowed value.
|
|
49
|
+
*/
|
|
50
|
+
minimum: number;
|
|
51
|
+
type: "integer";
|
|
52
|
+
[k: string]: unknown;
|
|
53
|
+
}
|
|
54
|
+
| {
|
|
55
|
+
/**
|
|
56
|
+
* The value used when the tenant sets none. One of `values`.
|
|
57
|
+
*/
|
|
58
|
+
default: string;
|
|
59
|
+
type: "enum";
|
|
60
|
+
/**
|
|
61
|
+
* The allowed values, in display order. Non-empty, no duplicates.
|
|
62
|
+
*/
|
|
63
|
+
values: string[];
|
|
64
|
+
[k: string]: unknown;
|
|
65
|
+
}
|
|
66
|
+
| {
|
|
67
|
+
/**
|
|
68
|
+
* The values a tenant may pick from. Non-empty, no duplicates.
|
|
69
|
+
*/
|
|
70
|
+
allowed: number[];
|
|
71
|
+
/**
|
|
72
|
+
* The set used when the tenant sets none. Non-empty, drawn from
|
|
73
|
+
* `allowed`, none of it excluded.
|
|
74
|
+
*/
|
|
75
|
+
default: number[];
|
|
76
|
+
/**
|
|
77
|
+
* Values that exist but this entry refuses, each with why — shown
|
|
78
|
+
* greyed out in the form rather than hidden.
|
|
79
|
+
*/
|
|
80
|
+
excluded: RecurringAgentExcludedValue[];
|
|
81
|
+
type: "integer_set";
|
|
82
|
+
[k: string]: unknown;
|
|
83
|
+
}
|
|
84
|
+
| {
|
|
85
|
+
/**
|
|
86
|
+
* The value used when the tenant sets none.
|
|
87
|
+
*/
|
|
88
|
+
default: string | null;
|
|
89
|
+
type: "uuid";
|
|
90
|
+
[k: string]: unknown;
|
|
91
|
+
}
|
|
92
|
+
| {
|
|
93
|
+
/**
|
|
94
|
+
* The value used when the tenant sets none. `None` = no default.
|
|
95
|
+
*/
|
|
96
|
+
default: string | null;
|
|
97
|
+
type: "slug";
|
|
98
|
+
[k: string]: unknown;
|
|
99
|
+
}
|
|
100
|
+
);
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { RecurringAgentExcludedValue } from "./RecurringAgentExcludedValue";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The type, default and bounds of one catalog parameter — exactly the shape
|
|
12
|
+
* coord serves in each catalog entry's `params` array
|
|
13
|
+
* (`recurring_agents::param_schema_json` in qontinui-coord).
|
|
14
|
+
*
|
|
15
|
+
* Tagged by `type` and FLATTENED into its [`RecurringAgentParamDef`], so one
|
|
16
|
+
* served parameter reads
|
|
17
|
+
* `{"name":"mode","description":"…","required":false,"type":"enum","values":["reap","report"],"default":"reap"}`.
|
|
18
|
+
*/
|
|
19
|
+
export type RecurringAgentParamKind =
|
|
20
|
+
| {
|
|
21
|
+
/**
|
|
22
|
+
* The value used when the tenant sets none.
|
|
23
|
+
*/
|
|
24
|
+
default: boolean;
|
|
25
|
+
type: "boolean";
|
|
26
|
+
[k: string]: unknown;
|
|
27
|
+
}
|
|
28
|
+
| {
|
|
29
|
+
/**
|
|
30
|
+
* The value used when the tenant sets none. Within the bounds.
|
|
31
|
+
*/
|
|
32
|
+
default: number;
|
|
33
|
+
/**
|
|
34
|
+
* Largest allowed value.
|
|
35
|
+
*/
|
|
36
|
+
maximum: number;
|
|
37
|
+
/**
|
|
38
|
+
* Smallest allowed value.
|
|
39
|
+
*/
|
|
40
|
+
minimum: number;
|
|
41
|
+
type: "integer";
|
|
42
|
+
[k: string]: unknown;
|
|
43
|
+
}
|
|
44
|
+
| {
|
|
45
|
+
/**
|
|
46
|
+
* The value used when the tenant sets none. One of `values`.
|
|
47
|
+
*/
|
|
48
|
+
default: string;
|
|
49
|
+
type: "enum";
|
|
50
|
+
/**
|
|
51
|
+
* The allowed values, in display order. Non-empty, no duplicates.
|
|
52
|
+
*/
|
|
53
|
+
values: string[];
|
|
54
|
+
[k: string]: unknown;
|
|
55
|
+
}
|
|
56
|
+
| {
|
|
57
|
+
/**
|
|
58
|
+
* The values a tenant may pick from. Non-empty, no duplicates.
|
|
59
|
+
*/
|
|
60
|
+
allowed: number[];
|
|
61
|
+
/**
|
|
62
|
+
* The set used when the tenant sets none. Non-empty, drawn from
|
|
63
|
+
* `allowed`, none of it excluded.
|
|
64
|
+
*/
|
|
65
|
+
default: number[];
|
|
66
|
+
/**
|
|
67
|
+
* Values that exist but this entry refuses, each with why — shown
|
|
68
|
+
* greyed out in the form rather than hidden.
|
|
69
|
+
*/
|
|
70
|
+
excluded: RecurringAgentExcludedValue[];
|
|
71
|
+
type: "integer_set";
|
|
72
|
+
[k: string]: unknown;
|
|
73
|
+
}
|
|
74
|
+
| {
|
|
75
|
+
/**
|
|
76
|
+
* The value used when the tenant sets none.
|
|
77
|
+
*/
|
|
78
|
+
default: string | null;
|
|
79
|
+
type: "uuid";
|
|
80
|
+
[k: string]: unknown;
|
|
81
|
+
}
|
|
82
|
+
| {
|
|
83
|
+
/**
|
|
84
|
+
* The value used when the tenant sets none. `None` = no default.
|
|
85
|
+
*/
|
|
86
|
+
default: string | null;
|
|
87
|
+
type: "slug";
|
|
88
|
+
[k: string]: unknown;
|
|
89
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { RecurringAgentExcludedValue } from "./RecurringAgentExcludedValue";
|
|
9
|
+
import type { RecurringAgentParamDef } from "./RecurringAgentParamDef";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The parameter form of one catalog entry: the typed parameters a tenant may
|
|
13
|
+
* set instead of editing prompt text (plan D2, D10). Serialized as the bare
|
|
14
|
+
* array coord serves under a catalog entry's `params` key.
|
|
15
|
+
*/
|
|
16
|
+
export type RecurringAgentParamSchema = RecurringAgentParamDef[];
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { CatchUpPolicy } from "./CatchUpPolicy";
|
|
9
|
+
import type { ConditionScheduleConfig } from "./ConditionScheduleConfig";
|
|
10
|
+
import type { IdleCondition } from "./IdleCondition";
|
|
11
|
+
import type { McpConnectionRef } from "./McpConnectionRef";
|
|
12
|
+
import type { ProbeCondition } from "./ProbeCondition";
|
|
13
|
+
import type { RecurringAgentDispatchRole } from "./RecurringAgentDispatchRole";
|
|
14
|
+
import type { RecurringAgentOs } from "./RecurringAgentOs";
|
|
15
|
+
import type { RecurringAgentTarget } from "./RecurringAgentTarget";
|
|
16
|
+
import type { RepositoryInactiveCondition } from "./RepositoryInactiveCondition";
|
|
17
|
+
import type { RepositoryWatch } from "./RepositoryWatch";
|
|
18
|
+
import type { ScheduleConditions } from "./ScheduleConditions";
|
|
19
|
+
import type { ScheduleExpression } from "./ScheduleExpression";
|
|
20
|
+
import type { ScheduledTaskType } from "./ScheduledTaskType";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* One recurring agent as coord serves it: a catalog entry merged with the
|
|
24
|
+
* tenant's overrides, or a custom agent's full spec (plan D2).
|
|
25
|
+
*
|
|
26
|
+
* On coord's device read route `task_spec` carries the resolved task (for a
|
|
27
|
+
* catalog agent, the template rendered from `params`; a working directory may
|
|
28
|
+
* still be the `{workspace_root}` token, which the runner resolves). A
|
|
29
|
+
* custom agent (no `catalog_ref`) must carry a `RemoteAgent` task and no
|
|
30
|
+
* `requireProbe` condition (D9): `Script` and probe commands come only from
|
|
31
|
+
* the catalog, and the runner applies them only when they equal its own
|
|
32
|
+
* bundled pin.
|
|
33
|
+
*/
|
|
34
|
+
export interface RecurringAgentSpec {
|
|
35
|
+
/**
|
|
36
|
+
* The catalog entry this agent is, or overrides. `None` = a custom agent.
|
|
37
|
+
*/
|
|
38
|
+
catalog_ref?: string | null;
|
|
39
|
+
/**
|
|
40
|
+
* What to do about slots missed while a runner was down.
|
|
41
|
+
*/
|
|
42
|
+
catch_up_policy?: CatchUpPolicy & string;
|
|
43
|
+
/**
|
|
44
|
+
* Conditions the task waits for before running.
|
|
45
|
+
*/
|
|
46
|
+
conditions?: ScheduleConditions | null;
|
|
47
|
+
/**
|
|
48
|
+
* sha256 (64 lowercase hex) of the device-independent resolved spec,
|
|
49
|
+
* computed by coord. What a runner stores as `managed.digest` and echoes
|
|
50
|
+
* back as `applied_digest`.
|
|
51
|
+
*/
|
|
52
|
+
digest?: string | null;
|
|
53
|
+
/**
|
|
54
|
+
* Whether the agent is enabled for the tenant.
|
|
55
|
+
*/
|
|
56
|
+
enabled: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* The agent's name — unique per tenant, and the join key for device
|
|
59
|
+
* status, run requests and managed tasks (coord forbids renames).
|
|
60
|
+
*/
|
|
61
|
+
name: string;
|
|
62
|
+
/**
|
|
63
|
+
* Values for the catalog entry's [`RecurringAgentParamSchema`]. Always a
|
|
64
|
+
* JSON object; empty = every parameter at its default.
|
|
65
|
+
*/
|
|
66
|
+
params: {
|
|
67
|
+
[k: string]: unknown;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* When the agent runs.
|
|
71
|
+
*/
|
|
72
|
+
schedule: ScheduleExpression;
|
|
73
|
+
/**
|
|
74
|
+
* Which devices the agent applies to.
|
|
75
|
+
*/
|
|
76
|
+
target: RecurringAgentTarget;
|
|
77
|
+
/**
|
|
78
|
+
* The task to run. Required for a custom agent; for a catalog agent, the
|
|
79
|
+
* resolved template when coord serves it to a device.
|
|
80
|
+
*/
|
|
81
|
+
task_spec?: ScheduledTaskType | null;
|
|
82
|
+
/**
|
|
83
|
+
* IANA time zone for `schedule`. `None` = each device's scheduler zone.
|
|
84
|
+
*/
|
|
85
|
+
timezone?: string | null;
|
|
86
|
+
/**
|
|
87
|
+
* The declaration's row version (starts at 1). History and display only —
|
|
88
|
+
* compare `digest`, never `version`, to decide whether a device is current.
|
|
89
|
+
*/
|
|
90
|
+
version: number;
|
|
91
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* What a device did with one recurring agent — the
|
|
10
|
+
* `coord.recurring_agent_device_status.state` vocabulary.
|
|
11
|
+
*/
|
|
12
|
+
export type RecurringAgentState =
|
|
13
|
+
"applied" | "paused" | "overridden" | "unapplied" | "refused";
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ConditionScheduleConfig } from "./ConditionScheduleConfig";
|
|
9
|
+
import type { IdleCondition } from "./IdleCondition";
|
|
10
|
+
import type { McpConnectionRef } from "./McpConnectionRef";
|
|
11
|
+
import type { ProbeCondition } from "./ProbeCondition";
|
|
12
|
+
import type { RecurringAgentOverride } from "./RecurringAgentOverride";
|
|
13
|
+
import type { RecurringAgentState } from "./RecurringAgentState";
|
|
14
|
+
import type { RepositoryInactiveCondition } from "./RepositoryInactiveCondition";
|
|
15
|
+
import type { RepositoryWatch } from "./RepositoryWatch";
|
|
16
|
+
import type { ScheduleConditions } from "./ScheduleConditions";
|
|
17
|
+
import type { ScheduleExpression } from "./ScheduleExpression";
|
|
18
|
+
import type { ScheduledTaskStatus } from "./ScheduledTaskStatus";
|
|
19
|
+
import type { ScheduledTaskType } from "./ScheduledTaskType";
|
|
20
|
+
import type { TaskExecutionRecord } from "./TaskExecutionRecord";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* One device's status for one recurring agent — a
|
|
24
|
+
* `coord.recurring_agent_device_status` row (plan D7).
|
|
25
|
+
*/
|
|
26
|
+
export interface RecurringAgentStatus {
|
|
27
|
+
/**
|
|
28
|
+
* The `request_id` of the newest "Run now" request the device ran,
|
|
29
|
+
* echoed so coord can stop serving it as pending (plan D10).
|
|
30
|
+
*/
|
|
31
|
+
acknowledged_request_id?: string | null;
|
|
32
|
+
/**
|
|
33
|
+
* The digest of the spec applied. `None` = none applied.
|
|
34
|
+
*/
|
|
35
|
+
applied_digest?: string | null;
|
|
36
|
+
/**
|
|
37
|
+
* The declaration version applied. Display only.
|
|
38
|
+
*/
|
|
39
|
+
applied_version?: number | null;
|
|
40
|
+
/**
|
|
41
|
+
* ISO 8601 end of the newest completed run. `None` = none known.
|
|
42
|
+
*/
|
|
43
|
+
last_completed_at?: string | null;
|
|
44
|
+
/**
|
|
45
|
+
* The newest run.
|
|
46
|
+
*/
|
|
47
|
+
last_run?: TaskExecutionRecord | null;
|
|
48
|
+
/**
|
|
49
|
+
* ISO 8601 end of the newest successful run. `None` = none known.
|
|
50
|
+
*/
|
|
51
|
+
last_success_at?: string | null;
|
|
52
|
+
/**
|
|
53
|
+
* The agent's name.
|
|
54
|
+
*/
|
|
55
|
+
name: string;
|
|
56
|
+
/**
|
|
57
|
+
* ISO 8601 next scheduled run.
|
|
58
|
+
*/
|
|
59
|
+
next_run?: string | null;
|
|
60
|
+
/**
|
|
61
|
+
* The local override record. Required when `state` is `overridden`; a
|
|
62
|
+
* `paused` task may also carry one.
|
|
63
|
+
*/
|
|
64
|
+
override?: RecurringAgentOverride | null;
|
|
65
|
+
/**
|
|
66
|
+
* The last N runs, newest first.
|
|
67
|
+
*/
|
|
68
|
+
recent_runs?: TaskExecutionRecord[];
|
|
69
|
+
/**
|
|
70
|
+
* What the device did with the agent.
|
|
71
|
+
*/
|
|
72
|
+
state: RecurringAgentState;
|
|
73
|
+
/**
|
|
74
|
+
* Why the agent is `unapplied` or `refused` (e.g.
|
|
75
|
+
* [`UNAPPLIED_WORKSPACE_ROOT_UNSET`], [`REFUSED_COMMAND`]). Present
|
|
76
|
+
* exactly for those two states.
|
|
77
|
+
*/
|
|
78
|
+
unapplied_reason?: string | null;
|
|
79
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ConditionScheduleConfig } from "./ConditionScheduleConfig";
|
|
9
|
+
import type { IdleCondition } from "./IdleCondition";
|
|
10
|
+
import type { McpConnectionRef } from "./McpConnectionRef";
|
|
11
|
+
import type { ProbeCondition } from "./ProbeCondition";
|
|
12
|
+
import type { RecurringAgentOverride } from "./RecurringAgentOverride";
|
|
13
|
+
import type { RecurringAgentState } from "./RecurringAgentState";
|
|
14
|
+
import type { RecurringAgentStatus } from "./RecurringAgentStatus";
|
|
15
|
+
import type { RepositoryInactiveCondition } from "./RepositoryInactiveCondition";
|
|
16
|
+
import type { RepositoryWatch } from "./RepositoryWatch";
|
|
17
|
+
import type { ScheduleConditions } from "./ScheduleConditions";
|
|
18
|
+
import type { ScheduleExpression } from "./ScheduleExpression";
|
|
19
|
+
import type { ScheduledTaskStatus } from "./ScheduledTaskStatus";
|
|
20
|
+
import type { ScheduledTaskType } from "./ScheduledTaskType";
|
|
21
|
+
import type { TaskExecutionRecord } from "./TaskExecutionRecord";
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* What a runner posts to coord after every reconcile and every run
|
|
25
|
+
* (`POST /coord/recurring-agents/status/:device_id`, plan D7): one entry per
|
|
26
|
+
* recurring agent the tenant's declaration targets at this device.
|
|
27
|
+
*/
|
|
28
|
+
export interface RecurringAgentStatusReport {
|
|
29
|
+
/**
|
|
30
|
+
* The device's "accept managed tasks" setting (D9; default on). When
|
|
31
|
+
* off, the runner applies nothing and reports each agent `unapplied`
|
|
32
|
+
* with [`UNAPPLIED_MANAGED_TASKS_REFUSED`].
|
|
33
|
+
*/
|
|
34
|
+
accepts_managed: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* One entry per agent, names unique.
|
|
37
|
+
*/
|
|
38
|
+
agents: RecurringAgentStatus[];
|
|
39
|
+
/**
|
|
40
|
+
* RFC 3339 timestamp when the device built this report.
|
|
41
|
+
*/
|
|
42
|
+
reported_at: string;
|
|
43
|
+
/**
|
|
44
|
+
* The tenant (UUID) the reported agents were declared by. A device bound
|
|
45
|
+
* to several tenants posts one report per proven tenant.
|
|
46
|
+
*/
|
|
47
|
+
tenant_id: string;
|
|
48
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { RecurringAgentDispatchRole } from "./RecurringAgentDispatchRole";
|
|
9
|
+
import type { RecurringAgentOs } from "./RecurringAgentOs";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Which devices a recurring agent applies to (plan D4).
|
|
13
|
+
*
|
|
14
|
+
* Always serialized as a JSON object tagged by `kind` — `{"kind":"all"}`,
|
|
15
|
+
* never the bare string `"all"` — because coord's
|
|
16
|
+
* `ck_recurring_agents_target_object` refuses a non-object. coord resolves the
|
|
17
|
+
* target per device on its read route, so a runner never evaluates it.
|
|
18
|
+
*
|
|
19
|
+
* Unknown fields are refused on deserialization (not only in the schema): a
|
|
20
|
+
* misspelt `exclude_devices` silently ignored would widen the target to
|
|
21
|
+
* devices the author meant to exclude. A runner that cannot parse a target
|
|
22
|
+
* keeps its last-applied set (the reconciler's fail-safe), which is the safe
|
|
23
|
+
* side of that failure.
|
|
24
|
+
*/
|
|
25
|
+
export type RecurringAgentTarget =
|
|
26
|
+
| {
|
|
27
|
+
/**
|
|
28
|
+
* Device ids (UUIDs) removed from the target.
|
|
29
|
+
*/
|
|
30
|
+
exclude_devices?: string[];
|
|
31
|
+
kind: "all";
|
|
32
|
+
}
|
|
33
|
+
| {
|
|
34
|
+
/**
|
|
35
|
+
* Device ids (UUIDs). May be empty: coord's catalog defaults for a
|
|
36
|
+
* one-box agent are `{"kind":"devices","devices":[]}` — the agent
|
|
37
|
+
* targets no device until an operator picks one.
|
|
38
|
+
*/
|
|
39
|
+
devices: string[];
|
|
40
|
+
/**
|
|
41
|
+
* Device ids (UUIDs) removed from the target.
|
|
42
|
+
*/
|
|
43
|
+
exclude_devices?: string[];
|
|
44
|
+
kind: "devices";
|
|
45
|
+
}
|
|
46
|
+
| {
|
|
47
|
+
/**
|
|
48
|
+
* Device ids (UUIDs) removed from the target.
|
|
49
|
+
*/
|
|
50
|
+
exclude_devices?: string[];
|
|
51
|
+
kind: "dispatch_role";
|
|
52
|
+
/**
|
|
53
|
+
* The role a device must hold.
|
|
54
|
+
*/
|
|
55
|
+
role: RecurringAgentDispatchRole;
|
|
56
|
+
}
|
|
57
|
+
| {
|
|
58
|
+
/**
|
|
59
|
+
* Required capabilities (containment). Must be non-empty.
|
|
60
|
+
*/
|
|
61
|
+
capabilities: string[];
|
|
62
|
+
/**
|
|
63
|
+
* Device ids (UUIDs) removed from the target.
|
|
64
|
+
*/
|
|
65
|
+
exclude_devices?: string[];
|
|
66
|
+
kind: "capabilities";
|
|
67
|
+
}
|
|
68
|
+
| {
|
|
69
|
+
/**
|
|
70
|
+
* Device ids (UUIDs) removed from the target.
|
|
71
|
+
*/
|
|
72
|
+
exclude_devices?: string[];
|
|
73
|
+
kind: "os";
|
|
74
|
+
/**
|
|
75
|
+
* Selected operating systems. Must be non-empty.
|
|
76
|
+
*/
|
|
77
|
+
os: RecurringAgentOs[];
|
|
78
|
+
};
|
|
@@ -9,6 +9,7 @@ import type { CatchUpPolicy } from "./CatchUpPolicy";
|
|
|
9
9
|
import type { ConditionScheduleConfig } from "./ConditionScheduleConfig";
|
|
10
10
|
import type { ConditionStatus } from "./ConditionStatus";
|
|
11
11
|
import type { IdleCondition } from "./IdleCondition";
|
|
12
|
+
import type { ManagedBy } from "./ManagedBy";
|
|
12
13
|
import type { McpConnectionRef } from "./McpConnectionRef";
|
|
13
14
|
import type { ProbeCondition } from "./ProbeCondition";
|
|
14
15
|
import type { RepositoryInactiveCondition } from "./RepositoryInactiveCondition";
|
|
@@ -123,41 +124,3 @@ export interface ScheduledTask {
|
|
|
123
124
|
*/
|
|
124
125
|
timezone?: string | null;
|
|
125
126
|
}
|
|
126
|
-
/**
|
|
127
|
-
* Provenance of a [`ScheduledTask`] that the runner reconciles from a
|
|
128
|
-
* fleet-wide declaration (plan
|
|
129
|
-
* `2026-10-29-recurring-agents-declared-in-coord-reconciled-by-runner`, D5).
|
|
130
|
-
*
|
|
131
|
-
* `(source, tenant_id, agent)` is the managed key: the runner holds at most
|
|
132
|
-
* one task per key. What the reconciler compares to decide whether a task is
|
|
133
|
-
* current is `digest`, never `version` — a catalog fix in coord's code moves
|
|
134
|
-
* no row version, and a deleted-and-recreated agent restarts its version at 1.
|
|
135
|
-
*/
|
|
136
|
-
export interface ManagedBy {
|
|
137
|
-
/**
|
|
138
|
-
* The recurring agent's name — its join key across coord's status, run
|
|
139
|
-
* requests and this managed task (coord forbids renames).
|
|
140
|
-
*/
|
|
141
|
-
agent: string;
|
|
142
|
-
/**
|
|
143
|
-
* sha256 (64 lowercase hex) of the resolved spec coord served when this
|
|
144
|
-
* task was applied. `None` = applied from a declaration that carried no
|
|
145
|
-
* digest.
|
|
146
|
-
*/
|
|
147
|
-
digest?: string | null;
|
|
148
|
-
/**
|
|
149
|
-
* Which declaration store the task came from — [`MANAGED_SOURCE_COORD`].
|
|
150
|
-
* A plain string rather than an enum, so a stored task from a newer
|
|
151
|
-
* source still loads; the consumer decides what it recognises.
|
|
152
|
-
*/
|
|
153
|
-
source: string;
|
|
154
|
-
/**
|
|
155
|
-
* The coord tenant (UUID) whose declaration this task applies. A device
|
|
156
|
-
* bound to several tenants holds one managed task per tenant and agent.
|
|
157
|
-
*/
|
|
158
|
-
tenantId: string;
|
|
159
|
-
/**
|
|
160
|
-
* The declaration's row version when applied. History and display only.
|
|
161
|
-
*/
|
|
162
|
-
version: number;
|
|
163
|
-
}
|
package/src/generated/index.ts
CHANGED
|
@@ -285,6 +285,7 @@ export type { LegacyTransition } from './LegacyTransition';
|
|
|
285
285
|
export type { LogSourceSelection } from './LogSourceSelection';
|
|
286
286
|
export type { LoopInstanceStatus } from './LoopInstanceStatus';
|
|
287
287
|
export type { LoopPhase } from './LoopPhase';
|
|
288
|
+
export type { ManagedBy } from './ManagedBy';
|
|
288
289
|
export type { MappingRow } from './MappingRow';
|
|
289
290
|
export type { MatchAdjustment } from './MatchAdjustment';
|
|
290
291
|
export type { MatchLocation } from './MatchLocation';
|
|
@@ -377,6 +378,18 @@ export type { RagProgressEvent } from './RagProgressEvent';
|
|
|
377
378
|
export type { ReadConfigResponse } from './ReadConfigResponse';
|
|
378
379
|
export type { RecommendedState } from './RecommendedState';
|
|
379
380
|
export type { RecordGitOpRequest } from './RecordGitOpRequest';
|
|
381
|
+
export type { RecurringAgentDispatchRole } from './RecurringAgentDispatchRole';
|
|
382
|
+
export type { RecurringAgentExcludedValue } from './RecurringAgentExcludedValue';
|
|
383
|
+
export type { RecurringAgentOs } from './RecurringAgentOs';
|
|
384
|
+
export type { RecurringAgentOverride } from './RecurringAgentOverride';
|
|
385
|
+
export type { RecurringAgentParamDef } from './RecurringAgentParamDef';
|
|
386
|
+
export type { RecurringAgentParamKind } from './RecurringAgentParamKind';
|
|
387
|
+
export type { RecurringAgentParamSchema } from './RecurringAgentParamSchema';
|
|
388
|
+
export type { RecurringAgentSpec } from './RecurringAgentSpec';
|
|
389
|
+
export type { RecurringAgentState } from './RecurringAgentState';
|
|
390
|
+
export type { RecurringAgentStatus } from './RecurringAgentStatus';
|
|
391
|
+
export type { RecurringAgentStatusReport } from './RecurringAgentStatusReport';
|
|
392
|
+
export type { RecurringAgentTarget } from './RecurringAgentTarget';
|
|
380
393
|
export type { ReflectionFixOutput } from './ReflectionFixOutput';
|
|
381
394
|
export type { Refusal } from './Refusal';
|
|
382
395
|
export type { RefusalCode } from './RefusalCode';
|