formbro-mcp-server 1.0.1 → 1.0.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 +42 -24
- package/dist/index.js +58 -14
- package/dist/index.js.map +1 -1
- package/dist/services/api-client.d.ts +7 -0
- package/dist/services/api-client.d.ts.map +1 -1
- package/dist/services/api-client.js +113 -2
- package/dist/services/api-client.js.map +1 -1
- package/dist/services/idempotency.d.ts +6 -0
- package/dist/services/idempotency.d.ts.map +1 -0
- package/dist/services/idempotency.js +9 -0
- package/dist/services/idempotency.js.map +1 -0
- package/dist/tools/applications-extra.d.ts +3 -0
- package/dist/tools/applications-extra.d.ts.map +1 -0
- package/dist/tools/applications-extra.js +62 -0
- package/dist/tools/applications-extra.js.map +1 -0
- package/dist/tools/audit.d.ts +3 -0
- package/dist/tools/audit.d.ts.map +1 -0
- package/dist/tools/audit.js +34 -0
- package/dist/tools/audit.js.map +1 -0
- package/dist/tools/employers.d.ts.map +1 -1
- package/dist/tools/employers.js +17 -29
- package/dist/tools/employers.js.map +1 -1
- package/dist/tools/export.d.ts +3 -0
- package/dist/tools/export.d.ts.map +1 -0
- package/dist/tools/export.js +247 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/extract.d.ts +3 -0
- package/dist/tools/extract.d.ts.map +1 -0
- package/dist/tools/extract.js +208 -0
- package/dist/tools/extract.js.map +1 -0
- package/dist/tools/patch.d.ts +10 -0
- package/dist/tools/patch.d.ts.map +1 -0
- package/dist/tools/patch.js +276 -0
- package/dist/tools/patch.js.map +1 -0
- package/dist/tools/program-keys.d.ts +3 -0
- package/dist/tools/program-keys.d.ts.map +1 -0
- package/dist/tools/program-keys.js +13 -0
- package/dist/tools/program-keys.js.map +1 -0
- package/dist/tools/system.d.ts +3 -0
- package/dist/tools/system.d.ts.map +1 -0
- package/dist/tools/system.js +84 -0
- package/dist/tools/system.js.map +1 -0
- package/dist/tools/validate.d.ts +3 -0
- package/dist/tools/validate.d.ts.map +1 -0
- package/dist/tools/validate.js +68 -0
- package/dist/tools/validate.js.map +1 -0
- package/dist/tools/write.d.ts +4 -0
- package/dist/tools/write.d.ts.map +1 -0
- package/dist/tools/write.js +786 -0
- package/dist/tools/write.js.map +1 -0
- package/package.json +7 -3
- package/server.json +67 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { makeApiRequest, handleApiError } from "../services/api-client.js";
|
|
3
|
+
const GetMyAuditLogSchema = z.object({
|
|
4
|
+
from: z.string().optional().describe("Start datetime (ISO 8601, e.g. '2025-01-01T00:00:00Z'). Filter entries after this time."),
|
|
5
|
+
to: z.string().optional().describe("End datetime (ISO 8601). Filter entries before this time."),
|
|
6
|
+
action_filter: z.string().optional().describe("Filter by action prefix, e.g. 'agent.write', 'agent.read'."),
|
|
7
|
+
limit: z.number().min(1).max(200).default(50).describe("Max entries to return (1–200, default 50)."),
|
|
8
|
+
}).strict();
|
|
9
|
+
export function registerAuditTools(server) {
|
|
10
|
+
server.registerTool("get_my_audit_log", {
|
|
11
|
+
title: "Get My Audit Log",
|
|
12
|
+
description: "Retrieve audit log entries for the current API token. " +
|
|
13
|
+
"Filter by date range or action prefix (e.g. 'agent.write'). " +
|
|
14
|
+
"Useful for reviewing recent agent activity or debugging unexpected changes.",
|
|
15
|
+
inputSchema: GetMyAuditLogSchema.shape,
|
|
16
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
17
|
+
}, async ({ from, to, action_filter, limit }) => {
|
|
18
|
+
try {
|
|
19
|
+
const params = { limit: limit ?? 50 };
|
|
20
|
+
if (from)
|
|
21
|
+
params["from"] = from;
|
|
22
|
+
if (to)
|
|
23
|
+
params["to"] = to;
|
|
24
|
+
if (action_filter)
|
|
25
|
+
params["action_filter"] = action_filter;
|
|
26
|
+
const data = await makeApiRequest("/api/audit/my", "GET", undefined, params);
|
|
27
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3E,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yFAAyF,CAAC;IAC/H,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAC/F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAC3G,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CACrG,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,wDAAwD;YACxD,8DAA8D;YAC9D,6EAA6E;QAC/E,WAAW,EAAE,mBAAmB,CAAC,KAAK;QACtC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAA4B,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/D,IAAI,IAAI;gBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YAChC,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,aAAa;gBAAE,MAAM,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;YAE3D,MAAM,IAAI,GAAG,MAAM,cAAc,CAAU,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACtF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QACrF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"employers.d.ts","sourceRoot":"","sources":["../../src/tools/employers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"employers.d.ts","sourceRoot":"","sources":["../../src/tools/employers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2CpE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiN7D"}
|
package/dist/tools/employers.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
// Employer Tools for FormBro MCP Server
|
|
2
|
+
import { z } from "zod";
|
|
2
3
|
import { makeApiRequest, handleApiError } from "../services/api-client.js";
|
|
3
4
|
import { ListWithSearchSchema, IdWithFormatSchema } from "../schemas/common.js";
|
|
4
5
|
import { ResponseFormat, CHARACTER_LIMIT } from "../constants.js";
|
|
6
|
+
const ListEmployersSchema = ListWithSearchSchema.extend({
|
|
7
|
+
stream: z.enum(["hws", "lws", "ee"]).default("hws").describe("LMIA stream: 'hws' (High-Wage), 'lws' (Low-Wage), 'ee' (Express Entry). Employers are shared across streams."),
|
|
8
|
+
});
|
|
5
9
|
/**
|
|
6
10
|
* Format employer data as Markdown
|
|
7
11
|
*/
|
|
@@ -29,23 +33,6 @@ function formatEmployerMarkdown(employer) {
|
|
|
29
33
|
}
|
|
30
34
|
return lines.join("\n");
|
|
31
35
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Format employers list as Markdown
|
|
34
|
-
*/
|
|
35
|
-
function formatEmployersListMarkdown(employers, total, offset) {
|
|
36
|
-
const lines = [
|
|
37
|
-
"# Employers List",
|
|
38
|
-
"",
|
|
39
|
-
`Found ${total} employers (showing ${employers.length} from offset ${offset})`,
|
|
40
|
-
""
|
|
41
|
-
];
|
|
42
|
-
for (const employer of employers) {
|
|
43
|
-
lines.push(formatEmployerMarkdown(employer));
|
|
44
|
-
lines.push("---");
|
|
45
|
-
lines.push("");
|
|
46
|
-
}
|
|
47
|
-
return lines.join("\n");
|
|
48
|
-
}
|
|
49
36
|
/**
|
|
50
37
|
* Register employer tools with the MCP server
|
|
51
38
|
*/
|
|
@@ -71,7 +58,7 @@ Examples:
|
|
|
71
58
|
- "List all employers" -> params: {}
|
|
72
59
|
- "Find employer Tech Corp" -> params: { search: "Tech Corp" }
|
|
73
60
|
- "Get employers page 2" -> params: { offset: 20, limit: 20 }`,
|
|
74
|
-
inputSchema:
|
|
61
|
+
inputSchema: ListEmployersSchema,
|
|
75
62
|
annotations: {
|
|
76
63
|
readOnlyHint: true,
|
|
77
64
|
destructiveHint: false,
|
|
@@ -86,9 +73,9 @@ Examples:
|
|
|
86
73
|
};
|
|
87
74
|
if (params.search)
|
|
88
75
|
queryParams.search = params.search;
|
|
89
|
-
|
|
90
|
-
const employers =
|
|
91
|
-
const total =
|
|
76
|
+
// Use stream-specific URL (same as frontend: /lmia/${stream}/employers)
|
|
77
|
+
const employers = await makeApiRequest(`/api/lmia/${params.stream}/employers`, "GET", undefined, queryParams);
|
|
78
|
+
const total = employers.length;
|
|
92
79
|
if (!employers.length) {
|
|
93
80
|
return {
|
|
94
81
|
content: [{
|
|
@@ -103,14 +90,15 @@ Examples:
|
|
|
103
90
|
total,
|
|
104
91
|
count: employers.length,
|
|
105
92
|
offset: params.offset,
|
|
106
|
-
items: employers.map(e => ({
|
|
93
|
+
items: employers.map((e) => ({
|
|
107
94
|
id: e.id,
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
95
|
+
display_name: e.display_name,
|
|
96
|
+
legal_name: e.legal_name,
|
|
97
|
+
operating_name: e.operating_name,
|
|
98
|
+
cra_number: e.cra_number,
|
|
99
|
+
address: e.address,
|
|
100
|
+
contact_name: e.contact_name,
|
|
101
|
+
contact_phone: e.contact_phone,
|
|
114
102
|
})),
|
|
115
103
|
has_more: total > params.offset + employers.length,
|
|
116
104
|
...(total > params.offset + employers.length ? {
|
|
@@ -119,7 +107,7 @@ Examples:
|
|
|
119
107
|
};
|
|
120
108
|
let textContent;
|
|
121
109
|
if (params.response_format === ResponseFormat.MARKDOWN) {
|
|
122
|
-
textContent =
|
|
110
|
+
textContent = JSON.stringify(output, null, 2);
|
|
123
111
|
}
|
|
124
112
|
else {
|
|
125
113
|
textContent = JSON.stringify(output, null, 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"employers.js","sourceRoot":"","sources":["../../src/tools/employers.ts"],"names":[],"mappings":"AAAA,wCAAwC;
|
|
1
|
+
{"version":3,"file":"employers.js","sourceRoot":"","sources":["../../src/tools/employers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/tools/export.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgHpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiO3D"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { makeApiRequest, makeApiBinaryRequest, handleApiError } from "../services/api-client.js";
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Input Schemas
|
|
5
|
+
// ============================================================================
|
|
6
|
+
const ExportEntityExcelSchema = z.object({
|
|
7
|
+
entity_type: z.enum([
|
|
8
|
+
"tr_applicant",
|
|
9
|
+
"pr_applicant",
|
|
10
|
+
"sponsored_applicant",
|
|
11
|
+
"pr_applicant_renewal",
|
|
12
|
+
"sponsor_sps",
|
|
13
|
+
"sponsor_pgp",
|
|
14
|
+
"co_signer",
|
|
15
|
+
"lmia_employer",
|
|
16
|
+
"lmia_applicant",
|
|
17
|
+
"lmia_position",
|
|
18
|
+
]).describe("Entity type to export. " +
|
|
19
|
+
"TR: tr_applicant (requires program param). " +
|
|
20
|
+
"PR: pr_applicant | sponsored_applicant | pr_applicant_renewal | sponsor_sps | sponsor_pgp | co_signer. " +
|
|
21
|
+
"LMIA: lmia_employer | lmia_applicant | lmia_position."),
|
|
22
|
+
entity_id: z.string().describe("MongoDB ObjectId of the entity (person/applicant/employer record, NOT application_id)."),
|
|
23
|
+
program: z.string().optional().describe("TR program key — required when entity_type=tr_applicant. Values: sp-out | sp-in | wp-out | wp-in | visa-out | visa-in."),
|
|
24
|
+
language: z.enum(["en", "zh"]).default("en").describe("Export language: 'en' (default) or 'zh'."),
|
|
25
|
+
blank: z.boolean().default(false).describe("If true, returns a blank template for the entity type. Default false."),
|
|
26
|
+
}).strict();
|
|
27
|
+
const GetFormTemplateExcelSchema = z.object({
|
|
28
|
+
form_id: z.string().describe("Form config ID to fetch the blank template for (e.g. 'tr-visa-out-applicant', 'lmia-employer', 'pr-general-applicant'). Use list_programs to find valid form_ids."),
|
|
29
|
+
language: z.enum(["en", "zh"]).default("en").describe("Template language: 'en' (default) or 'zh'."),
|
|
30
|
+
}).strict();
|
|
31
|
+
const FillTrApplicationPdfSchema = z.object({
|
|
32
|
+
program: z.string().describe("TR program key (e.g. sp-out, wp-out, visa-out). Used to route to the correct PDF fill endpoint."),
|
|
33
|
+
application_id: z.string().describe("Application MongoDB ObjectId."),
|
|
34
|
+
forms: z.array(z.string()).describe("List of form numbers to fill. " +
|
|
35
|
+
"sp-out: ['0104','1294','5476','5645']. wp-out: ['1295','5476','5645']. " +
|
|
36
|
+
"visa-out: ['5257','5645']. visitor-record: ['1102']. sp-in: ['5709','5645']. wp-in: ['5710','5645']."),
|
|
37
|
+
}).strict();
|
|
38
|
+
const FillTrApplicationPdfAsyncSchema = z.object({
|
|
39
|
+
program: z.string().describe("TR program key (e.g. sp-out, wp-out, visa-out)."),
|
|
40
|
+
application_id: z.string().describe("Application MongoDB ObjectId."),
|
|
41
|
+
forms: z.array(z.string()).describe("List of form numbers to fill. " +
|
|
42
|
+
"sp-out: ['0104','1294','5476','5645']. wp-out: ['1295','5476','5645']. " +
|
|
43
|
+
"visa-out: ['5257','5645']. visitor-record: ['1102']. sp-in: ['5709','5645']. wp-in: ['5710','5645']."),
|
|
44
|
+
}).strict();
|
|
45
|
+
const GetPdfTaskStatusSchema = z.object({
|
|
46
|
+
task_id: z.string().describe("Task ID returned by fill_tr_application_pdf_async."),
|
|
47
|
+
}).strict();
|
|
48
|
+
const GetPdfTaskResultSchema = z.object({
|
|
49
|
+
task_id: z.string().describe("Task ID of a completed PDF fill task."),
|
|
50
|
+
}).strict();
|
|
51
|
+
const CheckTrPdfPreflightSchema = z.object({
|
|
52
|
+
program: z.string().describe("TR program key (e.g. sp-out, wp-out, visa-out)."),
|
|
53
|
+
application_id: z.string().describe("Application MongoDB ObjectId."),
|
|
54
|
+
forms: z.array(z.string()).describe("List of form numbers to preflight check. " +
|
|
55
|
+
"sp-out: ['0104','1294','5476','5645']. wp-out: ['1295','5476','5645']. " +
|
|
56
|
+
"visa-out: ['5257','5645']. visitor-record: ['1102']. sp-in: ['5709','5645']. wp-in: ['5710','5645']."),
|
|
57
|
+
}).strict();
|
|
58
|
+
const ExportApplicationForExtensionSchema = z.object({
|
|
59
|
+
program: z.enum(["tr", "pr", "lmia"]).describe("Program category: 'tr' for all TR programs (sp-out/wp-out/visa-out etc.), 'pr' for PR programs, 'lmia' for LMIA programs."),
|
|
60
|
+
application_id: z.string().describe("Application MongoDB ObjectId."),
|
|
61
|
+
}).strict();
|
|
62
|
+
// ============================================================================
|
|
63
|
+
// Helpers
|
|
64
|
+
// ============================================================================
|
|
65
|
+
function safeFilename(filename) {
|
|
66
|
+
return filename.replace(/[^\w.\-]+/g, "_");
|
|
67
|
+
}
|
|
68
|
+
function fileResourceResponse(file, fallbackFilename) {
|
|
69
|
+
const filename = safeFilename(file.filename ?? fallbackFilename);
|
|
70
|
+
return {
|
|
71
|
+
content: [
|
|
72
|
+
{
|
|
73
|
+
type: "resource",
|
|
74
|
+
resource: {
|
|
75
|
+
uri: `formbro://exports/${encodeURIComponent(filename)}`,
|
|
76
|
+
mimeType: file.contentType,
|
|
77
|
+
blob: file.data.toString("base64"),
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
structuredContent: {
|
|
82
|
+
filename,
|
|
83
|
+
content_type: file.contentType,
|
|
84
|
+
size_bytes: file.data.byteLength,
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// ============================================================================
|
|
89
|
+
// Tool Registration
|
|
90
|
+
// ============================================================================
|
|
91
|
+
export function registerExportTools(server) {
|
|
92
|
+
// 1. export_entity_excel
|
|
93
|
+
server.registerTool("export_entity_excel", {
|
|
94
|
+
title: "Export Entity to Excel",
|
|
95
|
+
description: "Export a person/employer entity as a filled Excel file. " +
|
|
96
|
+
"entity_type must be one of: tr_applicant, pr_applicant, sponsored_applicant, pr_applicant_renewal, " +
|
|
97
|
+
"sponsor_sps, sponsor_pgp, co_signer, lmia_employer, lmia_applicant, lmia_position. " +
|
|
98
|
+
"entity_id is the MongoDB ObjectId of the person/employer record itself — NOT the application_id. " +
|
|
99
|
+
"For tr_applicant, also pass program (e.g. sp-out, wp-out). " +
|
|
100
|
+
"To find entity_id, use get_application_persons first. " +
|
|
101
|
+
"Set blank=true to get an empty template without entity data.",
|
|
102
|
+
inputSchema: ExportEntityExcelSchema.shape,
|
|
103
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
104
|
+
}, async ({ entity_type, entity_id, language, blank, program }) => {
|
|
105
|
+
try {
|
|
106
|
+
const params = {
|
|
107
|
+
language: language ?? "en",
|
|
108
|
+
blank: blank ?? false,
|
|
109
|
+
};
|
|
110
|
+
if (program)
|
|
111
|
+
params.program = program;
|
|
112
|
+
const file = await makeApiBinaryRequest(`/api/exports/entity/${encodeURIComponent(entity_type)}/${encodeURIComponent(entity_id)}`, "GET", undefined, params);
|
|
113
|
+
return fileResourceResponse(file, `${entity_type}_${entity_id}.xlsx`);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
// 2. get_form_template_excel
|
|
120
|
+
server.registerTool("get_form_template_excel", {
|
|
121
|
+
title: "Get Blank Form Template Excel",
|
|
122
|
+
description: "Download a blank Excel template for a specific form config (e.g. 'tr-visa-out-applicant', 'lmia-employer'). " +
|
|
123
|
+
"form_id is the form config ID from list_programs (e.g. form_ids.applicant), not the IMM number. " +
|
|
124
|
+
"Use to provide a pre-formatted blank template for manual data entry.",
|
|
125
|
+
inputSchema: GetFormTemplateExcelSchema.shape,
|
|
126
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
127
|
+
}, async ({ form_id, language }) => {
|
|
128
|
+
try {
|
|
129
|
+
const file = await makeApiBinaryRequest(`/api/exports/template/${encodeURIComponent(form_id)}`, "GET", undefined, { language: language ?? "en" });
|
|
130
|
+
return fileResourceResponse(file, `${form_id}_template.xlsx`);
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
// 3. fill_tr_application_pdf
|
|
137
|
+
server.registerTool("fill_tr_application_pdf", {
|
|
138
|
+
title: "Fill TR Application PDF (Sync)",
|
|
139
|
+
description: "Synchronously fill TR immigration PDF forms for an application. " +
|
|
140
|
+
"Pass forms as list of IMM numbers (e.g. ['1294','5476']). " +
|
|
141
|
+
"Returns the generated PDF file, or a ZIP file when multiple forms are requested. " +
|
|
142
|
+
"For long-running fills, use fill_tr_application_pdf_async instead. " +
|
|
143
|
+
"Call check_tr_pdf_preflight first to verify the application is ready.",
|
|
144
|
+
inputSchema: FillTrApplicationPdfSchema.shape,
|
|
145
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
146
|
+
}, async ({ program, application_id, forms }) => {
|
|
147
|
+
try {
|
|
148
|
+
const file = await makeApiBinaryRequest(`/api/form-filling/tr/${encodeURIComponent(program)}/applications/${encodeURIComponent(application_id)}/fill-pdf`, "POST", { forms });
|
|
149
|
+
return fileResourceResponse(file, forms.length === 1 ? `IMM${forms[0]}.pdf` : `TR_Forms_${application_id}.zip`);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
// 4. fill_tr_application_pdf_async
|
|
156
|
+
server.registerTool("fill_tr_application_pdf_async", {
|
|
157
|
+
title: "Fill TR Application PDF (Async)",
|
|
158
|
+
description: "Start an asynchronous TR PDF fill job for an application. " +
|
|
159
|
+
"Returns a task_id immediately without waiting for completion. " +
|
|
160
|
+
"Poll get_pdf_task_status until status is 'completed' or 'failed', " +
|
|
161
|
+
"then call get_pdf_task_result to retrieve the download information. " +
|
|
162
|
+
"Prefer this over fill_tr_application_pdf for large or complex forms.",
|
|
163
|
+
inputSchema: FillTrApplicationPdfAsyncSchema.shape,
|
|
164
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
165
|
+
}, async ({ program, application_id, forms }) => {
|
|
166
|
+
try {
|
|
167
|
+
const data = await makeApiRequest(`/api/form-filling/tr/${encodeURIComponent(program)}/applications/${encodeURIComponent(application_id)}/fill-pdf-async`, "POST", { forms });
|
|
168
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
// 5. get_pdf_task_status
|
|
175
|
+
server.registerTool("get_pdf_task_status", {
|
|
176
|
+
title: "Get PDF Fill Task Status",
|
|
177
|
+
description: "Poll the status of an async TR PDF fill task started by fill_tr_application_pdf_async. " +
|
|
178
|
+
"Returns status (pending|running|completed|failed) and progress information. " +
|
|
179
|
+
"Call repeatedly until status is 'completed' or 'failed', " +
|
|
180
|
+
"then call get_pdf_task_result to retrieve the download link.",
|
|
181
|
+
inputSchema: GetPdfTaskStatusSchema.shape,
|
|
182
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
183
|
+
}, async ({ task_id }) => {
|
|
184
|
+
try {
|
|
185
|
+
const data = await makeApiRequest(`/api/form-filling/tr/pdf-status/${encodeURIComponent(task_id)}`, "GET");
|
|
186
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
// 6. get_pdf_task_result
|
|
193
|
+
server.registerTool("get_pdf_task_result", {
|
|
194
|
+
title: "Get PDF Fill Task Result",
|
|
195
|
+
description: "Retrieve the result of a completed async TR PDF fill task. " +
|
|
196
|
+
"Returns the generated PDF file, or a ZIP file when multiple forms were requested. " +
|
|
197
|
+
"Only call after get_pdf_task_status returns status 'completed'. " +
|
|
198
|
+
"If status is 'failed', check get_pdf_task_status for the error details.",
|
|
199
|
+
inputSchema: GetPdfTaskResultSchema.shape,
|
|
200
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
201
|
+
}, async ({ task_id }) => {
|
|
202
|
+
try {
|
|
203
|
+
const file = await makeApiBinaryRequest(`/api/form-filling/tr/pdf-result/${encodeURIComponent(task_id)}`, "GET");
|
|
204
|
+
return fileResourceResponse(file, `tr-pdf-task-${task_id}.zip`);
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
// 7. check_tr_pdf_preflight
|
|
211
|
+
server.registerTool("check_tr_pdf_preflight", {
|
|
212
|
+
title: "Check TR PDF Preflight",
|
|
213
|
+
description: "Run a preflight check before filling a TR PDF form for an application. " +
|
|
214
|
+
"Returns a list of missing or invalid fields that would block PDF generation. " +
|
|
215
|
+
"Use before fill_tr_application_pdf or fill_tr_application_pdf_async " +
|
|
216
|
+
"to avoid fill failures and identify required data gaps.",
|
|
217
|
+
inputSchema: CheckTrPdfPreflightSchema.shape,
|
|
218
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
219
|
+
}, async ({ program, application_id, forms }) => {
|
|
220
|
+
try {
|
|
221
|
+
const data = await makeApiRequest(`/api/form-filling/tr/${encodeURIComponent(program)}/applications/${encodeURIComponent(application_id)}/fill-pdf-check`, "POST", { forms });
|
|
222
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
// 8. export_application_for_extension
|
|
229
|
+
server.registerTool("export_application_for_extension", {
|
|
230
|
+
title: "Export Application for Chrome Extension",
|
|
231
|
+
description: "Export an application's data payload for the FormBro Chrome Extension filler. " +
|
|
232
|
+
"Contains encrypted RCIC credentials — sensitive field redaction middleware applies automatically for fb_xxx tokens. " +
|
|
233
|
+
"Use when preparing an application package to be consumed by the browser extension for portal auto-fill. " +
|
|
234
|
+
"Do NOT expose the raw output to end users; treat the response as confidential.",
|
|
235
|
+
inputSchema: ExportApplicationForExtensionSchema.shape,
|
|
236
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
237
|
+
}, async ({ program, application_id }) => {
|
|
238
|
+
try {
|
|
239
|
+
const data = await makeApiRequest(`/api/extension/export/${encodeURIComponent(program)}/${encodeURIComponent(application_id)}`, "GET");
|
|
240
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/tools/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/tools/extract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyDpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmN5D"}
|