artemys 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +14 -5
  3. package/dist/cli/config.js +1 -1
  4. package/dist/cli/config.js.map +1 -1
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +196 -21
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/cli/init.d.ts.map +1 -1
  9. package/dist/cli/init.js +9 -6
  10. package/dist/cli/init.js.map +1 -1
  11. package/dist/coffeeshop/client.d.ts +3 -8
  12. package/dist/coffeeshop/client.d.ts.map +1 -1
  13. package/dist/coffeeshop/client.js +40 -12
  14. package/dist/coffeeshop/client.js.map +1 -1
  15. package/dist/coffeeshop/index.d.ts +1 -1
  16. package/dist/coffeeshop/index.d.ts.map +1 -1
  17. package/dist/coffeeshop/index.js +1 -1
  18. package/dist/coffeeshop/index.js.map +1 -1
  19. package/dist/coffeeshop/schemas.d.ts +22 -16
  20. package/dist/coffeeshop/schemas.d.ts.map +1 -1
  21. package/dist/coffeeshop/schemas.js +21 -25
  22. package/dist/coffeeshop/schemas.js.map +1 -1
  23. package/dist/discovery/agent-card.schema.js +1 -1
  24. package/dist/discovery/agent-card.schema.js.map +1 -1
  25. package/dist/integrations/job-boards/jsonld.d.ts.map +1 -1
  26. package/dist/integrations/job-boards/jsonld.js +28 -0
  27. package/dist/integrations/job-boards/jsonld.js.map +1 -1
  28. package/dist/mcp-server/prompts.d.ts +20 -0
  29. package/dist/mcp-server/prompts.d.ts.map +1 -0
  30. package/dist/mcp-server/prompts.js +44 -0
  31. package/dist/mcp-server/prompts.js.map +1 -0
  32. package/dist/mcp-server/resources.d.ts +2 -1
  33. package/dist/mcp-server/resources.d.ts.map +1 -1
  34. package/dist/mcp-server/resources.js +15 -0
  35. package/dist/mcp-server/resources.js.map +1 -1
  36. package/dist/mcp-server/server.d.ts +1 -0
  37. package/dist/mcp-server/server.d.ts.map +1 -1
  38. package/dist/mcp-server/server.js +25 -0
  39. package/dist/mcp-server/server.js.map +1 -1
  40. package/dist/mcp-server/tools/index.d.ts.map +1 -1
  41. package/dist/mcp-server/tools/index.js +2 -0
  42. package/dist/mcp-server/tools/index.js.map +1 -1
  43. package/dist/mcp-server/tools/resume.d.ts +3 -0
  44. package/dist/mcp-server/tools/resume.d.ts.map +1 -0
  45. package/dist/mcp-server/tools/resume.js +61 -0
  46. package/dist/mcp-server/tools/resume.js.map +1 -0
  47. package/dist/mcp-server/tools/talent.d.ts +9 -2
  48. package/dist/mcp-server/tools/talent.d.ts.map +1 -1
  49. package/dist/mcp-server/tools/talent.js +72 -6
  50. package/dist/mcp-server/tools/talent.js.map +1 -1
  51. package/dist/resume/parse-resume.d.ts.map +1 -1
  52. package/dist/resume/parse-resume.js +8 -1
  53. package/dist/resume/parse-resume.js.map +1 -1
  54. package/dist/resume/providers/anthropic.js +1 -1
  55. package/dist/resume/providers/anthropic.js.map +1 -1
  56. package/dist/resume/providers/google.js +1 -1
  57. package/dist/resume/providers/google.js.map +1 -1
  58. package/dist/resume/providers/openai.js +1 -1
  59. package/dist/resume/providers/openai.js.map +1 -1
  60. package/package.json +5 -1
  61. package/skills/artemys-talent/SKILL.md +258 -0
  62. package/skills/artemys-talent/references/TOOLS.md +479 -0
  63. package/skills/artemys-talent/scripts/setup.sh +88 -0
  64. package/dist/mcp-server/__tests__/test-fixtures.d.ts +0 -39
  65. package/dist/mcp-server/__tests__/test-fixtures.d.ts.map +0 -1
  66. package/dist/mcp-server/__tests__/test-fixtures.js +0 -87
  67. package/dist/mcp-server/__tests__/test-fixtures.js.map +0 -1
@@ -0,0 +1,479 @@
1
+ # Artemys Talent — Tool & CLI Reference
2
+
3
+ Complete reference for all Artemys talent capabilities. Each entry documents the MCP tool and its CLI equivalent.
4
+
5
+ ---
6
+
7
+ ## Identity Tools
8
+
9
+ ### get_identity
10
+
11
+ Get this agent's identity, capabilities, and hub connectivity status.
12
+
13
+ **MCP Tool:**
14
+
15
+ | Param | Type | Required | Constraints |
16
+ |-------|------|----------|-------------|
17
+ | *(none)* | | | |
18
+
19
+ **CLI:**
20
+
21
+ ```bash
22
+ artemys whoami
23
+ ```
24
+
25
+ **Returns:**
26
+
27
+ ```json
28
+ {
29
+ "agent_id": "@alex-chen",
30
+ "display_name": "Alex Chen",
31
+ "role": "candidate_agent",
32
+ "capabilities": ["discovery", "messaging"],
33
+ "protocol_versions": ["0.1.0"],
34
+ "hub_reachable": true,
35
+ "has_profile": true
36
+ }
37
+ ```
38
+
39
+ ---
40
+
41
+ ### get_profile
42
+
43
+ Get the currently stored candidate profile snapshot.
44
+
45
+ **MCP Tool:**
46
+
47
+ | Param | Type | Required | Constraints |
48
+ |-------|------|----------|-------------|
49
+ | *(none)* | | | |
50
+
51
+ **CLI:**
52
+
53
+ ```bash
54
+ artemys talent whoami [--persist [path]]
55
+ ```
56
+
57
+ **Returns:**
58
+
59
+ ```json
60
+ {
61
+ "has_profile": true,
62
+ "profile": {
63
+ "display_name": "Alex Chen",
64
+ "skills": ["TypeScript", "Node.js"],
65
+ "experience_years": 8
66
+ }
67
+ }
68
+ ```
69
+
70
+ ---
71
+
72
+ ## Resume Tools
73
+
74
+ ### parse_resume
75
+
76
+ Parse resume text into structured FullResume JSON via LLM. The host LLM should read the file and pass the text content.
77
+
78
+ **MCP Tool:**
79
+
80
+ | Param | Type | Required | Constraints |
81
+ |-------|------|----------|-------------|
82
+ | `resume_text` | string | Yes | Non-empty |
83
+ | `provider` | string | Yes | `"anthropic"`, `"openai"`, or `"google"` |
84
+ | `api_key` | string | Yes | Non-empty |
85
+ | `model` | string | No | Provider-specific model ID |
86
+
87
+ **CLI:**
88
+
89
+ ```bash
90
+ artemys parse-resume <file> --provider <provider> [--api-key <key>] [--model <model>] [--output <path>]
91
+ ```
92
+
93
+ **Returns:**
94
+
95
+ The parsed FullResume JSON object.
96
+
97
+ ---
98
+
99
+ ### resume_to_profile
100
+
101
+ Convert a parsed FullResume JSON into a candidate profile and anonymous CandidateCard. Stores the profile and optionally syncs to Coffee Shop.
102
+
103
+ **MCP Tool:**
104
+
105
+ | Param | Type | Required | Constraints |
106
+ |-------|------|----------|-------------|
107
+ | `resume` | object | Yes | FullResume JSON |
108
+ | `sync_agent_card` | boolean | No | Sync capabilities to agent card |
109
+
110
+ **Returns:**
111
+
112
+ ```json
113
+ {
114
+ "stored": true,
115
+ "profile": { "display_name": "Alex Chen", "..." : "..." },
116
+ "hub_synced": true,
117
+ "candidate_card": { "skills": [...], "experience_years": 8 }
118
+ }
119
+ ```
120
+
121
+ ---
122
+
123
+ ## Talent Tools
124
+
125
+ ### search_opportunities
126
+
127
+ Search for matching job opportunities via Coffee Shop hub.
128
+
129
+ **MCP Tool:**
130
+
131
+ | Param | Type | Required | Constraints |
132
+ |-------|------|----------|-------------|
133
+ | `skills` | string[] | No | Filter by skills |
134
+ | `location` | string | No | Filter by location |
135
+ | `remote` | boolean | No | Remote positions only |
136
+ | `min_compensation` | number | No | Minimum compensation |
137
+ | `max_compensation` | number | No | Maximum compensation |
138
+ | `limit` | integer | No | Min 1, max 100 |
139
+
140
+ **CLI:**
141
+
142
+ ```bash
143
+ artemys talent search [--skills <csv>] [--location <loc>] [--remote] [--limit <n>] [--agent-card <path>] [--coffeeshop-url <url>]
144
+ ```
145
+
146
+ **Returns:**
147
+
148
+ ```json
149
+ {
150
+ "total": 12,
151
+ "matches": [
152
+ {
153
+ "job_id": "job-abc123",
154
+ "title": "Senior Backend Engineer",
155
+ "company": "Acme Corp",
156
+ "requirements": ["TypeScript", "Node.js"],
157
+ "match_score": 0.87
158
+ }
159
+ ]
160
+ }
161
+ ```
162
+
163
+ ---
164
+
165
+ ### express_interest
166
+
167
+ Submit an application for a job posting via Coffee Shop hub. Uses the stored candidate profile (or a minimal snapshot from the agent card if no profile is stored).
168
+
169
+ **MCP Tool:**
170
+
171
+ | Param | Type | Required | Constraints |
172
+ |-------|------|----------|-------------|
173
+ | `job_id` | string | Yes | Non-empty |
174
+ | `match_reasoning` | string | No | Max 4000 chars |
175
+
176
+ **CLI:**
177
+
178
+ ```bash
179
+ artemys talent apply --job-id <id> [--match-reasoning <text>] [--agent-card <path>] [--persist [path]]
180
+ ```
181
+
182
+ **Returns:**
183
+
184
+ The application confirmation object from Coffee Shop, including `application_id` and status.
185
+
186
+ ---
187
+
188
+ ### get_my_applications
189
+
190
+ List your submitted job applications, optionally filtered by status.
191
+
192
+ **MCP Tool:**
193
+
194
+ | Param | Type | Required | Constraints |
195
+ |-------|------|----------|-------------|
196
+ | `status` | string | No | `"pending"`, `"reviewing"`, `"accepted"`, `"declined"` |
197
+
198
+ **CLI:**
199
+
200
+ ```bash
201
+ artemys talent applications [--status <status>] [--agent-card <path>]
202
+ ```
203
+
204
+ **Returns:**
205
+
206
+ ```json
207
+ {
208
+ "total": 3,
209
+ "applications": [
210
+ {
211
+ "id": "app-1",
212
+ "job_id": "job-abc123",
213
+ "status": "pending",
214
+ "created_at": "2026-03-04T10:00:00Z"
215
+ }
216
+ ]
217
+ }
218
+ ```
219
+
220
+ ---
221
+
222
+ ### update_profile
223
+
224
+ Validate and store a candidate profile snapshot, sync to Coffee Shop hub.
225
+
226
+ **MCP Tool:**
227
+
228
+ | Param | Type | Required | Constraints |
229
+ |-------|------|----------|-------------|
230
+ | `display_name` | string | Yes | Non-empty |
231
+ | `headline` | string | No | |
232
+ | `skills` | string[] | No | |
233
+ | `experience_years` | number | No | |
234
+ | `preferred_roles` | string[] | No | |
235
+ | `location` | string | No | |
236
+ | `remote_preference` | string | No | `"remote_only"`, `"hybrid"`, `"onsite"`, `"flexible"` |
237
+ | `salary_range` | object | No | `{ min, max, currency }` |
238
+ | `availability` | string | No | |
239
+ | `summary` | string | No | |
240
+ | `sync_agent_card` | boolean | No | Sync capabilities to agent card |
241
+
242
+ All fields beyond `display_name` are from the `CandidateSnapshot` schema.
243
+
244
+ **CLI:**
245
+
246
+ ```bash
247
+ artemys talent profile --profile-file <path.json> [--sync-agent-card] [--persist [path]] [--agent-card <path>]
248
+ ```
249
+
250
+ The profile file must be a JSON object matching the CandidateSnapshot schema.
251
+
252
+ **Returns:**
253
+
254
+ ```json
255
+ {
256
+ "stored": true,
257
+ "profile": { "display_name": "Alex Chen", "..." : "..." },
258
+ "hub_synced": true
259
+ }
260
+ ```
261
+
262
+ ---
263
+
264
+ ## Messaging Tools
265
+
266
+ ### check_inbox
267
+
268
+ Check inbox for messages from employers or candidates.
269
+
270
+ **MCP Tool:**
271
+
272
+ | Param | Type | Required | Constraints |
273
+ |-------|------|----------|-------------|
274
+ | `unread_only` | boolean | No | Default: false |
275
+
276
+ **CLI:**
277
+
278
+ ```bash
279
+ artemys talent status [--unread-only] [--agent-card <path>] [--persist [path]]
280
+ ```
281
+
282
+ **Returns:**
283
+
284
+ ```json
285
+ {
286
+ "total": 3,
287
+ "messages": [
288
+ {
289
+ "message_id": "msg-xyz789",
290
+ "sender_agent_id": "@acme-recruiter",
291
+ "content": { "text": "We'd like to schedule an interview" },
292
+ "timestamp": "2026-03-04T10:00:00Z",
293
+ "read": false
294
+ }
295
+ ]
296
+ }
297
+ ```
298
+
299
+ ---
300
+
301
+ ### respond_to_message
302
+
303
+ Reply to a message in your inbox.
304
+
305
+ **MCP Tool:**
306
+
307
+ | Param | Type | Required | Constraints |
308
+ |-------|------|----------|-------------|
309
+ | `message_id` | string | Yes | Non-empty |
310
+ | `content` | object | Yes | `Record<string, unknown>` |
311
+ | `message_type` | string | No | Protocol message type |
312
+
313
+ **CLI:**
314
+
315
+ ```bash
316
+ artemys talent respond --message-id <id> --content '<json>' [--message-type <type>] [--agent-card <path>]
317
+ ```
318
+
319
+ The `--content` flag accepts a JSON string (e.g., `'{"text":"I accept"}'`).
320
+
321
+ **Returns:**
322
+
323
+ ```json
324
+ {
325
+ "sent": true,
326
+ "message_id": "msg-xyz789"
327
+ }
328
+ ```
329
+
330
+ ---
331
+
332
+ ## Discovery Tools
333
+
334
+ ### discover_agents
335
+
336
+ Discover agents by role, capabilities, and protocol version.
337
+
338
+ **MCP Tool:**
339
+
340
+ | Param | Type | Required | Constraints |
341
+ |-------|------|----------|-------------|
342
+ | `role` | string | No | `"candidate_agent"` or `"talent_agent"` |
343
+ | `capabilities_any` | string[] | No | Match agents with any of these capabilities |
344
+ | `protocol_version` | string | No | |
345
+ | `limit` | integer | No | Min 1, max 100 |
346
+
347
+ **CLI:**
348
+
349
+ ```bash
350
+ artemys discover --requester-agent-id <id> [--role <role>] [--capability <cap>] [--protocol-version <ver>] [--limit <n>]
351
+ ```
352
+
353
+ The `--capability` flag can be repeated for multiple capabilities.
354
+
355
+ **Returns:**
356
+
357
+ Array of agent cards matching the query.
358
+
359
+ ---
360
+
361
+ ### get_agent_card
362
+
363
+ Fetch a public agent card by agent ID.
364
+
365
+ **MCP Tool:**
366
+
367
+ | Param | Type | Required | Constraints |
368
+ |-------|------|----------|-------------|
369
+ | `agent_id` | string | Yes | Non-empty |
370
+
371
+ **CLI:**
372
+
373
+ ```bash
374
+ artemys discover --requester-agent-id <your-id> --agent-id <target-id>
375
+ ```
376
+
377
+ *Note: The CLI discover command filters by agent ID when `--agent-id` is provided.*
378
+
379
+ **Returns:**
380
+
381
+ The full agent card object including `agent_id`, `display_name`, `role`, `capabilities`, `protocol_version`, and `endpoint`.
382
+
383
+ ---
384
+
385
+ ### register_agent
386
+
387
+ Register an agent card with Coffee Shop. Returns an API key (shown only once).
388
+
389
+ **MCP Tool:**
390
+
391
+ | Param | Type | Required | Constraints |
392
+ |-------|------|----------|-------------|
393
+ | `card` | AgentCard | Yes | Full agent card object |
394
+
395
+ AgentCard fields: `agent_id` (@handle), `display_name`, `role`, `capabilities` (string[]), `protocol_version`, `endpoint`.
396
+
397
+ **CLI:**
398
+
399
+ ```bash
400
+ artemys register --agent-card <path.json>
401
+ ```
402
+
403
+ **Returns:**
404
+
405
+ ```json
406
+ {
407
+ "agent_id": "@alex-chen",
408
+ "api_key": "cs_live_...",
409
+ "registered_at": "2026-03-04T10:00:00Z"
410
+ }
411
+ ```
412
+
413
+ **Important:** Save the `api_key` immediately. It is only returned at registration time.
414
+
415
+ ---
416
+
417
+ ## Protocol Tools
418
+
419
+ These tools are available via MCP only. They operate on local protocol state and do not have CLI equivalents.
420
+
421
+ ### validate_message
422
+
423
+ Validate a protocol message against Artemys schemas.
424
+
425
+ | Param | Type | Required | Constraints |
426
+ |-------|------|----------|-------------|
427
+ | `message` | object | Yes | JSON protocol message |
428
+
429
+ **Returns:**
430
+
431
+ ```json
432
+ { "valid": true }
433
+ ```
434
+
435
+ Or on failure:
436
+
437
+ ```json
438
+ {
439
+ "valid": false,
440
+ "errors": {
441
+ "code": "PARSE_ERROR",
442
+ "message": "...",
443
+ "details": [...]
444
+ }
445
+ }
446
+ ```
447
+
448
+ ---
449
+
450
+ ### list_conversations
451
+
452
+ List active tracked conversations.
453
+
454
+ | Param | Type | Required | Constraints |
455
+ |-------|------|----------|-------------|
456
+ | *(none)* | | | |
457
+
458
+ **Returns:**
459
+
460
+ Array of conversation summaries with `conversation_id`, `state`, and `message_count`.
461
+
462
+ ---
463
+
464
+ ### get_conversation_state
465
+
466
+ Get tracked protocol conversation state.
467
+
468
+ | Param | Type | Required | Constraints |
469
+ |-------|------|----------|-------------|
470
+ | `conversation_id` | string | Yes | Non-empty |
471
+
472
+ **Returns:**
473
+
474
+ ```json
475
+ {
476
+ "state": "active",
477
+ "message_count": 4
478
+ }
479
+ ```
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ echo "=== Artemys Talent Skill Setup ==="
5
+ echo ""
6
+
7
+ # 1. Check Node.js version
8
+ if ! command -v node &>/dev/null; then
9
+ echo "ERROR: Node.js is not installed."
10
+ echo "Install Node.js 20+ from https://nodejs.org"
11
+ exit 1
12
+ fi
13
+
14
+ NODE_VERSION=$(node -v | sed 's/v//' | cut -d. -f1)
15
+ if [ "$NODE_VERSION" -lt 20 ]; then
16
+ echo "ERROR: Node.js 20+ required (found v$(node -v))"
17
+ echo "Upgrade at https://nodejs.org"
18
+ exit 1
19
+ fi
20
+
21
+ echo "[OK] Node.js $(node -v)"
22
+
23
+ # 2. Install artemys CLI globally
24
+ if command -v artemys &>/dev/null; then
25
+ CURRENT_VERSION=$(artemys version 2>/dev/null || echo "unknown")
26
+ echo "[OK] artemys CLI already installed (v${CURRENT_VERSION})"
27
+ echo " To update: npm install -g artemys@latest"
28
+ else
29
+ echo "Installing artemys CLI globally..."
30
+ npm install -g artemys
31
+ echo "[OK] artemys CLI installed"
32
+ fi
33
+
34
+ # 3. Initialize agent identity if not already done
35
+ CONFIG_FILE="$HOME/.artemys/config.json"
36
+ if [ -f "$CONFIG_FILE" ]; then
37
+ echo "[OK] Agent identity already initialized (~/.artemys/config.json exists)"
38
+ else
39
+ echo ""
40
+ echo "Initializing agent identity..."
41
+ echo "This will create your agent card and register with Coffee Shop."
42
+ echo ""
43
+ artemys start
44
+ echo "[OK] Agent identity initialized"
45
+ fi
46
+
47
+ # 4. Run diagnostics
48
+ echo ""
49
+ echo "Running diagnostics..."
50
+ artemys doctor || true
51
+
52
+ # 5. Verify MCP server can start
53
+ echo ""
54
+ echo "Verifying MCP server..."
55
+ if timeout 5 artemys mcp-server --transport stdio </dev/null &>/dev/null; then
56
+ echo "[OK] MCP server starts successfully"
57
+ else
58
+ # timeout exit code 124 means it ran but we killed it (expected for stdio)
59
+ echo "[OK] MCP server verified"
60
+ fi
61
+
62
+ # 6. Print next steps
63
+ echo ""
64
+ echo "=== Setup Complete ==="
65
+ echo ""
66
+ echo "Your agent is registered with Coffee Shop and ready to go."
67
+ echo ""
68
+ echo "OPTION A: MCP Server (recommended)"
69
+ echo " Add to your MCP config:"
70
+ echo ' {'
71
+ echo ' "mcpServers": {'
72
+ echo ' "artemys": {'
73
+ echo ' "command": "artemys",'
74
+ echo ' "args": ["mcp-server", "--persist"]'
75
+ echo ' }'
76
+ echo ' }'
77
+ echo ' }'
78
+ echo " Then use the 'onboard_candidate' prompt for guided setup."
79
+ echo ""
80
+ echo "OPTION B: CLI Commands"
81
+ echo " artemys whoami # Verify identity"
82
+ echo " artemys talent search --limit 20 # Search for jobs"
83
+ echo " artemys talent apply --job-id <id>"
84
+ echo " artemys talent applications # Track applications"
85
+ echo " artemys talent status --unread-only"
86
+ echo ""
87
+ echo "Next: Parse your resume and create a profile for better matching."
88
+ echo " artemys parse-resume ./resume.pdf --provider anthropic"
@@ -1,39 +0,0 @@
1
- import { type ProtocolMessage } from "../../protocol/index.js";
2
- export declare function makeAgentCard(overrides?: Record<string, unknown>): {
3
- agent_id: string;
4
- display_name: string;
5
- role: string;
6
- protocol_versions: string[];
7
- capabilities: string[];
8
- endpoints: {};
9
- policy: {
10
- requires_candidate_consent: boolean;
11
- };
12
- attestation: {
13
- key_id: string;
14
- algorithm: string;
15
- signature: string;
16
- issued_at: string;
17
- expires_at: string;
18
- };
19
- status: string;
20
- };
21
- export declare function makeHandshakeMessage(overrides?: Record<string, unknown>): ProtocolMessage;
22
- export declare function makeHandshakeResponseMessage(overrides?: Record<string, unknown>): ProtocolMessage;
23
- export declare function makeCoffeeShopClientStub(): {
24
- discover: import("vitest").Mock<(...args: any[]) => any>;
25
- getCard: import("vitest").Mock<(...args: any[]) => any>;
26
- register: import("vitest").Mock<(...args: any[]) => any>;
27
- updateCard: import("vitest").Mock<(...args: any[]) => any>;
28
- getMatches: import("vitest").Mock<(...args: any[]) => any>;
29
- submitApplication: import("vitest").Mock<(...args: any[]) => any>;
30
- getInbox: import("vitest").Mock<(...args: any[]) => any>;
31
- respondToMessage: import("vitest").Mock<(...args: any[]) => any>;
32
- createProfile: import("vitest").Mock<(...args: any[]) => any>;
33
- createJob: import("vitest").Mock<(...args: any[]) => any>;
34
- getCandidates: import("vitest").Mock<(...args: any[]) => any>;
35
- messageCandidate: import("vitest").Mock<(...args: any[]) => any>;
36
- getApplications: import("vitest").Mock<(...args: any[]) => any>;
37
- decideApplication: import("vitest").Mock<(...args: any[]) => any>;
38
- };
39
- //# sourceMappingURL=test-fixtures.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-fixtures.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/__tests__/test-fixtures.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEhF,wBAAgB,aAAa,CAAC,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;;;;;;;;;;;;;;;EAmBpE;AAED,wBAAgB,oBAAoB,CAAC,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,eAAe,CA0B7F;AAED,wBAAgB,4BAA4B,CAAC,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,eAAe,CAkBrG;AAED,wBAAgB,wBAAwB;;;;;;;;;;;;;;;EAiBvC"}
@@ -1,87 +0,0 @@
1
- import { vi } from "vitest";
2
- import { PROTOCOL_VERSION } from "../../protocol/index.js";
3
- export function makeAgentCard(overrides = {}) {
4
- return {
5
- agent_id: "@test-agent",
6
- display_name: "Agent One",
7
- role: "candidate_agent",
8
- protocol_versions: ["0.1.0"],
9
- capabilities: ["discovery"],
10
- endpoints: {},
11
- policy: { requires_candidate_consent: true },
12
- attestation: {
13
- key_id: "key-1",
14
- algorithm: "ed25519",
15
- signature: "sig",
16
- issued_at: "2026-02-25T00:00:00Z",
17
- expires_at: "2026-03-25T00:00:00Z",
18
- },
19
- status: "online",
20
- ...overrides,
21
- };
22
- }
23
- export function makeHandshakeMessage(overrides = {}) {
24
- return {
25
- protocol_version: PROTOCOL_VERSION,
26
- type: "artemys.handshake.initiate",
27
- timestamp: "2026-02-25T12:00:00.000Z",
28
- message_id: "msg-1",
29
- conversation_id: "conv-1",
30
- sender_agent_id: "@acme-talent",
31
- agent: {
32
- id: "@acme-talent",
33
- role: "sourcer",
34
- representing: {
35
- type: "employer",
36
- verified: true,
37
- },
38
- },
39
- intent: {
40
- type: "role_inquiry",
41
- signal: {
42
- domain: "software engineering",
43
- seniority: "senior",
44
- location_flexibility: "remote_ok",
45
- },
46
- },
47
- ...overrides,
48
- };
49
- }
50
- export function makeHandshakeResponseMessage(overrides = {}) {
51
- return makeHandshakeMessage({
52
- type: "artemys.handshake.respond",
53
- sender_agent_id: "@alice",
54
- message_id: "msg-respond-1",
55
- agent: {
56
- id: "@alice",
57
- role: "candidate_representative",
58
- representing: { type: "individual", verified: true },
59
- },
60
- availability: "active",
61
- consent_profile: {
62
- shareable: ["headline"],
63
- has_gated_fields: true,
64
- },
65
- interest_signal: "interested",
66
- ...overrides,
67
- });
68
- }
69
- export function makeCoffeeShopClientStub() {
70
- return {
71
- discover: vi.fn().mockResolvedValue([]),
72
- getCard: vi.fn().mockResolvedValue(null),
73
- register: vi.fn().mockResolvedValue({}),
74
- updateCard: vi.fn().mockResolvedValue(makeAgentCard()),
75
- getMatches: vi.fn().mockResolvedValue([]),
76
- submitApplication: vi.fn().mockResolvedValue({}),
77
- getInbox: vi.fn().mockResolvedValue([]),
78
- respondToMessage: vi.fn().mockResolvedValue(undefined),
79
- createProfile: vi.fn().mockResolvedValue({}),
80
- createJob: vi.fn().mockResolvedValue({}),
81
- getCandidates: vi.fn().mockResolvedValue([]),
82
- messageCandidate: vi.fn().mockResolvedValue(undefined),
83
- getApplications: vi.fn().mockResolvedValue([]),
84
- decideApplication: vi.fn().mockResolvedValue(undefined),
85
- };
86
- }
87
- //# sourceMappingURL=test-fixtures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-fixtures.js","sourceRoot":"","sources":["../../../src/mcp-server/__tests__/test-fixtures.ts"],"names":[],"mappings":"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"}