1688-cli 0.1.31 → 0.1.34
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/AGENTS.md +1 -1
- package/CHANGELOG.md +42 -0
- package/dist/cli.js +32 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/cart-add.js +8 -4
- package/dist/commands/cart-add.js.map +1 -1
- package/dist/commands/cart-list.js +6 -2
- package/dist/commands/cart-list.js.map +1 -1
- package/dist/commands/cart-remove.js +8 -4
- package/dist/commands/cart-remove.js.map +1 -1
- package/dist/commands/checkout-confirm.js +28 -17
- package/dist/commands/checkout-confirm.js.map +1 -1
- package/dist/commands/checkout-prepare.js +8 -4
- package/dist/commands/checkout-prepare.js.map +1 -1
- package/dist/commands/doctor.js +80 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/image-search.js +5 -3
- package/dist/commands/image-search.js.map +1 -1
- package/dist/commands/offer.js +5 -1
- package/dist/commands/offer.js.map +1 -1
- package/dist/commands/order-get.js +6 -2
- package/dist/commands/order-get.js.map +1 -1
- package/dist/commands/order-list.js +4 -0
- package/dist/commands/order-list.js.map +1 -1
- package/dist/commands/order-logistics.js +5 -1
- package/dist/commands/order-logistics.js.map +1 -1
- package/dist/commands/search.js +20 -4
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/seller-chat.js +7 -3
- package/dist/commands/seller-chat.js.map +1 -1
- package/dist/commands/seller-inquire.js +1 -1
- package/dist/commands/seller-inquire.js.map +1 -1
- package/dist/commands/seller-messages.js +8 -1
- package/dist/commands/seller-messages.js.map +1 -1
- package/dist/commands/similar.js +4 -0
- package/dist/commands/similar.js.map +1 -1
- package/dist/commands/skill.js +297 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/daemon/client.js +22 -11
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/manager.js +64 -8
- package/dist/daemon/manager.js.map +1 -1
- package/dist/daemon/protocol.js.map +1 -1
- package/dist/daemon/server.js +96 -3
- package/dist/daemon/server.js.map +1 -1
- package/dist/io/errors.js +7 -1
- package/dist/io/errors.js.map +1 -1
- package/dist/session/artifacts.js +152 -0
- package/dist/session/artifacts.js.map +1 -0
- package/dist/session/context.js +8 -1
- package/dist/session/context.js.map +1 -1
- package/dist/session/dispatch.js +15 -4
- package/dist/session/dispatch.js.map +1 -1
- package/dist/session/page-state.js +78 -0
- package/dist/session/page-state.js.map +1 -0
- package/dist/session/paths.js +6 -0
- package/dist/session/paths.js.map +1 -1
- package/dist/session/recovery.js +422 -0
- package/dist/session/recovery.js.map +1 -0
- package/dist/session/shared.js +37 -2
- package/dist/session/shared.js.map +1 -1
- package/package.json +1 -1
package/dist/daemon/server.js
CHANGED
|
@@ -1,17 +1,30 @@
|
|
|
1
1
|
import net from 'node:net';
|
|
2
2
|
import fs from 'node:fs/promises';
|
|
3
|
-
import { socketPath, pidFile, ensureRoot, } from '../session/paths.js';
|
|
4
|
-
import { getSharedContext, releaseSharedContext, runOnSharedCtx, } from '../session/shared.js';
|
|
3
|
+
import { socketPath, pidFile, daemonVersionFile, ensureRoot, } from '../session/paths.js';
|
|
4
|
+
import { getSharedContext, getSharedContextStatus, releaseSharedContext, runOnSharedCtx, } from '../session/shared.js';
|
|
5
5
|
import { loadExecutor } from '../session/dispatch.js';
|
|
6
6
|
import { CliError } from '../io/errors.js';
|
|
7
7
|
import { throttle } from './throttle.js';
|
|
8
|
+
import pkg from '../../package.json' with { type: 'json' };
|
|
8
9
|
const stats = {
|
|
10
|
+
version: pkg.version,
|
|
9
11
|
startedAt: new Date().toISOString(),
|
|
10
12
|
pid: process.pid,
|
|
11
13
|
commandCount: 0,
|
|
12
14
|
lastRequestAt: null,
|
|
13
15
|
lastError: null,
|
|
16
|
+
health: {
|
|
17
|
+
lastPageState: null,
|
|
18
|
+
lastFailureKind: null,
|
|
19
|
+
lastRecoveryAction: null,
|
|
20
|
+
consecutiveFailures: 0,
|
|
21
|
+
consecutiveRateLimits: 0,
|
|
22
|
+
lastSuccessfulActionAt: null,
|
|
23
|
+
contextRecreatedAt: null,
|
|
24
|
+
pausedUntil: null,
|
|
25
|
+
},
|
|
14
26
|
};
|
|
27
|
+
const DAEMON_BLOCKED_COMMANDS = new Set(['checkout-confirm']);
|
|
15
28
|
let activeClients = 0;
|
|
16
29
|
let lastActivityMs = Date.now();
|
|
17
30
|
let server = null;
|
|
@@ -31,6 +44,7 @@ export async function start(opts = {}) {
|
|
|
31
44
|
}
|
|
32
45
|
}
|
|
33
46
|
await fs.writeFile(pidFile(), String(process.pid));
|
|
47
|
+
await fs.writeFile(daemonVersionFile(), pkg.version);
|
|
34
48
|
log(`pid ${process.pid}, socket ${socketPath()}`);
|
|
35
49
|
if (opts.prewarm) {
|
|
36
50
|
log('prewarming Chromium...');
|
|
@@ -110,6 +124,7 @@ async function handleRequest(req) {
|
|
|
110
124
|
stats.commandCount++;
|
|
111
125
|
try {
|
|
112
126
|
if (req.cmd === 'status') {
|
|
127
|
+
const browser = await getSharedContextStatus();
|
|
113
128
|
return {
|
|
114
129
|
id: req.id,
|
|
115
130
|
ok: true,
|
|
@@ -117,6 +132,7 @@ async function handleRequest(req) {
|
|
|
117
132
|
...stats,
|
|
118
133
|
uptimeMs: Date.now() - new Date(stats.startedAt).getTime(),
|
|
119
134
|
activeClients,
|
|
135
|
+
browser,
|
|
120
136
|
},
|
|
121
137
|
};
|
|
122
138
|
}
|
|
@@ -124,13 +140,23 @@ async function handleRequest(req) {
|
|
|
124
140
|
setTimeout(() => void shutdown(), 50);
|
|
125
141
|
return { id: req.id, ok: true, data: { stopping: true } };
|
|
126
142
|
}
|
|
143
|
+
if (DAEMON_BLOCKED_COMMANDS.has(req.cmd)) {
|
|
144
|
+
throw new CliError(20, 'DAEMON_COMMAND_DISABLED', `${req.cmd} must run through the CLI confirmation path, not the daemon socket.`);
|
|
145
|
+
}
|
|
146
|
+
await enforceHealthPause();
|
|
127
147
|
await throttle(req.cmd);
|
|
128
148
|
const fn = await loadExecutor(req.cmd);
|
|
129
|
-
const data = await runOnSharedCtx((ctx) => fn(ctx, req.args)
|
|
149
|
+
const data = await runOnSharedCtx((ctx) => fn(ctx, req.args), {
|
|
150
|
+
requestId: req.id,
|
|
151
|
+
cmd: req.cmd,
|
|
152
|
+
args: req.args,
|
|
153
|
+
});
|
|
154
|
+
recordSuccess();
|
|
130
155
|
return { id: req.id, ok: true, data };
|
|
131
156
|
}
|
|
132
157
|
catch (e) {
|
|
133
158
|
stats.lastError = e.message ?? String(e);
|
|
159
|
+
recordFailure(e);
|
|
134
160
|
if (e instanceof CliError) {
|
|
135
161
|
return {
|
|
136
162
|
id: req.id,
|
|
@@ -138,6 +164,7 @@ async function handleRequest(req) {
|
|
|
138
164
|
exitCode: e.exitCode,
|
|
139
165
|
code: e.code,
|
|
140
166
|
message: e.message,
|
|
167
|
+
details: e.details,
|
|
141
168
|
};
|
|
142
169
|
}
|
|
143
170
|
return {
|
|
@@ -149,6 +176,66 @@ async function handleRequest(req) {
|
|
|
149
176
|
};
|
|
150
177
|
}
|
|
151
178
|
}
|
|
179
|
+
async function enforceHealthPause() {
|
|
180
|
+
const pausedUntil = stats.health.pausedUntil;
|
|
181
|
+
if (!pausedUntil)
|
|
182
|
+
return;
|
|
183
|
+
const until = new Date(pausedUntil).getTime();
|
|
184
|
+
if (!Number.isFinite(until) || Date.now() >= until) {
|
|
185
|
+
stats.health.pausedUntil = null;
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
throw new CliError(9, 'DAEMON_PAUSED', `Daemon is paused until ${pausedUntil} after repeated 1688 failures.`, {
|
|
189
|
+
category: 'daemon_health',
|
|
190
|
+
recoverHint: 'Wait for the pause to expire, or run `1688 daemon reload` after manually resolving login/risk-control issues.',
|
|
191
|
+
retryable: true,
|
|
192
|
+
pausedUntil,
|
|
193
|
+
failureKind: stats.health.lastFailureKind,
|
|
194
|
+
recoveryAction: stats.health.lastRecoveryAction,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
function recordSuccess() {
|
|
198
|
+
stats.health.consecutiveFailures = 0;
|
|
199
|
+
stats.health.consecutiveRateLimits = 0;
|
|
200
|
+
stats.health.lastSuccessfulActionAt = new Date().toISOString();
|
|
201
|
+
stats.health.pausedUntil = null;
|
|
202
|
+
}
|
|
203
|
+
function detailString(e, key) {
|
|
204
|
+
if (!(e instanceof CliError))
|
|
205
|
+
return null;
|
|
206
|
+
const v = e.details[key];
|
|
207
|
+
return typeof v === 'string' ? v : null;
|
|
208
|
+
}
|
|
209
|
+
function recordFailure(e) {
|
|
210
|
+
if (e instanceof CliError && e.code === 'DAEMON_PAUSED')
|
|
211
|
+
return;
|
|
212
|
+
stats.health.consecutiveFailures++;
|
|
213
|
+
const pageState = detailString(e, 'pageState');
|
|
214
|
+
const failureKind = detailString(e, 'failureKind');
|
|
215
|
+
const recoveryAction = detailString(e, 'recoveryAction');
|
|
216
|
+
if (pageState)
|
|
217
|
+
stats.health.lastPageState = pageState;
|
|
218
|
+
if (failureKind)
|
|
219
|
+
stats.health.lastFailureKind = failureKind;
|
|
220
|
+
if (recoveryAction)
|
|
221
|
+
stats.health.lastRecoveryAction = recoveryAction;
|
|
222
|
+
if (failureKind === 'rate_limited' || (e instanceof CliError && e.code === 'RATE_LIMITED')) {
|
|
223
|
+
stats.health.consecutiveRateLimits++;
|
|
224
|
+
}
|
|
225
|
+
else if (failureKind && failureKind !== 'rate_limited') {
|
|
226
|
+
stats.health.consecutiveRateLimits = 0;
|
|
227
|
+
}
|
|
228
|
+
const now = Date.now();
|
|
229
|
+
if (failureKind === 'rate_limited' && stats.health.consecutiveRateLimits >= 2) {
|
|
230
|
+
stats.health.pausedUntil = new Date(now + 5 * 60_000).toISOString();
|
|
231
|
+
}
|
|
232
|
+
else if (failureKind === 'risk_challenge' || failureKind === 'not_logged_in') {
|
|
233
|
+
stats.health.pausedUntil = new Date(now + 10 * 60_000).toISOString();
|
|
234
|
+
}
|
|
235
|
+
else if (stats.health.consecutiveFailures >= 5) {
|
|
236
|
+
stats.health.pausedUntil = new Date(now + 2 * 60_000).toISOString();
|
|
237
|
+
}
|
|
238
|
+
}
|
|
152
239
|
async function refuseIfAlive() {
|
|
153
240
|
let pidStr;
|
|
154
241
|
try {
|
|
@@ -193,6 +280,12 @@ async function shutdown() {
|
|
|
193
280
|
catch {
|
|
194
281
|
/* ignore */
|
|
195
282
|
}
|
|
283
|
+
try {
|
|
284
|
+
await fs.unlink(daemonVersionFile());
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
/* ignore */
|
|
288
|
+
}
|
|
196
289
|
log('bye');
|
|
197
290
|
process.exit(0);
|
|
198
291
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EACL,UAAU,EACV,OAAO,EACP,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
|
package/dist/io/errors.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
export class CliError extends Error {
|
|
2
2
|
exitCode;
|
|
3
3
|
code;
|
|
4
|
-
|
|
4
|
+
details;
|
|
5
|
+
constructor(exitCode, code, message, details = {}) {
|
|
5
6
|
super(message);
|
|
6
7
|
this.exitCode = exitCode;
|
|
7
8
|
this.code = code;
|
|
9
|
+
this.details = details;
|
|
10
|
+
}
|
|
11
|
+
withDetails(details) {
|
|
12
|
+
this.details = { ...this.details, ...details };
|
|
13
|
+
return this;
|
|
8
14
|
}
|
|
9
15
|
}
|
|
10
16
|
//# sourceMappingURL=errors.js.map
|
package/dist/io/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/io/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/io/errors.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEf;IACA;IAET;IAJT,YACkB,QAAgB,EAChB,IAAY,EAC5B,OAAe,EACR,UAA2B,EAAE;QAEpC,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,SAAI,GAAJ,IAAI,CAAQ;QAErB,YAAO,GAAP,OAAO,CAAsB;IAGtC,CAAC;IAED,WAAW,CAAC,OAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { CliError } from '../io/errors.js';
|
|
4
|
+
import { detectPageState, recoverHintForPageState, } from './page-state.js';
|
|
5
|
+
import { runsDir } from './paths.js';
|
|
6
|
+
function errorShape(e) {
|
|
7
|
+
if (e instanceof CliError) {
|
|
8
|
+
return { code: e.code, message: e.message, stack: e.stack };
|
|
9
|
+
}
|
|
10
|
+
if (e instanceof Error) {
|
|
11
|
+
return { message: e.message, stack: e.stack };
|
|
12
|
+
}
|
|
13
|
+
return { message: String(e) };
|
|
14
|
+
}
|
|
15
|
+
function safeName(input) {
|
|
16
|
+
return input.replace(/[^a-zA-Z0-9._-]+/g, '-').slice(0, 80) || 'command';
|
|
17
|
+
}
|
|
18
|
+
function pickPage(ctx) {
|
|
19
|
+
const pages = ctx.pages().filter((p) => !p.isClosed());
|
|
20
|
+
return pages.at(-1) ?? null;
|
|
21
|
+
}
|
|
22
|
+
function requestId(meta) {
|
|
23
|
+
return (meta.requestId ??
|
|
24
|
+
`${new Date().toISOString().replace(/[:.]/g, '-')}-${safeName(meta.cmd)}`);
|
|
25
|
+
}
|
|
26
|
+
function categoryForPageState(kind) {
|
|
27
|
+
switch (kind) {
|
|
28
|
+
case 'not_logged_in':
|
|
29
|
+
return 'auth';
|
|
30
|
+
case 'risk_challenge':
|
|
31
|
+
return 'risk';
|
|
32
|
+
case 'rate_limited':
|
|
33
|
+
return 'rate_limit';
|
|
34
|
+
case 'unknown':
|
|
35
|
+
return 'unknown_page_state';
|
|
36
|
+
default:
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function stringField(obj, key) {
|
|
41
|
+
const v = obj?.[key];
|
|
42
|
+
return typeof v === 'string' ? v : undefined;
|
|
43
|
+
}
|
|
44
|
+
function boolField(obj, key) {
|
|
45
|
+
const v = obj?.[key];
|
|
46
|
+
return typeof v === 'boolean' ? v : undefined;
|
|
47
|
+
}
|
|
48
|
+
function traceSummary(trace) {
|
|
49
|
+
if (!trace)
|
|
50
|
+
return undefined;
|
|
51
|
+
return {
|
|
52
|
+
console: trace.console.length,
|
|
53
|
+
pageErrors: trace.pageErrors.length,
|
|
54
|
+
recentRequests: trace.network.recent.length,
|
|
55
|
+
failedRequests: trace.network.failed.length,
|
|
56
|
+
httpErrors: trace.network.httpErrors.length,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
async function writeJson(file, value) {
|
|
60
|
+
await fs.writeFile(file, JSON.stringify(value, null, 2));
|
|
61
|
+
}
|
|
62
|
+
function errorText(shape) {
|
|
63
|
+
const lines = [];
|
|
64
|
+
if (shape.code)
|
|
65
|
+
lines.push(`code: ${shape.code}`);
|
|
66
|
+
lines.push(`message: ${shape.message}`);
|
|
67
|
+
if (shape.stack)
|
|
68
|
+
lines.push(`stack:\n${shape.stack}`);
|
|
69
|
+
return lines.join('\n\n');
|
|
70
|
+
}
|
|
71
|
+
export async function captureFailureArtifact(ctx, meta, error, options = {}) {
|
|
72
|
+
const id = requestId(meta);
|
|
73
|
+
const dir = path.join(runsDir(), id);
|
|
74
|
+
await fs.mkdir(dir, { recursive: true });
|
|
75
|
+
const page = pickPage(ctx);
|
|
76
|
+
const pageState = options.pageState !== undefined
|
|
77
|
+
? options.pageState
|
|
78
|
+
: page
|
|
79
|
+
? await detectPageState(page).catch(() => null)
|
|
80
|
+
: null;
|
|
81
|
+
const recovery = options.recovery;
|
|
82
|
+
const details = {
|
|
83
|
+
artifactDir: dir,
|
|
84
|
+
};
|
|
85
|
+
if (pageState) {
|
|
86
|
+
details.currentUrl = pageState.url;
|
|
87
|
+
details.pageState = pageState.kind;
|
|
88
|
+
details.category = categoryForPageState(pageState.kind);
|
|
89
|
+
details.recoverHint = recoverHintForPageState(pageState.kind);
|
|
90
|
+
details.retryable =
|
|
91
|
+
pageState.kind === 'rate_limited' || pageState.kind === 'unknown';
|
|
92
|
+
await writeJson(path.join(dir, 'page-state.json'), pageState).catch(() => { });
|
|
93
|
+
}
|
|
94
|
+
if (recovery) {
|
|
95
|
+
const failureKind = stringField(recovery, 'failureKind');
|
|
96
|
+
const action = stringField(recovery, 'action');
|
|
97
|
+
const retryable = boolField(recovery, 'retryable');
|
|
98
|
+
if (failureKind)
|
|
99
|
+
details.failureKind = failureKind;
|
|
100
|
+
if (action)
|
|
101
|
+
details.recoveryAction = action;
|
|
102
|
+
if (retryable !== undefined)
|
|
103
|
+
details.retryable = retryable;
|
|
104
|
+
await writeJson(path.join(dir, 'recovery.json'), recovery).catch(() => { });
|
|
105
|
+
}
|
|
106
|
+
if (options.trace) {
|
|
107
|
+
if (options.trace.console.length > 0 || options.trace.pageErrors.length > 0) {
|
|
108
|
+
await writeJson(path.join(dir, 'console.json'), {
|
|
109
|
+
console: options.trace.console,
|
|
110
|
+
pageErrors: options.trace.pageErrors,
|
|
111
|
+
}).catch(() => { });
|
|
112
|
+
}
|
|
113
|
+
if (options.trace.network.recent.length > 0 ||
|
|
114
|
+
options.trace.network.failed.length > 0 ||
|
|
115
|
+
options.trace.network.httpErrors.length > 0) {
|
|
116
|
+
await writeJson(path.join(dir, 'network.json'), options.trace.network).catch(() => { });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (page && !page.isClosed()) {
|
|
120
|
+
await page
|
|
121
|
+
.screenshot({ path: path.join(dir, 'screenshot.png'), fullPage: true })
|
|
122
|
+
.catch(() => { });
|
|
123
|
+
const html = await page.content().catch(() => '');
|
|
124
|
+
if (html)
|
|
125
|
+
await fs.writeFile(path.join(dir, 'page.html'), html);
|
|
126
|
+
}
|
|
127
|
+
const shaped = errorShape(error);
|
|
128
|
+
await fs.writeFile(path.join(dir, 'error.txt'), errorText(shaped)).catch(() => { });
|
|
129
|
+
await writeJson(path.join(dir, 'meta.json'), {
|
|
130
|
+
requestId: id,
|
|
131
|
+
at: new Date().toISOString(),
|
|
132
|
+
command: meta.cmd,
|
|
133
|
+
args: meta.args,
|
|
134
|
+
error: shaped,
|
|
135
|
+
pageState,
|
|
136
|
+
recovery,
|
|
137
|
+
traceSummary: traceSummary(options.trace),
|
|
138
|
+
});
|
|
139
|
+
return details;
|
|
140
|
+
}
|
|
141
|
+
export async function enrichErrorWithArtifact(ctx, meta, error) {
|
|
142
|
+
if (error instanceof CliError && error.details.artifactDir) {
|
|
143
|
+
return error;
|
|
144
|
+
}
|
|
145
|
+
const details = await captureFailureArtifact(ctx, meta, error).catch(() => ({}));
|
|
146
|
+
if (error instanceof CliError) {
|
|
147
|
+
return error.withDetails(details);
|
|
148
|
+
}
|
|
149
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
150
|
+
return new CliError(1, 'INTERNAL', message, details);
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/session/artifacts.ts"],"names":[],"mappings":"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"}
|
package/dist/session/context.js
CHANGED
|
@@ -5,6 +5,7 @@ import stealth from 'puppeteer-extra-plugin-stealth';
|
|
|
5
5
|
import { profilePath } from './paths.js';
|
|
6
6
|
import { acquireLock } from './lock.js';
|
|
7
7
|
import { CliError } from '../io/errors.js';
|
|
8
|
+
import { enrichErrorWithArtifact, } from './artifacts.js';
|
|
8
9
|
/**
|
|
9
10
|
* Remove Chrome's stale SingletonLock / SingletonCookie / SingletonSocket files
|
|
10
11
|
* from our profile dir. Safe because our `proper-lockfile` already guarantees
|
|
@@ -26,7 +27,7 @@ const LAUNCH_OPTS = {
|
|
|
26
27
|
locale: 'zh-CN',
|
|
27
28
|
timezoneId: 'Asia/Shanghai',
|
|
28
29
|
};
|
|
29
|
-
export async function withSession(opts, fn) {
|
|
30
|
+
export async function withSession(opts, fn, meta) {
|
|
30
31
|
const release = await acquireLock();
|
|
31
32
|
const dir = profilePath(opts.profile);
|
|
32
33
|
await fs.mkdir(dir, { recursive: true });
|
|
@@ -48,6 +49,12 @@ export async function withSession(opts, fn) {
|
|
|
48
49
|
});
|
|
49
50
|
return await fn(ctx);
|
|
50
51
|
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
if (ctx && meta) {
|
|
54
|
+
throw await enrichErrorWithArtifact(ctx, meta, e);
|
|
55
|
+
}
|
|
56
|
+
throw e;
|
|
57
|
+
}
|
|
51
58
|
finally {
|
|
52
59
|
if (ctx)
|
|
53
60
|
await ctx.close().catch(() => { });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/session/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,OAAO,MAAM,gCAAgC,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/session/context.ts"],"names":[],"mappings":"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"}
|
package/dist/session/dispatch.js
CHANGED
|
@@ -18,7 +18,6 @@ const REGISTRY = {
|
|
|
18
18
|
'cart-remove': () => import('../commands/cart-remove.js').then((m) => m.execute),
|
|
19
19
|
'cart-add': () => import('../commands/cart-add.js').then((m) => m.execute),
|
|
20
20
|
'checkout-prepare': () => import('../commands/checkout-prepare.js').then((m) => m.execute),
|
|
21
|
-
'checkout-confirm': () => import('../commands/checkout-confirm.js').then((m) => m.execute),
|
|
22
21
|
'seller-chat': () => import('../commands/seller-chat.js').then((m) => m.execute),
|
|
23
22
|
'seller-messages': () => import('../commands/seller-messages.js').then((m) => m.execute),
|
|
24
23
|
'detail-feglobals': () => import('../commands/seller-inquire.js').then((m) => m.scrapeFeGlobals),
|
|
@@ -41,14 +40,26 @@ export async function dispatch(name, args, opts = {}) {
|
|
|
41
40
|
// user to re-run `1688 login` or `daemon start` manually.
|
|
42
41
|
if (!(await isDaemonReachable())) {
|
|
43
42
|
try {
|
|
44
|
-
const {
|
|
43
|
+
const { ensureFreshDaemon } = await import('../daemon/manager.js');
|
|
45
44
|
info('Starting daemon (one-time)...');
|
|
46
|
-
await
|
|
45
|
+
await ensureFreshDaemon();
|
|
47
46
|
}
|
|
48
47
|
catch {
|
|
49
48
|
// Couldn't start — fall through to inline.
|
|
50
49
|
}
|
|
51
50
|
}
|
|
51
|
+
else {
|
|
52
|
+
try {
|
|
53
|
+
const { ensureFreshDaemon } = await import('../daemon/manager.js');
|
|
54
|
+
const result = await ensureFreshDaemon();
|
|
55
|
+
if (result.restarted) {
|
|
56
|
+
info('Restarted daemon to match current CLI version.');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Couldn't refresh — fall through to the normal daemon/inline logic.
|
|
61
|
+
}
|
|
62
|
+
}
|
|
52
63
|
if (await isDaemonReachable()) {
|
|
53
64
|
try {
|
|
54
65
|
return await daemonCall(name, args);
|
|
@@ -66,7 +77,7 @@ export async function dispatch(name, args, opts = {}) {
|
|
|
66
77
|
const daemonMgr = await maybePauseDaemon();
|
|
67
78
|
try {
|
|
68
79
|
const fn = await loadExecutor(name);
|
|
69
|
-
return await withSession({ headless: !opts.headed, profile: opts.profile }, (ctx) => fn(ctx, args));
|
|
80
|
+
return await withSession({ headless: !opts.headed, profile: opts.profile }, (ctx) => fn(ctx, args), { cmd: name, args });
|
|
70
81
|
}
|
|
71
82
|
finally {
|
|
72
83
|
await daemonMgr.resume();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/session/dispatch.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,0EAA0E;AAG1E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAavC,iFAAiF;AACjF,kFAAkF;AAClF,qFAAqF;AACrF,MAAM,QAAQ,GAA8D;IAC1E,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAqC,CAAC;IACtF,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAqC,CAAC;IACtF,YAAY,EAAE,GAAG,EAAE,CACjB,MAAM,CAAC,2BAA2B,CAAC,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAqC,CAC/C;IACH,WAAW,EAAE,GAAG,EAAE,CAChB,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAqC,CAC/C;IACH,iBAAiB,EAAE,GAAG,EAAE,CACtB,MAAM,CAAC,gCAAgC,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAqC,CAC/C;IACH,KAAK,EAAE,GAAG,EAAE,CACV,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAqC,CAC/C;IACH,cAAc,EAAE,GAAG,EAAE,CACnB,MAAM,CAAC,6BAA6B,CAAC,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAqC,CAC/C;IACH,WAAW,EAAE,GAAG,EAAE,CAChB,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAqC,CAC/C;IACH,aAAa,EAAE,GAAG,EAAE,CAClB,MAAM,CAAC,4BAA4B,CAAC,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAqC,CAC/C;IACH,UAAU,EAAE,GAAG,EAAE,CACf,MAAM,CAAC,yBAAyB,CAAC,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAqC,CAC/C;IACH,kBAAkB,EAAE,GAAG,EAAE,CACvB,MAAM,CAAC,iCAAiC,CAAC,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAqC,CAC/C;IACH,
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/session/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
const LOGIN_RE = /(?:login\.(?:1688|taobao)\.com|passport\.1688\.com)/i;
|
|
2
|
+
const RISK_TEXT_RE = /(滑块|拖动.*验证|安全验证|验证码|验证一下|检测到.*异常|环境异常|nc[_-]?captcha|请完成验证)/i;
|
|
3
|
+
const RATE_LIMIT_TEXT_RE = /(访问频繁|请求频繁|操作频繁|稍后再试|访问受限|流量异常|系统繁忙)/i;
|
|
4
|
+
const PAGE_PROBE_TIMEOUT_MS = 1500;
|
|
5
|
+
async function withTimeout(promise, fallback) {
|
|
6
|
+
let timer = null;
|
|
7
|
+
try {
|
|
8
|
+
return await Promise.race([
|
|
9
|
+
promise,
|
|
10
|
+
new Promise((resolve) => {
|
|
11
|
+
timer = setTimeout(() => resolve(fallback), PAGE_PROBE_TIMEOUT_MS);
|
|
12
|
+
}),
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
finally {
|
|
16
|
+
if (timer)
|
|
17
|
+
clearTimeout(timer);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function classifyPageState(snapshot) {
|
|
21
|
+
const url = snapshot.url;
|
|
22
|
+
const title = snapshot.title ?? null;
|
|
23
|
+
const text = snapshot.text ?? '';
|
|
24
|
+
const haystack = `${title ?? ''}\n${text}`;
|
|
25
|
+
const indicators = [];
|
|
26
|
+
if (LOGIN_RE.test(url)) {
|
|
27
|
+
indicators.push('login-url');
|
|
28
|
+
return { kind: 'not_logged_in', url, title, indicators };
|
|
29
|
+
}
|
|
30
|
+
if (RATE_LIMIT_TEXT_RE.test(haystack)) {
|
|
31
|
+
indicators.push('rate-limit-text');
|
|
32
|
+
return { kind: 'rate_limited', url, title, indicators };
|
|
33
|
+
}
|
|
34
|
+
if (RISK_TEXT_RE.test(haystack)) {
|
|
35
|
+
indicators.push('risk-text');
|
|
36
|
+
return { kind: 'risk_challenge', url, title, indicators };
|
|
37
|
+
}
|
|
38
|
+
if (/\.1688\.com/i.test(url)) {
|
|
39
|
+
indicators.push('1688-url');
|
|
40
|
+
return { kind: 'normal_1688_page', url, title, indicators };
|
|
41
|
+
}
|
|
42
|
+
return { kind: 'unknown', url, title, indicators };
|
|
43
|
+
}
|
|
44
|
+
export async function detectPageState(page) {
|
|
45
|
+
const url = page.url();
|
|
46
|
+
let title = null;
|
|
47
|
+
let text = '';
|
|
48
|
+
try {
|
|
49
|
+
title = await withTimeout(page.title(), null);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
title = null;
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
text = await withTimeout(page.evaluate(() => document.body?.innerText ?? ''), '');
|
|
56
|
+
if (text.length > 20_000)
|
|
57
|
+
text = text.slice(0, 20_000);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
text = '';
|
|
61
|
+
}
|
|
62
|
+
return classifyPageState({ url, title, text });
|
|
63
|
+
}
|
|
64
|
+
export function recoverHintForPageState(kind) {
|
|
65
|
+
switch (kind) {
|
|
66
|
+
case 'not_logged_in':
|
|
67
|
+
return 'Session expired. Run `1688 login` and retry.';
|
|
68
|
+
case 'risk_challenge':
|
|
69
|
+
return '1688 is showing a verification challenge. Retry once with `--headed` and complete the manual check.';
|
|
70
|
+
case 'rate_limited':
|
|
71
|
+
return '1688 is rate-limiting this session. Wait a few minutes, then retry at a slower pace.';
|
|
72
|
+
case 'unknown':
|
|
73
|
+
return 'The page was not recognized. Inspect the saved artifact directory for screenshot and HTML.';
|
|
74
|
+
default:
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=page-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-state.js","sourceRoot":"","sources":["../../src/session/page-state.ts"],"names":[],"mappings":"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"}
|
package/dist/session/paths.js
CHANGED
|
@@ -24,9 +24,15 @@ export function socketPath() {
|
|
|
24
24
|
export function pidFile() {
|
|
25
25
|
return path.join(root(), 'daemon.pid');
|
|
26
26
|
}
|
|
27
|
+
export function daemonVersionFile() {
|
|
28
|
+
return path.join(root(), 'daemon.version');
|
|
29
|
+
}
|
|
27
30
|
export function daemonLogFile() {
|
|
28
31
|
return path.join(root(), 'daemon.log');
|
|
29
32
|
}
|
|
33
|
+
export function runsDir() {
|
|
34
|
+
return path.join(root(), 'runs');
|
|
35
|
+
}
|
|
30
36
|
export function loginQrFile() {
|
|
31
37
|
return path.join(root(), 'login-qr.png');
|
|
32
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/session/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,MAAM,UAAU,IAAI;IAClB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,0EAA0E;IAC1E,+DAA+D;IAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,8BAA8B,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAI,GAAG,SAAS;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/session/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,MAAM,UAAU,IAAI;IAClB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,0EAA0E;IAC1E,+DAA+D;IAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,8BAA8B,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAI,GAAG,SAAS;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC"}
|