@workflow-code/cli 0.2.0 → 0.2.3-20260901001
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/chunk-27OW6OJ3.js +276 -0
- package/dist/chunk-DPFPLLLT.js +66 -0
- package/dist/chunk-HZABRDJK.js +169 -0
- package/dist/chunk-NSPRIPOP.js +36 -0
- package/dist/chunk-OLNPMIEF.js +14 -0
- package/dist/chunk-PGM3IPWA.js +174 -0
- package/dist/{chunk-GFSYSMR6.js → chunk-TCYG46PO.js} +692 -484
- package/dist/index.js +19 -4
- package/dist/{local-JWDHJRIM.js → local-R4Q7NLP6.js} +52 -14
- package/dist/mcp-PNIRX64G.js +26643 -0
- package/dist/openai-responses-runner-2MPK3UAP.js +210 -0
- package/dist/openai-runner-stdio-ZQJG73I4.js +8 -0
- package/dist/{workspace-2W43PINC.js → workspace-4DAJK3ZR.js} +448 -468
- package/package.json +14 -8
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// .shared/auth-config/index.ts
|
|
4
|
+
var WORKFLOW_AUTH_FILE_NAME = "workflow-auth.json";
|
|
5
|
+
var WORKFLOW_DESKTOP_CONFIG_FILE_NAME = "workflow-desktop.json";
|
|
6
|
+
var DEFAULT_MAC_PLATFORM = "darwin";
|
|
7
|
+
var DEFAULT_WINDOWS_PLATFORM = "win32";
|
|
8
|
+
var DEFAULT_OTHER_PLATFORM = "linux";
|
|
9
|
+
function createEmptyWorkflowAuthConfig() {
|
|
10
|
+
return {
|
|
11
|
+
serverUrl: "",
|
|
12
|
+
apiKey: ""
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function normalizeWorkflowAuthConfig(value) {
|
|
16
|
+
if (!isRecord(value)) {
|
|
17
|
+
return createEmptyWorkflowAuthConfig();
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
// Accept legacy field names (remoteUrl, token) from pre-migration
|
|
21
|
+
// config files so existing users don't lose their credentials on upgrade.
|
|
22
|
+
serverUrl: readString(value.serverUrl) ?? readString(value.remoteUrl) ?? "",
|
|
23
|
+
apiKey: readString(value.apiKey) ?? readString(value.token) ?? "",
|
|
24
|
+
expiresAt: readString(value.expiresAt),
|
|
25
|
+
user: isRecord(value.user) ? {
|
|
26
|
+
userId: readString(value.user.userId) ?? "",
|
|
27
|
+
email: readString(value.user.email) ?? "",
|
|
28
|
+
displayName: readString(value.user.displayName) ?? "",
|
|
29
|
+
avatarUrl: readString(value.user.avatarUrl)
|
|
30
|
+
} : void 0,
|
|
31
|
+
source: value.source === "device_flow" || value.source === "manual" || value.source === "password" ? value.source : void 0
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function isWorkflowAuthConfigLoggedIn(config) {
|
|
35
|
+
return config.serverUrl.trim() !== "" && config.apiKey.trim() !== "";
|
|
36
|
+
}
|
|
37
|
+
function isWorkflowAuthExpiringSoon(expiresAt, options = {}) {
|
|
38
|
+
if (!expiresAt) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
const expiresAtMs = new Date(expiresAt).getTime();
|
|
42
|
+
if (!Number.isFinite(expiresAtMs)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
const now = options.now ?? Date.now();
|
|
46
|
+
const thresholdMs = options.thresholdMs ?? 1e3 * 60 * 60 * 24 * 3;
|
|
47
|
+
return expiresAtMs - now <= thresholdMs;
|
|
48
|
+
}
|
|
49
|
+
function resolveWorkflowCliAuthDir(env = readProcessEnv()) {
|
|
50
|
+
if (readString(env.WORKFLOW_CLI_AUTH_DIR)) {
|
|
51
|
+
return normalizePath(env.WORKFLOW_CLI_AUTH_DIR);
|
|
52
|
+
}
|
|
53
|
+
if (readPlatform(env) === DEFAULT_WINDOWS_PLATFORM) {
|
|
54
|
+
return joinPath(
|
|
55
|
+
env.APPDATA ?? joinPath(resolveHomeDir(env), "AppData", "Roaming"),
|
|
56
|
+
"workflow-code"
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
if (readPlatform(env) === DEFAULT_MAC_PLATFORM) {
|
|
60
|
+
return joinPath(resolveHomeDir(env), "Library", "Application Support", "workflow-code");
|
|
61
|
+
}
|
|
62
|
+
return joinPath(
|
|
63
|
+
env.XDG_CONFIG_HOME ?? joinPath(resolveHomeDir(env), ".config"),
|
|
64
|
+
"workflow-code"
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
function resolveWorkflowCliAuthFilePath(env = readProcessEnv()) {
|
|
68
|
+
return joinPath(resolveWorkflowCliAuthDir(env), WORKFLOW_AUTH_FILE_NAME);
|
|
69
|
+
}
|
|
70
|
+
function resolveWorkflowDesktopConfigDir(env = readProcessEnv()) {
|
|
71
|
+
if (readString(env.WORKFLOW_DESKTOP_CONFIG_DIR)) {
|
|
72
|
+
return normalizePath(env.WORKFLOW_DESKTOP_CONFIG_DIR);
|
|
73
|
+
}
|
|
74
|
+
if (readPlatform(env) === DEFAULT_WINDOWS_PLATFORM) {
|
|
75
|
+
return joinPath(
|
|
76
|
+
env.APPDATA ?? joinPath(resolveHomeDir(env), "AppData", "Roaming"),
|
|
77
|
+
"workflow-code"
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
if (readPlatform(env) === DEFAULT_MAC_PLATFORM) {
|
|
81
|
+
return joinPath(resolveHomeDir(env), "Library", "Application Support", "workflow-code");
|
|
82
|
+
}
|
|
83
|
+
return joinPath(
|
|
84
|
+
env.XDG_CONFIG_HOME ?? joinPath(resolveHomeDir(env), ".config"),
|
|
85
|
+
"workflow-code"
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
function resolveWorkflowDesktopConfigFilePath(env = readProcessEnv()) {
|
|
89
|
+
return joinPath(resolveWorkflowDesktopConfigDir(env), WORKFLOW_DESKTOP_CONFIG_FILE_NAME);
|
|
90
|
+
}
|
|
91
|
+
function resolveHomeDir(env) {
|
|
92
|
+
return env.HOME ?? "";
|
|
93
|
+
}
|
|
94
|
+
function readPlatform(env) {
|
|
95
|
+
return env.platform ?? readProcessPlatform();
|
|
96
|
+
}
|
|
97
|
+
function isRecord(value) {
|
|
98
|
+
return typeof value === "object" && value !== null;
|
|
99
|
+
}
|
|
100
|
+
function readString(value) {
|
|
101
|
+
return typeof value === "string" && value.trim() !== "" ? value.trim() : void 0;
|
|
102
|
+
}
|
|
103
|
+
function joinPath(...parts) {
|
|
104
|
+
return normalizePath(parts.filter((part) => part !== "").join("/"));
|
|
105
|
+
}
|
|
106
|
+
function normalizePath(value) {
|
|
107
|
+
const normalized = value.replaceAll("\\", "/");
|
|
108
|
+
if (/^[A-Za-z]:\//.test(normalized)) {
|
|
109
|
+
const drive = normalized.slice(0, 2);
|
|
110
|
+
const rest = normalized.slice(2).replace(/\/+/g, "/");
|
|
111
|
+
return `${drive}${rest.startsWith("/") ? rest : `/${rest}`}`;
|
|
112
|
+
}
|
|
113
|
+
return normalized.replace(/\/+/g, "/");
|
|
114
|
+
}
|
|
115
|
+
function readProcessEnv() {
|
|
116
|
+
const processValue = readGlobalProcess();
|
|
117
|
+
return {
|
|
118
|
+
...processValue?.env ?? {},
|
|
119
|
+
platform: processValue?.platform ?? DEFAULT_OTHER_PLATFORM
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function readProcessPlatform() {
|
|
123
|
+
return readGlobalProcess()?.platform ?? DEFAULT_OTHER_PLATFORM;
|
|
124
|
+
}
|
|
125
|
+
function readGlobalProcess() {
|
|
126
|
+
const processValue = Reflect.get(globalThis, "process");
|
|
127
|
+
if (typeof processValue !== "object" || processValue === null) {
|
|
128
|
+
return void 0;
|
|
129
|
+
}
|
|
130
|
+
return processValue;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// src/auth-config.ts
|
|
134
|
+
import { readFileSync } from "fs";
|
|
135
|
+
import { mkdir, readFile, rm, writeFile } from "fs/promises";
|
|
136
|
+
async function readCliAuthConfig(env = process.env) {
|
|
137
|
+
try {
|
|
138
|
+
const raw = await readFile(resolveWorkflowCliAuthFilePath(env), "utf8");
|
|
139
|
+
return normalizeWorkflowAuthConfig(JSON.parse(raw));
|
|
140
|
+
} catch {
|
|
141
|
+
return createEmptyWorkflowAuthConfig();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
function readCliAuthConfigSync(env = process.env) {
|
|
145
|
+
try {
|
|
146
|
+
const raw = readFileSync(resolveWorkflowCliAuthFilePath(env), "utf8");
|
|
147
|
+
return normalizeWorkflowAuthConfig(JSON.parse(raw));
|
|
148
|
+
} catch {
|
|
149
|
+
return createEmptyWorkflowAuthConfig();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async function writeCliAuthConfig(config, env = process.env) {
|
|
153
|
+
await mkdir(resolveWorkflowCliAuthDir(env), { recursive: true });
|
|
154
|
+
await writeFile(
|
|
155
|
+
resolveWorkflowCliAuthFilePath(env),
|
|
156
|
+
`${JSON.stringify(normalizeWorkflowAuthConfig(config), null, 2)}
|
|
157
|
+
`,
|
|
158
|
+
"utf8"
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
async function clearCliAuthConfig(env = process.env) {
|
|
162
|
+
await rm(resolveWorkflowCliAuthFilePath(env), { force: true });
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export {
|
|
166
|
+
normalizeWorkflowAuthConfig,
|
|
167
|
+
isWorkflowAuthConfigLoggedIn,
|
|
168
|
+
isWorkflowAuthExpiringSoon,
|
|
169
|
+
resolveWorkflowDesktopConfigFilePath,
|
|
170
|
+
readCliAuthConfig,
|
|
171
|
+
readCliAuthConfigSync,
|
|
172
|
+
writeCliAuthConfig,
|
|
173
|
+
clearCliAuthConfig
|
|
174
|
+
};
|