@moltzap/client 2026.520.2 → 2026.524.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/dist/agent-client.d.ts +66 -0
- package/dist/agent-client.d.ts.map +1 -0
- package/dist/agent-client.js +287 -0
- package/dist/agent-client.js.map +1 -0
- package/dist/auth.d.ts +1 -1
- package/dist/auth.js +1 -1
- package/dist/channel-core-context.test.js +16 -8
- package/dist/channel-core-context.test.js.map +1 -1
- package/dist/channel-core-dispatch.test.js +17 -10
- package/dist/channel-core-dispatch.test.js.map +1 -1
- package/dist/channel-core-enrichment.d.ts +2 -1
- package/dist/channel-core-enrichment.d.ts.map +1 -1
- package/dist/channel-core-enrichment.js +4 -2
- package/dist/channel-core-enrichment.js.map +1 -1
- package/dist/channel-core-test-support.d.ts +5 -3
- package/dist/channel-core-test-support.d.ts.map +1 -1
- package/dist/channel-core-test-support.js +6 -4
- package/dist/channel-core-test-support.js.map +1 -1
- package/dist/channel-core.d.ts +18 -13
- package/dist/channel-core.d.ts.map +1 -1
- package/dist/channel-core.js +11 -10
- package/dist/channel-core.js.map +1 -1
- package/dist/cli/commands/conversations.d.ts +15 -63
- package/dist/cli/commands/conversations.d.ts.map +1 -1
- package/dist/cli/commands/conversations.js +26 -167
- package/dist/cli/commands/conversations.js.map +1 -1
- package/dist/cli/commands/messages.d.ts +5 -2
- package/dist/cli/commands/messages.d.ts.map +1 -1
- package/dist/cli/commands/messages.js +10 -5
- package/dist/cli/commands/messages.js.map +1 -1
- package/dist/cli/commands/messages.test.js +6 -1
- package/dist/cli/commands/messages.test.js.map +1 -1
- package/dist/cli/commands/send.d.ts +6 -37
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +35 -57
- package/dist/cli/commands/send.js.map +1 -1
- package/dist/cli/commands/send.test.js +14 -19
- package/dist/cli/commands/send.test.js.map +1 -1
- package/dist/cli/commands/start.d.ts +3 -3
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +21 -20
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/start.test.js +9 -11
- package/dist/cli/commands/start.test.js.map +1 -1
- package/dist/cli/socket-client.d.ts +0 -17
- package/dist/cli/socket-client.d.ts.map +1 -1
- package/dist/cli/socket-client.js +1 -39
- package/dist/cli/socket-client.js.map +1 -1
- package/dist/cli/transport.d.ts.map +1 -1
- package/dist/cli/transport.js +33 -6
- package/dist/cli/transport.js.map +1 -1
- package/dist/cli/transport.test.js +31 -12
- package/dist/cli/transport.test.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/notification/__tests__/snapshot-semantics.types-check.js +1 -1
- package/dist/notification/stream.d.ts +3 -3
- package/dist/notification/stream.js +3 -3
- package/dist/runtime/close-info.d.ts +2 -2
- package/dist/runtime/close-info.js +1 -1
- package/dist/runtime/frame.test.js +4 -2
- package/dist/runtime/frame.test.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/local-history.d.ts +1 -1
- package/dist/runtime/local-history.d.ts.map +1 -1
- package/dist/runtime/local-history.js +1 -1
- package/dist/runtime/local-history.js.map +1 -1
- package/dist/runtime/subscribers.d.ts +3 -3
- package/dist/runtime/subscribers.js +2 -2
- package/dist/service-archive-purge.d.ts +17 -0
- package/dist/service-archive-purge.d.ts.map +1 -0
- package/dist/service-archive-purge.js +32 -0
- package/dist/service-archive-purge.js.map +1 -0
- package/dist/service.d.ts +15 -19
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +79 -100
- package/dist/service.js.map +1 -1
- package/dist/service.test.js +50 -26
- package/dist/service.test.js.map +1 -1
- package/dist/test/index.d.ts +4 -4
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +4 -4
- package/dist/test/index.js.map +1 -1
- package/dist/test-utils/channel-service-fixture.d.ts +2 -1
- package/dist/test-utils/channel-service-fixture.d.ts.map +1 -1
- package/dist/test-utils/channel-service-fixture.js +11 -6
- package/dist/test-utils/channel-service-fixture.js.map +1 -1
- package/dist/test-utils/conformance-adapter.d.ts +3 -3
- package/dist/test-utils/conformance-adapter.js +7 -7
- package/dist/test-utils/conformance-adapter.js.map +1 -1
- package/dist/test-utils/ids.d.ts +3 -1
- package/dist/test-utils/ids.d.ts.map +1 -1
- package/dist/test-utils/ids.js +3 -1
- package/dist/test-utils/ids.js.map +1 -1
- package/dist/test-utils/index.d.ts +1 -1
- package/dist/test-utils/index.d.ts.map +1 -1
- package/dist/test-utils/index.js +1 -1
- package/dist/test-utils/index.js.map +1 -1
- package/dist/{ws-client-test-support.d.ts → tm-client-test-support.d.ts} +14 -13
- package/dist/tm-client-test-support.d.ts.map +1 -0
- package/dist/{ws-client-test-support.js → tm-client-test-support.js} +51 -18
- package/dist/tm-client-test-support.js.map +1 -0
- package/dist/{ws-client.d.ts → tm-client.d.ts} +14 -19
- package/dist/tm-client.d.ts.map +1 -0
- package/dist/{ws-client.js → tm-client.js} +10 -24
- package/dist/tm-client.js.map +1 -0
- package/dist/tm-client.test.d.ts +2 -0
- package/dist/tm-client.test.d.ts.map +1 -0
- package/dist/{ws-client.test.js → tm-client.test.js} +41 -29
- package/dist/tm-client.test.js.map +1 -0
- package/package.json +5 -4
- package/dist/cli/commands/conversations-v2.test.d.ts +0 -2
- package/dist/cli/commands/conversations-v2.test.d.ts.map +0 -1
- package/dist/cli/commands/conversations-v2.test.js +0 -107
- package/dist/cli/commands/conversations-v2.test.js.map +0 -1
- package/dist/ws-client-test-support.d.ts.map +0 -1
- package/dist/ws-client-test-support.js.map +0 -1
- package/dist/ws-client.d.ts.map +0 -1
- package/dist/ws-client.js.map +0 -1
- package/dist/ws-client.test.d.ts +0 -2
- package/dist/ws-client.test.d.ts.map +0 -1
- package/dist/ws-client.test.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Stream-returning constructors for `
|
|
3
|
-
* `
|
|
2
|
+
* Stream-returning constructors for `MoltZapAgentClient.subscribe` and
|
|
3
|
+
* `MoltZapAgentClient.subscribeAll` (Spec B, #596).
|
|
4
4
|
*
|
|
5
5
|
* Architect decision **AD1 — path (a)**: trust `Stream.async` cancellation
|
|
6
6
|
* to drive registry-stored `unregister` finalizer. The registry's
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* internal queue. No `NotConnectedError` until terminal close.
|
|
25
25
|
* 4. Reconnect leaves registry callbacks intact; `subsRef` survives
|
|
26
26
|
* transient disconnects (preserved invariant).
|
|
27
|
-
* 5. `
|
|
27
|
+
* 5. `MoltZapAgentClient.close` invokes `SubscriberRegistry.closeAll`, which
|
|
28
28
|
* calls each live `sub.onClose(new NotConnectedError(...))`. Each
|
|
29
29
|
* `Stream.async`-backed consumer fails with `NotConnectedError`
|
|
30
30
|
* via `emit.fail` deterministically (no Queue/shutdown race).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable jsdoc/text-escaping -- JSDoc references to generic types like `Stream.async<DecodedNotification<D>>` use the natural angle-bracket form (TS source style) inside backtick-fenced code spans; the lint rule's pre-render check fires false positives on these multi-line spans. Matches the precedent in filter-equivalence.test.ts. */
|
|
2
2
|
/**
|
|
3
|
-
* Stream-returning constructors for `
|
|
4
|
-
* `
|
|
3
|
+
* Stream-returning constructors for `MoltZapAgentClient.subscribe` and
|
|
4
|
+
* `MoltZapAgentClient.subscribeAll` (Spec B, #596).
|
|
5
5
|
*
|
|
6
6
|
* Architect decision **AD1 — path (a)**: trust `Stream.async` cancellation
|
|
7
7
|
* to drive registry-stored `unregister` finalizer. The registry's
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* internal queue. No `NotConnectedError` until terminal close.
|
|
26
26
|
* 4. Reconnect leaves registry callbacks intact; `subsRef` survives
|
|
27
27
|
* transient disconnects (preserved invariant).
|
|
28
|
-
* 5. `
|
|
28
|
+
* 5. `MoltZapAgentClient.close` invokes `SubscriberRegistry.closeAll`, which
|
|
29
29
|
* calls each live `sub.onClose(new NotConnectedError(...))`. Each
|
|
30
30
|
* `Stream.async`-backed consumer fails with `NotConnectedError`
|
|
31
31
|
* via `emit.fail` deterministically (no Queue/shutdown race).
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* the defaults to synthesize when it does not.
|
|
9
9
|
*
|
|
10
10
|
* Pure module: no I/O, no Refs, no fibers. Called exactly once per socket
|
|
11
|
-
* lifetime from `
|
|
11
|
+
* lifetime from `MoltZapAgentClient`'s reader-fiber `Effect.onExit` hook
|
|
12
12
|
* (`ws-client.ts:386-411` today — post-impl the extraction happens at that
|
|
13
13
|
* same point before calling `onDisconnect(close)`).
|
|
14
14
|
*
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
import { Cause, Data, Exit } from "effect";
|
|
20
20
|
import * as Socket from "@effect/platform/Socket";
|
|
21
21
|
/**
|
|
22
|
-
* WebSocket close metadata surfaced to `
|
|
22
|
+
* WebSocket close metadata surfaced to `AgentClientOptions.onDisconnect`
|
|
23
23
|
* (required arg post-migration — see design doc §Deletions, OQ-6) and to
|
|
24
24
|
* the conformance-adapter's `RealClientCloseEvent`. Mirrors the WHATWG
|
|
25
25
|
* WebSocket `CloseEvent` fields restricted to `{code, reason}` — `wasClean`
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* the defaults to synthesize when it does not.
|
|
9
9
|
*
|
|
10
10
|
* Pure module: no I/O, no Refs, no fibers. Called exactly once per socket
|
|
11
|
-
* lifetime from `
|
|
11
|
+
* lifetime from `MoltZapAgentClient`'s reader-fiber `Effect.onExit` hook
|
|
12
12
|
* (`ws-client.ts:386-411` today — post-impl the extraction happens at that
|
|
13
13
|
* same point before calling `onDisconnect(close)`).
|
|
14
14
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Effect, Exit } from "effect";
|
|
2
2
|
import { expect, it } from "vitest";
|
|
3
3
|
import { MessageReceivedNotificationDefinition } from "@moltzap/protocol";
|
|
4
|
-
import { agentId, conversationId, messageId } from "@moltzap/protocol/testing";
|
|
4
|
+
import { agentId, conversationId, messageId, taskId, } from "@moltzap/protocol/testing";
|
|
5
5
|
import { decodeFrames } from "./frame.js";
|
|
6
6
|
import { MalformedFrameError } from "./errors.js";
|
|
7
7
|
const TEST_MESSAGE = {
|
|
@@ -11,8 +11,10 @@ const TEST_MESSAGE = {
|
|
|
11
11
|
parts: [{ type: "text", text: "hello" }],
|
|
12
12
|
createdAt: "2026-05-03T00:00:00.000Z",
|
|
13
13
|
};
|
|
14
|
+
const TEST_TASK_ID = taskId("44444444-4444-4444-8444-444444444444");
|
|
14
15
|
it("decodes one WebSocket notification message", () => Effect.runPromise(Effect.gen(function* () {
|
|
15
16
|
const raw = JSON.stringify(MessageReceivedNotificationDefinition.encode({
|
|
17
|
+
taskId: TEST_TASK_ID,
|
|
16
18
|
message: TEST_MESSAGE,
|
|
17
19
|
}));
|
|
18
20
|
const decoded = yield* decodeFrames(raw);
|
|
@@ -20,7 +22,7 @@ it("decodes one WebSocket notification message", () => Effect.runPromise(Effect.
|
|
|
20
22
|
expect(decoded[0]).toMatchObject({
|
|
21
23
|
_tag: "Notification",
|
|
22
24
|
method: MessageReceivedNotificationDefinition.name,
|
|
23
|
-
params: { message: TEST_MESSAGE },
|
|
25
|
+
params: { taskId: TEST_TASK_ID, message: TEST_MESSAGE },
|
|
24
26
|
});
|
|
25
27
|
})));
|
|
26
28
|
// S9 fail-close: stale shapes are rejected at the wire boundary.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame.test.js","sourceRoot":"","sources":["../../src/runtime/frame.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,qCAAqC,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"frame.test.js","sourceRoot":"","sources":["../../src/runtime/frame.test.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Spec B (#596) deleted the three-field `SubscriptionFilter` re-export — the
|
|
5
5
|
* notification consumption surface is now Stream-based via
|
|
6
|
-
* `
|
|
6
|
+
* `MoltZapAgentClient.subscribe(def, refinement?)`.
|
|
7
7
|
*/
|
|
8
8
|
export { LocalServiceCommands } from "./local-service-commands.js";
|
|
9
9
|
export type { LocalServiceCommand } from "./local-service-commands.js";
|
package/dist/runtime/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Spec B (#596) deleted the three-field `SubscriptionFilter` re-export — the
|
|
5
5
|
* notification consumption surface is now Stream-based via
|
|
6
|
-
* `
|
|
6
|
+
* `MoltZapAgentClient.subscribe(def, refinement?)`.
|
|
7
7
|
*/
|
|
8
8
|
export { LocalServiceCommands } from "./local-service-commands.js";
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Message } from "@moltzap/protocol";
|
|
2
2
|
import { Effect, HashMap, ParseResult, Schema } from "effect";
|
|
3
3
|
declare const HistoryRequestSchema: Schema.Struct<{
|
|
4
|
+
taskId: Schema.filter<typeof Schema.String>;
|
|
4
5
|
conversationId: Schema.filter<typeof Schema.String>;
|
|
5
6
|
limit: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.Number>>, {
|
|
6
7
|
default: () => number;
|
|
@@ -29,7 +30,6 @@ declare const HistoryResponseSchema: Schema.Struct<{
|
|
|
29
30
|
hasMore: typeof Schema.Boolean;
|
|
30
31
|
conversationMeta: Schema.optional<Schema.Struct<{
|
|
31
32
|
id: typeof Schema.String;
|
|
32
|
-
type: Schema.Literal<["dm", "group"]>;
|
|
33
33
|
name: Schema.optional<typeof Schema.String>;
|
|
34
34
|
createdBy: typeof Schema.String;
|
|
35
35
|
metadata: Schema.optional<Schema.Struct<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-history.d.ts","sourceRoot":"","sources":["../../src/runtime/local-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAQ,MAAM,EAAE,OAAO,EAAU,WAAW,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAW5E,QAAA,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"local-history.d.ts","sourceRoot":"","sources":["../../src/runtime/local-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAQ,MAAM,EAAE,OAAO,EAAU,WAAW,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAW5E,QAAA,MAAM,oBAAoB;;;;;;;EAOxB,CAAC;AAEH,QAAA,MAAM,2BAA2B;;;;;;;;EAQ/B,CAAC;AAuBH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;EAKzB,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CACrD,OAAO,oBAAoB,CAC5B,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAC7E,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CACpD,OAAO,2BAA2B,CACnC,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE/E,UAAU,2BAA2B;IACnC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;;;;AAED,qBAAa,wBAAyB,SAAQ,8BAE5C;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;AAUL,eAAO,MAAM,qBAAqB,GAChC,OAAO,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,UAAU,CACJ,CAAC;AAErD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,GACd,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,wBAAwB,CAAC,CASzD;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,2BAA2B,GACnC,qBAAqB,CAevB;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,OAAO,CAAC,OAAO,CAC1B,MAAM,EACN,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAC7C,EACD,OAAO,EAAE,cAAc,GACtB,WAAW,CAAC,MAAM,CAAC,CAQrB"}
|
|
@@ -4,6 +4,7 @@ const DEFAULT_HISTORY_LIMIT = 10;
|
|
|
4
4
|
const MAX_HISTORY_LIMIT = 100;
|
|
5
5
|
const HistoryLimit = Schema.Number.pipe(Schema.int(), Schema.between(1, MAX_HISTORY_LIMIT));
|
|
6
6
|
const HistoryRequestSchema = Schema.Struct({
|
|
7
|
+
taskId: Schema.String.pipe(Schema.minLength(1)),
|
|
7
8
|
conversationId: Schema.String.pipe(Schema.minLength(1)),
|
|
8
9
|
limit: Schema.optionalWith(HistoryLimit, {
|
|
9
10
|
default: () => DEFAULT_HISTORY_LIMIT,
|
|
@@ -27,7 +28,6 @@ const ConversationMetadataSchema = Schema.Struct({
|
|
|
27
28
|
});
|
|
28
29
|
const HistoryConversationMetaSchema = Schema.Struct({
|
|
29
30
|
id: Schema.String,
|
|
30
|
-
type: Schema.Literal("dm", "group"),
|
|
31
31
|
name: Schema.optional(Schema.String),
|
|
32
32
|
createdBy: Schema.String,
|
|
33
33
|
metadata: Schema.optional(ConversationMetadataSchema),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-history.js","sourceRoot":"","sources":["../../src/runtime/local-history.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CACrC,MAAM,CAAC,GAAG,EAAE,EACZ,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,CACrC,CAAC;AAEF,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvD,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE;QACvC,OAAO,EAAE,GAAG,EAAE,CAAC,qBAAqB;KACrC,CAAC;IACF,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC;IAChD,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM;IACzB,KAAK,EAAE,MAAM,CAAC,OAAO;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,KAAK,EAAE,MAAM,CAAC,OAAO;CACtB,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC,QAAQ,CACnB,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC,MAAM;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM;KACrB,CAAC,CACH,CACF;CACF,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,CAAC;IAClD,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"local-history.js","sourceRoot":"","sources":["../../src/runtime/local-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-subscription notification registry for `
|
|
2
|
+
* Per-subscription notification registry for `MoltZapAgentClient`.
|
|
3
3
|
*
|
|
4
4
|
* Responsibility: own the list of live subscriptions and fan each inbound
|
|
5
5
|
* JSON-RPC notification out to every subscription whose definition (and
|
|
@@ -57,7 +57,7 @@ interface SubscriptionHandle {
|
|
|
57
57
|
readonly unregister: Effect.Effect<void, never>;
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
|
-
* Subscriber registry. One instance per `
|
|
60
|
+
* Subscriber registry. One instance per `MoltZapAgentClient`, created at
|
|
61
61
|
* construction time and owned by the client.
|
|
62
62
|
*
|
|
63
63
|
* `register<D>` accepts typed `onFrame` / `onClose` callbacks for the
|
|
@@ -87,7 +87,7 @@ export interface SubscriberRegistry {
|
|
|
87
87
|
}) => Effect.Effect<SubscriptionHandle, never>;
|
|
88
88
|
/**
|
|
89
89
|
* Fan an inbound notification out to every matching subscription. Called
|
|
90
|
-
* from `
|
|
90
|
+
* from `MoltZapAgentClient.handleDecodedNotification`. Snapshot semantic:
|
|
91
91
|
* unsubscribes that commit mid-dispatch observe NEXT-frame semantics
|
|
92
92
|
* (AD1 path-(a) contract).
|
|
93
93
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable jsdoc/text-escaping -- JSDoc references to generic types like `NotificationParamsOf<D>` use the natural angle-bracket form (TS source style) inside backtick-fenced code spans; the lint rule's pre-render check fires false positives on these multi-line spans. Matches the precedent in filter-equivalence.test.ts. */
|
|
2
2
|
/**
|
|
3
|
-
* Per-subscription notification registry for `
|
|
3
|
+
* Per-subscription notification registry for `MoltZapAgentClient`.
|
|
4
4
|
*
|
|
5
5
|
* Responsibility: own the list of live subscriptions and fan each inbound
|
|
6
6
|
* JSON-RPC notification out to every subscription whose definition (and
|
|
@@ -50,7 +50,7 @@ function closeSubscriber(sub, cause) {
|
|
|
50
50
|
return Effect.suspend(() => sub.onClose(cause)).pipe(Effect.catchAllDefect((err) => Effect.logWarning("subscriber onClose callback threw", err)));
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
* Construct an empty registry. Called once from the `
|
|
53
|
+
* Construct an empty registry. Called once from the `MoltZapAgentClient`
|
|
54
54
|
* constructor.
|
|
55
55
|
*
|
|
56
56
|
* Implementation notes:
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { HashMap } from "effect";
|
|
2
|
+
import type { ConversationId, TaskId } from "@moltzap/protocol/task";
|
|
3
|
+
/**
|
|
4
|
+
* Helpers extracted from `service.ts → markConversationArchived` to keep
|
|
5
|
+
* the function under the 50-line ESLint cap and the file under the
|
|
6
|
+
* 1050-line cap.
|
|
7
|
+
*/
|
|
8
|
+
export declare function purgeAgentCacheEntries(m: HashMap.HashMap<string, {
|
|
9
|
+
readonly taskId: TaskId;
|
|
10
|
+
readonly conversationId: ConversationId;
|
|
11
|
+
}>, conversationId: ConversationId): HashMap.HashMap<string, {
|
|
12
|
+
readonly taskId: TaskId;
|
|
13
|
+
readonly conversationId: ConversationId;
|
|
14
|
+
}>;
|
|
15
|
+
export declare function purgeLastNotified(outer: HashMap.HashMap<string, HashMap.HashMap<string, string>>, conversationId: ConversationId): HashMap.HashMap<string, HashMap.HashMap<string, string>>;
|
|
16
|
+
export declare function purgeLastRead(outer: HashMap.HashMap<string, HashMap.HashMap<string, ReadonlySet<string>>>, conversationId: ConversationId): HashMap.HashMap<string, HashMap.HashMap<string, ReadonlySet<string>>>;
|
|
17
|
+
//# sourceMappingURL=service-archive-purge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-archive-purge.d.ts","sourceRoot":"","sources":["../src/service-archive-purge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErE;;;;GAIG;AAEH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,OAAO,CAAC,OAAO,CAChB,MAAM,EACN;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;CAAE,CACrE,EACD,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAChB,MAAM,EACN;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;CAAE,CACrE,CAWA;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC/D,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAY1D;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAC5E,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAavE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { HashMap } from "effect";
|
|
2
|
+
/**
|
|
3
|
+
* Helpers extracted from `service.ts → markConversationArchived` to keep
|
|
4
|
+
* the function under the 50-line ESLint cap and the file under the
|
|
5
|
+
* 1050-line cap.
|
|
6
|
+
*/
|
|
7
|
+
export function purgeAgentCacheEntries(m, conversationId) {
|
|
8
|
+
let next = HashMap.empty();
|
|
9
|
+
for (const [agentName, entry] of HashMap.entries(m)) {
|
|
10
|
+
if (entry.conversationId !== conversationId) {
|
|
11
|
+
next = HashMap.set(next, agentName, entry);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return next;
|
|
15
|
+
}
|
|
16
|
+
export function purgeLastNotified(outer, conversationId) {
|
|
17
|
+
let next = HashMap.empty();
|
|
18
|
+
for (const [viewConvId, markers] of HashMap.entries(outer)) {
|
|
19
|
+
if (viewConvId !== conversationId) {
|
|
20
|
+
next = HashMap.set(next, viewConvId, HashMap.remove(markers, conversationId));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return next;
|
|
24
|
+
}
|
|
25
|
+
export function purgeLastRead(outer, conversationId) {
|
|
26
|
+
let next = HashMap.empty();
|
|
27
|
+
for (const [sessionKey, perConv] of HashMap.entries(outer)) {
|
|
28
|
+
next = HashMap.set(next, sessionKey, HashMap.remove(perConv, conversationId));
|
|
29
|
+
}
|
|
30
|
+
return next;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=service-archive-purge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-archive-purge.js","sourceRoot":"","sources":["../src/service-archive-purge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGjC;;;;GAIG;AAEH,MAAM,UAAU,sBAAsB,CACpC,CAGC,EACD,cAA8B;IAK9B,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,EAGrB,CAAC;IACJ,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,IAAI,KAAK,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC5C,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAA+D,EAC/D,cAA8B;IAE9B,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,EAA2C,CAAC;IACpE,KAAK,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;YAClC,IAAI,GAAG,OAAO,CAAC,GAAG,CAChB,IAAI,EACJ,UAAU,EACV,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAA4E,EAC5E,cAA8B;IAE9B,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,EAGrB,CAAC;IACJ,KAAK,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,IAAI,GAAG,OAAO,CAAC,GAAG,CAChB,IAAI,EACJ,UAAU,EACV,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CACxC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/service.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { type HelloOk, type AnyNotificationDefinition, type DecodedNotification, DispatchRequest, DispatchRelease, DispatchesConsumed, DispatchesExpired, DispatchesGet, type DispatchId, type Message, type
|
|
1
|
+
import { type HelloOk, type AnyNotificationDefinition, type DecodedNotification, DispatchRequest, DispatchRelease, DispatchesConsumed, DispatchesExpired, DispatchesGet, type DispatchId, type Message, type TaskConversationArchivedNotification, type TaskConversationUnarchivedNotification, type RpcCallError, RpcTimeoutError, type NotificationParamsOf, type ParamsOf, type ResultOf, type RpcDefinition } from "@moltzap/protocol";
|
|
2
|
+
import type { ConversationId, LeaseId, MessageId, TaskId } from "@moltzap/protocol/task";
|
|
2
3
|
import { Effect } from "effect";
|
|
3
|
-
import { type RpcCallOptions } from "./
|
|
4
|
+
import { type RpcCallOptions } from "./agent-client.js";
|
|
4
5
|
import { AgentNotFoundError } from "./runtime/errors.js";
|
|
5
6
|
/**
|
|
6
7
|
* Errors that can surface from the Effect-based service API. Matches the
|
|
7
|
-
* failure channel of `
|
|
8
|
+
* failure channel of `MoltZapAgentClient.sendRpc` / `connect`.
|
|
8
9
|
*/
|
|
9
10
|
export type ServiceRpcError = RpcCallError | RpcTimeoutError;
|
|
10
11
|
export interface ConversationMeta {
|
|
@@ -44,7 +45,10 @@ export interface ServiceOptions {
|
|
|
44
45
|
}
|
|
45
46
|
type NotificationHandler<T> = (data: T) => void;
|
|
46
47
|
interface ServiceHandlerPayloads {
|
|
47
|
-
readonly message:
|
|
48
|
+
readonly message: {
|
|
49
|
+
readonly taskId: TaskId;
|
|
50
|
+
readonly message: Message;
|
|
51
|
+
};
|
|
48
52
|
/**
|
|
49
53
|
* The "raw notification" surface receives the wire decoder's
|
|
50
54
|
* `DecodedNotification<AnyNotificationDefinition>` union — known methods carry the
|
|
@@ -57,8 +61,8 @@ interface ServiceHandlerPayloads {
|
|
|
57
61
|
readonly rawNotification: DecodedNotification<AnyNotificationDefinition>;
|
|
58
62
|
readonly disconnect: void;
|
|
59
63
|
readonly reconnect: HelloOk;
|
|
60
|
-
readonly conversationArchived:
|
|
61
|
-
readonly conversationUnarchived:
|
|
64
|
+
readonly conversationArchived: TaskConversationArchivedNotification;
|
|
65
|
+
readonly conversationUnarchived: TaskConversationUnarchivedNotification;
|
|
62
66
|
readonly dispatchRelease: NotificationParamsOf<typeof DispatchRelease>;
|
|
63
67
|
readonly dispatchesConsumed: NotificationParamsOf<typeof DispatchesConsumed>;
|
|
64
68
|
readonly dispatchesExpired: NotificationParamsOf<typeof DispatchesExpired>;
|
|
@@ -164,9 +168,9 @@ export declare class MoltZapService {
|
|
|
164
168
|
* silent (a cold agent is an expected transient state).
|
|
165
169
|
*/
|
|
166
170
|
resolveAgentName(agentId: string): Effect.Effect<string, never>;
|
|
167
|
-
send(
|
|
168
|
-
replyTo?:
|
|
169
|
-
dispatchLeaseId?:
|
|
171
|
+
send(taskId: TaskId, conversationId: ConversationId, text: string, opts?: {
|
|
172
|
+
replyTo?: MessageId;
|
|
173
|
+
dispatchLeaseId?: LeaseId;
|
|
170
174
|
}): Effect.Effect<void, ServiceRpcError>;
|
|
171
175
|
/**
|
|
172
176
|
* Issue `dispatch/request`. The server returns the ack
|
|
@@ -183,8 +187,9 @@ export declare class MoltZapService {
|
|
|
183
187
|
readonly dispatchId: DispatchId;
|
|
184
188
|
}): Effect.Effect<ResultOf<typeof DispatchesGet>, ServiceRpcError>;
|
|
185
189
|
sendToAgent(agentName: string, text: string, opts?: {
|
|
186
|
-
replyTo?:
|
|
190
|
+
replyTo?: MessageId;
|
|
187
191
|
}): Effect.Effect<void, ServiceRpcError | AgentNotFoundError>;
|
|
192
|
+
private resolveReusableConversationId;
|
|
188
193
|
/**
|
|
189
194
|
* Generate a system reminder with updates from other conversations.
|
|
190
195
|
* Each conversation has its own view of what's "new" — markers are tracked
|
|
@@ -219,13 +224,6 @@ export declare class MoltZapService {
|
|
|
219
224
|
private advanceLastNotified;
|
|
220
225
|
on<K extends ServiceHandlerName>(notification: K, handler: NotificationHandler<ServiceHandlerPayloads[K]>): void;
|
|
221
226
|
sendRpc<D extends RpcDefinition<string, any, any>>(definition: D, params: ParamsOf<D>, opts?: RpcCallOptions): Effect.Effect<ResultOf<D>, ServiceRpcError>;
|
|
222
|
-
/**
|
|
223
|
-
* Fetch full conversation details (including participants) via RPC and merge
|
|
224
|
-
* into the local cache. Called on ConversationCreated notifications because
|
|
225
|
-
* the notification schema omits the participants list — see
|
|
226
|
-
* protocol/notifications.ts.
|
|
227
|
-
*/
|
|
228
|
-
private refreshConversationParticipants;
|
|
229
227
|
protected handleNotification(notification: DecodedNotification<AnyNotificationDefinition>): void;
|
|
230
228
|
private recordNotificationTrace;
|
|
231
229
|
private dispatchTypedNotification;
|
|
@@ -244,10 +242,8 @@ export declare class MoltZapService {
|
|
|
244
242
|
private recordMessageIdIfNew;
|
|
245
243
|
private handleMessageReceivedNotification;
|
|
246
244
|
private handleConversationCreatedNotification;
|
|
247
|
-
private handleConversationUpdatedNotification;
|
|
248
245
|
private handleConversationArchivedNotification;
|
|
249
246
|
private handleConversationUnarchivedNotification;
|
|
250
|
-
private upsertConversationNotification;
|
|
251
247
|
private markConversationArchived;
|
|
252
248
|
private storeMessage;
|
|
253
249
|
}
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|