@parall/daemon 1.52.1 → 1.53.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/bundle/manifest.json +11 -11
- package/bundle/parall-browser-pod.js +66 -12
- package/bundle/parall-claude-agent.js +428 -60
- package/bundle/parall-codex-agent.js +431 -62
- package/bundle/parall-daemon.js +75 -12
- package/package.json +6 -6
package/bundle/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
3
|
-
"built_at": "2026-08-
|
|
2
|
+
"version": "1.53.0",
|
|
3
|
+
"built_at": "2026-08-05T09:24:55.164Z",
|
|
4
4
|
"min_node_version": "20.0.0",
|
|
5
5
|
"files": {
|
|
6
6
|
"bb-browser-daemon.js": {
|
|
@@ -16,29 +16,29 @@
|
|
|
16
16
|
"size": 18
|
|
17
17
|
},
|
|
18
18
|
"parall-browser-pod.js": {
|
|
19
|
-
"sha256": "
|
|
20
|
-
"size":
|
|
19
|
+
"sha256": "4d5b8c1f431963dac5ab39cbca769e63db91d0e0c15a118b9c8aa9fba0a19ecf",
|
|
20
|
+
"size": 2916134
|
|
21
21
|
},
|
|
22
22
|
"parall-channel-exec.js": {
|
|
23
23
|
"sha256": "7c2a6e12483a45e9eb4a42cd7d4cdd3c4fa21dd09ac1347d9a3e177b4ddee930",
|
|
24
24
|
"size": 7220
|
|
25
25
|
},
|
|
26
26
|
"parall-claude-agent.js": {
|
|
27
|
-
"sha256": "
|
|
28
|
-
"size":
|
|
27
|
+
"sha256": "03212787f04c48979089dcc72db0f34bcfe517e36a0d0702fe17e216cf46f69b",
|
|
28
|
+
"size": 2791626
|
|
29
29
|
},
|
|
30
30
|
"parall-codex-agent.js": {
|
|
31
|
-
"sha256": "
|
|
32
|
-
"size":
|
|
31
|
+
"sha256": "d76c1a2329560bb3c7b8badfe20fff84464e844469b2514dcaee1b0595968ba7",
|
|
32
|
+
"size": 2822330
|
|
33
33
|
},
|
|
34
34
|
"parall-daemon.js": {
|
|
35
|
-
"sha256": "
|
|
36
|
-
"size":
|
|
35
|
+
"sha256": "a30282759eea26d092cbfd62f47bc6a8096db5ec054872dfe444c1bac56b49e0",
|
|
36
|
+
"size": 2978202
|
|
37
37
|
},
|
|
38
38
|
"parall-openclaw-agent.js": {
|
|
39
39
|
"sha256": "856a1c3a9ae0ffef8efe2481fa1171dbeb1d67cccb88616aa9bf16da96a69355",
|
|
40
40
|
"size": 9923
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
|
-
"signature": "
|
|
43
|
+
"signature": "w30RAe4Nw8xT06MeL6hZBorrsxsoaZt0snApyNs8ICBk2XB/7cWyZKUZ+G1XC81r3fHkztJNIC4Qc0wBFJeMBQ=="
|
|
44
44
|
}
|
|
@@ -63715,6 +63715,8 @@ var ENDPOINTS = {
|
|
|
63715
63715
|
SLACK_HISTORY: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/history`,
|
|
63716
63716
|
SLACK_MEMBERS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/members`,
|
|
63717
63717
|
SLACK_STATUS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/status`,
|
|
63718
|
+
// WeChat tier-B read verb (agent-only; internal research preview).
|
|
63719
|
+
WECHAT_CONTACTS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/wechat/contacts`,
|
|
63718
63720
|
// Invitations (org-scoped, admin)
|
|
63719
63721
|
ORG_INVITATIONS: (orgId) => `${API_BASE}/orgs/${orgId}/invitations`,
|
|
63720
63722
|
ORG_INVITATION: (orgId, invId) => `${API_BASE}/orgs/${orgId}/invitations/${invId}`,
|
|
@@ -63876,8 +63878,6 @@ var ENDPOINTS = {
|
|
|
63876
63878
|
// Live viewer command — on api-server (API_BASE), not clip-service: it rides
|
|
63877
63879
|
// the machine control-plane request/reply bridge that lives in api-server.
|
|
63878
63880
|
BROWSER_PROFILE_VIEWER_COMMAND: (orgId, profileId) => `${API_BASE}/orgs/${orgId}/browser-profiles/${profileId}/viewer/command`,
|
|
63879
|
-
// Clip registry (global, served by clip-service → Pinix Hub proxy)
|
|
63880
|
-
CLIP_REGISTRY: () => `${CLIP_BASE}/registry/clips`,
|
|
63881
63881
|
// Edge device endpoints
|
|
63882
63882
|
ORG_EDGE: (orgId) => `/api/v1/orgs/${orgId}/edge`,
|
|
63883
63883
|
ORG_EDGE_DEVICES: (orgId) => `/api/v1/orgs/${orgId}/edge/devices`,
|
|
@@ -63894,15 +63894,20 @@ var ENDPOINTS = {
|
|
|
63894
63894
|
ORG_EDGE_VIEWER_COMMAND: (orgId, edgeId) => `/api/v1/orgs/${orgId}/edge/${edgeId}/viewer/command`,
|
|
63895
63895
|
CLIP_CONNECTIONS: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/connections`,
|
|
63896
63896
|
CLIP_CONNECTION: (orgId, connId) => `/api/v1/orgs/${orgId}/clip-connections/${connId}`,
|
|
63897
|
-
// Clip registry (v3, org-scoped, served by api-server — `crg_` entries
|
|
63898
|
-
// Pinix Hub catalog proxy above is a different, id-less surface)
|
|
63897
|
+
// Clip registry (v3, org-scoped, served by api-server — `crg_` entries)
|
|
63899
63898
|
ORG_CLIP_REGISTRY: (orgId) => `/api/v1/orgs/${orgId}/clip-registry`,
|
|
63899
|
+
ORG_CLIP_REGISTRY_CLIP: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}`,
|
|
63900
|
+
ORG_CLIP_REGISTRY_PUBLISH: (orgId) => `/api/v1/orgs/${orgId}/clip-registry/publish`,
|
|
63900
63901
|
ORG_CLIP_INSTALL: (orgId) => `/api/v1/orgs/${orgId}/clips/install`,
|
|
63901
63902
|
ORG_CLIPS_INSTALLED: (orgId) => `/api/v1/orgs/${orgId}/clips/installed`,
|
|
63903
|
+
ORG_CLIP_UNINSTALL: (orgId, clipId) => `/api/v1/orgs/${orgId}/clips/${clipId}/uninstall`,
|
|
63904
|
+
// Per-org agent exec access for one clip (default all agents; PUT human-only)
|
|
63905
|
+
ORG_CLIP_EXEC_ACCESS: (orgId, clipId) => `/api/v1/orgs/${orgId}/clips/${clipId}/exec-access`,
|
|
63902
63906
|
// MCP clip server config (cap:clip-mcp; publisher-org only — cross-org gets
|
|
63903
63907
|
// 403 MCP_CROSS_ORG_DISABLED on the whole family, reads included)
|
|
63904
63908
|
ORG_CLIP_MCP_CONFIG: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-config`,
|
|
63905
|
-
ORG_CLIP_MCP_TOOLS_REFRESH: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-config/tools/refresh
|
|
63909
|
+
ORG_CLIP_MCP_TOOLS_REFRESH: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-config/tools/refresh`,
|
|
63910
|
+
ORG_CLIP_MCP_OAUTH_DISCONNECT: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-config/oauth/disconnect`
|
|
63906
63911
|
};
|
|
63907
63912
|
|
|
63908
63913
|
// ts/sdk/dist/client.js
|
|
@@ -65312,6 +65317,14 @@ var ParallClient = class _ParallClient {
|
|
|
65312
65317
|
async setSlackStatus(orgId, input) {
|
|
65313
65318
|
await this.request("POST", ENDPOINTS.SLACK_STATUS(orgId), input);
|
|
65314
65319
|
}
|
|
65320
|
+
/**
|
|
65321
|
+
* WeChat tier-B read verb (agent-only; internal research preview): the
|
|
65322
|
+
* account's address book — friend wxids, saved group room ids, followed
|
|
65323
|
+
* official accounts. Same live gate as the send verb.
|
|
65324
|
+
*/
|
|
65325
|
+
async listWechatContacts(orgId) {
|
|
65326
|
+
return this.request("GET", ENDPOINTS.WECHAT_CONTACTS(orgId));
|
|
65327
|
+
}
|
|
65315
65328
|
async listChannelConversations(orgId, connectionId) {
|
|
65316
65329
|
return this.request("GET", ENDPOINTS.CHANNEL_CONNECTION_CONVERSATIONS(orgId, connectionId));
|
|
65317
65330
|
}
|
|
@@ -65850,17 +65863,11 @@ var ParallClient = class _ParallClient {
|
|
|
65850
65863
|
async revokeBrowserProfileConsent(orgId, profileId, clipId) {
|
|
65851
65864
|
await this.request("DELETE", ENDPOINTS.BROWSER_PROFILE_CONSENT(orgId, profileId, clipId));
|
|
65852
65865
|
}
|
|
65853
|
-
async listRegistryClips(q2) {
|
|
65854
|
-
const url = ENDPOINTS.CLIP_REGISTRY() + (q2 ? `?q=${encodeURIComponent(q2)}` : "");
|
|
65855
|
-
const resp = await this.request("GET", url);
|
|
65856
|
-
return resp.data;
|
|
65857
|
-
}
|
|
65858
65866
|
// ---- Clip registry (v3, api-server org registry — `crg_` entries) ----
|
|
65859
65867
|
/**
|
|
65860
65868
|
* List registry clips visible to the org: its own plus public+approved
|
|
65861
65869
|
* cross-org entries. This is the surface `installRegistryClip` and clip
|
|
65862
|
-
* connections operate on
|
|
65863
|
-
* ({@link listRegistryClips}), whose entries carry no `crg_` id.
|
|
65870
|
+
* connections operate on.
|
|
65864
65871
|
*/
|
|
65865
65872
|
async listOrgRegistryClips(orgId) {
|
|
65866
65873
|
const resp = await this.request("GET", `${ENDPOINTS.ORG_CLIP_REGISTRY(orgId)}?limit=100`);
|
|
@@ -65875,11 +65882,58 @@ var ParallClient = class _ParallClient {
|
|
|
65875
65882
|
async installRegistryClip(orgId, clipId) {
|
|
65876
65883
|
return this.request("POST", ENDPOINTS.ORG_CLIP_INSTALL(orgId), { clip_id: clipId });
|
|
65877
65884
|
}
|
|
65885
|
+
/**
|
|
65886
|
+
* Remove an org's install of a registry clip. Keyed by the REGISTRY id
|
|
65887
|
+
* (`crg_`), the same id {@link installRegistryClip} takes — the v2
|
|
65888
|
+
* `deleteClip` operates on a different table and cannot reach these.
|
|
65889
|
+
*/
|
|
65890
|
+
async uninstallRegistryClip(orgId, clipId) {
|
|
65891
|
+
await this.request("DELETE", ENDPOINTS.ORG_CLIP_UNINSTALL(orgId, clipId));
|
|
65892
|
+
}
|
|
65878
65893
|
/** List the org's installed registry clips (full entries). */
|
|
65879
65894
|
async listInstalledRegistryClips(orgId) {
|
|
65880
65895
|
const resp = await this.request("GET", ENDPOINTS.ORG_CLIPS_INSTALLED(orgId));
|
|
65881
65896
|
return resp ?? [];
|
|
65882
65897
|
}
|
|
65898
|
+
/**
|
|
65899
|
+
* Fetch one registry clip by its `crg_` id. For a clip OWNED by the calling
|
|
65900
|
+
* org the entry additionally carries `review_status`/`review_note` — the
|
|
65901
|
+
* state of the latest submitted version and the reviewer's rejection
|
|
65902
|
+
* feedback. This is the polling surface for "did platform review approve my
|
|
65903
|
+
* public publish yet"; cross-org callers see only public+approved entries
|
|
65904
|
+
* and never any review-state fields.
|
|
65905
|
+
*/
|
|
65906
|
+
async getRegistryClip(orgId, clipId) {
|
|
65907
|
+
return this.request("GET", ENDPOINTS.ORG_CLIP_REGISTRY_CLIP(orgId, clipId));
|
|
65908
|
+
}
|
|
65909
|
+
/**
|
|
65910
|
+
* Publish (create, or author-only update) a clip in the org registry,
|
|
65911
|
+
* replacing its whole file set. See {@link PublishRegistryClipRequest} for
|
|
65912
|
+
* the visibility/review semantics; the returned entry carries
|
|
65913
|
+
* `review_status` when a public publish queued a review submission — poll
|
|
65914
|
+
* {@link getRegistryClip} for the outcome.
|
|
65915
|
+
*/
|
|
65916
|
+
async publishRegistryClip(orgId, req) {
|
|
65917
|
+
return this.request("POST", ENDPOINTS.ORG_CLIP_REGISTRY_PUBLISH(orgId), req, void 0, false, {
|
|
65918
|
+
timeoutMs: 6e4
|
|
65919
|
+
});
|
|
65920
|
+
}
|
|
65921
|
+
/**
|
|
65922
|
+
* Read a clip's per-org agent exec access. Org-member readable (agents
|
|
65923
|
+
* included, so a denied agent can learn why exec answered
|
|
65924
|
+
* `CLIP_AGENT_NOT_ALLOWED`).
|
|
65925
|
+
*/
|
|
65926
|
+
async getClipAgentExecAccess(orgId, clipId) {
|
|
65927
|
+
return this.request("GET", ENDPOINTS.ORG_CLIP_EXEC_ACCESS(orgId, clipId));
|
|
65928
|
+
}
|
|
65929
|
+
/**
|
|
65930
|
+
* Replace a clip's per-org agent exec access. Human-only (agent principals
|
|
65931
|
+
* get 403); under `all_agents` the `agent_ids` must be empty. Every granted
|
|
65932
|
+
* id must be an active agent of this org (else `400 INVALID_INPUT`).
|
|
65933
|
+
*/
|
|
65934
|
+
async putClipAgentExecAccess(orgId, clipId, access) {
|
|
65935
|
+
return this.request("PUT", ENDPOINTS.ORG_CLIP_EXEC_ACCESS(orgId, clipId), access);
|
|
65936
|
+
}
|
|
65883
65937
|
// ---- Edge devices ----
|
|
65884
65938
|
async listEdgeDevices(orgId) {
|
|
65885
65939
|
return this.request("GET", ENDPOINTS.ORG_EDGE_DEVICES(orgId));
|