@jackwener/opencli 0.4.1 → 0.4.3

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 (67) hide show
  1. package/CLI-CREATOR.md +103 -142
  2. package/LICENSE +28 -0
  3. package/README.md +113 -63
  4. package/README.zh-CN.md +114 -63
  5. package/SKILL.md +21 -4
  6. package/dist/browser.d.ts +21 -2
  7. package/dist/browser.js +269 -15
  8. package/dist/browser.test.d.ts +1 -0
  9. package/dist/browser.test.js +43 -0
  10. package/dist/build-manifest.js +66 -2
  11. package/dist/cli-manifest.json +905 -109
  12. package/dist/clis/boss/search.js +186 -30
  13. package/dist/clis/twitter/delete.d.ts +1 -0
  14. package/dist/clis/twitter/delete.js +73 -0
  15. package/dist/clis/twitter/followers.d.ts +1 -0
  16. package/dist/clis/twitter/followers.js +104 -0
  17. package/dist/clis/twitter/following.d.ts +1 -0
  18. package/dist/clis/twitter/following.js +90 -0
  19. package/dist/clis/twitter/like.d.ts +1 -0
  20. package/dist/clis/twitter/like.js +69 -0
  21. package/dist/clis/twitter/notifications.d.ts +1 -0
  22. package/dist/clis/twitter/notifications.js +109 -0
  23. package/dist/clis/twitter/post.d.ts +1 -0
  24. package/dist/clis/twitter/post.js +63 -0
  25. package/dist/clis/twitter/reply.d.ts +1 -0
  26. package/dist/clis/twitter/reply.js +57 -0
  27. package/dist/clis/v2ex/daily.d.ts +1 -0
  28. package/dist/clis/v2ex/daily.js +98 -0
  29. package/dist/clis/v2ex/me.d.ts +1 -0
  30. package/dist/clis/v2ex/me.js +99 -0
  31. package/dist/clis/v2ex/notifications.d.ts +1 -0
  32. package/dist/clis/v2ex/notifications.js +72 -0
  33. package/dist/clis/xiaohongshu/search.d.ts +5 -2
  34. package/dist/clis/xiaohongshu/search.js +35 -41
  35. package/dist/doctor.d.ts +50 -0
  36. package/dist/doctor.js +372 -0
  37. package/dist/doctor.test.d.ts +1 -0
  38. package/dist/doctor.test.js +114 -0
  39. package/dist/main.js +47 -5
  40. package/dist/output.test.d.ts +1 -0
  41. package/dist/output.test.js +20 -0
  42. package/dist/registry.d.ts +4 -0
  43. package/dist/registry.js +1 -0
  44. package/dist/runtime.d.ts +3 -1
  45. package/dist/runtime.js +2 -2
  46. package/package.json +2 -2
  47. package/src/browser.test.ts +51 -0
  48. package/src/browser.ts +318 -22
  49. package/src/build-manifest.ts +67 -2
  50. package/src/clis/boss/search.ts +196 -29
  51. package/src/clis/twitter/delete.ts +78 -0
  52. package/src/clis/twitter/followers.ts +119 -0
  53. package/src/clis/twitter/following.ts +105 -0
  54. package/src/clis/twitter/like.ts +74 -0
  55. package/src/clis/twitter/notifications.ts +119 -0
  56. package/src/clis/twitter/post.ts +68 -0
  57. package/src/clis/twitter/reply.ts +62 -0
  58. package/src/clis/v2ex/daily.ts +105 -0
  59. package/src/clis/v2ex/me.ts +103 -0
  60. package/src/clis/v2ex/notifications.ts +77 -0
  61. package/src/clis/xiaohongshu/search.ts +41 -44
  62. package/src/doctor.test.ts +133 -0
  63. package/src/doctor.ts +424 -0
  64. package/src/main.ts +47 -4
  65. package/src/output.test.ts +27 -0
  66. package/src/registry.ts +5 -0
  67. package/src/runtime.ts +2 -1
package/src/registry.ts CHANGED
@@ -37,6 +37,8 @@ export interface CliCommand {
37
37
  /** Internal: lazy-loaded TS module support */
38
38
  _lazy?: boolean;
39
39
  _modulePath?: string;
40
+ /** Force extension bridge mode (bypass CDP), for anti-bot sites */
41
+ forceExtension?: boolean;
40
42
  }
41
43
 
42
44
  export interface CliOptions {
@@ -51,6 +53,8 @@ export interface CliOptions {
51
53
  func?: (page: IPage | null, kwargs: Record<string, any>, debug?: boolean) => Promise<any>;
52
54
  pipeline?: any[];
53
55
  timeoutSeconds?: number;
56
+ /** Force extension bridge mode (bypass CDP), for anti-bot sites */
57
+ forceExtension?: boolean;
54
58
  }
55
59
 
56
60
  const _registry = new Map<string, CliCommand>();
@@ -68,6 +72,7 @@ export function cli(opts: CliOptions): CliCommand {
68
72
  func: opts.func,
69
73
  pipeline: opts.pipeline,
70
74
  timeoutSeconds: opts.timeoutSeconds,
75
+ forceExtension: opts.forceExtension,
71
76
  };
72
77
 
73
78
  const key = fullName(cmd);
package/src/runtime.ts CHANGED
@@ -27,10 +27,11 @@ export async function runWithTimeout<T>(
27
27
  export async function browserSession<T>(
28
28
  BrowserFactory: new () => any,
29
29
  fn: (page: IPage) => Promise<T>,
30
+ opts?: { forceExtension?: boolean },
30
31
  ): Promise<T> {
31
32
  const mcp = new BrowserFactory();
32
33
  try {
33
- const page = await mcp.connect({ timeout: DEFAULT_BROWSER_CONNECT_TIMEOUT });
34
+ const page = await mcp.connect({ timeout: DEFAULT_BROWSER_CONNECT_TIMEOUT, forceExtension: opts?.forceExtension });
34
35
  return await fn(page);
35
36
  } finally {
36
37
  await mcp.close().catch(() => {});