@h-rig/contracts 0.0.6-alpha.131 → 0.0.6-alpha.133
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 +2206 -1386
- package/dist/index.mjs +2206 -1386
- package/dist/src/config.d.ts +156 -0
- package/dist/src/config.js +1566 -178
- package/dist/src/drift.d.ts +28 -0
- package/dist/src/drift.js +69 -0
- package/dist/src/engine.js +108 -0
- package/dist/src/graph.d.ts +284 -0
- package/dist/src/graph.js +121 -1
- package/dist/src/help-catalog.js +78 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.js +2206 -1386
- package/dist/src/kernel.d.ts +238 -0
- package/dist/src/kernel.js +284 -0
- package/dist/src/planning.d.ts +64 -0
- package/dist/src/planning.js +90 -0
- package/dist/src/plugin-hooks.js +318 -76
- package/dist/src/plugin.d.ts +92 -0
- package/dist/src/plugin.js +308 -64
- package/dist/src/rig.js +108 -0
- package/dist/src/rollups.d.ts +41 -0
- package/dist/src/rollups.js +70 -0
- package/dist/src/run-journal.d.ts +22 -21
- package/dist/src/run-journal.js +3 -1
- package/dist/src/run-session-journal.js +4 -2
- package/dist/src/stage.d.ts +245 -0
- package/dist/src/stage.js +169 -0
- package/dist/src/supervisor-journal.d.ts +205 -0
- package/dist/src/supervisor-journal.js +1246 -0
- package/dist/src/task-source.d.ts +9 -0
- package/dist/src/ws.js +108 -0
- package/package.json +45 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
export declare const DriftKind: Schema.Literals<readonly ["deleted-reference", "stale-anchor", "semantic-mismatch", "issue-mismatch"]>;
|
|
3
|
+
export type DriftKind = typeof DriftKind.Type;
|
|
4
|
+
export declare const DriftConfidence: Schema.Literals<readonly ["high", "medium", "low"]>;
|
|
5
|
+
export type DriftConfidence = typeof DriftConfidence.Type;
|
|
6
|
+
export declare const DriftFinding: Schema.Struct<{
|
|
7
|
+
readonly kind: Schema.Literals<readonly ["deleted-reference", "stale-anchor", "semantic-mismatch", "issue-mismatch"]>;
|
|
8
|
+
readonly docPath: Schema.Trim;
|
|
9
|
+
readonly line: Schema.NullOr<Schema.Int>;
|
|
10
|
+
readonly reference: Schema.NullOr<Schema.Trim>;
|
|
11
|
+
readonly detail: Schema.String;
|
|
12
|
+
readonly confidence: Schema.Literals<readonly ["high", "medium", "low"]>;
|
|
13
|
+
}>;
|
|
14
|
+
export type DriftFinding = typeof DriftFinding.Type;
|
|
15
|
+
export declare const DriftReport: Schema.Struct<{
|
|
16
|
+
readonly generatedAt: Schema.String;
|
|
17
|
+
readonly scanned: Schema.Int;
|
|
18
|
+
readonly degraded: Schema.Boolean;
|
|
19
|
+
readonly findings: Schema.$Array<Schema.Struct<{
|
|
20
|
+
readonly kind: Schema.Literals<readonly ["deleted-reference", "stale-anchor", "semantic-mismatch", "issue-mismatch"]>;
|
|
21
|
+
readonly docPath: Schema.Trim;
|
|
22
|
+
readonly line: Schema.NullOr<Schema.Int>;
|
|
23
|
+
readonly reference: Schema.NullOr<Schema.Trim>;
|
|
24
|
+
readonly detail: Schema.String;
|
|
25
|
+
readonly confidence: Schema.Literals<readonly ["high", "medium", "low"]>;
|
|
26
|
+
}>>;
|
|
27
|
+
}>;
|
|
28
|
+
export type DriftReport = typeof DriftReport.Type;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// packages/contracts/src/drift.ts
|
|
3
|
+
import { Schema as Schema2 } from "effect";
|
|
4
|
+
|
|
5
|
+
// packages/contracts/src/baseSchemas.ts
|
|
6
|
+
import { Schema } from "effect";
|
|
7
|
+
var TrimmedString = Schema.Trim;
|
|
8
|
+
var TrimmedNonEmptyString = TrimmedString.check(Schema.isNonEmpty());
|
|
9
|
+
var NonNegativeInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0));
|
|
10
|
+
var PositiveInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1));
|
|
11
|
+
var IsoDateTime = Schema.String;
|
|
12
|
+
var makeEntityId = (brand) => TrimmedNonEmptyString.pipe(Schema.brand(brand));
|
|
13
|
+
var ThreadId = makeEntityId("ThreadId");
|
|
14
|
+
var ProjectId = makeEntityId("ProjectId");
|
|
15
|
+
var WorkspaceId = makeEntityId("WorkspaceId");
|
|
16
|
+
var GraphId = makeEntityId("GraphId");
|
|
17
|
+
var TaskId = makeEntityId("TaskId");
|
|
18
|
+
var RunId = makeEntityId("RunId");
|
|
19
|
+
var SafePathSegment = TrimmedNonEmptyString.check(Schema.isPattern(/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/)).pipe(Schema.brand("SafePathSegment"));
|
|
20
|
+
var SafeRunId = TrimmedNonEmptyString.check(Schema.isPattern(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/)).pipe(Schema.brand("SafeRunId"));
|
|
21
|
+
var SafeGitRefComponent = TrimmedNonEmptyString.check(Schema.isPattern(/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/)).pipe(Schema.brand("SafeGitRefComponent"));
|
|
22
|
+
var EngineRuntimeId = makeEntityId("EngineRuntimeId");
|
|
23
|
+
var ConversationId = makeEntityId("ConversationId");
|
|
24
|
+
var ActionId = makeEntityId("ActionId");
|
|
25
|
+
var ArtifactId = makeEntityId("ArtifactId");
|
|
26
|
+
var WorktreeId = makeEntityId("WorktreeId");
|
|
27
|
+
var ValidationResultId = makeEntityId("ValidationResultId");
|
|
28
|
+
var ReviewResultId = makeEntityId("ReviewResultId");
|
|
29
|
+
var CommandId = makeEntityId("CommandId");
|
|
30
|
+
var EventId = makeEntityId("EventId");
|
|
31
|
+
var MessageId = makeEntityId("MessageId");
|
|
32
|
+
var TurnId = makeEntityId("TurnId");
|
|
33
|
+
var ProviderItemId = makeEntityId("ProviderItemId");
|
|
34
|
+
var RuntimeSessionId = makeEntityId("RuntimeSessionId");
|
|
35
|
+
var RuntimeItemId = makeEntityId("RuntimeItemId");
|
|
36
|
+
var RuntimeRequestId = makeEntityId("RuntimeRequestId");
|
|
37
|
+
var RuntimeTaskId = makeEntityId("RuntimeTaskId");
|
|
38
|
+
var ApprovalRequestId = makeEntityId("ApprovalRequestId");
|
|
39
|
+
var CheckpointRef = makeEntityId("CheckpointRef");
|
|
40
|
+
var RemoteEndpointId = makeEntityId("RemoteEndpointId");
|
|
41
|
+
|
|
42
|
+
// packages/contracts/src/drift.ts
|
|
43
|
+
var DriftKind = Schema2.Literals([
|
|
44
|
+
"deleted-reference",
|
|
45
|
+
"stale-anchor",
|
|
46
|
+
"semantic-mismatch",
|
|
47
|
+
"issue-mismatch"
|
|
48
|
+
]);
|
|
49
|
+
var DriftConfidence = Schema2.Literals(["high", "medium", "low"]);
|
|
50
|
+
var DriftFinding = Schema2.Struct({
|
|
51
|
+
kind: DriftKind,
|
|
52
|
+
docPath: TrimmedNonEmptyString,
|
|
53
|
+
line: Schema2.NullOr(PositiveInt),
|
|
54
|
+
reference: Schema2.NullOr(TrimmedNonEmptyString),
|
|
55
|
+
detail: Schema2.String,
|
|
56
|
+
confidence: DriftConfidence
|
|
57
|
+
});
|
|
58
|
+
var DriftReport = Schema2.Struct({
|
|
59
|
+
generatedAt: IsoDateTime,
|
|
60
|
+
scanned: NonNegativeInt,
|
|
61
|
+
degraded: Schema2.Boolean,
|
|
62
|
+
findings: Schema2.Array(DriftFinding)
|
|
63
|
+
});
|
|
64
|
+
export {
|
|
65
|
+
DriftReport,
|
|
66
|
+
DriftKind,
|
|
67
|
+
DriftFinding,
|
|
68
|
+
DriftConfidence
|
|
69
|
+
};
|
package/dist/src/engine.js
CHANGED
|
@@ -139,6 +139,114 @@ var QueueEntry = Schema3.Struct({
|
|
|
139
139
|
unblockCount: NonNegativeInt,
|
|
140
140
|
position: NonNegativeInt
|
|
141
141
|
});
|
|
142
|
+
var DependencyEdgeType = Schema3.Literals(["blocks", "parent-child", "related"]);
|
|
143
|
+
var DependencyEdge = Schema3.Struct({
|
|
144
|
+
fromTaskId: TaskId,
|
|
145
|
+
toTaskId: TaskId,
|
|
146
|
+
type: DependencyEdgeType
|
|
147
|
+
});
|
|
148
|
+
var BlockerClass = Schema3.Literals([
|
|
149
|
+
"not-blocked",
|
|
150
|
+
"task-blocked",
|
|
151
|
+
"human-decision",
|
|
152
|
+
"human-approval",
|
|
153
|
+
"external-input",
|
|
154
|
+
"unknown"
|
|
155
|
+
]);
|
|
156
|
+
var ActionRiskTier = Schema3.Literals(["t1-read", "t2-reversible", "t3-external", "t4-irreversible"]);
|
|
157
|
+
var BlockerClassification = Schema3.Struct({
|
|
158
|
+
taskId: TaskId,
|
|
159
|
+
blockerClass: BlockerClass,
|
|
160
|
+
actionRiskTier: Schema3.NullOr(ActionRiskTier),
|
|
161
|
+
rationale: Schema3.String,
|
|
162
|
+
source: Schema3.Literals(["elimination", "label", "status", "llm"]),
|
|
163
|
+
autoApplied: Schema3.Boolean
|
|
164
|
+
});
|
|
165
|
+
var DependencyNode = Schema3.Struct({
|
|
166
|
+
taskId: TaskId,
|
|
167
|
+
title: TrimmedNonEmptyString,
|
|
168
|
+
status: TaskStatus,
|
|
169
|
+
priority: Schema3.NullOr(PositiveInt),
|
|
170
|
+
assignee: Schema3.NullOr(TrimmedNonEmptyString),
|
|
171
|
+
blockedBy: Schema3.Array(TaskId),
|
|
172
|
+
blocks: Schema3.Array(TaskId),
|
|
173
|
+
blockingDepth: NonNegativeInt,
|
|
174
|
+
blockerClass: Schema3.NullOr(BlockerClass),
|
|
175
|
+
actionRiskTier: Schema3.NullOr(ActionRiskTier),
|
|
176
|
+
epicKey: Schema3.NullOr(TrimmedNonEmptyString),
|
|
177
|
+
groupKey: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
|
|
178
|
+
externalId: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
|
|
179
|
+
sourceIssueId: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
|
|
180
|
+
scope: Schema3.optional(Schema3.Array(TrimmedNonEmptyString)),
|
|
181
|
+
validationKeys: Schema3.optional(Schema3.Array(TrimmedNonEmptyString))
|
|
182
|
+
});
|
|
183
|
+
var TaskGraphLane = Schema3.Struct({
|
|
184
|
+
key: TrimmedNonEmptyString,
|
|
185
|
+
label: TrimmedNonEmptyString,
|
|
186
|
+
rowIndex: NonNegativeInt,
|
|
187
|
+
x: Schema3.Number,
|
|
188
|
+
y: Schema3.Number,
|
|
189
|
+
width: NonNegativeInt,
|
|
190
|
+
height: NonNegativeInt,
|
|
191
|
+
color: Schema3.String,
|
|
192
|
+
taskCount: NonNegativeInt
|
|
193
|
+
});
|
|
194
|
+
var TaskGraphStage = Schema3.Struct({
|
|
195
|
+
index: NonNegativeInt,
|
|
196
|
+
label: TrimmedNonEmptyString,
|
|
197
|
+
x: Schema3.Number,
|
|
198
|
+
width: NonNegativeInt
|
|
199
|
+
});
|
|
200
|
+
var TaskGraphNode = Schema3.Struct({
|
|
201
|
+
id: TrimmedNonEmptyString,
|
|
202
|
+
taskId: TaskId,
|
|
203
|
+
task: Schema3.optional(TaskSummary),
|
|
204
|
+
rowKey: TrimmedNonEmptyString,
|
|
205
|
+
rowLabel: TrimmedNonEmptyString,
|
|
206
|
+
rowIndex: NonNegativeInt,
|
|
207
|
+
stage: NonNegativeInt,
|
|
208
|
+
x: Schema3.Number,
|
|
209
|
+
y: Schema3.Number,
|
|
210
|
+
width: NonNegativeInt,
|
|
211
|
+
height: NonNegativeInt,
|
|
212
|
+
color: Schema3.optional(Schema3.String),
|
|
213
|
+
taskCode: Schema3.optional(Schema3.NullOr(Schema3.String)),
|
|
214
|
+
strippedTitle: Schema3.optional(Schema3.String),
|
|
215
|
+
depsIn: Schema3.optional(NonNegativeInt),
|
|
216
|
+
depsOut: Schema3.optional(NonNegativeInt),
|
|
217
|
+
runCount: Schema3.optional(NonNegativeInt),
|
|
218
|
+
hasApprovals: Schema3.optional(Schema3.Boolean),
|
|
219
|
+
hasPendingUserInput: Schema3.optional(Schema3.Boolean),
|
|
220
|
+
hasRejectedReview: Schema3.optional(Schema3.Boolean),
|
|
221
|
+
hasFailedValidations: Schema3.optional(Schema3.Boolean),
|
|
222
|
+
artifactCount: Schema3.optional(NonNegativeInt)
|
|
223
|
+
});
|
|
224
|
+
var TaskGraphEdge = Schema3.Struct({
|
|
225
|
+
id: TrimmedNonEmptyString,
|
|
226
|
+
sourceId: TrimmedNonEmptyString,
|
|
227
|
+
targetId: TrimmedNonEmptyString,
|
|
228
|
+
color: Schema3.String,
|
|
229
|
+
kind: Schema3.Literals(["blocking", "parent-child"])
|
|
230
|
+
});
|
|
231
|
+
var TaskGraphLayout = Schema3.Struct({
|
|
232
|
+
lanes: Schema3.Array(TaskGraphLane),
|
|
233
|
+
stages: Schema3.Array(TaskGraphStage),
|
|
234
|
+
nodes: Schema3.Array(TaskGraphNode),
|
|
235
|
+
edges: Schema3.Array(TaskGraphEdge),
|
|
236
|
+
totalWidth: NonNegativeInt,
|
|
237
|
+
totalHeight: NonNegativeInt,
|
|
238
|
+
taskCount: NonNegativeInt
|
|
239
|
+
});
|
|
240
|
+
var DependencyGraphModel = Schema3.Struct({
|
|
241
|
+
graphId: GraphId,
|
|
242
|
+
nodes: Schema3.Array(DependencyNode),
|
|
243
|
+
edges: Schema3.Array(DependencyEdge),
|
|
244
|
+
layout: TaskGraphLayout,
|
|
245
|
+
cycles: Schema3.Array(Schema3.Array(TaskId)),
|
|
246
|
+
unresolvedRefs: Schema3.Array(TrimmedNonEmptyString),
|
|
247
|
+
degraded: Schema3.Boolean,
|
|
248
|
+
generatedAt: IsoDateTime
|
|
249
|
+
});
|
|
142
250
|
|
|
143
251
|
// packages/contracts/src/policy.ts
|
|
144
252
|
import { Schema as Schema4 } from "effect";
|
package/dist/src/graph.d.ts
CHANGED
|
@@ -37,3 +37,287 @@ export declare const QueueEntry: Schema.Struct<{
|
|
|
37
37
|
readonly position: Schema.Int;
|
|
38
38
|
}>;
|
|
39
39
|
export type QueueEntry = typeof QueueEntry.Type;
|
|
40
|
+
export declare const DependencyEdgeType: Schema.Literals<readonly ["blocks", "parent-child", "related"]>;
|
|
41
|
+
export type DependencyEdgeType = typeof DependencyEdgeType.Type;
|
|
42
|
+
export declare const DependencyEdge: Schema.Struct<{
|
|
43
|
+
readonly fromTaskId: Schema.brand<Schema.Trim, "TaskId">;
|
|
44
|
+
readonly toTaskId: Schema.brand<Schema.Trim, "TaskId">;
|
|
45
|
+
readonly type: Schema.Literals<readonly ["blocks", "parent-child", "related"]>;
|
|
46
|
+
}>;
|
|
47
|
+
export type DependencyEdge = typeof DependencyEdge.Type;
|
|
48
|
+
export declare const BlockerClass: Schema.Literals<readonly ["not-blocked", "task-blocked", "human-decision", "human-approval", "external-input", "unknown"]>;
|
|
49
|
+
export type BlockerClass = typeof BlockerClass.Type;
|
|
50
|
+
export declare const ActionRiskTier: Schema.Literals<readonly ["t1-read", "t2-reversible", "t3-external", "t4-irreversible"]>;
|
|
51
|
+
export type ActionRiskTier = typeof ActionRiskTier.Type;
|
|
52
|
+
export declare const BlockerClassification: Schema.Struct<{
|
|
53
|
+
readonly taskId: Schema.brand<Schema.Trim, "TaskId">;
|
|
54
|
+
readonly blockerClass: Schema.Literals<readonly ["not-blocked", "task-blocked", "human-decision", "human-approval", "external-input", "unknown"]>;
|
|
55
|
+
readonly actionRiskTier: Schema.NullOr<Schema.Literals<readonly ["t1-read", "t2-reversible", "t3-external", "t4-irreversible"]>>;
|
|
56
|
+
readonly rationale: Schema.String;
|
|
57
|
+
readonly source: Schema.Literals<readonly ["elimination", "label", "status", "llm"]>;
|
|
58
|
+
readonly autoApplied: Schema.Boolean;
|
|
59
|
+
}>;
|
|
60
|
+
export type BlockerClassification = typeof BlockerClassification.Type;
|
|
61
|
+
export declare const DependencyNode: Schema.Struct<{
|
|
62
|
+
readonly taskId: Schema.brand<Schema.Trim, "TaskId">;
|
|
63
|
+
readonly title: Schema.Trim;
|
|
64
|
+
readonly status: Schema.Literals<readonly ["draft", "open", "ready", "queued", "running", "in_progress", "under_review", "blocked", "unknown", "completed", "failed", "cancelled", "closed"]>;
|
|
65
|
+
readonly priority: Schema.NullOr<Schema.Int>;
|
|
66
|
+
readonly assignee: Schema.NullOr<Schema.Trim>;
|
|
67
|
+
readonly blockedBy: Schema.$Array<Schema.brand<Schema.Trim, "TaskId">>;
|
|
68
|
+
readonly blocks: Schema.$Array<Schema.brand<Schema.Trim, "TaskId">>;
|
|
69
|
+
readonly blockingDepth: Schema.Int;
|
|
70
|
+
readonly blockerClass: Schema.NullOr<Schema.Literals<readonly ["not-blocked", "task-blocked", "human-decision", "human-approval", "external-input", "unknown"]>>;
|
|
71
|
+
readonly actionRiskTier: Schema.NullOr<Schema.Literals<readonly ["t1-read", "t2-reversible", "t3-external", "t4-irreversible"]>>;
|
|
72
|
+
readonly epicKey: Schema.NullOr<Schema.Trim>;
|
|
73
|
+
readonly groupKey: Schema.optional<Schema.NullOr<Schema.Trim>>;
|
|
74
|
+
readonly externalId: Schema.optional<Schema.NullOr<Schema.Trim>>;
|
|
75
|
+
readonly sourceIssueId: Schema.optional<Schema.NullOr<Schema.Trim>>;
|
|
76
|
+
readonly scope: Schema.optional<Schema.$Array<Schema.Trim>>;
|
|
77
|
+
readonly validationKeys: Schema.optional<Schema.$Array<Schema.Trim>>;
|
|
78
|
+
}>;
|
|
79
|
+
export type DependencyNode = typeof DependencyNode.Type;
|
|
80
|
+
export declare const TaskGraphLane: Schema.Struct<{
|
|
81
|
+
readonly key: Schema.Trim;
|
|
82
|
+
readonly label: Schema.Trim;
|
|
83
|
+
readonly rowIndex: Schema.Int;
|
|
84
|
+
readonly x: Schema.Number;
|
|
85
|
+
readonly y: Schema.Number;
|
|
86
|
+
readonly width: Schema.Int;
|
|
87
|
+
readonly height: Schema.Int;
|
|
88
|
+
readonly color: Schema.String;
|
|
89
|
+
readonly taskCount: Schema.Int;
|
|
90
|
+
}>;
|
|
91
|
+
export type TaskGraphLane = typeof TaskGraphLane.Type;
|
|
92
|
+
export declare const TaskGraphStage: Schema.Struct<{
|
|
93
|
+
readonly index: Schema.Int;
|
|
94
|
+
readonly label: Schema.Trim;
|
|
95
|
+
readonly x: Schema.Number;
|
|
96
|
+
readonly width: Schema.Int;
|
|
97
|
+
}>;
|
|
98
|
+
export type TaskGraphStage = typeof TaskGraphStage.Type;
|
|
99
|
+
export declare const TaskGraphNode: Schema.Struct<{
|
|
100
|
+
readonly id: Schema.Trim;
|
|
101
|
+
readonly taskId: Schema.brand<Schema.Trim, "TaskId">;
|
|
102
|
+
readonly task: Schema.optional<Schema.Struct<{
|
|
103
|
+
readonly id: Schema.brand<Schema.Trim, "TaskId">;
|
|
104
|
+
readonly workspaceId: Schema.brand<Schema.Trim, "WorkspaceId">;
|
|
105
|
+
readonly graphId: Schema.NullOr<Schema.brand<Schema.Trim, "GraphId">>;
|
|
106
|
+
readonly externalId: Schema.NullOr<Schema.Trim>;
|
|
107
|
+
readonly title: Schema.Trim;
|
|
108
|
+
readonly description: Schema.String;
|
|
109
|
+
readonly status: Schema.Literals<readonly ["draft", "open", "ready", "queued", "running", "in_progress", "under_review", "blocked", "unknown", "completed", "failed", "cancelled", "closed"]>;
|
|
110
|
+
readonly priority: Schema.NullOr<Schema.Int>;
|
|
111
|
+
readonly role: Schema.NullOr<Schema.Trim>;
|
|
112
|
+
readonly scope: Schema.$Array<Schema.Trim>;
|
|
113
|
+
readonly validationKeys: Schema.$Array<Schema.Trim>;
|
|
114
|
+
readonly sourceIssueId: Schema.optional<Schema.NullOr<Schema.Trim>>;
|
|
115
|
+
readonly dependencies: Schema.optional<Schema.$Array<Schema.Trim>>;
|
|
116
|
+
readonly parentChildDeps: Schema.optional<Schema.$Array<Schema.Trim>>;
|
|
117
|
+
readonly metadata: Schema.Unknown;
|
|
118
|
+
readonly createdAt: Schema.String;
|
|
119
|
+
readonly updatedAt: Schema.String;
|
|
120
|
+
}>>;
|
|
121
|
+
readonly rowKey: Schema.Trim;
|
|
122
|
+
readonly rowLabel: Schema.Trim;
|
|
123
|
+
readonly rowIndex: Schema.Int;
|
|
124
|
+
readonly stage: Schema.Int;
|
|
125
|
+
readonly x: Schema.Number;
|
|
126
|
+
readonly y: Schema.Number;
|
|
127
|
+
readonly width: Schema.Int;
|
|
128
|
+
readonly height: Schema.Int;
|
|
129
|
+
readonly color: Schema.optional<Schema.String>;
|
|
130
|
+
readonly taskCode: Schema.optional<Schema.NullOr<Schema.String>>;
|
|
131
|
+
readonly strippedTitle: Schema.optional<Schema.String>;
|
|
132
|
+
readonly depsIn: Schema.optional<Schema.Int>;
|
|
133
|
+
readonly depsOut: Schema.optional<Schema.Int>;
|
|
134
|
+
readonly runCount: Schema.optional<Schema.Int>;
|
|
135
|
+
readonly hasApprovals: Schema.optional<Schema.Boolean>;
|
|
136
|
+
readonly hasPendingUserInput: Schema.optional<Schema.Boolean>;
|
|
137
|
+
readonly hasRejectedReview: Schema.optional<Schema.Boolean>;
|
|
138
|
+
readonly hasFailedValidations: Schema.optional<Schema.Boolean>;
|
|
139
|
+
readonly artifactCount: Schema.optional<Schema.Int>;
|
|
140
|
+
}>;
|
|
141
|
+
export type TaskGraphNode = typeof TaskGraphNode.Type;
|
|
142
|
+
export declare const TaskGraphEdge: Schema.Struct<{
|
|
143
|
+
readonly id: Schema.Trim;
|
|
144
|
+
readonly sourceId: Schema.Trim;
|
|
145
|
+
readonly targetId: Schema.Trim;
|
|
146
|
+
readonly color: Schema.String;
|
|
147
|
+
readonly kind: Schema.Literals<readonly ["blocking", "parent-child"]>;
|
|
148
|
+
}>;
|
|
149
|
+
export type TaskGraphEdge = typeof TaskGraphEdge.Type;
|
|
150
|
+
export declare const TaskGraphLayout: Schema.Struct<{
|
|
151
|
+
readonly lanes: Schema.$Array<Schema.Struct<{
|
|
152
|
+
readonly key: Schema.Trim;
|
|
153
|
+
readonly label: Schema.Trim;
|
|
154
|
+
readonly rowIndex: Schema.Int;
|
|
155
|
+
readonly x: Schema.Number;
|
|
156
|
+
readonly y: Schema.Number;
|
|
157
|
+
readonly width: Schema.Int;
|
|
158
|
+
readonly height: Schema.Int;
|
|
159
|
+
readonly color: Schema.String;
|
|
160
|
+
readonly taskCount: Schema.Int;
|
|
161
|
+
}>>;
|
|
162
|
+
readonly stages: Schema.$Array<Schema.Struct<{
|
|
163
|
+
readonly index: Schema.Int;
|
|
164
|
+
readonly label: Schema.Trim;
|
|
165
|
+
readonly x: Schema.Number;
|
|
166
|
+
readonly width: Schema.Int;
|
|
167
|
+
}>>;
|
|
168
|
+
readonly nodes: Schema.$Array<Schema.Struct<{
|
|
169
|
+
readonly id: Schema.Trim;
|
|
170
|
+
readonly taskId: Schema.brand<Schema.Trim, "TaskId">;
|
|
171
|
+
readonly task: Schema.optional<Schema.Struct<{
|
|
172
|
+
readonly id: Schema.brand<Schema.Trim, "TaskId">;
|
|
173
|
+
readonly workspaceId: Schema.brand<Schema.Trim, "WorkspaceId">;
|
|
174
|
+
readonly graphId: Schema.NullOr<Schema.brand<Schema.Trim, "GraphId">>;
|
|
175
|
+
readonly externalId: Schema.NullOr<Schema.Trim>;
|
|
176
|
+
readonly title: Schema.Trim;
|
|
177
|
+
readonly description: Schema.String;
|
|
178
|
+
readonly status: Schema.Literals<readonly ["draft", "open", "ready", "queued", "running", "in_progress", "under_review", "blocked", "unknown", "completed", "failed", "cancelled", "closed"]>;
|
|
179
|
+
readonly priority: Schema.NullOr<Schema.Int>;
|
|
180
|
+
readonly role: Schema.NullOr<Schema.Trim>;
|
|
181
|
+
readonly scope: Schema.$Array<Schema.Trim>;
|
|
182
|
+
readonly validationKeys: Schema.$Array<Schema.Trim>;
|
|
183
|
+
readonly sourceIssueId: Schema.optional<Schema.NullOr<Schema.Trim>>;
|
|
184
|
+
readonly dependencies: Schema.optional<Schema.$Array<Schema.Trim>>;
|
|
185
|
+
readonly parentChildDeps: Schema.optional<Schema.$Array<Schema.Trim>>;
|
|
186
|
+
readonly metadata: Schema.Unknown;
|
|
187
|
+
readonly createdAt: Schema.String;
|
|
188
|
+
readonly updatedAt: Schema.String;
|
|
189
|
+
}>>;
|
|
190
|
+
readonly rowKey: Schema.Trim;
|
|
191
|
+
readonly rowLabel: Schema.Trim;
|
|
192
|
+
readonly rowIndex: Schema.Int;
|
|
193
|
+
readonly stage: Schema.Int;
|
|
194
|
+
readonly x: Schema.Number;
|
|
195
|
+
readonly y: Schema.Number;
|
|
196
|
+
readonly width: Schema.Int;
|
|
197
|
+
readonly height: Schema.Int;
|
|
198
|
+
readonly color: Schema.optional<Schema.String>;
|
|
199
|
+
readonly taskCode: Schema.optional<Schema.NullOr<Schema.String>>;
|
|
200
|
+
readonly strippedTitle: Schema.optional<Schema.String>;
|
|
201
|
+
readonly depsIn: Schema.optional<Schema.Int>;
|
|
202
|
+
readonly depsOut: Schema.optional<Schema.Int>;
|
|
203
|
+
readonly runCount: Schema.optional<Schema.Int>;
|
|
204
|
+
readonly hasApprovals: Schema.optional<Schema.Boolean>;
|
|
205
|
+
readonly hasPendingUserInput: Schema.optional<Schema.Boolean>;
|
|
206
|
+
readonly hasRejectedReview: Schema.optional<Schema.Boolean>;
|
|
207
|
+
readonly hasFailedValidations: Schema.optional<Schema.Boolean>;
|
|
208
|
+
readonly artifactCount: Schema.optional<Schema.Int>;
|
|
209
|
+
}>>;
|
|
210
|
+
readonly edges: Schema.$Array<Schema.Struct<{
|
|
211
|
+
readonly id: Schema.Trim;
|
|
212
|
+
readonly sourceId: Schema.Trim;
|
|
213
|
+
readonly targetId: Schema.Trim;
|
|
214
|
+
readonly color: Schema.String;
|
|
215
|
+
readonly kind: Schema.Literals<readonly ["blocking", "parent-child"]>;
|
|
216
|
+
}>>;
|
|
217
|
+
readonly totalWidth: Schema.Int;
|
|
218
|
+
readonly totalHeight: Schema.Int;
|
|
219
|
+
readonly taskCount: Schema.Int;
|
|
220
|
+
}>;
|
|
221
|
+
export type TaskGraphLayout = typeof TaskGraphLayout.Type;
|
|
222
|
+
export declare const DependencyGraphModel: Schema.Struct<{
|
|
223
|
+
readonly graphId: Schema.brand<Schema.Trim, "GraphId">;
|
|
224
|
+
readonly nodes: Schema.$Array<Schema.Struct<{
|
|
225
|
+
readonly taskId: Schema.brand<Schema.Trim, "TaskId">;
|
|
226
|
+
readonly title: Schema.Trim;
|
|
227
|
+
readonly status: Schema.Literals<readonly ["draft", "open", "ready", "queued", "running", "in_progress", "under_review", "blocked", "unknown", "completed", "failed", "cancelled", "closed"]>;
|
|
228
|
+
readonly priority: Schema.NullOr<Schema.Int>;
|
|
229
|
+
readonly assignee: Schema.NullOr<Schema.Trim>;
|
|
230
|
+
readonly blockedBy: Schema.$Array<Schema.brand<Schema.Trim, "TaskId">>;
|
|
231
|
+
readonly blocks: Schema.$Array<Schema.brand<Schema.Trim, "TaskId">>;
|
|
232
|
+
readonly blockingDepth: Schema.Int;
|
|
233
|
+
readonly blockerClass: Schema.NullOr<Schema.Literals<readonly ["not-blocked", "task-blocked", "human-decision", "human-approval", "external-input", "unknown"]>>;
|
|
234
|
+
readonly actionRiskTier: Schema.NullOr<Schema.Literals<readonly ["t1-read", "t2-reversible", "t3-external", "t4-irreversible"]>>;
|
|
235
|
+
readonly epicKey: Schema.NullOr<Schema.Trim>;
|
|
236
|
+
readonly groupKey: Schema.optional<Schema.NullOr<Schema.Trim>>;
|
|
237
|
+
readonly externalId: Schema.optional<Schema.NullOr<Schema.Trim>>;
|
|
238
|
+
readonly sourceIssueId: Schema.optional<Schema.NullOr<Schema.Trim>>;
|
|
239
|
+
readonly scope: Schema.optional<Schema.$Array<Schema.Trim>>;
|
|
240
|
+
readonly validationKeys: Schema.optional<Schema.$Array<Schema.Trim>>;
|
|
241
|
+
}>>;
|
|
242
|
+
readonly edges: Schema.$Array<Schema.Struct<{
|
|
243
|
+
readonly fromTaskId: Schema.brand<Schema.Trim, "TaskId">;
|
|
244
|
+
readonly toTaskId: Schema.brand<Schema.Trim, "TaskId">;
|
|
245
|
+
readonly type: Schema.Literals<readonly ["blocks", "parent-child", "related"]>;
|
|
246
|
+
}>>;
|
|
247
|
+
readonly layout: Schema.Struct<{
|
|
248
|
+
readonly lanes: Schema.$Array<Schema.Struct<{
|
|
249
|
+
readonly key: Schema.Trim;
|
|
250
|
+
readonly label: Schema.Trim;
|
|
251
|
+
readonly rowIndex: Schema.Int;
|
|
252
|
+
readonly x: Schema.Number;
|
|
253
|
+
readonly y: Schema.Number;
|
|
254
|
+
readonly width: Schema.Int;
|
|
255
|
+
readonly height: Schema.Int;
|
|
256
|
+
readonly color: Schema.String;
|
|
257
|
+
readonly taskCount: Schema.Int;
|
|
258
|
+
}>>;
|
|
259
|
+
readonly stages: Schema.$Array<Schema.Struct<{
|
|
260
|
+
readonly index: Schema.Int;
|
|
261
|
+
readonly label: Schema.Trim;
|
|
262
|
+
readonly x: Schema.Number;
|
|
263
|
+
readonly width: Schema.Int;
|
|
264
|
+
}>>;
|
|
265
|
+
readonly nodes: Schema.$Array<Schema.Struct<{
|
|
266
|
+
readonly id: Schema.Trim;
|
|
267
|
+
readonly taskId: Schema.brand<Schema.Trim, "TaskId">;
|
|
268
|
+
readonly task: Schema.optional<Schema.Struct<{
|
|
269
|
+
readonly id: Schema.brand<Schema.Trim, "TaskId">;
|
|
270
|
+
readonly workspaceId: Schema.brand<Schema.Trim, "WorkspaceId">;
|
|
271
|
+
readonly graphId: Schema.NullOr<Schema.brand<Schema.Trim, "GraphId">>;
|
|
272
|
+
readonly externalId: Schema.NullOr<Schema.Trim>;
|
|
273
|
+
readonly title: Schema.Trim;
|
|
274
|
+
readonly description: Schema.String;
|
|
275
|
+
readonly status: Schema.Literals<readonly ["draft", "open", "ready", "queued", "running", "in_progress", "under_review", "blocked", "unknown", "completed", "failed", "cancelled", "closed"]>;
|
|
276
|
+
readonly priority: Schema.NullOr<Schema.Int>;
|
|
277
|
+
readonly role: Schema.NullOr<Schema.Trim>;
|
|
278
|
+
readonly scope: Schema.$Array<Schema.Trim>;
|
|
279
|
+
readonly validationKeys: Schema.$Array<Schema.Trim>;
|
|
280
|
+
readonly sourceIssueId: Schema.optional<Schema.NullOr<Schema.Trim>>;
|
|
281
|
+
readonly dependencies: Schema.optional<Schema.$Array<Schema.Trim>>;
|
|
282
|
+
readonly parentChildDeps: Schema.optional<Schema.$Array<Schema.Trim>>;
|
|
283
|
+
readonly metadata: Schema.Unknown;
|
|
284
|
+
readonly createdAt: Schema.String;
|
|
285
|
+
readonly updatedAt: Schema.String;
|
|
286
|
+
}>>;
|
|
287
|
+
readonly rowKey: Schema.Trim;
|
|
288
|
+
readonly rowLabel: Schema.Trim;
|
|
289
|
+
readonly rowIndex: Schema.Int;
|
|
290
|
+
readonly stage: Schema.Int;
|
|
291
|
+
readonly x: Schema.Number;
|
|
292
|
+
readonly y: Schema.Number;
|
|
293
|
+
readonly width: Schema.Int;
|
|
294
|
+
readonly height: Schema.Int;
|
|
295
|
+
readonly color: Schema.optional<Schema.String>;
|
|
296
|
+
readonly taskCode: Schema.optional<Schema.NullOr<Schema.String>>;
|
|
297
|
+
readonly strippedTitle: Schema.optional<Schema.String>;
|
|
298
|
+
readonly depsIn: Schema.optional<Schema.Int>;
|
|
299
|
+
readonly depsOut: Schema.optional<Schema.Int>;
|
|
300
|
+
readonly runCount: Schema.optional<Schema.Int>;
|
|
301
|
+
readonly hasApprovals: Schema.optional<Schema.Boolean>;
|
|
302
|
+
readonly hasPendingUserInput: Schema.optional<Schema.Boolean>;
|
|
303
|
+
readonly hasRejectedReview: Schema.optional<Schema.Boolean>;
|
|
304
|
+
readonly hasFailedValidations: Schema.optional<Schema.Boolean>;
|
|
305
|
+
readonly artifactCount: Schema.optional<Schema.Int>;
|
|
306
|
+
}>>;
|
|
307
|
+
readonly edges: Schema.$Array<Schema.Struct<{
|
|
308
|
+
readonly id: Schema.Trim;
|
|
309
|
+
readonly sourceId: Schema.Trim;
|
|
310
|
+
readonly targetId: Schema.Trim;
|
|
311
|
+
readonly color: Schema.String;
|
|
312
|
+
readonly kind: Schema.Literals<readonly ["blocking", "parent-child"]>;
|
|
313
|
+
}>>;
|
|
314
|
+
readonly totalWidth: Schema.Int;
|
|
315
|
+
readonly totalHeight: Schema.Int;
|
|
316
|
+
readonly taskCount: Schema.Int;
|
|
317
|
+
}>;
|
|
318
|
+
readonly cycles: Schema.$Array<Schema.$Array<Schema.brand<Schema.Trim, "TaskId">>>;
|
|
319
|
+
readonly unresolvedRefs: Schema.$Array<Schema.Trim>;
|
|
320
|
+
readonly degraded: Schema.Boolean;
|
|
321
|
+
readonly generatedAt: Schema.String;
|
|
322
|
+
}>;
|
|
323
|
+
export type DependencyGraphModel = typeof DependencyGraphModel.Type;
|
package/dist/src/graph.js
CHANGED
|
@@ -88,9 +88,129 @@ var QueueEntry = Schema2.Struct({
|
|
|
88
88
|
unblockCount: NonNegativeInt,
|
|
89
89
|
position: NonNegativeInt
|
|
90
90
|
});
|
|
91
|
+
var DependencyEdgeType = Schema2.Literals(["blocks", "parent-child", "related"]);
|
|
92
|
+
var DependencyEdge = Schema2.Struct({
|
|
93
|
+
fromTaskId: TaskId,
|
|
94
|
+
toTaskId: TaskId,
|
|
95
|
+
type: DependencyEdgeType
|
|
96
|
+
});
|
|
97
|
+
var BlockerClass = Schema2.Literals([
|
|
98
|
+
"not-blocked",
|
|
99
|
+
"task-blocked",
|
|
100
|
+
"human-decision",
|
|
101
|
+
"human-approval",
|
|
102
|
+
"external-input",
|
|
103
|
+
"unknown"
|
|
104
|
+
]);
|
|
105
|
+
var ActionRiskTier = Schema2.Literals(["t1-read", "t2-reversible", "t3-external", "t4-irreversible"]);
|
|
106
|
+
var BlockerClassification = Schema2.Struct({
|
|
107
|
+
taskId: TaskId,
|
|
108
|
+
blockerClass: BlockerClass,
|
|
109
|
+
actionRiskTier: Schema2.NullOr(ActionRiskTier),
|
|
110
|
+
rationale: Schema2.String,
|
|
111
|
+
source: Schema2.Literals(["elimination", "label", "status", "llm"]),
|
|
112
|
+
autoApplied: Schema2.Boolean
|
|
113
|
+
});
|
|
114
|
+
var DependencyNode = Schema2.Struct({
|
|
115
|
+
taskId: TaskId,
|
|
116
|
+
title: TrimmedNonEmptyString,
|
|
117
|
+
status: TaskStatus,
|
|
118
|
+
priority: Schema2.NullOr(PositiveInt),
|
|
119
|
+
assignee: Schema2.NullOr(TrimmedNonEmptyString),
|
|
120
|
+
blockedBy: Schema2.Array(TaskId),
|
|
121
|
+
blocks: Schema2.Array(TaskId),
|
|
122
|
+
blockingDepth: NonNegativeInt,
|
|
123
|
+
blockerClass: Schema2.NullOr(BlockerClass),
|
|
124
|
+
actionRiskTier: Schema2.NullOr(ActionRiskTier),
|
|
125
|
+
epicKey: Schema2.NullOr(TrimmedNonEmptyString),
|
|
126
|
+
groupKey: Schema2.optional(Schema2.NullOr(TrimmedNonEmptyString)),
|
|
127
|
+
externalId: Schema2.optional(Schema2.NullOr(TrimmedNonEmptyString)),
|
|
128
|
+
sourceIssueId: Schema2.optional(Schema2.NullOr(TrimmedNonEmptyString)),
|
|
129
|
+
scope: Schema2.optional(Schema2.Array(TrimmedNonEmptyString)),
|
|
130
|
+
validationKeys: Schema2.optional(Schema2.Array(TrimmedNonEmptyString))
|
|
131
|
+
});
|
|
132
|
+
var TaskGraphLane = Schema2.Struct({
|
|
133
|
+
key: TrimmedNonEmptyString,
|
|
134
|
+
label: TrimmedNonEmptyString,
|
|
135
|
+
rowIndex: NonNegativeInt,
|
|
136
|
+
x: Schema2.Number,
|
|
137
|
+
y: Schema2.Number,
|
|
138
|
+
width: NonNegativeInt,
|
|
139
|
+
height: NonNegativeInt,
|
|
140
|
+
color: Schema2.String,
|
|
141
|
+
taskCount: NonNegativeInt
|
|
142
|
+
});
|
|
143
|
+
var TaskGraphStage = Schema2.Struct({
|
|
144
|
+
index: NonNegativeInt,
|
|
145
|
+
label: TrimmedNonEmptyString,
|
|
146
|
+
x: Schema2.Number,
|
|
147
|
+
width: NonNegativeInt
|
|
148
|
+
});
|
|
149
|
+
var TaskGraphNode = Schema2.Struct({
|
|
150
|
+
id: TrimmedNonEmptyString,
|
|
151
|
+
taskId: TaskId,
|
|
152
|
+
task: Schema2.optional(TaskSummary),
|
|
153
|
+
rowKey: TrimmedNonEmptyString,
|
|
154
|
+
rowLabel: TrimmedNonEmptyString,
|
|
155
|
+
rowIndex: NonNegativeInt,
|
|
156
|
+
stage: NonNegativeInt,
|
|
157
|
+
x: Schema2.Number,
|
|
158
|
+
y: Schema2.Number,
|
|
159
|
+
width: NonNegativeInt,
|
|
160
|
+
height: NonNegativeInt,
|
|
161
|
+
color: Schema2.optional(Schema2.String),
|
|
162
|
+
taskCode: Schema2.optional(Schema2.NullOr(Schema2.String)),
|
|
163
|
+
strippedTitle: Schema2.optional(Schema2.String),
|
|
164
|
+
depsIn: Schema2.optional(NonNegativeInt),
|
|
165
|
+
depsOut: Schema2.optional(NonNegativeInt),
|
|
166
|
+
runCount: Schema2.optional(NonNegativeInt),
|
|
167
|
+
hasApprovals: Schema2.optional(Schema2.Boolean),
|
|
168
|
+
hasPendingUserInput: Schema2.optional(Schema2.Boolean),
|
|
169
|
+
hasRejectedReview: Schema2.optional(Schema2.Boolean),
|
|
170
|
+
hasFailedValidations: Schema2.optional(Schema2.Boolean),
|
|
171
|
+
artifactCount: Schema2.optional(NonNegativeInt)
|
|
172
|
+
});
|
|
173
|
+
var TaskGraphEdge = Schema2.Struct({
|
|
174
|
+
id: TrimmedNonEmptyString,
|
|
175
|
+
sourceId: TrimmedNonEmptyString,
|
|
176
|
+
targetId: TrimmedNonEmptyString,
|
|
177
|
+
color: Schema2.String,
|
|
178
|
+
kind: Schema2.Literals(["blocking", "parent-child"])
|
|
179
|
+
});
|
|
180
|
+
var TaskGraphLayout = Schema2.Struct({
|
|
181
|
+
lanes: Schema2.Array(TaskGraphLane),
|
|
182
|
+
stages: Schema2.Array(TaskGraphStage),
|
|
183
|
+
nodes: Schema2.Array(TaskGraphNode),
|
|
184
|
+
edges: Schema2.Array(TaskGraphEdge),
|
|
185
|
+
totalWidth: NonNegativeInt,
|
|
186
|
+
totalHeight: NonNegativeInt,
|
|
187
|
+
taskCount: NonNegativeInt
|
|
188
|
+
});
|
|
189
|
+
var DependencyGraphModel = Schema2.Struct({
|
|
190
|
+
graphId: GraphId,
|
|
191
|
+
nodes: Schema2.Array(DependencyNode),
|
|
192
|
+
edges: Schema2.Array(DependencyEdge),
|
|
193
|
+
layout: TaskGraphLayout,
|
|
194
|
+
cycles: Schema2.Array(Schema2.Array(TaskId)),
|
|
195
|
+
unresolvedRefs: Schema2.Array(TrimmedNonEmptyString),
|
|
196
|
+
degraded: Schema2.Boolean,
|
|
197
|
+
generatedAt: IsoDateTime
|
|
198
|
+
});
|
|
91
199
|
export {
|
|
92
200
|
TaskSummary,
|
|
93
201
|
TaskStatus,
|
|
202
|
+
TaskGraphStage,
|
|
203
|
+
TaskGraphNode,
|
|
204
|
+
TaskGraphLayout,
|
|
205
|
+
TaskGraphLane,
|
|
206
|
+
TaskGraphEdge,
|
|
94
207
|
QueueEntry,
|
|
95
|
-
GraphSummary
|
|
208
|
+
GraphSummary,
|
|
209
|
+
DependencyNode,
|
|
210
|
+
DependencyGraphModel,
|
|
211
|
+
DependencyEdgeType,
|
|
212
|
+
DependencyEdge,
|
|
213
|
+
BlockerClassification,
|
|
214
|
+
BlockerClass,
|
|
215
|
+
ActionRiskTier
|
|
96
216
|
};
|