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.
Files changed (76) hide show
  1. package/README.md +1 -1
  2. package/dist/browser/canvas-manager.d.ts.map +1 -1
  3. package/dist/canvas/document-store.d.ts.map +1 -1
  4. package/dist/canvas/guidance.d.ts +22 -0
  5. package/dist/canvas/guidance.d.ts.map +1 -0
  6. package/dist/{chunk-MWBDO2L5.js → chunk-I5ZCOZZV.js} +224 -80
  7. package/dist/chunk-I5ZCOZZV.js.map +1 -0
  8. package/dist/{chunk-V5DJUSPV.js → chunk-T3VVHJTK.js} +1381 -318
  9. package/dist/chunk-T3VVHJTK.js.map +1 -0
  10. package/dist/cli/commands/inspiredesign.d.ts +2 -0
  11. package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
  12. package/dist/cli/commands/macro-resolve.d.ts +2 -0
  13. package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
  14. package/dist/cli/commands/product-video.d.ts +2 -0
  15. package/dist/cli/commands/product-video.d.ts.map +1 -1
  16. package/dist/cli/commands/research.d.ts +2 -0
  17. package/dist/cli/commands/research.d.ts.map +1 -1
  18. package/dist/cli/daemon-commands.d.ts.map +1 -1
  19. package/dist/cli/help.d.ts.map +1 -1
  20. package/dist/cli/index.js +125 -28
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/cli/utils/workflow-message.d.ts +3 -0
  23. package/dist/cli/utils/workflow-message.d.ts.map +1 -1
  24. package/dist/daemon-fingerprint.json +1 -1
  25. package/dist/index.js +39 -15
  26. package/dist/index.js.map +1 -1
  27. package/dist/inspiredesign/contract.d.ts +52 -1
  28. package/dist/inspiredesign/contract.d.ts.map +1 -1
  29. package/dist/inspiredesign/handoff.d.ts +12 -0
  30. package/dist/inspiredesign/handoff.d.ts.map +1 -1
  31. package/dist/inspiredesign/reference-pattern-board.d.ts +1 -0
  32. package/dist/inspiredesign/reference-pattern-board.d.ts.map +1 -1
  33. package/dist/macros/execute-runtime.d.ts +2 -1
  34. package/dist/macros/execute-runtime.d.ts.map +1 -1
  35. package/dist/macros/execute.d.ts +4 -2
  36. package/dist/macros/execute.d.ts.map +1 -1
  37. package/dist/opendevbrowser.js +39 -15
  38. package/dist/opendevbrowser.js.map +1 -1
  39. package/dist/providers/browser-fallback.d.ts +7 -0
  40. package/dist/providers/browser-fallback.d.ts.map +1 -1
  41. package/dist/providers/community/index.d.ts.map +1 -1
  42. package/dist/providers/index.d.ts.map +1 -1
  43. package/dist/providers/renderer.d.ts.map +1 -1
  44. package/dist/providers/research-compiler.d.ts.map +1 -1
  45. package/dist/providers/runtime-bundle.d.ts +1 -1
  46. package/dist/providers/runtime-bundle.d.ts.map +1 -1
  47. package/dist/providers/runtime-factory.d.ts.map +1 -1
  48. package/dist/providers/shopping/index.d.ts.map +1 -1
  49. package/dist/providers/social/platform.d.ts.map +1 -1
  50. package/dist/providers/social/search-quality.d.ts.map +1 -1
  51. package/dist/providers/social/youtube.d.ts.map +1 -1
  52. package/dist/providers/workflow-handoff.d.ts +18 -1
  53. package/dist/providers/workflow-handoff.d.ts.map +1 -1
  54. package/dist/providers/workflows.d.ts +3 -0
  55. package/dist/providers/workflows.d.ts.map +1 -1
  56. package/dist/{providers-TR3DUJZV.js → providers-QF2RFB4J.js} +2 -2
  57. package/dist/public-surface/generated-manifest.d.ts +6 -6
  58. package/dist/public-surface/generated-manifest.d.ts.map +1 -1
  59. package/dist/public-surface/source.d.ts +8 -8
  60. package/dist/public-surface/source.d.ts.map +1 -1
  61. package/dist/tools/inspiredesign_run.d.ts.map +1 -1
  62. package/dist/tools/macro_resolve.d.ts.map +1 -1
  63. package/dist/tools/product_video_run.d.ts.map +1 -1
  64. package/dist/tools/research_run.d.ts.map +1 -1
  65. package/dist/tools/shopping_run.d.ts.map +1 -1
  66. package/extension/manifest.json +1 -1
  67. package/package.json +1 -1
  68. package/skills/opendevbrowser-best-practices/SKILL.md +6 -6
  69. package/skills/opendevbrowser-design-agent/SKILL.md +5 -0
  70. package/skills/opendevbrowser-design-agent/artifacts/design-contract-playbook.md +6 -1
  71. package/skills/opendevbrowser-design-agent/assets/templates/design-contract.v1.json +15 -1
  72. package/skills/opendevbrowser-design-agent/assets/templates/inspiredesign-advanced-brief.v1.json +5 -2
  73. package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +2 -0
  74. package/dist/chunk-MWBDO2L5.js.map +0 -1
  75. package/dist/chunk-V5DJUSPV.js.map +0 -1
  76. /package/dist/{providers-TR3DUJZV.js.map → providers-QF2RFB4J.js.map} +0 -0
@@ -1,6 +1,9 @@
1
+ export declare const readFollowthroughSummary: (data: unknown) => string | null;
1
2
  export declare const buildNextStepMessage: (message: string, nextStep: string | null) => string;
3
+ export declare const buildProviderFollowupErrorMessage: (message: string) => string;
2
4
  export declare const readSuggestedNextAction: (data: unknown) => string | null;
3
5
  export declare const readSuggestedStepCommand: (data: unknown) => string | null;
4
6
  export declare const readSuggestedStepReason: (data: unknown) => string | null;
7
+ export declare const readWorkflowGuidanceNextStep: (data: unknown) => string | null;
5
8
  export declare const buildWorkflowCompletionMessage: (workflowLabel: string, data: unknown) => string;
6
9
  //# sourceMappingURL=workflow-message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-message.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/workflow-message.ts"],"names":[],"mappings":"AAmFA,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,GAAG,IAAI,KAAG,MAE/E,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,MAAM,OAAO,KAAG,MAAM,GAAG,IAKhE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,MAAM,OAAO,KAAG,MAAM,GAAG,IAcjE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,MAAM,OAAO,KAAG,MAAM,GAAG,IAYhE,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,eAAe,MAAM,EAAE,MAAM,OAAO,KAAG,MAuBrF,CAAC"}
1
+ {"version":3,"file":"workflow-message.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/workflow-message.ts"],"names":[],"mappings":"AA6EA,eAAO,MAAM,wBAAwB,GAAI,MAAM,OAAO,KAAG,MAAM,GAAG,IAIjE,CAAC;AAYF,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,GAAG,IAAI,KAAG,MAG/E,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAAI,SAAS,MAAM,KAAG,MAgBnE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,MAAM,OAAO,KAAG,MAAM,GAAG,IAKhE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,MAAM,OAAO,KAAG,MAAM,GAAG,IAcjE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,MAAM,OAAO,KAAG,MAAM,GAAG,IAYhE,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,MAAM,OAAO,KAAG,MAAM,GAAG,IAErE,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,eAAe,MAAM,EAAE,MAAM,OAAO,KAAG,MAuBrF,CAAC"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "fingerprint": "edcea44f4cc2038553c856a605dac8b270b19af888ff68474e8c4ce8a6f73e8b"
2
+ "fingerprint": "d0bd0c8c4867d5f75a4f0fbc8c1aa03e06c2c4f82c13a8b8ef063d5d0be6e389"
3
3
  }
package/dist/index.js CHANGED
@@ -27,7 +27,7 @@ import {
27
27
  resolveBundledProviderRuntime,
28
28
  resolveSessionRelayRoute,
29
29
  startDaemon
30
- } from "./chunk-MWBDO2L5.js";
30
+ } from "./chunk-I5ZCOZZV.js";
31
31
  import "./chunk-STGGGVYT.js";
32
32
  import "./chunk-3ILXPKSJ.js";
33
33
  import "./chunk-TBUCZX4A.js";
@@ -39,7 +39,7 @@ import {
39
39
  classifyBlockerSignal,
40
40
  createRequestId,
41
41
  resolveInspiredesignCaptureMode
42
- } from "./chunk-V5DJUSPV.js";
42
+ } from "./chunk-T3VVHJTK.js";
43
43
  import "./chunk-FUSXMW3G.js";
44
44
 
45
45
  // src/cli/remote-manager.ts
@@ -2646,6 +2646,8 @@ var resolveProviderRuntime = async (deps, options) => {
2646
2646
 
2647
2647
  // src/tools/macro_resolve.ts
2648
2648
  var z49 = tool49.schema;
2649
+ var browserModeSchema = z49.enum(["auto", "extension", "managed"]);
2650
+ var challengeAutomationModeSchema4 = z49.enum(CHALLENGE_AUTOMATION_MODES);
2649
2651
  async function loadMacroRuntime() {
2650
2652
  try {
2651
2653
  const module = await import("./macros-ND2M7LWU.js");
@@ -2699,6 +2701,8 @@ function createMacroResolveTool(deps) {
2699
2701
  expression: z49.string().min(2).describe('Macro expression, e.g. @web.search("query")'),
2700
2702
  defaultProvider: z49.string().optional().describe("Default provider fallback"),
2701
2703
  includeCatalog: z49.boolean().optional().describe("Include available runtime macro names"),
2704
+ browserMode: browserModeSchema.optional().describe("Browser transport mode for executed macros: auto|extension|managed"),
2705
+ challengeAutomationMode: challengeAutomationModeSchema4.optional().describe("Challenge automation mode for executed macros: off|browser|browser_with_helper"),
2702
2706
  execute: z49.boolean().optional().describe("Execute the resolved provider action and include execution payload")
2703
2707
  },
2704
2708
  async execute(args) {
@@ -2721,6 +2725,12 @@ function createMacroResolveTool(deps) {
2721
2725
  } else {
2722
2726
  resolution = parseFallbackMacro(args.expression, args.defaultProvider);
2723
2727
  }
2728
+ if (!args.execute && args.browserMode) {
2729
+ throw new Error("browserMode requires execute=true for macro resolution");
2730
+ }
2731
+ if (!args.execute && args.challengeAutomationMode) {
2732
+ throw new Error("challengeAutomationMode requires execute=true for macro resolution");
2733
+ }
2724
2734
  if (!args.execute) {
2725
2735
  const handoff2 = buildMacroResolveSuccessHandoff({
2726
2736
  expression: args.expression,
@@ -2738,7 +2748,9 @@ function createMacroResolveTool(deps) {
2738
2748
  const providerRuntime = await resolveProviderRuntime(deps);
2739
2749
  const execution = await executeMacroWithRuntime({
2740
2750
  resolution,
2741
- runtime: providerRuntime
2751
+ runtime: providerRuntime,
2752
+ browserMode: args.browserMode,
2753
+ challengeAutomationMode: args.challengeAutomationMode
2742
2754
  });
2743
2755
  const handoff = buildMacroResolveSuccessHandoff({
2744
2756
  expression: args.expression,
@@ -3168,8 +3180,9 @@ var z63 = tool64.schema;
3168
3180
  var sourceSelectionSchema = z63.enum(["auto", "web", "community", "social", "shopping", "all"]);
3169
3181
  var sourceSchema = z63.enum(["web", "community", "social", "shopping"]);
3170
3182
  var modeSchema = z63.enum(["compact", "json", "md", "context", "path"]);
3183
+ var browserModeSchema2 = z63.enum(["auto", "extension", "managed"]);
3171
3184
  var cookiePolicySchema = z63.enum(["off", "auto", "required"]);
3172
- var challengeAutomationModeSchema4 = z63.enum(CHALLENGE_AUTOMATION_MODES);
3185
+ var challengeAutomationModeSchema5 = z63.enum(CHALLENGE_AUTOMATION_MODES);
3173
3186
  function createResearchRunTool(deps) {
3174
3187
  return tool64({
3175
3188
  description: "Run cross-source research with strict timebox and artifact outputs.",
@@ -3185,14 +3198,15 @@ function createResearchRunTool(deps) {
3185
3198
  limitPerSource: z63.number().int().positive().optional().describe("Result limit per source"),
3186
3199
  outputDir: z63.string().optional().describe("Optional artifact output directory"),
3187
3200
  ttlHours: z63.number().int().positive().optional().describe("Artifact retention TTL in hours"),
3201
+ browserMode: browserModeSchema2.optional().describe("Browser transport mode: auto|extension|managed"),
3188
3202
  useCookies: z63.boolean().optional().describe("Enable/disable provider cookie injection for this run"),
3189
- challengeAutomationMode: challengeAutomationModeSchema4.optional().describe("Challenge automation mode: off|browser|browser_with_helper"),
3203
+ challengeAutomationMode: challengeAutomationModeSchema5.optional().describe("Challenge automation mode: off|browser|browser_with_helper"),
3190
3204
  cookiePolicyOverride: cookiePolicySchema.optional().describe("Override cookie policy: off|auto|required")
3191
3205
  },
3192
3206
  async execute(args) {
3193
3207
  try {
3194
3208
  const runtime = await resolveProviderRuntime(deps);
3195
- const { runResearchWorkflow } = await import("./providers-TR3DUJZV.js");
3209
+ const { runResearchWorkflow } = await import("./providers-QF2RFB4J.js");
3196
3210
  const result = await runResearchWorkflow(runtime, {
3197
3211
  topic: args.topic,
3198
3212
  days: args.days,
@@ -3205,6 +3219,7 @@ function createResearchRunTool(deps) {
3205
3219
  limitPerSource: args.limitPerSource,
3206
3220
  outputDir: args.outputDir,
3207
3221
  ttlHours: args.ttlHours,
3222
+ browserMode: args.browserMode,
3208
3223
  useCookies: args.useCookies,
3209
3224
  challengeAutomationMode: args.challengeAutomationMode,
3210
3225
  cookiePolicyOverride: args.cookiePolicyOverride
@@ -3222,8 +3237,9 @@ import { tool as tool65 } from "@opencode-ai/plugin";
3222
3237
  var z64 = tool65.schema;
3223
3238
  var sortSchema = z64.enum(["best_deal", "lowest_price", "highest_rating", "fastest_shipping"]);
3224
3239
  var modeSchema2 = z64.enum(["compact", "json", "md", "context", "path"]);
3240
+ var browserModeSchema3 = z64.enum(["auto", "extension", "managed"]);
3225
3241
  var cookiePolicySchema2 = z64.enum(["off", "auto", "required"]);
3226
- var challengeAutomationModeSchema5 = z64.enum(CHALLENGE_AUTOMATION_MODES);
3242
+ var challengeAutomationModeSchema6 = z64.enum(CHALLENGE_AUTOMATION_MODES);
3227
3243
  function createShoppingRunTool(deps) {
3228
3244
  return tool65({
3229
3245
  description: "Run shopping/deal intelligence across shopping providers.",
@@ -3232,23 +3248,25 @@ function createShoppingRunTool(deps) {
3232
3248
  providers: z64.array(z64.string()).optional().describe("Optional provider allow-list"),
3233
3249
  budget: z64.number().positive().optional().describe("Optional budget amount"),
3234
3250
  region: z64.string().optional().describe("Region hint"),
3251
+ browserMode: browserModeSchema3.optional().describe("Browser transport mode: auto|extension|managed"),
3235
3252
  sort: sortSchema.optional().describe("best_deal|lowest_price|highest_rating|fastest_shipping"),
3236
3253
  mode: modeSchema2.optional().describe("compact|json|md|context|path"),
3237
3254
  outputDir: z64.string().optional().describe("Optional artifact output directory"),
3238
3255
  ttlHours: z64.number().int().positive().optional().describe("Artifact retention TTL in hours"),
3239
3256
  useCookies: z64.boolean().optional().describe("Enable/disable provider cookie injection for this run"),
3240
- challengeAutomationMode: challengeAutomationModeSchema5.optional().describe("Challenge automation mode: off|browser|browser_with_helper"),
3257
+ challengeAutomationMode: challengeAutomationModeSchema6.optional().describe("Challenge automation mode: off|browser|browser_with_helper"),
3241
3258
  cookiePolicyOverride: cookiePolicySchema2.optional().describe("Override cookie policy: off|auto|required")
3242
3259
  },
3243
3260
  async execute(args) {
3244
3261
  try {
3245
3262
  const runtime = await resolveProviderRuntime(deps);
3246
- const { runShoppingWorkflow } = await import("./providers-TR3DUJZV.js");
3263
+ const { runShoppingWorkflow } = await import("./providers-QF2RFB4J.js");
3247
3264
  const result = await runShoppingWorkflow(runtime, {
3248
3265
  query: args.query,
3249
3266
  providers: args.providers,
3250
3267
  budget: args.budget,
3251
3268
  region: args.region,
3269
+ browserMode: args.browserMode,
3252
3270
  sort: args.sort,
3253
3271
  mode: args.mode ?? "compact",
3254
3272
  outputDir: args.outputDir,
@@ -3268,8 +3286,9 @@ function createShoppingRunTool(deps) {
3268
3286
  // src/tools/product_video_run.ts
3269
3287
  import { tool as tool66 } from "@opencode-ai/plugin";
3270
3288
  var z65 = tool66.schema;
3289
+ var browserModeSchema4 = z65.enum(["auto", "extension", "managed"]);
3271
3290
  var cookiePolicySchema3 = z65.enum(["off", "auto", "required"]);
3272
- var challengeAutomationModeSchema6 = z65.enum(CHALLENGE_AUTOMATION_MODES);
3291
+ var challengeAutomationModeSchema7 = z65.enum(CHALLENGE_AUTOMATION_MODES);
3273
3292
  async function captureScreenshotBuffer(deps, url) {
3274
3293
  let sessionId = null;
3275
3294
  try {
@@ -3305,14 +3324,15 @@ function createProductVideoRunTool(deps) {
3305
3324
  output_dir: z65.string().optional().describe("Optional output directory"),
3306
3325
  ttl_hours: z65.number().int().positive().optional().describe("Artifact retention TTL in hours"),
3307
3326
  timeoutMs: z65.number().int().positive().optional().describe("Workflow timeout in milliseconds"),
3327
+ browserMode: browserModeSchema4.optional().describe("Browser transport mode: auto|extension|managed"),
3308
3328
  useCookies: z65.boolean().optional().describe("Enable/disable provider cookie injection for this run"),
3309
- challengeAutomationMode: challengeAutomationModeSchema6.optional().describe("Challenge automation mode: off|browser|browser_with_helper"),
3329
+ challengeAutomationMode: challengeAutomationModeSchema7.optional().describe("Challenge automation mode: off|browser|browser_with_helper"),
3310
3330
  cookiePolicyOverride: cookiePolicySchema3.optional().describe("Override cookie policy: off|auto|required")
3311
3331
  },
3312
3332
  async execute(args) {
3313
3333
  try {
3314
3334
  const runtime = await resolveProviderRuntime(deps);
3315
- const { runProductVideoWorkflow } = await import("./providers-TR3DUJZV.js");
3335
+ const { runProductVideoWorkflow } = await import("./providers-QF2RFB4J.js");
3316
3336
  const includeScreenshots = args.include_screenshots ?? true;
3317
3337
  const result = await runProductVideoWorkflow(runtime, {
3318
3338
  product_url: args.product_url,
@@ -3324,6 +3344,7 @@ function createProductVideoRunTool(deps) {
3324
3344
  output_dir: args.output_dir,
3325
3345
  ttl_hours: args.ttl_hours,
3326
3346
  timeoutMs: args.timeoutMs,
3347
+ browserMode: args.browserMode,
3327
3348
  useCookies: args.useCookies,
3328
3349
  challengeAutomationMode: args.challengeAutomationMode,
3329
3350
  cookiePolicyOverride: args.cookiePolicyOverride
@@ -3343,8 +3364,9 @@ import { tool as tool67 } from "@opencode-ai/plugin";
3343
3364
  var z66 = tool67.schema;
3344
3365
  var modeSchema3 = z66.enum(["compact", "json", "md", "context", "path"]);
3345
3366
  var captureModeSchema = z66.enum(["off", "deep"]);
3367
+ var browserModeSchema5 = z66.enum(["auto", "extension", "managed"]);
3346
3368
  var cookiePolicySchema4 = z66.enum(["off", "auto", "required"]);
3347
- var challengeAutomationModeSchema7 = z66.enum(CHALLENGE_AUTOMATION_MODES);
3369
+ var challengeAutomationModeSchema8 = z66.enum(CHALLENGE_AUTOMATION_MODES);
3348
3370
  function createInspiredesignRunTool(deps) {
3349
3371
  return tool67({
3350
3372
  description: "Run the inspiredesign workflow directly.",
@@ -3357,14 +3379,15 @@ function createInspiredesignRunTool(deps) {
3357
3379
  timeoutMs: z66.number().int().positive().optional().describe("Workflow timeout in milliseconds"),
3358
3380
  outputDir: z66.string().optional().describe("Optional artifact output directory"),
3359
3381
  ttlHours: z66.number().int().positive().optional().describe("Artifact retention TTL in hours"),
3382
+ browserMode: browserModeSchema5.optional().describe("Browser transport mode: auto|extension|managed"),
3360
3383
  useCookies: z66.boolean().optional().describe("Enable/disable provider cookie injection for this run"),
3361
- challengeAutomationMode: challengeAutomationModeSchema7.optional().describe("Challenge automation mode: off|browser|browser_with_helper"),
3384
+ challengeAutomationMode: challengeAutomationModeSchema8.optional().describe("Challenge automation mode: off|browser|browser_with_helper"),
3362
3385
  cookiePolicyOverride: cookiePolicySchema4.optional().describe("Override cookie policy: off|auto|required")
3363
3386
  },
3364
3387
  async execute(args) {
3365
3388
  try {
3366
3389
  const runtime = await resolveProviderRuntime(deps);
3367
- const { runInspiredesignWorkflow } = await import("./providers-TR3DUJZV.js");
3390
+ const { runInspiredesignWorkflow } = await import("./providers-QF2RFB4J.js");
3368
3391
  const captureMode = resolveInspiredesignCaptureMode(args.captureMode, args.urls);
3369
3392
  const cookieSource = deps.config.get().providers?.cookieSource;
3370
3393
  const result = await runInspiredesignWorkflow(runtime, {
@@ -3376,6 +3399,7 @@ function createInspiredesignRunTool(deps) {
3376
3399
  timeoutMs: args.timeoutMs ?? DEFAULT_WORKFLOW_TRANSPORT_TIMEOUT_MS,
3377
3400
  outputDir: args.outputDir,
3378
3401
  ttlHours: args.ttlHours,
3402
+ browserMode: args.browserMode,
3379
3403
  useCookies: args.useCookies,
3380
3404
  challengeAutomationMode: args.challengeAutomationMode,
3381
3405
  cookiePolicyOverride: args.cookiePolicyOverride