@opentag/store 0.1.0 → 0.3.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.
@@ -1,4 +1,4 @@
1
- import { type OpenTagEvent, type OpenTagRun, type OpenTagRunResult } from "@opentag/core";
1
+ import { type ApprovalDecision, type ApplyIntentOutcome, type ApplyPlan, type ActionHint, type AdapterMutationMapping, type MutationIntentActionability, type OpenTagEvent, type OpenTagRun, type OpenTagRunResult, type PolicyRule, type ProposalLineage, type RunAdmissionDecision, type RunEventImportance, type RunEventVisibility, type SuggestedChangesSnapshot } from "@opentag/core";
2
2
  import type { BetterSQLite3Database } from "drizzle-orm/better-sqlite3";
3
3
  export type ClaimedOpenTagRun = {
4
4
  run: OpenTagRun;
@@ -8,9 +8,33 @@ export type OpenTagAuditEvent = {
8
8
  id: number;
9
9
  runId: string;
10
10
  type: string;
11
+ visibility: RunEventVisibility;
12
+ importance: RunEventImportance;
13
+ message?: string;
11
14
  payload: unknown;
12
15
  createdAt: string;
13
16
  };
17
+ export type CallbackDeliveryKind = "acknowledgement" | "progress" | "final";
18
+ export type CallbackDeliveryProvider = string;
19
+ export type CallbackDeliveryStatus = "pending" | "delivering" | "delivered" | "failed";
20
+ export type CallbackDelivery = {
21
+ id: number;
22
+ runId: string;
23
+ kind: CallbackDeliveryKind;
24
+ provider: CallbackDeliveryProvider;
25
+ uri: string;
26
+ body: string;
27
+ threadKey?: string;
28
+ agentId?: string;
29
+ statusMessageKey?: string;
30
+ blocks?: unknown[];
31
+ status: CallbackDeliveryStatus;
32
+ attempts: number;
33
+ lastError?: string;
34
+ nextAttemptAt?: string;
35
+ createdAt: string;
36
+ updatedAt: string;
37
+ };
14
38
  export type RepoBinding = {
15
39
  provider: string;
16
40
  owner: string;
@@ -20,23 +44,139 @@ export type RepoBinding = {
20
44
  defaultExecutor?: string;
21
45
  allowedActors?: string[];
22
46
  };
47
+ export type ChannelBinding = {
48
+ provider: string;
49
+ accountId: string;
50
+ conversationId: string;
51
+ repoProvider: string;
52
+ owner: string;
53
+ repo: string;
54
+ metadata?: Record<string, unknown>;
55
+ };
23
56
  export type SlackChannelBinding = {
24
57
  teamId: string;
25
58
  channelId: string;
59
+ repoProvider?: string;
26
60
  owner: string;
27
61
  repo: string;
28
62
  };
63
+ export type RunnerRegistration = {
64
+ runnerId: string;
65
+ name: string;
66
+ createdAt: string;
67
+ heartbeatAt?: string;
68
+ };
69
+ export type StoredSuggestedChangesSnapshot = {
70
+ runId: string;
71
+ snapshot: SuggestedChangesSnapshot;
72
+ };
73
+ export type StoredSuggestedChangesInConversation = StoredSuggestedChangesSnapshot & {
74
+ run: OpenTagRun;
75
+ event: OpenTagEvent;
76
+ };
77
+ export type ApplyOutcomeCounts = {
78
+ applied: number;
79
+ skipped: number;
80
+ failed: number;
81
+ stale: number;
82
+ unsupported: number;
83
+ };
84
+ export type CreateRunResult = {
85
+ run: OpenTagRun;
86
+ created: boolean;
87
+ };
88
+ export type FollowUpRequest = {
89
+ id: string;
90
+ sourceEventId: string;
91
+ conversationKey: string;
92
+ activeRunId?: string;
93
+ event: OpenTagEvent;
94
+ decision: RunAdmissionDecision;
95
+ status: "queued" | "promoted" | "cancelled";
96
+ createdRunId?: string;
97
+ createdAt: string;
98
+ updatedAt: string;
99
+ };
100
+ export type OpenTagRunMetrics = {
101
+ runId: string;
102
+ totalEventCount: number;
103
+ humanEventCount: number;
104
+ auditEventCount: number;
105
+ debugEventCount: number;
106
+ humanCallbackCount: number;
107
+ threadNoiseRatio: number;
108
+ suggestedChangesCount: number;
109
+ approvalDecisionCount: number;
110
+ applyPlanCount: number;
111
+ childRunCount: number;
112
+ applyOutcomeCounts: ApplyOutcomeCounts;
113
+ staleIntentCount: number;
114
+ };
115
+ export type OpenTagAggregateMetrics = {
116
+ scope: "repo" | "work_thread";
117
+ scopeId: string;
118
+ runCount: number;
119
+ totalEventCount: number;
120
+ humanEventCount: number;
121
+ auditEventCount: number;
122
+ debugEventCount: number;
123
+ humanCallbackCount: number;
124
+ threadNoiseRatio: number;
125
+ suggestedChangesCount: number;
126
+ approvalDecisionCount: number;
127
+ applyPlanCount: number;
128
+ childRunCount: number;
129
+ applyOutcomeCounts: ApplyOutcomeCounts;
130
+ staleIntentCount: number;
131
+ };
29
132
  export declare function createOpenTagRepository(db: BetterSQLite3Database): {
30
133
  appendRunEvent: (input: {
31
134
  runId: string;
32
135
  type: string;
33
136
  payload: unknown;
34
137
  createdAt?: string;
138
+ visibility?: RunEventVisibility;
139
+ importance?: RunEventImportance;
140
+ message?: string;
35
141
  }) => Promise<void>;
142
+ getRunByEventId(input: {
143
+ eventId: string;
144
+ }): Promise<{
145
+ run: OpenTagRun;
146
+ event: OpenTagEvent;
147
+ } | null>;
148
+ findActiveRunForConversation(input: {
149
+ conversationKey: string;
150
+ }): Promise<{
151
+ run: OpenTagRun;
152
+ event: OpenTagEvent;
153
+ } | null>;
154
+ createFollowUpRequest(input: {
155
+ id: string;
156
+ event: OpenTagEvent;
157
+ decision: RunAdmissionDecision;
158
+ activeRunId?: string;
159
+ }): Promise<{
160
+ followUpRequest: FollowUpRequest;
161
+ created: boolean;
162
+ }>;
163
+ getFollowUpRequest(input: {
164
+ id: string;
165
+ }): Promise<FollowUpRequest | null>;
166
+ createRunFromFollowUpRequest(input: {
167
+ followUpRequestId: string;
168
+ runId: string;
169
+ }): Promise<{
170
+ followUpRequest: FollowUpRequest;
171
+ run: OpenTagRun;
172
+ }>;
36
173
  registerRunner(input: {
37
174
  runnerId: string;
38
175
  name: string;
39
176
  }): Promise<void>;
177
+ getRunner(input: {
178
+ runnerId: string;
179
+ }): Promise<RunnerRegistration | null>;
40
180
  createRepoBinding(input: {
41
181
  provider: string;
42
182
  owner: string;
@@ -46,11 +186,38 @@ export declare function createOpenTagRepository(db: BetterSQLite3Database): {
46
186
  defaultExecutor?: string;
47
187
  allowedActors?: string[];
48
188
  }): Promise<void>;
189
+ upsertRepoPolicyRule(input: {
190
+ provider: string;
191
+ owner: string;
192
+ repo: string;
193
+ rule: PolicyRule;
194
+ }): Promise<PolicyRule>;
195
+ listRepoPolicyRules(input: {
196
+ provider: string;
197
+ owner: string;
198
+ repo: string;
199
+ }): Promise<PolicyRule[]>;
200
+ upsertRepoMutationMapping(input: {
201
+ provider: string;
202
+ owner: string;
203
+ repo: string;
204
+ mapping: AdapterMutationMapping;
205
+ }): Promise<AdapterMutationMapping>;
206
+ listRepoMutationMappings(input: {
207
+ provider: string;
208
+ owner: string;
209
+ repo: string;
210
+ }): Promise<AdapterMutationMapping[]>;
211
+ upsertChannelBinding(input: ChannelBinding): Promise<void>;
49
212
  createSlackChannelBinding(input: SlackChannelBinding): Promise<void>;
50
213
  createRun(input: {
51
214
  id: string;
52
215
  event: OpenTagEvent;
53
- }): Promise<OpenTagRun>;
216
+ parentRunId?: string;
217
+ triggeredByAction?: ActionHint;
218
+ sourceProposalId?: string;
219
+ sourceApplyPlanId?: string;
220
+ }): Promise<CreateRunResult>;
54
221
  claimNextRun(input: {
55
222
  runnerId: string;
56
223
  leaseSeconds: number;
@@ -60,6 +227,11 @@ export declare function createOpenTagRepository(db: BetterSQLite3Database): {
60
227
  owner: string;
61
228
  repo: string;
62
229
  }): Promise<RepoBinding | null>;
230
+ getChannelBinding(input: {
231
+ provider: string;
232
+ accountId: string;
233
+ conversationId: string;
234
+ }): Promise<ChannelBinding | null>;
63
235
  getSlackChannelBinding(input: {
64
236
  teamId: string;
65
237
  channelId: string;
@@ -72,22 +244,114 @@ export declare function createOpenTagRepository(db: BetterSQLite3Database): {
72
244
  markRunning(input: {
73
245
  runId: string;
74
246
  executor: string;
75
- }): Promise<void>;
247
+ runnerId?: string;
248
+ }): Promise<boolean>;
76
249
  completeRun(input: {
77
250
  runId: string;
78
251
  result: OpenTagRunResult;
79
- }): Promise<void>;
252
+ runnerId?: string;
253
+ }): Promise<boolean>;
254
+ getSuggestedChanges(input: {
255
+ proposalId: string;
256
+ }): Promise<StoredSuggestedChangesSnapshot | null>;
257
+ listSuggestedChangesForRun(input: {
258
+ runId: string;
259
+ }): Promise<SuggestedChangesSnapshot[]>;
260
+ listLatestSuggestedChangesForConversation(input: {
261
+ conversationKey: string;
262
+ }): Promise<StoredSuggestedChangesInConversation[]>;
263
+ getProposalLineage(input: {
264
+ proposalId: string;
265
+ }): Promise<ProposalLineage | null>;
266
+ listCurrentMutationIntents(input: {
267
+ proposalId: string;
268
+ }): Promise<MutationIntentActionability[] | null>;
269
+ recordApprovalDecision(input: ApprovalDecision): Promise<ApprovalDecision | null>;
270
+ getApprovalDecision(input: {
271
+ id: string;
272
+ }): Promise<ApprovalDecision | null>;
273
+ createApplyPlan(input: {
274
+ id: string;
275
+ proposalId: string;
276
+ approvalDecisionId: string;
277
+ selectedIntentIds?: string[];
278
+ adapter?: string;
279
+ policyRules?: PolicyRule[];
280
+ }): Promise<ApplyPlan | null>;
281
+ createApplyPlanOnce(input: {
282
+ id: string;
283
+ proposalId: string;
284
+ approvalDecisionId: string;
285
+ selectedIntentIds?: string[];
286
+ adapter?: string;
287
+ policyRules?: PolicyRule[];
288
+ }): Promise<{
289
+ plan: ApplyPlan;
290
+ created: boolean;
291
+ } | null>;
292
+ getApplyPlan(input: {
293
+ id: string;
294
+ }): Promise<ApplyPlan | null>;
295
+ updateApplyPlanOutcomes(input: {
296
+ id: string;
297
+ outcomes: ApplyIntentOutcome[];
298
+ externalWritesExecuted: boolean;
299
+ }): Promise<ApplyPlan | null>;
80
300
  recordProgress(input: {
81
301
  runId: string;
82
302
  message: string;
83
303
  type?: string;
84
304
  at?: string;
85
- }): Promise<void>;
305
+ visibility?: RunEventVisibility;
306
+ importance?: RunEventImportance;
307
+ runnerId?: string;
308
+ }): Promise<boolean>;
86
309
  getRun(input: {
87
310
  runId: string;
88
311
  }): Promise<ClaimedOpenTagRun | null>;
89
312
  listRunEvents(input: {
90
313
  runId: string;
91
314
  }): Promise<OpenTagAuditEvent[]>;
315
+ enqueueCallbackDelivery(input: {
316
+ runId: string;
317
+ kind: CallbackDeliveryKind;
318
+ provider: CallbackDeliveryProvider;
319
+ uri: string;
320
+ body: string;
321
+ threadKey?: string;
322
+ agentId?: string;
323
+ statusMessageKey?: string;
324
+ blocks?: unknown[];
325
+ }): Promise<CallbackDelivery>;
326
+ markCallbackDelivered(input: {
327
+ deliveryId: number;
328
+ }): Promise<void>;
329
+ markCallbackFailed(input: {
330
+ deliveryId: number;
331
+ error: string;
332
+ nextAttemptAt?: string;
333
+ }): Promise<void>;
334
+ listPendingCallbackDeliveries(input: {
335
+ limit: number;
336
+ now?: Date;
337
+ maxAttempts?: number;
338
+ }): Promise<CallbackDelivery[]>;
339
+ claimPendingCallbackDeliveries(input: {
340
+ limit: number;
341
+ now?: Date;
342
+ maxAttempts?: number;
343
+ staleDeliveryThresholdMs?: number;
344
+ }): Promise<CallbackDelivery[]>;
345
+ getRunMetrics(input: {
346
+ runId: string;
347
+ }): Promise<OpenTagRunMetrics>;
348
+ getRepoMetrics(input: {
349
+ provider: string;
350
+ owner: string;
351
+ repo: string;
352
+ }): Promise<OpenTagAggregateMetrics>;
353
+ getWorkThreadMetrics(input: {
354
+ threadId: string;
355
+ }): Promise<OpenTagAggregateMetrics>;
92
356
  };
93
357
  //# sourceMappingURL=repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}