@parall/sdk 1.54.0 → 1.55.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/dist/client.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { browserViewerRequestOptions } from './browser-viewer.js';
2
2
  import { API_BASE, ENDPOINTS, WIKI_BASE } from './constants.js';
3
- export class ParallClient {
3
+ import { TaskLabelClient } from './task-label-client.js';
4
+ export class ParallClient extends TaskLabelClient {
4
5
  baseUrl;
5
6
  wikiBaseUrl;
6
7
  token;
@@ -66,6 +67,7 @@ export class ParallClient {
66
67
  return headers;
67
68
  }
68
69
  constructor(options = {}) {
70
+ super();
69
71
  this.baseUrl = options.baseUrl ?? '';
70
72
  // Defaults to baseUrl so existing single-origin consumers (web, desktop,
71
73
  // hosted agents behind one gateway) are unchanged; only split api/wiki
@@ -383,6 +385,45 @@ export class ParallClient {
383
385
  const res = await this.request('GET', ENDPOINTS.TEAMS(orgId));
384
386
  return res.data;
385
387
  }
388
+ async getTeam(orgId, teamId) {
389
+ return this.request('GET', ENDPOINTS.TEAM(orgId, teamId));
390
+ }
391
+ /** Creating, renaming and deleting a team are org-admin actions. */
392
+ async createTeam(orgId, req) {
393
+ return this.request('POST', ENDPOINTS.TEAMS(orgId), req);
394
+ }
395
+ /**
396
+ * Renames a team. Renaming is an ordinary edit: ACL rows reference teams by
397
+ * ID. Names are org-unique (case-insensitive); a duplicate answers 409
398
+ * NAME_TAKEN.
399
+ */
400
+ async updateTeam(orgId, teamId, req) {
401
+ return this.request('PATCH', ENDPOINTS.TEAM(orgId, teamId), req);
402
+ }
403
+ async deleteTeam(orgId, teamId) {
404
+ return this.request('DELETE', ENDPOINTS.TEAM(orgId, teamId));
405
+ }
406
+ /** Roster with display info; members who left the org are already excluded. */
407
+ async getTeamMembers(orgId, teamId) {
408
+ const res = await this.request('GET', ENDPOINTS.TEAM_MEMBERS(orgId, teamId));
409
+ return res.data;
410
+ }
411
+ /**
412
+ * Adds an org member (human or agent) to a team. Org admins and that team's
413
+ * managers may add ordinary members; adding straight to `manager` is an
414
+ * org-admin action.
415
+ */
416
+ async addTeamMember(orgId, teamId, req) {
417
+ return this.request('POST', ENDPOINTS.TEAM_MEMBERS(orgId, teamId), req);
418
+ }
419
+ /** Appointing or demoting a manager is org-admin only. */
420
+ async updateTeamMember(orgId, teamId, userId, req) {
421
+ return this.request('PATCH', ENDPOINTS.TEAM_MEMBER(orgId, teamId, userId), req);
422
+ }
423
+ /** A team manager may remove ordinary members; removing a peer manager is org-admin only. */
424
+ async removeTeamMember(orgId, teamId, userId) {
425
+ return this.request('DELETE', ENDPOINTS.TEAM_MEMBER(orgId, teamId, userId));
426
+ }
386
427
  async getOnlineMembers(orgId) {
387
428
  const res = await this.request('GET', ENDPOINTS.ORG_MEMBERS_ONLINE(orgId));
388
429
  return res.user_ids ?? [];
@@ -1191,117 +1232,6 @@ export class ParallClient {
1191
1232
  }
1192
1233
  return res.json();
1193
1234
  }
1194
- // ---- Tasks (org-scoped) ----
1195
- async createTask(orgId, data) {
1196
- return this.request('POST', ENDPOINTS.TASKS(orgId), data);
1197
- }
1198
- async getTasks(orgId, params) {
1199
- return this.request('GET', ENDPOINTS.TASKS(orgId), undefined, params);
1200
- }
1201
- async getTask(orgId, taskId) {
1202
- return this.request('GET', ENDPOINTS.TASK(orgId, taskId));
1203
- }
1204
- async updateTask(orgId, taskId, data) {
1205
- return this.request('PATCH', ENDPOINTS.TASK(orgId, taskId), data);
1206
- }
1207
- async deleteTask(orgId, taskId, opts) {
1208
- return this.request('DELETE', ENDPOINTS.TASK(orgId, taskId), undefined, opts?.force ? { force: 'true' } : undefined);
1209
- }
1210
- async archiveTask(orgId, taskId) {
1211
- return this.request('POST', ENDPOINTS.TASK_ARCHIVE(orgId, taskId));
1212
- }
1213
- async restoreTask(orgId, taskId) {
1214
- return this.request('POST', ENDPOINTS.TASK_RESTORE(orgId, taskId));
1215
- }
1216
- async watchTask(orgId, taskId) {
1217
- return this.request('POST', ENDPOINTS.TASK_WATCH(orgId, taskId));
1218
- }
1219
- async unwatchTask(orgId, taskId) {
1220
- return this.request('DELETE', ENDPOINTS.TASK_WATCH(orgId, taskId));
1221
- }
1222
- async getTaskWatchers(orgId, taskId) {
1223
- const res = await this.request('GET', ENDPOINTS.TASK_WATCHERS(orgId, taskId));
1224
- return res.data;
1225
- }
1226
- async subscribeTaskMember(orgId, taskId, userId) {
1227
- return this.request('PUT', ENDPOINTS.TASK_SUBSCRIBER(orgId, taskId, userId));
1228
- }
1229
- async unsubscribeTaskMember(orgId, taskId, userId) {
1230
- return this.request('DELETE', ENDPOINTS.TASK_SUBSCRIBER(orgId, taskId, userId));
1231
- }
1232
- async watchThread(threadRootId) {
1233
- return this.request('POST', ENDPOINTS.MESSAGE_WATCH(threadRootId));
1234
- }
1235
- async unwatchThread(threadRootId) {
1236
- return this.request('DELETE', ENDPOINTS.MESSAGE_WATCH(threadRootId));
1237
- }
1238
- async getThreadWatchers(threadRootId) {
1239
- const res = await this.request('GET', ENDPOINTS.MESSAGE_WATCHERS(threadRootId));
1240
- return res.data;
1241
- }
1242
- async isWatchingThread(threadRootId) {
1243
- const res = await this.request('GET', ENDPOINTS.MESSAGE_WATCHING(threadRootId));
1244
- return res.watching;
1245
- }
1246
- async getSubtasks(orgId, taskId) {
1247
- const res = await this.request('GET', ENDPOINTS.TASK_SUBTASKS(orgId, taskId));
1248
- return res.data;
1249
- }
1250
- async createTaskRelation(orgId, taskId, data) {
1251
- return this.request('POST', ENDPOINTS.TASK_RELATIONS(orgId, taskId), data);
1252
- }
1253
- async getTaskRelations(orgId, taskId) {
1254
- const res = await this.request('GET', ENDPOINTS.TASK_RELATIONS(orgId, taskId));
1255
- return res.data;
1256
- }
1257
- async listTaskRelationsByTarget(orgId, params) {
1258
- const query = new URLSearchParams({
1259
- target_type: params.target_type,
1260
- target_id: params.target_id,
1261
- });
1262
- const res = await this.request('GET', `${ENDPOINTS.TASK_RELATIONS_BY_TARGET(orgId)}?${query.toString()}`);
1263
- return res.data;
1264
- }
1265
- async deleteTaskRelation(orgId, taskId, relationId) {
1266
- return this.request('DELETE', ENDPOINTS.TASK_RELATION(orgId, taskId, relationId));
1267
- }
1268
- // ---- Task Comments ----
1269
- async getTaskComments(orgId, taskId, params) {
1270
- return this.request('GET', ENDPOINTS.TASK_COMMENTS(orgId, taskId), undefined, params);
1271
- }
1272
- async getTaskComment(orgId, taskId, commentId) {
1273
- return this.request('GET', ENDPOINTS.TASK_COMMENT(orgId, taskId, commentId));
1274
- }
1275
- async createTaskComment(orgId, taskId, data) {
1276
- return this.request('POST', ENDPOINTS.TASK_COMMENTS(orgId, taskId), data);
1277
- }
1278
- async updateTaskComment(orgId, taskId, commentId, data) {
1279
- return this.request('PATCH', ENDPOINTS.TASK_COMMENT(orgId, taskId, commentId), data);
1280
- }
1281
- async deleteTaskComment(orgId, taskId, commentId) {
1282
- return this.request('DELETE', ENDPOINTS.TASK_COMMENT(orgId, taskId, commentId));
1283
- }
1284
- // ---- Task Activities ----
1285
- async getTaskActivities(orgId, taskId, params) {
1286
- return this.request('GET', ENDPOINTS.TASK_ACTIVITIES(orgId, taskId), undefined, params);
1287
- }
1288
- // ---- Projects (org-scoped) ----
1289
- async createProject(orgId, data) {
1290
- return this.request('POST', ENDPOINTS.PROJECTS(orgId), data);
1291
- }
1292
- async getProjects(orgId) {
1293
- const res = await this.request('GET', ENDPOINTS.PROJECTS(orgId));
1294
- return res.data;
1295
- }
1296
- async getProject(orgId, projectId) {
1297
- return this.request('GET', ENDPOINTS.PROJECT(orgId, projectId));
1298
- }
1299
- async updateProject(orgId, projectId, data) {
1300
- return this.request('PATCH', ENDPOINTS.PROJECT(orgId, projectId), data);
1301
- }
1302
- async deleteProject(orgId, projectId) {
1303
- return this.request('DELETE', ENDPOINTS.PROJECT(orgId, projectId));
1304
- }
1305
1235
  // ---- Schedules (org-scoped) ----
1306
1236
  async createSchedule(orgId, input) {
1307
1237
  return this.request('POST', ENDPOINTS.SCHEDULES(orgId), input);
@@ -1439,12 +1369,26 @@ export class ParallClient {
1439
1369
  }
1440
1370
  /**
1441
1371
  * WeChat tier-B read verb (agent-only; internal research preview): the
1442
- * account's address book — friend wxids, saved group room ids, followed
1443
- * official accounts. Same live gate as the send verb.
1372
+ * account's address book — friends/chatrooms enriched with display names,
1373
+ * followed official accounts. Same live gate as the send verb.
1444
1374
  */
1445
1375
  async listWechatContacts(orgId) {
1446
1376
  return this.request('GET', ENDPOINTS.WECHAT_CONTACTS(orgId));
1447
1377
  }
1378
+ /**
1379
+ * WeChat tier-B read verb (agent-only): the connected account's identity
1380
+ * (wxid / alias / nickName / app id).
1381
+ */
1382
+ async wechatProfile(orgId) {
1383
+ return this.request('GET', ENDPOINTS.WECHAT_PROFILE(orgId));
1384
+ }
1385
+ /**
1386
+ * WeChat tier-B read verb (agent-only): live online probe + identity +
1387
+ * the platform's offline record.
1388
+ */
1389
+ async wechatStatus(orgId) {
1390
+ return this.request('GET', ENDPOINTS.WECHAT_STATUS(orgId));
1391
+ }
1448
1392
  async listChannelConversations(orgId, connectionId) {
1449
1393
  return this.request('GET', ENDPOINTS.CHANNEL_CONNECTION_CONVERSATIONS(orgId, connectionId));
1450
1394
  }
@@ -1786,6 +1730,7 @@ export class ParallClient {
1786
1730
  return this.request('PATCH', ENDPOINTS.NOTIFICATION_PREFERENCES, { prefs });
1787
1731
  }
1788
1732
  // ---- Feature Flags (org-scoped, server-evaluated) ----
1733
+ /** Omit orgId to resolve deployment capabilities before joining an org. */
1789
1734
  async getFeatureFlags(orgId) {
1790
1735
  return this.request('GET', ENDPOINTS.FEATURE_FLAGS(orgId));
1791
1736
  }
@@ -1806,6 +1751,52 @@ export class ParallClient {
1806
1751
  timeoutMs: 185_000,
1807
1752
  });
1808
1753
  }
1754
+ /** Queue a template deployment and poll its durable deployment row. Each
1755
+ * request is short-lived; closing the client does not cancel server work. */
1756
+ async deployTemplateAsync(orgId, request, idempotencyKey) {
1757
+ const queue = () => this.request('POST', ENDPOINTS.TEMPLATE_DEPLOYMENTS(orgId), {
1758
+ ...request,
1759
+ async: true,
1760
+ idempotency_key: idempotencyKey,
1761
+ });
1762
+ let result;
1763
+ for (let attempt = 0; attempt < 2 && result === undefined; attempt += 1) {
1764
+ try {
1765
+ result = await queue();
1766
+ }
1767
+ catch (error) {
1768
+ // A lost response or transient server failure is safe to retry because
1769
+ // the key resolves to the same deployment row rather than starting a
1770
+ // second team. A second transient failure remains outcome-unknown.
1771
+ if (!(error instanceof ApiError) || (error.status !== 0 && error.status < 500))
1772
+ throw error;
1773
+ }
1774
+ }
1775
+ if (result === undefined) {
1776
+ throw new ApiError(0, 'Template deployment request outcome is unknown', 'NETWORK_ERROR');
1777
+ }
1778
+ const deadline = Date.now() + 30 * 60 * 1000;
1779
+ while (result.status === 'queued' || result.status === 'deploying') {
1780
+ if (Date.now() >= deadline) {
1781
+ throw new ApiError(0, 'Template deployment is still running', 'REQUEST_TIMEOUT');
1782
+ }
1783
+ await new Promise((resolve) => setTimeout(resolve, 2000));
1784
+ try {
1785
+ result = await this.request('GET', ENDPOINTS.TEMPLATE_DEPLOYMENT(orgId, result.deployment_id));
1786
+ }
1787
+ catch (error) {
1788
+ if (!(error instanceof ApiError) || (error.status !== 0 && error.status < 500))
1789
+ throw error;
1790
+ // A network failure or transient server error does not change the
1791
+ // durable deployment. Keep polling instead of presenting a definite
1792
+ // failure that could make a fresh-key retry create another team.
1793
+ }
1794
+ }
1795
+ if (result.status !== 'deployed') {
1796
+ throw new ApiError(500, result.error?.message ?? 'Template deployment failed', result.error?.code);
1797
+ }
1798
+ return result;
1799
+ }
1809
1800
  async getTemplateDeployment(orgId, deploymentId) {
1810
1801
  return this.request('GET', ENDPOINTS.TEMPLATE_DEPLOYMENT(orgId, deploymentId));
1811
1802
  }
@@ -2022,6 +2013,11 @@ export class ParallClient {
2022
2013
  async uninstallRegistryClip(orgId, clipId) {
2023
2014
  await this.request('DELETE', ENDPOINTS.ORG_CLIP_UNINSTALL(orgId, clipId));
2024
2015
  }
2016
+ /** Best-effort provider revoke followed by atomic local removal of an
2017
+ * installed Official MCP Clip and all org-owned connection state. */
2018
+ async removeOfficialMCPClip(orgId, clipId) {
2019
+ return this.request('DELETE', ENDPOINTS.ORG_CLIP_MCP_REMOVE(orgId, clipId));
2020
+ }
2025
2021
  /** List the org's installed registry clips (full entries). */
2026
2022
  async listInstalledRegistryClips(orgId) {
2027
2023
  const resp = await this.request('GET', ENDPOINTS.ORG_CLIPS_INSTALLED(orgId));
@@ -2056,15 +2052,18 @@ export class ParallClient {
2056
2052
  /**
2057
2053
  * Read a clip's per-org agent exec access. Org-member readable (agents
2058
2054
  * included, so a denied agent can learn why exec answered
2059
- * `CLIP_AGENT_NOT_ALLOWED`).
2055
+ * `CLIP_AGENT_NOT_ALLOWED` / `CLIP_AGENT_CONNECTION_NOT_ALLOWED`).
2060
2056
  */
2061
2057
  async getClipAgentExecAccess(orgId, clipId) {
2062
2058
  return this.request('GET', ENDPOINTS.ORG_CLIP_EXEC_ACCESS(orgId, clipId));
2063
2059
  }
2064
2060
  /**
2065
2061
  * Replace a clip's per-org agent exec access. Human-only (agent principals
2066
- * get 403); under `all_agents` the `agent_ids` must be empty. Every granted
2067
- * id must be an active agent of this org (else `400 INVALID_INPUT`).
2062
+ * get 403); under `all_agents` both lists must be empty; pass either
2063
+ * `agent_ids` (legacy flat form every agent gets `connection_scope: 'all'`)
2064
+ * or `grants` (connection-scoped), never both. Every granted id must be an
2065
+ * active agent of this org, and every `connection_ids` entry a connection of
2066
+ * THIS clip in this org (else `400 INVALID_INPUT`).
2068
2067
  */
2069
2068
  async putClipAgentExecAccess(orgId, clipId, access) {
2070
2069
  return this.request('PUT', ENDPOINTS.ORG_CLIP_EXEC_ACCESS(orgId, clipId), access);
@@ -2150,6 +2149,41 @@ export class ParallClient {
2150
2149
  headers: expectedVersion ? { 'If-Match': `"proxy-${expectedVersion}"` } : undefined,
2151
2150
  });
2152
2151
  }
2152
+ /**
2153
+ * Read a hosted Cloud Profile's one-shot cookie-seed status (manager-only:
2154
+ * hosted human maintainer or org admin). Sanitized — cookie VALUES never come
2155
+ * back, only `cookie_count` and the distinct target `domains`. `can_mutate` /
2156
+ * `lease_status` are the authoritative idle gate. Typed errors: `EDGE_NOT_HOSTED`
2157
+ * (BYOC device), `NOT_FOUND` (unknown profile).
2158
+ */
2159
+ async getEdgeProfileCookieSeed(orgId, edgeId, profileName) {
2160
+ return this.request('GET', ENDPOINTS.ORG_EDGE_PROFILE_COOKIES(orgId, edgeId, profileName));
2161
+ }
2162
+ /**
2163
+ * Set/replace the profile's one-shot cookie seed (the full normalized cookie
2164
+ * array every time) — IDLE ONLY: while the profile's hosted browser is running
2165
+ * the server answers 409 `EDGE_PROFILE_IN_USE`; close the viewer, wait for idle
2166
+ * scale-to-zero, and retry. The next cold start injects the cookies into the
2167
+ * profile partition and consumes the seed. Other typed errors:
2168
+ * `EDGE_COOKIE_SEED_STALE` (409 — expectedVersion lost a tab race, sent as the
2169
+ * `cookieseed-<version>` If-Match), `EDGE_DELETING` (409), and
2170
+ * `SECRETBOX_UNCONFIGURED` (503 — server cannot store cookies safely).
2171
+ */
2172
+ async setEdgeProfileCookieSeed(orgId, edgeId, profileName, req, expectedVersion) {
2173
+ return this.request('PUT', ENDPOINTS.ORG_EDGE_PROFILE_COOKIES(orgId, edgeId, profileName), req, undefined, false, {
2174
+ headers: expectedVersion ? { 'If-Match': `"cookieseed-${expectedVersion}"` } : undefined,
2175
+ });
2176
+ }
2177
+ /**
2178
+ * Clear the pending cookie seed (does NOT sign the profile out — cookies
2179
+ * already injected into the partition stay). Idle-only like set — 409
2180
+ * `EDGE_PROFILE_IN_USE` while the browser is live.
2181
+ */
2182
+ async clearEdgeProfileCookieSeed(orgId, edgeId, profileName, expectedVersion) {
2183
+ return this.request('DELETE', ENDPOINTS.ORG_EDGE_PROFILE_COOKIES(orgId, edgeId, profileName), undefined, undefined, false, {
2184
+ headers: expectedVersion ? { 'If-Match': `"cookieseed-${expectedVersion}"` } : undefined,
2185
+ });
2186
+ }
2153
2187
  /**
2154
2188
  * Execute a registry clip command on an Edge device.
2155
2189
  *
@@ -2225,12 +2259,14 @@ export class ParallClient {
2225
2259
  async deleteClipConnection(orgId, connId) {
2226
2260
  return this.request('DELETE', ENDPOINTS.CLIP_CONNECTION(orgId, connId));
2227
2261
  }
2228
- // ---- MCP clip server config (cap:clip-mcp; publisher-org only) ----
2262
+ // ---- MCP clip server config (same-org or reviewed Official OAuth) ----
2229
2263
  /**
2230
- * Read the redacted MCP config. 404 NOT_FOUND when the clip has none yet;
2231
- * 403 MCP_CROSS_ORG_DISABLED for a cross-org installed clip (the whole
2232
- * mcp-config family is publisher-org property, reads included). `version`
2233
- * is the CAS token the mutations echo via If-Match.
2264
+ * Read the redacted MCP config. 404 NOT_FOUND when the clip has none yet
2265
+ * and also when a cross-org clip is not public + approved + installed, which
2266
+ * reads as nonexistent rather than refused (same existence-hiding as exec).
2267
+ * A cross-org clip that IS installed and approved reads fine regardless of
2268
+ * auth shape; what may then be configured is decided per credential owner.
2269
+ * `version` is the CAS token the mutations echo via If-Match.
2234
2270
  */
2235
2271
  async getClipMCPConfig(orgId, clipId) {
2236
2272
  return this.request('GET', ENDPOINTS.ORG_CLIP_MCP_CONFIG(orgId, clipId));
@@ -2267,13 +2303,26 @@ export class ParallClient {
2267
2303
  * List the org's MCP connections for a clip, default first — one row per
2268
2304
  * connection (credential slot), WITHOUT the tools snapshot (`tool_count`
2269
2305
  * summarizes it; the per-config GET carries the full snapshot). Same
2270
- * family-wide fence as the singular GET: publisher-org members only
2271
- * cross-org installs get `403 MCP_CROSS_ORG_DISABLED`, and with
2306
+ * family-wide fence as the singular GET: same-org clips, or a cross-org clip
2307
+ * that is public + approved + installed; anything else reads as
2308
+ * `404 NOT_FOUND`. An installed cross-org clip with no connection yet lists
2309
+ * as an empty array — including one whose approved auth mode cannot be
2310
+ * configured at all (auth=none), which the write path is what refuses. With
2272
2311
  * `cap:clip-mcp` off the route is not registered at all.
2273
2312
  */
2274
2313
  async listClipMCPConnections(orgId, clipId) {
2275
2314
  return this.request('GET', ENDPOINTS.ORG_CLIP_MCP_CONFIGS(orgId, clipId));
2276
2315
  }
2316
+ /** Start a new Official OAuth MCP connection with the platform-owned app.
2317
+ * Omitting oauth_client is load-bearing: the server resolves the exact
2318
+ * reviewed-version binding and never falls back to DCR/CIMD cross-org. */
2319
+ async createClipMCPOAuthConnection(orgId, clipId, serverUrl, alias) {
2320
+ return this.request('POST', ENDPOINTS.ORG_CLIP_MCP_CONFIGS(orgId, clipId), {
2321
+ server_url: serverUrl,
2322
+ auth_type: 'oauth',
2323
+ ...(alias ? { alias } : {}),
2324
+ });
2325
+ }
2277
2326
  /**
2278
2327
  * Re-run tools/list and replace the cached snapshot (org-admin only).
2279
2328
  * Deliberately does NOT advance the CAS version, so an in-flight edit in
@@ -359,6 +359,9 @@ export declare const ENDPOINTS: {
359
359
  readonly ORG_MEMBERS: (orgId: string) => string;
360
360
  readonly ORG_MEMBERS_FORMER: (orgId: string) => string;
361
361
  readonly TEAMS: (orgId: string) => string;
362
+ readonly TEAM: (orgId: string, teamId: string) => string;
363
+ readonly TEAM_MEMBERS: (orgId: string, teamId: string) => string;
364
+ readonly TEAM_MEMBER: (orgId: string, teamId: string, userId: string) => string;
362
365
  readonly ORG_MEMBERS_ONLINE: (orgId: string) => string;
363
366
  readonly ORG_MEMBER: (orgId: string, userId: string) => string;
364
367
  readonly ORG_MEMBER_CHATS: (orgId: string, memberId: string) => string;
@@ -456,6 +459,7 @@ export declare const ENDPOINTS: {
456
459
  readonly MACHINES_ME_BROWSE_RESPONSE: (requestId: string) => string;
457
460
  readonly MACHINES_ME_BROWSER_PROFILE_VIEWER_RESPONSE: (requestId: string) => string;
458
461
  readonly TASKS: (orgId: string) => string;
462
+ readonly TASK_SUBTASK_SUMMARY: (orgId: string) => string;
459
463
  readonly TASK: (orgId: string, taskId: string) => string;
460
464
  readonly TASK_ARCHIVE: (orgId: string, taskId: string) => string;
461
465
  readonly TASK_RESTORE: (orgId: string, taskId: string) => string;
@@ -469,8 +473,19 @@ export declare const ENDPOINTS: {
469
473
  readonly TASK_COMMENTS: (orgId: string, taskId: string) => string;
470
474
  readonly TASK_COMMENT: (orgId: string, taskId: string, commentId: string) => string;
471
475
  readonly TASK_ACTIVITIES: (orgId: string, taskId: string) => string;
476
+ readonly TASK_LABELS: (orgId: string, taskId: string) => string;
477
+ readonly TASK_LABEL: (orgId: string, taskId: string, labelId: string) => string;
478
+ readonly LABELS: (orgId: string) => string;
479
+ readonly LABEL: (orgId: string, labelId: string) => string;
472
480
  readonly PROJECTS: (orgId: string) => string;
481
+ readonly PROJECT_TASK_SUMMARY: (orgId: string) => string;
473
482
  readonly PROJECT: (orgId: string, projectId: string) => string;
483
+ readonly PROJECT_MEMBERS: (orgId: string, projectId: string) => string;
484
+ readonly PROJECT_READERS: (orgId: string, projectId: string) => string;
485
+ readonly PROJECT_LIBRARY: (orgId: string) => string;
486
+ readonly PROJECT_JOIN: (orgId: string, projectId: string) => string;
487
+ readonly PROJECT_JOIN_REQUESTS: (orgId: string, projectId: string) => string;
488
+ readonly PROJECT_MEMBER: (orgId: string, projectId: string, subject: string) => string;
474
489
  readonly SCHEDULES: (orgId: string) => string;
475
490
  readonly SCHEDULE: (orgId: string, id: string) => string;
476
491
  readonly SCHEDULE_PAUSE: (orgId: string, id: string) => string;
@@ -508,6 +523,8 @@ export declare const ENDPOINTS: {
508
523
  readonly SLACK_MEMBERS: (orgId: string) => string;
509
524
  readonly SLACK_STATUS: (orgId: string) => string;
510
525
  readonly WECHAT_CONTACTS: (orgId: string) => string;
526
+ readonly WECHAT_PROFILE: (orgId: string) => string;
527
+ readonly WECHAT_STATUS: (orgId: string) => string;
511
528
  readonly ORG_INVITATIONS: (orgId: string) => string;
512
529
  readonly ORG_INVITATION: (orgId: string, invId: string) => string;
513
530
  readonly ORG_INVITATION_RESEND: (orgId: string, invId: string) => string;
@@ -598,7 +615,7 @@ export declare const ENDPOINTS: {
598
615
  readonly PUSH_VAPID_KEY: "/api/v1/push/vapid-key";
599
616
  readonly NOTIFICATION_PREFERENCES: "/api/v1/notification-preferences";
600
617
  readonly SEARCH: (orgId: string) => string;
601
- readonly FEATURE_FLAGS: (orgId: string) => string;
618
+ readonly FEATURE_FLAGS: (orgId?: string) => string;
602
619
  readonly TEMPLATES: (orgId: string) => string;
603
620
  readonly TEMPLATE: (orgId: string, templateId: string) => string;
604
621
  readonly TEMPLATE_DEPLOYMENTS: (orgId: string) => string;
@@ -637,6 +654,7 @@ export declare const ENDPOINTS: {
637
654
  readonly ORG_EDGE_ONBOARDING: (orgId: string) => string;
638
655
  readonly ORG_EDGE_PROFILES: (orgId: string, edgeId: string) => string;
639
656
  readonly ORG_EDGE_PROFILE_PROXY: (orgId: string, edgeId: string, profileName: string) => string;
657
+ readonly ORG_EDGE_PROFILE_COOKIES: (orgId: string, edgeId: string, profileName: string) => string;
640
658
  readonly ORG_EDGE_EXEC: (orgId: string) => string;
641
659
  readonly ORG_EDGE_VIEWER_COMMAND: (orgId: string, edgeId: string) => string;
642
660
  readonly CLIP_CONNECTIONS: (orgId: string, clipId: string) => string;
@@ -647,6 +665,7 @@ export declare const ENDPOINTS: {
647
665
  readonly ORG_CLIP_INSTALL: (orgId: string) => string;
648
666
  readonly ORG_CLIPS_INSTALLED: (orgId: string) => string;
649
667
  readonly ORG_CLIP_UNINSTALL: (orgId: string, clipId: string) => string;
668
+ readonly ORG_CLIP_MCP_REMOVE: (orgId: string, clipId: string) => string;
650
669
  readonly ORG_CLIP_EXEC_ACCESS: (orgId: string, clipId: string) => string;
651
670
  readonly ORG_CLIP_MCP_CONFIG: (orgId: string, clipId: string) => string;
652
671
  readonly ORG_CLIP_MCP_TOOLS_REFRESH: (orgId: string, clipId: string) => string;
@@ -690,6 +709,7 @@ export declare const WS_EVENTS: {
690
709
  readonly PONG: "pong";
691
710
  readonly WATCHING: "watching";
692
711
  readonly MESSAGE_NEW: "message.new";
712
+ /** @deprecated `message.patch` is retired and never published; kept for compile compatibility. */
693
713
  readonly MESSAGE_PATCH: "message.patch";
694
714
  readonly MESSAGE_EDIT: "message.edit";
695
715
  readonly MESSAGE_DELETE: "message.delete";
@@ -710,6 +730,9 @@ export declare const WS_EVENTS: {
710
730
  readonly PROJECT_CREATED: "project.created";
711
731
  readonly PROJECT_UPDATED: "project.updated";
712
732
  readonly PROJECT_DELETED: "project.deleted";
733
+ readonly LABEL_CREATED: "label.created";
734
+ readonly LABEL_UPDATED: "label.updated";
735
+ readonly LABEL_DELETED: "label.deleted";
713
736
  readonly AGENT_SESSION_NEW: "agent_session.new";
714
737
  readonly AGENT_SESSION_UPDATE: "agent_session.update";
715
738
  readonly AGENT_STEP_NEW: "agent_step.new";
@@ -720,6 +743,7 @@ export declare const WS_EVENTS: {
720
743
  readonly ORG_JOIN_REQUEST_NEW: "org.join_request.new";
721
744
  readonly ORG_INVITE_LINK_JOINED: "org.invite_link.joined";
722
745
  readonly ORG_MEMBER_REMOVED: "org.member.removed";
746
+ readonly ORG_MEMBER_PROFILE_UPDATED: "org.member.profile.updated";
723
747
  readonly AGENT_CONFIG_UPDATE: "agent_config.update";
724
748
  readonly PRESENCE_UPDATE: "presence.update";
725
749
  readonly WIKI_CHANGESET_CREATED: "wiki.changeset.created";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,YAAY,CAAC;AAGlC,eAAO,MAAM,SAAS,aAAa,CAAC;AAGpC,eAAO,MAAM,SAAS,aAAa,CAAC;AAMpC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmMlB,CAAC;AAIX;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuEzB,CAAC;AAKX;;;GAGG;AACH,eAAO,MAAM,iCAAiC;;;;CAIpC,CAAC;AAOX,wBAAgB,mCAAmC,CACjD,KAAK,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EACnF,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,OAAO,CAGT;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAiBhG;AAGD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;wBAiBT,MAAM;;;0BAQJ,MAAM;kCACE,MAAM;yCACC,MAAM;4BACnB,MAAM;2BACP,MAAM,UAAU,MAAM;mCACd,MAAM,UAAU,MAAM;kCAEvB,MAAM,UAAU,MAAM,UAAU,MAAM;yCAE/B,MAAM;iCACd,MAAM,UAAU,MAAM;uCAChB,MAAM,YAAY,MAAM;uCAExB,MAAM,YAAY,MAAM;yCAItB,MAAM,UAAU,MAAM;yCAItB,MAAM,WAAW,MAAM;iCAE/B,MAAM;yBAGd,MAAM;yCAGU,MAAM;yCACN,MAAM;4BAGnB,MAAM;yCACO,MAAM;2BACpB,MAAM,UAAU,MAAM;gCACjB,MAAM,UAAU,MAAM;mCACnB,MAAM,UAAU,MAAM;mCAEtB,MAAM,UAAU,MAAM;mCAEtB,MAAM,UAAU,MAAM;kCAEvB,MAAM,UAAU,MAAM,UAAU,MAAM;8CAE1B,MAAM,UAAU,MAAM;oCAEhC,MAAM,UAAU,MAAM;2BAI/B,MAAM;mCACE,MAAM;iCACR,MAAM;oCACH,MAAM;oCACN,MAAM;qCACL,MAAM;oCACP,MAAM,SAAS,MAAM;qCAIpB,MAAM;sCACL,MAAM;wBACpB,MAAM;wCAGU,MAAM;4BAGlB,MAAM;mCACC,MAAM;mCACN,MAAM;;;6BAKZ,MAAM;4BACP,MAAM,WAAW,MAAM;qCACd,MAAM,WAAW,MAAM;oCAExB,MAAM,WAAW,MAAM,OAAO,MAAM;+CAEzB,MAAM,WAAW,MAAM;mCAEnC,MAAM,WAAW,MAAM;qCAErB,MAAM,WAAW,MAAM;oCAExB,MAAM,WAAW,MAAM;+BAE5B,MAAM;wCACG,MAAM,WAAW,MAAM;uCAExB,MAAM,WAAW,MAAM;qCAEzB,MAAM,WAAW,MAAM;oCAExB,MAAM,WAAW,MAAM,aAAa,MAAM;0CAEpC,MAAM,WAAW,MAAM,aAAa,MAAM;yCAE3C,MAAM,WAAW,MAAM,aAAa,MAAM,UAAU,MAAM;uCAE5D,MAAM,UAAU,MAAM;kCAE3B,MAAM,WAAW,MAAM;yCAEhB,MAAM,WAAW,MAAM;kDAEd,MAAM,WAAW,MAAM;0DAEf,MAAM,WAAW,MAAM,aAAa,MAAM;oCAEhE,MAAM,WAAW,MAAM;4CAEf,MAAM,WAAW,MAAM;mDAEhB,MAAM,WAAW,MAAM;4CAE9B,MAAM,WAAW,MAAM,OAAO,MAAM;4CAEpC,MAAM,WAAW,MAAM;+BAGpC,MAAM;8BACP,MAAM,aAAa,MAAM;oCACnB,MAAM,aAAa,MAAM;mCAE1B,MAAM,aAAa,MAAM;qCAEvB,MAAM,aAAa,MAAM;mCAE3B,MAAM,aAAa,MAAM;mCAEzB,MAAM,aAAa,MAAM;sCAEtB,MAAM,aAAa,MAAM;0CAErB,MAAM;2CAIL,MAAM,aAAa,MAAM,WAAW,MAAM;2CAE1C,MAAM,aAAa,MAAM,WAAW,MAAM;+CAEtC,MAAM,aAAa,MAAM;kDAEtB,MAAM,aAAa,MAAM,WAAW,MAAM;oDAExC,MAAM,aAAa,MAAM,WAAW,MAAM;yCAErD,MAAM,aAAa,MAAM;+CAEnB,MAAM,aAAa,MAAM;2CAE7B,MAAM,aAAa,MAAM;2CAEzB,MAAM,aAAa,MAAM;mCAEjC,MAAM,aAAa,MAAM;kCAE1B,MAAM,aAAa,MAAM,SAAS,MAAM;oDAEtB,MAAM,aAAa,MAAM;4DAEjB,MAAM,aAAa,MAAM,aAAa,MAAM;6CAE3D,MAAM,aAAa,MAAM;qCAEjC,MAAM,aAAa,MAAM;;;;;;6DAWD,MAAM;4DAEP,MAAM;0DAER,MAAM;;sDAGV,MAAM;sEAOU,MAAM;4BAIhD,MAAM;2CACS,MAAM;2BACtB,MAAM,UAAU,MAAM;mCACd,MAAM,UAAU,MAAM;mCAEtB,MAAM,UAAU,MAAM;iCAExB,MAAM,UAAU,MAAM;oCACnB,MAAM,UAAU,MAAM;sCAEpB,MAAM,UAAU,MAAM,UAAU,MAAM;oCAExC,MAAM,UAAU,MAAM;qCAErB,MAAM,UAAU,MAAM;oCAEvB,MAAM,UAAU,MAAM,SAAS,MAAM;+CAE1B,MAAM;oCACjB,MAAM,UAAU,MAAM;mCAEvB,MAAM,UAAU,MAAM,aAAa,MAAM;sCAEtC,MAAM,UAAU,MAAM;kCAE1B,MAAM,UAAU,MAAM;iCAEvB,MAAM,UAAU,MAAM,WAAW,MAAM;6BAI3C,MAAM;4BACP,MAAM,WAAW,MAAM;+BAGpB,MAAM;2CACM,MAAM;8BACnB,MAAM,aAAa,MAAM;sCACjB,MAAM,aAAa,MAAM;sCAEzB,MAAM,aAAa,MAAM;sCAEzB,MAAM;mCACT,MAAM,aAAa,MAAM;4CAEhB,MAAM,aAAa,MAAM;qCAGhC,MAAM,aAAa,MAAM,WAAW,MAAM;gCAI/C,MAAM;+BACP,MAAM,MAAM,MAAM;qCACZ,MAAM,MAAM,MAAM;sCACjB,MAAM,MAAM,MAAM;sCAElB,MAAM,MAAM,MAAM;oCAEpB,MAAM,MAAM,MAAM;mCACnB,MAAM,SAAS,MAAM;2CAIb,MAAM;0CACP,MAAM,gBAAgB,MAAM;mEAEH,MAAM,gBAAgB,MAAM;8CAEjD,MAAM,gBAAgB,MAAM;8CAE5B,MAAM;6CACP,MAAM,WAAW,MAAM;wCAE5B,MAAM;uCACP,MAAM,aAAa,MAAM;4CAEpB,MAAM;2CACP,MAAM,SAAS,MAAM;0CAItB,MAAM;yCACP,MAAM,gBAAgB,MAAM;qDAEhB,MAAM,gBAAgB,MAAM;kEAEf,MAAM,gBAAgB,MAAM;uDAEvC,MAAM,gBAAgB,MAAM;2CAExC,MAAM,kBAAkB,MAAM;oDAErB,MAAM,kBAAkB,MAAM;mDAE/B,MAAM,kBAAkB,MAAM;sCAE3C,MAAM,aAAa,MAAM;2CAEpB,MAAM;kDACC,MAAM;mDAEL,MAAM,aAAa,MAAM;kDAE1B,MAAM,aAAa,MAAM;mCAGxC,MAAM;qCAEJ,MAAM;kCACT,MAAM;oCACJ,MAAM;oCACN,MAAM;mCACP,MAAM;sCAEH,MAAM;qCACP,MAAM;oCACP,MAAM;sCAGJ,MAAM;qCACP,MAAM,SAAS,MAAM;4CAEd,MAAM,SAAS,MAAM;;qCAK5B,MAAM;sCACL,MAAM;0CACF,MAAM;sCAGV,MAAM;iDACK,MAAM;oDACH,MAAM;0DAEA,MAAM,QAAQ,MAAM;;4BAKlD,MAAM;oCAIE,MAAM;2BAEf,MAAM,UAAU,MAAM;mCACd,MAAM,UAAU,MAAM;gCAEzB,MAAM,UAAU,MAAM;gCACtB,MAAM,UAAU,MAAM;gCACtB,MAAM,UAAU,MAAM;yCACb,MAAM,UAAU,MAAM;kCAE7B,MAAM,UAAU,MAAM;sCAElB,MAAM,UAAU,MAAM;gCAE5B,MAAM,UAAU,MAAM;sCAChB,MAAM,UAAU,MAAM;yCAEnB,MAAM,UAAU,MAAM;0CAErB,MAAM,UAAU,MAAM;sCAE1B,MAAM,UAAU,MAAM;qCAEvB,MAAM,UAAU,MAAM,eAAe,MAAM;0CAEtC,MAAM,UAAU,MAAM,eAAe,MAAM;2CAE1C,MAAM,UAAU,MAAM,eAAe,MAAM;2CAE3C,MAAM,UAAU,MAAM,eAAe,MAAM;2CAE3C,MAAM,UAAU,MAAM,eAAe,MAAM;mCAInD,MAAM,UAAU,MAAM;iCAExB,MAAM,UAAU,MAAM;4CACX,MAAM,UAAU,MAAM;uCAI3B,MAAM,UAAU,MAAM;sCAEvB,MAAM,UAAU,MAAM,WAAW,MAAM;wCAGrC,MAAM,UAAU,MAAM;uCAEvB,MAAM,UAAU,MAAM,iBAAiB,MAAM;yCAE3C,MAAM,UAAU,MAAM;2CAEpB,MAAM,UAAU,MAAM;mCAI9B,MAAM,UAAU,MAAM;wCAEjB,MAAM,UAAU,MAAM;iCAE7B,MAAM,UAAU,MAAM;sCAGjB,MAAM,UAAU,MAAM;4CAEhB,MAAM,UAAU,MAAM,QAAQ,MAAM;+BAIjD,MAAM;8BACP,MAAM,aAAa,MAAM;sCACjB,MAAM,aAAa,MAAM;qCAE1B,MAAM,aAAa,MAAM;4BAIlC,MAAM;yCACO,MAAM;sCACT,MAAM,MAAM,MAAM;wCAChB,MAAM,MAAM,MAAM;yCACjB,MAAM,MAAM,MAAM;0CAGjB,MAAM;wCACR,MAAM;iCACb,MAAM,MAAM,MAAM;gCACnB,MAAM;+BAGP,MAAM;6CACQ,MAAM;wCACX,MAAM;mCACX,MAAM;yCACA,MAAM,MAAM,MAAM;sCACrB,MAAM;2CACD,MAAM;qCACZ,MAAM;qCACN,MAAM;2CACA,MAAM;wCACT,MAAM;gDACE,MAAM;uCAEf,MAAM;yCACJ,MAAM;;iCAId,MAAM;gCACP,MAAM,UAAU,MAAM;oCAClB,MAAM,UAAU,MAAM;oCAEtB,MAAM,UAAU,MAAM,gBAAgB,MAAM;kCAE9C,MAAM,UAAU,MAAM,gBAAgB,MAAM;mCAI3C,MAAM;qCACJ,MAAM;oCACP,MAAM;iCACT,MAAM;iCACN,MAAM;;;;;;6BAcV,MAAM;qCAKE,MAAM;gCAIX,MAAM;+BACP,MAAM,cAAc,MAAM;2CAEd,MAAM;0CACP,MAAM,gBAAgB,MAAM;8CAExB,MAAM;0CAGV,MAAM;8BAGlB,MAAM;2CACO,MAAM;uCACV,MAAM;0CACH,MAAM;2CACL,MAAM;;;qCAWZ,MAAM;4BAUf,MAAM;2BACP,MAAM,UAAU,MAAM;0CACP,MAAM;kCACd,MAAM,UAAU,MAAM;kCAEtB,MAAM,WAAW,MAAM;iCAExB,MAAM,WAAW,MAAM,UAAU,MAAM;kCAEtC,MAAM;kCACN,MAAM;6CACK,MAAM;uCACZ,MAAM;sCACP,MAAM,aAAa,MAAM;2CAEpB,MAAM,aAAa,MAAM;2CAEzB,MAAM,aAAa,MAAM;4CAExB,MAAM,aAAa,MAAM;+CAEtB,MAAM,aAAa,MAAM;8CAE1B,MAAM,aAAa,MAAM,UAAU,MAAM;qDAIlC,MAAM,aAAa,MAAM;+BAI/C,MAAM;uCACE,MAAM;sCACP,MAAM,UAAU,MAAM;iDACX,MAAM,UAAU,MAAM;0CAE7B,MAAM;wCACR,MAAM,UAAU,MAAM;6CAGjB,MAAM,UAAU,MAAM,eAAe,MAAM;+CAIzC,MAAM,UAAU,MAAM,eAAe,MAAM;oCAEtD,MAAM;8CAII,MAAM,UAAU,MAAM;uCAE7B,MAAM,UAAU,MAAM;sCAEvB,MAAM,UAAU,MAAM;wCAIpB,MAAM;6CACD,MAAM,UAAU,MAAM;gDAEnB,MAAM;uCACf,MAAM;0CACH,MAAM;yCACP,MAAM,UAAU,MAAM;0CAErB,MAAM,UAAU,MAAM;2CAGrB,MAAM,UAAU,MAAM;0CAOvB,MAAM,UAAU,MAAM;iDAEf,MAAM,UAAU,MAAM;oDAEnB,MAAM,UAAU,MAAM;2CAE/B,MAAM,UAAU,MAAM;gDAEjB,MAAM,UAAU,MAAM,YAAY,MAAM;uDAEjC,MAAM,UAAU,MAAM,YAAY,MAAM;0DAErC,MAAM,UAAU,MAAM,YAAY,MAAM;CAE7E,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAI/E;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAGD,eAAO,MAAM,SAAS;;;;;;;;;IAYpB,kGAAkG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8E1F,CAAC;AA6DX,eAAO,MAAM,cAAc;4BACV,MAAM;+BACH,MAAM,UAAU,MAAM;gCACrB,MAAM,QAAQ,MAAM;mCAGjB,MAAM,QAAQ,MAAM,OAAO,MAAM,mBAAmB,MAAM,EAAE;qCAKxE,MAAM,QACR,MAAM,OACP,MAAM,aACA,MAAM,WACR,MAAM;qCAKO,MAAM,QAAQ,MAAM,OAAO,MAAM,SAAS,MAAM,OAAO,MAAM;CAE7E,CAAC"}
package/dist/constants.js CHANGED
@@ -358,6 +358,9 @@ export const ENDPOINTS = {
358
358
  ORG_MEMBERS: (orgId) => `${API_BASE}/orgs/${orgId}/members`,
359
359
  ORG_MEMBERS_FORMER: (orgId) => `${API_BASE}/orgs/${orgId}/members/former`,
360
360
  TEAMS: (orgId) => `${API_BASE}/orgs/${orgId}/teams`,
361
+ TEAM: (orgId, teamId) => `${API_BASE}/orgs/${orgId}/teams/${teamId}`,
362
+ TEAM_MEMBERS: (orgId, teamId) => `${API_BASE}/orgs/${orgId}/teams/${teamId}/members`,
363
+ TEAM_MEMBER: (orgId, teamId, userId) => `${API_BASE}/orgs/${orgId}/teams/${teamId}/members/${userId}`,
361
364
  ORG_MEMBERS_ONLINE: (orgId) => `${API_BASE}/orgs/${orgId}/members/online`,
362
365
  ORG_MEMBER: (orgId, userId) => `${API_BASE}/orgs/${orgId}/members/${userId}`,
363
366
  ORG_MEMBER_CHATS: (orgId, memberId) => `${API_BASE}/orgs/${orgId}/members/${memberId}/chats`,
@@ -480,6 +483,7 @@ export const ENDPOINTS = {
480
483
  MACHINES_ME_BROWSER_PROFILE_VIEWER_RESPONSE: (requestId) => `${API_BASE}/machines/me/browser-profiles/viewer-response/${requestId}`,
481
484
  // Tasks (org-scoped)
482
485
  TASKS: (orgId) => `${API_BASE}/orgs/${orgId}/tasks`,
486
+ TASK_SUBTASK_SUMMARY: (orgId) => `${API_BASE}/orgs/${orgId}/tasks/subtask-summary`,
483
487
  TASK: (orgId, taskId) => `${API_BASE}/orgs/${orgId}/tasks/${taskId}`,
484
488
  TASK_ARCHIVE: (orgId, taskId) => `${API_BASE}/orgs/${orgId}/tasks/${taskId}/archive`,
485
489
  TASK_RESTORE: (orgId, taskId) => `${API_BASE}/orgs/${orgId}/tasks/${taskId}/restore`,
@@ -493,9 +497,22 @@ export const ENDPOINTS = {
493
497
  TASK_COMMENTS: (orgId, taskId) => `${API_BASE}/orgs/${orgId}/tasks/${taskId}/comments`,
494
498
  TASK_COMMENT: (orgId, taskId, commentId) => `${API_BASE}/orgs/${orgId}/tasks/${taskId}/comments/${commentId}`,
495
499
  TASK_ACTIVITIES: (orgId, taskId) => `${API_BASE}/orgs/${orgId}/tasks/${taskId}/activities`,
500
+ TASK_LABELS: (orgId, taskId) => `${API_BASE}/orgs/${orgId}/tasks/${taskId}/labels`,
501
+ TASK_LABEL: (orgId, taskId, labelId) => `${API_BASE}/orgs/${orgId}/tasks/${taskId}/labels/${labelId}`,
502
+ // Labels (org-scoped vocabulary; writes are admin-gated)
503
+ LABELS: (orgId) => `${API_BASE}/orgs/${orgId}/labels`,
504
+ LABEL: (orgId, labelId) => `${API_BASE}/orgs/${orgId}/labels/${labelId}`,
496
505
  // Projects (org-scoped)
497
506
  PROJECTS: (orgId) => `${API_BASE}/orgs/${orgId}/projects`,
507
+ PROJECT_TASK_SUMMARY: (orgId) => `${API_BASE}/orgs/${orgId}/projects/task-summary`,
498
508
  PROJECT: (orgId, projectId) => `${API_BASE}/orgs/${orgId}/projects/${projectId}`,
509
+ PROJECT_MEMBERS: (orgId, projectId) => `${API_BASE}/orgs/${orgId}/projects/${projectId}/members`,
510
+ PROJECT_READERS: (orgId, projectId) => `${API_BASE}/orgs/${orgId}/projects/${projectId}/readers`,
511
+ PROJECT_LIBRARY: (orgId) => `${API_BASE}/orgs/${orgId}/projects/library`,
512
+ PROJECT_JOIN: (orgId, projectId) => `${API_BASE}/orgs/${orgId}/projects/${projectId}/join`,
513
+ PROJECT_JOIN_REQUESTS: (orgId, projectId) => `${API_BASE}/orgs/${orgId}/projects/${projectId}/join-requests`,
514
+ // subject is a bare user ID or a bare team ID; both are path-segment safe.
515
+ PROJECT_MEMBER: (orgId, projectId, subject) => `${API_BASE}/orgs/${orgId}/projects/${projectId}/members/${subject}`,
499
516
  // Schedules (org-scoped, platform time trigger primitive)
500
517
  SCHEDULES: (orgId) => `${API_BASE}/orgs/${orgId}/schedules`,
501
518
  SCHEDULE: (orgId, id) => `${API_BASE}/orgs/${orgId}/schedules/${id}`,
@@ -537,8 +554,10 @@ export const ENDPOINTS = {
537
554
  SLACK_HISTORY: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/history`,
538
555
  SLACK_MEMBERS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/members`,
539
556
  SLACK_STATUS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/status`,
540
- // WeChat tier-B read verb (agent-only; internal research preview).
557
+ // WeChat tier-B read verbs (agent-only; internal research preview).
541
558
  WECHAT_CONTACTS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/wechat/contacts`,
559
+ WECHAT_PROFILE: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/wechat/profile`,
560
+ WECHAT_STATUS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/wechat/status`,
542
561
  // Invitations (org-scoped, admin)
543
562
  ORG_INVITATIONS: (orgId) => `${API_BASE}/orgs/${orgId}/invitations`,
544
563
  ORG_INVITATION: (orgId, invId) => `${API_BASE}/orgs/${orgId}/invitations/${invId}`,
@@ -652,8 +671,10 @@ export const ENDPOINTS = {
652
671
  NOTIFICATION_PREFERENCES: `${API_BASE}/notification-preferences`,
653
672
  // Unified search (messages + tasks + wiki, org-scoped)
654
673
  SEARCH: (orgId) => `${API_BASE}/orgs/${orgId}/search`,
655
- // Feature flags (org-scoped, server-evaluated)
656
- FEATURE_FLAGS: (orgId) => `${API_BASE}/orgs/${orgId}/feature-flags`,
674
+ // Feature flags (server-evaluated). Org-scoped by default; omit the org for
675
+ // the pre-org form, which resolves "cap:" capabilities only (PostHog flags
676
+ // are org-scoped and absent there) for callers that have no org yet.
677
+ FEATURE_FLAGS: (orgId) => orgId ? `${API_BASE}/orgs/${orgId}/feature-flags` : `${API_BASE}/feature-flags`,
657
678
  // Team templates (org-scoped, owner/admin only)
658
679
  TEMPLATES: (orgId) => `${API_BASE}/orgs/${orgId}/templates`,
659
680
  TEMPLATE: (orgId, templateId) => `${API_BASE}/orgs/${orgId}/templates/${templateId}`,
@@ -711,6 +732,9 @@ export const ENDPOINTS = {
711
732
  ORG_EDGE_PROFILES: (orgId, edgeId) => `/api/v1/orgs/${orgId}/edge/${edgeId}/profiles`,
712
733
  // Per-profile egress proxy (hosted Cloud Profiles; manager-only, human-only).
713
734
  ORG_EDGE_PROFILE_PROXY: (orgId, edgeId, profileName) => `/api/v1/orgs/${orgId}/edge/${edgeId}/profiles/${encodeURIComponent(profileName)}/proxy`,
735
+ // Per-profile one-shot cookie seed (hosted Cloud Profiles; manager-only,
736
+ // human-only, idle-only). Injected at the next cold start, then consumed.
737
+ ORG_EDGE_PROFILE_COOKIES: (orgId, edgeId, profileName) => `/api/v1/orgs/${orgId}/edge/${edgeId}/profiles/${encodeURIComponent(profileName)}/cookies`,
714
738
  ORG_EDGE_EXEC: (orgId) => `/api/v1/orgs/${orgId}/edge/exec`,
715
739
  // Cloud Edge live viewer command (V1b) — api-server, gated on cap:edge-viewer.
716
740
  // Same request/reply shape as the v2 browser-profile viewer, on the v3 edge
@@ -725,10 +749,11 @@ export const ENDPOINTS = {
725
749
  ORG_CLIP_INSTALL: (orgId) => `/api/v1/orgs/${orgId}/clips/install`,
726
750
  ORG_CLIPS_INSTALLED: (orgId) => `/api/v1/orgs/${orgId}/clips/installed`,
727
751
  ORG_CLIP_UNINSTALL: (orgId, clipId) => `/api/v1/orgs/${orgId}/clips/${clipId}/uninstall`,
752
+ ORG_CLIP_MCP_REMOVE: (orgId, clipId) => `/api/v1/orgs/${orgId}/clips/${clipId}/mcp-remove`,
728
753
  // Per-org agent exec access for one clip (default all agents; PUT human-only)
729
754
  ORG_CLIP_EXEC_ACCESS: (orgId, clipId) => `/api/v1/orgs/${orgId}/clips/${clipId}/exec-access`,
730
- // MCP clip server config (cap:clip-mcp; publisher-org only cross-org gets
731
- // 403 MCP_CROSS_ORG_DISABLED on the whole family, reads included). The
755
+ // MCP clip server config (cap:clip-mcp; cross-org is limited to installed,
756
+ // reviewed Official OAuth Clips). The
732
757
  // singular family addresses the org's DEFAULT connection (pre-165
733
758
  // back-compat shim); the plural family is the multi-connection surface —
734
759
  // one config row (credential slot) per connection, addressed by config id.
@@ -786,6 +811,7 @@ export const WS_EVENTS = {
786
811
  PONG: 'pong',
787
812
  WATCHING: 'watching',
788
813
  MESSAGE_NEW: 'message.new',
814
+ /** @deprecated `message.patch` is retired and never published; kept for compile compatibility. */
789
815
  MESSAGE_PATCH: 'message.patch',
790
816
  MESSAGE_EDIT: 'message.edit',
791
817
  MESSAGE_DELETE: 'message.delete',
@@ -806,6 +832,9 @@ export const WS_EVENTS = {
806
832
  PROJECT_CREATED: 'project.created',
807
833
  PROJECT_UPDATED: 'project.updated',
808
834
  PROJECT_DELETED: 'project.deleted',
835
+ LABEL_CREATED: 'label.created',
836
+ LABEL_UPDATED: 'label.updated',
837
+ LABEL_DELETED: 'label.deleted',
809
838
  AGENT_SESSION_NEW: 'agent_session.new',
810
839
  AGENT_SESSION_UPDATE: 'agent_session.update',
811
840
  AGENT_STEP_NEW: 'agent_step.new',
@@ -816,6 +845,7 @@ export const WS_EVENTS = {
816
845
  ORG_JOIN_REQUEST_NEW: 'org.join_request.new',
817
846
  ORG_INVITE_LINK_JOINED: 'org.invite_link.joined',
818
847
  ORG_MEMBER_REMOVED: 'org.member.removed',
848
+ ORG_MEMBER_PROFILE_UPDATED: 'org.member.profile.updated',
819
849
  AGENT_CONFIG_UPDATE: 'agent_config.update',
820
850
  PRESENCE_UPDATE: 'presence.update',
821
851
  WIKI_CHANGESET_CREATED: 'wiki.changeset.created',
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ export * from './browser-viewer.js';
2
2
  export type { ParallClientOptions } from './client.js';
3
3
  export { ApiError, ParallClient } from './client.js';
4
4
  export * from './constants.js';
5
+ export * from './subject.js';
6
+ export * from './task-label-types.js';
5
7
  export * from './types.js';
6
8
  export type { ParallWsOptions, WsClientEventMap, WsConnectionState, WsEventHandler, WsEventType, } from './ws.js';
7
9
  export { ParallWs } from './ws.js';