@parall/daemon 1.55.0 → 1.55.2

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.
@@ -354,6 +354,13 @@ var init_constants = __esm({
354
354
  PROJECTS: (orgId) => `${API_BASE}/orgs/${orgId}/projects`,
355
355
  PROJECT_TASK_SUMMARY: (orgId) => `${API_BASE}/orgs/${orgId}/projects/task-summary`,
356
356
  PROJECT: (orgId, projectId) => `${API_BASE}/orgs/${orgId}/projects/${projectId}`,
357
+ PROJECT_MEMBERS: (orgId, projectId) => `${API_BASE}/orgs/${orgId}/projects/${projectId}/members`,
358
+ PROJECT_READERS: (orgId, projectId) => `${API_BASE}/orgs/${orgId}/projects/${projectId}/readers`,
359
+ PROJECT_LIBRARY: (orgId) => `${API_BASE}/orgs/${orgId}/projects/library`,
360
+ PROJECT_JOIN: (orgId, projectId) => `${API_BASE}/orgs/${orgId}/projects/${projectId}/join`,
361
+ PROJECT_JOIN_REQUESTS: (orgId, projectId) => `${API_BASE}/orgs/${orgId}/projects/${projectId}/join-requests`,
362
+ // subject is a bare user ID or a bare team ID; both are path-segment safe.
363
+ PROJECT_MEMBER: (orgId, projectId, subject) => `${API_BASE}/orgs/${orgId}/projects/${projectId}/members/${subject}`,
357
364
  // Schedules (org-scoped, platform time trigger primitive)
358
365
  SCHEDULES: (orgId) => `${API_BASE}/orgs/${orgId}/schedules`,
359
366
  SCHEDULE: (orgId, id) => `${API_BASE}/orgs/${orgId}/schedules/${id}`,
@@ -571,6 +578,9 @@ var init_constants = __esm({
571
578
  ORG_EDGE_PROFILES: (orgId, edgeId) => `/api/v1/orgs/${orgId}/edge/${edgeId}/profiles`,
572
579
  // Per-profile egress proxy (hosted Cloud Profiles; manager-only, human-only).
573
580
  ORG_EDGE_PROFILE_PROXY: (orgId, edgeId, profileName) => `/api/v1/orgs/${orgId}/edge/${edgeId}/profiles/${encodeURIComponent(profileName)}/proxy`,
581
+ // Per-profile one-shot cookie seed (hosted Cloud Profiles; manager-only,
582
+ // human-only, idle-only). Injected at the next cold start, then consumed.
583
+ ORG_EDGE_PROFILE_COOKIES: (orgId, edgeId, profileName) => `/api/v1/orgs/${orgId}/edge/${edgeId}/profiles/${encodeURIComponent(profileName)}/cookies`,
574
584
  ORG_EDGE_EXEC: (orgId) => `/api/v1/orgs/${orgId}/edge/exec`,
575
585
  // Cloud Edge live viewer command (V1b) — api-server, gated on cap:edge-viewer.
576
586
  // Same request/reply shape as the v2 browser-profile viewer, on the v3 edge
@@ -612,6 +622,7 @@ var init_constants = __esm({
612
622
  PONG: "pong",
613
623
  WATCHING: "watching",
614
624
  MESSAGE_NEW: "message.new",
625
+ /** @deprecated `message.patch` is retired and never published; kept for compile compatibility. */
615
626
  MESSAGE_PATCH: "message.patch",
616
627
  MESSAGE_EDIT: "message.edit",
617
628
  MESSAGE_DELETE: "message.delete",
@@ -814,6 +825,62 @@ var init_project_task_client = __esm({
814
825
  async deleteProject(orgId, projectId) {
815
826
  return this.request("DELETE", ENDPOINTS.PROJECT(orgId, projectId));
816
827
  }
828
+ /** Roster with display info; readable by anyone who can read the project. */
829
+ async getProjectMembers(orgId, projectId) {
830
+ const res = await this.request("GET", ENDPOINTS.PROJECT_MEMBERS(orgId, projectId));
831
+ return res.data;
832
+ }
833
+ /**
834
+ * User IDs who may read the project — the assignee-eligibility set. Every
835
+ * tier answers the roster expansion (direct, team-reached, org
836
+ * owners/admins); visibility only shapes admission, never reach.
837
+ */
838
+ async getProjectReaders(orgId, projectId) {
839
+ const res = await this.request("GET", ENDPOINTS.PROJECT_READERS(orgId, projectId));
840
+ return res.data;
841
+ }
842
+ /** The join library: every discoverable project (public + restricted, plus
843
+ * private for org owners/admins) with the caller's admission state. */
844
+ async getProjectLibrary(orgId) {
845
+ const res = await this.request("GET", ENDPOINTS.PROJECT_LIBRARY(orgId));
846
+ return res.data;
847
+ }
848
+ /** Public-tier self-admission: writes the caller's own member row.
849
+ * Other tiers answer `404 PROJECT_NOT_FOUND`; a duplicate answers
850
+ * `409 MEMBER_EXISTS`. */
851
+ async joinProject(orgId, projectId) {
852
+ return this.request("POST", ENDPOINTS.PROJECT_JOIN(orgId, projectId));
853
+ }
854
+ /** Restricted-tier admission petition. A pending duplicate answers
855
+ * `409 REQUEST_EXISTS`; membership answers `409 MEMBER_EXISTS`. */
856
+ async createProjectJoinRequest(orgId, projectId) {
857
+ return this.request("POST", ENDPOINTS.PROJECT_JOIN_REQUESTS(orgId, projectId));
858
+ }
859
+ /** Pending petitions for one project — manager standing required. */
860
+ async listProjectJoinRequests(orgId, projectId) {
861
+ const res = await this.request("GET", ENDPOINTS.PROJECT_JOIN_REQUESTS(orgId, projectId));
862
+ return res.data;
863
+ }
864
+ /** Withdraws the caller's own pending petition. */
865
+ async cancelProjectJoinRequest(orgId, projectId) {
866
+ return this.request("DELETE", ENDPOINTS.PROJECT_JOIN_REQUESTS(orgId, projectId));
867
+ }
868
+ /**
869
+ * Adds one subject (user ID or team ID) to the roster. Manager-only,
870
+ * create-only: an existing row answers `409 MEMBER_EXISTS` — change roles
871
+ * through updateProjectMember instead.
872
+ */
873
+ async addProjectMember(orgId, projectId, req) {
874
+ return this.request("POST", ENDPOINTS.PROJECT_MEMBERS(orgId, projectId), req);
875
+ }
876
+ /** Sets one roster entry's role. Demoting the last manager answers `400 LAST_MANAGER`. */
877
+ async updateProjectMember(orgId, projectId, subject, req) {
878
+ return this.request("PATCH", ENDPOINTS.PROJECT_MEMBER(orgId, projectId, subject), req);
879
+ }
880
+ /** Removes one roster entry. Removing the last manager answers `400 LAST_MANAGER`. */
881
+ async removeProjectMember(orgId, projectId, subject) {
882
+ return this.request("DELETE", ENDPOINTS.PROJECT_MEMBER(orgId, projectId, subject));
883
+ }
817
884
  };
818
885
  }
819
886
  });
@@ -1260,8 +1327,9 @@ var init_client = __esm({
1260
1327
  return this.request("POST", ENDPOINTS.TEAMS(orgId), req);
1261
1328
  }
1262
1329
  /**
1263
- * Renames a team. The slug cannot be changed — wiki ACL rows reference it as
1264
- * `@slug`, so the server answers 400 SLUG_IMMUTABLE if one is sent.
1330
+ * Renames a team. Renaming is an ordinary edit: ACL rows reference teams by
1331
+ * ID. Names are org-unique (case-insensitive); a duplicate answers 409
1332
+ * NAME_TAKEN.
1265
1333
  */
1266
1334
  async updateTeam(orgId, teamId, req) {
1267
1335
  return this.request("PATCH", ENDPOINTS.TEAM(orgId, teamId), req);
@@ -2890,15 +2958,18 @@ var init_client = __esm({
2890
2958
  /**
2891
2959
  * Read a clip's per-org agent exec access. Org-member readable (agents
2892
2960
  * included, so a denied agent can learn why exec answered
2893
- * `CLIP_AGENT_NOT_ALLOWED`).
2961
+ * `CLIP_AGENT_NOT_ALLOWED` / `CLIP_AGENT_CONNECTION_NOT_ALLOWED`).
2894
2962
  */
2895
2963
  async getClipAgentExecAccess(orgId, clipId) {
2896
2964
  return this.request("GET", ENDPOINTS.ORG_CLIP_EXEC_ACCESS(orgId, clipId));
2897
2965
  }
2898
2966
  /**
2899
2967
  * Replace a clip's per-org agent exec access. Human-only (agent principals
2900
- * get 403); under `all_agents` the `agent_ids` must be empty. Every granted
2901
- * id must be an active agent of this org (else `400 INVALID_INPUT`).
2968
+ * get 403); under `all_agents` both lists must be empty; pass either
2969
+ * `agent_ids` (legacy flat form every agent gets `connection_scope: 'all'`)
2970
+ * or `grants` (connection-scoped), never both. Every granted id must be an
2971
+ * active agent of this org, and every `connection_ids` entry a connection of
2972
+ * THIS clip in this org (else `400 INVALID_INPUT`).
2902
2973
  */
2903
2974
  async putClipAgentExecAccess(orgId, clipId, access) {
2904
2975
  return this.request("PUT", ENDPOINTS.ORG_CLIP_EXEC_ACCESS(orgId, clipId), access);
@@ -2984,6 +3055,41 @@ var init_client = __esm({
2984
3055
  headers: expectedVersion ? { "If-Match": `"proxy-${expectedVersion}"` } : void 0
2985
3056
  });
2986
3057
  }
3058
+ /**
3059
+ * Read a hosted Cloud Profile's one-shot cookie-seed status (manager-only:
3060
+ * hosted human maintainer or org admin). Sanitized — cookie VALUES never come
3061
+ * back, only `cookie_count` and the distinct target `domains`. `can_mutate` /
3062
+ * `lease_status` are the authoritative idle gate. Typed errors: `EDGE_NOT_HOSTED`
3063
+ * (BYOC device), `NOT_FOUND` (unknown profile).
3064
+ */
3065
+ async getEdgeProfileCookieSeed(orgId, edgeId, profileName) {
3066
+ return this.request("GET", ENDPOINTS.ORG_EDGE_PROFILE_COOKIES(orgId, edgeId, profileName));
3067
+ }
3068
+ /**
3069
+ * Set/replace the profile's one-shot cookie seed (the full normalized cookie
3070
+ * array every time) — IDLE ONLY: while the profile's hosted browser is running
3071
+ * the server answers 409 `EDGE_PROFILE_IN_USE`; close the viewer, wait for idle
3072
+ * scale-to-zero, and retry. The next cold start injects the cookies into the
3073
+ * profile partition and consumes the seed. Other typed errors:
3074
+ * `EDGE_COOKIE_SEED_STALE` (409 — expectedVersion lost a tab race, sent as the
3075
+ * `cookieseed-<version>` If-Match), `EDGE_DELETING` (409), and
3076
+ * `SECRETBOX_UNCONFIGURED` (503 — server cannot store cookies safely).
3077
+ */
3078
+ async setEdgeProfileCookieSeed(orgId, edgeId, profileName, req, expectedVersion) {
3079
+ return this.request("PUT", ENDPOINTS.ORG_EDGE_PROFILE_COOKIES(orgId, edgeId, profileName), req, void 0, false, {
3080
+ headers: expectedVersion ? { "If-Match": `"cookieseed-${expectedVersion}"` } : void 0
3081
+ });
3082
+ }
3083
+ /**
3084
+ * Clear the pending cookie seed (does NOT sign the profile out — cookies
3085
+ * already injected into the partition stay). Idle-only like set — 409
3086
+ * `EDGE_PROFILE_IN_USE` while the browser is live.
3087
+ */
3088
+ async clearEdgeProfileCookieSeed(orgId, edgeId, profileName, expectedVersion) {
3089
+ return this.request("DELETE", ENDPOINTS.ORG_EDGE_PROFILE_COOKIES(orgId, edgeId, profileName), void 0, void 0, false, {
3090
+ headers: expectedVersion ? { "If-Match": `"cookieseed-${expectedVersion}"` } : void 0
3091
+ });
3092
+ }
2987
3093
  /**
2988
3094
  * Execute a registry clip command on an Edge device.
2989
3095
  *
@@ -3551,6 +3657,13 @@ var init_gateway_lane_flow = __esm({
3551
3657
  }
3552
3658
  });
3553
3659
 
3660
+ // ts/agent-core/dist/dispatch-inactivity-deadline.js
3661
+ var init_dispatch_inactivity_deadline = __esm({
3662
+ "ts/agent-core/dist/dispatch-inactivity-deadline.js"() {
3663
+ "use strict";
3664
+ }
3665
+ });
3666
+
3554
3667
  // ts/agent-core/dist/routing.js
3555
3668
  var init_routing = __esm({
3556
3669
  "ts/agent-core/dist/routing.js"() {
@@ -30157,6 +30270,7 @@ var init_gateway_base = __esm({
30157
30270
  init_dispatch_adapter();
30158
30271
  init_gateway_lane_flow();
30159
30272
  init_lane_ledger();
30273
+ init_dispatch_inactivity_deadline();
30160
30274
  init_routing();
30161
30275
  init_redact();
30162
30276
  init_step_persister();
@@ -55014,6 +55128,13 @@ var init_platform_config = __esm({
55014
55128
  }
55015
55129
  });
55016
55130
 
55131
+ // ts/agent-core/dist/generated/codex-message-delivery.js
55132
+ var init_codex_message_delivery = __esm({
55133
+ "ts/agent-core/dist/generated/codex-message-delivery.js"() {
55134
+ "use strict";
55135
+ }
55136
+ });
55137
+
55017
55138
  // ts/agent-core/dist/skills/parall-platform.js
55018
55139
  var init_parall_platform = __esm({
55019
55140
  "ts/agent-core/dist/skills/parall-platform.js"() {
@@ -55088,8 +55209,10 @@ var init_skills = __esm({
55088
55209
  var init_platform_instructions2 = __esm({
55089
55210
  "ts/agent-core/dist/platform-instructions.js"() {
55090
55211
  "use strict";
55212
+ init_codex_message_delivery();
55091
55213
  init_platform_instructions();
55092
55214
  init_skills();
55215
+ init_codex_message_delivery();
55093
55216
  init_platform_instructions();
55094
55217
  }
55095
55218
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parall/daemon",
3
- "version": "1.55.0",
3
+ "version": "1.55.2",
4
4
  "description": "Parall local agent runtime — daemon supervisor + bridge runtimes, bundled as standalone JS files",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -33,11 +33,11 @@
33
33
  "@aws-sdk/client-s3": "3.984.0",
34
34
  "@pinixai/bb-browser-pro": "0.15.0",
35
35
  "ws": "^8.18.0",
36
- "@parall/agent-core": "1.55.0",
37
- "@parall/sdk": "1.55.0",
38
- "@parall/claude-agent": "1.55.0",
39
- "@parall/codex-agent": "1.55.0",
40
- "@parall/openclaw-agent": "1.55.0"
36
+ "@parall/agent-core": "1.55.2",
37
+ "@parall/claude-agent": "1.55.2",
38
+ "@parall/openclaw-agent": "1.55.2",
39
+ "@parall/sdk": "1.55.2",
40
+ "@parall/codex-agent": "1.55.2"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^22.0.0",