@akshar5/cohall 0.3.2 → 0.3.4
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/CHANGELOG.md +14 -0
- package/bin/cohall.js +44 -36
- package/bin/cohall.js.map +3 -3
- package/package.json +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.4](https://github.com/AksharP5/cohall/compare/v0.3.3...v0.3.4) (2026-08-06)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* stream large provider event output ([565259a](https://github.com/AksharP5/cohall/commit/565259a59e45257785958fbc8430bcbfd30606a1))
|
|
9
|
+
|
|
10
|
+
## [0.3.3](https://github.com/AksharP5/cohall/compare/v0.3.2...v0.3.3) (2026-08-06)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* patch MCP dependencies and release runtime ([#13](https://github.com/AksharP5/cohall/issues/13)) ([4155c00](https://github.com/AksharP5/cohall/commit/4155c00583cbe71e0afd85cc0438085dbdfa546c))
|
|
16
|
+
|
|
3
17
|
## [0.3.2](https://github.com/AksharP5/cohall/compare/v0.3.1...v0.3.2) (2026-08-06)
|
|
4
18
|
|
|
5
19
|
|
package/bin/cohall.js
CHANGED
|
@@ -17,7 +17,7 @@ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
|
17
17
|
|
|
18
18
|
// packages/protocol/src/index.ts
|
|
19
19
|
import { Schema } from "effect";
|
|
20
|
-
var version = "0.3.
|
|
20
|
+
var version = "0.3.4", bounded = (maxLength) => Schema.String.check(Schema.isMinLength(1), Schema.isMaxLength(maxLength)), optionalText = (maxLength) => Schema.String.check(Schema.isMaxLength(maxLength)), boundedArray = (schema, maxLength) => Schema.Array(schema).check(Schema.isMaxLength(maxLength)), uuid = (name) => Schema.String.check(Schema.isUUID(4)).pipe(Schema.brand(name)), isoTimestamp = (name) => Schema.String.check(Schema.isPattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?Z$/, {
|
|
21
21
|
expected: "an ISO-8601 UTC timestamp"
|
|
22
22
|
})).pipe(Schema.brand(name)), DeviceId, ThreadId, MessageId, TaskId, AuthSessionId, Timestamp, Platform, Provider, DeviceStatus, TaskStatus, TaskTraceEventKind, MessageRole, ConnectionRole, AuthSession, CreatePairingInput, PairingCredential, ExchangePairingInput, SessionCredential, PairingResult, Capability, Workspace, Device, Thread, Message, Task, TaskTraceEvent, TaskTrace, ThreadContext, CreateTaskInput, SocketEvent, ErrorResponse, terminalTaskStatuses, isTerminalTask = (task) => terminalTaskStatuses.has(task.status), now = () => Timestamp.make(new Date().toISOString()), makeDeviceId = () => DeviceId.make(crypto.randomUUID()), makeThreadId = () => ThreadId.make(crypto.randomUUID()), makeMessageId = () => MessageId.make(crypto.randomUUID()), makeTaskId = () => TaskId.make(crypto.randomUUID()), makeAuthSessionId = () => AuthSessionId.make(crypto.randomUUID()), decodeCreatePairingInput, decodeExchangePairingInput, decodeCreateTaskInput, decodeDevice, decodeSocketEvent;
|
|
23
23
|
var init_src = __esm(() => {
|
|
@@ -1741,6 +1741,7 @@ import { accessSync, constants } from "node:fs";
|
|
|
1741
1741
|
import { homedir, platform } from "node:os";
|
|
1742
1742
|
import { delimiter, extname, isAbsolute, join } from "node:path";
|
|
1743
1743
|
import { spawn } from "node:child_process";
|
|
1744
|
+
import { createInterface } from "node:readline";
|
|
1744
1745
|
|
|
1745
1746
|
class ProviderUnavailableError extends Schema3.TaggedErrorClass()("CohallProvider.Unavailable", { provider: Provider, message: Schema3.String }) {
|
|
1746
1747
|
}
|
|
@@ -1897,29 +1898,40 @@ var command = (options) => {
|
|
|
1897
1898
|
return opencodeCommand(options);
|
|
1898
1899
|
}
|
|
1899
1900
|
};
|
|
1900
|
-
var
|
|
1901
|
+
var forEachJsonEvent = async (stdout, onEvent) => {
|
|
1902
|
+
const lines = createInterface({ input: stdout, crlfDelay: Infinity });
|
|
1903
|
+
try {
|
|
1904
|
+
for await (const line of lines) {
|
|
1905
|
+
if (line.trim().length === 0) {
|
|
1906
|
+
continue;
|
|
1907
|
+
}
|
|
1908
|
+
if (Buffer.byteLength(line) > 1024 * 1024) {
|
|
1909
|
+
throw new Error("Provider event exceeded 1024 KiB");
|
|
1910
|
+
}
|
|
1911
|
+
const event = record(JSON.parse(line));
|
|
1912
|
+
if (event !== undefined) {
|
|
1913
|
+
onEvent(event);
|
|
1914
|
+
}
|
|
1915
|
+
}
|
|
1916
|
+
} finally {
|
|
1917
|
+
lines.close();
|
|
1918
|
+
}
|
|
1919
|
+
};
|
|
1920
|
+
var parseCodex = async (stdout, existingSession) => {
|
|
1901
1921
|
let result = "";
|
|
1902
1922
|
let sessionId = existingSession;
|
|
1903
|
-
|
|
1904
|
-
`)) {
|
|
1905
|
-
if (line.trim().length === 0) {
|
|
1906
|
-
continue;
|
|
1907
|
-
}
|
|
1908
|
-
const event = record(JSON.parse(line));
|
|
1909
|
-
if (event === undefined) {
|
|
1910
|
-
continue;
|
|
1911
|
-
}
|
|
1923
|
+
await forEachJsonEvent(stdout, (event) => {
|
|
1912
1924
|
if (text(event.type) === "thread.started") {
|
|
1913
1925
|
sessionId = text(event.thread_id) ?? sessionId;
|
|
1914
1926
|
}
|
|
1915
1927
|
if (text(event.type) !== "item.completed") {
|
|
1916
|
-
|
|
1928
|
+
return;
|
|
1917
1929
|
}
|
|
1918
1930
|
const item = record(event.item);
|
|
1919
1931
|
if (text(item?.type) === "agent_message") {
|
|
1920
1932
|
result = text(item?.text) ?? text(item?.content) ?? result;
|
|
1921
1933
|
}
|
|
1922
|
-
}
|
|
1934
|
+
});
|
|
1923
1935
|
return {
|
|
1924
1936
|
result: result || "Codex completed the task without a text response.",
|
|
1925
1937
|
...sessionId === undefined ? {} : { sessionId }
|
|
@@ -1953,18 +1965,10 @@ var openCodeError = (event) => {
|
|
|
1953
1965
|
}
|
|
1954
1966
|
return message === undefined ? "OpenCode reported an error" : `OpenCode: ${message}`;
|
|
1955
1967
|
};
|
|
1956
|
-
var parseOpenCode = (stdout, existingSession) => {
|
|
1968
|
+
var parseOpenCode = async (stdout, existingSession) => {
|
|
1957
1969
|
let result = "";
|
|
1958
1970
|
let sessionId = existingSession;
|
|
1959
|
-
|
|
1960
|
-
`)) {
|
|
1961
|
-
if (line.trim().length === 0) {
|
|
1962
|
-
continue;
|
|
1963
|
-
}
|
|
1964
|
-
const event = record(JSON.parse(line));
|
|
1965
|
-
if (event === undefined) {
|
|
1966
|
-
continue;
|
|
1967
|
-
}
|
|
1971
|
+
await forEachJsonEvent(stdout, (event) => {
|
|
1968
1972
|
const failure = openCodeError(event);
|
|
1969
1973
|
if (failure !== undefined) {
|
|
1970
1974
|
throw new Error(failure);
|
|
@@ -1974,20 +1978,25 @@ var parseOpenCode = (stdout, existingSession) => {
|
|
|
1974
1978
|
if (content !== undefined && content.length > 0) {
|
|
1975
1979
|
result = content;
|
|
1976
1980
|
}
|
|
1977
|
-
}
|
|
1981
|
+
});
|
|
1978
1982
|
if (result.length === 0) {
|
|
1979
1983
|
throw new Error("OpenCode produced no result; verify its authentication and use a supported project workspace");
|
|
1980
1984
|
}
|
|
1981
1985
|
return { result, ...sessionId === undefined ? {} : { sessionId } };
|
|
1982
1986
|
};
|
|
1983
|
-
var parse = (options, stdout) => {
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1987
|
+
var parse = async (options, stdout, onFailure) => {
|
|
1988
|
+
try {
|
|
1989
|
+
switch (options.provider) {
|
|
1990
|
+
case "codex":
|
|
1991
|
+
return await parseCodex(stdout, options.sessionId);
|
|
1992
|
+
case "claude-code":
|
|
1993
|
+
return parseClaude(await boundedText(stdout, 1024 * 1024, onFailure), options.sessionId);
|
|
1994
|
+
case "opencode":
|
|
1995
|
+
return await parseOpenCode(stdout, options.sessionId);
|
|
1996
|
+
}
|
|
1997
|
+
} catch (cause) {
|
|
1998
|
+
onFailure();
|
|
1999
|
+
throw cause;
|
|
1991
2000
|
}
|
|
1992
2001
|
};
|
|
1993
2002
|
var byteLength = (value) => new TextEncoder().encode(value).byteLength;
|
|
@@ -2029,8 +2038,8 @@ var run = (options) => Effect2.tryPromise({
|
|
|
2029
2038
|
};
|
|
2030
2039
|
signal.addEventListener("abort", terminate, { once: true });
|
|
2031
2040
|
child.stdin.end(options.provider === "opencode" ? undefined : options.prompt);
|
|
2032
|
-
const [
|
|
2033
|
-
|
|
2041
|
+
const [result, stderr, exitCode] = await Promise.all([
|
|
2042
|
+
parse(options, child.stdout, terminate),
|
|
2034
2043
|
captureText(child.stderr, 64 * 1024),
|
|
2035
2044
|
exited
|
|
2036
2045
|
]);
|
|
@@ -2045,7 +2054,6 @@ var run = (options) => Effect2.tryPromise({
|
|
|
2045
2054
|
exitCode
|
|
2046
2055
|
});
|
|
2047
2056
|
}
|
|
2048
|
-
const result = parse(options, stdout);
|
|
2049
2057
|
if (byteLength(result.result) > 131072) {
|
|
2050
2058
|
throw new ProviderRunError({
|
|
2051
2059
|
provider: options.provider,
|
|
@@ -3435,4 +3443,4 @@ await main().catch((cause) => {
|
|
|
3435
3443
|
process.exitCode = 1;
|
|
3436
3444
|
});
|
|
3437
3445
|
|
|
3438
|
-
//# debugId=
|
|
3446
|
+
//# debugId=492323E24FE9814364756E2164756E21
|
package/bin/cohall.js.map
CHANGED
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
"#!/usr/bin/env node\n\nimport { version } from \"@cohall/protocol\"\nimport { Effect } from \"effect\"\nimport { printHelp, runCli } from \"./cli.ts\"\nimport { loadClientConfiguration, loadDeviceConfiguration } from \"./config.ts\"\nimport { runDaemon } from \"./daemon.ts\"\nimport { runMcp } from \"./mcp.ts\"\n\nconst main = async (): Promise<void> => {\n const command = process.argv[2]\n if (command === undefined || command === \"help\" || command === \"--help\" || command === \"-h\") {\n printHelp()\n return\n }\n if (command === \"--version\" || command === \"version\") {\n console.log(version)\n return\n }\n if ([\"device\", \"relay\", \"mcp\"].includes(command) && process.argv.length > 3) {\n const arguments_ = process.argv.slice(3)\n if (arguments_.length === 1 && [\"--help\", \"-h\", \"help\"].includes(arguments_[0] ?? \"\")) {\n printHelp()\n return\n }\n throw new Error(`${command} does not accept arguments`)\n }\n if (command === \"relay\") {\n const { runRelay } = await import(\"@cohall/relay\")\n await runRelay()\n return\n }\n if (command === \"device\") {\n const configuration = await Effect.runPromise(loadDeviceConfiguration)\n await Effect.runPromise(runDaemon(configuration))\n return\n }\n if (command === \"mcp\") {\n const configuration = await Effect.runPromise(loadClientConfiguration)\n await runMcp(configuration)\n return\n }\n await runCli(command, process.argv.slice(3))\n}\n\nawait main().catch((cause: unknown) => {\n console.error(\n JSON.stringify({ error: cause instanceof Error ? cause.message : String(cause) }, null, 2),\n )\n process.exitCode = 1\n})\n",
|
|
12
12
|
"import {\n AuthSession,\n CreatePairingInput,\n CreateTaskInput,\n Device,\n ErrorResponse,\n ExchangePairingInput,\n PairingCredential,\n PairingResult,\n Task,\n TaskTrace,\n ThreadContext,\n type AuthSessionId,\n type TaskId,\n type ThreadId,\n} from \"@cohall/protocol\"\nimport { Context, Effect, Layer, Schema } from \"effect\"\n\nexport interface RelayClientOptions {\n readonly baseUrl: string\n readonly token: string\n}\n\nexport class RelayRequestError extends Schema.TaggedErrorClass<RelayRequestError>()(\n \"RelayClient.RequestError\",\n {\n operation: Schema.String,\n message: Schema.String,\n status: Schema.optionalKey(Schema.Number),\n },\n) {}\n\nexport class RelayDecodeError extends Schema.TaggedErrorClass<RelayDecodeError>()(\n \"RelayClient.DecodeError\",\n { operation: Schema.String, message: Schema.String },\n) {}\n\nexport type RelayClientError = RelayRequestError | RelayDecodeError\n\nexport interface Interface {\n readonly devices: () => Effect.Effect<ReadonlyArray<Device>, RelayClientError>\n readonly createTask: (input: CreateTaskInput) => Effect.Effect<Task, RelayClientError>\n readonly getTask: (taskId: TaskId) => Effect.Effect<Task, RelayClientError>\n readonly traceTask: (taskId: TaskId) => Effect.Effect<TaskTrace, RelayClientError>\n readonly cancelTask: (taskId: TaskId) => Effect.Effect<Task, RelayClientError>\n readonly threadContext: (threadId: ThreadId) => Effect.Effect<ThreadContext, RelayClientError>\n readonly createPairing: (\n input: CreatePairingInput,\n ) => Effect.Effect<PairingCredential, RelayClientError>\n readonly authSessions: () => Effect.Effect<ReadonlyArray<AuthSession>, RelayClientError>\n readonly revokeAuthSession: (\n sessionId: AuthSessionId,\n ) => Effect.Effect<AuthSession, RelayClientError>\n}\n\nexport class Service extends Context.Service<Service, Interface>()(\"@cohall/RelayClient\") {}\n\nconst normalizeBaseUrl = (url: string): string => url.replace(/\\/+$/, \"\")\n\nconst jsonBody = async (response: Response, operation: string): Promise<unknown> => {\n if (response.body === null) {\n throw new RelayDecodeError({ operation, message: \"Relay returned an empty response\" })\n }\n const reader = response.body.getReader()\n const chunks: Array<Uint8Array> = []\n let size = 0\n while (true) {\n const chunk = await reader.read()\n if (chunk.done) {\n break\n }\n size += chunk.value.byteLength\n if (size > 2 * 1024 * 1024) {\n await reader.cancel()\n throw new RelayDecodeError({ operation, message: \"Relay response exceeded 2 MiB\" })\n }\n chunks.push(chunk.value)\n }\n const bytes = new Uint8Array(size)\n let offset = 0\n for (const chunk of chunks) {\n bytes.set(chunk, offset)\n offset += chunk.byteLength\n }\n const text = new TextDecoder().decode(bytes)\n try {\n return JSON.parse(text) as unknown\n } catch (cause) {\n throw new RelayDecodeError({\n operation,\n message: cause instanceof Error ? cause.message : String(cause),\n })\n }\n}\n\nconst responseMessage = async (response: Response, operation: string): Promise<string> => {\n const json = await jsonBody(response, operation).catch(() => undefined)\n const decoded = Schema.decodeUnknownOption(ErrorResponse)(json)\n return decoded._tag === \"Some\"\n ? decoded.value.error\n : `${response.status} ${response.statusText}`.trim()\n}\n\nexport const make = (options: RelayClientOptions): Interface => {\n const baseUrl = normalizeBaseUrl(options.baseUrl)\n\n const request = <S extends Schema.Top & { readonly DecodingServices: never }>(\n operation: string,\n path: string,\n schema: S,\n init?: RequestInit,\n ): Effect.Effect<S[\"Type\"], RelayClientError> =>\n Effect.gen(function* () {\n const response = yield* Effect.tryPromise({\n try: (signal) =>\n fetch(`${baseUrl}${path}`, {\n ...init,\n signal: AbortSignal.any([signal, AbortSignal.timeout(30_000)]),\n headers: {\n authorization: `Bearer ${options.token}`,\n \"content-type\": \"application/json\",\n ...init?.headers,\n },\n }),\n catch: (cause) =>\n new RelayRequestError({\n operation,\n message: cause instanceof Error ? cause.message : String(cause),\n }),\n })\n if (!response.ok) {\n return yield* Effect.fail(\n new RelayRequestError({\n operation,\n message: yield* Effect.promise(() => responseMessage(response, operation)),\n status: response.status,\n }),\n )\n }\n const json = yield* Effect.tryPromise({\n try: () => jsonBody(response, operation),\n catch: (cause) =>\n cause instanceof RelayDecodeError\n ? cause\n : new RelayDecodeError({ operation, message: String(cause) }),\n })\n return yield* Schema.decodeUnknownEffect(schema)(json).pipe(\n Effect.mapError((cause) => new RelayDecodeError({ operation, message: String(cause) })),\n )\n })\n\n return Service.of({\n devices: () => request(\"RelayClient.devices\", \"/api/devices\", Schema.Array(Device)),\n createTask: (input) =>\n request(\"RelayClient.createTask\", \"/api/tasks\", Task, {\n method: \"POST\",\n body: JSON.stringify(input),\n }),\n getTask: (taskId) =>\n request(\"RelayClient.getTask\", `/api/tasks/${encodeURIComponent(taskId)}`, Task),\n traceTask: (taskId) =>\n request(\"RelayClient.traceTask\", `/api/tasks/${encodeURIComponent(taskId)}/trace`, TaskTrace),\n cancelTask: (taskId) =>\n request(\"RelayClient.cancelTask\", `/api/tasks/${encodeURIComponent(taskId)}/cancel`, Task, {\n method: \"POST\",\n }),\n threadContext: (threadId) =>\n request(\n \"RelayClient.threadContext\",\n `/api/threads/${encodeURIComponent(threadId)}`,\n ThreadContext,\n ),\n createPairing: (input) =>\n request(\"RelayClient.createPairing\", \"/api/auth/pairings\", PairingCredential, {\n method: \"POST\",\n body: JSON.stringify(input),\n }),\n authSessions: () =>\n request(\"RelayClient.authSessions\", \"/api/auth/sessions\", Schema.Array(AuthSession)),\n revokeAuthSession: (sessionId) =>\n request(\n \"RelayClient.revokeAuthSession\",\n `/api/auth/sessions/${encodeURIComponent(sessionId)}/revoke`,\n AuthSession,\n { method: \"POST\" },\n ),\n })\n}\n\nexport const exchangePairing = (\n baseUrl: string,\n input: ExchangePairingInput,\n): Effect.Effect<PairingResult, RelayClientError> =>\n Effect.gen(function* () {\n const operation = \"RelayClient.exchangePairing\"\n const response = yield* Effect.tryPromise({\n try: (signal) =>\n fetch(`${normalizeBaseUrl(baseUrl)}/api/auth/pair`, {\n method: \"POST\",\n signal: AbortSignal.any([signal, AbortSignal.timeout(30_000)]),\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(input),\n }),\n catch: (cause) =>\n new RelayRequestError({\n operation,\n message: cause instanceof Error ? cause.message : String(cause),\n }),\n })\n if (!response.ok) {\n return yield* Effect.fail(\n new RelayRequestError({\n operation,\n message: yield* Effect.promise(() => responseMessage(response, operation)),\n status: response.status,\n }),\n )\n }\n const json = yield* Effect.tryPromise({\n try: () => jsonBody(response, operation),\n catch: (cause) =>\n cause instanceof RelayDecodeError\n ? cause\n : new RelayDecodeError({ operation, message: String(cause) }),\n })\n return yield* Schema.decodeUnknownEffect(PairingResult)(json).pipe(\n Effect.mapError((cause) => new RelayDecodeError({ operation, message: String(cause) })),\n )\n })\n\nexport const layer = (options: RelayClientOptions) => Layer.succeed(Service, make(options))\nexport * as RelayClient from \"./index.ts\"\n",
|
|
13
13
|
"import { RelayClient, exchangePairing } from \"@cohall/client\"\nimport { AuthSessionId, Provider, TaskId, ThreadId, makeDeviceId, version } from \"@cohall/protocol\"\nimport * as Providers from \"@cohall/providers\"\nimport { Effect, Schema } from \"effect\"\nimport { access, mkdir, readFile, stat, writeFile } from \"node:fs/promises\"\nimport { homedir } from \"node:os\"\nimport { dirname, join } from \"node:path\"\nimport skill from \"../../../skills/cohall/SKILL.md\" with { type: \"text\" }\nimport {\n StoredConfiguration,\n configurationPath,\n loadClientConfiguration,\n loadOwnerConfiguration,\n makeStoredConfiguration,\n normalizeRelayUrl,\n parseProviders,\n parseWorkspaces,\n readStoredConfiguration,\n writeStoredConfiguration,\n} from \"./config.ts\"\nimport {\n createDelegation,\n followTaskTrace,\n taskResult,\n threadContext,\n waitForTask,\n} from \"./delegation.ts\"\n\ninterface Arguments {\n readonly options: ReadonlyMap<string, ReadonlyArray<string> | true>\n readonly positionals: ReadonlyArray<string>\n}\n\nconst valueOptions = new Set([\n \"context\",\n \"context-file\",\n \"label\",\n \"model\",\n \"name\",\n \"prompt\",\n \"prompt-file\",\n \"provider\",\n \"providers\",\n \"relay\",\n \"sandbox\",\n \"target\",\n \"thread\",\n \"timeout\",\n \"token-file\",\n \"workspace\",\n])\nconst flagOptions = new Set([\"client-only\", \"follow\", \"no-wait\"])\nconst aliases = new Map([\n [\"-c\", \"context\"],\n [\"-p\", \"prompt\"],\n [\"-t\", \"target\"],\n [\"-T\", \"thread\"],\n [\"-w\", \"workspace\"],\n])\n\nconst help = `Cohall connects agents running on your own devices.\n\nUsage:\n cohall join --relay <url> --workspace <path> [--providers list] [--token-file <path>]\n cohall configure [--relay url] [--name name] [--workspace path]\n [--providers codex,opencode|auto] [--model id]\n cohall config\n cohall devices\n cohall delegate [prompt] [--target @device] [--provider provider]\n [--context text] [--thread uuid] [--workspace path]\n [--timeout seconds] [--no-wait]\n cohall status <task-id>\n cohall trace <task-id> [--follow]\n cohall wait <task-id> [--timeout seconds]\n cohall cancel <task-id>\n cohall thread <thread-id>\n cohall pair [--label name] [--client-only]\n cohall sessions\n cohall revoke <session-id>\n cohall doctor\n cohall device\n cohall relay\n cohall mcp\n cohall skill [install [agents|claude|opencode|all]]\n cohall integrations\n\nProviders: codex, claude-code, opencode.\nConfiguration is stored per user; environment variables override it.`\n\nconst parseArguments = (values: ReadonlyArray<string>): Arguments => {\n const options = new Map<string, ReadonlyArray<string> | true>()\n const positionals: Array<string> = []\n for (let index = 0; index < values.length; index += 1) {\n const argument = values[index]\n if (argument === undefined) {\n break\n }\n if (argument === \"--\") {\n positionals.push(...values.slice(index + 1))\n break\n }\n if (!argument.startsWith(\"-\")) {\n positionals.push(argument)\n continue\n }\n const separator = argument.indexOf(\"=\")\n const rawName = separator === -1 ? argument : argument.slice(0, separator)\n const inline = separator === -1 ? undefined : argument.slice(separator + 1)\n const name = aliases.get(rawName) ?? rawName.replace(/^--/, \"\")\n if (flagOptions.has(name)) {\n if (inline !== undefined) {\n throw new Error(`--${name} does not accept a value`)\n }\n options.set(name, true)\n continue\n }\n if (!valueOptions.has(name)) {\n throw new Error(`Unknown option: ${argument}`)\n }\n const value = inline ?? values[index + 1]\n if (value === undefined || (inline === undefined && value.startsWith(\"-\") && value !== \"-\")) {\n throw new Error(`${rawName} requires a value`)\n }\n const previous = options.get(name)\n options.set(name, previous === undefined || previous === true ? [value] : [...previous, value])\n if (inline === undefined) {\n index += 1\n }\n }\n return { options, positionals }\n}\n\nconst values = (arguments_: Arguments, name: string): ReadonlyArray<string> => {\n const option = arguments_.options.get(name)\n if (option === true) {\n throw new Error(`--${name} requires a value`)\n }\n return option ?? []\n}\nconst option = (arguments_: Arguments, name: string): string | undefined => {\n const found = values(arguments_, name)\n if (found.length > 1 && name !== \"workspace\") {\n throw new Error(`--${name} may only be specified once`)\n }\n return found[0]\n}\nconst allowOptions = (arguments_: Arguments, names: ReadonlyArray<string>): void => {\n const allowed = new Set(names)\n for (const name of arguments_.options.keys()) {\n if (!allowed.has(name)) {\n throw new Error(`--${name} is not valid for this command`)\n }\n }\n}\nconst noPositionals = (arguments_: Arguments, command: string): void => {\n if (arguments_.positionals.length > 0) {\n throw new Error(`${command} does not accept positional arguments`)\n }\n}\nconst identifier = (arguments_: Arguments, label: string): string => {\n const value = arguments_.positionals[0]\n if (value === undefined) {\n throw new Error(`${label} is required`)\n }\n if (arguments_.positionals.length > 1) {\n throw new Error(`Unexpected arguments after ${label}`)\n }\n return value\n}\nconst print = (value: unknown): void => console.log(JSON.stringify(value, null, 2))\nconst printLine = (value: unknown): void => console.log(JSON.stringify(value))\n\nconst readInput = async (\n arguments_: Arguments,\n name: \"prompt\" | \"context\",\n): Promise<string | undefined> => {\n const direct = option(arguments_, name)\n const path = option(arguments_, `${name}-file`)\n if (direct !== undefined && path !== undefined) {\n throw new Error(`Use either --${name} or --${name}-file, not both`)\n }\n if (path !== undefined) {\n if (\n !(await access(path)\n .then(() => true)\n .catch(() => false))\n ) {\n throw new Error(`File does not exist: ${path}`)\n }\n if ((await stat(path)).size > 131_072) {\n throw new Error(`${name} file exceeds 128 KiB`)\n }\n return readFile(path, \"utf8\")\n }\n const result = direct === \"-\" ? await readStdin(131_072, name) : direct\n if (result !== undefined && result.length > 131_072) {\n throw new Error(`${name} exceeds 128 KiB`)\n }\n return result\n}\n\nconst readStdin = async (limit: number, label: string): Promise<string> => {\n const chunks: Array<Buffer> = []\n let size = 0\n for await (const chunk of process.stdin) {\n const bytes = typeof chunk === \"string\" ? Buffer.from(chunk) : Buffer.from(chunk)\n size += bytes.byteLength\n if (size > limit) {\n throw new Error(`${label} exceeds ${Math.floor(limit / 1024)} KiB`)\n }\n chunks.push(bytes)\n }\n return Buffer.concat(chunks, size).toString(\"utf8\")\n}\n\nconst timeout = (arguments_: Arguments): number => {\n const seconds = Number(option(arguments_, \"timeout\") ?? \"900\")\n if (!Number.isInteger(seconds) || seconds < 5 || seconds > 86_400) {\n throw new Error(\"--timeout must be an integer between 5 and 86400\")\n }\n return seconds\n}\n\nconst pairingToken = async (arguments_: Arguments): Promise<string> => {\n const path = option(arguments_, \"token-file\")\n if (\n path !== undefined &&\n !(await access(path)\n .then(() => true)\n .catch(() => false))\n ) {\n throw new Error(`Pairing token file does not exist: ${path}`)\n }\n if (path !== undefined && (await stat(path)).size > 512) {\n throw new Error(\"Pairing token file exceeds 512 bytes\")\n }\n const token = (\n path === undefined ? await readStdin(512, \"Pairing token\") : await readFile(path, \"utf8\")\n ).trim()\n if (token.length === 0 || new TextEncoder().encode(token).byteLength > 256) {\n throw new Error(\"Provide a pairing token on stdin or with --token-file\")\n }\n return token\n}\n\nconst client = async () => {\n const configuration = await Effect.runPromise(loadClientConfiguration)\n return {\n configuration,\n relay: RelayClient.make({ baseUrl: configuration.relayUrl, token: configuration.token }),\n }\n}\n\nconst ownerClient = async () => {\n const configuration = await Effect.runPromise(loadOwnerConfiguration)\n return {\n configuration,\n relay: RelayClient.make({ baseUrl: configuration.relayUrl, token: configuration.token }),\n }\n}\n\nconst installSkill = async (target: string): Promise<ReadonlyArray<string>> => {\n const roots = {\n agents: join(homedir(), \".agents\", \"skills\", \"cohall\", \"SKILL.md\"),\n claude: join(homedir(), \".claude\", \"skills\", \"cohall\", \"SKILL.md\"),\n opencode: join(homedir(), \".config\", \"opencode\", \"skills\", \"cohall\", \"SKILL.md\"),\n } as const\n const selected =\n target === \"all\"\n ? Object.values(roots)\n : target in roots\n ? [roots[target as keyof typeof roots]]\n : undefined\n if (selected === undefined) {\n throw new Error(\"Skill target must be agents, claude, opencode, or all\")\n }\n for (const path of selected) {\n await mkdir(dirname(path), { recursive: true })\n await writeFile(path, skill)\n }\n return selected\n}\n\nexport const printHelp = (): void => console.log(help)\nexport const printSkill = (): void => console.log(skill.trimEnd())\n\nexport const runCli = async (command: string, raw: ReadonlyArray<string>): Promise<void> => {\n const arguments_ = parseArguments(raw)\n\n if (command === \"join\") {\n allowOptions(arguments_, [\n \"client-only\",\n \"name\",\n \"providers\",\n \"relay\",\n \"token-file\",\n \"workspace\",\n ])\n noPositionals(arguments_, command)\n const token = await pairingToken(arguments_)\n const relayUrl = normalizeRelayUrl(option(arguments_, \"relay\") ?? \"http://127.0.0.1:8787\")\n const existing = await readStoredConfiguration()\n const suppliedWorkspaces = values(arguments_, \"workspace\")\n const workspaces = suppliedWorkspaces.length === 0 ? existing?.workspaces : suppliedWorkspaces\n const deviceName = option(arguments_, \"name\")\n const providerInput = option(arguments_, \"providers\")\n const providers =\n providerInput === undefined\n ? undefined\n : providerInput === \"auto\"\n ? \"auto\"\n : parseProviders(providerInput)\n if (!arguments_.options.has(\"client-only\") && (workspaces?.length ?? 0) === 0) {\n throw new Error(\"At least one --workspace is required when joining a device\")\n }\n const draft = await makeStoredConfiguration({\n relayUrl,\n ...(deviceName === undefined ? {} : { deviceName }),\n ...(workspaces === undefined ? {} : { workspaces }),\n ...(providers === undefined ? {} : { providers }),\n })\n const paired = await Effect.runPromise(exchangePairing(relayUrl, { token }))\n const clientToken = paired.credentials.find(\n (credential) => credential.session.role === \"client\",\n )?.token\n const deviceToken = paired.credentials.find(\n (credential) => credential.session.role === \"device\",\n )?.token\n const deviceId = paired.credentials.find((credential) => credential.session.role === \"device\")\n ?.session.deviceId\n if (!arguments_.options.has(\"client-only\") && deviceToken === undefined) {\n throw new Error(\"The pairing credential did not include device access\")\n }\n const configuration = StoredConfiguration.make({\n ...draft,\n deviceId: deviceId ?? draft.deviceId,\n ...(clientToken === undefined ? {} : { clientToken }),\n ...(deviceToken === undefined ? {} : { deviceToken }),\n })\n await writeStoredConfiguration(configuration)\n print({\n configured: true,\n config_path: configurationPath(),\n relay_url: configuration.relayUrl,\n device_id: configuration.deviceId,\n roles: paired.credentials.map((credential) => credential.session.role),\n workspaces: configuration.workspaces,\n })\n return\n }\n\n if (command === \"config\") {\n allowOptions(arguments_, [])\n noPositionals(arguments_, command)\n const configuration = await readStoredConfiguration()\n print({\n config_path: configurationPath(),\n configured: configuration !== undefined,\n ...(configuration === undefined\n ? {}\n : {\n relay_url: configuration.relayUrl,\n device_id: configuration.deviceId,\n device_name: configuration.deviceName,\n workspaces: configuration.workspaces,\n client_credential: configuration.clientToken !== undefined,\n device_credential: configuration.deviceToken !== undefined,\n providers: configuration.providers ?? \"auto\",\n model: configuration.model,\n sandbox: configuration.sandbox,\n }),\n })\n return\n }\n\n if (command === \"configure\") {\n allowOptions(arguments_, [\"model\", \"name\", \"providers\", \"relay\", \"sandbox\", \"workspace\"])\n noPositionals(arguments_, command)\n const existing = await readStoredConfiguration()\n const relayUrl = normalizeRelayUrl(\n option(arguments_, \"relay\") ?? existing?.relayUrl ?? \"http://127.0.0.1:8787\",\n )\n const supplied = values(arguments_, \"workspace\")\n const workspaces =\n supplied.length === 0\n ? (existing?.workspaces ?? [])\n : await Effect.runPromise(parseWorkspaces(\"\", JSON.stringify(supplied)))\n const sandbox = option(arguments_, \"sandbox\")\n const model = option(arguments_, \"model\") ?? existing?.model\n const providerInput = option(arguments_, \"providers\")\n const providers =\n providerInput === undefined\n ? existing?.providers\n : providerInput === \"auto\"\n ? undefined\n : parseProviders(providerInput)\n const configuration = StoredConfiguration.make({\n version: 1,\n relayUrl,\n deviceId: existing?.deviceId ?? makeDeviceId(),\n deviceName: option(arguments_, \"name\") ?? existing?.deviceName ?? \"cohall-device\",\n workspaces,\n ...(existing?.clientToken === undefined ? {} : { clientToken: existing.clientToken }),\n ...(existing?.deviceToken === undefined ? {} : { deviceToken: existing.deviceToken }),\n ...(providers === undefined ? {} : { providers }),\n ...(model === undefined ? {} : { model }),\n ...((sandbox ?? existing?.sandbox) === undefined\n ? {}\n : {\n sandbox: Schema.decodeUnknownSync(\n Schema.Literals([\"read-only\", \"workspace-write\", \"danger-full-access\"]),\n )(sandbox ?? existing?.sandbox),\n }),\n })\n await writeStoredConfiguration(configuration)\n print({ configured: true, config_path: configurationPath() })\n return\n }\n\n if (command === \"skill\") {\n allowOptions(arguments_, [])\n if (arguments_.positionals.length === 0) {\n printSkill()\n return\n }\n if (arguments_.positionals[0] !== \"install\" || arguments_.positionals.length > 2) {\n throw new Error(\"Usage: cohall skill [install [agents|claude|opencode|all]]\")\n }\n print({ installed: await installSkill(arguments_.positionals[1] ?? \"all\") })\n return\n }\n\n if (command === \"integrations\") {\n allowOptions(arguments_, [])\n noPositionals(arguments_, command)\n print({\n cli_skill: \"npx -y @akshar5/cohall skill install all\",\n codex_mcp: \"codex mcp add cohall -- npx -y @akshar5/cohall mcp\",\n claude_mcp:\n \"claude mcp add --transport stdio --scope user cohall -- npx -y @akshar5/cohall mcp\",\n stdio_config: {\n command: \"npx\",\n args: [\"-y\", \"@akshar5/cohall\", \"mcp\"],\n },\n opencode_mcp: {\n type: \"local\",\n command: [\"npx\", \"-y\", \"@akshar5/cohall\", \"mcp\"],\n enabled: true,\n },\n })\n return\n }\n\n if (command === \"doctor\") {\n allowOptions(arguments_, [])\n noPositionals(arguments_, command)\n const configuration = await readStoredConfiguration()\n const relayUrl = normalizeRelayUrl(\n process.env.COHALL_RELAY_URL ?? configuration?.relayUrl ?? \"http://127.0.0.1:8787\",\n )\n const response = await fetch(`${relayUrl}/api/health`, {\n signal: AbortSignal.timeout(10_000),\n }).catch(() => undefined)\n const providerInput = process.env.COHALL_DEVICE_PROVIDERS\n const selectedProviders =\n providerInput === undefined\n ? configuration?.providers\n : providerInput === \"auto\"\n ? undefined\n : parseProviders(providerInput)\n const providerExecutables = Object.fromEntries(\n Provider.literals.map((provider) => [\n provider,\n Providers.findExecutable(provider === \"claude-code\" ? \"claude\" : provider) ?? \"not found\",\n ]),\n )\n const clientToken = process.env.COHALL_CLIENT_TOKEN ?? configuration?.clientToken\n const hasDeviceCredential =\n process.env.COHALL_DEVICE_TOKEN !== undefined || configuration?.deviceToken !== undefined\n const deviceId = process.env.COHALL_DEVICE_ID ?? configuration?.deviceId\n const currentDevice =\n response?.ok !== true || clientToken === undefined || deviceId === undefined\n ? undefined\n : await Effect.runPromise(\n RelayClient.make({ baseUrl: relayUrl, token: clientToken }).devices(),\n )\n .then((devices) => devices.find((device) => device.id === deviceId))\n .catch(() => undefined)\n const warnings = [\n ...(response?.ok === true ? [] : [\"Relay is unreachable\"]),\n ...(hasDeviceCredential &&\n response?.ok === true &&\n currentDevice?.status !== \"online\" &&\n currentDevice?.status !== \"busy\"\n ? [\n clientToken === undefined\n ? \"Device status cannot be checked without a client credential\"\n : \"Device daemon is not connected or is not registered with the relay\",\n ]\n : []),\n ...(selectedProviders?.flatMap((provider) =>\n providerExecutables[provider] === \"not found\"\n ? [`Configured provider ${provider} is not installed or not on PATH`]\n : [],\n ) ?? []),\n ]\n print({\n version,\n relay: response?.ok === true ? \"reachable\" : \"unreachable\",\n relay_url: relayUrl,\n config_path: configurationPath(),\n client_credential:\n process.env.COHALL_CLIENT_TOKEN !== undefined || configuration?.clientToken !== undefined,\n device_credential: hasDeviceCredential,\n workspaces: configuration?.workspaces ?? [],\n providers: providerExecutables,\n provider_selection: selectedProviders ?? \"auto\",\n provider_authentication: \"checked when delegated work starts\",\n device_status:\n hasDeviceCredential === false ? \"not configured\" : (currentDevice?.status ?? \"unknown\"),\n device_version: currentDevice?.version,\n warnings,\n })\n return\n }\n\n if (command === \"pair\" || command === \"sessions\" || command === \"revoke\") {\n const { configuration, relay } = await ownerClient()\n if (command === \"pair\") {\n allowOptions(arguments_, [\"client-only\", \"label\"])\n noPositionals(arguments_, command)\n const roles = arguments_.options.has(\"client-only\")\n ? ([\"client\"] as const)\n : ([\"client\", \"device\"] as const)\n const credential = await Effect.runPromise(\n relay.createPairing({ label: option(arguments_, \"label\") ?? \"Cohall device\", roles }),\n )\n print({\n relay_url: configuration.relayUrl,\n pairing_token: credential.token,\n expires_at: credential.expiresAt,\n roles,\n })\n return\n }\n if (command === \"sessions\") {\n allowOptions(arguments_, [])\n noPositionals(arguments_, command)\n print(await Effect.runPromise(relay.authSessions()))\n return\n }\n allowOptions(arguments_, [])\n print(\n await Effect.runPromise(\n relay.revokeAuthSession(\n Schema.decodeUnknownSync(AuthSessionId)(identifier(arguments_, \"session id\")),\n ),\n ),\n )\n return\n }\n\n const { configuration, relay } = await client()\n if (command === \"devices\") {\n allowOptions(arguments_, [])\n noPositionals(arguments_, command)\n print(await Effect.runPromise(relay.devices()))\n return\n }\n if (command === \"delegate\") {\n allowOptions(arguments_, [\n \"context\",\n \"context-file\",\n \"no-wait\",\n \"prompt\",\n \"prompt-file\",\n \"provider\",\n \"target\",\n \"thread\",\n \"timeout\",\n \"workspace\",\n ])\n if (option(arguments_, \"prompt\") === \"-\" && option(arguments_, \"context\") === \"-\") {\n throw new Error(\"Only one of --prompt and --context may read from stdin\")\n }\n const suppliedPrompt = await readInput(arguments_, \"prompt\")\n const prompt = suppliedPrompt ?? arguments_.positionals.join(\" \")\n if (prompt.trim().length === 0) {\n throw new Error(\"A prompt is required\")\n }\n if (suppliedPrompt !== undefined && arguments_.positionals.length > 0) {\n throw new Error(\"Use either a positional prompt or --prompt, not both\")\n }\n const context = await readInput(arguments_, \"context\")\n const target = option(arguments_, \"target\")\n const thread = option(arguments_, \"thread\")\n const workspace = option(arguments_, \"workspace\")\n const provider = option(arguments_, \"provider\")\n const task = await Effect.runPromise(\n createDelegation(relay, configuration, {\n prompt,\n ...(target === undefined ? {} : { target }),\n ...(context === undefined ? {} : { context }),\n ...(thread === undefined ? {} : { threadId: Schema.decodeUnknownSync(ThreadId)(thread) }),\n ...(workspace === undefined ? {} : { workspace }),\n ...(provider === undefined\n ? {}\n : { provider: Schema.decodeUnknownSync(Provider)(provider) }),\n }),\n )\n print(\n taskResult(\n arguments_.options.has(\"no-wait\")\n ? task\n : await Effect.runPromise(waitForTask(relay, task, timeout(arguments_))),\n ),\n )\n return\n }\n if (command === \"status\") {\n allowOptions(arguments_, [])\n const id = Schema.decodeUnknownSync(TaskId)(identifier(arguments_, \"task id\"))\n print(taskResult(await Effect.runPromise(relay.getTask(id))))\n return\n }\n if (command === \"trace\") {\n allowOptions(arguments_, [\"follow\"])\n const id = Schema.decodeUnknownSync(TaskId)(identifier(arguments_, \"task id\"))\n if (arguments_.options.has(\"follow\")) {\n await Effect.runPromise(followTaskTrace(relay, id, printLine))\n return\n }\n print(await Effect.runPromise(relay.traceTask(id)))\n return\n }\n if (command === \"wait\") {\n allowOptions(arguments_, [\"timeout\"])\n const id = Schema.decodeUnknownSync(TaskId)(identifier(arguments_, \"task id\"))\n const task = await Effect.runPromise(relay.getTask(id))\n print(taskResult(await Effect.runPromise(waitForTask(relay, task, timeout(arguments_)))))\n return\n }\n if (command === \"cancel\") {\n allowOptions(arguments_, [])\n const id = Schema.decodeUnknownSync(TaskId)(identifier(arguments_, \"task id\"))\n print(taskResult(await Effect.runPromise(relay.cancelTask(id))))\n return\n }\n if (command === \"thread\") {\n allowOptions(arguments_, [])\n const id = Schema.decodeUnknownSync(ThreadId)(identifier(arguments_, \"thread id\"))\n print(await Effect.runPromise(threadContext(relay, id)))\n return\n }\n throw new Error(`Unknown Cohall command: ${command}`)\n}\n",
|
|
14
|
-
"import { Provider, type Provider as ProviderName } from \"@cohall/protocol\"\nimport { Effect, Schema } from \"effect\"\nimport { accessSync, constants } from \"node:fs\"\nimport { homedir, platform } from \"node:os\"\nimport { delimiter, extname, isAbsolute, join } from \"node:path\"\nimport { spawn } from \"node:child_process\"\nimport type { Readable } from \"node:stream\"\n\nexport class ProviderUnavailableError extends Schema.TaggedErrorClass<ProviderUnavailableError>()(\n \"CohallProvider.Unavailable\",\n { provider: Provider, message: Schema.String },\n) {}\n\nexport class ProviderRunError extends Schema.TaggedErrorClass<ProviderRunError>()(\n \"CohallProvider.RunError\",\n {\n provider: Provider,\n message: Schema.String,\n exitCode: Schema.optionalKey(Schema.Number),\n },\n) {}\n\nexport type ProviderError = ProviderUnavailableError | ProviderRunError\n\nexport interface RunOptions {\n readonly provider: ProviderName\n readonly threadId: string\n readonly prompt: string\n readonly cwd: string\n readonly sessionId?: string\n readonly model?: string\n readonly sandbox?: \"read-only\" | \"workspace-write\" | \"danger-full-access\"\n}\n\nexport interface RunResult {\n readonly result: string\n readonly sessionId?: string\n}\n\ntype JsonRecord = Readonly<Record<string, unknown>>\n\nconst executables = {\n codex: \"codex\",\n \"claude-code\": \"claude\",\n opencode: \"opencode\",\n} as const satisfies Record<ProviderName, string>\n\nconst providerEnvironment = (): NodeJS.ProcessEnv => ({\n ...Object.fromEntries(\n Object.entries(process.env).filter(([name]) => !name.startsWith(\"COHALL_\")),\n ),\n PATH: executableDirectories().join(delimiter),\n})\n\nconst record = (value: unknown): JsonRecord | undefined =>\n typeof value === \"object\" && value !== null && !Array.isArray(value)\n ? Object.fromEntries(Object.entries(value))\n : undefined\nconst text = (value: unknown): string | undefined => (typeof value === \"string\" ? value : undefined)\n\nconst executableCandidates = (command: string): ReadonlyArray<string> => {\n if (platform() !== \"win32\" || extname(command).length > 0) {\n return [command]\n }\n return (process.env.PATHEXT ?? \".COM;.EXE;.BAT;.CMD\")\n .split(\";\")\n .filter((extension) => extension.length > 0)\n .map((extension) => `${command}${extension.toLowerCase()}`)\n}\n\nconst executableDirectories = (): ReadonlyArray<string> => {\n const home = homedir()\n const configured = (process.env.PATH ?? \"\").split(delimiter).filter(Boolean)\n const common =\n platform() === \"win32\"\n ? [\n process.env.APPDATA === undefined ? undefined : join(process.env.APPDATA, \"npm\"),\n process.env.LOCALAPPDATA === undefined\n ? undefined\n : join(process.env.LOCALAPPDATA, \"pnpm\"),\n join(home, \".bun\", \"bin\"),\n ]\n : [\n join(home, \".local\", \"bin\"),\n join(home, \".npm-global\", \"bin\"),\n join(home, \".bun\", \"bin\"),\n join(home, \".local\", \"share\", \"pnpm\"),\n \"/opt/homebrew/bin\",\n \"/usr/local/bin\",\n ]\n return [...new Set([...configured, ...common.filter((path) => path !== undefined)])]\n}\n\nexport const findExecutable = (command: string): string | undefined => {\n const paths =\n isAbsolute(command) || command.includes(\"/\") || command.includes(\"\\\\\")\n ? [\"\"]\n : executableDirectories()\n for (const directory of paths) {\n for (const candidate of executableCandidates(command)) {\n const path = directory.length === 0 ? candidate : join(directory, candidate)\n try {\n accessSync(path, platform() === \"win32\" ? constants.F_OK : constants.X_OK)\n return path\n } catch {\n continue\n }\n }\n }\n return undefined\n}\n\nexport const available = (provider: ProviderName): boolean =>\n findExecutable(executables[provider]) !== undefined\nexport const availableProviders = (): ReadonlyArray<ProviderName> =>\n Provider.literals.filter(available)\n\nconst boundedText = (stream: Readable, limit: number, onOverflow: () => void): Promise<string> =>\n new Promise((resolve, reject) => {\n const chunks: Array<Buffer> = []\n let size = 0\n const cleanup = (): void => {\n stream.off(\"data\", onData)\n stream.off(\"end\", onEnd)\n stream.off(\"error\", onError)\n }\n const onData = (chunk: Buffer | string): void => {\n const bytes = typeof chunk === \"string\" ? Buffer.from(chunk) : chunk\n size += bytes.byteLength\n if (size <= limit) {\n chunks.push(bytes)\n return\n }\n cleanup()\n onOverflow()\n reject(new Error(`Provider output exceeded ${Math.floor(limit / 1024)} KiB`))\n }\n const onEnd = (): void => {\n cleanup()\n resolve(Buffer.concat(chunks, size).toString(\"utf8\"))\n }\n const onError = (cause: Error): void => {\n cleanup()\n reject(cause)\n }\n stream.on(\"data\", onData)\n stream.once(\"end\", onEnd)\n stream.once(\"error\", onError)\n })\n\ninterface CapturedText {\n readonly text: string\n readonly truncated: boolean\n}\n\nconst captureText = (stream: Readable, limit: number): Promise<CapturedText> =>\n new Promise((resolve, reject) => {\n const chunks: Array<Buffer> = []\n let captured = 0\n let truncated = false\n const onData = (chunk: Buffer | string): void => {\n const bytes = typeof chunk === \"string\" ? Buffer.from(chunk) : chunk\n const remaining = limit - captured\n if (remaining > 0) {\n const selected = bytes.byteLength <= remaining ? bytes : bytes.subarray(0, remaining)\n chunks.push(selected)\n captured += selected.byteLength\n }\n truncated ||= bytes.byteLength > remaining\n }\n const onEnd = (): void =>\n resolve({ text: Buffer.concat(chunks, captured).toString(\"utf8\"), truncated })\n stream.on(\"data\", onData)\n stream.once(\"end\", onEnd)\n stream.once(\"error\", reject)\n })\n\nconst failureMessage = (command: string, stderr: CapturedText, exitCode: number): string => {\n const fallback = `${command} exited with status ${exitCode}`\n const suffix = stderr.truncated ? \"\\n[stderr truncated after 64 KiB]\" : \"\"\n const available = 16_384 - suffix.length\n return `${(stderr.text.trim() || fallback).slice(0, available)}${suffix}`\n}\n\nconst codexCommand = (options: RunOptions): ReadonlyArray<string> => {\n const common = [\n \"--json\",\n \"--skip-git-repo-check\",\n \"-c\",\n 'approval_policy=\"never\"',\n ...(options.model === undefined ? [] : [\"--model\", options.model]),\n ...(options.sandbox === undefined\n ? []\n : [\"-c\", `sandbox_mode=${JSON.stringify(options.sandbox)}`]),\n ]\n return options.sessionId === undefined\n ? [\"codex\", \"exec\", ...common, \"-\"]\n : [\"codex\", \"exec\", \"resume\", ...common, options.sessionId, \"-\"]\n}\n\nconst claudeCommand = (options: RunOptions): ReadonlyArray<string> => [\n \"claude\",\n \"-p\",\n \"--output-format\",\n \"json\",\n ...(options.model === undefined ? [] : [\"--model\", options.model]),\n ...(options.sessionId === undefined ? [] : [\"--resume\", options.sessionId]),\n]\n\nconst opencodeCommand = (options: RunOptions): ReadonlyArray<string> => [\n \"opencode\",\n \"run\",\n \"--format\",\n \"json\",\n ...(options.model === undefined ? [] : [\"--model\", options.model]),\n ...(options.sessionId === undefined ? [] : [\"--session\", options.sessionId]),\n options.prompt,\n]\n\nconst command = (options: RunOptions): ReadonlyArray<string> => {\n switch (options.provider) {\n case \"codex\":\n return codexCommand(options)\n case \"claude-code\":\n return claudeCommand(options)\n case \"opencode\":\n return opencodeCommand(options)\n }\n}\n\nconst parseCodex = (stdout: string, existingSession?: string): RunResult => {\n let result = \"\"\n let sessionId = existingSession\n for (const line of stdout.split(\"\\n\")) {\n if (line.trim().length === 0) {\n continue\n }\n const event = record(JSON.parse(line) as unknown)\n if (event === undefined) {\n continue\n }\n if (text(event.type) === \"thread.started\") {\n sessionId = text(event.thread_id) ?? sessionId\n }\n if (text(event.type) !== \"item.completed\") {\n continue\n }\n const item = record(event.item)\n if (text(item?.type) === \"agent_message\") {\n result = text(item?.text) ?? text(item?.content) ?? result\n }\n }\n return {\n result: result || \"Codex completed the task without a text response.\",\n ...(sessionId === undefined ? {} : { sessionId }),\n }\n}\n\nconst parseClaude = (stdout: string, existingSession?: string): RunResult => {\n const value = record(JSON.parse(stdout) as unknown)\n const result = text(value?.result) ?? text(value?.content)\n if (result === undefined) {\n throw new Error(\"Claude Code returned JSON without a result\")\n }\n const sessionId = text(value?.session_id) ?? text(value?.sessionId) ?? existingSession\n return { result, ...(sessionId === undefined ? {} : { sessionId }) }\n}\n\nconst textFromPart = (value: unknown): string | undefined => {\n const part = record(value)\n if (part === undefined) {\n return undefined\n }\n return text(part.text) ?? text(part.content) ?? text(record(part.part)?.text)\n}\n\nconst openCodeError = (event: JsonRecord): string | undefined => {\n if (text(event.type) !== \"error\") {\n return undefined\n }\n const error = record(event.error)\n const name = text(error?.name)\n const message =\n text(record(error?.data)?.message) ??\n text(error?.message) ??\n text(event.message) ??\n text(event.error)\n if (name !== undefined && message !== undefined) {\n return `OpenCode ${name}: ${message}`\n }\n return message === undefined ? \"OpenCode reported an error\" : `OpenCode: ${message}`\n}\n\nconst parseOpenCode = (stdout: string, existingSession?: string): RunResult => {\n let result = \"\"\n let sessionId = existingSession\n for (const line of stdout.split(\"\\n\")) {\n if (line.trim().length === 0) {\n continue\n }\n const event = record(JSON.parse(line) as unknown)\n if (event === undefined) {\n continue\n }\n const failure = openCodeError(event)\n if (failure !== undefined) {\n throw new Error(failure)\n }\n sessionId =\n text(event.sessionID) ??\n text(event.sessionId) ??\n text(event.session_id) ??\n text(record(event.info)?.sessionID) ??\n sessionId\n const content = textFromPart(event.part) ?? textFromPart(event) ?? text(event.result)\n if (content !== undefined && content.length > 0) {\n result = content\n }\n }\n if (result.length === 0) {\n throw new Error(\n \"OpenCode produced no result; verify its authentication and use a supported project workspace\",\n )\n }\n return { result, ...(sessionId === undefined ? {} : { sessionId }) }\n}\n\nconst parse = (options: RunOptions, stdout: string): RunResult => {\n switch (options.provider) {\n case \"codex\":\n return parseCodex(stdout, options.sessionId)\n case \"claude-code\":\n return parseClaude(stdout, options.sessionId)\n case \"opencode\":\n return parseOpenCode(stdout, options.sessionId)\n }\n}\n\nconst byteLength = (value: string): number => new TextEncoder().encode(value).byteLength\n\nexport const run = (options: RunOptions): Effect.Effect<RunResult, ProviderError> =>\n Effect.tryPromise({\n try: async (signal) => {\n const [commandName, ...arguments_] = command(options)\n const executable = commandName === undefined ? undefined : findExecutable(commandName)\n if (executable === undefined) {\n throw new ProviderUnavailableError({\n provider: options.provider,\n message: `${executables[options.provider]} is not available on this device`,\n })\n }\n const child = spawn(executable, arguments_, {\n cwd: options.cwd,\n env: {\n ...providerEnvironment(),\n COHALL_PROVIDER: options.provider,\n COHALL_THREAD_ID: options.threadId,\n },\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n })\n const exited = new Promise<number>((resolve, reject) => {\n child.once(\"error\", reject)\n child.once(\"exit\", (code) => resolve(code ?? 1))\n })\n let killTimer: ReturnType<typeof setTimeout> | undefined\n const terminate = (): void => {\n if (child.exitCode !== null) {\n return\n }\n child.kill(\"SIGTERM\")\n killTimer ??= setTimeout(() => {\n if (child.exitCode === null) {\n child.kill(\"SIGKILL\")\n }\n }, 5_000)\n killTimer.unref()\n }\n signal.addEventListener(\"abort\", terminate, { once: true })\n child.stdin.end(options.provider === \"opencode\" ? undefined : options.prompt)\n\n const [stdout, stderr, exitCode] = await Promise.all([\n boundedText(child.stdout, 1024 * 1024, terminate),\n captureText(child.stderr, 64 * 1024),\n exited,\n ])\n signal.removeEventListener(\"abort\", terminate)\n if (killTimer !== undefined && child.exitCode !== null) {\n clearTimeout(killTimer)\n }\n if (exitCode !== 0) {\n throw new ProviderRunError({\n provider: options.provider,\n message: failureMessage(executables[options.provider], stderr, exitCode),\n exitCode,\n })\n }\n const result = parse(options, stdout)\n if (byteLength(result.result) > 131_072) {\n throw new ProviderRunError({\n provider: options.provider,\n message: \"Provider result exceeded 128 KiB\",\n })\n }\n if (result.sessionId !== undefined && byteLength(result.sessionId) > 4_096) {\n throw new ProviderRunError({\n provider: options.provider,\n message: \"Provider session ID exceeded 4 KiB\",\n })\n }\n return result\n },\n catch: (cause) => {\n if (cause instanceof ProviderUnavailableError || cause instanceof ProviderRunError) {\n return cause\n }\n return new ProviderRunError({\n provider: options.provider,\n message: (cause instanceof Error ? cause.message : String(cause)).slice(0, 16_384),\n })\n },\n })\n",
|
|
14
|
+
"import { Provider, type Provider as ProviderName } from \"@cohall/protocol\"\nimport { Effect, Schema } from \"effect\"\nimport { accessSync, constants } from \"node:fs\"\nimport { homedir, platform } from \"node:os\"\nimport { delimiter, extname, isAbsolute, join } from \"node:path\"\nimport { spawn } from \"node:child_process\"\nimport { createInterface } from \"node:readline\"\nimport type { Readable } from \"node:stream\"\n\nexport class ProviderUnavailableError extends Schema.TaggedErrorClass<ProviderUnavailableError>()(\n \"CohallProvider.Unavailable\",\n { provider: Provider, message: Schema.String },\n) {}\n\nexport class ProviderRunError extends Schema.TaggedErrorClass<ProviderRunError>()(\n \"CohallProvider.RunError\",\n {\n provider: Provider,\n message: Schema.String,\n exitCode: Schema.optionalKey(Schema.Number),\n },\n) {}\n\nexport type ProviderError = ProviderUnavailableError | ProviderRunError\n\nexport interface RunOptions {\n readonly provider: ProviderName\n readonly threadId: string\n readonly prompt: string\n readonly cwd: string\n readonly sessionId?: string\n readonly model?: string\n readonly sandbox?: \"read-only\" | \"workspace-write\" | \"danger-full-access\"\n}\n\nexport interface RunResult {\n readonly result: string\n readonly sessionId?: string\n}\n\ntype JsonRecord = Readonly<Record<string, unknown>>\n\nconst executables = {\n codex: \"codex\",\n \"claude-code\": \"claude\",\n opencode: \"opencode\",\n} as const satisfies Record<ProviderName, string>\n\nconst providerEnvironment = (): NodeJS.ProcessEnv => ({\n ...Object.fromEntries(\n Object.entries(process.env).filter(([name]) => !name.startsWith(\"COHALL_\")),\n ),\n PATH: executableDirectories().join(delimiter),\n})\n\nconst record = (value: unknown): JsonRecord | undefined =>\n typeof value === \"object\" && value !== null && !Array.isArray(value)\n ? Object.fromEntries(Object.entries(value))\n : undefined\nconst text = (value: unknown): string | undefined => (typeof value === \"string\" ? value : undefined)\n\nconst executableCandidates = (command: string): ReadonlyArray<string> => {\n if (platform() !== \"win32\" || extname(command).length > 0) {\n return [command]\n }\n return (process.env.PATHEXT ?? \".COM;.EXE;.BAT;.CMD\")\n .split(\";\")\n .filter((extension) => extension.length > 0)\n .map((extension) => `${command}${extension.toLowerCase()}`)\n}\n\nconst executableDirectories = (): ReadonlyArray<string> => {\n const home = homedir()\n const configured = (process.env.PATH ?? \"\").split(delimiter).filter(Boolean)\n const common =\n platform() === \"win32\"\n ? [\n process.env.APPDATA === undefined ? undefined : join(process.env.APPDATA, \"npm\"),\n process.env.LOCALAPPDATA === undefined\n ? undefined\n : join(process.env.LOCALAPPDATA, \"pnpm\"),\n join(home, \".bun\", \"bin\"),\n ]\n : [\n join(home, \".local\", \"bin\"),\n join(home, \".npm-global\", \"bin\"),\n join(home, \".bun\", \"bin\"),\n join(home, \".local\", \"share\", \"pnpm\"),\n \"/opt/homebrew/bin\",\n \"/usr/local/bin\",\n ]\n return [...new Set([...configured, ...common.filter((path) => path !== undefined)])]\n}\n\nexport const findExecutable = (command: string): string | undefined => {\n const paths =\n isAbsolute(command) || command.includes(\"/\") || command.includes(\"\\\\\")\n ? [\"\"]\n : executableDirectories()\n for (const directory of paths) {\n for (const candidate of executableCandidates(command)) {\n const path = directory.length === 0 ? candidate : join(directory, candidate)\n try {\n accessSync(path, platform() === \"win32\" ? constants.F_OK : constants.X_OK)\n return path\n } catch {\n continue\n }\n }\n }\n return undefined\n}\n\nexport const available = (provider: ProviderName): boolean =>\n findExecutable(executables[provider]) !== undefined\nexport const availableProviders = (): ReadonlyArray<ProviderName> =>\n Provider.literals.filter(available)\n\nconst boundedText = (stream: Readable, limit: number, onOverflow: () => void): Promise<string> =>\n new Promise((resolve, reject) => {\n const chunks: Array<Buffer> = []\n let size = 0\n const cleanup = (): void => {\n stream.off(\"data\", onData)\n stream.off(\"end\", onEnd)\n stream.off(\"error\", onError)\n }\n const onData = (chunk: Buffer | string): void => {\n const bytes = typeof chunk === \"string\" ? Buffer.from(chunk) : chunk\n size += bytes.byteLength\n if (size <= limit) {\n chunks.push(bytes)\n return\n }\n cleanup()\n onOverflow()\n reject(new Error(`Provider output exceeded ${Math.floor(limit / 1024)} KiB`))\n }\n const onEnd = (): void => {\n cleanup()\n resolve(Buffer.concat(chunks, size).toString(\"utf8\"))\n }\n const onError = (cause: Error): void => {\n cleanup()\n reject(cause)\n }\n stream.on(\"data\", onData)\n stream.once(\"end\", onEnd)\n stream.once(\"error\", onError)\n })\n\ninterface CapturedText {\n readonly text: string\n readonly truncated: boolean\n}\n\nconst captureText = (stream: Readable, limit: number): Promise<CapturedText> =>\n new Promise((resolve, reject) => {\n const chunks: Array<Buffer> = []\n let captured = 0\n let truncated = false\n const onData = (chunk: Buffer | string): void => {\n const bytes = typeof chunk === \"string\" ? Buffer.from(chunk) : chunk\n const remaining = limit - captured\n if (remaining > 0) {\n const selected = bytes.byteLength <= remaining ? bytes : bytes.subarray(0, remaining)\n chunks.push(selected)\n captured += selected.byteLength\n }\n truncated ||= bytes.byteLength > remaining\n }\n const onEnd = (): void =>\n resolve({ text: Buffer.concat(chunks, captured).toString(\"utf8\"), truncated })\n stream.on(\"data\", onData)\n stream.once(\"end\", onEnd)\n stream.once(\"error\", reject)\n })\n\nconst failureMessage = (command: string, stderr: CapturedText, exitCode: number): string => {\n const fallback = `${command} exited with status ${exitCode}`\n const suffix = stderr.truncated ? \"\\n[stderr truncated after 64 KiB]\" : \"\"\n const available = 16_384 - suffix.length\n return `${(stderr.text.trim() || fallback).slice(0, available)}${suffix}`\n}\n\nconst codexCommand = (options: RunOptions): ReadonlyArray<string> => {\n const common = [\n \"--json\",\n \"--skip-git-repo-check\",\n \"-c\",\n 'approval_policy=\"never\"',\n ...(options.model === undefined ? [] : [\"--model\", options.model]),\n ...(options.sandbox === undefined\n ? []\n : [\"-c\", `sandbox_mode=${JSON.stringify(options.sandbox)}`]),\n ]\n return options.sessionId === undefined\n ? [\"codex\", \"exec\", ...common, \"-\"]\n : [\"codex\", \"exec\", \"resume\", ...common, options.sessionId, \"-\"]\n}\n\nconst claudeCommand = (options: RunOptions): ReadonlyArray<string> => [\n \"claude\",\n \"-p\",\n \"--output-format\",\n \"json\",\n ...(options.model === undefined ? [] : [\"--model\", options.model]),\n ...(options.sessionId === undefined ? [] : [\"--resume\", options.sessionId]),\n]\n\nconst opencodeCommand = (options: RunOptions): ReadonlyArray<string> => [\n \"opencode\",\n \"run\",\n \"--format\",\n \"json\",\n ...(options.model === undefined ? [] : [\"--model\", options.model]),\n ...(options.sessionId === undefined ? [] : [\"--session\", options.sessionId]),\n options.prompt,\n]\n\nconst command = (options: RunOptions): ReadonlyArray<string> => {\n switch (options.provider) {\n case \"codex\":\n return codexCommand(options)\n case \"claude-code\":\n return claudeCommand(options)\n case \"opencode\":\n return opencodeCommand(options)\n }\n}\n\nconst forEachJsonEvent = async (\n stdout: Readable,\n onEvent: (event: JsonRecord) => void,\n): Promise<void> => {\n const lines = createInterface({ input: stdout, crlfDelay: Infinity })\n try {\n for await (const line of lines) {\n if (line.trim().length === 0) {\n continue\n }\n if (Buffer.byteLength(line) > 1024 * 1024) {\n throw new Error(\"Provider event exceeded 1024 KiB\")\n }\n const event = record(JSON.parse(line) as unknown)\n if (event !== undefined) {\n onEvent(event)\n }\n }\n } finally {\n lines.close()\n }\n}\n\nconst parseCodex = async (stdout: Readable, existingSession?: string): Promise<RunResult> => {\n let result = \"\"\n let sessionId = existingSession\n await forEachJsonEvent(stdout, (event) => {\n if (text(event.type) === \"thread.started\") {\n sessionId = text(event.thread_id) ?? sessionId\n }\n if (text(event.type) !== \"item.completed\") {\n return\n }\n const item = record(event.item)\n if (text(item?.type) === \"agent_message\") {\n result = text(item?.text) ?? text(item?.content) ?? result\n }\n })\n return {\n result: result || \"Codex completed the task without a text response.\",\n ...(sessionId === undefined ? {} : { sessionId }),\n }\n}\n\nconst parseClaude = (stdout: string, existingSession?: string): RunResult => {\n const value = record(JSON.parse(stdout) as unknown)\n const result = text(value?.result) ?? text(value?.content)\n if (result === undefined) {\n throw new Error(\"Claude Code returned JSON without a result\")\n }\n const sessionId = text(value?.session_id) ?? text(value?.sessionId) ?? existingSession\n return { result, ...(sessionId === undefined ? {} : { sessionId }) }\n}\n\nconst textFromPart = (value: unknown): string | undefined => {\n const part = record(value)\n if (part === undefined) {\n return undefined\n }\n return text(part.text) ?? text(part.content) ?? text(record(part.part)?.text)\n}\n\nconst openCodeError = (event: JsonRecord): string | undefined => {\n if (text(event.type) !== \"error\") {\n return undefined\n }\n const error = record(event.error)\n const name = text(error?.name)\n const message =\n text(record(error?.data)?.message) ??\n text(error?.message) ??\n text(event.message) ??\n text(event.error)\n if (name !== undefined && message !== undefined) {\n return `OpenCode ${name}: ${message}`\n }\n return message === undefined ? \"OpenCode reported an error\" : `OpenCode: ${message}`\n}\n\nconst parseOpenCode = async (stdout: Readable, existingSession?: string): Promise<RunResult> => {\n let result = \"\"\n let sessionId = existingSession\n await forEachJsonEvent(stdout, (event) => {\n const failure = openCodeError(event)\n if (failure !== undefined) {\n throw new Error(failure)\n }\n sessionId =\n text(event.sessionID) ??\n text(event.sessionId) ??\n text(event.session_id) ??\n text(record(event.info)?.sessionID) ??\n sessionId\n const content = textFromPart(event.part) ?? textFromPart(event) ?? text(event.result)\n if (content !== undefined && content.length > 0) {\n result = content\n }\n })\n if (result.length === 0) {\n throw new Error(\n \"OpenCode produced no result; verify its authentication and use a supported project workspace\",\n )\n }\n return { result, ...(sessionId === undefined ? {} : { sessionId }) }\n}\n\nconst parse = async (\n options: RunOptions,\n stdout: Readable,\n onFailure: () => void,\n): Promise<RunResult> => {\n try {\n switch (options.provider) {\n case \"codex\":\n return await parseCodex(stdout, options.sessionId)\n case \"claude-code\":\n return parseClaude(await boundedText(stdout, 1024 * 1024, onFailure), options.sessionId)\n case \"opencode\":\n return await parseOpenCode(stdout, options.sessionId)\n }\n } catch (cause) {\n onFailure()\n throw cause\n }\n}\n\nconst byteLength = (value: string): number => new TextEncoder().encode(value).byteLength\n\nexport const run = (options: RunOptions): Effect.Effect<RunResult, ProviderError> =>\n Effect.tryPromise({\n try: async (signal) => {\n const [commandName, ...arguments_] = command(options)\n const executable = commandName === undefined ? undefined : findExecutable(commandName)\n if (executable === undefined) {\n throw new ProviderUnavailableError({\n provider: options.provider,\n message: `${executables[options.provider]} is not available on this device`,\n })\n }\n const child = spawn(executable, arguments_, {\n cwd: options.cwd,\n env: {\n ...providerEnvironment(),\n COHALL_PROVIDER: options.provider,\n COHALL_THREAD_ID: options.threadId,\n },\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n })\n const exited = new Promise<number>((resolve, reject) => {\n child.once(\"error\", reject)\n child.once(\"exit\", (code) => resolve(code ?? 1))\n })\n let killTimer: ReturnType<typeof setTimeout> | undefined\n const terminate = (): void => {\n if (child.exitCode !== null) {\n return\n }\n child.kill(\"SIGTERM\")\n killTimer ??= setTimeout(() => {\n if (child.exitCode === null) {\n child.kill(\"SIGKILL\")\n }\n }, 5_000)\n killTimer.unref()\n }\n signal.addEventListener(\"abort\", terminate, { once: true })\n child.stdin.end(options.provider === \"opencode\" ? undefined : options.prompt)\n\n const [result, stderr, exitCode] = await Promise.all([\n parse(options, child.stdout, terminate),\n captureText(child.stderr, 64 * 1024),\n exited,\n ])\n signal.removeEventListener(\"abort\", terminate)\n if (killTimer !== undefined && child.exitCode !== null) {\n clearTimeout(killTimer)\n }\n if (exitCode !== 0) {\n throw new ProviderRunError({\n provider: options.provider,\n message: failureMessage(executables[options.provider], stderr, exitCode),\n exitCode,\n })\n }\n if (byteLength(result.result) > 131_072) {\n throw new ProviderRunError({\n provider: options.provider,\n message: \"Provider result exceeded 128 KiB\",\n })\n }\n if (result.sessionId !== undefined && byteLength(result.sessionId) > 4_096) {\n throw new ProviderRunError({\n provider: options.provider,\n message: \"Provider session ID exceeded 4 KiB\",\n })\n }\n return result\n },\n catch: (cause) => {\n if (cause instanceof ProviderUnavailableError || cause instanceof ProviderRunError) {\n return cause\n }\n return new ProviderRunError({\n provider: options.provider,\n message: (cause instanceof Error ? cause.message : String(cause)).slice(0, 16_384),\n })\n },\n })\n",
|
|
15
15
|
"import { DeviceId, Provider, makeDeviceId, type Provider as ProviderName } from \"@cohall/protocol\"\nimport { Effect, Schema } from \"effect\"\nimport { access, chmod, mkdir, readFile, realpath, rename, writeFile } from \"node:fs/promises\"\nimport { homedir, hostname, platform } from \"node:os\"\nimport { dirname, join, resolve } from \"node:path\"\n\nconst WorkspaceList = Schema.Array(Schema.NonEmptyString).check(Schema.isMaxLength(64))\nconst ProviderList = Schema.Array(Provider)\n .check(Schema.isMinLength(1))\n .check(Schema.isMaxLength(3))\nconst Sandbox = Schema.Literals([\"read-only\", \"workspace-write\", \"danger-full-access\"])\n\nexport const StoredConfiguration = Schema.Struct({\n version: Schema.Literal(1),\n relayUrl: Schema.NonEmptyString,\n deviceId: DeviceId,\n deviceName: Schema.NonEmptyString,\n workspaces: WorkspaceList,\n clientToken: Schema.optionalKey(Schema.NonEmptyString),\n deviceToken: Schema.optionalKey(Schema.NonEmptyString),\n providers: Schema.optionalKey(ProviderList),\n model: Schema.optionalKey(Schema.NonEmptyString),\n sandbox: Schema.optionalKey(Sandbox),\n})\nexport interface StoredConfiguration extends Schema.Schema.Type<typeof StoredConfiguration> {}\n\nexport const ClientConfiguration = Schema.Struct({\n relayUrl: Schema.NonEmptyString,\n token: Schema.NonEmptyString,\n mcpThreadId: Schema.optionalKey(Schema.String),\n})\nexport interface ClientConfiguration extends Schema.Schema.Type<typeof ClientConfiguration> {}\n\nexport const DeviceConfiguration = Schema.Struct({\n relayUrl: Schema.NonEmptyString,\n token: Schema.NonEmptyString,\n id: DeviceId,\n name: Schema.NonEmptyString,\n workspaces: WorkspaceList,\n providers: Schema.optionalKey(ProviderList),\n model: Schema.optionalKey(Schema.NonEmptyString),\n sandbox: Schema.optionalKey(Sandbox),\n})\nexport interface DeviceConfiguration extends Schema.Schema.Type<typeof DeviceConfiguration> {}\n\nconst defaultConfigDirectory = (): string => {\n if (platform() === \"win32\") {\n return join(process.env.APPDATA ?? join(homedir(), \"AppData\", \"Roaming\"), \"Cohall\")\n }\n if (platform() === \"darwin\") {\n return join(homedir(), \"Library\", \"Application Support\", \"Cohall\")\n }\n return join(process.env.XDG_CONFIG_HOME ?? join(homedir(), \".config\"), \"cohall\")\n}\n\nexport const configurationPath = (): string =>\n resolve(process.env.COHALL_CONFIG ?? join(defaultConfigDirectory(), \"config.json\"))\n\nexport const normalizeRelayUrl = (input: string): string => {\n const url = new URL(input)\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") {\n throw new Error(\"Relay URL must use http or https\")\n }\n if (\n url.username.length > 0 ||\n url.password.length > 0 ||\n url.search.length > 0 ||\n url.hash.length > 0\n ) {\n throw new Error(\"Relay URL cannot include credentials, a query, or a fragment\")\n }\n if (url.pathname !== \"/\" && url.pathname !== \"\") {\n throw new Error(\"Relay URL cannot include a path\")\n }\n url.pathname = \"/\"\n return url.toString().replace(/\\/$/, \"\")\n}\n\nexport const parseWorkspaces = (\n workspaceList: string,\n workspaceJson?: string,\n): Effect.Effect<ReadonlyArray<string>, Error> =>\n Effect.tryPromise({\n try: async () => {\n const values =\n workspaceJson === undefined\n ? workspaceList\n .split(\",\")\n .map((workspace) => workspace.trim())\n .filter((workspace) => workspace.length > 0)\n : Schema.decodeUnknownSync(WorkspaceList)(JSON.parse(workspaceJson))\n const canonical = await Promise.all(values.map((workspace) => realpath(resolve(workspace))))\n return [...new Set(canonical)]\n },\n catch: (cause) =>\n new Error(\n `Workspace roots must be existing paths; JSON input must be an array of paths: ${cause instanceof Error ? cause.message : String(cause)}`,\n ),\n })\n\nexport const parseProviders = (input: string): ReadonlyArray<ProviderName> =>\n Schema.decodeUnknownSync(ProviderList)([\n ...new Set(\n input\n .split(\",\")\n .map((provider) => provider.trim())\n .filter(Boolean),\n ),\n ])\n\nexport const readStoredConfiguration = async (): Promise<StoredConfiguration | undefined> => {\n const path = configurationPath()\n if (\n !(await access(path)\n .then(() => true)\n .catch(() => false))\n ) {\n return undefined\n }\n if (platform() !== \"win32\") {\n await chmod(path, 0o600)\n }\n try {\n return Schema.decodeUnknownSync(StoredConfiguration)(JSON.parse(await readFile(path, \"utf8\")))\n } catch (cause) {\n throw new Error(`Invalid Cohall configuration at ${path}: ${String(cause)}`)\n }\n}\n\nexport const writeStoredConfiguration = async (\n configuration: StoredConfiguration,\n): Promise<void> => {\n const path = configurationPath()\n const directory = dirname(path)\n const temporary = `${path}.${process.pid}.tmp`\n await mkdir(directory, { recursive: true, mode: 0o700 })\n if (platform() !== \"win32\") {\n await chmod(directory, 0o700)\n }\n await writeFile(temporary, `${JSON.stringify(configuration, null, 2)}\\n`, { mode: 0o600 })\n await rename(temporary, path)\n if (platform() !== \"win32\") {\n await chmod(path, 0o600)\n }\n}\n\nexport const makeStoredConfiguration = async (input: {\n readonly relayUrl: string\n readonly deviceName?: string\n readonly workspaces?: ReadonlyArray<string>\n readonly providers?: ReadonlyArray<ProviderName> | \"auto\"\n readonly clientToken?: string\n readonly deviceToken?: string\n}): Promise<StoredConfiguration> => {\n const existing = await readStoredConfiguration()\n const canonicalWorkspaces =\n input.workspaces === undefined\n ? (existing?.workspaces ?? [])\n : await Effect.runPromise(parseWorkspaces(\"\", JSON.stringify(input.workspaces)))\n const clientToken = input.clientToken ?? existing?.clientToken\n const deviceToken = input.deviceToken ?? existing?.deviceToken\n const providers =\n input.providers === \"auto\" ? undefined : (input.providers ?? existing?.providers)\n return StoredConfiguration.make({\n version: 1,\n relayUrl: normalizeRelayUrl(input.relayUrl),\n deviceId: existing?.deviceId ?? makeDeviceId(),\n deviceName: input.deviceName ?? existing?.deviceName ?? hostname(),\n workspaces: canonicalWorkspaces,\n ...(clientToken === undefined ? {} : { clientToken }),\n ...(deviceToken === undefined ? {} : { deviceToken }),\n ...(providers === undefined ? {} : { providers }),\n ...(existing?.model === undefined ? {} : { model: existing.model }),\n ...(existing?.sandbox === undefined ? {} : { sandbox: existing.sandbox }),\n })\n}\n\nconst environmentWorkspaces = async (\n stored: StoredConfiguration | undefined,\n): Promise<ReadonlyArray<string>> => {\n const list = process.env.COHALL_DEVICE_WORKSPACES\n const json = process.env.COHALL_DEVICE_WORKSPACES_JSON\n if (list === undefined && json === undefined) {\n return stored?.workspaces ?? []\n }\n return Effect.runPromise(parseWorkspaces(list ?? \"\", json))\n}\n\nconst environmentProvider = (): string | undefined =>\n process.env.COHALL_MODEL ?? process.env.COHALL_CODEX_MODEL\n\nconst environmentSandbox = (): DeviceConfiguration[\"sandbox\"] => {\n const value = process.env.COHALL_SANDBOX ?? process.env.COHALL_CODEX_SANDBOX\n return value === undefined ? undefined : Schema.decodeUnknownSync(Sandbox)(value)\n}\n\nconst environmentProviders = (\n stored: StoredConfiguration | undefined,\n): ReadonlyArray<ProviderName> | undefined => {\n const value = process.env.COHALL_DEVICE_PROVIDERS\n return value === undefined\n ? stored?.providers\n : value === \"auto\"\n ? undefined\n : parseProviders(value)\n}\n\nconst storedOrDefaults = async (): Promise<StoredConfiguration> => {\n const stored = await readStoredConfiguration()\n return (\n stored ??\n StoredConfiguration.make({\n version: 1,\n relayUrl: \"http://127.0.0.1:8787\",\n deviceId: makeDeviceId(),\n deviceName: hostname(),\n workspaces: [],\n })\n )\n}\n\nexport const loadClientConfiguration = Effect.tryPromise({\n try: async () => {\n const stored = await storedOrDefaults()\n const token = process.env.COHALL_CLIENT_TOKEN ?? stored.clientToken\n if (token === undefined) {\n throw new Error(\n `No client credential. Run cohall join with a pairing token on stdin or set COHALL_CLIENT_TOKEN.`,\n )\n }\n return ClientConfiguration.make({\n relayUrl: normalizeRelayUrl(process.env.COHALL_RELAY_URL ?? stored.relayUrl),\n token,\n ...(process.env.COHALL_THREAD_ID === undefined\n ? {}\n : { mcpThreadId: process.env.COHALL_THREAD_ID }),\n })\n },\n catch: (cause) => (cause instanceof Error ? cause : new Error(String(cause))),\n})\n\nexport const loadOwnerConfiguration = Effect.tryPromise({\n try: async () => {\n const stored = await storedOrDefaults()\n const token = process.env.COHALL_TOKEN\n if (token === undefined) {\n throw new Error(\"No owner credential. Set COHALL_TOKEN on the owner-authenticated machine.\")\n }\n return ClientConfiguration.make({\n relayUrl: normalizeRelayUrl(process.env.COHALL_RELAY_URL ?? stored.relayUrl),\n token,\n })\n },\n catch: (cause) => (cause instanceof Error ? cause : new Error(String(cause))),\n})\n\nexport const loadDeviceConfiguration = Effect.tryPromise({\n try: async () => {\n const stored = await storedOrDefaults()\n const token = process.env.COHALL_DEVICE_TOKEN ?? stored.deviceToken\n if (token === undefined) {\n throw new Error(\n `No device credential. Run cohall join with a pairing token on stdin or set COHALL_DEVICE_TOKEN.`,\n )\n }\n const workspaces = await environmentWorkspaces(stored)\n if (workspaces.length === 0) {\n throw new Error(\"No device workspace roots are configured\")\n }\n const model = environmentProvider() ?? stored.model\n const sandbox = environmentSandbox() ?? stored.sandbox\n const providers = environmentProviders(stored)\n return DeviceConfiguration.make({\n relayUrl: normalizeRelayUrl(process.env.COHALL_RELAY_URL ?? stored.relayUrl),\n token,\n id:\n process.env.COHALL_DEVICE_ID === undefined\n ? stored.deviceId\n : DeviceId.make(process.env.COHALL_DEVICE_ID),\n name: process.env.COHALL_DEVICE_NAME ?? stored.deviceName,\n workspaces,\n ...(providers === undefined ? {} : { providers }),\n ...(model === undefined ? {} : { model }),\n ...(sandbox === undefined ? {} : { sandbox }),\n })\n },\n catch: (cause) => (cause instanceof Error ? cause : new Error(String(cause))),\n})\n\nexport const knownProviders = Provider.literals\n",
|
|
16
16
|
"import type { Interface as RelayClient } from \"@cohall/client\"\nimport {\n DeviceId,\n Provider,\n TaskId,\n TaskStatus,\n ThreadId,\n terminalTaskStatuses,\n isTerminalTask,\n type Device,\n type Provider as ProviderName,\n type Task,\n type TaskTrace,\n type ThreadId as ThreadIdType,\n} from \"@cohall/protocol\"\nimport { Effect, Schedule, Schema } from \"effect\"\nimport type { ClientConfiguration } from \"./config.ts\"\n\nexport class DeviceSelectionError extends Schema.TaggedErrorClass<DeviceSelectionError>()(\n \"Cohall.DeviceSelectionError\",\n { message: Schema.String, devices: Schema.Array(Schema.String) },\n) {}\n\nexport class TaskWaitTimeoutError extends Schema.TaggedErrorClass<TaskWaitTimeoutError>()(\n \"Cohall.TaskWaitTimeoutError\",\n { message: Schema.String, taskId: TaskId, status: TaskStatus },\n) {}\n\nexport interface DelegateOptions {\n readonly prompt: string\n readonly target?: string\n readonly context?: string\n readonly threadId?: ThreadIdType\n readonly workspace?: string\n readonly provider?: ProviderName\n}\n\nexport const TaskResult = Schema.Struct({\n task_id: TaskId,\n thread_id: ThreadId,\n status: TaskStatus,\n provider: Provider,\n target_device_id: DeviceId,\n result: Schema.optionalKey(Schema.String),\n error: Schema.optionalKey(Schema.String),\n})\nexport interface TaskResult extends Schema.Schema.Type<typeof TaskResult> {}\n\nconst matchingDevices = (devices: ReadonlyArray<Device>, target: string): ReadonlyArray<Device> => {\n const normalized = target.replace(/^@/, \"\").toLowerCase()\n const byId = devices.find((device) => device.id === target)\n return byId === undefined\n ? devices.filter(\n (device) =>\n device.name.toLowerCase() === normalized || device.hostname.toLowerCase() === normalized,\n )\n : [byId]\n}\n\nexport const taskResult = (task: Task): TaskResult =>\n TaskResult.make({\n task_id: task.id,\n thread_id: task.threadId,\n status: task.status,\n provider: task.provider,\n target_device_id: task.targetDeviceId,\n ...(task.result === undefined ? {} : { result: task.result }),\n ...(task.error === undefined ? {} : { error: task.error }),\n })\n\nexport const createDelegation = Effect.fn(\"Cohall.createDelegation\")(function* (\n client: RelayClient,\n configuration: ClientConfiguration,\n options: DelegateOptions,\n) {\n const devices = yield* client.devices()\n const matches = options.target === undefined ? [] : matchingDevices(devices, options.target)\n if (options.target !== undefined && matches.length !== 1) {\n return yield* new DeviceSelectionError({\n message:\n matches.length === 0\n ? `No Cohall device matches ${options.target}`\n : `${options.target} is ambiguous; use a device ID`,\n devices:\n matches.length === 0\n ? devices.map((device) => `${device.name} (${device.id})`)\n : matches.map((device) => `${device.name} (${device.id})`),\n })\n }\n if (devices.length === 0) {\n return yield* new DeviceSelectionError({\n message: \"No Cohall devices are registered\",\n devices: [],\n })\n }\n const target = matches[0]\n const inheritedThread = configuration.mcpThreadId\n return yield* client.createTask({\n prompt: options.prompt,\n ...(target === undefined ? {} : { targetDeviceId: target.id }),\n ...(options.threadId !== undefined\n ? { threadId: options.threadId }\n : inheritedThread === undefined\n ? {}\n : { threadId: ThreadId.make(inheritedThread) }),\n ...(options.context === undefined ? {} : { context: options.context }),\n ...(options.workspace === undefined ? {} : { workspace: options.workspace }),\n ...(options.provider === undefined ? {} : { provider: options.provider }),\n })\n})\n\nexport const waitForTask = Effect.fn(\"Cohall.waitForTask\")(function* (\n client: RelayClient,\n initial: Task,\n timeoutSeconds: number,\n) {\n const deadline = Date.now() + timeoutSeconds * 1_000\n let task = initial\n while (!isTerminalTask(task)) {\n if (Date.now() >= deadline) {\n return yield* new TaskWaitTimeoutError({\n message: `Task ${task.id} is still ${task.status} after ${timeoutSeconds} seconds`,\n taskId: task.id,\n status: task.status,\n })\n }\n yield* Effect.sleep(\"1 second\")\n task = yield* client.getTask(task.id)\n }\n return task\n})\n\nexport const followTaskTrace = Effect.fn(\"Cohall.followTaskTrace\")(function* (\n client: RelayClient,\n taskId: TaskId,\n onTrace: (trace: TaskTrace) => void,\n) {\n let revision: string | undefined\n const poll = client.traceTask(taskId).pipe(\n Effect.tap((trace) => {\n const latest = trace.events.at(-1)\n const nextRevision = `${trace.status}:${latest?.kind ?? \"none\"}:${latest?.at ?? \"none\"}`\n if (nextRevision === revision) {\n return Effect.succeed(undefined)\n }\n revision = nextRevision\n return Effect.sync(() => onTrace(trace))\n }),\n )\n return yield* poll.pipe(\n Effect.repeat({\n until: (trace) => terminalTaskStatuses.has(trace.status),\n schedule: Schedule.spaced(\"1 second\"),\n }),\n )\n})\n\nexport const threadContext = Effect.fn(\"Cohall.threadContext\")(function* (\n client: RelayClient,\n threadId: ThreadIdType,\n) {\n return yield* client.threadContext(threadId)\n})\n",
|
|
17
17
|
"import {\n Device,\n SocketEvent,\n decodeSocketEvent,\n now,\n version,\n type Provider,\n type Task,\n type TaskId,\n} from \"@cohall/protocol\"\nimport * as Providers from \"@cohall/providers\"\nimport { Effect, Schedule, Schema } from \"effect\"\nimport { realpath } from \"node:fs/promises\"\nimport { arch, hostname, platform } from \"node:os\"\nimport { basename, isAbsolute, relative } from \"node:path\"\nimport { WebSocket, type RawData } from \"ws\"\nimport type { DeviceConfiguration } from \"./config.ts\"\n\nexport class DeviceConnectionError extends Schema.TaggedErrorClass<DeviceConnectionError>()(\n \"Device.ConnectionError\",\n { message: Schema.String },\n) {}\n\ninterface State {\n socket: WebSocket | undefined\n processing: Promise<void>\n readonly terminal: Map<TaskId, string>\n readonly queue: Array<Task>\n readonly sessions: Map<string, string>\n readonly tasks: Map<TaskId, AbortController>\n readonly completed: Set<TaskId>\n}\n\nconst socketUrl = (configuration: DeviceConfiguration): string => {\n const url = new URL(configuration.relayUrl)\n url.protocol = url.protocol === \"https:\" ? \"wss:\" : \"ws:\"\n url.pathname = \"/ws/device\"\n return url.toString()\n}\n\nconst providerLabel = (provider: Provider): string => {\n switch (provider) {\n case \"codex\":\n return \"Codex\"\n case \"claude-code\":\n return \"Claude Code\"\n case \"opencode\":\n return \"OpenCode\"\n }\n}\n\nconst capabilities = (providers: ReadonlyArray<Provider>): Device[\"capabilities\"] => {\n const values: Array<Device[\"capabilities\"][number]> = providers.map((provider) => ({\n id: provider,\n label: providerLabel(provider),\n detail: `${providerLabel(provider)} executable detected; authentication is checked when work starts`,\n }))\n if (\n Providers.findExecutable(\"google-chrome\") !== undefined ||\n Providers.findExecutable(\"chromium\") !== undefined ||\n platform() === \"darwin\"\n ) {\n values.push({ id: \"browser-session\", label: \"Signed-in browser\" })\n }\n if (Providers.findExecutable(\"xcodebuild\") !== undefined) {\n values.push({ id: \"xcode\", label: \"Xcode\" })\n }\n if (Providers.findExecutable(\"docker\") !== undefined) {\n values.push({ id: \"docker\", label: \"Docker\" })\n }\n return values\n}\n\nexport const selectProviders = (\n installed: ReadonlyArray<Provider>,\n configured?: ReadonlyArray<Provider>,\n): ReadonlyArray<Provider> =>\n configured === undefined\n ? installed\n : configured.filter((provider) => installed.includes(provider))\n\nconst describeDevice = (\n configuration: DeviceConfiguration,\n status: \"online\" | \"busy\" = \"online\",\n): Device => {\n const operatingSystem = platform()\n const platformName =\n operatingSystem === \"darwin\" || operatingSystem === \"linux\"\n ? operatingSystem\n : operatingSystem === \"win32\"\n ? \"windows\"\n : \"unknown\"\n const installed = Providers.availableProviders()\n const providers = selectProviders(installed, configuration.providers)\n return Device.make({\n id: configuration.id,\n name: configuration.name,\n hostname: hostname(),\n platform: platformName,\n architecture: arch(),\n status,\n providers,\n capabilities: capabilities(providers),\n workspaces: configuration.workspaces.map((path) => ({\n path,\n label: basename(path) || path,\n })),\n version,\n lastSeenAt: now(),\n })\n}\n\nexport const allowedWorkspace = async (\n configuration: DeviceConfiguration,\n requested: string | undefined,\n): Promise<string> => {\n const selected = requested ?? configuration.workspaces[0]\n if (selected === undefined) {\n throw new Error(\"No workspace is configured on this device\")\n }\n const candidate = await realpath(selected)\n const allowed = configuration.workspaces.some((root) => {\n const child = relative(root, candidate)\n return child === \"\" || (!child.startsWith(\"..\") && !isAbsolute(child))\n })\n if (!allowed) {\n throw new Error(`Workspace ${candidate} is outside this device's configured workspace roots`)\n }\n return candidate\n}\n\nconst promptFor = (task: Task, deviceName: string): string => {\n const context =\n task.context === undefined\n ? \"\"\n : `\\n\\nRelevant context supplied by the sending agent:\\n${task.context}`\n return [\n `You are the Cohall agent running on ${deviceName}.`,\n \"Complete the delegated task using this device's local workspace, tools, credentials, and signed-in services.\",\n \"Never read, reveal, copy, or use Cohall configuration files or Cohall authentication tokens.\",\n \"Return a concise, complete result with the evidence the sending agent needs.\",\n `\\nTask:\\n${task.prompt}${context}`,\n ].join(\"\\n\")\n}\n\nconst send = (state: State, event: SocketEvent): void => {\n if (state.socket?.readyState === WebSocket.OPEN) {\n state.socket.send(JSON.stringify(event))\n }\n}\n\nconst sendTerminal = (state: State, taskId: TaskId, event: SocketEvent): void => {\n const payload = JSON.stringify(event)\n state.terminal.set(taskId, payload)\n if (state.socket?.readyState === WebSocket.OPEN) {\n state.socket.send(payload)\n }\n}\n\nconst remember = (state: State, taskId: TaskId): void => {\n state.completed.add(taskId)\n if (state.completed.size <= 1_000) {\n return\n }\n const oldest = state.completed.values().next()\n if (!oldest.done) {\n state.completed.delete(oldest.value)\n state.terminal.delete(oldest.value)\n }\n}\n\nconst sessionKey = (task: Task): string => `${task.threadId}:${task.provider}`\n\nconst execute = (configuration: DeviceConfiguration, state: State, task: Task): void => {\n if (state.tasks.has(task.id) || state.completed.has(task.id)) {\n return\n }\n const controller = new AbortController()\n state.tasks.set(task.id, controller)\n send(state, SocketEvent.make({ _tag: \"TaskAccepted\", taskId: task.id }))\n\n const workflow = Effect.gen(function* () {\n const cwd = yield* Effect.tryPromise({\n try: () => allowedWorkspace(configuration, task.workspace),\n catch: (cause) =>\n new Providers.ProviderRunError({\n provider: task.provider,\n message: cause instanceof Error ? cause.message : String(cause),\n }),\n })\n const sessionId = task.providerSessionId ?? state.sessions.get(sessionKey(task))\n return yield* Providers.run({\n provider: task.provider,\n threadId: task.threadId,\n prompt: promptFor(task, configuration.name),\n cwd,\n ...(sessionId === undefined ? {} : { sessionId }),\n ...(configuration.model === undefined ? {} : { model: configuration.model }),\n ...(configuration.sandbox === undefined ? {} : { sandbox: configuration.sandbox }),\n })\n })\n\n void Effect.runPromise(workflow, { signal: controller.signal })\n .then((result) => {\n if (result.sessionId !== undefined) {\n state.sessions.set(sessionKey(task), result.sessionId)\n }\n remember(state, task.id)\n sendTerminal(\n state,\n task.id,\n SocketEvent.make({\n _tag: \"TaskFinished\",\n taskId: task.id,\n result: result.result,\n ...(result.sessionId === undefined ? {} : { providerSessionId: result.sessionId }),\n }),\n )\n })\n .catch((cause: unknown) => {\n remember(state, task.id)\n sendTerminal(\n state,\n task.id,\n controller.signal.aborted\n ? SocketEvent.make({ _tag: \"TaskCancelled\", taskId: task.id })\n : SocketEvent.make({\n _tag: \"TaskFailed\",\n taskId: task.id,\n error: (cause instanceof Error ? cause.message : String(cause)).slice(0, 16_384),\n }),\n )\n })\n .finally(() => {\n state.tasks.delete(task.id)\n const next = state.queue.shift()\n if (next !== undefined) {\n execute(configuration, state, next)\n }\n })\n}\n\nconst schedule = (configuration: DeviceConfiguration, state: State, task: Task): void => {\n if (\n state.tasks.has(task.id) ||\n state.completed.has(task.id) ||\n state.queue.some((queued) => queued.id === task.id)\n ) {\n return\n }\n if (task.providerSessionId !== undefined) {\n state.sessions.set(sessionKey(task), task.providerSessionId)\n }\n if (state.tasks.size > 0) {\n if (state.queue.length >= 100) {\n state.socket?.close(4008, \"Task queue limit reached\")\n return\n }\n state.queue.push(task)\n return\n }\n execute(configuration, state, task)\n}\n\nconst cancel = (state: State, taskId: TaskId): void => {\n const running = state.tasks.get(taskId)\n if (running !== undefined) {\n running.abort()\n return\n }\n const index = state.queue.findIndex((task) => task.id === taskId)\n if (index !== -1) {\n state.queue.splice(index, 1)\n }\n remember(state, taskId)\n sendTerminal(state, taskId, SocketEvent.make({ _tag: \"TaskCancelled\", taskId }))\n}\n\nconst connect = (\n configuration: DeviceConfiguration,\n state: State,\n): Effect.Effect<void, DeviceConnectionError> =>\n Effect.tryPromise({\n try: (signal) =>\n new Promise<void>((complete) => {\n const socket = new WebSocket(socketUrl(configuration))\n const heartbeat = setInterval(() => {\n send(\n state,\n SocketEvent.make({\n _tag: \"DeviceHeartbeat\",\n deviceId: configuration.id,\n status: state.tasks.size > 0 ? \"busy\" : \"online\",\n }),\n )\n }, 15_000)\n let closed = false\n const close = (): void => {\n if (closed) {\n return\n }\n closed = true\n clearInterval(heartbeat)\n if (state.socket === socket) {\n state.socket = undefined\n }\n complete()\n }\n signal.addEventListener(\n \"abort\",\n () => {\n socket.close()\n close()\n },\n { once: true },\n )\n socket.once(\"open\", () => {\n socket.send(\n JSON.stringify(SocketEvent.make({ _tag: \"Authenticate\", token: configuration.token })),\n )\n })\n socket.on(\"message\", (message: RawData) => {\n const text = Buffer.isBuffer(message)\n ? message.toString(\"utf8\")\n : message instanceof ArrayBuffer\n ? Buffer.from(message).toString(\"utf8\")\n : Array.isArray(message)\n ? Buffer.concat(message).toString(\"utf8\")\n : Buffer.from(message).toString(\"utf8\")\n state.processing = state.processing\n .then(async () => {\n const event = await Effect.runPromise(\n Effect.try({\n try: () => JSON.parse(text) as unknown,\n catch: () => new DeviceConnectionError({ message: \"Relay sent invalid JSON\" }),\n }).pipe(Effect.flatMap(decodeSocketEvent)),\n )\n if (event._tag === \"Connected\") {\n state.socket = socket\n socket.send(\n JSON.stringify(\n SocketEvent.make({\n _tag: \"DeviceHello\",\n device: describeDevice(\n configuration,\n state.tasks.size > 0 ? \"busy\" : \"online\",\n ),\n }),\n ),\n )\n for (const payload of state.terminal.values()) {\n socket.send(payload)\n }\n return\n }\n if (event._tag === \"TaskAssigned\") {\n schedule(configuration, state, event.task)\n return\n }\n if (event._tag === \"CancelTask\") {\n cancel(state, event.taskId)\n return\n }\n if (event._tag === \"TaskSettled\") {\n state.terminal.delete(event.taskId)\n return\n }\n if (event._tag === \"Error\") {\n console.error(`Relay error: ${event.message}`)\n }\n })\n .catch((cause: unknown) => {\n console.error(\n `Invalid relay event: ${cause instanceof Error ? cause.message : String(cause)}`,\n )\n })\n })\n socket.once(\"close\", close)\n socket.once(\"error\", () => socket.close())\n }),\n catch: (cause) =>\n new DeviceConnectionError({\n message: cause instanceof Error ? cause.message : String(cause),\n }),\n })\n\nexport const runDaemon = (\n configuration: DeviceConfiguration,\n): Effect.Effect<void, DeviceConnectionError> => {\n const state: State = {\n socket: undefined,\n processing: Promise.resolve(),\n terminal: new Map(),\n queue: [],\n sessions: new Map(),\n tasks: new Map(),\n completed: new Set(),\n }\n return connect(configuration, state).pipe(\n Effect.repeat({ schedule: Schedule.spaced(\"2 seconds\") }),\n Effect.ensuring(\n Effect.sync(() => {\n state.socket?.close()\n for (const controller of state.tasks.values()) {\n controller.abort()\n }\n }),\n ),\n )\n}\n",
|
|
18
18
|
"import { RelayClient } from \"@cohall/client\"\nimport { TaskId, ThreadId, version } from \"@cohall/protocol\"\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\"\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\"\nimport { Effect } from \"effect\"\nimport * as z from \"zod/v4\"\nimport type { ClientConfiguration } from \"./config.ts\"\nimport { createDelegation, taskResult, threadContext, waitForTask } from \"./delegation.ts\"\n\nconst output = (value: unknown) => ({\n content: [{ type: \"text\" as const, text: JSON.stringify(value, null, 2) }],\n})\n\nexport const runMcp = async (configuration: ClientConfiguration): Promise<void> => {\n const client = RelayClient.make({\n baseUrl: configuration.relayUrl,\n token: configuration.token,\n })\n const server = new McpServer({ name: \"cohall\", version })\n\n server.registerTool(\n \"list_devices\",\n {\n title: \"List Cohall devices\",\n description:\n \"List devices, their availability, local providers, capabilities, and allowed workspaces.\",\n inputSchema: {},\n },\n async () => output(await Effect.runPromise(client.devices())),\n )\n\n server.registerTool(\n \"delegate\",\n {\n title: \"Delegate work to another device\",\n description:\n \"Send focused work to another Cohall device. Include only relevant context; Cohall cannot read the host transcript. Reuse thread_id for related follow-ups.\",\n inputSchema: {\n prompt: z.string().min(1).max(131_072),\n target: z.string().optional().describe(\"Device name, @name, hostname, or ID\"),\n provider: z.enum([\"codex\", \"claude-code\", \"opencode\"]).default(\"codex\"),\n context: z.string().max(131_072).optional(),\n thread_id: z.string().uuid().optional(),\n workspace: z.string().max(4096).optional(),\n wait: z.boolean().default(true),\n timeout_seconds: z.number().int().min(5).max(86_400).default(900),\n },\n },\n async ({ prompt, target, provider, context, thread_id, workspace, wait, timeout_seconds }) => {\n const task = await Effect.runPromise(\n createDelegation(client, configuration, {\n prompt,\n provider,\n ...(target === undefined ? {} : { target }),\n ...(context === undefined ? {} : { context }),\n ...(thread_id === undefined ? {} : { threadId: ThreadId.make(thread_id) }),\n ...(workspace === undefined ? {} : { workspace }),\n }),\n )\n return output(\n taskResult(\n wait ? await Effect.runPromise(waitForTask(client, task, timeout_seconds)) : task,\n ),\n )\n },\n )\n\n server.registerTool(\n \"task_status\",\n {\n title: \"Get delegated task status\",\n description: \"Read the current state and result of a Cohall task.\",\n inputSchema: { task_id: z.string().uuid() },\n },\n async ({ task_id }) =>\n output(taskResult(await Effect.runPromise(client.getTask(TaskId.make(task_id))))),\n )\n\n server.registerTool(\n \"task_trace\",\n {\n title: \"Trace a delegated task\",\n description:\n \"Read the redacted relay and device lifecycle for troubleshooting a Cohall task.\",\n inputSchema: { task_id: z.string().uuid() },\n },\n async ({ task_id }) => output(await Effect.runPromise(client.traceTask(TaskId.make(task_id)))),\n )\n\n server.registerTool(\n \"wait_task\",\n {\n title: \"Wait for delegated work\",\n description: \"Wait for a Cohall task to finish and return its final result.\",\n inputSchema: {\n task_id: z.string().uuid(),\n timeout_seconds: z.number().int().min(5).max(86_400).default(900),\n },\n },\n async ({ task_id, timeout_seconds }) => {\n const task = await Effect.runPromise(client.getTask(TaskId.make(task_id)))\n return output(taskResult(await Effect.runPromise(waitForTask(client, task, timeout_seconds))))\n },\n )\n\n server.registerTool(\n \"cancel_task\",\n {\n title: \"Cancel delegated work\",\n description: \"Request cancellation and return its acknowledged or pending state.\",\n inputSchema: { task_id: z.string().uuid() },\n },\n async ({ task_id }) =>\n output(taskResult(await Effect.runPromise(client.cancelTask(TaskId.make(task_id))))),\n )\n\n server.registerTool(\n \"thread_context\",\n {\n title: \"Read a Cohall thread\",\n description: \"Read shared task prompts and final results for a cross-device thread.\",\n inputSchema: { thread_id: z.string().uuid() },\n },\n async ({ thread_id }) =>\n output(await Effect.runPromise(threadContext(client, ThreadId.make(thread_id)))),\n )\n\n await server.connect(new StdioServerTransport())\n}\n"
|
|
19
19
|
],
|
|
20
|
-
"mappings": "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",
|
|
21
|
-
"debugId": "
|
|
20
|
+
"mappings": "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",
|
|
21
|
+
"debugId": "492323E24FE9814364756E2164756E21",
|
|
22
22
|
"names": []
|
|
23
23
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akshar5/cohall",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "Let coding agents delegate work across your own devices.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agents",
|
|
@@ -62,6 +62,10 @@
|
|
|
62
62
|
"ws": "^8.21.2",
|
|
63
63
|
"zod": "^4.4.3"
|
|
64
64
|
},
|
|
65
|
+
"overrides": {
|
|
66
|
+
"fast-uri": "^3.1.5",
|
|
67
|
+
"hono": "^4.12.34"
|
|
68
|
+
},
|
|
65
69
|
"devDependencies": {
|
|
66
70
|
"@types/node": "^24.13.3",
|
|
67
71
|
"@types/ws": "^8.18.1",
|