@h-rig/contracts 0.0.6-alpha.18 → 0.0.6-alpha.181

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 (205) hide show
  1. package/dist/index.cjs +3442 -0
  2. package/dist/index.mjs +3401 -0
  3. package/dist/src/agent-roles.d.ts +8 -0
  4. package/dist/src/artifact.d.ts +13 -0
  5. package/dist/src/artifact.js +3 -0
  6. package/dist/src/baseSchemas.d.ts +63 -0
  7. package/dist/src/baseSchemas.js +6 -0
  8. package/dist/src/blocker-classifier.d.ts +21 -0
  9. package/dist/src/blocker-classifier.js +13 -0
  10. package/dist/src/browser.d.ts +80 -0
  11. package/dist/src/browser.js +13 -0
  12. package/dist/src/capability-id.d.ts +22 -0
  13. package/dist/src/capability-id.js +8 -0
  14. package/dist/src/cli-output.d.ts +348 -0
  15. package/dist/src/cli-output.js +190 -0
  16. package/dist/src/cli-runner.d.ts +43 -0
  17. package/dist/src/cli-runner.js +13 -0
  18. package/dist/src/cockpit.d.ts +58 -0
  19. package/dist/src/cockpit.js +13 -0
  20. package/dist/src/collab-session-viewer.d.ts +36 -0
  21. package/dist/src/collab-session-viewer.js +13 -0
  22. package/dist/src/config.d.ts +553 -0
  23. package/dist/src/config.js +767 -162
  24. package/dist/src/control-plane-types.d.ts +323 -0
  25. package/dist/src/control-plane-types.js +13 -0
  26. package/dist/src/conversation.d.ts +50 -0
  27. package/dist/src/conversation.js +3 -0
  28. package/dist/src/dependency-preflight.d.ts +43 -0
  29. package/dist/src/dependency-preflight.js +13 -0
  30. package/dist/src/docs-drift.d.ts +10 -0
  31. package/dist/src/docs-drift.js +12 -0
  32. package/dist/src/doctor.d.ts +90 -0
  33. package/dist/src/doctor.js +13 -0
  34. package/dist/src/drift.d.ts +28 -0
  35. package/dist/src/drift.js +69 -0
  36. package/dist/src/editor.d.ts +25 -0
  37. package/dist/src/editor.js +3 -0
  38. package/dist/src/errors.d.ts +13 -0
  39. package/dist/src/errors.js +17 -0
  40. package/dist/src/git.d.ts +152 -0
  41. package/dist/src/git.js +3 -0
  42. package/dist/src/github.d.ts +295 -0
  43. package/dist/src/github.js +17 -0
  44. package/dist/src/graph.d.ts +360 -0
  45. package/dist/src/graph.js +137 -1
  46. package/dist/src/guard.d.ts +118 -0
  47. package/dist/src/guard.js +15 -0
  48. package/dist/src/harness-events.d.ts +8 -0
  49. package/dist/src/harness-events.js +1 -0
  50. package/dist/src/harness-profile-state.d.ts +10 -0
  51. package/dist/src/harness-profile-state.js +13 -0
  52. package/dist/src/help-catalog.d.ts +41 -0
  53. package/dist/src/help-catalog.js +13 -0
  54. package/dist/src/host.d.ts +41 -0
  55. package/dist/src/host.js +13 -0
  56. package/dist/src/identity.d.ts +44 -0
  57. package/dist/src/identity.js +1 -0
  58. package/dist/src/index.d.ts +98 -0
  59. package/dist/src/index.js +2605 -3752
  60. package/dist/src/isolation.d.ts +213 -0
  61. package/dist/src/isolation.js +13 -0
  62. package/dist/src/kernel.d.ts +200 -0
  63. package/dist/src/kernel.js +261 -0
  64. package/dist/src/keybindings.d.ts +71 -0
  65. package/dist/src/keybindings.js +3 -0
  66. package/dist/src/layout.d.ts +44 -0
  67. package/dist/src/layout.js +8 -0
  68. package/dist/src/lifecycle-capabilities.d.ts +224 -0
  69. package/dist/src/lifecycle-capabilities.js +45 -0
  70. package/dist/src/managed-repos.d.ts +339 -0
  71. package/dist/src/managed-repos.js +37 -0
  72. package/dist/src/memory.d.ts +199 -0
  73. package/dist/src/memory.js +15 -0
  74. package/dist/src/model.d.ts +13 -0
  75. package/dist/src/model.js +3 -58
  76. package/dist/src/native-toolchain.d.ts +46 -0
  77. package/dist/src/native-toolchain.js +13 -0
  78. package/dist/src/notify.d.ts +46 -0
  79. package/dist/src/notify.js +13 -0
  80. package/dist/src/orchestration.d.ts +43 -0
  81. package/dist/src/orchestration.js +28 -961
  82. package/dist/src/panel-protocol.d.ts +17 -0
  83. package/dist/src/panel-protocol.js +10 -0
  84. package/dist/src/pi-session.d.ts +113 -0
  85. package/dist/src/pi-session.js +1 -0
  86. package/dist/src/placement.d.ts +47 -0
  87. package/dist/src/placement.js +13 -0
  88. package/dist/src/planning.d.ts +64 -0
  89. package/dist/src/planning.js +90 -0
  90. package/dist/src/plugin-hooks.d.ts +51 -0
  91. package/dist/src/plugin-hooks.js +386 -0
  92. package/dist/src/plugin.d.ts +476 -0
  93. package/dist/src/plugin.js +346 -64
  94. package/dist/src/policy.d.ts +16 -0
  95. package/dist/src/policy.js +3 -0
  96. package/dist/src/product-entrypoint.d.ts +22 -0
  97. package/dist/src/product-entrypoint.js +13 -0
  98. package/dist/src/project.d.ts +71 -0
  99. package/dist/src/project.js +3 -0
  100. package/dist/src/prompt.d.ts +29 -0
  101. package/dist/src/prompt.js +13 -0
  102. package/dist/src/protocol-version.d.ts +21 -0
  103. package/dist/src/protocol-version.js +6 -0
  104. package/dist/src/provider-instructions.d.ts +41 -0
  105. package/dist/src/provider-instructions.js +13 -0
  106. package/dist/src/provider.d.ts +105 -0
  107. package/dist/src/provider.js +16 -835
  108. package/dist/src/remote-control.d.ts +93 -0
  109. package/dist/src/remote-control.js +26 -0
  110. package/dist/src/remote.d.ts +318 -0
  111. package/dist/src/remote.js +238 -1078
  112. package/dist/src/review.d.ts +18 -0
  113. package/dist/src/review.js +3 -0
  114. package/dist/src/rollups.d.ts +41 -0
  115. package/dist/src/rollups.js +70 -0
  116. package/dist/src/run-control.d.ts +164 -0
  117. package/dist/src/run-control.js +13 -0
  118. package/dist/src/run-discovery.d.ts +83 -0
  119. package/dist/src/run-discovery.js +13 -0
  120. package/dist/src/run-dispatch.d.ts +34 -0
  121. package/dist/src/run-dispatch.js +13 -0
  122. package/dist/src/run-identity.d.ts +47 -0
  123. package/dist/src/run-identity.js +13 -0
  124. package/dist/src/run-journal.d.ts +694 -0
  125. package/dist/src/run-journal.js +569 -0
  126. package/dist/src/run-queue.d.ts +36 -0
  127. package/dist/src/run-queue.js +13 -0
  128. package/dist/src/run-read-model.d.ts +200 -0
  129. package/dist/src/run-read-model.js +13 -0
  130. package/dist/src/run-record.d.ts +45 -0
  131. package/dist/src/run-record.js +1 -0
  132. package/dist/src/run-registry-backbone.d.ts +56 -0
  133. package/dist/src/run-registry-backbone.js +13 -0
  134. package/dist/src/run-session-journal.d.ts +154 -0
  135. package/dist/src/run-session-journal.js +87 -0
  136. package/dist/src/run-status.d.ts +10 -0
  137. package/dist/src/run-status.js +27 -0
  138. package/dist/src/run-timeline.d.ts +7 -0
  139. package/dist/src/run-timeline.js +1 -0
  140. package/dist/src/runtime-secrets.d.ts +10 -0
  141. package/dist/src/runtime-secrets.js +13 -0
  142. package/dist/src/runtime-task-context.d.ts +82 -0
  143. package/dist/src/runtime-task-context.js +1 -0
  144. package/dist/src/runtime.d.ts +103 -0
  145. package/dist/src/runtime.js +73 -906
  146. package/dist/src/session-asset-materializer.d.ts +35 -0
  147. package/dist/src/session-asset-materializer.js +13 -0
  148. package/dist/src/session-hook-materializer.d.ts +41 -0
  149. package/dist/src/session-hook-materializer.js +13 -0
  150. package/dist/src/setup.d.ts +154 -0
  151. package/dist/src/setup.js +13 -0
  152. package/dist/src/stage.d.ts +245 -0
  153. package/dist/src/stage.js +169 -0
  154. package/dist/src/supervisor-journal.d.ts +204 -0
  155. package/dist/src/supervisor-journal.js +336 -0
  156. package/dist/src/supervisor-loop.d.ts +40 -0
  157. package/dist/src/supervisor-loop.js +13 -0
  158. package/dist/src/task-artifacts.d.ts +53 -0
  159. package/dist/src/task-artifacts.js +13 -0
  160. package/dist/src/task-config.d.ts +22 -0
  161. package/dist/src/task-config.js +1 -0
  162. package/dist/src/task-context-renderer.d.ts +29 -0
  163. package/dist/src/task-context-renderer.js +13 -0
  164. package/dist/src/task-data.d.ts +196 -0
  165. package/dist/src/task-data.js +13 -0
  166. package/dist/src/task-graph-primitives.d.ts +47 -0
  167. package/dist/src/task-graph-primitives.js +1 -0
  168. package/dist/src/task-source.d.ts +167 -0
  169. package/dist/src/task-source.js +24 -0
  170. package/dist/src/task-state-metadata.d.ts +21 -0
  171. package/dist/src/task-state-metadata.js +1 -0
  172. package/dist/src/task-state-paths.d.ts +14 -0
  173. package/dist/src/task-state-paths.js +13 -0
  174. package/dist/src/task-state-store.d.ts +36 -0
  175. package/dist/src/task-state-store.js +17 -0
  176. package/dist/src/task-tracker-state.d.ts +101 -0
  177. package/dist/src/task-tracker-state.js +39 -0
  178. package/dist/src/terminal.d.ts +130 -0
  179. package/dist/src/terminal.js +3 -0
  180. package/dist/src/tool-materializer.d.ts +36 -0
  181. package/dist/src/tool-materializer.js +13 -0
  182. package/dist/src/tool-registry.d.ts +3 -0
  183. package/dist/src/tool-registry.js +58 -0
  184. package/dist/src/toolchain-sources.d.ts +54 -0
  185. package/dist/src/toolchain-sources.js +17 -0
  186. package/dist/src/transport-config.d.ts +161 -0
  187. package/dist/src/transport-config.js +15 -0
  188. package/dist/src/validation.d.ts +14 -0
  189. package/dist/src/validation.js +3 -0
  190. package/dist/src/workflow-journal.d.ts +125 -0
  191. package/dist/src/workflow-journal.js +27 -0
  192. package/dist/src/workspace-config.d.ts +18 -0
  193. package/dist/src/workspace-config.js +13 -0
  194. package/dist/src/workspace-service.d.ts +16 -0
  195. package/dist/src/workspace-service.js +13 -0
  196. package/dist/src/workspace.d.ts +204 -0
  197. package/dist/src/workspace.js +76 -911
  198. package/package.json +55 -4
  199. package/dist/src/engine.js +0 -2278
  200. package/dist/src/providerRuntime.js +0 -1630
  201. package/dist/src/rig.js +0 -2374
  202. package/dist/src/server.js +0 -1053
  203. package/dist/src/serviceFabric.js +0 -1066
  204. package/dist/src/ws.js +0 -2968
  205. /package/dist/src/{ipc.js → agent-roles.js} +0 -0
@@ -0,0 +1,190 @@
1
+ // @bun
2
+ // packages/contracts/src/cli-output.ts
3
+ import { Schema } from "effect";
4
+ var CLI_OUTPUT_VERSION = 1;
5
+ var RigCliOutputEnvelope = Schema.Struct({
6
+ v: Schema.Literal(1),
7
+ command: Schema.String,
8
+ data: Schema.Unknown
9
+ });
10
+ var CliTaskSummary = Schema.Struct({
11
+ id: Schema.NullOr(Schema.String),
12
+ title: Schema.NullOr(Schema.String),
13
+ status: Schema.NullOr(Schema.String),
14
+ source: Schema.optional(Schema.String),
15
+ url: Schema.optional(Schema.String),
16
+ number: Schema.optional(Schema.Number),
17
+ labels: Schema.optional(Schema.Array(Schema.Unknown)),
18
+ assignees: Schema.optional(Schema.Array(Schema.Unknown)),
19
+ readiness: Schema.optional(Schema.Union([Schema.String, Schema.Boolean])),
20
+ validators: Schema.optional(Schema.Array(Schema.Unknown)),
21
+ raw: Schema.optional(Schema.Unknown)
22
+ });
23
+ var CliTaskFilters = Schema.Struct({
24
+ assignee: Schema.optional(Schema.String),
25
+ state: Schema.optional(Schema.String),
26
+ status: Schema.optional(Schema.String),
27
+ limit: Schema.optional(Schema.Number)
28
+ });
29
+ var CliRunRecord = Schema.Record(Schema.String, Schema.Unknown);
30
+ var CliInboxRecord = Schema.Record(Schema.String, Schema.Unknown);
31
+ var CliDoctorCheck = Schema.Struct({
32
+ id: Schema.String,
33
+ label: Schema.String,
34
+ status: Schema.Literals(["pass", "warn", "fail"]),
35
+ detail: Schema.optional(Schema.String),
36
+ remediation: Schema.optional(Schema.String)
37
+ });
38
+ var CliServerConnection = Schema.Union([
39
+ Schema.Struct({ kind: Schema.Literal("local"), mode: Schema.Literal("auto") }),
40
+ Schema.Struct({ kind: Schema.Literal("remote"), baseUrl: Schema.String })
41
+ ]);
42
+ var CliRepoConnectionState = Schema.Struct({
43
+ selected: Schema.String,
44
+ project: Schema.optional(Schema.String),
45
+ linkedAt: Schema.optional(Schema.String),
46
+ serverProjectRoot: Schema.optional(Schema.String),
47
+ serverProjectRootAlias: Schema.optional(Schema.String),
48
+ serverProjectRootBaseUrl: Schema.optional(Schema.String)
49
+ });
50
+ var CliRemoteProjectLink = Schema.Struct({
51
+ ok: Schema.Boolean,
52
+ status: Schema.String,
53
+ alias: Schema.optional(Schema.String),
54
+ baseUrl: Schema.optional(Schema.String),
55
+ repoSlug: Schema.optional(Schema.String),
56
+ serverProjectRoot: Schema.optional(Schema.String),
57
+ source: Schema.optional(Schema.String),
58
+ prepared: Schema.optional(Schema.Boolean),
59
+ validated: Schema.optional(Schema.Boolean),
60
+ statusCode: Schema.optional(Schema.Number),
61
+ message: Schema.String,
62
+ hint: Schema.String,
63
+ next: Schema.optional(Schema.String),
64
+ skippedCandidates: Schema.optional(Schema.Array(Schema.String))
65
+ });
66
+ var RigTaskListOutput = Schema.Struct({
67
+ v: Schema.Literal(1),
68
+ command: Schema.Literal("task list"),
69
+ data: Schema.Struct({
70
+ count: Schema.Number,
71
+ filters: CliTaskFilters,
72
+ raw: Schema.Boolean,
73
+ tasks: Schema.Array(CliTaskSummary)
74
+ })
75
+ });
76
+ var RigTaskShowOutput = Schema.Struct({
77
+ v: Schema.Literal(1),
78
+ command: Schema.Literal("task show"),
79
+ data: Schema.Struct({
80
+ task: CliTaskSummary,
81
+ raw: Schema.Boolean
82
+ })
83
+ });
84
+ var RigRunListOutput = Schema.Struct({
85
+ v: Schema.Literal(1),
86
+ command: Schema.Literal("run list"),
87
+ data: Schema.Struct({
88
+ runs: Schema.Array(CliRunRecord),
89
+ source: Schema.Literals(["local", "server"])
90
+ })
91
+ });
92
+ var RigRunShowOutput = Schema.Struct({
93
+ v: Schema.Literal(1),
94
+ command: Schema.Literal("run show"),
95
+ data: CliRunRecord
96
+ });
97
+ var RigServerUseOutput = Schema.Struct({
98
+ v: Schema.Literal(1),
99
+ command: Schema.Literal("server use"),
100
+ data: Schema.Struct({
101
+ selected: Schema.String,
102
+ repo: Schema.NullOr(CliRepoConnectionState),
103
+ remoteProjectLink: Schema.NullOr(CliRemoteProjectLink)
104
+ })
105
+ });
106
+ var RigServerStatusOutput = Schema.Struct({
107
+ v: Schema.Literal(1),
108
+ command: Schema.Literal("server status"),
109
+ data: Schema.Struct({
110
+ selected: Schema.String,
111
+ repo: Schema.NullOr(CliRepoConnectionState),
112
+ connections: Schema.Record(Schema.String, CliServerConnection),
113
+ remoteProjectLink: Schema.NullOr(CliRemoteProjectLink)
114
+ })
115
+ });
116
+ var RigServerRepairLinkOutput = Schema.Struct({
117
+ v: Schema.Literal(1),
118
+ command: Schema.Literal("server repair-link"),
119
+ data: CliRemoteProjectLink
120
+ });
121
+ var RigInboxApprovalsOutput = Schema.Struct({
122
+ v: Schema.Literal(1),
123
+ command: Schema.Literal("inbox approvals"),
124
+ data: Schema.Struct({
125
+ approvals: Schema.Array(CliInboxRecord)
126
+ })
127
+ });
128
+ var RigInboxInputsOutput = Schema.Struct({
129
+ v: Schema.Literal(1),
130
+ command: Schema.Literal("inbox inputs"),
131
+ data: Schema.Struct({
132
+ requests: Schema.Array(CliInboxRecord)
133
+ })
134
+ });
135
+ var RigDoctorCheckOutput = Schema.Struct({
136
+ v: Schema.Literal(1),
137
+ command: Schema.Literal("doctor check"),
138
+ data: Schema.Struct({
139
+ checks: Schema.Array(CliDoctorCheck),
140
+ failures: Schema.Number
141
+ })
142
+ });
143
+ var RigStatsData = Schema.Struct({
144
+ since: Schema.NullOr(Schema.String),
145
+ totalRuns: Schema.Number,
146
+ statusCounts: Schema.Record(Schema.String, Schema.Number),
147
+ completedRuns: Schema.Number,
148
+ failedRuns: Schema.Number,
149
+ needsAttentionRuns: Schema.Number,
150
+ completionRate: Schema.NullOr(Schema.Number),
151
+ failureRate: Schema.NullOr(Schema.Number),
152
+ needsAttentionRate: Schema.NullOr(Schema.Number),
153
+ medianCompletionMs: Schema.NullOr(Schema.Number),
154
+ steeringTotal: Schema.Number,
155
+ steeringPerRun: Schema.NullOr(Schema.Number),
156
+ stallTotal: Schema.Number,
157
+ approvalsRequested: Schema.Number,
158
+ approvalsApproved: Schema.Number,
159
+ approvalsRejected: Schema.Number,
160
+ approvalsPending: Schema.Number
161
+ });
162
+ var RigStatsOutput = Schema.Struct({
163
+ v: Schema.Literal(1),
164
+ command: Schema.Literal("stats show"),
165
+ data: RigStatsData
166
+ });
167
+ export {
168
+ RigTaskShowOutput,
169
+ RigTaskListOutput,
170
+ RigStatsOutput,
171
+ RigStatsData,
172
+ RigServerUseOutput,
173
+ RigServerStatusOutput,
174
+ RigServerRepairLinkOutput,
175
+ RigRunShowOutput,
176
+ RigRunListOutput,
177
+ RigInboxInputsOutput,
178
+ RigInboxApprovalsOutput,
179
+ RigDoctorCheckOutput,
180
+ RigCliOutputEnvelope,
181
+ CliTaskSummary,
182
+ CliTaskFilters,
183
+ CliServerConnection,
184
+ CliRunRecord,
185
+ CliRepoConnectionState,
186
+ CliRemoteProjectLink,
187
+ CliInboxRecord,
188
+ CliDoctorCheck,
189
+ CLI_OUTPUT_VERSION
190
+ };
@@ -0,0 +1,43 @@
1
+ import type { CapabilityId } from "./capability-id";
2
+ import type { CommandExecutionResult, OutputMode } from "./cli-output";
3
+ import type { HarnessEvent, HarnessEventType } from "./harness-events";
4
+ import type { PolicyConfig, PolicyMode } from "./guard";
5
+ export type CliRuntimeInitializeOptions = {
6
+ readonly projectRoot: string;
7
+ readonly dryRun: boolean;
8
+ readonly outputMode: OutputMode;
9
+ readonly runId?: string;
10
+ readonly policyMode?: PolicyMode;
11
+ };
12
+ export type CliRuntimeContext = {
13
+ readonly projectRoot: string;
14
+ readonly dryRun: boolean;
15
+ readonly outputMode: OutputMode;
16
+ readonly runId: string;
17
+ readonly policyMode?: PolicyMode;
18
+ readonly eventBus: {
19
+ getRunId(): string;
20
+ getEventsFile(): string;
21
+ getMemoryEvents(): HarnessEvent[];
22
+ emit<TPayload extends Record<string, unknown>>(type: HarnessEventType, payload: TPayload): Promise<HarnessEvent<TPayload>>;
23
+ };
24
+ readonly emitEvent: <TPayload extends Record<string, unknown>>(type: HarnessEventType, payload: TPayload) => Promise<void>;
25
+ readonly runCommand: (parts: string[]) => Promise<CommandExecutionResult>;
26
+ };
27
+ export type AgentShellMaterializationOptions = {
28
+ readonly env?: Record<string, string | undefined>;
29
+ readonly cwd?: string;
30
+ readonly moduleDir?: string;
31
+ readonly build?: (entrypoint: string, output: string, cwd: string, define?: Record<string, string>) => Promise<void>;
32
+ };
33
+ export interface CliRunnerService {
34
+ initializeRuntime(options: CliRuntimeInitializeOptions): Promise<CliRuntimeContext>;
35
+ runCommand(context: CliRuntimeContext, parts: string[]): Promise<CommandExecutionResult>;
36
+ ensureAgentShellBinary(projectRoot: string, options?: AgentShellMaterializationOptions): Promise<string>;
37
+ resolveAgentMaterializationSourceRoot(projectRoot: string, options?: AgentShellMaterializationOptions): string;
38
+ withProjectRoot(projectRoot: string): void;
39
+ formatCommand(parts: string[]): string;
40
+ loadPolicy(projectRoot: string): PolicyConfig;
41
+ }
42
+ export declare const CLI_RUNNER_CAPABILITY_ID = "rig.cli.runner";
43
+ export declare const CLI_RUNNER: CapabilityId<CliRunnerService>;
@@ -0,0 +1,13 @@
1
+ // @bun
2
+ // packages/contracts/src/capability-id.ts
3
+ function makeCapabilityId(id) {
4
+ return id;
5
+ }
6
+
7
+ // packages/contracts/src/cli-runner.ts
8
+ var CLI_RUNNER_CAPABILITY_ID = "rig.cli.runner";
9
+ var CLI_RUNNER = makeCapabilityId(CLI_RUNNER_CAPABILITY_ID);
10
+ export {
11
+ CLI_RUNNER_CAPABILITY_ID,
12
+ CLI_RUNNER
13
+ };
@@ -0,0 +1,58 @@
1
+ import type { TaskStatus } from "./graph";
2
+ import type { TaskDependencyProjection } from "./task-graph-primitives";
3
+ import type { RigTask } from "./task-source";
4
+ export type RigTaskBadgeProjection = TaskDependencyProjection & {
5
+ readonly source?: string | null | undefined;
6
+ readonly url?: string | null | undefined;
7
+ readonly body?: string | null | undefined;
8
+ readonly assignedTo?: string | readonly string[] | null | undefined;
9
+ readonly assignees?: readonly string[] | null | undefined;
10
+ };
11
+ export type TaskProjectionListInput = {
12
+ readonly tasks?: readonly RigTask[];
13
+ readonly currentUserLogin?: string | null;
14
+ readonly nextReadyTaskId?: string | null;
15
+ readonly assignedToMe?: boolean;
16
+ readonly limit?: number;
17
+ };
18
+ export type TaskProjectionListRow = {
19
+ readonly id: string;
20
+ readonly label: string;
21
+ readonly currentValue: string;
22
+ readonly description: string;
23
+ };
24
+ export type TaskProjectionBoardTask = {
25
+ readonly id: string;
26
+ readonly status: string;
27
+ readonly title: string;
28
+ readonly badge?: string;
29
+ readonly description?: string;
30
+ };
31
+ export type TaskProjectionStats = {
32
+ readonly total: number;
33
+ readonly ready: number;
34
+ readonly running: number;
35
+ };
36
+ export interface TaskProjectionCapability {
37
+ normalizeStatus(value: string | null | undefined): TaskStatus;
38
+ normalizePriority(value: number | string | null | undefined): number | null;
39
+ project(task: RigTask): RigTaskBadgeProjection;
40
+ assigneeText(task: RigTask): string;
41
+ title(task: RigTask | null | undefined): string;
42
+ id(task: RigTask | null | undefined): string | null;
43
+ status(task: RigTask | null | undefined): string;
44
+ description(task: RigTask): string;
45
+ listRows(input: TaskProjectionListInput): readonly TaskProjectionListRow[];
46
+ boardTasks(input: TaskProjectionListInput): readonly TaskProjectionBoardTask[];
47
+ stats(tasks: readonly RigTask[] | undefined): TaskProjectionStats | null;
48
+ }
49
+ export interface DispatchOutcomeCapability {
50
+ /** Map a raw engine error to a typed operator message, or null to fall back. */
51
+ humanize(error: unknown): string | null;
52
+ }
53
+ export interface CockpitCapabilities {
54
+ readonly taskProjection: TaskProjectionCapability;
55
+ readonly dispatchOutcome: DispatchOutcomeCapability;
56
+ }
57
+ export declare const TASK_PROJECTION_CAPABILITY_ID: import("./capability-id").CapabilityId<TaskProjectionCapability>;
58
+ export declare const DISPATCH_OUTCOME_CAPABILITY_ID: import("./capability-id").CapabilityId<DispatchOutcomeCapability>;
@@ -0,0 +1,13 @@
1
+ // @bun
2
+ // packages/contracts/src/capability-id.ts
3
+ function makeCapabilityId(id) {
4
+ return id;
5
+ }
6
+
7
+ // packages/contracts/src/cockpit.ts
8
+ var TASK_PROJECTION_CAPABILITY_ID = makeCapabilityId("rig:task-projection");
9
+ var DISPATCH_OUTCOME_CAPABILITY_ID = makeCapabilityId("rig:dispatch-outcome");
10
+ export {
11
+ TASK_PROJECTION_CAPABILITY_ID,
12
+ DISPATCH_OUTCOME_CAPABILITY_ID
13
+ };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Pure collab-session-viewer surface vocab.
3
+ *
4
+ * The neutral seam for the browser collab-session viewer SPA (the `collab-web`
5
+ * client, owned by `@rig/collab-session-browser-plugin`). Consumers resolve the
6
+ * surface off a plugin host without importing the plugin or the SPA. Carries no
7
+ * behaviour — like `browser.ts` / `notify.ts`.
8
+ *
9
+ * The plugin provides the concrete impl (built `dist/` location + the pi-wire
10
+ * link grammar) under {@link COLLAB_SESSION_VIEWER_CAPABILITY} via the
11
+ * `defineCapability` seam.
12
+ */
13
+ import type { CapabilityId } from "./capability-id";
14
+ /** Inputs to format a shareable collab-session viewer link (pi-wire grammar). */
15
+ export interface CollabSessionViewerLinkInput {
16
+ relayUrl: string;
17
+ roomId: string;
18
+ key: Uint8Array;
19
+ writeToken?: Uint8Array;
20
+ }
21
+ /** Capability id the collab-session-browser plugin registers its surface under. */
22
+ export declare const COLLAB_SESSION_VIEWER_CAPABILITY_ID = "collab.session-viewer";
23
+ /**
24
+ * The browser collab-session viewer surface. `distDir()` is the built SPA static
25
+ * root (serve it to hand a browser the live transcript viewer); `formatViewerLink`
26
+ * preserves the exact `@oh-my-pi/pi-wire` link grammar so a `roomId.key` link
27
+ * opens the streaming session.
28
+ */
29
+ export interface CollabSessionViewerSurface {
30
+ /** Absolute path to the built browser SPA dist directory (static assets). */
31
+ distDir(): string;
32
+ /** Format the shareable viewer link using the preserved pi-wire link grammar. */
33
+ formatViewerLink(input: CollabSessionViewerLinkInput): string;
34
+ }
35
+ /** Typed capability id the plugin provides and consumers require. */
36
+ export declare const COLLAB_SESSION_VIEWER_CAPABILITY: CapabilityId<CollabSessionViewerSurface>;
@@ -0,0 +1,13 @@
1
+ // @bun
2
+ // packages/contracts/src/capability-id.ts
3
+ function makeCapabilityId(id) {
4
+ return id;
5
+ }
6
+
7
+ // packages/contracts/src/collab-session-viewer.ts
8
+ var COLLAB_SESSION_VIEWER_CAPABILITY_ID = "collab.session-viewer";
9
+ var COLLAB_SESSION_VIEWER_CAPABILITY = makeCapabilityId(COLLAB_SESSION_VIEWER_CAPABILITY_ID);
10
+ export {
11
+ COLLAB_SESSION_VIEWER_CAPABILITY_ID,
12
+ COLLAB_SESSION_VIEWER_CAPABILITY
13
+ };