@itsshadowai/refinery 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +228 -0
  3. package/coral/agents/claim-scout/coral-agent.toml +23 -0
  4. package/coral/agents/decision-synthesizer/coral-agent.toml +23 -0
  5. package/coral/agents/evidence-auditor/coral-agent.toml +23 -0
  6. package/coral/agents/memory-cartographer/coral-agent.toml +23 -0
  7. package/coral/agents/proposal-editor/coral-agent.toml +23 -0
  8. package/coral/agents/run-worker.sh +19 -0
  9. package/coral/refinery-config.toml +16 -0
  10. package/dist/adapters/codex-memory.d.ts +6 -0
  11. package/dist/adapters/codex-memory.js +264 -0
  12. package/dist/adapters/codex-memory.js.map +1 -0
  13. package/dist/cli.d.ts +2 -0
  14. package/dist/cli.js +671 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/coral/client.d.ts +107 -0
  17. package/dist/coral/client.js +214 -0
  18. package/dist/coral/client.js.map +1 -0
  19. package/dist/coral/definitions.d.ts +25 -0
  20. package/dist/coral/definitions.js +53 -0
  21. package/dist/coral/definitions.js.map +1 -0
  22. package/dist/coral/mcp.d.ts +17 -0
  23. package/dist/coral/mcp.js +71 -0
  24. package/dist/coral/mcp.js.map +1 -0
  25. package/dist/coral/review-conductor.d.ts +120 -0
  26. package/dist/coral/review-conductor.js +1290 -0
  27. package/dist/coral/review-conductor.js.map +1 -0
  28. package/dist/coral/smoke.d.ts +1 -0
  29. package/dist/coral/smoke.js +265 -0
  30. package/dist/coral/smoke.js.map +1 -0
  31. package/dist/coral/topology.d.ts +5 -0
  32. package/dist/coral/topology.js +15 -0
  33. package/dist/coral/topology.js.map +1 -0
  34. package/dist/coral/worker.d.ts +34 -0
  35. package/dist/coral/worker.js +671 -0
  36. package/dist/coral/worker.js.map +1 -0
  37. package/dist/core/adapter.d.ts +93 -0
  38. package/dist/core/adapter.js +112 -0
  39. package/dist/core/adapter.js.map +1 -0
  40. package/dist/core/artifacts.d.ts +93 -0
  41. package/dist/core/artifacts.js +200 -0
  42. package/dist/core/artifacts.js.map +1 -0
  43. package/dist/core/deliberation.d.ts +89 -0
  44. package/dist/core/deliberation.js +385 -0
  45. package/dist/core/deliberation.js.map +1 -0
  46. package/dist/core/errors.d.ts +26 -0
  47. package/dist/core/errors.js +50 -0
  48. package/dist/core/errors.js.map +1 -0
  49. package/dist/core/intents.d.ts +5 -0
  50. package/dist/core/intents.js +34 -0
  51. package/dist/core/intents.js.map +1 -0
  52. package/dist/core/live-review.d.ts +93 -0
  53. package/dist/core/live-review.js +269 -0
  54. package/dist/core/live-review.js.map +1 -0
  55. package/dist/core/model-client.d.ts +19 -0
  56. package/dist/core/model-client.js +45 -0
  57. package/dist/core/model-client.js.map +1 -0
  58. package/dist/core/paths.d.ts +16 -0
  59. package/dist/core/paths.js +43 -0
  60. package/dist/core/paths.js.map +1 -0
  61. package/dist/core/review.d.ts +93 -0
  62. package/dist/core/review.js +102 -0
  63. package/dist/core/review.js.map +1 -0
  64. package/dist/core/specialists/claim-scout.d.ts +2 -0
  65. package/dist/core/specialists/claim-scout.js +26 -0
  66. package/dist/core/specialists/claim-scout.js.map +1 -0
  67. package/dist/core/specialists/decision-synthesizer.d.ts +2 -0
  68. package/dist/core/specialists/decision-synthesizer.js +35 -0
  69. package/dist/core/specialists/decision-synthesizer.js.map +1 -0
  70. package/dist/core/specialists/evidence-auditor.d.ts +2 -0
  71. package/dist/core/specialists/evidence-auditor.js +35 -0
  72. package/dist/core/specialists/evidence-auditor.js.map +1 -0
  73. package/dist/core/specialists/harness.d.ts +2 -0
  74. package/dist/core/specialists/harness.js +13 -0
  75. package/dist/core/specialists/harness.js.map +1 -0
  76. package/dist/core/specialists/index.d.ts +8 -0
  77. package/dist/core/specialists/index.js +8 -0
  78. package/dist/core/specialists/index.js.map +1 -0
  79. package/dist/core/specialists/memory-cartographer.d.ts +2 -0
  80. package/dist/core/specialists/memory-cartographer.js +33 -0
  81. package/dist/core/specialists/memory-cartographer.js.map +1 -0
  82. package/dist/core/specialists/prompt.d.ts +3 -0
  83. package/dist/core/specialists/prompt.js +25 -0
  84. package/dist/core/specialists/prompt.js.map +1 -0
  85. package/dist/core/specialists/proposal-editor.d.ts +2 -0
  86. package/dist/core/specialists/proposal-editor.js +37 -0
  87. package/dist/core/specialists/proposal-editor.js.map +1 -0
  88. package/dist/core/specialists/types.d.ts +20 -0
  89. package/dist/core/specialists/types.js +2 -0
  90. package/dist/core/specialists/types.js.map +1 -0
  91. package/dist/env.d.ts +11 -0
  92. package/dist/env.js +53 -0
  93. package/dist/env.js.map +1 -0
  94. package/dist/mcp.d.ts +9 -0
  95. package/dist/mcp.js +147 -0
  96. package/dist/mcp.js.map +1 -0
  97. package/package.json +50 -0
  98. package/skills/refinery/SKILL.md +117 -0
  99. package/skills/refinery/agents/openai.yaml +4 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ export interface SessionIdentifier {
2
+ sessionId: string;
3
+ namespace: string;
4
+ }
5
+ export interface CoralMessage {
6
+ id: string;
7
+ threadId: string;
8
+ text: string;
9
+ senderName: string;
10
+ mentionNames: string[];
11
+ timestamp?: string;
12
+ }
13
+ export interface CoralThread {
14
+ id: string;
15
+ name?: string;
16
+ creatorName?: string;
17
+ participants?: string[];
18
+ messages?: CoralMessage[];
19
+ }
20
+ export interface CoralAgentState {
21
+ name: string;
22
+ status?: unknown;
23
+ }
24
+ export interface ExtendedState {
25
+ base?: unknown;
26
+ agents: CoralAgentState[];
27
+ threads: CoralThread[];
28
+ }
29
+ export type AgentReadiness = "ready" | "starting" | "stopped";
30
+ export interface CoralSmokeClientOptions {
31
+ apiUrl: string;
32
+ authKey: string;
33
+ }
34
+ export interface CoralSessionRequestInput {
35
+ namespace: string;
36
+ runId: string;
37
+ modelName?: string;
38
+ modelBaseUrl?: string;
39
+ reasoningEffort?: string;
40
+ maxTurns?: string;
41
+ ttlMs?: number;
42
+ holdAfterExitMs?: number;
43
+ }
44
+ export interface PingEnvelope {
45
+ type: "refinery-ping" | "refinery-pong";
46
+ runId: string;
47
+ sequence: string[];
48
+ index: number;
49
+ agent?: string;
50
+ specialist?: string;
51
+ receivedMessageId?: string;
52
+ nextAgent?: string | null;
53
+ }
54
+ export interface PingPongEvaluation {
55
+ ok: boolean;
56
+ expectedAgents: string[];
57
+ respondedAgents: string[];
58
+ mentionedAgents: string[];
59
+ missingResponses: string[];
60
+ missingMentions: string[];
61
+ responses: Array<{
62
+ agent: string;
63
+ message: CoralMessage;
64
+ envelope: PingEnvelope;
65
+ }>;
66
+ }
67
+ export declare function buildCoralSessionRequest(input: CoralSessionRequestInput): unknown;
68
+ export declare function getLocalAgent(opts: CoralSmokeClientOptions, agentName: string): Promise<unknown>;
69
+ export declare function createSession(opts: CoralSmokeClientOptions, req: unknown): Promise<SessionIdentifier>;
70
+ export declare function closeSession(opts: CoralSmokeClientOptions, session: SessionIdentifier): Promise<void>;
71
+ export declare function getExtended(opts: CoralSmokeClientOptions, session: SessionIdentifier): Promise<ExtendedState>;
72
+ export declare function puppetCreateThread(opts: CoralSmokeClientOptions, session: SessionIdentifier, agentName: string, body: {
73
+ threadName: string;
74
+ participantNames: string[];
75
+ }): Promise<{
76
+ thread: CoralThread;
77
+ }>;
78
+ export declare function puppetSendMessage(opts: CoralSmokeClientOptions, session: SessionIdentifier, agentName: string, body: {
79
+ threadId: string;
80
+ content: string;
81
+ mentions: string[];
82
+ }): Promise<{
83
+ status: string;
84
+ message: CoralMessage;
85
+ }>;
86
+ export declare function classifyAgentReadiness(agent: CoralAgentState): AgentReadiness;
87
+ export declare function allMessages(ext: ExtendedState): CoralMessage[];
88
+ export declare function parsePingEnvelope(text: string): PingEnvelope | null;
89
+ export declare function evaluatePingPong(messages: CoralMessage[], threadId: string, runId: string, sequence: string[]): PingPongEvaluation;
90
+ export declare function waitForAgentsReady(opts: CoralSmokeClientOptions, session: SessionIdentifier, agentNames: string[], onSnapshot: (snapshot: ExtendedState) => void, wait: {
91
+ timeoutMs: number;
92
+ intervalMs: number;
93
+ }): Promise<{
94
+ ok: true;
95
+ snapshot: ExtendedState;
96
+ } | {
97
+ ok: false;
98
+ snapshot: ExtendedState | null;
99
+ stopped: string[];
100
+ }>;
101
+ export declare function pollPingPong(opts: CoralSmokeClientOptions, session: SessionIdentifier, threadId: string, runId: string, sequence: string[], onSnapshot: (snapshot: ExtendedState) => void, wait: {
102
+ timeoutMs: number;
103
+ intervalMs: number;
104
+ }): Promise<{
105
+ evaluation: PingPongEvaluation;
106
+ snapshot: ExtendedState | null;
107
+ }>;
@@ -0,0 +1,214 @@
1
+ import { setTimeout as sleep } from "node:timers/promises";
2
+ import { refineryCoralAgents, refineryCoralAgentNames, refineryCoralAgentVersion, refineryCoralModelDefaults, } from "./definitions.js";
3
+ function headers(authKey) {
4
+ return {
5
+ "Content-Type": "application/json",
6
+ Authorization: `Bearer ${authKey}`,
7
+ };
8
+ }
9
+ async function jsonOrThrow(res) {
10
+ if (!res.ok) {
11
+ const text = await res.text().catch(() => "");
12
+ throw new Error(`Coral ${res.status}: ${text || res.statusText}`);
13
+ }
14
+ return (await res.json());
15
+ }
16
+ function isRecord(value) {
17
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
18
+ }
19
+ function option(value) {
20
+ return { type: "string", value };
21
+ }
22
+ export function buildCoralSessionRequest(input) {
23
+ return {
24
+ agentGraphRequest: {
25
+ agents: refineryCoralAgents.map((agent) => ({
26
+ id: {
27
+ name: agent.agentName,
28
+ version: refineryCoralAgentVersion,
29
+ registrySourceId: { type: "local" },
30
+ },
31
+ name: agent.agentName,
32
+ description: agent.specialist.purpose,
33
+ blocking: true,
34
+ provider: { type: "local", runtime: "executable" },
35
+ options: {
36
+ MODEL_NAME: option(input.modelName ?? refineryCoralModelDefaults.modelName),
37
+ MODEL_BASE_URL: option(input.modelBaseUrl ?? refineryCoralModelDefaults.baseUrl),
38
+ REASONING_EFFORT: option(input.reasoningEffort ?? refineryCoralModelDefaults.reasoningEffort),
39
+ REFINERY_CORAL_MAX_TURNS: option(input.maxTurns ?? "1"),
40
+ },
41
+ })),
42
+ groups: [refineryCoralAgentNames],
43
+ customTools: {},
44
+ },
45
+ namespaceProvider: {
46
+ type: "create_if_not_exists",
47
+ namespaceRequest: {
48
+ name: input.namespace,
49
+ deleteOnLastSessionExit: true,
50
+ annotations: { app: "refinery", smoke: "coral-ping-pong", runId: input.runId },
51
+ },
52
+ },
53
+ execution: {
54
+ mode: "immediate",
55
+ runtimeSettings: {
56
+ ttl: input.ttlMs ?? 180_000,
57
+ extendedEndReport: true,
58
+ persistenceMode: { mode: "hold_after_exit", duration: input.holdAfterExitMs ?? 120_000 },
59
+ },
60
+ },
61
+ annotations: {
62
+ app: "refinery",
63
+ smoke: "coral-ping-pong",
64
+ runId: input.runId,
65
+ },
66
+ };
67
+ }
68
+ export async function getLocalAgent(opts, agentName) {
69
+ const res = await fetch(`${opts.apiUrl}/api/v1/registry/local/${agentName}/${refineryCoralAgentVersion}`, {
70
+ headers: headers(opts.authKey),
71
+ });
72
+ return jsonOrThrow(res);
73
+ }
74
+ export async function createSession(opts, req) {
75
+ const res = await fetch(`${opts.apiUrl}/api/v1/local/session`, {
76
+ method: "POST",
77
+ headers: headers(opts.authKey),
78
+ body: JSON.stringify(req),
79
+ });
80
+ return jsonOrThrow(res);
81
+ }
82
+ export async function closeSession(opts, session) {
83
+ await fetch(`${opts.apiUrl}/api/v1/local/session/${session.namespace}/${session.sessionId}`, {
84
+ method: "DELETE",
85
+ headers: headers(opts.authKey),
86
+ }).catch(() => { });
87
+ }
88
+ export async function getExtended(opts, session) {
89
+ const res = await fetch(`${opts.apiUrl}/api/v1/local/session/${session.namespace}/${session.sessionId}/extended`, {
90
+ headers: headers(opts.authKey),
91
+ });
92
+ return jsonOrThrow(res);
93
+ }
94
+ export async function puppetCreateThread(opts, session, agentName, body) {
95
+ const res = await fetch(`${opts.apiUrl}/api/v1/puppet/${session.namespace}/${session.sessionId}/${agentName}/thread`, {
96
+ method: "POST",
97
+ headers: headers(opts.authKey),
98
+ body: JSON.stringify(body),
99
+ });
100
+ return jsonOrThrow(res);
101
+ }
102
+ export async function puppetSendMessage(opts, session, agentName, body) {
103
+ const res = await fetch(`${opts.apiUrl}/api/v1/puppet/${session.namespace}/${session.sessionId}/${agentName}/thread/message`, {
104
+ method: "POST",
105
+ headers: headers(opts.authKey),
106
+ body: JSON.stringify(body),
107
+ });
108
+ return jsonOrThrow(res);
109
+ }
110
+ export function classifyAgentReadiness(agent) {
111
+ const status = agent.status;
112
+ if (!isRecord(status))
113
+ return "starting";
114
+ if (status.type === "stopped")
115
+ return "stopped";
116
+ const connectionStatus = isRecord(status.connectionStatus) ? status.connectionStatus : null;
117
+ const communicationStatus = connectionStatus && isRecord(connectionStatus.communicationStatus)
118
+ ? connectionStatus.communicationStatus
119
+ : null;
120
+ if (status.type === "running" &&
121
+ connectionStatus?.type === "connected" &&
122
+ (communicationStatus?.type === "waiting_message" || communicationStatus?.type === "thinking")) {
123
+ return "ready";
124
+ }
125
+ return "starting";
126
+ }
127
+ export function allMessages(ext) {
128
+ return ext.threads.flatMap((thread) => thread.messages ?? []);
129
+ }
130
+ export function parsePingEnvelope(text) {
131
+ try {
132
+ const parsed = JSON.parse(text);
133
+ if (!isRecord(parsed))
134
+ return null;
135
+ if (parsed.type !== "refinery-ping" && parsed.type !== "refinery-pong")
136
+ return null;
137
+ if (typeof parsed.runId !== "string" || !Array.isArray(parsed.sequence) || typeof parsed.index !== "number") {
138
+ return null;
139
+ }
140
+ return {
141
+ type: parsed.type,
142
+ runId: parsed.runId,
143
+ sequence: parsed.sequence.filter((item) => typeof item === "string"),
144
+ index: parsed.index,
145
+ agent: typeof parsed.agent === "string" ? parsed.agent : undefined,
146
+ specialist: typeof parsed.specialist === "string" ? parsed.specialist : undefined,
147
+ receivedMessageId: typeof parsed.receivedMessageId === "string" ? parsed.receivedMessageId : undefined,
148
+ nextAgent: typeof parsed.nextAgent === "string" ? parsed.nextAgent : null,
149
+ };
150
+ }
151
+ catch {
152
+ return null;
153
+ }
154
+ }
155
+ export function evaluatePingPong(messages, threadId, runId, sequence) {
156
+ const threadMessages = messages.filter((message) => message.threadId === threadId);
157
+ const responses = threadMessages
158
+ .map((message) => ({ message, envelope: parsePingEnvelope(message.text) }))
159
+ .filter((item) => item.envelope?.type === "refinery-pong" && item.envelope.runId === runId)
160
+ .map((item) => ({ agent: item.message.senderName, message: item.message, envelope: item.envelope }))
161
+ .sort((left, right) => left.envelope.index - right.envelope.index);
162
+ const respondedAgents = responses.map((response) => response.agent);
163
+ const mentionedAgents = Array.from(new Set(threadMessages.flatMap((message) => message.mentionNames ?? [])));
164
+ const missingResponses = sequence.filter((agent) => !respondedAgents.includes(agent));
165
+ const missingMentions = sequence.filter((agent) => !mentionedAgents.includes(agent));
166
+ return {
167
+ ok: missingResponses.length === 0 && missingMentions.length === 0,
168
+ expectedAgents: sequence,
169
+ respondedAgents,
170
+ mentionedAgents,
171
+ missingResponses,
172
+ missingMentions,
173
+ responses,
174
+ };
175
+ }
176
+ export async function waitForAgentsReady(opts, session, agentNames, onSnapshot, wait) {
177
+ const deadline = Date.now() + wait.timeoutMs;
178
+ let last = null;
179
+ while (Date.now() < deadline) {
180
+ const snapshot = await getExtended(opts, session);
181
+ last = snapshot;
182
+ onSnapshot(snapshot);
183
+ const wanted = snapshot.agents.filter((agent) => agentNames.includes(agent.name));
184
+ const stopped = wanted.filter((agent) => classifyAgentReadiness(agent) === "stopped").map((agent) => agent.name);
185
+ if (stopped.length > 0)
186
+ return { ok: false, snapshot, stopped };
187
+ if (wanted.length === agentNames.length && wanted.every((agent) => classifyAgentReadiness(agent) === "ready")) {
188
+ return { ok: true, snapshot };
189
+ }
190
+ await sleep(wait.intervalMs);
191
+ }
192
+ return { ok: false, snapshot: last, stopped: [] };
193
+ }
194
+ export async function pollPingPong(opts, session, threadId, runId, sequence, onSnapshot, wait) {
195
+ const deadline = Date.now() + wait.timeoutMs;
196
+ let last = null;
197
+ let lastEvaluation = evaluatePingPong([], threadId, runId, sequence);
198
+ while (Date.now() < deadline) {
199
+ const snapshot = await getExtended(opts, session);
200
+ last = snapshot;
201
+ onSnapshot(snapshot);
202
+ lastEvaluation = evaluatePingPong(allMessages(snapshot), threadId, runId, sequence);
203
+ if (lastEvaluation.ok)
204
+ return { evaluation: lastEvaluation, snapshot };
205
+ const stopped = snapshot.agents
206
+ .filter((agent) => sequence.includes(agent.name))
207
+ .filter((agent) => classifyAgentReadiness(agent) === "stopped");
208
+ if (stopped.length > 0)
209
+ return { evaluation: lastEvaluation, snapshot };
210
+ await sleep(wait.intervalMs);
211
+ }
212
+ return { evaluation: lastEvaluation, snapshot: last };
213
+ }
214
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/coral/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { LocalSpecialist, SpecialistName } from "../core/specialists/types.ts";
2
+ export declare const refineryCoralAgentVersion = "0.1.0";
3
+ export declare const refineryCoralAuthKey = "refinery-dev";
4
+ export declare const refineryCoralPort = 5555;
5
+ export declare const refineryCoralConfigPath = "coral/refinery-config.toml";
6
+ export declare const refineryCoralAgentGlob = "coral/agents/*";
7
+ export declare const refineryCoralModelDefaults: {
8
+ readonly modelName: "deepseek/deepseek-v4-pro";
9
+ readonly baseUrl: "https://openrouter.ai/api/v1";
10
+ readonly reasoningEffort: "low";
11
+ };
12
+ export interface RefineryCoralAgentDefinition {
13
+ specialistName: SpecialistName;
14
+ agentName: string;
15
+ folderName: string;
16
+ version: typeof refineryCoralAgentVersion;
17
+ specialist: LocalSpecialist;
18
+ }
19
+ export declare const refineryCoralAgents: RefineryCoralAgentDefinition[];
20
+ export declare const refineryCoralAgentNames: string[];
21
+ export declare function refineryCoralAgentGlobForRepo(repoRoot?: string): string;
22
+ export declare function getCoralAgentBySpecialistName(name: SpecialistName): RefineryCoralAgentDefinition;
23
+ export declare function getCoralAgentByAgentName(name: string): RefineryCoralAgentDefinition;
24
+ export declare function isRefineryCoralAgentName(name: string): boolean;
25
+ export declare function getSpecialistNameArg(args: string[]): SpecialistName;
@@ -0,0 +1,53 @@
1
+ import { orderedSpecialists } from "../core/specialists/harness.js";
2
+ import path from "node:path";
3
+ export const refineryCoralAgentVersion = "0.1.0";
4
+ export const refineryCoralAuthKey = "refinery-dev";
5
+ export const refineryCoralPort = 5555;
6
+ export const refineryCoralConfigPath = "coral/refinery-config.toml";
7
+ export const refineryCoralAgentGlob = "coral/agents/*";
8
+ export const refineryCoralModelDefaults = {
9
+ modelName: "deepseek/deepseek-v4-pro",
10
+ baseUrl: "https://openrouter.ai/api/v1",
11
+ reasoningEffort: "low",
12
+ };
13
+ function agentNameForSpecialist(name) {
14
+ return `refinery-${name}`;
15
+ }
16
+ export const refineryCoralAgents = orderedSpecialists.map((specialist) => ({
17
+ specialistName: specialist.name,
18
+ agentName: agentNameForSpecialist(specialist.name),
19
+ folderName: specialist.name,
20
+ version: refineryCoralAgentVersion,
21
+ specialist,
22
+ }));
23
+ export const refineryCoralAgentNames = refineryCoralAgents.map((agent) => agent.agentName);
24
+ export function refineryCoralAgentGlobForRepo(repoRoot = process.cwd()) {
25
+ return path.join(repoRoot, refineryCoralAgentGlob);
26
+ }
27
+ export function getCoralAgentBySpecialistName(name) {
28
+ const agent = refineryCoralAgents.find((candidate) => candidate.specialistName === name);
29
+ if (!agent)
30
+ throw new Error(`Unknown Refinery specialist: ${name}`);
31
+ return agent;
32
+ }
33
+ export function getCoralAgentByAgentName(name) {
34
+ const agent = refineryCoralAgents.find((candidate) => candidate.agentName === name);
35
+ if (!agent)
36
+ throw new Error(`Unknown Refinery Coral agent: ${name}`);
37
+ return agent;
38
+ }
39
+ export function isRefineryCoralAgentName(name) {
40
+ return refineryCoralAgents.some((agent) => agent.agentName === name);
41
+ }
42
+ export function getSpecialistNameArg(args) {
43
+ const index = args.indexOf("--specialist");
44
+ const raw = index >= 0 ? args[index + 1] : args[0];
45
+ if (!raw) {
46
+ throw new Error(`Usage: refinery coral worker --specialist ${orderedSpecialists.map((s) => s.name).join("|")}`);
47
+ }
48
+ if (!orderedSpecialists.some((specialist) => specialist.name === raw)) {
49
+ throw new Error(`Unknown specialist "${raw}". Expected one of ${orderedSpecialists.map((s) => s.name).join(", ")}`);
50
+ }
51
+ return raw;
52
+ }
53
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/coral/definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
+ export interface CoralMcpConnection {
3
+ client: Client;
4
+ toolNames: string[];
5
+ waitForMentionToolName: string;
6
+ sendMessageToolName: string;
7
+ }
8
+ export interface IncomingCoralMessage {
9
+ id: string;
10
+ threadId: string;
11
+ text: string;
12
+ senderName: string;
13
+ mentionNames: string[];
14
+ }
15
+ export declare function connectCoralMcp(coralConnectionUrl: string, clientName: string): Promise<CoralMcpConnection>;
16
+ export declare function readCoralState(client: Client): Promise<unknown>;
17
+ export declare function parseWaitForMentionResult(result: unknown): IncomingCoralMessage | null;
@@ -0,0 +1,71 @@
1
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
+ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
3
+ function isRecord(value) {
4
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
5
+ }
6
+ function findToolName(toolNames, pattern) {
7
+ const name = toolNames.find((candidate) => pattern.test(candidate));
8
+ if (!name)
9
+ throw new Error(`Required Coral MCP tool missing: ${pattern}`);
10
+ return name;
11
+ }
12
+ export async function connectCoralMcp(coralConnectionUrl, clientName) {
13
+ const client = new Client({ name: clientName, version: "0.1.0" }, { capabilities: {} });
14
+ const transport = new StreamableHTTPClientTransport(new URL(coralConnectionUrl));
15
+ await client.connect(transport);
16
+ const tools = await client.listTools();
17
+ const toolNames = tools.tools.map((tool) => tool.name);
18
+ return {
19
+ client,
20
+ toolNames,
21
+ waitForMentionToolName: findToolName(toolNames, /coral_wait_for_mention|wait_for_mention/),
22
+ sendMessageToolName: findToolName(toolNames, /coral_send_message|send_message/),
23
+ };
24
+ }
25
+ export async function readCoralState(client) {
26
+ const result = await client.readResource({ uri: "coral://state" });
27
+ const text = result.contents.find((content) => "text" in content && typeof content.text === "string");
28
+ if (!text || !("text" in text))
29
+ return { error: "coral://state returned no text" };
30
+ try {
31
+ return JSON.parse(text.text);
32
+ }
33
+ catch {
34
+ return { raw: text.text };
35
+ }
36
+ }
37
+ export function parseWaitForMentionResult(result) {
38
+ let payload = result;
39
+ if (isRecord(payload) && Array.isArray(payload.content)) {
40
+ const textBlock = payload.content.find((item) => isRecord(item) && typeof item.text === "string");
41
+ if (isRecord(textBlock) && typeof textBlock.text === "string") {
42
+ try {
43
+ payload = JSON.parse(textBlock.text);
44
+ }
45
+ catch {
46
+ payload = textBlock.text;
47
+ }
48
+ }
49
+ }
50
+ if (isRecord(payload) && "structuredContent" in payload) {
51
+ payload = payload.structuredContent;
52
+ }
53
+ const message = isRecord(payload) && isRecord(payload.message) ? payload.message : payload;
54
+ if (!isRecord(message))
55
+ return null;
56
+ if (typeof message.threadId !== "string" || typeof message.text !== "string" || typeof message.senderName !== "string") {
57
+ return null;
58
+ }
59
+ return {
60
+ id: typeof message.id === "string"
61
+ ? message.id
62
+ : `${message.threadId}:${message.senderName}:${message.text.slice(0, 32)}`,
63
+ threadId: message.threadId,
64
+ text: message.text,
65
+ senderName: message.senderName,
66
+ mentionNames: Array.isArray(message.mentionNames)
67
+ ? message.mentionNames.filter((mention) => typeof mention === "string")
68
+ : [],
69
+ };
70
+ }
71
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/coral/mcp.ts"],"names":[],"mappings":"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"}