@ccmsg/protocol 1.20.0 → 1.22.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/src/schemas.ts CHANGED
@@ -7,10 +7,10 @@ import {
7
7
  AuthChallengeRequest,
8
8
  AuthChallengeResponse,
9
9
  AuthRecordsFrame,
10
- AuthRefreshRequest,
11
- AuthRefreshResponse,
12
- AuthRefreshTokenRequest,
13
- AuthRefreshTokenResponse,
10
+ AuthExtendRequest,
11
+ AuthExtendResponse,
12
+ AuthTokenRefreshRequest,
13
+ AuthTokenRefreshResponse,
14
14
  AuthRegisterRequest,
15
15
  AuthRegisterResponse,
16
16
  AuthResolveRequest,
@@ -18,7 +18,14 @@ import {
18
18
  AuthRotateRequest,
19
19
  AuthRotateResponse,
20
20
  } from "./common/auth.ts";
21
- import { HelloRequest, HelloResponse } from "./common/hello.ts";
21
+ import {
22
+ HelloInstanceRequest,
23
+ HelloInstanceResponse,
24
+ HelloSessionRequest,
25
+ HelloSessionResponse,
26
+ HelloUserRequest,
27
+ HelloUserResponse,
28
+ } from "./common/hello.ts";
22
29
  import { InstancePingRequest, InstancePingResponse } from "./common/ping.ts";
23
30
  import {
24
31
  InstanceShutdownRequest,
@@ -49,8 +56,8 @@ import {
49
56
  FileFindResponse,
50
57
  FileReadRequest,
51
58
  FileReadResponse,
52
- FileStatBatchRequest,
53
- FileStatBatchResponse,
59
+ FileStatRequest,
60
+ FileStatResponse,
54
61
  FileWriteRequest,
55
62
  FileWriteResponse,
56
63
  } from "./control/files.ts";
@@ -92,12 +99,12 @@ import {
92
99
  SessionDumpWriteResponse,
93
100
  SessionEnvReadRequest,
94
101
  SessionEnvReadResponse,
95
- SessionForkOriginRequest,
96
- SessionForkOriginResponse,
102
+ SessionForkOriginReadRequest,
103
+ SessionForkOriginReadResponse,
97
104
  SessionKillRequest,
98
105
  SessionKillResponse,
99
- SessionLastLiveRemoveRequest,
100
- SessionLastLiveRemoveResponse,
106
+ SessionForgetRequest,
107
+ SessionForgetResponse,
101
108
  SessionRenameRequest,
102
109
  SessionRenameResponse,
103
110
  SessionSearchRequest,
@@ -115,8 +122,8 @@ import { TranslateRunRequest, TranslateRunResponse } from "./control/translate.t
115
122
  import { InboxFrame, MessageSendRequest, MessageSendResponse } from "./messaging/message.ts";
116
123
  import { NotifyFrame, NotifySendRequest, NotifySendResponse } from "./messaging/notify.ts";
117
124
  import {
118
- SayMarkReadRequest,
119
- SayMarkReadResponse,
125
+ SayUnreadClearRequest,
126
+ SayUnreadClearResponse,
120
127
  SayPostRequest,
121
128
  SayPostResponse,
122
129
  } from "./messaging/say.ts";
@@ -132,65 +139,70 @@ export interface OpSchemas {
132
139
  * what it takes and what it answers. The two are checked against each other:
133
140
  * an op in one and not the other is a hole in the contract, not a stage of it. */
134
141
  export const OP_SCHEMAS: Record<OpName, OpSchemas> = {
135
- hello: { request: HelloRequest, response: HelloResponse },
136
- instance_ping: { request: InstancePingRequest, response: InstancePingResponse },
137
- instance_shutdown: { request: InstanceShutdownRequest, response: InstanceShutdownResponse },
138
- session_stopping: { request: SessionStoppingRequest, response: SessionStoppingResponse },
139
- topic_subscribe: { request: TopicSubscribeRequest, response: TopicSubscribeResponse },
140
- topic_unsubscribe: { request: TopicUnsubscribeRequest, response: TopicUnsubscribeResponse },
141
- auth_challenge: { request: AuthChallengeRequest, response: AuthChallengeResponse },
142
- auth_register: { request: AuthRegisterRequest, response: AuthRegisterResponse },
143
- auth_assert: { request: AuthAssertRequest, response: AuthAssertResponse },
144
- auth_refresh_token: { request: AuthRefreshTokenRequest, response: AuthRefreshTokenResponse },
145
- auth_refresh: { request: AuthRefreshRequest, response: AuthRefreshResponse },
146
- auth_resolve: { request: AuthResolveRequest, response: AuthResolveResponse },
147
- auth_rotate: { request: AuthRotateRequest, response: AuthRotateResponse },
148
- message_send: { request: MessageSendRequest, response: MessageSendResponse },
149
- say_post: { request: SayPostRequest, response: SayPostResponse },
150
- say_mark_read: { request: SayMarkReadRequest, response: SayMarkReadResponse },
151
- notify_send: { request: NotifySendRequest, response: NotifySendResponse },
142
+ "hello.session": { request: HelloSessionRequest, response: HelloSessionResponse },
143
+ "hello.user": { request: HelloUserRequest, response: HelloUserResponse },
144
+ "hello.instance": { request: HelloInstanceRequest, response: HelloInstanceResponse },
145
+ "instance.ping": { request: InstancePingRequest, response: InstancePingResponse },
146
+ "instance.shutdown": { request: InstanceShutdownRequest, response: InstanceShutdownResponse },
147
+ "session.stopping": { request: SessionStoppingRequest, response: SessionStoppingResponse },
148
+ "topic.subscribe": { request: TopicSubscribeRequest, response: TopicSubscribeResponse },
149
+ "topic.unsubscribe": { request: TopicUnsubscribeRequest, response: TopicUnsubscribeResponse },
150
+ "auth.challenge": { request: AuthChallengeRequest, response: AuthChallengeResponse },
151
+ "auth.register": { request: AuthRegisterRequest, response: AuthRegisterResponse },
152
+ "auth.assert": { request: AuthAssertRequest, response: AuthAssertResponse },
153
+ "auth.token.refresh": { request: AuthTokenRefreshRequest, response: AuthTokenRefreshResponse },
154
+ "auth.extend": { request: AuthExtendRequest, response: AuthExtendResponse },
155
+ "auth.resolve": { request: AuthResolveRequest, response: AuthResolveResponse },
156
+ "auth.rotate": { request: AuthRotateRequest, response: AuthRotateResponse },
157
+ "message.send": { request: MessageSendRequest, response: MessageSendResponse },
158
+ "say.post": { request: SayPostRequest, response: SayPostResponse },
159
+ "say.unread.clear": { request: SayUnreadClearRequest, response: SayUnreadClearResponse },
160
+ "notify.send": { request: NotifySendRequest, response: NotifySendResponse },
152
161
 
153
- session_kill: { request: SessionKillRequest, response: SessionKillResponse },
154
- session_rename: { request: SessionRenameRequest, response: SessionRenameResponse },
155
- session_env_read: { request: SessionEnvReadRequest, response: SessionEnvReadResponse },
156
- session_search: { request: SessionSearchRequest, response: SessionSearchResponse },
157
- session_dump_write: { request: SessionDumpWriteRequest, response: SessionDumpWriteResponse },
158
- dump_presets_read: { request: DumpPresetsReadRequest, response: DumpPresetsReadResponse },
159
- transcript_read: { request: TranscriptReadRequest, response: TranscriptReadResponse },
160
- transcript_items_read: {
162
+ "session.kill": { request: SessionKillRequest, response: SessionKillResponse },
163
+ "session.rename": { request: SessionRenameRequest, response: SessionRenameResponse },
164
+ "session.env.read": { request: SessionEnvReadRequest, response: SessionEnvReadResponse },
165
+ "session.search": { request: SessionSearchRequest, response: SessionSearchResponse },
166
+ "session.dump.write": { request: SessionDumpWriteRequest, response: SessionDumpWriteResponse },
167
+ "dump.presets.read": { request: DumpPresetsReadRequest, response: DumpPresetsReadResponse },
168
+ "transcript.read": { request: TranscriptReadRequest, response: TranscriptReadResponse },
169
+ "transcript.items.read": {
161
170
  request: TranscriptItemsReadRequest,
162
171
  response: TranscriptItemsReadResponse,
163
172
  },
164
- session_fork_origin: { request: SessionForkOriginRequest, response: SessionForkOriginResponse },
165
- session_last_live_remove: {
166
- request: SessionLastLiveRemoveRequest,
167
- response: SessionLastLiveRemoveResponse,
173
+ "session.fork.origin.read": {
174
+ request: SessionForkOriginReadRequest,
175
+ response: SessionForkOriginReadResponse,
176
+ },
177
+ "session.forget": {
178
+ request: SessionForgetRequest,
179
+ response: SessionForgetResponse,
168
180
  },
169
181
 
170
- dir_list: { request: DirListRequest, response: DirListResponse },
171
- file_read: { request: FileReadRequest, response: FileReadResponse },
172
- file_write: { request: FileWriteRequest, response: FileWriteResponse },
173
- file_create: { request: FileCreateRequest, response: FileCreateResponse },
174
- file_edit: { request: FileEditRequest, response: FileEditResponse },
175
- file_delete: { request: FileDeleteRequest, response: FileDeleteResponse },
176
- file_find: { request: FileFindRequest, response: FileFindResponse },
177
- file_stat_batch: { request: FileStatBatchRequest, response: FileStatBatchResponse },
178
- dir_tree: { request: DirTreeRequest, response: DirTreeResponse },
182
+ "dir.list": { request: DirListRequest, response: DirListResponse },
183
+ "file.read": { request: FileReadRequest, response: FileReadResponse },
184
+ "file.write": { request: FileWriteRequest, response: FileWriteResponse },
185
+ "file.create": { request: FileCreateRequest, response: FileCreateResponse },
186
+ "file.edit": { request: FileEditRequest, response: FileEditResponse },
187
+ "file.delete": { request: FileDeleteRequest, response: FileDeleteResponse },
188
+ "file.find": { request: FileFindRequest, response: FileFindResponse },
189
+ "file.stat": { request: FileStatRequest, response: FileStatResponse },
190
+ "dir.tree": { request: DirTreeRequest, response: DirTreeResponse },
179
191
 
180
- launcher_config_read: {
192
+ "launcher.config.read": {
181
193
  request: LauncherConfigReadRequest,
182
194
  response: LauncherConfigReadResponse,
183
195
  },
184
- launcher_run: { request: LauncherRunRequest, response: LauncherRunResponse },
185
- sandbox_grant: { request: SandboxGrantRequest, response: SandboxGrantResponse },
186
- sandbox_revoke: { request: SandboxRevokeRequest, response: SandboxRevokeResponse },
187
- translate_run: { request: TranslateRunRequest, response: TranslateRunResponse },
188
- llm_usage_read: { request: LlmUsageReadRequest, response: LlmUsageReadResponse },
189
- llm_stats_read: { request: LlmStatsReadRequest, response: LlmStatsReadResponse },
196
+ "launcher.run": { request: LauncherRunRequest, response: LauncherRunResponse },
197
+ "sandbox.grant": { request: SandboxGrantRequest, response: SandboxGrantResponse },
198
+ "sandbox.revoke": { request: SandboxRevokeRequest, response: SandboxRevokeResponse },
199
+ "translate.run": { request: TranslateRunRequest, response: TranslateRunResponse },
200
+ "llm.usage.read": { request: LlmUsageReadRequest, response: LlmUsageReadResponse },
201
+ "llm.stats.read": { request: LlmStatsReadRequest, response: LlmStatsReadResponse },
190
202
 
191
- kv_read: { request: KvReadRequest, response: KvReadResponse },
192
- kv_write: { request: KvWriteRequest, response: KvWriteResponse },
193
- kv_delete: { request: KvDeleteRequest, response: KvDeleteResponse },
203
+ "kv.read": { request: KvReadRequest, response: KvReadResponse },
204
+ "kv.write": { request: KvWriteRequest, response: KvWriteResponse },
205
+ "kv.delete": { request: KvDeleteRequest, response: KvDeleteResponse },
194
206
  };
195
207
 
196
208
  /** The frame schema for every topic.
@@ -204,14 +216,14 @@ export const TOPIC_SCHEMAS = {
204
216
  peers: PeersFrame,
205
217
  instances: InstancesFrame,
206
218
  agents: AgentsFrame,
207
- session_status: SessionStatusFrame,
219
+ "session.status": SessionStatusFrame,
208
220
  transcript: TranscriptFrame,
209
- transcript_items: TranscriptItemsFrame,
210
- session_errors: SessionErrorsFrame,
211
- llm_requests: LlmRequestsFrame,
212
- llm_status: LlmStatusFrame,
221
+ "transcript.items": TranscriptItemsFrame,
222
+ "session.errors": SessionErrorsFrame,
223
+ "llm.requests": LlmRequestsFrame,
224
+ "llm.status": LlmStatusFrame,
213
225
  kv: KvFrame,
214
- auth_records: AuthRecordsFrame,
226
+ "auth.records": AuthRecordsFrame,
215
227
  } as const;
216
228
 
217
229
  const compiled = new WeakMap<TSchema, TypeCheck<TSchema>>();
@@ -3,7 +3,8 @@ import { Type } from "@sinclair/typebox";
3
3
  /** The fields that describe where a session lives and what it runs as.
4
4
  *
5
5
  * Stated once and referenced wherever a session is described: the session names
6
- * them itself in `hello`, and the instance repeats them on the `peers` topic
6
+ * them itself in `hello.session`, and the instance repeats them on the `peers`
7
+ * topic
7
8
  * for connected and last-known sessions alike. Which of them are required
8
9
  * differs by place — a greeting may leave any of them unsaid — so each place
9
10
  * wraps what it needs in `Type.Optional`, but the name and the type of a field