@uxnan/shared 0.0.19-alpha.20260926 → 0.0.21-alpha.20260927
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
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|

|
|
4
4
|

|
|
5
5
|

|
|
6
|
-

|
|
7
7
|
|
|
8
8
|
Shared JSON-RPC and E2EE contracts for the [Uxnan](../README.md) ecosystem — the
|
|
9
9
|
single source of truth every component agrees on. Consumed as a local workspace
|
|
@@ -13,7 +13,7 @@ equivalents (see
|
|
|
13
13
|
[`architecture/02b-contracts-and-requirements.md`](../architecture/02b-contracts-and-requirements.md)
|
|
14
14
|
§1 for the canonical contract list).
|
|
15
15
|
|
|
16
|
-
> **Status:** implemented and stable — **
|
|
16
|
+
> **Status:** implemented and stable — **84 JSON-RPC methods** + **22 streaming
|
|
17
17
|
> notifications**, kept lock-step at build time with the `METHOD_NAMES` array and
|
|
18
18
|
> the `StreamNotification` enum (a compile-time assertion in
|
|
19
19
|
> `src/jsonrpc/method-registry.ts` fails the build on any drift). Changes are
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* compile-time {@link JsonRpcMethodRegistry} via the assertion below.
|
|
4
4
|
*/
|
|
5
5
|
import type { JsonRpcMethodName } from './methods.js';
|
|
6
|
-
export declare const METHOD_NAMES: readonly ["thread/list", "thread/read", "thread/start", "thread/resume", "thread/fork", "thread/setModel", "thread/rename", "thread/setAccessMode", "thread/archive", "thread/unarchive", "thread/delete", "turn/list", "turn/read", "turn/send", "turn/cancel", "queue/resume", "queue/clear", "git/status", "git/diff", "git/commit", "git/push", "git/pull", "git/checkout", "git/createBranch", "git/createWorktree", "git/stage", "git/unstage", "git/discard", "git/createPr", "git/undoCommit", "git/branches", "git/switchBranch", "git/revert", "git/deleteBranch", "git/removeWorktree", "git/worktrees", "git/log", "git/commitShow", "workspace/readFile", "workspace/readImage", "workspace/list", "workspace/searchFiles", "workspace/resolveFileLink", "workspace/browseDirs", "workspace/checkpoint", "workspace/diffCheckpoint", "workspace/applyCheckpoint", "workspace/applyPatch", "workspace/exists", "project/list", "project/resolve", "project/add", "project/remove", "project/rename", "sync/changes", "settings/get", "settings/set", "device/describe", "device/rename", "agent/list", "agent/models", "agent/commands", "agent/usageStats", "agent/doctor", "metrics/get", "metrics/export", "metrics/import", "auth/status", "auth/login", "auth/logout", "notifications/register", "notifications/update", "notifications/unregister", "bridge/status", "bridge/generatePairingQr", "bridge/connectedPhones", "bridge/disconnectPhone", "bridge/trustedDevices", "bridge/removeTrustedDevice", "bridge/update", "desktop/attach", "desktop/detach"];
|
|
6
|
+
export declare const METHOD_NAMES: readonly ["thread/list", "thread/read", "thread/start", "thread/resume", "thread/fork", "thread/setModel", "thread/rename", "thread/setAccessMode", "thread/archive", "thread/unarchive", "thread/delete", "turn/list", "turn/read", "turn/send", "turn/cancel", "turn/attachment", "queue/resume", "queue/clear", "git/status", "git/diff", "git/commit", "git/push", "git/pull", "git/checkout", "git/createBranch", "git/createWorktree", "git/stage", "git/unstage", "git/discard", "git/createPr", "git/undoCommit", "git/branches", "git/switchBranch", "git/revert", "git/deleteBranch", "git/removeWorktree", "git/worktrees", "git/log", "git/commitShow", "workspace/readFile", "workspace/readImage", "workspace/list", "workspace/searchFiles", "workspace/resolveFileLink", "workspace/browseDirs", "workspace/checkpoint", "workspace/diffCheckpoint", "workspace/applyCheckpoint", "workspace/applyPatch", "workspace/exists", "project/list", "project/resolve", "project/add", "project/remove", "project/rename", "sync/changes", "settings/get", "settings/set", "device/describe", "device/rename", "agent/list", "agent/models", "agent/commands", "agent/usageStats", "agent/doctor", "metrics/get", "metrics/export", "metrics/import", "auth/status", "auth/login", "auth/logout", "notifications/register", "notifications/update", "notifications/unregister", "bridge/status", "bridge/generatePairingQr", "bridge/connectedPhones", "bridge/disconnectPhone", "bridge/trustedDevices", "bridge/removeTrustedDevice", "bridge/update", "bridge/checkForUpdate", "desktop/attach", "desktop/detach"];
|
|
7
7
|
export declare function isKnownMethod(method: string): method is JsonRpcMethodName;
|
|
@@ -15,6 +15,7 @@ export const METHOD_NAMES = [
|
|
|
15
15
|
'turn/read',
|
|
16
16
|
'turn/send',
|
|
17
17
|
'turn/cancel',
|
|
18
|
+
'turn/attachment',
|
|
18
19
|
// Message queue
|
|
19
20
|
'queue/resume',
|
|
20
21
|
'queue/clear',
|
|
@@ -90,6 +91,7 @@ export const METHOD_NAMES = [
|
|
|
90
91
|
'bridge/trustedDevices',
|
|
91
92
|
'bridge/removeTrustedDevice',
|
|
92
93
|
'bridge/update',
|
|
94
|
+
'bridge/checkForUpdate',
|
|
93
95
|
// Desktop tools for bridge-run agents (local control channel only)
|
|
94
96
|
'desktop/attach',
|
|
95
97
|
'desktop/detach',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method-registry.js","sourceRoot":"","sources":["../../../src/jsonrpc/method-registry.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,cAAc;IACd,eAAe;IACf,aAAa;IACb,iBAAiB;IACjB,eAAe;IACf,sBAAsB;IACtB,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,WAAW;IACX,WAAW;IACX,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,MAAM;IACN,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,UAAU;IACV,UAAU;IACV,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,WAAW;IACX,aAAa;IACb,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,oBAAoB;IACpB,eAAe;IACf,SAAS;IACT,gBAAgB;IAChB,YAAY;IACZ,oBAAoB;IACpB,qBAAqB;IACrB,gBAAgB;IAChB,uBAAuB;IACvB,2BAA2B;IAC3B,sBAAsB;IACtB,sBAAsB;IACtB,0BAA0B;IAC1B,2BAA2B;IAC3B,sBAAsB;IACtB,kBAAkB;IAClB,WAAW;IACX,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,mCAAmC;IACnC,cAAc;IACd,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,SAAS;IACT,YAAY;IACZ,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,yEAAyE;IACzE,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,OAAO;IACP,aAAa;IACb,YAAY;IACZ,aAAa;IACb,uBAAuB;IACvB,wBAAwB;IACxB,sBAAsB;IACtB,0BAA0B;IAC1B,iBAAiB;IACjB,eAAe;IACf,0BAA0B;IAC1B,wBAAwB;IACxB,wBAAwB;IACxB,uBAAuB;IACvB,4BAA4B;IAC5B,eAAe;IACf,mEAAmE;IACnE,gBAAgB;IAChB,gBAAgB;CACR,CAAC;AAQX,MAAM,sBAAsB,GAAqB,IAAI,CAAC;AACtD,MAAM,sBAAsB,GAAqB,IAAI,CAAC;AACtD,KAAK,sBAAsB,CAAC;AAC5B,KAAK,sBAAsB,CAAC;AAE5B,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AAEnE,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
|
|
1
|
+
{"version":3,"file":"method-registry.js","sourceRoot":"","sources":["../../../src/jsonrpc/method-registry.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,cAAc;IACd,eAAe;IACf,aAAa;IACb,iBAAiB;IACjB,eAAe;IACf,sBAAsB;IACtB,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,WAAW;IACX,WAAW;IACX,aAAa;IACb,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,MAAM;IACN,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,UAAU;IACV,UAAU;IACV,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,WAAW;IACX,aAAa;IACb,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,oBAAoB;IACpB,eAAe;IACf,SAAS;IACT,gBAAgB;IAChB,YAAY;IACZ,oBAAoB;IACpB,qBAAqB;IACrB,gBAAgB;IAChB,uBAAuB;IACvB,2BAA2B;IAC3B,sBAAsB;IACtB,sBAAsB;IACtB,0BAA0B;IAC1B,2BAA2B;IAC3B,sBAAsB;IACtB,kBAAkB;IAClB,WAAW;IACX,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,mCAAmC;IACnC,cAAc;IACd,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,SAAS;IACT,YAAY;IACZ,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,yEAAyE;IACzE,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,OAAO;IACP,aAAa;IACb,YAAY;IACZ,aAAa;IACb,uBAAuB;IACvB,wBAAwB;IACxB,sBAAsB;IACtB,0BAA0B;IAC1B,iBAAiB;IACjB,eAAe;IACf,0BAA0B;IAC1B,wBAAwB;IACxB,wBAAwB;IACxB,uBAAuB;IACvB,4BAA4B;IAC5B,eAAe;IACf,uBAAuB;IACvB,mEAAmE;IACnE,gBAAgB;IAChB,gBAAgB;CACR,CAAC;AAQX,MAAM,sBAAsB,GAAqB,IAAI,CAAC;AACtD,MAAM,sBAAsB,GAAqB,IAAI,CAAC;AACtD,KAAK,sBAAsB,CAAC;AAC5B,KAAK,sBAAsB,CAAC;AAE5B,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AAEnE,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -47,6 +47,17 @@ export interface TurnListParams {
|
|
|
47
47
|
*/
|
|
48
48
|
fromEnd?: boolean;
|
|
49
49
|
}
|
|
50
|
+
/** `turn/attachment`: one image a user message carries (`Message.attachments`). */
|
|
51
|
+
export interface TurnAttachmentParams {
|
|
52
|
+
threadId: string;
|
|
53
|
+
attachmentId: string;
|
|
54
|
+
}
|
|
55
|
+
/** The image's bytes, as they were sent. */
|
|
56
|
+
export interface TurnAttachmentData {
|
|
57
|
+
mimeType: string;
|
|
58
|
+
/** Base64 payload (no `data:` URI prefix). */
|
|
59
|
+
base64Data: string;
|
|
60
|
+
}
|
|
50
61
|
export interface TurnSendParams {
|
|
51
62
|
threadId: string;
|
|
52
63
|
/**
|
|
@@ -421,6 +432,11 @@ export interface JsonRpcMethodRegistry {
|
|
|
421
432
|
};
|
|
422
433
|
result: void;
|
|
423
434
|
};
|
|
435
|
+
/** The bytes of an image a user message carries (`Message.attachments`). */
|
|
436
|
+
'turn/attachment': {
|
|
437
|
+
params: TurnAttachmentParams;
|
|
438
|
+
result: TurnAttachmentData;
|
|
439
|
+
};
|
|
424
440
|
/** Resumes draining after a stop/failure held the queue. */
|
|
425
441
|
'queue/resume': {
|
|
426
442
|
params: {
|
|
@@ -723,6 +739,16 @@ export interface JsonRpcMethodRegistry {
|
|
|
723
739
|
params: void;
|
|
724
740
|
result: BridgeUpdate;
|
|
725
741
|
};
|
|
742
|
+
/**
|
|
743
|
+
* Ask the registry for the newest bridge right now, past the hourly check —
|
|
744
|
+
* a person pressing "Check again". Answers with the bridge's update state,
|
|
745
|
+
* and tells every client (`stream/bridge/updated`) when it learned of a new
|
|
746
|
+
* version.
|
|
747
|
+
*/
|
|
748
|
+
'bridge/checkForUpdate': {
|
|
749
|
+
params: void;
|
|
750
|
+
result: BridgeUpdate;
|
|
751
|
+
};
|
|
726
752
|
'desktop/attach': {
|
|
727
753
|
params: DesktopAttachParams;
|
|
728
754
|
result: DesktopAttachResult;
|
|
@@ -64,8 +64,34 @@ export interface Message {
|
|
|
64
64
|
tokens: number;
|
|
65
65
|
contextWindow?: number;
|
|
66
66
|
};
|
|
67
|
+
/**
|
|
68
|
+
* The images the user attached to this message, kept by the bridge with the
|
|
69
|
+
* turn (user messages only). They are named here, not inlined — a page of
|
|
70
|
+
* history stays small — and each client fetches the bytes it shows with
|
|
71
|
+
* `turn/attachment`.
|
|
72
|
+
*/
|
|
73
|
+
attachments?: MessageAttachment[];
|
|
67
74
|
createdAt: number;
|
|
68
75
|
}
|
|
76
|
+
/** An image attached to a user message, as `turn/list` names it. */
|
|
77
|
+
export interface MessageAttachment {
|
|
78
|
+
/** Opaque id, unique in its thread; the key for `turn/attachment`. */
|
|
79
|
+
id: string;
|
|
80
|
+
/** MIME type, e.g. `image/png`. */
|
|
81
|
+
mimeType: string;
|
|
82
|
+
/** Size of the stored image in bytes. */
|
|
83
|
+
bytes: number;
|
|
84
|
+
/** Pixel width, when the sender knew it. */
|
|
85
|
+
width?: number;
|
|
86
|
+
/** Pixel height, when the sender knew it. */
|
|
87
|
+
height?: number;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* One exchange: at most one user message (absent when the agent spoke on its
|
|
91
|
+
* own) and ONE assistant message, whose `segments` carry its prose and steps
|
|
92
|
+
* in order. Every turn the bridge serves has this shape, including turns read
|
|
93
|
+
* from an agent's own transcript.
|
|
94
|
+
*/
|
|
69
95
|
export interface Turn {
|
|
70
96
|
id: string;
|
|
71
97
|
threadId: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uxnan/shared",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.21-alpha.20260927",
|
|
4
4
|
"description": "Shared JSON-RPC and E2EE contracts for the Uxnan ecosystem (bridge, relay, mobile).",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"author": "Luis Donaldo Gamas Vazquez",
|