archal 0.9.20 → 0.10.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 (90) hide show
  1. package/README.md +59 -159
  2. package/agents/openclaw/Dockerfile +2 -1
  3. package/agents/openclaw/README.md +10 -17
  4. package/agents/openclaw/drive.mjs +21 -31
  5. package/agents/openclaw/extract-openclaw-response-text.mjs +49 -0
  6. package/agents/openclaw/scenarios/acceptance/github-escalation-and-cleanup.md +43 -0
  7. package/agents/openclaw/scenarios/acceptance/jira-linear-release-triage.md +39 -0
  8. package/agents/openclaw/scenarios/acceptance/multi-clone-customer-risk-review.md +45 -0
  9. package/agents/openclaw/scenarios/acceptance/slack-incident-handoff.md +42 -0
  10. package/agents/openclaw/scenarios/acceptance/stripe-dunning-remediation.md +40 -0
  11. package/agents/openclaw/scenarios/close-stale-issues.md +35 -0
  12. package/agents/openclaw/workspace/TOOLS.md +19 -0
  13. package/clone-assets/calcom/tools.json +1705 -153
  14. package/clone-assets/clickup/tools.json +2528 -541
  15. package/clone-assets/customerio/tools.json +2108 -144
  16. package/clone-assets/github/tools.json +1 -2
  17. package/clone-assets/gitlab/tools.json +10087 -398
  18. package/clone-assets/hubspot/tools.json +198 -0
  19. package/clone-assets/linear/tools.json +41 -1
  20. package/clone-assets/sentry/tools.json +2264 -188
  21. package/clone-assets/stripe/tools.json +114 -0
  22. package/clone-assets/webflow/tools.json +1895 -125
  23. package/dist/{autoloop-worker-types-BEb_E44z.d.cts → autoloop-worker-types-CHaclqtD.d.cts} +23 -59
  24. package/dist/cli.cjs +107175 -126959
  25. package/dist/commands/{autoloop-hosted-worker.cjs → autoloop-hosted-control-plane-client.cjs} +25657 -42736
  26. package/dist/commands/{autoloop-hosted-worker.d.cts → autoloop-hosted-control-plane-client.d.cts} +32 -42
  27. package/dist/commands/autoloop-pr-verification.cjs +607 -522
  28. package/dist/commands/autoloop-pr-verification.d.cts +3 -1
  29. package/dist/commands/autoloop-result-parser.cjs +2474 -2373
  30. package/dist/commands/autoloop-result-parser.d.cts +159 -2
  31. package/dist/commands/autoloop-worker.cjs +14565 -12240
  32. package/dist/commands/autoloop-worker.d.cts +10 -5
  33. package/dist/eval-shim.mjs +216 -0
  34. package/dist/index.cjs +15 -2
  35. package/dist/index.d.cts +3 -1
  36. package/dist/layer-1-ziaLpfLr.d.cts +62 -0
  37. package/dist/metafile-cjs.json +1 -0
  38. package/dist/reporter-entry.js +3 -0
  39. package/dist/{replay.cjs → sdk/index.cjs} +42979 -40973
  40. package/dist/sdk/index.d.cts +626 -0
  41. package/dist/vitest/{chunk-6CBYFCFK.js → chunk-2PDHTPZC.js} +289 -89
  42. package/dist/vitest/{chunk-ARVS45PP.js → chunk-7L4BBB6M.js} +123 -274
  43. package/dist/vitest/index.cjs +500 -816
  44. package/dist/vitest/index.d.ts +16 -81
  45. package/dist/vitest/index.js +40 -409
  46. package/dist/vitest/runtime/hosted-session-reaper.cjs +143 -293
  47. package/dist/vitest/runtime/hosted-session-reaper.js +1 -1
  48. package/dist/vitest/runtime/setup-files.js +2 -2
  49. package/manifest.json +9 -0
  50. package/package.json +14 -13
  51. package/skills/archal-agent/SKILL.md +0 -1
  52. package/skills/autoloop/SKILL.md +288 -273
  53. package/skills/autoloop/references/hosted-sources.md +49 -17
  54. package/skills/autoloop/references/trace-schema-mapping.md +83 -52
  55. package/skills/eval/SKILL.md +16 -48
  56. package/skills/free-account/SKILL.md +103 -0
  57. package/skills/install-agent/SKILL.md +16 -35
  58. package/skills/onboard/SKILL.md +13 -70
  59. package/skills/scenario/SKILL.md +30 -27
  60. package/skills/seed/SKILL.md +7 -6
  61. package/skills/vitest/SKILL.md +3 -2
  62. package/agents/github-octokit/.archal.json +0 -8
  63. package/agents/github-octokit/Dockerfile +0 -8
  64. package/agents/github-octokit/README.md +0 -113
  65. package/agents/github-octokit/agent.mjs +0 -54
  66. package/agents/github-octokit/package.json +0 -9
  67. package/agents/github-octokit/scenarios/test-repo-access.md +0 -27
  68. package/agents/google-workspace-local-tools/Dockerfile +0 -6
  69. package/agents/google-workspace-local-tools/README.md +0 -58
  70. package/agents/google-workspace-local-tools/agent.mjs +0 -196
  71. package/agents/google-workspace-local-tools/archal-harness.json +0 -7
  72. package/agents/google-workspace-local-tools/run-input.yaml +0 -16
  73. package/agents/google-workspace-local-tools/scenario.md +0 -29
  74. package/agents/hermes/.archal.json +0 -8
  75. package/agents/hermes/Dockerfile +0 -46
  76. package/agents/hermes/README.md +0 -87
  77. package/agents/hermes/SOUL.md +0 -27
  78. package/agents/hermes/config.yaml +0 -34
  79. package/agents/hermes/drive.mjs +0 -113
  80. package/agents/hermes/scenarios/stripe-customers-read-only.md +0 -32
  81. package/agents/pagination-test/README.md +0 -24
  82. package/agents/pagination-test/scenario.md +0 -24
  83. package/agents/replay-capsule-harness/README.md +0 -29
  84. package/agents/replay-capsule-harness/observability-install-offline-e2e.mts +0 -1517
  85. package/agents/replay-capsule-harness/replay-capsule-e2e.mjs +0 -104
  86. package/dist/harness.cjs +0 -63
  87. package/dist/harness.d.cts +0 -20
  88. package/dist/replay.d.cts +0 -4625
  89. package/dist/scenarios.cjs +0 -80343
  90. package/dist/scenarios.d.cts +0 -562
@@ -178,82 +178,36 @@ declare function clearArchalWebhooks(serviceName: string): Promise<void>;
178
178
  declare function waitForArchalWebhook(serviceName: string, matcher: string | WaitForWebhookOptions, options?: WaitForWebhookOptions): Promise<ArchalWebhookDelivery>;
179
179
 
180
180
  /**
181
- * Archal Vitest Reporter — sends test results to the Archal dashboard.
181
+ * Archal Vitest Reporter — observes Vitest lifecycle health.
182
182
  *
183
183
  * `withArchal()` and `archalVitestProject()` already install this reporter
184
184
  * automatically; you only need to reference it manually if you're composing
185
185
  * a fully custom vitest config outside those helpers.
186
186
  *
187
- * After each test run, results are POSTed to /api/test-results so they
188
- * appear in the Archal dashboard alongside scenario traces.
187
+ * Legacy /api/test-results upload is retired. Benchmark Results ingestion writes
188
+ * scenario attempts through the Benchmark Run submission API instead.
189
189
  */
190
190
 
191
191
  declare class ArchalReporter implements Reporter {
192
- private startTime;
193
192
  private ctx;
194
193
  private lifecycleMarkerPath;
195
- private workspaceReporterMarkerPath;
196
- private projects;
197
194
  /**
198
- * In-flight upload promise for the current run. Vitest v3+ fires both
199
- * `onFinished` and `onTestRunEnd` in parallel via `Promise.all` (see
200
- * vitest@3.x packages/vitest/src/node/test-run.ts), so without this guard
201
- * the reporter uploads results twice and the dashboard shows duplicate
202
- * rows. Reset at the start of each run (onTestRunStart / onWatcherRerun)
203
- * so watch-mode reruns still upload.
195
+ * In-flight lifecycle promise for the current run. Vitest v3+ fires both
196
+ * `onFinished` and `onTestRunEnd` in parallel via `Promise.all`, so without
197
+ * this guard the reporter emits duplicate diagnostics. Reset at the start
198
+ * of each run (onTestRunStart / onWatcherRerun) so watch-mode reruns still
199
+ * report.
204
200
  */
205
- private activeUpload;
201
+ private activeLifecycle;
206
202
  onInit(ctx: Vitest): void;
207
- /**
208
- * v3+ canonical start-of-run hook. Resetting the upload guard here lets
209
- * watch-mode reruns upload their own results.
210
- */
211
203
  onTestRunStart(_specifications?: readonly unknown[]): void;
212
- /**
213
- * v2 watch-mode start-of-rerun hook. Same purpose as onTestRunStart for
214
- * v3+. Vitest v2 has no onTestRunStart, so we reset here instead.
215
- */
216
204
  onWatcherRerun(_files?: string[], _trigger?: string): void;
217
- private decodeConfig;
218
- private buildProjectContext;
219
- private resolveProjects;
220
- /**
221
- * vitest v2 calls onFinished with an array of File objects (from @vitest/runner).
222
- * Each File extends Suite which has `tasks: Task[]`, and each Task has
223
- * `.type` ('test' | 'suite'), `.name`, `.result?.state`, `.result?.duration`.
224
- */
225
205
  onFinished(files?: readonly unknown[], _errors?: readonly unknown[]): Promise<void>;
226
- /**
227
- * vitest v3+ calls onTestRunEnd alongside onFinished (in parallel via
228
- * Promise.all). v4 drops onFinished entirely. The argument is an array of
229
- * test modules, each with nested children.
230
- */
231
206
  onTestRunEnd(testModules?: readonly unknown[], _unhandledErrors?: readonly unknown[], _reason?: unknown): Promise<void>;
232
- /**
233
- * Dedupe upload work when Vitest fires multiple end-of-run hooks. In
234
- * Vitest v3+ both `onFinished` and `onTestRunEnd` fire from the same
235
- * `Promise.all` in TestRun.end(); the first hook to enter wins and the
236
- * second awaits the same in-flight upload instead of POSTing a duplicate
237
- * row to /api/test-results. The resolved promise is kept on the instance
238
- * so any late hook still no-ops — the guard is only cleared at the start
239
- * of a new run (onTestRunStart / onWatcherRerun).
240
- */
241
- private runUploadOnce;
242
- private collectAndReport;
243
- /**
244
- * vitest v2: File extends Suite { tasks: Task[] }.
245
- * Task.type is 'test' | 'suite' | 'custom'. Suite tasks recurse.
246
- */
247
- private collectV2Files;
248
- /**
249
- * vitest v4: TestModule.children() → TestSuite[].children() → TestCase[]
250
- * All accessors are methods (not properties) in v4.
251
- */
252
- private collectV4Modules;
253
- private resolveProjectForFile;
254
- private partitionResults;
255
- private sendResults;
256
- private readSessionId;
207
+ private decodeConfig;
208
+ private resolveProjectName;
209
+ private runLifecycleOnce;
210
+ private reportLifecycleComplete;
257
211
  }
258
212
 
259
213
  interface ArchalVitestProjectOptions {
@@ -326,31 +280,12 @@ type ArchalVitestWorkspaceInput = readonly ArchalVitestWorkspaceProject[];
326
280
  * single `vitest.config.ts`, use `withArchal()` instead.
327
281
  */
328
282
  declare function archalVitestProject(options: ArchalVitestProjectOptions, testOptions?: ArchalVitestProjectTestOptions): ArchalVitestWorkspaceProjectConfig;
329
- /**
330
- * @deprecated Use {@link withArchal} instead. `archalVitestConfig({ services })`
331
- * is equivalent to `withArchal({}, { services })`, and `withArchal` additionally
332
- * preserves any existing `test` block fields (coverage, alias, globalSetup,
333
- * poolOptions, custom reporters, etc.) — which `archalVitestConfig` cannot
334
- * accept. This export will remain for a deprecation window; new code should
335
- * use `withArchal`.
336
- *
337
- * Migration:
338
- * ```ts
339
- * // before
340
- * test: archalVitestConfig({ services: { stripe: { mode: 'route' } } })
341
- * // after
342
- * test: withArchal({}, { services: { stripe: { mode: 'route' } } })
343
- * ```
344
- *
345
- * For `vitest.workspace.ts` usage, continue to use `archalVitestProject()`.
346
- */
347
- declare function archalVitestConfig(options: ArchalVitestProjectOptions, testOptions?: ArchalVitestProjectTestOptions): ArchalVitestBuiltTestConfig;
348
283
  /**
349
284
  * Root-level Vitest config for workspace users.
350
285
  *
351
286
  * Vitest only honors reporters from the root config, not from individual
352
287
  * workspace projects. Pair this with `vitest.workspace.ts` when using
353
- * `archalVitestProject()` / `archalVitestWorkspace()` so dashboard upload
288
+ * `archalVitestProject()` / `archalVitestWorkspace()` so reporter diagnostics
354
289
  * remains enabled.
355
290
  */
356
291
  declare function archalVitestRootConfig(): {
@@ -388,7 +323,7 @@ declare function archalVitestRootConfig(): {
388
323
  * entries are appended. ArchalReporter is appended only when the user's
389
324
  * reporter list doesn't already contain an ArchalReporter instance — so a
390
325
  * config carried over from an older helper or hand-rolled setup doesn't
391
- * end up with two reporters double-uploading to `/dashboard/tests`.
326
+ * end up with duplicate reporter lifecycle diagnostics.
392
327
  * Vitest's `'default'` reporter is only inserted when the user didn't
393
328
  * specify any reporters of their own.
394
329
  * - `env`: user keys preserved; Archal's required session-config keys added.
@@ -430,4 +365,4 @@ declare function withArchal<T extends Record<string, unknown>>(existingTest: T,
430
365
  */
431
366
  declare function archalVitestWorkspace<T extends ArchalVitestWorkspaceInput>(projects: T): T;
432
367
 
433
- export { ArchalReporter, type ArchalVitestBuiltTestConfig, type ArchalVitestProjectOptions, type ArchalVitestProjectTestOptions, type PublicSessionSnapshot as ArchalVitestPublicSessionSnapshot, type ArchalVitestWorkspaceInput, type ArchalVitestWorkspaceProject, type ArchalVitestWorkspaceProjectConfig, type ArchalWebhookDelivery, type WaitForWebhookOptions, archalVitestConfig, archalVitestProject, archalVitestRootConfig, archalVitestWorkspace, bootstrapArchalVitestRouting, classifySeed, clearArchalWebhooks, getInstalledArchalVitestRuntime, getInstalledArchalVitestSession, listArchalWebhooks, resetArchalClones, waitForArchalWebhook, withArchal };
368
+ export { ArchalReporter, type ArchalVitestBuiltTestConfig, type ArchalVitestProjectOptions, type ArchalVitestProjectTestOptions, type PublicSessionSnapshot as ArchalVitestPublicSessionSnapshot, type ArchalVitestWorkspaceInput, type ArchalVitestWorkspaceProject, type ArchalVitestWorkspaceProjectConfig, type ArchalWebhookDelivery, type WaitForWebhookOptions, archalVitestProject, archalVitestRootConfig, archalVitestWorkspace, bootstrapArchalVitestRouting, classifySeed, clearArchalWebhooks, getInstalledArchalVitestRuntime, getInstalledArchalVitestSession, listArchalWebhooks, resetArchalClones, waitForArchalWebhook, withArchal };