@parall/sdk 1.47.0 → 1.49.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/client.d.ts +118 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +180 -5
- package/dist/constants.d.ts +13 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +19 -0
- package/dist/types.d.ts +261 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/client.ts +272 -6
- package/src/constants.ts +25 -0
- package/src/types.ts +277 -0
package/dist/client.js
CHANGED
|
@@ -167,7 +167,7 @@ export class ParallClient {
|
|
|
167
167
|
if (qs)
|
|
168
168
|
url += `?${qs}`;
|
|
169
169
|
}
|
|
170
|
-
const headers = this.buildHeaders(path);
|
|
170
|
+
const headers = this.buildHeaders(path, opts?.headers);
|
|
171
171
|
// Cancellation: the caller's AbortSignal (e.g. a superseded search query)
|
|
172
172
|
// races the per-request timeout. AbortSignal.any aborts as soon as either
|
|
173
173
|
// fires — a caller abort surfaces as 'AbortError' (→ REQUEST_ABORTED), the
|
|
@@ -585,6 +585,14 @@ export class ParallClient {
|
|
|
585
585
|
async getMessageReplies(id, params) {
|
|
586
586
|
return this.request('GET', ENDPOINTS.MESSAGE_REPLIES(id), undefined, params);
|
|
587
587
|
}
|
|
588
|
+
// ---- Reactions ----
|
|
589
|
+
async toggleReaction(messageId, emoji) {
|
|
590
|
+
return this.request('PUT', ENDPOINTS.MESSAGE_REACTION(messageId, emoji));
|
|
591
|
+
}
|
|
592
|
+
async listReactions(messageId) {
|
|
593
|
+
const res = await this.request('GET', ENDPOINTS.MESSAGE_REACTIONS(messageId));
|
|
594
|
+
return res.reactions;
|
|
595
|
+
}
|
|
588
596
|
// ---- File Upload ----
|
|
589
597
|
async getUploadPresignUrl(orgId, req) {
|
|
590
598
|
return this.request('POST', ENDPOINTS.UPLOAD_PRESIGN(orgId), req);
|
|
@@ -964,6 +972,15 @@ export class ParallClient {
|
|
|
964
972
|
async browserViewerCommand(orgId, profileId, req, opts) {
|
|
965
973
|
return this.request('POST', ENDPOINTS.BROWSER_PROFILE_VIEWER_COMMAND(orgId, profileId), req, undefined, false, opts);
|
|
966
974
|
}
|
|
975
|
+
/**
|
|
976
|
+
* Drive the Cloud Edge live viewer (V1b, design §6): WebRTC signaling + input +
|
|
977
|
+
* tab nav for a hosted browser (Cloud Profile). Same request/reply shape as
|
|
978
|
+
* browserViewerCommand, on the v3 edge pipe; additive — the v2 browser-profile
|
|
979
|
+
* viewer is unchanged.
|
|
980
|
+
*/
|
|
981
|
+
async edgeViewerCommand(orgId, edgeId, req, opts) {
|
|
982
|
+
return this.request('POST', ENDPOINTS.ORG_EDGE_VIEWER_COMMAND(orgId, edgeId), req, undefined, false, opts);
|
|
983
|
+
}
|
|
967
984
|
async resizeMachine(orgId, machineId, spec) {
|
|
968
985
|
return this.request('PATCH', ENDPOINTS.MACHINE_SPEC(orgId, machineId), spec);
|
|
969
986
|
}
|
|
@@ -990,14 +1007,23 @@ export class ParallClient {
|
|
|
990
1007
|
}
|
|
991
1008
|
// Wiki mount/token methods removed — wiki-service handles all wiki endpoints.
|
|
992
1009
|
// ---- Unread ----
|
|
993
|
-
async getUnreadCounts(orgId) {
|
|
1010
|
+
async getUnreadCounts(orgId, opts) {
|
|
994
1011
|
const endpoint = orgId ? ENDPOINTS.ORG_UNREAD(orgId) : ENDPOINTS.UNREAD;
|
|
995
|
-
const res = await this.request('GET', endpoint
|
|
1012
|
+
const res = await this.request('GET', endpoint, undefined, {
|
|
1013
|
+
include_thread_replies: opts?.includeThreadReplies ? 'true' : undefined,
|
|
1014
|
+
});
|
|
996
1015
|
return res.data;
|
|
997
1016
|
}
|
|
998
1017
|
async markRead(orgId, chatId, messageId) {
|
|
999
1018
|
return this.request('POST', ENDPOINTS.CHAT_READ(orgId, chatId), { message_id: messageId });
|
|
1000
1019
|
}
|
|
1020
|
+
/** Mark everything in a chat read: the channel cursor jumps to the latest
|
|
1021
|
+
* top-level message and every thread cursor to its latest reply, in one
|
|
1022
|
+
* idempotent call. The server echoes the same per-cursor WS events the
|
|
1023
|
+
* single-cursor routes emit and auto-clears covered inbox items. */
|
|
1024
|
+
async markAllRead(orgId, chatId) {
|
|
1025
|
+
return this.request('POST', ENDPOINTS.CHAT_READ_ALL(orgId, chatId));
|
|
1026
|
+
}
|
|
1001
1027
|
async getThreadUnread(orgId, chatId, threadRootId) {
|
|
1002
1028
|
return this.request('GET', ENDPOINTS.THREAD_UNREAD(orgId, chatId, threadRootId));
|
|
1003
1029
|
}
|
|
@@ -1679,6 +1705,16 @@ export class ParallClient {
|
|
|
1679
1705
|
async getBacklinks(orgId, params) {
|
|
1680
1706
|
return this.request('GET', ENDPOINTS.REFS_BACKLINKS(orgId), undefined, params);
|
|
1681
1707
|
}
|
|
1708
|
+
/**
|
|
1709
|
+
* Outbound prll:// refs authored in a set of sources, as raw ref_links rows
|
|
1710
|
+
* (dedupe/group client-side). Pass `{ thread_root_id }` to list a whole
|
|
1711
|
+
* thread's refs (root + all replies, resolved server-side — the client's
|
|
1712
|
+
* reply window may be partial), or `{ source_type, source_ids }` for
|
|
1713
|
+
* explicit sources (max 500; v1 accepts only message sources).
|
|
1714
|
+
*/
|
|
1715
|
+
async listOutboundRefs(orgId, req) {
|
|
1716
|
+
return this.request('POST', ENDPOINTS.REFS_OUTBOUND(orgId), req);
|
|
1717
|
+
}
|
|
1682
1718
|
/**
|
|
1683
1719
|
* Bounded multi-hop walk of the prll:// reference graph around `uri`. `uri`
|
|
1684
1720
|
* must be an entity-level prll:// URI — a refined URI (path/query/fragment) is
|
|
@@ -1889,6 +1925,33 @@ export class ParallClient {
|
|
|
1889
1925
|
const resp = await this.request('GET', url);
|
|
1890
1926
|
return resp.data;
|
|
1891
1927
|
}
|
|
1928
|
+
// ---- Clip registry (v3, api-server org registry — `crg_` entries) ----
|
|
1929
|
+
/**
|
|
1930
|
+
* List registry clips visible to the org: its own plus public+approved
|
|
1931
|
+
* cross-org entries. This is the surface `installRegistryClip` and clip
|
|
1932
|
+
* connections operate on — NOT the Pinix catalog proxy
|
|
1933
|
+
* ({@link listRegistryClips}), whose entries carry no `crg_` id.
|
|
1934
|
+
*/
|
|
1935
|
+
async listOrgRegistryClips(orgId) {
|
|
1936
|
+
// Server default page is 50 (max 100); one max-size page covers today's
|
|
1937
|
+
// catalogs — revisit with real pagination if registries outgrow it.
|
|
1938
|
+
const resp = await this.request('GET', `${ENDPOINTS.ORG_CLIP_REGISTRY(orgId)}?limit=100`);
|
|
1939
|
+
return resp ?? [];
|
|
1940
|
+
}
|
|
1941
|
+
/**
|
|
1942
|
+
* Install a registry clip into the org (a reference in `clip_installs`, not a
|
|
1943
|
+
* copy). Idempotent: installing an already-installed clip returns the same
|
|
1944
|
+
* `200 {ok:true}`. Fails closed with `403 CLIP_NOT_APPROVED` when the clip is
|
|
1945
|
+
* not eligible (cross-org requires public + approved).
|
|
1946
|
+
*/
|
|
1947
|
+
async installRegistryClip(orgId, clipId) {
|
|
1948
|
+
return this.request('POST', ENDPOINTS.ORG_CLIP_INSTALL(orgId), { clip_id: clipId });
|
|
1949
|
+
}
|
|
1950
|
+
/** List the org's installed registry clips (full entries). */
|
|
1951
|
+
async listInstalledRegistryClips(orgId) {
|
|
1952
|
+
const resp = await this.request('GET', ENDPOINTS.ORG_CLIPS_INSTALLED(orgId));
|
|
1953
|
+
return resp ?? [];
|
|
1954
|
+
}
|
|
1892
1955
|
// ---- Edge devices ----
|
|
1893
1956
|
async listEdgeDevices(orgId) {
|
|
1894
1957
|
return this.request('GET', ENDPOINTS.ORG_EDGE_DEVICES(orgId));
|
|
@@ -1906,8 +1969,8 @@ export class ParallClient {
|
|
|
1906
1969
|
return this.request('POST', ENDPOINTS.ORG_EDGE(orgId), input);
|
|
1907
1970
|
}
|
|
1908
1971
|
/**
|
|
1909
|
-
* Delete a hosted Cloud Profile. Hosted only —
|
|
1910
|
-
*
|
|
1972
|
+
* Delete a hosted Cloud Profile. Hosted only — use {@link unregisterEdgeDevice}
|
|
1973
|
+
* for an offline BYOC registration (`400 EDGE_PLACEMENT_UNSUPPORTED` here).
|
|
1911
1974
|
*
|
|
1912
1975
|
* Idempotent and ASYNC: returns `202` with `hosted_state: 'deleting'` on the first
|
|
1913
1976
|
* call and on every repeat. The device stops being usable immediately (no exec, no
|
|
@@ -1917,12 +1980,119 @@ export class ParallClient {
|
|
|
1917
1980
|
async deleteEdgeDevice(orgId, edgeId) {
|
|
1918
1981
|
return this.request('DELETE', ENDPOINTS.ORG_EDGE_DEVICE(orgId, edgeId));
|
|
1919
1982
|
}
|
|
1983
|
+
/**
|
|
1984
|
+
* Remove the interactive human caller's own offline BYOC registration.
|
|
1985
|
+
*
|
|
1986
|
+
* Synchronous and idempotent: a committed removal and a repeat after removal
|
|
1987
|
+
* both resolve with no response body. A live connection returns `EDGE_ONLINE`;
|
|
1988
|
+
* callers must not clear local device identity until this method resolves.
|
|
1989
|
+
*/
|
|
1990
|
+
async unregisterEdgeDevice(orgId, edgeId) {
|
|
1991
|
+
await this.request('DELETE', ENDPOINTS.ORG_EDGE_DEVICE_UNREGISTER(orgId, edgeId));
|
|
1992
|
+
}
|
|
1920
1993
|
async getEdgeOnboarding(orgId) {
|
|
1921
1994
|
return this.request('GET', ENDPOINTS.ORG_EDGE_ONBOARDING(orgId));
|
|
1922
1995
|
}
|
|
1923
1996
|
async listEdgeProfiles(orgId, edgeId) {
|
|
1924
1997
|
return this.request('GET', ENDPOINTS.ORG_EDGE_PROFILES(orgId, edgeId));
|
|
1925
1998
|
}
|
|
1999
|
+
/**
|
|
2000
|
+
* Read a hosted Cloud Profile's egress-proxy status (manager-only: hosted
|
|
2001
|
+
* human maintainer or org admin). Sanitized — the password never comes back.
|
|
2002
|
+
* Typed errors: `EDGE_NOT_HOSTED` (BYOC device), `PROXY_CONFIG_CORRUPT` /
|
|
2003
|
+
* validation codes as 422 when a stored config no longer passes current rules.
|
|
2004
|
+
* `can_mutate` and `lease_status` are the authoritative idle gate; device
|
|
2005
|
+
* list status is not a substitute.
|
|
2006
|
+
*/
|
|
2007
|
+
async getEdgeProfileProxy(orgId, edgeId, profileName) {
|
|
2008
|
+
return this.request('GET', ENDPOINTS.ORG_EDGE_PROFILE_PROXY(orgId, edgeId, profileName));
|
|
2009
|
+
}
|
|
2010
|
+
/**
|
|
2011
|
+
* Set/replace the profile's egress proxy (full triple every time) — IDLE
|
|
2012
|
+
* ONLY: while the profile's hosted browser is running (a viewer session is
|
|
2013
|
+
* open or a pod is otherwise live) the server answers 409
|
|
2014
|
+
* `EDGE_PROFILE_IN_USE`; close the viewer, wait for idle scale-to-zero, and
|
|
2015
|
+
* retry. The next cold start uses the new egress; browser login state is
|
|
2016
|
+
* preserved across it. Other typed errors: the validation vocabulary
|
|
2017
|
+
* (`INVALID_PROXY_SERVER`, `PROXY_AUTH_INCOMPLETE`,
|
|
2018
|
+
* `PROXY_SERVER_FORBIDDEN_TARGET`, …), `EDGE_DELETING` (409), and
|
|
2019
|
+
* `SECRETBOX_UNCONFIGURED` (503 — server cannot store credentials safely),
|
|
2020
|
+
* and `EDGE_PROFILE_PROXY_STALE` (409 — expectedVersion lost a tab race).
|
|
2021
|
+
*/
|
|
2022
|
+
async setEdgeProfileProxy(orgId, edgeId, profileName, req, expectedVersion) {
|
|
2023
|
+
return this.request('PUT', ENDPOINTS.ORG_EDGE_PROFILE_PROXY(orgId, edgeId, profileName), req, undefined, false, {
|
|
2024
|
+
headers: expectedVersion ? { 'If-Match': `"proxy-${expectedVersion}"` } : undefined,
|
|
2025
|
+
});
|
|
2026
|
+
}
|
|
2027
|
+
/**
|
|
2028
|
+
* Clear the profile's egress proxy; the next pod start egresses directly.
|
|
2029
|
+
* Idle-only like set — 409 `EDGE_PROFILE_IN_USE` while the browser is live.
|
|
2030
|
+
*/
|
|
2031
|
+
async clearEdgeProfileProxy(orgId, edgeId, profileName, expectedVersion) {
|
|
2032
|
+
return this.request('DELETE', ENDPOINTS.ORG_EDGE_PROFILE_PROXY(orgId, edgeId, profileName), undefined, undefined, false, {
|
|
2033
|
+
headers: expectedVersion ? { 'If-Match': `"proxy-${expectedVersion}"` } : undefined,
|
|
2034
|
+
});
|
|
2035
|
+
}
|
|
2036
|
+
/**
|
|
2037
|
+
* Execute a registry clip command on an Edge device.
|
|
2038
|
+
*
|
|
2039
|
+
* A hosted (Cloud Profile) device is reachable ONLY through an explicit
|
|
2040
|
+
* `connection` (id `ccn_…` or alias) — there is no implicit route to an
|
|
2041
|
+
* org-shared browser login. BYOC keeps its legacy selectors (`edge_id`, or
|
|
2042
|
+
* nothing for the caller's own online device).
|
|
2043
|
+
*
|
|
2044
|
+
* Returns the result envelope on completion (`success` may be false when the
|
|
2045
|
+
* command RAN and failed — `error`/`error_code` describe why). Everything
|
|
2046
|
+
* else throws a typed {@link ApiError}; match on `err.code`:
|
|
2047
|
+
*
|
|
2048
|
+
* Safe to retry (guaranteed nothing was dispatched):
|
|
2049
|
+
* - `EDGE_ACTIVATING` 503 + `Retry-After` — cold cloud profile is starting.
|
|
2050
|
+
* Bounded backoff, same `correlation_id` across the loop.
|
|
2051
|
+
* - `EDGE_BUSY` 409 — the device is executing another request.
|
|
2052
|
+
* - `EDGE_CONCURRENCY_LIMIT` 429 — org at its concurrent-session limit.
|
|
2053
|
+
* - `EDGE_UNAVAILABLE` 503 — session torn down / replaced mid-dispatch.
|
|
2054
|
+
*
|
|
2055
|
+
* NOT retryable:
|
|
2056
|
+
* - `OUTCOME_UNKNOWN` 504 — dispatched, but no result arrived. The command
|
|
2057
|
+
* MAY HAVE EXECUTED (posted, ordered, deleted…). Never retry
|
|
2058
|
+
* automatically: verify the effect first, then decide. The message carries
|
|
2059
|
+
* the request id for audit.
|
|
2060
|
+
* - `EDGE_DEADLINE_EXCEEDED` 504 — arrived late, provably NOT executed.
|
|
2061
|
+
* - `EDGE_HOSTED_DISABLED_FOR_ORG` 403, `EDGE_REPAIR` 503 (operator-held),
|
|
2062
|
+
* `EDGE_RUNTIME_UNAVAILABLE` 503 (deployment has no hosted runtime).
|
|
2063
|
+
* - Routing errors: `HOSTED_CONNECTION_REQUIRED`, `CONNECTION_NOT_FOUND`,
|
|
2064
|
+
* `CONNECTION_CLIP_MISMATCH`, `CONNECTION_TARGET_GONE`,
|
|
2065
|
+
* `CONNECTION_PROFILE_MISMATCH`, `EDGE_DELETING`, `DEVICE_OFFLINE`.
|
|
2066
|
+
*/
|
|
2067
|
+
async execEdgeClip(orgId, req) {
|
|
2068
|
+
// The server holds the connection open for timeout + ~5s of result wait;
|
|
2069
|
+
// give the HTTP layer headroom past that so a slow-but-successful exec is
|
|
2070
|
+
// not chopped locally into a fake transport error. The effective value
|
|
2071
|
+
// mirrors the SERVER's rule exactly (out-of-range → its 30s default): a
|
|
2072
|
+
// local clamp that disagreed would abort the HTTP call while the server
|
|
2073
|
+
// legitimately keeps executing — manufacturing a transport error for a
|
|
2074
|
+
// request that may still succeed.
|
|
2075
|
+
const t = req.timeout;
|
|
2076
|
+
const serverTimeout = t !== undefined && t > 0 && t <= 120000 ? t : 30000;
|
|
2077
|
+
const timeoutMs = serverTimeout + 10_000;
|
|
2078
|
+
try {
|
|
2079
|
+
return await this.request('POST', ENDPOINTS.ORG_EDGE_EXEC(orgId), req, undefined, false, {
|
|
2080
|
+
timeoutMs,
|
|
2081
|
+
});
|
|
2082
|
+
}
|
|
2083
|
+
catch (err) {
|
|
2084
|
+
// A 422 is the RESULT envelope (the command ran and failed), not the
|
|
2085
|
+
// standard error envelope — lift its stable `error_code` into
|
|
2086
|
+
// ApiError.code so callers match one field for every failure.
|
|
2087
|
+
if (err instanceof ApiError &&
|
|
2088
|
+
err.status === 422 &&
|
|
2089
|
+
!err.code &&
|
|
2090
|
+
typeof err.extras?.error_code === 'string') {
|
|
2091
|
+
err.code = err.extras.error_code;
|
|
2092
|
+
}
|
|
2093
|
+
throw err;
|
|
2094
|
+
}
|
|
2095
|
+
}
|
|
1926
2096
|
// ---- Clip connections ----
|
|
1927
2097
|
async listClipConnections(orgId, clipId) {
|
|
1928
2098
|
return this.request('GET', ENDPOINTS.CLIP_CONNECTIONS(orgId, clipId));
|
|
@@ -1945,6 +2115,8 @@ export class ApiError extends Error {
|
|
|
1945
2115
|
status;
|
|
1946
2116
|
code;
|
|
1947
2117
|
extras;
|
|
2118
|
+
/** Retry-After delta seconds when the server supplies one. */
|
|
2119
|
+
retryAfterSeconds;
|
|
1948
2120
|
/** Attempted action (authorization denials) — e.g. "chat.add_member". */
|
|
1949
2121
|
action;
|
|
1950
2122
|
/** Target resource URI that was evaluated — e.g. "prll://cht_…". */
|
|
@@ -1984,6 +2156,9 @@ function buildApiError(res, rawErrorBody) {
|
|
|
1984
2156
|
const errCode = (typeof errorObj?.code === 'string' ? errorObj.code : undefined) ??
|
|
1985
2157
|
(typeof errorBody.code === 'string' ? errorBody.code : undefined);
|
|
1986
2158
|
const apiError = new ApiError(res.status, errMsg ?? res.statusText, errCode);
|
|
2159
|
+
const retryAfter = Number(res.headers?.get('Retry-After'));
|
|
2160
|
+
if (Number.isFinite(retryAfter) && retryAfter > 0)
|
|
2161
|
+
apiError.retryAfterSeconds = retryAfter;
|
|
1987
2162
|
// Machine anchors: present under `error`, with a legacy flat fallback.
|
|
1988
2163
|
const anchors = errorObj ?? errorBody;
|
|
1989
2164
|
if (typeof anchors.action === 'string')
|
package/dist/constants.d.ts
CHANGED
|
@@ -382,6 +382,8 @@ export declare const ENDPOINTS: {
|
|
|
382
382
|
readonly MESSAGE_WATCH: (id: string) => string;
|
|
383
383
|
readonly MESSAGE_WATCHERS: (id: string) => string;
|
|
384
384
|
readonly MESSAGE_WATCHING: (id: string) => string;
|
|
385
|
+
readonly MESSAGE_REACTIONS: (id: string) => string;
|
|
386
|
+
readonly MESSAGE_REACTION: (id: string, emoji: string) => string;
|
|
385
387
|
readonly UPLOAD_PRESIGN: (orgId: string) => string;
|
|
386
388
|
readonly UPLOAD_COMPLETE: (orgId: string) => string;
|
|
387
389
|
readonly FILE: (id: string) => string;
|
|
@@ -578,10 +580,12 @@ export declare const ENDPOINTS: {
|
|
|
578
580
|
readonly UNREAD: "/api/v1/me/unread";
|
|
579
581
|
readonly ORG_UNREAD: (orgId: string) => string;
|
|
580
582
|
readonly CHAT_READ: (orgId: string, chatId: string) => string;
|
|
583
|
+
readonly CHAT_READ_ALL: (orgId: string, chatId: string) => string;
|
|
581
584
|
readonly THREAD_UNREAD: (orgId: string, chatId: string, threadRootId: string) => string;
|
|
582
585
|
readonly THREAD_READ: (orgId: string, chatId: string, threadRootId: string) => string;
|
|
583
586
|
readonly REFS_RESOLVE: (orgId: string) => string;
|
|
584
587
|
readonly REFS_BACKLINKS: (orgId: string) => string;
|
|
588
|
+
readonly REFS_OUTBOUND: (orgId: string) => string;
|
|
585
589
|
readonly REFS_GRAPH: (orgId: string) => string;
|
|
586
590
|
readonly REFS_CHECK: (orgId: string) => string;
|
|
587
591
|
readonly PLATFORM_CONFIG: "/api/v1/agents/platform-config";
|
|
@@ -620,10 +624,17 @@ export declare const ENDPOINTS: {
|
|
|
620
624
|
readonly ORG_EDGE: (orgId: string) => string;
|
|
621
625
|
readonly ORG_EDGE_DEVICES: (orgId: string) => string;
|
|
622
626
|
readonly ORG_EDGE_DEVICE: (orgId: string, edgeId: string) => string;
|
|
627
|
+
readonly ORG_EDGE_DEVICE_UNREGISTER: (orgId: string, edgeId: string) => string;
|
|
623
628
|
readonly ORG_EDGE_ONBOARDING: (orgId: string) => string;
|
|
624
629
|
readonly ORG_EDGE_PROFILES: (orgId: string, edgeId: string) => string;
|
|
630
|
+
readonly ORG_EDGE_PROFILE_PROXY: (orgId: string, edgeId: string, profileName: string) => string;
|
|
631
|
+
readonly ORG_EDGE_EXEC: (orgId: string) => string;
|
|
632
|
+
readonly ORG_EDGE_VIEWER_COMMAND: (orgId: string, edgeId: string) => string;
|
|
625
633
|
readonly CLIP_CONNECTIONS: (orgId: string, clipId: string) => string;
|
|
626
634
|
readonly CLIP_CONNECTION: (orgId: string, connId: string) => string;
|
|
635
|
+
readonly ORG_CLIP_REGISTRY: (orgId: string) => string;
|
|
636
|
+
readonly ORG_CLIP_INSTALL: (orgId: string) => string;
|
|
637
|
+
readonly ORG_CLIPS_INSTALLED: (orgId: string) => string;
|
|
627
638
|
};
|
|
628
639
|
/**
|
|
629
640
|
* Wiki personal-namespace prefix — the path subtree a member owns for
|
|
@@ -662,6 +673,7 @@ export declare const WS_EVENTS: {
|
|
|
662
673
|
readonly MESSAGE_PATCH: "message.patch";
|
|
663
674
|
readonly MESSAGE_EDIT: "message.edit";
|
|
664
675
|
readonly MESSAGE_DELETE: "message.delete";
|
|
676
|
+
readonly MESSAGE_REACTION_UPDATED: "message.reaction.updated";
|
|
665
677
|
readonly TYPING_UPDATE: "typing.update";
|
|
666
678
|
readonly CHAT_UPDATE: "chat.update";
|
|
667
679
|
readonly CHAT_DELETED: "chat.deleted";
|
|
@@ -702,6 +714,7 @@ export declare const WS_EVENTS: {
|
|
|
702
714
|
readonly INBOX_UPDATE: "inbox.update";
|
|
703
715
|
readonly INBOX_BULK_UPDATE: "inbox.bulk_update";
|
|
704
716
|
readonly READ_POSITION_UPDATED: "read_position.updated";
|
|
717
|
+
readonly THREAD_READ_POSITION_UPDATED: "thread_read_position.updated";
|
|
705
718
|
readonly DISPATCH_NEW: "dispatch.new";
|
|
706
719
|
readonly DISPATCH_RECEIVED: "dispatch.received";
|
|
707
720
|
readonly DISPATCH_RESOLVED: "dispatch.resolved";
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,YAAY,CAAC;AAGlC,eAAO,MAAM,SAAS,aAAa,CAAC;AAGpC,eAAO,MAAM,SAAS,aAAa,CAAC;AAMpC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmMlB,CAAC;AAIX;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuEzB,CAAC;AAKX;;;GAGG;AACH,eAAO,MAAM,iCAAiC;;;;CAIpC,CAAC;AAOX,wBAAgB,mCAAmC,CACjD,KAAK,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EACnF,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,OAAO,CAGT;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAiBhG;AAGD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;wBAiBT,MAAM;;;0BAQJ,MAAM;kCACE,MAAM;yCACC,MAAM;4BACnB,MAAM;yCACO,MAAM;iCACd,MAAM,UAAU,MAAM;uCAChB,MAAM,YAAY,MAAM;uCAExB,MAAM,YAAY,MAAM;iCAE9B,MAAM;yBAGd,MAAM;yCAGU,MAAM;yCACN,MAAM;4BAGnB,MAAM;yCACO,MAAM;2BACpB,MAAM,UAAU,MAAM;gCACjB,MAAM,UAAU,MAAM;mCACnB,MAAM,UAAU,MAAM;mCAEtB,MAAM,UAAU,MAAM;mCAEtB,MAAM,UAAU,MAAM;kCAEvB,MAAM,UAAU,MAAM,UAAU,MAAM;8CAE1B,MAAM,UAAU,MAAM;oCAEhC,MAAM,UAAU,MAAM;2BAI/B,MAAM;mCACE,MAAM;iCACR,MAAM;oCACH,MAAM;oCACN,MAAM;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -385,6 +385,8 @@ export const ENDPOINTS = {
|
|
|
385
385
|
MESSAGE_WATCH: (id) => `${API_BASE}/messages/${id}/watch`,
|
|
386
386
|
MESSAGE_WATCHERS: (id) => `${API_BASE}/messages/${id}/watchers`,
|
|
387
387
|
MESSAGE_WATCHING: (id) => `${API_BASE}/messages/${id}/watching`,
|
|
388
|
+
MESSAGE_REACTIONS: (id) => `${API_BASE}/messages/${id}/reactions`,
|
|
389
|
+
MESSAGE_REACTION: (id, emoji) => `${API_BASE}/messages/${id}/reactions/${encodeURIComponent(emoji)}`,
|
|
388
390
|
// Upload (org-scoped)
|
|
389
391
|
UPLOAD_PRESIGN: (orgId) => `${API_BASE}/orgs/${orgId}/upload/presign`,
|
|
390
392
|
UPLOAD_COMPLETE: (orgId) => `${API_BASE}/orgs/${orgId}/upload/complete`,
|
|
@@ -622,11 +624,13 @@ export const ENDPOINTS = {
|
|
|
622
624
|
UNREAD: `${API_BASE}/me/unread`,
|
|
623
625
|
ORG_UNREAD: (orgId) => `${API_BASE}/orgs/${orgId}/unread`,
|
|
624
626
|
CHAT_READ: (orgId, chatId) => `${API_BASE}/orgs/${orgId}/chats/${chatId}/read`,
|
|
627
|
+
CHAT_READ_ALL: (orgId, chatId) => `${API_BASE}/orgs/${orgId}/chats/${chatId}/read-all`,
|
|
625
628
|
THREAD_UNREAD: (orgId, chatId, threadRootId) => `${API_BASE}/orgs/${orgId}/chats/${chatId}/threads/${threadRootId}/unread`,
|
|
626
629
|
THREAD_READ: (orgId, chatId, threadRootId) => `${API_BASE}/orgs/${orgId}/chats/${chatId}/threads/${threadRootId}/read`,
|
|
627
630
|
// References (org-scoped)
|
|
628
631
|
REFS_RESOLVE: (orgId) => `${API_BASE}/orgs/${orgId}/refs/resolve`,
|
|
629
632
|
REFS_BACKLINKS: (orgId) => `${API_BASE}/orgs/${orgId}/refs/backlinks`,
|
|
633
|
+
REFS_OUTBOUND: (orgId) => `${API_BASE}/orgs/${orgId}/refs/outbound`,
|
|
630
634
|
REFS_GRAPH: (orgId) => `${API_BASE}/orgs/${orgId}/refs/graph`,
|
|
631
635
|
REFS_CHECK: (orgId) => `${API_BASE}/orgs/${orgId}/refs/check`,
|
|
632
636
|
// Platform config (agent-scoped, not org-scoped)
|
|
@@ -687,10 +691,23 @@ export const ENDPOINTS = {
|
|
|
687
691
|
ORG_EDGE: (orgId) => `/api/v1/orgs/${orgId}/edge`,
|
|
688
692
|
ORG_EDGE_DEVICES: (orgId) => `/api/v1/orgs/${orgId}/edge/devices`,
|
|
689
693
|
ORG_EDGE_DEVICE: (orgId, edgeId) => `/api/v1/orgs/${orgId}/edge/${edgeId}`,
|
|
694
|
+
ORG_EDGE_DEVICE_UNREGISTER: (orgId, edgeId) => `/api/v1/orgs/${orgId}/edge/${edgeId}/unregister`,
|
|
690
695
|
ORG_EDGE_ONBOARDING: (orgId) => `/api/v1/orgs/${orgId}/edge/onboarding`,
|
|
691
696
|
ORG_EDGE_PROFILES: (orgId, edgeId) => `/api/v1/orgs/${orgId}/edge/${edgeId}/profiles`,
|
|
697
|
+
// Per-profile egress proxy (hosted Cloud Profiles; manager-only, human-only).
|
|
698
|
+
ORG_EDGE_PROFILE_PROXY: (orgId, edgeId, profileName) => `/api/v1/orgs/${orgId}/edge/${edgeId}/profiles/${encodeURIComponent(profileName)}/proxy`,
|
|
699
|
+
ORG_EDGE_EXEC: (orgId) => `/api/v1/orgs/${orgId}/edge/exec`,
|
|
700
|
+
// Cloud Edge live viewer command (V1b) — api-server, gated on cap:edge-viewer.
|
|
701
|
+
// Same request/reply shape as the v2 browser-profile viewer, on the v3 edge
|
|
702
|
+
// pipe. Additive: does NOT replace BROWSER_PROFILE_VIEWER_COMMAND.
|
|
703
|
+
ORG_EDGE_VIEWER_COMMAND: (orgId, edgeId) => `/api/v1/orgs/${orgId}/edge/${edgeId}/viewer/command`,
|
|
692
704
|
CLIP_CONNECTIONS: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/connections`,
|
|
693
705
|
CLIP_CONNECTION: (orgId, connId) => `/api/v1/orgs/${orgId}/clip-connections/${connId}`,
|
|
706
|
+
// Clip registry (v3, org-scoped, served by api-server — `crg_` entries; the
|
|
707
|
+
// Pinix Hub catalog proxy above is a different, id-less surface)
|
|
708
|
+
ORG_CLIP_REGISTRY: (orgId) => `/api/v1/orgs/${orgId}/clip-registry`,
|
|
709
|
+
ORG_CLIP_INSTALL: (orgId) => `/api/v1/orgs/${orgId}/clips/install`,
|
|
710
|
+
ORG_CLIPS_INSTALLED: (orgId) => `/api/v1/orgs/${orgId}/clips/installed`,
|
|
694
711
|
};
|
|
695
712
|
/**
|
|
696
713
|
* Wiki personal-namespace prefix — the path subtree a member owns for
|
|
@@ -741,6 +758,7 @@ export const WS_EVENTS = {
|
|
|
741
758
|
MESSAGE_PATCH: 'message.patch',
|
|
742
759
|
MESSAGE_EDIT: 'message.edit',
|
|
743
760
|
MESSAGE_DELETE: 'message.delete',
|
|
761
|
+
MESSAGE_REACTION_UPDATED: 'message.reaction.updated',
|
|
744
762
|
TYPING_UPDATE: 'typing.update',
|
|
745
763
|
CHAT_UPDATE: 'chat.update',
|
|
746
764
|
CHAT_DELETED: 'chat.deleted',
|
|
@@ -781,6 +799,7 @@ export const WS_EVENTS = {
|
|
|
781
799
|
INBOX_UPDATE: 'inbox.update',
|
|
782
800
|
INBOX_BULK_UPDATE: 'inbox.bulk_update',
|
|
783
801
|
READ_POSITION_UPDATED: 'read_position.updated',
|
|
802
|
+
THREAD_READ_POSITION_UPDATED: 'thread_read_position.updated',
|
|
784
803
|
DISPATCH_NEW: 'dispatch.new',
|
|
785
804
|
DISPATCH_RECEIVED: 'dispatch.received',
|
|
786
805
|
DISPATCH_RESOLVED: 'dispatch.resolved',
|