@moltzap/client 2026.414.0 → 2026.425.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/channel-core.d.ts +28 -15
- package/dist/channel-core.d.ts.map +1 -1
- package/dist/channel-core.js +113 -74
- package/dist/channel-core.js.map +1 -1
- package/dist/channel-core.test.js +126 -34
- package/dist/channel-core.test.js.map +1 -1
- package/dist/cli/__tests__/cli-multi-agent.int.test.d.ts +2 -0
- package/dist/cli/__tests__/cli-multi-agent.int.test.d.ts.map +1 -0
- package/dist/cli/__tests__/cli-multi-agent.int.test.js +26 -0
- package/dist/cli/__tests__/cli-multi-agent.int.test.js.map +1 -0
- package/dist/cli/commands/agents.d.ts +13 -2
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +30 -18
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/apps.d.ts +96 -0
- package/dist/cli/commands/apps.d.ts.map +1 -0
- package/dist/cli/commands/apps.js +193 -0
- package/dist/cli/commands/apps.js.map +1 -0
- package/dist/cli/commands/apps.test.d.ts +2 -0
- package/dist/cli/commands/apps.test.d.ts.map +1 -0
- package/dist/cli/commands/apps.test.js +220 -0
- package/dist/cli/commands/apps.test.js.map +1 -0
- package/dist/cli/commands/contacts.d.ts +18 -2
- package/dist/cli/commands/contacts.d.ts.map +1 -1
- package/dist/cli/commands/contacts.js +44 -52
- package/dist/cli/commands/contacts.js.map +1 -1
- package/dist/cli/commands/conversations-v2.test.d.ts +2 -0
- package/dist/cli/commands/conversations-v2.test.d.ts.map +1 -0
- package/dist/cli/commands/conversations-v2.test.js +92 -0
- package/dist/cli/commands/conversations-v2.test.js.map +1 -0
- package/dist/cli/commands/conversations.d.ts +73 -3
- package/dist/cli/commands/conversations.d.ts.map +1 -1
- package/dist/cli/commands/conversations.js +157 -108
- package/dist/cli/commands/conversations.js.map +1 -1
- package/dist/cli/commands/invite.d.ts +6 -2
- package/dist/cli/commands/invite.d.ts.map +1 -1
- package/dist/cli/commands/invite.js +8 -6
- package/dist/cli/commands/invite.js.map +1 -1
- package/dist/cli/commands/messages.d.ts +48 -0
- package/dist/cli/commands/messages.d.ts.map +1 -0
- package/dist/cli/commands/messages.js +68 -0
- package/dist/cli/commands/messages.js.map +1 -0
- package/dist/cli/commands/messages.test.d.ts +2 -0
- package/dist/cli/commands/messages.test.d.ts.map +1 -0
- package/dist/cli/commands/messages.test.js +73 -0
- package/dist/cli/commands/messages.test.js.map +1 -0
- package/dist/cli/commands/permissions.d.ts +66 -0
- package/dist/cli/commands/permissions.d.ts.map +1 -0
- package/dist/cli/commands/permissions.js +101 -0
- package/dist/cli/commands/permissions.js.map +1 -0
- package/dist/cli/commands/permissions.test.d.ts +2 -0
- package/dist/cli/commands/permissions.test.d.ts.map +1 -0
- package/dist/cli/commands/permissions.test.js +126 -0
- package/dist/cli/commands/permissions.test.js.map +1 -0
- package/dist/cli/commands/ping.d.ts +6 -2
- package/dist/cli/commands/ping.d.ts.map +1 -1
- package/dist/cli/commands/ping.js +21 -20
- package/dist/cli/commands/ping.js.map +1 -1
- package/dist/cli/commands/presence.d.ts +10 -2
- package/dist/cli/commands/presence.d.ts.map +1 -1
- package/dist/cli/commands/presence.js +27 -15
- package/dist/cli/commands/presence.js.map +1 -1
- package/dist/cli/commands/register.d.ts +24 -2
- package/dist/cli/commands/register.d.ts.map +1 -1
- package/dist/cli/commands/register.js +123 -47
- package/dist/cli/commands/register.js.map +1 -1
- package/dist/cli/commands/register.test.js +45 -27
- package/dist/cli/commands/register.test.js.map +1 -1
- package/dist/cli/commands/send.d.ts +43 -2
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +55 -13
- package/dist/cli/commands/send.js.map +1 -1
- package/dist/cli/commands/send.test.js +20 -19
- package/dist/cli/commands/send.test.js.map +1 -1
- package/dist/cli/commands/status.d.ts +6 -2
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +16 -10
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/whoami.d.ts +7 -2
- package/dist/cli/commands/whoami.d.ts.map +1 -1
- package/dist/cli/commands/whoami.js +13 -7
- package/dist/cli/commands/whoami.js.map +1 -1
- package/dist/cli/config.d.ts +24 -8
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +65 -39
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/config.test.js +12 -10
- package/dist/cli/config.test.js.map +1 -1
- package/dist/cli/http-client.d.ts +6 -2
- package/dist/cli/http-client.d.ts.map +1 -1
- package/dist/cli/http-client.js +25 -24
- package/dist/cli/http-client.js.map +1 -1
- package/dist/cli/index.d.ts +16 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +160 -27
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/profile.d.ts +134 -0
- package/dist/cli/profile.d.ts.map +1 -0
- package/dist/cli/profile.js +217 -0
- package/dist/cli/profile.js.map +1 -0
- package/dist/cli/profile.test.d.ts +2 -0
- package/dist/cli/profile.test.d.ts.map +1 -0
- package/dist/cli/profile.test.js +263 -0
- package/dist/cli/profile.test.js.map +1 -0
- package/dist/cli/runtime.d.ts +34 -0
- package/dist/cli/runtime.d.ts.map +1 -0
- package/dist/cli/runtime.js +94 -0
- package/dist/cli/runtime.js.map +1 -0
- package/dist/cli/socket-client.d.ts +15 -12
- package/dist/cli/socket-client.d.ts.map +1 -1
- package/dist/cli/socket-client.js +72 -75
- package/dist/cli/socket-client.js.map +1 -1
- package/dist/cli/transport.d.ts +181 -0
- package/dist/cli/transport.d.ts.map +1 -0
- package/dist/cli/transport.js +324 -0
- package/dist/cli/transport.js.map +1 -0
- package/dist/cli/transport.test.d.ts +2 -0
- package/dist/cli/transport.test.d.ts.map +1 -0
- package/dist/cli/transport.test.js +197 -0
- package/dist/cli/transport.test.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/close-info.d.ts +94 -0
- package/dist/runtime/close-info.d.ts.map +1 -0
- package/dist/runtime/close-info.js +109 -0
- package/dist/runtime/close-info.js.map +1 -0
- package/dist/runtime/close-info.test.d.ts +2 -0
- package/dist/runtime/close-info.test.d.ts.map +1 -0
- package/dist/runtime/close-info.test.js +102 -0
- package/dist/runtime/close-info.test.js.map +1 -0
- package/dist/runtime/errors.d.ts +47 -0
- package/dist/runtime/errors.d.ts.map +1 -0
- package/dist/runtime/errors.js +20 -0
- package/dist/runtime/errors.js.map +1 -0
- package/dist/runtime/errors.test.d.ts +2 -0
- package/dist/runtime/errors.test.d.ts.map +1 -0
- package/dist/runtime/errors.test.js +66 -0
- package/dist/runtime/errors.test.js.map +1 -0
- package/dist/runtime/frame.d.ts +25 -0
- package/dist/runtime/frame.d.ts.map +1 -0
- package/dist/runtime/frame.js +106 -0
- package/dist/runtime/frame.js.map +1 -0
- package/dist/runtime/frame.test.d.ts +2 -0
- package/dist/runtime/frame.test.d.ts.map +1 -0
- package/dist/runtime/frame.test.js +32 -0
- package/dist/runtime/frame.test.js.map +1 -0
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +3 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/refs.d.ts +10 -0
- package/dist/runtime/refs.d.ts.map +1 -0
- package/dist/runtime/refs.js +10 -0
- package/dist/runtime/refs.js.map +1 -0
- package/dist/runtime/runtime.test.d.ts +2 -0
- package/dist/runtime/runtime.test.d.ts.map +1 -0
- package/dist/runtime/runtime.test.js +29 -0
- package/dist/runtime/runtime.test.js.map +1 -0
- package/dist/runtime/subscribers.d.ts +157 -0
- package/dist/runtime/subscribers.d.ts.map +1 -0
- package/dist/runtime/subscribers.js +131 -0
- package/dist/runtime/subscribers.js.map +1 -0
- package/dist/runtime/subscribers.test.d.ts +2 -0
- package/dist/runtime/subscribers.test.d.ts.map +1 -0
- package/dist/runtime/subscribers.test.js +155 -0
- package/dist/runtime/subscribers.test.js.map +1 -0
- package/dist/service.d.ts +68 -17
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +461 -307
- package/dist/service.js.map +1 -1
- package/dist/service.test.js +266 -77
- package/dist/service.test.js.map +1 -1
- package/dist/test/index.d.ts +33 -0
- package/dist/test/index.d.ts.map +1 -0
- package/dist/test/index.js +44 -0
- package/dist/test/index.js.map +1 -0
- package/dist/test-utils/channel-service-fixture.d.ts +2 -1
- package/dist/test-utils/channel-service-fixture.d.ts.map +1 -1
- package/dist/test-utils/channel-service-fixture.js +31 -11
- package/dist/test-utils/channel-service-fixture.js.map +1 -1
- package/dist/test-utils/conformance-adapter.d.ts +50 -0
- package/dist/test-utils/conformance-adapter.d.ts.map +1 -0
- package/dist/test-utils/conformance-adapter.js +206 -0
- package/dist/test-utils/conformance-adapter.js.map +1 -0
- package/dist/test-utils/fake-service.d.ts +85 -0
- package/dist/test-utils/fake-service.d.ts.map +1 -0
- package/dist/test-utils/fake-service.js +103 -0
- package/dist/test-utils/fake-service.js.map +1 -0
- package/dist/test-utils/index.d.ts +2 -0
- package/dist/test-utils/index.d.ts.map +1 -1
- package/dist/test-utils/index.js +3 -2
- package/dist/test-utils/index.js.map +1 -1
- package/dist/ws-client.d.ts +157 -18
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +432 -94
- package/dist/ws-client.js.map +1 -1
- package/dist/ws-client.test.d.ts +2 -0
- package/dist/ws-client.test.d.ts.map +1 -0
- package/dist/ws-client.test.js +672 -0
- package/dist/ws-client.test.js.map +1 -0
- package/package.json +23 -14
- package/LICENSE +0 -21
- package/dist/__tests__/service.integration.test.d.ts +0 -2
- package/dist/__tests__/service.integration.test.d.ts.map +0 -1
- package/dist/__tests__/service.integration.test.js +0 -1087
- package/dist/__tests__/service.integration.test.js.map +0 -1
- package/dist/cli/commands/delete.d.ts +0 -3
- package/dist/cli/commands/delete.d.ts.map +0 -1
- package/dist/cli/commands/delete.js +0 -10
- package/dist/cli/commands/delete.js.map +0 -1
- package/dist/cli/commands/react.d.ts +0 -3
- package/dist/cli/commands/react.d.ts.map +0 -1
- package/dist/cli/commands/react.js +0 -18
- package/dist/cli/commands/react.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.test.js","sourceRoot":"","sources":["../../src/cli/profile.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effect runtime, logger, and process boundary for the `moltzap` CLI.
|
|
3
|
+
*
|
|
4
|
+
* The CLI is Effect-native end to end — commands build Effects, and the
|
|
5
|
+
* process entry runs a single `NodeRuntime.runMain` at `index.ts`. No
|
|
6
|
+
* per-command `Effect.runPromise`.
|
|
7
|
+
*
|
|
8
|
+
* Logging is Pino under the hood (matching the server's pattern) wrapped
|
|
9
|
+
* as an Effect `Logger` so `Effect.logInfo(...).pipe(Effect.annotateLogs(...))`
|
|
10
|
+
* inside commands routes through the same output format.
|
|
11
|
+
*/
|
|
12
|
+
import { Logger as EffectLogger, LogLevel } from "effect";
|
|
13
|
+
import pino from "pino";
|
|
14
|
+
/**
|
|
15
|
+
* Effect `Logger` backed by a Pino instance. Same wrapping shape as the
|
|
16
|
+
* server's `effectLogger` — annotations become Pino's first-arg object,
|
|
17
|
+
* the message is the string payload. Pino throw (shutdown transport
|
|
18
|
+
* torn down, etc.) is swallowed to stderr so the Effect fiber doesn't
|
|
19
|
+
* die on a log-write failure.
|
|
20
|
+
*/
|
|
21
|
+
export declare const effectLogger: EffectLogger.Logger<unknown, void>;
|
|
22
|
+
/**
|
|
23
|
+
* Replaces Effect's default console logger at the root of the program,
|
|
24
|
+
* and honors `MOLTZAP_LOG_LEVEL` (default "info") for minimum level.
|
|
25
|
+
*/
|
|
26
|
+
export declare const LoggerLive: import("effect/Layer").Layer<never, never, never>;
|
|
27
|
+
/**
|
|
28
|
+
* Minimum Effect log level, mapped from MOLTZAP_LOG_LEVEL.
|
|
29
|
+
* Used when composing layers at the CLI entrypoint.
|
|
30
|
+
*/
|
|
31
|
+
export declare const minLogLevel: LogLevel.LogLevel;
|
|
32
|
+
/** Pino instance for raw synchronous logging (e.g. fatal exits). */
|
|
33
|
+
export declare const rawLogger: pino.Logger<never, boolean>;
|
|
34
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/cli/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,IAAI,MAAM,MAAM,CAAC;AAwBxB;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,oCA0BxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,mDAOtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,QAmB/B,CAAC;AAEL,oEAAoE;AACpE,eAAO,MAAM,SAAS,6BAAO,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effect runtime, logger, and process boundary for the `moltzap` CLI.
|
|
3
|
+
*
|
|
4
|
+
* The CLI is Effect-native end to end — commands build Effects, and the
|
|
5
|
+
* process entry runs a single `NodeRuntime.runMain` at `index.ts`. No
|
|
6
|
+
* per-command `Effect.runPromise`.
|
|
7
|
+
*
|
|
8
|
+
* Logging is Pino under the hood (matching the server's pattern) wrapped
|
|
9
|
+
* as an Effect `Logger` so `Effect.logInfo(...).pipe(Effect.annotateLogs(...))`
|
|
10
|
+
* inside commands routes through the same output format.
|
|
11
|
+
*/
|
|
12
|
+
import { Logger as EffectLogger, LogLevel } from "effect";
|
|
13
|
+
import pino from "pino";
|
|
14
|
+
const PINO = pino({
|
|
15
|
+
level: process.env["MOLTZAP_LOG_LEVEL"] ?? "info",
|
|
16
|
+
transport: process.env["NODE_ENV"] !== "production"
|
|
17
|
+
? { target: "pino-pretty", options: { colorize: true } }
|
|
18
|
+
: undefined,
|
|
19
|
+
});
|
|
20
|
+
const LEVEL_TO_PINO = {
|
|
21
|
+
All: "trace",
|
|
22
|
+
Trace: "trace",
|
|
23
|
+
Debug: "debug",
|
|
24
|
+
Info: "info",
|
|
25
|
+
Warning: "warn",
|
|
26
|
+
Error: "error",
|
|
27
|
+
Fatal: "fatal",
|
|
28
|
+
None: "trace",
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Effect `Logger` backed by a Pino instance. Same wrapping shape as the
|
|
32
|
+
* server's `effectLogger` — annotations become Pino's first-arg object,
|
|
33
|
+
* the message is the string payload. Pino throw (shutdown transport
|
|
34
|
+
* torn down, etc.) is swallowed to stderr so the Effect fiber doesn't
|
|
35
|
+
* die on a log-write failure.
|
|
36
|
+
*/
|
|
37
|
+
export const effectLogger = EffectLogger.make(({ logLevel, message, annotations }) => {
|
|
38
|
+
const merged = {};
|
|
39
|
+
for (const [k, v] of annotations)
|
|
40
|
+
merged[k] = v;
|
|
41
|
+
const pinoMethod = LEVEL_TO_PINO[logLevel._tag] ?? "info";
|
|
42
|
+
const msg = typeof message === "string"
|
|
43
|
+
? message
|
|
44
|
+
: Array.isArray(message) && message.length === 1
|
|
45
|
+
? String(message[0])
|
|
46
|
+
: String(message);
|
|
47
|
+
try {
|
|
48
|
+
PINO[pinoMethod](merged, msg);
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
try {
|
|
52
|
+
process.stderr.write(`[cli-logger-fallback] ${msg} (${err instanceof Error ? err.message : String(err)})\n`);
|
|
53
|
+
// #ignore-sloppy-code-next-line[bare-catch]: inner fallback for stderr write failure — last resort, nothing to log to
|
|
54
|
+
}
|
|
55
|
+
catch (_innerErr) {
|
|
56
|
+
// stderr unavailable — drop rather than crash.
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
/**
|
|
61
|
+
* Replaces Effect's default console logger at the root of the program,
|
|
62
|
+
* and honors `MOLTZAP_LOG_LEVEL` (default "info") for minimum level.
|
|
63
|
+
*/
|
|
64
|
+
export const LoggerLive = EffectLogger.replace(EffectLogger.defaultLogger, effectLogger).pipe(
|
|
65
|
+
// Pino does its own level filtering, but we also gate via Effect so
|
|
66
|
+
// sub-info annotations don't build objects unnecessarily.
|
|
67
|
+
(layer) => layer);
|
|
68
|
+
/**
|
|
69
|
+
* Minimum Effect log level, mapped from MOLTZAP_LOG_LEVEL.
|
|
70
|
+
* Used when composing layers at the CLI entrypoint.
|
|
71
|
+
*/
|
|
72
|
+
export const minLogLevel = (() => {
|
|
73
|
+
const env = (process.env["MOLTZAP_LOG_LEVEL"] ?? "info").toLowerCase();
|
|
74
|
+
switch (env) {
|
|
75
|
+
case "trace":
|
|
76
|
+
return LogLevel.Trace;
|
|
77
|
+
case "debug":
|
|
78
|
+
return LogLevel.Debug;
|
|
79
|
+
case "info":
|
|
80
|
+
return LogLevel.Info;
|
|
81
|
+
case "warn":
|
|
82
|
+
case "warning":
|
|
83
|
+
return LogLevel.Warning;
|
|
84
|
+
case "error":
|
|
85
|
+
return LogLevel.Error;
|
|
86
|
+
case "fatal":
|
|
87
|
+
return LogLevel.Fatal;
|
|
88
|
+
default:
|
|
89
|
+
return LogLevel.Info;
|
|
90
|
+
}
|
|
91
|
+
})();
|
|
92
|
+
/** Pino instance for raw synchronous logging (e.g. fatal exits). */
|
|
93
|
+
export const rawLogger = PINO;
|
|
94
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/cli/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
1
2
|
/**
|
|
2
|
-
* Send a request to the MoltZapService via Unix socket
|
|
3
|
-
*
|
|
3
|
+
* Send a request to the MoltZapService via Unix socket, returning the `result`
|
|
4
|
+
* field as an Effect. Typed failures:
|
|
5
|
+
* - "service not running" when the socket path doesn't exist / ECONNREFUSED
|
|
6
|
+
* - "timeout" when the 10s deadline elapses
|
|
7
|
+
* - "remote error" when the server responds with `{error: "..."}`
|
|
8
|
+
* - "malformed" when the response isn't parseable JSON
|
|
9
|
+
*
|
|
10
|
+
* Uses `Effect.async` so fiber interruption cleanly destroys the socket
|
|
11
|
+
* (AbortSignal callback) — no leaked fd if a parent fiber times out.
|
|
4
12
|
*/
|
|
5
|
-
export declare
|
|
6
|
-
/**
|
|
7
|
-
* Wrap a Commander action to catch errors and exit cleanly.
|
|
8
|
-
* Commander's .action() accepts (...args: any[]) => void, so the
|
|
9
|
-
* generic signature here just preserves the caller's argument types.
|
|
10
|
-
*/
|
|
11
|
-
export declare function action<A extends unknown[]>(fn: (...args: A) => Promise<void>): (...args: A) => void;
|
|
13
|
+
export declare const request: (method: string, params?: Record<string, unknown>, socketPath?: string) => Effect.Effect<unknown, Error>;
|
|
12
14
|
/** Resolve "agent:name" or "agent:<uuid>" to { type, id }. */
|
|
13
|
-
export declare
|
|
15
|
+
export declare const resolveParticipant: (raw: string) => Effect.Effect<{
|
|
14
16
|
type: string;
|
|
15
17
|
id: string;
|
|
16
|
-
}>;
|
|
17
|
-
|
|
18
|
+
}, Error>;
|
|
19
|
+
/** Pure predicate: socket path exists. Wrapped in Effect so callers compose it. */
|
|
20
|
+
export declare const isServiceRunning: Effect.Effect<boolean>;
|
|
18
21
|
//# sourceMappingURL=socket-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-client.d.ts","sourceRoot":"","sources":["../../src/cli/socket-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socket-client.d.ts","sourceRoot":"","sources":["../../src/cli/socket-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQhC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,GAClB,QAAQ,MAAM,EACd,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,aAAa,MAAM,KAClB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAuE3B,CAAC;AASL,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,GAC7B,KAAK,MAAM,KACV,MAAM,CAAC,MAAM,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,CAmBhD,CAAC;AAEL,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAEnD,CAAC"}
|
|
@@ -1,98 +1,95 @@
|
|
|
1
1
|
import * as net from "node:net";
|
|
2
2
|
import * as fs from "node:fs";
|
|
3
|
+
import { Effect } from "effect";
|
|
3
4
|
import { MoltZapService } from "../service.js";
|
|
4
5
|
/**
|
|
5
|
-
* Send a request to the MoltZapService via Unix socket
|
|
6
|
-
*
|
|
6
|
+
* Send a request to the MoltZapService via Unix socket, returning the `result`
|
|
7
|
+
* field as an Effect. Typed failures:
|
|
8
|
+
* - "service not running" when the socket path doesn't exist / ECONNREFUSED
|
|
9
|
+
* - "timeout" when the 10s deadline elapses
|
|
10
|
+
* - "remote error" when the server responds with `{error: "..."}`
|
|
11
|
+
* - "malformed" when the response isn't parseable JSON
|
|
12
|
+
*
|
|
13
|
+
* Uses `Effect.async` so fiber interruption cleanly destroys the socket
|
|
14
|
+
* (AbortSignal callback) — no leaked fd if a parent fiber times out.
|
|
7
15
|
*/
|
|
8
|
-
export
|
|
16
|
+
export const request = (method, params, socketPath) => Effect.async((resume, signal) => {
|
|
9
17
|
const sockPath = socketPath ?? MoltZapService.SOCKET_PATH;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
resolve(response.result);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
reject(new Error("Malformed response from service"));
|
|
45
|
-
}
|
|
18
|
+
const conn = net.createConnection(sockPath);
|
|
19
|
+
let buffer = "";
|
|
20
|
+
let settled = false;
|
|
21
|
+
const done = (outcome) => {
|
|
22
|
+
if (settled)
|
|
23
|
+
return;
|
|
24
|
+
settled = true;
|
|
25
|
+
clearTimeout(timer);
|
|
26
|
+
conn.removeAllListeners();
|
|
27
|
+
conn.destroy();
|
|
28
|
+
resume(outcome);
|
|
29
|
+
};
|
|
30
|
+
const timer = setTimeout(() => {
|
|
31
|
+
done(Effect.fail(new Error("Socket request timed out")));
|
|
32
|
+
}, 10_000);
|
|
33
|
+
signal.addEventListener("abort", () => {
|
|
34
|
+
done(Effect.fail(new Error("Socket request aborted")));
|
|
35
|
+
});
|
|
36
|
+
conn.on("connect", () => {
|
|
37
|
+
conn.write(JSON.stringify({ method, params }) + "\n");
|
|
38
|
+
});
|
|
39
|
+
conn.on("data", (chunk) => {
|
|
40
|
+
buffer += chunk.toString();
|
|
41
|
+
const idx = buffer.indexOf("\n");
|
|
42
|
+
if (idx !== -1) {
|
|
43
|
+
const line = buffer.slice(0, idx);
|
|
44
|
+
conn.end();
|
|
45
|
+
let parsed;
|
|
46
|
+
try {
|
|
47
|
+
parsed = JSON.parse(line);
|
|
46
48
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
clearTimeout(timer);
|
|
50
|
-
if (settled)
|
|
49
|
+
catch (err) {
|
|
50
|
+
done(Effect.fail(new Error(`Malformed response from service: ${err instanceof Error ? err.message : String(err)}`)));
|
|
51
51
|
return;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
reject(new Error("MoltZap service is not running. Start the OpenClaw channel plugin first."));
|
|
52
|
+
}
|
|
53
|
+
if (parsed.error) {
|
|
54
|
+
done(Effect.fail(new Error(parsed.error)));
|
|
56
55
|
}
|
|
57
56
|
else {
|
|
58
|
-
|
|
57
|
+
done(Effect.succeed(parsed.result));
|
|
59
58
|
}
|
|
60
|
-
}
|
|
59
|
+
}
|
|
61
60
|
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
process.exit(1);
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
|
-
}
|
|
61
|
+
conn.on("error", (err) => {
|
|
62
|
+
const code = err.code;
|
|
63
|
+
if (code === "ENOENT" || code === "ECONNREFUSED") {
|
|
64
|
+
done(Effect.fail(new Error("MoltZap service is not running. Start the OpenClaw channel plugin first.")));
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
done(Effect.fail(err));
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
76
71
|
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
77
72
|
/** Resolve "agent:name" or "agent:<uuid>" to { type, id }. */
|
|
78
|
-
export
|
|
73
|
+
export const resolveParticipant = (raw) => Effect.gen(function* () {
|
|
79
74
|
const colon = raw.indexOf(":");
|
|
80
|
-
if (colon === -1)
|
|
81
|
-
|
|
75
|
+
if (colon === -1) {
|
|
76
|
+
return yield* Effect.fail(new Error(`Invalid: "${raw}". Use agent:name`));
|
|
77
|
+
}
|
|
82
78
|
const type = raw.slice(0, colon);
|
|
83
79
|
const value = raw.slice(colon + 1);
|
|
84
80
|
if (UUID_RE.test(value))
|
|
85
81
|
return { type, id: value };
|
|
86
|
-
if (type !== "agent")
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
if (type !== "agent") {
|
|
83
|
+
return yield* Effect.fail(new Error(`Cannot resolve "${raw}"`));
|
|
84
|
+
}
|
|
85
|
+
const result = (yield* request("agents/lookupByName", {
|
|
89
86
|
names: [value],
|
|
90
87
|
}));
|
|
91
|
-
if (result.agents.length === 0)
|
|
92
|
-
|
|
88
|
+
if (result.agents.length === 0) {
|
|
89
|
+
return yield* Effect.fail(new Error(`Agent "${value}" not found`));
|
|
90
|
+
}
|
|
93
91
|
return { type: "agent", id: result.agents[0].id };
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
92
|
+
});
|
|
93
|
+
/** Pure predicate: socket path exists. Wrapped in Effect so callers compose it. */
|
|
94
|
+
export const isServiceRunning = Effect.sync(() => fs.existsSync(MoltZapService.SOCKET_PATH));
|
|
98
95
|
//# sourceMappingURL=socket-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-client.js","sourceRoot":"","sources":["../../src/cli/socket-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"socket-client.js","sourceRoot":"","sources":["../../src/cli/socket-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
import type { ProfileError } from "./profile.js";
|
|
3
|
+
/** Errors any Transport.rpc call may surface. Exhaustive. */
|
|
4
|
+
export type TransportError = ServiceUnreachableError | TransportTimeoutError | TransportRpcError | TransportDecodeError | TransportConfigError;
|
|
5
|
+
declare const ServiceUnreachableError_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 & {
|
|
6
|
+
readonly _tag: "ServiceUnreachableError";
|
|
7
|
+
} & Readonly<A>;
|
|
8
|
+
/**
|
|
9
|
+
* The daemon socket path did not exist or refused connection. Only raised
|
|
10
|
+
* by the daemon branch; the direct branch never raises this.
|
|
11
|
+
*/
|
|
12
|
+
export declare class ServiceUnreachableError extends ServiceUnreachableError_base<{
|
|
13
|
+
readonly socketPath: string;
|
|
14
|
+
readonly cause: unknown;
|
|
15
|
+
}> {
|
|
16
|
+
}
|
|
17
|
+
declare const TransportTimeoutError_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 & {
|
|
18
|
+
readonly _tag: "TransportTimeoutError";
|
|
19
|
+
} & Readonly<A>;
|
|
20
|
+
/** RPC exceeded the per-call deadline without a response frame. */
|
|
21
|
+
export declare class TransportTimeoutError extends TransportTimeoutError_base<{
|
|
22
|
+
readonly method: string;
|
|
23
|
+
readonly timeoutMs: number;
|
|
24
|
+
}> {
|
|
25
|
+
}
|
|
26
|
+
declare const TransportRpcError_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 & {
|
|
27
|
+
readonly _tag: "TransportRpcError";
|
|
28
|
+
} & Readonly<A>;
|
|
29
|
+
/**
|
|
30
|
+
* Server returned a structured error response frame. `code` matches the
|
|
31
|
+
* JSON-RPC-style error code emitted by `packages/server`.
|
|
32
|
+
*/
|
|
33
|
+
export declare class TransportRpcError extends TransportRpcError_base<{
|
|
34
|
+
readonly method: string;
|
|
35
|
+
readonly code: number;
|
|
36
|
+
readonly message: string;
|
|
37
|
+
readonly data?: unknown;
|
|
38
|
+
}> {
|
|
39
|
+
}
|
|
40
|
+
declare const TransportDecodeError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
41
|
+
readonly _tag: "TransportDecodeError";
|
|
42
|
+
} & Readonly<A>;
|
|
43
|
+
/** Response frame failed to parse or did not match the expected RPC result shape. */
|
|
44
|
+
export declare class TransportDecodeError extends TransportDecodeError_base<{
|
|
45
|
+
readonly method: string;
|
|
46
|
+
readonly cause: unknown;
|
|
47
|
+
}> {
|
|
48
|
+
}
|
|
49
|
+
declare const TransportConfigError_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 & {
|
|
50
|
+
readonly _tag: "TransportConfigError";
|
|
51
|
+
} & Readonly<A>;
|
|
52
|
+
/**
|
|
53
|
+
* Transport inputs were self-inconsistent (e.g., `--as` set with no
|
|
54
|
+
* `serverUrl` resolvable). Surfaces at Layer construction, not at RPC time.
|
|
55
|
+
*/
|
|
56
|
+
export declare class TransportConfigError extends TransportConfigError_base<{
|
|
57
|
+
readonly reason: string;
|
|
58
|
+
}> {
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Kind of transport currently in use. Observable for logs and tests.
|
|
62
|
+
* Commands never branch on kind.
|
|
63
|
+
*/
|
|
64
|
+
export type TransportKind = "daemon" | "direct" | "test";
|
|
65
|
+
/**
|
|
66
|
+
* Transport surface used by every CLI command. One generic RPC call; the
|
|
67
|
+
* `kind` is for logs/tests. Commands never branch on `kind`.
|
|
68
|
+
*/
|
|
69
|
+
export interface Transport {
|
|
70
|
+
readonly kind: TransportKind;
|
|
71
|
+
readonly rpc: <Result>(method: string, params: Record<string, unknown>) => Effect.Effect<Result, TransportError>;
|
|
72
|
+
}
|
|
73
|
+
export declare const Transport: Context.Tag<Transport, Transport>;
|
|
74
|
+
/**
|
|
75
|
+
* Inputs shaping the transport for one CLI invocation. Assembled from
|
|
76
|
+
* parsed CLI options, env, and layered config by the CLI entrypoint.
|
|
77
|
+
* `impersonateKey` wins over `profileKey` wins over daemon.
|
|
78
|
+
*/
|
|
79
|
+
export interface TransportOptions {
|
|
80
|
+
/** `--as <apiKey>` literal. When set, force direct transport. */
|
|
81
|
+
readonly impersonateKey?: string;
|
|
82
|
+
/** Resolved profile apiKey if `--profile <name>` supplied. */
|
|
83
|
+
readonly profileKey?: string;
|
|
84
|
+
/** Server URL resolved from config + env (wss:// or http://). */
|
|
85
|
+
readonly serverUrl: string;
|
|
86
|
+
/** Daemon socket path (absent only in tests that don't set it). */
|
|
87
|
+
readonly socketPath?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Lazy probe: called ONLY on the env-fallback branch (step 2 below).
|
|
90
|
+
* The as-flag branch never invokes it (Invariant §4.2: --as must not
|
|
91
|
+
* touch the daemon socket, not even to check reachability). Passed as
|
|
92
|
+
* a thunk so the probe is a side effect of the fall-through branch,
|
|
93
|
+
* not of the decision input.
|
|
94
|
+
*/
|
|
95
|
+
readonly probeDaemon?: () => Effect.Effect<boolean, never>;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Decision of which branch {@link makeTransportLayer} selected, exported for
|
|
99
|
+
* log annotations and assertion in tests.
|
|
100
|
+
*/
|
|
101
|
+
export type TransportDecision = {
|
|
102
|
+
readonly _tag: "UseDaemon";
|
|
103
|
+
readonly socketPath: string;
|
|
104
|
+
} | {
|
|
105
|
+
readonly _tag: "UseDirect";
|
|
106
|
+
readonly reason: "as-flag" | "env-fallback" | "profile";
|
|
107
|
+
} | {
|
|
108
|
+
readonly _tag: "UseTest";
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Decision function — Effect-returning because the env-fallback branch
|
|
112
|
+
* may invoke the `probeDaemon` thunk. The as-flag branch short-circuits
|
|
113
|
+
* BEFORE any probe: `impersonateKey` present ⇒ returns
|
|
114
|
+
* `UseDirect{as-flag}` without calling `probeDaemon`, without reading
|
|
115
|
+
* env, without any side effect (Invariant §4.2).
|
|
116
|
+
*/
|
|
117
|
+
export declare const decideTransport: (options: TransportOptions) => Effect.Effect<TransportDecision, never>;
|
|
118
|
+
/** @internal exported for decoder-fixture tests only (sbd#198). */
|
|
119
|
+
export declare const tagWsError: (method: string, err: {
|
|
120
|
+
readonly _tag?: string;
|
|
121
|
+
readonly message?: string;
|
|
122
|
+
readonly code?: number;
|
|
123
|
+
readonly timeoutMs?: number;
|
|
124
|
+
readonly data?: unknown;
|
|
125
|
+
}) => TransportError;
|
|
126
|
+
/**
|
|
127
|
+
* Build the Layer that provides {@link Transport} for the current invocation.
|
|
128
|
+
*
|
|
129
|
+
* Branch points (in priority order):
|
|
130
|
+
* 1. `options.impersonateKey` → direct WS, Invariant §4.2 isolation guaranteed.
|
|
131
|
+
* 2. `process.env.MOLTZAP_API_KEY` present AND daemon unreachable → direct WS.
|
|
132
|
+
* 3. `options.profileKey` set → direct WS with that key.
|
|
133
|
+
* 4. otherwise → daemon transport over `options.socketPath`.
|
|
134
|
+
*
|
|
135
|
+
* The direct branch must NOT open the daemon socket, mutate
|
|
136
|
+
* `~/.moltzap/config.json`, or share any Effect fiber with the daemon.
|
|
137
|
+
* Integration test §7 of the design doc verifies this with a two-agent
|
|
138
|
+
* concurrent roster.
|
|
139
|
+
*/
|
|
140
|
+
export declare const makeTransportLayer: (options: TransportOptions) => Layer.Layer<Transport, TransportConfigError>;
|
|
141
|
+
/**
|
|
142
|
+
* Convenience for command handlers: pull the Transport tag and call rpc.
|
|
143
|
+
* Every new subcommand routes through this helper; raw `socket-client.request`
|
|
144
|
+
* imports in new commands are a lint-level violation (see design doc §3).
|
|
145
|
+
*/
|
|
146
|
+
export declare const rpc: <Result>(method: string, params: Record<string, unknown>) => Effect.Effect<Result, TransportError, Transport>;
|
|
147
|
+
/**
|
|
148
|
+
* Uniform error-to-exit adapter for subcommand handlers. Catches every error
|
|
149
|
+
* channel, prints `Failed: <msg>` to stderr, and exits non-zero. Uses the
|
|
150
|
+
* tagged-error `message` field if present, otherwise the `_tag`, otherwise
|
|
151
|
+
* a generic fallback. Shared across every v2 subcommand wrapper so the
|
|
152
|
+
* exit-code contract (Invariant §4.6) has a single implementation.
|
|
153
|
+
*
|
|
154
|
+
* On success, this returns normally and relies on the `Layer.scoped`
|
|
155
|
+
* finalizer in `makeDirectTransport` to close the ws-client and drain
|
|
156
|
+
* the event loop (sbd#198 / moltzap#228 Bug-2 fix). No forced
|
|
157
|
+
* `process.exit(0)` — that would truncate piped stdout on large payloads.
|
|
158
|
+
*/
|
|
159
|
+
export declare const runHandler: <E extends {
|
|
160
|
+
readonly message?: string;
|
|
161
|
+
readonly _tag?: string;
|
|
162
|
+
}>(effect: Effect.Effect<void, E, Transport>) => Effect.Effect<void, never, Transport>;
|
|
163
|
+
/**
|
|
164
|
+
* Lazy resolver invoked by the CLI entrypoint BEFORE constructing the
|
|
165
|
+
* transport layer. Closes the composition-boundary leak (architect design
|
|
166
|
+
* doc rev 4 finding 1): with `impersonateKey` set, this function does NOT
|
|
167
|
+
* call `cli/config.ts:loadConfig`, does NOT read `MOLTZAP_API_KEY` env,
|
|
168
|
+
* does NOT open `~/.moltzap/config.json`. The only resolution performed on
|
|
169
|
+
* the as-flag branch is `MOLTZAP_SERVER_URL` (or the hard-coded default).
|
|
170
|
+
*
|
|
171
|
+
* This function is the true CLI-boundary gate on Invariant §4.2 — without
|
|
172
|
+
* it, eager config-read side effects leak even when `decideTransport` is
|
|
173
|
+
* later short-circuited. Unit tests assert on `fs.open` and `env` read
|
|
174
|
+
* spies that zero calls happen on the `impersonateKey` branch.
|
|
175
|
+
*/
|
|
176
|
+
export declare const resolveTransportInputs: (parsed: {
|
|
177
|
+
readonly impersonateKey?: string;
|
|
178
|
+
readonly profileName?: string;
|
|
179
|
+
}) => Effect.Effect<TransportOptions, TransportConfigError | ProfileError>;
|
|
180
|
+
export {};
|
|
181
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/cli/transport.ts"],"names":[],"mappings":"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"}
|