@parall/parall 1.46.0 → 1.47.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/dist/index.bundle.mjs +70 -4
- package/package.json +3 -3
package/dist/index.bundle.mjs
CHANGED
|
@@ -51482,10 +51482,17 @@ var ENDPOINTS = {
|
|
|
51482
51482
|
CHANNEL_CONVERSATION_SESSION: (orgId, conversationId) => `${API_BASE}/orgs/${orgId}/channel-conversations/${conversationId}/session`,
|
|
51483
51483
|
CHANNEL_MESSAGE: (orgId, messageId) => `${API_BASE}/orgs/${orgId}/channel-messages/${messageId}`,
|
|
51484
51484
|
CHANNEL_PROVISIONING: (orgId) => `${API_BASE}/orgs/${orgId}/channel-provisioning`,
|
|
51485
|
+
CHANNEL_SLACK_MANIFEST_LINK: (orgId) => `${API_BASE}/orgs/${orgId}/channel-provisioning/slack/manifest-link`,
|
|
51485
51486
|
CHANNEL_PROVISIONING_SESSION: (orgId, sessionId) => `${API_BASE}/orgs/${orgId}/channel-provisioning/${sessionId}`,
|
|
51486
51487
|
CHANNEL_PROVISIONING_CANCEL: (orgId, sessionId) => `${API_BASE}/orgs/${orgId}/channel-provisioning/${sessionId}/cancel`,
|
|
51487
51488
|
// Tier-B platform verb (agent-only): send one message as the bound bot.
|
|
51488
51489
|
CHANNEL_SEND: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/channel-send`,
|
|
51490
|
+
// Tier-B read verbs (agent-only): workspace visibility as the bot sees it.
|
|
51491
|
+
SLACK_CHANNELS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/channels`,
|
|
51492
|
+
SLACK_USERS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/users`,
|
|
51493
|
+
SLACK_HISTORY: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/history`,
|
|
51494
|
+
SLACK_MEMBERS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/members`,
|
|
51495
|
+
SLACK_STATUS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/status`,
|
|
51489
51496
|
// Invitations (org-scoped, admin)
|
|
51490
51497
|
ORG_INVITATIONS: (orgId) => `${API_BASE}/orgs/${orgId}/invitations`,
|
|
51491
51498
|
ORG_INVITATION: (orgId, invId) => `${API_BASE}/orgs/${orgId}/invitations/${invId}`,
|
|
@@ -51580,6 +51587,7 @@ var ENDPOINTS = {
|
|
|
51580
51587
|
ORG_UNREAD: (orgId) => `${API_BASE}/orgs/${orgId}/unread`,
|
|
51581
51588
|
CHAT_READ: (orgId, chatId) => `${API_BASE}/orgs/${orgId}/chats/${chatId}/read`,
|
|
51582
51589
|
THREAD_UNREAD: (orgId, chatId, threadRootId) => `${API_BASE}/orgs/${orgId}/chats/${chatId}/threads/${threadRootId}/unread`,
|
|
51590
|
+
THREAD_READ: (orgId, chatId, threadRootId) => `${API_BASE}/orgs/${orgId}/chats/${chatId}/threads/${threadRootId}/read`,
|
|
51583
51591
|
// References (org-scoped)
|
|
51584
51592
|
REFS_RESOLVE: (orgId) => `${API_BASE}/orgs/${orgId}/refs/resolve`,
|
|
51585
51593
|
REFS_BACKLINKS: (orgId) => `${API_BASE}/orgs/${orgId}/refs/backlinks`,
|
|
@@ -52670,10 +52678,16 @@ var ParallClient = class _ParallClient {
|
|
|
52670
52678
|
async resizeMachine(orgId, machineId, spec) {
|
|
52671
52679
|
return this.request("PATCH", ENDPOINTS.MACHINE_SPEC(orgId, machineId), spec);
|
|
52672
52680
|
}
|
|
52673
|
-
/**
|
|
52681
|
+
/** @deprecated Retired server-side (daemon-control-authorization §4.2):
|
|
52682
|
+
* daemons update autonomously (CDN poll + platform release signal). The
|
|
52683
|
+
* endpoint now answers 409 LOCAL_UPDATE_NOT_SUPPORTED unconditionally. */
|
|
52674
52684
|
async requestMachineUpdate(orgId, machineId, mandatory = false) {
|
|
52675
52685
|
await this.request("POST", ENDPOINTS.MACHINE_REQUEST_UPDATE(orgId, machineId), { mandatory });
|
|
52676
52686
|
}
|
|
52687
|
+
/** @deprecated Retired server-side (daemon-control-authorization §4.2):
|
|
52688
|
+
* remote filesystem browse of a member's machine was remote device access.
|
|
52689
|
+
* The endpoint now answers 409 LOCAL_BROWSE_NOT_SUPPORTED unconditionally;
|
|
52690
|
+
* workspace paths are typed in (or picked on the machine's own Desktop). */
|
|
52677
52691
|
async browseMachineFilesystem(orgId, machineId, path9) {
|
|
52678
52692
|
return this.request("POST", ENDPOINTS.MACHINE_BROWSE(orgId, machineId), { path: path9 }, void 0, false, { timeoutMs: 15e3 });
|
|
52679
52693
|
}
|
|
@@ -52698,6 +52712,14 @@ var ParallClient = class _ParallClient {
|
|
|
52698
52712
|
async getThreadUnread(orgId, chatId, threadRootId) {
|
|
52699
52713
|
return this.request("GET", ENDPOINTS.THREAD_UNREAD(orgId, chatId, threadRootId));
|
|
52700
52714
|
}
|
|
52715
|
+
/** Advance the per-thread read cursor (forward-only). The server auto-clears
|
|
52716
|
+
* thread-scoped inbox items (thread_reply + in-thread mentions) the cursor
|
|
52717
|
+
* now covers. */
|
|
52718
|
+
async markThreadRead(orgId, chatId, threadRootId, messageId) {
|
|
52719
|
+
return this.request("POST", ENDPOINTS.THREAD_READ(orgId, chatId, threadRootId), {
|
|
52720
|
+
message_id: messageId
|
|
52721
|
+
});
|
|
52722
|
+
}
|
|
52701
52723
|
// ---- Inbox ----
|
|
52702
52724
|
async getInbox(orgId, params) {
|
|
52703
52725
|
return this.request("GET", ENDPOINTS.INBOX(orgId), void 0, params);
|
|
@@ -52721,9 +52743,12 @@ var ParallClient = class _ParallClient {
|
|
|
52721
52743
|
async archiveAllInbox(orgId) {
|
|
52722
52744
|
return this.request("POST", ENDPOINTS.INBOX_ARCHIVE_ALL(orgId));
|
|
52723
52745
|
}
|
|
52724
|
-
/** Mark
|
|
52725
|
-
|
|
52726
|
-
|
|
52746
|
+
/** Mark inbox items as read by their source (source_type + source_id) or by
|
|
52747
|
+
* group_key, rather than by inbox item ID. The group_key form clears a whole
|
|
52748
|
+
* group at once (e.g. `task:{taskId}` — task_assign/task_update/task_comment
|
|
52749
|
+
* share it), used by the task detail view's auto-ack on open. */
|
|
52750
|
+
async ackInbox(orgId, target) {
|
|
52751
|
+
return this.request("POST", ENDPOINTS.INBOX_ACK(orgId), target);
|
|
52727
52752
|
}
|
|
52728
52753
|
async deleteInboxItem(orgId, id) {
|
|
52729
52754
|
return this.request("DELETE", ENDPOINTS.INBOX_ITEM(orgId, id));
|
|
@@ -53005,6 +53030,15 @@ var ParallClient = class _ParallClient {
|
|
|
53005
53030
|
async initiateChannelProvisioning(orgId, input) {
|
|
53006
53031
|
return this.request("POST", ENDPOINTS.CHANNEL_PROVISIONING(orgId), input);
|
|
53007
53032
|
}
|
|
53033
|
+
/**
|
|
53034
|
+
* Mint a pending slack connection + api.slack.com manifest-prefill link
|
|
53035
|
+
* (guided manual path). Activate the returned connection_id with
|
|
53036
|
+
* deliverChannelCredentials once the user brings back the bot token +
|
|
53037
|
+
* signing secret.
|
|
53038
|
+
*/
|
|
53039
|
+
async createSlackManifestLink(orgId, input) {
|
|
53040
|
+
return this.request("POST", ENDPOINTS.CHANNEL_SLACK_MANIFEST_LINK(orgId), input);
|
|
53041
|
+
}
|
|
53008
53042
|
/**
|
|
53009
53043
|
* Lazy status poll — server-side this may forward one provider poll, so
|
|
53010
53044
|
* call it at the session's `poll_interval_seconds` cadence, not faster.
|
|
@@ -53023,6 +53057,38 @@ var ParallClient = class _ParallClient {
|
|
|
53023
53057
|
async sendChannelMessage(orgId, input) {
|
|
53024
53058
|
return this.request("POST", ENDPOINTS.CHANNEL_SEND(orgId), input);
|
|
53025
53059
|
}
|
|
53060
|
+
slackReadQuery(base, query, extra) {
|
|
53061
|
+
const params = new URLSearchParams();
|
|
53062
|
+
if (query?.cursor)
|
|
53063
|
+
params.set("cursor", query.cursor);
|
|
53064
|
+
if (query?.limit)
|
|
53065
|
+
params.set("limit", String(query.limit));
|
|
53066
|
+
for (const [k, v] of Object.entries(extra ?? {}))
|
|
53067
|
+
params.set(k, v);
|
|
53068
|
+
const qs = params.toString();
|
|
53069
|
+
return qs ? `${base}?${qs}` : base;
|
|
53070
|
+
}
|
|
53071
|
+
/**
|
|
53072
|
+
* Tier-B read verbs (agent-only): workspace visibility as the bot sees
|
|
53073
|
+
* it. Same live gate as the send verb; authorization beyond it is the
|
|
53074
|
+
* bot's own Slack permissions.
|
|
53075
|
+
*/
|
|
53076
|
+
async listSlackChannels(orgId, query) {
|
|
53077
|
+
return this.request("GET", this.slackReadQuery(ENDPOINTS.SLACK_CHANNELS(orgId), query));
|
|
53078
|
+
}
|
|
53079
|
+
async listSlackUsers(orgId, query) {
|
|
53080
|
+
return this.request("GET", this.slackReadQuery(ENDPOINTS.SLACK_USERS(orgId), query));
|
|
53081
|
+
}
|
|
53082
|
+
async slackHistory(orgId, conversationId, query) {
|
|
53083
|
+
return this.request("GET", this.slackReadQuery(ENDPOINTS.SLACK_HISTORY(orgId), query, { conversation: conversationId }));
|
|
53084
|
+
}
|
|
53085
|
+
async slackMembers(orgId, conversationId, query) {
|
|
53086
|
+
return this.request("GET", this.slackReadQuery(ENDPOINTS.SLACK_MEMBERS(orgId), query, { conversation: conversationId }));
|
|
53087
|
+
}
|
|
53088
|
+
/** Set/clear the Agents-pane "typing…" indicator (best-effort cosmetic). */
|
|
53089
|
+
async setSlackStatus(orgId, input) {
|
|
53090
|
+
await this.request("POST", ENDPOINTS.SLACK_STATUS(orgId), input);
|
|
53091
|
+
}
|
|
53026
53092
|
async listChannelConversations(orgId, connectionId) {
|
|
53027
53093
|
return this.request("GET", ENDPOINTS.CHANNEL_CONNECTION_CONVERSATIONS(orgId, connectionId));
|
|
53028
53094
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@parall/parall",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.47.0",
|
|
4
4
|
"description": "OpenClaw channel plugin for Parall IM",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"openclaw.plugin.json"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@parall/
|
|
20
|
-
"@parall/
|
|
19
|
+
"@parall/agent-core": "1.47.0",
|
|
20
|
+
"@parall/sdk": "1.47.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/node": "^22.0.0",
|