@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.
- package/dist/headless/catalog.d.ts +3 -0
- package/dist/headless/catalog.d.ts.map +1 -1
- package/dist/headless/catalog.js +26 -0
- package/dist/headless/normalization.d.ts.map +1 -1
- package/dist/headless/normalization.js +22 -7
- package/dist/react/index.d.ts +4 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +53 -17
- package/dist/server/cliRuntime.d.ts.map +1 -1
- package/dist/server/cliRuntime.js +26 -1
- package/dist/server/inMemoryRuntime.d.ts +1 -0
- package/dist/server/inMemoryRuntime.d.ts.map +1 -1
- package/dist/server/inMemoryRuntime.js +11 -1
- package/dist/server/programmaticRuntime.d.ts +1 -0
- package/dist/server/programmaticRuntime.d.ts.map +1 -1
- package/dist/server/programmaticRuntime.js +27 -1
- package/dist/server/service.d.ts.map +1 -1
- package/dist/server/service.js +8 -2
- package/dist/types.d.ts +6 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/styles/react.css +7 -1
|
@@ -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;
|
|
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"}
|
package/dist/headless/catalog.js
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
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,
|
package/dist/react/index.d.ts
CHANGED
|
@@ -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:
|
|
51
|
+
value: AgentAssignmentSource;
|
|
50
52
|
labels?: Partial<McodaAgentSetupLabels>;
|
|
51
|
-
onChange: (value:
|
|
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":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
package/dist/react/index.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
-
}, [
|
|
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
|
|
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
|
-
:
|
|
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
|
-
:
|
|
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
|
-
:
|
|
468
|
-
? "
|
|
469
|
-
: props.
|
|
470
|
-
? "
|
|
471
|
-
:
|
|
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
|
-
:
|
|
477
|
-
? "mcoda-agent-setup__badge"
|
|
478
|
-
:
|
|
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,
|
|
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":"
|
|
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
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"programmaticRuntime.d.ts","sourceRoot":"","sources":["../../src/server/programmaticRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,
|
|
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":"
|
|
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"}
|
package/dist/server/service.js
CHANGED
|
@@ -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;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,eAAe,GACf,qBAAqB,CAAC;
|
|
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.
|
|
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.
|
|
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(
|
|
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;
|