@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.
@@ -353,6 +353,8 @@ var init_constants = __esm({
353
353
  SLACK_HISTORY: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/history`,
354
354
  SLACK_MEMBERS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/members`,
355
355
  SLACK_STATUS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/status`,
356
+ // WeChat tier-B read verb (agent-only; internal research preview).
357
+ WECHAT_CONTACTS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/wechat/contacts`,
356
358
  // Invitations (org-scoped, admin)
357
359
  ORG_INVITATIONS: (orgId) => `${API_BASE}/orgs/${orgId}/invitations`,
358
360
  ORG_INVITATION: (orgId, invId) => `${API_BASE}/orgs/${orgId}/invitations/${invId}`,
@@ -514,8 +516,6 @@ var init_constants = __esm({
514
516
  // Live viewer command — on api-server (API_BASE), not clip-service: it rides
515
517
  // the machine control-plane request/reply bridge that lives in api-server.
516
518
  BROWSER_PROFILE_VIEWER_COMMAND: (orgId, profileId) => `${API_BASE}/orgs/${orgId}/browser-profiles/${profileId}/viewer/command`,
517
- // Clip registry (global, served by clip-service → Pinix Hub proxy)
518
- CLIP_REGISTRY: () => `${CLIP_BASE}/registry/clips`,
519
519
  // Edge device endpoints
520
520
  ORG_EDGE: (orgId) => `/api/v1/orgs/${orgId}/edge`,
521
521
  ORG_EDGE_DEVICES: (orgId) => `/api/v1/orgs/${orgId}/edge/devices`,
@@ -532,15 +532,20 @@ var init_constants = __esm({
532
532
  ORG_EDGE_VIEWER_COMMAND: (orgId, edgeId) => `/api/v1/orgs/${orgId}/edge/${edgeId}/viewer/command`,
533
533
  CLIP_CONNECTIONS: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/connections`,
534
534
  CLIP_CONNECTION: (orgId, connId) => `/api/v1/orgs/${orgId}/clip-connections/${connId}`,
535
- // Clip registry (v3, org-scoped, served by api-server — `crg_` entries; the
536
- // Pinix Hub catalog proxy above is a different, id-less surface)
535
+ // Clip registry (v3, org-scoped, served by api-server — `crg_` entries)
537
536
  ORG_CLIP_REGISTRY: (orgId) => `/api/v1/orgs/${orgId}/clip-registry`,
537
+ ORG_CLIP_REGISTRY_CLIP: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}`,
538
+ ORG_CLIP_REGISTRY_PUBLISH: (orgId) => `/api/v1/orgs/${orgId}/clip-registry/publish`,
538
539
  ORG_CLIP_INSTALL: (orgId) => `/api/v1/orgs/${orgId}/clips/install`,
539
540
  ORG_CLIPS_INSTALLED: (orgId) => `/api/v1/orgs/${orgId}/clips/installed`,
541
+ ORG_CLIP_UNINSTALL: (orgId, clipId) => `/api/v1/orgs/${orgId}/clips/${clipId}/uninstall`,
542
+ // Per-org agent exec access for one clip (default all agents; PUT human-only)
543
+ ORG_CLIP_EXEC_ACCESS: (orgId, clipId) => `/api/v1/orgs/${orgId}/clips/${clipId}/exec-access`,
540
544
  // MCP clip server config (cap:clip-mcp; publisher-org only — cross-org gets
541
545
  // 403 MCP_CROSS_ORG_DISABLED on the whole family, reads included)
542
546
  ORG_CLIP_MCP_CONFIG: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-config`,
543
- ORG_CLIP_MCP_TOOLS_REFRESH: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-config/tools/refresh`
547
+ ORG_CLIP_MCP_TOOLS_REFRESH: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-config/tools/refresh`,
548
+ ORG_CLIP_MCP_OAUTH_DISCONNECT: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-config/oauth/disconnect`
544
549
  };
545
550
  WS_EVENTS = {
546
551
  // Client -> Server
@@ -2081,6 +2086,14 @@ var init_client = __esm({
2081
2086
  async setSlackStatus(orgId, input) {
2082
2087
  await this.request("POST", ENDPOINTS.SLACK_STATUS(orgId), input);
2083
2088
  }
2089
+ /**
2090
+ * WeChat tier-B read verb (agent-only; internal research preview): the
2091
+ * account's address book — friend wxids, saved group room ids, followed
2092
+ * official accounts. Same live gate as the send verb.
2093
+ */
2094
+ async listWechatContacts(orgId) {
2095
+ return this.request("GET", ENDPOINTS.WECHAT_CONTACTS(orgId));
2096
+ }
2084
2097
  async listChannelConversations(orgId, connectionId) {
2085
2098
  return this.request("GET", ENDPOINTS.CHANNEL_CONNECTION_CONVERSATIONS(orgId, connectionId));
2086
2099
  }
@@ -2619,17 +2632,11 @@ var init_client = __esm({
2619
2632
  async revokeBrowserProfileConsent(orgId, profileId, clipId) {
2620
2633
  await this.request("DELETE", ENDPOINTS.BROWSER_PROFILE_CONSENT(orgId, profileId, clipId));
2621
2634
  }
2622
- async listRegistryClips(q) {
2623
- const url = ENDPOINTS.CLIP_REGISTRY() + (q ? `?q=${encodeURIComponent(q)}` : "");
2624
- const resp = await this.request("GET", url);
2625
- return resp.data;
2626
- }
2627
2635
  // ---- Clip registry (v3, api-server org registry — `crg_` entries) ----
2628
2636
  /**
2629
2637
  * List registry clips visible to the org: its own plus public+approved
2630
2638
  * cross-org entries. This is the surface `installRegistryClip` and clip
2631
- * connections operate on — NOT the Pinix catalog proxy
2632
- * ({@link listRegistryClips}), whose entries carry no `crg_` id.
2639
+ * connections operate on.
2633
2640
  */
2634
2641
  async listOrgRegistryClips(orgId) {
2635
2642
  const resp = await this.request("GET", `${ENDPOINTS.ORG_CLIP_REGISTRY(orgId)}?limit=100`);
@@ -2644,11 +2651,58 @@ var init_client = __esm({
2644
2651
  async installRegistryClip(orgId, clipId) {
2645
2652
  return this.request("POST", ENDPOINTS.ORG_CLIP_INSTALL(orgId), { clip_id: clipId });
2646
2653
  }
2654
+ /**
2655
+ * Remove an org's install of a registry clip. Keyed by the REGISTRY id
2656
+ * (`crg_`), the same id {@link installRegistryClip} takes — the v2
2657
+ * `deleteClip` operates on a different table and cannot reach these.
2658
+ */
2659
+ async uninstallRegistryClip(orgId, clipId) {
2660
+ await this.request("DELETE", ENDPOINTS.ORG_CLIP_UNINSTALL(orgId, clipId));
2661
+ }
2647
2662
  /** List the org's installed registry clips (full entries). */
2648
2663
  async listInstalledRegistryClips(orgId) {
2649
2664
  const resp = await this.request("GET", ENDPOINTS.ORG_CLIPS_INSTALLED(orgId));
2650
2665
  return resp ?? [];
2651
2666
  }
2667
+ /**
2668
+ * Fetch one registry clip by its `crg_` id. For a clip OWNED by the calling
2669
+ * org the entry additionally carries `review_status`/`review_note` — the
2670
+ * state of the latest submitted version and the reviewer's rejection
2671
+ * feedback. This is the polling surface for "did platform review approve my
2672
+ * public publish yet"; cross-org callers see only public+approved entries
2673
+ * and never any review-state fields.
2674
+ */
2675
+ async getRegistryClip(orgId, clipId) {
2676
+ return this.request("GET", ENDPOINTS.ORG_CLIP_REGISTRY_CLIP(orgId, clipId));
2677
+ }
2678
+ /**
2679
+ * Publish (create, or author-only update) a clip in the org registry,
2680
+ * replacing its whole file set. See {@link PublishRegistryClipRequest} for
2681
+ * the visibility/review semantics; the returned entry carries
2682
+ * `review_status` when a public publish queued a review submission — poll
2683
+ * {@link getRegistryClip} for the outcome.
2684
+ */
2685
+ async publishRegistryClip(orgId, req) {
2686
+ return this.request("POST", ENDPOINTS.ORG_CLIP_REGISTRY_PUBLISH(orgId), req, void 0, false, {
2687
+ timeoutMs: 6e4
2688
+ });
2689
+ }
2690
+ /**
2691
+ * Read a clip's per-org agent exec access. Org-member readable (agents
2692
+ * included, so a denied agent can learn why exec answered
2693
+ * `CLIP_AGENT_NOT_ALLOWED`).
2694
+ */
2695
+ async getClipAgentExecAccess(orgId, clipId) {
2696
+ return this.request("GET", ENDPOINTS.ORG_CLIP_EXEC_ACCESS(orgId, clipId));
2697
+ }
2698
+ /**
2699
+ * Replace a clip's per-org agent exec access. Human-only (agent principals
2700
+ * get 403); under `all_agents` the `agent_ids` must be empty. Every granted
2701
+ * id must be an active agent of this org (else `400 INVALID_INPUT`).
2702
+ */
2703
+ async putClipAgentExecAccess(orgId, clipId, access) {
2704
+ return this.request("PUT", ENDPOINTS.ORG_CLIP_EXEC_ACCESS(orgId, clipId), access);
2705
+ }
2652
2706
  // ---- Edge devices ----
2653
2707
  async listEdgeDevices(orgId) {
2654
2708
  return this.request("GET", ENDPOINTS.ORG_EDGE_DEVICES(orgId));
@@ -54795,6 +54849,13 @@ var init_parall_clips = __esm({
54795
54849
  }
54796
54850
  });
54797
54851
 
54852
+ // ts/agent-core/dist/skills/parall-clip-authoring.js
54853
+ var init_parall_clip_authoring = __esm({
54854
+ "ts/agent-core/dist/skills/parall-clip-authoring.js"() {
54855
+ "use strict";
54856
+ }
54857
+ });
54858
+
54798
54859
  // ts/agent-core/dist/skills/index.js
54799
54860
  var init_skills = __esm({
54800
54861
  "ts/agent-core/dist/skills/index.js"() {
@@ -54805,12 +54866,14 @@ var init_skills = __esm({
54805
54866
  init_parall_schedules();
54806
54867
  init_parall_external_triggers();
54807
54868
  init_parall_clips();
54869
+ init_parall_clip_authoring();
54808
54870
  init_parall_platform();
54809
54871
  init_parall_tasks();
54810
54872
  init_parall_wiki();
54811
54873
  init_parall_schedules();
54812
54874
  init_parall_external_triggers();
54813
54875
  init_parall_clips();
54876
+ init_parall_clip_authoring();
54814
54877
  }
54815
54878
  });
54816
54879
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parall/daemon",
3
- "version": "1.52.1",
3
+ "version": "1.53.0",
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/sdk": "1.52.1",
37
- "@parall/agent-core": "1.52.1",
38
- "@parall/claude-agent": "1.52.1",
39
- "@parall/codex-agent": "1.52.1",
40
- "@parall/openclaw-agent": "1.52.1"
36
+ "@parall/agent-core": "1.53.0",
37
+ "@parall/claude-agent": "1.53.0",
38
+ "@parall/codex-agent": "1.53.0",
39
+ "@parall/openclaw-agent": "1.53.0",
40
+ "@parall/sdk": "1.53.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^22.0.0",