@firfi/huly-mcp 0.25.0 → 0.26.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 -5
- package/dist/index.cjs +237 -118
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -296,7 +296,7 @@ Planned feature surfaces:
|
|
|
296
296
|
- Team planner and schedule reporting: team agendas, workload/capacity summaries, and visibility-aware free/busy views across members/projects.
|
|
297
297
|
- Virtual office and meetings: offices, floors, rooms, access/language/default recording/transcription settings, meeting schedules, active participants, room info, meeting notes/transcript records (minutes), recordings, and device preferences.
|
|
298
298
|
- Chat and communication: direct-message send/update/delete, group DMs, channel member mutations, join/leave/request access, archive/unarchive, star/favorite channels, close/reopen conversations, pinned messages, message attachments, translation, applets, in-message polls, and guest communication settings.
|
|
299
|
-
- Notifications and activity:
|
|
299
|
+
- Notifications and activity: mute contexts, unsubscribe per context/type, notification type settings, collaborators, pin/unpin activity messages, generic activity replies, filters, references, mentions, and update-message introspection.
|
|
300
300
|
- Attachments and media: saved attachments, photos, drawings, embeddings, previews/preview metadata, and friendly wrappers for additional object types.
|
|
301
301
|
- Core schema and workspace administration: attribute/property create/update/delete/hide, enum CRUD/options, sequence management, role assignment mutations, role/permission definition writes, generic space creation, global space admins, integrations registry, invite settings, role capability settings, and workspace setting metadata.
|
|
302
302
|
- Integrations: GitHub repository/project mappings and sync metadata, Google Calendar connect/configure/sync controls, Bitrix entity/field mappings and sync status, Gmail/email channel messages, Telegram messages, Huly Mail/Mail plugin behavior, AI assistant integration state, and AI bot configuration if server-side APIs expose stable behavior.
|
|
@@ -537,14 +537,17 @@ SDK upgrade revisit:
|
|
|
537
537
|
|------|-------------|
|
|
538
538
|
| `list_notifications` | List inbox notifications. Returns notifications sorted by modification date (newest first). Supports filtering by read/archived status. |
|
|
539
539
|
| `get_notification` | Retrieve full details for a notification. Use this to view notification content and metadata. |
|
|
540
|
-
| `mark_notification_read` | Mark a notification as read. |
|
|
540
|
+
| `mark_notification_read` | Mark a notification as read. Idempotent: returns success when the notification is already read. |
|
|
541
|
+
| `mark_notification_unread` | Mark a notification as unread. Idempotent: returns success when the notification is already unread. |
|
|
541
542
|
| `mark_all_notifications_read` | Mark all unread notifications as read. Returns the count of notifications marked. |
|
|
542
|
-
| `archive_notification` | Archive a notification. Archived notifications are hidden from the main inbox view. |
|
|
543
|
+
| `archive_notification` | Archive a notification. Archived notifications are hidden from the main inbox view. Idempotent when already archived. |
|
|
544
|
+
| `unarchive_notification` | Unarchive a notification so it can appear in active notification lists again. Idempotent when already active. |
|
|
543
545
|
| `archive_all_notifications` | Archive all notifications. Returns the count of notifications archived. |
|
|
544
546
|
| `delete_notification` | Permanently delete a notification. This action cannot be undone. |
|
|
545
547
|
| `get_notification_context` | Get notification context for an entity. Returns tracking information for a specific object. |
|
|
546
|
-
| `list_notification_contexts` | List notification contexts. Returns contexts sorted by last update timestamp (newest first). Supports filtering by pinned status. |
|
|
547
|
-
| `pin_notification_context` | Pin or unpin a notification context. Pinned contexts are highlighted in the inbox. |
|
|
548
|
+
| `list_notification_contexts` | List notification contexts. Returns contexts sorted by last update timestamp (newest first). Supports filtering by pinned status and can include hidden contexts. |
|
|
549
|
+
| `pin_notification_context` | Pin or unpin a notification context. Pinned contexts are highlighted in the inbox. Idempotent when the pin state already matches. |
|
|
550
|
+
| `hide_notification_context` | Hide or unhide a notification context. Hidden contexts are omitted from list_notification_contexts unless includeHidden is true. Idempotent when the hidden state already matches. |
|
|
548
551
|
| `list_notification_settings` | List notification provider settings. Returns current notification preferences. |
|
|
549
552
|
| `update_notification_provider_setting` | Update notification provider setting. Enable or disable notifications for a specific provider. |
|
|
550
553
|
| `get_unread_notification_count` | Get the count of unread notifications. |
|
package/dist/index.cjs
CHANGED
|
@@ -81771,7 +81771,7 @@ var require_connection2 = __commonJS({
|
|
|
81771
81771
|
});
|
|
81772
81772
|
module2.exports = __toCommonJS2(connection_exports);
|
|
81773
81773
|
var import_analytics = require_lib2();
|
|
81774
|
-
var
|
|
81774
|
+
var import_client50 = __toESM2(require_lib6());
|
|
81775
81775
|
var import_core65 = __toESM2(require_lib4());
|
|
81776
81776
|
var import_platform4 = __toESM2(require_lib());
|
|
81777
81777
|
var import_rpc = require_lib18();
|
|
@@ -81882,7 +81882,7 @@ var require_connection2 = __commonJS({
|
|
|
81882
81882
|
}
|
|
81883
81883
|
if (!this.closed) {
|
|
81884
81884
|
void this.sendRequest({
|
|
81885
|
-
method:
|
|
81885
|
+
method: import_client50.pingConst,
|
|
81886
81886
|
params: [],
|
|
81887
81887
|
once: true,
|
|
81888
81888
|
handleResult: /* @__PURE__ */ __name(async (result) => {
|
|
@@ -81915,7 +81915,7 @@ var require_connection2 = __commonJS({
|
|
|
81915
81915
|
}
|
|
81916
81916
|
}
|
|
81917
81917
|
isConnected() {
|
|
81918
|
-
return this.websocket != null && this.websocket.readyState ===
|
|
81918
|
+
return this.websocket != null && this.websocket.readyState === import_client50.ClientSocketReadyState.OPEN && this.helloReceived;
|
|
81919
81919
|
}
|
|
81920
81920
|
delay = 0;
|
|
81921
81921
|
onConnectHandlers = [];
|
|
@@ -82055,8 +82055,8 @@ var require_connection2 = __commonJS({
|
|
|
82055
82055
|
}
|
|
82056
82056
|
return;
|
|
82057
82057
|
}
|
|
82058
|
-
if (resp.result ===
|
|
82059
|
-
void this.sendRequest({ method:
|
|
82058
|
+
if (resp.result === import_client50.pingConst) {
|
|
82059
|
+
void this.sendRequest({ method: import_client50.pingConst, params: [] }).catch((err) => {
|
|
82060
82060
|
this.ctx.error("failed to send ping", { err });
|
|
82061
82061
|
});
|
|
82062
82062
|
return;
|
|
@@ -82148,15 +82148,15 @@ var require_connection2 = __commonJS({
|
|
|
82148
82148
|
}
|
|
82149
82149
|
}
|
|
82150
82150
|
checkArrayBufferPing(data) {
|
|
82151
|
-
if (data.byteLength ===
|
|
82151
|
+
if (data.byteLength === import_client50.pingConst.length || data.byteLength === import_client50.pongConst.length) {
|
|
82152
82152
|
const text = new TextDecoder().decode(data);
|
|
82153
|
-
if (text ===
|
|
82154
|
-
void this.sendRequest({ method:
|
|
82153
|
+
if (text === import_client50.pingConst) {
|
|
82154
|
+
void this.sendRequest({ method: import_client50.pingConst, params: [] }).catch((err) => {
|
|
82155
82155
|
this.ctx.error("failed to send ping", { err });
|
|
82156
82156
|
});
|
|
82157
82157
|
return true;
|
|
82158
82158
|
}
|
|
82159
|
-
if (text ===
|
|
82159
|
+
if (text === import_client50.pongConst) {
|
|
82160
82160
|
this.pingResponse = Date.now();
|
|
82161
82161
|
return true;
|
|
82162
82162
|
}
|
|
@@ -82166,7 +82166,7 @@ var require_connection2 = __commonJS({
|
|
|
82166
82166
|
openConnection(ctx, socketId) {
|
|
82167
82167
|
this.binaryMode = false;
|
|
82168
82168
|
this.helloReceived = false;
|
|
82169
|
-
const clientSocketFactory = this.opt?.socketFactory ?? (0, import_platform4.getMetadata)(
|
|
82169
|
+
const clientSocketFactory = this.opt?.socketFactory ?? (0, import_platform4.getMetadata)(import_client50.default.metadata.ClientSocketFactory) ?? ((url4) => {
|
|
82170
82170
|
const s = new WebSocket(url4);
|
|
82171
82171
|
return s;
|
|
82172
82172
|
});
|
|
@@ -82201,12 +82201,12 @@ var require_connection2 = __commonJS({
|
|
|
82201
82201
|
if (this.websocket !== wsocket) {
|
|
82202
82202
|
return;
|
|
82203
82203
|
}
|
|
82204
|
-
if (event.data ===
|
|
82204
|
+
if (event.data === import_client50.pongConst) {
|
|
82205
82205
|
this.pingResponse = Date.now();
|
|
82206
82206
|
return;
|
|
82207
82207
|
}
|
|
82208
|
-
if (event.data ===
|
|
82209
|
-
void this.sendRequest({ method:
|
|
82208
|
+
if (event.data === import_client50.pingConst) {
|
|
82209
|
+
void this.sendRequest({ method: import_client50.pingConst, params: [] }).catch((err) => {
|
|
82210
82210
|
this.ctx.error("failed to send ping", { err });
|
|
82211
82211
|
});
|
|
82212
82212
|
return;
|
|
@@ -82271,8 +82271,8 @@ var require_connection2 = __commonJS({
|
|
|
82271
82271
|
if (this.websocket !== wsocket) {
|
|
82272
82272
|
return;
|
|
82273
82273
|
}
|
|
82274
|
-
const useBinary = this.opt?.useBinaryProtocol ?? (0, import_platform4.getMetadata)(
|
|
82275
|
-
this.compressionMode = this.opt?.useProtocolCompression ?? (0, import_platform4.getMetadata)(
|
|
82274
|
+
const useBinary = this.opt?.useBinaryProtocol ?? (0, import_platform4.getMetadata)(import_client50.default.metadata.UseBinaryProtocol) ?? true;
|
|
82275
|
+
this.compressionMode = this.opt?.useProtocolCompression ?? (0, import_platform4.getMetadata)(import_client50.default.metadata.UseProtocolCompression) ?? false;
|
|
82276
82276
|
const helloRequest = {
|
|
82277
82277
|
method: "hello",
|
|
82278
82278
|
params: [],
|
|
@@ -82318,13 +82318,13 @@ var require_connection2 = __commonJS({
|
|
|
82318
82318
|
if (w instanceof Promise) {
|
|
82319
82319
|
await w;
|
|
82320
82320
|
}
|
|
82321
|
-
if (data.method !==
|
|
82321
|
+
if (data.method !== import_client50.pingConst) {
|
|
82322
82322
|
this.requests.set(id, promise4);
|
|
82323
82323
|
}
|
|
82324
82324
|
promise4.sendData = () => {
|
|
82325
|
-
if (this.websocket?.readyState ===
|
|
82325
|
+
if (this.websocket?.readyState === import_client50.ClientSocketReadyState.OPEN) {
|
|
82326
82326
|
promise4.startTime = Date.now();
|
|
82327
|
-
if (data.method !==
|
|
82327
|
+
if (data.method !== import_client50.pingConst) {
|
|
82328
82328
|
const dta = this.rpcHandler.serialize(
|
|
82329
82329
|
{
|
|
82330
82330
|
method: data.method,
|
|
@@ -82337,7 +82337,7 @@ var require_connection2 = __commonJS({
|
|
|
82337
82337
|
);
|
|
82338
82338
|
this.websocket?.send(dta);
|
|
82339
82339
|
} else {
|
|
82340
|
-
this.websocket?.send(
|
|
82340
|
+
this.websocket?.send(import_client50.pingConst);
|
|
82341
82341
|
}
|
|
82342
82342
|
}
|
|
82343
82343
|
};
|
|
@@ -82351,7 +82351,7 @@ var require_connection2 = __commonJS({
|
|
|
82351
82351
|
};
|
|
82352
82352
|
}
|
|
82353
82353
|
promise4.sendData();
|
|
82354
|
-
if (data.method !==
|
|
82354
|
+
if (data.method !== import_client50.pingConst) {
|
|
82355
82355
|
return await promise4.promise;
|
|
82356
82356
|
}
|
|
82357
82357
|
},
|
|
@@ -82517,7 +82517,7 @@ var require_lib19 = __commonJS({
|
|
|
82517
82517
|
default: () => index_default
|
|
82518
82518
|
});
|
|
82519
82519
|
module2.exports = __toCommonJS2(index_exports2);
|
|
82520
|
-
var
|
|
82520
|
+
var import_client50 = __toESM2(require_lib6());
|
|
82521
82521
|
var import_core65 = __toESM2(require_lib4());
|
|
82522
82522
|
var import_platform4 = __toESM2(require_lib());
|
|
82523
82523
|
var import_connection = require_connection2();
|
|
@@ -82561,8 +82561,8 @@ var require_lib19 = __commonJS({
|
|
|
82561
82561
|
return {
|
|
82562
82562
|
function: {
|
|
82563
82563
|
GetClient: /* @__PURE__ */ __name(async (token, endpoint, opt) => {
|
|
82564
|
-
const filterModel = (0, import_platform4.getMetadata)(
|
|
82565
|
-
const extraFilter = (0, import_platform4.getMetadata)(
|
|
82564
|
+
const filterModel = (0, import_platform4.getMetadata)(import_client50.default.metadata.FilterModel) ?? "none";
|
|
82565
|
+
const extraFilter = (0, import_platform4.getMetadata)(import_client50.default.metadata.ExtraFilter) ?? [];
|
|
82566
82566
|
const handler = /* @__PURE__ */ __name(async (handler2) => {
|
|
82567
82567
|
const url4 = (0, import_core65.concatLink)(endpoint, `/${token}`);
|
|
82568
82568
|
const upgradeHandler = /* @__PURE__ */ __name((...txes) => {
|
|
@@ -82590,7 +82590,7 @@ var require_lib19 = __commonJS({
|
|
|
82590
82590
|
throw new Error("Workspace or account not found in token");
|
|
82591
82591
|
}
|
|
82592
82592
|
const newOpt = { ...opt };
|
|
82593
|
-
const connectTimeout = opt?.connectionTimeout ?? (0, import_platform4.getMetadata)(
|
|
82593
|
+
const connectTimeout = opt?.connectionTimeout ?? (0, import_platform4.getMetadata)(import_client50.default.metadata.ConnectionTimeout);
|
|
82594
82594
|
let connectPromise;
|
|
82595
82595
|
if ((connectTimeout ?? 0) > 0) {
|
|
82596
82596
|
connectPromise = new Promise((resolve2, reject) => {
|
|
@@ -82642,7 +82642,7 @@ var require_lib19 = __commonJS({
|
|
|
82642
82642
|
function returnUITxes(txes, extraFilter) {
|
|
82643
82643
|
const configs = /* @__PURE__ */ new Map();
|
|
82644
82644
|
(0, import_core65.fillConfiguration)(txes, configs);
|
|
82645
|
-
const allowedPlugins = [...(0, import_platform4.getPlugins)(), ...(0, import_platform4.getMetadata)(
|
|
82645
|
+
const allowedPlugins = [...(0, import_platform4.getPlugins)(), ...(0, import_platform4.getMetadata)(import_client50.default.metadata.ExtraPlugins) ?? []];
|
|
82646
82646
|
const excludedPlugins = Array.from(configs.values()).filter(
|
|
82647
82647
|
(it) => !it.enabled || !allowedPlugins.includes(it.pluginId) || extraFilter.includes(it.pluginId)
|
|
82648
82648
|
);
|
|
@@ -82690,7 +82690,7 @@ var require_lib19 = __commonJS({
|
|
|
82690
82690
|
}
|
|
82691
82691
|
__name(returnClientTxes, "returnClientTxes");
|
|
82692
82692
|
function createModelPersistence(workspace) {
|
|
82693
|
-
const overrideStore = (0, import_platform4.getMetadata)(
|
|
82693
|
+
const overrideStore = (0, import_platform4.getMetadata)(import_client50.default.metadata.OverridePersistenceStore);
|
|
82694
82694
|
if (overrideStore !== void 0) {
|
|
82695
82695
|
return overrideStore;
|
|
82696
82696
|
}
|
|
@@ -82787,7 +82787,7 @@ var require_client6 = __commonJS({
|
|
|
82787
82787
|
});
|
|
82788
82788
|
module2.exports = __toCommonJS2(client_exports);
|
|
82789
82789
|
var import_account_client2 = require_lib5();
|
|
82790
|
-
var
|
|
82790
|
+
var import_client50 = __toESM2(require_lib6());
|
|
82791
82791
|
var import_core65 = require_lib4();
|
|
82792
82792
|
var import_platform4 = require_lib();
|
|
82793
82793
|
var import_config9 = require_config();
|
|
@@ -82813,9 +82813,9 @@ var require_client6 = __commonJS({
|
|
|
82813
82813
|
}
|
|
82814
82814
|
__name(connect, "connect");
|
|
82815
82815
|
async function createClient(url4, endpoint, token, workspaceUuid, account, config3, options) {
|
|
82816
|
-
(0, import_platform4.addLocation)(
|
|
82816
|
+
(0, import_platform4.addLocation)(import_client50.clientId, () => Promise.resolve().then(() => __toESM(require_lib19())));
|
|
82817
82817
|
const { socketFactory, connectionTimeout } = options;
|
|
82818
|
-
const clientFactory = await (0, import_platform4.getResource)(
|
|
82818
|
+
const clientFactory = await (0, import_platform4.getResource)(import_client50.default.function.GetClient);
|
|
82819
82819
|
const connection = await clientFactory(token, endpoint, {
|
|
82820
82820
|
socketFactory,
|
|
82821
82821
|
connectionTimeout
|
|
@@ -83936,11 +83936,11 @@ var require_storage2 = __commonJS({
|
|
|
83936
83936
|
var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
|
|
83937
83937
|
var storage_exports = {};
|
|
83938
83938
|
__export2(storage_exports, {
|
|
83939
|
-
connectStorage: () =>
|
|
83940
|
-
createStorageClient: () =>
|
|
83939
|
+
connectStorage: () => import_client50.connectStorage,
|
|
83940
|
+
createStorageClient: () => import_client50.createStorageClient
|
|
83941
83941
|
});
|
|
83942
83942
|
module2.exports = __toCommonJS2(storage_exports);
|
|
83943
|
-
var
|
|
83943
|
+
var import_client50 = require_client7();
|
|
83944
83944
|
__reExport2(storage_exports, require_error3(), module2.exports);
|
|
83945
83945
|
__reExport2(storage_exports, require_types8(), module2.exports);
|
|
83946
83946
|
}
|
|
@@ -171577,6 +171577,7 @@ var parseUnlinkDocumentFromIssueParams = Schema_exports.decodeUnknown(UnlinkDocu
|
|
|
171577
171577
|
// src/domain/schemas/notifications.ts
|
|
171578
171578
|
var DEFAULT_UNREAD_ONLY = false;
|
|
171579
171579
|
var DEFAULT_PINNED_CONTEXTS_ONLY = false;
|
|
171580
|
+
var DEFAULT_INCLUDE_HIDDEN_CONTEXTS = false;
|
|
171580
171581
|
var ListNotificationsParamsSchema = Schema_exports.Struct({
|
|
171581
171582
|
limit: Schema_exports.optional(
|
|
171582
171583
|
LimitParam.annotations({
|
|
@@ -171613,6 +171614,14 @@ var MarkNotificationReadParamsSchema = Schema_exports.Struct({
|
|
|
171613
171614
|
title: "MarkNotificationReadParams",
|
|
171614
171615
|
description: "Parameters for marking a notification as read"
|
|
171615
171616
|
});
|
|
171617
|
+
var MarkNotificationUnreadParamsSchema = Schema_exports.Struct({
|
|
171618
|
+
notificationId: NotificationId.annotations({
|
|
171619
|
+
description: "Notification ID to mark as unread"
|
|
171620
|
+
})
|
|
171621
|
+
}).annotations({
|
|
171622
|
+
title: "MarkNotificationUnreadParams",
|
|
171623
|
+
description: "Parameters for marking a notification as unread"
|
|
171624
|
+
});
|
|
171616
171625
|
var ArchiveNotificationParamsSchema = Schema_exports.Struct({
|
|
171617
171626
|
notificationId: NotificationId.annotations({
|
|
171618
171627
|
description: "Notification ID to archive"
|
|
@@ -171621,6 +171630,14 @@ var ArchiveNotificationParamsSchema = Schema_exports.Struct({
|
|
|
171621
171630
|
title: "ArchiveNotificationParams",
|
|
171622
171631
|
description: "Parameters for archiving a notification"
|
|
171623
171632
|
});
|
|
171633
|
+
var UnarchiveNotificationParamsSchema = Schema_exports.Struct({
|
|
171634
|
+
notificationId: NotificationId.annotations({
|
|
171635
|
+
description: "Notification ID to unarchive"
|
|
171636
|
+
})
|
|
171637
|
+
}).annotations({
|
|
171638
|
+
title: "UnarchiveNotificationParams",
|
|
171639
|
+
description: "Parameters for unarchiving a notification"
|
|
171640
|
+
});
|
|
171624
171641
|
var DeleteNotificationParamsSchema = Schema_exports.Struct({
|
|
171625
171642
|
notificationId: NotificationId.annotations({
|
|
171626
171643
|
description: "Notification ID to delete"
|
|
@@ -171650,6 +171667,11 @@ var ListNotificationContextsParamsSchema = Schema_exports.Struct({
|
|
|
171650
171667
|
Schema_exports.Boolean.annotations({
|
|
171651
171668
|
description: `Return only pinned contexts (default: ${DEFAULT_PINNED_CONTEXTS_ONLY})`
|
|
171652
171669
|
})
|
|
171670
|
+
),
|
|
171671
|
+
includeHidden: Schema_exports.optional(
|
|
171672
|
+
Schema_exports.Boolean.annotations({
|
|
171673
|
+
description: `Include hidden notification contexts in results (default: ${DEFAULT_INCLUDE_HIDDEN_CONTEXTS})`
|
|
171674
|
+
})
|
|
171653
171675
|
)
|
|
171654
171676
|
}).annotations({
|
|
171655
171677
|
title: "ListNotificationContextsParams",
|
|
@@ -171666,6 +171688,17 @@ var PinNotificationContextParamsSchema = Schema_exports.Struct({
|
|
|
171666
171688
|
title: "PinNotificationContextParams",
|
|
171667
171689
|
description: "Parameters for pinning/unpinning a notification context"
|
|
171668
171690
|
});
|
|
171691
|
+
var HideNotificationContextParamsSchema = Schema_exports.Struct({
|
|
171692
|
+
contextId: NotificationContextId.annotations({
|
|
171693
|
+
description: "Notification context ID to hide/unhide"
|
|
171694
|
+
}),
|
|
171695
|
+
hidden: Schema_exports.Boolean.annotations({
|
|
171696
|
+
description: "Whether to hide (true) or unhide (false) the context"
|
|
171697
|
+
})
|
|
171698
|
+
}).annotations({
|
|
171699
|
+
title: "HideNotificationContextParams",
|
|
171700
|
+
description: "Parameters for hiding/unhiding a notification context"
|
|
171701
|
+
});
|
|
171669
171702
|
var ListNotificationSettingsParamsSchema = Schema_exports.Struct({
|
|
171670
171703
|
limit: Schema_exports.optional(
|
|
171671
171704
|
LimitParam.annotations({
|
|
@@ -171690,11 +171723,14 @@ var UpdateNotificationProviderSettingParamsSchema = Schema_exports.Struct({
|
|
|
171690
171723
|
var listNotificationsParamsJsonSchema = JSONSchema_exports.make(ListNotificationsParamsSchema);
|
|
171691
171724
|
var getNotificationParamsJsonSchema = JSONSchema_exports.make(GetNotificationParamsSchema);
|
|
171692
171725
|
var markNotificationReadParamsJsonSchema = JSONSchema_exports.make(MarkNotificationReadParamsSchema);
|
|
171726
|
+
var markNotificationUnreadParamsJsonSchema = JSONSchema_exports.make(MarkNotificationUnreadParamsSchema);
|
|
171693
171727
|
var archiveNotificationParamsJsonSchema = JSONSchema_exports.make(ArchiveNotificationParamsSchema);
|
|
171728
|
+
var unarchiveNotificationParamsJsonSchema = JSONSchema_exports.make(UnarchiveNotificationParamsSchema);
|
|
171694
171729
|
var deleteNotificationParamsJsonSchema = JSONSchema_exports.make(DeleteNotificationParamsSchema);
|
|
171695
171730
|
var getNotificationContextParamsJsonSchema = JSONSchema_exports.make(GetNotificationContextParamsSchema);
|
|
171696
171731
|
var listNotificationContextsParamsJsonSchema = JSONSchema_exports.make(ListNotificationContextsParamsSchema);
|
|
171697
171732
|
var pinNotificationContextParamsJsonSchema = JSONSchema_exports.make(PinNotificationContextParamsSchema);
|
|
171733
|
+
var hideNotificationContextParamsJsonSchema = JSONSchema_exports.make(HideNotificationContextParamsSchema);
|
|
171698
171734
|
var listNotificationSettingsParamsJsonSchema = JSONSchema_exports.make(ListNotificationSettingsParamsSchema);
|
|
171699
171735
|
var updateNotificationProviderSettingParamsJsonSchema = JSONSchema_exports.make(
|
|
171700
171736
|
UpdateNotificationProviderSettingParamsSchema
|
|
@@ -171702,11 +171738,14 @@ var updateNotificationProviderSettingParamsJsonSchema = JSONSchema_exports.make(
|
|
|
171702
171738
|
var parseListNotificationsParams = Schema_exports.decodeUnknown(ListNotificationsParamsSchema);
|
|
171703
171739
|
var parseGetNotificationParams = Schema_exports.decodeUnknown(GetNotificationParamsSchema);
|
|
171704
171740
|
var parseMarkNotificationReadParams = Schema_exports.decodeUnknown(MarkNotificationReadParamsSchema);
|
|
171741
|
+
var parseMarkNotificationUnreadParams = Schema_exports.decodeUnknown(MarkNotificationUnreadParamsSchema);
|
|
171705
171742
|
var parseArchiveNotificationParams = Schema_exports.decodeUnknown(ArchiveNotificationParamsSchema);
|
|
171743
|
+
var parseUnarchiveNotificationParams = Schema_exports.decodeUnknown(UnarchiveNotificationParamsSchema);
|
|
171706
171744
|
var parseDeleteNotificationParams = Schema_exports.decodeUnknown(DeleteNotificationParamsSchema);
|
|
171707
171745
|
var parseGetNotificationContextParams = Schema_exports.decodeUnknown(GetNotificationContextParamsSchema);
|
|
171708
171746
|
var parseListNotificationContextsParams = Schema_exports.decodeUnknown(ListNotificationContextsParamsSchema);
|
|
171709
171747
|
var parsePinNotificationContextParams = Schema_exports.decodeUnknown(PinNotificationContextParamsSchema);
|
|
171748
|
+
var parseHideNotificationContextParams = Schema_exports.decodeUnknown(HideNotificationContextParamsSchema);
|
|
171710
171749
|
var parseListNotificationSettingsParams = Schema_exports.decodeUnknown(ListNotificationSettingsParamsSchema);
|
|
171711
171750
|
var parseUpdateNotificationProviderSettingParams = Schema_exports.decodeUnknown(
|
|
171712
171751
|
UpdateNotificationProviderSettingParamsSchema
|
|
@@ -172691,7 +172730,7 @@ var parseListDriveFileVersionsParams = Schema_exports.decodeUnknown(ListDriveFil
|
|
|
172691
172730
|
var parseRestoreDriveFileVersionParams = Schema_exports.decodeUnknown(RestoreDriveFileVersionParamsSchema);
|
|
172692
172731
|
|
|
172693
172732
|
// src/version.ts
|
|
172694
|
-
var VERSION = true ? "0.
|
|
172733
|
+
var VERSION = true ? "0.26.0" : "0.0.0-dev";
|
|
172695
172734
|
|
|
172696
172735
|
// src/mcp/tool-output-schema.ts
|
|
172697
172736
|
var defaultToolOutputSchema = {
|
|
@@ -182938,6 +182977,8 @@ var milestoneTools = [
|
|
|
182938
182977
|
|
|
182939
182978
|
// src/huly/operations/notifications.ts
|
|
182940
182979
|
var import_core40 = __toESM(require_lib4(), 1);
|
|
182980
|
+
|
|
182981
|
+
// src/huly/operations/notifications-shared.ts
|
|
182941
182982
|
var toDocNotifyContextSummary = (ctx) => ({
|
|
182942
182983
|
id: NotificationContextId.make(ctx._id),
|
|
182943
182984
|
objectId: DocId.make(ctx.objectId),
|
|
@@ -182967,63 +183008,37 @@ var findNotificationContext = (contextId) => Effect_exports.gen(function* () {
|
|
|
182967
183008
|
);
|
|
182968
183009
|
return { client, context: ctx };
|
|
182969
183010
|
});
|
|
182970
|
-
var
|
|
182971
|
-
|
|
182972
|
-
|
|
182973
|
-
|
|
182974
|
-
|
|
182975
|
-
|
|
182976
|
-
|
|
182977
|
-
|
|
183011
|
+
var findUnreadActiveNotifications = (client, limit) => client.findAll(
|
|
183012
|
+
notification.class.InboxNotification,
|
|
183013
|
+
hulyQuery({ isViewed: false, archived: false }),
|
|
183014
|
+
{ limit }
|
|
183015
|
+
);
|
|
183016
|
+
|
|
183017
|
+
// src/huly/operations/notifications-state.ts
|
|
183018
|
+
var BULK_NOTIFICATION_LIMIT = 200;
|
|
183019
|
+
var markNotificationRead = (params) => Effect_exports.gen(function* () {
|
|
183020
|
+
const { client, notification: notif } = yield* findNotification(params.notificationId);
|
|
183021
|
+
if (notif.isViewed) {
|
|
183022
|
+
return { id: NotificationId.make(notif._id), marked: true };
|
|
182978
183023
|
}
|
|
182979
|
-
const
|
|
182980
|
-
|
|
183024
|
+
const updateOps = {
|
|
183025
|
+
isViewed: true
|
|
183026
|
+
};
|
|
183027
|
+
yield* client.updateDoc(
|
|
182981
183028
|
notification.class.InboxNotification,
|
|
182982
|
-
|
|
182983
|
-
|
|
182984
|
-
|
|
182985
|
-
sort: {
|
|
182986
|
-
modifiedOn: import_core40.SortingOrder.Descending
|
|
182987
|
-
}
|
|
182988
|
-
}
|
|
183029
|
+
notif.space,
|
|
183030
|
+
notif._id,
|
|
183031
|
+
updateOps
|
|
182989
183032
|
);
|
|
182990
|
-
|
|
182991
|
-
id: NotificationId.make(n._id),
|
|
182992
|
-
isViewed: n.isViewed,
|
|
182993
|
-
archived: n.archived,
|
|
182994
|
-
objectId: DocId.make(n.objectId),
|
|
182995
|
-
objectClass: ObjectClassName.make(n.objectClass),
|
|
182996
|
-
title: n.title,
|
|
182997
|
-
body: n.body,
|
|
182998
|
-
createdOn: n.createdOn,
|
|
182999
|
-
modifiedOn: n.modifiedOn
|
|
183000
|
-
}));
|
|
183001
|
-
return summaries;
|
|
183002
|
-
});
|
|
183003
|
-
var getNotification = (params) => Effect_exports.gen(function* () {
|
|
183004
|
-
const { notification: notif } = yield* findNotification(params.notificationId);
|
|
183005
|
-
const result = {
|
|
183006
|
-
id: NotificationId.make(notif._id),
|
|
183007
|
-
isViewed: notif.isViewed,
|
|
183008
|
-
archived: notif.archived,
|
|
183009
|
-
objectId: DocId.make(notif.objectId),
|
|
183010
|
-
objectClass: ObjectClassName.make(notif.objectClass),
|
|
183011
|
-
docNotifyContextId: NotificationContextId.make(notif.docNotifyContext),
|
|
183012
|
-
title: notif.title,
|
|
183013
|
-
body: notif.body,
|
|
183014
|
-
data: notif.data ? notif.data : void 0,
|
|
183015
|
-
createdOn: notif.createdOn,
|
|
183016
|
-
modifiedOn: notif.modifiedOn
|
|
183017
|
-
};
|
|
183018
|
-
return result;
|
|
183033
|
+
return { id: NotificationId.make(notif._id), marked: true };
|
|
183019
183034
|
});
|
|
183020
|
-
var
|
|
183035
|
+
var markNotificationUnread = (params) => Effect_exports.gen(function* () {
|
|
183021
183036
|
const { client, notification: notif } = yield* findNotification(params.notificationId);
|
|
183022
|
-
if (notif.isViewed) {
|
|
183037
|
+
if (!notif.isViewed) {
|
|
183023
183038
|
return { id: NotificationId.make(notif._id), marked: true };
|
|
183024
183039
|
}
|
|
183025
183040
|
const updateOps = {
|
|
183026
|
-
isViewed:
|
|
183041
|
+
isViewed: false
|
|
183027
183042
|
};
|
|
183028
183043
|
yield* client.updateDoc(
|
|
183029
183044
|
notification.class.InboxNotification,
|
|
@@ -183035,11 +183050,7 @@ var markNotificationRead = (params) => Effect_exports.gen(function* () {
|
|
|
183035
183050
|
});
|
|
183036
183051
|
var markAllNotificationsRead = () => Effect_exports.gen(function* () {
|
|
183037
183052
|
const client = yield* HulyClient;
|
|
183038
|
-
const unreadNotifications = yield* client
|
|
183039
|
-
notification.class.InboxNotification,
|
|
183040
|
-
{ isViewed: false, archived: false },
|
|
183041
|
-
{ limit: 200 }
|
|
183042
|
-
);
|
|
183053
|
+
const unreadNotifications = yield* findUnreadActiveNotifications(client, BULK_NOTIFICATION_LIMIT);
|
|
183043
183054
|
yield* Effect_exports.forEach(
|
|
183044
183055
|
unreadNotifications,
|
|
183045
183056
|
(notif) => client.updateDoc(
|
|
@@ -183068,12 +183079,28 @@ var archiveNotification = (params) => Effect_exports.gen(function* () {
|
|
|
183068
183079
|
);
|
|
183069
183080
|
return { id: NotificationId.make(notif._id), archived: true };
|
|
183070
183081
|
});
|
|
183082
|
+
var unarchiveNotification = (params) => Effect_exports.gen(function* () {
|
|
183083
|
+
const { client, notification: notif } = yield* findNotification(params.notificationId);
|
|
183084
|
+
if (!notif.archived) {
|
|
183085
|
+
return { id: NotificationId.make(notif._id), archived: false };
|
|
183086
|
+
}
|
|
183087
|
+
const updateOps = {
|
|
183088
|
+
archived: false
|
|
183089
|
+
};
|
|
183090
|
+
yield* client.updateDoc(
|
|
183091
|
+
notification.class.InboxNotification,
|
|
183092
|
+
notif.space,
|
|
183093
|
+
notif._id,
|
|
183094
|
+
updateOps
|
|
183095
|
+
);
|
|
183096
|
+
return { id: NotificationId.make(notif._id), archived: false };
|
|
183097
|
+
});
|
|
183071
183098
|
var archiveAllNotifications = () => Effect_exports.gen(function* () {
|
|
183072
183099
|
const client = yield* HulyClient;
|
|
183073
183100
|
const activeNotifications = yield* client.findAll(
|
|
183074
183101
|
notification.class.InboxNotification,
|
|
183075
183102
|
{ archived: false },
|
|
183076
|
-
{ limit:
|
|
183103
|
+
{ limit: BULK_NOTIFICATION_LIMIT }
|
|
183077
183104
|
);
|
|
183078
183105
|
yield* Effect_exports.forEach(
|
|
183079
183106
|
activeNotifications,
|
|
@@ -183096,6 +183123,87 @@ var deleteNotification = (params) => Effect_exports.gen(function* () {
|
|
|
183096
183123
|
);
|
|
183097
183124
|
return { id: NotificationId.make(notif._id), deleted: true };
|
|
183098
183125
|
});
|
|
183126
|
+
var pinNotificationContext = (params) => Effect_exports.gen(function* () {
|
|
183127
|
+
const { client, context: context6 } = yield* findNotificationContext(params.contextId);
|
|
183128
|
+
if (context6.isPinned === params.pinned) {
|
|
183129
|
+
return { id: NotificationContextId.make(context6._id), isPinned: context6.isPinned };
|
|
183130
|
+
}
|
|
183131
|
+
const updateOps = {
|
|
183132
|
+
isPinned: params.pinned
|
|
183133
|
+
};
|
|
183134
|
+
yield* client.updateDoc(
|
|
183135
|
+
notification.class.DocNotifyContext,
|
|
183136
|
+
context6.space,
|
|
183137
|
+
context6._id,
|
|
183138
|
+
updateOps
|
|
183139
|
+
);
|
|
183140
|
+
return { id: NotificationContextId.make(context6._id), isPinned: params.pinned };
|
|
183141
|
+
});
|
|
183142
|
+
var hideNotificationContext = (params) => Effect_exports.gen(function* () {
|
|
183143
|
+
const { client, context: context6 } = yield* findNotificationContext(params.contextId);
|
|
183144
|
+
if (context6.hidden === params.hidden) {
|
|
183145
|
+
return { id: NotificationContextId.make(context6._id), hidden: context6.hidden };
|
|
183146
|
+
}
|
|
183147
|
+
const updateOps = {
|
|
183148
|
+
hidden: params.hidden
|
|
183149
|
+
};
|
|
183150
|
+
yield* client.updateDoc(
|
|
183151
|
+
notification.class.DocNotifyContext,
|
|
183152
|
+
context6.space,
|
|
183153
|
+
context6._id,
|
|
183154
|
+
updateOps
|
|
183155
|
+
);
|
|
183156
|
+
return { id: NotificationContextId.make(context6._id), hidden: params.hidden };
|
|
183157
|
+
});
|
|
183158
|
+
|
|
183159
|
+
// src/huly/operations/notifications.ts
|
|
183160
|
+
var listNotifications = (params) => Effect_exports.gen(function* () {
|
|
183161
|
+
const client = yield* HulyClient;
|
|
183162
|
+
const query = {
|
|
183163
|
+
...params.includeArchived ? {} : { archived: false },
|
|
183164
|
+
...params.unreadOnly ? { isViewed: false } : {}
|
|
183165
|
+
};
|
|
183166
|
+
const limit = clampLimit(params.limit);
|
|
183167
|
+
const notifications = yield* client.findAll(
|
|
183168
|
+
notification.class.InboxNotification,
|
|
183169
|
+
hulyQuery(query),
|
|
183170
|
+
{
|
|
183171
|
+
limit,
|
|
183172
|
+
sort: {
|
|
183173
|
+
modifiedOn: import_core40.SortingOrder.Descending
|
|
183174
|
+
}
|
|
183175
|
+
}
|
|
183176
|
+
);
|
|
183177
|
+
const summaries = notifications.map((n) => ({
|
|
183178
|
+
id: NotificationId.make(n._id),
|
|
183179
|
+
isViewed: n.isViewed,
|
|
183180
|
+
archived: n.archived,
|
|
183181
|
+
objectId: DocId.make(n.objectId),
|
|
183182
|
+
objectClass: ObjectClassName.make(n.objectClass),
|
|
183183
|
+
title: n.title,
|
|
183184
|
+
body: n.body,
|
|
183185
|
+
createdOn: n.createdOn,
|
|
183186
|
+
modifiedOn: n.modifiedOn
|
|
183187
|
+
}));
|
|
183188
|
+
return summaries;
|
|
183189
|
+
});
|
|
183190
|
+
var getNotification = (params) => Effect_exports.gen(function* () {
|
|
183191
|
+
const { notification: notif } = yield* findNotification(params.notificationId);
|
|
183192
|
+
const result = {
|
|
183193
|
+
id: NotificationId.make(notif._id),
|
|
183194
|
+
isViewed: notif.isViewed,
|
|
183195
|
+
archived: notif.archived,
|
|
183196
|
+
objectId: DocId.make(notif.objectId),
|
|
183197
|
+
objectClass: ObjectClassName.make(notif.objectClass),
|
|
183198
|
+
docNotifyContextId: NotificationContextId.make(notif.docNotifyContext),
|
|
183199
|
+
title: notif.title,
|
|
183200
|
+
body: notif.body,
|
|
183201
|
+
data: notif.data ? notif.data : void 0,
|
|
183202
|
+
createdOn: notif.createdOn,
|
|
183203
|
+
modifiedOn: notif.modifiedOn
|
|
183204
|
+
};
|
|
183205
|
+
return result;
|
|
183206
|
+
});
|
|
183099
183207
|
var getNotificationContext = (params) => Effect_exports.gen(function* () {
|
|
183100
183208
|
const client = yield* HulyClient;
|
|
183101
183209
|
const ctx = yield* client.findOne(
|
|
@@ -183113,15 +183221,13 @@ var getNotificationContext = (params) => Effect_exports.gen(function* () {
|
|
|
183113
183221
|
var listNotificationContexts = (params) => Effect_exports.gen(function* () {
|
|
183114
183222
|
const client = yield* HulyClient;
|
|
183115
183223
|
const query = {
|
|
183116
|
-
hidden: false
|
|
183224
|
+
...params.includeHidden ? {} : { hidden: false },
|
|
183225
|
+
...params.pinnedOnly ? { isPinned: true } : {}
|
|
183117
183226
|
};
|
|
183118
|
-
if (params.pinnedOnly) {
|
|
183119
|
-
query.isPinned = true;
|
|
183120
|
-
}
|
|
183121
183227
|
const limit = clampLimit(params.limit);
|
|
183122
183228
|
const contexts = yield* client.findAll(
|
|
183123
183229
|
notification.class.DocNotifyContext,
|
|
183124
|
-
query,
|
|
183230
|
+
hulyQuery(query),
|
|
183125
183231
|
{
|
|
183126
183232
|
limit,
|
|
183127
183233
|
sort: {
|
|
@@ -183131,22 +183237,6 @@ var listNotificationContexts = (params) => Effect_exports.gen(function* () {
|
|
|
183131
183237
|
);
|
|
183132
183238
|
return contexts.map(toDocNotifyContextSummary);
|
|
183133
183239
|
});
|
|
183134
|
-
var pinNotificationContext = (params) => Effect_exports.gen(function* () {
|
|
183135
|
-
const { client, context: context6 } = yield* findNotificationContext(params.contextId);
|
|
183136
|
-
if (context6.isPinned === params.pinned) {
|
|
183137
|
-
return { id: NotificationContextId.make(context6._id), isPinned: context6.isPinned };
|
|
183138
|
-
}
|
|
183139
|
-
const updateOps = {
|
|
183140
|
-
isPinned: params.pinned
|
|
183141
|
-
};
|
|
183142
|
-
yield* client.updateDoc(
|
|
183143
|
-
notification.class.DocNotifyContext,
|
|
183144
|
-
context6.space,
|
|
183145
|
-
context6._id,
|
|
183146
|
-
updateOps
|
|
183147
|
-
);
|
|
183148
|
-
return { id: NotificationContextId.make(context6._id), isPinned: params.pinned };
|
|
183149
|
-
});
|
|
183150
183240
|
var listNotificationSettings = (params) => Effect_exports.gen(function* () {
|
|
183151
183241
|
const client = yield* HulyClient;
|
|
183152
183242
|
const limit = clampLimit(params.limit);
|
|
@@ -183184,11 +183274,7 @@ var updateNotificationProviderSetting = (params) => Effect_exports.gen(function*
|
|
|
183184
183274
|
});
|
|
183185
183275
|
var getUnreadNotificationCount = () => Effect_exports.gen(function* () {
|
|
183186
183276
|
const client = yield* HulyClient;
|
|
183187
|
-
const unreadNotifications = yield* client
|
|
183188
|
-
notification.class.InboxNotification,
|
|
183189
|
-
{ isViewed: false, archived: false },
|
|
183190
|
-
{ limit: 1 }
|
|
183191
|
-
);
|
|
183277
|
+
const unreadNotifications = yield* findUnreadActiveNotifications(client, 1);
|
|
183192
183278
|
const count3 = unreadNotifications.total;
|
|
183193
183279
|
return { count: listTotal(count3) };
|
|
183194
183280
|
});
|
|
@@ -183220,7 +183306,7 @@ var notificationTools = [
|
|
|
183220
183306
|
},
|
|
183221
183307
|
{
|
|
183222
183308
|
name: "mark_notification_read",
|
|
183223
|
-
description: "Mark a notification as read.",
|
|
183309
|
+
description: "Mark a notification as read. Idempotent: returns success when the notification is already read.",
|
|
183224
183310
|
category: CATEGORY17,
|
|
183225
183311
|
inputSchema: markNotificationReadParamsJsonSchema,
|
|
183226
183312
|
handler: createToolHandler(
|
|
@@ -183229,6 +183315,17 @@ var notificationTools = [
|
|
|
183229
183315
|
markNotificationRead
|
|
183230
183316
|
)
|
|
183231
183317
|
},
|
|
183318
|
+
{
|
|
183319
|
+
name: "mark_notification_unread",
|
|
183320
|
+
description: "Mark a notification as unread. Idempotent: returns success when the notification is already unread.",
|
|
183321
|
+
category: CATEGORY17,
|
|
183322
|
+
inputSchema: markNotificationUnreadParamsJsonSchema,
|
|
183323
|
+
handler: createToolHandler(
|
|
183324
|
+
"mark_notification_unread",
|
|
183325
|
+
parseMarkNotificationUnreadParams,
|
|
183326
|
+
markNotificationUnread
|
|
183327
|
+
)
|
|
183328
|
+
},
|
|
183232
183329
|
{
|
|
183233
183330
|
name: "mark_all_notifications_read",
|
|
183234
183331
|
description: "Mark all unread notifications as read. Returns the count of notifications marked.",
|
|
@@ -183242,7 +183339,7 @@ var notificationTools = [
|
|
|
183242
183339
|
},
|
|
183243
183340
|
{
|
|
183244
183341
|
name: "archive_notification",
|
|
183245
|
-
description: "Archive a notification. Archived notifications are hidden from the main inbox view.",
|
|
183342
|
+
description: "Archive a notification. Archived notifications are hidden from the main inbox view. Idempotent when already archived.",
|
|
183246
183343
|
category: CATEGORY17,
|
|
183247
183344
|
inputSchema: archiveNotificationParamsJsonSchema,
|
|
183248
183345
|
handler: createToolHandler(
|
|
@@ -183251,6 +183348,17 @@ var notificationTools = [
|
|
|
183251
183348
|
archiveNotification
|
|
183252
183349
|
)
|
|
183253
183350
|
},
|
|
183351
|
+
{
|
|
183352
|
+
name: "unarchive_notification",
|
|
183353
|
+
description: "Unarchive a notification so it can appear in active notification lists again. Idempotent when already active.",
|
|
183354
|
+
category: CATEGORY17,
|
|
183355
|
+
inputSchema: unarchiveNotificationParamsJsonSchema,
|
|
183356
|
+
handler: createToolHandler(
|
|
183357
|
+
"unarchive_notification",
|
|
183358
|
+
parseUnarchiveNotificationParams,
|
|
183359
|
+
unarchiveNotification
|
|
183360
|
+
)
|
|
183361
|
+
},
|
|
183254
183362
|
{
|
|
183255
183363
|
name: "archive_all_notifications",
|
|
183256
183364
|
description: "Archive all notifications. Returns the count of notifications archived.",
|
|
@@ -183286,7 +183394,7 @@ var notificationTools = [
|
|
|
183286
183394
|
},
|
|
183287
183395
|
{
|
|
183288
183396
|
name: "list_notification_contexts",
|
|
183289
|
-
description: "List notification contexts. Returns contexts sorted by last update timestamp (newest first). Supports filtering by pinned status.",
|
|
183397
|
+
description: "List notification contexts. Returns contexts sorted by last update timestamp (newest first). Supports filtering by pinned status and can include hidden contexts.",
|
|
183290
183398
|
category: CATEGORY17,
|
|
183291
183399
|
inputSchema: listNotificationContextsParamsJsonSchema,
|
|
183292
183400
|
handler: createToolHandler(
|
|
@@ -183297,7 +183405,7 @@ var notificationTools = [
|
|
|
183297
183405
|
},
|
|
183298
183406
|
{
|
|
183299
183407
|
name: "pin_notification_context",
|
|
183300
|
-
description: "Pin or unpin a notification context. Pinned contexts are highlighted in the inbox.",
|
|
183408
|
+
description: "Pin or unpin a notification context. Pinned contexts are highlighted in the inbox. Idempotent when the pin state already matches.",
|
|
183301
183409
|
category: CATEGORY17,
|
|
183302
183410
|
inputSchema: pinNotificationContextParamsJsonSchema,
|
|
183303
183411
|
handler: createToolHandler(
|
|
@@ -183306,6 +183414,17 @@ var notificationTools = [
|
|
|
183306
183414
|
pinNotificationContext
|
|
183307
183415
|
)
|
|
183308
183416
|
},
|
|
183417
|
+
{
|
|
183418
|
+
name: "hide_notification_context",
|
|
183419
|
+
description: "Hide or unhide a notification context. Hidden contexts are omitted from list_notification_contexts unless includeHidden is true. Idempotent when the hidden state already matches.",
|
|
183420
|
+
category: CATEGORY17,
|
|
183421
|
+
inputSchema: hideNotificationContextParamsJsonSchema,
|
|
183422
|
+
handler: createToolHandler(
|
|
183423
|
+
"hide_notification_context",
|
|
183424
|
+
parseHideNotificationContextParams,
|
|
183425
|
+
hideNotificationContext
|
|
183426
|
+
)
|
|
183427
|
+
},
|
|
183309
183428
|
{
|
|
183310
183429
|
name: "list_notification_settings",
|
|
183311
183430
|
description: "List notification provider settings. Returns current notification preferences.",
|