opendevbrowser 0.0.22 → 0.0.23

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 (33) hide show
  1. package/README.md +1 -1
  2. package/dist/{chunk-OGE5KJ4X.js → chunk-2MG7BRPF.js} +513 -80
  3. package/dist/{chunk-OGE5KJ4X.js.map → chunk-2MG7BRPF.js.map} +1 -1
  4. package/dist/{chunk-ZE2E7ZGH.js → chunk-K2TEHJCV.js} +240 -33
  5. package/dist/chunk-K2TEHJCV.js.map +1 -0
  6. package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
  7. package/dist/cli/daemon-commands.d.ts.map +1 -1
  8. package/dist/cli/help.d.ts.map +1 -1
  9. package/dist/cli/index.js +51 -6
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/cli/utils/workflow-message.d.ts +1 -0
  12. package/dist/cli/utils/workflow-message.d.ts.map +1 -1
  13. package/dist/index.js +23 -8
  14. package/dist/index.js.map +1 -1
  15. package/dist/opendevbrowser.js +23 -8
  16. package/dist/opendevbrowser.js.map +1 -1
  17. package/dist/providers/social/platform.d.ts.map +1 -1
  18. package/dist/providers/social/search-quality.d.ts.map +1 -1
  19. package/dist/providers/social/youtube.d.ts.map +1 -1
  20. package/dist/providers/workflow-handoff.d.ts +27 -3
  21. package/dist/providers/workflow-handoff.d.ts.map +1 -1
  22. package/dist/providers/workflows.d.ts +1 -0
  23. package/dist/providers/workflows.d.ts.map +1 -1
  24. package/dist/{providers-ZIVHHH4F.js → providers-6YVHKTOJ.js} +2 -2
  25. package/dist/public-surface/generated-manifest.d.ts +160 -2
  26. package/dist/public-surface/generated-manifest.d.ts.map +1 -1
  27. package/dist/public-surface/source.d.ts +8 -2
  28. package/dist/public-surface/source.d.ts.map +1 -1
  29. package/dist/tools/macro_resolve.d.ts.map +1 -1
  30. package/extension/manifest.json +1 -1
  31. package/package.json +1 -1
  32. package/dist/chunk-ZE2E7ZGH.js.map +0 -1
  33. /package/dist/{providers-ZIVHHH4F.js.map → providers-6YVHKTOJ.js.map} +0 -0
@@ -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;AAK1C,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjG,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,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACnD,CAAC;AA8GF,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU;;;;GAyBrD;AAED,eAAO,MAAM,QAAQ;qCAhGmB,MAAM,EAAE,KAAG,gBAAgB;CAkGlE,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;AAK1C,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjG,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,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACnD,CAAC;AAyIF,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU;;;;GAyBrD;AAED,eAAO,MAAM,QAAQ;qCAhGmB,MAAM,EAAE,KAAG,gBAAgB;CAkGlE,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;AA+ClD,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,CA6zBnH"}
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;AAgDlD,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,CA6zBnH"}
@@ -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,EAmE5D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,SAAS,cAAc,EAgB3D,CAAC;AAkJF,wBAAgB,WAAW,IAAI,MAAM,CA+BpC"}
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,EAmE5D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,SAAS,cAAc,EAgB3D,CAAC;AA8JF,wBAAgB,WAAW,IAAI,MAAM,CA+BpC"}
package/dist/cli/index.js CHANGED
@@ -31,7 +31,7 @@ import {
31
31
  resolveExitCode,
32
32
  startDaemon,
33
33
  toCliError
34
- } from "../chunk-OGE5KJ4X.js";
34
+ } from "../chunk-2MG7BRPF.js";
35
35
  import "../chunk-STGGGVYT.js";
36
36
  import {
37
37
  createNoOpSkillRemovalResult,
@@ -63,7 +63,7 @@ import {
63
63
  setDefaultLogSink,
64
64
  stderrSink,
65
65
  summarizePrimaryProviderIssue
66
- } from "../chunk-ZE2E7ZGH.js";
66
+ } from "../chunk-K2TEHJCV.js";
67
67
  import "../chunk-FUSXMW3G.js";
68
68
 
69
69
  // src/cli/args.ts
@@ -580,6 +580,9 @@ function assertCommandCoverage() {
580
580
  if (!detail || !detail.description.trim() || !detail.usage.trim()) {
581
581
  throw new Error(`Missing command help metadata: ${command}`);
582
582
  }
583
+ if (detail.examples.length === 0) {
584
+ throw new Error(`Missing command example metadata: ${command}`);
585
+ }
583
586
  for (const flag of detail.flags) {
584
587
  if (!FLAG_SET.has(flag)) {
585
588
  throw new Error(`Command help metadata references unknown flag ${flag} for ${command}`);
@@ -620,6 +623,9 @@ function assertToolCoverage() {
620
623
  if (!entry.description.trim()) {
621
624
  throw new Error(`Help tool is missing a description: ${entry.name}`);
622
625
  }
626
+ if (!entry.example?.trim()) {
627
+ throw new Error(`Help tool is missing an example: ${entry.name}`);
628
+ }
623
629
  if (seen.has(entry.name)) {
624
630
  throw new Error(`Help tool appears multiple times: ${entry.name}`);
625
631
  }
@@ -641,7 +647,9 @@ function formatCommandGroups() {
641
647
  description: detail.description,
642
648
  details: [
643
649
  { label: "usage:", value: detail.usage },
644
- { label: "flags:", value: formatFlags(detail.flags) }
650
+ { label: "flags:", value: formatFlags(detail.flags) },
651
+ ...detail.examples.map((example) => ({ label: "example:", value: example })),
652
+ ...detail.notes.map((note) => ({ label: "note:", value: note }))
645
653
  ]
646
654
  };
647
655
  });
@@ -664,7 +672,11 @@ function formatToolEntries() {
664
672
  return formatRows(HELP_TOOL_ENTRIES.map((entry) => ({
665
673
  label: entry.name,
666
674
  description: entry.description,
667
- details: entry.cliEquivalent ? [{ label: "cli:", value: entry.cliEquivalent }] : [{ label: "scope:", value: "tool-only" }]
675
+ details: [
676
+ ...entry.cliEquivalent ? [{ label: "cli:", value: entry.cliEquivalent }] : [{ label: "scope:", value: "tool-only" }],
677
+ ...entry.example ? [{ label: "example:", value: entry.example }] : [],
678
+ ...(entry.notes ?? []).map((note) => ({ label: "note:", value: note }))
679
+ ]
668
680
  })));
669
681
  }
670
682
  function formatOnboardingEntries() {
@@ -3247,6 +3259,12 @@ async function runSessionDisconnect(args) {
3247
3259
  // src/cli/utils/workflow-message.ts
3248
3260
  var asRecord = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : null;
3249
3261
  var readNonEmptyString = (value) => typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
3262
+ var UNRESOLVED_COMMAND_PLACEHOLDER_RE = /<[^>\n]+>/;
3263
+ var readRunnableStepCommand = (step) => {
3264
+ const command = readNonEmptyString(step.command);
3265
+ if (!command) return null;
3266
+ return UNRESOLVED_COMMAND_PLACEHOLDER_RE.test(command) ? null : command;
3267
+ };
3250
3268
  var readMeta = (data) => {
3251
3269
  return asRecord(asRecord(data)?.meta);
3252
3270
  };
@@ -3294,6 +3312,17 @@ var readSuggestedNextAction = (data) => {
3294
3312
  if (!record) return null;
3295
3313
  return readNonEmptyString(record.suggestedNextAction) ?? readNonEmptyString(asRecord(record.sessionInspector)?.suggestedNextAction);
3296
3314
  };
3315
+ var readSuggestedStepCommand = (data) => {
3316
+ let current = asRecord(data);
3317
+ while (current) {
3318
+ const command = readSuggestedSteps(current).map(readRunnableStepCommand).find((step) => Boolean(step));
3319
+ if (command) {
3320
+ return command;
3321
+ }
3322
+ current = asRecord(current.challengePlan);
3323
+ }
3324
+ return null;
3325
+ };
3297
3326
  var readSuggestedStepReason = (data) => {
3298
3327
  let current = asRecord(data);
3299
3328
  while (current) {
@@ -3324,7 +3353,7 @@ var buildWorkflowCompletionMessage = (workflowLabel, data) => {
3324
3353
  if (followthroughSummary) {
3325
3354
  return buildNextStepMessage(
3326
3355
  `${workflowLabel} completed. ${followthroughSummary}`,
3327
- readSuggestedNextAction(data) ?? readSuggestedStepReason(data)
3356
+ readSuggestedNextAction(data) ?? readSuggestedStepCommand(data) ?? readSuggestedStepReason(data)
3328
3357
  );
3329
3358
  }
3330
3359
  return `${workflowLabel} completed.`;
@@ -6470,12 +6499,28 @@ var asRecord2 = (value) => {
6470
6499
  }
6471
6500
  return value;
6472
6501
  };
6502
+ var readNonEmptyString2 = (value) => typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
6473
6503
  var hasExecutionBlocker = (result) => {
6474
6504
  const execution = asRecord2(asRecord2(result)?.execution);
6475
6505
  const meta = asRecord2(execution?.meta);
6476
6506
  return asRecord2(meta?.blocker) !== null;
6477
6507
  };
6508
+ var readMacroResolveSummary = (result) => readNonEmptyString2(asRecord2(result)?.followthroughSummary);
6509
+ var readMacroResolveNextStep = (result) => {
6510
+ const record = asRecord2(result);
6511
+ const explicit = readNonEmptyString2(record?.suggestedNextAction);
6512
+ if (explicit) {
6513
+ return explicit;
6514
+ }
6515
+ const [firstStep] = Array.isArray(record?.suggestedSteps) ? record.suggestedSteps.filter((step) => Boolean(step) && typeof step === "object") : [];
6516
+ return readNonEmptyString2(firstStep?.command) ?? readNonEmptyString2(firstStep?.reason);
6517
+ };
6478
6518
  var buildMacroResolveMessage = (execute, result) => {
6519
+ const summary = readMacroResolveSummary(result);
6520
+ const nextStep = readMacroResolveNextStep(result);
6521
+ if (summary) {
6522
+ return nextStep ? `${summary} Next step: ${nextStep}` : summary;
6523
+ }
6479
6524
  if (!execute) {
6480
6525
  return "Macro resolved.";
6481
6526
  }
@@ -7369,7 +7414,7 @@ async function runInspiredesignCommand(args) {
7369
7414
  // package.json
7370
7415
  var package_default = {
7371
7416
  name: "opendevbrowser",
7372
- version: "0.0.22",
7417
+ version: "0.0.23",
7373
7418
  description: "Browser automation runtime with snapshot-refs-actions, browser replay screencasts, public read-only desktop observation, and browser-scoped computer-use orchestration",
7374
7419
  type: "module",
7375
7420
  main: "dist/index.js",