@qontinui/shared-types 0.8.1 → 0.12.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/index.cjs.map +1 -1
- package/dist/index.d.cts +412 -1
- package/dist/index.d.ts +412 -1
- package/package.json +1 -1
- package/src/generated/AgentCommand.d.ts +81 -0
- package/src/generated/AgentCommandError.d.ts +23 -0
- package/src/generated/AgentCommandVersion.d.ts +67 -0
- package/src/generated/App.d.ts +34 -0
- package/src/generated/AppError.d.ts +5 -0
- package/src/generated/ComponentActionInfo.d.ts +33 -0
- package/src/generated/ElementState.d.ts +27 -1
- package/src/generated/GitCommitLite.d.ts +24 -0
- package/src/generated/GitLite.d.ts +27 -0
- package/src/generated/HealthLevel.d.ts +11 -0
- package/src/generated/HealthLite.d.ts +28 -0
- package/src/generated/HelperAnswer.d.ts +47 -0
- package/src/generated/HelperAnswerSchema.d.ts +40 -0
- package/src/generated/HelperTask.d.ts +59 -0
- package/src/generated/HelperTaskKind.d.ts +16 -0
- package/src/generated/HelperTaskPayload.d.ts +37 -0
- package/src/generated/HelperTaskSource.d.ts +31 -0
- package/src/generated/HelperTaskStatus.d.ts +14 -0
- package/src/generated/HelperVerdict.d.ts +21 -0
- package/src/generated/PendingQuestion.d.ts +32 -0
- package/src/generated/ProcessStatusLite.d.ts +38 -0
- package/src/generated/ProjectSnapshot.d.ts +63 -0
- package/src/generated/RegisterAppRequest.d.ts +24 -0
- package/src/generated/SavedProject.d.ts +102 -0
- package/src/generated/SessionLite.d.ts +44 -0
- package/src/generated/SessionSource.d.ts +11 -0
- package/src/generated/SpecCheckResult.d.ts +7 -0
- package/src/generated/StateMatchResult.d.ts +5 -0
- package/src/generated/UIBridgeComponent.d.ts +10 -0
- package/src/generated/UpdateAppRequest.d.ts +24 -0
- package/src/generated/index.ts +21 -0
- package/src/index.ts +14 -0
|
@@ -13,6 +13,19 @@ export interface ComponentActionInfo {
|
|
|
13
13
|
* Longer description of what the action does.
|
|
14
14
|
*/
|
|
15
15
|
description?: string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Safety class of this action: `read`, `write` or `destructive`.
|
|
18
|
+
*
|
|
19
|
+
* **A safety annotation, not a hint.** An autonomous walk MUST NOT fire an
|
|
20
|
+
* action annotated `destructive`; that is the same exclusion the IR already
|
|
21
|
+
* applies to `destructive` transitions when generating auto-regressions.
|
|
22
|
+
* Author-declared, because only the app author knows that a particular
|
|
23
|
+
* `click` is a delete button.
|
|
24
|
+
*
|
|
25
|
+
* Absent means **unclassified, not safe** — an action nobody has judged
|
|
26
|
+
* must be treated as unknown rather than as `read`.
|
|
27
|
+
*/
|
|
28
|
+
effect?: ("read" | "write" | "destructive") | null;
|
|
16
29
|
/**
|
|
17
30
|
* Unique action identifier within the component.
|
|
18
31
|
*/
|
|
@@ -21,4 +34,24 @@ export interface ComponentActionInfo {
|
|
|
21
34
|
* Human-readable label.
|
|
22
35
|
*/
|
|
23
36
|
label?: string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Free-form declaration of the action's parameters, author-supplied on the
|
|
39
|
+
* SDK side as `ComponentAction.paramSchema` and surfaced verbatim on
|
|
40
|
+
* `/control/components`. Conventionally a small JSON Schema subset, but the
|
|
41
|
+
* SDK does not constrain the shape, so it is carried through untyped — the
|
|
42
|
+
* same treatment `ElementActionRequest::params` gets.
|
|
43
|
+
*/
|
|
44
|
+
paramSchema?: {
|
|
45
|
+
[k: string]: unknown;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Fully-resolved invocation path for this action:
|
|
49
|
+
* `/control/component/<componentId>/action/<actionId>`.
|
|
50
|
+
*
|
|
51
|
+
* **Server-annotated, not author-declared**: the SDK's
|
|
52
|
+
* `annotateComponentWithInvocationPaths` computes it when serving the
|
|
53
|
+
* component listing, so it is present on the wire but absent from anything
|
|
54
|
+
* an app author writes.
|
|
55
|
+
*/
|
|
56
|
+
path?: string | null;
|
|
24
57
|
}
|
|
@@ -15,12 +15,38 @@ import type { ElementRect } from "./ElementRect";
|
|
|
15
15
|
* visibility, interactivity, and form-control value.
|
|
16
16
|
*/
|
|
17
17
|
export interface ElementState {
|
|
18
|
+
/**
|
|
19
|
+
* Whether the element carries `aria-disabled="true"`.
|
|
20
|
+
*
|
|
21
|
+
* See `disabled` for why this is tracked separately, and for the
|
|
22
|
+
* absent-reads-as-`false` caveat that applies identically here.
|
|
23
|
+
*/
|
|
24
|
+
ariaDisabled: boolean;
|
|
18
25
|
/**
|
|
19
26
|
* Current checked state for checkbox/radio elements.
|
|
20
27
|
*/
|
|
21
28
|
checked?: boolean | null;
|
|
22
29
|
/**
|
|
23
|
-
* Whether the element
|
|
30
|
+
* Whether the element carries the native `disabled` attribute/property.
|
|
31
|
+
*
|
|
32
|
+
* Distinguished from `aria_disabled` because the two differ in effect:
|
|
33
|
+
* a natively disabled control cannot receive events at all, whereas an
|
|
34
|
+
* `aria-disabled` one is still focusable and clickable and merely
|
|
35
|
+
* announces itself as disabled.
|
|
36
|
+
*
|
|
37
|
+
* `#[serde(default)]`: absent in snapshots from SDK builds predating
|
|
38
|
+
* the split, where `enabled` is the only trustworthy signal. Absent
|
|
39
|
+
* therefore reads as `false`, which is NOT the same as "observed
|
|
40
|
+
* enabled": cross-check `enabled` before trusting it.
|
|
41
|
+
*/
|
|
42
|
+
disabled: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the element is enabled: the derived fold
|
|
45
|
+
* `!disabled && !ariaDisabled`.
|
|
46
|
+
*
|
|
47
|
+
* Kept as the single-signal convenience view of the two fields below.
|
|
48
|
+
* It is the ONLY interactivity signal an SDK build predating the
|
|
49
|
+
* `disabled`/`ariaDisabled` split emits, so it stays required.
|
|
24
50
|
*/
|
|
25
51
|
enabled: boolean;
|
|
26
52
|
/**
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
* One commit in [`GitLite::last_commits`].
|
|
10
|
+
*/
|
|
11
|
+
export interface GitCommitLite {
|
|
12
|
+
/**
|
|
13
|
+
* Unix epoch milliseconds of the commit timestamp.
|
|
14
|
+
*/
|
|
15
|
+
committedMs: number;
|
|
16
|
+
/**
|
|
17
|
+
* Abbreviated commit sha.
|
|
18
|
+
*/
|
|
19
|
+
sha: string;
|
|
20
|
+
/**
|
|
21
|
+
* Commit subject line.
|
|
22
|
+
*/
|
|
23
|
+
subject: string;
|
|
24
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
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 { GitCommitLite } from "./GitCommitLite";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Git state of the project root. `None` on the snapshot when the root is
|
|
12
|
+
* not a git working tree (or git is unavailable).
|
|
13
|
+
*/
|
|
14
|
+
export interface GitLite {
|
|
15
|
+
/**
|
|
16
|
+
* Current branch. `None` on a detached HEAD.
|
|
17
|
+
*/
|
|
18
|
+
branch?: string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Number of `git status --porcelain` entries (uncommitted changes).
|
|
21
|
+
*/
|
|
22
|
+
dirtyCount: number;
|
|
23
|
+
/**
|
|
24
|
+
* Newest commits first.
|
|
25
|
+
*/
|
|
26
|
+
lastCommits: GitCommitLite[];
|
|
27
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
* Traffic-light level for [`HealthLite`].
|
|
10
|
+
*/
|
|
11
|
+
export type HealthLevel = "green" | "amber" | "red" | "unknown";
|
|
@@ -0,0 +1,28 @@
|
|
|
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 { HealthLevel } from "./HealthLevel";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* One green/amber/red answer to "is it broken?", plus the plain-English
|
|
12
|
+
* reason behind it.
|
|
13
|
+
*/
|
|
14
|
+
export interface HealthLite {
|
|
15
|
+
/**
|
|
16
|
+
* Names of the processes driving an amber/red verdict.
|
|
17
|
+
*/
|
|
18
|
+
failingProcesses: string[];
|
|
19
|
+
/**
|
|
20
|
+
* The traffic light.
|
|
21
|
+
*/
|
|
22
|
+
level?: HealthLevel & string;
|
|
23
|
+
/**
|
|
24
|
+
* Why — a sentence a non-developer can read
|
|
25
|
+
* ("The website still starts up fine").
|
|
26
|
+
*/
|
|
27
|
+
reason: string;
|
|
28
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
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 { HelperVerdict } from "./HelperVerdict";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* One helper's answer to a [`HelperTask`].
|
|
12
|
+
*
|
|
13
|
+
* The broker collects up to [`HelperTask::required_votes`] of these per task.
|
|
14
|
+
* On a 👎 [`HelperVerdict::Reject`], [`reasons`](HelperAnswer::reasons) carries
|
|
15
|
+
* the preset reason codes the helper selected from
|
|
16
|
+
* [`HelperAnswerSchema::preset_reasons`].
|
|
17
|
+
*/
|
|
18
|
+
export interface HelperAnswer {
|
|
19
|
+
/**
|
|
20
|
+
* ISO 8601 timestamp (UTC) when the answer was submitted.
|
|
21
|
+
*/
|
|
22
|
+
createdAt: string;
|
|
23
|
+
/**
|
|
24
|
+
* Optional free-text note, when [`HelperAnswerSchema::allow_free_text`] is
|
|
25
|
+
* set.
|
|
26
|
+
*/
|
|
27
|
+
freeText?: string | null;
|
|
28
|
+
/**
|
|
29
|
+
* The helper (user) who submitted the answer.
|
|
30
|
+
*/
|
|
31
|
+
helperUserId: string;
|
|
32
|
+
/**
|
|
33
|
+
* Answer ID (UUID v4 string).
|
|
34
|
+
*/
|
|
35
|
+
id: string;
|
|
36
|
+
/**
|
|
37
|
+
* Preset reason codes selected on a reject — drawn from
|
|
38
|
+
* [`HelperAnswerSchema::preset_reasons`]. Empty for non-reject verdicts.
|
|
39
|
+
*/
|
|
40
|
+
reasons: string[];
|
|
41
|
+
/**
|
|
42
|
+
* The [`HelperTask`] this answers.
|
|
43
|
+
*/
|
|
44
|
+
taskId: string;
|
|
45
|
+
verdict: HelperVerdict;
|
|
46
|
+
[k: string]: unknown;
|
|
47
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
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 { HelperVerdict } from "./HelperVerdict";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The answers a helper is allowed to give, plus the preset reason codes the UI
|
|
12
|
+
* offers them.
|
|
13
|
+
*
|
|
14
|
+
* Defines the choice set for a task: which [`HelperVerdict`]s are offered, the
|
|
15
|
+
* preset reason codes shown when the helper rejects, and whether free text and
|
|
16
|
+
* the 🤔 "not sure" escape hatch are available.
|
|
17
|
+
*/
|
|
18
|
+
export interface HelperAnswerSchema {
|
|
19
|
+
/**
|
|
20
|
+
* Whether the helper may add a free-text note alongside the verdict.
|
|
21
|
+
*/
|
|
22
|
+
allowFreeText: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Whether the 🤔 [`HelperVerdict::NotSure`] option is offered. First-class
|
|
25
|
+
* by design; defaults to `true`.
|
|
26
|
+
*/
|
|
27
|
+
allowNotSure: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Preset reason codes the UI surfaces as tap-to-select chips on a reject —
|
|
30
|
+
* e.g. `"text_cut_off"`, `"overlapping"`, `"wrong_color"`,
|
|
31
|
+
* `"button_missing"`. Selected codes land in [`HelperAnswer::reasons`].
|
|
32
|
+
*/
|
|
33
|
+
presetReasons: string[];
|
|
34
|
+
/**
|
|
35
|
+
* The verdicts offered for this task (e.g. approve/reject/not_sure for a
|
|
36
|
+
* SpotCheck).
|
|
37
|
+
*/
|
|
38
|
+
verdicts: HelperVerdict[];
|
|
39
|
+
[k: string]: unknown;
|
|
40
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
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 { HelperAnswerSchema } from "./HelperAnswerSchema";
|
|
9
|
+
import type { HelperTaskKind } from "./HelperTaskKind";
|
|
10
|
+
import type { HelperTaskPayload } from "./HelperTaskPayload";
|
|
11
|
+
import type { HelperTaskSource } from "./HelperTaskSource";
|
|
12
|
+
import type { HelperTaskStatus } from "./HelperTaskStatus";
|
|
13
|
+
import type { HelperVerdict } from "./HelperVerdict";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* A human-judgment micro-task emitted by a runner for a helper to answer.
|
|
17
|
+
*
|
|
18
|
+
* The broker holds the task `Open` until [`required_votes`](HelperTask::required_votes)
|
|
19
|
+
* [`HelperAnswer`]s are collected (or it `expires_at`), then resolves the
|
|
20
|
+
* verdict and routes it back through [`source`](HelperTask::source).
|
|
21
|
+
*/
|
|
22
|
+
export interface HelperTask {
|
|
23
|
+
answerSchema: HelperAnswerSchema;
|
|
24
|
+
/**
|
|
25
|
+
* Application the task pertains to.
|
|
26
|
+
*/
|
|
27
|
+
appId: string;
|
|
28
|
+
/**
|
|
29
|
+
* ISO 8601 timestamp (UTC) when the task was created.
|
|
30
|
+
*/
|
|
31
|
+
createdAt: string;
|
|
32
|
+
/**
|
|
33
|
+
* ISO 8601 timestamp (UTC) after which the task can no longer be answered.
|
|
34
|
+
* Absent means the task does not expire.
|
|
35
|
+
*/
|
|
36
|
+
expiresAt?: string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Task ID (UUID v4 string).
|
|
39
|
+
*/
|
|
40
|
+
id: string;
|
|
41
|
+
kind: HelperTaskKind;
|
|
42
|
+
payload: HelperTaskPayload;
|
|
43
|
+
/**
|
|
44
|
+
* Human-readable question shown to the helper (e.g. "Does this login
|
|
45
|
+
* screen look right?").
|
|
46
|
+
*/
|
|
47
|
+
prompt: string;
|
|
48
|
+
/**
|
|
49
|
+
* Number of helper answers required before the task is `Answered`.
|
|
50
|
+
*/
|
|
51
|
+
requiredVotes: number;
|
|
52
|
+
source: HelperTaskSource;
|
|
53
|
+
status: HelperTaskStatus;
|
|
54
|
+
/**
|
|
55
|
+
* Tenant that owns the task (coord tenant id).
|
|
56
|
+
*/
|
|
57
|
+
tenantId: string;
|
|
58
|
+
[k: string]: unknown;
|
|
59
|
+
}
|
|
@@ -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
|
+
* Kind of human-judgment task a helper is asked to perform.
|
|
10
|
+
*
|
|
11
|
+
* Phase 1 ships [`HelperTaskKind::SpotCheck`] only; the rest are Phase 2/3.
|
|
12
|
+
* Each kind dictates which [`HelperTaskPayload`] fields are populated and which
|
|
13
|
+
* [`HelperVerdict`]s are offered in the task's [`HelperAnswerSchema`].
|
|
14
|
+
*/
|
|
15
|
+
export type HelperTaskKind =
|
|
16
|
+
"spot_check" | "compare" | "walk_through" | "describe" | "sort";
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
* Kind-specific content shown to the helper.
|
|
10
|
+
*
|
|
11
|
+
* Every field is optional; a given [`HelperTaskKind`] populates only the
|
|
12
|
+
* fields it needs. A [`HelperTaskKind::SpotCheck`] task populates only
|
|
13
|
+
* [`screenshot_url`](HelperTaskPayload::screenshot_url).
|
|
14
|
+
*/
|
|
15
|
+
export interface HelperTaskPayload {
|
|
16
|
+
/**
|
|
17
|
+
* Sort: the feature cards the helper groups in the card-sort exercise.
|
|
18
|
+
*/
|
|
19
|
+
cards?: string[] | null;
|
|
20
|
+
/**
|
|
21
|
+
* Compare: the two presigned screenshot URLs to put side by side (A, B).
|
|
22
|
+
*/
|
|
23
|
+
compareUrls?: string[] | null;
|
|
24
|
+
/**
|
|
25
|
+
* Describe: a reference to the live screen / target the helper describes.
|
|
26
|
+
*/
|
|
27
|
+
liveTarget?: string | null;
|
|
28
|
+
/**
|
|
29
|
+
* SpotCheck: a coord-served / presigned URL of the screenshot to review.
|
|
30
|
+
*/
|
|
31
|
+
screenshotUrl?: string | null;
|
|
32
|
+
/**
|
|
33
|
+
* WalkThrough: the ordered guided steps the helper follows live.
|
|
34
|
+
*/
|
|
35
|
+
steps?: string[] | null;
|
|
36
|
+
[k: string]: unknown;
|
|
37
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
* Round-trip provenance linking a task back to what produced it.
|
|
10
|
+
*
|
|
11
|
+
* Carries the originating [`crate::findings`] / page / spec-check context so a
|
|
12
|
+
* collected verdict can be folded back into the source flow. Spec-check exposes
|
|
13
|
+
* `match_rate` / classification (not a "confidence" scalar), so the rate field
|
|
14
|
+
* is named [`match_rate`](HelperTaskSource::match_rate) accordingly.
|
|
15
|
+
*/
|
|
16
|
+
export interface HelperTaskSource {
|
|
17
|
+
/**
|
|
18
|
+
* The finding this task was raised from, if any.
|
|
19
|
+
*/
|
|
20
|
+
findingId?: string | null;
|
|
21
|
+
/**
|
|
22
|
+
* The spec-check match rate that triggered the task, if any — the
|
|
23
|
+
* `[0.0, 1.0]` structural match score, **not** a confidence scalar.
|
|
24
|
+
*/
|
|
25
|
+
matchRate?: number | null;
|
|
26
|
+
/**
|
|
27
|
+
* The page / spec the screenshot was captured from, if any.
|
|
28
|
+
*/
|
|
29
|
+
pageId?: string | null;
|
|
30
|
+
[k: string]: unknown;
|
|
31
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
* Lifecycle status of a helper task.
|
|
10
|
+
*
|
|
11
|
+
* Lifecycle: `OPEN` → (`ANSWERED` | `EXPIRED` | `CANCELLED`). A task becomes
|
|
12
|
+
* `ANSWERED` once [`HelperTask::required_votes`] answers are collected.
|
|
13
|
+
*/
|
|
14
|
+
export type HelperTaskStatus = "open" | "answered" | "expired" | "cancelled";
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
* A verdict a helper may submit for a task.
|
|
10
|
+
*
|
|
11
|
+
* Verdict-to-kind mapping:
|
|
12
|
+
* - [`HelperTaskKind::SpotCheck`] → [`HelperVerdict::Approve`],
|
|
13
|
+
* [`HelperVerdict::Reject`], [`HelperVerdict::NotSure`].
|
|
14
|
+
* - [`HelperTaskKind::Compare`] → [`HelperVerdict::ChoiceA`],
|
|
15
|
+
* [`HelperVerdict::ChoiceB`], [`HelperVerdict::ChoiceSame`].
|
|
16
|
+
*
|
|
17
|
+
* `NotSure` (🤔) is a first-class outcome — never an error — so a helper is
|
|
18
|
+
* never forced into a false approve/reject.
|
|
19
|
+
*/
|
|
20
|
+
export type HelperVerdict =
|
|
21
|
+
"approve" | "reject" | "not_sure" | "choice_a" | "choice_b" | "choice_same";
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
* A question an agent is blocked on, awaiting the user's answer.
|
|
10
|
+
*/
|
|
11
|
+
export interface PendingQuestion {
|
|
12
|
+
/**
|
|
13
|
+
* Unix epoch milliseconds the question was raised.
|
|
14
|
+
*/
|
|
15
|
+
createdAtMs?: number | null;
|
|
16
|
+
/**
|
|
17
|
+
* `deferred_questions.id`.
|
|
18
|
+
*/
|
|
19
|
+
id: string;
|
|
20
|
+
/**
|
|
21
|
+
* The question text, as shown to the user.
|
|
22
|
+
*/
|
|
23
|
+
question: string;
|
|
24
|
+
/**
|
|
25
|
+
* Risk level the asking agent assigned ("low" | "medium" | "high").
|
|
26
|
+
*/
|
|
27
|
+
riskLevel?: string | null;
|
|
28
|
+
/**
|
|
29
|
+
* The session that asked.
|
|
30
|
+
*/
|
|
31
|
+
taskRunId: string;
|
|
32
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
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 { ProcessState } from "./ProcessState";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A managed process attributed to a project, reduced to what the dashboard
|
|
12
|
+
* renders. Full detail stays in `ProcessStatus` / `ProcessConfig`.
|
|
13
|
+
*/
|
|
14
|
+
export interface ProcessStatusLite {
|
|
15
|
+
/**
|
|
16
|
+
* Working directory — the field that attributed this process to the
|
|
17
|
+
* project in the first place.
|
|
18
|
+
*/
|
|
19
|
+
cwd: string;
|
|
20
|
+
/**
|
|
21
|
+
* Health port, when the process declares one.
|
|
22
|
+
*/
|
|
23
|
+
healthPort?: number | null;
|
|
24
|
+
/**
|
|
25
|
+
* `ProcessConfig.id`.
|
|
26
|
+
*/
|
|
27
|
+
id: string;
|
|
28
|
+
/**
|
|
29
|
+
* Human-readable process name ("Website").
|
|
30
|
+
*/
|
|
31
|
+
name: string;
|
|
32
|
+
/**
|
|
33
|
+
* Whether the health port is currently responding. `None` when the
|
|
34
|
+
* process declares no health port.
|
|
35
|
+
*/
|
|
36
|
+
portHealthy?: boolean | null;
|
|
37
|
+
state: ProcessState;
|
|
38
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
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 { GitCommitLite } from "./GitCommitLite";
|
|
9
|
+
import type { GitLite } from "./GitLite";
|
|
10
|
+
import type { HealthLevel } from "./HealthLevel";
|
|
11
|
+
import type { HealthLite } from "./HealthLite";
|
|
12
|
+
import type { PendingQuestion } from "./PendingQuestion";
|
|
13
|
+
import type { ProcessState } from "./ProcessState";
|
|
14
|
+
import type { ProcessStatusLite } from "./ProcessStatusLite";
|
|
15
|
+
import type { SavedProject } from "./SavedProject";
|
|
16
|
+
import type { SessionLite } from "./SessionLite";
|
|
17
|
+
import type { SessionSource } from "./SessionSource";
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The joined dashboard view of one project.
|
|
21
|
+
*
|
|
22
|
+
* Every field on both the grid card and the detail page is a projection of
|
|
23
|
+
* this single struct — computed server-side in one call so the page never
|
|
24
|
+
* fans out.
|
|
25
|
+
*/
|
|
26
|
+
export interface ProjectSnapshot {
|
|
27
|
+
/**
|
|
28
|
+
* Git state of the root, when it is a git working tree.
|
|
29
|
+
*/
|
|
30
|
+
git?: GitLite | null;
|
|
31
|
+
/**
|
|
32
|
+
* The project's traffic light.
|
|
33
|
+
*/
|
|
34
|
+
health?: HealthLite & {};
|
|
35
|
+
/**
|
|
36
|
+
* Unix epoch milliseconds of the newest activity of any kind.
|
|
37
|
+
*/
|
|
38
|
+
lastActivityMs?: number | null;
|
|
39
|
+
/**
|
|
40
|
+
* Live terminal sessions whose `working_dir` is under the project root.
|
|
41
|
+
*/
|
|
42
|
+
liveSessions: SessionLite[];
|
|
43
|
+
/**
|
|
44
|
+
* Managed processes whose `cwd` is under the project root.
|
|
45
|
+
*/
|
|
46
|
+
processes: ProcessStatusLite[];
|
|
47
|
+
project: SavedProject;
|
|
48
|
+
/**
|
|
49
|
+
* Questions waiting on the user, from `deferred_questions`.
|
|
50
|
+
*/
|
|
51
|
+
questions: PendingQuestion[];
|
|
52
|
+
/**
|
|
53
|
+
* Recent AI sessions, newest first, attributed via
|
|
54
|
+
* `coord.session_touched_files`.
|
|
55
|
+
*/
|
|
56
|
+
recentSessions: SessionLite[];
|
|
57
|
+
/**
|
|
58
|
+
* Rolling 7-day spend attributed to this project, in USD. `None` when
|
|
59
|
+
* cost data is unavailable — distinct from `Some(0.0)`, which means
|
|
60
|
+
* "measured, and it was free".
|
|
61
|
+
*/
|
|
62
|
+
spend7dUsd?: number | null;
|
|
63
|
+
}
|
|
@@ -7,8 +7,32 @@
|
|
|
7
7
|
|
|
8
8
|
export interface RegisterAppRequest {
|
|
9
9
|
appId: string;
|
|
10
|
+
/**
|
|
11
|
+
* Whether this app requires authentication before spec checks.
|
|
12
|
+
*/
|
|
13
|
+
authRequired: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Build command for "pull_build" strategy. Optional.
|
|
16
|
+
*/
|
|
17
|
+
buildCommand?: string | null;
|
|
10
18
|
displayName: string;
|
|
19
|
+
/**
|
|
20
|
+
* Red threshold for spec match rates. Defaults to 0.5.
|
|
21
|
+
*/
|
|
22
|
+
redThreshold: number;
|
|
11
23
|
repoRoot: string;
|
|
24
|
+
/**
|
|
25
|
+
* Start command to restart after build. Optional.
|
|
26
|
+
*/
|
|
27
|
+
startCommand?: string | null;
|
|
12
28
|
uiBridgeUrl: string;
|
|
29
|
+
/**
|
|
30
|
+
* Auto-fresh update strategy (P3 fleet-fresh engine). Defaults to "pull_only".
|
|
31
|
+
*/
|
|
32
|
+
updateStrategy: string;
|
|
33
|
+
/**
|
|
34
|
+
* Yellow threshold for spec match rates. Defaults to 0.8.
|
|
35
|
+
*/
|
|
36
|
+
yellowThreshold: number;
|
|
13
37
|
[k: string]: unknown;
|
|
14
38
|
}
|