@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.
- package/README.md +10 -3
- package/dist/australia/business/clients/abr.d.ts +45 -0
- package/dist/australia/business/clients/abr.d.ts.map +1 -0
- package/dist/australia/business/clients/abr.js +167 -0
- package/dist/australia/business/clients/abr.js.map +1 -0
- package/dist/australia/business/clients/asic.d.ts +46 -0
- package/dist/australia/business/clients/asic.d.ts.map +1 -0
- package/dist/australia/business/clients/asic.js +128 -0
- package/dist/australia/business/clients/asic.js.map +1 -0
- package/dist/australia/business/index.d.ts +19 -0
- package/dist/australia/business/index.d.ts.map +1 -0
- package/dist/australia/business/index.js +14 -0
- package/dist/australia/business/index.js.map +1 -0
- package/dist/australia/business/tools/index.d.ts +29 -0
- package/dist/australia/business/tools/index.d.ts.map +1 -0
- package/dist/australia/business/tools/index.js +174 -0
- package/dist/australia/business/tools/index.js.map +1 -0
- package/dist/australia/datetime/clients/holidays.d.ts +85 -0
- package/dist/australia/datetime/clients/holidays.d.ts.map +1 -0
- package/dist/australia/datetime/clients/holidays.js +93 -0
- package/dist/australia/datetime/clients/holidays.js.map +1 -0
- package/dist/australia/datetime/index.d.ts +22 -0
- package/dist/australia/datetime/index.d.ts.map +1 -0
- package/dist/australia/datetime/index.js +14 -0
- package/dist/australia/datetime/index.js.map +1 -0
- package/dist/australia/datetime/tools/index.d.ts +55 -0
- package/dist/australia/datetime/tools/index.d.ts.map +1 -0
- package/dist/australia/datetime/tools/index.js +439 -0
- package/dist/australia/datetime/tools/index.js.map +1 -0
- package/dist/australia/index.d.ts +47 -0
- package/dist/australia/index.d.ts.map +1 -0
- package/dist/australia/index.js +29 -0
- package/dist/australia/index.js.map +1 -0
- package/dist/australia/ip/api-client.d.ts +130 -0
- package/dist/australia/ip/api-client.d.ts.map +1 -0
- package/dist/australia/ip/api-client.js +151 -0
- package/dist/australia/ip/api-client.js.map +1 -0
- package/dist/australia/ip/index.d.ts +19 -0
- package/dist/australia/ip/index.d.ts.map +1 -0
- package/dist/australia/ip/index.js +13 -0
- package/dist/australia/ip/index.js.map +1 -0
- package/dist/australia/ip/tools/index.d.ts +24 -0
- package/dist/australia/ip/tools/index.d.ts.map +1 -0
- package/dist/australia/ip/tools/index.js +279 -0
- package/dist/australia/ip/tools/index.js.map +1 -0
- package/dist/google/calendar/prompts.js +2 -2
- package/dist/google/calendar/prompts.js.map +1 -1
- package/dist/google/calendar/resources.js +1 -1
- package/dist/google/calendar/resources.js.map +1 -1
- package/dist/google/calendar/tools/calendars.js +1 -1
- package/dist/google/calendar/tools/calendars.js.map +1 -1
- package/dist/google/calendar/tools/events.d.ts.map +1 -1
- package/dist/google/calendar/tools/events.js +6 -5
- package/dist/google/calendar/tools/events.js.map +1 -1
- package/dist/google/chat/index.d.ts +46 -0
- package/dist/google/chat/index.d.ts.map +1 -0
- package/dist/google/chat/index.js +56 -0
- package/dist/google/chat/index.js.map +1 -0
- package/dist/google/chat/prompts.d.ts +71 -0
- package/dist/google/chat/prompts.d.ts.map +1 -0
- package/dist/google/chat/prompts.js +142 -0
- package/dist/google/chat/prompts.js.map +1 -0
- package/dist/google/chat/resources.d.ts +47 -0
- package/dist/google/chat/resources.d.ts.map +1 -0
- package/dist/google/chat/resources.js +95 -0
- package/dist/google/chat/resources.js.map +1 -0
- package/dist/google/chat/tools/index.d.ts +1122 -0
- package/dist/google/chat/tools/index.d.ts.map +1 -0
- package/dist/google/chat/tools/index.js +99 -0
- package/dist/google/chat/tools/index.js.map +1 -0
- package/dist/google/chat/tools/members.d.ts +50 -0
- package/dist/google/chat/tools/members.d.ts.map +1 -0
- package/dist/google/chat/tools/members.js +155 -0
- package/dist/google/chat/tools/members.js.map +1 -0
- package/dist/google/chat/tools/messages.d.ts +180 -0
- package/dist/google/chat/tools/messages.d.ts.map +1 -0
- package/dist/google/chat/tools/messages.js +340 -0
- package/dist/google/chat/tools/messages.js.map +1 -0
- package/dist/google/chat/tools/spaces.d.ts +51 -0
- package/dist/google/chat/tools/spaces.d.ts.map +1 -0
- package/dist/google/chat/tools/spaces.js +174 -0
- package/dist/google/chat/tools/spaces.js.map +1 -0
- package/dist/google/contacts/index.d.ts +27 -0
- package/dist/google/contacts/index.d.ts.map +1 -0
- package/dist/google/contacts/index.js +30 -0
- package/dist/google/contacts/index.js.map +1 -0
- package/dist/google/contacts/prompts.d.ts +71 -0
- package/dist/google/contacts/prompts.d.ts.map +1 -0
- package/dist/google/contacts/prompts.js +129 -0
- package/dist/google/contacts/prompts.js.map +1 -0
- package/dist/google/contacts/resources.d.ts +47 -0
- package/dist/google/contacts/resources.d.ts.map +1 -0
- package/dist/google/contacts/resources.js +128 -0
- package/dist/google/contacts/resources.js.map +1 -0
- package/dist/google/contacts/tools/contacts.d.ts +154 -0
- package/dist/google/contacts/tools/contacts.d.ts.map +1 -0
- package/dist/google/contacts/tools/contacts.js +416 -0
- package/dist/google/contacts/tools/contacts.js.map +1 -0
- package/dist/google/contacts/tools/index.d.ts +524 -0
- package/dist/google/contacts/tools/index.d.ts.map +1 -0
- package/dist/google/contacts/tools/index.js +63 -0
- package/dist/google/contacts/tools/index.js.map +1 -0
- package/dist/google/docs/index.d.ts +43 -0
- package/dist/google/docs/index.d.ts.map +1 -0
- package/dist/google/docs/index.js +51 -0
- package/dist/google/docs/index.js.map +1 -0
- package/dist/google/docs/prompts.d.ts +71 -0
- package/dist/google/docs/prompts.d.ts.map +1 -0
- package/dist/google/docs/prompts.js +154 -0
- package/dist/google/docs/prompts.js.map +1 -0
- package/dist/google/docs/resources.d.ts +48 -0
- package/dist/google/docs/resources.d.ts.map +1 -0
- package/dist/google/docs/resources.js +111 -0
- package/dist/google/docs/resources.js.map +1 -0
- package/dist/google/docs/tools/index.d.ts +738 -0
- package/dist/google/docs/tools/index.d.ts.map +1 -0
- package/dist/google/docs/tools/index.js +80 -0
- package/dist/google/docs/tools/index.js.map +1 -0
- package/dist/google/docs/tools/read.d.ts +47 -0
- package/dist/google/docs/tools/read.d.ts.map +1 -0
- package/dist/google/docs/tools/read.js +255 -0
- package/dist/google/docs/tools/read.js.map +1 -0
- package/dist/google/docs/tools/write.d.ts +182 -0
- package/dist/google/docs/tools/write.d.ts.map +1 -0
- package/dist/google/docs/tools/write.js +670 -0
- package/dist/google/docs/tools/write.js.map +1 -0
- package/dist/google/drive/index.d.ts +30 -0
- package/dist/google/drive/index.d.ts.map +1 -0
- package/dist/google/drive/index.js +42 -0
- package/dist/google/drive/index.js.map +1 -0
- package/dist/google/drive/prompts.d.ts +115 -0
- package/dist/google/drive/prompts.d.ts.map +1 -0
- package/dist/google/drive/prompts.js +193 -0
- package/dist/google/drive/prompts.js.map +1 -0
- package/dist/google/drive/resources.d.ts +48 -0
- package/dist/google/drive/resources.d.ts.map +1 -0
- package/dist/google/drive/resources.js +106 -0
- package/dist/google/drive/resources.js.map +1 -0
- package/dist/google/drive/tools/files.d.ts +142 -0
- package/dist/google/drive/tools/files.d.ts.map +1 -0
- package/dist/google/drive/tools/files.js +461 -0
- package/dist/google/drive/tools/files.js.map +1 -0
- package/dist/google/drive/tools/folders.d.ts +69 -0
- package/dist/google/drive/tools/folders.d.ts.map +1 -0
- package/dist/google/drive/tools/folders.js +217 -0
- package/dist/google/drive/tools/folders.js.map +1 -0
- package/dist/google/drive/tools/index.d.ts +1002 -0
- package/dist/google/drive/tools/index.d.ts.map +1 -0
- package/dist/google/drive/tools/index.js +97 -0
- package/dist/google/drive/tools/index.js.map +1 -0
- package/dist/google/drive/tools/sharing.d.ts +142 -0
- package/dist/google/drive/tools/sharing.d.ts.map +1 -0
- package/dist/google/drive/tools/sharing.js +304 -0
- package/dist/google/drive/tools/sharing.js.map +1 -0
- package/dist/google/gmail/index.d.ts +30 -0
- package/dist/google/gmail/index.d.ts.map +1 -0
- package/dist/google/gmail/index.js +44 -0
- package/dist/google/gmail/index.js.map +1 -0
- package/dist/google/gmail/prompts.d.ts +121 -0
- package/dist/google/gmail/prompts.d.ts.map +1 -0
- package/dist/google/gmail/prompts.js +179 -0
- package/dist/google/gmail/prompts.js.map +1 -0
- package/dist/google/gmail/resources.d.ts +13 -0
- package/dist/google/gmail/resources.d.ts.map +1 -0
- package/dist/google/gmail/resources.js +99 -0
- package/dist/google/gmail/resources.js.map +1 -0
- package/dist/google/gmail/tools/drafts.d.ts +101 -0
- package/dist/google/gmail/tools/drafts.d.ts.map +1 -0
- package/dist/google/gmail/tools/drafts.js +256 -0
- package/dist/google/gmail/tools/drafts.js.map +1 -0
- package/dist/google/gmail/tools/index.d.ts +732 -0
- package/dist/google/gmail/tools/index.d.ts.map +1 -0
- package/dist/google/gmail/tools/index.js +96 -0
- package/dist/google/gmail/tools/index.js.map +1 -0
- package/dist/google/gmail/tools/labels.d.ts +82 -0
- package/dist/google/gmail/tools/labels.d.ts.map +1 -0
- package/dist/google/gmail/tools/labels.js +213 -0
- package/dist/google/gmail/tools/labels.js.map +1 -0
- package/dist/google/gmail/tools/messages.d.ts +107 -0
- package/dist/google/gmail/tools/messages.d.ts.map +1 -0
- package/dist/google/gmail/tools/messages.js +327 -0
- package/dist/google/gmail/tools/messages.js.map +1 -0
- package/dist/google/gmail/tools/profile.d.ts +9 -0
- package/dist/google/gmail/tools/profile.d.ts.map +1 -0
- package/dist/google/gmail/tools/profile.js +31 -0
- package/dist/google/gmail/tools/profile.js.map +1 -0
- package/dist/google/gmail/tools/threads.d.ts +73 -0
- package/dist/google/gmail/tools/threads.d.ts.map +1 -0
- package/dist/google/gmail/tools/threads.js +254 -0
- package/dist/google/gmail/tools/threads.js.map +1 -0
- package/dist/google/index.d.ts +29 -1
- package/dist/google/index.d.ts.map +1 -1
- package/dist/google/index.js +29 -1
- package/dist/google/index.js.map +1 -1
- package/dist/google/sheets/index.d.ts +43 -0
- package/dist/google/sheets/index.d.ts.map +1 -0
- package/dist/google/sheets/index.js +53 -0
- package/dist/google/sheets/index.js.map +1 -0
- package/dist/google/sheets/prompts.d.ts +71 -0
- package/dist/google/sheets/prompts.d.ts.map +1 -0
- package/dist/google/sheets/prompts.js +171 -0
- package/dist/google/sheets/prompts.js.map +1 -0
- package/dist/google/sheets/resources.d.ts +49 -0
- package/dist/google/sheets/resources.d.ts.map +1 -0
- package/dist/google/sheets/resources.js +113 -0
- package/dist/google/sheets/resources.js.map +1 -0
- package/dist/google/sheets/tools/index.d.ts +1021 -0
- package/dist/google/sheets/tools/index.d.ts.map +1 -0
- package/dist/google/sheets/tools/index.js +99 -0
- package/dist/google/sheets/tools/index.js.map +1 -0
- package/dist/google/sheets/tools/manage.d.ts +104 -0
- package/dist/google/sheets/tools/manage.d.ts.map +1 -0
- package/dist/google/sheets/tools/manage.js +255 -0
- package/dist/google/sheets/tools/manage.js.map +1 -0
- package/dist/google/sheets/tools/read.d.ts +84 -0
- package/dist/google/sheets/tools/read.d.ts.map +1 -0
- package/dist/google/sheets/tools/read.js +204 -0
- package/dist/google/sheets/tools/read.js.map +1 -0
- package/dist/google/sheets/tools/write.d.ts +109 -0
- package/dist/google/sheets/tools/write.d.ts.map +1 -0
- package/dist/google/sheets/tools/write.js +205 -0
- package/dist/google/sheets/tools/write.js.map +1 -0
- package/dist/google/tasks/index.d.ts +28 -0
- package/dist/google/tasks/index.d.ts.map +1 -0
- package/dist/google/tasks/index.js +35 -0
- package/dist/google/tasks/index.js.map +1 -0
- package/dist/google/tasks/prompts.d.ts +71 -0
- package/dist/google/tasks/prompts.d.ts.map +1 -0
- package/dist/google/tasks/prompts.js +140 -0
- package/dist/google/tasks/prompts.js.map +1 -0
- package/dist/google/tasks/resources.d.ts +47 -0
- package/dist/google/tasks/resources.d.ts.map +1 -0
- package/dist/google/tasks/resources.js +128 -0
- package/dist/google/tasks/resources.js.map +1 -0
- package/dist/google/tasks/tools/index.d.ts +609 -0
- package/dist/google/tasks/tools/index.d.ts.map +1 -0
- package/dist/google/tasks/tools/index.js +95 -0
- package/dist/google/tasks/tools/index.js.map +1 -0
- package/dist/google/tasks/tools/lists.d.ts +61 -0
- package/dist/google/tasks/tools/lists.d.ts.map +1 -0
- package/dist/google/tasks/tools/lists.js +146 -0
- package/dist/google/tasks/tools/lists.js.map +1 -0
- package/dist/google/tasks/tools/tasks.d.ts +164 -0
- package/dist/google/tasks/tools/tasks.d.ts.map +1 -0
- package/dist/google/tasks/tools/tasks.js +368 -0
- package/dist/google/tasks/tools/tasks.js.map +1 -0
- package/dist/helpers.d.ts +35 -0
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +42 -0
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- 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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"}
|