opencode-swarm 6.5.0 → 6.8.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 (49) hide show
  1. package/README.md +52 -6
  2. package/dist/__tests__/security-adversarial.test.d.ts +1 -0
  3. package/dist/background/circuit-breaker.d.ts +149 -0
  4. package/dist/background/event-bus.d.ts +60 -0
  5. package/dist/background/evidence-summary-integration.d.ts +73 -0
  6. package/dist/background/index.d.ts +22 -0
  7. package/dist/background/manager.d.ts +122 -0
  8. package/dist/background/plan-sync-worker.d.ts +117 -0
  9. package/dist/background/queue.d.ts +116 -0
  10. package/dist/background/status-artifact.d.ts +115 -0
  11. package/dist/background/trigger.d.ts +175 -0
  12. package/dist/background/trigger.vulnerability.test.d.ts +1 -0
  13. package/dist/background/worker.d.ts +92 -0
  14. package/dist/commands/command-adapters.security.test.d.ts +14 -0
  15. package/dist/commands/commands.test.d.ts +1 -0
  16. package/dist/commands/diagnose.d.ts +1 -5
  17. package/dist/commands/doctor.d.ts +5 -0
  18. package/dist/commands/evidence.d.ts +1 -5
  19. package/dist/commands/export.d.ts +1 -5
  20. package/dist/commands/history.d.ts +1 -5
  21. package/dist/commands/index.d.ts +3 -0
  22. package/dist/commands/plan.d.ts +1 -1
  23. package/dist/commands/preflight.d.ts +1 -0
  24. package/dist/commands/status.d.ts +1 -2
  25. package/dist/commands/sync-plan.d.ts +8 -0
  26. package/dist/config/index.d.ts +2 -2
  27. package/dist/config/plan-schema.d.ts +4 -4
  28. package/dist/config/schema.d.ts +53 -0
  29. package/dist/hooks/index.d.ts +1 -0
  30. package/dist/hooks/phase-monitor.d.ts +16 -0
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.js +27786 -22900
  33. package/dist/plan/manager.d.ts +13 -6
  34. package/dist/services/config-doctor.d.ts +125 -0
  35. package/dist/services/config-doctor.security.test.d.ts +1 -0
  36. package/dist/services/config-doctor.test.d.ts +1 -0
  37. package/dist/services/decision-drift-analyzer.d.ts +96 -0
  38. package/dist/services/diagnose-service.d.ts +31 -0
  39. package/dist/services/evidence-service.d.ts +65 -0
  40. package/dist/services/evidence-summary-service.d.ts +75 -0
  41. package/dist/services/export-service.d.ts +23 -0
  42. package/dist/services/history-service.d.ts +35 -0
  43. package/dist/services/index.d.ts +11 -0
  44. package/dist/services/plan-service.d.ts +25 -0
  45. package/dist/services/preflight-integration.d.ts +38 -0
  46. package/dist/services/preflight-service.d.ts +62 -0
  47. package/dist/services/status-service.d.ts +28 -0
  48. package/dist/tools/secretscan.d.ts +4 -0
  49. package/package.json +1 -1
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Lightweight In-Process Queue with Priorities and Retry Metadata
3
+ *
4
+ * Provides a simple but powerful queue abstraction for background automation.
5
+ * Supports priorities, retry logic, and in-memory persistence only.
6
+ */
7
+ /** Queue priority levels */
8
+ export type QueuePriority = 'critical' | 'high' | 'normal' | 'low';
9
+ /** Retry metadata for failed items */
10
+ export interface RetryMetadata {
11
+ attempts: number;
12
+ maxAttempts: number;
13
+ lastAttempt?: number;
14
+ nextAttemptAt?: number;
15
+ backoffMs: number;
16
+ maxBackoffMs: number;
17
+ }
18
+ /** Queue item structure */
19
+ export interface QueueItem<T = unknown> {
20
+ id: string;
21
+ priority: QueuePriority;
22
+ payload: T;
23
+ createdAt: number;
24
+ metadata?: Record<string, unknown>;
25
+ retry?: RetryMetadata;
26
+ }
27
+ /** Queue configuration */
28
+ export interface QueueConfig {
29
+ priorityLevels?: QueuePriority[];
30
+ maxSize?: number;
31
+ defaultMaxRetries?: number;
32
+ defaultBackoffMs?: number;
33
+ maxBackoffMs?: number;
34
+ }
35
+ /**
36
+ * In-process queue with priority support and retry metadata
37
+ */
38
+ export declare class AutomationQueue<T = unknown> {
39
+ private items;
40
+ private readonly maxSize;
41
+ private readonly defaultMaxRetries;
42
+ private readonly defaultBackoffMs;
43
+ private readonly maxBackoffMs;
44
+ private readonly eventBus;
45
+ private itemCounter;
46
+ constructor(config?: QueueConfig);
47
+ /**
48
+ * Generate unique item ID
49
+ */
50
+ private generateId;
51
+ /**
52
+ * Enqueue an item with priority
53
+ */
54
+ enqueue(payload: T, priority?: QueuePriority, metadata?: Record<string, unknown>): string;
55
+ /**
56
+ * Dequeue the highest priority item
57
+ */
58
+ dequeue(): QueueItem<T> | undefined;
59
+ /**
60
+ * Peek at the highest priority item without removing
61
+ */
62
+ peek(): QueueItem<T> | undefined;
63
+ /**
64
+ * Get item by ID
65
+ */
66
+ get(id: string): QueueItem<T> | undefined;
67
+ /**
68
+ * Remove specific item by ID
69
+ */
70
+ remove(id: string): boolean;
71
+ /**
72
+ * Mark item as completed and remove from queue
73
+ */
74
+ complete(id: string): boolean;
75
+ /**
76
+ * Mark item as failed and schedule retry if possible
77
+ */
78
+ retry(id: string, _error?: unknown): boolean;
79
+ /**
80
+ * Get items due for retry
81
+ */
82
+ getRetryableItems(): QueueItem<T>[];
83
+ /**
84
+ * Get current queue size
85
+ */
86
+ size(): number;
87
+ /**
88
+ * Check if queue is empty
89
+ */
90
+ isEmpty(): boolean;
91
+ /**
92
+ * Check if queue is full
93
+ */
94
+ isFull(): boolean;
95
+ /**
96
+ * Clear all items from queue
97
+ */
98
+ clear(): void;
99
+ /**
100
+ * Get all items (for debugging/inspection)
101
+ */
102
+ getAll(): QueueItem<T>[];
103
+ /**
104
+ * Get items by priority
105
+ */
106
+ getByPriority(priority: QueuePriority): QueueItem<T>[];
107
+ /**
108
+ * Get queue statistics
109
+ */
110
+ getStats(): {
111
+ size: number;
112
+ maxSize: number;
113
+ byPriority: Record<QueuePriority, number>;
114
+ retryable: number;
115
+ };
116
+ }
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Passive Status Artifact Writer
3
+ *
4
+ * Writes automation status snapshots to .swarm/ for GUI visibility.
5
+ * Provides passive, read-only status information without affecting workflow.
6
+ */
7
+ /** Automation status snapshot structure */
8
+ export interface AutomationStatusSnapshot {
9
+ /** When this snapshot was generated */
10
+ timestamp: number;
11
+ /** Current automation mode */
12
+ mode: 'manual' | 'hybrid' | 'auto';
13
+ /** Whether automation is enabled */
14
+ enabled: boolean;
15
+ /** Current phase */
16
+ currentPhase: number;
17
+ /** Last trigger information */
18
+ lastTrigger: {
19
+ triggeredAt: number | null;
20
+ triggeredPhase: number | null;
21
+ source: string | null;
22
+ reason: string | null;
23
+ } | null;
24
+ /** Pending actions count */
25
+ pendingActions: number;
26
+ /** Last outcome state */
27
+ lastOutcome: {
28
+ state: 'success' | 'failure' | 'skipped' | 'none';
29
+ phase: number | null;
30
+ outcomeAt: number | null;
31
+ message: string | null;
32
+ } | null;
33
+ /** Feature flags status */
34
+ capabilities: {
35
+ plan_sync: boolean;
36
+ phase_preflight: boolean;
37
+ config_doctor_on_startup: boolean;
38
+ config_doctor_autofix: boolean;
39
+ evidence_auto_summaries: boolean;
40
+ decision_drift_detection: boolean;
41
+ };
42
+ }
43
+ /**
44
+ * Automation Status Artifact Manager
45
+ *
46
+ * Writes passive status snapshots to .swarm/automation-status.json
47
+ */
48
+ export declare class AutomationStatusArtifact {
49
+ private readonly swarmDir;
50
+ private readonly filename;
51
+ private currentSnapshot;
52
+ constructor(swarmDir: string, filename?: string);
53
+ /**
54
+ * Get the full path to the status file
55
+ */
56
+ private getFilePath;
57
+ /**
58
+ * Load existing snapshot from disk
59
+ */
60
+ load(): AutomationStatusSnapshot | null;
61
+ /**
62
+ * Write snapshot to disk
63
+ */
64
+ private write;
65
+ /**
66
+ * Get current snapshot (in-memory)
67
+ */
68
+ getSnapshot(): AutomationStatusSnapshot;
69
+ /**
70
+ * Read snapshot from disk (forces reload)
71
+ */
72
+ read(): AutomationStatusSnapshot;
73
+ /**
74
+ * Update mode and capabilities
75
+ */
76
+ updateConfig(mode: 'manual' | 'hybrid' | 'auto', capabilities: AutomationStatusSnapshot['capabilities']): void;
77
+ /**
78
+ * Update current phase
79
+ */
80
+ updatePhase(phase: number): void;
81
+ /**
82
+ * Record a trigger event
83
+ */
84
+ recordTrigger(triggeredAt: number, triggeredPhase: number, source: string, reason: string): void;
85
+ /**
86
+ * Update pending actions count
87
+ */
88
+ updatePendingActions(count: number): void;
89
+ /**
90
+ * Record an outcome
91
+ */
92
+ recordOutcome(state: 'success' | 'failure' | 'skipped', phase: number, message?: string): void;
93
+ /**
94
+ * Clear the last outcome (reset to none)
95
+ */
96
+ clearOutcome(): void;
97
+ /**
98
+ * Check if automation is enabled (mode != manual)
99
+ */
100
+ isEnabled(): boolean;
101
+ /**
102
+ * Check if a specific capability is enabled
103
+ */
104
+ hasCapability(capability: keyof AutomationStatusSnapshot['capabilities']): boolean;
105
+ /**
106
+ * Get summary for GUI display
107
+ */
108
+ getGuiSummary(): {
109
+ status: string;
110
+ phase: number;
111
+ lastTrigger: string | null;
112
+ pending: number;
113
+ outcome: string | null;
114
+ };
115
+ }
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Phase-Boundary Preflight Trigger
3
+ *
4
+ * Detects phase-boundary conditions and triggers preflight requests.
5
+ * This is the plumbing/scaffold for Task 5.5 - full preflight logic comes in Task 5.6.
6
+ */
7
+ import type { AutomationConfig } from '../config/schema';
8
+ import { type AutomationEventBus } from './event-bus';
9
+ /** Event types for preflight triggers */
10
+ export type PreflightTriggerEventType = 'preflight.requested' | 'preflight.triggered' | 'preflight.skipped' | 'phase.boundary.detected';
11
+ /** Preflight trigger payload */
12
+ export interface PreflightRequestPayload {
13
+ triggerSource: 'phase_boundary' | 'manual' | 'scheduled';
14
+ currentPhase: number;
15
+ reason: string;
16
+ metadata?: Record<string, unknown>;
17
+ }
18
+ /** Phase boundary detection result */
19
+ export interface PhaseBoundaryResult {
20
+ detected: boolean;
21
+ previousPhase: number;
22
+ currentPhase: number;
23
+ reason: string;
24
+ completedTaskCount: number;
25
+ totalTaskCount: number;
26
+ }
27
+ /** Preflight trigger configuration */
28
+ export interface PreflightTriggerConfig {
29
+ /** Minimum tasks that must be completed in a phase to trigger */
30
+ minCompletedTasksThreshold?: number;
31
+ /** Enable trigger even if no tasks (phase auto-complete mode) */
32
+ allowZeroTaskTrigger?: boolean;
33
+ /** Directory to run preflight checks in */
34
+ directory?: string;
35
+ }
36
+ /** Preflight handler type */
37
+ export type PreflightHandler = (request: PreflightRequest) => Promise<void>;
38
+ /** Preflight request queue item */
39
+ export interface PreflightRequest {
40
+ id: string;
41
+ triggeredAt: number;
42
+ currentPhase: number;
43
+ source: 'phase_boundary' | 'manual' | 'scheduled';
44
+ reason: string;
45
+ metadata?: Record<string, unknown>;
46
+ }
47
+ /** Phase boundary detection result */
48
+ export interface PhaseBoundaryResult {
49
+ detected: boolean;
50
+ previousPhase: number;
51
+ currentPhase: number;
52
+ reason: string;
53
+ completedTaskCount: number;
54
+ totalTaskCount: number;
55
+ }
56
+ /** Preflight trigger configuration */
57
+ export interface PreflightTriggerConfig {
58
+ /** Minimum tasks that must be completed in a phase to trigger */
59
+ minCompletedTasksThreshold?: number;
60
+ /** Enable trigger even if no tasks (phase auto-complete mode) */
61
+ allowZeroTaskTrigger?: boolean;
62
+ }
63
+ /**
64
+ * Phase-Boundary Trigger Detector
65
+ *
66
+ * Monitors plan state to detect when a phase transition occurs.
67
+ */
68
+ export declare class PhaseBoundaryTrigger {
69
+ private readonly eventBus;
70
+ private readonly config;
71
+ private lastKnownPhase;
72
+ private lastTriggeredPhase;
73
+ constructor(eventBus?: AutomationEventBus, config?: PreflightTriggerConfig);
74
+ /**
75
+ * Set the current phase from external source (plan)
76
+ */
77
+ setCurrentPhase(phase: number): void;
78
+ /**
79
+ * Get the last known phase
80
+ */
81
+ getCurrentPhase(): number;
82
+ /**
83
+ * Check if a phase boundary has been crossed
84
+ * Returns the result of the detection
85
+ */
86
+ detectBoundary(newPhase: number, completedTasks: number, totalTasks: number): PhaseBoundaryResult;
87
+ /**
88
+ * Check if preflight should be triggered based on phase boundary
89
+ * Must be called AFTER phase boundary is detected
90
+ */
91
+ shouldTriggerPreflight(boundaryResult: PhaseBoundaryResult): boolean;
92
+ /**
93
+ * Mark that preflight was triggered for a phase
94
+ */
95
+ markTriggered(phase: number): void;
96
+ /**
97
+ * Reset trigger state (for testing)
98
+ */
99
+ reset(): void;
100
+ }
101
+ /**
102
+ * Preflight Trigger Manager
103
+ *
104
+ * Orchestrates trigger detection, feature flag gating, and request publishing.
105
+ */
106
+ export declare class PreflightTriggerManager {
107
+ private readonly automationConfig;
108
+ private readonly eventBus;
109
+ private readonly trigger;
110
+ private readonly requestQueue;
111
+ private requestCounter;
112
+ private preflightHandler;
113
+ private unsubscribe;
114
+ constructor(automationConfig: AutomationConfig, eventBus?: AutomationEventBus, triggerConfig?: PreflightTriggerConfig);
115
+ /**
116
+ * Check if preflight triggers are enabled via feature flags
117
+ * Returns false if config is missing/invalid (fail-safe)
118
+ */
119
+ isEnabled(): boolean;
120
+ /**
121
+ * Get the automation mode
122
+ * Returns 'unknown' for malformed config (fail-safe)
123
+ */
124
+ getMode(): string;
125
+ /**
126
+ * Update current phase from plan state
127
+ */
128
+ updatePhase(phase: number): void;
129
+ /**
130
+ * Check for phase boundary and potentially trigger preflight
131
+ * Returns true if preflight was triggered
132
+ */
133
+ checkAndTrigger(currentPhase: number, completedTasks: number, totalTasks: number): Promise<boolean>;
134
+ /**
135
+ * Trigger a preflight request
136
+ */
137
+ private triggerPreflight;
138
+ /**
139
+ * Get pending preflight requests
140
+ */
141
+ getPendingRequests(): PreflightRequest[];
142
+ /**
143
+ * Get queue size
144
+ */
145
+ getQueueSize(): number;
146
+ /**
147
+ * Get trigger stats
148
+ * All values are fail-safe for malformed config
149
+ */
150
+ getStats(): {
151
+ enabled: boolean;
152
+ mode: string;
153
+ currentPhase: number;
154
+ lastTriggeredPhase: number;
155
+ pendingRequests: number;
156
+ };
157
+ /**
158
+ * Reset state (for testing)
159
+ */
160
+ reset(): void;
161
+ /**
162
+ * Register a handler to be called when preflight is requested.
163
+ * The handler will be invoked with the preflight request details.
164
+ * Only one handler can be registered at a time.
165
+ */
166
+ registerHandler(handler: PreflightHandler): void;
167
+ /**
168
+ * Unregister the preflight handler
169
+ */
170
+ unregisterHandler(): void;
171
+ /**
172
+ * Check if a handler is registered
173
+ */
174
+ hasHandler(): boolean;
175
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Worker Lifecycle Manager
3
+ *
4
+ * Manages worker threads for background automation.
5
+ * Handles registration, start/stop, and handler coordination.
6
+ */
7
+ import type { AutomationQueue, QueueItem } from './queue';
8
+ /** Worker handler function */
9
+ export type WorkerHandler<T = unknown> = (item: QueueItem<T>) => Promise<{
10
+ success: boolean;
11
+ result?: unknown;
12
+ error?: unknown;
13
+ }>;
14
+ /** Worker registration options */
15
+ export interface WorkerRegistration {
16
+ name: string;
17
+ handler: WorkerHandler;
18
+ queue: AutomationQueue;
19
+ concurrency?: number;
20
+ autoStart?: boolean;
21
+ }
22
+ /** Worker status */
23
+ export type WorkerStatus = 'idle' | 'running' | 'stopping' | 'stopped' | 'error';
24
+ /**
25
+ * Worker Lifecycle Manager
26
+ *
27
+ * Manages worker registration, lifecycle, and processing.
28
+ */
29
+ export declare class WorkerManager {
30
+ private workers;
31
+ private readonly eventBus;
32
+ constructor();
33
+ /**
34
+ * Register a new worker
35
+ */
36
+ register(registration: WorkerRegistration): void;
37
+ /**
38
+ * Unregister a worker
39
+ */
40
+ unregister(name: string): boolean;
41
+ /**
42
+ * Start a worker
43
+ */
44
+ start(name: string): boolean;
45
+ /**
46
+ * Start processing loop for a worker
47
+ */
48
+ private startProcessingLoop;
49
+ /**
50
+ * Handle a single queue item
51
+ */
52
+ private handleItem;
53
+ /**
54
+ * Stop a worker
55
+ */
56
+ stop(name: string): boolean;
57
+ /**
58
+ * Start all workers
59
+ */
60
+ startAll(): void;
61
+ /**
62
+ * Stop all workers
63
+ */
64
+ stopAll(): void;
65
+ /**
66
+ * Get worker status
67
+ */
68
+ getStatus(name: string): WorkerStatus | undefined;
69
+ /**
70
+ * Get worker statistics
71
+ */
72
+ getStats(name: string): {
73
+ status: WorkerStatus;
74
+ activeCount: number;
75
+ processedCount: number;
76
+ errorCount: number;
77
+ lastError?: unknown;
78
+ queueSize: number;
79
+ } | undefined;
80
+ /**
81
+ * Get all worker names
82
+ */
83
+ getWorkerNames(): string[];
84
+ /**
85
+ * Check if any workers are running
86
+ */
87
+ isAnyRunning(): boolean;
88
+ /**
89
+ * Get total statistics across all workers
90
+ */
91
+ getTotalStats(): Record<string, ReturnType<WorkerManager['getStats']>>;
92
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Adversarial Security Tests for Command Adapters (Task 5.10)
3
+ *
4
+ * ATTACK VECTORS COVERED:
5
+ * 1. Path Traversal - attempts to escape .swarm directory via command args
6
+ * 2. Null Byte Injection - injecting null bytes to truncate paths/strings
7
+ * 3. Control Character Injection - injecting control chars (0x00-0x1F)
8
+ * 4. Command Injection - shell metacharacters in args
9
+ * 5. Argument Pollution - malformed, oversized, special character args
10
+ * 6. Flag Injection - malicious flag values and combinations
11
+ * 7. Unicode Attacks - unicode normalization/replacement attacks
12
+ * 8. Edge Cases - empty, extremely long, boundary values
13
+ */
14
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1 @@
1
- /**
2
- * Handles the /swarm diagnose command.
3
- * Performs health checks on swarm state files and configuration.
4
- */
5
- export declare function handleDiagnoseCommand(directory: string, _args: string[]): Promise<string>;
1
+ export { handleDiagnoseCommand } from '../services/diagnose-service';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Handle /swarm config doctor command.
3
+ * Maps to: config doctor service (runConfigDoctor)
4
+ */
5
+ export declare function handleDoctorCommand(directory: string, args: string[]): Promise<string>;
@@ -1,5 +1 @@
1
- /**
2
- * Handles the /swarm evidence command.
3
- * Lists all evidence bundles or shows details for a specific task.
4
- */
5
- export declare function handleEvidenceCommand(directory: string, args: string[]): Promise<string>;
1
+ export { handleEvidenceCommand, handleEvidenceSummaryCommand, } from '../services/evidence-service';
@@ -1,5 +1 @@
1
- /**
2
- * Handles the /swarm export command.
3
- * Exports plan.md and context.md as a portable JSON object.
4
- */
5
- export declare function handleExportCommand(directory: string, _args: string[]): Promise<string>;
1
+ export { handleExportCommand } from '../services/export-service';
@@ -1,5 +1 @@
1
- /**
2
- * Handles the /swarm history command.
3
- * Reads plan.md and displays a summary of all phases and their status.
4
- */
5
- export declare function handleHistoryCommand(directory: string, _args: string[]): Promise<string>;
1
+ export { handleHistoryCommand } from '../services/history-service';
@@ -4,13 +4,16 @@ export { handleArchiveCommand } from './archive';
4
4
  export { handleBenchmarkCommand } from './benchmark';
5
5
  export { handleConfigCommand } from './config';
6
6
  export { handleDiagnoseCommand } from './diagnose';
7
+ export { handleDoctorCommand } from './doctor';
7
8
  export { handleEvidenceCommand } from './evidence';
8
9
  export { handleExportCommand } from './export';
9
10
  export { handleHistoryCommand } from './history';
10
11
  export { handlePlanCommand } from './plan';
12
+ export { handlePreflightCommand } from './preflight';
11
13
  export { handleResetCommand } from './reset';
12
14
  export { handleRetrieveCommand } from './retrieve';
13
15
  export { handleStatusCommand } from './status';
16
+ export { handleSyncPlanCommand } from './sync-plan';
14
17
  /**
15
18
  * Creates a command.execute.before handler for /swarm commands.
16
19
  * Uses factory pattern to close over directory and agents.
@@ -1 +1 @@
1
- export declare function handlePlanCommand(directory: string, args: string[]): Promise<string>;
1
+ export { handlePlanCommand } from '../services/plan-service';
@@ -0,0 +1 @@
1
+ export { handlePreflightCommand } from '../services/preflight-service';
@@ -1,2 +1 @@
1
- import type { AgentDefinition } from '../agents';
2
- export declare function handleStatusCommand(directory: string, agents: Record<string, AgentDefinition>): Promise<string>;
1
+ export { handleStatusCommand } from '../services/status-service';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Handle /swarm sync-plan command.
3
+ * Maps to: plan service (loadPlan which triggers auto-heal/sync)
4
+ *
5
+ * This command ensures plan.json and plan.md are in sync.
6
+ * The loadPlan function automatically regenerates plan.md from plan.json if needed.
7
+ */
8
+ export declare function handleSyncPlanCommand(directory: string, _args: string[]): Promise<string>;
@@ -5,5 +5,5 @@ export { ApprovalEvidenceSchema, BaseEvidenceSchema, DiffEvidenceSchema, EVIDENC
5
5
  export { loadAgentPrompt, loadPluginConfig, loadPluginConfigWithMeta, } from './loader';
6
6
  export type { MigrationStatus, Phase, PhaseStatus, Plan, Task, TaskSize, TaskStatus, } from './plan-schema';
7
7
  export { MigrationStatusSchema, PhaseSchema, PhaseStatusSchema, PlanSchema, TaskSchema, TaskSizeSchema, TaskStatusSchema, } from './plan-schema';
8
- export type { AgentOverrideConfig, PluginConfig, SwarmConfig, } from './schema';
9
- export { AgentOverrideConfigSchema, PluginConfigSchema, SwarmConfigSchema, } from './schema';
8
+ export type { AgentOverrideConfig, AutomationCapabilities, AutomationConfig, AutomationMode, PluginConfig, SwarmConfig, } from './schema';
9
+ export { AgentOverrideConfigSchema, AutomationCapabilitiesSchema, AutomationConfigSchema, AutomationModeSchema, PluginConfigSchema, SwarmConfigSchema, } from './schema';
@@ -7,8 +7,8 @@ export declare const TaskStatusSchema: z.ZodEnum<{
7
7
  }>;
8
8
  export type TaskStatus = z.infer<typeof TaskStatusSchema>;
9
9
  export declare const TaskSizeSchema: z.ZodEnum<{
10
- medium: "medium";
11
10
  small: "small";
11
+ medium: "medium";
12
12
  large: "large";
13
13
  }>;
14
14
  export type TaskSize = z.infer<typeof TaskSizeSchema>;
@@ -35,8 +35,8 @@ export declare const TaskSchema: z.ZodObject<{
35
35
  blocked: "blocked";
36
36
  }>>;
37
37
  size: z.ZodDefault<z.ZodEnum<{
38
- medium: "medium";
39
38
  small: "small";
39
+ medium: "medium";
40
40
  large: "large";
41
41
  }>>;
42
42
  description: z.ZodString;
@@ -66,8 +66,8 @@ export declare const PhaseSchema: z.ZodObject<{
66
66
  blocked: "blocked";
67
67
  }>>;
68
68
  size: z.ZodDefault<z.ZodEnum<{
69
- medium: "medium";
70
69
  small: "small";
70
+ medium: "medium";
71
71
  large: "large";
72
72
  }>>;
73
73
  description: z.ZodString;
@@ -103,8 +103,8 @@ export declare const PlanSchema: z.ZodObject<{
103
103
  blocked: "blocked";
104
104
  }>>;
105
105
  size: z.ZodDefault<z.ZodEnum<{
106
- medium: "medium";
107
106
  small: "small";
107
+ medium: "medium";
108
108
  large: "large";
109
109
  }>>;
110
110
  description: z.ZodString;