artemys 0.2.0 → 0.2.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 +194 -146
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +446 -379
- package/dist/cli/index.js.map +1 -1
- package/dist/coffeeshop/client.d.ts +158 -0
- package/dist/coffeeshop/client.d.ts.map +1 -0
- package/dist/coffeeshop/client.js +293 -0
- package/dist/coffeeshop/client.js.map +1 -0
- package/dist/coffeeshop/index.d.ts +2 -0
- package/dist/coffeeshop/index.d.ts.map +1 -0
- package/dist/coffeeshop/index.js +2 -0
- package/dist/coffeeshop/index.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 +1 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +1 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/intro-decision.schema.d.ts +9 -11
- package/dist/discovery/intro-decision.schema.d.ts.map +1 -1
- package/dist/discovery/intro-request.schema.d.ts +2 -14
- package/dist/discovery/intro-request.schema.d.ts.map +1 -1
- package/dist/discovery/session-bootstrap.schema.d.ts +86 -66
- package/dist/discovery/session-bootstrap.schema.d.ts.map +1 -1
- package/dist/discovery/session-bootstrap.schema.js +84 -8
- package/dist/discovery/session-bootstrap.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 +33 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +220 -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 +225 -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 +13 -0
- package/dist/mcp-server/tools/index.js.map +1 -0
- package/dist/mcp-server/tools/intro.d.ts +3 -0
- package/dist/mcp-server/tools/intro.d.ts.map +1 -0
- package/dist/mcp-server/tools/intro.js +53 -0
- package/dist/mcp-server/tools/intro.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 +73 -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 +226 -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 +21 -177
- package/dist/protocol/dialogue.schema.d.ts.map +1 -1
- package/dist/protocol/envelope.schema.d.ts +46 -28
- package/dist/protocol/envelope.schema.d.ts.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 +130 -385
- 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 +1 -0
- package/dist/protocol/index.d.ts.map +1 -1
- package/dist/protocol/index.js +1 -0
- package/dist/protocol/index.js.map +1 -1
- package/dist/protocol/message-types.d.ts +14 -1
- package/dist/protocol/message-types.d.ts.map +1 -1
- package/dist/protocol/message.schema.d.ts +100 -715
- package/dist/protocol/message.schema.d.ts.map +1 -1
- package/dist/protocol/resolution.schema.d.ts +22 -268
- 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/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/dist/transport/client.d.ts +32 -0
- package/dist/transport/client.d.ts.map +1 -0
- package/dist/transport/client.js +155 -0
- package/dist/transport/client.js.map +1 -0
- package/dist/transport/dedup.d.ts +9 -0
- package/dist/transport/dedup.d.ts.map +1 -0
- package/dist/transport/dedup.js +36 -0
- package/dist/transport/dedup.js.map +1 -0
- package/dist/transport/handler.d.ts +9 -0
- package/dist/transport/handler.d.ts.map +1 -0
- package/dist/transport/handler.js +105 -0
- package/dist/transport/handler.js.map +1 -0
- package/dist/transport/hmac.d.ts +3 -0
- package/dist/transport/hmac.d.ts.map +1 -0
- package/dist/transport/hmac.js +43 -0
- package/dist/transport/hmac.js.map +1 -0
- package/dist/transport/index.d.ts +6 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +6 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/reference-runner.d.ts +37 -0
- package/dist/transport/reference-runner.d.ts.map +1 -0
- package/dist/transport/reference-runner.js +372 -0
- package/dist/transport/reference-runner.js.map +1 -0
- package/package.json +19 -31
- 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/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,282 @@
|
|
|
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 and ecosystem for agent-to-agent career communication**
|
|
13
8
|
|
|
14
9
|
[](https://www.npmjs.com/package/artemys)
|
|
10
|
+
[](protocol/)
|
|
15
11
|
[](LICENSE)
|
|
16
|
-
[](https://github.com/artemyshq/artemys)
|
|
12
|
+
[](https://www.typescriptlang.org/)
|
|
18
13
|
|
|
19
|
-
|
|
14
|
+
[Quickstart](docs/quickstart.md) · [Getting Started](docs/start/GETTING-STARTED.md) · [Fundamentals](docs/FUNDAMENTALS.md) · [Protocol Flow](docs/protocol-flow.md) · [Vision](docs/VISION.md) · [npm](https://www.npmjs.com/package/artemys)
|
|
20
15
|
|
|
21
16
|
</div>
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
## The Problem
|
|
18
|
+
<br>
|
|
26
19
|
|
|
27
|
-
|
|
20
|
+
Artemys defines how AI agents representing candidates and employers discover each other, establish trust, and conduct structured career conversations — so humans only engage at moments of meaningful choice.
|
|
28
21
|
|
|
29
|
-
|
|
22
|
+
This package provides the interoperability primitives: protocol schemas, authenticated transport, discovery, and an MCP bridge. Runtime and product logic belong downstream.
|
|
30
23
|
|
|
31
|
-
|
|
24
|
+
Start with `docs/FUNDAMENTALS.md` for the implementation map (plug in -> meet -> converse).
|
|
32
25
|
|
|
33
|
-
|
|
26
|
+
<br>
|
|
34
27
|
|
|
35
|
-
|
|
28
|
+
## Architecture
|
|
36
29
|
|
|
37
|
-
|
|
30
|
+
```
|
|
31
|
+
┌──────────────────────────────────┐
|
|
32
|
+
│ Coffee Shop │
|
|
33
|
+
│ (discovery + introductions) │
|
|
34
|
+
└──────┬───────────────┬───────────┘
|
|
35
|
+
│ │
|
|
36
|
+
discover introduce
|
|
37
|
+
│ │
|
|
38
|
+
┌───────────────┴───┐ ┌───┴───────────────┐
|
|
39
|
+
│ Candidate Agent │ │ Talent Agent │
|
|
40
|
+
│ │ │ │
|
|
41
|
+
│ ┌─────────────┐ │ │ ┌─────────────┐ │
|
|
42
|
+
│ │ Protocol │◄─┼───────┼──► Protocol │ │
|
|
43
|
+
│ │ Schemas │ │ HMAC │ │ Schemas │ │
|
|
44
|
+
│ └─────────────┘ │ HTTP │ └─────────────┘ │
|
|
45
|
+
└───────────────────┘ └───────────────────┘
|
|
46
|
+
```
|
|
38
47
|
|
|
39
|
-
|
|
48
|
+
<br>
|
|
40
49
|
|
|
41
|
-
|
|
50
|
+
## Install
|
|
42
51
|
|
|
43
|
-
|
|
52
|
+
```bash
|
|
53
|
+
npm install artemys
|
|
54
|
+
```
|
|
44
55
|
|
|
45
|
-
|
|
56
|
+
<br>
|
|
46
57
|
|
|
47
|
-
|
|
58
|
+
## Modules
|
|
48
59
|
|
|
49
|
-
|
|
60
|
+
| Import | What it does |
|
|
61
|
+
|--------|-------------|
|
|
62
|
+
| `artemys` | 47 Zod schemas, 8-state machine, 12 message types |
|
|
63
|
+
| `artemys/discovery` | Agent cards, discovery queries, intro requests |
|
|
64
|
+
| `artemys/transport` | HMAC-SHA256 authenticated HTTP client and server |
|
|
65
|
+
| `artemys/coffeeshop` | Client for the Coffee Shop discovery API |
|
|
66
|
+
| `artemys/mcp-server` | MCP bridge — expose the protocol to any agent |
|
|
67
|
+
| `artemys/integrations` | Job board connectors (Ashby, Greenhouse, Lever, Remotive) |
|
|
50
68
|
|
|
51
|
-
|
|
69
|
+
<br>
|
|
52
70
|
|
|
53
|
-
|
|
71
|
+
## Quick Start
|
|
54
72
|
|
|
55
|
-
|
|
73
|
+
Reference runnable examples: `examples/README.md`
|
|
56
74
|
|
|
57
|
-
|
|
75
|
+
### Validate a protocol message
|
|
58
76
|
|
|
59
|
-
|
|
77
|
+
```typescript
|
|
78
|
+
import { ProtocolMessageSchema, HandshakeInitiateSchema } from "artemys"
|
|
60
79
|
|
|
80
|
+
const result = ProtocolMessageSchema.safeParse(incomingMessage)
|
|
81
|
+
if (!result.success) {
|
|
82
|
+
console.error(result.error.issues)
|
|
83
|
+
}
|
|
61
84
|
```
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
85
|
+
|
|
86
|
+
### Send a signed message
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
import { ProtocolTransportClient } from "artemys/transport"
|
|
90
|
+
|
|
91
|
+
const transport = new ProtocolTransportClient({
|
|
92
|
+
agentId: "candidate-agent-01",
|
|
93
|
+
getSharedSecret: async (peerId) => secrets.get(peerId),
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
const result = await transport.send(
|
|
97
|
+
"https://peer.example.com/artemys/v0.1/messages",
|
|
98
|
+
message
|
|
99
|
+
)
|
|
69
100
|
```
|
|
70
101
|
|
|
71
|
-
|
|
102
|
+
### Discover agents via Coffee Shop
|
|
72
103
|
|
|
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 |
|
|
104
|
+
Coffee Shop is the network receptionist for agents:
|
|
81
105
|
|
|
82
|
-
|
|
106
|
+
- Agents register their public card (who they are, what they can do, where they can be reached)
|
|
107
|
+
- Agents discover compatible peers for a given role/capability
|
|
108
|
+
- Agents request intros, and the target agent can accept or decline
|
|
109
|
+
- On accept, Coffee Shop returns a session bootstrap with peer endpoints, transport profile, shared secret, and rotation metadata
|
|
110
|
+
- Coffee Shop tracks intro lifecycle events and enforces safety checks (auth, compatibility, consent rules, retry-safe idempotency)
|
|
83
111
|
|
|
84
|
-
|
|
112
|
+
Coffee Shop handles matchmaking and safe handoff. The actual career conversation happens agent-to-agent through the protocol.
|
|
85
113
|
|
|
86
|
-
|
|
114
|
+
```typescript
|
|
115
|
+
import { CoffeeShopClient } from "artemys/coffeeshop"
|
|
87
116
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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 |
|
|
117
|
+
const shop = new CoffeeShopClient({
|
|
118
|
+
baseUrl: "https://coffeeshop.artemys.ai",
|
|
119
|
+
apiKey: process.env.ARTEMYS_API_KEY,
|
|
120
|
+
agentId: "candidate-agent-01",
|
|
121
|
+
})
|
|
96
122
|
|
|
97
|
-
|
|
123
|
+
const agents = await shop.discover({
|
|
124
|
+
requester_agent_id: "candidate-agent-01",
|
|
125
|
+
role: "talent_agent",
|
|
126
|
+
limit: 20,
|
|
127
|
+
})
|
|
128
|
+
```
|
|
98
129
|
|
|
99
|
-
|
|
130
|
+
### Run the reference runtime loop
|
|
100
131
|
|
|
101
132
|
```bash
|
|
102
|
-
|
|
103
|
-
# or
|
|
104
|
-
bun add artemys
|
|
133
|
+
bun run examples/reference-runtime-loop.ts
|
|
105
134
|
```
|
|
106
135
|
|
|
107
|
-
|
|
136
|
+
```bash
|
|
137
|
+
bun run examples/reference-runtime-loop.ts timeout
|
|
138
|
+
```
|
|
108
139
|
|
|
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
|
-
})
|
|
140
|
+
### Run the MCP server
|
|
123
141
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
await runtime.start()
|
|
142
|
+
```bash
|
|
143
|
+
artemys mcp-server --agent-card ./agent-card.json
|
|
127
144
|
```
|
|
128
145
|
|
|
129
|
-
|
|
146
|
+
The MCP server exposes protocol, discovery, and intro tools — letting any MCP-compatible agent participate in the Artemys network without writing transport code.
|
|
147
|
+
Set `ARTEMYS_COFFEESHOP_API_KEY` to enable intro tools; without it, the bridge registers discovery + protocol tools.
|
|
130
148
|
|
|
131
|
-
|
|
149
|
+
<br>
|
|
150
|
+
|
|
151
|
+
## Protocol
|
|
152
|
+
|
|
153
|
+
The protocol defines how two agents conduct a structured career conversation, from first contact to resolution.
|
|
132
154
|
|
|
133
155
|
```
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
├── 📡 Channels Telegram adapter · channel registry
|
|
139
|
-
└── ⚡ CLI onboard · doctor · start
|
|
156
|
+
NEW ──► HANDSHAKE_INITIATED ──► DIALOGUE_ACTIVE ──► RESOLVED
|
|
157
|
+
│ │
|
|
158
|
+
▼ ▼
|
|
159
|
+
CANDIDATE_DECLINE PAUSED_HUMAN_APPROVAL
|
|
140
160
|
```
|
|
141
161
|
|
|
142
|
-
|
|
162
|
+
**12 message types** across 4 phases — handshake, dialogue, consent, resolution — with sender role constraints, schema validation, and deterministic state transitions.
|
|
143
163
|
|
|
144
|
-
|
|
164
|
+
The protocol spec is frozen at **v0.1.0** with 41 contract fixtures and conformance tests.
|
|
145
165
|
|
|
146
|
-
|
|
166
|
+
**[Read the full spec →](protocol/)**
|
|
147
167
|
|
|
148
|
-
|
|
149
|
-
import { HandshakeInitiateSchema, PROTOCOL_VERSION } from "artemys"
|
|
150
|
-
// or explicitly:
|
|
151
|
-
import { HandshakeInitiateSchema } from "artemys/protocol"
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
Includes `Envelope`, `ConversationState`, state machine transitions, `ConsentProfile`, `ConsentGate`, `FitAssessment`, and 20+ message schemas covering every phase of agent-to-agent communication.
|
|
168
|
+
<br>
|
|
155
169
|
|
|
156
|
-
|
|
170
|
+
## Transport
|
|
157
171
|
|
|
158
|
-
|
|
172
|
+
Messages travel over HTTPS with HMAC-SHA256 authentication:
|
|
159
173
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
174
|
+
- **Endpoint:** `POST /artemys/v0.1/messages`
|
|
175
|
+
- **Signing:** `agent_id.timestamp.body` with shared secret
|
|
176
|
+
- **Replay protection:** 5-minute timestamp window
|
|
177
|
+
- **Deduplication:** by sender + message ID
|
|
178
|
+
- **Retries:** exponential backoff (5 attempts, 60s cap)
|
|
163
179
|
|
|
164
|
-
|
|
180
|
+
**[Transport spec →](protocol/docs/TRANSPORT_HTTP.md)**
|
|
165
181
|
|
|
166
|
-
|
|
182
|
+
<br>
|
|
167
183
|
|
|
168
|
-
|
|
184
|
+
## CLI
|
|
169
185
|
|
|
170
|
-
```
|
|
171
|
-
|
|
186
|
+
```bash
|
|
187
|
+
artemys mcp-server # Start the MCP bridge server
|
|
188
|
+
artemys talent # Candidate talent workflow helpers
|
|
189
|
+
artemys register # Register an agent card with Coffee Shop
|
|
190
|
+
artemys discover # Query for compatible agents
|
|
191
|
+
artemys rotate-key # Rotate Coffee Shop API key
|
|
192
|
+
artemys intro-events # Show intro lifecycle events
|
|
193
|
+
artemys version # Print CLI package version
|
|
172
194
|
```
|
|
173
195
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
### 📡 Channels
|
|
196
|
+
<br>
|
|
177
197
|
|
|
178
|
-
|
|
198
|
+
## Project Structure
|
|
179
199
|
|
|
180
|
-
```typescript
|
|
181
|
-
import { TelegramAdapter } from "artemys/channels/telegram"
|
|
182
|
-
import { ChannelRegistry } from "artemys/channels"
|
|
183
200
|
```
|
|
201
|
+
src/
|
|
202
|
+
protocol/ Zod schemas, state machine, message types
|
|
203
|
+
discovery/ Agent cards, queries, OpenAPI spec
|
|
204
|
+
transport/ HMAC client, server handler, dedup
|
|
205
|
+
coffeeshop/ Coffee Shop API client
|
|
206
|
+
mcp-server/ MCP tools (protocol, discovery, intro)
|
|
207
|
+
integrations/ Job board connectors
|
|
208
|
+
cli/ CLI commands
|
|
209
|
+
|
|
210
|
+
protocol/ Protocol spec, contracts, fixtures
|
|
211
|
+
service/ Coffee Shop service (Vercel)
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
<br>
|
|
184
215
|
|
|
185
|
-
|
|
216
|
+
## Development
|
|
186
217
|
|
|
187
218
|
```bash
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
219
|
+
bun install # Install dependencies
|
|
220
|
+
bun run type-check # Type-check without emitting
|
|
221
|
+
bun run test # Run test suite
|
|
222
|
+
bun run build # Build to dist/
|
|
223
|
+
bun run protocol:check # Run protocol contract tests
|
|
191
224
|
```
|
|
192
225
|
|
|
193
|
-
|
|
226
|
+
### Coffee Shop Service (Turso/libSQL)
|
|
194
227
|
|
|
195
|
-
|
|
228
|
+
```bash
|
|
229
|
+
cd service
|
|
230
|
+
bun install
|
|
196
231
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
| 🟠 | **Talent Agents** | Employer-side agents — anyone can build one using the protocol |
|
|
232
|
+
# Use durable DB mode
|
|
233
|
+
export ARTEMYS_DB_DRIVER=libsql
|
|
234
|
+
export TURSO_DATABASE_URL="libsql://..."
|
|
235
|
+
export TURSO_AUTH_TOKEN="..."
|
|
202
236
|
|
|
203
|
-
|
|
237
|
+
# Run schema migrations once per environment
|
|
238
|
+
bun run migrate
|
|
204
239
|
|
|
205
|
-
|
|
240
|
+
# Run service tests/type-check
|
|
241
|
+
bun run type-check
|
|
242
|
+
bun run test
|
|
206
243
|
|
|
207
|
-
|
|
244
|
+
# Optional: run coverage gate locally (same thresholded path as CI)
|
|
245
|
+
bun run test:coverage
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Non-local runtimes fail closed if durable DB config is missing.
|
|
249
|
+
If you intentionally want non-local ephemeral mode, set:
|
|
208
250
|
|
|
209
251
|
```bash
|
|
210
|
-
|
|
211
|
-
bun run build # Build the SDK
|
|
212
|
-
bun run test # Run 155+ tests
|
|
213
|
-
bun run type-check # TypeScript validation
|
|
214
|
-
bun run protocol:check # Protocol conformance tests
|
|
252
|
+
export ARTEMYS_ALLOW_IN_MEMORY_DB=true
|
|
215
253
|
```
|
|
216
254
|
|
|
217
|
-
|
|
255
|
+
Metrics endpoint auth:
|
|
218
256
|
|
|
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 |
|
|
257
|
+
- Non-local runtimes require `ARTEMYS_METRICS_TOKEN`
|
|
258
|
+
- Local/test runtimes can leave it unset for local debugging
|
|
225
259
|
|
|
226
|
-
|
|
260
|
+
```bash
|
|
261
|
+
export ARTEMYS_METRICS_TOKEN="your-shared-metrics-token"
|
|
262
|
+
```
|
|
227
263
|
|
|
228
|
-
|
|
264
|
+
Attestation policy defaults to enforce. Explicit local opt-out:
|
|
229
265
|
|
|
230
|
-
|
|
266
|
+
```bash
|
|
267
|
+
export ARTEMYS_ATTESTATION_MODE=warn
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
<br>
|
|
271
|
+
|
|
272
|
+
## Contributing
|
|
231
273
|
|
|
232
|
-
[MIT License](LICENSE)
|
|
274
|
+
Artemys is open source under the [MIT License](LICENSE).
|
|
233
275
|
|
|
276
|
+
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.
|
|
277
|
+
|
|
278
|
+
<br>
|
|
279
|
+
|
|
280
|
+
<div align="center">
|
|
281
|
+
<sub>Built by <a href="https://artemys.ai">Artemys</a></sub>
|
|
234
282
|
</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":";AA+kBA,wBAAsB,MAAM,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CxE"}
|