opendevbrowser 0.0.23 → 0.0.25
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/fingerprint/canary.d.ts.map +1 -1
- package/dist/{chunk-2MG7BRPF.js → chunk-7U63PZ4W.js} +9440 -1542
- package/dist/chunk-7U63PZ4W.js.map +1 -0
- package/dist/{chunk-K2TEHJCV.js → chunk-Z6ENAZUN.js} +2848 -693
- package/dist/chunk-Z6ENAZUN.js.map +1 -0
- package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
- package/dist/cli/daemon-client.d.ts +13 -0
- package/dist/cli/daemon-client.d.ts.map +1 -1
- package/dist/cli/daemon-commands.d.ts.map +1 -1
- package/dist/cli/daemon.d.ts +7 -2
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.js +18 -17
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/remote-manager.d.ts +8 -6
- package/dist/cli/remote-manager.d.ts.map +1 -1
- package/dist/core/bootstrap.d.ts.map +1 -1
- package/dist/index.js +44 -24
- package/dist/index.js.map +1 -1
- package/dist/inspiredesign/brief-expansion.d.ts +41 -0
- package/dist/inspiredesign/brief-expansion.d.ts.map +1 -0
- package/dist/inspiredesign/handoff.d.ts +3 -1
- package/dist/inspiredesign/handoff.d.ts.map +1 -1
- package/dist/opendevbrowser.js +44 -24
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/providers/inspiredesign-capture-mode.d.ts +3 -0
- package/dist/providers/inspiredesign-capture-mode.d.ts.map +1 -0
- package/dist/providers/inspiredesign-capture.d.ts +8 -1
- package/dist/providers/inspiredesign-capture.d.ts.map +1 -1
- package/dist/providers/inspiredesign-contract.d.ts +30 -0
- package/dist/providers/inspiredesign-contract.d.ts.map +1 -1
- package/dist/providers/renderer.d.ts +2 -1
- package/dist/providers/renderer.d.ts.map +1 -1
- package/dist/providers/workflows.d.ts +2 -0
- package/dist/providers/workflows.d.ts.map +1 -1
- package/dist/{providers-6YVHKTOJ.js → providers-CYEJZVXB.js} +2 -2
- package/dist/tools/inspiredesign_run.d.ts.map +1 -1
- package/extension/manifest.json +1 -1
- package/package.json +3 -3
- package/skills/opendevbrowser-best-practices/SKILL.md +3 -2
- package/skills/opendevbrowser-design-agent/SKILL.md +1 -0
- package/skills/opendevbrowser-design-agent/assets/templates/inspiredesign-advanced-brief.v1.json +1370 -0
- package/skills/opendevbrowser-design-agent/scripts/validate-skill-assets.sh +2 -0
- package/dist/chunk-2MG7BRPF.js.map +0 -1
- package/dist/chunk-K2TEHJCV.js.map +0 -1
- /package/dist/{providers-6YVHKTOJ.js.map → providers-CYEJZVXB.js.map} +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { CanvasNavigationModel, CanvasThemeStrategy, CanvasVisualDirectionProfile } from "../canvas/types";
|
|
2
|
+
type InspiredesignBriefFormatRoute = {
|
|
3
|
+
profile: CanvasVisualDirectionProfile;
|
|
4
|
+
themeStrategy: CanvasThemeStrategy;
|
|
5
|
+
navigationModel: CanvasNavigationModel;
|
|
6
|
+
layoutApproach: string;
|
|
7
|
+
};
|
|
8
|
+
export type InspiredesignBriefFormat = {
|
|
9
|
+
id: string;
|
|
10
|
+
label: string;
|
|
11
|
+
bestFor: string[];
|
|
12
|
+
businessFocus: string[];
|
|
13
|
+
keywords: string[];
|
|
14
|
+
archetype: string;
|
|
15
|
+
layoutArchetype: string;
|
|
16
|
+
typographySystem: string;
|
|
17
|
+
surfaceTreatment: string;
|
|
18
|
+
shapeLanguage: string;
|
|
19
|
+
componentGrammar: string;
|
|
20
|
+
motionGrammar: string;
|
|
21
|
+
paletteIntent: string;
|
|
22
|
+
visualDensity: string;
|
|
23
|
+
designVariance: string;
|
|
24
|
+
responsiveCollapseRules: string[];
|
|
25
|
+
guardrails: string[];
|
|
26
|
+
antiPatterns: string[];
|
|
27
|
+
deliverables: string[];
|
|
28
|
+
route: InspiredesignBriefFormatRoute;
|
|
29
|
+
};
|
|
30
|
+
export type InspiredesignBriefExpansion = {
|
|
31
|
+
sourceBrief: string;
|
|
32
|
+
advancedBrief: string;
|
|
33
|
+
templateVersion: string;
|
|
34
|
+
format: InspiredesignBriefFormat;
|
|
35
|
+
};
|
|
36
|
+
export declare const INSPIREDESIGN_BRIEF_TEMPLATE_VERSION: string;
|
|
37
|
+
export declare const normalizeInspiredesignBriefText: (value: string) => string;
|
|
38
|
+
export declare const cloneInspiredesignBriefFormat: (format: InspiredesignBriefFormat) => InspiredesignBriefFormat;
|
|
39
|
+
export declare const expandInspiredesignBrief: (brief: string, preferredFormatId?: string) => InspiredesignBriefExpansion;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=brief-expansion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brief-expansion.d.ts","sourceRoot":"","sources":["../../src/inspiredesign/brief-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AAUzB,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,4BAA4B,CAAC;IACtC,aAAa,EAAE,mBAAmB,CAAC;IACnC,eAAe,EAAE,qBAAqB,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAoCF,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,6BAA6B,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,wBAAwB,CAAC;CAClC,CAAC;AAGF,eAAO,MAAM,oCAAoC,QAAyB,CAAC;AAE3E,eAAO,MAAM,+BAA+B,GAAI,OAAO,MAAM,KAAG,MAA2C,CAAC;AAqB5G,eAAO,MAAM,6BAA6B,GACxC,QAAQ,wBAAwB,KAC/B,wBAqBD,CAAC;AAkJH,eAAO,MAAM,wBAAwB,GACnC,OAAO,MAAM,EACb,oBAAoB,MAAM,KACzB,2BASF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const INSPIREDESIGN_HANDOFF_FILES: {
|
|
2
2
|
readonly designMarkdown: "design.md";
|
|
3
|
+
readonly advancedBrief: "advanced-brief.md";
|
|
3
4
|
readonly designContract: "design-contract.json";
|
|
4
5
|
readonly canvasPlanRequest: "canvas-plan.request.json";
|
|
5
6
|
readonly designAgentHandoff: "design-agent-handoff.json";
|
|
@@ -26,8 +27,9 @@ export declare const INSPIREDESIGN_HANDOFF_COMMANDS: {
|
|
|
26
27
|
};
|
|
27
28
|
export declare const INSPIREDESIGN_HANDOFF_RECOMMENDED_SKILLS: readonly [string, string];
|
|
28
29
|
export declare const INSPIREDESIGN_HANDOFF_GUIDANCE: {
|
|
30
|
+
readonly reviewAdvancedBrief: "advanced-brief.md is the authoritative prompt route for the selected format, profile defaults, layout posture, motion grammar, and anti-patterns. Read it before touching Canvas or implementation files.";
|
|
29
31
|
readonly prepareCanvasPlanRequest: "Fill canvasSessionId, leaseId, and documentId in canvas-plan.request.json before running opendevbrowser canvas --command canvas.plan.set --params-file ./canvas-plan.request.json.";
|
|
30
|
-
readonly deepCaptureRecommendation: "
|
|
32
|
+
readonly deepCaptureRecommendation: "Any inspiredesign run with reference URLs already uses captureMode=deep. Rerun with the same URLs only when you need refreshed DOM/layout evidence, restored session state, or capture-specific debugging.";
|
|
31
33
|
};
|
|
32
34
|
export declare const buildInspiredesignFollowthroughSummary: () => string;
|
|
33
35
|
export declare const buildInspiredesignNextStep: () => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/inspiredesign/handoff.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B
|
|
1
|
+
{"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/inspiredesign/handoff.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B;;;;;;;;;;;CAW9B,CAAC;AAEX,eAAO,MAAM,4BAA4B;;;;;;;;;CAS/B,CAAC;AAaX,eAAO,MAAM,8BAA8B;;;;CAIjC,CAAC;AAEX,eAAO,MAAM,wCAAwC,2BAG3C,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;;CAIjC,CAAC;AAEX,eAAO,MAAM,sCAAsC,QAAO,MAEzD,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAO,MAE7C,CAAC"}
|
package/dist/opendevbrowser.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AGENT_INBOX_SYSTEM_MARKER,
|
|
3
|
+
DEFAULT_WORKFLOW_TRANSPORT_TIMEOUT_MS,
|
|
3
4
|
DaemonClient,
|
|
4
5
|
ScriptRunner,
|
|
5
6
|
buildAnnotateResult,
|
|
@@ -22,7 +23,7 @@ import {
|
|
|
22
23
|
resolveBundledProviderRuntime,
|
|
23
24
|
resolveSessionRelayRoute,
|
|
24
25
|
startDaemon
|
|
25
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-7U63PZ4W.js";
|
|
26
27
|
import "./chunk-STGGGVYT.js";
|
|
27
28
|
import "./chunk-3ILXPKSJ.js";
|
|
28
29
|
import "./chunk-TBUCZX4A.js";
|
|
@@ -32,8 +33,9 @@ import {
|
|
|
32
33
|
buildBlockerArtifacts,
|
|
33
34
|
buildMacroResolveSuccessHandoff,
|
|
34
35
|
classifyBlockerSignal,
|
|
35
|
-
createRequestId
|
|
36
|
-
|
|
36
|
+
createRequestId,
|
|
37
|
+
resolveInspiredesignCaptureMode
|
|
38
|
+
} from "./chunk-Z6ENAZUN.js";
|
|
37
39
|
import "./chunk-FUSXMW3G.js";
|
|
38
40
|
|
|
39
41
|
// src/cli/remote-manager.ts
|
|
@@ -42,8 +44,18 @@ var RemoteManager = class {
|
|
|
42
44
|
constructor(client) {
|
|
43
45
|
this.client = client;
|
|
44
46
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
callWithOptionalTimeout(name, params, timeoutMs) {
|
|
48
|
+
if (typeof timeoutMs === "number") {
|
|
49
|
+
return this.client.call(name, params, { timeoutMs });
|
|
50
|
+
}
|
|
51
|
+
return this.client.call(name, params);
|
|
52
|
+
}
|
|
53
|
+
launch(options, timeoutMs) {
|
|
54
|
+
return this.callWithOptionalTimeout(
|
|
55
|
+
"session.launch",
|
|
56
|
+
options,
|
|
57
|
+
timeoutMs
|
|
58
|
+
);
|
|
47
59
|
}
|
|
48
60
|
connect(options) {
|
|
49
61
|
return this.client.call("session.connect", options);
|
|
@@ -66,20 +78,20 @@ var RemoteManager = class {
|
|
|
66
78
|
status(sessionId) {
|
|
67
79
|
return this.client.call("session.status", { sessionId });
|
|
68
80
|
}
|
|
69
|
-
cookieImport(sessionId, cookies, strict = true, requestId) {
|
|
70
|
-
return this.
|
|
81
|
+
cookieImport(sessionId, cookies, strict = true, requestId, timeoutMs) {
|
|
82
|
+
return this.callWithOptionalTimeout("session.cookieImport", {
|
|
71
83
|
sessionId,
|
|
72
84
|
cookies,
|
|
73
85
|
strict,
|
|
74
86
|
requestId
|
|
75
|
-
});
|
|
87
|
+
}, timeoutMs);
|
|
76
88
|
}
|
|
77
|
-
cookieList(sessionId, urls, requestId) {
|
|
78
|
-
return this.
|
|
89
|
+
cookieList(sessionId, urls, requestId, timeoutMs) {
|
|
90
|
+
return this.callWithOptionalTimeout("session.cookieList", {
|
|
79
91
|
sessionId,
|
|
80
92
|
...urls && urls.length > 0 ? { urls } : {},
|
|
81
93
|
requestId
|
|
82
|
-
});
|
|
94
|
+
}, timeoutMs);
|
|
83
95
|
}
|
|
84
96
|
goto(sessionId, url, waitUntil = "load", timeoutMs = 3e4, _sessionOverride, targetId) {
|
|
85
97
|
return this.client.call("nav.goto", {
|
|
@@ -107,14 +119,14 @@ var RemoteManager = class {
|
|
|
107
119
|
...typeof targetId === "string" ? { targetId } : {}
|
|
108
120
|
});
|
|
109
121
|
}
|
|
110
|
-
snapshot(sessionId, mode, maxChars, cursor, targetId) {
|
|
111
|
-
return this.
|
|
122
|
+
snapshot(sessionId, mode, maxChars, cursor, targetId, timeoutMs) {
|
|
123
|
+
return this.callWithOptionalTimeout("nav.snapshot", {
|
|
112
124
|
sessionId,
|
|
113
125
|
mode,
|
|
114
126
|
maxChars,
|
|
115
127
|
cursor,
|
|
116
128
|
...typeof targetId === "string" ? { targetId } : {}
|
|
117
|
-
});
|
|
129
|
+
}, timeoutMs);
|
|
118
130
|
}
|
|
119
131
|
click(sessionId, ref, targetId) {
|
|
120
132
|
return this.client.call("interact.click", {
|
|
@@ -237,11 +249,19 @@ var RemoteManager = class {
|
|
|
237
249
|
...typeof targetId === "string" ? { targetId } : {}
|
|
238
250
|
});
|
|
239
251
|
}
|
|
240
|
-
clonePage(sessionId, targetId) {
|
|
241
|
-
return this.
|
|
252
|
+
clonePage(sessionId, targetId, timeoutMs) {
|
|
253
|
+
return this.callWithOptionalTimeout("export.clonePage", {
|
|
242
254
|
sessionId,
|
|
243
255
|
...typeof targetId === "string" ? { targetId } : {}
|
|
244
|
-
});
|
|
256
|
+
}, timeoutMs);
|
|
257
|
+
}
|
|
258
|
+
clonePageHtmlWithOptions(sessionId, targetId, options, timeoutMs) {
|
|
259
|
+
return this.callWithOptionalTimeout("export.clonePageHtml", {
|
|
260
|
+
sessionId,
|
|
261
|
+
...typeof targetId === "string" ? { targetId } : {},
|
|
262
|
+
...typeof options?.maxNodes === "number" ? { maxNodes: options.maxNodes } : {},
|
|
263
|
+
...typeof options?.inlineStyles === "boolean" ? { inlineStyles: options.inlineStyles } : {}
|
|
264
|
+
}, timeoutMs);
|
|
245
265
|
}
|
|
246
266
|
cloneComponent(sessionId, ref, targetId) {
|
|
247
267
|
return this.client.call("export.cloneComponent", {
|
|
@@ -3168,7 +3188,7 @@ function createResearchRunTool(deps) {
|
|
|
3168
3188
|
async execute(args) {
|
|
3169
3189
|
try {
|
|
3170
3190
|
const runtime = await resolveProviderRuntime(deps);
|
|
3171
|
-
const { runResearchWorkflow } = await import("./providers-
|
|
3191
|
+
const { runResearchWorkflow } = await import("./providers-CYEJZVXB.js");
|
|
3172
3192
|
const result = await runResearchWorkflow(runtime, {
|
|
3173
3193
|
topic: args.topic,
|
|
3174
3194
|
days: args.days,
|
|
@@ -3219,7 +3239,7 @@ function createShoppingRunTool(deps) {
|
|
|
3219
3239
|
async execute(args) {
|
|
3220
3240
|
try {
|
|
3221
3241
|
const runtime = await resolveProviderRuntime(deps);
|
|
3222
|
-
const { runShoppingWorkflow } = await import("./providers-
|
|
3242
|
+
const { runShoppingWorkflow } = await import("./providers-CYEJZVXB.js");
|
|
3223
3243
|
const result = await runShoppingWorkflow(runtime, {
|
|
3224
3244
|
query: args.query,
|
|
3225
3245
|
providers: args.providers,
|
|
@@ -3288,7 +3308,7 @@ function createProductVideoRunTool(deps) {
|
|
|
3288
3308
|
async execute(args) {
|
|
3289
3309
|
try {
|
|
3290
3310
|
const runtime = await resolveProviderRuntime(deps);
|
|
3291
|
-
const { runProductVideoWorkflow } = await import("./providers-
|
|
3311
|
+
const { runProductVideoWorkflow } = await import("./providers-CYEJZVXB.js");
|
|
3292
3312
|
const includeScreenshots = args.include_screenshots ?? true;
|
|
3293
3313
|
const result = await runProductVideoWorkflow(runtime, {
|
|
3294
3314
|
product_url: args.product_url,
|
|
@@ -3327,7 +3347,7 @@ function createInspiredesignRunTool(deps) {
|
|
|
3327
3347
|
args: {
|
|
3328
3348
|
brief: z66.string().min(1).describe("Inspiredesign brief"),
|
|
3329
3349
|
urls: z66.array(z66.string()).optional().describe("Inspiration URLs to analyze"),
|
|
3330
|
-
captureMode: captureModeSchema.optional().describe("Capture mode: off|deep"),
|
|
3350
|
+
captureMode: captureModeSchema.optional().describe("Capture mode: off|deep. Any URLs force deep."),
|
|
3331
3351
|
includePrototypeGuidance: z66.boolean().optional().describe("Include prototype guidance output"),
|
|
3332
3352
|
mode: modeSchema3.optional().describe("compact|json|md|context|path"),
|
|
3333
3353
|
timeoutMs: z66.number().int().positive().optional().describe("Workflow timeout in milliseconds"),
|
|
@@ -3340,8 +3360,8 @@ function createInspiredesignRunTool(deps) {
|
|
|
3340
3360
|
async execute(args) {
|
|
3341
3361
|
try {
|
|
3342
3362
|
const runtime = await resolveProviderRuntime(deps);
|
|
3343
|
-
const { runInspiredesignWorkflow } = await import("./providers-
|
|
3344
|
-
const captureMode = args.captureMode
|
|
3363
|
+
const { runInspiredesignWorkflow } = await import("./providers-CYEJZVXB.js");
|
|
3364
|
+
const captureMode = resolveInspiredesignCaptureMode(args.captureMode, args.urls);
|
|
3345
3365
|
const cookieSource = deps.config.get().providers?.cookieSource;
|
|
3346
3366
|
const result = await runInspiredesignWorkflow(runtime, {
|
|
3347
3367
|
brief: args.brief,
|
|
@@ -3349,7 +3369,7 @@ function createInspiredesignRunTool(deps) {
|
|
|
3349
3369
|
captureMode,
|
|
3350
3370
|
includePrototypeGuidance: args.includePrototypeGuidance,
|
|
3351
3371
|
mode: args.mode ?? "compact",
|
|
3352
|
-
timeoutMs: args.timeoutMs,
|
|
3372
|
+
timeoutMs: args.timeoutMs ?? DEFAULT_WORKFLOW_TRANSPORT_TIMEOUT_MS,
|
|
3353
3373
|
outputDir: args.outputDir,
|
|
3354
3374
|
ttlHours: args.ttlHours,
|
|
3355
3375
|
useCookies: args.useCookies,
|