@togglhq/mcp 1.5.28 → 1.5.30

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/build/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as runMcpCli } from "./src-BhSinfRS.js";
2
+ import { n as runMcpCli } from "./src-DSUxKCOR.js";
3
3
  //#region src/cli.ts
4
4
  runMcpCli();
5
5
  //#endregion
package/build/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import { n as runMcpCli, t as bootstrapServer } from "./src-BhSinfRS.js";
2
+ import { n as runMcpCli, t as bootstrapServer } from "./src-DSUxKCOR.js";
3
3
  export { bootstrapServer, runMcpCli };
@@ -14496,8 +14496,8 @@ const ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
14496
14496
  inst.overwrite = (fn) => inst.check(/* @__PURE__ */ _overwrite(fn));
14497
14497
  inst.optional = () => optional$2(inst);
14498
14498
  inst.exactOptional = () => exactOptional(inst);
14499
- inst.nullable = () => nullable$1(inst);
14500
- inst.nullish = () => optional$2(nullable$1(inst));
14499
+ inst.nullable = () => nullable$2(inst);
14500
+ inst.nullish = () => optional$2(nullable$2(inst));
14501
14501
  inst.nonoptional = (params) => nonoptional(inst, params);
14502
14502
  inst.array = () => array$2(inst);
14503
14503
  inst.or = (arg) => union$1([inst, arg]);
@@ -14985,7 +14985,7 @@ const ZodNullable = /* @__PURE__ */ $constructor("ZodNullable", (inst, def) => {
14985
14985
  inst._zod.processJSONSchema = (ctx, json, params) => nullableProcessor(inst, ctx, json, params);
14986
14986
  inst.unwrap = () => inst._zod.def.innerType;
14987
14987
  });
14988
- function nullable$1(innerType) {
14988
+ function nullable$2(innerType) {
14989
14989
  return new ZodNullable({
14990
14990
  type: "nullable",
14991
14991
  innerType
@@ -27651,6 +27651,31 @@ function looseObject(entries$1, message$1) {
27651
27651
  };
27652
27652
  }
27653
27653
  /* @__NO_SIDE_EFFECTS__ */
27654
+ function nullable$1(wrapped, default_) {
27655
+ return {
27656
+ kind: "schema",
27657
+ type: "nullable",
27658
+ reference: nullable$1,
27659
+ expects: `(${wrapped.expects} | null)`,
27660
+ async: false,
27661
+ wrapped,
27662
+ default: default_,
27663
+ get "~standard"() {
27664
+ return /* @__PURE__ */ _getStandardProps$1(this);
27665
+ },
27666
+ "~run"(dataset, config$1) {
27667
+ if (dataset.value === null) {
27668
+ if (this.default !== void 0) dataset.value = /* @__PURE__ */ getDefault$1(this, dataset, config$1);
27669
+ if (dataset.value === null) {
27670
+ dataset.typed = true;
27671
+ return dataset;
27672
+ }
27673
+ }
27674
+ return this.wrapped["~run"](dataset, config$1);
27675
+ }
27676
+ };
27677
+ }
27678
+ /* @__NO_SIDE_EFFECTS__ */
27654
27679
  function number$2(message$1) {
27655
27680
  return {
27656
27681
  kind: "schema",
@@ -29147,6 +29172,7 @@ const TimeBlockSchema = /* @__PURE__ */ object({
29147
29172
  deleted_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
29148
29173
  description: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
29149
29174
  duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
29175
+ timezone: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ description("Timezone is the effective IANA timezone hydrated on reads: the workspace timezone snapshotted at creation when set, else the creator's snapshot; NULL when unresolved."))),
29150
29176
  updated_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()))
29151
29177
  });
29152
29178
  const BillableSourceSchema = /* @__PURE__ */ picklist(["manual", "task_default"]);
@@ -29170,6 +29196,7 @@ const TimeEntrySchema = /* @__PURE__ */ object({
29170
29196
  start: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
29171
29197
  task_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
29172
29198
  time_block_id: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
29199
+ timezone: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ description("Timezone is the effective IANA timezone hydrated on reads: the workspace timezone snapshotted at creation when set, else the creator's snapshot; NULL when unresolved."))),
29173
29200
  tracked_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
29174
29201
  updated_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()))
29175
29202
  });
@@ -29292,6 +29319,7 @@ const PaginatedTimeBlockAggregateWithTasksSchema = /* @__PURE__ */ object({
29292
29319
  duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
29293
29320
  has_time_entry: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
29294
29321
  task: /* @__PURE__ */ optional(TaskSchema),
29322
+ timezone: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ description("Timezone is the effective IANA timezone hydrated on reads: the workspace timezone snapshotted at creation when set, else the creator's snapshot; NULL when unresolved."))),
29295
29323
  updated_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()))
29296
29324
  })),
29297
29325
  page: /* @__PURE__ */ number(),
@@ -29332,6 +29360,7 @@ const PaginatedTimeEntryWithTasksSchema = /* @__PURE__ */ object({
29332
29360
  task: /* @__PURE__ */ optional(TaskSchema),
29333
29361
  task_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
29334
29362
  time_block_id: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
29363
+ timezone: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ description("Timezone is the effective IANA timezone hydrated on reads: the workspace timezone snapshotted at creation when set, else the creator's snapshot; NULL when unresolved."))),
29335
29364
  tracked_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
29336
29365
  updated_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()))
29337
29366
  })),
@@ -29707,7 +29736,7 @@ async function updateOrganizationGroupUserRole(httpClient, organization_id, grou
29707
29736
  async function getOrganizationRoles(httpClient, organization_id, signal) {
29708
29737
  return await httpClient.get(`organizations/${organization_id}/roles`, { signal }).json();
29709
29738
  }
29710
- async function getOrganizationTeamsClassic(httpClient, organization_id, { workspace_id, page, per_page, sort_dir, filter, query, organization_user_id, group_ids }, signal) {
29739
+ async function getOrganizationTeamsClassic(httpClient, organization_id, { workspace_id, page, per_page, sort_dir, filter, query, organization_user_id, group_ids, active_members_only }, signal) {
29711
29740
  return await httpClient.get(`organizations/${organization_id}/teams`, {
29712
29741
  signal,
29713
29742
  searchParams: buildSearchParams$3({
@@ -29718,7 +29747,8 @@ async function getOrganizationTeamsClassic(httpClient, organization_id, { worksp
29718
29747
  filter,
29719
29748
  query,
29720
29749
  organization_user_id,
29721
- group_ids
29750
+ group_ids,
29751
+ active_members_only
29722
29752
  })
29723
29753
  }).json();
29724
29754
  }
@@ -30162,25 +30192,23 @@ async function getTaskByExternalId(httpClient, organization_id, workspace_id, {
30162
30192
  })
30163
30193
  }).json();
30164
30194
  }
30165
- async function getTasksCalendarEvents(httpClient, organization_id, workspace_id, { date_from, date_to, calendar_event_id, time_zone, hidden } = {}, signal) {
30195
+ async function getTasksCalendarEvents(httpClient, organization_id, workspace_id, { date_from, date_to, calendar_event_id, hidden } = {}, signal) {
30166
30196
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/calendar`, {
30167
30197
  signal,
30168
30198
  searchParams: buildSearchParams$3({
30169
30199
  date_from,
30170
30200
  date_to,
30171
30201
  calendar_event_id,
30172
- time_zone,
30173
30202
  hidden
30174
30203
  })
30175
30204
  }).json();
30176
30205
  }
30177
- async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, timezone, signal) {
30206
+ async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, signal) {
30178
30207
  return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/calendar`, {
30179
30208
  signal,
30180
30209
  searchParams: buildSearchParams$3({
30181
30210
  date_from,
30182
- date_to,
30183
- timezone
30211
+ date_to
30184
30212
  })
30185
30213
  }).json();
30186
30214
  }
@@ -30204,7 +30232,7 @@ async function getTasksRecurringInstancesClassic(httpClient, organization_id, wo
30204
30232
  })
30205
30233
  }).json();
30206
30234
  }
30207
- async function getStreamTasks(httpClient, organization_id, workspace_id, { with_entries, pinned, order_by, status_id, toggl_user_id, name, has_time_entries, has_time_blocks, has_dates, archived, include_project_completed, include_drafts, project_id, parent_task_id, start_date, end_date, active_by_date, start_date_from, start_date_to, end_date_from, end_date_to, dates_overlap_start, dates_overlap_end, estimated_mins_min, estimated_mins_max, source, priority, is_priority, state, time_block_id, time_block_completed, team_id, assignee_user_id, tag_id, recurring, recurring_task_ids, client_id, include_ghost_assignees, include_assignees, assignee_ghost_id, cf_filter } = {}, signal) {
30235
+ async function getStreamTasks(httpClient, organization_id, workspace_id, { with_entries, pinned, order_by, status_id, toggl_user_id, name, has_time_entries, has_time_blocks, has_dates, private: private_, archived, include_project_completed, include_drafts, project_id, parent_task_id, start_date, end_date, active_by_date, start_date_from, start_date_to, end_date_from, end_date_to, dates_overlap_start, dates_overlap_end, estimated_mins_min, estimated_mins_max, source, priority, is_priority, state, time_block_id, time_block_completed, team_id, assignee_user_id, tag_id, recurring, recurring_task_ids, client_id, include_ghost_assignees, include_assignees, assignee_ghost_id, cf_filter } = {}, signal) {
30208
30236
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/stream`, {
30209
30237
  signal,
30210
30238
  searchParams: buildSearchParams$3({
@@ -30217,6 +30245,7 @@ async function getStreamTasks(httpClient, organization_id, workspace_id, { with_
30217
30245
  has_time_entries,
30218
30246
  has_time_blocks,
30219
30247
  has_dates,
30248
+ private: private_,
30220
30249
  archived,
30221
30250
  include_project_completed,
30222
30251
  include_drafts,
@@ -30450,7 +30479,7 @@ async function createTimeEntryWithOrg(httpClient, organization_id, workspace_id,
30450
30479
  json: data
30451
30480
  }).json();
30452
30481
  }
30453
- async function getTimeEntriesRangeWithOrgClassic(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, type, page, per_page, order_by, archived, time_block_id, include_taskless, expand_calendar_event, time_zone }, signal) {
30482
+ async function getTimeEntriesRangeWithOrgClassic(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, type, page, per_page, order_by, archived, time_block_id, include_taskless, expand_calendar_event }, signal) {
30454
30483
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries`, {
30455
30484
  signal,
30456
30485
  searchParams: buildSearchParams$3({
@@ -30465,8 +30494,7 @@ async function getTimeEntriesRangeWithOrgClassic(httpClient, organization_id, wo
30465
30494
  archived,
30466
30495
  time_block_id,
30467
30496
  include_taskless,
30468
- expand_calendar_event,
30469
- time_zone
30497
+ expand_calendar_event
30470
30498
  })
30471
30499
  }).json();
30472
30500
  }
@@ -30518,7 +30546,7 @@ async function bulkSetDayDurationWithOrg(httpClient, organization_id, workspace_
30518
30546
  json: data
30519
30547
  }).json();
30520
30548
  }
30521
- async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, type, order_by, archived, include_taskless, expand_calendar_event, time_zone }, signal) {
30549
+ async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, type, order_by, archived, include_taskless, expand_calendar_event }, signal) {
30522
30550
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/stream`, {
30523
30551
  signal,
30524
30552
  searchParams: buildSearchParams$3({
@@ -30530,8 +30558,7 @@ async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, wor
30530
30558
  order_by,
30531
30559
  archived,
30532
30560
  include_taskless,
30533
- expand_calendar_event,
30534
- time_zone
30561
+ expand_calendar_event
30535
30562
  })
30536
30563
  }).json();
30537
30564
  }
@@ -30667,7 +30694,7 @@ const PublicMeEntryRequestSchema = /* @__PURE__ */ object$2({
30667
30694
  ]))
30668
30695
  });
30669
30696
  //#endregion
30670
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
30697
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
30671
30698
  async function getInvitations(httpClient, signal) {
30672
30699
  return (await httpClient.get(`invitations`, { signal })).json();
30673
30700
  }
@@ -30684,7 +30711,7 @@ async function resendInvitation(httpClient, organization_id, organization_user_i
30684
30711
  return (await httpClient.post(`organizations/${organization_id}/invitations/${organization_user_id}/resend`, { signal })).json();
30685
30712
  }
30686
30713
  //#endregion
30687
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/org/utils/requests.mjs
30714
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/org/utils/requests.mjs
30688
30715
  function buildSearchParams$1(params, flattenArrays = false) {
30689
30716
  const searchParams = new URLSearchParams();
30690
30717
  Object.entries(params).forEach(([key, value]) => {
@@ -30696,7 +30723,7 @@ function buildSearchParams$1(params, flattenArrays = false) {
30696
30723
  return searchParams;
30697
30724
  }
30698
30725
  //#endregion
30699
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
30726
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
30700
30727
  async function getOrganizationUser(httpClient, organization_id, organization_user_id, signal) {
30701
30728
  return (await httpClient.get(`organizations/${organization_id}/users/${organization_user_id}`, { signal })).json();
30702
30729
  }
@@ -30710,10 +30737,19 @@ async function patchOrganizationUserActive(httpClient, organization_id, organiza
30710
30737
  return (await httpClient.patch(`organizations/${organization_id}/users/${organization_user_id}/active_status/${status}`, { signal })).json();
30711
30738
  }
30712
30739
  //#endregion
30713
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
30740
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
30714
30741
  async function getWorkspaces(httpClient, organization_id, signal) {
30715
30742
  return (await httpClient.get(`organizations/${organization_id}/workspaces`, { signal })).json();
30716
30743
  }
30744
+ async function getWorkspaceTimezone(httpClient, organization_id, workspace_id, signal) {
30745
+ return (await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/settings/timezone`, { signal })).json();
30746
+ }
30747
+ async function putWorkspaceTimezone(httpClient, organization_id, workspace_id, data, signal) {
30748
+ return (await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/settings/timezone`, {
30749
+ signal,
30750
+ json: data
30751
+ })).json();
30752
+ }
30717
30753
  async function getWorkspaceUserMeRoles(httpClient, organization_id, workspace_id, signal) {
30718
30754
  return (await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/users/me/roles`, { signal })).json();
30719
30755
  }
@@ -30730,7 +30766,7 @@ const WorkingHoursUpdateInputSchema = /* @__PURE__ */ object$2({
30730
30766
  });
30731
30767
  const StatusOKSchema = /* @__PURE__ */ object$2({ status: /* @__PURE__ */ string$1() });
30732
30768
  //#endregion
30733
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/shared-data/utils/requests.mjs
30769
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/shared-data/utils/requests.mjs
30734
30770
  const META_SYMBOL = Symbol.for("querygen:response:meta");
30735
30771
  function withResponseMeta(data, headers, status) {
30736
30772
  if (!data) return data;
@@ -30757,7 +30793,7 @@ function buildSearchParams(params, flattenArrays = false) {
30757
30793
  return searchParams;
30758
30794
  }
30759
30795
  //#endregion
30760
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/shared-data/public-holidays/requests.mjs
30796
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/shared-data/public-holidays/requests.mjs
30761
30797
  async function getPublicHolidays(httpClient, year, { country } = {}, signal) {
30762
30798
  const response = await httpClient.get(`shared_data/api/publicholidays/${year}`, {
30763
30799
  signal,
@@ -30766,12 +30802,12 @@ async function getPublicHolidays(httpClient, year, { country } = {}, signal) {
30766
30802
  return withResponseMeta(await response.json(), response.headers, response.status);
30767
30803
  }
30768
30804
  //#endregion
30769
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
30805
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
30770
30806
  async function getStatus(httpClient, signal) {
30771
30807
  return (await httpClient.get(`shared_data/api/status`, { signal })).json();
30772
30808
  }
30773
30809
  //#endregion
30774
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
30810
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
30775
30811
  async function timeoffListMyEntries(httpClient, organization_id, { from, to }, signal) {
30776
30812
  return (await httpClient.get(`timeoff/organizations/${organization_id}/me`, {
30777
30813
  signal,
@@ -30799,7 +30835,7 @@ async function timeoffDeleteMyEntry(httpClient, organization_id, id, signal) {
30799
30835
  return response.json();
30800
30836
  }
30801
30837
  //#endregion
30802
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
30838
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
30803
30839
  async function getMyWorkingHours(httpClient, organization_id, signal) {
30804
30840
  return (await httpClient.get(`shared_data/api/workinghours/${organization_id}/me`, { signal })).json();
30805
30841
  }
@@ -30824,7 +30860,7 @@ async function deleteMyWorkingHours(httpClient, organization_id, data, signal) {
30824
30860
  return response.json();
30825
30861
  }
30826
30862
  //#endregion
30827
- //#region ../cli-core/build/focus-client-7dpDsjfZ.js
30863
+ //#region ../cli-core/build/focus-client-BTk5v8IS.js
30828
30864
  const DATE_ONLY_RE = /^\d{4}-\d{2}-\d{2}$/;
30829
30865
  function normalizeDateFrom(value) {
30830
30866
  return DATE_ONLY_RE.test(value) ? `${value}T00:00:00Z` : value;
@@ -31622,6 +31658,20 @@ var FocusClient = class {
31622
31658
  data: response.data
31623
31659
  } : response;
31624
31660
  }
31661
+ async getOrgWorkspaceTimezone(workspaceId) {
31662
+ const response = await this.run("getOrgWorkspaceTimezone", () => getWorkspaceTimezone(this.orgHttp, this.organizationIdNum, workspaceId));
31663
+ return response.ok ? {
31664
+ ok: true,
31665
+ data: response.data
31666
+ } : response;
31667
+ }
31668
+ async updateOrgWorkspaceTimezone(workspaceId, payload) {
31669
+ const response = await this.run("updateOrgWorkspaceTimezone", () => putWorkspaceTimezone(this.orgHttp, this.organizationIdNum, workspaceId, payload));
31670
+ return response.ok ? {
31671
+ ok: true,
31672
+ data: response.data
31673
+ } : response;
31674
+ }
31625
31675
  async getSharedDataStatus() {
31626
31676
  const response = await this.run("getSharedDataStatus", () => getStatus(this.sharedDataHttp));
31627
31677
  return this.softValidateResponse("getSharedDataStatus", StatusOKSchema, response);
@@ -32534,7 +32584,7 @@ function createAuthenticatedClientProxy() {
32534
32584
  } });
32535
32585
  }
32536
32586
  //#endregion
32537
- //#region ../operations/build/safety-BSD7hS5Z.js
32587
+ //#region ../operations/build/safety-B7a8yXtb.js
32538
32588
  const optionalNumber = /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2());
32539
32589
  const DATE_FIELD_RE = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2}))?$/;
32540
32590
  const dateField = (description) => /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ regex(DATE_FIELD_RE, "must be YYYY-MM-DD or RFC3339 datetime (e.g. '2025-01-01' or '2025-01-01T00:00:00Z')"), /* @__PURE__ */ description$1(description));
@@ -33682,6 +33732,71 @@ const orgSharedOperations = [
33682
33732
  return client.getMyWorkspaceRoles(body.workspace_id ?? Number.parseInt(client.workspaceId, 10));
33683
33733
  }
33684
33734
  },
33735
+ {
33736
+ id: "org.workspaces.get-timezone",
33737
+ family: "org",
33738
+ resource: "workspaces",
33739
+ action: "get-timezone",
33740
+ title: "Get workspace timezone",
33741
+ description: "Get the workspace-level default timezone (null when unset). Requires organization admin.",
33742
+ agentGuidance: "Use when you need the org-wide default timezone for a workspace. When timezone is null, members use their personal timezones.",
33743
+ safety: "read",
33744
+ destructive: false,
33745
+ cli: {
33746
+ group: ["organization", "workspaces"],
33747
+ command: "get-timezone",
33748
+ examples: [{
33749
+ description: "Get timezone for the active workspace",
33750
+ data: {}
33751
+ }, {
33752
+ description: "Get timezone for a specific workspace",
33753
+ data: { workspace_id: 40770900 }
33754
+ }]
33755
+ },
33756
+ mcp: { entityTool: "org-workspaces" },
33757
+ inputSchema: /* @__PURE__ */ object$2({ workspace_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ description$1("Workspace ID (defaults to profile)"))) }),
33758
+ execute: (input, { client }) => {
33759
+ const body = input;
33760
+ return client.getOrgWorkspaceTimezone(body.workspace_id ?? client.workspaceIdNumber);
33761
+ }
33762
+ },
33763
+ {
33764
+ id: "org.workspaces.update-timezone",
33765
+ family: "org",
33766
+ resource: "workspaces",
33767
+ action: "update-timezone",
33768
+ title: "Update workspace timezone",
33769
+ description: "Set or clear the workspace-level default timezone. Requires organization admin.",
33770
+ agentGuidance: "Set timezone to an IANA name (e.g. Europe/London) or clear with clear: true / timezone: null so members fall back to personal timezones.",
33771
+ safety: "update",
33772
+ destructive: false,
33773
+ cli: {
33774
+ group: ["organization", "workspaces"],
33775
+ command: "update-timezone",
33776
+ examples: [{
33777
+ description: "Set default timezone for the active workspace",
33778
+ data: { timezone: "Europe/London" }
33779
+ }, {
33780
+ description: "Clear workspace default timezone",
33781
+ data: { clear: true }
33782
+ }]
33783
+ },
33784
+ mcp: { entityTool: "org-workspaces" },
33785
+ inputSchema: /* @__PURE__ */ object$2({
33786
+ workspace_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ description$1("Workspace ID (defaults to profile)"))),
33787
+ timezone: /* @__PURE__ */ optional$1(/* @__PURE__ */ nullable$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ description$1("IANA timezone (e.g. \"Europe/London\"), or null to clear")))),
33788
+ clear: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ boolean$1(), /* @__PURE__ */ description$1("Clear workspace default timezone")))
33789
+ }),
33790
+ execute: (input, { client }) => {
33791
+ const body = input;
33792
+ const workspaceId = body.workspace_id ?? client.workspaceIdNumber;
33793
+ const clearsTimezone = body.clear === true || body.timezone === null;
33794
+ if (clearsTimezone && typeof body.timezone === "string") throw new Error("Pass either a timezone string or clear/null, not both");
33795
+ if (clearsTimezone) return client.updateOrgWorkspaceTimezone(workspaceId, { timezone: null });
33796
+ if (body.timezone === void 0) throw new Error("Pass --timezone <IANA>, --clear true, or timezone: null to remove the default");
33797
+ return client.updateOrgWorkspaceTimezone(workspaceId, { timezone: body.timezone });
33798
+ }
33799
+ },
33685
33800
  {
33686
33801
  id: "shared.status.get",
33687
33802
  family: "shared",
@@ -34371,6 +34486,18 @@ async function getProjectGroupsClassic(httpClient, organization_id, workspace_id
34371
34486
  async function getProjectMarginTargets(httpClient, organization_id, workspace_id, signal) {
34372
34487
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets`, { signal }).json();
34373
34488
  }
34489
+ async function getWorkspaceProjectMarginTarget(httpClient, organization_id, workspace_id, signal) {
34490
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/workspace`, { signal }).json();
34491
+ }
34492
+ async function setWorkspaceProjectMarginTarget(httpClient, organization_id, workspace_id, data, signal) {
34493
+ return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/workspace`, {
34494
+ signal,
34495
+ json: data
34496
+ }).json();
34497
+ }
34498
+ async function clearWorkspaceProjectMarginTarget(httpClient, organization_id, workspace_id, signal) {
34499
+ return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/workspace`, { signal }).json();
34500
+ }
34374
34501
  async function getProjectMarginTarget(httpClient, organization_id, workspace_id, project_id, signal) {
34375
34502
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/${project_id}`, { signal }).json();
34376
34503
  }
@@ -34440,6 +34567,29 @@ async function createTaskRate(httpClient, organization_id, workspace_id, task_id
34440
34567
  }).json();
34441
34568
  }
34442
34569
  //#endregion
34570
+ //#region ../focus-queries/dist/recurring-budget-suggestions/requests.ts
34571
+ async function getRecurringProjectBudgetSuggestion(httpClient, organization_id, workspace_id, project_id, { target_period_start }, signal) {
34572
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/recurring-budget-suggestions/${project_id}`, {
34573
+ signal,
34574
+ searchParams: buildSearchParams$3({ target_period_start })
34575
+ }).json();
34576
+ }
34577
+ async function acceptARecurringProjectBudgetSuggestion(httpClient, organization_id, workspace_id, project_id, signal) {
34578
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/recurring-budget-suggestions/${project_id}/accept`, { signal }).json();
34579
+ }
34580
+ async function dismissARecurringProjectBudgetSuggestion(httpClient, organization_id, workspace_id, project_id, signal) {
34581
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/recurring-budget-suggestions/${project_id}/dismiss`, { signal }).json();
34582
+ }
34583
+ async function getTemplateEstimateSuggestion(httpClient, organization_id, workspace_id, project_id, signal) {
34584
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/template-estimate-suggestions/${project_id}`, { signal }).json();
34585
+ }
34586
+ async function acceptATemplateEstimateSuggestion(httpClient, organization_id, workspace_id, project_id, signal) {
34587
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/template-estimate-suggestions/${project_id}/accept`, { signal }).json();
34588
+ }
34589
+ async function dismissATemplateEstimateSuggestion(httpClient, organization_id, workspace_id, project_id, signal) {
34590
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/template-estimate-suggestions/${project_id}/dismiss`, { signal }).json();
34591
+ }
34592
+ //#endregion
34443
34593
  //#region ../focus-queries/dist/reports/requests.ts
34444
34594
  async function getProfitabilityReport(httpClient, workspace_id, data, response_format, include_dicts, signal) {
34445
34595
  return await httpClient.post(`reports/workspaces/${workspace_id}/profitability`, {
@@ -34527,6 +34677,9 @@ async function getCurrentSubscription(httpClient, organization_id, signal) {
34527
34677
  async function getFeaturesUpsell(httpClient, organization_id, signal) {
34528
34678
  return await httpClient.get(`organizations/${organization_id}/subscriptions/features-upsell`, { signal }).json();
34529
34679
  }
34680
+ async function getSubscriptionPlans(httpClient, organization_id, signal) {
34681
+ return await httpClient.get(`organizations/${organization_id}/subscriptions/plans`, { signal }).json();
34682
+ }
34530
34683
  async function getCurrentTrial(httpClient, organization_id, signal) {
34531
34684
  return await httpClient.get(`organizations/${organization_id}/subscriptions/trials/current`, { signal }).json();
34532
34685
  }
@@ -36324,6 +36477,7 @@ const generatedFocusOperations = [
36324
36477
  },
36325
36478
  mcp: { entityTool: "organization" },
36326
36479
  inputSchema: /* @__PURE__ */ looseObject({
36480
+ active_members_only: /* @__PURE__ */ unknown$1(),
36327
36481
  filter: /* @__PURE__ */ unknown$1(),
36328
36482
  group_ids: /* @__PURE__ */ unknown$1(),
36329
36483
  organization_user_id: /* @__PURE__ */ number$2(),
@@ -37354,6 +37508,29 @@ const generatedFocusOperations = [
37354
37508
  ]));
37355
37509
  }
37356
37510
  },
37511
+ {
37512
+ id: "focus.projects.margin-targets-clear-workspace",
37513
+ family: "focus",
37514
+ resource: "projects",
37515
+ action: "margin-targets-clear-workspace",
37516
+ title: "Margin Targets Clear Workspace Projects",
37517
+ description: "Margin Targets Clear Workspace Projects.",
37518
+ safety: "delete",
37519
+ destructive: true,
37520
+ cli: {
37521
+ group: ["projects", "margin-targets"],
37522
+ command: "clear-workspace",
37523
+ interactive: "default"
37524
+ },
37525
+ mcp: { entityTool: "projects" },
37526
+ inputSchema: /* @__PURE__ */ looseObject({}),
37527
+ execute: (_input, { client }) => client.runGeneratedRequest("clearWorkspaceProjectMarginTarget", () => callGeneratedRequest(clearWorkspaceProjectMarginTarget, [
37528
+ client.httpClient,
37529
+ client.organizationId,
37530
+ client.workspaceIdNumber,
37531
+ void 0
37532
+ ]))
37533
+ },
37357
37534
  {
37358
37535
  id: "focus.projects.margin-targets-get",
37359
37536
  family: "focus",
@@ -37381,6 +37558,29 @@ const generatedFocusOperations = [
37381
37558
  ]));
37382
37559
  }
37383
37560
  },
37561
+ {
37562
+ id: "focus.projects.margin-targets-get-workspace",
37563
+ family: "focus",
37564
+ resource: "projects",
37565
+ action: "margin-targets-get-workspace",
37566
+ title: "Margin Targets Get Workspace Projects",
37567
+ description: "Margin Targets Get Workspace Projects.",
37568
+ safety: "read",
37569
+ destructive: false,
37570
+ cli: {
37571
+ group: ["projects", "margin-targets"],
37572
+ command: "get-workspace",
37573
+ interactive: "hidden"
37574
+ },
37575
+ mcp: { entityTool: "projects" },
37576
+ inputSchema: /* @__PURE__ */ looseObject({}),
37577
+ execute: (_input, { client }) => client.runGeneratedRequest("getWorkspaceProjectMarginTarget", () => callGeneratedRequest(getWorkspaceProjectMarginTarget, [
37578
+ client.httpClient,
37579
+ client.organizationId,
37580
+ client.workspaceIdNumber,
37581
+ void 0
37582
+ ]))
37583
+ },
37384
37584
  {
37385
37585
  id: "focus.projects.margin-targets-list",
37386
37586
  family: "focus",
@@ -37435,6 +37635,33 @@ const generatedFocusOperations = [
37435
37635
  ]));
37436
37636
  }
37437
37637
  },
37638
+ {
37639
+ id: "focus.projects.margin-targets-set-workspace",
37640
+ family: "focus",
37641
+ resource: "projects",
37642
+ action: "margin-targets-set-workspace",
37643
+ title: "Margin Targets Set Workspace Projects",
37644
+ description: "Margin Targets Set Workspace Projects.",
37645
+ safety: "read",
37646
+ destructive: false,
37647
+ cli: {
37648
+ group: ["projects", "margin-targets"],
37649
+ command: "set-workspace",
37650
+ interactive: "available"
37651
+ },
37652
+ mcp: { entityTool: "projects" },
37653
+ inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({ target_percent: /* @__PURE__ */ number$2() }) }),
37654
+ execute: (input, { client }) => {
37655
+ const data = input;
37656
+ return client.runGeneratedRequest("setWorkspaceProjectMarginTarget", () => callGeneratedRequest(setWorkspaceProjectMarginTarget, [
37657
+ client.httpClient,
37658
+ client.organizationId,
37659
+ client.workspaceIdNumber,
37660
+ data.payload ?? data.data ?? data,
37661
+ void 0
37662
+ ]));
37663
+ }
37664
+ },
37438
37665
  {
37439
37666
  id: "focus.projects.pin",
37440
37667
  family: "focus",
@@ -39222,6 +39449,172 @@ const generatedFocusOperations = [
39222
39449
  ]));
39223
39450
  }
39224
39451
  },
39452
+ {
39453
+ id: "focus.recurring-budget-suggestions.accept-arecurring-project-budget-suggestion",
39454
+ family: "focus",
39455
+ resource: "recurring-budget-suggestions",
39456
+ action: "accept-arecurring-project-budget-suggestion",
39457
+ title: "Accept Arecurring Project Budget Suggestion Recurring Budget Suggestions",
39458
+ description: "Accept Arecurring Project Budget Suggestion Recurring Budget Suggestions.",
39459
+ safety: "read",
39460
+ destructive: false,
39461
+ cli: {
39462
+ group: ["recurring-budget-suggestions"],
39463
+ command: "accept-arecurring-project-budget-suggestion",
39464
+ interactive: "available"
39465
+ },
39466
+ mcp: { entityTool: "recurring-budget-suggestions" },
39467
+ inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
39468
+ execute: (input, { client }) => {
39469
+ const data = input;
39470
+ return client.runGeneratedRequest("acceptARecurringProjectBudgetSuggestion", () => callGeneratedRequest(acceptARecurringProjectBudgetSuggestion, [
39471
+ client.httpClient,
39472
+ client.organizationId,
39473
+ client.workspaceIdNumber,
39474
+ data.project_id,
39475
+ void 0
39476
+ ]));
39477
+ }
39478
+ },
39479
+ {
39480
+ id: "focus.recurring-budget-suggestions.accept-atemplate-estimate-suggestion",
39481
+ family: "focus",
39482
+ resource: "recurring-budget-suggestions",
39483
+ action: "accept-atemplate-estimate-suggestion",
39484
+ title: "Accept Atemplate Estimate Suggestion Recurring Budget Suggestions",
39485
+ description: "Accept Atemplate Estimate Suggestion Recurring Budget Suggestions.",
39486
+ safety: "read",
39487
+ destructive: false,
39488
+ cli: {
39489
+ group: ["recurring-budget-suggestions"],
39490
+ command: "accept-atemplate-estimate-suggestion",
39491
+ interactive: "available"
39492
+ },
39493
+ mcp: { entityTool: "recurring-budget-suggestions" },
39494
+ inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
39495
+ execute: (input, { client }) => {
39496
+ const data = input;
39497
+ return client.runGeneratedRequest("acceptATemplateEstimateSuggestion", () => callGeneratedRequest(acceptATemplateEstimateSuggestion, [
39498
+ client.httpClient,
39499
+ client.organizationId,
39500
+ client.workspaceIdNumber,
39501
+ data.project_id,
39502
+ void 0
39503
+ ]));
39504
+ }
39505
+ },
39506
+ {
39507
+ id: "focus.recurring-budget-suggestions.dismiss-arecurring-project-budget-suggestion",
39508
+ family: "focus",
39509
+ resource: "recurring-budget-suggestions",
39510
+ action: "dismiss-arecurring-project-budget-suggestion",
39511
+ title: "Dismiss Arecurring Project Budget Suggestion Recurring Budget Suggestions",
39512
+ description: "Dismiss Arecurring Project Budget Suggestion Recurring Budget Suggestions.",
39513
+ safety: "read",
39514
+ destructive: false,
39515
+ cli: {
39516
+ group: ["recurring-budget-suggestions"],
39517
+ command: "dismiss-arecurring-project-budget-suggestion",
39518
+ interactive: "available"
39519
+ },
39520
+ mcp: { entityTool: "recurring-budget-suggestions" },
39521
+ inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
39522
+ execute: (input, { client }) => {
39523
+ const data = input;
39524
+ return client.runGeneratedRequest("dismissARecurringProjectBudgetSuggestion", () => callGeneratedRequest(dismissARecurringProjectBudgetSuggestion, [
39525
+ client.httpClient,
39526
+ client.organizationId,
39527
+ client.workspaceIdNumber,
39528
+ data.project_id,
39529
+ void 0
39530
+ ]));
39531
+ }
39532
+ },
39533
+ {
39534
+ id: "focus.recurring-budget-suggestions.dismiss-atemplate-estimate-suggestion",
39535
+ family: "focus",
39536
+ resource: "recurring-budget-suggestions",
39537
+ action: "dismiss-atemplate-estimate-suggestion",
39538
+ title: "Dismiss Atemplate Estimate Suggestion Recurring Budget Suggestions",
39539
+ description: "Dismiss Atemplate Estimate Suggestion Recurring Budget Suggestions.",
39540
+ safety: "read",
39541
+ destructive: false,
39542
+ cli: {
39543
+ group: ["recurring-budget-suggestions"],
39544
+ command: "dismiss-atemplate-estimate-suggestion",
39545
+ interactive: "available"
39546
+ },
39547
+ mcp: { entityTool: "recurring-budget-suggestions" },
39548
+ inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
39549
+ execute: (input, { client }) => {
39550
+ const data = input;
39551
+ return client.runGeneratedRequest("dismissATemplateEstimateSuggestion", () => callGeneratedRequest(dismissATemplateEstimateSuggestion, [
39552
+ client.httpClient,
39553
+ client.organizationId,
39554
+ client.workspaceIdNumber,
39555
+ data.project_id,
39556
+ void 0
39557
+ ]));
39558
+ }
39559
+ },
39560
+ {
39561
+ id: "focus.recurring-budget-suggestions.get-recurring-project-budget-suggestion",
39562
+ family: "focus",
39563
+ resource: "recurring-budget-suggestions",
39564
+ action: "get-recurring-project-budget-suggestion",
39565
+ title: "Get Recurring Project Budget Suggestion Recurring Budget Suggestions",
39566
+ description: "Get Recurring Project Budget Suggestion Recurring Budget Suggestions.",
39567
+ safety: "read",
39568
+ destructive: false,
39569
+ cli: {
39570
+ group: ["recurring-budget-suggestions"],
39571
+ command: "get-recurring-project-budget-suggestion",
39572
+ interactive: "hidden"
39573
+ },
39574
+ mcp: { entityTool: "recurring-budget-suggestions" },
39575
+ inputSchema: /* @__PURE__ */ looseObject({
39576
+ project_id: /* @__PURE__ */ number$2(),
39577
+ target_period_start: /* @__PURE__ */ unknown$1()
39578
+ }),
39579
+ execute: (input, { client }) => {
39580
+ const data = input;
39581
+ return client.runGeneratedRequest("getRecurringProjectBudgetSuggestion", () => callGeneratedRequest(getRecurringProjectBudgetSuggestion, [
39582
+ client.httpClient,
39583
+ client.organizationId,
39584
+ client.workspaceIdNumber,
39585
+ data.project_id,
39586
+ data,
39587
+ void 0
39588
+ ]));
39589
+ }
39590
+ },
39591
+ {
39592
+ id: "focus.recurring-budget-suggestions.get-template-estimate-suggestion",
39593
+ family: "focus",
39594
+ resource: "recurring-budget-suggestions",
39595
+ action: "get-template-estimate-suggestion",
39596
+ title: "Get Template Estimate Suggestion Recurring Budget Suggestions",
39597
+ description: "Get Template Estimate Suggestion Recurring Budget Suggestions.",
39598
+ safety: "read",
39599
+ destructive: false,
39600
+ cli: {
39601
+ group: ["recurring-budget-suggestions"],
39602
+ command: "get-template-estimate-suggestion",
39603
+ interactive: "available"
39604
+ },
39605
+ mcp: { entityTool: "recurring-budget-suggestions" },
39606
+ inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
39607
+ execute: (input, { client }) => {
39608
+ const data = input;
39609
+ return client.runGeneratedRequest("getTemplateEstimateSuggestion", () => callGeneratedRequest(getTemplateEstimateSuggestion, [
39610
+ client.httpClient,
39611
+ client.organizationId,
39612
+ client.workspaceIdNumber,
39613
+ data.project_id,
39614
+ void 0
39615
+ ]));
39616
+ }
39617
+ },
39225
39618
  {
39226
39619
  id: "focus.reports.get-flexq-data",
39227
39620
  family: "focus",
@@ -39880,6 +40273,28 @@ const generatedFocusOperations = [
39880
40273
  void 0
39881
40274
  ]))
39882
40275
  },
40276
+ {
40277
+ id: "focus.subscriptions.get-plans",
40278
+ family: "focus",
40279
+ resource: "subscriptions",
40280
+ action: "get-plans",
40281
+ title: "Get Plans Subscriptions",
40282
+ description: "Get Plans Subscriptions.",
40283
+ safety: "read",
40284
+ destructive: false,
40285
+ cli: {
40286
+ group: ["subscriptions"],
40287
+ command: "get-plans",
40288
+ interactive: "hidden"
40289
+ },
40290
+ mcp: { entityTool: "subscriptions" },
40291
+ inputSchema: /* @__PURE__ */ looseObject({}),
40292
+ execute: (_input, { client }) => client.runGeneratedRequest("getSubscriptionPlans", () => callGeneratedRequest(getSubscriptionPlans, [
40293
+ client.httpClient,
40294
+ client.organizationId,
40295
+ void 0
40296
+ ]))
40297
+ },
39883
40298
  {
39884
40299
  id: "focus.subscriptions.upsert-forced-trial",
39885
40300
  family: "focus",
@@ -40544,8 +40959,7 @@ const generatedFocusOperations = [
40544
40959
  calendar_event_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
40545
40960
  date_from: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40546
40961
  date_to: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40547
- hidden: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40548
- time_zone: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
40962
+ hidden: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
40549
40963
  }),
40550
40964
  execute: (input, { client }) => {
40551
40965
  const data = input;
@@ -40641,6 +41055,7 @@ const generatedFocusOperations = [
40641
41055
  parent_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
40642
41056
  pinned: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40643
41057
  priority: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
41058
+ private_: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40644
41059
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
40645
41060
  recurring: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40646
41061
  recurring_task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -41063,8 +41478,7 @@ const generatedFocusOperations = [
41063
41478
  mcp: { entityTool: "tasks" },
41064
41479
  inputSchema: /* @__PURE__ */ looseObject({
41065
41480
  date_from: /* @__PURE__ */ unknown$1(),
41066
- date_to: /* @__PURE__ */ unknown$1(),
41067
- timezone: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
41481
+ date_to: /* @__PURE__ */ unknown$1()
41068
41482
  }),
41069
41483
  execute: (input, { client }) => {
41070
41484
  const data = input;
@@ -41074,7 +41488,6 @@ const generatedFocusOperations = [
41074
41488
  client.workspaceIdNumber,
41075
41489
  data.date_from,
41076
41490
  data.date_to,
41077
- data.timezone,
41078
41491
  void 0
41079
41492
  ]));
41080
41493
  }
@@ -41833,7 +42246,6 @@ const generatedFocusOperations = [
41833
42246
  order_by: /* @__PURE__ */ unknown$1(),
41834
42247
  status_id: /* @__PURE__ */ number$2(),
41835
42248
  task_id: /* @__PURE__ */ number$2(),
41836
- time_zone: /* @__PURE__ */ unknown$1(),
41837
42249
  type: /* @__PURE__ */ unknown$1()
41838
42250
  }),
41839
42251
  execute: (input, { client }) => {
@@ -45212,7 +45624,7 @@ import_main.default.config({
45212
45624
  quiet: true,
45213
45625
  ignore: ["MISSING_ENV_FILE"]
45214
45626
  });
45215
- const packageVersion = "1.5.28";
45627
+ const packageVersion = "1.5.30";
45216
45628
  function resolvePublicUrls() {
45217
45629
  return {
45218
45630
  focusApiUrl: process.env.TOGGL_FOCUS_API_URL ?? "https://focus.toggl.com",
@@ -45277,4 +45689,4 @@ function bootstrapServer(options = {}) {
45277
45689
  //#endregion
45278
45690
  export { runMcpCli as n, bootstrapServer as t };
45279
45691
 
45280
- //# sourceMappingURL=src-BhSinfRS.js.map
45692
+ //# sourceMappingURL=src-DSUxKCOR.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@togglhq/mcp",
3
- "version": "1.5.28",
3
+ "version": "1.5.30",
4
4
  "description": "Toggl 2.0 MCP server for Claude Code, Claude Desktop, and other MCP clients.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",