@h-rig/contracts 0.0.6-alpha.17 → 0.0.6-alpha.170

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 (176) hide show
  1. package/dist/index.cjs +3373 -0
  2. package/dist/index.mjs +3332 -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/browser.d.ts +80 -0
  9. package/dist/src/browser.js +13 -0
  10. package/dist/src/capability-id.d.ts +22 -0
  11. package/dist/src/capability-id.js +8 -0
  12. package/dist/src/cli-output.d.ts +348 -0
  13. package/dist/src/cli-output.js +190 -0
  14. package/dist/src/cli-runner.d.ts +43 -0
  15. package/dist/src/cli-runner.js +13 -0
  16. package/dist/src/cockpit.d.ts +28 -0
  17. package/dist/src/cockpit.js +13 -0
  18. package/dist/src/collab-session-viewer.d.ts +36 -0
  19. package/dist/src/collab-session-viewer.js +13 -0
  20. package/dist/src/config.d.ts +551 -0
  21. package/dist/src/config.js +765 -162
  22. package/dist/src/control-plane-types.d.ts +323 -0
  23. package/dist/src/control-plane-types.js +13 -0
  24. package/dist/src/conversation.d.ts +50 -0
  25. package/dist/src/conversation.js +3 -0
  26. package/dist/src/dependency-preflight.d.ts +43 -0
  27. package/dist/src/dependency-preflight.js +13 -0
  28. package/dist/src/docs-drift.d.ts +10 -0
  29. package/dist/src/docs-drift.js +12 -0
  30. package/dist/src/doctor.d.ts +90 -0
  31. package/dist/src/doctor.js +13 -0
  32. package/dist/src/drift.d.ts +28 -0
  33. package/dist/src/drift.js +69 -0
  34. package/dist/src/editor.d.ts +25 -0
  35. package/dist/src/editor.js +3 -0
  36. package/dist/src/errors.d.ts +13 -0
  37. package/dist/src/errors.js +17 -0
  38. package/dist/src/git.d.ts +152 -0
  39. package/dist/src/git.js +3 -0
  40. package/dist/src/github.d.ts +285 -0
  41. package/dist/src/github.js +17 -0
  42. package/dist/src/graph.d.ts +360 -0
  43. package/dist/src/graph.js +137 -1
  44. package/dist/src/guard.d.ts +111 -0
  45. package/dist/src/guard.js +6 -0
  46. package/dist/src/harness-events.d.ts +8 -0
  47. package/dist/src/harness-events.js +1 -0
  48. package/dist/src/help-catalog.d.ts +41 -0
  49. package/dist/src/help-catalog.js +13 -0
  50. package/dist/src/host.d.ts +41 -0
  51. package/dist/src/host.js +13 -0
  52. package/dist/src/identity.d.ts +44 -0
  53. package/dist/src/identity.js +1 -0
  54. package/dist/src/index.d.ts +84 -0
  55. package/dist/src/index.js +2746 -3962
  56. package/dist/src/isolation.d.ts +213 -0
  57. package/dist/src/isolation.js +13 -0
  58. package/dist/src/kernel.d.ts +200 -0
  59. package/dist/src/kernel.js +261 -0
  60. package/dist/src/keybindings.d.ts +71 -0
  61. package/dist/src/keybindings.js +3 -0
  62. package/dist/src/layout.d.ts +49 -0
  63. package/dist/src/layout.js +10 -0
  64. package/dist/src/lifecycle-capabilities.d.ts +186 -0
  65. package/dist/src/lifecycle-capabilities.js +33 -0
  66. package/dist/src/managed-repos.d.ts +239 -0
  67. package/dist/src/managed-repos.js +33 -0
  68. package/dist/src/memory.d.ts +199 -0
  69. package/dist/src/memory.js +15 -0
  70. package/dist/src/model.d.ts +77 -0
  71. package/dist/src/native-toolchain.d.ts +46 -0
  72. package/dist/src/native-toolchain.js +13 -0
  73. package/dist/src/notify.d.ts +46 -0
  74. package/dist/src/notify.js +13 -0
  75. package/dist/src/orchestration.d.ts +43 -0
  76. package/dist/src/orchestration.js +28 -961
  77. package/dist/src/panel-protocol.d.ts +17 -0
  78. package/dist/src/panel-protocol.js +10 -0
  79. package/dist/src/pi-session.d.ts +113 -0
  80. package/dist/src/pi-session.js +1 -0
  81. package/dist/src/planning.d.ts +64 -0
  82. package/dist/src/planning.js +90 -0
  83. package/dist/src/plugin-hooks.d.ts +51 -0
  84. package/dist/src/plugin-hooks.js +386 -0
  85. package/dist/src/plugin.d.ts +476 -0
  86. package/dist/src/plugin.js +346 -64
  87. package/dist/src/policy.d.ts +16 -0
  88. package/dist/src/policy.js +3 -0
  89. package/dist/src/project.d.ts +71 -0
  90. package/dist/src/project.js +3 -0
  91. package/dist/src/prompt.d.ts +29 -0
  92. package/dist/src/prompt.js +13 -0
  93. package/dist/src/protocol-version.d.ts +21 -0
  94. package/dist/src/protocol-version.js +6 -0
  95. package/dist/src/provider-instructions.d.ts +41 -0
  96. package/dist/src/provider-instructions.js +13 -0
  97. package/dist/src/provider.d.ts +105 -0
  98. package/dist/src/provider.js +4 -824
  99. package/dist/src/remote.d.ts +318 -0
  100. package/dist/src/remote.js +238 -1078
  101. package/dist/src/review.d.ts +18 -0
  102. package/dist/src/review.js +3 -0
  103. package/dist/src/rollups.d.ts +41 -0
  104. package/dist/src/rollups.js +70 -0
  105. package/dist/src/run-discovery.d.ts +79 -0
  106. package/dist/src/run-discovery.js +13 -0
  107. package/dist/src/run-dispatch.d.ts +34 -0
  108. package/dist/src/run-dispatch.js +13 -0
  109. package/dist/src/run-identity.d.ts +47 -0
  110. package/dist/src/run-identity.js +13 -0
  111. package/dist/src/run-journal.d.ts +694 -0
  112. package/dist/src/run-journal.js +569 -0
  113. package/dist/src/run-read-model.d.ts +255 -0
  114. package/dist/src/run-read-model.js +13 -0
  115. package/dist/src/run-record.d.ts +45 -0
  116. package/dist/src/run-record.js +1 -0
  117. package/dist/src/run-registry-backbone.d.ts +56 -0
  118. package/dist/src/run-registry-backbone.js +13 -0
  119. package/dist/src/run-session-journal.d.ts +69 -0
  120. package/dist/src/run-session-journal.js +78 -0
  121. package/dist/src/run-status.d.ts +10 -0
  122. package/dist/src/run-status.js +27 -0
  123. package/dist/src/run-timeline.d.ts +7 -0
  124. package/dist/src/run-timeline.js +1 -0
  125. package/dist/src/runtime-task-context.d.ts +82 -0
  126. package/dist/src/runtime-task-context.js +1 -0
  127. package/dist/src/runtime.d.ts +103 -0
  128. package/dist/src/runtime.js +73 -906
  129. package/dist/src/session-asset-materializer.d.ts +35 -0
  130. package/dist/src/session-asset-materializer.js +13 -0
  131. package/dist/src/setup.d.ts +88 -0
  132. package/dist/src/setup.js +13 -0
  133. package/dist/src/stage.d.ts +245 -0
  134. package/dist/src/stage.js +169 -0
  135. package/dist/src/supervisor-journal.d.ts +204 -0
  136. package/dist/src/supervisor-journal.js +334 -0
  137. package/dist/src/task-artifacts.d.ts +33 -0
  138. package/dist/src/task-artifacts.js +13 -0
  139. package/dist/src/task-context-renderer.d.ts +29 -0
  140. package/dist/src/task-context-renderer.js +13 -0
  141. package/dist/src/task-data.d.ts +198 -0
  142. package/dist/src/task-data.js +13 -0
  143. package/dist/src/task-graph-primitives.d.ts +47 -0
  144. package/dist/src/task-graph-primitives.js +1 -0
  145. package/dist/src/task-source.d.ts +136 -0
  146. package/dist/src/task-source.js +16 -0
  147. package/dist/src/task-state-metadata.d.ts +21 -0
  148. package/dist/src/task-state-metadata.js +1 -0
  149. package/dist/src/task-state-store.d.ts +16 -0
  150. package/dist/src/task-state-store.js +13 -0
  151. package/dist/src/task-tracker-state.d.ts +106 -0
  152. package/dist/src/task-tracker-state.js +39 -0
  153. package/dist/src/terminal.d.ts +130 -0
  154. package/dist/src/terminal.js +3 -0
  155. package/dist/src/tool-materializer.d.ts +36 -0
  156. package/dist/src/tool-materializer.js +13 -0
  157. package/dist/src/tool-registry.d.ts +3 -0
  158. package/dist/src/tool-registry.js +58 -0
  159. package/dist/src/toolchain-sources.d.ts +54 -0
  160. package/dist/src/toolchain-sources.js +17 -0
  161. package/dist/src/validation.d.ts +14 -0
  162. package/dist/src/validation.js +3 -0
  163. package/dist/src/workflow-journal.d.ts +92 -0
  164. package/dist/src/workflow-journal.js +18 -0
  165. package/dist/src/workspace-config.d.ts +18 -0
  166. package/dist/src/workspace-config.js +13 -0
  167. package/dist/src/workspace.d.ts +204 -0
  168. package/dist/src/workspace.js +76 -911
  169. package/package.json +51 -4
  170. package/dist/src/engine.js +0 -2278
  171. package/dist/src/providerRuntime.js +0 -1630
  172. package/dist/src/rig.js +0 -2374
  173. package/dist/src/server.js +0 -1053
  174. package/dist/src/serviceFabric.js +0 -1066
  175. package/dist/src/ws.js +0 -2968
  176. /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,28 @@
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 interface TaskProjectionCapability {
12
+ normalizeStatus(value: string | null | undefined): TaskStatus;
13
+ normalizePriority(value: number | string | null | undefined): number | null;
14
+ project(task: RigTask): RigTaskBadgeProjection;
15
+ assigneeText(task: RigTask): string;
16
+ title(task: RigTask | null | undefined): string;
17
+ id(task: RigTask | null | undefined): string | null;
18
+ }
19
+ export interface DispatchOutcomeCapability {
20
+ /** Map a raw engine error to a typed operator message, or null to fall back. */
21
+ humanize(error: unknown): string | null;
22
+ }
23
+ export interface CockpitCapabilities {
24
+ readonly taskProjection: TaskProjectionCapability;
25
+ readonly dispatchOutcome: DispatchOutcomeCapability;
26
+ }
27
+ export declare const TASK_PROJECTION_CAPABILITY_ID: import("./capability-id").CapabilityId<TaskProjectionCapability>;
28
+ 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
+ };