@workplane/core 0.3.1
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/index.d.ts +67 -0
- package/dist/index.js +171 -0
- package/dist/index.js.map +1 -0
- package/package.json +35 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { IncomingMessage } from 'node:http';
|
|
2
|
+
|
|
3
|
+
declare function parseBearerToken(authorizationHeader: string | undefined): string | undefined;
|
|
4
|
+
declare function isAuthorizedBearer(provided: string | undefined, expected: string | undefined): boolean;
|
|
5
|
+
declare function getRequestBearer(req: IncomingMessage): string | undefined;
|
|
6
|
+
declare function authHeaders(token: string | undefined): Record<string, string>;
|
|
7
|
+
|
|
8
|
+
declare function hasRequiredCapabilities(nodeCapabilities: string[], requiredCapabilities: string[]): boolean;
|
|
9
|
+
|
|
10
|
+
interface ServerConfig {
|
|
11
|
+
databaseUrl: string;
|
|
12
|
+
port: number;
|
|
13
|
+
nodeToken?: string;
|
|
14
|
+
operatorToken?: string;
|
|
15
|
+
envAllowlist: string[];
|
|
16
|
+
}
|
|
17
|
+
interface NodeConfig {
|
|
18
|
+
serverUrl: string;
|
|
19
|
+
nodeName: string;
|
|
20
|
+
nodeId?: string;
|
|
21
|
+
nodeCapabilities: string[];
|
|
22
|
+
nodeToken?: string;
|
|
23
|
+
pollIntervalMs: number;
|
|
24
|
+
envAllowlist: string[];
|
|
25
|
+
}
|
|
26
|
+
declare function loadServerConfig(env?: NodeJS.ProcessEnv): ServerConfig;
|
|
27
|
+
declare function loadNodeConfig(env?: NodeJS.ProcessEnv): NodeConfig;
|
|
28
|
+
declare function parseCsv(value: string): string[];
|
|
29
|
+
|
|
30
|
+
declare function loadLocalEnv(): void;
|
|
31
|
+
|
|
32
|
+
interface GitExecContext {
|
|
33
|
+
workspacePath: string;
|
|
34
|
+
runId: string;
|
|
35
|
+
log: (stream: "stdout" | "stderr" | "system", message: string, stepName?: string) => Promise<void>;
|
|
36
|
+
exec: (command: string, args?: string[], options?: {
|
|
37
|
+
cwd?: string;
|
|
38
|
+
}) => Promise<{
|
|
39
|
+
exitCode: number;
|
|
40
|
+
stdout: string;
|
|
41
|
+
stderr: string;
|
|
42
|
+
}>;
|
|
43
|
+
ensureWorkspace: (...segments: string[]) => Promise<string>;
|
|
44
|
+
emitArtifact: (input: {
|
|
45
|
+
type: string;
|
|
46
|
+
name: string;
|
|
47
|
+
path: string;
|
|
48
|
+
metadata?: Record<string, unknown>;
|
|
49
|
+
}) => Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
declare function repoPath(workspacePath: string): string;
|
|
52
|
+
declare function createTaskBranch(context: GitExecContext, branchName: string): Promise<void>;
|
|
53
|
+
declare function defaultTaskBranchName(runId: string): string;
|
|
54
|
+
declare function captureGitDiff(context: GitExecContext, adapterName: string, artifactName?: string): Promise<string>;
|
|
55
|
+
|
|
56
|
+
interface WorkplaneHttpOptions {
|
|
57
|
+
method?: string;
|
|
58
|
+
body?: unknown;
|
|
59
|
+
nodeToken?: string;
|
|
60
|
+
operatorToken?: string;
|
|
61
|
+
}
|
|
62
|
+
declare function buildWorkplaneHeaders(options?: WorkplaneHttpOptions): Record<string, string>;
|
|
63
|
+
declare function workplaneFetch<T>(serverUrl: string, path: string, options?: WorkplaneHttpOptions): Promise<T>;
|
|
64
|
+
|
|
65
|
+
declare function makeId(prefix: string): string;
|
|
66
|
+
|
|
67
|
+
export { type GitExecContext, type NodeConfig, type ServerConfig, type WorkplaneHttpOptions, authHeaders, buildWorkplaneHeaders, captureGitDiff, createTaskBranch, defaultTaskBranchName, getRequestBearer, hasRequiredCapabilities, isAuthorizedBearer, loadLocalEnv, loadNodeConfig, loadServerConfig, makeId, parseBearerToken, parseCsv, repoPath, workplaneFetch };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
// src/auth.ts
|
|
2
|
+
function parseBearerToken(authorizationHeader) {
|
|
3
|
+
if (!authorizationHeader) {
|
|
4
|
+
return void 0;
|
|
5
|
+
}
|
|
6
|
+
const match = /^Bearer\s+(.+)$/i.exec(authorizationHeader.trim());
|
|
7
|
+
return match?.[1];
|
|
8
|
+
}
|
|
9
|
+
function isAuthorizedBearer(provided, expected) {
|
|
10
|
+
if (!expected) {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
if (!provided) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
return provided === expected;
|
|
17
|
+
}
|
|
18
|
+
function getRequestBearer(req) {
|
|
19
|
+
const header = req.headers.authorization;
|
|
20
|
+
const value = Array.isArray(header) ? header[0] : header;
|
|
21
|
+
return parseBearerToken(value);
|
|
22
|
+
}
|
|
23
|
+
function authHeaders(token) {
|
|
24
|
+
if (!token) {
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
return { authorization: `Bearer ${token}` };
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// src/capabilities.ts
|
|
31
|
+
function hasRequiredCapabilities(nodeCapabilities, requiredCapabilities) {
|
|
32
|
+
const capabilitySet = new Set(nodeCapabilities);
|
|
33
|
+
return requiredCapabilities.every((capability) => capabilitySet.has(capability));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// src/config.ts
|
|
37
|
+
import { z } from "zod";
|
|
38
|
+
|
|
39
|
+
// src/env.ts
|
|
40
|
+
import { config as dotenvConfig } from "dotenv";
|
|
41
|
+
var envLoaded = false;
|
|
42
|
+
function loadLocalEnv() {
|
|
43
|
+
if (envLoaded) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
dotenvConfig({ path: ".env" });
|
|
47
|
+
dotenvConfig({ path: ".env.local", override: true });
|
|
48
|
+
envLoaded = true;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// src/config.ts
|
|
52
|
+
loadLocalEnv();
|
|
53
|
+
var serverEnvSchema = z.object({
|
|
54
|
+
DATABASE_URL: z.string().min(1),
|
|
55
|
+
WORKPLANE_SERVER_PORT: z.string().optional().default("8787").transform((value) => Number.parseInt(value, 10)),
|
|
56
|
+
WORKPLANE_NODE_TOKEN: z.string().optional(),
|
|
57
|
+
WORKPLANE_OPERATOR_TOKEN: z.string().optional(),
|
|
58
|
+
WORKPLANE_ENV_ALLOWLIST: z.string().optional()
|
|
59
|
+
});
|
|
60
|
+
var nodeEnvSchema = z.object({
|
|
61
|
+
WORKPLANE_SERVER_URL: z.string().url().optional().default("http://localhost:8787"),
|
|
62
|
+
WORKPLANE_NODE_NAME: z.string().optional().default("local-node-1"),
|
|
63
|
+
WORKPLANE_NODE_ID: z.string().optional(),
|
|
64
|
+
WORKPLANE_NODE_CAPABILITIES: z.string().optional().default("shell,git,node,typescript,aider,ollama,codex,claude-code"),
|
|
65
|
+
WORKPLANE_NODE_TOKEN: z.string().optional(),
|
|
66
|
+
WORKPLANE_POLL_INTERVAL_MS: z.string().optional().default("3000").transform((value) => Number.parseInt(value, 10)),
|
|
67
|
+
WORKPLANE_ENV_ALLOWLIST: z.string().optional()
|
|
68
|
+
});
|
|
69
|
+
function loadServerConfig(env = process.env) {
|
|
70
|
+
const parsed = serverEnvSchema.parse(env);
|
|
71
|
+
return {
|
|
72
|
+
databaseUrl: parsed.DATABASE_URL,
|
|
73
|
+
port: parsed.WORKPLANE_SERVER_PORT,
|
|
74
|
+
nodeToken: parsed.WORKPLANE_NODE_TOKEN,
|
|
75
|
+
operatorToken: parsed.WORKPLANE_OPERATOR_TOKEN,
|
|
76
|
+
envAllowlist: parseCsv(parsed.WORKPLANE_ENV_ALLOWLIST ?? "")
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function loadNodeConfig(env = process.env) {
|
|
80
|
+
const parsed = nodeEnvSchema.parse(env);
|
|
81
|
+
return {
|
|
82
|
+
serverUrl: parsed.WORKPLANE_SERVER_URL,
|
|
83
|
+
nodeName: parsed.WORKPLANE_NODE_NAME,
|
|
84
|
+
nodeId: parsed.WORKPLANE_NODE_ID,
|
|
85
|
+
nodeCapabilities: parseCsv(parsed.WORKPLANE_NODE_CAPABILITIES),
|
|
86
|
+
nodeToken: parsed.WORKPLANE_NODE_TOKEN,
|
|
87
|
+
pollIntervalMs: parsed.WORKPLANE_POLL_INTERVAL_MS,
|
|
88
|
+
envAllowlist: parseCsv(parsed.WORKPLANE_ENV_ALLOWLIST ?? "")
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function parseCsv(value) {
|
|
92
|
+
return value.split(",").map((entry) => entry.trim()).filter(Boolean);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// src/git.ts
|
|
96
|
+
import { join } from "path";
|
|
97
|
+
function repoPath(workspacePath) {
|
|
98
|
+
return join(workspacePath, "repo");
|
|
99
|
+
}
|
|
100
|
+
async function createTaskBranch(context, branchName) {
|
|
101
|
+
const cwd = repoPath(context.workspacePath);
|
|
102
|
+
await context.log("system", `creating branch ${branchName}`, "git-branch");
|
|
103
|
+
const checkout = await context.exec("git", ["checkout", "-b", branchName], { cwd });
|
|
104
|
+
if (checkout.exitCode !== 0) {
|
|
105
|
+
throw new Error(`git checkout -b failed with exit code ${checkout.exitCode}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function defaultTaskBranchName(runId) {
|
|
109
|
+
return `workplane/${runId}`;
|
|
110
|
+
}
|
|
111
|
+
async function captureGitDiff(context, adapterName, artifactName = "changes.diff") {
|
|
112
|
+
const cwd = repoPath(context.workspacePath);
|
|
113
|
+
const diffResult = await context.exec("git", ["diff"], { cwd });
|
|
114
|
+
const artifactsPath = await context.ensureWorkspace("artifacts");
|
|
115
|
+
const diffPath = join(artifactsPath, artifactName);
|
|
116
|
+
const { writeFile } = await import("fs/promises");
|
|
117
|
+
await writeFile(diffPath, diffResult.stdout, "utf8");
|
|
118
|
+
await context.emitArtifact({
|
|
119
|
+
type: "diff",
|
|
120
|
+
name: artifactName,
|
|
121
|
+
path: diffPath,
|
|
122
|
+
metadata: { adapter: adapterName }
|
|
123
|
+
});
|
|
124
|
+
return diffPath;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// src/http-client.ts
|
|
128
|
+
function buildWorkplaneHeaders(options = {}) {
|
|
129
|
+
const token = options.nodeToken ?? options.operatorToken;
|
|
130
|
+
return {
|
|
131
|
+
"content-type": "application/json",
|
|
132
|
+
...authHeaders(token)
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
async function workplaneFetch(serverUrl, path, options = {}) {
|
|
136
|
+
const response = await fetch(`${serverUrl}${path}`, {
|
|
137
|
+
method: options.method ?? "GET",
|
|
138
|
+
headers: buildWorkplaneHeaders(options),
|
|
139
|
+
body: options.body ? JSON.stringify(options.body) : void 0
|
|
140
|
+
});
|
|
141
|
+
if (!response.ok) {
|
|
142
|
+
const text = await response.text();
|
|
143
|
+
throw new Error(`${response.status} ${response.statusText} from ${path}: ${text}`);
|
|
144
|
+
}
|
|
145
|
+
return await response.json();
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// src/ids.ts
|
|
149
|
+
import { randomUUID } from "crypto";
|
|
150
|
+
function makeId(prefix) {
|
|
151
|
+
return `${prefix}_${randomUUID().replace(/-/g, "").slice(0, 12)}`;
|
|
152
|
+
}
|
|
153
|
+
export {
|
|
154
|
+
authHeaders,
|
|
155
|
+
buildWorkplaneHeaders,
|
|
156
|
+
captureGitDiff,
|
|
157
|
+
createTaskBranch,
|
|
158
|
+
defaultTaskBranchName,
|
|
159
|
+
getRequestBearer,
|
|
160
|
+
hasRequiredCapabilities,
|
|
161
|
+
isAuthorizedBearer,
|
|
162
|
+
loadLocalEnv,
|
|
163
|
+
loadNodeConfig,
|
|
164
|
+
loadServerConfig,
|
|
165
|
+
makeId,
|
|
166
|
+
parseBearerToken,
|
|
167
|
+
parseCsv,
|
|
168
|
+
repoPath,
|
|
169
|
+
workplaneFetch
|
|
170
|
+
};
|
|
171
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/auth.ts","../src/capabilities.ts","../src/config.ts","../src/env.ts","../src/git.ts","../src/http-client.ts","../src/ids.ts"],"sourcesContent":["import type { IncomingMessage } from \"node:http\";\n\nexport function parseBearerToken(authorizationHeader: string | undefined): string | undefined {\n if (!authorizationHeader) {\n return undefined;\n }\n const match = /^Bearer\\s+(.+)$/i.exec(authorizationHeader.trim());\n return match?.[1];\n}\n\nexport function isAuthorizedBearer(provided: string | undefined, expected: string | undefined): boolean {\n if (!expected) {\n return true;\n }\n if (!provided) {\n return false;\n }\n return provided === expected;\n}\n\nexport function getRequestBearer(req: IncomingMessage): string | undefined {\n const header = req.headers.authorization;\n const value = Array.isArray(header) ? header[0] : header;\n return parseBearerToken(value);\n}\n\nexport function authHeaders(token: string | undefined): Record<string, string> {\n if (!token) {\n return {};\n }\n return { authorization: `Bearer ${token}` };\n}\n","export function hasRequiredCapabilities(\n nodeCapabilities: string[],\n requiredCapabilities: string[],\n): boolean {\n const capabilitySet = new Set(nodeCapabilities);\n return requiredCapabilities.every((capability) => capabilitySet.has(capability));\n}\n\n","import { z } from \"zod\";\nimport { loadLocalEnv } from \"./env.js\";\n\nloadLocalEnv();\n\nconst serverEnvSchema = z.object({\n DATABASE_URL: z.string().min(1),\n WORKPLANE_SERVER_PORT: z\n .string()\n .optional()\n .default(\"8787\")\n .transform((value) => Number.parseInt(value, 10)),\n WORKPLANE_NODE_TOKEN: z.string().optional(),\n WORKPLANE_OPERATOR_TOKEN: z.string().optional(),\n WORKPLANE_ENV_ALLOWLIST: z.string().optional(),\n});\n\nconst nodeEnvSchema = z.object({\n WORKPLANE_SERVER_URL: z.string().url().optional().default(\"http://localhost:8787\"),\n WORKPLANE_NODE_NAME: z.string().optional().default(\"local-node-1\"),\n WORKPLANE_NODE_ID: z.string().optional(),\n WORKPLANE_NODE_CAPABILITIES: z\n .string()\n .optional()\n .default(\"shell,git,node,typescript,aider,ollama,codex,claude-code\"),\n WORKPLANE_NODE_TOKEN: z.string().optional(),\n WORKPLANE_POLL_INTERVAL_MS: z\n .string()\n .optional()\n .default(\"3000\")\n .transform((value) => Number.parseInt(value, 10)),\n WORKPLANE_ENV_ALLOWLIST: z.string().optional(),\n});\n\nexport interface ServerConfig {\n databaseUrl: string;\n port: number;\n nodeToken?: string;\n operatorToken?: string;\n envAllowlist: string[];\n}\n\nexport interface NodeConfig {\n serverUrl: string;\n nodeName: string;\n nodeId?: string;\n nodeCapabilities: string[];\n nodeToken?: string;\n pollIntervalMs: number;\n envAllowlist: string[];\n}\n\nexport function loadServerConfig(env: NodeJS.ProcessEnv = process.env): ServerConfig {\n const parsed = serverEnvSchema.parse(env);\n\n return {\n databaseUrl: parsed.DATABASE_URL,\n port: parsed.WORKPLANE_SERVER_PORT,\n nodeToken: parsed.WORKPLANE_NODE_TOKEN,\n operatorToken: parsed.WORKPLANE_OPERATOR_TOKEN,\n envAllowlist: parseCsv(parsed.WORKPLANE_ENV_ALLOWLIST ?? \"\"),\n };\n}\n\nexport function loadNodeConfig(env: NodeJS.ProcessEnv = process.env): NodeConfig {\n const parsed = nodeEnvSchema.parse(env);\n\n return {\n serverUrl: parsed.WORKPLANE_SERVER_URL,\n nodeName: parsed.WORKPLANE_NODE_NAME,\n nodeId: parsed.WORKPLANE_NODE_ID,\n nodeCapabilities: parseCsv(parsed.WORKPLANE_NODE_CAPABILITIES),\n nodeToken: parsed.WORKPLANE_NODE_TOKEN,\n pollIntervalMs: parsed.WORKPLANE_POLL_INTERVAL_MS,\n envAllowlist: parseCsv(parsed.WORKPLANE_ENV_ALLOWLIST ?? \"\"),\n };\n}\n\nexport function parseCsv(value: string): string[] {\n return value\n .split(\",\")\n .map((entry) => entry.trim())\n .filter(Boolean);\n}\n","import { config as dotenvConfig } from \"dotenv\";\n\nlet envLoaded = false;\n\nexport function loadLocalEnv(): void {\n if (envLoaded) {\n return;\n }\n\n dotenvConfig({ path: \".env\" });\n dotenvConfig({ path: \".env.local\", override: true });\n\n envLoaded = true;\n}\n\n","import { join } from \"node:path\";\n\nexport interface GitExecContext {\n workspacePath: string;\n runId: string;\n log: (stream: \"stdout\" | \"stderr\" | \"system\", message: string, stepName?: string) => Promise<void>;\n exec: (\n command: string,\n args?: string[],\n options?: { cwd?: string },\n ) => Promise<{ exitCode: number; stdout: string; stderr: string }>;\n ensureWorkspace: (...segments: string[]) => Promise<string>;\n emitArtifact: (input: {\n type: string;\n name: string;\n path: string;\n metadata?: Record<string, unknown>;\n }) => Promise<void>;\n}\n\nexport function repoPath(workspacePath: string): string {\n return join(workspacePath, \"repo\");\n}\n\nexport async function createTaskBranch(context: GitExecContext, branchName: string): Promise<void> {\n const cwd = repoPath(context.workspacePath);\n await context.log(\"system\", `creating branch ${branchName}`, \"git-branch\");\n const checkout = await context.exec(\"git\", [\"checkout\", \"-b\", branchName], { cwd });\n if (checkout.exitCode !== 0) {\n throw new Error(`git checkout -b failed with exit code ${checkout.exitCode}`);\n }\n}\n\nexport function defaultTaskBranchName(runId: string): string {\n return `workplane/${runId}`;\n}\n\nexport async function captureGitDiff(\n context: GitExecContext,\n adapterName: string,\n artifactName = \"changes.diff\",\n): Promise<string> {\n const cwd = repoPath(context.workspacePath);\n const diffResult = await context.exec(\"git\", [\"diff\"], { cwd });\n const artifactsPath = await context.ensureWorkspace(\"artifacts\");\n const diffPath = join(artifactsPath, artifactName);\n const { writeFile } = await import(\"node:fs/promises\");\n await writeFile(diffPath, diffResult.stdout, \"utf8\");\n await context.emitArtifact({\n type: \"diff\",\n name: artifactName,\n path: diffPath,\n metadata: { adapter: adapterName },\n });\n return diffPath;\n}\n","import { authHeaders } from \"./auth.js\";\n\nexport interface WorkplaneHttpOptions {\n method?: string;\n body?: unknown;\n nodeToken?: string;\n operatorToken?: string;\n}\n\nexport function buildWorkplaneHeaders(options: WorkplaneHttpOptions = {}): Record<string, string> {\n const token = options.nodeToken ?? options.operatorToken;\n return {\n \"content-type\": \"application/json\",\n ...authHeaders(token),\n };\n}\n\nexport async function workplaneFetch<T>(\n serverUrl: string,\n path: string,\n options: WorkplaneHttpOptions = {},\n): Promise<T> {\n const response = await fetch(`${serverUrl}${path}`, {\n method: options.method ?? \"GET\",\n headers: buildWorkplaneHeaders(options),\n body: options.body ? JSON.stringify(options.body) : undefined,\n });\n\n if (!response.ok) {\n const text = await response.text();\n throw new Error(`${response.status} ${response.statusText} from ${path}: ${text}`);\n }\n\n return (await response.json()) as T;\n}\n","import { randomUUID } from \"node:crypto\";\n\nexport function makeId(prefix: string): string {\n return `${prefix}_${randomUUID().replace(/-/g, \"\").slice(0, 12)}`;\n}\n\n"],"mappings":"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","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@workplane/core",
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/MindStaq/workplane.git"
|
|
10
|
+
},
|
|
11
|
+
"main": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md"
|
|
22
|
+
],
|
|
23
|
+
"sideEffects": false,
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public",
|
|
26
|
+
"registry": "https://registry.npmjs.org/"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"dotenv": "^16.6.1",
|
|
30
|
+
"zod": "^3.25.56"
|
|
31
|
+
},
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "tsup"
|
|
34
|
+
}
|
|
35
|
+
}
|