@mcoda/agent-setup 0.1.70 → 0.1.71

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.
@@ -1,11 +1,14 @@
1
1
  import type { McodaAgentCatalogEntry, McodaSelfHostedServer } from "../types.js";
2
2
  export declare function isCloudAgent(agent: McodaAgentCatalogEntry): boolean;
3
3
  export declare function isSelfHostedAgent(agent: McodaAgentCatalogEntry): boolean;
4
+ export declare function isWorkerAgent(agent: McodaAgentCatalogEntry): boolean;
4
5
  export declare function syncedCloudSlug(agent: McodaAgentCatalogEntry): string;
5
6
  export declare function syncedSelfHostedSlug(agent: McodaAgentCatalogEntry): string;
7
+ export declare function syncedWorkerSlug(agent: McodaAgentCatalogEntry): string;
6
8
  export declare function mergeCatalogEntries(local: McodaAgentCatalogEntry, catalog?: McodaAgentCatalogEntry): McodaAgentCatalogEntry;
7
9
  export declare function buildCloudAgentOptions(localAgents: McodaAgentCatalogEntry[], cloudCatalogAgents: McodaAgentCatalogEntry[]): McodaAgentCatalogEntry[];
8
10
  export declare function buildSelfHostedServerOptions(localAgents: McodaAgentCatalogEntry[], remoteAgents: McodaAgentCatalogEntry[]): McodaSelfHostedServer[];
11
+ export declare function buildWorkerAgentOptions(localAgents: McodaAgentCatalogEntry[], workerCatalogAgents: McodaAgentCatalogEntry[]): McodaAgentCatalogEntry[];
9
12
  export declare function filterAgentOptions(agents: McodaAgentCatalogEntry[], query: string): McodaAgentCatalogEntry[];
10
13
  export declare function resolveRunnableSelectionSlug(slug: string, localAgents: McodaAgentCatalogEntry[]): string;
11
14
  export declare function getVirtualAgentWindow<T>(items: T[], input: {
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/headless/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAkBrB,wBAAgB,YAAY,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAMnE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAOxE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAIrE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAI1E;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,sBAAsB,EAC7B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,sBAAsB,CA6BxB;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,sBAAsB,EAAE,EACrC,kBAAkB,EAAE,sBAAsB,EAAE,GAC3C,sBAAsB,EAAE,CAY1B;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,sBAAsB,EAAE,EACrC,YAAY,EAAE,sBAAsB,EAAE,GACrC,qBAAqB,EAAE,CAoCzB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,sBAAsB,EAAE,EAChC,KAAK,EAAE,MAAM,GACZ,sBAAsB,EAAE,CA6B1B;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,sBAAsB,EAAE,GACpC,MAAM,CAkBR;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAiBA"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/headless/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAmBrB,wBAAgB,YAAY,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAMnE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAOxE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAMpE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAIrE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAI1E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAItE;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,sBAAsB,EAC7B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,sBAAsB,CA6BxB;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,sBAAsB,EAAE,EACrC,kBAAkB,EAAE,sBAAsB,EAAE,GAC3C,sBAAsB,EAAE,CAY1B;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,sBAAsB,EAAE,EACrC,YAAY,EAAE,sBAAsB,EAAE,GACrC,qBAAqB,EAAE,CAoCzB;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,sBAAsB,EAAE,EACrC,mBAAmB,EAAE,sBAAsB,EAAE,GAC5C,sBAAsB,EAAE,CAY1B;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,sBAAsB,EAAE,EAChC,KAAK,EAAE,MAAM,GACZ,sBAAsB,EAAE,CA6B1B;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,sBAAsB,EAAE,GACpC,MAAM,CAqBR;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAiBA"}
@@ -1,5 +1,6 @@
1
1
  const CLOUD_PREFIX = "mswarm-cloud-";
2
2
  const SELF_HOSTED_PREFIX = "mswarm-self-hosted-";
3
+ const WORKER_PREFIX = "mswarm-worker-";
3
4
  const normalizeSlugPart = (value) => value
4
5
  .trim()
5
6
  .toLowerCase()
@@ -18,6 +19,11 @@ export function isSelfHostedAgent(agent) {
18
19
  agent.slug.startsWith(SELF_HOSTED_PREFIX) ||
19
20
  Boolean(agent.nodeId || agent.serverName || agent.serverId));
20
21
  }
22
+ export function isWorkerAgent(agent) {
23
+ return (agent.source === "worker_catalog" ||
24
+ agent.managedKind === "worker" ||
25
+ agent.slug.startsWith(WORKER_PREFIX));
26
+ }
21
27
  export function syncedCloudSlug(agent) {
22
28
  if (agent.slug.startsWith(CLOUD_PREFIX))
23
29
  return agent.slug;
@@ -30,6 +36,12 @@ export function syncedSelfHostedSlug(agent) {
30
36
  const remote = agent.remoteSlug ?? agent.slug;
31
37
  return `${SELF_HOSTED_PREFIX}${normalizeSlugPart(remote) || "agent"}`;
32
38
  }
39
+ export function syncedWorkerSlug(agent) {
40
+ if (agent.slug.startsWith(WORKER_PREFIX))
41
+ return agent.slug;
42
+ const remote = (agent.remoteSlug ?? agent.slug).replace(/^worker_/i, "");
43
+ return `${WORKER_PREFIX}${normalizeSlugPart(remote) || "agent"}`;
44
+ }
33
45
  export function mergeCatalogEntries(local, catalog) {
34
46
  if (!catalog)
35
47
  return local;
@@ -105,6 +117,17 @@ export function buildSelfHostedServerOptions(localAgents, remoteAgents) {
105
117
  }))
106
118
  .sort((left, right) => left.label.localeCompare(right.label));
107
119
  }
120
+ export function buildWorkerAgentOptions(localAgents, workerCatalogAgents) {
121
+ const catalogByLocalSlug = new Map(workerCatalogAgents.map((agent) => [syncedWorkerSlug(agent), agent]));
122
+ const synced = localAgents
123
+ .filter(isWorkerAgent)
124
+ .map((agent) => mergeCatalogEntries(agent, catalogByLocalSlug.get(agent.slug)));
125
+ const localSlugs = new Set(synced.map((agent) => agent.slug));
126
+ const unsynced = workerCatalogAgents
127
+ .filter((agent) => !localSlugs.has(syncedWorkerSlug(agent)))
128
+ .map((agent) => ({ ...agent, synced: false }));
129
+ return sortAgents([...synced, ...unsynced]);
130
+ }
108
131
  export function filterAgentOptions(agents, query) {
109
132
  const terms = query
110
133
  .trim()
@@ -150,6 +173,9 @@ export function resolveRunnableSelectionSlug(slug, localAgents) {
150
173
  agent.slug === syncedSelfHostedSlug({ ...agent, slug: trimmed })) {
151
174
  return true;
152
175
  }
176
+ if (isWorkerAgent(agent) && agent.slug === syncedWorkerSlug({ ...agent, slug: trimmed })) {
177
+ return true;
178
+ }
153
179
  return false;
154
180
  });
155
181
  return candidate?.slug ?? trimmed;
@@ -1 +1 @@
1
- {"version":3,"file":"normalization.d.ts","sourceRoot":"","sources":["../../src/headless/normalization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAwBrB,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE;IACR,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC,GACA,sBAAsB,CA2GxB;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE;IACR,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC,GACA,sBAAsB,EAAE,CAO1B"}
1
+ {"version":3,"file":"normalization.d.ts","sourceRoot":"","sources":["../../src/headless/normalization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAwBrB,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE;IACR,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC,GACA,sBAAsB,CA2HxB;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE;IACR,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC,GACA,sBAAsB,EAAE,CAO1B"}
@@ -13,16 +13,27 @@ export function normalizeAgentCatalogEntry(raw, fallback) {
13
13
  const config = recordValue(record.config);
14
14
  const mswarmCloud = recordValue(config?.mswarmCloud);
15
15
  const mswarmSelfHosted = recordValue(config?.mswarmSelfHosted);
16
- const sync = recordValue(record.sync) ?? recordValue(mswarmSelfHosted?.sync);
16
+ const mswarmWorker = recordValue(config?.mswarmWorker);
17
+ const sync = recordValue(record.sync) ??
18
+ recordValue(mswarmSelfHosted?.sync) ??
19
+ recordValue(mswarmWorker?.sync);
17
20
  const managedKind = fallback.managedKind ??
18
- (mswarmCloud ? "cloud" : mswarmSelfHosted ? "self_hosted" : null);
21
+ (mswarmCloud
22
+ ? "cloud"
23
+ : mswarmSelfHosted
24
+ ? "self_hosted"
25
+ : mswarmWorker
26
+ ? "worker"
27
+ : null);
19
28
  const remoteSlug = stringValue(record.remoteSlug) ??
20
29
  stringValue(record.remote_slug) ??
21
30
  stringValue(mswarmCloud?.remoteSlug) ??
22
- stringValue(mswarmSelfHosted?.remoteSlug);
31
+ stringValue(mswarmSelfHosted?.remoteSlug) ??
32
+ stringValue(mswarmWorker?.remoteSlug);
23
33
  const slug = stringValue(record.slug) ??
24
34
  stringValue(record.agent_slug) ??
25
35
  stringValue(mswarmSelfHosted?.agentSlug) ??
36
+ stringValue(mswarmWorker?.workerId) ??
26
37
  remoteSlug ??
27
38
  "agent";
28
39
  const defaultModel = stringValue(record.defaultModel) ??
@@ -30,7 +41,8 @@ export function normalizeAgentCatalogEntry(raw, fallback) {
30
41
  stringValue(record.defaultModelId) ??
31
42
  stringValue(record.model_id) ??
32
43
  stringValue(mswarmCloud?.modelId) ??
33
- stringValue(mswarmSelfHosted?.modelId);
44
+ stringValue(mswarmSelfHosted?.modelId) ??
45
+ stringValue(mswarmWorker?.modelId);
34
46
  const model = stringValue(record.model) ??
35
47
  stringValue(record.modelId) ??
36
48
  stringValue(record.model_id) ??
@@ -65,12 +77,15 @@ export function normalizeAgentCatalogEntry(raw, fallback) {
65
77
  displayName: stringValue(record.displayName) ??
66
78
  stringValue(record.display_name) ??
67
79
  stringValue(mswarmCloud?.displayName) ??
68
- stringValue(mswarmSelfHosted?.displayName),
80
+ stringValue(mswarmSelfHosted?.displayName) ??
81
+ stringValue(mswarmWorker?.displayName),
69
82
  provider: stringValue(record.provider) ??
70
83
  stringValue(mswarmCloud?.provider) ??
71
- stringValue(mswarmSelfHosted?.provider),
84
+ stringValue(mswarmSelfHosted?.provider) ??
85
+ stringValue(mswarmWorker?.provider),
72
86
  adapter: stringValue(record.adapter) ??
73
- stringValue(mswarmSelfHosted?.adapter),
87
+ stringValue(mswarmSelfHosted?.adapter) ??
88
+ (mswarmWorker ? "mswarm-worker" : null),
74
89
  model,
75
90
  defaultModel,
76
91
  healthStatus,
@@ -14,6 +14,7 @@ export interface McodaAgentSetupLabels {
14
14
  saveAssignments: string;
15
15
  cloud: string;
16
16
  selfHosted: string;
17
+ workers: string;
17
18
  }
18
19
  export interface McodaAgentSetupComponentOverrides {
19
20
  AgentCatalogSummary: typeof AgentCatalogSummary;
@@ -23,6 +24,7 @@ export interface McodaAgentSetupComponentOverrides {
23
24
  SelfHostedServerSelect: typeof SelfHostedServerSelect;
24
25
  AgentSearchSelect: typeof AgentSearchSelect;
25
26
  }
27
+ type AgentAssignmentSource = "cloud" | "self_hosted" | "worker";
26
28
  export declare function McodaAgentSetupPage(props: McodaAgentSetupPageProps): React.ReactElement;
27
29
  export declare function AgentCatalogSummary(props: {
28
30
  snapshot: McodaAgentSetupSnapshot;
@@ -46,9 +48,9 @@ export declare function StageAgentAssignments(props: {
46
48
  onSaveAssignments: () => void;
47
49
  }): React.ReactElement;
48
50
  export declare function AgentSourceSelect(props: {
49
- value: "cloud" | "self_hosted";
51
+ value: AgentAssignmentSource;
50
52
  labels?: Partial<McodaAgentSetupLabels>;
51
- onChange: (value: "cloud" | "self_hosted") => void;
53
+ onChange: (value: AgentAssignmentSource) => void;
52
54
  }): React.ReactElement;
53
55
  export declare function SelfHostedServerSelect(props: {
54
56
  servers: McodaSelfHostedServer[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ const DEFAULT_LABELS = {
7
7
  saveAssignments: "Save Assignments",
8
8
  cloud: "Cloud",
9
9
  selfHosted: "Self-hosted",
10
+ workers: "Workers",
10
11
  };
11
12
  export function McodaAgentSetupPage(props) {
12
13
  const labels = { ...DEFAULT_LABELS, ...(props.labels ?? {}) };
@@ -70,7 +71,7 @@ export function McodaAgentSetupPage(props) {
70
71
  const next = await props.client.syncAgents();
71
72
  setSnapshot(next);
72
73
  setAssignments(next.assignments);
73
- setStatusMessage("Cloud and self-hosted agent catalogs synced.");
74
+ setStatusMessage("Cloud, self-hosted, and Worker agent catalogs synced.");
74
75
  }
75
76
  catch (caught) {
76
77
  setError(caught instanceof Error ? caught.message : String(caught));
@@ -96,7 +97,7 @@ export function McodaAgentSetupPage(props) {
96
97
  setBusy(false);
97
98
  }
98
99
  };
99
- return React.createElement("section", { className: joinClasses("mcoda-agent-setup", props.className) }, React.createElement("header", { className: "mcoda-agent-setup__header" }, React.createElement("div", { className: "mcoda-agent-setup__title-block" }, React.createElement("p", { className: "mcoda-agent-setup__eyebrow" }, "Runtime routing"), React.createElement("h1", null, props.title ?? "mcoda Agent Setup"), React.createElement("p", null, "Configure mswarm access and assign cloud or self-hosted mcoda agents to each runtime stage.")), React.createElement("button", {
100
+ return React.createElement("section", { className: joinClasses("mcoda-agent-setup", props.className) }, React.createElement("header", { className: "mcoda-agent-setup__header" }, React.createElement("div", { className: "mcoda-agent-setup__title-block" }, React.createElement("p", { className: "mcoda-agent-setup__eyebrow" }, "Runtime routing"), React.createElement("h1", null, props.title ?? "mcoda Agent Setup"), React.createElement("p", null, "Configure mswarm access and assign cloud, self-hosted, or Worker mcoda targets to each runtime stage.")), React.createElement("button", {
100
101
  type: "button",
101
102
  className: "mcoda-agent-setup__button mcoda-agent-setup__button--secondary",
102
103
  disabled: busy,
@@ -158,6 +159,10 @@ export function AgentCatalogSummary(props) {
158
159
  label: "Self-hosted",
159
160
  value: String(snapshot.catalog.selfHostedAgents.length),
160
161
  detail: `${snapshot.catalog.selfHostedServers.length} servers`,
162
+ }), React.createElement(MetricCard, {
163
+ label: "Workers",
164
+ value: String(snapshot.catalog.workerAgents.length),
165
+ detail: "mswarm Worker catalog",
161
166
  })), warningEntries.length
162
167
  ? React.createElement("ul", { className: "mcoda-agent-setup__warnings", "aria-label": "Catalog warnings" }, warningEntries.map(([key, value]) => React.createElement("li", { key }, `${key}: ${value}`)))
163
168
  : null);
@@ -166,7 +171,7 @@ export function MswarmAccessCard(props) {
166
171
  const labels = { ...DEFAULT_LABELS, ...(props.labels ?? {}) };
167
172
  return React.createElement("section", { className: "mcoda-agent-setup__access" }, React.createElement("div", { className: "mcoda-agent-setup__card-heading" }, React.createElement("div", null, React.createElement("h2", null, "mswarm Access"), React.createElement("p", null, props.snapshot?.mswarmApiKeyConfigured
168
173
  ? "Replace the stored key or resync the catalog."
169
- : "Add a key to load real cloud and self-hosted agents."))), React.createElement("label", { className: "mcoda-agent-setup__field" }, React.createElement("span", null, "API key"), React.createElement("input", {
174
+ : "Add a key to load real cloud, self-hosted, and Worker agents."))), React.createElement("label", { className: "mcoda-agent-setup__field" }, React.createElement("span", null, "API key"), React.createElement("input", {
170
175
  type: "password",
171
176
  value: props.apiKey,
172
177
  autoComplete: "off",
@@ -200,6 +205,10 @@ export function StageAgentAssignments(props) {
200
205
  const assignment = props.assignments[stage.stageKey];
201
206
  if (!assignment)
202
207
  continue;
208
+ if (props.snapshot.catalog.workerAgents.some((agent) => agent.slug === assignment)) {
209
+ nextSources[stage.stageKey] = "worker";
210
+ continue;
211
+ }
203
212
  const selfHostedServer = props.snapshot.catalog.selfHostedServers.find((server) => server.agents.some((agent) => agent.slug === assignment));
204
213
  if (selfHostedServer) {
205
214
  nextSources[stage.stageKey] = "self_hosted";
@@ -212,7 +221,13 @@ export function StageAgentAssignments(props) {
212
221
  }
213
222
  setSources((current) => ({ ...current, ...nextSources }));
214
223
  setServers((current) => ({ ...current, ...nextServers }));
215
- }, [props.assignments, props.snapshot.catalog.cloudAgents, props.snapshot.catalog.selfHostedServers, props.stages]);
224
+ }, [
225
+ props.assignments,
226
+ props.snapshot.catalog.cloudAgents,
227
+ props.snapshot.catalog.selfHostedServers,
228
+ props.snapshot.catalog.workerAgents,
229
+ props.stages,
230
+ ]);
216
231
  return React.createElement("section", { className: "mcoda-agent-setup__assignments" }, React.createElement("div", { className: "mcoda-agent-setup__card-heading" }, React.createElement("div", null, React.createElement("h2", null, "Stage Assignments"), React.createElement("p", null, "Select the agent that should run each app workflow stage.")), React.createElement("button", {
217
232
  type: "button",
218
233
  className: "mcoda-agent-setup__button mcoda-agent-setup__button--success",
@@ -221,15 +236,18 @@ export function StageAgentAssignments(props) {
221
236
  }, labels.saveAssignments)), React.createElement("div", { className: "mcoda-agent-setup__stage-table-wrap" }, React.createElement("table", { className: "mcoda-agent-setup__stage-table" }, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", null, "Stage"), React.createElement("th", null, "Source"), React.createElement("th", null, "Self-hosted server"), React.createElement("th", null, "Agent"), React.createElement("th", null, "Status"))), React.createElement("tbody", null, props.stages.map((stage) => {
222
237
  const selectedSlug = props.assignments[stage.stageKey] ?? "";
223
238
  const source = sources[stage.stageKey] ??
224
- (stage.preferredSource === "self_hosted" ? "self_hosted" : "cloud");
239
+ defaultAssignmentSource(stage.preferredSource);
225
240
  const serverId = servers[stage.stageKey];
226
241
  const server = props.snapshot.catalog.selfHostedServers.find((candidate) => candidate.id === serverId) ?? props.snapshot.catalog.selfHostedServers[0];
227
242
  const agents = source === "cloud"
228
243
  ? props.snapshot.catalog.cloudAgents
229
- : server?.agents ?? [];
244
+ : source === "worker"
245
+ ? props.snapshot.catalog.workerAgents
246
+ : server?.agents ?? [];
230
247
  const allSelectableAgents = [
231
248
  ...props.snapshot.catalog.cloudAgents,
232
249
  ...props.snapshot.catalog.selfHostedServers.flatMap((candidate) => candidate.agents),
250
+ ...props.snapshot.catalog.workerAgents,
233
251
  ];
234
252
  const selectedAgent = allSelectableAgents.find((agent) => agent.slug === selectedSlug);
235
253
  const agentSelectValue = agents.some((agent) => agent.slug === selectedSlug)
@@ -239,7 +257,9 @@ export function StageAgentAssignments(props) {
239
257
  setSources((current) => ({ ...current, [stage.stageKey]: value }));
240
258
  const nextSlug = value === "cloud"
241
259
  ? props.snapshot.catalog.cloudAgents[0]?.slug
242
- : firstSelfHostedAgentSlug(props.snapshot.catalog.selfHostedServers);
260
+ : value === "worker"
261
+ ? props.snapshot.catalog.workerAgents[0]?.slug
262
+ : firstSelfHostedAgentSlug(props.snapshot.catalog.selfHostedServers);
243
263
  props.onAssignmentChange(stage.stageKey, nextSlug ?? null);
244
264
  };
245
265
  const onServerChange = (value) => {
@@ -259,7 +279,7 @@ export function StageAgentAssignments(props) {
259
279
  value: server?.id ?? "",
260
280
  onChange: onServerChange,
261
281
  })
262
- : React.createElement("span", { className: "mcoda-agent-setup__muted-pill" }, "Cloud catalog")), React.createElement("td", null, React.createElement(agentSelect, {
282
+ : React.createElement("span", { className: "mcoda-agent-setup__muted-pill" }, source === "worker" ? "Worker catalog" : "Cloud catalog")), React.createElement("td", null, React.createElement(agentSelect, {
263
283
  agents,
264
284
  value: agentSelectValue,
265
285
  onChange: (slug) => props.onAssignmentChange(stage.stageKey, slug || null),
@@ -279,7 +299,11 @@ export function AgentSourceSelect(props) {
279
299
  type: "button",
280
300
  "aria-pressed": props.value === "self_hosted",
281
301
  onClick: () => props.onChange("self_hosted"),
282
- }, labels.selfHosted));
302
+ }, labels.selfHosted), React.createElement("button", {
303
+ type: "button",
304
+ "aria-pressed": props.value === "worker",
305
+ onClick: () => props.onChange("worker"),
306
+ }, labels.workers));
283
307
  }
284
308
  export function SelfHostedServerSelect(props) {
285
309
  const [query, setQuery] = React.useState("");
@@ -464,20 +488,31 @@ function AgentStatusBadge(props) {
464
488
  ? "Cloud"
465
489
  : kind === "self_hosted"
466
490
  ? "Self-hosted"
467
- : props.agent
468
- ? "Local"
469
- : props.slug
470
- ? "Missing"
471
- : "Unset";
491
+ : kind === "worker"
492
+ ? "Worker"
493
+ : props.agent
494
+ ? "Local"
495
+ : props.slug
496
+ ? "Missing"
497
+ : "Unset";
472
498
  const className = kind === "cloud"
473
499
  ? "mcoda-agent-setup__badge mcoda-agent-setup__badge--info"
474
500
  : kind === "self_hosted"
475
501
  ? "mcoda-agent-setup__badge mcoda-agent-setup__badge--success"
476
- : props.agent
477
- ? "mcoda-agent-setup__badge"
478
- : "mcoda-agent-setup__badge mcoda-agent-setup__badge--warning";
502
+ : kind === "worker"
503
+ ? "mcoda-agent-setup__badge mcoda-agent-setup__badge--worker"
504
+ : props.agent
505
+ ? "mcoda-agent-setup__badge"
506
+ : "mcoda-agent-setup__badge mcoda-agent-setup__badge--warning";
479
507
  return React.createElement("span", { className }, sourceLabel);
480
508
  }
509
+ function defaultAssignmentSource(preferredSource) {
510
+ if (preferredSource === "self_hosted")
511
+ return "self_hosted";
512
+ if (preferredSource === "worker")
513
+ return "worker";
514
+ return "cloud";
515
+ }
481
516
  function firstSelfHostedAgentSlug(servers) {
482
517
  return servers.find((server) => server.agents.length > 0)?.agents[0]?.slug ?? null;
483
518
  }
@@ -497,6 +532,7 @@ function prettySlug(slug) {
497
532
  return slug
498
533
  .replace(/^mswarm-cloud-/, "")
499
534
  .replace(/^mswarm-self-hosted-/, "")
535
+ .replace(/^mswarm-worker-/, "")
500
536
  .replace(/^mcoda-/, "")
501
537
  .replace(/[-_]+/g, " ");
502
538
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cliRuntime.d.ts","sourceRoot":"","sources":["../../src/server/cliRuntime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAC1C,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,GAAE,2BAAgC,GACtC,mBAAmB,CA4GrB"}
1
+ {"version":3,"file":"cliRuntime.d.ts","sourceRoot":"","sources":["../../src/server/cliRuntime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAC1C,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,GAAE,2BAAgC,GACtC,mBAAmB,CAwIrB"}
@@ -1,6 +1,6 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { normalizeAgentCatalogEntries } from "../headless/normalization.js";
3
- import { isCloudAgent, isSelfHostedAgent } from "../headless/catalog.js";
3
+ import { isCloudAgent, isSelfHostedAgent, isWorkerAgent } from "../headless/catalog.js";
4
4
  export function createCliMcodaRuntimeAdapter(input = {}) {
5
5
  const command = input.command ?? "mcoda";
6
6
  const run = input.runCommand ??
@@ -82,6 +82,31 @@ export function createCliMcodaRuntimeAdapter(input = {}) {
82
82
  });
83
83
  return (await listLocal(options)).filter(isSelfHostedAgent);
84
84
  },
85
+ async listWorkerAgents(options) {
86
+ return runAgents([
87
+ "workers",
88
+ "list",
89
+ "--json",
90
+ ...(options?.includeUnreachable ? ["--include-disabled"] : []),
91
+ ], {
92
+ source: "worker_catalog",
93
+ synced: false,
94
+ managedKind: "worker",
95
+ });
96
+ },
97
+ async syncWorkerAgents(options) {
98
+ await run(command, [
99
+ "workers",
100
+ "sync",
101
+ "--prune",
102
+ "--json",
103
+ ...(options?.includeUnreachable ? ["--include-disabled"] : []),
104
+ ], {
105
+ cwd: input.cwd,
106
+ timeoutMs: input.timeoutMs,
107
+ });
108
+ return (await listLocal(options)).filter(isWorkerAgent);
109
+ },
85
110
  listLocalAgents: listLocal,
86
111
  };
87
112
  }
@@ -2,6 +2,7 @@ import type { McodaAgentCatalogEntry, McodaRuntimeAdapter } from "../types.js";
2
2
  export interface InMemoryMcodaRuntimeAdapterInput {
3
3
  cloudAgents?: McodaAgentCatalogEntry[];
4
4
  selfHostedAgents?: McodaAgentCatalogEntry[];
5
+ workerAgents?: McodaAgentCatalogEntry[];
5
6
  localAgents?: McodaAgentCatalogEntry[];
6
7
  }
7
8
  export declare function createInMemoryMcodaRuntimeAdapter(input?: InMemoryMcodaRuntimeAdapterInput): McodaRuntimeAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"inMemoryRuntime.d.ts","sourceRoot":"","sources":["../../src/server/inMemoryRuntime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,sBAAsB,EAItB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,gCAAgC;IAC/C,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACxC;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,GAAE,gCAAqC,GAC3C,mBAAmB,CAqGrB"}
1
+ {"version":3,"file":"inMemoryRuntime.d.ts","sourceRoot":"","sources":["../../src/server/inMemoryRuntime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,sBAAsB,EAItB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,gCAAgC;IAC/C,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC5C,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACxC,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACxC;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,GAAE,gCAAqC,GAC3C,mBAAmB,CA+GrB"}
@@ -1,7 +1,8 @@
1
- import { syncedCloudSlug, syncedSelfHostedSlug, } from "../headless/catalog.js";
1
+ import { syncedCloudSlug, syncedSelfHostedSlug, syncedWorkerSlug, } from "../headless/catalog.js";
2
2
  export function createInMemoryMcodaRuntimeAdapter(input = {}) {
3
3
  let cloudAgents = input.cloudAgents?.map((agent) => ({ ...agent })) ?? [];
4
4
  let selfHostedAgents = input.selfHostedAgents?.map((agent) => ({ ...agent })) ?? [];
5
+ let workerAgents = input.workerAgents?.map((agent) => ({ ...agent })) ?? [];
5
6
  let localAgents = input.localAgents?.map((agent) => ({ ...agent })) ?? [];
6
7
  let configuredApiKey = false;
7
8
  const syncRemote = (remoteAgents, slugFor, managedKind) => {
@@ -65,6 +66,15 @@ export function createInMemoryMcodaRuntimeAdapter(input = {}) {
65
66
  }
66
67
  return syncRemote(filterProvider(selfHostedAgents, options), syncedSelfHostedSlug, "self_hosted");
67
68
  },
69
+ async listWorkerAgents(options) {
70
+ return filterProvider(workerAgents, options).map((agent) => ({ ...agent }));
71
+ },
72
+ async syncWorkerAgents(options) {
73
+ if (!configuredApiKey) {
74
+ throw new Error("mswarm api key is required");
75
+ }
76
+ return syncRemote(filterProvider(workerAgents, options), syncedWorkerSlug, "worker");
77
+ },
68
78
  async listLocalAgents(options) {
69
79
  return filterProvider(localAgents, options).map((agent) => ({ ...agent }));
70
80
  },
@@ -8,6 +8,7 @@ export interface ProgrammaticMcodaRuntimeAdapterInput {
8
8
  timeoutMs?: number;
9
9
  agentSlugPrefix?: string;
10
10
  selfHostedAgentSlugPrefix?: string;
11
+ workerAgentSlugPrefix?: string;
11
12
  };
12
13
  store?: MswarmConfigStore;
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"programmaticRuntime.d.ts","sourceRoot":"","sources":["../../src/server/programmaticRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAIlB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAIV,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,oCAAoC;IACnD,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;KACpC,CAAC;IACF,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,qCAAqC,CACnD,KAAK,GAAE,oCAAyC,GAC/C,mBAAmB,CAqHrB"}
1
+ {"version":3,"file":"programmaticRuntime.d.ts","sourceRoot":"","sources":["../../src/server/programmaticRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAKlB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAIV,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,oCAAoC;IACnD,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,qCAAqC,CACnD,KAAK,GAAE,oCAAyC,GAC/C,mBAAmB,CAsIrB"}
@@ -1,6 +1,6 @@
1
1
  import { AgentsApi, MswarmApi, MswarmConfigStore, } from "@mcoda/core";
2
2
  import { normalizeAgentCatalogEntry } from "../headless/normalization.js";
3
- import { isCloudAgent, isSelfHostedAgent } from "../headless/catalog.js";
3
+ import { isCloudAgent, isSelfHostedAgent, isWorkerAgent } from "../headless/catalog.js";
4
4
  export function createProgrammaticMcodaRuntimeAdapter(input = {}) {
5
5
  const createMswarmApi = async () => {
6
6
  if (!input.store)
@@ -13,6 +13,7 @@ export function createProgrammaticMcodaRuntimeAdapter(input = {}) {
13
13
  timeoutMs: input.mswarm?.timeoutMs ?? stored.timeoutMs,
14
14
  agentSlugPrefix: input.mswarm?.agentSlugPrefix ?? stored.agentSlugPrefix,
15
15
  selfHostedAgentSlugPrefix: input.mswarm?.selfHostedAgentSlugPrefix,
16
+ workerAgentSlugPrefix: input.mswarm?.workerAgentSlugPrefix,
16
17
  });
17
18
  };
18
19
  const withMswarmApi = async (fn) => {
@@ -77,6 +78,20 @@ export function createProgrammaticMcodaRuntimeAdapter(input = {}) {
77
78
  await withMswarmApi((api) => api.syncSelfHostedAgents(toSelfHostedSyncOptions(options)));
78
79
  return (await listLocal(options)).filter(isSelfHostedAgent);
79
80
  },
81
+ async listWorkerAgents(options) {
82
+ return withMswarmApi(async (api) => {
83
+ const agents = await api.listAllWorkers(toWorkerOptions(options));
84
+ return agents.map((agent) => normalizeAgentCatalogEntry(agent, {
85
+ source: "worker_catalog",
86
+ synced: false,
87
+ managedKind: "worker",
88
+ }));
89
+ });
90
+ },
91
+ async syncWorkerAgents(options) {
92
+ await withMswarmApi((api) => api.syncWorkers(toWorkerSyncOptions(options)));
93
+ return (await listLocal(options)).filter(isWorkerAgent);
94
+ },
80
95
  listLocalAgents: listLocal,
81
96
  async testAgent(input) {
82
97
  try {
@@ -134,3 +149,14 @@ function toSelfHostedSyncOptions(options) {
134
149
  pruneMissing: options?.pruneMissing ?? true,
135
150
  };
136
151
  }
152
+ function toWorkerOptions(options) {
153
+ return {
154
+ includeDisabled: options?.includeUnreachable ?? true,
155
+ };
156
+ }
157
+ function toWorkerSyncOptions(options) {
158
+ return {
159
+ includeDisabled: options?.includeUnreachable ?? true,
160
+ pruneMissing: options?.pruneMissing ?? true,
161
+ };
162
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/server/service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,4BAA4B,EAC5B,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAIrB,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,4BAA4B,GACpC,sBAAsB,CAoLxB"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/server/service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAGV,4BAA4B,EAC5B,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAIrB,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,4BAA4B,GACpC,sBAAsB,CA0MxB"}
@@ -1,5 +1,5 @@
1
1
  import { defaultMcodaStageDefinitions } from "../defaultStages.js";
2
- import { buildCloudAgentOptions, buildSelfHostedServerOptions, } from "../headless/catalog.js";
2
+ import { buildCloudAgentOptions, buildSelfHostedServerOptions, buildWorkerAgentOptions, } from "../headless/catalog.js";
3
3
  import { createProgrammaticMcodaRuntimeAdapter } from "./programmaticRuntime.js";
4
4
  const REMOTE_ATTEMPTS = 3;
5
5
  export function createMcodaAgentSetupService(options) {
@@ -35,10 +35,11 @@ export function createMcodaAgentSetupService(options) {
35
35
  const buildSnapshot = async (extraErrors = {}) => {
36
36
  const settings = await options.settingsStore.load();
37
37
  const errors = { ...extraErrors };
38
- const [localAgents, cloudCatalogAgents, selfHostedCatalogAgents] = await Promise.all([
38
+ const [localAgents, cloudCatalogAgents, selfHostedCatalogAgents, workerCatalogAgents,] = await Promise.all([
39
39
  capture(errors, "local_agents", () => runtime.listLocalAgents({ refreshHealth: true }), []),
40
40
  captureRemote(errors, "cloud_agents", () => runtime.listCloudAgents(), []),
41
41
  captureRemote(errors, "self_hosted_agents", () => runtime.listSelfHostedAgents({ includeUnreachable: true }), []),
42
+ captureRemote(errors, "worker_agents", () => runtime.listWorkerAgents(), []),
42
43
  ]);
43
44
  const cloudAgents = errors.cloud_agents === undefined
44
45
  ? buildCloudAgentOptions(localAgents, cloudCatalogAgents)
@@ -46,10 +47,14 @@ export function createMcodaAgentSetupService(options) {
46
47
  const selfHostedServers = errors.self_hosted_agents === undefined
47
48
  ? buildSelfHostedServerOptions(localAgents, selfHostedCatalogAgents)
48
49
  : [];
50
+ const workerAgents = errors.worker_agents === undefined
51
+ ? buildWorkerAgentOptions(localAgents, workerCatalogAgents)
52
+ : [];
49
53
  const catalog = {
50
54
  localAgents,
51
55
  cloudAgents,
52
56
  selfHostedAgents: selfHostedCatalogAgents,
57
+ workerAgents,
53
58
  selfHostedServers,
54
59
  errors,
55
60
  generatedAt: new Date().toISOString(),
@@ -132,6 +137,7 @@ export function createMcodaAgentSetupService(options) {
132
137
  pruneMissing: true,
133
138
  includeUnreachable: true,
134
139
  }), []);
140
+ await captureRemote(errors, "worker_agent_sync", () => runtime.syncWorkerAgents({ pruneMissing: true }), []);
135
141
  return errors;
136
142
  }
137
143
  }
package/dist/types.d.ts CHANGED
@@ -3,9 +3,9 @@ export interface McodaRuntimeInfo {
3
3
  mode: McodaRuntimeMode;
4
4
  requiresMcodaCli: boolean;
5
5
  }
6
- export type McodaAgentSource = "local_registry" | "cloud_catalog" | "self_hosted_catalog";
7
- export type McodaAgentManagedKind = "cloud" | "self_hosted" | null;
8
- export type McodaPreferredSource = "cloud" | "self_hosted" | "cloud_or_self_hosted" | null;
6
+ export type McodaAgentSource = "local_registry" | "cloud_catalog" | "self_hosted_catalog" | "worker_catalog";
7
+ export type McodaAgentManagedKind = "cloud" | "self_hosted" | "worker" | null;
8
+ export type McodaPreferredSource = "cloud" | "self_hosted" | "worker" | "cloud_or_self_hosted" | null;
9
9
  export interface McodaStageDefinition {
10
10
  stageKey: string;
11
11
  displayName: string;
@@ -57,6 +57,7 @@ export interface McodaAgentCatalog {
57
57
  localAgents: McodaAgentCatalogEntry[];
58
58
  cloudAgents: McodaAgentCatalogEntry[];
59
59
  selfHostedAgents: McodaAgentCatalogEntry[];
60
+ workerAgents: McodaAgentCatalogEntry[];
60
61
  selfHostedServers: McodaSelfHostedServer[];
61
62
  errors: Record<string, string>;
62
63
  generatedAt: string;
@@ -124,6 +125,8 @@ export interface McodaRuntimeAdapter {
124
125
  syncCloudAgents(input?: McodaAgentSyncInput): Promise<McodaAgentCatalogEntry[]>;
125
126
  listSelfHostedAgents(input?: McodaAgentListInput): Promise<McodaAgentCatalogEntry[]>;
126
127
  syncSelfHostedAgents(input?: McodaAgentSyncInput): Promise<McodaAgentCatalogEntry[]>;
128
+ listWorkerAgents(input?: McodaAgentListInput): Promise<McodaAgentCatalogEntry[]>;
129
+ syncWorkerAgents(input?: McodaAgentSyncInput): Promise<McodaAgentCatalogEntry[]>;
127
130
  listLocalAgents(input?: McodaAgentListInput): Promise<McodaAgentCatalogEntry[]>;
128
131
  testAgent?(input: {
129
132
  slug: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcoda/agent-setup",
3
- "version": "0.1.70",
3
+ "version": "0.1.71",
4
4
  "description": "Turnkey mcoda/mswarm agent setup SDK for applications.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -62,7 +62,7 @@
62
62
  "access": "public"
63
63
  },
64
64
  "dependencies": {
65
- "@mcoda/core": "0.1.70"
65
+ "@mcoda/core": "0.1.71"
66
66
  },
67
67
  "peerDependencies": {
68
68
  "react": ">=18.2.0 || >=19.0.0",
package/styles/react.css CHANGED
@@ -178,7 +178,7 @@
178
178
  .mcoda-agent-setup__metric-grid {
179
179
  display: grid;
180
180
  gap: 12px;
181
- grid-template-columns: repeat(5, minmax(120px, 1fr));
181
+ grid-template-columns: repeat(6, minmax(120px, 1fr));
182
182
  }
183
183
 
184
184
  .mcoda-agent-setup__metric {
@@ -255,6 +255,12 @@
255
255
  color: #1d4ed8;
256
256
  }
257
257
 
258
+ .mcoda-agent-setup__badge--worker {
259
+ background: #eef2ff;
260
+ border-color: #c7d2fe;
261
+ color: #3730a3;
262
+ }
263
+
258
264
  .mcoda-agent-setup__warnings {
259
265
  background: var(--mcoda-amber-soft);
260
266
  border: 1px solid #fde68a;