@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.
Files changed (127) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +70 -0
  3. package/dist/index.d.ts +24 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +24 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/json-schema/_index.json +3794 -0
  8. package/dist/json-schema/connect.hello.json +117 -0
  9. package/dist/json-schema/discovery.changed.json +190 -0
  10. package/dist/json-schema/discovery.get.json +183 -0
  11. package/dist/json-schema/discovery.list.json +182 -0
  12. package/dist/json-schema/document.prepare_upload.json +96 -0
  13. package/dist/json-schema/document.send.json +165 -0
  14. package/dist/json-schema/hook.fired.json +100 -0
  15. package/dist/json-schema/hook.resolve.json +96 -0
  16. package/dist/json-schema/interaction.cancel.json +48 -0
  17. package/dist/json-schema/interaction.request.json +376 -0
  18. package/dist/json-schema/interaction.response.json +68 -0
  19. package/dist/json-schema/project.create.json +89 -0
  20. package/dist/json-schema/project.get.json +76 -0
  21. package/dist/json-schema/project.git.deleteBranch.json +64 -0
  22. package/dist/json-schema/project.list.json +72 -0
  23. package/dist/json-schema/project.remove.json +69 -0
  24. package/dist/json-schema/project.worktree.create.json +88 -0
  25. package/dist/json-schema/project.worktree.list.json +77 -0
  26. package/dist/json-schema/project.worktree.remove.json +61 -0
  27. package/dist/json-schema/session.compress.json +72 -0
  28. package/dist/json-schema/session.create.json +128 -0
  29. package/dist/json-schema/session.inject.json +72 -0
  30. package/dist/json-schema/session.interrupt.json +58 -0
  31. package/dist/json-schema/session.list.json +127 -0
  32. package/dist/json-schema/session.send.json +132 -0
  33. package/dist/json-schema/session.status.json +94 -0
  34. package/dist/json-schema/session.switchModel.json +73 -0
  35. package/dist/json-schema/session.terminate.json +54 -0
  36. package/dist/json-schema/skill.install.json +171 -0
  37. package/dist/json-schema/skill.list.json +101 -0
  38. package/dist/json-schema/skill.uninstall.json +76 -0
  39. package/dist/json-schema/stream.ack.json +36 -0
  40. package/dist/json-schema/stream.event.json +381 -0
  41. package/dist/schemas/capabilities.d.ts +90 -0
  42. package/dist/schemas/capabilities.d.ts.map +1 -0
  43. package/dist/schemas/capabilities.js +59 -0
  44. package/dist/schemas/capabilities.js.map +1 -0
  45. package/dist/schemas/common.d.ts +66 -0
  46. package/dist/schemas/common.d.ts.map +1 -0
  47. package/dist/schemas/common.js +97 -0
  48. package/dist/schemas/common.js.map +1 -0
  49. package/dist/schemas/connect.d.ts +111 -0
  50. package/dist/schemas/connect.d.ts.map +1 -0
  51. package/dist/schemas/connect.js +46 -0
  52. package/dist/schemas/connect.js.map +1 -0
  53. package/dist/schemas/device.d.ts +221 -0
  54. package/dist/schemas/device.d.ts.map +1 -0
  55. package/dist/schemas/device.js +59 -0
  56. package/dist/schemas/device.js.map +1 -0
  57. package/dist/schemas/discovery.d.ts +892 -0
  58. package/dist/schemas/discovery.d.ts.map +1 -0
  59. package/dist/schemas/discovery.js +66 -0
  60. package/dist/schemas/discovery.js.map +1 -0
  61. package/dist/schemas/document.d.ts +351 -0
  62. package/dist/schemas/document.d.ts.map +1 -0
  63. package/dist/schemas/document.js +103 -0
  64. package/dist/schemas/document.js.map +1 -0
  65. package/dist/schemas/env.d.ts +265 -0
  66. package/dist/schemas/env.d.ts.map +1 -0
  67. package/dist/schemas/env.js +44 -0
  68. package/dist/schemas/env.js.map +1 -0
  69. package/dist/schemas/file.d.ts +274 -0
  70. package/dist/schemas/file.d.ts.map +1 -0
  71. package/dist/schemas/file.js +72 -0
  72. package/dist/schemas/file.js.map +1 -0
  73. package/dist/schemas/hook.d.ts +132 -0
  74. package/dist/schemas/hook.d.ts.map +1 -0
  75. package/dist/schemas/hook.js +58 -0
  76. package/dist/schemas/hook.js.map +1 -0
  77. package/dist/schemas/interaction.d.ts +1583 -0
  78. package/dist/schemas/interaction.d.ts.map +1 -0
  79. package/dist/schemas/interaction.js +112 -0
  80. package/dist/schemas/interaction.js.map +1 -0
  81. package/dist/schemas/jsonrpc.d.ts +314 -0
  82. package/dist/schemas/jsonrpc.d.ts.map +1 -0
  83. package/dist/schemas/jsonrpc.js +64 -0
  84. package/dist/schemas/jsonrpc.js.map +1 -0
  85. package/dist/schemas/methods.d.ts +3826 -0
  86. package/dist/schemas/methods.d.ts.map +1 -0
  87. package/dist/schemas/methods.js +311 -0
  88. package/dist/schemas/methods.js.map +1 -0
  89. package/dist/schemas/policy.d.ts +81 -0
  90. package/dist/schemas/policy.d.ts.map +1 -0
  91. package/dist/schemas/policy.js +66 -0
  92. package/dist/schemas/policy.js.map +1 -0
  93. package/dist/schemas/project.d.ts +506 -0
  94. package/dist/schemas/project.d.ts.map +1 -0
  95. package/dist/schemas/project.js +148 -0
  96. package/dist/schemas/project.js.map +1 -0
  97. package/dist/schemas/session.d.ts +730 -0
  98. package/dist/schemas/session.d.ts.map +1 -0
  99. package/dist/schemas/session.js +287 -0
  100. package/dist/schemas/session.js.map +1 -0
  101. package/dist/schemas/skill.d.ts +465 -0
  102. package/dist/schemas/skill.d.ts.map +1 -0
  103. package/dist/schemas/skill.js +103 -0
  104. package/dist/schemas/skill.js.map +1 -0
  105. package/dist/schemas/stream.d.ts +688 -0
  106. package/dist/schemas/stream.d.ts.map +1 -0
  107. package/dist/schemas/stream.js +133 -0
  108. package/dist/schemas/stream.js.map +1 -0
  109. package/package.json +52 -0
  110. package/src/index.ts +24 -0
  111. package/src/schemas/capabilities.ts +62 -0
  112. package/src/schemas/common.ts +119 -0
  113. package/src/schemas/connect.ts +50 -0
  114. package/src/schemas/device.ts +67 -0
  115. package/src/schemas/discovery.ts +80 -0
  116. package/src/schemas/document.ts +121 -0
  117. package/src/schemas/env.ts +60 -0
  118. package/src/schemas/file.ts +97 -0
  119. package/src/schemas/hook.ts +66 -0
  120. package/src/schemas/interaction.ts +135 -0
  121. package/src/schemas/jsonrpc.ts +80 -0
  122. package/src/schemas/methods.ts +414 -0
  123. package/src/schemas/policy.ts +71 -0
  124. package/src/schemas/project.ts +185 -0
  125. package/src/schemas/session.ts +336 -0
  126. package/src/schemas/skill.ts +121 -0
  127. package/src/schemas/stream.ts +149 -0
@@ -0,0 +1,265 @@
1
+ import { z } from "zod";
2
+ /** Skill / agent 执行环境变量配置。明文存储在设备本地,list 默认脱敏。 */
3
+ export declare const EnvScope: z.ZodEnum<["global", "project", "skill"]>;
4
+ export type EnvScope = z.infer<typeof EnvScope>;
5
+ declare const EnvTargetBase: z.ZodObject<{
6
+ scope: z.ZodEnum<["global", "project", "skill"]>;
7
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
8
+ agent: z.ZodOptional<z.ZodBranded<z.ZodString, "AgentId">>;
9
+ skillName: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ scope: "project" | "global" | "skill";
12
+ agent?: (string & z.BRAND<"AgentId">) | undefined;
13
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
14
+ skillName?: string | undefined;
15
+ }, {
16
+ scope: "project" | "global" | "skill";
17
+ agent?: string | undefined;
18
+ projectId?: string | undefined;
19
+ skillName?: string | undefined;
20
+ }>;
21
+ export declare const EnvTarget: z.ZodObject<{
22
+ scope: z.ZodEnum<["global", "project", "skill"]>;
23
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
24
+ agent: z.ZodOptional<z.ZodBranded<z.ZodString, "AgentId">>;
25
+ skillName: z.ZodOptional<z.ZodString>;
26
+ }, "strip", z.ZodTypeAny, {
27
+ scope: "project" | "global" | "skill";
28
+ agent?: (string & z.BRAND<"AgentId">) | undefined;
29
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
30
+ skillName?: string | undefined;
31
+ }, {
32
+ scope: "project" | "global" | "skill";
33
+ agent?: string | undefined;
34
+ projectId?: string | undefined;
35
+ skillName?: string | undefined;
36
+ }>;
37
+ export type EnvTarget = z.infer<typeof EnvTargetBase>;
38
+ export declare const EnvVarDescriptor: z.ZodObject<{
39
+ scope: z.ZodEnum<["global", "project", "skill"]>;
40
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
41
+ agent: z.ZodOptional<z.ZodBranded<z.ZodString, "AgentId">>;
42
+ skillName: z.ZodOptional<z.ZodString>;
43
+ } & {
44
+ name: z.ZodString;
45
+ value: z.ZodOptional<z.ZodString>;
46
+ redacted: z.ZodDefault<z.ZodBoolean>;
47
+ updatedAt: z.ZodOptional<z.ZodString>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ name: string;
50
+ scope: "project" | "global" | "skill";
51
+ redacted: boolean;
52
+ value?: string | undefined;
53
+ agent?: (string & z.BRAND<"AgentId">) | undefined;
54
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
55
+ skillName?: string | undefined;
56
+ updatedAt?: string | undefined;
57
+ }, {
58
+ name: string;
59
+ scope: "project" | "global" | "skill";
60
+ value?: string | undefined;
61
+ agent?: string | undefined;
62
+ projectId?: string | undefined;
63
+ skillName?: string | undefined;
64
+ redacted?: boolean | undefined;
65
+ updatedAt?: string | undefined;
66
+ }>;
67
+ export type EnvVarDescriptor = z.infer<typeof EnvVarDescriptor>;
68
+ export declare const EnvSetParams: z.ZodObject<{
69
+ scope: z.ZodEnum<["global", "project", "skill"]>;
70
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
71
+ agent: z.ZodOptional<z.ZodBranded<z.ZodString, "AgentId">>;
72
+ skillName: z.ZodOptional<z.ZodString>;
73
+ } & {
74
+ clientRequestId: z.ZodOptional<z.ZodString>;
75
+ name: z.ZodString;
76
+ value: z.ZodString;
77
+ /** 可选:如果是 secret,list 默认永远脱敏。默认 true。 */
78
+ secret: z.ZodDefault<z.ZodBoolean>;
79
+ }, "strip", z.ZodTypeAny, {
80
+ value: string;
81
+ name: string;
82
+ scope: "project" | "global" | "skill";
83
+ secret: boolean;
84
+ agent?: (string & z.BRAND<"AgentId">) | undefined;
85
+ clientRequestId?: string | undefined;
86
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
87
+ skillName?: string | undefined;
88
+ }, {
89
+ value: string;
90
+ name: string;
91
+ scope: "project" | "global" | "skill";
92
+ agent?: string | undefined;
93
+ clientRequestId?: string | undefined;
94
+ projectId?: string | undefined;
95
+ skillName?: string | undefined;
96
+ secret?: boolean | undefined;
97
+ }>;
98
+ export type EnvSetParams = z.infer<typeof EnvSetParams>;
99
+ export declare const EnvSetResult: z.ZodObject<{
100
+ variable: z.ZodObject<{
101
+ scope: z.ZodEnum<["global", "project", "skill"]>;
102
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
103
+ agent: z.ZodOptional<z.ZodBranded<z.ZodString, "AgentId">>;
104
+ skillName: z.ZodOptional<z.ZodString>;
105
+ } & {
106
+ name: z.ZodString;
107
+ value: z.ZodOptional<z.ZodString>;
108
+ redacted: z.ZodDefault<z.ZodBoolean>;
109
+ updatedAt: z.ZodOptional<z.ZodString>;
110
+ }, "strip", z.ZodTypeAny, {
111
+ name: string;
112
+ scope: "project" | "global" | "skill";
113
+ redacted: boolean;
114
+ value?: string | undefined;
115
+ agent?: (string & z.BRAND<"AgentId">) | undefined;
116
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
117
+ skillName?: string | undefined;
118
+ updatedAt?: string | undefined;
119
+ }, {
120
+ name: string;
121
+ scope: "project" | "global" | "skill";
122
+ value?: string | undefined;
123
+ agent?: string | undefined;
124
+ projectId?: string | undefined;
125
+ skillName?: string | undefined;
126
+ redacted?: boolean | undefined;
127
+ updatedAt?: string | undefined;
128
+ }>;
129
+ }, "strip", z.ZodTypeAny, {
130
+ variable: {
131
+ name: string;
132
+ scope: "project" | "global" | "skill";
133
+ redacted: boolean;
134
+ value?: string | undefined;
135
+ agent?: (string & z.BRAND<"AgentId">) | undefined;
136
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
137
+ skillName?: string | undefined;
138
+ updatedAt?: string | undefined;
139
+ };
140
+ }, {
141
+ variable: {
142
+ name: string;
143
+ scope: "project" | "global" | "skill";
144
+ value?: string | undefined;
145
+ agent?: string | undefined;
146
+ projectId?: string | undefined;
147
+ skillName?: string | undefined;
148
+ redacted?: boolean | undefined;
149
+ updatedAt?: string | undefined;
150
+ };
151
+ }>;
152
+ export type EnvSetResult = z.infer<typeof EnvSetResult>;
153
+ export declare const EnvListParams: z.ZodObject<{
154
+ scope: z.ZodOptional<z.ZodEnum<["global", "project", "skill"]>>;
155
+ projectId: z.ZodOptional<z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>>;
156
+ agent: z.ZodOptional<z.ZodOptional<z.ZodBranded<z.ZodString, "AgentId">>>;
157
+ skillName: z.ZodOptional<z.ZodOptional<z.ZodString>>;
158
+ } & {
159
+ /** 默认 false;true 需要本地 policy allowEnvReveal。 */
160
+ reveal: z.ZodDefault<z.ZodBoolean>;
161
+ }, "strip", z.ZodTypeAny, {
162
+ reveal: boolean;
163
+ agent?: (string & z.BRAND<"AgentId">) | undefined;
164
+ scope?: "project" | "global" | "skill" | undefined;
165
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
166
+ skillName?: string | undefined;
167
+ }, {
168
+ agent?: string | undefined;
169
+ scope?: "project" | "global" | "skill" | undefined;
170
+ projectId?: string | undefined;
171
+ skillName?: string | undefined;
172
+ reveal?: boolean | undefined;
173
+ }>;
174
+ export type EnvListParams = z.infer<typeof EnvListParams>;
175
+ export declare const EnvListResult: z.ZodObject<{
176
+ variables: z.ZodArray<z.ZodObject<{
177
+ scope: z.ZodEnum<["global", "project", "skill"]>;
178
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
179
+ agent: z.ZodOptional<z.ZodBranded<z.ZodString, "AgentId">>;
180
+ skillName: z.ZodOptional<z.ZodString>;
181
+ } & {
182
+ name: z.ZodString;
183
+ value: z.ZodOptional<z.ZodString>;
184
+ redacted: z.ZodDefault<z.ZodBoolean>;
185
+ updatedAt: z.ZodOptional<z.ZodString>;
186
+ }, "strip", z.ZodTypeAny, {
187
+ name: string;
188
+ scope: "project" | "global" | "skill";
189
+ redacted: boolean;
190
+ value?: string | undefined;
191
+ agent?: (string & z.BRAND<"AgentId">) | undefined;
192
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
193
+ skillName?: string | undefined;
194
+ updatedAt?: string | undefined;
195
+ }, {
196
+ name: string;
197
+ scope: "project" | "global" | "skill";
198
+ value?: string | undefined;
199
+ agent?: string | undefined;
200
+ projectId?: string | undefined;
201
+ skillName?: string | undefined;
202
+ redacted?: boolean | undefined;
203
+ updatedAt?: string | undefined;
204
+ }>, "many">;
205
+ }, "strip", z.ZodTypeAny, {
206
+ variables: {
207
+ name: string;
208
+ scope: "project" | "global" | "skill";
209
+ redacted: boolean;
210
+ value?: string | undefined;
211
+ agent?: (string & z.BRAND<"AgentId">) | undefined;
212
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
213
+ skillName?: string | undefined;
214
+ updatedAt?: string | undefined;
215
+ }[];
216
+ }, {
217
+ variables: {
218
+ name: string;
219
+ scope: "project" | "global" | "skill";
220
+ value?: string | undefined;
221
+ agent?: string | undefined;
222
+ projectId?: string | undefined;
223
+ skillName?: string | undefined;
224
+ redacted?: boolean | undefined;
225
+ updatedAt?: string | undefined;
226
+ }[];
227
+ }>;
228
+ export type EnvListResult = z.infer<typeof EnvListResult>;
229
+ export declare const EnvDeleteParams: z.ZodObject<{
230
+ scope: z.ZodEnum<["global", "project", "skill"]>;
231
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
232
+ agent: z.ZodOptional<z.ZodBranded<z.ZodString, "AgentId">>;
233
+ skillName: z.ZodOptional<z.ZodString>;
234
+ } & {
235
+ clientRequestId: z.ZodOptional<z.ZodString>;
236
+ name: z.ZodString;
237
+ }, "strip", z.ZodTypeAny, {
238
+ name: string;
239
+ scope: "project" | "global" | "skill";
240
+ agent?: (string & z.BRAND<"AgentId">) | undefined;
241
+ clientRequestId?: string | undefined;
242
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
243
+ skillName?: string | undefined;
244
+ }, {
245
+ name: string;
246
+ scope: "project" | "global" | "skill";
247
+ agent?: string | undefined;
248
+ clientRequestId?: string | undefined;
249
+ projectId?: string | undefined;
250
+ skillName?: string | undefined;
251
+ }>;
252
+ export type EnvDeleteParams = z.infer<typeof EnvDeleteParams>;
253
+ export declare const EnvDeleteResult: z.ZodObject<{
254
+ deleted: z.ZodLiteral<true>;
255
+ name: z.ZodString;
256
+ }, "strip", z.ZodTypeAny, {
257
+ name: string;
258
+ deleted: true;
259
+ }, {
260
+ name: string;
261
+ deleted: true;
262
+ }>;
263
+ export type EnvDeleteResult = z.infer<typeof EnvDeleteResult>;
264
+ export {};
265
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/schemas/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,kDAAkD;AAClD,eAAO,MAAM,QAAQ,2CAAyC,CAAC;AAC/D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;EAKjB,CAAC;AAWH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;EAAqC,CAAC;AAC5D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK1B,CAAC;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,YAAY;;;;;;;;;IAIvB,yCAAyC;;;;;;;;;;;;;;;;;;;;EAExC,CAAC;AACJ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA2C,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,aAAa;;;;;;IACxB,gDAAgD;;;;;;;;;;;;;;EAEhD,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAC1D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqD,CAAC;AAChF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;EAGzB,CAAC;AACJ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,eAAO,MAAM,eAAe;;;;;;;;;EAA2D,CAAC;AACxF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { z } from "zod";
2
+ import { ProjectId, AgentId } from "./common.js";
3
+ /** Skill / agent 执行环境变量配置。明文存储在设备本地,list 默认脱敏。 */
4
+ export const EnvScope = z.enum(["global", "project", "skill"]);
5
+ const EnvTargetBase = z.object({
6
+ scope: EnvScope,
7
+ projectId: ProjectId.optional(),
8
+ agent: AgentId.optional(),
9
+ skillName: z.string().min(1).optional(),
10
+ });
11
+ function withEnvTargetRefine(schema) {
12
+ return schema
13
+ .refine((v) => v.scope !== "project" || !!v.projectId, { message: "project scope requires projectId", path: ["projectId"] })
14
+ .refine((v) => {
15
+ const x = v;
16
+ return x.scope !== "skill" || (!!x.projectId && !!x.agent && !!x.skillName);
17
+ }, { message: "skill scope requires projectId+agent+skillName", path: ["skillName"] });
18
+ }
19
+ export const EnvTarget = withEnvTargetRefine(EnvTargetBase);
20
+ export const EnvVarDescriptor = withEnvTargetRefine(EnvTargetBase.extend({
21
+ name: z.string().min(1),
22
+ value: z.string().optional(),
23
+ redacted: z.boolean().default(true),
24
+ updatedAt: z.string().datetime({ offset: true }).optional(),
25
+ }));
26
+ export const EnvSetParams = withEnvTargetRefine(EnvTargetBase.extend({
27
+ clientRequestId: z.string().optional(),
28
+ name: z.string().min(1),
29
+ value: z.string(),
30
+ /** 可选:如果是 secret,list 默认永远脱敏。默认 true。 */
31
+ secret: z.boolean().default(true),
32
+ }));
33
+ export const EnvSetResult = z.object({ variable: EnvVarDescriptor });
34
+ export const EnvListParams = EnvTargetBase.partial().extend({
35
+ /** 默认 false;true 需要本地 policy allowEnvReveal。 */
36
+ reveal: z.boolean().default(false),
37
+ });
38
+ export const EnvListResult = z.object({ variables: z.array(EnvVarDescriptor) });
39
+ export const EnvDeleteParams = withEnvTargetRefine(EnvTargetBase.extend({
40
+ clientRequestId: z.string().optional(),
41
+ name: z.string().min(1),
42
+ }));
43
+ export const EnvDeleteResult = z.object({ deleted: z.literal(true), name: z.string() });
44
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/schemas/env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * 受控工作区文件读写协议。
4
+ *
5
+ * 与 document.send 不同:document.send 是 agent 主动把产物发给 server;
6
+ * file.* 是 server 主动读写本地 project/worktree 内文件。
7
+ */
8
+ export declare const FileEncoding: z.ZodEnum<["utf8", "base64"]>;
9
+ export type FileEncoding = z.infer<typeof FileEncoding>;
10
+ export declare const FileScope: z.ZodObject<{
11
+ projectId: z.ZodBranded<z.ZodString, "ProjectId">;
12
+ /** 可选:指定 worktree;缺省为项目主目录。 */
13
+ worktreeId: z.ZodOptional<z.ZodString>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ projectId: string & z.BRAND<"ProjectId">;
16
+ worktreeId?: string | undefined;
17
+ }, {
18
+ projectId: string;
19
+ worktreeId?: string | undefined;
20
+ }>;
21
+ export type FileScope = z.infer<typeof FileScope>;
22
+ export declare const FileStat: z.ZodObject<{
23
+ path: z.ZodString;
24
+ type: z.ZodEnum<["file", "directory", "symlink", "other"]>;
25
+ sizeBytes: z.ZodNumber;
26
+ modifiedAt: z.ZodOptional<z.ZodString>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ path: string;
29
+ type: "file" | "directory" | "symlink" | "other";
30
+ sizeBytes: number;
31
+ modifiedAt?: string | undefined;
32
+ }, {
33
+ path: string;
34
+ type: "file" | "directory" | "symlink" | "other";
35
+ sizeBytes: number;
36
+ modifiedAt?: string | undefined;
37
+ }>;
38
+ export type FileStat = z.infer<typeof FileStat>;
39
+ export declare const FileReadParams: z.ZodObject<{
40
+ projectId: z.ZodBranded<z.ZodString, "ProjectId">;
41
+ /** 可选:指定 worktree;缺省为项目主目录。 */
42
+ worktreeId: z.ZodOptional<z.ZodString>;
43
+ } & {
44
+ path: z.ZodEffects<z.ZodString, string, string>;
45
+ encoding: z.ZodDefault<z.ZodEnum<["utf8", "base64"]>>;
46
+ /** 可选:最大读取字节数,避免误读超大文件。 */
47
+ maxBytes: z.ZodOptional<z.ZodNumber>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ path: string;
50
+ encoding: "base64" | "utf8";
51
+ projectId: string & z.BRAND<"ProjectId">;
52
+ worktreeId?: string | undefined;
53
+ maxBytes?: number | undefined;
54
+ }, {
55
+ path: string;
56
+ projectId: string;
57
+ worktreeId?: string | undefined;
58
+ encoding?: "base64" | "utf8" | undefined;
59
+ maxBytes?: number | undefined;
60
+ }>;
61
+ export type FileReadParams = z.infer<typeof FileReadParams>;
62
+ export declare const FileReadResult: z.ZodObject<{
63
+ path: z.ZodString;
64
+ encoding: z.ZodEnum<["utf8", "base64"]>;
65
+ data: z.ZodString;
66
+ sizeBytes: z.ZodNumber;
67
+ truncated: z.ZodDefault<z.ZodBoolean>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ path: string;
70
+ encoding: "base64" | "utf8";
71
+ data: string;
72
+ sizeBytes: number;
73
+ truncated: boolean;
74
+ }, {
75
+ path: string;
76
+ encoding: "base64" | "utf8";
77
+ data: string;
78
+ sizeBytes: number;
79
+ truncated?: boolean | undefined;
80
+ }>;
81
+ export type FileReadResult = z.infer<typeof FileReadResult>;
82
+ export declare const FileWriteParams: z.ZodObject<{
83
+ projectId: z.ZodBranded<z.ZodString, "ProjectId">;
84
+ /** 可选:指定 worktree;缺省为项目主目录。 */
85
+ worktreeId: z.ZodOptional<z.ZodString>;
86
+ } & {
87
+ /** 可选:幂等键。 */
88
+ clientRequestId: z.ZodOptional<z.ZodString>;
89
+ path: z.ZodEffects<z.ZodString, string, string>;
90
+ encoding: z.ZodDefault<z.ZodEnum<["utf8", "base64"]>>;
91
+ data: z.ZodString;
92
+ /** 缺省 true;false 时若文件已存在则报错。 */
93
+ overwrite: z.ZodDefault<z.ZodBoolean>;
94
+ /** 是否自动创建父目录。 */
95
+ createDirs: z.ZodDefault<z.ZodBoolean>;
96
+ }, "strip", z.ZodTypeAny, {
97
+ path: string;
98
+ encoding: "base64" | "utf8";
99
+ data: string;
100
+ projectId: string & z.BRAND<"ProjectId">;
101
+ overwrite: boolean;
102
+ createDirs: boolean;
103
+ clientRequestId?: string | undefined;
104
+ worktreeId?: string | undefined;
105
+ }, {
106
+ path: string;
107
+ data: string;
108
+ projectId: string;
109
+ clientRequestId?: string | undefined;
110
+ worktreeId?: string | undefined;
111
+ encoding?: "base64" | "utf8" | undefined;
112
+ overwrite?: boolean | undefined;
113
+ createDirs?: boolean | undefined;
114
+ }>;
115
+ export type FileWriteParams = z.infer<typeof FileWriteParams>;
116
+ export declare const FileWriteResult: z.ZodObject<{
117
+ path: z.ZodString;
118
+ sizeBytes: z.ZodNumber;
119
+ written: z.ZodLiteral<true>;
120
+ }, "strip", z.ZodTypeAny, {
121
+ path: string;
122
+ sizeBytes: number;
123
+ written: true;
124
+ }, {
125
+ path: string;
126
+ sizeBytes: number;
127
+ written: true;
128
+ }>;
129
+ export type FileWriteResult = z.infer<typeof FileWriteResult>;
130
+ export declare const FileListParams: z.ZodObject<{
131
+ projectId: z.ZodBranded<z.ZodString, "ProjectId">;
132
+ /** 可选:指定 worktree;缺省为项目主目录。 */
133
+ worktreeId: z.ZodOptional<z.ZodString>;
134
+ } & {
135
+ path: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
136
+ recursive: z.ZodDefault<z.ZodBoolean>;
137
+ limit: z.ZodDefault<z.ZodNumber>;
138
+ }, "strip", z.ZodTypeAny, {
139
+ path: string;
140
+ limit: number;
141
+ projectId: string & z.BRAND<"ProjectId">;
142
+ recursive: boolean;
143
+ worktreeId?: string | undefined;
144
+ }, {
145
+ projectId: string;
146
+ path?: string | undefined;
147
+ worktreeId?: string | undefined;
148
+ limit?: number | undefined;
149
+ recursive?: boolean | undefined;
150
+ }>;
151
+ export type FileListParams = z.infer<typeof FileListParams>;
152
+ export declare const FileListResult: z.ZodObject<{
153
+ path: z.ZodString;
154
+ entries: z.ZodArray<z.ZodObject<{
155
+ path: z.ZodString;
156
+ type: z.ZodEnum<["file", "directory", "symlink", "other"]>;
157
+ sizeBytes: z.ZodNumber;
158
+ modifiedAt: z.ZodOptional<z.ZodString>;
159
+ }, "strip", z.ZodTypeAny, {
160
+ path: string;
161
+ type: "file" | "directory" | "symlink" | "other";
162
+ sizeBytes: number;
163
+ modifiedAt?: string | undefined;
164
+ }, {
165
+ path: string;
166
+ type: "file" | "directory" | "symlink" | "other";
167
+ sizeBytes: number;
168
+ modifiedAt?: string | undefined;
169
+ }>, "many">;
170
+ truncated: z.ZodDefault<z.ZodBoolean>;
171
+ }, "strip", z.ZodTypeAny, {
172
+ entries: {
173
+ path: string;
174
+ type: "file" | "directory" | "symlink" | "other";
175
+ sizeBytes: number;
176
+ modifiedAt?: string | undefined;
177
+ }[];
178
+ path: string;
179
+ truncated: boolean;
180
+ }, {
181
+ entries: {
182
+ path: string;
183
+ type: "file" | "directory" | "symlink" | "other";
184
+ sizeBytes: number;
185
+ modifiedAt?: string | undefined;
186
+ }[];
187
+ path: string;
188
+ truncated?: boolean | undefined;
189
+ }>;
190
+ export type FileListResult = z.infer<typeof FileListResult>;
191
+ export declare const FileStatParams: z.ZodObject<{
192
+ projectId: z.ZodBranded<z.ZodString, "ProjectId">;
193
+ /** 可选:指定 worktree;缺省为项目主目录。 */
194
+ worktreeId: z.ZodOptional<z.ZodString>;
195
+ } & {
196
+ path: z.ZodEffects<z.ZodString, string, string>;
197
+ }, "strip", z.ZodTypeAny, {
198
+ path: string;
199
+ projectId: string & z.BRAND<"ProjectId">;
200
+ worktreeId?: string | undefined;
201
+ }, {
202
+ path: string;
203
+ projectId: string;
204
+ worktreeId?: string | undefined;
205
+ }>;
206
+ export type FileStatParams = z.infer<typeof FileStatParams>;
207
+ export declare const FileStatResult: z.ZodObject<{
208
+ stat: z.ZodObject<{
209
+ path: z.ZodString;
210
+ type: z.ZodEnum<["file", "directory", "symlink", "other"]>;
211
+ sizeBytes: z.ZodNumber;
212
+ modifiedAt: z.ZodOptional<z.ZodString>;
213
+ }, "strip", z.ZodTypeAny, {
214
+ path: string;
215
+ type: "file" | "directory" | "symlink" | "other";
216
+ sizeBytes: number;
217
+ modifiedAt?: string | undefined;
218
+ }, {
219
+ path: string;
220
+ type: "file" | "directory" | "symlink" | "other";
221
+ sizeBytes: number;
222
+ modifiedAt?: string | undefined;
223
+ }>;
224
+ }, "strip", z.ZodTypeAny, {
225
+ stat: {
226
+ path: string;
227
+ type: "file" | "directory" | "symlink" | "other";
228
+ sizeBytes: number;
229
+ modifiedAt?: string | undefined;
230
+ };
231
+ }, {
232
+ stat: {
233
+ path: string;
234
+ type: "file" | "directory" | "symlink" | "other";
235
+ sizeBytes: number;
236
+ modifiedAt?: string | undefined;
237
+ };
238
+ }>;
239
+ export type FileStatResult = z.infer<typeof FileStatResult>;
240
+ export declare const FileMkdirParams: z.ZodObject<{
241
+ projectId: z.ZodBranded<z.ZodString, "ProjectId">;
242
+ /** 可选:指定 worktree;缺省为项目主目录。 */
243
+ worktreeId: z.ZodOptional<z.ZodString>;
244
+ } & {
245
+ /** 可选:幂等键。 */
246
+ clientRequestId: z.ZodOptional<z.ZodString>;
247
+ path: z.ZodEffects<z.ZodString, string, string>;
248
+ recursive: z.ZodDefault<z.ZodBoolean>;
249
+ }, "strip", z.ZodTypeAny, {
250
+ path: string;
251
+ projectId: string & z.BRAND<"ProjectId">;
252
+ recursive: boolean;
253
+ clientRequestId?: string | undefined;
254
+ worktreeId?: string | undefined;
255
+ }, {
256
+ path: string;
257
+ projectId: string;
258
+ clientRequestId?: string | undefined;
259
+ worktreeId?: string | undefined;
260
+ recursive?: boolean | undefined;
261
+ }>;
262
+ export type FileMkdirParams = z.infer<typeof FileMkdirParams>;
263
+ export declare const FileMkdirResult: z.ZodObject<{
264
+ path: z.ZodString;
265
+ created: z.ZodLiteral<true>;
266
+ }, "strip", z.ZodTypeAny, {
267
+ path: string;
268
+ created: true;
269
+ }, {
270
+ path: string;
271
+ created: true;
272
+ }>;
273
+ export type FileMkdirResult = z.infer<typeof FileMkdirResult>;
274
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/schemas/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;GAKG;AAEH,eAAO,MAAM,YAAY,+BAA6B,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,SAAS;;IAEpB,+BAA+B;;;;;;;;EAE/B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAMlD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;EAKnB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,cAAc;;IAjBzB,+BAA+B;;;;;IAoB/B,2BAA2B;;;;;;;;;;;;;;EAE3B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;EAMzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,eAAe;;IAlC1B,+BAA+B;;;IAmC/B,cAAc;;;;;IAKd,gCAAgC;;IAEhC,iBAAiB;;;;;;;;;;;;;;;;;;;;EAEjB,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,eAAe;;;;;;;;;;;;EAI1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,cAAc;;IAtDzB,+BAA+B;;;;;;;;;;;;;;;;;;EA0D/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,cAAc;;IApEzB,+BAA+B;;;;;;;;;;;;EAoEqC,CAAC;AACvE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA+B,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,eAAe;;IAzE1B,+BAA+B;;;IA0E/B,cAAc;;;;;;;;;;;;;;;;EAId,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,eAAO,MAAM,eAAe;;;;;;;;;EAA2D,CAAC;AACxF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { z } from "zod";
2
+ import { ProjectId } from "./common.js";
3
+ /**
4
+ * 受控工作区文件读写协议。
5
+ *
6
+ * 与 document.send 不同:document.send 是 agent 主动把产物发给 server;
7
+ * file.* 是 server 主动读写本地 project/worktree 内文件。
8
+ */
9
+ export const FileEncoding = z.enum(["utf8", "base64"]);
10
+ export const FileScope = z.object({
11
+ projectId: ProjectId,
12
+ /** 可选:指定 worktree;缺省为项目主目录。 */
13
+ worktreeId: z.string().min(1).optional(),
14
+ });
15
+ const RelativePath = z.string().min(1).refine((p) => !p.startsWith("/") && !p.includes("\0"), {
16
+ message: "path must be a relative path",
17
+ });
18
+ export const FileStat = z.object({
19
+ path: z.string(),
20
+ type: z.enum(["file", "directory", "symlink", "other"]),
21
+ sizeBytes: z.number().nonnegative(),
22
+ modifiedAt: z.string().datetime({ offset: true }).optional(),
23
+ });
24
+ export const FileReadParams = FileScope.extend({
25
+ path: RelativePath,
26
+ encoding: FileEncoding.default("utf8"),
27
+ /** 可选:最大读取字节数,避免误读超大文件。 */
28
+ maxBytes: z.number().int().positive().optional(),
29
+ });
30
+ export const FileReadResult = z.object({
31
+ path: z.string(),
32
+ encoding: FileEncoding,
33
+ data: z.string(),
34
+ sizeBytes: z.number().nonnegative(),
35
+ truncated: z.boolean().default(false),
36
+ });
37
+ export const FileWriteParams = FileScope.extend({
38
+ /** 可选:幂等键。 */
39
+ clientRequestId: z.string().optional(),
40
+ path: RelativePath,
41
+ encoding: FileEncoding.default("utf8"),
42
+ data: z.string(),
43
+ /** 缺省 true;false 时若文件已存在则报错。 */
44
+ overwrite: z.boolean().default(true),
45
+ /** 是否自动创建父目录。 */
46
+ createDirs: z.boolean().default(true),
47
+ });
48
+ export const FileWriteResult = z.object({
49
+ path: z.string(),
50
+ sizeBytes: z.number().nonnegative(),
51
+ written: z.literal(true),
52
+ });
53
+ export const FileListParams = FileScope.extend({
54
+ path: RelativePath.default("."),
55
+ recursive: z.boolean().default(false),
56
+ limit: z.number().int().positive().max(10000).default(500),
57
+ });
58
+ export const FileListResult = z.object({
59
+ path: z.string(),
60
+ entries: z.array(FileStat),
61
+ truncated: z.boolean().default(false),
62
+ });
63
+ export const FileStatParams = FileScope.extend({ path: RelativePath });
64
+ export const FileStatResult = z.object({ stat: FileStat });
65
+ export const FileMkdirParams = FileScope.extend({
66
+ /** 可选:幂等键。 */
67
+ clientRequestId: z.string().optional(),
68
+ path: RelativePath,
69
+ recursive: z.boolean().default(true),
70
+ });
71
+ export const FileMkdirResult = z.object({ path: z.string(), created: z.literal(true) });
72
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/schemas/file.ts"],"names":[],"mappings":"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"}