@h-rig/contracts 0.0.6-alpha.14 → 0.0.6-alpha.140

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.
Files changed (92) hide show
  1. package/dist/index.cjs +7456 -0
  2. package/dist/index.mjs +7415 -0
  3. package/dist/src/artifact.d.ts +13 -0
  4. package/dist/src/artifact.js +3 -0
  5. package/dist/src/baseSchemas.d.ts +63 -0
  6. package/dist/src/baseSchemas.js +6 -0
  7. package/dist/src/cli-output.d.ts +324 -0
  8. package/dist/src/cli-output.js +190 -0
  9. package/dist/src/config.d.ts +536 -0
  10. package/dist/src/config.js +1592 -162
  11. package/dist/src/conversation.d.ts +50 -0
  12. package/dist/src/conversation.js +3 -0
  13. package/dist/src/drift.d.ts +28 -0
  14. package/dist/src/drift.js +69 -0
  15. package/dist/src/editor.d.ts +25 -0
  16. package/dist/src/editor.js +3 -0
  17. package/dist/src/engine.d.ts +2789 -0
  18. package/dist/src/engine.js +127 -13
  19. package/dist/src/git.d.ts +144 -0
  20. package/dist/src/git.js +3 -0
  21. package/dist/src/graph.d.ts +323 -0
  22. package/dist/src/graph.js +124 -1
  23. package/dist/src/help-catalog.d.ts +34 -0
  24. package/dist/src/help-catalog.js +655 -0
  25. package/dist/src/index.d.ts +46 -0
  26. package/dist/src/index.js +4095 -1228
  27. package/dist/src/ipc.d.ts +248 -0
  28. package/dist/src/kernel.d.ts +221 -0
  29. package/dist/src/kernel.js +269 -0
  30. package/dist/src/keybindings.d.ts +71 -0
  31. package/dist/src/keybindings.js +3 -0
  32. package/dist/src/model.d.ts +77 -0
  33. package/dist/src/orchestration.d.ts +3695 -0
  34. package/dist/src/orchestration.js +3 -0
  35. package/dist/src/pi-session.d.ts +113 -0
  36. package/dist/src/pi-session.js +1 -0
  37. package/dist/src/planning.d.ts +64 -0
  38. package/dist/src/planning.js +90 -0
  39. package/dist/src/plugin-hooks.d.ts +51 -0
  40. package/dist/src/plugin-hooks.js +375 -0
  41. package/dist/src/plugin.d.ts +416 -0
  42. package/dist/src/plugin.js +332 -64
  43. package/dist/src/policy.d.ts +16 -0
  44. package/dist/src/policy.js +3 -0
  45. package/dist/src/project.d.ts +71 -0
  46. package/dist/src/project.js +3 -0
  47. package/dist/src/protocol-version.d.ts +21 -0
  48. package/dist/src/protocol-version.js +6 -0
  49. package/dist/src/provider.d.ts +105 -0
  50. package/dist/src/provider.js +3 -0
  51. package/dist/src/providerRuntime.d.ts +3949 -0
  52. package/dist/src/providerRuntime.js +3 -0
  53. package/dist/src/remote.d.ts +326 -0
  54. package/dist/src/remote.js +16 -10
  55. package/dist/src/review.d.ts +18 -0
  56. package/dist/src/review.js +3 -0
  57. package/dist/src/rig.d.ts +783 -0
  58. package/dist/src/rig.js +178 -15
  59. package/dist/src/rollups.d.ts +41 -0
  60. package/dist/src/rollups.js +70 -0
  61. package/dist/src/run-journal.d.ts +930 -0
  62. package/dist/src/run-journal.js +1641 -0
  63. package/dist/src/run-record.d.ts +45 -0
  64. package/dist/src/run-record.js +1 -0
  65. package/dist/src/run-session-journal.d.ts +93 -0
  66. package/dist/src/run-session-journal.js +1809 -0
  67. package/dist/src/run-status.d.ts +12 -0
  68. package/dist/src/run-status.js +38 -0
  69. package/dist/src/run-timeline.d.ts +10 -0
  70. package/dist/src/run-timeline.js +1499 -0
  71. package/dist/src/runtime.d.ts +103 -0
  72. package/dist/src/runtime.js +9 -4
  73. package/dist/src/server.d.ts +106 -0
  74. package/dist/src/server.js +3 -0
  75. package/dist/src/serviceFabric.d.ts +62 -0
  76. package/dist/src/serviceFabric.js +5 -2
  77. package/dist/src/stage.d.ts +245 -0
  78. package/dist/src/stage.js +169 -0
  79. package/dist/src/supervisor-journal.d.ts +205 -0
  80. package/dist/src/supervisor-journal.js +1246 -0
  81. package/dist/src/task-source.d.ts +37 -0
  82. package/dist/src/terminal.d.ts +130 -0
  83. package/dist/src/terminal.js +3 -0
  84. package/dist/src/validation.d.ts +14 -0
  85. package/dist/src/validation.js +3 -0
  86. package/dist/src/workflow-journal.d.ts +124 -0
  87. package/dist/src/workflow-journal.js +389 -0
  88. package/dist/src/workspace.d.ts +204 -0
  89. package/dist/src/workspace.js +5 -2
  90. package/dist/src/ws.d.ts +747 -0
  91. package/dist/src/ws.js +172 -14
  92. package/package.json +51 -4
@@ -0,0 +1,323 @@
1
+ import { Schema } from "effect";
2
+ export declare const TaskStatus: Schema.Literals<readonly ["draft", "open", "ready", "queued", "running", "in_progress", "under_review", "blocked", "unknown", "completed", "failed", "cancelled", "closed"]>;
3
+ export type TaskStatus = typeof TaskStatus.Type;
4
+ export declare const GraphSummary: Schema.Struct<{
5
+ readonly id: Schema.brand<Schema.Trim, "GraphId">;
6
+ readonly workspaceId: Schema.brand<Schema.Trim, "WorkspaceId">;
7
+ readonly title: Schema.Trim;
8
+ readonly description: Schema.NullOr<Schema.String>;
9
+ readonly createdAt: Schema.String;
10
+ readonly updatedAt: Schema.String;
11
+ }>;
12
+ export type GraphSummary = typeof GraphSummary.Type;
13
+ export declare const TaskSummary: Schema.Struct<{
14
+ readonly id: Schema.brand<Schema.Trim, "TaskId">;
15
+ readonly workspaceId: Schema.brand<Schema.Trim, "WorkspaceId">;
16
+ readonly graphId: Schema.NullOr<Schema.brand<Schema.Trim, "GraphId">>;
17
+ readonly externalId: Schema.NullOr<Schema.Trim>;
18
+ readonly title: Schema.Trim;
19
+ readonly description: Schema.String;
20
+ readonly status: Schema.Literals<readonly ["draft", "open", "ready", "queued", "running", "in_progress", "under_review", "blocked", "unknown", "completed", "failed", "cancelled", "closed"]>;
21
+ readonly priority: Schema.NullOr<Schema.Int>;
22
+ readonly role: Schema.NullOr<Schema.Trim>;
23
+ readonly scope: Schema.$Array<Schema.Trim>;
24
+ readonly validationKeys: Schema.$Array<Schema.Trim>;
25
+ readonly sourceIssueId: Schema.optional<Schema.NullOr<Schema.Trim>>;
26
+ readonly dependencies: Schema.optional<Schema.$Array<Schema.Trim>>;
27
+ readonly parentChildDeps: Schema.optional<Schema.$Array<Schema.Trim>>;
28
+ readonly metadata: Schema.Unknown;
29
+ readonly createdAt: Schema.String;
30
+ readonly updatedAt: Schema.String;
31
+ }>;
32
+ export type TaskSummary = typeof TaskSummary.Type;
33
+ export declare const QueueEntry: Schema.Struct<{
34
+ readonly taskId: Schema.brand<Schema.Trim, "TaskId">;
35
+ readonly score: Schema.Int;
36
+ readonly unblockCount: Schema.Int;
37
+ readonly position: Schema.Int;
38
+ }>;
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
@@ -16,6 +16,9 @@ var WorkspaceId = makeEntityId("WorkspaceId");
16
16
  var GraphId = makeEntityId("GraphId");
17
17
  var TaskId = makeEntityId("TaskId");
18
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"));
19
22
  var EngineRuntimeId = makeEntityId("EngineRuntimeId");
20
23
  var ConversationId = makeEntityId("ConversationId");
21
24
  var ActionId = makeEntityId("ActionId");
@@ -85,9 +88,129 @@ var QueueEntry = Schema2.Struct({
85
88
  unblockCount: NonNegativeInt,
86
89
  position: NonNegativeInt
87
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
+ });
88
199
  export {
89
200
  TaskSummary,
90
201
  TaskStatus,
202
+ TaskGraphStage,
203
+ TaskGraphNode,
204
+ TaskGraphLayout,
205
+ TaskGraphLane,
206
+ TaskGraphEdge,
91
207
  QueueEntry,
92
- GraphSummary
208
+ GraphSummary,
209
+ DependencyNode,
210
+ DependencyGraphModel,
211
+ DependencyEdgeType,
212
+ DependencyEdge,
213
+ BlockerClassification,
214
+ BlockerClass,
215
+ ActionRiskTier
93
216
  };
@@ -0,0 +1,34 @@
1
+ export type HelpCommand = {
2
+ command: string;
3
+ description: string;
4
+ primary?: boolean;
5
+ /** Concrete invocations + variations (shown indented under the command). */
6
+ examples?: readonly string[];
7
+ /** When to reach for it (one line, shown after the description). */
8
+ usecase?: string;
9
+ };
10
+ export type HelpGroup = {
11
+ name: string;
12
+ summary: string;
13
+ usage: string[];
14
+ commands: HelpCommand[];
15
+ examples?: string[];
16
+ next?: string[];
17
+ advanced?: string[];
18
+ };
19
+ export type TopLevelSection = {
20
+ title: string;
21
+ subtitle: string;
22
+ commands: HelpCommand[];
23
+ };
24
+ /** Catalog DATA for the app's help view — the view builds its own layout
25
+ * from these; the render* functions below remain for plain/script output. */
26
+ export declare function helpCatalog(): {
27
+ sections: readonly TopLevelSection[];
28
+ groups: readonly HelpGroup[];
29
+ };
30
+ export declare const TOP_LEVEL_SECTIONS: TopLevelSection[];
31
+ export declare const PRIMARY_GROUPS: HelpGroup[];
32
+ export declare const ADVANCED_GROUPS: HelpGroup[];
33
+ export declare const ADVANCED_COMMANDS: HelpCommand[];
34
+ export declare const ALL_GROUPS: HelpGroup[];