@mcoda/agent-setup 0.1.75 → 0.1.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +21 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/jobClient.d.ts +76 -0
- package/dist/jobClient.d.ts.map +1 -0
- package/dist/jobClient.js +92 -0
- package/dist/react/index.d.ts +20 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +223 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/styles/react.css +168 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.78
|
|
4
|
+
|
|
5
|
+
- Add the trusted backend `createMcodaGpuJobClient()` helper for owner-local
|
|
6
|
+
mswarm generic GPU/package jobs.
|
|
7
|
+
- Add the React `GpuJobOpsPanel` export and `McodaAgentSetupPage` GPU job ops
|
|
8
|
+
callbacks for queue, usage, quota, logs/events/artifacts, cancellation, and
|
|
9
|
+
retry drilldowns.
|
|
10
|
+
|
|
3
11
|
## 0.1.74
|
|
4
12
|
|
|
5
13
|
- Expose non-secret local-runner metadata in catalog entries.
|
package/README.md
CHANGED
|
@@ -9,6 +9,7 @@ The package provides:
|
|
|
9
9
|
- framework-agnostic server service helpers
|
|
10
10
|
- a default programmatic mcoda runtime adapter
|
|
11
11
|
- an optional React setup page
|
|
12
|
+
- a trusted backend GPU/generic job client for owner-local mswarm nodes
|
|
12
13
|
|
|
13
14
|
The default server runtime uses mcoda package APIs directly and does not require
|
|
14
15
|
a preinstalled or configured `mcoda` CLI/client tool. When an admin submits a
|
|
@@ -27,3 +28,23 @@ React consumers can use the packaged default stylesheet:
|
|
|
27
28
|
import { McodaAgentSetupPage } from "@mcoda/agent-setup/react";
|
|
28
29
|
import "@mcoda/agent-setup/react/styles.css";
|
|
29
30
|
```
|
|
31
|
+
|
|
32
|
+
Host applications can pass `gpuJobOps` and GPU job callbacks into
|
|
33
|
+
`McodaAgentSetupPage` to show an owner-local queue/usage/audit panel beside the
|
|
34
|
+
agent setup flow. Keep those callbacks backed by trusted backend routes; do not
|
|
35
|
+
send self-hosted node signing secrets to browser code.
|
|
36
|
+
|
|
37
|
+
Trusted backend code can use the GPU job client directly:
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import { createMcodaGpuJobClient } from "@mcoda/agent-setup";
|
|
41
|
+
|
|
42
|
+
const gpuJobs = await createMcodaGpuJobClient({
|
|
43
|
+
nodeBaseUrl: process.env.MCODA_MSWARM_NODE_BASE_URL,
|
|
44
|
+
nodeId: process.env.MCODA_MSWARM_NODE_ID,
|
|
45
|
+
signingSecret: process.env.MCODA_MSWARM_NODE_SIGNING_SECRET,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
const capabilities = await gpuJobs.listGpus();
|
|
49
|
+
const ops = await gpuJobs.ops({ auditLimit: 25 });
|
|
50
|
+
```
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type MswarmCapabilityRequestOptions, type MswarmGenericJobArtifactUploadInput, type MswarmGenericJobArtifactUploadResult, type MswarmGenericJobArtifactsResult, type MswarmGenericJobEventsResult, type MswarmGenericJobLifecycleSnapshot, type MswarmGenericJobLogsResult, type MswarmGenericJobOpsRequestOptions, type MswarmGenericJobOpsSummary, type MswarmGenericJobReference, type MswarmGenericNodeJobEnvelope } from "@mcoda/core";
|
|
2
|
+
type MswarmGenericJobRequestInput = MswarmGenericNodeJobEnvelope["job"];
|
|
3
|
+
type McodaGpuJobCreateInput = MswarmGenericNodeJobEnvelope | MswarmGenericJobRequestInput;
|
|
4
|
+
type McodaGpuJobEvent = MswarmGenericJobEventsResult["events"][number];
|
|
5
|
+
export interface McodaGpuJobEventStreamOptions extends Partial<MswarmGenericJobReference> {
|
|
6
|
+
intervalMs?: number;
|
|
7
|
+
stopOnTerminal?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface McodaGpuJobsNamespace {
|
|
10
|
+
create(job: McodaGpuJobCreateInput, input?: Partial<MswarmGenericJobReference>): Promise<MswarmGenericJobLifecycleSnapshot>;
|
|
11
|
+
run(job: McodaGpuJobCreateInput, input?: Partial<MswarmGenericJobReference>): Promise<MswarmGenericJobLifecycleSnapshot>;
|
|
12
|
+
status(input: Partial<MswarmGenericJobReference> & {
|
|
13
|
+
jobId: string;
|
|
14
|
+
}): Promise<MswarmGenericJobLifecycleSnapshot>;
|
|
15
|
+
logs(input: Partial<MswarmGenericJobReference> & {
|
|
16
|
+
jobId: string;
|
|
17
|
+
}): Promise<MswarmGenericJobLogsResult>;
|
|
18
|
+
events(jobIdOrInput: string | (Partial<MswarmGenericJobReference> & {
|
|
19
|
+
jobId: string;
|
|
20
|
+
}), input?: McodaGpuJobEventStreamOptions): AsyncIterable<McodaGpuJobEvent>;
|
|
21
|
+
eventsSnapshot(input: Partial<MswarmGenericJobReference> & {
|
|
22
|
+
jobId: string;
|
|
23
|
+
}): Promise<MswarmGenericJobEventsResult>;
|
|
24
|
+
artifacts(input: Partial<MswarmGenericJobReference> & {
|
|
25
|
+
jobId: string;
|
|
26
|
+
}): Promise<MswarmGenericJobArtifactsResult>;
|
|
27
|
+
cancel(input: Partial<MswarmGenericJobReference> & {
|
|
28
|
+
jobId: string;
|
|
29
|
+
}): Promise<MswarmGenericJobLifecycleSnapshot>;
|
|
30
|
+
retry(input: Partial<MswarmGenericJobReference> & {
|
|
31
|
+
jobId: string;
|
|
32
|
+
}): Promise<MswarmGenericJobLifecycleSnapshot>;
|
|
33
|
+
ops(input?: Partial<MswarmGenericJobOpsRequestOptions>): Promise<MswarmGenericJobOpsSummary>;
|
|
34
|
+
}
|
|
35
|
+
export interface CreateMcodaGpuJobClientInput {
|
|
36
|
+
baseUrl?: string;
|
|
37
|
+
apiKey?: string;
|
|
38
|
+
timeoutMs?: number;
|
|
39
|
+
nodeBaseUrl?: string;
|
|
40
|
+
nodeId?: string;
|
|
41
|
+
signingSecret?: string;
|
|
42
|
+
token?: string;
|
|
43
|
+
tokenTtlSeconds?: number;
|
|
44
|
+
}
|
|
45
|
+
export interface McodaGpuJobClient {
|
|
46
|
+
close(): Promise<void>;
|
|
47
|
+
jobs: McodaGpuJobsNamespace;
|
|
48
|
+
listGpus(input?: Partial<MswarmCapabilityRequestOptions>): Promise<Record<string, unknown>>;
|
|
49
|
+
uploadArtifact(input: Omit<MswarmGenericJobArtifactUploadInput, keyof MswarmGenericJobReference> & Partial<MswarmGenericJobReference> & {
|
|
50
|
+
jobId: string;
|
|
51
|
+
}): Promise<MswarmGenericJobArtifactUploadResult>;
|
|
52
|
+
runJob(job: McodaGpuJobCreateInput, input?: Partial<MswarmGenericJobReference>): Promise<MswarmGenericJobLifecycleSnapshot>;
|
|
53
|
+
create(job: McodaGpuJobCreateInput, input?: Partial<MswarmGenericJobReference>): Promise<MswarmGenericJobLifecycleSnapshot>;
|
|
54
|
+
status(input: Partial<MswarmGenericJobReference> & {
|
|
55
|
+
jobId: string;
|
|
56
|
+
}): Promise<MswarmGenericJobLifecycleSnapshot>;
|
|
57
|
+
logs(input: Partial<MswarmGenericJobReference> & {
|
|
58
|
+
jobId: string;
|
|
59
|
+
}): Promise<MswarmGenericJobLogsResult>;
|
|
60
|
+
events(input: Partial<MswarmGenericJobReference> & {
|
|
61
|
+
jobId: string;
|
|
62
|
+
}): Promise<MswarmGenericJobEventsResult>;
|
|
63
|
+
artifacts(input: Partial<MswarmGenericJobReference> & {
|
|
64
|
+
jobId: string;
|
|
65
|
+
}): Promise<MswarmGenericJobArtifactsResult>;
|
|
66
|
+
cancel(input: Partial<MswarmGenericJobReference> & {
|
|
67
|
+
jobId: string;
|
|
68
|
+
}): Promise<MswarmGenericJobLifecycleSnapshot>;
|
|
69
|
+
retry(input: Partial<MswarmGenericJobReference> & {
|
|
70
|
+
jobId: string;
|
|
71
|
+
}): Promise<MswarmGenericJobLifecycleSnapshot>;
|
|
72
|
+
ops(input?: Partial<MswarmGenericJobOpsRequestOptions>): Promise<MswarmGenericJobOpsSummary>;
|
|
73
|
+
}
|
|
74
|
+
export declare function createMcodaGpuJobClient(input?: CreateMcodaGpuJobClientInput): Promise<McodaGpuJobClient>;
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=jobClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobClient.d.ts","sourceRoot":"","sources":["../src/jobClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { MswarmApi } from "@mcoda/core";
|
|
3
|
+
export async function createMcodaGpuJobClient(input = {}) {
|
|
4
|
+
const api = await MswarmApi.create({
|
|
5
|
+
baseUrl: input.baseUrl,
|
|
6
|
+
apiKey: input.apiKey,
|
|
7
|
+
timeoutMs: input.timeoutMs
|
|
8
|
+
});
|
|
9
|
+
const defaults = {
|
|
10
|
+
nodeBaseUrl: input.nodeBaseUrl,
|
|
11
|
+
nodeId: input.nodeId,
|
|
12
|
+
signingSecret: input.signingSecret,
|
|
13
|
+
token: input.token,
|
|
14
|
+
tokenTtlSeconds: input.tokenTtlSeconds
|
|
15
|
+
};
|
|
16
|
+
const withDefaults = (request) => ({
|
|
17
|
+
...defaults,
|
|
18
|
+
...request
|
|
19
|
+
});
|
|
20
|
+
const requireText = (value, label) => {
|
|
21
|
+
if (!value || value.trim() === "") {
|
|
22
|
+
throw new Error(`${label} is required`);
|
|
23
|
+
}
|
|
24
|
+
return value.trim();
|
|
25
|
+
};
|
|
26
|
+
const normalizeJobEnvelope = (job, request = {}) => {
|
|
27
|
+
if ("job" in job && typeof job.job_id === "string" && typeof job.request_id === "string" && typeof job.node_id === "string") {
|
|
28
|
+
return job;
|
|
29
|
+
}
|
|
30
|
+
const merged = withDefaults(request);
|
|
31
|
+
return {
|
|
32
|
+
job_id: request.jobId || `job-${randomUUID()}`,
|
|
33
|
+
request_id: request.requestId || `req-${randomUUID()}`,
|
|
34
|
+
node_id: requireText(merged.nodeId, "nodeId"),
|
|
35
|
+
job: job
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
const create = (job, request = {}) => api.runGenericJob(normalizeJobEnvelope(job, request), withDefaults(request));
|
|
39
|
+
const terminalStates = new Set(["succeeded", "failed", "cancelled", "expired", "blocked"]);
|
|
40
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
41
|
+
async function* streamEvents(jobIdOrInput, request = {}) {
|
|
42
|
+
const { intervalMs = 1000, stopOnTerminal = true, ...requestRest } = request;
|
|
43
|
+
const reference = typeof jobIdOrInput === "string"
|
|
44
|
+
? withDefaults({ ...requestRest, jobId: jobIdOrInput })
|
|
45
|
+
: withDefaults({ ...jobIdOrInput, ...requestRest });
|
|
46
|
+
const seen = new Set();
|
|
47
|
+
while (true) {
|
|
48
|
+
const events = await api.getGenericJobEvents(reference);
|
|
49
|
+
for (const event of events.events) {
|
|
50
|
+
const key = `${event.sequence}:${event.timestamp}:${event.type}`;
|
|
51
|
+
if (!seen.has(key)) {
|
|
52
|
+
seen.add(key);
|
|
53
|
+
yield event;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (stopOnTerminal) {
|
|
57
|
+
const snapshot = await api.getGenericJob(reference);
|
|
58
|
+
if (terminalStates.has(snapshot.job.state)) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
await sleep(intervalMs);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const jobs = {
|
|
66
|
+
create,
|
|
67
|
+
run: create,
|
|
68
|
+
status: (request) => api.getGenericJob(withDefaults(request)),
|
|
69
|
+
logs: (request) => api.getGenericJobLogs(withDefaults(request)),
|
|
70
|
+
events: streamEvents,
|
|
71
|
+
eventsSnapshot: (request) => api.getGenericJobEvents(withDefaults(request)),
|
|
72
|
+
artifacts: (request) => api.getGenericJobArtifacts(withDefaults(request)),
|
|
73
|
+
cancel: (request) => api.cancelGenericJob(withDefaults(request)),
|
|
74
|
+
retry: (request) => api.retryGenericJob(withDefaults(request)),
|
|
75
|
+
ops: (request = {}) => api.getGenericJobOps(withDefaults(request))
|
|
76
|
+
};
|
|
77
|
+
return {
|
|
78
|
+
close: () => api.close(),
|
|
79
|
+
jobs,
|
|
80
|
+
listGpus: (request = {}) => api.listGpuCapabilities(withDefaults(request)),
|
|
81
|
+
uploadArtifact: (request) => api.uploadGenericJobArtifact(withDefaults(request)),
|
|
82
|
+
runJob: create,
|
|
83
|
+
create,
|
|
84
|
+
status: jobs.status,
|
|
85
|
+
logs: jobs.logs,
|
|
86
|
+
events: jobs.eventsSnapshot,
|
|
87
|
+
artifacts: jobs.artifacts,
|
|
88
|
+
cancel: jobs.cancel,
|
|
89
|
+
retry: jobs.retry,
|
|
90
|
+
ops: jobs.ops
|
|
91
|
+
};
|
|
92
|
+
}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { McodaAgentCatalogEntry, McodaAgentSetupClient, McodaAgentSetupSnapshot, McodaSelfHostedServer, McodaStageDefinition } from "../types.js";
|
|
2
|
+
import type { McodaAgentCatalogEntry, McodaAgentSetupClient, McodaAgentSetupSnapshot, McodaGpuJobOpsPanelData, McodaGpuJobOpsPanelJob, McodaSelfHostedServer, McodaStageDefinition } from "../types.js";
|
|
3
3
|
export interface McodaAgentSetupPageProps {
|
|
4
4
|
client: McodaAgentSetupClient;
|
|
5
5
|
stages?: McodaStageDefinition[];
|
|
@@ -7,6 +7,13 @@ export interface McodaAgentSetupPageProps {
|
|
|
7
7
|
className?: string;
|
|
8
8
|
labels?: Partial<McodaAgentSetupLabels>;
|
|
9
9
|
components?: Partial<McodaAgentSetupComponentOverrides>;
|
|
10
|
+
gpuJobOps?: McodaGpuJobOpsPanelData | null;
|
|
11
|
+
onGpuJobOpsRefresh?: () => void | Promise<void>;
|
|
12
|
+
onGpuJobViewDetails?: (job: McodaGpuJobOpsPanelJob) => void | Promise<void>;
|
|
13
|
+
onGpuJobViewLogs?: (job: McodaGpuJobOpsPanelJob) => void | Promise<void>;
|
|
14
|
+
onGpuJobViewArtifacts?: (job: McodaGpuJobOpsPanelJob) => void | Promise<void>;
|
|
15
|
+
onGpuJobRetry?: (job: McodaGpuJobOpsPanelJob) => void | Promise<void>;
|
|
16
|
+
onGpuJobCancel?: (job: McodaGpuJobOpsPanelJob) => void | Promise<void>;
|
|
10
17
|
}
|
|
11
18
|
export interface McodaAgentSetupLabels {
|
|
12
19
|
saveKey: string;
|
|
@@ -20,6 +27,7 @@ export interface McodaAgentSetupLabels {
|
|
|
20
27
|
export interface McodaAgentSetupComponentOverrides {
|
|
21
28
|
AgentCatalogSummary: typeof AgentCatalogSummary;
|
|
22
29
|
MswarmAccessCard: typeof MswarmAccessCard;
|
|
30
|
+
GpuJobOpsPanel: typeof GpuJobOpsPanel;
|
|
23
31
|
StageAgentAssignments: typeof StageAgentAssignments;
|
|
24
32
|
AgentSourceSelect: typeof AgentSourceSelect;
|
|
25
33
|
SelfHostedServerSelect: typeof SelfHostedServerSelect;
|
|
@@ -27,6 +35,17 @@ export interface McodaAgentSetupComponentOverrides {
|
|
|
27
35
|
}
|
|
28
36
|
type AgentAssignmentSource = "local" | "cloud" | "self_hosted" | "worker";
|
|
29
37
|
export declare function McodaAgentSetupPage(props: McodaAgentSetupPageProps): React.ReactElement;
|
|
38
|
+
export interface GpuJobOpsPanelProps {
|
|
39
|
+
ops: McodaGpuJobOpsPanelData;
|
|
40
|
+
busy?: boolean;
|
|
41
|
+
onRefresh?: () => void | Promise<void>;
|
|
42
|
+
onViewDetails?: (job: McodaGpuJobOpsPanelJob) => void | Promise<void>;
|
|
43
|
+
onViewLogs?: (job: McodaGpuJobOpsPanelJob) => void | Promise<void>;
|
|
44
|
+
onViewArtifacts?: (job: McodaGpuJobOpsPanelJob) => void | Promise<void>;
|
|
45
|
+
onRetry?: (job: McodaGpuJobOpsPanelJob) => void | Promise<void>;
|
|
46
|
+
onCancel?: (job: McodaGpuJobOpsPanelJob) => void | Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
export declare function GpuJobOpsPanel(props: GpuJobOpsPanelProps): React.ReactElement;
|
|
30
49
|
export declare function AgentCatalogSummary(props: {
|
|
31
50
|
snapshot: McodaAgentSetupSnapshot;
|
|
32
51
|
}): React.ReactElement;
|
|
@@ -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;
|
|
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
|
@@ -16,6 +16,7 @@ export function McodaAgentSetupPage(props) {
|
|
|
16
16
|
const components = {
|
|
17
17
|
AgentCatalogSummary,
|
|
18
18
|
MswarmAccessCard,
|
|
19
|
+
GpuJobOpsPanel,
|
|
19
20
|
StageAgentAssignments,
|
|
20
21
|
...(props.components ?? {}),
|
|
21
22
|
};
|
|
@@ -98,6 +99,40 @@ export function McodaAgentSetupPage(props) {
|
|
|
98
99
|
setBusy(false);
|
|
99
100
|
}
|
|
100
101
|
};
|
|
102
|
+
const refreshGpuJobOps = async () => {
|
|
103
|
+
if (!props.onGpuJobOpsRefresh)
|
|
104
|
+
return;
|
|
105
|
+
setBusy(true);
|
|
106
|
+
setError(null);
|
|
107
|
+
setStatusMessage(null);
|
|
108
|
+
try {
|
|
109
|
+
await props.onGpuJobOpsRefresh();
|
|
110
|
+
setStatusMessage("GPU job operations refreshed.");
|
|
111
|
+
}
|
|
112
|
+
catch (caught) {
|
|
113
|
+
setError(caught instanceof Error ? caught.message : String(caught));
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
setBusy(false);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
const runGpuJobAction = async (action, job, message) => {
|
|
120
|
+
if (!action)
|
|
121
|
+
return;
|
|
122
|
+
setBusy(true);
|
|
123
|
+
setError(null);
|
|
124
|
+
setStatusMessage(null);
|
|
125
|
+
try {
|
|
126
|
+
await action(job);
|
|
127
|
+
setStatusMessage(message);
|
|
128
|
+
}
|
|
129
|
+
catch (caught) {
|
|
130
|
+
setError(caught instanceof Error ? caught.message : String(caught));
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
setBusy(false);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
101
136
|
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 local, cloud, self-hosted, or Worker mcoda targets to each runtime stage.")), React.createElement("button", {
|
|
102
137
|
type: "button",
|
|
103
138
|
className: "mcoda-agent-setup__button mcoda-agent-setup__button--secondary",
|
|
@@ -117,7 +152,28 @@ export function McodaAgentSetupPage(props) {
|
|
|
117
152
|
onApiKeyChange: setApiKey,
|
|
118
153
|
onSaveKey: saveKey,
|
|
119
154
|
onSyncAgents: syncAgents,
|
|
120
|
-
})),
|
|
155
|
+
})), props.gpuJobOps
|
|
156
|
+
? React.createElement(components.GpuJobOpsPanel, {
|
|
157
|
+
ops: props.gpuJobOps,
|
|
158
|
+
busy,
|
|
159
|
+
onRefresh: props.onGpuJobOpsRefresh ? refreshGpuJobOps : undefined,
|
|
160
|
+
onViewDetails: props.onGpuJobViewDetails
|
|
161
|
+
? (job) => runGpuJobAction(props.onGpuJobViewDetails, job, `Loaded details for ${job.job_id}.`)
|
|
162
|
+
: undefined,
|
|
163
|
+
onViewLogs: props.onGpuJobViewLogs
|
|
164
|
+
? (job) => runGpuJobAction(props.onGpuJobViewLogs, job, `Loaded logs for ${job.job_id}.`)
|
|
165
|
+
: undefined,
|
|
166
|
+
onViewArtifacts: props.onGpuJobViewArtifacts
|
|
167
|
+
? (job) => runGpuJobAction(props.onGpuJobViewArtifacts, job, `Loaded artifacts for ${job.job_id}.`)
|
|
168
|
+
: undefined,
|
|
169
|
+
onRetry: props.onGpuJobRetry
|
|
170
|
+
? (job) => runGpuJobAction(props.onGpuJobRetry, job, `Retry queued for ${job.job_id}.`)
|
|
171
|
+
: undefined,
|
|
172
|
+
onCancel: props.onGpuJobCancel
|
|
173
|
+
? (job) => runGpuJobAction(props.onGpuJobCancel, job, `Cancel requested for ${job.job_id}.`)
|
|
174
|
+
: undefined,
|
|
175
|
+
})
|
|
176
|
+
: null, snapshot
|
|
121
177
|
? React.createElement(components.StageAgentAssignments, {
|
|
122
178
|
stages,
|
|
123
179
|
snapshot,
|
|
@@ -129,6 +185,101 @@ export function McodaAgentSetupPage(props) {
|
|
|
129
185
|
})
|
|
130
186
|
: null);
|
|
131
187
|
}
|
|
188
|
+
export function GpuJobOpsPanel(props) {
|
|
189
|
+
const { ops } = props;
|
|
190
|
+
const jobs = ops.queue.jobs;
|
|
191
|
+
const auditEvents = ops.audit.events.slice(0, 6);
|
|
192
|
+
const stateEntries = Object.entries(ops.queue.totals_by_state).sort(([left], [right]) => left.localeCompare(right));
|
|
193
|
+
const software = opsSoftwareMetric(ops);
|
|
194
|
+
const showControls = Boolean(props.onViewDetails || props.onViewLogs || props.onViewArtifacts || props.onRetry || props.onCancel);
|
|
195
|
+
return React.createElement("section", { className: "mcoda-agent-setup__gpu-ops" }, React.createElement("div", { className: "mcoda-agent-setup__card-heading" }, React.createElement("div", null, React.createElement("h2", null, "GPU Job Operations"), React.createElement("p", null, `Node ${ops.node.node_id} · ${formatTimestamp(ops.generated_at)}`)), props.onRefresh
|
|
196
|
+
? React.createElement("button", {
|
|
197
|
+
type: "button",
|
|
198
|
+
className: "mcoda-agent-setup__button mcoda-agent-setup__button--secondary",
|
|
199
|
+
disabled: props.busy,
|
|
200
|
+
onClick: props.onRefresh,
|
|
201
|
+
}, props.busy ? "Refreshing" : "Refresh")
|
|
202
|
+
: React.createElement("span", {
|
|
203
|
+
className: ops.node.generic_jobs_enabled
|
|
204
|
+
? "mcoda-agent-setup__badge mcoda-agent-setup__badge--success"
|
|
205
|
+
: "mcoda-agent-setup__badge mcoda-agent-setup__badge--warning",
|
|
206
|
+
}, ops.node.generic_jobs_enabled ? "Enabled" : "Disabled")), React.createElement("div", { className: "mcoda-agent-setup__metric-grid" }, React.createElement(MetricCard, {
|
|
207
|
+
label: "Queue",
|
|
208
|
+
value: String(ops.usage.total_jobs),
|
|
209
|
+
detail: `${ops.queue.active_jobs} active, ${ops.queue.queued_jobs} queued`,
|
|
210
|
+
}), React.createElement(MetricCard, {
|
|
211
|
+
label: "Slots",
|
|
212
|
+
value: `${ops.quota.available_slots}/${ops.quota.max_concurrent_jobs}`,
|
|
213
|
+
detail: "available concurrency",
|
|
214
|
+
}), React.createElement(MetricCard, {
|
|
215
|
+
label: "GPU time",
|
|
216
|
+
value: formatDurationSeconds(ops.usage.gpu_seconds),
|
|
217
|
+
detail: "owner-local runtime",
|
|
218
|
+
}), React.createElement(MetricCard, {
|
|
219
|
+
label: "Artifacts",
|
|
220
|
+
value: String(ops.usage.artifact_count),
|
|
221
|
+
detail: formatBytes(ops.usage.artifact_bytes),
|
|
222
|
+
}), React.createElement(MetricCard, {
|
|
223
|
+
label: "Job types",
|
|
224
|
+
value: opsJobTypes(ops),
|
|
225
|
+
detail: opsGpuSummary(ops),
|
|
226
|
+
}), React.createElement(MetricCard, {
|
|
227
|
+
label: "Software",
|
|
228
|
+
value: software.value,
|
|
229
|
+
detail: software.detail,
|
|
230
|
+
}), React.createElement(MetricCard, {
|
|
231
|
+
label: "Audit",
|
|
232
|
+
value: String(ops.audit.total),
|
|
233
|
+
detail: `${ops.audit.limit} visible from ${ops.audit.offset}`,
|
|
234
|
+
})), stateEntries.length
|
|
235
|
+
? React.createElement("div", { className: "mcoda-agent-setup__state-chips", "aria-label": "GPU job states" }, stateEntries.map(([state, count]) => React.createElement("span", { key: state, className: `mcoda-agent-setup__state-chip mcoda-agent-setup__state-chip--${state}` }, React.createElement("strong", null, String(count)), React.createElement("span", null, state))))
|
|
236
|
+
: null, React.createElement("div", { className: "mcoda-agent-setup__gpu-ops-grid" }, React.createElement("div", { className: "mcoda-agent-setup__gpu-ops-panel" }, React.createElement("h3", null, "Jobs"), jobs.length
|
|
237
|
+
? React.createElement("div", { className: "mcoda-agent-setup__gpu-table-wrap" }, React.createElement("table", { className: "mcoda-agent-setup__gpu-table" }, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", null, "Job"), React.createElement("th", null, "State"), React.createElement("th", null, "Progress"), React.createElement("th", null, "Artifacts"), showControls ? React.createElement("th", null, "Actions") : null)), React.createElement("tbody", null, jobs.map((job) => {
|
|
238
|
+
const terminal = isTerminalGpuJobState(job.state);
|
|
239
|
+
const retryable = terminal && job.state !== "succeeded";
|
|
240
|
+
return React.createElement("tr", { key: job.job_id }, React.createElement("td", { className: "mcoda-agent-setup__gpu-job-cell" }, React.createElement("strong", null, job.job_id), React.createElement("small", null, `${job.job_type} · ${formatTimestamp(job.updated_at)}`)), React.createElement("td", null, React.createElement("span", { className: `mcoda-agent-setup__badge ${terminal ? "mcoda-agent-setup__badge--info" : "mcoda-agent-setup__badge--success"}` }, job.state)), React.createElement("td", null, formatPercent(job.progress_percent)), React.createElement("td", null, `${job.artifact_count} / ${formatBytes(job.artifact_bytes)}`), showControls
|
|
241
|
+
? React.createElement("td", null, React.createElement("div", { className: "mcoda-agent-setup__gpu-actions" }, props.onViewDetails
|
|
242
|
+
? React.createElement("button", {
|
|
243
|
+
type: "button",
|
|
244
|
+
className: "mcoda-agent-setup__button mcoda-agent-setup__button--secondary",
|
|
245
|
+
disabled: props.busy,
|
|
246
|
+
onClick: () => props.onViewDetails?.(job),
|
|
247
|
+
}, "Details")
|
|
248
|
+
: null, props.onViewLogs
|
|
249
|
+
? React.createElement("button", {
|
|
250
|
+
type: "button",
|
|
251
|
+
className: "mcoda-agent-setup__button mcoda-agent-setup__button--secondary",
|
|
252
|
+
disabled: props.busy,
|
|
253
|
+
onClick: () => props.onViewLogs?.(job),
|
|
254
|
+
}, "Logs")
|
|
255
|
+
: null, props.onViewArtifacts
|
|
256
|
+
? React.createElement("button", {
|
|
257
|
+
type: "button",
|
|
258
|
+
className: "mcoda-agent-setup__button mcoda-agent-setup__button--secondary",
|
|
259
|
+
disabled: props.busy,
|
|
260
|
+
onClick: () => props.onViewArtifacts?.(job),
|
|
261
|
+
}, "Artifacts")
|
|
262
|
+
: null, props.onCancel
|
|
263
|
+
? React.createElement("button", {
|
|
264
|
+
type: "button",
|
|
265
|
+
className: "mcoda-agent-setup__button mcoda-agent-setup__button--secondary",
|
|
266
|
+
disabled: props.busy || terminal,
|
|
267
|
+
onClick: () => props.onCancel?.(job),
|
|
268
|
+
}, "Cancel")
|
|
269
|
+
: null, props.onRetry
|
|
270
|
+
? React.createElement("button", {
|
|
271
|
+
type: "button",
|
|
272
|
+
className: "mcoda-agent-setup__button mcoda-agent-setup__button--primary",
|
|
273
|
+
disabled: props.busy || !retryable,
|
|
274
|
+
onClick: () => props.onRetry?.(job),
|
|
275
|
+
}, "Retry")
|
|
276
|
+
: null))
|
|
277
|
+
: null);
|
|
278
|
+
}))))
|
|
279
|
+
: React.createElement("p", { className: "mcoda-agent-setup__gpu-empty" }, "No GPU jobs recorded.")), React.createElement("div", { className: "mcoda-agent-setup__gpu-ops-panel" }, React.createElement("h3", null, "Audit"), auditEvents.length
|
|
280
|
+
? React.createElement("ol", { className: "mcoda-agent-setup__audit-list" }, auditEvents.map((event, index) => React.createElement("li", { key: `${event.timestamp}-${event.action}-${index}` }, React.createElement("strong", null, event.action), React.createElement("span", null, formatTimestamp(event.timestamp)))))
|
|
281
|
+
: React.createElement("p", { className: "mcoda-agent-setup__gpu-empty" }, "No audit events recorded."))));
|
|
282
|
+
}
|
|
132
283
|
export function AgentCatalogSummary(props) {
|
|
133
284
|
const { snapshot } = props;
|
|
134
285
|
const warningEntries = Object.entries(snapshot.catalog.errors);
|
|
@@ -506,6 +657,77 @@ export function AgentSearchSelect(props) {
|
|
|
506
657
|
function MetricCard(props) {
|
|
507
658
|
return React.createElement("div", { className: "mcoda-agent-setup__metric" }, React.createElement("span", null, props.label), React.createElement("strong", null, props.value), React.createElement("small", null, props.detail));
|
|
508
659
|
}
|
|
660
|
+
const GPU_TERMINAL_STATES = new Set(["succeeded", "failed", "cancelled", "expired", "blocked"]);
|
|
661
|
+
function isTerminalGpuJobState(state) {
|
|
662
|
+
return GPU_TERMINAL_STATES.has(state);
|
|
663
|
+
}
|
|
664
|
+
function asRecord(value) {
|
|
665
|
+
return value && typeof value === "object" && !Array.isArray(value)
|
|
666
|
+
? value
|
|
667
|
+
: {};
|
|
668
|
+
}
|
|
669
|
+
function opsJobTypes(ops) {
|
|
670
|
+
const value = ops.capabilities.job_types;
|
|
671
|
+
if (!Array.isArray(value) || value.length === 0)
|
|
672
|
+
return "none";
|
|
673
|
+
return value.map((entry) => String(entry)).slice(0, 3).join(", ");
|
|
674
|
+
}
|
|
675
|
+
function opsGpuSummary(ops) {
|
|
676
|
+
const accelerators = asRecord(ops.capabilities.accelerators);
|
|
677
|
+
const gpu = asRecord(accelerators.gpu);
|
|
678
|
+
const vendors = Array.isArray(gpu.vendors)
|
|
679
|
+
? gpu.vendors.map((entry) => String(entry)).join(", ")
|
|
680
|
+
: "";
|
|
681
|
+
const count = typeof gpu.count === "number" ? `${gpu.count} GPU${gpu.count === 1 ? "" : "s"}` : null;
|
|
682
|
+
const cuda = gpu.cuda === true ? "CUDA" : gpu.cuda === false ? "no CUDA" : null;
|
|
683
|
+
const vram = typeof gpu.vram_tier === "string" ? gpu.vram_tier : null;
|
|
684
|
+
return [count, vendors, cuda, vram].filter(Boolean).join(" / ") || "capability snapshot";
|
|
685
|
+
}
|
|
686
|
+
function opsSoftwareMetric(ops) {
|
|
687
|
+
const software = asRecord(ops.capabilities.software);
|
|
688
|
+
const entries = Object.entries(software)
|
|
689
|
+
.map(([name, value]) => [name, asRecord(value)])
|
|
690
|
+
.filter(([, value]) => Object.keys(value).length > 0);
|
|
691
|
+
if (entries.length === 0) {
|
|
692
|
+
return { value: "unknown", detail: "software probes unavailable" };
|
|
693
|
+
}
|
|
694
|
+
const available = entries.filter(([, value]) => value.available === true || value.status === "available").length;
|
|
695
|
+
return {
|
|
696
|
+
value: `${available}/${entries.length} available`,
|
|
697
|
+
detail: entries
|
|
698
|
+
.map(([name, value]) => `${name}: ${typeof value.status === "string" ? value.status : value.available === true ? "available" : "unknown"}`)
|
|
699
|
+
.join(", "),
|
|
700
|
+
};
|
|
701
|
+
}
|
|
702
|
+
function formatPercent(value) {
|
|
703
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
704
|
+
return "-";
|
|
705
|
+
return `${Math.round(Math.max(0, Math.min(100, value)))}%`;
|
|
706
|
+
}
|
|
707
|
+
function formatDurationSeconds(value) {
|
|
708
|
+
if (!Number.isFinite(value) || value <= 0)
|
|
709
|
+
return "0s";
|
|
710
|
+
if (value < 60)
|
|
711
|
+
return `${Math.round(value)}s`;
|
|
712
|
+
const minutes = Math.floor(value / 60);
|
|
713
|
+
const seconds = Math.round(value % 60);
|
|
714
|
+
if (minutes < 60)
|
|
715
|
+
return `${minutes}m ${seconds}s`;
|
|
716
|
+
const hours = Math.floor(minutes / 60);
|
|
717
|
+
return `${hours}h ${minutes % 60}m`;
|
|
718
|
+
}
|
|
719
|
+
function formatBytes(value) {
|
|
720
|
+
if (!Number.isFinite(value) || value <= 0)
|
|
721
|
+
return "0 B";
|
|
722
|
+
const units = ["B", "KB", "MB", "GB", "TB"];
|
|
723
|
+
let next = value;
|
|
724
|
+
let unit = 0;
|
|
725
|
+
while (next >= 1024 && unit < units.length - 1) {
|
|
726
|
+
next /= 1024;
|
|
727
|
+
unit += 1;
|
|
728
|
+
}
|
|
729
|
+
return `${next >= 10 || unit === 0 ? Math.round(next) : next.toFixed(1)} ${units[unit]}`;
|
|
730
|
+
}
|
|
509
731
|
function AgentStatusBadge(props) {
|
|
510
732
|
const kind = props.agent?.managedKind;
|
|
511
733
|
const sourceLabel = kind === "cloud"
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MswarmGenericJobOpsJobSummary, MswarmGenericJobOpsSummary } from "@mcoda/core";
|
|
1
2
|
export type McodaRuntimeMode = "programmatic" | "cli_fallback" | "custom";
|
|
2
3
|
export interface McodaRuntimeInfo {
|
|
3
4
|
mode: McodaRuntimeMode;
|
|
@@ -118,6 +119,8 @@ export interface McodaAgentSetupSnapshot {
|
|
|
118
119
|
updatedAt: string | null;
|
|
119
120
|
fetchedAt: string;
|
|
120
121
|
}
|
|
122
|
+
export type McodaGpuJobOpsPanelData = MswarmGenericJobOpsSummary;
|
|
123
|
+
export type McodaGpuJobOpsPanelJob = MswarmGenericJobOpsJobSummary;
|
|
121
124
|
export interface McodaAgentTestResult {
|
|
122
125
|
slug: string;
|
|
123
126
|
ok: boolean;
|
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,GACrB,gBAAgB,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE9E,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACP,aAAa,GACb,QAAQ,GACR,sBAAsB,GACtB,IAAI,CAAC;AAET,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,WAAW,GACX,kBAAkB,GAClB,WAAW,GACX,SAAS,GACT,QAAQ,GACR,KAAK,GACL,QAAQ,CAAC;AAEb,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,CAAC;AAE1E,MAAM,MAAM,sCAAsC,GAC9C,QAAQ,GACR,aAAa,GACb,aAAa,GACb,MAAM,GACN,aAAa,GACb,MAAM,CAAC;AAEX,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAC;IACjD,QAAQ,EAAE,wBAAwB,GAAG,MAAM,GAAG,IAAI,CAAC;IACnD,sBAAsB,EAAE,sCAAsC,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;IACtC,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,mCAAmC,GAC3C,MAAM,GACN,UAAU,GACV,MAAM,CAAC;AAEX,MAAM,MAAM,qCAAqC,GAC7C,YAAY,GACZ,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,mCAAmC,CAAC;CACtD;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,qCAAqC,CAAC;IACxD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,+BAA+B,GAAG,IAAI,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,sBAAsB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,sBAAsB,EAAE,CAAC;IACtC,WAAW,EAAE,sBAAsB,EAAE,CAAC;IACtC,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;IAC3C,YAAY,EAAE,sBAAsB,EAAE,CAAC;IACvC,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,sBAAsB,EAAE,OAAO,CAAC;IAChC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACvD,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClD,qBAAqB,CAAC,KAAK,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,0BAA0B,CAAC;QACxC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrC,UAAU,CAAC,KAAK,CAAC,EAAE;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrC,iBAAiB,CAAC,KAAK,EAAE;QACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;QAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrC,SAAS,CAAC,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,qBAAqB,CAAC,KAAK,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,0BAA0B,CAAC;QACxC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;IAClD,eAAe,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAChF,eAAe,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAChF,oBAAoB,CAClB,KAAK,CAAC,EAAE,mBAAmB,GAC1B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACrC,oBAAoB,CAClB,KAAK,CAAC,EAAE,mBAAmB,GAC1B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACrC,gBAAgB,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACjF,gBAAgB,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACjF,eAAe,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAChF,SAAS,CAAC,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3C,sBAAsB,EAAE,OAAO,CAAC;IAChC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACxD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC5C,qBAAqB,CAAC,KAAK,EAAE;QAC3B,UAAU,EAAE,OAAO,CAAC;QACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,6BAA6B,GAAG,IAAI,CAAC;QAClD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,eAAe,CAAC,KAAK,EAAE;QACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;QAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,uBAAuB,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACnE,qBAAqB,CACnB,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,0BAA0B,CAAC;QACxC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,EACD,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACpC,UAAU,CACR,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,EACD,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACpC,iBAAiB,CACf,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;QAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,EACD,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACpC,SAAS,CACP,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,EACD,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;CACf"}
|
|
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.78",
|
|
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.78"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"react": ">=18.2.0 || >=19.0.0",
|
package/styles/react.css
CHANGED
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
.mcoda-agent-setup__header,
|
|
36
36
|
.mcoda-agent-setup__summary,
|
|
37
37
|
.mcoda-agent-setup__access,
|
|
38
|
+
.mcoda-agent-setup__gpu-ops,
|
|
38
39
|
.mcoda-agent-setup__assignments,
|
|
39
40
|
.mcoda-agent-setup__empty-state,
|
|
40
41
|
.mcoda-agent-setup__alert {
|
|
@@ -162,6 +163,7 @@
|
|
|
162
163
|
|
|
163
164
|
.mcoda-agent-setup__summary,
|
|
164
165
|
.mcoda-agent-setup__access,
|
|
166
|
+
.mcoda-agent-setup__gpu-ops,
|
|
165
167
|
.mcoda-agent-setup__assignments,
|
|
166
168
|
.mcoda-agent-setup__empty-state {
|
|
167
169
|
padding: 18px;
|
|
@@ -549,6 +551,168 @@
|
|
|
549
551
|
text-transform: uppercase;
|
|
550
552
|
}
|
|
551
553
|
|
|
554
|
+
.mcoda-agent-setup__state-chips {
|
|
555
|
+
display: flex;
|
|
556
|
+
flex-wrap: wrap;
|
|
557
|
+
gap: 8px;
|
|
558
|
+
margin-top: 14px;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
.mcoda-agent-setup__state-chip {
|
|
562
|
+
align-items: center;
|
|
563
|
+
background: #f8fafc;
|
|
564
|
+
border: 1px solid var(--mcoda-border);
|
|
565
|
+
border-radius: 8px;
|
|
566
|
+
color: var(--mcoda-muted);
|
|
567
|
+
display: inline-flex;
|
|
568
|
+
gap: 7px;
|
|
569
|
+
min-height: 32px;
|
|
570
|
+
padding: 6px 9px;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
.mcoda-agent-setup__state-chip strong {
|
|
574
|
+
color: var(--mcoda-text);
|
|
575
|
+
font-size: 14px;
|
|
576
|
+
line-height: 1;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
.mcoda-agent-setup__state-chip span {
|
|
580
|
+
font-size: 11px;
|
|
581
|
+
font-weight: 800;
|
|
582
|
+
text-transform: uppercase;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
.mcoda-agent-setup__state-chip--failed,
|
|
586
|
+
.mcoda-agent-setup__state-chip--blocked,
|
|
587
|
+
.mcoda-agent-setup__state-chip--expired {
|
|
588
|
+
background: var(--mcoda-rose-soft);
|
|
589
|
+
border-color: #fecdd3;
|
|
590
|
+
color: #be123c;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
.mcoda-agent-setup__state-chip--succeeded {
|
|
594
|
+
background: var(--mcoda-emerald-soft);
|
|
595
|
+
border-color: #a7f3d0;
|
|
596
|
+
color: #047857;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
.mcoda-agent-setup__gpu-ops-grid {
|
|
600
|
+
display: grid;
|
|
601
|
+
gap: 14px;
|
|
602
|
+
grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.75fr);
|
|
603
|
+
margin-top: 16px;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
.mcoda-agent-setup__gpu-ops-panel {
|
|
607
|
+
border: 1px solid var(--mcoda-border);
|
|
608
|
+
border-radius: 8px;
|
|
609
|
+
min-width: 0;
|
|
610
|
+
overflow: hidden;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
.mcoda-agent-setup__gpu-ops-panel h3 {
|
|
614
|
+
background: #f8fafc;
|
|
615
|
+
border-bottom: 1px solid var(--mcoda-border);
|
|
616
|
+
color: var(--mcoda-text);
|
|
617
|
+
font-size: 13px;
|
|
618
|
+
font-weight: 800;
|
|
619
|
+
margin: 0;
|
|
620
|
+
padding: 10px 12px;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
.mcoda-agent-setup__gpu-table-wrap {
|
|
624
|
+
overflow-x: auto;
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
.mcoda-agent-setup__gpu-table {
|
|
628
|
+
border-collapse: collapse;
|
|
629
|
+
min-width: 760px;
|
|
630
|
+
width: 100%;
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
.mcoda-agent-setup__gpu-table th {
|
|
634
|
+
color: var(--mcoda-faint);
|
|
635
|
+
font-size: 10px;
|
|
636
|
+
font-weight: 800;
|
|
637
|
+
letter-spacing: 0;
|
|
638
|
+
padding: 10px 12px;
|
|
639
|
+
text-align: left;
|
|
640
|
+
text-transform: uppercase;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
.mcoda-agent-setup__gpu-table td {
|
|
644
|
+
border-top: 1px solid #f1f5f9;
|
|
645
|
+
color: var(--mcoda-text);
|
|
646
|
+
font-size: 13px;
|
|
647
|
+
padding: 10px 12px;
|
|
648
|
+
vertical-align: middle;
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
.mcoda-agent-setup__gpu-job-cell {
|
|
652
|
+
min-width: 0;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
.mcoda-agent-setup__gpu-job-cell strong,
|
|
656
|
+
.mcoda-agent-setup__gpu-job-cell small {
|
|
657
|
+
display: block;
|
|
658
|
+
max-width: 260px;
|
|
659
|
+
overflow: hidden;
|
|
660
|
+
text-overflow: ellipsis;
|
|
661
|
+
white-space: nowrap;
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
.mcoda-agent-setup__gpu-job-cell small {
|
|
665
|
+
color: var(--mcoda-muted);
|
|
666
|
+
font-size: 11px;
|
|
667
|
+
margin-top: 3px;
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
.mcoda-agent-setup__gpu-actions {
|
|
671
|
+
display: flex;
|
|
672
|
+
flex-wrap: wrap;
|
|
673
|
+
gap: 8px;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.mcoda-agent-setup__gpu-actions .mcoda-agent-setup__button {
|
|
677
|
+
min-height: 32px;
|
|
678
|
+
padding: 0 10px;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
.mcoda-agent-setup__audit-list {
|
|
682
|
+
display: grid;
|
|
683
|
+
gap: 0;
|
|
684
|
+
list-style: none;
|
|
685
|
+
margin: 0;
|
|
686
|
+
padding: 0;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
.mcoda-agent-setup__audit-list li {
|
|
690
|
+
border-top: 1px solid #f1f5f9;
|
|
691
|
+
display: grid;
|
|
692
|
+
gap: 3px;
|
|
693
|
+
padding: 10px 12px;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
.mcoda-agent-setup__audit-list li:first-child {
|
|
697
|
+
border-top: 0;
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
.mcoda-agent-setup__audit-list strong {
|
|
701
|
+
color: var(--mcoda-text);
|
|
702
|
+
font-size: 12px;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
.mcoda-agent-setup__audit-list span,
|
|
706
|
+
.mcoda-agent-setup__gpu-empty {
|
|
707
|
+
color: var(--mcoda-muted);
|
|
708
|
+
font-size: 12px;
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
.mcoda-agent-setup__gpu-empty {
|
|
712
|
+
margin: 0;
|
|
713
|
+
padding: 14px 12px;
|
|
714
|
+
}
|
|
715
|
+
|
|
552
716
|
.mcoda-agent-setup__empty-state {
|
|
553
717
|
color: var(--mcoda-muted);
|
|
554
718
|
font-size: 14px;
|
|
@@ -565,6 +729,10 @@
|
|
|
565
729
|
.mcoda-agent-setup__metric-grid {
|
|
566
730
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
567
731
|
}
|
|
732
|
+
|
|
733
|
+
.mcoda-agent-setup__gpu-ops-grid {
|
|
734
|
+
grid-template-columns: 1fr;
|
|
735
|
+
}
|
|
568
736
|
}
|
|
569
737
|
|
|
570
738
|
@media (max-width: 720px) {
|