@specforge/mcp 2.6.0 → 3.0.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.
- package/README.md +73 -0
- package/bin/{specforge-mcp → specforge} +0 -5
- package/dist/ai-provider/circuit-breaker.d.ts +63 -0
- package/dist/ai-provider/circuit-breaker.d.ts.map +1 -0
- package/dist/ai-provider/circuit-breaker.js +160 -0
- package/dist/ai-provider/circuit-breaker.js.map +1 -0
- package/dist/ai-provider/cli-version.d.ts +50 -0
- package/dist/ai-provider/cli-version.d.ts.map +1 -0
- package/dist/ai-provider/cli-version.js +141 -0
- package/dist/ai-provider/cli-version.js.map +1 -0
- package/dist/ai-provider/config-loader.d.ts +45 -0
- package/dist/ai-provider/config-loader.d.ts.map +1 -0
- package/dist/ai-provider/config-loader.js +106 -0
- package/dist/ai-provider/config-loader.js.map +1 -0
- package/dist/ai-provider/errors.d.ts +48 -0
- package/dist/ai-provider/errors.d.ts.map +1 -0
- package/dist/ai-provider/errors.js +102 -0
- package/dist/ai-provider/errors.js.map +1 -0
- package/dist/ai-provider/events.d.ts +73 -0
- package/dist/ai-provider/events.d.ts.map +1 -0
- package/dist/ai-provider/events.js +75 -0
- package/dist/ai-provider/events.js.map +1 -0
- package/dist/ai-provider/factory.d.ts +31 -0
- package/dist/ai-provider/factory.d.ts.map +1 -0
- package/dist/ai-provider/factory.js +100 -0
- package/dist/ai-provider/factory.js.map +1 -0
- package/dist/ai-provider/index.d.ts +24 -0
- package/dist/ai-provider/index.d.ts.map +1 -0
- package/dist/ai-provider/index.js +46 -0
- package/dist/ai-provider/index.js.map +1 -0
- package/dist/ai-provider/instance-coordinator.d.ts +54 -0
- package/dist/ai-provider/instance-coordinator.d.ts.map +1 -0
- package/dist/ai-provider/instance-coordinator.js +199 -0
- package/dist/ai-provider/instance-coordinator.js.map +1 -0
- package/dist/ai-provider/jsonl-parser.d.ts +43 -0
- package/dist/ai-provider/jsonl-parser.d.ts.map +1 -0
- package/dist/ai-provider/jsonl-parser.js +107 -0
- package/dist/ai-provider/jsonl-parser.js.map +1 -0
- package/dist/ai-provider/lifecycle.d.ts +50 -0
- package/dist/ai-provider/lifecycle.d.ts.map +1 -0
- package/dist/ai-provider/lifecycle.js +145 -0
- package/dist/ai-provider/lifecycle.js.map +1 -0
- package/dist/ai-provider/logger.d.ts +69 -0
- package/dist/ai-provider/logger.d.ts.map +1 -0
- package/dist/ai-provider/logger.js +161 -0
- package/dist/ai-provider/logger.js.map +1 -0
- package/dist/ai-provider/metrics.d.ts +91 -0
- package/dist/ai-provider/metrics.d.ts.map +1 -0
- package/dist/ai-provider/metrics.js +187 -0
- package/dist/ai-provider/metrics.js.map +1 -0
- package/dist/ai-provider/process-manager.d.ts +97 -0
- package/dist/ai-provider/process-manager.d.ts.map +1 -0
- package/dist/ai-provider/process-manager.js +477 -0
- package/dist/ai-provider/process-manager.js.map +1 -0
- package/dist/ai-provider/providers/claude-code.d.ts +64 -0
- package/dist/ai-provider/providers/claude-code.d.ts.map +1 -0
- package/dist/ai-provider/providers/claude-code.js +205 -0
- package/dist/ai-provider/providers/claude-code.js.map +1 -0
- package/dist/ai-provider/retry-executor.d.ts +52 -0
- package/dist/ai-provider/retry-executor.d.ts.map +1 -0
- package/dist/ai-provider/retry-executor.js +138 -0
- package/dist/ai-provider/retry-executor.js.map +1 -0
- package/dist/ai-provider/safe-args.d.ts +58 -0
- package/dist/ai-provider/safe-args.d.ts.map +1 -0
- package/dist/ai-provider/safe-args.js +176 -0
- package/dist/ai-provider/safe-args.js.map +1 -0
- package/dist/ai-provider/semaphore.d.ts +50 -0
- package/dist/ai-provider/semaphore.d.ts.map +1 -0
- package/dist/ai-provider/semaphore.js +97 -0
- package/dist/ai-provider/semaphore.js.map +1 -0
- package/dist/ai-provider/tracer.d.ts +67 -0
- package/dist/ai-provider/tracer.d.ts.map +1 -0
- package/dist/ai-provider/tracer.js +209 -0
- package/dist/ai-provider/tracer.js.map +1 -0
- package/dist/ai-provider/types.d.ts +181 -0
- package/dist/ai-provider/types.d.ts.map +1 -0
- package/dist/ai-provider/types.js +8 -0
- package/dist/ai-provider/types.js.map +1 -0
- package/dist/autopilot/agents/agent-runner.d.ts +109 -0
- package/dist/autopilot/agents/agent-runner.d.ts.map +1 -0
- package/dist/autopilot/agents/agent-runner.js +731 -0
- package/dist/autopilot/agents/agent-runner.js.map +1 -0
- package/dist/autopilot/agents/agent-selector.d.ts +59 -0
- package/dist/autopilot/agents/agent-selector.d.ts.map +1 -0
- package/dist/autopilot/agents/agent-selector.js +234 -0
- package/dist/autopilot/agents/agent-selector.js.map +1 -0
- package/dist/autopilot/agents/model-selector.d.ts +49 -0
- package/dist/autopilot/agents/model-selector.d.ts.map +1 -0
- package/dist/autopilot/agents/model-selector.js +62 -0
- package/dist/autopilot/agents/model-selector.js.map +1 -0
- package/dist/autopilot/agents/profiles/builtin.d.ts +55 -0
- package/dist/autopilot/agents/profiles/builtin.d.ts.map +1 -0
- package/dist/autopilot/agents/profiles/builtin.js +323 -0
- package/dist/autopilot/agents/profiles/builtin.js.map +1 -0
- package/dist/autopilot/agents/profiles/types.d.ts +98 -0
- package/dist/autopilot/agents/profiles/types.d.ts.map +1 -0
- package/dist/autopilot/agents/profiles/types.js +17 -0
- package/dist/autopilot/agents/profiles/types.js.map +1 -0
- package/dist/autopilot/api/autopilot-api-client.d.ts +217 -0
- package/dist/autopilot/api/autopilot-api-client.d.ts.map +1 -0
- package/dist/autopilot/api/autopilot-api-client.js +402 -0
- package/dist/autopilot/api/autopilot-api-client.js.map +1 -0
- package/dist/autopilot/cli/abort.d.ts +20 -0
- package/dist/autopilot/cli/abort.d.ts.map +1 -0
- package/dist/autopilot/cli/abort.js +201 -0
- package/dist/autopilot/cli/abort.js.map +1 -0
- package/dist/autopilot/cli/display.d.ts +63 -0
- package/dist/autopilot/cli/display.d.ts.map +1 -0
- package/dist/autopilot/cli/display.js +260 -0
- package/dist/autopilot/cli/display.js.map +1 -0
- package/dist/autopilot/cli/index.d.ts +24 -0
- package/dist/autopilot/cli/index.d.ts.map +1 -0
- package/dist/autopilot/cli/index.js +79 -0
- package/dist/autopilot/cli/index.js.map +1 -0
- package/dist/autopilot/cli/pause.d.ts +18 -0
- package/dist/autopilot/cli/pause.d.ts.map +1 -0
- package/dist/autopilot/cli/pause.js +110 -0
- package/dist/autopilot/cli/pause.js.map +1 -0
- package/dist/autopilot/cli/resume.d.ts +22 -0
- package/dist/autopilot/cli/resume.d.ts.map +1 -0
- package/dist/autopilot/cli/resume.js +172 -0
- package/dist/autopilot/cli/resume.js.map +1 -0
- package/dist/autopilot/cli/run.d.ts +25 -0
- package/dist/autopilot/cli/run.d.ts.map +1 -0
- package/dist/autopilot/cli/run.js +220 -0
- package/dist/autopilot/cli/run.js.map +1 -0
- package/dist/autopilot/cli/status.d.ts +20 -0
- package/dist/autopilot/cli/status.d.ts.map +1 -0
- package/dist/autopilot/cli/status.js +217 -0
- package/dist/autopilot/cli/status.js.map +1 -0
- package/dist/autopilot/config.d.ts +45 -0
- package/dist/autopilot/config.d.ts.map +1 -0
- package/dist/autopilot/config.js +269 -0
- package/dist/autopilot/config.js.map +1 -0
- package/dist/autopilot/core/dependency-resolver.d.ts +108 -0
- package/dist/autopilot/core/dependency-resolver.d.ts.map +1 -0
- package/dist/autopilot/core/dependency-resolver.js +394 -0
- package/dist/autopilot/core/dependency-resolver.js.map +1 -0
- package/dist/autopilot/core/dispatcher.d.ts +215 -0
- package/dist/autopilot/core/dispatcher.d.ts.map +1 -0
- package/dist/autopilot/core/dispatcher.js +594 -0
- package/dist/autopilot/core/dispatcher.js.map +1 -0
- package/dist/autopilot/core/failure-handler.d.ts +145 -0
- package/dist/autopilot/core/failure-handler.d.ts.map +1 -0
- package/dist/autopilot/core/failure-handler.js +308 -0
- package/dist/autopilot/core/failure-handler.js.map +1 -0
- package/dist/autopilot/core/rate-limit-handler.d.ts +108 -0
- package/dist/autopilot/core/rate-limit-handler.d.ts.map +1 -0
- package/dist/autopilot/core/rate-limit-handler.js +195 -0
- package/dist/autopilot/core/rate-limit-handler.js.map +1 -0
- package/dist/autopilot/core/state-manager.d.ts +160 -0
- package/dist/autopilot/core/state-manager.d.ts.map +1 -0
- package/dist/autopilot/core/state-manager.js +393 -0
- package/dist/autopilot/core/state-manager.js.map +1 -0
- package/dist/autopilot/core/timeout-manager.d.ts +95 -0
- package/dist/autopilot/core/timeout-manager.d.ts.map +1 -0
- package/dist/autopilot/core/timeout-manager.js +188 -0
- package/dist/autopilot/core/timeout-manager.js.map +1 -0
- package/dist/autopilot/git/branch-manager.d.ts +117 -0
- package/dist/autopilot/git/branch-manager.d.ts.map +1 -0
- package/dist/autopilot/git/branch-manager.js +238 -0
- package/dist/autopilot/git/branch-manager.js.map +1 -0
- package/dist/autopilot/git/index.d.ts +9 -0
- package/dist/autopilot/git/index.d.ts.map +1 -0
- package/dist/autopilot/git/index.js +9 -0
- package/dist/autopilot/git/index.js.map +1 -0
- package/dist/autopilot/git/merge-manager.d.ts +118 -0
- package/dist/autopilot/git/merge-manager.d.ts.map +1 -0
- package/dist/autopilot/git/merge-manager.js +304 -0
- package/dist/autopilot/git/merge-manager.js.map +1 -0
- package/dist/autopilot/git/worktree-manager.d.ts +128 -0
- package/dist/autopilot/git/worktree-manager.d.ts.map +1 -0
- package/dist/autopilot/git/worktree-manager.js +298 -0
- package/dist/autopilot/git/worktree-manager.js.map +1 -0
- package/dist/autopilot/index.d.ts +30 -0
- package/dist/autopilot/index.d.ts.map +1 -0
- package/dist/autopilot/index.js +55 -0
- package/dist/autopilot/index.js.map +1 -0
- package/dist/autopilot/sync/index.d.ts +7 -0
- package/dist/autopilot/sync/index.d.ts.map +1 -0
- package/dist/autopilot/sync/index.js +7 -0
- package/dist/autopilot/sync/index.js.map +1 -0
- package/dist/autopilot/sync/sync-manager.d.ts +168 -0
- package/dist/autopilot/sync/sync-manager.d.ts.map +1 -0
- package/dist/autopilot/sync/sync-manager.js +303 -0
- package/dist/autopilot/sync/sync-manager.js.map +1 -0
- package/dist/autopilot/types.d.ts +454 -0
- package/dist/autopilot/types.d.ts.map +1 -0
- package/dist/autopilot/types.js +26 -0
- package/dist/autopilot/types.js.map +1 -0
- package/dist/autopilot/utils/audit-logger.d.ts +176 -0
- package/dist/autopilot/utils/audit-logger.d.ts.map +1 -0
- package/dist/autopilot/utils/audit-logger.js +308 -0
- package/dist/autopilot/utils/audit-logger.js.map +1 -0
- package/dist/autopilot/utils/cost-tracker.d.ts +162 -0
- package/dist/autopilot/utils/cost-tracker.d.ts.map +1 -0
- package/dist/autopilot/utils/cost-tracker.js +269 -0
- package/dist/autopilot/utils/cost-tracker.js.map +1 -0
- package/dist/autopilot/utils/index.d.ts +9 -0
- package/dist/autopilot/utils/index.d.ts.map +1 -0
- package/dist/autopilot/utils/index.js +9 -0
- package/dist/autopilot/utils/index.js.map +1 -0
- package/dist/autopilot/utils/progress-reporter.d.ts +132 -0
- package/dist/autopilot/utils/progress-reporter.d.ts.map +1 -0
- package/dist/autopilot/utils/progress-reporter.js +290 -0
- package/dist/autopilot/utils/progress-reporter.js.map +1 -0
- package/dist/autopilot/worker/worker-pool.d.ts +179 -0
- package/dist/autopilot/worker/worker-pool.d.ts.map +1 -0
- package/dist/autopilot/worker/worker-pool.js +331 -0
- package/dist/autopilot/worker/worker-pool.js.map +1 -0
- package/dist/autopilot/worker/worker-session.d.ts +171 -0
- package/dist/autopilot/worker/worker-session.d.ts.map +1 -0
- package/dist/autopilot/worker/worker-session.js +295 -0
- package/dist/autopilot/worker/worker-session.js.map +1 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/core/epic.js +1 -1
- package/dist/tools/core/epic.js.map +1 -1
- package/dist/tools/core/lookup.d.ts.map +1 -1
- package/dist/tools/core/lookup.js +3 -2
- package/dist/tools/core/lookup.js.map +1 -1
- package/dist/tools/core/specification.js +1 -1
- package/dist/tools/core/specification.js.map +1 -1
- package/dist/tools/core/ticket.d.ts.map +1 -1
- package/dist/tools/core/ticket.js +4 -6
- package/dist/tools/core/ticket.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +60 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +4 -1
- package/dist/validation/index.js.map +1 -1
- package/package.json +8 -4
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SpecForge Autopilot Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Types for the autonomous ticket implementation engine.
|
|
5
|
+
*/
|
|
6
|
+
import type { Ticket, Epic, Specification, TicketStatus } from '../types/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Overall autopilot run status
|
|
9
|
+
*/
|
|
10
|
+
export type AutopilotStatus = 'idle' | 'running' | 'paused' | 'completed' | 'failed' | 'aborted' | 'rate_limited' | 'cost_limit_reached';
|
|
11
|
+
/**
|
|
12
|
+
* Worker status
|
|
13
|
+
*/
|
|
14
|
+
export type WorkerStatus = 'idle' | 'implementing' | 'validating' | 'committing' | 'failed' | 'paused';
|
|
15
|
+
/**
|
|
16
|
+
* Ticket implementation result
|
|
17
|
+
*/
|
|
18
|
+
export type TicketResult = 'success' | 'failed' | 'skipped' | 'rate_limited' | 'timeout';
|
|
19
|
+
/**
|
|
20
|
+
* Main autopilot state tracking
|
|
21
|
+
*/
|
|
22
|
+
export interface AutopilotState {
|
|
23
|
+
/** Unique run ID */
|
|
24
|
+
runId: string;
|
|
25
|
+
/** Current status */
|
|
26
|
+
status: AutopilotStatus;
|
|
27
|
+
/** Specification being processed */
|
|
28
|
+
specificationId: string;
|
|
29
|
+
/** Project ID */
|
|
30
|
+
projectId: string;
|
|
31
|
+
/** When run started */
|
|
32
|
+
startedAt: Date;
|
|
33
|
+
/** When run ended */
|
|
34
|
+
endedAt?: Date;
|
|
35
|
+
/** When paused */
|
|
36
|
+
pausedAt?: Date;
|
|
37
|
+
/** Active worker sessions */
|
|
38
|
+
workers: WorkerSession[];
|
|
39
|
+
/** Total number of tickets to process */
|
|
40
|
+
totalTickets?: number;
|
|
41
|
+
/** Completed tickets */
|
|
42
|
+
completedTickets: string[];
|
|
43
|
+
/** Failed tickets */
|
|
44
|
+
failedTickets: FailedTicket[];
|
|
45
|
+
/** Skipped tickets (blocked or dependencies failed) */
|
|
46
|
+
skippedTickets: string[];
|
|
47
|
+
/** Current epic being processed (ID) */
|
|
48
|
+
currentEpicId?: string;
|
|
49
|
+
/** Current epic title for display */
|
|
50
|
+
currentEpic?: string;
|
|
51
|
+
/** Total estimated cost so far */
|
|
52
|
+
totalCostUsd: number;
|
|
53
|
+
/** Total tokens used */
|
|
54
|
+
totalTokens: TokenUsage;
|
|
55
|
+
/** Rate limit info if rate limited */
|
|
56
|
+
rateLimitInfo?: RateLimitInfo;
|
|
57
|
+
/** Pause reason if paused */
|
|
58
|
+
pauseReason?: string;
|
|
59
|
+
/** Error message if aborted */
|
|
60
|
+
errorMessage?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Token usage tracking
|
|
64
|
+
*/
|
|
65
|
+
export interface TokenUsage {
|
|
66
|
+
inputTokens: number;
|
|
67
|
+
outputTokens: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Rate limit information
|
|
71
|
+
*/
|
|
72
|
+
export interface RateLimitInfo {
|
|
73
|
+
hitAt: Date;
|
|
74
|
+
message: string;
|
|
75
|
+
estimatedResumeAt?: Date;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Failed ticket information
|
|
79
|
+
*/
|
|
80
|
+
export interface FailedTicket {
|
|
81
|
+
ticketId: string;
|
|
82
|
+
error: string;
|
|
83
|
+
attempts: number;
|
|
84
|
+
retryCount: number;
|
|
85
|
+
lastAttemptAt: Date;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Worker session state
|
|
89
|
+
*/
|
|
90
|
+
export interface WorkerSession {
|
|
91
|
+
/** Worker ID (0-indexed) */
|
|
92
|
+
workerId: number;
|
|
93
|
+
/** Current status */
|
|
94
|
+
status: WorkerStatus;
|
|
95
|
+
/** Current ticket being processed */
|
|
96
|
+
currentTicketId?: string;
|
|
97
|
+
/** Git worktree path */
|
|
98
|
+
worktreePath: string;
|
|
99
|
+
/** Branch name for this worker */
|
|
100
|
+
branchName: string;
|
|
101
|
+
/** Tickets completed by this worker */
|
|
102
|
+
completedCount: number;
|
|
103
|
+
/** Tickets failed by this worker */
|
|
104
|
+
failedCount: number;
|
|
105
|
+
/** Total cost incurred by this worker */
|
|
106
|
+
costUsd: number;
|
|
107
|
+
/** Token usage for current ticket */
|
|
108
|
+
currentTokens?: TokenUsage;
|
|
109
|
+
/** When started processing current ticket */
|
|
110
|
+
ticketStartedAt?: Date;
|
|
111
|
+
/** Last error message */
|
|
112
|
+
lastError?: string;
|
|
113
|
+
/** Number of retries on current ticket */
|
|
114
|
+
retryCount: number;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* File pattern matcher
|
|
118
|
+
*/
|
|
119
|
+
export interface FileMatcher {
|
|
120
|
+
/** Glob patterns to match */
|
|
121
|
+
patterns: string[];
|
|
122
|
+
/** Patterns to exclude */
|
|
123
|
+
exclude?: string[];
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Tag matcher for profile selection
|
|
127
|
+
*/
|
|
128
|
+
export interface ProfileTagMatcher {
|
|
129
|
+
/** Tags that must be present (AND) */
|
|
130
|
+
required?: string[];
|
|
131
|
+
/** Tags where any match triggers selection (OR) */
|
|
132
|
+
anyOf?: string[];
|
|
133
|
+
/** Tags that exclude this profile */
|
|
134
|
+
exclude?: string[];
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Validation command configuration
|
|
138
|
+
*/
|
|
139
|
+
export interface ValidationCommand {
|
|
140
|
+
/** Command name for display */
|
|
141
|
+
name: string;
|
|
142
|
+
/** The command to run */
|
|
143
|
+
command: string;
|
|
144
|
+
/** Whether the command must pass for success */
|
|
145
|
+
required: boolean;
|
|
146
|
+
/** Timeout in ms */
|
|
147
|
+
timeoutMs?: number;
|
|
148
|
+
/** Working directory (relative to worktree) */
|
|
149
|
+
cwd?: string;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Agent profile for specialized implementations
|
|
153
|
+
*/
|
|
154
|
+
export interface AgentProfile {
|
|
155
|
+
/** Profile ID */
|
|
156
|
+
id: string;
|
|
157
|
+
/** Display name */
|
|
158
|
+
name: string;
|
|
159
|
+
/** Description */
|
|
160
|
+
description: string;
|
|
161
|
+
/** File patterns this profile handles */
|
|
162
|
+
fileMatchers: FileMatcher[];
|
|
163
|
+
/** Tag matchers for selection */
|
|
164
|
+
tagMatchers?: ProfileTagMatcher;
|
|
165
|
+
/** Default model to use */
|
|
166
|
+
model?: string;
|
|
167
|
+
/** System prompt additions */
|
|
168
|
+
systemPromptAdditions?: string;
|
|
169
|
+
/** Validation commands to run after implementation */
|
|
170
|
+
validationCommands?: ValidationCommand[];
|
|
171
|
+
/** Maximum timeout for this profile (ms) */
|
|
172
|
+
timeoutMs?: number;
|
|
173
|
+
/** Profile priority (higher = more specific) */
|
|
174
|
+
priority?: number;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* AI Provider configuration for autopilot
|
|
178
|
+
*/
|
|
179
|
+
export interface AutopilotAIProviderConfig {
|
|
180
|
+
/** Provider mode (always claude_code for autopilot) */
|
|
181
|
+
mode: 'claude_code';
|
|
182
|
+
/** Maximum parallel Claude processes */
|
|
183
|
+
maxParallelProcesses: number;
|
|
184
|
+
/** Request timeout in seconds */
|
|
185
|
+
requestTimeoutSeconds: number;
|
|
186
|
+
/** Maximum retries per request */
|
|
187
|
+
maxRetries: number;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Branch strategy options
|
|
191
|
+
*/
|
|
192
|
+
export type BranchStrategy = 'per-epic' | 'per-ticket' | 'single';
|
|
193
|
+
/**
|
|
194
|
+
* Autopilot configuration
|
|
195
|
+
*/
|
|
196
|
+
export interface AutopilotConfig {
|
|
197
|
+
/** Maximum parallel workers (worktrees) */
|
|
198
|
+
maxParallelWorkers: number;
|
|
199
|
+
/** Maximum total cost before pausing (USD) */
|
|
200
|
+
maxTotalCostUsd: number;
|
|
201
|
+
/** Branch strategy */
|
|
202
|
+
branchStrategy: BranchStrategy;
|
|
203
|
+
/** Auto-commit after each ticket */
|
|
204
|
+
autoCommit: boolean;
|
|
205
|
+
/** Auto-push after commits */
|
|
206
|
+
autoPush: boolean;
|
|
207
|
+
/** AI Provider configuration */
|
|
208
|
+
aiProvider: AutopilotAIProviderConfig;
|
|
209
|
+
/** Per-ticket timeout (ms) */
|
|
210
|
+
ticketTimeoutMs: number;
|
|
211
|
+
/** Maximum retries per ticket */
|
|
212
|
+
maxTicketRetries: number;
|
|
213
|
+
/** Pause at 80% of timeout */
|
|
214
|
+
warnAtTimeoutPercent: number;
|
|
215
|
+
/** API sync interval (ms) */
|
|
216
|
+
syncIntervalMs: number;
|
|
217
|
+
/** Log file path */
|
|
218
|
+
logPath?: string;
|
|
219
|
+
/** Agent profiles */
|
|
220
|
+
agentProfiles?: AgentProfile[];
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Default autopilot configuration
|
|
224
|
+
*/
|
|
225
|
+
export declare const DEFAULT_AUTOPILOT_CONFIG: AutopilotConfig;
|
|
226
|
+
/**
|
|
227
|
+
* Ticket queue item with dependency info
|
|
228
|
+
*/
|
|
229
|
+
export interface QueuedTicket {
|
|
230
|
+
ticketId: string;
|
|
231
|
+
epicId: string;
|
|
232
|
+
/** Tickets that must complete before this one */
|
|
233
|
+
dependsOn: string[];
|
|
234
|
+
/** Whether dependencies are satisfied */
|
|
235
|
+
ready: boolean;
|
|
236
|
+
/** Priority (lower is higher priority) */
|
|
237
|
+
priority: number;
|
|
238
|
+
/** Complexity estimate */
|
|
239
|
+
complexity: 'small' | 'medium' | 'large' | 'xlarge';
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Dependency graph node
|
|
243
|
+
*/
|
|
244
|
+
export interface DependencyNode {
|
|
245
|
+
ticketId: string;
|
|
246
|
+
status: TicketStatus;
|
|
247
|
+
dependsOn: string[];
|
|
248
|
+
blockedBy: string[];
|
|
249
|
+
/** True if all dependencies are completed */
|
|
250
|
+
ready: boolean;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Autopilot event types
|
|
254
|
+
*/
|
|
255
|
+
export interface AutopilotEventMap {
|
|
256
|
+
'state:changed': AutopilotState;
|
|
257
|
+
'worker:started': {
|
|
258
|
+
workerId: number;
|
|
259
|
+
ticketId: string;
|
|
260
|
+
};
|
|
261
|
+
'worker:completed': {
|
|
262
|
+
workerId: number;
|
|
263
|
+
ticketId: string;
|
|
264
|
+
result: TicketResult;
|
|
265
|
+
};
|
|
266
|
+
'worker:failed': {
|
|
267
|
+
workerId: number;
|
|
268
|
+
ticketId: string;
|
|
269
|
+
error: string;
|
|
270
|
+
};
|
|
271
|
+
'ticket:started': {
|
|
272
|
+
ticketId: string;
|
|
273
|
+
workerId: number;
|
|
274
|
+
};
|
|
275
|
+
'ticket:completed': {
|
|
276
|
+
ticketId: string;
|
|
277
|
+
result: TicketResult;
|
|
278
|
+
costUsd: number;
|
|
279
|
+
};
|
|
280
|
+
'ticket:failed': {
|
|
281
|
+
ticketId: string;
|
|
282
|
+
error: string;
|
|
283
|
+
retryable: boolean;
|
|
284
|
+
};
|
|
285
|
+
'epic:started': {
|
|
286
|
+
epicId: string;
|
|
287
|
+
};
|
|
288
|
+
'epic:completed': {
|
|
289
|
+
epicId: string;
|
|
290
|
+
completedTickets: number;
|
|
291
|
+
failedTickets: number;
|
|
292
|
+
};
|
|
293
|
+
'rate_limit:hit': {
|
|
294
|
+
message: string;
|
|
295
|
+
};
|
|
296
|
+
'rate_limit:cleared': void;
|
|
297
|
+
'cost:warning': {
|
|
298
|
+
currentCost: number;
|
|
299
|
+
maxCost: number;
|
|
300
|
+
};
|
|
301
|
+
'cost:exceeded': {
|
|
302
|
+
currentCost: number;
|
|
303
|
+
maxCost: number;
|
|
304
|
+
};
|
|
305
|
+
'timeout:warning': {
|
|
306
|
+
ticketId: string;
|
|
307
|
+
percentUsed: number;
|
|
308
|
+
};
|
|
309
|
+
'timeout:exceeded': {
|
|
310
|
+
ticketId: string;
|
|
311
|
+
};
|
|
312
|
+
'paused': {
|
|
313
|
+
reason: string;
|
|
314
|
+
};
|
|
315
|
+
'resumed': void;
|
|
316
|
+
'aborted': {
|
|
317
|
+
reason: string;
|
|
318
|
+
};
|
|
319
|
+
'completed': {
|
|
320
|
+
summary: RunSummary;
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Summary of an autopilot run
|
|
325
|
+
*/
|
|
326
|
+
export interface RunSummary {
|
|
327
|
+
runId: string;
|
|
328
|
+
specificationId: string;
|
|
329
|
+
projectId: string;
|
|
330
|
+
status: AutopilotStatus;
|
|
331
|
+
startedAt: Date;
|
|
332
|
+
endedAt: Date;
|
|
333
|
+
durationMs: number;
|
|
334
|
+
totalTickets: number;
|
|
335
|
+
completedTickets: number;
|
|
336
|
+
failedTickets: number;
|
|
337
|
+
skippedTickets: number;
|
|
338
|
+
totalCostUsd: number;
|
|
339
|
+
totalTokens: TokenUsage;
|
|
340
|
+
epicsProcessed: number;
|
|
341
|
+
workerCount: number;
|
|
342
|
+
averageTicketTimeMs: number;
|
|
343
|
+
errors: string[];
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Ticket with full context for implementation
|
|
347
|
+
*/
|
|
348
|
+
export interface TicketContext {
|
|
349
|
+
ticket: Ticket;
|
|
350
|
+
epic: Epic;
|
|
351
|
+
specification: Specification;
|
|
352
|
+
dependencies: {
|
|
353
|
+
blockedBy: Array<{
|
|
354
|
+
id: string;
|
|
355
|
+
title: string;
|
|
356
|
+
status: TicketStatus;
|
|
357
|
+
}>;
|
|
358
|
+
blocks: Array<{
|
|
359
|
+
id: string;
|
|
360
|
+
title: string;
|
|
361
|
+
status: TicketStatus;
|
|
362
|
+
}>;
|
|
363
|
+
};
|
|
364
|
+
patterns?: Record<string, unknown>;
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Implementation result from agent
|
|
368
|
+
*/
|
|
369
|
+
export interface ImplementationResult {
|
|
370
|
+
success: boolean;
|
|
371
|
+
output?: string;
|
|
372
|
+
error?: string;
|
|
373
|
+
filesModified?: string[];
|
|
374
|
+
filesCreated?: string[];
|
|
375
|
+
filesDeleted?: string[];
|
|
376
|
+
testsPassed?: boolean;
|
|
377
|
+
tokensUsed?: TokenUsage;
|
|
378
|
+
costUsd?: number;
|
|
379
|
+
durationMs?: number;
|
|
380
|
+
/** Model used for implementation */
|
|
381
|
+
modelUsed?: 'sonnet' | 'opus';
|
|
382
|
+
/** Commit SHA if auto-commit was performed */
|
|
383
|
+
commitSha?: string;
|
|
384
|
+
/** Discoveries parsed from AI output */
|
|
385
|
+
discoveries?: ParsedDiscovery[];
|
|
386
|
+
/** Session ID for linking to Claude Code JSONL logs */
|
|
387
|
+
sessionId?: string;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Discovery parsed from AI output using explicit markers
|
|
391
|
+
*/
|
|
392
|
+
export interface ParsedDiscovery {
|
|
393
|
+
type: DiscoveryType;
|
|
394
|
+
severity: DiscoverySeverity;
|
|
395
|
+
title: string;
|
|
396
|
+
description: string;
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Discovery types
|
|
400
|
+
*/
|
|
401
|
+
export type DiscoveryType = 'bug' | 'technical_debt' | 'new_requirement' | 'question' | 'blocker' | 'improvement';
|
|
402
|
+
/**
|
|
403
|
+
* Discovery severity levels
|
|
404
|
+
*/
|
|
405
|
+
export type DiscoverySeverity = 'low' | 'medium' | 'high' | 'critical';
|
|
406
|
+
/**
|
|
407
|
+
* Audit log entry types
|
|
408
|
+
*/
|
|
409
|
+
export type AuditEventType = 'run_started' | 'run_completed' | 'run_aborted' | 'run_paused' | 'run_resumed' | 'ticket_started' | 'ticket_completed' | 'ticket_failed' | 'ticket_skipped' | 'epic_started' | 'epic_completed' | 'rate_limit_hit' | 'rate_limit_cleared' | 'cost_warning' | 'cost_exceeded' | 'worker_spawned' | 'worker_terminated' | 'worktree_created' | 'worktree_removed' | 'branch_created' | 'branch_merged' | 'commit_created' | 'sync_completed' | 'sync_failed';
|
|
410
|
+
/**
|
|
411
|
+
* Audit log entry
|
|
412
|
+
*/
|
|
413
|
+
export interface AuditLogEntry {
|
|
414
|
+
timestamp: Date;
|
|
415
|
+
runId: string;
|
|
416
|
+
event: AuditEventType;
|
|
417
|
+
data: Record<string, unknown>;
|
|
418
|
+
workerId?: number;
|
|
419
|
+
ticketId?: string;
|
|
420
|
+
epicId?: string;
|
|
421
|
+
error?: string;
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Progress information for display
|
|
425
|
+
*/
|
|
426
|
+
export interface ProgressInfo {
|
|
427
|
+
status: AutopilotStatus;
|
|
428
|
+
currentEpic?: {
|
|
429
|
+
id: string;
|
|
430
|
+
title: string;
|
|
431
|
+
progress: number;
|
|
432
|
+
ticketsDone: number;
|
|
433
|
+
ticketsTotal: number;
|
|
434
|
+
};
|
|
435
|
+
workers: Array<{
|
|
436
|
+
id: number;
|
|
437
|
+
status: WorkerStatus;
|
|
438
|
+
currentTicket?: string;
|
|
439
|
+
progress?: number;
|
|
440
|
+
}>;
|
|
441
|
+
overall: {
|
|
442
|
+
ticketsDone: number;
|
|
443
|
+
ticketsTotal: number;
|
|
444
|
+
ticketsFailed: number;
|
|
445
|
+
ticketsSkipped: number;
|
|
446
|
+
progress: number;
|
|
447
|
+
costUsd: number;
|
|
448
|
+
elapsedMs: number;
|
|
449
|
+
estimatedRemainingMs?: number;
|
|
450
|
+
};
|
|
451
|
+
rateLimited?: boolean;
|
|
452
|
+
rateLimitMessage?: string;
|
|
453
|
+
}
|
|
454
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/autopilot/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SpecForge Autopilot Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Types for the autonomous ticket implementation engine.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Default autopilot configuration
|
|
8
|
+
*/
|
|
9
|
+
export const DEFAULT_AUTOPILOT_CONFIG = {
|
|
10
|
+
maxParallelWorkers: 3,
|
|
11
|
+
maxTotalCostUsd: 50,
|
|
12
|
+
branchStrategy: 'per-epic',
|
|
13
|
+
autoCommit: true,
|
|
14
|
+
autoPush: false,
|
|
15
|
+
aiProvider: {
|
|
16
|
+
mode: 'claude_code',
|
|
17
|
+
maxParallelProcesses: 5,
|
|
18
|
+
requestTimeoutSeconds: 300,
|
|
19
|
+
maxRetries: 3,
|
|
20
|
+
},
|
|
21
|
+
ticketTimeoutMs: 15 * 60 * 1000, // 15 minutes
|
|
22
|
+
maxTicketRetries: 2,
|
|
23
|
+
warnAtTimeoutPercent: 80,
|
|
24
|
+
syncIntervalMs: 30000, // 30 seconds
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/autopilot/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0PH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,kBAAkB,EAAE,CAAC;IACrB,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,UAAU;IAC1B,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,oBAAoB,EAAE,CAAC;QACvB,qBAAqB,EAAE,GAAG;QAC1B,UAAU,EAAE,CAAC;KACd;IACD,eAAe,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IAC9C,gBAAgB,EAAE,CAAC;IACnB,oBAAoB,EAAE,EAAE;IACxB,cAAc,EAAE,KAAK,EAAE,aAAa;CACrC,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audit Logger
|
|
3
|
+
*
|
|
4
|
+
* JSONL logging for autopilot runs.
|
|
5
|
+
*/
|
|
6
|
+
import type { TokenUsage, AutopilotStatus, WorkerStatus } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Log entry types
|
|
9
|
+
*/
|
|
10
|
+
export type AuditLogType = 'run:started' | 'run:completed' | 'run:paused' | 'run:resumed' | 'run:aborted' | 'epic:started' | 'epic:completed' | 'epic:failed' | 'ticket:started' | 'ticket:completed' | 'ticket:failed' | 'ticket:retried' | 'worker:created' | 'worker:started' | 'worker:completed' | 'worker:failed' | 'worker:idle' | 'cost:threshold' | 'cost:limit_reached' | 'rate_limit:hit' | 'rate_limit:cleared' | 'error:systemic' | 'sync:state' | 'git:commit' | 'git:merge' | 'git:conflict';
|
|
11
|
+
/**
|
|
12
|
+
* Base log entry
|
|
13
|
+
*/
|
|
14
|
+
export interface AuditLogEntry {
|
|
15
|
+
timestamp: string;
|
|
16
|
+
runId: string;
|
|
17
|
+
type: AuditLogType;
|
|
18
|
+
data: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Audit Logger Options
|
|
22
|
+
*/
|
|
23
|
+
export interface AuditLoggerOptions {
|
|
24
|
+
runId: string;
|
|
25
|
+
workingDirectory: string;
|
|
26
|
+
logDir?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Audit Logger
|
|
30
|
+
*
|
|
31
|
+
* Writes structured JSONL logs for autopilot runs.
|
|
32
|
+
*/
|
|
33
|
+
export declare class AuditLogger {
|
|
34
|
+
private runId;
|
|
35
|
+
private logFilePath;
|
|
36
|
+
private writeQueue;
|
|
37
|
+
private isWriting;
|
|
38
|
+
private initialized;
|
|
39
|
+
constructor(options: AuditLoggerOptions);
|
|
40
|
+
/**
|
|
41
|
+
* Initialize the logger
|
|
42
|
+
*/
|
|
43
|
+
initialize(): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Log an entry
|
|
46
|
+
*/
|
|
47
|
+
log(type: AuditLogType, data?: Record<string, unknown>): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Process the write queue
|
|
50
|
+
*/
|
|
51
|
+
private processQueue;
|
|
52
|
+
/**
|
|
53
|
+
* Log run started
|
|
54
|
+
*/
|
|
55
|
+
logRunStarted(data: {
|
|
56
|
+
specificationId: string;
|
|
57
|
+
maxParallelWorkers: number;
|
|
58
|
+
maxTotalCostUsd: number;
|
|
59
|
+
}): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Log run completed
|
|
62
|
+
*/
|
|
63
|
+
logRunCompleted(data: {
|
|
64
|
+
status: AutopilotStatus;
|
|
65
|
+
totalCostUsd: number;
|
|
66
|
+
totalTokens: TokenUsage;
|
|
67
|
+
completedTickets: number;
|
|
68
|
+
failedTickets: number;
|
|
69
|
+
durationMs: number;
|
|
70
|
+
}): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Log run paused
|
|
73
|
+
*/
|
|
74
|
+
logRunPaused(reason: string): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Log run resumed
|
|
77
|
+
*/
|
|
78
|
+
logRunResumed(): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Log run aborted
|
|
81
|
+
*/
|
|
82
|
+
logRunAborted(reason: string): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Log epic started
|
|
85
|
+
*/
|
|
86
|
+
logEpicStarted(epicId: string, epicTitle: string): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Log epic completed
|
|
89
|
+
*/
|
|
90
|
+
logEpicCompleted(epicId: string, ticketsCompleted: number, ticketsFailed: number): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Log epic failed
|
|
93
|
+
*/
|
|
94
|
+
logEpicFailed(epicId: string, error: string): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Log ticket started
|
|
97
|
+
*/
|
|
98
|
+
logTicketStarted(ticketId: string, ticketTitle: string, workerId: number): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Log ticket completed
|
|
101
|
+
*/
|
|
102
|
+
logTicketCompleted(ticketId: string, workerId: number, costUsd: number, tokens: TokenUsage, filesModified: string[]): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Log ticket failed
|
|
105
|
+
*/
|
|
106
|
+
logTicketFailed(ticketId: string, workerId: number, error: string, retryCount: number): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Log ticket retried
|
|
109
|
+
*/
|
|
110
|
+
logTicketRetried(ticketId: string, workerId: number, retryCount: number): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Log worker created
|
|
113
|
+
*/
|
|
114
|
+
logWorkerCreated(workerId: number, worktreePath: string): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Log worker status change
|
|
117
|
+
*/
|
|
118
|
+
logWorkerStatus(workerId: number, status: WorkerStatus, ticketId?: string): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Log cost threshold
|
|
121
|
+
*/
|
|
122
|
+
logCostThreshold(threshold: number, currentCost: number, percentUsed: number): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Log cost limit reached
|
|
125
|
+
*/
|
|
126
|
+
logCostLimitReached(limit: number, currentCost: number): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Log rate limit hit
|
|
129
|
+
*/
|
|
130
|
+
logRateLimitHit(retryAfterMs: number, provider: string): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Log rate limit cleared
|
|
133
|
+
*/
|
|
134
|
+
logRateLimitCleared(): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Log systemic error
|
|
137
|
+
*/
|
|
138
|
+
logSystemicError(errorType: string, errorCount: number, message: string): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Log git commit
|
|
141
|
+
*/
|
|
142
|
+
logGitCommit(ticketId: string, commitHash: string, branch: string): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Log git merge
|
|
145
|
+
*/
|
|
146
|
+
logGitMerge(sourceBranch: string, targetBranch: string, success: boolean, commitHash?: string): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Log git conflict
|
|
149
|
+
*/
|
|
150
|
+
logGitConflict(sourceBranch: string, targetBranch: string, files: string[]): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* Flush pending writes
|
|
153
|
+
*/
|
|
154
|
+
flush(): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Get log file path
|
|
157
|
+
*/
|
|
158
|
+
getLogFilePath(): string;
|
|
159
|
+
/**
|
|
160
|
+
* Get run ID
|
|
161
|
+
*/
|
|
162
|
+
getRunId(): string;
|
|
163
|
+
/**
|
|
164
|
+
* Read log entries
|
|
165
|
+
*/
|
|
166
|
+
readEntries(): Promise<AuditLogEntry[]>;
|
|
167
|
+
/**
|
|
168
|
+
* Get entries by type
|
|
169
|
+
*/
|
|
170
|
+
getEntriesByType(type: AuditLogType): Promise<AuditLogEntry[]>;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Create an audit logger
|
|
174
|
+
*/
|
|
175
|
+
export declare function createAuditLogger(options: AuditLoggerOptions): AuditLogger;
|
|
176
|
+
//# sourceMappingURL=audit-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-logger.d.ts","sourceRoot":"","sources":["../../../src/autopilot/utils/audit-logger.ts"],"names":[],"mappings":"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"}
|