@openwop/openwop 1.8.0 → 2.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/README.md +64 -117
- package/dist/client.d.ts +131 -245
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +233 -440
- package/dist/client.js.map +1 -1
- package/dist/cost-attribution.d.ts +2 -2
- package/dist/cost-attribution.js +2 -2
- package/dist/envelope-directive.d.ts +1 -1
- package/dist/envelope-directive.js +1 -1
- package/dist/event-helpers.js +1 -1
- package/dist/event-helpers.js.map +1 -1
- package/dist/generated.d.ts +17 -0
- package/dist/generated.d.ts.map +1 -0
- package/dist/generated.js +311 -0
- package/dist/generated.js.map +1 -0
- package/dist/index.d.ts +16 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -53
- package/dist/index.js.map +1 -1
- package/dist/run-helpers.d.ts +20 -21
- package/dist/run-helpers.d.ts.map +1 -1
- package/dist/run-helpers.js +23 -72
- package/dist/run-helpers.js.map +1 -1
- package/dist/sse.d.ts +33 -15
- package/dist/sse.d.ts.map +1 -1
- package/dist/sse.js +28 -30
- package/dist/sse.js.map +1 -1
- package/dist/types.d.ts +253 -559
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/webhook-header-families.d.ts +42 -0
- package/dist/webhook-header-families.d.ts.map +1 -0
- package/dist/webhook-header-families.js +58 -0
- package/dist/webhook-header-families.js.map +1 -0
- package/dist/webhook-helpers.browser.d.ts +15 -28
- package/dist/webhook-helpers.browser.d.ts.map +1 -1
- package/dist/webhook-helpers.browser.js +16 -27
- package/dist/webhook-helpers.browser.js.map +1 -1
- package/dist/webhook-helpers.d.ts +48 -32
- package/dist/webhook-helpers.d.ts.map +1 -1
- package/dist/webhook-helpers.js +52 -37
- package/dist/webhook-helpers.js.map +1 -1
- package/package.json +6 -4
- package/src/client.ts +255 -454
- package/src/cost-attribution.ts +2 -2
- package/src/envelope-directive.ts +1 -1
- package/src/event-helpers.ts +1 -1
- package/src/generated.ts +322 -0
- package/src/index.ts +78 -105
- package/src/run-helpers.ts +27 -85
- package/src/sse.ts +63 -42
- package/src/types.ts +268 -603
- package/src/webhook-header-families.ts +78 -0
- package/src/webhook-helpers.browser.ts +24 -28
- package/src/webhook-helpers.ts +87 -39
- package/dist/registry-helpers.d.ts +0 -118
- package/dist/registry-helpers.d.ts.map +0 -1
- package/dist/registry-helpers.js +0 -82
- package/dist/registry-helpers.js.map +0 -1
- package/src/registry-helpers.ts +0 -173
package/dist/client.d.ts
CHANGED
|
@@ -1,365 +1,251 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OpenwopClient — typed HTTP client for the
|
|
2
|
+
* OpenwopClient — typed HTTP client for the OpenWOP v2 REST surface.
|
|
3
3
|
*
|
|
4
|
-
* Hand-authored. Each method maps 1:1 to
|
|
5
|
-
*
|
|
4
|
+
* Hand-authored. Each method maps 1:1 to an operation in
|
|
5
|
+
* `spec/v2/path-manifest.json` (generated from `api/v2/openapi.yaml`):
|
|
6
|
+
* bare origin, unversioned path keys, negotiation by the `OpenWOP-Version`
|
|
7
|
+
* request header (RFC 0172 §A). Request/response types live in ./types.ts;
|
|
8
|
+
* the error-code union in ./generated.ts.
|
|
6
9
|
*
|
|
7
|
-
* Auth: a single bearer-style API key, supplied at construction.
|
|
8
|
-
* ../../auth.md for credential format.
|
|
10
|
+
* Auth: a single bearer-style API key, supplied at construction.
|
|
9
11
|
*/
|
|
10
|
-
import { type EventsStreamOptions } from './sse.js';
|
|
11
|
-
import { type AuditVerifyResult, type CreateTriggerSubscriptionResponse, type LocalizedContentLanguageSettings, type LocalizedContentPage, type LocalizedContentPageResponse, type LocalizedContentSection, type PutContentSectionRequest, type TriggerSubscriptionRegistration, type BulkCancelRunsRequest, type BulkCancelRunsResponse, type Capabilities, type CancelRunRequest, type CancelRunResponse, type
|
|
12
|
+
import { type EventsStreamOptions, type HostEventsStreamOptions } from './sse.js';
|
|
13
|
+
import { type AuditVerifyResult, type CreateTriggerSubscriptionResponse, type LocalizedContentLanguageSettings, type LocalizedContentPage, type LocalizedContentPageResponse, type LocalizedContentSection, type PutContentSectionRequest, type TriggerSubscriptionRegistration, type BulkCancelRunsRequest, type BulkCancelRunsResponse, type Capabilities, type CancelRunRequest, type CancelRunResponse, type CompensationProjection, type CreateRunRequest, type CreateRunResponse, type EffectLedgerProjection, type EffectSeamManifest, type ForkRunRequest, type ForkRunResponse, type Annotation, type CreateAnnotationRequest, type GetPromptRequest, type HostEventDoc, type InterruptByTokenInspection, type ListPromptsRequest, type ListPromptsResponse, type PromptTemplate, type RegisterWebhookRequest, type RegisterWebhookResponse, type PauseRunRequest, type PauseRunResponse, type PollEventsResponse, type RenderPromptRequest, type RenderPromptResponse, type ResolveInterruptByTokenResponse, type ResolveInterruptRequest, type ResolveInterruptResponse, type ResumeRunRequest, type ResumeRunResponse, type RunAncestryResponse, type RunDiffResponse, type RunEventDoc, type RunSnapshot, type AgentInventoryEntry, type AgentInventoryResponse, type AgentRosterEntry, type AgentRosterResponse, type AgentOrgChart, type OrgChartResponsibilityView, type EvalSummary, type ToolDescriptor, type CompactToolDescriptor, type AgentDeployment, type AgentDeploymentTransition } from './types.js';
|
|
14
|
+
/** The protocol major this SDK implements; the default for {@link OpenwopClientOptions.major}. */
|
|
15
|
+
export declare const SDK_PROTOCOL_MAJOR = 2;
|
|
16
|
+
/** Renders the `OpenWOP-Version` request value for a major: `<major>.0` (the OpenAPI grammar is `<major>.<minor>`). */
|
|
17
|
+
export declare function protocolVersionHeader(major: number): string;
|
|
12
18
|
export interface OpenwopClientOptions {
|
|
13
19
|
/** Base URL of the openwop server, e.g., `https://api.example.com`. Trailing slash optional. */
|
|
14
20
|
readonly baseUrl: string;
|
|
15
|
-
/** API key (bearer-style).
|
|
21
|
+
/** API key (bearer-style). */
|
|
16
22
|
readonly apiKey: string;
|
|
23
|
+
/**
|
|
24
|
+
* The protocol major to negotiate (RFC 0172 §A.3). Every request carries
|
|
25
|
+
* `OpenWOP-Version: <major>.0`; a host that does not list the major answers
|
|
26
|
+
* `406 protocol_version_unsupported` with `details.protocolVersions[]`.
|
|
27
|
+
* Default {@link SDK_PROTOCOL_MAJOR} (2).
|
|
28
|
+
*/
|
|
29
|
+
readonly major?: number;
|
|
17
30
|
/** Optional fetch implementation override (test injection). Defaults to global `fetch`. */
|
|
18
31
|
readonly fetch?: typeof fetch;
|
|
19
32
|
/** Default `Accept-Language` to send. Optional. */
|
|
20
33
|
readonly acceptLanguage?: string;
|
|
21
34
|
}
|
|
22
35
|
export interface MutationOptions {
|
|
23
|
-
/**
|
|
36
|
+
/** `Idempotency-Key` for at-most-once mutation semantics (idempotency.md Layer 1). */
|
|
24
37
|
readonly idempotencyKey?: string;
|
|
25
|
-
/**
|
|
38
|
+
/** `OpenWOP-Dedup: enforce` — the host rejects a duplicate `(tenantId, scopeId)` with `409 run_already_active` (runs.md §Create). */
|
|
26
39
|
readonly dedup?: 'enforce';
|
|
27
40
|
}
|
|
28
41
|
export declare class OpenwopClient {
|
|
29
42
|
#private;
|
|
43
|
+
/** The `OpenWOP-Version` value this client sends on every request. */
|
|
44
|
+
get protocolVersion(): string;
|
|
30
45
|
constructor(opts: OpenwopClientOptions);
|
|
31
46
|
readonly discovery: {
|
|
47
|
+
/**
|
|
48
|
+
* `GET /.well-known/openwop` — one resource whose representation the
|
|
49
|
+
* `OpenWOP-Version` header selects (capabilities.md §1): with this
|
|
50
|
+
* client's major the host returns the closed v2 root.
|
|
51
|
+
*/
|
|
32
52
|
capabilities: () => Promise<Capabilities>;
|
|
53
|
+
/** `GET /openapi.json` — the self-describing OpenAPI 3.1 document. */
|
|
33
54
|
openapi: () => Promise<unknown>;
|
|
34
55
|
};
|
|
35
56
|
readonly workflows: {
|
|
57
|
+
/** `GET /workflows/{workflowId}` */
|
|
36
58
|
get: (workflowId: string) => Promise<unknown>;
|
|
37
59
|
};
|
|
38
60
|
readonly runs: {
|
|
61
|
+
/** `POST /runs` — the body is closed at the composition (runs.md §Create). */
|
|
39
62
|
create: (body: CreateRunRequest, opts?: MutationOptions) => Promise<CreateRunResponse>;
|
|
63
|
+
/** `GET /runs/{runId}` — the snapshot (runs.md §Snapshot). */
|
|
40
64
|
get: (runId: string) => Promise<RunSnapshot>;
|
|
41
|
-
/**
|
|
42
|
-
* Fetch the portable JSON diagnostic export for a single run per
|
|
43
|
-
* `spec/v1/debug-bundle.md`. The bundle's `redactionMode` reflects
|
|
44
|
-
* the host's advertised `capabilities.compliance.defaultMode`; the
|
|
45
|
-
* caller MUST treat masked/omitted/hashed fields as the
|
|
46
|
-
* spec-canonical value. The `truncated` + `truncatedReason` fields
|
|
47
|
-
* indicate the host hit its size cap.
|
|
48
|
-
*
|
|
49
|
-
* Returns `null` when the host doesn't advertise
|
|
50
|
-
* `capabilities.debugBundle.supported: true` (the endpoint returns
|
|
51
|
-
* 404 in that case per `debug-bundle.md` §"Authorization").
|
|
52
|
-
*/
|
|
53
|
-
debugBundle: (runId: string, opts?: DebugBundleOptions) => Promise<DebugBundle | null>;
|
|
65
|
+
/** `POST /runs/{runId}/cancel` — `status` is `cancelling` or `cancelled`. */
|
|
54
66
|
cancel: (runId: string, body?: CancelRunRequest, opts?: MutationOptions) => Promise<CancelRunResponse>;
|
|
67
|
+
/** `POST /runs/{runId}:pause` — `409` when the run is not pausable. */
|
|
55
68
|
pause: (runId: string, body?: PauseRunRequest, opts?: MutationOptions) => Promise<PauseRunResponse>;
|
|
69
|
+
/** `POST /runs/{runId}:resume` — `409` when the run is not paused. */
|
|
56
70
|
resume: (runId: string, body?: ResumeRunRequest, opts?: MutationOptions) => Promise<ResumeRunResponse>;
|
|
57
71
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* request reaches the host; partial failures surface inside the
|
|
62
|
-
* array (each entry carries `ok: boolean` + optional `error`). Host-
|
|
63
|
-
* defined cap on `runIds[]` length (RECOMMENDED 100); over-cap
|
|
64
|
-
* returns `400 validation_error` with `details.maxRunIds`.
|
|
72
|
+
* `POST /runs:bulk-cancel` — `200 { results[] }` in request order even
|
|
73
|
+
* when every id failed; per-id authorization yields `ok: false` with
|
|
74
|
+
* `run_forbidden` in that entry, never a top-level `403` (runs.md §Cancel).
|
|
65
75
|
*/
|
|
66
76
|
bulkCancel: (body: BulkCancelRunsRequest, opts?: MutationOptions) => Promise<BulkCancelRunsResponse>;
|
|
77
|
+
/** `POST /runs/{runId}:fork` — `mode: replay | branch` (runs.md §Fork; replay.md). */
|
|
67
78
|
fork: (runId: string, body: ForkRunRequest, opts?: MutationOptions) => Promise<ForkRunResponse>;
|
|
68
79
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* `capabilities.feedback.supported`).
|
|
80
|
+
* `POST /runs/{runId}/annotations` — a live notification, never a run
|
|
81
|
+
* event. Throws on non-2xx (`501` when the host doesn't advertise
|
|
82
|
+
* `feedback`).
|
|
73
83
|
*/
|
|
74
84
|
createAnnotation: (runId: string, body: CreateAnnotationRequest, opts?: MutationOptions) => Promise<Annotation>;
|
|
75
85
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
86
|
+
* `GET /runs/{runId}/annotations` — returns `null` when the host doesn't
|
|
87
|
+
* advertise `feedback` (404/501), so callers can branch on capability
|
|
88
|
+
* discovery without try/catch.
|
|
79
89
|
*/
|
|
80
90
|
listAnnotations: (runId: string) => Promise<readonly Annotation[] | null>;
|
|
81
91
|
/**
|
|
82
|
-
*
|
|
83
|
-
* composition chain
|
|
84
|
-
* `parent.wellKnownUrl` is set when the parent is on a different
|
|
85
|
-
* host, so callers walk the chain one hop at a time.
|
|
86
|
-
*
|
|
92
|
+
* `GET /runs/{runId}/ancestry` — the run's immediate parent in the
|
|
93
|
+
* cross-host composition chain; `parent: null` for top-level runs.
|
|
87
94
|
* Returns `null` when the host doesn't advertise
|
|
88
|
-
* `
|
|
89
|
-
* (the endpoint
|
|
90
|
-
* `spec/v1/multi-agent-execution.md` §"GET /v1/runs/{runId}/ancestry").
|
|
95
|
+
* `multiAgent.executionModel.crossHostCausation.ancestryEndpointSupported`
|
|
96
|
+
* (the endpoint 404s).
|
|
91
97
|
*/
|
|
92
98
|
ancestry: (runId: string) => Promise<RunAncestryResponse | null>;
|
|
93
99
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* `
|
|
97
|
-
* implement the endpoint (404 per `spec/v1/rest-endpoints.md`
|
|
98
|
-
* §`GET /v1/runs/{runId}:diff`). `divergedAtSeq` is null + `eventDiffs`
|
|
99
|
-
* empty when the two logs are identical.
|
|
100
|
+
* `GET /runs/{runId}:diff?against=` — deterministic, replay-aware diff of
|
|
101
|
+
* two runs; requires `runs:read` on both. OPTIONAL surface: `null` on
|
|
102
|
+
* `404`. Identical logs yield `divergedAtSeq: null` + empty `eventDiffs`.
|
|
100
103
|
*/
|
|
101
104
|
diff: (runId: string, against: string) => Promise<RunDiffResponse | null>;
|
|
102
105
|
/**
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
* redaction-safe safety findings. Returns `null` when the host doesn't
|
|
107
|
-
* advertise `capabilities.agents.evalSuite` or the run isn't an eval run
|
|
108
|
-
* (404). Throws `409` while the run is still in progress.
|
|
106
|
+
* `GET /runs/{runId}/eval-summary` — the `EvalSummary` for a terminal eval
|
|
107
|
+
* run. `null` on `404` (not an eval run, or `agents.evalSuite`
|
|
108
|
+
* unadvertised); throws `409` while the run is still in progress.
|
|
109
109
|
*/
|
|
110
110
|
evalSummary: (runId: string) => Promise<EvalSummary | null>;
|
|
111
111
|
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* on 404 (no such artifact, or the host doesn't store artifacts).
|
|
112
|
+
* `GET /runs/{runId}/artifacts/{artifactId}` — an implementation-defined
|
|
113
|
+
* JSON object. `null` on `404`.
|
|
115
114
|
*/
|
|
116
115
|
getArtifact: (runId: string, artifactId: string) => Promise<Record<string, unknown> | null>;
|
|
116
|
+
/**
|
|
117
|
+
* `GET /runs/{runId}/compensation` (RFC 0173 §C.1) — the compensation
|
|
118
|
+
* plan and attempts. Gated on `compensation`; `null` on `404`.
|
|
119
|
+
*/
|
|
120
|
+
compensation: (runId: string) => Promise<CompensationProjection | null>;
|
|
121
|
+
/**
|
|
122
|
+
* `GET /runs/{runId}/effects` (RFC 0173 §C.2) — the Layer-2 effect ledger,
|
|
123
|
+
* business-identity keyed. Gated on `idempotency`; `null` on `404`.
|
|
124
|
+
*/
|
|
125
|
+
effects: (runId: string) => Promise<EffectLedgerProjection | null>;
|
|
126
|
+
/**
|
|
127
|
+
* `GET /runs/{runId}/events/poll` — the long-poll fallback (events.md
|
|
128
|
+
* §Poll). `afterSequence` returns events with `sequence > afterSequence`;
|
|
129
|
+
* omission means from the first event. The response's `lastSequence` is
|
|
130
|
+
* the highest sequence in the log (`-1` when empty) — feed it back as the
|
|
131
|
+
* next `afterSequence`.
|
|
132
|
+
*/
|
|
117
133
|
pollEvents: (runId: string, params?: {
|
|
118
|
-
|
|
134
|
+
afterSequence?: number;
|
|
119
135
|
timeoutSeconds?: number;
|
|
120
136
|
}) => Promise<PollEventsResponse>;
|
|
121
137
|
/**
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
* loop or call `signal.abort()` to terminate early.
|
|
138
|
+
* `GET /runs/{runId}/events` — async-iterable SSE consumer. The
|
|
139
|
+
* connection auto-closes after the run's terminal event; break out of
|
|
140
|
+
* the loop or call `signal.abort()` to terminate early.
|
|
125
141
|
*/
|
|
126
142
|
events: (runId: string, opts?: EventsStreamOptions) => AsyncGenerator<RunEventDoc, void, void>;
|
|
127
143
|
};
|
|
128
|
-
readonly
|
|
129
|
-
list: () => Promise<AgentInventoryResponse | null>;
|
|
130
|
-
get: (agentId: string) => Promise<AgentInventoryEntry | null>;
|
|
144
|
+
readonly host: {
|
|
131
145
|
/**
|
|
132
|
-
* RFC
|
|
133
|
-
*
|
|
134
|
-
* `null` when the host doesn't advertise `capabilities.agents.deployment`
|
|
135
|
-
* (the endpoint 404s).
|
|
146
|
+
* `GET /host/effect-seams` (RFC 0173 §C) — every outbound effect seam
|
|
147
|
+
* replay suppression covers. Throws `401` when unauthenticated.
|
|
136
148
|
*/
|
|
137
|
-
|
|
149
|
+
effectSeams: () => Promise<EffectSeamManifest>;
|
|
138
150
|
/**
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
* enforces RFC 0081 `requiredEval` before emitting `deployment.promoted`.
|
|
143
|
-
* Returns the updated deployment record. Throws on non-2xx (`403` fail-closed
|
|
144
|
-
* / `eval_gate_unmet`; `400` `no_active_deployment` / unsupported state).
|
|
151
|
+
* `GET /host/events` — the `hostEvents` channel (heartbeat messages) as
|
|
152
|
+
* SSE; content-free of run data. A host MAY declare another address
|
|
153
|
+
* under `heartbeat.deliveryChannel` — pass it as `opts.path`.
|
|
145
154
|
*/
|
|
155
|
+
events: (opts?: HostEventsStreamOptions) => AsyncGenerator<HostEventDoc, void, void>;
|
|
156
|
+
};
|
|
157
|
+
readonly agents: {
|
|
158
|
+
/** `GET /agents` */
|
|
159
|
+
list: () => Promise<AgentInventoryResponse | null>;
|
|
160
|
+
/** `GET /agents/{agentId}` */
|
|
161
|
+
get: (agentId: string) => Promise<AgentInventoryEntry | null>;
|
|
162
|
+
/** `GET /agents/{agentId}/deployments` (RFC 0082 §C/§E) — `null` when unadvertised. */
|
|
163
|
+
listDeployments: (agentId: string) => Promise<readonly AgentDeployment[] | null>;
|
|
164
|
+
/** `POST /agents/{agentId}/deployments` (RFC 0082 §E) — a deployment state transition. */
|
|
146
165
|
transitionDeployment: (agentId: string, body: AgentDeploymentTransition, opts?: MutationOptions) => Promise<AgentDeployment>;
|
|
147
|
-
/**
|
|
148
|
-
* RFC 0086 §B — list the standing agent roster (named instances + their
|
|
149
|
-
* workflow portfolios) visible to the caller. Returns `null` when the host
|
|
150
|
-
* doesn't advertise `capabilities.agents.roster` (the endpoint 404s).
|
|
151
|
-
*/
|
|
166
|
+
/** `GET /agents/roster` (RFC 0086 §B) — `null` when unadvertised. */
|
|
152
167
|
listRoster: () => Promise<AgentRosterResponse | null>;
|
|
153
|
-
/**
|
|
154
|
-
* RFC 0086 §B — return one standing roster entry. Returns `null` on 404
|
|
155
|
-
* (no such entry, cross-tenant, or the capability is unadvertised).
|
|
156
|
-
*/
|
|
168
|
+
/** `GET /agents/roster/{rosterId}` (RFC 0086 §B) — `null` on `404`. */
|
|
157
169
|
getRosterEntry: (rosterId: string) => Promise<AgentRosterEntry | null>;
|
|
158
|
-
/**
|
|
159
|
-
* RFC 0087 §C — return the caller's agent org-chart (departments + roles +
|
|
160
|
-
* `reportsTo` over roster members; descriptive — confers no authority).
|
|
161
|
-
* Returns `null` when the host doesn't advertise `capabilities.agents.orgChart`.
|
|
162
|
-
*/
|
|
170
|
+
/** `GET /agents/org-chart` (RFC 0087 §C) — `null` when unadvertised. */
|
|
163
171
|
getOrgChart: () => Promise<AgentOrgChart | null>;
|
|
164
|
-
/**
|
|
165
|
-
* RFC 0087 §D — one department's subtree + responsibility roll-up (the
|
|
166
|
-
* union of its members' RFC 0086 portfolios). `recursive: false` scopes the
|
|
167
|
-
* roll-up to direct members. Returns `null` on 404 (unknown/cross-tenant
|
|
168
|
-
* department, or the capability is unadvertised).
|
|
169
|
-
*/
|
|
172
|
+
/** `GET /agents/org-chart/{departmentId}` (RFC 0087 §D) — `null` on `404`. */
|
|
170
173
|
getOrgChartDepartment: (departmentId: string, opts?: {
|
|
171
174
|
recursive?: boolean;
|
|
172
175
|
}) => Promise<OrgChartResponsibilityView | null>;
|
|
173
176
|
};
|
|
174
177
|
readonly tools: {
|
|
175
|
-
/**
|
|
176
|
-
* RFC 0078 §B — list the portable `ToolDescriptor`s visible to the caller.
|
|
177
|
-
* Returns `null` when the host doesn't advertise `capabilities.toolCatalog`
|
|
178
|
-
* (the endpoint 404s), so callers can branch on capability discovery.
|
|
179
|
-
*/
|
|
178
|
+
/** `GET /tools` — `null` when the host doesn't advertise `toolCatalog`. */
|
|
180
179
|
list: () => Promise<readonly ToolDescriptor[] | null>;
|
|
181
|
-
/**
|
|
182
|
-
* RFC 0112 — list the `CompactToolDescriptor`s via `GET /v1/tools?view=compact`
|
|
183
|
-
* when the host advertises `capabilities.toolCatalog.compactView`. Unwraps the
|
|
184
|
-
* `{ tools: CompactToolDescriptor[] }` envelope. Returns `null` when the host
|
|
185
|
-
* doesn't advertise the catalog (the endpoint 404s).
|
|
186
|
-
*/
|
|
180
|
+
/** `GET /tools?view=compact` (RFC 0112) — unwraps `{ tools }`; `null` when unadvertised. */
|
|
187
181
|
listCompact: () => Promise<readonly CompactToolDescriptor[] | null>;
|
|
188
|
-
/**
|
|
189
|
-
* RFC 0078 §B — return one `ToolDescriptor` by its stable `toolId`. Returns
|
|
190
|
-
* `null` on 404 (no such tool, or the capability is unadvertised). Pass
|
|
191
|
-
* `{ view: 'compact' }` (RFC 0112) to receive the `CompactToolDescriptor`
|
|
192
|
-
* projection instead.
|
|
193
|
-
*/
|
|
182
|
+
/** `GET /tools/{toolId}` — `null` on `404`; `{ view: 'compact' }` for the compact projection. */
|
|
194
183
|
get: (toolId: string, opts?: {
|
|
195
184
|
readonly view?: "standard" | "compact";
|
|
196
185
|
}) => Promise<ToolDescriptor | CompactToolDescriptor | null>;
|
|
197
186
|
};
|
|
198
|
-
readonly userAgents: {
|
|
199
|
-
create: (body: CreateUserAgentRequest, opts?: MutationOptions) => Promise<UserAgentRecord>;
|
|
200
|
-
delete: (agentId: string) => Promise<boolean>;
|
|
201
|
-
listAvailablePacks: () => Promise<AgentPackRegistryResponse | null>;
|
|
202
|
-
installPack: (body: InstallAgentPackRequest) => Promise<InstallAgentPackResponse>;
|
|
203
|
-
};
|
|
204
187
|
readonly interrupts: {
|
|
188
|
+
/** `POST /runs/{runId}/interrupts/{nodeId}` */
|
|
205
189
|
resolveByRun: (runId: string, nodeId: string, body: ResolveInterruptRequest, opts?: MutationOptions) => Promise<ResolveInterruptResponse>;
|
|
206
190
|
/**
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
* required (signed-token endpoints intentionally bypass bearer
|
|
211
|
-
* auth so external systems can resolve without openwop credentials).
|
|
191
|
+
* `GET /interrupts/{token}` — inspect via signed token. The token is the
|
|
192
|
+
* auth; no API key is sent (signed-token endpoints bypass bearer auth so
|
|
193
|
+
* external systems can resolve without openwop credentials).
|
|
212
194
|
*/
|
|
213
195
|
inspectByToken: (token: string) => Promise<InterruptByTokenInspection>;
|
|
214
|
-
/**
|
|
215
|
-
* Resolve an interrupt via signed token — used by external
|
|
216
|
-
* systems (calendar webhooks, payment confirmations) that the
|
|
217
|
-
* engine handed a callback URL at suspension time.
|
|
218
|
-
*/
|
|
196
|
+
/** `POST /interrupts/{token}` — resolve via signed token. */
|
|
219
197
|
resolveByToken: (token: string, body: ResolveInterruptRequest, opts?: MutationOptions) => Promise<ResolveInterruptByTokenResponse>;
|
|
220
198
|
};
|
|
221
199
|
readonly webhooks: {
|
|
222
200
|
/**
|
|
223
|
-
*
|
|
224
|
-
* HMAC-SHA256 over
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
* server-side for verification; the host cannot recover it.
|
|
201
|
+
* `POST /webhooks` — `{ url, events[], secret?, tags? }`; `url` MUST be
|
|
202
|
+
* `https://`. Deliveries are signed HMAC-SHA256 over
|
|
203
|
+
* `${timestamp}.${rawBody}` under the `OpenWOP-*` header family (verify
|
|
204
|
+
* with `@openwop/openwop/webhooks`).
|
|
228
205
|
*/
|
|
229
206
|
register: (body: RegisterWebhookRequest, opts?: MutationOptions) => Promise<RegisterWebhookResponse>;
|
|
230
|
-
/**
|
|
231
|
-
|
|
232
|
-
* throws `WopError` with `subscription_not_found` on unknown
|
|
233
|
-
* subscriptionId.
|
|
234
|
-
*/
|
|
235
|
-
unregister: (subscriptionId: string) => Promise<void>;
|
|
207
|
+
/** `DELETE /webhooks/{webhookId}` — `204`; throws `404` when unknown, `403` outside the tenant. */
|
|
208
|
+
unregister: (webhookId: string) => Promise<void>;
|
|
236
209
|
};
|
|
237
210
|
readonly prompts: {
|
|
238
|
-
/**
|
|
239
|
-
* List prompt templates available to the caller per RFC 0028 §A
|
|
240
|
-
* (operationId `listPromptTemplates`). Supports kind / tag / modelClass
|
|
241
|
-
* / source filters + opaque cursor pagination.
|
|
242
|
-
*/
|
|
211
|
+
/** `GET /prompts` — kind / tag / modelClass / source filters + cursor pagination. */
|
|
243
212
|
list: (req?: ListPromptsRequest) => Promise<ListPromptsResponse>;
|
|
244
|
-
/**
|
|
245
|
-
* Fetch a single PromptTemplate by id per RFC 0028 §A
|
|
246
|
-
* (operationId `getPromptTemplate`). Optionally pin a SemVer
|
|
247
|
-
* `version`; supply `libraryId` to disambiguate when multiple installed
|
|
248
|
-
* packs ship the same templateId.
|
|
249
|
-
*/
|
|
213
|
+
/** `GET /prompts/{templateId}` — `null` on `404`; a `400 prompt_ref_ambiguous` still throws. */
|
|
250
214
|
get: (req: GetPromptRequest) => Promise<PromptTemplate | null>;
|
|
251
|
-
/**
|
|
252
|
-
* Render a PromptTemplate with supplied variable bindings per RFC 0028
|
|
253
|
-
* §A (operationId `renderPromptTemplate`). Returns composed body +
|
|
254
|
-
* sha256 hash + per-variable hashes. The deterministic-hash invariant
|
|
255
|
-
* (RFC 0028 §A) requires the `hash` to match what a matching
|
|
256
|
-
* `prompt.composed` event would carry at dispatch time. Does NOT
|
|
257
|
-
* dispatch an LLM call. Secret-source variable values MUST be supplied
|
|
258
|
-
* as `[REDACTED:<credentialRef>]` markers per
|
|
259
|
-
* SECURITY/threat-model-secret-leakage.md §SR-1.
|
|
260
|
-
*/
|
|
215
|
+
/** `POST /prompts:render` — composed body + sha256 hash; does NOT dispatch an LLM call. */
|
|
261
216
|
render: (req: RenderPromptRequest) => Promise<RenderPromptResponse>;
|
|
262
|
-
/**
|
|
263
|
-
* Create a new user-source PromptTemplate per RFC 0028 §A
|
|
264
|
-
* (operationId `createPromptTemplate`). Mutating endpoint —
|
|
265
|
-
* requires `capabilities.prompts.mutableLibrary: true`. Supports
|
|
266
|
-
* `Idempotency-Key` per the standard `MutationOptions` pattern.
|
|
267
|
-
*/
|
|
217
|
+
/** `POST /prompts` — requires `prompts.mutableLibrary`. */
|
|
268
218
|
create: (template: PromptTemplate, opts?: MutationOptions) => Promise<void>;
|
|
269
|
-
/**
|
|
270
|
-
* Replace an existing user-source PromptTemplate per RFC 0028 §A
|
|
271
|
-
* (operationId `updatePromptTemplate`). Submitted SemVer MUST be
|
|
272
|
-
* strictly greater than stored. Mutating endpoint — requires
|
|
273
|
-
* `capabilities.prompts.mutableLibrary: true`. Pack-sourced and
|
|
274
|
-
* host-built-in templates are read-only (host returns 403).
|
|
275
|
-
*/
|
|
219
|
+
/** `PUT /prompts/{templateId}` — the submitted SemVer MUST be strictly greater than stored. */
|
|
276
220
|
update: (templateId: string, template: PromptTemplate, opts?: MutationOptions) => Promise<PromptTemplate>;
|
|
277
|
-
/**
|
|
278
|
-
* Delete a user-source PromptTemplate per RFC 0028 §A
|
|
279
|
-
* (operationId `deletePromptTemplate`). Mutating endpoint —
|
|
280
|
-
* requires `capabilities.prompts.mutableLibrary: true`. Pack-sourced
|
|
281
|
-
* and host-built-in templates are read-only (host returns 403).
|
|
282
|
-
*/
|
|
221
|
+
/** `DELETE /prompts/{templateId}` */
|
|
283
222
|
delete: (templateId: string) => Promise<void>;
|
|
284
223
|
};
|
|
285
224
|
readonly audit: {
|
|
286
225
|
/**
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
*
|
|
290
|
-
* verdict + signed checkpoints + any detected anomalies.
|
|
291
|
-
*
|
|
292
|
-
* Hosts that do NOT advertise the profile return `404` and throw
|
|
293
|
-
* a `WopError`. Clients SHOULD pre-flight via
|
|
294
|
-
* `client.getCapabilities()` (or directly inspect
|
|
295
|
-
* `capabilities.auth.profiles[]`) before calling.
|
|
226
|
+
* `GET /audit/verify?fromSeq&toSeq` — chain-validity verdict + signed
|
|
227
|
+
* checkpoints + anomalies. Requires the `audit:read` scope; a host that
|
|
228
|
+
* does not serve the profile answers `404`.
|
|
296
229
|
*/
|
|
297
230
|
verify: (fromSeq: number, toSeq: number) => Promise<AuditVerifyResult>;
|
|
298
231
|
};
|
|
299
232
|
readonly content: {
|
|
300
|
-
/** `GET /
|
|
301
|
-
* host doesn't advertise `capabilities.content` (501). */
|
|
233
|
+
/** `GET /content/pages` — `null` when the host doesn't advertise `content` (501). */
|
|
302
234
|
listPages: () => Promise<readonly LocalizedContentPage[] | null>;
|
|
303
|
-
/** `GET /
|
|
304
|
-
* sections. `acceptLanguage` rides the `Accept-Language` header (the Stable
|
|
305
|
-
* `i18n.md` negotiation; no `?locale=`). Returns `null` on `404`
|
|
306
|
-
* (no such published page) or `501` (uncapable). */
|
|
235
|
+
/** `GET /content/pages/{slug}` — `acceptLanguage` rides `Accept-Language`; `null` on `404`/`501`. */
|
|
307
236
|
getPage: (slug: string, acceptLanguage?: string) => Promise<LocalizedContentPageResponse | null>;
|
|
308
|
-
/** `POST /
|
|
309
|
-
* typed `WopError` on `400`/`401`/`403`. */
|
|
237
|
+
/** `POST /content/pages` (admin). */
|
|
310
238
|
createPage: (body: LocalizedContentPage) => Promise<LocalizedContentPage>;
|
|
311
|
-
/** `PUT /
|
|
312
|
-
* section's field overlay for a locale (admin). */
|
|
239
|
+
/** `PUT /content/pages/{pageId}/sections/{sectionId}` (admin). */
|
|
313
240
|
putSection: (pageId: string, sectionId: string, body: PutContentSectionRequest) => Promise<LocalizedContentSection>;
|
|
314
|
-
/** `GET /
|
|
315
|
-
* host doesn't advertise `capabilities.content` (501). */
|
|
241
|
+
/** `GET /content/settings` — `null` when the host doesn't advertise `content` (501). */
|
|
316
242
|
getSettings: () => Promise<LocalizedContentLanguageSettings | null>;
|
|
317
|
-
/** `PUT /
|
|
243
|
+
/** `PUT /content/settings` (admin). */
|
|
318
244
|
putSettings: (body: LocalizedContentLanguageSettings) => Promise<LocalizedContentLanguageSettings>;
|
|
319
245
|
};
|
|
320
246
|
readonly triggerSubscriptions: {
|
|
321
|
-
/** `POST /
|
|
322
|
-
* The `binding.secret*` is returned ONCE at creation (SR-1); persist it.
|
|
323
|
-
* Throws the typed `WopError` on `400`/`401`/`403`, or `501` when the host
|
|
324
|
-
* doesn't advertise the trigger-bridge ingestion surface. */
|
|
247
|
+
/** `POST /trigger-subscriptions` — the `binding.secret*` is returned ONCE; persist it. */
|
|
325
248
|
create: (body: TriggerSubscriptionRegistration) => Promise<CreateTriggerSubscriptionResponse>;
|
|
326
249
|
};
|
|
327
|
-
readonly workspace: {
|
|
328
|
-
/**
|
|
329
|
-
* RFC 0059 — list workspace file metadata (no bodies) for the caller's
|
|
330
|
-
* `{tenant, workspace}`. Optional `prefix` filters the flat `path`
|
|
331
|
-
* namespace. Returns `null` when the host doesn't advertise
|
|
332
|
-
* `capabilities.workspace.supported` (501), so callers can branch on
|
|
333
|
-
* capability discovery without try/catch.
|
|
334
|
-
*/
|
|
335
|
-
listFiles: (opts?: {
|
|
336
|
-
prefix?: string;
|
|
337
|
-
}) => Promise<readonly WorkspaceFile[] | null>;
|
|
338
|
-
/**
|
|
339
|
-
* RFC 0059 — read one workspace file. Pass `version` for a historical
|
|
340
|
-
* snapshot when `capabilities.workspace.versioned`. Returns `null` when
|
|
341
|
-
* the file is absent (404) or the host doesn't advertise the capability
|
|
342
|
-
* (501).
|
|
343
|
-
*/
|
|
344
|
-
getFile: (path: string, opts?: {
|
|
345
|
-
version?: number;
|
|
346
|
-
}) => Promise<WorkspaceFile | null>;
|
|
347
|
-
/**
|
|
348
|
-
* RFC 0059 — atomic create/replace of a workspace file. Pass `ifMatch`
|
|
349
|
-
* (the file's current `etag`) for optimistic concurrency; a stale token
|
|
350
|
-
* throws a `WopError` with status `409` (`workspace_conflict`). Content
|
|
351
|
-
* beyond `capabilities.workspace.maxFileBytes` throws `413`
|
|
352
|
-
* (`workspace_too_large`). Returns the persisted `WorkspaceFile`.
|
|
353
|
-
*/
|
|
354
|
-
putFile: (path: string, body: PutWorkspaceFileRequest, opts?: MutationOptions & {
|
|
355
|
-
ifMatch?: string;
|
|
356
|
-
}) => Promise<WorkspaceFile>;
|
|
357
|
-
/**
|
|
358
|
-
* RFC 0059 — delete a workspace file. Returns `true` on success (`204`),
|
|
359
|
-
* `false` when the file is absent (404) or the host doesn't advertise the
|
|
360
|
-
* capability (501).
|
|
361
|
-
*/
|
|
362
|
-
deleteFile: (path: string, opts?: MutationOptions) => Promise<boolean>;
|
|
363
|
-
};
|
|
364
250
|
}
|
|
365
251
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAkC,KAAK,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAClH,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EAEvB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC/B,MAAM,YAAY,CAAC;AAEpB,kGAAkG;AAClG,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,uHAAuH;AACvH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED,MAAM,WAAW,oBAAoB;IACnC,gGAAgG;IAChG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,sFAAsF;IACtF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,qIAAqI;IACrI,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC5B;AAUD,qBAAa,aAAa;;IAOxB,sEAAsE;IACtE,IAAI,eAAe,IAAI,MAAM,CAE5B;gBAEW,IAAI,EAAE,oBAAoB;IAWtC,QAAQ,CAAC,SAAS;QAChB;;;;WAIG;4BACe,OAAO,CAAC,YAAY,CAAC;QAGvC,sEAAsE;uBACzD,OAAO,CAAC,OAAO,CAAC;MAE7B;IAGF,QAAQ,CAAC,SAAS;QAChB,oCAAoC;0BAClB,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;MAK3C;IAGF,QAAQ,CAAC,IAAI;QACX,8EAA8E;uBAC/D,gBAAgB,SAAQ,eAAe,KAAQ,OAAO,CAAC,iBAAiB,CAAC;QAQxF,8DAA8D;qBACjD,MAAM,KAAG,OAAO,CAAC,WAAW,CAAC;QAM1C,6EAA6E;wBAEpE,MAAM,SACP,gBAAgB,SAChB,eAAe,KACpB,OAAO,CAAC,iBAAiB,CAAC;QAQ7B,uEAAuE;uBAE9D,MAAM,SACP,eAAe,SACf,eAAe,KACpB,OAAO,CAAC,gBAAgB,CAAC;QAQ5B,sEAAsE;wBAE7D,MAAM,SACP,gBAAgB,SAChB,eAAe,KACpB,OAAO,CAAC,iBAAiB,CAAC;QAQ7B;;;;WAIG;2BAEK,qBAAqB,SACrB,eAAe,KACpB,OAAO,CAAC,sBAAsB,CAAC;QAQlC,sFAAsF;sBAE7E,MAAM,QACP,cAAc,SACd,eAAe,KACpB,OAAO,CAAC,eAAe,CAAC;QAQ3B;;;;WAIG;kCAEM,MAAM,QACP,uBAAuB,SACvB,eAAe,KACpB,OAAO,CAAC,UAAU,CAAC;QAQtB;;;;WAIG;iCAC4B,MAAM,KAAG,OAAO,CAAC,SAAS,UAAU,EAAE,GAAG,IAAI,CAAC;QAa7E;;;;;;WAMG;0BACqB,MAAM,KAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAYpE;;;;WAIG;sBACiB,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;QAY7E;;;;WAIG;6BACwB,MAAM,KAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAY/D;;;WAGG;6BACwB,MAAM,cAAc,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QAY/F;;;WAGG;8BACyB,MAAM,KAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;QAY3E;;;WAGG;yBACoB,MAAM,KAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;QAYtE;;;;;;WAMG;4BAEM,MAAM,WACL;YAAE,aAAa,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,KAC1D,OAAO,CAAC,kBAAkB,CAAC;QAe9B;;;;WAIG;wBACa,MAAM,SAAQ,mBAAmB,KAAQ,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;MAEhG;IAGF,QAAQ,CAAC,IAAI;QACX;;;WAGG;2BACc,OAAO,CAAC,kBAAkB,CAAC;QAG5C;;;;WAIG;wBACY,uBAAuB,KAAQ,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;MAEtF;IAKF,QAAQ,CAAC,MAAM;QACb,oBAAoB;oBACJ,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;QAStD,8BAA8B;uBACT,MAAM,KAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAYjE,uFAAuF;mCACtD,MAAM,KAAG,OAAO,CAAC,SAAS,eAAe,EAAE,GAAG,IAAI,CAAC;QAYpF,0FAA0F;wCAE/E,MAAM,QACT,yBAAyB,SACzB,eAAe,KACpB,OAAO,CAAC,eAAe,CAAC;QAQ3B,qEAAqE;0BAC/C,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;QASzD,uEAAuE;mCACtC,MAAM,KAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAY1E,wEAAwE;2BACjD,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;QASpD,8EAA8E;8CAE9D,MAAM,SACd;YAAE,SAAS,CAAC,EAAE,OAAO,CAAA;SAAE,KAC5B,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;MAY7C;IAGF,QAAQ,CAAC,KAAK;QACZ,2EAA2E;oBAC3D,OAAO,CAAC,SAAS,cAAc,EAAE,GAAG,IAAI,CAAC;QASzD,4FAA4F;2BACrE,OAAO,CAAC,SAAS,qBAAqB,EAAE,GAAG,IAAI,CAAC;QAavE,iGAAiG;sBAEvF,MAAM,SACR;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;SAAE,KAC/C,OAAO,CAAC,cAAc,GAAG,qBAAqB,GAAG,IAAI,CAAC;MAYzD;IAGF,QAAQ,CAAC,UAAU;QACjB,+CAA+C;8BAEtC,MAAM,UACL,MAAM,QACR,uBAAuB,SACvB,eAAe,KACpB,OAAO,CAAC,wBAAwB,CAAC;QAQpC;;;;WAIG;gCACqB,MAAM,KAAG,OAAO,CAAC,0BAA0B,CAAC;QASpE,6DAA6D;gCAEpD,MAAM,QACP,uBAAuB,SACvB,eAAe,KACpB,OAAO,CAAC,+BAA+B,CAAC;MAU3C;IAGF,QAAQ,CAAC,QAAQ;QACf;;;;;WAKG;yBAEK,sBAAsB,SACtB,eAAe,KACpB,OAAO,CAAC,uBAAuB,CAAC;QAQnC,mGAAmG;gCACrE,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;MAMpD;IAGF,QAAQ,CAAC,OAAO;QACd,qFAAqF;qBACzE,kBAAkB,KAAQ,OAAO,CAAC,mBAAmB,CAAC;QAelE,gGAAgG;mBAC/E,gBAAgB,KAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;QAgBlE,2FAA2F;sBAC7E,mBAAmB,KAAG,OAAO,CAAC,oBAAoB,CAAC;QAQjE,2DAA2D;2BACxC,cAAc,SAAQ,eAAe,KAAQ,OAAO,CAAC,IAAI,CAAC;QAS7E,+FAA+F;6BAEjF,MAAM,YACR,cAAc,SAClB,eAAe,KACpB,OAAO,CAAC,cAAc,CAAC;QAS1B,qCAAqC;6BAChB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;MAM3C;IAGF,QAAQ,CAAC,KAAK;QACZ;;;;WAIG;0BACe,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAAC;MASpE;IAGF,QAAQ,CAAC,OAAO;QACd,qFAAqF;yBAChE,OAAO,CAAC,SAAS,oBAAoB,EAAE,GAAG,IAAI,CAAC;QAYpE,qGAAqG;wBAE7F,MAAM,mBACK,MAAM,KACtB,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;QAgB/C,qCAAqC;2BAClB,oBAAoB,KAAG,OAAO,CAAC,oBAAoB,CAAC;QAOvE,kEAAkE;6BAExD,MAAM,aACH,MAAM,QACX,wBAAwB,KAC7B,OAAO,CAAC,uBAAuB,CAAC;QAOnC,wFAAwF;2BACjE,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC;QAYvE,uCAAuC;4BAE/B,gCAAgC,KACrC,OAAO,CAAC,gCAAgC,CAAC;MAM5C;IAGF,QAAQ,CAAC,oBAAoB;QAC3B,0FAA0F;uBAElF,+BAA+B,KACpC,OAAO,CAAC,iCAAiC,CAAC;MAM7C;CA+EH"}
|