@herdctl/core 2.0.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/__tests__/agent.test.js +31 -48
- package/dist/config/__tests__/agent.test.js.map +1 -1
- package/dist/config/__tests__/loader.test.js +22 -26
- package/dist/config/__tests__/loader.test.js.map +1 -1
- package/dist/config/__tests__/merge.test.js +43 -85
- package/dist/config/__tests__/merge.test.js.map +1 -1
- package/dist/config/__tests__/parser.test.js +30 -48
- package/dist/config/__tests__/parser.test.js.map +1 -1
- package/dist/config/__tests__/schema.test.js +150 -39
- package/dist/config/__tests__/schema.test.js.map +1 -1
- package/dist/config/index.d.ts +2 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/merge.d.ts +8 -14
- package/dist/config/merge.d.ts.map +1 -1
- package/dist/config/merge.js +11 -6
- package/dist/config/merge.js.map +1 -1
- package/dist/config/schema.d.ts +1337 -475
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +135 -25
- package/dist/config/schema.js.map +1 -1
- package/dist/runner/__tests__/sdk-adapter.test.js +25 -159
- package/dist/runner/__tests__/sdk-adapter.test.js.map +1 -1
- package/dist/runner/runtime/__tests__/docker-config.test.js +157 -1
- package/dist/runner/runtime/__tests__/docker-config.test.js.map +1 -1
- package/dist/runner/runtime/cli-runtime.d.ts.map +1 -1
- package/dist/runner/runtime/cli-runtime.js +6 -28
- package/dist/runner/runtime/cli-runtime.js.map +1 -1
- package/dist/runner/runtime/container-manager.d.ts.map +1 -1
- package/dist/runner/runtime/container-manager.js +46 -16
- package/dist/runner/runtime/container-manager.js.map +1 -1
- package/dist/runner/runtime/docker-config.d.ts +55 -4
- package/dist/runner/runtime/docker-config.d.ts.map +1 -1
- package/dist/runner/runtime/docker-config.js +49 -2
- package/dist/runner/runtime/docker-config.js.map +1 -1
- package/dist/runner/sdk-adapter.d.ts.map +1 -1
- package/dist/runner/sdk-adapter.js +7 -21
- package/dist/runner/sdk-adapter.js.map +1 -1
- package/package.json +2 -2
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* This module provides TypeScript types for Docker container configuration
|
|
5
5
|
* and utility functions for path mapping and container management.
|
|
6
6
|
*/
|
|
7
|
-
import type {
|
|
7
|
+
import type { HostConfig } from "dockerode";
|
|
8
|
+
import type { FleetDockerInput } from "../../config/schema.js";
|
|
8
9
|
/**
|
|
9
10
|
* Network isolation modes for Docker containers
|
|
10
11
|
*/
|
|
@@ -24,6 +25,24 @@ export interface PathMapping {
|
|
|
24
25
|
/** Mount mode: read-only or read-write */
|
|
25
26
|
mode: VolumeMode;
|
|
26
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Port binding configuration
|
|
30
|
+
*/
|
|
31
|
+
export interface PortBinding {
|
|
32
|
+
/** Port on the host */
|
|
33
|
+
hostPort: number;
|
|
34
|
+
/** Port in the container */
|
|
35
|
+
containerPort: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Tmpfs mount configuration
|
|
39
|
+
*/
|
|
40
|
+
export interface TmpfsMount {
|
|
41
|
+
/** Path inside the container */
|
|
42
|
+
path: string;
|
|
43
|
+
/** Mount options (e.g., "size=100m,mode=1777") */
|
|
44
|
+
options?: string;
|
|
45
|
+
}
|
|
27
46
|
/**
|
|
28
47
|
* Resolved Docker configuration with defaults applied
|
|
29
48
|
*/
|
|
@@ -40,6 +59,10 @@ export interface DockerConfig {
|
|
|
40
59
|
memoryBytes: number;
|
|
41
60
|
/** CPU shares (relative weight) */
|
|
42
61
|
cpuShares?: number;
|
|
62
|
+
/** CPU period in microseconds (for hard CPU limits) */
|
|
63
|
+
cpuPeriod?: number;
|
|
64
|
+
/** CPU quota in microseconds per period (for hard CPU limits) */
|
|
65
|
+
cpuQuota?: number;
|
|
43
66
|
/** Container user as "UID:GID" string */
|
|
44
67
|
user: string;
|
|
45
68
|
/** Maximum containers to keep per agent */
|
|
@@ -50,6 +73,16 @@ export interface DockerConfig {
|
|
|
50
73
|
workspaceMode: VolumeMode;
|
|
51
74
|
/** Environment variables to pass to the container */
|
|
52
75
|
env: Record<string, string>;
|
|
76
|
+
/** Port bindings */
|
|
77
|
+
ports: PortBinding[];
|
|
78
|
+
/** Tmpfs mounts */
|
|
79
|
+
tmpfs: TmpfsMount[];
|
|
80
|
+
/** Maximum number of processes (PIDs) */
|
|
81
|
+
pidsLimit?: number;
|
|
82
|
+
/** Container labels */
|
|
83
|
+
labels: Record<string, string>;
|
|
84
|
+
/** Raw dockerode HostConfig passthrough (fleet-level only) */
|
|
85
|
+
hostConfigOverride?: HostConfig;
|
|
53
86
|
}
|
|
54
87
|
/**
|
|
55
88
|
* Default Docker image for Claude Code containers
|
|
@@ -74,6 +107,22 @@ export declare const DEFAULT_MAX_CONTAINERS = 5;
|
|
|
74
107
|
* @throws Error if format is invalid
|
|
75
108
|
*/
|
|
76
109
|
export declare function parseMemoryToBytes(memory: string): number;
|
|
110
|
+
/**
|
|
111
|
+
* Parse port binding string to PortBinding
|
|
112
|
+
*
|
|
113
|
+
* @param port - Port string in format "hostPort:containerPort" or "containerPort"
|
|
114
|
+
* @returns PortBinding object
|
|
115
|
+
* @throws Error if format is invalid
|
|
116
|
+
*/
|
|
117
|
+
export declare function parsePortBinding(port: string): PortBinding;
|
|
118
|
+
/**
|
|
119
|
+
* Parse tmpfs mount string to TmpfsMount
|
|
120
|
+
*
|
|
121
|
+
* @param tmpfs - Tmpfs string in format "/path" or "/path:options"
|
|
122
|
+
* @returns TmpfsMount object
|
|
123
|
+
* @throws Error if format is invalid
|
|
124
|
+
*/
|
|
125
|
+
export declare function parseTmpfsMount(tmpfs: string): TmpfsMount;
|
|
77
126
|
/**
|
|
78
127
|
* Parse volume mount string to PathMapping
|
|
79
128
|
*
|
|
@@ -89,12 +138,14 @@ export declare function parseVolumeMount(volume: string): PathMapping;
|
|
|
89
138
|
*/
|
|
90
139
|
export declare function getHostUser(): string;
|
|
91
140
|
/**
|
|
92
|
-
* Resolve Docker config from agent configuration
|
|
141
|
+
* Resolve Docker config from fleet/agent configuration
|
|
93
142
|
*
|
|
94
143
|
* Applies defaults and parses string values to typed equivalents.
|
|
144
|
+
* After agent and fleet configs are merged, the result may include
|
|
145
|
+
* fleet-level options (image, network, volumes, etc.) and host_config.
|
|
95
146
|
*
|
|
96
|
-
* @param docker - Docker configuration
|
|
147
|
+
* @param docker - Docker configuration (merged agent + fleet config)
|
|
97
148
|
* @returns Fully resolved DockerConfig
|
|
98
149
|
*/
|
|
99
|
-
export declare function resolveDockerConfig(docker?:
|
|
150
|
+
export declare function resolveDockerConfig(docker?: FleetDockerInput): DockerConfig;
|
|
100
151
|
//# sourceMappingURL=docker-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-config.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/docker-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"docker-config.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/docker-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAC;IACnB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,OAAO,EAAE,WAAW,CAAC;IACrB,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,2BAA2B;IAC3B,aAAa,EAAE,UAAU,CAAC;IAC1B,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,oBAAoB;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,mBAAmB;IACnB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,UAAU,CAAC;CACjC;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBzD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAkB1D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAYzD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAoB5D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAKpC;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,YAAY,CAqB3E"}
|
|
@@ -42,6 +42,44 @@ export function parseMemoryToBytes(memory) {
|
|
|
42
42
|
};
|
|
43
43
|
return Math.floor(value * multipliers[unit]);
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Parse port binding string to PortBinding
|
|
47
|
+
*
|
|
48
|
+
* @param port - Port string in format "hostPort:containerPort" or "containerPort"
|
|
49
|
+
* @returns PortBinding object
|
|
50
|
+
* @throws Error if format is invalid
|
|
51
|
+
*/
|
|
52
|
+
export function parsePortBinding(port) {
|
|
53
|
+
const parts = port.split(":");
|
|
54
|
+
if (parts.length === 1) {
|
|
55
|
+
// Just container port - use same port on host
|
|
56
|
+
const containerPort = parseInt(parts[0], 10);
|
|
57
|
+
return { hostPort: containerPort, containerPort };
|
|
58
|
+
}
|
|
59
|
+
if (parts.length === 2) {
|
|
60
|
+
const hostPort = parseInt(parts[0], 10);
|
|
61
|
+
const containerPort = parseInt(parts[1], 10);
|
|
62
|
+
return { hostPort, containerPort };
|
|
63
|
+
}
|
|
64
|
+
throw new Error(`Invalid port format: "${port}". Use "hostPort:containerPort" or "containerPort".`);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Parse tmpfs mount string to TmpfsMount
|
|
68
|
+
*
|
|
69
|
+
* @param tmpfs - Tmpfs string in format "/path" or "/path:options"
|
|
70
|
+
* @returns TmpfsMount object
|
|
71
|
+
* @throws Error if format is invalid
|
|
72
|
+
*/
|
|
73
|
+
export function parseTmpfsMount(tmpfs) {
|
|
74
|
+
const colonIndex = tmpfs.indexOf(":");
|
|
75
|
+
if (colonIndex === -1) {
|
|
76
|
+
// Just path, no options
|
|
77
|
+
return { path: tmpfs };
|
|
78
|
+
}
|
|
79
|
+
const path = tmpfs.slice(0, colonIndex);
|
|
80
|
+
const options = tmpfs.slice(colonIndex + 1);
|
|
81
|
+
return { path, options };
|
|
82
|
+
}
|
|
45
83
|
/**
|
|
46
84
|
* Parse volume mount string to PathMapping
|
|
47
85
|
*
|
|
@@ -73,11 +111,13 @@ export function getHostUser() {
|
|
|
73
111
|
return `${uid}:${gid}`;
|
|
74
112
|
}
|
|
75
113
|
/**
|
|
76
|
-
* Resolve Docker config from agent configuration
|
|
114
|
+
* Resolve Docker config from fleet/agent configuration
|
|
77
115
|
*
|
|
78
116
|
* Applies defaults and parses string values to typed equivalents.
|
|
117
|
+
* After agent and fleet configs are merged, the result may include
|
|
118
|
+
* fleet-level options (image, network, volumes, etc.) and host_config.
|
|
79
119
|
*
|
|
80
|
-
* @param docker - Docker configuration
|
|
120
|
+
* @param docker - Docker configuration (merged agent + fleet config)
|
|
81
121
|
* @returns Fully resolved DockerConfig
|
|
82
122
|
*/
|
|
83
123
|
export function resolveDockerConfig(docker) {
|
|
@@ -88,11 +128,18 @@ export function resolveDockerConfig(docker) {
|
|
|
88
128
|
network: docker?.network ?? "bridge",
|
|
89
129
|
memoryBytes: parseMemoryToBytes(docker?.memory ?? DEFAULT_MEMORY_LIMIT),
|
|
90
130
|
cpuShares: docker?.cpu_shares,
|
|
131
|
+
cpuPeriod: docker?.cpu_period,
|
|
132
|
+
cpuQuota: docker?.cpu_quota,
|
|
91
133
|
user: docker?.user ?? getHostUser(),
|
|
92
134
|
maxContainers: docker?.max_containers ?? DEFAULT_MAX_CONTAINERS,
|
|
93
135
|
volumes: docker?.volumes?.map(parseVolumeMount) ?? [],
|
|
94
136
|
workspaceMode: docker?.workspace_mode ?? "rw",
|
|
95
137
|
env: docker?.env ?? {},
|
|
138
|
+
ports: docker?.ports?.map(parsePortBinding) ?? [],
|
|
139
|
+
tmpfs: docker?.tmpfs?.map(parseTmpfsMount) ?? [],
|
|
140
|
+
pidsLimit: docker?.pids_limit,
|
|
141
|
+
labels: docker?.labels ?? {},
|
|
142
|
+
hostConfigOverride: docker?.host_config,
|
|
96
143
|
};
|
|
97
144
|
}
|
|
98
145
|
//# sourceMappingURL=docker-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-config.js","sourceRoot":"","sources":["../../../src/runner/runtime/docker-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"docker-config.js","sourceRoot":"","sources":["../../../src/runner/runtime/docker-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-adapter.d.ts","sourceRoot":"","sources":["../../src/runner/sdk-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EAChB,MAAM,YAAY,CAAC;AA2BpB;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,kBAAkB,CAuBxE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,GAChD,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAYpC;AAMD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAWvE;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,kBAAuB,GAC/B,eAAe,
|
|
1
|
+
{"version":3,"file":"sdk-adapter.d.ts","sourceRoot":"","sources":["../../src/runner/sdk-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EAChB,MAAM,YAAY,CAAC;AA2BpB;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,kBAAkB,CAuBxE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,GAChD,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAYpC;AAMD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAWvE;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,kBAAuB,GAC/B,eAAe,CAoEjB"}
|
|
@@ -112,27 +112,13 @@ export function buildSystemPrompt(agent) {
|
|
|
112
112
|
export function toSDKOptions(agent, options = {}) {
|
|
113
113
|
const result = {};
|
|
114
114
|
// Permission mode (defaults to acceptEdits)
|
|
115
|
-
result.permissionMode =
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
if (agent.
|
|
121
|
-
result.
|
|
122
|
-
}
|
|
123
|
-
if (agent.permissions?.denied_tools?.length) {
|
|
124
|
-
result.deniedTools = agent.permissions.denied_tools;
|
|
125
|
-
}
|
|
126
|
-
// Bash permissions - transform to Bash() patterns
|
|
127
|
-
// Transform allowed_commands into Bash(command *) patterns
|
|
128
|
-
if (agent.permissions?.bash?.allowed_commands?.length) {
|
|
129
|
-
const bashPatterns = agent.permissions.bash.allowed_commands.map((cmd) => `Bash(${cmd} *)`);
|
|
130
|
-
result.allowedTools = [...(result.allowedTools || []), ...bashPatterns];
|
|
131
|
-
}
|
|
132
|
-
// Transform denied_patterns into Bash(pattern) patterns
|
|
133
|
-
if (agent.permissions?.bash?.denied_patterns?.length) {
|
|
134
|
-
const bashDeniedPatterns = agent.permissions.bash.denied_patterns.map((pattern) => `Bash(${pattern})`);
|
|
135
|
-
result.deniedTools = [...(result.deniedTools || []), ...bashDeniedPatterns];
|
|
115
|
+
result.permissionMode = agent.permission_mode ?? DEFAULT_PERMISSION_MODE;
|
|
116
|
+
// Allowed and denied tools (direct passthrough to SDK)
|
|
117
|
+
if (agent.allowed_tools?.length) {
|
|
118
|
+
result.allowedTools = agent.allowed_tools;
|
|
119
|
+
}
|
|
120
|
+
if (agent.denied_tools?.length) {
|
|
121
|
+
result.deniedTools = agent.denied_tools;
|
|
136
122
|
}
|
|
137
123
|
// System prompt
|
|
138
124
|
result.systemPrompt = buildSystemPrompt(agent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-adapter.js","sourceRoot":"","sources":["../../src/runner/sdk-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;GAEG;AACH,MAAM,uBAAuB,GAAG,aAAsB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,uBAAuB,GAAa,EAAE,CAAC;AAE7C;;GAEG;AACH,MAAM,cAAc,GAAG,aAAa,CAAC;AAErC,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,wBAAwB;IACxB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;QACrB,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAiD;IAEjD,MAAM,MAAM,GAAuC,EAAE,CAAC;IAEtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAoB;IACpD,mEAAmE;IACnE,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,aAAa,CAAC;IAC7B,CAAC;IAED,gCAAgC;IAChC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,aAAa;KACtB,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAoB,EACpB,UAA8B,EAAE;IAEhC,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,4CAA4C;IAC5C,MAAM,CAAC,cAAc
|
|
1
|
+
{"version":3,"file":"sdk-adapter.js","sourceRoot":"","sources":["../../src/runner/sdk-adapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@herdctl/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Core library for herdctl fleet management",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"zod": "^3.22.0"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@herdctl/discord": "0.1.
|
|
23
|
+
"@herdctl/discord": "0.1.8"
|
|
24
24
|
},
|
|
25
25
|
"peerDependenciesMeta": {
|
|
26
26
|
"@herdctl/discord": {
|