@zibby/core 0.1.30 → 0.1.31

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zibby/core",
3
- "version": "0.1.30",
3
+ "version": "0.1.31",
4
4
  "description": "Core test automation engine with multi-agent and multi-MCP support",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zibby/core",
3
- "version": "0.1.30",
3
+ "version": "0.1.31",
4
4
  "description": "Core test automation engine with multi-agent and multi-MCP support",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -16,7 +16,7 @@ import { SKILLS } from '@zibby/core';
16
16
 
17
17
  export const CHAT_CONFIG = {
18
18
  name: 'zibby_chat',
19
- skills: [SKILLS.CORE_TOOLS, SKILLS.SKILL_INSTALLER, SKILLS.CHAT_MEMORY],
19
+ skills: [SKILLS.CORE_TOOLS, SKILLS.SKILL_INSTALLER, SKILLS.CHAT_MEMORY, SKILLS.WORKFLOW_BUILDER],
20
20
  timeout: 0,
21
21
 
22
22
  systemPrompt: `You are Zibby, a helpful AI assistant. Capabilities come from installed skills.
@@ -0,0 +1,358 @@
1
+ {
2
+ "nodes": [
3
+ {
4
+ "id": "preflight",
5
+ "type": "preflight",
6
+ "data": {
7
+ "nodeType": "preflight",
8
+ "label": "preflight"
9
+ }
10
+ },
11
+ {
12
+ "id": "execute_live",
13
+ "type": "execute_live",
14
+ "data": {
15
+ "nodeType": "execute_live",
16
+ "label": "execute_live"
17
+ }
18
+ },
19
+ {
20
+ "id": "generate_script",
21
+ "type": "generate_script",
22
+ "data": {
23
+ "nodeType": "generate_script",
24
+ "label": "generate_script"
25
+ }
26
+ }
27
+ ],
28
+ "edges": [
29
+ {
30
+ "source": "preflight",
31
+ "target": "execute_live"
32
+ },
33
+ {
34
+ "source": "generate_script",
35
+ "target": "END"
36
+ }
37
+ ],
38
+ "nodeConfigs": {
39
+ "preflight": {
40
+ "outputSchema": {
41
+ "jsonSchema": {
42
+ "type": "object",
43
+ "properties": {
44
+ "title": {
45
+ "type": "string",
46
+ "description": "Concise test title (5-10 words, action-oriented). Prefix with ticket ID if found."
47
+ },
48
+ "assertions": {
49
+ "type": "array",
50
+ "items": {
51
+ "type": "object",
52
+ "properties": {
53
+ "description": {
54
+ "type": "string",
55
+ "description": "What to verify (e.g., \"User is redirected to dashboard\")"
56
+ },
57
+ "expected": {
58
+ "type": "string",
59
+ "description": "What the expected outcome looks like (e.g., \"URL contains /dashboard\")"
60
+ }
61
+ },
62
+ "required": [
63
+ "description",
64
+ "expected"
65
+ ],
66
+ "additionalProperties": false
67
+ },
68
+ "description": "Every expected result from the spec as a verifiable assertion"
69
+ }
70
+ },
71
+ "required": [
72
+ "title",
73
+ "assertions"
74
+ ],
75
+ "additionalProperties": false
76
+ },
77
+ "variables": [
78
+ {
79
+ "path": "title",
80
+ "type": "string",
81
+ "label": "Concise test title (5-10 words, action-oriented). Prefix with ticket ID if found.",
82
+ "optional": false
83
+ },
84
+ {
85
+ "path": "assertions",
86
+ "type": "array",
87
+ "label": "Every expected result from the spec as a verifiable assertion",
88
+ "optional": false
89
+ },
90
+ {
91
+ "path": "assertions[].description",
92
+ "type": "string",
93
+ "label": "What to verify (e.g., \"User is redirected to dashboard\")",
94
+ "optional": false
95
+ },
96
+ {
97
+ "path": "assertions[].expected",
98
+ "type": "string",
99
+ "label": "What the expected outcome looks like (e.g., \"URL contains /dashboard\")",
100
+ "optional": false
101
+ }
102
+ ]
103
+ }
104
+ },
105
+ "execute_live": {
106
+ "outputSchema": {
107
+ "jsonSchema": {
108
+ "type": "object",
109
+ "properties": {
110
+ "success": {
111
+ "type": "boolean",
112
+ "description": "Whether the test execution completed successfully"
113
+ },
114
+ "steps": {
115
+ "type": "array",
116
+ "items": {
117
+ "type": "string"
118
+ },
119
+ "description": "Array of test steps executed"
120
+ },
121
+ "finalUrl": {
122
+ "type": "string",
123
+ "description": "Final URL after test execution"
124
+ },
125
+ "actions": {
126
+ "type": "array",
127
+ "description": "Detailed array of actions performed with descriptions and reasoning"
128
+ },
129
+ "assertions": {
130
+ "type": "array",
131
+ "items": {
132
+ "type": "object",
133
+ "properties": {
134
+ "description": {
135
+ "type": "string",
136
+ "description": "What was verified"
137
+ },
138
+ "passed": {
139
+ "type": "boolean",
140
+ "description": "Whether the assertion passed"
141
+ },
142
+ "verifiedAfterAction": {
143
+ "type": "number",
144
+ "description": "Index of the action after which this was verified (0-based, matches actions array index) - REQUIRED"
145
+ },
146
+ "evidence": {
147
+ "type": "string",
148
+ "description": "Brief evidence of what was observed"
149
+ }
150
+ },
151
+ "required": [
152
+ "description",
153
+ "passed",
154
+ "verifiedAfterAction"
155
+ ],
156
+ "additionalProperties": false
157
+ },
158
+ "description": "Array of assertions made during test"
159
+ },
160
+ "waits": {
161
+ "type": "array",
162
+ "description": "Array of waits needed for proper test execution"
163
+ },
164
+ "evidenceScreenshots": {
165
+ "type": "array",
166
+ "items": {
167
+ "type": "object",
168
+ "properties": {
169
+ "filename": {
170
+ "type": "string",
171
+ "description": "Descriptive filename pattern: {step-number}-{action-or-state}.png"
172
+ },
173
+ "description": {
174
+ "type": "string",
175
+ "description": "What the screenshot shows and why it is evidence"
176
+ },
177
+ "verdict": {
178
+ "type": "string",
179
+ "enum": [
180
+ "pass",
181
+ "fail",
182
+ "info"
183
+ ],
184
+ "description": "Test verdict: pass/fail for validation points, info for checkpoints"
185
+ }
186
+ },
187
+ "required": [
188
+ "filename",
189
+ "description",
190
+ "verdict"
191
+ ],
192
+ "additionalProperties": false
193
+ },
194
+ "description": "Array of screenshots taken at key validation points throughout the test"
195
+ },
196
+ "browserClosed": {
197
+ "type": "boolean",
198
+ "description": "Whether the browser was properly closed (should always be true)"
199
+ },
200
+ "notes": {
201
+ "type": "string",
202
+ "description": "Additional notes or observations. REQUIRED when success=false to explain why test failed or could not execute"
203
+ }
204
+ },
205
+ "required": [
206
+ "success",
207
+ "steps",
208
+ "browserClosed"
209
+ ],
210
+ "additionalProperties": false
211
+ },
212
+ "variables": [
213
+ {
214
+ "path": "success",
215
+ "type": "boolean",
216
+ "label": "Whether the test execution completed successfully",
217
+ "optional": false
218
+ },
219
+ {
220
+ "path": "steps",
221
+ "type": "array",
222
+ "label": "Array of test steps executed",
223
+ "optional": false
224
+ },
225
+ {
226
+ "path": "finalUrl",
227
+ "type": "string",
228
+ "label": "Final URL after test execution",
229
+ "optional": true
230
+ },
231
+ {
232
+ "path": "actions",
233
+ "type": "array",
234
+ "label": "Detailed array of actions performed with descriptions and reasoning",
235
+ "optional": true
236
+ },
237
+ {
238
+ "path": "assertions",
239
+ "type": "array",
240
+ "label": "Array of assertions made during test",
241
+ "optional": true
242
+ },
243
+ {
244
+ "path": "assertions[].description",
245
+ "type": "string",
246
+ "label": "What was verified",
247
+ "optional": false
248
+ },
249
+ {
250
+ "path": "assertions[].passed",
251
+ "type": "boolean",
252
+ "label": "Whether the assertion passed",
253
+ "optional": false
254
+ },
255
+ {
256
+ "path": "assertions[].verifiedAfterAction",
257
+ "type": "number",
258
+ "label": "Index of the action after which this was verified (0-based, matches actions array index) - REQUIRED",
259
+ "optional": false
260
+ },
261
+ {
262
+ "path": "assertions[].evidence",
263
+ "type": "string",
264
+ "label": "Brief evidence of what was observed",
265
+ "optional": true
266
+ },
267
+ {
268
+ "path": "waits",
269
+ "type": "array",
270
+ "label": "Array of waits needed for proper test execution",
271
+ "optional": true
272
+ },
273
+ {
274
+ "path": "evidenceScreenshots",
275
+ "type": "array",
276
+ "label": "Array of screenshots taken at key validation points throughout the test",
277
+ "optional": true
278
+ },
279
+ {
280
+ "path": "evidenceScreenshots[].filename",
281
+ "type": "string",
282
+ "label": "Descriptive filename pattern: {step-number}-{action-or-state}.png",
283
+ "optional": false
284
+ },
285
+ {
286
+ "path": "evidenceScreenshots[].description",
287
+ "type": "string",
288
+ "label": "What the screenshot shows and why it is evidence",
289
+ "optional": false
290
+ },
291
+ {
292
+ "path": "evidenceScreenshots[].verdict",
293
+ "type": "string",
294
+ "label": "Test verdict: pass/fail for validation points, info for checkpoints",
295
+ "optional": false
296
+ },
297
+ {
298
+ "path": "browserClosed",
299
+ "type": "boolean",
300
+ "label": "Whether the browser was properly closed (should always be true)",
301
+ "optional": false
302
+ },
303
+ {
304
+ "path": "notes",
305
+ "type": "string",
306
+ "label": "Additional notes or observations. REQUIRED when success=false to explain why test failed or could not execute",
307
+ "optional": true
308
+ }
309
+ ]
310
+ }
311
+ },
312
+ "generate_script": {
313
+ "outputSchema": {
314
+ "jsonSchema": {
315
+ "type": "object",
316
+ "properties": {
317
+ "success": {
318
+ "type": "boolean"
319
+ },
320
+ "scriptPath": {
321
+ "type": "string"
322
+ },
323
+ "method": {
324
+ "type": "string"
325
+ }
326
+ },
327
+ "required": [
328
+ "success",
329
+ "scriptPath",
330
+ "method"
331
+ ],
332
+ "additionalProperties": false
333
+ },
334
+ "variables": [
335
+ {
336
+ "path": "success",
337
+ "type": "boolean",
338
+ "label": "Success",
339
+ "optional": false
340
+ },
341
+ {
342
+ "path": "scriptPath",
343
+ "type": "string",
344
+ "label": "Script Path",
345
+ "optional": false
346
+ },
347
+ {
348
+ "path": "method",
349
+ "type": "string",
350
+ "label": "Method",
351
+ "optional": false
352
+ }
353
+ ]
354
+ }
355
+ }
356
+ },
357
+ "stateSchema": null
358
+ }