@parall/sdk 1.53.0 → 1.55.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/client.d.ts +80 -68
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +140 -119
- package/dist/constants.d.ts +21 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +31 -5
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/project-task-client.d.ts +69 -0
- package/dist/project-task-client.d.ts.map +1 -0
- package/dist/project-task-client.js +117 -0
- package/dist/subject.d.ts +25 -0
- package/dist/subject.d.ts.map +1 -0
- package/dist/subject.js +54 -0
- package/dist/task-label-client.d.ts +13 -0
- package/dist/task-label-client.d.ts.map +1 -0
- package/dist/task-label-client.js +24 -0
- package/dist/task-label-types.d.ts +33 -0
- package/dist/task-label-types.d.ts.map +1 -0
- package/dist/task-label-types.js +1 -0
- package/dist/types.d.ts +250 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -3
- package/package.json +1 -1
- package/src/client.ts +406 -453
- package/src/constants.ts +42 -5
- package/src/index.ts +2 -0
- package/src/project-task-client.ts +249 -0
- package/src/subject.ts +66 -0
- package/src/task-label-client.ts +37 -0
- package/src/task-label-types.ts +51 -0
- package/src/types.ts +282 -6
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
|
-
|
|
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,44 @@ 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. The slug cannot be changed — wiki ACL rows reference it as
|
|
397
|
+
* `@slug`, so the server answers 400 SLUG_IMMUTABLE if one is sent.
|
|
398
|
+
*/
|
|
399
|
+
async updateTeam(orgId, teamId, req) {
|
|
400
|
+
return this.request('PATCH', ENDPOINTS.TEAM(orgId, teamId), req);
|
|
401
|
+
}
|
|
402
|
+
async deleteTeam(orgId, teamId) {
|
|
403
|
+
return this.request('DELETE', ENDPOINTS.TEAM(orgId, teamId));
|
|
404
|
+
}
|
|
405
|
+
/** Roster with display info; members who left the org are already excluded. */
|
|
406
|
+
async getTeamMembers(orgId, teamId) {
|
|
407
|
+
const res = await this.request('GET', ENDPOINTS.TEAM_MEMBERS(orgId, teamId));
|
|
408
|
+
return res.data;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Adds an org member (human or agent) to a team. Org admins and that team's
|
|
412
|
+
* managers may add ordinary members; adding straight to `manager` is an
|
|
413
|
+
* org-admin action.
|
|
414
|
+
*/
|
|
415
|
+
async addTeamMember(orgId, teamId, req) {
|
|
416
|
+
return this.request('POST', ENDPOINTS.TEAM_MEMBERS(orgId, teamId), req);
|
|
417
|
+
}
|
|
418
|
+
/** Appointing or demoting a manager is org-admin only. */
|
|
419
|
+
async updateTeamMember(orgId, teamId, userId, req) {
|
|
420
|
+
return this.request('PATCH', ENDPOINTS.TEAM_MEMBER(orgId, teamId, userId), req);
|
|
421
|
+
}
|
|
422
|
+
/** A team manager may remove ordinary members; removing a peer manager is org-admin only. */
|
|
423
|
+
async removeTeamMember(orgId, teamId, userId) {
|
|
424
|
+
return this.request('DELETE', ENDPOINTS.TEAM_MEMBER(orgId, teamId, userId));
|
|
425
|
+
}
|
|
386
426
|
async getOnlineMembers(orgId) {
|
|
387
427
|
const res = await this.request('GET', ENDPOINTS.ORG_MEMBERS_ONLINE(orgId));
|
|
388
428
|
return res.user_ids ?? [];
|
|
@@ -1191,117 +1231,6 @@ export class ParallClient {
|
|
|
1191
1231
|
}
|
|
1192
1232
|
return res.json();
|
|
1193
1233
|
}
|
|
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
1234
|
// ---- Schedules (org-scoped) ----
|
|
1306
1235
|
async createSchedule(orgId, input) {
|
|
1307
1236
|
return this.request('POST', ENDPOINTS.SCHEDULES(orgId), input);
|
|
@@ -1439,12 +1368,26 @@ export class ParallClient {
|
|
|
1439
1368
|
}
|
|
1440
1369
|
/**
|
|
1441
1370
|
* WeChat tier-B read verb (agent-only; internal research preview): the
|
|
1442
|
-
* account's address book —
|
|
1443
|
-
* official accounts. Same live gate as the send verb.
|
|
1371
|
+
* account's address book — friends/chatrooms enriched with display names,
|
|
1372
|
+
* followed official accounts. Same live gate as the send verb.
|
|
1444
1373
|
*/
|
|
1445
1374
|
async listWechatContacts(orgId) {
|
|
1446
1375
|
return this.request('GET', ENDPOINTS.WECHAT_CONTACTS(orgId));
|
|
1447
1376
|
}
|
|
1377
|
+
/**
|
|
1378
|
+
* WeChat tier-B read verb (agent-only): the connected account's identity
|
|
1379
|
+
* (wxid / alias / nickName / app id).
|
|
1380
|
+
*/
|
|
1381
|
+
async wechatProfile(orgId) {
|
|
1382
|
+
return this.request('GET', ENDPOINTS.WECHAT_PROFILE(orgId));
|
|
1383
|
+
}
|
|
1384
|
+
/**
|
|
1385
|
+
* WeChat tier-B read verb (agent-only): live online probe + identity +
|
|
1386
|
+
* the platform's offline record.
|
|
1387
|
+
*/
|
|
1388
|
+
async wechatStatus(orgId) {
|
|
1389
|
+
return this.request('GET', ENDPOINTS.WECHAT_STATUS(orgId));
|
|
1390
|
+
}
|
|
1448
1391
|
async listChannelConversations(orgId, connectionId) {
|
|
1449
1392
|
return this.request('GET', ENDPOINTS.CHANNEL_CONNECTION_CONVERSATIONS(orgId, connectionId));
|
|
1450
1393
|
}
|
|
@@ -1786,6 +1729,7 @@ export class ParallClient {
|
|
|
1786
1729
|
return this.request('PATCH', ENDPOINTS.NOTIFICATION_PREFERENCES, { prefs });
|
|
1787
1730
|
}
|
|
1788
1731
|
// ---- Feature Flags (org-scoped, server-evaluated) ----
|
|
1732
|
+
/** Omit orgId to resolve deployment capabilities before joining an org. */
|
|
1789
1733
|
async getFeatureFlags(orgId) {
|
|
1790
1734
|
return this.request('GET', ENDPOINTS.FEATURE_FLAGS(orgId));
|
|
1791
1735
|
}
|
|
@@ -1806,6 +1750,52 @@ export class ParallClient {
|
|
|
1806
1750
|
timeoutMs: 185_000,
|
|
1807
1751
|
});
|
|
1808
1752
|
}
|
|
1753
|
+
/** Queue a template deployment and poll its durable deployment row. Each
|
|
1754
|
+
* request is short-lived; closing the client does not cancel server work. */
|
|
1755
|
+
async deployTemplateAsync(orgId, request, idempotencyKey) {
|
|
1756
|
+
const queue = () => this.request('POST', ENDPOINTS.TEMPLATE_DEPLOYMENTS(orgId), {
|
|
1757
|
+
...request,
|
|
1758
|
+
async: true,
|
|
1759
|
+
idempotency_key: idempotencyKey,
|
|
1760
|
+
});
|
|
1761
|
+
let result;
|
|
1762
|
+
for (let attempt = 0; attempt < 2 && result === undefined; attempt += 1) {
|
|
1763
|
+
try {
|
|
1764
|
+
result = await queue();
|
|
1765
|
+
}
|
|
1766
|
+
catch (error) {
|
|
1767
|
+
// A lost response or transient server failure is safe to retry because
|
|
1768
|
+
// the key resolves to the same deployment row rather than starting a
|
|
1769
|
+
// second team. A second transient failure remains outcome-unknown.
|
|
1770
|
+
if (!(error instanceof ApiError) || (error.status !== 0 && error.status < 500))
|
|
1771
|
+
throw error;
|
|
1772
|
+
}
|
|
1773
|
+
}
|
|
1774
|
+
if (result === undefined) {
|
|
1775
|
+
throw new ApiError(0, 'Template deployment request outcome is unknown', 'NETWORK_ERROR');
|
|
1776
|
+
}
|
|
1777
|
+
const deadline = Date.now() + 30 * 60 * 1000;
|
|
1778
|
+
while (result.status === 'queued' || result.status === 'deploying') {
|
|
1779
|
+
if (Date.now() >= deadline) {
|
|
1780
|
+
throw new ApiError(0, 'Template deployment is still running', 'REQUEST_TIMEOUT');
|
|
1781
|
+
}
|
|
1782
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
1783
|
+
try {
|
|
1784
|
+
result = await this.request('GET', ENDPOINTS.TEMPLATE_DEPLOYMENT(orgId, result.deployment_id));
|
|
1785
|
+
}
|
|
1786
|
+
catch (error) {
|
|
1787
|
+
if (!(error instanceof ApiError) || (error.status !== 0 && error.status < 500))
|
|
1788
|
+
throw error;
|
|
1789
|
+
// A network failure or transient server error does not change the
|
|
1790
|
+
// durable deployment. Keep polling instead of presenting a definite
|
|
1791
|
+
// failure that could make a fresh-key retry create another team.
|
|
1792
|
+
}
|
|
1793
|
+
}
|
|
1794
|
+
if (result.status !== 'deployed') {
|
|
1795
|
+
throw new ApiError(500, result.error?.message ?? 'Template deployment failed', result.error?.code);
|
|
1796
|
+
}
|
|
1797
|
+
return result;
|
|
1798
|
+
}
|
|
1809
1799
|
async getTemplateDeployment(orgId, deploymentId) {
|
|
1810
1800
|
return this.request('GET', ENDPOINTS.TEMPLATE_DEPLOYMENT(orgId, deploymentId));
|
|
1811
1801
|
}
|
|
@@ -2022,6 +2012,11 @@ export class ParallClient {
|
|
|
2022
2012
|
async uninstallRegistryClip(orgId, clipId) {
|
|
2023
2013
|
await this.request('DELETE', ENDPOINTS.ORG_CLIP_UNINSTALL(orgId, clipId));
|
|
2024
2014
|
}
|
|
2015
|
+
/** Best-effort provider revoke followed by atomic local removal of an
|
|
2016
|
+
* installed Official MCP Clip and all org-owned connection state. */
|
|
2017
|
+
async removeOfficialMCPClip(orgId, clipId) {
|
|
2018
|
+
return this.request('DELETE', ENDPOINTS.ORG_CLIP_MCP_REMOVE(orgId, clipId));
|
|
2019
|
+
}
|
|
2025
2020
|
/** List the org's installed registry clips (full entries). */
|
|
2026
2021
|
async listInstalledRegistryClips(orgId) {
|
|
2027
2022
|
const resp = await this.request('GET', ENDPOINTS.ORG_CLIPS_INSTALLED(orgId));
|
|
@@ -2225,12 +2220,14 @@ export class ParallClient {
|
|
|
2225
2220
|
async deleteClipConnection(orgId, connId) {
|
|
2226
2221
|
return this.request('DELETE', ENDPOINTS.CLIP_CONNECTION(orgId, connId));
|
|
2227
2222
|
}
|
|
2228
|
-
// ---- MCP clip server config (
|
|
2223
|
+
// ---- MCP clip server config (same-org or reviewed Official OAuth) ----
|
|
2229
2224
|
/**
|
|
2230
|
-
* Read the redacted MCP config. 404 NOT_FOUND when the clip has none yet
|
|
2231
|
-
*
|
|
2232
|
-
*
|
|
2233
|
-
*
|
|
2225
|
+
* Read the redacted MCP config. 404 NOT_FOUND when the clip has none yet —
|
|
2226
|
+
* and also when a cross-org clip is not public + approved + installed, which
|
|
2227
|
+
* reads as nonexistent rather than refused (same existence-hiding as exec).
|
|
2228
|
+
* A cross-org clip that IS installed and approved reads fine regardless of
|
|
2229
|
+
* auth shape; what may then be configured is decided per credential owner.
|
|
2230
|
+
* `version` is the CAS token the mutations echo via If-Match.
|
|
2234
2231
|
*/
|
|
2235
2232
|
async getClipMCPConfig(orgId, clipId) {
|
|
2236
2233
|
return this.request('GET', ENDPOINTS.ORG_CLIP_MCP_CONFIG(orgId, clipId));
|
|
@@ -2263,6 +2260,30 @@ export class ParallClient {
|
|
|
2263
2260
|
async deleteClipMCPConfig(orgId, clipId, expectedVersion) {
|
|
2264
2261
|
return this.request('DELETE', ENDPOINTS.ORG_CLIP_MCP_CONFIG(orgId, clipId), undefined, undefined, false, { headers: { 'If-Match': `"${expectedVersion}"` } });
|
|
2265
2262
|
}
|
|
2263
|
+
/**
|
|
2264
|
+
* List the org's MCP connections for a clip, default first — one row per
|
|
2265
|
+
* connection (credential slot), WITHOUT the tools snapshot (`tool_count`
|
|
2266
|
+
* summarizes it; the per-config GET carries the full snapshot). Same
|
|
2267
|
+
* family-wide fence as the singular GET: same-org clips, or a cross-org clip
|
|
2268
|
+
* that is public + approved + installed; anything else reads as
|
|
2269
|
+
* `404 NOT_FOUND`. An installed cross-org clip with no connection yet lists
|
|
2270
|
+
* as an empty array — including one whose approved auth mode cannot be
|
|
2271
|
+
* configured at all (auth=none), which the write path is what refuses. With
|
|
2272
|
+
* `cap:clip-mcp` off the route is not registered at all.
|
|
2273
|
+
*/
|
|
2274
|
+
async listClipMCPConnections(orgId, clipId) {
|
|
2275
|
+
return this.request('GET', ENDPOINTS.ORG_CLIP_MCP_CONFIGS(orgId, clipId));
|
|
2276
|
+
}
|
|
2277
|
+
/** Start a new Official OAuth MCP connection with the platform-owned app.
|
|
2278
|
+
* Omitting oauth_client is load-bearing: the server resolves the exact
|
|
2279
|
+
* reviewed-version binding and never falls back to DCR/CIMD cross-org. */
|
|
2280
|
+
async createClipMCPOAuthConnection(orgId, clipId, serverUrl, alias) {
|
|
2281
|
+
return this.request('POST', ENDPOINTS.ORG_CLIP_MCP_CONFIGS(orgId, clipId), {
|
|
2282
|
+
server_url: serverUrl,
|
|
2283
|
+
auth_type: 'oauth',
|
|
2284
|
+
...(alias ? { alias } : {}),
|
|
2285
|
+
});
|
|
2286
|
+
}
|
|
2266
2287
|
/**
|
|
2267
2288
|
* Re-run tools/list and replace the cached snapshot (org-admin only).
|
|
2268
2289
|
* Deliberately does NOT advance the CAS version, so an in-flight edit in
|
package/dist/constants.d.ts
CHANGED
|
@@ -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,7 +473,12 @@ 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;
|
|
474
483
|
readonly SCHEDULES: (orgId: string) => string;
|
|
475
484
|
readonly SCHEDULE: (orgId: string, id: string) => string;
|
|
@@ -508,6 +517,8 @@ export declare const ENDPOINTS: {
|
|
|
508
517
|
readonly SLACK_MEMBERS: (orgId: string) => string;
|
|
509
518
|
readonly SLACK_STATUS: (orgId: string) => string;
|
|
510
519
|
readonly WECHAT_CONTACTS: (orgId: string) => string;
|
|
520
|
+
readonly WECHAT_PROFILE: (orgId: string) => string;
|
|
521
|
+
readonly WECHAT_STATUS: (orgId: string) => string;
|
|
511
522
|
readonly ORG_INVITATIONS: (orgId: string) => string;
|
|
512
523
|
readonly ORG_INVITATION: (orgId: string, invId: string) => string;
|
|
513
524
|
readonly ORG_INVITATION_RESEND: (orgId: string, invId: string) => string;
|
|
@@ -598,7 +609,7 @@ export declare const ENDPOINTS: {
|
|
|
598
609
|
readonly PUSH_VAPID_KEY: "/api/v1/push/vapid-key";
|
|
599
610
|
readonly NOTIFICATION_PREFERENCES: "/api/v1/notification-preferences";
|
|
600
611
|
readonly SEARCH: (orgId: string) => string;
|
|
601
|
-
readonly FEATURE_FLAGS: (orgId
|
|
612
|
+
readonly FEATURE_FLAGS: (orgId?: string) => string;
|
|
602
613
|
readonly TEMPLATES: (orgId: string) => string;
|
|
603
614
|
readonly TEMPLATE: (orgId: string, templateId: string) => string;
|
|
604
615
|
readonly TEMPLATE_DEPLOYMENTS: (orgId: string) => string;
|
|
@@ -647,10 +658,15 @@ export declare const ENDPOINTS: {
|
|
|
647
658
|
readonly ORG_CLIP_INSTALL: (orgId: string) => string;
|
|
648
659
|
readonly ORG_CLIPS_INSTALLED: (orgId: string) => string;
|
|
649
660
|
readonly ORG_CLIP_UNINSTALL: (orgId: string, clipId: string) => string;
|
|
661
|
+
readonly ORG_CLIP_MCP_REMOVE: (orgId: string, clipId: string) => string;
|
|
650
662
|
readonly ORG_CLIP_EXEC_ACCESS: (orgId: string, clipId: string) => string;
|
|
651
663
|
readonly ORG_CLIP_MCP_CONFIG: (orgId: string, clipId: string) => string;
|
|
652
664
|
readonly ORG_CLIP_MCP_TOOLS_REFRESH: (orgId: string, clipId: string) => string;
|
|
653
665
|
readonly ORG_CLIP_MCP_OAUTH_DISCONNECT: (orgId: string, clipId: string) => string;
|
|
666
|
+
readonly ORG_CLIP_MCP_CONFIGS: (orgId: string, clipId: string) => string;
|
|
667
|
+
readonly ORG_CLIP_MCP_CONFIG_BY_ID: (orgId: string, clipId: string, configId: string) => string;
|
|
668
|
+
readonly ORG_CLIP_MCP_TOOLS_REFRESH_BY_ID: (orgId: string, clipId: string, configId: string) => string;
|
|
669
|
+
readonly ORG_CLIP_MCP_OAUTH_DISCONNECT_BY_ID: (orgId: string, clipId: string, configId: string) => string;
|
|
654
670
|
};
|
|
655
671
|
/**
|
|
656
672
|
* Wiki personal-namespace prefix — the path subtree a member owns for
|
|
@@ -706,6 +722,9 @@ export declare const WS_EVENTS: {
|
|
|
706
722
|
readonly PROJECT_CREATED: "project.created";
|
|
707
723
|
readonly PROJECT_UPDATED: "project.updated";
|
|
708
724
|
readonly PROJECT_DELETED: "project.deleted";
|
|
725
|
+
readonly LABEL_CREATED: "label.created";
|
|
726
|
+
readonly LABEL_UPDATED: "label.updated";
|
|
727
|
+
readonly LABEL_DELETED: "label.deleted";
|
|
709
728
|
readonly AGENT_SESSION_NEW: "agent_session.new";
|
|
710
729
|
readonly AGENT_SESSION_UPDATE: "agent_session.update";
|
|
711
730
|
readonly AGENT_STEP_NEW: "agent_step.new";
|
|
@@ -716,6 +735,7 @@ export declare const WS_EVENTS: {
|
|
|
716
735
|
readonly ORG_JOIN_REQUEST_NEW: "org.join_request.new";
|
|
717
736
|
readonly ORG_INVITE_LINK_JOINED: "org.invite_link.joined";
|
|
718
737
|
readonly ORG_MEMBER_REMOVED: "org.member.removed";
|
|
738
|
+
readonly ORG_MEMBER_PROFILE_UPDATED: "org.member.profile.updated";
|
|
719
739
|
readonly AGENT_CONFIG_UPDATE: "agent_config.update";
|
|
720
740
|
readonly PRESENCE_UPDATE: "presence.update";
|
|
721
741
|
readonly WIKI_CHANGESET_CREATED: "wiki.changeset.created";
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
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,8 +497,14 @@ 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}`,
|
|
499
509
|
// Schedules (org-scoped, platform time trigger primitive)
|
|
500
510
|
SCHEDULES: (orgId) => `${API_BASE}/orgs/${orgId}/schedules`,
|
|
@@ -537,8 +547,10 @@ export const ENDPOINTS = {
|
|
|
537
547
|
SLACK_HISTORY: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/history`,
|
|
538
548
|
SLACK_MEMBERS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/members`,
|
|
539
549
|
SLACK_STATUS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/slack/status`,
|
|
540
|
-
// WeChat tier-B read
|
|
550
|
+
// WeChat tier-B read verbs (agent-only; internal research preview).
|
|
541
551
|
WECHAT_CONTACTS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/wechat/contacts`,
|
|
552
|
+
WECHAT_PROFILE: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/wechat/profile`,
|
|
553
|
+
WECHAT_STATUS: (orgId) => `${API_BASE}/orgs/${orgId}/agents/me/wechat/status`,
|
|
542
554
|
// Invitations (org-scoped, admin)
|
|
543
555
|
ORG_INVITATIONS: (orgId) => `${API_BASE}/orgs/${orgId}/invitations`,
|
|
544
556
|
ORG_INVITATION: (orgId, invId) => `${API_BASE}/orgs/${orgId}/invitations/${invId}`,
|
|
@@ -652,8 +664,10 @@ export const ENDPOINTS = {
|
|
|
652
664
|
NOTIFICATION_PREFERENCES: `${API_BASE}/notification-preferences`,
|
|
653
665
|
// Unified search (messages + tasks + wiki, org-scoped)
|
|
654
666
|
SEARCH: (orgId) => `${API_BASE}/orgs/${orgId}/search`,
|
|
655
|
-
// Feature flags (
|
|
656
|
-
|
|
667
|
+
// Feature flags (server-evaluated). Org-scoped by default; omit the org for
|
|
668
|
+
// the pre-org form, which resolves "cap:" capabilities only (PostHog flags
|
|
669
|
+
// are org-scoped and absent there) for callers that have no org yet.
|
|
670
|
+
FEATURE_FLAGS: (orgId) => orgId ? `${API_BASE}/orgs/${orgId}/feature-flags` : `${API_BASE}/feature-flags`,
|
|
657
671
|
// Team templates (org-scoped, owner/admin only)
|
|
658
672
|
TEMPLATES: (orgId) => `${API_BASE}/orgs/${orgId}/templates`,
|
|
659
673
|
TEMPLATE: (orgId, templateId) => `${API_BASE}/orgs/${orgId}/templates/${templateId}`,
|
|
@@ -725,13 +739,21 @@ export const ENDPOINTS = {
|
|
|
725
739
|
ORG_CLIP_INSTALL: (orgId) => `/api/v1/orgs/${orgId}/clips/install`,
|
|
726
740
|
ORG_CLIPS_INSTALLED: (orgId) => `/api/v1/orgs/${orgId}/clips/installed`,
|
|
727
741
|
ORG_CLIP_UNINSTALL: (orgId, clipId) => `/api/v1/orgs/${orgId}/clips/${clipId}/uninstall`,
|
|
742
|
+
ORG_CLIP_MCP_REMOVE: (orgId, clipId) => `/api/v1/orgs/${orgId}/clips/${clipId}/mcp-remove`,
|
|
728
743
|
// Per-org agent exec access for one clip (default all agents; PUT human-only)
|
|
729
744
|
ORG_CLIP_EXEC_ACCESS: (orgId, clipId) => `/api/v1/orgs/${orgId}/clips/${clipId}/exec-access`,
|
|
730
|
-
// MCP clip server config (cap:clip-mcp;
|
|
731
|
-
//
|
|
745
|
+
// MCP clip server config (cap:clip-mcp; cross-org is limited to installed,
|
|
746
|
+
// reviewed Official OAuth Clips). The
|
|
747
|
+
// singular family addresses the org's DEFAULT connection (pre-165
|
|
748
|
+
// back-compat shim); the plural family is the multi-connection surface —
|
|
749
|
+
// one config row (credential slot) per connection, addressed by config id.
|
|
732
750
|
ORG_CLIP_MCP_CONFIG: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-config`,
|
|
733
751
|
ORG_CLIP_MCP_TOOLS_REFRESH: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-config/tools/refresh`,
|
|
734
752
|
ORG_CLIP_MCP_OAUTH_DISCONNECT: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-config/oauth/disconnect`,
|
|
753
|
+
ORG_CLIP_MCP_CONFIGS: (orgId, clipId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-configs`,
|
|
754
|
+
ORG_CLIP_MCP_CONFIG_BY_ID: (orgId, clipId, configId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-configs/${configId}`,
|
|
755
|
+
ORG_CLIP_MCP_TOOLS_REFRESH_BY_ID: (orgId, clipId, configId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-configs/${configId}/tools/refresh`,
|
|
756
|
+
ORG_CLIP_MCP_OAUTH_DISCONNECT_BY_ID: (orgId, clipId, configId) => `/api/v1/orgs/${orgId}/clip-registry/${clipId}/mcp-configs/${configId}/oauth/disconnect`,
|
|
735
757
|
};
|
|
736
758
|
/**
|
|
737
759
|
* Wiki personal-namespace prefix — the path subtree a member owns for
|
|
@@ -799,6 +821,9 @@ export const WS_EVENTS = {
|
|
|
799
821
|
PROJECT_CREATED: 'project.created',
|
|
800
822
|
PROJECT_UPDATED: 'project.updated',
|
|
801
823
|
PROJECT_DELETED: 'project.deleted',
|
|
824
|
+
LABEL_CREATED: 'label.created',
|
|
825
|
+
LABEL_UPDATED: 'label.updated',
|
|
826
|
+
LABEL_DELETED: 'label.deleted',
|
|
802
827
|
AGENT_SESSION_NEW: 'agent_session.new',
|
|
803
828
|
AGENT_SESSION_UPDATE: 'agent_session.update',
|
|
804
829
|
AGENT_STEP_NEW: 'agent_step.new',
|
|
@@ -809,6 +834,7 @@ export const WS_EVENTS = {
|
|
|
809
834
|
ORG_JOIN_REQUEST_NEW: 'org.join_request.new',
|
|
810
835
|
ORG_INVITE_LINK_JOINED: 'org.invite_link.joined',
|
|
811
836
|
ORG_MEMBER_REMOVED: 'org.member.removed',
|
|
837
|
+
ORG_MEMBER_PROFILE_UPDATED: 'org.member.profile.updated',
|
|
812
838
|
AGENT_CONFIG_UPDATE: 'agent_config.update',
|
|
813
839
|
PRESENCE_UPDATE: 'presence.update',
|
|
814
840
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { CreateProjectRequest, CreateTaskCommentRequest, CreateTaskRelationRequest, CreateTaskRequest, PaginatedResponse, Project, ProjectTaskSummaryResponse, Task, TaskActivity, TaskComment, TaskRelation, TaskRelationTargetType, TaskSubtaskSummaryResponse, TaskWatcher, ThreadWatcher, UpdateProjectRequest, UpdateTaskCommentRequest, UpdateTaskRequest } from './types.js';
|
|
2
|
+
/** Project and task REST methods shared by every ParallClient instance. */
|
|
3
|
+
export declare abstract class ProjectTaskClient {
|
|
4
|
+
protected abstract request<T>(method: string, path: string, body?: unknown, query?: Record<string, string | number | boolean | undefined>): Promise<T>;
|
|
5
|
+
createTask(orgId: string, data: CreateTaskRequest): Promise<Task>;
|
|
6
|
+
getTasks(orgId: string, params?: {
|
|
7
|
+
q?: string;
|
|
8
|
+
status?: string;
|
|
9
|
+
priority?: string;
|
|
10
|
+
assignee_id?: string;
|
|
11
|
+
parent_id?: string;
|
|
12
|
+
project_id?: string;
|
|
13
|
+
/** Comma-separated label IDs; matching uses any-of semantics. */
|
|
14
|
+
label_ids?: string;
|
|
15
|
+
limit?: number;
|
|
16
|
+
cursor?: string;
|
|
17
|
+
sort?: string;
|
|
18
|
+
order?: string;
|
|
19
|
+
scope?: 'active' | 'archived' | 'all';
|
|
20
|
+
}): Promise<PaginatedResponse<Task>>;
|
|
21
|
+
getTaskSubtaskSummary(orgId: string, params?: {
|
|
22
|
+
assignee_id?: string;
|
|
23
|
+
project_id?: string;
|
|
24
|
+
}): Promise<TaskSubtaskSummaryResponse>;
|
|
25
|
+
getTask(orgId: string, taskId: string): Promise<Task>;
|
|
26
|
+
updateTask(orgId: string, taskId: string, data: UpdateTaskRequest): Promise<Task>;
|
|
27
|
+
deleteTask(orgId: string, taskId: string, opts?: {
|
|
28
|
+
force?: boolean;
|
|
29
|
+
}): Promise<void>;
|
|
30
|
+
archiveTask(orgId: string, taskId: string): Promise<void>;
|
|
31
|
+
restoreTask(orgId: string, taskId: string): Promise<void>;
|
|
32
|
+
watchTask(orgId: string, taskId: string): Promise<void>;
|
|
33
|
+
unwatchTask(orgId: string, taskId: string): Promise<void>;
|
|
34
|
+
getTaskWatchers(orgId: string, taskId: string): Promise<TaskWatcher[]>;
|
|
35
|
+
subscribeTaskMember(orgId: string, taskId: string, userId: string): Promise<void>;
|
|
36
|
+
unsubscribeTaskMember(orgId: string, taskId: string, userId: string): Promise<void>;
|
|
37
|
+
watchThread(threadRootId: string): Promise<void>;
|
|
38
|
+
unwatchThread(threadRootId: string): Promise<void>;
|
|
39
|
+
getThreadWatchers(threadRootId: string): Promise<ThreadWatcher[]>;
|
|
40
|
+
isWatchingThread(threadRootId: string): Promise<boolean>;
|
|
41
|
+
getSubtasks(orgId: string, taskId: string): Promise<Task[]>;
|
|
42
|
+
createTaskRelation(orgId: string, taskId: string, data: CreateTaskRelationRequest): Promise<TaskRelation>;
|
|
43
|
+
getTaskRelations(orgId: string, taskId: string): Promise<TaskRelation[]>;
|
|
44
|
+
listTaskRelationsByTarget(orgId: string, params: {
|
|
45
|
+
target_type: TaskRelationTargetType;
|
|
46
|
+
target_id: string;
|
|
47
|
+
}): Promise<TaskRelation[]>;
|
|
48
|
+
deleteTaskRelation(orgId: string, taskId: string, relationId: string): Promise<void>;
|
|
49
|
+
getTaskComments(orgId: string, taskId: string, params?: {
|
|
50
|
+
limit?: number;
|
|
51
|
+
cursor?: string;
|
|
52
|
+
order?: string;
|
|
53
|
+
}): Promise<PaginatedResponse<TaskComment>>;
|
|
54
|
+
getTaskComment(orgId: string, taskId: string, commentId: string): Promise<TaskComment>;
|
|
55
|
+
createTaskComment(orgId: string, taskId: string, data: CreateTaskCommentRequest): Promise<TaskComment>;
|
|
56
|
+
updateTaskComment(orgId: string, taskId: string, commentId: string, data: UpdateTaskCommentRequest): Promise<TaskComment>;
|
|
57
|
+
deleteTaskComment(orgId: string, taskId: string, commentId: string): Promise<void>;
|
|
58
|
+
getTaskActivities(orgId: string, taskId: string, params?: {
|
|
59
|
+
limit?: number;
|
|
60
|
+
cursor?: string;
|
|
61
|
+
}): Promise<PaginatedResponse<TaskActivity>>;
|
|
62
|
+
createProject(orgId: string, data: CreateProjectRequest): Promise<Project>;
|
|
63
|
+
getProjects(orgId: string): Promise<Project[]>;
|
|
64
|
+
getProjectTaskSummary(orgId: string): Promise<ProjectTaskSummaryResponse>;
|
|
65
|
+
getProject(orgId: string, projectId: string): Promise<Project>;
|
|
66
|
+
updateProject(orgId: string, projectId: string, data: UpdateProjectRequest): Promise<Project>;
|
|
67
|
+
deleteProject(orgId: string, projectId: string): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=project-task-client.d.ts.map
|