@h-rig/contracts 0.0.6-alpha.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.
@@ -0,0 +1,193 @@
1
+ // @bun
2
+ // packages/contracts/src/git.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 EngineRuntimeId = makeEntityId("EngineRuntimeId");
20
+ var ConversationId = makeEntityId("ConversationId");
21
+ var ActionId = makeEntityId("ActionId");
22
+ var ArtifactId = makeEntityId("ArtifactId");
23
+ var WorktreeId = makeEntityId("WorktreeId");
24
+ var ValidationResultId = makeEntityId("ValidationResultId");
25
+ var ReviewResultId = makeEntityId("ReviewResultId");
26
+ var CommandId = makeEntityId("CommandId");
27
+ var EventId = makeEntityId("EventId");
28
+ var MessageId = makeEntityId("MessageId");
29
+ var TurnId = makeEntityId("TurnId");
30
+ var ProviderItemId = makeEntityId("ProviderItemId");
31
+ var RuntimeSessionId = makeEntityId("RuntimeSessionId");
32
+ var RuntimeItemId = makeEntityId("RuntimeItemId");
33
+ var RuntimeRequestId = makeEntityId("RuntimeRequestId");
34
+ var RuntimeTaskId = makeEntityId("RuntimeTaskId");
35
+ var ApprovalRequestId = makeEntityId("ApprovalRequestId");
36
+ var CheckpointRef = makeEntityId("CheckpointRef");
37
+ var RemoteEndpointId = makeEntityId("RemoteEndpointId");
38
+
39
+ // packages/contracts/src/git.ts
40
+ var TrimmedNonEmptyStringSchema = TrimmedNonEmptyString;
41
+ var GitStackedAction = Schema2.Literals(["commit", "commit_push", "commit_push_pr"]);
42
+ var GitCommitStepStatus = Schema2.Literals(["created", "skipped_no_changes"]);
43
+ var GitPushStepStatus = Schema2.Literals([
44
+ "pushed",
45
+ "skipped_not_requested",
46
+ "skipped_up_to_date"
47
+ ]);
48
+ var GitBranchStepStatus = Schema2.Literals(["created", "skipped_not_requested"]);
49
+ var GitPrStepStatus = Schema2.Literals([
50
+ "created",
51
+ "opened_existing",
52
+ "skipped_not_requested"
53
+ ]);
54
+ var GitStatusPrState = Schema2.Literals(["open", "closed", "merged"]);
55
+ var GitBranch = Schema2.Struct({
56
+ name: TrimmedNonEmptyStringSchema,
57
+ isRemote: Schema2.optional(Schema2.Boolean),
58
+ remoteName: Schema2.optional(TrimmedNonEmptyStringSchema),
59
+ current: Schema2.Boolean,
60
+ isDefault: Schema2.Boolean,
61
+ worktreePath: TrimmedNonEmptyStringSchema.pipe(Schema2.NullOr)
62
+ });
63
+ var GitWorktree = Schema2.Struct({
64
+ path: TrimmedNonEmptyStringSchema,
65
+ branch: TrimmedNonEmptyStringSchema
66
+ });
67
+ var GitStatusInput = Schema2.Struct({
68
+ cwd: TrimmedNonEmptyStringSchema
69
+ });
70
+ var GitPullInput = Schema2.Struct({
71
+ cwd: TrimmedNonEmptyStringSchema
72
+ });
73
+ var GitReadWorkingTreePatchInput = Schema2.Struct({
74
+ cwd: TrimmedNonEmptyStringSchema,
75
+ relativePath: Schema2.optional(TrimmedNonEmptyStringSchema)
76
+ });
77
+ var GitRunStackedActionInput = Schema2.Struct({
78
+ cwd: TrimmedNonEmptyStringSchema,
79
+ action: GitStackedAction,
80
+ commitMessage: Schema2.optional(TrimmedNonEmptyStringSchema.check(Schema2.isMaxLength(1e4))),
81
+ featureBranch: Schema2.optional(Schema2.Boolean)
82
+ });
83
+ var GitListBranchesInput = Schema2.Struct({
84
+ cwd: TrimmedNonEmptyStringSchema
85
+ });
86
+ var GitCreateWorktreeInput = Schema2.Struct({
87
+ cwd: TrimmedNonEmptyStringSchema,
88
+ branch: TrimmedNonEmptyStringSchema,
89
+ newBranch: TrimmedNonEmptyStringSchema,
90
+ path: Schema2.NullOr(TrimmedNonEmptyStringSchema)
91
+ });
92
+ var GitRemoveWorktreeInput = Schema2.Struct({
93
+ cwd: TrimmedNonEmptyStringSchema,
94
+ path: TrimmedNonEmptyStringSchema,
95
+ force: Schema2.optional(Schema2.Boolean)
96
+ });
97
+ var GitCreateBranchInput = Schema2.Struct({
98
+ cwd: TrimmedNonEmptyStringSchema,
99
+ branch: TrimmedNonEmptyStringSchema
100
+ });
101
+ var GitCheckoutInput = Schema2.Struct({
102
+ cwd: TrimmedNonEmptyStringSchema,
103
+ branch: TrimmedNonEmptyStringSchema
104
+ });
105
+ var GitInitInput = Schema2.Struct({
106
+ cwd: TrimmedNonEmptyStringSchema
107
+ });
108
+ var GitStatusPr = Schema2.Struct({
109
+ number: PositiveInt,
110
+ title: TrimmedNonEmptyStringSchema,
111
+ url: Schema2.String,
112
+ baseBranch: TrimmedNonEmptyStringSchema,
113
+ headBranch: TrimmedNonEmptyStringSchema,
114
+ state: GitStatusPrState
115
+ });
116
+ var GitStatusResult = Schema2.Struct({
117
+ branch: TrimmedNonEmptyStringSchema.pipe(Schema2.NullOr),
118
+ hasWorkingTreeChanges: Schema2.Boolean,
119
+ workingTree: Schema2.Struct({
120
+ files: Schema2.Array(Schema2.Struct({
121
+ path: TrimmedNonEmptyStringSchema,
122
+ insertions: NonNegativeInt,
123
+ deletions: NonNegativeInt
124
+ })),
125
+ insertions: NonNegativeInt,
126
+ deletions: NonNegativeInt
127
+ }),
128
+ hasUpstream: Schema2.Boolean,
129
+ aheadCount: NonNegativeInt,
130
+ behindCount: NonNegativeInt,
131
+ pr: Schema2.NullOr(GitStatusPr)
132
+ });
133
+ var GitListBranchesResult = Schema2.Struct({
134
+ branches: Schema2.Array(GitBranch),
135
+ isRepo: Schema2.Boolean
136
+ });
137
+ var GitCreateWorktreeResult = Schema2.Struct({
138
+ worktree: GitWorktree
139
+ });
140
+ var GitRunStackedActionResult = Schema2.Struct({
141
+ action: GitStackedAction,
142
+ branch: Schema2.Struct({
143
+ status: GitBranchStepStatus,
144
+ name: Schema2.optional(TrimmedNonEmptyStringSchema)
145
+ }),
146
+ commit: Schema2.Struct({
147
+ status: GitCommitStepStatus,
148
+ commitSha: Schema2.optional(TrimmedNonEmptyStringSchema),
149
+ subject: Schema2.optional(TrimmedNonEmptyStringSchema)
150
+ }),
151
+ push: Schema2.Struct({
152
+ status: GitPushStepStatus,
153
+ branch: Schema2.optional(TrimmedNonEmptyStringSchema),
154
+ upstreamBranch: Schema2.optional(TrimmedNonEmptyStringSchema),
155
+ setUpstream: Schema2.optional(Schema2.Boolean)
156
+ }),
157
+ pr: Schema2.Struct({
158
+ status: GitPrStepStatus,
159
+ url: Schema2.optional(Schema2.String),
160
+ number: Schema2.optional(PositiveInt),
161
+ baseBranch: Schema2.optional(TrimmedNonEmptyStringSchema),
162
+ headBranch: Schema2.optional(TrimmedNonEmptyStringSchema),
163
+ title: Schema2.optional(TrimmedNonEmptyStringSchema)
164
+ })
165
+ });
166
+ var GitPullResult = Schema2.Struct({
167
+ status: Schema2.Literals(["pulled", "skipped_up_to_date"]),
168
+ branch: TrimmedNonEmptyStringSchema,
169
+ upstreamBranch: TrimmedNonEmptyStringSchema.pipe(Schema2.NullOr)
170
+ });
171
+ var GitReadWorkingTreePatchResult = Schema2.Struct({
172
+ diff: Schema2.String
173
+ });
174
+ export {
175
+ GitStatusResult,
176
+ GitStatusInput,
177
+ GitStackedAction,
178
+ GitRunStackedActionResult,
179
+ GitRunStackedActionInput,
180
+ GitRemoveWorktreeInput,
181
+ GitReadWorkingTreePatchResult,
182
+ GitReadWorkingTreePatchInput,
183
+ GitPullResult,
184
+ GitPullInput,
185
+ GitListBranchesResult,
186
+ GitListBranchesInput,
187
+ GitInitInput,
188
+ GitCreateWorktreeResult,
189
+ GitCreateWorktreeInput,
190
+ GitCreateBranchInput,
191
+ GitCheckoutInput,
192
+ GitBranch
193
+ };
@@ -0,0 +1,93 @@
1
+ // @bun
2
+ // packages/contracts/src/graph.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 EngineRuntimeId = makeEntityId("EngineRuntimeId");
20
+ var ConversationId = makeEntityId("ConversationId");
21
+ var ActionId = makeEntityId("ActionId");
22
+ var ArtifactId = makeEntityId("ArtifactId");
23
+ var WorktreeId = makeEntityId("WorktreeId");
24
+ var ValidationResultId = makeEntityId("ValidationResultId");
25
+ var ReviewResultId = makeEntityId("ReviewResultId");
26
+ var CommandId = makeEntityId("CommandId");
27
+ var EventId = makeEntityId("EventId");
28
+ var MessageId = makeEntityId("MessageId");
29
+ var TurnId = makeEntityId("TurnId");
30
+ var ProviderItemId = makeEntityId("ProviderItemId");
31
+ var RuntimeSessionId = makeEntityId("RuntimeSessionId");
32
+ var RuntimeItemId = makeEntityId("RuntimeItemId");
33
+ var RuntimeRequestId = makeEntityId("RuntimeRequestId");
34
+ var RuntimeTaskId = makeEntityId("RuntimeTaskId");
35
+ var ApprovalRequestId = makeEntityId("ApprovalRequestId");
36
+ var CheckpointRef = makeEntityId("CheckpointRef");
37
+ var RemoteEndpointId = makeEntityId("RemoteEndpointId");
38
+
39
+ // packages/contracts/src/graph.ts
40
+ var TaskStatus = Schema2.Literals([
41
+ "draft",
42
+ "open",
43
+ "ready",
44
+ "queued",
45
+ "running",
46
+ "in_progress",
47
+ "under_review",
48
+ "blocked",
49
+ "unknown",
50
+ "completed",
51
+ "failed",
52
+ "cancelled",
53
+ "closed"
54
+ ]);
55
+ var GraphSummary = Schema2.Struct({
56
+ id: GraphId,
57
+ workspaceId: WorkspaceId,
58
+ title: TrimmedNonEmptyString,
59
+ description: Schema2.NullOr(Schema2.String),
60
+ createdAt: IsoDateTime,
61
+ updatedAt: IsoDateTime
62
+ });
63
+ var TaskSummary = Schema2.Struct({
64
+ id: TaskId,
65
+ workspaceId: WorkspaceId,
66
+ graphId: Schema2.NullOr(GraphId),
67
+ externalId: Schema2.NullOr(TrimmedNonEmptyString),
68
+ title: TrimmedNonEmptyString,
69
+ description: Schema2.String,
70
+ status: TaskStatus,
71
+ priority: Schema2.NullOr(PositiveInt),
72
+ role: Schema2.NullOr(TrimmedNonEmptyString),
73
+ scope: Schema2.Array(TrimmedNonEmptyString),
74
+ validationKeys: Schema2.Array(TrimmedNonEmptyString),
75
+ sourceIssueId: Schema2.optional(Schema2.NullOr(TrimmedNonEmptyString)),
76
+ dependencies: Schema2.optional(Schema2.Array(TrimmedNonEmptyString)),
77
+ parentChildDeps: Schema2.optional(Schema2.Array(TrimmedNonEmptyString)),
78
+ metadata: Schema2.Unknown,
79
+ createdAt: IsoDateTime,
80
+ updatedAt: IsoDateTime
81
+ });
82
+ var QueueEntry = Schema2.Struct({
83
+ taskId: TaskId,
84
+ score: NonNegativeInt,
85
+ unblockCount: NonNegativeInt,
86
+ position: NonNegativeInt
87
+ });
88
+ export {
89
+ TaskSummary,
90
+ TaskStatus,
91
+ QueueEntry,
92
+ GraphSummary
93
+ };