@moltzap/client 2026.503.3 → 2026.504.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/auth.d.ts +10 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +8 -5
- package/dist/auth.js.map +1 -1
- package/dist/channel-core.d.ts +1 -4
- package/dist/channel-core.d.ts.map +1 -1
- package/dist/channel-core.js +0 -9
- package/dist/channel-core.js.map +1 -1
- package/dist/channel-core.test.js +90 -71
- package/dist/channel-core.test.js.map +1 -1
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +5 -3
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/apps.d.ts +9 -27
- package/dist/cli/commands/apps.d.ts.map +1 -1
- package/dist/cli/commands/apps.js +36 -57
- package/dist/cli/commands/apps.js.map +1 -1
- package/dist/cli/commands/apps.test.js +63 -75
- package/dist/cli/commands/apps.test.js.map +1 -1
- package/dist/cli/commands/contacts.d.ts +1 -5
- package/dist/cli/commands/contacts.d.ts.map +1 -1
- package/dist/cli/commands/contacts.js +14 -27
- package/dist/cli/commands/contacts.js.map +1 -1
- package/dist/cli/commands/conversations-v2.test.js +34 -29
- package/dist/cli/commands/conversations-v2.test.js.map +1 -1
- package/dist/cli/commands/conversations.d.ts +7 -3
- package/dist/cli/commands/conversations.d.ts.map +1 -1
- package/dist/cli/commands/conversations.js +63 -48
- package/dist/cli/commands/conversations.js.map +1 -1
- package/dist/cli/commands/messages.d.ts +7 -3
- package/dist/cli/commands/messages.d.ts.map +1 -1
- package/dist/cli/commands/messages.js +13 -15
- package/dist/cli/commands/messages.js.map +1 -1
- package/dist/cli/commands/messages.test.js +30 -31
- package/dist/cli/commands/messages.test.js.map +1 -1
- package/dist/cli/commands/ping.d.ts +9 -0
- package/dist/cli/commands/ping.d.ts.map +1 -1
- package/dist/cli/commands/ping.js +17 -4
- package/dist/cli/commands/ping.js.map +1 -1
- package/dist/cli/commands/presence.d.ts.map +1 -1
- package/dist/cli/commands/presence.js +6 -4
- package/dist/cli/commands/presence.js.map +1 -1
- package/dist/cli/commands/register.d.ts.map +1 -1
- package/dist/cli/commands/register.js +2 -1
- package/dist/cli/commands/register.js.map +1 -1
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +22 -11
- package/dist/cli/commands/send.js.map +1 -1
- package/dist/cli/commands/send.test.js +12 -9
- package/dist/cli/commands/send.test.js.map +1 -1
- package/dist/cli/commands/status.js +2 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/test-transport.d.ts +10 -0
- package/dist/cli/commands/test-transport.d.ts.map +1 -0
- package/dist/cli/commands/test-transport.js +29 -0
- package/dist/cli/commands/test-transport.js.map +1 -0
- package/dist/cli/commands/whoami.d.ts.map +1 -1
- package/dist/cli/commands/whoami.js +5 -1
- package/dist/cli/commands/whoami.js.map +1 -1
- package/dist/cli/config.d.ts +42 -6
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +91 -27
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/http-client.d.ts +11 -1
- package/dist/cli/http-client.d.ts.map +1 -1
- package/dist/cli/http-client.js +13 -4
- package/dist/cli/http-client.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/profile.d.ts +3 -4
- package/dist/cli/profile.d.ts.map +1 -1
- package/dist/cli/profile.js +42 -29
- package/dist/cli/profile.js.map +1 -1
- package/dist/cli/runtime.d.ts.map +1 -1
- package/dist/cli/runtime.js +9 -4
- package/dist/cli/runtime.js.map +1 -1
- package/dist/cli/socket-client.d.ts +29 -4
- package/dist/cli/socket-client.d.ts.map +1 -1
- package/dist/cli/socket-client.js +52 -21
- package/dist/cli/socket-client.js.map +1 -1
- package/dist/cli/transport.d.ts +6 -9
- package/dist/cli/transport.d.ts.map +1 -1
- package/dist/cli/transport.js +47 -37
- package/dist/cli/transport.js.map +1 -1
- package/dist/cli/transport.test.js +19 -16
- package/dist/cli/transport.test.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/__tests__/app-callback-partition-key.test.d.ts +2 -0
- package/dist/internal/__tests__/app-callback-partition-key.test.d.ts.map +1 -0
- package/dist/internal/__tests__/app-callback-partition-key.test.js +33 -0
- package/dist/internal/__tests__/app-callback-partition-key.test.js.map +1 -0
- package/dist/internal/__tests__/app-callback-partition-worker.test.d.ts +2 -0
- package/dist/internal/__tests__/app-callback-partition-worker.test.d.ts.map +1 -0
- package/dist/internal/__tests__/{s2c-partition-worker.test.js → app-callback-partition-worker.test.js} +6 -8
- package/dist/internal/__tests__/app-callback-partition-worker.test.js.map +1 -0
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher-real-ws.test.d.ts +2 -0
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher-real-ws.test.d.ts.map +1 -0
- package/dist/internal/__tests__/{s2c-partitioned-dispatcher-real-ws.test.js → app-callback-partitioned-dispatcher-real-ws.test.js} +69 -93
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher-real-ws.test.js.map +1 -0
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher.test.d.ts +2 -0
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher.test.d.ts.map +1 -0
- package/dist/internal/__tests__/{s2c-partitioned-dispatcher.test.js → app-callback-partitioned-dispatcher.test.js} +36 -69
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher.test.js.map +1 -0
- package/dist/internal/__tests__/app-callback-test-requests.d.ts +58 -0
- package/dist/internal/__tests__/app-callback-test-requests.d.ts.map +1 -0
- package/dist/internal/__tests__/app-callback-test-requests.js +124 -0
- package/dist/internal/__tests__/app-callback-test-requests.js.map +1 -0
- package/dist/internal/{s2c-dispatcher-errors.d.ts → app-callback-dispatcher-errors.d.ts} +5 -21
- package/dist/internal/app-callback-dispatcher-errors.d.ts.map +1 -0
- package/dist/internal/{s2c-dispatcher-errors.js → app-callback-dispatcher-errors.js} +3 -13
- package/dist/internal/app-callback-dispatcher-errors.js.map +1 -0
- package/dist/internal/app-callback-partition-key.d.ts +68 -0
- package/dist/internal/app-callback-partition-key.d.ts.map +1 -0
- package/dist/internal/app-callback-partition-key.js +90 -0
- package/dist/internal/app-callback-partition-key.js.map +1 -0
- package/dist/internal/{s2c-partition-worker.d.ts → app-callback-partition-worker.d.ts} +5 -5
- package/dist/internal/app-callback-partition-worker.d.ts.map +1 -0
- package/dist/internal/{s2c-partition-worker.js → app-callback-partition-worker.js} +5 -5
- package/dist/internal/app-callback-partition-worker.js.map +1 -0
- package/dist/internal/{s2c-partitioned-dispatcher.d.ts → app-callback-partitioned-dispatcher.d.ts} +9 -10
- package/dist/internal/app-callback-partitioned-dispatcher.d.ts.map +1 -0
- package/dist/internal/{s2c-partitioned-dispatcher.js → app-callback-partitioned-dispatcher.js} +13 -21
- package/dist/internal/app-callback-partitioned-dispatcher.js.map +1 -0
- package/dist/runtime/close-info.d.ts +15 -16
- package/dist/runtime/close-info.d.ts.map +1 -1
- package/dist/runtime/close-info.js +12 -8
- package/dist/runtime/close-info.js.map +1 -1
- package/dist/runtime/errors.d.ts +2 -28
- package/dist/runtime/errors.d.ts.map +1 -1
- package/dist/runtime/errors.js +0 -9
- package/dist/runtime/errors.js.map +1 -1
- package/dist/runtime/errors.test.js +4 -3
- package/dist/runtime/errors.test.js.map +1 -1
- package/dist/runtime/frame.d.ts +17 -18
- package/dist/runtime/frame.d.ts.map +1 -1
- package/dist/runtime/frame.js +86 -31
- package/dist/runtime/frame.js.map +1 -1
- package/dist/runtime/frame.test.js +15 -11
- package/dist/runtime/frame.test.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/local-service-commands.d.ts +7 -0
- package/dist/runtime/local-service-commands.d.ts.map +1 -0
- package/dist/runtime/local-service-commands.js +6 -0
- package/dist/runtime/local-service-commands.js.map +1 -0
- package/dist/runtime/runtime.test.js +3 -3
- package/dist/runtime/runtime.test.js.map +1 -1
- package/dist/runtime/subscribers.d.ts +37 -33
- package/dist/runtime/subscribers.d.ts.map +1 -1
- package/dist/runtime/subscribers.js +22 -21
- package/dist/runtime/subscribers.js.map +1 -1
- package/dist/runtime/subscribers.test.js +50 -31
- package/dist/runtime/subscribers.test.js.map +1 -1
- package/dist/service.d.ts +24 -39
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +190 -171
- package/dist/service.js.map +1 -1
- package/dist/service.test.js +117 -175
- package/dist/service.test.js.map +1 -1
- package/dist/test/index.d.ts +9 -1
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +14 -3
- package/dist/test/index.js.map +1 -1
- package/dist/test-utils/channel-service-fixture.d.ts +1 -2
- package/dist/test-utils/channel-service-fixture.d.ts.map +1 -1
- package/dist/test-utils/channel-service-fixture.js +28 -20
- package/dist/test-utils/channel-service-fixture.js.map +1 -1
- package/dist/test-utils/conformance-adapter.d.ts +2 -2
- package/dist/test-utils/conformance-adapter.d.ts.map +1 -1
- package/dist/test-utils/conformance-adapter.js +78 -54
- package/dist/test-utils/conformance-adapter.js.map +1 -1
- package/dist/test-utils/fake-service.d.ts +14 -39
- package/dist/test-utils/fake-service.d.ts.map +1 -1
- package/dist/test-utils/fake-service.js +33 -39
- package/dist/test-utils/fake-service.js.map +1 -1
- package/dist/test-utils/ids.d.ts +9 -0
- package/dist/test-utils/ids.d.ts.map +1 -0
- package/dist/test-utils/ids.js +52 -0
- package/dist/test-utils/ids.js.map +1 -0
- package/dist/test-utils/index.d.ts +10 -2
- package/dist/test-utils/index.d.ts.map +1 -1
- package/dist/test-utils/index.js +25 -9
- package/dist/test-utils/index.js.map +1 -1
- package/dist/ws-client.d.ts +59 -64
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +228 -175
- package/dist/ws-client.js.map +1 -1
- package/dist/ws-client.test.js +190 -176
- package/dist/ws-client.test.js.map +1 -1
- package/package.json +3 -3
- package/dist/cli/commands/permissions.d.ts +0 -66
- package/dist/cli/commands/permissions.d.ts.map +0 -1
- package/dist/cli/commands/permissions.js +0 -101
- package/dist/cli/commands/permissions.js.map +0 -1
- package/dist/cli/commands/permissions.test.d.ts +0 -2
- package/dist/cli/commands/permissions.test.d.ts.map +0 -1
- package/dist/cli/commands/permissions.test.js +0 -126
- package/dist/cli/commands/permissions.test.js.map +0 -1
- package/dist/internal/__tests__/s2c-partition-key.test.d.ts +0 -2
- package/dist/internal/__tests__/s2c-partition-key.test.d.ts.map +0 -1
- package/dist/internal/__tests__/s2c-partition-key.test.js +0 -230
- package/dist/internal/__tests__/s2c-partition-key.test.js.map +0 -1
- package/dist/internal/__tests__/s2c-partition-worker.test.d.ts +0 -2
- package/dist/internal/__tests__/s2c-partition-worker.test.d.ts.map +0 -1
- package/dist/internal/__tests__/s2c-partition-worker.test.js.map +0 -1
- package/dist/internal/__tests__/s2c-partitioned-dispatcher-real-ws.test.d.ts +0 -2
- package/dist/internal/__tests__/s2c-partitioned-dispatcher-real-ws.test.d.ts.map +0 -1
- package/dist/internal/__tests__/s2c-partitioned-dispatcher-real-ws.test.js.map +0 -1
- package/dist/internal/__tests__/s2c-partitioned-dispatcher.test.d.ts +0 -2
- package/dist/internal/__tests__/s2c-partitioned-dispatcher.test.d.ts.map +0 -1
- package/dist/internal/__tests__/s2c-partitioned-dispatcher.test.js.map +0 -1
- package/dist/internal/s2c-dispatcher-errors.d.ts.map +0 -1
- package/dist/internal/s2c-dispatcher-errors.js.map +0 -1
- package/dist/internal/s2c-partition-key.d.ts +0 -71
- package/dist/internal/s2c-partition-key.d.ts.map +0 -1
- package/dist/internal/s2c-partition-key.js +0 -140
- package/dist/internal/s2c-partition-key.js.map +0 -1
- package/dist/internal/s2c-partition-worker.d.ts.map +0 -1
- package/dist/internal/s2c-partition-worker.js.map +0 -1
- package/dist/internal/s2c-partitioned-dispatcher.d.ts.map +0 -1
- package/dist/internal/s2c-partitioned-dispatcher.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/cli/commands/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/cli/commands/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,GAAG,EACH,UAAU,GAGX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMjE,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAG3E;CAAG;AAcL,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,IAAsB,EACgC,EAAE,CACxD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GACV,IAAI,CAAC,KAAK,KAAK,SAAS;QACtB,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;QACzD,CAAC,CAAC;YACE,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;YACnD,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACR,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAChD,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACtB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YAChE,MAAM,MAAM,GACV,YAAY,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;gBACnD,CAAC,CAAC,CAAC,CAAC,UAAU;gBACd,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAC1D,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAC3C,CAAC;AACF,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvE,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CACtC,MAAM,EACN,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,EAC3D,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1B,MAAM,IAAI,GAAqB;QAC7B,cAAc,EAAE,YAAY;QAC5B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC;IACF,OAAO,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,iCAAiC,CAAC,CAAC,CAAC;AAEnE,kDAAkD;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,CAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;AAC9E,CAAC,CAAC,CACH,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CACrB,qEAAqE;IACnE,sEAAsE;IACtE,+CAA+C,CAClD,EACD,OAAO,CAAC,eAAe,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAC/C,CAAC"}
|
|
@@ -5,22 +5,9 @@
|
|
|
5
5
|
import { Effect } from "effect";
|
|
6
6
|
import { afterEach, beforeEach, describe, expect, it, vi, } from "vitest";
|
|
7
7
|
import { messagesListHandler } from "./messages.js";
|
|
8
|
-
import { Transport
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const transport = {
|
|
12
|
-
kind: "test",
|
|
13
|
-
rpc: (method, params) => {
|
|
14
|
-
calls.push({ method, params });
|
|
15
|
-
const out = respond({ method, params });
|
|
16
|
-
if (out instanceof Error) {
|
|
17
|
-
return Effect.fail(new TransportRpcError({ method, code: -32000, message: out.message }));
|
|
18
|
-
}
|
|
19
|
-
return Effect.succeed(out);
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
return { calls, transport };
|
|
23
|
-
};
|
|
8
|
+
import { Transport } from "../transport.js";
|
|
9
|
+
import { makeFakeTransport } from "./test-transport.js";
|
|
10
|
+
import { MessagesList } from "@moltzap/protocol";
|
|
24
11
|
describe("messages list", () => {
|
|
25
12
|
let stdout;
|
|
26
13
|
beforeEach(() => {
|
|
@@ -32,31 +19,37 @@ describe("messages list", () => {
|
|
|
32
19
|
// `MessageSchema` field is present (including `conversationId`).
|
|
33
20
|
// `senderName` is the CLI display fallback the handler reads; it is
|
|
34
21
|
// not part of `MessageSchema` itself (see WireMessage in messages.ts).
|
|
22
|
+
const SENDER_A = "00000000-0000-4000-8000-0000000000a1";
|
|
23
|
+
const SENDER_B = "00000000-0000-4000-8000-0000000000b1";
|
|
35
24
|
const { calls, transport } = makeFakeTransport(() => ({
|
|
36
25
|
messages: [
|
|
37
26
|
{
|
|
38
|
-
id: "
|
|
39
|
-
conversationId: "
|
|
40
|
-
senderId:
|
|
41
|
-
senderName: "alice",
|
|
27
|
+
id: "00000000-0000-4000-8000-00000000000a",
|
|
28
|
+
conversationId: "00000000-0000-4000-8000-00000000000c",
|
|
29
|
+
senderId: SENDER_A,
|
|
42
30
|
createdAt: "2026-04-24T00:00:00Z",
|
|
43
31
|
parts: [{ type: "text", text: "hello" }],
|
|
44
32
|
},
|
|
45
33
|
{
|
|
46
|
-
id: "
|
|
47
|
-
conversationId: "
|
|
48
|
-
senderId:
|
|
49
|
-
senderName: "bob",
|
|
34
|
+
id: "00000000-0000-4000-8000-00000000000b",
|
|
35
|
+
conversationId: "00000000-0000-4000-8000-00000000000c",
|
|
36
|
+
senderId: SENDER_B,
|
|
50
37
|
createdAt: "2026-04-24T00:00:01Z",
|
|
51
38
|
parts: [{ type: "text", text: "hi" }],
|
|
52
39
|
},
|
|
53
40
|
],
|
|
54
41
|
hasMore: false,
|
|
55
42
|
}));
|
|
56
|
-
await Effect.runPromise(messagesListHandler({
|
|
43
|
+
await Effect.runPromise(messagesListHandler({
|
|
44
|
+
conversationId: "00000000-0000-4000-8000-00000000000c",
|
|
45
|
+
limit: 50,
|
|
46
|
+
}).pipe(Effect.provideService(Transport, transport)));
|
|
57
47
|
expect(calls[0]).toEqual({
|
|
58
|
-
method:
|
|
59
|
-
params: {
|
|
48
|
+
method: MessagesList.name,
|
|
49
|
+
params: {
|
|
50
|
+
conversationId: "00000000-0000-4000-8000-00000000000c",
|
|
51
|
+
limit: 50,
|
|
52
|
+
},
|
|
60
53
|
});
|
|
61
54
|
expect(stdout).toHaveBeenCalledTimes(2);
|
|
62
55
|
// Regression #216: first column is `createdAt`, never `undefined`.
|
|
@@ -64,19 +57,25 @@ describe("messages list", () => {
|
|
|
64
57
|
// `m.seq` as the literal "undefined" in the leading column.
|
|
65
58
|
const firstLine = String(stdout.mock.calls[0]?.[0] ?? "");
|
|
66
59
|
expect(firstLine.startsWith("undefined\t")).toBe(false);
|
|
67
|
-
expect(firstLine).toBe(
|
|
60
|
+
expect(firstLine).toBe(`2026-04-24T00:00:00Z\t${SENDER_A}\thello`);
|
|
68
61
|
});
|
|
69
62
|
it("omits limit when absent", async () => {
|
|
70
63
|
const { calls, transport } = makeFakeTransport(() => ({
|
|
71
64
|
messages: [],
|
|
72
65
|
hasMore: false,
|
|
73
66
|
}));
|
|
74
|
-
await Effect.runPromise(messagesListHandler({
|
|
75
|
-
|
|
67
|
+
await Effect.runPromise(messagesListHandler({
|
|
68
|
+
conversationId: "00000000-0000-4000-8000-00000000000c",
|
|
69
|
+
}).pipe(Effect.provideService(Transport, transport)));
|
|
70
|
+
expect(calls[0]?.params).toEqual({
|
|
71
|
+
conversationId: "00000000-0000-4000-8000-00000000000c",
|
|
72
|
+
});
|
|
76
73
|
});
|
|
77
74
|
it("surfaces TransportRpcError", async () => {
|
|
78
75
|
const { transport } = makeFakeTransport(() => new Error("fail"));
|
|
79
|
-
const result = await Effect.runPromiseExit(messagesListHandler({
|
|
76
|
+
const result = await Effect.runPromiseExit(messagesListHandler({
|
|
77
|
+
conversationId: "00000000-0000-4000-8000-00000000000c",
|
|
78
|
+
}).pipe(Effect.provideService(Transport, transport)));
|
|
80
79
|
expect(result._tag).toBe("Failure");
|
|
81
80
|
});
|
|
82
81
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.test.js","sourceRoot":"","sources":["../../../src/cli/commands/messages.test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,EAAE,EACF,EAAE,GAEH,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"messages.test.js","sourceRoot":"","sources":["../../../src/cli/commands/messages.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { Command } from "@effect/cli";
|
|
2
|
+
declare const PingError_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 & {
|
|
3
|
+
readonly _tag: "PingError";
|
|
4
|
+
} & Readonly<A>;
|
|
5
|
+
export declare class PingError extends PingError_base<{
|
|
6
|
+
readonly message: string;
|
|
7
|
+
readonly cause?: unknown;
|
|
8
|
+
}> {
|
|
9
|
+
}
|
|
2
10
|
/**
|
|
3
11
|
* `moltzap ping` — hit /health on the configured server URL. Exit 0 on
|
|
4
12
|
* 2xx, 1 otherwise (message to stderr via the caught Error surface).
|
|
5
13
|
*/
|
|
6
14
|
export declare const pingCommand: Command.Command<"ping", never, never, {}>;
|
|
15
|
+
export {};
|
|
7
16
|
//# sourceMappingURL=ping.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;;;;AAMtC,qBAAa,SAAU,SAAQ,eAA8B;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAmCL;;;GAGG;AACH,eAAO,MAAM,WAAW,2CAcmD,CAAC"}
|
|
@@ -1,16 +1,29 @@
|
|
|
1
1
|
import { Command } from "@effect/cli";
|
|
2
2
|
import { HttpClient, HttpClientRequest } from "@effect/platform";
|
|
3
3
|
import { NodeHttpClient } from "@effect/platform-node";
|
|
4
|
-
import { Effect } from "effect";
|
|
4
|
+
import { Data, Effect } from "effect";
|
|
5
5
|
import { getHttpUrl } from "../config.js";
|
|
6
|
+
export class PingError extends Data.TaggedError("PingError") {
|
|
7
|
+
}
|
|
8
|
+
const HTTP_SUCCESS_MIN = 200;
|
|
9
|
+
const HTTP_REDIRECT_MIN = 300;
|
|
10
|
+
const toPingError = (cause) => cause instanceof PingError
|
|
11
|
+
? cause
|
|
12
|
+
: new PingError({
|
|
13
|
+
message: cause instanceof Error ? cause.message : String(cause),
|
|
14
|
+
cause,
|
|
15
|
+
});
|
|
6
16
|
const pingEffect = Effect.gen(function* () {
|
|
7
17
|
const baseUrl = yield* getHttpUrl;
|
|
8
18
|
const client = yield* HttpClient.HttpClient;
|
|
9
19
|
const response = yield* client.execute(HttpClientRequest.get(`${baseUrl}/health`));
|
|
10
|
-
if (response.status <
|
|
11
|
-
|
|
20
|
+
if (response.status < HTTP_SUCCESS_MIN ||
|
|
21
|
+
response.status >= HTTP_REDIRECT_MIN) {
|
|
22
|
+
return yield* Effect.fail(new PingError({
|
|
23
|
+
message: `Server unreachable: HTTP ${response.status}`,
|
|
24
|
+
}));
|
|
12
25
|
}
|
|
13
|
-
}).pipe(Effect.timeout("5 seconds"), Effect.provide(NodeHttpClient.layer), Effect.
|
|
26
|
+
}).pipe(Effect.timeout("5 seconds"), Effect.provide(NodeHttpClient.layer), Effect.mapError(toPingError));
|
|
14
27
|
/**
|
|
15
28
|
* `moltzap ping` — hit /health on the configured server URL. Exit 0 on
|
|
16
29
|
* 2xx, 1 otherwise (message to stderr via the caught Error surface).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../src/cli/commands/ping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../src/cli/commands/ping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,OAAO,SAAU,SAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,CAGzD;CAAG;AAEL,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,WAAW,GAAG,CAAC,KAAc,EAAa,EAAE,CAChD,KAAK,YAAY,SAAS;IACxB,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,IAAI,SAAS,CAAC;QACZ,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,KAAK;KACN,CAAC,CAAC;AAET,MAAM,UAAU,GAAmC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACpC,iBAAiB,CAAC,GAAG,CAAC,GAAG,OAAO,SAAS,CAAC,CAC3C,CAAC;IACF,IACE,QAAQ,CAAC,MAAM,GAAG,gBAAgB;QAClC,QAAQ,CAAC,MAAM,IAAI,iBAAiB,EACpC,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,SAAS,CAAC;YACZ,OAAO,EAAE,4BAA4B,QAAQ,CAAC,MAAM,EAAE;SACvD,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EACpC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC7B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CACvD,UAAU,CAAC,IAAI,CACb,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CACd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClC,CAAC,CAAC,CACH,EACD,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CACH,CACF,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,0CAA0C,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/presence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/presence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAgBxC;;;;GAIG;AACH,eAAO,MAAM,eAAe;;EAqC3B,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Args, Command } from "@effect/cli";
|
|
2
2
|
import { Effect, Option } from "effect";
|
|
3
3
|
import { request } from "../socket-client.js";
|
|
4
|
+
import { PresenceUpdate } from "@moltzap/protocol";
|
|
5
|
+
const PRESENCE_STATUSES = ["online", "offline", "away"];
|
|
6
|
+
const isPresenceStatus = (value) => PRESENCE_STATUSES.some((status) => status === value);
|
|
4
7
|
const statusArg = Args.text({ name: "status" }).pipe(Args.withDescription("Status to set: online, offline, or away"), Args.optional);
|
|
5
8
|
/**
|
|
6
9
|
* `moltzap presence <status>` — pushes a presence update through the local
|
|
@@ -14,14 +17,13 @@ export const presenceCommand = Command.make("presence", { status: statusArg }, (
|
|
|
14
17
|
});
|
|
15
18
|
}
|
|
16
19
|
const value = status.value;
|
|
17
|
-
|
|
18
|
-
if (!valid.includes(value)) {
|
|
20
|
+
if (!isPresenceStatus(value)) {
|
|
19
21
|
return Effect.sync(() => {
|
|
20
|
-
console.error(`Invalid status "${value}". Must be one of: ${
|
|
22
|
+
console.error(`Invalid status "${value}". Must be one of: ${PRESENCE_STATUSES.join(", ")}`);
|
|
21
23
|
process.exit(1);
|
|
22
24
|
});
|
|
23
25
|
}
|
|
24
|
-
return request(
|
|
26
|
+
return request(PresenceUpdate, { status: value }).pipe(Effect.tap(() => Effect.sync(() => {
|
|
25
27
|
console.log(`Presence set to ${value}.`);
|
|
26
28
|
})), Effect.asVoid, Effect.catchAll((err) => Effect.sync(() => {
|
|
27
29
|
console.error(`Failed: ${err.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presence.js","sourceRoot":"","sources":["../../../src/cli/commands/presence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAClD,IAAI,CAAC,eAAe,CAAC,yCAAyC,CAAC,EAC/D,IAAI,CAAC,QAAQ,CACd,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CACzC,UAAU,EACV,EAAE,MAAM,EAAE,SAAS,EAAE,EACrB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IACb,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"presence.js","sourceRoot":"","sources":["../../../src/cli/commands/presence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAGjE,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAA2B,EAAE,CAClE,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;AAEvD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAClD,IAAI,CAAC,eAAe,CAAC,yCAAyC,CAAC,EAC/D,IAAI,CAAC,QAAQ,CACd,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CACzC,UAAU,EACV,EAAE,MAAM,EAAE,SAAS,EAAE,EACrB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IACb,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACtB,OAAO,CAAC,KAAK,CACX,mBAAmB,KAAK,sBAAsB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CACpD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CACd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACf,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CACH,EACD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC,CACF,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CACrB,wDAAwD,CACzD,CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"AAGA,OAAO,EAAQ,OAAO,EAAW,MAAM,aAAa,CAAC;AACrD,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"AAGA,OAAO,EAAQ,OAAO,EAAW,MAAM,aAAa,CAAC;AACrD,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AA0HxC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,eAAe;;;;;;EAoF3B,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { getServerUrl, updateConfig } from "../config.js";
|
|
|
7
7
|
import { registerAgent } from "../http-client.js";
|
|
8
8
|
import { emitNoPersist, parseProfileName, writeProfile, } from "../profile.js";
|
|
9
9
|
const NAME_PATTERN = /^[a-z0-9][a-z0-9-]{1,30}[a-z0-9]$/;
|
|
10
|
+
const JSON_INDENT_SPACES = 2;
|
|
10
11
|
/**
|
|
11
12
|
* Write channel config directly to the OpenClaw JSON file.
|
|
12
13
|
* Avoids `openclaw config set` which triggers both a file-watcher restart
|
|
@@ -37,7 +38,7 @@ const writeOpenClawChannelConfig = (account) => Effect.try({
|
|
|
37
38
|
};
|
|
38
39
|
config.channels = channels;
|
|
39
40
|
fs.mkdirSync(configDir, { recursive: true });
|
|
40
|
-
fs.writeFileSync(configPath, JSON.stringify(config, null,
|
|
41
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, JSON_INDENT_SPACES) + "\n");
|
|
41
42
|
},
|
|
42
43
|
catch: (err) => (err instanceof Error ? err : new Error(String(err))),
|
|
43
44
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,YAAY,GAEb,MAAM,eAAe,CAAC;AAEvB,MAAM,YAAY,GAAG,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAW,MAAM,aAAa,CAAC;AACrD,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAW,MAAM,aAAa,CAAC;AACrD,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAoBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,WAAW;;;;EAwDvB,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Args, Command, Options } from "@effect/cli";
|
|
2
2
|
import { Effect, Option } from "effect";
|
|
3
3
|
import { request } from "../socket-client.js";
|
|
4
|
+
import { MessagesSend, conversationId, messageId } from "@moltzap/protocol";
|
|
5
|
+
const CONVERSATION_TARGET_PREFIX = "conv:";
|
|
4
6
|
const targetArg = Args.text({ name: "target" }).pipe(Args.withDescription("Target (agent:<name> or conv:<id>)"));
|
|
5
7
|
const messageArg = Args.text({ name: "message" }).pipe(Args.withDescription("Message text"));
|
|
6
8
|
const replyToOption = Options.text("reply-to").pipe(Options.withDescription("Reply to a specific message"), Options.optional);
|
|
@@ -41,18 +43,27 @@ const replyToOption = Options.text("reply-to").pipe(Options.withDescription("Rep
|
|
|
41
43
|
* today.
|
|
42
44
|
*/
|
|
43
45
|
export const sendCommand = Command.make("send", { target: targetArg, message: messageArg, replyTo: replyToOption }, ({ target, message, replyTo }) => {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (target.startsWith(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
const reply = Option.isSome(replyTo)
|
|
47
|
+
? { replyToId: messageId(replyTo.value) }
|
|
48
|
+
: {};
|
|
49
|
+
if (target.startsWith(CONVERSATION_TARGET_PREFIX)) {
|
|
50
|
+
return request(MessagesSend, {
|
|
51
|
+
conversationId: conversationId(target.slice(CONVERSATION_TARGET_PREFIX.length)),
|
|
52
|
+
parts: [{ type: "text", text: message }],
|
|
53
|
+
...reply,
|
|
54
|
+
}).pipe(Effect.tap((result) => Effect.sync(() => {
|
|
55
|
+
const r = result;
|
|
56
|
+
console.log(`Message sent (id: ${r.message.id})`);
|
|
57
|
+
})), Effect.asVoid, Effect.catchAll((err) => Effect.sync(() => {
|
|
58
|
+
console.error(`Failed: ${err.message}`);
|
|
59
|
+
process.exit(1);
|
|
60
|
+
})));
|
|
52
61
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
62
|
+
return request(MessagesSend, {
|
|
63
|
+
to: target,
|
|
64
|
+
parts: [{ type: "text", text: message }],
|
|
65
|
+
...reply,
|
|
66
|
+
}).pipe(Effect.tap((result) => Effect.sync(() => {
|
|
56
67
|
const r = result;
|
|
57
68
|
console.log(`Message sent (id: ${r.message.id})`);
|
|
58
69
|
})), Effect.asVoid, Effect.catchAll((err) => Effect.sync(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAClD,IAAI,CAAC,eAAe,CAAC,oCAAoC,CAAC,CAC3D,CAAC;AAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CACpD,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CACrC,CAAC;AAEF,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CACjD,OAAO,CAAC,eAAe,CAAC,6BAA6B,CAAC,EACtD,OAAO,CAAC,QAAQ,CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CACrC,MAAM,EACN,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,EAClE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/B,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Effect, Option } from "effect";
|
|
2
2
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
3
3
|
import { sendCommand } from "./send.js";
|
|
4
|
+
import { MessagesSend } from "@moltzap/protocol";
|
|
4
5
|
const mockRequest = vi.fn(() => Effect.succeed({ message: { id: "msg-123" } }));
|
|
5
6
|
vi.mock("../socket-client.js", async (importOriginal) => {
|
|
6
7
|
const actual = await importOriginal();
|
|
@@ -19,14 +20,15 @@ describe("send command handler", () => {
|
|
|
19
20
|
afterEach(() => {
|
|
20
21
|
process.exit = originalExit;
|
|
21
22
|
});
|
|
23
|
+
const CONV_UUID = "00000000-0000-4000-8000-00000000abc1";
|
|
22
24
|
it("sends to conversation by conv: prefix", async () => {
|
|
23
25
|
await Effect.runPromise(sendCommand.handler({
|
|
24
|
-
target:
|
|
26
|
+
target: `conv:${CONV_UUID}`,
|
|
25
27
|
message: "Hello world",
|
|
26
28
|
replyTo: Option.none(),
|
|
27
29
|
}));
|
|
28
|
-
expect(mockRequest).toHaveBeenCalledWith(
|
|
29
|
-
conversationId:
|
|
30
|
+
expect(mockRequest).toHaveBeenCalledWith(MessagesSend, {
|
|
31
|
+
conversationId: CONV_UUID,
|
|
30
32
|
parts: [{ type: "text", text: "Hello world" }],
|
|
31
33
|
});
|
|
32
34
|
});
|
|
@@ -36,21 +38,22 @@ describe("send command handler", () => {
|
|
|
36
38
|
message: "Hi Alice",
|
|
37
39
|
replyTo: Option.none(),
|
|
38
40
|
}));
|
|
39
|
-
expect(mockRequest).toHaveBeenCalledWith(
|
|
41
|
+
expect(mockRequest).toHaveBeenCalledWith(MessagesSend, {
|
|
40
42
|
to: "agent:alice",
|
|
41
43
|
parts: [{ type: "text", text: "Hi Alice" }],
|
|
42
44
|
});
|
|
43
45
|
});
|
|
44
46
|
it("includes replyToId when --reply-to is provided", async () => {
|
|
47
|
+
const REPLY_MSG = "00000000-0000-4000-8000-0000000000a1";
|
|
45
48
|
await Effect.runPromise(sendCommand.handler({
|
|
46
|
-
target:
|
|
49
|
+
target: `conv:${CONV_UUID}`,
|
|
47
50
|
message: "Reply text",
|
|
48
|
-
replyTo: Option.some(
|
|
51
|
+
replyTo: Option.some(REPLY_MSG),
|
|
49
52
|
}));
|
|
50
|
-
expect(mockRequest).toHaveBeenCalledWith(
|
|
51
|
-
conversationId:
|
|
53
|
+
expect(mockRequest).toHaveBeenCalledWith(MessagesSend, {
|
|
54
|
+
conversationId: CONV_UUID,
|
|
52
55
|
parts: [{ type: "text", text: "Reply text" }],
|
|
53
|
-
replyToId:
|
|
56
|
+
replyToId: REPLY_MSG,
|
|
54
57
|
});
|
|
55
58
|
});
|
|
56
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.test.js","sourceRoot":"","sources":["../../../src/cli/commands/send.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAEhF,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACtD,MAAM,MAAM,GAAG,MAAM,cAAc,EAAwC,CAAC;IAC5E,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,WAAW,CAAC,GAAI,IAAW,CAAC;KAC9D,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAElC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,WAAW,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAClC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAC/C,CAAC;QACF,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAW,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,MAAM,CAAC,UAAU,CACrB,WAAW,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"send.test.js","sourceRoot":"","sources":["../../../src/cli/commands/send.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Command } from "@effect/cli";
|
|
2
2
|
import { Effect } from "effect";
|
|
3
|
-
import {
|
|
3
|
+
import { LocalServiceCommands, requestLocalService } from "../socket-client.js";
|
|
4
4
|
/**
|
|
5
5
|
* `moltzap status` — calls the local service's `status` RPC and prints
|
|
6
6
|
* agent id, live connection state, and conversation count.
|
|
7
7
|
*/
|
|
8
|
-
export const statusCommand = Command.make("status", {}, () =>
|
|
8
|
+
export const statusCommand = Command.make("status", {}, () => requestLocalService(LocalServiceCommands.Status).pipe(Effect.tap((result) => Effect.sync(() => {
|
|
9
9
|
const r = result;
|
|
10
10
|
console.log(`Agent ID: ${r.agentId ?? "none"}`);
|
|
11
11
|
console.log(`Connected: ${r.connected}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAQhF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAC3D,mBAAmB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,CACnD,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,MAAM,CAAC,GAAG,MAAsB,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC,CACH,EACD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CACH,CACF,CACF,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CACrB,uDAAuD,CACxD,CACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Transport as TransportSurface } from "../transport.js";
|
|
2
|
+
export interface TestTransportCall {
|
|
3
|
+
readonly method: string;
|
|
4
|
+
readonly params: unknown;
|
|
5
|
+
}
|
|
6
|
+
export declare const makeFakeTransport: (respond: (call: TestTransportCall) => unknown | Error) => {
|
|
7
|
+
readonly calls: TestTransportCall[];
|
|
8
|
+
readonly transport: TransportSurface;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=test-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-transport.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/test-transport.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,SAAS,IAAI,gBAAgB,EAEnC,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,iBAAiB,GAC5B,SAAS,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,GAAG,KAAK,KACpD;IACD,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;CAmCtC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { decodeRpcResult, ErrorCodes, } from "@moltzap/protocol";
|
|
3
|
+
import { TransportRpcError, } from "../transport.js";
|
|
4
|
+
export const makeFakeTransport = (respond) => {
|
|
5
|
+
const calls = [];
|
|
6
|
+
const transport = {
|
|
7
|
+
kind: "test",
|
|
8
|
+
rpc: (definition, params) => {
|
|
9
|
+
const call = { method: definition.name, params };
|
|
10
|
+
calls.push(call);
|
|
11
|
+
const out = respond(call);
|
|
12
|
+
if (out instanceof Error) {
|
|
13
|
+
return Effect.fail(new TransportRpcError({
|
|
14
|
+
method: definition.name,
|
|
15
|
+
code: ErrorCodes.Unauthorized,
|
|
16
|
+
message: out.message,
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
return decodeRpcResult(definition, out).pipe(Effect.mapError(() => new TransportRpcError({
|
|
20
|
+
method: definition.name,
|
|
21
|
+
code: ErrorCodes.InternalError,
|
|
22
|
+
message: `Invalid fake response for ${definition.name}`,
|
|
23
|
+
data: out,
|
|
24
|
+
})));
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
return { calls, transport };
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=test-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-transport.js","sourceRoot":"","sources":["../../../src/cli/commands/test-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,eAAe,EACf,UAAU,GAKX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,GAGlB,MAAM,iBAAiB,CAAC;AAOzB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAqD,EAIrD,EAAE;IACF,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,MAAM,SAAS,GAAqB;QAClC,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,CACH,UAAa,EACb,MAAmB,EACyB,EAAE;YAC9C,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;gBACzB,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,iBAAiB,CAAC;oBACpB,MAAM,EAAE,UAAU,CAAC,IAAI;oBACvB,IAAI,EAAE,UAAU,CAAC,YAAY;oBAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,eAAe,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,CAC1C,MAAM,CAAC,QAAQ,CACb,GAAG,EAAE,CACH,IAAI,iBAAiB,CAAC;gBACpB,MAAM,EAAE,UAAU,CAAC,IAAI;gBACvB,IAAI,EAAE,UAAU,CAAC,aAAa;gBAC9B,OAAO,EAAE,6BAA6B,UAAU,CAAC,IAAI,EAAE;gBACvD,IAAI,EAAE,GAAG;aACV,CAAC,CACL,CACF,CAAC;QACJ,CAAC;KACF,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC;;;;GAIG;AACH,eAAO,MAAM,aAAa,6CA0BsC,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Command } from "@effect/cli";
|
|
2
2
|
import { Effect } from "effect";
|
|
3
3
|
import { getConfigPath, loadConfig } from "../config.js";
|
|
4
|
+
const API_KEY_VISIBLE_PREFIX_CHARS = 20;
|
|
5
|
+
const API_KEY_VISIBLE_SUFFIX_CHARS = 4;
|
|
4
6
|
/**
|
|
5
7
|
* `moltzap whoami` — print config path + server URL, and if registered the
|
|
6
8
|
* agent name + masked API key. Output is user-facing prose so it goes to
|
|
@@ -10,7 +12,9 @@ export const whoamiCommand = Command.make("whoami", {}, () => loadConfig.pipe(Ef
|
|
|
10
12
|
console.log(`Config: ${getConfigPath()}`);
|
|
11
13
|
console.log(`Server: ${config.serverUrl}`);
|
|
12
14
|
if (config.agentName && config.apiKey) {
|
|
13
|
-
const masked = config.apiKey.slice(0,
|
|
15
|
+
const masked = config.apiKey.slice(0, API_KEY_VISIBLE_PREFIX_CHARS) +
|
|
16
|
+
"..." +
|
|
17
|
+
config.apiKey.slice(-API_KEY_VISIBLE_SUFFIX_CHARS);
|
|
14
18
|
console.log(`\nAgent: ${config.agentName}`);
|
|
15
19
|
console.log(` API Key: ${masked}`);
|
|
16
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/cli/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAC3D,UAAU,CAAC,IAAI,CACb,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,WAAW,aAAa,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/cli/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,4BAA4B,GAAG,EAAE,CAAC;AACxC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAC3D,UAAU,CAAC,IAAI,CACb,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,WAAW,aAAa,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,4BAA4B,CAAC;YACpD,KAAK;YACL,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;AACH,CAAC,CAAC,CACH,EACD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CACH,CACF,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,+BAA+B,CAAC,CAAC,CAAC"}
|