@moltzap/client 2026.528.0 → 2026.717.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 +2 -65
- package/dist/agent-client.d.ts.map +1 -1
- package/dist/agent-client.js +1 -286
- package/dist/agent-client.js.map +1 -1
- package/dist/app-client.d.ts +3 -0
- package/dist/app-client.d.ts.map +1 -0
- package/dist/app-client.js +2 -0
- package/dist/app-client.js.map +1 -0
- package/dist/auth.d.ts +6 -15
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +12 -16
- package/dist/auth.js.map +1 -1
- package/dist/channel-base/format-cross-conv.d.ts +10 -15
- package/dist/channel-base/format-cross-conv.d.ts.map +1 -1
- package/dist/channel-base/format-cross-conv.js +10 -15
- package/dist/channel-base/format-cross-conv.js.map +1 -1
- package/dist/channel-base/format-group-block.d.ts +8 -10
- package/dist/channel-base/format-group-block.d.ts.map +1 -1
- package/dist/channel-base/format-group-block.js +8 -10
- package/dist/channel-base/format-group-block.js.map +1 -1
- package/dist/channel-base/index.d.ts +3 -62
- package/dist/channel-base/index.d.ts.map +1 -1
- package/dist/channel-base/index.js +2 -65
- package/dist/channel-base/index.js.map +1 -1
- package/dist/channel-base/lease-guard.d.ts +0 -2
- package/dist/channel-base/lease-guard.d.ts.map +1 -1
- package/dist/channel-base/lease-guard.js +0 -2
- package/dist/channel-base/lease-guard.js.map +1 -1
- package/dist/channel-base/lease-store.d.ts +2 -3
- package/dist/channel-base/lease-store.d.ts.map +1 -1
- package/dist/channel-base/lease-store.js +2 -3
- package/dist/channel-base/lease-store.js.map +1 -1
- package/dist/channel-base/lease.d.ts +25 -31
- package/dist/channel-base/lease.d.ts.map +1 -1
- package/dist/channel-base/lease.js +29 -45
- package/dist/channel-base/lease.js.map +1 -1
- package/dist/channel-core-enrichment.d.ts +1 -1
- package/dist/channel-core-enrichment.d.ts.map +1 -1
- package/dist/channel-core-test-support.d.ts +17 -11
- package/dist/channel-core-test-support.d.ts.map +1 -1
- package/dist/channel-core-test-support.js +5 -6
- package/dist/channel-core-test-support.js.map +1 -1
- package/dist/channel-core.d.ts +24 -29
- package/dist/channel-core.d.ts.map +1 -1
- package/dist/channel-core.js +18 -42
- package/dist/channel-core.js.map +1 -1
- package/dist/cli/commands/agents.d.ts +3 -6
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +14 -50
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/contacts.d.ts +5 -6
- package/dist/cli/commands/contacts.d.ts.map +1 -1
- package/dist/cli/commands/contacts.js +15 -43
- package/dist/cli/commands/contacts.js.map +1 -1
- package/dist/cli/commands/conversations.d.ts +8 -18
- package/dist/cli/commands/conversations.d.ts.map +1 -1
- package/dist/cli/commands/conversations.js +14 -65
- package/dist/cli/commands/conversations.js.map +1 -1
- package/dist/cli/commands/messages.d.ts +13 -35
- package/dist/cli/commands/messages.d.ts.map +1 -1
- package/dist/cli/commands/messages.js +21 -46
- package/dist/cli/commands/messages.js.map +1 -1
- package/dist/cli/commands/register.d.ts +10 -12
- package/dist/cli/commands/register.d.ts.map +1 -1
- package/dist/cli/commands/register.js +47 -133
- package/dist/cli/commands/register.js.map +1 -1
- package/dist/cli/commands/send.d.ts +23 -36
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +25 -72
- package/dist/cli/commands/send.js.map +1 -1
- package/dist/cli/commands/start.d.ts +10 -124
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +28 -510
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +8 -9
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/test-transport.d.ts +12 -5
- package/dist/cli/commands/test-transport.d.ts.map +1 -1
- package/dist/cli/commands/test-transport.js +15 -15
- package/dist/cli/commands/test-transport.js.map +1 -1
- package/dist/cli/index.js +13 -38
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +4 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +9 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/socket-client.d.ts +7 -14
- package/dist/cli/socket-client.d.ts.map +1 -1
- package/dist/cli/socket-client.js +15 -38
- package/dist/cli/socket-client.js.map +1 -1
- package/dist/cli/transport.d.ts +53 -116
- package/dist/cli/transport.d.ts.map +1 -1
- package/dist/cli/transport.js +45 -295
- package/dist/cli/transport.js.map +1 -1
- package/dist/config.d.ts +24 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +35 -0
- package/dist/config.js.map +1 -0
- package/dist/config.test-utils.d.ts +13 -0
- package/dist/config.test-utils.d.ts.map +1 -0
- package/dist/config.test-utils.js +46 -0
- package/dist/config.test-utils.js.map +1 -0
- package/dist/index.d.ts +3 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -12
- package/dist/index.js.map +1 -1
- package/dist/local-daemon-rpc.d.ts +259 -8
- package/dist/local-daemon-rpc.d.ts.map +1 -1
- package/dist/local-daemon-rpc.js +189 -12
- package/dist/local-daemon-rpc.js.map +1 -1
- package/dist/{runtime/local-history.d.ts → local-history.d.ts} +16 -21
- package/dist/local-history.d.ts.map +1 -0
- package/dist/{runtime/local-history.js → local-history.js} +16 -21
- package/dist/local-history.js.map +1 -0
- package/dist/local-paths.d.ts +0 -2
- package/dist/local-paths.d.ts.map +1 -1
- package/dist/local-paths.js +0 -4
- package/dist/local-paths.js.map +1 -1
- package/dist/local-socket-server.d.ts +22 -0
- package/dist/local-socket-server.d.ts.map +1 -0
- package/dist/{runtime/local-socket-server.js → local-socket-server.js} +4 -9
- package/dist/local-socket-server.js.map +1 -0
- package/dist/message-rendering.d.ts +3 -0
- package/dist/message-rendering.d.ts.map +1 -0
- package/dist/message-rendering.js +7 -0
- package/dist/message-rendering.js.map +1 -0
- package/dist/notification/__tests__/{snapshot-semantics.types-check.d.ts → subscribe-signatures.types-check.d.ts} +1 -1
- package/dist/notification/__tests__/subscribe-signatures.types-check.d.ts.map +1 -0
- package/dist/notification/__tests__/subscribe-signatures.types-check.js +55 -0
- package/dist/notification/__tests__/subscribe-signatures.types-check.js.map +1 -0
- package/dist/notification/errors.d.ts +18 -6
- package/dist/notification/errors.d.ts.map +1 -1
- package/dist/notification/errors.js +13 -15
- package/dist/notification/errors.js.map +1 -1
- package/dist/notification/index.d.ts +5 -0
- package/dist/notification/index.d.ts.map +1 -0
- package/dist/notification/index.js +5 -0
- package/dist/notification/index.js.map +1 -0
- package/dist/notification/stream.d.ts +33 -49
- package/dist/notification/stream.d.ts.map +1 -1
- package/dist/notification/stream.js +33 -76
- package/dist/notification/stream.js.map +1 -1
- package/dist/pagination.d.ts +20 -10
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +8 -9
- package/dist/pagination.js.map +1 -1
- package/dist/profile.d.ts +92 -0
- package/dist/profile.d.ts.map +1 -0
- package/dist/profile.js +149 -0
- package/dist/profile.js.map +1 -0
- package/dist/refs.d.ts.map +1 -0
- package/dist/refs.js.map +1 -0
- package/dist/service-archive-purge.d.ts +2 -1
- package/dist/service-archive-purge.d.ts.map +1 -1
- package/dist/service-archive-purge.js.map +1 -1
- package/dist/{runtime/service-helpers.d.ts → service-helpers.d.ts} +5 -11
- package/dist/service-helpers.d.ts.map +1 -0
- package/dist/{runtime/service-helpers.js → service-helpers.js} +2 -9
- package/dist/service-helpers.js.map +1 -0
- package/dist/service-local-daemon.d.ts +22 -0
- package/dist/service-local-daemon.d.ts.map +1 -0
- package/dist/service-local-daemon.js +185 -0
- package/dist/service-local-daemon.js.map +1 -0
- package/dist/service.d.ts +65 -57
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +205 -156
- package/dist/service.js.map +1 -1
- package/dist/test-utils/channel-service-fixture.d.ts +3 -2
- package/dist/test-utils/channel-service-fixture.d.ts.map +1 -1
- package/dist/test-utils/channel-service-fixture.js.map +1 -1
- package/dist/test-utils/fake-service.d.ts +26 -18
- package/dist/test-utils/fake-service.d.ts.map +1 -1
- package/dist/test-utils/fake-service.js +28 -42
- package/dist/test-utils/fake-service.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.map +1 -1
- package/dist/test-utils/index.d.ts +9 -2
- package/dist/test-utils/index.d.ts.map +1 -1
- package/dist/test-utils/index.js +8 -1
- package/dist/test-utils/index.js.map +1 -1
- package/dist/test-utils/standalone-provisioning.d.ts +17 -0
- package/dist/test-utils/standalone-provisioning.d.ts.map +1 -0
- package/dist/test-utils/standalone-provisioning.js +14 -0
- package/dist/test-utils/standalone-provisioning.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +39 -17
- package/dist/auth.test.d.ts +0 -2
- package/dist/auth.test.d.ts.map +0 -1
- package/dist/auth.test.js +0 -121
- package/dist/auth.test.js.map +0 -1
- package/dist/channel-core-context.test.d.ts +0 -2
- package/dist/channel-core-context.test.d.ts.map +0 -1
- package/dist/channel-core-context.test.js +0 -342
- package/dist/channel-core-context.test.js.map +0 -1
- package/dist/channel-core-dispatch.test.d.ts +0 -2
- package/dist/channel-core-dispatch.test.d.ts.map +0 -1
- package/dist/channel-core-dispatch.test.js +0 -557
- package/dist/channel-core-dispatch.test.js.map +0 -1
- package/dist/channel-core.test.d.ts +0 -2
- package/dist/channel-core.test.d.ts.map +0 -1
- package/dist/channel-core.test.js +0 -232
- package/dist/channel-core.test.js.map +0 -1
- package/dist/cli/__tests__/cli-multi-agent.int.test.d.ts +0 -2
- package/dist/cli/__tests__/cli-multi-agent.int.test.d.ts.map +0 -1
- package/dist/cli/__tests__/cli-multi-agent.int.test.js +0 -132
- package/dist/cli/__tests__/cli-multi-agent.int.test.js.map +0 -1
- package/dist/cli/commands/invite.d.ts +0 -7
- package/dist/cli/commands/invite.d.ts.map +0 -1
- package/dist/cli/commands/invite.js +0 -11
- package/dist/cli/commands/invite.js.map +0 -1
- package/dist/cli/commands/messages.test.d.ts +0 -2
- package/dist/cli/commands/messages.test.d.ts.map +0 -1
- package/dist/cli/commands/messages.test.js +0 -99
- package/dist/cli/commands/messages.test.js.map +0 -1
- package/dist/cli/commands/ping.d.ts +0 -7
- package/dist/cli/commands/ping.d.ts.map +0 -1
- package/dist/cli/commands/ping.js +0 -37
- package/dist/cli/commands/ping.js.map +0 -1
- package/dist/cli/commands/presence.d.ts +0 -11
- package/dist/cli/commands/presence.d.ts.map +0 -1
- package/dist/cli/commands/presence.js +0 -33
- package/dist/cli/commands/presence.js.map +0 -1
- package/dist/cli/commands/register.test.d.ts +0 -2
- package/dist/cli/commands/register.test.d.ts.map +0 -1
- package/dist/cli/commands/register.test.js +0 -91
- package/dist/cli/commands/register.test.js.map +0 -1
- package/dist/cli/commands/send.test.d.ts +0 -2
- package/dist/cli/commands/send.test.d.ts.map +0 -1
- package/dist/cli/commands/send.test.js +0 -59
- package/dist/cli/commands/send.test.js.map +0 -1
- package/dist/cli/commands/start.test.d.ts +0 -2
- package/dist/cli/commands/start.test.d.ts.map +0 -1
- package/dist/cli/commands/start.test.js +0 -624
- package/dist/cli/commands/start.test.js.map +0 -1
- package/dist/cli/commands/whoami.d.ts +0 -8
- package/dist/cli/commands/whoami.d.ts.map +0 -1
- package/dist/cli/commands/whoami.js +0 -28
- package/dist/cli/commands/whoami.js.map +0 -1
- package/dist/cli/config.d.ts +0 -66
- package/dist/cli/config.d.ts.map +0 -1
- package/dist/cli/config.js +0 -148
- package/dist/cli/config.js.map +0 -1
- package/dist/cli/config.test.d.ts +0 -2
- package/dist/cli/config.test.d.ts.map +0 -1
- package/dist/cli/config.test.js +0 -89
- package/dist/cli/config.test.js.map +0 -1
- package/dist/cli/http-client.d.ts +0 -17
- package/dist/cli/http-client.d.ts.map +0 -1
- package/dist/cli/http-client.js +0 -38
- package/dist/cli/http-client.js.map +0 -1
- package/dist/cli/profile.d.ts +0 -126
- package/dist/cli/profile.d.ts.map +0 -1
- package/dist/cli/profile.js +0 -231
- package/dist/cli/profile.js.map +0 -1
- package/dist/cli/profile.test.d.ts +0 -2
- package/dist/cli/profile.test.d.ts.map +0 -1
- package/dist/cli/profile.test.js +0 -369
- package/dist/cli/profile.test.js.map +0 -1
- package/dist/cli/transport.test.d.ts +0 -2
- package/dist/cli/transport.test.d.ts.map +0 -1
- package/dist/cli/transport.test.js +0 -312
- package/dist/cli/transport.test.js.map +0 -1
- package/dist/notification/__tests__/filter-equivalence.test.d.ts +0 -2
- package/dist/notification/__tests__/filter-equivalence.test.d.ts.map +0 -1
- package/dist/notification/__tests__/filter-equivalence.test.js +0 -123
- package/dist/notification/__tests__/filter-equivalence.test.js.map +0 -1
- package/dist/notification/__tests__/snapshot-semantics.test.d.ts +0 -2
- package/dist/notification/__tests__/snapshot-semantics.test.d.ts.map +0 -1
- package/dist/notification/__tests__/snapshot-semantics.test.js +0 -261
- package/dist/notification/__tests__/snapshot-semantics.test.js.map +0 -1
- package/dist/notification/__tests__/snapshot-semantics.types-check.d.ts.map +0 -1
- package/dist/notification/__tests__/snapshot-semantics.types-check.js +0 -62
- package/dist/notification/__tests__/snapshot-semantics.types-check.js.map +0 -1
- package/dist/pagination.test.d.ts +0 -2
- package/dist/pagination.test.d.ts.map +0 -1
- package/dist/pagination.test.js +0 -72
- package/dist/pagination.test.js.map +0 -1
- package/dist/runtime/close-info.d.ts +0 -84
- package/dist/runtime/close-info.d.ts.map +0 -1
- package/dist/runtime/close-info.js +0 -102
- package/dist/runtime/close-info.js.map +0 -1
- package/dist/runtime/close-info.test.d.ts +0 -2
- package/dist/runtime/close-info.test.d.ts.map +0 -1
- package/dist/runtime/close-info.test.js +0 -109
- package/dist/runtime/close-info.test.js.map +0 -1
- package/dist/runtime/errors.d.ts +0 -11
- package/dist/runtime/errors.d.ts.map +0 -1
- package/dist/runtime/errors.js +0 -41
- package/dist/runtime/errors.js.map +0 -1
- package/dist/runtime/errors.test.d.ts +0 -2
- package/dist/runtime/errors.test.d.ts.map +0 -1
- package/dist/runtime/errors.test.js +0 -79
- package/dist/runtime/errors.test.js.map +0 -1
- package/dist/runtime/frame.d.ts +0 -8
- package/dist/runtime/frame.d.ts.map +0 -1
- package/dist/runtime/frame.js +0 -12
- package/dist/runtime/frame.js.map +0 -1
- package/dist/runtime/frame.test.d.ts +0 -2
- package/dist/runtime/frame.test.d.ts.map +0 -1
- package/dist/runtime/frame.test.js +0 -59
- package/dist/runtime/frame.test.js.map +0 -1
- package/dist/runtime/index.d.ts +0 -10
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js +0 -9
- package/dist/runtime/index.js.map +0 -1
- package/dist/runtime/local-history.d.ts.map +0 -1
- package/dist/runtime/local-history.js.map +0 -1
- package/dist/runtime/local-service-commands.d.ts +0 -26
- package/dist/runtime/local-service-commands.d.ts.map +0 -1
- package/dist/runtime/local-service-commands.js +0 -29
- package/dist/runtime/local-service-commands.js.map +0 -1
- package/dist/runtime/local-socket-server.d.ts +0 -20
- package/dist/runtime/local-socket-server.d.ts.map +0 -1
- package/dist/runtime/local-socket-server.js.map +0 -1
- package/dist/runtime/refs.d.ts.map +0 -1
- package/dist/runtime/refs.js.map +0 -1
- package/dist/runtime/runtime.test.d.ts +0 -2
- package/dist/runtime/runtime.test.d.ts.map +0 -1
- package/dist/runtime/runtime.test.js +0 -37
- package/dist/runtime/runtime.test.js.map +0 -1
- package/dist/runtime/service-helpers.d.ts.map +0 -1
- package/dist/runtime/service-helpers.js.map +0 -1
- package/dist/runtime/service-teardown.d.ts +0 -5
- package/dist/runtime/service-teardown.d.ts.map +0 -1
- package/dist/runtime/service-teardown.js +0 -36
- package/dist/runtime/service-teardown.js.map +0 -1
- package/dist/runtime/service-teardown.test.d.ts +0 -2
- package/dist/runtime/service-teardown.test.d.ts.map +0 -1
- package/dist/runtime/service-teardown.test.js +0 -80
- package/dist/runtime/service-teardown.test.js.map +0 -1
- package/dist/runtime/subscribers.d.ts +0 -152
- package/dist/runtime/subscribers.d.ts.map +0 -1
- package/dist/runtime/subscribers.js +0 -222
- package/dist/runtime/subscribers.js.map +0 -1
- package/dist/service-socket-path.test.d.ts +0 -2
- package/dist/service-socket-path.test.d.ts.map +0 -1
- package/dist/service-socket-path.test.js +0 -87
- package/dist/service-socket-path.test.js.map +0 -1
- package/dist/service.test.d.ts +0 -2
- package/dist/service.test.d.ts.map +0 -1
- package/dist/service.test.js +0 -796
- package/dist/service.test.js.map +0 -1
- package/dist/test/index.d.ts +0 -47
- package/dist/test/index.d.ts.map +0 -1
- package/dist/test/index.js +0 -39
- package/dist/test/index.js.map +0 -1
- package/dist/test-utils/conformance-adapter.d.ts +0 -40
- package/dist/test-utils/conformance-adapter.d.ts.map +0 -1
- package/dist/test-utils/conformance-adapter.js +0 -250
- package/dist/test-utils/conformance-adapter.js.map +0 -1
- package/dist/tm-client-test-support.d.ts +0 -184
- package/dist/tm-client-test-support.d.ts.map +0 -1
- package/dist/tm-client-test-support.js +0 -466
- package/dist/tm-client-test-support.js.map +0 -1
- package/dist/tm-client.d.ts +0 -269
- package/dist/tm-client.d.ts.map +0 -1
- package/dist/tm-client.js +0 -518
- package/dist/tm-client.js.map +0 -1
- package/dist/tm-client.test.d.ts +0 -2
- package/dist/tm-client.test.d.ts.map +0 -1
- package/dist/tm-client.test.js +0 -490
- package/dist/tm-client.test.js.map +0 -1
- /package/dist/{runtime/refs.d.ts → refs.d.ts} +0 -0
- /package/dist/{runtime/refs.js → refs.js} +0 -0
|
@@ -1,62 +1,26 @@
|
|
|
1
|
-
import { Args, Command
|
|
1
|
+
import { Args, Command } from "@effect/cli";
|
|
2
2
|
import { Effect } from "effect";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const listAgents = Command.make("list", { json: jsonOption }, ({ json }) => request(AgentsList, {}).pipe(Effect.tap((result) => Effect.sync(() => {
|
|
8
|
-
const r = result;
|
|
9
|
-
const entries = r.agents;
|
|
10
|
-
if (json) {
|
|
11
|
-
// Emit the full result (incl. nextCursor) so a machine consumer
|
|
12
|
-
// can detect a truncated page; `r.agents` alone would hide it.
|
|
13
|
-
console.log(JSON.stringify(r, null, JSON_INDENT_SPACES));
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
if (entries.length === 0) {
|
|
17
|
-
console.log("No agents found.");
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
for (const agent of entries) {
|
|
21
|
-
let line = agent.name;
|
|
22
|
-
if (agent.displayName)
|
|
23
|
-
line += ` (${agent.displayName})`;
|
|
24
|
-
line += `\n ID: ${agent.id}\n Status: ${agent.status}`;
|
|
25
|
-
if (agent.description)
|
|
26
|
-
line += `\n Description: ${agent.description}`;
|
|
27
|
-
console.log(line + "\n");
|
|
28
|
-
}
|
|
29
|
-
// Signal a truncated page so users don't mistake it for the full list.
|
|
30
|
-
if (r.nextCursor !== undefined) {
|
|
31
|
-
console.log(`Showing first ${entries.length} — more results available.`);
|
|
32
|
-
}
|
|
33
|
-
})), Effect.asVoid, Effect.catchAll((err) => Effect.sync(() => {
|
|
34
|
-
console.error(`Failed: ${err.message}`);
|
|
35
|
-
process.exit(1);
|
|
36
|
-
})))).pipe(Command.withDescription("List agents (default)"));
|
|
3
|
+
import { LocalDaemonCommands } from "../../local-daemon-rpc.js";
|
|
4
|
+
import { command, runHandler } from "../transport.js";
|
|
5
|
+
import { logJson, logLines } from "../output.js";
|
|
6
|
+
const listAgents = Command.make("list", {}, () => runHandler(command(LocalDaemonCommands.AgentsList, {}).pipe(Effect.flatMap(logJson), Effect.asVoid))).pipe(Command.withDescription("List agents (default)"));
|
|
37
7
|
const namesArg = Args.text({ name: "name" }).pipe(Args.withDescription("Agent names to look up"), Args.repeated);
|
|
38
|
-
const lookupAgents = Command.make("lookup", { names: namesArg }, ({ names }) =>
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
console.log("No agents found.");
|
|
42
|
-
return;
|
|
8
|
+
const lookupAgents = Command.make("lookup", { names: namesArg }, ({ names }) => runHandler(command(LocalDaemonCommands.AgentsSearch, { names }).pipe(Effect.flatMap((result) => {
|
|
9
|
+
if (result.agents.length === 0) {
|
|
10
|
+
return Effect.log("No agents found.");
|
|
43
11
|
}
|
|
44
|
-
|
|
12
|
+
return logLines(result.agents.map((agent) => {
|
|
45
13
|
let line = `Agent: ${agent.name}\n ID: ${agent.id}\n Status: ${agent.status}`;
|
|
46
14
|
if (agent.description)
|
|
47
15
|
line += `\n Description: ${agent.description}`;
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
})
|
|
51
|
-
console.error(`Failed: ${err.message}`);
|
|
52
|
-
process.exit(1);
|
|
53
|
-
})))).pipe(Command.withDescription("Look up agents by name"));
|
|
16
|
+
return `${line}\n`;
|
|
17
|
+
}));
|
|
18
|
+
}), Effect.asVoid))).pipe(Command.withDescription("Look up agents by name"));
|
|
54
19
|
/**
|
|
55
20
|
* `moltzap agents [list|lookup]` — default (no subcommand) lists all agents,
|
|
56
|
-
* `lookup` resolves one or more names.
|
|
57
|
-
* shape for scripting.
|
|
21
|
+
* `lookup` resolves one or more names.
|
|
58
22
|
*/
|
|
59
23
|
export const agentsCommand = Command.make("agents", {}, () =>
|
|
60
24
|
// Bare `moltzap agents` with no subcommand defaults to listing.
|
|
61
|
-
listAgents.handler({
|
|
25
|
+
listAgents.handler({})).pipe(Command.withDescription("List and look up agents on MoltZap"), Command.withSubcommands([listAgents, lookupAgents]));
|
|
62
26
|
//# sourceMappingURL=agents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/cli/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/cli/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAC/C,UAAU,CACR,OAAO,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EACvB,MAAM,CAAC,MAAM,CACd,CACF,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAEzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAC/C,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,EAC9C,IAAI,CAAC,QAAQ,CACd,CAAC;AAEF,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7E,UAAU,CACR,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CACvD,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;IACxB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CACb,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,IAAI,IAAI,GAAG,UAAU,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,EAAE,eAAe,KAAK,CAAC,MAAM,EAAE,CAAC;QAChF,IAAI,KAAK,CAAC,WAAW;YACnB,IAAI,IAAI,oBAAoB,KAAK,CAAC,WAAW,EAAE,CAAC;QAClD,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,EACF,MAAM,CAAC,MAAM,CACd,CACF,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE;AAC3D,gEAAgE;AAChE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CACvB,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CAAC,oCAAoC,CAAC,EAC7D,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CACpD,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Command } from "@effect/cli";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { ContactId, UserId } from "@moltzap/protocol/identity";
|
|
3
|
+
export declare const contactsCommand: Command.Command<"contacts", import("../transport.js").Transport, never, {
|
|
4
|
+
readonly subcommand: import("effect/Option").Option<{} | {
|
|
5
|
+
readonly userId: UserId;
|
|
5
6
|
} | {
|
|
6
|
-
readonly
|
|
7
|
-
} | {
|
|
8
|
-
readonly contactId: string;
|
|
7
|
+
readonly contactId: ContactId;
|
|
9
8
|
}>;
|
|
10
9
|
}>;
|
|
11
10
|
//# sourceMappingURL=contacts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,
|
|
1
|
+
{"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAiD/D,eAAO,MAAM,eAAe;;;;;;EAK3B,CAAC"}
|
|
@@ -1,45 +1,17 @@
|
|
|
1
|
-
import { Args, Command
|
|
1
|
+
import { Args, Command } from "@effect/cli";
|
|
2
2
|
import { Effect } from "effect";
|
|
3
|
-
import {} from "@moltzap/protocol";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
})));
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
if (r.contacts.length === 0) {
|
|
20
|
-
console.log("No contacts found.");
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
for (const c of r.contacts) {
|
|
24
|
-
const rel = c.relationship ? ` (${c.relationship})` : "";
|
|
25
|
-
console.log(` ${c.id} ${c.contactUserId}${rel}`);
|
|
26
|
-
}
|
|
27
|
-
// Signal a truncated page so users don't mistake it for the full list.
|
|
28
|
-
if (r.nextCursor !== undefined) {
|
|
29
|
-
console.log(`Showing first ${r.contacts.length} — more results available.`);
|
|
30
|
-
}
|
|
31
|
-
})).pipe(Command.withDescription("List contacts"));
|
|
32
|
-
const userIdArg = Args.text({ name: "userId" }).pipe(Args.withDescription("User ID to add as a contact"));
|
|
33
|
-
const addContact = Command.make("add", { userId: userIdArg }, ({ userId: u }) => wrap(request(ContactsAdd, {
|
|
34
|
-
contactUserId: u,
|
|
35
|
-
}), (r) => {
|
|
36
|
-
console.log(`Contact added (id: ${r.contact.id})`);
|
|
37
|
-
})).pipe(Command.withDescription("Add a contact by user ID"));
|
|
38
|
-
const contactIdArg = Args.text({ name: "contactId" }).pipe(Args.withDescription("Contact ID"));
|
|
39
|
-
const acceptContact = Command.make("accept", { contactId: contactIdArg }, ({ contactId }) => wrap(request(ContactsAccept, {
|
|
40
|
-
contactId: contactId,
|
|
41
|
-
}), (r) => {
|
|
42
|
-
console.log(`Contact accepted: ${r.contact.id}`);
|
|
43
|
-
})).pipe(Command.withDescription("Accept a contact request"));
|
|
44
|
-
export const contactsCommand = Command.make("contacts", {}, () => listContacts.handler({ json: false })).pipe(Command.withDescription("Manage contacts"), Command.withSubcommands([listContacts, addContact, acceptContact]));
|
|
3
|
+
import { ContactId, UserId } from "@moltzap/protocol/identity";
|
|
4
|
+
import { LocalDaemonCommands } from "../../local-daemon-rpc.js";
|
|
5
|
+
import { command, runHandler } from "../transport.js";
|
|
6
|
+
import { logJson } from "../output.js";
|
|
7
|
+
const listContacts = Command.make("list", {}, () => runHandler(command(LocalDaemonCommands.ContactsList, {}).pipe(Effect.flatMap(logJson), Effect.asVoid))).pipe(Command.withDescription("List contacts"));
|
|
8
|
+
const userIdArg = Args.text({ name: "userId" }).pipe(Args.withSchema(UserId), Args.withDescription("User ID to add as a contact"));
|
|
9
|
+
const addContact = Command.make("add", { userId: userIdArg }, ({ userId: u }) => runHandler(command(LocalDaemonCommands.ContactsAdd, {
|
|
10
|
+
userId: u,
|
|
11
|
+
}).pipe(Effect.flatMap((r) => Effect.log(`Contact added (id: ${r.contact.id})`)), Effect.asVoid))).pipe(Command.withDescription("Add a contact by user ID"));
|
|
12
|
+
const contactIdArg = Args.text({ name: "contactId" }).pipe(Args.withSchema(ContactId), Args.withDescription("Contact ID"));
|
|
13
|
+
const acceptContact = Command.make("accept", { contactId: contactIdArg }, ({ contactId }) => runHandler(command(LocalDaemonCommands.ContactsAccept, {
|
|
14
|
+
contactId,
|
|
15
|
+
}).pipe(Effect.flatMap((r) => Effect.log(`Contact accepted: ${r.contact.id}`)), Effect.asVoid))).pipe(Command.withDescription("Accept a contact request"));
|
|
16
|
+
export const contactsCommand = Command.make("contacts", {}, () => listContacts.handler({})).pipe(Command.withDescription("Manage contacts"), Command.withSubcommands([listContacts, addContact, acceptContact]));
|
|
45
17
|
//# sourceMappingURL=contacts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../src/cli/commands/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../src/cli/commands/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CACjD,UAAU,CACR,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAChD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EACvB,MAAM,CAAC,MAAM,CACd,CACF,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;AAEjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAClD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EACvB,IAAI,CAAC,eAAe,CAAC,6BAA6B,CAAC,CACpD,CAAC;AAEF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAC9E,UAAU,CACR,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE;IACvC,MAAM,EAAE,CAAC;CACV,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,EACxE,MAAM,CAAC,MAAM,CACd,CACF,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAE5D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CACxD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1B,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CACnC,CAAC;AAEF,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAChC,QAAQ,EACR,EAAE,SAAS,EAAE,YAAY,EAAE,EAC3B,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAChB,UAAU,CACR,OAAO,CAAC,mBAAmB,CAAC,cAAc,EAAE;IAC1C,SAAS;CACV,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EACtE,MAAM,CAAC,MAAM,CACd,CACF,CACJ,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,CAC/D,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CACzB,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAC1C,OAAO,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CACnE,CAAC"}
|
|
@@ -1,30 +1,20 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* D3 cutover: only `history` survives; legacy list/create/archive/etc.
|
|
3
|
-
* subcommands ship in the D3 ADD slice once typed `Task*` CLI helpers
|
|
4
|
-
* land at the transport boundary.
|
|
5
|
-
*/
|
|
6
1
|
import { Command } from "@effect/cli";
|
|
7
2
|
import { Option } from "effect";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* `Task*` / `TaskConversation*` ships in the D3 ADD slice.
|
|
12
|
-
*/
|
|
13
|
-
export declare const conversationsCommand: Command.Command<"conversations", never, never, {
|
|
3
|
+
import { ConversationId } from "@moltzap/protocol/conversation";
|
|
4
|
+
import { TaskId } from "@moltzap/protocol/task";
|
|
5
|
+
export declare const conversationsCommand: Command.Command<"conversations", import("../transport.js").Transport, never, {
|
|
14
6
|
readonly subcommand: Option.Option<{
|
|
15
|
-
readonly taskId:
|
|
16
|
-
readonly conversationId:
|
|
7
|
+
readonly taskId: TaskId;
|
|
8
|
+
readonly conversationId: ConversationId;
|
|
17
9
|
readonly limit: number;
|
|
18
|
-
readonly json: boolean;
|
|
19
10
|
readonly sessionKey: Option.Option<string>;
|
|
20
11
|
}>;
|
|
21
12
|
}>;
|
|
22
13
|
/** Top-level `moltzap history <taskId> <conversationId>` — identical to `conversations history`. */
|
|
23
|
-
export declare const historyCommand: Command.Command<"history",
|
|
24
|
-
readonly taskId:
|
|
25
|
-
readonly conversationId:
|
|
14
|
+
export declare const historyCommand: Command.Command<"history", import("../transport.js").Transport, never, {
|
|
15
|
+
readonly taskId: TaskId;
|
|
16
|
+
readonly conversationId: ConversationId;
|
|
26
17
|
readonly limit: number;
|
|
27
|
-
readonly json: boolean;
|
|
28
18
|
readonly sessionKey: Option.Option<string>;
|
|
29
19
|
}>;
|
|
30
20
|
//# sourceMappingURL=conversations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/conversations.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/conversations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAW,MAAM,aAAa,CAAC;AACrD,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AA6DhD,eAAO,MAAM,oBAAoB;;;;;;;EAQhC,CAAC;AAEF,0GAA0G;AAC1G,eAAO,MAAM,cAAc;;;;;EAS+C,CAAC"}
|
|
@@ -1,87 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
* D3 cutover: only `history` survives; legacy list/create/archive/etc.
|
|
3
|
-
* subcommands ship in the D3 ADD slice once typed `Task*` CLI helpers
|
|
4
|
-
* land at the transport boundary.
|
|
5
|
-
*/
|
|
6
|
-
import { Args, Command, HelpDoc, Options } from "@effect/cli";
|
|
1
|
+
import { Args, Command, Options } from "@effect/cli";
|
|
7
2
|
import { Effect, Option } from "effect";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
|
|
3
|
+
import { ConversationId } from "@moltzap/protocol/conversation";
|
|
4
|
+
import { TaskId } from "@moltzap/protocol/task";
|
|
5
|
+
import { LocalDaemonCommands } from "../../local-daemon-rpc.js";
|
|
6
|
+
import { command, runHandler } from "../transport.js";
|
|
7
|
+
import { logJson, logLines } from "../output.js";
|
|
12
8
|
const DEFAULT_HISTORY_LIMIT = 50;
|
|
13
|
-
const JSON_INDENT_SPACES = 2;
|
|
14
|
-
const MILLISECONDS_PER_MINUTE = 60_000;
|
|
15
|
-
const wrap = (effect, onSuccess) => effect.pipe(Effect.tap((value) => Effect.sync(() => onSuccess(value))), Effect.asVoid, Effect.catchAll((err) => Effect.sync(() => {
|
|
16
|
-
console.error(`Failed: ${err.message}`);
|
|
17
|
-
process.exit(1);
|
|
18
|
-
})));
|
|
19
9
|
const historyLimitOption = Options.integer("limit").pipe(Options.withDefault(DEFAULT_HISTORY_LIMIT), Options.withDescription("Max messages to show"));
|
|
20
10
|
const sessionKeyOption = Options.text("session-key").pipe(Options.withDescription("Session key for cross-conversation context"), Options.optional);
|
|
21
|
-
const taskIdArg = Args.text({ name: "taskId" }).pipe(Args.
|
|
22
|
-
const conversationIdArg = Args.text({ name: "conversationId" }).pipe(Args.
|
|
23
|
-
|
|
24
|
-
if (!Option.isSome(sessionKey) || !result.conversationMeta)
|
|
25
|
-
return;
|
|
26
|
-
const label = result.conversationMeta.name ?? "conversation";
|
|
27
|
-
console.log(`Conversation: ${label} (${conversationId}) | ${result.newCount} new`);
|
|
28
|
-
console.log("");
|
|
29
|
-
}
|
|
30
|
-
function messageAgeMinutes(createdAt) {
|
|
31
|
-
return Math.max(0, Math.round((Date.now() - new Date(createdAt).getTime()) / MILLISECONDS_PER_MINUTE));
|
|
32
|
-
}
|
|
33
|
-
function renderHistoryMessage(message) {
|
|
34
|
-
const ago = messageAgeMinutes(message.createdAt);
|
|
35
|
-
const newMarker = message.isNew ? " *" : "";
|
|
36
|
-
console.log(` [${ago}m ago] ${message.senderName}: ${message.text}${newMarker}`);
|
|
37
|
-
}
|
|
38
|
-
const renderHistory = (conversationId, sessionKey, result, json) => {
|
|
39
|
-
if (json) {
|
|
40
|
-
console.log(JSON.stringify(result, null, JSON_INDENT_SPACES));
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
if (result.messages.length === 0) {
|
|
44
|
-
console.log("No messages.");
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
renderHistoryHeader(conversationId, sessionKey, result);
|
|
48
|
-
for (const message of result.messages) {
|
|
49
|
-
renderHistoryMessage(message);
|
|
50
|
-
}
|
|
51
|
-
if (result.hasMore) {
|
|
52
|
-
console.log(" ... more messages available");
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
const historyHandler = ({ taskId, conversationId, limit, json, sessionKey, }) => {
|
|
11
|
+
const taskIdArg = Args.text({ name: "taskId" }).pipe(Args.withSchema(TaskId), Args.withDescription("Task ID"));
|
|
12
|
+
const conversationIdArg = Args.text({ name: "conversationId" }).pipe(Args.withSchema(ConversationId), Args.withDescription("Conversation ID"));
|
|
13
|
+
const historyHandler = ({ taskId, conversationId, limit, sessionKey, }) => {
|
|
56
14
|
const params = Option.isSome(sessionKey)
|
|
57
15
|
? { taskId, conversationId, limit, sessionKey: sessionKey.value }
|
|
58
16
|
: { taskId, conversationId, limit };
|
|
59
|
-
return
|
|
60
|
-
renderHistory(conversationId, sessionKey, result, json);
|
|
61
|
-
});
|
|
17
|
+
return runHandler(command(LocalDaemonCommands.History, params).pipe(Effect.flatMap(logJson), Effect.asVoid));
|
|
62
18
|
};
|
|
63
19
|
const historySubcommand = Command.make("history", {
|
|
64
20
|
taskId: taskIdArg,
|
|
65
21
|
conversationId: conversationIdArg,
|
|
66
22
|
limit: historyLimitOption,
|
|
67
|
-
json: jsonOption,
|
|
68
23
|
sessionKey: sessionKeyOption,
|
|
69
24
|
}, historyHandler).pipe(Command.withDescription("Show message history for a conversation"));
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
*/
|
|
75
|
-
export const conversationsCommand = Command.make("conversations", {}, () => Effect.sync(() => {
|
|
76
|
-
console.log("moltzap conversations: only `history` is supported in this release.");
|
|
77
|
-
console.log("See `moltzap conversations history --help`.");
|
|
78
|
-
})).pipe(Command.withDescription("Show conversation history"), Command.withSubcommands([historySubcommand]));
|
|
25
|
+
export const conversationsCommand = Command.make("conversations", {}, () => logLines([
|
|
26
|
+
"moltzap conversations: only `history` is supported in this release.",
|
|
27
|
+
"See `moltzap conversations history --help`.",
|
|
28
|
+
])).pipe(Command.withDescription("Show conversation history"), Command.withSubcommands([historySubcommand]));
|
|
79
29
|
/** Top-level `moltzap history <taskId> <conversationId>` — identical to `conversations history`. */
|
|
80
30
|
export const historyCommand = Command.make("history", {
|
|
81
31
|
taskId: taskIdArg,
|
|
82
32
|
conversationId: conversationIdArg,
|
|
83
33
|
limit: historyLimitOption,
|
|
84
|
-
json: jsonOption,
|
|
85
34
|
sessionKey: sessionKeyOption,
|
|
86
35
|
}, historyHandler).pipe(Command.withDescription("Show message history for a conversation"));
|
|
87
36
|
//# sourceMappingURL=conversations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../../src/cli/commands/conversations.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../../src/cli/commands/conversations.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,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGjD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CACtD,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAC1C,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAChD,CAAC;AAEF,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CACvD,OAAO,CAAC,eAAe,CAAC,4CAA4C,CAAC,EACrE,OAAO,CAAC,QAAQ,CACjB,CAAC;AAEF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAClD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EACvB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAChC,CAAC;AAEF,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAClE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAC/B,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CACxC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,EACtB,MAAM,EACN,cAAc,EACd,KAAK,EACL,UAAU,GAMX,EAAE,EAAE;IACH,MAAM,MAAM,GAAmB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QACtD,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE;QACjE,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IACtC,OAAO,UAAU,CACf,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAC/C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EACvB,MAAM,CAAC,MAAM,CACd,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CACpC,SAAS,EACT;IACE,MAAM,EAAE,SAAS;IACjB,cAAc,EAAE,iBAAiB;IACjC,KAAK,EAAE,kBAAkB;IACzB,UAAU,EAAE,gBAAgB;CAC7B,EACD,cAAc,CACf,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,CACzE,QAAQ,CAAC;IACP,qEAAqE;IACrE,6CAA6C;CAC9C,CAAC,CACH,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CAAC,2BAA2B,CAAC,EACpD,OAAO,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAC7C,CAAC;AAEF,0GAA0G;AAC1G,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CACxC,SAAS,EACT;IACE,MAAM,EAAE,SAAS;IACjB,cAAc,EAAE,iBAAiB;IACjC,KAAK,EAAE,kBAAkB;IACzB,UAAU,EAAE,gBAAgB;CAC7B,EACD,cAAc,CACf,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAC"}
|
|
@@ -1,36 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `moltzap messages <subcommand>` —
|
|
2
|
+
* `moltzap messages <subcommand>` — subcommand group.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* messages list → agent/message/list
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* `commands/send.ts`. `send` is a one-shot top-level command; `messages`
|
|
10
|
-
* is a subcommand group whose future v1.1 member (`messages tail`, deferred
|
|
11
|
-
* per Non-goal §3.1) lands in the same file.
|
|
12
|
-
*
|
|
13
|
-
* Open question Q-M-1 (see design doc §8): `--cursor` has no server
|
|
14
|
-
* backing in the current protocol; ESCALATED to spec rev 4. The flag is
|
|
15
|
-
* deliberately absent from this interface until resolved.
|
|
6
|
+
* `messages` is a subcommand group (distinct from the one-shot top-level
|
|
7
|
+
* `send` command). `--cursor` is absent: it has no server backing in the
|
|
8
|
+
* current protocol.
|
|
16
9
|
*/
|
|
17
10
|
import { Command } from "@effect/cli";
|
|
18
11
|
import { Effect, Option } from "effect";
|
|
19
12
|
import { type Transport, type TransportError } from "../transport.js";
|
|
20
|
-
import { ConversationId
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
readonly _tag: "MessagesInputError";
|
|
24
|
-
} & Readonly<A>;
|
|
25
|
-
declare class MessagesInputError extends MessagesInputError_base<{
|
|
26
|
-
readonly message: string;
|
|
27
|
-
readonly reason: string;
|
|
28
|
-
}> {
|
|
29
|
-
}
|
|
13
|
+
import { ConversationId } from "@moltzap/protocol/conversation";
|
|
14
|
+
import { TaskId } from "@moltzap/protocol/task";
|
|
15
|
+
export type MessagesCommandError = TransportError;
|
|
30
16
|
/**
|
|
31
|
-
* `moltzap messages list --conversation <id> [--limit N]`
|
|
32
|
-
*
|
|
33
|
-
* question is resolved.
|
|
17
|
+
* `moltzap messages list --conversation <id> [--limit N]`. `cursor` is
|
|
18
|
+
* absent: no server backing in the current protocol.
|
|
34
19
|
*/
|
|
35
20
|
export interface MessagesListArgs {
|
|
36
21
|
readonly taskId: TaskId;
|
|
@@ -38,22 +23,15 @@ export interface MessagesListArgs {
|
|
|
38
23
|
readonly limit?: number;
|
|
39
24
|
}
|
|
40
25
|
/**
|
|
41
|
-
* Wraps `
|
|
42
|
-
* `<createdAt>\t<senderName ?? senderId>\t<text>`. `seq` was removed
|
|
43
|
-
* from the wire shape in PR #379 — only `id`, `senderId`, optional
|
|
44
|
-
* `senderName`, `createdAt`, and `parts` survive.
|
|
45
|
-
*
|
|
46
|
-
* `--json` is a stretch flag added by impl if consistent with
|
|
47
|
-
* `conversations list` output style (not fixed by spec).
|
|
26
|
+
* Wraps `agent/message/list` and emits the full daemon result as JSON.
|
|
48
27
|
*/
|
|
49
28
|
export declare const messagesListHandler: (args: MessagesListArgs) => Effect.Effect<void, MessagesCommandError, Transport>;
|
|
50
29
|
/** `moltzap messages [list]` subcommand group. */
|
|
51
30
|
export declare const messagesCommand: Command.Command<"messages", Transport, never, {
|
|
52
31
|
readonly subcommand: Option.Option<{
|
|
53
|
-
readonly task:
|
|
54
|
-
readonly conversation:
|
|
32
|
+
readonly task: TaskId;
|
|
33
|
+
readonly conversation: ConversationId;
|
|
55
34
|
readonly limit: Option.Option<number>;
|
|
56
35
|
}>;
|
|
57
36
|
}>;
|
|
58
|
-
export {};
|
|
59
37
|
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/messages.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAW,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAKhD,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAIlD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAID;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,gBAAgB,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,EAAE,SAAS,CAYL,CAAC;AA2BlD,kDAAkD;AAClD,eAAO,MAAM,eAAe;;;;;;EAW3B,CAAC"}
|
|
@@ -1,36 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `moltzap messages <subcommand>` —
|
|
2
|
+
* `moltzap messages <subcommand>` — subcommand group.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* messages list → agent/message/list
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* `commands/send.ts`. `send` is a one-shot top-level command; `messages`
|
|
10
|
-
* is a subcommand group whose future v1.1 member (`messages tail`, deferred
|
|
11
|
-
* per Non-goal §3.1) lands in the same file.
|
|
12
|
-
*
|
|
13
|
-
* Open question Q-M-1 (see design doc §8): `--cursor` has no server
|
|
14
|
-
* backing in the current protocol; ESCALATED to spec rev 4. The flag is
|
|
15
|
-
* deliberately absent from this interface until resolved.
|
|
6
|
+
* `messages` is a subcommand group (distinct from the one-shot top-level
|
|
7
|
+
* `send` command). `--cursor` is absent: it has no server backing in the
|
|
8
|
+
* current protocol.
|
|
16
9
|
*/
|
|
17
|
-
import { Command,
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import { ConversationId
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
}
|
|
10
|
+
import { Command, Options } from "@effect/cli";
|
|
11
|
+
import { Effect, Option } from "effect";
|
|
12
|
+
import { command, runHandler, } from "../transport.js";
|
|
13
|
+
import { logJson, logLines } from "../output.js";
|
|
14
|
+
import { ConversationId } from "@moltzap/protocol/conversation";
|
|
15
|
+
import { TaskId } from "@moltzap/protocol/task";
|
|
16
|
+
import { LocalDaemonCommands } from "../../local-daemon-rpc.js";
|
|
25
17
|
// ─── Handlers ──────────────────────────────────────────────────────────────
|
|
26
18
|
/**
|
|
27
|
-
* Wraps `
|
|
28
|
-
* `<createdAt>\t<senderName ?? senderId>\t<text>`. `seq` was removed
|
|
29
|
-
* from the wire shape in PR #379 — only `id`, `senderId`, optional
|
|
30
|
-
* `senderName`, `createdAt`, and `parts` survive.
|
|
31
|
-
*
|
|
32
|
-
* `--json` is a stretch flag added by impl if consistent with
|
|
33
|
-
* `conversations list` output style (not fixed by spec).
|
|
19
|
+
* Wraps `agent/message/list` and emits the full daemon result as JSON.
|
|
34
20
|
*/
|
|
35
21
|
export const messagesListHandler = (args) => Effect.gen(function* () {
|
|
36
22
|
const params = args.limit === undefined
|
|
@@ -40,23 +26,12 @@ export const messagesListHandler = (args) => Effect.gen(function* () {
|
|
|
40
26
|
conversationId: args.conversationId,
|
|
41
27
|
limit: args.limit,
|
|
42
28
|
};
|
|
43
|
-
const result = yield*
|
|
44
|
-
yield*
|
|
45
|
-
for (const m of result.messages) {
|
|
46
|
-
const text = m.parts.find((p) => p.type === "text")?.text ?? "";
|
|
47
|
-
const sender = "senderName" in m && typeof m.senderName === "string"
|
|
48
|
-
? m.senderName
|
|
49
|
-
: m.senderId;
|
|
50
|
-
console.log(`${m.createdAt}\t${sender}\t${text}`);
|
|
51
|
-
}
|
|
52
|
-
if (result.hasMore) {
|
|
53
|
-
console.log("... more messages available");
|
|
54
|
-
}
|
|
55
|
-
});
|
|
29
|
+
const result = yield* command(LocalDaemonCommands.MessagesList, params);
|
|
30
|
+
yield* logJson(result);
|
|
56
31
|
}).pipe(Effect.withSpan("messagesListHandler"));
|
|
57
32
|
// ─── CLI commands ──────────────────────────────────────────────────────────
|
|
58
|
-
const taskOption = Options.text("task").pipe(Options.
|
|
59
|
-
const conversationOption = Options.text("conversation").pipe(Options.
|
|
33
|
+
const taskOption = Options.text("task").pipe(Options.withSchema(TaskId), Options.withDescription("Task id"));
|
|
34
|
+
const conversationOption = Options.text("conversation").pipe(Options.withSchema(ConversationId), Options.withDescription("Conversation id"));
|
|
60
35
|
const msgLimitOption = Options.integer("limit").pipe(Options.optional);
|
|
61
36
|
const messagesListCommand = Command.make("list", { task: taskOption, conversation: conversationOption, limit: msgLimitOption }, ({ task, conversation, limit }) => {
|
|
62
37
|
const args = {
|
|
@@ -67,9 +42,9 @@ const messagesListCommand = Command.make("list", { task: taskOption, conversatio
|
|
|
67
42
|
return runHandler(messagesListHandler(args));
|
|
68
43
|
}).pipe(Command.withDescription("List messages in a conversation"));
|
|
69
44
|
/** `moltzap messages [list]` subcommand group. */
|
|
70
|
-
export const messagesCommand = Command.make("messages", {}, () =>
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
"--
|
|
45
|
+
export const messagesCommand = Command.make("messages", {}, () => logLines([
|
|
46
|
+
"Usage: moltzap messages list --task <id> --conversation <id> [--limit N]",
|
|
47
|
+
])).pipe(Command.withDescription("Query message history. Runs as the identity selected by the global " +
|
|
48
|
+
"--profile flag (see `moltzap --help`); visibility is scoped " +
|
|
74
49
|
"to conversations that caller participates in."), Command.withSubcommands([messagesListCommand]));
|
|
75
50
|
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/cli/commands/messages.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/cli/commands/messages.ts"],"names":[],"mappings":"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"}
|