@qontinui/shared-types 2.3.0 → 2.4.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/glossary.cjs +16 -16
- package/dist/glossary.cjs.map +1 -1
- package/dist/glossary.d.cts +1 -1
- package/dist/glossary.d.ts +1 -1
- package/dist/glossary.js +16 -16
- package/dist/glossary.js.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +375 -1
- package/dist/index.d.ts +375 -1
- package/dist/scheduler.d.cts +19 -0
- package/dist/scheduler.d.ts +19 -0
- package/package.json +1 -1
- package/src/generated/CacheProvenance.d.ts +31 -0
- package/src/generated/ImageSlotSpec.d.ts +373 -0
- package/src/generated/Observation.d.ts +48 -0
- package/src/generated/ObservationCoverage.d.ts +37 -0
- package/src/generated/ObservationStatus.d.ts +11 -0
- package/src/generated/Producer.d.ts +21 -0
- package/src/generated/Provenance.d.ts +54 -0
- package/src/generated/ScheduledTaskType.d.ts +19 -0
- package/src/generated/UnknownCode.d.ts +26 -0
- package/src/generated/UnknownInfo.d.ts +22 -0
- package/src/generated/UnmeasuredDimension.d.ts +25 -0
- package/src/generated/index.ts +10 -0
- package/src/glossary/generated.ts +16 -16
- package/src/index.ts +6 -0
|
@@ -20,9 +20,9 @@ export interface GlossaryEntry<Id extends GlossaryTerm = GlossaryTerm> {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/** The glossary's `version` (glossary/terms.toml). */
|
|
23
|
-
export const GLOSSARY_VERSION: number =
|
|
23
|
+
export const GLOSSARY_VERSION: number = 2;
|
|
24
24
|
/** SHA-256 of the canonical glossary content (the parsed terms as JSON; see glossary/versions.lock). */
|
|
25
|
-
export const GLOSSARY_CONTENT_SHA256 = "
|
|
25
|
+
export const GLOSSARY_CONTENT_SHA256 = "9f0bb2a99e2b2cee5c4ec306724fc225ecfc8ad93fa29bd38411a343fc519981";
|
|
26
26
|
|
|
27
27
|
/** Every term id, in glossary order. */
|
|
28
28
|
export const GLOSSARY_TERMS: readonly GlossaryTerm[] = [
|
|
@@ -61,7 +61,7 @@ export const GLOSSARY: { readonly [Id in GlossaryTerm]: GlossaryEntry<Id> } = {
|
|
|
61
61
|
id: "gate",
|
|
62
62
|
term: "Gate",
|
|
63
63
|
short: "A watched record of work that stopped because it is waiting on something observable; it resumes by itself when the condition clears.",
|
|
64
|
-
long: "A **gate** turns \"I am blocked\" into something the product watches. It has a typed predicate (a pull request landed, CI went green, a deploy is healthy, a claim ended, an operator approved, a time elapsed, and more) that is re-checked on a schedule.\n\nVerdicts: **open**, **cleared**, **failed** (the event happened the wrong way), **misconfigured** (can never be evaluated) and **withdrawn**. When the evaluator cannot answer, the gate stays open with a reason rather than guessing.\n\nVerbs: *register* creates a gate, *attest* clears an approval gate, *withdraw* retires it with a reason. A gate can carry a **continuation** that runs when it clears.",
|
|
64
|
+
long: "A **gate** turns \"I am blocked\" into something the product watches. It has a typed predicate (a pull request landed, CI went green, a deploy is healthy, a claim ended, an operator approved, a time elapsed, and more) that is re-checked on a schedule.\n\nVerdicts: **open**, **cleared**, **failed** (the event happened the wrong way), **misconfigured** (can never be evaluated) and **withdrawn**. When the evaluator cannot answer, the gate stays open with a reason rather than guessing. If it stays unanswerable for a sustained stretch (at least five checks in a row over at least 90 minutes), the gate ends **failed** and must be registered again.\n\nVerbs: *register* creates a gate, *attest* clears an approval gate, *withdraw* retires it with a reason. A gate can carry a **continuation** that runs when it clears.",
|
|
65
65
|
see_also: ["continuation", "attestation", "work_unit", "unknown"],
|
|
66
66
|
since: 1,
|
|
67
67
|
},
|
|
@@ -76,17 +76,17 @@ export const GLOSSARY: { readonly [Id in GlossaryTerm]: GlossaryEntry<Id> } = {
|
|
|
76
76
|
"attestation": {
|
|
77
77
|
id: "attestation",
|
|
78
78
|
term: "Attestation",
|
|
79
|
-
short: "A declaration by an agent or a person that
|
|
80
|
-
long: "An **attestation** clears a gate whose predicate is an approval rather than something the product can observe by itself.\n\nWho may attest is decided per gate class by its clearance authority: *operator only*, *an agent other than the author* (separation of duties), or *any agent* in the tenant. Gates addressed to agents can by default be attested by any agent; gates addressed to the operator need a human approval.\n\
|
|
81
|
-
see_also: ["gate", "operator", "tenant"],
|
|
79
|
+
short: "A recorded declaration by an agent or a person: that an approval gate's condition is met or can never be met, or that a work unit reached a judged status.",
|
|
80
|
+
long: "An **attestation** clears a gate whose predicate is an approval rather than something the product can observe by itself.\n\nWho may attest is decided per gate class by its clearance authority: *operator only*, *an agent other than the author* (separation of duties: another machine counts; on the same machine, only a different agent session counts, and when that cannot be shown the attester is treated as the author), or *any agent* in the tenant. Gates addressed to agents can by default be attested by any agent; gates addressed to the operator need a human approval.\n\nAn attestation can also say the condition can **never** be met; that ends the gate **failed**, with the reason recorded. Force-clearing a gate that can no longer clear on its own is a separate action, checked against the same authority.\n\nWork units are attested too: the judged statuses (*vetted*, *superseded*, *obsolete*) are normally accepted only from someone other than the unit's owner, or with a recorded declaration of how the attester is independent of the author.",
|
|
81
|
+
see_also: ["gate", "work_unit", "operator", "tenant"],
|
|
82
82
|
since: 1,
|
|
83
83
|
},
|
|
84
84
|
"work_unit": {
|
|
85
85
|
id: "work_unit",
|
|
86
86
|
term: "Work unit",
|
|
87
87
|
short: "The durable record of one piece of work: a slug with a status, an owner, the pull requests that implement it, and its dependencies.",
|
|
88
|
-
long: "A **work unit** is how the product tracks a piece of work over its whole life, independent of any file. It carries a status, an owner, **citations** (the pull requests that implement it), dependency edges and free-form metadata.\n\nEvery status change is kept in its history, and gates can wait on a work unit reaching a status.
|
|
89
|
-
see_also: ["plan", "gate", "tier", "claim"],
|
|
88
|
+
long: "A **work unit** is how the product tracks a piece of work over its whole life, independent of any file. It carries a status, an owner, **citations** (the pull requests that implement it), dependency edges and free-form metadata.\n\nEvery status change is kept in its history, and gates can wait on a work unit reaching a status. Statuses come in three kinds:\n\n- **derived**: *ready* (vetted, with at least one gate and all of its remaining gates cleared) and *shipped* (at least one cited pull request landed and no citation is still open; taken back if that stops holding) are set only by the service when it derives them; they cannot be written directly.\n- **attested**: *vetted*, *superseded* and *obsolete* need an **attestation**, normally from someone other than the unit's owner.\n- **free**: `draft`, `in_progress`, `blocked` or any other word, stored exactly as written. Read an unrecognized word as its writer's label, not a state the product tracks.\n\nWhen plans are enabled, each plan's status is mirrored into a work unit.",
|
|
89
|
+
see_also: ["plan", "gate", "attestation", "tier", "claim"],
|
|
90
90
|
since: 1,
|
|
91
91
|
},
|
|
92
92
|
"plan": {
|
|
@@ -108,9 +108,9 @@ export const GLOSSARY: { readonly [Id in GlossaryTerm]: GlossaryEntry<Id> } = {
|
|
|
108
108
|
"tier": {
|
|
109
109
|
id: "tier",
|
|
110
110
|
term: "Tier",
|
|
111
|
-
short: "A level in one of
|
|
112
|
-
long: "**Tier** names a level in
|
|
113
|
-
see_also: ["claim", "work_unit", "plan", "policy", "clause"],
|
|
111
|
+
short: "A level in one of several separate ladders: coordination, the autonomy dial, clause permission, agent write access, or runner account.",
|
|
112
|
+
long: "**Tier** names a level in several separate ladders; read which one from context.\n\n1. **Coordination tiers** stack: *claims* (who is touching what, always on), then *work units* (the durable record of work), then *plan files* (optional; enabled by configuring a plans folder). A tenant with no plan files loses very little.\n2. **The autonomy dial** says how far agents may go on security-sensitive work: *proceed*, *draft required* (open a draft behind an approval gate) or *ask first*.\n3. **Clause tiers** mark what one policy clause permits: *proceed*, *proceed and log*, *proceed and notify*, *ask first* or *never*.\n4. **Agent write tiers** say whether agents may edit a prompt document: *deny*, *allow* or *allow with notification*.\n5. **Runner account tiers**: *Tier 0* uses local AI only, *Tier 1* your own provider keys, *Tier 2* is signed in to a Qontinui account, which multi-machine coordination needs.",
|
|
113
|
+
see_also: ["claim", "work_unit", "plan", "policy", "clause", "runner"],
|
|
114
114
|
since: 1,
|
|
115
115
|
},
|
|
116
116
|
"merge_train": {
|
|
@@ -220,8 +220,8 @@ export const GLOSSARY: { readonly [Id in GlossaryTerm]: GlossaryEntry<Id> } = {
|
|
|
220
220
|
"tenant": {
|
|
221
221
|
id: "tenant",
|
|
222
222
|
term: "Tenant",
|
|
223
|
-
short: "The isolation boundary that owns
|
|
224
|
-
long: "A **tenant** is the unit of ownership and isolation.
|
|
223
|
+
short: "The isolation boundary that owns gates, work units, policies and memory; devices and repositories can belong to several. Shown as a Project in the app.",
|
|
224
|
+
long: "A **tenant** is the unit of ownership and isolation. Gates, work units, findings, policies and intent documents each belong to exactly one tenant, and every read and write is scoped to the tenant resolved from the caller's identity.\n\nA device can be bound to more than one tenant, and a repository can be registered under more than one. Each credential names one tenant. Where a request leaves the choice open, the service either refuses it as ambiguous or, where that check is not switched on, falls back to the device's default tenant.\n\nThe web app calls a tenant a **Project**, and users can create their own. The merge train lands changes automatically only where the tenant has automatic merging enabled, the repository has merging enabled, and the tenant has not paused merging; a tenant-wide pause overrides every repository.",
|
|
225
225
|
see_also: ["device", "operator", "policy", "intent_document"],
|
|
226
226
|
since: 1,
|
|
227
227
|
},
|
|
@@ -229,7 +229,7 @@ export const GLOSSARY: { readonly [Id in GlossaryTerm]: GlossaryEntry<Id> } = {
|
|
|
229
229
|
id: "device",
|
|
230
230
|
term: "Device",
|
|
231
231
|
short: "A registered machine running the runner. Pairing links it to your account and issues the credential it uses.",
|
|
232
|
-
long: "A **device** is a machine (or runner instance) the product knows by its device id. The id is an identifier, not a secret.\n\n**Pairing** links a device to a person who belongs to the tenant: a short-lived pairing token is completed by that person, and the device is issued its own credential. On authenticated requests the service works out the
|
|
232
|
+
long: "A **device** is a machine (or runner instance) the product knows by its device id. The id is an identifier, not a secret.\n\n**Pairing** links a device to a person who belongs to the tenant: a short-lived pairing token is completed by that person, and the device is issued its own credential. On authenticated requests the service works out the tenant from that credential rather than from anything the device asserts. A device may be paired into several tenants; each credential carries one of them.\n\nWork is sent only to devices that are paired, heartbeating, capable of the work and not drained.",
|
|
233
233
|
see_also: ["tenant", "runner", "drain"],
|
|
234
234
|
since: 1,
|
|
235
235
|
},
|
|
@@ -252,8 +252,8 @@ export const GLOSSARY: { readonly [Id in GlossaryTerm]: GlossaryEntry<Id> } = {
|
|
|
252
252
|
"worktree_allocation": {
|
|
253
253
|
id: "worktree_allocation",
|
|
254
254
|
term: "Worktree allocation",
|
|
255
|
-
short: "Asking the service
|
|
256
|
-
long: "A **worktree allocation** gives an agent its own git worktree for each repository it needs, on a branch reserved for that agent, and records what the agent intends to do there so overlapping work is visible.\n\
|
|
255
|
+
short: "Asking the service where an agent should work: usually its own isolated working copy on a reserved branch, so parallel agents do not collide.",
|
|
256
|
+
long: "A **worktree allocation** gives an agent its own git worktree for each repository it needs, on a branch reserved for that agent, and records what the agent intends to do there so overlapping work is visible.\n\nThe answer is one of three: a separate **worktree** (the usual case); a **shared branch**, meaning work on the reserved branch inside the main checkout, used only when the agent's tools support working safely in the shared checkout; or *wait* when the machine's isolation budget is used up. A refused allocation records nothing. Repositories a checkout builds against are allocated beside it automatically.\n\nEvery successful allocation creates a record, so never make one just to test whether the service is reachable.",
|
|
257
257
|
see_also: ["claim", "agent_session", "device"],
|
|
258
258
|
since: 1,
|
|
259
259
|
},
|
package/src/index.ts
CHANGED
|
@@ -26,6 +26,12 @@ export type { PendingQuestion } from "./generated/PendingQuestion";
|
|
|
26
26
|
export type { HealthLite } from "./generated/HealthLite";
|
|
27
27
|
export type { HealthLevel } from "./generated/HealthLevel";
|
|
28
28
|
|
|
29
|
+
// Image-slot specs — the declared contract of one image placement (plan
|
|
30
|
+
// 2026-10-13-image-generation-and-visual-judgment, Phase 14). Generated from
|
|
31
|
+
// `rust/src/image_slot.rs`. Its `ImageSlot*` sub-types are declared inside
|
|
32
|
+
// `ImageSlotSpec.d.ts`; reach one by indexed access (`ImageSlotSpec["aspect"]`).
|
|
33
|
+
export type { ImageSlotSpec } from "./generated/ImageSlotSpec";
|
|
34
|
+
|
|
29
35
|
// State discovery types
|
|
30
36
|
export * from "./discovery";
|
|
31
37
|
|