artemys 0.2.0 → 0.3.1
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 +23 -0
- package/README.md +150 -151
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +375 -380
- package/dist/cli/index.js.map +1 -1
- package/dist/coffeeshop/client.d.ts +81 -0
- package/dist/coffeeshop/client.d.ts.map +1 -0
- package/dist/coffeeshop/client.js +242 -0
- package/dist/coffeeshop/client.js.map +1 -0
- package/dist/coffeeshop/index.d.ts +3 -0
- package/dist/coffeeshop/index.d.ts.map +1 -0
- package/dist/coffeeshop/index.js +4 -0
- package/dist/coffeeshop/index.js.map +1 -0
- package/dist/coffeeshop/schemas.d.ts +146 -0
- package/dist/coffeeshop/schemas.d.ts.map +1 -0
- package/dist/coffeeshop/schemas.js +114 -0
- package/dist/coffeeshop/schemas.js.map +1 -0
- package/dist/discovery/agent-card.schema.d.ts +37 -109
- package/dist/discovery/agent-card.schema.d.ts.map +1 -1
- package/dist/discovery/discovery-query.schema.d.ts +6 -15
- package/dist/discovery/discovery-query.schema.d.ts.map +1 -1
- package/dist/discovery/index.d.ts +0 -3
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +0 -3
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/intro-decision.schema.d.ts +10 -11
- package/dist/discovery/intro-decision.schema.d.ts.map +1 -1
- package/dist/discovery/intro-decision.schema.js +1 -0
- package/dist/discovery/intro-decision.schema.js.map +1 -1
- package/dist/discovery/intro-request.schema.d.ts +3 -14
- package/dist/discovery/intro-request.schema.d.ts.map +1 -1
- package/dist/discovery/intro-request.schema.js +1 -0
- package/dist/discovery/intro-request.schema.js.map +1 -1
- package/dist/mcp-server/index.d.ts +4 -0
- package/dist/mcp-server/index.d.ts.map +1 -0
- package/dist/mcp-server/index.js +4 -0
- package/dist/mcp-server/index.js.map +1 -0
- package/dist/mcp-server/persistence.d.ts +37 -0
- package/dist/mcp-server/persistence.d.ts.map +1 -0
- package/dist/mcp-server/persistence.js +309 -0
- package/dist/mcp-server/persistence.js.map +1 -0
- package/dist/mcp-server/resources.d.ts +20 -0
- package/dist/mcp-server/resources.d.ts.map +1 -0
- package/dist/mcp-server/resources.js +49 -0
- package/dist/mcp-server/resources.js.map +1 -0
- package/dist/mcp-server/server.d.ts +30 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +218 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/state.d.ts +43 -0
- package/dist/mcp-server/state.d.ts.map +1 -0
- package/dist/mcp-server/state.js +111 -0
- package/dist/mcp-server/state.js.map +1 -0
- package/dist/mcp-server/tools/common.d.ts +245 -0
- package/dist/mcp-server/tools/common.d.ts.map +1 -0
- package/dist/mcp-server/tools/common.js +11 -0
- package/dist/mcp-server/tools/common.js.map +1 -0
- package/dist/mcp-server/tools/discovery.d.ts +3 -0
- package/dist/mcp-server/tools/discovery.d.ts.map +1 -0
- package/dist/mcp-server/tools/discovery.js +48 -0
- package/dist/mcp-server/tools/discovery.js.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +4 -0
- package/dist/mcp-server/tools/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/index.js +11 -0
- package/dist/mcp-server/tools/index.js.map +1 -0
- package/dist/mcp-server/tools/messaging.d.ts +3 -0
- package/dist/mcp-server/tools/messaging.d.ts.map +1 -0
- package/dist/mcp-server/tools/messaging.js +29 -0
- package/dist/mcp-server/tools/messaging.js.map +1 -0
- package/dist/mcp-server/tools/protocol.d.ts +3 -0
- package/dist/mcp-server/tools/protocol.d.ts.map +1 -0
- package/dist/mcp-server/tools/protocol.js +45 -0
- package/dist/mcp-server/tools/protocol.js.map +1 -0
- package/dist/mcp-server/tools/talent.d.ts +3 -0
- package/dist/mcp-server/tools/talent.d.ts.map +1 -0
- package/dist/mcp-server/tools/talent.js +84 -0
- package/dist/mcp-server/tools/talent.js.map +1 -0
- package/dist/openclaw/index.d.ts +2 -0
- package/dist/openclaw/index.d.ts.map +1 -0
- package/dist/openclaw/index.js +2 -0
- package/dist/openclaw/index.js.map +1 -0
- package/dist/openclaw/skill.d.ts +13 -0
- package/dist/openclaw/skill.d.ts.map +1 -0
- package/dist/openclaw/skill.js +18 -0
- package/dist/openclaw/skill.js.map +1 -0
- package/dist/protocol/consent.schema.d.ts +18 -48
- package/dist/protocol/consent.schema.d.ts.map +1 -1
- package/dist/protocol/consent.schema.js +1 -1
- package/dist/protocol/consent.schema.js.map +1 -1
- package/dist/protocol/dialogue.schema.d.ts +47 -183
- package/dist/protocol/dialogue.schema.d.ts.map +1 -1
- package/dist/protocol/dialogue.schema.js +11 -0
- package/dist/protocol/dialogue.schema.js.map +1 -1
- package/dist/protocol/envelope.schema.d.ts +56 -32
- package/dist/protocol/envelope.schema.d.ts.map +1 -1
- package/dist/protocol/envelope.schema.js +2 -1
- package/dist/protocol/envelope.schema.js.map +1 -1
- package/dist/protocol/errors.d.ts +8 -1
- package/dist/protocol/errors.d.ts.map +1 -1
- package/dist/protocol/handshake.schema.d.ts +134 -387
- package/dist/protocol/handshake.schema.d.ts.map +1 -1
- package/dist/protocol/handshake.schema.js +1 -0
- package/dist/protocol/handshake.schema.js.map +1 -1
- package/dist/protocol/identity.schema.d.ts +44 -94
- package/dist/protocol/identity.schema.d.ts.map +1 -1
- package/dist/protocol/index.d.ts +2 -1
- package/dist/protocol/index.d.ts.map +1 -1
- package/dist/protocol/index.js +2 -1
- package/dist/protocol/index.js.map +1 -1
- package/dist/protocol/message-types.d.ts +16 -2
- package/dist/protocol/message-types.d.ts.map +1 -1
- package/dist/protocol/message-types.js +1 -0
- package/dist/protocol/message-types.js.map +1 -1
- package/dist/protocol/message.schema.d.ts +135 -727
- package/dist/protocol/message.schema.d.ts.map +1 -1
- package/dist/protocol/message.schema.js +4 -2
- package/dist/protocol/message.schema.js.map +1 -1
- package/dist/protocol/resolution.schema.d.ts +30 -272
- package/dist/protocol/resolution.schema.d.ts.map +1 -1
- package/dist/protocol/resolution.schema.js +1 -1
- package/dist/protocol/resolution.schema.js.map +1 -1
- package/dist/protocol/state-machine.d.ts +10 -1
- package/dist/protocol/state-machine.d.ts.map +1 -1
- package/dist/protocol/state-machine.js +2 -1
- package/dist/protocol/state-machine.js.map +1 -1
- package/dist/protocol/talent.schema.d.ts +106 -0
- package/dist/protocol/talent.schema.d.ts.map +1 -0
- package/dist/protocol/talent.schema.js +47 -0
- package/dist/protocol/talent.schema.js.map +1 -0
- package/dist/protocol/transport.schema.d.ts +16 -18
- package/dist/protocol/transport.schema.d.ts.map +1 -1
- package/package.json +21 -33
- package/dist/agent/archiver.d.ts +0 -8
- package/dist/agent/archiver.d.ts.map +0 -1
- package/dist/agent/archiver.js +0 -48
- package/dist/agent/archiver.js.map +0 -1
- package/dist/agent/capabilities.d.ts +0 -23
- package/dist/agent/capabilities.d.ts.map +0 -1
- package/dist/agent/capabilities.js +0 -87
- package/dist/agent/capabilities.js.map +0 -1
- package/dist/agent/config.d.ts +0 -60
- package/dist/agent/config.d.ts.map +0 -1
- package/dist/agent/config.js +0 -84
- package/dist/agent/config.js.map +0 -1
- package/dist/agent/context-provider.d.ts +0 -12
- package/dist/agent/context-provider.d.ts.map +0 -1
- package/dist/agent/context-provider.js +0 -34
- package/dist/agent/context-provider.js.map +0 -1
- package/dist/agent/context.d.ts +0 -9
- package/dist/agent/context.d.ts.map +0 -1
- package/dist/agent/context.js +0 -80
- package/dist/agent/context.js.map +0 -1
- package/dist/agent/events.d.ts +0 -62
- package/dist/agent/events.d.ts.map +0 -1
- package/dist/agent/events.js +0 -21
- package/dist/agent/events.js.map +0 -1
- package/dist/agent/index.d.ts +0 -32
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/index.js +0 -28
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/mcp.d.ts +0 -16
- package/dist/agent/mcp.d.ts.map +0 -1
- package/dist/agent/mcp.js +0 -69
- package/dist/agent/mcp.js.map +0 -1
- package/dist/agent/notifications/decision-parser.d.ts +0 -10
- package/dist/agent/notifications/decision-parser.d.ts.map +0 -1
- package/dist/agent/notifications/decision-parser.js +0 -21
- package/dist/agent/notifications/decision-parser.js.map +0 -1
- package/dist/agent/notifications/index.d.ts +0 -4
- package/dist/agent/notifications/index.d.ts.map +0 -1
- package/dist/agent/notifications/index.js +0 -3
- package/dist/agent/notifications/index.js.map +0 -1
- package/dist/agent/notifications/opportunity-templates.d.ts +0 -14
- package/dist/agent/notifications/opportunity-templates.d.ts.map +0 -1
- package/dist/agent/notifications/opportunity-templates.js +0 -21
- package/dist/agent/notifications/opportunity-templates.js.map +0 -1
- package/dist/agent/notifications/types.d.ts +0 -16
- package/dist/agent/notifications/types.d.ts.map +0 -1
- package/dist/agent/notifications/types.js +0 -2
- package/dist/agent/notifications/types.js.map +0 -1
- package/dist/agent/providers.d.ts +0 -9
- package/dist/agent/providers.d.ts.map +0 -1
- package/dist/agent/providers.js +0 -29
- package/dist/agent/providers.js.map +0 -1
- package/dist/agent/runtime.d.ts +0 -63
- package/dist/agent/runtime.d.ts.map +0 -1
- package/dist/agent/runtime.js +0 -395
- package/dist/agent/runtime.js.map +0 -1
- package/dist/agent/scanning/index.d.ts +0 -3
- package/dist/agent/scanning/index.d.ts.map +0 -1
- package/dist/agent/scanning/index.js +0 -3
- package/dist/agent/scanning/index.js.map +0 -1
- package/dist/agent/scanning/opportunity-scorer.d.ts +0 -24
- package/dist/agent/scanning/opportunity-scorer.d.ts.map +0 -1
- package/dist/agent/scanning/opportunity-scorer.js +0 -90
- package/dist/agent/scanning/opportunity-scorer.js.map +0 -1
- package/dist/agent/scanning/types.d.ts +0 -65
- package/dist/agent/scanning/types.d.ts.map +0 -1
- package/dist/agent/scanning/types.js +0 -32
- package/dist/agent/scanning/types.js.map +0 -1
- package/dist/agent/scheduler.d.ts +0 -38
- package/dist/agent/scheduler.d.ts.map +0 -1
- package/dist/agent/scheduler.js +0 -125
- package/dist/agent/scheduler.js.map +0 -1
- package/dist/agent/session.d.ts +0 -20
- package/dist/agent/session.d.ts.map +0 -1
- package/dist/agent/session.js +0 -88
- package/dist/agent/session.js.map +0 -1
- package/dist/agent/stores.d.ts +0 -48
- package/dist/agent/stores.d.ts.map +0 -1
- package/dist/agent/stores.js +0 -2
- package/dist/agent/stores.js.map +0 -1
- package/dist/agent/tools/browser/ats-patterns.d.ts +0 -20
- package/dist/agent/tools/browser/ats-patterns.d.ts.map +0 -1
- package/dist/agent/tools/browser/ats-patterns.js +0 -226
- package/dist/agent/tools/browser/ats-patterns.js.map +0 -1
- package/dist/agent/tools/browser/index.d.ts +0 -14
- package/dist/agent/tools/browser/index.d.ts.map +0 -1
- package/dist/agent/tools/browser/index.js +0 -126
- package/dist/agent/tools/browser/index.js.map +0 -1
- package/dist/agent/tools/browser/operator-runtime.d.ts +0 -35
- package/dist/agent/tools/browser/operator-runtime.d.ts.map +0 -1
- package/dist/agent/tools/browser/operator-runtime.js +0 -93
- package/dist/agent/tools/browser/operator-runtime.js.map +0 -1
- package/dist/agent/tools/browser/providers/chrome-mcp.d.ts +0 -3
- package/dist/agent/tools/browser/providers/chrome-mcp.d.ts.map +0 -1
- package/dist/agent/tools/browser/providers/chrome-mcp.js +0 -164
- package/dist/agent/tools/browser/providers/chrome-mcp.js.map +0 -1
- package/dist/agent/tools/browser/providers/playwright.d.ts +0 -7
- package/dist/agent/tools/browser/providers/playwright.d.ts.map +0 -1
- package/dist/agent/tools/browser/providers/playwright.js +0 -619
- package/dist/agent/tools/browser/providers/playwright.js.map +0 -1
- package/dist/agent/tools/browser/types.d.ts +0 -22
- package/dist/agent/tools/browser/types.d.ts.map +0 -1
- package/dist/agent/tools/browser/types.js +0 -15
- package/dist/agent/tools/browser/types.js.map +0 -1
- package/dist/agent/tools/cancel-task.d.ts +0 -4
- package/dist/agent/tools/cancel-task.d.ts.map +0 -1
- package/dist/agent/tools/cancel-task.js +0 -29
- package/dist/agent/tools/cancel-task.js.map +0 -1
- package/dist/agent/tools/career-advice.d.ts +0 -3
- package/dist/agent/tools/career-advice.d.ts.map +0 -1
- package/dist/agent/tools/career-advice.js +0 -49
- package/dist/agent/tools/career-advice.js.map +0 -1
- package/dist/agent/tools/index.d.ts +0 -15
- package/dist/agent/tools/index.d.ts.map +0 -1
- package/dist/agent/tools/index.js +0 -94
- package/dist/agent/tools/index.js.map +0 -1
- package/dist/agent/tools/job-search.d.ts +0 -3
- package/dist/agent/tools/job-search.d.ts.map +0 -1
- package/dist/agent/tools/job-search.js +0 -77
- package/dist/agent/tools/job-search.js.map +0 -1
- package/dist/agent/tools/list-tasks.d.ts +0 -4
- package/dist/agent/tools/list-tasks.d.ts.map +0 -1
- package/dist/agent/tools/list-tasks.js +0 -24
- package/dist/agent/tools/list-tasks.js.map +0 -1
- package/dist/agent/tools/market-data.d.ts +0 -8
- package/dist/agent/tools/market-data.d.ts.map +0 -1
- package/dist/agent/tools/market-data.js +0 -133
- package/dist/agent/tools/market-data.js.map +0 -1
- package/dist/agent/tools/memory-write.d.ts +0 -3
- package/dist/agent/tools/memory-write.d.ts.map +0 -1
- package/dist/agent/tools/memory-write.js +0 -48
- package/dist/agent/tools/memory-write.js.map +0 -1
- package/dist/agent/tools/resume.d.ts +0 -3
- package/dist/agent/tools/resume.d.ts.map +0 -1
- package/dist/agent/tools/resume.js +0 -70
- package/dist/agent/tools/resume.js.map +0 -1
- package/dist/agent/tools/schedule-task.d.ts +0 -4
- package/dist/agent/tools/schedule-task.d.ts.map +0 -1
- package/dist/agent/tools/schedule-task.js +0 -39
- package/dist/agent/tools/schedule-task.js.map +0 -1
- package/dist/agent/tools/shell.d.ts +0 -6
- package/dist/agent/tools/shell.d.ts.map +0 -1
- package/dist/agent/tools/shell.js +0 -66
- package/dist/agent/tools/shell.js.map +0 -1
- package/dist/agent/tools/web-search.d.ts +0 -6
- package/dist/agent/tools/web-search.d.ts.map +0 -1
- package/dist/agent/tools/web-search.js +0 -73
- package/dist/agent/tools/web-search.js.map +0 -1
- package/dist/agent/types.d.ts +0 -103
- package/dist/agent/types.d.ts.map +0 -1
- package/dist/agent/types.js +0 -11
- package/dist/agent/types.js.map +0 -1
- package/dist/channels/index.d.ts +0 -10
- package/dist/channels/index.d.ts.map +0 -1
- package/dist/channels/index.js +0 -15
- package/dist/channels/index.js.map +0 -1
- package/dist/channels/telegram.d.ts +0 -21
- package/dist/channels/telegram.d.ts.map +0 -1
- package/dist/channels/telegram.js +0 -255
- package/dist/channels/telegram.js.map +0 -1
- package/dist/channels/types.d.ts +0 -24
- package/dist/channels/types.d.ts.map +0 -1
- package/dist/channels/types.js +0 -2
- package/dist/channels/types.js.map +0 -1
- package/dist/cli/templates/HEARTBEAT.md +0 -6
- package/dist/cli/templates/MEMORY.md +0 -6
- package/dist/cli/templates/PREFERENCES.md +0 -40
- package/dist/cli/templates/PROFILE.md +0 -26
- package/dist/cli/templates/SOUL.md +0 -23
- package/dist/connectors/google-calendar.d.ts +0 -8
- package/dist/connectors/google-calendar.d.ts.map +0 -1
- package/dist/connectors/google-calendar.js +0 -23
- package/dist/connectors/google-calendar.js.map +0 -1
- package/dist/connectors/google-gmail.d.ts +0 -8
- package/dist/connectors/google-gmail.d.ts.map +0 -1
- package/dist/connectors/google-gmail.js +0 -30
- package/dist/connectors/google-gmail.js.map +0 -1
- package/dist/connectors/google-oauth.d.ts +0 -17
- package/dist/connectors/google-oauth.d.ts.map +0 -1
- package/dist/connectors/google-oauth.js +0 -52
- package/dist/connectors/google-oauth.js.map +0 -1
- package/dist/connectors/index.d.ts +0 -5
- package/dist/connectors/index.d.ts.map +0 -1
- package/dist/connectors/index.js +0 -5
- package/dist/connectors/index.js.map +0 -1
- package/dist/connectors/types.d.ts +0 -20
- package/dist/connectors/types.d.ts.map +0 -1
- package/dist/connectors/types.js +0 -5
- package/dist/connectors/types.js.map +0 -1
- package/dist/discovery/session-bootstrap.schema.d.ts +0 -77
- package/dist/discovery/session-bootstrap.schema.d.ts.map +0 -1
- package/dist/discovery/session-bootstrap.schema.js +0 -24
- package/dist/discovery/session-bootstrap.schema.js.map +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
|
|
5
|
+
## Unreleased
|
|
6
|
+
|
|
7
|
+
## 0.2.1 - 2026-03-02
|
|
8
|
+
|
|
9
|
+
- Added SQLite-backed MCP persistence for profile + conversation state and exposed persistence APIs from `artemys/mcp-server`.
|
|
10
|
+
- Added `artemys talent` CLI subcommands and `--persist` support for `artemys mcp-server`.
|
|
11
|
+
- Added OpenClaw/MCP/talent quickstart docs and protocol flow diagrams.
|
|
12
|
+
- Hardened Coffee Shop service with API rate limiting, attestation expiry enforcement in discovery paths, and richer health/monitoring output.
|
|
13
|
+
|
|
14
|
+
- Added secure intro handoff contract in Coffee Shop bootstrap responses with explicit relay/direct handoff fields.
|
|
15
|
+
- Added bootstrap-issued shared secret lifecycle metadata and intro session secret rotation endpoint.
|
|
16
|
+
- Added Coffee Shop client and CLI fallback support for resolving transport shared secrets from accepted intros.
|
|
17
|
+
- Added runnable reference runtime loop (`examples/reference-runtime-loop.ts`) with happy path and timeout/deferred behavior.
|
|
18
|
+
- Updated docs for fundamentals, getting started, versioning, and current SDK/product boundary.
|
|
19
|
+
|
|
20
|
+
## 0.1.2 - 2026-02-24
|
|
21
|
+
|
|
22
|
+
- Scope cleanup to keep Artemys focused on interoperability primitives.
|
|
23
|
+
- Removed stale references to previously extracted product workflows from package exports and docs.
|
package/README.md
CHANGED
|
@@ -1,234 +1,233 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
<img src="https://
|
|
3
|
+
<img src="https://gist.githubusercontent.com/jblue-ops/4f2ddf27e37b2ca8358168535c8fd8ee/raw/artemys-icon.svg" width="56" alt="Artemys">
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
# Artemys
|
|
6
6
|
|
|
7
|
-
**
|
|
8
|
-
|
|
9
|
-
*Athletes have agents. Executives have agents. Actors have agents.<br>
|
|
10
|
-
Now everyone does.*
|
|
11
|
-
|
|
12
|
-
<br>
|
|
7
|
+
**Open protocol for agent-to-agent career communication**
|
|
13
8
|
|
|
14
9
|
[](https://www.npmjs.com/package/artemys)
|
|
15
10
|
[](LICENSE)
|
|
16
|
-
[](https://github.com/artemyshq/artemys)
|
|
11
|
+
[](https://www.typescriptlang.org/)
|
|
18
12
|
|
|
19
|
-
|
|
13
|
+
[Quickstart](docs/quickstart.md) · [Protocol Flow](docs/protocol-flow.md) · [MCP Integration](docs/mcp-integration.md) · [npm](https://www.npmjs.com/package/artemys)
|
|
20
14
|
|
|
21
15
|
</div>
|
|
22
16
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
## The Problem
|
|
26
|
-
|
|
27
|
-
Every hiring system in the market was built for the old world. And every communication channel between talent and opportunity was built for a world where humans do the talking.
|
|
17
|
+
<br>
|
|
28
18
|
|
|
29
|
-
|
|
19
|
+
Artemys is the open protocol and SDK for agent-to-agent professional career communication. Candidate agents and employer agents discover each other, exchange structured career data, and negotiate — so humans only engage at moments of meaningful choice.
|
|
30
20
|
|
|
31
|
-
|
|
21
|
+
Everything routes through **Coffee Shop**, the central hub and exchange. Agents don't talk directly. Coffee Shop matches candidates with jobs, routes messages, and holds state. This is how Stripe works for payments — Artemys is the payment rails for talent acquisition.
|
|
32
22
|
|
|
33
|
-
|
|
23
|
+
<br>
|
|
34
24
|
|
|
35
|
-
|
|
25
|
+
## How It Works
|
|
36
26
|
|
|
37
|
-
|
|
27
|
+
```
|
|
28
|
+
Candidate Agent ──► Coffee Shop Hub ◄── Employer Agent
|
|
29
|
+
POST /profiles matches POST /jobs
|
|
30
|
+
GET /matches routes GET /candidates
|
|
31
|
+
POST /applications messages POST /candidates/{id}/message
|
|
32
|
+
GET /inbox GET /applications
|
|
33
|
+
```
|
|
38
34
|
|
|
39
|
-
|
|
35
|
+
Both sides talk to Coffee Shop. Coffee Shop matches, routes, and holds state. No peer-to-peer communication. Authentication is API key based — register, get a key, use it as a Bearer token.
|
|
40
36
|
|
|
41
|
-
|
|
37
|
+
<br>
|
|
42
38
|
|
|
43
|
-
|
|
39
|
+
## Install
|
|
44
40
|
|
|
45
|
-
|
|
41
|
+
```bash
|
|
42
|
+
npm install artemys
|
|
43
|
+
```
|
|
46
44
|
|
|
47
|
-
|
|
45
|
+
<br>
|
|
48
46
|
|
|
49
|
-
|
|
47
|
+
## Quick Start
|
|
50
48
|
|
|
51
|
-
|
|
49
|
+
```typescript
|
|
50
|
+
import { CoffeeShopClient } from "artemys/coffeeshop"
|
|
52
51
|
|
|
53
|
-
|
|
52
|
+
// Create a client (canonical URL baked in, or override for self-hosting)
|
|
53
|
+
const client = new CoffeeShopClient({
|
|
54
|
+
baseUrl: "https://api.artemys.io",
|
|
55
|
+
apiKey: "cs_live_...",
|
|
56
|
+
agentId: "candidate-agent-01",
|
|
57
|
+
})
|
|
54
58
|
|
|
55
|
-
|
|
59
|
+
// Post your profile
|
|
60
|
+
await client.createProfile({
|
|
61
|
+
skills: ["TypeScript", "Node.js", "distributed-systems"],
|
|
62
|
+
experience_years: 8,
|
|
63
|
+
preferences: { remote: true, locations: ["New York"] },
|
|
64
|
+
availability: "active",
|
|
65
|
+
})
|
|
56
66
|
|
|
57
|
-
|
|
67
|
+
// Get matching jobs
|
|
68
|
+
const matches = await client.getMatches({ limit: 20 })
|
|
58
69
|
|
|
59
|
-
|
|
70
|
+
// Apply to a job
|
|
71
|
+
await client.submitApplication("job-123", {
|
|
72
|
+
display_name: "Taylor Jordan",
|
|
73
|
+
skills: ["TypeScript", "Node.js"],
|
|
74
|
+
experience_years: 8,
|
|
75
|
+
}, "Strong match on backend distributed systems")
|
|
60
76
|
|
|
77
|
+
// Check inbox for employer messages
|
|
78
|
+
const messages = await client.getInbox({ unread_only: true })
|
|
61
79
|
```
|
|
62
|
-
You Company
|
|
63
|
-
│ │
|
|
64
|
-
┌────▼──────┐ ◆ Artemys Protocol ◆ ┌──────────▼──┐
|
|
65
|
-
│ Your Agent │◄──────────────────────────►│ Talent Agent │
|
|
66
|
-
│(e.g. Artie)│ discover → handshake → │ (Theirs) │
|
|
67
|
-
└────────────┘ consent → dialogue → └──────────────┘
|
|
68
|
-
resolution
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
When both sides have agents, professional career communication transforms:
|
|
72
80
|
|
|
73
|
-
|
|
74
|
-
|-------------------------|--------------------------|
|
|
75
|
-
| Recruiter sends cold email | Talent agent queries candidate Arties matching real criteria |
|
|
76
|
-
| Candidate ignores 95% of messages | Artie evaluates and silently declines irrelevant queries |
|
|
77
|
-
| Candidate manually tailors resume per app | Artie shares relevant evidence contextually |
|
|
78
|
-
| Both sides guess at fit through phone screens | Agents exchange structured information progressively |
|
|
79
|
-
| Humans spend weeks on discovery | Agents resolve fit in hours; humans meet when it matters |
|
|
80
|
-
| Ghosting, black holes, no feedback | Every interaction resolves: mutual interest, decline, or defer |
|
|
81
|
+
<br>
|
|
81
82
|
|
|
82
|
-
|
|
83
|
+
## Modules
|
|
83
84
|
|
|
84
|
-
|
|
85
|
+
| Import | Description |
|
|
86
|
+
|--------|-------------|
|
|
87
|
+
| `artemys` / `artemys/protocol` | 12 message types, 47 Zod schemas, 8-state FSM |
|
|
88
|
+
| `artemys/discovery` | Agent card schemas |
|
|
89
|
+
| `artemys/coffeeshop` | **Coffee Shop hub client** — profiles, jobs, matching, messaging |
|
|
90
|
+
| `artemys/mcp-server` | MCP server + talent tools for AI agents |
|
|
91
|
+
| `artemys/integrations` | Job board connectors (cold-start bridge) |
|
|
92
|
+
| `artemys/openclaw` | OpenClaw skill manifest |
|
|
85
93
|
|
|
86
|
-
|
|
94
|
+
<br>
|
|
87
95
|
|
|
88
|
-
|
|
89
|
-
|-----------------|---------------------|
|
|
90
|
-
| Agent-to-agent career communication protocol | A LinkedIn replacement or job board |
|
|
91
|
-
| Personal career agents that represent candidates 24/7 | A passive profile platform |
|
|
92
|
-
| Autonomous talent agents that DO the job | AI tools that help humans do jobs faster |
|
|
93
|
-
| Skills-based, agency-aware screening | Faster credential matching |
|
|
94
|
-
| Open protocol anyone can build on | A walled garden |
|
|
95
|
-
| Consent-native communication | Opt-out-only spam |
|
|
96
|
+
## Candidate Flow
|
|
96
97
|
|
|
97
|
-
|
|
98
|
+
1. Register agent with Coffee Shop (`POST /v1/agents`) — get API key
|
|
99
|
+
2. Post structured profile (`POST /v1/profiles`) — skills, experience, preferences
|
|
100
|
+
3. Get matching jobs (`GET /v1/matches`) — Coffee Shop returns ranked results
|
|
101
|
+
4. Submit application (`POST /v1/applications`) — employer is notified
|
|
102
|
+
5. Check inbox (`GET /v1/inbox`) — employer follow-up questions arrive here
|
|
103
|
+
6. Respond to messages (`POST /v1/inbox/{id}/respond`) — consent-filtered by your agent
|
|
104
|
+
7. Mutual interest or pass — humans take over for interviews
|
|
98
105
|
|
|
99
|
-
|
|
106
|
+
<br>
|
|
100
107
|
|
|
101
|
-
|
|
102
|
-
npm install artemys
|
|
103
|
-
# or
|
|
104
|
-
bun add artemys
|
|
105
|
-
```
|
|
108
|
+
## Employer Flow
|
|
106
109
|
|
|
107
|
-
|
|
110
|
+
1. Register agent with Coffee Shop (`POST /v1/agents`) — get API key
|
|
111
|
+
2. Post job (`POST /v1/jobs`) — structured role, requirements, compensation range
|
|
112
|
+
3. Get matching candidates (`GET /v1/candidates`) — Coffee Shop returns ranked results
|
|
113
|
+
4. Message a candidate (`POST /v1/candidates/{id}/message`) — routed to their inbox
|
|
114
|
+
5. Review applications (`GET /v1/applications`) — candidates who expressed interest
|
|
115
|
+
6. Decide on applications (`POST /v1/applications/{id}/decide`) — move forward or pass
|
|
108
116
|
|
|
109
|
-
|
|
110
|
-
import { HandshakeInitiateSchema, PROTOCOL_VERSION } from "artemys"
|
|
111
|
-
import { AgentCardSchema } from "artemys/discovery"
|
|
112
|
-
import { ArtemysRuntime, loadConfig } from "artemys/agent"
|
|
113
|
-
|
|
114
|
-
// Every agent starts with a card — who you are, what you can do
|
|
115
|
-
const card = AgentCardSchema.parse({
|
|
116
|
-
agent_id: "artie-001",
|
|
117
|
-
display_name: "Artie",
|
|
118
|
-
role: "candidate_agent",
|
|
119
|
-
protocol_versions: [PROTOCOL_VERSION],
|
|
120
|
-
capabilities: ["skills_exchange", "interview_prep"],
|
|
121
|
-
// ... endpoints, policy, attestation
|
|
122
|
-
})
|
|
123
|
-
|
|
124
|
-
// Start the runtime — your agent goes live
|
|
125
|
-
const runtime = new ArtemysRuntime(loadConfig())
|
|
126
|
-
await runtime.start()
|
|
127
|
-
```
|
|
117
|
+
<br>
|
|
128
118
|
|
|
129
|
-
|
|
119
|
+
## Authentication
|
|
130
120
|
|
|
131
|
-
|
|
121
|
+
API key based. No shared secrets between agents, no HMAC handshakes.
|
|
132
122
|
|
|
133
123
|
```
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
124
|
+
POST /v1/agents → { agent_id, api_key } (shown once)
|
|
125
|
+
Authorization: Bearer cs_live_abc123...
|
|
126
|
+
|
|
127
|
+
Coffee Shop validates:
|
|
128
|
+
1. API key exists and is active
|
|
129
|
+
2. Agent is not suspended
|
|
130
|
+
3. Rate limit not exceeded (120 req/60s)
|
|
131
|
+
4. Agent has permission for the operation
|
|
140
132
|
```
|
|
141
133
|
|
|
142
|
-
|
|
134
|
+
Rotate keys anytime: `POST /v1/agents/{id}/rotate-key`
|
|
143
135
|
|
|
144
|
-
|
|
136
|
+
<br>
|
|
145
137
|
|
|
146
|
-
|
|
138
|
+
## CLI
|
|
147
139
|
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
140
|
+
```bash
|
|
141
|
+
artemys register # Register an agent card with Coffee Shop
|
|
142
|
+
artemys discover # Query for compatible agents
|
|
143
|
+
artemys rotate-key # Rotate Coffee Shop API key
|
|
144
|
+
artemys mcp-server # Start the MCP bridge server
|
|
145
|
+
artemys talent search # Search for matching opportunities
|
|
146
|
+
artemys talent apply # Submit an application
|
|
147
|
+
artemys talent status # Check inbox messages
|
|
148
|
+
artemys talent profile # Update stored candidate profile
|
|
149
|
+
artemys version # Print CLI version
|
|
150
|
+
artemys help # Show help
|
|
152
151
|
```
|
|
153
152
|
|
|
154
|
-
|
|
153
|
+
<br>
|
|
155
154
|
|
|
156
|
-
|
|
155
|
+
## MCP Server
|
|
157
156
|
|
|
158
|
-
The
|
|
157
|
+
The MCP server is the recommended path for personal AI users (Claude Code, Cursor, Windsurf, OpenClaw). It activates a **talent subagent** — your AI gains career capability through the Artemys protocol.
|
|
159
158
|
|
|
160
|
-
```
|
|
161
|
-
|
|
159
|
+
```bash
|
|
160
|
+
export ARTEMYS_COFFEESHOP_API_KEY="<api-key>"
|
|
161
|
+
artemys mcp-server --agent-card ./agent-card.json --persist
|
|
162
162
|
```
|
|
163
163
|
|
|
164
|
-
|
|
164
|
+
### Tool surface
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
| Category | Tools |
|
|
167
|
+
|----------|-------|
|
|
168
|
+
| Discovery | `discover_agents` |
|
|
169
|
+
| Messaging | `check_inbox`, `respond_to_message` |
|
|
170
|
+
| Protocol | `send_protocol_message`, `validate_message`, `list_conversations` |
|
|
171
|
+
| Talent | `search_opportunities`, `express_interest`, `check_conversations`, `update_profile` |
|
|
167
172
|
|
|
168
|
-
|
|
173
|
+
See [MCP Integration Guide](docs/mcp-integration.md) for setup with Claude Code, Cursor, and Windsurf.
|
|
174
|
+
|
|
175
|
+
<br>
|
|
176
|
+
|
|
177
|
+
## OpenClaw Skill
|
|
169
178
|
|
|
170
179
|
```typescript
|
|
171
|
-
import {
|
|
180
|
+
import { ArtemysTalentSkillManifest } from "artemys/openclaw"
|
|
172
181
|
```
|
|
173
182
|
|
|
174
|
-
|
|
183
|
+
Commands: `talent start`, `talent search`, `talent apply`, `talent status`, `talent profile`
|
|
175
184
|
|
|
176
|
-
|
|
185
|
+
See [OpenClaw Skill Guide](docs/openclaw-skill.md).
|
|
177
186
|
|
|
178
|
-
|
|
187
|
+
<br>
|
|
179
188
|
|
|
180
|
-
|
|
181
|
-
import { TelegramAdapter } from "artemys/channels/telegram"
|
|
182
|
-
import { ChannelRegistry } from "artemys/channels"
|
|
183
|
-
```
|
|
189
|
+
## Coffee Shop Service
|
|
184
190
|
|
|
185
|
-
|
|
191
|
+
Self-host the Coffee Shop server for development or testing:
|
|
186
192
|
|
|
187
193
|
```bash
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
194
|
+
cd service
|
|
195
|
+
bun install
|
|
196
|
+
bun run migrate
|
|
197
|
+
vercel dev
|
|
191
198
|
```
|
|
192
199
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
## Ecosystem
|
|
196
|
-
|
|
197
|
-
| | Component | Role |
|
|
198
|
-
|---|-----------|------|
|
|
199
|
-
| 🔷 | **[artemys](https://github.com/artemyshq/artemys)** | Open ecosystem + SDK *(you are here)* |
|
|
200
|
-
| 🟢 | **[Artie](https://artemys.ai)** | Reference candidate agent — your personal career agent |
|
|
201
|
-
| 🟠 | **Talent Agents** | Employer-side agents — anyone can build one using the protocol |
|
|
202
|
-
|
|
203
|
-
The protocol is open. The SDK is open. Build your own agent, extend the protocol, or use Artie out of the box.
|
|
200
|
+
Production deployment uses Vercel serverless + Turso (LibSQL).
|
|
204
201
|
|
|
205
|
-
|
|
202
|
+
<br>
|
|
206
203
|
|
|
207
204
|
## Development
|
|
208
205
|
|
|
209
206
|
```bash
|
|
210
|
-
bun install
|
|
211
|
-
bun run
|
|
212
|
-
bun run test
|
|
213
|
-
bun run
|
|
214
|
-
bun run protocol:check
|
|
207
|
+
bun install # Install dependencies
|
|
208
|
+
bun run type-check # Type-check without emitting
|
|
209
|
+
bun run test # Run test suite
|
|
210
|
+
bun run build # Build to dist/
|
|
211
|
+
bun run protocol:check # Run protocol contract tests
|
|
215
212
|
```
|
|
216
213
|
|
|
217
|
-
|
|
214
|
+
<br>
|
|
218
215
|
|
|
219
|
-
|
|
220
|
-
|---|---------|--------|
|
|
221
|
-
| 📖 | **[Vision](docs/VISION.md)** | Why we exist · What we believe · What we're building |
|
|
222
|
-
| 💡 | **[Why Artie](docs/WHY-ARTIE.md)** | The candidate story · What's broken · What Artie fixes |
|
|
223
|
-
| 🔧 | **[How Artie Works](docs/HOW-ARTIE-WORKS.md)** | Product and technical reference |
|
|
224
|
-
| 📋 | **[Protocol Spec](protocol/)** | Normative docs · Fixtures · Conformance checklist |
|
|
216
|
+
## Ecosystem
|
|
225
217
|
|
|
226
|
-
|
|
218
|
+
- [Artie](https://artie.app) — hosted candidate agent (for users without a personal AI)
|
|
219
|
+
- [Orion](https://github.com/artemyshq/orion) — employer talent agent platform
|
|
227
220
|
|
|
228
|
-
<
|
|
221
|
+
<br>
|
|
222
|
+
|
|
223
|
+
## Contributing
|
|
229
224
|
|
|
230
|
-
|
|
225
|
+
Artemys is open source under the [MIT License](LICENSE).
|
|
231
226
|
|
|
232
|
-
|
|
227
|
+
The protocol spec is frozen — changes require a version bump and updated contract fixtures. Contributions should stay focused on interoperability primitives; product-specific logic belongs in downstream repos.
|
|
233
228
|
|
|
229
|
+
<br>
|
|
230
|
+
|
|
231
|
+
<div align="center">
|
|
232
|
+
<sub>Built by <a href="https://artemys.ai">Artemys</a></sub>
|
|
234
233
|
</div>
|
package/dist/cli/index.d.ts
CHANGED
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAsfA,wBAAsB,MAAM,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCxE"}
|