@runcofactor/cli 0.15.0 → 0.15.1
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/dist/{account-22LMP5PX.js → account-62I7FG5G.js} +5 -5
- package/dist/{api-catalog-WTFQNLK6.js → api-catalog-CAJUASVC.js} +5 -5
- package/dist/{attachment-U3NKVPEY.js → attachment-RL4AZUJE.js} +5 -5
- package/dist/{augmentor-5GMNAX4M.js → augmentor-GAF3MFY6.js} +5 -5
- package/dist/{auth-VQG2CDUD.js → auth-DURHUZDW.js} +3 -3
- package/dist/{chunk-7VMO2WOZ.js → chunk-26U3DGUM.js} +2 -2
- package/dist/{chunk-JMJVGMXI.js → chunk-32P26BZT.js} +2 -2
- package/dist/chunk-32P26BZT.js.map +1 -0
- package/dist/{chunk-VGYN2KU2.js → chunk-5R4HMSNX.js} +69 -9
- package/dist/chunk-5R4HMSNX.js.map +1 -0
- package/dist/{chunk-46IUJXSD.js → chunk-AQPJQ5AE.js} +2 -2
- package/dist/{chunk-PRBRSIZP.js → chunk-CFJXYPTF.js} +3 -3
- package/dist/{chunk-UETBLPKM.js → chunk-CJEKEW7R.js} +3 -3
- package/dist/{chunk-CMGI7UZD.js → chunk-G5SXUXSU.js} +3 -3
- package/dist/{chunk-XJ5YYYGC.js → chunk-HKQ5XQAQ.js} +4 -4
- package/dist/{chunk-3X3NW7QA.js → chunk-IGHDIWZU.js} +2 -2
- package/dist/{chunk-JYGNMKZ5.js → chunk-IWKJQZJQ.js} +115 -92
- package/dist/chunk-IWKJQZJQ.js.map +1 -0
- package/dist/{chunk-KCHKFYVX.js → chunk-PXFDH6YL.js} +34 -1
- package/dist/{chunk-KCHKFYVX.js.map → chunk-PXFDH6YL.js.map} +1 -1
- package/dist/{chunk-HDFYUFBI.js → chunk-UZ2ZA5A6.js} +2 -2
- package/dist/{chunk-FNPMWDUQ.js → chunk-VKBTI5EF.js} +3 -3
- package/dist/{chunk-NHTEKEYE.js → chunk-ZXRVFFCY.js} +3 -3
- package/dist/{credential-E6KUHRGU.js → credential-JGVSEGVH.js} +5 -5
- package/dist/{credential-template-4GPOPBGD.js → credential-template-CWWMOKB2.js} +5 -5
- package/dist/{debug-workflow-XCLCY6S7.js → debug-workflow-BXRU72YZ.js} +5 -5
- package/dist/{docs-COCZYMW6.js → docs-PVBXPTGR.js} +5 -5
- package/dist/{doctor-ERIVTCQS.js → doctor-RHMKD4W5.js} +3 -3
- package/dist/{environment-7Y4BV6XY.js → environment-WZKIO3R3.js} +5 -5
- package/dist/{feature-flag-MHONEX6T.js → feature-flag-K5REGGDY.js} +5 -5
- package/dist/index.js +45 -45
- package/dist/{init-OROOM4HF.js → init-FFUZO5D7.js} +5 -5
- package/dist/{install-OJFXHY6U.js → install-XRKEQAFZ.js} +5 -5
- package/dist/{issues-32GONR6C.js → issues-I3V6GEXU.js} +5 -5
- package/dist/{knobs-UQGGY3CP.js → knobs-6WLJMB44.js} +5 -5
- package/dist/{list-ZMIKEC5P.js → list-PHC7VYNS.js} +5 -5
- package/dist/{local-PUD24GGQ.js → local-VGYRSW22.js} +7 -7
- package/dist/{login-BSO7YX2D.js → login-QPU2BKG2.js} +5 -5
- package/dist/{mcp-4LS7OJUT.js → mcp-LA452TOA.js} +8 -8
- package/dist/{product-3JKSJCBC.js → product-RSZV5HMB.js} +5 -5
- package/dist/{property-K5DBL4UE.js → property-YP4GHQAR.js} +5 -5
- package/dist/{psql-PQFUFTSE.js → psql-XGLBI6T7.js} +3 -3
- package/dist/{record-EIIYLFJ4.js → record-KWKHP2ZY.js} +6 -6
- package/dist/{redis-BU36EZZI.js → redis-VJGCUJPV.js} +3 -3
- package/dist/{release-LYC2P7DZ.js → release-NDRHPW6V.js} +5 -5
- package/dist/{sandbox-CKHXXZHU.js → sandbox-OOCANWOG.js} +5 -5
- package/dist/{scenarios-2XJ2G3KR.js → scenarios-2HRLCGFY.js} +5 -5
- package/dist/{session-UTOD5ZYH.js → session-M4ULYDYP.js} +7 -7
- package/dist/{skill-GMAERMQL.js → skill-4DGPRDUC.js} +2 -2
- package/dist/skills/optimize-cache/SKILL.md +17 -7
- package/dist/{spec-2NP36U3Y.js → spec-XZ2TKUFZ.js} +5 -5
- package/dist/{src-UEOOC425.js → src-2FK3JHGW.js} +24 -6
- package/dist/{src-UEOOC425.js.map → src-2FK3JHGW.js.map} +1 -1
- package/dist/{src-CG52HEE7.js → src-CV57ZD6I.js} +3 -3
- package/dist/{src-4T6GHXVO.js → src-HL7HEJIW.js} +2 -2
- package/dist/{src-PK5OZXCM.js → src-OU7544PM.js} +6 -4
- package/dist/{start-3C7EEFW2.js → start-IYKF3C3X.js} +5 -5
- package/dist/{tag-JSHOMLBR.js → tag-T45MMSCH.js} +6 -6
- package/dist/{task-YGWVYTBJ.js → task-MCUHAVTD.js} +5 -5
- package/dist/{test-suite-LI7ZH367.js → test-suite-BICBRSBP.js} +7 -7
- package/dist/{trace-UMLOSIIR.js → trace-2BAPMYAS.js} +6 -6
- package/dist/{triage-ZWJG4NBJ.js → triage-M3RZ2ASB.js} +6 -6
- package/dist/{upgrade-S7CGEK6H.js → upgrade-4QCRAUHP.js} +3 -3
- package/dist/{workflow-T4HSAOGW.js → workflow-4J23FV7K.js} +11 -11
- package/dist/{workflow-cache-XVEZ36KF.js → workflow-cache-XPSK6KC7.js} +26 -13
- package/dist/workflow-cache-XPSK6KC7.js.map +1 -0
- package/dist/{workflow-debug-T2BULXZ7.js → workflow-debug-W4USZH35.js} +8 -8
- package/dist/{workflow-proposals-XXEZICN2.js → workflow-proposals-5E3DTYZB.js} +5 -5
- package/package.json +5 -1
- package/dist/chunk-JMJVGMXI.js.map +0 -1
- package/dist/chunk-JYGNMKZ5.js.map +0 -1
- package/dist/chunk-VGYN2KU2.js.map +0 -1
- package/dist/workflow-cache-XVEZ36KF.js.map +0 -1
- /package/dist/{account-22LMP5PX.js.map → account-62I7FG5G.js.map} +0 -0
- /package/dist/{api-catalog-WTFQNLK6.js.map → api-catalog-CAJUASVC.js.map} +0 -0
- /package/dist/{attachment-U3NKVPEY.js.map → attachment-RL4AZUJE.js.map} +0 -0
- /package/dist/{augmentor-5GMNAX4M.js.map → augmentor-GAF3MFY6.js.map} +0 -0
- /package/dist/{auth-VQG2CDUD.js.map → auth-DURHUZDW.js.map} +0 -0
- /package/dist/{chunk-7VMO2WOZ.js.map → chunk-26U3DGUM.js.map} +0 -0
- /package/dist/{chunk-46IUJXSD.js.map → chunk-AQPJQ5AE.js.map} +0 -0
- /package/dist/{chunk-PRBRSIZP.js.map → chunk-CFJXYPTF.js.map} +0 -0
- /package/dist/{chunk-UETBLPKM.js.map → chunk-CJEKEW7R.js.map} +0 -0
- /package/dist/{chunk-CMGI7UZD.js.map → chunk-G5SXUXSU.js.map} +0 -0
- /package/dist/{chunk-XJ5YYYGC.js.map → chunk-HKQ5XQAQ.js.map} +0 -0
- /package/dist/{chunk-3X3NW7QA.js.map → chunk-IGHDIWZU.js.map} +0 -0
- /package/dist/{chunk-HDFYUFBI.js.map → chunk-UZ2ZA5A6.js.map} +0 -0
- /package/dist/{chunk-FNPMWDUQ.js.map → chunk-VKBTI5EF.js.map} +0 -0
- /package/dist/{chunk-NHTEKEYE.js.map → chunk-ZXRVFFCY.js.map} +0 -0
- /package/dist/{credential-E6KUHRGU.js.map → credential-JGVSEGVH.js.map} +0 -0
- /package/dist/{credential-template-4GPOPBGD.js.map → credential-template-CWWMOKB2.js.map} +0 -0
- /package/dist/{debug-workflow-XCLCY6S7.js.map → debug-workflow-BXRU72YZ.js.map} +0 -0
- /package/dist/{docs-COCZYMW6.js.map → docs-PVBXPTGR.js.map} +0 -0
- /package/dist/{doctor-ERIVTCQS.js.map → doctor-RHMKD4W5.js.map} +0 -0
- /package/dist/{environment-7Y4BV6XY.js.map → environment-WZKIO3R3.js.map} +0 -0
- /package/dist/{feature-flag-MHONEX6T.js.map → feature-flag-K5REGGDY.js.map} +0 -0
- /package/dist/{init-OROOM4HF.js.map → init-FFUZO5D7.js.map} +0 -0
- /package/dist/{install-OJFXHY6U.js.map → install-XRKEQAFZ.js.map} +0 -0
- /package/dist/{issues-32GONR6C.js.map → issues-I3V6GEXU.js.map} +0 -0
- /package/dist/{knobs-UQGGY3CP.js.map → knobs-6WLJMB44.js.map} +0 -0
- /package/dist/{list-ZMIKEC5P.js.map → list-PHC7VYNS.js.map} +0 -0
- /package/dist/{local-PUD24GGQ.js.map → local-VGYRSW22.js.map} +0 -0
- /package/dist/{login-BSO7YX2D.js.map → login-QPU2BKG2.js.map} +0 -0
- /package/dist/{mcp-4LS7OJUT.js.map → mcp-LA452TOA.js.map} +0 -0
- /package/dist/{product-3JKSJCBC.js.map → product-RSZV5HMB.js.map} +0 -0
- /package/dist/{property-K5DBL4UE.js.map → property-YP4GHQAR.js.map} +0 -0
- /package/dist/{psql-PQFUFTSE.js.map → psql-XGLBI6T7.js.map} +0 -0
- /package/dist/{record-EIIYLFJ4.js.map → record-KWKHP2ZY.js.map} +0 -0
- /package/dist/{redis-BU36EZZI.js.map → redis-VJGCUJPV.js.map} +0 -0
- /package/dist/{release-LYC2P7DZ.js.map → release-NDRHPW6V.js.map} +0 -0
- /package/dist/{sandbox-CKHXXZHU.js.map → sandbox-OOCANWOG.js.map} +0 -0
- /package/dist/{scenarios-2XJ2G3KR.js.map → scenarios-2HRLCGFY.js.map} +0 -0
- /package/dist/{session-UTOD5ZYH.js.map → session-M4ULYDYP.js.map} +0 -0
- /package/dist/{skill-GMAERMQL.js.map → skill-4DGPRDUC.js.map} +0 -0
- /package/dist/{spec-2NP36U3Y.js.map → spec-XZ2TKUFZ.js.map} +0 -0
- /package/dist/{src-CG52HEE7.js.map → src-CV57ZD6I.js.map} +0 -0
- /package/dist/{src-4T6GHXVO.js.map → src-HL7HEJIW.js.map} +0 -0
- /package/dist/{src-PK5OZXCM.js.map → src-OU7544PM.js.map} +0 -0
- /package/dist/{start-3C7EEFW2.js.map → start-IYKF3C3X.js.map} +0 -0
- /package/dist/{tag-JSHOMLBR.js.map → tag-T45MMSCH.js.map} +0 -0
- /package/dist/{task-YGWVYTBJ.js.map → task-MCUHAVTD.js.map} +0 -0
- /package/dist/{test-suite-LI7ZH367.js.map → test-suite-BICBRSBP.js.map} +0 -0
- /package/dist/{trace-UMLOSIIR.js.map → trace-2BAPMYAS.js.map} +0 -0
- /package/dist/{triage-ZWJG4NBJ.js.map → triage-M3RZ2ASB.js.map} +0 -0
- /package/dist/{upgrade-S7CGEK6H.js.map → upgrade-4QCRAUHP.js.map} +0 -0
- /package/dist/{workflow-T4HSAOGW.js.map → workflow-4J23FV7K.js.map} +0 -0
- /package/dist/{workflow-debug-T2BULXZ7.js.map → workflow-debug-W4USZH35.js.map} +0 -0
- /package/dist/{workflow-proposals-XXEZICN2.js.map → workflow-proposals-5E3DTYZB.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __cr } from "module"; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
packageName
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-32P26BZT.js";
|
|
5
5
|
|
|
6
6
|
// src/update-check.ts
|
|
7
7
|
import fs from "fs/promises";
|
|
@@ -85,4 +85,4 @@ export {
|
|
|
85
85
|
checkForUpdate,
|
|
86
86
|
clearUpdateCache
|
|
87
87
|
};
|
|
88
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-AQPJQ5AE.js.map
|
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
} from "./chunk-3CZU7XCS.js";
|
|
7
7
|
import {
|
|
8
8
|
getArgValue
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-IGHDIWZU.js";
|
|
10
10
|
import {
|
|
11
11
|
getCanaryTmpDir
|
|
12
12
|
} from "./chunk-JWHYXEA2.js";
|
|
13
13
|
import {
|
|
14
14
|
VALID_MACRO_NAMES
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-IWKJQZJQ.js";
|
|
16
16
|
|
|
17
17
|
// src/cli-helpers.ts
|
|
18
18
|
import fs from "fs/promises";
|
|
@@ -356,4 +356,4 @@ export {
|
|
|
356
356
|
uploadStorageState,
|
|
357
357
|
fetchList
|
|
358
358
|
};
|
|
359
|
-
//# sourceMappingURL=chunk-
|
|
359
|
+
//# sourceMappingURL=chunk-CFJXYPTF.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createRequire as __cr } from "module"; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
isTriageEnabledForExecution
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ZXRVFFCY.js";
|
|
5
5
|
import {
|
|
6
6
|
resolveConfig
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-IGHDIWZU.js";
|
|
8
8
|
|
|
9
9
|
// src/remote-test.ts
|
|
10
10
|
import process from "process";
|
|
@@ -395,4 +395,4 @@ async function runRemoteTest(argv) {
|
|
|
395
395
|
export {
|
|
396
396
|
runRemoteTest
|
|
397
397
|
};
|
|
398
|
-
//# sourceMappingURL=chunk-
|
|
398
|
+
//# sourceMappingURL=chunk-CJEKEW7R.js.map
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
envToProfile,
|
|
5
5
|
getArgValue,
|
|
6
6
|
saveAuth
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-IGHDIWZU.js";
|
|
8
8
|
import {
|
|
9
9
|
readBrandEnv
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-32P26BZT.js";
|
|
11
11
|
|
|
12
12
|
// src/login.ts
|
|
13
13
|
import process from "process";
|
|
@@ -195,4 +195,4 @@ export {
|
|
|
195
195
|
switchOrg,
|
|
196
196
|
runLogin
|
|
197
197
|
};
|
|
198
|
-
//# sourceMappingURL=chunk-
|
|
198
|
+
//# sourceMappingURL=chunk-G5SXUXSU.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createRequire as __cr } from "module"; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
getArgValue
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IGHDIWZU.js";
|
|
5
5
|
import {
|
|
6
6
|
formatSemanticSnapshot
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-5R4HMSNX.js";
|
|
8
8
|
|
|
9
9
|
// src/trace.ts
|
|
10
10
|
import fs from "fs";
|
|
@@ -55,7 +55,7 @@ async function runTraceSnapshot(argv) {
|
|
|
55
55
|
process.exit(1);
|
|
56
56
|
}
|
|
57
57
|
const filter = filterArg;
|
|
58
|
-
const { reconstructSnapshots, downloadTrace, cleanupTrace } = await import("./src-
|
|
58
|
+
const { reconstructSnapshots, downloadTrace, cleanupTrace } = await import("./src-OU7544PM.js");
|
|
59
59
|
let localPath = tracePath;
|
|
60
60
|
let isTemp = false;
|
|
61
61
|
if (tracePath.startsWith("http://") || tracePath.startsWith("https://")) {
|
|
@@ -175,4 +175,4 @@ function slugify(text) {
|
|
|
175
175
|
export {
|
|
176
176
|
runTrace
|
|
177
177
|
};
|
|
178
|
-
//# sourceMappingURL=chunk-
|
|
178
|
+
//# sourceMappingURL=chunk-HKQ5XQAQ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __cr } from "module"; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
readBrandEnv
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-32P26BZT.js";
|
|
5
5
|
|
|
6
6
|
// src/auth.ts
|
|
7
7
|
import fs from "fs/promises";
|
|
@@ -170,4 +170,4 @@ export {
|
|
|
170
170
|
resolveConfig,
|
|
171
171
|
resolveOptionalConfig
|
|
172
172
|
};
|
|
173
|
-
//# sourceMappingURL=chunk-
|
|
173
|
+
//# sourceMappingURL=chunk-IGHDIWZU.js.map
|
|
@@ -95,7 +95,7 @@ function normalizeNodeType(input) {
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
// ../types/src/index.ts
|
|
98
|
-
import { z as
|
|
98
|
+
import { z as z7 } from "zod";
|
|
99
99
|
|
|
100
100
|
// ../types/src/credentials.ts
|
|
101
101
|
import { z } from "zod";
|
|
@@ -213,21 +213,15 @@ var RecordIssueOccurrencePayloadSchema = z2.object({
|
|
|
213
213
|
ticketDiagnosticsAnalysis: requiredLimitedString("Ticket diagnostics analysis", DIAGNOSTIC_LIMIT)
|
|
214
214
|
});
|
|
215
215
|
|
|
216
|
-
// ../types/src/
|
|
217
|
-
|
|
216
|
+
// ../types/src/workflow-cache.ts
|
|
217
|
+
import { z as z5 } from "zod";
|
|
218
218
|
|
|
219
|
-
// ../types/src/
|
|
220
|
-
import { z as
|
|
221
|
-
var benchmarkWorkflowSuiteConfigSchema = z3.object({
|
|
222
|
-
runsPerWorkflow: z3.number().int().min(1).max(20).optional(),
|
|
223
|
-
runTimeoutMinutes: z3.number().int().min(1).max(720).optional(),
|
|
224
|
-
suiteTimeoutHours: z3.number().int().min(1).max(24).optional(),
|
|
225
|
-
sendSlackSummary: z3.boolean().optional()
|
|
226
|
-
});
|
|
219
|
+
// ../types/src/workflow-node-schemas.ts
|
|
220
|
+
import { z as z4 } from "zod";
|
|
227
221
|
|
|
228
222
|
// ../types/src/api-sequence.ts
|
|
229
|
-
import { z as
|
|
230
|
-
var ValidationOperatorSchema =
|
|
223
|
+
import { z as z3 } from "zod";
|
|
224
|
+
var ValidationOperatorSchema = z3.enum([
|
|
231
225
|
"equals",
|
|
232
226
|
"not_equals",
|
|
233
227
|
"gt",
|
|
@@ -240,6 +234,99 @@ var ValidationOperatorSchema = z4.enum([
|
|
|
240
234
|
"is_not_set"
|
|
241
235
|
]);
|
|
242
236
|
|
|
237
|
+
// ../types/src/workflow-node-schemas.ts
|
|
238
|
+
var FormFieldSchema = z4.object({
|
|
239
|
+
name: z4.string().describe('Unique field identifier (snake_case, e.g., "search_query", "recipient_email")'),
|
|
240
|
+
label: z4.string().describe('Human-friendly label (e.g., "Search Query", "Recipient Email")'),
|
|
241
|
+
type: z4.enum([
|
|
242
|
+
"text",
|
|
243
|
+
"email",
|
|
244
|
+
"password",
|
|
245
|
+
"number",
|
|
246
|
+
"textarea",
|
|
247
|
+
"select",
|
|
248
|
+
"checkbox",
|
|
249
|
+
"multiselect",
|
|
250
|
+
"file"
|
|
251
|
+
]).optional().describe('Input type, defaults to "text"'),
|
|
252
|
+
required: z4.boolean().optional().describe("Whether this field is required"),
|
|
253
|
+
value: z4.string().describe("The value to use for this field"),
|
|
254
|
+
options: z4.array(z4.object({ value: z4.string(), label: z4.string() })).optional().describe("If type is select/multiselect, provide allowed options here")
|
|
255
|
+
});
|
|
256
|
+
var AssertionSeverityEnum = z4.enum(["warn", "fail", "fatal"]);
|
|
257
|
+
var InlineAssertionSchema = z4.object({
|
|
258
|
+
condition: z4.string().describe("What to verify after the action"),
|
|
259
|
+
severity: AssertionSeverityEnum.describe(
|
|
260
|
+
"fatal = stop the test immediately on failure, fail = mark the run failed but keep going, warn = log a warning and continue (run still passes)"
|
|
261
|
+
),
|
|
262
|
+
agentic: z4.boolean().optional().describe("true if requires visual/complex evaluation that cannot be cached")
|
|
263
|
+
});
|
|
264
|
+
var ConditionSubjectSchema = z4.discriminatedUnion("kind", [
|
|
265
|
+
z4.object({
|
|
266
|
+
kind: z4.literal("variable"),
|
|
267
|
+
name: z4.string().describe('Input/variable name, e.g. "count" for $var.count')
|
|
268
|
+
}),
|
|
269
|
+
z4.object({
|
|
270
|
+
kind: z4.literal("acting_as")
|
|
271
|
+
})
|
|
272
|
+
]);
|
|
273
|
+
var ConditionPredicateSchema = z4.object({
|
|
274
|
+
subject: ConditionSubjectSchema,
|
|
275
|
+
operator: ValidationOperatorSchema,
|
|
276
|
+
/**
|
|
277
|
+
* Right-hand operand. For a `variable` subject this is a literal (or `$var`
|
|
278
|
+
* reference); for `acting_as` it is a credential template id. Omitted for the
|
|
279
|
+
* unary operators `is_set` / `is_not_set`.
|
|
280
|
+
*/
|
|
281
|
+
value: z4.string().optional()
|
|
282
|
+
});
|
|
283
|
+
var NodeTypeEnum = z4.enum([
|
|
284
|
+
"login",
|
|
285
|
+
"navigate",
|
|
286
|
+
"action",
|
|
287
|
+
"assertion",
|
|
288
|
+
"seed",
|
|
289
|
+
"setup",
|
|
290
|
+
"wait",
|
|
291
|
+
"condition",
|
|
292
|
+
"api_sequence",
|
|
293
|
+
"end",
|
|
294
|
+
"notification",
|
|
295
|
+
"audio",
|
|
296
|
+
"audio-assertion",
|
|
297
|
+
"sandbox_action"
|
|
298
|
+
]);
|
|
299
|
+
|
|
300
|
+
// ../types/src/workflow-cache.ts
|
|
301
|
+
var assertionSpecSchema = z5.object({
|
|
302
|
+
type: z5.enum([
|
|
303
|
+
"text_present",
|
|
304
|
+
"text_absent",
|
|
305
|
+
"element_visible",
|
|
306
|
+
"element_hidden",
|
|
307
|
+
"evaluate",
|
|
308
|
+
"toast_present"
|
|
309
|
+
]),
|
|
310
|
+
condition: z5.string(),
|
|
311
|
+
expected: z5.unknown().optional(),
|
|
312
|
+
strict: z5.boolean().optional(),
|
|
313
|
+
severity: AssertionSeverityEnum.optional(),
|
|
314
|
+
inlineAssertionId: z5.string().optional(),
|
|
315
|
+
label: z5.string().optional()
|
|
316
|
+
});
|
|
317
|
+
|
|
318
|
+
// ../types/src/local-browser.ts
|
|
319
|
+
var SESSION_EXPIRATION_MS = 60 * 60 * 1e3;
|
|
320
|
+
|
|
321
|
+
// ../types/src/benchmark.ts
|
|
322
|
+
import { z as z6 } from "zod";
|
|
323
|
+
var benchmarkWorkflowSuiteConfigSchema = z6.object({
|
|
324
|
+
runsPerWorkflow: z6.number().int().min(1).max(20).optional(),
|
|
325
|
+
runTimeoutMinutes: z6.number().int().min(1).max(720).optional(),
|
|
326
|
+
suiteTimeoutHours: z6.number().int().min(1).max(24).optional(),
|
|
327
|
+
sendSlackSummary: z6.boolean().optional()
|
|
328
|
+
});
|
|
329
|
+
|
|
243
330
|
// ../types/src/sandbox-tasks.ts
|
|
244
331
|
var CHECKLIST_ITEMS = [
|
|
245
332
|
{
|
|
@@ -450,70 +537,6 @@ var VALID_MACRO_NAMES = new Set(MACRO_CATALOG.map((m) => m.name));
|
|
|
450
537
|
var MACRO_ARG_COUNTS = new Map(MACRO_CATALOG.map((m) => [m.name, m.args.length]));
|
|
451
538
|
var MACRO_PATTERN = /(?<!\\)\$([A-Z_]+)\(([^)]*)\)/g;
|
|
452
539
|
|
|
453
|
-
// ../types/src/workflow-node-schemas.ts
|
|
454
|
-
import { z as z5 } from "zod";
|
|
455
|
-
var FormFieldSchema = z5.object({
|
|
456
|
-
name: z5.string().describe('Unique field identifier (snake_case, e.g., "search_query", "recipient_email")'),
|
|
457
|
-
label: z5.string().describe('Human-friendly label (e.g., "Search Query", "Recipient Email")'),
|
|
458
|
-
type: z5.enum([
|
|
459
|
-
"text",
|
|
460
|
-
"email",
|
|
461
|
-
"password",
|
|
462
|
-
"number",
|
|
463
|
-
"textarea",
|
|
464
|
-
"select",
|
|
465
|
-
"checkbox",
|
|
466
|
-
"multiselect",
|
|
467
|
-
"file"
|
|
468
|
-
]).optional().describe('Input type, defaults to "text"'),
|
|
469
|
-
required: z5.boolean().optional().describe("Whether this field is required"),
|
|
470
|
-
value: z5.string().describe("The value to use for this field"),
|
|
471
|
-
options: z5.array(z5.object({ value: z5.string(), label: z5.string() })).optional().describe("If type is select/multiselect, provide allowed options here")
|
|
472
|
-
});
|
|
473
|
-
var AssertionSeverityEnum = z5.enum(["warn", "fail", "fatal"]);
|
|
474
|
-
var InlineAssertionSchema = z5.object({
|
|
475
|
-
condition: z5.string().describe("What to verify after the action"),
|
|
476
|
-
severity: AssertionSeverityEnum.describe(
|
|
477
|
-
"fatal = stop the test immediately on failure, fail = mark the run failed but keep going, warn = log a warning and continue (run still passes)"
|
|
478
|
-
),
|
|
479
|
-
agentic: z5.boolean().optional().describe("true if requires visual/complex evaluation that cannot be cached")
|
|
480
|
-
});
|
|
481
|
-
var ConditionSubjectSchema = z5.discriminatedUnion("kind", [
|
|
482
|
-
z5.object({
|
|
483
|
-
kind: z5.literal("variable"),
|
|
484
|
-
name: z5.string().describe('Input/variable name, e.g. "count" for $var.count')
|
|
485
|
-
}),
|
|
486
|
-
z5.object({
|
|
487
|
-
kind: z5.literal("acting_as")
|
|
488
|
-
})
|
|
489
|
-
]);
|
|
490
|
-
var ConditionPredicateSchema = z5.object({
|
|
491
|
-
subject: ConditionSubjectSchema,
|
|
492
|
-
operator: ValidationOperatorSchema,
|
|
493
|
-
/**
|
|
494
|
-
* Right-hand operand. For a `variable` subject this is a literal (or `$var`
|
|
495
|
-
* reference); for `acting_as` it is a credential template id. Omitted for the
|
|
496
|
-
* unary operators `is_set` / `is_not_set`.
|
|
497
|
-
*/
|
|
498
|
-
value: z5.string().optional()
|
|
499
|
-
});
|
|
500
|
-
var NodeTypeEnum = z5.enum([
|
|
501
|
-
"login",
|
|
502
|
-
"navigate",
|
|
503
|
-
"action",
|
|
504
|
-
"assertion",
|
|
505
|
-
"seed",
|
|
506
|
-
"setup",
|
|
507
|
-
"wait",
|
|
508
|
-
"condition",
|
|
509
|
-
"api_sequence",
|
|
510
|
-
"end",
|
|
511
|
-
"notification",
|
|
512
|
-
"audio",
|
|
513
|
-
"audio-assertion",
|
|
514
|
-
"sandbox_action"
|
|
515
|
-
]);
|
|
516
|
-
|
|
517
540
|
// ../types/src/browser-viewport.ts
|
|
518
541
|
var BROWSER_VIEWPORT_PRESETS = {
|
|
519
542
|
desktop: { label: "Desktop", width: 1280, height: 800, device: "desktop" },
|
|
@@ -607,24 +630,24 @@ function isPositiveIntegerString(value) {
|
|
|
607
630
|
if (!value || !/^\d+$/.test(value)) return false;
|
|
608
631
|
return Number(value) > 0;
|
|
609
632
|
}
|
|
610
|
-
var playbookStepAgentSchema =
|
|
611
|
-
order:
|
|
612
|
-
action:
|
|
633
|
+
var playbookStepAgentSchema = z7.object({
|
|
634
|
+
order: z7.number().describe("Step number (1-based)."),
|
|
635
|
+
action: z7.enum(PLAYBOOK_STEP_ACTIONS).describe(
|
|
613
636
|
'The type of browser interaction. PREFER DETERMINISTIC VERBS even when verbose \u2014 three deterministic steps beat one agentic step, because deterministic steps replay via Playwright with no agent dispatch. Each replayable playbook step must be 1:1 with an exposed browser tool you actually used and must correspond to zero or one recorded actionRef. If you cannot accomplish the intent with the browser tools you have, do not add a playbook step for it; report the limitation outside playbookSteps. Do not summarize several recorded actions into one "other" step; report the same 1:1 browser primitives you actually used. The only multi-field exception is one fill_form step for one browser_fill_form action. Use "verify" for assertion checks \u2014 both inline assertions and completion assertions proving the action succeeded. Use "verify" for inspection language such as "inspect whether", "confirm", "observe", or "check" when the result is visible in the DOM. Use "capture" instead only when the observed value is needed by later steps. Use "fill" for single-field inputs. Use "fill_form" when browser_fill_form was called to fill multiple fields at once \u2014 one fill_form step per call. Use "click" for checkboxes, switches, toggle buttons, and click-to-focus interactions. There is no separate "toggle" or "focus" action. Use "upload" for file upload actions, including generated CSV/file, attach file, choose file, import file, and document/image attachment intents (browser_action action="upload"). Set params.path to the staged attachment handle, generated file variable, or filename reference used by the upload tool (e.g. {path: "$var.csv_file"}), and include actionRefs pointing to the recorded file_upload action. Do NOT use "other" for file attachment/upload/import intents. Use "scroll" only when scrolling is the user-visible action being tested; routine browser_scroll calls for visibility, inspection, or video framing are observation steps and should usually be omitted from playbookSteps. Use "press_key" for keyboard actions (Enter, Escape, Tab, arrows). Use "press_key" with params.key="Escape" to dismiss a popover, dropdown, panel, or modal when Escape was the recorded action; use "click" if the recorded action clicked a close button or outside target. There is no separate "dismiss" action. Use "drag" for drag-and-drop interactions. Use "resize" when browser_resize was used to resize the viewport. Set params.width and params.height to positive integer pixel values and include the actionRef pointing to the recorded resize action. Use "capture" to extract app-generated values (IDs, codes, URLs) for later steps via $var.name, but only from a visible DOM target or the current URL. Do not capture from performance/network timing, storage, hidden DOM, or app-global state. Use "screenshot" only when browser_screenshot itself is the requested evidence capture. Set params.label when a label was used, optionally params.fullPage="true". Do not use screenshot for routine visual checks after actions; use verify when a browser_assert proves visible state. Use "extract_table" when browser_extract_table was used to extract tabular data from the page. Use "python_execute" when python_execute was used with cache_label to run a data validation script. Use "verify_download" when browser_download(action="list") / browser_list_downloads proves that a file matching some pattern was downloaded. Set params.pattern to a glob (supports *, ?) or substring; optionally params.timeoutMs. This is currently agent-only at replay, so do not set actionRefs. Use "verify_download_content" when browser_download(action="read") / browser_read_download content proves CSV headers, PDF text, exported rows, or similar downloaded-file content. Set params.contains or params.pattern to the expected content predicate. This is currently agent-only at replay, so do not set actionRefs. Use "agent_loop" ONLY when the action set is genuinely unknown until runtime \u2014 variable count of items (e.g. "toggle row checkboxes until 3 selected"), conditional retry that depends on UI state, or a runtime predicate over non-DOM state. Set params.goal to a one-sentence checkable predicate (e.g. params.goal = "3 grid row checkboxes are selected"). DO NOT use agent_loop for: known-N iteration (write N deterministic steps), single click that might double-fire (use "click"), retry-on-flake (the runtime handles that). agent_loop steps replay via a Playwright override authored after first run; they are non-deterministic on first run, so the bar is high. Network/devtools/API inspections and unsupported browser environment mutations are diagnostic-only unless there is an exposed browser tool for the action. If visible page state proves the condition, record that as "verify"; otherwise omit the diagnostic observation from playbookSteps. Do not use "other". If no concrete browser-tool-backed action above fits, omit the observation from playbookSteps and report the limitation outside the playbook.'
|
|
614
637
|
),
|
|
615
|
-
target:
|
|
638
|
+
target: z7.string().describe(
|
|
616
639
|
`Human-readable element description using visible labels, placeholders, or aria-labels. Examples: "'Submit' button", "'Email' input field", "'Status' dropdown". For upload actions, describe the file input and include the attachment name (e.g. "CSV file input for 'testing-checklist.csv'"). Never use coordinates, ref IDs, or internal identifiers.`
|
|
617
640
|
),
|
|
618
|
-
params:
|
|
641
|
+
params: z7.record(z7.string(), z7.string()).optional().describe(
|
|
619
642
|
'Data values using $var.name references and $MACRO() expressions \u2014 NEVER hard-coded literals. Common keys: value (for fill: {value: "$EMAIL()"}), option (for select: {option: "Admin"} \u2014 fixed app constants like dropdown options are allowed as literals), url (for navigate: {url: "$var.target_url"}), path (for upload: {path: "$var.file_path"}), key (for press_key: {key: "Enter"}, {key: "Escape"}), width and height (for resize: {width: "390", height: "844"}), label and fullPage (for screenshot: {label: "seats-table", fullPage: "true"}), pattern or contains (for download verification: {pattern: "report-*.csv"} or {contains: "Expected Header"}), expression + saveAs (for capture: prefer a visible DOM ref expression or "() => window.location.href"; do not use performance.getEntries() or other network/storage/global state; e.g. {saveAs: "order_confirmation_id"}). For fill_form: keys are field names from the fill_form call, values are $var.name or $MACRO() (e.g. {company: "$var.company", email: "$EMAIL()"}). Available macros: $UUID(), $EMAIL(), $FIRST_NAME(), $LAST_NAME(), $PHONE(), $RANDOM_STRING(n), $RANDOM_INT(min,max), $TODAY(), $DATE(days), $NOW(), $TIMESTAMP(), $SEQUENCE("name").'
|
|
620
643
|
),
|
|
621
|
-
note:
|
|
644
|
+
note: z7.string().optional().describe(
|
|
622
645
|
'Timing or quirk notes ONLY (e.g. "Wait 1s for modal animation", "Scroll into view first"). Do NOT put data values, optional markers, or verification notes here.'
|
|
623
646
|
),
|
|
624
|
-
actionRefs:
|
|
647
|
+
actionRefs: z7.array(z7.number()).max(1).optional().describe(
|
|
625
648
|
'Zero or one recorded browser action index that corresponds to this playbook step. Interaction tools, browser_resize, capture evaluates (browser_evaluate with saveAs), and browser_assert produce [Action #N] tags \u2014 collect those indices here. Read-only browser_snapshot and plain browser_evaluate without saveAs do NOT produce action indices. browser_scroll and browser_screenshot may produce action indices when they are the primary requested tool call; omit actionRefs when no action tag was emitted. If you took multiple cacheable UI actions, report multiple 1:1 playbook steps instead of putting multiple refs on one step or summarizing them as "other". A fill_form call is a single action \u2014 use one fill_form playbook step with one actionRef. For a click that triggers a native dialog, keep one click actionRef on the click step and set expectedDialogs rather than adding a separate dialog actionRef. Actions not referenced by any playbook step are considered exploratory and will be discarded by the cache compiler.'
|
|
626
649
|
),
|
|
627
|
-
expectedDialogs:
|
|
650
|
+
expectedDialogs: z7.enum(["accept", "dismiss"]).optional().describe(
|
|
628
651
|
'Set when this step is known to fire a native browser dialog (alert/confirm/prompt) \u2014 e.g. clicking a "Delete" button that prompts "Are you sure?". On replay the runtime pre-arms the dialog handler with this action automatically. In free-form runs, you should call the dialog tool (browser_dialog for consolidated tools, browser_handle_dialog for legacy tools) with this action immediately before the step. Do not add a separate dialog step \u2014 keeping the pre-arm on the triggering step keeps the pre-arm and the triggering action in one place.'
|
|
629
652
|
)
|
|
630
653
|
}).superRefine((step, ctx) => {
|
|
@@ -632,7 +655,7 @@ var playbookStepAgentSchema = z6.object({
|
|
|
632
655
|
const goal = step.params?.goal;
|
|
633
656
|
if (!goal || goal.trim().length === 0) {
|
|
634
657
|
ctx.addIssue({
|
|
635
|
-
code:
|
|
658
|
+
code: z7.ZodIssueCode.custom,
|
|
636
659
|
path: ["params", "goal"],
|
|
637
660
|
message: 'agent_loop steps must set params.goal to a one-sentence checkable predicate (e.g. "3 grid row checkboxes are selected").'
|
|
638
661
|
});
|
|
@@ -642,7 +665,7 @@ var playbookStepAgentSchema = z6.object({
|
|
|
642
665
|
const pattern = step.params?.pattern;
|
|
643
666
|
if (!pattern || pattern.trim().length === 0) {
|
|
644
667
|
ctx.addIssue({
|
|
645
|
-
code:
|
|
668
|
+
code: z7.ZodIssueCode.custom,
|
|
646
669
|
path: ["params", "pattern"],
|
|
647
670
|
message: "verify_download steps must set params.pattern to a glob (supports *, ?) or substring matching the expected filename."
|
|
648
671
|
});
|
|
@@ -653,7 +676,7 @@ var playbookStepAgentSchema = z6.object({
|
|
|
653
676
|
const contains = step.params?.contains;
|
|
654
677
|
if ((!pattern || pattern.trim().length === 0) && (!contains || contains.trim().length === 0)) {
|
|
655
678
|
ctx.addIssue({
|
|
656
|
-
code:
|
|
679
|
+
code: z7.ZodIssueCode.custom,
|
|
657
680
|
path: ["params"],
|
|
658
681
|
message: "verify_download_content steps must set params.contains or params.pattern for the expected downloaded content."
|
|
659
682
|
});
|
|
@@ -664,14 +687,14 @@ var playbookStepAgentSchema = z6.object({
|
|
|
664
687
|
const height = step.params?.height;
|
|
665
688
|
if (!isPositiveIntegerString(width)) {
|
|
666
689
|
ctx.addIssue({
|
|
667
|
-
code:
|
|
690
|
+
code: z7.ZodIssueCode.custom,
|
|
668
691
|
path: ["params", "width"],
|
|
669
692
|
message: "resize steps must set params.width to a positive integer pixel value."
|
|
670
693
|
});
|
|
671
694
|
}
|
|
672
695
|
if (!isPositiveIntegerString(height)) {
|
|
673
696
|
ctx.addIssue({
|
|
674
|
-
code:
|
|
697
|
+
code: z7.ZodIssueCode.custom,
|
|
675
698
|
path: ["params", "height"],
|
|
676
699
|
message: "resize steps must set params.height to a positive integer pixel value."
|
|
677
700
|
});
|
|
@@ -681,16 +704,16 @@ var playbookStepAgentSchema = z6.object({
|
|
|
681
704
|
|
|
682
705
|
export {
|
|
683
706
|
USER_SETTABLE_WORKFLOW_STATUSES,
|
|
707
|
+
InlineAssertionSchema,
|
|
684
708
|
INSTANCE_SIZES,
|
|
685
709
|
INSTANCE_SIZE_SPEC,
|
|
686
710
|
parseInstanceSize,
|
|
687
711
|
VALID_MACRO_NAMES,
|
|
688
712
|
MACRO_PATTERN,
|
|
689
|
-
InlineAssertionSchema,
|
|
690
713
|
NODE_TYPE_LABEL,
|
|
691
714
|
normalizeNodeType,
|
|
692
715
|
isVolatileIdentifier,
|
|
693
716
|
stableIdentifierPrefix,
|
|
694
717
|
stableAttrSelector
|
|
695
718
|
};
|
|
696
|
-
//# sourceMappingURL=chunk-
|
|
719
|
+
//# sourceMappingURL=chunk-IWKJQZJQ.js.map
|