huly-mcp-selfhost 2.1.0 → 3.2.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/.env.example +39 -2
- package/README.md +462 -16
- package/dist/connection.d.ts +8 -0
- package/dist/connection.js +13 -1
- package/dist/connection.js.map +1 -1
- package/dist/env.d.ts +1 -0
- package/dist/env.js +17 -0
- package/dist/env.js.map +1 -0
- package/dist/guard.d.ts +28 -0
- package/dist/guard.js +152 -0
- package/dist/guard.js.map +1 -0
- package/dist/guides/costs.md +48 -0
- package/dist/guides/features.md +49 -0
- package/dist/guides/onboarding.md +56 -0
- package/dist/guides/workflow.md +57 -0
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/junit-cli.d.ts +8 -0
- package/dist/junit-cli.js +106 -0
- package/dist/junit-cli.js.map +1 -0
- package/dist/registry.d.ts +18 -0
- package/dist/registry.js +318 -0
- package/dist/registry.js.map +1 -0
- package/dist/resources.d.ts +12 -0
- package/dist/resources.js +212 -0
- package/dist/resources.js.map +1 -0
- package/dist/schemas.d.ts +1269 -17
- package/dist/schemas.js +890 -97
- package/dist/schemas.js.map +1 -1
- package/dist/server.d.ts +27 -1
- package/dist/server.js +197 -128
- package/dist/server.js.map +1 -1
- package/dist/tools/activity.d.ts +10 -0
- package/dist/tools/activity.js +62 -0
- package/dist/tools/activity.js.map +1 -0
- package/dist/tools/agent.d.ts +156 -0
- package/dist/tools/agent.js +523 -0
- package/dist/tools/agent.js.map +1 -0
- package/dist/tools/attachments.d.ts +4 -4
- package/dist/tools/calendar.d.ts +49 -0
- package/dist/tools/calendar.js +116 -0
- package/dist/tools/calendar.js.map +1 -0
- package/dist/tools/cards.d.ts +87 -0
- package/dist/tools/cards.js +246 -0
- package/dist/tools/cards.js.map +1 -0
- package/dist/tools/channels.d.ts +76 -7
- package/dist/tools/channels.js +86 -5
- package/dist/tools/channels.js.map +1 -1
- package/dist/tools/comments.d.ts +16 -4
- package/dist/tools/comments.js +26 -9
- package/dist/tools/comments.js.map +1 -1
- package/dist/tools/components.d.ts +5 -5
- package/dist/tools/components.js +4 -22
- package/dist/tools/components.js.map +1 -1
- package/dist/tools/contacts.d.ts +69 -0
- package/dist/tools/contacts.js +130 -0
- package/dist/tools/contacts.js.map +1 -0
- package/dist/tools/crm.d.ts +61 -0
- package/dist/tools/crm.js +117 -0
- package/dist/tools/crm.js.map +1 -0
- package/dist/tools/documents.d.ts +35 -12
- package/dist/tools/documents.js +107 -22
- package/dist/tools/documents.js.map +1 -1
- package/dist/tools/drive.d.ts +107 -0
- package/dist/tools/drive.js +277 -0
- package/dist/tools/drive.js.map +1 -0
- package/dist/tools/fields.d.ts +33 -0
- package/dist/tools/fields.js +124 -0
- package/dist/tools/fields.js.map +1 -0
- package/dist/tools/generic.d.ts +72 -0
- package/dist/tools/generic.js +242 -0
- package/dist/tools/generic.js.map +1 -0
- package/dist/tools/github.d.ts +21 -0
- package/dist/tools/github.js +80 -0
- package/dist/tools/github.js.map +1 -0
- package/dist/tools/hr.d.ts +97 -0
- package/dist/tools/hr.js +150 -0
- package/dist/tools/hr.js.map +1 -0
- package/dist/tools/inbox.d.ts +23 -0
- package/dist/tools/inbox.js +76 -0
- package/dist/tools/inbox.js.map +1 -0
- package/dist/tools/inventory.d.ts +61 -0
- package/dist/tools/inventory.js +103 -0
- package/dist/tools/inventory.js.map +1 -0
- package/dist/tools/issues.d.ts +63 -12
- package/dist/tools/issues.js +259 -48
- package/dist/tools/issues.js.map +1 -1
- package/dist/tools/labels.d.ts +52 -4
- package/dist/tools/labels.js +86 -4
- package/dist/tools/labels.js.map +1 -1
- package/dist/tools/log-time.d.ts +15 -1
- package/dist/tools/log-time.js +70 -6
- package/dist/tools/log-time.js.map +1 -1
- package/dist/tools/meetings.d.ts +30 -0
- package/dist/tools/meetings.js +78 -0
- package/dist/tools/meetings.js.map +1 -0
- package/dist/tools/members.d.ts +1 -1
- package/dist/tools/members.js +17 -1
- package/dist/tools/members.js.map +1 -1
- package/dist/tools/message-templates.d.ts +54 -0
- package/dist/tools/message-templates.js +88 -0
- package/dist/tools/message-templates.js.map +1 -0
- package/dist/tools/milestones.d.ts +9 -9
- package/dist/tools/organizations.d.ts +5 -5
- package/dist/tools/organizations.js +2 -1
- package/dist/tools/organizations.js.map +1 -1
- package/dist/tools/overview.d.ts +55 -0
- package/dist/tools/overview.js +395 -0
- package/dist/tools/overview.js.map +1 -0
- package/dist/tools/planner.d.ts +60 -0
- package/dist/tools/planner.js +145 -0
- package/dist/tools/planner.js.map +1 -0
- package/dist/tools/process.d.ts +50 -0
- package/dist/tools/process.js +137 -0
- package/dist/tools/process.js.map +1 -0
- package/dist/tools/products.d.ts +17 -0
- package/dist/tools/products.js +45 -0
- package/dist/tools/products.js.map +1 -0
- package/dist/tools/projects.d.ts +17 -4
- package/dist/tools/projects.js +31 -2
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/qms.d.ts +57 -0
- package/dist/tools/qms.js +171 -0
- package/dist/tools/qms.js.map +1 -0
- package/dist/tools/recruiting.d.ts +112 -0
- package/dist/tools/recruiting.js +203 -0
- package/dist/tools/recruiting.js.map +1 -0
- package/dist/tools/relations.d.ts +45 -3
- package/dist/tools/relations.js +128 -39
- package/dist/tools/relations.js.map +1 -1
- package/dist/tools/search.d.ts +14 -1
- package/dist/tools/search.js +29 -1
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/sharing.d.ts +62 -0
- package/dist/tools/sharing.js +149 -0
- package/dist/tools/sharing.js.map +1 -0
- package/dist/tools/statuses.d.ts +3 -3
- package/dist/tools/surveys.d.ts +22 -0
- package/dist/tools/surveys.js +53 -0
- package/dist/tools/surveys.js.map +1 -0
- package/dist/tools/templates.d.ts +95 -0
- package/dist/tools/templates.js +260 -0
- package/dist/tools/templates.js.map +1 -0
- package/dist/tools/test-automation.d.ts +81 -0
- package/dist/tools/test-automation.js +225 -0
- package/dist/tools/test-automation.js.map +1 -0
- package/dist/tools/testing.d.ts +234 -0
- package/dist/tools/testing.js +401 -0
- package/dist/tools/testing.js.map +1 -0
- package/dist/tools/workspace-admin.d.ts +55 -0
- package/dist/tools/workspace-admin.js +117 -0
- package/dist/tools/workspace-admin.js.map +1 -0
- package/dist/tools/workspaces.d.ts +1 -1
- package/dist/utils/attributes.d.ts +37 -0
- package/dist/utils/attributes.js +188 -0
- package/dist/utils/attributes.js.map +1 -0
- package/dist/utils/classes.d.ts +51 -0
- package/dist/utils/classes.js +73 -0
- package/dist/utils/classes.js.map +1 -0
- package/dist/utils/content.d.ts +11 -0
- package/dist/utils/content.js +86 -0
- package/dist/utils/content.js.map +1 -0
- package/dist/utils/errors.js +1 -1
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/files.d.ts +5 -0
- package/dist/utils/files.js +50 -0
- package/dist/utils/files.js.map +1 -0
- package/dist/utils/format.d.ts +2 -0
- package/dist/utils/format.js +7 -13
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/junit.d.ts +13 -0
- package/dist/utils/junit.js +81 -0
- package/dist/utils/junit.js.map +1 -0
- package/dist/utils/markdown.js +9 -4
- package/dist/utils/markdown.js.map +1 -1
- package/dist/utils/meeting.d.ts +13 -0
- package/dist/utils/meeting.js +118 -0
- package/dist/utils/meeting.js.map +1 -0
- package/dist/utils/people.d.ts +25 -0
- package/dist/utils/people.js +80 -0
- package/dist/utils/people.js.map +1 -0
- package/dist/utils/redact.d.ts +3 -0
- package/dist/utils/redact.js +26 -0
- package/dist/utils/redact.js.map +1 -0
- package/dist/utils/resolve.d.ts +17 -0
- package/dist/utils/resolve.js +54 -0
- package/dist/utils/resolve.js.map +1 -0
- package/dist/utils/spec.d.ts +10 -0
- package/dist/utils/spec.js +90 -0
- package/dist/utils/spec.js.map +1 -0
- package/dist/utils/storage.js +7 -3
- package/dist/utils/storage.js.map +1 -1
- package/dist/utils/tasks.d.ts +22 -0
- package/dist/utils/tasks.js +81 -0
- package/dist/utils/tasks.js.map +1 -0
- package/dist/watch.d.ts +62 -0
- package/dist/watch.js +405 -0
- package/dist/watch.js.map +1 -0
- package/package.json +4 -3
- package/scripts/setup.js +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
export declare const listDrives: (args: {
|
|
2
|
+
workspace?: string | undefined;
|
|
3
|
+
}) => Promise<{
|
|
4
|
+
content: Array<{
|
|
5
|
+
type: 'text';
|
|
6
|
+
text: string;
|
|
7
|
+
}>;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const listDriveFiles: (args: {
|
|
10
|
+
workspace?: string | undefined;
|
|
11
|
+
drive: string;
|
|
12
|
+
folderId?: string | undefined;
|
|
13
|
+
recursive: boolean;
|
|
14
|
+
}) => Promise<{
|
|
15
|
+
content: Array<{
|
|
16
|
+
type: 'text';
|
|
17
|
+
text: string;
|
|
18
|
+
}>;
|
|
19
|
+
}>;
|
|
20
|
+
export declare const createFolder: (args: {
|
|
21
|
+
workspace: string;
|
|
22
|
+
drive: string;
|
|
23
|
+
title: string;
|
|
24
|
+
parentId?: string | undefined;
|
|
25
|
+
}) => Promise<{
|
|
26
|
+
content: Array<{
|
|
27
|
+
type: 'text';
|
|
28
|
+
text: string;
|
|
29
|
+
}>;
|
|
30
|
+
}>;
|
|
31
|
+
export declare const uploadFile: (args: {
|
|
32
|
+
workspace: string;
|
|
33
|
+
drive: string;
|
|
34
|
+
folderId?: string | undefined;
|
|
35
|
+
filename?: string | undefined;
|
|
36
|
+
contentBase64?: string | undefined;
|
|
37
|
+
localPath?: string | undefined;
|
|
38
|
+
mimeType?: string | undefined;
|
|
39
|
+
newVersion: boolean;
|
|
40
|
+
}) => Promise<{
|
|
41
|
+
content: Array<{
|
|
42
|
+
type: 'text';
|
|
43
|
+
text: string;
|
|
44
|
+
}>;
|
|
45
|
+
}>;
|
|
46
|
+
export declare const downloadFile: (args: {
|
|
47
|
+
workspace?: string | undefined;
|
|
48
|
+
fileId: string;
|
|
49
|
+
version?: number | undefined;
|
|
50
|
+
savePath?: string | undefined;
|
|
51
|
+
}) => Promise<{
|
|
52
|
+
content: Array<{
|
|
53
|
+
type: 'text';
|
|
54
|
+
text: string;
|
|
55
|
+
}>;
|
|
56
|
+
}>;
|
|
57
|
+
export declare const updateDriveItem: (args: {
|
|
58
|
+
workspace: string;
|
|
59
|
+
itemId: string;
|
|
60
|
+
title?: string | undefined;
|
|
61
|
+
parentId?: string | null | undefined;
|
|
62
|
+
}) => Promise<{
|
|
63
|
+
content: Array<{
|
|
64
|
+
type: 'text';
|
|
65
|
+
text: string;
|
|
66
|
+
}>;
|
|
67
|
+
}>;
|
|
68
|
+
export declare const deleteDriveItem: (args: {
|
|
69
|
+
workspace: string;
|
|
70
|
+
itemId: string;
|
|
71
|
+
recursive: boolean;
|
|
72
|
+
}) => Promise<{
|
|
73
|
+
content: Array<{
|
|
74
|
+
type: 'text';
|
|
75
|
+
text: string;
|
|
76
|
+
}>;
|
|
77
|
+
}>;
|
|
78
|
+
export declare const listFileVersions: (args: {
|
|
79
|
+
workspace?: string | undefined;
|
|
80
|
+
fileId: string;
|
|
81
|
+
}) => Promise<{
|
|
82
|
+
content: Array<{
|
|
83
|
+
type: 'text';
|
|
84
|
+
text: string;
|
|
85
|
+
}>;
|
|
86
|
+
}>;
|
|
87
|
+
export declare const restoreFileVersion: (args: {
|
|
88
|
+
workspace: string;
|
|
89
|
+
fileId: string;
|
|
90
|
+
version: number;
|
|
91
|
+
}) => Promise<{
|
|
92
|
+
content: Array<{
|
|
93
|
+
type: 'text';
|
|
94
|
+
text: string;
|
|
95
|
+
}>;
|
|
96
|
+
}>;
|
|
97
|
+
export declare const createDrive: (args: {
|
|
98
|
+
workspace: string;
|
|
99
|
+
name: string;
|
|
100
|
+
description?: string | undefined;
|
|
101
|
+
isPrivate: boolean;
|
|
102
|
+
}) => Promise<{
|
|
103
|
+
content: Array<{
|
|
104
|
+
type: 'text';
|
|
105
|
+
text: string;
|
|
106
|
+
}>;
|
|
107
|
+
}>;
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDrive = exports.restoreFileVersion = exports.listFileVersions = exports.deleteDriveItem = exports.updateDriveItem = exports.downloadFile = exports.uploadFile = exports.createFolder = exports.listDriveFiles = exports.listDrives = void 0;
|
|
4
|
+
// Drive: drives (spaces) with folders and versioned files. Mirrors Huly's drive utils:
|
|
5
|
+
// File.file points at the current FileVersion; the blob, size and type live on the version.
|
|
6
|
+
// path = ancestor folder ids, nearest first; top level = drive:ids:Root.
|
|
7
|
+
const core_1 = require("@hcengineering/core");
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
9
|
+
const connection_1 = require("../connection");
|
|
10
|
+
const errors_1 = require("../utils/errors");
|
|
11
|
+
const classes_1 = require("../utils/classes");
|
|
12
|
+
const storage_1 = require("../utils/storage");
|
|
13
|
+
const content_1 = require("../utils/content");
|
|
14
|
+
const files_1 = require("../utils/files");
|
|
15
|
+
const format_1 = require("../utils/format");
|
|
16
|
+
const people_1 = require("../utils/people");
|
|
17
|
+
const MAX_INLINE = 200_000;
|
|
18
|
+
const size = (n) => {
|
|
19
|
+
if (n == null)
|
|
20
|
+
return '?';
|
|
21
|
+
if (n < 1024)
|
|
22
|
+
return `${n} B`;
|
|
23
|
+
if (n < 1024 * 1024)
|
|
24
|
+
return `${(n / 1024).toFixed(1)} KB`;
|
|
25
|
+
return `${(n / 1024 / 1024).toFixed(1)} MB`;
|
|
26
|
+
};
|
|
27
|
+
async function findDrive(client, ref) {
|
|
28
|
+
const drives = await client.findAll(classes_1.C.Drive, {});
|
|
29
|
+
const k = ref.trim().toLowerCase();
|
|
30
|
+
const hits = drives.filter((d) => d._id === ref || String(d.name).toLowerCase() === k);
|
|
31
|
+
if (hits.length === 1)
|
|
32
|
+
return hits[0];
|
|
33
|
+
if (hits.length > 1)
|
|
34
|
+
throw new Error(`Drive '${ref}' is ambiguous: ${hits.map((d) => d._id).join(', ')}.`);
|
|
35
|
+
throw new Error(`Drive '${ref}' not found. Available: ${drives.map((d) => d.name).join(', ') || 'none'}.`);
|
|
36
|
+
}
|
|
37
|
+
async function findItem(client, id) {
|
|
38
|
+
const item = await client.findOne(classes_1.C.DriveResource, { _id: id });
|
|
39
|
+
if (item == null)
|
|
40
|
+
throw new Error(`Drive item '${id}' not found.`);
|
|
41
|
+
return item;
|
|
42
|
+
}
|
|
43
|
+
async function findFolder(client, drive, folderId) {
|
|
44
|
+
if (folderId == null)
|
|
45
|
+
return undefined;
|
|
46
|
+
const folder = await client.findOne(classes_1.C.Folder, { _id: folderId });
|
|
47
|
+
if (folder == null)
|
|
48
|
+
throw new Error(`Folder '${folderId}' not found.`);
|
|
49
|
+
if (drive != null && folder.space !== drive._id)
|
|
50
|
+
throw new Error(`Folder '${String(folder.title)}' is in another drive.`);
|
|
51
|
+
return folder;
|
|
52
|
+
}
|
|
53
|
+
const isFolder = (item) => item._class === classes_1.C.Folder;
|
|
54
|
+
exports.listDrives = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
55
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
56
|
+
const drives = await client.findAll(classes_1.C.Drive, { archived: false });
|
|
57
|
+
if (drives.length === 0)
|
|
58
|
+
return 'No drives.';
|
|
59
|
+
const lines = [];
|
|
60
|
+
for (const d of drives) {
|
|
61
|
+
const items = await client.findAll(classes_1.C.DriveResource, { space: d._id });
|
|
62
|
+
const files = items.filter((i) => !isFolder(i)).length;
|
|
63
|
+
lines.push(`- **${String(d.name)}** — ${files} file(s), ${items.length - files} folder(s)${d.private === true ? ' · private' : ''} — \`${String(d._id)}\``);
|
|
64
|
+
}
|
|
65
|
+
return `## Drives (${drives.length})\n\n${lines.join('\n')}`;
|
|
66
|
+
});
|
|
67
|
+
exports.listDriveFiles = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
68
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
69
|
+
const drive = await findDrive(client, args.drive);
|
|
70
|
+
const folder = await findFolder(client, drive, args.folderId);
|
|
71
|
+
const items = await client.findAll(classes_1.C.DriveResource, { space: drive._id }, { sort: { title: core_1.SortingOrder.Ascending } });
|
|
72
|
+
const versions = await client.findAll(classes_1.C.FileVersion, { space: drive._id });
|
|
73
|
+
const current = new Map(versions.map((v) => [v._id, v]));
|
|
74
|
+
const root = folder?._id ?? classes_1.IDS.DriveRoot;
|
|
75
|
+
const byParent = new Map();
|
|
76
|
+
for (const i of items)
|
|
77
|
+
byParent.set(i.parent, [...(byParent.get(i.parent) ?? []), i]);
|
|
78
|
+
const lines = [];
|
|
79
|
+
const walk = (parent, depth) => {
|
|
80
|
+
const kids = (byParent.get(parent) ?? []).sort((a, b) => Number(isFolder(b)) - Number(isFolder(a)) || String(a.title).localeCompare(String(b.title)));
|
|
81
|
+
for (const i of kids) {
|
|
82
|
+
if (isFolder(i)) {
|
|
83
|
+
lines.push(`${' '.repeat(depth)}- 📁 **${String(i.title)}** — \`${String(i._id)}\``);
|
|
84
|
+
if (args.recursive && depth < 20)
|
|
85
|
+
walk(i._id, depth + 1);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const v = current.get(i.file);
|
|
89
|
+
lines.push(`${' '.repeat(depth)}- ${String(i.title)} (${size(v?.size)}, ${String(v?.type ?? '?')}, v${String(i.version ?? 1)}, ${(0, format_1.formatDate)(i.modifiedOn)}) — \`${String(i._id)}\``);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
walk(root, 0);
|
|
94
|
+
if (lines.length === 0)
|
|
95
|
+
return `${folder != null ? `Folder "${String(folder.title)}"` : `Drive "${String(drive.name)}"`} is empty.`;
|
|
96
|
+
return `## ${String(drive.name)}${folder != null ? ` / ${String(folder.title)}` : ''}\n\n${lines.join('\n')}`;
|
|
97
|
+
});
|
|
98
|
+
exports.createFolder = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
99
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
100
|
+
const drive = await findDrive(client, args.drive);
|
|
101
|
+
const parent = await findFolder(client, drive, args.parentId);
|
|
102
|
+
const parentId = parent?._id ?? classes_1.IDS.DriveRoot;
|
|
103
|
+
const existing = await client.findOne(classes_1.C.Folder, { space: drive._id, parent: parentId, title: args.title });
|
|
104
|
+
if (existing != null)
|
|
105
|
+
return `ℹ️ Folder **${args.title}** already exists — \`${String(existing._id)}\`.`;
|
|
106
|
+
const id = await client.createDoc(classes_1.C.Folder, drive._id, { title: args.title, parent: parentId, path: parent != null ? [parent._id, ...(parent.path ?? [])] : [] });
|
|
107
|
+
return `✅ Folder **${args.title}** created — \`${String(id)}\`.`;
|
|
108
|
+
});
|
|
109
|
+
exports.uploadFile = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
110
|
+
if ((args.contentBase64 == null) === (args.localPath == null))
|
|
111
|
+
throw new Error('Pass either contentBase64 or localPath.');
|
|
112
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
113
|
+
const drive = await findDrive(client, args.drive);
|
|
114
|
+
const parent = await findFolder(client, drive, args.folderId);
|
|
115
|
+
const parentId = parent?._id ?? classes_1.IDS.DriveRoot;
|
|
116
|
+
const bytes = args.localPath != null ? (0, node_fs_1.readFileSync)((0, files_1.localPath)(args.localPath)) : Buffer.from(args.contentBase64, 'base64');
|
|
117
|
+
const name = args.filename ?? (args.localPath != null ? args.localPath.split(/[\\/]/).pop() : undefined);
|
|
118
|
+
if (name == null || name === '')
|
|
119
|
+
throw new Error('filename is required with contentBase64.');
|
|
120
|
+
const type = args.mimeType ?? (0, files_1.mimeFromName)(name);
|
|
121
|
+
const { wsToken, workspaceUuid } = await (0, connection_1.getWorkspaceInfo)(args.workspace);
|
|
122
|
+
const uploaded = await (0, storage_1.uploadBlob)(wsToken, workspaceUuid, `${(0, core_1.generateId)()}-${name}`, new Blob([bytes], { type }));
|
|
123
|
+
const data = { title: name, file: uploaded.id, size: uploaded.size, type, lastModified: Date.now() };
|
|
124
|
+
const existing = await client.findOne(classes_1.C.File, { space: drive._id, parent: parentId, title: name });
|
|
125
|
+
if (existing != null && args.newVersion) {
|
|
126
|
+
// Like Huly's createFileVersion: bump the version counter, add the version, point the file at it.
|
|
127
|
+
const inc = await client.updateDoc(classes_1.C.File, existing.space, existing._id, { $inc: { version: 1 } }, true);
|
|
128
|
+
const version = inc?.object?.version ?? (existing.version ?? 1) + 1;
|
|
129
|
+
const versionId = await client.addCollection(classes_1.C.FileVersion, existing.space, existing._id, classes_1.C.File, 'versions', { ...data, version });
|
|
130
|
+
await client.updateDoc(classes_1.C.File, existing.space, existing._id, { file: versionId });
|
|
131
|
+
return `✅ **${name}** updated to version ${String(version)} (${size(uploaded.size)}) — \`${String(existing._id)}\`.`;
|
|
132
|
+
}
|
|
133
|
+
const fileId = (0, core_1.generateId)();
|
|
134
|
+
const versionId = (0, core_1.generateId)();
|
|
135
|
+
await client.createDoc(classes_1.C.File, drive._id, { title: name, parent: parentId, path: parent != null ? [parent._id, ...(parent.path ?? [])] : [], file: versionId, version: 1, versions: 0 }, fileId);
|
|
136
|
+
await client.addCollection(classes_1.C.FileVersion, drive._id, fileId, classes_1.C.File, 'versions', { ...data, version: 1 }, versionId);
|
|
137
|
+
return `✅ **${name}** uploaded (${size(uploaded.size)}) — \`${fileId}\`.${existing != null ? ' (A file with this name already existed; newVersion=false kept both.)' : ''}`;
|
|
138
|
+
});
|
|
139
|
+
async function versionOf(client, file, version) {
|
|
140
|
+
if (version == null) {
|
|
141
|
+
const v = await client.findOne(classes_1.C.FileVersion, { _id: file.file });
|
|
142
|
+
if (v == null)
|
|
143
|
+
throw new Error('Current version of this file not found.');
|
|
144
|
+
return v;
|
|
145
|
+
}
|
|
146
|
+
const v = await client.findOne(classes_1.C.FileVersion, { attachedTo: file._id, version });
|
|
147
|
+
if (v == null)
|
|
148
|
+
throw new Error(`Version ${version} of "${String(file.title)}" not found.`);
|
|
149
|
+
return v;
|
|
150
|
+
}
|
|
151
|
+
exports.downloadFile = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
152
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
153
|
+
const file = await findItem(client, args.fileId);
|
|
154
|
+
if (isFolder(file))
|
|
155
|
+
throw new Error(`"${String(file.title)}" is a folder.`);
|
|
156
|
+
const v = await versionOf(client, file, args.version);
|
|
157
|
+
if (args.savePath != null) {
|
|
158
|
+
const target = (0, files_1.localPath)(args.savePath);
|
|
159
|
+
const bytes = await (0, content_1.downloadBlob)(args.workspace, v.file);
|
|
160
|
+
(0, node_fs_1.writeFileSync)(target, bytes);
|
|
161
|
+
return `✅ Saved **${String(file.title)}** v${String(v.version)} (${size(bytes.length)}) to \`${target}\`.`;
|
|
162
|
+
}
|
|
163
|
+
if ((v.size ?? 0) > MAX_INLINE)
|
|
164
|
+
throw new Error(`"${String(file.title)}" is ${size(v.size)} — too large to return inline. Use savePath (needs HULY_FILE_ROOT).`);
|
|
165
|
+
const bytes = await (0, content_1.downloadBlob)(args.workspace, v.file);
|
|
166
|
+
const head = `## ${String(file.title)} (v${String(v.version)}, ${size(bytes.length)}, ${String(v.type)})\n\n`;
|
|
167
|
+
if ((0, files_1.isTextType)(v.type))
|
|
168
|
+
return head + '```\n' + bytes.toString('utf8') + '\n```';
|
|
169
|
+
return head + `Binary content, base64:\n\n${bytes.toString('base64')}`;
|
|
170
|
+
});
|
|
171
|
+
/**
|
|
172
|
+
* All folders and files below the given folders (any depth). Walks `parent` level by level:
|
|
173
|
+
* the server does not match a value inside the `path` array.
|
|
174
|
+
*/
|
|
175
|
+
async function subtree(client, folderIds) {
|
|
176
|
+
const out = [];
|
|
177
|
+
let level = folderIds;
|
|
178
|
+
for (let depth = 0; depth < 50 && level.length > 0; depth++) {
|
|
179
|
+
const kids = await client.findAll(classes_1.C.DriveResource, { parent: { $in: level } });
|
|
180
|
+
out.push(...kids);
|
|
181
|
+
level = kids.filter(isFolder).map((k) => k._id);
|
|
182
|
+
}
|
|
183
|
+
return out;
|
|
184
|
+
}
|
|
185
|
+
exports.updateDriveItem = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
186
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
187
|
+
const item = await findItem(client, args.itemId);
|
|
188
|
+
if (args.title == null && args.parentId === undefined)
|
|
189
|
+
throw new Error('Nothing to change: pass title or parentId.');
|
|
190
|
+
const done = [];
|
|
191
|
+
if (args.title != null && args.title !== item.title) {
|
|
192
|
+
await client.updateDoc(item._class, item.space, item._id, { title: args.title });
|
|
193
|
+
done.push(`renamed to "${args.title}"`);
|
|
194
|
+
}
|
|
195
|
+
if (args.parentId !== undefined) {
|
|
196
|
+
const parent = args.parentId != null ? await findFolder(client, undefined, args.parentId) : undefined;
|
|
197
|
+
const space = parent?.space ?? item.space;
|
|
198
|
+
const below = isFolder(item) ? await subtree(client, [item._id]) : [];
|
|
199
|
+
if (parent != null && (parent._id === item._id || below.some((b) => b._id === parent._id)))
|
|
200
|
+
throw new Error('A folder cannot be moved into itself or one of its subfolders.');
|
|
201
|
+
const path = parent != null ? [parent._id, ...(parent.path ?? [])] : [];
|
|
202
|
+
await client.updateDoc(item._class, item.space, item._id, { space, parent: parent?._id ?? classes_1.IDS.DriveRoot, path });
|
|
203
|
+
// Like Huly's moveResources, but for every descendant: drop the old ancestors, append the new ones.
|
|
204
|
+
for (const b of below) {
|
|
205
|
+
const keep = b.path.slice(0, b.path.indexOf(item._id) + 1);
|
|
206
|
+
await client.updateDoc(b._class, b.space, b._id, { space, path: [...keep, ...path] });
|
|
207
|
+
}
|
|
208
|
+
if (space !== item.space) {
|
|
209
|
+
const files = [item, ...below].filter((x) => !isFolder(x));
|
|
210
|
+
for (const f of files) {
|
|
211
|
+
const versions = await client.findAll(classes_1.C.FileVersion, { attachedTo: f._id });
|
|
212
|
+
for (const v of versions)
|
|
213
|
+
await client.updateDoc(classes_1.C.FileVersion, v.space, v._id, { space });
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
done.push(parent != null ? `moved into "${String(parent.title)}"` : 'moved to the top level');
|
|
217
|
+
}
|
|
218
|
+
return `✅ **${String(item.title)}**: ${done.join(', ') || 'no change'}.`;
|
|
219
|
+
});
|
|
220
|
+
exports.deleteDriveItem = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
221
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
222
|
+
const item = await findItem(client, args.itemId);
|
|
223
|
+
const below = isFolder(item) ? await subtree(client, [item._id]) : [];
|
|
224
|
+
if (below.length > 0 && !args.recursive)
|
|
225
|
+
throw new Error(`Folder "${String(item.title)}" contains ${below.length} item(s). Pass recursive: true to delete it with its contents.`);
|
|
226
|
+
// Deepest first, so no item is left without its parent.
|
|
227
|
+
const all = [...below.sort((a, b) => (b.path?.length ?? 0) - (a.path?.length ?? 0)), item];
|
|
228
|
+
for (const x of all) {
|
|
229
|
+
if (!isFolder(x)) {
|
|
230
|
+
// Versions are an attached collection; remove them too (their blobs are cleaned up by the server).
|
|
231
|
+
const versions = await client.findAll(classes_1.C.FileVersion, { attachedTo: x._id });
|
|
232
|
+
for (const v of versions)
|
|
233
|
+
await client.removeCollection(classes_1.C.FileVersion, v.space, v._id, x._id, classes_1.C.File, 'versions');
|
|
234
|
+
}
|
|
235
|
+
await client.removeDoc(x._class, x.space, x._id);
|
|
236
|
+
}
|
|
237
|
+
return `✅ Deleted **${String(item.title)}**${below.length > 0 ? ` with ${below.length} item(s)` : ''}.`;
|
|
238
|
+
});
|
|
239
|
+
exports.listFileVersions = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
240
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
241
|
+
const file = await findItem(client, args.fileId);
|
|
242
|
+
const versions = await client.findAll(classes_1.C.FileVersion, { attachedTo: file._id }, { sort: { version: core_1.SortingOrder.Descending } });
|
|
243
|
+
if (versions.length === 0)
|
|
244
|
+
return `No versions of "${String(file.title)}".`;
|
|
245
|
+
const lines = versions.sort((a, b) => b.version - a.version).map((v) => `- v${String(v.version)}${v._id === file.file ? ' (current)' : ''} — ${size(v.size)}, ${(0, format_1.formatDate)(v.modifiedOn ?? v.lastModified)} — \`${String(v._id)}\``);
|
|
246
|
+
return `## Versions of ${String(file.title)} (${versions.length})\n\n${lines.join('\n')}`;
|
|
247
|
+
});
|
|
248
|
+
exports.restoreFileVersion = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
249
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
250
|
+
const file = await findItem(client, args.fileId);
|
|
251
|
+
const v = await versionOf(client, file, args.version);
|
|
252
|
+
if (v._id === file.file)
|
|
253
|
+
return `v${String(v.version)} is already the current version.`;
|
|
254
|
+
// Like Huly's restoreFileVersion: the file simply points at the older version again.
|
|
255
|
+
await client.updateDoc(classes_1.C.File, file.space, file._id, { file: v._id });
|
|
256
|
+
return `✅ **${String(file.title)}** restored to v${String(v.version)}.`;
|
|
257
|
+
});
|
|
258
|
+
exports.createDrive = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
259
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
260
|
+
const drives = await client.findAll(classes_1.C.Drive, {});
|
|
261
|
+
const same = drives.find((d) => String(d.name).toLowerCase() === args.name.toLowerCase());
|
|
262
|
+
if (same != null)
|
|
263
|
+
return `ℹ️ Drive **${String(same.name)}** already exists — \`${String(same._id)}\`.`;
|
|
264
|
+
const me = await (0, people_1.currentAccountUuid)(client);
|
|
265
|
+
const id = await client.createDoc(classes_1.C.Drive, 'core:space:Space', {
|
|
266
|
+
name: args.name,
|
|
267
|
+
description: args.description ?? '',
|
|
268
|
+
private: args.isPrivate,
|
|
269
|
+
archived: false,
|
|
270
|
+
autoJoin: false,
|
|
271
|
+
members: [me],
|
|
272
|
+
owners: [me],
|
|
273
|
+
type: 'drive:spaceType:DefaultDrive'
|
|
274
|
+
});
|
|
275
|
+
return `✅ Drive **${args.name}** created — \`${String(id)}\`.`;
|
|
276
|
+
});
|
|
277
|
+
//# sourceMappingURL=drive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../src/tools/drive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare const listCustomFields: (args: {
|
|
2
|
+
workspace?: string | undefined;
|
|
3
|
+
target?: string | undefined;
|
|
4
|
+
object?: string | undefined;
|
|
5
|
+
}) => Promise<{
|
|
6
|
+
content: Array<{
|
|
7
|
+
type: 'text';
|
|
8
|
+
text: string;
|
|
9
|
+
}>;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const createCustomField: (args: {
|
|
12
|
+
workspace: string;
|
|
13
|
+
target: string;
|
|
14
|
+
label: string;
|
|
15
|
+
type: "boolean" | "date" | "enum" | "markup" | "number" | "ref" | "string";
|
|
16
|
+
enumValues?: string[] | undefined;
|
|
17
|
+
refClass?: string | undefined;
|
|
18
|
+
}) => Promise<{
|
|
19
|
+
content: Array<{
|
|
20
|
+
type: 'text';
|
|
21
|
+
text: string;
|
|
22
|
+
}>;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const setCustomFields: (args: {
|
|
25
|
+
workspace: string;
|
|
26
|
+
object: string;
|
|
27
|
+
fields: Record<string, string | number | boolean | null>;
|
|
28
|
+
}) => Promise<{
|
|
29
|
+
content: Array<{
|
|
30
|
+
type: 'text';
|
|
31
|
+
text: string;
|
|
32
|
+
}>;
|
|
33
|
+
}>;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.setCustomFields = exports.createCustomField = exports.listCustomFields = void 0;
|
|
7
|
+
// Custom fields: define them on issues, card types/tags or any class, and set their values.
|
|
8
|
+
const tracker_1 = __importDefault(require("@hcengineering/tracker"));
|
|
9
|
+
const core_1 = require("@hcengineering/core");
|
|
10
|
+
const connection_1 = require("../connection");
|
|
11
|
+
const errors_1 = require("../utils/errors");
|
|
12
|
+
const classes_1 = require("../utils/classes");
|
|
13
|
+
const resolve_1 = require("../utils/resolve");
|
|
14
|
+
const attributes_1 = require("../utils/attributes");
|
|
15
|
+
/**
|
|
16
|
+
* Where fields live:
|
|
17
|
+
* - "issue" → all issues (tracker:class:Issue)
|
|
18
|
+
* - a project key ("PROJ") → issues of that project's task type (the type mixin, like Huly's project-type settings)
|
|
19
|
+
* - a card type or tag (name or id), or any class/mixin id
|
|
20
|
+
*/
|
|
21
|
+
async function resolveOwner(client, target) {
|
|
22
|
+
const h = client.getHierarchy();
|
|
23
|
+
const t = target.trim();
|
|
24
|
+
if (t.toLowerCase() === 'issue')
|
|
25
|
+
return { id: tracker_1.default.class.Issue, label: 'all issues' };
|
|
26
|
+
if (/^[A-Z][A-Z0-9]*$/.test(t)) {
|
|
27
|
+
const project = await client.findOne(tracker_1.default.class.Project, { identifier: t });
|
|
28
|
+
if (project != null) {
|
|
29
|
+
const projectType = await client.findOne('task:class:ProjectType', { _id: project.type });
|
|
30
|
+
const taskTypes = await client.findAll('task:class:TaskType', { _id: { $in: projectType?.tasks ?? [] } });
|
|
31
|
+
const issueType = taskTypes.find((tt) => tt.ofClass === tracker_1.default.class.Issue && tt._id !== 'tracker:taskTypes:Issue') ?? taskTypes.find((tt) => tt.ofClass === tracker_1.default.class.Issue);
|
|
32
|
+
if (issueType?.targetClass == null)
|
|
33
|
+
throw new Error(`Project ${t} has no issue task type.`);
|
|
34
|
+
return { id: issueType.targetClass, label: `issues of project type "${String(projectType?.name ?? project.type)}" (${t})` };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const c = h.getClass(t);
|
|
39
|
+
return { id: c._id, label: (0, attributes_1.labelText)(c.label) };
|
|
40
|
+
}
|
|
41
|
+
catch { /* not a class id */ }
|
|
42
|
+
const cards = h.getDescendants(classes_1.C.Card).map((id) => h.getClass(id)).filter((c) => (0, attributes_1.labelText)(c.label).toLowerCase() === t.toLowerCase());
|
|
43
|
+
if (cards.length === 1)
|
|
44
|
+
return { id: cards[0]._id, label: `card ${cards[0].kind === 2 ? 'tag' : 'type'} ${(0, attributes_1.labelText)(cards[0].label)}` };
|
|
45
|
+
if (cards.length > 1)
|
|
46
|
+
throw new Error(`'${target}' matches several card types: ${cards.map((c) => c._id).join(', ')}.`);
|
|
47
|
+
throw new Error(`Unknown target '${target}'. Use "issue", a project key, a card type/tag name or a class id.`);
|
|
48
|
+
}
|
|
49
|
+
/** Issue (PROJ-12), card id or any document id. */
|
|
50
|
+
async function resolveDoc(client, ref) {
|
|
51
|
+
const card = /^[A-Z][A-Z0-9]*-\d+$/.test(ref) ? undefined : await client.findOne(classes_1.C.Card, { _id: ref });
|
|
52
|
+
if (card != null)
|
|
53
|
+
return card;
|
|
54
|
+
const obj = await (0, resolve_1.resolveObject)(client, ref);
|
|
55
|
+
if (obj.doc == null)
|
|
56
|
+
throw new Error(`'${ref}' not found.`);
|
|
57
|
+
return obj.doc;
|
|
58
|
+
}
|
|
59
|
+
const typeName = (a) => {
|
|
60
|
+
const c = String(a.type?._class ?? '');
|
|
61
|
+
if (c === 'core:class:EnumOf')
|
|
62
|
+
return 'enum';
|
|
63
|
+
if (c === 'core:class:RefTo')
|
|
64
|
+
return `ref → ${String(a.type?.to)}`;
|
|
65
|
+
return c.replace(/^core:class:Type/, '').toLowerCase() || c;
|
|
66
|
+
};
|
|
67
|
+
exports.listCustomFields = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
68
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
69
|
+
if (args.object != null) {
|
|
70
|
+
const doc = await resolveDoc(client, args.object);
|
|
71
|
+
const fields = await (0, attributes_1.fieldsOf)(client, doc);
|
|
72
|
+
if (fields.length === 0)
|
|
73
|
+
return `No custom fields on this ${(0, attributes_1.labelText)(client.getHierarchy().getClass(doc._class).label)}.`;
|
|
74
|
+
return `## Custom fields\n\n${fields.map((f) => `- **${f.label}** (${typeName(f.attr)}): ${(0, attributes_1.showValue)(f, (0, attributes_1.valueOf)(doc, f))}`).join('\n')}`;
|
|
75
|
+
}
|
|
76
|
+
const owner = await resolveOwner(client, args.target ?? 'issue');
|
|
77
|
+
const attrs = await (0, attributes_1.fieldsDefinedOn)(client, owner.id);
|
|
78
|
+
if (attrs.length === 0)
|
|
79
|
+
return `No custom fields on ${owner.label}.`;
|
|
80
|
+
const enums = new Map();
|
|
81
|
+
for (const a of attrs) {
|
|
82
|
+
if (a.type?._class === 'core:class:EnumOf')
|
|
83
|
+
enums.set(a._id, (await client.findOne(classes_1.C.Enum, { _id: a.type.of }))?.enumValues ?? []);
|
|
84
|
+
}
|
|
85
|
+
return `## Custom fields on ${owner.label} (${attrs.length})\n\n${attrs.map((a) => `- **${(0, attributes_1.labelText)(a.label)}** (${typeName(a)}${enums.has(a._id) ? `: ${enums.get(a._id).join(', ')}` : ''}) — \`${String(a.name)}\``).join('\n')}`;
|
|
86
|
+
});
|
|
87
|
+
exports.createCustomField = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
88
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
89
|
+
const owner = await resolveOwner(client, args.target);
|
|
90
|
+
const existing = await (0, attributes_1.fieldsDefinedOn)(client, owner.id);
|
|
91
|
+
const same = existing.find((a) => (0, attributes_1.labelText)(a.label).toLowerCase() === args.label.toLowerCase());
|
|
92
|
+
if (same != null)
|
|
93
|
+
return `ℹ️ Field **${args.label}** already exists on ${owner.label} — \`${String(same.name)}\`.`;
|
|
94
|
+
const type = await (0, attributes_1.makeType)(client, args.type, { enumValues: args.enumValues, enumName: args.label, refClass: args.refClass });
|
|
95
|
+
const name = 'custom' + (0, core_1.generateId)();
|
|
96
|
+
// Like Huly's settings dialog (CreateAttribute.svelte).
|
|
97
|
+
await client.createDoc(classes_1.C.Attribute, 'core:space:Model', {
|
|
98
|
+
attributeOf: owner.id,
|
|
99
|
+
name,
|
|
100
|
+
label: (0, attributes_1.embeddedLabel)(args.label),
|
|
101
|
+
isCustom: true,
|
|
102
|
+
type,
|
|
103
|
+
defaultValue: null,
|
|
104
|
+
readonly: false,
|
|
105
|
+
automationOnly: false,
|
|
106
|
+
required: false
|
|
107
|
+
});
|
|
108
|
+
return `✅ Field **${args.label}** (${args.type}) added to ${owner.label} — \`${name}\`.`;
|
|
109
|
+
});
|
|
110
|
+
exports.setCustomFields = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
111
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
112
|
+
if (Object.keys(args.fields).length === 0)
|
|
113
|
+
throw new Error('Nothing to set: fields is empty.');
|
|
114
|
+
const doc = await resolveDoc(client, args.object);
|
|
115
|
+
const fields = await (0, attributes_1.fieldsOf)(client, doc);
|
|
116
|
+
const values = [];
|
|
117
|
+
for (const [key, raw] of Object.entries(args.fields)) {
|
|
118
|
+
const field = (0, attributes_1.findField)(fields, key);
|
|
119
|
+
values.push({ field, value: await (0, attributes_1.coerceValue)(client, field, raw) });
|
|
120
|
+
}
|
|
121
|
+
await (0, attributes_1.writeFields)(client, doc, values);
|
|
122
|
+
return `✅ Set ${values.map((v) => `**${String(v.field.label)}** = ${(0, attributes_1.showValue)(v.field, v.value)}`).join(', ')}.`;
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=fields.js.map
|