@creatoria/miniapp-mcp 0.2.0 → 0.2.2
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.
- package/README.md +127 -73
- package/dist/capabilities/assert/handlers/assert-handlers.d.ts +98 -0
- package/dist/capabilities/assert/handlers/assert-handlers.d.ts.map +1 -0
- package/dist/capabilities/assert/handlers/assert-handlers.js +179 -0
- package/dist/capabilities/assert/handlers/assert-handlers.js.map +1 -0
- package/dist/capabilities/assert/handlers/index.d.ts +7 -0
- package/dist/capabilities/assert/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/assert/handlers/index.js +7 -0
- package/dist/capabilities/assert/handlers/index.js.map +1 -0
- package/dist/capabilities/assert/index.d.ts +12 -2
- package/dist/capabilities/assert/index.d.ts.map +1 -1
- package/dist/capabilities/assert/index.js +87 -2
- package/dist/capabilities/assert/index.js.map +1 -1
- package/dist/capabilities/assert/schemas/index.d.ts +101 -0
- package/dist/capabilities/assert/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/assert/schemas/index.js +62 -0
- package/dist/capabilities/assert/schemas/index.js.map +1 -0
- package/dist/capabilities/automator/handlers/close.d.ts +18 -0
- package/dist/capabilities/automator/handlers/close.d.ts.map +1 -0
- package/dist/capabilities/automator/handlers/close.js +45 -0
- package/dist/capabilities/automator/handlers/close.js.map +1 -0
- package/dist/capabilities/automator/handlers/connect.d.ts +24 -0
- package/dist/capabilities/automator/handlers/connect.d.ts.map +1 -0
- package/dist/capabilities/automator/handlers/connect.js +51 -0
- package/dist/capabilities/automator/handlers/connect.js.map +1 -0
- package/dist/capabilities/automator/handlers/disconnect.d.ts +16 -0
- package/dist/capabilities/automator/handlers/disconnect.d.ts.map +1 -0
- package/dist/capabilities/automator/handlers/disconnect.js +44 -0
- package/dist/capabilities/automator/handlers/disconnect.js.map +1 -0
- package/dist/capabilities/automator/handlers/index.d.ts +8 -0
- package/dist/capabilities/automator/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/automator/handlers/index.js +8 -0
- package/dist/capabilities/automator/handlers/index.js.map +1 -0
- package/dist/capabilities/automator/handlers/launch.d.ts +25 -0
- package/dist/capabilities/automator/handlers/launch.d.ts.map +1 -0
- package/dist/capabilities/automator/handlers/launch.js +61 -0
- package/dist/capabilities/automator/handlers/launch.js.map +1 -0
- package/dist/capabilities/automator/index.d.ts +11 -2
- package/dist/capabilities/automator/index.d.ts.map +1 -1
- package/dist/capabilities/automator/index.js +51 -2
- package/dist/capabilities/automator/index.js.map +1 -1
- package/dist/capabilities/automator/schemas/index.d.ts +5 -0
- package/dist/capabilities/automator/schemas/index.d.ts.map +1 -1
- package/dist/capabilities/automator/schemas/index.js +6 -4
- package/dist/capabilities/automator/schemas/index.js.map +1 -1
- package/dist/capabilities/element/handlers/element-handlers.d.ts +212 -0
- package/dist/capabilities/element/handlers/element-handlers.d.ts.map +1 -0
- package/dist/capabilities/element/handlers/element-handlers.js +383 -0
- package/dist/capabilities/element/handlers/element-handlers.js.map +1 -0
- package/dist/capabilities/element/handlers/index.d.ts +7 -0
- package/dist/capabilities/element/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/element/handlers/index.js +27 -0
- package/dist/capabilities/element/handlers/index.js.map +1 -0
- package/dist/capabilities/element/index.d.ts +17 -2
- package/dist/capabilities/element/index.d.ts.map +1 -1
- package/dist/capabilities/element/index.js +196 -2
- package/dist/capabilities/element/index.js.map +1 -1
- package/dist/capabilities/element/schemas/index.d.ts +325 -0
- package/dist/capabilities/element/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/element/schemas/index.js +168 -0
- package/dist/capabilities/element/schemas/index.js.map +1 -0
- package/dist/capabilities/index.d.ts +23 -4
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +29 -3
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/loader.d.ts +61 -0
- package/dist/capabilities/loader.d.ts.map +1 -0
- package/dist/capabilities/loader.js +164 -0
- package/dist/capabilities/loader.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/call-wx.d.ts +24 -0
- package/dist/capabilities/miniprogram/handlers/call-wx.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/call-wx.js +37 -0
- package/dist/capabilities/miniprogram/handlers/call-wx.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/evaluate.d.ts +32 -0
- package/dist/capabilities/miniprogram/handlers/evaluate.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/evaluate.js +51 -0
- package/dist/capabilities/miniprogram/handlers/evaluate.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/index.d.ts +12 -0
- package/dist/capabilities/miniprogram/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/index.js +12 -0
- package/dist/capabilities/miniprogram/handlers/index.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/navigate.d.ts +26 -0
- package/dist/capabilities/miniprogram/handlers/navigate.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/navigate.js +56 -0
- package/dist/capabilities/miniprogram/handlers/navigate.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/page-stack.d.ts +20 -0
- package/dist/capabilities/miniprogram/handlers/page-stack.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/page-stack.js +37 -0
- package/dist/capabilities/miniprogram/handlers/page-stack.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/screenshot.d.ts +33 -0
- package/dist/capabilities/miniprogram/handlers/screenshot.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/screenshot.js +132 -0
- package/dist/capabilities/miniprogram/handlers/screenshot.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/system-info.d.ts +17 -0
- package/dist/capabilities/miniprogram/handlers/system-info.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/system-info.js +31 -0
- package/dist/capabilities/miniprogram/handlers/system-info.js.map +1 -0
- package/dist/capabilities/miniprogram/index.d.ts +12 -2
- package/dist/capabilities/miniprogram/index.d.ts.map +1 -1
- package/dist/capabilities/miniprogram/index.js +66 -2
- package/dist/capabilities/miniprogram/index.js.map +1 -1
- package/dist/capabilities/miniprogram/schemas/call-wx.d.ts +15 -0
- package/dist/capabilities/miniprogram/schemas/call-wx.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/call-wx.js +11 -0
- package/dist/capabilities/miniprogram/schemas/call-wx.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/evaluate.d.ts +15 -0
- package/dist/capabilities/miniprogram/schemas/evaluate.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/evaluate.js +11 -0
- package/dist/capabilities/miniprogram/schemas/evaluate.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/index.d.ts +10 -0
- package/dist/capabilities/miniprogram/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/index.js +10 -0
- package/dist/capabilities/miniprogram/schemas/index.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/navigate.d.ts +18 -0
- package/dist/capabilities/miniprogram/schemas/navigate.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/navigate.js +22 -0
- package/dist/capabilities/miniprogram/schemas/navigate.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/page-stack.d.ts +6 -0
- package/dist/capabilities/miniprogram/schemas/page-stack.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/page-stack.js +6 -0
- package/dist/capabilities/miniprogram/schemas/page-stack.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/screenshot.d.ts +18 -0
- package/dist/capabilities/miniprogram/schemas/screenshot.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/screenshot.js +21 -0
- package/dist/capabilities/miniprogram/schemas/screenshot.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/system-info.d.ts +6 -0
- package/dist/capabilities/miniprogram/schemas/system-info.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/system-info.js +6 -0
- package/dist/capabilities/miniprogram/schemas/system-info.js.map +1 -0
- package/dist/capabilities/network/handlers/index.d.ts +7 -0
- package/dist/capabilities/network/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/network/handlers/index.js +7 -0
- package/dist/capabilities/network/handlers/index.js.map +1 -0
- package/dist/capabilities/network/handlers/network-handlers.d.ts +53 -0
- package/dist/capabilities/network/handlers/network-handlers.d.ts.map +1 -0
- package/dist/capabilities/network/handlers/network-handlers.js +127 -0
- package/dist/capabilities/network/handlers/network-handlers.js.map +1 -0
- package/dist/capabilities/network/index.d.ts +12 -2
- package/dist/capabilities/network/index.d.ts.map +1 -1
- package/dist/capabilities/network/index.js +66 -2
- package/dist/capabilities/network/index.js.map +1 -1
- package/dist/capabilities/network/schemas/index.d.ts +53 -0
- package/dist/capabilities/network/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/network/schemas/index.js +33 -0
- package/dist/capabilities/network/schemas/index.js.map +1 -0
- package/dist/capabilities/page/handlers/index.d.ts +7 -0
- package/dist/capabilities/page/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/page/handlers/index.js +7 -0
- package/dist/capabilities/page/handlers/index.js.map +1 -0
- package/dist/capabilities/page/handlers/page-handlers.d.ts +165 -0
- package/dist/capabilities/page/handlers/page-handlers.d.ts.map +1 -0
- package/dist/capabilities/page/handlers/page-handlers.js +258 -0
- package/dist/capabilities/page/handlers/page-handlers.js.map +1 -0
- package/dist/capabilities/page/index.d.ts +12 -2
- package/dist/capabilities/page/index.d.ts.map +1 -1
- package/dist/capabilities/page/index.js +80 -2
- package/dist/capabilities/page/index.js.map +1 -1
- package/dist/capabilities/page/schemas/index.d.ts +91 -0
- package/dist/capabilities/page/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/page/schemas/index.js +55 -0
- package/dist/capabilities/page/schemas/index.js.map +1 -0
- package/dist/capabilities/record/handlers/index.d.ts +7 -0
- package/dist/capabilities/record/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/record/handlers/index.js +7 -0
- package/dist/capabilities/record/handlers/index.js.map +1 -0
- package/dist/capabilities/record/handlers/record-handlers.d.ts +76 -0
- package/dist/capabilities/record/handlers/record-handlers.d.ts.map +1 -0
- package/dist/capabilities/record/handlers/record-handlers.js +255 -0
- package/dist/capabilities/record/handlers/record-handlers.js.map +1 -0
- package/dist/capabilities/record/index.d.ts +12 -2
- package/dist/capabilities/record/index.d.ts.map +1 -1
- package/dist/capabilities/record/index.js +66 -2
- package/dist/capabilities/record/index.js.map +1 -1
- package/dist/capabilities/record/schemas/index.d.ts +47 -0
- package/dist/capabilities/record/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/record/schemas/index.js +33 -0
- package/dist/capabilities/record/schemas/index.js.map +1 -0
- package/dist/capabilities/registry.d.ts +138 -0
- package/dist/capabilities/registry.d.ts.map +1 -0
- package/dist/capabilities/registry.js +261 -0
- package/dist/capabilities/registry.js.map +1 -0
- package/dist/capabilities/snapshot/handlers/index.d.ts +7 -0
- package/dist/capabilities/snapshot/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/snapshot/handlers/index.js +7 -0
- package/dist/capabilities/snapshot/handlers/index.js.map +1 -0
- package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts +75 -0
- package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts.map +1 -0
- package/dist/capabilities/snapshot/handlers/snapshot-handlers.js +201 -0
- package/dist/capabilities/snapshot/handlers/snapshot-handlers.js.map +1 -0
- package/dist/capabilities/snapshot/index.d.ts +12 -2
- package/dist/capabilities/snapshot/index.d.ts.map +1 -1
- package/dist/capabilities/snapshot/index.js +45 -2
- package/dist/capabilities/snapshot/index.js.map +1 -1
- package/dist/capabilities/snapshot/schemas/index.d.ts +47 -0
- package/dist/capabilities/snapshot/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/snapshot/schemas/index.js +28 -0
- package/dist/capabilities/snapshot/schemas/index.js.map +1 -0
- package/dist/runtime/index.d.ts +2 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +2 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/logging/tool-logger.js +2 -2
- package/dist/runtime/logging/tool-logger.js.map +1 -1
- package/dist/runtime/retry/index.d.ts +5 -0
- package/dist/runtime/retry/index.d.ts.map +1 -0
- package/dist/runtime/retry/index.js +5 -0
- package/dist/runtime/retry/index.js.map +1 -0
- package/dist/runtime/retry/retry.d.ts +61 -0
- package/dist/runtime/retry/retry.d.ts.map +1 -0
- package/dist/runtime/retry/retry.js +90 -0
- package/dist/runtime/retry/retry.js.map +1 -0
- package/dist/runtime/timeout/timeout.d.ts +10 -0
- package/dist/runtime/timeout/timeout.d.ts.map +1 -1
- package/dist/runtime/timeout/timeout.js +10 -0
- package/dist/runtime/timeout/timeout.js.map +1 -1
- package/dist/server.js +4 -4
- package/dist/server.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +7 -3
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/miniprogram.d.ts +11 -1
- package/dist/tools/miniprogram.d.ts.map +1 -1
- package/dist/tools/miniprogram.js +102 -20
- package/dist/tools/miniprogram.js.map +1 -1
- package/docs/current/01-architecture-migration.md +337 -0
- package/docs/current/02-screenshot-timeout-fix.md +589 -0
- package/docs/current/README.md +226 -0
- package/package.json +1 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page schemas exports
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export const querySchema = z
|
|
6
|
+
.object({
|
|
7
|
+
selector: z.string().min(1).describe('CSS selector to query'),
|
|
8
|
+
pagePath: z.string().optional().describe('Page path (optional, defaults to current page)'),
|
|
9
|
+
save: z.boolean().optional().describe('Whether to save element reference (default: true)'),
|
|
10
|
+
})
|
|
11
|
+
.describe('Query a single element on the page');
|
|
12
|
+
export const queryAllSchema = z
|
|
13
|
+
.object({
|
|
14
|
+
selector: z.string().min(1).describe('CSS selector to query'),
|
|
15
|
+
pagePath: z.string().optional().describe('Page path (optional, defaults to current page)'),
|
|
16
|
+
save: z.boolean().optional().describe('Whether to save element references (default: true)'),
|
|
17
|
+
})
|
|
18
|
+
.describe('Query all matching elements on the page');
|
|
19
|
+
export const waitForSchema = z
|
|
20
|
+
.object({
|
|
21
|
+
condition: z.union([z.string(), z.number()]).describe('Selector (string) or timeout in ms (number)'),
|
|
22
|
+
pagePath: z.string().optional().describe('Page path (optional, defaults to current page)'),
|
|
23
|
+
timeout: z.number().int().positive().optional().describe('Maximum wait time in ms (optional)'),
|
|
24
|
+
})
|
|
25
|
+
.describe('Wait for a condition to be met (selector or timeout)');
|
|
26
|
+
export const getDataSchema = z
|
|
27
|
+
.object({
|
|
28
|
+
path: z.string().optional().describe('Data path (optional, returns all data if not specified)'),
|
|
29
|
+
pagePath: z.string().optional().describe('Page path (optional, defaults to current page)'),
|
|
30
|
+
})
|
|
31
|
+
.describe('Get page data (optionally at a specific path)');
|
|
32
|
+
export const setDataSchema = z
|
|
33
|
+
.object({
|
|
34
|
+
data: z.record(z.any()).describe('Data object to set'),
|
|
35
|
+
pagePath: z.string().optional().describe('Page path (optional, defaults to current page)'),
|
|
36
|
+
})
|
|
37
|
+
.describe('Set page data');
|
|
38
|
+
export const callMethodSchema = z
|
|
39
|
+
.object({
|
|
40
|
+
method: z.string().min(1).describe('Method name to call'),
|
|
41
|
+
args: z.array(z.any()).optional().describe('Arguments to pass to the method'),
|
|
42
|
+
pagePath: z.string().optional().describe('Page path (optional, defaults to current page)'),
|
|
43
|
+
})
|
|
44
|
+
.describe('Call a method on the page');
|
|
45
|
+
export const getSizeSchema = z
|
|
46
|
+
.object({
|
|
47
|
+
pagePath: z.string().optional().describe('Page path (optional, defaults to current page)'),
|
|
48
|
+
})
|
|
49
|
+
.describe('Get page size (width, height, scrollHeight)');
|
|
50
|
+
export const getScrollTopSchema = z
|
|
51
|
+
.object({
|
|
52
|
+
pagePath: z.string().optional().describe('Page path (optional, defaults to current page)'),
|
|
53
|
+
})
|
|
54
|
+
.describe('Get page scroll position');
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/capabilities/page/schemas/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Record handlers exports
|
|
3
|
+
*
|
|
4
|
+
* All 6 handlers are now independently implemented in this directory.
|
|
5
|
+
*/
|
|
6
|
+
export { startRecording, stopRecording, recordAction, listSequences, getSequence, deleteSequence, replaySequence, type StartRecordingArgs, type StartRecordingResult, type StopRecordingArgs, type StopRecordingResult, type ListSequencesResult, type GetSequenceArgs, type GetSequenceResult, type DeleteSequenceArgs, type DeleteSequenceResult, type ReplaySequenceArgs, type ReplaySequenceResult, } from './record-handlers.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/record/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Record handlers exports
|
|
3
|
+
*
|
|
4
|
+
* All 6 handlers are now independently implemented in this directory.
|
|
5
|
+
*/
|
|
6
|
+
export { startRecording, stopRecording, recordAction, listSequences, getSequence, deleteSequence, replaySequence, } from './record-handlers.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/capabilities/record/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,cAAc,GAYf,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Record handlers - Action recording and replay utilities
|
|
3
|
+
*/
|
|
4
|
+
import type { SessionState, ActionSequence } from '../../../types.js';
|
|
5
|
+
export interface StartRecordingArgs {
|
|
6
|
+
name?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface StartRecordingResult {
|
|
10
|
+
success: boolean;
|
|
11
|
+
message: string;
|
|
12
|
+
sequenceId?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function startRecording(session: SessionState, args?: StartRecordingArgs): Promise<StartRecordingResult>;
|
|
15
|
+
export interface StopRecordingArgs {
|
|
16
|
+
save?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface StopRecordingResult {
|
|
19
|
+
success: boolean;
|
|
20
|
+
message: string;
|
|
21
|
+
sequenceId?: string;
|
|
22
|
+
actionCount?: number;
|
|
23
|
+
filePath?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function stopRecording(session: SessionState, args?: StopRecordingArgs): Promise<StopRecordingResult>;
|
|
26
|
+
/**
|
|
27
|
+
* Record an action (internal helper)
|
|
28
|
+
*/
|
|
29
|
+
export declare function recordAction(session: SessionState, toolName: string, args: Record<string, any>, success: boolean, duration?: number, error?: string): void;
|
|
30
|
+
export interface ListSequencesResult {
|
|
31
|
+
success: boolean;
|
|
32
|
+
message: string;
|
|
33
|
+
sequences: Array<{
|
|
34
|
+
id: string;
|
|
35
|
+
name: string;
|
|
36
|
+
description?: string;
|
|
37
|
+
createdAt: string;
|
|
38
|
+
actionCount: number;
|
|
39
|
+
}>;
|
|
40
|
+
}
|
|
41
|
+
export declare function listSequences(session: SessionState): Promise<ListSequencesResult>;
|
|
42
|
+
export interface GetSequenceArgs {
|
|
43
|
+
sequenceId: string;
|
|
44
|
+
}
|
|
45
|
+
export interface GetSequenceResult {
|
|
46
|
+
success: boolean;
|
|
47
|
+
message: string;
|
|
48
|
+
sequence: ActionSequence;
|
|
49
|
+
}
|
|
50
|
+
export declare function getSequence(session: SessionState, args: GetSequenceArgs): Promise<GetSequenceResult>;
|
|
51
|
+
export interface DeleteSequenceArgs {
|
|
52
|
+
sequenceId: string;
|
|
53
|
+
}
|
|
54
|
+
export interface DeleteSequenceResult {
|
|
55
|
+
success: boolean;
|
|
56
|
+
message: string;
|
|
57
|
+
}
|
|
58
|
+
export declare function deleteSequence(session: SessionState, args: DeleteSequenceArgs): Promise<DeleteSequenceResult>;
|
|
59
|
+
export interface ReplaySequenceArgs {
|
|
60
|
+
sequenceId: string;
|
|
61
|
+
continueOnError?: boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface ReplaySequenceResult {
|
|
64
|
+
success: boolean;
|
|
65
|
+
message: string;
|
|
66
|
+
totalActions: number;
|
|
67
|
+
successCount: number;
|
|
68
|
+
failureCount: number;
|
|
69
|
+
results: Array<{
|
|
70
|
+
toolName: string;
|
|
71
|
+
success: boolean;
|
|
72
|
+
error?: string;
|
|
73
|
+
}>;
|
|
74
|
+
}
|
|
75
|
+
export declare function replaySequence(session: SessionState, args: ReplaySequenceArgs): Promise<ReplaySequenceResult>;
|
|
76
|
+
//# sourceMappingURL=record-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-handlers.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/record/handlers/record-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Record handlers - Action recording and replay utilities
|
|
3
|
+
*/
|
|
4
|
+
import { promises as fs } from 'fs';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
/**
|
|
7
|
+
* Build a handler lookup map by loading all capabilities
|
|
8
|
+
* This is used for sequence replay to call handlers by tool name
|
|
9
|
+
*/
|
|
10
|
+
async function getHandlerMap() {
|
|
11
|
+
const handlers = new Map();
|
|
12
|
+
// Dynamically import all capability modules and collect handlers
|
|
13
|
+
const automator = await import('../../automator/index.js');
|
|
14
|
+
const miniprogram = await import('../../miniprogram/index.js');
|
|
15
|
+
const page = await import('../../page/index.js');
|
|
16
|
+
const element = await import('../../element/index.js');
|
|
17
|
+
const assert = await import('../../assert/index.js');
|
|
18
|
+
const snapshot = await import('../../snapshot/index.js');
|
|
19
|
+
const network = await import('../../network/index.js');
|
|
20
|
+
// Register all tools from each capability
|
|
21
|
+
for (const capability of [automator, miniprogram, page, element, assert, snapshot, network]) {
|
|
22
|
+
if (capability.capability?.tools) {
|
|
23
|
+
for (const tool of capability.capability.tools) {
|
|
24
|
+
handlers.set(tool.name, tool.handler);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return handlers;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Generate a unique sequence ID
|
|
32
|
+
*/
|
|
33
|
+
function generateSequenceId() {
|
|
34
|
+
return `seq_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get sequences directory path
|
|
38
|
+
*/
|
|
39
|
+
function getSequencesDir(session) {
|
|
40
|
+
return path.join(session.outputDir, 'sequences');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Ensure sequences directory exists
|
|
44
|
+
*/
|
|
45
|
+
async function ensureSequencesDir(session) {
|
|
46
|
+
const dir = getSequencesDir(session);
|
|
47
|
+
await fs.mkdir(dir, { recursive: true });
|
|
48
|
+
}
|
|
49
|
+
export async function startRecording(session, args = {}) {
|
|
50
|
+
const { name = `Recording ${new Date().toISOString()}`, description } = args;
|
|
51
|
+
const logger = session.logger;
|
|
52
|
+
try {
|
|
53
|
+
logger?.info('Starting recording', { name });
|
|
54
|
+
if (session.recording?.isRecording) {
|
|
55
|
+
throw new Error('Already recording. Stop current recording first.');
|
|
56
|
+
}
|
|
57
|
+
const sequenceId = generateSequenceId();
|
|
58
|
+
session.recording = {
|
|
59
|
+
isRecording: true,
|
|
60
|
+
startedAt: new Date(),
|
|
61
|
+
currentSequence: {
|
|
62
|
+
id: sequenceId,
|
|
63
|
+
name,
|
|
64
|
+
description,
|
|
65
|
+
createdAt: new Date(),
|
|
66
|
+
actions: [],
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
logger?.info('Recording started', { sequenceId, name });
|
|
70
|
+
return { success: true, message: `Recording started: ${name}`, sequenceId };
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
74
|
+
logger?.error('Failed to start recording', { error: errorMessage });
|
|
75
|
+
throw new Error(`Failed to start recording: ${errorMessage}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
export async function stopRecording(session, args = {}) {
|
|
79
|
+
const { save = true } = args;
|
|
80
|
+
const logger = session.logger;
|
|
81
|
+
try {
|
|
82
|
+
logger?.info('Stopping recording');
|
|
83
|
+
if (!session.recording?.isRecording || !session.recording.currentSequence) {
|
|
84
|
+
throw new Error('Not currently recording');
|
|
85
|
+
}
|
|
86
|
+
const sequence = session.recording.currentSequence;
|
|
87
|
+
const actionCount = sequence.actions.length;
|
|
88
|
+
session.recording.isRecording = false;
|
|
89
|
+
let filePath;
|
|
90
|
+
if (save) {
|
|
91
|
+
await ensureSequencesDir(session);
|
|
92
|
+
const filename = `${sequence.id}.json`;
|
|
93
|
+
filePath = path.join(getSequencesDir(session), filename);
|
|
94
|
+
await fs.writeFile(filePath, JSON.stringify(sequence, null, 2), 'utf-8');
|
|
95
|
+
logger?.info('Sequence saved', { sequenceId: sequence.id, filePath, actionCount });
|
|
96
|
+
}
|
|
97
|
+
session.recording = undefined;
|
|
98
|
+
return {
|
|
99
|
+
success: true,
|
|
100
|
+
message: `Recording stopped: ${sequence.name} (${actionCount} actions)`,
|
|
101
|
+
sequenceId: sequence.id,
|
|
102
|
+
actionCount,
|
|
103
|
+
filePath,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
108
|
+
logger?.error('Failed to stop recording', { error: errorMessage });
|
|
109
|
+
throw new Error(`Failed to stop recording: ${errorMessage}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Record an action (internal helper)
|
|
114
|
+
*/
|
|
115
|
+
export function recordAction(session, toolName, args, success, duration, error) {
|
|
116
|
+
const recording = session.recording;
|
|
117
|
+
if (!recording || !recording.isRecording) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const currentSequence = recording.currentSequence;
|
|
121
|
+
if (!currentSequence) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
try {
|
|
125
|
+
const action = {
|
|
126
|
+
timestamp: new Date(),
|
|
127
|
+
toolName,
|
|
128
|
+
args,
|
|
129
|
+
duration,
|
|
130
|
+
success,
|
|
131
|
+
error,
|
|
132
|
+
};
|
|
133
|
+
currentSequence.actions.push(action);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
137
|
+
console.error(`Failed to record action for ${toolName}:`, errorMessage);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
export async function listSequences(session) {
|
|
141
|
+
const logger = session.logger;
|
|
142
|
+
try {
|
|
143
|
+
logger?.info('Listing sequences');
|
|
144
|
+
await ensureSequencesDir(session);
|
|
145
|
+
const dir = getSequencesDir(session);
|
|
146
|
+
const files = await fs.readdir(dir);
|
|
147
|
+
const sequences = [];
|
|
148
|
+
for (const file of files) {
|
|
149
|
+
if (!file.endsWith('.json'))
|
|
150
|
+
continue;
|
|
151
|
+
const filePath = path.join(dir, file);
|
|
152
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
153
|
+
const sequence = JSON.parse(content);
|
|
154
|
+
sequences.push({
|
|
155
|
+
id: sequence.id,
|
|
156
|
+
name: sequence.name,
|
|
157
|
+
description: sequence.description,
|
|
158
|
+
createdAt: sequence.createdAt.toString(),
|
|
159
|
+
actionCount: sequence.actions.length,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
logger?.info('Sequences listed', { count: sequences.length });
|
|
163
|
+
return { success: true, message: `Found ${sequences.length} sequences`, sequences };
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
167
|
+
logger?.error('Failed to list sequences', { error: errorMessage });
|
|
168
|
+
throw new Error(`Failed to list sequences: ${errorMessage}`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
export async function getSequence(session, args) {
|
|
172
|
+
const { sequenceId } = args;
|
|
173
|
+
const logger = session.logger;
|
|
174
|
+
try {
|
|
175
|
+
logger?.info('Getting sequence', { sequenceId });
|
|
176
|
+
await ensureSequencesDir(session);
|
|
177
|
+
const filePath = path.join(getSequencesDir(session), `${sequenceId}.json`);
|
|
178
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
179
|
+
const sequence = JSON.parse(content);
|
|
180
|
+
logger?.info('Sequence retrieved', { sequenceId, actionCount: sequence.actions.length });
|
|
181
|
+
return { success: true, message: `Sequence retrieved: ${sequence.name}`, sequence };
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
185
|
+
logger?.error('Failed to get sequence', { error: errorMessage, sequenceId });
|
|
186
|
+
throw new Error(`Failed to get sequence: ${errorMessage}`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
export async function deleteSequence(session, args) {
|
|
190
|
+
const { sequenceId } = args;
|
|
191
|
+
const logger = session.logger;
|
|
192
|
+
try {
|
|
193
|
+
logger?.info('Deleting sequence', { sequenceId });
|
|
194
|
+
const filePath = path.join(getSequencesDir(session), `${sequenceId}.json`);
|
|
195
|
+
await fs.unlink(filePath);
|
|
196
|
+
logger?.info('Sequence deleted', { sequenceId });
|
|
197
|
+
return { success: true, message: `Sequence deleted: ${sequenceId}` };
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
201
|
+
logger?.error('Failed to delete sequence', { error: errorMessage, sequenceId });
|
|
202
|
+
throw new Error(`Failed to delete sequence: ${errorMessage}`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
export async function replaySequence(session, args) {
|
|
206
|
+
const { sequenceId, continueOnError = false } = args;
|
|
207
|
+
const logger = session.logger;
|
|
208
|
+
try {
|
|
209
|
+
logger?.info('Replaying sequence', { sequenceId, continueOnError });
|
|
210
|
+
const { sequence } = await getSequence(session, { sequenceId });
|
|
211
|
+
const handlers = await getHandlerMap();
|
|
212
|
+
const results = [];
|
|
213
|
+
let successCount = 0;
|
|
214
|
+
let failureCount = 0;
|
|
215
|
+
for (const action of sequence.actions) {
|
|
216
|
+
const startTime = Date.now();
|
|
217
|
+
try {
|
|
218
|
+
const toolFn = handlers.get(action.toolName);
|
|
219
|
+
if (!toolFn) {
|
|
220
|
+
throw new Error(`Tool not found: ${action.toolName}`);
|
|
221
|
+
}
|
|
222
|
+
await toolFn(session, action.args);
|
|
223
|
+
const duration = Date.now() - startTime;
|
|
224
|
+
logger?.info('Action replayed successfully', { toolName: action.toolName, duration });
|
|
225
|
+
results.push({ toolName: action.toolName, success: true });
|
|
226
|
+
successCount++;
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
230
|
+
const duration = Date.now() - startTime;
|
|
231
|
+
logger?.error('Action replay failed', { toolName: action.toolName, error: errorMessage, duration });
|
|
232
|
+
results.push({ toolName: action.toolName, success: false, error: errorMessage });
|
|
233
|
+
failureCount++;
|
|
234
|
+
if (!continueOnError) {
|
|
235
|
+
throw new Error(`Replay stopped at action ${action.toolName}: ${errorMessage}`);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
logger?.info('Sequence replay completed', { sequenceId, totalActions: sequence.actions.length, successCount, failureCount });
|
|
240
|
+
return {
|
|
241
|
+
success: failureCount === 0,
|
|
242
|
+
message: `Replay completed: ${successCount} success, ${failureCount} failures`,
|
|
243
|
+
totalActions: sequence.actions.length,
|
|
244
|
+
successCount,
|
|
245
|
+
failureCount,
|
|
246
|
+
results,
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
251
|
+
logger?.error('Failed to replay sequence', { error: errorMessage, sequenceId });
|
|
252
|
+
throw new Error(`Failed to replay sequence: ${errorMessage}`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=record-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-handlers.js","sourceRoot":"","sources":["../../../../src/capabilities/record/handlers/record-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Record
|
|
2
|
+
* Record Capability Module
|
|
3
|
+
*
|
|
4
|
+
* Provides tools for action recording and replay including starting/stopping
|
|
5
|
+
* recordings, managing sequences, and replaying recorded actions.
|
|
3
6
|
*/
|
|
4
|
-
|
|
7
|
+
import type { CapabilityModule } from '../registry.js';
|
|
8
|
+
export * from './schemas/index.js';
|
|
9
|
+
export * from './handlers/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Record capability module
|
|
12
|
+
*/
|
|
13
|
+
export declare const capability: CapabilityModule;
|
|
14
|
+
export default capability;
|
|
5
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/capabilities/record/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/capabilities/record/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,gBAAgB,CAAA;AAmBtE,cAAc,oBAAoB,CAAA;AAGlC,cAAc,qBAAqB,CAAA;AAkDnC;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAIxB,CAAA;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -1,5 +1,69 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Record
|
|
2
|
+
* Record Capability Module
|
|
3
|
+
*
|
|
4
|
+
* Provides tools for action recording and replay including starting/stopping
|
|
5
|
+
* recordings, managing sequences, and replaying recorded actions.
|
|
3
6
|
*/
|
|
4
|
-
|
|
7
|
+
import { startRecordingSchema, stopRecordingSchema, listSequencesSchema, getSequenceSchema, deleteSequenceSchema, replaySequenceSchema, } from './schemas/index.js';
|
|
8
|
+
import { startRecording, stopRecording, listSequences, getSequence, deleteSequence, replaySequence, } from './handlers/index.js';
|
|
9
|
+
// Re-export schemas for external use
|
|
10
|
+
export * from './schemas/index.js';
|
|
11
|
+
// Re-export handlers for external use
|
|
12
|
+
export * from './handlers/index.js';
|
|
13
|
+
/**
|
|
14
|
+
* Record tool definitions - 6 tools
|
|
15
|
+
*/
|
|
16
|
+
const tools = [
|
|
17
|
+
{
|
|
18
|
+
name: 'record_start',
|
|
19
|
+
description: 'Start recording user actions for later replay',
|
|
20
|
+
capability: 'record',
|
|
21
|
+
inputSchema: startRecordingSchema,
|
|
22
|
+
handler: startRecording,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'record_stop',
|
|
26
|
+
description: 'Stop the current recording and save the sequence',
|
|
27
|
+
capability: 'record',
|
|
28
|
+
inputSchema: stopRecordingSchema,
|
|
29
|
+
handler: stopRecording,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'record_list',
|
|
33
|
+
description: 'List all saved action sequences',
|
|
34
|
+
capability: 'record',
|
|
35
|
+
inputSchema: listSequencesSchema,
|
|
36
|
+
handler: listSequences,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'record_get',
|
|
40
|
+
description: 'Get details of a specific sequence',
|
|
41
|
+
capability: 'record',
|
|
42
|
+
inputSchema: getSequenceSchema,
|
|
43
|
+
handler: getSequence,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'record_delete',
|
|
47
|
+
description: 'Delete a saved sequence',
|
|
48
|
+
capability: 'record',
|
|
49
|
+
inputSchema: deleteSequenceSchema,
|
|
50
|
+
handler: deleteSequence,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'record_replay',
|
|
54
|
+
description: 'Replay a recorded action sequence',
|
|
55
|
+
capability: 'record',
|
|
56
|
+
inputSchema: replaySequenceSchema,
|
|
57
|
+
handler: replaySequence,
|
|
58
|
+
},
|
|
59
|
+
];
|
|
60
|
+
/**
|
|
61
|
+
* Record capability module
|
|
62
|
+
*/
|
|
63
|
+
export const capability = {
|
|
64
|
+
name: 'record',
|
|
65
|
+
description: 'Action recording and replay utilities (6 tools)',
|
|
66
|
+
tools,
|
|
67
|
+
};
|
|
68
|
+
export default capability;
|
|
5
69
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/capabilities/record/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/capabilities/record/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,qBAAqB,CAAA;AAE5B,qCAAqC;AACrC,cAAc,oBAAoB,CAAA;AAElC,sCAAsC;AACtC,cAAc,qBAAqB,CAAA;AAEnC;;GAEG;AACH,MAAM,KAAK,GAAqB;IAC9B;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,+CAA+C;QAC5D,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,cAAc;KACxB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,kDAAkD;QAC/D,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE,aAAa;KACvB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,iCAAiC;QAC9C,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE,aAAa;KACvB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,oCAAoC;QACjD,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,WAAW;KACrB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,yBAAyB;QACtC,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,cAAc;KACxB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,mCAAmC;QAChD,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,cAAc;KACxB;CACF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAqB;IAC1C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,iDAAiD;IAC9D,KAAK;CACN,CAAA;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Record schemas exports - 6 recording tool schemas
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export declare const startRecordingSchema: z.ZodObject<{
|
|
6
|
+
name: z.ZodOptional<z.ZodString>;
|
|
7
|
+
description: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
name?: string | undefined;
|
|
10
|
+
description?: string | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
name?: string | undefined;
|
|
13
|
+
description?: string | undefined;
|
|
14
|
+
}>;
|
|
15
|
+
export declare const stopRecordingSchema: z.ZodObject<{
|
|
16
|
+
save: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
save?: boolean | undefined;
|
|
19
|
+
}, {
|
|
20
|
+
save?: boolean | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
export declare const listSequencesSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
23
|
+
export declare const getSequenceSchema: z.ZodObject<{
|
|
24
|
+
sequenceId: z.ZodString;
|
|
25
|
+
}, "strip", z.ZodTypeAny, {
|
|
26
|
+
sequenceId: string;
|
|
27
|
+
}, {
|
|
28
|
+
sequenceId: string;
|
|
29
|
+
}>;
|
|
30
|
+
export declare const deleteSequenceSchema: z.ZodObject<{
|
|
31
|
+
sequenceId: z.ZodString;
|
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
|
33
|
+
sequenceId: string;
|
|
34
|
+
}, {
|
|
35
|
+
sequenceId: string;
|
|
36
|
+
}>;
|
|
37
|
+
export declare const replaySequenceSchema: z.ZodObject<{
|
|
38
|
+
sequenceId: z.ZodString;
|
|
39
|
+
continueOnError: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
}, "strip", z.ZodTypeAny, {
|
|
41
|
+
sequenceId: string;
|
|
42
|
+
continueOnError?: boolean | undefined;
|
|
43
|
+
}, {
|
|
44
|
+
sequenceId: string;
|
|
45
|
+
continueOnError?: boolean | undefined;
|
|
46
|
+
}>;
|
|
47
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/record/schemas/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,oBAAoB;;;;;;;;;EAK2B,CAAA;AAE5D,eAAO,MAAM,mBAAmB;;;;;;EAI+B,CAAA;AAE/D,eAAO,MAAM,mBAAmB,gDAA2D,CAAA;AAE3F,eAAO,MAAM,iBAAiB;;;;;;EAImB,CAAA;AAEjD,eAAO,MAAM,oBAAoB;;;;;;EAIK,CAAA;AAEtC,eAAO,MAAM,oBAAoB;;;;;;;;;EAKe,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Record schemas exports - 6 recording tool schemas
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export const startRecordingSchema = z
|
|
6
|
+
.object({
|
|
7
|
+
name: z.string().optional().describe('Name for this recording sequence'),
|
|
8
|
+
description: z.string().optional().describe('Optional description of what this sequence does'),
|
|
9
|
+
})
|
|
10
|
+
.describe('Start recording user actions for later replay');
|
|
11
|
+
export const stopRecordingSchema = z
|
|
12
|
+
.object({
|
|
13
|
+
save: z.boolean().optional().describe('Whether to save the sequence (default: true)'),
|
|
14
|
+
})
|
|
15
|
+
.describe('Stop the current recording and save the sequence');
|
|
16
|
+
export const listSequencesSchema = z.object({}).describe('List all saved action sequences');
|
|
17
|
+
export const getSequenceSchema = z
|
|
18
|
+
.object({
|
|
19
|
+
sequenceId: z.string().min(1).describe('ID of the sequence to retrieve'),
|
|
20
|
+
})
|
|
21
|
+
.describe('Get details of a specific sequence');
|
|
22
|
+
export const deleteSequenceSchema = z
|
|
23
|
+
.object({
|
|
24
|
+
sequenceId: z.string().min(1).describe('ID of the sequence to delete'),
|
|
25
|
+
})
|
|
26
|
+
.describe('Delete a saved sequence');
|
|
27
|
+
export const replaySequenceSchema = z
|
|
28
|
+
.object({
|
|
29
|
+
sequenceId: z.string().min(1).describe('ID of the sequence to replay'),
|
|
30
|
+
continueOnError: z.boolean().optional().describe('Whether to continue replaying if an action fails (default: false)'),
|
|
31
|
+
})
|
|
32
|
+
.describe('Replay a recorded action sequence');
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/capabilities/record/schemas/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACxE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;CAC/F,CAAC;KACD,QAAQ,CAAC,+CAA+C,CAAC,CAAA;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;CACtF,CAAC;KACD,QAAQ,CAAC,kDAAkD,CAAC,CAAA;AAE/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAA;AAE3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CACzE,CAAC;KACD,QAAQ,CAAC,oCAAoC,CAAC,CAAA;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CACvE,CAAC;KACD,QAAQ,CAAC,yBAAyB,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACtE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;CACtH,CAAC;KACD,QAAQ,CAAC,mCAAmC,CAAC,CAAA"}
|