@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.
- package/README.md +14 -0
- package/dist/src/artifact.js +53 -0
- package/dist/src/baseSchemas.js +66 -0
- package/dist/src/config.js +214 -0
- package/dist/src/conversation.js +95 -0
- package/dist/src/editor.js +55 -0
- package/dist/src/engine.js +2278 -0
- package/dist/src/git.js +193 -0
- package/dist/src/graph.js +93 -0
- package/dist/src/index.js +4545 -0
- package/dist/src/ipc.js +1 -0
- package/dist/src/keybindings.js +119 -0
- package/dist/src/model.js +64 -0
- package/dist/src/orchestration.js +1031 -0
- package/dist/src/plugin.js +102 -0
- package/dist/src/policy.js +56 -0
- package/dist/src/project.js +107 -0
- package/dist/src/provider.js +1013 -0
- package/dist/src/providerRuntime.js +1630 -0
- package/dist/src/remote.js +1474 -0
- package/dist/src/review.js +58 -0
- package/dist/src/rig.js +2374 -0
- package/dist/src/runtime.js +1043 -0
- package/dist/src/server.js +1053 -0
- package/dist/src/serviceFabric.js +1066 -0
- package/dist/src/task-source.js +1 -0
- package/dist/src/terminal.js +158 -0
- package/dist/src/validation.js +60 -0
- package/dist/src/workspace.js +1030 -0
- package/dist/src/ws.js +2968 -0
- package/package.json +28 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// packages/contracts/src/plugin.ts
|
|
3
|
+
import { Schema } from "effect";
|
|
4
|
+
var ValidatorCategory = Schema.Literals([
|
|
5
|
+
"boundary",
|
|
6
|
+
"contract",
|
|
7
|
+
"integration",
|
|
8
|
+
"regression",
|
|
9
|
+
"external",
|
|
10
|
+
"custom"
|
|
11
|
+
]);
|
|
12
|
+
var ValidatorRegistration = Schema.Struct({
|
|
13
|
+
id: Schema.String,
|
|
14
|
+
category: ValidatorCategory,
|
|
15
|
+
description: Schema.optional(Schema.String)
|
|
16
|
+
});
|
|
17
|
+
var HookEvent = Schema.Literals([
|
|
18
|
+
"PreToolUse",
|
|
19
|
+
"PostToolUse",
|
|
20
|
+
"UserPromptSubmit",
|
|
21
|
+
"Stop",
|
|
22
|
+
"SessionStart",
|
|
23
|
+
"SessionEnd"
|
|
24
|
+
]);
|
|
25
|
+
var HookMatcher = Schema.Union([
|
|
26
|
+
Schema.Struct({ kind: Schema.Literal("all") }),
|
|
27
|
+
Schema.Struct({ kind: Schema.Literal("tool"), name: Schema.String }),
|
|
28
|
+
Schema.Struct({ kind: Schema.Literal("glob"), pattern: Schema.String })
|
|
29
|
+
]);
|
|
30
|
+
var HookRegistration = Schema.Struct({
|
|
31
|
+
id: Schema.String,
|
|
32
|
+
event: HookEvent,
|
|
33
|
+
matcher: HookMatcher,
|
|
34
|
+
command: Schema.optional(Schema.String),
|
|
35
|
+
description: Schema.optional(Schema.String)
|
|
36
|
+
});
|
|
37
|
+
var SkillRegistration = Schema.Struct({
|
|
38
|
+
id: Schema.String,
|
|
39
|
+
path: Schema.String,
|
|
40
|
+
description: Schema.optional(Schema.String)
|
|
41
|
+
});
|
|
42
|
+
var RepoSourceRegistration = Schema.Struct({
|
|
43
|
+
id: Schema.String,
|
|
44
|
+
url: Schema.String,
|
|
45
|
+
defaultPath: Schema.optional(Schema.String),
|
|
46
|
+
description: Schema.optional(Schema.String),
|
|
47
|
+
defaultBranch: Schema.optional(Schema.String),
|
|
48
|
+
remoteEnvVar: Schema.optional(Schema.String),
|
|
49
|
+
checkoutEnvVar: Schema.optional(Schema.String)
|
|
50
|
+
});
|
|
51
|
+
var AgentRoleRegistration = Schema.Struct({
|
|
52
|
+
id: Schema.String,
|
|
53
|
+
defaultModel: Schema.optional(Schema.String),
|
|
54
|
+
description: Schema.optional(Schema.String)
|
|
55
|
+
});
|
|
56
|
+
var TaskFieldExtension = Schema.Struct({
|
|
57
|
+
id: Schema.String,
|
|
58
|
+
fieldName: Schema.String,
|
|
59
|
+
schemaJson: Schema.String
|
|
60
|
+
});
|
|
61
|
+
var TaskSourceKind = Schema.String;
|
|
62
|
+
var TaskSourceRegistration = Schema.Struct({
|
|
63
|
+
id: Schema.String,
|
|
64
|
+
kind: Schema.String,
|
|
65
|
+
description: Schema.optional(Schema.String)
|
|
66
|
+
});
|
|
67
|
+
var CliCommandRegistration = Schema.Struct({
|
|
68
|
+
id: Schema.String,
|
|
69
|
+
command: Schema.String,
|
|
70
|
+
description: Schema.optional(Schema.String)
|
|
71
|
+
});
|
|
72
|
+
var PluginContributes = Schema.Struct({
|
|
73
|
+
validators: Schema.optional(Schema.Array(ValidatorRegistration)),
|
|
74
|
+
hooks: Schema.optional(Schema.Array(HookRegistration)),
|
|
75
|
+
skills: Schema.optional(Schema.Array(SkillRegistration)),
|
|
76
|
+
repoSources: Schema.optional(Schema.Array(RepoSourceRegistration)),
|
|
77
|
+
agentRoles: Schema.optional(Schema.Array(AgentRoleRegistration)),
|
|
78
|
+
taskFieldSchemas: Schema.optional(Schema.Array(TaskFieldExtension)),
|
|
79
|
+
taskSources: Schema.optional(Schema.Array(TaskSourceRegistration)),
|
|
80
|
+
cliCommands: Schema.optional(Schema.Array(CliCommandRegistration))
|
|
81
|
+
});
|
|
82
|
+
var RigPlugin = Schema.Struct({
|
|
83
|
+
name: Schema.String,
|
|
84
|
+
version: Schema.String,
|
|
85
|
+
contributes: Schema.optional(PluginContributes)
|
|
86
|
+
});
|
|
87
|
+
export {
|
|
88
|
+
ValidatorRegistration,
|
|
89
|
+
ValidatorCategory,
|
|
90
|
+
TaskSourceRegistration,
|
|
91
|
+
TaskSourceKind,
|
|
92
|
+
TaskFieldExtension,
|
|
93
|
+
SkillRegistration,
|
|
94
|
+
RigPlugin,
|
|
95
|
+
RepoSourceRegistration,
|
|
96
|
+
PluginContributes,
|
|
97
|
+
HookRegistration,
|
|
98
|
+
HookMatcher,
|
|
99
|
+
HookEvent,
|
|
100
|
+
CliCommandRegistration,
|
|
101
|
+
AgentRoleRegistration
|
|
102
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// packages/contracts/src/policy.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/policy.ts
|
|
40
|
+
var PolicyDecision = Schema2.Literals(["allow", "warn", "block"]);
|
|
41
|
+
var PolicyMode = Schema2.Literals(["off", "observe", "enforce"]);
|
|
42
|
+
var PolicyDecisionSummary = Schema2.Struct({
|
|
43
|
+
id: TrimmedNonEmptyString,
|
|
44
|
+
runId: RunId,
|
|
45
|
+
actionId: Schema2.NullOr(ActionId),
|
|
46
|
+
decision: PolicyDecision,
|
|
47
|
+
mode: PolicyMode,
|
|
48
|
+
matchedRules: Schema2.Array(TrimmedNonEmptyString),
|
|
49
|
+
reason: Schema2.String,
|
|
50
|
+
createdAt: IsoDateTime
|
|
51
|
+
});
|
|
52
|
+
export {
|
|
53
|
+
PolicyMode,
|
|
54
|
+
PolicyDecisionSummary,
|
|
55
|
+
PolicyDecision
|
|
56
|
+
};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// packages/contracts/src/project.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/project.ts
|
|
40
|
+
var PROJECT_SEARCH_ENTRIES_MAX_LIMIT = 200;
|
|
41
|
+
var PROJECT_LIST_DIRECTORY_MAX_LIMIT = 500;
|
|
42
|
+
var PROJECT_WRITE_FILE_PATH_MAX_LENGTH = 512;
|
|
43
|
+
var PROJECT_READ_FILE_MAX_BYTES = 512 * 1024;
|
|
44
|
+
var ProjectSearchEntriesInput = Schema2.Struct({
|
|
45
|
+
cwd: TrimmedNonEmptyString,
|
|
46
|
+
query: TrimmedNonEmptyString.check(Schema2.isMaxLength(256)),
|
|
47
|
+
limit: PositiveInt.check(Schema2.isLessThanOrEqualTo(PROJECT_SEARCH_ENTRIES_MAX_LIMIT))
|
|
48
|
+
});
|
|
49
|
+
var ProjectEntryKind = Schema2.Literals(["file", "directory"]);
|
|
50
|
+
var ProjectEntry = Schema2.Struct({
|
|
51
|
+
path: TrimmedNonEmptyString,
|
|
52
|
+
kind: ProjectEntryKind,
|
|
53
|
+
parentPath: Schema2.optional(TrimmedNonEmptyString)
|
|
54
|
+
});
|
|
55
|
+
var ProjectSearchEntriesResult = Schema2.Struct({
|
|
56
|
+
entries: Schema2.Array(ProjectEntry),
|
|
57
|
+
truncated: Schema2.Boolean
|
|
58
|
+
});
|
|
59
|
+
var ProjectListDirectoryInput = Schema2.Struct({
|
|
60
|
+
cwd: TrimmedNonEmptyString,
|
|
61
|
+
relativePath: TrimmedNonEmptyString.check(Schema2.isMaxLength(PROJECT_WRITE_FILE_PATH_MAX_LENGTH)),
|
|
62
|
+
limit: PositiveInt.check(Schema2.isLessThanOrEqualTo(PROJECT_LIST_DIRECTORY_MAX_LIMIT))
|
|
63
|
+
});
|
|
64
|
+
var ProjectDirectoryEntry = Schema2.Struct({
|
|
65
|
+
name: TrimmedNonEmptyString,
|
|
66
|
+
relativePath: TrimmedNonEmptyString,
|
|
67
|
+
kind: ProjectEntryKind,
|
|
68
|
+
sizeBytes: Schema2.optional(NonNegativeInt),
|
|
69
|
+
modifiedAt: Schema2.optional(Schema2.String)
|
|
70
|
+
});
|
|
71
|
+
var ProjectListDirectoryResult = Schema2.Struct({
|
|
72
|
+
entries: Schema2.Array(ProjectDirectoryEntry),
|
|
73
|
+
truncated: Schema2.Boolean
|
|
74
|
+
});
|
|
75
|
+
var ProjectWriteFileInput = Schema2.Struct({
|
|
76
|
+
cwd: TrimmedNonEmptyString,
|
|
77
|
+
relativePath: TrimmedNonEmptyString.check(Schema2.isMaxLength(PROJECT_WRITE_FILE_PATH_MAX_LENGTH)),
|
|
78
|
+
contents: Schema2.String
|
|
79
|
+
});
|
|
80
|
+
var ProjectWriteFileResult = Schema2.Struct({
|
|
81
|
+
relativePath: TrimmedNonEmptyString
|
|
82
|
+
});
|
|
83
|
+
var ProjectReadFileInput = Schema2.Struct({
|
|
84
|
+
cwd: TrimmedNonEmptyString,
|
|
85
|
+
relativePath: TrimmedNonEmptyString.check(Schema2.isMaxLength(PROJECT_WRITE_FILE_PATH_MAX_LENGTH))
|
|
86
|
+
});
|
|
87
|
+
var ProjectReadFileResult = Schema2.Struct({
|
|
88
|
+
relativePath: TrimmedNonEmptyString,
|
|
89
|
+
contents: Schema2.String,
|
|
90
|
+
truncated: Schema2.Boolean,
|
|
91
|
+
sizeBytes: NonNegativeInt,
|
|
92
|
+
maxBytes: PositiveInt
|
|
93
|
+
});
|
|
94
|
+
var PROJECT_READ_FILE_MAX_BYTES_VALUE = PROJECT_READ_FILE_MAX_BYTES;
|
|
95
|
+
export {
|
|
96
|
+
ProjectWriteFileResult,
|
|
97
|
+
ProjectWriteFileInput,
|
|
98
|
+
ProjectSearchEntriesResult,
|
|
99
|
+
ProjectSearchEntriesInput,
|
|
100
|
+
ProjectReadFileResult,
|
|
101
|
+
ProjectReadFileInput,
|
|
102
|
+
ProjectListDirectoryResult,
|
|
103
|
+
ProjectListDirectoryInput,
|
|
104
|
+
ProjectEntry,
|
|
105
|
+
ProjectDirectoryEntry,
|
|
106
|
+
PROJECT_READ_FILE_MAX_BYTES_VALUE
|
|
107
|
+
};
|