@qontinui/shared-types 1.0.0 → 1.1.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/runner.d.cts +74 -0
- package/dist/runner.d.ts +74 -0
- package/dist/tauri-events.d.cts +1 -26
- package/dist/tauri-events.d.ts +1 -26
- package/package.json +1 -1
- package/src/generated/Runner.d.ts +9 -0
- package/src/generated/RunnerInstance.d.ts +49 -0
- package/src/generated/RunnerInstanceRole.d.ts +16 -0
- package/src/generated/UIBridgeElement.d.ts +20 -33
- package/src/generated/index.ts +2 -1
- package/src/tauri-events/_api.ts +0 -5
- package/src/generated/RecommendationReviewDecisionPayload.d.ts +0 -24
package/dist/runner.d.cts
CHANGED
|
@@ -31,6 +31,73 @@ interface RunnerCrash {
|
|
|
31
31
|
thread: string;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
/* eslint-disable */
|
|
35
|
+
/**
|
|
36
|
+
* This file was automatically generated.
|
|
37
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
38
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Which role a runner instance plays on its machine.
|
|
43
|
+
*
|
|
44
|
+
* Every runner instance on one box presents the SAME machine `device_id`, so
|
|
45
|
+
* the role is what separates the canonical instance from the supervisor-spawned
|
|
46
|
+
* ones sharing its row. Reported by the runner in `runner_info` as the
|
|
47
|
+
* top-level `instanceRole`.
|
|
48
|
+
*/
|
|
49
|
+
type RunnerInstanceRole = "primary" | "secondary";
|
|
50
|
+
|
|
51
|
+
/* eslint-disable */
|
|
52
|
+
/**
|
|
53
|
+
* This file was automatically generated.
|
|
54
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
55
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* One live runner instance under a [`Runner`] (machine) row.
|
|
62
|
+
*
|
|
63
|
+
* A machine can host several runner instances at once — the primary on
|
|
64
|
+
* `:9876` and supervisor-spawned secondaries on `:9877-9899` — all presenting
|
|
65
|
+
* the one machine `device_id`, so they share a single [`Runner`] row. One
|
|
66
|
+
* entry per currently connected instance lets a consumer address `:9876` and
|
|
67
|
+
* `:9877` on the same box separately rather than seeing only whichever
|
|
68
|
+
* instance wrote the row's `port` last (plan
|
|
69
|
+
* `2026-09-20-runner-selector-drives-a-transport-not-a-target`, reading A0.2
|
|
70
|
+
* and Phase 6).
|
|
71
|
+
*/
|
|
72
|
+
interface RunnerInstance {
|
|
73
|
+
/**
|
|
74
|
+
* ISO 8601 timestamp when this instance's current WebSocket connection
|
|
75
|
+
* was established.
|
|
76
|
+
*/
|
|
77
|
+
connectedAt: string;
|
|
78
|
+
/**
|
|
79
|
+
* Per-instance key, reported by the runner as `instanceKey`. Built from
|
|
80
|
+
* namespaced sources so no source can spell another's key: `"primary"`
|
|
81
|
+
* for the primary; `"runner:<id>"` for a supervisor-spawned secondary
|
|
82
|
+
* (supervisor-assigned ids are unique, and a named runner's id is reused
|
|
83
|
+
* across its restarts); `"name:<name>"` for a secondary carrying only an
|
|
84
|
+
* instance name; `"port:<port>"` for a nameless one (stable only while it
|
|
85
|
+
* keeps that port). NOT guaranteed unique: two processes that each believe
|
|
86
|
+
* themselves the primary both report `"primary"`, so a consumer must treat
|
|
87
|
+
* two live instances with the same key as a conflict, never as one
|
|
88
|
+
* overwriting the other.
|
|
89
|
+
*/
|
|
90
|
+
instanceKey: string;
|
|
91
|
+
/**
|
|
92
|
+
* Whether this instance is the machine's primary or a secondary.
|
|
93
|
+
*/
|
|
94
|
+
instanceRole: RunnerInstanceRole;
|
|
95
|
+
/**
|
|
96
|
+
* Port this instance's HTTP API is listening on, if reported.
|
|
97
|
+
*/
|
|
98
|
+
port?: number | null;
|
|
99
|
+
}
|
|
100
|
+
|
|
34
101
|
/* eslint-disable */
|
|
35
102
|
/**
|
|
36
103
|
* This file was automatically generated.
|
|
@@ -115,6 +182,13 @@ interface Runner {
|
|
|
115
182
|
* Runner identifier (UUID as a string).
|
|
116
183
|
*/
|
|
117
184
|
id: string;
|
|
185
|
+
/**
|
|
186
|
+
* Currently connected runner instances on this machine, one entry per
|
|
187
|
+
* instance (see [`RunnerInstance`]). Empty when none is connected — and
|
|
188
|
+
* when the serving backend predates per-instance rows and omits the
|
|
189
|
+
* field, so absence deserializes to an empty list rather than failing.
|
|
190
|
+
*/
|
|
191
|
+
instances: RunnerInstance[];
|
|
118
192
|
/**
|
|
119
193
|
* Reported network address the runner is reachable on.
|
|
120
194
|
*/
|
package/dist/runner.d.ts
CHANGED
|
@@ -31,6 +31,73 @@ interface RunnerCrash {
|
|
|
31
31
|
thread: string;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
/* eslint-disable */
|
|
35
|
+
/**
|
|
36
|
+
* This file was automatically generated.
|
|
37
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
38
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Which role a runner instance plays on its machine.
|
|
43
|
+
*
|
|
44
|
+
* Every runner instance on one box presents the SAME machine `device_id`, so
|
|
45
|
+
* the role is what separates the canonical instance from the supervisor-spawned
|
|
46
|
+
* ones sharing its row. Reported by the runner in `runner_info` as the
|
|
47
|
+
* top-level `instanceRole`.
|
|
48
|
+
*/
|
|
49
|
+
type RunnerInstanceRole = "primary" | "secondary";
|
|
50
|
+
|
|
51
|
+
/* eslint-disable */
|
|
52
|
+
/**
|
|
53
|
+
* This file was automatically generated.
|
|
54
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
55
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* One live runner instance under a [`Runner`] (machine) row.
|
|
62
|
+
*
|
|
63
|
+
* A machine can host several runner instances at once — the primary on
|
|
64
|
+
* `:9876` and supervisor-spawned secondaries on `:9877-9899` — all presenting
|
|
65
|
+
* the one machine `device_id`, so they share a single [`Runner`] row. One
|
|
66
|
+
* entry per currently connected instance lets a consumer address `:9876` and
|
|
67
|
+
* `:9877` on the same box separately rather than seeing only whichever
|
|
68
|
+
* instance wrote the row's `port` last (plan
|
|
69
|
+
* `2026-09-20-runner-selector-drives-a-transport-not-a-target`, reading A0.2
|
|
70
|
+
* and Phase 6).
|
|
71
|
+
*/
|
|
72
|
+
interface RunnerInstance {
|
|
73
|
+
/**
|
|
74
|
+
* ISO 8601 timestamp when this instance's current WebSocket connection
|
|
75
|
+
* was established.
|
|
76
|
+
*/
|
|
77
|
+
connectedAt: string;
|
|
78
|
+
/**
|
|
79
|
+
* Per-instance key, reported by the runner as `instanceKey`. Built from
|
|
80
|
+
* namespaced sources so no source can spell another's key: `"primary"`
|
|
81
|
+
* for the primary; `"runner:<id>"` for a supervisor-spawned secondary
|
|
82
|
+
* (supervisor-assigned ids are unique, and a named runner's id is reused
|
|
83
|
+
* across its restarts); `"name:<name>"` for a secondary carrying only an
|
|
84
|
+
* instance name; `"port:<port>"` for a nameless one (stable only while it
|
|
85
|
+
* keeps that port). NOT guaranteed unique: two processes that each believe
|
|
86
|
+
* themselves the primary both report `"primary"`, so a consumer must treat
|
|
87
|
+
* two live instances with the same key as a conflict, never as one
|
|
88
|
+
* overwriting the other.
|
|
89
|
+
*/
|
|
90
|
+
instanceKey: string;
|
|
91
|
+
/**
|
|
92
|
+
* Whether this instance is the machine's primary or a secondary.
|
|
93
|
+
*/
|
|
94
|
+
instanceRole: RunnerInstanceRole;
|
|
95
|
+
/**
|
|
96
|
+
* Port this instance's HTTP API is listening on, if reported.
|
|
97
|
+
*/
|
|
98
|
+
port?: number | null;
|
|
99
|
+
}
|
|
100
|
+
|
|
34
101
|
/* eslint-disable */
|
|
35
102
|
/**
|
|
36
103
|
* This file was automatically generated.
|
|
@@ -115,6 +182,13 @@ interface Runner {
|
|
|
115
182
|
* Runner identifier (UUID as a string).
|
|
116
183
|
*/
|
|
117
184
|
id: string;
|
|
185
|
+
/**
|
|
186
|
+
* Currently connected runner instances on this machine, one entry per
|
|
187
|
+
* instance (see [`RunnerInstance`]). Empty when none is connected — and
|
|
188
|
+
* when the serving backend predates per-instance rows and omits the
|
|
189
|
+
* field, so absence deserializes to an empty list rather than failing.
|
|
190
|
+
*/
|
|
191
|
+
instances: RunnerInstance[];
|
|
118
192
|
/**
|
|
119
193
|
* Reported network address the runner is reachable on.
|
|
120
194
|
*/
|
package/dist/tauri-events.d.cts
CHANGED
|
@@ -1132,31 +1132,6 @@ interface DevSeedFindingPayload {
|
|
|
1132
1132
|
[k: string]: unknown;
|
|
1133
1133
|
}
|
|
1134
1134
|
|
|
1135
|
-
/* eslint-disable */
|
|
1136
|
-
/**
|
|
1137
|
-
* This file was automatically generated.
|
|
1138
|
-
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
1139
|
-
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
1140
|
-
*/
|
|
1141
|
-
|
|
1142
|
-
/**
|
|
1143
|
-
* Payload shape for the `review-approved` and `review-rejected` Tauri events
|
|
1144
|
-
* emitted by `commands::productivity::approve_recommendation` /
|
|
1145
|
-
* `reject_recommendation` after a user resolves a medium-confidence
|
|
1146
|
-
* recommendation card. Field names are explicit camelCase to match the
|
|
1147
|
-
* `serde_json::json!()` literal previously used at the emit site.
|
|
1148
|
-
*
|
|
1149
|
-
* Single struct shared by both channels: only `user_decision` differs
|
|
1150
|
-
* (`"approved"` vs `"rejected"`), so a tagged enum would inflate the wire
|
|
1151
|
-
* format without payoff.
|
|
1152
|
-
*/
|
|
1153
|
-
interface RecommendationReviewDecisionPayload {
|
|
1154
|
-
reviewId: string;
|
|
1155
|
-
taskId: string;
|
|
1156
|
-
userDecision: string;
|
|
1157
|
-
[k: string]: unknown;
|
|
1158
|
-
}
|
|
1159
|
-
|
|
1160
1135
|
/* eslint-disable */
|
|
1161
1136
|
/**
|
|
1162
1137
|
* This file was automatically generated.
|
|
@@ -1270,4 +1245,4 @@ interface UiBridgeResponseEnvelope {
|
|
|
1270
1245
|
[k: string]: unknown;
|
|
1271
1246
|
}
|
|
1272
1247
|
|
|
1273
|
-
export type { AppEvent, CanvasPanel as CanvasUpdatePanel, DevSeedFindingPayload,
|
|
1248
|
+
export type { AppEvent, CanvasPanel as CanvasUpdatePanel, DevSeedFindingPayload, RunnerConnectedConnection, RunnerFinding, RunnerFindingCodeContext, RunnerFindingUserInput, RunnerRelayMessage, RunnerStatusEvent, TerminalExitEvent, TerminalInfo, TerminalOutputEvent, UiBridgeRequestEnvelope, UiBridgeResponseEnvelope };
|
package/dist/tauri-events.d.ts
CHANGED
|
@@ -1132,31 +1132,6 @@ interface DevSeedFindingPayload {
|
|
|
1132
1132
|
[k: string]: unknown;
|
|
1133
1133
|
}
|
|
1134
1134
|
|
|
1135
|
-
/* eslint-disable */
|
|
1136
|
-
/**
|
|
1137
|
-
* This file was automatically generated.
|
|
1138
|
-
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
1139
|
-
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
1140
|
-
*/
|
|
1141
|
-
|
|
1142
|
-
/**
|
|
1143
|
-
* Payload shape for the `review-approved` and `review-rejected` Tauri events
|
|
1144
|
-
* emitted by `commands::productivity::approve_recommendation` /
|
|
1145
|
-
* `reject_recommendation` after a user resolves a medium-confidence
|
|
1146
|
-
* recommendation card. Field names are explicit camelCase to match the
|
|
1147
|
-
* `serde_json::json!()` literal previously used at the emit site.
|
|
1148
|
-
*
|
|
1149
|
-
* Single struct shared by both channels: only `user_decision` differs
|
|
1150
|
-
* (`"approved"` vs `"rejected"`), so a tagged enum would inflate the wire
|
|
1151
|
-
* format without payoff.
|
|
1152
|
-
*/
|
|
1153
|
-
interface RecommendationReviewDecisionPayload {
|
|
1154
|
-
reviewId: string;
|
|
1155
|
-
taskId: string;
|
|
1156
|
-
userDecision: string;
|
|
1157
|
-
[k: string]: unknown;
|
|
1158
|
-
}
|
|
1159
|
-
|
|
1160
1135
|
/* eslint-disable */
|
|
1161
1136
|
/**
|
|
1162
1137
|
* This file was automatically generated.
|
|
@@ -1270,4 +1245,4 @@ interface UiBridgeResponseEnvelope {
|
|
|
1270
1245
|
[k: string]: unknown;
|
|
1271
1246
|
}
|
|
1272
1247
|
|
|
1273
|
-
export type { AppEvent, CanvasPanel as CanvasUpdatePanel, DevSeedFindingPayload,
|
|
1248
|
+
export type { AppEvent, CanvasPanel as CanvasUpdatePanel, DevSeedFindingPayload, RunnerConnectedConnection, RunnerFinding, RunnerFindingCodeContext, RunnerFindingUserInput, RunnerRelayMessage, RunnerStatusEvent, TerminalExitEvent, TerminalInfo, TerminalOutputEvent, UiBridgeRequestEnvelope, UiBridgeResponseEnvelope };
|
package/package.json
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import type { RunnerCrash } from "./RunnerCrash";
|
|
9
|
+
import type { RunnerInstance } from "./RunnerInstance";
|
|
10
|
+
import type { RunnerInstanceRole } from "./RunnerInstanceRole";
|
|
9
11
|
import type { RunnerStatus } from "./RunnerStatus";
|
|
10
12
|
import type { RunnerUiError } from "./RunnerUiError";
|
|
11
13
|
|
|
@@ -41,6 +43,13 @@ export interface Runner {
|
|
|
41
43
|
* Runner identifier (UUID as a string).
|
|
42
44
|
*/
|
|
43
45
|
id: string;
|
|
46
|
+
/**
|
|
47
|
+
* Currently connected runner instances on this machine, one entry per
|
|
48
|
+
* instance (see [`RunnerInstance`]). Empty when none is connected — and
|
|
49
|
+
* when the serving backend predates per-instance rows and omits the
|
|
50
|
+
* field, so absence deserializes to an empty list rather than failing.
|
|
51
|
+
*/
|
|
52
|
+
instances: RunnerInstance[];
|
|
44
53
|
/**
|
|
45
54
|
* Reported network address the runner is reachable on.
|
|
46
55
|
*/
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { RunnerInstanceRole } from "./RunnerInstanceRole";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* One live runner instance under a [`Runner`] (machine) row.
|
|
12
|
+
*
|
|
13
|
+
* A machine can host several runner instances at once — the primary on
|
|
14
|
+
* `:9876` and supervisor-spawned secondaries on `:9877-9899` — all presenting
|
|
15
|
+
* the one machine `device_id`, so they share a single [`Runner`] row. One
|
|
16
|
+
* entry per currently connected instance lets a consumer address `:9876` and
|
|
17
|
+
* `:9877` on the same box separately rather than seeing only whichever
|
|
18
|
+
* instance wrote the row's `port` last (plan
|
|
19
|
+
* `2026-09-20-runner-selector-drives-a-transport-not-a-target`, reading A0.2
|
|
20
|
+
* and Phase 6).
|
|
21
|
+
*/
|
|
22
|
+
export interface RunnerInstance {
|
|
23
|
+
/**
|
|
24
|
+
* ISO 8601 timestamp when this instance's current WebSocket connection
|
|
25
|
+
* was established.
|
|
26
|
+
*/
|
|
27
|
+
connectedAt: string;
|
|
28
|
+
/**
|
|
29
|
+
* Per-instance key, reported by the runner as `instanceKey`. Built from
|
|
30
|
+
* namespaced sources so no source can spell another's key: `"primary"`
|
|
31
|
+
* for the primary; `"runner:<id>"` for a supervisor-spawned secondary
|
|
32
|
+
* (supervisor-assigned ids are unique, and a named runner's id is reused
|
|
33
|
+
* across its restarts); `"name:<name>"` for a secondary carrying only an
|
|
34
|
+
* instance name; `"port:<port>"` for a nameless one (stable only while it
|
|
35
|
+
* keeps that port). NOT guaranteed unique: two processes that each believe
|
|
36
|
+
* themselves the primary both report `"primary"`, so a consumer must treat
|
|
37
|
+
* two live instances with the same key as a conflict, never as one
|
|
38
|
+
* overwriting the other.
|
|
39
|
+
*/
|
|
40
|
+
instanceKey: string;
|
|
41
|
+
/**
|
|
42
|
+
* Whether this instance is the machine's primary or a secondary.
|
|
43
|
+
*/
|
|
44
|
+
instanceRole: RunnerInstanceRole;
|
|
45
|
+
/**
|
|
46
|
+
* Port this instance's HTTP API is listening on, if reported.
|
|
47
|
+
*/
|
|
48
|
+
port?: number | null;
|
|
49
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
+
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Which role a runner instance plays on its machine.
|
|
10
|
+
*
|
|
11
|
+
* Every runner instance on one box presents the SAME machine `device_id`, so
|
|
12
|
+
* the role is what separates the canonical instance from the supervisor-spawned
|
|
13
|
+
* ones sharing its row. Reported by the runner in `runner_info` as the
|
|
14
|
+
* top-level `instanceRole`.
|
|
15
|
+
*/
|
|
16
|
+
export type RunnerInstanceRole = "primary" | "secondary";
|
|
@@ -51,43 +51,30 @@ export interface UIBridgeElement {
|
|
|
51
51
|
*
|
|
52
52
|
* Absent (`None`) means the element declares none. That is deliberately
|
|
53
53
|
* distinct from an empty list, which would mean "declared, and empty".
|
|
54
|
-
* ---
|
|
55
54
|
*
|
|
56
|
-
* **
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* land atomically — this crate owns the type, `ui-bridge` emits, and
|
|
65
|
-
* `qontinui-runner` parses live SDK snapshots strictly
|
|
66
|
-
* (`spec-check/src/fetch.rs`, `spec_api/spec_check.rs`) while pinning a
|
|
67
|
-
* PUBLISHED SDK. Both two-party orderings leave a window in which the
|
|
68
|
-
* fleet is broken: land this crate first and the runner rejects the names
|
|
69
|
-
* the published SDK still emits; land the SDK first and it emits objects
|
|
70
|
-
* at a runner whose type is still `Vec<String>`. Only a tolerant READER
|
|
71
|
-
* removes the window, and there is one reader against nine emitters.
|
|
72
|
-
*
|
|
73
|
-
* This is NOT here to spare a caller a breaking change — that is never a
|
|
74
|
-
* reason in this workspace.
|
|
75
|
-
*
|
|
76
|
-
* **DELETE ME, and the trigger is observable rather than intentional:**
|
|
77
|
-
* once no emitter produces names — `ui-bridge`'s eight element
|
|
78
|
-
* projections plus `qontinui-runner`'s
|
|
79
|
-
* `src/services/background-observer-service.ts` — and the runner's SDK pin
|
|
80
|
-
* has moved past that release, remove [`deserialize_custom_actions`] and
|
|
81
|
-
* this attribute, and flip
|
|
82
|
-
* `ui_bridge_element_tolerates_legacy_name_custom_actions` into a test
|
|
83
|
-
* that asserts a bare string is REJECTED. Plan
|
|
55
|
+
* **The bare-NAME form is REJECTED.** A transitional shim accepted
|
|
56
|
+
* `["sendKeys"]` here while the shape change rolled across three repos
|
|
57
|
+
* that cannot land atomically. It was deleted once its own observable
|
|
58
|
+
* trigger was met: no emitter produces names (every `ui-bridge` element
|
|
59
|
+
* projection routes through `serializeElementCustomActions`, and
|
|
60
|
+
* `qontinui-runner`'s `src/services/background-observer-service.ts` --
|
|
61
|
+
* the ninth emitter -- does too), and the runner's SDK pin moved to
|
|
62
|
+
* `@qontinui/ui-bridge` `^0.27.0`. Plan
|
|
84
63
|
* `2026-09-04-effect-calculus-joins-the-component-action-registry`,
|
|
85
64
|
* Design decision 4, step 5.
|
|
86
65
|
*
|
|
87
|
-
* The
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
66
|
+
* The shim's deletion also required retiring the two recorded fixtures
|
|
67
|
+
* that still carried names. That was admissible because the UI Bridge has
|
|
68
|
+
* exactly one consumer -- Qontinui itself -- so "deployed apps still
|
|
69
|
+
* emitting the old wire", the reason the wire gate keeps fixtures
|
|
70
|
+
* append-only, has no instances. Both were REPLACED by captures from
|
|
71
|
+
* 0.27.0 rather than merely dropped, so the gate still parses genuine SDK
|
|
72
|
+
* output; it now parses the object form instead of the name form.
|
|
73
|
+
*
|
|
74
|
+
* Rejecting is the point, not a side effect: a name carries no `effect`,
|
|
75
|
+
* so anything still emitting one would be shipping UNCLASSIFIED actions
|
|
76
|
+
* to a consumer that must treat unclassified as unsafe. A hard parse
|
|
77
|
+
* error names that producer; silent tolerance hid it.
|
|
91
78
|
*/
|
|
92
79
|
customActions?: ElementActionInfo[] | null;
|
|
93
80
|
/**
|
package/src/generated/index.ts
CHANGED
|
@@ -332,7 +332,6 @@ export type { RagCompletionEvent } from './RagCompletionEvent';
|
|
|
332
332
|
export type { RagProcessingStatus } from './RagProcessingStatus';
|
|
333
333
|
export type { RagProgressEvent } from './RagProgressEvent';
|
|
334
334
|
export type { ReadConfigResponse } from './ReadConfigResponse';
|
|
335
|
-
export type { RecommendationReviewDecisionPayload } from './RecommendationReviewDecisionPayload';
|
|
336
335
|
export type { RecommendedState } from './RecommendedState';
|
|
337
336
|
export type { RecordGitOpRequest } from './RecordGitOpRequest';
|
|
338
337
|
export type { ReflectionFixOutput } from './ReflectionFixOutput';
|
|
@@ -361,6 +360,8 @@ export type { RunnerCrash } from './RunnerCrash';
|
|
|
361
360
|
export type { RunnerFinding } from './RunnerFinding';
|
|
362
361
|
export type { RunnerFindingCodeContext } from './RunnerFindingCodeContext';
|
|
363
362
|
export type { RunnerFindingUserInput } from './RunnerFindingUserInput';
|
|
363
|
+
export type { RunnerInstance } from './RunnerInstance';
|
|
364
|
+
export type { RunnerInstanceRole } from './RunnerInstanceRole';
|
|
364
365
|
export type { RunnerMetadata } from './RunnerMetadata';
|
|
365
366
|
export type { RunnerRelayMessage } from './RunnerRelayMessage';
|
|
366
367
|
export type { RunnerStatus } from './RunnerStatus';
|
package/src/tauri-events/_api.ts
CHANGED
|
@@ -63,11 +63,6 @@ export type { RunnerConnectedConnection } from "../generated/RunnerConnectedConn
|
|
|
63
63
|
// fields so the TS listener can spread them straight into a Finding. ──
|
|
64
64
|
export type { DevSeedFindingPayload } from "../generated/DevSeedFindingPayload";
|
|
65
65
|
|
|
66
|
-
// ── Recommendation review decision payloads (`review-approved` /
|
|
67
|
-
// `review-rejected` from `commands/productivity.rs`). One struct
|
|
68
|
-
// covers both channels — only `userDecision` differs. ──
|
|
69
|
-
export type { RecommendationReviewDecisionPayload } from "../generated/RecommendationReviewDecisionPayload";
|
|
70
|
-
|
|
71
66
|
// ── Canvas panel payload carried inside AppEvent::CanvasUpdate's
|
|
72
67
|
// `data.panel` field. Wire-format mirror of the runner's `StoredPanel`
|
|
73
68
|
// (`mcp/canvas.rs`). The hand-written `CanvasPanel` in `../canvas/index.ts`
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
/**
|
|
3
|
-
* This file was automatically generated.
|
|
4
|
-
* DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
|
|
5
|
-
* `qontinui-runner/src-tauri/scripts/generate_types.sh`.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Payload shape for the `review-approved` and `review-rejected` Tauri events
|
|
10
|
-
* emitted by `commands::productivity::approve_recommendation` /
|
|
11
|
-
* `reject_recommendation` after a user resolves a medium-confidence
|
|
12
|
-
* recommendation card. Field names are explicit camelCase to match the
|
|
13
|
-
* `serde_json::json!()` literal previously used at the emit site.
|
|
14
|
-
*
|
|
15
|
-
* Single struct shared by both channels: only `user_decision` differs
|
|
16
|
-
* (`"approved"` vs `"rejected"`), so a tagged enum would inflate the wire
|
|
17
|
-
* format without payoff.
|
|
18
|
-
*/
|
|
19
|
-
export interface RecommendationReviewDecisionPayload {
|
|
20
|
-
reviewId: string;
|
|
21
|
-
taskId: string;
|
|
22
|
-
userDecision: string;
|
|
23
|
-
[k: string]: unknown;
|
|
24
|
-
}
|