@agimon-ai/doompi-git 0.0.1-alpha.36 → 0.0.1-alpha.39
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 +21 -1
- package/dist/apiContracts.cjs +249 -60
- package/dist/apiContracts.cjs.map +1 -1
- package/dist/apiContracts.d.mts.map +1 -1
- package/dist/apiContracts.mjs +249 -60
- package/dist/apiContracts.mjs.map +1 -1
- package/dist/extensions/pi.cjs +2 -2
- package/dist/extensions/pi.mjs +2 -2
- package/dist/extensions/server.cjs +1279 -39
- package/dist/extensions/server.cjs.map +1 -1
- package/dist/extensions/server.d.mts.map +1 -1
- package/dist/extensions/server.mjs +1277 -40
- package/dist/extensions/server.mjs.map +1 -1
- package/dist/extensions/web.mjs +1731 -23
- package/dist/extensions/web.mjs.map +1 -1
- package/dist/{gitDependencies-CZLZ_YwU.mjs → gitDependencies-CtVubYvU.mjs} +2 -2
- package/dist/{gitDependencies-CZLZ_YwU.mjs.map → gitDependencies-CtVubYvU.mjs.map} +1 -1
- package/dist/{gitDependencies-Bv_1StiU.cjs → gitDependencies-Dqsz2HjK.cjs} +2 -2
- package/dist/{gitDependencies-Bv_1StiU.cjs.map → gitDependencies-Dqsz2HjK.cjs.map} +1 -1
- package/dist/index-D79MSCee.d.mts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{runWorktree-CtdyNIpZ.cjs → runWorktree-BE795LxL.cjs} +25 -2
- package/dist/runWorktree-BE795LxL.cjs.map +1 -0
- package/dist/{runWorktree-x0pLorlB.mjs → runWorktree-SPzJvIBt.mjs} +8 -3
- package/dist/runWorktree-SPzJvIBt.mjs.map +1 -0
- package/dist/{worktreeOperations-CEbq7iUE.cjs → worktreeOperations-BYmVU0UV.cjs} +106 -9
- package/dist/worktreeOperations-BYmVU0UV.cjs.map +1 -0
- package/dist/{worktreeOperations-BgE26zO3.mjs → worktreeOperations-BrWG2muV.mjs} +41 -10
- package/dist/worktreeOperations-BrWG2muV.mjs.map +1 -0
- package/package.json +8 -6
- package/dist/runWorktree-CtdyNIpZ.cjs.map +0 -1
- package/dist/runWorktree-x0pLorlB.mjs.map +0 -1
- package/dist/worktreeOperations-BgE26zO3.mjs.map +0 -1
- package/dist/worktreeOperations-CEbq7iUE.cjs.map +0 -1
package/dist/apiContracts.mjs
CHANGED
|
@@ -52,6 +52,107 @@ const WorktreesCommandSchema = Type.Union([Type.Object({
|
|
|
52
52
|
id: S,
|
|
53
53
|
force: O(B)
|
|
54
54
|
})]);
|
|
55
|
+
const N = Type.Integer({ minimum: 0 });
|
|
56
|
+
const ChangesSchema = Type.Object({
|
|
57
|
+
branch: O(S),
|
|
58
|
+
base: O(S),
|
|
59
|
+
added: N,
|
|
60
|
+
removed: N,
|
|
61
|
+
files: N,
|
|
62
|
+
truncated: O(B),
|
|
63
|
+
upstream: O(Type.Object({
|
|
64
|
+
ref: S,
|
|
65
|
+
ahead: N,
|
|
66
|
+
behind: N
|
|
67
|
+
})),
|
|
68
|
+
rebase: O(Type.Object({ conflicts: Type.Array(S) }))
|
|
69
|
+
});
|
|
70
|
+
const SyncErrorTargetSchema = Type.Union([Type.Object({ action: literals([
|
|
71
|
+
"pull",
|
|
72
|
+
"rebase",
|
|
73
|
+
"abort-rebase"
|
|
74
|
+
]) }), Type.Object({
|
|
75
|
+
action: Type.Literal("push"),
|
|
76
|
+
forceRequired: O(Type.Literal(true))
|
|
77
|
+
})]);
|
|
78
|
+
const GitChangesPayloadSchema = Type.Object({
|
|
79
|
+
changes: O(ChangesSchema),
|
|
80
|
+
pending: O(S),
|
|
81
|
+
error: O(S),
|
|
82
|
+
errorTarget: O(SyncErrorTargetSchema)
|
|
83
|
+
});
|
|
84
|
+
const GitChangesCommandSchema = Type.Union([Type.Object({ action: literals([
|
|
85
|
+
"pull",
|
|
86
|
+
"rebase",
|
|
87
|
+
"abort-rebase"
|
|
88
|
+
]) }), Type.Object({
|
|
89
|
+
action: Type.Literal("push"),
|
|
90
|
+
force: O(Type.Literal(true))
|
|
91
|
+
})]);
|
|
92
|
+
const AuthViewSchema = Type.Object({
|
|
93
|
+
method: literals([
|
|
94
|
+
"none",
|
|
95
|
+
"ssh",
|
|
96
|
+
"https"
|
|
97
|
+
]),
|
|
98
|
+
ssh: O(Type.Object({ keyPath: O(S) })),
|
|
99
|
+
https: O(Type.Object({
|
|
100
|
+
host: S,
|
|
101
|
+
username: S,
|
|
102
|
+
hasToken: B
|
|
103
|
+
}))
|
|
104
|
+
});
|
|
105
|
+
const AuthSaveSchema = Type.Union([
|
|
106
|
+
Type.Object({ method: Type.Literal("none") }),
|
|
107
|
+
Type.Object({
|
|
108
|
+
method: Type.Literal("ssh"),
|
|
109
|
+
keyPath: O(S)
|
|
110
|
+
}),
|
|
111
|
+
Type.Object({
|
|
112
|
+
method: Type.Literal("https"),
|
|
113
|
+
host: S,
|
|
114
|
+
username: S,
|
|
115
|
+
token: O(Type.String({ writeOnly: true }))
|
|
116
|
+
})
|
|
117
|
+
]);
|
|
118
|
+
const DiffRowSchema = Type.Object({
|
|
119
|
+
marker: literals([
|
|
120
|
+
"+",
|
|
121
|
+
"-",
|
|
122
|
+
" "
|
|
123
|
+
]),
|
|
124
|
+
line: N,
|
|
125
|
+
content: S
|
|
126
|
+
});
|
|
127
|
+
const ReviewSummarySchema = Type.Object({
|
|
128
|
+
repository: B,
|
|
129
|
+
branch: O(S),
|
|
130
|
+
base: O(S),
|
|
131
|
+
mergeBase: O(S),
|
|
132
|
+
truncated: O(B),
|
|
133
|
+
files: Type.Array(Type.Object({
|
|
134
|
+
path: S,
|
|
135
|
+
status: literals([
|
|
136
|
+
"added",
|
|
137
|
+
"modified",
|
|
138
|
+
"deleted",
|
|
139
|
+
"untracked",
|
|
140
|
+
"conflicted"
|
|
141
|
+
]),
|
|
142
|
+
added: N,
|
|
143
|
+
removed: N,
|
|
144
|
+
binary: O(B)
|
|
145
|
+
}))
|
|
146
|
+
});
|
|
147
|
+
const ReviewFileSchema = Type.Object({
|
|
148
|
+
path: S,
|
|
149
|
+
hunks: Type.Array(Type.Object({
|
|
150
|
+
start: N,
|
|
151
|
+
rows: Type.Array(DiffRowSchema)
|
|
152
|
+
})),
|
|
153
|
+
binary: O(Type.Literal(true)),
|
|
154
|
+
tooLarge: O(Type.Literal(true))
|
|
155
|
+
});
|
|
55
156
|
const query = [{
|
|
56
157
|
name: "repositoryId",
|
|
57
158
|
in: "query",
|
|
@@ -117,75 +218,163 @@ const apiContracts = defineApiContract({
|
|
|
117
218
|
}],
|
|
118
219
|
responses: jsonApiResponses(Type.Object({ worktree: RecordSchema }))
|
|
119
220
|
},
|
|
120
|
-
...scope === "workspace" ? [
|
|
121
|
-
|
|
122
|
-
|
|
221
|
+
...scope === "workspace" ? [
|
|
222
|
+
{
|
|
223
|
+
id: "git.auth.read",
|
|
224
|
+
scope,
|
|
225
|
+
basePath: "git",
|
|
226
|
+
path: "/auth",
|
|
227
|
+
method: "GET",
|
|
228
|
+
authentication: "owner",
|
|
229
|
+
description: "Read a workspace's remote auth for manual sync. The token is never returned.",
|
|
230
|
+
parameters: [{
|
|
231
|
+
name: "repositoryId",
|
|
232
|
+
in: "query",
|
|
233
|
+
required: true,
|
|
234
|
+
schema: S
|
|
235
|
+
}],
|
|
236
|
+
responses: jsonApiResponses(AuthViewSchema)
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
id: "git.auth.save",
|
|
240
|
+
scope,
|
|
241
|
+
basePath: "git",
|
|
242
|
+
path: "/auth",
|
|
243
|
+
method: "PUT",
|
|
244
|
+
authentication: "owner",
|
|
245
|
+
description: "Replace a workspace's remote auth. Passkey step-up gated for remote devices.",
|
|
246
|
+
parameters: [{
|
|
247
|
+
name: "repositoryId",
|
|
248
|
+
in: "query",
|
|
249
|
+
required: true,
|
|
250
|
+
schema: S
|
|
251
|
+
}],
|
|
252
|
+
body: {
|
|
253
|
+
required: true,
|
|
254
|
+
contentType: "application/json",
|
|
255
|
+
schema: AuthSaveSchema
|
|
256
|
+
},
|
|
257
|
+
responses: jsonApiResponses(AuthViewSchema)
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
id: "git.branches",
|
|
261
|
+
scope,
|
|
262
|
+
basePath: "git",
|
|
263
|
+
path: "/branches",
|
|
264
|
+
method: "GET",
|
|
265
|
+
authentication: "owner",
|
|
266
|
+
description: "List the workspace branches for the new-session dialog.",
|
|
267
|
+
responses: jsonApiResponses(Type.Object({
|
|
268
|
+
repository: B,
|
|
269
|
+
current: O(S),
|
|
270
|
+
defaultBase: O(S),
|
|
271
|
+
local: Type.Array(Type.Object({
|
|
272
|
+
name: S,
|
|
273
|
+
checkedOutAt: O(S)
|
|
274
|
+
})),
|
|
275
|
+
remote: Type.Array(Type.Object({
|
|
276
|
+
remote: S,
|
|
277
|
+
name: S
|
|
278
|
+
}))
|
|
279
|
+
}))
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
id: "git.sessions.create",
|
|
283
|
+
scope,
|
|
284
|
+
basePath: "git",
|
|
285
|
+
path: "/sessions",
|
|
286
|
+
method: "POST",
|
|
287
|
+
authentication: "owner",
|
|
288
|
+
description: "Start a top-level worktree session on an existing or new branch.",
|
|
289
|
+
body: {
|
|
290
|
+
required: true,
|
|
291
|
+
contentType: "application/json",
|
|
292
|
+
schema: Type.Union([Type.Object({
|
|
293
|
+
mode: Type.Literal("existing-branch"),
|
|
294
|
+
branch: S,
|
|
295
|
+
remote: O(S),
|
|
296
|
+
name: O(S)
|
|
297
|
+
}), Type.Object({
|
|
298
|
+
mode: Type.Literal("new-branch"),
|
|
299
|
+
branch: S,
|
|
300
|
+
baseRef: O(S),
|
|
301
|
+
name: O(S)
|
|
302
|
+
})])
|
|
303
|
+
},
|
|
304
|
+
responses: jsonApiResponses(Type.Object({
|
|
305
|
+
sessionId: S,
|
|
306
|
+
worktreeId: S
|
|
307
|
+
}), 201)
|
|
308
|
+
}
|
|
309
|
+
] : [],
|
|
310
|
+
...scope === "global" ? [{
|
|
311
|
+
id: "git.review.summary",
|
|
312
|
+
scope: "session",
|
|
123
313
|
basePath: "git",
|
|
124
|
-
path: "/
|
|
314
|
+
path: "/review",
|
|
125
315
|
method: "GET",
|
|
126
316
|
authentication: "owner",
|
|
127
|
-
description: "List the
|
|
128
|
-
responses: jsonApiResponses(
|
|
129
|
-
repository: B,
|
|
130
|
-
current: O(S),
|
|
131
|
-
defaultBase: O(S),
|
|
132
|
-
local: Type.Array(Type.Object({
|
|
133
|
-
name: S,
|
|
134
|
-
checkedOutAt: O(S)
|
|
135
|
-
})),
|
|
136
|
-
remote: Type.Array(Type.Object({
|
|
137
|
-
remote: S,
|
|
138
|
-
name: S
|
|
139
|
-
}))
|
|
140
|
-
}))
|
|
317
|
+
description: "List the files the session's checkout changed against its base.",
|
|
318
|
+
responses: jsonApiResponses(ReviewSummarySchema)
|
|
141
319
|
}, {
|
|
142
|
-
id: "git.
|
|
143
|
-
scope,
|
|
320
|
+
id: "git.review.file",
|
|
321
|
+
scope: "session",
|
|
144
322
|
basePath: "git",
|
|
145
|
-
path: "/
|
|
146
|
-
method: "
|
|
323
|
+
path: "/review/file",
|
|
324
|
+
method: "GET",
|
|
147
325
|
authentication: "owner",
|
|
148
|
-
description: "
|
|
149
|
-
|
|
326
|
+
description: "One changed file's hunks; the path must be in the session's change set.",
|
|
327
|
+
parameters: [{
|
|
328
|
+
name: "path",
|
|
329
|
+
in: "query",
|
|
150
330
|
required: true,
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
branch: S,
|
|
155
|
-
remote: O(S),
|
|
156
|
-
name: O(S)
|
|
157
|
-
}), Type.Object({
|
|
158
|
-
mode: Type.Literal("new-branch"),
|
|
159
|
-
branch: S,
|
|
160
|
-
baseRef: O(S),
|
|
161
|
-
name: O(S)
|
|
162
|
-
})])
|
|
163
|
-
},
|
|
164
|
-
responses: jsonApiResponses(Type.Object({
|
|
165
|
-
sessionId: S,
|
|
166
|
-
worktreeId: S
|
|
167
|
-
}), 201)
|
|
331
|
+
schema: Type.String({ minLength: 1 })
|
|
332
|
+
}],
|
|
333
|
+
responses: jsonApiResponses(ReviewFileSchema)
|
|
168
334
|
}] : []
|
|
169
335
|
]),
|
|
170
|
-
sockets: ["global", "workspace"].flatMap((scope) => [
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
336
|
+
sockets: ["global", "workspace"].flatMap((scope) => [
|
|
337
|
+
{
|
|
338
|
+
id: "git.changes.channel",
|
|
339
|
+
scope,
|
|
340
|
+
service: "doompi.hub.v1",
|
|
341
|
+
member: "git_changes",
|
|
342
|
+
kind: "channel",
|
|
343
|
+
direction: "server-to-client",
|
|
344
|
+
description: "The session's change against its base, and manual sync state.",
|
|
345
|
+
input: GitChangesPayloadSchema
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
id: "git.changes.command",
|
|
349
|
+
scope,
|
|
350
|
+
service: "doompi.hub.v1",
|
|
351
|
+
member: "git_changes",
|
|
352
|
+
kind: "channel",
|
|
353
|
+
direction: "client-to-server",
|
|
354
|
+
description: "Manual pull, push, rebase or abort-rebase for the session.",
|
|
355
|
+
input: GitChangesCommandSchema
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
id: "git.channel",
|
|
359
|
+
scope,
|
|
360
|
+
service: "doompi.hub.v1",
|
|
361
|
+
member: "git_worktrees",
|
|
362
|
+
kind: "channel",
|
|
363
|
+
direction: "server-to-client",
|
|
364
|
+
description: "Worktree channel payload.",
|
|
365
|
+
input: WorktreesPayloadSchema
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
id: "git.command",
|
|
369
|
+
scope,
|
|
370
|
+
service: "doompi.hub.v1",
|
|
371
|
+
member: "git_worktrees",
|
|
372
|
+
kind: "channel",
|
|
373
|
+
direction: "client-to-server",
|
|
374
|
+
description: "Worktree channel command payload.",
|
|
375
|
+
input: WorktreesCommandSchema
|
|
376
|
+
}
|
|
377
|
+
])
|
|
189
378
|
});
|
|
190
379
|
//#endregion
|
|
191
380
|
export { apiContracts, apiContracts as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiContracts.mjs","names":[],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/doompi-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst RecordSchema = Type.Object({\n version: Type.Literal(1),\n id: S,\n branch: S,\n baseRef: S,\n path: S,\n repositoryRoot: S,\n sessionId: S,\n parentSessionId: Type.Optional(S),\n status: literals(['spawning', 'running', 'closing', 'orphaned']),\n createdAt: S,\n});\nconst ErrorTargetSchema = Type.Union([\n Type.Object({ action: Type.Literal('create') }),\n Type.Object({ action: Type.Literal('close'), id: S }),\n]);\nexport const WorktreesPayloadSchema = Type.Object({\n worktrees: Type.Array(\n Type.Object({ id: S, branch: S, path: S, sessionId: Type.Union([S, Type.Null()]), orphaned: B, unowned: B }),\n ),\n pending: O(S),\n error: O(S),\n errorTarget: O(ErrorTargetSchema),\n});\nexport const WorktreesCommandSchema = Type.Union([\n Type.Object({\n action: Type.Literal('create'),\n branch: S,\n baseRef: O(S),\n reservationId: O(Type.String({ minLength: 1, pattern: '^[A-Za-z0-9_-]+$' })),\n }),\n Type.Object({ action: Type.Literal('close'), id: S, force: O(B) }),\n]);\nconst query = [\n { name: 'repositoryId', in: 'query' as const, required: true, schema: S },\n { name: 'sessionId', in: 'query' as const, required: true, schema: S },\n];\nexport const apiContracts = defineApiContract({\n version: 1,\n dynamic: [],\n http: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'git.list',\n scope,\n basePath: 'git',\n path: '/worktrees',\n method: 'GET',\n authentication: 'owner',\n description: 'List admitted repository worktrees.',\n parameters: query.map((item) => ({ ...item, required: item.name === 'repositoryId' })),\n responses: jsonApiResponses(Type.Object({ worktrees: Type.Array(RecordSchema) })),\n },\n {\n id: 'git.create',\n scope,\n basePath: 'git',\n path: '/worktrees',\n method: 'POST',\n authentication: 'owner',\n description: 'Create a worktree and session.',\n parameters: query,\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Object({ branch: Type.String({ minLength: 1 }), baseRef: O(S), name: O(S) }),\n },\n responses: jsonApiResponses(Type.Object({ worktree: RecordSchema }), 201),\n },\n {\n id: 'git.close',\n scope,\n basePath: 'git',\n path: '/worktrees/{id}',\n method: 'DELETE',\n authentication: 'owner',\n description: 'Close a worktree.',\n parameters: [...query, { name: 'force', in: 'query', required: false, schema: B }],\n responses: jsonApiResponses(Type.Object({ worktree: RecordSchema })),\n },\n // The new-session dialog's routes exist only on a workspace mount.\n ...(scope === 'workspace'\n ? [\n {\n id: 'git.branches',\n scope,\n basePath: 'git',\n path: '/branches',\n method: 'GET' as const,\n authentication: 'owner' as const,\n description: 'List the workspace branches for the new-session dialog.',\n responses: jsonApiResponses(\n Type.Object({\n repository: B,\n current: O(S),\n defaultBase: O(S),\n local: Type.Array(Type.Object({ name: S, checkedOutAt: O(S) })),\n remote: Type.Array(Type.Object({ remote: S, name: S })),\n }),\n ),\n },\n {\n id: 'git.sessions.create',\n scope,\n basePath: 'git',\n path: '/sessions',\n method: 'POST' as const,\n authentication: 'owner' as const,\n description: 'Start a top-level worktree session on an existing or new branch.',\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Union([\n Type.Object({ mode: Type.Literal('existing-branch'), branch: S, remote: O(S), name: O(S) }),\n Type.Object({ mode: Type.Literal('new-branch'), branch: S, baseRef: O(S), name: O(S) }),\n ]),\n },\n responses: jsonApiResponses(Type.Object({ sessionId: S, worktreeId: S }), 201),\n },\n ]\n : []),\n ]),\n sockets: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'git.channel',\n scope,\n service: 'doompi.hub.v1',\n member: 'git_worktrees',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Worktree channel payload.',\n input: WorktreesPayloadSchema,\n },\n {\n id: 'git.command',\n scope,\n service: 'doompi.hub.v1',\n member: 'git_worktrees',\n kind: 'channel',\n direction: 'client-to-server',\n description: 'Worktree channel command payload.',\n input: WorktreesCommandSchema,\n },\n ]),\n});\nexport default apiContracts;\n"],"mappings":";;;AAGA,MAAM,IAAI,KAAK,OAAO;AACtB,MAAM,IAAI,KAAK,QAAQ;AACvB,MAAM,IAAI,KAAK;AACf,MAAM,YAA8B,WAAgB,KAAK,MAAM,OAAO,KAAK,UAAU,KAAK,QAAQ,KAAK,CAAC,CAAC;AACzG,MAAM,eAAe,KAAK,OAAO;CAC/B,SAAS,KAAK,QAAQ,CAAC;CACvB,IAAI;CACJ,QAAQ;CACR,SAAS;CACT,MAAM;CACN,gBAAgB;CAChB,WAAW;CACX,iBAAiB,KAAK,SAAS,CAAC;CAChC,QAAQ,SAAS;EAAC;EAAY;EAAW;EAAW;CAAU,CAAC;CAC/D,WAAW;AACb,CAAC;AACD,MAAM,oBAAoB,KAAK,MAAM,CACnC,KAAK,OAAO,EAAE,QAAQ,KAAK,QAAQ,QAAQ,EAAE,CAAC,GAC9C,KAAK,OAAO;CAAE,QAAQ,KAAK,QAAQ,OAAO;CAAG,IAAI;AAAE,CAAC,CACtD,CAAC;AACD,MAAa,yBAAyB,KAAK,OAAO;CAChD,WAAW,KAAK,MACd,KAAK,OAAO;EAAE,IAAI;EAAG,QAAQ;EAAG,MAAM;EAAG,WAAW,KAAK,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;EAAG,UAAU;EAAG,SAAS;CAAE,CAAC,CAC7G;CACA,SAAS,EAAE,CAAC;CACZ,OAAO,EAAE,CAAC;CACV,aAAa,EAAE,iBAAiB;AAClC,CAAC;AACD,MAAa,yBAAyB,KAAK,MAAM,CAC/C,KAAK,OAAO;CACV,QAAQ,KAAK,QAAQ,QAAQ;CAC7B,QAAQ;CACR,SAAS,EAAE,CAAC;CACZ,eAAe,EAAE,KAAK,OAAO;EAAE,WAAW;EAAG,SAAS;CAAmB,CAAC,CAAC;AAC7E,CAAC,GACD,KAAK,OAAO;CAAE,QAAQ,KAAK,QAAQ,OAAO;CAAG,IAAI;CAAG,OAAO,EAAE,CAAC;AAAE,CAAC,CACnE,CAAC;AACD,MAAM,QAAQ,CACZ;CAAE,MAAM;CAAgB,IAAI;CAAkB,UAAU;CAAM,QAAQ;AAAE,GACxE;CAAE,MAAM;CAAa,IAAI;CAAkB,UAAU;CAAM,QAAQ;AAAE,CACvE;AACA,MAAa,eAAe,kBAAkB;CAC5C,SAAS;CACT,SAAS,CAAC;CACV,MAAO,CAAC,UAAU,WAAW,CAAC,CAAW,SAAS,UAAU;EAC1D;GACE,IAAI;GACJ;GACA,UAAU;GACV,MAAM;GACN,QAAQ;GACR,gBAAgB;GAChB,aAAa;GACb,YAAY,MAAM,KAAK,UAAU;IAAE,GAAG;IAAM,UAAU,KAAK,SAAS;GAAe,EAAE;GACrF,WAAW,iBAAiB,KAAK,OAAO,EAAE,WAAW,KAAK,MAAM,YAAY,EAAE,CAAC,CAAC;EAClF;EACA;GACE,IAAI;GACJ;GACA,UAAU;GACV,MAAM;GACN,QAAQ;GACR,gBAAgB;GAChB,aAAa;GACb,YAAY;GACZ,MAAM;IACJ,UAAU;IACV,aAAa;IACb,QAAQ,KAAK,OAAO;KAAE,QAAQ,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC;KAAG,SAAS,EAAE,CAAC;KAAG,MAAM,EAAE,CAAC;IAAE,CAAC;GAC1F;GACA,WAAW,iBAAiB,KAAK,OAAO,EAAE,UAAU,aAAa,CAAC,GAAG,GAAG;EAC1E;EACA;GACE,IAAI;GACJ;GACA,UAAU;GACV,MAAM;GACN,QAAQ;GACR,gBAAgB;GAChB,aAAa;GACb,YAAY,CAAC,GAAG,OAAO;IAAE,MAAM;IAAS,IAAI;IAAS,UAAU;IAAO,QAAQ;GAAE,CAAC;GACjF,WAAW,iBAAiB,KAAK,OAAO,EAAE,UAAU,aAAa,CAAC,CAAC;EACrE;EAEA,GAAI,UAAU,cACV,CACE;GACE,IAAI;GACJ;GACA,UAAU;GACV,MAAM;GACN,QAAQ;GACR,gBAAgB;GAChB,aAAa;GACb,WAAW,iBACT,KAAK,OAAO;IACV,YAAY;IACZ,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,CAAC;IAChB,OAAO,KAAK,MAAM,KAAK,OAAO;KAAE,MAAM;KAAG,cAAc,EAAE,CAAC;IAAE,CAAC,CAAC;IAC9D,QAAQ,KAAK,MAAM,KAAK,OAAO;KAAE,QAAQ;KAAG,MAAM;IAAE,CAAC,CAAC;GACxD,CAAC,CACH;EACF,GACA;GACE,IAAI;GACJ;GACA,UAAU;GACV,MAAM;GACN,QAAQ;GACR,gBAAgB;GAChB,aAAa;GACb,MAAM;IACJ,UAAU;IACV,aAAa;IACb,QAAQ,KAAK,MAAM,CACjB,KAAK,OAAO;KAAE,MAAM,KAAK,QAAQ,iBAAiB;KAAG,QAAQ;KAAG,QAAQ,EAAE,CAAC;KAAG,MAAM,EAAE,CAAC;IAAE,CAAC,GAC1F,KAAK,OAAO;KAAE,MAAM,KAAK,QAAQ,YAAY;KAAG,QAAQ;KAAG,SAAS,EAAE,CAAC;KAAG,MAAM,EAAE,CAAC;IAAE,CAAC,CACxF,CAAC;GACH;GACA,WAAW,iBAAiB,KAAK,OAAO;IAAE,WAAW;IAAG,YAAY;GAAE,CAAC,GAAG,GAAG;EAC/E,CACF,IACA,CAAC;CACP,CAAC;CACD,SAAU,CAAC,UAAU,WAAW,CAAC,CAAW,SAAS,UAAU,CAC7D;EACE,IAAI;EACJ;EACA,SAAS;EACT,QAAQ;EACR,MAAM;EACN,WAAW;EACX,aAAa;EACb,OAAO;CACT,GACA;EACE,IAAI;EACJ;EACA,SAAS;EACT,QAAQ;EACR,MAAM;EACN,WAAW;EACX,aAAa;EACb,OAAO;CACT,CACF,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"apiContracts.mjs","names":[],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/doompi-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst RecordSchema = Type.Object({\n version: Type.Literal(1),\n id: S,\n branch: S,\n baseRef: S,\n path: S,\n repositoryRoot: S,\n sessionId: S,\n parentSessionId: Type.Optional(S),\n status: literals(['spawning', 'running', 'closing', 'orphaned']),\n createdAt: S,\n});\nconst ErrorTargetSchema = Type.Union([\n Type.Object({ action: Type.Literal('create') }),\n Type.Object({ action: Type.Literal('close'), id: S }),\n]);\nexport const WorktreesPayloadSchema = Type.Object({\n worktrees: Type.Array(\n Type.Object({ id: S, branch: S, path: S, sessionId: Type.Union([S, Type.Null()]), orphaned: B, unowned: B }),\n ),\n pending: O(S),\n error: O(S),\n errorTarget: O(ErrorTargetSchema),\n});\nexport const WorktreesCommandSchema = Type.Union([\n Type.Object({\n action: Type.Literal('create'),\n branch: S,\n baseRef: O(S),\n reservationId: O(Type.String({ minLength: 1, pattern: '^[A-Za-z0-9_-]+$' })),\n }),\n Type.Object({ action: Type.Literal('close'), id: S, force: O(B) }),\n]);\nconst N = Type.Integer({ minimum: 0 });\nconst ChangesSchema = Type.Object({\n branch: O(S),\n base: O(S),\n added: N,\n removed: N,\n files: N,\n truncated: O(B),\n upstream: O(Type.Object({ ref: S, ahead: N, behind: N })),\n rebase: O(Type.Object({ conflicts: Type.Array(S) })),\n});\nconst SyncErrorTargetSchema = Type.Union([\n Type.Object({ action: literals(['pull', 'rebase', 'abort-rebase']) }),\n Type.Object({ action: Type.Literal('push'), forceRequired: O(Type.Literal(true)) }),\n]);\nexport const GitChangesPayloadSchema = Type.Object({\n changes: O(ChangesSchema),\n pending: O(S),\n error: O(S),\n errorTarget: O(SyncErrorTargetSchema),\n});\nexport const GitChangesCommandSchema = Type.Union([\n Type.Object({ action: literals(['pull', 'rebase', 'abort-rebase']) }),\n Type.Object({ action: Type.Literal('push'), force: O(Type.Literal(true)) }),\n]);\nconst AuthViewSchema = Type.Object({\n method: literals(['none', 'ssh', 'https']),\n ssh: O(Type.Object({ keyPath: O(S) })),\n https: O(Type.Object({ host: S, username: S, hasToken: B })),\n});\nconst AuthSaveSchema = Type.Union([\n Type.Object({ method: Type.Literal('none') }),\n Type.Object({ method: Type.Literal('ssh'), keyPath: O(S) }),\n Type.Object({ method: Type.Literal('https'), host: S, username: S, token: O(Type.String({ writeOnly: true })) }),\n]);\nconst DiffRowSchema = Type.Object({ marker: literals(['+', '-', ' ']), line: N, content: S });\nconst ReviewSummarySchema = Type.Object({\n repository: B,\n branch: O(S),\n base: O(S),\n mergeBase: O(S),\n truncated: O(B),\n files: Type.Array(\n Type.Object({\n path: S,\n status: literals(['added', 'modified', 'deleted', 'untracked', 'conflicted']),\n added: N,\n removed: N,\n binary: O(B),\n }),\n ),\n});\nconst ReviewFileSchema = Type.Object({\n path: S,\n hunks: Type.Array(Type.Object({ start: N, rows: Type.Array(DiffRowSchema) })),\n binary: O(Type.Literal(true)),\n tooLarge: O(Type.Literal(true)),\n});\nconst query = [\n { name: 'repositoryId', in: 'query' as const, required: true, schema: S },\n { name: 'sessionId', in: 'query' as const, required: true, schema: S },\n];\nexport const apiContracts = defineApiContract({\n version: 1,\n dynamic: [],\n http: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'git.list',\n scope,\n basePath: 'git',\n path: '/worktrees',\n method: 'GET',\n authentication: 'owner',\n description: 'List admitted repository worktrees.',\n parameters: query.map((item) => ({ ...item, required: item.name === 'repositoryId' })),\n responses: jsonApiResponses(Type.Object({ worktrees: Type.Array(RecordSchema) })),\n },\n {\n id: 'git.create',\n scope,\n basePath: 'git',\n path: '/worktrees',\n method: 'POST',\n authentication: 'owner',\n description: 'Create a worktree and session.',\n parameters: query,\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Object({ branch: Type.String({ minLength: 1 }), baseRef: O(S), name: O(S) }),\n },\n responses: jsonApiResponses(Type.Object({ worktree: RecordSchema }), 201),\n },\n {\n id: 'git.close',\n scope,\n basePath: 'git',\n path: '/worktrees/{id}',\n method: 'DELETE',\n authentication: 'owner',\n description: 'Close a worktree.',\n parameters: [...query, { name: 'force', in: 'query', required: false, schema: B }],\n responses: jsonApiResponses(Type.Object({ worktree: RecordSchema })),\n },\n // The new-session dialog's routes and a workspace's remote auth exist only on a workspace mount.\n ...(scope === 'workspace'\n ? [\n {\n id: 'git.auth.read',\n scope,\n basePath: 'git',\n path: '/auth',\n method: 'GET' as const,\n authentication: 'owner' as const,\n description: \"Read a workspace's remote auth for manual sync. The token is never returned.\",\n parameters: [{ name: 'repositoryId', in: 'query' as const, required: true, schema: S }],\n responses: jsonApiResponses(AuthViewSchema),\n },\n {\n id: 'git.auth.save',\n scope,\n basePath: 'git',\n path: '/auth',\n method: 'PUT' as const,\n authentication: 'owner' as const,\n description: \"Replace a workspace's remote auth. Passkey step-up gated for remote devices.\",\n parameters: [{ name: 'repositoryId', in: 'query' as const, required: true, schema: S }],\n body: { required: true, contentType: 'application/json', schema: AuthSaveSchema },\n responses: jsonApiResponses(AuthViewSchema),\n },\n {\n id: 'git.branches',\n scope,\n basePath: 'git',\n path: '/branches',\n method: 'GET' as const,\n authentication: 'owner' as const,\n description: 'List the workspace branches for the new-session dialog.',\n responses: jsonApiResponses(\n Type.Object({\n repository: B,\n current: O(S),\n defaultBase: O(S),\n local: Type.Array(Type.Object({ name: S, checkedOutAt: O(S) })),\n remote: Type.Array(Type.Object({ remote: S, name: S })),\n }),\n ),\n },\n {\n id: 'git.sessions.create',\n scope,\n basePath: 'git',\n path: '/sessions',\n method: 'POST' as const,\n authentication: 'owner' as const,\n description: 'Start a top-level worktree session on an existing or new branch.',\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Union([\n Type.Object({ mode: Type.Literal('existing-branch'), branch: S, remote: O(S), name: O(S) }),\n Type.Object({ mode: Type.Literal('new-branch'), branch: S, baseRef: O(S), name: O(S) }),\n ]),\n },\n responses: jsonApiResponses(Type.Object({ sessionId: S, worktreeId: S }), 201),\n },\n ]\n : []),\n // The review routes exist only on a session mount; listed once, beside the global entries.\n ...(scope === 'global'\n ? [\n {\n id: 'git.review.summary',\n scope: 'session' as const,\n basePath: 'git',\n path: '/review',\n method: 'GET' as const,\n authentication: 'owner' as const,\n description: \"List the files the session's checkout changed against its base.\",\n responses: jsonApiResponses(ReviewSummarySchema),\n },\n {\n id: 'git.review.file',\n scope: 'session' as const,\n basePath: 'git',\n path: '/review/file',\n method: 'GET' as const,\n authentication: 'owner' as const,\n description: \"One changed file's hunks; the path must be in the session's change set.\",\n parameters: [{ name: 'path', in: 'query' as const, required: true, schema: Type.String({ minLength: 1 }) }],\n responses: jsonApiResponses(ReviewFileSchema),\n },\n ]\n : []),\n ]),\n sockets: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'git.changes.channel',\n scope,\n service: 'doompi.hub.v1',\n member: 'git_changes',\n kind: 'channel',\n direction: 'server-to-client',\n description: \"The session's change against its base, and manual sync state.\",\n input: GitChangesPayloadSchema,\n },\n {\n id: 'git.changes.command',\n scope,\n service: 'doompi.hub.v1',\n member: 'git_changes',\n kind: 'channel',\n direction: 'client-to-server',\n description: 'Manual pull, push, rebase or abort-rebase for the session.',\n input: GitChangesCommandSchema,\n },\n {\n id: 'git.channel',\n scope,\n service: 'doompi.hub.v1',\n member: 'git_worktrees',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Worktree channel payload.',\n input: WorktreesPayloadSchema,\n },\n {\n id: 'git.command',\n scope,\n service: 'doompi.hub.v1',\n member: 'git_worktrees',\n kind: 'channel',\n direction: 'client-to-server',\n description: 'Worktree channel command payload.',\n input: WorktreesCommandSchema,\n },\n ]),\n});\nexport default apiContracts;\n"],"mappings":"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"}
|
package/dist/extensions/pi.cjs
CHANGED
|
@@ -2,8 +2,8 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_gitDependencies = require("../gitDependencies-
|
|
6
|
-
const require_runWorktree = require("../runWorktree-
|
|
5
|
+
const require_gitDependencies = require("../gitDependencies-Dqsz2HjK.cjs");
|
|
6
|
+
const require_runWorktree = require("../runWorktree-BE795LxL.cjs");
|
|
7
7
|
let _agimon_ai_doompi_core_piExtension = require("@agimon-ai/doompi-core/piExtension");
|
|
8
8
|
let _agimon_ai_doompi_core_extensionFile = require("@agimon-ai/doompi-core/extensionFile");
|
|
9
9
|
//#region src/extensions/workspaces/sessions/(backend)/_lib/root.cli.ts
|
package/dist/extensions/pi.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as createGitDependencies } from "../gitDependencies-
|
|
2
|
-
import { a as RunWorktreeToolSchema, i as validateParams, n as RUN_WORKTREE_TOOL_NAME, o as COMMAND_DESCRIPTION, r as executeRunWorktreeTool, s as COMMAND_NAME, t as RUN_WORKTREE_DESCRIPTION } from "../runWorktree-
|
|
1
|
+
import { t as createGitDependencies } from "../gitDependencies-CtVubYvU.mjs";
|
|
2
|
+
import { a as RunWorktreeToolSchema, i as validateParams, n as RUN_WORKTREE_TOOL_NAME, o as COMMAND_DESCRIPTION, r as executeRunWorktreeTool, s as COMMAND_NAME, t as RUN_WORKTREE_DESCRIPTION } from "../runWorktree-SPzJvIBt.mjs";
|
|
3
3
|
import { definePiExtension, definePiTool, piToolContributions } from "@agimon-ai/doompi-core/piExtension";
|
|
4
4
|
import { composeRootHooks, defineCliCommand, defineCliTool, defineResource, defineRoot } from "@agimon-ai/doompi-core/extensionFile";
|
|
5
5
|
//#region src/extensions/workspaces/sessions/(backend)/_lib/root.cli.ts
|