@agent-phonon/protocol 0.2.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 +70 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/json-schema/_index.json +3794 -0
- package/dist/json-schema/connect.hello.json +117 -0
- package/dist/json-schema/discovery.changed.json +190 -0
- package/dist/json-schema/discovery.get.json +183 -0
- package/dist/json-schema/discovery.list.json +182 -0
- package/dist/json-schema/document.prepare_upload.json +96 -0
- package/dist/json-schema/document.send.json +165 -0
- package/dist/json-schema/hook.fired.json +100 -0
- package/dist/json-schema/hook.resolve.json +96 -0
- package/dist/json-schema/interaction.cancel.json +48 -0
- package/dist/json-schema/interaction.request.json +376 -0
- package/dist/json-schema/interaction.response.json +68 -0
- package/dist/json-schema/project.create.json +89 -0
- package/dist/json-schema/project.get.json +76 -0
- package/dist/json-schema/project.git.deleteBranch.json +64 -0
- package/dist/json-schema/project.list.json +72 -0
- package/dist/json-schema/project.remove.json +69 -0
- package/dist/json-schema/project.worktree.create.json +88 -0
- package/dist/json-schema/project.worktree.list.json +77 -0
- package/dist/json-schema/project.worktree.remove.json +61 -0
- package/dist/json-schema/session.compress.json +72 -0
- package/dist/json-schema/session.create.json +128 -0
- package/dist/json-schema/session.inject.json +72 -0
- package/dist/json-schema/session.interrupt.json +58 -0
- package/dist/json-schema/session.list.json +127 -0
- package/dist/json-schema/session.send.json +132 -0
- package/dist/json-schema/session.status.json +94 -0
- package/dist/json-schema/session.switchModel.json +73 -0
- package/dist/json-schema/session.terminate.json +54 -0
- package/dist/json-schema/skill.install.json +171 -0
- package/dist/json-schema/skill.list.json +101 -0
- package/dist/json-schema/skill.uninstall.json +76 -0
- package/dist/json-schema/stream.ack.json +36 -0
- package/dist/json-schema/stream.event.json +381 -0
- package/dist/schemas/capabilities.d.ts +90 -0
- package/dist/schemas/capabilities.d.ts.map +1 -0
- package/dist/schemas/capabilities.js +59 -0
- package/dist/schemas/capabilities.js.map +1 -0
- package/dist/schemas/common.d.ts +66 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +97 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/connect.d.ts +111 -0
- package/dist/schemas/connect.d.ts.map +1 -0
- package/dist/schemas/connect.js +46 -0
- package/dist/schemas/connect.js.map +1 -0
- package/dist/schemas/device.d.ts +221 -0
- package/dist/schemas/device.d.ts.map +1 -0
- package/dist/schemas/device.js +59 -0
- package/dist/schemas/device.js.map +1 -0
- package/dist/schemas/discovery.d.ts +892 -0
- package/dist/schemas/discovery.d.ts.map +1 -0
- package/dist/schemas/discovery.js +66 -0
- package/dist/schemas/discovery.js.map +1 -0
- package/dist/schemas/document.d.ts +351 -0
- package/dist/schemas/document.d.ts.map +1 -0
- package/dist/schemas/document.js +103 -0
- package/dist/schemas/document.js.map +1 -0
- package/dist/schemas/env.d.ts +265 -0
- package/dist/schemas/env.d.ts.map +1 -0
- package/dist/schemas/env.js +44 -0
- package/dist/schemas/env.js.map +1 -0
- package/dist/schemas/file.d.ts +274 -0
- package/dist/schemas/file.d.ts.map +1 -0
- package/dist/schemas/file.js +72 -0
- package/dist/schemas/file.js.map +1 -0
- package/dist/schemas/hook.d.ts +132 -0
- package/dist/schemas/hook.d.ts.map +1 -0
- package/dist/schemas/hook.js +58 -0
- package/dist/schemas/hook.js.map +1 -0
- package/dist/schemas/interaction.d.ts +1583 -0
- package/dist/schemas/interaction.d.ts.map +1 -0
- package/dist/schemas/interaction.js +112 -0
- package/dist/schemas/interaction.js.map +1 -0
- package/dist/schemas/jsonrpc.d.ts +314 -0
- package/dist/schemas/jsonrpc.d.ts.map +1 -0
- package/dist/schemas/jsonrpc.js +64 -0
- package/dist/schemas/jsonrpc.js.map +1 -0
- package/dist/schemas/methods.d.ts +3826 -0
- package/dist/schemas/methods.d.ts.map +1 -0
- package/dist/schemas/methods.js +311 -0
- package/dist/schemas/methods.js.map +1 -0
- package/dist/schemas/policy.d.ts +81 -0
- package/dist/schemas/policy.d.ts.map +1 -0
- package/dist/schemas/policy.js +66 -0
- package/dist/schemas/policy.js.map +1 -0
- package/dist/schemas/project.d.ts +506 -0
- package/dist/schemas/project.d.ts.map +1 -0
- package/dist/schemas/project.js +148 -0
- package/dist/schemas/project.js.map +1 -0
- package/dist/schemas/session.d.ts +730 -0
- package/dist/schemas/session.d.ts.map +1 -0
- package/dist/schemas/session.js +287 -0
- package/dist/schemas/session.js.map +1 -0
- package/dist/schemas/skill.d.ts +465 -0
- package/dist/schemas/skill.d.ts.map +1 -0
- package/dist/schemas/skill.js +103 -0
- package/dist/schemas/skill.js.map +1 -0
- package/dist/schemas/stream.d.ts +688 -0
- package/dist/schemas/stream.d.ts.map +1 -0
- package/dist/schemas/stream.js +133 -0
- package/dist/schemas/stream.js.map +1 -0
- package/package.json +52 -0
- package/src/index.ts +24 -0
- package/src/schemas/capabilities.ts +62 -0
- package/src/schemas/common.ts +119 -0
- package/src/schemas/connect.ts +50 -0
- package/src/schemas/device.ts +67 -0
- package/src/schemas/discovery.ts +80 -0
- package/src/schemas/document.ts +121 -0
- package/src/schemas/env.ts +60 -0
- package/src/schemas/file.ts +97 -0
- package/src/schemas/hook.ts +66 -0
- package/src/schemas/interaction.ts +135 -0
- package/src/schemas/jsonrpc.ts +80 -0
- package/src/schemas/methods.ts +414 -0
- package/src/schemas/policy.ts +71 -0
- package/src/schemas/project.ts +185 -0
- package/src/schemas/session.ts +336 -0
- package/src/schemas/skill.ts +121 -0
- package/src/schemas/stream.ts +149 -0
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* 项目管理协议(design D23)。
|
|
4
|
+
*
|
|
5
|
+
* 一个项目 = 一个目录 + Git。所有 session 必须绑定一个项目(projectId)。
|
|
6
|
+
* 项目是磁盘上的客观目录,**设备级共享、不受 tenant 隔离**——不同 tenant 都能看到/用
|
|
7
|
+
* 同一项目,在其下各干各的;冲突风险用户自担。(隔离发生在会话/任务层,不在文件层。)
|
|
8
|
+
*/
|
|
9
|
+
/** 项目描述。 */
|
|
10
|
+
export declare const ProjectDescriptor: z.ZodObject<{
|
|
11
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
12
|
+
/** 展示名。 */
|
|
13
|
+
name: z.ZodString;
|
|
14
|
+
/** 项目目录的绝对路径(设备本地)。 */
|
|
15
|
+
path: z.ZodString;
|
|
16
|
+
/** 是否已 git init。 */
|
|
17
|
+
git: z.ZodDefault<z.ZodBoolean>;
|
|
18
|
+
/** 当前分支(若有)。 */
|
|
19
|
+
branch: z.ZodOptional<z.ZodString>;
|
|
20
|
+
/** 可选:远端 URL。 */
|
|
21
|
+
remote: z.ZodOptional<z.ZodString>;
|
|
22
|
+
createdAt: z.ZodString;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
path: string;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
name: string;
|
|
27
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
28
|
+
git: boolean;
|
|
29
|
+
branch?: string | undefined;
|
|
30
|
+
remote?: string | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
path: string;
|
|
33
|
+
createdAt: string;
|
|
34
|
+
name: string;
|
|
35
|
+
projectId: string;
|
|
36
|
+
git?: boolean | undefined;
|
|
37
|
+
branch?: string | undefined;
|
|
38
|
+
remote?: string | undefined;
|
|
39
|
+
}>;
|
|
40
|
+
export type ProjectDescriptor = z.infer<typeof ProjectDescriptor>;
|
|
41
|
+
export declare const ProjectCreateParams: z.ZodObject<{
|
|
42
|
+
/** 可选:幂等键(P0-3)。 */
|
|
43
|
+
clientRequestId: z.ZodOptional<z.ZodString>;
|
|
44
|
+
name: z.ZodString;
|
|
45
|
+
/**
|
|
46
|
+
* 可选:指定目录路径。缺省由 phonon 在受控工作区下按 name 生成
|
|
47
|
+
* (避免服务端越权指定任意本地路径)。
|
|
48
|
+
*/
|
|
49
|
+
path: z.ZodOptional<z.ZodString>;
|
|
50
|
+
/** 是否 git init(默认 true,项目 = 目录 + Git)。 */
|
|
51
|
+
git: z.ZodDefault<z.ZodBoolean>;
|
|
52
|
+
/** 可选:初始化时设置的远端。 */
|
|
53
|
+
remote: z.ZodOptional<z.ZodString>;
|
|
54
|
+
}, "strip", z.ZodTypeAny, {
|
|
55
|
+
name: string;
|
|
56
|
+
git: boolean;
|
|
57
|
+
path?: string | undefined;
|
|
58
|
+
clientRequestId?: string | undefined;
|
|
59
|
+
remote?: string | undefined;
|
|
60
|
+
}, {
|
|
61
|
+
name: string;
|
|
62
|
+
path?: string | undefined;
|
|
63
|
+
clientRequestId?: string | undefined;
|
|
64
|
+
git?: boolean | undefined;
|
|
65
|
+
remote?: string | undefined;
|
|
66
|
+
}>;
|
|
67
|
+
export type ProjectCreateParams = z.infer<typeof ProjectCreateParams>;
|
|
68
|
+
export declare const ProjectCreateResult: z.ZodObject<{
|
|
69
|
+
project: z.ZodObject<{
|
|
70
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
71
|
+
/** 展示名。 */
|
|
72
|
+
name: z.ZodString;
|
|
73
|
+
/** 项目目录的绝对路径(设备本地)。 */
|
|
74
|
+
path: z.ZodString;
|
|
75
|
+
/** 是否已 git init。 */
|
|
76
|
+
git: z.ZodDefault<z.ZodBoolean>;
|
|
77
|
+
/** 当前分支(若有)。 */
|
|
78
|
+
branch: z.ZodOptional<z.ZodString>;
|
|
79
|
+
/** 可选:远端 URL。 */
|
|
80
|
+
remote: z.ZodOptional<z.ZodString>;
|
|
81
|
+
createdAt: z.ZodString;
|
|
82
|
+
}, "strip", z.ZodTypeAny, {
|
|
83
|
+
path: string;
|
|
84
|
+
createdAt: string;
|
|
85
|
+
name: string;
|
|
86
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
87
|
+
git: boolean;
|
|
88
|
+
branch?: string | undefined;
|
|
89
|
+
remote?: string | undefined;
|
|
90
|
+
}, {
|
|
91
|
+
path: string;
|
|
92
|
+
createdAt: string;
|
|
93
|
+
name: string;
|
|
94
|
+
projectId: string;
|
|
95
|
+
git?: boolean | undefined;
|
|
96
|
+
branch?: string | undefined;
|
|
97
|
+
remote?: string | undefined;
|
|
98
|
+
}>;
|
|
99
|
+
}, "strip", z.ZodTypeAny, {
|
|
100
|
+
project: {
|
|
101
|
+
path: string;
|
|
102
|
+
createdAt: string;
|
|
103
|
+
name: string;
|
|
104
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
105
|
+
git: boolean;
|
|
106
|
+
branch?: string | undefined;
|
|
107
|
+
remote?: string | undefined;
|
|
108
|
+
};
|
|
109
|
+
}, {
|
|
110
|
+
project: {
|
|
111
|
+
path: string;
|
|
112
|
+
createdAt: string;
|
|
113
|
+
name: string;
|
|
114
|
+
projectId: string;
|
|
115
|
+
git?: boolean | undefined;
|
|
116
|
+
branch?: string | undefined;
|
|
117
|
+
remote?: string | undefined;
|
|
118
|
+
};
|
|
119
|
+
}>;
|
|
120
|
+
export type ProjectCreateResult = z.infer<typeof ProjectCreateResult>;
|
|
121
|
+
export declare const ProjectListParams: z.ZodDefault<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
|
|
122
|
+
export type ProjectListParams = z.infer<typeof ProjectListParams>;
|
|
123
|
+
export declare const ProjectListResult: z.ZodObject<{
|
|
124
|
+
projects: z.ZodArray<z.ZodObject<{
|
|
125
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
126
|
+
/** 展示名。 */
|
|
127
|
+
name: z.ZodString;
|
|
128
|
+
/** 项目目录的绝对路径(设备本地)。 */
|
|
129
|
+
path: z.ZodString;
|
|
130
|
+
/** 是否已 git init。 */
|
|
131
|
+
git: z.ZodDefault<z.ZodBoolean>;
|
|
132
|
+
/** 当前分支(若有)。 */
|
|
133
|
+
branch: z.ZodOptional<z.ZodString>;
|
|
134
|
+
/** 可选:远端 URL。 */
|
|
135
|
+
remote: z.ZodOptional<z.ZodString>;
|
|
136
|
+
createdAt: z.ZodString;
|
|
137
|
+
}, "strip", z.ZodTypeAny, {
|
|
138
|
+
path: string;
|
|
139
|
+
createdAt: string;
|
|
140
|
+
name: string;
|
|
141
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
142
|
+
git: boolean;
|
|
143
|
+
branch?: string | undefined;
|
|
144
|
+
remote?: string | undefined;
|
|
145
|
+
}, {
|
|
146
|
+
path: string;
|
|
147
|
+
createdAt: string;
|
|
148
|
+
name: string;
|
|
149
|
+
projectId: string;
|
|
150
|
+
git?: boolean | undefined;
|
|
151
|
+
branch?: string | undefined;
|
|
152
|
+
remote?: string | undefined;
|
|
153
|
+
}>, "many">;
|
|
154
|
+
}, "strip", z.ZodTypeAny, {
|
|
155
|
+
projects: {
|
|
156
|
+
path: string;
|
|
157
|
+
createdAt: string;
|
|
158
|
+
name: string;
|
|
159
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
160
|
+
git: boolean;
|
|
161
|
+
branch?: string | undefined;
|
|
162
|
+
remote?: string | undefined;
|
|
163
|
+
}[];
|
|
164
|
+
}, {
|
|
165
|
+
projects: {
|
|
166
|
+
path: string;
|
|
167
|
+
createdAt: string;
|
|
168
|
+
name: string;
|
|
169
|
+
projectId: string;
|
|
170
|
+
git?: boolean | undefined;
|
|
171
|
+
branch?: string | undefined;
|
|
172
|
+
remote?: string | undefined;
|
|
173
|
+
}[];
|
|
174
|
+
}>;
|
|
175
|
+
export type ProjectListResult = z.infer<typeof ProjectListResult>;
|
|
176
|
+
export declare const ProjectGetParams: z.ZodObject<{
|
|
177
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
178
|
+
}, "strip", z.ZodTypeAny, {
|
|
179
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
180
|
+
}, {
|
|
181
|
+
projectId: string;
|
|
182
|
+
}>;
|
|
183
|
+
export type ProjectGetParams = z.infer<typeof ProjectGetParams>;
|
|
184
|
+
export declare const ProjectGetResult: z.ZodObject<{
|
|
185
|
+
project: z.ZodObject<{
|
|
186
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
187
|
+
/** 展示名。 */
|
|
188
|
+
name: z.ZodString;
|
|
189
|
+
/** 项目目录的绝对路径(设备本地)。 */
|
|
190
|
+
path: z.ZodString;
|
|
191
|
+
/** 是否已 git init。 */
|
|
192
|
+
git: z.ZodDefault<z.ZodBoolean>;
|
|
193
|
+
/** 当前分支(若有)。 */
|
|
194
|
+
branch: z.ZodOptional<z.ZodString>;
|
|
195
|
+
/** 可选:远端 URL。 */
|
|
196
|
+
remote: z.ZodOptional<z.ZodString>;
|
|
197
|
+
createdAt: z.ZodString;
|
|
198
|
+
}, "strip", z.ZodTypeAny, {
|
|
199
|
+
path: string;
|
|
200
|
+
createdAt: string;
|
|
201
|
+
name: string;
|
|
202
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
203
|
+
git: boolean;
|
|
204
|
+
branch?: string | undefined;
|
|
205
|
+
remote?: string | undefined;
|
|
206
|
+
}, {
|
|
207
|
+
path: string;
|
|
208
|
+
createdAt: string;
|
|
209
|
+
name: string;
|
|
210
|
+
projectId: string;
|
|
211
|
+
git?: boolean | undefined;
|
|
212
|
+
branch?: string | undefined;
|
|
213
|
+
remote?: string | undefined;
|
|
214
|
+
}>;
|
|
215
|
+
}, "strip", z.ZodTypeAny, {
|
|
216
|
+
project: {
|
|
217
|
+
path: string;
|
|
218
|
+
createdAt: string;
|
|
219
|
+
name: string;
|
|
220
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
221
|
+
git: boolean;
|
|
222
|
+
branch?: string | undefined;
|
|
223
|
+
remote?: string | undefined;
|
|
224
|
+
};
|
|
225
|
+
}, {
|
|
226
|
+
project: {
|
|
227
|
+
path: string;
|
|
228
|
+
createdAt: string;
|
|
229
|
+
name: string;
|
|
230
|
+
projectId: string;
|
|
231
|
+
git?: boolean | undefined;
|
|
232
|
+
branch?: string | undefined;
|
|
233
|
+
remote?: string | undefined;
|
|
234
|
+
};
|
|
235
|
+
}>;
|
|
236
|
+
export type ProjectGetResult = z.infer<typeof ProjectGetResult>;
|
|
237
|
+
export declare const ProjectRemoveParams: z.ZodObject<{
|
|
238
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
239
|
+
/**
|
|
240
|
+
* 是否删除物理目录。默认 false(仅从 phonon 解绑/注销,保留磁盘文件,防误删)。
|
|
241
|
+
* true 才真正删目录——危险操作,需 policy allowDeleteFiles。
|
|
242
|
+
*/
|
|
243
|
+
deleteFiles: z.ZodDefault<z.ZodBoolean>;
|
|
244
|
+
/**
|
|
245
|
+
* 有 active session 绑定本项目时的处理(P1-7 / Minimax#5):
|
|
246
|
+
* - reject(默认):还有 active session → errProjectHasActiveSessions
|
|
247
|
+
* - cascade :级联 terminate 所有 active session 再移除
|
|
248
|
+
*/
|
|
249
|
+
whenActiveSessions: z.ZodDefault<z.ZodEnum<["reject", "cascade"]>>;
|
|
250
|
+
}, "strip", z.ZodTypeAny, {
|
|
251
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
252
|
+
deleteFiles: boolean;
|
|
253
|
+
whenActiveSessions: "reject" | "cascade";
|
|
254
|
+
}, {
|
|
255
|
+
projectId: string;
|
|
256
|
+
deleteFiles?: boolean | undefined;
|
|
257
|
+
whenActiveSessions?: "reject" | "cascade" | undefined;
|
|
258
|
+
}>;
|
|
259
|
+
export type ProjectRemoveParams = z.infer<typeof ProjectRemoveParams>;
|
|
260
|
+
export declare const ProjectRemoveResult: z.ZodObject<{
|
|
261
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
262
|
+
removed: z.ZodLiteral<true>;
|
|
263
|
+
filesDeleted: z.ZodBoolean;
|
|
264
|
+
/** cascade 时被级联 terminate 的 session。 */
|
|
265
|
+
terminatedSessions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
266
|
+
}, "strip", z.ZodTypeAny, {
|
|
267
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
268
|
+
removed: true;
|
|
269
|
+
filesDeleted: boolean;
|
|
270
|
+
terminatedSessions?: string[] | undefined;
|
|
271
|
+
}, {
|
|
272
|
+
projectId: string;
|
|
273
|
+
removed: true;
|
|
274
|
+
filesDeleted: boolean;
|
|
275
|
+
terminatedSessions?: string[] | undefined;
|
|
276
|
+
}>;
|
|
277
|
+
export type ProjectRemoveResult = z.infer<typeof ProjectRemoveResult>;
|
|
278
|
+
/** worktree 描述。 */
|
|
279
|
+
export declare const WorktreeDescriptor: z.ZodObject<{
|
|
280
|
+
/** worktree 标识(phonon 生成)。 */
|
|
281
|
+
worktreeId: z.ZodString;
|
|
282
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
283
|
+
/** worktree 的工作目录路径。 */
|
|
284
|
+
path: z.ZodString;
|
|
285
|
+
/** 该 worktree 检出的分支。 */
|
|
286
|
+
branch: z.ZodString;
|
|
287
|
+
/** 是否是主工作区(项目本体目录)。 */
|
|
288
|
+
isPrimary: z.ZodDefault<z.ZodBoolean>;
|
|
289
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
290
|
+
}, "strip", z.ZodTypeAny, {
|
|
291
|
+
path: string;
|
|
292
|
+
worktreeId: string;
|
|
293
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
294
|
+
branch: string;
|
|
295
|
+
isPrimary: boolean;
|
|
296
|
+
createdAt?: string | undefined;
|
|
297
|
+
}, {
|
|
298
|
+
path: string;
|
|
299
|
+
worktreeId: string;
|
|
300
|
+
projectId: string;
|
|
301
|
+
branch: string;
|
|
302
|
+
createdAt?: string | undefined;
|
|
303
|
+
isPrimary?: boolean | undefined;
|
|
304
|
+
}>;
|
|
305
|
+
export type WorktreeDescriptor = z.infer<typeof WorktreeDescriptor>;
|
|
306
|
+
export declare const WorktreeCreateParams: z.ZodObject<{
|
|
307
|
+
/** 可选:幂等键(P0-3)。 */
|
|
308
|
+
clientRequestId: z.ZodOptional<z.ZodString>;
|
|
309
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
310
|
+
/** 基于哪个已有 branch 创建(检出点)。 */
|
|
311
|
+
baseBranch: z.ZodString;
|
|
312
|
+
/**
|
|
313
|
+
* 可选:新建并检出的分支名。缺省则直接检出 baseBranch
|
|
314
|
+
* (注:同一 branch 不能被两个 worktree 同时检出,所以多开并发时通常传 newBranch)。
|
|
315
|
+
*/
|
|
316
|
+
newBranch: z.ZodOptional<z.ZodString>;
|
|
317
|
+
/** 可选:指定 worktree 路径;缺省由 phonon 在受控区生成。 */
|
|
318
|
+
path: z.ZodOptional<z.ZodString>;
|
|
319
|
+
}, "strip", z.ZodTypeAny, {
|
|
320
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
321
|
+
baseBranch: string;
|
|
322
|
+
path?: string | undefined;
|
|
323
|
+
clientRequestId?: string | undefined;
|
|
324
|
+
newBranch?: string | undefined;
|
|
325
|
+
}, {
|
|
326
|
+
projectId: string;
|
|
327
|
+
baseBranch: string;
|
|
328
|
+
path?: string | undefined;
|
|
329
|
+
clientRequestId?: string | undefined;
|
|
330
|
+
newBranch?: string | undefined;
|
|
331
|
+
}>;
|
|
332
|
+
export type WorktreeCreateParams = z.infer<typeof WorktreeCreateParams>;
|
|
333
|
+
export declare const WorktreeCreateResult: z.ZodObject<{
|
|
334
|
+
worktree: z.ZodObject<{
|
|
335
|
+
/** worktree 标识(phonon 生成)。 */
|
|
336
|
+
worktreeId: z.ZodString;
|
|
337
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
338
|
+
/** worktree 的工作目录路径。 */
|
|
339
|
+
path: z.ZodString;
|
|
340
|
+
/** 该 worktree 检出的分支。 */
|
|
341
|
+
branch: z.ZodString;
|
|
342
|
+
/** 是否是主工作区(项目本体目录)。 */
|
|
343
|
+
isPrimary: z.ZodDefault<z.ZodBoolean>;
|
|
344
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
345
|
+
}, "strip", z.ZodTypeAny, {
|
|
346
|
+
path: string;
|
|
347
|
+
worktreeId: string;
|
|
348
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
349
|
+
branch: string;
|
|
350
|
+
isPrimary: boolean;
|
|
351
|
+
createdAt?: string | undefined;
|
|
352
|
+
}, {
|
|
353
|
+
path: string;
|
|
354
|
+
worktreeId: string;
|
|
355
|
+
projectId: string;
|
|
356
|
+
branch: string;
|
|
357
|
+
createdAt?: string | undefined;
|
|
358
|
+
isPrimary?: boolean | undefined;
|
|
359
|
+
}>;
|
|
360
|
+
}, "strip", z.ZodTypeAny, {
|
|
361
|
+
worktree: {
|
|
362
|
+
path: string;
|
|
363
|
+
worktreeId: string;
|
|
364
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
365
|
+
branch: string;
|
|
366
|
+
isPrimary: boolean;
|
|
367
|
+
createdAt?: string | undefined;
|
|
368
|
+
};
|
|
369
|
+
}, {
|
|
370
|
+
worktree: {
|
|
371
|
+
path: string;
|
|
372
|
+
worktreeId: string;
|
|
373
|
+
projectId: string;
|
|
374
|
+
branch: string;
|
|
375
|
+
createdAt?: string | undefined;
|
|
376
|
+
isPrimary?: boolean | undefined;
|
|
377
|
+
};
|
|
378
|
+
}>;
|
|
379
|
+
export type WorktreeCreateResult = z.infer<typeof WorktreeCreateResult>;
|
|
380
|
+
export declare const WorktreeListParams: z.ZodObject<{
|
|
381
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
382
|
+
}, "strip", z.ZodTypeAny, {
|
|
383
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
384
|
+
}, {
|
|
385
|
+
projectId: string;
|
|
386
|
+
}>;
|
|
387
|
+
export type WorktreeListParams = z.infer<typeof WorktreeListParams>;
|
|
388
|
+
export declare const WorktreeListResult: z.ZodObject<{
|
|
389
|
+
worktrees: z.ZodArray<z.ZodObject<{
|
|
390
|
+
/** worktree 标识(phonon 生成)。 */
|
|
391
|
+
worktreeId: z.ZodString;
|
|
392
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
393
|
+
/** worktree 的工作目录路径。 */
|
|
394
|
+
path: z.ZodString;
|
|
395
|
+
/** 该 worktree 检出的分支。 */
|
|
396
|
+
branch: z.ZodString;
|
|
397
|
+
/** 是否是主工作区(项目本体目录)。 */
|
|
398
|
+
isPrimary: z.ZodDefault<z.ZodBoolean>;
|
|
399
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
400
|
+
}, "strip", z.ZodTypeAny, {
|
|
401
|
+
path: string;
|
|
402
|
+
worktreeId: string;
|
|
403
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
404
|
+
branch: string;
|
|
405
|
+
isPrimary: boolean;
|
|
406
|
+
createdAt?: string | undefined;
|
|
407
|
+
}, {
|
|
408
|
+
path: string;
|
|
409
|
+
worktreeId: string;
|
|
410
|
+
projectId: string;
|
|
411
|
+
branch: string;
|
|
412
|
+
createdAt?: string | undefined;
|
|
413
|
+
isPrimary?: boolean | undefined;
|
|
414
|
+
}>, "many">;
|
|
415
|
+
}, "strip", z.ZodTypeAny, {
|
|
416
|
+
worktrees: {
|
|
417
|
+
path: string;
|
|
418
|
+
worktreeId: string;
|
|
419
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
420
|
+
branch: string;
|
|
421
|
+
isPrimary: boolean;
|
|
422
|
+
createdAt?: string | undefined;
|
|
423
|
+
}[];
|
|
424
|
+
}, {
|
|
425
|
+
worktrees: {
|
|
426
|
+
path: string;
|
|
427
|
+
worktreeId: string;
|
|
428
|
+
projectId: string;
|
|
429
|
+
branch: string;
|
|
430
|
+
createdAt?: string | undefined;
|
|
431
|
+
isPrimary?: boolean | undefined;
|
|
432
|
+
}[];
|
|
433
|
+
}>;
|
|
434
|
+
export type WorktreeListResult = z.infer<typeof WorktreeListResult>;
|
|
435
|
+
export declare const WorktreeRemoveParams: z.ZodObject<{
|
|
436
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
437
|
+
worktreeId: z.ZodString;
|
|
438
|
+
/**
|
|
439
|
+
* 是否强制清理(P1-7)。默认 false:
|
|
440
|
+
* 有未提交变更 → errWorktreeHasChanges;还有 active/running session 绑定 → errWorktreeInUse。
|
|
441
|
+
* force=true 才允许硬删,但会连带影响返回 affectedSessions。
|
|
442
|
+
*/
|
|
443
|
+
force: z.ZodDefault<z.ZodBoolean>;
|
|
444
|
+
}, "strip", z.ZodTypeAny, {
|
|
445
|
+
worktreeId: string;
|
|
446
|
+
force: boolean;
|
|
447
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
448
|
+
}, {
|
|
449
|
+
worktreeId: string;
|
|
450
|
+
projectId: string;
|
|
451
|
+
force?: boolean | undefined;
|
|
452
|
+
}>;
|
|
453
|
+
export type WorktreeRemoveParams = z.infer<typeof WorktreeRemoveParams>;
|
|
454
|
+
export declare const WorktreeRemoveResult: z.ZodObject<{
|
|
455
|
+
worktreeId: z.ZodString;
|
|
456
|
+
removed: z.ZodLiteral<true>;
|
|
457
|
+
/** 被连带影响(被迫 terminate)的 session(force 硬删时)。 */
|
|
458
|
+
affectedSessions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
459
|
+
}, "strip", z.ZodTypeAny, {
|
|
460
|
+
worktreeId: string;
|
|
461
|
+
removed: true;
|
|
462
|
+
affectedSessions?: string[] | undefined;
|
|
463
|
+
}, {
|
|
464
|
+
worktreeId: string;
|
|
465
|
+
removed: true;
|
|
466
|
+
affectedSessions?: string[] | undefined;
|
|
467
|
+
}>;
|
|
468
|
+
export type WorktreeRemoveResult = z.infer<typeof WorktreeRemoveResult>;
|
|
469
|
+
export declare const GitDeleteBranchParams: z.ZodObject<{
|
|
470
|
+
projectId: z.ZodBranded<z.ZodString, "ProjectId">;
|
|
471
|
+
branch: z.ZodString;
|
|
472
|
+
/**
|
|
473
|
+
* 是否强制删除(P1-7)。默认 false:
|
|
474
|
+
* 未合并 → errBranchNotMerged;仍被某 worktree 检出 → errBranchInUse。
|
|
475
|
+
* force=true 强删未合并(git branch -D),返回 affectedWorktrees。
|
|
476
|
+
*/
|
|
477
|
+
force: z.ZodDefault<z.ZodBoolean>;
|
|
478
|
+
}, "strip", z.ZodTypeAny, {
|
|
479
|
+
force: boolean;
|
|
480
|
+
projectId: string & z.BRAND<"ProjectId">;
|
|
481
|
+
branch: string;
|
|
482
|
+
}, {
|
|
483
|
+
projectId: string;
|
|
484
|
+
branch: string;
|
|
485
|
+
force?: boolean | undefined;
|
|
486
|
+
}>;
|
|
487
|
+
export type GitDeleteBranchParams = z.infer<typeof GitDeleteBranchParams>;
|
|
488
|
+
export declare const GitDeleteBranchResult: z.ZodObject<{
|
|
489
|
+
branch: z.ZodString;
|
|
490
|
+
deleted: z.ZodLiteral<true>;
|
|
491
|
+
wasMerged: z.ZodOptional<z.ZodBoolean>;
|
|
492
|
+
/** 被连带影响的 worktree(force 硬删时)。 */
|
|
493
|
+
affectedWorktrees: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
494
|
+
}, "strip", z.ZodTypeAny, {
|
|
495
|
+
branch: string;
|
|
496
|
+
deleted: true;
|
|
497
|
+
wasMerged?: boolean | undefined;
|
|
498
|
+
affectedWorktrees?: string[] | undefined;
|
|
499
|
+
}, {
|
|
500
|
+
branch: string;
|
|
501
|
+
deleted: true;
|
|
502
|
+
wasMerged?: boolean | undefined;
|
|
503
|
+
affectedWorktrees?: string[] | undefined;
|
|
504
|
+
}>;
|
|
505
|
+
export type GitDeleteBranchResult = z.infer<typeof GitDeleteBranchResult>;
|
|
506
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/schemas/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ProjectId, Timestamp } from "./common.js";
|
|
3
|
+
/**
|
|
4
|
+
* 项目管理协议(design D23)。
|
|
5
|
+
*
|
|
6
|
+
* 一个项目 = 一个目录 + Git。所有 session 必须绑定一个项目(projectId)。
|
|
7
|
+
* 项目是磁盘上的客观目录,**设备级共享、不受 tenant 隔离**——不同 tenant 都能看到/用
|
|
8
|
+
* 同一项目,在其下各干各的;冲突风险用户自担。(隔离发生在会话/任务层,不在文件层。)
|
|
9
|
+
*/
|
|
10
|
+
/** 项目描述。 */
|
|
11
|
+
export const ProjectDescriptor = z.object({
|
|
12
|
+
projectId: ProjectId,
|
|
13
|
+
/** 展示名。 */
|
|
14
|
+
name: z.string().min(1),
|
|
15
|
+
/** 项目目录的绝对路径(设备本地)。 */
|
|
16
|
+
path: z.string().min(1),
|
|
17
|
+
/** 是否已 git init。 */
|
|
18
|
+
git: z.boolean().default(true),
|
|
19
|
+
/** 当前分支(若有)。 */
|
|
20
|
+
branch: z.string().optional(),
|
|
21
|
+
/** 可选:远端 URL。 */
|
|
22
|
+
remote: z.string().optional(),
|
|
23
|
+
createdAt: Timestamp,
|
|
24
|
+
});
|
|
25
|
+
// --- project.create ---
|
|
26
|
+
export const ProjectCreateParams = z.object({
|
|
27
|
+
/** 可选:幂等键(P0-3)。 */
|
|
28
|
+
clientRequestId: z.string().optional(),
|
|
29
|
+
name: z.string().min(1),
|
|
30
|
+
/**
|
|
31
|
+
* 可选:指定目录路径。缺省由 phonon 在受控工作区下按 name 生成
|
|
32
|
+
* (避免服务端越权指定任意本地路径)。
|
|
33
|
+
*/
|
|
34
|
+
path: z.string().optional(),
|
|
35
|
+
/** 是否 git init(默认 true,项目 = 目录 + Git)。 */
|
|
36
|
+
git: z.boolean().default(true),
|
|
37
|
+
/** 可选:初始化时设置的远端。 */
|
|
38
|
+
remote: z.string().optional(),
|
|
39
|
+
});
|
|
40
|
+
export const ProjectCreateResult = z.object({
|
|
41
|
+
project: ProjectDescriptor,
|
|
42
|
+
});
|
|
43
|
+
// --- project.list ---
|
|
44
|
+
export const ProjectListParams = z.object({}).default({});
|
|
45
|
+
export const ProjectListResult = z.object({
|
|
46
|
+
projects: z.array(ProjectDescriptor),
|
|
47
|
+
});
|
|
48
|
+
// --- project.get ---
|
|
49
|
+
export const ProjectGetParams = z.object({ projectId: ProjectId });
|
|
50
|
+
export const ProjectGetResult = z.object({ project: ProjectDescriptor });
|
|
51
|
+
// --- project.remove ---
|
|
52
|
+
export const ProjectRemoveParams = z.object({
|
|
53
|
+
projectId: ProjectId,
|
|
54
|
+
/**
|
|
55
|
+
* 是否删除物理目录。默认 false(仅从 phonon 解绑/注销,保留磁盘文件,防误删)。
|
|
56
|
+
* true 才真正删目录——危险操作,需 policy allowDeleteFiles。
|
|
57
|
+
*/
|
|
58
|
+
deleteFiles: z.boolean().default(false),
|
|
59
|
+
/**
|
|
60
|
+
* 有 active session 绑定本项目时的处理(P1-7 / Minimax#5):
|
|
61
|
+
* - reject(默认):还有 active session → errProjectHasActiveSessions
|
|
62
|
+
* - cascade :级联 terminate 所有 active session 再移除
|
|
63
|
+
*/
|
|
64
|
+
whenActiveSessions: z.enum(["reject", "cascade"]).default("reject"),
|
|
65
|
+
});
|
|
66
|
+
export const ProjectRemoveResult = z.object({
|
|
67
|
+
projectId: ProjectId,
|
|
68
|
+
removed: z.literal(true),
|
|
69
|
+
filesDeleted: z.boolean(),
|
|
70
|
+
/** cascade 时被级联 terminate 的 session。 */
|
|
71
|
+
terminatedSessions: z.array(z.string()).optional(),
|
|
72
|
+
});
|
|
73
|
+
// ===========================================================================
|
|
74
|
+
// Git / worktree 子能力(D25)
|
|
75
|
+
// worktree = 同一仓库的多个工作目录,天然适配「多 tenant/session 在同一项目各干各的」。
|
|
76
|
+
// ===========================================================================
|
|
77
|
+
/** worktree 描述。 */
|
|
78
|
+
export const WorktreeDescriptor = z.object({
|
|
79
|
+
/** worktree 标识(phonon 生成)。 */
|
|
80
|
+
worktreeId: z.string().min(1),
|
|
81
|
+
projectId: ProjectId,
|
|
82
|
+
/** worktree 的工作目录路径。 */
|
|
83
|
+
path: z.string().min(1),
|
|
84
|
+
/** 该 worktree 检出的分支。 */
|
|
85
|
+
branch: z.string().min(1),
|
|
86
|
+
/** 是否是主工作区(项目本体目录)。 */
|
|
87
|
+
isPrimary: z.boolean().default(false),
|
|
88
|
+
createdAt: Timestamp.optional(),
|
|
89
|
+
});
|
|
90
|
+
// --- project.worktree.create:基于某 branch 创建 worktree ---
|
|
91
|
+
export const WorktreeCreateParams = z.object({
|
|
92
|
+
/** 可选:幂等键(P0-3)。 */
|
|
93
|
+
clientRequestId: z.string().optional(),
|
|
94
|
+
projectId: ProjectId,
|
|
95
|
+
/** 基于哪个已有 branch 创建(检出点)。 */
|
|
96
|
+
baseBranch: z.string().min(1),
|
|
97
|
+
/**
|
|
98
|
+
* 可选:新建并检出的分支名。缺省则直接检出 baseBranch
|
|
99
|
+
* (注:同一 branch 不能被两个 worktree 同时检出,所以多开并发时通常传 newBranch)。
|
|
100
|
+
*/
|
|
101
|
+
newBranch: z.string().optional(),
|
|
102
|
+
/** 可选:指定 worktree 路径;缺省由 phonon 在受控区生成。 */
|
|
103
|
+
path: z.string().optional(),
|
|
104
|
+
});
|
|
105
|
+
export const WorktreeCreateResult = z.object({
|
|
106
|
+
worktree: WorktreeDescriptor,
|
|
107
|
+
});
|
|
108
|
+
// --- project.worktree.list ---
|
|
109
|
+
export const WorktreeListParams = z.object({ projectId: ProjectId });
|
|
110
|
+
export const WorktreeListResult = z.object({
|
|
111
|
+
worktrees: z.array(WorktreeDescriptor),
|
|
112
|
+
});
|
|
113
|
+
// --- project.worktree.remove:清理 worktree ---
|
|
114
|
+
export const WorktreeRemoveParams = z.object({
|
|
115
|
+
projectId: ProjectId,
|
|
116
|
+
worktreeId: z.string().min(1),
|
|
117
|
+
/**
|
|
118
|
+
* 是否强制清理(P1-7)。默认 false:
|
|
119
|
+
* 有未提交变更 → errWorktreeHasChanges;还有 active/running session 绑定 → errWorktreeInUse。
|
|
120
|
+
* force=true 才允许硬删,但会连带影响返回 affectedSessions。
|
|
121
|
+
*/
|
|
122
|
+
force: z.boolean().default(false),
|
|
123
|
+
});
|
|
124
|
+
export const WorktreeRemoveResult = z.object({
|
|
125
|
+
worktreeId: z.string(),
|
|
126
|
+
removed: z.literal(true),
|
|
127
|
+
/** 被连带影响(被迫 terminate)的 session(force 硬删时)。 */
|
|
128
|
+
affectedSessions: z.array(z.string()).optional(),
|
|
129
|
+
});
|
|
130
|
+
// --- project.git.deleteBranch:删除(已合并的)branch ---
|
|
131
|
+
export const GitDeleteBranchParams = z.object({
|
|
132
|
+
projectId: ProjectId,
|
|
133
|
+
branch: z.string().min(1),
|
|
134
|
+
/**
|
|
135
|
+
* 是否强制删除(P1-7)。默认 false:
|
|
136
|
+
* 未合并 → errBranchNotMerged;仍被某 worktree 检出 → errBranchInUse。
|
|
137
|
+
* force=true 强删未合并(git branch -D),返回 affectedWorktrees。
|
|
138
|
+
*/
|
|
139
|
+
force: z.boolean().default(false),
|
|
140
|
+
});
|
|
141
|
+
export const GitDeleteBranchResult = z.object({
|
|
142
|
+
branch: z.string(),
|
|
143
|
+
deleted: z.literal(true),
|
|
144
|
+
wasMerged: z.boolean().optional(),
|
|
145
|
+
/** 被连带影响的 worktree(force 硬删时)。 */
|
|
146
|
+
affectedWorktrees: z.array(z.string()).optional(),
|
|
147
|
+
});
|
|
148
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/schemas/project.ts"],"names":[],"mappings":"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"}
|