@mearl/client 2.21.0 → 2.22.0

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 (125) hide show
  1. package/README.md +31 -1
  2. package/dist/actionTimeouts.js +1 -1
  3. package/dist/artifacts.d.ts +1 -1
  4. package/dist/browserRegistry.d.ts +1 -1
  5. package/dist/check.d.ts +1 -1
  6. package/dist/cli.js +4 -3
  7. package/dist/commands.d.ts +9 -9
  8. package/dist/commands.js +3 -2
  9. package/dist/{generated-app-profile-definition.d.ts → generated/app-profile-definition.d.ts} +2 -2
  10. package/dist/{generated-app-profile-runtime-types.d.ts → generated/app-profile-runtime-types.d.ts} +2 -2
  11. package/dist/{generated-plugin-diagnostics.d.ts → generated/plugin-diagnostics.d.ts} +4 -4
  12. package/dist/{generated-plugin-execution.d.ts → generated/plugin-execution.d.ts} +2 -2
  13. package/dist/{generated-plugin-pages.d.ts → generated/plugin-pages.d.ts} +1 -1
  14. package/dist/{generated-plugin-tasks.d.ts → generated/plugin-tasks.d.ts} +2 -2
  15. package/dist/index.d.ts +15 -15
  16. package/dist/index.js +7 -7
  17. package/dist/pageEvalArguments.d.ts +1 -1
  18. package/dist/pageEvalArguments.js +1 -1
  19. package/dist/plugin-task-host.js +1 -1
  20. package/dist/plugin-worker.js +2 -2
  21. package/dist/plugin.d.ts +1 -118
  22. package/dist/plugin.js +1 -672
  23. package/dist/pluginModelSessionWorker.d.ts +2 -2
  24. package/dist/pluginModelSessionWorker.js +4 -4
  25. package/dist/{pluginHostConnection.d.ts → plugins/clients/pluginHostConnection.d.ts} +2 -2
  26. package/dist/{pluginHostConnection.js → plugins/clients/pluginHostConnection.js} +6 -7
  27. package/dist/{pluginModels.d.ts → plugins/clients/pluginModels.d.ts} +3 -3
  28. package/dist/{pluginPages.d.ts → plugins/clients/pluginPages.d.ts} +3 -3
  29. package/dist/{pluginPages.js → plugins/clients/pluginPages.js} +1 -1
  30. package/dist/{pluginState.d.ts → plugins/clients/pluginState.d.ts} +3 -3
  31. package/dist/{pluginTasks.d.ts → plugins/clients/pluginTasks.d.ts} +4 -4
  32. package/dist/{pluginTasks.js → plugins/clients/pluginTasks.js} +4 -4
  33. package/dist/{officialPluginInstaller.js → plugins/officialPluginInstaller.js} +1 -3
  34. package/dist/{pluginRegistry.d.ts → plugins/pluginRegistry.d.ts} +1 -1
  35. package/dist/{pluginRegistry.js → plugins/pluginRegistry.js} +3 -3
  36. package/dist/{pluginTaskProtocol.d.ts → plugins/pluginTaskProtocol.d.ts} +2 -2
  37. package/dist/{pluginCommandWorker.js → plugins/runtime/pluginCommandWorker.js} +3 -3
  38. package/dist/{pluginDiagnostics.d.ts → plugins/runtime/pluginDiagnostics.d.ts} +4 -4
  39. package/dist/{pluginDiagnostics.js → plugins/runtime/pluginDiagnostics.js} +2 -2
  40. package/dist/{pluginExecution.d.ts → plugins/runtime/pluginExecution.d.ts} +3 -3
  41. package/dist/{pluginExecution.js → plugins/runtime/pluginExecution.js} +1 -1
  42. package/dist/{pluginExecutor.d.ts → plugins/runtime/pluginExecutor.d.ts} +3 -3
  43. package/dist/{pluginExecutor.js → plugins/runtime/pluginExecutor.js} +4 -4
  44. package/dist/{pluginExecutorProtocol.d.ts → plugins/runtime/pluginExecutorProtocol.d.ts} +4 -4
  45. package/dist/{pluginHost.d.ts → plugins/runtime/pluginHost.d.ts} +3 -3
  46. package/dist/{pluginHostPaths.js → plugins/runtime/pluginHostPaths.js} +1 -1
  47. package/dist/{pluginHostServer.js → plugins/runtime/pluginHostServer.js} +3 -3
  48. package/dist/{pluginModelCatalog.d.ts → plugins/runtime/pluginModelCatalog.d.ts} +1 -1
  49. package/dist/{pluginModelSessions.js → plugins/runtime/pluginModelSessions.js} +3 -3
  50. package/dist/{pluginPageManager.d.ts → plugins/runtime/pluginPageManager.d.ts} +4 -4
  51. package/dist/{pluginPageManager.js → plugins/runtime/pluginPageManager.js} +5 -5
  52. package/dist/{pluginRevision.d.ts → plugins/runtime/pluginRevision.d.ts} +1 -1
  53. package/dist/{pluginRevision.js → plugins/runtime/pluginRevision.js} +1 -1
  54. package/dist/{pluginRuntimeCleanup.js → plugins/runtime/pluginRuntimeCleanup.js} +2 -2
  55. package/dist/{pluginStateManager.d.ts → plugins/runtime/pluginStateManager.d.ts} +2 -2
  56. package/dist/{pluginStateManager.js → plugins/runtime/pluginStateManager.js} +2 -2
  57. package/dist/{pluginStateStore.d.ts → plugins/runtime/pluginStateStore.d.ts} +1 -1
  58. package/dist/{pluginStateStore.js → plugins/runtime/pluginStateStore.js} +1 -1
  59. package/dist/{pluginTaskManager.d.ts → plugins/runtime/pluginTaskManager.d.ts} +12 -12
  60. package/dist/{pluginTaskManager.js → plugins/runtime/pluginTaskManager.js} +6 -6
  61. package/dist/{pluginTaskStore.d.ts → plugins/runtime/pluginTaskStore.d.ts} +4 -4
  62. package/dist/{pluginTaskStore.js → plugins/runtime/pluginTaskStore.js} +1 -1
  63. package/dist/{pythonPlugin.d.ts → plugins/runtime/pythonPlugin.d.ts} +2 -2
  64. package/dist/{pythonPlugin.js → plugins/runtime/pythonPlugin.js} +2 -2
  65. package/dist/plugins/sdk/plugin.d.ts +118 -0
  66. package/dist/plugins/sdk/plugin.js +672 -0
  67. package/dist/{pluginAppProfiles.d.ts → plugins/sdk/pluginAppProfiles.d.ts} +1 -1
  68. package/dist/{pluginAppProfiles.js → plugins/sdk/pluginAppProfiles.js} +2 -2
  69. package/dist/{pluginModelDefinition.d.ts → plugins/sdk/pluginModelDefinition.d.ts} +1 -1
  70. package/dist/{pluginPageDefinition.d.ts → plugins/sdk/pluginPageDefinition.d.ts} +1 -1
  71. package/dist/{pluginPageDefinition.js → plugins/sdk/pluginPageDefinition.js} +1 -1
  72. package/dist/{pluginRecoveryDefinition.d.ts → plugins/sdk/pluginRecoveryDefinition.d.ts} +1 -1
  73. package/dist/{pluginStateDefinition.d.ts → plugins/sdk/pluginStateDefinition.d.ts} +2 -2
  74. package/dist/runtimePaths.d.ts +4 -0
  75. package/dist/runtimePaths.js +8 -0
  76. package/dist/socket.d.ts +2 -2
  77. package/dist/socket.js +5 -4
  78. package/dist/unified.d.ts +2 -2
  79. package/dist/unified.js +7 -7
  80. package/package.json +5 -5
  81. /package/dist/{generated-app-profile-definition.js → generated/app-profile-definition.js} +0 -0
  82. /package/dist/{generated-app-profile-runtime-types.js → generated/app-profile-runtime-types.js} +0 -0
  83. /package/dist/{generated-browser-action-protocol.d.ts → generated/browser-action-protocol.d.ts} +0 -0
  84. /package/dist/{generated-browser-action-protocol.js → generated/browser-action-protocol.js} +0 -0
  85. /package/dist/{generated-plugin-diagnostics.js → generated/plugin-diagnostics.js} +0 -0
  86. /package/dist/{generated-plugin-execution.js → generated/plugin-execution.js} +0 -0
  87. /package/dist/{generated-plugin-models.d.ts → generated/plugin-models.d.ts} +0 -0
  88. /package/dist/{generated-plugin-models.js → generated/plugin-models.js} +0 -0
  89. /package/dist/{generated-plugin-pages.js → generated/plugin-pages.js} +0 -0
  90. /package/dist/{generated-plugin-recovery.d.ts → generated/plugin-recovery.d.ts} +0 -0
  91. /package/dist/{generated-plugin-recovery.js → generated/plugin-recovery.js} +0 -0
  92. /package/dist/{generated-plugin-state.d.ts → generated/plugin-state.d.ts} +0 -0
  93. /package/dist/{generated-plugin-state.js → generated/plugin-state.js} +0 -0
  94. /package/dist/{generated-plugin-tasks.js → generated/plugin-tasks.js} +0 -0
  95. /package/dist/{generated-toolbox-icon.d.ts → generated/toolbox-icon.d.ts} +0 -0
  96. /package/dist/{generated-toolbox-icon.js → generated/toolbox-icon.js} +0 -0
  97. /package/dist/{pluginModels.js → plugins/clients/pluginModels.js} +0 -0
  98. /package/dist/{pluginState.js → plugins/clients/pluginState.js} +0 -0
  99. /package/dist/{officialPluginCatalog.d.ts → plugins/officialPluginCatalog.d.ts} +0 -0
  100. /package/dist/{officialPluginCatalog.js → plugins/officialPluginCatalog.js} +0 -0
  101. /package/dist/{officialPluginInstaller.d.ts → plugins/officialPluginInstaller.d.ts} +0 -0
  102. /package/dist/{pluginPageBundle.d.ts → plugins/pluginPageBundle.d.ts} +0 -0
  103. /package/dist/{pluginPageBundle.js → plugins/pluginPageBundle.js} +0 -0
  104. /package/dist/{pluginSource.d.ts → plugins/pluginSource.d.ts} +0 -0
  105. /package/dist/{pluginSource.js → plugins/pluginSource.js} +0 -0
  106. /package/dist/{pluginTaskProtocol.js → plugins/pluginTaskProtocol.js} +0 -0
  107. /package/dist/{pluginTaskWire.d.ts → plugins/pluginTaskWire.d.ts} +0 -0
  108. /package/dist/{pluginTaskWire.js → plugins/pluginTaskWire.js} +0 -0
  109. /package/dist/{pluginCommandWorker.d.ts → plugins/runtime/pluginCommandWorker.d.ts} +0 -0
  110. /package/dist/{pluginExecutorProtocol.js → plugins/runtime/pluginExecutorProtocol.js} +0 -0
  111. /package/dist/{pluginExecutorSupervisor.d.ts → plugins/runtime/pluginExecutorSupervisor.d.ts} +0 -0
  112. /package/dist/{pluginExecutorSupervisor.js → plugins/runtime/pluginExecutorSupervisor.js} +0 -0
  113. /package/dist/{pluginHost.js → plugins/runtime/pluginHost.js} +0 -0
  114. /package/dist/{pluginHostFiles.d.ts → plugins/runtime/pluginHostFiles.d.ts} +0 -0
  115. /package/dist/{pluginHostFiles.js → plugins/runtime/pluginHostFiles.js} +0 -0
  116. /package/dist/{pluginHostPaths.d.ts → plugins/runtime/pluginHostPaths.d.ts} +0 -0
  117. /package/dist/{pluginHostServer.d.ts → plugins/runtime/pluginHostServer.d.ts} +0 -0
  118. /package/dist/{pluginModelCatalog.js → plugins/runtime/pluginModelCatalog.js} +0 -0
  119. /package/dist/{pluginModelSessions.d.ts → plugins/runtime/pluginModelSessions.d.ts} +0 -0
  120. /package/dist/{pluginProcessTree.d.ts → plugins/runtime/pluginProcessTree.d.ts} +0 -0
  121. /package/dist/{pluginProcessTree.js → plugins/runtime/pluginProcessTree.js} +0 -0
  122. /package/dist/{pluginRuntimeCleanup.d.ts → plugins/runtime/pluginRuntimeCleanup.d.ts} +0 -0
  123. /package/dist/{pluginModelDefinition.js → plugins/sdk/pluginModelDefinition.js} +0 -0
  124. /package/dist/{pluginRecoveryDefinition.js → plugins/sdk/pluginRecoveryDefinition.js} +0 -0
  125. /package/dist/{pluginStateDefinition.js → plugins/sdk/pluginStateDefinition.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { readFileSync, realpathSync } from 'node:fs';
2
2
  import { basename, dirname, isAbsolute, relative, resolve } from 'node:path';
3
- import { validateAppProfileContribution, } from './generated-app-profile-definition.js';
4
- import { pluginFileVersion } from './pluginSource.js';
3
+ import { validateAppProfileContribution, } from '../../generated/app-profile-definition.js';
4
+ import { pluginFileVersion } from '../pluginSource.js';
5
5
  /** Profile resources share the Skill root and metadata refresh rules of toolbox resources. */
6
6
  export function loadPluginAppProfiles(entry, value) {
7
7
  if (value === undefined)
@@ -1,4 +1,4 @@
1
- import type { PluginModelCapability, PluginModelRequest, PluginModelResult } from './generated-plugin-models.js';
1
+ import type { PluginModelCapability, PluginModelRequest, PluginModelResult } from '../../generated/plugin-models.js';
2
2
  export declare function pluginModelCapabilities(): {
3
3
  providers: PluginModelCapability[];
4
4
  };
@@ -1,3 +1,3 @@
1
- import type { PluginPageRuntime } from './generated-plugin-pages.js';
1
+ import type { PluginPageRuntime } from '../../generated/plugin-pages.js';
2
2
  export declare function normalizePluginPageRuntime(value: unknown): PluginPageRuntime | undefined;
3
3
  export declare function compilePluginPageSchema(schema: Record<string, unknown>): import("ajv/dist/core.js").AnyValidateFunction<unknown>;
@@ -1,6 +1,6 @@
1
1
  import { parse } from 'acorn';
2
2
  import { Ajv } from 'ajv';
3
- import { isPluginPageMatchPattern } from './generated-plugin-pages.js';
3
+ import { isPluginPageMatchPattern } from '../../generated/plugin-pages.js';
4
4
  const validators = new WeakMap();
5
5
  export function normalizePluginPageRuntime(value) {
6
6
  if (value === undefined)
@@ -1,3 +1,3 @@
1
- import type { PluginTaskRecoveryDeclaration } from './generated-plugin-recovery.js';
1
+ import type { PluginTaskRecoveryDeclaration } from '../../generated/plugin-recovery.js';
2
2
  export declare function normalizePluginTaskRecovery(value: unknown): PluginTaskRecoveryDeclaration | undefined;
3
3
  export declare function pluginRecoverySignature(value: unknown): string;
@@ -1,4 +1,4 @@
1
- import type { PluginStateDeclaration } from './generated-plugin-state.js';
1
+ import type { PluginStateDeclaration } from '../../generated/plugin-state.js';
2
2
  export declare function compilePluginStateSchema(schema: Record<string, unknown>): import("ajv/dist/core.js").AnyValidateFunction<unknown>;
3
3
  export declare function normalizePluginState(value: unknown): PluginStateDeclaration | undefined;
4
- export declare function pluginStateSignature(collection: import('./generated-plugin-state.js').PluginStateCollection): string;
4
+ export declare function pluginStateSignature(collection: import('../../generated/plugin-state.js').PluginStateCollection): string;
@@ -0,0 +1,4 @@
1
+ export declare const CLIENT_VERSION: string;
2
+ export declare const PLUGIN_TASK_HOST_PATH: string;
3
+ export declare const PLUGIN_WORKER_PATH: string;
4
+ export declare const PLUGIN_MODEL_SESSION_WORKER_PATH: string;
@@ -0,0 +1,8 @@
1
+ import { createRequire } from 'node:module';
2
+ import { fileURLToPath } from 'node:url';
3
+ // Package metadata and process entries share this anchor in compiled and bundled hosts.
4
+ const require = createRequire(import.meta.url);
5
+ export const CLIENT_VERSION = require('../package.json').version;
6
+ export const PLUGIN_TASK_HOST_PATH = fileURLToPath(new URL('./plugin-task-host.js', import.meta.url));
7
+ export const PLUGIN_WORKER_PATH = fileURLToPath(new URL('./plugin-worker.js', import.meta.url));
8
+ export const PLUGIN_MODEL_SESSION_WORKER_PATH = fileURLToPath(new URL('./pluginModelSessionWorker.js', import.meta.url));
package/dist/socket.d.ts CHANGED
@@ -7,7 +7,8 @@
7
7
  * 当 Socket 不存在,或 legacy Socket 是无人监听的残留文件时,
8
8
  * 自动尝试拉起 native host,稍后重试连接。
9
9
  */
10
- export declare const CLIENT_VERSION: string;
10
+ import { CLIENT_VERSION } from './runtimePaths.js';
11
+ export { CLIENT_VERSION };
11
12
  /**
12
13
  * Legacy well-known socket. New native-hosts publish per-browser sockets in the
13
14
  * registry and we address those; this path is a fallback for pre-registry hosts
@@ -46,4 +47,3 @@ export declare function resolveLocalActionTarget(action: string, data: Record<st
46
47
  * legacy well-known socket,并在 socket 不存在或已残留时自动拉起 native host。
47
48
  */
48
49
  export declare function invoke(action: string, data?: Record<string, any>, options?: InvokeOptions): Promise<any>;
49
- export {};
package/dist/socket.js CHANGED
@@ -11,16 +11,16 @@ import net from 'node:net';
11
11
  import fs from 'node:fs';
12
12
  import os from 'node:os';
13
13
  import path from 'node:path';
14
- import { createRequire } from 'node:module';
14
+ import { CLIENT_VERSION } from './runtimePaths.js';
15
15
  import { StringDecoder } from 'node:string_decoder';
16
16
  import { ensureProviderControlHost, listInstalledProviders } from '@mearl/provider/host';
17
+ import { MEARL_PROVIDER_PROTOCOL_VERSION } from '@mearl/provider';
17
18
  import { readLiveProvider } from '@mearl/provider/runtime';
18
19
  import { resolveFileRefs } from './fileRefs.js';
19
20
  import { listLiveBrowsers, findBrowser, describeBrowser, } from './browserRegistry.js';
20
21
  import { resolveActionTimeoutSec } from './actionTimeouts.js';
21
- import { isBrowserCapabilityAction } from './generated-browser-action-protocol.js';
22
- const require = createRequire(import.meta.url);
23
- export const CLIENT_VERSION = require('../package.json').version;
22
+ import { isBrowserCapabilityAction } from './generated/browser-action-protocol.js';
23
+ export { CLIENT_VERSION };
24
24
  const MAX_SOCKET_BUFFER_SIZE = 64 * 1024 * 1024;
25
25
  /**
26
26
  * Legacy well-known socket. New native-hosts publish per-browser sockets in the
@@ -617,6 +617,7 @@ async function invokeOnce(action, data, timeoutSec, transport, socketPath, contr
617
617
  action,
618
618
  data,
619
619
  version: CLIENT_VERSION,
620
+ protocolVersion: MEARL_PROVIDER_PROTOCOL_VERSION,
620
621
  controlSource: toControlSourceWireValue(controlSource),
621
622
  };
622
623
  if (data[SESSION_OPTION])
package/dist/unified.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { BrowserArtifact } from './generated-browser-action-protocol.js';
1
+ import type { BrowserArtifact } from './generated/browser-action-protocol.js';
2
2
  import { type CloudConnectorListResult } from '@mearl/cloud-types';
3
- import type { PluginInvocation, PluginInvokeOptions } from './plugin.js';
3
+ import type { PluginInvocation, PluginInvokeOptions } from './plugins/sdk/plugin.js';
4
4
  export interface UnifiedInvokeOptions {
5
5
  /** Use new on the first tab_open/page_snapshot, then reuse the returned id. */
6
6
  session?: string;
package/dist/unified.js CHANGED
@@ -3,7 +3,7 @@ import { stageFile, exportArtifact } from './artifacts.js';
3
3
  import WebSocket from 'ws';
4
4
  import { DEFAULT_CONNECT_TIMEOUT, DEFAULT_HEARTBEAT_INTERVAL, DEFAULT_REQUEST_TIMEOUT, MAX_BUFFER_SIZE, isHeartbeatMessage, resolveCloudConnectorSelector, } from '@mearl/cloud-types';
5
5
  import { resolveActionTimeoutSec } from './actionTimeouts.js';
6
- import { validateRequiredActionTabId, } from './generated-browser-action-protocol.js';
6
+ import { validateRequiredActionTabId, } from './generated/browser-action-protocol.js';
7
7
  import { invoke as invokeLocalBrowser, resolveLocalActionTarget } from './socket.js';
8
8
  import { loadCloudServerConfig, loadLocalConnectorId } from './unifiedConfig.js';
9
9
  const RESPONSE_GRACE_MS = 1_000;
@@ -124,11 +124,11 @@ export class UnifiedClient {
124
124
  this.ws = null;
125
125
  }
126
126
  async invokePlugin(name, invocation, options = {}) {
127
- const { invokeRegisteredPlugin } = await import('./plugin.js');
127
+ const { invokeRegisteredPlugin } = await import('./plugins/sdk/plugin.js');
128
128
  return invokeRegisteredPlugin(name, invocation, {
129
129
  invoke: (action, payload, invokeOptions) => this.invoke(action, payload, invokeOptions),
130
130
  runModel: async (plugin, request, execution) => {
131
- const { PluginModelClient } = await import('./pluginModels.js');
131
+ const { PluginModelClient } = await import('./plugins/clients/pluginModels.js');
132
132
  const models = new PluginModelClient({ source: options.source ?? 'sdk' });
133
133
  try {
134
134
  return await models.run(plugin, request, {
@@ -147,7 +147,7 @@ export class UnifiedClient {
147
147
  }
148
148
  async invoke(action, data = {}, options = {}) {
149
149
  if (action === 'plugin_state') {
150
- const { PluginStateClient } = await import('./pluginState.js');
150
+ const { PluginStateClient } = await import('./plugins/clients/pluginState.js');
151
151
  const state = new PluginStateClient();
152
152
  try {
153
153
  return await state.call(String(data.plugin ?? ''), data.collection, data.operation, data, options);
@@ -157,7 +157,7 @@ export class UnifiedClient {
157
157
  }
158
158
  }
159
159
  if (action === 'plugin_model') {
160
- const { PluginModelClient } = await import('./pluginModels.js');
160
+ const { PluginModelClient } = await import('./plugins/clients/pluginModels.js');
161
161
  const models = new PluginModelClient();
162
162
  try {
163
163
  if (data.operation === 'capabilities')
@@ -175,8 +175,8 @@ export class UnifiedClient {
175
175
  }
176
176
  }
177
177
  if (action === 'plugin_page') {
178
- const { PluginHostConnection } = await import('./pluginHostConnection.js');
179
- const { PluginPageClient } = await import('./pluginPages.js');
178
+ const { PluginHostConnection } = await import('./plugins/clients/pluginHostConnection.js');
179
+ const { PluginPageClient } = await import('./plugins/clients/pluginPages.js');
180
180
  const connection = new PluginHostConnection();
181
181
  const pages = new PluginPageClient({}, connection);
182
182
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mearl/client",
3
- "version": "2.21.0",
3
+ "version": "2.22.0",
4
4
  "description": "Unified Mearl SDK & CLI for local and remote browsers",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -65,10 +65,10 @@
65
65
  "commander": "^15.0.0",
66
66
  "fastest-levenshtein": "^1.0.16",
67
67
  "ws": "^8.18.0",
68
- "@mearl/daemon-core": "2.21.0",
69
- "@mearl/provider": "2.21.0",
70
- "@mearl/agent-runtime": "2.21.0",
71
- "@mearl/cloud-types": "2.21.0"
68
+ "@mearl/daemon-core": "2.22.0",
69
+ "@mearl/cloud-types": "2.22.0",
70
+ "@mearl/provider": "2.22.0",
71
+ "@mearl/agent-runtime": "2.22.0"
72
72
  },
73
73
  "devDependencies": {
74
74
  "@types/node": "^24.9.1",