@zenalexa/unicli 0.224.1 → 0.225.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/AGENTS.md +5 -5
- package/README.md +92 -92
- package/README.zh-CN.md +69 -69
- package/dist/adapters/_electron/desktop-shared.d.ts.map +1 -1
- package/dist/adapters/_electron/desktop-shared.js +2 -1
- package/dist/adapters/_electron/desktop-shared.js.map +1 -1
- package/dist/adapters/_electron/shared.d.ts +6 -0
- package/dist/adapters/_electron/shared.d.ts.map +1 -1
- package/dist/adapters/_electron/shared.js +9 -0
- package/dist/adapters/_electron/shared.js.map +1 -1
- package/dist/adapters/antigravity/extra.js +4 -1
- package/dist/adapters/antigravity/extra.js.map +1 -1
- package/dist/adapters/chatwise/extra.js +4 -1
- package/dist/adapters/chatwise/extra.js.map +1 -1
- package/dist/adapters/codex/codex.js +3 -1
- package/dist/adapters/codex/codex.js.map +1 -1
- package/dist/adapters/codex/extra.js +4 -1
- package/dist/adapters/codex/extra.js.map +1 -1
- package/dist/adapters/codex/projects.d.ts.map +1 -1
- package/dist/adapters/codex/projects.js +3 -1
- package/dist/adapters/codex/projects.js.map +1 -1
- package/dist/adapters/cursor/cursor.js +6 -1
- package/dist/adapters/cursor/cursor.js.map +1 -1
- package/dist/adapters/discord-app/discord-app.js +10 -1
- package/dist/adapters/discord-app/discord-app.js.map +1 -1
- package/dist/adapters/notion-app/notion-app.js +11 -1
- package/dist/adapters/notion-app/notion-app.js.map +1 -1
- package/dist/adapters/spotify/api.js +36 -6
- package/dist/adapters/spotify/api.js.map +1 -1
- package/dist/adapters/xiaohongshu/browser-state.d.ts +2 -1
- package/dist/adapters/xiaohongshu/browser-state.d.ts.map +1 -1
- package/dist/adapters/xiaohongshu/browser-state.js +56 -2
- package/dist/adapters/xiaohongshu/browser-state.js.map +1 -1
- package/dist/adapters/xiaohongshu/feed.d.ts +24 -0
- package/dist/adapters/xiaohongshu/feed.d.ts.map +1 -0
- package/dist/adapters/xiaohongshu/feed.js +82 -0
- package/dist/adapters/xiaohongshu/feed.js.map +1 -0
- package/dist/adapters/xueqiu/extra.js +2 -2
- package/dist/adapters/xueqiu/extra.js.map +1 -1
- package/dist/browser/cdp-client.d.ts +15 -1
- package/dist/browser/cdp-client.d.ts.map +1 -1
- package/dist/browser/cdp-client.js +45 -16
- package/dist/browser/cdp-client.js.map +1 -1
- package/dist/browser/daemon.js +29 -7
- package/dist/browser/daemon.js.map +1 -1
- package/dist/browser/launcher.d.ts.map +1 -1
- package/dist/browser/launcher.js +22 -8
- package/dist/browser/launcher.js.map +1 -1
- package/dist/browser/local-profiles.d.ts +2 -0
- package/dist/browser/local-profiles.d.ts.map +1 -1
- package/dist/browser/local-profiles.js +42 -2
- package/dist/browser/local-profiles.js.map +1 -1
- package/dist/browser/page.d.ts +2 -2
- package/dist/browser/page.d.ts.map +1 -1
- package/dist/browser/page.js +2 -2
- package/dist/browser/page.js.map +1 -1
- package/dist/browser/protocol.d.ts +7 -0
- package/dist/browser/protocol.d.ts.map +1 -1
- package/dist/browser/protocol.js +5 -0
- package/dist/browser/protocol.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/architecture.d.ts +3 -1
- package/dist/commands/architecture.d.ts.map +1 -1
- package/dist/commands/architecture.js +13 -5
- package/dist/commands/architecture.js.map +1 -1
- package/dist/commands/browser/index.d.ts.map +1 -1
- package/dist/commands/browser/index.js +26 -4
- package/dist/commands/browser/index.js.map +1 -1
- package/dist/commands/delivery.d.ts.map +1 -1
- package/dist/commands/delivery.js.map +1 -1
- package/dist/commands/describe.d.ts.map +1 -1
- package/dist/commands/describe.js +104 -9
- package/dist/commands/describe.js.map +1 -1
- package/dist/commands/dispatch.d.ts.map +1 -1
- package/dist/commands/dispatch.js +3 -13
- package/dist/commands/dispatch.js.map +1 -1
- package/dist/commands/do.d.ts +16 -13
- package/dist/commands/do.d.ts.map +1 -1
- package/dist/commands/do.js +72 -18
- package/dist/commands/do.js.map +1 -1
- package/dist/commands/social.d.ts.map +1 -1
- package/dist/commands/social.js +3 -13
- package/dist/commands/social.js.map +1 -1
- package/dist/core/architecture-tree.d.ts +26 -6
- package/dist/core/architecture-tree.d.ts.map +1 -1
- package/dist/core/architecture-tree.js +184 -40
- package/dist/core/architecture-tree.js.map +1 -1
- package/dist/core/capability-matrix.d.ts +63 -0
- package/dist/core/capability-matrix.d.ts.map +1 -0
- package/dist/core/capability-matrix.js +316 -0
- package/dist/core/capability-matrix.js.map +1 -0
- package/dist/core/command-contract-lint.d.ts.map +1 -1
- package/dist/core/command-contract-lint.js +3 -1
- package/dist/core/command-contract-lint.js.map +1 -1
- package/dist/core/command-contract.d.ts +10 -3
- package/dist/core/command-contract.d.ts.map +1 -1
- package/dist/core/command-contract.js +87 -5
- package/dist/core/command-contract.js.map +1 -1
- package/dist/discovery/aliases.d.ts.map +1 -1
- package/dist/discovery/aliases.js +26 -0
- package/dist/discovery/aliases.js.map +1 -1
- package/dist/discovery/core-catalog.d.ts +1 -0
- package/dist/discovery/core-catalog.d.ts.map +1 -1
- package/dist/discovery/core-catalog.js +22 -5
- package/dist/discovery/core-catalog.js.map +1 -1
- package/dist/discovery/intents.d.ts +31 -4
- package/dist/discovery/intents.d.ts.map +1 -1
- package/dist/discovery/intents.js +166 -3
- package/dist/discovery/intents.js.map +1 -1
- package/dist/discovery/loader.d.ts.map +1 -1
- package/dist/discovery/loader.js +3 -0
- package/dist/discovery/loader.js.map +1 -1
- package/dist/discovery/search.d.ts.map +1 -1
- package/dist/discovery/search.js +10 -1
- package/dist/discovery/search.js.map +1 -1
- package/dist/engine/cascade.d.ts.map +1 -1
- package/dist/engine/cascade.js +21 -25
- package/dist/engine/cascade.js.map +1 -1
- package/dist/engine/chromium-cookies.d.ts +27 -0
- package/dist/engine/chromium-cookies.d.ts.map +1 -1
- package/dist/engine/chromium-cookies.js +53 -14
- package/dist/engine/chromium-cookies.js.map +1 -1
- package/dist/engine/cookie-capture.d.ts +30 -0
- package/dist/engine/cookie-capture.d.ts.map +1 -0
- package/dist/engine/cookie-capture.js +104 -0
- package/dist/engine/cookie-capture.js.map +1 -0
- package/dist/engine/cookie-extractor.d.ts.map +1 -1
- package/dist/engine/cookie-extractor.js +4 -12
- package/dist/engine/cookie-extractor.js.map +1 -1
- package/dist/engine/cookie-refresh.d.ts +59 -8
- package/dist/engine/cookie-refresh.d.ts.map +1 -1
- package/dist/engine/cookie-refresh.js +80 -58
- package/dist/engine/cookie-refresh.js.map +1 -1
- package/dist/engine/cookie-source.d.ts +110 -0
- package/dist/engine/cookie-source.d.ts.map +1 -0
- package/dist/engine/cookie-source.js +207 -0
- package/dist/engine/cookie-source.js.map +1 -0
- package/dist/engine/cookies.d.ts +37 -25
- package/dist/engine/cookies.d.ts.map +1 -1
- package/dist/engine/cookies.js +58 -157
- package/dist/engine/cookies.js.map +1 -1
- package/dist/engine/delivery/index.d.ts +2 -1
- package/dist/engine/delivery/index.d.ts.map +1 -1
- package/dist/engine/delivery/index.js +2 -1
- package/dist/engine/delivery/index.js.map +1 -1
- package/dist/engine/delivery/spec.d.ts +44 -0
- package/dist/engine/delivery/spec.d.ts.map +1 -0
- package/dist/engine/delivery/spec.js +82 -0
- package/dist/engine/delivery/spec.js.map +1 -0
- package/dist/engine/executor.d.ts +17 -6
- package/dist/engine/executor.d.ts.map +1 -1
- package/dist/engine/executor.js +131 -68
- package/dist/engine/executor.js.map +1 -1
- package/dist/engine/kernel/stages.d.ts.map +1 -1
- package/dist/engine/kernel/stages.js +14 -4
- package/dist/engine/kernel/stages.js.map +1 -1
- package/dist/engine/objective/catalog.d.ts +23 -0
- package/dist/engine/objective/catalog.d.ts.map +1 -0
- package/dist/engine/objective/catalog.js +42 -0
- package/dist/engine/objective/catalog.js.map +1 -0
- package/dist/engine/objective/delivery.d.ts +18 -0
- package/dist/engine/objective/delivery.d.ts.map +1 -0
- package/dist/engine/objective/delivery.js +64 -0
- package/dist/engine/objective/delivery.js.map +1 -0
- package/dist/engine/objective/index.d.ts +20 -0
- package/dist/engine/objective/index.d.ts.map +1 -0
- package/dist/engine/objective/index.js +20 -0
- package/dist/engine/objective/index.js.map +1 -0
- package/dist/engine/objective/media-playback.d.ts +17 -0
- package/dist/engine/objective/media-playback.d.ts.map +1 -0
- package/dist/engine/objective/media-playback.js +186 -0
- package/dist/engine/objective/media-playback.js.map +1 -0
- package/dist/engine/objective/output.d.ts +20 -0
- package/dist/engine/objective/output.d.ts.map +1 -0
- package/dist/engine/objective/output.js +88 -0
- package/dist/engine/objective/output.js.map +1 -0
- package/dist/engine/objective/planner.d.ts +17 -0
- package/dist/engine/objective/planner.d.ts.map +1 -0
- package/dist/engine/objective/planner.js +60 -0
- package/dist/engine/objective/planner.js.map +1 -0
- package/dist/engine/objective/types.d.ts +66 -0
- package/dist/engine/objective/types.d.ts.map +1 -0
- package/dist/engine/objective/types.js +16 -0
- package/dist/engine/objective/types.js.map +1 -0
- package/dist/engine/runtime.d.ts.map +1 -1
- package/dist/engine/runtime.js +9 -4
- package/dist/engine/runtime.js.map +1 -1
- package/dist/engine/step-observer.d.ts +62 -0
- package/dist/engine/step-observer.d.ts.map +1 -0
- package/dist/engine/step-observer.js +38 -0
- package/dist/engine/step-observer.js.map +1 -0
- package/dist/engine/steps/browser-helpers.d.ts.map +1 -1
- package/dist/engine/steps/browser-helpers.js +36 -8
- package/dist/engine/steps/browser-helpers.js.map +1 -1
- package/dist/engine/steps/fetch-text.d.ts.map +1 -1
- package/dist/engine/steps/fetch-text.js +106 -33
- package/dist/engine/steps/fetch-text.js.map +1 -1
- package/dist/engine/steps/fetch.d.ts +20 -0
- package/dist/engine/steps/fetch.d.ts.map +1 -1
- package/dist/engine/steps/fetch.js.map +1 -1
- package/dist/engine/steps/index.d.ts +2 -0
- package/dist/engine/steps/index.d.ts.map +1 -1
- package/dist/engine/steps/index.js +2 -0
- package/dist/engine/steps/index.js.map +1 -1
- package/dist/engine/steps/split-text.d.ts +26 -0
- package/dist/engine/steps/split-text.d.ts.map +1 -0
- package/dist/engine/steps/split-text.js +89 -0
- package/dist/engine/steps/split-text.js.map +1 -0
- package/dist/engine/steps/to-entries.d.ts +9 -0
- package/dist/engine/steps/to-entries.d.ts.map +1 -0
- package/dist/engine/steps/to-entries.js +27 -0
- package/dist/engine/steps/to-entries.js.map +1 -0
- package/dist/fast-path/handlers/discovery.d.ts.map +1 -1
- package/dist/fast-path/handlers/discovery.js +7 -7
- package/dist/fast-path/handlers/discovery.js.map +1 -1
- package/dist/manifest-compact.txt +3 -2
- package/dist/manifest.json +183 -17
- package/dist/mcp/tools.js +1 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/output/auth-guidance.d.ts +17 -3
- package/dist/output/auth-guidance.d.ts.map +1 -1
- package/dist/output/auth-guidance.js +27 -3
- package/dist/output/auth-guidance.js.map +1 -1
- package/dist/output/error-map.d.ts.map +1 -1
- package/dist/output/error-map.js +4 -0
- package/dist/output/error-map.js.map +1 -1
- package/package.json +4 -2
- package/server.json +2 -2
- package/skills/unicli/SKILL.md +1 -1
- package/skills/unicli-claude-code/SKILL.md +1 -1
- package/skills/unicli-hermes/SKILL.md +1 -1
- package/src/adapters/12306/price.yaml +91 -0
- package/src/adapters/12306/stations.yaml +52 -0
- package/src/adapters/12306/trains.yaml +129 -0
- package/src/adapters/_electron/desktop-shared.ts +5 -1
- package/src/adapters/_electron/shared.ts +15 -0
- package/src/adapters/antigravity/extra.ts +10 -1
- package/src/adapters/chatwise/extra.ts +10 -1
- package/src/adapters/codex/codex.ts +6 -0
- package/src/adapters/codex/extra.ts +10 -1
- package/src/adapters/codex/projects.ts +9 -1
- package/src/adapters/cursor/cursor.ts +9 -0
- package/src/adapters/discord-app/discord-app.ts +16 -1
- package/src/adapters/macos/brightness.yaml +6 -3
- package/src/adapters/macos/calendar-list.yaml +9 -11
- package/src/adapters/macos/calendar-today.yaml +1 -1
- package/src/adapters/macos/safari-url.yaml +8 -4
- package/src/adapters/maoyan/hot.yaml +1 -1
- package/src/adapters/notion-app/notion-app.ts +17 -1
- package/src/adapters/spotify/api.ts +54 -8
- package/src/adapters/weibo/trending.yaml +2 -0
- package/src/adapters/xiaohongshu/browser-state.ts +59 -2
- package/src/adapters/xiaohongshu/feed.ts +103 -0
- package/src/adapters/xueqiu/extra.ts +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/delivery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/delivery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owner src/engine/delivery/spec.ts
|
|
3
|
+
* @does Builds explicit delivery operator spec templates from executable command matches.
|
|
4
|
+
* @needs src/engine/delivery/types.ts, src/types.ts
|
|
5
|
+
* @feeds src/commands/do.ts, src/commands/delivery.ts, tests/unit/delivery-cli.test.ts
|
|
6
|
+
* @breaks Bad template IDs or strategy kinds make do-to-delivery handoff ambiguous or non-executable.
|
|
7
|
+
* @invariants generated specs contain no attempts or runs; execution remains owned by delivery.run.
|
|
8
|
+
* @side-effects none
|
|
9
|
+
* @perf O(command metadata size).
|
|
10
|
+
* @concurrency pure and reentrant.
|
|
11
|
+
* @test tests/unit/commands/do.test.ts, tests/unit/delivery-cli.test.ts
|
|
12
|
+
* @stability experimental
|
|
13
|
+
* @since 2026-05-31
|
|
14
|
+
*/
|
|
15
|
+
import type { AdapterType, TargetSurface } from "../../types.js";
|
|
16
|
+
import type { DeliveryAttempt, DeliveryObjective, DeliveryStrategy } from "./types.js";
|
|
17
|
+
import type { RunId } from "../session/types.js";
|
|
18
|
+
export interface DeliveryRunRef {
|
|
19
|
+
run_id: RunId;
|
|
20
|
+
strategy_id: string;
|
|
21
|
+
id?: string;
|
|
22
|
+
ordinal?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface DeliveryOperatorSpec {
|
|
25
|
+
objective: DeliveryObjective;
|
|
26
|
+
strategies: DeliveryStrategy[];
|
|
27
|
+
attempts: DeliveryAttempt[];
|
|
28
|
+
runs: DeliveryRunRef[];
|
|
29
|
+
recorded_at?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface DeliverySpecCommandMatch {
|
|
32
|
+
intent: string;
|
|
33
|
+
site: string;
|
|
34
|
+
command: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
args?: Record<string, unknown>;
|
|
37
|
+
adapter_path?: string;
|
|
38
|
+
verify_command?: string;
|
|
39
|
+
adapter_type?: AdapterType | string;
|
|
40
|
+
target_surface?: TargetSurface | string;
|
|
41
|
+
uses_browser?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export declare function buildDeliveryOperatorSpecTemplate(match: DeliverySpecCommandMatch): DeliveryOperatorSpec;
|
|
44
|
+
//# sourceMappingURL=spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../src/engine/delivery/spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EACV,eAAe,EAEf,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAOjD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IACpC,cAAc,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,wBAAwB,GAC9B,oBAAoB,CA6BtB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owner src/engine/delivery/spec.ts
|
|
3
|
+
* @does Builds explicit delivery operator spec templates from executable command matches.
|
|
4
|
+
* @needs src/engine/delivery/types.ts, src/types.ts
|
|
5
|
+
* @feeds src/commands/do.ts, src/commands/delivery.ts, tests/unit/delivery-cli.test.ts
|
|
6
|
+
* @breaks Bad template IDs or strategy kinds make do-to-delivery handoff ambiguous or non-executable.
|
|
7
|
+
* @invariants generated specs contain no attempts or runs; execution remains owned by delivery.run.
|
|
8
|
+
* @side-effects none
|
|
9
|
+
* @perf O(command metadata size).
|
|
10
|
+
* @concurrency pure and reentrant.
|
|
11
|
+
* @test tests/unit/commands/do.test.ts, tests/unit/delivery-cli.test.ts
|
|
12
|
+
* @stability experimental
|
|
13
|
+
* @since 2026-05-31
|
|
14
|
+
*/
|
|
15
|
+
const DEFAULT_TEMPLATE_GATES = [
|
|
16
|
+
{ kind: "run_completed" },
|
|
17
|
+
{ kind: "required_evidence_type", evidence_type: "result-envelope" },
|
|
18
|
+
];
|
|
19
|
+
export function buildDeliveryOperatorSpecTemplate(match) {
|
|
20
|
+
const site = match.site.trim();
|
|
21
|
+
const command = match.command.trim();
|
|
22
|
+
const objectiveId = `deliver-${slugPart(site)}-${slugPart(command)}`;
|
|
23
|
+
const strategyKind = strategyKindForMatch(match);
|
|
24
|
+
const strategyId = `${strategyKind}-${slugPart(site)}-${slugPart(command)}`;
|
|
25
|
+
const strategy = {
|
|
26
|
+
id: strategyId,
|
|
27
|
+
kind: strategyKind,
|
|
28
|
+
label: strategyLabel(match, site, command),
|
|
29
|
+
priority: 10,
|
|
30
|
+
command: `${site}.${command}`,
|
|
31
|
+
...(hasEntries(match.args) ? { args: match.args } : {}),
|
|
32
|
+
...(nonEmpty(match.adapter_path)
|
|
33
|
+
? { adapter_path: match.adapter_path }
|
|
34
|
+
: {}),
|
|
35
|
+
verify_command: match.verify_command ?? `unicli test ${site} ${command}`,
|
|
36
|
+
};
|
|
37
|
+
return {
|
|
38
|
+
objective: {
|
|
39
|
+
id: objectiveId,
|
|
40
|
+
goal: nonEmpty(match.intent) ?? `Run ${site}.${command}`,
|
|
41
|
+
evidence_gates: DEFAULT_TEMPLATE_GATES,
|
|
42
|
+
},
|
|
43
|
+
strategies: [strategy],
|
|
44
|
+
attempts: [],
|
|
45
|
+
runs: [],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function strategyKindForMatch(match) {
|
|
49
|
+
if (match.uses_browser === true || match.adapter_type === "browser") {
|
|
50
|
+
return "browser";
|
|
51
|
+
}
|
|
52
|
+
if (match.target_surface === "desktop" || match.adapter_type === "desktop") {
|
|
53
|
+
return "desktop";
|
|
54
|
+
}
|
|
55
|
+
if (match.target_surface === "system" ||
|
|
56
|
+
match.adapter_type === "bridge" ||
|
|
57
|
+
match.adapter_type === "service") {
|
|
58
|
+
return "local";
|
|
59
|
+
}
|
|
60
|
+
return "adapter";
|
|
61
|
+
}
|
|
62
|
+
function strategyLabel(match, site, command) {
|
|
63
|
+
const description = nonEmpty(match.description);
|
|
64
|
+
return description
|
|
65
|
+
? `Run ${site}.${command}: ${description}`
|
|
66
|
+
: `Run ${site}.${command}`;
|
|
67
|
+
}
|
|
68
|
+
function hasEntries(value) {
|
|
69
|
+
return value !== undefined && Object.keys(value).length > 0;
|
|
70
|
+
}
|
|
71
|
+
function nonEmpty(value) {
|
|
72
|
+
const trimmed = value?.trim();
|
|
73
|
+
return trimmed ? trimmed : undefined;
|
|
74
|
+
}
|
|
75
|
+
function slugPart(value) {
|
|
76
|
+
return (value
|
|
77
|
+
.trim()
|
|
78
|
+
.toLowerCase()
|
|
79
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
80
|
+
.replace(/^-+|-+$/g, "") || "command");
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../src/engine/delivery/spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,17 +4,21 @@
|
|
|
4
4
|
* Dispatches pipeline steps through `step-registry`. Per-step bodies live
|
|
5
5
|
* in `steps/*.ts` and self-register on import. This file owns:
|
|
6
6
|
* - PipelineError shape
|
|
7
|
-
* - `executeStep` dispatch (registry → visual/ax bus → plugin registry)
|
|
7
|
+
* - `executeStep` dispatch (registry → visual/ax bus → plugin registry);
|
|
8
|
+
* an unrecognized action raises a typed `unknown_action` PipelineError
|
|
9
|
+
* - `buildPipelineError` — single shaping point for step-failure envelopes
|
|
8
10
|
* - `runPipeline` orchestration (cookies, retry, fallback, auto-fix,
|
|
9
|
-
* diagnostic, cookie refresh, temp-dir cleanup)
|
|
11
|
+
* diagnostic, cookie refresh, temp-dir cleanup, per-step observation)
|
|
10
12
|
*
|
|
11
|
-
* Per-step recovery helpers live in `runtime.ts`.
|
|
13
|
+
* Per-step recovery helpers live in `runtime.ts`. The per-step observation
|
|
14
|
+
* record + sink contract live in `step-observer.ts`.
|
|
12
15
|
*/
|
|
13
16
|
import type { PipelineStep } from "../types.js";
|
|
14
17
|
import type { BrowserSessionPreference } from "../types.js";
|
|
15
18
|
import type { BrowserPage } from "../browser/page.js";
|
|
16
19
|
import { getBus, buildTransportCtx, _resetTransportBusForTests } from "../transport/bus.js";
|
|
17
20
|
import type { ArgSource, ResolvedArgs } from "./args.js";
|
|
21
|
+
import { type StepObserver } from "./step-observer.js";
|
|
18
22
|
import "./steps/index.js";
|
|
19
23
|
export { assertSafeRequestUrl } from "./ssrf.js";
|
|
20
24
|
export { getBus, buildTransportCtx, _resetTransportBusForTests };
|
|
@@ -44,6 +48,13 @@ export interface PipelineOptions {
|
|
|
44
48
|
trace_id?: string;
|
|
45
49
|
/** Browser transport preference declared by a browser command. */
|
|
46
50
|
browserSession?: BrowserSessionPreference;
|
|
51
|
+
/**
|
|
52
|
+
* Optional sink for per-step observations. When provided, runPipeline emits
|
|
53
|
+
* one observation per executed step (timing + output shape on success,
|
|
54
|
+
* errorType + message on failure). Additive side channel — never alters the
|
|
55
|
+
* result/error envelope. Undefined = zero overhead (the default).
|
|
56
|
+
*/
|
|
57
|
+
observer?: StepObserver;
|
|
47
58
|
}
|
|
48
59
|
export type PipelineContext = {
|
|
49
60
|
data: unknown;
|
|
@@ -74,7 +85,7 @@ export declare class PipelineError extends Error {
|
|
|
74
85
|
step: number;
|
|
75
86
|
action: string;
|
|
76
87
|
config: unknown;
|
|
77
|
-
errorType: "http_error" | "selector_miss" | "empty_result" | "parse_error" | "network_error" | "timeout" | "expression_error" | "assertion_failed" | "permission_denied" | "stale_ref" | "ambiguous" | "ref_not_found";
|
|
88
|
+
errorType: "http_error" | "selector_miss" | "empty_result" | "parse_error" | "network_error" | "timeout" | "expression_error" | "assertion_failed" | "permission_denied" | "stale_ref" | "ambiguous" | "ref_not_found" | "unknown_action";
|
|
78
89
|
url?: string;
|
|
79
90
|
statusCode?: number;
|
|
80
91
|
responsePreview?: string;
|
|
@@ -86,7 +97,7 @@ export declare class PipelineError extends Error {
|
|
|
86
97
|
step: number;
|
|
87
98
|
action: string;
|
|
88
99
|
config: unknown;
|
|
89
|
-
errorType: "http_error" | "selector_miss" | "empty_result" | "parse_error" | "network_error" | "timeout" | "expression_error" | "assertion_failed" | "permission_denied" | "stale_ref" | "ambiguous" | "ref_not_found";
|
|
100
|
+
errorType: "http_error" | "selector_miss" | "empty_result" | "parse_error" | "network_error" | "timeout" | "expression_error" | "assertion_failed" | "permission_denied" | "stale_ref" | "ambiguous" | "ref_not_found" | "unknown_action";
|
|
90
101
|
url?: string;
|
|
91
102
|
statusCode?: number;
|
|
92
103
|
responsePreview?: string;
|
|
@@ -100,7 +111,7 @@ export declare class PipelineError extends Error {
|
|
|
100
111
|
step: number;
|
|
101
112
|
action: string;
|
|
102
113
|
config: unknown;
|
|
103
|
-
errorType: "http_error" | "selector_miss" | "empty_result" | "parse_error" | "network_error" | "timeout" | "expression_error" | "assertion_failed" | "permission_denied" | "stale_ref" | "ambiguous" | "ref_not_found";
|
|
114
|
+
errorType: "http_error" | "selector_miss" | "empty_result" | "parse_error" | "network_error" | "timeout" | "expression_error" | "assertion_failed" | "permission_denied" | "stale_ref" | "ambiguous" | "ref_not_found" | "unknown_action";
|
|
104
115
|
url?: string;
|
|
105
116
|
statusCode?: number;
|
|
106
117
|
responsePreview?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/engine/executor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/engine/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/executor.js
CHANGED
|
@@ -4,20 +4,25 @@
|
|
|
4
4
|
* Dispatches pipeline steps through `step-registry`. Per-step bodies live
|
|
5
5
|
* in `steps/*.ts` and self-register on import. This file owns:
|
|
6
6
|
* - PipelineError shape
|
|
7
|
-
* - `executeStep` dispatch (registry → visual/ax bus → plugin registry)
|
|
7
|
+
* - `executeStep` dispatch (registry → visual/ax bus → plugin registry);
|
|
8
|
+
* an unrecognized action raises a typed `unknown_action` PipelineError
|
|
9
|
+
* - `buildPipelineError` — single shaping point for step-failure envelopes
|
|
8
10
|
* - `runPipeline` orchestration (cookies, retry, fallback, auto-fix,
|
|
9
|
-
* diagnostic, cookie refresh, temp-dir cleanup)
|
|
11
|
+
* diagnostic, cookie refresh, temp-dir cleanup, per-step observation)
|
|
10
12
|
*
|
|
11
|
-
* Per-step recovery helpers live in `runtime.ts`.
|
|
13
|
+
* Per-step recovery helpers live in `runtime.ts`. The per-step observation
|
|
14
|
+
* record + sink contract live in `step-observer.ts`.
|
|
12
15
|
*/
|
|
13
16
|
import { rmSync } from "node:fs";
|
|
14
17
|
import { isTargetError } from "../browser/target-errors.js";
|
|
15
|
-
import {
|
|
18
|
+
import { acquireCookies, formatCookieHeader } from "./cookies.js";
|
|
19
|
+
import { describeCookieFailure } from "./cookie-source.js";
|
|
16
20
|
import { VISUAL_STEP_HANDLERS } from "./steps/visual.js";
|
|
17
21
|
import { DESKTOP_AX_STEP_HANDLERS, } from "./steps/desktop-ax.js";
|
|
18
22
|
import { DESKTOP_SIDECAR_STEP_HANDLERS, isDesktopSidecarStep, } from "./steps/desktop-sidecar.js";
|
|
19
23
|
import { getStep } from "./step-registry.js";
|
|
20
24
|
import { getBus, buildTransportCtx, _resetTransportBusForTests, } from "../transport/bus.js";
|
|
25
|
+
import { summarizeOutput, } from "./step-observer.js";
|
|
21
26
|
// Side-effect import: every per-step module self-registers on load.
|
|
22
27
|
import "./steps/index.js";
|
|
23
28
|
export { assertSafeRequestUrl } from "./ssrf.js";
|
|
@@ -86,7 +91,97 @@ export async function executeStep(ctx, action, config, stepIndex, fullStep, dept
|
|
|
86
91
|
const result = await customHandler(pluginCtx, config);
|
|
87
92
|
return { ...ctx, data: result.data, vars: result.vars };
|
|
88
93
|
}
|
|
89
|
-
|
|
94
|
+
throw new PipelineError(`Unknown pipeline step action "${action}" at step ${stepIndex} — not a registered step, visual/ax/sidecar handler, or plugin step.`, {
|
|
95
|
+
step: stepIndex,
|
|
96
|
+
action,
|
|
97
|
+
config,
|
|
98
|
+
errorType: "unknown_action",
|
|
99
|
+
suggestion: `Step ${stepIndex} names "${action}", which is not a known pipeline step. Run \`unicli list\` for valid steps, or fix the typo in the adapter YAML.`,
|
|
100
|
+
retryable: false,
|
|
101
|
+
alternatives: [],
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Build the structured PipelineError for a step failure. Centralizes the
|
|
106
|
+
* error-shaping that the runPipeline catch used to inline across four branches,
|
|
107
|
+
* so the same error can be both observed and thrown. A PipelineError thrown by
|
|
108
|
+
* a step (e.g. the unknown-action guard, fetch http errors) passes through
|
|
109
|
+
* verbatim; only raw/target/HTTP-message errors are wrapped.
|
|
110
|
+
*/
|
|
111
|
+
function buildPipelineError(err, stepIndex, action, config, options) {
|
|
112
|
+
if (err instanceof PipelineError)
|
|
113
|
+
return err;
|
|
114
|
+
if (isTargetError(err)) {
|
|
115
|
+
const code = err.detail.code;
|
|
116
|
+
const suggestion = code === "stale_ref"
|
|
117
|
+
? `Re-take a snapshot before the ${action} step — the page has changed.`
|
|
118
|
+
: code === "ambiguous"
|
|
119
|
+
? `Ref ${err.detail.ref} matches multiple elements; narrow the ref via a fresh snapshot.`
|
|
120
|
+
: `Ref ${err.detail.ref} is not on the page; re-take a snapshot.`;
|
|
121
|
+
const alternatives = (err.detail.candidates ?? [])
|
|
122
|
+
.slice(0, 5)
|
|
123
|
+
.map((c) => `ref:${c.ref} (${c.role}${c.name ? `: ${c.name}` : ""})`);
|
|
124
|
+
return new PipelineError(err.message, {
|
|
125
|
+
step: stepIndex,
|
|
126
|
+
action,
|
|
127
|
+
config,
|
|
128
|
+
errorType: code,
|
|
129
|
+
suggestion,
|
|
130
|
+
retryable: code === "stale_ref",
|
|
131
|
+
alternatives,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
135
|
+
const httpStatus = /\bHTTP\s+(\d{3})\b/i.exec(errMsg)?.[1];
|
|
136
|
+
if (httpStatus) {
|
|
137
|
+
const statusCode = Number(httpStatus);
|
|
138
|
+
const retryable = statusCode === 429 ||
|
|
139
|
+
statusCode === 500 ||
|
|
140
|
+
statusCode === 502 ||
|
|
141
|
+
statusCode === 503 ||
|
|
142
|
+
statusCode === 504;
|
|
143
|
+
return new PipelineError(`Step ${stepIndex} (${action}) failed: ${errMsg}`, {
|
|
144
|
+
step: stepIndex,
|
|
145
|
+
action,
|
|
146
|
+
config,
|
|
147
|
+
errorType: "http_error",
|
|
148
|
+
statusCode,
|
|
149
|
+
suggestion: statusCode === 401 || statusCode === 403
|
|
150
|
+
? `Refresh login state with \`unicli --auth-retry ${options?.site ?? "<site>"} <command> --args-file <path.json>\`, or open the site in Chrome and complete login/challenge.`
|
|
151
|
+
: statusCode === 429
|
|
152
|
+
? "The upstream site rate-limited the request. Wait, lower --limit, then retry."
|
|
153
|
+
: `The browser-side request returned HTTP ${statusCode}. Retry once; if it persists, inspect the adapter endpoint with \`unicli repair ${options?.site ?? "<site>"} <command>\`.`,
|
|
154
|
+
retryable,
|
|
155
|
+
alternatives: statusCode === 401 || statusCode === 403
|
|
156
|
+
? [`unicli auth import ${options?.site ?? "<site>"}`]
|
|
157
|
+
: [],
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
const isTransient = /timeout|ETIMEDOUT|ECONNREFUSED|ECONNRESET|socket hang up/i.test(errMsg);
|
|
161
|
+
return new PipelineError(`Step ${stepIndex} (${action}) failed: ${errMsg}`, {
|
|
162
|
+
step: stepIndex,
|
|
163
|
+
action,
|
|
164
|
+
config,
|
|
165
|
+
errorType: isTransient ? "timeout" : "parse_error",
|
|
166
|
+
suggestion: `Check the ${action} step at index ${stepIndex} in the adapter YAML. The expression or configuration may be invalid.`,
|
|
167
|
+
retryable: isTransient,
|
|
168
|
+
alternatives: [],
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Emit a step observation through the sink, guarding against a misbehaving
|
|
173
|
+
* observer. Observation is a side channel that must never break a run.
|
|
174
|
+
*/
|
|
175
|
+
function recordObservation(observer, observation) {
|
|
176
|
+
if (!observer)
|
|
177
|
+
return;
|
|
178
|
+
try {
|
|
179
|
+
observer.record(observation);
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// REASON: step observation is a side channel; a misbehaving observer must
|
|
183
|
+
// never break or alter a pipeline run (same invariant the run recorder holds).
|
|
184
|
+
}
|
|
90
185
|
}
|
|
91
186
|
async function dispatchBusStep(ctx, action, config) {
|
|
92
187
|
const params = config && typeof config === "object" && !Array.isArray(config)
|
|
@@ -107,19 +202,20 @@ export async function runPipeline(steps, bag, base, options) {
|
|
|
107
202
|
let cookieHeader;
|
|
108
203
|
if ((options?.strategy === "cookie" || options?.strategy === "header") &&
|
|
109
204
|
options?.site) {
|
|
110
|
-
const
|
|
111
|
-
if (
|
|
112
|
-
|
|
205
|
+
const outcome = await acquireCookies(options.site, options.domain);
|
|
206
|
+
if (outcome.status !== "loaded") {
|
|
207
|
+
const failure = describeCookieFailure(outcome, options.site, options.domain);
|
|
208
|
+
throw new PipelineError(failure.message, {
|
|
113
209
|
step: -1,
|
|
114
210
|
action: "auth",
|
|
115
211
|
config: { site: options.site, strategy: options.strategy },
|
|
116
212
|
errorType: "http_error",
|
|
117
|
-
suggestion:
|
|
118
|
-
retryable:
|
|
119
|
-
alternatives: [`unicli auth
|
|
213
|
+
suggestion: failure.suggestion,
|
|
214
|
+
retryable: failure.retryable,
|
|
215
|
+
alternatives: [`unicli auth import ${options.site}`],
|
|
120
216
|
});
|
|
121
217
|
}
|
|
122
|
-
cookieHeader = formatCookieHeader(cookies);
|
|
218
|
+
cookieHeader = formatCookieHeader(outcome.cookies);
|
|
123
219
|
}
|
|
124
220
|
let ctx = {
|
|
125
221
|
data: null,
|
|
@@ -144,6 +240,7 @@ export async function runPipeline(steps, bag, base, options) {
|
|
|
144
240
|
const retryCount = rt.getRetryCount(step, extracted);
|
|
145
241
|
const backoffMs = rt.getBackoffMs(step, extracted);
|
|
146
242
|
const stepConfig = rt.stripRetryKeys(extracted);
|
|
243
|
+
const startedAt = performance.now();
|
|
147
244
|
try {
|
|
148
245
|
ctx =
|
|
149
246
|
retryCount > 0
|
|
@@ -156,71 +253,37 @@ export async function runPipeline(steps, bag, base, options) {
|
|
|
156
253
|
: undefined;
|
|
157
254
|
if (fixed) {
|
|
158
255
|
ctx = fixed;
|
|
256
|
+
recordObservation(options?.observer, {
|
|
257
|
+
index: i,
|
|
258
|
+
action,
|
|
259
|
+
status: "ok",
|
|
260
|
+
durationMs: performance.now() - startedAt,
|
|
261
|
+
output: summarizeOutput(ctx.data),
|
|
262
|
+
});
|
|
159
263
|
if (ctx.tempDir)
|
|
160
264
|
tempDir = ctx.tempDir;
|
|
161
265
|
continue;
|
|
162
266
|
}
|
|
163
267
|
await rt.emitDiagnosticIfEnabled(err, ctx, options?.site);
|
|
164
268
|
await rt.maybeRefreshCookies(err, options);
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const code = err.detail.code;
|
|
169
|
-
const suggestion = code === "stale_ref"
|
|
170
|
-
? `Re-take a snapshot before the ${action} step — the page has changed.`
|
|
171
|
-
: code === "ambiguous"
|
|
172
|
-
? `Ref ${err.detail.ref} matches multiple elements; narrow the ref via a fresh snapshot.`
|
|
173
|
-
: `Ref ${err.detail.ref} is not on the page; re-take a snapshot.`;
|
|
174
|
-
const alternatives = (err.detail.candidates ?? [])
|
|
175
|
-
.slice(0, 5)
|
|
176
|
-
.map((c) => `ref:${c.ref} (${c.role}${c.name ? `: ${c.name}` : ""})`);
|
|
177
|
-
throw new PipelineError(err.message, {
|
|
178
|
-
step: i,
|
|
179
|
-
action,
|
|
180
|
-
config,
|
|
181
|
-
errorType: code,
|
|
182
|
-
suggestion,
|
|
183
|
-
retryable: code === "stale_ref",
|
|
184
|
-
alternatives,
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
const errMsg = err instanceof Error ? err.message : String(err);
|
|
188
|
-
const httpStatus = /\bHTTP\s+(\d{3})\b/i.exec(errMsg)?.[1];
|
|
189
|
-
if (httpStatus) {
|
|
190
|
-
const statusCode = Number(httpStatus);
|
|
191
|
-
const retryable = statusCode === 429 ||
|
|
192
|
-
statusCode === 500 ||
|
|
193
|
-
statusCode === 502 ||
|
|
194
|
-
statusCode === 503 ||
|
|
195
|
-
statusCode === 504;
|
|
196
|
-
throw new PipelineError(`Step ${i} (${action}) failed: ${errMsg}`, {
|
|
197
|
-
step: i,
|
|
198
|
-
action,
|
|
199
|
-
config,
|
|
200
|
-
errorType: "http_error",
|
|
201
|
-
statusCode,
|
|
202
|
-
suggestion: statusCode === 401 || statusCode === 403
|
|
203
|
-
? `Refresh login state with \`unicli --auth-retry ${options?.site ?? "<site>"} <command> --args-file <path.json>\`, or open the site in Chrome and complete login/challenge.`
|
|
204
|
-
: statusCode === 429
|
|
205
|
-
? "The upstream site rate-limited the request. Wait, lower --limit, then retry."
|
|
206
|
-
: `The browser-side request returned HTTP ${statusCode}. Retry once; if it persists, inspect the adapter endpoint with \`unicli repair ${options?.site ?? "<site>"} <command>\`.`,
|
|
207
|
-
retryable,
|
|
208
|
-
alternatives: statusCode === 401 || statusCode === 403
|
|
209
|
-
? [`unicli auth import ${options?.site ?? "<site>"}`]
|
|
210
|
-
: [],
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
const isTransient = /timeout|ETIMEDOUT|ECONNREFUSED|ECONNRESET|socket hang up/i.test(errMsg);
|
|
214
|
-
throw new PipelineError(`Step ${i} (${action}) failed: ${errMsg}`, {
|
|
215
|
-
step: i,
|
|
269
|
+
const pipelineError = buildPipelineError(err, i, action, config, options);
|
|
270
|
+
recordObservation(options?.observer, {
|
|
271
|
+
index: i,
|
|
216
272
|
action,
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
alternatives: [],
|
|
273
|
+
status: "error",
|
|
274
|
+
durationMs: performance.now() - startedAt,
|
|
275
|
+
errorType: pipelineError.detail.errorType,
|
|
276
|
+
errorMessage: pipelineError.message,
|
|
222
277
|
});
|
|
278
|
+
throw pipelineError;
|
|
223
279
|
}
|
|
280
|
+
recordObservation(options?.observer, {
|
|
281
|
+
index: i,
|
|
282
|
+
action,
|
|
283
|
+
status: "ok",
|
|
284
|
+
durationMs: performance.now() - startedAt,
|
|
285
|
+
output: summarizeOutput(ctx.data),
|
|
286
|
+
});
|
|
224
287
|
if (ctx.tempDir)
|
|
225
288
|
tempDir = ctx.tempDir;
|
|
226
289
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/engine/executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/engine/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stages.d.ts","sourceRoot":"","sources":["../../../src/engine/kernel/stages.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"stages.d.ts","sourceRoot":"","sources":["../../../src/engine/kernel/stages.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import { buildBrowserCommandDiagnostic } from "../browser/diagnostics.js";
|
|
|
12
12
|
import { createApprovalStore, rememberApproval } from "../approval-store.js";
|
|
13
13
|
import { errorTypeToCode, errorToAgentFields, mapErrorToExitCode, } from "../../output/error-map.js";
|
|
14
14
|
import { commandStrategy } from "../../registry.js";
|
|
15
|
-
import { ExitCode } from "../../types.js";
|
|
15
|
+
import { ExitCode, } from "../../types.js";
|
|
16
16
|
import { InvalidPermissionProfileError, resolveOperationAdapterPath, resolveOperationTargetSurface, } from "../operation-policy.js";
|
|
17
17
|
import { evaluateOperationPolicyWithApprovals } from "../permission-runtime.js";
|
|
18
18
|
import { PermissionRulesConfigError } from "../permission-rules.js";
|
|
@@ -322,13 +322,14 @@ export async function rememberKernelApproval(inv, policy, warnings) {
|
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
324
|
export async function executeKernelCommand(inv, ctx) {
|
|
325
|
+
const browserSession = resolveBrowserSessionPreference(inv.command, ctx.strategy);
|
|
325
326
|
if (inv.command.pipeline) {
|
|
326
327
|
return runPipeline(inv.command.pipeline, inv.bag, inv.adapter.base, {
|
|
327
328
|
site: inv.adapter.name,
|
|
328
329
|
command: inv.cmdName,
|
|
329
330
|
strategy: ctx.strategy,
|
|
330
331
|
domain: inv.command.domain ?? inv.adapter.domain,
|
|
331
|
-
browserSession
|
|
332
|
+
browserSession,
|
|
332
333
|
surface: inv.surface,
|
|
333
334
|
trace_id: inv.trace_id,
|
|
334
335
|
});
|
|
@@ -349,7 +350,7 @@ export async function executeKernelCommand(inv, ctx) {
|
|
|
349
350
|
site: inv.adapter.name,
|
|
350
351
|
command: inv.cmdName,
|
|
351
352
|
domain: inv.command.domain ?? inv.adapter.domain,
|
|
352
|
-
browserSession
|
|
353
|
+
browserSession,
|
|
353
354
|
});
|
|
354
355
|
}
|
|
355
356
|
const raw = await inv.command.func(page, inv.bag.args);
|
|
@@ -364,6 +365,15 @@ export async function executeKernelCommand(inv, ctx) {
|
|
|
364
365
|
}
|
|
365
366
|
throw new Error(`command ${ctx.key} has neither pipeline nor func`);
|
|
366
367
|
}
|
|
368
|
+
function resolveBrowserSessionPreference(command, strategy) {
|
|
369
|
+
if (command.browserSession)
|
|
370
|
+
return command.browserSession;
|
|
371
|
+
if (command.browser === true &&
|
|
372
|
+
(strategy === "cookie" || strategy === "header" || strategy === "intercept")) {
|
|
373
|
+
return "user";
|
|
374
|
+
}
|
|
375
|
+
return undefined;
|
|
376
|
+
}
|
|
367
377
|
export function malformedCommandResult(inv, ctx, startedAt, warnings) {
|
|
368
378
|
const error = {
|
|
369
379
|
code: "internal_error",
|
|
@@ -425,7 +435,7 @@ export function successKernelResult(inv, ctx, startedAt, warnings, results) {
|
|
|
425
435
|
}),
|
|
426
436
|
},
|
|
427
437
|
durationMs,
|
|
428
|
-
exitCode:
|
|
438
|
+
exitCode: ExitCode.SUCCESS,
|
|
429
439
|
warnings,
|
|
430
440
|
...(diagnostics ? { diagnostics } : {}),
|
|
431
441
|
};
|