artemys 0.2.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -175
- package/dist/cli/config.d.ts +21 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +97 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +147 -189
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +3 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +174 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/coffeeshop/client.d.ts +24 -101
- package/dist/coffeeshop/client.d.ts.map +1 -1
- package/dist/coffeeshop/client.js +102 -153
- package/dist/coffeeshop/client.js.map +1 -1
- package/dist/coffeeshop/index.d.ts +2 -1
- package/dist/coffeeshop/index.d.ts.map +1 -1
- package/dist/coffeeshop/index.js +2 -0
- package/dist/coffeeshop/index.js.map +1 -1
- package/dist/coffeeshop/schemas.d.ts +146 -0
- package/dist/coffeeshop/schemas.d.ts.map +1 -0
- package/dist/coffeeshop/schemas.js +115 -0
- package/dist/coffeeshop/schemas.js.map +1 -0
- package/dist/discovery/agent-card.schema.d.ts +4 -2
- package/dist/discovery/agent-card.schema.d.ts.map +1 -1
- package/dist/discovery/agent-card.schema.js +10 -2
- package/dist/discovery/agent-card.schema.js.map +1 -1
- package/dist/discovery/index.d.ts +2 -4
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +2 -4
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/reserved-handles.d.ts +2 -0
- package/dist/discovery/reserved-handles.d.ts.map +1 -0
- package/dist/discovery/reserved-handles.js +18 -0
- package/dist/discovery/reserved-handles.js.map +1 -0
- package/dist/integrations/job-boards/http.d.ts +4 -1
- package/dist/integrations/job-boards/http.d.ts.map +1 -1
- package/dist/integrations/job-boards/http.js +4 -3
- package/dist/integrations/job-boards/http.js.map +1 -1
- package/dist/integrations/job-boards/remotive.d.ts.map +1 -1
- package/dist/integrations/job-boards/remotive.js +6 -35
- package/dist/integrations/job-boards/remotive.js.map +1 -1
- package/dist/mcp-server/__tests__/test-fixtures.d.ts +39 -0
- package/dist/mcp-server/__tests__/test-fixtures.d.ts.map +1 -0
- package/dist/mcp-server/__tests__/test-fixtures.js +87 -0
- package/dist/mcp-server/__tests__/test-fixtures.js.map +1 -0
- package/dist/mcp-server/index.d.ts +1 -1
- package/dist/mcp-server/index.d.ts.map +1 -1
- package/dist/mcp-server/index.js +1 -1
- package/dist/mcp-server/index.js.map +1 -1
- package/dist/mcp-server/persistence.d.ts +0 -4
- package/dist/mcp-server/persistence.d.ts.map +1 -1
- package/dist/mcp-server/persistence.js +25 -30
- package/dist/mcp-server/persistence.js.map +1 -1
- package/dist/mcp-server/server.d.ts +2 -3
- package/dist/mcp-server/server.d.ts.map +1 -1
- package/dist/mcp-server/server.js +16 -6
- package/dist/mcp-server/server.js.map +1 -1
- package/dist/mcp-server/state.d.ts +0 -1
- package/dist/mcp-server/state.d.ts.map +1 -1
- package/dist/mcp-server/state.js +0 -4
- package/dist/mcp-server/state.js.map +1 -1
- package/dist/mcp-server/tools/common.d.ts +1 -199
- package/dist/mcp-server/tools/common.d.ts.map +1 -1
- package/dist/mcp-server/tools/common.js +1 -3
- package/dist/mcp-server/tools/common.js.map +1 -1
- package/dist/mcp-server/tools/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/index.js +2 -4
- package/dist/mcp-server/tools/index.js.map +1 -1
- package/dist/mcp-server/tools/messaging.d.ts +14 -0
- package/dist/mcp-server/tools/messaging.d.ts.map +1 -0
- package/dist/mcp-server/tools/messaging.js +39 -0
- package/dist/mcp-server/tools/messaging.js.map +1 -0
- package/dist/mcp-server/tools/protocol.d.ts.map +1 -1
- package/dist/mcp-server/tools/protocol.js +0 -28
- package/dist/mcp-server/tools/protocol.js.map +1 -1
- package/dist/mcp-server/tools/talent.d.ts +18 -0
- package/dist/mcp-server/tools/talent.d.ts.map +1 -1
- package/dist/mcp-server/tools/talent.js +60 -188
- package/dist/mcp-server/tools/talent.js.map +1 -1
- package/dist/openclaw/skill.js +1 -1
- package/dist/openclaw/skill.js.map +1 -1
- package/dist/protocol/dialogue.schema.d.ts +26 -6
- 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 +11 -5
- package/dist/protocol/envelope.schema.d.ts.map +1 -1
- package/dist/protocol/envelope.schema.js +4 -2
- package/dist/protocol/envelope.schema.js.map +1 -1
- package/dist/protocol/handshake.schema.d.ts +4 -2
- package/dist/protocol/handshake.schema.d.ts.map +1 -1
- package/dist/protocol/index.d.ts +2 -3
- package/dist/protocol/index.d.ts.map +1 -1
- package/dist/protocol/index.js +2 -3
- package/dist/protocol/index.js.map +1 -1
- package/dist/protocol/message-types.d.ts +2 -1
- 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 +35 -12
- 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 +8 -4
- package/dist/protocol/resolution.schema.d.ts.map +1 -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 +115 -0
- package/dist/protocol/talent.schema.d.ts.map +1 -1
- package/dist/protocol/talent.schema.js +61 -3
- package/dist/protocol/talent.schema.js.map +1 -1
- package/dist/resume/index.d.ts +4 -0
- package/dist/resume/index.d.ts.map +1 -0
- package/dist/resume/index.js +4 -0
- package/dist/resume/index.js.map +1 -0
- package/dist/resume/parse-resume.d.ts +8 -0
- package/dist/resume/parse-resume.d.ts.map +1 -0
- package/dist/resume/parse-resume.js +117 -0
- package/dist/resume/parse-resume.js.map +1 -0
- package/dist/resume/providers/anthropic.d.ts +2 -0
- package/dist/resume/providers/anthropic.d.ts.map +1 -0
- package/dist/resume/providers/anthropic.js +26 -0
- package/dist/resume/providers/anthropic.js.map +1 -0
- package/dist/resume/providers/google.d.ts +2 -0
- package/dist/resume/providers/google.d.ts.map +1 -0
- package/dist/resume/providers/google.js +24 -0
- package/dist/resume/providers/google.js.map +1 -0
- package/dist/resume/providers/openai.d.ts +2 -0
- package/dist/resume/providers/openai.d.ts.map +1 -0
- package/dist/resume/providers/openai.js +25 -0
- package/dist/resume/providers/openai.js.map +1 -0
- package/dist/resume/to-card.d.ts +7 -0
- package/dist/resume/to-card.d.ts.map +1 -0
- package/dist/resume/to-card.js +63 -0
- package/dist/resume/to-card.js.map +1 -0
- package/package.json +11 -6
- package/dist/discovery/intro-decision.schema.d.ts +0 -16
- package/dist/discovery/intro-decision.schema.d.ts.map +0 -1
- package/dist/discovery/intro-decision.schema.js +0 -10
- package/dist/discovery/intro-decision.schema.js.map +0 -1
- package/dist/discovery/intro-request.schema.d.ts +0 -10
- package/dist/discovery/intro-request.schema.d.ts.map +0 -1
- package/dist/discovery/intro-request.schema.js +0 -11
- package/dist/discovery/intro-request.schema.js.map +0 -1
- package/dist/discovery/session-bootstrap.schema.d.ts +0 -97
- package/dist/discovery/session-bootstrap.schema.d.ts.map +0 -1
- package/dist/discovery/session-bootstrap.schema.js +0 -100
- package/dist/discovery/session-bootstrap.schema.js.map +0 -1
- package/dist/mcp-server/tools/intro.d.ts +0 -3
- package/dist/mcp-server/tools/intro.d.ts.map +0 -1
- package/dist/mcp-server/tools/intro.js +0 -53
- package/dist/mcp-server/tools/intro.js.map +0 -1
- package/dist/protocol/transport.schema.d.ts +0 -27
- package/dist/protocol/transport.schema.d.ts.map +0 -1
- package/dist/protocol/transport.schema.js +0 -18
- package/dist/protocol/transport.schema.js.map +0 -1
- package/dist/transport/client.d.ts +0 -32
- package/dist/transport/client.d.ts.map +0 -1
- package/dist/transport/client.js +0 -155
- package/dist/transport/client.js.map +0 -1
- package/dist/transport/dedup.d.ts +0 -9
- package/dist/transport/dedup.d.ts.map +0 -1
- package/dist/transport/dedup.js +0 -36
- package/dist/transport/dedup.js.map +0 -1
- package/dist/transport/handler.d.ts +0 -9
- package/dist/transport/handler.d.ts.map +0 -1
- package/dist/transport/handler.js +0 -105
- package/dist/transport/handler.js.map +0 -1
- package/dist/transport/hmac.d.ts +0 -3
- package/dist/transport/hmac.d.ts.map +0 -1
- package/dist/transport/hmac.js +0 -43
- package/dist/transport/hmac.js.map +0 -1
- package/dist/transport/index.d.ts +0 -6
- package/dist/transport/index.d.ts.map +0 -1
- package/dist/transport/index.js +0 -6
- package/dist/transport/index.js.map +0 -1
- package/dist/transport/reference-runner.d.ts +0 -37
- package/dist/transport/reference-runner.d.ts.map +0 -1
- package/dist/transport/reference-runner.js +0 -372
- package/dist/transport/reference-runner.js.map +0 -1
package/dist/cli/init.js
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import { PROTOCOL_VERSION } from "../protocol/index.js";
|
|
3
|
+
import { HandleSchema, RESERVED_HANDLES } from "../discovery/index.js";
|
|
4
|
+
import { CoffeeShopClient } from "../coffeeshop/index.js";
|
|
5
|
+
import { DEFAULT_COFFEESHOP_URL, getConfigPath, getDefaultAgentCardPath, getFlagString, loadConfig, saveConfig, saveAgentCard, resolveCoffeeShopUrl, } from "./config.js";
|
|
6
|
+
function hasTty() {
|
|
7
|
+
return Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
8
|
+
}
|
|
9
|
+
async function prompt(question) {
|
|
10
|
+
const { createInterface } = await import("node:readline/promises");
|
|
11
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
12
|
+
try {
|
|
13
|
+
return await rl.question(question);
|
|
14
|
+
}
|
|
15
|
+
finally {
|
|
16
|
+
rl.close();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async function promptChoice(question, choices) {
|
|
20
|
+
const numbered = choices.map((c, i) => ` ${i + 1}) ${c}`).join("\n");
|
|
21
|
+
const answer = await prompt(`${question}\n${numbered}\nChoice: `);
|
|
22
|
+
const index = Number.parseInt(answer.trim(), 10) - 1;
|
|
23
|
+
if (index >= 0 && index < choices.length) {
|
|
24
|
+
return choices[index];
|
|
25
|
+
}
|
|
26
|
+
// If they typed the choice directly
|
|
27
|
+
const lower = answer.trim().toLowerCase();
|
|
28
|
+
const match = choices.find((c) => c.toLowerCase() === lower);
|
|
29
|
+
if (match) {
|
|
30
|
+
return match;
|
|
31
|
+
}
|
|
32
|
+
throw new Error(`Invalid choice: ${answer.trim()}`);
|
|
33
|
+
}
|
|
34
|
+
function parseHandle(raw) {
|
|
35
|
+
const handle = `@${raw.replace(/^@/, "")}`;
|
|
36
|
+
const result = HandleSchema.safeParse(handle);
|
|
37
|
+
if (!result.success) {
|
|
38
|
+
throw new Error(`Invalid handle "${handle}": ${result.error.issues[0]?.message ?? "format error"}`);
|
|
39
|
+
}
|
|
40
|
+
if (RESERVED_HANDLES.has(handle)) {
|
|
41
|
+
throw new Error(`Handle "${handle}" is reserved and cannot be registered`);
|
|
42
|
+
}
|
|
43
|
+
return handle;
|
|
44
|
+
}
|
|
45
|
+
export async function initCommand(args) {
|
|
46
|
+
const force = args.flags.force === true;
|
|
47
|
+
// Check for existing config
|
|
48
|
+
const existingConfig = loadConfig();
|
|
49
|
+
if (existingConfig && !force) {
|
|
50
|
+
console.error(`Already initialized (agent: ${existingConfig.agent_id}).\n` +
|
|
51
|
+
`Config: ${getConfigPath()}\n` +
|
|
52
|
+
`Use --force to re-initialize.`);
|
|
53
|
+
process.exitCode = 1;
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const interactive = hasTty();
|
|
57
|
+
const displayNameFlag = getFlagString(args.flags, "display-name");
|
|
58
|
+
const roleFlag = getFlagString(args.flags, "role");
|
|
59
|
+
const webhookUrlFlag = getFlagString(args.flags, "webhook-url");
|
|
60
|
+
// Collect display_name
|
|
61
|
+
let displayName;
|
|
62
|
+
if (displayNameFlag) {
|
|
63
|
+
displayName = displayNameFlag;
|
|
64
|
+
}
|
|
65
|
+
else if (interactive) {
|
|
66
|
+
displayName = (await prompt("Display name: ")).trim();
|
|
67
|
+
if (displayName.length === 0) {
|
|
68
|
+
throw new Error("Display name is required");
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
throw new Error("Non-interactive mode requires flags: --display-name <name> --role <candidate|employer> --handle <handle>");
|
|
73
|
+
}
|
|
74
|
+
// Collect role
|
|
75
|
+
let role;
|
|
76
|
+
if (roleFlag) {
|
|
77
|
+
if (roleFlag !== "candidate" && roleFlag !== "employer") {
|
|
78
|
+
throw new Error('--role must be "candidate" or "employer"');
|
|
79
|
+
}
|
|
80
|
+
role = roleFlag;
|
|
81
|
+
}
|
|
82
|
+
else if (interactive) {
|
|
83
|
+
const chosen = await promptChoice("Role:", ["candidate", "employer"]);
|
|
84
|
+
role = chosen;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
throw new Error("Non-interactive mode requires flags: --display-name <name> --role <candidate|employer> --handle <handle>");
|
|
88
|
+
}
|
|
89
|
+
// Collect handle
|
|
90
|
+
const handleFlag = getFlagString(args.flags, "handle");
|
|
91
|
+
let handle;
|
|
92
|
+
if (handleFlag) {
|
|
93
|
+
handle = parseHandle(handleFlag);
|
|
94
|
+
}
|
|
95
|
+
else if (interactive) {
|
|
96
|
+
const raw = (await prompt("Pick a handle (letters, numbers, hyphens): ")).trim();
|
|
97
|
+
if (raw.length === 0) {
|
|
98
|
+
throw new Error("Handle is required");
|
|
99
|
+
}
|
|
100
|
+
handle = parseHandle(raw);
|
|
101
|
+
console.log(` Handle: ${handle} ✓ format valid`);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
throw new Error("Non-interactive mode requires flags: --display-name <name> --role <candidate|employer> --handle <handle>");
|
|
105
|
+
}
|
|
106
|
+
// Collect webhook_url (employers only, optional for candidates)
|
|
107
|
+
let webhookUrl;
|
|
108
|
+
if (role === "candidate") {
|
|
109
|
+
webhookUrl = webhookUrlFlag || undefined;
|
|
110
|
+
}
|
|
111
|
+
else if (webhookUrlFlag) {
|
|
112
|
+
webhookUrl = webhookUrlFlag;
|
|
113
|
+
}
|
|
114
|
+
else if (interactive) {
|
|
115
|
+
webhookUrl = (await prompt("Webhook URL: ")).trim();
|
|
116
|
+
if (webhookUrl.length === 0) {
|
|
117
|
+
throw new Error("Webhook URL is required for employer agents");
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
throw new Error("Employer agents require --webhook-url <url>");
|
|
122
|
+
}
|
|
123
|
+
const agentId = handle;
|
|
124
|
+
// Build agent card
|
|
125
|
+
const agentCardRole = role === "candidate" ? "candidate_agent" : "talent_agent";
|
|
126
|
+
const agentCard = {
|
|
127
|
+
agent_id: agentId,
|
|
128
|
+
display_name: displayName,
|
|
129
|
+
role: agentCardRole,
|
|
130
|
+
protocol_versions: [PROTOCOL_VERSION],
|
|
131
|
+
capabilities: ["discovery", "messaging"],
|
|
132
|
+
endpoints: webhookUrl ? { webhook_url: webhookUrl } : {},
|
|
133
|
+
policy: { requires_candidate_consent: true },
|
|
134
|
+
status: "online",
|
|
135
|
+
};
|
|
136
|
+
// Register with Coffee Shop
|
|
137
|
+
const coffeeShopUrl = resolveCoffeeShopUrl(args.flags);
|
|
138
|
+
const client = new CoffeeShopClient({ baseUrl: coffeeShopUrl });
|
|
139
|
+
let result;
|
|
140
|
+
try {
|
|
141
|
+
result = await client.register(agentCard);
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
145
|
+
if (message.includes("409") || message.toLowerCase().includes("already exists")) {
|
|
146
|
+
throw new Error("Handle already taken on Coffee Shop. Try a different one.");
|
|
147
|
+
}
|
|
148
|
+
throw new Error(`Could not reach Coffee Shop at ${coffeeShopUrl}: ${message}`);
|
|
149
|
+
}
|
|
150
|
+
// Save files
|
|
151
|
+
const agentCardPath = getDefaultAgentCardPath();
|
|
152
|
+
saveAgentCard(agentCard, agentCardPath);
|
|
153
|
+
saveConfig({
|
|
154
|
+
agent_id: result.agent_id,
|
|
155
|
+
api_key: result.api_key,
|
|
156
|
+
...(coffeeShopUrl !== DEFAULT_COFFEESHOP_URL
|
|
157
|
+
? { coffeeshop_url: coffeeShopUrl }
|
|
158
|
+
: {}),
|
|
159
|
+
});
|
|
160
|
+
console.log(`
|
|
161
|
+
Initialized successfully!
|
|
162
|
+
|
|
163
|
+
Handle: ${result.agent_id}
|
|
164
|
+
Role: ${role}
|
|
165
|
+
Agent card: ${agentCardPath}
|
|
166
|
+
Config: ${getConfigPath()}
|
|
167
|
+
|
|
168
|
+
Next steps:
|
|
169
|
+
artemys talent search Search for matching opportunities
|
|
170
|
+
artemys mcp-server Start MCP server for AI assistants
|
|
171
|
+
artemys discover --role talent_agent Find employer agents
|
|
172
|
+
`);
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { type AgentCard, type DiscoveryQuery
|
|
2
|
+
import { type AgentCard, type DiscoveryQuery } from "../discovery/index.js";
|
|
3
|
+
import { type ApplicationResponse, type CandidateMatch, type InboxMessage, type JobCreate, type JobResponse, type MatchResult, type ProfileCreate, type ProfileResponse } from "./schemas.js";
|
|
3
4
|
declare const RegisterAgentCardSchema: z.ZodObject<{
|
|
5
|
+
agent_id: z.ZodString;
|
|
4
6
|
role: z.ZodEnum<{
|
|
5
7
|
candidate_agent: "candidate_agent";
|
|
6
8
|
talent_agent: "talent_agent";
|
|
7
9
|
}>;
|
|
8
10
|
endpoints: z.ZodObject<{
|
|
9
|
-
webhook_url: z.ZodString
|
|
11
|
+
webhook_url: z.ZodOptional<z.ZodString>;
|
|
10
12
|
supports_relay: z.ZodOptional<z.ZodBoolean>;
|
|
11
13
|
}, z.core.$strict>;
|
|
12
14
|
policy: z.ZodObject<{
|
|
@@ -18,7 +20,6 @@ declare const RegisterAgentCardSchema: z.ZodObject<{
|
|
|
18
20
|
degraded: "degraded";
|
|
19
21
|
offline: "offline";
|
|
20
22
|
}>;
|
|
21
|
-
agent_id: z.ZodString;
|
|
22
23
|
display_name: z.ZodString;
|
|
23
24
|
protocol_versions: z.ZodArray<z.ZodString>;
|
|
24
25
|
capabilities: z.ZodArray<z.ZodString>;
|
|
@@ -32,96 +33,11 @@ declare const RegisterAgentCardSchema: z.ZodObject<{
|
|
|
32
33
|
expires_at: z.ZodString;
|
|
33
34
|
}, z.core.$strict>>;
|
|
34
35
|
}, z.core.$strict>;
|
|
35
|
-
declare const IntroStatusSchema: z.ZodObject<{
|
|
36
|
-
id: z.ZodString;
|
|
37
|
-
requester_agent_id: z.ZodString;
|
|
38
|
-
target_agent_id: z.ZodString;
|
|
39
|
-
reason: z.ZodString;
|
|
40
|
-
requested_capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
41
|
-
consent_artifact_id: z.ZodOptional<z.ZodString>;
|
|
42
|
-
status: z.ZodEnum<{
|
|
43
|
-
pending: "pending";
|
|
44
|
-
accepted: "accepted";
|
|
45
|
-
declined: "declined";
|
|
46
|
-
expired: "expired";
|
|
47
|
-
}>;
|
|
48
|
-
decision_reason: z.ZodOptional<z.ZodString>;
|
|
49
|
-
session_bootstrap: z.ZodOptional<z.ZodObject<{
|
|
50
|
-
intro_id: z.ZodString;
|
|
51
|
-
initiator_agent_id: z.ZodString;
|
|
52
|
-
responder_agent_id: z.ZodString;
|
|
53
|
-
relay: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
54
|
-
mode: z.ZodLiteral<"disabled">;
|
|
55
|
-
enabled: z.ZodLiteral<false>;
|
|
56
|
-
reason: z.ZodEnum<{
|
|
57
|
-
direct_handoff_preferred: "direct_handoff_preferred";
|
|
58
|
-
not_supported: "not_supported";
|
|
59
|
-
service_not_configured: "service_not_configured";
|
|
60
|
-
}>;
|
|
61
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
62
|
-
mode: z.ZodLiteral<"enabled">;
|
|
63
|
-
enabled: z.ZodLiteral<true>;
|
|
64
|
-
relay_endpoint: z.ZodString;
|
|
65
|
-
session_token: z.ZodString;
|
|
66
|
-
expires_at: z.ZodString;
|
|
67
|
-
}, z.core.$strict>], "mode">;
|
|
68
|
-
direct_handoff: z.ZodObject<{
|
|
69
|
-
transport: z.ZodLiteral<"https+hmac-sha256">;
|
|
70
|
-
message_path: z.ZodString;
|
|
71
|
-
initiator_endpoint: z.ZodString;
|
|
72
|
-
responder_endpoint: z.ZodString;
|
|
73
|
-
shared_secret: z.ZodObject<{
|
|
74
|
-
secret_id: z.ZodString;
|
|
75
|
-
algorithm: z.ZodLiteral<"hmac-sha256">;
|
|
76
|
-
value: z.ZodString;
|
|
77
|
-
issued_at: z.ZodString;
|
|
78
|
-
rotate_after: z.ZodString;
|
|
79
|
-
expires_at: z.ZodString;
|
|
80
|
-
previous_secret_id: z.ZodOptional<z.ZodString>;
|
|
81
|
-
}, z.core.$strict>;
|
|
82
|
-
secret_rotation: z.ZodObject<{
|
|
83
|
-
rotate_url: z.ZodString;
|
|
84
|
-
min_interval_seconds: z.ZodNumber;
|
|
85
|
-
grace_period_seconds: z.ZodNumber;
|
|
86
|
-
}, z.core.$strict>;
|
|
87
|
-
}, z.core.$strict>;
|
|
88
|
-
expires_at: z.ZodString;
|
|
89
|
-
}, z.core.$strict>>;
|
|
90
|
-
created_at: z.ZodOptional<z.ZodString>;
|
|
91
|
-
decided_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
92
|
-
expires_at: z.ZodOptional<z.ZodString>;
|
|
93
|
-
}, z.core.$loose>;
|
|
94
|
-
declare const IntroEventSchema: z.ZodObject<{
|
|
95
|
-
id: z.ZodString;
|
|
96
|
-
intro_id: z.ZodString;
|
|
97
|
-
event_type: z.ZodEnum<{
|
|
98
|
-
accepted: "accepted";
|
|
99
|
-
declined: "declined";
|
|
100
|
-
expired: "expired";
|
|
101
|
-
requested: "requested";
|
|
102
|
-
requested_replayed: "requested_replayed";
|
|
103
|
-
}>;
|
|
104
|
-
actor_agent_id: z.ZodOptional<z.ZodString>;
|
|
105
|
-
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
106
|
-
created_at: z.ZodString;
|
|
107
|
-
}, z.core.$loose>;
|
|
108
|
-
export type IntroStatus = z.infer<typeof IntroStatusSchema>;
|
|
109
|
-
export type IntroEvent = z.infer<typeof IntroEventSchema>;
|
|
110
|
-
export type TransportSharedSecret = {
|
|
111
|
-
intro_id: string;
|
|
112
|
-
peer_agent_id: string;
|
|
113
|
-
secret_id: string;
|
|
114
|
-
value: string;
|
|
115
|
-
expires_at: string;
|
|
116
|
-
};
|
|
117
36
|
export interface CoffeeShopClientOptions {
|
|
118
37
|
baseUrl: string;
|
|
119
38
|
apiKey?: string;
|
|
120
39
|
agentId?: string;
|
|
121
40
|
}
|
|
122
|
-
export interface RequestIntroOptions {
|
|
123
|
-
idempotencyKey?: string;
|
|
124
|
-
}
|
|
125
41
|
export declare class CoffeeShopClient {
|
|
126
42
|
private readonly baseUrl;
|
|
127
43
|
private apiKey?;
|
|
@@ -134,24 +50,31 @@ export declare class CoffeeShopClient {
|
|
|
134
50
|
getCard(agentId: string): Promise<AgentCard | null>;
|
|
135
51
|
updateCard(updates: Partial<AgentCard>): Promise<AgentCard>;
|
|
136
52
|
discover(query: DiscoveryQuery): Promise<AgentCard[]>;
|
|
137
|
-
requestIntro(request: IntroRequest, options?: RequestIntroOptions): Promise<{
|
|
138
|
-
intro_id: string;
|
|
139
|
-
idempotent_replay?: boolean;
|
|
140
|
-
}>;
|
|
141
|
-
getIntro(introId: string): Promise<IntroStatus>;
|
|
142
|
-
listIntros(status?: IntroStatus["status"]): Promise<IntroStatus[]>;
|
|
143
|
-
listPendingIntros(): Promise<IntroStatus[]>;
|
|
144
|
-
listIntroEvents(introId: string): Promise<IntroEvent[]>;
|
|
145
|
-
respondToIntro(introId: string, decision: IntroDecision): Promise<SessionBootstrap | null>;
|
|
146
53
|
rotateApiKey(): Promise<{
|
|
147
54
|
agent_id: string;
|
|
148
55
|
api_key: string;
|
|
149
56
|
rotated_at: string;
|
|
150
57
|
}>;
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
58
|
+
createProfile(profile: ProfileCreate): Promise<ProfileResponse>;
|
|
59
|
+
getMatches(options?: {
|
|
60
|
+
limit?: number;
|
|
61
|
+
}): Promise<MatchResult[]>;
|
|
62
|
+
submitApplication(jobId: string, snapshot: Record<string, unknown>, reasoning?: string): Promise<ApplicationResponse>;
|
|
63
|
+
getInbox(options?: {
|
|
64
|
+
unread_only?: boolean;
|
|
65
|
+
}): Promise<InboxMessage[]>;
|
|
66
|
+
respondToMessage(messageId: string, content: Record<string, unknown>, messageType?: string): Promise<void>;
|
|
67
|
+
createJob(job: JobCreate): Promise<JobResponse>;
|
|
68
|
+
getCandidates(options?: {
|
|
69
|
+
job_id?: string;
|
|
70
|
+
limit?: number;
|
|
71
|
+
}): Promise<CandidateMatch[]>;
|
|
72
|
+
messageCandidate(candidateAgentId: string, content: Record<string, unknown>, messageType?: string, applicationId?: string): Promise<void>;
|
|
73
|
+
getApplications(options?: {
|
|
74
|
+
job_id?: string;
|
|
75
|
+
status?: string;
|
|
76
|
+
}): Promise<ApplicationResponse[]>;
|
|
77
|
+
decideApplication(applicationId: string, decision: string, reason?: string): Promise<void>;
|
|
155
78
|
private request;
|
|
156
79
|
}
|
|
157
80
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/coffeeshop/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/coffeeshop/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAWL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,cAAc,CAAA;AAErB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE3B,CAAA;AAkBF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAQ;gBAErB,OAAO,EAAE,uBAAuB;IAQtC,QAAQ,CACZ,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GACxD,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAS3C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAWnD,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAc3D,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAWrD,YAAY,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBlF,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAU/D,UAAU,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAahE,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC;IAczB,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAatE,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAcV,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAU/C,aAAa,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAgBvF,gBAAgB,CACpB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC;IAaV,eAAe,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAgB/F,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;YAWF,OAAO;CAoDtB"}
|