@togglhq/mcp 1.11.14 → 1.11.16

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-CTbhHWeZ.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-bFTvwOa3.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.14";
168
+ const packageVersion = "1.11.16";
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-CTbhHWeZ.js";
2
+ import { n as runMcpCli, t as bootstrapServer } from "./src-bFTvwOa3.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())),
@@ -36959,6 +36963,8 @@ const PaginatedTimeEntryWithTasksSchema = /* @__PURE__ */ object({
36959
36963
  deleted_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
36960
36964
  description: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
36961
36965
  duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
36966
+ 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."))),
36967
+ 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
36968
  planned_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
36963
36969
  planned_duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
36964
36970
  planned_start: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
@@ -37189,6 +37195,7 @@ const TaskPartialUpdatePayloadSchema = /* @__PURE__ */ object({
37189
37195
  private: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
37190
37196
  project_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
37191
37197
  recurring_task_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
37198
+ 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
37199
  rollup_enabled: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
37193
37200
  rrule: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ string())),
37194
37201
  start_date: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDate()))),
@@ -37225,6 +37232,7 @@ const TaskPartialUpdatePayloadWithIDSchema = /* @__PURE__ */ object({
37225
37232
  private: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
37226
37233
  project_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
37227
37234
  recurring_task_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
37235
+ 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
37236
  rollup_enabled: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
37229
37237
  rrule: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ string())),
37230
37238
  start_date: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDate()))),
@@ -37763,7 +37771,7 @@ async function restoreStatuses(httpClient, workspace_id, status_id, signal) {
37763
37771
  }
37764
37772
  //#endregion
37765
37773
  //#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) {
37774
+ 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
37775
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks`, {
37768
37776
  signal,
37769
37777
  searchParams: buildSearchParams$2({
@@ -37814,7 +37822,11 @@ async function getTasksClassic(httpClient, organization_id, workspace_id, { page
37814
37822
  include_assignees,
37815
37823
  include_parent_matches,
37816
37824
  disable_aggregations,
37817
- cf_filter
37825
+ cf_filter,
37826
+ recurring_occurrences_after,
37827
+ max_recurring_occurrences_after,
37828
+ recurring_task_read,
37829
+ include_projected_occurrences
37818
37830
  })
37819
37831
  }).json();
37820
37832
  }
@@ -37889,16 +37901,17 @@ async function getTasksCalendarEvents(httpClient, organization_id, workspace_id,
37889
37901
  })
37890
37902
  }).json();
37891
37903
  }
37892
- async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, signal) {
37904
+ async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, skip_provider_refresh, signal) {
37893
37905
  return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/calendar`, {
37894
37906
  signal,
37895
37907
  searchParams: buildSearchParams$2({
37896
37908
  date_from,
37897
- date_to
37909
+ date_to,
37910
+ skip_provider_refresh
37898
37911
  })
37899
37912
  }).json();
37900
37913
  }
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) {
37914
+ 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
37915
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/recurring`, {
37903
37916
  signal,
37904
37917
  searchParams: buildSearchParams$2({
@@ -37914,11 +37927,15 @@ async function getTasksRecurringInstancesClassic(httpClient, organization_id, wo
37914
37927
  assignee_team_id,
37915
37928
  assignee_user_id,
37916
37929
  tag_id,
37917
- include_assignees
37930
+ include_assignees,
37931
+ recurring_occurrences_after,
37932
+ max_recurring_occurrences_after,
37933
+ recurring_task_read,
37934
+ include_projected_occurrences
37918
37935
  })
37919
37936
  }).json();
37920
37937
  }
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) {
37938
+ 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
37939
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/stream`, {
37923
37940
  signal,
37924
37941
  searchParams: buildSearchParams$2({
@@ -37963,7 +37980,11 @@ async function getStreamTasks(httpClient, organization_id, workspace_id, { with_
37963
37980
  recurring_task_ids,
37964
37981
  client_id,
37965
37982
  include_assignees,
37966
- cf_filter
37983
+ cf_filter,
37984
+ recurring_occurrences_after,
37985
+ max_recurring_occurrences_after,
37986
+ recurring_task_read,
37987
+ include_projected_occurrences
37967
37988
  })
37968
37989
  }).json();
37969
37990
  }
@@ -38018,6 +38039,12 @@ async function getTaskWithChildrenClassic(httpClient, organization_id, workspace
38018
38039
  })
38019
38040
  }).json();
38020
38041
  }
38042
+ async function createRecurringOccurrence(httpClient, organization_id, workspace_id, task_id, return_occurrence, signal) {
38043
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/occurrences`, {
38044
+ signal,
38045
+ searchParams: buildSearchParams$2({ return_occurrence })
38046
+ }).json();
38047
+ }
38021
38048
  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
38049
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/parents`, {
38023
38050
  signal,
@@ -38154,16 +38181,24 @@ async function getTaskTimeEntriesWithOrgClassic(httpClient, organization_id, wor
38154
38181
  })
38155
38182
  }).json();
38156
38183
  }
38157
- async function createTimeEntryWithOrg(httpClient, organization_id, workspace_id, task_id, data, signal) {
38184
+ async function createTimeEntryWithOrg(httpClient, organization_id, workspace_id, task_id, data, from_recurring_task_id, return_occurrence, signal) {
38158
38185
  return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-entries`, {
38159
38186
  signal,
38160
- json: data
38187
+ json: data,
38188
+ searchParams: buildSearchParams$2({
38189
+ from_recurring_task_id,
38190
+ return_occurrence
38191
+ })
38161
38192
  }).json();
38162
38193
  }
38163
- async function createTasklessTimeEntryWithOrg(httpClient, organization_id, workspace_id, data, signal) {
38194
+ async function createTasklessTimeEntryWithOrg(httpClient, organization_id, workspace_id, data, from_recurring_task_id, return_occurrence, signal) {
38164
38195
  return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries`, {
38165
38196
  signal,
38166
- json: data
38197
+ json: data,
38198
+ searchParams: buildSearchParams$2({
38199
+ from_recurring_task_id,
38200
+ return_occurrence
38201
+ })
38167
38202
  }).json();
38168
38203
  }
38169
38204
  async function getBatchTimeEntriesWithOrg(httpClient, organization_id, workspace_id, { ids }, signal) {
@@ -38214,7 +38249,7 @@ async function bulkSetDayDurationWithOrg(httpClient, organization_id, workspace_
38214
38249
  json: data
38215
38250
  }).json();
38216
38251
  }
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) {
38252
+ 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
38253
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/stream`, {
38219
38254
  signal,
38220
38255
  searchParams: buildSearchParams$2({
@@ -38222,6 +38257,7 @@ async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, wor
38222
38257
  date_to,
38223
38258
  task_id,
38224
38259
  status_id,
38260
+ project_id,
38225
38261
  type,
38226
38262
  order_by,
38227
38263
  archived,
@@ -38245,19 +38281,33 @@ async function getStreamTimeEntriesTimeBlockIdsWithOrg(httpClient, organization_
38245
38281
  async function getTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, signal) {
38246
38282
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, { signal }).json();
38247
38283
  }
38248
- async function updateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, signal) {
38284
+ async function updateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, from_recurring_task_id, return_occurrence, signal) {
38249
38285
  return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, {
38250
38286
  signal,
38251
- json: data
38287
+ json: data,
38288
+ searchParams: buildSearchParams$2({
38289
+ from_recurring_task_id,
38290
+ return_occurrence
38291
+ })
38252
38292
  }).json();
38253
38293
  }
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();
38294
+ async function deleteTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, from_recurring_task_id, return_occurrence, signal) {
38295
+ return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, {
38296
+ signal,
38297
+ searchParams: buildSearchParams$2({
38298
+ from_recurring_task_id,
38299
+ return_occurrence
38300
+ })
38301
+ }).json();
38256
38302
  }
38257
- async function partialUpdateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, signal) {
38303
+ async function partialUpdateTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, data, from_recurring_task_id, return_occurrence, signal) {
38258
38304
  return await httpClient.patch(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/${time_entry_id}`, {
38259
38305
  signal,
38260
- json: data
38306
+ json: data,
38307
+ searchParams: buildSearchParams$2({
38308
+ from_recurring_task_id,
38309
+ return_occurrence
38310
+ })
38261
38311
  }).json();
38262
38312
  }
38263
38313
  async function archiveTimeEntryWithOrg(httpClient, organization_id, workspace_id, time_entry_id, signal) {
@@ -42130,13 +42180,15 @@ async function getWorkspaceAttachmentStorage(httpClient, organization_id, worksp
42130
42180
  }
42131
42181
  //#endregion
42132
42182
  //#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) {
42183
+ 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
42184
  return await httpClient.get(`organizations/${organization_id}/audit-log/${from}/${to}`, {
42135
42185
  signal,
42136
42186
  searchParams: buildSearchParams$2({
42137
42187
  workspace_id,
42138
42188
  entity_type,
42139
42189
  entity_id,
42190
+ project_id,
42191
+ custom_field_id,
42140
42192
  action,
42141
42193
  user_id,
42142
42194
  page_size,
@@ -42145,12 +42197,14 @@ async function getOrganizationAuditLog(httpClient, organization_id, from, to, {
42145
42197
  })
42146
42198
  }).json();
42147
42199
  }
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) {
42200
+ 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
42201
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/audit-log/${from}/${to}`, {
42150
42202
  signal,
42151
42203
  searchParams: buildSearchParams$2({
42152
42204
  entity_type,
42153
42205
  entity_id,
42206
+ project_id,
42207
+ custom_field_id,
42154
42208
  action,
42155
42209
  user_id,
42156
42210
  page_size,
@@ -42303,13 +42357,14 @@ async function checkWorkspaceBillableRateConflicts(httpClient, organization_id,
42303
42357
  }
42304
42358
  //#endregion
42305
42359
  //#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) {
42360
+ 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
42361
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/capacities/${group}`, {
42308
42362
  signal,
42309
42363
  searchParams: buildSearchParams$2({
42310
- user_id,
42311
42364
  start_date,
42312
42365
  end_date,
42366
+ user_id,
42367
+ team_id,
42313
42368
  private: private_,
42314
42369
  task_source,
42315
42370
  unit,
@@ -42369,6 +42424,15 @@ async function updateCustomField(httpClient, organization_id, workspace_id, cust
42369
42424
  async function deleteCustomField(httpClient, organization_id, workspace_id, custom_field_id, signal) {
42370
42425
  return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}`, { signal }).json();
42371
42426
  }
42427
+ async function getCustomFieldAllowedUsers(httpClient, organization_id, workspace_id, custom_field_id, signal) {
42428
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/allowed-users`, { signal }).json();
42429
+ }
42430
+ async function replaceCustomFieldAllowedUsers(httpClient, organization_id, workspace_id, custom_field_id, data, signal) {
42431
+ return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/allowed-users`, {
42432
+ signal,
42433
+ json: data
42434
+ }).json();
42435
+ }
42372
42436
  async function getCustomFieldOptionsClassic(httpClient, organization_id, workspace_id, custom_field_id, { name, page, per_page, order_by } = {}, signal) {
42373
42437
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/options`, {
42374
42438
  signal,
@@ -42676,9 +42740,6 @@ async function setWorkspaceProjectMarginTarget(httpClient, organization_id, work
42676
42740
  json: data
42677
42741
  }).json();
42678
42742
  }
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
42743
  async function getProjectMarginTarget(httpClient, organization_id, workspace_id, project_id, signal) {
42683
42744
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/${project_id}`, { signal }).json();
42684
42745
  }
@@ -42982,9 +43043,10 @@ async function updateTaskEstimateAllocations(httpClient, organization_id, worksp
42982
43043
  }
42983
43044
  //#endregion
42984
43045
  //#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) {
43046
+ 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
43047
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/users/by-project`, {
42987
43048
  signal,
43049
+ headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
42988
43050
  searchParams: buildSearchParams$2({
42989
43051
  project_id,
42990
43052
  source,
@@ -43013,13 +43075,18 @@ async function getUserTaskGroupsByProject(httpClient, organization_id, workspace
43013
43075
  min_days,
43014
43076
  include_drafts,
43015
43077
  cf_filter,
43016
- user_cf_filter
43078
+ user_cf_filter,
43079
+ recurring_occurrences_after,
43080
+ max_recurring_occurrences_after,
43081
+ recurring_task_read,
43082
+ include_projected_occurrences
43017
43083
  })
43018
43084
  }).json();
43019
43085
  }
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) {
43086
+ 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
43087
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/users/by-team`, {
43022
43088
  signal,
43089
+ headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
43023
43090
  searchParams: buildSearchParams$2({
43024
43091
  team_id,
43025
43092
  project_id,
@@ -43048,13 +43115,18 @@ async function getUserTaskGroupsByTeam(httpClient, organization_id, workspace_id
43048
43115
  min_days,
43049
43116
  include_drafts,
43050
43117
  cf_filter,
43051
- user_cf_filter
43118
+ user_cf_filter,
43119
+ recurring_occurrences_after,
43120
+ max_recurring_occurrences_after,
43121
+ recurring_task_read,
43122
+ include_projected_occurrences
43052
43123
  })
43053
43124
  }).json();
43054
43125
  }
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) {
43126
+ 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
43127
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/${group}`, {
43057
43128
  signal,
43129
+ headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
43058
43130
  searchParams: buildSearchParams$2({
43059
43131
  source,
43060
43132
  priority,
@@ -43084,6 +43156,10 @@ async function getTaskGroupsClassic(httpClient, organization_id, workspace_id, g
43084
43156
  include_drafts,
43085
43157
  cf_filter,
43086
43158
  user_cf_filter,
43159
+ recurring_occurrences_after,
43160
+ max_recurring_occurrences_after,
43161
+ recurring_task_read,
43162
+ include_projected_occurrences,
43087
43163
  page,
43088
43164
  per_page,
43089
43165
  order_by
@@ -43319,6 +43395,12 @@ async function withdrawTimesheet(httpClient, organization_id, workspace_id, setu
43319
43395
  }
43320
43396
  //#endregion
43321
43397
  //#region ../focus-queries/dist/user-settings/requests.ts
43398
+ async function emailUnsubscribePage(httpClient, token, signal) {
43399
+ return await httpClient.get(`email/unsubscribe/${token}`, { signal }).json();
43400
+ }
43401
+ async function emailUnsubscribe(httpClient, token, signal) {
43402
+ return await httpClient.post(`email/unsubscribe/${token}`, { signal }).json();
43403
+ }
43322
43404
  async function getUserSettings(httpClient, signal) {
43323
43405
  return await httpClient.get(`users/me/settings`, { signal }).json();
43324
43406
  }
@@ -43558,6 +43640,7 @@ const generatedFocusOperations = [
43558
43640
  mcp: { entityTool: "audit-log" },
43559
43641
  inputSchema: /* @__PURE__ */ looseObject({
43560
43642
  action: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43643
+ custom_field_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43561
43644
  entity_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43562
43645
  entity_type: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43563
43646
  export: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -43565,6 +43648,7 @@ const generatedFocusOperations = [
43565
43648
  from: /* @__PURE__ */ string$1(),
43566
43649
  page_number: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43567
43650
  page_size: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43651
+ project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43568
43652
  to: /* @__PURE__ */ string$1(),
43569
43653
  user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43570
43654
  workspace_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
@@ -43598,6 +43682,7 @@ const generatedFocusOperations = [
43598
43682
  mcp: { entityTool: "audit-log" },
43599
43683
  inputSchema: /* @__PURE__ */ looseObject({
43600
43684
  action: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43685
+ custom_field_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43601
43686
  entity_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43602
43687
  entity_type: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43603
43688
  export: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -43605,6 +43690,7 @@ const generatedFocusOperations = [
43605
43690
  from: /* @__PURE__ */ string$1(),
43606
43691
  page_number: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43607
43692
  page_size: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
43693
+ project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
43608
43694
  to: /* @__PURE__ */ string$1(),
43609
43695
  user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
43610
43696
  }),
@@ -43644,6 +43730,7 @@ const generatedFocusOperations = [
43644
43730
  private_: /* @__PURE__ */ unknown$1(),
43645
43731
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
43646
43732
  task_source: /* @__PURE__ */ unknown$1(),
43733
+ team_id: /* @__PURE__ */ number$2(),
43647
43734
  unit: /* @__PURE__ */ unknown$1(),
43648
43735
  user_id: /* @__PURE__ */ number$2()
43649
43736
  }),
@@ -44084,6 +44171,33 @@ const generatedFocusOperations = [
44084
44171
  ]));
44085
44172
  }
44086
44173
  },
44174
+ {
44175
+ id: "focus.custom-fields.get-allowed-users",
44176
+ family: "focus",
44177
+ resource: "custom-fields",
44178
+ action: "get-allowed-users",
44179
+ title: "Get Allowed Users Custom Fields",
44180
+ description: "Get Allowed Users Custom Fields.",
44181
+ safety: "read",
44182
+ destructive: false,
44183
+ cli: {
44184
+ group: ["custom-fields"],
44185
+ command: "get-allowed-users",
44186
+ interactive: "available"
44187
+ },
44188
+ mcp: { entityTool: "custom-fields" },
44189
+ inputSchema: /* @__PURE__ */ looseObject({ custom_field_id: /* @__PURE__ */ number$2() }),
44190
+ execute: (input, { client }) => {
44191
+ const data = input;
44192
+ return client.runGeneratedRequest("getCustomFieldAllowedUsers", () => callGeneratedRequest(getCustomFieldAllowedUsers, [
44193
+ client.httpClient,
44194
+ client.organizationId,
44195
+ client.workspaceIdNumber,
44196
+ data.custom_field_id,
44197
+ void 0
44198
+ ]));
44199
+ }
44200
+ },
44087
44201
  {
44088
44202
  id: "focus.custom-fields.list",
44089
44203
  family: "focus",
@@ -44253,6 +44367,37 @@ const generatedFocusOperations = [
44253
44367
  ]));
44254
44368
  }
44255
44369
  },
44370
+ {
44371
+ id: "focus.custom-fields.replace-custom-field-allowed-users",
44372
+ family: "focus",
44373
+ resource: "custom-fields",
44374
+ action: "replace-custom-field-allowed-users",
44375
+ title: "Replace Custom Field Allowed Users Custom Fields",
44376
+ description: "Replace Custom Field Allowed Users Custom Fields.",
44377
+ safety: "update",
44378
+ destructive: false,
44379
+ cli: {
44380
+ group: ["custom-fields"],
44381
+ command: "replace-custom-field-allowed-users",
44382
+ interactive: "default"
44383
+ },
44384
+ mcp: { entityTool: "custom-fields" },
44385
+ inputSchema: /* @__PURE__ */ looseObject({
44386
+ custom_field_id: /* @__PURE__ */ number$2(),
44387
+ payload: /* @__PURE__ */ looseObject({ user_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()) })
44388
+ }),
44389
+ execute: (input, { client }) => {
44390
+ const data = input;
44391
+ return client.runGeneratedRequest("replaceCustomFieldAllowedUsers", () => callGeneratedRequest(replaceCustomFieldAllowedUsers, [
44392
+ client.httpClient,
44393
+ client.organizationId,
44394
+ client.workspaceIdNumber,
44395
+ data.custom_field_id,
44396
+ data.payload ?? data.data ?? data,
44397
+ void 0
44398
+ ]));
44399
+ }
44400
+ },
44256
44401
  {
44257
44402
  id: "focus.custom-fields.update",
44258
44403
  family: "focus",
@@ -44399,13 +44544,7 @@ const generatedFocusOperations = [
44399
44544
  },
44400
44545
  mcp: { entityTool: "goals" },
44401
44546
  inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({
44402
- billable: /* @__PURE__ */ boolean$1(),
44403
44547
  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
44548
  recurrence: /* @__PURE__ */ picklist$1([
44410
44549
  "daily",
44411
44550
  "weekly",
@@ -44413,12 +44552,18 @@ const generatedFocusOperations = [
44413
44552
  "monthly"
44414
44553
  ]),
44415
44554
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
44416
- tag_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44417
44555
  target_seconds: /* @__PURE__ */ number$2(),
44418
- task_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44419
- weekdays: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44556
+ billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
44420
44557
  client_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44421
- description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1())
44558
+ description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44559
+ end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
44560
+ icon: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44561
+ monthly_anchor: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["calendar", "first_workday"])),
44562
+ name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44563
+ project_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44564
+ tag_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44565
+ task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44566
+ weekdays: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
44422
44567
  }) }),
44423
44568
  execute: (input, { client }) => {
44424
44569
  const data = input;
@@ -44524,13 +44669,6 @@ const generatedFocusOperations = [
44524
44669
  },
44525
44670
  mcp: { entityTool: "goals" },
44526
44671
  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
44672
  recurrence: /* @__PURE__ */ picklist$1([
44535
44673
  "daily",
44536
44674
  "weekly",
@@ -44538,12 +44676,19 @@ const generatedFocusOperations = [
44538
44676
  "monthly"
44539
44677
  ]),
44540
44678
  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()),
44679
+ billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
44545
44680
  client_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44546
- description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1())
44681
+ comparison: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["more_than", "less_than"])),
44682
+ description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44683
+ end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
44684
+ icon: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44685
+ monthly_anchor: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["calendar", "first_workday"])),
44686
+ name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44687
+ project_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44688
+ tag_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44689
+ target_seconds: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
44690
+ task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44691
+ weekdays: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
44547
44692
  }) }),
44548
44693
  execute: (input, { client }) => {
44549
44694
  const data = input;
@@ -45510,9 +45655,17 @@ const generatedFocusOperations = [
45510
45655
  mcp: { entityTool: "projects" },
45511
45656
  inputSchema: /* @__PURE__ */ looseObject({
45512
45657
  payload: /* @__PURE__ */ looseObject({
45658
+ auto_compute_estimates: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
45659
+ completion_mode: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["manual", "automatic"])),
45513
45660
  end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
45514
45661
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
45515
45662
  pinned: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
45663
+ rollover_mode: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1([
45664
+ "expire",
45665
+ "carry_all",
45666
+ "carry_over"
45667
+ ])),
45668
+ rrule: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
45516
45669
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
45517
45670
  }),
45518
45671
  project_id: /* @__PURE__ */ number$2()
@@ -46058,29 +46211,6 @@ const generatedFocusOperations = [
46058
46211
  ]));
46059
46212
  }
46060
46213
  },
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
46214
  {
46085
46215
  id: "focus.projects.margin-targets-get",
46086
46216
  family: "focus",
@@ -48483,7 +48613,7 @@ const generatedFocusOperations = [
48483
48613
  cli: {
48484
48614
  group: ["reportschedules"],
48485
48615
  command: "upsert-saved-view-schedule",
48486
- interactive: "default"
48616
+ interactive: "hidden"
48487
48617
  },
48488
48618
  mcp: { entityTool: "reportschedules" },
48489
48619
  inputSchema: /* @__PURE__ */ looseObject({
@@ -48494,8 +48624,10 @@ const generatedFocusOperations = [
48494
48624
  "weekly",
48495
48625
  "monthly"
48496
48626
  ]),
48627
+ charts: /* @__PURE__ */ unknown$1(),
48497
48628
  time: /* @__PURE__ */ string$1(),
48498
48629
  day: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
48630
+ period: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
48499
48631
  recipient_team_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
48500
48632
  recipient_user_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
48501
48633
  recipient_workspace_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
@@ -50044,6 +50176,37 @@ const generatedFocusOperations = [
50044
50176
  return client.createTask(data);
50045
50177
  }
50046
50178
  },
50179
+ {
50180
+ id: "focus.tasks.create-recurring-occurrence",
50181
+ family: "focus",
50182
+ resource: "tasks",
50183
+ action: "create-recurring-occurrence",
50184
+ title: "Create Recurring Occurrence Tasks",
50185
+ description: "Create Recurring Occurrence Tasks.",
50186
+ safety: "create",
50187
+ destructive: false,
50188
+ cli: {
50189
+ group: ["tasks"],
50190
+ command: "create-recurring-occurrence",
50191
+ interactive: "default"
50192
+ },
50193
+ mcp: { entityTool: "tasks" },
50194
+ inputSchema: /* @__PURE__ */ looseObject({
50195
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
50196
+ task_id: /* @__PURE__ */ number$2()
50197
+ }),
50198
+ execute: (input, { client }) => {
50199
+ const data = input;
50200
+ return client.runGeneratedRequest("createRecurringOccurrence", () => callGeneratedRequest(createRecurringOccurrence, [
50201
+ client.httpClient,
50202
+ client.organizationId,
50203
+ client.workspaceIdNumber,
50204
+ data.task_id,
50205
+ data.return_occurrence,
50206
+ void 0
50207
+ ]));
50208
+ }
50209
+ },
50047
50210
  {
50048
50211
  id: "focus.tasks.delete",
50049
50212
  family: "focus",
@@ -50291,9 +50454,13 @@ const generatedFocusOperations = [
50291
50454
  dates_overlap_start: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50292
50455
  end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50293
50456
  include_assignees: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50457
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50458
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50294
50459
  page: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50295
50460
  per_page: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50461
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50296
50462
  recurring_task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50463
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50297
50464
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50298
50465
  tag_id: /* @__PURE__ */ optional$1(tagIdFilterSchema),
50299
50466
  team_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
@@ -50345,7 +50512,9 @@ const generatedFocusOperations = [
50345
50512
  include_drafts: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50346
50513
  include_parent_matches: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50347
50514
  include_project_completed: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50515
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50348
50516
  is_priority: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50517
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50349
50518
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50350
50519
  order_by: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50351
50520
  parent_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
@@ -50354,7 +50523,9 @@ const generatedFocusOperations = [
50354
50523
  private_: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50355
50524
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50356
50525
  recurring: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50526
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50357
50527
  recurring_task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50528
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50358
50529
  source: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50359
50530
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50360
50531
  start_date_from: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50492,8 +50663,10 @@ const generatedFocusOperations = [
50492
50663
  group_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50493
50664
  include_assignees: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50494
50665
  include_drafts: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50666
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50495
50667
  include_unassigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50496
50668
  include_unmaterialized: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50669
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50497
50670
  min_days: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50498
50671
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50499
50672
  order_by: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50502,6 +50675,8 @@ const generatedFocusOperations = [
50502
50675
  priority: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50503
50676
  private_: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50504
50677
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50678
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50679
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50505
50680
  source: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50506
50681
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50507
50682
  start_date_from: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50510,7 +50685,8 @@ const generatedFocusOperations = [
50510
50685
  tag_id: /* @__PURE__ */ optional$1(tagIdFilterSchema),
50511
50686
  team_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50512
50687
  user_cf_filter: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50513
- user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
50688
+ user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50689
+ xTimelineFetchTrigger: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
50514
50690
  }),
50515
50691
  execute: (input, { client }) => {
50516
50692
  const data = input;
@@ -50552,13 +50728,17 @@ const generatedFocusOperations = [
50552
50728
  group_id: /* @__PURE__ */ number$2(),
50553
50729
  include_assignees: /* @__PURE__ */ unknown$1(),
50554
50730
  include_drafts: /* @__PURE__ */ unknown$1(),
50731
+ include_projected_occurrences: /* @__PURE__ */ unknown$1(),
50555
50732
  include_unassigned: /* @__PURE__ */ unknown$1(),
50556
50733
  include_unmaterialized: /* @__PURE__ */ unknown$1(),
50734
+ max_recurring_occurrences_after: /* @__PURE__ */ unknown$1(),
50557
50735
  min_days: /* @__PURE__ */ unknown$1(),
50558
50736
  name: /* @__PURE__ */ unknown$1(),
50559
50737
  priority: /* @__PURE__ */ unknown$1(),
50560
50738
  private_: /* @__PURE__ */ unknown$1(),
50561
50739
  project_id: /* @__PURE__ */ number$2(),
50740
+ recurring_occurrences_after: /* @__PURE__ */ unknown$1(),
50741
+ recurring_task_read: /* @__PURE__ */ unknown$1(),
50562
50742
  source: /* @__PURE__ */ unknown$1(),
50563
50743
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
50564
50744
  start_date_from: /* @__PURE__ */ unknown$1(),
@@ -50567,7 +50747,8 @@ const generatedFocusOperations = [
50567
50747
  tag_id: /* @__PURE__ */ number$2(),
50568
50748
  team_id: /* @__PURE__ */ number$2(),
50569
50749
  user_cf_filter: /* @__PURE__ */ unknown$1(),
50570
- user_tag_id: /* @__PURE__ */ number$2()
50750
+ user_tag_id: /* @__PURE__ */ number$2(),
50751
+ xTimelineFetchTrigger: /* @__PURE__ */ unknown$1()
50571
50752
  }),
50572
50753
  execute: (input, { client }) => {
50573
50754
  const data = input;
@@ -50608,13 +50789,17 @@ const generatedFocusOperations = [
50608
50789
  group_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50609
50790
  include_assignees: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50610
50791
  include_drafts: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50792
+ include_projected_occurrences: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50611
50793
  include_unassigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50612
50794
  include_unmaterialized: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50795
+ max_recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50613
50796
  min_days: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50614
50797
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50615
50798
  priority: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50616
50799
  private_: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50617
50800
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50801
+ recurring_occurrences_after: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50802
+ recurring_task_read: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50618
50803
  source: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50619
50804
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
50620
50805
  start_date_from: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -50623,7 +50808,8 @@ const generatedFocusOperations = [
50623
50808
  tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50624
50809
  team_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50625
50810
  user_cf_filter: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50626
- user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
50811
+ user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50812
+ xTimelineFetchTrigger: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
50627
50813
  }),
50628
50814
  execute: (input, { client }) => {
50629
50815
  const data = input;
@@ -50894,7 +51080,8 @@ const generatedFocusOperations = [
50894
51080
  mcp: { entityTool: "tasks" },
50895
51081
  inputSchema: /* @__PURE__ */ looseObject({
50896
51082
  date_from: /* @__PURE__ */ string$1(),
50897
- date_to: /* @__PURE__ */ string$1()
51083
+ date_to: /* @__PURE__ */ string$1(),
51084
+ skip_provider_refresh: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
50898
51085
  }),
50899
51086
  execute: (input, { client }) => {
50900
51087
  const data = input;
@@ -50904,6 +51091,7 @@ const generatedFocusOperations = [
50904
51091
  client.workspaceIdNumber,
50905
51092
  data.date_from,
50906
51093
  data.date_to,
51094
+ data.skip_provider_refresh,
50907
51095
  void 0
50908
51096
  ]));
50909
51097
  }
@@ -51490,7 +51678,8 @@ const generatedFocusOperations = [
51490
51678
  required_fields: /* @__PURE__ */ array$1(/* @__PURE__ */ looseObject({ kind: /* @__PURE__ */ picklist$1([
51491
51679
  "project",
51492
51680
  "task",
51493
- "description"
51681
+ "description",
51682
+ "tags"
51494
51683
  ]) })),
51495
51684
  disallow_billable_override: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
51496
51685
  }) }),
@@ -51520,6 +51709,7 @@ const generatedFocusOperations = [
51520
51709
  },
51521
51710
  mcp: { entityTool: "time-entries" },
51522
51711
  inputSchema: /* @__PURE__ */ looseObject({
51712
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51523
51713
  payload: /* @__PURE__ */ looseObject({
51524
51714
  type: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["activity", "break"]), "activity"),
51525
51715
  billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
@@ -51530,11 +51720,13 @@ const generatedFocusOperations = [
51530
51720
  planned_duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51531
51721
  planned_start: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
51532
51722
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51723
+ repeat_time_entry: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51533
51724
  start: /* @__PURE__ */ optional$1(apiDateTimeString),
51534
51725
  time_block_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51535
51726
  tracked_at: /* @__PURE__ */ optional$1(apiDateTimeString),
51536
51727
  user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
51537
51728
  }),
51729
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51538
51730
  task_id: /* @__PURE__ */ number$2()
51539
51731
  }),
51540
51732
  execute: (input, { client }) => {
@@ -51545,6 +51737,8 @@ const generatedFocusOperations = [
51545
51737
  client.workspaceIdNumber,
51546
51738
  data.task_id,
51547
51739
  data.payload ?? data.data ?? data,
51740
+ data.from_recurring_task_id,
51741
+ data.return_occurrence,
51548
51742
  void 0
51549
51743
  ]));
51550
51744
  }
@@ -51564,21 +51758,26 @@ const generatedFocusOperations = [
51564
51758
  interactive: "default"
51565
51759
  },
51566
51760
  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
- }) }),
51761
+ inputSchema: /* @__PURE__ */ looseObject({
51762
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51763
+ payload: /* @__PURE__ */ looseObject({
51764
+ type: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["activity", "break"]), "activity"),
51765
+ billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51766
+ calendar_event_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51767
+ description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
51768
+ duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51769
+ planned_at: /* @__PURE__ */ optional$1(apiDateTimeString),
51770
+ planned_duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51771
+ planned_start: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
51772
+ project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51773
+ repeat_time_entry: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51774
+ start: /* @__PURE__ */ optional$1(apiDateTimeString),
51775
+ time_block_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51776
+ tracked_at: /* @__PURE__ */ optional$1(apiDateTimeString),
51777
+ user_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
51778
+ }),
51779
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
51780
+ }),
51582
51781
  execute: (input, { client }) => {
51583
51782
  const data = input;
51584
51783
  return client.runGeneratedRequest("createTasklessTimeEntryWithOrg", () => callGeneratedRequest(createTasklessTimeEntryWithOrg, [
@@ -51586,6 +51785,8 @@ const generatedFocusOperations = [
51586
51785
  client.organizationId,
51587
51786
  client.workspaceIdNumber,
51588
51787
  data.payload ?? data.data ?? data,
51788
+ data.from_recurring_task_id,
51789
+ data.return_occurrence,
51589
51790
  void 0
51590
51791
  ]));
51591
51792
  }
@@ -51605,7 +51806,11 @@ const generatedFocusOperations = [
51605
51806
  interactive: "default"
51606
51807
  },
51607
51808
  mcp: { entityTool: "time-entries" },
51608
- inputSchema: /* @__PURE__ */ looseObject({ time_entry_id: /* @__PURE__ */ number$2() }),
51809
+ inputSchema: /* @__PURE__ */ looseObject({
51810
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51811
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51812
+ time_entry_id: /* @__PURE__ */ number$2()
51813
+ }),
51609
51814
  execute: (input, { client }) => {
51610
51815
  const data = input;
51611
51816
  return client.runGeneratedRequest("deleteTimeEntryWithOrg", () => callGeneratedRequest(deleteTimeEntryWithOrg, [
@@ -51613,6 +51818,8 @@ const generatedFocusOperations = [
51613
51818
  client.organizationId,
51614
51819
  client.workspaceIdNumber,
51615
51820
  data.time_entry_id,
51821
+ data.from_recurring_task_id,
51822
+ data.return_occurrence,
51616
51823
  void 0
51617
51824
  ]));
51618
51825
  }
@@ -51693,6 +51900,7 @@ const generatedFocusOperations = [
51693
51900
  expand_calendar_event: /* @__PURE__ */ unknown$1(),
51694
51901
  include_taskless: /* @__PURE__ */ unknown$1(),
51695
51902
  order_by: /* @__PURE__ */ unknown$1(),
51903
+ project_id: /* @__PURE__ */ number$2(),
51696
51904
  status_id: /* @__PURE__ */ number$2(),
51697
51905
  task_id: /* @__PURE__ */ number$2(),
51698
51906
  type: /* @__PURE__ */ unknown$1()
@@ -51869,12 +52077,14 @@ const generatedFocusOperations = [
51869
52077
  },
51870
52078
  mcp: { entityTool: "time-entries" },
51871
52079
  inputSchema: /* @__PURE__ */ looseObject({
52080
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51872
52081
  payload: /* @__PURE__ */ looseObject({
51873
52082
  billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51874
52083
  duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
51875
52084
  reset_billable_to_default: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51876
52085
  type: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["activity", "break"]))
51877
52086
  }),
52087
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
51878
52088
  time_entry_id: /* @__PURE__ */ number$2()
51879
52089
  }),
51880
52090
  execute: (input, { client }) => {
@@ -51885,6 +52095,8 @@ const generatedFocusOperations = [
51885
52095
  client.workspaceIdNumber,
51886
52096
  data.time_entry_id,
51887
52097
  data.payload ?? data.data ?? data,
52098
+ data.from_recurring_task_id,
52099
+ data.return_occurrence,
51888
52100
  void 0
51889
52101
  ]));
51890
52102
  }
@@ -52142,6 +52354,7 @@ const generatedFocusOperations = [
52142
52354
  },
52143
52355
  mcp: { entityTool: "time-entries" },
52144
52356
  inputSchema: /* @__PURE__ */ looseObject({
52357
+ from_recurring_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
52145
52358
  payload: /* @__PURE__ */ looseObject({
52146
52359
  type: /* @__PURE__ */ picklist$1(["activity", "break"]),
52147
52360
  calendar_event_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
@@ -52154,6 +52367,7 @@ const generatedFocusOperations = [
52154
52367
  time_block_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
52155
52368
  tracked_at: /* @__PURE__ */ optional$1(apiDateTimeString)
52156
52369
  }),
52370
+ return_occurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
52157
52371
  time_entry_id: /* @__PURE__ */ number$2()
52158
52372
  }),
52159
52373
  execute: (input, { client }) => {
@@ -52164,6 +52378,8 @@ const generatedFocusOperations = [
52164
52378
  client.workspaceIdNumber,
52165
52379
  data.time_entry_id,
52166
52380
  data.payload ?? data.data ?? data,
52381
+ data.from_recurring_task_id,
52382
+ data.return_occurrence,
52167
52383
  void 0
52168
52384
  ]));
52169
52385
  }
@@ -53249,6 +53465,56 @@ const generatedFocusOperations = [
53249
53465
  return client.listOrgUsers(data);
53250
53466
  }
53251
53467
  },
53468
+ {
53469
+ id: "focus.users.settings-email-unsubscribe",
53470
+ family: "focus",
53471
+ resource: "users",
53472
+ action: "settings-email-unsubscribe",
53473
+ title: "Settings Email Unsubscribe Users",
53474
+ description: "Settings Email Unsubscribe Users.",
53475
+ safety: "update",
53476
+ destructive: false,
53477
+ cli: {
53478
+ group: ["users", "settings"],
53479
+ command: "email-unsubscribe",
53480
+ interactive: "default"
53481
+ },
53482
+ mcp: { entityTool: "users" },
53483
+ inputSchema: /* @__PURE__ */ looseObject({ token: /* @__PURE__ */ string$1() }),
53484
+ execute: (input, { client }) => {
53485
+ const data = input;
53486
+ return client.runGeneratedRequest("emailUnsubscribe", () => callGeneratedRequest(emailUnsubscribe, [
53487
+ client.httpClient,
53488
+ data.token,
53489
+ void 0
53490
+ ]));
53491
+ }
53492
+ },
53493
+ {
53494
+ id: "focus.users.settings-email-unsubscribe-page",
53495
+ family: "focus",
53496
+ resource: "users",
53497
+ action: "settings-email-unsubscribe-page",
53498
+ title: "Settings Email Unsubscribe Page Users",
53499
+ description: "Settings Email Unsubscribe Page Users.",
53500
+ safety: "read",
53501
+ destructive: false,
53502
+ cli: {
53503
+ group: ["users", "settings"],
53504
+ command: "email-unsubscribe-page",
53505
+ interactive: "available"
53506
+ },
53507
+ mcp: { entityTool: "users" },
53508
+ inputSchema: /* @__PURE__ */ looseObject({ token: /* @__PURE__ */ string$1() }),
53509
+ execute: (input, { client }) => {
53510
+ const data = input;
53511
+ return client.runGeneratedRequest("emailUnsubscribePage", () => callGeneratedRequest(emailUnsubscribePage, [
53512
+ client.httpClient,
53513
+ data.token,
53514
+ void 0
53515
+ ]));
53516
+ }
53517
+ },
53252
53518
  {
53253
53519
  id: "focus.users.settings-list",
53254
53520
  family: "focus",
@@ -53310,6 +53576,9 @@ const generatedFocusOperations = [
53310
53576
  has_reached_task_threshold: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53311
53577
  import_data_banner_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53312
53578
  new_users_trial_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53579
+ notify_project_alerts: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53580
+ notify_project_member_added: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53581
+ notify_task_assigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53313
53582
  onboarding_checklist_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53314
53583
  onboarding_flow_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53315
53584
  onboarding_multi_day_task_created: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
@@ -54853,7 +55122,7 @@ function registerWorkspaceTools(server) {
54853
55122
  //#region src/package-version.ts
54854
55123
  function mcpPackageVersion() {
54855
55124
  try {
54856
- return "1.11.14";
55125
+ return "1.11.16";
54857
55126
  } catch {
54858
55127
  return "unknown";
54859
55128
  }
@@ -55028,7 +55297,7 @@ import_main.default.config({
55028
55297
  quiet: true,
55029
55298
  ignore: ["MISSING_ENV_FILE"]
55030
55299
  });
55031
- const packageVersion = "1.11.14";
55300
+ const packageVersion = "1.11.16";
55032
55301
  function resolvePublicUrls() {
55033
55302
  return {
55034
55303
  focusApiUrl: process.env.TOGGL_FOCUS_API_URL ?? "https://focus.toggl.com",
@@ -55093,4 +55362,4 @@ function bootstrapServer(options = {}) {
55093
55362
  //#endregion
55094
55363
  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
55364
 
55096
- //# sourceMappingURL=src-CTbhHWeZ.js.map
55365
+ //# sourceMappingURL=src-bFTvwOa3.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@togglhq/mcp",
3
- "version": "1.11.14",
3
+ "version": "1.11.16",
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",