@open330/oac 2026.3.6 → 2026.4.1

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.

Potentially problematic release.


This version of @open330/oac might be problematic. Click here for more details.

Files changed (52) hide show
  1. package/dist/budget/index.d.ts +78 -0
  2. package/dist/budget/index.js +17 -0
  3. package/dist/chunk-LQC5DLT7.js +317 -0
  4. package/dist/chunk-LQC5DLT7.js.map +1 -0
  5. package/dist/chunk-NZEI4RPP.js +1499 -0
  6. package/dist/chunk-NZEI4RPP.js.map +1 -0
  7. package/dist/{chunk-Z7KEQPGV.js → chunk-SZUDHVBF.js} +65 -89
  8. package/dist/chunk-SZUDHVBF.js.map +1 -0
  9. package/dist/chunk-TGZ2TGDA.js +348 -0
  10. package/dist/chunk-TGZ2TGDA.js.map +1 -0
  11. package/dist/chunk-UL66HWYF.js +392 -0
  12. package/dist/chunk-UL66HWYF.js.map +1 -0
  13. package/dist/chunk-VLR2VYFW.js +475 -0
  14. package/dist/chunk-VLR2VYFW.js.map +1 -0
  15. package/dist/chunk-ZPI2VQ7U.js +1732 -0
  16. package/dist/chunk-ZPI2VQ7U.js.map +1 -0
  17. package/dist/cli/cli.js +15 -0
  18. package/dist/cli/cli.js.map +1 -0
  19. package/dist/cli/index.js +18 -0
  20. package/dist/cli/index.js.map +1 -0
  21. package/dist/completion/index.d.ts +91 -0
  22. package/dist/completion/index.js +590 -0
  23. package/dist/completion/index.js.map +1 -0
  24. package/dist/core/index.d.ts +1403 -0
  25. package/dist/core/index.js +75 -0
  26. package/dist/core/index.js.map +1 -0
  27. package/dist/dashboard/index.d.ts +14 -0
  28. package/dist/dashboard/index.js +1257 -0
  29. package/dist/dashboard/index.js.map +1 -0
  30. package/dist/discovery/index.d.ts +115 -0
  31. package/dist/discovery/index.js +19 -0
  32. package/dist/discovery/index.js.map +1 -0
  33. package/dist/event-bus-CRLkpNo0.d.ts +91 -0
  34. package/dist/execution/index.d.ts +162 -0
  35. package/dist/execution/index.js +18 -0
  36. package/dist/execution/index.js.map +1 -0
  37. package/dist/repo/index.d.ts +33 -0
  38. package/dist/repo/index.js +19 -0
  39. package/dist/repo/index.js.map +1 -0
  40. package/dist/tracking/index.d.ts +357 -0
  41. package/dist/tracking/index.js +15 -0
  42. package/dist/tracking/index.js.map +1 -0
  43. package/dist/types-CYCwgojB.d.ts +34 -0
  44. package/dist/types-cJZwCZZX.d.ts +172 -0
  45. package/package.json +42 -20
  46. package/dist/chunk-Z7KEQPGV.js.map +0 -1
  47. package/dist/cli.js +0 -9
  48. package/dist/index.js +0 -12
  49. package/dist/index.js.map +0 -1
  50. /package/dist/{cli.js.map → budget/index.js.map} +0 -0
  51. /package/dist/{cli.d.ts → cli/cli.d.ts} +0 -0
  52. /package/dist/{index.d.ts → cli/index.d.ts} +0 -0
@@ -0,0 +1,19 @@
1
+ import {
2
+ DEFAULT_METADATA_CACHE_PATH,
3
+ DEFAULT_METADATA_CACHE_TTL_MS,
4
+ DEFAULT_REPO_CACHE_DIR,
5
+ MetadataCache,
6
+ RepoResolutionError,
7
+ cloneRepo,
8
+ resolveRepo
9
+ } from "../chunk-VLR2VYFW.js";
10
+ export {
11
+ DEFAULT_METADATA_CACHE_PATH,
12
+ DEFAULT_METADATA_CACHE_TTL_MS,
13
+ DEFAULT_REPO_CACHE_DIR,
14
+ MetadataCache,
15
+ RepoResolutionError,
16
+ cloneRepo,
17
+ resolveRepo
18
+ };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,357 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const taskSourceValues: readonly ["lint", "todo", "test-gap", "dead-code", "github-issue", "github-pr-review", "custom"];
4
+ declare const taskComplexityValues: readonly ["trivial", "simple", "moderate", "complex"];
5
+ declare const contributionTaskStatusValues: readonly ["success", "partial", "failed"];
6
+ type TaskSource = (typeof taskSourceValues)[number];
7
+ type TaskComplexity = (typeof taskComplexityValues)[number];
8
+ type ContributionTaskStatus = (typeof contributionTaskStatusValues)[number];
9
+ type AgentProviderId = string;
10
+ declare const contributionTaskSchema: z.ZodObject<{
11
+ taskId: z.ZodString;
12
+ title: z.ZodString;
13
+ source: z.ZodEnum<["lint", "todo", "test-gap", "dead-code", "github-issue", "github-pr-review", "custom"]>;
14
+ complexity: z.ZodEnum<["trivial", "simple", "moderate", "complex"]>;
15
+ status: z.ZodEnum<["success", "partial", "failed"]>;
16
+ tokensUsed: z.ZodNumber;
17
+ duration: z.ZodNumber;
18
+ filesChanged: z.ZodArray<z.ZodString, "many">;
19
+ pr: z.ZodOptional<z.ZodObject<{
20
+ number: z.ZodNumber;
21
+ url: z.ZodString;
22
+ status: z.ZodEnum<["open", "merged", "closed"]>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ number: number;
25
+ status: "open" | "merged" | "closed";
26
+ url: string;
27
+ }, {
28
+ number: number;
29
+ status: "open" | "merged" | "closed";
30
+ url: string;
31
+ }>>;
32
+ linkedIssue: z.ZodOptional<z.ZodObject<{
33
+ number: z.ZodNumber;
34
+ url: z.ZodString;
35
+ }, "strip", z.ZodTypeAny, {
36
+ number: number;
37
+ url: string;
38
+ }, {
39
+ number: number;
40
+ url: string;
41
+ }>>;
42
+ error: z.ZodOptional<z.ZodString>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ taskId: string;
45
+ title: string;
46
+ source: "lint" | "todo" | "test-gap" | "dead-code" | "github-issue" | "github-pr-review" | "custom";
47
+ status: "success" | "partial" | "failed";
48
+ complexity: "trivial" | "simple" | "moderate" | "complex";
49
+ tokensUsed: number;
50
+ duration: number;
51
+ filesChanged: string[];
52
+ pr?: {
53
+ number: number;
54
+ status: "open" | "merged" | "closed";
55
+ url: string;
56
+ } | undefined;
57
+ linkedIssue?: {
58
+ number: number;
59
+ url: string;
60
+ } | undefined;
61
+ error?: string | undefined;
62
+ }, {
63
+ taskId: string;
64
+ title: string;
65
+ source: "lint" | "todo" | "test-gap" | "dead-code" | "github-issue" | "github-pr-review" | "custom";
66
+ status: "success" | "partial" | "failed";
67
+ complexity: "trivial" | "simple" | "moderate" | "complex";
68
+ tokensUsed: number;
69
+ duration: number;
70
+ filesChanged: string[];
71
+ pr?: {
72
+ number: number;
73
+ status: "open" | "merged" | "closed";
74
+ url: string;
75
+ } | undefined;
76
+ linkedIssue?: {
77
+ number: number;
78
+ url: string;
79
+ } | undefined;
80
+ error?: string | undefined;
81
+ }>;
82
+ declare const contributionLogSchema: z.ZodObject<{
83
+ version: z.ZodLiteral<"1.0">;
84
+ runId: z.ZodString;
85
+ timestamp: z.ZodString;
86
+ contributor: z.ZodObject<{
87
+ githubUsername: z.ZodString;
88
+ email: z.ZodOptional<z.ZodString>;
89
+ }, "strip", z.ZodTypeAny, {
90
+ githubUsername: string;
91
+ email?: string | undefined;
92
+ }, {
93
+ githubUsername: string;
94
+ email?: string | undefined;
95
+ }>;
96
+ repo: z.ZodObject<{
97
+ fullName: z.ZodString;
98
+ headSha: z.ZodString;
99
+ defaultBranch: z.ZodString;
100
+ }, "strip", z.ZodTypeAny, {
101
+ fullName: string;
102
+ headSha: string;
103
+ defaultBranch: string;
104
+ }, {
105
+ fullName: string;
106
+ headSha: string;
107
+ defaultBranch: string;
108
+ }>;
109
+ budget: z.ZodObject<{
110
+ provider: z.ZodString;
111
+ totalTokensBudgeted: z.ZodNumber;
112
+ totalTokensUsed: z.ZodNumber;
113
+ estimatedCostUsd: z.ZodOptional<z.ZodNumber>;
114
+ }, "strip", z.ZodTypeAny, {
115
+ provider: string;
116
+ totalTokensBudgeted: number;
117
+ totalTokensUsed: number;
118
+ estimatedCostUsd?: number | undefined;
119
+ }, {
120
+ provider: string;
121
+ totalTokensBudgeted: number;
122
+ totalTokensUsed: number;
123
+ estimatedCostUsd?: number | undefined;
124
+ }>;
125
+ tasks: z.ZodArray<z.ZodObject<{
126
+ taskId: z.ZodString;
127
+ title: z.ZodString;
128
+ source: z.ZodEnum<["lint", "todo", "test-gap", "dead-code", "github-issue", "github-pr-review", "custom"]>;
129
+ complexity: z.ZodEnum<["trivial", "simple", "moderate", "complex"]>;
130
+ status: z.ZodEnum<["success", "partial", "failed"]>;
131
+ tokensUsed: z.ZodNumber;
132
+ duration: z.ZodNumber;
133
+ filesChanged: z.ZodArray<z.ZodString, "many">;
134
+ pr: z.ZodOptional<z.ZodObject<{
135
+ number: z.ZodNumber;
136
+ url: z.ZodString;
137
+ status: z.ZodEnum<["open", "merged", "closed"]>;
138
+ }, "strip", z.ZodTypeAny, {
139
+ number: number;
140
+ status: "open" | "merged" | "closed";
141
+ url: string;
142
+ }, {
143
+ number: number;
144
+ status: "open" | "merged" | "closed";
145
+ url: string;
146
+ }>>;
147
+ linkedIssue: z.ZodOptional<z.ZodObject<{
148
+ number: z.ZodNumber;
149
+ url: z.ZodString;
150
+ }, "strip", z.ZodTypeAny, {
151
+ number: number;
152
+ url: string;
153
+ }, {
154
+ number: number;
155
+ url: string;
156
+ }>>;
157
+ error: z.ZodOptional<z.ZodString>;
158
+ }, "strip", z.ZodTypeAny, {
159
+ taskId: string;
160
+ title: string;
161
+ source: "lint" | "todo" | "test-gap" | "dead-code" | "github-issue" | "github-pr-review" | "custom";
162
+ status: "success" | "partial" | "failed";
163
+ complexity: "trivial" | "simple" | "moderate" | "complex";
164
+ tokensUsed: number;
165
+ duration: number;
166
+ filesChanged: string[];
167
+ pr?: {
168
+ number: number;
169
+ status: "open" | "merged" | "closed";
170
+ url: string;
171
+ } | undefined;
172
+ linkedIssue?: {
173
+ number: number;
174
+ url: string;
175
+ } | undefined;
176
+ error?: string | undefined;
177
+ }, {
178
+ taskId: string;
179
+ title: string;
180
+ source: "lint" | "todo" | "test-gap" | "dead-code" | "github-issue" | "github-pr-review" | "custom";
181
+ status: "success" | "partial" | "failed";
182
+ complexity: "trivial" | "simple" | "moderate" | "complex";
183
+ tokensUsed: number;
184
+ duration: number;
185
+ filesChanged: string[];
186
+ pr?: {
187
+ number: number;
188
+ status: "open" | "merged" | "closed";
189
+ url: string;
190
+ } | undefined;
191
+ linkedIssue?: {
192
+ number: number;
193
+ url: string;
194
+ } | undefined;
195
+ error?: string | undefined;
196
+ }>, "many">;
197
+ metrics: z.ZodObject<{
198
+ tasksDiscovered: z.ZodNumber;
199
+ tasksAttempted: z.ZodNumber;
200
+ tasksSucceeded: z.ZodNumber;
201
+ tasksFailed: z.ZodNumber;
202
+ totalDuration: z.ZodNumber;
203
+ totalFilesChanged: z.ZodNumber;
204
+ totalLinesAdded: z.ZodNumber;
205
+ totalLinesRemoved: z.ZodNumber;
206
+ }, "strip", z.ZodTypeAny, {
207
+ tasksDiscovered: number;
208
+ tasksAttempted: number;
209
+ tasksSucceeded: number;
210
+ tasksFailed: number;
211
+ totalDuration: number;
212
+ totalFilesChanged: number;
213
+ totalLinesAdded: number;
214
+ totalLinesRemoved: number;
215
+ }, {
216
+ tasksDiscovered: number;
217
+ tasksAttempted: number;
218
+ tasksSucceeded: number;
219
+ tasksFailed: number;
220
+ totalDuration: number;
221
+ totalFilesChanged: number;
222
+ totalLinesAdded: number;
223
+ totalLinesRemoved: number;
224
+ }>;
225
+ }, "strip", z.ZodTypeAny, {
226
+ version: "1.0";
227
+ runId: string;
228
+ timestamp: string;
229
+ contributor: {
230
+ githubUsername: string;
231
+ email?: string | undefined;
232
+ };
233
+ repo: {
234
+ fullName: string;
235
+ headSha: string;
236
+ defaultBranch: string;
237
+ };
238
+ budget: {
239
+ provider: string;
240
+ totalTokensBudgeted: number;
241
+ totalTokensUsed: number;
242
+ estimatedCostUsd?: number | undefined;
243
+ };
244
+ tasks: {
245
+ taskId: string;
246
+ title: string;
247
+ source: "lint" | "todo" | "test-gap" | "dead-code" | "github-issue" | "github-pr-review" | "custom";
248
+ status: "success" | "partial" | "failed";
249
+ complexity: "trivial" | "simple" | "moderate" | "complex";
250
+ tokensUsed: number;
251
+ duration: number;
252
+ filesChanged: string[];
253
+ pr?: {
254
+ number: number;
255
+ status: "open" | "merged" | "closed";
256
+ url: string;
257
+ } | undefined;
258
+ linkedIssue?: {
259
+ number: number;
260
+ url: string;
261
+ } | undefined;
262
+ error?: string | undefined;
263
+ }[];
264
+ metrics: {
265
+ tasksDiscovered: number;
266
+ tasksAttempted: number;
267
+ tasksSucceeded: number;
268
+ tasksFailed: number;
269
+ totalDuration: number;
270
+ totalFilesChanged: number;
271
+ totalLinesAdded: number;
272
+ totalLinesRemoved: number;
273
+ };
274
+ }, {
275
+ version: "1.0";
276
+ runId: string;
277
+ timestamp: string;
278
+ contributor: {
279
+ githubUsername: string;
280
+ email?: string | undefined;
281
+ };
282
+ repo: {
283
+ fullName: string;
284
+ headSha: string;
285
+ defaultBranch: string;
286
+ };
287
+ budget: {
288
+ provider: string;
289
+ totalTokensBudgeted: number;
290
+ totalTokensUsed: number;
291
+ estimatedCostUsd?: number | undefined;
292
+ };
293
+ tasks: {
294
+ taskId: string;
295
+ title: string;
296
+ source: "lint" | "todo" | "test-gap" | "dead-code" | "github-issue" | "github-pr-review" | "custom";
297
+ status: "success" | "partial" | "failed";
298
+ complexity: "trivial" | "simple" | "moderate" | "complex";
299
+ tokensUsed: number;
300
+ duration: number;
301
+ filesChanged: string[];
302
+ pr?: {
303
+ number: number;
304
+ status: "open" | "merged" | "closed";
305
+ url: string;
306
+ } | undefined;
307
+ linkedIssue?: {
308
+ number: number;
309
+ url: string;
310
+ } | undefined;
311
+ error?: string | undefined;
312
+ }[];
313
+ metrics: {
314
+ tasksDiscovered: number;
315
+ tasksAttempted: number;
316
+ tasksSucceeded: number;
317
+ tasksFailed: number;
318
+ totalDuration: number;
319
+ totalFilesChanged: number;
320
+ totalLinesAdded: number;
321
+ totalLinesRemoved: number;
322
+ };
323
+ }>;
324
+ type ContributionTask = z.infer<typeof contributionTaskSchema>;
325
+ type ContributionLog = z.infer<typeof contributionLogSchema>;
326
+ declare function parseContributionLog(input: unknown): ContributionLog;
327
+
328
+ declare function writeContributionLog(log: ContributionLog, repoPath: string): Promise<string>;
329
+
330
+ interface Leaderboard {
331
+ generatedAt: string;
332
+ entries: LeaderboardEntry[];
333
+ repoStats: {
334
+ totalContributions: number;
335
+ totalTokensUsed: number;
336
+ totalPRsCreated: number;
337
+ totalPRsMerged: number;
338
+ firstContribution: string;
339
+ lastContribution: string;
340
+ };
341
+ }
342
+ interface LeaderboardEntry {
343
+ githubUsername: string;
344
+ totalRuns: number;
345
+ totalTasksCompleted: number;
346
+ totalTokensDonated: number;
347
+ totalFilesChanged: number;
348
+ totalLinesChanged: number;
349
+ totalPRsCreated: number;
350
+ totalPRsMerged: number;
351
+ favoriteTaskSource: TaskSource;
352
+ firstContribution: string;
353
+ lastContribution: string;
354
+ }
355
+ declare function buildLeaderboard(repoPath: string): Promise<Leaderboard>;
356
+
357
+ export { type AgentProviderId, type ContributionLog, type ContributionTask, type ContributionTaskStatus, type Leaderboard, type LeaderboardEntry, type TaskComplexity, type TaskSource, buildLeaderboard, contributionLogSchema, contributionTaskSchema, parseContributionLog, writeContributionLog };
@@ -0,0 +1,15 @@
1
+ import {
2
+ buildLeaderboard,
3
+ contributionLogSchema,
4
+ contributionTaskSchema,
5
+ parseContributionLog,
6
+ writeContributionLog
7
+ } from "../chunk-LQC5DLT7.js";
8
+ export {
9
+ buildLeaderboard,
10
+ contributionLogSchema,
11
+ contributionTaskSchema,
12
+ parseContributionLog,
13
+ writeContributionLog
14
+ };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,34 @@
1
+ interface RepoPermissions {
2
+ push: boolean;
3
+ pull: boolean;
4
+ admin: boolean;
5
+ }
6
+ interface ResolvedRepoMeta {
7
+ defaultBranch: string;
8
+ language: string | null;
9
+ languages: Record<string, number>;
10
+ size: number;
11
+ stars: number;
12
+ openIssuesCount: number;
13
+ topics: string[];
14
+ license: string | null;
15
+ isArchived: boolean;
16
+ isFork: boolean;
17
+ permissions: RepoPermissions;
18
+ }
19
+ interface ResolvedRepoGitState {
20
+ headSha: string;
21
+ remoteUrl: string;
22
+ isShallowClone: boolean;
23
+ }
24
+ interface ResolvedRepo {
25
+ fullName: string;
26
+ owner: string;
27
+ name: string;
28
+ localPath: string;
29
+ worktreePath: string;
30
+ meta: ResolvedRepoMeta;
31
+ git: ResolvedRepoGitState;
32
+ }
33
+
34
+ export type { ResolvedRepo as R, RepoPermissions as a, ResolvedRepoGitState as b, ResolvedRepoMeta as c };
@@ -0,0 +1,172 @@
1
+ type AgentProviderId = "claude-code" | "codex" | "opencode" | (string & {});
2
+ /**
3
+ * Sentinel value representing an unlimited token budget.
4
+ * Uses MAX_SAFE_INTEGER (passes Number.isFinite() checks in budget planner).
5
+ */
6
+ declare const UNLIMITED_BUDGET: number;
7
+ interface ResolvedRepo {
8
+ fullName: string;
9
+ owner: string;
10
+ name: string;
11
+ localPath: string;
12
+ worktreePath: string;
13
+ meta: {
14
+ defaultBranch: string;
15
+ language?: string;
16
+ languages: Record<string, number>;
17
+ size: number;
18
+ stars: number;
19
+ openIssuesCount: number;
20
+ topics: string[];
21
+ license?: string;
22
+ isArchived: boolean;
23
+ isFork: boolean;
24
+ permissions: {
25
+ admin: boolean;
26
+ maintain: boolean;
27
+ push: boolean;
28
+ triage: boolean;
29
+ pull: boolean;
30
+ };
31
+ };
32
+ git: {
33
+ headSha: string;
34
+ remoteUrl: string;
35
+ isShallowClone: boolean;
36
+ };
37
+ }
38
+ type TaskSource = "lint" | "todo" | "test-gap" | "dead-code" | "github-issue" | "custom";
39
+ type TaskComplexity = "trivial" | "simple" | "moderate" | "complex";
40
+ type ExecutionMode = "new-pr" | "update-pr" | "direct-commit";
41
+ interface Task {
42
+ id: string;
43
+ source: TaskSource;
44
+ title: string;
45
+ description: string;
46
+ targetFiles: string[];
47
+ priority: number;
48
+ complexity: TaskComplexity;
49
+ executionMode: ExecutionMode;
50
+ linkedIssue?: {
51
+ number: number;
52
+ url: string;
53
+ labels: string[];
54
+ };
55
+ metadata: Record<string, unknown>;
56
+ discoveredAt: string;
57
+ }
58
+ interface TokenEstimate {
59
+ taskId: string;
60
+ providerId: AgentProviderId;
61
+ contextTokens: number;
62
+ promptTokens: number;
63
+ expectedOutputTokens: number;
64
+ totalEstimatedTokens: number;
65
+ confidence: number;
66
+ feasible: boolean;
67
+ estimatedCostUsd?: number;
68
+ }
69
+ interface ExecutionPlan {
70
+ totalBudget: number;
71
+ selectedTasks: Array<{
72
+ task: Task;
73
+ estimate: TokenEstimate;
74
+ cumulativeBudgetUsed: number;
75
+ }>;
76
+ deferredTasks: Array<{
77
+ task: Task;
78
+ estimate: TokenEstimate;
79
+ reason: "budget_exceeded" | "low_confidence" | "too_complex";
80
+ }>;
81
+ reserveTokens: number;
82
+ remainingTokens: number;
83
+ }
84
+ interface ContributionTask {
85
+ taskId: string;
86
+ title: string;
87
+ source: TaskSource;
88
+ complexity: TaskComplexity;
89
+ status: "success" | "partial" | "failed";
90
+ tokensUsed: number;
91
+ duration: number;
92
+ filesChanged: string[];
93
+ pr?: {
94
+ number: number;
95
+ url: string;
96
+ status: "open" | "merged" | "closed";
97
+ };
98
+ linkedIssue?: {
99
+ number: number;
100
+ url: string;
101
+ };
102
+ error?: string;
103
+ }
104
+ interface ContributionLog {
105
+ version: "1.0";
106
+ runId: string;
107
+ timestamp: string;
108
+ contributor: {
109
+ githubUsername: string;
110
+ email?: string;
111
+ };
112
+ repo: {
113
+ fullName: string;
114
+ headSha: string;
115
+ defaultBranch: string;
116
+ };
117
+ budget: {
118
+ provider: AgentProviderId;
119
+ totalTokensBudgeted: number;
120
+ totalTokensUsed: number;
121
+ estimatedCostUsd?: number;
122
+ };
123
+ tasks: ContributionTask[];
124
+ metrics: {
125
+ tasksDiscovered: number;
126
+ tasksAttempted: number;
127
+ tasksSucceeded: number;
128
+ tasksFailed: number;
129
+ totalDuration: number;
130
+ totalFilesChanged: number;
131
+ totalLinesAdded: number;
132
+ totalLinesRemoved: number;
133
+ };
134
+ }
135
+ interface ExecutionResult {
136
+ success: boolean;
137
+ exitCode: number;
138
+ totalTokensUsed: number;
139
+ filesChanged: string[];
140
+ duration: number;
141
+ error?: string;
142
+ }
143
+ interface RunSummary {
144
+ runId: string;
145
+ repo: string;
146
+ provider: AgentProviderId;
147
+ startedAt: string;
148
+ completedAt: string;
149
+ duration: number;
150
+ budget: {
151
+ totalTokens: number;
152
+ reserveTokens: number;
153
+ usedTokens: number;
154
+ remainingTokens: number;
155
+ estimatedCostUsd?: number;
156
+ };
157
+ tasks: {
158
+ discovered: number;
159
+ selected: number;
160
+ attempted: number;
161
+ succeeded: number;
162
+ failed: number;
163
+ deferred: number;
164
+ };
165
+ pullRequests: {
166
+ created: number;
167
+ merged: number;
168
+ urls: string[];
169
+ };
170
+ }
171
+
172
+ export { type AgentProviderId as A, type ContributionLog as C, type ExecutionResult as E, type ResolvedRepo as R, type Task as T, UNLIMITED_BUDGET as U, type TokenEstimate as a, type RunSummary as b, type ExecutionPlan as c, type TaskSource as d, type TaskComplexity as e, type ContributionTask as f, type ExecutionMode as g };