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
package/dist/tools/hr.js
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteTimeOff = exports.createTimeOff = exports.listTimeOff = exports.setDepartment = exports.deleteDepartment = exports.createDepartment = exports.listDepartments = exports.tzText = exports.REQUEST_TYPES = exports.HR = void 0;
|
|
4
|
+
exports.toTzDate = toTzDate;
|
|
5
|
+
// HR (hr plugin): departments (a tree of docs in the workspace space), staff membership
|
|
6
|
+
// (Staff mixin on employees; the server keeps Department.members in sync) and time-off requests.
|
|
7
|
+
const core_1 = require("@hcengineering/core");
|
|
8
|
+
const connection_1 = require("../connection");
|
|
9
|
+
const errors_1 = require("../utils/errors");
|
|
10
|
+
const format_1 = require("../utils/format");
|
|
11
|
+
const people_1 = require("../utils/people");
|
|
12
|
+
const tasks_1 = require("../utils/tasks");
|
|
13
|
+
exports.HR = {
|
|
14
|
+
Department: 'hr:class:Department',
|
|
15
|
+
Staff: 'hr:mixin:Staff',
|
|
16
|
+
Request: 'hr:class:Request',
|
|
17
|
+
Head: 'hr:ids:Head',
|
|
18
|
+
Space: 'core:space:Workspace'
|
|
19
|
+
};
|
|
20
|
+
exports.REQUEST_TYPES = {
|
|
21
|
+
vacation: 'hr:ids:Vacation',
|
|
22
|
+
sick: 'hr:ids:Sick',
|
|
23
|
+
pto: 'hr:ids:PTO',
|
|
24
|
+
'pto-half-day': 'hr:ids:PTO2',
|
|
25
|
+
overtime: 'hr:ids:Overtime',
|
|
26
|
+
'overtime-half-day': 'hr:ids:Overtime2',
|
|
27
|
+
remote: 'hr:ids:Remote'
|
|
28
|
+
};
|
|
29
|
+
const TYPE_NAME = new Map(Object.entries(exports.REQUEST_TYPES).map(([k, v]) => [v, k]));
|
|
30
|
+
function toTzDate(value, field) {
|
|
31
|
+
const m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value.trim());
|
|
32
|
+
if (m == null)
|
|
33
|
+
throw new Error(`${field} must be YYYY-MM-DD, got '${value}'.`);
|
|
34
|
+
const d = new Date(Number(m[1]), Number(m[2]) - 1, Number(m[3]));
|
|
35
|
+
if (d.getMonth() !== Number(m[2]) - 1)
|
|
36
|
+
throw new Error(`${field} '${value}' is not a real date.`);
|
|
37
|
+
return { year: d.getFullYear(), month: d.getMonth(), day: d.getDate(), offset: d.getTimezoneOffset() };
|
|
38
|
+
}
|
|
39
|
+
const tzText = (t) => t == null ? '?' : `${t.year}-${String(t.month + 1).padStart(2, '0')}-${String(t.day).padStart(2, '0')}`;
|
|
40
|
+
exports.tzText = tzText;
|
|
41
|
+
const tzKey = (t) => t.year * 10000 + t.month * 100 + t.day;
|
|
42
|
+
async function findDepartment(client, ref) {
|
|
43
|
+
if (ref.toLowerCase() === 'organization' || ref === exports.HR.Head) {
|
|
44
|
+
const head = await client.findOne(exports.HR.Department, { _id: exports.HR.Head });
|
|
45
|
+
if (head != null)
|
|
46
|
+
return head;
|
|
47
|
+
}
|
|
48
|
+
return await (0, tasks_1.findNamed)(client, exports.HR.Department, ref, 'Department');
|
|
49
|
+
}
|
|
50
|
+
exports.listDepartments = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
51
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
52
|
+
const deps = await client.findAll(exports.HR.Department, {});
|
|
53
|
+
if (deps.length === 0)
|
|
54
|
+
return 'No departments (is the HR module enabled?).';
|
|
55
|
+
const names = await (0, people_1.peopleNames)(client);
|
|
56
|
+
const staff = await client.findAll(exports.HR.Staff, {});
|
|
57
|
+
const lines = [];
|
|
58
|
+
const walk = (parent, depth) => {
|
|
59
|
+
for (const d of deps.filter((x) => (x.parent ?? undefined) === parent && x._id !== parent)) {
|
|
60
|
+
const people = staff.filter((s) => s[exports.HR.Staff]?.department === d._id).map((s) => names.get(s._id) ?? '?');
|
|
61
|
+
const lead = d.teamLead != null ? ` · lead ${names.get(d.teamLead) ?? '?'}` : '';
|
|
62
|
+
lines.push(`${' '.repeat(depth)}- **${String(d.name)}**${lead} · ${people.length > 0 ? people.join(', ') : 'no members'} — \`${String(d._id)}\``);
|
|
63
|
+
walk(d._id, depth + 1);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
walk(undefined, 0);
|
|
67
|
+
return `## Departments (${deps.length})\n\n${lines.join('\n')}`;
|
|
68
|
+
});
|
|
69
|
+
exports.createDepartment = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
70
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
71
|
+
const parent = await findDepartment(client, args.parent ?? exports.HR.Head);
|
|
72
|
+
const all = await client.findAll(exports.HR.Department, {});
|
|
73
|
+
if (all.some((d) => String(d.name).toLowerCase() === args.name.trim().toLowerCase()))
|
|
74
|
+
throw new Error(`Department '${args.name}' already exists.`);
|
|
75
|
+
const teamLead = args.teamLead != null ? (await (0, people_1.findPerson)(client, args.teamLead))._id : null;
|
|
76
|
+
const id = (0, core_1.generateId)();
|
|
77
|
+
await client.createDoc(exports.HR.Department, exports.HR.Space, { name: args.name.trim(), description: '', parent: parent._id, members: [], teamLead, managers: [] }, id);
|
|
78
|
+
return `✅ Department **${args.name}** created under ${String(parent.name)} — \`${id}\``;
|
|
79
|
+
});
|
|
80
|
+
exports.deleteDepartment = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
81
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
82
|
+
const d = await findDepartment(client, args.department);
|
|
83
|
+
if (d._id === exports.HR.Head)
|
|
84
|
+
throw new Error('The root department cannot be deleted.');
|
|
85
|
+
const children = await client.findAll(exports.HR.Department, { parent: d._id });
|
|
86
|
+
if (children.length > 0)
|
|
87
|
+
throw new Error(`${String(d.name)} has sub-departments (${children.map((c) => c.name).join(', ')}) — delete or move them first.`);
|
|
88
|
+
await client.removeDoc(exports.HR.Department, d.space, d._id);
|
|
89
|
+
return `🗑️ Department **${String(d.name)}** deleted. Its members are moved out by Huly.`;
|
|
90
|
+
});
|
|
91
|
+
exports.setDepartment = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
92
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
93
|
+
const dep = await findDepartment(client, args.department);
|
|
94
|
+
const person = await (0, people_1.findPerson)(client, args.member);
|
|
95
|
+
const doc = await client.findOne('contact:class:Person', { _id: person._id });
|
|
96
|
+
if (doc[exports.HR.Staff] == null)
|
|
97
|
+
await client.createMixin(doc._id, doc._class, doc.space, exports.HR.Staff, { department: dep._id });
|
|
98
|
+
else if (doc[exports.HR.Staff].department === dep._id)
|
|
99
|
+
return `${person.name} is already in ${String(dep.name)}.`;
|
|
100
|
+
else
|
|
101
|
+
await client.updateMixin(doc._id, doc._class, doc.space, exports.HR.Staff, { department: dep._id });
|
|
102
|
+
return `✅ ${person.name} → department ${String(dep.name)}.`;
|
|
103
|
+
});
|
|
104
|
+
exports.listTimeOff = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
105
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
106
|
+
const query = {};
|
|
107
|
+
if (args.member != null)
|
|
108
|
+
query.attachedTo = (await (0, people_1.findPerson)(client, args.member))._id;
|
|
109
|
+
if (args.department != null)
|
|
110
|
+
query.department = (await findDepartment(client, args.department))._id;
|
|
111
|
+
let reqs = await client.findAll(exports.HR.Request, query);
|
|
112
|
+
const from = args.from != null ? tzKey(toTzDate(args.from, 'from')) : undefined;
|
|
113
|
+
const to = args.to != null ? tzKey(toTzDate(args.to, 'to')) : undefined;
|
|
114
|
+
reqs = reqs.filter((r) => (from == null || tzKey(r.tzDueDate) >= from) && (to == null || tzKey(r.tzDate) <= to))
|
|
115
|
+
.sort((a, b) => tzKey(a.tzDate) - tzKey(b.tzDate));
|
|
116
|
+
if (reqs.length === 0)
|
|
117
|
+
return 'No time-off requests in that range.';
|
|
118
|
+
const names = await (0, people_1.peopleNames)(client);
|
|
119
|
+
const lines = reqs.map((r) => {
|
|
120
|
+
const note = (0, format_1.markupToText)(r.description).trim();
|
|
121
|
+
return `- ${(0, exports.tzText)(r.tzDate)}${tzKey(r.tzDate) !== tzKey(r.tzDueDate) ? ` – ${(0, exports.tzText)(r.tzDueDate)}` : ''} · **${names.get(r.attachedTo) ?? '?'}** · ${TYPE_NAME.get(r.type) ?? String(r.type)}${note !== '' ? ` — ${note.slice(0, 120)}` : ''} — \`${String(r._id)}\``;
|
|
122
|
+
});
|
|
123
|
+
return `## Time off (${reqs.length})\n\n${lines.join('\n')}`;
|
|
124
|
+
});
|
|
125
|
+
exports.createTimeOff = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
126
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
127
|
+
const person = args.member != null ? await (0, people_1.findPerson)(client, args.member) : await (0, people_1.currentPerson)(client);
|
|
128
|
+
const doc = await client.findOne('contact:class:Person', { _id: person._id });
|
|
129
|
+
const department = doc?.[exports.HR.Staff]?.department;
|
|
130
|
+
if (department == null)
|
|
131
|
+
throw new Error(`${person.name} is not in any department yet — set_department first.`);
|
|
132
|
+
const start = toTzDate(args.from, 'from');
|
|
133
|
+
const end = toTzDate(args.to ?? args.from, 'to');
|
|
134
|
+
if (tzKey(end) < tzKey(start))
|
|
135
|
+
throw new Error('to is before from.');
|
|
136
|
+
const id = (0, core_1.generateId)();
|
|
137
|
+
await client.addCollection(exports.HR.Request, exports.HR.Space, doc._id, doc._class, 'requests', {
|
|
138
|
+
type: exports.REQUEST_TYPES[args.type], tzDate: start, tzDueDate: end, description: (0, format_1.textToMarkup)(args.description ?? ''), department
|
|
139
|
+
}, id);
|
|
140
|
+
return `✅ ${args.type} for ${person.name}: ${(0, exports.tzText)(start)}${tzKey(end) !== tzKey(start) ? ` – ${(0, exports.tzText)(end)}` : ''} — \`${id}\``;
|
|
141
|
+
});
|
|
142
|
+
exports.deleteTimeOff = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
143
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
144
|
+
const r = await client.findOne(exports.HR.Request, { _id: args.id });
|
|
145
|
+
if (r == null)
|
|
146
|
+
throw new Error(`Time-off request '${args.id}' not found (ids come from list_time_off).`);
|
|
147
|
+
await client.removeCollection(exports.HR.Request, r.space, r._id, r.attachedTo, r.attachedToClass, r.collection ?? 'requests');
|
|
148
|
+
return `🗑️ Time-off request ${(0, exports.tzText)(r.tzDate)} deleted.`;
|
|
149
|
+
});
|
|
150
|
+
//# sourceMappingURL=hr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hr.js","sourceRoot":"","sources":["../../src/tools/hr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const listNotifications: (args: {
|
|
2
|
+
workspace?: string | undefined;
|
|
3
|
+
unreadOnly: boolean;
|
|
4
|
+
limit: number;
|
|
5
|
+
ids?: boolean | undefined;
|
|
6
|
+
}) => Promise<{
|
|
7
|
+
content: Array<{
|
|
8
|
+
type: 'text';
|
|
9
|
+
text: string;
|
|
10
|
+
}>;
|
|
11
|
+
}>;
|
|
12
|
+
export declare const markNotificationsRead: (args: {
|
|
13
|
+
workspace: string;
|
|
14
|
+
object?: string | undefined;
|
|
15
|
+
notificationIds?: string[] | undefined;
|
|
16
|
+
all?: boolean | undefined;
|
|
17
|
+
archive: boolean;
|
|
18
|
+
}) => Promise<{
|
|
19
|
+
content: Array<{
|
|
20
|
+
type: 'text';
|
|
21
|
+
text: string;
|
|
22
|
+
}>;
|
|
23
|
+
}>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.markNotificationsRead = exports.listNotifications = void 0;
|
|
4
|
+
const core_1 = require("@hcengineering/core");
|
|
5
|
+
const connection_1 = require("../connection");
|
|
6
|
+
const errors_1 = require("../utils/errors");
|
|
7
|
+
const classes_1 = require("../utils/classes");
|
|
8
|
+
const people_1 = require("../utils/people");
|
|
9
|
+
const resolve_1 = require("../utils/resolve");
|
|
10
|
+
const when = (ts) => ts == null ? '' : new Date(ts).toISOString().slice(0, 16).replace('T', ' ');
|
|
11
|
+
exports.listNotifications = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
12
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
13
|
+
const user = await (0, people_1.currentAccountUuid)(client);
|
|
14
|
+
const query = { user, archived: false };
|
|
15
|
+
if (args.unreadOnly)
|
|
16
|
+
query.isViewed = false;
|
|
17
|
+
const notes = await client.findAll(classes_1.C.InboxNotification, query, { limit: args.limit, sort: { createdOn: core_1.SortingOrder.Descending } });
|
|
18
|
+
if (notes.length === 0)
|
|
19
|
+
return args.unreadOnly ? 'No unread notifications.' : 'No notifications.';
|
|
20
|
+
// Group by the object they are about (one line per issue / PR / document / channel).
|
|
21
|
+
const contexts = await client.findAll(classes_1.C.DocNotifyContext, { _id: { $in: [...new Set(notes.map((n) => n.docNotifyContext))] } });
|
|
22
|
+
const ctxById = new Map(contexts.map((c) => [c._id, c]));
|
|
23
|
+
const groups = new Map();
|
|
24
|
+
for (const n of notes) {
|
|
25
|
+
const g = groups.get(n.docNotifyContext) ?? { ctx: ctxById.get(n.docNotifyContext), notes: [] };
|
|
26
|
+
g.notes.push(n);
|
|
27
|
+
groups.set(n.docNotifyContext, g);
|
|
28
|
+
}
|
|
29
|
+
const lines = [];
|
|
30
|
+
for (const { ctx, notes: group } of groups.values()) {
|
|
31
|
+
const objectClass = ctx?.objectClass ?? group[0].objectClass;
|
|
32
|
+
const objectId = ctx?.objectId ?? group[0].objectId;
|
|
33
|
+
const label = objectClass != null ? await (0, resolve_1.loadLabel)(client, objectClass, objectId) : '(unknown)';
|
|
34
|
+
const kind = String(objectClass ?? '').split(':').pop();
|
|
35
|
+
const unread = group.filter((n) => n.isViewed !== true).length;
|
|
36
|
+
lines.push(`- **${label}** (${kind}) — ${group.length} notification(s)${unread > 0 ? `, ${unread} unread` : ''}, latest ${when(group[0].createdOn)}${args.ids === true ? `\n ids: ${group.map((n) => `\`${n._id}\``).join(', ')}` : ''}`);
|
|
37
|
+
}
|
|
38
|
+
return `## Notifications (${notes.length}${args.unreadOnly ? ' unread' : ''})\n\n${lines.join('\n')}`;
|
|
39
|
+
});
|
|
40
|
+
exports.markNotificationsRead = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
41
|
+
const modes = [args.object != null, args.notificationIds != null, args.all === true].filter(Boolean).length;
|
|
42
|
+
if (modes !== 1)
|
|
43
|
+
throw new Error('Pass exactly one of: object, notificationIds, all.');
|
|
44
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
45
|
+
const user = await (0, people_1.currentAccountUuid)(client);
|
|
46
|
+
const query = { user, isViewed: false };
|
|
47
|
+
if (args.archive)
|
|
48
|
+
delete query.isViewed;
|
|
49
|
+
let scope = 'all notifications';
|
|
50
|
+
if (args.object != null) {
|
|
51
|
+
const obj = await (0, resolve_1.resolveObject)(client, args.object);
|
|
52
|
+
const ctxs = await client.findAll(classes_1.C.DocNotifyContext, { user, objectId: obj._id });
|
|
53
|
+
query.docNotifyContext = { $in: ctxs.map((c) => c._id) };
|
|
54
|
+
scope = obj.label;
|
|
55
|
+
}
|
|
56
|
+
if (args.notificationIds != null) {
|
|
57
|
+
query._id = { $in: args.notificationIds };
|
|
58
|
+
delete query.isViewed;
|
|
59
|
+
scope = `${args.notificationIds.length} notification(s)`;
|
|
60
|
+
}
|
|
61
|
+
if (args.archive)
|
|
62
|
+
query.archived = false;
|
|
63
|
+
const notes = await client.findAll(classes_1.C.InboxNotification, query);
|
|
64
|
+
const update = args.archive ? { isViewed: true, archived: true } : { isViewed: true };
|
|
65
|
+
for (const n of notes)
|
|
66
|
+
await client.updateDoc(n._class, n.space, n._id, update);
|
|
67
|
+
// Like Huly's inbox: the context remembers when it was last viewed.
|
|
68
|
+
const now = Date.now();
|
|
69
|
+
for (const ctxId of new Set(notes.map((n) => n.docNotifyContext))) {
|
|
70
|
+
const ctx = await client.findOne(classes_1.C.DocNotifyContext, { _id: ctxId });
|
|
71
|
+
if (ctx != null)
|
|
72
|
+
await client.updateDoc(ctx._class, ctx.space, ctx._id, { lastViewedTimestamp: now });
|
|
73
|
+
}
|
|
74
|
+
return `✅ ${notes.length} notification(s) ${args.archive ? 'archived' : 'marked read'} (${scope}).`;
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=inbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/tools/inbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export declare const INV: {
|
|
2
|
+
readonly Category: 'inventory:class:Category';
|
|
3
|
+
readonly Product: 'inventory:class:Product';
|
|
4
|
+
readonly Variant: 'inventory:class:Variant';
|
|
5
|
+
readonly Root: 'inventory:global:Category';
|
|
6
|
+
readonly Space: 'core:space:Workspace';
|
|
7
|
+
};
|
|
8
|
+
export declare const listInventory: (args: {
|
|
9
|
+
workspace?: string | undefined;
|
|
10
|
+
}) => Promise<{
|
|
11
|
+
content: Array<{
|
|
12
|
+
type: 'text';
|
|
13
|
+
text: string;
|
|
14
|
+
}>;
|
|
15
|
+
}>;
|
|
16
|
+
export declare const createInventoryCategory: (args: {
|
|
17
|
+
workspace: string;
|
|
18
|
+
name: string;
|
|
19
|
+
parent?: string | undefined;
|
|
20
|
+
}) => Promise<{
|
|
21
|
+
content: Array<{
|
|
22
|
+
type: 'text';
|
|
23
|
+
text: string;
|
|
24
|
+
}>;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const createInventoryProduct: (args: {
|
|
27
|
+
workspace: string;
|
|
28
|
+
name: string;
|
|
29
|
+
category: string;
|
|
30
|
+
variants?: {
|
|
31
|
+
name: string;
|
|
32
|
+
sku: string;
|
|
33
|
+
}[] | undefined;
|
|
34
|
+
}) => Promise<{
|
|
35
|
+
content: Array<{
|
|
36
|
+
type: 'text';
|
|
37
|
+
text: string;
|
|
38
|
+
}>;
|
|
39
|
+
}>;
|
|
40
|
+
export declare const updateInventoryItem: (args: {
|
|
41
|
+
workspace: string;
|
|
42
|
+
id: string;
|
|
43
|
+
name?: string | undefined;
|
|
44
|
+
sku?: string | undefined;
|
|
45
|
+
category?: string | undefined;
|
|
46
|
+
}) => Promise<{
|
|
47
|
+
content: Array<{
|
|
48
|
+
type: 'text';
|
|
49
|
+
text: string;
|
|
50
|
+
}>;
|
|
51
|
+
}>;
|
|
52
|
+
export declare const deleteInventoryItem: (args: {
|
|
53
|
+
workspace: string;
|
|
54
|
+
id: string;
|
|
55
|
+
recursive?: boolean | undefined;
|
|
56
|
+
}) => Promise<{
|
|
57
|
+
content: Array<{
|
|
58
|
+
type: 'text';
|
|
59
|
+
text: string;
|
|
60
|
+
}>;
|
|
61
|
+
}>;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteInventoryItem = exports.updateInventoryItem = exports.createInventoryProduct = exports.createInventoryCategory = exports.listInventory = exports.INV = void 0;
|
|
4
|
+
// Inventory (beta module): categories (tree), products in categories, variants (name + SKU).
|
|
5
|
+
// Everything is an attached doc in the workspace space; root categories hang off a fake ref.
|
|
6
|
+
const connection_1 = require("../connection");
|
|
7
|
+
const errors_1 = require("../utils/errors");
|
|
8
|
+
exports.INV = {
|
|
9
|
+
Category: 'inventory:class:Category',
|
|
10
|
+
Product: 'inventory:class:Product',
|
|
11
|
+
Variant: 'inventory:class:Variant',
|
|
12
|
+
Root: 'inventory:global:Category',
|
|
13
|
+
Space: 'core:space:Workspace'
|
|
14
|
+
};
|
|
15
|
+
async function findOneOf(client, cls, ref, what, query = {}) {
|
|
16
|
+
const all = await client.findAll(cls, query);
|
|
17
|
+
const hits = all.filter((d) => d._id === ref || String(d.name).toLowerCase() === ref.trim().toLowerCase());
|
|
18
|
+
if (hits.length === 1)
|
|
19
|
+
return hits[0];
|
|
20
|
+
if (hits.length === 0)
|
|
21
|
+
throw new Error(`${what} '${ref}' not found.`);
|
|
22
|
+
throw new Error(`${what} '${ref}' is ambiguous — pass its id.`);
|
|
23
|
+
}
|
|
24
|
+
exports.listInventory = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
25
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
26
|
+
const [cats, products, variants] = await Promise.all([client.findAll(exports.INV.Category, {}), client.findAll(exports.INV.Product, {}), client.findAll(exports.INV.Variant, {})]);
|
|
27
|
+
if (cats.length === 0 && products.length === 0)
|
|
28
|
+
return 'Inventory is empty (or the module is not enabled).';
|
|
29
|
+
const lines = [];
|
|
30
|
+
const walk = (parent, depth) => {
|
|
31
|
+
for (const c of cats.filter((x) => x.attachedTo === parent).sort((a, b) => String(a.name).localeCompare(String(b.name)))) {
|
|
32
|
+
lines.push(`${' '.repeat(depth)}- 📁 **${String(c.name)}** — \`${String(c._id)}\``);
|
|
33
|
+
for (const p of products.filter((x) => x.attachedTo === c._id)) {
|
|
34
|
+
const vs = variants.filter((v) => v.attachedTo === p._id).map((v) => `${String(v.name)} (${String(v.sku)})`);
|
|
35
|
+
lines.push(`${' '.repeat(depth + 1)}- ${String(p.name)}${vs.length > 0 ? ` — ${vs.join(', ')}` : ''} — \`${String(p._id)}\``);
|
|
36
|
+
}
|
|
37
|
+
walk(c._id, depth + 1);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
walk(exports.INV.Root, 0);
|
|
41
|
+
return `## Inventory (${cats.length} categories, ${products.length} products, ${variants.length} variants)\n\n${lines.join('\n')}`;
|
|
42
|
+
});
|
|
43
|
+
exports.createInventoryCategory = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
44
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
45
|
+
const parent = args.parent != null ? (await findOneOf(client, exports.INV.Category, args.parent, 'Category'))._id : exports.INV.Root;
|
|
46
|
+
const id = await client.addCollection(exports.INV.Category, exports.INV.Space, parent, exports.INV.Category, 'categories', { name: args.name.trim() });
|
|
47
|
+
return `✅ Category **${args.name}** created — \`${String(id)}\``;
|
|
48
|
+
});
|
|
49
|
+
exports.createInventoryProduct = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
50
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
51
|
+
const cat = await findOneOf(client, exports.INV.Category, args.category, 'Category');
|
|
52
|
+
const id = await client.addCollection(exports.INV.Product, exports.INV.Space, cat._id, exports.INV.Category, 'products', { name: args.name.trim() });
|
|
53
|
+
for (const v of args.variants ?? [])
|
|
54
|
+
await client.addCollection(exports.INV.Variant, exports.INV.Space, id, exports.INV.Product, 'variants', { name: v.name.trim(), sku: v.sku.trim() });
|
|
55
|
+
return `✅ Product **${args.name}** in ${String(cat.name)}${(args.variants ?? []).length > 0 ? ` with ${(args.variants ?? []).length} variant(s)` : ''} — \`${String(id)}\``;
|
|
56
|
+
});
|
|
57
|
+
exports.updateInventoryItem = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
58
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
59
|
+
const doc = await client.findOne(exports.INV.Category, { _id: args.id }) ?? await client.findOne(exports.INV.Product, { _id: args.id }) ?? await client.findOne(exports.INV.Variant, { _id: args.id });
|
|
60
|
+
if (doc == null)
|
|
61
|
+
throw new Error(`Inventory item '${args.id}' not found (ids come from list_inventory).`);
|
|
62
|
+
const update = {};
|
|
63
|
+
if (args.name != null)
|
|
64
|
+
update.name = args.name.trim();
|
|
65
|
+
if (args.sku != null) {
|
|
66
|
+
if (doc._class !== exports.INV.Variant)
|
|
67
|
+
throw new Error('Only variants have a SKU.');
|
|
68
|
+
update.sku = args.sku.trim();
|
|
69
|
+
}
|
|
70
|
+
if (args.category != null) {
|
|
71
|
+
if (doc._class !== exports.INV.Product)
|
|
72
|
+
throw new Error('Only products can move to another category.');
|
|
73
|
+
update.attachedTo = (await findOneOf(client, exports.INV.Category, args.category, 'Category'))._id;
|
|
74
|
+
}
|
|
75
|
+
if (Object.keys(update).length === 0)
|
|
76
|
+
throw new Error('Nothing to change.');
|
|
77
|
+
await client.updateDoc(doc._class, doc.space, doc._id, update);
|
|
78
|
+
return `✅ ${String(update.name ?? doc.name)} updated: ${Object.keys(update).map((k) => k === 'attachedTo' ? 'category' : k).join(', ')}.`;
|
|
79
|
+
});
|
|
80
|
+
exports.deleteInventoryItem = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
81
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
82
|
+
const doc = await client.findOne(exports.INV.Category, { _id: args.id }) ?? await client.findOne(exports.INV.Product, { _id: args.id }) ?? await client.findOne(exports.INV.Variant, { _id: args.id });
|
|
83
|
+
if (doc == null)
|
|
84
|
+
throw new Error(`Inventory item '${args.id}' not found (ids come from list_inventory).`);
|
|
85
|
+
const children = doc._class === exports.INV.Category
|
|
86
|
+
? [...await client.findAll(exports.INV.Category, { attachedTo: doc._id }), ...await client.findAll(exports.INV.Product, { attachedTo: doc._id })]
|
|
87
|
+
: doc._class === exports.INV.Product ? await client.findAll(exports.INV.Variant, { attachedTo: doc._id }) : [];
|
|
88
|
+
if (children.length > 0 && args.recursive !== true)
|
|
89
|
+
throw new Error(`${String(doc.name)} still contains ${children.length} item(s) — pass recursive=true to delete them too.`);
|
|
90
|
+
const remove = async (d) => {
|
|
91
|
+
let n = 0;
|
|
92
|
+
const kids = d._class === exports.INV.Category
|
|
93
|
+
? [...await client.findAll(exports.INV.Category, { attachedTo: d._id }), ...await client.findAll(exports.INV.Product, { attachedTo: d._id })]
|
|
94
|
+
: d._class === exports.INV.Product ? await client.findAll(exports.INV.Variant, { attachedTo: d._id }) : [];
|
|
95
|
+
for (const k of kids)
|
|
96
|
+
n += await remove(k);
|
|
97
|
+
await client.removeCollection(d._class, d.space, d._id, d.attachedTo, d.attachedToClass, d.collection);
|
|
98
|
+
return n + 1;
|
|
99
|
+
};
|
|
100
|
+
const n = await remove(doc);
|
|
101
|
+
return `🗑️ ${String(doc.name)} deleted${n > 1 ? ` (with ${n - 1} item(s) inside)` : ''}.`;
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=inventory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/tools/inventory.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/issues.d.ts
CHANGED
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
export declare const listIssues: (args: {
|
|
2
|
-
projectIdentifier: string;
|
|
3
|
-
limit: number;
|
|
4
2
|
workspace?: string | undefined;
|
|
3
|
+
projectIdentifier: string;
|
|
5
4
|
status?: string | undefined;
|
|
6
|
-
priority?: "
|
|
5
|
+
priority?: "High" | "Low" | "Medium" | "NoPriority" | "Urgent" | undefined;
|
|
6
|
+
milestoneLabel?: string | null | undefined;
|
|
7
|
+
componentLabel?: string | null | undefined;
|
|
8
|
+
labelName?: string | undefined;
|
|
9
|
+
assignee?: string | null | undefined;
|
|
10
|
+
parentIdentifier?: string | null | undefined;
|
|
11
|
+
limit: number;
|
|
12
|
+
offset?: number | undefined;
|
|
7
13
|
}) => Promise<{
|
|
8
14
|
content: Array<{
|
|
9
|
-
type:
|
|
15
|
+
type: 'text';
|
|
10
16
|
text: string;
|
|
11
17
|
}>;
|
|
12
18
|
}>;
|
|
13
19
|
export declare const getIssue: (args: {
|
|
14
|
-
identifier: string;
|
|
15
20
|
workspace?: string | undefined;
|
|
21
|
+
identifier: string;
|
|
16
22
|
}) => Promise<{
|
|
17
23
|
content: Array<{
|
|
18
|
-
type:
|
|
24
|
+
type: 'text';
|
|
19
25
|
text: string;
|
|
20
26
|
}>;
|
|
21
27
|
}>;
|
|
@@ -23,13 +29,16 @@ export declare const createIssue: (args: {
|
|
|
23
29
|
workspace: string;
|
|
24
30
|
projectIdentifier: string;
|
|
25
31
|
title: string;
|
|
26
|
-
priority: "Medium" | "NoPriority" | "Urgent" | "High" | "Low";
|
|
27
32
|
description?: string | undefined;
|
|
33
|
+
priority: "High" | "Low" | "Medium" | "NoPriority" | "Urgent";
|
|
28
34
|
statusName?: string | undefined;
|
|
29
35
|
dueDate?: string | undefined;
|
|
36
|
+
assignee?: string | undefined;
|
|
37
|
+
componentLabel?: string | undefined;
|
|
38
|
+
milestoneLabel?: string | undefined;
|
|
30
39
|
}) => Promise<{
|
|
31
40
|
content: Array<{
|
|
32
|
-
type:
|
|
41
|
+
type: 'text';
|
|
33
42
|
text: string;
|
|
34
43
|
}>;
|
|
35
44
|
}>;
|
|
@@ -38,7 +47,7 @@ export declare const deleteIssue: (args: {
|
|
|
38
47
|
identifier: string;
|
|
39
48
|
}) => Promise<{
|
|
40
49
|
content: Array<{
|
|
41
|
-
type:
|
|
50
|
+
type: 'text';
|
|
42
51
|
text: string;
|
|
43
52
|
}>;
|
|
44
53
|
}>;
|
|
@@ -48,14 +57,56 @@ export declare const updateIssue: (args: {
|
|
|
48
57
|
title?: string | undefined;
|
|
49
58
|
description?: string | undefined;
|
|
50
59
|
statusName?: string | undefined;
|
|
51
|
-
priority?: "
|
|
60
|
+
priority?: "High" | "Low" | "Medium" | "NoPriority" | "Urgent" | undefined;
|
|
52
61
|
dueDate?: string | null | undefined;
|
|
53
62
|
assignee?: string | null | undefined;
|
|
54
|
-
componentLabel?: string | undefined;
|
|
63
|
+
componentLabel?: string | null | undefined;
|
|
55
64
|
milestoneLabel?: string | null | undefined;
|
|
56
65
|
}) => Promise<{
|
|
57
66
|
content: Array<{
|
|
58
|
-
type:
|
|
67
|
+
type: 'text';
|
|
68
|
+
text: string;
|
|
69
|
+
}>;
|
|
70
|
+
}>;
|
|
71
|
+
export declare const bulkUpdateIssues: (args: {
|
|
72
|
+
workspace: string;
|
|
73
|
+
identifiers: string[];
|
|
74
|
+
statusName?: string | undefined;
|
|
75
|
+
priority?: "High" | "Low" | "Medium" | "NoPriority" | "Urgent" | undefined;
|
|
76
|
+
dueDate?: string | null | undefined;
|
|
77
|
+
assignee?: string | null | undefined;
|
|
78
|
+
componentLabel?: string | null | undefined;
|
|
79
|
+
milestoneLabel?: string | null | undefined;
|
|
80
|
+
}) => Promise<{
|
|
81
|
+
content: Array<{
|
|
82
|
+
type: 'text';
|
|
83
|
+
text: string;
|
|
84
|
+
}>;
|
|
85
|
+
}>;
|
|
86
|
+
export declare const listSubIssues: (args: {
|
|
87
|
+
workspace?: string | undefined;
|
|
88
|
+
identifier: string;
|
|
89
|
+
depth: number;
|
|
90
|
+
}) => Promise<{
|
|
91
|
+
content: Array<{
|
|
92
|
+
type: 'text';
|
|
93
|
+
text: string;
|
|
94
|
+
}>;
|
|
95
|
+
}>;
|
|
96
|
+
/**
|
|
97
|
+
* Moves an issue (with its sub-issues, comments, attachments, labels and time reports) to
|
|
98
|
+
* another project. Mirrors Huly's own moveIssueToSpace: every attached doc gets the new space,
|
|
99
|
+
* every moved issue gets a new number in the target project. Component and milestone belong
|
|
100
|
+
* to the old project and are cleared.
|
|
101
|
+
*/
|
|
102
|
+
export declare const moveIssue: (args: {
|
|
103
|
+
workspace: string;
|
|
104
|
+
identifier: string;
|
|
105
|
+
targetProjectIdentifier: string;
|
|
106
|
+
statusName?: string | undefined;
|
|
107
|
+
}) => Promise<{
|
|
108
|
+
content: Array<{
|
|
109
|
+
type: 'text';
|
|
59
110
|
text: string;
|
|
60
111
|
}>;
|
|
61
112
|
}>;
|