neuron-inspector 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/compound-tools.js +2 -136
  2. package/dist/compound-tools.js.map +1 -1
  3. package/dist/monitor.js +208 -7
  4. package/dist/monitor.js.map +1 -1
  5. package/dist/recipe-tools.js +6 -39
  6. package/dist/recipe-tools.js.map +1 -1
  7. package/dist/recipes.d.ts +0 -4
  8. package/dist/recipes.js +3 -49
  9. package/dist/recipes.js.map +1 -1
  10. package/dist/server.js +53 -166
  11. package/dist/server.js.map +1 -1
  12. package/dist/tools.js +0 -26
  13. package/dist/tools.js.map +1 -1
  14. package/package.json +3 -4
  15. package/recipes/linkedin-outreach/learnings.md +1 -17
  16. package/recipes/planner/agent.md +1 -66
  17. package/recipes/planner/learnings.md +1 -49
  18. package/recipes/social-ops/learnings.md +13 -33
  19. package/dist/__tests__/monitor.test.d.ts +0 -1
  20. package/dist/__tests__/monitor.test.js +0 -286
  21. package/dist/__tests__/monitor.test.js.map +0 -1
  22. package/dist/__tests__/recipes.test.d.ts +0 -1
  23. package/dist/__tests__/recipes.test.js +0 -415
  24. package/dist/__tests__/recipes.test.js.map +0 -1
  25. package/dist/__tests__/scheduler.test.d.ts +0 -1
  26. package/dist/__tests__/scheduler.test.js +0 -316
  27. package/dist/__tests__/scheduler.test.js.map +0 -1
  28. package/dist/__tests__/session-state.test.d.ts +0 -1
  29. package/dist/__tests__/session-state.test.js +0 -335
  30. package/dist/__tests__/session-state.test.js.map +0 -1
  31. package/dist/collections/__tests__/assertions.test.d.ts +0 -1
  32. package/dist/collections/__tests__/assertions.test.js +0 -203
  33. package/dist/collections/__tests__/assertions.test.js.map +0 -1
  34. package/dist/collections/__tests__/dynamic-vars.test.d.ts +0 -1
  35. package/dist/collections/__tests__/dynamic-vars.test.js +0 -169
  36. package/dist/collections/__tests__/dynamic-vars.test.js.map +0 -1
  37. package/dist/collections/__tests__/execution.test.d.ts +0 -1
  38. package/dist/collections/__tests__/execution.test.js +0 -271
  39. package/dist/collections/__tests__/execution.test.js.map +0 -1
  40. package/dist/collections/__tests__/integration.test.d.ts +0 -1
  41. package/dist/collections/__tests__/integration.test.js +0 -478
  42. package/dist/collections/__tests__/integration.test.js.map +0 -1
  43. package/dist/collections/__tests__/resolver.test.d.ts +0 -1
  44. package/dist/collections/__tests__/resolver.test.js +0 -282
  45. package/dist/collections/__tests__/resolver.test.js.map +0 -1
  46. package/dist/collections/__tests__/scenario.test.d.ts +0 -1
  47. package/dist/collections/__tests__/scenario.test.js +0 -367
  48. package/dist/collections/__tests__/scenario.test.js.map +0 -1
  49. package/dist/collections/__tests__/scripts.test.d.ts +0 -1
  50. package/dist/collections/__tests__/scripts.test.js +0 -245
  51. package/dist/collections/__tests__/scripts.test.js.map +0 -1
  52. package/dist/collections/__tests__/store.test.d.ts +0 -1
  53. package/dist/collections/__tests__/store.test.js +0 -313
  54. package/dist/collections/__tests__/store.test.js.map +0 -1
  55. package/dist/collections/assertions.d.ts +0 -16
  56. package/dist/collections/assertions.js +0 -107
  57. package/dist/collections/assertions.js.map +0 -1
  58. package/dist/collections/dynamic-vars.d.ts +0 -75
  59. package/dist/collections/dynamic-vars.js +0 -187
  60. package/dist/collections/dynamic-vars.js.map +0 -1
  61. package/dist/collections/executor.d.ts +0 -100
  62. package/dist/collections/executor.js +0 -301
  63. package/dist/collections/executor.js.map +0 -1
  64. package/dist/collections/http.d.ts +0 -9
  65. package/dist/collections/http.js +0 -194
  66. package/dist/collections/http.js.map +0 -1
  67. package/dist/collections/index.d.ts +0 -12
  68. package/dist/collections/index.js +0 -27
  69. package/dist/collections/index.js.map +0 -1
  70. package/dist/collections/postman.d.ts +0 -10
  71. package/dist/collections/postman.js +0 -288
  72. package/dist/collections/postman.js.map +0 -1
  73. package/dist/collections/resolver.d.ts +0 -74
  74. package/dist/collections/resolver.js +0 -330
  75. package/dist/collections/resolver.js.map +0 -1
  76. package/dist/collections/scripts.d.ts +0 -20
  77. package/dist/collections/scripts.js +0 -225
  78. package/dist/collections/scripts.js.map +0 -1
  79. package/dist/collections/store.d.ts +0 -68
  80. package/dist/collections/store.js +0 -507
  81. package/dist/collections/store.js.map +0 -1
  82. package/dist/collections/tools.d.ts +0 -8
  83. package/dist/collections/tools.js +0 -1276
  84. package/dist/collections/tools.js.map +0 -1
  85. package/dist/collections/types.d.ts +0 -226
  86. package/dist/collections/types.js +0 -3
  87. package/dist/collections/types.js.map +0 -1
  88. package/dist/killswitch.d.ts +0 -8
  89. package/dist/killswitch.js +0 -304
  90. package/dist/killswitch.js.map +0 -1
  91. package/dist/resilience.d.ts +0 -112
  92. package/dist/resilience.js +0 -319
  93. package/dist/resilience.js.map +0 -1
  94. package/recipes/autopilot/agent.md +0 -316
  95. package/recipes/autopilot/learnings.md +0 -33
  96. package/recipes/autopilot/recipe.yaml +0 -96
  97. package/recipes/inbox-responder/agent.md +0 -268
  98. package/recipes/inbox-responder/learnings.md +0 -25
  99. package/recipes/inbox-responder/recipe.yaml +0 -82
@@ -1,16 +0,0 @@
1
- import type { Assertion, AssertionEvaluator, AssertionOperator, AssertionResult, AssertionTarget } from "./types.js";
2
- /** Traverse an object using dot notation. Returns undefined if any segment is missing. */
3
- export declare function dotGet(obj: unknown, path: string): unknown;
4
- /**
5
- * Extract the actual value from a response given a check path.
6
- * Reserved prefixes: status, body.*, header.*, timing.*
7
- */
8
- export declare function extractCheckValue(target: AssertionTarget, check: string): unknown;
9
- export declare class OperatorRegistry implements AssertionEvaluator {
10
- private operators;
11
- constructor();
12
- register(op: string, fn: AssertionOperator): void;
13
- evaluate(assertion: Assertion, target: AssertionTarget): AssertionResult;
14
- /** Evaluate all assertions against a target. */
15
- evaluateAll(assertions: Assertion[], target: AssertionTarget): AssertionResult[];
16
- }
@@ -1,107 +0,0 @@
1
- // ── Dot-notation traversal ──────────────────────────────────────
2
- /** Traverse an object using dot notation. Returns undefined if any segment is missing. */
3
- export function dotGet(obj, path) {
4
- const segments = path.split(".");
5
- let current = obj;
6
- for (const seg of segments) {
7
- if (current === null || current === undefined)
8
- return undefined;
9
- if (typeof current !== "object")
10
- return undefined;
11
- current = current[seg];
12
- }
13
- return current;
14
- }
15
- /**
16
- * Extract the actual value from a response given a check path.
17
- * Reserved prefixes: status, body.*, header.*, timing.*
18
- */
19
- export function extractCheckValue(target, check) {
20
- if (check === "status")
21
- return target.status;
22
- if (check === "body")
23
- return target.body;
24
- if (check.startsWith("body."))
25
- return dotGet(target.body, check.slice(5));
26
- if (check.startsWith("header."))
27
- return target.headers[check.slice(7).toLowerCase()];
28
- if (check === "timing.total")
29
- return target.timing.total_ms;
30
- if (check === "timing.ttfb")
31
- return target.timing.ttfb_ms;
32
- if (check.startsWith("timing."))
33
- return dotGet(target.timing, check.slice(7));
34
- // Fallback: treat as body path
35
- return dotGet(target.body, check);
36
- }
37
- // ── Built-in operators ──────────────────────────────────────────
38
- const builtinOperators = {
39
- equals: (actual, expected) => actual === expected,
40
- exists: (actual) => actual !== undefined && actual !== null,
41
- not_exists: (actual) => actual === undefined || actual === null,
42
- contains: (actual, expected) => typeof actual === "string" && typeof expected === "string" && actual.includes(expected),
43
- matches: (actual, expected) => {
44
- if (typeof actual !== "string" || typeof expected !== "string")
45
- return false;
46
- try {
47
- return new RegExp(expected).test(actual);
48
- }
49
- catch {
50
- return false;
51
- }
52
- },
53
- gt: (actual, expected) => typeof actual === "number" && typeof expected === "number" && actual > expected,
54
- lt: (actual, expected) => typeof actual === "number" && typeof expected === "number" && actual < expected,
55
- gte: (actual, expected) => typeof actual === "number" && typeof expected === "number" && actual >= expected,
56
- lte: (actual, expected) => typeof actual === "number" && typeof expected === "number" && actual <= expected,
57
- isArray: (actual) => Array.isArray(actual),
58
- length_gt: (actual, expected) => {
59
- const len = Array.isArray(actual) ? actual.length : typeof actual === "string" ? actual.length : -1;
60
- return typeof expected === "number" && len > expected;
61
- },
62
- length_lt: (actual, expected) => {
63
- const len = Array.isArray(actual) ? actual.length : typeof actual === "string" ? actual.length : Infinity;
64
- return typeof expected === "number" && len < expected;
65
- },
66
- type: (actual, expected) => typeof actual === expected,
67
- };
68
- // ── OperatorRegistry ────────────────────────────────────────────
69
- export class OperatorRegistry {
70
- operators = {};
71
- constructor() {
72
- // Register all built-in operators
73
- for (const [name, fn] of Object.entries(builtinOperators)) {
74
- this.operators[name] = fn;
75
- }
76
- }
77
- register(op, fn) {
78
- this.operators[op] = fn;
79
- }
80
- evaluate(assertion, target) {
81
- const op = assertion.op ?? "equals";
82
- const actual = extractCheckValue(target, assertion.check);
83
- const operatorFn = this.operators[op];
84
- if (!operatorFn) {
85
- return {
86
- passed: false,
87
- check: assertion.check,
88
- op,
89
- expected: assertion.expect,
90
- actual,
91
- };
92
- }
93
- const passed = operatorFn(actual, assertion.expect);
94
- return {
95
- passed,
96
- check: assertion.check,
97
- op,
98
- expected: assertion.expect,
99
- actual,
100
- };
101
- }
102
- /** Evaluate all assertions against a target. */
103
- evaluateAll(assertions, target) {
104
- return assertions.map((a) => this.evaluate(a, target));
105
- }
106
- }
107
- //# sourceMappingURL=assertions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../src/collections/assertions.ts"],"names":[],"mappings":"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"}
@@ -1,75 +0,0 @@
1
- import type { DynamicVarProvider, ResolverContext } from "./types.js";
2
- export declare class DynamicVarRegistry {
3
- private providers;
4
- register(provider: DynamicVarProvider): void;
5
- resolve(ref: string, context: ResolverContext): string | undefined;
6
- }
7
- export declare class UuidProvider implements DynamicVarProvider {
8
- canHandle(ref: string): boolean;
9
- generate(_ref: string, _ctx: ResolverContext): string;
10
- }
11
- export declare class TimestampProvider implements DynamicVarProvider {
12
- canHandle(ref: string): boolean;
13
- generate(_ref: string, _ctx: ResolverContext): string;
14
- }
15
- export declare class IsoTimestampProvider implements DynamicVarProvider {
16
- canHandle(ref: string): boolean;
17
- generate(_ref: string, _ctx: ResolverContext): string;
18
- }
19
- export declare class RandomIntProvider implements DynamicVarProvider {
20
- canHandle(ref: string): boolean;
21
- generate(ref: string, _ctx: ResolverContext): string;
22
- }
23
- export declare class RandomEmailProvider implements DynamicVarProvider {
24
- canHandle(ref: string): boolean;
25
- generate(_ref: string, _ctx: ResolverContext): string;
26
- }
27
- export declare class RandomNameProvider implements DynamicVarProvider {
28
- canHandle(ref: string): boolean;
29
- generate(_ref: string, _ctx: ResolverContext): string;
30
- }
31
- export declare class RandomPhoneProvider implements DynamicVarProvider {
32
- canHandle(ref: string): boolean;
33
- generate(_ref: string, _ctx: ResolverContext): string;
34
- }
35
- export declare class RandomStringProvider implements DynamicVarProvider {
36
- canHandle(ref: string): boolean;
37
- generate(ref: string, _ctx: ResolverContext): string;
38
- }
39
- export declare class HmacProvider implements DynamicVarProvider {
40
- canHandle(ref: string): boolean;
41
- generate(ref: string, context: ResolverContext): string;
42
- }
43
- export declare class Base64Provider implements DynamicVarProvider {
44
- canHandle(ref: string): boolean;
45
- generate(ref: string, _ctx: ResolverContext): string;
46
- }
47
- export declare class NowProvider implements DynamicVarProvider {
48
- canHandle(ref: string): boolean;
49
- generate(ref: string, _ctx: ResolverContext): string;
50
- }
51
- export declare class EnvProvider implements DynamicVarProvider {
52
- canHandle(ref: string): boolean;
53
- generate(ref: string, _ctx: ResolverContext): string;
54
- }
55
- export declare class FileProvider implements DynamicVarProvider {
56
- canHandle(ref: string): boolean;
57
- generate(ref: string, _ctx: ResolverContext): string;
58
- }
59
- export declare class AiPlaceholderProvider implements DynamicVarProvider {
60
- canHandle(ref: string): boolean;
61
- generate(ref: string, _ctx: ResolverContext): string;
62
- }
63
- export declare class FakerPlaceholderProvider implements DynamicVarProvider {
64
- canHandle(ref: string): boolean;
65
- generate(ref: string, _ctx: ResolverContext): string;
66
- }
67
- export declare class PreviousResponseProvider implements DynamicVarProvider {
68
- canHandle(ref: string): boolean;
69
- generate(_ref: string, _ctx: ResolverContext): string;
70
- }
71
- export declare class CollectionStatsProvider implements DynamicVarProvider {
72
- canHandle(ref: string): boolean;
73
- generate(_ref: string, _ctx: ResolverContext): string;
74
- }
75
- export declare function buildDefaultRegistry(): DynamicVarRegistry;
@@ -1,187 +0,0 @@
1
- import { randomUUID, createHmac } from "node:crypto";
2
- import { readFileSync } from "node:fs";
3
- // ── Provider registry ───────────────────────────────────────────
4
- export class DynamicVarRegistry {
5
- providers = [];
6
- register(provider) {
7
- this.providers.push(provider);
8
- }
9
- resolve(ref, context) {
10
- for (const provider of this.providers) {
11
- if (provider.canHandle(ref)) {
12
- return provider.generate(ref, context);
13
- }
14
- }
15
- return undefined;
16
- }
17
- }
18
- // ── Helper: parse function-style refs like $randomInt(1,100) ────
19
- function parseArgs(ref) {
20
- const parenIdx = ref.indexOf("(");
21
- if (parenIdx < 0)
22
- return { name: ref, args: [] };
23
- const name = ref.slice(0, parenIdx);
24
- const argsStr = ref.slice(parenIdx + 1, -1); // strip parens
25
- return { name, args: argsStr.split(",").map((a) => a.trim()) };
26
- }
27
- // ── Built-in providers ──────────────────────────────────────────
28
- export class UuidProvider {
29
- canHandle(ref) { return ref === "$uuid"; }
30
- generate(_ref, _ctx) { return randomUUID(); }
31
- }
32
- export class TimestampProvider {
33
- canHandle(ref) { return ref === "$timestamp"; }
34
- generate(_ref, _ctx) { return String(Math.floor(Date.now() / 1000)); }
35
- }
36
- export class IsoTimestampProvider {
37
- canHandle(ref) { return ref === "$isoTimestamp"; }
38
- generate(_ref, _ctx) { return new Date().toISOString(); }
39
- }
40
- export class RandomIntProvider {
41
- canHandle(ref) { return ref.startsWith("$randomInt("); }
42
- generate(ref, _ctx) {
43
- const { args } = parseArgs(ref);
44
- const min = parseInt(args[0] ?? "0", 10);
45
- const max = parseInt(args[1] ?? "100", 10);
46
- return String(Math.floor(Math.random() * (max - min + 1)) + min);
47
- }
48
- }
49
- export class RandomEmailProvider {
50
- canHandle(ref) { return ref === "$randomEmail"; }
51
- generate(_ref, _ctx) {
52
- const id = randomUUID().slice(0, 8);
53
- const domains = ["example.com", "test.org", "mail.dev"];
54
- return `user-${id}@${domains[Math.floor(Math.random() * domains.length)]}`;
55
- }
56
- }
57
- export class RandomNameProvider {
58
- canHandle(ref) { return ref === "$randomName"; }
59
- generate(_ref, _ctx) {
60
- const firsts = ["Ade", "Bola", "Chidi", "Dayo", "Emeka", "Funke", "Gbenga", "Halima", "Ikenna", "Jumoke"];
61
- const lasts = ["Okafor", "Adeyemi", "Ibrahim", "Nwosu", "Bakare", "Olumide", "Chukwu", "Abubakar", "Obi", "Lawal"];
62
- return `${firsts[Math.floor(Math.random() * firsts.length)]} ${lasts[Math.floor(Math.random() * lasts.length)]}`;
63
- }
64
- }
65
- export class RandomPhoneProvider {
66
- canHandle(ref) { return ref === "$randomPhone"; }
67
- generate(_ref, _ctx) {
68
- const prefix = "+234";
69
- const number = String(Math.floor(Math.random() * 9_000_000_000) + 1_000_000_000);
70
- return `${prefix}${number}`;
71
- }
72
- }
73
- export class RandomStringProvider {
74
- canHandle(ref) { return ref.startsWith("$randomString("); }
75
- generate(ref, _ctx) {
76
- const { args } = parseArgs(ref);
77
- const len = parseInt(args[0] || "16", 10) || 16;
78
- const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
79
- let result = "";
80
- for (let i = 0; i < len; i++) {
81
- result += chars[Math.floor(Math.random() * chars.length)];
82
- }
83
- return result;
84
- }
85
- }
86
- export class HmacProvider {
87
- canHandle(ref) { return ref.startsWith("$hmac("); }
88
- generate(ref, context) {
89
- const { args } = parseArgs(ref);
90
- const data = args[0] ?? "";
91
- const key = args[1] ?? "";
92
- // If key looks like a variable name, try to resolve from context
93
- const resolvedKey = context.extracted?.[key] ?? context.scriptVars?.[key] ?? key;
94
- return createHmac("sha256", resolvedKey).update(data).digest("hex");
95
- }
96
- }
97
- export class Base64Provider {
98
- canHandle(ref) { return ref.startsWith("$base64("); }
99
- generate(ref, _ctx) {
100
- const { args } = parseArgs(ref);
101
- return Buffer.from(args[0] ?? "").toString("base64");
102
- }
103
- }
104
- export class NowProvider {
105
- canHandle(ref) { return ref === "$now" || ref.startsWith("$now("); }
106
- generate(ref, _ctx) {
107
- const { args } = parseArgs(ref);
108
- const offset = args[0] ?? "";
109
- let date = new Date();
110
- if (offset) {
111
- const match = offset.match(/^([+-]?\d+)(ms|s|m|h|d)$/);
112
- if (match) {
113
- const val = parseInt(match[1], 10);
114
- const unit = match[2];
115
- const ms = { ms: 1, s: 1000, m: 60_000, h: 3_600_000, d: 86_400_000 }[unit] ?? 0;
116
- date = new Date(date.getTime() + val * ms);
117
- }
118
- }
119
- return date.toISOString();
120
- }
121
- }
122
- export class EnvProvider {
123
- canHandle(ref) { return ref.startsWith("$env("); }
124
- generate(ref, _ctx) {
125
- const { args } = parseArgs(ref);
126
- return process.env[args[0] ?? ""] ?? "";
127
- }
128
- }
129
- export class FileProvider {
130
- canHandle(ref) { return ref.startsWith("$file("); }
131
- generate(ref, _ctx) {
132
- const { args } = parseArgs(ref);
133
- const path = args[0] ?? "";
134
- try {
135
- return readFileSync(path, "utf-8");
136
- }
137
- catch {
138
- return `[file not found: ${path}]`;
139
- }
140
- }
141
- }
142
- // ── AI-native placeholders ──────────────────────────────────────
143
- export class AiPlaceholderProvider {
144
- canHandle(ref) { return ref.startsWith("$ai("); }
145
- generate(ref, _ctx) {
146
- const { args } = parseArgs(ref);
147
- return `[AI not configured: ${args[0] ?? ref}]`;
148
- }
149
- }
150
- export class FakerPlaceholderProvider {
151
- canHandle(ref) { return ref.startsWith("$faker("); }
152
- generate(ref, _ctx) {
153
- const { args } = parseArgs(ref);
154
- return `[faker not configured: ${args[0] ?? ref}]`;
155
- }
156
- }
157
- export class PreviousResponseProvider {
158
- canHandle(ref) { return ref === "$previous.response"; }
159
- generate(_ref, _ctx) { return "[previous.response: use in scenario context]"; }
160
- }
161
- export class CollectionStatsProvider {
162
- canHandle(ref) { return ref === "$collection.stats"; }
163
- generate(_ref, _ctx) { return "[collection.stats: use in scenario context]"; }
164
- }
165
- // ── Factory ─────────────────────────────────────────────────────
166
- export function buildDefaultRegistry() {
167
- const registry = new DynamicVarRegistry();
168
- registry.register(new UuidProvider());
169
- registry.register(new TimestampProvider());
170
- registry.register(new IsoTimestampProvider());
171
- registry.register(new RandomIntProvider());
172
- registry.register(new RandomEmailProvider());
173
- registry.register(new RandomNameProvider());
174
- registry.register(new RandomPhoneProvider());
175
- registry.register(new RandomStringProvider());
176
- registry.register(new HmacProvider());
177
- registry.register(new Base64Provider());
178
- registry.register(new NowProvider());
179
- registry.register(new EnvProvider());
180
- registry.register(new FileProvider());
181
- registry.register(new AiPlaceholderProvider());
182
- registry.register(new FakerPlaceholderProvider());
183
- registry.register(new PreviousResponseProvider());
184
- registry.register(new CollectionStatsProvider());
185
- return registry;
186
- }
187
- //# sourceMappingURL=dynamic-vars.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamic-vars.js","sourceRoot":"","sources":["../../src/collections/dynamic-vars.ts"],"names":[],"mappings":"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"}
@@ -1,100 +0,0 @@
1
- import type { Collection, Environment, Folder, Endpoint, HttpExecutor, ResolverStep, AssertionEvaluator, AssertionResult, ScenarioStep, ScriptRunner } from "./types.js";
2
- export interface EndpointResult {
3
- endpoint: {
4
- method: string;
5
- path: string;
6
- name: string;
7
- };
8
- request: {
9
- url: string;
10
- method: string;
11
- };
12
- response: {
13
- status: number;
14
- statusText: string;
15
- headers: Record<string, string>;
16
- body: unknown;
17
- timing: {
18
- total_ms: number;
19
- ttfb_ms: number;
20
- };
21
- };
22
- assertions?: AssertionResult[];
23
- extracted?: Record<string, string>;
24
- scriptTests?: {
25
- name: string;
26
- passed: boolean;
27
- error?: string;
28
- }[];
29
- scriptLogs?: string[];
30
- error?: string;
31
- }
32
- export interface FolderResult {
33
- folder: string;
34
- results: EndpointResult[];
35
- passed: number;
36
- failed: number;
37
- errors: number;
38
- }
39
- export interface CollectionRunResult {
40
- collection: string;
41
- environment: string;
42
- folders: FolderResult[];
43
- total_passed: number;
44
- total_failed: number;
45
- total_errors: number;
46
- }
47
- export interface ScenarioResult {
48
- scenario: string;
49
- collection: string;
50
- environment: string;
51
- steps: (EndpointResult & {
52
- step: number;
53
- ref: string;
54
- })[];
55
- passed: boolean;
56
- halted_at?: number;
57
- extracted: Record<string, string>;
58
- }
59
- export declare function executeEndpoint(opts: {
60
- collection: Collection;
61
- environment: Environment;
62
- folder: Folder;
63
- endpoint: Endpoint;
64
- httpExecutor: HttpExecutor;
65
- pipeline: ResolverStep[];
66
- assertionEvaluator: AssertionEvaluator;
67
- scriptRunner?: ScriptRunner;
68
- extracted?: Record<string, string>;
69
- }): Promise<EndpointResult>;
70
- export declare function executeFolder(opts: {
71
- folderKey: string;
72
- collection: Collection;
73
- environment: Environment;
74
- folder: Folder;
75
- httpExecutor: HttpExecutor;
76
- pipeline: ResolverStep[];
77
- assertionEvaluator: AssertionEvaluator;
78
- scriptRunner?: ScriptRunner;
79
- extracted?: Record<string, string>;
80
- }): Promise<FolderResult>;
81
- export declare function executeCollection(opts: {
82
- collectionId: string;
83
- collection: Collection;
84
- environment: Environment;
85
- httpExecutor: HttpExecutor;
86
- pipeline: ResolverStep[];
87
- assertionEvaluator: AssertionEvaluator;
88
- scriptRunner?: ScriptRunner;
89
- }): Promise<CollectionRunResult>;
90
- export declare function executeScenario(opts: {
91
- scenarioKey: string;
92
- steps: ScenarioStep[];
93
- collectionId: string;
94
- collection: Collection;
95
- environment: Environment;
96
- httpExecutor: HttpExecutor;
97
- pipeline: ResolverStep[];
98
- assertionEvaluator: AssertionEvaluator;
99
- scriptRunner?: ScriptRunner;
100
- }): Promise<ScenarioResult>;