@agentvault/muse-bridge 0.1.21 → 0.1.23
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/README.md +22 -0
- package/dist/enrollment-fingerprint.d.ts +24 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1121 -63
- package/dist/muse-driver.d.ts +5 -0
- package/dist/muse-provider.d.ts +13 -0
- package/dist/muse-session.d.ts +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -45,3 +45,25 @@ pruned cache path.
|
|
|
45
45
|
`--yolo` only when both Access grants are on (`workAllowed` and `gatesRemoved`).
|
|
46
46
|
Otherwise `--disable-shell` and `--disable-write` (no terminal, no file-tool
|
|
47
47
|
writes).
|
|
48
|
+
|
|
49
|
+
## Meta reasoning recovery
|
|
50
|
+
|
|
51
|
+
Every native Meta Muse turn uses a temporary loopback adapter pinned to Meta's
|
|
52
|
+
Responses API. It removes opaque reasoning from older settled turns while
|
|
53
|
+
preserving conversation messages, tool calls/results, settings, and the existing
|
|
54
|
+
Muse session. Reasoning in the current tool loop stays until Meta rejects that
|
|
55
|
+
request with the specific encrypted reasoning expiry error. The adapter then
|
|
56
|
+
retries that provider request once with its remaining reasoning removed; Muse and
|
|
57
|
+
its tools are not restarted or replayed. Successful SSE responses stream through.
|
|
58
|
+
Opaque requests using `previous_response_id` pass through without rewriting.
|
|
59
|
+
|
|
60
|
+
Removed reasoning cannot contribute its previous private reasoning continuity;
|
|
61
|
+
the conversation and tool history remain available. The adapter neither edits
|
|
62
|
+
Muse journals nor rotates session IDs. It binds only to loopback with a fresh
|
|
63
|
+
secret route and closes at turn end. Diagnostics contain counts and fixed outcomes.
|
|
64
|
+
|
|
65
|
+
If an eligible room or owner-attested DM turn fails before attempting a reply,
|
|
66
|
+
the bridge attempts one generic failure notice on that turn's captured reply
|
|
67
|
+
channel. The notice waits at most ten seconds before the next queued turn advances.
|
|
68
|
+
Echo exec/provider behavior remains unchanged; eligible terminal failure notices
|
|
69
|
+
apply to both providers.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Show the device fingerprint the owner must match before clicking Approve.
|
|
3
|
+
*
|
|
4
|
+
* The app's Connect card says "Match this with your agent's terminal output",
|
|
5
|
+
* but only the OpenClaw `setup` printed one. The muse bridge enrols in the
|
|
6
|
+
* FOREGROUND (`install` refuses without persisted creds), so its log sink —
|
|
7
|
+
* stderr — is the customer's terminal at that moment.
|
|
8
|
+
*
|
|
9
|
+
* The value is the one the enrolment response returns (`SecureChannel.fingerprint`,
|
|
10
|
+
* set before the channel enters "polling") — the backend's
|
|
11
|
+
* `_compute_fingerprint`: BLAKE2b-8 of the identity public key as colon-separated
|
|
12
|
+
* hex (`a1:b2:c3:d4:e5:f6:78:90`), the exact string the app displays. Printed
|
|
13
|
+
* as-is, never recomputed, so the two cannot drift.
|
|
14
|
+
*/
|
|
15
|
+
/** The lines shown to the customer — same wording as the OpenClaw setup. */
|
|
16
|
+
export declare function fingerprintLines(fingerprint: string): string[];
|
|
17
|
+
interface FingerprintChannel {
|
|
18
|
+
on(ev: "state", cb: (s: string) => void): unknown;
|
|
19
|
+
readonly fingerprint?: string | null;
|
|
20
|
+
}
|
|
21
|
+
/** Log the fingerprint when the channel starts waiting for approval. */
|
|
22
|
+
export declare function watchEnrollmentFingerprint(channel: FingerprintChannel, log: (msg: string) => void): void;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=enrollment-fingerprint.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export declare function maybeRunRecoverySubcommand(argv?: string[], env?: NodeJS
|
|
|
11
11
|
export type BootChannel = RoomChannel & LifecycleChannel & {
|
|
12
12
|
start(): Promise<void>;
|
|
13
13
|
stop(): Promise<void>;
|
|
14
|
+
/** Set by SecureChannel from the enrolment response, before "polling". */
|
|
15
|
+
readonly fingerprint?: string | null;
|
|
14
16
|
};
|
|
15
17
|
export interface MainOpts {
|
|
16
18
|
env?: NodeJS.ProcessEnv;
|