@mearl/client 2.21.0 → 3.0.0-beta.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 (134) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +57 -27
  3. package/dist/actionTimeouts.js +1 -1
  4. package/dist/artifacts.d.ts +1 -1
  5. package/dist/autoUpdate.js +1 -2
  6. package/dist/browserRegistry.d.ts +1 -1
  7. package/dist/check.d.ts +1 -1
  8. package/dist/check.js +4 -3
  9. package/dist/cli.js +4 -3
  10. package/dist/commands.d.ts +20 -20
  11. package/dist/commands.js +17 -15
  12. package/dist/index.d.ts +12 -15
  13. package/dist/index.js +7 -7
  14. package/dist/local.d.ts +3 -1
  15. package/dist/local.js +2 -1
  16. package/dist/pageEvalArguments.d.ts +1 -1
  17. package/dist/pageEvalArguments.js +1 -1
  18. package/dist/plugin-task-host.js +1 -1
  19. package/dist/plugin-worker.js +2 -2
  20. package/dist/plugin.d.ts +2 -118
  21. package/dist/plugin.js +2 -672
  22. package/dist/pluginModelSessionWorker.d.ts +2 -2
  23. package/dist/pluginModelSessionWorker.js +4 -4
  24. package/dist/{pluginHostConnection.d.ts → plugins/clients/pluginHostConnection.d.ts} +2 -2
  25. package/dist/{pluginHostConnection.js → plugins/clients/pluginHostConnection.js} +6 -7
  26. package/dist/{pluginModels.d.ts → plugins/clients/pluginModels.d.ts} +3 -3
  27. package/dist/{pluginPages.d.ts → plugins/clients/pluginPages.d.ts} +3 -3
  28. package/dist/{pluginPages.js → plugins/clients/pluginPages.js} +1 -1
  29. package/dist/{pluginState.d.ts → plugins/clients/pluginState.d.ts} +3 -3
  30. package/dist/{pluginTasks.d.ts → plugins/clients/pluginTasks.d.ts} +4 -4
  31. package/dist/{pluginTasks.js → plugins/clients/pluginTasks.js} +4 -4
  32. package/dist/plugins/officialPluginCatalog.d.ts +25 -0
  33. package/dist/plugins/officialPluginCatalog.js +125 -0
  34. package/dist/{officialPluginInstaller.js → plugins/officialPluginInstaller.js} +7 -4
  35. package/dist/{pluginRegistry.d.ts → plugins/pluginRegistry.d.ts} +1 -1
  36. package/dist/{pluginRegistry.js → plugins/pluginRegistry.js} +3 -3
  37. package/dist/{pluginTaskProtocol.d.ts → plugins/pluginTaskProtocol.d.ts} +2 -2
  38. package/dist/{pluginCommandWorker.js → plugins/runtime/pluginCommandWorker.js} +3 -3
  39. package/dist/{pluginDiagnostics.d.ts → plugins/runtime/pluginDiagnostics.d.ts} +4 -4
  40. package/dist/{pluginDiagnostics.js → plugins/runtime/pluginDiagnostics.js} +2 -2
  41. package/dist/{pluginExecution.d.ts → plugins/runtime/pluginExecution.d.ts} +3 -3
  42. package/dist/{pluginExecution.js → plugins/runtime/pluginExecution.js} +1 -1
  43. package/dist/{pluginExecutor.d.ts → plugins/runtime/pluginExecutor.d.ts} +3 -3
  44. package/dist/{pluginExecutor.js → plugins/runtime/pluginExecutor.js} +4 -4
  45. package/dist/{pluginExecutorProtocol.d.ts → plugins/runtime/pluginExecutorProtocol.d.ts} +4 -4
  46. package/dist/{pluginHost.d.ts → plugins/runtime/pluginHost.d.ts} +3 -3
  47. package/dist/{pluginHostPaths.js → plugins/runtime/pluginHostPaths.js} +1 -1
  48. package/dist/{pluginHostServer.js → plugins/runtime/pluginHostServer.js} +3 -3
  49. package/dist/{pluginModelCatalog.d.ts → plugins/runtime/pluginModelCatalog.d.ts} +1 -1
  50. package/dist/{pluginModelSessions.js → plugins/runtime/pluginModelSessions.js} +3 -3
  51. package/dist/{pluginPageManager.d.ts → plugins/runtime/pluginPageManager.d.ts} +4 -4
  52. package/dist/{pluginPageManager.js → plugins/runtime/pluginPageManager.js} +5 -5
  53. package/dist/{pluginRevision.d.ts → plugins/runtime/pluginRevision.d.ts} +1 -1
  54. package/dist/{pluginRevision.js → plugins/runtime/pluginRevision.js} +3 -2
  55. package/dist/{pluginRuntimeCleanup.js → plugins/runtime/pluginRuntimeCleanup.js} +2 -2
  56. package/dist/{pluginStateManager.d.ts → plugins/runtime/pluginStateManager.d.ts} +2 -2
  57. package/dist/{pluginStateManager.js → plugins/runtime/pluginStateManager.js} +2 -2
  58. package/dist/{pluginStateStore.d.ts → plugins/runtime/pluginStateStore.d.ts} +1 -1
  59. package/dist/{pluginStateStore.js → plugins/runtime/pluginStateStore.js} +1 -1
  60. package/dist/{pluginTaskManager.d.ts → plugins/runtime/pluginTaskManager.d.ts} +12 -12
  61. package/dist/{pluginTaskManager.js → plugins/runtime/pluginTaskManager.js} +6 -6
  62. package/dist/{pluginTaskStore.d.ts → plugins/runtime/pluginTaskStore.d.ts} +4 -4
  63. package/dist/{pluginTaskStore.js → plugins/runtime/pluginTaskStore.js} +1 -1
  64. package/dist/{pythonPlugin.d.ts → plugins/runtime/pythonPlugin.d.ts} +2 -2
  65. package/dist/{pythonPlugin.js → plugins/runtime/pythonPlugin.js} +2 -2
  66. package/dist/plugins/sdk/plugin.d.ts +115 -0
  67. package/dist/plugins/sdk/plugin.js +669 -0
  68. package/dist/{pluginAppProfiles.d.ts → plugins/sdk/pluginAppProfiles.d.ts} +1 -1
  69. package/dist/{pluginAppProfiles.js → plugins/sdk/pluginAppProfiles.js} +2 -2
  70. package/dist/{pluginModelDefinition.d.ts → plugins/sdk/pluginModelDefinition.d.ts} +1 -1
  71. package/dist/{pluginPageDefinition.d.ts → plugins/sdk/pluginPageDefinition.d.ts} +1 -1
  72. package/dist/{pluginPageDefinition.js → plugins/sdk/pluginPageDefinition.js} +1 -1
  73. package/dist/{pluginRecoveryDefinition.d.ts → plugins/sdk/pluginRecoveryDefinition.d.ts} +1 -1
  74. package/dist/{pluginStateDefinition.d.ts → plugins/sdk/pluginStateDefinition.d.ts} +2 -2
  75. package/dist/plugins/skillManifest.d.ts +10 -0
  76. package/dist/plugins/skillManifest.js +56 -0
  77. package/dist/runtimePaths.d.ts +4 -0
  78. package/dist/runtimePaths.js +8 -0
  79. package/dist/socket.d.ts +4 -2
  80. package/dist/socket.js +17 -6
  81. package/dist/unified.d.ts +2 -2
  82. package/dist/unified.js +7 -7
  83. package/package.json +9 -8
  84. package/dist/generated-app-profile-definition.d.ts +0 -130
  85. package/dist/generated-app-profile-definition.js +0 -458
  86. package/dist/generated-app-profile-runtime-types.d.ts +0 -213
  87. package/dist/generated-app-profile-runtime-types.js +0 -1
  88. package/dist/generated-browser-action-protocol.d.ts +0 -1147
  89. package/dist/generated-browser-action-protocol.js +0 -283
  90. package/dist/generated-plugin-diagnostics.d.ts +0 -110
  91. package/dist/generated-plugin-diagnostics.js +0 -1
  92. package/dist/generated-plugin-execution.d.ts +0 -27
  93. package/dist/generated-plugin-execution.js +0 -1
  94. package/dist/generated-plugin-models.d.ts +0 -64
  95. package/dist/generated-plugin-models.js +0 -1
  96. package/dist/generated-plugin-pages.d.ts +0 -76
  97. package/dist/generated-plugin-pages.js +0 -59
  98. package/dist/generated-plugin-recovery.d.ts +0 -32
  99. package/dist/generated-plugin-recovery.js +0 -1
  100. package/dist/generated-plugin-state.d.ts +0 -50
  101. package/dist/generated-plugin-state.js +0 -1
  102. package/dist/generated-plugin-tasks.d.ts +0 -74
  103. package/dist/generated-plugin-tasks.js +0 -7
  104. package/dist/generated-toolbox-icon.d.ts +0 -10
  105. package/dist/generated-toolbox-icon.js +0 -37
  106. package/dist/officialPluginCatalog.d.ts +0 -28
  107. package/dist/officialPluginCatalog.js +0 -29
  108. /package/dist/{pluginModels.js → plugins/clients/pluginModels.js} +0 -0
  109. /package/dist/{pluginState.js → plugins/clients/pluginState.js} +0 -0
  110. /package/dist/{officialPluginInstaller.d.ts → plugins/officialPluginInstaller.d.ts} +0 -0
  111. /package/dist/{pluginPageBundle.d.ts → plugins/pluginPageBundle.d.ts} +0 -0
  112. /package/dist/{pluginPageBundle.js → plugins/pluginPageBundle.js} +0 -0
  113. /package/dist/{pluginSource.d.ts → plugins/pluginSource.d.ts} +0 -0
  114. /package/dist/{pluginSource.js → plugins/pluginSource.js} +0 -0
  115. /package/dist/{pluginTaskProtocol.js → plugins/pluginTaskProtocol.js} +0 -0
  116. /package/dist/{pluginTaskWire.d.ts → plugins/pluginTaskWire.d.ts} +0 -0
  117. /package/dist/{pluginTaskWire.js → plugins/pluginTaskWire.js} +0 -0
  118. /package/dist/{pluginCommandWorker.d.ts → plugins/runtime/pluginCommandWorker.d.ts} +0 -0
  119. /package/dist/{pluginExecutorProtocol.js → plugins/runtime/pluginExecutorProtocol.js} +0 -0
  120. /package/dist/{pluginExecutorSupervisor.d.ts → plugins/runtime/pluginExecutorSupervisor.d.ts} +0 -0
  121. /package/dist/{pluginExecutorSupervisor.js → plugins/runtime/pluginExecutorSupervisor.js} +0 -0
  122. /package/dist/{pluginHost.js → plugins/runtime/pluginHost.js} +0 -0
  123. /package/dist/{pluginHostFiles.d.ts → plugins/runtime/pluginHostFiles.d.ts} +0 -0
  124. /package/dist/{pluginHostFiles.js → plugins/runtime/pluginHostFiles.js} +0 -0
  125. /package/dist/{pluginHostPaths.d.ts → plugins/runtime/pluginHostPaths.d.ts} +0 -0
  126. /package/dist/{pluginHostServer.d.ts → plugins/runtime/pluginHostServer.d.ts} +0 -0
  127. /package/dist/{pluginModelCatalog.js → plugins/runtime/pluginModelCatalog.js} +0 -0
  128. /package/dist/{pluginModelSessions.d.ts → plugins/runtime/pluginModelSessions.d.ts} +0 -0
  129. /package/dist/{pluginProcessTree.d.ts → plugins/runtime/pluginProcessTree.d.ts} +0 -0
  130. /package/dist/{pluginProcessTree.js → plugins/runtime/pluginProcessTree.js} +0 -0
  131. /package/dist/{pluginRuntimeCleanup.d.ts → plugins/runtime/pluginRuntimeCleanup.d.ts} +0 -0
  132. /package/dist/{pluginModelDefinition.js → plugins/sdk/pluginModelDefinition.js} +0 -0
  133. /package/dist/{pluginRecoveryDefinition.js → plugins/sdk/pluginRecoveryDefinition.js} +0 -0
  134. /package/dist/{pluginStateDefinition.js → plugins/sdk/pluginStateDefinition.js} +0 -0
@@ -1,50 +0,0 @@
1
- export type PluginStateScope = 'installation' | 'host' | 'browser-session' | 'instance';
2
- export interface PluginStateCollection {
3
- scope: PluginStateScope;
4
- storage: 'persistent' | 'cache' | 'memory';
5
- schemaVersion: number;
6
- schema: Record<string, unknown>;
7
- maxEntries?: number;
8
- maxBytes?: number;
9
- ttlMs?: number;
10
- }
11
- export interface PluginStateDeclaration {
12
- version: 1;
13
- collections: Record<string, PluginStateCollection>;
14
- }
15
- export interface PluginStateEntry {
16
- key: string;
17
- exists: boolean;
18
- /** Live entry revision, or the collection revision for absence; opaque to callers. */
19
- version: string;
20
- value?: unknown;
21
- expiresAt?: number;
22
- }
23
- export interface PluginStateSnapshot extends PluginStateEntry {
24
- revision: number;
25
- schemaVersion: number;
26
- }
27
- export interface PluginStateList {
28
- entries: PluginStateEntry[];
29
- revision: number;
30
- schemaVersion: number;
31
- nextCursor?: string;
32
- }
33
- export type PluginStateMutation = {
34
- type: 'put';
35
- key: string;
36
- expectedVersion: string;
37
- value: unknown;
38
- ttlMs?: number;
39
- } | {
40
- type: 'delete';
41
- key: string;
42
- expectedVersion: string;
43
- };
44
- export interface PluginStateTransaction {
45
- operations: PluginStateMutation[];
46
- expectedRevision?: number;
47
- migrateFromVersion?: number;
48
- idempotencyKey?: string;
49
- }
50
- export type PluginStateOperation = 'get' | 'get-many' | 'list' | 'transact';
@@ -1 +0,0 @@
1
- export {};
@@ -1,74 +0,0 @@
1
- import type { PluginExecutionError, PluginExecutionHost, PluginInvocationSource } from './generated-plugin-execution.js';
2
- import type { PluginTaskCheckpointReference } from './generated-plugin-recovery.js';
3
- export declare const PLUGIN_TASK_PROTOCOL_VERSION = 5;
4
- export type PluginTaskState = 'queued' | 'running' | 'cancelling' | 'success' | 'error' | 'cancelled' | 'interrupted';
5
- export interface PluginTaskResultReference {
6
- bytes: number;
7
- sha256: string;
8
- chunks: number;
9
- }
10
- export interface PluginTask {
11
- taskId: string;
12
- host: PluginExecutionHost;
13
- plugin: string;
14
- installationId: string;
15
- revision: string;
16
- command: string;
17
- kind?: 'command' | 'model';
18
- parentTaskId?: string;
19
- resumedFrom?: {
20
- taskId: string;
21
- revision: string;
22
- checkpointSequence: number;
23
- checkpointVersion: number;
24
- };
25
- checkpoint?: PluginTaskCheckpointReference;
26
- input: Record<string, unknown>;
27
- source: PluginInvocationSource;
28
- cwd: string;
29
- state: PluginTaskState;
30
- sequence: number;
31
- createdAt: number;
32
- updatedAt: number;
33
- progress?: string | {
34
- message: string;
35
- data?: Record<string, unknown>;
36
- };
37
- result?: PluginTaskResultReference;
38
- error?: PluginExecutionError;
39
- }
40
- export interface PluginTaskEvent {
41
- sequence: number;
42
- time: number;
43
- type: 'state' | 'progress' | 'checkpoint' | 'diagnostic';
44
- checkpoint?: PluginTaskCheckpointReference;
45
- state: PluginTaskState;
46
- progress?: PluginTask['progress'];
47
- }
48
- export interface PluginTaskEvents {
49
- task: PluginTask;
50
- events: PluginTaskEvent[];
51
- firstAvailableSequence: number;
52
- nextCursor: number;
53
- gap: boolean;
54
- }
55
- export interface PluginTaskStartResult {
56
- taskId: string;
57
- state: PluginTaskState;
58
- host: PluginExecutionHost;
59
- reused?: true;
60
- }
61
- export interface PluginTaskListResult {
62
- tasks: PluginTask[];
63
- nextCursor?: string;
64
- }
65
- export interface PluginTaskResultChunk {
66
- taskId: string;
67
- index: number;
68
- data: string;
69
- bytes: number;
70
- sha256: string;
71
- chunks: number;
72
- }
73
- export declare function isPluginTaskActive(state: PluginTaskState): boolean;
74
- export declare function isPluginTaskId(value: unknown): value is string;
@@ -1,7 +0,0 @@
1
- export const PLUGIN_TASK_PROTOCOL_VERSION = 5;
2
- export function isPluginTaskActive(state) {
3
- return state === 'queued' || state === 'running' || state === 'cancelling';
4
- }
5
- export function isPluginTaskId(value) {
6
- return typeof value === 'string' && /^pt_[0-9a-f-]{36}_[0-9a-f-]{36}$/i.test(value);
7
- }
@@ -1,10 +0,0 @@
1
- export type ParsedToolboxIcon = {
2
- kind: 'name';
3
- name: string;
4
- } | {
5
- kind: 'image';
6
- src: string;
7
- monochrome?: true;
8
- };
9
- /** SVG is an image source so its markup never becomes executable extension DOM. */
10
- export declare function parseToolboxIcon(value: unknown): ParsedToolboxIcon | undefined;
@@ -1,37 +0,0 @@
1
- /** SVG is an image source so its markup never becomes executable extension DOM. */
2
- export function parseToolboxIcon(value) {
3
- if (typeof value !== 'string')
4
- return;
5
- const icon = value.trim();
6
- if (!icon || icon.length > 32 * 1024)
7
- return;
8
- if (/^[a-z][a-z0-9-]{0,39}$/.test(icon))
9
- return { kind: 'name', name: icon };
10
- if (/^(?:<\?xml\s[^>]*\?>\s*)?<svg\b[^>]*(?:\/>|>[\s\S]*<\/svg\s*>)$/i.test(icon)) {
11
- const svg = /<svg\b[^>]*\sxmlns\s*=/i.test(icon)
12
- ? icon
13
- : icon.replace(/<svg\b/i, '<svg xmlns="http://www.w3.org/2000/svg"');
14
- try {
15
- return {
16
- kind: 'image',
17
- src: `data:image/svg+xml,${encodeURIComponent(svg)}`,
18
- ...(/\bcurrentColor\b/i.test(svg) ? { monochrome: true } : {}),
19
- };
20
- }
21
- catch {
22
- return;
23
- }
24
- }
25
- const dataHeader = /^data:image\/(?:svg\+xml|png|jpeg|gif|webp|avif)(?:;charset=utf-8|;utf8)?(?:;base64)?,/i.exec(icon);
26
- if (dataHeader && icon.length > dataHeader[0].length)
27
- return { kind: 'image', src: icon };
28
- try {
29
- const url = new URL(icon);
30
- if (['http:', 'https:'].includes(url.protocol) && !url.username && !url.password) {
31
- return { kind: 'image', src: url.href };
32
- }
33
- }
34
- catch {
35
- /* Non-URL values cannot be image sources. */
36
- }
37
- }
@@ -1,28 +0,0 @@
1
- export declare const OFFICIAL_PLUGIN_MANAGER = "@mearl/setup:official";
2
- export interface OfficialPluginDefinition {
3
- description: string;
4
- installArgs: readonly string[];
5
- setup?: 'alibaba';
6
- skill: string;
7
- }
8
- export declare const OFFICIAL_PLUGINS: {
9
- readonly buc: {
10
- readonly description: "使用 BUC 身份请求内部服务";
11
- readonly installArgs: readonly ["trip/mearl", "--skill", "buc-request", "--yes"];
12
- readonly skill: "buc-request";
13
- };
14
- readonly authx: {
15
- readonly description: "使用 AuthX 身份请求内部服务";
16
- readonly installArgs: readonly ["trip/mearl", "--skill", "authx-request", "--yes"];
17
- readonly skill: "authx-request";
18
- };
19
- readonly tdbank: {
20
- readonly description: "查询、借用和切换 TDBank 测试账号";
21
- readonly installArgs: readonly ["trip/mearl", "--skill", "tdbank-account", "--yes"];
22
- readonly setup: "alibaba";
23
- readonly skill: "tdbank-account";
24
- };
25
- };
26
- export type OfficialPluginName = keyof typeof OFFICIAL_PLUGINS;
27
- export declare function findOfficialPlugin(name: string): OfficialPluginDefinition | undefined;
28
- export declare function listOfficialPluginNames(setup?: OfficialPluginDefinition['setup']): string[];
@@ -1,29 +0,0 @@
1
- export const OFFICIAL_PLUGIN_MANAGER = '@mearl/setup:official';
2
- export const OFFICIAL_PLUGINS = {
3
- buc: {
4
- description: '使用 BUC 身份请求内部服务',
5
- installArgs: ['trip/mearl', '--skill', 'buc-request', '--yes'],
6
- skill: 'buc-request',
7
- },
8
- authx: {
9
- description: '使用 AuthX 身份请求内部服务',
10
- installArgs: ['trip/mearl', '--skill', 'authx-request', '--yes'],
11
- skill: 'authx-request',
12
- },
13
- tdbank: {
14
- description: '查询、借用和切换 TDBank 测试账号',
15
- installArgs: ['trip/mearl', '--skill', 'tdbank-account', '--yes'],
16
- setup: 'alibaba',
17
- skill: 'tdbank-account',
18
- },
19
- };
20
- export function findOfficialPlugin(name) {
21
- return Object.hasOwn(OFFICIAL_PLUGINS, name)
22
- ? OFFICIAL_PLUGINS[name]
23
- : undefined;
24
- }
25
- export function listOfficialPluginNames(setup) {
26
- return Object.entries(OFFICIAL_PLUGINS)
27
- .filter(([, definition]) => setup === undefined || ('setup' in definition && definition.setup === setup))
28
- .map(([name]) => name);
29
- }