@studiometa/productive-mcp 0.10.7 → 0.10.9

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.
Files changed (64) hide show
  1. package/dist/errors.d.ts.map +1 -1
  2. package/dist/formatters.d.ts +4 -0
  3. package/dist/formatters.d.ts.map +1 -1
  4. package/dist/handlers/activities.d.ts +98 -3
  5. package/dist/handlers/activities.d.ts.map +1 -1
  6. package/dist/handlers/attachments.d.ts +98 -3
  7. package/dist/handlers/attachments.d.ts.map +1 -1
  8. package/dist/handlers/bookings.d.ts +98 -3
  9. package/dist/handlers/bookings.d.ts.map +1 -1
  10. package/dist/handlers/comments.d.ts +98 -3
  11. package/dist/handlers/comments.d.ts.map +1 -1
  12. package/dist/handlers/companies.d.ts +98 -3
  13. package/dist/handlers/companies.d.ts.map +1 -1
  14. package/dist/handlers/custom-fields.d.ts +121 -0
  15. package/dist/handlers/custom-fields.d.ts.map +1 -0
  16. package/dist/handlers/deals.d.ts +98 -3
  17. package/dist/handlers/deals.d.ts.map +1 -1
  18. package/dist/handlers/discussions.d.ts +98 -3
  19. package/dist/handlers/discussions.d.ts.map +1 -1
  20. package/dist/handlers/help.d.ts.map +1 -1
  21. package/dist/handlers/index.d.ts.map +1 -1
  22. package/dist/handlers/pages.d.ts +98 -3
  23. package/dist/handlers/pages.d.ts.map +1 -1
  24. package/dist/handlers/projects.d.ts +98 -3
  25. package/dist/handlers/projects.d.ts.map +1 -1
  26. package/dist/handlers/schema.d.ts.map +1 -1
  27. package/dist/handlers/services.d.ts +98 -3
  28. package/dist/handlers/services.d.ts.map +1 -1
  29. package/dist/handlers/tasks.d.ts +98 -3
  30. package/dist/handlers/tasks.d.ts.map +1 -1
  31. package/dist/handlers/time.d.ts +98 -3
  32. package/dist/handlers/time.d.ts.map +1 -1
  33. package/dist/handlers/timers.d.ts +98 -3
  34. package/dist/handlers/timers.d.ts.map +1 -1
  35. package/dist/handlers/valid-includes.d.ts.map +1 -1
  36. package/dist/{handlers-CzOijI7B.js → handlers-t95fhdps.js} +159 -3
  37. package/dist/handlers-t95fhdps.js.map +1 -0
  38. package/dist/handlers.js +1 -1
  39. package/dist/hints.d.ts +4 -0
  40. package/dist/hints.d.ts.map +1 -1
  41. package/dist/http.d.ts +7 -7
  42. package/dist/http.d.ts.map +1 -1
  43. package/dist/http.js +52 -42
  44. package/dist/http.js.map +1 -1
  45. package/dist/index.js +3 -3
  46. package/dist/oauth.d.ts +9 -9
  47. package/dist/oauth.d.ts.map +1 -1
  48. package/dist/oauth.js +39 -39
  49. package/dist/oauth.js.map +1 -1
  50. package/dist/schema.d.ts +64 -62
  51. package/dist/schema.d.ts.map +1 -1
  52. package/dist/server.js +4 -4
  53. package/dist/server.js.map +1 -1
  54. package/dist/{handlers-Cha6_ulB.js → stdio-Bi1Lvp8O.js} +97 -2
  55. package/dist/stdio-Bi1Lvp8O.js.map +1 -0
  56. package/dist/stdio.d.ts +4 -4
  57. package/dist/stdio.js +2 -99
  58. package/dist/{version-zLvx5_bN.js → version-BFw4junA.js} +3 -3
  59. package/dist/{version-zLvx5_bN.js.map → version-BFw4junA.js.map} +1 -1
  60. package/package.json +10 -18
  61. package/skills/SKILL.md +36 -18
  62. package/dist/handlers-Cha6_ulB.js.map +0 -1
  63. package/dist/handlers-CzOijI7B.js.map +0 -1
  64. package/dist/stdio.js.map +0 -1
@@ -10,7 +10,102 @@ import type { CommonArgs } from './types.js';
10
10
  * Supports: list
11
11
  */
12
12
  export declare const handleServices: (action: string, args: CommonArgs & {
13
- query?: string;
14
- type?: import("@studiometa/productive-core").ResolvableResourceType;
15
- }, ctx: import("./types.js").HandlerContext) => Promise<import("./types.js").ToolResult>;
13
+ query?: string | undefined;
14
+ type?: import("@studiometa/productive-core").ResolvableResourceType | undefined;
15
+ }, ctx: import("./types.js").HandlerContext) => Promise<{
16
+ [x: string]: unknown;
17
+ _meta?: {
18
+ [x: string]: unknown;
19
+ progressToken?: string | number | undefined;
20
+ "io.modelcontextprotocol/related-task"?: {
21
+ taskId: string;
22
+ } | undefined;
23
+ } | undefined;
24
+ content: ({
25
+ type: "text";
26
+ text: string;
27
+ annotations?: {
28
+ audience?: ("assistant" | "user")[] | undefined;
29
+ priority?: number | undefined;
30
+ lastModified?: string | undefined;
31
+ } | undefined;
32
+ _meta?: {
33
+ [x: string]: unknown;
34
+ } | undefined;
35
+ } | {
36
+ type: "image";
37
+ data: string;
38
+ mimeType: string;
39
+ annotations?: {
40
+ audience?: ("assistant" | "user")[] | undefined;
41
+ priority?: number | undefined;
42
+ lastModified?: string | undefined;
43
+ } | undefined;
44
+ _meta?: {
45
+ [x: string]: unknown;
46
+ } | undefined;
47
+ } | {
48
+ type: "audio";
49
+ data: string;
50
+ mimeType: string;
51
+ annotations?: {
52
+ audience?: ("assistant" | "user")[] | undefined;
53
+ priority?: number | undefined;
54
+ lastModified?: string | undefined;
55
+ } | undefined;
56
+ _meta?: {
57
+ [x: string]: unknown;
58
+ } | undefined;
59
+ } | {
60
+ uri: string;
61
+ description?: string | undefined;
62
+ mimeType?: string | undefined;
63
+ annotations?: {
64
+ audience?: ("assistant" | "user")[] | undefined;
65
+ priority?: number | undefined;
66
+ lastModified?: string | undefined;
67
+ } | undefined;
68
+ _meta?: {
69
+ [x: string]: unknown;
70
+ } | undefined;
71
+ icons?: {
72
+ src: string;
73
+ mimeType?: string | undefined;
74
+ sizes?: string[] | undefined;
75
+ theme?: "dark" | "light" | undefined;
76
+ }[] | undefined;
77
+ name: string;
78
+ title?: string | undefined;
79
+ type: "resource_link";
80
+ } | {
81
+ type: "resource";
82
+ resource: {
83
+ uri: string;
84
+ mimeType?: string | undefined;
85
+ _meta?: {
86
+ [x: string]: unknown;
87
+ } | undefined;
88
+ text: string;
89
+ } | {
90
+ uri: string;
91
+ mimeType?: string | undefined;
92
+ _meta?: {
93
+ [x: string]: unknown;
94
+ } | undefined;
95
+ blob: string;
96
+ };
97
+ annotations?: {
98
+ audience?: ("assistant" | "user")[] | undefined;
99
+ priority?: number | undefined;
100
+ lastModified?: string | undefined;
101
+ } | undefined;
102
+ _meta?: {
103
+ [x: string]: unknown;
104
+ } | undefined;
105
+ })[];
106
+ structuredContent?: {
107
+ [x: string]: unknown;
108
+ } | undefined;
109
+ isError?: boolean | undefined;
110
+ }>;
16
111
  //# sourceMappingURL=services.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/handlers/services.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO7C;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;wFA8BzB,CAAC"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/handlers/services.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO7C;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BzB,CAAC"}
@@ -3,7 +3,102 @@
3
3
  */
4
4
  import type { TaskArgs } from './types.js';
5
5
  export declare const handleTasks: (action: string, args: TaskArgs & {
6
- query?: string;
7
- type?: import("@studiometa/productive-core").ResolvableResourceType;
8
- }, ctx: import("./types.js").HandlerContext) => Promise<import("./types.js").ToolResult>;
6
+ query?: string | undefined;
7
+ type?: import("@studiometa/productive-core").ResolvableResourceType | undefined;
8
+ }, ctx: import("./types.js").HandlerContext) => Promise<{
9
+ [x: string]: unknown;
10
+ _meta?: {
11
+ [x: string]: unknown;
12
+ progressToken?: string | number | undefined;
13
+ "io.modelcontextprotocol/related-task"?: {
14
+ taskId: string;
15
+ } | undefined;
16
+ } | undefined;
17
+ content: ({
18
+ type: "text";
19
+ text: string;
20
+ annotations?: {
21
+ audience?: ("assistant" | "user")[] | undefined;
22
+ priority?: number | undefined;
23
+ lastModified?: string | undefined;
24
+ } | undefined;
25
+ _meta?: {
26
+ [x: string]: unknown;
27
+ } | undefined;
28
+ } | {
29
+ type: "image";
30
+ data: string;
31
+ mimeType: string;
32
+ annotations?: {
33
+ audience?: ("assistant" | "user")[] | undefined;
34
+ priority?: number | undefined;
35
+ lastModified?: string | undefined;
36
+ } | undefined;
37
+ _meta?: {
38
+ [x: string]: unknown;
39
+ } | undefined;
40
+ } | {
41
+ type: "audio";
42
+ data: string;
43
+ mimeType: string;
44
+ annotations?: {
45
+ audience?: ("assistant" | "user")[] | undefined;
46
+ priority?: number | undefined;
47
+ lastModified?: string | undefined;
48
+ } | undefined;
49
+ _meta?: {
50
+ [x: string]: unknown;
51
+ } | undefined;
52
+ } | {
53
+ uri: string;
54
+ description?: string | undefined;
55
+ mimeType?: string | undefined;
56
+ annotations?: {
57
+ audience?: ("assistant" | "user")[] | undefined;
58
+ priority?: number | undefined;
59
+ lastModified?: string | undefined;
60
+ } | undefined;
61
+ _meta?: {
62
+ [x: string]: unknown;
63
+ } | undefined;
64
+ icons?: {
65
+ src: string;
66
+ mimeType?: string | undefined;
67
+ sizes?: string[] | undefined;
68
+ theme?: "dark" | "light" | undefined;
69
+ }[] | undefined;
70
+ name: string;
71
+ title?: string | undefined;
72
+ type: "resource_link";
73
+ } | {
74
+ type: "resource";
75
+ resource: {
76
+ uri: string;
77
+ mimeType?: string | undefined;
78
+ _meta?: {
79
+ [x: string]: unknown;
80
+ } | undefined;
81
+ text: string;
82
+ } | {
83
+ uri: string;
84
+ mimeType?: string | undefined;
85
+ _meta?: {
86
+ [x: string]: unknown;
87
+ } | undefined;
88
+ blob: string;
89
+ };
90
+ annotations?: {
91
+ audience?: ("assistant" | "user")[] | undefined;
92
+ priority?: number | undefined;
93
+ lastModified?: string | undefined;
94
+ } | undefined;
95
+ _meta?: {
96
+ [x: string]: unknown;
97
+ } | undefined;
98
+ })[];
99
+ structuredContent?: {
100
+ [x: string]: unknown;
101
+ } | undefined;
102
+ isError?: boolean | undefined;
103
+ }>;
9
104
  //# sourceMappingURL=tasks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/handlers/tasks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ3C,eAAO,MAAM,WAAW;;;wFAsDtB,CAAC"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/handlers/tasks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ3C,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDtB,CAAC"}
@@ -6,7 +6,102 @@
6
6
  */
7
7
  import type { TimeArgs } from './types.js';
8
8
  export declare const handleTime: (action: string, args: TimeArgs & {
9
- query?: string;
10
- type?: import("@studiometa/productive-core").ResolvableResourceType;
11
- }, ctx: import("./types.js").HandlerContext) => Promise<import("./types.js").ToolResult>;
9
+ query?: string | undefined;
10
+ type?: import("@studiometa/productive-core").ResolvableResourceType | undefined;
11
+ }, ctx: import("./types.js").HandlerContext) => Promise<{
12
+ [x: string]: unknown;
13
+ _meta?: {
14
+ [x: string]: unknown;
15
+ progressToken?: string | number | undefined;
16
+ "io.modelcontextprotocol/related-task"?: {
17
+ taskId: string;
18
+ } | undefined;
19
+ } | undefined;
20
+ content: ({
21
+ type: "text";
22
+ text: string;
23
+ annotations?: {
24
+ audience?: ("assistant" | "user")[] | undefined;
25
+ priority?: number | undefined;
26
+ lastModified?: string | undefined;
27
+ } | undefined;
28
+ _meta?: {
29
+ [x: string]: unknown;
30
+ } | undefined;
31
+ } | {
32
+ type: "image";
33
+ data: string;
34
+ mimeType: string;
35
+ annotations?: {
36
+ audience?: ("assistant" | "user")[] | undefined;
37
+ priority?: number | undefined;
38
+ lastModified?: string | undefined;
39
+ } | undefined;
40
+ _meta?: {
41
+ [x: string]: unknown;
42
+ } | undefined;
43
+ } | {
44
+ type: "audio";
45
+ data: string;
46
+ mimeType: string;
47
+ annotations?: {
48
+ audience?: ("assistant" | "user")[] | undefined;
49
+ priority?: number | undefined;
50
+ lastModified?: string | undefined;
51
+ } | undefined;
52
+ _meta?: {
53
+ [x: string]: unknown;
54
+ } | undefined;
55
+ } | {
56
+ uri: string;
57
+ description?: string | undefined;
58
+ mimeType?: string | undefined;
59
+ annotations?: {
60
+ audience?: ("assistant" | "user")[] | undefined;
61
+ priority?: number | undefined;
62
+ lastModified?: string | undefined;
63
+ } | undefined;
64
+ _meta?: {
65
+ [x: string]: unknown;
66
+ } | undefined;
67
+ icons?: {
68
+ src: string;
69
+ mimeType?: string | undefined;
70
+ sizes?: string[] | undefined;
71
+ theme?: "dark" | "light" | undefined;
72
+ }[] | undefined;
73
+ name: string;
74
+ title?: string | undefined;
75
+ type: "resource_link";
76
+ } | {
77
+ type: "resource";
78
+ resource: {
79
+ uri: string;
80
+ mimeType?: string | undefined;
81
+ _meta?: {
82
+ [x: string]: unknown;
83
+ } | undefined;
84
+ text: string;
85
+ } | {
86
+ uri: string;
87
+ mimeType?: string | undefined;
88
+ _meta?: {
89
+ [x: string]: unknown;
90
+ } | undefined;
91
+ blob: string;
92
+ };
93
+ annotations?: {
94
+ audience?: ("assistant" | "user")[] | undefined;
95
+ priority?: number | undefined;
96
+ lastModified?: string | undefined;
97
+ } | undefined;
98
+ _meta?: {
99
+ [x: string]: unknown;
100
+ } | undefined;
101
+ })[];
102
+ structuredContent?: {
103
+ [x: string]: unknown;
104
+ } | undefined;
105
+ isError?: boolean | undefined;
106
+ }>;
12
107
  //# sourceMappingURL=time.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/handlers/time.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ3C,eAAO,MAAM,UAAU;;;wFAgErB,CAAC"}
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/handlers/time.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ3C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgErB,CAAC"}
@@ -3,7 +3,102 @@
3
3
  */
4
4
  import type { TimerArgs } from './types.js';
5
5
  export declare const handleTimers: (action: string, args: TimerArgs & {
6
- query?: string;
7
- type?: import("@studiometa/productive-core").ResolvableResourceType;
8
- }, ctx: import("./types.js").HandlerContext) => Promise<import("./types.js").ToolResult>;
6
+ query?: string | undefined;
7
+ type?: import("@studiometa/productive-core").ResolvableResourceType | undefined;
8
+ }, ctx: import("./types.js").HandlerContext) => Promise<{
9
+ [x: string]: unknown;
10
+ _meta?: {
11
+ [x: string]: unknown;
12
+ progressToken?: string | number | undefined;
13
+ "io.modelcontextprotocol/related-task"?: {
14
+ taskId: string;
15
+ } | undefined;
16
+ } | undefined;
17
+ content: ({
18
+ type: "text";
19
+ text: string;
20
+ annotations?: {
21
+ audience?: ("assistant" | "user")[] | undefined;
22
+ priority?: number | undefined;
23
+ lastModified?: string | undefined;
24
+ } | undefined;
25
+ _meta?: {
26
+ [x: string]: unknown;
27
+ } | undefined;
28
+ } | {
29
+ type: "image";
30
+ data: string;
31
+ mimeType: string;
32
+ annotations?: {
33
+ audience?: ("assistant" | "user")[] | undefined;
34
+ priority?: number | undefined;
35
+ lastModified?: string | undefined;
36
+ } | undefined;
37
+ _meta?: {
38
+ [x: string]: unknown;
39
+ } | undefined;
40
+ } | {
41
+ type: "audio";
42
+ data: string;
43
+ mimeType: string;
44
+ annotations?: {
45
+ audience?: ("assistant" | "user")[] | undefined;
46
+ priority?: number | undefined;
47
+ lastModified?: string | undefined;
48
+ } | undefined;
49
+ _meta?: {
50
+ [x: string]: unknown;
51
+ } | undefined;
52
+ } | {
53
+ uri: string;
54
+ description?: string | undefined;
55
+ mimeType?: string | undefined;
56
+ annotations?: {
57
+ audience?: ("assistant" | "user")[] | undefined;
58
+ priority?: number | undefined;
59
+ lastModified?: string | undefined;
60
+ } | undefined;
61
+ _meta?: {
62
+ [x: string]: unknown;
63
+ } | undefined;
64
+ icons?: {
65
+ src: string;
66
+ mimeType?: string | undefined;
67
+ sizes?: string[] | undefined;
68
+ theme?: "dark" | "light" | undefined;
69
+ }[] | undefined;
70
+ name: string;
71
+ title?: string | undefined;
72
+ type: "resource_link";
73
+ } | {
74
+ type: "resource";
75
+ resource: {
76
+ uri: string;
77
+ mimeType?: string | undefined;
78
+ _meta?: {
79
+ [x: string]: unknown;
80
+ } | undefined;
81
+ text: string;
82
+ } | {
83
+ uri: string;
84
+ mimeType?: string | undefined;
85
+ _meta?: {
86
+ [x: string]: unknown;
87
+ } | undefined;
88
+ blob: string;
89
+ };
90
+ annotations?: {
91
+ audience?: ("assistant" | "user")[] | undefined;
92
+ priority?: number | undefined;
93
+ lastModified?: string | undefined;
94
+ } | undefined;
95
+ _meta?: {
96
+ [x: string]: unknown;
97
+ } | undefined;
98
+ })[];
99
+ structuredContent?: {
100
+ [x: string]: unknown;
101
+ } | undefined;
102
+ isError?: boolean | undefined;
103
+ }>;
9
104
  //# sourceMappingURL=timers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timers.d.ts","sourceRoot":"","sources":["../../src/handlers/timers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ5C,eAAO,MAAM,YAAY;;;wFAqCvB,CAAC"}
1
+ {"version":3,"file":"timers.d.ts","sourceRoot":"","sources":["../../src/handlers/timers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ5C,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"valid-includes.d.ts","sourceRoot":"","sources":["../../src/handlers/valid-includes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAenD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAmBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,sBAAsB,GAAG,IAAI,CA0B/B"}
1
+ {"version":3,"file":"valid-includes.d.ts","sourceRoot":"","sources":["../../src/handlers/valid-includes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAgBnD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAmBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,sBAAsB,GAAG,IAAI,CA0B/B"}
@@ -1,5 +1,5 @@
1
- import { ProductiveApi, formatActivity, formatAttachment, formatBooking, formatComment, formatCompany, formatDeal, formatDiscussion, formatListResponse, formatPage, formatPerson, formatProject, formatService, formatTask, formatTimeEntry, formatTimer } from "@studiometa/productive-api";
2
- import { RESOURCES, ResolveError, VALID_REPORT_TYPES, completeTask, createBooking, createComment, createCompany, createDeal, createDiscussion, createPage, createTask, createTimeEntry, deleteAttachment, deleteDiscussion, deletePage, deleteTimeEntry, fromHandlerContext, getAttachment, getBooking, getComment, getCompany, getDeal, getDealContext, getDiscussion, getMyDaySummary, getPage, getPerson, getProject, getProjectContext, getProjectHealthSummary, getReport, getTask, getTaskContext, getTeamPulseSummary, getTimeEntry, getTimer, listActivities, listAttachments, listBookings, listComments, listCompanies, listDeals, listDiscussions, listPages, listPeople, listProjects, listServices, listTasks, listTimeEntries, listTimers, logDay, reopenDiscussion, resolveDiscussion, resolveResource, startTimer, stopTimer, updateBooking, updateComment, updateCompany, updateDeal, updateDiscussion, updatePage, updateTask, updateTimeEntry, weeklyStandup } from "@studiometa/productive-core";
1
+ import { ProductiveApi, formatActivity, formatAttachment, formatBooking, formatComment, formatCompany, formatCustomField, formatDeal, formatDiscussion, formatListResponse, formatPage, formatPerson, formatProject, formatService, formatTask, formatTimeEntry, formatTimer } from "@studiometa/productive-api";
2
+ import { RESOURCES, ResolveError, VALID_REPORT_TYPES, completeTask, createBooking, createComment, createCompany, createDeal, createDiscussion, createPage, createTask, createTimeEntry, deleteAttachment, deleteDiscussion, deletePage, deleteTimeEntry, fromHandlerContext, getAttachment, getBooking, getComment, getCompany, getCustomField, getDeal, getDealContext, getDiscussion, getMyDaySummary, getPage, getPerson, getProject, getProjectContext, getProjectHealthSummary, getReport, getTask, getTaskContext, getTeamPulseSummary, getTimeEntry, getTimer, listActivities, listAttachments, listBookings, listComments, listCompanies, listCustomFields, listDeals, listDiscussions, listPages, listPeople, listProjects, listServices, listTasks, listTimeEntries, listTimers, logDay, reopenDiscussion, resolveDiscussion, resolveResource, startTimer, stopTimer, updateBooking, updateComment, updateCompany, updateDeal, updateDiscussion, updatePage, updateTask, updateTimeEntry, weeklyStandup } from "@studiometa/productive-core";
3
3
  /**
4
4
  * Custom error classes for MCP server
5
5
  *
@@ -240,6 +240,15 @@ function formatActivity$1(activity, options) {
240
240
  });
241
241
  }
242
242
  /**
243
+ * Format custom field for agent consumption
244
+ */
245
+ function formatCustomField$1(field, options) {
246
+ return formatCustomField(field, {
247
+ ...MCP_FORMAT_OPTIONS,
248
+ included: options?.included
249
+ });
250
+ }
251
+ /**
243
252
  * Format list response with pagination
244
253
  *
245
254
  * @param data - Array of JSON:API resources
@@ -288,6 +297,15 @@ function getTaskHints(taskId, serviceId) {
288
297
  action: "list",
289
298
  filter: { parent_task_id: taskId }
290
299
  }
300
+ },
301
+ {
302
+ resource: "custom_fields",
303
+ description: "List custom field definitions for tasks (to resolve custom_fields values)",
304
+ example: {
305
+ resource: "custom_fields",
306
+ action: "list",
307
+ filter: { customizable_type: "Task" }
308
+ }
291
309
  }
292
310
  ],
293
311
  common_actions: [{
@@ -419,6 +437,15 @@ function getDealHints(dealId) {
419
437
  action: "list",
420
438
  filter: { deal_id: dealId }
421
439
  }
440
+ },
441
+ {
442
+ resource: "custom_fields",
443
+ description: "List custom field definitions for deals (to resolve custom_fields values)",
444
+ example: {
445
+ resource: "custom_fields",
446
+ action: "list",
447
+ filter: { customizable_type: "Deal" }
448
+ }
422
449
  }
423
450
  ],
424
451
  common_actions: [{
@@ -534,6 +561,15 @@ function getCompanyHints(companyId) {
534
561
  action: "list",
535
562
  filter: { company_id: companyId }
536
563
  }
564
+ },
565
+ {
566
+ resource: "custom_fields",
567
+ description: "List custom field definitions for companies (to resolve custom_fields values)",
568
+ example: {
569
+ resource: "custom_fields",
570
+ action: "list",
571
+ filter: { customizable_type: "Company" }
572
+ }
537
573
  }
538
574
  ] };
539
575
  }
@@ -755,6 +791,31 @@ function getDiscussionHints(discussionId, pageId) {
755
791
  return hints;
756
792
  }
757
793
  /**
794
+ * Generate hints for a custom field definition
795
+ */
796
+ function getCustomFieldHints(fieldId) {
797
+ return {
798
+ related_resources: [{
799
+ resource: "custom_fields",
800
+ description: "List all custom field definitions for a resource type",
801
+ example: {
802
+ resource: "custom_fields",
803
+ action: "list",
804
+ filter: { customizable_type: "Task" }
805
+ }
806
+ }],
807
+ common_actions: [{
808
+ action: "Get this custom field with its options",
809
+ example: {
810
+ resource: "custom_fields",
811
+ action: "get",
812
+ id: fieldId,
813
+ include: ["options"]
814
+ }
815
+ }]
816
+ };
817
+ }
818
+ /**
758
819
  * Generate hints for a timer
759
820
  */
760
821
  function getTimerHints(timerId, serviceId) {
@@ -1664,6 +1725,17 @@ var RESOURCE_SCHEMAS = {
1664
1725
  }
1665
1726
  }
1666
1727
  },
1728
+ custom_fields: {
1729
+ actions: ["list", "get"],
1730
+ filters: {
1731
+ customizable_type: "string — Task, Deal, Company, Project, Booking, Service, etc.",
1732
+ archived: "boolean",
1733
+ name: "string",
1734
+ project_id: "string",
1735
+ global: "boolean"
1736
+ },
1737
+ includes: ["options"]
1738
+ },
1667
1739
  activities: {
1668
1740
  actions: ["list"],
1669
1741
  filters: {
@@ -2216,6 +2288,35 @@ const handleCompanies = createResourceHandler({
2216
2288
  }
2217
2289
  });
2218
2290
  /**
2291
+ * Custom Fields MCP handler.
2292
+ *
2293
+ * Uses the createResourceHandler factory for list/get.
2294
+ * Custom fields are read-only — only `list` and `get` are supported.
2295
+ */
2296
+ /**
2297
+ * Handle custom_fields resource.
2298
+ *
2299
+ * Supports: list, get
2300
+ */
2301
+ const handleCustomFields = createResourceHandler({
2302
+ resource: "custom_fields",
2303
+ displayName: "custom field",
2304
+ actions: ["list", "get"],
2305
+ formatter: formatCustomField$1,
2306
+ hints: (_data, id) => getCustomFieldHints(id),
2307
+ executors: {
2308
+ list: listCustomFields,
2309
+ get: getCustomField
2310
+ },
2311
+ defaultInclude: { get: ["options"] },
2312
+ listFilterFromArgs: (args) => {
2313
+ const filter = {};
2314
+ if (args.customizable_type) filter.customizable_type = args.customizable_type;
2315
+ if (args.archived) filter.archived = args.archived;
2316
+ return filter;
2317
+ }
2318
+ });
2319
+ /**
2219
2320
  * Discussions MCP handler.
2220
2321
  */
2221
2322
  var STATUS_MAP = {
@@ -3258,6 +3359,59 @@ var RESOURCE_HELP = {
3258
3359
  }
3259
3360
  ]
3260
3361
  },
3362
+ custom_fields: {
3363
+ description: "Custom field definitions — list and inspect custom fields configured in your organization. Custom fields appear as raw ID hashes on tasks, deals, companies, etc. Use this resource to discover field names, data types, and option values for resolution.",
3364
+ actions: {
3365
+ list: "List custom field definitions (filter by customizable_type to scope to a resource)",
3366
+ get: "Get a single custom field definition with its options (include: options)"
3367
+ },
3368
+ filters: {
3369
+ customizable_type: "Filter by resource type: Task, Deal, Company, Project, Booking, Service, etc.",
3370
+ archived: "Filter by archived status (boolean)",
3371
+ name: "Filter by field name",
3372
+ project_id: "Filter by project ID",
3373
+ global: "Filter global custom fields (boolean)"
3374
+ },
3375
+ includes: ["options"],
3376
+ fields: {
3377
+ id: "Unique custom field identifier (used as key in custom_fields hash)",
3378
+ name: "Human-readable field name",
3379
+ data_type: "Field type: text, number, select, date, multi-select, person, attachment",
3380
+ data_type_id: "Numeric type: 1=Text, 2=Number, 3=Select, 4=Date, 5=Multi-select, 6=Person, 7=Attachment",
3381
+ customizable_type: "Resource type this field applies to (e.g. Task, Deal)",
3382
+ archived: "Whether the field is archived",
3383
+ required: "Whether the field is required",
3384
+ description: "Optional description of the field",
3385
+ options: "For select/multi-select: array of {id, value, archived} (when include=options)"
3386
+ },
3387
+ examples: [
3388
+ {
3389
+ description: "List custom fields for tasks",
3390
+ params: {
3391
+ resource: "custom_fields",
3392
+ action: "list",
3393
+ filter: { customizable_type: "Task" }
3394
+ }
3395
+ },
3396
+ {
3397
+ description: "Get a custom field with its options",
3398
+ params: {
3399
+ resource: "custom_fields",
3400
+ action: "get",
3401
+ id: "42236",
3402
+ include: ["options"]
3403
+ }
3404
+ },
3405
+ {
3406
+ description: "List all non-archived custom fields",
3407
+ params: {
3408
+ resource: "custom_fields",
3409
+ action: "list",
3410
+ filter: { archived: "false" }
3411
+ }
3412
+ }
3413
+ ]
3414
+ },
3261
3415
  activities: {
3262
3416
  description: "Read-only activity feed — audit log of create/update/delete events across the organization",
3263
3417
  actions: { list: "List recent activities with optional filters" },
@@ -3766,6 +3920,7 @@ const handleTimers = createResourceHandler({
3766
3920
  */
3767
3921
  const VALID_INCLUDES = {
3768
3922
  activities: ["creator"],
3923
+ custom_fields: ["options"],
3769
3924
  tasks: [
3770
3925
  "project",
3771
3926
  "project.company",
@@ -3992,6 +4147,7 @@ async function routeToHandler(resource, action, restArgs, resolveArgs, ctx, cred
3992
4147
  case "pages": return await handlePages(action, restArgs, ctx);
3993
4148
  case "discussions": return await handleDiscussions(action, restArgs, ctx);
3994
4149
  case "activities": return await handleActivities(action, restArgs, ctx);
4150
+ case "custom_fields": return await handleCustomFields(action, restArgs, ctx);
3995
4151
  case "reports": return await handleReports(action, restArgs, ctx);
3996
4152
  case "summaries": return await handleSummaries(action, restArgs, ctx);
3997
4153
  case "workflows": return await handleWorkflows(action, restArgs, ctx);
@@ -4066,4 +4222,4 @@ async function executeToolWithCredentials(name, args, credentials) {
4066
4222
  }
4067
4223
  export { handleSchemaOverview as a, handleDeals as c, handleServices as i, handleTasks as n, handleProjects as o, handleSummaries as r, handlePeople as s, executeToolWithCredentials as t };
4068
4224
 
4069
- //# sourceMappingURL=handlers-CzOijI7B.js.map
4225
+ //# sourceMappingURL=handlers-t95fhdps.js.map