@parall/daemon 1.50.1 → 1.52.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 +101 -10
- package/bundle/parall-claude-agent.js +1240 -408
- package/bundle/parall-codex-agent.js +928 -393
- package/bundle/parall-daemon.js +129 -18
- package/package.json +6 -6
package/bundle/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
3
|
-
"built_at": "2026-
|
|
2
|
+
"version": "1.52.0",
|
|
3
|
+
"built_at": "2026-08-03T09:37:10.072Z",
|
|
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": "811d1173f85dd877563eb8c99f8b3836e3f17bbf9a3af3dcc548877579fc9132",
|
|
20
|
+
"size": 2913419
|
|
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": "cd969e36d593cf532e8caf95bd91659a6721a0011400ba911bc1f6f74bd0ae70",
|
|
28
|
+
"size": 2772893
|
|
29
29
|
},
|
|
30
30
|
"parall-codex-agent.js": {
|
|
31
|
-
"sha256": "
|
|
32
|
-
"size":
|
|
31
|
+
"sha256": "ac8df887d61832457c2987fe896b4ffc210fa8e540725a5eec9553575bbd4892",
|
|
32
|
+
"size": 2803418
|
|
33
33
|
},
|
|
34
34
|
"parall-daemon.js": {
|
|
35
|
-
"sha256": "
|
|
36
|
-
"size":
|
|
35
|
+
"sha256": "99350ce670d97b1ddc5e335c357410fcbe15e8764af2260b8924758dfb592b53",
|
|
36
|
+
"size": 2975019
|
|
37
37
|
},
|
|
38
38
|
"parall-openclaw-agent.js": {
|
|
39
39
|
"sha256": "856a1c3a9ae0ffef8efe2481fa1171dbeb1d67cccb88616aa9bf16da96a69355",
|
|
40
40
|
"size": 9923
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
|
-
"signature": "
|
|
43
|
+
"signature": "wgV8J5tcyVF6Aa+mMM41Vb9BL+6TCUnP8mUXrS/pZF2O61wKWtGj63IYRqGt9YTAF8RBdecsZEkFCDvIWv4TAg=="
|
|
44
44
|
}
|
|
@@ -63800,6 +63800,7 @@ var ENDPOINTS = {
|
|
|
63800
63800
|
DISPATCH_BY_MESSAGES: (orgId) => `${API_BASE}/orgs/${orgId}/dispatch/by-messages`,
|
|
63801
63801
|
DISPATCH_CLAIM: (orgId) => `${API_BASE}/orgs/${orgId}/dispatch/claim`,
|
|
63802
63802
|
DISPATCH_STEER: (orgId) => `${API_BASE}/orgs/${orgId}/dispatch/steer`,
|
|
63803
|
+
DISPATCH_INPUT_STATE: (orgId) => `${API_BASE}/orgs/${orgId}/dispatch/input-state`,
|
|
63803
63804
|
DISPATCH_COMPLETE: (orgId) => `${API_BASE}/orgs/${orgId}/dispatch/complete`,
|
|
63804
63805
|
DISPATCH_COMPLETE_SOURCES: (orgId) => `${API_BASE}/orgs/${orgId}/dispatch/complete-sources`,
|
|
63805
63806
|
DISPATCH_RELEASE: (orgId) => `${API_BASE}/orgs/${orgId}/dispatch/release`,
|
|
@@ -63834,6 +63835,9 @@ var ENDPOINTS = {
|
|
|
63834
63835
|
TEMPLATE: (orgId, templateId) => `${API_BASE}/orgs/${orgId}/templates/${templateId}`,
|
|
63835
63836
|
TEMPLATE_DEPLOYMENTS: (orgId) => `${API_BASE}/orgs/${orgId}/template-deployments`,
|
|
63836
63837
|
TEMPLATE_DEPLOYMENT: (orgId, deploymentId) => `${API_BASE}/orgs/${orgId}/template-deployments/${deploymentId}`,
|
|
63838
|
+
CLIP_DEPENDENCIES_CHECK: (orgId) => `${API_BASE}/orgs/${orgId}/clip-dependencies/check`,
|
|
63839
|
+
// Onboarding wizard progress (org-scoped, self)
|
|
63840
|
+
ONBOARDING_PROGRESS: (orgId) => `${API_BASE}/orgs/${orgId}/onboarding`,
|
|
63837
63841
|
// Billing & Credits (org-scoped)
|
|
63838
63842
|
BILLING: (orgId) => `${API_BASE}/orgs/${orgId}/billing`,
|
|
63839
63843
|
BILLING_TRANSACTIONS: (orgId) => `${API_BASE}/orgs/${orgId}/billing/transactions`,
|
|
@@ -63894,7 +63898,11 @@ var ENDPOINTS = {
|
|
|
63894
63898
|
// Pinix Hub catalog proxy above is a different, id-less surface)
|
|
63895
63899
|
ORG_CLIP_REGISTRY: (orgId) => `/api/v1/orgs/${orgId}/clip-registry`,
|
|
63896
63900
|
ORG_CLIP_INSTALL: (orgId) => `/api/v1/orgs/${orgId}/clips/install`,
|
|
63897
|
-
ORG_CLIPS_INSTALLED: (orgId) => `/api/v1/orgs/${orgId}/clips/installed
|
|
63901
|
+
ORG_CLIPS_INSTALLED: (orgId) => `/api/v1/orgs/${orgId}/clips/installed`,
|
|
63902
|
+
// MCP clip server config (cap:clip-mcp; publisher-org only — cross-org gets
|
|
63903
|
+
// 403 MCP_CROSS_ORG_DISABLED on the whole family, reads included)
|
|
63904
|
+
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`
|
|
63898
63906
|
};
|
|
63899
63907
|
|
|
63900
63908
|
// ts/sdk/dist/client.js
|
|
@@ -64302,8 +64310,10 @@ var ParallClient = class _ParallClient {
|
|
|
64302
64310
|
q2.limit = String(params.limit);
|
|
64303
64311
|
return this.request("GET", ENDPOINTS.ORG_MEMBER_CHATS(orgId, memberId), void 0, q2);
|
|
64304
64312
|
}
|
|
64305
|
-
// Pending tasks (todo + in_progress) assigned to a member.
|
|
64306
|
-
// member profile Activity
|
|
64313
|
+
// Pending tasks (todo + in_progress) assigned to a member. On-demand listing
|
|
64314
|
+
// (member profile Activity; agents via `parall tasks`) — startup catch-up
|
|
64315
|
+
// runs on dispatch redrive, not this endpoint. Self-assigned tasks appear
|
|
64316
|
+
// here without any dispatch WorkItem (self-assign is deliberately silent).
|
|
64307
64317
|
async getMemberTasks(orgId, memberId, params) {
|
|
64308
64318
|
const q2 = {};
|
|
64309
64319
|
if (params?.cursor)
|
|
@@ -64645,7 +64655,12 @@ var ParallClient = class _ParallClient {
|
|
|
64645
64655
|
async getAgentRuntimeRelease(orgId, agentId, tag2) {
|
|
64646
64656
|
return this.request("GET", ENDPOINTS.AGENT_RUNTIME_RELEASE(orgId, agentId, tag2));
|
|
64647
64657
|
}
|
|
64648
|
-
/**
|
|
64658
|
+
/**
|
|
64659
|
+
* Fetch all pending tasks (todo/in_progress) assigned to an agent. Pages
|
|
64660
|
+
* automatically. On-demand listing only — not a dispatch source: startup
|
|
64661
|
+
* catch-up runs on dispatch redrive, and self-assigned tasks listed here
|
|
64662
|
+
* deliberately have no WorkItem behind them.
|
|
64663
|
+
*/
|
|
64649
64664
|
async getAgentTasks(orgId, agentId) {
|
|
64650
64665
|
const all = [];
|
|
64651
64666
|
let cursor2;
|
|
@@ -64989,6 +65004,10 @@ var ParallClient = class _ParallClient {
|
|
|
64989
65004
|
async steerDispatch(orgId, req) {
|
|
64990
65005
|
return this.request("POST", ENDPOINTS.DISPATCH_STEER(orgId), req);
|
|
64991
65006
|
}
|
|
65007
|
+
/** Advance exact runtime-input lifecycle for members of an explicit lane. */
|
|
65008
|
+
async updateDispatchInputState(orgId, req) {
|
|
65009
|
+
return this.request("POST", ENDPOINTS.DISPATCH_INPUT_STATE(orgId), req);
|
|
65010
|
+
}
|
|
64992
65011
|
async completeDispatch(orgId, req) {
|
|
64993
65012
|
return this.request("POST", ENDPOINTS.DISPATCH_COMPLETE(orgId), req);
|
|
64994
65013
|
}
|
|
@@ -65647,6 +65666,19 @@ var ParallClient = class _ParallClient {
|
|
|
65647
65666
|
async getTemplateDeployment(orgId, deploymentId) {
|
|
65648
65667
|
return this.request("GET", ENDPOINTS.TEMPLATE_DEPLOYMENT(orgId, deploymentId));
|
|
65649
65668
|
}
|
|
65669
|
+
/** Pre-deploy dependency connection state (wizard S3). Live answer, no
|
|
65670
|
+
* cache — poll it the way getTemplateDeployment is polled. */
|
|
65671
|
+
async checkClipDependencies(orgId, refs) {
|
|
65672
|
+
const response = await this.request("POST", ENDPOINTS.CLIP_DEPENDENCIES_CHECK(orgId), { refs });
|
|
65673
|
+
return response.results ?? [];
|
|
65674
|
+
}
|
|
65675
|
+
// ---- Onboarding wizard progress (org-scoped, self) ----
|
|
65676
|
+
async getOnboardingProgress(orgId) {
|
|
65677
|
+
return this.request("GET", ENDPOINTS.ONBOARDING_PROGRESS(orgId));
|
|
65678
|
+
}
|
|
65679
|
+
async updateOnboardingProgress(orgId, request) {
|
|
65680
|
+
return this.request("PATCH", ENDPOINTS.ONBOARDING_PROGRESS(orgId), request);
|
|
65681
|
+
}
|
|
65650
65682
|
// ---- Billing & Credits (org-scoped) ----
|
|
65651
65683
|
async getBilling(orgId) {
|
|
65652
65684
|
return this.request("GET", ENDPOINTS.BILLING(orgId));
|
|
@@ -65941,12 +65973,17 @@ var ParallClient = class _ParallClient {
|
|
|
65941
65973
|
* command RAN and failed — `error`/`error_code` describe why). Everything
|
|
65942
65974
|
* else throws a typed {@link ApiError}; match on `err.code`:
|
|
65943
65975
|
*
|
|
65944
|
-
* Safe to retry (
|
|
65945
|
-
*
|
|
65946
|
-
*
|
|
65947
|
-
* - `
|
|
65948
|
-
*
|
|
65949
|
-
* - `
|
|
65976
|
+
* Safe to retry (provably not executed). Exactly three carry `Retry-After`
|
|
65977
|
+
* pacing ({@link ApiError.retryAfterSeconds}) — `EDGE_ACTIVATING`,
|
|
65978
|
+
* `EDGE_BUSY`, `EDGE_CONCURRENCY_LIMIT`:
|
|
65979
|
+
* - `EDGE_ACTIVATING` 503 — cold cloud profile is starting. Answered before
|
|
65980
|
+
* any dispatch. Bounded backoff, same `correlation_id` across the loop.
|
|
65981
|
+
* - `EDGE_BUSY` 409 — the device is executing another request; the pod
|
|
65982
|
+
* refused this one before starting any script.
|
|
65983
|
+
* - `EDGE_CONCURRENCY_LIMIT` 429 — org at its concurrent-session limit,
|
|
65984
|
+
* answered before any dispatch.
|
|
65985
|
+
* - `EDGE_UNAVAILABLE` 503 — session torn down / replaced mid-dispatch. No
|
|
65986
|
+
* `Retry-After` (no slot to wait for — retry re-resolves routing).
|
|
65950
65987
|
*
|
|
65951
65988
|
* NOT retryable:
|
|
65952
65989
|
* - `OUTCOME_UNKNOWN` 504 — dispatched, but no result arrived. The command
|
|
@@ -65985,6 +66022,60 @@ var ParallClient = class _ParallClient {
|
|
|
65985
66022
|
async deleteClipConnection(orgId, connId) {
|
|
65986
66023
|
return this.request("DELETE", ENDPOINTS.CLIP_CONNECTION(orgId, connId));
|
|
65987
66024
|
}
|
|
66025
|
+
// ---- MCP clip server config (cap:clip-mcp; publisher-org only) ----
|
|
66026
|
+
/**
|
|
66027
|
+
* Read the redacted MCP config. 404 NOT_FOUND when the clip has none yet;
|
|
66028
|
+
* 403 MCP_CROSS_ORG_DISABLED for a cross-org installed clip (the whole
|
|
66029
|
+
* mcp-config family is publisher-org property, reads included). `version`
|
|
66030
|
+
* is the CAS token the mutations echo via If-Match.
|
|
66031
|
+
*/
|
|
66032
|
+
async getClipMCPConfig(orgId, clipId) {
|
|
66033
|
+
return this.request("GET", ENDPOINTS.ORG_CLIP_MCP_CONFIG(orgId, clipId));
|
|
66034
|
+
}
|
|
66035
|
+
/**
|
|
66036
|
+
* Upsert the MCP config (human org-admin JWT only). Pass `expectedVersion`
|
|
66037
|
+
* from the last GET; omit it ONLY on first create (no config exists yet).
|
|
66038
|
+
* Save probes the remote server first — a probe failure persists nothing and
|
|
66039
|
+
* surfaces as MCP_URL_FORBIDDEN / MCP_AUTH_FAILED / MCP_SERVER_UNREACHABLE /
|
|
66040
|
+
* MCP_PROTOCOL_ERROR. Other typed conflicts: MCP_CONFIG_STALE (reload, then
|
|
66041
|
+
* retry with the current version), MCP_CONFIG_BUSY (another change in
|
|
66042
|
+
* flight — retry), MCP_CONNECTION_CONFLICT (a device-targeted default
|
|
66043
|
+
* connection must be unbound first), SECRETBOX_UNCONFIGURED (503 — the
|
|
66044
|
+
* server cannot store credentials safely).
|
|
66045
|
+
*/
|
|
66046
|
+
async putClipMCPConfig(orgId, clipId, req, expectedVersion) {
|
|
66047
|
+
return this.request("PUT", ENDPOINTS.ORG_CLIP_MCP_CONFIG(orgId, clipId), req, void 0, false, {
|
|
66048
|
+
headers: expectedVersion ? { "If-Match": `"${expectedVersion}"` } : void 0,
|
|
66049
|
+
// The server probes the remote MCP server inside the request on a fixed
|
|
66050
|
+
// 30s budget; give the HTTP layer headroom past it so a slow-but-valid
|
|
66051
|
+
// save isn't chopped locally into a fake transport error.
|
|
66052
|
+
timeoutMs: 4e4
|
|
66053
|
+
});
|
|
66054
|
+
}
|
|
66055
|
+
/**
|
|
66056
|
+
* Delete the MCP config and every connection routed through it (one
|
|
66057
|
+
* transaction — no orphaned target-less connections). `expectedVersion` is
|
|
66058
|
+
* mandatory: deleting always mutates an existing config.
|
|
66059
|
+
*/
|
|
66060
|
+
async deleteClipMCPConfig(orgId, clipId, expectedVersion) {
|
|
66061
|
+
return this.request("DELETE", ENDPOINTS.ORG_CLIP_MCP_CONFIG(orgId, clipId), void 0, void 0, false, { headers: { "If-Match": `"${expectedVersion}"` } });
|
|
66062
|
+
}
|
|
66063
|
+
/**
|
|
66064
|
+
* Re-run tools/list and replace the cached snapshot (org-admin only).
|
|
66065
|
+
* Deliberately does NOT advance the CAS version, so an in-flight edit in
|
|
66066
|
+
* another tab stays valid; on probe failure the old snapshot survives.
|
|
66067
|
+
*/
|
|
66068
|
+
async refreshClipMCPTools(orgId, clipId) {
|
|
66069
|
+
return this.request(
|
|
66070
|
+
"POST",
|
|
66071
|
+
ENDPOINTS.ORG_CLIP_MCP_TOOLS_REFRESH(orgId, clipId),
|
|
66072
|
+
void 0,
|
|
66073
|
+
void 0,
|
|
66074
|
+
false,
|
|
66075
|
+
// Same fixed 30s server-side probe budget as PUT (see putClipMCPConfig).
|
|
66076
|
+
{ timeoutMs: 4e4 }
|
|
66077
|
+
);
|
|
66078
|
+
}
|
|
65988
66079
|
};
|
|
65989
66080
|
function normalizeWikiChangeset(changeset) {
|
|
65990
66081
|
return {
|