@beacon-build/sdk 1.52.7 → 1.52.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.
- package/CHANGELOG.md +36 -0
- package/dist/clients/admin/executions.client.d.ts +6 -0
- package/dist/clients/admin/executions.client.d.ts.map +1 -1
- package/dist/clients/admin/executions.client.js.map +1 -1
- package/dist/clients/admin/ops-admin.client.d.ts +35 -0
- package/dist/clients/admin/ops-admin.client.d.ts.map +1 -1
- package/dist/clients/admin/ops-admin.client.js +4 -0
- package/dist/clients/admin/ops-admin.client.js.map +1 -1
- package/dist/clients/admin/sessions.client.d.ts +19 -0
- package/dist/clients/admin/sessions.client.d.ts.map +1 -1
- package/dist/clients/admin/sessions.client.js +18 -0
- package/dist/clients/admin/sessions.client.js.map +1 -1
- package/dist/clients/admin/users.client.d.ts +6 -1
- package/dist/clients/admin/users.client.d.ts.map +1 -1
- package/dist/clients/admin/users.client.js +7 -0
- package/dist/clients/admin/users.client.js.map +1 -1
- package/dist/clients/ops/agents-mint-ops.client.d.ts +13 -0
- package/dist/clients/ops/agents-mint-ops.client.d.ts.map +1 -1
- package/dist/clients/ops/agents-mint-ops.client.js +20 -0
- package/dist/clients/ops/agents-mint-ops.client.js.map +1 -1
- package/dist/clients/ops/agents-ops.client.d.ts +5 -0
- package/dist/clients/ops/agents-ops.client.d.ts.map +1 -1
- package/dist/clients/ops/agents-ops.client.js +4 -0
- package/dist/clients/ops/agents-ops.client.js.map +1 -1
- package/dist/clients/ops/github-credential-ops.client.d.ts +29 -0
- package/dist/clients/ops/github-credential-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/github-credential-ops.client.js +32 -0
- package/dist/clients/ops/github-credential-ops.client.js.map +1 -0
- package/dist/clients/ops/ops-workers.client.d.ts +12 -152
- package/dist/clients/ops/ops-workers.client.d.ts.map +1 -1
- package/dist/clients/ops/ops-workers.client.js +18 -0
- package/dist/clients/ops/ops-workers.client.js.map +1 -1
- package/dist/clients/ops/ops-workers.types.d.ts +179 -0
- package/dist/clients/ops/ops-workers.types.d.ts.map +1 -0
- package/dist/clients/ops/ops-workers.types.js +2 -0
- package/dist/clients/ops/ops-workers.types.js.map +1 -0
- package/dist/clients/ops/thread-messaging.client.d.ts +12 -29
- package/dist/clients/ops/thread-messaging.client.d.ts.map +1 -1
- package/dist/clients/ops/thread-messaging.client.js +13 -0
- package/dist/clients/ops/thread-messaging.client.js.map +1 -1
- package/dist/clients/ops/thread-messaging.owner-scope.d.ts +54 -0
- package/dist/clients/ops/thread-messaging.owner-scope.d.ts.map +1 -0
- package/dist/clients/ops/thread-messaging.owner-scope.js +33 -0
- package/dist/clients/ops/thread-messaging.owner-scope.js.map +1 -0
- package/dist/clients/ops/thread-messaging.types.d.ts +27 -0
- package/dist/clients/ops/thread-messaging.types.d.ts.map +1 -0
- package/dist/clients/ops/thread-messaging.types.js +2 -0
- package/dist/clients/ops/thread-messaging.types.js.map +1 -0
- package/dist/factory/ops-sdk.d.ts +3 -0
- package/dist/factory/ops-sdk.d.ts.map +1 -1
- package/dist/factory/ops-sdk.js +2 -0
- package/dist/factory/ops-sdk.js.map +1 -1
- package/dist/index.additional-client-types.d.ts +1 -0
- package/dist/index.additional-client-types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/manifest.ops-entries.d.ts.map +1 -1
- package/dist/manifest.ops-entries.js +9 -0
- package/dist/manifest.ops-entries.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { WorkerStatusDto, WorkerRunDto, WorkerConfig, WorkerConfigPatch, TriggerWorkerResult, WorkerRunsQuery, WorkerRunsListResult, ThroughputQuery, ThroughputResult, ListOutboxQuery, OutboxListResult, BulkRemoveOutboxOptions, BulkRemoveOutboxResult, WorkersTransport } from './ops-workers.types.js';
|
|
2
2
|
/**
|
|
3
3
|
* OpsWorkersClient — F331/AC-12.
|
|
4
4
|
*
|
|
@@ -11,158 +11,11 @@ import type { WorkerRunType } from '@beacon-build/core';
|
|
|
11
11
|
* `getRaw` must return the *unwrapped* response body — the client handles the
|
|
12
12
|
* AC-15 `{ data }` envelope itself so behaviour is identical across transports.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* depends on (kept structurally identical there to avoid a worker→core cycle).
|
|
14
|
+
* Wire types live in the sibling `ops-workers.types.ts` (loc-guard split, B796) —
|
|
15
|
+
* re-exported below so every pre-existing `from '.../ops-workers.client.js'` type
|
|
16
|
+
* import keeps working unchanged.
|
|
18
17
|
*/
|
|
19
|
-
export type WorkerType
|
|
20
|
-
export type WorkerState = 'running' | 'stopped' | 'not_registered';
|
|
21
|
-
/** C455/AC-1: worker functional grouping — orthogonal to {@link WorkerType} (mirrored here
|
|
22
|
-
* for the same reason as the rest of this file: the SDK does not depend on @beacon-build/worker). */
|
|
23
|
-
export type WorkerCategory = 'maintenance' | 'retention' | 'monitoring' | 'notifications' | 'ingestion' | 'reconciliation' | 'dispatch';
|
|
24
|
-
export interface WorkerLifecycleConfig {
|
|
25
|
-
minPollIntervalMs: number;
|
|
26
|
-
maxPollIntervalMs: number;
|
|
27
|
-
defaultPollIntervalMs: number;
|
|
28
|
-
settingsKeys: {
|
|
29
|
-
enabled: string;
|
|
30
|
-
pollIntervalMs: string;
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
export interface WorkerDefinition {
|
|
34
|
-
name: string;
|
|
35
|
-
label: string;
|
|
36
|
-
description: string;
|
|
37
|
-
type: WorkerType;
|
|
38
|
-
/** C455/AC-1: functional group — required in code, same discipline as `type`. */
|
|
39
|
-
category: WorkerCategory;
|
|
40
|
-
lifecycle: WorkerLifecycleConfig;
|
|
41
|
-
/** C450 (F368-Rest AC-3): whether run-now can do anything for this worker —
|
|
42
|
-
* false for the push-based event-driven workers (no manual tick to run). */
|
|
43
|
-
triggerable: boolean;
|
|
44
|
-
/** Required together with `triggerable: false` — explains the no-op in the UI. */
|
|
45
|
-
nonTriggerableReason?: string;
|
|
46
|
-
}
|
|
47
|
-
export interface WorkerConfig {
|
|
48
|
-
enabled: boolean;
|
|
49
|
-
pollIntervalMs: number;
|
|
50
|
-
}
|
|
51
|
-
/** Mirror of @beacon-build/worker WorkerStatusDto (denormalised for the UI). */
|
|
52
|
-
export interface WorkerStatusDto {
|
|
53
|
-
name: string;
|
|
54
|
-
label: string;
|
|
55
|
-
type: WorkerType;
|
|
56
|
-
state: WorkerState;
|
|
57
|
-
lastRunAt: string | null;
|
|
58
|
-
lastRunDurationMs: number | null;
|
|
59
|
-
/** SUM(jobsProcessed) over worker_runs in the last 24h. */
|
|
60
|
-
processed24h: number;
|
|
61
|
-
config: WorkerConfig;
|
|
62
|
-
definition: WorkerDefinition;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Wire shape of a persisted worker run (recent-runs). Mirrors
|
|
66
|
-
* @beacon-build/core `WorkerRun`, but `createdAt` is the JSON-serialised string
|
|
67
|
-
* (the core type uses `Date`, which only exists server-side before serialisation).
|
|
68
|
-
*/
|
|
69
|
-
export interface WorkerRunDto {
|
|
70
|
-
id: string;
|
|
71
|
-
workerName: string;
|
|
72
|
-
type: WorkerRunType;
|
|
73
|
-
organizationId?: string | null;
|
|
74
|
-
createdAt: string;
|
|
75
|
-
durationMs: number;
|
|
76
|
-
jobsProcessed: number;
|
|
77
|
-
success: boolean;
|
|
78
|
-
error?: string | null;
|
|
79
|
-
/** Per-type structured payload (AC-15). */
|
|
80
|
-
detail?: Record<string, unknown> | null;
|
|
81
|
-
}
|
|
82
|
-
export interface WorkerConfigPatch {
|
|
83
|
-
enabled?: boolean;
|
|
84
|
-
pollIntervalMs?: number;
|
|
85
|
-
}
|
|
86
|
-
export interface TriggerWorkerResult {
|
|
87
|
-
triggered: boolean;
|
|
88
|
-
/** C450 (F368-Rest AC-3): 'not-triggerable' — the route's static short-circuit
|
|
89
|
-
* for a non-triggerable (event-driven) worker, distinct from a busy tick. */
|
|
90
|
-
reason?: 'busy' | 'not-triggerable';
|
|
91
|
-
}
|
|
92
|
-
/** C456: query params for the worker-crossing run history (C455/AC-5). */
|
|
93
|
-
export interface WorkerRunsQuery {
|
|
94
|
-
page?: number;
|
|
95
|
-
limit?: number;
|
|
96
|
-
/** ISO-8601. */
|
|
97
|
-
since?: string;
|
|
98
|
-
/** ISO-8601. */
|
|
99
|
-
until?: string;
|
|
100
|
-
/** Comma-separated worker names. */
|
|
101
|
-
worker?: string;
|
|
102
|
-
category?: WorkerCategory;
|
|
103
|
-
onlyFailed?: boolean;
|
|
104
|
-
}
|
|
105
|
-
export interface WorkerRunsListResult {
|
|
106
|
-
runs: WorkerRunDto[];
|
|
107
|
-
meta: {
|
|
108
|
-
page: number;
|
|
109
|
-
limit: number;
|
|
110
|
-
total: number;
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* C788: outbox job DTO. Mirrors apps/platform `OutboxJob` (`types/outbox.ts`) — kept
|
|
115
|
-
* separate for the same reason as the rest of this file's types (no app→SDK dependency).
|
|
116
|
-
*/
|
|
117
|
-
export interface OutboxJobDto {
|
|
118
|
-
id: string;
|
|
119
|
-
event: string;
|
|
120
|
-
/** B197: absent for task-less jobs (F290 agent-events: checkin / pr_watch). */
|
|
121
|
-
taskId?: string;
|
|
122
|
-
project: string;
|
|
123
|
-
payload: Record<string, unknown>;
|
|
124
|
-
attempts: number;
|
|
125
|
-
maxAttempts: number;
|
|
126
|
-
createdAt: string;
|
|
127
|
-
failedReason?: string;
|
|
128
|
-
}
|
|
129
|
-
/** B275: 'completed' is a first-class filter alongside the 'all' view filter. */
|
|
130
|
-
export type OutboxJobStatus = 'waiting' | 'delayed' | 'failed' | 'completed' | 'all';
|
|
131
|
-
export interface ListOutboxQuery {
|
|
132
|
-
status?: OutboxJobStatus;
|
|
133
|
-
page?: number;
|
|
134
|
-
limit?: number;
|
|
135
|
-
}
|
|
136
|
-
export interface OutboxListResult {
|
|
137
|
-
jobs: OutboxJobDto[];
|
|
138
|
-
meta: {
|
|
139
|
-
page: number;
|
|
140
|
-
limit: number;
|
|
141
|
-
total: number;
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
/** Statuses that can be bulk-removed (excludes the 'all' view filter). */
|
|
145
|
-
export type BulkRemoveOutboxStatus = 'waiting' | 'delayed' | 'failed' | 'completed';
|
|
146
|
-
export interface BulkRemoveOutboxOptions {
|
|
147
|
-
status: BulkRemoveOutboxStatus;
|
|
148
|
-
olderThanMs?: number;
|
|
149
|
-
dryRun?: boolean;
|
|
150
|
-
}
|
|
151
|
-
export interface BulkRemoveOutboxResult {
|
|
152
|
-
removedCount: number;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Minimal transport the workers client needs. Satisfied by both OpsApiClient and
|
|
156
|
-
* an HttpClient adapter (see ops-sdk / admin-sdk factories).
|
|
157
|
-
*/
|
|
158
|
-
export interface WorkersTransport {
|
|
159
|
-
/** GET returning the raw (un-unwrapped) JSON body. */
|
|
160
|
-
getRaw<T>(path: string): Promise<T>;
|
|
161
|
-
post<T>(path: string, body?: unknown): Promise<T>;
|
|
162
|
-
patch<T>(path: string, body: unknown): Promise<T>;
|
|
163
|
-
/** C788: DELETE — needed by the outbox single-job-remove endpoint. */
|
|
164
|
-
delete<T>(path: string): Promise<T>;
|
|
165
|
-
}
|
|
18
|
+
export type { WorkerType, WorkerState, WorkerCategory, WorkerLifecycleConfig, WorkerDefinition, WorkerConfig, WorkerStatusDto, WorkerRunDto, WorkerConfigPatch, TriggerWorkerResult, WorkerRunsQuery, WorkerRunsListResult, ThroughputQuery, ThroughputBucketDto, ThroughputResult, OutboxJobDto, OutboxJobStatus, ListOutboxQuery, OutboxListResult, BulkRemoveOutboxStatus, BulkRemoveOutboxOptions, BulkRemoveOutboxResult, WorkersTransport, } from './ops-workers.types.js';
|
|
166
19
|
export declare class OpsWorkersClient {
|
|
167
20
|
private readonly transport;
|
|
168
21
|
constructor(transport: WorkersTransport);
|
|
@@ -183,6 +36,13 @@ export declare class OpsWorkersClient {
|
|
|
183
36
|
* Runs table reads from — a sibling of `${BASE}`, not nested under `/workers`).
|
|
184
37
|
*/
|
|
185
38
|
listRuns(query?: WorkerRunsQuery): Promise<WorkerRunsListResult>;
|
|
39
|
+
/**
|
|
40
|
+
* GET /admin/ops/runs/throughput → { data, meta } (B796) — server-aggregated hourly
|
|
41
|
+
* throughput buckets spanning the FULL requested window, the fix for the Ops
|
|
42
|
+
* Cockpit "Durchsatz (24h)" chart previously bucketizing a capped `listRuns` page
|
|
43
|
+
* client-side (see `ThroughputSparkline`'s doc comment for the full incident).
|
|
44
|
+
*/
|
|
45
|
+
getThroughput(query?: ThroughputQuery): Promise<ThroughputResult>;
|
|
186
46
|
/**
|
|
187
47
|
* C788: outbox endpoints — replacing the hand-rolled `apiFetch` URL strings that
|
|
188
48
|
* used to live in apps/platform `OpsWorkersService` (T107 originally left these out
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ops-workers.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/ops-workers.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ops-workers.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/ops-workers.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,eAAe,EAEf,gBAAgB,EAEhB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EACnB,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;;;;;;;;;GAeG;AACH,YAAY,EACR,UAAU,EACV,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,GACnB,MAAM,wBAAwB,CAAA;AAI/B,qBAAa,gBAAgB;IACb,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB;IAExD;gDAC4C;IACtC,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAKxC,qDAAqD;IAC/C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAIjD,2EAA2E;IACrE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQvE,2DAA2D;IACrD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAO9E,qEAAqE;IAC/D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMxD;;;;OAIG;IACG,QAAQ,CAAC,KAAK,GAAE,eAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkB1E;;;;;OAKG;IACG,aAAa,CAAC,KAAK,GAAE,eAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAc3E;;;;OAIG;IAEH,iGAAiG;IAC3F,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,eAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAc5F,wDAAwD;IAClD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtE,oDAAoD;IAC9C,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvE;;;OAGG;IACG,gBAAgB,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,uBAAuB,GACjC,OAAO,CAAC,sBAAsB,CAAC;CAOrC"}
|
|
@@ -53,6 +53,24 @@ export class OpsWorkersClient {
|
|
|
53
53
|
const res = await this.transport.getRaw(`/api/v1/admin/ops/runs${suffix}`);
|
|
54
54
|
return { runs: res.data ?? [], meta: res.meta };
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* GET /admin/ops/runs/throughput → { data, meta } (B796) — server-aggregated hourly
|
|
58
|
+
* throughput buckets spanning the FULL requested window, the fix for the Ops
|
|
59
|
+
* Cockpit "Durchsatz (24h)" chart previously bucketizing a capped `listRuns` page
|
|
60
|
+
* client-side (see `ThroughputSparkline`'s doc comment for the full incident).
|
|
61
|
+
*/
|
|
62
|
+
async getThroughput(query = {}) {
|
|
63
|
+
const qs = new URLSearchParams();
|
|
64
|
+
if (query.hours)
|
|
65
|
+
qs.set('hours', String(query.hours));
|
|
66
|
+
if (query.worker)
|
|
67
|
+
qs.set('worker', query.worker);
|
|
68
|
+
if (query.category)
|
|
69
|
+
qs.set('category', query.category);
|
|
70
|
+
const suffix = qs.toString() ? `?${qs.toString()}` : '';
|
|
71
|
+
const res = await this.transport.getRaw(`/api/v1/admin/ops/runs/throughput${suffix}`);
|
|
72
|
+
return { buckets: res.data ?? [], meta: res.meta };
|
|
73
|
+
}
|
|
56
74
|
/**
|
|
57
75
|
* C788: outbox endpoints — replacing the hand-rolled `apiFetch` URL strings that
|
|
58
76
|
* used to live in apps/platform `OpsWorkersService` (T107 originally left these out
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ops-workers.client.js","sourceRoot":"","sources":["../../../src/clients/ops/ops-workers.client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ops-workers.client.js","sourceRoot":"","sources":["../../../src/clients/ops/ops-workers.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import type { WorkerRunType } from '@beacon-build/core';
|
|
2
|
+
/**
|
|
3
|
+
* OpsWorkersClient's wire types — split out of `ops-workers.client.ts` (loc-guard,
|
|
4
|
+
* B796) so the client file stays a thin adapter over these shapes.
|
|
5
|
+
*
|
|
6
|
+
* Types are mirrored here rather than imported from @beacon-build/worker so the
|
|
7
|
+
* SDK does not take a dependency on the worker package. `WorkerRunType` is the
|
|
8
|
+
* one exception — it is re-exported by @beacon-build/core, which the SDK already
|
|
9
|
+
* depends on (kept structurally identical there to avoid a worker→core cycle).
|
|
10
|
+
*/
|
|
11
|
+
export type WorkerType = WorkerRunType;
|
|
12
|
+
export type WorkerState = 'running' | 'stopped' | 'not_registered';
|
|
13
|
+
/** C455/AC-1: worker functional grouping — orthogonal to {@link WorkerType} (mirrored here
|
|
14
|
+
* for the same reason as the rest of this file: the SDK does not depend on @beacon-build/worker). */
|
|
15
|
+
export type WorkerCategory = 'maintenance' | 'retention' | 'monitoring' | 'notifications' | 'ingestion' | 'reconciliation' | 'dispatch';
|
|
16
|
+
export interface WorkerLifecycleConfig {
|
|
17
|
+
minPollIntervalMs: number;
|
|
18
|
+
maxPollIntervalMs: number;
|
|
19
|
+
defaultPollIntervalMs: number;
|
|
20
|
+
settingsKeys: {
|
|
21
|
+
enabled: string;
|
|
22
|
+
pollIntervalMs: string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface WorkerDefinition {
|
|
26
|
+
name: string;
|
|
27
|
+
label: string;
|
|
28
|
+
description: string;
|
|
29
|
+
type: WorkerType;
|
|
30
|
+
/** C455/AC-1: functional group — required in code, same discipline as `type`. */
|
|
31
|
+
category: WorkerCategory;
|
|
32
|
+
lifecycle: WorkerLifecycleConfig;
|
|
33
|
+
/** C450 (F368-Rest AC-3): whether run-now can do anything for this worker —
|
|
34
|
+
* false for the push-based event-driven workers (no manual tick to run). */
|
|
35
|
+
triggerable: boolean;
|
|
36
|
+
/** Required together with `triggerable: false` — explains the no-op in the UI. */
|
|
37
|
+
nonTriggerableReason?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface WorkerConfig {
|
|
40
|
+
enabled: boolean;
|
|
41
|
+
pollIntervalMs: number;
|
|
42
|
+
}
|
|
43
|
+
/** Mirror of @beacon-build/worker WorkerStatusDto (denormalised for the UI). */
|
|
44
|
+
export interface WorkerStatusDto {
|
|
45
|
+
name: string;
|
|
46
|
+
label: string;
|
|
47
|
+
type: WorkerType;
|
|
48
|
+
state: WorkerState;
|
|
49
|
+
lastRunAt: string | null;
|
|
50
|
+
lastRunDurationMs: number | null;
|
|
51
|
+
/** SUM(jobsProcessed) over worker_runs in the last 24h. */
|
|
52
|
+
processed24h: number;
|
|
53
|
+
config: WorkerConfig;
|
|
54
|
+
definition: WorkerDefinition;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Wire shape of a persisted worker run (recent-runs). Mirrors
|
|
58
|
+
* @beacon-build/core `WorkerRun`, but `createdAt` is the JSON-serialised string
|
|
59
|
+
* (the core type uses `Date`, which only exists server-side before serialisation).
|
|
60
|
+
*/
|
|
61
|
+
export interface WorkerRunDto {
|
|
62
|
+
id: string;
|
|
63
|
+
workerName: string;
|
|
64
|
+
type: WorkerRunType;
|
|
65
|
+
organizationId?: string | null;
|
|
66
|
+
createdAt: string;
|
|
67
|
+
durationMs: number;
|
|
68
|
+
jobsProcessed: number;
|
|
69
|
+
success: boolean;
|
|
70
|
+
error?: string | null;
|
|
71
|
+
/** Per-type structured payload (AC-15). */
|
|
72
|
+
detail?: Record<string, unknown> | null;
|
|
73
|
+
}
|
|
74
|
+
export interface WorkerConfigPatch {
|
|
75
|
+
enabled?: boolean;
|
|
76
|
+
pollIntervalMs?: number;
|
|
77
|
+
}
|
|
78
|
+
export interface TriggerWorkerResult {
|
|
79
|
+
triggered: boolean;
|
|
80
|
+
/** C450 (F368-Rest AC-3): 'not-triggerable' — the route's static short-circuit
|
|
81
|
+
* for a non-triggerable (event-driven) worker, distinct from a busy tick. */
|
|
82
|
+
reason?: 'busy' | 'not-triggerable';
|
|
83
|
+
}
|
|
84
|
+
/** C456: query params for the worker-crossing run history (C455/AC-5). */
|
|
85
|
+
export interface WorkerRunsQuery {
|
|
86
|
+
page?: number;
|
|
87
|
+
limit?: number;
|
|
88
|
+
/** ISO-8601. */
|
|
89
|
+
since?: string;
|
|
90
|
+
/** ISO-8601. */
|
|
91
|
+
until?: string;
|
|
92
|
+
/** Comma-separated worker names. */
|
|
93
|
+
worker?: string;
|
|
94
|
+
category?: WorkerCategory;
|
|
95
|
+
onlyFailed?: boolean;
|
|
96
|
+
}
|
|
97
|
+
export interface WorkerRunsListResult {
|
|
98
|
+
runs: WorkerRunDto[];
|
|
99
|
+
meta: {
|
|
100
|
+
page: number;
|
|
101
|
+
limit: number;
|
|
102
|
+
total: number;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** B796: query for the hourly throughput series — a sibling of {@link WorkerRunsQuery}
|
|
106
|
+
* without pagination (the response is always exactly `hours` buckets). */
|
|
107
|
+
export interface ThroughputQuery {
|
|
108
|
+
hours?: number;
|
|
109
|
+
worker?: string;
|
|
110
|
+
category?: WorkerCategory;
|
|
111
|
+
}
|
|
112
|
+
/** B796: one hourly bucket — `SUM(jobsProcessed)`/`COUNT(*)` aggregated server-side
|
|
113
|
+
* over the full requested window, never a client-side bucketing of a capped page. */
|
|
114
|
+
export interface ThroughputBucketDto {
|
|
115
|
+
/** ISO-8601 UTC hour-bucket start. */
|
|
116
|
+
bucketStart: string;
|
|
117
|
+
jobsProcessed: number;
|
|
118
|
+
runCount: number;
|
|
119
|
+
}
|
|
120
|
+
export interface ThroughputResult {
|
|
121
|
+
buckets: ThroughputBucketDto[];
|
|
122
|
+
meta: {
|
|
123
|
+
hours: number;
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* C788: outbox job DTO. Mirrors apps/platform `OutboxJob` (`types/outbox.ts`) — kept
|
|
128
|
+
* separate for the same reason as the rest of this file's types (no app→SDK dependency).
|
|
129
|
+
*/
|
|
130
|
+
export interface OutboxJobDto {
|
|
131
|
+
id: string;
|
|
132
|
+
event: string;
|
|
133
|
+
/** B197: absent for task-less jobs (F290 agent-events: checkin / pr_watch). */
|
|
134
|
+
taskId?: string;
|
|
135
|
+
project: string;
|
|
136
|
+
payload: Record<string, unknown>;
|
|
137
|
+
attempts: number;
|
|
138
|
+
maxAttempts: number;
|
|
139
|
+
createdAt: string;
|
|
140
|
+
failedReason?: string;
|
|
141
|
+
}
|
|
142
|
+
/** B275: 'completed' is a first-class filter alongside the 'all' view filter. */
|
|
143
|
+
export type OutboxJobStatus = 'waiting' | 'delayed' | 'failed' | 'completed' | 'all';
|
|
144
|
+
export interface ListOutboxQuery {
|
|
145
|
+
status?: OutboxJobStatus;
|
|
146
|
+
page?: number;
|
|
147
|
+
limit?: number;
|
|
148
|
+
}
|
|
149
|
+
export interface OutboxListResult {
|
|
150
|
+
jobs: OutboxJobDto[];
|
|
151
|
+
meta: {
|
|
152
|
+
page: number;
|
|
153
|
+
limit: number;
|
|
154
|
+
total: number;
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/** Statuses that can be bulk-removed (excludes the 'all' view filter). */
|
|
158
|
+
export type BulkRemoveOutboxStatus = 'waiting' | 'delayed' | 'failed' | 'completed';
|
|
159
|
+
export interface BulkRemoveOutboxOptions {
|
|
160
|
+
status: BulkRemoveOutboxStatus;
|
|
161
|
+
olderThanMs?: number;
|
|
162
|
+
dryRun?: boolean;
|
|
163
|
+
}
|
|
164
|
+
export interface BulkRemoveOutboxResult {
|
|
165
|
+
removedCount: number;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Minimal transport the workers client needs. Satisfied by both OpsApiClient and
|
|
169
|
+
* an HttpClient adapter (see ops-sdk / admin-sdk factories).
|
|
170
|
+
*/
|
|
171
|
+
export interface WorkersTransport {
|
|
172
|
+
/** GET returning the raw (un-unwrapped) JSON body. */
|
|
173
|
+
getRaw<T>(path: string): Promise<T>;
|
|
174
|
+
post<T>(path: string, body?: unknown): Promise<T>;
|
|
175
|
+
patch<T>(path: string, body: unknown): Promise<T>;
|
|
176
|
+
/** C788: DELETE — needed by the outbox single-job-remove endpoint. */
|
|
177
|
+
delete<T>(path: string): Promise<T>;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=ops-workers.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ops-workers.types.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/ops-workers.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ops-workers.types.js","sourceRoot":"","sources":["../../../src/clients/ops/ops-workers.types.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import type { InboxItemDto, ThreadWithMessagesDto, MessageDto, ParticipantDto, InboxStatsDto
|
|
1
|
+
import type { InboxItemDto, ThreadWithMessagesDto, MessageDto, ParticipantDto, InboxStatsDto } from '@beacon-build/core';
|
|
2
|
+
import { type OwnerScopeParams, type OwnerScopeTree, type OwnerScopeProject } from './thread-messaging.owner-scope.js';
|
|
3
|
+
import type { MarkReadInput, SendMessageInput, SendMessageResponse, ApiFetchFn } from './thread-messaging.types.js';
|
|
4
|
+
export type { MarkReadInput, SendMessageInput, SendMessageResponse, ApiFetchFn, } from './thread-messaging.types.js';
|
|
2
5
|
export type ThreadParticipant = ParticipantDto;
|
|
3
6
|
export type ThreadMessage = MessageDto;
|
|
4
7
|
export type ThreadWithMessages = ThreadWithMessagesDto;
|
|
@@ -8,30 +11,6 @@ export interface InboxResponse {
|
|
|
8
11
|
items: InboxItem[];
|
|
9
12
|
nextCursor: string | null;
|
|
10
13
|
}
|
|
11
|
-
/** C418 AC-1/AC-2: bulk / standalone mark-read input. */
|
|
12
|
-
export interface MarkReadInput {
|
|
13
|
-
threadIds?: string[];
|
|
14
|
-
subjectType?: string;
|
|
15
|
-
all?: boolean;
|
|
16
|
-
before?: string;
|
|
17
|
-
}
|
|
18
|
-
export interface SendMessageInput {
|
|
19
|
-
to: string;
|
|
20
|
-
body: string;
|
|
21
|
-
type?: 'info' | 'action' | 'urgent';
|
|
22
|
-
replyToId?: string;
|
|
23
|
-
meta?: Record<string, unknown>;
|
|
24
|
-
/**
|
|
25
|
-
* B371: target project to scope DM alias resolution when `to` is an
|
|
26
|
-
* unscoped `@alias` (no `@project/alias` prefix). Ignored for routes
|
|
27
|
-
* other than `dm`, and ignored when `to` already carries a project
|
|
28
|
-
* (`@project/alias` always wins).
|
|
29
|
-
*/
|
|
30
|
-
project?: string;
|
|
31
|
-
}
|
|
32
|
-
export type SendMessageResponse = SendMessageResponseDto;
|
|
33
|
-
/** Adapter type for UI clients that use apiFetch instead of getToken */
|
|
34
|
-
export type ApiFetchFn = <T>(path: string, init?: RequestInit) => Promise<T>;
|
|
35
14
|
/**
|
|
36
15
|
* Ops client for thread messaging (F113/F114).
|
|
37
16
|
* Accepts any JWT (User or Agent) — Thread routes allow both.
|
|
@@ -58,13 +37,13 @@ export declare class ThreadMessagingOpsClient {
|
|
|
58
37
|
q?: string;
|
|
59
38
|
cursor?: string;
|
|
60
39
|
previewChars?: number;
|
|
61
|
-
}): Promise<InboxResponse>;
|
|
40
|
+
} & OwnerScopeParams): Promise<InboxResponse>;
|
|
62
41
|
inboxCount(unreadOnly?: boolean, params?: {
|
|
63
42
|
scope?: 'viewer' | 'agent' | 'vendor';
|
|
64
43
|
q?: string;
|
|
65
44
|
severity?: 'action' | 'urgent' | 'info';
|
|
66
45
|
kind?: 'dm' | 'handback' | 'notification';
|
|
67
|
-
}): Promise<{
|
|
46
|
+
} & OwnerScopeParams): Promise<{
|
|
68
47
|
count: number;
|
|
69
48
|
}>;
|
|
70
49
|
/**
|
|
@@ -83,7 +62,7 @@ export declare class ThreadMessagingOpsClient {
|
|
|
83
62
|
severity?: 'action' | 'urgent' | 'info';
|
|
84
63
|
kind?: 'dm' | 'handback' | 'notification';
|
|
85
64
|
actionableOnly?: boolean;
|
|
86
|
-
}): Promise<InboxStats>;
|
|
65
|
+
} & OwnerScopeParams): Promise<InboxStats>;
|
|
87
66
|
/** C418 AC-1/AC-2: bulk / standalone mark-read. */
|
|
88
67
|
markRead(input: MarkReadInput): Promise<{
|
|
89
68
|
markedCount: number;
|
|
@@ -99,8 +78,12 @@ export declare class ThreadMessagingOpsClient {
|
|
|
99
78
|
* threadId for agent/vendor scope returns null (404), never a
|
|
100
79
|
* silent full-scope read. */
|
|
101
80
|
scope?: 'viewer' | 'agent' | 'vendor';
|
|
102
|
-
}): Promise<ThreadWithMessages | null>;
|
|
81
|
+
} & OwnerScopeParams): Promise<ThreadWithMessages | null>;
|
|
103
82
|
sendMessage(input: SendMessageInput): Promise<SendMessageResponse>;
|
|
104
83
|
postToThread(threadId: string, body: string, replyToId?: string): Promise<ThreadMessage>;
|
|
84
|
+
/** F523 stage 1: owner(org|user) skeleton for the inbox scope-picker combobox. */
|
|
85
|
+
inboxOwnerTree(): Promise<OwnerScopeTree>;
|
|
86
|
+
/** F523 stage 2: one owner's direct projects, loaded on combobox drill-in. */
|
|
87
|
+
inboxOwnerTreeProjects(ownerType: 'org' | 'user', ownerId: string): Promise<OwnerScopeProject[]>;
|
|
105
88
|
}
|
|
106
89
|
//# sourceMappingURL=thread-messaging.client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-messaging.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/thread-messaging.client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,YAAY,EACZ,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,aAAa,
|
|
1
|
+
{"version":3,"file":"thread-messaging.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/thread-messaging.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HttpClient } from '../../transport/http-client.js';
|
|
2
2
|
import { SdkError, statusToSdkCode, apiCodeToSdkCode } from '../../transport/errors.js';
|
|
3
|
+
import { appendOwnerScopeParams, fetchInboxOwnerTree, fetchInboxOwnerTreeProjects, } from './thread-messaging.owner-scope.js';
|
|
3
4
|
/**
|
|
4
5
|
* Ops client for thread messaging (F113/F114).
|
|
5
6
|
* Accepts any JWT (User or Agent) — Thread routes allow both.
|
|
@@ -80,6 +81,7 @@ export class ThreadMessagingOpsClient {
|
|
|
80
81
|
q.set('cursor', params.cursor);
|
|
81
82
|
if (params?.previewChars)
|
|
82
83
|
q.set('previewChars', String(params.previewChars));
|
|
84
|
+
appendOwnerScopeParams(q, params);
|
|
83
85
|
const qs = q.toString();
|
|
84
86
|
return this.request(`/threads/inbox${qs ? `?${qs}` : ''}`);
|
|
85
87
|
}
|
|
@@ -95,6 +97,7 @@ export class ThreadMessagingOpsClient {
|
|
|
95
97
|
qp.set('severity', params.severity);
|
|
96
98
|
if (params?.kind)
|
|
97
99
|
qp.set('kind', params.kind);
|
|
100
|
+
appendOwnerScopeParams(qp, params);
|
|
98
101
|
const qs = qp.toString();
|
|
99
102
|
// CON-25/C600: the route wraps its body in the standard { data } envelope, but the
|
|
100
103
|
// two constructor paths deliver it differently: the config-backed HttpClient path
|
|
@@ -128,6 +131,7 @@ export class ThreadMessagingOpsClient {
|
|
|
128
131
|
q.set('kind', params.kind);
|
|
129
132
|
if (params?.actionableOnly !== undefined)
|
|
130
133
|
q.set('actionableOnly', String(params.actionableOnly));
|
|
134
|
+
appendOwnerScopeParams(q, params);
|
|
131
135
|
const qs = q.toString();
|
|
132
136
|
return this.request(`/threads/inbox/stats${qs ? `?${qs}` : ''}`);
|
|
133
137
|
}
|
|
@@ -154,6 +158,7 @@ export class ThreadMessagingOpsClient {
|
|
|
154
158
|
q.set('limit', String(params.limit));
|
|
155
159
|
if (params?.scope)
|
|
156
160
|
q.set('scope', params.scope);
|
|
161
|
+
appendOwnerScopeParams(q, params);
|
|
157
162
|
const qs = q.toString();
|
|
158
163
|
return await this.request(`/threads/${encodeURIComponent(id)}${qs ? `?${qs}` : ''}`);
|
|
159
164
|
}
|
|
@@ -175,5 +180,13 @@ export class ThreadMessagingOpsClient {
|
|
|
175
180
|
body: JSON.stringify({ body, ...(replyToId && { replyToId }) }),
|
|
176
181
|
});
|
|
177
182
|
}
|
|
183
|
+
/** F523 stage 1: owner(org|user) skeleton for the inbox scope-picker combobox. */
|
|
184
|
+
async inboxOwnerTree() {
|
|
185
|
+
return fetchInboxOwnerTree((path) => this.request(path));
|
|
186
|
+
}
|
|
187
|
+
/** F523 stage 2: one owner's direct projects, loaded on combobox drill-in. */
|
|
188
|
+
async inboxOwnerTreeProjects(ownerType, ownerId) {
|
|
189
|
+
return fetchInboxOwnerTreeProjects((path) => this.request(path), ownerType, ownerId);
|
|
190
|
+
}
|
|
178
191
|
}
|
|
179
192
|
//# sourceMappingURL=thread-messaging.client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-messaging.client.js","sourceRoot":"","sources":["../../../src/clients/ops/thread-messaging.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"thread-messaging.client.js","sourceRoot":"","sources":["../../../src/clients/ops/thread-messaging.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAQvF,OAAO,EACH,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,GAI9B,MAAM,mCAAmC,CAAA;AAiC1C;;;GAGG;AACH,MAAM,OAAO,wBAAwB;IACzB,IAAI,CAAY;IAChB,QAAQ,CAAa;IAI7B,YACI,gBAEgB;QAEhB,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAA;YAChC,IAAI,CAAC,IAAI,GAAG,IAAa,CAAA,CAAC,mCAAmC;QACjE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC;gBACvB,OAAO,EAAE,gBAAgB,CAAC,OAAO;gBACjC,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;aACtC,CAAC,CAAA;QACN,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,IAAkB;QACrD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC;gBACD,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAI,UAAU,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,qEAAqE;gBACrE,+DAA+D;gBAC/D,mEAAmE;gBACnE,qEAAqE;gBACrE,8DAA8D;gBAC9D,8DAA8D;gBAC9D,IACI,GAAG;oBACH,OAAO,GAAG,KAAK,QAAQ;oBACvB,QAAQ,IAAI,GAAG;oBACf,OAAQ,GAA4B,CAAC,MAAM,KAAK,QAAQ,EAC1D,CAAC;oBACC,MAAM,MAAM,GAAI,GAA0B,CAAC,MAAM,CAAA;oBACjD,MAAM,OAAO,GAAI,GAAyB,CAAC,IAAI,CAAA;oBAC/C,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAA;oBACrE,MAAM,IAAI,QAAQ,CACd,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,EACrE,OAAO,EACP,MAAM,EACN,OAAO,CACV,CAAA;gBACL,CAAC;gBACD,MAAM,GAAG,CAAA;YACb,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,CAAA;QACpC,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,IAAI,CAAC,CAAA;YACjC,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,EACJ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CACzD,CAAA;YACL,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAClB,IAAI,EACJ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CACzD,CAAA;YACL,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAI,IAAI,CAAC,CAAA;YACpC;gBACI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,IAAI,CAAC,CAAA;QACrC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CACP,MAaoB;QAEpB,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE,CAAA;QAC/B,IAAI,MAAM,EAAE,UAAU,KAAK,SAAS;YAAE,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;QACpF,IAAI,MAAM,EAAE,WAAW;YAAE,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;QACjE,IAAI,MAAM,EAAE,KAAK;YAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACvD,IAAI,MAAM,EAAE,cAAc,KAAK,SAAS;YACpC,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAA;QAC1D,IAAI,MAAM,EAAE,QAAQ;YAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxD,IAAI,MAAM,EAAE,IAAI;YAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,MAAM,EAAE,KAAK;YAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAI,MAAM,EAAE,CAAC;YAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QACnC,IAAI,MAAM,EAAE,MAAM;YAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,MAAM,EAAE,YAAY;YAAE,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;QAC5E,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACjC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;QACvB,OAAO,IAAI,CAAC,OAAO,CAAgB,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,UAAoB,EACpB,MAKoB;QAEpB,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAA;QAChC,IAAI,UAAU,KAAK,SAAS;YAAE,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;QACtE,IAAI,MAAM,EAAE,KAAK;YAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,MAAM,EAAE,CAAC;YAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QACpC,IAAI,MAAM,EAAE,QAAQ;YAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACzD,IAAI,MAAM,EAAE,IAAI;YAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC7C,sBAAsB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAClC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;QACxB,mFAAmF;QACnF,kFAAkF;QAClF,oFAAoF;QACpF,qFAAqF;QACrF,uFAAuF;QACvF,uFAAuF;QACvF,qCAAqC;QACrC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC1B,uBAAuB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAA;QACD,OAAO,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;IACzC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,UAAU,CACZ,MAMoB;QAEpB,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE,CAAA;QAC/B,IAAI,MAAM,EAAE,KAAK;YAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAI,MAAM,EAAE,CAAC;YAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QACnC,IAAI,MAAM,EAAE,QAAQ;YAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxD,IAAI,MAAM,EAAE,IAAI;YAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,MAAM,EAAE,cAAc,KAAK,SAAS;YACpC,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAA;QAC1D,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACjC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;QACvB,OAAO,IAAI,CAAC,OAAO,CAAa,uBAAuB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAChF,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,QAAQ,CAAC,KAAoB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAA0B,oBAAoB,EAAE;YAC/D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC9B,CAAC,CAAA;IACN,CAAC;IAED,iBAAiB;IACjB,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,KAAK,GAAG,IAAI;QACrC,OAAO,IAAI,CAAC,OAAO,CAAqB,YAAY,kBAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE;YACrF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;SAClC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CACR,EAAU,EACV,MAOoB;QAEpB,IAAI,CAAC;YACD,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE,CAAA;YAC/B,IAAI,MAAM,EAAE,MAAM;gBAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YAClD,IAAI,MAAM,EAAE,KAAK;gBAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YACvD,IAAI,MAAM,EAAE,KAAK;gBAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YAC/C,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YACjC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;YACvB,OAAO,MAAM,IAAI,CAAC,OAAO,CACrB,YAAY,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5D,CAAA;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,IAAI,CAAA;YACpE,MAAM,GAAG,CAAA;QACb,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAuB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAsB,mBAAmB,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC9B,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,IAAY,EAAE,SAAkB;QACjE,OAAO,IAAI,CAAC,OAAO,CAAgB,YAAY,kBAAkB,CAAC,QAAQ,CAAC,WAAW,EAAE;YACpF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;SAClE,CAAC,CAAA;IACN,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,cAAc;QAChB,OAAO,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,sBAAsB,CACxB,SAAyB,EACzB,OAAe;QAEf,OAAO,2BAA2B,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IACxF,CAAC;CACJ"}
|