opendevbrowser 0.0.25 → 0.0.27
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 +7 -10
- package/dist/browser/canvas-manager.d.ts.map +1 -1
- package/dist/canvas/document-store.d.ts.map +1 -1
- package/dist/canvas/types.d.ts +3 -0
- package/dist/canvas/types.d.ts.map +1 -1
- package/dist/{chunk-7U63PZ4W.js → chunk-MWBDO2L5.js} +461 -189
- package/dist/chunk-MWBDO2L5.js.map +1 -0
- package/dist/{chunk-Z6ENAZUN.js → chunk-V5DJUSPV.js} +899 -115
- package/dist/chunk-V5DJUSPV.js.map +1 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/commands/daemon.d.ts +27 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/devtools/console-poll.d.ts.map +1 -1
- package/dist/cli/commands/devtools/network-poll.d.ts.map +1 -1
- package/dist/cli/commands/serve.d.ts +10 -13
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/daemon-autostart.d.ts +6 -2
- package/dist/cli/daemon-autostart.d.ts.map +1 -1
- package/dist/cli/daemon-client.d.ts.map +1 -1
- package/dist/cli/daemon-status-policy.d.ts +6 -0
- package/dist/cli/daemon-status-policy.d.ts.map +1 -0
- package/dist/cli/daemon-status.d.ts +1 -0
- package/dist/cli/daemon-status.d.ts.map +1 -1
- package/dist/cli/daemon.d.ts +5 -0
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/index.js +566 -154
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/http.d.ts.map +1 -1
- package/dist/cli/utils/parse.d.ts.map +1 -1
- package/dist/daemon-fingerprint.json +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +109 -28
- package/dist/index.js.map +1 -1
- package/dist/inspiredesign/brief-expansion.d.ts +3 -0
- package/dist/inspiredesign/brief-expansion.d.ts.map +1 -1
- package/dist/{providers/inspiredesign-capture-mode.d.ts → inspiredesign/capture-mode.d.ts} +2 -2
- package/dist/inspiredesign/capture-mode.d.ts.map +1 -0
- package/dist/{providers/inspiredesign-capture.d.ts → inspiredesign/capture.d.ts} +3 -3
- package/dist/inspiredesign/capture.d.ts.map +1 -0
- package/dist/{providers/inspiredesign-contract.d.ts → inspiredesign/contract.d.ts} +18 -5
- package/dist/inspiredesign/contract.d.ts.map +1 -0
- package/dist/inspiredesign/handoff.d.ts +1 -11
- package/dist/inspiredesign/handoff.d.ts.map +1 -1
- package/dist/inspiredesign/reference-pattern-board.d.ts +73 -0
- package/dist/inspiredesign/reference-pattern-board.d.ts.map +1 -0
- package/dist/opendevbrowser.d.ts.map +1 -1
- package/dist/opendevbrowser.js +109 -28
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/providers/renderer.d.ts +1 -1
- package/dist/providers/renderer.d.ts.map +1 -1
- package/dist/providers/workflows.d.ts +7 -5
- package/dist/providers/workflows.d.ts.map +1 -1
- package/dist/{providers-CYEJZVXB.js → providers-TR3DUJZV.js} +2 -2
- package/dist/public-surface/generated-manifest.d.ts +3 -3
- package/dist/public-surface/generated-manifest.d.ts.map +1 -1
- package/dist/public-surface/source.d.ts +5 -4
- package/dist/public-surface/source.d.ts.map +1 -1
- package/dist/relay/protocol.d.ts +14 -2
- package/dist/relay/protocol.d.ts.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/status.d.ts.map +1 -1
- package/extension/dist/canvas/canvas-runtime.js +13 -6
- package/extension/dist/services/ConnectionManager.js +8 -4
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/opendevbrowser-best-practices/assets/templates/skill-runtime-pack-matrix.json +1 -1
- package/skills/opendevbrowser-design-agent/assets/templates/inspiredesign-advanced-brief.v1.json +67 -31
- package/dist/chunk-7U63PZ4W.js.map +0 -1
- package/dist/chunk-Z6ENAZUN.js.map +0 -1
- package/dist/providers/inspiredesign-capture-mode.d.ts.map +0 -1
- package/dist/providers/inspiredesign-capture.d.ts.map +0 -1
- package/dist/providers/inspiredesign-contract.d.ts.map +0 -1
- /package/dist/{providers-CYEJZVXB.js.map → providers-TR3DUJZV.js.map} +0 -0
|
@@ -21,6 +21,7 @@ export type InspiredesignBriefFormat = {
|
|
|
21
21
|
paletteIntent: string;
|
|
22
22
|
visualDensity: string;
|
|
23
23
|
designVariance: string;
|
|
24
|
+
focusAreas?: string[];
|
|
24
25
|
responsiveCollapseRules: string[];
|
|
25
26
|
guardrails: string[];
|
|
26
27
|
antiPatterns: string[];
|
|
@@ -34,6 +35,8 @@ export type InspiredesignBriefExpansion = {
|
|
|
34
35
|
format: InspiredesignBriefFormat;
|
|
35
36
|
};
|
|
36
37
|
export declare const INSPIREDESIGN_BRIEF_TEMPLATE_VERSION: string;
|
|
38
|
+
export declare const INSPIREDESIGN_BRIEF_COMMON_RULES: string[];
|
|
39
|
+
export declare const INSPIREDESIGN_BRIEF_OUTPUT_REQUIREMENTS: string[];
|
|
37
40
|
export declare const normalizeInspiredesignBriefText: (value: string) => string;
|
|
38
41
|
export declare const cloneInspiredesignBriefFormat: (format: InspiredesignBriefFormat) => InspiredesignBriefFormat;
|
|
39
42
|
export declare const expandInspiredesignBrief: (brief: string, preferredFormatId?: string) => InspiredesignBriefExpansion;
|
|
@@ -1 +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;
|
|
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,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,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;AAC3E,eAAO,MAAM,gCAAgC,UAAkC,CAAC;AAChF,eAAO,MAAM,uCAAuC,UAAyC,CAAC;AAE9F,eAAO,MAAM,+BAA+B,GAAI,OAAO,MAAM,KAAG,MAA2C,CAAC;AAwC5G,eAAO,MAAM,6BAA6B,GACxC,QAAQ,wBAAwB,KAC/B,wBAsBD,CAAC;AAoJH,eAAO,MAAM,wBAAwB,GACnC,OAAO,MAAM,EACb,oBAAoB,MAAM,KACzB,2BASF,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { InspiredesignCaptureMode } from "
|
|
1
|
+
import type { InspiredesignCaptureMode } from "../providers/types";
|
|
2
2
|
export declare function resolveInspiredesignCaptureMode(requested: InspiredesignCaptureMode | undefined, urls?: readonly string[]): InspiredesignCaptureMode;
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=capture-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-mode.d.ts","sourceRoot":"","sources":["../../src/inspiredesign/capture-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAMnE,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,wBAAwB,GAAG,SAAS,EAC/C,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GACvB,wBAAwB,CAE1B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BrowserManagerLike } from "../browser/manager-types";
|
|
2
2
|
import type { ChallengeAutomationMode } from "../challenges/types";
|
|
3
|
-
import type { ProviderCookiePolicy, ProviderCookieSourceConfig } from "
|
|
4
|
-
import type { InspiredesignCaptureEvidence } from "./
|
|
3
|
+
import type { ProviderCookiePolicy, ProviderCookieSourceConfig } from "../providers/types";
|
|
4
|
+
import type { InspiredesignCaptureEvidence } from "./contract";
|
|
5
5
|
type InspiredesignCaptureManagerBase = Pick<BrowserManagerLike, "launch" | "cookieImport" | "cookieList" | "goto" | "waitForLoad" | "snapshot" | "clonePage" | "disconnect" | "clonePageHtmlWithOptions">;
|
|
6
6
|
type InspiredesignCaptureManagerLike = Omit<InspiredesignCaptureManagerBase, "launch" | "cookieImport" | "cookieList" | "snapshot" | "clonePage" | "clonePageHtmlWithOptions"> & {
|
|
7
7
|
launch: (options: Parameters<BrowserManagerLike["launch"]>[0], timeoutMs?: number) => ReturnType<BrowserManagerLike["launch"]>;
|
|
@@ -21,4 +21,4 @@ export type InspiredesignCaptureOptions = {
|
|
|
21
21
|
};
|
|
22
22
|
export declare function captureInspiredesignReferenceFromManager(manager: InspiredesignCaptureManagerLike, url: string, options?: InspiredesignCaptureOptions): Promise<InspiredesignCaptureEvidence>;
|
|
23
23
|
export {};
|
|
24
|
-
//# sourceMappingURL=
|
|
24
|
+
//# sourceMappingURL=capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/inspiredesign/capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { CanvasDesignGovernance, CanvasGenerationPlan } from "../canvas/types";
|
|
2
|
-
import { type InspiredesignBriefExpansion, type InspiredesignBriefFormat } from "
|
|
3
|
-
import type
|
|
2
|
+
import { type InspiredesignBriefExpansion, type InspiredesignBriefFormat } from "./brief-expansion";
|
|
3
|
+
import { type InspiredesignDesignVectors, type InspiredesignReferencePatternBoard } from "./reference-pattern-board";
|
|
4
|
+
import type { JsonValue } from "../providers/types";
|
|
4
5
|
type JsonRecord = Record<string, JsonValue>;
|
|
5
6
|
type FetchStatus = "captured" | "failed" | "skipped";
|
|
6
7
|
type CaptureStatus = "off" | "captured" | "failed";
|
|
@@ -21,7 +22,9 @@ type CanvasPlanRequestTemplate = {
|
|
|
21
22
|
canvasSessionId: string;
|
|
22
23
|
leaseId: string;
|
|
23
24
|
documentId: string;
|
|
24
|
-
generationPlan: CanvasGenerationPlan
|
|
25
|
+
generationPlan: CanvasGenerationPlan & {
|
|
26
|
+
designVectors?: JsonRecord;
|
|
27
|
+
};
|
|
25
28
|
};
|
|
26
29
|
export type InspiredesignCaptureEvidence = {
|
|
27
30
|
title?: string;
|
|
@@ -74,6 +77,7 @@ export type InspiredesignTokenStrategy = {
|
|
|
74
77
|
export type InspiredesignImplementationPlan = {
|
|
75
78
|
architectureRecommendation: string;
|
|
76
79
|
tokenStrategy: InspiredesignTokenStrategy;
|
|
80
|
+
referenceImplementationNotes: string[];
|
|
77
81
|
componentBuildPlan: Array<{
|
|
78
82
|
name: string;
|
|
79
83
|
purpose: string;
|
|
@@ -87,10 +91,16 @@ export type InspiredesignImplementationPlan = {
|
|
|
87
91
|
risksAndAmbiguities: string[];
|
|
88
92
|
buildSequence: string[];
|
|
89
93
|
};
|
|
94
|
+
type InspiredesignGenerationPlan = CanvasGenerationPlan & {
|
|
95
|
+
referencePatternBoard: InspiredesignReferencePatternBoard;
|
|
96
|
+
designVectors: InspiredesignDesignVectors;
|
|
97
|
+
interactionMoments: string[];
|
|
98
|
+
materialEffects: string[];
|
|
99
|
+
};
|
|
90
100
|
export type InspiredesignPacket = {
|
|
91
101
|
advancedBriefMarkdown: string;
|
|
92
102
|
designContract: CanvasDesignGovernance;
|
|
93
|
-
generationPlan:
|
|
103
|
+
generationPlan: InspiredesignGenerationPlan;
|
|
94
104
|
canvasPlanRequest: CanvasPlanRequestTemplate;
|
|
95
105
|
followthrough: InspiredesignFollowthrough;
|
|
96
106
|
designMarkdown: string;
|
|
@@ -109,6 +119,9 @@ export type InspiredesignImplementationContext = {
|
|
|
109
119
|
navigationModel: JsonRecord;
|
|
110
120
|
asyncModel: JsonRecord;
|
|
111
121
|
performanceModel: JsonRecord;
|
|
122
|
+
referenceSynthesis: JsonRecord;
|
|
123
|
+
referencePatternBoard: InspiredesignReferencePatternBoard;
|
|
124
|
+
designVectors: InspiredesignDesignVectors;
|
|
112
125
|
};
|
|
113
126
|
export type InspiredesignFollowthrough = {
|
|
114
127
|
summary: string;
|
|
@@ -137,4 +150,4 @@ export type BuildInspiredesignPacketInput = {
|
|
|
137
150
|
};
|
|
138
151
|
export declare const buildInspiredesignPacket: (input: BuildInspiredesignPacketInput) => InspiredesignPacket;
|
|
139
152
|
export {};
|
|
140
|
-
//# sourceMappingURL=
|
|
153
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/inspiredesign/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,16 +10,6 @@ export declare const INSPIREDESIGN_HANDOFF_FILES: {
|
|
|
10
10
|
readonly evidence: "evidence.json";
|
|
11
11
|
readonly prototypeGuidance: "prototype-guidance.md";
|
|
12
12
|
};
|
|
13
|
-
export declare const INSPIREDESIGN_HANDOFF_SKILLS: {
|
|
14
|
-
readonly bestPractices: {
|
|
15
|
-
readonly name: "opendevbrowser-best-practices";
|
|
16
|
-
readonly topic: "quick start";
|
|
17
|
-
};
|
|
18
|
-
readonly designAgent: {
|
|
19
|
-
readonly name: "opendevbrowser-design-agent";
|
|
20
|
-
readonly topic: "canvas-contract";
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
13
|
export declare const INSPIREDESIGN_HANDOFF_COMMANDS: {
|
|
24
14
|
readonly loadBestPractices: string;
|
|
25
15
|
readonly loadDesignAgent: string;
|
|
@@ -27,7 +17,7 @@ export declare const INSPIREDESIGN_HANDOFF_COMMANDS: {
|
|
|
27
17
|
};
|
|
28
18
|
export declare const INSPIREDESIGN_HANDOFF_RECOMMENDED_SKILLS: readonly [string, string];
|
|
29
19
|
export declare const INSPIREDESIGN_HANDOFF_GUIDANCE: {
|
|
30
|
-
readonly reviewAdvancedBrief: "advanced-brief.md is the authoritative
|
|
20
|
+
readonly reviewAdvancedBrief: "advanced-brief.md is the authoritative reference-first brief. When URL references exist, captured evidence leads the creative direction; selected format, profile defaults, layout posture, motion grammar, and anti-patterns are route guardrails only. Read it before touching Canvas or implementation files.";
|
|
31
21
|
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.";
|
|
32
22
|
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.";
|
|
33
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/inspiredesign/handoff.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B;;;;;;;;;;;CAW9B,CAAC;
|
|
1
|
+
{"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/inspiredesign/handoff.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B;;;;;;;;;;;CAW9B,CAAC;AAwBX,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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { InspiredesignBriefFormat } from "./brief-expansion";
|
|
2
|
+
type ReferenceStatus = "captured" | "failed" | "skipped";
|
|
3
|
+
type ReferenceInput = {
|
|
4
|
+
id: string;
|
|
5
|
+
url: string;
|
|
6
|
+
title?: string;
|
|
7
|
+
excerpt?: string;
|
|
8
|
+
fetchStatus: ReferenceStatus;
|
|
9
|
+
captureStatus: "off" | "captured" | "failed";
|
|
10
|
+
capture?: {
|
|
11
|
+
title?: string;
|
|
12
|
+
snapshot?: {
|
|
13
|
+
content: string;
|
|
14
|
+
};
|
|
15
|
+
dom?: {
|
|
16
|
+
outerHTML: string;
|
|
17
|
+
};
|
|
18
|
+
clone?: {
|
|
19
|
+
componentPreview: string;
|
|
20
|
+
cssPreview: string;
|
|
21
|
+
};
|
|
22
|
+
} | null;
|
|
23
|
+
};
|
|
24
|
+
export type InspiredesignReferencePatternBoard = {
|
|
25
|
+
briefId: string;
|
|
26
|
+
targetSurface: string;
|
|
27
|
+
references: Array<{
|
|
28
|
+
id: string;
|
|
29
|
+
name: string;
|
|
30
|
+
url: string;
|
|
31
|
+
surfaceType: string;
|
|
32
|
+
capturedVia: string[];
|
|
33
|
+
layoutRecipe: string;
|
|
34
|
+
contentHierarchy: string[];
|
|
35
|
+
componentFamilies: string[];
|
|
36
|
+
motionPosture: string[];
|
|
37
|
+
tokenNotes: string[];
|
|
38
|
+
patternsToBorrow: string[];
|
|
39
|
+
patternsToReject: string[];
|
|
40
|
+
whyItWorks: string;
|
|
41
|
+
}>;
|
|
42
|
+
synthesis: {
|
|
43
|
+
dominantDirection: string;
|
|
44
|
+
sharedStrengths: string[];
|
|
45
|
+
sharedFailuresToAvoid: string[];
|
|
46
|
+
contractDeltas: string[];
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export type InspiredesignDesignVectors = {
|
|
50
|
+
sourcePriority: "reference-evidence-first" | "brief-only";
|
|
51
|
+
directionLabel: string;
|
|
52
|
+
surfaceIntent: string;
|
|
53
|
+
compositionModel: string[];
|
|
54
|
+
premiumPosture: string[];
|
|
55
|
+
motionPosture: string[];
|
|
56
|
+
sectionArchitecture: string[];
|
|
57
|
+
typographyPosture: string[];
|
|
58
|
+
imageryPosture: string[];
|
|
59
|
+
interactionDensity: string;
|
|
60
|
+
interactionMoments: string[];
|
|
61
|
+
materialEffects: string[];
|
|
62
|
+
referenceInfluence: string[];
|
|
63
|
+
patternsToBorrow: string[];
|
|
64
|
+
patternsToReject: string[];
|
|
65
|
+
guardrails: string[];
|
|
66
|
+
antiPatterns: string[];
|
|
67
|
+
};
|
|
68
|
+
export declare const getInspiredesignReferenceSignals: (reference: ReferenceInput) => string[];
|
|
69
|
+
export declare const hasInspiredesignUsableReferenceEvidence: (reference: ReferenceInput) => boolean;
|
|
70
|
+
export declare const buildInspiredesignReferencePatternBoard: (briefId: string, format: InspiredesignBriefFormat, references: ReferenceInput[]) => InspiredesignReferencePatternBoard;
|
|
71
|
+
export declare const buildInspiredesignDesignVectors: (format: InspiredesignBriefFormat, board: InspiredesignReferencePatternBoard) => InspiredesignDesignVectors;
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=reference-pattern-board.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-pattern-board.d.ts","sourceRoot":"","sources":["../../src/inspiredesign/reference-pattern-board.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA8ClD,QAAA,MAAM,oBAAoB,EAAE,MAmW3B,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
package/dist/opendevbrowser.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AGENT_INBOX_SYSTEM_MARKER,
|
|
3
|
+
DEFAULT_DAEMON_STATUS_FETCH_OPTIONS,
|
|
3
4
|
DEFAULT_WORKFLOW_TRANSPORT_TIMEOUT_MS,
|
|
4
5
|
DaemonClient,
|
|
5
6
|
ScriptRunner,
|
|
@@ -11,19 +12,22 @@ import {
|
|
|
11
12
|
classifySessionRelayEndpoint,
|
|
12
13
|
createAutomationCoordinator,
|
|
13
14
|
createCoreRuntimeAssemblies,
|
|
15
|
+
createDaemonStopHeaders,
|
|
14
16
|
createOpenDevBrowserCore,
|
|
15
17
|
executeMacroWithRuntime,
|
|
16
18
|
extractExtension,
|
|
19
|
+
fetchDaemonStatus,
|
|
17
20
|
fetchDaemonStatusFromMetadata,
|
|
18
|
-
|
|
21
|
+
fetchWithTimeout,
|
|
19
22
|
inspectSession,
|
|
23
|
+
isCurrentDaemonFingerprint,
|
|
20
24
|
onboarding_metadata_default,
|
|
21
25
|
readDaemonMetadata,
|
|
22
26
|
requireChallengeOrchestrationConfig,
|
|
23
27
|
resolveBundledProviderRuntime,
|
|
24
28
|
resolveSessionRelayRoute,
|
|
25
29
|
startDaemon
|
|
26
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-MWBDO2L5.js";
|
|
27
31
|
import "./chunk-STGGGVYT.js";
|
|
28
32
|
import "./chunk-3ILXPKSJ.js";
|
|
29
33
|
import "./chunk-TBUCZX4A.js";
|
|
@@ -35,7 +39,7 @@ import {
|
|
|
35
39
|
classifyBlockerSignal,
|
|
36
40
|
createRequestId,
|
|
37
41
|
resolveInspiredesignCaptureMode
|
|
38
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-V5DJUSPV.js";
|
|
39
43
|
import "./chunk-FUSXMW3G.js";
|
|
40
44
|
|
|
41
45
|
// src/cli/remote-manager.ts
|
|
@@ -1075,7 +1079,7 @@ function createStatusTool(deps) {
|
|
|
1075
1079
|
let updateHint;
|
|
1076
1080
|
let sessionStatus = null;
|
|
1077
1081
|
if (hubEnabled) {
|
|
1078
|
-
const daemonStatus = await fetchDaemonStatusFromMetadata();
|
|
1082
|
+
const daemonStatus = await fetchDaemonStatusFromMetadata(config, DEFAULT_DAEMON_STATUS_FETCH_OPTIONS);
|
|
1079
1083
|
if (!daemonStatus) {
|
|
1080
1084
|
return failure("Daemon not running. Start with `npx opendevbrowser serve`.", "status_failed");
|
|
1081
1085
|
}
|
|
@@ -3188,7 +3192,7 @@ function createResearchRunTool(deps) {
|
|
|
3188
3192
|
async execute(args) {
|
|
3189
3193
|
try {
|
|
3190
3194
|
const runtime = await resolveProviderRuntime(deps);
|
|
3191
|
-
const { runResearchWorkflow } = await import("./providers-
|
|
3195
|
+
const { runResearchWorkflow } = await import("./providers-TR3DUJZV.js");
|
|
3192
3196
|
const result = await runResearchWorkflow(runtime, {
|
|
3193
3197
|
topic: args.topic,
|
|
3194
3198
|
days: args.days,
|
|
@@ -3239,7 +3243,7 @@ function createShoppingRunTool(deps) {
|
|
|
3239
3243
|
async execute(args) {
|
|
3240
3244
|
try {
|
|
3241
3245
|
const runtime = await resolveProviderRuntime(deps);
|
|
3242
|
-
const { runShoppingWorkflow } = await import("./providers-
|
|
3246
|
+
const { runShoppingWorkflow } = await import("./providers-TR3DUJZV.js");
|
|
3243
3247
|
const result = await runShoppingWorkflow(runtime, {
|
|
3244
3248
|
query: args.query,
|
|
3245
3249
|
providers: args.providers,
|
|
@@ -3308,7 +3312,7 @@ function createProductVideoRunTool(deps) {
|
|
|
3308
3312
|
async execute(args) {
|
|
3309
3313
|
try {
|
|
3310
3314
|
const runtime = await resolveProviderRuntime(deps);
|
|
3311
|
-
const { runProductVideoWorkflow } = await import("./providers-
|
|
3315
|
+
const { runProductVideoWorkflow } = await import("./providers-TR3DUJZV.js");
|
|
3312
3316
|
const includeScreenshots = args.include_screenshots ?? true;
|
|
3313
3317
|
const result = await runProductVideoWorkflow(runtime, {
|
|
3314
3318
|
product_url: args.product_url,
|
|
@@ -3360,7 +3364,7 @@ function createInspiredesignRunTool(deps) {
|
|
|
3360
3364
|
async execute(args) {
|
|
3361
3365
|
try {
|
|
3362
3366
|
const runtime = await resolveProviderRuntime(deps);
|
|
3363
|
-
const { runInspiredesignWorkflow } = await import("./providers-
|
|
3367
|
+
const { runInspiredesignWorkflow } = await import("./providers-TR3DUJZV.js");
|
|
3364
3368
|
const captureMode = resolveInspiredesignCaptureMode(args.captureMode, args.urls);
|
|
3365
3369
|
const cookieSource = deps.config.get().providers?.cookieSource;
|
|
3366
3370
|
const result = await runInspiredesignWorkflow(runtime, {
|
|
@@ -3473,7 +3477,9 @@ function createTools(deps) {
|
|
|
3473
3477
|
execute: async (args, context) => {
|
|
3474
3478
|
try {
|
|
3475
3479
|
await deps.ensureHub?.();
|
|
3476
|
-
} catch {
|
|
3480
|
+
} catch (error) {
|
|
3481
|
+
const serialized = serializeError(error);
|
|
3482
|
+
return failure(serialized.message, serialized.code ?? "hub_unavailable", serialized.details);
|
|
3477
3483
|
}
|
|
3478
3484
|
return definition.execute(args, context);
|
|
3479
3485
|
}
|
|
@@ -3643,6 +3649,69 @@ var OpenDevBrowserPlugin = async ({ directory, worktree }) => {
|
|
|
3643
3649
|
toolDeps.providerRuntime = providerRuntime;
|
|
3644
3650
|
toolDeps.browserFallbackPort = browserFallbackPort;
|
|
3645
3651
|
};
|
|
3652
|
+
const readEnsureHubBudgetMs = (deadlineMs) => {
|
|
3653
|
+
const remainingMs = deadlineMs - Date.now();
|
|
3654
|
+
return remainingMs > 0 ? remainingMs : null;
|
|
3655
|
+
};
|
|
3656
|
+
const stopTimeoutMs = (deadlineMs) => {
|
|
3657
|
+
return Math.max(1, Math.min(500, readEnsureHubBudgetMs(deadlineMs) ?? 1));
|
|
3658
|
+
};
|
|
3659
|
+
const resolveHubStopConnection = (currentConfig, status) => {
|
|
3660
|
+
const metadata = readDaemonMetadata();
|
|
3661
|
+
if (metadata?.pid === status.pid) {
|
|
3662
|
+
return { port: metadata.port, token: metadata.token };
|
|
3663
|
+
}
|
|
3664
|
+
return { port: currentConfig.daemonPort, token: currentConfig.daemonToken };
|
|
3665
|
+
};
|
|
3666
|
+
const isConfiguredHubConnection = (currentConfig, connection) => {
|
|
3667
|
+
return connection.port === currentConfig.daemonPort && connection.token === currentConfig.daemonToken;
|
|
3668
|
+
};
|
|
3669
|
+
const waitForHubDaemonShutdown = async (connection, deadlineMs) => {
|
|
3670
|
+
while (readEnsureHubBudgetMs(deadlineMs)) {
|
|
3671
|
+
const status = await fetchDaemonStatus(connection.port, connection.token, {
|
|
3672
|
+
timeoutMs: stopTimeoutMs(deadlineMs)
|
|
3673
|
+
});
|
|
3674
|
+
if (!status?.ok) {
|
|
3675
|
+
return true;
|
|
3676
|
+
}
|
|
3677
|
+
await new Promise((resolve) => setTimeout(resolve, Math.min(100, stopTimeoutMs(deadlineMs))));
|
|
3678
|
+
}
|
|
3679
|
+
return false;
|
|
3680
|
+
};
|
|
3681
|
+
const stopMismatchedHubDaemon = async (currentConfig, status, deadlineMs) => {
|
|
3682
|
+
const connection = resolveHubStopConnection(currentConfig, status);
|
|
3683
|
+
const configuredConnection = isConfiguredHubConnection(currentConfig, connection);
|
|
3684
|
+
let response;
|
|
3685
|
+
try {
|
|
3686
|
+
response = await fetchWithTimeout(`http://127.0.0.1:${connection.port}/stop`, {
|
|
3687
|
+
method: "POST",
|
|
3688
|
+
headers: createDaemonStopHeaders(connection.token, "plugin.ensureHub.upgrade")
|
|
3689
|
+
}, stopTimeoutMs(deadlineMs));
|
|
3690
|
+
} catch (error) {
|
|
3691
|
+
if (!configuredConnection) {
|
|
3692
|
+
return;
|
|
3693
|
+
}
|
|
3694
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
3695
|
+
}
|
|
3696
|
+
if (response.status === 409) {
|
|
3697
|
+
if (!configuredConnection) {
|
|
3698
|
+
return;
|
|
3699
|
+
}
|
|
3700
|
+
throw new Error(`Hub daemon on 127.0.0.1:${connection.port} pid=${status.pid} is protected by a different opendevbrowser build.`);
|
|
3701
|
+
}
|
|
3702
|
+
if (!response.ok) {
|
|
3703
|
+
if (!configuredConnection) {
|
|
3704
|
+
return;
|
|
3705
|
+
}
|
|
3706
|
+
throw new Error(`Hub daemon stop failed with status ${response.status}.`);
|
|
3707
|
+
}
|
|
3708
|
+
if (!await waitForHubDaemonShutdown(connection, deadlineMs)) {
|
|
3709
|
+
if (!configuredConnection) {
|
|
3710
|
+
return;
|
|
3711
|
+
}
|
|
3712
|
+
throw new Error(`Timed out waiting for hub daemon on 127.0.0.1:${connection.port} to stop.`);
|
|
3713
|
+
}
|
|
3714
|
+
};
|
|
3646
3715
|
const ensureHub = async () => {
|
|
3647
3716
|
const currentConfig = configStore.get();
|
|
3648
3717
|
if (!isHubEnabled(currentConfig)) {
|
|
@@ -3654,29 +3723,26 @@ var OpenDevBrowserPlugin = async ({ directory, worktree }) => {
|
|
|
3654
3723
|
const deadline = Date.now() + 2e3;
|
|
3655
3724
|
let attempt = 0;
|
|
3656
3725
|
let lastError = null;
|
|
3657
|
-
const currentFingerprint = getCurrentDaemonFingerprint();
|
|
3658
3726
|
while (attempt < 2 && Date.now() < deadline) {
|
|
3659
3727
|
attempt += 1;
|
|
3660
|
-
const
|
|
3661
|
-
if (
|
|
3662
|
-
|
|
3663
|
-
await relay?.refresh?.();
|
|
3664
|
-
return;
|
|
3728
|
+
const statusTimeoutMs = readEnsureHubBudgetMs(deadline);
|
|
3729
|
+
if (!statusTimeoutMs) {
|
|
3730
|
+
break;
|
|
3665
3731
|
}
|
|
3732
|
+
const status = await fetchDaemonStatusFromMetadata(currentConfig, {
|
|
3733
|
+
...DEFAULT_DAEMON_STATUS_FETCH_OPTIONS,
|
|
3734
|
+
timeoutMs: statusTimeoutMs
|
|
3735
|
+
});
|
|
3666
3736
|
if (status?.ok) {
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
try {
|
|
3672
|
-
await fetch(`http://127.0.0.1:${daemonPort}/stop`, {
|
|
3673
|
-
method: "POST",
|
|
3674
|
-
headers: { Authorization: `Bearer ${daemonToken}` }
|
|
3675
|
-
});
|
|
3676
|
-
} catch (error) {
|
|
3677
|
-
lastError = error instanceof Error ? error : new Error(String(error));
|
|
3678
|
-
}
|
|
3737
|
+
if (isCurrentDaemonFingerprint(status.fingerprint)) {
|
|
3738
|
+
bindRemote();
|
|
3739
|
+
await relay?.refresh?.();
|
|
3740
|
+
return;
|
|
3679
3741
|
}
|
|
3742
|
+
await stopMismatchedHubDaemon(currentConfig, status, deadline);
|
|
3743
|
+
}
|
|
3744
|
+
if (!readEnsureHubBudgetMs(deadline)) {
|
|
3745
|
+
break;
|
|
3680
3746
|
}
|
|
3681
3747
|
try {
|
|
3682
3748
|
const { stop } = await startDaemon({ config: currentConfig, directory, worktree });
|
|
@@ -3684,6 +3750,22 @@ var OpenDevBrowserPlugin = async ({ directory, worktree }) => {
|
|
|
3684
3750
|
} catch (error) {
|
|
3685
3751
|
lastError = error instanceof Error ? error : new Error(String(error));
|
|
3686
3752
|
}
|
|
3753
|
+
const refreshedTimeoutMs = readEnsureHubBudgetMs(deadline);
|
|
3754
|
+
if (!refreshedTimeoutMs) {
|
|
3755
|
+
break;
|
|
3756
|
+
}
|
|
3757
|
+
const refreshedStatus = await fetchDaemonStatusFromMetadata(currentConfig, {
|
|
3758
|
+
...DEFAULT_DAEMON_STATUS_FETCH_OPTIONS,
|
|
3759
|
+
timeoutMs: refreshedTimeoutMs
|
|
3760
|
+
});
|
|
3761
|
+
if (refreshedStatus?.ok) {
|
|
3762
|
+
if (isCurrentDaemonFingerprint(refreshedStatus.fingerprint)) {
|
|
3763
|
+
bindRemote();
|
|
3764
|
+
await relay?.refresh?.();
|
|
3765
|
+
return;
|
|
3766
|
+
}
|
|
3767
|
+
await stopMismatchedHubDaemon(currentConfig, refreshedStatus, deadline);
|
|
3768
|
+
}
|
|
3687
3769
|
if (Date.now() < deadline) {
|
|
3688
3770
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
3689
3771
|
}
|
|
@@ -3696,7 +3778,6 @@ var OpenDevBrowserPlugin = async ({ directory, worktree }) => {
|
|
|
3696
3778
|
toolDeps.ensureHub = ensureHub;
|
|
3697
3779
|
const hubEnabled = isHubEnabled(config);
|
|
3698
3780
|
if (hubEnabled) {
|
|
3699
|
-
bindRemote();
|
|
3700
3781
|
try {
|
|
3701
3782
|
await ensureHub();
|
|
3702
3783
|
} catch (error) {
|