@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,465 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Skill 管理协议(design D24)。
4
+ *
5
+ * 给指定 agent 安装/卸载 skill,支持两级 scope:
6
+ * - global : agent 全局,对该 agent 所有项目可见
7
+ * - project : 项目级,仅对某 projectId 可见(需 projectId)
8
+ *
9
+ * 每个 agent 靠 capability `skillManagement` 声明是否支持;不支持 → errCapabilityUnsupported。
10
+ */
11
+ export declare const SkillScope: z.ZodEnum<["global", "project"]>;
12
+ export type SkillScope = z.infer<typeof SkillScope>;
13
+ /** skill 来源:内联内容、本地路径、或远端引用。 */
14
+ export declare const SkillSource: z.ZodUnion<[z.ZodObject<{
15
+ kind: z.ZodLiteral<"inline">;
16
+ files: z.ZodRecord<z.ZodString, z.ZodString>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ kind: "inline";
19
+ files: Record<string, string>;
20
+ }, {
21
+ kind: "inline";
22
+ files: Record<string, string>;
23
+ }>, z.ZodObject<{
24
+ kind: z.ZodLiteral<"archive">;
25
+ /** v0 先支持 tar.gz;zip/archiveUrl 后续再加,避免安全边界没收稳。 */
26
+ format: z.ZodLiteral<"tar.gz">;
27
+ contentBase64: z.ZodString;
28
+ /** 强烈建议传;phonon 会校验内容 hash,防传输/供应链篡改。 */
29
+ sha256: z.ZodOptional<z.ZodString>;
30
+ /** 可选大小提示,便于 policy/日志;实际大小以 decode 后为准。 */
31
+ sizeBytes: z.ZodOptional<z.ZodNumber>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ kind: "archive";
34
+ format: "tar.gz";
35
+ contentBase64: string;
36
+ sizeBytes?: number | undefined;
37
+ sha256?: string | undefined;
38
+ }, {
39
+ kind: "archive";
40
+ format: "tar.gz";
41
+ contentBase64: string;
42
+ sizeBytes?: number | undefined;
43
+ sha256?: string | undefined;
44
+ }>, z.ZodObject<{
45
+ kind: z.ZodLiteral<"localPath">;
46
+ path: z.ZodString;
47
+ }, "strip", z.ZodTypeAny, {
48
+ path: string;
49
+ kind: "localPath";
50
+ }, {
51
+ path: string;
52
+ kind: "localPath";
53
+ }>, z.ZodObject<{
54
+ kind: z.ZodLiteral<"url">;
55
+ url: z.ZodString;
56
+ /** 可选:内容校验和(P2-12 / 供应链可信度)。url 装需 policy allowUrlSkillInstall。 */
57
+ sha256: z.ZodOptional<z.ZodString>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ kind: "url";
60
+ url: string;
61
+ sha256?: string | undefined;
62
+ }, {
63
+ kind: "url";
64
+ url: string;
65
+ sha256?: string | undefined;
66
+ }>]>;
67
+ export type SkillSource = z.infer<typeof SkillSource>;
68
+ /** 已安装 skill 的描述。 */
69
+ export declare const SkillDescriptor: z.ZodObject<{
70
+ /** skill 名/key。 */
71
+ name: z.ZodString;
72
+ /** 归属哪个 agent。 */
73
+ agent: z.ZodBranded<z.ZodString, "AgentId">;
74
+ scope: z.ZodEnum<["global", "project"]>;
75
+ /** scope=project 时所属项目。 */
76
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
77
+ /** 版本(P2-12,同名冲突可辨)。 */
78
+ version: z.ZodOptional<z.ZodString>;
79
+ /** 内容 hash(P2-12,可复现/防篡改)。 */
80
+ hash: z.ZodOptional<z.ZodString>;
81
+ /** 适配的 agent(某些 skill 只适 OpenClaw 不适 Codex)。 */
82
+ compatibleAgents: z.ZodOptional<z.ZodArray<z.ZodBranded<z.ZodString, "AgentId">, "many">>;
83
+ /** 来源是否可信(本地/内联=可信,url=需校验)。 */
84
+ sourceTrusted: z.ZodOptional<z.ZodBoolean>;
85
+ /** 安装落地路径(设备本地)。 */
86
+ installedPath: z.ZodOptional<z.ZodString>;
87
+ installedAt: z.ZodOptional<z.ZodString>;
88
+ }, "strip", z.ZodTypeAny, {
89
+ agent: string & z.BRAND<"AgentId">;
90
+ name: string;
91
+ scope: "project" | "global";
92
+ version?: string | undefined;
93
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
94
+ hash?: string | undefined;
95
+ compatibleAgents?: (string & z.BRAND<"AgentId">)[] | undefined;
96
+ sourceTrusted?: boolean | undefined;
97
+ installedPath?: string | undefined;
98
+ installedAt?: string | undefined;
99
+ }, {
100
+ agent: string;
101
+ name: string;
102
+ scope: "project" | "global";
103
+ version?: string | undefined;
104
+ projectId?: string | undefined;
105
+ hash?: string | undefined;
106
+ compatibleAgents?: string[] | undefined;
107
+ sourceTrusted?: boolean | undefined;
108
+ installedPath?: string | undefined;
109
+ installedAt?: string | undefined;
110
+ }>;
111
+ export type SkillDescriptor = z.infer<typeof SkillDescriptor>;
112
+ export declare const SkillInstallParams: z.ZodEffects<z.ZodObject<{
113
+ /** 目标 agent。 */
114
+ agent: z.ZodBranded<z.ZodString, "AgentId">;
115
+ name: z.ZodString;
116
+ scope: z.ZodEnum<["global", "project"]>;
117
+ /** scope=project 时必填。 */
118
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
119
+ source: z.ZodUnion<[z.ZodObject<{
120
+ kind: z.ZodLiteral<"inline">;
121
+ files: z.ZodRecord<z.ZodString, z.ZodString>;
122
+ }, "strip", z.ZodTypeAny, {
123
+ kind: "inline";
124
+ files: Record<string, string>;
125
+ }, {
126
+ kind: "inline";
127
+ files: Record<string, string>;
128
+ }>, z.ZodObject<{
129
+ kind: z.ZodLiteral<"archive">;
130
+ /** v0 先支持 tar.gz;zip/archiveUrl 后续再加,避免安全边界没收稳。 */
131
+ format: z.ZodLiteral<"tar.gz">;
132
+ contentBase64: z.ZodString;
133
+ /** 强烈建议传;phonon 会校验内容 hash,防传输/供应链篡改。 */
134
+ sha256: z.ZodOptional<z.ZodString>;
135
+ /** 可选大小提示,便于 policy/日志;实际大小以 decode 后为准。 */
136
+ sizeBytes: z.ZodOptional<z.ZodNumber>;
137
+ }, "strip", z.ZodTypeAny, {
138
+ kind: "archive";
139
+ format: "tar.gz";
140
+ contentBase64: string;
141
+ sizeBytes?: number | undefined;
142
+ sha256?: string | undefined;
143
+ }, {
144
+ kind: "archive";
145
+ format: "tar.gz";
146
+ contentBase64: string;
147
+ sizeBytes?: number | undefined;
148
+ sha256?: string | undefined;
149
+ }>, z.ZodObject<{
150
+ kind: z.ZodLiteral<"localPath">;
151
+ path: z.ZodString;
152
+ }, "strip", z.ZodTypeAny, {
153
+ path: string;
154
+ kind: "localPath";
155
+ }, {
156
+ path: string;
157
+ kind: "localPath";
158
+ }>, z.ZodObject<{
159
+ kind: z.ZodLiteral<"url">;
160
+ url: z.ZodString;
161
+ /** 可选:内容校验和(P2-12 / 供应链可信度)。url 装需 policy allowUrlSkillInstall。 */
162
+ sha256: z.ZodOptional<z.ZodString>;
163
+ }, "strip", z.ZodTypeAny, {
164
+ kind: "url";
165
+ url: string;
166
+ sha256?: string | undefined;
167
+ }, {
168
+ kind: "url";
169
+ url: string;
170
+ sha256?: string | undefined;
171
+ }>]>;
172
+ }, "strip", z.ZodTypeAny, {
173
+ agent: string & z.BRAND<"AgentId">;
174
+ name: string;
175
+ scope: "project" | "global";
176
+ source: {
177
+ kind: "inline";
178
+ files: Record<string, string>;
179
+ } | {
180
+ kind: "archive";
181
+ format: "tar.gz";
182
+ contentBase64: string;
183
+ sizeBytes?: number | undefined;
184
+ sha256?: string | undefined;
185
+ } | {
186
+ path: string;
187
+ kind: "localPath";
188
+ } | {
189
+ kind: "url";
190
+ url: string;
191
+ sha256?: string | undefined;
192
+ };
193
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
194
+ }, {
195
+ agent: string;
196
+ name: string;
197
+ scope: "project" | "global";
198
+ source: {
199
+ kind: "inline";
200
+ files: Record<string, string>;
201
+ } | {
202
+ kind: "archive";
203
+ format: "tar.gz";
204
+ contentBase64: string;
205
+ sizeBytes?: number | undefined;
206
+ sha256?: string | undefined;
207
+ } | {
208
+ path: string;
209
+ kind: "localPath";
210
+ } | {
211
+ kind: "url";
212
+ url: string;
213
+ sha256?: string | undefined;
214
+ };
215
+ projectId?: string | undefined;
216
+ }>, {
217
+ agent: string & z.BRAND<"AgentId">;
218
+ name: string;
219
+ scope: "project" | "global";
220
+ source: {
221
+ kind: "inline";
222
+ files: Record<string, string>;
223
+ } | {
224
+ kind: "archive";
225
+ format: "tar.gz";
226
+ contentBase64: string;
227
+ sizeBytes?: number | undefined;
228
+ sha256?: string | undefined;
229
+ } | {
230
+ path: string;
231
+ kind: "localPath";
232
+ } | {
233
+ kind: "url";
234
+ url: string;
235
+ sha256?: string | undefined;
236
+ };
237
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
238
+ }, {
239
+ agent: string;
240
+ name: string;
241
+ scope: "project" | "global";
242
+ source: {
243
+ kind: "inline";
244
+ files: Record<string, string>;
245
+ } | {
246
+ kind: "archive";
247
+ format: "tar.gz";
248
+ contentBase64: string;
249
+ sizeBytes?: number | undefined;
250
+ sha256?: string | undefined;
251
+ } | {
252
+ path: string;
253
+ kind: "localPath";
254
+ } | {
255
+ kind: "url";
256
+ url: string;
257
+ sha256?: string | undefined;
258
+ };
259
+ projectId?: string | undefined;
260
+ }>;
261
+ export type SkillInstallParams = z.infer<typeof SkillInstallParams>;
262
+ export declare const SkillInstallResult: z.ZodObject<{
263
+ skill: z.ZodObject<{
264
+ /** skill 名/key。 */
265
+ name: z.ZodString;
266
+ /** 归属哪个 agent。 */
267
+ agent: z.ZodBranded<z.ZodString, "AgentId">;
268
+ scope: z.ZodEnum<["global", "project"]>;
269
+ /** scope=project 时所属项目。 */
270
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
271
+ /** 版本(P2-12,同名冲突可辨)。 */
272
+ version: z.ZodOptional<z.ZodString>;
273
+ /** 内容 hash(P2-12,可复现/防篡改)。 */
274
+ hash: z.ZodOptional<z.ZodString>;
275
+ /** 适配的 agent(某些 skill 只适 OpenClaw 不适 Codex)。 */
276
+ compatibleAgents: z.ZodOptional<z.ZodArray<z.ZodBranded<z.ZodString, "AgentId">, "many">>;
277
+ /** 来源是否可信(本地/内联=可信,url=需校验)。 */
278
+ sourceTrusted: z.ZodOptional<z.ZodBoolean>;
279
+ /** 安装落地路径(设备本地)。 */
280
+ installedPath: z.ZodOptional<z.ZodString>;
281
+ installedAt: z.ZodOptional<z.ZodString>;
282
+ }, "strip", z.ZodTypeAny, {
283
+ agent: string & z.BRAND<"AgentId">;
284
+ name: string;
285
+ scope: "project" | "global";
286
+ version?: string | undefined;
287
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
288
+ hash?: string | undefined;
289
+ compatibleAgents?: (string & z.BRAND<"AgentId">)[] | undefined;
290
+ sourceTrusted?: boolean | undefined;
291
+ installedPath?: string | undefined;
292
+ installedAt?: string | undefined;
293
+ }, {
294
+ agent: string;
295
+ name: string;
296
+ scope: "project" | "global";
297
+ version?: string | undefined;
298
+ projectId?: string | undefined;
299
+ hash?: string | undefined;
300
+ compatibleAgents?: string[] | undefined;
301
+ sourceTrusted?: boolean | undefined;
302
+ installedPath?: string | undefined;
303
+ installedAt?: string | undefined;
304
+ }>;
305
+ }, "strip", z.ZodTypeAny, {
306
+ skill: {
307
+ agent: string & z.BRAND<"AgentId">;
308
+ name: string;
309
+ scope: "project" | "global";
310
+ version?: string | undefined;
311
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
312
+ hash?: string | undefined;
313
+ compatibleAgents?: (string & z.BRAND<"AgentId">)[] | undefined;
314
+ sourceTrusted?: boolean | undefined;
315
+ installedPath?: string | undefined;
316
+ installedAt?: string | undefined;
317
+ };
318
+ }, {
319
+ skill: {
320
+ agent: string;
321
+ name: string;
322
+ scope: "project" | "global";
323
+ version?: string | undefined;
324
+ projectId?: string | undefined;
325
+ hash?: string | undefined;
326
+ compatibleAgents?: string[] | undefined;
327
+ sourceTrusted?: boolean | undefined;
328
+ installedPath?: string | undefined;
329
+ installedAt?: string | undefined;
330
+ };
331
+ }>;
332
+ export type SkillInstallResult = z.infer<typeof SkillInstallResult>;
333
+ export declare const SkillUninstallParams: z.ZodEffects<z.ZodObject<{
334
+ agent: z.ZodBranded<z.ZodString, "AgentId">;
335
+ name: z.ZodString;
336
+ scope: z.ZodEnum<["global", "project"]>;
337
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
338
+ }, "strip", z.ZodTypeAny, {
339
+ agent: string & z.BRAND<"AgentId">;
340
+ name: string;
341
+ scope: "project" | "global";
342
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
343
+ }, {
344
+ agent: string;
345
+ name: string;
346
+ scope: "project" | "global";
347
+ projectId?: string | undefined;
348
+ }>, {
349
+ agent: string & z.BRAND<"AgentId">;
350
+ name: string;
351
+ scope: "project" | "global";
352
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
353
+ }, {
354
+ agent: string;
355
+ name: string;
356
+ scope: "project" | "global";
357
+ projectId?: string | undefined;
358
+ }>;
359
+ export type SkillUninstallParams = z.infer<typeof SkillUninstallParams>;
360
+ export declare const SkillUninstallResult: z.ZodObject<{
361
+ agent: z.ZodBranded<z.ZodString, "AgentId">;
362
+ name: z.ZodString;
363
+ scope: z.ZodEnum<["global", "project"]>;
364
+ uninstalled: z.ZodLiteral<true>;
365
+ }, "strip", z.ZodTypeAny, {
366
+ agent: string & z.BRAND<"AgentId">;
367
+ name: string;
368
+ scope: "project" | "global";
369
+ uninstalled: true;
370
+ }, {
371
+ agent: string;
372
+ name: string;
373
+ scope: "project" | "global";
374
+ uninstalled: true;
375
+ }>;
376
+ export type SkillUninstallResult = z.infer<typeof SkillUninstallResult>;
377
+ export declare const SkillListParams: z.ZodObject<{
378
+ /** 可选:按 agent 过滤。 */
379
+ agent: z.ZodOptional<z.ZodBranded<z.ZodString, "AgentId">>;
380
+ /** 可选:按 scope 过滤。 */
381
+ scope: z.ZodOptional<z.ZodEnum<["global", "project"]>>;
382
+ /** 可选:按项目过滤(看某项目可见的 skill)。 */
383
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
384
+ }, "strip", z.ZodTypeAny, {
385
+ agent?: (string & z.BRAND<"AgentId">) | undefined;
386
+ scope?: "project" | "global" | undefined;
387
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
388
+ }, {
389
+ agent?: string | undefined;
390
+ scope?: "project" | "global" | undefined;
391
+ projectId?: string | undefined;
392
+ }>;
393
+ export type SkillListParams = z.infer<typeof SkillListParams>;
394
+ export declare const SkillListResult: z.ZodObject<{
395
+ skills: z.ZodArray<z.ZodObject<{
396
+ /** skill 名/key。 */
397
+ name: z.ZodString;
398
+ /** 归属哪个 agent。 */
399
+ agent: z.ZodBranded<z.ZodString, "AgentId">;
400
+ scope: z.ZodEnum<["global", "project"]>;
401
+ /** scope=project 时所属项目。 */
402
+ projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
403
+ /** 版本(P2-12,同名冲突可辨)。 */
404
+ version: z.ZodOptional<z.ZodString>;
405
+ /** 内容 hash(P2-12,可复现/防篡改)。 */
406
+ hash: z.ZodOptional<z.ZodString>;
407
+ /** 适配的 agent(某些 skill 只适 OpenClaw 不适 Codex)。 */
408
+ compatibleAgents: z.ZodOptional<z.ZodArray<z.ZodBranded<z.ZodString, "AgentId">, "many">>;
409
+ /** 来源是否可信(本地/内联=可信,url=需校验)。 */
410
+ sourceTrusted: z.ZodOptional<z.ZodBoolean>;
411
+ /** 安装落地路径(设备本地)。 */
412
+ installedPath: z.ZodOptional<z.ZodString>;
413
+ installedAt: z.ZodOptional<z.ZodString>;
414
+ }, "strip", z.ZodTypeAny, {
415
+ agent: string & z.BRAND<"AgentId">;
416
+ name: string;
417
+ scope: "project" | "global";
418
+ version?: string | undefined;
419
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
420
+ hash?: string | undefined;
421
+ compatibleAgents?: (string & z.BRAND<"AgentId">)[] | undefined;
422
+ sourceTrusted?: boolean | undefined;
423
+ installedPath?: string | undefined;
424
+ installedAt?: string | undefined;
425
+ }, {
426
+ agent: string;
427
+ name: string;
428
+ scope: "project" | "global";
429
+ version?: string | undefined;
430
+ projectId?: string | undefined;
431
+ hash?: string | undefined;
432
+ compatibleAgents?: string[] | undefined;
433
+ sourceTrusted?: boolean | undefined;
434
+ installedPath?: string | undefined;
435
+ installedAt?: string | undefined;
436
+ }>, "many">;
437
+ }, "strip", z.ZodTypeAny, {
438
+ skills: {
439
+ agent: string & z.BRAND<"AgentId">;
440
+ name: string;
441
+ scope: "project" | "global";
442
+ version?: string | undefined;
443
+ projectId?: (string & z.BRAND<"ProjectId">) | undefined;
444
+ hash?: string | undefined;
445
+ compatibleAgents?: (string & z.BRAND<"AgentId">)[] | undefined;
446
+ sourceTrusted?: boolean | undefined;
447
+ installedPath?: string | undefined;
448
+ installedAt?: string | undefined;
449
+ }[];
450
+ }, {
451
+ skills: {
452
+ agent: string;
453
+ name: string;
454
+ scope: "project" | "global";
455
+ version?: string | undefined;
456
+ projectId?: string | undefined;
457
+ hash?: string | undefined;
458
+ compatibleAgents?: string[] | undefined;
459
+ sourceTrusted?: boolean | undefined;
460
+ installedPath?: string | undefined;
461
+ installedAt?: string | undefined;
462
+ }[];
463
+ }>;
464
+ export type SkillListResult = z.infer<typeof SkillListResult>;
465
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/schemas/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;GAQG;AAEH,eAAO,MAAM,UAAU,kCAAgC,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,gCAAgC;AAChC,eAAO,MAAM,WAAW;;;;;;;;;;;IAIpB,mDAAmD;;;IAGnD,yCAAyC;;IAEzC,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;IAO5C,mEAAmE;;;;;;;;;;IAGrE,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,qBAAqB;AACrB,eAAO,MAAM,eAAe;IAC1B,mBAAmB;;IAEnB,kBAAkB;;;IAGlB,2BAA2B;;IAE3B,wBAAwB;;IAExB,8BAA8B;;IAE9B,gDAAgD;;IAEhD,gCAAgC;;IAEhC,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;EAGpB,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAG9D,eAAO,MAAM,kBAAkB;IAE3B,gBAAgB;;;;IAIhB,yBAAyB;;;;;;;;;;;;;QAhDzB,mDAAmD;;;QAGnD,yCAAyC;;QAEzC,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;QAO5C,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CnE,CAAC;AACL,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,kBAAkB;;QAtC7B,mBAAmB;;QAEnB,kBAAkB;;;QAGlB,2BAA2B;;QAE3B,wBAAwB;;QAExB,8BAA8B;;QAE9B,gDAAgD;;QAEhD,gCAAgC;;QAEhC,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBpB,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAGpE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAC;AACL,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAGxE,eAAO,MAAM,eAAe;IAC1B,qBAAqB;;IAErB,qBAAqB;;IAErB,+BAA+B;;;;;;;;;;EAE/B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,eAAe;;QA5E1B,mBAAmB;;QAEnB,kBAAkB;;;QAGlB,2BAA2B;;QAE3B,wBAAwB;;QAExB,8BAA8B;;QAE9B,gDAAgD;;QAEhD,gCAAgC;;QAEhC,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DpB,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,103 @@
1
+ import { z } from "zod";
2
+ import { AgentId, ProjectId, Timestamp } from "./common.js";
3
+ /**
4
+ * Skill 管理协议(design D24)。
5
+ *
6
+ * 给指定 agent 安装/卸载 skill,支持两级 scope:
7
+ * - global : agent 全局,对该 agent 所有项目可见
8
+ * - project : 项目级,仅对某 projectId 可见(需 projectId)
9
+ *
10
+ * 每个 agent 靠 capability `skillManagement` 声明是否支持;不支持 → errCapabilityUnsupported。
11
+ */
12
+ export const SkillScope = z.enum(["global", "project"]);
13
+ /** skill 来源:内联内容、本地路径、或远端引用。 */
14
+ export const SkillSource = z.union([
15
+ z.object({ kind: z.literal("inline"), files: z.record(z.string()) }), // path → content
16
+ z.object({
17
+ kind: z.literal("archive"),
18
+ /** v0 先支持 tar.gz;zip/archiveUrl 后续再加,避免安全边界没收稳。 */
19
+ format: z.literal("tar.gz"),
20
+ contentBase64: z.string().min(1),
21
+ /** 强烈建议传;phonon 会校验内容 hash,防传输/供应链篡改。 */
22
+ sha256: z.string().optional(),
23
+ /** 可选大小提示,便于 policy/日志;实际大小以 decode 后为准。 */
24
+ sizeBytes: z.number().int().positive().optional(),
25
+ }),
26
+ z.object({ kind: z.literal("localPath"), path: z.string().min(1) }),
27
+ z.object({
28
+ kind: z.literal("url"),
29
+ url: z.string().min(1),
30
+ /** 可选:内容校验和(P2-12 / 供应链可信度)。url 装需 policy allowUrlSkillInstall。 */
31
+ sha256: z.string().optional(),
32
+ }),
33
+ ]);
34
+ /** 已安装 skill 的描述。 */
35
+ export const SkillDescriptor = z.object({
36
+ /** skill 名/key。 */
37
+ name: z.string().min(1),
38
+ /** 归属哪个 agent。 */
39
+ agent: AgentId,
40
+ scope: SkillScope,
41
+ /** scope=project 时所属项目。 */
42
+ projectId: ProjectId.optional(),
43
+ /** 版本(P2-12,同名冲突可辨)。 */
44
+ version: z.string().optional(),
45
+ /** 内容 hash(P2-12,可复现/防篡改)。 */
46
+ hash: z.string().optional(),
47
+ /** 适配的 agent(某些 skill 只适 OpenClaw 不适 Codex)。 */
48
+ compatibleAgents: z.array(AgentId).optional(),
49
+ /** 来源是否可信(本地/内联=可信,url=需校验)。 */
50
+ sourceTrusted: z.boolean().optional(),
51
+ /** 安装落地路径(设备本地)。 */
52
+ installedPath: z.string().optional(),
53
+ installedAt: Timestamp.optional(),
54
+ });
55
+ // --- skill.install ---
56
+ export const SkillInstallParams = z
57
+ .object({
58
+ /** 目标 agent。 */
59
+ agent: AgentId,
60
+ name: z.string().min(1),
61
+ scope: SkillScope,
62
+ /** scope=project 时必填。 */
63
+ projectId: ProjectId.optional(),
64
+ source: SkillSource,
65
+ })
66
+ .refine((v) => v.scope !== "project" || !!v.projectId, {
67
+ message: "scope=project requires projectId",
68
+ path: ["projectId"],
69
+ });
70
+ export const SkillInstallResult = z.object({
71
+ skill: SkillDescriptor,
72
+ });
73
+ // --- skill.uninstall ---
74
+ export const SkillUninstallParams = z
75
+ .object({
76
+ agent: AgentId,
77
+ name: z.string().min(1),
78
+ scope: SkillScope,
79
+ projectId: ProjectId.optional(),
80
+ })
81
+ .refine((v) => v.scope !== "project" || !!v.projectId, {
82
+ message: "scope=project requires projectId",
83
+ path: ["projectId"],
84
+ });
85
+ export const SkillUninstallResult = z.object({
86
+ agent: AgentId,
87
+ name: z.string(),
88
+ scope: SkillScope,
89
+ uninstalled: z.literal(true),
90
+ });
91
+ // --- skill.list ---
92
+ export const SkillListParams = z.object({
93
+ /** 可选:按 agent 过滤。 */
94
+ agent: AgentId.optional(),
95
+ /** 可选:按 scope 过滤。 */
96
+ scope: SkillScope.optional(),
97
+ /** 可选:按项目过滤(看某项目可见的 skill)。 */
98
+ projectId: ProjectId.optional(),
99
+ });
100
+ export const SkillListResult = z.object({
101
+ skills: z.array(SkillDescriptor),
102
+ });
103
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/schemas/skill.ts"],"names":[],"mappings":"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"}