agent-scenario-loop 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.
Files changed (170) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/app/profile-session.ts +812 -0
  4. package/core/config-template.json +41 -0
  5. package/dist/core/agent-summary.d.ts +15 -0
  6. package/dist/core/agent-summary.js +177 -0
  7. package/dist/core/artifact-contract.d.ts +151 -0
  8. package/dist/core/artifact-contract.js +897 -0
  9. package/dist/core/artifact-layout.d.ts +56 -0
  10. package/dist/core/artifact-layout.js +61 -0
  11. package/dist/core/artifact-writer.d.ts +44 -0
  12. package/dist/core/artifact-writer.js +55 -0
  13. package/dist/core/comparison.d.ts +133 -0
  14. package/dist/core/comparison.js +294 -0
  15. package/dist/core/evidence-interpreter.d.ts +28 -0
  16. package/dist/core/evidence-interpreter.js +69 -0
  17. package/dist/core/execution-plan.d.ts +44 -0
  18. package/dist/core/execution-plan.js +95 -0
  19. package/dist/core/planner.d.ts +132 -0
  20. package/dist/core/planner.js +812 -0
  21. package/dist/core/ports.d.ts +198 -0
  22. package/dist/core/ports.js +146 -0
  23. package/dist/core/run-index.d.ts +62 -0
  24. package/dist/core/run-index.js +143 -0
  25. package/dist/core/schema-validator.d.ts +86 -0
  26. package/dist/core/schema-validator.js +407 -0
  27. package/dist/index.d.ts +11 -0
  28. package/dist/index.js +27 -0
  29. package/dist/runner/agent-device-driver.d.ts +126 -0
  30. package/dist/runner/agent-device-driver.js +168 -0
  31. package/dist/runner/agent-device.d.ts +295 -0
  32. package/dist/runner/agent-device.js +1271 -0
  33. package/dist/runner/android-adb-driver.d.ts +175 -0
  34. package/dist/runner/android-adb-driver.js +399 -0
  35. package/dist/runner/android-adb.d.ts +254 -0
  36. package/dist/runner/android-adb.js +1618 -0
  37. package/dist/runner/argent-driver.d.ts +183 -0
  38. package/dist/runner/argent-driver.js +297 -0
  39. package/dist/runner/argent.d.ts +349 -0
  40. package/dist/runner/argent.js +1211 -0
  41. package/dist/runner/check-plan.d.ts +45 -0
  42. package/dist/runner/check-plan.js +210 -0
  43. package/dist/runner/cli.d.ts +20 -0
  44. package/dist/runner/cli.js +23 -0
  45. package/dist/runner/compare-latest.d.ts +99 -0
  46. package/dist/runner/compare-latest.js +233 -0
  47. package/dist/runner/compare.d.ts +58 -0
  48. package/dist/runner/compare.js +157 -0
  49. package/dist/runner/demo-loop.d.ts +45 -0
  50. package/dist/runner/demo-loop.js +170 -0
  51. package/dist/runner/example-android-live.d.ts +137 -0
  52. package/dist/runner/example-android-live.js +454 -0
  53. package/dist/runner/example-ios-live.d.ts +137 -0
  54. package/dist/runner/example-ios-live.js +471 -0
  55. package/dist/runner/host-doctor.d.ts +131 -0
  56. package/dist/runner/host-doctor.js +628 -0
  57. package/dist/runner/init-project.d.ts +88 -0
  58. package/dist/runner/init-project.js +263 -0
  59. package/dist/runner/ios-simctl-driver.d.ts +69 -0
  60. package/dist/runner/ios-simctl-driver.js +97 -0
  61. package/dist/runner/ios-simctl.d.ts +254 -0
  62. package/dist/runner/ios-simctl.js +1415 -0
  63. package/dist/runner/live-android.d.ts +137 -0
  64. package/dist/runner/live-android.js +539 -0
  65. package/dist/runner/live-comparison.d.ts +67 -0
  66. package/dist/runner/live-comparison.js +147 -0
  67. package/dist/runner/live-ios.d.ts +137 -0
  68. package/dist/runner/live-ios.js +460 -0
  69. package/dist/runner/live-proof-summary.d.ts +263 -0
  70. package/dist/runner/live-proof-summary.js +465 -0
  71. package/dist/runner/live-proof.d.ts +467 -0
  72. package/dist/runner/live-proof.js +920 -0
  73. package/dist/runner/local-env.d.ts +64 -0
  74. package/dist/runner/local-env.js +155 -0
  75. package/dist/runner/profile-android.d.ts +82 -0
  76. package/dist/runner/profile-android.js +671 -0
  77. package/dist/runner/profile-ios.d.ts +108 -0
  78. package/dist/runner/profile-ios.js +532 -0
  79. package/dist/runner/profile-mobile.d.ts +254 -0
  80. package/dist/runner/profile-mobile.js +1307 -0
  81. package/dist/runner/validate-project.d.ts +273 -0
  82. package/dist/runner/validate-project.js +1501 -0
  83. package/docs/adapters.md +145 -0
  84. package/docs/api.md +94 -0
  85. package/docs/authoring.md +196 -0
  86. package/docs/concepts.md +136 -0
  87. package/docs/consumer-rehearsal.md +115 -0
  88. package/docs/contracts.md +267 -0
  89. package/docs/live-proofs.md +270 -0
  90. package/docs/principles.md +46 -0
  91. package/examples/event-logs/app-startup-baseline.log +4 -0
  92. package/examples/event-logs/app-startup-current.log +4 -0
  93. package/examples/minimal-app/README.md +70 -0
  94. package/examples/mobile-app/README.md +302 -0
  95. package/examples/mobile-app/app.json +22 -0
  96. package/examples/mobile-app/asl/package-scripts.json +32 -0
  97. package/examples/mobile-app/asl.config.json +37 -0
  98. package/examples/mobile-app/event-logs/android-app-startup.log +4 -0
  99. package/examples/mobile-app/event-logs/android-open-close-cycle.log +12 -0
  100. package/examples/mobile-app/event-logs/android-scroll-settle.log +12 -0
  101. package/examples/mobile-app/event-logs/app-startup.log +4 -0
  102. package/examples/mobile-app/event-logs/open-close-cycle.log +12 -0
  103. package/examples/mobile-app/event-logs/scroll-settle.log +12 -0
  104. package/examples/mobile-app/index.ts +20 -0
  105. package/examples/mobile-app/metro.config.js +20 -0
  106. package/examples/mobile-app/package.json +62 -0
  107. package/examples/mobile-app/patches/expo-modules-jsi@56.0.10.patch +19 -0
  108. package/examples/mobile-app/plugins/with-ios-build-compat.js +271 -0
  109. package/examples/mobile-app/pnpm-lock.yaml +4440 -0
  110. package/examples/mobile-app/runner-manifests/evidence-provider.json +79 -0
  111. package/examples/mobile-app/runner-manifests/primary-runner.json +19 -0
  112. package/examples/mobile-app/scenarios/android/app-startup-video.json +73 -0
  113. package/examples/mobile-app/scenarios/android/app-startup.json +44 -0
  114. package/examples/mobile-app/scenarios/android/open-close-cycle.json +54 -0
  115. package/examples/mobile-app/scenarios/android/scroll-settle.json +49 -0
  116. package/examples/mobile-app/scenarios/ios/app-startup.json +44 -0
  117. package/examples/mobile-app/scenarios/ios/open-close-cycle.json +54 -0
  118. package/examples/mobile-app/scenarios/ios/scroll-settle.json +49 -0
  119. package/examples/mobile-app/scenarios/mobile/app-startup.json +91 -0
  120. package/examples/mobile-app/scenarios/mobile/open-close-cycle.json +160 -0
  121. package/examples/mobile-app/scenarios/mobile/scroll-settle.json +148 -0
  122. package/examples/mobile-app/scripts/asl-capture-accessibility-provider.mjs +112 -0
  123. package/examples/mobile-app/scripts/asl-capture-profiler-provider.mjs +127 -0
  124. package/examples/mobile-app/src/devtools/profile-session.ts +7 -0
  125. package/examples/mobile-app/src/example-screen.tsx +322 -0
  126. package/examples/mobile-app/tsconfig.json +16 -0
  127. package/examples/mobile-app/tsconfig.typecheck.json +13 -0
  128. package/examples/runners/README.md +44 -0
  129. package/examples/runners/adb-android.json +25 -0
  130. package/examples/runners/agent-device-android.json +27 -0
  131. package/examples/runners/agent-device-ios.json +27 -0
  132. package/examples/runners/argent-android.json +32 -0
  133. package/examples/runners/argent-ios.json +32 -0
  134. package/examples/runners/argent-react-profiler-provider.json +15 -0
  135. package/examples/runners/axe-accessibility-provider.json +24 -0
  136. package/examples/runners/manual-log-ingest.json +9 -0
  137. package/examples/runners/rozenite-profiler-provider.json +9 -0
  138. package/examples/runners/script-accessibility-provider.json +24 -0
  139. package/examples/runners/script-memory-provider.json +24 -0
  140. package/examples/runners/script-network-provider.json +24 -0
  141. package/examples/runners/script-profiler-provider.json +30 -0
  142. package/examples/runners/xcodebuildmcp-ios.json +29 -0
  143. package/examples/scenarios/ios/app-startup.json +28 -0
  144. package/examples/scenarios/ios/open-close-cycle.json +35 -0
  145. package/examples/scenarios/mobile/app-startup.json +72 -0
  146. package/examples/scenarios/mobile/media-open-close.json +141 -0
  147. package/examples/scenarios/mobile/open-close-cycle.json +135 -0
  148. package/examples/scenarios/mobile/scroll-settle.json +106 -0
  149. package/package.json +240 -0
  150. package/schemas/budget-verdict.schema.json +115 -0
  151. package/schemas/causal-run.schema.json +279 -0
  152. package/schemas/comparison.schema.json +196 -0
  153. package/schemas/health.schema.json +108 -0
  154. package/schemas/live-proof-set.schema.json +195 -0
  155. package/schemas/live-proof.schema.json +413 -0
  156. package/schemas/manifest.schema.json +204 -0
  157. package/schemas/metrics.schema.json +137 -0
  158. package/schemas/project-validation.schema.json +343 -0
  159. package/schemas/runner-capabilities.schema.json +217 -0
  160. package/schemas/scenario.schema.json +400 -0
  161. package/schemas/verdict.schema.json +88 -0
  162. package/templates/evidence-provider.json +83 -0
  163. package/templates/gitignore-snippet +9 -0
  164. package/templates/integration-readme.md +125 -0
  165. package/templates/mobile-scenario.json +133 -0
  166. package/templates/package-scripts.json +32 -0
  167. package/templates/primary-runner.json +19 -0
  168. package/templates/project.config.json +37 -0
  169. package/templates/scripts/asl-capture-accessibility-provider.mjs +112 -0
  170. package/templates/scripts/asl-capture-profiler-provider.mjs +127 -0
@@ -0,0 +1,400 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-scenario-loop.dev/schemas/scenario.schema.json",
4
+ "title": "Agent Scenario Loop Scenario",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "id",
10
+ "flowId",
11
+ "platforms",
12
+ "requiredCapabilities",
13
+ "truthEvents",
14
+ "steps"
15
+ ],
16
+ "properties": {
17
+ "schemaVersion": {
18
+ "type": "string",
19
+ "pattern": "^1\\.0\\.0$"
20
+ },
21
+ "id": {
22
+ "type": "string",
23
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
24
+ },
25
+ "flowId": {
26
+ "type": "string",
27
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
28
+ },
29
+ "comparisonLane": {
30
+ "type": "string"
31
+ },
32
+ "description": {
33
+ "type": "string"
34
+ },
35
+ "journey": {
36
+ "$ref": "#/$defs/journey"
37
+ },
38
+ "platforms": {
39
+ "type": "array",
40
+ "minItems": 1,
41
+ "uniqueItems": true,
42
+ "items": {
43
+ "type": "string",
44
+ "enum": ["ios", "android"]
45
+ }
46
+ },
47
+ "requiredCapabilities": {
48
+ "type": "array",
49
+ "minItems": 1,
50
+ "uniqueItems": true,
51
+ "items": {
52
+ "$ref": "#/$defs/capability"
53
+ }
54
+ },
55
+ "optionalCapabilities": {
56
+ "type": "array",
57
+ "uniqueItems": true,
58
+ "items": {
59
+ "$ref": "#/$defs/capability"
60
+ }
61
+ },
62
+ "truthEvents": {
63
+ "type": "object",
64
+ "minProperties": 1,
65
+ "additionalProperties": {
66
+ "$ref": "#/$defs/truthMilestone"
67
+ }
68
+ },
69
+ "milestones": {
70
+ "type": "array",
71
+ "minItems": 1,
72
+ "items": {
73
+ "$ref": "#/$defs/milestone"
74
+ }
75
+ },
76
+ "expectedEvents": {
77
+ "type": "array",
78
+ "minItems": 1,
79
+ "uniqueItems": true,
80
+ "items": {
81
+ "type": "string"
82
+ }
83
+ },
84
+ "cycles": {
85
+ "$ref": "#/$defs/cycles"
86
+ },
87
+ "budgets": {
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "#/$defs/budget"
91
+ }
92
+ },
93
+ "steps": {
94
+ "type": "array",
95
+ "minItems": 1,
96
+ "items": {
97
+ "$ref": "#/$defs/step"
98
+ }
99
+ },
100
+ "artifacts": {
101
+ "type": "object",
102
+ "additionalProperties": false,
103
+ "properties": {
104
+ "required": {
105
+ "type": "array",
106
+ "uniqueItems": true,
107
+ "items": {
108
+ "$ref": "#/$defs/artifactKind"
109
+ }
110
+ },
111
+ "optional": {
112
+ "type": "array",
113
+ "uniqueItems": true,
114
+ "items": {
115
+ "$ref": "#/$defs/artifactKind"
116
+ }
117
+ }
118
+ }
119
+ },
120
+ "adapterOptions": {
121
+ "$ref": "#/$defs/adapterOptions"
122
+ }
123
+ },
124
+ "$defs": {
125
+ "journey": {
126
+ "type": "object",
127
+ "additionalProperties": false,
128
+ "required": ["name", "intent"],
129
+ "properties": {
130
+ "name": {
131
+ "type": "string"
132
+ },
133
+ "intent": {
134
+ "type": "string"
135
+ },
136
+ "actor": {
137
+ "type": "string"
138
+ },
139
+ "startState": {
140
+ "type": "string"
141
+ },
142
+ "endState": {
143
+ "type": "string"
144
+ }
145
+ }
146
+ },
147
+ "cycles": {
148
+ "type": "object",
149
+ "additionalProperties": false,
150
+ "properties": {
151
+ "iterations": {
152
+ "type": "integer",
153
+ "minimum": 1
154
+ },
155
+ "warmupIterations": {
156
+ "type": "integer",
157
+ "minimum": 0
158
+ },
159
+ "stopOnFailure": {
160
+ "type": "boolean",
161
+ "default": true
162
+ }
163
+ }
164
+ },
165
+ "capability": {
166
+ "type": "string",
167
+ "enum": [
168
+ "launch",
169
+ "sessionControl",
170
+ "command",
171
+ "logCapture",
172
+ "artifactWrite",
173
+ "screenshot",
174
+ "video",
175
+ "uiTree",
176
+ "memory",
177
+ "network",
178
+ "profiler",
179
+ "accessibility"
180
+ ]
181
+ },
182
+ "artifactKind": {
183
+ "type": "string",
184
+ "enum": [
185
+ "logs",
186
+ "screenshot",
187
+ "video",
188
+ "uiTree",
189
+ "memory",
190
+ "network",
191
+ "profiler",
192
+ "accessibility",
193
+ "signals"
194
+ ]
195
+ },
196
+ "truthMilestone": {
197
+ "type": "object",
198
+ "additionalProperties": false,
199
+ "required": ["event"],
200
+ "properties": {
201
+ "event": {
202
+ "type": "string"
203
+ },
204
+ "required": {
205
+ "type": "boolean",
206
+ "default": true
207
+ },
208
+ "timeoutMs": {
209
+ "type": "integer",
210
+ "minimum": 1
211
+ },
212
+ "phase": {
213
+ "type": "string",
214
+ "enum": [
215
+ "intent",
216
+ "navigation",
217
+ "domain",
218
+ "query",
219
+ "network",
220
+ "render",
221
+ "native",
222
+ "visual",
223
+ "completion"
224
+ ]
225
+ }
226
+ }
227
+ },
228
+ "milestone": {
229
+ "type": "object",
230
+ "additionalProperties": false,
231
+ "required": ["id", "event"],
232
+ "properties": {
233
+ "id": {
234
+ "type": "string",
235
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$"
236
+ },
237
+ "event": {
238
+ "type": "string"
239
+ },
240
+ "description": {
241
+ "type": "string"
242
+ },
243
+ "required": {
244
+ "type": "boolean",
245
+ "default": true
246
+ },
247
+ "timeoutMs": {
248
+ "type": "integer",
249
+ "minimum": 1
250
+ },
251
+ "phase": {
252
+ "type": "string",
253
+ "enum": [
254
+ "intent",
255
+ "navigation",
256
+ "domain",
257
+ "query",
258
+ "network",
259
+ "render",
260
+ "native",
261
+ "visual",
262
+ "completion"
263
+ ]
264
+ }
265
+ }
266
+ },
267
+ "budget": {
268
+ "type": "object",
269
+ "additionalProperties": false,
270
+ "required": ["name", "source", "metric", "unit", "limit"],
271
+ "properties": {
272
+ "name": {
273
+ "type": "string"
274
+ },
275
+ "source": {
276
+ "type": "string",
277
+ "enum": ["milestone", "artifact"]
278
+ },
279
+ "metric": {
280
+ "type": "string"
281
+ },
282
+ "unit": {
283
+ "type": "string",
284
+ "enum": ["ms", "count", "bytes", "percent", "boolean"]
285
+ },
286
+ "limit": {
287
+ "type": ["number", "integer", "boolean"]
288
+ },
289
+ "fromMilestone": {
290
+ "type": "string"
291
+ },
292
+ "toMilestone": {
293
+ "type": "string"
294
+ },
295
+ "artifact": {
296
+ "$ref": "#/$defs/artifactKind"
297
+ }
298
+ }
299
+ },
300
+ "step": {
301
+ "type": "object",
302
+ "additionalProperties": false,
303
+ "required": ["kind"],
304
+ "properties": {
305
+ "id": {
306
+ "type": "string"
307
+ },
308
+ "kind": {
309
+ "type": "string",
310
+ "enum": [
311
+ "launch",
312
+ "command",
313
+ "waitForMilestone",
314
+ "captureEvidence",
315
+ "gesture",
316
+ "assertUi"
317
+ ]
318
+ },
319
+ "command": {
320
+ "type": "string"
321
+ },
322
+ "milestone": {
323
+ "type": "string"
324
+ },
325
+ "artifact": {
326
+ "$ref": "#/$defs/artifactKind"
327
+ },
328
+ "driverAction": {
329
+ "$ref": "#/$defs/driverAction"
330
+ },
331
+ "selector": {
332
+ "$ref": "#/$defs/selector"
333
+ },
334
+ "timeoutMs": {
335
+ "type": "integer",
336
+ "minimum": 1
337
+ },
338
+ "required": {
339
+ "type": "boolean",
340
+ "default": true
341
+ },
342
+ "adapterOptions": {
343
+ "$ref": "#/$defs/adapterOptions"
344
+ }
345
+ }
346
+ },
347
+ "adapterOptions": {
348
+ "type": "object",
349
+ "additionalProperties": true
350
+ },
351
+ "driverAction": {
352
+ "type": "string",
353
+ "enum": [
354
+ "tap",
355
+ "scroll",
356
+ "assertVisible",
357
+ "inspectTree",
358
+ "screenshot",
359
+ "record",
360
+ "readLogs",
361
+ "collectPerfSignals"
362
+ ]
363
+ },
364
+ "selector": {
365
+ "type": "object",
366
+ "additionalProperties": false,
367
+ "required": ["kind", "value"],
368
+ "properties": {
369
+ "kind": {
370
+ "type": "string",
371
+ "enum": [
372
+ "testId",
373
+ "accessibilityId",
374
+ "accessibilityLabel",
375
+ "text",
376
+ "resourceId",
377
+ "xpath"
378
+ ]
379
+ },
380
+ "value": {
381
+ "type": "string",
382
+ "minLength": 1
383
+ },
384
+ "match": {
385
+ "type": "string",
386
+ "enum": ["exact", "contains", "regex"]
387
+ },
388
+ "platforms": {
389
+ "type": "array",
390
+ "minItems": 1,
391
+ "uniqueItems": true,
392
+ "items": {
393
+ "type": "string",
394
+ "enum": ["ios", "android"]
395
+ }
396
+ }
397
+ }
398
+ }
399
+ }
400
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-scenario-loop.dev/schemas/verdict.schema.json",
4
+ "title": "Agent Scenario Loop Verdict",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "scenarioId", "runId", "healthStatus", "verdictStatus"],
8
+ "properties": {
9
+ "schemaVersion": {
10
+ "type": "string",
11
+ "pattern": "^1\\.0\\.0$"
12
+ },
13
+ "scenarioId": {
14
+ "type": "string"
15
+ },
16
+ "flowId": {
17
+ "type": "string"
18
+ },
19
+ "runId": {
20
+ "type": "string"
21
+ },
22
+ "healthStatus": {
23
+ "type": "string",
24
+ "enum": ["passed", "failed", "partial"]
25
+ },
26
+ "verdictStatus": {
27
+ "type": "string",
28
+ "enum": ["passed", "failed", "inconclusive", "not_evaluated"]
29
+ },
30
+ "budgetChecks": {
31
+ "type": "array",
32
+ "items": {
33
+ "$ref": "#/$defs/budgetCheck"
34
+ }
35
+ },
36
+ "comparison": {
37
+ "type": "object",
38
+ "additionalProperties": false,
39
+ "properties": {
40
+ "artifact": {
41
+ "type": "string"
42
+ },
43
+ "status": {
44
+ "type": "string",
45
+ "enum": ["better", "worse", "unchanged", "inconclusive"]
46
+ }
47
+ }
48
+ },
49
+ "summary": {
50
+ "type": "string"
51
+ }
52
+ },
53
+ "$defs": {
54
+ "budgetCheck": {
55
+ "type": "object",
56
+ "additionalProperties": false,
57
+ "required": ["name", "source", "metric", "unit", "expected", "actual", "pass"],
58
+ "properties": {
59
+ "name": {
60
+ "type": "string"
61
+ },
62
+ "source": {
63
+ "type": "string",
64
+ "enum": ["milestone", "artifact"]
65
+ },
66
+ "metric": {
67
+ "type": "string"
68
+ },
69
+ "unit": {
70
+ "type": "string",
71
+ "enum": ["ms", "count", "bytes", "percent", "boolean"]
72
+ },
73
+ "expected": {
74
+ "type": ["number", "integer", "boolean"]
75
+ },
76
+ "actual": {
77
+ "type": ["number", "integer", "boolean", "null"]
78
+ },
79
+ "pass": {
80
+ "type": "boolean"
81
+ },
82
+ "notes": {
83
+ "type": "string"
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "runnerId": "example-evidence-provider",
4
+ "kind": "evidenceProvider",
5
+ "platforms": ["ios", "android"],
6
+ "capabilities": ["accessibility", "memory", "network", "profiler"],
7
+ "driverActions": ["collectPerfSignals"],
8
+ "artifactOutputs": ["accessibility", "memory", "network", "profiler", "signals"],
9
+ "lifecycle": ["prepare", "startWindow", "capture", "stopWindow", "finalize"],
10
+ "providerCommands": [
11
+ {
12
+ "id": "capture-accessibility",
13
+ "phase": "capture",
14
+ "command": "node",
15
+ "cwd": "..",
16
+ "args": [
17
+ "scripts/asl-capture-accessibility-provider.mjs",
18
+ "--platform",
19
+ "{platform}",
20
+ "--scenario",
21
+ "{scenarioId}",
22
+ "--run-id",
23
+ "{runId}",
24
+ "--out",
25
+ "{providerDir}/accessibility.json"
26
+ ],
27
+ "outputs": [
28
+ {
29
+ "channel": "provider",
30
+ "kind": "accessibility",
31
+ "path": "{providerDir}/accessibility.json"
32
+ }
33
+ ]
34
+ },
35
+ {
36
+ "id": "capture-profiler",
37
+ "phase": "capture",
38
+ "command": "node",
39
+ "cwd": "..",
40
+ "args": [
41
+ "scripts/asl-capture-profiler-provider.mjs",
42
+ "--platform",
43
+ "{platform}",
44
+ "--scenario",
45
+ "{scenarioId}",
46
+ "--run-id",
47
+ "{runId}",
48
+ "--out",
49
+ "{providerDir}/profiler.json",
50
+ "--memory-out",
51
+ "{providerDir}/memory.json",
52
+ "--network-out",
53
+ "{providerDir}/network.har"
54
+ ],
55
+ "outputs": [
56
+ {
57
+ "channel": "provider",
58
+ "kind": "profiler",
59
+ "path": "{providerDir}/profiler.json"
60
+ },
61
+ {
62
+ "channel": "signal",
63
+ "kind": "js",
64
+ "path": "{providerDir}/profiler.json"
65
+ },
66
+ {
67
+ "channel": "signal",
68
+ "kind": "memory",
69
+ "path": "{providerDir}/memory.json"
70
+ },
71
+ {
72
+ "channel": "signal",
73
+ "kind": "network",
74
+ "path": "{providerDir}/network.har"
75
+ }
76
+ ]
77
+ }
78
+ ],
79
+ "adapterOptionsSchema": {
80
+ "signalPath": "signals/js",
81
+ "window": "scenario"
82
+ }
83
+ }
@@ -0,0 +1,9 @@
1
+ # Agent Scenario Loop runtime artifacts
2
+ .asl.local.env
3
+ artifacts/asl/
4
+ artifacts/example-mobile-app/
5
+
6
+ # Device/simulator evidence captured during local proof runs
7
+ *.memgraph
8
+ *.trace
9
+ *.xcresult