artemys 0.3.2 → 0.3.3
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/CHANGELOG.md +37 -0
- package/README.md +14 -5
- package/dist/cli/config.js +1 -1
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +194 -20
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +9 -6
- package/dist/cli/init.js.map +1 -1
- package/dist/coffeeshop/client.d.ts +3 -8
- package/dist/coffeeshop/client.d.ts.map +1 -1
- package/dist/coffeeshop/client.js +40 -12
- package/dist/coffeeshop/client.js.map +1 -1
- package/dist/coffeeshop/index.d.ts +1 -1
- package/dist/coffeeshop/index.d.ts.map +1 -1
- package/dist/coffeeshop/index.js +1 -1
- package/dist/coffeeshop/index.js.map +1 -1
- package/dist/coffeeshop/schemas.d.ts +22 -16
- package/dist/coffeeshop/schemas.d.ts.map +1 -1
- package/dist/coffeeshop/schemas.js +21 -25
- package/dist/coffeeshop/schemas.js.map +1 -1
- package/dist/discovery/agent-card.schema.js +1 -1
- package/dist/discovery/agent-card.schema.js.map +1 -1
- package/dist/integrations/job-boards/jsonld.d.ts.map +1 -1
- package/dist/integrations/job-boards/jsonld.js +28 -0
- package/dist/integrations/job-boards/jsonld.js.map +1 -1
- package/dist/mcp-server/prompts.d.ts +20 -0
- package/dist/mcp-server/prompts.d.ts.map +1 -0
- package/dist/mcp-server/prompts.js +44 -0
- package/dist/mcp-server/prompts.js.map +1 -0
- package/dist/mcp-server/resources.d.ts +2 -1
- package/dist/mcp-server/resources.d.ts.map +1 -1
- package/dist/mcp-server/resources.js +15 -0
- package/dist/mcp-server/resources.js.map +1 -1
- package/dist/mcp-server/server.d.ts +1 -0
- package/dist/mcp-server/server.d.ts.map +1 -1
- package/dist/mcp-server/server.js +25 -0
- package/dist/mcp-server/server.js.map +1 -1
- package/dist/mcp-server/tools/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/index.js +2 -0
- package/dist/mcp-server/tools/index.js.map +1 -1
- package/dist/mcp-server/tools/resume.d.ts +3 -0
- package/dist/mcp-server/tools/resume.d.ts.map +1 -0
- package/dist/mcp-server/tools/resume.js +61 -0
- package/dist/mcp-server/tools/resume.js.map +1 -0
- package/dist/mcp-server/tools/talent.d.ts +9 -2
- package/dist/mcp-server/tools/talent.d.ts.map +1 -1
- package/dist/mcp-server/tools/talent.js +72 -6
- package/dist/mcp-server/tools/talent.js.map +1 -1
- package/dist/resume/parse-resume.d.ts.map +1 -1
- package/dist/resume/parse-resume.js +8 -1
- package/dist/resume/parse-resume.js.map +1 -1
- package/dist/resume/providers/anthropic.js +1 -1
- package/dist/resume/providers/anthropic.js.map +1 -1
- package/dist/resume/providers/google.js +1 -1
- package/dist/resume/providers/google.js.map +1 -1
- package/dist/resume/providers/openai.js +1 -1
- package/dist/resume/providers/openai.js.map +1 -1
- package/package.json +5 -1
- package/skills/artemys-talent/SKILL.md +258 -0
- package/skills/artemys-talent/references/TOOLS.md +479 -0
- package/skills/artemys-talent/scripts/setup.sh +88 -0
- package/dist/mcp-server/__tests__/test-fixtures.d.ts +0 -39
- package/dist/mcp-server/__tests__/test-fixtures.d.ts.map +0 -1
- package/dist/mcp-server/__tests__/test-fixtures.js +0 -87
- package/dist/mcp-server/__tests__/test-fixtures.js.map +0 -1
|
@@ -4,6 +4,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
|
|
5
5
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
6
6
|
import { SqliteMcpPersistence, createPersistentConversationTracker, createPersistentProfileStore, } from "./persistence.js";
|
|
7
|
+
import { registerMcpPrompts } from "./prompts.js";
|
|
7
8
|
import { registerMcpResources } from "./resources.js";
|
|
8
9
|
import { ConversationTracker, ProfileStore } from "./state.js";
|
|
9
10
|
import { registerMcpTools } from "./tools/index.js";
|
|
@@ -80,6 +81,7 @@ export function createArtemysMcpServer(options) {
|
|
|
80
81
|
capabilities: {
|
|
81
82
|
tools: { listChanged: true },
|
|
82
83
|
resources: { listChanged: true },
|
|
84
|
+
prompts: { listChanged: true },
|
|
83
85
|
},
|
|
84
86
|
instructions: "Artemys MCP server exposing protocol validation, discovery, messaging, and conversation state tools.",
|
|
85
87
|
});
|
|
@@ -92,6 +94,11 @@ export function createArtemysMcpServer(options) {
|
|
|
92
94
|
registerMcpResources(server, {
|
|
93
95
|
agentCard: options.agentCard,
|
|
94
96
|
tracker: state.tracker,
|
|
97
|
+
profileStore: state.profileStore,
|
|
98
|
+
});
|
|
99
|
+
registerMcpPrompts(server, {
|
|
100
|
+
profileStore: state.profileStore,
|
|
101
|
+
agentCard: options.agentCard,
|
|
95
102
|
});
|
|
96
103
|
return {
|
|
97
104
|
server,
|
|
@@ -141,7 +148,22 @@ export async function startArtemysMcpServer(options) {
|
|
|
141
148
|
closingSessions.delete(sessionId);
|
|
142
149
|
}
|
|
143
150
|
};
|
|
151
|
+
const expectedToken = options.token;
|
|
152
|
+
const checkAuth = (req, res) => {
|
|
153
|
+
if (!expectedToken) {
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
const authHeader = req.headers?.authorization;
|
|
157
|
+
if (typeof authHeader !== "string" || authHeader !== `Bearer ${expectedToken}`) {
|
|
158
|
+
res.status(401).send("Unauthorized");
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
return true;
|
|
162
|
+
};
|
|
144
163
|
app.get("/mcp", async (_req, res) => {
|
|
164
|
+
if (!checkAuth(_req, res)) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
145
167
|
let sessionId = null;
|
|
146
168
|
let session = null;
|
|
147
169
|
try {
|
|
@@ -170,6 +192,9 @@ export async function startArtemysMcpServer(options) {
|
|
|
170
192
|
}
|
|
171
193
|
});
|
|
172
194
|
app.post("/messages", async (req, res) => {
|
|
195
|
+
if (!checkAuth(req, res)) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
173
198
|
const sessionId = typeof req.query?.sessionId === "string"
|
|
174
199
|
? req.query.sessionId
|
|
175
200
|
: Array.isArray(req.query?.sessionId)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp-server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAGhF,OAAO,EACL,oBAAoB,EACpB,mCAAmC,EACnC,4BAA4B,GAC7B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,oBAAoB,EAAuB,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp-server/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAO1D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAM5E;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { registerDiscoveryTools } from "./discovery.js";
|
|
2
2
|
import { registerMessagingTools } from "./messaging.js";
|
|
3
3
|
import { registerProtocolTools } from "./protocol.js";
|
|
4
|
+
import { registerResumeTools } from "./resume.js";
|
|
4
5
|
import { registerTalentTools } from "./talent.js";
|
|
5
6
|
export function registerMcpTools(server, deps) {
|
|
6
7
|
registerDiscoveryTools(server, deps);
|
|
7
8
|
registerMessagingTools(server, deps);
|
|
8
9
|
registerProtocolTools(server, deps);
|
|
10
|
+
registerResumeTools(server, deps);
|
|
9
11
|
registerTalentTools(server, deps);
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,UAAU,gBAAgB,CAAC,MAAkB,EAAE,IAAiB;IACpE,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpC,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACnC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,UAAU,gBAAgB,CAAC,MAAkB,EAAE,IAAiB;IACpE,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpC,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACnC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACjC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/resume.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAI1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAyE/E"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { CandidateSnapshotSchema } from "../../protocol/index.js";
|
|
3
|
+
import { toToolResponse } from "./common.js";
|
|
4
|
+
import { updateProfile } from "./talent.js";
|
|
5
|
+
export function registerResumeTools(server, deps) {
|
|
6
|
+
server.registerTool("parse_resume", {
|
|
7
|
+
description: "Parse resume text into structured JSON. The host LLM should read the file and pass the text content here (MCP security boundary — tools do not read local files).",
|
|
8
|
+
inputSchema: {
|
|
9
|
+
resume_text: z.string().min(1),
|
|
10
|
+
provider: z.enum(["anthropic", "openai", "google"]),
|
|
11
|
+
api_key: z.string().min(1),
|
|
12
|
+
model: z.string().optional(),
|
|
13
|
+
},
|
|
14
|
+
}, async (args) => {
|
|
15
|
+
const resumeText = args.resume_text;
|
|
16
|
+
const provider = args.provider;
|
|
17
|
+
const apiKey = args.api_key;
|
|
18
|
+
const model = typeof args.model === "string" ? args.model : undefined;
|
|
19
|
+
const { parseResume } = await import("../../resume/index.js");
|
|
20
|
+
const result = await parseResume(resumeText, { provider, apiKey, model });
|
|
21
|
+
return toToolResponse(result);
|
|
22
|
+
});
|
|
23
|
+
server.registerTool("resume_to_profile", {
|
|
24
|
+
description: "Convert a parsed FullResume JSON into a candidate profile and anonymous CandidateCard. Stores the profile and optionally syncs to Coffee Shop.",
|
|
25
|
+
inputSchema: {
|
|
26
|
+
resume: z.record(z.string(), z.unknown()),
|
|
27
|
+
sync_agent_card: z.boolean().optional(),
|
|
28
|
+
},
|
|
29
|
+
}, async (args) => {
|
|
30
|
+
const { FullResumeSchema, toCard } = await import("../../resume/index.js");
|
|
31
|
+
const resume = FullResumeSchema.parse(args.resume);
|
|
32
|
+
const candidateCard = toCard(resume);
|
|
33
|
+
const snapshot = CandidateSnapshotSchema.parse({
|
|
34
|
+
display_name: resume.name,
|
|
35
|
+
skills: candidateCard.skills,
|
|
36
|
+
...(candidateCard.experience_years !== undefined && {
|
|
37
|
+
experience_years: candidateCard.experience_years,
|
|
38
|
+
}),
|
|
39
|
+
...(candidateCard.preferred_roles && { preferred_roles: candidateCard.preferred_roles }),
|
|
40
|
+
...(candidateCard.preferred_locations && {
|
|
41
|
+
preferred_locations: candidateCard.preferred_locations,
|
|
42
|
+
}),
|
|
43
|
+
...(candidateCard.salary_range && { salary_range: candidateCard.salary_range }),
|
|
44
|
+
...(candidateCard.remote_preference && {
|
|
45
|
+
remote_preference: candidateCard.remote_preference,
|
|
46
|
+
}),
|
|
47
|
+
...(candidateCard.availability && { availability: candidateCard.availability }),
|
|
48
|
+
});
|
|
49
|
+
const syncAgentCard = typeof args.sync_agent_card === "boolean" ? args.sync_agent_card : false;
|
|
50
|
+
const profileResult = await updateProfile(deps.coffeeShopClient, snapshot, {
|
|
51
|
+
profileStore: deps.profileStore,
|
|
52
|
+
agentCard: deps.agentCard,
|
|
53
|
+
syncAgentCard,
|
|
54
|
+
});
|
|
55
|
+
return toToolResponse({
|
|
56
|
+
...profileResult,
|
|
57
|
+
candidate_card: candidateCard,
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=resume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/resume.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type CandidateSnapshot } from "../../protocol/index.js";
|
|
2
2
|
import type { CoffeeShopClient } from "../../coffeeshop/index.js";
|
|
3
|
+
import type { JobSearchFilters } from "../../coffeeshop/schemas.js";
|
|
3
4
|
import type { McpToolDeps, ToolServer } from "./common.js";
|
|
4
|
-
export declare function searchOpportunities(client: CoffeeShopClient,
|
|
5
|
+
export declare function searchOpportunities(client: CoffeeShopClient, filters?: JobSearchFilters): Promise<{
|
|
5
6
|
total: number;
|
|
6
|
-
|
|
7
|
+
jobs: unknown[];
|
|
7
8
|
}>;
|
|
8
9
|
export declare function expressInterest(client: CoffeeShopClient, jobId: string, snapshot: Record<string, unknown>, reasoning?: string): Promise<unknown>;
|
|
9
10
|
export declare function updateProfile(client: CoffeeShopClient, snapshot: CandidateSnapshot, options?: {
|
|
@@ -17,5 +18,11 @@ export declare function updateProfile(client: CoffeeShopClient, snapshot: Candid
|
|
|
17
18
|
};
|
|
18
19
|
syncAgentCard?: boolean;
|
|
19
20
|
}): Promise<Record<string, unknown>>;
|
|
21
|
+
export declare function getMyApplications(client: CoffeeShopClient, options?: {
|
|
22
|
+
status?: string;
|
|
23
|
+
}): Promise<{
|
|
24
|
+
total: number;
|
|
25
|
+
applications: unknown[];
|
|
26
|
+
}>;
|
|
20
27
|
export declare function registerTalentTools(server: ToolServer, deps: McpToolDeps): void;
|
|
21
28
|
//# sourceMappingURL=talent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"talent.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/talent.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,2BAA2B,CAAA;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAS1D,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,EACxB,
|
|
1
|
+
{"version":3,"file":"talent.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/talent.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,2BAA2B,CAAA;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAS1D,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAG7C;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE;QAAE,UAAU,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;QAAC,UAAU,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAA;KAAE,CAAA;IACzG,SAAS,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAyClC;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAGrD;AAID,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CA4I/E"}
|
|
@@ -5,9 +5,9 @@ const UpdateProfileInputSchema = CandidateSnapshotSchema.extend({
|
|
|
5
5
|
sync_agent_card: z.boolean().optional(),
|
|
6
6
|
});
|
|
7
7
|
// --- Extracted plain functions ---
|
|
8
|
-
export async function searchOpportunities(client,
|
|
9
|
-
const
|
|
10
|
-
return { total:
|
|
8
|
+
export async function searchOpportunities(client, filters) {
|
|
9
|
+
const results = await client.searchJobs(filters);
|
|
10
|
+
return { total: results.length, jobs: results };
|
|
11
11
|
}
|
|
12
12
|
export async function expressInterest(client, jobId, snapshot, reasoning) {
|
|
13
13
|
return client.submitApplication(jobId, snapshot, reasoning);
|
|
@@ -49,16 +49,82 @@ export async function updateProfile(client, snapshot, options) {
|
|
|
49
49
|
}
|
|
50
50
|
return data;
|
|
51
51
|
}
|
|
52
|
+
export async function getMyApplications(client, options) {
|
|
53
|
+
const results = await client.getApplications(options ? { status: options.status } : undefined);
|
|
54
|
+
return { total: results.length, applications: results };
|
|
55
|
+
}
|
|
52
56
|
// --- MCP tool registration (thin adapters) ---
|
|
53
57
|
export function registerTalentTools(server, deps) {
|
|
58
|
+
server.registerTool("get_identity", {
|
|
59
|
+
description: "Get this agent's identity, capabilities, and hub connectivity status.",
|
|
60
|
+
inputSchema: {},
|
|
61
|
+
}, async () => {
|
|
62
|
+
const card = deps.agentCard;
|
|
63
|
+
const profile = deps.profileStore?.getProfile();
|
|
64
|
+
let hubReachable = false;
|
|
65
|
+
try {
|
|
66
|
+
const remote = await deps.coffeeShopClient.getCard(card.agent_id);
|
|
67
|
+
hubReachable = remote !== null;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
hubReachable = false;
|
|
71
|
+
}
|
|
72
|
+
return toToolResponse({
|
|
73
|
+
agent_id: card.agent_id,
|
|
74
|
+
display_name: card.display_name,
|
|
75
|
+
role: card.role,
|
|
76
|
+
capabilities: card.capabilities,
|
|
77
|
+
protocol_versions: card.protocol_versions,
|
|
78
|
+
hub_reachable: hubReachable,
|
|
79
|
+
has_profile: profile !== null,
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
server.registerTool("get_profile", {
|
|
83
|
+
description: "Get the currently stored candidate profile snapshot.",
|
|
84
|
+
inputSchema: {},
|
|
85
|
+
}, async () => {
|
|
86
|
+
const profile = deps.profileStore?.getProfile() ?? null;
|
|
87
|
+
return toToolResponse({
|
|
88
|
+
has_profile: profile !== null,
|
|
89
|
+
profile,
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
server.registerTool("get_my_applications", {
|
|
93
|
+
description: "List your submitted job applications, optionally filtered by status.",
|
|
94
|
+
inputSchema: {
|
|
95
|
+
status: z.enum(["pending", "reviewing", "accepted", "declined"]).optional(),
|
|
96
|
+
},
|
|
97
|
+
}, async (args) => {
|
|
98
|
+
const status = typeof args.status === "string" ? args.status : undefined;
|
|
99
|
+
const result = await getMyApplications(deps.coffeeShopClient, status ? { status } : undefined);
|
|
100
|
+
return toToolResponse(result);
|
|
101
|
+
});
|
|
54
102
|
server.registerTool("search_opportunities", {
|
|
55
|
-
description: "Search for
|
|
103
|
+
description: "Search for job opportunities via Coffee Shop hub. Optionally filter by skills, location, remote preference, and compensation range.",
|
|
56
104
|
inputSchema: {
|
|
105
|
+
skills: z.array(z.string()).optional(),
|
|
106
|
+
location: z.string().optional(),
|
|
107
|
+
remote: z.boolean().optional(),
|
|
108
|
+
min_compensation: z.number().optional(),
|
|
109
|
+
max_compensation: z.number().optional(),
|
|
57
110
|
limit: z.number().int().min(1).max(100).optional(),
|
|
58
111
|
},
|
|
59
112
|
}, async (args) => {
|
|
60
|
-
const
|
|
61
|
-
|
|
113
|
+
const filters = {};
|
|
114
|
+
if (Array.isArray(args.skills))
|
|
115
|
+
filters.skills = args.skills;
|
|
116
|
+
if (typeof args.location === "string")
|
|
117
|
+
filters.location = args.location;
|
|
118
|
+
if (typeof args.remote === "boolean")
|
|
119
|
+
filters.remote = args.remote;
|
|
120
|
+
if (typeof args.min_compensation === "number")
|
|
121
|
+
filters.min_compensation = args.min_compensation;
|
|
122
|
+
if (typeof args.max_compensation === "number")
|
|
123
|
+
filters.max_compensation = args.max_compensation;
|
|
124
|
+
if (typeof args.limit === "number")
|
|
125
|
+
filters.limit = args.limit;
|
|
126
|
+
const hasFilters = Object.keys(filters).length > 0;
|
|
127
|
+
const result = await searchOpportunities(deps.coffeeShopClient, hasFilters ? filters : undefined);
|
|
62
128
|
return toToolResponse(result);
|
|
63
129
|
});
|
|
64
130
|
server.registerTool("express_interest", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"talent.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/talent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,uBAAuB,EAA0B,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"talent.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/talent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-resume.d.ts","sourceRoot":"","sources":["../../src/resume/parse-resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-resume.d.ts","sourceRoot":"","sources":["../../src/resume/parse-resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAkFF,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,UAAU,CAAC,CA+DrB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FullResumeSchema, } from "../protocol/talent.schema.js";
|
|
2
|
+
const MAX_RESUME_TEXT_LENGTH = 100_000; // 100KB cap
|
|
2
3
|
const SCHEMA_DESCRIPTION = `{
|
|
3
4
|
"name": string (required),
|
|
4
5
|
"email": string email (required),
|
|
@@ -72,8 +73,14 @@ function extractJson(text) {
|
|
|
72
73
|
}
|
|
73
74
|
return text.trim();
|
|
74
75
|
}
|
|
76
|
+
// Note: The returned FullResume is LLM-generated output and should be treated
|
|
77
|
+
// as untrusted by callers — validate/sanitize before storing or displaying.
|
|
75
78
|
export async function parseResume(text, options) {
|
|
76
|
-
|
|
79
|
+
let resumeText = text;
|
|
80
|
+
if (resumeText.length > MAX_RESUME_TEXT_LENGTH) {
|
|
81
|
+
resumeText = resumeText.slice(0, MAX_RESUME_TEXT_LENGTH) + "\n\n[truncated]";
|
|
82
|
+
}
|
|
83
|
+
const prompt = buildPrompt(resumeText);
|
|
77
84
|
// Dynamically import the correct provider adapter
|
|
78
85
|
let callProvider;
|
|
79
86
|
switch (options.provider) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-resume.js","sourceRoot":"","sources":["../../src/resume/parse-resume.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAEjB,MAAM,8BAA8B,CAAC;AAQtC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CzB,CAAC;AAEH,SAAS,WAAW,CAAC,UAAkB;IACrC,OAAO;;;;;EAKP,kBAAkB;;;;;;;;;;;EAWlB,UAAU,EAAE,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,wCAAwC;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACnE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,OAA2B;IAE3B,MAAM,MAAM,GAAG,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"parse-resume.js","sourceRoot":"","sources":["../../src/resume/parse-resume.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export async function callProvider(prompt, apiKey, model = "claude-sonnet-4-5-20
|
|
|
14
14
|
});
|
|
15
15
|
if (!response.ok) {
|
|
16
16
|
const text = await response.text();
|
|
17
|
-
throw new Error(`Anthropic API error (${response.status}): ${text}`);
|
|
17
|
+
throw new Error(`Anthropic API error (${response.status}): ${text.slice(0, 500)}`);
|
|
18
18
|
}
|
|
19
19
|
const data = (await response.json());
|
|
20
20
|
const text = data.content?.[0]?.text;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/resume/providers/anthropic.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAAc,EACd,KAAK,GAAG,4BAA4B;IAEpC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CACrC,uCAAuC,EACvC;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,WAAW,EAAE,MAAM;YACnB,mBAAmB,EAAE,YAAY;YACjC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK;YACL,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC9C,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,CAAC,MAAM,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/resume/providers/anthropic.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAAc,EACd,KAAK,GAAG,4BAA4B;IAEpC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CACrC,uCAAuC,EACvC;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,WAAW,EAAE,MAAM;YACnB,mBAAmB,EAAE,YAAY;YACjC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK;YACL,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC9C,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAClE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAElC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACrC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -12,7 +12,7 @@ export async function callProvider(prompt, apiKey, model = "gemini-2.0-flash") {
|
|
|
12
12
|
});
|
|
13
13
|
if (!response.ok) {
|
|
14
14
|
const text = await response.text();
|
|
15
|
-
throw new Error(`Google AI API error (${response.status}): ${text}`);
|
|
15
|
+
throw new Error(`Google AI API error (${response.status}): ${text.slice(0, 500)}`);
|
|
16
16
|
}
|
|
17
17
|
const data = (await response.json());
|
|
18
18
|
const text = data.candidates?.[0]?.content?.parts?.[0]?.text;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../../src/resume/providers/google.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAAc,EACd,KAAK,GAAG,kBAAkB;IAE1B,MAAM,GAAG,GAAG,2DAA2D,kBAAkB,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAEnH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,gBAAgB,EAAE,MAAM;SACzB;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SAC1C,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,CAAC,MAAM,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../../src/resume/providers/google.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAAc,EACd,KAAK,GAAG,kBAAkB;IAE1B,MAAM,GAAG,GAAG,2DAA2D,kBAAkB,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAEnH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,gBAAgB,EAAE,MAAM;SACzB;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SAC1C,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAClE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAElC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IAC7D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -13,7 +13,7 @@ export async function callProvider(prompt, apiKey, model = "gpt-4o") {
|
|
|
13
13
|
});
|
|
14
14
|
if (!response.ok) {
|
|
15
15
|
const text = await response.text();
|
|
16
|
-
throw new Error(`OpenAI API error (${response.status}): ${text}`);
|
|
16
|
+
throw new Error(`OpenAI API error (${response.status}): ${text.slice(0, 500)}`);
|
|
17
17
|
}
|
|
18
18
|
const data = (await response.json());
|
|
19
19
|
const text = data.choices?.[0]?.message?.content;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/resume/providers/openai.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAAc,EACd,KAAK,GAAG,QAAQ;IAEhB,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CACrC,4CAA4C,EAC5C;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK;YACL,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7C,WAAW,EAAE,CAAC;SACf,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,CAAC,MAAM,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/resume/providers/openai.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAAc,EACd,KAAK,GAAG,QAAQ;IAEhB,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CACrC,4CAA4C,EAC5C;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK;YACL,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7C,WAAW,EAAE,CAAC;SACf,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC/D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAElC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "artemys",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "Open protocol and ecosystem for agent-to-agent career communication",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
"files": [
|
|
44
44
|
"dist/",
|
|
45
|
+
"skills/",
|
|
45
46
|
"README.md",
|
|
46
47
|
"CHANGELOG.md"
|
|
47
48
|
],
|
|
@@ -69,6 +70,9 @@
|
|
|
69
70
|
"mcp-server",
|
|
70
71
|
"openclaw"
|
|
71
72
|
],
|
|
73
|
+
"engines": {
|
|
74
|
+
"node": ">=22.0.0"
|
|
75
|
+
},
|
|
72
76
|
"author": "Artemys",
|
|
73
77
|
"license": "MIT",
|
|
74
78
|
"repository": {
|