@withpica/mcp-server 2.1.0

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 (226) hide show
  1. package/README.md +305 -0
  2. package/dist/config.d.ts +34 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/config.js +33 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/index.d.ts +7 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +34 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/pica-sdk.d.ts +1162 -0
  11. package/dist/pica-sdk.d.ts.map +1 -0
  12. package/dist/pica-sdk.js +1371 -0
  13. package/dist/pica-sdk.js.map +1 -0
  14. package/dist/prompts/index.d.ts +78 -0
  15. package/dist/prompts/index.d.ts.map +1 -0
  16. package/dist/prompts/index.js +513 -0
  17. package/dist/prompts/index.js.map +1 -0
  18. package/dist/resources/index.d.ts +64 -0
  19. package/dist/resources/index.d.ts.map +1 -0
  20. package/dist/resources/index.js +310 -0
  21. package/dist/resources/index.js.map +1 -0
  22. package/dist/resources/llms-primer.d.ts +2 -0
  23. package/dist/resources/llms-primer.d.ts.map +1 -0
  24. package/dist/resources/llms-primer.js +67 -0
  25. package/dist/resources/llms-primer.js.map +1 -0
  26. package/dist/server.d.ts +27 -0
  27. package/dist/server.d.ts.map +1 -0
  28. package/dist/server.js +140 -0
  29. package/dist/server.js.map +1 -0
  30. package/dist/tools/agreement-types.d.ts +37 -0
  31. package/dist/tools/agreement-types.d.ts.map +1 -0
  32. package/dist/tools/agreement-types.js +579 -0
  33. package/dist/tools/agreement-types.js.map +1 -0
  34. package/dist/tools/agreements.d.ts +21 -0
  35. package/dist/tools/agreements.d.ts.map +1 -0
  36. package/dist/tools/agreements.js +328 -0
  37. package/dist/tools/agreements.js.map +1 -0
  38. package/dist/tools/analytics.d.ts +20 -0
  39. package/dist/tools/analytics.d.ts.map +1 -0
  40. package/dist/tools/analytics.js +126 -0
  41. package/dist/tools/analytics.js.map +1 -0
  42. package/dist/tools/assets.d.ts +23 -0
  43. package/dist/tools/assets.d.ts.map +1 -0
  44. package/dist/tools/assets.js +220 -0
  45. package/dist/tools/assets.js.map +1 -0
  46. package/dist/tools/audio-files.d.ts +21 -0
  47. package/dist/tools/audio-files.d.ts.map +1 -0
  48. package/dist/tools/audio-files.js +358 -0
  49. package/dist/tools/audio-files.js.map +1 -0
  50. package/dist/tools/bulk.d.ts +16 -0
  51. package/dist/tools/bulk.d.ts.map +1 -0
  52. package/dist/tools/bulk.js +82 -0
  53. package/dist/tools/bulk.js.map +1 -0
  54. package/dist/tools/calendar.d.ts +15 -0
  55. package/dist/tools/calendar.d.ts.map +1 -0
  56. package/dist/tools/calendar.js +69 -0
  57. package/dist/tools/calendar.js.map +1 -0
  58. package/dist/tools/collaborators.d.ts +17 -0
  59. package/dist/tools/collaborators.d.ts.map +1 -0
  60. package/dist/tools/collaborators.js +133 -0
  61. package/dist/tools/collaborators.js.map +1 -0
  62. package/dist/tools/comparisons.d.ts +22 -0
  63. package/dist/tools/comparisons.d.ts.map +1 -0
  64. package/dist/tools/comparisons.js +86 -0
  65. package/dist/tools/comparisons.js.map +1 -0
  66. package/dist/tools/credits.d.ts +17 -0
  67. package/dist/tools/credits.d.ts.map +1 -0
  68. package/dist/tools/credits.js +136 -0
  69. package/dist/tools/credits.js.map +1 -0
  70. package/dist/tools/dashboard.d.ts +20 -0
  71. package/dist/tools/dashboard.d.ts.map +1 -0
  72. package/dist/tools/dashboard.js +156 -0
  73. package/dist/tools/dashboard.js.map +1 -0
  74. package/dist/tools/directory.d.ts +15 -0
  75. package/dist/tools/directory.d.ts.map +1 -0
  76. package/dist/tools/directory.js +108 -0
  77. package/dist/tools/directory.js.map +1 -0
  78. package/dist/tools/disputes.d.ts +18 -0
  79. package/dist/tools/disputes.d.ts.map +1 -0
  80. package/dist/tools/disputes.js +66 -0
  81. package/dist/tools/disputes.js.map +1 -0
  82. package/dist/tools/documents.d.ts +15 -0
  83. package/dist/tools/documents.d.ts.map +1 -0
  84. package/dist/tools/documents.js +38 -0
  85. package/dist/tools/documents.js.map +1 -0
  86. package/dist/tools/duplicates.d.ts +16 -0
  87. package/dist/tools/duplicates.d.ts.map +1 -0
  88. package/dist/tools/duplicates.js +72 -0
  89. package/dist/tools/duplicates.js.map +1 -0
  90. package/dist/tools/enrichment.d.ts +23 -0
  91. package/dist/tools/enrichment.d.ts.map +1 -0
  92. package/dist/tools/enrichment.js +207 -0
  93. package/dist/tools/enrichment.js.map +1 -0
  94. package/dist/tools/exports.d.ts +19 -0
  95. package/dist/tools/exports.d.ts.map +1 -0
  96. package/dist/tools/exports.js +155 -0
  97. package/dist/tools/exports.js.map +1 -0
  98. package/dist/tools/health.d.ts +17 -0
  99. package/dist/tools/health.d.ts.map +1 -0
  100. package/dist/tools/health.js +69 -0
  101. package/dist/tools/health.js.map +1 -0
  102. package/dist/tools/import-documents.d.ts +21 -0
  103. package/dist/tools/import-documents.d.ts.map +1 -0
  104. package/dist/tools/import-documents.js +191 -0
  105. package/dist/tools/import-documents.js.map +1 -0
  106. package/dist/tools/import.d.ts +29 -0
  107. package/dist/tools/import.d.ts.map +1 -0
  108. package/dist/tools/import.js +404 -0
  109. package/dist/tools/import.js.map +1 -0
  110. package/dist/tools/index.d.ts +48 -0
  111. package/dist/tools/index.d.ts.map +1 -0
  112. package/dist/tools/index.js +394 -0
  113. package/dist/tools/index.js.map +1 -0
  114. package/dist/tools/integrations.d.ts +15 -0
  115. package/dist/tools/integrations.d.ts.map +1 -0
  116. package/dist/tools/integrations.js +102 -0
  117. package/dist/tools/integrations.js.map +1 -0
  118. package/dist/tools/licensing.d.ts +40 -0
  119. package/dist/tools/licensing.d.ts.map +1 -0
  120. package/dist/tools/licensing.js +436 -0
  121. package/dist/tools/licensing.js.map +1 -0
  122. package/dist/tools/memory.d.ts +21 -0
  123. package/dist/tools/memory.d.ts.map +1 -0
  124. package/dist/tools/memory.js +121 -0
  125. package/dist/tools/memory.js.map +1 -0
  126. package/dist/tools/multimedia.d.ts +19 -0
  127. package/dist/tools/multimedia.d.ts.map +1 -0
  128. package/dist/tools/multimedia.js +293 -0
  129. package/dist/tools/multimedia.js.map +1 -0
  130. package/dist/tools/notes.d.ts +21 -0
  131. package/dist/tools/notes.d.ts.map +1 -0
  132. package/dist/tools/notes.js +126 -0
  133. package/dist/tools/notes.js.map +1 -0
  134. package/dist/tools/notifications.d.ts +17 -0
  135. package/dist/tools/notifications.d.ts.map +1 -0
  136. package/dist/tools/notifications.js +117 -0
  137. package/dist/tools/notifications.js.map +1 -0
  138. package/dist/tools/people.d.ts +53 -0
  139. package/dist/tools/people.d.ts.map +1 -0
  140. package/dist/tools/people.js +534 -0
  141. package/dist/tools/people.js.map +1 -0
  142. package/dist/tools/pica-score.d.ts +15 -0
  143. package/dist/tools/pica-score.d.ts.map +1 -0
  144. package/dist/tools/pica-score.js +30 -0
  145. package/dist/tools/pica-score.js.map +1 -0
  146. package/dist/tools/projects.d.ts +19 -0
  147. package/dist/tools/projects.d.ts.map +1 -0
  148. package/dist/tools/projects.js +142 -0
  149. package/dist/tools/projects.js.map +1 -0
  150. package/dist/tools/purchases.d.ts +15 -0
  151. package/dist/tools/purchases.d.ts.map +1 -0
  152. package/dist/tools/purchases.js +65 -0
  153. package/dist/tools/purchases.js.map +1 -0
  154. package/dist/tools/recordings.d.ts +41 -0
  155. package/dist/tools/recordings.d.ts.map +1 -0
  156. package/dist/tools/recordings.js +293 -0
  157. package/dist/tools/recordings.js.map +1 -0
  158. package/dist/tools/registration.d.ts +16 -0
  159. package/dist/tools/registration.d.ts.map +1 -0
  160. package/dist/tools/registration.js +52 -0
  161. package/dist/tools/registration.js.map +1 -0
  162. package/dist/tools/releases.d.ts +18 -0
  163. package/dist/tools/releases.d.ts.map +1 -0
  164. package/dist/tools/releases.js +138 -0
  165. package/dist/tools/releases.js.map +1 -0
  166. package/dist/tools/royalties.d.ts +23 -0
  167. package/dist/tools/royalties.d.ts.map +1 -0
  168. package/dist/tools/royalties.js +263 -0
  169. package/dist/tools/royalties.js.map +1 -0
  170. package/dist/tools/search.d.ts +30 -0
  171. package/dist/tools/search.d.ts.map +1 -0
  172. package/dist/tools/search.js +117 -0
  173. package/dist/tools/search.js.map +1 -0
  174. package/dist/tools/send.d.ts +18 -0
  175. package/dist/tools/send.d.ts.map +1 -0
  176. package/dist/tools/send.js +189 -0
  177. package/dist/tools/send.js.map +1 -0
  178. package/dist/tools/sessions.d.ts +18 -0
  179. package/dist/tools/sessions.d.ts.map +1 -0
  180. package/dist/tools/sessions.js +107 -0
  181. package/dist/tools/sessions.js.map +1 -0
  182. package/dist/tools/settings.d.ts +18 -0
  183. package/dist/tools/settings.d.ts.map +1 -0
  184. package/dist/tools/settings.js +98 -0
  185. package/dist/tools/settings.js.map +1 -0
  186. package/dist/tools/share-links.d.ts +19 -0
  187. package/dist/tools/share-links.d.ts.map +1 -0
  188. package/dist/tools/share-links.js +126 -0
  189. package/dist/tools/share-links.js.map +1 -0
  190. package/dist/tools/split-sheets.d.ts +24 -0
  191. package/dist/tools/split-sheets.d.ts.map +1 -0
  192. package/dist/tools/split-sheets.js +189 -0
  193. package/dist/tools/split-sheets.js.map +1 -0
  194. package/dist/tools/team.d.ts +22 -0
  195. package/dist/tools/team.d.ts.map +1 -0
  196. package/dist/tools/team.js +139 -0
  197. package/dist/tools/team.js.map +1 -0
  198. package/dist/tools/telegram.d.ts +20 -0
  199. package/dist/tools/telegram.d.ts.map +1 -0
  200. package/dist/tools/telegram.js +94 -0
  201. package/dist/tools/telegram.js.map +1 -0
  202. package/dist/tools/uploads.d.ts +17 -0
  203. package/dist/tools/uploads.d.ts.map +1 -0
  204. package/dist/tools/uploads.js +159 -0
  205. package/dist/tools/uploads.js.map +1 -0
  206. package/dist/tools/works.d.ts +53 -0
  207. package/dist/tools/works.d.ts.map +1 -0
  208. package/dist/tools/works.js +517 -0
  209. package/dist/tools/works.js.map +1 -0
  210. package/dist/utils/credit-gate.d.ts +17 -0
  211. package/dist/utils/credit-gate.d.ts.map +1 -0
  212. package/dist/utils/credit-gate.js +111 -0
  213. package/dist/utils/credit-gate.js.map +1 -0
  214. package/dist/utils/errors.d.ts +29 -0
  215. package/dist/utils/errors.d.ts.map +1 -0
  216. package/dist/utils/errors.js +114 -0
  217. package/dist/utils/errors.js.map +1 -0
  218. package/dist/utils/formatting.d.ts +63 -0
  219. package/dist/utils/formatting.d.ts.map +1 -0
  220. package/dist/utils/formatting.js +130 -0
  221. package/dist/utils/formatting.js.map +1 -0
  222. package/dist/utils/mpp.d.ts +78 -0
  223. package/dist/utils/mpp.d.ts.map +1 -0
  224. package/dist/utils/mpp.js +136 -0
  225. package/dist/utils/mpp.js.map +1 -0
  226. package/package.json +44 -0
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Tool Registry for MCP Server
3
+ * Manages all available tools that AI assistants can call
4
+ */
5
+ import { PicaClient } from "../pica-sdk.js";
6
+ export interface ToolDefinition {
7
+ name: string;
8
+ description: string;
9
+ inputSchema: {
10
+ type: string;
11
+ properties: Record<string, any>;
12
+ required?: string[];
13
+ additionalProperties?: boolean;
14
+ };
15
+ }
16
+ export interface ToolResult {
17
+ content: Array<{
18
+ type: string;
19
+ text: string;
20
+ }>;
21
+ structuredContent?: Record<string, unknown>;
22
+ isError?: boolean;
23
+ }
24
+ export type ToolExecutor = (args: Record<string, any>) => Promise<any>;
25
+ export declare class ToolRegistry {
26
+ private tools;
27
+ private pica;
28
+ constructor(pica: PicaClient);
29
+ /**
30
+ * Register all available tools
31
+ */
32
+ private registerAllTools;
33
+ private static readonly DESTRUCTIVE_PATTERNS;
34
+ private static readonly MUTATING_PATTERNS;
35
+ private static readonly SAFE_OVERRIDES;
36
+ private static readonly DESTRUCTIVE_PREFIX;
37
+ private static readonly MUTATING_PREFIX;
38
+ private classifyTool;
39
+ /**
40
+ * List all available tools with write-safety prefixes injected
41
+ */
42
+ listTools(): ToolDefinition[];
43
+ /**
44
+ * Execute a tool by name
45
+ */
46
+ executeTool(name: string, args: Record<string, any>): Promise<any>;
47
+ }
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA+C5C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAEvE,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAGX;IACF,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAM5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+QxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAM1C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CA4BvC;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAkBnC;IAEH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CACoK;IAE9M,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAC8G;IAErJ,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,SAAS,IAAI,cAAc,EAAE;IAoB7B;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAgBzE"}
@@ -0,0 +1,394 @@
1
+ /**
2
+ * Tool Registry for MCP Server
3
+ * Manages all available tools that AI assistants can call
4
+ */
5
+ import { WorksTools } from "./works.js";
6
+ import { PeopleTools } from "./people.js";
7
+ import { RecordingsTools } from "./recordings.js";
8
+ import { SearchTools } from "./search.js";
9
+ import { LicensingTools } from "./licensing.js";
10
+ import { CreditsTools } from "./credits.js";
11
+ import { PicaScoreTools } from "./pica-score.js";
12
+ import { AudioFilesTools } from "./audio-files.js";
13
+ import { MultimediaTools } from "./multimedia.js";
14
+ import { AgreementsTools } from "./agreements.js";
15
+ import { MemoryTools } from "./memory.js";
16
+ import { EnrichmentTools } from "./enrichment.js";
17
+ import { RegistrationTools } from "./registration.js";
18
+ import { HealthTools } from "./health.js";
19
+ import { BulkTools } from "./bulk.js";
20
+ import { ExportTools } from "./exports.js";
21
+ import { DuplicatesTools } from "./duplicates.js";
22
+ import { DirectoryTools } from "./directory.js";
23
+ import { CollaboratorsTools } from "./collaborators.js";
24
+ import { ImportDocumentTools } from "./import-documents.js";
25
+ import { UploadTools } from "./uploads.js";
26
+ import { DocumentTools } from "./documents.js";
27
+ import { ImportTools } from "./import.js";
28
+ import { SendTools } from "./send.js";
29
+ import { ComparisonTools } from "./comparisons.js";
30
+ import { AssetsTools } from "./assets.js";
31
+ import { SessionsTools } from "./sessions.js";
32
+ import { AnalyticsTools } from "./analytics.js";
33
+ import { NotificationsTools } from "./notifications.js";
34
+ import { NotesTools } from "./notes.js";
35
+ import { TeamTools } from "./team.js";
36
+ import { ProjectsTools } from "./projects.js";
37
+ import { ReleasesTools } from "./releases.js";
38
+ import { CalendarTools } from "./calendar.js";
39
+ import { SplitSheetsTools } from "./split-sheets.js";
40
+ import { AgreementTypesTools } from "./agreement-types.js";
41
+ import { DashboardTools } from "./dashboard.js";
42
+ import { IntegrationsTools } from "./integrations.js";
43
+ import { SettingsTools } from "./settings.js";
44
+ import { RoyaltiesTools } from "./royalties.js";
45
+ import { ShareLinksTools } from "./share-links.js";
46
+ import { DisputesTools } from "./disputes.js";
47
+ import { PurchasesTools } from "./purchases.js";
48
+ import { TelegramTools } from "./telegram.js";
49
+ import { formatError, ToolExecutionError } from "../utils/errors.js";
50
+ export class ToolRegistry {
51
+ tools;
52
+ pica;
53
+ constructor(pica) {
54
+ this.pica = pica;
55
+ this.tools = new Map();
56
+ this.registerAllTools();
57
+ }
58
+ /**
59
+ * Register all available tools
60
+ */
61
+ registerAllTools() {
62
+ // Works tools
63
+ const worksTools = new WorksTools(this.pica);
64
+ worksTools.getTools().forEach((tool) => {
65
+ this.tools.set(tool.definition.name, tool);
66
+ });
67
+ // People tools
68
+ const peopleTools = new PeopleTools(this.pica);
69
+ peopleTools.getTools().forEach((tool) => {
70
+ this.tools.set(tool.definition.name, tool);
71
+ });
72
+ // Recordings tools
73
+ const recordingsTools = new RecordingsTools(this.pica);
74
+ recordingsTools.getTools().forEach((tool) => {
75
+ this.tools.set(tool.definition.name, tool);
76
+ });
77
+ // Search tools
78
+ const searchTools = new SearchTools(this.pica);
79
+ searchTools.getTools().forEach((tool) => {
80
+ this.tools.set(tool.definition.name, tool);
81
+ });
82
+ // Licensing tools
83
+ const licensingTools = new LicensingTools(this.pica);
84
+ licensingTools.getTools().forEach((tool) => {
85
+ this.tools.set(tool.definition.name, tool);
86
+ });
87
+ // Credits tools
88
+ const creditsTools = new CreditsTools(this.pica);
89
+ creditsTools.getTools().forEach((tool) => {
90
+ this.tools.set(tool.definition.name, tool);
91
+ });
92
+ // PICA Score tools
93
+ const picaScoreTools = new PicaScoreTools(this.pica);
94
+ picaScoreTools.getTools().forEach((tool) => {
95
+ this.tools.set(tool.definition.name, tool);
96
+ });
97
+ // Audio Files tools
98
+ const audioFilesTools = new AudioFilesTools(this.pica);
99
+ audioFilesTools.getTools().forEach((tool) => {
100
+ this.tools.set(tool.definition.name, tool);
101
+ });
102
+ // Multimedia tools
103
+ const multimediaTools = new MultimediaTools(this.pica);
104
+ multimediaTools.getTools().forEach((tool) => {
105
+ this.tools.set(tool.definition.name, tool);
106
+ });
107
+ // Agreements tools
108
+ const agreementsTools = new AgreementsTools(this.pica);
109
+ agreementsTools.getTools().forEach((tool) => {
110
+ this.tools.set(tool.definition.name, tool);
111
+ });
112
+ // Memory tools
113
+ const memoryTools = new MemoryTools(this.pica);
114
+ memoryTools.getTools().forEach((tool) => {
115
+ this.tools.set(tool.definition.name, tool);
116
+ });
117
+ // Enrichment tools
118
+ const enrichmentTools = new EnrichmentTools(this.pica);
119
+ enrichmentTools.getTools().forEach((tool) => {
120
+ this.tools.set(tool.definition.name, tool);
121
+ });
122
+ // Registration tools
123
+ const registrationTools = new RegistrationTools(this.pica);
124
+ registrationTools.getTools().forEach((tool) => {
125
+ this.tools.set(tool.definition.name, tool);
126
+ });
127
+ // Health tools
128
+ const healthTools = new HealthTools(this.pica);
129
+ healthTools.getTools().forEach((tool) => {
130
+ this.tools.set(tool.definition.name, tool);
131
+ });
132
+ // Bulk operations tools
133
+ const bulkTools = new BulkTools(this.pica);
134
+ bulkTools.getTools().forEach((tool) => {
135
+ this.tools.set(tool.definition.name, tool);
136
+ });
137
+ // Export tools
138
+ const exportTools = new ExportTools(this.pica);
139
+ exportTools.getTools().forEach((tool) => {
140
+ this.tools.set(tool.definition.name, tool);
141
+ });
142
+ // Duplicates tools
143
+ const duplicatesTools = new DuplicatesTools(this.pica);
144
+ duplicatesTools.getTools().forEach((tool) => {
145
+ this.tools.set(tool.definition.name, tool);
146
+ });
147
+ // Directory tools
148
+ const directoryTools = new DirectoryTools(this.pica);
149
+ directoryTools.getTools().forEach((tool) => {
150
+ this.tools.set(tool.definition.name, tool);
151
+ });
152
+ // Collaborator tools
153
+ const collaboratorsTools = new CollaboratorsTools(this.pica);
154
+ collaboratorsTools.getTools().forEach((tool) => {
155
+ this.tools.set(tool.definition.name, tool);
156
+ });
157
+ // Upload tools (generic file upload — images, videos, documents)
158
+ const uploadTools = new UploadTools(this.pica);
159
+ uploadTools.getTools().forEach((tool) => {
160
+ this.tools.set(tool.definition.name, tool);
161
+ });
162
+ // Document tools (AI analysis)
163
+ const documentTools = new DocumentTools(this.pica);
164
+ documentTools.getTools().forEach((tool) => {
165
+ this.tools.set(tool.definition.name, tool);
166
+ });
167
+ // Bulk import tools (CSV import pipeline)
168
+ const importTools = new ImportTools(this.pica);
169
+ importTools.getTools().forEach((tool) => {
170
+ this.tools.set(tool.definition.name, tool);
171
+ });
172
+ // Comparison tools (ADR-116 Phase 2: enrichment + registration comparison)
173
+ const comparisonTools = new ComparisonTools(this.pica);
174
+ comparisonTools.getTools().forEach((tool) => {
175
+ this.tools.set(tool.definition.name, tool);
176
+ });
177
+ // Send Hub tools (messages, invites, file requests, audio shares)
178
+ const sendTools = new SendTools(this.pica);
179
+ sendTools.getTools().forEach((tool) => {
180
+ this.tools.set(tool.definition.name, tool);
181
+ });
182
+ // Import document tools
183
+ const importDocumentTools = new ImportDocumentTools(this.pica);
184
+ importDocumentTools.getTools().forEach((tool) => {
185
+ this.tools.set(tool.definition.name, tool);
186
+ });
187
+ // Physical assets tools (equipment, instruments, studio gear)
188
+ const assetsTools = new AssetsTools(this.pica);
189
+ assetsTools.getTools().forEach((tool) => {
190
+ this.tools.set(tool.definition.name, tool);
191
+ });
192
+ // Work sessions tools (studio session tracking)
193
+ const sessionsTools = new SessionsTools(this.pica);
194
+ sessionsTools.getTools().forEach((tool) => {
195
+ this.tools.set(tool.definition.name, tool);
196
+ });
197
+ // Analytics tools (carbon, provenance, diligence)
198
+ const analyticsTools = new AnalyticsTools(this.pica);
199
+ analyticsTools.getTools().forEach((tool) => {
200
+ this.tools.set(tool.definition.name, tool);
201
+ });
202
+ // Notifications tools
203
+ const notificationsTools = new NotificationsTools(this.pica);
204
+ notificationsTools.getTools().forEach((tool) => {
205
+ this.tools.set(tool.definition.name, tool);
206
+ });
207
+ // Notes tools (catalog notes on works, people, general observations)
208
+ const notesTools = new NotesTools(this.pica);
209
+ notesTools.getTools().forEach((tool) => {
210
+ this.tools.set(tool.definition.name, tool);
211
+ });
212
+ // Team management tools (invite, list, update, remove members)
213
+ const teamTools = new TeamTools(this.pica);
214
+ teamTools.getTools().forEach((tool) => {
215
+ this.tools.set(tool.definition.name, tool);
216
+ });
217
+ // Projects tools (albums, EPs, compilations — grouping works)
218
+ const projectsTools = new ProjectsTools(this.pica);
219
+ projectsTools.getTools().forEach((tool) => {
220
+ this.tools.set(tool.definition.name, tool);
221
+ });
222
+ // Releases tools (albums, EPs, singles with dates, labels, UPCs)
223
+ const releasesTools = new ReleasesTools(this.pica);
224
+ releasesTools.getTools().forEach((tool) => {
225
+ this.tools.set(tool.definition.name, tool);
226
+ });
227
+ // Calendar tools
228
+ const calendarTools = new CalendarTools(this.pica);
229
+ calendarTools.getTools().forEach((tool) => {
230
+ this.tools.set(tool.definition.name, tool);
231
+ });
232
+ // Split sheets & recording splits tools
233
+ const splitSheetsTools = new SplitSheetsTools(this.pica);
234
+ splitSheetsTools.getTools().forEach((tool) => {
235
+ this.tools.set(tool.definition.name, tool);
236
+ });
237
+ // Agreement types tools (templates, producer agreements, work-for-hire)
238
+ const agreementTypesTools = new AgreementTypesTools(this.pica);
239
+ agreementTypesTools.getTools().forEach((tool) => {
240
+ this.tools.set(tool.definition.name, tool);
241
+ });
242
+ // Dashboard & discovery tools
243
+ const dashboardTools = new DashboardTools(this.pica);
244
+ dashboardTools.getTools().forEach((tool) => {
245
+ this.tools.set(tool.definition.name, tool);
246
+ });
247
+ // Integrations tools (connection status)
248
+ const integrationsTools = new IntegrationsTools(this.pica);
249
+ integrationsTools.getTools().forEach((tool) => {
250
+ this.tools.set(tool.definition.name, tool);
251
+ });
252
+ // Settings tools (credits history, storage, org profile)
253
+ const settingsTools = new SettingsTools(this.pica);
254
+ settingsTools.getTools().forEach((tool) => {
255
+ this.tools.set(tool.definition.name, tool);
256
+ });
257
+ // Royalties & statements tools (ADR-139 Step 2)
258
+ const royaltiesTools = new RoyaltiesTools(this.pica);
259
+ royaltiesTools.getTools().forEach((tool) => {
260
+ this.tools.set(tool.definition.name, tool);
261
+ });
262
+ // Share links tools (ADR-139 Step 3)
263
+ const shareLinksTools = new ShareLinksTools(this.pica);
264
+ shareLinksTools.getTools().forEach((tool) => {
265
+ this.tools.set(tool.definition.name, tool);
266
+ });
267
+ // Disputes tools (ADR-139 Step 3)
268
+ const disputesTools = new DisputesTools(this.pica);
269
+ disputesTools.getTools().forEach((tool) => {
270
+ this.tools.set(tool.definition.name, tool);
271
+ });
272
+ // Purchases tools (credit checkout)
273
+ const purchasesTools = new PurchasesTools(this.pica);
274
+ purchasesTools.getTools().forEach((tool) => {
275
+ this.tools.set(tool.definition.name, tool);
276
+ });
277
+ // Telegram tools (user notification channel)
278
+ const telegramTools = new TelegramTools(this.pica);
279
+ telegramTools.getTools().forEach((tool) => {
280
+ this.tools.set(tool.definition.name, tool);
281
+ });
282
+ }
283
+ // ── Write-safety classification ──
284
+ // Destructive tools require confirmation before AND summary after.
285
+ // Mutating tools should present what they'll do and confirm after.
286
+ // Safe (read-only) tools need no confirmation.
287
+ static DESTRUCTIVE_PATTERNS = [
288
+ "_delete",
289
+ "_bulk_delete",
290
+ "_merge",
291
+ "_remove",
292
+ "_disconnect",
293
+ ];
294
+ static MUTATING_PATTERNS = [
295
+ "_create",
296
+ "_update",
297
+ "_bulk_update",
298
+ "_invite",
299
+ "_link",
300
+ "_send_",
301
+ "_import_",
302
+ "_execute",
303
+ "_ingest",
304
+ "_enrich",
305
+ "_verify",
306
+ "_mark_",
307
+ "_review",
308
+ "_purchase",
309
+ "_submit",
310
+ "_generate",
311
+ "_set_default",
312
+ "_duplicate",
313
+ "_toggle",
314
+ "_save",
315
+ "_upload",
316
+ "_complete",
317
+ "_analyze",
318
+ "_analyse",
319
+ "_identify",
320
+ "_resend",
321
+ "_notify",
322
+ ];
323
+ // Read-only tools that match mutating patterns by name but are actually safe
324
+ static SAFE_OVERRIDES = new Set([
325
+ "pica_collaborators_invites_list",
326
+ "pica_completeness_low",
327
+ "pica_enrichment_candidates",
328
+ "pica_enrichment_compare",
329
+ "pica_enrichment_status",
330
+ "pica_find_duplicates",
331
+ "pica_import_analyze",
332
+ "pica_import_validate",
333
+ "pica_import_fields",
334
+ "pica_import_template",
335
+ "pica_import_documents_list",
336
+ "pica_import_documents_get",
337
+ "pica_import_documents_diff",
338
+ "pica_send_list",
339
+ "pica_send_pending",
340
+ "pica_share_links_list",
341
+ "pica_work_completeness",
342
+ ]);
343
+ static DESTRUCTIVE_PREFIX = "⚠️ DESTRUCTIVE: Before calling this tool, you MUST describe exactly what will be deleted/merged to the user and get explicit confirmation. After execution, confirm what was done and what was affected. ";
344
+ static MUTATING_PREFIX = "✏️ WRITE OPERATION: Before calling this tool, briefly tell the user what you're about to do. After execution, confirm what was created/changed. ";
345
+ classifyTool(name) {
346
+ if (ToolRegistry.SAFE_OVERRIDES.has(name)) {
347
+ return "safe";
348
+ }
349
+ if (ToolRegistry.DESTRUCTIVE_PATTERNS.some((p) => name.includes(p))) {
350
+ return "destructive";
351
+ }
352
+ if (ToolRegistry.MUTATING_PATTERNS.some((p) => name.includes(p))) {
353
+ return "mutating";
354
+ }
355
+ return "safe";
356
+ }
357
+ /**
358
+ * List all available tools with write-safety prefixes injected
359
+ */
360
+ listTools() {
361
+ return Array.from(this.tools.values()).map((tool) => {
362
+ const classification = this.classifyTool(tool.definition.name);
363
+ if (classification === "safe") {
364
+ return tool.definition;
365
+ }
366
+ const prefix = classification === "destructive"
367
+ ? ToolRegistry.DESTRUCTIVE_PREFIX
368
+ : ToolRegistry.MUTATING_PREFIX;
369
+ return {
370
+ ...tool.definition,
371
+ description: prefix + tool.definition.description,
372
+ };
373
+ });
374
+ }
375
+ /**
376
+ * Execute a tool by name
377
+ */
378
+ async executeTool(name, args) {
379
+ const tool = this.tools.get(name);
380
+ if (!tool) {
381
+ throw new ToolExecutionError(`Tool not found: ${name}`);
382
+ }
383
+ try {
384
+ return await tool.executor(args);
385
+ }
386
+ catch (error) {
387
+ return {
388
+ content: [formatError(error)],
389
+ isError: true,
390
+ };
391
+ }
392
+ }
393
+ }
394
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAwBrE,MAAM,OAAO,YAAY;IACf,KAAK,CAGX;IACM,IAAI,CAAa;IAEzB,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,cAAc;QACd,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,kBAAkB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,iEAAiE;QACjE,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,0CAA0C;QAC1C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,2EAA2E;QAC3E,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,kEAAkE;QAClE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,mBAAmB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,kDAAkD;QAClD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,kBAAkB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,qEAAqE;QACrE,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,+DAA+D;QAC/D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,iEAAiE;QACjE,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,wEAAwE;QACxE,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,mBAAmB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,8BAA8B;QAC9B,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,yDAAyD;QACzD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,oCAAoC;QACpC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oCAAoC;IACpC,mEAAmE;IACnE,mEAAmE;IACnE,+CAA+C;IAEvC,MAAM,CAAU,oBAAoB,GAAG;QAC7C,SAAS;QACT,cAAc;QACd,QAAQ;QACR,SAAS;QACT,aAAa;KACd,CAAC;IAEM,MAAM,CAAU,iBAAiB,GAAG;QAC1C,SAAS;QACT,SAAS;QACT,cAAc;QACd,SAAS;QACT,OAAO;QACP,QAAQ;QACR,UAAU;QACV,UAAU;QACV,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,WAAW;QACX,SAAS;QACT,WAAW;QACX,cAAc;QACd,YAAY;QACZ,SAAS;QACT,OAAO;QACP,SAAS;QACT,WAAW;QACX,UAAU;QACV,UAAU;QACV,WAAW;QACX,SAAS;QACT,SAAS;KACV,CAAC;IAEF,6EAA6E;IACrE,MAAM,CAAU,cAAc,GAAG,IAAI,GAAG,CAAC;QAC/C,iCAAiC;QACjC,uBAAuB;QACvB,4BAA4B;QAC5B,yBAAyB;QACzB,wBAAwB;QACxB,sBAAsB;QACtB,qBAAqB;QACrB,sBAAsB;QACtB,oBAAoB;QACpB,sBAAsB;QACtB,4BAA4B;QAC5B,2BAA2B;QAC3B,4BAA4B;QAC5B,gBAAgB;QAChB,mBAAmB;QACnB,uBAAuB;QACvB,wBAAwB;KACzB,CAAC,CAAC;IAEK,MAAM,CAAU,kBAAkB,GACxC,2MAA2M,CAAC;IAEtM,MAAM,CAAU,eAAe,GACrC,kJAAkJ,CAAC;IAE7I,YAAY,CAAC,IAAY;QAC/B,IAAI,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,IAAI,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAE/D,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,UAAU,CAAC;YACzB,CAAC;YAED,MAAM,MAAM,GACV,cAAc,KAAK,aAAa;gBAC9B,CAAC,CAAC,YAAY,CAAC,kBAAkB;gBACjC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC;YAEnC,OAAO;gBACL,GAAG,IAAI,CAAC,UAAU;gBAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW;aAClD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,IAAyB;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Integrations Tools — check connected services and guide users to connect more
3
+ */
4
+ import { PicaClient } from "../pica-sdk.js";
5
+ import { ToolDefinition, ToolExecutor } from "./index.js";
6
+ export declare class IntegrationsTools {
7
+ private pica;
8
+ constructor(pica: PicaClient);
9
+ getTools(): Array<{
10
+ definition: ToolDefinition;
11
+ executor: ToolExecutor;
12
+ }>;
13
+ private getStatus;
14
+ }
15
+ //# sourceMappingURL=integrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/tools/integrations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAGtE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;YAmB3D,SAAS;CAoFxB"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Integrations Tools — check connected services and guide users to connect more
3
+ */
4
+ import { formatSuccess } from "../utils/formatting.js";
5
+ export class IntegrationsTools {
6
+ pica;
7
+ constructor(pica) {
8
+ this.pica = pica;
9
+ }
10
+ getTools() {
11
+ return [
12
+ {
13
+ definition: {
14
+ name: "pica_integrations_status",
15
+ description: "Check which services are connected — Google (Gmail + Calendar + Drive), Spotify, " +
16
+ "Telegram, Notion, Airtable, and platform integrations. " +
17
+ "Shows what's connected and what's available to connect.",
18
+ inputSchema: {
19
+ type: "object",
20
+ properties: {},
21
+ },
22
+ },
23
+ executor: this.getStatus.bind(this),
24
+ },
25
+ ];
26
+ }
27
+ async getStatus(_args) {
28
+ // Fetch both OAuth connections and platform integrations
29
+ const [oauthResult, platformResult] = await Promise.allSettled([
30
+ this.pica.integrations.oauthConnections(),
31
+ this.pica.integrations.platforms(),
32
+ ]);
33
+ const oauthConnections = oauthResult.status === "fulfilled"
34
+ ? oauthResult.value?.data || oauthResult.value || []
35
+ : [];
36
+ const platforms = platformResult.status === "fulfilled"
37
+ ? platformResult.value?.data?.platforms ||
38
+ platformResult.value?.platforms ||
39
+ []
40
+ : [];
41
+ const connections = Array.isArray(oauthConnections) ? oauthConnections : [];
42
+ const connectedProviders = connections.map((c) => c.provider?.toLowerCase() || "");
43
+ // Build status summary
44
+ // Google is one OAuth connection that unlocks Calendar, Gmail, and Drive
45
+ const googleConnected = connectedProviders.includes("google");
46
+ const services = [
47
+ {
48
+ name: "Google",
49
+ connected: googleConnected,
50
+ what: "Gmail, Google Calendar, and Google Drive — one connection unlocks all three",
51
+ includes: ["Gmail", "Google Calendar", "Google Drive"],
52
+ },
53
+ {
54
+ name: "Spotify",
55
+ connected: connectedProviders.includes("spotify"),
56
+ what: "Import and enrich from your Spotify catalog",
57
+ },
58
+ {
59
+ name: "Notion",
60
+ connected: connectedProviders.includes("notion"),
61
+ what: "Export catalog data to Notion",
62
+ },
63
+ {
64
+ name: "Airtable",
65
+ connected: connectedProviders.includes("airtable"),
66
+ what: "Sync catalog to Airtable",
67
+ },
68
+ {
69
+ name: "Telegram",
70
+ connected: connectedProviders.includes("telegram"),
71
+ what: "Get notifications and run commands via Telegram",
72
+ },
73
+ ];
74
+ const connected = services.filter((s) => s.connected);
75
+ const available = services.filter((s) => !s.connected);
76
+ const summary = [
77
+ `${connected.length} service${connected.length !== 1 ? "s" : ""} connected`,
78
+ connected.length > 0
79
+ ? `Connected: ${connected.map((s) => s.name).join(", ")}`
80
+ : null,
81
+ available.length > 0
82
+ ? `Available to connect: ${available.map((s) => `${s.name} (${s.what})`).join(", ")}`
83
+ : "All services connected",
84
+ available.length > 0
85
+ ? "Connect services at withpica.com/admin/settings — then they're available here via MCP."
86
+ : null,
87
+ ]
88
+ .filter(Boolean)
89
+ .join("\n");
90
+ return formatSuccess(summary, {
91
+ services,
92
+ platforms: Array.isArray(platforms) ? platforms : [],
93
+ oauthConnections: connections.map((c) => ({
94
+ provider: c.provider,
95
+ account_name: c.account_name,
96
+ is_active: c.is_active,
97
+ connected_at: c.created_at,
98
+ })),
99
+ });
100
+ }
101
+ }
102
+ //# sourceMappingURL=integrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/tools/integrations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Licensing Tools - MCP tools for sync licensing and license enquiries
3
+ *
4
+ * Key differentiator: Search by actual audio characteristics (BPM, key, energy, mood)
5
+ * rather than just keywords, enabling music supervisors to find the perfect track.
6
+ */
7
+ import { PicaClient } from "../pica-sdk.js";
8
+ import { ToolDefinition, ToolExecutor } from "./index.js";
9
+ export declare class LicensingTools {
10
+ private pica;
11
+ constructor(pica: PicaClient);
12
+ /**
13
+ * Get all licensing tools
14
+ */
15
+ getTools(): Array<{
16
+ definition: ToolDefinition;
17
+ executor: ToolExecutor;
18
+ }>;
19
+ /**
20
+ * Search for sync-licensable tracks
21
+ */
22
+ private searchForSync;
23
+ /**
24
+ * Submit a license enquiry
25
+ */
26
+ private submitLicenseEnquiry;
27
+ /**
28
+ * List license enquiries
29
+ */
30
+ private listLicenseEnquiries;
31
+ /**
32
+ * Get license enquiry by ID
33
+ */
34
+ private getLicenseEnquiry;
35
+ /**
36
+ * Update license enquiry status
37
+ */
38
+ private updateLicenseEnquiryStatus;
39
+ }
40
+ //# sourceMappingURL=licensing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"licensing.d.ts","sourceRoot":"","sources":["../../src/tools/licensing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAOtE,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B;;OAEG;IACH,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAgSzE;;OAEG;YACW,aAAa;IA+C3B;;OAEG;YACW,oBAAoB;IA6BlC;;OAEG;YACW,oBAAoB;IA+BlC;;OAEG;YACW,iBAAiB;IAqC/B;;OAEG;YACW,0BAA0B;CAgBzC"}