@firfi/huly-mcp 0.41.0 → 0.42.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/README.md +8 -1
- package/dist/index.cjs +781 -594
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -34996,15 +34996,15 @@ var require_storage = __commonJS({
|
|
|
34996
34996
|
var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
|
|
34997
34997
|
var storage_exports = {};
|
|
34998
34998
|
__export2(storage_exports, {
|
|
34999
|
-
SortingOrder: () =>
|
|
34999
|
+
SortingOrder: () => SortingOrder69,
|
|
35000
35000
|
shouldShowArchived: () => shouldShowArchived
|
|
35001
35001
|
});
|
|
35002
35002
|
module2.exports = __toCommonJS2(storage_exports);
|
|
35003
|
-
var
|
|
35003
|
+
var SortingOrder69 = /* @__PURE__ */ ((SortingOrder210) => {
|
|
35004
35004
|
SortingOrder210[SortingOrder210["Ascending"] = 1] = "Ascending";
|
|
35005
35005
|
SortingOrder210[SortingOrder210["Descending"] = -1] = "Descending";
|
|
35006
35006
|
return SortingOrder210;
|
|
35007
|
-
})(
|
|
35007
|
+
})(SortingOrder69 || {});
|
|
35008
35008
|
function shouldShowArchived(query, options) {
|
|
35009
35009
|
if (options?.showArchived !== void 0) {
|
|
35010
35010
|
return options.showArchived;
|
|
@@ -35507,7 +35507,7 @@ var require_client3 = __commonJS({
|
|
|
35507
35507
|
getClient: () => getClient
|
|
35508
35508
|
});
|
|
35509
35509
|
module2.exports = __toCommonJS2(client_exports);
|
|
35510
|
-
var
|
|
35510
|
+
var import_core103 = require_lib5();
|
|
35511
35511
|
var import_platform4 = __toESM2(require_lib());
|
|
35512
35512
|
var import_utils14 = require_utils3();
|
|
35513
35513
|
function getClient(accountsUrl, token, retryTimeoutMs) {
|
|
@@ -35543,7 +35543,7 @@ var require_client3 = __commonJS({
|
|
|
35543
35543
|
rpc;
|
|
35544
35544
|
async getProviders() {
|
|
35545
35545
|
return await withRetryUntilMaxAttempts(async () => {
|
|
35546
|
-
const response = await fetch((0,
|
|
35546
|
+
const response = await fetch((0, import_core103.concatLink)(this.url, "/providers"));
|
|
35547
35547
|
return await response.json();
|
|
35548
35548
|
})();
|
|
35549
35549
|
}
|
|
@@ -36198,7 +36198,7 @@ var require_client3 = __commonJS({
|
|
|
36198
36198
|
await this.rpc(request2);
|
|
36199
36199
|
}
|
|
36200
36200
|
async setCookie() {
|
|
36201
|
-
const url4 = (0,
|
|
36201
|
+
const url4 = (0, import_core103.concatLink)(this.url, "/cookie");
|
|
36202
36202
|
const response = await fetch(url4, { ...this.request, method: "PUT" });
|
|
36203
36203
|
if (!response.ok) {
|
|
36204
36204
|
const result = await response.json();
|
|
@@ -36208,7 +36208,7 @@ var require_client3 = __commonJS({
|
|
|
36208
36208
|
}
|
|
36209
36209
|
}
|
|
36210
36210
|
async deleteCookie() {
|
|
36211
|
-
const url4 = (0,
|
|
36211
|
+
const url4 = (0, import_core103.concatLink)(this.url, "/cookie");
|
|
36212
36212
|
const response = await fetch(url4, { ...this.request, method: "DELETE" });
|
|
36213
36213
|
if (!response.ok) {
|
|
36214
36214
|
const result = await response.json();
|
|
@@ -36487,9 +36487,9 @@ var require_config = __commonJS({
|
|
|
36487
36487
|
loadServerConfig: () => loadServerConfig2
|
|
36488
36488
|
});
|
|
36489
36489
|
module2.exports = __toCommonJS2(config_exports3);
|
|
36490
|
-
var
|
|
36490
|
+
var import_core103 = require_lib5();
|
|
36491
36491
|
async function loadServerConfig2(url4) {
|
|
36492
|
-
const configUrl = (0,
|
|
36492
|
+
const configUrl = (0, import_core103.concatLink)(url4, "/config.json");
|
|
36493
36493
|
const res = await fetch(configUrl, { keepalive: true });
|
|
36494
36494
|
if (res.ok) {
|
|
36495
36495
|
return await res.json();
|
|
@@ -36575,7 +36575,7 @@ var require_client4 = __commonJS({
|
|
|
36575
36575
|
getClient: () => getClient
|
|
36576
36576
|
});
|
|
36577
36577
|
module2.exports = __toCommonJS2(client_exports);
|
|
36578
|
-
var
|
|
36578
|
+
var import_core103 = require_lib5();
|
|
36579
36579
|
var import_utils14 = require_utils4();
|
|
36580
36580
|
function getClient(workspaceId, token, collaboratorUrl) {
|
|
36581
36581
|
const url4 = collaboratorUrl.replaceAll("wss://", "https://").replace("ws://", "http://");
|
|
@@ -36594,7 +36594,7 @@ var require_client4 = __commonJS({
|
|
|
36594
36594
|
async rpc(document2, method, payload) {
|
|
36595
36595
|
const workspace2 = this.workspace;
|
|
36596
36596
|
const documentId = (0, import_utils14.encodeDocumentId)(workspace2, document2);
|
|
36597
|
-
const url4 = (0,
|
|
36597
|
+
const url4 = (0, import_core103.concatLink)(this.collaboratorUrl, `/rpc/${encodeURIComponent(documentId)}`);
|
|
36598
36598
|
const res = await fetch(url4, {
|
|
36599
36599
|
method: "POST",
|
|
36600
36600
|
headers: {
|
|
@@ -54161,9 +54161,9 @@ var require_image = __commonJS({
|
|
|
54161
54161
|
ImageNode: () => ImageNode
|
|
54162
54162
|
});
|
|
54163
54163
|
module2.exports = __toCommonJS2(image_exports);
|
|
54164
|
-
var
|
|
54164
|
+
var import_core103 = require_dist16();
|
|
54165
54165
|
var import_utils14 = require_utils5();
|
|
54166
|
-
var ImageNode =
|
|
54166
|
+
var ImageNode = import_core103.Node.create({
|
|
54167
54167
|
name: "image",
|
|
54168
54168
|
addOptions() {
|
|
54169
54169
|
return {
|
|
@@ -54222,7 +54222,7 @@ var require_image = __commonJS({
|
|
|
54222
54222
|
"data-type": this.name,
|
|
54223
54223
|
"data-align": node.attrs.align
|
|
54224
54224
|
};
|
|
54225
|
-
const imgAttributes = (0,
|
|
54225
|
+
const imgAttributes = (0, import_core103.mergeAttributes)(
|
|
54226
54226
|
{
|
|
54227
54227
|
"data-type": this.name
|
|
54228
54228
|
},
|
|
@@ -54266,9 +54266,9 @@ var require_reference = __commonJS({
|
|
|
54266
54266
|
ReferenceNode: () => ReferenceNode
|
|
54267
54267
|
});
|
|
54268
54268
|
module2.exports = __toCommonJS2(reference_exports);
|
|
54269
|
-
var
|
|
54269
|
+
var import_core103 = require_dist16();
|
|
54270
54270
|
var import_utils14 = require_utils5();
|
|
54271
|
-
var ReferenceNode =
|
|
54271
|
+
var ReferenceNode = import_core103.Node.create({
|
|
54272
54272
|
name: "reference",
|
|
54273
54273
|
group: "inline",
|
|
54274
54274
|
inline: true,
|
|
@@ -54303,7 +54303,7 @@ var require_reference = __commonJS({
|
|
|
54303
54303
|
renderHTML({ node, HTMLAttributes }) {
|
|
54304
54304
|
return [
|
|
54305
54305
|
"span",
|
|
54306
|
-
(0,
|
|
54306
|
+
(0, import_core103.mergeAttributes)(
|
|
54307
54307
|
{
|
|
54308
54308
|
"data-type": this.name,
|
|
54309
54309
|
"data-id": node.attrs.id,
|
|
@@ -54362,8 +54362,8 @@ var require_emoji = __commonJS({
|
|
|
54362
54362
|
EmojiNode: () => EmojiNode
|
|
54363
54363
|
});
|
|
54364
54364
|
module2.exports = __toCommonJS2(emoji_exports);
|
|
54365
|
-
var
|
|
54366
|
-
var EmojiNode =
|
|
54365
|
+
var import_core103 = require_dist16();
|
|
54366
|
+
var EmojiNode = import_core103.Node.create({
|
|
54367
54367
|
name: "emoji",
|
|
54368
54368
|
group: "inline",
|
|
54369
54369
|
inline: true,
|
|
@@ -54403,7 +54403,7 @@ var require_emoji = __commonJS({
|
|
|
54403
54403
|
addNodeView() {
|
|
54404
54404
|
return ({ node, HTMLAttributes }) => {
|
|
54405
54405
|
const container = document.createElement("span");
|
|
54406
|
-
const containerAttributes = (0,
|
|
54406
|
+
const containerAttributes = (0, import_core103.mergeAttributes)(
|
|
54407
54407
|
{
|
|
54408
54408
|
"data-type": this.name,
|
|
54409
54409
|
class: "emoji"
|
|
@@ -54436,7 +54436,7 @@ var require_emoji = __commonJS({
|
|
|
54436
54436
|
if (node.attrs.kind === "image") {
|
|
54437
54437
|
return [
|
|
54438
54438
|
"span",
|
|
54439
|
-
(0,
|
|
54439
|
+
(0, import_core103.mergeAttributes)(
|
|
54440
54440
|
{
|
|
54441
54441
|
"data-type": this.name,
|
|
54442
54442
|
class: "emoji"
|
|
@@ -54445,7 +54445,7 @@ var require_emoji = __commonJS({
|
|
|
54445
54445
|
),
|
|
54446
54446
|
[
|
|
54447
54447
|
"img",
|
|
54448
|
-
(0,
|
|
54448
|
+
(0, import_core103.mergeAttributes)({
|
|
54449
54449
|
"data-type": this.name,
|
|
54450
54450
|
src: node.attrs.image,
|
|
54451
54451
|
alt: node.attrs.emoji
|
|
@@ -54455,7 +54455,7 @@ var require_emoji = __commonJS({
|
|
|
54455
54455
|
}
|
|
54456
54456
|
return [
|
|
54457
54457
|
"span",
|
|
54458
|
-
(0,
|
|
54458
|
+
(0, import_core103.mergeAttributes)(
|
|
54459
54459
|
{
|
|
54460
54460
|
"data-type": this.name,
|
|
54461
54461
|
class: "emoji"
|
|
@@ -54763,8 +54763,8 @@ var require_file = __commonJS({
|
|
|
54763
54763
|
FileNode: () => FileNode
|
|
54764
54764
|
});
|
|
54765
54765
|
module2.exports = __toCommonJS2(file_exports);
|
|
54766
|
-
var
|
|
54767
|
-
var FileNode =
|
|
54766
|
+
var import_core103 = require_dist16();
|
|
54767
|
+
var FileNode = import_core103.Node.create({
|
|
54768
54768
|
name: "file",
|
|
54769
54769
|
addOptions() {
|
|
54770
54770
|
return {
|
|
@@ -55074,7 +55074,7 @@ var require_codeblock = __commonJS({
|
|
|
55074
55074
|
tildeInputRegex: () => tildeInputRegex
|
|
55075
55075
|
});
|
|
55076
55076
|
module2.exports = __toCommonJS2(codeblock_exports);
|
|
55077
|
-
var
|
|
55077
|
+
var import_core103 = require_dist16();
|
|
55078
55078
|
var import_extension_code_block = __toESM2(require_dist19());
|
|
55079
55079
|
var codeBlockOptions = {
|
|
55080
55080
|
defaultLanguage: "plaintext",
|
|
@@ -55120,11 +55120,11 @@ var require_codeblock = __commonJS({
|
|
|
55120
55120
|
},
|
|
55121
55121
|
addInputRules() {
|
|
55122
55122
|
return [
|
|
55123
|
-
(0,
|
|
55123
|
+
(0, import_core103.textblockTypeInputRule)({
|
|
55124
55124
|
find: backtickInputRegex,
|
|
55125
55125
|
type: this.type
|
|
55126
55126
|
}),
|
|
55127
|
-
(0,
|
|
55127
|
+
(0, import_core103.textblockTypeInputRule)({
|
|
55128
55128
|
find: tildeInputRegex,
|
|
55129
55129
|
type: this.type
|
|
55130
55130
|
})
|
|
@@ -55160,8 +55160,8 @@ var require_comment = __commonJS({
|
|
|
55160
55160
|
CommentNode: () => CommentNode
|
|
55161
55161
|
});
|
|
55162
55162
|
module2.exports = __toCommonJS2(comment_exports);
|
|
55163
|
-
var
|
|
55164
|
-
var CommentNode =
|
|
55163
|
+
var import_core103 = require_dist16();
|
|
55164
|
+
var CommentNode = import_core103.Node.create({
|
|
55165
55165
|
name: "comment",
|
|
55166
55166
|
group: "inline",
|
|
55167
55167
|
inline: true,
|
|
@@ -55207,8 +55207,8 @@ var require_markdown = __commonJS({
|
|
|
55207
55207
|
MarkdownNode: () => MarkdownNode
|
|
55208
55208
|
});
|
|
55209
55209
|
module2.exports = __toCommonJS2(markdown_exports);
|
|
55210
|
-
var
|
|
55211
|
-
var MarkdownNode =
|
|
55210
|
+
var import_core103 = require_dist16();
|
|
55211
|
+
var MarkdownNode = import_core103.Node.create({
|
|
55212
55212
|
name: "markdown",
|
|
55213
55213
|
group: "block",
|
|
55214
55214
|
content: "text*",
|
|
@@ -55226,7 +55226,7 @@ var require_markdown = __commonJS({
|
|
|
55226
55226
|
renderHTML({ node, HTMLAttributes }) {
|
|
55227
55227
|
return [
|
|
55228
55228
|
"pre",
|
|
55229
|
-
(0,
|
|
55229
|
+
(0, import_core103.mergeAttributes)({ "data-type": this.name }, this.options.HTMLAttributes, HTMLAttributes),
|
|
55230
55230
|
["code", {}, 0]
|
|
55231
55231
|
];
|
|
55232
55232
|
}
|
|
@@ -55260,8 +55260,8 @@ var require_embed = __commonJS({
|
|
|
55260
55260
|
EmbedNode: () => EmbedNode
|
|
55261
55261
|
});
|
|
55262
55262
|
module2.exports = __toCommonJS2(embed_exports);
|
|
55263
|
-
var
|
|
55264
|
-
var EmbedNode =
|
|
55263
|
+
var import_core103 = require_dist16();
|
|
55264
|
+
var EmbedNode = import_core103.Node.create({
|
|
55265
55265
|
name: "embed",
|
|
55266
55266
|
addOptions() {
|
|
55267
55267
|
return {};
|
|
@@ -55286,7 +55286,7 @@ var require_embed = __commonJS({
|
|
|
55286
55286
|
];
|
|
55287
55287
|
},
|
|
55288
55288
|
renderHTML({ HTMLAttributes }) {
|
|
55289
|
-
return ["figure", { "data-type": this.name }, ["iframe", (0,
|
|
55289
|
+
return ["figure", { "data-type": this.name }, ["iframe", (0, import_core103.mergeAttributes)(HTMLAttributes)]];
|
|
55290
55290
|
}
|
|
55291
55291
|
});
|
|
55292
55292
|
}
|
|
@@ -55360,7 +55360,7 @@ var require_noteBase = __commonJS({
|
|
|
55360
55360
|
name: () => name
|
|
55361
55361
|
});
|
|
55362
55362
|
module2.exports = __toCommonJS2(noteBase_exports);
|
|
55363
|
-
var
|
|
55363
|
+
var import_core103 = require_dist16();
|
|
55364
55364
|
var import_nodes = require_nodes();
|
|
55365
55365
|
var name = "note";
|
|
55366
55366
|
var NoteKind = /* @__PURE__ */ ((NoteKind2) => {
|
|
@@ -55375,7 +55375,7 @@ var require_noteBase = __commonJS({
|
|
|
55375
55375
|
NoteKind2["PrimaryLight"] = "primary-light";
|
|
55376
55376
|
return NoteKind2;
|
|
55377
55377
|
})(NoteKind || {});
|
|
55378
|
-
var NoteBaseExtension =
|
|
55378
|
+
var NoteBaseExtension = import_core103.Mark.create({
|
|
55379
55379
|
name,
|
|
55380
55380
|
parseHTML() {
|
|
55381
55381
|
return [
|
|
@@ -55432,9 +55432,9 @@ var require_qmsInlineCommentMark = __commonJS({
|
|
|
55432
55432
|
QMSInlineCommentMark: () => QMSInlineCommentMark
|
|
55433
55433
|
});
|
|
55434
55434
|
module2.exports = __toCommonJS2(qmsInlineCommentMark_exports);
|
|
55435
|
-
var
|
|
55435
|
+
var import_core103 = require_dist16();
|
|
55436
55436
|
var NAME2 = "node-uuid";
|
|
55437
|
-
var QMSInlineCommentMark =
|
|
55437
|
+
var QMSInlineCommentMark = import_core103.Mark.create({
|
|
55438
55438
|
name: NAME2,
|
|
55439
55439
|
inline: true,
|
|
55440
55440
|
parseHTML() {
|
|
@@ -55479,9 +55479,9 @@ var require_kit = __commonJS({
|
|
|
55479
55479
|
mergeKitOptions: () => mergeKitOptions
|
|
55480
55480
|
});
|
|
55481
55481
|
module2.exports = __toCommonJS2(kit_exports);
|
|
55482
|
-
var
|
|
55482
|
+
var import_core103 = require_dist16();
|
|
55483
55483
|
function extensionKit(name, fn2) {
|
|
55484
|
-
return
|
|
55484
|
+
return import_core103.Extension.create({
|
|
55485
55485
|
name,
|
|
55486
55486
|
addExtensions() {
|
|
55487
55487
|
const e = /* @__PURE__ */ __name((extension, options) => {
|
|
@@ -62510,9 +62510,9 @@ var require_colors = __commonJS({
|
|
|
62510
62510
|
TextColor: () => TextColor
|
|
62511
62511
|
});
|
|
62512
62512
|
module2.exports = __toCommonJS2(colors_exports);
|
|
62513
|
-
var
|
|
62513
|
+
var import_core103 = require_dist16();
|
|
62514
62514
|
var import_extension_text_style = require_dist20();
|
|
62515
|
-
var BackgroundColor =
|
|
62515
|
+
var BackgroundColor = import_core103.Extension.create({
|
|
62516
62516
|
name: "backgroundColor",
|
|
62517
62517
|
addOptions() {
|
|
62518
62518
|
return {
|
|
@@ -62553,7 +62553,7 @@ var require_colors = __commonJS({
|
|
|
62553
62553
|
};
|
|
62554
62554
|
}
|
|
62555
62555
|
});
|
|
62556
|
-
var TextColor =
|
|
62556
|
+
var TextColor = import_core103.Extension.create({
|
|
62557
62557
|
name: "textColor",
|
|
62558
62558
|
addOptions() {
|
|
62559
62559
|
return {
|
|
@@ -62625,10 +62625,10 @@ var require_inlineComment = __commonJS({
|
|
|
62625
62625
|
InlineCommentPasteFixPlugin: () => InlineCommentPasteFixPlugin
|
|
62626
62626
|
});
|
|
62627
62627
|
module2.exports = __toCommonJS2(inlineComment_exports);
|
|
62628
|
-
var
|
|
62628
|
+
var import_core103 = require_dist16();
|
|
62629
62629
|
var import_model = require_dist10();
|
|
62630
62630
|
var import_state = require_dist5();
|
|
62631
|
-
var InlineCommentMark =
|
|
62631
|
+
var InlineCommentMark = import_core103.Mark.create({
|
|
62632
62632
|
name: "inline-comment",
|
|
62633
62633
|
excludes: "",
|
|
62634
62634
|
inclusive: false,
|
|
@@ -78152,7 +78152,7 @@ var require_client5 = __commonJS({
|
|
|
78152
78152
|
createMarkupOperations: () => createMarkupOperations
|
|
78153
78153
|
});
|
|
78154
78154
|
module2.exports = __toCommonJS2(client_exports);
|
|
78155
|
-
var
|
|
78155
|
+
var import_core103 = require_lib5();
|
|
78156
78156
|
var import_collaborator_client2 = require_lib8();
|
|
78157
78157
|
var import_text5 = require_lib10();
|
|
78158
78158
|
var import_text_markdown3 = require_lib18();
|
|
@@ -78166,8 +78166,8 @@ var require_client5 = __commonJS({
|
|
|
78166
78166
|
this.workspace = workspace2;
|
|
78167
78167
|
this.token = token;
|
|
78168
78168
|
this.config = config3;
|
|
78169
|
-
this.refUrl = (0,
|
|
78170
|
-
this.imageUrl = (0,
|
|
78169
|
+
this.refUrl = (0, import_core103.concatLink)(this.url, `/browse?workspace=${workspace2}`);
|
|
78170
|
+
this.imageUrl = (0, import_core103.concatLink)(this.url, `/files?workspace=${workspace2}&file=`);
|
|
78171
78171
|
this.collaborator = (0, import_collaborator_client2.getClient)(workspace2, token, config3.COLLABORATOR_URL);
|
|
78172
78172
|
}
|
|
78173
78173
|
static {
|
|
@@ -78177,7 +78177,7 @@ var require_client5 = __commonJS({
|
|
|
78177
78177
|
imageUrl;
|
|
78178
78178
|
refUrl;
|
|
78179
78179
|
async fetchMarkup(objectClass, objectId, objectAttr, doc, format7) {
|
|
78180
|
-
const collabId = (0,
|
|
78180
|
+
const collabId = (0, import_core103.makeCollabId)(objectClass, objectId, objectAttr);
|
|
78181
78181
|
const markup = await this.collaborator.getMarkup(collabId, doc);
|
|
78182
78182
|
const json3 = (0, import_text5.markupToJSON)(markup);
|
|
78183
78183
|
switch (format7) {
|
|
@@ -78206,7 +78206,7 @@ var require_client5 = __commonJS({
|
|
|
78206
78206
|
default:
|
|
78207
78207
|
throw new Error("Unknown content format");
|
|
78208
78208
|
}
|
|
78209
|
-
const collabId = (0,
|
|
78209
|
+
const collabId = (0, import_core103.makeCollabId)(objectClass, objectId, objectAttr);
|
|
78210
78210
|
return await this.collaborator.createMarkup(collabId, markup);
|
|
78211
78211
|
}
|
|
78212
78212
|
};
|
|
@@ -82690,8 +82690,8 @@ var require_connection2 = __commonJS({
|
|
|
82690
82690
|
});
|
|
82691
82691
|
module2.exports = __toCommonJS2(connection_exports);
|
|
82692
82692
|
var import_analytics = require_lib3();
|
|
82693
|
-
var
|
|
82694
|
-
var
|
|
82693
|
+
var import_client86 = __toESM2(require_lib7());
|
|
82694
|
+
var import_core103 = __toESM2(require_lib5());
|
|
82695
82695
|
var import_platform4 = __toESM2(require_lib());
|
|
82696
82696
|
var import_rpc = require_lib19();
|
|
82697
82697
|
var import_snappyjs = require_snappyjs();
|
|
@@ -82735,7 +82735,7 @@ var require_connection2 = __commonJS({
|
|
|
82735
82735
|
const sKey = "session.id." + this.url;
|
|
82736
82736
|
let sessionId = sessionStorage.getItem(sKey) ?? void 0;
|
|
82737
82737
|
if (sessionId === void 0) {
|
|
82738
|
-
sessionId = (0,
|
|
82738
|
+
sessionId = (0, import_core103.generateId)();
|
|
82739
82739
|
console.log("Generate new SessionId", sessionId);
|
|
82740
82740
|
this.sessionId = sessionId;
|
|
82741
82741
|
} else {
|
|
@@ -82746,7 +82746,7 @@ var require_connection2 = __commonJS({
|
|
|
82746
82746
|
sessionStorage.setItem(sKey, sessionId);
|
|
82747
82747
|
});
|
|
82748
82748
|
} else {
|
|
82749
|
-
this.sessionId = (0,
|
|
82749
|
+
this.sessionId = (0, import_core103.generateId)();
|
|
82750
82750
|
}
|
|
82751
82751
|
this.rpcHandler = opt?.useGlobalRPCHandler === true ? globalRPCHandler : new import_rpc.RPCHandler();
|
|
82752
82752
|
this.pushHandler(handler);
|
|
@@ -82801,7 +82801,7 @@ var require_connection2 = __commonJS({
|
|
|
82801
82801
|
}
|
|
82802
82802
|
if (!this.closed) {
|
|
82803
82803
|
void this.sendRequest({
|
|
82804
|
-
method:
|
|
82804
|
+
method: import_client86.pingConst,
|
|
82805
82805
|
params: [],
|
|
82806
82806
|
once: true,
|
|
82807
82807
|
handleResult: /* @__PURE__ */ __name(async (result) => {
|
|
@@ -82834,7 +82834,7 @@ var require_connection2 = __commonJS({
|
|
|
82834
82834
|
}
|
|
82835
82835
|
}
|
|
82836
82836
|
isConnected() {
|
|
82837
|
-
return this.websocket != null && this.websocket.readyState ===
|
|
82837
|
+
return this.websocket != null && this.websocket.readyState === import_client86.ClientSocketReadyState.OPEN && this.helloReceived;
|
|
82838
82838
|
}
|
|
82839
82839
|
delay = 0;
|
|
82840
82840
|
onConnectHandlers = [];
|
|
@@ -82926,7 +82926,7 @@ var require_connection2 = __commonJS({
|
|
|
82926
82926
|
if (resp.id === -1) {
|
|
82927
82927
|
this.delay = 0;
|
|
82928
82928
|
if (resp.result?.state === "upgrading") {
|
|
82929
|
-
void this.onConnect?.(
|
|
82929
|
+
void this.onConnect?.(import_core103.ClientConnectEvent.Maintenance, void 0, resp.result.stats);
|
|
82930
82930
|
this.upgrading = true;
|
|
82931
82931
|
this.delay = 3;
|
|
82932
82932
|
return;
|
|
@@ -82961,7 +82961,7 @@ var require_connection2 = __commonJS({
|
|
|
82961
82961
|
v.reconnect?.();
|
|
82962
82962
|
}
|
|
82963
82963
|
void this.onConnect?.(
|
|
82964
|
-
helloResp.reconnect === true ?
|
|
82964
|
+
helloResp.reconnect === true ? import_core103.ClientConnectEvent.Reconnected : import_core103.ClientConnectEvent.Connected,
|
|
82965
82965
|
helloResp.lastTx,
|
|
82966
82966
|
this.sessionId
|
|
82967
82967
|
)?.catch((err) => {
|
|
@@ -82974,8 +82974,8 @@ var require_connection2 = __commonJS({
|
|
|
82974
82974
|
}
|
|
82975
82975
|
return;
|
|
82976
82976
|
}
|
|
82977
|
-
if (resp.result ===
|
|
82978
|
-
void this.sendRequest({ method:
|
|
82977
|
+
if (resp.result === import_client86.pingConst) {
|
|
82978
|
+
void this.sendRequest({ method: import_client86.pingConst, params: [] }).catch((err) => {
|
|
82979
82979
|
this.ctx.error("failed to send ping", { err });
|
|
82980
82980
|
});
|
|
82981
82981
|
return;
|
|
@@ -83011,7 +83011,7 @@ var require_connection2 = __commonJS({
|
|
|
83011
83011
|
}
|
|
83012
83012
|
result = result.concat(c.data);
|
|
83013
83013
|
}
|
|
83014
|
-
resp.result = (0,
|
|
83014
|
+
resp.result = (0, import_core103.toFindResult)(result, total, lookupMap);
|
|
83015
83015
|
resp.chunk = void 0;
|
|
83016
83016
|
} else {
|
|
83017
83017
|
return;
|
|
@@ -83055,7 +83055,7 @@ var require_connection2 = __commonJS({
|
|
|
83055
83055
|
} else {
|
|
83056
83056
|
const txArr = Array.isArray(resp.result) ? resp.result : [resp.result];
|
|
83057
83057
|
for (const tx of txArr) {
|
|
83058
|
-
if (tx?._class ===
|
|
83058
|
+
if (tx?._class === import_core103.default.class.TxModelUpgrade) {
|
|
83059
83059
|
console.log("Processing upgrade", this.workspace, this.user);
|
|
83060
83060
|
this.opt?.onUpgrade?.();
|
|
83061
83061
|
return;
|
|
@@ -83067,15 +83067,15 @@ var require_connection2 = __commonJS({
|
|
|
83067
83067
|
}
|
|
83068
83068
|
}
|
|
83069
83069
|
checkArrayBufferPing(data) {
|
|
83070
|
-
if (data.byteLength ===
|
|
83070
|
+
if (data.byteLength === import_client86.pingConst.length || data.byteLength === import_client86.pongConst.length) {
|
|
83071
83071
|
const text = new TextDecoder().decode(data);
|
|
83072
|
-
if (text ===
|
|
83073
|
-
void this.sendRequest({ method:
|
|
83072
|
+
if (text === import_client86.pingConst) {
|
|
83073
|
+
void this.sendRequest({ method: import_client86.pingConst, params: [] }).catch((err) => {
|
|
83074
83074
|
this.ctx.error("failed to send ping", { err });
|
|
83075
83075
|
});
|
|
83076
83076
|
return true;
|
|
83077
83077
|
}
|
|
83078
|
-
if (text ===
|
|
83078
|
+
if (text === import_client86.pongConst) {
|
|
83079
83079
|
this.pingResponse = Date.now();
|
|
83080
83080
|
return true;
|
|
83081
83081
|
}
|
|
@@ -83085,7 +83085,7 @@ var require_connection2 = __commonJS({
|
|
|
83085
83085
|
openConnection(ctx, socketId) {
|
|
83086
83086
|
this.binaryMode = false;
|
|
83087
83087
|
this.helloReceived = false;
|
|
83088
|
-
const clientSocketFactory = this.opt?.socketFactory ?? (0, import_platform4.getMetadata)(
|
|
83088
|
+
const clientSocketFactory = this.opt?.socketFactory ?? (0, import_platform4.getMetadata)(import_client86.default.metadata.ClientSocketFactory) ?? ((url4) => {
|
|
83089
83089
|
const s = new WebSocket(url4);
|
|
83090
83090
|
return s;
|
|
83091
83091
|
});
|
|
@@ -83120,12 +83120,12 @@ var require_connection2 = __commonJS({
|
|
|
83120
83120
|
if (this.websocket !== wsocket) {
|
|
83121
83121
|
return;
|
|
83122
83122
|
}
|
|
83123
|
-
if (event.data ===
|
|
83123
|
+
if (event.data === import_client86.pongConst) {
|
|
83124
83124
|
this.pingResponse = Date.now();
|
|
83125
83125
|
return;
|
|
83126
83126
|
}
|
|
83127
|
-
if (event.data ===
|
|
83128
|
-
void this.sendRequest({ method:
|
|
83127
|
+
if (event.data === import_client86.pingConst) {
|
|
83128
|
+
void this.sendRequest({ method: import_client86.pingConst, params: [] }).catch((err) => {
|
|
83129
83129
|
this.ctx.error("failed to send ping", { err });
|
|
83130
83130
|
});
|
|
83131
83131
|
return;
|
|
@@ -83190,8 +83190,8 @@ var require_connection2 = __commonJS({
|
|
|
83190
83190
|
if (this.websocket !== wsocket) {
|
|
83191
83191
|
return;
|
|
83192
83192
|
}
|
|
83193
|
-
const useBinary = this.opt?.useBinaryProtocol ?? (0, import_platform4.getMetadata)(
|
|
83194
|
-
this.compressionMode = this.opt?.useProtocolCompression ?? (0, import_platform4.getMetadata)(
|
|
83193
|
+
const useBinary = this.opt?.useBinaryProtocol ?? (0, import_platform4.getMetadata)(import_client86.default.metadata.UseBinaryProtocol) ?? true;
|
|
83194
|
+
this.compressionMode = this.opt?.useProtocolCompression ?? (0, import_platform4.getMetadata)(import_client86.default.metadata.UseProtocolCompression) ?? false;
|
|
83195
83195
|
const helloRequest = {
|
|
83196
83196
|
method: "hello",
|
|
83197
83197
|
params: [],
|
|
@@ -83237,13 +83237,13 @@ var require_connection2 = __commonJS({
|
|
|
83237
83237
|
if (w instanceof Promise) {
|
|
83238
83238
|
await w;
|
|
83239
83239
|
}
|
|
83240
|
-
if (data.method !==
|
|
83240
|
+
if (data.method !== import_client86.pingConst) {
|
|
83241
83241
|
this.requests.set(id, promise4);
|
|
83242
83242
|
}
|
|
83243
83243
|
promise4.sendData = () => {
|
|
83244
|
-
if (this.websocket?.readyState ===
|
|
83244
|
+
if (this.websocket?.readyState === import_client86.ClientSocketReadyState.OPEN) {
|
|
83245
83245
|
promise4.startTime = Date.now();
|
|
83246
|
-
if (data.method !==
|
|
83246
|
+
if (data.method !== import_client86.pingConst) {
|
|
83247
83247
|
const dta = this.rpcHandler.serialize(
|
|
83248
83248
|
{
|
|
83249
83249
|
method: data.method,
|
|
@@ -83256,7 +83256,7 @@ var require_connection2 = __commonJS({
|
|
|
83256
83256
|
);
|
|
83257
83257
|
this.websocket?.send(dta);
|
|
83258
83258
|
} else {
|
|
83259
|
-
this.websocket?.send(
|
|
83259
|
+
this.websocket?.send(import_client86.pingConst);
|
|
83260
83260
|
}
|
|
83261
83261
|
}
|
|
83262
83262
|
};
|
|
@@ -83270,7 +83270,7 @@ var require_connection2 = __commonJS({
|
|
|
83270
83270
|
};
|
|
83271
83271
|
}
|
|
83272
83272
|
promise4.sendData();
|
|
83273
|
-
if (data.method !==
|
|
83273
|
+
if (data.method !== import_client86.pingConst) {
|
|
83274
83274
|
return await promise4.promise;
|
|
83275
83275
|
}
|
|
83276
83276
|
},
|
|
@@ -83285,7 +83285,7 @@ var require_connection2 = __commonJS({
|
|
|
83285
83285
|
}
|
|
83286
83286
|
getAccount() {
|
|
83287
83287
|
if (this.account !== void 0) {
|
|
83288
|
-
return Promise.resolve((0,
|
|
83288
|
+
return Promise.resolve((0, import_core103.clone)(this.account));
|
|
83289
83289
|
}
|
|
83290
83290
|
return this.sendRequest({ method: "getAccount", params: [] });
|
|
83291
83291
|
}
|
|
@@ -83343,10 +83343,10 @@ var require_connection2 = __commonJS({
|
|
|
83343
83343
|
method: "tx",
|
|
83344
83344
|
params: [tx],
|
|
83345
83345
|
retry: /* @__PURE__ */ __name(async () => {
|
|
83346
|
-
if (tx._class ===
|
|
83347
|
-
return (await this.findAll(
|
|
83346
|
+
if (tx._class === import_core103.default.class.TxApplyIf) {
|
|
83347
|
+
return (await this.findAll(import_core103.default.class.Tx, { _id: tx.txes[0]._id }, { limit: 1 })).length === 0;
|
|
83348
83348
|
}
|
|
83349
|
-
return (await this.findAll(
|
|
83349
|
+
return (await this.findAll(import_core103.default.class.Tx, { _id: tx._id }, { limit: 1 })).length === 0;
|
|
83350
83350
|
}, "retry")
|
|
83351
83351
|
});
|
|
83352
83352
|
}
|
|
@@ -83386,7 +83386,7 @@ var require_connection2 = __commonJS({
|
|
|
83386
83386
|
};
|
|
83387
83387
|
function connect(url4, handler, workspace2, user, opt) {
|
|
83388
83388
|
return new Connection(
|
|
83389
|
-
opt?.ctx?.newChild?.("connection", {}) ?? new
|
|
83389
|
+
opt?.ctx?.newChild?.("connection", {}) ?? new import_core103.MeasureMetricsContext("connection", {}),
|
|
83390
83390
|
url4,
|
|
83391
83391
|
handler,
|
|
83392
83392
|
workspace2,
|
|
@@ -83436,14 +83436,14 @@ var require_lib20 = __commonJS({
|
|
|
83436
83436
|
default: () => index_default
|
|
83437
83437
|
});
|
|
83438
83438
|
module2.exports = __toCommonJS2(index_exports2);
|
|
83439
|
-
var
|
|
83440
|
-
var
|
|
83439
|
+
var import_client86 = __toESM2(require_lib7());
|
|
83440
|
+
var import_core103 = __toESM2(require_lib5());
|
|
83441
83441
|
var import_platform4 = __toESM2(require_lib());
|
|
83442
83442
|
var import_connection = require_connection2();
|
|
83443
83443
|
var dbRequest;
|
|
83444
83444
|
var dbPromise = Promise.resolve(void 0);
|
|
83445
83445
|
if (typeof localStorage !== "undefined") {
|
|
83446
|
-
const st = (0,
|
|
83446
|
+
const st = (0, import_core103.platformNow)();
|
|
83447
83447
|
dbPromise = new Promise((resolve2) => {
|
|
83448
83448
|
dbRequest = indexedDB.open("model.db.persistence", 2);
|
|
83449
83449
|
dbRequest.onupgradeneeded = function() {
|
|
@@ -83454,7 +83454,7 @@ var require_lib20 = __commonJS({
|
|
|
83454
83454
|
};
|
|
83455
83455
|
dbRequest.onsuccess = function() {
|
|
83456
83456
|
const db = dbRequest.result;
|
|
83457
|
-
console.log("init DB complete", (0,
|
|
83457
|
+
console.log("init DB complete", (0, import_core103.platformNow)() - st);
|
|
83458
83458
|
resolve2(db);
|
|
83459
83459
|
};
|
|
83460
83460
|
});
|
|
@@ -83480,19 +83480,19 @@ var require_lib20 = __commonJS({
|
|
|
83480
83480
|
return {
|
|
83481
83481
|
function: {
|
|
83482
83482
|
GetClient: /* @__PURE__ */ __name(async (token, endpoint, opt) => {
|
|
83483
|
-
const filterModel = (0, import_platform4.getMetadata)(
|
|
83484
|
-
const extraFilter = (0, import_platform4.getMetadata)(
|
|
83483
|
+
const filterModel = (0, import_platform4.getMetadata)(import_client86.default.metadata.FilterModel) ?? "none";
|
|
83484
|
+
const extraFilter = (0, import_platform4.getMetadata)(import_client86.default.metadata.ExtraFilter) ?? [];
|
|
83485
83485
|
const handler = /* @__PURE__ */ __name(async (handler2) => {
|
|
83486
|
-
const url4 = (0,
|
|
83486
|
+
const url4 = (0, import_core103.concatLink)(endpoint, `/${token}`);
|
|
83487
83487
|
const upgradeHandler = /* @__PURE__ */ __name((...txes) => {
|
|
83488
83488
|
for (const tx of txes) {
|
|
83489
|
-
if (tx?._class ===
|
|
83489
|
+
if (tx?._class === import_core103.default.class.TxModelUpgrade) {
|
|
83490
83490
|
opt?.onUpgrade?.();
|
|
83491
83491
|
return;
|
|
83492
83492
|
}
|
|
83493
|
-
if (tx?._class ===
|
|
83493
|
+
if (tx?._class === import_core103.default.class.TxWorkspaceEvent) {
|
|
83494
83494
|
const event = tx;
|
|
83495
|
-
if (event.event ===
|
|
83495
|
+
if (event.event === import_core103.WorkspaceEvent.MaintenanceNotification) {
|
|
83496
83496
|
void (0, import_platform4.setPlatformStatus)(
|
|
83497
83497
|
new import_platform4.Status(import_platform4.Severity.WARNING, import_platform4.default.status.MaintenanceWarning, {
|
|
83498
83498
|
time: event.params.timeMinutes,
|
|
@@ -83509,7 +83509,7 @@ var require_lib20 = __commonJS({
|
|
|
83509
83509
|
throw new Error("Workspace or account not found in token");
|
|
83510
83510
|
}
|
|
83511
83511
|
const newOpt = { ...opt };
|
|
83512
|
-
const connectTimeout = opt?.connectionTimeout ?? (0, import_platform4.getMetadata)(
|
|
83512
|
+
const connectTimeout = opt?.connectionTimeout ?? (0, import_platform4.getMetadata)(import_client86.default.metadata.ConnectionTimeout);
|
|
83513
83513
|
let connectPromise;
|
|
83514
83514
|
if ((connectTimeout ?? 0) > 0) {
|
|
83515
83515
|
connectPromise = new Promise((resolve2, reject) => {
|
|
@@ -83530,7 +83530,7 @@ var require_lib20 = __commonJS({
|
|
|
83530
83530
|
reject(error2);
|
|
83531
83531
|
return;
|
|
83532
83532
|
}
|
|
83533
|
-
if (event !==
|
|
83533
|
+
if (event !== import_core103.ClientConnectEvent.Maintenance) {
|
|
83534
83534
|
clearTimeout(connectTO);
|
|
83535
83535
|
resolve2();
|
|
83536
83536
|
}
|
|
@@ -83552,7 +83552,7 @@ var require_lib20 = __commonJS({
|
|
|
83552
83552
|
}
|
|
83553
83553
|
return txes;
|
|
83554
83554
|
}, "modelFilter");
|
|
83555
|
-
const client = (0,
|
|
83555
|
+
const client = (0, import_core103.createClient)(handler, modelFilter, createModelPersistence(getWSFromToken(token)), opt?.ctx);
|
|
83556
83556
|
return await client;
|
|
83557
83557
|
}, "GetClient")
|
|
83558
83558
|
}
|
|
@@ -83560,17 +83560,17 @@ var require_lib20 = __commonJS({
|
|
|
83560
83560
|
}, "default");
|
|
83561
83561
|
function returnUITxes(txes, extraFilter) {
|
|
83562
83562
|
const configs = /* @__PURE__ */ new Map();
|
|
83563
|
-
(0,
|
|
83564
|
-
const allowedPlugins = [...(0, import_platform4.getPlugins)(), ...(0, import_platform4.getMetadata)(
|
|
83563
|
+
(0, import_core103.fillConfiguration)(txes, configs);
|
|
83564
|
+
const allowedPlugins = [...(0, import_platform4.getPlugins)(), ...(0, import_platform4.getMetadata)(import_client86.default.metadata.ExtraPlugins) ?? []];
|
|
83565
83565
|
const excludedPlugins = Array.from(configs.values()).filter(
|
|
83566
83566
|
(it) => !it.enabled || !allowedPlugins.includes(it.pluginId) || extraFilter.includes(it.pluginId)
|
|
83567
83567
|
);
|
|
83568
|
-
return (0,
|
|
83568
|
+
return (0, import_core103.pluginFilterTx)(excludedPlugins, configs, txes);
|
|
83569
83569
|
}
|
|
83570
83570
|
__name(returnUITxes, "returnUITxes");
|
|
83571
83571
|
function returnClientTxes(txes) {
|
|
83572
83572
|
const configs = /* @__PURE__ */ new Map();
|
|
83573
|
-
(0,
|
|
83573
|
+
(0, import_core103.fillConfiguration)(txes, configs);
|
|
83574
83574
|
const excludedPlugins = Array.from(configs.values()).filter((it) => !it.enabled || it.pluginId.startsWith("server-"));
|
|
83575
83575
|
const toExclude = /* @__PURE__ */ new Set([
|
|
83576
83576
|
"workbench:class:Application",
|
|
@@ -83596,8 +83596,8 @@ var require_lib20 = __commonJS({
|
|
|
83596
83596
|
"setting:class:WorkspaceSettingCategory",
|
|
83597
83597
|
"notification:class:NotificationProvider"
|
|
83598
83598
|
]);
|
|
83599
|
-
const result = (0,
|
|
83600
|
-
if (tx?._class ===
|
|
83599
|
+
const result = (0, import_core103.pluginFilterTx)(excludedPlugins, configs, txes).filter((tx) => {
|
|
83600
|
+
if (tx?._class === import_core103.default.class.TxCreateDoc || tx?._class === import_core103.default.class.TxUpdateDoc || tx?._class === import_core103.default.class.TxRemoveDoc) {
|
|
83601
83601
|
const cud = tx;
|
|
83602
83602
|
if (toExclude.has(cud.objectClass)) {
|
|
83603
83603
|
return false;
|
|
@@ -83609,7 +83609,7 @@ var require_lib20 = __commonJS({
|
|
|
83609
83609
|
}
|
|
83610
83610
|
__name(returnClientTxes, "returnClientTxes");
|
|
83611
83611
|
function createModelPersistence(workspace2) {
|
|
83612
|
-
const overrideStore = (0, import_platform4.getMetadata)(
|
|
83612
|
+
const overrideStore = (0, import_platform4.getMetadata)(import_client86.default.metadata.OverridePersistenceStore);
|
|
83613
83613
|
if (overrideStore !== void 0) {
|
|
83614
83614
|
return overrideStore;
|
|
83615
83615
|
}
|
|
@@ -83706,8 +83706,8 @@ var require_client6 = __commonJS({
|
|
|
83706
83706
|
});
|
|
83707
83707
|
module2.exports = __toCommonJS2(client_exports);
|
|
83708
83708
|
var import_account_client2 = require_lib6();
|
|
83709
|
-
var
|
|
83710
|
-
var
|
|
83709
|
+
var import_client86 = __toESM2(require_lib7());
|
|
83710
|
+
var import_core103 = require_lib5();
|
|
83711
83711
|
var import_platform4 = require_lib();
|
|
83712
83712
|
var import_config10 = require_config();
|
|
83713
83713
|
var import_markup21 = require_markup();
|
|
@@ -83724,7 +83724,7 @@ var require_client6 = __commonJS({
|
|
|
83724
83724
|
const account = {
|
|
83725
83725
|
uuid: wsLoginInfo.account,
|
|
83726
83726
|
role: wsLoginInfo.role,
|
|
83727
|
-
primarySocialId: (0,
|
|
83727
|
+
primarySocialId: (0, import_core103.pickPrimarySocialId)(socialIds)._id,
|
|
83728
83728
|
socialIds: socialIds.map((si) => si._id),
|
|
83729
83729
|
fullSocialIds: socialIds
|
|
83730
83730
|
};
|
|
@@ -83732,9 +83732,9 @@ var require_client6 = __commonJS({
|
|
|
83732
83732
|
}
|
|
83733
83733
|
__name(connect, "connect");
|
|
83734
83734
|
async function createClient(url4, endpoint, token, workspaceUuid, account, config3, options) {
|
|
83735
|
-
(0, import_platform4.addLocation)(
|
|
83735
|
+
(0, import_platform4.addLocation)(import_client86.clientId, () => Promise.resolve().then(() => __toESM(require_lib20())));
|
|
83736
83736
|
const { socketFactory, connectionTimeout } = options;
|
|
83737
|
-
const clientFactory = await (0, import_platform4.getResource)(
|
|
83737
|
+
const clientFactory = await (0, import_platform4.getResource)(import_client86.default.function.GetClient);
|
|
83738
83738
|
const connection = await clientFactory(token, endpoint, {
|
|
83739
83739
|
socketFactory,
|
|
83740
83740
|
connectionTimeout
|
|
@@ -83750,7 +83750,7 @@ var require_client6 = __commonJS({
|
|
|
83750
83750
|
this.config = config3;
|
|
83751
83751
|
this.connection = connection;
|
|
83752
83752
|
this.account = account;
|
|
83753
|
-
this.client = new
|
|
83753
|
+
this.client = new import_core103.TxOperations(connection, account.primarySocialId);
|
|
83754
83754
|
this.markup = (0, import_markup21.createMarkupOperations)(url4, workspace2, token, config3);
|
|
83755
83755
|
}
|
|
83756
83756
|
static {
|
|
@@ -83790,7 +83790,7 @@ var require_client6 = __commonJS({
|
|
|
83790
83790
|
}
|
|
83791
83791
|
// DocOperations
|
|
83792
83792
|
async createDoc(_class, space, attributes, id) {
|
|
83793
|
-
id ??= (0,
|
|
83793
|
+
id ??= (0, import_core103.generateId)();
|
|
83794
83794
|
const data = await this.processMarkup(_class, id, attributes);
|
|
83795
83795
|
return await this.client.createDoc(_class, space, data, id);
|
|
83796
83796
|
}
|
|
@@ -83803,7 +83803,7 @@ var require_client6 = __commonJS({
|
|
|
83803
83803
|
}
|
|
83804
83804
|
// CollectionOperations
|
|
83805
83805
|
async addCollection(_class, space, attachedTo, attachedToClass, collection, attributes, id) {
|
|
83806
|
-
id ??= (0,
|
|
83806
|
+
id ??= (0, import_core103.generateId)();
|
|
83807
83807
|
const data = await this.processMarkup(_class, id, attributes);
|
|
83808
83808
|
return await this.client.addCollection(_class, space, attachedTo, attachedToClass, collection, data, id);
|
|
83809
83809
|
}
|
|
@@ -84130,7 +84130,7 @@ var require_rest = __commonJS({
|
|
|
84130
84130
|
createRestClient: () => createRestClient2
|
|
84131
84131
|
});
|
|
84132
84132
|
module2.exports = __toCommonJS2(rest_exports);
|
|
84133
|
-
var
|
|
84133
|
+
var import_core103 = require_lib5();
|
|
84134
84134
|
var import_platform4 = require_lib();
|
|
84135
84135
|
var import_utils14 = require_utils9();
|
|
84136
84136
|
var import_utils22 = require_utils10();
|
|
@@ -84185,7 +84185,7 @@ var require_rest = __commonJS({
|
|
|
84185
84185
|
if (options !== void 0 && Object.keys(options).length > 0) {
|
|
84186
84186
|
params.append("options", JSON.stringify(options));
|
|
84187
84187
|
}
|
|
84188
|
-
const requestUrl2 = (0,
|
|
84188
|
+
const requestUrl2 = (0, import_core103.concatLink)(this.endpoint, `/api/v1/find-all/${this.workspace}?${params.toString()}`);
|
|
84189
84189
|
const result = await (0, import_utils22.withRetry)(async () => {
|
|
84190
84190
|
const response = await fetch(requestUrl2, this.requestInit());
|
|
84191
84191
|
if (!response.ok) {
|
|
@@ -84259,7 +84259,7 @@ var require_rest = __commonJS({
|
|
|
84259
84259
|
}
|
|
84260
84260
|
}
|
|
84261
84261
|
async getAccount() {
|
|
84262
|
-
const requestUrl2 = (0,
|
|
84262
|
+
const requestUrl2 = (0, import_core103.concatLink)(this.endpoint, `/api/v1/account/${this.workspace}`);
|
|
84263
84263
|
await this.checkRate();
|
|
84264
84264
|
const result = await (0, import_utils22.withRetry)(async () => {
|
|
84265
84265
|
const response = await fetch(requestUrl2, this.requestInit());
|
|
@@ -84276,7 +84276,7 @@ var require_rest = __commonJS({
|
|
|
84276
84276
|
return result;
|
|
84277
84277
|
}
|
|
84278
84278
|
async getModel(full = false) {
|
|
84279
|
-
const requestUrl2 = new URL((0,
|
|
84279
|
+
const requestUrl2 = new URL((0, import_core103.concatLink)(this.endpoint, `/api/v1/load-model/${this.workspace}`));
|
|
84280
84280
|
if (full) {
|
|
84281
84281
|
requestUrl2.searchParams.append("full", "true");
|
|
84282
84282
|
}
|
|
@@ -84289,10 +84289,10 @@ var require_rest = __commonJS({
|
|
|
84289
84289
|
}
|
|
84290
84290
|
this.updateRateLimit(response);
|
|
84291
84291
|
const modelResponse = await (0, import_utils22.extractJson)(response);
|
|
84292
|
-
const hierarchy = new
|
|
84293
|
-
const model = new
|
|
84294
|
-
const ctx = new
|
|
84295
|
-
(0,
|
|
84292
|
+
const hierarchy = new import_core103.Hierarchy();
|
|
84293
|
+
const model = new import_core103.ModelDb(hierarchy);
|
|
84294
|
+
const ctx = new import_core103.MeasureMetricsContext("loadModel", {});
|
|
84295
|
+
(0, import_core103.buildModel)(ctx, modelResponse, void 0, hierarchy, model);
|
|
84296
84296
|
return { hierarchy, model };
|
|
84297
84297
|
}, isRLE);
|
|
84298
84298
|
if (result.error !== void 0) {
|
|
@@ -84304,7 +84304,7 @@ var require_rest = __commonJS({
|
|
|
84304
84304
|
return (await this.findAll(_class, query, { ...options, limit: 1 })).shift();
|
|
84305
84305
|
}
|
|
84306
84306
|
async tx(tx) {
|
|
84307
|
-
const requestUrl2 = (0,
|
|
84307
|
+
const requestUrl2 = (0, import_core103.concatLink)(this.endpoint, `/api/v1/tx/${this.workspace}`);
|
|
84308
84308
|
await this.checkRate();
|
|
84309
84309
|
const result = await (0, import_utils22.withRetry)(async () => {
|
|
84310
84310
|
const response = await fetch(requestUrl2, {
|
|
@@ -84338,7 +84338,7 @@ var require_rest = __commonJS({
|
|
|
84338
84338
|
if (options.limit != null) {
|
|
84339
84339
|
params.append("limit", `${options.limit}`);
|
|
84340
84340
|
}
|
|
84341
|
-
const requestUrl2 = (0,
|
|
84341
|
+
const requestUrl2 = (0, import_core103.concatLink)(this.endpoint, `/api/v1/search-fulltext/${this.workspace}?${params.toString()}`);
|
|
84342
84342
|
const response = await fetch(requestUrl2, {
|
|
84343
84343
|
method: "GET",
|
|
84344
84344
|
headers: this.jsonHeaders(),
|
|
@@ -84357,7 +84357,7 @@ var require_rest = __commonJS({
|
|
|
84357
84357
|
return result;
|
|
84358
84358
|
}
|
|
84359
84359
|
async domainRequest(domain3, params, options) {
|
|
84360
|
-
const requestUrl2 = (0,
|
|
84360
|
+
const requestUrl2 = (0, import_core103.concatLink)(this.endpoint, `/api/v1/request/${domain3}/${this.workspace}`);
|
|
84361
84361
|
await this.checkRate();
|
|
84362
84362
|
return await (0, import_utils22.withRetry)(async () => {
|
|
84363
84363
|
const response = await fetch(requestUrl2, {
|
|
@@ -84376,7 +84376,7 @@ var require_rest = __commonJS({
|
|
|
84376
84376
|
}, isRLE);
|
|
84377
84377
|
}
|
|
84378
84378
|
async ensurePerson(socialType, socialValue, firstName, lastName) {
|
|
84379
|
-
const requestUrl2 = (0,
|
|
84379
|
+
const requestUrl2 = (0, import_core103.concatLink)(this.endpoint, `/api/v1/ensure-person/${this.workspace}`);
|
|
84380
84380
|
await this.checkRate();
|
|
84381
84381
|
const result = await (0, import_utils22.withRetry)(async () => {
|
|
84382
84382
|
const response = await fetch(requestUrl2, {
|
|
@@ -84433,13 +84433,13 @@ var require_tx2 = __commonJS({
|
|
|
84433
84433
|
createRestTxOperations: () => createRestTxOperations2
|
|
84434
84434
|
});
|
|
84435
84435
|
module2.exports = __toCommonJS2(tx_exports);
|
|
84436
|
-
var
|
|
84436
|
+
var import_core103 = require_lib5();
|
|
84437
84437
|
var import_rest = require_rest();
|
|
84438
84438
|
async function createRestTxOperations2(endpoint, workspaceId, token, fullModel = false) {
|
|
84439
84439
|
const restClient = new import_rest.RestClientImpl(endpoint, workspaceId, token);
|
|
84440
84440
|
const account = await restClient.getAccount();
|
|
84441
84441
|
const { hierarchy, model } = await restClient.getModel(fullModel);
|
|
84442
|
-
return new
|
|
84442
|
+
return new import_core103.TxOperations(new RestTxClient(restClient, hierarchy, model, account), account.socialIds[0]);
|
|
84443
84443
|
}
|
|
84444
84444
|
__name(createRestTxOperations2, "createRestTxOperations");
|
|
84445
84445
|
var RestTxClient = class {
|
|
@@ -84460,7 +84460,7 @@ var require_tx2 = __commonJS({
|
|
|
84460
84460
|
const result = data.map((v) => {
|
|
84461
84461
|
return this.hierarchy.updateLookupMixin(_class, v, options);
|
|
84462
84462
|
});
|
|
84463
|
-
return (0,
|
|
84463
|
+
return (0, import_core103.toFindResult)(result, data.total);
|
|
84464
84464
|
}
|
|
84465
84465
|
async domainRequest(domain3, params, options) {
|
|
84466
84466
|
return await this.client.domainRequest(domain3, params, options);
|
|
@@ -84642,7 +84642,7 @@ var require_client7 = __commonJS({
|
|
|
84642
84642
|
createStorageClient: () => createStorageClient2
|
|
84643
84643
|
});
|
|
84644
84644
|
module2.exports = __toCommonJS2(client_exports);
|
|
84645
|
-
var
|
|
84645
|
+
var import_core103 = __toESM2(require_lib5());
|
|
84646
84646
|
var import_stream2 = require("stream");
|
|
84647
84647
|
var import_config10 = require_config();
|
|
84648
84648
|
var import_error = require_error3();
|
|
@@ -84679,13 +84679,13 @@ var require_client7 = __commonJS({
|
|
|
84679
84679
|
const size13 = parseInt(headers.get("Content-Length") ?? "0", 10);
|
|
84680
84680
|
return {
|
|
84681
84681
|
provider: "",
|
|
84682
|
-
_class:
|
|
84682
|
+
_class: import_core103.default.class.Blob,
|
|
84683
84683
|
_id: objectName,
|
|
84684
84684
|
contentType: headers.get("Content-Type") ?? "",
|
|
84685
84685
|
size: isNaN(size13) ? 0 : size13 ?? 0,
|
|
84686
84686
|
etag: headers.get("ETag") ?? "",
|
|
84687
|
-
space:
|
|
84688
|
-
modifiedBy:
|
|
84687
|
+
space: import_core103.default.space.Configuration,
|
|
84688
|
+
modifiedBy: import_core103.default.account.System,
|
|
84689
84689
|
modifiedOn: isNaN(lastModified) ? 0 : lastModified,
|
|
84690
84690
|
version: null
|
|
84691
84691
|
};
|
|
@@ -84720,11 +84720,11 @@ var require_client7 = __commonJS({
|
|
|
84720
84720
|
if (Object.hasOwn(result[0], "id")) {
|
|
84721
84721
|
const fileResult = result[0];
|
|
84722
84722
|
return {
|
|
84723
|
-
_class:
|
|
84723
|
+
_class: import_core103.default.class.Blob,
|
|
84724
84724
|
_id: fileResult.id,
|
|
84725
|
-
space:
|
|
84725
|
+
space: import_core103.default.space.Configuration,
|
|
84726
84726
|
modifiedOn: fileResult.metadata.lastModified,
|
|
84727
|
-
modifiedBy:
|
|
84727
|
+
modifiedBy: import_core103.default.account.System,
|
|
84728
84728
|
provider: "",
|
|
84729
84729
|
contentType: fileResult.metadata.contentType,
|
|
84730
84730
|
etag: fileResult.metadata.etag,
|
|
@@ -84798,11 +84798,11 @@ var require_client7 = __commonJS({
|
|
|
84798
84798
|
async function connectStorage(url4, options, config3) {
|
|
84799
84799
|
config3 ??= await (0, import_config10.loadServerConfig)(url4);
|
|
84800
84800
|
const token = await (0, import_utils14.getWorkspaceToken)(url4, options, config3);
|
|
84801
|
-
const filesUrl = (config3.FILES_URL.startsWith("/") ? (0,
|
|
84801
|
+
const filesUrl = (config3.FILES_URL.startsWith("/") ? (0, import_core103.concatLink)(url4, config3.FILES_URL) : config3.FILES_URL).replace(
|
|
84802
84802
|
":workspace",
|
|
84803
84803
|
token.workspaceId
|
|
84804
84804
|
);
|
|
84805
|
-
const uploadUrl = (config3.UPLOAD_URL.startsWith("/") ? (0,
|
|
84805
|
+
const uploadUrl = (config3.UPLOAD_URL.startsWith("/") ? (0, import_core103.concatLink)(url4, config3.UPLOAD_URL) : config3.UPLOAD_URL).replace(":workspace", token.workspaceId);
|
|
84806
84806
|
return new StorageClientImpl(filesUrl, uploadUrl, token.token, token.workspaceId);
|
|
84807
84807
|
}
|
|
84808
84808
|
__name(connectStorage, "connectStorage");
|
|
@@ -84855,11 +84855,11 @@ var require_storage2 = __commonJS({
|
|
|
84855
84855
|
var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
|
|
84856
84856
|
var storage_exports = {};
|
|
84857
84857
|
__export2(storage_exports, {
|
|
84858
|
-
connectStorage: () =>
|
|
84859
|
-
createStorageClient: () =>
|
|
84858
|
+
connectStorage: () => import_client86.connectStorage,
|
|
84859
|
+
createStorageClient: () => import_client86.createStorageClient
|
|
84860
84860
|
});
|
|
84861
84861
|
module2.exports = __toCommonJS2(storage_exports);
|
|
84862
|
-
var
|
|
84862
|
+
var import_client86 = require_client7();
|
|
84863
84863
|
__reExport2(storage_exports, require_error3(), module2.exports);
|
|
84864
84864
|
__reExport2(storage_exports, require_types8(), module2.exports);
|
|
84865
84865
|
}
|
|
@@ -85272,7 +85272,7 @@ var require_utils11 = __commonJS({
|
|
|
85272
85272
|
getWeekday: () => getWeekday
|
|
85273
85273
|
});
|
|
85274
85274
|
module2.exports = __toCommonJS2(utils_exports);
|
|
85275
|
-
var
|
|
85275
|
+
var import_core103 = require_lib5();
|
|
85276
85276
|
var import__ = __toESM2(require_lib25());
|
|
85277
85277
|
function getInstance(event, date7) {
|
|
85278
85278
|
const diff8 = event.dueDate - event.date;
|
|
@@ -85284,7 +85284,7 @@ var require_utils11 = __commonJS({
|
|
|
85284
85284
|
originalStartTime: date7,
|
|
85285
85285
|
_class: import__.default.class.ReccuringInstance,
|
|
85286
85286
|
eventId: generateEventId3(),
|
|
85287
|
-
_id: (0,
|
|
85287
|
+
_id: (0, import_core103.generateId)(),
|
|
85288
85288
|
virtual: true
|
|
85289
85289
|
};
|
|
85290
85290
|
}
|
|
@@ -85597,7 +85597,7 @@ var require_utils11 = __commonJS({
|
|
|
85597
85597
|
}
|
|
85598
85598
|
__name(getAllEvents, "getAllEvents");
|
|
85599
85599
|
function generateEventId3() {
|
|
85600
|
-
const id = (0,
|
|
85600
|
+
const id = (0, import_core103.generateId)();
|
|
85601
85601
|
return encodeToBase32Hex(id);
|
|
85602
85602
|
}
|
|
85603
85603
|
__name(generateEventId3, "generateEventId");
|
|
@@ -86011,7 +86011,7 @@ var require_utils12 = __commonJS({
|
|
|
86011
86011
|
});
|
|
86012
86012
|
module2.exports = __toCommonJS2(utils_exports);
|
|
86013
86013
|
var import_fast_equals = require_cjs();
|
|
86014
|
-
var
|
|
86014
|
+
var import_core103 = __toESM2(require_lib5());
|
|
86015
86015
|
var import__ = __toESM2(require_lib27());
|
|
86016
86016
|
async function getDirectChannel(client, me, employeeAccount) {
|
|
86017
86017
|
const accIds = [me, employeeAccount].sort();
|
|
@@ -86021,7 +86021,7 @@ var require_utils12 = __commonJS({
|
|
|
86021
86021
|
return dm._id;
|
|
86022
86022
|
}
|
|
86023
86023
|
}
|
|
86024
|
-
return await client.createDoc(import__.default.class.DirectMessage,
|
|
86024
|
+
return await client.createDoc(import__.default.class.DirectMessage, import_core103.default.space.Space, {
|
|
86025
86025
|
name: "",
|
|
86026
86026
|
description: "",
|
|
86027
86027
|
private: true,
|
|
@@ -86325,18 +86325,18 @@ var require_cache4 = __commonJS({
|
|
|
86325
86325
|
default: () => ContactCache
|
|
86326
86326
|
});
|
|
86327
86327
|
module2.exports = __toCommonJS2(cache_exports);
|
|
86328
|
-
var
|
|
86328
|
+
var import_core103 = __toESM2(require_lib5());
|
|
86329
86329
|
var import__ = __toESM2(require_lib28());
|
|
86330
86330
|
function isCreateTx(tx) {
|
|
86331
|
-
return tx._class ===
|
|
86331
|
+
return tx._class === import_core103.default.class.TxCreateDoc;
|
|
86332
86332
|
}
|
|
86333
86333
|
__name(isCreateTx, "isCreateTx");
|
|
86334
86334
|
function isUpdateTx(tx) {
|
|
86335
|
-
return tx._class ===
|
|
86335
|
+
return tx._class === import_core103.default.class.TxUpdateDoc;
|
|
86336
86336
|
}
|
|
86337
86337
|
__name(isUpdateTx, "isUpdateTx");
|
|
86338
86338
|
function isMixinTx(tx) {
|
|
86339
|
-
return tx._class ===
|
|
86339
|
+
return tx._class === import_core103.default.class.TxMixin;
|
|
86340
86340
|
}
|
|
86341
86341
|
__name(isMixinTx, "isMixinTx");
|
|
86342
86342
|
function isPersonTx(tx) {
|
|
@@ -86443,7 +86443,7 @@ var require_cache4 = __commonJS({
|
|
|
86443
86443
|
const ref = tx.objectId;
|
|
86444
86444
|
const person = this._personByRef.get(ref);
|
|
86445
86445
|
if (person === void 0) return;
|
|
86446
|
-
const createdPerson =
|
|
86446
|
+
const createdPerson = import_core103.TxProcessor.createDoc2Doc(tx);
|
|
86447
86447
|
this._personByRef.set(ref, createdPerson);
|
|
86448
86448
|
const personIds = Array.from(this._personIdsByPersonRef.get(ref) ?? []);
|
|
86449
86449
|
for (const personId of personIds) {
|
|
@@ -86461,7 +86461,7 @@ var require_cache4 = __commonJS({
|
|
|
86461
86461
|
const newPersonRef = tx.attachedTo;
|
|
86462
86462
|
this._personRefByPersonId.set(personId, newPersonRef);
|
|
86463
86463
|
this.addPersonIdToPersonRef(newPersonRef, personId);
|
|
86464
|
-
const createdSocialId =
|
|
86464
|
+
const createdSocialId = import_core103.TxProcessor.createDoc2Doc(tx);
|
|
86465
86465
|
this._socialIdByPersonId.set(personId, createdSocialId);
|
|
86466
86466
|
this.broadcastChange({
|
|
86467
86467
|
personRef: newPersonRef,
|
|
@@ -86472,7 +86472,7 @@ var require_cache4 = __commonJS({
|
|
|
86472
86472
|
const ref = tx.objectId;
|
|
86473
86473
|
const person = this._personByRef.get(ref);
|
|
86474
86474
|
if (person == null) return;
|
|
86475
|
-
const updatedPerson = isUpdateTx(tx) ?
|
|
86475
|
+
const updatedPerson = isUpdateTx(tx) ? import_core103.TxProcessor.updateDoc2Doc(person, tx) : import_core103.TxProcessor.updateMixin4Doc(person, tx);
|
|
86476
86476
|
this._personByRef.set(ref, updatedPerson);
|
|
86477
86477
|
const personIds = Array.from(this._personIdsByPersonRef.get(ref) ?? []);
|
|
86478
86478
|
for (const personId of personIds) {
|
|
@@ -86587,7 +86587,7 @@ var require_utils13 = __commonJS({
|
|
|
86587
86587
|
setCurrentEmployeeSpace: () => setCurrentEmployeeSpace
|
|
86588
86588
|
});
|
|
86589
86589
|
module2.exports = __toCommonJS2(utils_exports);
|
|
86590
|
-
var
|
|
86590
|
+
var import_core103 = require_lib5();
|
|
86591
86591
|
var import_platform4 = require_lib();
|
|
86592
86592
|
var import__ = __toESM2(require_lib28());
|
|
86593
86593
|
var import_types15 = require_types9();
|
|
@@ -86791,7 +86791,7 @@ var require_utils13 = __commonJS({
|
|
|
86791
86791
|
if (socialIds.length === 0) {
|
|
86792
86792
|
return;
|
|
86793
86793
|
}
|
|
86794
|
-
return (0,
|
|
86794
|
+
return (0, import_core103.pickPrimarySocialId)(socialIds)._id;
|
|
86795
86795
|
}
|
|
86796
86796
|
__name(getPrimarySocialId, "getPrimarySocialId");
|
|
86797
86797
|
async function getAllSocialStringsByPersonId(client, personId) {
|
|
@@ -86830,12 +86830,12 @@ var require_utils13 = __commonJS({
|
|
|
86830
86830
|
__name(getSocialStringsByEmployee, "getSocialStringsByEmployee");
|
|
86831
86831
|
async function getAllAccounts(client) {
|
|
86832
86832
|
const employees = await client.findAll(import__.default.mixin.Employee, { active: true });
|
|
86833
|
-
return employees.map((it) => it.personUuid).filter(
|
|
86833
|
+
return employees.map((it) => it.personUuid).filter(import_core103.notEmpty);
|
|
86834
86834
|
}
|
|
86835
86835
|
__name(getAllAccounts, "getAllAccounts");
|
|
86836
86836
|
async function getAllUserAccounts(client) {
|
|
86837
86837
|
const employees = await client.findAll(import__.default.mixin.Employee, { active: true });
|
|
86838
|
-
return employees.map((it) => it.personUuid).filter(
|
|
86838
|
+
return employees.map((it) => it.personUuid).filter(import_core103.notEmpty);
|
|
86839
86839
|
}
|
|
86840
86840
|
__name(getAllUserAccounts, "getAllUserAccounts");
|
|
86841
86841
|
async function ensureEmployee(ctx, me, client, socialIds, getGlobalPerson) {
|
|
@@ -86844,7 +86844,7 @@ var require_utils13 = __commonJS({
|
|
|
86844
86844
|
}
|
|
86845
86845
|
__name(ensureEmployee, "ensureEmployee");
|
|
86846
86846
|
async function ensureEmployeeForPerson(ctx, me, person, client, socialIds, globalPerson) {
|
|
86847
|
-
const txFactory = new
|
|
86847
|
+
const txFactory = new import_core103.TxFactory(me.primarySocialId);
|
|
86848
86848
|
const personByUuid = await client.findOne(import__.default.class.Person, { personUuid: person.uuid });
|
|
86849
86849
|
let personRef = personByUuid?._id;
|
|
86850
86850
|
if (personRef === void 0) {
|
|
@@ -86865,7 +86865,7 @@ var require_utils13 = __commonJS({
|
|
|
86865
86865
|
city: globalPerson.city,
|
|
86866
86866
|
avatarType: import__.AvatarType.COLOR
|
|
86867
86867
|
};
|
|
86868
|
-
personRef = (0,
|
|
86868
|
+
personRef = (0, import_core103.generateId)();
|
|
86869
86869
|
const createPersonTx = txFactory.createTxCreateDoc(import__.default.class.Person, import__.default.space.Contacts, data, personRef);
|
|
86870
86870
|
await client.tx(createPersonTx);
|
|
86871
86871
|
});
|
|
@@ -86875,7 +86875,7 @@ var require_utils13 = __commonJS({
|
|
|
86875
86875
|
});
|
|
86876
86876
|
await client.tx(updatePersonTx);
|
|
86877
86877
|
}
|
|
86878
|
-
const existingIdentifiers = (0,
|
|
86878
|
+
const existingIdentifiers = (0, import_core103.toIdMap)(
|
|
86879
86879
|
await client.findAll(import__.default.class.SocialIdentity, { _id: { $in: person.socialIds } })
|
|
86880
86880
|
);
|
|
86881
86881
|
for (const socialId of socialIds) {
|
|
@@ -86900,7 +86900,7 @@ var require_utils13 = __commonJS({
|
|
|
86900
86900
|
collection: "socialIds",
|
|
86901
86901
|
type: socialId.type,
|
|
86902
86902
|
value: socialId.value,
|
|
86903
|
-
key: (0,
|
|
86903
|
+
key: (0, import_core103.buildSocialIdString)(socialId),
|
|
86904
86904
|
// TODO: fill it in trigger or on DB level as stored calculated column or smth?
|
|
86905
86905
|
verifiedOn: socialId.verifiedOn,
|
|
86906
86906
|
isDeleted: socialId.isDeleted
|
|
@@ -86941,9 +86941,9 @@ var require_utils13 = __commonJS({
|
|
|
86941
86941
|
}
|
|
86942
86942
|
}
|
|
86943
86943
|
}
|
|
86944
|
-
const employeeRole = person.role ===
|
|
86944
|
+
const employeeRole = person.role === import_core103.AccountRole.Guest || person.role === import_core103.AccountRole.ReadOnlyGuest ? "GUEST" : "USER";
|
|
86945
86945
|
const employee = await client.findOne(import__.default.mixin.Employee, { _id: personRef });
|
|
86946
|
-
if (employee === void 0 || !
|
|
86946
|
+
if (employee === void 0 || !import_core103.Hierarchy.hasMixin(employee, import__.default.mixin.Employee) || !employee.active || employee.role !== employeeRole) {
|
|
86947
86947
|
await ctx.with("create-employee", {}, async () => {
|
|
86948
86948
|
if (personRef === void 0) {
|
|
86949
86949
|
console.error("Person not found");
|
|
@@ -86983,7 +86983,7 @@ var require_utils13 = __commonJS({
|
|
|
86983
86983
|
}
|
|
86984
86984
|
__name(loadCachesForPersonId, "loadCachesForPersonId");
|
|
86985
86985
|
async function loadCachesForPersonIds(client, personIds) {
|
|
86986
|
-
const sidObjsMap = (0,
|
|
86986
|
+
const sidObjsMap = (0, import_core103.toIdMap)(
|
|
86987
86987
|
await client.findAll(
|
|
86988
86988
|
import__.default.class.SocialIdentity,
|
|
86989
86989
|
{
|
|
@@ -87018,7 +87018,7 @@ var require_utils13 = __commonJS({
|
|
|
87018
87018
|
}
|
|
87019
87019
|
__name(loadCachesForPersonRef, "loadCachesForPersonRef");
|
|
87020
87020
|
async function loadCachesForPersonRefs(client, personRefs) {
|
|
87021
|
-
const persons = (0,
|
|
87021
|
+
const persons = (0, import_core103.toIdMap)(
|
|
87022
87022
|
await client.findAll(
|
|
87023
87023
|
import__.default.class.Person,
|
|
87024
87024
|
{
|
|
@@ -87061,7 +87061,7 @@ var require_utils13 = __commonJS({
|
|
|
87061
87061
|
personIds.map((pid) => {
|
|
87062
87062
|
const ref = contactCache.personRefByPersonId.get(pid);
|
|
87063
87063
|
return ref != null ? [pid, ref] : void 0;
|
|
87064
|
-
}).filter(
|
|
87064
|
+
}).filter(import_core103.notEmpty)
|
|
87065
87065
|
);
|
|
87066
87066
|
}
|
|
87067
87067
|
__name(getPersonRefsByPersonIdsFromCache, "getPersonRefsByPersonIdsFromCache");
|
|
@@ -87108,7 +87108,7 @@ var require_utils13 = __commonJS({
|
|
|
87108
87108
|
personIds.map((pid) => {
|
|
87109
87109
|
const person = contactCache.personByPersonId.get(pid);
|
|
87110
87110
|
return person != null ? [pid, person] : void 0;
|
|
87111
|
-
}).filter(
|
|
87111
|
+
}).filter(import_core103.notEmpty)
|
|
87112
87112
|
);
|
|
87113
87113
|
}
|
|
87114
87114
|
__name(getPersonsByPersonIdsFromCache, "getPersonsByPersonIdsFromCache");
|
|
@@ -87155,7 +87155,7 @@ var require_utils13 = __commonJS({
|
|
|
87155
87155
|
personRefs.map((personRef) => {
|
|
87156
87156
|
const person = contactCache.personByRef.get(personRef);
|
|
87157
87157
|
return person != null ? [personRef, person] : void 0;
|
|
87158
|
-
}).filter(
|
|
87158
|
+
}).filter(import_core103.notEmpty)
|
|
87159
87159
|
);
|
|
87160
87160
|
}
|
|
87161
87161
|
__name(getPersonsByPersonRefsFromCache, "getPersonsByPersonRefsFromCache");
|
|
@@ -87760,9 +87760,9 @@ var require_utils14 = __commonJS({
|
|
|
87760
87760
|
getFirstRank: () => getFirstRank
|
|
87761
87761
|
});
|
|
87762
87762
|
module2.exports = __toCommonJS2(utils_exports);
|
|
87763
|
-
var
|
|
87763
|
+
var import_core103 = require_lib5();
|
|
87764
87764
|
var import_plugin = __toESM2(require_plugin2());
|
|
87765
|
-
async function getFirstRank(client, space, parent, sort3 =
|
|
87765
|
+
async function getFirstRank(client, space, parent, sort3 = import_core103.SortingOrder.Descending, extra = {}) {
|
|
87766
87766
|
const doc = await client.findOne(
|
|
87767
87767
|
import_plugin.default.class.Document,
|
|
87768
87768
|
{ space, parent, ...extra },
|
|
@@ -88146,7 +88146,7 @@ var require_utils15 = __commonJS({
|
|
|
88146
88146
|
isOffice: () => isOffice
|
|
88147
88147
|
});
|
|
88148
88148
|
module2.exports = __toCommonJS2(utils_exports);
|
|
88149
|
-
var
|
|
88149
|
+
var import_core103 = require_lib5();
|
|
88150
88150
|
var import_plugin = __toESM2(require_plugin3());
|
|
88151
88151
|
var import_types15 = require_types11();
|
|
88152
88152
|
var GRID_WIDTH = 15;
|
|
@@ -88157,7 +88157,7 @@ var require_utils15 = __commonJS({
|
|
|
88157
88157
|
function createDefaultRooms(employees) {
|
|
88158
88158
|
const res = [];
|
|
88159
88159
|
for (let index = 0; index < 12; index++) {
|
|
88160
|
-
const _id = (0,
|
|
88160
|
+
const _id = (0, import_core103.generateId)();
|
|
88161
88161
|
const office = {
|
|
88162
88162
|
_id,
|
|
88163
88163
|
name: "",
|
|
@@ -88176,7 +88176,7 @@ var require_utils15 = __commonJS({
|
|
|
88176
88176
|
};
|
|
88177
88177
|
res.push(office);
|
|
88178
88178
|
}
|
|
88179
|
-
const allHands = (0,
|
|
88179
|
+
const allHands = (0, import_core103.generateId)();
|
|
88180
88180
|
res.push({
|
|
88181
88181
|
_id: allHands,
|
|
88182
88182
|
name: "All hands",
|
|
@@ -88192,7 +88192,7 @@ var require_utils15 = __commonJS({
|
|
|
88192
88192
|
startWithRecording: true,
|
|
88193
88193
|
description: null
|
|
88194
88194
|
});
|
|
88195
|
-
const meetingRoom1 = (0,
|
|
88195
|
+
const meetingRoom1 = (0, import_core103.generateId)();
|
|
88196
88196
|
res.push({
|
|
88197
88197
|
_id: meetingRoom1,
|
|
88198
88198
|
name: "Meeting Room 1",
|
|
@@ -88208,7 +88208,7 @@ var require_utils15 = __commonJS({
|
|
|
88208
88208
|
startWithRecording: true,
|
|
88209
88209
|
description: null
|
|
88210
88210
|
});
|
|
88211
|
-
const meetingRoom2 = (0,
|
|
88211
|
+
const meetingRoom2 = (0, import_core103.generateId)();
|
|
88212
88212
|
res.push({
|
|
88213
88213
|
_id: meetingRoom2,
|
|
88214
88214
|
name: "Meeting Room 2",
|
|
@@ -88224,7 +88224,7 @@ var require_utils15 = __commonJS({
|
|
|
88224
88224
|
startWithRecording: true,
|
|
88225
88225
|
description: null
|
|
88226
88226
|
});
|
|
88227
|
-
const voiceRoom1 = (0,
|
|
88227
|
+
const voiceRoom1 = (0, import_core103.generateId)();
|
|
88228
88228
|
res.push({
|
|
88229
88229
|
_id: voiceRoom1,
|
|
88230
88230
|
name: "Voice Room 1",
|
|
@@ -88240,7 +88240,7 @@ var require_utils15 = __commonJS({
|
|
|
88240
88240
|
startWithRecording: false,
|
|
88241
88241
|
description: null
|
|
88242
88242
|
});
|
|
88243
|
-
const voiceRoom2 = (0,
|
|
88243
|
+
const voiceRoom2 = (0, import_core103.generateId)();
|
|
88244
88244
|
res.push({
|
|
88245
88245
|
_id: voiceRoom2,
|
|
88246
88246
|
name: "Voice Room 2",
|
|
@@ -90015,7 +90015,7 @@ var require_utils17 = __commonJS({
|
|
|
90015
90015
|
updateProjectType: () => updateProjectType
|
|
90016
90016
|
});
|
|
90017
90017
|
module2.exports = __toCommonJS2(utils_exports);
|
|
90018
|
-
var
|
|
90018
|
+
var import_core103 = __toESM2(require_lib5());
|
|
90019
90019
|
var import_platform4 = require_lib();
|
|
90020
90020
|
var import__ = __toESM2(require_lib37());
|
|
90021
90021
|
var import_rank7 = require_lib36();
|
|
@@ -90051,7 +90051,7 @@ var require_utils17 = __commonJS({
|
|
|
90051
90051
|
if (exists5 !== void 0) {
|
|
90052
90052
|
return exists5._id;
|
|
90053
90053
|
}
|
|
90054
|
-
const res = await client.createDoc(_class,
|
|
90054
|
+
const res = await client.createDoc(_class, import_core103.default.space.Model, data);
|
|
90055
90055
|
return res;
|
|
90056
90056
|
}
|
|
90057
90057
|
__name(createState, "createState");
|
|
@@ -90081,7 +90081,7 @@ var require_utils17 = __commonJS({
|
|
|
90081
90081
|
function findStatusAttr(h, _class) {
|
|
90082
90082
|
const attrs = h.getAllAttributes(_class);
|
|
90083
90083
|
for (const it of attrs.values()) {
|
|
90084
|
-
if (it.type._class ===
|
|
90084
|
+
if (it.type._class === import_core103.default.class.RefTo && h.isDerived(it.type.to, import_core103.default.class.Status)) {
|
|
90085
90085
|
return it;
|
|
90086
90086
|
}
|
|
90087
90087
|
}
|
|
@@ -90113,7 +90113,7 @@ var require_utils17 = __commonJS({
|
|
|
90113
90113
|
const targetProjectClassId = `${_id}:type:mixin`;
|
|
90114
90114
|
const tmpl = await client.createDoc(
|
|
90115
90115
|
import__.default.class.ProjectType,
|
|
90116
|
-
|
|
90116
|
+
import_core103.default.space.Model,
|
|
90117
90117
|
{
|
|
90118
90118
|
description: data.description,
|
|
90119
90119
|
shortDescription: data.shortDescription,
|
|
@@ -90128,17 +90128,17 @@ var require_utils17 = __commonJS({
|
|
|
90128
90128
|
_id
|
|
90129
90129
|
);
|
|
90130
90130
|
await client.createDoc(
|
|
90131
|
-
|
|
90132
|
-
|
|
90131
|
+
import_core103.default.class.Mixin,
|
|
90132
|
+
import_core103.default.space.Model,
|
|
90133
90133
|
{
|
|
90134
90134
|
extends: categoryObj.baseClass,
|
|
90135
|
-
kind:
|
|
90135
|
+
kind: import_core103.ClassifierKind.MIXIN,
|
|
90136
90136
|
label: (0, import_platform4.getEmbeddedLabel)(data.name),
|
|
90137
90137
|
icon: baseClassClass.icon
|
|
90138
90138
|
},
|
|
90139
90139
|
targetProjectClassId
|
|
90140
90140
|
);
|
|
90141
|
-
await client.createMixin(targetProjectClassId,
|
|
90141
|
+
await client.createMixin(targetProjectClassId, import_core103.default.class.Mixin, import_core103.default.space.Model, import__.default.mixin.ProjectTypeClass, {
|
|
90142
90142
|
projectType: _id
|
|
90143
90143
|
});
|
|
90144
90144
|
return tmpl;
|
|
@@ -90197,22 +90197,22 @@ var require_utils17 = __commonJS({
|
|
|
90197
90197
|
const targetClassId = `${taskId}:type:mixin`;
|
|
90198
90198
|
tdata.targetClass = targetClassId;
|
|
90199
90199
|
await client.createDoc(
|
|
90200
|
-
|
|
90201
|
-
|
|
90200
|
+
import_core103.default.class.Mixin,
|
|
90201
|
+
import_core103.default.space.Model,
|
|
90202
90202
|
{
|
|
90203
90203
|
extends: data.ofClass,
|
|
90204
|
-
kind:
|
|
90204
|
+
kind: import_core103.ClassifierKind.MIXIN,
|
|
90205
90205
|
label: ofClassClass.label,
|
|
90206
90206
|
icon: ofClassClass.icon
|
|
90207
90207
|
},
|
|
90208
90208
|
targetClassId
|
|
90209
90209
|
);
|
|
90210
|
-
await client.createMixin(targetClassId,
|
|
90210
|
+
await client.createMixin(targetClassId, import_core103.default.class.Mixin, import_core103.default.space.Model, import__.default.mixin.TaskTypeClass, {
|
|
90211
90211
|
taskType: taskId,
|
|
90212
90212
|
projectType: _id
|
|
90213
90213
|
});
|
|
90214
90214
|
}
|
|
90215
|
-
await client.createDoc(import__.default.class.TaskType,
|
|
90215
|
+
await client.createDoc(import__.default.class.TaskType, import_core103.default.space.Model, tdata, taskId);
|
|
90216
90216
|
tasksData.set(taskId, tdata);
|
|
90217
90217
|
_tasks.push(taskId);
|
|
90218
90218
|
}
|
|
@@ -169980,7 +169980,8 @@ var ToolWarningCodeSchema = Schema_exports.Literal(
|
|
|
169980
169980
|
"status_metadata_unresolved",
|
|
169981
169981
|
"space_role_assignments_degraded",
|
|
169982
169982
|
"message_template_metadata_degraded",
|
|
169983
|
-
"viewlet_descriptor_metadata_degraded"
|
|
169983
|
+
"viewlet_descriptor_metadata_degraded",
|
|
169984
|
+
"space_preference_metadata_degraded"
|
|
169984
169985
|
).annotations({
|
|
169985
169986
|
identifier: "ToolWarningCode",
|
|
169986
169987
|
title: "ToolWarningCode",
|
|
@@ -169990,6 +169991,7 @@ var StatusMetadataUnresolvedWarningCode = ToolWarningCodeSchema.literals[0];
|
|
|
169990
169991
|
var SpaceRoleAssignmentsDegradedWarningCode = ToolWarningCodeSchema.literals[1];
|
|
169991
169992
|
var MessageTemplateMetadataDegradedWarningCode = ToolWarningCodeSchema.literals[2];
|
|
169992
169993
|
var ViewletDescriptorMetadataDegradedWarningCode = ToolWarningCodeSchema.literals[3];
|
|
169994
|
+
var SpacePreferenceMetadataDegradedWarningCode = ToolWarningCodeSchema.literals[4];
|
|
169993
169995
|
var ToolWarningSchema = Schema_exports.Struct({
|
|
169994
169996
|
code: ToolWarningCodeSchema,
|
|
169995
169997
|
message: Schema_exports.Trim.pipe(Schema_exports.nonEmptyString()).annotations({
|
|
@@ -170001,47 +170003,6 @@ var ToolWarningSchema = Schema_exports.Struct({
|
|
|
170001
170003
|
description: "Warning surfaced to an agent when a tool result is intentionally degraded instead of failing."
|
|
170002
170004
|
});
|
|
170003
170005
|
|
|
170004
|
-
// src/domain/schemas/recurrence-primitives.ts
|
|
170005
|
-
var MAX_ZERO_BASED_MONTH_INDEX = 11;
|
|
170006
|
-
var MAX_MONTH_DAY = 31;
|
|
170007
|
-
var MIN_SET_POSITION = -366;
|
|
170008
|
-
var MAX_SET_POSITION = 366;
|
|
170009
|
-
var RecurrenceCount = PositiveInteger.pipe(Schema_exports.brand("RecurrenceCount")).annotations({
|
|
170010
|
-
identifier: "RecurrenceCount",
|
|
170011
|
-
title: "RecurrenceCount",
|
|
170012
|
-
description: "Positive recurrence occurrence count."
|
|
170013
|
-
});
|
|
170014
|
-
var RecurrenceInterval = PositiveInteger.pipe(Schema_exports.brand("RecurrenceInterval")).annotations({
|
|
170015
|
-
identifier: "RecurrenceInterval",
|
|
170016
|
-
title: "RecurrenceInterval",
|
|
170017
|
-
description: "Positive recurrence interval."
|
|
170018
|
-
});
|
|
170019
|
-
var MonthIndex = NonNegativeInteger.pipe(
|
|
170020
|
-
Schema_exports.lessThanOrEqualTo(MAX_ZERO_BASED_MONTH_INDEX),
|
|
170021
|
-
Schema_exports.brand("MonthIndex")
|
|
170022
|
-
).annotations({
|
|
170023
|
-
identifier: "MonthIndex",
|
|
170024
|
-
title: "MonthIndex",
|
|
170025
|
-
description: "Zero-based calendar month index (0=January, 11=December)."
|
|
170026
|
-
});
|
|
170027
|
-
var MonthDayOrdinal = Integer.pipe(
|
|
170028
|
-
Schema_exports.between(1, MAX_MONTH_DAY),
|
|
170029
|
-
Schema_exports.brand("MonthDayOrdinal")
|
|
170030
|
-
).annotations({
|
|
170031
|
-
identifier: "MonthDayOrdinal",
|
|
170032
|
-
title: "MonthDayOrdinal",
|
|
170033
|
-
description: "Calendar month day, 1 through 31. Huly's recurrence generator does not support negative month days."
|
|
170034
|
-
});
|
|
170035
|
-
var SetPositionOrdinal = Integer.pipe(
|
|
170036
|
-
Schema_exports.between(MIN_SET_POSITION, MAX_SET_POSITION),
|
|
170037
|
-
Schema_exports.filter((value3) => value3 !== 0, { message: () => "Set-position ordinal cannot be zero." }),
|
|
170038
|
-
Schema_exports.brand("SetPositionOrdinal")
|
|
170039
|
-
).annotations({
|
|
170040
|
-
identifier: "SetPositionOrdinal",
|
|
170041
|
-
title: "SetPositionOrdinal",
|
|
170042
|
-
description: "Signed set-position ordinal, -366 through -1 or 1 through 366."
|
|
170043
|
-
});
|
|
170044
|
-
|
|
170045
170006
|
// src/domain/schemas/spaces.ts
|
|
170046
170007
|
var limitDescription = (subject) => `Maximum ${subject} to return (default: ${DEFAULT_LIMIT}).`;
|
|
170047
170008
|
var SpacePermissionScopeSchema = Schema_exports.Literal("space", "workspace");
|
|
@@ -170316,6 +170277,124 @@ var GetSpaceTypeResultSchema = SpaceTypeDetailSchema;
|
|
|
170316
170277
|
var AddSpaceMembersResultSchema = SpaceMemberMutationResultSchema;
|
|
170317
170278
|
var RemoveSpaceMembersResultSchema = SpaceMemberMutationResultSchema;
|
|
170318
170279
|
|
|
170280
|
+
// src/domain/schemas/preferences.ts
|
|
170281
|
+
var SpacePreferenceId = DocId.pipe(Schema_exports.brand("SpacePreferenceId"));
|
|
170282
|
+
var spaceResolverOptionsRequireSpace = "includeArchived, class, and type can only be provided when space is provided.";
|
|
170283
|
+
var ListSpacePreferencesParamsSchema = Schema_exports.Struct({
|
|
170284
|
+
space: Schema_exports.optional(SpaceIdentifier.annotations({
|
|
170285
|
+
description: "Optional space _id or exact space name whose low-level SpacePreference record should be listed. Resolution tries _id first, then exact name."
|
|
170286
|
+
})),
|
|
170287
|
+
includeArchived: Schema_exports.optional(Schema_exports.Boolean.annotations({
|
|
170288
|
+
description: "Allow matching archived spaces by exact name when space is provided. ID lookup can return archived spaces."
|
|
170289
|
+
})),
|
|
170290
|
+
class: Schema_exports.optional(SpaceClassFilter.annotations({
|
|
170291
|
+
description: "Optional raw Huly space class ID used to disambiguate exact-name lookup when space is provided."
|
|
170292
|
+
})),
|
|
170293
|
+
type: Schema_exports.optional(SpaceTypeId.annotations({
|
|
170294
|
+
description: "Optional raw Huly SpaceType _id used to disambiguate exact-name lookup when space is provided."
|
|
170295
|
+
})),
|
|
170296
|
+
limit: Schema_exports.optional(LimitParam.annotations({
|
|
170297
|
+
description: `Maximum number of space preferences to return (default: ${DEFAULT_LIMIT}).`
|
|
170298
|
+
}))
|
|
170299
|
+
}).pipe(
|
|
170300
|
+
Schema_exports.filter(
|
|
170301
|
+
(params) => params.space !== void 0 || params.includeArchived === void 0 && params.class === void 0 && params.type === void 0 ? void 0 : spaceResolverOptionsRequireSpace
|
|
170302
|
+
)
|
|
170303
|
+
).annotations({
|
|
170304
|
+
title: "ListSpacePreferencesParams",
|
|
170305
|
+
description: "List low-level Huly SpacePreference records. These records are generic space-attached preference markers; module-specific preference payloads remain exposed through module-specific tools."
|
|
170306
|
+
});
|
|
170307
|
+
var GetSpacePreferenceParamsSchema = Schema_exports.Struct({
|
|
170308
|
+
space: SpaceIdentifier.annotations({
|
|
170309
|
+
description: "Space _id or exact space name whose low-level SpacePreference record should be read. Resolution tries _id first, then exact name."
|
|
170310
|
+
}),
|
|
170311
|
+
includeArchived: Schema_exports.optional(Schema_exports.Boolean.annotations({
|
|
170312
|
+
description: "Allow matching archived spaces by exact name. ID lookup can return archived spaces."
|
|
170313
|
+
})),
|
|
170314
|
+
class: Schema_exports.optional(SpaceClassFilter.annotations({
|
|
170315
|
+
description: "Optional raw Huly space class ID used to disambiguate exact-name lookup."
|
|
170316
|
+
})),
|
|
170317
|
+
type: Schema_exports.optional(SpaceTypeId.annotations({
|
|
170318
|
+
description: "Optional raw Huly SpaceType _id used to disambiguate exact-name lookup."
|
|
170319
|
+
}))
|
|
170320
|
+
}).annotations({
|
|
170321
|
+
title: "GetSpacePreferenceParams",
|
|
170322
|
+
description: "Read the low-level Huly SpacePreference record attached to one space. Absence is returned as present=false."
|
|
170323
|
+
});
|
|
170324
|
+
var SpacePreferenceSchema = Schema_exports.Struct({
|
|
170325
|
+
preferenceId: SpacePreferenceId,
|
|
170326
|
+
attachedTo: SpaceId.annotations({
|
|
170327
|
+
description: "Raw Huly space ID stored in SpacePreference.attachedTo."
|
|
170328
|
+
}),
|
|
170329
|
+
attachedSpace: optionalOutput(SpaceSummarySchema),
|
|
170330
|
+
class: ObjectClassName.annotations({
|
|
170331
|
+
description: "Raw Huly class ID for the returned preference document."
|
|
170332
|
+
})
|
|
170333
|
+
}).annotations({
|
|
170334
|
+
title: "SpacePreference",
|
|
170335
|
+
description: "Low-level Huly SpacePreference row attached to a space. The published SDK model exposes no safe generic writable preference fields beyond attachedTo."
|
|
170336
|
+
});
|
|
170337
|
+
var ListSpacePreferencesResultSchema = Schema_exports.Struct({
|
|
170338
|
+
preferences: Schema_exports.Array(SpacePreferenceSchema),
|
|
170339
|
+
total: ListTotal
|
|
170340
|
+
});
|
|
170341
|
+
var GetSpacePreferenceResultSchema = Schema_exports.Union(
|
|
170342
|
+
Schema_exports.Struct({
|
|
170343
|
+
present: Schema_exports.Literal(true),
|
|
170344
|
+
preference: SpacePreferenceSchema
|
|
170345
|
+
}),
|
|
170346
|
+
Schema_exports.Struct({
|
|
170347
|
+
present: Schema_exports.Literal(false),
|
|
170348
|
+
attachedTo: SpaceId,
|
|
170349
|
+
attachedSpace: SpaceSummarySchema
|
|
170350
|
+
})
|
|
170351
|
+
);
|
|
170352
|
+
var listSpacePreferencesParamsJsonSchema = JSONSchema_exports.make(ListSpacePreferencesParamsSchema);
|
|
170353
|
+
var getSpacePreferenceParamsJsonSchema = JSONSchema_exports.make(GetSpacePreferenceParamsSchema);
|
|
170354
|
+
var parseListSpacePreferencesParams = Schema_exports.decodeUnknown(ListSpacePreferencesParamsSchema);
|
|
170355
|
+
var parseGetSpacePreferenceParams = Schema_exports.decodeUnknown(GetSpacePreferenceParamsSchema);
|
|
170356
|
+
|
|
170357
|
+
// src/domain/schemas/recurrence-primitives.ts
|
|
170358
|
+
var MAX_ZERO_BASED_MONTH_INDEX = 11;
|
|
170359
|
+
var MAX_MONTH_DAY = 31;
|
|
170360
|
+
var MIN_SET_POSITION = -366;
|
|
170361
|
+
var MAX_SET_POSITION = 366;
|
|
170362
|
+
var RecurrenceCount = PositiveInteger.pipe(Schema_exports.brand("RecurrenceCount")).annotations({
|
|
170363
|
+
identifier: "RecurrenceCount",
|
|
170364
|
+
title: "RecurrenceCount",
|
|
170365
|
+
description: "Positive recurrence occurrence count."
|
|
170366
|
+
});
|
|
170367
|
+
var RecurrenceInterval = PositiveInteger.pipe(Schema_exports.brand("RecurrenceInterval")).annotations({
|
|
170368
|
+
identifier: "RecurrenceInterval",
|
|
170369
|
+
title: "RecurrenceInterval",
|
|
170370
|
+
description: "Positive recurrence interval."
|
|
170371
|
+
});
|
|
170372
|
+
var MonthIndex = NonNegativeInteger.pipe(
|
|
170373
|
+
Schema_exports.lessThanOrEqualTo(MAX_ZERO_BASED_MONTH_INDEX),
|
|
170374
|
+
Schema_exports.brand("MonthIndex")
|
|
170375
|
+
).annotations({
|
|
170376
|
+
identifier: "MonthIndex",
|
|
170377
|
+
title: "MonthIndex",
|
|
170378
|
+
description: "Zero-based calendar month index (0=January, 11=December)."
|
|
170379
|
+
});
|
|
170380
|
+
var MonthDayOrdinal = Integer.pipe(
|
|
170381
|
+
Schema_exports.between(1, MAX_MONTH_DAY),
|
|
170382
|
+
Schema_exports.brand("MonthDayOrdinal")
|
|
170383
|
+
).annotations({
|
|
170384
|
+
identifier: "MonthDayOrdinal",
|
|
170385
|
+
title: "MonthDayOrdinal",
|
|
170386
|
+
description: "Calendar month day, 1 through 31. Huly's recurrence generator does not support negative month days."
|
|
170387
|
+
});
|
|
170388
|
+
var SetPositionOrdinal = Integer.pipe(
|
|
170389
|
+
Schema_exports.between(MIN_SET_POSITION, MAX_SET_POSITION),
|
|
170390
|
+
Schema_exports.filter((value3) => value3 !== 0, { message: () => "Set-position ordinal cannot be zero." }),
|
|
170391
|
+
Schema_exports.brand("SetPositionOrdinal")
|
|
170392
|
+
).annotations({
|
|
170393
|
+
identifier: "SetPositionOrdinal",
|
|
170394
|
+
title: "SetPositionOrdinal",
|
|
170395
|
+
description: "Signed set-position ordinal, -366 through -1 or 1 through 366."
|
|
170396
|
+
});
|
|
170397
|
+
|
|
170319
170398
|
// src/domain/schemas/sdk-discovery.ts
|
|
170320
170399
|
var import_core10 = __toESM(require_lib5(), 1);
|
|
170321
170400
|
|
|
@@ -181098,7 +181177,7 @@ var makeDiagnosticsScope = Effect_exports.gen(function* () {
|
|
|
181098
181177
|
});
|
|
181099
181178
|
|
|
181100
181179
|
// src/version.ts
|
|
181101
|
-
var VERSION = true ? "0.
|
|
181180
|
+
var VERSION = true ? "0.42.0" : "0.0.0-dev";
|
|
181102
181181
|
|
|
181103
181182
|
// src/mcp/json-schema-refs.ts
|
|
181104
181183
|
var isJsonObject = (value3) => typeof value3 === "object" && value3 !== null && !Array.isArray(value3);
|
|
@@ -186856,6 +186935,10 @@ var firstClassToolHints = /* @__PURE__ */ new Map([
|
|
|
186856
186935
|
[String(view.class.Viewlet), [toolHint("views", ["list_viewlets"])]],
|
|
186857
186936
|
[String(view.class.ViewletDescriptor), [toolHint("views", ["list_viewlets"])]],
|
|
186858
186937
|
[String(view.class.ViewletPreference), [toolHint("views", ["list_viewlets"])]],
|
|
186938
|
+
[
|
|
186939
|
+
String(preference.class.SpacePreference),
|
|
186940
|
+
[toolHint("preferences", ["list_space_preferences", "get_space_preference"])]
|
|
186941
|
+
],
|
|
186859
186942
|
[String(chunter.class.ChatMessage), [toolHint("channels", ["list_channel_messages", "send_channel_message"])]],
|
|
186860
186943
|
[
|
|
186861
186944
|
String(tracker.class.ProjectTargetPreference),
|
|
@@ -186888,6 +186971,7 @@ var contactCoveredRationale = "Current contacts tools expose person, organizatio
|
|
|
186888
186971
|
var cardCoveredRationale = "Current card tools cover card spaces, master tags, and card CRUD.";
|
|
186889
186972
|
var boardCoveredRationale = "Current board tools cover board discovery, board create/update/archive, board card list/get/create/update, workflow status/type resolution, assignees, members, location, cover, dates, archived-card deletion, board labels, saved views, menu pages, viewlets, and common board preference reads. Provider integrations and board deletion remain deferred.";
|
|
186890
186973
|
var viewCoveredRationale = "Current view tools cover read-only saved filtered view discovery/get operations across modules plus viewlet descriptor and ViewletPreference configuration discovery. View and preference writes remain deferred.";
|
|
186974
|
+
var preferenceCoveredRationale = "Read-only generic SpacePreference discovery is covered by list_space_preferences and get_space_preference. Generic preference writes remain deferred because the published SDK model exposes no safe typed writable fields beyond attachedTo.";
|
|
186891
186975
|
var boardNotMcpFacingRationale = "Board card cover values are exposed through board card create/update fields. The CardCover SDK export is the underlying type metadata rather than a separate LLM-facing resource.";
|
|
186892
186976
|
var chunterCoveredRationale = "Current channel and direct-message tools cover channels, channel messages, one-to-one DM create/list/message list/send/update/delete, thread replies, channel member list/add/remove, join/leave, archive/unarchive, conversation star/closed state, and group direct-message create.";
|
|
186893
186977
|
var coreCoveredRationale = "Existing tools expose user statuses, full-text search, blobs through storage/download flows, generic association/relation discovery/mutation helpers, class/interface/mixin, attribute, enum, plugin configuration, domain index configuration, sequence, and space type capability discovery.";
|
|
@@ -186982,6 +187066,12 @@ var runtimeParityRoutingRows = [
|
|
|
186982
187066
|
"CommonBoardPreference",
|
|
186983
187067
|
covered(["get_board_common_preference"], boardCoveredRationale)
|
|
186984
187068
|
),
|
|
187069
|
+
routingRow(
|
|
187070
|
+
String(preference.class.SpacePreference),
|
|
187071
|
+
"@hcengineering/preference",
|
|
187072
|
+
"SpacePreference",
|
|
187073
|
+
covered(["list_space_preferences", "get_space_preference"], preferenceCoveredRationale)
|
|
187074
|
+
),
|
|
186985
187075
|
routingRow(
|
|
186986
187076
|
String(preference.class.Preference),
|
|
186987
187077
|
"@hcengineering/preference",
|
|
@@ -199093,9 +199183,178 @@ var plannerTools = [
|
|
|
199093
199183
|
)
|
|
199094
199184
|
];
|
|
199095
199185
|
|
|
199096
|
-
// src/huly/operations/
|
|
199186
|
+
// src/huly/operations/preferences.ts
|
|
199097
199187
|
var import_core68 = __toESM(require_lib5(), 1);
|
|
199098
199188
|
|
|
199189
|
+
// src/huly/operations/spaces-projections.ts
|
|
199190
|
+
var toPermissionSummary = (permission) => ({
|
|
199191
|
+
id: PermissionId.make(permission._id),
|
|
199192
|
+
label: String(permission.label),
|
|
199193
|
+
description: optionalString(permission.description === void 0 ? void 0 : String(permission.description)),
|
|
199194
|
+
scope: permission.scope,
|
|
199195
|
+
objectClass: optionalObjectClassName(permission.objectClass),
|
|
199196
|
+
txClass: optionalObjectClassName(permission.txClass),
|
|
199197
|
+
forbid: permission.forbid
|
|
199198
|
+
});
|
|
199199
|
+
var descriptorId = (spaceType) => spaceType.descriptor;
|
|
199200
|
+
var toSpaceSummary = (space) => ({
|
|
199201
|
+
id: SpaceId.make(space._id),
|
|
199202
|
+
name: space.name,
|
|
199203
|
+
description: optionalString(space.description),
|
|
199204
|
+
class: ObjectClassName.make(space._class),
|
|
199205
|
+
type: space.type === void 0 ? void 0 : SpaceTypeId.make(space.type),
|
|
199206
|
+
private: space.private,
|
|
199207
|
+
archived: space.archived,
|
|
199208
|
+
autoJoin: space.autoJoin,
|
|
199209
|
+
membersCount: Count.make(space.members.length),
|
|
199210
|
+
ownersCount: Count.make(space.owners?.length ?? 0)
|
|
199211
|
+
});
|
|
199212
|
+
var roleAssignments = (space, spaceType, validRoleIds) => {
|
|
199213
|
+
if (spaceType === void 0) return void 0;
|
|
199214
|
+
const entries2 = spaceRoleAssignmentEntries(space, spaceType, validRoleIds);
|
|
199215
|
+
return entries2.length === 0 ? void 0 : entries2.map(([roleId, members]) => ({
|
|
199216
|
+
roleId: RoleId.make(roleId),
|
|
199217
|
+
members: members.map((member) => AccountUuid.make(member))
|
|
199218
|
+
}));
|
|
199219
|
+
};
|
|
199220
|
+
var toSpaceDetail = (space, spaceType, validRoleIds = /* @__PURE__ */ new Set()) => ({
|
|
199221
|
+
id: SpaceId.make(space._id),
|
|
199222
|
+
name: space.name,
|
|
199223
|
+
description: space.description,
|
|
199224
|
+
class: ObjectClassName.make(space._class),
|
|
199225
|
+
type: space.type === void 0 ? void 0 : SpaceTypeId.make(space.type),
|
|
199226
|
+
private: space.private,
|
|
199227
|
+
archived: space.archived,
|
|
199228
|
+
autoJoin: space.autoJoin,
|
|
199229
|
+
members: space.members.map((member) => AccountUuid.make(member)),
|
|
199230
|
+
owners: (space.owners ?? []).map((owner) => AccountUuid.make(owner)),
|
|
199231
|
+
roleAssignments: roleAssignments(space, spaceType, validRoleIds)
|
|
199232
|
+
});
|
|
199233
|
+
var spaceTypeSummary = (spaceType, descriptor3) => ({
|
|
199234
|
+
id: SpaceTypeId.make(spaceType._id),
|
|
199235
|
+
name: spaceType.name,
|
|
199236
|
+
shortDescription: optionalString(spaceType.shortDescription),
|
|
199237
|
+
descriptor: spaceType.descriptor,
|
|
199238
|
+
baseClass: optionalObjectClassName(descriptor3?.baseClass),
|
|
199239
|
+
targetClass: ObjectClassName.make(spaceType.targetClass),
|
|
199240
|
+
defaultMembers: (spaceType.members ?? []).map((member) => AccountUuid.make(member)),
|
|
199241
|
+
autoJoin: spaceType.autoJoin,
|
|
199242
|
+
rolesCount: Count.make(spaceType.roles)
|
|
199243
|
+
});
|
|
199244
|
+
var roleSummary = (role, permissionsById) => ({
|
|
199245
|
+
id: RoleId.make(role._id),
|
|
199246
|
+
name: role.name,
|
|
199247
|
+
permissions: role.permissions.map((permission) => PermissionId.make(permission)),
|
|
199248
|
+
permissionLabels: role.permissions.map((permissionId) => permissionsById.get(permissionId)).filter((permission) => permission !== void 0).map((permission) => String(permission.label))
|
|
199249
|
+
});
|
|
199250
|
+
var permissionSearchMatches = (permission, search) => {
|
|
199251
|
+
if (search === void 0) return true;
|
|
199252
|
+
const lower = search.toLowerCase();
|
|
199253
|
+
return [
|
|
199254
|
+
permission._id,
|
|
199255
|
+
String(permission.label),
|
|
199256
|
+
permission.description === void 0 ? "" : String(permission.description)
|
|
199257
|
+
].some((value3) => value3.toLowerCase().includes(lower));
|
|
199258
|
+
};
|
|
199259
|
+
|
|
199260
|
+
// src/huly/operations/preferences.ts
|
|
199261
|
+
var spaceRef = (id) => toRef(SpaceId.make(id));
|
|
199262
|
+
var spaceMapById = (client, ids3) => Effect_exports.gen(function* () {
|
|
199263
|
+
const uniqueIds = [...new Set(ids3.map(String))];
|
|
199264
|
+
if (uniqueIds.length === 0) return /* @__PURE__ */ new Map();
|
|
199265
|
+
const spaces = yield* client.findAll(
|
|
199266
|
+
spaceClass,
|
|
199267
|
+
hulyQuery({ _id: { $in: uniqueIds.map((id) => toRef(SpaceId.make(id))) } }),
|
|
199268
|
+
{ limit: uniqueIds.length }
|
|
199269
|
+
);
|
|
199270
|
+
return new Map(spaces.map((space) => [space._id, space]));
|
|
199271
|
+
});
|
|
199272
|
+
var preferenceResult = (item, attachedSpace) => ({
|
|
199273
|
+
preferenceId: SpacePreferenceId.make(item._id),
|
|
199274
|
+
attachedTo: SpaceId.make(item.attachedTo),
|
|
199275
|
+
...attachedSpace === void 0 ? {} : { attachedSpace: toSpaceSummary(attachedSpace) },
|
|
199276
|
+
class: ObjectClassName.make(item._class)
|
|
199277
|
+
});
|
|
199278
|
+
var warnMissingAttachedSpaces = (diagnostics, items, spacesById) => {
|
|
199279
|
+
const missingIds = [...new Set(items.map((item) => String(item.attachedTo)).filter((id) => !spacesById.has(id)))].sort();
|
|
199280
|
+
if (missingIds.length === 0) return Effect_exports.void;
|
|
199281
|
+
return diagnostics.warnAgent({
|
|
199282
|
+
code: SpacePreferenceMetadataDegradedWarningCode,
|
|
199283
|
+
message: `Some SpacePreference attached space metadata was omitted because ${missingIds.length} attached space id(s) could not be resolved: ${missingIds.join(", ")}. Results still include raw attachedTo space IDs.`
|
|
199284
|
+
});
|
|
199285
|
+
};
|
|
199286
|
+
var listQuery = (targetSpace) => targetSpace === void 0 ? {} : { attachedTo: spaceRef(targetSpace._id) };
|
|
199287
|
+
var listSpacePreferences = (params) => Effect_exports.gen(function* () {
|
|
199288
|
+
const client = yield* HulyClient;
|
|
199289
|
+
const diagnostics = yield* Diagnostics;
|
|
199290
|
+
const targetSpace = params.space === void 0 ? void 0 : yield* findSpace(client, {
|
|
199291
|
+
space: params.space,
|
|
199292
|
+
...params.includeArchived === void 0 ? {} : { includeArchived: params.includeArchived },
|
|
199293
|
+
...params.class === void 0 ? {} : { class: params.class },
|
|
199294
|
+
...params.type === void 0 ? {} : { type: params.type }
|
|
199295
|
+
});
|
|
199296
|
+
const preferences = yield* client.findAll(
|
|
199297
|
+
preference.class.SpacePreference,
|
|
199298
|
+
hulyQuery(listQuery(targetSpace)),
|
|
199299
|
+
{ limit: clampLimit(params.limit), sort: { modifiedOn: import_core68.SortingOrder.Descending }, total: true }
|
|
199300
|
+
);
|
|
199301
|
+
const spacesById = yield* spaceMapById(client, preferences.map((item) => item.attachedTo));
|
|
199302
|
+
yield* warnMissingAttachedSpaces(diagnostics, preferences, spacesById);
|
|
199303
|
+
return {
|
|
199304
|
+
preferences: preferences.map((item) => preferenceResult(item, spacesById.get(item.attachedTo))),
|
|
199305
|
+
total: listTotal(preferences.total)
|
|
199306
|
+
};
|
|
199307
|
+
});
|
|
199308
|
+
var getSpacePreference = (params) => Effect_exports.gen(function* () {
|
|
199309
|
+
const client = yield* HulyClient;
|
|
199310
|
+
const targetSpace = yield* findSpace(client, params);
|
|
199311
|
+
const item = yield* client.findOne(
|
|
199312
|
+
preference.class.SpacePreference,
|
|
199313
|
+
hulyQuery({ attachedTo: spaceRef(targetSpace._id) })
|
|
199314
|
+
);
|
|
199315
|
+
if (item === void 0) {
|
|
199316
|
+
return {
|
|
199317
|
+
present: false,
|
|
199318
|
+
attachedTo: SpaceId.make(targetSpace._id),
|
|
199319
|
+
attachedSpace: toSpaceSummary(targetSpace)
|
|
199320
|
+
};
|
|
199321
|
+
}
|
|
199322
|
+
return {
|
|
199323
|
+
present: true,
|
|
199324
|
+
preference: preferenceResult(item, targetSpace)
|
|
199325
|
+
};
|
|
199326
|
+
});
|
|
199327
|
+
|
|
199328
|
+
// src/mcp/tools/preferences.ts
|
|
199329
|
+
var CATEGORY27 = "preferences";
|
|
199330
|
+
var preferenceTools = [
|
|
199331
|
+
defineTool(
|
|
199332
|
+
{
|
|
199333
|
+
name: "list_space_preferences",
|
|
199334
|
+
description: "List low-level Huly SpacePreference records. These generic preference rows are attached to spaces and the published SDK exposes only the attached space link, so this tool is read-only discovery. Omit space to list recent rows across spaces, or pass a space _id/exact name with optional class/type narrowing to inspect one space.",
|
|
199335
|
+
category: CATEGORY27,
|
|
199336
|
+
inputSchema: listSpacePreferencesParamsJsonSchema,
|
|
199337
|
+
resultSchema: ListSpacePreferencesResultSchema
|
|
199338
|
+
},
|
|
199339
|
+
parseListSpacePreferencesParams,
|
|
199340
|
+
listSpacePreferences
|
|
199341
|
+
),
|
|
199342
|
+
defineTool(
|
|
199343
|
+
{
|
|
199344
|
+
name: "get_space_preference",
|
|
199345
|
+
description: "Read the low-level Huly SpacePreference record attached to one space. Accepts a space _id or exact name with optional class/type narrowing. Returns present=false when the space exists but no generic SpacePreference row exists; use module-specific preference tools for writable preference payloads.",
|
|
199346
|
+
category: CATEGORY27,
|
|
199347
|
+
inputSchema: getSpacePreferenceParamsJsonSchema,
|
|
199348
|
+
resultSchema: GetSpacePreferenceResultSchema
|
|
199349
|
+
},
|
|
199350
|
+
parseGetSpacePreferenceParams,
|
|
199351
|
+
getSpacePreference
|
|
199352
|
+
)
|
|
199353
|
+
];
|
|
199354
|
+
|
|
199355
|
+
// src/huly/operations/processes.ts
|
|
199356
|
+
var import_core69 = __toESM(require_lib5(), 1);
|
|
199357
|
+
|
|
199099
199358
|
// src/huly/process-plugin.ts
|
|
199100
199359
|
var import_platform2 = __toESM(require_lib(), 1);
|
|
199101
199360
|
var processId = "process";
|
|
@@ -199206,7 +199465,7 @@ var resolveProcess = (client, identifier2) => Effect_exports.gen(function* () {
|
|
|
199206
199465
|
const allProcesses = yield* client.findAll(
|
|
199207
199466
|
processPlugin.class.Process,
|
|
199208
199467
|
{},
|
|
199209
|
-
{ sort: { name:
|
|
199468
|
+
{ sort: { name: import_core69.SortingOrder.Ascending } }
|
|
199210
199469
|
);
|
|
199211
199470
|
const matches = [...allProcesses].filter(
|
|
199212
199471
|
(process4) => normalizeForComparison(process4.name) === normalizeForComparison(identifier2)
|
|
@@ -199310,7 +199569,7 @@ var listProcesses = (params) => Effect_exports.gen(function* () {
|
|
|
199310
199569
|
const processes = yield* client.findAll(
|
|
199311
199570
|
processPlugin.class.Process,
|
|
199312
199571
|
query,
|
|
199313
|
-
{ limit: clampLimit(params.limit), sort: { name:
|
|
199572
|
+
{ limit: clampLimit(params.limit), sort: { name: import_core69.SortingOrder.Ascending } }
|
|
199314
199573
|
);
|
|
199315
199574
|
const data = yield* loadProcessDefinitionData(client, [...processes]);
|
|
199316
199575
|
const result = {
|
|
@@ -199327,12 +199586,12 @@ var getProcess = (params) => Effect_exports.gen(function* () {
|
|
|
199327
199586
|
client.findAll(
|
|
199328
199587
|
processPlugin.class.State,
|
|
199329
199588
|
{ process: process4._id },
|
|
199330
|
-
{ sort: { rank:
|
|
199589
|
+
{ sort: { rank: import_core69.SortingOrder.Ascending } }
|
|
199331
199590
|
),
|
|
199332
199591
|
client.findAll(
|
|
199333
199592
|
processPlugin.class.Transition,
|
|
199334
199593
|
{ process: process4._id },
|
|
199335
|
-
{ sort: { rank:
|
|
199594
|
+
{ sort: { rank: import_core69.SortingOrder.Ascending } }
|
|
199336
199595
|
)
|
|
199337
199596
|
]);
|
|
199338
199597
|
const result = processDetail({
|
|
@@ -199357,7 +199616,7 @@ var listExecutions = (params) => Effect_exports.gen(function* () {
|
|
|
199357
199616
|
const executions = yield* client.findAll(
|
|
199358
199617
|
processPlugin.class.Execution,
|
|
199359
199618
|
query,
|
|
199360
|
-
{ limit: clampLimit(params.limit), sort: { modifiedOn:
|
|
199619
|
+
{ limit: clampLimit(params.limit), sort: { modifiedOn: import_core69.SortingOrder.Descending } }
|
|
199361
199620
|
);
|
|
199362
199621
|
const processIds = executions.map((execution) => execution.process);
|
|
199363
199622
|
const processLookup = processIds.length === 0 ? Effect_exports.succeed(/* @__PURE__ */ new Map()) : client.findAll(
|
|
@@ -199386,7 +199645,7 @@ var startProcess = (params) => Effect_exports.gen(function* () {
|
|
|
199386
199645
|
const transitions = yield* client.findAll(
|
|
199387
199646
|
processPlugin.class.Transition,
|
|
199388
199647
|
{ process: process4._id },
|
|
199389
|
-
{ sort: { rank:
|
|
199648
|
+
{ sort: { rank: import_core69.SortingOrder.Ascending } }
|
|
199390
199649
|
);
|
|
199391
199650
|
const transition = initialTransition(transitions);
|
|
199392
199651
|
if (transition === void 0) {
|
|
@@ -199428,7 +199687,7 @@ var startProcess = (params) => Effect_exports.gen(function* () {
|
|
|
199428
199687
|
);
|
|
199429
199688
|
}
|
|
199430
199689
|
}
|
|
199431
|
-
const executionId = (0,
|
|
199690
|
+
const executionId = (0, import_core69.generateId)();
|
|
199432
199691
|
const executionData = {
|
|
199433
199692
|
process: process4._id,
|
|
199434
199693
|
card: card._id,
|
|
@@ -199481,13 +199740,13 @@ var cancelExecution = (params) => Effect_exports.gen(function* () {
|
|
|
199481
199740
|
});
|
|
199482
199741
|
|
|
199483
199742
|
// src/mcp/tools/processes.ts
|
|
199484
|
-
var
|
|
199743
|
+
var CATEGORY28 = "processes";
|
|
199485
199744
|
var processTools = [
|
|
199486
199745
|
defineTool(
|
|
199487
199746
|
{
|
|
199488
199747
|
name: "list_processes",
|
|
199489
199748
|
description: "List read-only Huly Process workflow definitions. Optionally filter by the master tag/card type that workflows attach to. Returns process IDs, names, attached card type, automation flags, and state/transition counts.",
|
|
199490
|
-
category:
|
|
199749
|
+
category: CATEGORY28,
|
|
199491
199750
|
inputSchema: listProcessesParamsJsonSchema,
|
|
199492
199751
|
resultSchema: ListProcessesResultSchema
|
|
199493
199752
|
},
|
|
@@ -199498,7 +199757,7 @@ var processTools = [
|
|
|
199498
199757
|
{
|
|
199499
199758
|
name: "get_process",
|
|
199500
199759
|
description: "Get one Huly Process workflow definition by process ID or exact display name. If a name is ambiguous, the tool returns a typed error with candidate IDs instead of guessing.",
|
|
199501
|
-
category:
|
|
199760
|
+
category: CATEGORY28,
|
|
199502
199761
|
inputSchema: getProcessParamsJsonSchema,
|
|
199503
199762
|
resultSchema: ProcessDetailSchema
|
|
199504
199763
|
},
|
|
@@ -199509,7 +199768,7 @@ var processTools = [
|
|
|
199509
199768
|
{
|
|
199510
199769
|
name: "list_process_executions",
|
|
199511
199770
|
description: "List read-only Huly Process workflow executions. Supports filters by process ID/name, card/document ID/title, and status. Rows are enriched with process name, card title, and current state title when available.",
|
|
199512
|
-
category:
|
|
199771
|
+
category: CATEGORY28,
|
|
199513
199772
|
inputSchema: listExecutionsParamsJsonSchema,
|
|
199514
199773
|
resultSchema: ListExecutionsResultSchema
|
|
199515
199774
|
},
|
|
@@ -199520,7 +199779,7 @@ var processTools = [
|
|
|
199520
199779
|
{
|
|
199521
199780
|
name: "start_process",
|
|
199522
199781
|
description: "Start a new active Huly Process workflow execution on a card/document. Accepts process ID or exact process name, and card/document ID or exact title; ambiguous names or titles fail with candidate IDs. This is not idempotent: each successful call creates a new execution unless the process forbids parallel active executions for the same card, in which case the existing active execution ID is returned in a typed error.",
|
|
199523
|
-
category:
|
|
199782
|
+
category: CATEGORY28,
|
|
199524
199783
|
inputSchema: startProcessParamsJsonSchema,
|
|
199525
199784
|
annotations: {
|
|
199526
199785
|
readOnlyHint: false,
|
|
@@ -199537,7 +199796,7 @@ var processTools = [
|
|
|
199537
199796
|
{
|
|
199538
199797
|
name: "cancel_execution",
|
|
199539
199798
|
description: "Idempotently cancel one Huly Process execution by execution ID. Active executions are marked cancelled; already-cancelled executions succeed with cancelled=false; completed executions fail without changing history.",
|
|
199540
|
-
category:
|
|
199799
|
+
category: CATEGORY28,
|
|
199541
199800
|
inputSchema: cancelExecutionParamsJsonSchema,
|
|
199542
199801
|
annotations: {
|
|
199543
199802
|
readOnlyHint: false,
|
|
@@ -199553,7 +199812,7 @@ var processTools = [
|
|
|
199553
199812
|
];
|
|
199554
199813
|
|
|
199555
199814
|
// src/huly/operations/project-target-preferences.ts
|
|
199556
|
-
var
|
|
199815
|
+
var import_core70 = __toESM(require_lib5(), 1);
|
|
199557
199816
|
var projectMapById = (client, ids3) => Effect_exports.gen(function* () {
|
|
199558
199817
|
const uniqueIds = [...new Set(ids3)];
|
|
199559
199818
|
if (uniqueIds.length === 0) return /* @__PURE__ */ new Map();
|
|
@@ -199565,7 +199824,7 @@ var projectMapById = (client, ids3) => Effect_exports.gen(function* () {
|
|
|
199565
199824
|
const entries2 = projects.map((project3) => [project3._id, project3]);
|
|
199566
199825
|
return new Map(entries2);
|
|
199567
199826
|
});
|
|
199568
|
-
var
|
|
199827
|
+
var preferenceResult2 = (preference2, project3) => ({
|
|
199569
199828
|
preferenceId: ProjectTargetPreferenceId.make(preference2._id),
|
|
199570
199829
|
attachedTo: SpaceId.make(preference2.attachedTo),
|
|
199571
199830
|
project: project3 === void 0 ? void 0 : ProjectIdentifier.make(project3.identifier),
|
|
@@ -199591,11 +199850,11 @@ var listProjectTargetPreferences = (params) => Effect_exports.gen(function* () {
|
|
|
199591
199850
|
hulyQuery(
|
|
199592
199851
|
project3 === void 0 ? {} : { attachedTo: project3._id }
|
|
199593
199852
|
),
|
|
199594
|
-
{ limit: clampLimit(params.limit), sort: { usedOn:
|
|
199853
|
+
{ limit: clampLimit(params.limit), sort: { usedOn: import_core70.SortingOrder.Descending }, total: true }
|
|
199595
199854
|
);
|
|
199596
199855
|
const projects = yield* projectMapById(client, preferences.map((preference2) => preference2.attachedTo));
|
|
199597
199856
|
return {
|
|
199598
|
-
preferences: preferences.map((preference2) =>
|
|
199857
|
+
preferences: preferences.map((preference2) => preferenceResult2(preference2, projects.get(preference2.attachedTo))),
|
|
199599
199858
|
total: listTotal(preferences.total)
|
|
199600
199859
|
};
|
|
199601
199860
|
});
|
|
@@ -199607,7 +199866,7 @@ var upsertProjectTargetPreference = (params) => Effect_exports.gen(function* ()
|
|
|
199607
199866
|
hulyQuery({ attachedTo: project3._id })
|
|
199608
199867
|
);
|
|
199609
199868
|
if (existing === void 0) {
|
|
199610
|
-
const preferenceId = (0,
|
|
199869
|
+
const preferenceId = (0, import_core70.generateId)();
|
|
199611
199870
|
const data = {
|
|
199612
199871
|
attachedTo: project3._id,
|
|
199613
199872
|
usedOn,
|
|
@@ -199620,7 +199879,7 @@ var upsertProjectTargetPreference = (params) => Effect_exports.gen(function* ()
|
|
|
199620
199879
|
preferenceId
|
|
199621
199880
|
);
|
|
199622
199881
|
return {
|
|
199623
|
-
preference:
|
|
199882
|
+
preference: preferenceResult2({ ...data, _id: preferenceId }, project3),
|
|
199624
199883
|
created: true
|
|
199625
199884
|
};
|
|
199626
199885
|
}
|
|
@@ -199635,19 +199894,19 @@ var upsertProjectTargetPreference = (params) => Effect_exports.gen(function* ()
|
|
|
199635
199894
|
update5
|
|
199636
199895
|
);
|
|
199637
199896
|
return {
|
|
199638
|
-
preference:
|
|
199897
|
+
preference: preferenceResult2({ ...existing, ...update5 }, project3),
|
|
199639
199898
|
created: false
|
|
199640
199899
|
};
|
|
199641
199900
|
});
|
|
199642
199901
|
|
|
199643
199902
|
// src/mcp/tools/project-target-preferences.ts
|
|
199644
|
-
var
|
|
199903
|
+
var CATEGORY29 = "projects";
|
|
199645
199904
|
var projectTargetPreferenceTools = [
|
|
199646
199905
|
defineTool(
|
|
199647
199906
|
{
|
|
199648
199907
|
name: "list_project_target_preferences",
|
|
199649
199908
|
description: "List low-level per-project tracker target preference records. These Huly ProjectTargetPreference records are attached to projects and used by tracker UI/workflows to remember target-related preference props. Omit project to list recent preferences across projects, or pass a project identifier to inspect one project's preference. Props are SDK-open key/value payloads.",
|
|
199650
|
-
category:
|
|
199909
|
+
category: CATEGORY29,
|
|
199651
199910
|
inputSchema: listProjectTargetPreferencesParamsJsonSchema,
|
|
199652
199911
|
resultSchema: ListProjectTargetPreferencesResultSchema
|
|
199653
199912
|
},
|
|
@@ -199658,7 +199917,7 @@ var projectTargetPreferenceTools = [
|
|
|
199658
199917
|
{
|
|
199659
199918
|
name: "upsert_project_target_preference",
|
|
199660
199919
|
description: "Create or update the low-level ProjectTargetPreference record for a project. This refreshes usedOn and merges SDK-open target preference props by key. Use for tracker SDK parity or advanced administration; ordinary project and issue workflows usually do not need this tool.",
|
|
199661
|
-
category:
|
|
199920
|
+
category: CATEGORY29,
|
|
199662
199921
|
inputSchema: upsertProjectTargetPreferenceParamsJsonSchema,
|
|
199663
199922
|
resultSchema: UpsertProjectTargetPreferenceResultSchema
|
|
199664
199923
|
},
|
|
@@ -199668,7 +199927,7 @@ var projectTargetPreferenceTools = [
|
|
|
199668
199927
|
];
|
|
199669
199928
|
|
|
199670
199929
|
// src/huly/operations/projects.ts
|
|
199671
|
-
var
|
|
199930
|
+
var import_core71 = __toESM(require_lib5(), 1);
|
|
199672
199931
|
var import_tracker7 = __toESM(require_lib40(), 1);
|
|
199673
199932
|
var listProjects = (params) => Effect_exports.gen(function* () {
|
|
199674
199933
|
const client = yield* HulyClient;
|
|
@@ -199683,7 +199942,7 @@ var listProjects = (params) => Effect_exports.gen(function* () {
|
|
|
199683
199942
|
{
|
|
199684
199943
|
limit,
|
|
199685
199944
|
sort: {
|
|
199686
|
-
name:
|
|
199945
|
+
name: import_core71.SortingOrder.Ascending
|
|
199687
199946
|
}
|
|
199688
199947
|
}
|
|
199689
199948
|
);
|
|
@@ -199751,7 +200010,7 @@ var createProject = (params) => Effect_exports.gen(function* () {
|
|
|
199751
200010
|
created: false
|
|
199752
200011
|
};
|
|
199753
200012
|
}
|
|
199754
|
-
const projectId = (0,
|
|
200013
|
+
const projectId = (0, import_core71.generateId)();
|
|
199755
200014
|
const projectData = {
|
|
199756
200015
|
name: params.name,
|
|
199757
200016
|
description: params.description ?? "",
|
|
@@ -199769,10 +200028,10 @@ var createProject = (params) => Effect_exports.gen(function* () {
|
|
|
199769
200028
|
// tracker.ids.ClassingProjectType is the default classic tracker ProjectType.
|
|
199770
200029
|
type: tracker.ids.ClassingProjectType
|
|
199771
200030
|
};
|
|
199772
|
-
const
|
|
200031
|
+
const spaceRef2 = toRef(projectId);
|
|
199773
200032
|
yield* client.createDoc(
|
|
199774
200033
|
tracker.class.Project,
|
|
199775
|
-
|
|
200034
|
+
spaceRef2,
|
|
199776
200035
|
projectData,
|
|
199777
200036
|
projectId
|
|
199778
200037
|
);
|
|
@@ -199809,13 +200068,13 @@ var deleteProject = (params) => Effect_exports.gen(function* () {
|
|
|
199809
200068
|
});
|
|
199810
200069
|
|
|
199811
200070
|
// src/mcp/tools/projects.ts
|
|
199812
|
-
var
|
|
200071
|
+
var CATEGORY30 = "projects";
|
|
199813
200072
|
var projectTools = [
|
|
199814
200073
|
defineTool(
|
|
199815
200074
|
{
|
|
199816
200075
|
name: "list_projects",
|
|
199817
200076
|
description: "List all Huly projects. Returns projects sorted by name. Supports filtering by archived status.",
|
|
199818
|
-
category:
|
|
200077
|
+
category: CATEGORY30,
|
|
199819
200078
|
inputSchema: listProjectsParamsJsonSchema,
|
|
199820
200079
|
resultSchema: ListProjectsResultSchema
|
|
199821
200080
|
},
|
|
@@ -199826,7 +200085,7 @@ var projectTools = [
|
|
|
199826
200085
|
{
|
|
199827
200086
|
name: "get_project",
|
|
199828
200087
|
description: "Get full details of a Huly project including its statuses. Returns project name, description, archived flag, default status, and all available statuses.",
|
|
199829
|
-
category:
|
|
200088
|
+
category: CATEGORY30,
|
|
199830
200089
|
inputSchema: getProjectParamsJsonSchema,
|
|
199831
200090
|
resultSchema: GetProjectResultSchema
|
|
199832
200091
|
},
|
|
@@ -199837,7 +200096,7 @@ var projectTools = [
|
|
|
199837
200096
|
{
|
|
199838
200097
|
name: "list_statuses",
|
|
199839
200098
|
description: "List all issue statuses for a Huly project with workflow category and default info. Returns status name, category, and isDefault. Use this to discover valid statuses before creating or updating issues.",
|
|
199840
|
-
category:
|
|
200099
|
+
category: CATEGORY30,
|
|
199841
200100
|
inputSchema: listStatusesParamsJsonSchema,
|
|
199842
200101
|
resultSchema: ListStatusesResultSchema
|
|
199843
200102
|
},
|
|
@@ -199848,7 +200107,7 @@ var projectTools = [
|
|
|
199848
200107
|
{
|
|
199849
200108
|
name: "create_project",
|
|
199850
200109
|
description: "Create a new Huly tracker project. Idempotent: returns existing project if one with the same identifier already exists (created=false). Identifier must be 1-5 uppercase alphanumeric chars starting with a letter.",
|
|
199851
|
-
category:
|
|
200110
|
+
category: CATEGORY30,
|
|
199852
200111
|
inputSchema: createProjectParamsJsonSchema,
|
|
199853
200112
|
resultSchema: CreateProjectResultSchema
|
|
199854
200113
|
},
|
|
@@ -199859,7 +200118,7 @@ var projectTools = [
|
|
|
199859
200118
|
{
|
|
199860
200119
|
name: "update_project",
|
|
199861
200120
|
description: "Update a Huly project. Only provided fields are modified. Set description to null to clear it.",
|
|
199862
|
-
category:
|
|
200121
|
+
category: CATEGORY30,
|
|
199863
200122
|
inputSchema: updateProjectParamsJsonSchema,
|
|
199864
200123
|
resultSchema: UpdateProjectResultSchema
|
|
199865
200124
|
},
|
|
@@ -199870,7 +200129,7 @@ var projectTools = [
|
|
|
199870
200129
|
{
|
|
199871
200130
|
name: "delete_project",
|
|
199872
200131
|
description: "Permanently delete a Huly project. All issues, milestones, and components in this project will be orphaned. This action cannot be undone.",
|
|
199873
|
-
category:
|
|
200132
|
+
category: CATEGORY30,
|
|
199874
200133
|
inputSchema: deleteProjectParamsJsonSchema,
|
|
199875
200134
|
resultSchema: DeleteProjectResultSchema
|
|
199876
200135
|
},
|
|
@@ -199880,7 +200139,7 @@ var projectTools = [
|
|
|
199880
200139
|
];
|
|
199881
200140
|
|
|
199882
200141
|
// src/huly/operations/recruiting-applicants.ts
|
|
199883
|
-
var
|
|
200142
|
+
var import_core73 = __toESM(require_lib5(), 1);
|
|
199884
200143
|
var import_rank6 = __toESM(require_lib36(), 1);
|
|
199885
200144
|
|
|
199886
200145
|
// src/huly/recruit-plugin.ts
|
|
@@ -199989,7 +200248,7 @@ var candidateSearchFilter = (query) => {
|
|
|
199989
200248
|
};
|
|
199990
200249
|
|
|
199991
200250
|
// src/huly/operations/recruiting-shared.ts
|
|
199992
|
-
var
|
|
200251
|
+
var import_core72 = __toESM(require_lib5(), 1);
|
|
199993
200252
|
var prefixedNumber = (identifier2, prefix) => {
|
|
199994
200253
|
const match16 = new RegExp(`^${prefix}-(\\d+)$`, "i").exec(identifier2);
|
|
199995
200254
|
return match16 === null ? void 0 : Number(match16[1]);
|
|
@@ -200192,7 +200451,7 @@ var vacancyNameSearchFilter = (query) => {
|
|
|
200192
200451
|
const search = query?.trim() ?? "";
|
|
200193
200452
|
return search === "" ? {} : { name: { $like: `%${escapeLikeWildcards(search)}%` } };
|
|
200194
200453
|
};
|
|
200195
|
-
var sortByModifiedDescending = { sort: { modifiedOn:
|
|
200454
|
+
var sortByModifiedDescending = { sort: { modifiedOn: import_core72.SortingOrder.Descending } };
|
|
200196
200455
|
|
|
200197
200456
|
// src/huly/operations/recruiting-applicants.ts
|
|
200198
200457
|
var resolveOptionalVacancy = (client, identifier2) => identifier2 === void 0 ? Effect_exports.succeed(void 0) : resolveVacancy(client, identifier2);
|
|
@@ -200255,7 +200514,7 @@ var listRecruitingApplicants = (params) => Effect_exports.gen(function* () {
|
|
|
200255
200514
|
hulyQuery(query),
|
|
200256
200515
|
{
|
|
200257
200516
|
...requiresInMemoryStatusFilter ? {} : { limit },
|
|
200258
|
-
sort: { modifiedOn:
|
|
200517
|
+
sort: { modifiedOn: import_core73.SortingOrder.Descending }
|
|
200259
200518
|
}
|
|
200260
200519
|
);
|
|
200261
200520
|
const refs = yield* Effect_exports.forEach(applicants, (applicant) => Effect_exports.gen(function* () {
|
|
@@ -200286,12 +200545,12 @@ var createRecruitingApplicant = (params) => Effect_exports.gen(function* () {
|
|
|
200286
200545
|
const assignee = params.assignee === void 0 ? null : yield* resolveAssignee2(client, params.assignee);
|
|
200287
200546
|
const number8 = yield* incrementSequence(client, recruitIds.class.Applicant, "applicant");
|
|
200288
200547
|
const identifier2 = applicantIdentifierFromNumber(number8);
|
|
200289
|
-
const applicantId = (0,
|
|
200548
|
+
const applicantId = (0, import_core73.generateId)();
|
|
200290
200549
|
const { candidate } = yield* ensureCandidateMixin(client, person, {});
|
|
200291
200550
|
const lastApplicant = yield* client.findOne(
|
|
200292
200551
|
recruitIds.class.Applicant,
|
|
200293
200552
|
hulyQuery({ space: vacancy._id }),
|
|
200294
|
-
{ sort: { rank:
|
|
200553
|
+
{ sort: { rank: import_core73.SortingOrder.Descending } }
|
|
200295
200554
|
);
|
|
200296
200555
|
const data = {
|
|
200297
200556
|
status,
|
|
@@ -200375,7 +200634,7 @@ var deleteRecruitingApplicant = (params) => Effect_exports.gen(function* () {
|
|
|
200375
200634
|
});
|
|
200376
200635
|
|
|
200377
200636
|
// src/huly/operations/recruiting-candidates.ts
|
|
200378
|
-
var
|
|
200637
|
+
var import_core74 = __toESM(require_lib5(), 1);
|
|
200379
200638
|
var candidateMatchesQuery = (candidate, query) => {
|
|
200380
200639
|
const normalized = normalizeForComparison(query?.trim() ?? "");
|
|
200381
200640
|
if (normalized === "") return true;
|
|
@@ -200428,7 +200687,7 @@ var listRecruitingCandidates = (params) => Effect_exports.gen(function* () {
|
|
|
200428
200687
|
const candidates = yield* client.findAll(
|
|
200429
200688
|
recruitIds.mixin.Candidate,
|
|
200430
200689
|
hulyQuery(candidateSearchFilter(params.query)),
|
|
200431
|
-
{ limit: listLimit(params.limit), sort: { modifiedOn:
|
|
200690
|
+
{ limit: listLimit(params.limit), sort: { modifiedOn: import_core74.SortingOrder.Descending } }
|
|
200432
200691
|
);
|
|
200433
200692
|
const filtered = candidates.filter((candidate) => candidateMatchesQuery(candidate, params.query));
|
|
200434
200693
|
const emailMap = yield* Effect_exports.map(
|
|
@@ -200469,7 +200728,7 @@ var listRecruitingSkills = (params) => Effect_exports.gen(function* () {
|
|
|
200469
200728
|
...categoryFilter,
|
|
200470
200729
|
...titleFilter
|
|
200471
200730
|
}),
|
|
200472
|
-
{ limit: listLimit(params.limit), sort: { title:
|
|
200731
|
+
{ limit: listLimit(params.limit), sort: { title: import_core74.SortingOrder.Ascending } }
|
|
200473
200732
|
);
|
|
200474
200733
|
return { skills: skillTags.map(toSkillSummary), total: Count.make(skillTags.length) };
|
|
200475
200734
|
});
|
|
@@ -200516,7 +200775,7 @@ var removeRecruitingCandidateSkill = (params) => Effect_exports.gen(function* ()
|
|
|
200516
200775
|
});
|
|
200517
200776
|
|
|
200518
200777
|
// src/huly/operations/recruiting-vacancies.ts
|
|
200519
|
-
var
|
|
200778
|
+
var import_core75 = __toESM(require_lib5(), 1);
|
|
200520
200779
|
var companySummary = (client, company) => company === void 0 ? Effect_exports.succeed(void 0) : Effect_exports.map(
|
|
200521
200780
|
client.findOne(contact.class.Organization, { _id: company }),
|
|
200522
200781
|
(org) => org === void 0 ? void 0 : { id: DocId.make(org._id), name: org.name }
|
|
@@ -200562,7 +200821,7 @@ var listRecruitingVacancyTypes = (params) => Effect_exports.gen(function* () {
|
|
|
200562
200821
|
const types = yield* client.findAll(
|
|
200563
200822
|
task.class.ProjectType,
|
|
200564
200823
|
hulyQuery({ descriptor: toRef(recruitIds.descriptors.VacancyType) }),
|
|
200565
|
-
{ limit: listLimit(params.limit), sort: { name:
|
|
200824
|
+
{ limit: listLimit(params.limit), sort: { name: import_core75.SortingOrder.Ascending } }
|
|
200566
200825
|
);
|
|
200567
200826
|
const summaries = types.map(toVacancyTypeSummary);
|
|
200568
200827
|
return { types: summaries, total: Count.make(summaries.length) };
|
|
@@ -200598,7 +200857,7 @@ var createRecruitingVacancy = (params) => Effect_exports.gen(function* () {
|
|
|
200598
200857
|
const client = yield* HulyClient;
|
|
200599
200858
|
const type = yield* resolveVacancyType(client, params.type);
|
|
200600
200859
|
const company = params.company === void 0 ? void 0 : (yield* resolveOrganizationByIdentifier(client, params.company))._id;
|
|
200601
|
-
const vacancyId = (0,
|
|
200860
|
+
const vacancyId = (0, import_core75.generateId)();
|
|
200602
200861
|
const number8 = yield* incrementSequence(client, recruitIds.class.Vacancy, "vacancy");
|
|
200603
200862
|
const fullDescription = yield* uploadFullDescription(client, vacancyId, params.fullDescription);
|
|
200604
200863
|
const accountUuid = client.getAccountUuid();
|
|
@@ -200670,7 +200929,7 @@ var archiveRecruitingVacancy = (params) => setVacancyArchiveState(params.vacancy
|
|
|
200670
200929
|
var unarchiveRecruitingVacancy = (params) => setVacancyArchiveState(params.vacancy, false);
|
|
200671
200930
|
|
|
200672
200931
|
// src/huly/operations/recruiting-matches.ts
|
|
200673
|
-
var
|
|
200932
|
+
var import_core76 = __toESM(require_lib5(), 1);
|
|
200674
200933
|
var matchesText2 = (match16, query) => {
|
|
200675
200934
|
const normalized = normalizeForComparison(query ?? "");
|
|
200676
200935
|
if (normalized === "") return true;
|
|
@@ -200715,7 +200974,7 @@ var listRecruitingApplicantMatches = (params) => Effect_exports.gen(function* ()
|
|
|
200715
200974
|
const matches = yield* client.findAll(
|
|
200716
200975
|
recruitIds.class.ApplicantMatch,
|
|
200717
200976
|
hulyQuery(query),
|
|
200718
|
-
{ sort: { modifiedOn:
|
|
200977
|
+
{ sort: { modifiedOn: import_core76.SortingOrder.Descending } }
|
|
200719
200978
|
);
|
|
200720
200979
|
const limited = matches.filter((match16) => matchesText2(match16, params.query)).slice(0, listLimit(params.limit));
|
|
200721
200980
|
const refs = yield* Effect_exports.forEach(limited, (match16) => toMatchRef(client, match16));
|
|
@@ -200734,11 +200993,11 @@ var getRecruitingApplicantMatch = (params) => Effect_exports.gen(function* () {
|
|
|
200734
200993
|
});
|
|
200735
200994
|
|
|
200736
200995
|
// src/huly/operations/recruiting-opinions.ts
|
|
200737
|
-
var
|
|
200996
|
+
var import_core78 = __toESM(require_lib5(), 1);
|
|
200738
200997
|
|
|
200739
200998
|
// src/huly/operations/recruiting-reviews.ts
|
|
200740
200999
|
var import_calendar15 = __toESM(require_lib25(), 1);
|
|
200741
|
-
var
|
|
201000
|
+
var import_core77 = __toESM(require_lib5(), 1);
|
|
200742
201001
|
var REVIEW_DEFAULT_DURATION_MINUTES = 30;
|
|
200743
201002
|
var MILLISECONDS_PER_SECOND = 1e3;
|
|
200744
201003
|
var SECONDS_PER_MINUTE2 = 60;
|
|
@@ -200858,7 +201117,7 @@ var listRecruitingReviews = (params) => Effect_exports.gen(function* () {
|
|
|
200858
201117
|
const reviews = yield* client.findAll(
|
|
200859
201118
|
recruitIds.class.Review,
|
|
200860
201119
|
hulyQuery(query),
|
|
200861
|
-
{ sort: { date:
|
|
201120
|
+
{ sort: { date: import_core77.SortingOrder.Descending } }
|
|
200862
201121
|
);
|
|
200863
201122
|
const limited = reviews.filter((review) => matchesReviewText(review, params.query)).slice(
|
|
200864
201123
|
0,
|
|
@@ -200879,7 +201138,7 @@ var createRecruitingReview = (params) => Effect_exports.gen(function* () {
|
|
|
200879
201138
|
const application = yield* optionalApplication(client, params.application, person);
|
|
200880
201139
|
const company = params.company === void 0 ? void 0 : (yield* resolveOrganizationByIdentifier(client, params.company))._id;
|
|
200881
201140
|
const number8 = yield* incrementSequence(client, recruitIds.class.Review, "review");
|
|
200882
|
-
const reviewId = (0,
|
|
201141
|
+
const reviewId = (0, import_core77.generateId)();
|
|
200883
201142
|
const data = {
|
|
200884
201143
|
number: number8,
|
|
200885
201144
|
date: params.date,
|
|
@@ -201028,7 +201287,7 @@ var listRecruitingOpinions = (params) => Effect_exports.gen(function* () {
|
|
|
201028
201287
|
const opinions = yield* client.findAll(
|
|
201029
201288
|
recruitIds.class.Opinion,
|
|
201030
201289
|
hulyQuery({ attachedTo: review._id }),
|
|
201031
|
-
{ limit: listLimit(params.limit), sort: { modifiedOn:
|
|
201290
|
+
{ limit: listLimit(params.limit), sort: { modifiedOn: import_core78.SortingOrder.Descending } }
|
|
201032
201291
|
);
|
|
201033
201292
|
const refs = yield* Effect_exports.forEach(opinions, (opinion) => opinionRefFromDoc(client, opinion, review));
|
|
201034
201293
|
return { opinions: refs, total: Count.make(refs.length) };
|
|
@@ -201044,7 +201303,7 @@ var createRecruitingOpinion = (params) => Effect_exports.gen(function* () {
|
|
|
201044
201303
|
const client = yield* HulyClient;
|
|
201045
201304
|
const review = yield* findReview(client, params.review);
|
|
201046
201305
|
const number8 = yield* incrementSequence(client, recruitIds.class.Opinion, "opinion");
|
|
201047
|
-
const opinionId = (0,
|
|
201306
|
+
const opinionId = (0, import_core78.generateId)();
|
|
201048
201307
|
const data = {
|
|
201049
201308
|
number: number8,
|
|
201050
201309
|
value: params.value,
|
|
@@ -201116,13 +201375,13 @@ var deleteRecruitingOpinion = (params) => Effect_exports.gen(function* () {
|
|
|
201116
201375
|
});
|
|
201117
201376
|
|
|
201118
201377
|
// src/mcp/tools/recruiting-extended.ts
|
|
201119
|
-
var
|
|
201378
|
+
var CATEGORY31 = "recruiting";
|
|
201120
201379
|
var recruitingExtendedTools = [
|
|
201121
201380
|
defineTool(
|
|
201122
201381
|
{
|
|
201123
201382
|
name: "list_recruiting_applicant_matches",
|
|
201124
201383
|
description: "List read-only generated Recruiting applicant matches. ApplicantMatch fields are generated by Huly; this tool only reads them. Filter by candidate, complete state, vacancy/summary query, and limit.",
|
|
201125
|
-
category:
|
|
201384
|
+
category: CATEGORY31,
|
|
201126
201385
|
inputSchema: listRecruitingApplicantMatchesParamsJsonSchema,
|
|
201127
201386
|
resultSchema: ListRecruitingApplicantMatchesResultSchema
|
|
201128
201387
|
},
|
|
@@ -201133,7 +201392,7 @@ var recruitingExtendedTools = [
|
|
|
201133
201392
|
{
|
|
201134
201393
|
name: "get_recruiting_applicant_match",
|
|
201135
201394
|
description: "Get one read-only generated Recruiting applicant match by raw applicant-match _id. Returns candidate, complete state, generated vacancy text, summary, response markdown, and timestamps.",
|
|
201136
|
-
category:
|
|
201395
|
+
category: CATEGORY31,
|
|
201137
201396
|
inputSchema: getRecruitingApplicantMatchParamsJsonSchema,
|
|
201138
201397
|
resultSchema: ApplicantMatchDetailSchema
|
|
201139
201398
|
},
|
|
@@ -201144,7 +201403,7 @@ var recruitingExtendedTools = [
|
|
|
201144
201403
|
{
|
|
201145
201404
|
name: "list_recruiting_reviews",
|
|
201146
201405
|
description: "List Recruiting reviews/interviews as stable refs. Filter by candidate, application, date range, title/verdict/location query, and limit. Review locators use raw _id, RVE-<number>, number, or exact title.",
|
|
201147
|
-
category:
|
|
201406
|
+
category: CATEGORY31,
|
|
201148
201407
|
inputSchema: listRecruitingReviewsParamsJsonSchema,
|
|
201149
201408
|
resultSchema: ListRecruitingReviewsResultSchema
|
|
201150
201409
|
},
|
|
@@ -201155,7 +201414,7 @@ var recruitingExtendedTools = [
|
|
|
201155
201414
|
{
|
|
201156
201415
|
name: "get_recruiting_review",
|
|
201157
201416
|
description: "Get one Recruiting review by raw _id, RVE-<number>, bare number, or exact title. Optional candidate/application disambiguate. Returns schedule, markdown description, verdict, participant refs, company, application, and opinion count.",
|
|
201158
|
-
category:
|
|
201417
|
+
category: CATEGORY31,
|
|
201159
201418
|
inputSchema: getRecruitingReviewParamsJsonSchema,
|
|
201160
201419
|
resultSchema: ReviewDetailSchema
|
|
201161
201420
|
},
|
|
@@ -201166,7 +201425,7 @@ var recruitingExtendedTools = [
|
|
|
201166
201425
|
{
|
|
201167
201426
|
name: "create_recruiting_review",
|
|
201168
201427
|
description: "Create a Recruiting review/interview like the Huly UI: increments RVE sequence, attaches to the candidate reviews collection, stores markdown description as Huly markup, defaults dueDate to 30 minutes after date, and recruit-enables the person if needed.",
|
|
201169
|
-
category:
|
|
201428
|
+
category: CATEGORY31,
|
|
201170
201429
|
inputSchema: createRecruitingReviewParamsJsonSchema,
|
|
201171
201430
|
resultSchema: RecruitingReviewMutationResultSchema
|
|
201172
201431
|
},
|
|
@@ -201177,7 +201436,7 @@ var recruitingExtendedTools = [
|
|
|
201177
201436
|
{
|
|
201178
201437
|
name: "update_recruiting_review",
|
|
201179
201438
|
description: "Update a Recruiting review. review accepts raw _id, RVE-<number>, number, or exact title; candidate/applicationContext only disambiguate. Pass null for description, verdict, application, company, or location to clear.",
|
|
201180
|
-
category:
|
|
201439
|
+
category: CATEGORY31,
|
|
201181
201440
|
inputSchema: updateRecruitingReviewParamsJsonSchema,
|
|
201182
201441
|
resultSchema: RecruitingReviewMutationResultSchema
|
|
201183
201442
|
},
|
|
@@ -201188,7 +201447,7 @@ var recruitingExtendedTools = [
|
|
|
201188
201447
|
{
|
|
201189
201448
|
name: "delete_recruiting_review",
|
|
201190
201449
|
description: "Delete a Recruiting review with Huly removeCollection. review accepts raw _id, RVE-<number>, number, or exact title; candidate/application can disambiguate.",
|
|
201191
|
-
category:
|
|
201450
|
+
category: CATEGORY31,
|
|
201192
201451
|
inputSchema: deleteRecruitingReviewParamsJsonSchema,
|
|
201193
201452
|
annotations: { destructiveHint: true, idempotentHint: false },
|
|
201194
201453
|
resultSchema: DeleteRecruitingReviewResultSchema
|
|
@@ -201200,7 +201459,7 @@ var recruitingExtendedTools = [
|
|
|
201200
201459
|
{
|
|
201201
201460
|
name: "list_recruiting_opinions",
|
|
201202
201461
|
description: "List Recruiting opinions for one review. review accepts raw _id, RVE-<number>, bare number, or exact title. Opinion refs include OPE-<number>, parent review ref, and opinion value.",
|
|
201203
|
-
category:
|
|
201462
|
+
category: CATEGORY31,
|
|
201204
201463
|
inputSchema: listRecruitingOpinionsParamsJsonSchema,
|
|
201205
201464
|
resultSchema: ListRecruitingOpinionsResultSchema
|
|
201206
201465
|
},
|
|
@@ -201211,7 +201470,7 @@ var recruitingExtendedTools = [
|
|
|
201211
201470
|
{
|
|
201212
201471
|
name: "get_recruiting_opinion",
|
|
201213
201472
|
description: "Get one Recruiting opinion by raw _id, OPE-<number>, or bare number. Pass review to disambiguate. Returns value, markdown description, comments/attachments counts, parent review ref, and timestamps.",
|
|
201214
|
-
category:
|
|
201473
|
+
category: CATEGORY31,
|
|
201215
201474
|
inputSchema: getRecruitingOpinionParamsJsonSchema,
|
|
201216
201475
|
resultSchema: OpinionDetailSchema
|
|
201217
201476
|
},
|
|
@@ -201222,7 +201481,7 @@ var recruitingExtendedTools = [
|
|
|
201222
201481
|
{
|
|
201223
201482
|
name: "create_recruiting_opinion",
|
|
201224
201483
|
description: "Create a Recruiting opinion on one review. Increments the OPE sequence, attaches to the review opinions collection, and stores markdown description as Huly markup.",
|
|
201225
|
-
category:
|
|
201484
|
+
category: CATEGORY31,
|
|
201226
201485
|
inputSchema: createRecruitingOpinionParamsJsonSchema,
|
|
201227
201486
|
resultSchema: RecruitingOpinionMutationResultSchema
|
|
201228
201487
|
},
|
|
@@ -201233,7 +201492,7 @@ var recruitingExtendedTools = [
|
|
|
201233
201492
|
{
|
|
201234
201493
|
name: "update_recruiting_opinion",
|
|
201235
201494
|
description: "Update a Recruiting opinion value and/or markdown description. opinion accepts raw _id, OPE-<number>, or number; review can disambiguate. Pass null for description to clear it.",
|
|
201236
|
-
category:
|
|
201495
|
+
category: CATEGORY31,
|
|
201237
201496
|
inputSchema: updateRecruitingOpinionParamsJsonSchema,
|
|
201238
201497
|
resultSchema: RecruitingOpinionMutationResultSchema
|
|
201239
201498
|
},
|
|
@@ -201244,7 +201503,7 @@ var recruitingExtendedTools = [
|
|
|
201244
201503
|
{
|
|
201245
201504
|
name: "delete_recruiting_opinion",
|
|
201246
201505
|
description: "Delete a Recruiting opinion with Huly removeCollection. opinion accepts raw _id, OPE-<number>, or number; review can disambiguate.",
|
|
201247
|
-
category:
|
|
201506
|
+
category: CATEGORY31,
|
|
201248
201507
|
inputSchema: deleteRecruitingOpinionParamsJsonSchema,
|
|
201249
201508
|
annotations: { destructiveHint: true, idempotentHint: false },
|
|
201250
201509
|
resultSchema: DeleteRecruitingOpinionResultSchema
|
|
@@ -201255,7 +201514,7 @@ var recruitingExtendedTools = [
|
|
|
201255
201514
|
];
|
|
201256
201515
|
|
|
201257
201516
|
// src/huly/operations/recruiting-media.ts
|
|
201258
|
-
var
|
|
201517
|
+
var import_core79 = __toESM(require_lib5(), 1);
|
|
201259
201518
|
|
|
201260
201519
|
// src/huly/operations/recruiting-targets.ts
|
|
201261
201520
|
var candidateObjectClass = toClassRef(String(recruitIds.mixin.Candidate));
|
|
@@ -201524,7 +201783,7 @@ var listRecruitingActivity = (params) => Effect_exports.gen(function* () {
|
|
|
201524
201783
|
}),
|
|
201525
201784
|
{
|
|
201526
201785
|
limit: clampLimit(params.limit),
|
|
201527
|
-
sort: { modifiedOn:
|
|
201786
|
+
sort: { modifiedOn: import_core79.SortingOrder.Descending },
|
|
201528
201787
|
total: true
|
|
201529
201788
|
}
|
|
201530
201789
|
);
|
|
@@ -201536,7 +201795,7 @@ var listRecruitingActivity = (params) => Effect_exports.gen(function* () {
|
|
|
201536
201795
|
});
|
|
201537
201796
|
|
|
201538
201797
|
// src/huly/operations/recruiting-related-issues.ts
|
|
201539
|
-
var
|
|
201798
|
+
var import_core80 = __toESM(require_lib5(), 1);
|
|
201540
201799
|
var issueSummary = (issue2) => ({
|
|
201541
201800
|
id: DocId.make(issue2._id),
|
|
201542
201801
|
class: ObjectClassName.make(issue2._class),
|
|
@@ -201576,7 +201835,7 @@ var listRecruitingRelatedIssues = (params) => Effect_exports.gen(function* () {
|
|
|
201576
201835
|
const issues = yield* target.client.findAll(
|
|
201577
201836
|
tracker.class.Issue,
|
|
201578
201837
|
hulyQuery({ relations: targetRelatedDocument(target) }),
|
|
201579
|
-
{ limit: clampLimit(params.limit), sort: { modifiedOn:
|
|
201838
|
+
{ limit: clampLimit(params.limit), sort: { modifiedOn: import_core80.SortingOrder.Descending }, total: true }
|
|
201580
201839
|
);
|
|
201581
201840
|
return {
|
|
201582
201841
|
target: target.target,
|
|
@@ -201637,13 +201896,13 @@ var removeRecruitingRelatedIssue = (params) => Effect_exports.gen(function* () {
|
|
|
201637
201896
|
});
|
|
201638
201897
|
|
|
201639
201898
|
// src/mcp/tools/recruiting-media.ts
|
|
201640
|
-
var
|
|
201899
|
+
var CATEGORY32 = "recruiting";
|
|
201641
201900
|
var recruitingMediaTools = [
|
|
201642
201901
|
defineTool(
|
|
201643
201902
|
{
|
|
201644
201903
|
name: "list_recruiting_comments",
|
|
201645
201904
|
description: "List comments attached directly to a Recruiting vacancy, candidate, applicant, review, or opinion target. The target locator resolves friendly Recruiting identifiers and returns the resolved target ref.",
|
|
201646
|
-
category:
|
|
201905
|
+
category: CATEGORY32,
|
|
201647
201906
|
inputSchema: listRecruitingCommentsParamsJsonSchema,
|
|
201648
201907
|
resultSchema: ListRecruitingCommentsResultSchema
|
|
201649
201908
|
},
|
|
@@ -201654,7 +201913,7 @@ var recruitingMediaTools = [
|
|
|
201654
201913
|
{
|
|
201655
201914
|
name: "add_recruiting_comment",
|
|
201656
201915
|
description: "Add a Markdown comment directly to a Recruiting vacancy, candidate, applicant, review, or opinion target resolved by the shared target locator.",
|
|
201657
|
-
category:
|
|
201916
|
+
category: CATEGORY32,
|
|
201658
201917
|
inputSchema: addRecruitingCommentParamsJsonSchema,
|
|
201659
201918
|
resultSchema: AddRecruitingCommentResultSchema
|
|
201660
201919
|
},
|
|
@@ -201665,7 +201924,7 @@ var recruitingMediaTools = [
|
|
|
201665
201924
|
{
|
|
201666
201925
|
name: "update_recruiting_comment",
|
|
201667
201926
|
description: "Update one comment attached directly to a Recruiting vacancy, candidate, applicant, review, or opinion. The commentId must belong to the resolved target.",
|
|
201668
|
-
category:
|
|
201927
|
+
category: CATEGORY32,
|
|
201669
201928
|
inputSchema: updateRecruitingCommentParamsJsonSchema,
|
|
201670
201929
|
resultSchema: UpdateRecruitingCommentResultSchema
|
|
201671
201930
|
},
|
|
@@ -201676,7 +201935,7 @@ var recruitingMediaTools = [
|
|
|
201676
201935
|
{
|
|
201677
201936
|
name: "delete_recruiting_comment",
|
|
201678
201937
|
description: "Delete one comment attached directly to a Recruiting vacancy, candidate, applicant, review, or opinion. The commentId must belong to the resolved target.",
|
|
201679
|
-
category:
|
|
201938
|
+
category: CATEGORY32,
|
|
201680
201939
|
inputSchema: deleteRecruitingCommentParamsJsonSchema,
|
|
201681
201940
|
resultSchema: DeleteRecruitingCommentResultSchema
|
|
201682
201941
|
},
|
|
@@ -201687,7 +201946,7 @@ var recruitingMediaTools = [
|
|
|
201687
201946
|
{
|
|
201688
201947
|
name: "list_recruiting_attachments",
|
|
201689
201948
|
description: "List files attached directly to a Recruiting vacancy, candidate, applicant, or opinion target. Review attachments are intentionally unsupported unless the model exposes that collection.",
|
|
201690
|
-
category:
|
|
201949
|
+
category: CATEGORY32,
|
|
201691
201950
|
inputSchema: listRecruitingAttachmentsParamsJsonSchema,
|
|
201692
201951
|
resultSchema: ListRecruitingAttachmentsResultSchema
|
|
201693
201952
|
},
|
|
@@ -201698,7 +201957,7 @@ var recruitingMediaTools = [
|
|
|
201698
201957
|
{
|
|
201699
201958
|
name: "get_recruiting_attachment",
|
|
201700
201959
|
description: "Get one file attached directly to a Recruiting vacancy, candidate, applicant, or opinion. The attachmentId must belong to the resolved target.",
|
|
201701
|
-
category:
|
|
201960
|
+
category: CATEGORY32,
|
|
201702
201961
|
inputSchema: getRecruitingAttachmentParamsJsonSchema,
|
|
201703
201962
|
resultSchema: GetRecruitingAttachmentResultSchema
|
|
201704
201963
|
},
|
|
@@ -201709,7 +201968,7 @@ var recruitingMediaTools = [
|
|
|
201709
201968
|
{
|
|
201710
201969
|
name: "add_recruiting_attachment",
|
|
201711
201970
|
description: "Attach a file to a Recruiting vacancy, candidate, applicant, or opinion target. Provide exactly one of filePath, fileUrl, or data, plus filename and contentType.",
|
|
201712
|
-
category:
|
|
201971
|
+
category: CATEGORY32,
|
|
201713
201972
|
inputSchema: addRecruitingAttachmentParamsJsonSchema,
|
|
201714
201973
|
resultSchema: AddRecruitingAttachmentResultSchema
|
|
201715
201974
|
},
|
|
@@ -201720,7 +201979,7 @@ var recruitingMediaTools = [
|
|
|
201720
201979
|
{
|
|
201721
201980
|
name: "update_recruiting_attachment",
|
|
201722
201981
|
description: "Update description and/or pinned state for a file attached directly to a Recruiting vacancy, candidate, applicant, or opinion. The attachmentId must belong to the resolved target.",
|
|
201723
|
-
category:
|
|
201982
|
+
category: CATEGORY32,
|
|
201724
201983
|
inputSchema: updateRecruitingAttachmentParamsJsonSchema,
|
|
201725
201984
|
resultSchema: UpdateRecruitingAttachmentResultSchema
|
|
201726
201985
|
},
|
|
@@ -201731,7 +201990,7 @@ var recruitingMediaTools = [
|
|
|
201731
201990
|
{
|
|
201732
201991
|
name: "delete_recruiting_attachment",
|
|
201733
201992
|
description: "Delete one file attached directly to a Recruiting vacancy, candidate, applicant, or opinion. The attachmentId must belong to the resolved target.",
|
|
201734
|
-
category:
|
|
201993
|
+
category: CATEGORY32,
|
|
201735
201994
|
inputSchema: deleteRecruitingAttachmentParamsJsonSchema,
|
|
201736
201995
|
resultSchema: DeleteRecruitingAttachmentResultSchema
|
|
201737
201996
|
},
|
|
@@ -201742,7 +202001,7 @@ var recruitingMediaTools = [
|
|
|
201742
202001
|
{
|
|
201743
202002
|
name: "list_recruiting_activity",
|
|
201744
202003
|
description: "List read-only activity messages for a Recruiting vacancy, candidate, applicant, or review target resolved by friendly Recruiting identifiers. Opinions are intentionally unsupported.",
|
|
201745
|
-
category:
|
|
202004
|
+
category: CATEGORY32,
|
|
201746
202005
|
inputSchema: listRecruitingActivityParamsJsonSchema,
|
|
201747
202006
|
resultSchema: ListRecruitingActivityResultSchema
|
|
201748
202007
|
},
|
|
@@ -201753,7 +202012,7 @@ var recruitingMediaTools = [
|
|
|
201753
202012
|
{
|
|
201754
202013
|
name: "list_recruiting_related_issues",
|
|
201755
202014
|
description: "List tracker issues whose Huly Related Issues entries (`Issue.relations`) point at a Recruiting vacancy, candidate, or applicant target.",
|
|
201756
|
-
category:
|
|
202015
|
+
category: CATEGORY32,
|
|
201757
202016
|
inputSchema: listRecruitingRelatedIssuesParamsJsonSchema,
|
|
201758
202017
|
resultSchema: ListRecruitingRelatedIssuesResultSchema
|
|
201759
202018
|
},
|
|
@@ -201764,7 +202023,7 @@ var recruitingMediaTools = [
|
|
|
201764
202023
|
{
|
|
201765
202024
|
name: "add_recruiting_related_issue",
|
|
201766
202025
|
description: "Idempotently add a Huly Related Issues entry (`Issue.relations`) from a tracker issue to a Recruiting vacancy, candidate, or applicant target.",
|
|
201767
|
-
category:
|
|
202026
|
+
category: CATEGORY32,
|
|
201768
202027
|
inputSchema: addRecruitingRelatedIssueParamsJsonSchema,
|
|
201769
202028
|
resultSchema: AddRecruitingRelatedIssueResultSchema
|
|
201770
202029
|
},
|
|
@@ -201775,7 +202034,7 @@ var recruitingMediaTools = [
|
|
|
201775
202034
|
{
|
|
201776
202035
|
name: "remove_recruiting_related_issue",
|
|
201777
202036
|
description: "Idempotently remove a Huly Related Issues entry (`Issue.relations`) from a tracker issue to a Recruiting vacancy, candidate, or applicant target.",
|
|
201778
|
-
category:
|
|
202037
|
+
category: CATEGORY32,
|
|
201779
202038
|
inputSchema: removeRecruitingRelatedIssueParamsJsonSchema,
|
|
201780
202039
|
resultSchema: RemoveRecruitingRelatedIssueResultSchema
|
|
201781
202040
|
},
|
|
@@ -201785,13 +202044,13 @@ var recruitingMediaTools = [
|
|
|
201785
202044
|
];
|
|
201786
202045
|
|
|
201787
202046
|
// src/mcp/tools/recruiting.ts
|
|
201788
|
-
var
|
|
202047
|
+
var CATEGORY33 = "recruiting";
|
|
201789
202048
|
var recruitingTools = [
|
|
201790
202049
|
defineTool(
|
|
201791
202050
|
{
|
|
201792
202051
|
name: "list_recruiting_vacancy_types",
|
|
201793
202052
|
description: "List Huly Recruiting vacancy workflow types. Use the returned type ID or exact type name in create_recruiting_vacancy. Defaults vacancy creation to Huly's Default vacancy type when omitted.",
|
|
201794
|
-
category:
|
|
202053
|
+
category: CATEGORY33,
|
|
201795
202054
|
inputSchema: listRecruitingVacancyTypesParamsJsonSchema,
|
|
201796
202055
|
resultSchema: ListRecruitingVacancyTypesResultSchema
|
|
201797
202056
|
},
|
|
@@ -201802,7 +202061,7 @@ var recruitingTools = [
|
|
|
201802
202061
|
{
|
|
201803
202062
|
name: "list_recruiting_vacancy_statuses",
|
|
201804
202063
|
description: "List applicant workflow statuses for one vacancy. vacancy accepts raw _id, VCN-<number>, bare number, or exact name. Statuses are read from the vacancy's ProjectType; they are workspace data, not hardcoded names.",
|
|
201805
|
-
category:
|
|
202064
|
+
category: CATEGORY33,
|
|
201806
202065
|
inputSchema: listRecruitingVacancyStatusesParamsJsonSchema,
|
|
201807
202066
|
resultSchema: ListRecruitingVacancyStatusesResultSchema
|
|
201808
202067
|
},
|
|
@@ -201813,7 +202072,7 @@ var recruitingTools = [
|
|
|
201813
202072
|
{
|
|
201814
202073
|
name: "list_recruiting_vacancies",
|
|
201815
202074
|
description: "List Recruiting vacancies as stable refs. Supports includeArchived, name query, type ID/name, company organization ID/name, and limit. Vacancy refs include both raw id and derived VCN-<number> identifier.",
|
|
201816
|
-
category:
|
|
202075
|
+
category: CATEGORY33,
|
|
201817
202076
|
inputSchema: listRecruitingVacanciesParamsJsonSchema,
|
|
201818
202077
|
resultSchema: ListRecruitingVacanciesResultSchema
|
|
201819
202078
|
},
|
|
@@ -201824,7 +202083,7 @@ var recruitingTools = [
|
|
|
201824
202083
|
{
|
|
201825
202084
|
name: "get_recruiting_vacancy",
|
|
201826
202085
|
description: "Get one Recruiting vacancy by raw _id, VCN-<number>, bare number, or exact name. Returns descriptions, type, company, location, due date, privacy, archive state, and existing counts.",
|
|
201827
|
-
category:
|
|
202086
|
+
category: CATEGORY33,
|
|
201828
202087
|
inputSchema: getRecruitingVacancyParamsJsonSchema,
|
|
201829
202088
|
resultSchema: VacancyDetailSchema
|
|
201830
202089
|
},
|
|
@@ -201835,7 +202094,7 @@ var recruitingTools = [
|
|
|
201835
202094
|
{
|
|
201836
202095
|
name: "create_recruiting_vacancy",
|
|
201837
202096
|
description: "Create a Recruiting vacancy like the Huly UI: increments the vacancy sequence, stores fullDescription as markdown-backed collaborative markup, defaults members/owners to the current account, and creates vacancy type-data mixin {}.",
|
|
201838
|
-
category:
|
|
202097
|
+
category: CATEGORY33,
|
|
201839
202098
|
inputSchema: createRecruitingVacancyParamsJsonSchema,
|
|
201840
202099
|
resultSchema: RecruitingVacancyMutationResultSchema
|
|
201841
202100
|
},
|
|
@@ -201846,7 +202105,7 @@ var recruitingTools = [
|
|
|
201846
202105
|
{
|
|
201847
202106
|
name: "update_recruiting_vacancy",
|
|
201848
202107
|
description: "Update mutable Recruiting vacancy fields. vacancy accepts raw _id, VCN-<number>, bare number, or exact name. Provide at least one field. Pass null for fullDescription, company, location, or dueTo to clear.",
|
|
201849
|
-
category:
|
|
202108
|
+
category: CATEGORY33,
|
|
201850
202109
|
inputSchema: updateRecruitingVacancyParamsJsonSchema,
|
|
201851
202110
|
resultSchema: RecruitingVacancyMutationResultSchema
|
|
201852
202111
|
},
|
|
@@ -201857,7 +202116,7 @@ var recruitingTools = [
|
|
|
201857
202116
|
{
|
|
201858
202117
|
name: "archive_recruiting_vacancy",
|
|
201859
202118
|
description: "Archive a Recruiting vacancy by raw _id, VCN-<number>, bare number, or exact name.",
|
|
201860
|
-
category:
|
|
202119
|
+
category: CATEGORY33,
|
|
201861
202120
|
inputSchema: archiveRecruitingVacancyParamsJsonSchema,
|
|
201862
202121
|
resultSchema: RecruitingVacancyMutationResultSchema
|
|
201863
202122
|
},
|
|
@@ -201868,7 +202127,7 @@ var recruitingTools = [
|
|
|
201868
202127
|
{
|
|
201869
202128
|
name: "unarchive_recruiting_vacancy",
|
|
201870
202129
|
description: "Unarchive a Recruiting vacancy by raw _id, VCN-<number>, bare number, or exact name.",
|
|
201871
|
-
category:
|
|
202130
|
+
category: CATEGORY33,
|
|
201872
202131
|
inputSchema: unarchiveRecruitingVacancyParamsJsonSchema,
|
|
201873
202132
|
resultSchema: RecruitingVacancyMutationResultSchema
|
|
201874
202133
|
},
|
|
@@ -201879,7 +202138,7 @@ var recruitingTools = [
|
|
|
201879
202138
|
{
|
|
201880
202139
|
name: "list_recruiting_candidates",
|
|
201881
202140
|
description: "List persons that already have the Recruiting Candidate mixin. Use set_recruiting_candidate_profile, add_recruiting_candidate_skill, or create_recruiting_applicant to recruit-enable an existing person.",
|
|
201882
|
-
category:
|
|
202141
|
+
category: CATEGORY33,
|
|
201883
202142
|
inputSchema: listRecruitingCandidatesParamsJsonSchema,
|
|
201884
202143
|
resultSchema: ListRecruitingCandidatesResultSchema
|
|
201885
202144
|
},
|
|
@@ -201890,7 +202149,7 @@ var recruitingTools = [
|
|
|
201890
202149
|
{
|
|
201891
202150
|
name: "get_recruiting_candidate",
|
|
201892
202151
|
description: "Get one Recruiting candidate by person _id, email, or exact display name. Returns profile fields, skills, application/review counts, and primary email when available.",
|
|
201893
|
-
category:
|
|
202152
|
+
category: CATEGORY33,
|
|
201894
202153
|
inputSchema: getRecruitingCandidateParamsJsonSchema,
|
|
201895
202154
|
resultSchema: CandidateDetailSchema
|
|
201896
202155
|
},
|
|
@@ -201901,7 +202160,7 @@ var recruitingTools = [
|
|
|
201901
202160
|
{
|
|
201902
202161
|
name: "set_recruiting_candidate_profile",
|
|
201903
202162
|
description: "Create or update the Recruiting Candidate profile mixin on an existing person. candidate accepts person _id, email, or exact display name. Provide at least one of title, source, onsite, remote.",
|
|
201904
|
-
category:
|
|
202163
|
+
category: CATEGORY33,
|
|
201905
202164
|
inputSchema: setRecruitingCandidateProfileParamsJsonSchema,
|
|
201906
202165
|
resultSchema: RecruitingCandidateMutationResultSchema
|
|
201907
202166
|
},
|
|
@@ -201912,7 +202171,7 @@ var recruitingTools = [
|
|
|
201912
202171
|
{
|
|
201913
202172
|
name: "list_recruiting_skills",
|
|
201914
202173
|
description: "List Recruiting skill tag definitions. Skills are Huly tags scoped to targetClass recruit:mixin:Candidate; use returned titles or IDs with candidate skill tools.",
|
|
201915
|
-
category:
|
|
202174
|
+
category: CATEGORY33,
|
|
201916
202175
|
inputSchema: listRecruitingSkillsParamsJsonSchema,
|
|
201917
202176
|
resultSchema: ListRecruitingSkillsResultSchema
|
|
201918
202177
|
},
|
|
@@ -201923,7 +202182,7 @@ var recruitingTools = [
|
|
|
201923
202182
|
{
|
|
201924
202183
|
name: "list_recruiting_candidate_skills",
|
|
201925
202184
|
description: "List skill tag references attached to one Recruiting candidate by person _id, email, or exact name.",
|
|
201926
|
-
category:
|
|
202185
|
+
category: CATEGORY33,
|
|
201927
202186
|
inputSchema: listRecruitingCandidateSkillsParamsJsonSchema,
|
|
201928
202187
|
resultSchema: ListRecruitingCandidateSkillsResultSchema
|
|
201929
202188
|
},
|
|
@@ -201934,7 +202193,7 @@ var recruitingTools = [
|
|
|
201934
202193
|
{
|
|
201935
202194
|
name: "add_recruiting_candidate_skill",
|
|
201936
202195
|
description: "Attach a skill to a candidate. candidate accepts person _id, email, or exact name. skill accepts title or tag ID; missing skill titles are created. Optional category/color apply only to newly created skill tags.",
|
|
201937
|
-
category:
|
|
202196
|
+
category: CATEGORY33,
|
|
201938
202197
|
inputSchema: addRecruitingCandidateSkillParamsJsonSchema,
|
|
201939
202198
|
resultSchema: RecruitingSkillAttachResultSchema
|
|
201940
202199
|
},
|
|
@@ -201945,7 +202204,7 @@ var recruitingTools = [
|
|
|
201945
202204
|
{
|
|
201946
202205
|
name: "remove_recruiting_candidate_skill",
|
|
201947
202206
|
description: "Detach a Recruiting skill from a candidate by skill title or tag ID. Idempotent when the skill is absent.",
|
|
201948
|
-
category:
|
|
202207
|
+
category: CATEGORY33,
|
|
201949
202208
|
inputSchema: removeRecruitingCandidateSkillParamsJsonSchema,
|
|
201950
202209
|
resultSchema: RecruitingSkillDetachResultSchema
|
|
201951
202210
|
},
|
|
@@ -201956,7 +202215,7 @@ var recruitingTools = [
|
|
|
201956
202215
|
{
|
|
201957
202216
|
name: "list_recruiting_applicants",
|
|
201958
202217
|
description: "List Recruiting applicants. Optionally filter by vacancy, candidate, and status. vacancy accepts raw _id/VCN-number/number/name; candidate accepts person _id/email/exact name.",
|
|
201959
|
-
category:
|
|
202218
|
+
category: CATEGORY33,
|
|
201960
202219
|
inputSchema: listRecruitingApplicantsParamsJsonSchema,
|
|
201961
202220
|
resultSchema: ListRecruitingApplicantsResultSchema
|
|
201962
202221
|
},
|
|
@@ -201967,7 +202226,7 @@ var recruitingTools = [
|
|
|
201967
202226
|
{
|
|
201968
202227
|
name: "get_recruiting_applicant",
|
|
201969
202228
|
description: "Get one Recruiting applicant by raw _id, APP-<number>, or bare number. Pass vacancy and/or candidate when an APP number could be ambiguous.",
|
|
201970
|
-
category:
|
|
202229
|
+
category: CATEGORY33,
|
|
201971
202230
|
inputSchema: getRecruitingApplicantParamsJsonSchema,
|
|
201972
202231
|
resultSchema: ApplicantDetailSchema
|
|
201973
202232
|
},
|
|
@@ -201978,7 +202237,7 @@ var recruitingTools = [
|
|
|
201978
202237
|
{
|
|
201979
202238
|
name: "create_recruiting_applicant",
|
|
201980
202239
|
description: "Create an applicant linking one vacancy and candidate. Rejects duplicate vacancy/candidate pairs, increments APP sequence, resolves status from that vacancy workflow, and recruit-enables the person if needed.",
|
|
201981
|
-
category:
|
|
202240
|
+
category: CATEGORY33,
|
|
201982
202241
|
inputSchema: createRecruitingApplicantParamsJsonSchema,
|
|
201983
202242
|
resultSchema: RecruitingApplicantMutationResultSchema
|
|
201984
202243
|
},
|
|
@@ -201989,7 +202248,7 @@ var recruitingTools = [
|
|
|
201989
202248
|
{
|
|
201990
202249
|
name: "update_recruiting_applicant",
|
|
201991
202250
|
description: "Update applicant status, assignee, startDate, and/or dueDate. applicant accepts raw _id, APP-<number>, or number; vacancy/candidate only disambiguate. Pass null to clear assignee, startDate, or dueDate.",
|
|
201992
|
-
category:
|
|
202251
|
+
category: CATEGORY33,
|
|
201993
202252
|
inputSchema: updateRecruitingApplicantParamsJsonSchema,
|
|
201994
202253
|
resultSchema: RecruitingApplicantMutationResultSchema
|
|
201995
202254
|
},
|
|
@@ -202000,7 +202259,7 @@ var recruitingTools = [
|
|
|
202000
202259
|
{
|
|
202001
202260
|
name: "delete_recruiting_applicant",
|
|
202002
202261
|
description: "Delete an applicant with Huly removeCollection. applicant accepts raw _id, APP-<number>, or number; vacancy/candidate can disambiguate APP numbers.",
|
|
202003
|
-
category:
|
|
202262
|
+
category: CATEGORY33,
|
|
202004
202263
|
inputSchema: deleteRecruitingApplicantParamsJsonSchema,
|
|
202005
202264
|
annotations: { destructiveHint: true, idempotentHint: false },
|
|
202006
202265
|
resultSchema: DeleteRecruitingApplicantResultSchema
|
|
@@ -202013,7 +202272,7 @@ var recruitingTools = [
|
|
|
202013
202272
|
];
|
|
202014
202273
|
|
|
202015
202274
|
// src/huly/operations/related-issue-targets.ts
|
|
202016
|
-
var
|
|
202275
|
+
var import_core81 = __toESM(require_lib5(), 1);
|
|
202017
202276
|
var projectMapById2 = (client, ids3) => Effect_exports.gen(function* () {
|
|
202018
202277
|
const uniqueIds = [...new Set(ids3)];
|
|
202019
202278
|
if (uniqueIds.length === 0) return /* @__PURE__ */ new Map();
|
|
@@ -202025,7 +202284,7 @@ var projectMapById2 = (client, ids3) => Effect_exports.gen(function* () {
|
|
|
202025
202284
|
const entries2 = projects.map((project3) => [project3._id, project3]);
|
|
202026
202285
|
return new Map(entries2);
|
|
202027
202286
|
});
|
|
202028
|
-
var
|
|
202287
|
+
var spaceMapById2 = (client, ids3) => Effect_exports.gen(function* () {
|
|
202029
202288
|
const uniqueIds = [...new Set(ids3)];
|
|
202030
202289
|
if (uniqueIds.length === 0) return /* @__PURE__ */ new Map();
|
|
202031
202290
|
const spaces = yield* client.findAll(
|
|
@@ -202078,7 +202337,7 @@ var renderSingleTarget = (client, target) => Effect_exports.gen(function* () {
|
|
|
202078
202337
|
client,
|
|
202079
202338
|
target.target === void 0 || target.target === null ? [] : [target.target]
|
|
202080
202339
|
);
|
|
202081
|
-
const spaces = yield*
|
|
202340
|
+
const spaces = yield* spaceMapById2(client, target.rule.kind === "spaceRule" ? [target.rule.space] : []);
|
|
202082
202341
|
return targetResult(target, projects, spaces);
|
|
202083
202342
|
});
|
|
202084
202343
|
var listRelatedIssueTargets = (params) => Effect_exports.gen(function* () {
|
|
@@ -202096,14 +202355,14 @@ var listRelatedIssueTargets = (params) => Effect_exports.gen(function* () {
|
|
|
202096
202355
|
const targets = yield* client.findAll(
|
|
202097
202356
|
tracker.class.RelatedIssueTarget,
|
|
202098
202357
|
hulyQuery(query),
|
|
202099
|
-
{ limit: clampLimit(params.limit), sort: { modifiedOn:
|
|
202358
|
+
{ limit: clampLimit(params.limit), sort: { modifiedOn: import_core81.SortingOrder.Descending }, total: true }
|
|
202100
202359
|
);
|
|
202101
202360
|
const targetProjectIds = targets.flatMap(
|
|
202102
202361
|
(target) => target.target === void 0 || target.target === null ? [] : [target.target]
|
|
202103
202362
|
);
|
|
202104
202363
|
const spaceIds = targets.flatMap((target) => target.rule.kind === "spaceRule" ? [target.rule.space] : []);
|
|
202105
202364
|
const projects = yield* projectMapById2(client, targetProjectIds);
|
|
202106
|
-
const spaces = yield*
|
|
202365
|
+
const spaces = yield* spaceMapById2(client, spaceIds);
|
|
202107
202366
|
return {
|
|
202108
202367
|
targets: targets.map((target) => targetResult(target, projects, spaces)),
|
|
202109
202368
|
total: listTotal(targets.total)
|
|
@@ -202116,7 +202375,7 @@ var setRelatedIssueTarget = (params) => Effect_exports.gen(function* () {
|
|
|
202116
202375
|
const space = yield* findSpace(client, { space: params.space, includeArchived: true });
|
|
202117
202376
|
const existing2 = yield* findSpaceRule(client, toRef(space._id));
|
|
202118
202377
|
if (existing2 === void 0) {
|
|
202119
|
-
const targetId = (0,
|
|
202378
|
+
const targetId = (0, import_core81.generateId)();
|
|
202120
202379
|
const data = {
|
|
202121
202380
|
target: targetProject,
|
|
202122
202381
|
rule: { kind: "spaceRule", space: toRef(space._id) }
|
|
@@ -202167,13 +202426,13 @@ var deleteRelatedIssueSpaceTarget = (params) => Effect_exports.gen(function* ()
|
|
|
202167
202426
|
});
|
|
202168
202427
|
|
|
202169
202428
|
// src/mcp/tools/related-issue-targets.ts
|
|
202170
|
-
var
|
|
202429
|
+
var CATEGORY34 = "issues";
|
|
202171
202430
|
var relatedIssueTargetTools = [
|
|
202172
202431
|
defineTool(
|
|
202173
202432
|
{
|
|
202174
202433
|
name: "list_related_issue_targets",
|
|
202175
202434
|
description: "List rules that choose the default destination project for related issues. A spaceRule says related issues from one space default to targetProject. A classRule says related issues for one object class default to targetProject. targetProject is a project identifier, or null for no default destination project.",
|
|
202176
|
-
category:
|
|
202435
|
+
category: CATEGORY34,
|
|
202177
202436
|
inputSchema: listRelatedIssueTargetsParamsJsonSchema,
|
|
202178
202437
|
resultSchema: ListRelatedIssueTargetsResultSchema
|
|
202179
202438
|
},
|
|
@@ -202184,7 +202443,7 @@ var relatedIssueTargetTools = [
|
|
|
202184
202443
|
{
|
|
202185
202444
|
name: "set_related_issue_target",
|
|
202186
202445
|
description: "Set the default destination project for related issues from a space or object class. For space, creates or updates a spaceRule. For objectClass, only updates an existing classRule; this tool never creates classRule targets. Pass targetProject as a project identifier, or null to clear the default destination project.",
|
|
202187
|
-
category:
|
|
202446
|
+
category: CATEGORY34,
|
|
202188
202447
|
inputSchema: setRelatedIssueTargetParamsJsonSchema,
|
|
202189
202448
|
resultSchema: SetRelatedIssueTargetResultSchema
|
|
202190
202449
|
},
|
|
@@ -202195,7 +202454,7 @@ var relatedIssueTargetTools = [
|
|
|
202195
202454
|
{
|
|
202196
202455
|
name: "delete_related_issue_space_target",
|
|
202197
202456
|
description: "Delete the spaceRule that chooses the default destination project for related issues from one space. This only deletes spaceRule targets; classRule deletion is intentionally unsupported because class rules may be model-provided.",
|
|
202198
|
-
category:
|
|
202457
|
+
category: CATEGORY34,
|
|
202199
202458
|
inputSchema: deleteRelatedIssueSpaceTargetParamsJsonSchema,
|
|
202200
202459
|
resultSchema: DeleteRelatedIssueSpaceTargetResultSchema
|
|
202201
202460
|
},
|
|
@@ -202205,83 +202464,10 @@ var relatedIssueTargetTools = [
|
|
|
202205
202464
|
];
|
|
202206
202465
|
|
|
202207
202466
|
// src/huly/operations/sdk-discovery-configurations.ts
|
|
202208
|
-
var
|
|
202209
|
-
|
|
202210
|
-
// src/huly/operations/spaces-read.ts
|
|
202211
|
-
var import_core81 = __toESM(require_lib5(), 1);
|
|
202212
|
-
|
|
202213
|
-
// src/huly/operations/spaces-projections.ts
|
|
202214
|
-
var toPermissionSummary = (permission) => ({
|
|
202215
|
-
id: PermissionId.make(permission._id),
|
|
202216
|
-
label: String(permission.label),
|
|
202217
|
-
description: optionalString(permission.description === void 0 ? void 0 : String(permission.description)),
|
|
202218
|
-
scope: permission.scope,
|
|
202219
|
-
objectClass: optionalObjectClassName(permission.objectClass),
|
|
202220
|
-
txClass: optionalObjectClassName(permission.txClass),
|
|
202221
|
-
forbid: permission.forbid
|
|
202222
|
-
});
|
|
202223
|
-
var descriptorId = (spaceType) => spaceType.descriptor;
|
|
202224
|
-
var toSpaceSummary = (space) => ({
|
|
202225
|
-
id: SpaceId.make(space._id),
|
|
202226
|
-
name: space.name,
|
|
202227
|
-
description: optionalString(space.description),
|
|
202228
|
-
class: ObjectClassName.make(space._class),
|
|
202229
|
-
type: space.type === void 0 ? void 0 : SpaceTypeId.make(space.type),
|
|
202230
|
-
private: space.private,
|
|
202231
|
-
archived: space.archived,
|
|
202232
|
-
autoJoin: space.autoJoin,
|
|
202233
|
-
membersCount: Count.make(space.members.length),
|
|
202234
|
-
ownersCount: Count.make(space.owners?.length ?? 0)
|
|
202235
|
-
});
|
|
202236
|
-
var roleAssignments = (space, spaceType, validRoleIds) => {
|
|
202237
|
-
if (spaceType === void 0) return void 0;
|
|
202238
|
-
const entries2 = spaceRoleAssignmentEntries(space, spaceType, validRoleIds);
|
|
202239
|
-
return entries2.length === 0 ? void 0 : entries2.map(([roleId, members]) => ({
|
|
202240
|
-
roleId: RoleId.make(roleId),
|
|
202241
|
-
members: members.map((member) => AccountUuid.make(member))
|
|
202242
|
-
}));
|
|
202243
|
-
};
|
|
202244
|
-
var toSpaceDetail = (space, spaceType, validRoleIds = /* @__PURE__ */ new Set()) => ({
|
|
202245
|
-
id: SpaceId.make(space._id),
|
|
202246
|
-
name: space.name,
|
|
202247
|
-
description: space.description,
|
|
202248
|
-
class: ObjectClassName.make(space._class),
|
|
202249
|
-
type: space.type === void 0 ? void 0 : SpaceTypeId.make(space.type),
|
|
202250
|
-
private: space.private,
|
|
202251
|
-
archived: space.archived,
|
|
202252
|
-
autoJoin: space.autoJoin,
|
|
202253
|
-
members: space.members.map((member) => AccountUuid.make(member)),
|
|
202254
|
-
owners: (space.owners ?? []).map((owner) => AccountUuid.make(owner)),
|
|
202255
|
-
roleAssignments: roleAssignments(space, spaceType, validRoleIds)
|
|
202256
|
-
});
|
|
202257
|
-
var spaceTypeSummary = (spaceType, descriptor3) => ({
|
|
202258
|
-
id: SpaceTypeId.make(spaceType._id),
|
|
202259
|
-
name: spaceType.name,
|
|
202260
|
-
shortDescription: optionalString(spaceType.shortDescription),
|
|
202261
|
-
descriptor: spaceType.descriptor,
|
|
202262
|
-
baseClass: optionalObjectClassName(descriptor3?.baseClass),
|
|
202263
|
-
targetClass: ObjectClassName.make(spaceType.targetClass),
|
|
202264
|
-
defaultMembers: (spaceType.members ?? []).map((member) => AccountUuid.make(member)),
|
|
202265
|
-
autoJoin: spaceType.autoJoin,
|
|
202266
|
-
rolesCount: Count.make(spaceType.roles)
|
|
202267
|
-
});
|
|
202268
|
-
var roleSummary = (role, permissionsById) => ({
|
|
202269
|
-
id: RoleId.make(role._id),
|
|
202270
|
-
name: role.name,
|
|
202271
|
-
permissions: role.permissions.map((permission) => PermissionId.make(permission)),
|
|
202272
|
-
permissionLabels: role.permissions.map((permissionId) => permissionsById.get(permissionId)).filter((permission) => permission !== void 0).map((permission) => String(permission.label))
|
|
202273
|
-
});
|
|
202274
|
-
var permissionSearchMatches = (permission, search) => {
|
|
202275
|
-
if (search === void 0) return true;
|
|
202276
|
-
const lower = search.toLowerCase();
|
|
202277
|
-
return [
|
|
202278
|
-
permission._id,
|
|
202279
|
-
String(permission.label),
|
|
202280
|
-
permission.description === void 0 ? "" : String(permission.description)
|
|
202281
|
-
].some((value3) => value3.toLowerCase().includes(lower));
|
|
202282
|
-
};
|
|
202467
|
+
var import_core83 = __toESM(require_lib5(), 1);
|
|
202283
202468
|
|
|
202284
202469
|
// src/huly/operations/spaces-read.ts
|
|
202470
|
+
var import_core82 = __toESM(require_lib5(), 1);
|
|
202285
202471
|
var findSpaceType = (client, identifier2) => Effect_exports.gen(function* () {
|
|
202286
202472
|
const byId = yield* client.findOne(
|
|
202287
202473
|
core.class.SpaceType,
|
|
@@ -202291,7 +202477,7 @@ var findSpaceType = (client, identifier2) => Effect_exports.gen(function* () {
|
|
|
202291
202477
|
const byName = yield* client.findAll(
|
|
202292
202478
|
core.class.SpaceType,
|
|
202293
202479
|
hulyQuery({ name: identifier2 }),
|
|
202294
|
-
{ limit: 10, sort: { name:
|
|
202480
|
+
{ limit: 10, sort: { name: import_core82.SortingOrder.Ascending } }
|
|
202295
202481
|
);
|
|
202296
202482
|
if (byName.length === 0) {
|
|
202297
202483
|
return yield* new SpaceTypeNotFoundError({ identifier: NonEmptyString2.make(identifier2) });
|
|
@@ -202326,7 +202512,7 @@ var listSpaces = (params) => Effect_exports.gen(function* () {
|
|
|
202326
202512
|
const spaces = yield* client.findAll(
|
|
202327
202513
|
spaceClass,
|
|
202328
202514
|
hulyQuery(query),
|
|
202329
|
-
{ limit, sort: { name:
|
|
202515
|
+
{ limit, sort: { name: import_core82.SortingOrder.Ascending }, total: true }
|
|
202330
202516
|
);
|
|
202331
202517
|
return {
|
|
202332
202518
|
spaces: spaces.map(toSpaceSummary),
|
|
@@ -202368,7 +202554,7 @@ var listSpaceTypes = (params) => Effect_exports.gen(function* () {
|
|
|
202368
202554
|
const spaceTypes = yield* client.findAll(
|
|
202369
202555
|
core.class.SpaceType,
|
|
202370
202556
|
hulyQuery(query),
|
|
202371
|
-
{ limit, sort: { name:
|
|
202557
|
+
{ limit, sort: { name: import_core82.SortingOrder.Ascending }, total: true }
|
|
202372
202558
|
);
|
|
202373
202559
|
const descriptorIds = sortStrings([...new Set(spaceTypes.map(descriptorId))]);
|
|
202374
202560
|
const descriptors = descriptorIds.length === 0 ? [] : yield* client.findAll(
|
|
@@ -202392,7 +202578,7 @@ var getSpaceType = (params) => Effect_exports.gen(function* () {
|
|
|
202392
202578
|
const roles = yield* client.findAll(
|
|
202393
202579
|
core.class.Role,
|
|
202394
202580
|
hulyQuery({ attachedTo: spaceType._id }),
|
|
202395
|
-
{ limit: clampLimit(void 0), sort: { name:
|
|
202581
|
+
{ limit: clampLimit(void 0), sort: { name: import_core82.SortingOrder.Ascending } }
|
|
202396
202582
|
);
|
|
202397
202583
|
const permissionIds = sortStrings([
|
|
202398
202584
|
.../* @__PURE__ */ new Set([
|
|
@@ -202428,7 +202614,7 @@ var listSpacePermissions = (params) => Effect_exports.gen(function* () {
|
|
|
202428
202614
|
const permissions = yield* client.findAll(
|
|
202429
202615
|
core.class.Permission,
|
|
202430
202616
|
hulyQuery(query),
|
|
202431
|
-
{ sort: { label:
|
|
202617
|
+
{ sort: { label: import_core82.SortingOrder.Ascending } }
|
|
202432
202618
|
);
|
|
202433
202619
|
const filtered = permissions.filter((permission) => permissionSearchMatches(permission, params.search));
|
|
202434
202620
|
const limited = filtered.slice(0, clampLimit(params.limit));
|
|
@@ -202480,7 +202666,7 @@ var listHulyPluginConfigurations = () => Effect_exports.gen(function* () {
|
|
|
202480
202666
|
const configs = yield* client.findAll(
|
|
202481
202667
|
core.class.PluginConfiguration,
|
|
202482
202668
|
hulyQuery({}),
|
|
202483
|
-
{ sort: { pluginId:
|
|
202669
|
+
{ sort: { pluginId: import_core83.SortingOrder.Ascending } }
|
|
202484
202670
|
);
|
|
202485
202671
|
const pluginConfigurations = configs.map(toPluginConfigurationSummary);
|
|
202486
202672
|
return {
|
|
@@ -202493,7 +202679,7 @@ var listHulyDomainIndexConfigurations = () => Effect_exports.gen(function* () {
|
|
|
202493
202679
|
const configs = yield* client.findAll(
|
|
202494
202680
|
core.class.DomainIndexConfiguration,
|
|
202495
202681
|
hulyQuery({}),
|
|
202496
|
-
{ sort: { domain:
|
|
202682
|
+
{ sort: { domain: import_core83.SortingOrder.Ascending } }
|
|
202497
202683
|
);
|
|
202498
202684
|
const domainIndexConfigurations = configs.map(toDomainIndexConfigurationSummary);
|
|
202499
202685
|
return {
|
|
@@ -202506,12 +202692,12 @@ var listHulySequences = () => Effect_exports.gen(function* () {
|
|
|
202506
202692
|
const sequences = yield* client.findAll(
|
|
202507
202693
|
core.class.Sequence,
|
|
202508
202694
|
hulyQuery({}),
|
|
202509
|
-
{ sort: { _id:
|
|
202695
|
+
{ sort: { _id: import_core83.SortingOrder.Ascending } }
|
|
202510
202696
|
);
|
|
202511
202697
|
const customSequences = yield* client.findAll(
|
|
202512
202698
|
core.class.CustomSequence,
|
|
202513
202699
|
hulyQuery({}),
|
|
202514
|
-
{ sort: { _id:
|
|
202700
|
+
{ sort: { _id: import_core83.SortingOrder.Ascending } }
|
|
202515
202701
|
);
|
|
202516
202702
|
const merged = new Map([
|
|
202517
202703
|
...sequences.map((sequence) => [sequenceKey(sequence), sequence]),
|
|
@@ -202548,7 +202734,7 @@ var describeHulySpaceTypeCapabilities = (params) => Effect_exports.gen(function*
|
|
|
202548
202734
|
});
|
|
202549
202735
|
|
|
202550
202736
|
// src/huly/operations/sdk-discovery.ts
|
|
202551
|
-
var
|
|
202737
|
+
var import_core84 = __toESM(require_lib5(), 1);
|
|
202552
202738
|
var MAX_ANCESTOR_DEPTH = 32;
|
|
202553
202739
|
var classRef3 = core.class.Class;
|
|
202554
202740
|
var includesQuery = (text, query) => Option_exports.isNone(query) || text.includes(query.value.toLowerCase());
|
|
@@ -202591,7 +202777,7 @@ var fetchClasses = (client, params) => {
|
|
|
202591
202777
|
return client.findAll(
|
|
202592
202778
|
classRef3,
|
|
202593
202779
|
hulyQuery(query),
|
|
202594
|
-
{ sort: { _id:
|
|
202780
|
+
{ sort: { _id: import_core84.SortingOrder.Ascending } }
|
|
202595
202781
|
);
|
|
202596
202782
|
};
|
|
202597
202783
|
var fetchAttributes = (client, params) => {
|
|
@@ -202602,7 +202788,7 @@ var fetchAttributes = (client, params) => {
|
|
|
202602
202788
|
return client.findAll(
|
|
202603
202789
|
core.class.Attribute,
|
|
202604
202790
|
hulyQuery(query),
|
|
202605
|
-
{ sort: { name:
|
|
202791
|
+
{ sort: { name: import_core84.SortingOrder.Ascending } }
|
|
202606
202792
|
);
|
|
202607
202793
|
};
|
|
202608
202794
|
var resolveClass = (client, classId) => Effect_exports.gen(function* () {
|
|
@@ -202653,7 +202839,7 @@ var resolveAncestors = (client, cls) => Effect_exports.gen(function* () {
|
|
|
202653
202839
|
var attributesForClasses = (client, classIds) => classIds.length === 0 ? Effect_exports.succeed([]) : client.findAll(
|
|
202654
202840
|
core.class.Attribute,
|
|
202655
202841
|
hulyQuery({ attributeOf: { $in: classIds.map(toRef) } }),
|
|
202656
|
-
{ sort: { name:
|
|
202842
|
+
{ sort: { name: import_core84.SortingOrder.Ascending } }
|
|
202657
202843
|
);
|
|
202658
202844
|
var listHulyClasses = (params) => Effect_exports.gen(function* () {
|
|
202659
202845
|
const client = yield* HulyClient;
|
|
@@ -202719,20 +202905,20 @@ var listHulyEnums = (params) => Effect_exports.gen(function* () {
|
|
|
202719
202905
|
const rawEnums = yield* client.findAll(
|
|
202720
202906
|
core.class.Enum,
|
|
202721
202907
|
hulyQuery(query),
|
|
202722
|
-
{ sort: { name:
|
|
202908
|
+
{ sort: { name: import_core84.SortingOrder.Ascending } }
|
|
202723
202909
|
);
|
|
202724
202910
|
const enums = rawEnums.map(toEnumSummary).filter((summary5) => includesQuery(enumSearchText(summary5), queryText)).slice(0, limit);
|
|
202725
202911
|
return { enums, total: HulyDiscoveryCount.make(enums.length) };
|
|
202726
202912
|
});
|
|
202727
202913
|
|
|
202728
202914
|
// src/mcp/tools/sdk-discovery.ts
|
|
202729
|
-
var
|
|
202915
|
+
var CATEGORY35 = "sdk-discovery";
|
|
202730
202916
|
var sdkDiscoveryTools = [
|
|
202731
202917
|
defineTool(
|
|
202732
202918
|
{
|
|
202733
202919
|
name: "list_huly_classes",
|
|
202734
202920
|
description: "Discover Huly model class, interface, and mixin IDs visible in this workspace. Use this before raw-object, generic association, custom field, or model-backed work when you need exact class IDs instead of guessing.",
|
|
202735
|
-
category:
|
|
202921
|
+
category: CATEGORY35,
|
|
202736
202922
|
inputSchema: listHulyClassesParamsJsonSchema,
|
|
202737
202923
|
resultSchema: ListHulyClassesResultSchema
|
|
202738
202924
|
},
|
|
@@ -202743,7 +202929,7 @@ var sdkDiscoveryTools = [
|
|
|
202743
202929
|
{
|
|
202744
202930
|
name: "get_huly_class",
|
|
202745
202931
|
description: "Read one Huly class/interface/mixin by exact ID and return its inheritance chain plus model attributes. Use this when you need fields, ref targets, enum IDs, or hints about purpose-built MCP tool categories for the class.",
|
|
202746
|
-
category:
|
|
202932
|
+
category: CATEGORY35,
|
|
202747
202933
|
inputSchema: getHulyClassParamsJsonSchema,
|
|
202748
202934
|
resultSchema: GetHulyClassResultSchema
|
|
202749
202935
|
},
|
|
@@ -202754,7 +202940,7 @@ var sdkDiscoveryTools = [
|
|
|
202754
202940
|
{
|
|
202755
202941
|
name: "list_huly_attributes",
|
|
202756
202942
|
description: "Discover Huly model attributes across the workspace or directly on one class/mixin. Returns attribute IDs, owner classes, labels, type families, ref targets, enum IDs, and custom-field markers.",
|
|
202757
|
-
category:
|
|
202943
|
+
category: CATEGORY35,
|
|
202758
202944
|
inputSchema: listHulyAttributesParamsJsonSchema,
|
|
202759
202945
|
resultSchema: ListHulyAttributesResultSchema
|
|
202760
202946
|
},
|
|
@@ -202765,7 +202951,7 @@ var sdkDiscoveryTools = [
|
|
|
202765
202951
|
{
|
|
202766
202952
|
name: "list_huly_enums",
|
|
202767
202953
|
description: "Discover Huly enum model documents and their valid values. Use enum IDs from get_huly_class or list_huly_attributes to inspect allowed enum values before writing or interpreting enum fields.",
|
|
202768
|
-
category:
|
|
202954
|
+
category: CATEGORY35,
|
|
202769
202955
|
inputSchema: listHulyEnumsParamsJsonSchema,
|
|
202770
202956
|
resultSchema: ListHulyEnumsResultSchema
|
|
202771
202957
|
},
|
|
@@ -202776,7 +202962,7 @@ var sdkDiscoveryTools = [
|
|
|
202776
202962
|
{
|
|
202777
202963
|
name: "list_huly_plugin_configurations",
|
|
202778
202964
|
description: "List read-only Huly plugin configuration records from core.class.PluginConfiguration. Returns plugin id, label, enabled/beta flags, and transaction count so an LLM can see installed model plugin gates without mutating configuration.",
|
|
202779
|
-
category:
|
|
202965
|
+
category: CATEGORY35,
|
|
202780
202966
|
inputSchema: listHulyPluginConfigurationsParamsJsonSchema,
|
|
202781
202967
|
resultSchema: ListHulyPluginConfigurationsResultSchema
|
|
202782
202968
|
},
|
|
@@ -202787,7 +202973,7 @@ var sdkDiscoveryTools = [
|
|
|
202787
202973
|
{
|
|
202788
202974
|
name: "list_huly_domain_index_configurations",
|
|
202789
202975
|
description: "List read-only Huly domain index configuration records from core.class.DomainIndexConfiguration. Returns each domain plus disabled, skip, and enabled-index summaries while preserving SDK-open index/filter/config payloads as typed metadata.",
|
|
202790
|
-
category:
|
|
202976
|
+
category: CATEGORY35,
|
|
202791
202977
|
inputSchema: listHulyDomainIndexConfigurationsParamsJsonSchema,
|
|
202792
202978
|
resultSchema: ListHulyDomainIndexConfigurationsResultSchema
|
|
202793
202979
|
},
|
|
@@ -202798,7 +202984,7 @@ var sdkDiscoveryTools = [
|
|
|
202798
202984
|
{
|
|
202799
202985
|
name: "list_huly_sequences",
|
|
202800
202986
|
description: "List read-only Huly sequence counters from core.class.Sequence and core.class.CustomSequence. Returns sequence id, attached class id, current non-negative integer value, and custom prefix when present.",
|
|
202801
|
-
category:
|
|
202987
|
+
category: CATEGORY35,
|
|
202802
202988
|
inputSchema: listHulySequencesParamsJsonSchema,
|
|
202803
202989
|
resultSchema: ListHulySequencesResultSchema
|
|
202804
202990
|
},
|
|
@@ -202809,7 +202995,7 @@ var sdkDiscoveryTools = [
|
|
|
202809
202995
|
{
|
|
202810
202996
|
name: "describe_huly_space_type_capabilities",
|
|
202811
202997
|
description: "Describe one Huly SpaceType by id or exact name in a single read-only call. Returns descriptor metadata, base/target classes, roles, role permissions, default members, autoJoin, and the stored role-assignment shape.",
|
|
202812
|
-
category:
|
|
202998
|
+
category: CATEGORY35,
|
|
202813
202999
|
inputSchema: describeHulySpaceTypeCapabilitiesParamsJsonSchema,
|
|
202814
203000
|
resultSchema: HulySpaceTypeCapabilitiesSchema
|
|
202815
203001
|
},
|
|
@@ -202850,13 +203036,13 @@ var fulltextSearch = (params) => Effect_exports.gen(function* () {
|
|
|
202850
203036
|
});
|
|
202851
203037
|
|
|
202852
203038
|
// src/mcp/tools/search.ts
|
|
202853
|
-
var
|
|
203039
|
+
var CATEGORY36 = "search";
|
|
202854
203040
|
var searchTools = [
|
|
202855
203041
|
defineTool(
|
|
202856
203042
|
{
|
|
202857
203043
|
name: "fulltext_search",
|
|
202858
203044
|
description: "Perform a global fulltext search across all Huly content. Searches issues, documents, messages, and other indexed content. Returns matching items sorted by relevance (newest first).",
|
|
202859
|
-
category:
|
|
203045
|
+
category: CATEGORY36,
|
|
202860
203046
|
inputSchema: fulltextSearchParamsJsonSchema,
|
|
202861
203047
|
resultSchema: FulltextSearchResultSchema
|
|
202862
203048
|
},
|
|
@@ -203021,13 +203207,13 @@ var addSpaceRoleMembers = (params) => mutateSpaceRoleMembers(params, mergeUnique
|
|
|
203021
203207
|
var removeSpaceRoleMembers = (params) => mutateSpaceRoleMembers(params, removeAccountUuids);
|
|
203022
203208
|
|
|
203023
203209
|
// src/mcp/tools/spaces.ts
|
|
203024
|
-
var
|
|
203210
|
+
var CATEGORY37 = "spaces";
|
|
203025
203211
|
var spaceTools = [
|
|
203026
203212
|
defineTool(
|
|
203027
203213
|
{
|
|
203028
203214
|
name: "list_spaces",
|
|
203029
203215
|
description: `List generic Huly spaces across modules. When includeArchived is omitted, includeArchived=${DEFAULT_INCLUDE_ARCHIVED}. Returns raw space id, class, type, privacy, archived, autoJoin, member count, and owner count so module-specific tools can reuse the result.`,
|
|
203030
|
-
category:
|
|
203216
|
+
category: CATEGORY37,
|
|
203031
203217
|
inputSchema: listSpacesParamsJsonSchema,
|
|
203032
203218
|
resultSchema: ListSpacesResultSchema
|
|
203033
203219
|
},
|
|
@@ -203038,7 +203224,7 @@ var spaceTools = [
|
|
|
203038
203224
|
{
|
|
203039
203225
|
name: "get_space",
|
|
203040
203226
|
description: "Get one generic Huly space by raw space _id or exact space name. Resolution tries _id first, then exact name. If a name matches multiple spaces, pass class and/or type to narrow; ambiguous errors include matching ids/classes/types.",
|
|
203041
|
-
category:
|
|
203227
|
+
category: CATEGORY37,
|
|
203042
203228
|
inputSchema: getSpaceParamsJsonSchema,
|
|
203043
203229
|
resultSchema: GetSpaceResultSchema
|
|
203044
203230
|
},
|
|
@@ -203049,7 +203235,7 @@ var spaceTools = [
|
|
|
203049
203235
|
{
|
|
203050
203236
|
name: "list_space_types",
|
|
203051
203237
|
description: "List configured Huly SpaceType records. Returns descriptor id, base class, target class, default members, autoJoin, and role count for discovering typed-space configuration.",
|
|
203052
|
-
category:
|
|
203238
|
+
category: CATEGORY37,
|
|
203053
203239
|
inputSchema: listSpaceTypesParamsJsonSchema,
|
|
203054
203240
|
resultSchema: ListSpaceTypesResultSchema
|
|
203055
203241
|
},
|
|
@@ -203060,7 +203246,7 @@ var spaceTools = [
|
|
|
203060
203246
|
{
|
|
203061
203247
|
name: "get_space_type",
|
|
203062
203248
|
description: "Get one Huly SpaceType by raw SpaceType _id or exact name, including descriptor metadata, role definitions, role permission ids/labels, and available permissions.",
|
|
203063
|
-
category:
|
|
203249
|
+
category: CATEGORY37,
|
|
203064
203250
|
inputSchema: getSpaceTypeParamsJsonSchema,
|
|
203065
203251
|
resultSchema: GetSpaceTypeResultSchema
|
|
203066
203252
|
},
|
|
@@ -203071,7 +203257,7 @@ var spaceTools = [
|
|
|
203071
203257
|
{
|
|
203072
203258
|
name: "list_space_permissions",
|
|
203073
203259
|
description: "List core Huly Permission records for space/workspace access control discovery. Filter by scope, objectClass, or search text. This is read-only and does not assign permissions.",
|
|
203074
|
-
category:
|
|
203260
|
+
category: CATEGORY37,
|
|
203075
203261
|
inputSchema: listSpacePermissionsParamsJsonSchema,
|
|
203076
203262
|
resultSchema: ListSpacePermissionsResultSchema
|
|
203077
203263
|
},
|
|
@@ -203082,7 +203268,7 @@ var spaceTools = [
|
|
|
203082
203268
|
{
|
|
203083
203269
|
name: "update_space",
|
|
203084
203270
|
description: "Update safe common metadata on an existing Huly space: name, description, private, archived, and autoJoin. Does not create/delete spaces or mutate module-specific required fields.",
|
|
203085
|
-
category:
|
|
203271
|
+
category: CATEGORY37,
|
|
203086
203272
|
inputSchema: updateSpaceParamsJsonSchema,
|
|
203087
203273
|
resultSchema: UpdateSpaceResultSchema
|
|
203088
203274
|
},
|
|
@@ -203093,7 +203279,7 @@ var spaceTools = [
|
|
|
203093
203279
|
{
|
|
203094
203280
|
name: "add_space_members",
|
|
203095
203281
|
description: "Idempotently add members to an existing Huly space. Members accept account UUID, exact email, or exact person display name and resolve to Huly account UUIDs before replacing the full members array.",
|
|
203096
|
-
category:
|
|
203282
|
+
category: CATEGORY37,
|
|
203097
203283
|
inputSchema: spaceMemberMutationParamsJsonSchema,
|
|
203098
203284
|
resultSchema: AddSpaceMembersResultSchema
|
|
203099
203285
|
},
|
|
@@ -203104,7 +203290,7 @@ var spaceTools = [
|
|
|
203104
203290
|
{
|
|
203105
203291
|
name: "remove_space_members",
|
|
203106
203292
|
description: "Idempotently remove members from an existing Huly space. Members accept account UUID, exact email, or exact person display name and resolve to Huly account UUIDs before replacing the full members array.",
|
|
203107
|
-
category:
|
|
203293
|
+
category: CATEGORY37,
|
|
203108
203294
|
inputSchema: spaceMemberMutationParamsJsonSchema,
|
|
203109
203295
|
resultSchema: RemoveSpaceMembersResultSchema
|
|
203110
203296
|
},
|
|
@@ -203115,7 +203301,7 @@ var spaceTools = [
|
|
|
203115
203301
|
{
|
|
203116
203302
|
name: "set_space_owners",
|
|
203117
203303
|
description: "Replace owners on an existing Huly space. Owners accept account UUID, exact email, or exact person display name. By default, owners are also ensured in members.",
|
|
203118
|
-
category:
|
|
203304
|
+
category: CATEGORY37,
|
|
203119
203305
|
inputSchema: setSpaceOwnersParamsJsonSchema,
|
|
203120
203306
|
resultSchema: SetSpaceOwnersResultSchema
|
|
203121
203307
|
},
|
|
@@ -203126,7 +203312,7 @@ var spaceTools = [
|
|
|
203126
203312
|
{
|
|
203127
203313
|
name: "set_space_role_members",
|
|
203128
203314
|
description: "Replace members assigned to one role on a typed Huly space while preserving all other role assignments. Role accepts a raw role _id or exact role name from the space's SpaceType. Members accept account UUID, exact email, or exact person display name; pass members=[] to clear this role.",
|
|
203129
|
-
category:
|
|
203315
|
+
category: CATEGORY37,
|
|
203130
203316
|
inputSchema: setSpaceRoleMembersParamsJsonSchema,
|
|
203131
203317
|
annotations: { idempotentHint: true, destructiveHint: false },
|
|
203132
203318
|
resultSchema: SetSpaceRoleMembersResultSchema
|
|
@@ -203138,7 +203324,7 @@ var spaceTools = [
|
|
|
203138
203324
|
{
|
|
203139
203325
|
name: "add_space_role_members",
|
|
203140
203326
|
description: "Idempotently add members to one role on a typed Huly space while preserving all other role assignments. Role accepts a raw role _id or exact role name from the space's SpaceType. Members accept account UUID, exact email, or exact person display name.",
|
|
203141
|
-
category:
|
|
203327
|
+
category: CATEGORY37,
|
|
203142
203328
|
inputSchema: spaceRoleMemberMutationParamsJsonSchema,
|
|
203143
203329
|
annotations: { idempotentHint: true, destructiveHint: false },
|
|
203144
203330
|
resultSchema: AddSpaceRoleMembersResultSchema
|
|
@@ -203150,7 +203336,7 @@ var spaceTools = [
|
|
|
203150
203336
|
{
|
|
203151
203337
|
name: "remove_space_role_members",
|
|
203152
203338
|
description: "Idempotently remove members from one role on a typed Huly space while preserving all other role assignments. Role accepts a raw role _id or exact role name from the space's SpaceType. Members accept account UUID, exact email, or exact person display name.",
|
|
203153
|
-
category:
|
|
203339
|
+
category: CATEGORY37,
|
|
203154
203340
|
inputSchema: spaceRoleMemberMutationParamsJsonSchema,
|
|
203155
203341
|
annotations: { idempotentHint: true, destructiveHint: false },
|
|
203156
203342
|
resultSchema: RemoveSpaceRoleMembersResultSchema
|
|
@@ -203176,13 +203362,13 @@ var uploadFile = (params) => Effect_exports.gen(function* () {
|
|
|
203176
203362
|
});
|
|
203177
203363
|
|
|
203178
203364
|
// src/mcp/tools/storage.ts
|
|
203179
|
-
var
|
|
203365
|
+
var CATEGORY38 = "storage";
|
|
203180
203366
|
var storageTools = [
|
|
203181
203367
|
defineStorageTool(
|
|
203182
203368
|
{
|
|
203183
203369
|
name: "upload_file",
|
|
203184
203370
|
description: "Upload a file to Huly storage. Provide ONE of: filePath (local file - preferred), fileUrl (fetch from URL), or data (base64 - for small files only). Returns blob ID and URL for referencing the file.",
|
|
203185
|
-
category:
|
|
203371
|
+
category: CATEGORY38,
|
|
203186
203372
|
inputSchema: uploadFileParamsJsonSchema,
|
|
203187
203373
|
resultSchema: UploadFileResultSchema
|
|
203188
203374
|
},
|
|
@@ -203192,7 +203378,7 @@ var storageTools = [
|
|
|
203192
203378
|
];
|
|
203193
203379
|
|
|
203194
203380
|
// src/huly/operations/tag-categories.ts
|
|
203195
|
-
var
|
|
203381
|
+
var import_core85 = __toESM(require_lib5(), 1);
|
|
203196
203382
|
var defaultTargetClassRef = toRef(DEFAULT_TAG_CATEGORY_TARGET_CLASS);
|
|
203197
203383
|
var findCategoryByIdOrLabel = (client, idOrLabel) => Effect_exports.gen(function* () {
|
|
203198
203384
|
const cat = (yield* client.findOne(
|
|
@@ -203230,7 +203416,7 @@ var listTagCategories = (params) => Effect_exports.gen(function* () {
|
|
|
203230
203416
|
query,
|
|
203231
203417
|
{
|
|
203232
203418
|
limit,
|
|
203233
|
-
sort: { modifiedOn:
|
|
203419
|
+
sort: { modifiedOn: import_core85.SortingOrder.Descending }
|
|
203234
203420
|
}
|
|
203235
203421
|
);
|
|
203236
203422
|
return categories.map(toSummary);
|
|
@@ -203245,7 +203431,7 @@ var createTagCategory = (params) => Effect_exports.gen(function* () {
|
|
|
203245
203431
|
if (existing !== void 0) {
|
|
203246
203432
|
return { id: TagCategoryId.make(existing._id), label: existing.label, created: false };
|
|
203247
203433
|
}
|
|
203248
|
-
const catId = (0,
|
|
203434
|
+
const catId = (0, import_core85.generateId)();
|
|
203249
203435
|
const catData = {
|
|
203250
203436
|
// Asset is a branded string type (Metadata<URL>) with no runtime constructor.
|
|
203251
203437
|
// Empty string is the "no icon" sentinel; Huly UI renders a default icon.
|
|
@@ -203296,13 +203482,13 @@ var deleteTagCategory = (params) => Effect_exports.gen(function* () {
|
|
|
203296
203482
|
});
|
|
203297
203483
|
|
|
203298
203484
|
// src/mcp/tools/tag-categories.ts
|
|
203299
|
-
var
|
|
203485
|
+
var CATEGORY39 = "tag-categories";
|
|
203300
203486
|
var tagCategoryTools = [
|
|
203301
203487
|
defineTool(
|
|
203302
203488
|
{
|
|
203303
203489
|
name: "list_tag_categories",
|
|
203304
203490
|
description: "List tag/label categories in the workspace. Categories group labels (e.g., 'Priority Labels', 'Type Labels'). Omit targetClass to include all classes.",
|
|
203305
|
-
category:
|
|
203491
|
+
category: CATEGORY39,
|
|
203306
203492
|
inputSchema: listTagCategoriesParamsJsonSchema,
|
|
203307
203493
|
resultSchema: ListTagCategoriesResultSchema
|
|
203308
203494
|
},
|
|
@@ -203313,7 +203499,7 @@ var tagCategoryTools = [
|
|
|
203313
203499
|
{
|
|
203314
203500
|
name: "create_tag_category",
|
|
203315
203501
|
description: "Create a new tag/label category. Idempotent: returns existing category if one with the same label and targetClass already exists (created=false). Defaults targetClass to tracker issues.",
|
|
203316
|
-
category:
|
|
203502
|
+
category: CATEGORY39,
|
|
203317
203503
|
inputSchema: createTagCategoryParamsJsonSchema,
|
|
203318
203504
|
resultSchema: CreateTagCategoryResultSchema
|
|
203319
203505
|
},
|
|
@@ -203324,7 +203510,7 @@ var tagCategoryTools = [
|
|
|
203324
203510
|
{
|
|
203325
203511
|
name: "update_tag_category",
|
|
203326
203512
|
description: "Update a tag/label category. Accepts category ID or label name. Only provided fields are modified.",
|
|
203327
|
-
category:
|
|
203513
|
+
category: CATEGORY39,
|
|
203328
203514
|
inputSchema: updateTagCategoryParamsJsonSchema,
|
|
203329
203515
|
resultSchema: UpdateTagCategoryResultSchema
|
|
203330
203516
|
},
|
|
@@ -203335,7 +203521,7 @@ var tagCategoryTools = [
|
|
|
203335
203521
|
{
|
|
203336
203522
|
name: "delete_tag_category",
|
|
203337
203523
|
description: "Permanently delete a tag/label category. Accepts category ID or label name. Labels in this category will be orphaned (not deleted). This action cannot be undone.",
|
|
203338
|
-
category:
|
|
203524
|
+
category: CATEGORY39,
|
|
203339
203525
|
inputSchema: deleteTagCategoryParamsJsonSchema,
|
|
203340
203526
|
resultSchema: DeleteTagCategoryResultSchema
|
|
203341
203527
|
},
|
|
@@ -203345,13 +203531,13 @@ var tagCategoryTools = [
|
|
|
203345
203531
|
];
|
|
203346
203532
|
|
|
203347
203533
|
// src/mcp/tools/tags.ts
|
|
203348
|
-
var
|
|
203534
|
+
var CATEGORY40 = "tags";
|
|
203349
203535
|
var tagTools = [
|
|
203350
203536
|
defineTool(
|
|
203351
203537
|
{
|
|
203352
203538
|
name: "list_tags",
|
|
203353
203539
|
description: "List generic Huly tag definitions for one SDK target class. Use this for SDK-level tags such as recruiting skills or document labels. For Tracker issue labels, prefer list_labels.",
|
|
203354
|
-
category:
|
|
203540
|
+
category: CATEGORY40,
|
|
203355
203541
|
inputSchema: listTagsParamsJsonSchema,
|
|
203356
203542
|
resultSchema: ListTagsResultSchema
|
|
203357
203543
|
},
|
|
@@ -203362,7 +203548,7 @@ var tagTools = [
|
|
|
203362
203548
|
{
|
|
203363
203549
|
name: "create_tag",
|
|
203364
203550
|
description: "Create a generic Huly tag definition for one targetClass. Idempotent by targetClass + title. This exposes the SDK tags model; for Tracker issue labels, prefer create_label.",
|
|
203365
|
-
category:
|
|
203551
|
+
category: CATEGORY40,
|
|
203366
203552
|
inputSchema: createTagParamsJsonSchema,
|
|
203367
203553
|
resultSchema: CreateTagResultSchema
|
|
203368
203554
|
},
|
|
@@ -203373,7 +203559,7 @@ var tagTools = [
|
|
|
203373
203559
|
{
|
|
203374
203560
|
name: "update_tag",
|
|
203375
203561
|
description: "Update a generic Huly tag definition. The tag argument accepts a tag ID or exact title, resolved within targetClass.",
|
|
203376
|
-
category:
|
|
203562
|
+
category: CATEGORY40,
|
|
203377
203563
|
inputSchema: updateTagParamsJsonSchema,
|
|
203378
203564
|
resultSchema: UpdateTagResultSchema
|
|
203379
203565
|
},
|
|
@@ -203384,7 +203570,7 @@ var tagTools = [
|
|
|
203384
203570
|
{
|
|
203385
203571
|
name: "delete_tag",
|
|
203386
203572
|
description: "Delete a generic Huly tag definition by ID or exact title, resolved within targetClass. This deletes the tag definition, not only one object's tag reference.",
|
|
203387
|
-
category:
|
|
203573
|
+
category: CATEGORY40,
|
|
203388
203574
|
inputSchema: deleteTagParamsJsonSchema,
|
|
203389
203575
|
annotations: {
|
|
203390
203576
|
destructiveHint: true,
|
|
@@ -203399,7 +203585,7 @@ var tagTools = [
|
|
|
203399
203585
|
{
|
|
203400
203586
|
name: "list_attached_tags",
|
|
203401
203587
|
description: "List generic Huly TagReference rows attached to one raw object collection. Requires objectId, objectClass, space, and collection because this is an SDK-level tool.",
|
|
203402
|
-
category:
|
|
203588
|
+
category: CATEGORY40,
|
|
203403
203589
|
inputSchema: listAttachedTagsParamsJsonSchema,
|
|
203404
203590
|
resultSchema: ListAttachedTagsResultSchema
|
|
203405
203591
|
},
|
|
@@ -203410,7 +203596,7 @@ var tagTools = [
|
|
|
203410
203596
|
{
|
|
203411
203597
|
name: "attach_tag",
|
|
203412
203598
|
description: "Attach a generic Huly tag to one raw object collection. Requires targetClass for the tag definition and objectId/objectClass/space/collection for the TagReference. Idempotent for the same object, collection, and tag.",
|
|
203413
|
-
category:
|
|
203599
|
+
category: CATEGORY40,
|
|
203414
203600
|
inputSchema: attachTagParamsJsonSchema,
|
|
203415
203601
|
annotations: {
|
|
203416
203602
|
idempotentHint: true
|
|
@@ -203424,7 +203610,7 @@ var tagTools = [
|
|
|
203424
203610
|
{
|
|
203425
203611
|
name: "detach_tag",
|
|
203426
203612
|
description: "Detach a generic Huly tag from one raw object collection. Requires targetClass and objectId/objectClass/space/collection. Returns detached=false when the tag is not attached.",
|
|
203427
|
-
category:
|
|
203613
|
+
category: CATEGORY40,
|
|
203428
203614
|
inputSchema: detachTagParamsJsonSchema,
|
|
203429
203615
|
resultSchema: DetachTagResultSchema
|
|
203430
203616
|
},
|
|
@@ -203434,7 +203620,7 @@ var tagTools = [
|
|
|
203434
203620
|
];
|
|
203435
203621
|
|
|
203436
203622
|
// src/huly/operations/task-management.ts
|
|
203437
|
-
var
|
|
203623
|
+
var import_core86 = __toESM(require_lib5(), 1);
|
|
203438
203624
|
var import_platform3 = __toESM(require_lib(), 1);
|
|
203439
203625
|
var STATUS_CATEGORY_BY_SDK_KEY = {
|
|
203440
203626
|
UnStarted: { value: "UnStarted", ref: StatusCategoryBySdkKey.UnStarted, name: "UnStarted" },
|
|
@@ -203556,7 +203742,7 @@ var projectTypeDetail = (data) => ({
|
|
|
203556
203742
|
var listAllProjectTypes = (client) => client.findAll(
|
|
203557
203743
|
task.class.ProjectType,
|
|
203558
203744
|
hulyQuery({}),
|
|
203559
|
-
{ sort: { name:
|
|
203745
|
+
{ sort: { name: import_core86.SortingOrder.Ascending } }
|
|
203560
203746
|
).pipe(Effect_exports.map((result) => [...result]));
|
|
203561
203747
|
var resolveProjectType = (client, projectTypeRef) => Effect_exports.gen(function* () {
|
|
203562
203748
|
const projectTypes = yield* listAllProjectTypes(client);
|
|
@@ -203676,7 +203862,7 @@ var createTaskType = (params) => Effect_exports.gen(function* () {
|
|
|
203676
203862
|
new HulyError({ message: `Project type '${projectType.name}' has no task type to copy.` })
|
|
203677
203863
|
);
|
|
203678
203864
|
}
|
|
203679
|
-
const taskTypeId = (0,
|
|
203865
|
+
const taskTypeId = (0, import_core86.generateId)();
|
|
203680
203866
|
const targetClassId = `${taskTypeId}:type:mixin`;
|
|
203681
203867
|
const targetClassRef = toRef(targetClassId);
|
|
203682
203868
|
const templateStatusIds = uniqueStatusRefs(template.statuses);
|
|
@@ -203685,7 +203871,7 @@ var createTaskType = (params) => Effect_exports.gen(function* () {
|
|
|
203685
203871
|
core.space.Model,
|
|
203686
203872
|
{
|
|
203687
203873
|
extends: template.ofClass,
|
|
203688
|
-
kind:
|
|
203874
|
+
kind: import_core86.ClassifierKind.MIXIN,
|
|
203689
203875
|
label: (0, import_platform3.getEmbeddedLabel)(params.name),
|
|
203690
203876
|
...template.icon === void 0 ? {} : { icon: template.icon }
|
|
203691
203877
|
},
|
|
@@ -203770,7 +203956,7 @@ var createIssueStatus = (params) => Effect_exports.gen(function* () {
|
|
|
203770
203956
|
[...workflowData.statuses, ...statusesByName],
|
|
203771
203957
|
params.name
|
|
203772
203958
|
);
|
|
203773
|
-
const statusId = existingStatus?._id ?? (0,
|
|
203959
|
+
const statusId = existingStatus?._id ?? (0, import_core86.generateId)();
|
|
203774
203960
|
if (existingStatus !== void 0) {
|
|
203775
203961
|
yield* requireStatusCategoryMatch(existingStatus, params.category);
|
|
203776
203962
|
}
|
|
@@ -203840,13 +204026,13 @@ var createIssueStatus = (params) => Effect_exports.gen(function* () {
|
|
|
203840
204026
|
});
|
|
203841
204027
|
|
|
203842
204028
|
// src/mcp/tools/task-management.ts
|
|
203843
|
-
var
|
|
204029
|
+
var CATEGORY41 = "task-management";
|
|
203844
204030
|
var taskManagementTools = [
|
|
203845
204031
|
defineTool(
|
|
203846
204032
|
{
|
|
203847
204033
|
name: "list_project_types",
|
|
203848
204034
|
description: "List Huly tracker project types/workflow templates. Returns ID, display name, descriptor, task type count, status count, and whether the type appears to be the default Classic tracker type.",
|
|
203849
|
-
category:
|
|
204035
|
+
category: CATEGORY41,
|
|
203850
204036
|
inputSchema: listProjectTypesParamsJsonSchema,
|
|
203851
204037
|
resultSchema: ListProjectTypesResultSchema
|
|
203852
204038
|
},
|
|
@@ -203857,7 +204043,7 @@ var taskManagementTools = [
|
|
|
203857
204043
|
{
|
|
203858
204044
|
name: "get_project_type",
|
|
203859
204045
|
description: "Inspect one Huly tracker project type in a single call. Accepts projectType as ID or display name; when omitted, uses the unambiguous Classic tracker type. Returns task types, statuses, categories, and task-type-to-status mappings.",
|
|
203860
|
-
category:
|
|
204046
|
+
category: CATEGORY41,
|
|
203861
204047
|
inputSchema: getProjectTypeParamsJsonSchema,
|
|
203862
204048
|
resultSchema: GetProjectTypeResultSchema
|
|
203863
204049
|
},
|
|
@@ -203868,7 +204054,7 @@ var taskManagementTools = [
|
|
|
203868
204054
|
{
|
|
203869
204055
|
name: "list_task_types",
|
|
203870
204056
|
description: "List Huly issue/task types. Optionally filter by projectType ID or display name. Returns task type identity, parent project type, kind, issue class, and available status count.",
|
|
203871
|
-
category:
|
|
204057
|
+
category: CATEGORY41,
|
|
203872
204058
|
inputSchema: listTaskTypesParamsJsonSchema,
|
|
203873
204059
|
resultSchema: ListTaskTypesResultSchema
|
|
203874
204060
|
},
|
|
@@ -203879,7 +204065,7 @@ var taskManagementTools = [
|
|
|
203879
204065
|
{
|
|
203880
204066
|
name: "create_task_type",
|
|
203881
204067
|
description: "Add a Huly issue/task type to a project type idempotently by normalized name. Copies required workflow configuration from an existing template task type unless templateTaskType is supplied. Returns created, IDs, affected task type IDs, and a workspace-level workflow warning.",
|
|
203882
|
-
category:
|
|
204068
|
+
category: CATEGORY41,
|
|
203883
204069
|
inputSchema: createTaskTypeParamsJsonSchema,
|
|
203884
204070
|
annotations: { idempotentHint: true },
|
|
203885
204071
|
resultSchema: CreateTaskTypeResultSchema
|
|
@@ -203891,7 +204077,7 @@ var taskManagementTools = [
|
|
|
203891
204077
|
{
|
|
203892
204078
|
name: "create_issue_status",
|
|
203893
204079
|
description: `Add a Huly issue workflow status idempotently by normalized name within a project type and task type scope. Accepts category as a Huly SDK task.statusCategory key: ${enumValuesDescription(StatusCategoryValues)}; taskType may be ID or display name, and omission applies the status to every task type in the project type.`,
|
|
203894
|
-
category:
|
|
204080
|
+
category: CATEGORY41,
|
|
203895
204081
|
inputSchema: createIssueStatusParamsJsonSchema,
|
|
203896
204082
|
annotations: { idempotentHint: true },
|
|
203897
204083
|
resultSchema: CreateIssueStatusResultSchema
|
|
@@ -203902,7 +204088,7 @@ var taskManagementTools = [
|
|
|
203902
204088
|
];
|
|
203903
204089
|
|
|
203904
204090
|
// src/huly/operations/test-management-core.ts
|
|
203905
|
-
var
|
|
204091
|
+
var import_core87 = __toESM(require_lib5(), 1);
|
|
203906
204092
|
|
|
203907
204093
|
// src/huly/test-management-classes.ts
|
|
203908
204094
|
var testManagement = {
|
|
@@ -204155,7 +204341,7 @@ var listTestProjects = (params) => Effect_exports.gen(function* () {
|
|
|
204155
204341
|
{},
|
|
204156
204342
|
{
|
|
204157
204343
|
limit,
|
|
204158
|
-
sort: { name:
|
|
204344
|
+
sort: { name: import_core87.SortingOrder.Ascending }
|
|
204159
204345
|
}
|
|
204160
204346
|
);
|
|
204161
204347
|
return {
|
|
@@ -204177,7 +204363,7 @@ var listTestSuites = (params) => Effect_exports.gen(function* () {
|
|
|
204177
204363
|
query,
|
|
204178
204364
|
{
|
|
204179
204365
|
limit,
|
|
204180
|
-
sort: { modifiedOn:
|
|
204366
|
+
sort: { modifiedOn: import_core87.SortingOrder.Descending }
|
|
204181
204367
|
}
|
|
204182
204368
|
);
|
|
204183
204369
|
return {
|
|
@@ -204210,7 +204396,7 @@ var createTestSuite = (params) => Effect_exports.gen(function* () {
|
|
|
204210
204396
|
if (existing !== void 0) {
|
|
204211
204397
|
return { id: TestSuiteId.make(existing._id), name: existing.name, created: false };
|
|
204212
204398
|
}
|
|
204213
|
-
const suiteId = (0,
|
|
204399
|
+
const suiteId = (0, import_core87.generateId)();
|
|
204214
204400
|
const suiteData = {
|
|
204215
204401
|
name: params.name,
|
|
204216
204402
|
description: params.description ?? "",
|
|
@@ -204254,7 +204440,7 @@ var listTestCases = (params) => Effect_exports.gen(function* () {
|
|
|
204254
204440
|
query,
|
|
204255
204441
|
{
|
|
204256
204442
|
limit,
|
|
204257
|
-
sort: { modifiedOn:
|
|
204443
|
+
sort: { modifiedOn: import_core87.SortingOrder.Descending }
|
|
204258
204444
|
}
|
|
204259
204445
|
);
|
|
204260
204446
|
return {
|
|
@@ -204282,7 +204468,7 @@ var createTestCase = (params) => Effect_exports.gen(function* () {
|
|
|
204282
204468
|
const client = yield* HulyClient;
|
|
204283
204469
|
const project3 = yield* findTestProject(client, params.project);
|
|
204284
204470
|
const suite = yield* findTestSuite(client, project3, params.suite);
|
|
204285
|
-
const caseId = (0,
|
|
204471
|
+
const caseId = (0, import_core87.generateId)();
|
|
204286
204472
|
const assigneeRef = params.assignee !== void 0 ? toRef((yield* resolveAssignee3(params.assignee))._id) : null;
|
|
204287
204473
|
const typeEnum = resolveCaseType(params.type ?? DEFAULT_TEST_CASE_TYPE);
|
|
204288
204474
|
const priorityEnum = resolveCasePriority(params.priority ?? DEFAULT_TEST_CASE_PRIORITY);
|
|
@@ -204327,13 +204513,13 @@ var deleteTestCase = (params) => Effect_exports.gen(function* () {
|
|
|
204327
204513
|
});
|
|
204328
204514
|
|
|
204329
204515
|
// src/mcp/tools/test-management-core.ts
|
|
204330
|
-
var
|
|
204516
|
+
var CATEGORY42 = "test-management";
|
|
204331
204517
|
var testManagementCoreTools = [
|
|
204332
204518
|
defineTool(
|
|
204333
204519
|
{
|
|
204334
204520
|
name: "list_test_projects",
|
|
204335
204521
|
description: "List test management projects. Returns test projects sorted by name. These are separate from tracker projects.",
|
|
204336
|
-
category:
|
|
204522
|
+
category: CATEGORY42,
|
|
204337
204523
|
inputSchema: listTestProjectsParamsJsonSchema,
|
|
204338
204524
|
resultSchema: ListTestProjectsResultSchema
|
|
204339
204525
|
},
|
|
@@ -204344,7 +204530,7 @@ var testManagementCoreTools = [
|
|
|
204344
204530
|
{
|
|
204345
204531
|
name: "list_test_suites",
|
|
204346
204532
|
description: "List test suites in a test project. Accepts project ID or name. Optional parent filter for nested suites.",
|
|
204347
|
-
category:
|
|
204533
|
+
category: CATEGORY42,
|
|
204348
204534
|
inputSchema: listTestSuitesParamsJsonSchema,
|
|
204349
204535
|
resultSchema: ListTestSuitesResultSchema
|
|
204350
204536
|
},
|
|
@@ -204355,7 +204541,7 @@ var testManagementCoreTools = [
|
|
|
204355
204541
|
{
|
|
204356
204542
|
name: "get_test_suite",
|
|
204357
204543
|
description: "Get a single test suite by ID or name within a test project. Returns suite details and test case count.",
|
|
204358
|
-
category:
|
|
204544
|
+
category: CATEGORY42,
|
|
204359
204545
|
inputSchema: getTestSuiteParamsJsonSchema,
|
|
204360
204546
|
resultSchema: GetTestSuiteResultSchema
|
|
204361
204547
|
},
|
|
@@ -204366,7 +204552,7 @@ var testManagementCoreTools = [
|
|
|
204366
204552
|
{
|
|
204367
204553
|
name: "create_test_suite",
|
|
204368
204554
|
description: "Create a test suite in a test project. Idempotent: returns existing suite if one with the same name exists (created=false). Optional parent for nesting.",
|
|
204369
|
-
category:
|
|
204555
|
+
category: CATEGORY42,
|
|
204370
204556
|
inputSchema: createTestSuiteParamsJsonSchema,
|
|
204371
204557
|
resultSchema: CreateTestSuiteResultSchema
|
|
204372
204558
|
},
|
|
@@ -204377,7 +204563,7 @@ var testManagementCoreTools = [
|
|
|
204377
204563
|
{
|
|
204378
204564
|
name: "update_test_suite",
|
|
204379
204565
|
description: "Update a test suite. Accepts suite ID or name. Only provided fields are modified.",
|
|
204380
|
-
category:
|
|
204566
|
+
category: CATEGORY42,
|
|
204381
204567
|
inputSchema: updateTestSuiteParamsJsonSchema,
|
|
204382
204568
|
resultSchema: UpdateTestSuiteResultSchema
|
|
204383
204569
|
},
|
|
@@ -204388,7 +204574,7 @@ var testManagementCoreTools = [
|
|
|
204388
204574
|
{
|
|
204389
204575
|
name: "delete_test_suite",
|
|
204390
204576
|
description: "Permanently delete a test suite. Accepts suite ID or name. This action cannot be undone.",
|
|
204391
|
-
category:
|
|
204577
|
+
category: CATEGORY42,
|
|
204392
204578
|
inputSchema: deleteTestSuiteParamsJsonSchema,
|
|
204393
204579
|
resultSchema: DeleteTestSuiteResultSchema
|
|
204394
204580
|
},
|
|
@@ -204399,7 +204585,7 @@ var testManagementCoreTools = [
|
|
|
204399
204585
|
{
|
|
204400
204586
|
name: "list_test_cases",
|
|
204401
204587
|
description: "List test cases in a test project. Optional filters: suite (ID or name), assignee (name or email).",
|
|
204402
|
-
category:
|
|
204588
|
+
category: CATEGORY42,
|
|
204403
204589
|
inputSchema: listTestCasesParamsJsonSchema,
|
|
204404
204590
|
resultSchema: ListTestCasesResultSchema
|
|
204405
204591
|
},
|
|
@@ -204410,7 +204596,7 @@ var testManagementCoreTools = [
|
|
|
204410
204596
|
{
|
|
204411
204597
|
name: "get_test_case",
|
|
204412
204598
|
description: "Get a single test case by ID or name within a test project.",
|
|
204413
|
-
category:
|
|
204599
|
+
category: CATEGORY42,
|
|
204414
204600
|
inputSchema: getTestCaseParamsJsonSchema,
|
|
204415
204601
|
resultSchema: GetTestCaseResultSchema
|
|
204416
204602
|
},
|
|
@@ -204421,7 +204607,7 @@ var testManagementCoreTools = [
|
|
|
204421
204607
|
{
|
|
204422
204608
|
name: "create_test_case",
|
|
204423
204609
|
description: "Create a test case attached to a suite. Requires project and suite. Defaults: type=functional, priority=medium, status=draft.",
|
|
204424
|
-
category:
|
|
204610
|
+
category: CATEGORY42,
|
|
204425
204611
|
inputSchema: createTestCaseParamsJsonSchema,
|
|
204426
204612
|
resultSchema: CreateTestCaseResultSchema
|
|
204427
204613
|
},
|
|
@@ -204432,7 +204618,7 @@ var testManagementCoreTools = [
|
|
|
204432
204618
|
{
|
|
204433
204619
|
name: "update_test_case",
|
|
204434
204620
|
description: "Update a test case. Accepts test case ID or name. Only provided fields are modified. Set assignee to null to unassign.",
|
|
204435
|
-
category:
|
|
204621
|
+
category: CATEGORY42,
|
|
204436
204622
|
inputSchema: updateTestCaseParamsJsonSchema,
|
|
204437
204623
|
resultSchema: UpdateTestCaseResultSchema
|
|
204438
204624
|
},
|
|
@@ -204443,7 +204629,7 @@ var testManagementCoreTools = [
|
|
|
204443
204629
|
{
|
|
204444
204630
|
name: "delete_test_case",
|
|
204445
204631
|
description: "Permanently delete a test case. Accepts test case ID or name. This action cannot be undone.",
|
|
204446
|
-
category:
|
|
204632
|
+
category: CATEGORY42,
|
|
204447
204633
|
inputSchema: deleteTestCaseParamsJsonSchema,
|
|
204448
204634
|
resultSchema: DeleteTestCaseResultSchema
|
|
204449
204635
|
},
|
|
@@ -204453,7 +204639,7 @@ var testManagementCoreTools = [
|
|
|
204453
204639
|
];
|
|
204454
204640
|
|
|
204455
204641
|
// src/huly/operations/test-management-plans.ts
|
|
204456
|
-
var
|
|
204642
|
+
var import_core88 = __toESM(require_lib5(), 1);
|
|
204457
204643
|
var toPlanSummary = (p) => ({
|
|
204458
204644
|
id: TestPlanId.make(p._id),
|
|
204459
204645
|
name: p.name
|
|
@@ -204471,7 +204657,7 @@ var listTestPlans = (params) => Effect_exports.gen(function* () {
|
|
|
204471
204657
|
const plans = yield* client.findAll(
|
|
204472
204658
|
testManagement.class.TestPlan,
|
|
204473
204659
|
{ space: project3._id },
|
|
204474
|
-
{ limit, sort: { modifiedOn:
|
|
204660
|
+
{ limit, sort: { modifiedOn: import_core88.SortingOrder.Descending } }
|
|
204475
204661
|
);
|
|
204476
204662
|
return { plans: plans.map(toPlanSummary), total: listTotal(plans.total) };
|
|
204477
204663
|
});
|
|
@@ -204506,7 +204692,7 @@ var createTestPlan = (params) => Effect_exports.gen(function* () {
|
|
|
204506
204692
|
if (existing !== void 0) {
|
|
204507
204693
|
return { id: TestPlanId.make(existing._id), name: existing.name, created: false };
|
|
204508
204694
|
}
|
|
204509
|
-
const planId = (0,
|
|
204695
|
+
const planId = (0, import_core88.generateId)();
|
|
204510
204696
|
const descRef = params.description !== void 0 && params.description.trim() !== "" ? yield* client.uploadMarkup(
|
|
204511
204697
|
testManagement.class.TestPlan,
|
|
204512
204698
|
planId,
|
|
@@ -204591,7 +204777,7 @@ var removeTestPlanItem = (params) => Effect_exports.gen(function* () {
|
|
|
204591
204777
|
});
|
|
204592
204778
|
|
|
204593
204779
|
// src/huly/operations/test-management-runs.ts
|
|
204594
|
-
var
|
|
204780
|
+
var import_core89 = __toESM(require_lib5(), 1);
|
|
204595
204781
|
var BATCH_CONCURRENCY = 10;
|
|
204596
204782
|
var resolveStatusOrUntested = (status) => {
|
|
204597
204783
|
const resolved = stringToTestRunStatus(status);
|
|
@@ -204617,7 +204803,7 @@ var listTestRuns = (params) => Effect_exports.gen(function* () {
|
|
|
204617
204803
|
const runs = yield* client.findAll(
|
|
204618
204804
|
testManagement.class.TestRun,
|
|
204619
204805
|
{ space: project3._id },
|
|
204620
|
-
{ limit, sort: { modifiedOn:
|
|
204806
|
+
{ limit, sort: { modifiedOn: import_core89.SortingOrder.Descending } }
|
|
204621
204807
|
);
|
|
204622
204808
|
return { runs: runs.map(toRunSummary), total: listTotal(runs.total) };
|
|
204623
204809
|
});
|
|
@@ -204646,7 +204832,7 @@ var getTestRun = (params) => Effect_exports.gen(function* () {
|
|
|
204646
204832
|
var createTestRun = (params) => Effect_exports.gen(function* () {
|
|
204647
204833
|
const client = yield* HulyClient;
|
|
204648
204834
|
const project3 = yield* findTestProject(client, params.project);
|
|
204649
|
-
const runId = (0,
|
|
204835
|
+
const runId = (0, import_core89.generateId)();
|
|
204650
204836
|
const descRef = params.description !== void 0 && params.description.trim() !== "" ? yield* client.uploadMarkup(
|
|
204651
204837
|
testManagement.class.TestRun,
|
|
204652
204838
|
runId,
|
|
@@ -204705,7 +204891,7 @@ var listTestResults = (params) => Effect_exports.gen(function* () {
|
|
|
204705
204891
|
const results = yield* client.findAll(
|
|
204706
204892
|
testManagement.class.TestResult,
|
|
204707
204893
|
{ attachedTo: run3._id },
|
|
204708
|
-
{ limit, sort: { modifiedOn:
|
|
204894
|
+
{ limit, sort: { modifiedOn: import_core89.SortingOrder.Descending } }
|
|
204709
204895
|
);
|
|
204710
204896
|
return { results: results.map(toResultSummary), total: listTotal(results.total) };
|
|
204711
204897
|
});
|
|
@@ -204819,7 +205005,7 @@ var runTestPlan = (params) => Effect_exports.gen(function* () {
|
|
|
204819
205005
|
}
|
|
204820
205006
|
return { item, tc };
|
|
204821
205007
|
}), { concurrency: BATCH_CONCURRENCY });
|
|
204822
|
-
const runId = (0,
|
|
205008
|
+
const runId = (0, import_core89.generateId)();
|
|
204823
205009
|
const runName = params.runName ?? `${plan.name} - Run`;
|
|
204824
205010
|
yield* client.createDoc(testManagement.class.TestRun, project3._id, {
|
|
204825
205011
|
name: runName,
|
|
@@ -204849,14 +205035,14 @@ var runTestPlan = (params) => Effect_exports.gen(function* () {
|
|
|
204849
205035
|
});
|
|
204850
205036
|
|
|
204851
205037
|
// src/mcp/tools/test-management-plans.ts
|
|
204852
|
-
var
|
|
205038
|
+
var CATEGORY43 = "test-management";
|
|
204853
205039
|
var testManagementPlansTools = [
|
|
204854
205040
|
// --- Test Plans ---
|
|
204855
205041
|
defineTool(
|
|
204856
205042
|
{
|
|
204857
205043
|
name: "list_test_plans",
|
|
204858
205044
|
description: "List test plans in a test management project. Returns plan names and IDs. Requires project ID or name.",
|
|
204859
|
-
category:
|
|
205045
|
+
category: CATEGORY43,
|
|
204860
205046
|
inputSchema: listTestPlansParamsJsonSchema,
|
|
204861
205047
|
resultSchema: ListTestPlansResultSchema
|
|
204862
205048
|
},
|
|
@@ -204867,7 +205053,7 @@ var testManagementPlansTools = [
|
|
|
204867
205053
|
{
|
|
204868
205054
|
name: "get_test_plan",
|
|
204869
205055
|
description: "Get test plan details including its items (test cases). Accepts plan ID or name within a project.",
|
|
204870
|
-
category:
|
|
205056
|
+
category: CATEGORY43,
|
|
204871
205057
|
inputSchema: getTestPlanParamsJsonSchema,
|
|
204872
205058
|
resultSchema: GetTestPlanResultSchema
|
|
204873
205059
|
},
|
|
@@ -204878,7 +205064,7 @@ var testManagementPlansTools = [
|
|
|
204878
205064
|
{
|
|
204879
205065
|
name: "create_test_plan",
|
|
204880
205066
|
description: "Create a test plan in a project. Idempotent: returns existing plan if one with the same name exists (created=false).",
|
|
204881
|
-
category:
|
|
205067
|
+
category: CATEGORY43,
|
|
204882
205068
|
inputSchema: createTestPlanParamsJsonSchema,
|
|
204883
205069
|
resultSchema: CreateTestPlanResultSchema
|
|
204884
205070
|
},
|
|
@@ -204889,7 +205075,7 @@ var testManagementPlansTools = [
|
|
|
204889
205075
|
{
|
|
204890
205076
|
name: "update_test_plan",
|
|
204891
205077
|
description: "Update a test plan's name or description. Only provided fields are modified. Pass description=null to clear.",
|
|
204892
|
-
category:
|
|
205078
|
+
category: CATEGORY43,
|
|
204893
205079
|
inputSchema: updateTestPlanParamsJsonSchema,
|
|
204894
205080
|
resultSchema: UpdateTestPlanResultSchema
|
|
204895
205081
|
},
|
|
@@ -204900,7 +205086,7 @@ var testManagementPlansTools = [
|
|
|
204900
205086
|
{
|
|
204901
205087
|
name: "delete_test_plan",
|
|
204902
205088
|
description: "Permanently delete a test plan. This does not delete associated test runs. Cannot be undone.",
|
|
204903
|
-
category:
|
|
205089
|
+
category: CATEGORY43,
|
|
204904
205090
|
inputSchema: deleteTestPlanParamsJsonSchema,
|
|
204905
205091
|
resultSchema: DeleteTestPlanResultSchema
|
|
204906
205092
|
},
|
|
@@ -204912,7 +205098,7 @@ var testManagementPlansTools = [
|
|
|
204912
205098
|
{
|
|
204913
205099
|
name: "add_test_plan_item",
|
|
204914
205100
|
description: "Add a test case to a test plan. Resolves test case by ID or name. Optionally assign a person by email or name.",
|
|
204915
|
-
category:
|
|
205101
|
+
category: CATEGORY43,
|
|
204916
205102
|
inputSchema: addTestPlanItemParamsJsonSchema,
|
|
204917
205103
|
resultSchema: AddTestPlanItemResultSchema
|
|
204918
205104
|
},
|
|
@@ -204923,7 +205109,7 @@ var testManagementPlansTools = [
|
|
|
204923
205109
|
{
|
|
204924
205110
|
name: "remove_test_plan_item",
|
|
204925
205111
|
description: "Remove a test case from a test plan by item ID. Get item IDs from get_test_plan.",
|
|
204926
|
-
category:
|
|
205112
|
+
category: CATEGORY43,
|
|
204927
205113
|
inputSchema: removeTestPlanItemParamsJsonSchema,
|
|
204928
205114
|
resultSchema: RemoveTestPlanItemResultSchema
|
|
204929
205115
|
},
|
|
@@ -204935,7 +205121,7 @@ var testManagementPlansTools = [
|
|
|
204935
205121
|
{
|
|
204936
205122
|
name: "list_test_runs",
|
|
204937
205123
|
description: "List test runs in a test management project. Returns run names, IDs, and due dates.",
|
|
204938
|
-
category:
|
|
205124
|
+
category: CATEGORY43,
|
|
204939
205125
|
inputSchema: listTestRunsParamsJsonSchema,
|
|
204940
205126
|
resultSchema: ListTestRunsResultSchema
|
|
204941
205127
|
},
|
|
@@ -204946,7 +205132,7 @@ var testManagementPlansTools = [
|
|
|
204946
205132
|
{
|
|
204947
205133
|
name: "get_test_run",
|
|
204948
205134
|
description: "Get test run details including all results. Accepts run ID or name within a project.",
|
|
204949
|
-
category:
|
|
205135
|
+
category: CATEGORY43,
|
|
204950
205136
|
inputSchema: getTestRunParamsJsonSchema,
|
|
204951
205137
|
resultSchema: GetTestRunResultSchema
|
|
204952
205138
|
},
|
|
@@ -204957,7 +205143,7 @@ var testManagementPlansTools = [
|
|
|
204957
205143
|
{
|
|
204958
205144
|
name: "create_test_run",
|
|
204959
205145
|
description: "Create a test run in a project. For bulk creation from a plan, use run_test_plan instead.",
|
|
204960
|
-
category:
|
|
205146
|
+
category: CATEGORY43,
|
|
204961
205147
|
inputSchema: createTestRunParamsJsonSchema,
|
|
204962
205148
|
resultSchema: CreateTestRunResultSchema
|
|
204963
205149
|
},
|
|
@@ -204968,7 +205154,7 @@ var testManagementPlansTools = [
|
|
|
204968
205154
|
{
|
|
204969
205155
|
name: "update_test_run",
|
|
204970
205156
|
description: "Update a test run's name, description, or due date. Only provided fields are modified. Pass null to clear optional fields.",
|
|
204971
|
-
category:
|
|
205157
|
+
category: CATEGORY43,
|
|
204972
205158
|
inputSchema: updateTestRunParamsJsonSchema,
|
|
204973
205159
|
resultSchema: UpdateTestRunResultSchema
|
|
204974
205160
|
},
|
|
@@ -204979,7 +205165,7 @@ var testManagementPlansTools = [
|
|
|
204979
205165
|
{
|
|
204980
205166
|
name: "delete_test_run",
|
|
204981
205167
|
description: "Permanently delete a test run. This does not delete associated test results. Cannot be undone.",
|
|
204982
|
-
category:
|
|
205168
|
+
category: CATEGORY43,
|
|
204983
205169
|
inputSchema: deleteTestRunParamsJsonSchema,
|
|
204984
205170
|
resultSchema: DeleteTestRunResultSchema
|
|
204985
205171
|
},
|
|
@@ -204991,7 +205177,7 @@ var testManagementPlansTools = [
|
|
|
204991
205177
|
{
|
|
204992
205178
|
name: "list_test_results",
|
|
204993
205179
|
description: "List test results in a test run. Returns result names, statuses, and assignees.",
|
|
204994
|
-
category:
|
|
205180
|
+
category: CATEGORY43,
|
|
204995
205181
|
inputSchema: listTestResultsParamsJsonSchema,
|
|
204996
205182
|
resultSchema: ListTestResultsResultSchema
|
|
204997
205183
|
},
|
|
@@ -205002,7 +205188,7 @@ var testManagementPlansTools = [
|
|
|
205002
205188
|
{
|
|
205003
205189
|
name: "get_test_result",
|
|
205004
205190
|
description: "Get test result details. Accepts result ID or name.",
|
|
205005
|
-
category:
|
|
205191
|
+
category: CATEGORY43,
|
|
205006
205192
|
inputSchema: getTestResultParamsJsonSchema,
|
|
205007
205193
|
resultSchema: GetTestResultResultSchema
|
|
205008
205194
|
},
|
|
@@ -205013,7 +205199,7 @@ var testManagementPlansTools = [
|
|
|
205013
205199
|
{
|
|
205014
205200
|
name: "create_test_result",
|
|
205015
205201
|
description: "Create a test result in a run. Resolves test case by ID or name. Status defaults to 'untested'.",
|
|
205016
|
-
category:
|
|
205202
|
+
category: CATEGORY43,
|
|
205017
205203
|
inputSchema: createTestResultParamsJsonSchema,
|
|
205018
205204
|
resultSchema: CreateTestResultResultSchema
|
|
205019
205205
|
},
|
|
@@ -205024,7 +205210,7 @@ var testManagementPlansTools = [
|
|
|
205024
205210
|
{
|
|
205025
205211
|
name: "update_test_result",
|
|
205026
205212
|
description: "Update a test result's status, assignee, or description. Status values: untested, blocked, passed, failed.",
|
|
205027
|
-
category:
|
|
205213
|
+
category: CATEGORY43,
|
|
205028
205214
|
inputSchema: updateTestResultParamsJsonSchema,
|
|
205029
205215
|
resultSchema: UpdateTestResultResultSchema
|
|
205030
205216
|
},
|
|
@@ -205035,7 +205221,7 @@ var testManagementPlansTools = [
|
|
|
205035
205221
|
{
|
|
205036
205222
|
name: "delete_test_result",
|
|
205037
205223
|
description: "Permanently delete a test result. Cannot be undone.",
|
|
205038
|
-
category:
|
|
205224
|
+
category: CATEGORY43,
|
|
205039
205225
|
inputSchema: deleteTestResultParamsJsonSchema,
|
|
205040
205226
|
resultSchema: DeleteTestResultResultSchema
|
|
205041
205227
|
},
|
|
@@ -205047,7 +205233,7 @@ var testManagementPlansTools = [
|
|
|
205047
205233
|
{
|
|
205048
205234
|
name: "run_test_plan",
|
|
205049
205235
|
description: "Execute a test plan: creates a test run and one test result per plan item. Returns the run ID and count of results created. Optionally name the run and set a due date.",
|
|
205050
|
-
category:
|
|
205236
|
+
category: CATEGORY43,
|
|
205051
205237
|
inputSchema: runTestPlanParamsJsonSchema,
|
|
205052
205238
|
annotations: {
|
|
205053
205239
|
title: "Run Test Plan",
|
|
@@ -205064,13 +205250,13 @@ var testManagementPlansTools = [
|
|
|
205064
205250
|
];
|
|
205065
205251
|
|
|
205066
205252
|
// src/mcp/tools/time.ts
|
|
205067
|
-
var
|
|
205253
|
+
var CATEGORY44 = "time tracking";
|
|
205068
205254
|
var timeTools = [
|
|
205069
205255
|
defineTool(
|
|
205070
205256
|
{
|
|
205071
205257
|
name: "log_time",
|
|
205072
205258
|
description: "Log time spent on a Huly issue. Records a time entry with optional description. Time value is in minutes.",
|
|
205073
|
-
category:
|
|
205259
|
+
category: CATEGORY44,
|
|
205074
205260
|
inputSchema: logTimeParamsJsonSchema,
|
|
205075
205261
|
resultSchema: LogTimeResultSchema
|
|
205076
205262
|
},
|
|
@@ -205081,7 +205267,7 @@ var timeTools = [
|
|
|
205081
205267
|
{
|
|
205082
205268
|
name: "get_time_report",
|
|
205083
205269
|
description: "Get time tracking report for a specific Huly issue. Shows total time, estimation, remaining time, and all time entries.",
|
|
205084
|
-
category:
|
|
205270
|
+
category: CATEGORY44,
|
|
205085
205271
|
inputSchema: getTimeReportParamsJsonSchema,
|
|
205086
205272
|
resultSchema: TimeReportSummarySchema
|
|
205087
205273
|
},
|
|
@@ -205092,7 +205278,7 @@ var timeTools = [
|
|
|
205092
205278
|
{
|
|
205093
205279
|
name: "list_time_spend_reports",
|
|
205094
205280
|
description: "List all time entries across issues. Supports filtering by project and date range. Returns entries sorted by date (newest first).",
|
|
205095
|
-
category:
|
|
205281
|
+
category: CATEGORY44,
|
|
205096
205282
|
inputSchema: listTimeSpendReportsParamsJsonSchema,
|
|
205097
205283
|
resultSchema: ListTimeSpendReportsResultSchema
|
|
205098
205284
|
},
|
|
@@ -205103,7 +205289,7 @@ var timeTools = [
|
|
|
205103
205289
|
{
|
|
205104
205290
|
name: "get_detailed_time_report",
|
|
205105
205291
|
description: "Get detailed time breakdown for a project. Shows total time grouped by issue and by employee. Supports date range filtering.",
|
|
205106
|
-
category:
|
|
205292
|
+
category: CATEGORY44,
|
|
205107
205293
|
inputSchema: getDetailedTimeReportParamsJsonSchema,
|
|
205108
205294
|
resultSchema: DetailedTimeReportSchema
|
|
205109
205295
|
},
|
|
@@ -205114,7 +205300,7 @@ var timeTools = [
|
|
|
205114
205300
|
{
|
|
205115
205301
|
name: "list_work_slots",
|
|
205116
205302
|
description: "List scheduled work slots created by schedule_todo, Huly UI, or other clients. Shows planned time blocks attached to ToDos. Supports filtering by employee and date range.",
|
|
205117
|
-
category:
|
|
205303
|
+
category: CATEGORY44,
|
|
205118
205304
|
inputSchema: listWorkSlotsParamsJsonSchema,
|
|
205119
205305
|
resultSchema: ListWorkSlotsResultSchema
|
|
205120
205306
|
},
|
|
@@ -205125,7 +205311,7 @@ var timeTools = [
|
|
|
205125
205311
|
{
|
|
205126
205312
|
name: "start_timer",
|
|
205127
205313
|
description: "Start a client-side timer on a Huly issue. Validates the issue exists and returns a start timestamp. Use log_time to record the elapsed time when done.",
|
|
205128
|
-
category:
|
|
205314
|
+
category: CATEGORY44,
|
|
205129
205315
|
inputSchema: startTimerParamsJsonSchema,
|
|
205130
205316
|
resultSchema: StartTimerResultSchema
|
|
205131
205317
|
},
|
|
@@ -205136,7 +205322,7 @@ var timeTools = [
|
|
|
205136
205322
|
{
|
|
205137
205323
|
name: "stop_timer",
|
|
205138
205324
|
description: "Stop a client-side timer on a Huly issue. Returns the stop timestamp. Calculate elapsed time from start/stop timestamps and use log_time to record it.",
|
|
205139
|
-
category:
|
|
205325
|
+
category: CATEGORY44,
|
|
205140
205326
|
inputSchema: stopTimerParamsJsonSchema,
|
|
205141
205327
|
resultSchema: StopTimerResultSchema
|
|
205142
205328
|
},
|
|
@@ -205146,7 +205332,7 @@ var timeTools = [
|
|
|
205146
205332
|
];
|
|
205147
205333
|
|
|
205148
205334
|
// src/huly/operations/user-statuses.ts
|
|
205149
|
-
var
|
|
205335
|
+
var import_core90 = __toESM(require_lib5(), 1);
|
|
205150
205336
|
var userStatusSummary = (status) => ({
|
|
205151
205337
|
id: UserStatusId.make(status._id),
|
|
205152
205338
|
user: UserStatusAccountUuid.make(status.user),
|
|
@@ -205163,7 +205349,7 @@ var listUserStatuses = (params) => Effect_exports.gen(function* () {
|
|
|
205163
205349
|
hulyQuery(query),
|
|
205164
205350
|
{
|
|
205165
205351
|
limit: clampLimit(params.limit),
|
|
205166
|
-
sort: { modifiedOn:
|
|
205352
|
+
sort: { modifiedOn: import_core90.SortingOrder.Descending }
|
|
205167
205353
|
}
|
|
205168
205354
|
);
|
|
205169
205355
|
return ListUserStatusesResultSchema.make({
|
|
@@ -205173,13 +205359,13 @@ var listUserStatuses = (params) => Effect_exports.gen(function* () {
|
|
|
205173
205359
|
});
|
|
205174
205360
|
|
|
205175
205361
|
// src/mcp/tools/user-statuses.ts
|
|
205176
|
-
var
|
|
205362
|
+
var CATEGORY45 = "user-statuses";
|
|
205177
205363
|
var userStatusTools = [
|
|
205178
205364
|
defineTool(
|
|
205179
205365
|
{
|
|
205180
205366
|
name: "list_user_statuses",
|
|
205181
205367
|
description: "List Huly user presence records. Returns account UUIDs, online status, and last modified timestamp. Use this to check who is currently connected; presence is maintained by Huly server sessions. Filter by online or account UUID.",
|
|
205182
|
-
category:
|
|
205368
|
+
category: CATEGORY45,
|
|
205183
205369
|
inputSchema: listUserStatusesParamsJsonSchema,
|
|
205184
205370
|
resultSchema: ListUserStatusesResultSchema
|
|
205185
205371
|
},
|
|
@@ -205189,7 +205375,7 @@ var userStatusTools = [
|
|
|
205189
205375
|
];
|
|
205190
205376
|
|
|
205191
205377
|
// src/huly/operations/views.ts
|
|
205192
|
-
var
|
|
205378
|
+
var import_core91 = __toESM(require_lib5(), 1);
|
|
205193
205379
|
var viewletIdField2 = (viewletId) => viewletId === void 0 || viewletId === null ? {} : { viewletId: ViewletId.make(viewletId) };
|
|
205194
205380
|
var stringField2 = (key, value3) => value3 === void 0 || value3.trim() === "" ? {} : { [key]: value3 };
|
|
205195
205381
|
var visibilityFor2 = (filteredView, account) => filteredView.users.includes(account) ? "own" : "shared";
|
|
@@ -205289,7 +205475,7 @@ var listFilteredViews = (params) => Effect_exports.gen(function* () {
|
|
|
205289
205475
|
const filteredViews = yield* client.findAll(
|
|
205290
205476
|
view.class.FilteredView,
|
|
205291
205477
|
hulyQuery(query),
|
|
205292
|
-
{ sort: { modifiedOn:
|
|
205478
|
+
{ sort: { modifiedOn: import_core91.SortingOrder.Descending }, total: true }
|
|
205293
205479
|
);
|
|
205294
205480
|
const visible = filterByVisibility2(filteredViews, params.visibility, account);
|
|
205295
205481
|
const limited = visible.slice(0, clampLimit(params.limit));
|
|
@@ -205343,13 +205529,13 @@ var listViewlets = (params) => Effect_exports.gen(function* () {
|
|
|
205343
205529
|
});
|
|
205344
205530
|
|
|
205345
205531
|
// src/mcp/tools/views.ts
|
|
205346
|
-
var
|
|
205532
|
+
var CATEGORY46 = "views";
|
|
205347
205533
|
var viewTools = [
|
|
205348
205534
|
defineTool(
|
|
205349
205535
|
{
|
|
205350
205536
|
name: "list_filtered_views",
|
|
205351
205537
|
description: "List saved filtered views from @hcengineering/view. Use attachedTo to scope by raw app/resource string such as board:app:Board; omit attachedTo to discover saved views across modules. Reports own/shared visibility from the current account's users membership.",
|
|
205352
|
-
category:
|
|
205538
|
+
category: CATEGORY46,
|
|
205353
205539
|
inputSchema: listFilteredViewsParamsJsonSchema,
|
|
205354
205540
|
resultSchema: ListFilteredViewsResultSchema
|
|
205355
205541
|
},
|
|
@@ -205360,7 +205546,7 @@ var viewTools = [
|
|
|
205360
205546
|
{
|
|
205361
205547
|
name: "get_filtered_view",
|
|
205362
205548
|
description: "Get one saved filtered view by FilteredView _id or exact name. Pass attachedTo, such as board:app:Board, when an exact name may exist in more than one module. Read-only; no saved-view writes are performed.",
|
|
205363
|
-
category:
|
|
205549
|
+
category: CATEGORY46,
|
|
205364
205550
|
inputSchema: getFilteredViewParamsJsonSchema,
|
|
205365
205551
|
resultSchema: FilteredViewDetailSchema
|
|
205366
205552
|
},
|
|
@@ -205371,7 +205557,7 @@ var viewTools = [
|
|
|
205371
205557
|
{
|
|
205372
205558
|
name: "list_viewlets",
|
|
205373
205559
|
description: "List viewlets from @hcengineering/view model metadata. Use attachTo with a Huly class id such as board:class:Card to scope by rendered document class; use list_huly_classes when you need class ids. The optional viewlet locator accepts a Viewlet _id, exact title, exact variant, or descriptor _id; descriptor ids may return multiple viewlets. Includes descriptor metadata and matching ViewletPreference configs.",
|
|
205374
|
-
category:
|
|
205560
|
+
category: CATEGORY46,
|
|
205375
205561
|
inputSchema: listViewletsParamsJsonSchema,
|
|
205376
205562
|
resultSchema: ListViewletsResultSchema
|
|
205377
205563
|
},
|
|
@@ -205381,7 +205567,7 @@ var viewTools = [
|
|
|
205381
205567
|
];
|
|
205382
205568
|
|
|
205383
205569
|
// src/huly/operations/virtual-office.ts
|
|
205384
|
-
var
|
|
205570
|
+
var import_core92 = __toESM(require_lib5(), 1);
|
|
205385
205571
|
var import_love = __toESM(require_lib31(), 1);
|
|
205386
205572
|
var ROOM_ACCESS_TO_STRING = {
|
|
205387
205573
|
[import_love.RoomAccess.Open]: "open",
|
|
@@ -205487,7 +205673,7 @@ var listOfficeFloors = (params) => Effect_exports.gen(function* () {
|
|
|
205487
205673
|
const floors = yield* client.findAll(
|
|
205488
205674
|
love.class.Floor,
|
|
205489
205675
|
hulyQuery({}),
|
|
205490
|
-
{ limit: clampLimit(params.limit), sort: { name:
|
|
205676
|
+
{ limit: clampLimit(params.limit), sort: { name: import_core92.SortingOrder.Ascending } }
|
|
205491
205677
|
);
|
|
205492
205678
|
return floors.map(summarizeFloor);
|
|
205493
205679
|
});
|
|
@@ -205507,7 +205693,7 @@ var listOfficeRooms = (params) => Effect_exports.gen(function* () {
|
|
|
205507
205693
|
const rooms = yield* client.findAll(
|
|
205508
205694
|
love.class.Room,
|
|
205509
205695
|
hulyQuery(query),
|
|
205510
|
-
{ limit: clampLimit(params.limit), sort: { name:
|
|
205696
|
+
{ limit: clampLimit(params.limit), sort: { name: import_core92.SortingOrder.Ascending } }
|
|
205511
205697
|
);
|
|
205512
205698
|
return rooms.map(summarizeRoom);
|
|
205513
205699
|
});
|
|
@@ -205530,7 +205716,7 @@ var listOffices = (params) => Effect_exports.gen(function* () {
|
|
|
205530
205716
|
const offices = yield* client.findAll(
|
|
205531
205717
|
love.class.Office,
|
|
205532
205718
|
hulyQuery(query),
|
|
205533
|
-
{ limit: clampLimit(params.limit), sort: { name:
|
|
205719
|
+
{ limit: clampLimit(params.limit), sort: { name: import_core92.SortingOrder.Ascending } }
|
|
205534
205720
|
);
|
|
205535
205721
|
const persons = yield* lookupPersons(
|
|
205536
205722
|
client,
|
|
@@ -205569,7 +205755,7 @@ var listActiveRoomParticipants = (params) => Effect_exports.gen(function* () {
|
|
|
205569
205755
|
const participants = yield* client.findAll(
|
|
205570
205756
|
love.class.ParticipantInfo,
|
|
205571
205757
|
hulyQuery(query),
|
|
205572
|
-
{ sort: { name:
|
|
205758
|
+
{ sort: { name: import_core92.SortingOrder.Ascending } }
|
|
205573
205759
|
);
|
|
205574
205760
|
const rooms = yield* lookupRooms(client, participants.map((participant) => participant.room));
|
|
205575
205761
|
return participants.map((participant) => ({
|
|
@@ -205597,7 +205783,7 @@ var listMeetingMinutes = (params) => Effect_exports.gen(function* () {
|
|
|
205597
205783
|
const minutes2 = yield* client.findAll(
|
|
205598
205784
|
love.class.MeetingMinutes,
|
|
205599
205785
|
hulyQuery(query),
|
|
205600
|
-
{ limit: clampLimit(params.limit), sort: { createdOn:
|
|
205786
|
+
{ limit: clampLimit(params.limit), sort: { createdOn: import_core92.SortingOrder.Descending } }
|
|
205601
205787
|
);
|
|
205602
205788
|
return minutes2.map(summarizeMinutes);
|
|
205603
205789
|
});
|
|
@@ -205634,7 +205820,7 @@ var listOfficeDefaults = (_params) => Effect_exports.gen(function* () {
|
|
|
205634
205820
|
const rooms = yield* client.findAll(
|
|
205635
205821
|
love.class.Room,
|
|
205636
205822
|
hulyQuery({}),
|
|
205637
|
-
{ sort: { name:
|
|
205823
|
+
{ sort: { name: import_core92.SortingOrder.Ascending } }
|
|
205638
205824
|
);
|
|
205639
205825
|
return rooms.map((room) => ({
|
|
205640
205826
|
roomId: RoomId.make(room._id),
|
|
@@ -205646,13 +205832,13 @@ var listOfficeDefaults = (_params) => Effect_exports.gen(function* () {
|
|
|
205646
205832
|
});
|
|
205647
205833
|
|
|
205648
205834
|
// src/mcp/tools/virtual-office.ts
|
|
205649
|
-
var
|
|
205835
|
+
var CATEGORY47 = "virtual-office";
|
|
205650
205836
|
var virtualOfficeTools = [
|
|
205651
205837
|
defineTool(
|
|
205652
205838
|
{
|
|
205653
205839
|
name: "list_office_floors",
|
|
205654
205840
|
description: "List virtual office floors.",
|
|
205655
|
-
category:
|
|
205841
|
+
category: CATEGORY47,
|
|
205656
205842
|
inputSchema: listOfficeFloorsParamsJsonSchema,
|
|
205657
205843
|
resultSchema: ListOfficeFloorsResultSchema
|
|
205658
205844
|
},
|
|
@@ -205663,7 +205849,7 @@ var virtualOfficeTools = [
|
|
|
205663
205849
|
{
|
|
205664
205850
|
name: "get_office_floor",
|
|
205665
205851
|
description: "Get one virtual office floor by floorId.",
|
|
205666
|
-
category:
|
|
205852
|
+
category: CATEGORY47,
|
|
205667
205853
|
inputSchema: getOfficeFloorParamsJsonSchema,
|
|
205668
205854
|
resultSchema: GetOfficeFloorResultSchema
|
|
205669
205855
|
},
|
|
@@ -205674,7 +205860,7 @@ var virtualOfficeTools = [
|
|
|
205674
205860
|
{
|
|
205675
205861
|
name: "list_office_rooms",
|
|
205676
205862
|
description: "List virtual office rooms, including access mode, type, floor, floor-plan position/size, language, and recording/transcription defaults.",
|
|
205677
|
-
category:
|
|
205863
|
+
category: CATEGORY47,
|
|
205678
205864
|
inputSchema: listOfficeRoomsParamsJsonSchema,
|
|
205679
205865
|
resultSchema: ListOfficeRoomsResultSchema
|
|
205680
205866
|
},
|
|
@@ -205685,7 +205871,7 @@ var virtualOfficeTools = [
|
|
|
205685
205871
|
{
|
|
205686
205872
|
name: "get_office_room",
|
|
205687
205873
|
description: "Get one virtual office room by roomId, including description when readable.",
|
|
205688
|
-
category:
|
|
205874
|
+
category: CATEGORY47,
|
|
205689
205875
|
inputSchema: getOfficeRoomParamsJsonSchema,
|
|
205690
205876
|
resultSchema: GetOfficeRoomResultSchema
|
|
205691
205877
|
},
|
|
@@ -205696,7 +205882,7 @@ var virtualOfficeTools = [
|
|
|
205696
205882
|
{
|
|
205697
205883
|
name: "list_offices",
|
|
205698
205884
|
description: "List personal office rooms and their assigned people when readable.",
|
|
205699
|
-
category:
|
|
205885
|
+
category: CATEGORY47,
|
|
205700
205886
|
inputSchema: listOfficesParamsJsonSchema,
|
|
205701
205887
|
resultSchema: ListOfficesResultSchema
|
|
205702
205888
|
},
|
|
@@ -205707,7 +205893,7 @@ var virtualOfficeTools = [
|
|
|
205707
205893
|
{
|
|
205708
205894
|
name: "get_office",
|
|
205709
205895
|
description: "Get one personal office room by roomId, including assigned person and description when readable.",
|
|
205710
|
-
category:
|
|
205896
|
+
category: CATEGORY47,
|
|
205711
205897
|
inputSchema: getOfficeParamsJsonSchema,
|
|
205712
205898
|
resultSchema: GetOfficeResultSchema
|
|
205713
205899
|
},
|
|
@@ -205718,7 +205904,7 @@ var virtualOfficeTools = [
|
|
|
205718
205904
|
{
|
|
205719
205905
|
name: "list_active_room_info",
|
|
205720
205906
|
description: "List transient active room occupancy summaries.",
|
|
205721
|
-
category:
|
|
205907
|
+
category: CATEGORY47,
|
|
205722
205908
|
inputSchema: listActiveRoomInfoParamsJsonSchema,
|
|
205723
205909
|
resultSchema: ListActiveRoomInfoResultSchema
|
|
205724
205910
|
},
|
|
@@ -205729,7 +205915,7 @@ var virtualOfficeTools = [
|
|
|
205729
205915
|
{
|
|
205730
205916
|
name: "list_active_room_participants",
|
|
205731
205917
|
description: "List transient active virtual-office participants and positions, optionally filtered by roomId.",
|
|
205732
|
-
category:
|
|
205918
|
+
category: CATEGORY47,
|
|
205733
205919
|
inputSchema: listActiveRoomParticipantsParamsJsonSchema,
|
|
205734
205920
|
resultSchema: ListActiveRoomParticipantsResultSchema
|
|
205735
205921
|
},
|
|
@@ -205740,7 +205926,7 @@ var virtualOfficeTools = [
|
|
|
205740
205926
|
{
|
|
205741
205927
|
name: "list_meeting_minutes",
|
|
205742
205928
|
description: "List meeting notes/transcript records (minutes) by optional attachment target and created-on range.",
|
|
205743
|
-
category:
|
|
205929
|
+
category: CATEGORY47,
|
|
205744
205930
|
inputSchema: listMeetingMinutesParamsJsonSchema,
|
|
205745
205931
|
resultSchema: ListMeetingMinutesResultSchema
|
|
205746
205932
|
},
|
|
@@ -205751,7 +205937,7 @@ var virtualOfficeTools = [
|
|
|
205751
205937
|
{
|
|
205752
205938
|
name: "get_meeting_minutes",
|
|
205753
205939
|
description: "Get one meeting notes/transcript record (minutes) by meetingMinutesId, including description when readable.",
|
|
205754
|
-
category:
|
|
205940
|
+
category: CATEGORY47,
|
|
205755
205941
|
inputSchema: getMeetingMinutesParamsJsonSchema,
|
|
205756
205942
|
resultSchema: GetMeetingMinutesResultSchema
|
|
205757
205943
|
},
|
|
@@ -205762,7 +205948,7 @@ var virtualOfficeTools = [
|
|
|
205762
205948
|
{
|
|
205763
205949
|
name: "list_device_preferences",
|
|
205764
205950
|
description: "List readable virtual-office media device preferences.",
|
|
205765
|
-
category:
|
|
205951
|
+
category: CATEGORY47,
|
|
205766
205952
|
inputSchema: listDevicePreferencesParamsJsonSchema,
|
|
205767
205953
|
resultSchema: ListDevicePreferencesResultSchema
|
|
205768
205954
|
},
|
|
@@ -205773,7 +205959,7 @@ var virtualOfficeTools = [
|
|
|
205773
205959
|
{
|
|
205774
205960
|
name: "list_office_defaults",
|
|
205775
205961
|
description: "List room-level language, default recording, and default transcription settings.",
|
|
205776
|
-
category:
|
|
205962
|
+
category: CATEGORY47,
|
|
205777
205963
|
inputSchema: listOfficeDefaultsParamsJsonSchema,
|
|
205778
205964
|
resultSchema: ListOfficeDefaultsResultSchema
|
|
205779
205965
|
},
|
|
@@ -205783,15 +205969,15 @@ var virtualOfficeTools = [
|
|
|
205783
205969
|
];
|
|
205784
205970
|
|
|
205785
205971
|
// src/huly/operations/workspace.ts
|
|
205786
|
-
var
|
|
205972
|
+
var import_core93 = __toESM(require_lib5(), 1);
|
|
205787
205973
|
var accountRoleMap = {
|
|
205788
|
-
READONLYGUEST:
|
|
205789
|
-
DocGuest:
|
|
205790
|
-
GUEST:
|
|
205791
|
-
USER:
|
|
205792
|
-
MAINTAINER:
|
|
205793
|
-
OWNER:
|
|
205794
|
-
ADMIN:
|
|
205974
|
+
READONLYGUEST: import_core93.AccountRole.ReadOnlyGuest,
|
|
205975
|
+
DocGuest: import_core93.AccountRole.DocGuest,
|
|
205976
|
+
GUEST: import_core93.AccountRole.Guest,
|
|
205977
|
+
USER: import_core93.AccountRole.User,
|
|
205978
|
+
MAINTAINER: import_core93.AccountRole.Maintainer,
|
|
205979
|
+
OWNER: import_core93.AccountRole.Owner,
|
|
205980
|
+
ADMIN: import_core93.AccountRole.Admin
|
|
205795
205981
|
};
|
|
205796
205982
|
var exactAccountRoleMapping = (value3) => value3;
|
|
205797
205983
|
exactAccountRoleMapping(true);
|
|
@@ -205954,13 +206140,13 @@ var getRegions = () => Effect_exports.gen(function* () {
|
|
|
205954
206140
|
});
|
|
205955
206141
|
|
|
205956
206142
|
// src/mcp/tools/workspace.ts
|
|
205957
|
-
var
|
|
206143
|
+
var CATEGORY48 = "workspace";
|
|
205958
206144
|
var workspaceTools = [
|
|
205959
206145
|
defineWorkspaceTool(
|
|
205960
206146
|
{
|
|
205961
206147
|
name: "list_workspace_members",
|
|
205962
206148
|
description: "List members in the current Huly workspace with their roles. Returns members with account IDs and roles.",
|
|
205963
|
-
category:
|
|
206149
|
+
category: CATEGORY48,
|
|
205964
206150
|
inputSchema: listWorkspaceMembersParamsJsonSchema,
|
|
205965
206151
|
resultSchema: ListWorkspaceMembersResultSchema
|
|
205966
206152
|
},
|
|
@@ -205971,7 +206157,7 @@ var workspaceTools = [
|
|
|
205971
206157
|
{
|
|
205972
206158
|
name: "update_member_role",
|
|
205973
206159
|
description: "Update a workspace member's role. Requires appropriate permissions. Valid roles: READONLYGUEST, DocGuest, GUEST, USER, MAINTAINER, OWNER, ADMIN.",
|
|
205974
|
-
category:
|
|
206160
|
+
category: CATEGORY48,
|
|
205975
206161
|
inputSchema: updateMemberRoleParamsJsonSchema,
|
|
205976
206162
|
resultSchema: UpdateMemberRoleResultSchema
|
|
205977
206163
|
},
|
|
@@ -205981,7 +206167,7 @@ var workspaceTools = [
|
|
|
205981
206167
|
defineNoParamsWorkspaceTool({
|
|
205982
206168
|
name: "get_workspace_info",
|
|
205983
206169
|
description: "Get information about the current workspace including name, URL, region, and settings.",
|
|
205984
|
-
category:
|
|
206170
|
+
category: CATEGORY48,
|
|
205985
206171
|
inputSchema: emptyParamsJsonSchema,
|
|
205986
206172
|
resultSchema: WorkspaceInfoSchema
|
|
205987
206173
|
}, getWorkspaceInfo),
|
|
@@ -205989,7 +206175,7 @@ var workspaceTools = [
|
|
|
205989
206175
|
{
|
|
205990
206176
|
name: "list_workspaces",
|
|
205991
206177
|
description: "List all workspaces accessible to the current user. Returns workspace summaries sorted by last visit.",
|
|
205992
|
-
category:
|
|
206178
|
+
category: CATEGORY48,
|
|
205993
206179
|
inputSchema: listWorkspacesParamsJsonSchema,
|
|
205994
206180
|
resultSchema: ListWorkspacesResultSchema
|
|
205995
206181
|
},
|
|
@@ -206000,7 +206186,7 @@ var workspaceTools = [
|
|
|
206000
206186
|
{
|
|
206001
206187
|
name: "create_workspace",
|
|
206002
206188
|
description: "Create a new Huly workspace. Returns the workspace UUID and URL. Optionally specify a region.",
|
|
206003
|
-
category:
|
|
206189
|
+
category: CATEGORY48,
|
|
206004
206190
|
inputSchema: createWorkspaceParamsJsonSchema,
|
|
206005
206191
|
resultSchema: CreateWorkspaceResultSchema
|
|
206006
206192
|
},
|
|
@@ -206010,14 +206196,14 @@ var workspaceTools = [
|
|
|
206010
206196
|
defineNoParamsWorkspaceTool({
|
|
206011
206197
|
name: "delete_workspace",
|
|
206012
206198
|
description: "Permanently delete the current workspace. This action cannot be undone. Use with extreme caution.",
|
|
206013
|
-
category:
|
|
206199
|
+
category: CATEGORY48,
|
|
206014
206200
|
inputSchema: emptyParamsJsonSchema,
|
|
206015
206201
|
resultSchema: DeleteWorkspaceResultSchema
|
|
206016
206202
|
}, deleteWorkspace),
|
|
206017
206203
|
defineNoParamsWorkspaceTool({
|
|
206018
206204
|
name: "get_user_profile",
|
|
206019
206205
|
description: "Get the current user's profile information including bio, location, and social links.",
|
|
206020
|
-
category:
|
|
206206
|
+
category: CATEGORY48,
|
|
206021
206207
|
inputSchema: emptyParamsJsonSchema,
|
|
206022
206208
|
resultSchema: GetUserProfileResultSchema
|
|
206023
206209
|
}, getUserProfile),
|
|
@@ -206025,7 +206211,7 @@ var workspaceTools = [
|
|
|
206025
206211
|
{
|
|
206026
206212
|
name: "update_user_profile",
|
|
206027
206213
|
description: "Update the current user's profile. Supports bio, city, country, website, social links, and public visibility.",
|
|
206028
|
-
category:
|
|
206214
|
+
category: CATEGORY48,
|
|
206029
206215
|
inputSchema: updateUserProfileParamsJsonSchema,
|
|
206030
206216
|
resultSchema: UpdateUserProfileResultSchema
|
|
206031
206217
|
},
|
|
@@ -206036,7 +206222,7 @@ var workspaceTools = [
|
|
|
206036
206222
|
{
|
|
206037
206223
|
name: "update_guest_settings",
|
|
206038
206224
|
description: "Update workspace guest settings. Control read-only guest access and guest sign-up permissions.",
|
|
206039
|
-
category:
|
|
206225
|
+
category: CATEGORY48,
|
|
206040
206226
|
inputSchema: updateGuestSettingsParamsJsonSchema,
|
|
206041
206227
|
resultSchema: UpdateGuestSettingsResultSchema
|
|
206042
206228
|
},
|
|
@@ -206047,7 +206233,7 @@ var workspaceTools = [
|
|
|
206047
206233
|
{
|
|
206048
206234
|
name: "create_access_link",
|
|
206049
206235
|
description: `Create a Huly workspace access link. When role is omitted, role=${DEFAULT_ACCESS_LINK_ROLE}. Supports anonymous reusable guest links by setting personalized=false with notBefore and expiration, and can restrict access to specific Huly space IDs via spaces.`,
|
|
206050
|
-
category:
|
|
206236
|
+
category: CATEGORY48,
|
|
206051
206237
|
inputSchema: createAccessLinkParamsJsonSchema,
|
|
206052
206238
|
resultSchema: CreateAccessLinkResultSchema
|
|
206053
206239
|
},
|
|
@@ -206058,7 +206244,7 @@ var workspaceTools = [
|
|
|
206058
206244
|
{
|
|
206059
206245
|
name: "get_regions",
|
|
206060
206246
|
description: "Get available regions for workspace creation. Returns region codes and display names.",
|
|
206061
|
-
category:
|
|
206247
|
+
category: CATEGORY48,
|
|
206062
206248
|
inputSchema: getRegionsParamsJsonSchema,
|
|
206063
206249
|
resultSchema: GetRegionsResultSchema
|
|
206064
206250
|
},
|
|
@@ -206102,6 +206288,7 @@ var allTools = [
|
|
|
206102
206288
|
...calendarTools,
|
|
206103
206289
|
...timeTools,
|
|
206104
206290
|
...plannerTools,
|
|
206291
|
+
...preferenceTools,
|
|
206105
206292
|
...searchTools,
|
|
206106
206293
|
...activityTools,
|
|
206107
206294
|
...notificationTools,
|