opendevbrowser 0.0.27 → 0.0.28
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/README.md +1 -1
- package/dist/browser/canvas-manager.d.ts.map +1 -1
- package/dist/canvas/document-store.d.ts.map +1 -1
- package/dist/canvas/guidance.d.ts +22 -0
- package/dist/canvas/guidance.d.ts.map +1 -0
- package/dist/{chunk-MWBDO2L5.js → chunk-I5ZCOZZV.js} +224 -80
- package/dist/chunk-I5ZCOZZV.js.map +1 -0
- package/dist/{chunk-V5DJUSPV.js → chunk-T3VVHJTK.js} +1381 -318
- package/dist/chunk-T3VVHJTK.js.map +1 -0
- package/dist/cli/commands/inspiredesign.d.ts +2 -0
- package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
- package/dist/cli/commands/macro-resolve.d.ts +2 -0
- package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
- package/dist/cli/commands/product-video.d.ts +2 -0
- package/dist/cli/commands/product-video.d.ts.map +1 -1
- package/dist/cli/commands/research.d.ts +2 -0
- package/dist/cli/commands/research.d.ts.map +1 -1
- package/dist/cli/daemon-commands.d.ts.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.js +125 -28
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/workflow-message.d.ts +3 -0
- package/dist/cli/utils/workflow-message.d.ts.map +1 -1
- package/dist/daemon-fingerprint.json +1 -1
- package/dist/index.js +39 -15
- package/dist/index.js.map +1 -1
- package/dist/inspiredesign/contract.d.ts +52 -1
- package/dist/inspiredesign/contract.d.ts.map +1 -1
- package/dist/inspiredesign/handoff.d.ts +12 -0
- package/dist/inspiredesign/handoff.d.ts.map +1 -1
- package/dist/inspiredesign/reference-pattern-board.d.ts +1 -0
- package/dist/inspiredesign/reference-pattern-board.d.ts.map +1 -1
- package/dist/macros/execute-runtime.d.ts +2 -1
- package/dist/macros/execute-runtime.d.ts.map +1 -1
- package/dist/macros/execute.d.ts +4 -2
- package/dist/macros/execute.d.ts.map +1 -1
- package/dist/opendevbrowser.js +39 -15
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/providers/browser-fallback.d.ts +7 -0
- package/dist/providers/browser-fallback.d.ts.map +1 -1
- package/dist/providers/community/index.d.ts.map +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/renderer.d.ts.map +1 -1
- package/dist/providers/research-compiler.d.ts.map +1 -1
- package/dist/providers/runtime-bundle.d.ts +1 -1
- package/dist/providers/runtime-bundle.d.ts.map +1 -1
- package/dist/providers/runtime-factory.d.ts.map +1 -1
- package/dist/providers/shopping/index.d.ts.map +1 -1
- package/dist/providers/social/platform.d.ts.map +1 -1
- package/dist/providers/social/search-quality.d.ts.map +1 -1
- package/dist/providers/social/youtube.d.ts.map +1 -1
- package/dist/providers/workflow-handoff.d.ts +18 -1
- package/dist/providers/workflow-handoff.d.ts.map +1 -1
- package/dist/providers/workflows.d.ts +3 -0
- package/dist/providers/workflows.d.ts.map +1 -1
- package/dist/{providers-TR3DUJZV.js → providers-QF2RFB4J.js} +2 -2
- package/dist/public-surface/generated-manifest.d.ts +6 -6
- package/dist/public-surface/generated-manifest.d.ts.map +1 -1
- package/dist/public-surface/source.d.ts +8 -8
- package/dist/public-surface/source.d.ts.map +1 -1
- package/dist/tools/inspiredesign_run.d.ts.map +1 -1
- package/dist/tools/macro_resolve.d.ts.map +1 -1
- package/dist/tools/product_video_run.d.ts.map +1 -1
- package/dist/tools/research_run.d.ts.map +1 -1
- package/dist/tools/shopping_run.d.ts.map +1 -1
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/opendevbrowser-best-practices/SKILL.md +6 -6
- package/skills/opendevbrowser-design-agent/SKILL.md +5 -0
- package/skills/opendevbrowser-design-agent/artifacts/design-contract-playbook.md +6 -1
- package/skills/opendevbrowser-design-agent/assets/templates/design-contract.v1.json +15 -1
- package/skills/opendevbrowser-design-agent/assets/templates/inspiredesign-advanced-brief.v1.json +5 -2
- package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +2 -0
- package/dist/chunk-MWBDO2L5.js.map +0 -1
- package/dist/chunk-V5DJUSPV.js.map +0 -1
- /package/dist/{providers-TR3DUJZV.js.map → providers-QF2RFB4J.js.map} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ParsedArgs } from "../args";
|
|
2
2
|
import { type ChallengeAutomationMode } from "../../challenges/types";
|
|
3
|
+
import type { WorkflowBrowserMode } from "../../providers/types";
|
|
3
4
|
type InspiredesignCommandArgs = {
|
|
4
5
|
brief?: string;
|
|
5
6
|
urls?: string[];
|
|
@@ -9,6 +10,7 @@ type InspiredesignCommandArgs = {
|
|
|
9
10
|
timeoutMs?: number;
|
|
10
11
|
outputDir?: string;
|
|
11
12
|
ttlHours?: number;
|
|
13
|
+
browserMode?: WorkflowBrowserMode;
|
|
12
14
|
useCookies?: boolean;
|
|
13
15
|
challengeAutomationMode?: ChallengeAutomationMode;
|
|
14
16
|
cookiePolicyOverride?: "off" | "auto" | "required";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspiredesign.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/inspiredesign.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAW1C,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"inspiredesign.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/inspiredesign.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAW1C,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,KAAK,wBAAwB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC7B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,oBAAoB,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;CACpD,CAAC;AA6KF,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,UAAU;;;;GAgC7D;AAED,eAAO,MAAM,QAAQ;yCAhMuB,MAAM,EAAE,KAAG,wBAAwB;CAkM9E,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { ParsedArgs } from "../args";
|
|
2
2
|
import { type ChallengeAutomationMode } from "../../challenges/types";
|
|
3
|
+
import type { WorkflowBrowserMode } from "../../providers/types";
|
|
3
4
|
type MacroResolveArgs = {
|
|
4
5
|
expression?: string;
|
|
5
6
|
defaultProvider?: string;
|
|
6
7
|
includeCatalog?: boolean;
|
|
7
8
|
execute?: boolean;
|
|
8
9
|
timeoutMs?: number;
|
|
10
|
+
browserMode?: WorkflowBrowserMode;
|
|
9
11
|
challengeAutomationMode?: ChallengeAutomationMode;
|
|
10
12
|
};
|
|
11
13
|
export declare function runMacroResolve(args: ParsedArgs): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"macro-resolve.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/macro-resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"macro-resolve.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/macro-resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAU1C,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACnD,CAAC;AAsIF,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU;;;;GAgCrD;AAED,eAAO,MAAM,QAAQ;qCAzHmB,MAAM,EAAE,KAAG,gBAAgB;CA2HlE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ParsedArgs } from "../args";
|
|
2
2
|
import { type ChallengeAutomationMode } from "../../challenges/types";
|
|
3
|
+
import type { WorkflowBrowserMode } from "../../providers/types";
|
|
3
4
|
type ProductVideoCommandArgs = {
|
|
4
5
|
productUrl?: string;
|
|
5
6
|
productName?: string;
|
|
@@ -10,6 +11,7 @@ type ProductVideoCommandArgs = {
|
|
|
10
11
|
outputDir?: string;
|
|
11
12
|
ttlHours?: number;
|
|
12
13
|
timeoutMs?: number;
|
|
14
|
+
browserMode?: WorkflowBrowserMode;
|
|
13
15
|
useCookies?: boolean;
|
|
14
16
|
challengeAutomationMode?: ChallengeAutomationMode;
|
|
15
17
|
cookiePolicyOverride?: "off" | "auto" | "required";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-video.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/product-video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAM1C,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"product-video.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/product-video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAM1C,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,KAAK,uBAAuB,GAAG;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,oBAAoB,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;CACpD,CAAC;AAkLF,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,UAAU;;;;GAiC5D;AAED,eAAO,MAAM,QAAQ;qCAnMmB,MAAM,EAAE,KAAG,uBAAuB;0BAR7C,MAAM,QAAQ,MAAM,KAAG,OAAO;CA8M1D,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ParsedArgs } from "../args";
|
|
2
2
|
import { type ChallengeAutomationMode } from "../../challenges/types";
|
|
3
|
+
import type { WorkflowBrowserMode } from "../../providers/types";
|
|
3
4
|
type ResearchCommandArgs = {
|
|
4
5
|
topic?: string;
|
|
5
6
|
days?: number;
|
|
@@ -13,6 +14,7 @@ type ResearchCommandArgs = {
|
|
|
13
14
|
timeoutMs?: number;
|
|
14
15
|
outputDir?: string;
|
|
15
16
|
ttlHours?: number;
|
|
17
|
+
browserMode?: WorkflowBrowserMode;
|
|
16
18
|
useCookies?: boolean;
|
|
17
19
|
challengeAutomationMode?: ChallengeAutomationMode;
|
|
18
20
|
cookiePolicyOverride?: "off" | "auto" | "required";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/research.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAM1C,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/research.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAM1C,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,KAAK,mBAAmB,GAAG;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;IAC/E,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC;IAC7D,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;IACtD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,oBAAoB,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;CACpD,CAAC;AAoPF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,UAAU;;;;GAqCxD;AAED,eAAO,MAAM,QAAQ;oCAnPkB,MAAM,EAAE,KAAG,mBAAmB;wBAnB1C,MAAM,KAAG,KAAK,CAAC,KAAK,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;CAyQrF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-commands.d.ts","sourceRoot":"","sources":["../../src/cli/daemon-commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon-commands.d.ts","sourceRoot":"","sources":["../../src/cli/daemon-commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAiDlD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAaF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CA81BnH"}
|
package/dist/cli/help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAgB,WAAW,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EACL,wBAAwB,EAGzB,MAAM,sCAAsC,CAAC;AAE9C,KAAK,QAAQ,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7C,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;CACjC;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAE5E,UAAU,SAAS;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;CAC7B;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CAChC;AAaD,eAAO,MAAM,kBAAkB,QAAO,UAAU,EAE/C,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,MAAM,EAI/C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAIpD,CAAC;AAEJ,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAqE,CAAC;AAE7I,eAAO,MAAM,gBAAgB,EAAE,SAAS,SAAS,EA8JhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,gDAAuB,CAAC;AAEtD,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EA8B5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAoE5D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,SAAS,cAAc,
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAgB,WAAW,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EACL,wBAAwB,EAGzB,MAAM,sCAAsC,CAAC;AAE9C,KAAK,QAAQ,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7C,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;CACjC;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAE5E,UAAU,SAAS;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;CAC7B;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CAChC;AAaD,eAAO,MAAM,kBAAkB,QAAO,UAAU,EAE/C,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,MAAM,EAI/C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAIpD,CAAC;AAEJ,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAqE,CAAC;AAE7I,eAAO,MAAM,gBAAgB,EAAE,SAAS,SAAS,EA8JhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,gDAAuB,CAAC;AAEtD,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EA8B5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAoE5D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,SAAS,cAAc,EAiB3D,CAAC;AA8JF,wBAAgB,WAAW,IAAI,MAAM,CA+BpC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
resolveExitCode,
|
|
42
42
|
startDaemon,
|
|
43
43
|
toCliError
|
|
44
|
-
} from "../chunk-
|
|
44
|
+
} from "../chunk-I5ZCOZZV.js";
|
|
45
45
|
import "../chunk-STGGGVYT.js";
|
|
46
46
|
import {
|
|
47
47
|
createNoOpSkillRemovalResult,
|
|
@@ -74,7 +74,7 @@ import {
|
|
|
74
74
|
setDefaultLogSink,
|
|
75
75
|
stderrSink,
|
|
76
76
|
summarizePrimaryProviderIssue
|
|
77
|
-
} from "../chunk-
|
|
77
|
+
} from "../chunk-T3VVHJTK.js";
|
|
78
78
|
import "../chunk-FUSXMW3G.js";
|
|
79
79
|
|
|
80
80
|
// src/cli/args.ts
|
|
@@ -456,7 +456,7 @@ var HELP_FLAG_GROUPS = [
|
|
|
456
456
|
{ flag: "--include-all-images", description: "Include all discovered product images." },
|
|
457
457
|
{ flag: "--include-copy", description: "Include product marketing copy metadata." },
|
|
458
458
|
{ flag: "--use-cookies", description: "Enable or disable provider cookie injection for workflow runs; a bare flag means true.", example: "opendevbrowser shopping run --query 'usb hub' --use-cookies" },
|
|
459
|
-
{ flag: "--browser-mode", description: "
|
|
459
|
+
{ flag: "--browser-mode", description: "Provider browser transport mode: auto, extension, or managed. extension reuses relay-backed signed-in browser state; managed runs a deterministic managed browser.", example: "opendevbrowser research run --topic 'browser automation on X' --source-selection social --browser-mode extension --use-cookies --challenge-automation-mode browser_with_helper" },
|
|
460
460
|
{ flag: "--challenge-automation-mode", description: "Per-run challenge automation mode for workflow runs and macro-resolve execute: off, browser, or browser_with_helper. Precedence is run > session > config, and the helper remains browser-scoped only.", example: `opendevbrowser macro-resolve --expression '@community.search("openai")' --execute --challenge-automation-mode browser_with_helper` },
|
|
461
461
|
{ flag: "--cookie-policy-override", description: "Per-run workflow cookie policy override: off, auto, or required.", example: "opendevbrowser research run --topic 'agent workflows' --cookie-policy-override required" },
|
|
462
462
|
{ flag: "--cookie-policy", description: "Alias of --cookie-policy-override." },
|
|
@@ -569,6 +569,7 @@ var HELP_ONBOARDING_ENTRIES = [
|
|
|
569
569
|
];
|
|
570
570
|
var HELP_REFERENCE_ENTRIES = [
|
|
571
571
|
{ label: "src/cli/onboarding-metadata.json", description: "Canonical first-contact onboarding metadata shared by help, nudges, and proof lanes." },
|
|
572
|
+
{ label: "src/providers/workflow-handoff.ts", description: "Central next-step advisory builders for workflow follow-through." },
|
|
572
573
|
{ label: "src/inspiredesign/handoff.ts", description: "Shared inspiredesign follow-through commands, artifact names, and Canvas continuation guidance." },
|
|
573
574
|
{ label: "src/public-surface/source.ts", description: "Authoritative command, usage, flag, and tool surface metadata." },
|
|
574
575
|
{ label: "src/public-surface/generated-manifest.ts", description: "Checked-in generated public-surface snapshot consumed by help and parity tests." },
|
|
@@ -3689,6 +3690,11 @@ var readRunnableStepCommand = (step) => {
|
|
|
3689
3690
|
if (!command) return null;
|
|
3690
3691
|
return UNRESOLVED_COMMAND_PLACEHOLDER_RE.test(command) ? null : command;
|
|
3691
3692
|
};
|
|
3693
|
+
var readDisplayableNextStep = (value) => {
|
|
3694
|
+
const text = readNonEmptyString(value);
|
|
3695
|
+
if (!text) return null;
|
|
3696
|
+
return UNRESOLVED_COMMAND_PLACEHOLDER_RE.test(text) ? null : text;
|
|
3697
|
+
};
|
|
3692
3698
|
var readMeta = (data) => {
|
|
3693
3699
|
return asRecord(asRecord(data)?.meta);
|
|
3694
3700
|
};
|
|
@@ -3711,6 +3717,9 @@ var readPrimaryNextStep = (data) => {
|
|
|
3711
3717
|
const nextStep = commands.find((entry) => typeof entry === "string" && entry.trim().length > 0);
|
|
3712
3718
|
return nextStep?.trim() ?? null;
|
|
3713
3719
|
};
|
|
3720
|
+
var inferPrimaryIssueNextStep = (data) => {
|
|
3721
|
+
return summarizePrimaryProviderIssue(readFailures(data))?.guidance?.recommendedNextCommands[0] ?? null;
|
|
3722
|
+
};
|
|
3714
3723
|
var readFailures = (data) => {
|
|
3715
3724
|
const meta = readMeta(data);
|
|
3716
3725
|
if (!meta) return [];
|
|
@@ -3729,12 +3738,27 @@ var readSuggestedSteps = (data) => {
|
|
|
3729
3738
|
}) : [];
|
|
3730
3739
|
};
|
|
3731
3740
|
var buildNextStepMessage = (message, nextStep) => {
|
|
3732
|
-
|
|
3741
|
+
const displayableNextStep = readDisplayableNextStep(nextStep);
|
|
3742
|
+
return displayableNextStep ? `${message} Next step: ${displayableNextStep}` : message;
|
|
3743
|
+
};
|
|
3744
|
+
var buildProviderFollowupErrorMessage = (message) => {
|
|
3745
|
+
const normalized = message.toLowerCase();
|
|
3746
|
+
if (normalized.includes("next step:")) return message;
|
|
3747
|
+
if (normalized.includes("requires login or an existing session")) {
|
|
3748
|
+
return buildNextStepMessage(
|
|
3749
|
+
message,
|
|
3750
|
+
"Reuse an authenticated browser session, import logged-in cookies, or use the provider sign-in flow."
|
|
3751
|
+
);
|
|
3752
|
+
}
|
|
3753
|
+
if (normalized.includes("requires manual browser follow-up") || normalized.includes("requires a live browser-rendered page")) {
|
|
3754
|
+
return buildNextStepMessage(message, "Retry with browser assistance or a headed browser session.");
|
|
3755
|
+
}
|
|
3756
|
+
return message;
|
|
3733
3757
|
};
|
|
3734
3758
|
var readSuggestedNextAction = (data) => {
|
|
3735
3759
|
const record = asRecord(data);
|
|
3736
3760
|
if (!record) return null;
|
|
3737
|
-
return
|
|
3761
|
+
return readDisplayableNextStep(record.suggestedNextAction) ?? readDisplayableNextStep(asRecord(record.sessionInspector)?.suggestedNextAction);
|
|
3738
3762
|
};
|
|
3739
3763
|
var readSuggestedStepCommand = (data) => {
|
|
3740
3764
|
let current = asRecord(data);
|
|
@@ -3752,18 +3776,19 @@ var readSuggestedStepReason = (data) => {
|
|
|
3752
3776
|
while (current) {
|
|
3753
3777
|
const [firstStep] = readSuggestedSteps(current);
|
|
3754
3778
|
if (firstStep) {
|
|
3755
|
-
return
|
|
3779
|
+
return readDisplayableNextStep(firstStep.reason);
|
|
3756
3780
|
}
|
|
3757
3781
|
current = asRecord(current.challengePlan);
|
|
3758
3782
|
}
|
|
3759
3783
|
return null;
|
|
3760
3784
|
};
|
|
3785
|
+
var readWorkflowGuidanceNextStep = (data) => readSuggestedNextAction(data) ?? readSuggestedStepCommand(data) ?? readSuggestedStepReason(data);
|
|
3761
3786
|
var buildWorkflowCompletionMessage = (workflowLabel, data) => {
|
|
3762
3787
|
const explicitSummary = readPrimarySummary(data);
|
|
3763
3788
|
if (explicitSummary) {
|
|
3764
3789
|
return buildNextStepMessage(
|
|
3765
3790
|
`${workflowLabel} completed with provider follow-up required: ${explicitSummary}`,
|
|
3766
|
-
readPrimaryNextStep(data)
|
|
3791
|
+
readPrimaryNextStep(data) ?? inferPrimaryIssueNextStep(data)
|
|
3767
3792
|
);
|
|
3768
3793
|
}
|
|
3769
3794
|
const inferred = summarizePrimaryProviderIssue(readFailures(data));
|
|
@@ -3777,7 +3802,7 @@ var buildWorkflowCompletionMessage = (workflowLabel, data) => {
|
|
|
3777
3802
|
if (followthroughSummary) {
|
|
3778
3803
|
return buildNextStepMessage(
|
|
3779
3804
|
`${workflowLabel} completed. ${followthroughSummary}`,
|
|
3780
|
-
|
|
3805
|
+
readWorkflowGuidanceNextStep(data)
|
|
3781
3806
|
);
|
|
3782
3807
|
}
|
|
3783
3808
|
return `${workflowLabel} completed.`;
|
|
@@ -6893,6 +6918,7 @@ async function runCookieList(args) {
|
|
|
6893
6918
|
|
|
6894
6919
|
// src/cli/commands/macro-resolve.ts
|
|
6895
6920
|
var MACRO_TRANSPORT_TIMEOUT_BUFFER_MS = 6e4;
|
|
6921
|
+
var BROWSER_MODE_VALUES = /* @__PURE__ */ new Set(["auto", "extension", "managed"]);
|
|
6896
6922
|
var deriveMacroTransportTimeoutMs = (timeoutMs) => {
|
|
6897
6923
|
return Math.max(
|
|
6898
6924
|
DEFAULT_WORKFLOW_TRANSPORT_TIMEOUT_MS,
|
|
@@ -6911,27 +6937,16 @@ var asRecord2 = (value) => {
|
|
|
6911
6937
|
}
|
|
6912
6938
|
return value;
|
|
6913
6939
|
};
|
|
6914
|
-
var readNonEmptyString2 = (value) => typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
6915
6940
|
var hasExecutionBlocker = (result) => {
|
|
6916
6941
|
const execution = asRecord2(asRecord2(result)?.execution);
|
|
6917
6942
|
const meta = asRecord2(execution?.meta);
|
|
6918
6943
|
return asRecord2(meta?.blocker) !== null;
|
|
6919
6944
|
};
|
|
6920
|
-
var readMacroResolveSummary = (result) => readNonEmptyString2(asRecord2(result)?.followthroughSummary);
|
|
6921
|
-
var readMacroResolveNextStep = (result) => {
|
|
6922
|
-
const record = asRecord2(result);
|
|
6923
|
-
const explicit = readNonEmptyString2(record?.suggestedNextAction);
|
|
6924
|
-
if (explicit) {
|
|
6925
|
-
return explicit;
|
|
6926
|
-
}
|
|
6927
|
-
const [firstStep] = Array.isArray(record?.suggestedSteps) ? record.suggestedSteps.filter((step) => Boolean(step) && typeof step === "object") : [];
|
|
6928
|
-
return readNonEmptyString2(firstStep?.command) ?? readNonEmptyString2(firstStep?.reason);
|
|
6929
|
-
};
|
|
6930
6945
|
var buildMacroResolveMessage = (execute, result) => {
|
|
6931
|
-
const summary =
|
|
6932
|
-
const nextStep =
|
|
6946
|
+
const summary = readFollowthroughSummary(result);
|
|
6947
|
+
const nextStep = readWorkflowGuidanceNextStep(result);
|
|
6933
6948
|
if (summary) {
|
|
6934
|
-
return
|
|
6949
|
+
return buildNextStepMessage(summary, nextStep);
|
|
6935
6950
|
}
|
|
6936
6951
|
if (!execute) {
|
|
6937
6952
|
return "Macro resolved.";
|
|
@@ -6981,6 +6996,23 @@ var parseMacroResolveArgs = (rawArgs) => {
|
|
|
6981
6996
|
parsed.timeoutMs = parseNumberFlag(requireValue7(arg.split("=", 2)[1], "--timeout-ms"), "--timeout-ms", { min: 1 });
|
|
6982
6997
|
continue;
|
|
6983
6998
|
}
|
|
6999
|
+
if (arg === "--browser-mode") {
|
|
7000
|
+
const value = requireValue7(rawArgs[index + 1], "--browser-mode").toLowerCase();
|
|
7001
|
+
if (!BROWSER_MODE_VALUES.has(value)) {
|
|
7002
|
+
throw createUsageError(`Invalid --browser-mode: ${value}`);
|
|
7003
|
+
}
|
|
7004
|
+
parsed.browserMode = value;
|
|
7005
|
+
index += 1;
|
|
7006
|
+
continue;
|
|
7007
|
+
}
|
|
7008
|
+
if (arg?.startsWith("--browser-mode=")) {
|
|
7009
|
+
const value = requireValue7(arg.split("=", 2)[1], "--browser-mode").toLowerCase();
|
|
7010
|
+
if (!BROWSER_MODE_VALUES.has(value)) {
|
|
7011
|
+
throw createUsageError(`Invalid --browser-mode: ${value}`);
|
|
7012
|
+
}
|
|
7013
|
+
parsed.browserMode = value;
|
|
7014
|
+
continue;
|
|
7015
|
+
}
|
|
6984
7016
|
if (arg === "--challenge-automation-mode") {
|
|
6985
7017
|
const value = requireValue7(rawArgs[index + 1], "--challenge-automation-mode");
|
|
6986
7018
|
if (!isChallengeAutomationMode(value)) {
|
|
@@ -7006,12 +7038,19 @@ async function runMacroResolve(args) {
|
|
|
7006
7038
|
if (!parsed.expression) {
|
|
7007
7039
|
throw createUsageError("Missing --expression");
|
|
7008
7040
|
}
|
|
7041
|
+
if (!parsed.execute && parsed.browserMode) {
|
|
7042
|
+
throw createUsageError("--browser-mode requires --execute for macro-resolve");
|
|
7043
|
+
}
|
|
7044
|
+
if (!parsed.execute && parsed.challengeAutomationMode) {
|
|
7045
|
+
throw createUsageError("--challenge-automation-mode requires --execute for macro-resolve");
|
|
7046
|
+
}
|
|
7009
7047
|
const params = {
|
|
7010
7048
|
expression: parsed.expression,
|
|
7011
7049
|
defaultProvider: parsed.defaultProvider,
|
|
7012
7050
|
includeCatalog: parsed.includeCatalog ?? false,
|
|
7013
7051
|
execute: parsed.execute ?? false,
|
|
7014
7052
|
...typeof parsed.timeoutMs === "number" ? { timeoutMs: parsed.timeoutMs } : {},
|
|
7053
|
+
...parsed.browserMode ? { browserMode: parsed.browserMode } : {},
|
|
7015
7054
|
...parsed.challengeAutomationMode ? { challengeAutomationMode: parsed.challengeAutomationMode } : {}
|
|
7016
7055
|
};
|
|
7017
7056
|
const result = typeof parsed.timeoutMs === "number" ? await callDaemon("macro.resolve", params, {
|
|
@@ -7028,6 +7067,7 @@ async function runMacroResolve(args) {
|
|
|
7028
7067
|
var SOURCE_VALUES = /* @__PURE__ */ new Set(["web", "community", "social", "shopping"]);
|
|
7029
7068
|
var SOURCE_SELECTION_VALUES = /* @__PURE__ */ new Set(["auto", "web", "community", "social", "shopping", "all"]);
|
|
7030
7069
|
var MODE_VALUES = /* @__PURE__ */ new Set(["compact", "json", "md", "context", "path"]);
|
|
7070
|
+
var BROWSER_MODE_VALUES2 = /* @__PURE__ */ new Set(["auto", "extension", "managed"]);
|
|
7031
7071
|
var COOKIE_POLICY_VALUES = /* @__PURE__ */ new Set(["off", "auto", "required"]);
|
|
7032
7072
|
var requireValue8 = (rawArgs, index, flag) => {
|
|
7033
7073
|
const value = rawArgs[index + 1];
|
|
@@ -7177,6 +7217,23 @@ var parseResearchRunArgs = (rawArgs) => {
|
|
|
7177
7217
|
parsed.ttlHours = parseNumberFlag(arg.split("=", 2)[1] ?? "", "--ttl-hours", { min: 1, max: 168 });
|
|
7178
7218
|
continue;
|
|
7179
7219
|
}
|
|
7220
|
+
if (arg === "--browser-mode") {
|
|
7221
|
+
const value = requireValue8(rawArgs, index, "--browser-mode").toLowerCase();
|
|
7222
|
+
if (!BROWSER_MODE_VALUES2.has(value)) {
|
|
7223
|
+
throw createUsageError(`Invalid --browser-mode: ${value}`);
|
|
7224
|
+
}
|
|
7225
|
+
parsed.browserMode = value;
|
|
7226
|
+
index += 1;
|
|
7227
|
+
continue;
|
|
7228
|
+
}
|
|
7229
|
+
if (arg?.startsWith("--browser-mode=")) {
|
|
7230
|
+
const value = (arg.split("=", 2)[1] ?? "").toLowerCase();
|
|
7231
|
+
if (!BROWSER_MODE_VALUES2.has(value)) {
|
|
7232
|
+
throw createUsageError(`Invalid --browser-mode: ${value}`);
|
|
7233
|
+
}
|
|
7234
|
+
parsed.browserMode = value;
|
|
7235
|
+
continue;
|
|
7236
|
+
}
|
|
7180
7237
|
if (arg === "--use-cookies") {
|
|
7181
7238
|
parsed.useCookies = true;
|
|
7182
7239
|
continue;
|
|
@@ -7244,6 +7301,7 @@ async function runResearchCommand(args) {
|
|
|
7244
7301
|
timeoutMs: parsed.timeoutMs ?? DEFAULT_WORKFLOW_TRANSPORT_TIMEOUT_MS,
|
|
7245
7302
|
outputDir: parsed.outputDir,
|
|
7246
7303
|
ttlHours: parsed.ttlHours,
|
|
7304
|
+
browserMode: parsed.browserMode,
|
|
7247
7305
|
useCookies: parsed.useCookies,
|
|
7248
7306
|
challengeAutomationMode: parsed.challengeAutomationMode,
|
|
7249
7307
|
cookiePolicyOverride: parsed.cookiePolicyOverride
|
|
@@ -7260,7 +7318,7 @@ async function runResearchCommand(args) {
|
|
|
7260
7318
|
var SORT_VALUES = /* @__PURE__ */ new Set(["best_deal", "lowest_price", "highest_rating", "fastest_shipping"]);
|
|
7261
7319
|
var MODE_VALUES2 = /* @__PURE__ */ new Set(["compact", "json", "md", "context", "path"]);
|
|
7262
7320
|
var COOKIE_POLICY_VALUES2 = /* @__PURE__ */ new Set(["off", "auto", "required"]);
|
|
7263
|
-
var
|
|
7321
|
+
var BROWSER_MODE_VALUES3 = /* @__PURE__ */ new Set(["auto", "extension", "managed"]);
|
|
7264
7322
|
var SHOPPING_TRANSPORT_TIMEOUT_BUFFER_MS = 6e4;
|
|
7265
7323
|
var deriveShoppingTransportTimeoutMs = (timeoutMs) => {
|
|
7266
7324
|
return Math.max(
|
|
@@ -7329,7 +7387,7 @@ var parseShoppingRunArgs = (rawArgs) => {
|
|
|
7329
7387
|
}
|
|
7330
7388
|
if (arg === "--browser-mode") {
|
|
7331
7389
|
const value = requireValue9(rawArgs, index, "--browser-mode").toLowerCase();
|
|
7332
|
-
if (!
|
|
7390
|
+
if (!BROWSER_MODE_VALUES3.has(value)) {
|
|
7333
7391
|
throw createUsageError(`Invalid --browser-mode: ${value}`);
|
|
7334
7392
|
}
|
|
7335
7393
|
parsed.browserMode = value;
|
|
@@ -7338,7 +7396,7 @@ var parseShoppingRunArgs = (rawArgs) => {
|
|
|
7338
7396
|
}
|
|
7339
7397
|
if (arg?.startsWith("--browser-mode=")) {
|
|
7340
7398
|
const value = (arg.split("=", 2)[1] ?? "").toLowerCase();
|
|
7341
|
-
if (!
|
|
7399
|
+
if (!BROWSER_MODE_VALUES3.has(value)) {
|
|
7342
7400
|
throw createUsageError(`Invalid --browser-mode: ${value}`);
|
|
7343
7401
|
}
|
|
7344
7402
|
parsed.browserMode = value;
|
|
@@ -7498,6 +7556,7 @@ var parseBoolean3 = (value, flag) => {
|
|
|
7498
7556
|
throw createUsageError(`Invalid ${flag}: ${value}`);
|
|
7499
7557
|
};
|
|
7500
7558
|
var COOKIE_POLICY_VALUES3 = /* @__PURE__ */ new Set(["off", "auto", "required"]);
|
|
7559
|
+
var BROWSER_MODE_VALUES4 = /* @__PURE__ */ new Set(["auto", "extension", "managed"]);
|
|
7501
7560
|
var parseProductVideoArgs = (rawArgs) => {
|
|
7502
7561
|
const parsed = {};
|
|
7503
7562
|
for (let index = 0; index < rawArgs.length; index += 1) {
|
|
@@ -7580,6 +7639,23 @@ var parseProductVideoArgs = (rawArgs) => {
|
|
|
7580
7639
|
parsed.timeoutMs = parseNumberFlag(arg.split("=", 2)[1] ?? "", "--timeout-ms", { min: 1 });
|
|
7581
7640
|
continue;
|
|
7582
7641
|
}
|
|
7642
|
+
if (arg === "--browser-mode") {
|
|
7643
|
+
const value = requireValue10(rawArgs, index, "--browser-mode").toLowerCase();
|
|
7644
|
+
if (!BROWSER_MODE_VALUES4.has(value)) {
|
|
7645
|
+
throw createUsageError(`Invalid --browser-mode: ${value}`);
|
|
7646
|
+
}
|
|
7647
|
+
parsed.browserMode = value;
|
|
7648
|
+
index += 1;
|
|
7649
|
+
continue;
|
|
7650
|
+
}
|
|
7651
|
+
if (arg?.startsWith("--browser-mode=")) {
|
|
7652
|
+
const value = (arg.split("=", 2)[1] ?? "").toLowerCase();
|
|
7653
|
+
if (!BROWSER_MODE_VALUES4.has(value)) {
|
|
7654
|
+
throw createUsageError(`Invalid --browser-mode: ${value}`);
|
|
7655
|
+
}
|
|
7656
|
+
parsed.browserMode = value;
|
|
7657
|
+
continue;
|
|
7658
|
+
}
|
|
7583
7659
|
if (arg === "--use-cookies") {
|
|
7584
7660
|
parsed.useCookies = true;
|
|
7585
7661
|
continue;
|
|
@@ -7645,6 +7721,7 @@ async function runProductVideoCommand(args) {
|
|
|
7645
7721
|
output_dir: parsed.outputDir,
|
|
7646
7722
|
ttl_hours: parsed.ttlHours,
|
|
7647
7723
|
timeoutMs,
|
|
7724
|
+
browserMode: parsed.browserMode,
|
|
7648
7725
|
useCookies: parsed.useCookies,
|
|
7649
7726
|
challengeAutomationMode: parsed.challengeAutomationMode,
|
|
7650
7727
|
cookiePolicyOverride: parsed.cookiePolicyOverride
|
|
@@ -7660,6 +7737,7 @@ async function runProductVideoCommand(args) {
|
|
|
7660
7737
|
var MODE_VALUES3 = /* @__PURE__ */ new Set(["compact", "json", "md", "context", "path"]);
|
|
7661
7738
|
var CAPTURE_MODE_VALUES = /* @__PURE__ */ new Set(["off", "deep"]);
|
|
7662
7739
|
var COOKIE_POLICY_VALUES4 = /* @__PURE__ */ new Set(["off", "auto", "required"]);
|
|
7740
|
+
var BROWSER_MODE_VALUES5 = /* @__PURE__ */ new Set(["auto", "extension", "managed"]);
|
|
7663
7741
|
var requireValue11 = (rawArgs, index, flag) => {
|
|
7664
7742
|
const value = rawArgs[index + 1];
|
|
7665
7743
|
if (!value) {
|
|
@@ -7750,6 +7828,23 @@ var parseInspiredesignRunArgs = (rawArgs) => {
|
|
|
7750
7828
|
parsed.ttlHours = parseNumberFlag(arg.split("=", 2)[1] ?? "", "--ttl-hours", { min: 1, max: 168 });
|
|
7751
7829
|
continue;
|
|
7752
7830
|
}
|
|
7831
|
+
if (arg === "--browser-mode") {
|
|
7832
|
+
const value = requireValue11(rawArgs, index, "--browser-mode").toLowerCase();
|
|
7833
|
+
if (!BROWSER_MODE_VALUES5.has(value)) {
|
|
7834
|
+
throw createUsageError(`Invalid --browser-mode: ${value}`);
|
|
7835
|
+
}
|
|
7836
|
+
parsed.browserMode = value;
|
|
7837
|
+
index += 1;
|
|
7838
|
+
continue;
|
|
7839
|
+
}
|
|
7840
|
+
if (arg?.startsWith("--browser-mode=")) {
|
|
7841
|
+
const value = (arg.split("=", 2)[1] ?? "").toLowerCase();
|
|
7842
|
+
if (!BROWSER_MODE_VALUES5.has(value)) {
|
|
7843
|
+
throw createUsageError(`Invalid --browser-mode: ${value}`);
|
|
7844
|
+
}
|
|
7845
|
+
parsed.browserMode = value;
|
|
7846
|
+
continue;
|
|
7847
|
+
}
|
|
7753
7848
|
if (arg === "--use-cookies") {
|
|
7754
7849
|
parsed.useCookies = true;
|
|
7755
7850
|
continue;
|
|
@@ -7813,6 +7908,7 @@ async function runInspiredesignCommand(args) {
|
|
|
7813
7908
|
timeoutMs: parsed.timeoutMs ?? DEFAULT_WORKFLOW_TRANSPORT_TIMEOUT_MS,
|
|
7814
7909
|
outputDir: parsed.outputDir,
|
|
7815
7910
|
ttlHours: parsed.ttlHours,
|
|
7911
|
+
browserMode: parsed.browserMode,
|
|
7816
7912
|
useCookies: parsed.useCookies,
|
|
7817
7913
|
challengeAutomationMode: parsed.challengeAutomationMode,
|
|
7818
7914
|
cookiePolicyOverride: parsed.cookiePolicyOverride
|
|
@@ -7827,7 +7923,7 @@ async function runInspiredesignCommand(args) {
|
|
|
7827
7923
|
// package.json
|
|
7828
7924
|
var package_default = {
|
|
7829
7925
|
name: "opendevbrowser",
|
|
7830
|
-
version: "0.0.
|
|
7926
|
+
version: "0.0.28",
|
|
7831
7927
|
description: "Browser automation runtime with snapshot-refs-actions, browser replay screencasts, public read-only desktop observation, and browser-scoped computer-use orchestration",
|
|
7832
7928
|
type: "module",
|
|
7833
7929
|
main: "dist/index.js",
|
|
@@ -8109,14 +8205,15 @@ async function promptUninstallMode() {
|
|
|
8109
8205
|
});
|
|
8110
8206
|
}
|
|
8111
8207
|
function emitFatalError(error, outputFormat) {
|
|
8208
|
+
const message = buildProviderFollowupErrorMessage(error.message);
|
|
8112
8209
|
if (outputFormat === "text") {
|
|
8113
|
-
console.error(`Error: ${
|
|
8210
|
+
console.error(`Error: ${message}`);
|
|
8114
8211
|
if (error.exitCode === EXIT_USAGE) {
|
|
8115
8212
|
console.error("\nFor help: npx opendevbrowser --help");
|
|
8116
8213
|
}
|
|
8117
8214
|
return;
|
|
8118
8215
|
}
|
|
8119
|
-
writeOutput(formatErrorPayload(error), { format: outputFormat });
|
|
8216
|
+
writeOutput({ ...formatErrorPayload(error), error: message }, { format: outputFormat });
|
|
8120
8217
|
}
|
|
8121
8218
|
async function main() {
|
|
8122
8219
|
let outputFormat = null;
|