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.
Files changed (92) hide show
  1. package/README.md +9 -1
  2. package/agents/github-octokit/.archal.json +8 -0
  3. package/agents/github-octokit/Dockerfile +8 -0
  4. package/agents/github-octokit/README.md +113 -0
  5. package/agents/github-octokit/agent.mjs +54 -0
  6. package/agents/github-octokit/package.json +9 -0
  7. package/agents/github-octokit/scenarios/test-repo-access.md +27 -0
  8. package/agents/google-workspace-local-tools/Dockerfile +6 -0
  9. package/agents/google-workspace-local-tools/README.md +58 -0
  10. package/agents/google-workspace-local-tools/agent.mjs +196 -0
  11. package/agents/google-workspace-local-tools/archal-harness.json +7 -0
  12. package/agents/google-workspace-local-tools/run-input.yaml +16 -0
  13. package/agents/google-workspace-local-tools/scenario.md +29 -0
  14. package/agents/hermes/.archal.json +8 -0
  15. package/agents/hermes/Dockerfile +46 -0
  16. package/agents/hermes/README.md +87 -0
  17. package/agents/hermes/SOUL.md +27 -0
  18. package/agents/hermes/config.yaml +34 -0
  19. package/agents/hermes/drive.mjs +113 -0
  20. package/agents/hermes/scenarios/stripe-customers-read-only.md +32 -0
  21. package/agents/openclaw/.archal.json +8 -0
  22. package/agents/openclaw/Dockerfile +96 -0
  23. package/agents/openclaw/README.md +120 -0
  24. package/agents/openclaw/drive.mjs +311 -0
  25. package/agents/openclaw/package.json +9 -0
  26. package/agents/openclaw/scenarios/github-issue-triage-read-only.md +44 -0
  27. package/agents/openclaw/workspace/AGENTS.md +23 -0
  28. package/agents/openclaw/workspace/IDENTITY.md +8 -0
  29. package/agents/openclaw/workspace/SOUL.md +14 -0
  30. package/agents/openclaw/workspace/TOOLS.md +35 -0
  31. package/agents/pagination-test/README.md +24 -0
  32. package/agents/pagination-test/scenario.md +24 -0
  33. package/agents/replay-capsule-harness/README.md +29 -0
  34. package/agents/replay-capsule-harness/observability-install-offline-e2e.mts +1517 -0
  35. package/agents/replay-capsule-harness/replay-capsule-e2e.mjs +104 -0
  36. package/clone-assets/apify/tools.json +213 -13
  37. package/clone-assets/calcom/tools.json +510 -0
  38. package/clone-assets/clickup/tools.json +1258 -0
  39. package/clone-assets/customerio/tools.json +386 -0
  40. package/clone-assets/datadog/tools.json +734 -0
  41. package/clone-assets/github/tools.json +312 -25
  42. package/clone-assets/gitlab/tools.json +999 -0
  43. package/clone-assets/google-workspace/tools.json +18 -6
  44. package/clone-assets/hubspot/tools.json +1406 -0
  45. package/clone-assets/jira/fidelity.json +1 -1
  46. package/clone-assets/jira/tools.json +266 -543
  47. package/clone-assets/linear/tools.json +238 -40
  48. package/clone-assets/ownerrez/tools.json +548 -0
  49. package/clone-assets/pricelabs/tools.json +343 -0
  50. package/clone-assets/sentry/tools.json +745 -0
  51. package/clone-assets/slack/tools.json +1 -2
  52. package/clone-assets/stripe/tools.json +185 -46
  53. package/clone-assets/supabase/tools.json +511 -14
  54. package/clone-assets/unipile/tools.json +408 -0
  55. package/clone-assets/webflow/tools.json +415 -0
  56. package/dist/autoloop-worker-types-BEb_E44z.d.cts +196 -0
  57. package/dist/cli.cjs +151033 -75282
  58. package/dist/commands/autoloop-hosted-worker.cjs +43942 -0
  59. package/dist/commands/autoloop-hosted-worker.d.cts +143 -0
  60. package/dist/commands/autoloop-pr-verification.cjs +4227 -0
  61. package/dist/commands/autoloop-pr-verification.d.cts +17 -0
  62. package/dist/{vitest/chunk-IVXSSEYS.js → commands/autoloop-result-parser.cjs} +16515 -18857
  63. package/dist/commands/autoloop-result-parser.d.cts +39 -0
  64. package/dist/commands/autoloop-worker.cjs +36163 -0
  65. package/dist/commands/autoloop-worker.d.cts +97 -0
  66. package/dist/harness.cjs +1 -0
  67. package/dist/index.cjs +1 -1
  68. package/dist/replay.cjs +49624 -0
  69. package/dist/replay.d.cts +4625 -0
  70. package/dist/scenarios.cjs +80343 -0
  71. package/dist/scenarios.d.cts +562 -0
  72. package/dist/vitest/chunk-6CBYFCFK.js +4667 -0
  73. package/dist/vitest/chunk-ARVS45PP.js +2764 -0
  74. package/dist/vitest/index.cjs +6079 -75089
  75. package/dist/vitest/index.d.ts +7 -6
  76. package/dist/vitest/index.js +8 -8
  77. package/dist/vitest/runtime/hosted-session-reaper.cjs +801 -34187
  78. package/dist/vitest/runtime/hosted-session-reaper.js +1 -1
  79. package/dist/vitest/runtime/setup-files.js +2 -2
  80. package/package.json +14 -9
  81. package/skills/archal-agent/SKILL.md +87 -0
  82. package/skills/autoloop/SKILL.md +376 -0
  83. package/skills/autoloop/references/hosted-sources.md +62 -0
  84. package/skills/autoloop/references/trace-schema-mapping.md +73 -0
  85. package/skills/eval/SKILL.md +35 -1
  86. package/skills/install-agent/SKILL.md +221 -0
  87. package/skills/onboard/SKILL.md +80 -0
  88. package/skills/scenario/SKILL.md +19 -4
  89. package/skills/seed/SKILL.md +237 -0
  90. package/dist/seed/dynamic-generator.cjs +0 -45564
  91. package/dist/seed/dynamic-generator.d.cts +0 -106
  92. 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 };