@togglhq/mcp 1.11.33 → 1.11.34

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 { a as initProductAnalytics, c as shutdownProductAnalytics, i as getProductAnalyticsDistinctId, n as runMcpCli, o as redactUnsafeSentryMessages, r as captureToolInvocation, s as resolveProductAnalyticsDistinctId } from "./src-B4NOBGDZ.js";
2
+ import { a as initProductAnalytics, c as shutdownProductAnalytics, i as getProductAnalyticsDistinctId, n as runMcpCli, o as redactUnsafeSentryMessages, r as captureToolInvocation, s as resolveProductAnalyticsDistinctId } from "./src-X1or7-7J.js";
3
3
  import * as Sentry from "@sentry/node";
4
4
  //#region src/analytics-tool-metadata.ts
5
5
  /**
@@ -165,7 +165,7 @@ function wrapServerWithProductAnalytics(server) {
165
165
  }
166
166
  //#endregion
167
167
  //#region src/cli.ts
168
- const packageVersion = "1.11.33";
168
+ const packageVersion = "1.11.34";
169
169
  let sentryEnabled = false;
170
170
  let productAnalyticsEnabled = false;
171
171
  runMcpCli({
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-B4NOBGDZ.js";
2
+ import { n as runMcpCli, t as bootstrapServer } from "./src-X1or7-7J.js";
3
3
  export { bootstrapServer, runMcpCli };
@@ -36552,6 +36552,7 @@ const TaskSchema = /* @__PURE__ */ object({
36552
36552
  description: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
36553
36553
  end_date: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDate())),
36554
36554
  estimated_mins: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
36555
+ is_recurring_series: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ boolean(), /* @__PURE__ */ description("IsRecurringSeries marks a canonical series root (S). Server-owned and read-only: no current API path can set it, and the response only exposes the marker while series behavior stays disabled."))),
36555
36556
  metadata: /* @__PURE__ */ optional(TaskMetadataSchema),
36556
36557
  notes: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
36557
36558
  parent_task_id: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
@@ -36613,6 +36614,7 @@ const TaskWithParentAndAggregationsSchema = /* @__PURE__ */ object({
36613
36614
  description: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
36614
36615
  end_date: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDate())),
36615
36616
  estimated_mins: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
36617
+ is_recurring_series: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ boolean(), /* @__PURE__ */ description("IsRecurringSeries marks a canonical series root (S). Server-owned and read-only: no current API path can set it, and the response only exposes the marker while series behavior stays disabled."))),
36616
36618
  metadata: /* @__PURE__ */ optional(TaskMetadataSchema),
36617
36619
  notes: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
36618
36620
  parent: /* @__PURE__ */ optional(TaskSchema),
@@ -36795,6 +36797,8 @@ const TimeEntrySchema = /* @__PURE__ */ object({
36795
36797
  deleted_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
36796
36798
  description: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
36797
36799
  duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
36800
+ pattern_generated: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ boolean(), /* @__PURE__ */ description("PatternGenerated is the response-facing derivative of GeneratedByTaskID: true when the entry was materialized by a series pattern."))),
36801
+ pattern_managed: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ boolean(), /* @__PURE__ */ description("PatternManaged reports that the pattern engine owns this entry. Server-owned; present in responses, never bindable from a payload."))),
36798
36802
  planned_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
36799
36803
  planned_duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
36800
36804
  planned_start: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
@@ -36880,6 +36884,7 @@ const ProjectWithAggregationsSchema = /* @__PURE__ */ object({
36880
36884
  description: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
36881
36885
  end_date: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDate())),
36882
36886
  estimated_mins: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
36887
+ filtered_task_count: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
36883
36888
  fixed_fee: /* @__PURE__ */ optional(ProjectFixedFeeSchema),
36884
36889
  parent_project_id: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
36885
36890
  rate: /* @__PURE__ */ optional(EffectiveProjectRatesSummarySchema),
@@ -36959,6 +36964,8 @@ const PaginatedTimeEntryWithTasksSchema = /* @__PURE__ */ object({
36959
36964
  deleted_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
36960
36965
  description: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
36961
36966
  duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
36967
+ pattern_generated: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ boolean(), /* @__PURE__ */ description("PatternGenerated is the response-facing derivative of GeneratedByTaskID: true when the entry was materialized by a series pattern."))),
36968
+ pattern_managed: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ boolean(), /* @__PURE__ */ description("PatternManaged reports that the pattern engine owns this entry. Server-owned; present in responses, never bindable from a payload."))),
36962
36969
  planned_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
36963
36970
  planned_duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
36964
36971
  planned_start: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
@@ -37189,6 +37196,7 @@ const TaskPartialUpdatePayloadSchema = /* @__PURE__ */ object({
37189
37196
  private: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
37190
37197
  project_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
37191
37198
  recurring_task_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
37199
+ repeat_planned_time_entry_id: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ nullable(/* @__PURE__ */ number()), /* @__PURE__ */ description("RepeatPlannedTimeEntryID is the declared initial-selection input that will start a series from an existing planned entry (PR 11). Any supplied value — an ID or JSON null — is rejected until then; the contract is declared in docs/recurring-pr2a-additive-schema.md. json.RawMessage keeps absent distinguishable from explicit null on decode and is omitted on marshal when never set."))),
37192
37200
  rollup_enabled: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
37193
37201
  rrule: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ string())),
37194
37202
  start_date: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDate()))),
@@ -37225,6 +37233,7 @@ const TaskPartialUpdatePayloadWithIDSchema = /* @__PURE__ */ object({
37225
37233
  private: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
37226
37234
  project_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
37227
37235
  recurring_task_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
37236
+ repeat_planned_time_entry_id: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ nullable(/* @__PURE__ */ number()), /* @__PURE__ */ description("RepeatPlannedTimeEntryID is the declared initial-selection input that will start a series from an existing planned entry (PR 11). Any supplied value — an ID or JSON null — is rejected until then; the contract is declared in docs/recurring-pr2a-additive-schema.md. json.RawMessage keeps absent distinguishable from explicit null on decode and is omitted on marshal when never set."))),
37228
37237
  rollup_enabled: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
37229
37238
  rrule: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ string())),
37230
37239
  start_date: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDate()))),
@@ -37510,10 +37519,18 @@ async function unarchiveTag(httpClient, workspace_id, tag_id, signal) {
37510
37519
  }
37511
37520
  //#endregion
37512
37521
  //#region ../focus-queries/dist/projects/requests.ts
37513
- async function getProjectsClassic(httpClient, organization_id, workspace_id, { page, per_page, order_by, pinned, archived, completed, private: private_, name, client_id, creator_id, tag_id, assignee_user_id, project_id, user_id, only_me, include_rates, include_rollover, include_idle_recurring_templates, collapse_recurring, include_drafts, include_locked_private, start_date, end_date, date_overlap_start, date_overlap_end, cf_filter } = {}, signal) {
37522
+ async function getProjectsClassic(httpClient, organization_id, workspace_id, { include_task_counts, task_archived, task_recurring, task_state, task_source, task_assignee_user_id, task_assignee_team_id, task_name, page, per_page, order_by, pinned, archived, completed, private: private_, name, client_id, creator_id, tag_id, assignee_user_id, project_id, user_id, only_me, include_rates, include_rollover, include_idle_recurring_templates, collapse_recurring, include_drafts, include_locked_private, start_date, end_date, date_overlap_start, date_overlap_end, cf_filter } = {}, signal) {
37514
37523
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/projects`, {
37515
37524
  signal,
37516
37525
  searchParams: buildSearchParams$2({
37526
+ include_task_counts,
37527
+ task_archived,
37528
+ task_recurring,
37529
+ task_state,
37530
+ task_source,
37531
+ task_assignee_user_id,
37532
+ task_assignee_team_id,
37533
+ task_name,
37517
37534
  page,
37518
37535
  per_page,
37519
37536
  order_by,
@@ -37763,7 +37780,7 @@ async function restoreStatuses(httpClient, workspace_id, status_id, signal) {
37763
37780
  }
37764
37781
  //#endregion
37765
37782
  //#region ../focus-queries/dist/tasks/requests.ts
37766
- async function getTasksClassic(httpClient, organization_id, workspace_id, { page, per_page, 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, timeblock_start_from, timeblock_start_until, time_block_id, time_block_completed, team_id, assignee_team_id, assignee_user_id, tag_id, recurring, recurring_task_ids, client_id, include_rates, include_assignees, include_parent_matches, disable_aggregations, cf_filter } = {}, signal) {
37783
+ async function getTasksClassic(httpClient, organization_id, workspace_id, { page, per_page, 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, timeblock_start_from, timeblock_start_until, time_block_id, time_block_completed, team_id, assignee_team_id, assignee_user_id, tag_id, recurring, recurring_task_ids, client_id, include_rates, include_assignees, include_parent_matches, disable_aggregations, cf_filter, recurring_occurrences_after, max_recurring_occurrences_after, recurring_task_read, include_projected_occurrences } = {}, signal) {
37767
37784
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks`, {
37768
37785
  signal,
37769
37786
  searchParams: buildSearchParams$2({
@@ -37814,7 +37831,11 @@ async function getTasksClassic(httpClient, organization_id, workspace_id, { page
37814
37831
  include_assignees,
37815
37832
  include_parent_matches,
37816
37833
  disable_aggregations,
37817
- cf_filter
37834
+ cf_filter,
37835
+ recurring_occurrences_after,
37836
+ max_recurring_occurrences_after,
37837
+ recurring_task_read,
37838
+ include_projected_occurrences
37818
37839
  })
37819
37840
  }).json();
37820
37841
  }
@@ -37889,16 +37910,17 @@ async function getTasksCalendarEvents(httpClient, organization_id, workspace_id,
37889
37910
  })
37890
37911
  }).json();
37891
37912
  }
37892
- async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, signal) {
37913
+ async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, skip_provider_refresh, signal) {
37893
37914
  return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/calendar`, {
37894
37915
  signal,
37895
37916
  searchParams: buildSearchParams$2({
37896
37917
  date_from,
37897
- date_to
37918
+ date_to,
37919
+ skip_provider_refresh
37898
37920
  })
37899
37921
  }).json();
37900
37922
  }
37901
- async function getTasksRecurringInstancesClassic(httpClient, organization_id, workspace_id, { page, per_page, archived, start_date, end_date, dates_overlap_start, dates_overlap_end, recurring_task_ids, team_id, assignee_team_id, assignee_user_id, tag_id, include_assignees } = {}, signal) {
37923
+ async function getTasksRecurringInstancesClassic(httpClient, organization_id, workspace_id, { page, per_page, archived, start_date, end_date, dates_overlap_start, dates_overlap_end, recurring_task_ids, team_id, assignee_team_id, assignee_user_id, tag_id, include_assignees, recurring_occurrences_after, max_recurring_occurrences_after, recurring_task_read, include_projected_occurrences } = {}, signal) {
37902
37924
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/recurring`, {
37903
37925
  signal,
37904
37926
  searchParams: buildSearchParams$2({
@@ -37914,11 +37936,15 @@ async function getTasksRecurringInstancesClassic(httpClient, organization_id, wo
37914
37936
  assignee_team_id,
37915
37937
  assignee_user_id,
37916
37938
  tag_id,
37917
- include_assignees
37939
+ include_assignees,
37940
+ recurring_occurrences_after,
37941
+ max_recurring_occurrences_after,
37942
+ recurring_task_read,
37943
+ include_projected_occurrences
37918
37944
  })
37919
37945
  }).json();
37920
37946
  }
37921
- async function getStreamTasks(httpClient, organization_id, workspace_id, { with_entries, pinned, order_by, status_id, toggl_user_id, name, include_parent_matches, 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_team_id, assignee_user_id, tag_id, recurring, recurring_task_ids, client_id, include_assignees, cf_filter } = {}, signal) {
37947
+ async function getStreamTasks(httpClient, organization_id, workspace_id, { with_entries, pinned, order_by, status_id, toggl_user_id, name, include_parent_matches, 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_team_id, assignee_user_id, tag_id, recurring, recurring_task_ids, client_id, include_assignees, cf_filter, recurring_occurrences_after, max_recurring_occurrences_after, recurring_task_read, include_projected_occurrences } = {}, signal) {
37922
37948
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/stream`, {
37923
37949
  signal,
37924
37950
  searchParams: buildSearchParams$2({
@@ -37963,7 +37989,11 @@ async function getStreamTasks(httpClient, organization_id, workspace_id, { with_
37963
37989
  recurring_task_ids,
37964
37990
  client_id,
37965
37991
  include_assignees,
37966
- cf_filter
37992
+ cf_filter,
37993
+ recurring_occurrences_after,
37994
+ max_recurring_occurrences_after,
37995
+ recurring_task_read,
37996
+ include_projected_occurrences
37967
37997
  })
37968
37998
  }).json();
37969
37999
  }
@@ -38018,6 +38048,12 @@ async function getTaskWithChildrenClassic(httpClient, organization_id, workspace
38018
38048
  })
38019
38049
  }).json();
38020
38050
  }
38051
+ async function createRecurringOccurrence(httpClient, organization_id, workspace_id, task_id, return_occurrence, signal) {
38052
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/occurrences`, {
38053
+ signal,
38054
+ searchParams: buildSearchParams$2({ return_occurrence })
38055
+ }).json();
38056
+ }
38021
38057
  async function getTaskWithParentsClassic(httpClient, organization_id, workspace_id, task_id, { page, per_page, order_by, status_id, archived, source, team_id, assignee_user_id, tag_id, include_assignees } = {}, signal) {
38022
38058
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/parents`, {
38023
38059
  signal,
@@ -38154,16 +38190,24 @@ async function getTaskTimeEntriesWithOrgClassic(httpClient, organization_id, wor
38154
38190
  })
38155
38191
  }).json();
38156
38192
  }
38157
- async function createTimeEntryWithOrg(httpClient, organization_id, workspace_id, task_id, data, signal) {
38193
+ async function createTimeEntryWithOrg(httpClient, organization_id, workspace_id, task_id, data, from_recurring_task_id, return_occurrence, signal) {
38158
38194
  return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-entries`, {
38159
38195
  signal,
38160
- json: data
38196
+ json: data,
38197
+ searchParams: buildSearchParams$2({
38198
+ from_recurring_task_id,
38199
+ return_occurrence
38200
+ })
38161
38201
  }).json();
38162
38202
  }
38163
- async function createTasklessTimeEntryWithOrg(httpClient, organization_id, workspace_id, data, signal) {
38203
+ async function createTasklessTimeEntryWithOrg(httpClient, organization_id, workspace_id, data, from_recurring_task_id, return_occurrence, signal) {
38164
38204
  return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries`, {
38165
38205
  signal,
38166
- json: data
38206
+ json: data,
38207
+ searchParams: buildSearchParams$2({
38208
+ from_recurring_task_id,
38209
+ return_occurrence
38210
+ })
38167
38211
  }).json();
38168
38212
  }
38169
38213
  async function getBatchTimeEntriesWithOrg(httpClient, organization_id, workspace_id, { ids }, signal) {
@@ -38214,7 +38258,7 @@ async function bulkSetDayDurationWithOrg(httpClient, organization_id, workspace_
38214
38258
  json: data
38215
38259
  }).json();
38216
38260
  }
38217
- 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) {
38261
+ async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, project_id, type, order_by, archived, include_taskless, expand_calendar_event }, signal) {
38218
38262
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/stream`, {
38219
38263
  signal,
38220
38264
  searchParams: buildSearchParams$2({
@@ -38222,6 +38266,7 @@ async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, wor
38222
38266
  date_to,
38223
38267
  task_id,
38224
38268
  status_id,
38269
+ project_id,
38225
38270
  type,
38226
38271
  order_by,
38227
38272
  archived,
@@ -38245,19 +38290,33 @@ async function getStreamTimeEntriesTimeBlockIdsWithOrg(httpClient, organization_
38245
38290
  async function getTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, signal) {
38246
38291
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, { signal }).json();
38247
38292
  }
38248
- async function updateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, signal) {
38293
+ async function updateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, from_recurring_task_id, return_occurrence, signal) {
38249
38294
  return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, {
38250
38295
  signal,
38251
- json: data
38296
+ json: data,
38297
+ searchParams: buildSearchParams$2({
38298
+ from_recurring_task_id,
38299
+ return_occurrence
38300
+ })
38252
38301
  }).json();
38253
38302
  }
38254
- async function deleteTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, signal) {
38255
- return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, { signal }).json();
38303
+ async function deleteTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, from_recurring_task_id, return_occurrence, signal) {
38304
+ return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, {
38305
+ signal,
38306
+ searchParams: buildSearchParams$2({
38307
+ from_recurring_task_id,
38308
+ return_occurrence
38309
+ })
38310
+ }).json();
38256
38311
  }
38257
- async function partialUpdateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, signal) {
38312
+ async function partialUpdateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, from_recurring_task_id, return_occurrence, signal) {
38258
38313
  return await httpClient.patch(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, {
38259
38314
  signal,
38260
- json: data
38315
+ json: data,
38316
+ searchParams: buildSearchParams$2({
38317
+ from_recurring_task_id,
38318
+ return_occurrence
38319
+ })
38261
38320
  }).json();
38262
38321
  }
38263
38322
  async function archiveTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, signal) {
@@ -42130,13 +42189,15 @@ async function getWorkspaceAttachmentStorage(httpClient, organization_id, worksp
42130
42189
  }
42131
42190
  //#endregion
42132
42191
  //#region ../focus-queries/dist/audit-log/requests.ts
42133
- async function getOrganizationAuditLog(httpClient, organization_id, from, to, { workspace_id, entity_type, entity_id, action, user_id, page_size, page_number, export: export_ } = {}, signal) {
42192
+ async function getOrganizationAuditLog(httpClient, organization_id, from, to, { workspace_id, entity_type, entity_id, project_id, custom_field_id, action, user_id, page_size, page_number, export: export_ } = {}, signal) {
42134
42193
  return await httpClient.get(`organizations/${organization_id}/audit-log/${from}/${to}`, {
42135
42194
  signal,
42136
42195
  searchParams: buildSearchParams$2({
42137
42196
  workspace_id,
42138
42197
  entity_type,
42139
42198
  entity_id,
42199
+ project_id,
42200
+ custom_field_id,
42140
42201
  action,
42141
42202
  user_id,
42142
42203
  page_size,
@@ -42145,12 +42206,14 @@ async function getOrganizationAuditLog(httpClient, organization_id, from, to, {
42145
42206
  })
42146
42207
  }).json();
42147
42208
  }
42148
- async function getAuditLog(httpClient, organization_id, workspace_id, from, to, { entity_type, entity_id, action, user_id, page_size, page_number, export: export_ } = {}, signal) {
42209
+ async function getAuditLog(httpClient, organization_id, workspace_id, from, to, { entity_type, entity_id, project_id, custom_field_id, action, user_id, page_size, page_number, export: export_ } = {}, signal) {
42149
42210
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/audit-log/${from}/${to}`, {
42150
42211
  signal,
42151
42212
  searchParams: buildSearchParams$2({
42152
42213
  entity_type,
42153
42214
  entity_id,
42215
+ project_id,
42216
+ custom_field_id,
42154
42217
  action,
42155
42218
  user_id,
42156
42219
  page_size,
@@ -42303,13 +42366,14 @@ async function checkWorkspaceBillableRateConflicts(httpClient, organization_id,
42303
42366
  }
42304
42367
  //#endregion
42305
42368
  //#region ../focus-queries/dist/capacities/requests.ts
42306
- async function capacityGetComputations(httpClient, organization_id, workspace_id, group, { user_id, start_date, end_date, private: private_, task_source, unit, include_drafts, include_task_estimates }, signal) {
42369
+ async function capacityGetComputations(httpClient, organization_id, workspace_id, group, { start_date, end_date, user_id, team_id, private: private_, task_source, unit, include_drafts, include_task_estimates }, signal) {
42307
42370
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/capacities/${group}`, {
42308
42371
  signal,
42309
42372
  searchParams: buildSearchParams$2({
42310
- user_id,
42311
42373
  start_date,
42312
42374
  end_date,
42375
+ user_id,
42376
+ team_id,
42313
42377
  private: private_,
42314
42378
  task_source,
42315
42379
  unit,
@@ -42369,6 +42433,15 @@ async function updateCustomField(httpClient, organization_id, workspace_id, cust
42369
42433
  async function deleteCustomField(httpClient, organization_id, workspace_id, custom_field_id, signal) {
42370
42434
  return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}`, { signal }).json();
42371
42435
  }
42436
+ async function getCustomFieldAllowedUsers(httpClient, organization_id, workspace_id, custom_field_id, signal) {
42437
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/allowed-users`, { signal }).json();
42438
+ }
42439
+ async function replaceCustomFieldAllowedUsers(httpClient, organization_id, workspace_id, custom_field_id, data, signal) {
42440
+ return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/allowed-users`, {
42441
+ signal,
42442
+ json: data
42443
+ }).json();
42444
+ }
42372
42445
  async function getCustomFieldOptionsClassic(httpClient, organization_id, workspace_id, custom_field_id, { name, page, per_page, order_by } = {}, signal) {
42373
42446
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/options`, {
42374
42447
  signal,
@@ -42632,7 +42705,7 @@ async function restoreMilestone(httpClient, workspace_id, milestone_id, signal)
42632
42705
  }
42633
42706
  //#endregion
42634
42707
  //#region ../focus-queries/dist/project-groups/requests.ts
42635
- async function getProjectGroupsClassic(httpClient, organization_id, workspace_id, group, { page, per_page, order_by, project_order_by, projects_per_group, include_group_totals, include_unassigned, archived, completed, private: private_, name, client_id, creator_id, tag_id, parent_project_id, assignee_user_id, project_id, start_date, end_date, user_id, only_me, include_drafts, cf_filter } = {}, signal) {
42708
+ async function getProjectGroupsClassic(httpClient, organization_id, workspace_id, group, { page, per_page, order_by, project_order_by, projects_per_group, include_group_totals, include_unassigned, archived, completed, private: private_, name, client_id, creator_id, tag_id, parent_project_id, assignee_user_id, project_id, start_date, end_date, user_id, only_me, include_drafts, include_recurring_series, cf_filter } = {}, signal) {
42636
42709
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/projects/groups/${group}`, {
42637
42710
  signal,
42638
42711
  searchParams: buildSearchParams$2({
@@ -42658,6 +42731,7 @@ async function getProjectGroupsClassic(httpClient, organization_id, workspace_id
42658
42731
  user_id,
42659
42732
  only_me,
42660
42733
  include_drafts,
42734
+ include_recurring_series,
42661
42735
  cf_filter
42662
42736
  })
42663
42737
  }).json();
@@ -42676,9 +42750,6 @@ async function setWorkspaceProjectMarginTarget(httpClient, organization_id, work
42676
42750
  json: data
42677
42751
  }).json();
42678
42752
  }
42679
- async function clearWorkspaceProjectMarginTarget(httpClient, organization_id, workspace_id, signal) {
42680
- return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/workspace`, { signal }).json();
42681
- }
42682
42753
  async function getProjectMarginTarget(httpClient, organization_id, workspace_id, project_id, signal) {
42683
42754
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/${project_id}`, { signal }).json();
42684
42755
  }
@@ -42982,9 +43053,10 @@ async function updateTaskEstimateAllocations(httpClient, organization_id, worksp
42982
43053
  }
42983
43054
  //#endregion
42984
43055
  //#region ../focus-queries/dist/task-groups/requests.ts
42985
- async function getUserTaskGroupsByProject(httpClient, organization_id, workspace_id, { project_id, source, priority, status_id, client_id, assignee_user_id, tag_id, team_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter }, signal) {
43056
+ async function getUserTaskGroupsByProject(httpClient, organization_id, workspace_id, { project_id, source, priority, status_id, client_id, assignee_user_id, tag_id, team_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter, recurring_occurrences_after, max_recurring_occurrences_after, recurring_task_read, include_projected_occurrences, xTimelineFetchTrigger }, signal) {
42986
43057
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/users/by-project`, {
42987
43058
  signal,
43059
+ headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
42988
43060
  searchParams: buildSearchParams$2({
42989
43061
  project_id,
42990
43062
  source,
@@ -43013,13 +43085,18 @@ async function getUserTaskGroupsByProject(httpClient, organization_id, workspace
43013
43085
  min_days,
43014
43086
  include_drafts,
43015
43087
  cf_filter,
43016
- user_cf_filter
43088
+ user_cf_filter,
43089
+ recurring_occurrences_after,
43090
+ max_recurring_occurrences_after,
43091
+ recurring_task_read,
43092
+ include_projected_occurrences
43017
43093
  })
43018
43094
  }).json();
43019
43095
  }
43020
- async function getUserTaskGroupsByTeam(httpClient, organization_id, workspace_id, { team_id, project_id, source, priority, status_id, client_id, assignee_user_id, tag_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter } = {}, signal) {
43096
+ async function getUserTaskGroupsByTeam(httpClient, organization_id, workspace_id, { team_id, project_id, source, priority, status_id, client_id, assignee_user_id, tag_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter, recurring_occurrences_after, max_recurring_occurrences_after, recurring_task_read, include_projected_occurrences, xTimelineFetchTrigger } = {}, signal) {
43021
43097
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/users/by-team`, {
43022
43098
  signal,
43099
+ headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
43023
43100
  searchParams: buildSearchParams$2({
43024
43101
  team_id,
43025
43102
  project_id,
@@ -43048,13 +43125,18 @@ async function getUserTaskGroupsByTeam(httpClient, organization_id, workspace_id
43048
43125
  min_days,
43049
43126
  include_drafts,
43050
43127
  cf_filter,
43051
- user_cf_filter
43128
+ user_cf_filter,
43129
+ recurring_occurrences_after,
43130
+ max_recurring_occurrences_after,
43131
+ recurring_task_read,
43132
+ include_projected_occurrences
43052
43133
  })
43053
43134
  }).json();
43054
43135
  }
43055
- async function getTaskGroupsClassic(httpClient, organization_id, workspace_id, group, { source, priority, status_id, project_id, client_id, assignee_user_id, tag_id, team_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter, page, per_page, order_by } = {}, signal) {
43136
+ async function getTaskGroupsClassic(httpClient, organization_id, workspace_id, group, { source, priority, status_id, project_id, client_id, assignee_user_id, tag_id, team_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter, recurring_occurrences_after, max_recurring_occurrences_after, recurring_task_read, include_projected_occurrences, page, per_page, order_by, xTimelineFetchTrigger } = {}, signal) {
43056
43137
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/${group}`, {
43057
43138
  signal,
43139
+ headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
43058
43140
  searchParams: buildSearchParams$2({
43059
43141
  source,
43060
43142
  priority,
@@ -43084,6 +43166,10 @@ async function getTaskGroupsClassic(httpClient, organization_id, workspace_id, g
43084
43166
  include_drafts,
43085
43167
  cf_filter,
43086
43168
  user_cf_filter,
43169
+ recurring_occurrences_after,
43170
+ max_recurring_occurrences_after,
43171
+ recurring_task_read,
43172
+ include_projected_occurrences,
43087
43173
  page,
43088
43174
  per_page,
43089
43175
  order_by
@@ -43319,6 +43405,12 @@ async function withdrawTimesheet(httpClient, organization_id, workspace_id, setu
43319
43405
  }
43320
43406
  //#endregion
43321
43407
  //#region ../focus-queries/dist/user-settings/requests.ts
43408
+ async function emailUnsubscribePage(httpClient, token, signal) {
43409
+ return await httpClient.get(`email/unsubscribe/${token}`, { signal }).json();
43410
+ }
43411
+ async function emailUnsubscribe(httpClient, token, signal) {
43412
+ return await httpClient.post(`email/unsubscribe/${token}`, { signal }).json();
43413
+ }
43322
43414
  async function getUserSettings(httpClient, signal) {
43323
43415
  return await httpClient.get(`users/me/settings`, { signal }).json();
43324
43416
  }
@@ -43558,6 +43650,7 @@ const generatedFocusOperations = [
43558
43650
  mcp: { entityTool: "audit-log" },
43559
43651
  inputSchema: /* @__PURE__ */ looseObject({
43560
43652
  action: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43653
+ custom_field_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43561
43654
  entity_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43562
43655
  entity_type: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43563
43656
  export: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -43565,6 +43658,7 @@ const generatedFocusOperations = [
43565
43658
  from: /* @__PURE__ */ string$1(),
43566
43659
  page_number: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43567
43660
  page_size: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43661
+ project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43568
43662
  to: /* @__PURE__ */ string$1(),
43569
43663
  user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43570
43664
  workspace_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
@@ -43598,6 +43692,7 @@ const generatedFocusOperations = [
43598
43692
  mcp: { entityTool: "audit-log" },
43599
43693
  inputSchema: /* @__PURE__ */ looseObject({
43600
43694
  action: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43695
+ custom_field_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43601
43696
  entity_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43602
43697
  entity_type: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43603
43698
  export: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -43605,6 +43700,7 @@ const generatedFocusOperations = [
43605
43700
  from: /* @__PURE__ */ string$1(),
43606
43701
  page_number: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43607
43702
  page_size: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43703
+ project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43608
43704
  to: /* @__PURE__ */ string$1(),
43609
43705
  user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
43610
43706
  }),
@@ -43644,6 +43740,7 @@ const generatedFocusOperations = [
43644
43740
  private_: /* @__PURE__ */ unknown$1(),
43645
43741
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
43646
43742
  task_source: /* @__PURE__ */ unknown$1(),
43743
+ team_id: /* @__PURE__ */ number$2(),
43647
43744
  unit: /* @__PURE__ */ unknown$1(),
43648
43745
  user_id: /* @__PURE__ */ number$2()
43649
43746
  }),
@@ -44084,6 +44181,33 @@ const generatedFocusOperations = [
44084
44181
  ]));
44085
44182
  }
44086
44183
  },
44184
+ {
44185
+ id: "focus.custom-fields.get-allowed-users",
44186
+ family: "focus",
44187
+ resource: "custom-fields",
44188
+ action: "get-allowed-users",
44189
+ title: "Get Allowed Users Custom Fields",
44190
+ description: "Get Allowed Users Custom Fields.",
44191
+ safety: "read",
44192
+ destructive: false,
44193
+ cli: {
44194
+ group: ["custom-fields"],
44195
+ command: "get-allowed-users",
44196
+ interactive: "available"
44197
+ },
44198
+ mcp: { entityTool: "custom-fields" },
44199
+ inputSchema: /* @__PURE__ */ looseObject({ custom_field_id: /* @__PURE__ */ number$2() }),
44200
+ execute: (input, { client }) => {
44201
+ const data = input;
44202
+ return client.runGeneratedRequest("getCustomFieldAllowedUsers", () => callGeneratedRequest(getCustomFieldAllowedUsers, [
44203
+ client.httpClient,
44204
+ client.organizationId,
44205
+ client.workspaceIdNumber,
44206
+ data.custom_field_id,
44207
+ void 0
44208
+ ]));
44209
+ }
44210
+ },
44087
44211
  {
44088
44212
  id: "focus.custom-fields.list",
44089
44213
  family: "focus",
@@ -44253,6 +44377,37 @@ const generatedFocusOperations = [
44253
44377
  ]));
44254
44378
  }
44255
44379
  },
44380
+ {
44381
+ id: "focus.custom-fields.replace-custom-field-allowed-users",
44382
+ family: "focus",
44383
+ resource: "custom-fields",
44384
+ action: "replace-custom-field-allowed-users",
44385
+ title: "Replace Custom Field Allowed Users Custom Fields",
44386
+ description: "Replace Custom Field Allowed Users Custom Fields.",
44387
+ safety: "update",
44388
+ destructive: false,
44389
+ cli: {
44390
+ group: ["custom-fields"],
44391
+ command: "replace-custom-field-allowed-users",
44392
+ interactive: "default"
44393
+ },
44394
+ mcp: { entityTool: "custom-fields" },
44395
+ inputSchema: /* @__PURE__ */ looseObject({
44396
+ custom_field_id: /* @__PURE__ */ number$2(),
44397
+ payload: /* @__PURE__ */ looseObject({ user_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()) })
44398
+ }),
44399
+ execute: (input, { client }) => {
44400
+ const data = input;
44401
+ return client.runGeneratedRequest("replaceCustomFieldAllowedUsers", () => callGeneratedRequest(replaceCustomFieldAllowedUsers, [
44402
+ client.httpClient,
44403
+ client.organizationId,
44404
+ client.workspaceIdNumber,
44405
+ data.custom_field_id,
44406
+ data.payload ?? data.data ?? data,
44407
+ void 0
44408
+ ]));
44409
+ }
44410
+ },
44256
44411
  {
44257
44412
  id: "focus.custom-fields.update",
44258
44413
  family: "focus",
@@ -44399,13 +44554,7 @@ const generatedFocusOperations = [
44399
44554
  },
44400
44555
  mcp: { entityTool: "goals" },
44401
44556
  inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({
44402
- billable: /* @__PURE__ */ boolean$1(),
44403
44557
  comparison: /* @__PURE__ */ picklist$1(["more_than", "less_than"]),
44404
- end_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
44405
- icon: /* @__PURE__ */ string$1(),
44406
- monthly_anchor: /* @__PURE__ */ picklist$1(["calendar", "first_workday"]),
44407
- name: /* @__PURE__ */ string$1(),
44408
- project_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44409
44558
  recurrence: /* @__PURE__ */ picklist$1([
44410
44559
  "daily",
44411
44560
  "weekly",
@@ -44413,12 +44562,18 @@ const generatedFocusOperations = [
44413
44562
  "monthly"
44414
44563
  ]),
44415
44564
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
44416
- tag_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44417
44565
  target_seconds: /* @__PURE__ */ number$2(),
44418
- task_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44419
- weekdays: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44566
+ billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
44420
44567
  client_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44421
- description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1())
44568
+ description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44569
+ end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
44570
+ icon: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44571
+ monthly_anchor: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["calendar", "first_workday"])),
44572
+ name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44573
+ project_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44574
+ tag_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44575
+ task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44576
+ weekdays: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
44422
44577
  }) }),
44423
44578
  execute: (input, { client }) => {
44424
44579
  const data = input;
@@ -44524,13 +44679,6 @@ const generatedFocusOperations = [
44524
44679
  },
44525
44680
  mcp: { entityTool: "goals" },
44526
44681
  inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({
44527
- billable: /* @__PURE__ */ boolean$1(),
44528
- comparison: /* @__PURE__ */ picklist$1(["more_than", "less_than"]),
44529
- end_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
44530
- icon: /* @__PURE__ */ string$1(),
44531
- monthly_anchor: /* @__PURE__ */ picklist$1(["calendar", "first_workday"]),
44532
- name: /* @__PURE__ */ string$1(),
44533
- project_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44534
44682
  recurrence: /* @__PURE__ */ picklist$1([
44535
44683
  "daily",
44536
44684
  "weekly",
@@ -44538,12 +44686,19 @@ const generatedFocusOperations = [
44538
44686
  "monthly"
44539
44687
  ]),
44540
44688
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
44541
- tag_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44542
- target_seconds: /* @__PURE__ */ number$2(),
44543
- task_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44544
- weekdays: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44689
+ billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
44545
44690
  client_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44546
- description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1())
44691
+ comparison: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["more_than", "less_than"])),
44692
+ description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44693
+ end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
44694
+ icon: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44695
+ monthly_anchor: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["calendar", "first_workday"])),
44696
+ name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44697
+ project_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44698
+ tag_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44699
+ target_seconds: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
44700
+ task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44701
+ weekdays: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
44547
44702
  }) }),
44548
44703
  execute: (input, { client }) => {
44549
44704
  const data = input;
@@ -45510,9 +45665,17 @@ const generatedFocusOperations = [
45510
45665
  mcp: { entityTool: "projects" },
45511
45666
  inputSchema: /* @__PURE__ */ looseObject({
45512
45667
  payload: /* @__PURE__ */ looseObject({
45668
+ auto_compute_estimates: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
45669
+ completion_mode: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["manual", "automatic"])),
45513
45670
  end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
45514
45671
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
45515
45672
  pinned: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
45673
+ rollover_mode: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1([
45674
+ "expire",
45675
+ "carry_all",
45676
+ "carry_over"
45677
+ ])),
45678
+ rrule: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
45516
45679
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
45517
45680
  }),
45518
45681
  project_id: /* @__PURE__ */ number$2()
@@ -45956,6 +46119,7 @@ const generatedFocusOperations = [
45956
46119
  group: /* @__PURE__ */ string$1(),
45957
46120
  include_drafts: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
45958
46121
  include_group_totals: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
46122
+ include_recurring_series: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
45959
46123
  include_unassigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
45960
46124
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
45961
46125
  only_me: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -46058,29 +46222,6 @@ const generatedFocusOperations = [
46058
46222
  ]));
46059
46223
  }
46060
46224
  },
46061
- {
46062
- id: "focus.projects.margin-targets-clear-workspace",
46063
- family: "focus",
46064
- resource: "projects",
46065
- action: "margin-targets-clear-workspace",
46066
- title: "Margin Targets Clear Workspace Projects",
46067
- description: "Margin Targets Clear Workspace Projects.",
46068
- safety: "delete",
46069
- destructive: true,
46070
- cli: {
46071
- group: ["projects", "margin-targets"],
46072
- command: "clear-workspace",
46073
- interactive: "default"
46074
- },
46075
- mcp: { entityTool: "projects" },
46076
- inputSchema: /* @__PURE__ */ looseObject({}),
46077
- execute: (_input, { client }) => client.runGeneratedRequest("clearWorkspaceProjectMarginTarget", () => callGeneratedRequest(clearWorkspaceProjectMarginTarget, [
46078
- client.httpClient,
46079
- client.organizationId,
46080
- client.workspaceIdNumber,
46081
- void 0
46082
- ]))
46083
- },
46084
46225
  {
46085
46226
  id: "focus.projects.margin-targets-get",
46086
46227
  family: "focus",
@@ -48483,7 +48624,7 @@ const generatedFocusOperations = [
48483
48624
  cli: {
48484
48625
  group: ["reportschedules"],
48485
48626
  command: "upsert-saved-view-schedule",
48486
- interactive: "default"
48627
+ interactive: "hidden"
48487
48628
  },
48488
48629
  mcp: { entityTool: "reportschedules" },
48489
48630
  inputSchema: /* @__PURE__ */ looseObject({
@@ -48494,8 +48635,10 @@ const generatedFocusOperations = [
48494
48635
  "weekly",
48495
48636
  "monthly"
48496
48637
  ]),
48638
+ charts: /* @__PURE__ */ unknown$1(),
48497
48639
  time: /* @__PURE__ */ string$1(),
48498
48640
  day: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
48641
+ period: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
48499
48642
  recipient_team_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
48500
48643
  recipient_user_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
48501
48644
  recipient_workspace_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
@@ -50044,6 +50187,37 @@ const generatedFocusOperations = [
50044
50187
  return client.createTask(data);
50045
50188
  }
50046
50189
  },
50190
+ {
50191
+ id: "focus.tasks.create-recurring-occurrence",
50192
+ family: "focus",
50193
+ resource: "tasks",
50194
+ action: "create-recurring-occurrence",
50195
+ title: "Create Recurring Occurrence Tasks",
50196
+ description: "Create Recurring Occurrence Tasks.",
50197
+ safety: "create",
50198
+ destructive: false,
50199
+ cli: {
50200
+ group: ["tasks"],
50201
+ command: "create-recurring-occurrence",
50202
+ interactive: "default"
50203
+ },
50204
+ mcp: { entityTool: "tasks" },
50205
+ inputSchema: /* @__PURE__ */ looseObject({
50206
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
50207
+ task_id: /* @__PURE__ */ number$2()
50208
+ }),
50209
+ execute: (input, { client }) => {
50210
+ const data = input;
50211
+ return client.runGeneratedRequest("createRecurringOccurrence", () => callGeneratedRequest(createRecurringOccurrence, [
50212
+ client.httpClient,
50213
+ client.organizationId,
50214
+ client.workspaceIdNumber,
50215
+ data.task_id,
50216
+ data.return_occurrence,
50217
+ void 0
50218
+ ]));
50219
+ }
50220
+ },
50047
50221
  {
50048
50222
  id: "focus.tasks.delete",
50049
50223
  family: "focus",
@@ -50291,9 +50465,13 @@ const generatedFocusOperations = [
50291
50465
  dates_overlap_start: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50292
50466
  end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50293
50467
  include_assignees: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50468
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50469
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50294
50470
  page: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50295
50471
  per_page: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50472
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50296
50473
  recurring_task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50474
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50297
50475
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50298
50476
  tag_id: /* @__PURE__ */ optional$1(tagIdFilterSchema),
50299
50477
  team_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
@@ -50345,7 +50523,9 @@ const generatedFocusOperations = [
50345
50523
  include_drafts: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50346
50524
  include_parent_matches: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50347
50525
  include_project_completed: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50526
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50348
50527
  is_priority: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50528
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50349
50529
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50350
50530
  order_by: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50351
50531
  parent_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
@@ -50354,7 +50534,9 @@ const generatedFocusOperations = [
50354
50534
  private_: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50355
50535
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50356
50536
  recurring: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50537
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50357
50538
  recurring_task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50539
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50358
50540
  source: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50359
50541
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50360
50542
  start_date_from: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50492,8 +50674,10 @@ const generatedFocusOperations = [
50492
50674
  group_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50493
50675
  include_assignees: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50494
50676
  include_drafts: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50677
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50495
50678
  include_unassigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50496
50679
  include_unmaterialized: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50680
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50497
50681
  min_days: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50498
50682
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50499
50683
  order_by: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50502,6 +50686,8 @@ const generatedFocusOperations = [
50502
50686
  priority: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50503
50687
  private_: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50504
50688
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50689
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50690
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50505
50691
  source: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50506
50692
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50507
50693
  start_date_from: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50510,7 +50696,8 @@ const generatedFocusOperations = [
50510
50696
  tag_id: /* @__PURE__ */ optional$1(tagIdFilterSchema),
50511
50697
  team_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50512
50698
  user_cf_filter: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50513
- user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
50699
+ user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50700
+ xTimelineFetchTrigger: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
50514
50701
  }),
50515
50702
  execute: (input, { client }) => {
50516
50703
  const data = input;
@@ -50552,13 +50739,17 @@ const generatedFocusOperations = [
50552
50739
  group_id: /* @__PURE__ */ number$2(),
50553
50740
  include_assignees: /* @__PURE__ */ unknown$1(),
50554
50741
  include_drafts: /* @__PURE__ */ unknown$1(),
50742
+ include_projected_occurrences: /* @__PURE__ */ unknown$1(),
50555
50743
  include_unassigned: /* @__PURE__ */ unknown$1(),
50556
50744
  include_unmaterialized: /* @__PURE__ */ unknown$1(),
50745
+ max_recurring_occurrences_after: /* @__PURE__ */ unknown$1(),
50557
50746
  min_days: /* @__PURE__ */ unknown$1(),
50558
50747
  name: /* @__PURE__ */ unknown$1(),
50559
50748
  priority: /* @__PURE__ */ unknown$1(),
50560
50749
  private_: /* @__PURE__ */ unknown$1(),
50561
50750
  project_id: /* @__PURE__ */ number$2(),
50751
+ recurring_occurrences_after: /* @__PURE__ */ unknown$1(),
50752
+ recurring_task_read: /* @__PURE__ */ unknown$1(),
50562
50753
  source: /* @__PURE__ */ unknown$1(),
50563
50754
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
50564
50755
  start_date_from: /* @__PURE__ */ unknown$1(),
@@ -50567,7 +50758,8 @@ const generatedFocusOperations = [
50567
50758
  tag_id: /* @__PURE__ */ number$2(),
50568
50759
  team_id: /* @__PURE__ */ number$2(),
50569
50760
  user_cf_filter: /* @__PURE__ */ unknown$1(),
50570
- user_tag_id: /* @__PURE__ */ number$2()
50761
+ user_tag_id: /* @__PURE__ */ number$2(),
50762
+ xTimelineFetchTrigger: /* @__PURE__ */ unknown$1()
50571
50763
  }),
50572
50764
  execute: (input, { client }) => {
50573
50765
  const data = input;
@@ -50608,13 +50800,17 @@ const generatedFocusOperations = [
50608
50800
  group_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50609
50801
  include_assignees: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50610
50802
  include_drafts: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50803
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50611
50804
  include_unassigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50612
50805
  include_unmaterialized: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50806
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50613
50807
  min_days: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50614
50808
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50615
50809
  priority: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50616
50810
  private_: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50617
50811
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50812
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50813
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50618
50814
  source: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50619
50815
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50620
50816
  start_date_from: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50623,7 +50819,8 @@ const generatedFocusOperations = [
50623
50819
  tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50624
50820
  team_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50625
50821
  user_cf_filter: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50626
- user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
50822
+ user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50823
+ xTimelineFetchTrigger: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
50627
50824
  }),
50628
50825
  execute: (input, { client }) => {
50629
50826
  const data = input;
@@ -50894,7 +51091,8 @@ const generatedFocusOperations = [
50894
51091
  mcp: { entityTool: "tasks" },
50895
51092
  inputSchema: /* @__PURE__ */ looseObject({
50896
51093
  date_from: /* @__PURE__ */ string$1(),
50897
- date_to: /* @__PURE__ */ string$1()
51094
+ date_to: /* @__PURE__ */ string$1(),
51095
+ skip_provider_refresh: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
50898
51096
  }),
50899
51097
  execute: (input, { client }) => {
50900
51098
  const data = input;
@@ -50904,6 +51102,7 @@ const generatedFocusOperations = [
50904
51102
  client.workspaceIdNumber,
50905
51103
  data.date_from,
50906
51104
  data.date_to,
51105
+ data.skip_provider_refresh,
50907
51106
  void 0
50908
51107
  ]));
50909
51108
  }
@@ -51490,7 +51689,8 @@ const generatedFocusOperations = [
51490
51689
  required_fields: /* @__PURE__ */ array$1(/* @__PURE__ */ looseObject({ kind: /* @__PURE__ */ picklist$1([
51491
51690
  "project",
51492
51691
  "task",
51493
- "description"
51692
+ "description",
51693
+ "tags"
51494
51694
  ]) })),
51495
51695
  disallow_billable_override: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
51496
51696
  }) }),
@@ -51520,6 +51720,7 @@ const generatedFocusOperations = [
51520
51720
  },
51521
51721
  mcp: { entityTool: "time-entries" },
51522
51722
  inputSchema: /* @__PURE__ */ looseObject({
51723
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51523
51724
  payload: /* @__PURE__ */ looseObject({
51524
51725
  type: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["activity", "break"]), "activity"),
51525
51726
  billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
@@ -51530,11 +51731,13 @@ const generatedFocusOperations = [
51530
51731
  planned_duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51531
51732
  planned_start: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
51532
51733
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51734
+ repeat_time_entry: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51533
51735
  start: /* @__PURE__ */ optional$1(apiDateTimeString),
51534
51736
  time_block_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51535
51737
  tracked_at: /* @__PURE__ */ optional$1(apiDateTimeString),
51536
51738
  user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
51537
51739
  }),
51740
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51538
51741
  task_id: /* @__PURE__ */ number$2()
51539
51742
  }),
51540
51743
  execute: (input, { client }) => {
@@ -51545,6 +51748,8 @@ const generatedFocusOperations = [
51545
51748
  client.workspaceIdNumber,
51546
51749
  data.task_id,
51547
51750
  data.payload ?? data.data ?? data,
51751
+ data.from_recurring_task_id,
51752
+ data.return_occurrence,
51548
51753
  void 0
51549
51754
  ]));
51550
51755
  }
@@ -51564,21 +51769,26 @@ const generatedFocusOperations = [
51564
51769
  interactive: "default"
51565
51770
  },
51566
51771
  mcp: { entityTool: "time-entries" },
51567
- inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({
51568
- type: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["activity", "break"]), "activity"),
51569
- billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51570
- calendar_event_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51571
- description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
51572
- duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51573
- planned_at: /* @__PURE__ */ optional$1(apiDateTimeString),
51574
- planned_duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51575
- planned_start: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
51576
- project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51577
- start: /* @__PURE__ */ optional$1(apiDateTimeString),
51578
- time_block_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51579
- tracked_at: /* @__PURE__ */ optional$1(apiDateTimeString),
51580
- user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
51581
- }) }),
51772
+ inputSchema: /* @__PURE__ */ looseObject({
51773
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51774
+ payload: /* @__PURE__ */ looseObject({
51775
+ type: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["activity", "break"]), "activity"),
51776
+ billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51777
+ calendar_event_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51778
+ description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
51779
+ duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51780
+ planned_at: /* @__PURE__ */ optional$1(apiDateTimeString),
51781
+ planned_duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51782
+ planned_start: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
51783
+ project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51784
+ repeat_time_entry: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51785
+ start: /* @__PURE__ */ optional$1(apiDateTimeString),
51786
+ time_block_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51787
+ tracked_at: /* @__PURE__ */ optional$1(apiDateTimeString),
51788
+ user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
51789
+ }),
51790
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
51791
+ }),
51582
51792
  execute: (input, { client }) => {
51583
51793
  const data = input;
51584
51794
  return client.runGeneratedRequest("createTasklessTimeEntryWithOrg", () => callGeneratedRequest(createTasklessTimeEntryWithOrg, [
@@ -51586,6 +51796,8 @@ const generatedFocusOperations = [
51586
51796
  client.organizationId,
51587
51797
  client.workspaceIdNumber,
51588
51798
  data.payload ?? data.data ?? data,
51799
+ data.from_recurring_task_id,
51800
+ data.return_occurrence,
51589
51801
  void 0
51590
51802
  ]));
51591
51803
  }
@@ -51605,7 +51817,11 @@ const generatedFocusOperations = [
51605
51817
  interactive: "default"
51606
51818
  },
51607
51819
  mcp: { entityTool: "time-entries" },
51608
- inputSchema: /* @__PURE__ */ looseObject({ time_entry_id: /* @__PURE__ */ number$2() }),
51820
+ inputSchema: /* @__PURE__ */ looseObject({
51821
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51822
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51823
+ time_entry_id: /* @__PURE__ */ number$2()
51824
+ }),
51609
51825
  execute: (input, { client }) => {
51610
51826
  const data = input;
51611
51827
  return client.runGeneratedRequest("deleteTimeEntryWithOrg", () => callGeneratedRequest(deleteTimeEntryWithOrg, [
@@ -51613,6 +51829,8 @@ const generatedFocusOperations = [
51613
51829
  client.organizationId,
51614
51830
  client.workspaceIdNumber,
51615
51831
  data.time_entry_id,
51832
+ data.from_recurring_task_id,
51833
+ data.return_occurrence,
51616
51834
  void 0
51617
51835
  ]));
51618
51836
  }
@@ -51693,6 +51911,7 @@ const generatedFocusOperations = [
51693
51911
  expand_calendar_event: /* @__PURE__ */ unknown$1(),
51694
51912
  include_taskless: /* @__PURE__ */ unknown$1(),
51695
51913
  order_by: /* @__PURE__ */ unknown$1(),
51914
+ project_id: /* @__PURE__ */ number$2(),
51696
51915
  status_id: /* @__PURE__ */ number$2(),
51697
51916
  task_id: /* @__PURE__ */ number$2(),
51698
51917
  type: /* @__PURE__ */ unknown$1()
@@ -51869,12 +52088,14 @@ const generatedFocusOperations = [
51869
52088
  },
51870
52089
  mcp: { entityTool: "time-entries" },
51871
52090
  inputSchema: /* @__PURE__ */ looseObject({
52091
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51872
52092
  payload: /* @__PURE__ */ looseObject({
51873
52093
  billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51874
52094
  duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51875
52095
  reset_billable_to_default: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51876
52096
  type: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["activity", "break"]))
51877
52097
  }),
52098
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51878
52099
  time_entry_id: /* @__PURE__ */ number$2()
51879
52100
  }),
51880
52101
  execute: (input, { client }) => {
@@ -51885,6 +52106,8 @@ const generatedFocusOperations = [
51885
52106
  client.workspaceIdNumber,
51886
52107
  data.time_entry_id,
51887
52108
  data.payload ?? data.data ?? data,
52109
+ data.from_recurring_task_id,
52110
+ data.return_occurrence,
51888
52111
  void 0
51889
52112
  ]));
51890
52113
  }
@@ -52142,6 +52365,7 @@ const generatedFocusOperations = [
52142
52365
  },
52143
52366
  mcp: { entityTool: "time-entries" },
52144
52367
  inputSchema: /* @__PURE__ */ looseObject({
52368
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
52145
52369
  payload: /* @__PURE__ */ looseObject({
52146
52370
  type: /* @__PURE__ */ picklist$1(["activity", "break"]),
52147
52371
  calendar_event_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
@@ -52154,6 +52378,7 @@ const generatedFocusOperations = [
52154
52378
  time_block_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
52155
52379
  tracked_at: /* @__PURE__ */ optional$1(apiDateTimeString)
52156
52380
  }),
52381
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
52157
52382
  time_entry_id: /* @__PURE__ */ number$2()
52158
52383
  }),
52159
52384
  execute: (input, { client }) => {
@@ -52164,6 +52389,8 @@ const generatedFocusOperations = [
52164
52389
  client.workspaceIdNumber,
52165
52390
  data.time_entry_id,
52166
52391
  data.payload ?? data.data ?? data,
52392
+ data.from_recurring_task_id,
52393
+ data.return_occurrence,
52167
52394
  void 0
52168
52395
  ]));
52169
52396
  }
@@ -53249,6 +53476,56 @@ const generatedFocusOperations = [
53249
53476
  return client.listOrgUsers(data);
53250
53477
  }
53251
53478
  },
53479
+ {
53480
+ id: "focus.users.settings-email-unsubscribe",
53481
+ family: "focus",
53482
+ resource: "users",
53483
+ action: "settings-email-unsubscribe",
53484
+ title: "Settings Email Unsubscribe Users",
53485
+ description: "Settings Email Unsubscribe Users.",
53486
+ safety: "update",
53487
+ destructive: false,
53488
+ cli: {
53489
+ group: ["users", "settings"],
53490
+ command: "email-unsubscribe",
53491
+ interactive: "default"
53492
+ },
53493
+ mcp: { entityTool: "users" },
53494
+ inputSchema: /* @__PURE__ */ looseObject({ token: /* @__PURE__ */ string$1() }),
53495
+ execute: (input, { client }) => {
53496
+ const data = input;
53497
+ return client.runGeneratedRequest("emailUnsubscribe", () => callGeneratedRequest(emailUnsubscribe, [
53498
+ client.httpClient,
53499
+ data.token,
53500
+ void 0
53501
+ ]));
53502
+ }
53503
+ },
53504
+ {
53505
+ id: "focus.users.settings-email-unsubscribe-page",
53506
+ family: "focus",
53507
+ resource: "users",
53508
+ action: "settings-email-unsubscribe-page",
53509
+ title: "Settings Email Unsubscribe Page Users",
53510
+ description: "Settings Email Unsubscribe Page Users.",
53511
+ safety: "read",
53512
+ destructive: false,
53513
+ cli: {
53514
+ group: ["users", "settings"],
53515
+ command: "email-unsubscribe-page",
53516
+ interactive: "available"
53517
+ },
53518
+ mcp: { entityTool: "users" },
53519
+ inputSchema: /* @__PURE__ */ looseObject({ token: /* @__PURE__ */ string$1() }),
53520
+ execute: (input, { client }) => {
53521
+ const data = input;
53522
+ return client.runGeneratedRequest("emailUnsubscribePage", () => callGeneratedRequest(emailUnsubscribePage, [
53523
+ client.httpClient,
53524
+ data.token,
53525
+ void 0
53526
+ ]));
53527
+ }
53528
+ },
53252
53529
  {
53253
53530
  id: "focus.users.settings-list",
53254
53531
  family: "focus",
@@ -53310,6 +53587,9 @@ const generatedFocusOperations = [
53310
53587
  has_reached_task_threshold: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53311
53588
  import_data_banner_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53312
53589
  new_users_trial_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53590
+ notify_project_alerts: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53591
+ notify_project_member_added: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53592
+ notify_task_assigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53313
53593
  onboarding_checklist_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53314
53594
  onboarding_flow_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53315
53595
  onboarding_multi_day_task_created: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
@@ -54853,7 +55133,7 @@ function registerWorkspaceTools(server) {
54853
55133
  //#region src/package-version.ts
54854
55134
  function mcpPackageVersion() {
54855
55135
  try {
54856
- return "1.11.33";
55136
+ return "1.11.34";
54857
55137
  } catch {
54858
55138
  return "unknown";
54859
55139
  }
@@ -55028,7 +55308,7 @@ import_main.default.config({
55028
55308
  quiet: true,
55029
55309
  ignore: ["MISSING_ENV_FILE"]
55030
55310
  });
55031
- const packageVersion = "1.11.33";
55311
+ const packageVersion = "1.11.34";
55032
55312
  function resolvePublicUrls() {
55033
55313
  return {
55034
55314
  focusApiUrl: process.env.TOGGL_FOCUS_API_URL ?? "https://focus.toggl.com",
@@ -55093,4 +55373,4 @@ function bootstrapServer(options = {}) {
55093
55373
  //#endregion
55094
55374
  export { initProductAnalytics as a, shutdownProductAnalytics as c, getProductAnalyticsDistinctId as i, runMcpCli as n, redactUnsafeSentryMessages as o, captureToolInvocation as r, resolveProductAnalyticsDistinctId as s, bootstrapServer as t };
55095
55375
 
55096
- //# sourceMappingURL=src-B4NOBGDZ.js.map
55376
+ //# sourceMappingURL=src-X1or7-7J.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@togglhq/mcp",
3
- "version": "1.11.33",
3
+ "version": "1.11.34",
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",