@youdie006/prodex 0.6.0 → 0.6.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/cli-args.d.ts +1 -0
- package/dist/cli-args.js +8 -0
- package/dist/cli-args.js.map +1 -1
- package/dist/cli-ledger.d.ts +22 -0
- package/dist/cli-ledger.js +343 -0
- package/dist/cli-ledger.js.map +1 -0
- package/dist/cli-pro.d.ts +89 -0
- package/dist/cli-pro.js +1007 -0
- package/dist/cli-pro.js.map +1 -0
- package/dist/cli-server.d.ts +42 -0
- package/dist/cli-server.js +396 -0
- package/dist/cli-server.js.map +1 -0
- package/dist/cli-shared.d.ts +65 -0
- package/dist/cli-shared.js +185 -0
- package/dist/cli-shared.js.map +1 -0
- package/dist/cli.js +35 -1919
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { formatCliCommand, formatSourceCliOption, shellQuote } from "./cli-args.js";
|
|
2
|
+
export function formatInitCommand(sourceCli, options = {}) {
|
|
3
|
+
return [`${formatCliCommand(sourceCli)} init`, options.cwd ? `--cwd ${shellQuote(options.cwd)}` : undefined].filter(Boolean).join(" ");
|
|
4
|
+
}
|
|
5
|
+
export function formatSetupCommand(sourceCli, options = {}) {
|
|
6
|
+
return [`${formatCliCommand(sourceCli)} setup`, options.cwd ? `--cwd ${shellQuote(options.cwd)}` : undefined].filter(Boolean).join(" ");
|
|
7
|
+
}
|
|
8
|
+
export function formatBrowserLoginCommand(sourceCli, options = {}) {
|
|
9
|
+
return formatCommandInCwd(formatBrowserLoginCommandBody(sourceCli, options), options.cwd);
|
|
10
|
+
}
|
|
11
|
+
export function formatBrowserSmokeCommand(sourceCli, options = {}) {
|
|
12
|
+
return formatCommandInCwd(formatBrowserSmokeCommandBody(sourceCli, options), options.cwd);
|
|
13
|
+
}
|
|
14
|
+
export function formatBrowserCheckCommand(sourceCli, options = {}) {
|
|
15
|
+
const command = [`${formatCliCommand(sourceCli)} pro browser check${formatSourceCliOption(sourceCli)}`, options.port ? `--port ${options.port}` : undefined]
|
|
16
|
+
.filter(Boolean)
|
|
17
|
+
.join(" ");
|
|
18
|
+
return formatCommandInCwd(command, options.cwd);
|
|
19
|
+
}
|
|
20
|
+
export function formatBrowserTargetAskCommand(sourceCli, options = {}) {
|
|
21
|
+
const command = [
|
|
22
|
+
`${formatCliCommand(sourceCli)} pro browser ask${formatSourceCliOption(sourceCli)}`,
|
|
23
|
+
options.port ? `--port ${options.port}` : undefined,
|
|
24
|
+
`--target-url ${options.targetUrl ? shellQuote(options.targetUrl) : "<chatgpt-url>"} --confirm-target "prompt"`
|
|
25
|
+
]
|
|
26
|
+
.filter(Boolean)
|
|
27
|
+
.join(" ");
|
|
28
|
+
return formatCommandInCwd(command, options.cwd);
|
|
29
|
+
}
|
|
30
|
+
export function formatProShowCommand(taskId, sourceCli, options = {}) {
|
|
31
|
+
return [`${formatCliCommand(sourceCli)} pro show ${shellQuote(taskId)}${formatSourceCliOption(sourceCli)}`, options.cwd ? `--cwd ${shellQuote(options.cwd)}` : undefined]
|
|
32
|
+
.filter(Boolean)
|
|
33
|
+
.join(" ");
|
|
34
|
+
}
|
|
35
|
+
export function formatProLatestCommand(sourceCli, options = {}) {
|
|
36
|
+
return [`${formatCliCommand(sourceCli)} pro latest${formatSourceCliOption(sourceCli)}`, options.cwd ? `--cwd ${shellQuote(options.cwd)}` : undefined]
|
|
37
|
+
.filter(Boolean)
|
|
38
|
+
.join(" ");
|
|
39
|
+
}
|
|
40
|
+
export function sourceAwareResultMessage(message, sourceCli, options = {}) {
|
|
41
|
+
if (!sourceCli && !options.cwd)
|
|
42
|
+
return message;
|
|
43
|
+
return message.replace(/`prodex results reseal ([^`\s]+) --confirm-current-result`/g, (_match, taskId) => `\`${formatResultResealCommand(taskId, sourceCli, options)}\``);
|
|
44
|
+
}
|
|
45
|
+
export function sourceAwareResultError(error, sourceCli, options = {}) {
|
|
46
|
+
if (!isUntrustedResultError(error))
|
|
47
|
+
return error;
|
|
48
|
+
return new Error(sourceAwareResultMessage(errorMessage(error), sourceCli, options), { cause: error });
|
|
49
|
+
}
|
|
50
|
+
export function formatBlockedConsultRecordedMessage(message, taskId, sourceCli, options = {}) {
|
|
51
|
+
return `${message}\nblocked consult recorded: ${taskId}; inspect with \`${formatProShowCommand(taskId, sourceCli, options)}\` or \`${formatProLatestCommand(sourceCli, options)}\`.`;
|
|
52
|
+
}
|
|
53
|
+
export function formatReleaseStatusCommand(sourceCli, options = {}) {
|
|
54
|
+
return [`${formatCliCommand(sourceCli)} release status${formatSourceCliOption(sourceCli)}`, options.cwd ? `--cwd ${shellQuote(options.cwd)}` : undefined]
|
|
55
|
+
.filter(Boolean)
|
|
56
|
+
.join(" ");
|
|
57
|
+
}
|
|
58
|
+
export function formatReleasePackCommand(sourceCli, options = {}) {
|
|
59
|
+
return [
|
|
60
|
+
`${formatCliCommand(sourceCli)} release pack${formatSourceCliOption(sourceCli)}`,
|
|
61
|
+
options.cwd ? `--cwd ${shellQuote(options.cwd)}` : undefined,
|
|
62
|
+
"--pack-destination <dir>"
|
|
63
|
+
]
|
|
64
|
+
.filter(Boolean)
|
|
65
|
+
.join(" ");
|
|
66
|
+
}
|
|
67
|
+
export function sourceAwareBrowserNextStep(nextStep, sourceCli, options = {}) {
|
|
68
|
+
if (!nextStep)
|
|
69
|
+
return nextStep;
|
|
70
|
+
const targetRetry = nextStep.match(/^Open (https:\/\/chatgpt\.com\/\S+) in the (visible|dedicated) browser and retry(\. Current: .+|\.)$/);
|
|
71
|
+
if (targetRetry) {
|
|
72
|
+
const [, targetUrl, location, suffix] = targetRetry;
|
|
73
|
+
return `Open ${targetUrl} in the ${location} browser and run \`${formatBrowserTargetAskCommand(sourceCli, {
|
|
74
|
+
...options,
|
|
75
|
+
targetUrl
|
|
76
|
+
})}\`${suffix}`;
|
|
77
|
+
}
|
|
78
|
+
if (!sourceCli && !options.port && !options.cwd)
|
|
79
|
+
return nextStep;
|
|
80
|
+
return nextStep
|
|
81
|
+
.replace(/`cd (.+?) && prodex pro browser login([^`]*)?`/g, (_match, cwdPrefix, storedArgs) => {
|
|
82
|
+
return `\`cd ${cwdPrefix} && ${formatBrowserLoginCommandBody(sourceCli, browserOptionsWithStoredPort(options, storedArgs))}\``;
|
|
83
|
+
})
|
|
84
|
+
.replace(/`cd (.+?) && prodex pro browser smoke([^`]*)?`/g, (_match, cwdPrefix, storedArgs) => {
|
|
85
|
+
return `\`cd ${cwdPrefix} && ${formatBrowserSmokeCommandBody(sourceCli, browserOptionsWithStoredPort(options, storedArgs))}\``;
|
|
86
|
+
})
|
|
87
|
+
.replace(/`cd (.+?) && prodex pro browser ask([^`]*)?`/g, (_match, cwdPrefix, storedArgs) => {
|
|
88
|
+
return `\`cd ${cwdPrefix} && ${formatBrowserAskCommandBody(sourceCli)}${storedArgs ?? ""}\``;
|
|
89
|
+
})
|
|
90
|
+
.replace(/`prodex pro browser login([^`]*)?`/g, (_match, storedArgs) => {
|
|
91
|
+
return `\`${formatBrowserLoginCommand(sourceCli, browserOptionsWithStoredPort(options, storedArgs))}\``;
|
|
92
|
+
})
|
|
93
|
+
.replace(/`prodex pro browser smoke([^`]*)?`/g, (_match, storedArgs) => {
|
|
94
|
+
return `\`${formatBrowserSmokeCommand(sourceCli, browserOptionsWithStoredPort(options, storedArgs))}\``;
|
|
95
|
+
})
|
|
96
|
+
.replace(/`prodex pro browser ask([^`]*)?`/g, (_match, storedArgs) => {
|
|
97
|
+
return `\`${formatBrowserAskCommandBody(sourceCli)}${storedArgs ?? ""}\``;
|
|
98
|
+
})
|
|
99
|
+
.replaceAll("pass --target-url with --confirm-target", `run \`${formatBrowserTargetAskCommand(sourceCli, options)}\``);
|
|
100
|
+
}
|
|
101
|
+
export function sourceAwareBrowserBlocker(blocker, sourceCli, options = {}) {
|
|
102
|
+
const nextStep = sourceAwareBrowserNextStep(blocker.next_step, sourceCli, options);
|
|
103
|
+
return nextStep === blocker.next_step ? blocker : { ...blocker, next_step: nextStep };
|
|
104
|
+
}
|
|
105
|
+
export function sourceAwareSetupMessage(message, sourceCli, options = {}) {
|
|
106
|
+
if (!sourceCli && !options.cwd)
|
|
107
|
+
return message;
|
|
108
|
+
const setupCommand = formatSetupCommand(sourceCli, options);
|
|
109
|
+
return message
|
|
110
|
+
.replaceAll("`prodex setup --token-ttl-hours <hours>`", `\`${setupCommand} --token-ttl-hours <hours>\``)
|
|
111
|
+
.replaceAll("`prodex setup`", `\`${setupCommand}\``);
|
|
112
|
+
}
|
|
113
|
+
export function sourceAwareReleaseMessage(message, sourceCli, options = {}) {
|
|
114
|
+
if (!sourceCli && !options.cwd)
|
|
115
|
+
return message;
|
|
116
|
+
return message
|
|
117
|
+
.replaceAll("`prodex release pack --pack-destination <dir>`", `\`${formatReleasePackCommand(sourceCli, options)}\``)
|
|
118
|
+
.replaceAll("`prodex release status`", `\`${formatReleaseStatusCommand(sourceCli, options)}\``);
|
|
119
|
+
}
|
|
120
|
+
export function errorMessage(error) {
|
|
121
|
+
return error instanceof Error ? error.message : String(error);
|
|
122
|
+
}
|
|
123
|
+
export function isUntrustedResultError(error) {
|
|
124
|
+
return (typeof error === "object" &&
|
|
125
|
+
error !== null &&
|
|
126
|
+
"code" in error &&
|
|
127
|
+
"taskId" in error &&
|
|
128
|
+
error.code === "EUNTRUSTED_RESULT" &&
|
|
129
|
+
typeof error.taskId === "string");
|
|
130
|
+
}
|
|
131
|
+
export function formatCommandInCwd(command, cwd) {
|
|
132
|
+
return cwd ? `cd ${shellQuote(cwd)} && ${command}` : command;
|
|
133
|
+
}
|
|
134
|
+
export function browserOptionsWithStoredPort(options, storedArgs) {
|
|
135
|
+
if (options.port || !storedArgs)
|
|
136
|
+
return options;
|
|
137
|
+
const match = storedArgs.match(/(?:^|\s)--port\s+(\d{1,5})(?:\s|$)/);
|
|
138
|
+
if (!match)
|
|
139
|
+
return options;
|
|
140
|
+
const port = Number(match[1]);
|
|
141
|
+
if (!Number.isInteger(port) || port < 1 || port > 65535)
|
|
142
|
+
return options;
|
|
143
|
+
return { ...options, port };
|
|
144
|
+
}
|
|
145
|
+
export function formatBrowserSmokeCommandBody(sourceCli, options = {}) {
|
|
146
|
+
const command = [`${formatCliCommand(sourceCli)} pro browser smoke${formatSourceCliOption(sourceCli)}`, options.port ? `--port ${options.port}` : undefined]
|
|
147
|
+
.filter(Boolean)
|
|
148
|
+
.join(" ");
|
|
149
|
+
return command;
|
|
150
|
+
}
|
|
151
|
+
export function formatBrowserLoginCommandBody(sourceCli, options = {}) {
|
|
152
|
+
const command = [
|
|
153
|
+
`${formatCliCommand(sourceCli)} pro browser login${formatSourceCliOption(sourceCli)}`,
|
|
154
|
+
options.profileDir ? `--profile-dir ${shellQuote(options.profileDir)}` : undefined,
|
|
155
|
+
options.port ? `--port ${options.port}` : undefined,
|
|
156
|
+
options.url ? `--url ${shellQuote(options.url)}` : undefined,
|
|
157
|
+
options.launchTimeoutMs ? `--launch-timeout-ms ${options.launchTimeoutMs}` : undefined
|
|
158
|
+
]
|
|
159
|
+
.filter(Boolean)
|
|
160
|
+
.join(" ");
|
|
161
|
+
return command;
|
|
162
|
+
}
|
|
163
|
+
// ask retry commands carry their own --target-url/--confirm-target/"prompt" tail, so callers
|
|
164
|
+
// preserve the stored argument tail verbatim and only re-point this bare base at the source CLI.
|
|
165
|
+
export function formatBrowserAskCommandBody(sourceCli) {
|
|
166
|
+
return `${formatCliCommand(sourceCli)} pro browser ask${formatSourceCliOption(sourceCli)}`;
|
|
167
|
+
}
|
|
168
|
+
export function formatResultResealCommand(taskId, sourceCli, options = {}) {
|
|
169
|
+
return [
|
|
170
|
+
`${formatCliCommand(sourceCli)} results reseal ${shellQuote(taskId)} --confirm-current-result`,
|
|
171
|
+
options.cwd ? `--cwd ${shellQuote(options.cwd)}` : undefined
|
|
172
|
+
]
|
|
173
|
+
.filter(Boolean)
|
|
174
|
+
.join(" ");
|
|
175
|
+
}
|
|
176
|
+
export function isMissingFileError(error) {
|
|
177
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
|
|
178
|
+
}
|
|
179
|
+
export function isLoopbackHost(hostname) {
|
|
180
|
+
return hostname === "localhost" || hostname === "127.0.0.1" || hostname === "::1" || hostname === "[::1]";
|
|
181
|
+
}
|
|
182
|
+
export function firstLine(value) {
|
|
183
|
+
return value.split(/\r?\n/).find((line) => line.trim())?.trim() ?? "";
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=cli-shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-shared.js","sourceRoot":"","sources":["../src/cli-shared.ts"],"names":[],"mappings":"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"}
|