@moltzap/protocol 2026.505.1 → 2026.505.2
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 +20 -7
- package/dist/rpc-groups.d.ts.map +1 -1
- package/dist/rpc-groups.js +28 -8
- 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 +118 -106
- package/dist/schema/notifications.d.ts.map +1 -1
- package/dist/schema/notifications.js +54 -38
- 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
|
@@ -33,6 +33,7 @@ export type DecodedRpcRequest<D extends AnyRpcDefinition> = D extends AnyRpcDefi
|
|
|
33
33
|
readonly params: ParamsOf<D>;
|
|
34
34
|
} : never;
|
|
35
35
|
export type DecodedNotification<D extends AnyNotificationDefinition> = D extends AnyNotificationDefinition ? NotificationFrame & {
|
|
36
|
+
readonly _tag: "Notification";
|
|
36
37
|
readonly definition: D;
|
|
37
38
|
readonly method: D["name"];
|
|
38
39
|
readonly params: NotificationParamsOf<D>;
|
|
@@ -105,15 +106,27 @@ export interface EffectNotificationHandlerLayer<Definitions extends readonly Any
|
|
|
105
106
|
/**
|
|
106
107
|
* Bind a tuple of notification handlers to their descriptors. Returns a
|
|
107
108
|
* dispatcher that routes each `DecodedNotification` to its handler by
|
|
108
|
-
* descriptor identity
|
|
109
|
-
* lookup with no name-string comparison on the hot path.
|
|
109
|
+
* descriptor identity, so dispatch is O(1) with no name-string compare.
|
|
110
110
|
*
|
|
111
111
|
* The internal handler map stores `unknown -> Effect<void, E, R>` because
|
|
112
|
-
* `Definitions[number]` is a union and each
|
|
113
|
-
*
|
|
114
|
-
* the
|
|
115
|
-
*
|
|
116
|
-
*
|
|
112
|
+
* `Definitions[number]` is a union and each binding is keyed to one
|
|
113
|
+
* concrete `D`. Descriptor identity proves the type-level link between
|
|
114
|
+
* the dispatched `params` and the bound handler — but it does NOT prove
|
|
115
|
+
* the runtime params actually conform for *inbound* notifications: the
|
|
116
|
+
* wire decoder is payload-opaque (required so
|
|
117
|
+
* `delivery/payload-opacity-client` and
|
|
118
|
+
* `boundary/schema-exhaustive-fuzz-client` conformance hold). Outbound
|
|
119
|
+
* bindings whose call sites already constructed `params` against the
|
|
120
|
+
* schema are safe. *Inbound* dispatchers MUST route through
|
|
121
|
+
* `client/src/ws-client.ts:validateNotificationParams` before invoking
|
|
122
|
+
* the handler. Current inbound bridges that do so:
|
|
123
|
+
* - `client/src/ws-client.ts:acceptTypedNotification` — typed
|
|
124
|
+
* `waitForNotification` promise resolver.
|
|
125
|
+
* - `client/src/service.ts:handleNotification` — subscriber-fanout
|
|
126
|
+
* dispatch into `notificationHandlers.dispatch`.
|
|
127
|
+
* The cast inside `dispatch(notification.params)` below is sound for
|
|
128
|
+
* outbound, unsound for unguarded inbound — every inbound bridge owns
|
|
129
|
+
* the validation step.
|
|
117
130
|
*/
|
|
118
131
|
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
132
|
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":"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
|
|
1
|
+
{"version":3,"file":"rpc-groups.d.ts","sourceRoot":"","sources":["../src/rpc-groups.ts"],"names":[],"mappings":"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"}
|
package/dist/rpc-groups.js
CHANGED
|
@@ -77,12 +77,20 @@ export function decodeNotification(group, frame) {
|
|
|
77
77
|
definition,
|
|
78
78
|
}));
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
// `_tag` attaches non-enumerably so the decoded value still satisfies
|
|
81
|
+
// `validators.notificationFrame` (strict `additionalProperties: false`):
|
|
82
|
+
// wire-shape preservation matters for downstream filters / serializers.
|
|
83
|
+
const decoded = {
|
|
81
84
|
...frame,
|
|
82
85
|
definition,
|
|
83
86
|
method: definition.name,
|
|
84
87
|
params,
|
|
88
|
+
};
|
|
89
|
+
Object.defineProperty(decoded, "_tag", {
|
|
90
|
+
value: "Notification",
|
|
91
|
+
enumerable: false,
|
|
85
92
|
});
|
|
93
|
+
return Effect.succeed(decoded);
|
|
86
94
|
}
|
|
87
95
|
export function isDecodedRpcRequest(definition, request) {
|
|
88
96
|
return request.definition === definition;
|
|
@@ -100,15 +108,27 @@ export const bindNotificationHandler = (definition, handler) => ({ definition, h
|
|
|
100
108
|
/**
|
|
101
109
|
* Bind a tuple of notification handlers to their descriptors. Returns a
|
|
102
110
|
* dispatcher that routes each `DecodedNotification` to its handler by
|
|
103
|
-
* descriptor identity
|
|
104
|
-
* lookup with no name-string comparison on the hot path.
|
|
111
|
+
* descriptor identity, so dispatch is O(1) with no name-string compare.
|
|
105
112
|
*
|
|
106
113
|
* The internal handler map stores `unknown -> Effect<void, E, R>` because
|
|
107
|
-
* `Definitions[number]` is a union and each
|
|
108
|
-
*
|
|
109
|
-
* the
|
|
110
|
-
*
|
|
111
|
-
*
|
|
114
|
+
* `Definitions[number]` is a union and each binding is keyed to one
|
|
115
|
+
* concrete `D`. Descriptor identity proves the type-level link between
|
|
116
|
+
* the dispatched `params` and the bound handler — but it does NOT prove
|
|
117
|
+
* the runtime params actually conform for *inbound* notifications: the
|
|
118
|
+
* wire decoder is payload-opaque (required so
|
|
119
|
+
* `delivery/payload-opacity-client` and
|
|
120
|
+
* `boundary/schema-exhaustive-fuzz-client` conformance hold). Outbound
|
|
121
|
+
* bindings whose call sites already constructed `params` against the
|
|
122
|
+
* schema are safe. *Inbound* dispatchers MUST route through
|
|
123
|
+
* `client/src/ws-client.ts:validateNotificationParams` before invoking
|
|
124
|
+
* the handler. Current inbound bridges that do so:
|
|
125
|
+
* - `client/src/ws-client.ts:acceptTypedNotification` — typed
|
|
126
|
+
* `waitForNotification` promise resolver.
|
|
127
|
+
* - `client/src/service.ts:handleNotification` — subscriber-fanout
|
|
128
|
+
* dispatch into `notificationHandlers.dispatch`.
|
|
129
|
+
* The cast inside `dispatch(notification.params)` below is sound for
|
|
130
|
+
* outbound, unsound for unguarded inbound — every inbound bridge owns
|
|
131
|
+
* the validation step.
|
|
112
132
|
*/
|
|
113
133
|
export function defineEffectNotificationHandlers(group, bindings) {
|
|
114
134
|
const dispatchHandlers = new Map();
|
package/dist/rpc-groups.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-groups.js","sourceRoot":"","sources":["../src/rpc-groups.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAYtC,MAAM,aAAa,GAAG,CACpB,WAAyB,EACM,EAAE;IACjC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAI,WAAyB,EAAkB,EAAE,CACrE,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;AAsBvB,MAAM,UAAU,cAAc,CAI5B,KAAgB,EAChB,WAAwB;IAExB,OAAO;QACL,KAAK;QACL,WAAW;QACX,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC;QAClC,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAIrC,KAAgB,EAChB,WAAwB;IAExB,OAAO;QACL,KAAK;QACL,WAAW;QACX,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC;QAClC,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC;KACzC,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc-groups.js","sourceRoot":"","sources":["../src/rpc-groups.ts"],"names":[],"mappings":"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"}
|