@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 @@
|
|
|
1
|
+
{"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../src/schemas/methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqGxB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6RV,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAC;AAC9C,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;AAEtD,uBAAuB;AACvB,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpF,uBAAuB;AACvB,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEpF,wBAAwB;AACxB,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAC9C,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,OAAO,GACZ,QAAQ,CAAC,CAAC,CAAC,CAEb;AAED,wBAAwB;AACxB,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAC9C,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,OAAO,GACZ,QAAQ,CAAC,CAAC,CAAC,CAEb;AAED,oBAAoB;AACpB,eAAO,MAAM,YAAY,EAA2B,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ConnectHelloParams, ConnectWelcomeResult, } from "./connect.js";
|
|
3
|
+
import { DiscoveryListParams, DiscoveryListResult, DiscoveryGetParams, DiscoveryGetResult, DiscoveryChangedParams, } from "./discovery.js";
|
|
4
|
+
import { SessionCreateParams, SessionCreateResult, SessionSendParams, SessionSendAck, SessionInjectParams, SessionInjectResult, SessionCompressParams, SessionCompressResult, SessionSwitchModelParams, SessionSwitchModelResult, SessionInterruptParams, SessionInterruptResult, SessionTerminateParams, SessionTerminateResult, SessionStatusParams, SessionStatusResult, SessionListParams, SessionListResult, } from "./session.js";
|
|
5
|
+
import { StreamEvent, StreamAckParams } from "./stream.js";
|
|
6
|
+
import { HookFiredParams, HookResolveParams, HookResolveResult, } from "./hook.js";
|
|
7
|
+
import { DocumentSendParams, DocumentSendResult, DocumentPrepareUploadParams, DocumentPrepareUploadResult } from "./document.js";
|
|
8
|
+
import { InteractionRequestParams, InteractionRequestResult, InteractionResponseParams, InteractionCancelParams, InteractionCancelResult, } from "./interaction.js";
|
|
9
|
+
import { ProjectCreateParams, ProjectCreateResult, ProjectListParams, ProjectListResult, ProjectGetParams, ProjectGetResult, ProjectRemoveParams, ProjectRemoveResult, WorktreeCreateParams, WorktreeCreateResult, WorktreeListParams, WorktreeListResult, WorktreeRemoveParams, WorktreeRemoveResult, GitDeleteBranchParams, GitDeleteBranchResult, } from "./project.js";
|
|
10
|
+
import { SkillInstallParams, SkillInstallResult, SkillUninstallParams, SkillUninstallResult, SkillListParams, SkillListResult, } from "./skill.js";
|
|
11
|
+
import { DeviceInfoParams, DeviceInfoResult, DeviceResourcesParams, DeviceResourcesResult } from "./device.js";
|
|
12
|
+
import { FileReadParams, FileReadResult, FileWriteParams, FileWriteResult, FileListParams, FileListResult, FileStatParams, FileStatResult, FileMkdirParams, FileMkdirResult, } from "./file.js";
|
|
13
|
+
import { EnvSetParams, EnvSetResult, EnvListParams, EnvListResult, EnvDeleteParams, EnvDeleteResult } from "./env.js";
|
|
14
|
+
/**
|
|
15
|
+
* 方法注册表(design 全协议的单一事实来源)。
|
|
16
|
+
*
|
|
17
|
+
* 每个方法声明:
|
|
18
|
+
* - direction: 谁是 requester
|
|
19
|
+
* s2p = server → phonon (服务端下发操作)
|
|
20
|
+
* p2s = phonon → server (设备上报结果/事件/发现)
|
|
21
|
+
* - kind: "request"(需响应)| "notification"(无响应)
|
|
22
|
+
* - params / result 的 zod schema
|
|
23
|
+
*
|
|
24
|
+
* core 与 client-sdk 都 import 本表,确保两端对齐、可机器校验。
|
|
25
|
+
*/
|
|
26
|
+
const z_void = z.undefined();
|
|
27
|
+
export const METHODS = {
|
|
28
|
+
// --- 握手(phonon 拨出后先发)---
|
|
29
|
+
"connect.hello": {
|
|
30
|
+
direction: "p2s",
|
|
31
|
+
kind: "request",
|
|
32
|
+
params: ConnectHelloParams,
|
|
33
|
+
result: ConnectWelcomeResult,
|
|
34
|
+
},
|
|
35
|
+
// --- 设备级信息与可观测(server 查询)---
|
|
36
|
+
"device.info": {
|
|
37
|
+
direction: "s2p",
|
|
38
|
+
kind: "request",
|
|
39
|
+
params: DeviceInfoParams,
|
|
40
|
+
result: DeviceInfoResult,
|
|
41
|
+
},
|
|
42
|
+
"device.resources": {
|
|
43
|
+
direction: "s2p",
|
|
44
|
+
kind: "request",
|
|
45
|
+
params: DeviceResourcesParams,
|
|
46
|
+
result: DeviceResourcesResult,
|
|
47
|
+
},
|
|
48
|
+
// --- 发现(server 查询;phonon 主动推变更)---
|
|
49
|
+
"discovery.list": {
|
|
50
|
+
direction: "s2p",
|
|
51
|
+
kind: "request",
|
|
52
|
+
params: DiscoveryListParams,
|
|
53
|
+
result: DiscoveryListResult,
|
|
54
|
+
},
|
|
55
|
+
"discovery.get": {
|
|
56
|
+
direction: "s2p",
|
|
57
|
+
kind: "request",
|
|
58
|
+
params: DiscoveryGetParams,
|
|
59
|
+
result: DiscoveryGetResult,
|
|
60
|
+
},
|
|
61
|
+
"discovery.changed": {
|
|
62
|
+
direction: "p2s",
|
|
63
|
+
kind: "notification",
|
|
64
|
+
params: DiscoveryChangedParams,
|
|
65
|
+
result: z_void,
|
|
66
|
+
},
|
|
67
|
+
// --- session 原语(server 下发)---
|
|
68
|
+
"session.create": {
|
|
69
|
+
direction: "s2p",
|
|
70
|
+
kind: "request",
|
|
71
|
+
params: SessionCreateParams,
|
|
72
|
+
result: SessionCreateResult,
|
|
73
|
+
},
|
|
74
|
+
"session.send": {
|
|
75
|
+
direction: "s2p",
|
|
76
|
+
kind: "request",
|
|
77
|
+
params: SessionSendParams,
|
|
78
|
+
result: SessionSendAck,
|
|
79
|
+
},
|
|
80
|
+
"session.inject": {
|
|
81
|
+
direction: "s2p",
|
|
82
|
+
kind: "request",
|
|
83
|
+
params: SessionInjectParams,
|
|
84
|
+
result: SessionInjectResult,
|
|
85
|
+
},
|
|
86
|
+
"session.compress": {
|
|
87
|
+
direction: "s2p",
|
|
88
|
+
kind: "request",
|
|
89
|
+
params: SessionCompressParams,
|
|
90
|
+
result: SessionCompressResult,
|
|
91
|
+
},
|
|
92
|
+
"session.switchModel": {
|
|
93
|
+
direction: "s2p",
|
|
94
|
+
kind: "request",
|
|
95
|
+
params: SessionSwitchModelParams,
|
|
96
|
+
result: SessionSwitchModelResult,
|
|
97
|
+
},
|
|
98
|
+
"session.interrupt": {
|
|
99
|
+
direction: "s2p",
|
|
100
|
+
kind: "request",
|
|
101
|
+
params: SessionInterruptParams,
|
|
102
|
+
result: SessionInterruptResult,
|
|
103
|
+
},
|
|
104
|
+
"session.terminate": {
|
|
105
|
+
direction: "s2p",
|
|
106
|
+
kind: "request",
|
|
107
|
+
params: SessionTerminateParams,
|
|
108
|
+
result: SessionTerminateResult,
|
|
109
|
+
},
|
|
110
|
+
"session.status": {
|
|
111
|
+
direction: "s2p",
|
|
112
|
+
kind: "request",
|
|
113
|
+
params: SessionStatusParams,
|
|
114
|
+
result: SessionStatusResult,
|
|
115
|
+
},
|
|
116
|
+
"session.list": {
|
|
117
|
+
direction: "s2p",
|
|
118
|
+
kind: "request",
|
|
119
|
+
params: SessionListParams,
|
|
120
|
+
result: SessionListResult,
|
|
121
|
+
},
|
|
122
|
+
// --- 流式结果(phonon 上推;无响应)---
|
|
123
|
+
"stream.event": {
|
|
124
|
+
direction: "p2s",
|
|
125
|
+
kind: "notification",
|
|
126
|
+
params: StreamEvent,
|
|
127
|
+
result: z_void,
|
|
128
|
+
},
|
|
129
|
+
// --- 流式 ack(server 确认 seq,phonon 据此清 outbox,P0-4)---
|
|
130
|
+
"stream.ack": {
|
|
131
|
+
direction: "s2p",
|
|
132
|
+
kind: "notification",
|
|
133
|
+
params: StreamAckParams,
|
|
134
|
+
result: z_void,
|
|
135
|
+
},
|
|
136
|
+
// --- hook / HITL ---
|
|
137
|
+
"hook.fired": {
|
|
138
|
+
direction: "p2s",
|
|
139
|
+
kind: "request", // phonon 发起、阻塞等 server 裁决
|
|
140
|
+
params: HookFiredParams,
|
|
141
|
+
result: HookResolveResult,
|
|
142
|
+
},
|
|
143
|
+
"hook.resolve": {
|
|
144
|
+
direction: "s2p",
|
|
145
|
+
kind: "request",
|
|
146
|
+
params: HookResolveParams,
|
|
147
|
+
result: HookResolveResult,
|
|
148
|
+
},
|
|
149
|
+
// --- 文档交换(agent emit 指令 → phonon 读本地文件 → 上传,平面③ / D20)---
|
|
150
|
+
"document.send": {
|
|
151
|
+
direction: "p2s",
|
|
152
|
+
kind: "request",
|
|
153
|
+
params: DocumentSendParams,
|
|
154
|
+
result: DocumentSendResult,
|
|
155
|
+
},
|
|
156
|
+
"document.prepare_upload": {
|
|
157
|
+
direction: "p2s",
|
|
158
|
+
kind: "request", // 大文件凭证上传(P1-6)
|
|
159
|
+
params: DocumentPrepareUploadParams,
|
|
160
|
+
result: DocumentPrepareUploadResult,
|
|
161
|
+
},
|
|
162
|
+
// --- 人机交互(表单/卡片,agent主动或HITL发起,平面③ / D21)---
|
|
163
|
+
"interaction.request": {
|
|
164
|
+
direction: "p2s",
|
|
165
|
+
kind: "request", // blocking 时阻塞等人回填
|
|
166
|
+
params: InteractionRequestParams,
|
|
167
|
+
result: InteractionRequestResult,
|
|
168
|
+
},
|
|
169
|
+
"interaction.response": {
|
|
170
|
+
direction: "s2p",
|
|
171
|
+
kind: "notification", // 异步/非阻塞回填走这条
|
|
172
|
+
params: InteractionResponseParams,
|
|
173
|
+
result: z_void,
|
|
174
|
+
},
|
|
175
|
+
"interaction.cancel": {
|
|
176
|
+
direction: "s2p",
|
|
177
|
+
kind: "request", // 主动取消一个 pending 交互(P1-5)
|
|
178
|
+
params: InteractionCancelParams,
|
|
179
|
+
result: InteractionCancelResult,
|
|
180
|
+
},
|
|
181
|
+
// --- 项目管理(目录 + Git;server 下发,D23)---
|
|
182
|
+
"project.create": {
|
|
183
|
+
direction: "s2p",
|
|
184
|
+
kind: "request",
|
|
185
|
+
params: ProjectCreateParams,
|
|
186
|
+
result: ProjectCreateResult,
|
|
187
|
+
},
|
|
188
|
+
"project.list": {
|
|
189
|
+
direction: "s2p",
|
|
190
|
+
kind: "request",
|
|
191
|
+
params: ProjectListParams,
|
|
192
|
+
result: ProjectListResult,
|
|
193
|
+
},
|
|
194
|
+
"project.get": {
|
|
195
|
+
direction: "s2p",
|
|
196
|
+
kind: "request",
|
|
197
|
+
params: ProjectGetParams,
|
|
198
|
+
result: ProjectGetResult,
|
|
199
|
+
},
|
|
200
|
+
"project.remove": {
|
|
201
|
+
direction: "s2p",
|
|
202
|
+
kind: "request",
|
|
203
|
+
params: ProjectRemoveParams,
|
|
204
|
+
result: ProjectRemoveResult,
|
|
205
|
+
},
|
|
206
|
+
// --- worktree / git 子能力(D25)---
|
|
207
|
+
"project.worktree.create": {
|
|
208
|
+
direction: "s2p",
|
|
209
|
+
kind: "request",
|
|
210
|
+
params: WorktreeCreateParams,
|
|
211
|
+
result: WorktreeCreateResult,
|
|
212
|
+
},
|
|
213
|
+
"project.worktree.list": {
|
|
214
|
+
direction: "s2p",
|
|
215
|
+
kind: "request",
|
|
216
|
+
params: WorktreeListParams,
|
|
217
|
+
result: WorktreeListResult,
|
|
218
|
+
},
|
|
219
|
+
"project.worktree.remove": {
|
|
220
|
+
direction: "s2p",
|
|
221
|
+
kind: "request",
|
|
222
|
+
params: WorktreeRemoveParams,
|
|
223
|
+
result: WorktreeRemoveResult,
|
|
224
|
+
},
|
|
225
|
+
"project.git.deleteBranch": {
|
|
226
|
+
direction: "s2p",
|
|
227
|
+
kind: "request",
|
|
228
|
+
params: GitDeleteBranchParams,
|
|
229
|
+
result: GitDeleteBranchResult,
|
|
230
|
+
},
|
|
231
|
+
// --- 受控工作区文件读写(server 下发,project/worktree scoped)---
|
|
232
|
+
"file.read": {
|
|
233
|
+
direction: "s2p",
|
|
234
|
+
kind: "request",
|
|
235
|
+
params: FileReadParams,
|
|
236
|
+
result: FileReadResult,
|
|
237
|
+
},
|
|
238
|
+
"file.write": {
|
|
239
|
+
direction: "s2p",
|
|
240
|
+
kind: "request",
|
|
241
|
+
params: FileWriteParams,
|
|
242
|
+
result: FileWriteResult,
|
|
243
|
+
},
|
|
244
|
+
"file.list": {
|
|
245
|
+
direction: "s2p",
|
|
246
|
+
kind: "request",
|
|
247
|
+
params: FileListParams,
|
|
248
|
+
result: FileListResult,
|
|
249
|
+
},
|
|
250
|
+
"file.stat": {
|
|
251
|
+
direction: "s2p",
|
|
252
|
+
kind: "request",
|
|
253
|
+
params: FileStatParams,
|
|
254
|
+
result: FileStatResult,
|
|
255
|
+
},
|
|
256
|
+
"file.mkdir": {
|
|
257
|
+
direction: "s2p",
|
|
258
|
+
kind: "request",
|
|
259
|
+
params: FileMkdirParams,
|
|
260
|
+
result: FileMkdirResult,
|
|
261
|
+
},
|
|
262
|
+
// --- 环境变量配置(skill/agent 运行环境,默认脱敏)---
|
|
263
|
+
"env.set": {
|
|
264
|
+
direction: "s2p",
|
|
265
|
+
kind: "request",
|
|
266
|
+
params: EnvSetParams,
|
|
267
|
+
result: EnvSetResult,
|
|
268
|
+
},
|
|
269
|
+
"env.list": {
|
|
270
|
+
direction: "s2p",
|
|
271
|
+
kind: "request",
|
|
272
|
+
params: EnvListParams,
|
|
273
|
+
result: EnvListResult,
|
|
274
|
+
},
|
|
275
|
+
"env.delete": {
|
|
276
|
+
direction: "s2p",
|
|
277
|
+
kind: "request",
|
|
278
|
+
params: EnvDeleteParams,
|
|
279
|
+
result: EnvDeleteResult,
|
|
280
|
+
},
|
|
281
|
+
// --- skill 管理(给 agent 装/卸 skill,global|project 两级,D24)---
|
|
282
|
+
"skill.install": {
|
|
283
|
+
direction: "s2p",
|
|
284
|
+
kind: "request",
|
|
285
|
+
params: SkillInstallParams,
|
|
286
|
+
result: SkillInstallResult,
|
|
287
|
+
},
|
|
288
|
+
"skill.uninstall": {
|
|
289
|
+
direction: "s2p",
|
|
290
|
+
kind: "request",
|
|
291
|
+
params: SkillUninstallParams,
|
|
292
|
+
result: SkillUninstallResult,
|
|
293
|
+
},
|
|
294
|
+
"skill.list": {
|
|
295
|
+
direction: "s2p",
|
|
296
|
+
kind: "request",
|
|
297
|
+
params: SkillListParams,
|
|
298
|
+
result: SkillListResult,
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
/** 运行时校验某方法的 params。 */
|
|
302
|
+
export function parseParams(method, data) {
|
|
303
|
+
return METHODS[method].params.parse(data);
|
|
304
|
+
}
|
|
305
|
+
/** 运行时校验某方法的 result。 */
|
|
306
|
+
export function parseResult(method, data) {
|
|
307
|
+
return METHODS[method].result.parse(data);
|
|
308
|
+
}
|
|
309
|
+
/** 全部方法名(运行时数组)。 */
|
|
310
|
+
export const METHOD_NAMES = Object.keys(METHODS);
|
|
311
|
+
//# sourceMappingURL=methods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/schemas/methods.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* 本地安全策略(design D27 / review P0-1)。
|
|
4
|
+
*
|
|
5
|
+
* phonon 不做终端用户鉴权(那是服务端的事),但**必须有设备主人配置的本地授权边界**——
|
|
6
|
+
* 否则任意接入的 server 都能让本地 agent 读任意文件、装任意 skill、删 worktree。
|
|
7
|
+
*
|
|
8
|
+
* 这是「设备 policy」,不是「用户鉴权」。每个 tenant 一份,phonon 在执行前据此拦截。
|
|
9
|
+
* 这些是本地配置,不进 device→server 的线协议;放协议包是为了类型共享与校验。
|
|
10
|
+
*/
|
|
11
|
+
/** 单个 tenant 的本地授权边界。 */
|
|
12
|
+
export declare const TenantPolicy: z.ZodObject<{
|
|
13
|
+
/** 允许操作的项目根目录白名单(绝对路径)。document/project 路径必须落在其下。 */
|
|
14
|
+
allowedProjectRoots: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
15
|
+
/** 允许使用的 agent 白名单;空 = 不限制。 */
|
|
16
|
+
allowedAgents: z.ZodDefault<z.ZodArray<z.ZodBranded<z.ZodString, "AgentId">, "many">>;
|
|
17
|
+
/** 允许的方法白名单;空 = 全允许。用它可表达「只读租户」(只放查询类方法)。 */
|
|
18
|
+
allowedMethods: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
19
|
+
/** 是否允许全局 skill 安装(影响该 agent 所有项目,危险)。默认 false。 */
|
|
20
|
+
allowGlobalSkillInstall: z.ZodDefault<z.ZodBoolean>;
|
|
21
|
+
/** 是否允许从 url 安装 skill(供应链入口,危险)。默认 false。 */
|
|
22
|
+
allowUrlSkillInstall: z.ZodDefault<z.ZodBoolean>;
|
|
23
|
+
/** 是否允许物理删盘(project.remove deleteFiles / worktree force 等)。默认 false。 */
|
|
24
|
+
allowDeleteFiles: z.ZodDefault<z.ZodBoolean>;
|
|
25
|
+
/** document.send 是否允许发送项目/worktree 目录之外的文件。默认 false(project-scoped)。 */
|
|
26
|
+
allowExternalDocuments: z.ZodDefault<z.ZodBoolean>;
|
|
27
|
+
/** env.list reveal=true 是否允许返回环境变量明文。默认 false(只能脱敏查看)。 */
|
|
28
|
+
allowEnvReveal: z.ZodDefault<z.ZodBoolean>;
|
|
29
|
+
/** 单文件上传上限(字节);超出走 prepare_upload 或拒绝。 */
|
|
30
|
+
maxUploadBytes: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
/** 敏感路径黑名单(即使在 allowedProjectRoots 内也拒绝,如 .ssh/.aws/.env)。 */
|
|
32
|
+
denyPathPatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
|
34
|
+
allowedProjectRoots: string[];
|
|
35
|
+
allowedAgents: (string & z.BRAND<"AgentId">)[];
|
|
36
|
+
allowedMethods: string[];
|
|
37
|
+
allowGlobalSkillInstall: boolean;
|
|
38
|
+
allowUrlSkillInstall: boolean;
|
|
39
|
+
allowDeleteFiles: boolean;
|
|
40
|
+
allowExternalDocuments: boolean;
|
|
41
|
+
allowEnvReveal: boolean;
|
|
42
|
+
denyPathPatterns: string[];
|
|
43
|
+
maxUploadBytes?: number | undefined;
|
|
44
|
+
}, {
|
|
45
|
+
allowedProjectRoots?: string[] | undefined;
|
|
46
|
+
allowedAgents?: string[] | undefined;
|
|
47
|
+
allowedMethods?: string[] | undefined;
|
|
48
|
+
allowGlobalSkillInstall?: boolean | undefined;
|
|
49
|
+
allowUrlSkillInstall?: boolean | undefined;
|
|
50
|
+
allowDeleteFiles?: boolean | undefined;
|
|
51
|
+
allowExternalDocuments?: boolean | undefined;
|
|
52
|
+
allowEnvReveal?: boolean | undefined;
|
|
53
|
+
maxUploadBytes?: number | undefined;
|
|
54
|
+
denyPathPatterns?: string[] | undefined;
|
|
55
|
+
}>;
|
|
56
|
+
export type TenantPolicy = z.infer<typeof TenantPolicy>;
|
|
57
|
+
/** policy 默认值(最严格:白名单空、写操作全关)。 */
|
|
58
|
+
export declare const DEFAULT_TENANT_POLICY: TenantPolicy;
|
|
59
|
+
/**
|
|
60
|
+
* 校验一个绝对路径是否落在某项目根白名单内(不含 deny 匹配)。
|
|
61
|
+
* 真实 glob/deny 匹配由 core 实现;这里给协议层一个轻量前缀检查骨架。
|
|
62
|
+
*/
|
|
63
|
+
export declare function isPathUnderRoots(absPath: string, roots: readonly string[]): boolean;
|
|
64
|
+
/** policy 拒绝时的归一化结果(core 用,便于回 errPolicyDenied)。 */
|
|
65
|
+
export declare const PolicyDecision: z.ZodObject<{
|
|
66
|
+
allowed: z.ZodBoolean;
|
|
67
|
+
/** 拒绝原因(如 "path_outside_project" / "url_skill_disabled" / "delete_not_allowed")。 */
|
|
68
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
69
|
+
/** 关联 projectId(若适用)。 */
|
|
70
|
+
projectId: z.ZodOptional<z.ZodBranded<z.ZodString, "ProjectId">>;
|
|
71
|
+
}, "strip", z.ZodTypeAny, {
|
|
72
|
+
allowed: boolean;
|
|
73
|
+
reason?: string | undefined;
|
|
74
|
+
projectId?: (string & z.BRAND<"ProjectId">) | undefined;
|
|
75
|
+
}, {
|
|
76
|
+
allowed: boolean;
|
|
77
|
+
reason?: string | undefined;
|
|
78
|
+
projectId?: string | undefined;
|
|
79
|
+
}>;
|
|
80
|
+
export type PolicyDecision = z.infer<typeof PolicyDecision>;
|
|
81
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/schemas/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;GAQG;AAEH,yBAAyB;AACzB,eAAO,MAAM,YAAY;IACvB,qDAAqD;;IAErD,+BAA+B;;IAE/B,6CAA6C;;IAE7C,mDAAmD;;IAEnD,6CAA6C;;IAE7C,wEAAwE;;IAExE,wEAAwE;;IAExE,0DAA0D;;IAE1D,0CAA0C;;IAE1C,8DAA8D;;;;;;;;;;;;;;;;;;;;;;;;EAU9D,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,kCAAkC;AAClC,eAAO,MAAM,qBAAqB,EAAE,YAAqC,CAAC;AAE1E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAOnF;AAED,oDAAoD;AACpD,eAAO,MAAM,cAAc;;IAEzB,oFAAoF;;IAEpF,yBAAyB;;;;;;;;;;EAEzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AgentId, ProjectId } from "./common.js";
|
|
3
|
+
/**
|
|
4
|
+
* 本地安全策略(design D27 / review P0-1)。
|
|
5
|
+
*
|
|
6
|
+
* phonon 不做终端用户鉴权(那是服务端的事),但**必须有设备主人配置的本地授权边界**——
|
|
7
|
+
* 否则任意接入的 server 都能让本地 agent 读任意文件、装任意 skill、删 worktree。
|
|
8
|
+
*
|
|
9
|
+
* 这是「设备 policy」,不是「用户鉴权」。每个 tenant 一份,phonon 在执行前据此拦截。
|
|
10
|
+
* 这些是本地配置,不进 device→server 的线协议;放协议包是为了类型共享与校验。
|
|
11
|
+
*/
|
|
12
|
+
/** 单个 tenant 的本地授权边界。 */
|
|
13
|
+
export const TenantPolicy = z.object({
|
|
14
|
+
/** 允许操作的项目根目录白名单(绝对路径)。document/project 路径必须落在其下。 */
|
|
15
|
+
allowedProjectRoots: z.array(z.string()).default([]),
|
|
16
|
+
/** 允许使用的 agent 白名单;空 = 不限制。 */
|
|
17
|
+
allowedAgents: z.array(AgentId).default([]),
|
|
18
|
+
/** 允许的方法白名单;空 = 全允许。用它可表达「只读租户」(只放查询类方法)。 */
|
|
19
|
+
allowedMethods: z.array(z.string()).default([]),
|
|
20
|
+
/** 是否允许全局 skill 安装(影响该 agent 所有项目,危险)。默认 false。 */
|
|
21
|
+
allowGlobalSkillInstall: z.boolean().default(false),
|
|
22
|
+
/** 是否允许从 url 安装 skill(供应链入口,危险)。默认 false。 */
|
|
23
|
+
allowUrlSkillInstall: z.boolean().default(false),
|
|
24
|
+
/** 是否允许物理删盘(project.remove deleteFiles / worktree force 等)。默认 false。 */
|
|
25
|
+
allowDeleteFiles: z.boolean().default(false),
|
|
26
|
+
/** document.send 是否允许发送项目/worktree 目录之外的文件。默认 false(project-scoped)。 */
|
|
27
|
+
allowExternalDocuments: z.boolean().default(false),
|
|
28
|
+
/** env.list reveal=true 是否允许返回环境变量明文。默认 false(只能脱敏查看)。 */
|
|
29
|
+
allowEnvReveal: z.boolean().default(false),
|
|
30
|
+
/** 单文件上传上限(字节);超出走 prepare_upload 或拒绝。 */
|
|
31
|
+
maxUploadBytes: z.number().int().positive().optional(),
|
|
32
|
+
/** 敏感路径黑名单(即使在 allowedProjectRoots 内也拒绝,如 .ssh/.aws/.env)。 */
|
|
33
|
+
denyPathPatterns: z.array(z.string()).default([
|
|
34
|
+
"**/.ssh/**",
|
|
35
|
+
"**/.aws/**",
|
|
36
|
+
"**/.env",
|
|
37
|
+
"**/.git/config",
|
|
38
|
+
"**/id_rsa*",
|
|
39
|
+
"**/*.pem",
|
|
40
|
+
"**/openclaw.json",
|
|
41
|
+
]),
|
|
42
|
+
});
|
|
43
|
+
/** policy 默认值(最严格:白名单空、写操作全关)。 */
|
|
44
|
+
export const DEFAULT_TENANT_POLICY = TenantPolicy.parse({});
|
|
45
|
+
/**
|
|
46
|
+
* 校验一个绝对路径是否落在某项目根白名单内(不含 deny 匹配)。
|
|
47
|
+
* 真实 glob/deny 匹配由 core 实现;这里给协议层一个轻量前缀检查骨架。
|
|
48
|
+
*/
|
|
49
|
+
export function isPathUnderRoots(absPath, roots) {
|
|
50
|
+
if (roots.length === 0)
|
|
51
|
+
return false;
|
|
52
|
+
const norm = absPath.replace(/\\/g, "/");
|
|
53
|
+
return roots.some((r) => {
|
|
54
|
+
const root = r.replace(/\\/g, "/").replace(/\/+$/, "");
|
|
55
|
+
return norm === root || norm.startsWith(root + "/");
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/** policy 拒绝时的归一化结果(core 用,便于回 errPolicyDenied)。 */
|
|
59
|
+
export const PolicyDecision = z.object({
|
|
60
|
+
allowed: z.boolean(),
|
|
61
|
+
/** 拒绝原因(如 "path_outside_project" / "url_skill_disabled" / "delete_not_allowed")。 */
|
|
62
|
+
reason: z.string().optional(),
|
|
63
|
+
/** 关联 projectId(若适用)。 */
|
|
64
|
+
projectId: ProjectId.optional(),
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/schemas/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;GAQG;AAEH,yBAAyB;AACzB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,qDAAqD;IACrD,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,+BAA+B;IAC/B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,6CAA6C;IAC7C,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,mDAAmD;IACnD,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,6CAA6C;IAC7C,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAChD,wEAAwE;IACxE,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5C,wEAAwE;IACxE,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAClD,0DAA0D;IAC1D,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1C,0CAA0C;IAC1C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtD,8DAA8D;IAC9D,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;QAC5C,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,gBAAgB;QAChB,YAAY;QACZ,UAAU;QACV,kBAAkB;KACnB,CAAC;CACH,CAAC,CAAC;AAGH,kCAAkC;AAClC,MAAM,CAAC,MAAM,qBAAqB,GAAiB,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAE1E;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,KAAwB;IACxE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,oFAAoF;IACpF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,yBAAyB;IACzB,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC"}
|