@ajvikram/relay 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/LICENSE +21 -0
- package/README.md +538 -0
- package/dist/cli/commands/branch.d.ts +9 -0
- package/dist/cli/commands/branch.d.ts.map +1 -0
- package/dist/cli/commands/branch.js +69 -0
- package/dist/cli/commands/branch.js.map +1 -0
- package/dist/cli/commands/diff.d.ts +8 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/diff.js +61 -0
- package/dist/cli/commands/diff.js.map +1 -0
- package/dist/cli/commands/history.d.ts +8 -0
- package/dist/cli/commands/history.d.ts.map +1 -0
- package/dist/cli/commands/history.js +32 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/hook.d.ts +6 -0
- package/dist/cli/commands/hook.d.ts.map +1 -0
- package/dist/cli/commands/hook.js +118 -0
- package/dist/cli/commands/hook.js.map +1 -0
- package/dist/cli/commands/init.d.ts +4 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +41 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +18 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +203 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/load.d.ts +9 -0
- package/dist/cli/commands/load.d.ts.map +1 -0
- package/dist/cli/commands/load.js +69 -0
- package/dist/cli/commands/load.js.map +1 -0
- package/dist/cli/commands/repos.d.ts +7 -0
- package/dist/cli/commands/repos.d.ts.map +1 -0
- package/dist/cli/commands/repos.js +53 -0
- package/dist/cli/commands/repos.js.map +1 -0
- package/dist/cli/commands/save.d.ts +9 -0
- package/dist/cli/commands/save.d.ts.map +1 -0
- package/dist/cli/commands/save.js +267 -0
- package/dist/cli/commands/save.js.map +1 -0
- package/dist/cli/commands/status.d.ts +23 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +134 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/ui.d.ts +9 -0
- package/dist/cli/commands/ui.d.ts.map +1 -0
- package/dist/cli/commands/ui.js +54 -0
- package/dist/cli/commands/ui.js.map +1 -0
- package/dist/cli/commands/vscode.d.ts +6 -0
- package/dist/cli/commands/vscode.d.ts.map +1 -0
- package/dist/cli/commands/vscode.js +86 -0
- package/dist/cli/commands/vscode.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +143 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/format/renderer.d.ts +5 -0
- package/dist/format/renderer.d.ts.map +1 -0
- package/dist/format/renderer.js +207 -0
- package/dist/format/renderer.js.map +1 -0
- package/dist/format/schema.d.ts +516 -0
- package/dist/format/schema.d.ts.map +1 -0
- package/dist/format/schema.js +90 -0
- package/dist/format/schema.js.map +1 -0
- package/dist/format/template.d.ts +44 -0
- package/dist/format/template.d.ts.map +1 -0
- package/dist/format/template.js +131 -0
- package/dist/format/template.js.map +1 -0
- package/dist/git/context.d.ts +23 -0
- package/dist/git/context.d.ts.map +1 -0
- package/dist/git/context.js +121 -0
- package/dist/git/context.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +164 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/server/index.d.ts +12 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +143 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/ui.d.ts +2 -0
- package/dist/server/ui.d.ts.map +1 -0
- package/dist/server/ui.js +797 -0
- package/dist/server/ui.js.map +1 -0
- package/dist/storage/global.d.ts +40 -0
- package/dist/storage/global.d.ts.map +1 -0
- package/dist/storage/global.js +126 -0
- package/dist/storage/global.js.map +1 -0
- package/dist/storage/index.d.ts +59 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +253 -0
- package/dist/storage/index.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,516 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const Platform: z.ZodEnum<["claude", "cursor", "copilot", "antigravity", "other"]>;
|
|
3
|
+
export type Platform = z.infer<typeof Platform>;
|
|
4
|
+
export declare const SessionStatus: z.ZodEnum<["in_progress", "blocked", "completed"]>;
|
|
5
|
+
export type SessionStatus = z.infer<typeof SessionStatus>;
|
|
6
|
+
export declare const Priority: z.ZodEnum<["immediate", "soon", "later"]>;
|
|
7
|
+
export type Priority = z.infer<typeof Priority>;
|
|
8
|
+
export declare const RepositorySchema: z.ZodObject<{
|
|
9
|
+
path: z.ZodString;
|
|
10
|
+
branch: z.ZodString;
|
|
11
|
+
head_commit: z.ZodString;
|
|
12
|
+
head_message: z.ZodOptional<z.ZodString>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
path: string;
|
|
15
|
+
branch: string;
|
|
16
|
+
head_commit: string;
|
|
17
|
+
head_message?: string | undefined;
|
|
18
|
+
}, {
|
|
19
|
+
path: string;
|
|
20
|
+
branch: string;
|
|
21
|
+
head_commit: string;
|
|
22
|
+
head_message?: string | undefined;
|
|
23
|
+
}>;
|
|
24
|
+
export type Repository = z.infer<typeof RepositorySchema>;
|
|
25
|
+
export declare const SessionSchema: z.ZodObject<{
|
|
26
|
+
goal: z.ZodString;
|
|
27
|
+
status: z.ZodEnum<["in_progress", "blocked", "completed"]>;
|
|
28
|
+
token_exhausted: z.ZodDefault<z.ZodBoolean>;
|
|
29
|
+
duration_hint: z.ZodOptional<z.ZodString>;
|
|
30
|
+
}, "strip", z.ZodTypeAny, {
|
|
31
|
+
status: "in_progress" | "blocked" | "completed";
|
|
32
|
+
goal: string;
|
|
33
|
+
token_exhausted: boolean;
|
|
34
|
+
duration_hint?: string | undefined;
|
|
35
|
+
}, {
|
|
36
|
+
status: "in_progress" | "blocked" | "completed";
|
|
37
|
+
goal: string;
|
|
38
|
+
token_exhausted?: boolean | undefined;
|
|
39
|
+
duration_hint?: string | undefined;
|
|
40
|
+
}>;
|
|
41
|
+
export type Session = z.infer<typeof SessionSchema>;
|
|
42
|
+
export declare const DecisionSchema: z.ZodObject<{
|
|
43
|
+
what: z.ZodString;
|
|
44
|
+
why: z.ZodString;
|
|
45
|
+
evidence: z.ZodOptional<z.ZodString>;
|
|
46
|
+
}, "strip", z.ZodTypeAny, {
|
|
47
|
+
what: string;
|
|
48
|
+
why: string;
|
|
49
|
+
evidence?: string | undefined;
|
|
50
|
+
}, {
|
|
51
|
+
what: string;
|
|
52
|
+
why: string;
|
|
53
|
+
evidence?: string | undefined;
|
|
54
|
+
}>;
|
|
55
|
+
export type Decision = z.infer<typeof DecisionSchema>;
|
|
56
|
+
export declare const FailedApproachSchema: z.ZodObject<{
|
|
57
|
+
approach: z.ZodString;
|
|
58
|
+
why_failed: z.ZodString;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
approach: string;
|
|
61
|
+
why_failed: string;
|
|
62
|
+
}, {
|
|
63
|
+
approach: string;
|
|
64
|
+
why_failed: string;
|
|
65
|
+
}>;
|
|
66
|
+
export type FailedApproach = z.infer<typeof FailedApproachSchema>;
|
|
67
|
+
export declare const ModifiedFileSchema: z.ZodObject<{
|
|
68
|
+
path: z.ZodString;
|
|
69
|
+
status: z.ZodDefault<z.ZodEnum<["added", "modified", "deleted"]>>;
|
|
70
|
+
summary: z.ZodString;
|
|
71
|
+
}, "strip", z.ZodTypeAny, {
|
|
72
|
+
path: string;
|
|
73
|
+
status: "added" | "modified" | "deleted";
|
|
74
|
+
summary: string;
|
|
75
|
+
}, {
|
|
76
|
+
path: string;
|
|
77
|
+
summary: string;
|
|
78
|
+
status?: "added" | "modified" | "deleted" | undefined;
|
|
79
|
+
}>;
|
|
80
|
+
export type ModifiedFile = z.infer<typeof ModifiedFileSchema>;
|
|
81
|
+
export declare const NextStepSchema: z.ZodObject<{
|
|
82
|
+
task: z.ZodString;
|
|
83
|
+
context: z.ZodOptional<z.ZodString>;
|
|
84
|
+
priority: z.ZodDefault<z.ZodEnum<["immediate", "soon", "later"]>>;
|
|
85
|
+
file_hint: z.ZodOptional<z.ZodString>;
|
|
86
|
+
}, "strip", z.ZodTypeAny, {
|
|
87
|
+
task: string;
|
|
88
|
+
priority: "immediate" | "soon" | "later";
|
|
89
|
+
context?: string | undefined;
|
|
90
|
+
file_hint?: string | undefined;
|
|
91
|
+
}, {
|
|
92
|
+
task: string;
|
|
93
|
+
context?: string | undefined;
|
|
94
|
+
priority?: "immediate" | "soon" | "later" | undefined;
|
|
95
|
+
file_hint?: string | undefined;
|
|
96
|
+
}>;
|
|
97
|
+
export type NextStep = z.infer<typeof NextStepSchema>;
|
|
98
|
+
export declare const HandoffSchema: z.ZodObject<{
|
|
99
|
+
/** Schema version — bump when making breaking changes to the format */
|
|
100
|
+
version: z.ZodDefault<z.ZodLiteral<"1">>;
|
|
101
|
+
/** ISO 8601 timestamp of when the handoff was created */
|
|
102
|
+
timestamp: z.ZodString;
|
|
103
|
+
/** Unique ID for this handoff (used in history filenames) */
|
|
104
|
+
id: z.ZodString;
|
|
105
|
+
/** The platform that generated this handoff */
|
|
106
|
+
source_platform: z.ZodDefault<z.ZodEnum<["claude", "cursor", "copilot", "antigravity", "other"]>>;
|
|
107
|
+
repository: z.ZodObject<{
|
|
108
|
+
path: z.ZodString;
|
|
109
|
+
branch: z.ZodString;
|
|
110
|
+
head_commit: z.ZodString;
|
|
111
|
+
head_message: z.ZodOptional<z.ZodString>;
|
|
112
|
+
}, "strip", z.ZodTypeAny, {
|
|
113
|
+
path: string;
|
|
114
|
+
branch: string;
|
|
115
|
+
head_commit: string;
|
|
116
|
+
head_message?: string | undefined;
|
|
117
|
+
}, {
|
|
118
|
+
path: string;
|
|
119
|
+
branch: string;
|
|
120
|
+
head_commit: string;
|
|
121
|
+
head_message?: string | undefined;
|
|
122
|
+
}>;
|
|
123
|
+
session: z.ZodObject<{
|
|
124
|
+
goal: z.ZodString;
|
|
125
|
+
status: z.ZodEnum<["in_progress", "blocked", "completed"]>;
|
|
126
|
+
token_exhausted: z.ZodDefault<z.ZodBoolean>;
|
|
127
|
+
duration_hint: z.ZodOptional<z.ZodString>;
|
|
128
|
+
}, "strip", z.ZodTypeAny, {
|
|
129
|
+
status: "in_progress" | "blocked" | "completed";
|
|
130
|
+
goal: string;
|
|
131
|
+
token_exhausted: boolean;
|
|
132
|
+
duration_hint?: string | undefined;
|
|
133
|
+
}, {
|
|
134
|
+
status: "in_progress" | "blocked" | "completed";
|
|
135
|
+
goal: string;
|
|
136
|
+
token_exhausted?: boolean | undefined;
|
|
137
|
+
duration_hint?: string | undefined;
|
|
138
|
+
}>;
|
|
139
|
+
/** Key architectural/design decisions made during the session */
|
|
140
|
+
decisions: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
141
|
+
what: z.ZodString;
|
|
142
|
+
why: z.ZodString;
|
|
143
|
+
evidence: z.ZodOptional<z.ZodString>;
|
|
144
|
+
}, "strip", z.ZodTypeAny, {
|
|
145
|
+
what: string;
|
|
146
|
+
why: string;
|
|
147
|
+
evidence?: string | undefined;
|
|
148
|
+
}, {
|
|
149
|
+
what: string;
|
|
150
|
+
why: string;
|
|
151
|
+
evidence?: string | undefined;
|
|
152
|
+
}>, "many">>;
|
|
153
|
+
/** Hard constraints the next agent MUST NOT violate */
|
|
154
|
+
constraints: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
155
|
+
/** Approaches that were tried and failed — prevents the next agent repeating mistakes */
|
|
156
|
+
failed_approaches: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
157
|
+
approach: z.ZodString;
|
|
158
|
+
why_failed: z.ZodString;
|
|
159
|
+
}, "strip", z.ZodTypeAny, {
|
|
160
|
+
approach: string;
|
|
161
|
+
why_failed: string;
|
|
162
|
+
}, {
|
|
163
|
+
approach: string;
|
|
164
|
+
why_failed: string;
|
|
165
|
+
}>, "many">>;
|
|
166
|
+
/** Files that were modified, added, or deleted during the session */
|
|
167
|
+
files_modified: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
168
|
+
path: z.ZodString;
|
|
169
|
+
status: z.ZodDefault<z.ZodEnum<["added", "modified", "deleted"]>>;
|
|
170
|
+
summary: z.ZodString;
|
|
171
|
+
}, "strip", z.ZodTypeAny, {
|
|
172
|
+
path: string;
|
|
173
|
+
status: "added" | "modified" | "deleted";
|
|
174
|
+
summary: string;
|
|
175
|
+
}, {
|
|
176
|
+
path: string;
|
|
177
|
+
summary: string;
|
|
178
|
+
status?: "added" | "modified" | "deleted" | undefined;
|
|
179
|
+
}>, "many">>;
|
|
180
|
+
/** Ordered list of what the next agent should do */
|
|
181
|
+
next_steps: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
182
|
+
task: z.ZodString;
|
|
183
|
+
context: z.ZodOptional<z.ZodString>;
|
|
184
|
+
priority: z.ZodDefault<z.ZodEnum<["immediate", "soon", "later"]>>;
|
|
185
|
+
file_hint: z.ZodOptional<z.ZodString>;
|
|
186
|
+
}, "strip", z.ZodTypeAny, {
|
|
187
|
+
task: string;
|
|
188
|
+
priority: "immediate" | "soon" | "later";
|
|
189
|
+
context?: string | undefined;
|
|
190
|
+
file_hint?: string | undefined;
|
|
191
|
+
}, {
|
|
192
|
+
task: string;
|
|
193
|
+
context?: string | undefined;
|
|
194
|
+
priority?: "immediate" | "soon" | "later" | undefined;
|
|
195
|
+
file_hint?: string | undefined;
|
|
196
|
+
}>, "many">>;
|
|
197
|
+
/** Raw git diff — included for reference, not primary context */
|
|
198
|
+
raw_diff: z.ZodOptional<z.ZodString>;
|
|
199
|
+
}, "strip", z.ZodTypeAny, {
|
|
200
|
+
version: "1";
|
|
201
|
+
timestamp: string;
|
|
202
|
+
id: string;
|
|
203
|
+
source_platform: "claude" | "cursor" | "copilot" | "antigravity" | "other";
|
|
204
|
+
repository: {
|
|
205
|
+
path: string;
|
|
206
|
+
branch: string;
|
|
207
|
+
head_commit: string;
|
|
208
|
+
head_message?: string | undefined;
|
|
209
|
+
};
|
|
210
|
+
session: {
|
|
211
|
+
status: "in_progress" | "blocked" | "completed";
|
|
212
|
+
goal: string;
|
|
213
|
+
token_exhausted: boolean;
|
|
214
|
+
duration_hint?: string | undefined;
|
|
215
|
+
};
|
|
216
|
+
decisions: {
|
|
217
|
+
what: string;
|
|
218
|
+
why: string;
|
|
219
|
+
evidence?: string | undefined;
|
|
220
|
+
}[];
|
|
221
|
+
constraints: string[];
|
|
222
|
+
failed_approaches: {
|
|
223
|
+
approach: string;
|
|
224
|
+
why_failed: string;
|
|
225
|
+
}[];
|
|
226
|
+
files_modified: {
|
|
227
|
+
path: string;
|
|
228
|
+
status: "added" | "modified" | "deleted";
|
|
229
|
+
summary: string;
|
|
230
|
+
}[];
|
|
231
|
+
next_steps: {
|
|
232
|
+
task: string;
|
|
233
|
+
priority: "immediate" | "soon" | "later";
|
|
234
|
+
context?: string | undefined;
|
|
235
|
+
file_hint?: string | undefined;
|
|
236
|
+
}[];
|
|
237
|
+
raw_diff?: string | undefined;
|
|
238
|
+
}, {
|
|
239
|
+
timestamp: string;
|
|
240
|
+
id: string;
|
|
241
|
+
repository: {
|
|
242
|
+
path: string;
|
|
243
|
+
branch: string;
|
|
244
|
+
head_commit: string;
|
|
245
|
+
head_message?: string | undefined;
|
|
246
|
+
};
|
|
247
|
+
session: {
|
|
248
|
+
status: "in_progress" | "blocked" | "completed";
|
|
249
|
+
goal: string;
|
|
250
|
+
token_exhausted?: boolean | undefined;
|
|
251
|
+
duration_hint?: string | undefined;
|
|
252
|
+
};
|
|
253
|
+
version?: "1" | undefined;
|
|
254
|
+
source_platform?: "claude" | "cursor" | "copilot" | "antigravity" | "other" | undefined;
|
|
255
|
+
decisions?: {
|
|
256
|
+
what: string;
|
|
257
|
+
why: string;
|
|
258
|
+
evidence?: string | undefined;
|
|
259
|
+
}[] | undefined;
|
|
260
|
+
constraints?: string[] | undefined;
|
|
261
|
+
failed_approaches?: {
|
|
262
|
+
approach: string;
|
|
263
|
+
why_failed: string;
|
|
264
|
+
}[] | undefined;
|
|
265
|
+
files_modified?: {
|
|
266
|
+
path: string;
|
|
267
|
+
summary: string;
|
|
268
|
+
status?: "added" | "modified" | "deleted" | undefined;
|
|
269
|
+
}[] | undefined;
|
|
270
|
+
next_steps?: {
|
|
271
|
+
task: string;
|
|
272
|
+
context?: string | undefined;
|
|
273
|
+
priority?: "immediate" | "soon" | "later" | undefined;
|
|
274
|
+
file_hint?: string | undefined;
|
|
275
|
+
}[] | undefined;
|
|
276
|
+
raw_diff?: string | undefined;
|
|
277
|
+
}>;
|
|
278
|
+
export type Handoff = z.infer<typeof HandoffSchema>;
|
|
279
|
+
export declare const PartialHandoffSchema: z.ZodObject<{
|
|
280
|
+
version: z.ZodDefault<z.ZodLiteral<"1">>;
|
|
281
|
+
timestamp: z.ZodString;
|
|
282
|
+
id: z.ZodString;
|
|
283
|
+
source_platform: z.ZodDefault<z.ZodEnum<["claude", "cursor", "copilot", "antigravity", "other"]>>;
|
|
284
|
+
repository: z.ZodObject<{
|
|
285
|
+
path: z.ZodString;
|
|
286
|
+
branch: z.ZodString;
|
|
287
|
+
head_commit: z.ZodString;
|
|
288
|
+
head_message: z.ZodOptional<z.ZodString>;
|
|
289
|
+
}, "strip", z.ZodTypeAny, {
|
|
290
|
+
path: string;
|
|
291
|
+
branch: string;
|
|
292
|
+
head_commit: string;
|
|
293
|
+
head_message?: string | undefined;
|
|
294
|
+
}, {
|
|
295
|
+
path: string;
|
|
296
|
+
branch: string;
|
|
297
|
+
head_commit: string;
|
|
298
|
+
head_message?: string | undefined;
|
|
299
|
+
}>;
|
|
300
|
+
session: z.ZodObject<{
|
|
301
|
+
goal: z.ZodString;
|
|
302
|
+
status: z.ZodEnum<["in_progress", "blocked", "completed"]>;
|
|
303
|
+
token_exhausted: z.ZodDefault<z.ZodBoolean>;
|
|
304
|
+
duration_hint: z.ZodOptional<z.ZodString>;
|
|
305
|
+
}, "strip", z.ZodTypeAny, {
|
|
306
|
+
status: "in_progress" | "blocked" | "completed";
|
|
307
|
+
goal: string;
|
|
308
|
+
token_exhausted: boolean;
|
|
309
|
+
duration_hint?: string | undefined;
|
|
310
|
+
}, {
|
|
311
|
+
status: "in_progress" | "blocked" | "completed";
|
|
312
|
+
goal: string;
|
|
313
|
+
token_exhausted?: boolean | undefined;
|
|
314
|
+
duration_hint?: string | undefined;
|
|
315
|
+
}>;
|
|
316
|
+
decisions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
317
|
+
what: z.ZodString;
|
|
318
|
+
why: z.ZodString;
|
|
319
|
+
evidence: z.ZodOptional<z.ZodString>;
|
|
320
|
+
}, "strip", z.ZodTypeAny, {
|
|
321
|
+
what: string;
|
|
322
|
+
why: string;
|
|
323
|
+
evidence?: string | undefined;
|
|
324
|
+
}, {
|
|
325
|
+
what: string;
|
|
326
|
+
why: string;
|
|
327
|
+
evidence?: string | undefined;
|
|
328
|
+
}>, "many">>>;
|
|
329
|
+
constraints: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
|
|
330
|
+
failed_approaches: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
331
|
+
approach: z.ZodString;
|
|
332
|
+
why_failed: z.ZodString;
|
|
333
|
+
}, "strip", z.ZodTypeAny, {
|
|
334
|
+
approach: string;
|
|
335
|
+
why_failed: string;
|
|
336
|
+
}, {
|
|
337
|
+
approach: string;
|
|
338
|
+
why_failed: string;
|
|
339
|
+
}>, "many">>>;
|
|
340
|
+
files_modified: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
341
|
+
path: z.ZodString;
|
|
342
|
+
status: z.ZodDefault<z.ZodEnum<["added", "modified", "deleted"]>>;
|
|
343
|
+
summary: z.ZodString;
|
|
344
|
+
}, "strip", z.ZodTypeAny, {
|
|
345
|
+
path: string;
|
|
346
|
+
status: "added" | "modified" | "deleted";
|
|
347
|
+
summary: string;
|
|
348
|
+
}, {
|
|
349
|
+
path: string;
|
|
350
|
+
summary: string;
|
|
351
|
+
status?: "added" | "modified" | "deleted" | undefined;
|
|
352
|
+
}>, "many">>>;
|
|
353
|
+
next_steps: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
354
|
+
task: z.ZodString;
|
|
355
|
+
context: z.ZodOptional<z.ZodString>;
|
|
356
|
+
priority: z.ZodDefault<z.ZodEnum<["immediate", "soon", "later"]>>;
|
|
357
|
+
file_hint: z.ZodOptional<z.ZodString>;
|
|
358
|
+
}, "strip", z.ZodTypeAny, {
|
|
359
|
+
task: string;
|
|
360
|
+
priority: "immediate" | "soon" | "later";
|
|
361
|
+
context?: string | undefined;
|
|
362
|
+
file_hint?: string | undefined;
|
|
363
|
+
}, {
|
|
364
|
+
task: string;
|
|
365
|
+
context?: string | undefined;
|
|
366
|
+
priority?: "immediate" | "soon" | "later" | undefined;
|
|
367
|
+
file_hint?: string | undefined;
|
|
368
|
+
}>, "many">>>;
|
|
369
|
+
raw_diff: z.ZodOptional<z.ZodString>;
|
|
370
|
+
}, "strip", z.ZodTypeAny, {
|
|
371
|
+
version: "1";
|
|
372
|
+
timestamp: string;
|
|
373
|
+
id: string;
|
|
374
|
+
source_platform: "claude" | "cursor" | "copilot" | "antigravity" | "other";
|
|
375
|
+
repository: {
|
|
376
|
+
path: string;
|
|
377
|
+
branch: string;
|
|
378
|
+
head_commit: string;
|
|
379
|
+
head_message?: string | undefined;
|
|
380
|
+
};
|
|
381
|
+
session: {
|
|
382
|
+
status: "in_progress" | "blocked" | "completed";
|
|
383
|
+
goal: string;
|
|
384
|
+
token_exhausted: boolean;
|
|
385
|
+
duration_hint?: string | undefined;
|
|
386
|
+
};
|
|
387
|
+
decisions?: {
|
|
388
|
+
what: string;
|
|
389
|
+
why: string;
|
|
390
|
+
evidence?: string | undefined;
|
|
391
|
+
}[] | undefined;
|
|
392
|
+
constraints?: string[] | undefined;
|
|
393
|
+
failed_approaches?: {
|
|
394
|
+
approach: string;
|
|
395
|
+
why_failed: string;
|
|
396
|
+
}[] | undefined;
|
|
397
|
+
files_modified?: {
|
|
398
|
+
path: string;
|
|
399
|
+
status: "added" | "modified" | "deleted";
|
|
400
|
+
summary: string;
|
|
401
|
+
}[] | undefined;
|
|
402
|
+
next_steps?: {
|
|
403
|
+
task: string;
|
|
404
|
+
priority: "immediate" | "soon" | "later";
|
|
405
|
+
context?: string | undefined;
|
|
406
|
+
file_hint?: string | undefined;
|
|
407
|
+
}[] | undefined;
|
|
408
|
+
raw_diff?: string | undefined;
|
|
409
|
+
}, {
|
|
410
|
+
timestamp: string;
|
|
411
|
+
id: string;
|
|
412
|
+
repository: {
|
|
413
|
+
path: string;
|
|
414
|
+
branch: string;
|
|
415
|
+
head_commit: string;
|
|
416
|
+
head_message?: string | undefined;
|
|
417
|
+
};
|
|
418
|
+
session: {
|
|
419
|
+
status: "in_progress" | "blocked" | "completed";
|
|
420
|
+
goal: string;
|
|
421
|
+
token_exhausted?: boolean | undefined;
|
|
422
|
+
duration_hint?: string | undefined;
|
|
423
|
+
};
|
|
424
|
+
version?: "1" | undefined;
|
|
425
|
+
source_platform?: "claude" | "cursor" | "copilot" | "antigravity" | "other" | undefined;
|
|
426
|
+
decisions?: {
|
|
427
|
+
what: string;
|
|
428
|
+
why: string;
|
|
429
|
+
evidence?: string | undefined;
|
|
430
|
+
}[] | undefined;
|
|
431
|
+
constraints?: string[] | undefined;
|
|
432
|
+
failed_approaches?: {
|
|
433
|
+
approach: string;
|
|
434
|
+
why_failed: string;
|
|
435
|
+
}[] | undefined;
|
|
436
|
+
files_modified?: {
|
|
437
|
+
path: string;
|
|
438
|
+
summary: string;
|
|
439
|
+
status?: "added" | "modified" | "deleted" | undefined;
|
|
440
|
+
}[] | undefined;
|
|
441
|
+
next_steps?: {
|
|
442
|
+
task: string;
|
|
443
|
+
context?: string | undefined;
|
|
444
|
+
priority?: "immediate" | "soon" | "later" | undefined;
|
|
445
|
+
file_hint?: string | undefined;
|
|
446
|
+
}[] | undefined;
|
|
447
|
+
raw_diff?: string | undefined;
|
|
448
|
+
}>;
|
|
449
|
+
export type PartialHandoff = z.infer<typeof PartialHandoffSchema>;
|
|
450
|
+
export declare const HistoryEntrySchema: z.ZodObject<{
|
|
451
|
+
id: z.ZodString;
|
|
452
|
+
timestamp: z.ZodString;
|
|
453
|
+
source_platform: z.ZodEnum<["claude", "cursor", "copilot", "antigravity", "other"]>;
|
|
454
|
+
goal: z.ZodString;
|
|
455
|
+
status: z.ZodEnum<["in_progress", "blocked", "completed"]>;
|
|
456
|
+
file: z.ZodString;
|
|
457
|
+
}, "strip", z.ZodTypeAny, {
|
|
458
|
+
status: "in_progress" | "blocked" | "completed";
|
|
459
|
+
goal: string;
|
|
460
|
+
timestamp: string;
|
|
461
|
+
id: string;
|
|
462
|
+
source_platform: "claude" | "cursor" | "copilot" | "antigravity" | "other";
|
|
463
|
+
file: string;
|
|
464
|
+
}, {
|
|
465
|
+
status: "in_progress" | "blocked" | "completed";
|
|
466
|
+
goal: string;
|
|
467
|
+
timestamp: string;
|
|
468
|
+
id: string;
|
|
469
|
+
source_platform: "claude" | "cursor" | "copilot" | "antigravity" | "other";
|
|
470
|
+
file: string;
|
|
471
|
+
}>;
|
|
472
|
+
export type HistoryEntry = z.infer<typeof HistoryEntrySchema>;
|
|
473
|
+
export declare const HistoryIndexSchema: z.ZodObject<{
|
|
474
|
+
entries: z.ZodArray<z.ZodObject<{
|
|
475
|
+
id: z.ZodString;
|
|
476
|
+
timestamp: z.ZodString;
|
|
477
|
+
source_platform: z.ZodEnum<["claude", "cursor", "copilot", "antigravity", "other"]>;
|
|
478
|
+
goal: z.ZodString;
|
|
479
|
+
status: z.ZodEnum<["in_progress", "blocked", "completed"]>;
|
|
480
|
+
file: z.ZodString;
|
|
481
|
+
}, "strip", z.ZodTypeAny, {
|
|
482
|
+
status: "in_progress" | "blocked" | "completed";
|
|
483
|
+
goal: string;
|
|
484
|
+
timestamp: string;
|
|
485
|
+
id: string;
|
|
486
|
+
source_platform: "claude" | "cursor" | "copilot" | "antigravity" | "other";
|
|
487
|
+
file: string;
|
|
488
|
+
}, {
|
|
489
|
+
status: "in_progress" | "blocked" | "completed";
|
|
490
|
+
goal: string;
|
|
491
|
+
timestamp: string;
|
|
492
|
+
id: string;
|
|
493
|
+
source_platform: "claude" | "cursor" | "copilot" | "antigravity" | "other";
|
|
494
|
+
file: string;
|
|
495
|
+
}>, "many">;
|
|
496
|
+
}, "strip", z.ZodTypeAny, {
|
|
497
|
+
entries: {
|
|
498
|
+
status: "in_progress" | "blocked" | "completed";
|
|
499
|
+
goal: string;
|
|
500
|
+
timestamp: string;
|
|
501
|
+
id: string;
|
|
502
|
+
source_platform: "claude" | "cursor" | "copilot" | "antigravity" | "other";
|
|
503
|
+
file: string;
|
|
504
|
+
}[];
|
|
505
|
+
}, {
|
|
506
|
+
entries: {
|
|
507
|
+
status: "in_progress" | "blocked" | "completed";
|
|
508
|
+
goal: string;
|
|
509
|
+
timestamp: string;
|
|
510
|
+
id: string;
|
|
511
|
+
source_platform: "claude" | "cursor" | "copilot" | "antigravity" | "other";
|
|
512
|
+
file: string;
|
|
513
|
+
}[];
|
|
514
|
+
}>;
|
|
515
|
+
export type HistoryIndex = z.infer<typeof HistoryIndexSchema>;
|
|
516
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/format/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ,oEAMnB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,aAAa,oDAAkD,CAAC;AAC7E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,QAAQ,2CAAyC,CAAC;AAC/D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAIhD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAK3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAKxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,cAAc;;;;;;;;;;;;EAIzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;EAKzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAItD,eAAO,MAAM,aAAa;IACxB,uEAAuE;;IAGvE,yDAAyD;;IAGzD,6DAA6D;;IAG7D,+CAA+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM/C,iEAAiE;;;;;;;;;;;;;;IAGjE,uDAAuD;;IAGvD,yFAAyF;;;;;;;;;;;IAGzF,qEAAqE;;;;;;;;;;;;;;IAGrE,oDAAoD;;;;;;;;;;;;;;;;;IAGpD,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEjE,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAIpD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// ─── Enums ────────────────────────────────────────────────────────────────────
|
|
3
|
+
export const Platform = z.enum([
|
|
4
|
+
'claude',
|
|
5
|
+
'cursor',
|
|
6
|
+
'copilot',
|
|
7
|
+
'antigravity',
|
|
8
|
+
'other',
|
|
9
|
+
]);
|
|
10
|
+
export const SessionStatus = z.enum(['in_progress', 'blocked', 'completed']);
|
|
11
|
+
export const Priority = z.enum(['immediate', 'soon', 'later']);
|
|
12
|
+
// ─── Sub-schemas ──────────────────────────────────────────────────────────────
|
|
13
|
+
export const RepositorySchema = z.object({
|
|
14
|
+
path: z.string().describe('Absolute path to the repository root'),
|
|
15
|
+
branch: z.string().describe('Current git branch name'),
|
|
16
|
+
head_commit: z.string().describe('Short SHA of HEAD commit'),
|
|
17
|
+
head_message: z.string().optional().describe('Commit message of HEAD'),
|
|
18
|
+
});
|
|
19
|
+
export const SessionSchema = z.object({
|
|
20
|
+
goal: z.string().describe('What the developer was trying to accomplish in this session'),
|
|
21
|
+
status: SessionStatus.describe('Current status of the work'),
|
|
22
|
+
token_exhausted: z.boolean().default(false).describe('Was this handoff triggered by hitting a token limit?'),
|
|
23
|
+
duration_hint: z.string().optional().describe('Rough estimate of time spent (e.g. "~2 hours")'),
|
|
24
|
+
});
|
|
25
|
+
export const DecisionSchema = z.object({
|
|
26
|
+
what: z.string().describe('What was decided'),
|
|
27
|
+
why: z.string().describe('Rationale for the decision'),
|
|
28
|
+
evidence: z.string().optional().describe('Commit hash, file path, or other reference'),
|
|
29
|
+
});
|
|
30
|
+
export const FailedApproachSchema = z.object({
|
|
31
|
+
approach: z.string().describe('What was tried'),
|
|
32
|
+
why_failed: z.string().describe('Why it did not work — be specific so the next agent does not repeat it'),
|
|
33
|
+
});
|
|
34
|
+
export const ModifiedFileSchema = z.object({
|
|
35
|
+
path: z.string().describe('Relative path from repo root'),
|
|
36
|
+
status: z.enum(['added', 'modified', 'deleted']).default('modified'),
|
|
37
|
+
summary: z.string().describe('Brief description of what changed and why'),
|
|
38
|
+
});
|
|
39
|
+
export const NextStepSchema = z.object({
|
|
40
|
+
task: z.string().describe('What to do next, written as a clear actionable instruction'),
|
|
41
|
+
context: z.string().optional().describe('Additional context the next agent will need'),
|
|
42
|
+
priority: Priority.default('immediate'),
|
|
43
|
+
file_hint: z.string().optional().describe('Specific file or location to look at first'),
|
|
44
|
+
});
|
|
45
|
+
// ─── Root Handoff Schema ──────────────────────────────────────────────────────
|
|
46
|
+
export const HandoffSchema = z.object({
|
|
47
|
+
/** Schema version — bump when making breaking changes to the format */
|
|
48
|
+
version: z.literal('1').default('1'),
|
|
49
|
+
/** ISO 8601 timestamp of when the handoff was created */
|
|
50
|
+
timestamp: z.string().datetime(),
|
|
51
|
+
/** Unique ID for this handoff (used in history filenames) */
|
|
52
|
+
id: z.string(),
|
|
53
|
+
/** The platform that generated this handoff */
|
|
54
|
+
source_platform: Platform.default('other'),
|
|
55
|
+
repository: RepositorySchema,
|
|
56
|
+
session: SessionSchema,
|
|
57
|
+
/** Key architectural/design decisions made during the session */
|
|
58
|
+
decisions: z.array(DecisionSchema).default([]),
|
|
59
|
+
/** Hard constraints the next agent MUST NOT violate */
|
|
60
|
+
constraints: z.array(z.string()).default([]),
|
|
61
|
+
/** Approaches that were tried and failed — prevents the next agent repeating mistakes */
|
|
62
|
+
failed_approaches: z.array(FailedApproachSchema).default([]),
|
|
63
|
+
/** Files that were modified, added, or deleted during the session */
|
|
64
|
+
files_modified: z.array(ModifiedFileSchema).default([]),
|
|
65
|
+
/** Ordered list of what the next agent should do */
|
|
66
|
+
next_steps: z.array(NextStepSchema).default([]),
|
|
67
|
+
/** Raw git diff — included for reference, not primary context */
|
|
68
|
+
raw_diff: z.string().optional(),
|
|
69
|
+
});
|
|
70
|
+
// ─── Partial schema for in-progress saves ────────────────────────────────────
|
|
71
|
+
export const PartialHandoffSchema = HandoffSchema.partial({
|
|
72
|
+
decisions: true,
|
|
73
|
+
constraints: true,
|
|
74
|
+
failed_approaches: true,
|
|
75
|
+
files_modified: true,
|
|
76
|
+
next_steps: true,
|
|
77
|
+
});
|
|
78
|
+
// ─── History entry (lightweight, stored in index) ─────────────────────────────
|
|
79
|
+
export const HistoryEntrySchema = z.object({
|
|
80
|
+
id: z.string(),
|
|
81
|
+
timestamp: z.string().datetime(),
|
|
82
|
+
source_platform: Platform,
|
|
83
|
+
goal: z.string(),
|
|
84
|
+
status: SessionStatus,
|
|
85
|
+
file: z.string().describe('Filename in .relay/history/'),
|
|
86
|
+
});
|
|
87
|
+
export const HistoryIndexSchema = z.object({
|
|
88
|
+
entries: z.array(HistoryEntrySchema),
|
|
89
|
+
});
|
|
90
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/format/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Handoff } from './schema.js';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a human-readable interactive template string used when running
|
|
4
|
+
* `relay save` in guided mode. This is shown to the user via inquirer prompts.
|
|
5
|
+
*/
|
|
6
|
+
export declare const PLATFORM_CHOICES: readonly [{
|
|
7
|
+
readonly name: "Claude / Claude Code";
|
|
8
|
+
readonly value: "claude";
|
|
9
|
+
}, {
|
|
10
|
+
readonly name: "Cursor";
|
|
11
|
+
readonly value: "cursor";
|
|
12
|
+
}, {
|
|
13
|
+
readonly name: "GitHub Copilot";
|
|
14
|
+
readonly value: "copilot";
|
|
15
|
+
}, {
|
|
16
|
+
readonly name: "Antigravity";
|
|
17
|
+
readonly value: "antigravity";
|
|
18
|
+
}, {
|
|
19
|
+
readonly name: "Other";
|
|
20
|
+
readonly value: "other";
|
|
21
|
+
}];
|
|
22
|
+
export declare const STATUS_CHOICES: readonly [{
|
|
23
|
+
readonly name: "🟡 In Progress — more work needed";
|
|
24
|
+
readonly value: "in_progress";
|
|
25
|
+
}, {
|
|
26
|
+
readonly name: "🔴 Blocked — stuck, need help";
|
|
27
|
+
readonly value: "blocked";
|
|
28
|
+
}, {
|
|
29
|
+
readonly name: "✅ Completed — wrapping up";
|
|
30
|
+
readonly value: "completed";
|
|
31
|
+
}];
|
|
32
|
+
export declare const PRIORITY_CHOICES: readonly [{
|
|
33
|
+
readonly name: "🔴 Immediate — do this first";
|
|
34
|
+
readonly value: "immediate";
|
|
35
|
+
}, {
|
|
36
|
+
readonly name: "🟡 Soon — after immediate steps";
|
|
37
|
+
readonly value: "soon";
|
|
38
|
+
}, {
|
|
39
|
+
readonly name: "🔵 Later — backlog";
|
|
40
|
+
readonly value: "later";
|
|
41
|
+
}];
|
|
42
|
+
export declare const AGENT_SAVE_PROMPT: string;
|
|
43
|
+
export declare function getExampleHandoff(): Partial<Handoff>;
|
|
44
|
+
//# sourceMappingURL=template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/format/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;GAGG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAMnB,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;;;;;EAIjB,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;;;;;;;EAInB,CAAC;AAIX,eAAO,MAAM,iBAAiB,QAoDtB,CAAC;AAIT,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAuDpD"}
|