@moltzap/protocol 2026.505.1 → 2026.505.3
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/dist/app/methods/apps.d.ts +30 -103
- package/dist/app/methods/apps.d.ts.map +1 -1
- package/dist/app/methods/apps.js +9 -72
- package/dist/app/methods/apps.js.map +1 -1
- package/dist/rpc-groups.d.ts +92 -10
- package/dist/rpc-groups.d.ts.map +1 -1
- package/dist/rpc-groups.js +39 -9
- package/dist/rpc-groups.js.map +1 -1
- package/dist/rpc-registry.d.ts +29 -241
- package/dist/rpc-registry.d.ts.map +1 -1
- package/dist/rpc-registry.js +2 -9
- package/dist/rpc-registry.js.map +1 -1
- package/dist/schema/apps.d.ts +0 -26
- package/dist/schema/apps.d.ts.map +1 -1
- package/dist/schema/apps.js +1 -19
- package/dist/schema/apps.js.map +1 -1
- package/dist/schema/index.d.ts +0 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +0 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/notifications.d.ts +133 -106
- package/dist/schema/notifications.d.ts.map +1 -1
- package/dist/schema/notifications.js +55 -39
- package/dist/schema/notifications.js.map +1 -1
- package/dist/testing/conformance/boundary.d.ts.map +1 -1
- package/dist/testing/conformance/boundary.js +21 -74
- package/dist/testing/conformance/boundary.js.map +1 -1
- package/dist/testing/conformance/client/adversity.d.ts.map +1 -1
- package/dist/testing/conformance/client/adversity.js +5 -2
- package/dist/testing/conformance/client/adversity.js.map +1 -1
- package/dist/testing/conformance/client/boundary.d.ts.map +1 -1
- package/dist/testing/conformance/client/boundary.js +5 -2
- package/dist/testing/conformance/client/boundary.js.map +1 -1
- package/dist/testing/conformance/client/delivery.d.ts.map +1 -1
- package/dist/testing/conformance/client/delivery.js +7 -2
- package/dist/testing/conformance/client/delivery.js.map +1 -1
- package/dist/testing/conformance/delivery.d.ts +9 -14
- package/dist/testing/conformance/delivery.d.ts.map +1 -1
- package/dist/testing/conformance/delivery.js +32 -198
- package/dist/testing/conformance/delivery.js.map +1 -1
- package/dist/testing/conformance/dispatcher-concurrency.js +5 -5
- package/dist/testing/conformance/dispatcher-concurrency.js.map +1 -1
- package/dist/testing/conformance/suite.js +18 -29
- package/dist/testing/conformance/suite.js.map +1 -1
- package/dist/testing/models/dispatch.d.ts.map +1 -1
- package/dist/testing/models/dispatch.js +12 -9
- package/dist/testing/models/dispatch.js.map +1 -1
- package/dist/types.d.ts +2 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validators.d.ts +20 -34
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +6 -11
- package/dist/validators.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/schema/delivery.d.ts +0 -22
- package/dist/schema/delivery.d.ts.map +0 -1
- package/dist/schema/delivery.js +0 -13
- package/dist/schema/delivery.js.map +0 -1
|
@@ -32,87 +32,10 @@ export declare const AppsRegister: import("../../rpc.js").RpcDefinition<"apps/re
|
|
|
32
32
|
}>, import("@sinclair/typebox").TObject<{
|
|
33
33
|
appId: import("@sinclair/typebox").TString;
|
|
34
34
|
}>>;
|
|
35
|
-
export declare const AppsCreate: import("../../rpc.js").RpcDefinition<"apps/create", import("@sinclair/typebox").TObject<{
|
|
36
|
-
appId: import("@sinclair/typebox").TString;
|
|
37
|
-
invitedAgentIds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString & {
|
|
38
|
-
static: import("../../brands.js").BrandedString<"AgentId">;
|
|
39
|
-
}>;
|
|
40
|
-
}>, import("@sinclair/typebox").TObject<{
|
|
41
|
-
session: import("@sinclair/typebox").TObject<{
|
|
42
|
-
id: import("@sinclair/typebox").TString & {
|
|
43
|
-
static: import("../../brands.js").BrandedString<"AppSessionId">;
|
|
44
|
-
};
|
|
45
|
-
appId: import("@sinclair/typebox").TString;
|
|
46
|
-
initiatorAgentId: import("@sinclair/typebox").TString & {
|
|
47
|
-
static: import("../../brands.js").BrandedString<"AgentId">;
|
|
48
|
-
};
|
|
49
|
-
status: import("@sinclair/typebox").TString & {
|
|
50
|
-
static: "active" | "waiting" | "failed" | "closed";
|
|
51
|
-
};
|
|
52
|
-
conversations: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString & {
|
|
53
|
-
static: import("../../brands.js").BrandedString<"ConversationId">;
|
|
54
|
-
}>;
|
|
55
|
-
createdAt: import("@sinclair/typebox").TString;
|
|
56
|
-
closedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
57
|
-
}>;
|
|
58
|
-
}>>;
|
|
59
|
-
export declare const AppsCloseSession: import("../../rpc.js").RpcDefinition<"apps/closeSession", import("@sinclair/typebox").TObject<{
|
|
60
|
-
sessionId: import("@sinclair/typebox").TString;
|
|
61
|
-
}>, import("@sinclair/typebox").TObject<{
|
|
62
|
-
closed: import("@sinclair/typebox").TBoolean;
|
|
63
|
-
}>>;
|
|
64
|
-
export declare const AppsGetSession: import("../../rpc.js").RpcDefinition<"apps/getSession", import("@sinclair/typebox").TObject<{
|
|
65
|
-
sessionId: import("@sinclair/typebox").TString;
|
|
66
|
-
}>, import("@sinclair/typebox").TObject<{
|
|
67
|
-
session: import("@sinclair/typebox").TObject<{
|
|
68
|
-
id: import("@sinclair/typebox").TString & {
|
|
69
|
-
static: import("../../brands.js").BrandedString<"AppSessionId">;
|
|
70
|
-
};
|
|
71
|
-
appId: import("@sinclair/typebox").TString;
|
|
72
|
-
initiatorAgentId: import("@sinclair/typebox").TString & {
|
|
73
|
-
static: import("../../brands.js").BrandedString<"AgentId">;
|
|
74
|
-
};
|
|
75
|
-
status: import("@sinclair/typebox").TString & {
|
|
76
|
-
static: "active" | "waiting" | "failed" | "closed";
|
|
77
|
-
};
|
|
78
|
-
conversations: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString & {
|
|
79
|
-
static: import("../../brands.js").BrandedString<"ConversationId">;
|
|
80
|
-
}>;
|
|
81
|
-
createdAt: import("@sinclair/typebox").TString;
|
|
82
|
-
closedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
83
|
-
}>;
|
|
84
|
-
}>>;
|
|
85
|
-
export declare const AppsListSessions: import("../../rpc.js").RpcDefinition<"apps/listSessions", import("@sinclair/typebox").TObject<{
|
|
86
|
-
appId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
87
|
-
status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString & {
|
|
88
|
-
static: "active" | "waiting" | "closed";
|
|
89
|
-
}>;
|
|
90
|
-
limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
91
|
-
}>, import("@sinclair/typebox").TObject<{
|
|
92
|
-
sessions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
93
|
-
id: import("@sinclair/typebox").TString & {
|
|
94
|
-
static: import("../../brands.js").BrandedString<"AppSessionId">;
|
|
95
|
-
};
|
|
96
|
-
appId: import("@sinclair/typebox").TString;
|
|
97
|
-
initiatorAgentId: import("@sinclair/typebox").TString & {
|
|
98
|
-
static: import("../../brands.js").BrandedString<"AgentId">;
|
|
99
|
-
};
|
|
100
|
-
status: import("@sinclair/typebox").TString & {
|
|
101
|
-
static: "active" | "waiting" | "failed" | "closed";
|
|
102
|
-
};
|
|
103
|
-
conversations: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString & {
|
|
104
|
-
static: import("../../brands.js").BrandedString<"ConversationId">;
|
|
105
|
-
}>;
|
|
106
|
-
createdAt: import("@sinclair/typebox").TString;
|
|
107
|
-
closedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
108
|
-
}>>;
|
|
109
|
-
}>>;
|
|
110
35
|
/**
|
|
111
36
|
* Verdict from a `before_dispatch` admission handler. Discriminated by
|
|
112
37
|
* `decision`: `grant` (allow; optional lease for held delivery), `deny`
|
|
113
38
|
* (reject), `hold` (defer behind a lease the app will release later).
|
|
114
|
-
*
|
|
115
|
-
* Re-exported from `@moltzap/app-sdk` as `DispatchAdmissionResult`.
|
|
116
39
|
*/
|
|
117
40
|
export declare const DispatchAdmissionDecisionSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
118
41
|
decision: import("@sinclair/typebox").TLiteral<"grant">;
|
|
@@ -212,8 +135,6 @@ export declare const AppsAuthorizeDispatch: import("../../rpc.js").RpcDefinition
|
|
|
212
135
|
* Verdict from a `before_message_delivery` admission handler. `block: true`
|
|
213
136
|
* drops the message; `block: false` allows. Optional `patch.parts` mutates
|
|
214
137
|
* the recipient view; optional `feedback` emits an observability hook.
|
|
215
|
-
*
|
|
216
|
-
* Re-exported from `@moltzap/app-sdk` as `HookResult`.
|
|
217
138
|
*/
|
|
218
139
|
export declare const HookResultSchema: import("@sinclair/typebox").TObject<{
|
|
219
140
|
block: import("@sinclair/typebox").TBoolean;
|
|
@@ -248,7 +169,9 @@ export type HookResult = Static<typeof HookResultSchema>;
|
|
|
248
169
|
* server-side `BeforeDispatchContext` minus runtime-only fields (`signal`).
|
|
249
170
|
*/
|
|
250
171
|
export declare const BeforeDispatchContextSchema: import("@sinclair/typebox").TObject<{
|
|
251
|
-
|
|
172
|
+
taskId: import("@sinclair/typebox").TString & {
|
|
173
|
+
static: import("../../brands.js").BrandedString<"TaskId">;
|
|
174
|
+
};
|
|
252
175
|
appId: import("@sinclair/typebox").TString;
|
|
253
176
|
conversationId: import("@sinclair/typebox").TString & {
|
|
254
177
|
static: import("../../brands.js").BrandedString<"ConversationId">;
|
|
@@ -326,7 +249,9 @@ export type BeforeDispatchContext = Static<typeof BeforeDispatchContextSchema>;
|
|
|
326
249
|
* Context passed to a `before_message_delivery` admission handler.
|
|
327
250
|
*/
|
|
328
251
|
export declare const BeforeMessageDeliveryContextSchema: import("@sinclair/typebox").TObject<{
|
|
329
|
-
|
|
252
|
+
taskId: import("@sinclair/typebox").TString & {
|
|
253
|
+
static: import("../../brands.js").BrandedString<"TaskId">;
|
|
254
|
+
};
|
|
330
255
|
appId: import("@sinclair/typebox").TString;
|
|
331
256
|
conversationId: import("@sinclair/typebox").TString & {
|
|
332
257
|
static: import("../../brands.js").BrandedString<"ConversationId">;
|
|
@@ -359,9 +284,17 @@ export declare const BeforeMessageDeliveryContextSchema: import("@sinclair/typeb
|
|
|
359
284
|
}>;
|
|
360
285
|
}>;
|
|
361
286
|
export type BeforeMessageDeliveryContext = Static<typeof BeforeMessageDeliveryContextSchema>;
|
|
287
|
+
export declare const LifecycleAgentSchema: import("@sinclair/typebox").TObject<{
|
|
288
|
+
agentId: import("@sinclair/typebox").TString & {
|
|
289
|
+
static: import("../../brands.js").BrandedString<"AgentId">;
|
|
290
|
+
};
|
|
291
|
+
ownerId: import("@sinclair/typebox").TString;
|
|
292
|
+
}>;
|
|
362
293
|
/** Context passed to an `on_close` lifecycle handler. */
|
|
363
294
|
export declare const OnCloseContextSchema: import("@sinclair/typebox").TObject<{
|
|
364
|
-
|
|
295
|
+
taskId: import("@sinclair/typebox").TString & {
|
|
296
|
+
static: import("../../brands.js").BrandedString<"TaskId">;
|
|
297
|
+
};
|
|
365
298
|
appId: import("@sinclair/typebox").TString;
|
|
366
299
|
conversations: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
|
|
367
300
|
closedBy: import("@sinclair/typebox").TObject<{
|
|
@@ -374,7 +307,9 @@ export declare const OnCloseContextSchema: import("@sinclair/typebox").TObject<{
|
|
|
374
307
|
export type OnCloseContext = Static<typeof OnCloseContextSchema>;
|
|
375
308
|
/** Context passed to an `on_session_active` lifecycle handler. */
|
|
376
309
|
export declare const OnSessionActiveContextSchema: import("@sinclair/typebox").TObject<{
|
|
377
|
-
|
|
310
|
+
taskId: import("@sinclair/typebox").TString & {
|
|
311
|
+
static: import("../../brands.js").BrandedString<"TaskId">;
|
|
312
|
+
};
|
|
378
313
|
appId: import("@sinclair/typebox").TString;
|
|
379
314
|
conversations: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
|
|
380
315
|
admittedAgentIds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString & {
|
|
@@ -383,7 +318,9 @@ export declare const OnSessionActiveContextSchema: import("@sinclair/typebox").T
|
|
|
383
318
|
}>;
|
|
384
319
|
export type OnSessionActiveContext = Static<typeof OnSessionActiveContextSchema>;
|
|
385
320
|
export declare const AppsOnBeforeDispatch: import("../../rpc.js").RpcDefinition<"apps/onBeforeDispatch", import("@sinclair/typebox").TObject<{
|
|
386
|
-
|
|
321
|
+
taskId: import("@sinclair/typebox").TString & {
|
|
322
|
+
static: import("../../brands.js").BrandedString<"TaskId">;
|
|
323
|
+
};
|
|
387
324
|
appId: import("@sinclair/typebox").TString;
|
|
388
325
|
conversationId: import("@sinclair/typebox").TString & {
|
|
389
326
|
static: import("../../brands.js").BrandedString<"ConversationId">;
|
|
@@ -472,7 +409,9 @@ export declare const AppsOnBeforeDispatch: import("../../rpc.js").RpcDefinition<
|
|
|
472
409
|
}>]>;
|
|
473
410
|
}>>;
|
|
474
411
|
export declare const AppsOnBeforeMessageDelivery: import("../../rpc.js").RpcDefinition<"apps/onBeforeMessageDelivery", import("@sinclair/typebox").TObject<{
|
|
475
|
-
|
|
412
|
+
taskId: import("@sinclair/typebox").TString & {
|
|
413
|
+
static: import("../../brands.js").BrandedString<"TaskId">;
|
|
414
|
+
};
|
|
476
415
|
appId: import("@sinclair/typebox").TString;
|
|
477
416
|
conversationId: import("@sinclair/typebox").TString & {
|
|
478
417
|
static: import("../../brands.js").BrandedString<"ConversationId">;
|
|
@@ -531,7 +470,9 @@ export declare const AppsOnBeforeMessageDelivery: import("../../rpc.js").RpcDefi
|
|
|
531
470
|
}>>;
|
|
532
471
|
}>>;
|
|
533
472
|
export declare const AppsOnSessionActive: import("../../rpc.js").RpcDefinition<"apps/onSessionActive", import("@sinclair/typebox").TObject<{
|
|
534
|
-
|
|
473
|
+
taskId: import("@sinclair/typebox").TString & {
|
|
474
|
+
static: import("../../brands.js").BrandedString<"TaskId">;
|
|
475
|
+
};
|
|
535
476
|
appId: import("@sinclair/typebox").TString;
|
|
536
477
|
conversations: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
|
|
537
478
|
admittedAgentIds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString & {
|
|
@@ -539,7 +480,9 @@ export declare const AppsOnSessionActive: import("../../rpc.js").RpcDefinition<"
|
|
|
539
480
|
}>;
|
|
540
481
|
}>, import("@sinclair/typebox").TObject<{}>>;
|
|
541
482
|
export declare const AppsOnClose: import("../../rpc.js").RpcDefinition<"apps/onClose", import("@sinclair/typebox").TObject<{
|
|
542
|
-
|
|
483
|
+
taskId: import("@sinclair/typebox").TString & {
|
|
484
|
+
static: import("../../brands.js").BrandedString<"TaskId">;
|
|
485
|
+
};
|
|
543
486
|
appId: import("@sinclair/typebox").TString;
|
|
544
487
|
conversations: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
|
|
545
488
|
closedBy: import("@sinclair/typebox").TObject<{
|
|
@@ -549,20 +492,4 @@ export declare const AppsOnClose: import("../../rpc.js").RpcDefinition<"apps/onC
|
|
|
549
492
|
ownerId: import("@sinclair/typebox").TString;
|
|
550
493
|
}>;
|
|
551
494
|
}>, import("@sinclair/typebox").TObject<{}>>;
|
|
552
|
-
/**
|
|
553
|
-
* `apps/attachConversation` — client-originated. Adds an existing conversation
|
|
554
|
-
* to a session's membership/role-DM pipeline. Mirrors today's in-process
|
|
555
|
-
* `AppHost.attachConversation` (see 33-attach-conversation.integration.test.ts:312-369).
|
|
556
|
-
*
|
|
557
|
-
* Error channel (implementer wires via RpcResponseError codes):
|
|
558
|
-
* - SessionNotFound
|
|
559
|
-
* - ConversationNotFound
|
|
560
|
-
* - NotAuthorized (caller's app key does not own the session)
|
|
561
|
-
*/
|
|
562
|
-
export declare const AppsAttachConversation: import("../../rpc.js").RpcDefinition<"apps/attachConversation", import("@sinclair/typebox").TObject<{
|
|
563
|
-
sessionId: import("@sinclair/typebox").TString;
|
|
564
|
-
conversationId: import("@sinclair/typebox").TString & {
|
|
565
|
-
static: import("../../brands.js").BrandedString<"ConversationId">;
|
|
566
|
-
};
|
|
567
|
-
}>, import("@sinclair/typebox").TObject<{}>>;
|
|
568
495
|
//# sourceMappingURL=apps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../../src/app/methods/apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../../src/app/methods/apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAatD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAcvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;IAwB1C,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC1C,OAAO,+BAA+B,CACvC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyChC,CAAC;AAiCH;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;EAa5B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCvC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB9C,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAC/C,OAAO,kCAAkC,CAC1C,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;EAMhC,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAQhC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEjE,kEAAkE;AAClE,eAAO,MAAM,4BAA4B;;;;;;;;;EAQxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CACzC,OAAO,4BAA4B,CACpC,CAAC;AAMF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAO/B,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAItC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;4CAI9B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;4CAItB,CAAC"}
|
package/dist/app/methods/apps.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Type } from "@sinclair/typebox";
|
|
2
|
-
import { AgentId, ConversationId, MessageId } from "../../schema/primitives.js";
|
|
3
|
-
import { AppManifestSchema
|
|
2
|
+
import { AgentId, ConversationId, MessageId, TaskId, } from "../../schema/primitives.js";
|
|
3
|
+
import { AppManifestSchema } from "../../schema/apps.js";
|
|
4
4
|
import { PartSchema } from "../../schema/messages.js";
|
|
5
5
|
import { LogicalClockSchema } from "../../schema/logical-clock.js";
|
|
6
6
|
import { DateTimeString, stringEnum } from "../../helpers.js";
|
|
@@ -14,49 +14,10 @@ export const AppsRegister = defineRpc({
|
|
|
14
14
|
appId: Type.String(),
|
|
15
15
|
}, { additionalProperties: false }),
|
|
16
16
|
});
|
|
17
|
-
export const AppsCreate = defineRpc({
|
|
18
|
-
name: "apps/create",
|
|
19
|
-
params: Type.Object({
|
|
20
|
-
appId: Type.String(),
|
|
21
|
-
invitedAgentIds: Type.Array(AgentId),
|
|
22
|
-
}, { additionalProperties: false }),
|
|
23
|
-
result: Type.Object({ session: AppSessionSchema }, { additionalProperties: false }),
|
|
24
|
-
});
|
|
25
|
-
export const AppsCloseSession = defineRpc({
|
|
26
|
-
name: "apps/closeSession",
|
|
27
|
-
params: Type.Object({
|
|
28
|
-
sessionId: Type.String({ format: "uuid" }),
|
|
29
|
-
}, { additionalProperties: false }),
|
|
30
|
-
result: Type.Object({
|
|
31
|
-
closed: Type.Boolean(),
|
|
32
|
-
}, { additionalProperties: false }),
|
|
33
|
-
});
|
|
34
|
-
export const AppsGetSession = defineRpc({
|
|
35
|
-
name: "apps/getSession",
|
|
36
|
-
params: Type.Object({
|
|
37
|
-
sessionId: Type.String({ format: "uuid" }),
|
|
38
|
-
}, { additionalProperties: false }),
|
|
39
|
-
result: Type.Object({
|
|
40
|
-
session: AppSessionSchema,
|
|
41
|
-
}, { additionalProperties: false }),
|
|
42
|
-
});
|
|
43
|
-
export const AppsListSessions = defineRpc({
|
|
44
|
-
name: "apps/listSessions",
|
|
45
|
-
params: Type.Object({
|
|
46
|
-
appId: Type.Optional(Type.String()),
|
|
47
|
-
status: Type.Optional(stringEnum(["waiting", "active", "closed"])),
|
|
48
|
-
limit: Type.Optional(Type.Integer({ minimum: 1, maximum: 200 })),
|
|
49
|
-
}, { additionalProperties: false }),
|
|
50
|
-
result: Type.Object({
|
|
51
|
-
sessions: Type.Array(AppSessionSchema),
|
|
52
|
-
}, { additionalProperties: false }),
|
|
53
|
-
});
|
|
54
17
|
/**
|
|
55
18
|
* Verdict from a `before_dispatch` admission handler. Discriminated by
|
|
56
19
|
* `decision`: `grant` (allow; optional lease for held delivery), `deny`
|
|
57
20
|
* (reject), `hold` (defer behind a lease the app will release later).
|
|
58
|
-
*
|
|
59
|
-
* Re-exported from `@moltzap/app-sdk` as `DispatchAdmissionResult`.
|
|
60
21
|
*/
|
|
61
22
|
export const DispatchAdmissionDecisionSchema = Type.Union([
|
|
62
23
|
Type.Object({
|
|
@@ -103,17 +64,13 @@ export const AppsAuthorizeDispatch = defineRpc({
|
|
|
103
64
|
//
|
|
104
65
|
// All four appCallback verbs are AWAITABLE — `onSessionActive` / `onClose`
|
|
105
66
|
// reply with an empty object so AppHost can `Deferred.await` and apply the
|
|
106
|
-
// manifest hook timeout. They are NOT fire-and-forget
|
|
107
|
-
//
|
|
108
|
-
// invariant — see `31-on-session-active.integration.test.ts:200-230`).
|
|
67
|
+
// manifest hook timeout. They are NOT fire-and-forget. (Phase 7 cutover
|
|
68
|
+
// removed the trigger paths; Phase 9 wires equivalents via TM topology.)
|
|
109
69
|
//
|
|
110
70
|
// Verdict shapes mirror `packages/server/src/app/hooks.ts` verbatim — the
|
|
111
71
|
// `DispatchAdmissionDecisionSchema` constant defined above (and reused here) is the
|
|
112
72
|
// same union, and `HookResultSchema` matches `HookResult` field-for-field.
|
|
113
73
|
// Adding a new verdict tag is a protocol change; do it in the spec, not here.
|
|
114
|
-
//
|
|
115
|
-
// `apps/attachConversation` is client-originated and is registered in the
|
|
116
|
-
// `rpcMethods` tuple, not `appCallbackRpcMethods`.
|
|
117
74
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
118
75
|
const HookSenderSchema = Type.Object({
|
|
119
76
|
agentId: AgentId,
|
|
@@ -128,8 +85,6 @@ const HookFeedbackSchema = Type.Object({
|
|
|
128
85
|
* Verdict from a `before_message_delivery` admission handler. `block: true`
|
|
129
86
|
* drops the message; `block: false` allows. Optional `patch.parts` mutates
|
|
130
87
|
* the recipient view; optional `feedback` emits an observability hook.
|
|
131
|
-
*
|
|
132
|
-
* Re-exported from `@moltzap/app-sdk` as `HookResult`.
|
|
133
88
|
*/
|
|
134
89
|
export const HookResultSchema = Type.Object({
|
|
135
90
|
block: Type.Boolean(),
|
|
@@ -142,7 +97,7 @@ export const HookResultSchema = Type.Object({
|
|
|
142
97
|
* server-side `BeforeDispatchContext` minus runtime-only fields (`signal`).
|
|
143
98
|
*/
|
|
144
99
|
export const BeforeDispatchContextSchema = Type.Object({
|
|
145
|
-
|
|
100
|
+
taskId: TaskId,
|
|
146
101
|
appId: Type.String(),
|
|
147
102
|
conversationId: ConversationId,
|
|
148
103
|
recipient: HookSenderSchema,
|
|
@@ -168,7 +123,7 @@ export const BeforeDispatchContextSchema = Type.Object({
|
|
|
168
123
|
* Context passed to a `before_message_delivery` admission handler.
|
|
169
124
|
*/
|
|
170
125
|
export const BeforeMessageDeliveryContextSchema = Type.Object({
|
|
171
|
-
|
|
126
|
+
taskId: TaskId,
|
|
172
127
|
appId: Type.String(),
|
|
173
128
|
conversationId: ConversationId,
|
|
174
129
|
sender: HookSenderSchema,
|
|
@@ -178,20 +133,20 @@ export const BeforeMessageDeliveryContextSchema = Type.Object({
|
|
|
178
133
|
dispatchLeaseId: Type.Optional(Type.String()),
|
|
179
134
|
}, { additionalProperties: false }),
|
|
180
135
|
}, { additionalProperties: false });
|
|
181
|
-
const LifecycleAgentSchema = Type.Object({
|
|
136
|
+
export const LifecycleAgentSchema = Type.Object({
|
|
182
137
|
agentId: AgentId,
|
|
183
138
|
ownerId: Type.String(),
|
|
184
139
|
}, { additionalProperties: false });
|
|
185
140
|
/** Context passed to an `on_close` lifecycle handler. */
|
|
186
141
|
export const OnCloseContextSchema = Type.Object({
|
|
187
|
-
|
|
142
|
+
taskId: TaskId,
|
|
188
143
|
appId: Type.String(),
|
|
189
144
|
conversations: Type.Record(Type.String(), Type.String()),
|
|
190
145
|
closedBy: LifecycleAgentSchema,
|
|
191
146
|
}, { additionalProperties: false });
|
|
192
147
|
/** Context passed to an `on_session_active` lifecycle handler. */
|
|
193
148
|
export const OnSessionActiveContextSchema = Type.Object({
|
|
194
|
-
|
|
149
|
+
taskId: TaskId,
|
|
195
150
|
appId: Type.String(),
|
|
196
151
|
conversations: Type.Record(Type.String(), Type.String()),
|
|
197
152
|
admittedAgentIds: Type.Array(AgentId),
|
|
@@ -219,22 +174,4 @@ export const AppsOnClose = defineRpc({
|
|
|
219
174
|
params: OnCloseContextSchema,
|
|
220
175
|
result: VoidHookResultSchema,
|
|
221
176
|
});
|
|
222
|
-
/**
|
|
223
|
-
* `apps/attachConversation` — client-originated. Adds an existing conversation
|
|
224
|
-
* to a session's membership/role-DM pipeline. Mirrors today's in-process
|
|
225
|
-
* `AppHost.attachConversation` (see 33-attach-conversation.integration.test.ts:312-369).
|
|
226
|
-
*
|
|
227
|
-
* Error channel (implementer wires via RpcResponseError codes):
|
|
228
|
-
* - SessionNotFound
|
|
229
|
-
* - ConversationNotFound
|
|
230
|
-
* - NotAuthorized (caller's app key does not own the session)
|
|
231
|
-
*/
|
|
232
|
-
export const AppsAttachConversation = defineRpc({
|
|
233
|
-
name: "apps/attachConversation",
|
|
234
|
-
params: Type.Object({
|
|
235
|
-
sessionId: Type.String({ format: "uuid" }),
|
|
236
|
-
conversationId: ConversationId,
|
|
237
|
-
}, { additionalProperties: false }),
|
|
238
|
-
result: Type.Object({}, { additionalProperties: false }),
|
|
239
|
-
});
|
|
240
177
|
//# sourceMappingURL=apps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.js","sourceRoot":"","sources":["../../../src/app/methods/apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"apps.js","sourceRoot":"","sources":["../../../src/app/methods/apps.ts"],"names":[],"mappings":"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"}
|
package/dist/rpc-groups.d.ts
CHANGED
|
@@ -32,11 +32,53 @@ export type DecodedRpcRequest<D extends AnyRpcDefinition> = D extends AnyRpcDefi
|
|
|
32
32
|
readonly definition: D;
|
|
33
33
|
readonly params: ParamsOf<D>;
|
|
34
34
|
} : never;
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Common shape for a decoded notification — same wire fields and
|
|
37
|
+
* descriptor attachment regardless of validation state. The `params`
|
|
38
|
+
* channel is the only thing that differs between `Raw` and validated
|
|
39
|
+
* `DecodedNotification` (see below); keeping the rest in one place
|
|
40
|
+
* avoids drift if either shape evolves.
|
|
41
|
+
*/
|
|
42
|
+
type DecodedNotificationShape<D extends AnyNotificationDefinition, P> = NotificationFrame & {
|
|
43
|
+
readonly _tag: "Notification";
|
|
36
44
|
readonly definition: D;
|
|
37
45
|
readonly method: D["name"];
|
|
38
|
-
readonly params:
|
|
39
|
-
}
|
|
46
|
+
readonly params: P;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* What the wire decoder produces for a known method BEFORE payload
|
|
50
|
+
* validation. The decoder is payload-opaque per the
|
|
51
|
+
* `delivery/payload-opacity-client` and
|
|
52
|
+
* `boundary/schema-exhaustive-fuzz-client` conformance properties — the
|
|
53
|
+
* `params` field genuinely carries `unknown` until a typed bridge runs
|
|
54
|
+
* `definition.validateParams` (or the shared `validateNotificationParams`
|
|
55
|
+
* helper). Inbound flows: subscriber-fanout dispatch and the
|
|
56
|
+
* `notificationsBufferRef` / `notificationWaitersRef` queues hold this
|
|
57
|
+
* shape; typed bridges lift to `DecodedNotification<D>` after validation.
|
|
58
|
+
*/
|
|
59
|
+
export type RawDecodedNotification<D extends AnyNotificationDefinition> = D extends AnyNotificationDefinition ? DecodedNotificationShape<D, unknown> : never;
|
|
60
|
+
/**
|
|
61
|
+
* Post-validation notification: `params` is statically narrowed to the
|
|
62
|
+
* descriptor's payload type. Produced by the validating
|
|
63
|
+
* `decodeNotification` (group helper below) and by typed-bridge lifts
|
|
64
|
+
* (`validateNotificationParams` predicate); typed handlers consume this
|
|
65
|
+
* shape exclusively.
|
|
66
|
+
*/
|
|
67
|
+
export type DecodedNotification<D extends AnyNotificationDefinition> = D extends AnyNotificationDefinition ? DecodedNotificationShape<D, NotificationParamsOf<D>> : never;
|
|
68
|
+
/**
|
|
69
|
+
* What the wire decoder produces for an unknown method — the protocol
|
|
70
|
+
* has no `NotificationDefinition` registered for `method`, so there is
|
|
71
|
+
* no descriptor to attach. Conformance fuzz subscribers exercise this
|
|
72
|
+
* branch (e.g. `schema-conformance/notification-well-formedness-client`,
|
|
73
|
+
* `schema-conformance/malformed-frame-handling-client`); production
|
|
74
|
+
* typed handlers cannot consume it because the discriminator
|
|
75
|
+
* (`definition` field absent) excludes it from
|
|
76
|
+
* `RawDecodedNotification<…>`.
|
|
77
|
+
*/
|
|
78
|
+
export interface UnknownDecodedNotification extends NotificationFrame {
|
|
79
|
+
readonly _tag: "Notification";
|
|
80
|
+
readonly definition?: undefined;
|
|
81
|
+
}
|
|
40
82
|
declare const UnknownRpcMethodError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
41
83
|
readonly _tag: "UnknownRpcMethodError";
|
|
42
84
|
} & Readonly<A>;
|
|
@@ -84,9 +126,37 @@ export declare function makeNotificationBoundaryService<const Definitions extend
|
|
|
84
126
|
export declare function decodeRpcRequest<const Definitions extends readonly AnyRpcDefinition[]>(group: RpcDescriptorGroup<string, Definitions>, frame: RequestFrame): Effect.Effect<DecodedRpcRequest<Definitions[number]>, RpcRequestDecodeError>;
|
|
85
127
|
export declare function decodeNotification<const Definitions extends readonly AnyNotificationDefinition[]>(group: NotificationDescriptorGroup<string, Definitions>, frame: NotificationFrame): Effect.Effect<DecodedNotification<Definitions[number]>, NotificationDecodeError>;
|
|
86
128
|
export declare function isDecodedRpcRequest<D extends AnyRpcDefinition>(definition: D, request: DecodedRpcRequest<AnyRpcDefinition>): request is DecodedRpcRequest<D>;
|
|
129
|
+
/**
|
|
130
|
+
* Definition-identity guard for a notification.
|
|
131
|
+
*
|
|
132
|
+
* Two overload shapes:
|
|
133
|
+
* 1. Post-validation input (`DecodedNotification<…>`): narrows to
|
|
134
|
+
* `DecodedNotification<D>` — params remain typed.
|
|
135
|
+
* 2. Pre-validation input (raw + unknown union): narrows to
|
|
136
|
+
* `RawDecodedNotification<D>` — params stay `unknown` until a
|
|
137
|
+
* typed bridge lifts via `validateNotificationParams`.
|
|
138
|
+
*
|
|
139
|
+
* The runtime check is identical (descriptor identity); the type
|
|
140
|
+
* channel keeps the validated/unvalidated split honest. Order matters:
|
|
141
|
+
* the validated overload appears first so a `DecodedNotification`
|
|
142
|
+
* input picks it (subtype of the raw union).
|
|
143
|
+
*/
|
|
87
144
|
export declare function isDecodedNotification<D extends AnyNotificationDefinition>(definition: D, notification: DecodedNotification<AnyNotificationDefinition>): notification is DecodedNotification<D>;
|
|
145
|
+
export declare function isDecodedNotification<D extends AnyNotificationDefinition>(definition: D, notification: RawDecodedNotification<AnyNotificationDefinition> | UnknownDecodedNotification): notification is RawDecodedNotification<D>;
|
|
88
146
|
export declare function isDecodedRpcRequestInGroup<const Definitions extends readonly AnyRpcDefinition[]>(group: RpcDescriptorGroup<string, Definitions>, request: DecodedRpcRequest<AnyRpcDefinition>): request is DecodedRpcRequest<Definitions[number]>;
|
|
147
|
+
/**
|
|
148
|
+
* Group-membership guard for a notification.
|
|
149
|
+
*
|
|
150
|
+
* Two overload shapes parallel `isDecodedNotification`: validated
|
|
151
|
+
* inputs narrow to `DecodedNotification<Definitions[number]>` (params
|
|
152
|
+
* stay typed); raw inputs narrow to
|
|
153
|
+
* `RawDecodedNotification<Definitions[number]>` (params stay
|
|
154
|
+
* `unknown`). Inbound typed-bridge consumers (`service.handleNotification`)
|
|
155
|
+
* use the raw overload, then run `validateNotificationParams` to lift
|
|
156
|
+
* to the validated form before dispatching to typed handlers.
|
|
157
|
+
*/
|
|
89
158
|
export declare function isDecodedNotificationInGroup<const Definitions extends readonly AnyNotificationDefinition[]>(group: NotificationDescriptorGroup<string, Definitions>, notification: DecodedNotification<AnyNotificationDefinition>): notification is DecodedNotification<Definitions[number]>;
|
|
159
|
+
export declare function isDecodedNotificationInGroup<const Definitions extends readonly AnyNotificationDefinition[]>(group: NotificationDescriptorGroup<string, Definitions>, notification: RawDecodedNotification<AnyNotificationDefinition> | UnknownDecodedNotification): notification is RawDecodedNotification<Definitions[number]>;
|
|
90
160
|
export interface NotificationHandlerBinding<D extends AnyNotificationDefinition, E, R> {
|
|
91
161
|
readonly definition: D;
|
|
92
162
|
readonly handler: (params: NotificationParamsOf<D>) => Effect.Effect<void, E, R>;
|
|
@@ -105,15 +175,27 @@ export interface EffectNotificationHandlerLayer<Definitions extends readonly Any
|
|
|
105
175
|
/**
|
|
106
176
|
* Bind a tuple of notification handlers to their descriptors. Returns a
|
|
107
177
|
* dispatcher that routes each `DecodedNotification` to its handler by
|
|
108
|
-
* descriptor identity
|
|
109
|
-
* lookup with no name-string comparison on the hot path.
|
|
178
|
+
* descriptor identity, so dispatch is O(1) with no name-string compare.
|
|
110
179
|
*
|
|
111
180
|
* The internal handler map stores `unknown -> Effect<void, E, R>` because
|
|
112
|
-
* `Definitions[number]` is a union and each
|
|
113
|
-
*
|
|
114
|
-
* the
|
|
115
|
-
*
|
|
116
|
-
*
|
|
181
|
+
* `Definitions[number]` is a union and each binding is keyed to one
|
|
182
|
+
* concrete `D`. Descriptor identity proves the type-level link between
|
|
183
|
+
* the dispatched `params` and the bound handler — but it does NOT prove
|
|
184
|
+
* the runtime params actually conform for *inbound* notifications: the
|
|
185
|
+
* wire decoder is payload-opaque (required so
|
|
186
|
+
* `delivery/payload-opacity-client` and
|
|
187
|
+
* `boundary/schema-exhaustive-fuzz-client` conformance hold). Outbound
|
|
188
|
+
* bindings whose call sites already constructed `params` against the
|
|
189
|
+
* schema are safe. *Inbound* dispatchers MUST route through
|
|
190
|
+
* `client/src/ws-client.ts:validateNotificationParams` before invoking
|
|
191
|
+
* the handler. Current inbound bridges that do so:
|
|
192
|
+
* - `client/src/ws-client.ts:acceptTypedNotification` — typed
|
|
193
|
+
* `waitForNotification` promise resolver.
|
|
194
|
+
* - `client/src/service.ts:handleNotification` — subscriber-fanout
|
|
195
|
+
* dispatch into `notificationHandlers.dispatch`.
|
|
196
|
+
* The cast inside `dispatch(notification.params)` below is sound for
|
|
197
|
+
* outbound, unsound for unguarded inbound — every inbound bridge owns
|
|
198
|
+
* the validation step.
|
|
117
199
|
*/
|
|
118
200
|
export declare function defineEffectNotificationHandlers<const Definitions extends readonly AnyNotificationDefinition[], E, const Bindings extends NotificationHandlerTuple<Definitions, E>>(group: NotificationDescriptorGroup<string, Definitions>, bindings: Bindings): EffectNotificationHandlerLayer<Definitions, E, NotificationBindingRequirements<Bindings>>;
|
|
119
201
|
export {};
|
package/dist/rpc-groups.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-groups.d.ts","sourceRoot":"","sources":["../src/rpc-groups.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEjE,KAAK,gBAAgB,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChE,KAAK,yBAAyB,GAAG,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAezE,MAAM,WAAW,kBAAkB,CACjC,SAAS,SAAS,MAAM,EACxB,WAAW,SAAS,SAAS,gBAAgB,EAAE;IAE/C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,2BAA2B,CAC1C,SAAS,SAAS,MAAM,EACxB,WAAW,SAAS,SAAS,yBAAyB,EAAE;IAExD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;CACzD;AAED,wBAAgB,cAAc,CAC5B,KAAK,CAAC,SAAS,SAAS,MAAM,EAC9B,KAAK,CAAC,WAAW,SAAS,SAAS,gBAAgB,EAAE,EAErD,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,WAAW,GACvB,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,CAO5C;AAED,wBAAgB,uBAAuB,CACrC,KAAK,CAAC,SAAS,SAAS,MAAM,EAC9B,KAAK,CAAC,WAAW,SAAS,SAAS,yBAAyB,EAAE,EAE9D,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,WAAW,GACvB,2BAA2B,CAAC,SAAS,EAAE,WAAW,CAAC,CAOrD;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,gBAAgB,IACtD,CAAC,SAAS,gBAAgB,GACtB;IACE,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC9B,GACD,KAAK,CAAC;AAEZ,
|
|
1
|
+
{"version":3,"file":"rpc-groups.d.ts","sourceRoot":"","sources":["../src/rpc-groups.ts"],"names":[],"mappings":"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"}
|