@parall/daemon 1.51.0 → 1.52.1
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 +75 -7
- package/bundle/parall-claude-agent.js +1225 -400
- package/bundle/parall-codex-agent.js +913 -385
- package/bundle/parall-daemon.js +103 -15
- 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.1",
|
|
3
|
+
"built_at": "2026-08-04T09:01:32.526Z",
|
|
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": "f478b2bdde1a2a995f4210d342bd4cf96b386d4063675b89907ef8671fa7c115",
|
|
28
|
+
"size": 2773567
|
|
29
29
|
},
|
|
30
30
|
"parall-codex-agent.js": {
|
|
31
|
-
"sha256": "
|
|
32
|
-
"size":
|
|
31
|
+
"sha256": "1025afe9a0dc14a77ffc8097d8e8a36d6a8b650c2af5b6089f38f2112cd8f46c",
|
|
32
|
+
"size": 2804092
|
|
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": "rhiOlCqFmHy4vtj3/iuilCmxdxe3r/5BvEQ49g79vTR39G/4VZeV8yRFhz98NHBe3AHs4w1i9WQar99SupfMCg=="
|
|
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`,
|
|
@@ -63897,7 +63898,11 @@ var ENDPOINTS = {
|
|
|
63897
63898
|
// Pinix Hub catalog proxy above is a different, id-less surface)
|
|
63898
63899
|
ORG_CLIP_REGISTRY: (orgId) => `/api/v1/orgs/${orgId}/clip-registry`,
|
|
63899
63900
|
ORG_CLIP_INSTALL: (orgId) => `/api/v1/orgs/${orgId}/clips/install`,
|
|
63900
|
-
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`
|
|
63901
63906
|
};
|
|
63902
63907
|
|
|
63903
63908
|
// ts/sdk/dist/client.js
|
|
@@ -64999,6 +65004,10 @@ var ParallClient = class _ParallClient {
|
|
|
64999
65004
|
async steerDispatch(orgId, req) {
|
|
65000
65005
|
return this.request("POST", ENDPOINTS.DISPATCH_STEER(orgId), req);
|
|
65001
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
|
+
}
|
|
65002
65011
|
async completeDispatch(orgId, req) {
|
|
65003
65012
|
return this.request("POST", ENDPOINTS.DISPATCH_COMPLETE(orgId), req);
|
|
65004
65013
|
}
|
|
@@ -65964,12 +65973,17 @@ var ParallClient = class _ParallClient {
|
|
|
65964
65973
|
* command RAN and failed — `error`/`error_code` describe why). Everything
|
|
65965
65974
|
* else throws a typed {@link ApiError}; match on `err.code`:
|
|
65966
65975
|
*
|
|
65967
|
-
* Safe to retry (
|
|
65968
|
-
*
|
|
65969
|
-
*
|
|
65970
|
-
* - `
|
|
65971
|
-
*
|
|
65972
|
-
* - `
|
|
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).
|
|
65973
65987
|
*
|
|
65974
65988
|
* NOT retryable:
|
|
65975
65989
|
* - `OUTCOME_UNKNOWN` 504 — dispatched, but no result arrived. The command
|
|
@@ -66008,6 +66022,60 @@ var ParallClient = class _ParallClient {
|
|
|
66008
66022
|
async deleteClipConnection(orgId, connId) {
|
|
66009
66023
|
return this.request("DELETE", ENDPOINTS.CLIP_CONNECTION(orgId, connId));
|
|
66010
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
|
+
}
|
|
66011
66079
|
};
|
|
66012
66080
|
function normalizeWikiChangeset(changeset) {
|
|
66013
66081
|
return {
|