@agent-relay/continuity 0.1.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/dist/formatter.d.ts +51 -0
- package/dist/formatter.d.ts.map +1 -0
- package/dist/formatter.js +313 -0
- package/dist/formatter.js.map +1 -0
- package/dist/handoff-store.d.ts +67 -0
- package/dist/handoff-store.d.ts.map +1 -0
- package/dist/handoff-store.js +472 -0
- package/dist/handoff-store.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/ledger-store.d.ts +110 -0
- package/dist/ledger-store.d.ts.map +1 -0
- package/dist/ledger-store.js +500 -0
- package/dist/ledger-store.js.map +1 -0
- package/dist/manager.d.ts +183 -0
- package/dist/manager.d.ts.map +1 -0
- package/dist/manager.js +616 -0
- package/dist/manager.js.map +1 -0
- package/dist/parser.d.ts +76 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +579 -0
- package/dist/parser.js.map +1 -0
- package/dist/types.d.ts +180 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Formatter
|
|
3
|
+
*
|
|
4
|
+
* Formats ledgers, handoffs, and learnings into markdown
|
|
5
|
+
* for injection into agent context.
|
|
6
|
+
*/
|
|
7
|
+
import type { Ledger, Handoff, StartupContext, FileRef, Decision } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Format options for context injection
|
|
10
|
+
*/
|
|
11
|
+
export interface FormatOptions {
|
|
12
|
+
/** Maximum length of the formatted context */
|
|
13
|
+
maxLength?: number;
|
|
14
|
+
/** Include file references */
|
|
15
|
+
includeFiles?: boolean;
|
|
16
|
+
/** Include decisions */
|
|
17
|
+
includeDecisions?: boolean;
|
|
18
|
+
/** Include learnings */
|
|
19
|
+
includeLearnings?: boolean;
|
|
20
|
+
/** Compact mode (less verbose) */
|
|
21
|
+
compact?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Format a startup context for injection
|
|
25
|
+
*/
|
|
26
|
+
export declare function formatStartupContext(context: Omit<StartupContext, 'formatted'>, options?: FormatOptions): string;
|
|
27
|
+
/**
|
|
28
|
+
* Format a ledger for context injection
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatLedger(ledger: Ledger, options?: FormatOptions): string;
|
|
31
|
+
/**
|
|
32
|
+
* Format a handoff for context injection
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatHandoff(handoff: Handoff, options?: FormatOptions): string;
|
|
35
|
+
/**
|
|
36
|
+
* Format a search result summary
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatSearchResults(handoffs: Handoff[], query: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Format a brief status summary (for status line / dashboard)
|
|
41
|
+
*/
|
|
42
|
+
export declare function formatBriefStatus(ledger: Ledger | null, handoff: Handoff | null): string;
|
|
43
|
+
/**
|
|
44
|
+
* Format file references for injection
|
|
45
|
+
*/
|
|
46
|
+
export declare function formatFileRefs(files: FileRef[]): string;
|
|
47
|
+
/**
|
|
48
|
+
* Format decisions for injection
|
|
49
|
+
*/
|
|
50
|
+
export declare function formatDecisions(decisions: Decision[]): string;
|
|
51
|
+
//# sourceMappingURL=formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAUD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,EAC1C,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAwCR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAqGhF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CA2FnF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA0B9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,CAwBxF;AASD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAUvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAE7D"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Formatter
|
|
3
|
+
*
|
|
4
|
+
* Formats ledgers, handoffs, and learnings into markdown
|
|
5
|
+
* for injection into agent context.
|
|
6
|
+
*/
|
|
7
|
+
const DEFAULT_OPTIONS = {
|
|
8
|
+
maxLength: 4000,
|
|
9
|
+
includeFiles: true,
|
|
10
|
+
includeDecisions: true,
|
|
11
|
+
includeLearnings: true,
|
|
12
|
+
compact: false,
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Format a startup context for injection
|
|
16
|
+
*/
|
|
17
|
+
export function formatStartupContext(context, options = {}) {
|
|
18
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
19
|
+
const sections = [];
|
|
20
|
+
sections.push('# Session Continuity');
|
|
21
|
+
sections.push('');
|
|
22
|
+
sections.push('*This context was automatically loaded from your previous session.*');
|
|
23
|
+
sections.push('');
|
|
24
|
+
// Format ledger if present
|
|
25
|
+
if (context.ledger) {
|
|
26
|
+
sections.push(formatLedger(context.ledger, opts));
|
|
27
|
+
}
|
|
28
|
+
// Format handoff if present (and no ledger or ledger is stale)
|
|
29
|
+
if (context.handoff) {
|
|
30
|
+
if (!context.ledger || isHandoffNewer(context.handoff, context.ledger)) {
|
|
31
|
+
sections.push('');
|
|
32
|
+
sections.push(formatHandoff(context.handoff, opts));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Format learnings if present
|
|
36
|
+
if (context.learnings && context.learnings.length > 0 && opts.includeLearnings) {
|
|
37
|
+
sections.push('');
|
|
38
|
+
sections.push('## Relevant Learnings');
|
|
39
|
+
sections.push('');
|
|
40
|
+
for (const learning of context.learnings.slice(0, 5)) {
|
|
41
|
+
sections.push(`- ${learning}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
let result = sections.join('\n');
|
|
45
|
+
// Truncate if too long
|
|
46
|
+
if (opts.maxLength && result.length > opts.maxLength) {
|
|
47
|
+
result = result.slice(0, opts.maxLength - 100) + '\n\n*[Context truncated for length]*';
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Format a ledger for context injection
|
|
53
|
+
*/
|
|
54
|
+
export function formatLedger(ledger, options = {}) {
|
|
55
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
56
|
+
const lines = [];
|
|
57
|
+
lines.push('## Current Session State');
|
|
58
|
+
lines.push('');
|
|
59
|
+
// Current task
|
|
60
|
+
if (ledger.currentTask) {
|
|
61
|
+
lines.push(`**Current Task:** ${ledger.currentTask}`);
|
|
62
|
+
lines.push('');
|
|
63
|
+
}
|
|
64
|
+
// PDERO phase if available
|
|
65
|
+
if (ledger.pderoPhase) {
|
|
66
|
+
lines.push(`**Phase:** ${ledger.pderoPhase.toUpperCase()}`);
|
|
67
|
+
lines.push('');
|
|
68
|
+
}
|
|
69
|
+
// Completed work
|
|
70
|
+
if (ledger.completed.length > 0) {
|
|
71
|
+
if (opts.compact) {
|
|
72
|
+
lines.push(`**Completed:** ${ledger.completed.join(', ')}`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
lines.push('### Completed');
|
|
76
|
+
for (const item of ledger.completed) {
|
|
77
|
+
lines.push(`- ✓ ${item}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
lines.push('');
|
|
81
|
+
}
|
|
82
|
+
// In progress
|
|
83
|
+
if (ledger.inProgress.length > 0) {
|
|
84
|
+
if (opts.compact) {
|
|
85
|
+
lines.push(`**In Progress:** ${ledger.inProgress.join(', ')}`);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
lines.push('### In Progress');
|
|
89
|
+
for (const item of ledger.inProgress) {
|
|
90
|
+
lines.push(`- ${item}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
lines.push('');
|
|
94
|
+
}
|
|
95
|
+
// Blocked items
|
|
96
|
+
if (ledger.blocked.length > 0) {
|
|
97
|
+
if (opts.compact) {
|
|
98
|
+
lines.push(`**Blocked:** ${ledger.blocked.join(', ')}`);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
lines.push('### Blocked');
|
|
102
|
+
for (const item of ledger.blocked) {
|
|
103
|
+
lines.push(`- ⚠ ${item}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
lines.push('');
|
|
107
|
+
}
|
|
108
|
+
// Uncertain items
|
|
109
|
+
if (ledger.uncertainItems.length > 0) {
|
|
110
|
+
lines.push('### Needs Verification');
|
|
111
|
+
for (const item of ledger.uncertainItems) {
|
|
112
|
+
lines.push(`- ❓ ${item}`);
|
|
113
|
+
}
|
|
114
|
+
lines.push('');
|
|
115
|
+
}
|
|
116
|
+
// Key decisions
|
|
117
|
+
if (ledger.keyDecisions.length > 0 && opts.includeDecisions) {
|
|
118
|
+
if (opts.compact) {
|
|
119
|
+
const decisions = ledger.keyDecisions.map((d) => d.decision).join('; ');
|
|
120
|
+
lines.push(`**Decisions:** ${decisions}`);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
lines.push('### Key Decisions');
|
|
124
|
+
for (const decision of ledger.keyDecisions.slice(-5)) {
|
|
125
|
+
lines.push(`- **${decision.decision}**`);
|
|
126
|
+
if (decision.reasoning) {
|
|
127
|
+
lines.push(` - Reasoning: ${decision.reasoning}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
lines.push('');
|
|
132
|
+
}
|
|
133
|
+
// File context
|
|
134
|
+
if (ledger.fileContext.length > 0 && opts.includeFiles) {
|
|
135
|
+
lines.push('### Relevant Files');
|
|
136
|
+
for (const file of ledger.fileContext.slice(-10)) {
|
|
137
|
+
let line = `- \`${file.path}\``;
|
|
138
|
+
if (file.lines) {
|
|
139
|
+
line += `:${file.lines[0]}-${file.lines[1]}`;
|
|
140
|
+
}
|
|
141
|
+
if (file.description) {
|
|
142
|
+
line += ` - ${file.description}`;
|
|
143
|
+
}
|
|
144
|
+
lines.push(line);
|
|
145
|
+
}
|
|
146
|
+
lines.push('');
|
|
147
|
+
}
|
|
148
|
+
return lines.join('\n');
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Format a handoff for context injection
|
|
152
|
+
*/
|
|
153
|
+
export function formatHandoff(handoff, options = {}) {
|
|
154
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
155
|
+
const lines = [];
|
|
156
|
+
lines.push('## Previous Session Handoff');
|
|
157
|
+
lines.push('');
|
|
158
|
+
// Task and summary
|
|
159
|
+
if (handoff.taskDescription) {
|
|
160
|
+
lines.push(`**Task:** ${handoff.taskDescription}`);
|
|
161
|
+
}
|
|
162
|
+
if (handoff.summary) {
|
|
163
|
+
lines.push('');
|
|
164
|
+
lines.push(handoff.summary);
|
|
165
|
+
}
|
|
166
|
+
lines.push('');
|
|
167
|
+
// PDERO phase if available
|
|
168
|
+
if (handoff.pderoPhase) {
|
|
169
|
+
lines.push(`**Last Phase:** ${handoff.pderoPhase.toUpperCase()}`);
|
|
170
|
+
if (handoff.confidence !== undefined) {
|
|
171
|
+
lines.push(`**Confidence:** ${Math.round(handoff.confidence * 100)}%`);
|
|
172
|
+
}
|
|
173
|
+
lines.push('');
|
|
174
|
+
}
|
|
175
|
+
// Completed work
|
|
176
|
+
if (handoff.completedWork.length > 0) {
|
|
177
|
+
if (opts.compact) {
|
|
178
|
+
lines.push(`**Completed:** ${handoff.completedWork.join(', ')}`);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
lines.push('### Previously Completed');
|
|
182
|
+
for (const item of handoff.completedWork) {
|
|
183
|
+
lines.push(`- ✓ ${item}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
lines.push('');
|
|
187
|
+
}
|
|
188
|
+
// Next steps (these are the priority)
|
|
189
|
+
if (handoff.nextSteps.length > 0) {
|
|
190
|
+
lines.push('### Next Steps');
|
|
191
|
+
for (const item of handoff.nextSteps) {
|
|
192
|
+
lines.push(`- ${item}`);
|
|
193
|
+
}
|
|
194
|
+
lines.push('');
|
|
195
|
+
}
|
|
196
|
+
// Key decisions
|
|
197
|
+
if (handoff.decisions.length > 0 && opts.includeDecisions) {
|
|
198
|
+
if (opts.compact) {
|
|
199
|
+
const decisions = handoff.decisions.map((d) => d.decision).join('; ');
|
|
200
|
+
lines.push(`**Prior Decisions:** ${decisions}`);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
lines.push('### Prior Decisions');
|
|
204
|
+
for (const decision of handoff.decisions.slice(-5)) {
|
|
205
|
+
lines.push(`- ${decision.decision}`);
|
|
206
|
+
if (decision.reasoning) {
|
|
207
|
+
lines.push(` - *${decision.reasoning}*`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
lines.push('');
|
|
212
|
+
}
|
|
213
|
+
// File references
|
|
214
|
+
if (handoff.fileReferences.length > 0 && opts.includeFiles) {
|
|
215
|
+
lines.push('### Key Files');
|
|
216
|
+
for (const file of handoff.fileReferences.slice(-10)) {
|
|
217
|
+
let line = `- \`${file.path}\``;
|
|
218
|
+
if (file.lines) {
|
|
219
|
+
line += `:${file.lines[0]}-${file.lines[1]}`;
|
|
220
|
+
}
|
|
221
|
+
if (file.description) {
|
|
222
|
+
line += ` - ${file.description}`;
|
|
223
|
+
}
|
|
224
|
+
lines.push(line);
|
|
225
|
+
}
|
|
226
|
+
lines.push('');
|
|
227
|
+
}
|
|
228
|
+
// Learnings
|
|
229
|
+
if (handoff.learnings && handoff.learnings.length > 0 && opts.includeLearnings) {
|
|
230
|
+
lines.push('### Learnings');
|
|
231
|
+
for (const learning of handoff.learnings) {
|
|
232
|
+
lines.push(`- ${learning}`);
|
|
233
|
+
}
|
|
234
|
+
lines.push('');
|
|
235
|
+
}
|
|
236
|
+
return lines.join('\n');
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Format a search result summary
|
|
240
|
+
*/
|
|
241
|
+
export function formatSearchResults(handoffs, query) {
|
|
242
|
+
const lines = [];
|
|
243
|
+
lines.push(`## Search Results for "${query}"`);
|
|
244
|
+
lines.push('');
|
|
245
|
+
if (handoffs.length === 0) {
|
|
246
|
+
lines.push('*No matching handoffs found.*');
|
|
247
|
+
return lines.join('\n');
|
|
248
|
+
}
|
|
249
|
+
lines.push(`Found ${handoffs.length} matching handoff(s):`);
|
|
250
|
+
lines.push('');
|
|
251
|
+
for (const handoff of handoffs) {
|
|
252
|
+
const date = handoff.createdAt.toISOString().split('T')[0];
|
|
253
|
+
lines.push(`### ${handoff.taskDescription || 'Untitled'} (${date})`);
|
|
254
|
+
lines.push(`- **Agent:** ${handoff.agentName}`);
|
|
255
|
+
lines.push(`- **ID:** ${handoff.id}`);
|
|
256
|
+
if (handoff.summary) {
|
|
257
|
+
lines.push(`- **Summary:** ${handoff.summary.slice(0, 100)}...`);
|
|
258
|
+
}
|
|
259
|
+
lines.push('');
|
|
260
|
+
}
|
|
261
|
+
return lines.join('\n');
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Format a brief status summary (for status line / dashboard)
|
|
265
|
+
*/
|
|
266
|
+
export function formatBriefStatus(ledger, handoff) {
|
|
267
|
+
if (!ledger && !handoff) {
|
|
268
|
+
return 'No continuity data';
|
|
269
|
+
}
|
|
270
|
+
const parts = [];
|
|
271
|
+
if (ledger) {
|
|
272
|
+
if (ledger.currentTask) {
|
|
273
|
+
parts.push(`Task: ${ledger.currentTask.slice(0, 40)}`);
|
|
274
|
+
}
|
|
275
|
+
if (ledger.pderoPhase) {
|
|
276
|
+
parts.push(`Phase: ${ledger.pderoPhase}`);
|
|
277
|
+
}
|
|
278
|
+
const progress = `${ledger.completed.length}✓ ${ledger.inProgress.length}→ ${ledger.blocked.length}⚠`;
|
|
279
|
+
parts.push(progress);
|
|
280
|
+
}
|
|
281
|
+
if (handoff && !ledger) {
|
|
282
|
+
parts.push(`Last handoff: ${handoff.taskDescription?.slice(0, 30) || handoff.id}`);
|
|
283
|
+
parts.push(handoff.createdAt.toISOString().split('T')[0]);
|
|
284
|
+
}
|
|
285
|
+
return parts.join(' | ');
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Check if handoff is newer than ledger
|
|
289
|
+
*/
|
|
290
|
+
function isHandoffNewer(handoff, ledger) {
|
|
291
|
+
return handoff.createdAt > ledger.updatedAt;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Format file references for injection
|
|
295
|
+
*/
|
|
296
|
+
export function formatFileRefs(files) {
|
|
297
|
+
return files
|
|
298
|
+
.map((f) => {
|
|
299
|
+
let line = f.path;
|
|
300
|
+
if (f.lines) {
|
|
301
|
+
line += `:${f.lines[0]}-${f.lines[1]}`;
|
|
302
|
+
}
|
|
303
|
+
return line;
|
|
304
|
+
})
|
|
305
|
+
.join(', ');
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Format decisions for injection
|
|
309
|
+
*/
|
|
310
|
+
export function formatDecisions(decisions) {
|
|
311
|
+
return decisions.map((d) => d.decision).join('; ');
|
|
312
|
+
}
|
|
313
|
+
//# sourceMappingURL=formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handoff Store
|
|
3
|
+
*
|
|
4
|
+
* Persists cross-session handoffs as markdown files.
|
|
5
|
+
* Organized by agent, with timestamps in filenames.
|
|
6
|
+
*/
|
|
7
|
+
import type { Handoff } from './types.js';
|
|
8
|
+
export declare class HandoffStore {
|
|
9
|
+
private basePath;
|
|
10
|
+
constructor(basePath: string);
|
|
11
|
+
/**
|
|
12
|
+
* Ensure the handoffs directory exists
|
|
13
|
+
*/
|
|
14
|
+
initialize(): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Generate a unique handoff ID
|
|
17
|
+
*/
|
|
18
|
+
private generateId;
|
|
19
|
+
/**
|
|
20
|
+
* Get the directory path for an agent's handoffs
|
|
21
|
+
*/
|
|
22
|
+
private getAgentDir;
|
|
23
|
+
/**
|
|
24
|
+
* Generate a filename for a handoff
|
|
25
|
+
*/
|
|
26
|
+
private generateFilename;
|
|
27
|
+
/**
|
|
28
|
+
* Convert a handoff to markdown format
|
|
29
|
+
*/
|
|
30
|
+
private toMarkdown;
|
|
31
|
+
/**
|
|
32
|
+
* Parse a markdown file back to a Handoff object
|
|
33
|
+
*/
|
|
34
|
+
private fromMarkdown;
|
|
35
|
+
private parseListItems;
|
|
36
|
+
private parseFileRefs;
|
|
37
|
+
private parseDecisions;
|
|
38
|
+
/**
|
|
39
|
+
* Save a handoff
|
|
40
|
+
*/
|
|
41
|
+
save(handoff: Handoff): Promise<string>;
|
|
42
|
+
/**
|
|
43
|
+
* Load a handoff by ID
|
|
44
|
+
*/
|
|
45
|
+
loadById(handoffId: string): Promise<Handoff | null>;
|
|
46
|
+
/**
|
|
47
|
+
* Get the latest handoff for an agent
|
|
48
|
+
*/
|
|
49
|
+
getLatest(agentName: string): Promise<Handoff | null>;
|
|
50
|
+
/**
|
|
51
|
+
* List handoffs for an agent (sorted by date, newest first)
|
|
52
|
+
*/
|
|
53
|
+
listForAgent(agentName: string, limit?: number): Promise<Handoff[]>;
|
|
54
|
+
/**
|
|
55
|
+
* List all agents with handoffs
|
|
56
|
+
*/
|
|
57
|
+
listAgents(): Promise<string[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Count handoffs for an agent
|
|
60
|
+
*/
|
|
61
|
+
countForAgent(agentName: string): Promise<number>;
|
|
62
|
+
/**
|
|
63
|
+
* Delete a handoff by ID
|
|
64
|
+
*/
|
|
65
|
+
delete(handoffId: string): Promise<boolean>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=handoff-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handoff-store.d.ts","sourceRoot":"","sources":["../src/handoff-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAqC,MAAM,YAAY,CAAC;AAE7E,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAI5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,UAAU;IAmHlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAwHpB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,cAAc;IAgCtB;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB7C;;OAEG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAgC1D;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAK3D;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAwBzE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAYrC;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAcvD;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAgClD"}
|