@jezweb/mcp-integrations 0.1.1 → 0.1.2

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 (257) hide show
  1. package/README.md +10 -3
  2. package/dist/australia/business/clients/abr.d.ts +45 -0
  3. package/dist/australia/business/clients/abr.d.ts.map +1 -0
  4. package/dist/australia/business/clients/abr.js +167 -0
  5. package/dist/australia/business/clients/abr.js.map +1 -0
  6. package/dist/australia/business/clients/asic.d.ts +46 -0
  7. package/dist/australia/business/clients/asic.d.ts.map +1 -0
  8. package/dist/australia/business/clients/asic.js +128 -0
  9. package/dist/australia/business/clients/asic.js.map +1 -0
  10. package/dist/australia/business/index.d.ts +19 -0
  11. package/dist/australia/business/index.d.ts.map +1 -0
  12. package/dist/australia/business/index.js +14 -0
  13. package/dist/australia/business/index.js.map +1 -0
  14. package/dist/australia/business/tools/index.d.ts +29 -0
  15. package/dist/australia/business/tools/index.d.ts.map +1 -0
  16. package/dist/australia/business/tools/index.js +174 -0
  17. package/dist/australia/business/tools/index.js.map +1 -0
  18. package/dist/australia/datetime/clients/holidays.d.ts +85 -0
  19. package/dist/australia/datetime/clients/holidays.d.ts.map +1 -0
  20. package/dist/australia/datetime/clients/holidays.js +93 -0
  21. package/dist/australia/datetime/clients/holidays.js.map +1 -0
  22. package/dist/australia/datetime/index.d.ts +22 -0
  23. package/dist/australia/datetime/index.d.ts.map +1 -0
  24. package/dist/australia/datetime/index.js +14 -0
  25. package/dist/australia/datetime/index.js.map +1 -0
  26. package/dist/australia/datetime/tools/index.d.ts +55 -0
  27. package/dist/australia/datetime/tools/index.d.ts.map +1 -0
  28. package/dist/australia/datetime/tools/index.js +439 -0
  29. package/dist/australia/datetime/tools/index.js.map +1 -0
  30. package/dist/australia/index.d.ts +47 -0
  31. package/dist/australia/index.d.ts.map +1 -0
  32. package/dist/australia/index.js +29 -0
  33. package/dist/australia/index.js.map +1 -0
  34. package/dist/australia/ip/api-client.d.ts +130 -0
  35. package/dist/australia/ip/api-client.d.ts.map +1 -0
  36. package/dist/australia/ip/api-client.js +151 -0
  37. package/dist/australia/ip/api-client.js.map +1 -0
  38. package/dist/australia/ip/index.d.ts +19 -0
  39. package/dist/australia/ip/index.d.ts.map +1 -0
  40. package/dist/australia/ip/index.js +13 -0
  41. package/dist/australia/ip/index.js.map +1 -0
  42. package/dist/australia/ip/tools/index.d.ts +24 -0
  43. package/dist/australia/ip/tools/index.d.ts.map +1 -0
  44. package/dist/australia/ip/tools/index.js +279 -0
  45. package/dist/australia/ip/tools/index.js.map +1 -0
  46. package/dist/google/calendar/prompts.js +2 -2
  47. package/dist/google/calendar/prompts.js.map +1 -1
  48. package/dist/google/calendar/resources.js +1 -1
  49. package/dist/google/calendar/resources.js.map +1 -1
  50. package/dist/google/calendar/tools/calendars.js +1 -1
  51. package/dist/google/calendar/tools/calendars.js.map +1 -1
  52. package/dist/google/calendar/tools/events.d.ts.map +1 -1
  53. package/dist/google/calendar/tools/events.js +6 -5
  54. package/dist/google/calendar/tools/events.js.map +1 -1
  55. package/dist/google/chat/index.d.ts +46 -0
  56. package/dist/google/chat/index.d.ts.map +1 -0
  57. package/dist/google/chat/index.js +56 -0
  58. package/dist/google/chat/index.js.map +1 -0
  59. package/dist/google/chat/prompts.d.ts +71 -0
  60. package/dist/google/chat/prompts.d.ts.map +1 -0
  61. package/dist/google/chat/prompts.js +142 -0
  62. package/dist/google/chat/prompts.js.map +1 -0
  63. package/dist/google/chat/resources.d.ts +47 -0
  64. package/dist/google/chat/resources.d.ts.map +1 -0
  65. package/dist/google/chat/resources.js +95 -0
  66. package/dist/google/chat/resources.js.map +1 -0
  67. package/dist/google/chat/tools/index.d.ts +1122 -0
  68. package/dist/google/chat/tools/index.d.ts.map +1 -0
  69. package/dist/google/chat/tools/index.js +99 -0
  70. package/dist/google/chat/tools/index.js.map +1 -0
  71. package/dist/google/chat/tools/members.d.ts +50 -0
  72. package/dist/google/chat/tools/members.d.ts.map +1 -0
  73. package/dist/google/chat/tools/members.js +155 -0
  74. package/dist/google/chat/tools/members.js.map +1 -0
  75. package/dist/google/chat/tools/messages.d.ts +180 -0
  76. package/dist/google/chat/tools/messages.d.ts.map +1 -0
  77. package/dist/google/chat/tools/messages.js +340 -0
  78. package/dist/google/chat/tools/messages.js.map +1 -0
  79. package/dist/google/chat/tools/spaces.d.ts +51 -0
  80. package/dist/google/chat/tools/spaces.d.ts.map +1 -0
  81. package/dist/google/chat/tools/spaces.js +174 -0
  82. package/dist/google/chat/tools/spaces.js.map +1 -0
  83. package/dist/google/contacts/index.d.ts +27 -0
  84. package/dist/google/contacts/index.d.ts.map +1 -0
  85. package/dist/google/contacts/index.js +30 -0
  86. package/dist/google/contacts/index.js.map +1 -0
  87. package/dist/google/contacts/prompts.d.ts +71 -0
  88. package/dist/google/contacts/prompts.d.ts.map +1 -0
  89. package/dist/google/contacts/prompts.js +129 -0
  90. package/dist/google/contacts/prompts.js.map +1 -0
  91. package/dist/google/contacts/resources.d.ts +47 -0
  92. package/dist/google/contacts/resources.d.ts.map +1 -0
  93. package/dist/google/contacts/resources.js +128 -0
  94. package/dist/google/contacts/resources.js.map +1 -0
  95. package/dist/google/contacts/tools/contacts.d.ts +154 -0
  96. package/dist/google/contacts/tools/contacts.d.ts.map +1 -0
  97. package/dist/google/contacts/tools/contacts.js +416 -0
  98. package/dist/google/contacts/tools/contacts.js.map +1 -0
  99. package/dist/google/contacts/tools/index.d.ts +524 -0
  100. package/dist/google/contacts/tools/index.d.ts.map +1 -0
  101. package/dist/google/contacts/tools/index.js +63 -0
  102. package/dist/google/contacts/tools/index.js.map +1 -0
  103. package/dist/google/docs/index.d.ts +43 -0
  104. package/dist/google/docs/index.d.ts.map +1 -0
  105. package/dist/google/docs/index.js +51 -0
  106. package/dist/google/docs/index.js.map +1 -0
  107. package/dist/google/docs/prompts.d.ts +71 -0
  108. package/dist/google/docs/prompts.d.ts.map +1 -0
  109. package/dist/google/docs/prompts.js +154 -0
  110. package/dist/google/docs/prompts.js.map +1 -0
  111. package/dist/google/docs/resources.d.ts +48 -0
  112. package/dist/google/docs/resources.d.ts.map +1 -0
  113. package/dist/google/docs/resources.js +111 -0
  114. package/dist/google/docs/resources.js.map +1 -0
  115. package/dist/google/docs/tools/index.d.ts +738 -0
  116. package/dist/google/docs/tools/index.d.ts.map +1 -0
  117. package/dist/google/docs/tools/index.js +80 -0
  118. package/dist/google/docs/tools/index.js.map +1 -0
  119. package/dist/google/docs/tools/read.d.ts +47 -0
  120. package/dist/google/docs/tools/read.d.ts.map +1 -0
  121. package/dist/google/docs/tools/read.js +255 -0
  122. package/dist/google/docs/tools/read.js.map +1 -0
  123. package/dist/google/docs/tools/write.d.ts +182 -0
  124. package/dist/google/docs/tools/write.d.ts.map +1 -0
  125. package/dist/google/docs/tools/write.js +670 -0
  126. package/dist/google/docs/tools/write.js.map +1 -0
  127. package/dist/google/drive/index.d.ts +30 -0
  128. package/dist/google/drive/index.d.ts.map +1 -0
  129. package/dist/google/drive/index.js +42 -0
  130. package/dist/google/drive/index.js.map +1 -0
  131. package/dist/google/drive/prompts.d.ts +115 -0
  132. package/dist/google/drive/prompts.d.ts.map +1 -0
  133. package/dist/google/drive/prompts.js +193 -0
  134. package/dist/google/drive/prompts.js.map +1 -0
  135. package/dist/google/drive/resources.d.ts +48 -0
  136. package/dist/google/drive/resources.d.ts.map +1 -0
  137. package/dist/google/drive/resources.js +106 -0
  138. package/dist/google/drive/resources.js.map +1 -0
  139. package/dist/google/drive/tools/files.d.ts +142 -0
  140. package/dist/google/drive/tools/files.d.ts.map +1 -0
  141. package/dist/google/drive/tools/files.js +461 -0
  142. package/dist/google/drive/tools/files.js.map +1 -0
  143. package/dist/google/drive/tools/folders.d.ts +69 -0
  144. package/dist/google/drive/tools/folders.d.ts.map +1 -0
  145. package/dist/google/drive/tools/folders.js +217 -0
  146. package/dist/google/drive/tools/folders.js.map +1 -0
  147. package/dist/google/drive/tools/index.d.ts +1002 -0
  148. package/dist/google/drive/tools/index.d.ts.map +1 -0
  149. package/dist/google/drive/tools/index.js +97 -0
  150. package/dist/google/drive/tools/index.js.map +1 -0
  151. package/dist/google/drive/tools/sharing.d.ts +142 -0
  152. package/dist/google/drive/tools/sharing.d.ts.map +1 -0
  153. package/dist/google/drive/tools/sharing.js +304 -0
  154. package/dist/google/drive/tools/sharing.js.map +1 -0
  155. package/dist/google/gmail/index.d.ts +30 -0
  156. package/dist/google/gmail/index.d.ts.map +1 -0
  157. package/dist/google/gmail/index.js +44 -0
  158. package/dist/google/gmail/index.js.map +1 -0
  159. package/dist/google/gmail/prompts.d.ts +121 -0
  160. package/dist/google/gmail/prompts.d.ts.map +1 -0
  161. package/dist/google/gmail/prompts.js +179 -0
  162. package/dist/google/gmail/prompts.js.map +1 -0
  163. package/dist/google/gmail/resources.d.ts +13 -0
  164. package/dist/google/gmail/resources.d.ts.map +1 -0
  165. package/dist/google/gmail/resources.js +99 -0
  166. package/dist/google/gmail/resources.js.map +1 -0
  167. package/dist/google/gmail/tools/drafts.d.ts +101 -0
  168. package/dist/google/gmail/tools/drafts.d.ts.map +1 -0
  169. package/dist/google/gmail/tools/drafts.js +256 -0
  170. package/dist/google/gmail/tools/drafts.js.map +1 -0
  171. package/dist/google/gmail/tools/index.d.ts +732 -0
  172. package/dist/google/gmail/tools/index.d.ts.map +1 -0
  173. package/dist/google/gmail/tools/index.js +96 -0
  174. package/dist/google/gmail/tools/index.js.map +1 -0
  175. package/dist/google/gmail/tools/labels.d.ts +82 -0
  176. package/dist/google/gmail/tools/labels.d.ts.map +1 -0
  177. package/dist/google/gmail/tools/labels.js +213 -0
  178. package/dist/google/gmail/tools/labels.js.map +1 -0
  179. package/dist/google/gmail/tools/messages.d.ts +107 -0
  180. package/dist/google/gmail/tools/messages.d.ts.map +1 -0
  181. package/dist/google/gmail/tools/messages.js +327 -0
  182. package/dist/google/gmail/tools/messages.js.map +1 -0
  183. package/dist/google/gmail/tools/profile.d.ts +9 -0
  184. package/dist/google/gmail/tools/profile.d.ts.map +1 -0
  185. package/dist/google/gmail/tools/profile.js +31 -0
  186. package/dist/google/gmail/tools/profile.js.map +1 -0
  187. package/dist/google/gmail/tools/threads.d.ts +73 -0
  188. package/dist/google/gmail/tools/threads.d.ts.map +1 -0
  189. package/dist/google/gmail/tools/threads.js +254 -0
  190. package/dist/google/gmail/tools/threads.js.map +1 -0
  191. package/dist/google/index.d.ts +29 -1
  192. package/dist/google/index.d.ts.map +1 -1
  193. package/dist/google/index.js +29 -1
  194. package/dist/google/index.js.map +1 -1
  195. package/dist/google/sheets/index.d.ts +43 -0
  196. package/dist/google/sheets/index.d.ts.map +1 -0
  197. package/dist/google/sheets/index.js +53 -0
  198. package/dist/google/sheets/index.js.map +1 -0
  199. package/dist/google/sheets/prompts.d.ts +71 -0
  200. package/dist/google/sheets/prompts.d.ts.map +1 -0
  201. package/dist/google/sheets/prompts.js +171 -0
  202. package/dist/google/sheets/prompts.js.map +1 -0
  203. package/dist/google/sheets/resources.d.ts +49 -0
  204. package/dist/google/sheets/resources.d.ts.map +1 -0
  205. package/dist/google/sheets/resources.js +113 -0
  206. package/dist/google/sheets/resources.js.map +1 -0
  207. package/dist/google/sheets/tools/index.d.ts +1021 -0
  208. package/dist/google/sheets/tools/index.d.ts.map +1 -0
  209. package/dist/google/sheets/tools/index.js +99 -0
  210. package/dist/google/sheets/tools/index.js.map +1 -0
  211. package/dist/google/sheets/tools/manage.d.ts +104 -0
  212. package/dist/google/sheets/tools/manage.d.ts.map +1 -0
  213. package/dist/google/sheets/tools/manage.js +255 -0
  214. package/dist/google/sheets/tools/manage.js.map +1 -0
  215. package/dist/google/sheets/tools/read.d.ts +84 -0
  216. package/dist/google/sheets/tools/read.d.ts.map +1 -0
  217. package/dist/google/sheets/tools/read.js +204 -0
  218. package/dist/google/sheets/tools/read.js.map +1 -0
  219. package/dist/google/sheets/tools/write.d.ts +109 -0
  220. package/dist/google/sheets/tools/write.d.ts.map +1 -0
  221. package/dist/google/sheets/tools/write.js +205 -0
  222. package/dist/google/sheets/tools/write.js.map +1 -0
  223. package/dist/google/tasks/index.d.ts +28 -0
  224. package/dist/google/tasks/index.d.ts.map +1 -0
  225. package/dist/google/tasks/index.js +35 -0
  226. package/dist/google/tasks/index.js.map +1 -0
  227. package/dist/google/tasks/prompts.d.ts +71 -0
  228. package/dist/google/tasks/prompts.d.ts.map +1 -0
  229. package/dist/google/tasks/prompts.js +140 -0
  230. package/dist/google/tasks/prompts.js.map +1 -0
  231. package/dist/google/tasks/resources.d.ts +47 -0
  232. package/dist/google/tasks/resources.d.ts.map +1 -0
  233. package/dist/google/tasks/resources.js +128 -0
  234. package/dist/google/tasks/resources.js.map +1 -0
  235. package/dist/google/tasks/tools/index.d.ts +609 -0
  236. package/dist/google/tasks/tools/index.d.ts.map +1 -0
  237. package/dist/google/tasks/tools/index.js +95 -0
  238. package/dist/google/tasks/tools/index.js.map +1 -0
  239. package/dist/google/tasks/tools/lists.d.ts +61 -0
  240. package/dist/google/tasks/tools/lists.d.ts.map +1 -0
  241. package/dist/google/tasks/tools/lists.js +146 -0
  242. package/dist/google/tasks/tools/lists.js.map +1 -0
  243. package/dist/google/tasks/tools/tasks.d.ts +164 -0
  244. package/dist/google/tasks/tools/tasks.d.ts.map +1 -0
  245. package/dist/google/tasks/tools/tasks.js +368 -0
  246. package/dist/google/tasks/tools/tasks.js.map +1 -0
  247. package/dist/helpers.d.ts +35 -0
  248. package/dist/helpers.d.ts.map +1 -1
  249. package/dist/helpers.js +42 -0
  250. package/dist/helpers.js.map +1 -1
  251. package/dist/index.d.ts +3 -1
  252. package/dist/index.d.ts.map +1 -1
  253. package/dist/index.js +4 -1
  254. package/dist/index.js.map +1 -1
  255. package/dist/types.d.ts +13 -0
  256. package/dist/types.d.ts.map +1 -1
  257. package/package.json +19 -18
@@ -0,0 +1,130 @@
1
+ /**
2
+ * IP Australia API Client
3
+ *
4
+ * Handles OAuth authentication and API calls for Trade Mark and Patent search APIs.
5
+ * Uses in-memory token caching with auto-refresh.
6
+ */
7
+ export interface IPAustraliaEnv {
8
+ TRADEMARK_CLIENT_ID: string;
9
+ TRADEMARK_CLIENT_SECRET: string;
10
+ TRADEMARK_API_URL: string;
11
+ PATENT_CLIENT_ID: string;
12
+ PATENT_CLIENT_SECRET: string;
13
+ PATENT_API_URL: string;
14
+ TOKEN_URL: string;
15
+ }
16
+ export interface TradeMarkSearchParams {
17
+ query: string;
18
+ status?: string[];
19
+ niceClass?: number;
20
+ limit?: number;
21
+ }
22
+ export interface TradeMarkSearchResponse {
23
+ count: number;
24
+ trademarkIds: string[];
25
+ aggregations?: {
26
+ quickSearchType?: Record<string, number>;
27
+ status?: Record<string, number>;
28
+ };
29
+ }
30
+ export interface TradeMarkDetailsResponse {
31
+ number: string;
32
+ words?: string[];
33
+ kind?: string[];
34
+ statusGroup: string;
35
+ statusCode: string;
36
+ statusDetail?: string;
37
+ priorityDate?: string;
38
+ lodgementDate?: string;
39
+ filingDate?: string;
40
+ acceptanceDate?: string;
41
+ registeredFromDate?: string;
42
+ renewalDueDate?: string;
43
+ withdrawalDate?: string;
44
+ lapsedDate?: string;
45
+ owner?: Array<{
46
+ name: string;
47
+ abn?: string;
48
+ structuredAddress?: {
49
+ addressLineText?: string[];
50
+ suburb?: string;
51
+ state?: string;
52
+ countryName?: string;
53
+ postalCode?: string;
54
+ };
55
+ }>;
56
+ goodsAndServices?: Array<{
57
+ class: string;
58
+ descriptionText: string[];
59
+ }>;
60
+ conventionDetails?: Array<{
61
+ date: string;
62
+ number: string;
63
+ country: string;
64
+ }>;
65
+ markCategories?: string[];
66
+ }
67
+ export interface PatentSearchParams {
68
+ query: string;
69
+ status?: string[];
70
+ limit?: number;
71
+ }
72
+ export interface PatentSearchResponse {
73
+ totalHits: number;
74
+ request: {
75
+ query: string;
76
+ searchType: string;
77
+ searchMode: string;
78
+ sort: {
79
+ field: string;
80
+ direction: string;
81
+ };
82
+ pageSize: number;
83
+ pageNumber: number;
84
+ };
85
+ results: PatentSearchItem[];
86
+ }
87
+ export interface PatentSearchItem {
88
+ applicationNumber: string;
89
+ pctNumber?: string;
90
+ title?: string[];
91
+ filingDate?: string;
92
+ applicants?: string[];
93
+ applicationStatus: string;
94
+ }
95
+ export interface PatentDetailsResponse {
96
+ ipRightStatusEvent?: Array<{
97
+ ipRightStatusCode: string;
98
+ ipRightStatusDate: string;
99
+ }>;
100
+ inventors?: Array<{
101
+ legalEntityName: string;
102
+ }>;
103
+ ipRightStatusCode: string;
104
+ filedDate?: string;
105
+ applicant?: Array<{
106
+ legalEntityName: string;
107
+ }>;
108
+ bibliographicData?: {
109
+ patentApplicationType?: string;
110
+ applicationNumber: string;
111
+ pctApplicationIndicator?: string;
112
+ conventionApplicationIndicator?: boolean;
113
+ currentlyUnderOpposition?: boolean;
114
+ inventionTitle?: Array<{
115
+ title: string;
116
+ }>;
117
+ };
118
+ representatives?: Array<{
119
+ legalEntityName: string;
120
+ }>;
121
+ }
122
+ export declare function searchTradeMarks(env: IPAustraliaEnv, params: TradeMarkSearchParams): Promise<TradeMarkSearchResponse>;
123
+ export declare function getTradeMarkDetails(env: IPAustraliaEnv, ipRightIdentifier: string): Promise<TradeMarkDetailsResponse>;
124
+ export declare function searchPatents(env: IPAustraliaEnv, params: PatentSearchParams): Promise<PatentSearchResponse>;
125
+ export declare function getPatentDetails(env: IPAustraliaEnv, ipRightIdentifier: string): Promise<PatentDetailsResponse>;
126
+ export declare function testConnection(env: IPAustraliaEnv, apiType: 'trademark' | 'patent'): Promise<{
127
+ success: boolean;
128
+ message: string;
129
+ }>;
130
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../../src/australia/ip/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * IP Australia API Client
3
+ *
4
+ * Handles OAuth authentication and API calls for Trade Mark and Patent search APIs.
5
+ * Uses in-memory token caching with auto-refresh.
6
+ */
7
+ // In-memory token cache (per API - TM and Patent use different credentials)
8
+ const tokenCache = new Map();
9
+ /**
10
+ * Get or refresh OAuth token for a specific API
11
+ */
12
+ async function getToken(env, apiType) {
13
+ const cacheKey = `${apiType}_token`;
14
+ const cached = tokenCache.get(cacheKey);
15
+ // Return cached token if still valid (with 60s buffer)
16
+ if (cached && cached.expiresAt > Date.now() + 60000) {
17
+ return cached.token;
18
+ }
19
+ const clientId = apiType === 'trademark' ? env.TRADEMARK_CLIENT_ID : env.PATENT_CLIENT_ID;
20
+ const clientSecret = apiType === 'trademark' ? env.TRADEMARK_CLIENT_SECRET : env.PATENT_CLIENT_SECRET;
21
+ const response = await fetch(env.TOKEN_URL, {
22
+ method: 'POST',
23
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
24
+ body: new URLSearchParams({
25
+ grant_type: 'client_credentials',
26
+ client_id: clientId,
27
+ client_secret: clientSecret,
28
+ }),
29
+ });
30
+ if (!response.ok) {
31
+ const errorText = await response.text();
32
+ throw new Error(`OAuth token request failed: ${response.status} ${response.statusText} - ${errorText}`);
33
+ }
34
+ const data = (await response.json());
35
+ tokenCache.set(cacheKey, {
36
+ token: data.access_token,
37
+ expiresAt: Date.now() + data.expires_in * 1000,
38
+ });
39
+ return data.access_token;
40
+ }
41
+ // ============================================
42
+ // Trade Mark API Functions
43
+ // ============================================
44
+ export async function searchTradeMarks(env, params) {
45
+ const token = await getToken(env, 'trademark');
46
+ const requestBody = { query: params.query };
47
+ const filters = {};
48
+ if (params.status && params.status.length > 0) {
49
+ filters.status = params.status;
50
+ }
51
+ if (params.niceClass) {
52
+ filters.niceClasses = [params.niceClass];
53
+ }
54
+ if (Object.keys(filters).length > 0) {
55
+ requestBody.filters = filters;
56
+ }
57
+ const response = await fetch(`${env.TRADEMARK_API_URL}/search/quick`, {
58
+ method: 'POST',
59
+ headers: {
60
+ Authorization: `Bearer ${token}`,
61
+ 'Content-Type': 'application/json',
62
+ Accept: 'application/json',
63
+ },
64
+ body: JSON.stringify(requestBody),
65
+ });
66
+ if (!response.ok) {
67
+ const errorText = await response.text();
68
+ throw new Error(`Trade Mark search failed: ${response.status} ${response.statusText} - ${errorText}`);
69
+ }
70
+ return (await response.json());
71
+ }
72
+ export async function getTradeMarkDetails(env, ipRightIdentifier) {
73
+ const token = await getToken(env, 'trademark');
74
+ const response = await fetch(`${env.TRADEMARK_API_URL}/trade-mark/${encodeURIComponent(ipRightIdentifier)}`, {
75
+ method: 'GET',
76
+ headers: {
77
+ Authorization: `Bearer ${token}`,
78
+ Accept: 'application/json',
79
+ },
80
+ });
81
+ if (!response.ok) {
82
+ const errorText = await response.text();
83
+ throw new Error(`Trade Mark details failed: ${response.status} ${response.statusText} - ${errorText}`);
84
+ }
85
+ return (await response.json());
86
+ }
87
+ // ============================================
88
+ // Patent API Functions
89
+ // ============================================
90
+ export async function searchPatents(env, params) {
91
+ const token = await getToken(env, 'patent');
92
+ const requestBody = {
93
+ query: params.query,
94
+ searchType: 'DETAILS',
95
+ searchMode: 'QUICK_NO_ABSTRACT',
96
+ sort: { field: 'APPLICATION_NUMBER', direction: 'DESC' },
97
+ pageSize: params.limit ?? 20,
98
+ pageNumber: 1,
99
+ };
100
+ if (params.status && params.status.length > 0) {
101
+ requestBody.filters = { status: params.status };
102
+ }
103
+ const response = await fetch(`${env.PATENT_API_URL}/search/quick`, {
104
+ method: 'POST',
105
+ headers: {
106
+ Authorization: `Bearer ${token}`,
107
+ 'Content-Type': 'application/json',
108
+ Accept: 'application/json',
109
+ },
110
+ body: JSON.stringify(requestBody),
111
+ });
112
+ if (!response.ok) {
113
+ const errorText = await response.text();
114
+ throw new Error(`Patent search failed: ${response.status} ${response.statusText} - ${errorText}`);
115
+ }
116
+ return (await response.json());
117
+ }
118
+ export async function getPatentDetails(env, ipRightIdentifier) {
119
+ const token = await getToken(env, 'patent');
120
+ const response = await fetch(`${env.PATENT_API_URL}/patent/${encodeURIComponent(ipRightIdentifier)}`, {
121
+ method: 'GET',
122
+ headers: {
123
+ Authorization: `Bearer ${token}`,
124
+ Accept: 'application/json',
125
+ },
126
+ });
127
+ if (!response.ok) {
128
+ const errorText = await response.text();
129
+ throw new Error(`Patent details failed: ${response.status} ${response.statusText} - ${errorText}`);
130
+ }
131
+ return (await response.json());
132
+ }
133
+ // ============================================
134
+ // Utility Functions
135
+ // ============================================
136
+ export async function testConnection(env, apiType) {
137
+ try {
138
+ await getToken(env, apiType);
139
+ return {
140
+ success: true,
141
+ message: `Successfully authenticated with IP Australia ${apiType} API`,
142
+ };
143
+ }
144
+ catch (error) {
145
+ return {
146
+ success: false,
147
+ message: `Authentication failed: ${error instanceof Error ? error.message : String(error)}`,
148
+ };
149
+ }
150
+ }
151
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/australia/ip/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * IP Australia Integration
3
+ *
4
+ * Tools for searching Australian trade marks and patents via IP Australia APIs.
5
+ */
6
+ export * from './tools';
7
+ export * from './api-client';
8
+ export declare const ip: {
9
+ tools: {
10
+ all: import("../..").ToolDefinition<import("zod").ZodType<any, import("zod").ZodTypeDef, any>>[];
11
+ ipAustraliaStatus: import("../..").ToolDefinition<import("zod").ZodType<any, import("zod").ZodTypeDef, any>>;
12
+ searchTrademarks: import("../..").ToolDefinition<import("zod").ZodType<any, import("zod").ZodTypeDef, any>>;
13
+ getTrademarkDetails: import("../..").ToolDefinition<import("zod").ZodType<any, import("zod").ZodTypeDef, any>>;
14
+ searchPatentsAU: import("../..").ToolDefinition<import("zod").ZodType<any, import("zod").ZodTypeDef, any>>;
15
+ getPatentDetailsAU: import("../..").ToolDefinition<import("zod").ZodType<any, import("zod").ZodTypeDef, any>>;
16
+ };
17
+ };
18
+ export default ip;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/australia/ip/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAI7B,eAAO,MAAM,EAAE;;;;;;;;;CAEd,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * IP Australia Integration
3
+ *
4
+ * Tools for searching Australian trade marks and patents via IP Australia APIs.
5
+ */
6
+ export * from './tools';
7
+ export * from './api-client';
8
+ import tools from './tools';
9
+ export const ip = {
10
+ tools,
11
+ };
12
+ export default ip;
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/australia/ip/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAE7B,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,KAAK;CACN,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * IP Australia Tools (Trade Marks & Patents)
3
+ *
4
+ * Tools for searching Australian trade marks and patents via IP Australia APIs.
5
+ * Requires OAuth credentials configured in environment.
6
+ */
7
+ import { z } from 'zod';
8
+ import type { ToolDefinition } from '../../../types';
9
+ export declare const ipAustraliaStatus: ToolDefinition;
10
+ export declare const searchTrademarks: ToolDefinition;
11
+ export declare const getTrademarkDetails: ToolDefinition;
12
+ export declare const searchPatentsAU: ToolDefinition;
13
+ export declare const getPatentDetailsAU: ToolDefinition;
14
+ export declare const all: ToolDefinition<z.ZodType<any, z.ZodTypeDef, any>>[];
15
+ declare const _default: {
16
+ all: ToolDefinition<z.ZodType<any, z.ZodTypeDef, any>>[];
17
+ ipAustraliaStatus: ToolDefinition<z.ZodType<any, z.ZodTypeDef, any>>;
18
+ searchTrademarks: ToolDefinition<z.ZodType<any, z.ZodTypeDef, any>>;
19
+ getTrademarkDetails: ToolDefinition<z.ZodType<any, z.ZodTypeDef, any>>;
20
+ searchPatentsAU: ToolDefinition<z.ZodType<any, z.ZodTypeDef, any>>;
21
+ getPatentDetailsAU: ToolDefinition<z.ZodType<any, z.ZodTypeDef, any>>;
22
+ };
23
+ export default _default;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/australia/ip/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAkClE,eAAO,MAAM,iBAAiB,EAAE,cAsD/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAoE9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAqCjC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,cA8D7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,cAqChC,CAAC;AAGF,eAAO,MAAM,GAAG,qDAMf,CAAC;;;;;;;;;AAEF,wBAAsH"}
@@ -0,0 +1,279 @@
1
+ /**
2
+ * IP Australia Tools (Trade Marks & Patents)
3
+ *
4
+ * Tools for searching Australian trade marks and patents via IP Australia APIs.
5
+ * Requires OAuth credentials configured in environment.
6
+ */
7
+ import { z } from 'zod';
8
+ import { searchTradeMarks, getTradeMarkDetails, searchPatents, getPatentDetails, testConnection, } from '../api-client';
9
+ /**
10
+ * IP Australia tools require these environment variables:
11
+ * - TRADEMARK_CLIENT_ID, TRADEMARK_CLIENT_SECRET, TRADEMARK_API_URL
12
+ * - PATENT_CLIENT_ID, PATENT_CLIENT_SECRET, PATENT_API_URL
13
+ * - TOKEN_URL (shared OAuth token endpoint)
14
+ */
15
+ // Helper to check if IP Australia is configured
16
+ function getIPAustraliaEnv(ctx) {
17
+ const env = ctx.env;
18
+ if (!env.TOKEN_URL)
19
+ return null;
20
+ // Return partial env - individual tools check their specific credentials
21
+ return {
22
+ TRADEMARK_CLIENT_ID: env.TRADEMARK_CLIENT_ID || '',
23
+ TRADEMARK_CLIENT_SECRET: env.TRADEMARK_CLIENT_SECRET || '',
24
+ TRADEMARK_API_URL: env.TRADEMARK_API_URL || '',
25
+ PATENT_CLIENT_ID: env.PATENT_CLIENT_ID || '',
26
+ PATENT_CLIENT_SECRET: env.PATENT_CLIENT_SECRET || '',
27
+ PATENT_API_URL: env.PATENT_API_URL || '',
28
+ TOKEN_URL: env.TOKEN_URL,
29
+ };
30
+ }
31
+ export const ipAustraliaStatus = {
32
+ name: 'ip_australia_status',
33
+ description: 'Test connection to IP Australia APIs. Verifies OAuth credentials are working for trade mark and/or patent APIs.',
34
+ parameters: z.object({
35
+ api: z
36
+ .enum(['trademark', 'patent', 'both'])
37
+ .optional()
38
+ .describe('Which API to test (default: both)'),
39
+ }),
40
+ handler: async (args, ctx) => {
41
+ const env = getIPAustraliaEnv(ctx);
42
+ if (!env) {
43
+ return {
44
+ content: [
45
+ { type: 'text', text: JSON.stringify({ error: 'IP Australia not configured - missing TOKEN_URL' }) },
46
+ ],
47
+ isError: true,
48
+ };
49
+ }
50
+ const apiToTest = args.api || 'both';
51
+ const results = {};
52
+ try {
53
+ if (apiToTest === 'trademark' || apiToTest === 'both') {
54
+ if (env.TRADEMARK_CLIENT_ID && env.TRADEMARK_CLIENT_SECRET) {
55
+ results.trademark = await testConnection(env, 'trademark');
56
+ }
57
+ else {
58
+ results.trademark = { success: false, message: 'Trade mark API credentials not configured' };
59
+ }
60
+ }
61
+ if (apiToTest === 'patent' || apiToTest === 'both') {
62
+ if (env.PATENT_CLIENT_ID && env.PATENT_CLIENT_SECRET) {
63
+ results.patent = await testConnection(env, 'patent');
64
+ }
65
+ else {
66
+ results.patent = { success: false, message: 'Patent API credentials not configured' };
67
+ }
68
+ }
69
+ return {
70
+ content: [{ type: 'text', text: JSON.stringify(results, null, 2) }],
71
+ };
72
+ }
73
+ catch (error) {
74
+ const message = error instanceof Error ? error.message : 'Unknown error';
75
+ return {
76
+ content: [{ type: 'text', text: JSON.stringify({ error: message }) }],
77
+ isError: true,
78
+ };
79
+ }
80
+ },
81
+ category: 'ip',
82
+ tags: ['australia', 'ip', 'status', 'connection'],
83
+ };
84
+ export const searchTrademarks = {
85
+ name: 'search_trademarks',
86
+ description: 'Search Australian trade marks by keyword, phrase, or trade mark number. Returns matching trade marks with their status and classification.',
87
+ parameters: z.object({
88
+ query: z.string().describe('Search query - can be words, phrase, or trade mark number'),
89
+ status: z
90
+ .array(z.string())
91
+ .optional()
92
+ .describe('Filter by status: Registered, Pending, Lapsed, Expired, Removed'),
93
+ niceClass: z
94
+ .number()
95
+ .optional()
96
+ .describe('Filter by Nice Classification (1-45)'),
97
+ limit: z.number().optional().describe('Maximum results (default: 20)'),
98
+ }),
99
+ handler: async (args, ctx) => {
100
+ const env = getIPAustraliaEnv(ctx);
101
+ if (!env || !env.TRADEMARK_CLIENT_ID || !env.TRADEMARK_CLIENT_SECRET) {
102
+ return {
103
+ content: [
104
+ {
105
+ type: 'text',
106
+ text: JSON.stringify({ error: 'Trade mark API not configured - missing credentials' }),
107
+ },
108
+ ],
109
+ isError: true,
110
+ };
111
+ }
112
+ try {
113
+ const result = await searchTradeMarks(env, {
114
+ query: args.query,
115
+ status: args.status,
116
+ niceClass: args.niceClass,
117
+ limit: args.limit,
118
+ });
119
+ return {
120
+ content: [
121
+ {
122
+ type: 'text',
123
+ text: JSON.stringify({
124
+ query: args.query,
125
+ count: result.count,
126
+ trademarkIds: result.trademarkIds.slice(0, args.limit || 20),
127
+ aggregations: result.aggregations,
128
+ }, null, 2),
129
+ },
130
+ ],
131
+ };
132
+ }
133
+ catch (error) {
134
+ const message = error instanceof Error ? error.message : 'Unknown error';
135
+ return {
136
+ content: [{ type: 'text', text: JSON.stringify({ error: message }) }],
137
+ isError: true,
138
+ };
139
+ }
140
+ },
141
+ category: 'ip',
142
+ tags: ['australia', 'trademark', 'search', 'ip'],
143
+ };
144
+ export const getTrademarkDetails = {
145
+ name: 'get_trademark_details',
146
+ description: 'Get detailed information about a specific Australian trade mark by its number. Returns owner, status, goods/services, filing dates, and more.',
147
+ parameters: z.object({
148
+ trademarkNumber: z.string().describe('The trade mark number (e.g., "1234567")'),
149
+ }),
150
+ handler: async (args, ctx) => {
151
+ const env = getIPAustraliaEnv(ctx);
152
+ if (!env || !env.TRADEMARK_CLIENT_ID || !env.TRADEMARK_CLIENT_SECRET) {
153
+ return {
154
+ content: [
155
+ {
156
+ type: 'text',
157
+ text: JSON.stringify({ error: 'Trade mark API not configured - missing credentials' }),
158
+ },
159
+ ],
160
+ isError: true,
161
+ };
162
+ }
163
+ try {
164
+ const result = await getTradeMarkDetails(env, args.trademarkNumber);
165
+ return {
166
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
167
+ };
168
+ }
169
+ catch (error) {
170
+ const message = error instanceof Error ? error.message : 'Unknown error';
171
+ return {
172
+ content: [{ type: 'text', text: JSON.stringify({ error: message }) }],
173
+ isError: true,
174
+ };
175
+ }
176
+ },
177
+ category: 'ip',
178
+ tags: ['australia', 'trademark', 'details', 'ip'],
179
+ };
180
+ export const searchPatentsAU = {
181
+ name: 'search_patents',
182
+ description: 'Search Australian patents by keyword, phrase, or application number. Returns matching patents with their status and basic details.',
183
+ parameters: z.object({
184
+ query: z.string().describe('Search query - can be keywords, title, or application number'),
185
+ status: z
186
+ .array(z.string())
187
+ .optional()
188
+ .describe('Filter by status: Pending, Granted, Ceased, Lapsed'),
189
+ limit: z.number().optional().describe('Maximum results (default: 20)'),
190
+ }),
191
+ handler: async (args, ctx) => {
192
+ const env = getIPAustraliaEnv(ctx);
193
+ if (!env || !env.PATENT_CLIENT_ID || !env.PATENT_CLIENT_SECRET) {
194
+ return {
195
+ content: [
196
+ {
197
+ type: 'text',
198
+ text: JSON.stringify({ error: 'Patent API not configured - missing credentials' }),
199
+ },
200
+ ],
201
+ isError: true,
202
+ };
203
+ }
204
+ try {
205
+ const result = await searchPatents(env, {
206
+ query: args.query,
207
+ status: args.status,
208
+ limit: args.limit,
209
+ });
210
+ return {
211
+ content: [
212
+ {
213
+ type: 'text',
214
+ text: JSON.stringify({
215
+ query: args.query,
216
+ totalHits: result.totalHits,
217
+ results: result.results,
218
+ }, null, 2),
219
+ },
220
+ ],
221
+ };
222
+ }
223
+ catch (error) {
224
+ const message = error instanceof Error ? error.message : 'Unknown error';
225
+ return {
226
+ content: [{ type: 'text', text: JSON.stringify({ error: message }) }],
227
+ isError: true,
228
+ };
229
+ }
230
+ },
231
+ category: 'ip',
232
+ tags: ['australia', 'patent', 'search', 'ip'],
233
+ };
234
+ export const getPatentDetailsAU = {
235
+ name: 'get_patent_details',
236
+ description: 'Get detailed information about a specific Australian patent by its application number. Returns inventors, applicants, status history, and bibliographic data.',
237
+ parameters: z.object({
238
+ applicationNumber: z.string().describe('The patent application number (e.g., "2020123456")'),
239
+ }),
240
+ handler: async (args, ctx) => {
241
+ const env = getIPAustraliaEnv(ctx);
242
+ if (!env || !env.PATENT_CLIENT_ID || !env.PATENT_CLIENT_SECRET) {
243
+ return {
244
+ content: [
245
+ {
246
+ type: 'text',
247
+ text: JSON.stringify({ error: 'Patent API not configured - missing credentials' }),
248
+ },
249
+ ],
250
+ isError: true,
251
+ };
252
+ }
253
+ try {
254
+ const result = await getPatentDetails(env, args.applicationNumber);
255
+ return {
256
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
257
+ };
258
+ }
259
+ catch (error) {
260
+ const message = error instanceof Error ? error.message : 'Unknown error';
261
+ return {
262
+ content: [{ type: 'text', text: JSON.stringify({ error: message }) }],
263
+ isError: true,
264
+ };
265
+ }
266
+ },
267
+ category: 'ip',
268
+ tags: ['australia', 'patent', 'details', 'ip'],
269
+ };
270
+ // Export all IP Australia tools
271
+ export const all = [
272
+ ipAustraliaStatus,
273
+ searchTrademarks,
274
+ getTrademarkDetails,
275
+ searchPatentsAU,
276
+ getPatentDetailsAU,
277
+ ];
278
+ export default { all, ipAustraliaStatus, searchTrademarks, getTrademarkDetails, searchPatentsAU, getPatentDetailsAU };
279
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/australia/ip/tools/index.ts"],"names":[],"mappings":"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"}