opencode-swarm 7.132.2 → 7.133.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 (97) hide show
  1. package/README.md +4 -1
  2. package/dist/agents/agent-output-schema.d.ts +74 -0
  3. package/dist/agents/critic.d.ts +2 -1
  4. package/dist/agents/reviewer.d.ts +1 -1
  5. package/dist/background/completion-observer.d.ts +2 -0
  6. package/dist/background/pending-delegations.d.ts +39 -1
  7. package/dist/background/stage-b-gates.d.ts +2 -0
  8. package/dist/cli/{config-doctor-bp5spb79.js → config-doctor-8nbdwnn6.js} +2 -2
  9. package/dist/cli/{core-wg3re04e.js → core-egwpry19.js} +2 -2
  10. package/dist/cli/{curation-policy-7zp2m9gv.js → curation-policy-gae3xm5d.js} +2 -2
  11. package/dist/cli/{curator-h067mrcc.js → curator-e88bm4mg.js} +17 -18
  12. package/dist/cli/{curator-llm-factory-605d08hf.js → curator-llm-factory-1a7esr69.js} +17 -18
  13. package/dist/cli/{evidence-summary-service-jfagmvrh.js → evidence-summary-service-nhsmsap8.js} +3 -3
  14. package/dist/cli/{guardrail-explain-s7vzm6z7.js → guardrail-explain-zgja2b9m.js} +18 -19
  15. package/dist/cli/{guardrail-log-aa112fxv.js → guardrail-log-fjgyx76r.js} +3 -3
  16. package/dist/cli/{hive-promoter-nv0m5rzk.js → hive-promoter-2b04e0wh.js} +17 -18
  17. package/dist/cli/{index-9cf1yr67.js → index-0vd91yb8.js} +3 -3
  18. package/dist/cli/{index-w9cb5zwh.js → index-17zjp67y.js} +1 -1
  19. package/dist/cli/{index-djwemsjn.js → index-66zght9d.js} +1 -1
  20. package/dist/cli/{index-6ccynjv3.js → index-7ftthvqt.js} +2 -2
  21. package/dist/cli/{index-jgfcp9bh.js → index-bz08438z.js} +1 -1
  22. package/dist/cli/{index-mwkwyej1.js → index-cpest8sa.js} +5 -5
  23. package/dist/cli/{index-y5qp59rc.js → index-hfpw5m0e.js} +9 -3
  24. package/dist/cli/{index-3s9rfnqq.js → index-j5pnah1w.js} +4 -4
  25. package/dist/cli/{index-jj4earrh.js → index-kc1m6vpr.js} +2 -2
  26. package/dist/cli/{index-8d3m0ge3.js → index-mhcge2ry.js} +34 -23
  27. package/dist/cli/{index-yvv1wt2h.js → index-mmvaf4t6.js} +1 -1
  28. package/dist/cli/{index-f6480ee6.js → index-mwqfyjja.js} +37751 -33949
  29. package/dist/cli/{index-fgcmxjp7.js → index-sp7tm8t7.js} +1 -1
  30. package/dist/cli/{index-k4tmx21m.js → index-sw82jvf2.js} +2 -2
  31. package/dist/cli/{index-630badhp.js → index-tj2mkfb3.js} +149 -6
  32. package/dist/cli/{index-rt5jgktq.js → index-wz36r0fk.js} +1 -1
  33. package/dist/cli/{index-bvp2v7k1.js → index-wzb4dv5s.js} +263 -16
  34. package/dist/cli/index.js +21 -20
  35. package/dist/cli/{knowledge-escalator-j0nceas7.js → knowledge-escalator-hzkw1ban.js} +3 -3
  36. package/dist/cli/{knowledge-events-gpqc62jr.js → knowledge-events-pbycdhqd.js} +1 -1
  37. package/dist/cli/{knowledge-store-ggxr3ww5.js → knowledge-store-45jawb2p.js} +1 -1
  38. package/dist/cli/{knowledge-validator-007smap6.js → knowledge-validator-ge576f8n.js} +4 -4
  39. package/dist/cli/pending-delegations-kxy8mdqg.js +75 -0
  40. package/dist/cli/{scan-cursor-wz4bff7a.js → scan-cursor-kvw872be.js} +2 -2
  41. package/dist/cli/{schema-023gwne7.js → schema-a2zm2m3r.js} +6 -2
  42. package/dist/cli/{scope-persistence-dm5bab50.js → scope-persistence-5qypzxxm.js} +1 -1
  43. package/dist/cli/{skill-generator-rtsg1m7x.js → skill-generator-ch79hvxh.js} +5 -5
  44. package/dist/commands/command-dispatch.d.ts +7 -0
  45. package/dist/commands/index.d.ts +7 -0
  46. package/dist/commands/registry.d.ts +16 -0
  47. package/dist/commands/review.d.ts +21 -0
  48. package/dist/config/agent-names.d.ts +3 -3
  49. package/dist/config/evidence-schema.d.ts +47 -47
  50. package/dist/config/index.d.ts +2 -2
  51. package/dist/config/schema.d.ts +58 -6
  52. package/dist/consensus/contracts.d.ts +3 -3
  53. package/dist/evaluation/contracts.d.ts +1 -1
  54. package/dist/evaluation/ephemeral-agent-dispatcher.d.ts +64 -0
  55. package/dist/evaluation/model-dispatcher.d.ts +11 -5
  56. package/dist/evaluation/public-api.d.ts +1 -1
  57. package/dist/hooks/auto-review.d.ts +30 -65
  58. package/dist/hooks/delegation-gate.d.ts +1 -1
  59. package/dist/hooks/guardrails/tool-before.d.ts +8 -0
  60. package/dist/hooks/review-receipt-collector.d.ts +53 -10
  61. package/dist/hooks/review-receipt-scope.d.ts +74 -0
  62. package/dist/hooks/review-receipt.d.ts +104 -10
  63. package/dist/hooks/reviewer-scope-file-fingerprint.d.ts +21 -0
  64. package/dist/hooks/reviewer-scope-lifecycle.d.ts +19 -0
  65. package/dist/hooks/task-result-classifier.d.ts +6 -0
  66. package/dist/index.d.ts +2 -0
  67. package/dist/index.js +660 -607
  68. package/dist/memory/schema.d.ts +5 -5
  69. package/dist/review/contracts.d.ts +29 -0
  70. package/dist/review/diff-source.d.ts +134 -0
  71. package/dist/review/engine.d.ts +60 -0
  72. package/dist/review/evidence.d.ts +88 -0
  73. package/dist/review/finding-validator.d.ts +77 -0
  74. package/dist/review/phase-runner.d.ts +37 -0
  75. package/dist/review/runtime.d.ts +32 -0
  76. package/dist/scope/scope-binding.d.ts +9 -0
  77. package/dist/services/config-doctor.d.ts +12 -0
  78. package/dist/state.d.ts +179 -0
  79. package/dist/tools/dispatch-lanes.d.ts +2 -0
  80. package/dist/tools/lean-turbo-review.d.ts +4 -1
  81. package/dist/tools/lean-turbo-run-phase.d.ts +3 -1
  82. package/dist/tools/phase-complete/gates/final-review-gate.d.ts +18 -0
  83. package/dist/tools/phase-complete/gates/index.d.ts +1 -0
  84. package/dist/tools/phase-complete/gates/types.d.ts +10 -0
  85. package/dist/tools/phase-complete.d.ts +13 -1
  86. package/dist/tools/plugin-registration.d.ts +3 -1
  87. package/dist/tools/swarm-command.d.ts +4 -1
  88. package/dist/tools/tool-metadata.d.ts +22 -22
  89. package/dist/turbo/lean/integration.d.ts +18 -2
  90. package/dist/turbo/lean/reviewer.d.ts +19 -3
  91. package/dist/turbo/lean/runner.d.ts +1 -1
  92. package/package.json +1 -1
  93. package/dist/cli/index-y2pfmd0z.js +0 -259
  94. package/dist/cli/pending-delegations-37t4xecr.js +0 -34
  95. package/dist/cli/{curator-drift-y1wm4atk.js → curator-drift-ea0p8nh1.js} +2 -2
  96. package/dist/cli/{index-4ff0x4cg.js → index-74tptrss.js} +0 -0
  97. package/dist/cli/{index-03zyn94g.js → index-r260ybay.js} +4 -4
@@ -0,0 +1,75 @@
1
+ // @bun
2
+ import {
3
+ BACKGROUND_DELEGATIONS_FILE,
4
+ BACKGROUND_INGESTION_LEASE_MS,
5
+ appendDelegationTransition,
6
+ buildPromptSnapshot,
7
+ claimDelegationIngestion,
8
+ findByBatchId,
9
+ findByCorrelationId,
10
+ findOpenAsyncLaneBatches,
11
+ readDelegations,
12
+ recordPendingDelegation,
13
+ settleDelegationIngestion,
14
+ sweepStaleDelegations
15
+ } from "./index-mwqfyjja.js";
16
+ import"./index-mmvaf4t6.js";
17
+ import"./index-tj2mkfb3.js";
18
+ import"./index-r260ybay.js";
19
+ import"./index-4905hd2m.js";
20
+ import"./index-134d35c1.js";
21
+ import"./index-9f71ye47.js";
22
+ import"./index-0vd91yb8.js";
23
+ import"./index-cpest8sa.js";
24
+ import"./index-66zght9d.js";
25
+ import"./index-vxv732ex.js";
26
+ import"./index-c8s9a3zh.js";
27
+ import"./index-9ss2m4rs.js";
28
+ import"./index-g4mnf3p5.js";
29
+ import"./index-s80bsjkj.js";
30
+ import"./index-7ftthvqt.js";
31
+ import"./index-wz36r0fk.js";
32
+ import"./index-rtry5xyf.js";
33
+ import"./index-j5pnah1w.js";
34
+ import"./index-bz08438z.js";
35
+ import"./index-ae75rja9.js";
36
+ import"./index-q27bajqb.js";
37
+ import"./index-kc1m6vpr.js";
38
+ import"./index-k5jrywpr.js";
39
+ import"./index-n832052r.js";
40
+ import"./index-wzb4dv5s.js";
41
+ import"./index-bk5tah7q.js";
42
+ import"./index-8fwhhayc.js";
43
+ import"./index-q1exe2b3.js";
44
+ import"./index-74tptrss.js";
45
+ import"./index-2tn5h2zp.js";
46
+ import"./index-1kz6da87.js";
47
+ import"./index-17zjp67y.js";
48
+ import"./index-z6xqpmqg.js";
49
+ import"./index-4rhhvd1a.js";
50
+ import"./index-zjygnfay.js";
51
+ import"./index-zgwm4ryv.js";
52
+ import"./index-h3k62043.js";
53
+ import"./index-3x761jqv.js";
54
+ import"./index-7mkpsw6g.js";
55
+ import"./index-fsrp8wp3.js";
56
+ import"./index-76kvm9z5.js";
57
+ import"./index-q2rrv0cy.js";
58
+ import"./index-bpmtbmy9.js";
59
+ import"./index-7g4c7s5r.js";
60
+ import"./index-qe3v54nb.js";
61
+ import"./index-a76rekgs.js";
62
+ export {
63
+ sweepStaleDelegations,
64
+ settleDelegationIngestion,
65
+ recordPendingDelegation,
66
+ readDelegations,
67
+ findOpenAsyncLaneBatches,
68
+ findByCorrelationId,
69
+ findByBatchId,
70
+ claimDelegationIngestion,
71
+ buildPromptSnapshot,
72
+ appendDelegationTransition,
73
+ BACKGROUND_INGESTION_LEASE_MS,
74
+ BACKGROUND_DELEGATIONS_FILE
75
+ };
@@ -4,8 +4,8 @@ import {
4
4
  alreadyCuratedThisGeneration,
5
5
  claimNextScanBatch,
6
6
  getScanStatus
7
- } from "./index-djwemsjn.js";
8
- import"./index-3s9rfnqq.js";
7
+ } from "./index-66zght9d.js";
8
+ import"./index-j5pnah1w.js";
9
9
  import"./index-ae75rja9.js";
10
10
  import"./index-q27bajqb.js";
11
11
  import"./index-bk5tah7q.js";
@@ -1,5 +1,6 @@
1
1
  // @bun
2
2
  import {
3
+ AUTO_REVIEW_V8_BURN_IN_DECISION,
3
4
  AdversarialDetectionConfigSchema,
4
5
  AdversarialTestingConfigSchema,
5
6
  AgentAuthorityRuleSchema,
@@ -87,11 +88,12 @@ import {
87
88
  getCanonicalAgentRole,
88
89
  init_schema,
89
90
  isKnownCanonicalRole,
91
+ resolveAutoReviewConfig,
90
92
  resolveExternalSkillsConfig,
91
93
  resolveGeneratedAgentRole,
92
94
  resolveGuardrailsConfig,
93
95
  stripKnownSwarmPrefix
94
- } from "./index-bvp2v7k1.js";
96
+ } from "./index-wzb4dv5s.js";
95
97
  import"./index-bk5tah7q.js";
96
98
  import"./index-zjygnfay.js";
97
99
  import"./index-bpmtbmy9.js";
@@ -103,6 +105,7 @@ export {
103
105
  resolveGuardrailsConfig,
104
106
  resolveGeneratedAgentRole,
105
107
  resolveExternalSkillsConfig,
108
+ resolveAutoReviewConfig,
106
109
  isKnownCanonicalRole,
107
110
  getCanonicalAgentRole,
108
111
  _internals,
@@ -188,5 +191,6 @@ export {
188
191
  AgentOverrideConfigSchema,
189
192
  AgentAuthorityRuleSchema,
190
193
  AdversarialTestingConfigSchema,
191
- AdversarialDetectionConfigSchema
194
+ AdversarialDetectionConfigSchema,
195
+ AUTO_REVIEW_V8_BURN_IN_DECISION
192
196
  };
@@ -12,7 +12,7 @@ import {
12
12
  resolveScopeWithFallbacks,
13
13
  writeScopeBindingToDisk,
14
14
  writeScopeToDisk
15
- } from "./index-4ff0x4cg.js";
15
+ } from "./index-74tptrss.js";
16
16
  import"./index-2tn5h2zp.js";
17
17
  import"./index-1kz6da87.js";
18
18
  import"./index-zgwm4ryv.js";
@@ -33,12 +33,12 @@ import {
33
33
  sanitizeSlug,
34
34
  selectCandidateEntries,
35
35
  writeEvalStub
36
- } from "./index-9cf1yr67.js";
37
- import"./index-6ccynjv3.js";
38
- import"./index-rt5jgktq.js";
36
+ } from "./index-0vd91yb8.js";
37
+ import"./index-7ftthvqt.js";
38
+ import"./index-wz36r0fk.js";
39
39
  import"./index-rtry5xyf.js";
40
- import"./index-3s9rfnqq.js";
41
- import"./index-jgfcp9bh.js";
40
+ import"./index-j5pnah1w.js";
41
+ import"./index-bz08438z.js";
42
42
  import"./index-ae75rja9.js";
43
43
  import"./index-q27bajqb.js";
44
44
  import"./index-bk5tah7q.js";
@@ -1,5 +1,8 @@
1
1
  import type { AgentDefinition } from '../agents/index.js';
2
+ import type { AutoReviewConfig } from '../config/schema.js';
2
3
  import type { EvaluationModelDispatcher } from '../evaluation/model-dispatcher.js';
4
+ import type { ReviewModelDispatcher } from '../review/contracts.js';
5
+ import type { ReviewAgentModelRegistry } from '../review/runtime.js';
3
6
  import { type CommandEntry, resolveCommand } from './registry.js';
4
7
  export type ResolvedSwarmCommand = NonNullable<ReturnType<typeof resolveCommand>>;
5
8
  export type SwarmCommandPolicyResult = {
@@ -29,5 +32,9 @@ export declare function executeSwarmCommand(args: {
29
32
  buildHelpText?: () => string;
30
33
  policy?: SwarmCommandPolicy;
31
34
  evaluationModelDispatcher?: EvaluationModelDispatcher;
35
+ reviewModelDispatcher?: ReviewModelDispatcher;
36
+ autoReviewConfig?: AutoReviewConfig;
37
+ activeAgentName?: string;
38
+ reviewAgentModelRegistry?: ReviewAgentModelRegistry;
32
39
  }): Promise<SwarmCommandExecutionResult>;
33
40
  export type { CommandEntry };
@@ -1,5 +1,8 @@
1
1
  import type { AgentDefinition } from '../agents/index.js';
2
+ import type { AutoReviewConfig } from '../config/schema.js';
2
3
  import type { EvaluationModelDispatcher } from '../evaluation/model-dispatcher.js';
4
+ import type { ReviewModelDispatcher } from '../review/contracts.js';
5
+ import type { ReviewAgentModelRegistry } from '../review/runtime.js';
3
6
  export { handleAcknowledgeSpecDriftCommand } from './acknowledge-spec-drift';
4
7
  export { handleAgentsCommand } from './agents';
5
8
  export { handleAnalyzeCommand } from './analyze';
@@ -49,6 +52,7 @@ export { COMMAND_REGISTRY, resolveCommand, VALID_COMMANDS, } from './registry.js
49
52
  export { handleResetCommand } from './reset';
50
53
  export { handleResetSessionCommand } from './reset-session';
51
54
  export { handleRetrieveCommand } from './retrieve';
55
+ export { handleReviewCommand } from './review';
52
56
  export { handleRollbackCommand } from './rollback';
53
57
  export { handleSddCommand, handleSddProjectCommand, handleSddStatusCommand, handleSddValidateCommand, } from './sdd';
54
58
  export { handleSimulateCommand } from './simulate';
@@ -71,6 +75,9 @@ export declare function createSwarmCommandHandler(directory: string, agents: Rec
71
75
  tools?: Record<string, boolean>;
72
76
  }>;
73
77
  evaluationModelDispatcher?: EvaluationModelDispatcher;
78
+ reviewModelDispatcher?: ReviewModelDispatcher;
79
+ autoReviewConfig?: AutoReviewConfig;
80
+ reviewAgentModelRegistry?: ReviewAgentModelRegistry;
74
81
  }): (input: {
75
82
  command: string;
76
83
  sessionID: string;
@@ -1,5 +1,9 @@
1
1
  import type { AgentDefinition } from '../agents/index.js';
2
+ import type { AutoReviewConfig } from '../config/schema.js';
2
3
  import type { EvaluationModelDispatcher } from '../evaluation/model-dispatcher.js';
4
+ import type { ReviewModelDispatcher } from '../review/contracts.js';
5
+ import type { ReviewAgentModelRegistry } from '../review/runtime.js';
6
+ import { handleReviewCommand } from './review.js';
3
7
  declare function levenshteinDistance(a: string, b: string): number;
4
8
  declare function findSimilarCommands(query: string): string[];
5
9
  declare function emitValidationWarnings(prefix: string, warnings: readonly string[]): void;
@@ -20,6 +24,10 @@ export type CommandContext = {
20
24
  */
21
25
  source?: 'cli' | 'chat';
22
26
  evaluationModelDispatcher?: EvaluationModelDispatcher;
27
+ reviewModelDispatcher?: ReviewModelDispatcher;
28
+ autoReviewConfig?: AutoReviewConfig;
29
+ activeAgentName?: string;
30
+ reviewAgentModelRegistry?: ReviewAgentModelRegistry;
23
31
  };
24
32
  export type CommandResult = Promise<string>;
25
33
  export type CommandCategory = 'core' | 'agent' | 'config' | 'diagnostics' | 'utility';
@@ -236,6 +244,14 @@ export declare const COMMAND_REGISTRY: {
236
244
  readonly category: "diagnostics";
237
245
  readonly toolPolicy: "agent";
238
246
  };
247
+ readonly review: {
248
+ readonly handler: typeof handleReviewCommand;
249
+ readonly description: "Run the independent review model against a selected Git diff";
250
+ readonly args: "--base <ref>, --range <from..to|from...to>, --working-tree, --json";
251
+ readonly details: "Collects one bounded canonical diff, dispatches the configured reviewer in a fresh read-only session, optionally validates eligible HIGH/CRITICAL findings when configured or required by gate mode, and persists the receipt and evidence. With no selector, reviews the default merge-base plus working-tree scope.";
252
+ readonly category: "diagnostics";
253
+ readonly toolPolicy: "human-only";
254
+ };
239
255
  readonly costs: {
240
256
  readonly handler: (ctx: CommandContext) => Promise<string>;
241
257
  readonly description: "Show per-agent and per-task token/cost telemetry [--json]";
@@ -0,0 +1,21 @@
1
+ import { type ReviewDiffSelector } from '../review/diff-source.js';
2
+ import { type ReviewEngineResult, type RunReviewEngineInput } from '../review/engine.js';
3
+ import type { AutoReviewEvidence } from '../review/evidence.js';
4
+ import type { CommandContext } from './registry.js';
5
+ declare function findAgentName(agents: CommandContext['agents'], role: string, preferredPrefix?: string): string | undefined;
6
+ declare function formatSelector(selector: ReviewDiffSelector): string;
7
+ declare function renderHuman(result: ReviewEngineResult, evidence: AutoReviewEvidence | null, requestedSelector: ReviewDiffSelector): string;
8
+ declare function renderJson(result: ReviewEngineResult, evidence: AutoReviewEvidence | null, requestedSelector: ReviewDiffSelector): string;
9
+ export declare function handleReviewCommand(ctx: CommandContext): Promise<string>;
10
+ export declare const _internals: {
11
+ runReviewEngine: (input: RunReviewEngineInput) => Promise<ReviewEngineResult>;
12
+ readEvidence: (evidencePath: string | undefined, directory: string) => AutoReviewEvidence | null;
13
+ };
14
+ export declare const _test_exports: {
15
+ MAX_JSON_WRAPPER_BYTES: number;
16
+ findAgentName: typeof findAgentName;
17
+ formatSelector: typeof formatSelector;
18
+ renderHuman: typeof renderHuman;
19
+ renderJson: typeof renderJson;
20
+ };
21
+ export {};
@@ -9,11 +9,11 @@
9
9
  * constants.ts re-exports every symbol here, so existing
10
10
  * `import { ALL_AGENT_NAMES } from '../config/constants'` call sites are unchanged.
11
11
  */
12
- export declare const QA_AGENTS: readonly ["reviewer", "critic", "critic_oversight"];
12
+ export declare const QA_AGENTS: readonly ["reviewer", "critic", "critic_oversight", "critic_finding_validator"];
13
13
  export declare const PIPELINE_AGENTS: readonly ["explorer", "coder", "test_engineer"];
14
14
  export declare const ORCHESTRATOR_NAME: "architect";
15
- export declare const ALL_SUBAGENT_NAMES: readonly ["sme", "researcher", "docs", "docs_design", "designer", "critic_sounding_board", "critic_drift_verifier", "critic_hallucination_verifier", "critic_architecture_supervisor", "curator_init", "curator_phase", "curator_postmortem", "curator_consolidation", "council_generalist", "council_skeptic", "council_domain_expert", "skill_improver", "spec_writer", "reviewer", "critic", "critic_oversight", "explorer", "coder", "test_engineer"];
16
- export declare const ALL_AGENT_NAMES: readonly ["architect", "sme", "researcher", "docs", "docs_design", "designer", "critic_sounding_board", "critic_drift_verifier", "critic_hallucination_verifier", "critic_architecture_supervisor", "curator_init", "curator_phase", "curator_postmortem", "curator_consolidation", "council_generalist", "council_skeptic", "council_domain_expert", "skill_improver", "spec_writer", "reviewer", "critic", "critic_oversight", "explorer", "coder", "test_engineer"];
15
+ export declare const ALL_SUBAGENT_NAMES: readonly ["sme", "researcher", "docs", "docs_design", "designer", "critic_sounding_board", "critic_drift_verifier", "critic_hallucination_verifier", "critic_architecture_supervisor", "curator_init", "curator_phase", "curator_postmortem", "curator_consolidation", "council_generalist", "council_skeptic", "council_domain_expert", "skill_improver", "spec_writer", "reviewer", "critic", "critic_oversight", "critic_finding_validator", "explorer", "coder", "test_engineer"];
16
+ export declare const ALL_AGENT_NAMES: readonly ["architect", "sme", "researcher", "docs", "docs_design", "designer", "critic_sounding_board", "critic_drift_verifier", "critic_hallucination_verifier", "critic_architecture_supervisor", "curator_init", "curator_phase", "curator_postmortem", "curator_consolidation", "council_generalist", "council_skeptic", "council_domain_expert", "skill_improver", "spec_writer", "reviewer", "critic", "critic_oversight", "critic_finding_validator", "explorer", "coder", "test_engineer"];
17
17
  export type QAAgentName = (typeof QA_AGENTS)[number];
18
18
  export type PipelineAgentName = (typeof PIPELINE_AGENTS)[number];
19
19
  export type AgentName = (typeof ALL_AGENT_NAMES)[number];