common-qa-mcp 0.1.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.
- package/LICENSE +21 -0
- package/README.md +96 -0
- package/dist/adapters/factory.d.ts +15 -0
- package/dist/adapters/factory.d.ts.map +1 -0
- package/dist/adapters/factory.js +18 -0
- package/dist/adapters/factory.js.map +1 -0
- package/dist/adapters/remoteMcp/adapter.d.ts +92 -0
- package/dist/adapters/remoteMcp/adapter.d.ts.map +1 -0
- package/dist/adapters/remoteMcp/adapter.js +219 -0
- package/dist/adapters/remoteMcp/adapter.js.map +1 -0
- package/dist/adapters/types.d.ts +77 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/adapters/walnut/actionTypes.d.ts +16 -0
- package/dist/adapters/walnut/actionTypes.d.ts.map +1 -0
- package/dist/adapters/walnut/actionTypes.js +141 -0
- package/dist/adapters/walnut/actionTypes.js.map +1 -0
- package/dist/adapters/walnut/mapper.d.ts +34 -0
- package/dist/adapters/walnut/mapper.d.ts.map +1 -0
- package/dist/adapters/walnut/mapper.js +228 -0
- package/dist/adapters/walnut/mapper.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +36 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +81 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +211 -0
- package/dist/config.js.map +1 -0
- package/dist/connection.d.ts +101 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +190 -0
- package/dist/connection.js.map +1 -0
- package/dist/domain/types.d.ts +279 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/domain/types.js +2 -0
- package/dist/domain/types.js.map +1 -0
- package/dist/domain/validate.d.ts +3 -0
- package/dist/domain/validate.d.ts.map +1 -0
- package/dist/domain/validate.js +29 -0
- package/dist/domain/validate.js.map +1 -0
- package/dist/drafts/store.d.ts +62 -0
- package/dist/drafts/store.d.ts.map +1 -0
- package/dist/drafts/store.js +119 -0
- package/dist/drafts/store.js.map +1 -0
- package/dist/httpMain.d.ts +3 -0
- package/dist/httpMain.d.ts.map +1 -0
- package/dist/httpMain.js +22 -0
- package/dist/httpMain.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +46 -0
- package/dist/index.js.map +1 -0
- package/dist/initAgents.d.ts +2 -0
- package/dist/initAgents.d.ts.map +1 -0
- package/dist/initAgents.js +178 -0
- package/dist/initAgents.js.map +1 -0
- package/dist/log.d.ts +14 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +14 -0
- package/dist/log.js.map +1 -0
- package/dist/mcpResult.d.ts +20 -0
- package/dist/mcpResult.d.ts.map +1 -0
- package/dist/mcpResult.js +8 -0
- package/dist/mcpResult.js.map +1 -0
- package/dist/mount.d.ts +12 -0
- package/dist/mount.d.ts.map +1 -0
- package/dist/mount.js +126 -0
- package/dist/mount.js.map +1 -0
- package/dist/projectStore.d.ts +5 -0
- package/dist/projectStore.d.ts.map +1 -0
- package/dist/projectStore.js +60 -0
- package/dist/projectStore.js.map +1 -0
- package/dist/requestConnection.d.ts +20 -0
- package/dist/requestConnection.d.ts.map +1 -0
- package/dist/requestConnection.js +44 -0
- package/dist/requestConnection.js.map +1 -0
- package/dist/serve.d.ts +10 -0
- package/dist/serve.d.ts.map +1 -0
- package/dist/serve.js +37 -0
- package/dist/serve.js.map +1 -0
- package/dist/server.d.ts +29 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +76 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/connection.tools.d.ts +16 -0
- package/dist/tools/connection.tools.d.ts.map +1 -0
- package/dist/tools/connection.tools.js +106 -0
- package/dist/tools/connection.tools.js.map +1 -0
- package/dist/tools/discovery.tools.d.ts +16 -0
- package/dist/tools/discovery.tools.d.ts.map +1 -0
- package/dist/tools/discovery.tools.js +369 -0
- package/dist/tools/discovery.tools.js.map +1 -0
- package/dist/tools/markdown.d.ts +13 -0
- package/dist/tools/markdown.d.ts.map +1 -0
- package/dist/tools/markdown.js +65 -0
- package/dist/tools/markdown.js.map +1 -0
- package/dist/tools/recording.tools.d.ts +16 -0
- package/dist/tools/recording.tools.d.ts.map +1 -0
- package/dist/tools/recording.tools.js +378 -0
- package/dist/tools/recording.tools.js.map +1 -0
- package/dist/tools/run.tools.d.ts +13 -0
- package/dist/tools/run.tools.d.ts.map +1 -0
- package/dist/tools/run.tools.js +230 -0
- package/dist/tools/run.tools.js.map +1 -0
- package/dist/tools/schemas.d.ts +560 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +112 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/testcase.tools.d.ts +50 -0
- package/dist/tools/testcase.tools.d.ts.map +1 -0
- package/dist/tools/testcase.tools.js +384 -0
- package/dist/tools/testcase.tools.js.map +1 -0
- package/dist/vendor/actionSignatures.d.ts +117 -0
- package/dist/vendor/actionSignatures.d.ts.map +1 -0
- package/dist/vendor/actionSignatures.js +420 -0
- package/dist/vendor/actionSignatures.js.map +1 -0
- package/dist/vendor/logger.d.ts +38 -0
- package/dist/vendor/logger.d.ts.map +1 -0
- package/dist/vendor/logger.js +174 -0
- package/dist/vendor/logger.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified action-signature registry (WEB) — shadow registry.
|
|
3
|
+
*
|
|
4
|
+
* ONE declaration per action = the single source of truth for its step-description shape
|
|
5
|
+
* and what it requires (object binding, parameters). Today these facts are re-declared
|
|
6
|
+
* independently across ~5 consumers (action def, LLM schema, bake, parameterizer, execute
|
|
7
|
+
* validation) and drift out of sync — the root cause of the verify_value / store /
|
|
8
|
+
* verify-description bugs. Later phases make each consumer DERIVE from this registry.
|
|
9
|
+
*
|
|
10
|
+
* The registry declares the FULL web action catalog — every catalogued web action_type: the
|
|
11
|
+
* playwright action handlers PLUS the three step-handler web actions (store_run_variable,
|
|
12
|
+
* store_global_variable, switch_window, declared at the bottom, shadow-only). Two
|
|
13
|
+
* web-registered action_types are intentionally EXCLUDED: `tap` (a mobile/touch action kept
|
|
14
|
+
* out of the web catalog) and `verify_element_state` (a backward-compatible ALIAS of
|
|
15
|
+
* `verify_element_visible` — same handler + template; declaring both would be a pure
|
|
16
|
+
* duplicate, so only verify_element_visible is here). Both stay registered/executable elsewhere. The registry stays
|
|
17
|
+
* SHADOW-ONLY at runtime: deriveWebStepSemantics only DERIVES its description from this
|
|
18
|
+
* registry for the verify family (the sole reader, stepSemantics.ts). Every other entry is
|
|
19
|
+
* proven faithful to the live bake by the golden-oracle test (actionSignatures.test.ts) for
|
|
20
|
+
* the actions the recorder emits, and structurally validated for execution-only actions the
|
|
21
|
+
* recorder never produces (snapshot, tracing, dialogs, …).
|
|
22
|
+
*
|
|
23
|
+
* Leaf module by design (no generateTestSteps import chain, and no stepSemantics import —
|
|
24
|
+
* stepSemantics imports THIS file, so importing back would be circular), so tests can import
|
|
25
|
+
* the REAL code — the same reason journalPlacement.ts / androidJournalFirst.ts are separate.
|
|
26
|
+
*
|
|
27
|
+
* Design: docs/superpowers/specs/2026-07-19-unified-action-signature-registry-design.md
|
|
28
|
+
*/
|
|
29
|
+
export interface ActionParam {
|
|
30
|
+
/** Test-data column minted for this action's value (e.g. 'expected_value'). When
|
|
31
|
+
* `derivedFromObject` is set this is the FALLBACK name used when the element has no
|
|
32
|
+
* usable label. */
|
|
33
|
+
name: string;
|
|
34
|
+
/** Which template slot the value fills: a content value, or an element state. */
|
|
35
|
+
slot: 'value' | 'state';
|
|
36
|
+
/** When true, the param NAME is derived from the captured element label at bake time
|
|
37
|
+
* (snake_case), falling back to `name`. Models type/select, whose param is named after
|
|
38
|
+
* the field — e.g. "Email Field" → `Enter ${email_field} in Email Field`. The template
|
|
39
|
+
* carries this param as its fallback `${name}` token (e.g. `${value}`); fillDescription
|
|
40
|
+
* rewrites that token to the object-derived name when an element is present. */
|
|
41
|
+
derivedFromObject?: boolean;
|
|
42
|
+
/** The VALUE KIND replay can actually use. Declared only where the WRONG kind misexecutes
|
|
43
|
+
* SILENTLY: every `number` param is read with a digit regex at replay and falls back to a
|
|
44
|
+
* default when it doesn't match (resize → 1280x720, wait_timeout → 1000ms, tabs → last tab,
|
|
45
|
+
* mouse_* → 0,0), so a non-numeric literal runs a DIFFERENT action instead of failing.
|
|
46
|
+
* Undeclared = free text, nothing to check. Surfaced to the step editor via the authoring
|
|
47
|
+
* contract (actionSyncService.authoringContract). */
|
|
48
|
+
valueType?: 'number';
|
|
49
|
+
/** Declared for completeness, but the author does NOT have to supply it — it is absent from
|
|
50
|
+
* the catalog template and only applies to some operators (verify_compare's `tolerance` is
|
|
51
|
+
* read for `close_to` only). Kept out of the authoring contract's required list. */
|
|
52
|
+
optional?: true;
|
|
53
|
+
}
|
|
54
|
+
export interface ActionSignature {
|
|
55
|
+
/** Matches action_type, e.g. 'verify_value'. */
|
|
56
|
+
actionType: string;
|
|
57
|
+
/**
|
|
58
|
+
* The exact step-description shape. `<element>` is the ONLY angle-bracket token — a human
|
|
59
|
+
* ELEMENT placeholder (present iff `requires.object`): the Manual Steps editor shows it raw
|
|
60
|
+
* (not a purple parameter), while recording fills it with the captured element name. Values
|
|
61
|
+
* are always `${...}` PARAM tokens — never angle-bracketed. Substitution at bake time:
|
|
62
|
+
* `<element>` → the captured element label.
|
|
63
|
+
* `${inputValue}` → the captured literal value (verify text/value only).
|
|
64
|
+
* `${<name>}` of a `derivedFromObject` param → rewritten to the object-derived name
|
|
65
|
+
* (e.g. `${value}` → `${email_field}`) when an element is present.
|
|
66
|
+
* Every other `${...}` is a fixed PARAM token that survives verbatim (`${expected_state}`,
|
|
67
|
+
* `${file_path}`, `${key_name}`, `${target}`, `${url}`, …) — declared in `requires.params`.
|
|
68
|
+
*
|
|
69
|
+
* Templates model the PRIMARY (object/value-present) form only; the degenerate no-object
|
|
70
|
+
* / no-value cases stay hand-coded in deriveWebStepSemantics.
|
|
71
|
+
*/
|
|
72
|
+
descriptionTemplate: string;
|
|
73
|
+
requires: {
|
|
74
|
+
/** Needs an element/selector binding — rejected at record time if missing. Mirrors the
|
|
75
|
+
* action handler's `needsLocator` for interaction actions; a few verify actions carry a
|
|
76
|
+
* recorded object even though their replay handler resolves it without a pinned locator. */
|
|
77
|
+
object: boolean;
|
|
78
|
+
params?: ActionParam[];
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Fill a signature's template with a captured element name + value. `<element>` is replaced
|
|
83
|
+
* with the captured label (the raw `<element>` only shows in the Manual Steps editor before an
|
|
84
|
+
* element is linked); `${inputValue}` with the captured literal; and a `derivedFromObject`
|
|
85
|
+
* param's fallback token (`${value}` / `${option}`) is rewritten to the object-derived name
|
|
86
|
+
* (`${email_field}`). All other `${param}` tokens survive verbatim.
|
|
87
|
+
*/
|
|
88
|
+
export declare function fillDescription(sig: ActionSignature, slots: {
|
|
89
|
+
objectName?: string;
|
|
90
|
+
inputValue?: string;
|
|
91
|
+
}): string;
|
|
92
|
+
/**
|
|
93
|
+
* Render a signature for the ACTION CATALOG / Manual Steps editor surface (a different surface
|
|
94
|
+
* from the recording bake). The editor understands `${param}` tokens (extracted, colored, and
|
|
95
|
+
* auto-created as test data) and shows `<element>` as the raw placeholder the user links an
|
|
96
|
+
* object to — but it does NOT understand the recording-only fill slot `${inputValue}`. So this
|
|
97
|
+
* converts `${inputValue}` to its declared `${param}` form, LEAVING `<element>` and every other
|
|
98
|
+
* `${token}` (incl. a derivedFromObject param's fallback `${value}`/`${option}`) as-is.
|
|
99
|
+
*
|
|
100
|
+
* type 'Enter ${value} in <element>' → unchanged
|
|
101
|
+
* select_option 'Select ${option} from <element>' → unchanged
|
|
102
|
+
* verify_text 'Verify <element> contains "${inputValue}"' → 'Verify <element> contains ${expected_text}'
|
|
103
|
+
* click 'Click <element>' → unchanged
|
|
104
|
+
*
|
|
105
|
+
* The quotes a bake template wraps its value in ("${inputValue}") are dropped here: they belong
|
|
106
|
+
* to the recorded literal, whereas a bare ${param} is what the editor extracts as test data.
|
|
107
|
+
*/
|
|
108
|
+
export declare function catalogDescription(sig: ActionSignature): string;
|
|
109
|
+
/**
|
|
110
|
+
* WEB recorded-action signatures — the full web action catalog.
|
|
111
|
+
*
|
|
112
|
+
* Grouped to mirror actions/index.ts. Actions the recorder emits carry the SAME description
|
|
113
|
+
* the live bake produces (golden-oracle enforced); execution-only actions (which the recorder
|
|
114
|
+
* never records as a step) carry a designed template validated only structurally.
|
|
115
|
+
*/
|
|
116
|
+
export declare const WEB_ACTION_SIGNATURES: Record<string, ActionSignature>;
|
|
117
|
+
//# sourceMappingURL=actionSignatures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionSignatures.d.ts","sourceRoot":"","sources":["../../src/vendor/actionSignatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,WAAW;IAC1B;;wBAEoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB;;;;qFAIiF;IACjF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;0DAKsD;IACtD,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB;;yFAEqF;IACrF,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAOD,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE;QACR;;qGAE6F;QAC7F,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;KACxB,CAAC;CACH;AAWD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAClD,MAAM,CAYR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAY/D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA+UjE,CAAC"}
|
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified action-signature registry (WEB) — shadow registry.
|
|
3
|
+
*
|
|
4
|
+
* ONE declaration per action = the single source of truth for its step-description shape
|
|
5
|
+
* and what it requires (object binding, parameters). Today these facts are re-declared
|
|
6
|
+
* independently across ~5 consumers (action def, LLM schema, bake, parameterizer, execute
|
|
7
|
+
* validation) and drift out of sync — the root cause of the verify_value / store /
|
|
8
|
+
* verify-description bugs. Later phases make each consumer DERIVE from this registry.
|
|
9
|
+
*
|
|
10
|
+
* The registry declares the FULL web action catalog — every catalogued web action_type: the
|
|
11
|
+
* playwright action handlers PLUS the three step-handler web actions (store_run_variable,
|
|
12
|
+
* store_global_variable, switch_window, declared at the bottom, shadow-only). Two
|
|
13
|
+
* web-registered action_types are intentionally EXCLUDED: `tap` (a mobile/touch action kept
|
|
14
|
+
* out of the web catalog) and `verify_element_state` (a backward-compatible ALIAS of
|
|
15
|
+
* `verify_element_visible` — same handler + template; declaring both would be a pure
|
|
16
|
+
* duplicate, so only verify_element_visible is here). Both stay registered/executable elsewhere. The registry stays
|
|
17
|
+
* SHADOW-ONLY at runtime: deriveWebStepSemantics only DERIVES its description from this
|
|
18
|
+
* registry for the verify family (the sole reader, stepSemantics.ts). Every other entry is
|
|
19
|
+
* proven faithful to the live bake by the golden-oracle test (actionSignatures.test.ts) for
|
|
20
|
+
* the actions the recorder emits, and structurally validated for execution-only actions the
|
|
21
|
+
* recorder never produces (snapshot, tracing, dialogs, …).
|
|
22
|
+
*
|
|
23
|
+
* Leaf module by design (no generateTestSteps import chain, and no stepSemantics import —
|
|
24
|
+
* stepSemantics imports THIS file, so importing back would be circular), so tests can import
|
|
25
|
+
* the REAL code — the same reason journalPlacement.ts / androidJournalFirst.ts are separate.
|
|
26
|
+
*
|
|
27
|
+
* Design: docs/superpowers/specs/2026-07-19-unified-action-signature-registry-design.md
|
|
28
|
+
*/
|
|
29
|
+
/** snake_case a captured element label into a parameter name — e.g. "Email Field" →
|
|
30
|
+
* "email_field". MIRROR of stepSemantics.paramNameFromObject; kept LOCAL because
|
|
31
|
+
* stepSemantics.ts imports THIS module (importing back would be circular). The golden-oracle
|
|
32
|
+
* test compares fillDescription against the live bake, so any drift between the two copies
|
|
33
|
+
* fails the test. */
|
|
34
|
+
function deriveParamName(objectName) {
|
|
35
|
+
return objectName ? objectName.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_|_$/g, '') : '';
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Fill a signature's template with a captured element name + value. `<element>` is replaced
|
|
39
|
+
* with the captured label (the raw `<element>` only shows in the Manual Steps editor before an
|
|
40
|
+
* element is linked); `${inputValue}` with the captured literal; and a `derivedFromObject`
|
|
41
|
+
* param's fallback token (`${value}` / `${option}`) is rewritten to the object-derived name
|
|
42
|
+
* (`${email_field}`). All other `${param}` tokens survive verbatim.
|
|
43
|
+
*/
|
|
44
|
+
export function fillDescription(sig, slots) {
|
|
45
|
+
let out = sig.descriptionTemplate
|
|
46
|
+
.replace(/<element>/g, slots.objectName ?? '')
|
|
47
|
+
.replace(/\$\{inputValue\}/g, slots.inputValue ?? '');
|
|
48
|
+
const derivedParam = sig.requires.params?.find(p => p.derivedFromObject);
|
|
49
|
+
if (derivedParam) {
|
|
50
|
+
const derived = deriveParamName(slots.objectName) || derivedParam.name;
|
|
51
|
+
// Rewrite the fallback token (${value}) to the object-derived name (${email_field}).
|
|
52
|
+
// split/join avoids escaping the ${…} for a RegExp.
|
|
53
|
+
out = out.split('${' + derivedParam.name + '}').join('${' + derived + '}');
|
|
54
|
+
}
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Render a signature for the ACTION CATALOG / Manual Steps editor surface (a different surface
|
|
59
|
+
* from the recording bake). The editor understands `${param}` tokens (extracted, colored, and
|
|
60
|
+
* auto-created as test data) and shows `<element>` as the raw placeholder the user links an
|
|
61
|
+
* object to — but it does NOT understand the recording-only fill slot `${inputValue}`. So this
|
|
62
|
+
* converts `${inputValue}` to its declared `${param}` form, LEAVING `<element>` and every other
|
|
63
|
+
* `${token}` (incl. a derivedFromObject param's fallback `${value}`/`${option}`) as-is.
|
|
64
|
+
*
|
|
65
|
+
* type 'Enter ${value} in <element>' → unchanged
|
|
66
|
+
* select_option 'Select ${option} from <element>' → unchanged
|
|
67
|
+
* verify_text 'Verify <element> contains "${inputValue}"' → 'Verify <element> contains ${expected_text}'
|
|
68
|
+
* click 'Click <element>' → unchanged
|
|
69
|
+
*
|
|
70
|
+
* The quotes a bake template wraps its value in ("${inputValue}") are dropped here: they belong
|
|
71
|
+
* to the recorded literal, whereas a bare ${param} is what the editor extracts as test data.
|
|
72
|
+
*/
|
|
73
|
+
export function catalogDescription(sig) {
|
|
74
|
+
let out = sig.descriptionTemplate;
|
|
75
|
+
// ${inputValue} → the declared value param the captured literal maps to (e.g. expected_text),
|
|
76
|
+
// so the manual template shows an editable ${param} instead of the internal fill slot.
|
|
77
|
+
if (out.includes('${inputValue}')) {
|
|
78
|
+
const valueParam = sig.requires.params?.find(p => p.slot === 'value' && !p.derivedFromObject);
|
|
79
|
+
const token = valueParam ? '${' + valueParam.name + '}' : '';
|
|
80
|
+
// Strip the bake's surrounding quotes first, so the catalog reads `contains ${expected_text}`
|
|
81
|
+
// rather than `contains "${expected_text}"`.
|
|
82
|
+
out = out.split('"${inputValue}"').join(token).replace(/\$\{inputValue\}/g, token);
|
|
83
|
+
}
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* WEB recorded-action signatures — the full web action catalog.
|
|
88
|
+
*
|
|
89
|
+
* Grouped to mirror actions/index.ts. Actions the recorder emits carry the SAME description
|
|
90
|
+
* the live bake produces (golden-oracle enforced); execution-only actions (which the recorder
|
|
91
|
+
* never records as a step) carry a designed template validated only structurally.
|
|
92
|
+
*/
|
|
93
|
+
export const WEB_ACTION_SIGNATURES = {
|
|
94
|
+
// ── Element interaction ────────────────────────────────────────────────────────────────
|
|
95
|
+
click: {
|
|
96
|
+
actionType: 'click',
|
|
97
|
+
descriptionTemplate: 'Click on <element>',
|
|
98
|
+
requires: { object: true },
|
|
99
|
+
},
|
|
100
|
+
type: {
|
|
101
|
+
actionType: 'type',
|
|
102
|
+
descriptionTemplate: 'Enter ${value} in <element>',
|
|
103
|
+
requires: { object: true, params: [{ name: 'value', slot: 'value', derivedFromObject: true }] },
|
|
104
|
+
},
|
|
105
|
+
fill_form: {
|
|
106
|
+
actionType: 'fill_form',
|
|
107
|
+
descriptionTemplate: 'Enter ${value} in <element>',
|
|
108
|
+
requires: { object: true, params: [{ name: 'value', slot: 'value', derivedFromObject: true }] },
|
|
109
|
+
},
|
|
110
|
+
select_option: {
|
|
111
|
+
actionType: 'select_option',
|
|
112
|
+
descriptionTemplate: 'Select ${option} from <element>',
|
|
113
|
+
requires: { object: true, params: [{ name: 'option', slot: 'value', derivedFromObject: true }] },
|
|
114
|
+
},
|
|
115
|
+
hover: {
|
|
116
|
+
actionType: 'hover',
|
|
117
|
+
descriptionTemplate: 'Hover over <element>',
|
|
118
|
+
requires: { object: true },
|
|
119
|
+
},
|
|
120
|
+
drag: {
|
|
121
|
+
actionType: 'drag',
|
|
122
|
+
descriptionTemplate: 'Drag <element> to ${target}',
|
|
123
|
+
requires: { object: true, params: [{ name: 'target', slot: 'value' }] },
|
|
124
|
+
},
|
|
125
|
+
file_upload: {
|
|
126
|
+
actionType: 'file_upload',
|
|
127
|
+
descriptionTemplate: 'Upload ${file_path} to <element>',
|
|
128
|
+
requires: { object: true, params: [{ name: 'file_path', slot: 'value' }] },
|
|
129
|
+
},
|
|
130
|
+
press_key: {
|
|
131
|
+
actionType: 'press_key',
|
|
132
|
+
descriptionTemplate: 'Press ${key_name}',
|
|
133
|
+
requires: { object: false, params: [{ name: 'key_name', slot: 'value' }] },
|
|
134
|
+
},
|
|
135
|
+
dblclick: {
|
|
136
|
+
actionType: 'dblclick',
|
|
137
|
+
descriptionTemplate: 'Double-click on <element>',
|
|
138
|
+
requires: { object: true },
|
|
139
|
+
},
|
|
140
|
+
focus: {
|
|
141
|
+
actionType: 'focus',
|
|
142
|
+
descriptionTemplate: 'Focus on <element>',
|
|
143
|
+
requires: { object: true },
|
|
144
|
+
},
|
|
145
|
+
blur: {
|
|
146
|
+
actionType: 'blur',
|
|
147
|
+
descriptionTemplate: 'Blur <element>',
|
|
148
|
+
requires: { object: true },
|
|
149
|
+
},
|
|
150
|
+
clear: {
|
|
151
|
+
actionType: 'clear',
|
|
152
|
+
descriptionTemplate: 'Clear <element>',
|
|
153
|
+
requires: { object: true },
|
|
154
|
+
},
|
|
155
|
+
// NOTE: `tap` is intentionally NOT declared here — it is a mobile/touch action kept OUT of
|
|
156
|
+
// the web catalog (2026-07-18 fix), so it has no web catalog row to template.
|
|
157
|
+
// ── Mouse (coordinate-based) ───────────────────────────────────────────────────────────
|
|
158
|
+
mouse_click_xy: {
|
|
159
|
+
actionType: 'mouse_click_xy',
|
|
160
|
+
descriptionTemplate: 'Click at (${x}, ${y})',
|
|
161
|
+
requires: { object: false, params: [{ name: 'x', slot: 'value', valueType: 'number' }, { name: 'y', slot: 'value', valueType: 'number' }] },
|
|
162
|
+
},
|
|
163
|
+
mouse_move_xy: {
|
|
164
|
+
actionType: 'mouse_move_xy',
|
|
165
|
+
descriptionTemplate: 'Move mouse to (${x}, ${y})',
|
|
166
|
+
requires: { object: false, params: [{ name: 'x', slot: 'value', valueType: 'number' }, { name: 'y', slot: 'value', valueType: 'number' }] },
|
|
167
|
+
},
|
|
168
|
+
mouse_drag_xy: {
|
|
169
|
+
actionType: 'mouse_drag_xy',
|
|
170
|
+
descriptionTemplate: 'Drag from (${from_x}, ${from_y}) to (${to_x}, ${to_y})',
|
|
171
|
+
requires: {
|
|
172
|
+
object: false,
|
|
173
|
+
params: [
|
|
174
|
+
{ name: 'from_x', slot: 'value', valueType: 'number' }, { name: 'from_y', slot: 'value', valueType: 'number' },
|
|
175
|
+
{ name: 'to_x', slot: 'value', valueType: 'number' }, { name: 'to_y', slot: 'value', valueType: 'number' },
|
|
176
|
+
],
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
// ── Navigation & lifecycle ─────────────────────────────────────────────────────────────
|
|
180
|
+
navigate: {
|
|
181
|
+
actionType: 'navigate',
|
|
182
|
+
descriptionTemplate: 'Navigate to ${url}',
|
|
183
|
+
requires: { object: false, params: [{ name: 'url', slot: 'value' }] },
|
|
184
|
+
},
|
|
185
|
+
navigate_back: {
|
|
186
|
+
actionType: 'navigate_back',
|
|
187
|
+
// "back" stays adjacent to "Navigate" so the description-inference URL-nav guard
|
|
188
|
+
// (dispatcher.ts) still excludes it; must match deriveWebStepSemantics's bake exactly.
|
|
189
|
+
descriptionTemplate: 'Navigate back in browser',
|
|
190
|
+
requires: { object: false },
|
|
191
|
+
},
|
|
192
|
+
reload: {
|
|
193
|
+
actionType: 'reload',
|
|
194
|
+
descriptionTemplate: 'Reload Browser Page',
|
|
195
|
+
requires: { object: false },
|
|
196
|
+
},
|
|
197
|
+
go_forward: {
|
|
198
|
+
actionType: 'go_forward',
|
|
199
|
+
descriptionTemplate: 'Navigate forward in Browser',
|
|
200
|
+
requires: { object: false },
|
|
201
|
+
},
|
|
202
|
+
close: {
|
|
203
|
+
actionType: 'close',
|
|
204
|
+
descriptionTemplate: 'Closes current active tab',
|
|
205
|
+
requires: { object: false },
|
|
206
|
+
},
|
|
207
|
+
tabs: {
|
|
208
|
+
actionType: 'tabs',
|
|
209
|
+
descriptionTemplate: 'Switch to tab ${tab_index}',
|
|
210
|
+
requires: { object: false, params: [{ name: 'tab_index', slot: 'value', valueType: 'number' }] },
|
|
211
|
+
},
|
|
212
|
+
open_tab: {
|
|
213
|
+
actionType: 'open_tab',
|
|
214
|
+
descriptionTemplate: 'Open new tab',
|
|
215
|
+
requires: { object: false },
|
|
216
|
+
},
|
|
217
|
+
close_tab: {
|
|
218
|
+
actionType: 'close_tab',
|
|
219
|
+
descriptionTemplate: 'Close tab ${tab_index}',
|
|
220
|
+
requires: { object: false, params: [{ name: 'tab_index', slot: 'value', valueType: 'number' }] },
|
|
221
|
+
},
|
|
222
|
+
// ── Verification ───────────────────────────────────────────────────────────────────────
|
|
223
|
+
// The verify family is the ONLY group deriveWebStepSemantics derives from this registry.
|
|
224
|
+
// verify_element_visible is the catalog/legacy action_type AND the canonical `verify_element_state`
|
|
225
|
+
// alias both route to the same replay handler with this exact shape. Declared ONCE (under the
|
|
226
|
+
// catalog action_type verify_element_visible) — no separate `verify_element_state` entry, which
|
|
227
|
+
// would be a pure duplicate. The alias action_type stays registered/executable in the registry.
|
|
228
|
+
verify_element_visible: {
|
|
229
|
+
actionType: 'verify_element_visible',
|
|
230
|
+
descriptionTemplate: 'Verify <element> is ${expected_state}',
|
|
231
|
+
requires: { object: true, params: [{ name: 'expected_state', slot: 'state' }] },
|
|
232
|
+
},
|
|
233
|
+
// The quotes around ${inputValue} are LOAD-BEARING for the recording bake — the saved step
|
|
234
|
+
// reads `Verify Email Field contains "vijay@x.com"`. catalogDescription() drops them so the
|
|
235
|
+
// manual-step template stays the approved `Verify <element> contains ${expected_text}`.
|
|
236
|
+
verify_text_visible: {
|
|
237
|
+
actionType: 'verify_text_visible',
|
|
238
|
+
descriptionTemplate: 'Verify <element> contains "${inputValue}"',
|
|
239
|
+
requires: { object: true, params: [{ name: 'expected_text', slot: 'value' }] },
|
|
240
|
+
},
|
|
241
|
+
verify_value: {
|
|
242
|
+
actionType: 'verify_value',
|
|
243
|
+
descriptionTemplate: 'Verify <element> contains "${inputValue}"',
|
|
244
|
+
requires: { object: true, params: [{ name: 'expected_value', slot: 'value' }] },
|
|
245
|
+
},
|
|
246
|
+
// requires.object:true (the recorded step carries the list element) even though the replay
|
|
247
|
+
// handler's needsLocator is false — reproduces the live bake shape exactly.
|
|
248
|
+
verify_list_visible: {
|
|
249
|
+
actionType: 'verify_list_visible',
|
|
250
|
+
descriptionTemplate: 'Verify <element> contains "${inputValue}"',
|
|
251
|
+
requires: { object: true, params: [{ name: 'expected_text', slot: 'value' }] },
|
|
252
|
+
},
|
|
253
|
+
verify_url_contains: {
|
|
254
|
+
actionType: 'verify_url_contains',
|
|
255
|
+
descriptionTemplate: 'Verify URL contains ${inputValue}',
|
|
256
|
+
requires: { object: false, params: [{ name: 'expected_url', slot: 'value' }] },
|
|
257
|
+
},
|
|
258
|
+
verify_navigation: {
|
|
259
|
+
actionType: 'verify_navigation',
|
|
260
|
+
descriptionTemplate: 'Verify page navigated to ${inputValue}',
|
|
261
|
+
requires: { object: false, params: [{ name: 'expected_url', slot: 'value' }] },
|
|
262
|
+
},
|
|
263
|
+
// The live wording is operator-driven (verifyCompare.ts OPERATOR_PHRASE): `<element> is
|
|
264
|
+
// greater than 100`, `<element> contains …`. The operator is resolved at bake and is neither
|
|
265
|
+
// an element nor a test-data column, so it is left out of the template shape here (kept to
|
|
266
|
+
// `<element>` + the `${expected_value}` param). `tolerance` applies to close_to. The
|
|
267
|
+
// manual-step editor seeds verify_compare from its own parseable sentence — picker subtext only.
|
|
268
|
+
// "equals" — NOT "matches". The frontend seeds the structured compare block by parsing this
|
|
269
|
+
// sentence (parseCompareFromDescription against OPERATOR_PHRASE), and 'matches' is the REGEX
|
|
270
|
+
// operator: it would make every freshly-added step regex-compare, so expected "5" would pass
|
|
271
|
+
// against "15". 'equals' is the phrase for defaultCompareSpec()'s operator. The user picks any
|
|
272
|
+
// other operator from the editor, which rewrites the sentence.
|
|
273
|
+
verify_compare: {
|
|
274
|
+
actionType: 'verify_compare',
|
|
275
|
+
descriptionTemplate: 'Verify <element> equals ${expected_value}',
|
|
276
|
+
requires: {
|
|
277
|
+
object: true,
|
|
278
|
+
params: [
|
|
279
|
+
{ name: 'expected_value', slot: 'value' },
|
|
280
|
+
// OPTIONAL: `tolerance` is absent from the template above (verify_compare reads it for the
|
|
281
|
+
// close_to operator only), so the author is never asked for it — without this flag the
|
|
282
|
+
// step editor would demand a `${tolerance}` token the picker never inserts.
|
|
283
|
+
{ name: 'tolerance', slot: 'value', valueType: 'number', optional: true },
|
|
284
|
+
],
|
|
285
|
+
},
|
|
286
|
+
},
|
|
287
|
+
// Param name is load-bearing: handle-dialog.action.ts reads stepValue(ctx,
|
|
288
|
+
// 'expected_dialog_message', …) off the step, and recording bakes that exact name
|
|
289
|
+
// (generateTestSteps ~1260). A manual step must use the SAME name or the value never reaches
|
|
290
|
+
// the handler.
|
|
291
|
+
verify_dialog_message: {
|
|
292
|
+
actionType: 'verify_dialog_message',
|
|
293
|
+
descriptionTemplate: 'Verify dialog message contains "${inputValue}"',
|
|
294
|
+
requires: { object: false, params: [{ name: 'expected_dialog_message', slot: 'value' }] },
|
|
295
|
+
},
|
|
296
|
+
// ── Wait — element state ───────────────────────────────────────────────────────────────
|
|
297
|
+
wait_for_visible: {
|
|
298
|
+
actionType: 'wait_for_visible',
|
|
299
|
+
descriptionTemplate: 'Wait for <element> to be visible',
|
|
300
|
+
requires: { object: true },
|
|
301
|
+
},
|
|
302
|
+
wait_for_hidden: {
|
|
303
|
+
actionType: 'wait_for_hidden',
|
|
304
|
+
descriptionTemplate: 'Wait for <element> to be hidden',
|
|
305
|
+
requires: { object: true },
|
|
306
|
+
},
|
|
307
|
+
wait_for_attached: {
|
|
308
|
+
actionType: 'wait_for_attached',
|
|
309
|
+
descriptionTemplate: 'Wait for <element> to be attached',
|
|
310
|
+
requires: { object: true },
|
|
311
|
+
},
|
|
312
|
+
wait_for_detached: {
|
|
313
|
+
actionType: 'wait_for_detached',
|
|
314
|
+
descriptionTemplate: 'Wait for <element> to be detached',
|
|
315
|
+
requires: { object: true },
|
|
316
|
+
},
|
|
317
|
+
// ── Wait — page level ──────────────────────────────────────────────────────────────────
|
|
318
|
+
wait_timeout: {
|
|
319
|
+
actionType: 'wait_timeout',
|
|
320
|
+
descriptionTemplate: 'Wait ${timeout} ms',
|
|
321
|
+
requires: { object: false, params: [{ name: 'timeout', slot: 'value', valueType: 'number' }] },
|
|
322
|
+
},
|
|
323
|
+
// ${expected_url} is FUNCTIONAL, not decorative: both wait_for_navigation handlers now wait for
|
|
324
|
+
// that URL (page.waitForURL) before the load-state wait. Left empty → load-state wait only,
|
|
325
|
+
// i.e. the previous behaviour.
|
|
326
|
+
wait_for_navigation: {
|
|
327
|
+
actionType: 'wait_for_navigation',
|
|
328
|
+
descriptionTemplate: 'Wait until the ${expected_url} is fully loaded',
|
|
329
|
+
requires: { object: false, params: [{ name: 'expected_url', slot: 'value' }] },
|
|
330
|
+
},
|
|
331
|
+
wait_for_url: {
|
|
332
|
+
actionType: 'wait_for_url',
|
|
333
|
+
descriptionTemplate: 'Wait for URL ${inputValue}',
|
|
334
|
+
requires: { object: false, params: [{ name: 'expected_url', slot: 'value' }] },
|
|
335
|
+
},
|
|
336
|
+
// ── Observation ────────────────────────────────────────────────────────────────────────
|
|
337
|
+
// snapshot / take_screenshot / console_messages / network_requests are BACKEND-ONLY
|
|
338
|
+
// (no `category` on their handlers → not in the catalog), so they are NOT declared here —
|
|
339
|
+
// this registry mirrors the WEB CATALOG. Same reason tap / generate_locator / *_tracing
|
|
340
|
+
// are absent. They stay registered + executable.
|
|
341
|
+
// ── Advanced ───────────────────────────────────────────────────────────────────────────
|
|
342
|
+
handle_dialog: {
|
|
343
|
+
actionType: 'handle_dialog',
|
|
344
|
+
descriptionTemplate: 'Handle dialog',
|
|
345
|
+
requires: { object: false },
|
|
346
|
+
},
|
|
347
|
+
accept_dialog: {
|
|
348
|
+
actionType: 'accept_dialog',
|
|
349
|
+
descriptionTemplate: 'Accept dialog',
|
|
350
|
+
requires: { object: false },
|
|
351
|
+
},
|
|
352
|
+
dismiss_dialog: {
|
|
353
|
+
actionType: 'dismiss_dialog',
|
|
354
|
+
descriptionTemplate: 'Dismiss dialog',
|
|
355
|
+
requires: { object: false },
|
|
356
|
+
},
|
|
357
|
+
// Param name is load-bearing — handle-dialog.action.ts reads stepValue(ctx, 'dialog_prompt', …)
|
|
358
|
+
// and agentOrchestrator bakes that same name when recording a prompt() dialog.
|
|
359
|
+
send_dialog_text: {
|
|
360
|
+
actionType: 'send_dialog_text',
|
|
361
|
+
descriptionTemplate: 'Enter "${inputValue}" in dialog',
|
|
362
|
+
requires: { object: false, params: [{ name: 'dialog_prompt', slot: 'value' }] },
|
|
363
|
+
},
|
|
364
|
+
// evaluate is BACKEND-ONLY (no `category` on its handler → not catalogued), so it is NOT
|
|
365
|
+
// declared here — this registry mirrors the WEB CATALOG. It stays registered + executable.
|
|
366
|
+
run_code: {
|
|
367
|
+
actionType: 'run_code',
|
|
368
|
+
descriptionTemplate: 'Run code',
|
|
369
|
+
requires: { object: false },
|
|
370
|
+
},
|
|
371
|
+
// generate_locator is BACKEND-ONLY (no `category`) → not declared here (see Observation note).
|
|
372
|
+
resize: {
|
|
373
|
+
actionType: 'resize',
|
|
374
|
+
descriptionTemplate: 'Resize viewport to ${width}x${height}',
|
|
375
|
+
requires: { object: false, params: [{ name: 'width', slot: 'value', valueType: 'number' }, { name: 'height', slot: 'value', valueType: 'number' }] },
|
|
376
|
+
},
|
|
377
|
+
scroll: {
|
|
378
|
+
actionType: 'scroll',
|
|
379
|
+
descriptionTemplate: 'Scroll to <element>',
|
|
380
|
+
requires: { object: true },
|
|
381
|
+
},
|
|
382
|
+
// ── PDF ────────────────────────────────────────────────────────────────────────────────
|
|
383
|
+
pdf_save: {
|
|
384
|
+
actionType: 'pdf_save',
|
|
385
|
+
descriptionTemplate: 'Save page as PDF',
|
|
386
|
+
requires: { object: false },
|
|
387
|
+
},
|
|
388
|
+
// start_tracing / stop_tracing are BACKEND-ONLY (no `category`) → not declared here
|
|
389
|
+
// (see the Observation note above).
|
|
390
|
+
// ── Step-handler web actions (catalogued, but NOT playwright element actions) ─────────────
|
|
391
|
+
// SHADOW-ONLY, even more than the rest: their catalog descriptions come from the step-handler
|
|
392
|
+
// definitions (getActionsPayload overrides only the ACTION-handler rows, not step handlers),
|
|
393
|
+
// and their value carriers are runtime/global VARIABLES ($[…] / $(…)) or a window name — not
|
|
394
|
+
// test-data ${params} — so params stay minimal. Declared here purely so the registry covers
|
|
395
|
+
// the FULL web catalog.
|
|
396
|
+
store_run_variable: {
|
|
397
|
+
actionType: 'store_run_variable',
|
|
398
|
+
descriptionTemplate: 'Store text of the <element> to $[variable_name]',
|
|
399
|
+
requires: { object: true },
|
|
400
|
+
},
|
|
401
|
+
// Wording matches store_run_variable except for the $( target — safe because
|
|
402
|
+
// dispatcher.inferActionTypeFromDescription now exempts a $(…)-only description from the
|
|
403
|
+
// "Store text of" → store_run_variable rule (it used to OVERRIDE this step's action_type).
|
|
404
|
+
store_global_variable: {
|
|
405
|
+
actionType: 'store_global_variable',
|
|
406
|
+
descriptionTemplate: 'Store text of the <element> in $(variable_name)',
|
|
407
|
+
requires: { object: true },
|
|
408
|
+
},
|
|
409
|
+
switch_window: {
|
|
410
|
+
actionType: 'switch_window',
|
|
411
|
+
descriptionTemplate: 'Switch to ${window_name} window',
|
|
412
|
+
requires: { object: false, params: [{ name: 'window_name', slot: 'value' }] },
|
|
413
|
+
},
|
|
414
|
+
close_browser: {
|
|
415
|
+
actionType: 'close_browser',
|
|
416
|
+
descriptionTemplate: 'Close browser window',
|
|
417
|
+
requires: { object: false },
|
|
418
|
+
},
|
|
419
|
+
};
|
|
420
|
+
//# sourceMappingURL=actionSignatures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionSignatures.js","sourceRoot":"","sources":["../../src/vendor/actionSignatures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple logger utility for Walnut Agent
|
|
3
|
+
* Logs to console AND to a file for easy review.
|
|
4
|
+
*
|
|
5
|
+
* Log file location (in order of priority):
|
|
6
|
+
* 1. WALNUT_LOG_FILE env var (absolute or relative path)
|
|
7
|
+
* 2. Default: ./logs/walnut-agent.log (relative to process.cwd())
|
|
8
|
+
*
|
|
9
|
+
* The log file is created automatically. Logs are appended on each run.
|
|
10
|
+
*/
|
|
11
|
+
export interface Logger {
|
|
12
|
+
info: (message: string, ...args: any[]) => void;
|
|
13
|
+
error: (message: string, ...args: any[]) => void;
|
|
14
|
+
warn: (message: string, ...args: any[]) => void;
|
|
15
|
+
debug: (message: string, ...args: any[]) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Register credential values that should be redacted from all log output.
|
|
19
|
+
* Call this after extracting credentials from tool calls.
|
|
20
|
+
*/
|
|
21
|
+
export declare function setCredentialValues(values: Set<string>): void;
|
|
22
|
+
export declare function createLogger(namespace: string): Logger;
|
|
23
|
+
/** Returns the path to the current log file (or null if file logging is disabled) */
|
|
24
|
+
export declare function getLogFilePath(): string | null;
|
|
25
|
+
/**
|
|
26
|
+
* Current byte size of the log file (0 if file logging is off). Snapshot this at
|
|
27
|
+
* execution start, then pass it to readLogSince() at completion to capture exactly
|
|
28
|
+
* the verbose lines written during that execution — used to ship cloud-runner
|
|
29
|
+
* per-execution debug logs to S3 (local desktop already keeps the same file on disk).
|
|
30
|
+
*/
|
|
31
|
+
export declare function currentLogOffset(): number;
|
|
32
|
+
/**
|
|
33
|
+
* Read the log file from `sinceOffset` to end, capped to the last `maxBytes` (keeps
|
|
34
|
+
* the tail — the most recent, most relevant lines — if the slice is huge). Returns
|
|
35
|
+
* '' when file logging is off or on any read error (best-effort — never throws).
|
|
36
|
+
*/
|
|
37
|
+
export declare function readLogSince(sinceOffset: number, maxBytes?: number): string;
|
|
38
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/vendor/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAChD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACjD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAChD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CAClD;AAKD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAE7D;AAuDD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAiDtD;AAED,qFAAqF;AACrF,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAQzC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,SAAkB,GAAG,MAAM,CAuBpF"}
|