archal 0.9.18 → 0.9.20
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/README.md +9 -1
- package/agents/github-octokit/.archal.json +8 -0
- package/agents/github-octokit/Dockerfile +8 -0
- package/agents/github-octokit/README.md +113 -0
- package/agents/github-octokit/agent.mjs +54 -0
- package/agents/github-octokit/package.json +9 -0
- package/agents/github-octokit/scenarios/test-repo-access.md +27 -0
- package/agents/google-workspace-local-tools/Dockerfile +6 -0
- package/agents/google-workspace-local-tools/README.md +58 -0
- package/agents/google-workspace-local-tools/agent.mjs +196 -0
- package/agents/google-workspace-local-tools/archal-harness.json +7 -0
- package/agents/google-workspace-local-tools/run-input.yaml +16 -0
- package/agents/google-workspace-local-tools/scenario.md +29 -0
- package/agents/hermes/.archal.json +8 -0
- package/agents/hermes/Dockerfile +46 -0
- package/agents/hermes/README.md +87 -0
- package/agents/hermes/SOUL.md +27 -0
- package/agents/hermes/config.yaml +34 -0
- package/agents/hermes/drive.mjs +113 -0
- package/agents/hermes/scenarios/stripe-customers-read-only.md +32 -0
- package/agents/openclaw/.archal.json +8 -0
- package/agents/openclaw/Dockerfile +96 -0
- package/agents/openclaw/README.md +120 -0
- package/agents/openclaw/drive.mjs +311 -0
- package/agents/openclaw/package.json +9 -0
- package/agents/openclaw/scenarios/github-issue-triage-read-only.md +44 -0
- package/agents/openclaw/workspace/AGENTS.md +23 -0
- package/agents/openclaw/workspace/IDENTITY.md +8 -0
- package/agents/openclaw/workspace/SOUL.md +14 -0
- package/agents/openclaw/workspace/TOOLS.md +35 -0
- package/agents/pagination-test/README.md +24 -0
- package/agents/pagination-test/scenario.md +24 -0
- package/agents/replay-capsule-harness/README.md +29 -0
- package/agents/replay-capsule-harness/observability-install-offline-e2e.mts +1517 -0
- package/agents/replay-capsule-harness/replay-capsule-e2e.mjs +104 -0
- package/clone-assets/apify/tools.json +213 -13
- package/clone-assets/calcom/tools.json +510 -0
- package/clone-assets/clickup/tools.json +1258 -0
- package/clone-assets/customerio/tools.json +386 -0
- package/clone-assets/datadog/tools.json +734 -0
- package/clone-assets/github/tools.json +312 -25
- package/clone-assets/gitlab/tools.json +999 -0
- package/clone-assets/google-workspace/tools.json +18 -6
- package/clone-assets/hubspot/tools.json +1406 -0
- package/clone-assets/jira/fidelity.json +1 -1
- package/clone-assets/jira/tools.json +266 -543
- package/clone-assets/linear/tools.json +238 -40
- package/clone-assets/ownerrez/tools.json +548 -0
- package/clone-assets/pricelabs/tools.json +343 -0
- package/clone-assets/sentry/tools.json +745 -0
- package/clone-assets/slack/tools.json +1 -2
- package/clone-assets/stripe/tools.json +185 -46
- package/clone-assets/supabase/tools.json +511 -14
- package/clone-assets/unipile/tools.json +408 -0
- package/clone-assets/webflow/tools.json +415 -0
- package/dist/autoloop-worker-types-BEb_E44z.d.cts +196 -0
- package/dist/cli.cjs +151033 -75282
- package/dist/commands/autoloop-hosted-worker.cjs +43942 -0
- package/dist/commands/autoloop-hosted-worker.d.cts +143 -0
- package/dist/commands/autoloop-pr-verification.cjs +4227 -0
- package/dist/commands/autoloop-pr-verification.d.cts +17 -0
- package/dist/{vitest/chunk-IVXSSEYS.js → commands/autoloop-result-parser.cjs} +16515 -18857
- package/dist/commands/autoloop-result-parser.d.cts +39 -0
- package/dist/commands/autoloop-worker.cjs +36163 -0
- package/dist/commands/autoloop-worker.d.cts +97 -0
- package/dist/harness.cjs +1 -0
- package/dist/index.cjs +1 -1
- package/dist/replay.cjs +49624 -0
- package/dist/replay.d.cts +4625 -0
- package/dist/scenarios.cjs +80343 -0
- package/dist/scenarios.d.cts +562 -0
- package/dist/vitest/chunk-6CBYFCFK.js +4667 -0
- package/dist/vitest/chunk-ARVS45PP.js +2764 -0
- package/dist/vitest/index.cjs +6079 -75089
- package/dist/vitest/index.d.ts +7 -6
- package/dist/vitest/index.js +8 -8
- package/dist/vitest/runtime/hosted-session-reaper.cjs +801 -34187
- package/dist/vitest/runtime/hosted-session-reaper.js +1 -1
- package/dist/vitest/runtime/setup-files.js +2 -2
- package/package.json +14 -9
- package/skills/archal-agent/SKILL.md +87 -0
- package/skills/autoloop/SKILL.md +376 -0
- package/skills/autoloop/references/hosted-sources.md +62 -0
- package/skills/autoloop/references/trace-schema-mapping.md +73 -0
- package/skills/eval/SKILL.md +35 -1
- package/skills/install-agent/SKILL.md +221 -0
- package/skills/onboard/SKILL.md +80 -0
- package/skills/scenario/SKILL.md +19 -4
- package/skills/seed/SKILL.md +237 -0
- package/dist/seed/dynamic-generator.cjs +0 -45564
- package/dist/seed/dynamic-generator.d.cts +0 -106
- package/dist/vitest/chunk-CTSN67QR.js +0 -47188
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
{
|
|
2
|
+
"clone": "webflow",
|
|
3
|
+
"tools": [
|
|
4
|
+
{
|
|
5
|
+
"name": "webflow_list_sites",
|
|
6
|
+
"description": "List sites the token can access. Backed by GET /v2/sites.",
|
|
7
|
+
"inputSchema": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {},
|
|
10
|
+
"additionalProperties": false
|
|
11
|
+
},
|
|
12
|
+
"hidden": false,
|
|
13
|
+
"annotations": {
|
|
14
|
+
"readOnlyHint": true
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "webflow_get_site",
|
|
19
|
+
"description": "Get a site by id. Backed by GET /v2/sites/{site_id}.",
|
|
20
|
+
"inputSchema": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"site_id": {
|
|
24
|
+
"type": "string"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"required": [
|
|
28
|
+
"site_id"
|
|
29
|
+
],
|
|
30
|
+
"additionalProperties": false
|
|
31
|
+
},
|
|
32
|
+
"hidden": false,
|
|
33
|
+
"annotations": {
|
|
34
|
+
"readOnlyHint": true
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "webflow_list_pages",
|
|
39
|
+
"description": "List static pages of a site. Backed by GET /v2/sites/{site_id}/pages.",
|
|
40
|
+
"inputSchema": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"site_id": {
|
|
44
|
+
"type": "string"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"required": [
|
|
48
|
+
"site_id"
|
|
49
|
+
],
|
|
50
|
+
"additionalProperties": false
|
|
51
|
+
},
|
|
52
|
+
"hidden": false,
|
|
53
|
+
"annotations": {
|
|
54
|
+
"readOnlyHint": true
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "webflow_list_assets",
|
|
59
|
+
"description": "List assets of a site. Backed by GET /v2/sites/{site_id}/assets.",
|
|
60
|
+
"inputSchema": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"properties": {
|
|
63
|
+
"site_id": {
|
|
64
|
+
"type": "string"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"required": [
|
|
68
|
+
"site_id"
|
|
69
|
+
],
|
|
70
|
+
"additionalProperties": false
|
|
71
|
+
},
|
|
72
|
+
"hidden": false,
|
|
73
|
+
"annotations": {
|
|
74
|
+
"readOnlyHint": true
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "webflow_list_collections",
|
|
79
|
+
"description": "List CMS collections of a site. Backed by GET /v2/sites/{site_id}/collections.",
|
|
80
|
+
"inputSchema": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"properties": {
|
|
83
|
+
"site_id": {
|
|
84
|
+
"type": "string"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"required": [
|
|
88
|
+
"site_id"
|
|
89
|
+
],
|
|
90
|
+
"additionalProperties": false
|
|
91
|
+
},
|
|
92
|
+
"hidden": false,
|
|
93
|
+
"annotations": {
|
|
94
|
+
"readOnlyHint": true
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "webflow_get_collection",
|
|
99
|
+
"description": "Get a collection with its full field schema. Backed by GET /v2/collections/{collection_id}.",
|
|
100
|
+
"inputSchema": {
|
|
101
|
+
"type": "object",
|
|
102
|
+
"properties": {
|
|
103
|
+
"collection_id": {
|
|
104
|
+
"type": "string"
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"required": [
|
|
108
|
+
"collection_id"
|
|
109
|
+
],
|
|
110
|
+
"additionalProperties": false
|
|
111
|
+
},
|
|
112
|
+
"hidden": false,
|
|
113
|
+
"annotations": {
|
|
114
|
+
"readOnlyHint": true
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"name": "webflow_create_collection",
|
|
119
|
+
"description": "Create a CMS collection. Backed by POST /v2/sites/{site_id}/collections.",
|
|
120
|
+
"inputSchema": {
|
|
121
|
+
"type": "object",
|
|
122
|
+
"properties": {
|
|
123
|
+
"site_id": {
|
|
124
|
+
"type": "string"
|
|
125
|
+
},
|
|
126
|
+
"displayName": {
|
|
127
|
+
"type": "string"
|
|
128
|
+
},
|
|
129
|
+
"singularName": {
|
|
130
|
+
"type": "string"
|
|
131
|
+
},
|
|
132
|
+
"slug": {
|
|
133
|
+
"type": "string"
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"required": [
|
|
137
|
+
"site_id",
|
|
138
|
+
"displayName",
|
|
139
|
+
"singularName"
|
|
140
|
+
],
|
|
141
|
+
"additionalProperties": false
|
|
142
|
+
},
|
|
143
|
+
"hidden": false
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"name": "webflow_delete_collection",
|
|
147
|
+
"description": "Delete a CMS collection. Backed by DELETE /v2/collections/{collection_id}.",
|
|
148
|
+
"inputSchema": {
|
|
149
|
+
"type": "object",
|
|
150
|
+
"properties": {
|
|
151
|
+
"collection_id": {
|
|
152
|
+
"type": "string"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"required": [
|
|
156
|
+
"collection_id"
|
|
157
|
+
],
|
|
158
|
+
"additionalProperties": false
|
|
159
|
+
},
|
|
160
|
+
"hidden": false
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"name": "webflow_create_collection_field",
|
|
164
|
+
"description": "Add a field to a CMS collection. Backed by POST /v2/collections/{collection_id}/fields.",
|
|
165
|
+
"inputSchema": {
|
|
166
|
+
"type": "object",
|
|
167
|
+
"properties": {
|
|
168
|
+
"collection_id": {
|
|
169
|
+
"type": "string"
|
|
170
|
+
},
|
|
171
|
+
"type": {
|
|
172
|
+
"type": "string"
|
|
173
|
+
},
|
|
174
|
+
"displayName": {
|
|
175
|
+
"type": "string"
|
|
176
|
+
},
|
|
177
|
+
"helpText": {
|
|
178
|
+
"type": "string"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"required": [
|
|
182
|
+
"collection_id",
|
|
183
|
+
"type",
|
|
184
|
+
"displayName"
|
|
185
|
+
],
|
|
186
|
+
"additionalProperties": false
|
|
187
|
+
},
|
|
188
|
+
"hidden": false
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"name": "webflow_list_collection_items",
|
|
192
|
+
"description": "List staged items of a collection. Backed by GET /v2/collections/{collection_id}/items.",
|
|
193
|
+
"inputSchema": {
|
|
194
|
+
"type": "object",
|
|
195
|
+
"properties": {
|
|
196
|
+
"collection_id": {
|
|
197
|
+
"type": "string"
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
"required": [
|
|
201
|
+
"collection_id"
|
|
202
|
+
],
|
|
203
|
+
"additionalProperties": false
|
|
204
|
+
},
|
|
205
|
+
"hidden": false,
|
|
206
|
+
"annotations": {
|
|
207
|
+
"readOnlyHint": true
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"name": "webflow_list_live_collection_items",
|
|
212
|
+
"description": "List LIVE (published) items of a collection. Backed by GET /v2/collections/{collection_id}/items/live.",
|
|
213
|
+
"inputSchema": {
|
|
214
|
+
"type": "object",
|
|
215
|
+
"properties": {
|
|
216
|
+
"collection_id": {
|
|
217
|
+
"type": "string"
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
"required": [
|
|
221
|
+
"collection_id"
|
|
222
|
+
],
|
|
223
|
+
"additionalProperties": false
|
|
224
|
+
},
|
|
225
|
+
"hidden": false,
|
|
226
|
+
"annotations": {
|
|
227
|
+
"readOnlyHint": true
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"name": "webflow_get_collection_item",
|
|
232
|
+
"description": "Get a single collection item. Backed by GET /v2/collections/{collection_id}/items/{item_id}.",
|
|
233
|
+
"inputSchema": {
|
|
234
|
+
"type": "object",
|
|
235
|
+
"properties": {
|
|
236
|
+
"collection_id": {
|
|
237
|
+
"type": "string"
|
|
238
|
+
},
|
|
239
|
+
"item_id": {
|
|
240
|
+
"type": "string"
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
"required": [
|
|
244
|
+
"collection_id",
|
|
245
|
+
"item_id"
|
|
246
|
+
],
|
|
247
|
+
"additionalProperties": false
|
|
248
|
+
},
|
|
249
|
+
"hidden": false,
|
|
250
|
+
"annotations": {
|
|
251
|
+
"readOnlyHint": true
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"name": "webflow_create_collection_item",
|
|
256
|
+
"description": "Create a staged collection item (202 Accepted). Backed by POST /v2/collections/{collection_id}/items.",
|
|
257
|
+
"inputSchema": {
|
|
258
|
+
"type": "object",
|
|
259
|
+
"properties": {
|
|
260
|
+
"collection_id": {
|
|
261
|
+
"type": "string"
|
|
262
|
+
},
|
|
263
|
+
"isDraft": {
|
|
264
|
+
"type": "boolean"
|
|
265
|
+
},
|
|
266
|
+
"fieldData": {
|
|
267
|
+
"type": "object",
|
|
268
|
+
"propertyNames": {
|
|
269
|
+
"type": "string"
|
|
270
|
+
},
|
|
271
|
+
"additionalProperties": {}
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
"required": [
|
|
275
|
+
"collection_id",
|
|
276
|
+
"fieldData"
|
|
277
|
+
],
|
|
278
|
+
"additionalProperties": false
|
|
279
|
+
},
|
|
280
|
+
"hidden": false
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"name": "webflow_update_collection_item",
|
|
284
|
+
"description": "Update fieldData on a staged collection item. Backed by PATCH /v2/collections/{collection_id}/items/{item_id}.",
|
|
285
|
+
"inputSchema": {
|
|
286
|
+
"type": "object",
|
|
287
|
+
"properties": {
|
|
288
|
+
"collection_id": {
|
|
289
|
+
"type": "string"
|
|
290
|
+
},
|
|
291
|
+
"item_id": {
|
|
292
|
+
"type": "string"
|
|
293
|
+
},
|
|
294
|
+
"fieldData": {
|
|
295
|
+
"type": "object",
|
|
296
|
+
"propertyNames": {
|
|
297
|
+
"type": "string"
|
|
298
|
+
},
|
|
299
|
+
"additionalProperties": {}
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
"required": [
|
|
303
|
+
"collection_id",
|
|
304
|
+
"item_id",
|
|
305
|
+
"fieldData"
|
|
306
|
+
],
|
|
307
|
+
"additionalProperties": false
|
|
308
|
+
},
|
|
309
|
+
"hidden": false
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"name": "webflow_delete_collection_item",
|
|
313
|
+
"description": "Delete a collection item (204). Backed by DELETE /v2/collections/{collection_id}/items/{item_id}.",
|
|
314
|
+
"inputSchema": {
|
|
315
|
+
"type": "object",
|
|
316
|
+
"properties": {
|
|
317
|
+
"collection_id": {
|
|
318
|
+
"type": "string"
|
|
319
|
+
},
|
|
320
|
+
"item_id": {
|
|
321
|
+
"type": "string"
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
"required": [
|
|
325
|
+
"collection_id",
|
|
326
|
+
"item_id"
|
|
327
|
+
],
|
|
328
|
+
"additionalProperties": false
|
|
329
|
+
},
|
|
330
|
+
"hidden": false
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"name": "webflow_list_webhooks",
|
|
334
|
+
"description": "List webhooks of a site. Backed by GET /v2/sites/{site_id}/webhooks.",
|
|
335
|
+
"inputSchema": {
|
|
336
|
+
"type": "object",
|
|
337
|
+
"properties": {
|
|
338
|
+
"site_id": {
|
|
339
|
+
"type": "string"
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
"required": [
|
|
343
|
+
"site_id"
|
|
344
|
+
],
|
|
345
|
+
"additionalProperties": false
|
|
346
|
+
},
|
|
347
|
+
"hidden": false,
|
|
348
|
+
"annotations": {
|
|
349
|
+
"readOnlyHint": true
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"name": "webflow_get_webhook",
|
|
354
|
+
"description": "Get a webhook by id. Backed by GET /v2/webhooks/{webhook_id}.",
|
|
355
|
+
"inputSchema": {
|
|
356
|
+
"type": "object",
|
|
357
|
+
"properties": {
|
|
358
|
+
"webhook_id": {
|
|
359
|
+
"type": "string"
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
"required": [
|
|
363
|
+
"webhook_id"
|
|
364
|
+
],
|
|
365
|
+
"additionalProperties": false
|
|
366
|
+
},
|
|
367
|
+
"hidden": false,
|
|
368
|
+
"annotations": {
|
|
369
|
+
"readOnlyHint": true
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"name": "webflow_create_webhook",
|
|
374
|
+
"description": "Create a webhook (201; response carries a fresh secretKey). Backed by POST /v2/sites/{site_id}/webhooks.",
|
|
375
|
+
"inputSchema": {
|
|
376
|
+
"type": "object",
|
|
377
|
+
"properties": {
|
|
378
|
+
"site_id": {
|
|
379
|
+
"type": "string"
|
|
380
|
+
},
|
|
381
|
+
"triggerType": {
|
|
382
|
+
"type": "string"
|
|
383
|
+
},
|
|
384
|
+
"url": {
|
|
385
|
+
"type": "string"
|
|
386
|
+
}
|
|
387
|
+
},
|
|
388
|
+
"required": [
|
|
389
|
+
"site_id",
|
|
390
|
+
"triggerType",
|
|
391
|
+
"url"
|
|
392
|
+
],
|
|
393
|
+
"additionalProperties": false
|
|
394
|
+
},
|
|
395
|
+
"hidden": false
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"name": "webflow_delete_webhook",
|
|
399
|
+
"description": "Delete a webhook (204). Backed by DELETE /v2/webhooks/{webhook_id}.",
|
|
400
|
+
"inputSchema": {
|
|
401
|
+
"type": "object",
|
|
402
|
+
"properties": {
|
|
403
|
+
"webhook_id": {
|
|
404
|
+
"type": "string"
|
|
405
|
+
}
|
|
406
|
+
},
|
|
407
|
+
"required": [
|
|
408
|
+
"webhook_id"
|
|
409
|
+
],
|
|
410
|
+
"additionalProperties": false
|
|
411
|
+
},
|
|
412
|
+
"hidden": false
|
|
413
|
+
}
|
|
414
|
+
]
|
|
415
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
declare const AUTOLOOP_PHASES: readonly ["queued", "grade", "seed", "reproduce", "fix_pr", "done"];
|
|
2
|
+
declare const AUTOLOOP_ACTIVE_PHASES: readonly ["grade", "seed", "reproduce", "fix_pr"];
|
|
3
|
+
declare const AUTOLOOP_PHASE_HEALTH_STATUSES: readonly ["running", "completed", "stream_reconnect_recovered", "stalled_no_artifact", "timeout", "failed"];
|
|
4
|
+
type AutoloopExecutionPolicy = 'observe' | 'grade' | 'seed' | 'reproduce' | 'fix';
|
|
5
|
+
type AutoloopRunResultSubmissionPhaseResult = {
|
|
6
|
+
phase: 'grade';
|
|
7
|
+
status: 'passed' | 'failed' | 'flaky' | 'inconclusive' | 'infrastructure';
|
|
8
|
+
summary: string;
|
|
9
|
+
confidence?: number | null;
|
|
10
|
+
failureClass?: string | null;
|
|
11
|
+
payload?: unknown;
|
|
12
|
+
} | {
|
|
13
|
+
phase: 'seed';
|
|
14
|
+
status: 'seeded' | 'blocked' | 'failed';
|
|
15
|
+
summary: string;
|
|
16
|
+
payload?: unknown;
|
|
17
|
+
} | {
|
|
18
|
+
phase: 'reproduce';
|
|
19
|
+
status: 'reproduced' | 'not_reproduced' | 'flaky' | 'blocked';
|
|
20
|
+
summary: string;
|
|
21
|
+
reason?: string | null;
|
|
22
|
+
diagnostic?: string | null;
|
|
23
|
+
hasCloneEvidence?: boolean;
|
|
24
|
+
hasCriteriaEvidence?: boolean;
|
|
25
|
+
payload?: unknown;
|
|
26
|
+
replayPlan?: unknown;
|
|
27
|
+
regressionPack?: unknown;
|
|
28
|
+
assertionResult?: unknown;
|
|
29
|
+
} | {
|
|
30
|
+
phase: 'fix_pr';
|
|
31
|
+
status: 'pr_open' | 'checks_passing' | 'blocked' | 'failed';
|
|
32
|
+
summary: string;
|
|
33
|
+
issueUrl?: string | null;
|
|
34
|
+
prUrl?: string | null;
|
|
35
|
+
branchName?: string | null;
|
|
36
|
+
baseBranch?: string | null;
|
|
37
|
+
latestCheckState?: 'unknown' | 'pending' | 'passing' | 'failing' | 'blocked' | 'no_checks' | null;
|
|
38
|
+
localValidationStatus?: string | null;
|
|
39
|
+
blockingReason?: string | null;
|
|
40
|
+
postFixReproduceStatus?: string | null;
|
|
41
|
+
postFixReproduceReason?: string | null;
|
|
42
|
+
postFixReproduceHasCloneEvidence?: boolean;
|
|
43
|
+
postFixReproduceHasCriteriaEvidence?: boolean;
|
|
44
|
+
postFixReproduceIdentityMatchesPreFix?: boolean;
|
|
45
|
+
postFixReproduceCommitSha?: string | null;
|
|
46
|
+
postFixReproduceFailureSummary?: string | null;
|
|
47
|
+
postFixReproduceCloneEvidenceExpected?: boolean;
|
|
48
|
+
reproductionReverified?: boolean;
|
|
49
|
+
payload?: unknown;
|
|
50
|
+
};
|
|
51
|
+
type AutoloopRunResultSubmissionBody = Record<string, unknown>;
|
|
52
|
+
type AutoloopBenchmarkExportConfig = {
|
|
53
|
+
enabled: boolean;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
type AutoloopPhase = (typeof AUTOLOOP_PHASES)[number];
|
|
57
|
+
type AutoloopActivePhase = (typeof AUTOLOOP_ACTIVE_PHASES)[number];
|
|
58
|
+
type AutoloopPhaseHealthStatus = (typeof AUTOLOOP_PHASE_HEALTH_STATUSES)[number];
|
|
59
|
+
|
|
60
|
+
interface AutoloopGithubPreflightInput {
|
|
61
|
+
repository: string | undefined;
|
|
62
|
+
token: string | undefined;
|
|
63
|
+
baseBranch?: string;
|
|
64
|
+
probeBranch?: string;
|
|
65
|
+
probePullRequestWrite?: boolean;
|
|
66
|
+
fetchImpl?: typeof fetch;
|
|
67
|
+
}
|
|
68
|
+
interface AutoloopGithubPreflightResult {
|
|
69
|
+
repository: string;
|
|
70
|
+
baseBranch: string;
|
|
71
|
+
baseSha: string;
|
|
72
|
+
probeBranch: string;
|
|
73
|
+
cleanup: {
|
|
74
|
+
staleBranchDeleted?: boolean;
|
|
75
|
+
branchDeleted: boolean;
|
|
76
|
+
error?: string;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
declare function preflightGithubAutoloopPermissions(input: AutoloopGithubPreflightInput): Promise<AutoloopGithubPreflightResult>;
|
|
80
|
+
|
|
81
|
+
interface AutoloopWorkerJob {
|
|
82
|
+
traceId: string;
|
|
83
|
+
contentHash: string;
|
|
84
|
+
tracePath: string;
|
|
85
|
+
traceContents: string;
|
|
86
|
+
currentPhase?: Exclude<AutoloopPhase, 'done'>;
|
|
87
|
+
repoDir: string;
|
|
88
|
+
artifactDir: string;
|
|
89
|
+
gradesDir: string;
|
|
90
|
+
seedsDir: string;
|
|
91
|
+
runsDir: string;
|
|
92
|
+
fixesDir: string;
|
|
93
|
+
failedDir: string;
|
|
94
|
+
logsDir: string;
|
|
95
|
+
gitRepository?: string;
|
|
96
|
+
gitBranch?: string;
|
|
97
|
+
githubInstallationId?: string;
|
|
98
|
+
githubInstallationToken?: string;
|
|
99
|
+
executionPolicy?: AutoloopExecutionPolicy;
|
|
100
|
+
benchmarkExport?: AutoloopBenchmarkExportConfig;
|
|
101
|
+
continueFromPrOpen?: boolean;
|
|
102
|
+
ragReplayPackagePath?: string;
|
|
103
|
+
ragAnswerBenchmarkPath?: string;
|
|
104
|
+
ragRetrieverReplayPath?: string;
|
|
105
|
+
agentStream?: AutoloopAgentStreamEmitter;
|
|
106
|
+
}
|
|
107
|
+
type AutoloopAgentStreamChunk = {
|
|
108
|
+
phaseId: string;
|
|
109
|
+
channel: 'stdout' | 'stderr';
|
|
110
|
+
text: string;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Live agent-stream sink wired by the hosted worker. The E2B worker feeds it
|
|
114
|
+
* redacted incremental Codex output; the emitter batches customer-visible
|
|
115
|
+
* deltas to the control plane. Every method is fail-open and must never
|
|
116
|
+
* throw — stream emission failures cannot affect the run itself.
|
|
117
|
+
*/
|
|
118
|
+
interface AutoloopAgentStreamEmitter {
|
|
119
|
+
emitChunk(chunk: AutoloopAgentStreamChunk): void;
|
|
120
|
+
completePhase(phaseId: string): Promise<void>;
|
|
121
|
+
completeOpenPhases(): Promise<void>;
|
|
122
|
+
}
|
|
123
|
+
interface AutoloopWorkerResult {
|
|
124
|
+
sandboxId: string;
|
|
125
|
+
stdout: string;
|
|
126
|
+
stderr: string;
|
|
127
|
+
codexModel?: string;
|
|
128
|
+
sandboxTemplate?: string;
|
|
129
|
+
runtimeSeconds?: number;
|
|
130
|
+
logDir?: string;
|
|
131
|
+
artifactBundlePath?: string;
|
|
132
|
+
}
|
|
133
|
+
interface AutoloopWorkerProgressEvent {
|
|
134
|
+
stage: string;
|
|
135
|
+
sandboxId?: string;
|
|
136
|
+
phaseId?: string;
|
|
137
|
+
attempt?: number;
|
|
138
|
+
maxAttempts?: number;
|
|
139
|
+
message?: string;
|
|
140
|
+
artifactBundlePath?: string;
|
|
141
|
+
}
|
|
142
|
+
interface AutoloopWorkerRunOptions {
|
|
143
|
+
signal?: AbortSignal;
|
|
144
|
+
onProgress?: (event: AutoloopWorkerProgressEvent) => void;
|
|
145
|
+
}
|
|
146
|
+
interface AutoloopWorker {
|
|
147
|
+
run(job: AutoloopWorkerJob, options?: AutoloopWorkerRunOptions): Promise<AutoloopWorkerResult>;
|
|
148
|
+
}
|
|
149
|
+
type AutoloopGithubInstallationTokenPurpose = 'setup' | 'fix';
|
|
150
|
+
interface AutoloopGithubInstallationTokenContext {
|
|
151
|
+
purpose: AutoloopGithubInstallationTokenPurpose;
|
|
152
|
+
}
|
|
153
|
+
interface E2BAutoloopWorkerOptions {
|
|
154
|
+
resolveApiKey?: () => Promise<string | undefined>;
|
|
155
|
+
resolveGithubInstallationToken?: (job: AutoloopWorkerJob, context: AutoloopGithubInstallationTokenContext) => Promise<string | undefined>;
|
|
156
|
+
preflightGithubAutoloopPermissions?: (input: AutoloopGithubPreflightInput) => Promise<AutoloopGithubPreflightResult>;
|
|
157
|
+
sandboxPlacementMaxAttempts?: number;
|
|
158
|
+
sandboxPlacementRetryDelayMs?: number;
|
|
159
|
+
sandboxPlacementAttemptTimeoutMs?: number;
|
|
160
|
+
}
|
|
161
|
+
interface AutoloopSandboxCreateAttemptDiagnostic {
|
|
162
|
+
attempt: number;
|
|
163
|
+
maxAttempts: number;
|
|
164
|
+
retryable: boolean;
|
|
165
|
+
status?: number;
|
|
166
|
+
message: string;
|
|
167
|
+
}
|
|
168
|
+
interface AzureCodexAuth {
|
|
169
|
+
apiKey: string;
|
|
170
|
+
baseUrl: string;
|
|
171
|
+
deployment: string;
|
|
172
|
+
}
|
|
173
|
+
declare class AutoloopWorkerError extends Error {
|
|
174
|
+
readonly sandboxId?: string;
|
|
175
|
+
readonly logDir?: string;
|
|
176
|
+
readonly artifactBundlePath?: string;
|
|
177
|
+
readonly phaseId?: string;
|
|
178
|
+
readonly codexModel?: string;
|
|
179
|
+
readonly sandboxTemplate?: string;
|
|
180
|
+
readonly runtimeSeconds?: number;
|
|
181
|
+
readonly sandboxPlacementAttempts?: AutoloopSandboxCreateAttemptDiagnostic[];
|
|
182
|
+
constructor(message: string, details: {
|
|
183
|
+
sandboxId?: string;
|
|
184
|
+
logDir?: string;
|
|
185
|
+
artifactBundlePath?: string;
|
|
186
|
+
phaseId?: string;
|
|
187
|
+
codexModel?: string;
|
|
188
|
+
sandboxTemplate?: string;
|
|
189
|
+
runtimeSeconds?: number;
|
|
190
|
+
sandboxPlacementAttempts?: AutoloopSandboxCreateAttemptDiagnostic[];
|
|
191
|
+
cause?: unknown;
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
declare function isAutoloopWorkerError(error: unknown): error is AutoloopWorkerError;
|
|
195
|
+
|
|
196
|
+
export { type AutoloopRunResultSubmissionPhaseResult as A, type E2BAutoloopWorkerOptions as E, type AutoloopPhaseHealthStatus as a, type AutoloopWorkerJob as b, type AutoloopWorkerResult as c, type AzureCodexAuth as d, type AutoloopWorker as e, type AutoloopGithubInstallationTokenContext as f, AutoloopWorkerError as g, type AutoloopActivePhase as h, isAutoloopWorkerError as i, type AutoloopExecutionPolicy as j, type AutoloopRunResultSubmissionBody as k, preflightGithubAutoloopPermissions as p };
|