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
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteApplication = exports.updateApplication = exports.createApplication = exports.listApplications = exports.createCandidate = exports.listCandidates = exports.updateVacancy = exports.createVacancy = exports.listVacancies = exports.R = void 0;
|
|
4
|
+
// Recruiting (recruit plugin): vacancies (spaces), candidates (Candidate mixin on persons) and
|
|
5
|
+
// applications (tasks APP-n attached to the candidate, living in the vacancy).
|
|
6
|
+
const core_1 = require("@hcengineering/core");
|
|
7
|
+
const connection_1 = require("../connection");
|
|
8
|
+
const errors_1 = require("../utils/errors");
|
|
9
|
+
const format_1 = require("../utils/format");
|
|
10
|
+
const people_1 = require("../utils/people");
|
|
11
|
+
const tasks_1 = require("../utils/tasks");
|
|
12
|
+
exports.R = {
|
|
13
|
+
Vacancy: 'recruit:class:Vacancy',
|
|
14
|
+
Applicant: 'recruit:class:Applicant',
|
|
15
|
+
Candidate: 'recruit:mixin:Candidate',
|
|
16
|
+
DefaultType: 'recruit:template:DefaultVacancy',
|
|
17
|
+
Person: 'contact:class:Person',
|
|
18
|
+
Contacts: 'contact:space:Contacts'
|
|
19
|
+
};
|
|
20
|
+
async function findVacancy(client, ref) {
|
|
21
|
+
return await (0, tasks_1.findNamed)(client, exports.R.Vacancy, ref, 'Vacancy');
|
|
22
|
+
}
|
|
23
|
+
async function findApplication(client, identifier) {
|
|
24
|
+
const app = await client.findOne(exports.R.Applicant, { identifier: identifier.trim().toUpperCase() });
|
|
25
|
+
if (app == null)
|
|
26
|
+
throw new Error(`Application '${identifier}' not found (ids look like APP-12).`);
|
|
27
|
+
return app;
|
|
28
|
+
}
|
|
29
|
+
exports.listVacancies = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
30
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
31
|
+
const vacancies = await client.findAll(exports.R.Vacancy, args.includeArchived === true ? {} : { archived: false });
|
|
32
|
+
if (vacancies.length === 0)
|
|
33
|
+
return 'No vacancies.';
|
|
34
|
+
const apps = await client.findAll(exports.R.Applicant, { space: { $in: vacancies.map((v) => v._id) } });
|
|
35
|
+
const lines = [];
|
|
36
|
+
for (const v of vacancies) {
|
|
37
|
+
const company = v.company != null ? (0, tasks_1.contactName)(await client.findOne('contact:class:Organization', { _id: v.company })) : undefined;
|
|
38
|
+
const mine = apps.filter((a) => a.space === v._id);
|
|
39
|
+
const wf = await (0, tasks_1.workflowOf)(client, v).catch(() => undefined);
|
|
40
|
+
const byStatus = new Map();
|
|
41
|
+
for (const a of mine) {
|
|
42
|
+
const n = wf != null ? (0, tasks_1.statusName)(wf, a.status) : '?';
|
|
43
|
+
byStatus.set(n, (byStatus.get(n) ?? 0) + 1);
|
|
44
|
+
}
|
|
45
|
+
const extras = [company, v.location, v.dueTo != null ? `due ${(0, format_1.formatDate)(v.dueTo)}` : undefined, v.archived === true ? 'archived' : undefined].filter((x) => x != null && x !== '');
|
|
46
|
+
lines.push(`- **${String(v.name)}**${extras.length > 0 ? ` (${extras.join(', ')})` : ''} — ${mine.length} application(s)${byStatus.size > 0 ? `: ${[...byStatus].map(([s, n]) => `${n} ${s}`).join(', ')}` : ''} — \`${String(v._id)}\``);
|
|
47
|
+
}
|
|
48
|
+
return `## Vacancies (${vacancies.length})\n\n${lines.join('\n')}`;
|
|
49
|
+
});
|
|
50
|
+
exports.createVacancy = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
51
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
52
|
+
const existing = await client.findAll(exports.R.Vacancy, {});
|
|
53
|
+
if (existing.some((v) => String(v.name).toLowerCase() === args.name.trim().toLowerCase()))
|
|
54
|
+
throw new Error(`A vacancy named '${args.name}' already exists.`);
|
|
55
|
+
const type = await client.findOne('task:class:ProjectType', { _id: exports.R.DefaultType });
|
|
56
|
+
if (type == null)
|
|
57
|
+
throw new Error('Recruiting is not set up in this workspace (no default vacancy type).');
|
|
58
|
+
const company = args.company != null ? (await (0, tasks_1.findContact)(client, args.company, 'contact:class:Organization'))._id : undefined;
|
|
59
|
+
const me = await (0, people_1.currentAccountUuid)(client);
|
|
60
|
+
const id = (0, core_1.generateId)();
|
|
61
|
+
const number = await (0, tasks_1.nextNumber)(client, exports.R.Vacancy);
|
|
62
|
+
await client.createDoc(exports.R.Vacancy, 'core:space:Space', {
|
|
63
|
+
name: args.name.trim(),
|
|
64
|
+
description: args.description ?? '',
|
|
65
|
+
fullDescription: null,
|
|
66
|
+
private: false,
|
|
67
|
+
archived: false,
|
|
68
|
+
number,
|
|
69
|
+
company,
|
|
70
|
+
location: args.location,
|
|
71
|
+
dueTo: args.dueDate != null ? (0, tasks_1.parseDay)(args.dueDate, 'dueDate') : undefined,
|
|
72
|
+
members: [me],
|
|
73
|
+
owners: [me],
|
|
74
|
+
autoJoin: type.autoJoin ?? false,
|
|
75
|
+
type: exports.R.DefaultType,
|
|
76
|
+
attachments: 0,
|
|
77
|
+
comments: 0
|
|
78
|
+
}, id);
|
|
79
|
+
await client.createMixin(id, exports.R.Vacancy, 'core:space:Space', type.targetClass, {});
|
|
80
|
+
return `✅ Vacancy **${args.name}** created — \`${id}\``;
|
|
81
|
+
});
|
|
82
|
+
exports.updateVacancy = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
83
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
84
|
+
const v = await findVacancy(client, args.vacancy);
|
|
85
|
+
const update = {};
|
|
86
|
+
if (args.name != null)
|
|
87
|
+
update.name = args.name.trim();
|
|
88
|
+
if (args.description !== undefined)
|
|
89
|
+
update.description = args.description ?? '';
|
|
90
|
+
if (args.location !== undefined)
|
|
91
|
+
update.location = args.location ?? '';
|
|
92
|
+
if (args.dueDate !== undefined)
|
|
93
|
+
update.dueTo = args.dueDate != null ? (0, tasks_1.parseDay)(args.dueDate, 'dueDate') : null;
|
|
94
|
+
if (args.archived != null)
|
|
95
|
+
update.archived = args.archived;
|
|
96
|
+
if (Object.keys(update).length === 0)
|
|
97
|
+
throw new Error('Nothing to change.');
|
|
98
|
+
await client.updateDoc(exports.R.Vacancy, v.space, v._id, update);
|
|
99
|
+
return `✅ Vacancy **${String(update.name ?? v.name)}** updated: ${Object.keys(update).join(', ')}.`;
|
|
100
|
+
});
|
|
101
|
+
exports.listCandidates = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
102
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
103
|
+
let people = await client.findAll(exports.R.Candidate, {});
|
|
104
|
+
if (args.query != null) {
|
|
105
|
+
const q = args.query.toLowerCase();
|
|
106
|
+
people = people.filter((p) => (0, people_1.formatPersonName)(p.name).toLowerCase().includes(q) || String(p[exports.R.Candidate]?.title ?? '').toLowerCase().includes(q));
|
|
107
|
+
}
|
|
108
|
+
const limit = args.limit ?? 50;
|
|
109
|
+
if (people.length === 0)
|
|
110
|
+
return 'No candidates.';
|
|
111
|
+
const lines = people.slice(0, limit).map((p) => {
|
|
112
|
+
const c = p[exports.R.Candidate] ?? {};
|
|
113
|
+
const where = [c.onsite === true ? 'onsite' : undefined, c.remote === true ? 'remote' : undefined, p.city].filter((x) => x != null && x !== '');
|
|
114
|
+
return `- **${(0, people_1.formatPersonName)(p.name)}**${c.title != null && c.title !== '' ? ` — ${String(c.title)}` : ''}${where.length > 0 ? ` (${where.join(', ')})` : ''} · ${Number(c.applications ?? 0)} application(s) — \`${String(p._id)}\``;
|
|
115
|
+
});
|
|
116
|
+
return `## Candidates (${people.length})\n\n${lines.join('\n')}${people.length > limit ? `\n… ${people.length - limit} more` : ''}`;
|
|
117
|
+
});
|
|
118
|
+
exports.createCandidate = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
119
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
120
|
+
const name = `${args.lastName.trim()},${args.firstName.trim()}`;
|
|
121
|
+
const dup = await client.findAll(exports.R.Person, { name });
|
|
122
|
+
if (dup.length > 0)
|
|
123
|
+
throw new Error(`A person named ${args.firstName} ${args.lastName} already exists (\`${String(dup[0]._id)}\`) — use create_application with that name.`);
|
|
124
|
+
const id = (0, core_1.generateId)();
|
|
125
|
+
await client.createDoc(exports.R.Person, exports.R.Contacts, { name, city: args.city ?? '', channels: 0, avatarType: 'color' }, id);
|
|
126
|
+
await client.createMixin(id, exports.R.Person, exports.R.Contacts, exports.R.Candidate, { title: args.title ?? '', onsite: args.onsite ?? false, remote: args.remote ?? false, skills: 0 });
|
|
127
|
+
if (args.email != null)
|
|
128
|
+
await client.addCollection('contact:class:Channel', exports.R.Contacts, id, exports.R.Person, 'channels', { value: args.email.trim(), provider: 'contact:channelProvider:Email' });
|
|
129
|
+
return `✅ Candidate **${args.firstName} ${args.lastName}** created — \`${id}\``;
|
|
130
|
+
});
|
|
131
|
+
exports.listApplications = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
132
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
133
|
+
const query = {};
|
|
134
|
+
let vacancies;
|
|
135
|
+
if (args.vacancy != null) {
|
|
136
|
+
const v = await findVacancy(client, args.vacancy);
|
|
137
|
+
vacancies = [v];
|
|
138
|
+
query.space = v._id;
|
|
139
|
+
}
|
|
140
|
+
else
|
|
141
|
+
vacancies = await client.findAll(exports.R.Vacancy, {});
|
|
142
|
+
const apps = await client.findAll(exports.R.Applicant, query, { sort: { modifiedOn: core_1.SortingOrder.Descending }, limit: args.limit ?? 50 });
|
|
143
|
+
if (apps.length === 0)
|
|
144
|
+
return 'No applications.';
|
|
145
|
+
const names = await (0, people_1.peopleNames)(client);
|
|
146
|
+
const persons = await client.findAll(exports.R.Person, { _id: { $in: [...new Set(apps.map((a) => a.attachedTo))] } });
|
|
147
|
+
const wfs = new Map();
|
|
148
|
+
for (const v of vacancies)
|
|
149
|
+
wfs.set(v._id, await (0, tasks_1.workflowOf)(client, v).catch(() => undefined));
|
|
150
|
+
const rows = apps.map((a) => {
|
|
151
|
+
const v = vacancies.find((x) => x._id === a.space);
|
|
152
|
+
const wf = wfs.get(a.space);
|
|
153
|
+
return { a, status: wf != null ? (0, tasks_1.statusName)(wf, a.status) : '?', v };
|
|
154
|
+
}).filter((r) => args.status == null || r.status.toLowerCase() === args.status.toLowerCase());
|
|
155
|
+
const lines = rows.map(({ a, status, v }) => `- **${String(a.identifier)}** ${(0, tasks_1.contactName)(persons.find((p) => p._id === a.attachedTo))} → ${String(v?.name ?? '?')} [${status}]${a.assignee != null ? ` · ${names.get(a.assignee) ?? '?'}` : ''} · ${(0, format_1.formatDate)(a.modifiedOn)}`);
|
|
156
|
+
return `## Applications (${rows.length})\n\n${lines.join('\n') || '_(none with that status)_'}`;
|
|
157
|
+
});
|
|
158
|
+
exports.createApplication = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
159
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
160
|
+
const vacancy = await findVacancy(client, args.vacancy);
|
|
161
|
+
const person = await (0, tasks_1.findContact)(client, args.candidate, exports.R.Person);
|
|
162
|
+
const wf = await (0, tasks_1.workflowOf)(client, vacancy);
|
|
163
|
+
const status = (0, tasks_1.pickStatus)(wf, args.status);
|
|
164
|
+
const assignee = args.assignee != null ? (await (0, people_1.findPerson)(client, args.assignee))._id : null;
|
|
165
|
+
const existing = await client.findOne(exports.R.Applicant, { space: vacancy._id, attachedTo: person._id });
|
|
166
|
+
if (existing != null)
|
|
167
|
+
throw new Error(`${(0, tasks_1.contactName)(person)} already applied to ${String(vacancy.name)} (${String(existing.identifier)}).`);
|
|
168
|
+
if (person[exports.R.Candidate] == null)
|
|
169
|
+
await client.createMixin(person._id, person._class, person.space, exports.R.Candidate, {});
|
|
170
|
+
const number = await (0, tasks_1.nextNumber)(client, exports.R.Applicant);
|
|
171
|
+
const identifier = `APP-${number}`;
|
|
172
|
+
await client.addCollection(exports.R.Applicant, vacancy._id, person._id, exports.R.Candidate, 'applications', {
|
|
173
|
+
status, number, identifier, rank: '', kind: wf.kind, assignee, startDate: null, dueDate: null, isDone: false
|
|
174
|
+
});
|
|
175
|
+
return `✅ **${identifier}**: ${(0, tasks_1.contactName)(person)} → ${String(vacancy.name)} [${(0, tasks_1.statusName)(wf, status)}]`;
|
|
176
|
+
});
|
|
177
|
+
exports.updateApplication = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
178
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
179
|
+
const app = await findApplication(client, args.identifier);
|
|
180
|
+
const update = {};
|
|
181
|
+
const done = [];
|
|
182
|
+
if (args.status != null) {
|
|
183
|
+
const vacancy = await client.findOne(exports.R.Vacancy, { _id: app.space });
|
|
184
|
+
const wf = await (0, tasks_1.workflowOf)(client, vacancy);
|
|
185
|
+
update.status = (0, tasks_1.pickStatus)(wf, args.status);
|
|
186
|
+
done.push(`status → ${(0, tasks_1.statusName)(wf, update.status)}`);
|
|
187
|
+
}
|
|
188
|
+
if (args.assignee !== undefined) {
|
|
189
|
+
update.assignee = args.assignee != null ? (await (0, people_1.findPerson)(client, args.assignee))._id : null;
|
|
190
|
+
done.push(args.assignee != null ? `assignee → ${args.assignee}` : 'unassigned');
|
|
191
|
+
}
|
|
192
|
+
if (Object.keys(update).length === 0)
|
|
193
|
+
throw new Error('Nothing to change.');
|
|
194
|
+
await client.updateDoc(exports.R.Applicant, app.space, app._id, update);
|
|
195
|
+
return `✅ **${String(app.identifier)}**: ${done.join(', ')}.`;
|
|
196
|
+
});
|
|
197
|
+
exports.deleteApplication = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
198
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
199
|
+
const app = await findApplication(client, args.identifier);
|
|
200
|
+
await client.removeCollection(exports.R.Applicant, app.space, app._id, app.attachedTo, app.attachedToClass, app.collection ?? 'applications');
|
|
201
|
+
return `🗑️ Application **${String(app.identifier)}** deleted.`;
|
|
202
|
+
});
|
|
203
|
+
//# sourceMappingURL=recruiting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recruiting.js","sourceRoot":"","sources":["../../src/tools/recruiting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { type Issue } from '@hcengineering/tracker';
|
|
1
2
|
export declare const addRelation: (args: {
|
|
2
3
|
workspace: string;
|
|
3
4
|
identifier: string;
|
|
4
5
|
relatedTo: string;
|
|
5
6
|
}) => Promise<{
|
|
6
7
|
content: Array<{
|
|
7
|
-
type:
|
|
8
|
+
type: 'text';
|
|
8
9
|
text: string;
|
|
9
10
|
}>;
|
|
10
11
|
}>;
|
|
@@ -14,17 +15,58 @@ export declare const addBlockedBy: (args: {
|
|
|
14
15
|
blockedBy: string;
|
|
15
16
|
}) => Promise<{
|
|
16
17
|
content: Array<{
|
|
17
|
-
type:
|
|
18
|
+
type: 'text';
|
|
18
19
|
text: string;
|
|
19
20
|
}>;
|
|
20
21
|
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Sets or clears the parent the way Huly's own UI does (SetParentIssueActionPopup): only
|
|
24
|
+
* `attachedTo` (and the rank among the new siblings) is written. The server derives
|
|
25
|
+
* `parents`, `subIssues` and `childInfo` from it.
|
|
26
|
+
*
|
|
27
|
+
* Before 2.2.0 this tool wrote `parents`/`childInfo` directly and left `attachedTo` at
|
|
28
|
+
* NoParent, so the sub-issue did not appear under its parent in Huly. Running set_parent
|
|
29
|
+
* again on such an issue repairs it.
|
|
30
|
+
*/
|
|
21
31
|
export declare const setParent: (args: {
|
|
22
32
|
workspace: string;
|
|
23
33
|
identifier: string;
|
|
24
34
|
parentIdentifier?: string | null | undefined;
|
|
25
35
|
}) => Promise<{
|
|
26
36
|
content: Array<{
|
|
27
|
-
type:
|
|
37
|
+
type: 'text';
|
|
38
|
+
text: string;
|
|
39
|
+
}>;
|
|
40
|
+
}>;
|
|
41
|
+
/** True if the issue was linked by set_parent <= 2.1 (parents written, attachedTo left at NoParent). */
|
|
42
|
+
export declare function isLegacyLink(issue: Issue): boolean;
|
|
43
|
+
export declare const repairParentLinks: (args: {
|
|
44
|
+
workspace: string;
|
|
45
|
+
projectIdentifier: string;
|
|
46
|
+
dryRun: boolean;
|
|
47
|
+
}) => Promise<{
|
|
48
|
+
content: Array<{
|
|
49
|
+
type: 'text';
|
|
50
|
+
text: string;
|
|
51
|
+
}>;
|
|
52
|
+
}>;
|
|
53
|
+
export declare const removeRelation: (args: {
|
|
54
|
+
workspace: string;
|
|
55
|
+
identifier: string;
|
|
56
|
+
relatedTo: string;
|
|
57
|
+
}) => Promise<{
|
|
58
|
+
content: Array<{
|
|
59
|
+
type: 'text';
|
|
60
|
+
text: string;
|
|
61
|
+
}>;
|
|
62
|
+
}>;
|
|
63
|
+
export declare const removeBlockedBy: (args: {
|
|
64
|
+
workspace: string;
|
|
65
|
+
identifier: string;
|
|
66
|
+
blockedBy: string;
|
|
67
|
+
}) => Promise<{
|
|
68
|
+
content: Array<{
|
|
69
|
+
type: 'text';
|
|
28
70
|
text: string;
|
|
29
71
|
}>;
|
|
30
72
|
}>;
|
package/dist/tools/relations.js
CHANGED
|
@@ -3,8 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.setParent = exports.addBlockedBy = exports.addRelation = void 0;
|
|
6
|
+
exports.removeBlockedBy = exports.removeRelation = exports.repairParentLinks = exports.setParent = exports.addBlockedBy = exports.addRelation = void 0;
|
|
7
|
+
exports.isLegacyLink = isLegacyLink;
|
|
7
8
|
const tracker_1 = __importDefault(require("@hcengineering/tracker"));
|
|
9
|
+
const core_1 = require("@hcengineering/core");
|
|
10
|
+
const rank_1 = require("@hcengineering/rank");
|
|
8
11
|
const connection_1 = require("../connection");
|
|
9
12
|
const errors_1 = require("../utils/errors");
|
|
10
13
|
exports.addRelation = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
@@ -48,56 +51,142 @@ exports.addBlockedBy = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
|
48
51
|
});
|
|
49
52
|
return `✅ **${args.identifier}** is now blocked by **${args.blockedBy}**`;
|
|
50
53
|
});
|
|
54
|
+
/**
|
|
55
|
+
* Sets or clears the parent the way Huly's own UI does (SetParentIssueActionPopup): only
|
|
56
|
+
* `attachedTo` (and the rank among the new siblings) is written. The server derives
|
|
57
|
+
* `parents`, `subIssues` and `childInfo` from it.
|
|
58
|
+
*
|
|
59
|
+
* Before 2.2.0 this tool wrote `parents`/`childInfo` directly and left `attachedTo` at
|
|
60
|
+
* NoParent, so the sub-issue did not appear under its parent in Huly. Running set_parent
|
|
61
|
+
* again on such an issue repairs it.
|
|
62
|
+
*/
|
|
51
63
|
exports.setParent = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
52
64
|
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
53
65
|
const child = await client.findOne(tracker_1.default.class.Issue, { identifier: args.identifier });
|
|
54
66
|
if (child == null)
|
|
55
67
|
throw new Error(`Issue '${args.identifier}' not found.`);
|
|
56
|
-
// Clear parent if requested
|
|
57
68
|
if (args.parentIdentifier == null) {
|
|
58
|
-
await client
|
|
59
|
-
|
|
60
|
-
if (child.parents.length > 0) {
|
|
61
|
-
const oldParentId = child.parents[0].parentId;
|
|
62
|
-
const oldParent = await client.findOne(tracker_1.default.class.Issue, { _id: oldParentId });
|
|
63
|
-
if (oldParent != null) {
|
|
64
|
-
const newChildInfo = (oldParent.childInfo ?? []).filter((c) => c.childId !== child._id);
|
|
65
|
-
await client.updateDoc(tracker_1.default.class.Issue, oldParent.space, oldParent._id, {
|
|
66
|
-
subIssues: Math.max(0, (oldParent.subIssues ?? 1) - 1),
|
|
67
|
-
childInfo: newChildInfo
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return `✅ Cleared parent from **${args.identifier}**`;
|
|
69
|
+
const result = await linkToParent(client, child, null);
|
|
70
|
+
return result === 'unchanged' ? `**${args.identifier}** has no parent.` : `✅ Cleared parent from **${args.identifier}**`;
|
|
72
71
|
}
|
|
73
72
|
const parent = await client.findOne(tracker_1.default.class.Issue, { identifier: args.parentIdentifier });
|
|
74
73
|
if (parent == null)
|
|
75
74
|
throw new Error(`Parent issue '${args.parentIdentifier}' not found.`);
|
|
75
|
+
const result = await linkToParent(client, child, parent);
|
|
76
|
+
if (result === 'unchanged')
|
|
77
|
+
return `**${args.identifier}** is already a sub-issue of **${args.parentIdentifier}**.`;
|
|
78
|
+
return `✅ **${args.identifier}** is now a sub-issue of **${args.parentIdentifier}**${result === 'repaired' ? ' (repaired link from an older version)' : ''}`;
|
|
79
|
+
});
|
|
80
|
+
/** True if the issue was linked by set_parent <= 2.1 (parents written, attachedTo left at NoParent). */
|
|
81
|
+
function isLegacyLink(issue) {
|
|
82
|
+
return issue.attachedTo === tracker_1.default.ids.NoParent && (issue.parents ?? []).length > 0;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Links `child` under `parent` (or detaches it for null) the way Huly's UI does: only
|
|
86
|
+
* attachedTo and rank are written, the server derives parents/subIssues/childInfo.
|
|
87
|
+
*/
|
|
88
|
+
async function linkToParent(client, child, parent) {
|
|
89
|
+
const legacy = isLegacyLink(child);
|
|
90
|
+
// Linked by set_parent <= 2.1: parents/childInfo/subIssues were written by hand while
|
|
91
|
+
// attachedTo stayed NoParent. Undo that bookkeeping first, otherwise the server's own
|
|
92
|
+
// counting on the attachedTo change would count this child twice.
|
|
93
|
+
const undoLegacy = async () => {
|
|
94
|
+
const old = await client.findOne(tracker_1.default.class.Issue, { _id: child.parents[0].parentId });
|
|
95
|
+
if (old == null)
|
|
96
|
+
return;
|
|
97
|
+
const childInfo = (old.childInfo ?? []).filter((c) => c.childId !== child._id);
|
|
98
|
+
const removed = (old.childInfo ?? []).length - childInfo.length;
|
|
99
|
+
await client.updateDoc(tracker_1.default.class.Issue, old.space, old._id, {
|
|
100
|
+
childInfo,
|
|
101
|
+
subIssues: Math.max(0, (old.subIssues ?? 0) - Math.max(removed, 1))
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
if (parent == null) {
|
|
105
|
+
if (child.attachedTo === tracker_1.default.ids.NoParent && (child.parents ?? []).length === 0)
|
|
106
|
+
return 'unchanged';
|
|
107
|
+
if (legacy)
|
|
108
|
+
await undoLegacy();
|
|
109
|
+
await client.update(child, { attachedTo: tracker_1.default.ids.NoParent, parents: [] });
|
|
110
|
+
return 'cleared';
|
|
111
|
+
}
|
|
76
112
|
if (parent._id === child._id)
|
|
77
113
|
throw new Error('An issue cannot be its own parent.');
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
identifier: parent.identifier,
|
|
81
|
-
parentTitle: parent.title,
|
|
82
|
-
space: parent.space
|
|
83
|
-
};
|
|
84
|
-
const childInfoEntry = {
|
|
85
|
-
childId: child._id,
|
|
86
|
-
estimation: child.estimation ?? 0,
|
|
87
|
-
reportedTime: child.reportedTime ?? 0
|
|
88
|
-
};
|
|
89
|
-
// Update child's parents list
|
|
90
|
-
await client.updateDoc(tracker_1.default.class.Issue, child.space, child._id, {
|
|
91
|
-
parents: [parentInfo, ...child.parents]
|
|
92
|
-
});
|
|
93
|
-
// Update parent's subIssues count and childInfo
|
|
94
|
-
const existingChildInfo = parent.childInfo ?? [];
|
|
95
|
-
if (!existingChildInfo.some((c) => c.childId === child._id)) {
|
|
96
|
-
await client.updateDoc(tracker_1.default.class.Issue, parent.space, parent._id, {
|
|
97
|
-
subIssues: (parent.subIssues ?? 0) + 1,
|
|
98
|
-
childInfo: [...existingChildInfo, childInfoEntry]
|
|
99
|
-
});
|
|
114
|
+
if ((parent.parents ?? []).some((p) => p.parentId === child._id)) {
|
|
115
|
+
throw new Error(`${parent.identifier} is a sub-issue of ${child.identifier} — that would create a cycle.`);
|
|
100
116
|
}
|
|
101
|
-
|
|
117
|
+
if (child.attachedTo === parent._id)
|
|
118
|
+
return 'unchanged';
|
|
119
|
+
const lastSibling = await client.findOne(tracker_1.default.class.Issue, { attachedTo: parent._id }, { sort: { rank: core_1.SortingOrder.Descending } });
|
|
120
|
+
if (legacy)
|
|
121
|
+
await undoLegacy();
|
|
122
|
+
await client.update(child, { attachedTo: parent._id, rank: (0, rank_1.makeRank)(lastSibling?.rank, undefined) });
|
|
123
|
+
return legacy ? 'repaired' : 'linked';
|
|
124
|
+
}
|
|
125
|
+
exports.repairParentLinks = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
126
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
127
|
+
const project = await client.findOne(tracker_1.default.class.Project, { identifier: args.projectIdentifier });
|
|
128
|
+
if (project == null)
|
|
129
|
+
throw new Error(`Project '${args.projectIdentifier}' not found.`);
|
|
130
|
+
const issues = await client.findAll(tracker_1.default.class.Issue, { space: project._id });
|
|
131
|
+
const byId = new Map(issues.map((i) => [i._id, i]));
|
|
132
|
+
const legacy = issues.filter(isLegacyLink);
|
|
133
|
+
if (legacy.length === 0)
|
|
134
|
+
return `No broken parent links in ${args.projectIdentifier}.`;
|
|
135
|
+
const lines = [];
|
|
136
|
+
let repaired = 0;
|
|
137
|
+
let skipped = 0;
|
|
138
|
+
for (const child of legacy) {
|
|
139
|
+
const parentRef = child.parents[0];
|
|
140
|
+
const parent = byId.get(parentRef.parentId) ?? await client.findOne(tracker_1.default.class.Issue, { _id: parentRef.parentId });
|
|
141
|
+
if (parent == null) {
|
|
142
|
+
skipped++;
|
|
143
|
+
lines.push(`- ${child.identifier}: parent ${parentRef.identifier} no longer exists — skipped`);
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
if (args.dryRun) {
|
|
147
|
+
lines.push(`- ${child.identifier} → under ${parent.identifier}`);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
await linkToParent(client, child, parent);
|
|
151
|
+
repaired++;
|
|
152
|
+
lines.push(`- ${child.identifier} → under ${parent.identifier} ✅`);
|
|
153
|
+
}
|
|
154
|
+
const head = args.dryRun
|
|
155
|
+
? `## Dry run: ${legacy.length - skipped} sub-issue(s) in ${args.projectIdentifier} would be re-linked${skipped > 0 ? `, ${skipped} skipped` : ''}\nRun again with dryRun=false to apply.`
|
|
156
|
+
: `## Repaired ${repaired} sub-issue link(s) in ${args.projectIdentifier}${skipped > 0 ? `, ${skipped} skipped` : ''}`;
|
|
157
|
+
return `${head}\n\n${lines.join('\n')}`;
|
|
158
|
+
});
|
|
159
|
+
exports.removeRelation = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
160
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
161
|
+
const issueA = await client.findOne(tracker_1.default.class.Issue, { identifier: args.identifier });
|
|
162
|
+
if (issueA == null)
|
|
163
|
+
throw new Error(`Issue '${args.identifier}' not found.`);
|
|
164
|
+
const issueB = await client.findOne(tracker_1.default.class.Issue, { identifier: args.relatedTo });
|
|
165
|
+
if (issueB == null)
|
|
166
|
+
throw new Error(`Issue '${args.relatedTo}' not found.`);
|
|
167
|
+
const aHas = (issueA.relations ?? []).some((r) => r._id === issueB._id);
|
|
168
|
+
const bHas = (issueB.relations ?? []).some((r) => r._id === issueA._id);
|
|
169
|
+
if (!aHas && !bHas)
|
|
170
|
+
return `**${args.identifier}** and **${args.relatedTo}** are not related.`;
|
|
171
|
+
// add_relation links both directions; remove both.
|
|
172
|
+
if (aHas)
|
|
173
|
+
await client.updateDoc(tracker_1.default.class.Issue, issueA.space, issueA._id, { relations: (issueA.relations ?? []).filter((r) => r._id !== issueB._id) });
|
|
174
|
+
if (bHas)
|
|
175
|
+
await client.updateDoc(tracker_1.default.class.Issue, issueB.space, issueB._id, { relations: (issueB.relations ?? []).filter((r) => r._id !== issueA._id) });
|
|
176
|
+
return `✅ **${args.identifier}** and **${args.relatedTo}** are no longer related`;
|
|
177
|
+
});
|
|
178
|
+
exports.removeBlockedBy = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
179
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
180
|
+
const issue = await client.findOne(tracker_1.default.class.Issue, { identifier: args.identifier });
|
|
181
|
+
if (issue == null)
|
|
182
|
+
throw new Error(`Issue '${args.identifier}' not found.`);
|
|
183
|
+
const blocker = await client.findOne(tracker_1.default.class.Issue, { identifier: args.blockedBy });
|
|
184
|
+
if (blocker == null)
|
|
185
|
+
throw new Error(`Issue '${args.blockedBy}' not found.`);
|
|
186
|
+
const existing = issue.blockedBy ?? [];
|
|
187
|
+
if (!existing.some((r) => r._id === blocker._id))
|
|
188
|
+
return `**${args.identifier}** is not blocked by **${args.blockedBy}**.`;
|
|
189
|
+
await client.updateDoc(tracker_1.default.class.Issue, issue.space, issue._id, { blockedBy: existing.filter((r) => r._id !== blocker._id) });
|
|
190
|
+
return `✅ **${args.identifier}** is no longer blocked by **${args.blockedBy}**`;
|
|
102
191
|
});
|
|
103
192
|
//# sourceMappingURL=relations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/tools/relations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/tools/relations.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/search.d.ts
CHANGED
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
export declare const searchIssues: (args: {
|
|
2
|
+
workspace?: string | undefined;
|
|
2
3
|
query: string;
|
|
3
4
|
limit: number;
|
|
5
|
+
}) => Promise<{
|
|
6
|
+
content: Array<{
|
|
7
|
+
type: 'text';
|
|
8
|
+
text: string;
|
|
9
|
+
}>;
|
|
10
|
+
}>;
|
|
11
|
+
/** Friendly kinds for the workspace-wide search; anything else is passed through as a class id. */
|
|
12
|
+
export declare const SEARCH_KINDS: Record<string, string>;
|
|
13
|
+
export declare const searchAll: (args: {
|
|
4
14
|
workspace?: string | undefined;
|
|
15
|
+
query: string;
|
|
16
|
+
kinds?: string[] | undefined;
|
|
17
|
+
limit: number;
|
|
5
18
|
}) => Promise<{
|
|
6
19
|
content: Array<{
|
|
7
|
-
type:
|
|
20
|
+
type: 'text';
|
|
8
21
|
text: string;
|
|
9
22
|
}>;
|
|
10
23
|
}>;
|
package/dist/tools/search.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.searchIssues = void 0;
|
|
6
|
+
exports.searchAll = exports.SEARCH_KINDS = exports.searchIssues = void 0;
|
|
7
7
|
const tracker_1 = __importDefault(require("@hcengineering/tracker"));
|
|
8
8
|
const connection_1 = require("../connection");
|
|
9
9
|
const errors_1 = require("../utils/errors");
|
|
@@ -29,4 +29,32 @@ exports.searchIssues = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
|
29
29
|
});
|
|
30
30
|
return `## Search results for "${args.query}" (${lines.length})\n\n${lines.join('\n')}`;
|
|
31
31
|
});
|
|
32
|
+
/** Friendly kinds for the workspace-wide search; anything else is passed through as a class id. */
|
|
33
|
+
exports.SEARCH_KINDS = {
|
|
34
|
+
issue: 'tracker:class:Issue',
|
|
35
|
+
document: 'document:class:Document',
|
|
36
|
+
message: 'chunter:class:ChatMessage',
|
|
37
|
+
card: 'card:class:Card',
|
|
38
|
+
file: 'drive:class:File',
|
|
39
|
+
person: 'contact:class:Person',
|
|
40
|
+
organization: 'contact:class:Organization',
|
|
41
|
+
'test-case': 'testManagement:class:TestCase',
|
|
42
|
+
attachment: 'attachment:class:Attachment'
|
|
43
|
+
};
|
|
44
|
+
const shortClass = (c) => c.split(':').pop() ?? c;
|
|
45
|
+
exports.searchAll = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
46
|
+
const client = await (0, connection_1.getConnection)(args.workspace);
|
|
47
|
+
const classes = args.kinds?.map((k) => exports.SEARCH_KINDS[k] ?? k);
|
|
48
|
+
const result = await client.searchFulltext({ query: args.query, ...(classes != null && classes.length > 0 ? { classes } : {}) }, { limit: args.limit });
|
|
49
|
+
const docs = result.docs ?? [];
|
|
50
|
+
if (docs.length === 0)
|
|
51
|
+
return `Nothing found for "${args.query}". (Needs Huly's fulltext indexer; very new changes may not be indexed yet.)`;
|
|
52
|
+
const lines = docs.map((r) => {
|
|
53
|
+
const title = r.shortTitle != null && r.title != null && r.shortTitle !== r.title ? `${r.shortTitle}: ${r.title}` : (r.title ?? r.shortTitle ?? '(untitled)');
|
|
54
|
+
const where = r.doc?.attachedTo != null ? ` · on \`${r.doc.attachedTo}\`` : '';
|
|
55
|
+
const desc = r.description != null && r.description !== '' ? `\n ${String(r.description).replace(/\s+/g, ' ').slice(0, 160)}` : '';
|
|
56
|
+
return `- [${shortClass(r.doc?._class ?? '')}] **${String(title)}** — \`${String(r.id)}\`${where}${desc}`;
|
|
57
|
+
});
|
|
58
|
+
return `## Search "${args.query}" (${docs.length}${result.total != null && result.total > docs.length ? ` of ${result.total}` : ''})\n\n${lines.join('\n')}`;
|
|
59
|
+
});
|
|
32
60
|
//# sourceMappingURL=search.js.map
|
package/dist/tools/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":";;;;;;AAAA,qEAA4C;AAC5C,8CAA6C;AAC7C,4CAAiD;AACjD,4CAA2D;AAI9C,QAAA,YAAY,GAAG,IAAA,wBAAe,EAAqC,KAAK,EAAE,IAAI,EAAE,EAAE;IAC7F,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAElD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CACxC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,iBAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EACrD,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CACtB,CAAA;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,+BAA+B,IAAI,CAAC,KAAK,GAAG,CAAA;IAEjF,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAS,EAAE,CAAC,CAAA;QAC7E,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,IAAI,CAAA;QAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAO,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;QACrF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,IAAI,SAAS,EAAE,CAAA;IACzD,CAAC,CAAC,CACH,CAAA;IAED,MAAM,KAAK,GAAG,QAAQ;SACnB,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SACrD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,IAAA,mBAAU,EAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACnF,OAAO,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,OAAO,CAAC,CAAC,UAAU,MAAM,IAAA,sBAAa,EAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACvH,CAAC,CAAC,CAAA;IAEJ,OAAO,0BAA0B,IAAI,CAAC,KAAK,MAAM,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AACzF,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
|