@firfi/huly-mcp 0.9.3 → 0.10.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 +3 -3
- package/dist/index.cjs +125 -23
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -295,12 +295,13 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @firfi/huly-m
|
|
|
295
295
|
| Tool | Description |
|
|
296
296
|
|------|-------------|
|
|
297
297
|
| `list_events` | List calendar events. Returns events sorted by date. Supports filtering by date range. |
|
|
298
|
+
| `list_calendars` | List writable, non-hidden calendars that can be used as create_event or create_recurring_event targets. Use this before creating events when you need to choose a target calendarId explicitly. |
|
|
298
299
|
| `get_event` | Retrieve full details for a calendar event including description. Use this to view event content and metadata. |
|
|
299
|
-
| `create_event` | Create a new calendar event. Description supports markdown formatting. Returns the created event ID. |
|
|
300
|
+
| `create_event` | Create a new calendar event. Description supports markdown formatting. Optional calendarId targets a specific calendar; when omitted, the event uses the authenticated user's primary personal calendar. Returns the created event ID. |
|
|
300
301
|
| `update_event` | Update fields on an existing calendar event. Only provided fields are modified. Description updates support markdown. |
|
|
301
302
|
| `delete_event` | Permanently delete a calendar event. This action cannot be undone. |
|
|
302
303
|
| `list_recurring_events` | List recurring event definitions. Returns recurring events sorted by modification date (newest first). |
|
|
303
|
-
| `create_recurring_event` | Create a new recurring calendar event with RFC5545 RRULE rules. Description supports markdown. Returns the created event ID. |
|
|
304
|
+
| `create_recurring_event` | Create a new recurring calendar event with RFC5545 RRULE rules. Description supports markdown. Optional calendarId targets a specific calendar; when omitted, the event uses the authenticated user's primary personal calendar. Returns the created event ID. |
|
|
304
305
|
| `list_event_instances` | List instances of a recurring event. Returns instances sorted by date. Supports filtering by date range. Use includeParticipants=true to fetch full participant info (extra lookups). |
|
|
305
306
|
|
|
306
307
|
### Time Tracking
|
|
@@ -523,4 +524,3 @@ The CockroachDB credentials can be found in your Huly `compose.yml` or via `dock
|
|
|
523
524
|
|
|
524
525
|
- **Bash wrapper scripts** (sourcing `.env` files) may not work reliably when launched by MCP clients on Windows. Prefer setting env vars directly in the MCP config JSON.
|
|
525
526
|
- **Docker pulls over SSH** may fail on Windows due to credential manager issues. Pull images from the server desktop if needed.
|
|
526
|
-
|
package/dist/index.cjs
CHANGED
|
@@ -114648,7 +114648,7 @@ var require_utils15 = __commonJS({
|
|
|
114648
114648
|
generateEventId: () => generateEventId3,
|
|
114649
114649
|
generateRecurringValues: () => generateRecurringValues,
|
|
114650
114650
|
getAllEvents: () => getAllEvents,
|
|
114651
|
-
getPrimaryCalendar: () =>
|
|
114651
|
+
getPrimaryCalendar: () => getPrimaryCalendar2,
|
|
114652
114652
|
getWeekday: () => getWeekday
|
|
114653
114653
|
});
|
|
114654
114654
|
module2.exports = __toCommonJS2(utils_exports);
|
|
@@ -115004,7 +115004,7 @@ var require_utils15 = __commonJS({
|
|
|
115004
115004
|
return result;
|
|
115005
115005
|
}
|
|
115006
115006
|
__name(encodeToBase32Hex, "encodeToBase32Hex");
|
|
115007
|
-
function
|
|
115007
|
+
function getPrimaryCalendar2(calendars, preference, acc) {
|
|
115008
115008
|
if (preference?.attachedTo !== void 0) {
|
|
115009
115009
|
const pref = calendars.find((p) => p._id === preference.attachedTo && p);
|
|
115010
115010
|
if (pref !== void 0) return pref._id;
|
|
@@ -115016,7 +115016,7 @@ var require_utils15 = __commonJS({
|
|
|
115016
115016
|
}
|
|
115017
115017
|
return `${acc}_calendar`;
|
|
115018
115018
|
}
|
|
115019
|
-
__name(
|
|
115019
|
+
__name(getPrimaryCalendar2, "getPrimaryCalendar");
|
|
115020
115020
|
}
|
|
115021
115021
|
});
|
|
115022
115022
|
|
|
@@ -115044,7 +115044,7 @@ var require_lib25 = __commonJS({
|
|
|
115044
115044
|
var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
|
|
115045
115045
|
var index_exports2 = {};
|
|
115046
115046
|
__export2(index_exports2, {
|
|
115047
|
-
AccessLevel: () =>
|
|
115047
|
+
AccessLevel: () => AccessLevel5,
|
|
115048
115048
|
caldavIntegrationKind: () => caldavIntegrationKind,
|
|
115049
115049
|
calendarId: () => calendarId,
|
|
115050
115050
|
calendarIntegrationKind: () => calendarIntegrationKind,
|
|
@@ -115053,13 +115053,13 @@ var require_lib25 = __commonJS({
|
|
|
115053
115053
|
module2.exports = __toCommonJS2(index_exports2);
|
|
115054
115054
|
var import_platform3 = require_lib();
|
|
115055
115055
|
__reExport2(index_exports2, require_utils15(), module2.exports);
|
|
115056
|
-
var
|
|
115056
|
+
var AccessLevel5 = /* @__PURE__ */ ((AccessLevel22) => {
|
|
115057
115057
|
AccessLevel22["FreeBusyReader"] = "freeBusyReader";
|
|
115058
115058
|
AccessLevel22["Reader"] = "reader";
|
|
115059
115059
|
AccessLevel22["Writer"] = "writer";
|
|
115060
115060
|
AccessLevel22["Owner"] = "owner";
|
|
115061
115061
|
return AccessLevel22;
|
|
115062
|
-
})(
|
|
115062
|
+
})(AccessLevel5 || {});
|
|
115063
115063
|
var calendarIntegrationKind = "google-calendar";
|
|
115064
115064
|
var caldavIntegrationKind = "caldav";
|
|
115065
115065
|
var calendarId = "calendar";
|
|
@@ -150577,6 +150577,7 @@ var TeamspaceId = HulyRef("TeamspaceId");
|
|
|
150577
150577
|
var NotificationId = HulyRef("NotificationId");
|
|
150578
150578
|
var NotificationContextId = HulyRef("NotificationContextId");
|
|
150579
150579
|
var EventId = HulyRef("EventId");
|
|
150580
|
+
var CalendarId = HulyRef("CalendarId");
|
|
150580
150581
|
var TodoId = HulyRef("TodoId");
|
|
150581
150582
|
var SpaceId = HulyRef("SpaceId");
|
|
150582
150583
|
var CommentId = HulyRef("CommentId");
|
|
@@ -151527,7 +151528,15 @@ var HulyClient = class _HulyClient extends Context_exports.Tag("@hulymcp/HulyCli
|
|
|
151527
151528
|
Effect_exports.gen(function* () {
|
|
151528
151529
|
const config3 = yield* HulyConfigService;
|
|
151529
151530
|
const sdk = yield* HulySdk;
|
|
151530
|
-
const {
|
|
151531
|
+
const {
|
|
151532
|
+
accountUuid,
|
|
151533
|
+
client,
|
|
151534
|
+
imageUrl,
|
|
151535
|
+
markupOps,
|
|
151536
|
+
primarySocialId,
|
|
151537
|
+
refUrl,
|
|
151538
|
+
workspaceUrlSlug
|
|
151539
|
+
} = yield* connectRestWithRetry({
|
|
151531
151540
|
url: config3.url,
|
|
151532
151541
|
auth: config3.auth,
|
|
151533
151542
|
workspace: config3.workspace
|
|
@@ -151549,6 +151558,7 @@ var HulyClient = class _HulyClient extends Context_exports.Tag("@hulymcp/HulyCli
|
|
|
151549
151558
|
});
|
|
151550
151559
|
const operations = {
|
|
151551
151560
|
getAccountUuid: () => accountUuid,
|
|
151561
|
+
getPrimarySocialId: () => primarySocialId,
|
|
151552
151562
|
documentUrlConfig,
|
|
151553
151563
|
markupUrlConfig,
|
|
151554
151564
|
findAll: (_class, query, options) => withClient(
|
|
@@ -151630,6 +151640,9 @@ var HulyClient = class _HulyClient extends Context_exports.Tag("@hulymcp/HulyCli
|
|
|
151630
151640
|
// AccountUuid is a double-branded string type with no public constructor
|
|
151631
151641
|
// eslint-disable-next-line no-restricted-syntax -- see above
|
|
151632
151642
|
getAccountUuid: () => "test-account-uuid",
|
|
151643
|
+
// PersonId is a branded string type with no public constructor
|
|
151644
|
+
// eslint-disable-next-line no-restricted-syntax -- see above
|
|
151645
|
+
getPrimarySocialId: () => "test-primary-social-id",
|
|
151633
151646
|
documentUrlConfig: {
|
|
151634
151647
|
baseUrl: UrlString.make("https://test.huly.local"),
|
|
151635
151648
|
workspaceUrlSlug: WorkspaceUrlSlug.make("test-workspace")
|
|
@@ -151696,6 +151709,7 @@ var connectRest = async (config3, sdk) => {
|
|
|
151696
151709
|
return {
|
|
151697
151710
|
client,
|
|
151698
151711
|
accountUuid: account.uuid,
|
|
151712
|
+
primarySocialId: account.primarySocialId,
|
|
151699
151713
|
workspaceUrlSlug: WorkspaceUrlSlug.make(info.workspaceUrl),
|
|
151700
151714
|
markupOps,
|
|
151701
151715
|
refUrl,
|
|
@@ -171276,7 +171290,7 @@ var PostHog = class extends PostHogBackendClient {
|
|
|
171276
171290
|
};
|
|
171277
171291
|
|
|
171278
171292
|
// src/version.ts
|
|
171279
|
-
var VERSION = true ? "0.
|
|
171293
|
+
var VERSION = true ? "0.10.0" : "0.0.0-dev";
|
|
171280
171294
|
|
|
171281
171295
|
// src/telemetry/posthog.ts
|
|
171282
171296
|
var POSTHOG_API_KEY = "phc_TGfFqCGdnF0p68wuFzd5WSw1IsBvOJW0YgoMJDyZPjm";
|
|
@@ -173564,6 +173578,10 @@ var GetEventParamsSchema = Schema_exports.Struct({
|
|
|
173564
173578
|
title: "GetEventParams",
|
|
173565
173579
|
description: "Parameters for getting a single event"
|
|
173566
173580
|
});
|
|
173581
|
+
var ListCalendarsParamsSchema = EmptyParamsSchema.annotations({
|
|
173582
|
+
title: "ListCalendarsParams",
|
|
173583
|
+
description: "Parameters for listing writable calendar targets"
|
|
173584
|
+
});
|
|
173567
173585
|
var CreateEventParamsSchema = Schema_exports.Struct({
|
|
173568
173586
|
title: NonEmptyString2.annotations({
|
|
173569
173587
|
description: "Event title"
|
|
@@ -173590,6 +173608,9 @@ var CreateEventParamsSchema = Schema_exports.Struct({
|
|
|
173590
173608
|
),
|
|
173591
173609
|
visibility: Schema_exports.optional(VisibilitySchema.annotations({
|
|
173592
173610
|
description: "Event visibility (public, freeBusy, private)"
|
|
173611
|
+
})),
|
|
173612
|
+
calendarId: Schema_exports.optional(CalendarId.annotations({
|
|
173613
|
+
description: "Target writable calendar ID. If omitted, uses the authenticated user's primary personal calendar. Use list_calendars to discover valid calendar IDs."
|
|
173593
173614
|
}))
|
|
173594
173615
|
}).annotations({
|
|
173595
173616
|
title: "CreateEventParams",
|
|
@@ -173674,6 +173695,9 @@ var CreateRecurringEventParamsSchema = Schema_exports.Struct({
|
|
|
173674
173695
|
})),
|
|
173675
173696
|
visibility: Schema_exports.optional(VisibilitySchema.annotations({
|
|
173676
173697
|
description: "Event visibility (public, freeBusy, private)"
|
|
173698
|
+
})),
|
|
173699
|
+
calendarId: Schema_exports.optional(CalendarId.annotations({
|
|
173700
|
+
description: "Target writable calendar ID. If omitted, uses the authenticated user's primary personal calendar. Use list_calendars to discover valid calendar IDs."
|
|
173677
173701
|
}))
|
|
173678
173702
|
}).annotations({
|
|
173679
173703
|
title: "CreateRecurringEventParams",
|
|
@@ -173703,6 +173727,7 @@ var ListEventInstancesParamsSchema = Schema_exports.Struct({
|
|
|
173703
173727
|
});
|
|
173704
173728
|
var listEventsParamsJsonSchema = JSONSchema_exports.make(ListEventsParamsSchema);
|
|
173705
173729
|
var getEventParamsJsonSchema = JSONSchema_exports.make(GetEventParamsSchema);
|
|
173730
|
+
var listCalendarsParamsJsonSchema = JSONSchema_exports.make(ListCalendarsParamsSchema);
|
|
173706
173731
|
var createEventParamsJsonSchema = JSONSchema_exports.make(CreateEventParamsSchema);
|
|
173707
173732
|
var updateEventParamsJsonSchema = JSONSchema_exports.make(UpdateEventParamsSchema);
|
|
173708
173733
|
var deleteEventParamsJsonSchema = JSONSchema_exports.make(DeleteEventParamsSchema);
|
|
@@ -173711,6 +173736,7 @@ var createRecurringEventParamsJsonSchema = JSONSchema_exports.make(CreateRecurri
|
|
|
173711
173736
|
var listEventInstancesParamsJsonSchema = JSONSchema_exports.make(ListEventInstancesParamsSchema);
|
|
173712
173737
|
var parseListEventsParams = Schema_exports.decodeUnknown(ListEventsParamsSchema);
|
|
173713
173738
|
var parseGetEventParams = Schema_exports.decodeUnknown(GetEventParamsSchema);
|
|
173739
|
+
var parseListCalendarsParams = Schema_exports.decodeUnknown(ListCalendarsParamsSchema);
|
|
173714
173740
|
var parseCreateEventParams = Schema_exports.decodeUnknown(CreateEventParamsSchema);
|
|
173715
173741
|
var parseUpdateEventParams = Schema_exports.decodeUnknown(UpdateEventParamsSchema);
|
|
173716
173742
|
var parseDeleteEventParams = Schema_exports.decodeUnknown(DeleteEventParamsSchema);
|
|
@@ -173719,10 +173745,11 @@ var parseCreateRecurringEventParams = Schema_exports.decodeUnknown(CreateRecurri
|
|
|
173719
173745
|
var parseListEventInstancesParams = Schema_exports.decodeUnknown(ListEventInstancesParamsSchema);
|
|
173720
173746
|
|
|
173721
173747
|
// src/huly/operations/calendar.ts
|
|
173722
|
-
var
|
|
173748
|
+
var import_calendar3 = __toESM(require_lib25(), 1);
|
|
173723
173749
|
var import_core25 = __toESM(require_lib4(), 1);
|
|
173724
173750
|
|
|
173725
173751
|
// src/huly/operations/calendar-shared.ts
|
|
173752
|
+
var import_calendar = __toESM(require_lib25(), 1);
|
|
173726
173753
|
var descriptionAsMarkupRef = (desc) => desc;
|
|
173727
173754
|
var markupRefAsDescription = (ref) => ref ?? "";
|
|
173728
173755
|
var emptyEventDescription = "";
|
|
@@ -173747,10 +173774,46 @@ var findPersonsByEmails = (client, emails) => Effect_exports.gen(function* () {
|
|
|
173747
173774
|
);
|
|
173748
173775
|
return persons;
|
|
173749
173776
|
});
|
|
173750
|
-
var
|
|
173777
|
+
var findWritablePersonalCalendars = (client) => client.findAll(
|
|
173751
173778
|
calendar.class.Calendar,
|
|
173752
|
-
{
|
|
173779
|
+
{
|
|
173780
|
+
user: client.getPrimarySocialId(),
|
|
173781
|
+
hidden: false,
|
|
173782
|
+
access: { $in: [import_calendar.AccessLevel.Owner, import_calendar.AccessLevel.Writer] }
|
|
173783
|
+
}
|
|
173753
173784
|
);
|
|
173785
|
+
var findWritableCalendars = (client) => client.findAll(
|
|
173786
|
+
calendar.class.Calendar,
|
|
173787
|
+
{
|
|
173788
|
+
hidden: false,
|
|
173789
|
+
access: { $in: [import_calendar.AccessLevel.Owner, import_calendar.AccessLevel.Writer] }
|
|
173790
|
+
}
|
|
173791
|
+
);
|
|
173792
|
+
var getDefaultCalendarRef = (client) => Effect_exports.gen(function* () {
|
|
173793
|
+
const calendars = yield* findWritablePersonalCalendars(client);
|
|
173794
|
+
const preference = yield* client.findOne(
|
|
173795
|
+
calendar.class.PrimaryCalendar,
|
|
173796
|
+
{}
|
|
173797
|
+
);
|
|
173798
|
+
return (0, import_calendar.getPrimaryCalendar)(calendars, preference, client.getAccountUuid());
|
|
173799
|
+
});
|
|
173800
|
+
var resolveCalendarRef = (client, calendarId) => Effect_exports.gen(function* () {
|
|
173801
|
+
if (calendarId === void 0) {
|
|
173802
|
+
return yield* getDefaultCalendarRef(client);
|
|
173803
|
+
}
|
|
173804
|
+
const cal = yield* client.findOne(
|
|
173805
|
+
calendar.class.Calendar,
|
|
173806
|
+
{
|
|
173807
|
+
_id: toRef(calendarId),
|
|
173808
|
+
hidden: false,
|
|
173809
|
+
access: { $in: [import_calendar.AccessLevel.Owner, import_calendar.AccessLevel.Writer] }
|
|
173810
|
+
}
|
|
173811
|
+
);
|
|
173812
|
+
if (cal === void 0) {
|
|
173813
|
+
return yield* new HulyError({ message: `Calendar '${calendarId}' not found or not accessible` });
|
|
173814
|
+
}
|
|
173815
|
+
return cal._id;
|
|
173816
|
+
});
|
|
173754
173817
|
var buildParticipants = (client, participantRefs) => Effect_exports.gen(function* () {
|
|
173755
173818
|
if (participantRefs.length === 0) return [];
|
|
173756
173819
|
const persons = yield* client.findAll(
|
|
@@ -173763,8 +173826,7 @@ var buildParticipants = (client, participantRefs) => Effect_exports.gen(function
|
|
|
173763
173826
|
}));
|
|
173764
173827
|
});
|
|
173765
173828
|
var resolveEventInputs = (client, params, eventClass, eventId) => Effect_exports.gen(function* () {
|
|
173766
|
-
const
|
|
173767
|
-
const calendarRef = cal?._id ?? toRef("");
|
|
173829
|
+
const calendarRef = yield* resolveCalendarRef(client, params.calendarId);
|
|
173768
173830
|
const participantRefs = params.participants && params.participants.length > 0 ? (yield* findPersonsByEmails(client, params.participants)).map((p) => p._id) : [];
|
|
173769
173831
|
const descriptionRef = params.description && params.description.trim() !== "" ? yield* client.uploadMarkup(
|
|
173770
173832
|
eventClass,
|
|
@@ -173777,7 +173839,7 @@ var resolveEventInputs = (client, params, eventClass, eventId) => Effect_exports
|
|
|
173777
173839
|
});
|
|
173778
173840
|
|
|
173779
173841
|
// src/huly/operations/calendar-recurring.ts
|
|
173780
|
-
var
|
|
173842
|
+
var import_calendar2 = __toESM(require_lib25(), 1);
|
|
173781
173843
|
var import_core24 = __toESM(require_lib4(), 1);
|
|
173782
173844
|
var hulyRuleToRule = (rule) => ({
|
|
173783
173845
|
freq: rule.freq,
|
|
@@ -173827,7 +173889,7 @@ var listRecurringEvents = (params) => Effect_exports.gen(function* () {
|
|
|
173827
173889
|
});
|
|
173828
173890
|
var createRecurringEvent = (params) => Effect_exports.gen(function* () {
|
|
173829
173891
|
const client = yield* HulyClient;
|
|
173830
|
-
const eventId = (0,
|
|
173892
|
+
const eventId = (0, import_calendar2.generateEventId)();
|
|
173831
173893
|
const dueDate = params.dueDate ?? params.startDate + ONE_HOUR_MS;
|
|
173832
173894
|
const { calendarRef, descriptionRef, participantRefs } = yield* resolveEventInputs(
|
|
173833
173895
|
client,
|
|
@@ -173846,7 +173908,7 @@ var createRecurringEvent = (params) => Effect_exports.gen(function* () {
|
|
|
173846
173908
|
calendar: calendarRef,
|
|
173847
173909
|
participants: participantRefs,
|
|
173848
173910
|
externalParticipants: [],
|
|
173849
|
-
access:
|
|
173911
|
+
access: import_calendar2.AccessLevel.Owner,
|
|
173850
173912
|
user: serverPopulatedUser,
|
|
173851
173913
|
blockTime: false,
|
|
173852
173914
|
rules: hulyRules,
|
|
@@ -173936,6 +173998,17 @@ var listEventInstances = (params) => Effect_exports.gen(function* () {
|
|
|
173936
173998
|
});
|
|
173937
173999
|
|
|
173938
174000
|
// src/huly/operations/calendar.ts
|
|
174001
|
+
var toWritableCalendarAccess = (access) => {
|
|
174002
|
+
switch (access) {
|
|
174003
|
+
case import_calendar3.AccessLevel.Writer:
|
|
174004
|
+
return "writer";
|
|
174005
|
+
case import_calendar3.AccessLevel.Owner:
|
|
174006
|
+
return "owner";
|
|
174007
|
+
case import_calendar3.AccessLevel.FreeBusyReader:
|
|
174008
|
+
case import_calendar3.AccessLevel.Reader:
|
|
174009
|
+
return void 0;
|
|
174010
|
+
}
|
|
174011
|
+
};
|
|
173939
174012
|
var listEvents = (params) => Effect_exports.gen(function* () {
|
|
173940
174013
|
const client = yield* HulyClient;
|
|
173941
174014
|
const query = {};
|
|
@@ -173965,6 +174038,24 @@ var listEvents = (params) => Effect_exports.gen(function* () {
|
|
|
173965
174038
|
}));
|
|
173966
174039
|
return summaries;
|
|
173967
174040
|
});
|
|
174041
|
+
var listCalendars = (_params) => Effect_exports.gen(function* () {
|
|
174042
|
+
const client = yield* HulyClient;
|
|
174043
|
+
const calendars = yield* findWritableCalendars(client);
|
|
174044
|
+
const primaryCalendarRef = yield* getDefaultCalendarRef(client);
|
|
174045
|
+
return calendars.flatMap((cal) => {
|
|
174046
|
+
const access = toWritableCalendarAccess(cal.access);
|
|
174047
|
+
if (access === void 0) return [];
|
|
174048
|
+
return [{
|
|
174049
|
+
calendarId: CalendarId.make(cal._id),
|
|
174050
|
+
name: cal.name,
|
|
174051
|
+
hidden: cal.hidden,
|
|
174052
|
+
visibility: visibilityToString(cal.visibility) ?? "private",
|
|
174053
|
+
user: PersonId.make(cal.user),
|
|
174054
|
+
access,
|
|
174055
|
+
isPrimary: cal._id === primaryCalendarRef
|
|
174056
|
+
}];
|
|
174057
|
+
});
|
|
174058
|
+
});
|
|
173968
174059
|
var getEvent = (params) => Effect_exports.gen(function* () {
|
|
173969
174060
|
const client = yield* HulyClient;
|
|
173970
174061
|
const event = yield* client.findOne(
|
|
@@ -173993,7 +174084,7 @@ var getEvent = (params) => Effect_exports.gen(function* () {
|
|
|
173993
174084
|
visibility: visibilityToString(event.visibility),
|
|
173994
174085
|
participants,
|
|
173995
174086
|
externalParticipants: (event.externalParticipants || []).map((p) => Email.make(p)),
|
|
173996
|
-
calendarId: event.calendar,
|
|
174087
|
+
calendarId: CalendarId.make(event.calendar),
|
|
173997
174088
|
modifiedOn: event.modifiedOn,
|
|
173998
174089
|
createdOn: event.createdOn
|
|
173999
174090
|
};
|
|
@@ -174001,7 +174092,7 @@ var getEvent = (params) => Effect_exports.gen(function* () {
|
|
|
174001
174092
|
});
|
|
174002
174093
|
var createEvent = (params) => Effect_exports.gen(function* () {
|
|
174003
174094
|
const client = yield* HulyClient;
|
|
174004
|
-
const eventId = (0,
|
|
174095
|
+
const eventId = (0, import_calendar3.generateEventId)();
|
|
174005
174096
|
const dueDate = params.dueDate ?? params.date + ONE_HOUR_MS;
|
|
174006
174097
|
const { calendarRef, descriptionRef, participantRefs } = yield* resolveEventInputs(
|
|
174007
174098
|
client,
|
|
@@ -174019,7 +174110,7 @@ var createEvent = (params) => Effect_exports.gen(function* () {
|
|
|
174019
174110
|
calendar: calendarRef,
|
|
174020
174111
|
participants: participantRefs,
|
|
174021
174112
|
externalParticipants: [],
|
|
174022
|
-
access:
|
|
174113
|
+
access: import_calendar3.AccessLevel.Owner,
|
|
174023
174114
|
user: serverPopulatedUser,
|
|
174024
174115
|
blockTime: false
|
|
174025
174116
|
};
|
|
@@ -174141,6 +174232,17 @@ var calendarTools = [
|
|
|
174141
174232
|
listEvents
|
|
174142
174233
|
)
|
|
174143
174234
|
},
|
|
174235
|
+
{
|
|
174236
|
+
name: "list_calendars",
|
|
174237
|
+
description: "List writable, non-hidden calendars that can be used as create_event or create_recurring_event targets. Use this before creating events when you need to choose a target calendarId explicitly.",
|
|
174238
|
+
category: CATEGORY3,
|
|
174239
|
+
inputSchema: listCalendarsParamsJsonSchema,
|
|
174240
|
+
handler: createToolHandler(
|
|
174241
|
+
"list_calendars",
|
|
174242
|
+
parseListCalendarsParams,
|
|
174243
|
+
listCalendars
|
|
174244
|
+
)
|
|
174245
|
+
},
|
|
174144
174246
|
{
|
|
174145
174247
|
name: "get_event",
|
|
174146
174248
|
description: "Retrieve full details for a calendar event including description. Use this to view event content and metadata.",
|
|
@@ -174154,7 +174256,7 @@ var calendarTools = [
|
|
|
174154
174256
|
},
|
|
174155
174257
|
{
|
|
174156
174258
|
name: "create_event",
|
|
174157
|
-
description: "Create a new calendar event. Description supports markdown formatting. Returns the created event ID.",
|
|
174259
|
+
description: "Create a new calendar event. Description supports markdown formatting. Optional calendarId targets a specific calendar; when omitted, the event uses the authenticated user's primary personal calendar. Returns the created event ID.",
|
|
174158
174260
|
category: CATEGORY3,
|
|
174159
174261
|
inputSchema: createEventParamsJsonSchema,
|
|
174160
174262
|
handler: createToolHandler(
|
|
@@ -174198,7 +174300,7 @@ var calendarTools = [
|
|
|
174198
174300
|
},
|
|
174199
174301
|
{
|
|
174200
174302
|
name: "create_recurring_event",
|
|
174201
|
-
description: "Create a new recurring calendar event with RFC5545 RRULE rules. Description supports markdown. Returns the created event ID.",
|
|
174303
|
+
description: "Create a new recurring calendar event with RFC5545 RRULE rules. Description supports markdown. Optional calendarId targets a specific calendar; when omitted, the event uses the authenticated user's primary personal calendar. Returns the created event ID.",
|
|
174202
174304
|
category: CATEGORY3,
|
|
174203
174305
|
inputSchema: createRecurringEventParamsJsonSchema,
|
|
174204
174306
|
handler: createToolHandler(
|
|
@@ -184345,7 +184447,7 @@ var testManagementPlansTools = [
|
|
|
184345
184447
|
];
|
|
184346
184448
|
|
|
184347
184449
|
// src/huly/operations/time.ts
|
|
184348
|
-
var
|
|
184450
|
+
var import_calendar7 = __toESM(require_lib25(), 1);
|
|
184349
184451
|
var import_core48 = __toESM(require_lib4(), 1);
|
|
184350
184452
|
var import_tracker7 = __toESM(require_lib36(), 1);
|
|
184351
184453
|
var serverPopulatedCalendar = toRef("");
|
|
@@ -184575,7 +184677,7 @@ var createWorkSlot = (params) => Effect_exports.gen(function* () {
|
|
|
184575
184677
|
description: "",
|
|
184576
184678
|
allDay: false,
|
|
184577
184679
|
participants: [],
|
|
184578
|
-
access:
|
|
184680
|
+
access: import_calendar7.AccessLevel.Owner,
|
|
184579
184681
|
reminders: [],
|
|
184580
184682
|
visibility: "public",
|
|
184581
184683
|
eventId: "",
|