@togglhq/mcp 1.11.38 → 1.11.39

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-YwLdTifK.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-DmVgu8K8.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.38";
168
+ const packageVersion = "1.11.39";
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-YwLdTifK.js";
2
+ import { n as runMcpCli, t as bootstrapServer } from "./src-DmVgu8K8.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()))),
@@ -37388,7 +37397,7 @@ async function getOrganizationTeamsClassic(httpClient, organization_id, { worksp
37388
37397
  })
37389
37398
  }).json();
37390
37399
  }
37391
- async function getOrganizationUsersClassic(httpClient, organization_id, { workspaces, user_account_ids, org_user_ids, groups, toggl_products, active_status, roles, only_admins, filter, sort_dir, page, per_page, tag_ids, include_working_hours, include_rates, pinned_ids, has_group, cf_filter, include_custom_fields, include_calendar_integration } = {}, signal) {
37400
+ async function getOrganizationUsersClassic(httpClient, organization_id, { workspaces, user_account_ids, org_user_ids, groups, toggl_products, active_status, roles, only_admins, filter, sort_dir, page, per_page, tag_ids, include_working_hours, include_rates, pinned_ids, has_group, track_without_focus, cf_filter, include_custom_fields, include_calendar_integration } = {}, signal) {
37392
37401
  const response = await httpClient.get(`organizations/${organization_id}/users`, {
37393
37402
  signal,
37394
37403
  searchParams: buildSearchParams$2({
@@ -37409,6 +37418,7 @@ async function getOrganizationUsersClassic(httpClient, organization_id, { worksp
37409
37418
  include_rates,
37410
37419
  pinned_ids,
37411
37420
  has_group,
37421
+ track_without_focus,
37412
37422
  cf_filter,
37413
37423
  include_custom_fields,
37414
37424
  include_calendar_integration
@@ -37510,10 +37520,18 @@ async function unarchiveTag(httpClient, workspace_id, tag_id, signal) {
37510
37520
  }
37511
37521
  //#endregion
37512
37522
  //#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) {
37523
+ 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
37524
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/projects`, {
37515
37525
  signal,
37516
37526
  searchParams: buildSearchParams$2({
37527
+ include_task_counts,
37528
+ task_archived,
37529
+ task_recurring,
37530
+ task_state,
37531
+ task_source,
37532
+ task_assignee_user_id,
37533
+ task_assignee_team_id,
37534
+ task_name,
37517
37535
  page,
37518
37536
  per_page,
37519
37537
  order_by,
@@ -37763,7 +37781,7 @@ async function restoreStatuses(httpClient, workspace_id, status_id, signal) {
37763
37781
  }
37764
37782
  //#endregion
37765
37783
  //#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) {
37784
+ 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
37785
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks`, {
37768
37786
  signal,
37769
37787
  searchParams: buildSearchParams$2({
@@ -37814,7 +37832,11 @@ async function getTasksClassic(httpClient, organization_id, workspace_id, { page
37814
37832
  include_assignees,
37815
37833
  include_parent_matches,
37816
37834
  disable_aggregations,
37817
- cf_filter
37835
+ cf_filter,
37836
+ recurring_occurrences_after,
37837
+ max_recurring_occurrences_after,
37838
+ recurring_task_read,
37839
+ include_projected_occurrences
37818
37840
  })
37819
37841
  }).json();
37820
37842
  }
@@ -37889,16 +37911,17 @@ async function getTasksCalendarEvents(httpClient, organization_id, workspace_id,
37889
37911
  })
37890
37912
  }).json();
37891
37913
  }
37892
- async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, signal) {
37914
+ async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, skip_provider_refresh, signal) {
37893
37915
  return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/calendar`, {
37894
37916
  signal,
37895
37917
  searchParams: buildSearchParams$2({
37896
37918
  date_from,
37897
- date_to
37919
+ date_to,
37920
+ skip_provider_refresh
37898
37921
  })
37899
37922
  }).json();
37900
37923
  }
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) {
37924
+ 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
37925
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/recurring`, {
37903
37926
  signal,
37904
37927
  searchParams: buildSearchParams$2({
@@ -37914,11 +37937,15 @@ async function getTasksRecurringInstancesClassic(httpClient, organization_id, wo
37914
37937
  assignee_team_id,
37915
37938
  assignee_user_id,
37916
37939
  tag_id,
37917
- include_assignees
37940
+ include_assignees,
37941
+ recurring_occurrences_after,
37942
+ max_recurring_occurrences_after,
37943
+ recurring_task_read,
37944
+ include_projected_occurrences
37918
37945
  })
37919
37946
  }).json();
37920
37947
  }
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) {
37948
+ 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
37949
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/stream`, {
37923
37950
  signal,
37924
37951
  searchParams: buildSearchParams$2({
@@ -37963,7 +37990,11 @@ async function getStreamTasks(httpClient, organization_id, workspace_id, { with_
37963
37990
  recurring_task_ids,
37964
37991
  client_id,
37965
37992
  include_assignees,
37966
- cf_filter
37993
+ cf_filter,
37994
+ recurring_occurrences_after,
37995
+ max_recurring_occurrences_after,
37996
+ recurring_task_read,
37997
+ include_projected_occurrences
37967
37998
  })
37968
37999
  }).json();
37969
38000
  }
@@ -38018,6 +38049,12 @@ async function getTaskWithChildrenClassic(httpClient, organization_id, workspace
38018
38049
  })
38019
38050
  }).json();
38020
38051
  }
38052
+ async function createRecurringOccurrence(httpClient, organization_id, workspace_id, task_id, return_occurrence, signal) {
38053
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/occurrences`, {
38054
+ signal,
38055
+ searchParams: buildSearchParams$2({ return_occurrence })
38056
+ }).json();
38057
+ }
38021
38058
  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
38059
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/parents`, {
38023
38060
  signal,
@@ -38154,16 +38191,24 @@ async function getTaskTimeEntriesWithOrgClassic(httpClient, organization_id, wor
38154
38191
  })
38155
38192
  }).json();
38156
38193
  }
38157
- async function createTimeEntryWithOrg(httpClient, organization_id, workspace_id, task_id, data, signal) {
38194
+ async function createTimeEntryWithOrg(httpClient, organization_id, workspace_id, task_id, data, from_recurring_task_id, return_occurrence, signal) {
38158
38195
  return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-entries`, {
38159
38196
  signal,
38160
- json: data
38197
+ json: data,
38198
+ searchParams: buildSearchParams$2({
38199
+ from_recurring_task_id,
38200
+ return_occurrence
38201
+ })
38161
38202
  }).json();
38162
38203
  }
38163
- async function createTasklessTimeEntryWithOrg(httpClient, organization_id, workspace_id, data, signal) {
38204
+ async function createTasklessTimeEntryWithOrg(httpClient, organization_id, workspace_id, data, from_recurring_task_id, return_occurrence, signal) {
38164
38205
  return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries`, {
38165
38206
  signal,
38166
- json: data
38207
+ json: data,
38208
+ searchParams: buildSearchParams$2({
38209
+ from_recurring_task_id,
38210
+ return_occurrence
38211
+ })
38167
38212
  }).json();
38168
38213
  }
38169
38214
  async function getBatchTimeEntriesWithOrg(httpClient, organization_id, workspace_id, { ids }, signal) {
@@ -38214,7 +38259,7 @@ async function bulkSetDayDurationWithOrg(httpClient, organization_id, workspace_
38214
38259
  json: data
38215
38260
  }).json();
38216
38261
  }
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) {
38262
+ 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
38263
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/stream`, {
38219
38264
  signal,
38220
38265
  searchParams: buildSearchParams$2({
@@ -38222,6 +38267,7 @@ async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, wor
38222
38267
  date_to,
38223
38268
  task_id,
38224
38269
  status_id,
38270
+ project_id,
38225
38271
  type,
38226
38272
  order_by,
38227
38273
  archived,
@@ -38245,19 +38291,33 @@ async function getStreamTimeEntriesTimeBlockIdsWithOrg(httpClient, organization_
38245
38291
  async function getTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, signal) {
38246
38292
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, { signal }).json();
38247
38293
  }
38248
- async function updateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, signal) {
38294
+ async function updateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, from_recurring_task_id, return_occurrence, signal) {
38249
38295
  return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, {
38250
38296
  signal,
38251
- json: data
38297
+ json: data,
38298
+ searchParams: buildSearchParams$2({
38299
+ from_recurring_task_id,
38300
+ return_occurrence
38301
+ })
38252
38302
  }).json();
38253
38303
  }
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();
38304
+ async function deleteTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, from_recurring_task_id, return_occurrence, signal) {
38305
+ return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, {
38306
+ signal,
38307
+ searchParams: buildSearchParams$2({
38308
+ from_recurring_task_id,
38309
+ return_occurrence
38310
+ })
38311
+ }).json();
38256
38312
  }
38257
- async function partialUpdateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, signal) {
38313
+ async function partialUpdateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, from_recurring_task_id, return_occurrence, signal) {
38258
38314
  return await httpClient.patch(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, {
38259
38315
  signal,
38260
- json: data
38316
+ json: data,
38317
+ searchParams: buildSearchParams$2({
38318
+ from_recurring_task_id,
38319
+ return_occurrence
38320
+ })
38261
38321
  }).json();
38262
38322
  }
38263
38323
  async function archiveTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, signal) {
@@ -42130,13 +42190,15 @@ async function getWorkspaceAttachmentStorage(httpClient, organization_id, worksp
42130
42190
  }
42131
42191
  //#endregion
42132
42192
  //#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) {
42193
+ 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
42194
  return await httpClient.get(`organizations/${organization_id}/audit-log/${from}/${to}`, {
42135
42195
  signal,
42136
42196
  searchParams: buildSearchParams$2({
42137
42197
  workspace_id,
42138
42198
  entity_type,
42139
42199
  entity_id,
42200
+ project_id,
42201
+ custom_field_id,
42140
42202
  action,
42141
42203
  user_id,
42142
42204
  page_size,
@@ -42145,12 +42207,14 @@ async function getOrganizationAuditLog(httpClient, organization_id, from, to, {
42145
42207
  })
42146
42208
  }).json();
42147
42209
  }
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) {
42210
+ 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
42211
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/audit-log/${from}/${to}`, {
42150
42212
  signal,
42151
42213
  searchParams: buildSearchParams$2({
42152
42214
  entity_type,
42153
42215
  entity_id,
42216
+ project_id,
42217
+ custom_field_id,
42154
42218
  action,
42155
42219
  user_id,
42156
42220
  page_size,
@@ -42303,13 +42367,14 @@ async function checkWorkspaceBillableRateConflicts(httpClient, organization_id,
42303
42367
  }
42304
42368
  //#endregion
42305
42369
  //#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) {
42370
+ 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
42371
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/capacities/${group}`, {
42308
42372
  signal,
42309
42373
  searchParams: buildSearchParams$2({
42310
- user_id,
42311
42374
  start_date,
42312
42375
  end_date,
42376
+ user_id,
42377
+ team_id,
42313
42378
  private: private_,
42314
42379
  task_source,
42315
42380
  unit,
@@ -42369,6 +42434,15 @@ async function updateCustomField(httpClient, organization_id, workspace_id, cust
42369
42434
  async function deleteCustomField(httpClient, organization_id, workspace_id, custom_field_id, signal) {
42370
42435
  return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}`, { signal }).json();
42371
42436
  }
42437
+ async function getCustomFieldAllowedUsers(httpClient, organization_id, workspace_id, custom_field_id, signal) {
42438
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/allowed-users`, { signal }).json();
42439
+ }
42440
+ async function replaceCustomFieldAllowedUsers(httpClient, organization_id, workspace_id, custom_field_id, data, signal) {
42441
+ return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/allowed-users`, {
42442
+ signal,
42443
+ json: data
42444
+ }).json();
42445
+ }
42372
42446
  async function getCustomFieldOptionsClassic(httpClient, organization_id, workspace_id, custom_field_id, { name, page, per_page, order_by } = {}, signal) {
42373
42447
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/options`, {
42374
42448
  signal,
@@ -42632,7 +42706,7 @@ async function restoreMilestone(httpClient, workspace_id, milestone_id, signal)
42632
42706
  }
42633
42707
  //#endregion
42634
42708
  //#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) {
42709
+ 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
42710
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/projects/groups/${group}`, {
42637
42711
  signal,
42638
42712
  searchParams: buildSearchParams$2({
@@ -42658,6 +42732,7 @@ async function getProjectGroupsClassic(httpClient, organization_id, workspace_id
42658
42732
  user_id,
42659
42733
  only_me,
42660
42734
  include_drafts,
42735
+ include_recurring_series,
42661
42736
  cf_filter
42662
42737
  })
42663
42738
  }).json();
@@ -42676,9 +42751,6 @@ async function setWorkspaceProjectMarginTarget(httpClient, organization_id, work
42676
42751
  json: data
42677
42752
  }).json();
42678
42753
  }
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
42754
  async function getProjectMarginTarget(httpClient, organization_id, workspace_id, project_id, signal) {
42683
42755
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/${project_id}`, { signal }).json();
42684
42756
  }
@@ -42982,9 +43054,10 @@ async function updateTaskEstimateAllocations(httpClient, organization_id, worksp
42982
43054
  }
42983
43055
  //#endregion
42984
43056
  //#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) {
43057
+ 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
43058
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/users/by-project`, {
42987
43059
  signal,
43060
+ headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
42988
43061
  searchParams: buildSearchParams$2({
42989
43062
  project_id,
42990
43063
  source,
@@ -43013,13 +43086,18 @@ async function getUserTaskGroupsByProject(httpClient, organization_id, workspace
43013
43086
  min_days,
43014
43087
  include_drafts,
43015
43088
  cf_filter,
43016
- user_cf_filter
43089
+ user_cf_filter,
43090
+ recurring_occurrences_after,
43091
+ max_recurring_occurrences_after,
43092
+ recurring_task_read,
43093
+ include_projected_occurrences
43017
43094
  })
43018
43095
  }).json();
43019
43096
  }
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) {
43097
+ 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
43098
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/users/by-team`, {
43022
43099
  signal,
43100
+ headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
43023
43101
  searchParams: buildSearchParams$2({
43024
43102
  team_id,
43025
43103
  project_id,
@@ -43048,13 +43126,18 @@ async function getUserTaskGroupsByTeam(httpClient, organization_id, workspace_id
43048
43126
  min_days,
43049
43127
  include_drafts,
43050
43128
  cf_filter,
43051
- user_cf_filter
43129
+ user_cf_filter,
43130
+ recurring_occurrences_after,
43131
+ max_recurring_occurrences_after,
43132
+ recurring_task_read,
43133
+ include_projected_occurrences
43052
43134
  })
43053
43135
  }).json();
43054
43136
  }
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) {
43137
+ 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
43138
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/${group}`, {
43057
43139
  signal,
43140
+ headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
43058
43141
  searchParams: buildSearchParams$2({
43059
43142
  source,
43060
43143
  priority,
@@ -43084,6 +43167,10 @@ async function getTaskGroupsClassic(httpClient, organization_id, workspace_id, g
43084
43167
  include_drafts,
43085
43168
  cf_filter,
43086
43169
  user_cf_filter,
43170
+ recurring_occurrences_after,
43171
+ max_recurring_occurrences_after,
43172
+ recurring_task_read,
43173
+ include_projected_occurrences,
43087
43174
  page,
43088
43175
  per_page,
43089
43176
  order_by
@@ -43275,6 +43362,19 @@ async function bulkWithdrawTimesheets(httpClient, organization_id, workspace_id,
43275
43362
  json: data
43276
43363
  }).json();
43277
43364
  }
43365
+ async function getTimesheetStatusCounts(httpClient, organization_id, workspace_id, { date_from, date_to, setup_id, user_account_ids, approver_user_account_ids, team_ids }, signal) {
43366
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/timesheets/counts`, {
43367
+ signal,
43368
+ searchParams: buildSearchParams$2({
43369
+ date_from,
43370
+ date_to,
43371
+ setup_id,
43372
+ user_account_ids,
43373
+ approver_user_account_ids,
43374
+ team_ids
43375
+ })
43376
+ }).json();
43377
+ }
43278
43378
  async function removeTimesheetFlag(httpClient, organization_id, workspace_id, flag_id, signal) {
43279
43379
  return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/timesheets/flags/${flag_id}`, { signal }).json();
43280
43380
  }
@@ -43318,7 +43418,21 @@ async function withdrawTimesheet(httpClient, organization_id, workspace_id, setu
43318
43418
  return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/timesheets/${setup_id}/${start_date}/${user_account_id}/withdraw`, { signal }).json();
43319
43419
  }
43320
43420
  //#endregion
43421
+ //#region ../focus-queries/dist/track-team-invites/requests.ts
43422
+ async function postTrackTeamInvites(httpClient, organization_id, workspace_id, data, signal) {
43423
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/track-team-invites`, {
43424
+ signal,
43425
+ json: data
43426
+ }).json();
43427
+ }
43428
+ //#endregion
43321
43429
  //#region ../focus-queries/dist/user-settings/requests.ts
43430
+ async function emailUnsubscribePage(httpClient, token, signal) {
43431
+ return await httpClient.get(`email/unsubscribe/${token}`, { signal }).json();
43432
+ }
43433
+ async function emailUnsubscribe(httpClient, token, signal) {
43434
+ return await httpClient.post(`email/unsubscribe/${token}`, { signal }).json();
43435
+ }
43322
43436
  async function getUserSettings(httpClient, signal) {
43323
43437
  return await httpClient.get(`users/me/settings`, { signal }).json();
43324
43438
  }
@@ -43558,6 +43672,7 @@ const generatedFocusOperations = [
43558
43672
  mcp: { entityTool: "audit-log" },
43559
43673
  inputSchema: /* @__PURE__ */ looseObject({
43560
43674
  action: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43675
+ custom_field_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43561
43676
  entity_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43562
43677
  entity_type: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43563
43678
  export: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -43565,6 +43680,7 @@ const generatedFocusOperations = [
43565
43680
  from: /* @__PURE__ */ string$1(),
43566
43681
  page_number: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43567
43682
  page_size: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43683
+ project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43568
43684
  to: /* @__PURE__ */ string$1(),
43569
43685
  user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43570
43686
  workspace_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
@@ -43598,6 +43714,7 @@ const generatedFocusOperations = [
43598
43714
  mcp: { entityTool: "audit-log" },
43599
43715
  inputSchema: /* @__PURE__ */ looseObject({
43600
43716
  action: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43717
+ custom_field_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43601
43718
  entity_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43602
43719
  entity_type: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43603
43720
  export: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -43605,6 +43722,7 @@ const generatedFocusOperations = [
43605
43722
  from: /* @__PURE__ */ string$1(),
43606
43723
  page_number: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43607
43724
  page_size: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43725
+ project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43608
43726
  to: /* @__PURE__ */ string$1(),
43609
43727
  user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
43610
43728
  }),
@@ -43644,6 +43762,7 @@ const generatedFocusOperations = [
43644
43762
  private_: /* @__PURE__ */ unknown$1(),
43645
43763
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
43646
43764
  task_source: /* @__PURE__ */ unknown$1(),
43765
+ team_id: /* @__PURE__ */ number$2(),
43647
43766
  unit: /* @__PURE__ */ unknown$1(),
43648
43767
  user_id: /* @__PURE__ */ number$2()
43649
43768
  }),
@@ -44084,6 +44203,33 @@ const generatedFocusOperations = [
44084
44203
  ]));
44085
44204
  }
44086
44205
  },
44206
+ {
44207
+ id: "focus.custom-fields.get-allowed-users",
44208
+ family: "focus",
44209
+ resource: "custom-fields",
44210
+ action: "get-allowed-users",
44211
+ title: "Get Allowed Users Custom Fields",
44212
+ description: "Get Allowed Users Custom Fields.",
44213
+ safety: "read",
44214
+ destructive: false,
44215
+ cli: {
44216
+ group: ["custom-fields"],
44217
+ command: "get-allowed-users",
44218
+ interactive: "available"
44219
+ },
44220
+ mcp: { entityTool: "custom-fields" },
44221
+ inputSchema: /* @__PURE__ */ looseObject({ custom_field_id: /* @__PURE__ */ number$2() }),
44222
+ execute: (input, { client }) => {
44223
+ const data = input;
44224
+ return client.runGeneratedRequest("getCustomFieldAllowedUsers", () => callGeneratedRequest(getCustomFieldAllowedUsers, [
44225
+ client.httpClient,
44226
+ client.organizationId,
44227
+ client.workspaceIdNumber,
44228
+ data.custom_field_id,
44229
+ void 0
44230
+ ]));
44231
+ }
44232
+ },
44087
44233
  {
44088
44234
  id: "focus.custom-fields.list",
44089
44235
  family: "focus",
@@ -44253,6 +44399,37 @@ const generatedFocusOperations = [
44253
44399
  ]));
44254
44400
  }
44255
44401
  },
44402
+ {
44403
+ id: "focus.custom-fields.replace-custom-field-allowed-users",
44404
+ family: "focus",
44405
+ resource: "custom-fields",
44406
+ action: "replace-custom-field-allowed-users",
44407
+ title: "Replace Custom Field Allowed Users Custom Fields",
44408
+ description: "Replace Custom Field Allowed Users Custom Fields.",
44409
+ safety: "update",
44410
+ destructive: false,
44411
+ cli: {
44412
+ group: ["custom-fields"],
44413
+ command: "replace-custom-field-allowed-users",
44414
+ interactive: "default"
44415
+ },
44416
+ mcp: { entityTool: "custom-fields" },
44417
+ inputSchema: /* @__PURE__ */ looseObject({
44418
+ custom_field_id: /* @__PURE__ */ number$2(),
44419
+ payload: /* @__PURE__ */ looseObject({ user_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()) })
44420
+ }),
44421
+ execute: (input, { client }) => {
44422
+ const data = input;
44423
+ return client.runGeneratedRequest("replaceCustomFieldAllowedUsers", () => callGeneratedRequest(replaceCustomFieldAllowedUsers, [
44424
+ client.httpClient,
44425
+ client.organizationId,
44426
+ client.workspaceIdNumber,
44427
+ data.custom_field_id,
44428
+ data.payload ?? data.data ?? data,
44429
+ void 0
44430
+ ]));
44431
+ }
44432
+ },
44256
44433
  {
44257
44434
  id: "focus.custom-fields.update",
44258
44435
  family: "focus",
@@ -44399,13 +44576,7 @@ const generatedFocusOperations = [
44399
44576
  },
44400
44577
  mcp: { entityTool: "goals" },
44401
44578
  inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({
44402
- billable: /* @__PURE__ */ boolean$1(),
44403
44579
  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
44580
  recurrence: /* @__PURE__ */ picklist$1([
44410
44581
  "daily",
44411
44582
  "weekly",
@@ -44413,12 +44584,18 @@ const generatedFocusOperations = [
44413
44584
  "monthly"
44414
44585
  ]),
44415
44586
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
44416
- tag_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44417
44587
  target_seconds: /* @__PURE__ */ number$2(),
44418
- task_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44419
- weekdays: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44588
+ billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
44420
44589
  client_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44421
- description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1())
44590
+ description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44591
+ end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
44592
+ icon: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44593
+ monthly_anchor: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["calendar", "first_workday"])),
44594
+ name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44595
+ project_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44596
+ tag_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44597
+ task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44598
+ weekdays: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
44422
44599
  }) }),
44423
44600
  execute: (input, { client }) => {
44424
44601
  const data = input;
@@ -44524,13 +44701,6 @@ const generatedFocusOperations = [
44524
44701
  },
44525
44702
  mcp: { entityTool: "goals" },
44526
44703
  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
44704
  recurrence: /* @__PURE__ */ picklist$1([
44535
44705
  "daily",
44536
44706
  "weekly",
@@ -44538,12 +44708,19 @@ const generatedFocusOperations = [
44538
44708
  "monthly"
44539
44709
  ]),
44540
44710
  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()),
44711
+ billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
44545
44712
  client_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44546
- description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1())
44713
+ comparison: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["more_than", "less_than"])),
44714
+ description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44715
+ end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
44716
+ icon: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44717
+ monthly_anchor: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["calendar", "first_workday"])),
44718
+ name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44719
+ project_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44720
+ tag_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44721
+ target_seconds: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
44722
+ task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44723
+ weekdays: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
44547
44724
  }) }),
44548
44725
  execute: (input, { client }) => {
44549
44726
  const data = input;
@@ -45510,9 +45687,17 @@ const generatedFocusOperations = [
45510
45687
  mcp: { entityTool: "projects" },
45511
45688
  inputSchema: /* @__PURE__ */ looseObject({
45512
45689
  payload: /* @__PURE__ */ looseObject({
45690
+ auto_compute_estimates: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
45691
+ completion_mode: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["manual", "automatic"])),
45513
45692
  end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
45514
45693
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
45515
45694
  pinned: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
45695
+ rollover_mode: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1([
45696
+ "expire",
45697
+ "carry_all",
45698
+ "carry_over"
45699
+ ])),
45700
+ rrule: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
45516
45701
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
45517
45702
  }),
45518
45703
  project_id: /* @__PURE__ */ number$2()
@@ -45956,6 +46141,7 @@ const generatedFocusOperations = [
45956
46141
  group: /* @__PURE__ */ string$1(),
45957
46142
  include_drafts: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
45958
46143
  include_group_totals: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
46144
+ include_recurring_series: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
45959
46145
  include_unassigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
45960
46146
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
45961
46147
  only_me: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -46058,29 +46244,6 @@ const generatedFocusOperations = [
46058
46244
  ]));
46059
46245
  }
46060
46246
  },
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
46247
  {
46085
46248
  id: "focus.projects.margin-targets-get",
46086
46249
  family: "focus",
@@ -48483,7 +48646,7 @@ const generatedFocusOperations = [
48483
48646
  cli: {
48484
48647
  group: ["reportschedules"],
48485
48648
  command: "upsert-saved-view-schedule",
48486
- interactive: "default"
48649
+ interactive: "hidden"
48487
48650
  },
48488
48651
  mcp: { entityTool: "reportschedules" },
48489
48652
  inputSchema: /* @__PURE__ */ looseObject({
@@ -48494,8 +48657,10 @@ const generatedFocusOperations = [
48494
48657
  "weekly",
48495
48658
  "monthly"
48496
48659
  ]),
48660
+ charts: /* @__PURE__ */ unknown$1(),
48497
48661
  time: /* @__PURE__ */ string$1(),
48498
48662
  day: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
48663
+ period: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
48499
48664
  recipient_team_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
48500
48665
  recipient_user_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
48501
48666
  recipient_workspace_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
@@ -50044,6 +50209,37 @@ const generatedFocusOperations = [
50044
50209
  return client.createTask(data);
50045
50210
  }
50046
50211
  },
50212
+ {
50213
+ id: "focus.tasks.create-recurring-occurrence",
50214
+ family: "focus",
50215
+ resource: "tasks",
50216
+ action: "create-recurring-occurrence",
50217
+ title: "Create Recurring Occurrence Tasks",
50218
+ description: "Create Recurring Occurrence Tasks.",
50219
+ safety: "create",
50220
+ destructive: false,
50221
+ cli: {
50222
+ group: ["tasks"],
50223
+ command: "create-recurring-occurrence",
50224
+ interactive: "default"
50225
+ },
50226
+ mcp: { entityTool: "tasks" },
50227
+ inputSchema: /* @__PURE__ */ looseObject({
50228
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
50229
+ task_id: /* @__PURE__ */ number$2()
50230
+ }),
50231
+ execute: (input, { client }) => {
50232
+ const data = input;
50233
+ return client.runGeneratedRequest("createRecurringOccurrence", () => callGeneratedRequest(createRecurringOccurrence, [
50234
+ client.httpClient,
50235
+ client.organizationId,
50236
+ client.workspaceIdNumber,
50237
+ data.task_id,
50238
+ data.return_occurrence,
50239
+ void 0
50240
+ ]));
50241
+ }
50242
+ },
50047
50243
  {
50048
50244
  id: "focus.tasks.delete",
50049
50245
  family: "focus",
@@ -50291,9 +50487,13 @@ const generatedFocusOperations = [
50291
50487
  dates_overlap_start: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50292
50488
  end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50293
50489
  include_assignees: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50490
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50491
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50294
50492
  page: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50295
50493
  per_page: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50494
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50296
50495
  recurring_task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50496
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50297
50497
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50298
50498
  tag_id: /* @__PURE__ */ optional$1(tagIdFilterSchema),
50299
50499
  team_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
@@ -50345,7 +50545,9 @@ const generatedFocusOperations = [
50345
50545
  include_drafts: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50346
50546
  include_parent_matches: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50347
50547
  include_project_completed: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50548
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50348
50549
  is_priority: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50550
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50349
50551
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50350
50552
  order_by: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50351
50553
  parent_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
@@ -50354,7 +50556,9 @@ const generatedFocusOperations = [
50354
50556
  private_: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50355
50557
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50356
50558
  recurring: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50559
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50357
50560
  recurring_task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50561
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50358
50562
  source: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50359
50563
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50360
50564
  start_date_from: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50492,8 +50696,10 @@ const generatedFocusOperations = [
50492
50696
  group_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50493
50697
  include_assignees: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50494
50698
  include_drafts: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50699
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50495
50700
  include_unassigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50496
50701
  include_unmaterialized: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50702
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50497
50703
  min_days: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50498
50704
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50499
50705
  order_by: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50502,6 +50708,8 @@ const generatedFocusOperations = [
50502
50708
  priority: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50503
50709
  private_: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50504
50710
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50711
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50712
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50505
50713
  source: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50506
50714
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50507
50715
  start_date_from: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50510,7 +50718,8 @@ const generatedFocusOperations = [
50510
50718
  tag_id: /* @__PURE__ */ optional$1(tagIdFilterSchema),
50511
50719
  team_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50512
50720
  user_cf_filter: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50513
- user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
50721
+ user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50722
+ xTimelineFetchTrigger: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
50514
50723
  }),
50515
50724
  execute: (input, { client }) => {
50516
50725
  const data = input;
@@ -50552,13 +50761,17 @@ const generatedFocusOperations = [
50552
50761
  group_id: /* @__PURE__ */ number$2(),
50553
50762
  include_assignees: /* @__PURE__ */ unknown$1(),
50554
50763
  include_drafts: /* @__PURE__ */ unknown$1(),
50764
+ include_projected_occurrences: /* @__PURE__ */ unknown$1(),
50555
50765
  include_unassigned: /* @__PURE__ */ unknown$1(),
50556
50766
  include_unmaterialized: /* @__PURE__ */ unknown$1(),
50767
+ max_recurring_occurrences_after: /* @__PURE__ */ unknown$1(),
50557
50768
  min_days: /* @__PURE__ */ unknown$1(),
50558
50769
  name: /* @__PURE__ */ unknown$1(),
50559
50770
  priority: /* @__PURE__ */ unknown$1(),
50560
50771
  private_: /* @__PURE__ */ unknown$1(),
50561
50772
  project_id: /* @__PURE__ */ number$2(),
50773
+ recurring_occurrences_after: /* @__PURE__ */ unknown$1(),
50774
+ recurring_task_read: /* @__PURE__ */ unknown$1(),
50562
50775
  source: /* @__PURE__ */ unknown$1(),
50563
50776
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
50564
50777
  start_date_from: /* @__PURE__ */ unknown$1(),
@@ -50567,7 +50780,8 @@ const generatedFocusOperations = [
50567
50780
  tag_id: /* @__PURE__ */ number$2(),
50568
50781
  team_id: /* @__PURE__ */ number$2(),
50569
50782
  user_cf_filter: /* @__PURE__ */ unknown$1(),
50570
- user_tag_id: /* @__PURE__ */ number$2()
50783
+ user_tag_id: /* @__PURE__ */ number$2(),
50784
+ xTimelineFetchTrigger: /* @__PURE__ */ unknown$1()
50571
50785
  }),
50572
50786
  execute: (input, { client }) => {
50573
50787
  const data = input;
@@ -50608,13 +50822,17 @@ const generatedFocusOperations = [
50608
50822
  group_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50609
50823
  include_assignees: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50610
50824
  include_drafts: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50825
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50611
50826
  include_unassigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50612
50827
  include_unmaterialized: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50828
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50613
50829
  min_days: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50614
50830
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50615
50831
  priority: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50616
50832
  private_: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50617
50833
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50834
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50835
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50618
50836
  source: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50619
50837
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50620
50838
  start_date_from: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50623,7 +50841,8 @@ const generatedFocusOperations = [
50623
50841
  tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50624
50842
  team_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50625
50843
  user_cf_filter: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50626
- user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
50844
+ user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50845
+ xTimelineFetchTrigger: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
50627
50846
  }),
50628
50847
  execute: (input, { client }) => {
50629
50848
  const data = input;
@@ -50894,7 +51113,8 @@ const generatedFocusOperations = [
50894
51113
  mcp: { entityTool: "tasks" },
50895
51114
  inputSchema: /* @__PURE__ */ looseObject({
50896
51115
  date_from: /* @__PURE__ */ string$1(),
50897
- date_to: /* @__PURE__ */ string$1()
51116
+ date_to: /* @__PURE__ */ string$1(),
51117
+ skip_provider_refresh: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
50898
51118
  }),
50899
51119
  execute: (input, { client }) => {
50900
51120
  const data = input;
@@ -50904,6 +51124,7 @@ const generatedFocusOperations = [
50904
51124
  client.workspaceIdNumber,
50905
51125
  data.date_from,
50906
51126
  data.date_to,
51127
+ data.skip_provider_refresh,
50907
51128
  void 0
50908
51129
  ]));
50909
51130
  }
@@ -51490,7 +51711,8 @@ const generatedFocusOperations = [
51490
51711
  required_fields: /* @__PURE__ */ array$1(/* @__PURE__ */ looseObject({ kind: /* @__PURE__ */ picklist$1([
51491
51712
  "project",
51492
51713
  "task",
51493
- "description"
51714
+ "description",
51715
+ "tags"
51494
51716
  ]) })),
51495
51717
  disallow_billable_override: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
51496
51718
  }) }),
@@ -51520,6 +51742,7 @@ const generatedFocusOperations = [
51520
51742
  },
51521
51743
  mcp: { entityTool: "time-entries" },
51522
51744
  inputSchema: /* @__PURE__ */ looseObject({
51745
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51523
51746
  payload: /* @__PURE__ */ looseObject({
51524
51747
  type: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["activity", "break"]), "activity"),
51525
51748
  billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
@@ -51530,11 +51753,13 @@ const generatedFocusOperations = [
51530
51753
  planned_duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51531
51754
  planned_start: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
51532
51755
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51756
+ repeat_time_entry: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51533
51757
  start: /* @__PURE__ */ optional$1(apiDateTimeString),
51534
51758
  time_block_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51535
51759
  tracked_at: /* @__PURE__ */ optional$1(apiDateTimeString),
51536
51760
  user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
51537
51761
  }),
51762
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51538
51763
  task_id: /* @__PURE__ */ number$2()
51539
51764
  }),
51540
51765
  execute: (input, { client }) => {
@@ -51545,6 +51770,8 @@ const generatedFocusOperations = [
51545
51770
  client.workspaceIdNumber,
51546
51771
  data.task_id,
51547
51772
  data.payload ?? data.data ?? data,
51773
+ data.from_recurring_task_id,
51774
+ data.return_occurrence,
51548
51775
  void 0
51549
51776
  ]));
51550
51777
  }
@@ -51564,21 +51791,26 @@ const generatedFocusOperations = [
51564
51791
  interactive: "default"
51565
51792
  },
51566
51793
  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
- }) }),
51794
+ inputSchema: /* @__PURE__ */ looseObject({
51795
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51796
+ payload: /* @__PURE__ */ looseObject({
51797
+ type: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["activity", "break"]), "activity"),
51798
+ billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51799
+ calendar_event_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51800
+ description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
51801
+ duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51802
+ planned_at: /* @__PURE__ */ optional$1(apiDateTimeString),
51803
+ planned_duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51804
+ planned_start: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
51805
+ project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51806
+ repeat_time_entry: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51807
+ start: /* @__PURE__ */ optional$1(apiDateTimeString),
51808
+ time_block_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51809
+ tracked_at: /* @__PURE__ */ optional$1(apiDateTimeString),
51810
+ user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
51811
+ }),
51812
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
51813
+ }),
51582
51814
  execute: (input, { client }) => {
51583
51815
  const data = input;
51584
51816
  return client.runGeneratedRequest("createTasklessTimeEntryWithOrg", () => callGeneratedRequest(createTasklessTimeEntryWithOrg, [
@@ -51586,6 +51818,8 @@ const generatedFocusOperations = [
51586
51818
  client.organizationId,
51587
51819
  client.workspaceIdNumber,
51588
51820
  data.payload ?? data.data ?? data,
51821
+ data.from_recurring_task_id,
51822
+ data.return_occurrence,
51589
51823
  void 0
51590
51824
  ]));
51591
51825
  }
@@ -51605,7 +51839,11 @@ const generatedFocusOperations = [
51605
51839
  interactive: "default"
51606
51840
  },
51607
51841
  mcp: { entityTool: "time-entries" },
51608
- inputSchema: /* @__PURE__ */ looseObject({ time_entry_id: /* @__PURE__ */ number$2() }),
51842
+ inputSchema: /* @__PURE__ */ looseObject({
51843
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51844
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51845
+ time_entry_id: /* @__PURE__ */ number$2()
51846
+ }),
51609
51847
  execute: (input, { client }) => {
51610
51848
  const data = input;
51611
51849
  return client.runGeneratedRequest("deleteTimeEntryWithOrg", () => callGeneratedRequest(deleteTimeEntryWithOrg, [
@@ -51613,6 +51851,8 @@ const generatedFocusOperations = [
51613
51851
  client.organizationId,
51614
51852
  client.workspaceIdNumber,
51615
51853
  data.time_entry_id,
51854
+ data.from_recurring_task_id,
51855
+ data.return_occurrence,
51616
51856
  void 0
51617
51857
  ]));
51618
51858
  }
@@ -51693,6 +51933,7 @@ const generatedFocusOperations = [
51693
51933
  expand_calendar_event: /* @__PURE__ */ unknown$1(),
51694
51934
  include_taskless: /* @__PURE__ */ unknown$1(),
51695
51935
  order_by: /* @__PURE__ */ unknown$1(),
51936
+ project_id: /* @__PURE__ */ number$2(),
51696
51937
  status_id: /* @__PURE__ */ number$2(),
51697
51938
  task_id: /* @__PURE__ */ number$2(),
51698
51939
  type: /* @__PURE__ */ unknown$1()
@@ -51869,12 +52110,14 @@ const generatedFocusOperations = [
51869
52110
  },
51870
52111
  mcp: { entityTool: "time-entries" },
51871
52112
  inputSchema: /* @__PURE__ */ looseObject({
52113
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51872
52114
  payload: /* @__PURE__ */ looseObject({
51873
52115
  billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51874
52116
  duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51875
52117
  reset_billable_to_default: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51876
52118
  type: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["activity", "break"]))
51877
52119
  }),
52120
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51878
52121
  time_entry_id: /* @__PURE__ */ number$2()
51879
52122
  }),
51880
52123
  execute: (input, { client }) => {
@@ -51885,6 +52128,8 @@ const generatedFocusOperations = [
51885
52128
  client.workspaceIdNumber,
51886
52129
  data.time_entry_id,
51887
52130
  data.payload ?? data.data ?? data,
52131
+ data.from_recurring_task_id,
52132
+ data.return_occurrence,
51888
52133
  void 0
51889
52134
  ]));
51890
52135
  }
@@ -52142,6 +52387,7 @@ const generatedFocusOperations = [
52142
52387
  },
52143
52388
  mcp: { entityTool: "time-entries" },
52144
52389
  inputSchema: /* @__PURE__ */ looseObject({
52390
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
52145
52391
  payload: /* @__PURE__ */ looseObject({
52146
52392
  type: /* @__PURE__ */ picklist$1(["activity", "break"]),
52147
52393
  calendar_event_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
@@ -52154,6 +52400,7 @@ const generatedFocusOperations = [
52154
52400
  time_block_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
52155
52401
  tracked_at: /* @__PURE__ */ optional$1(apiDateTimeString)
52156
52402
  }),
52403
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
52157
52404
  time_entry_id: /* @__PURE__ */ number$2()
52158
52405
  }),
52159
52406
  execute: (input, { client }) => {
@@ -52164,6 +52411,8 @@ const generatedFocusOperations = [
52164
52411
  client.workspaceIdNumber,
52165
52412
  data.time_entry_id,
52166
52413
  data.payload ?? data.data ?? data,
52414
+ data.from_recurring_task_id,
52415
+ data.return_occurrence,
52167
52416
  void 0
52168
52417
  ]));
52169
52418
  }
@@ -52679,6 +52928,40 @@ const generatedFocusOperations = [
52679
52928
  ]));
52680
52929
  }
52681
52930
  },
52931
+ {
52932
+ id: "focus.timesheets.get-status-counts",
52933
+ family: "focus",
52934
+ resource: "timesheets",
52935
+ action: "get-status-counts",
52936
+ title: "Get Status Counts Timesheets",
52937
+ description: "Get Status Counts Timesheets.",
52938
+ safety: "read",
52939
+ destructive: false,
52940
+ cli: {
52941
+ group: ["timesheets"],
52942
+ command: "get-status-counts",
52943
+ interactive: "hidden"
52944
+ },
52945
+ mcp: { entityTool: "timesheets" },
52946
+ inputSchema: /* @__PURE__ */ looseObject({
52947
+ approver_user_account_ids: /* @__PURE__ */ unknown$1(),
52948
+ date_from: /* @__PURE__ */ unknown$1(),
52949
+ date_to: /* @__PURE__ */ unknown$1(),
52950
+ setup_id: /* @__PURE__ */ number$2(),
52951
+ team_ids: /* @__PURE__ */ unknown$1(),
52952
+ user_account_ids: /* @__PURE__ */ unknown$1()
52953
+ }),
52954
+ execute: (input, { client }) => {
52955
+ const data = input;
52956
+ return client.runGeneratedRequest("getTimesheetStatusCounts", () => callGeneratedRequest(getTimesheetStatusCounts, [
52957
+ client.httpClient,
52958
+ client.organizationId,
52959
+ client.workspaceIdNumber,
52960
+ data,
52961
+ void 0
52962
+ ]));
52963
+ }
52964
+ },
52682
52965
  {
52683
52966
  id: "focus.timesheets.remove-timesheet-flag",
52684
52967
  family: "focus",
@@ -53228,6 +53511,33 @@ const generatedFocusOperations = [
53228
53511
  ]));
53229
53512
  }
53230
53513
  },
53514
+ {
53515
+ id: "focus.track-team-invites.post",
53516
+ family: "focus",
53517
+ resource: "track-team-invites",
53518
+ action: "post",
53519
+ title: "Post Track Team Invites",
53520
+ description: "Post Track Team Invites.",
53521
+ safety: "create",
53522
+ destructive: false,
53523
+ cli: {
53524
+ group: ["track-team-invites"],
53525
+ command: "post",
53526
+ interactive: "default"
53527
+ },
53528
+ mcp: { entityTool: "track-team-invites" },
53529
+ inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({ organization_user_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()) }) }),
53530
+ execute: (input, { client }) => {
53531
+ const data = input;
53532
+ return client.runGeneratedRequest("postTrackTeamInvites", () => callGeneratedRequest(postTrackTeamInvites, [
53533
+ client.httpClient,
53534
+ client.organizationId,
53535
+ client.workspaceIdNumber,
53536
+ data.payload ?? data.data ?? data,
53537
+ void 0
53538
+ ]));
53539
+ }
53540
+ },
53231
53541
  {
53232
53542
  id: "focus.users.list",
53233
53543
  family: "focus",
@@ -53249,6 +53559,56 @@ const generatedFocusOperations = [
53249
53559
  return client.listOrgUsers(data);
53250
53560
  }
53251
53561
  },
53562
+ {
53563
+ id: "focus.users.settings-email-unsubscribe",
53564
+ family: "focus",
53565
+ resource: "users",
53566
+ action: "settings-email-unsubscribe",
53567
+ title: "Settings Email Unsubscribe Users",
53568
+ description: "Settings Email Unsubscribe Users.",
53569
+ safety: "update",
53570
+ destructive: false,
53571
+ cli: {
53572
+ group: ["users", "settings"],
53573
+ command: "email-unsubscribe",
53574
+ interactive: "default"
53575
+ },
53576
+ mcp: { entityTool: "users" },
53577
+ inputSchema: /* @__PURE__ */ looseObject({ token: /* @__PURE__ */ string$1() }),
53578
+ execute: (input, { client }) => {
53579
+ const data = input;
53580
+ return client.runGeneratedRequest("emailUnsubscribe", () => callGeneratedRequest(emailUnsubscribe, [
53581
+ client.httpClient,
53582
+ data.token,
53583
+ void 0
53584
+ ]));
53585
+ }
53586
+ },
53587
+ {
53588
+ id: "focus.users.settings-email-unsubscribe-page",
53589
+ family: "focus",
53590
+ resource: "users",
53591
+ action: "settings-email-unsubscribe-page",
53592
+ title: "Settings Email Unsubscribe Page Users",
53593
+ description: "Settings Email Unsubscribe Page Users.",
53594
+ safety: "read",
53595
+ destructive: false,
53596
+ cli: {
53597
+ group: ["users", "settings"],
53598
+ command: "email-unsubscribe-page",
53599
+ interactive: "available"
53600
+ },
53601
+ mcp: { entityTool: "users" },
53602
+ inputSchema: /* @__PURE__ */ looseObject({ token: /* @__PURE__ */ string$1() }),
53603
+ execute: (input, { client }) => {
53604
+ const data = input;
53605
+ return client.runGeneratedRequest("emailUnsubscribePage", () => callGeneratedRequest(emailUnsubscribePage, [
53606
+ client.httpClient,
53607
+ data.token,
53608
+ void 0
53609
+ ]));
53610
+ }
53611
+ },
53252
53612
  {
53253
53613
  id: "focus.users.settings-list",
53254
53614
  family: "focus",
@@ -53310,6 +53670,9 @@ const generatedFocusOperations = [
53310
53670
  has_reached_task_threshold: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53311
53671
  import_data_banner_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53312
53672
  new_users_trial_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53673
+ notify_project_alerts: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53674
+ notify_project_member_added: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53675
+ notify_task_assigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53313
53676
  onboarding_checklist_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53314
53677
  onboarding_flow_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53315
53678
  onboarding_multi_day_task_created: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
@@ -54853,7 +55216,7 @@ function registerWorkspaceTools(server) {
54853
55216
  //#region src/package-version.ts
54854
55217
  function mcpPackageVersion() {
54855
55218
  try {
54856
- return "1.11.38";
55219
+ return "1.11.39";
54857
55220
  } catch {
54858
55221
  return "unknown";
54859
55222
  }
@@ -55028,7 +55391,7 @@ import_main.default.config({
55028
55391
  quiet: true,
55029
55392
  ignore: ["MISSING_ENV_FILE"]
55030
55393
  });
55031
- const packageVersion = "1.11.38";
55394
+ const packageVersion = "1.11.39";
55032
55395
  function resolvePublicUrls() {
55033
55396
  return {
55034
55397
  focusApiUrl: process.env.TOGGL_FOCUS_API_URL ?? "https://focus.toggl.com",
@@ -55093,4 +55456,4 @@ function bootstrapServer(options = {}) {
55093
55456
  //#endregion
55094
55457
  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
55458
 
55096
- //# sourceMappingURL=src-YwLdTifK.js.map
55459
+ //# sourceMappingURL=src-DmVgu8K8.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@togglhq/mcp",
3
- "version": "1.11.38",
3
+ "version": "1.11.39",
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",