artemys 0.3.1 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/README.md +14 -20
- 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 +310 -106
- 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 +177 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/coffeeshop/client.d.ts +5 -10
- package/dist/coffeeshop/client.d.ts.map +1 -1
- package/dist/coffeeshop/client.js +43 -15
- package/dist/coffeeshop/client.js.map +1 -1
- package/dist/coffeeshop/index.d.ts +1 -1
- package/dist/coffeeshop/index.d.ts.map +1 -1
- package/dist/coffeeshop/index.js +1 -1
- package/dist/coffeeshop/index.js.map +1 -1
- package/dist/coffeeshop/schemas.d.ts +22 -16
- package/dist/coffeeshop/schemas.d.ts.map +1 -1
- package/dist/coffeeshop/schemas.js +27 -30
- package/dist/coffeeshop/schemas.js.map +1 -1
- 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 +11 -3
- package/dist/discovery/agent-card.schema.js.map +1 -1
- package/dist/discovery/index.d.ts +2 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +2 -1
- 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/jsonld.d.ts.map +1 -1
- package/dist/integrations/job-boards/jsonld.js +28 -0
- package/dist/integrations/job-boards/jsonld.js.map +1 -1
- package/dist/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/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/prompts.d.ts +20 -0
- package/dist/mcp-server/prompts.d.ts.map +1 -0
- package/dist/mcp-server/prompts.js +44 -0
- package/dist/mcp-server/prompts.js.map +1 -0
- package/dist/mcp-server/resources.d.ts +2 -1
- package/dist/mcp-server/resources.d.ts.map +1 -1
- package/dist/mcp-server/resources.js +15 -0
- package/dist/mcp-server/resources.js.map +1 -1
- package/dist/mcp-server/server.d.ts +3 -0
- package/dist/mcp-server/server.d.ts.map +1 -1
- package/dist/mcp-server/server.js +40 -3
- 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 -219
- 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 -0
- package/dist/mcp-server/tools/index.js.map +1 -1
- package/dist/mcp-server/tools/messaging.d.ts +11 -0
- package/dist/mcp-server/tools/messaging.d.ts.map +1 -1
- package/dist/mcp-server/tools/messaging.js +14 -4
- package/dist/mcp-server/tools/messaging.js.map +1 -1
- package/dist/mcp-server/tools/protocol.js.map +1 -1
- package/dist/mcp-server/tools/resume.d.ts +3 -0
- package/dist/mcp-server/tools/resume.d.ts.map +1 -0
- package/dist/mcp-server/tools/resume.js +61 -0
- package/dist/mcp-server/tools/resume.js.map +1 -0
- package/dist/mcp-server/tools/talent.d.ts +25 -0
- package/dist/mcp-server/tools/talent.d.ts.map +1 -1
- package/dist/mcp-server/tools/talent.js +123 -43
- package/dist/mcp-server/tools/talent.js.map +1 -1
- package/dist/protocol/envelope.schema.d.ts +1 -1
- 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/index.d.ts +1 -2
- package/dist/protocol/index.d.ts.map +1 -1
- package/dist/protocol/index.js +1 -2
- package/dist/protocol/index.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 +124 -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 +10 -1
- package/skills/artemys-talent/SKILL.md +258 -0
- package/skills/artemys-talent/references/TOOLS.md +479 -0
- package/skills/artemys-talent/scripts/setup.sh +88 -0
- package/dist/discovery/intro-decision.schema.d.ts +0 -17
- package/dist/discovery/intro-decision.schema.d.ts.map +0 -1
- package/dist/discovery/intro-decision.schema.js +0 -11
- package/dist/discovery/intro-decision.schema.js.map +0 -1
- package/dist/discovery/intro-request.schema.d.ts +0 -11
- package/dist/discovery/intro-request.schema.d.ts.map +0 -1
- package/dist/discovery/intro-request.schema.js +0 -12
- package/dist/discovery/intro-request.schema.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/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,43 @@ All notable changes to this project are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 0.3.3 - 2026-03-06
|
|
8
|
+
|
|
9
|
+
- Hardened candidate SDK tool surface: 11 → 16 MCP tools for fully autonomous job search.
|
|
10
|
+
- Added `get_identity`, `get_profile`, `get_my_applications` MCP tools for identity, profile read-back, and application tracking.
|
|
11
|
+
- Added `parse_resume` and `resume_to_profile` MCP tools to complete the resume-to-profile pipeline within the tool surface.
|
|
12
|
+
- Added `artemys://profile` MCP resource and `onboard_candidate` MCP prompt for guided onboarding.
|
|
13
|
+
- Added `artemys whoami` and `artemys doctor` CLI commands for identity verification and setup diagnostics.
|
|
14
|
+
- Added `artemys talent whoami` and `artemys talent applications` CLI subcommands.
|
|
15
|
+
- Renamed `artemys init` → `artemys start` (`init` kept as silent alias for backward compatibility).
|
|
16
|
+
- Added `limit` parameter to `search_opportunities` tool and `artemys talent search` CLI.
|
|
17
|
+
- Fixed stale references: `Orion` → `Orry`, `api.artemys.io` → `coffeeshop.artemys.ai`.
|
|
18
|
+
|
|
19
|
+
## 0.3.2 - 2026-03-04
|
|
20
|
+
|
|
21
|
+
- Switched to handle-based agent identity (`@handle` format).
|
|
22
|
+
- Extracted Coffee Shop service to private repo; SDK ships the client only.
|
|
23
|
+
- Hardened CoffeeShopClient: API key in `Authorization` header, sanitized error responses, `ARTEMYS_COFFEESHOP_API_KEY` env var fallback, SSRF validation on base URL, HTTP request timeout.
|
|
24
|
+
- Added Zod validation on `decideApplication`, `.max(256)` on AgentCard `display_name`, resume text size cap, HTTPS enforcement for `coffeeshop_url`.
|
|
25
|
+
- Added bearer token auth to SSE MCP transport.
|
|
26
|
+
- Truncated LLM provider error responses to prevent credential leakage.
|
|
27
|
+
- Excluded `__tests__` dirs from TypeScript build output.
|
|
28
|
+
- Added `engines` field to `package.json`.
|
|
29
|
+
|
|
30
|
+
## 0.3.1 - 2026-03-03
|
|
31
|
+
|
|
32
|
+
- Added candidate onboarding system: resume parsing (`artemys/resume`), PII stripping, `parseResume` CLI command with PDF text extraction.
|
|
33
|
+
- Added `artemys start` (formerly `init`) command and config-based auto-resolution for agent card + API key.
|
|
34
|
+
- Removed remaining P2P transport schemas, dead examples, and unused functions.
|
|
35
|
+
|
|
36
|
+
## 0.3.0 - 2026-03-02
|
|
37
|
+
|
|
38
|
+
- **Breaking:** Replaced peer-to-peer transport with Coffee Shop hub routing. All messages now route through Coffee Shop. No HMAC shared secrets between agents.
|
|
39
|
+
- Removed `ProtocolTransportClient`, P2P transport layer, and related dead tools.
|
|
40
|
+
- CoffeeShopClient with 17 hub methods: register, profiles, jobs, matching, applications, messaging, inbox.
|
|
41
|
+
- MCP server with 11 tools across discovery, protocol, talent, and messaging categories.
|
|
42
|
+
- API key authentication (Bearer token). Agents register once, get a key, use it everywhere.
|
|
43
|
+
|
|
7
44
|
## 0.2.1 - 2026-03-02
|
|
8
45
|
|
|
9
46
|
- Added SQLite-backed MCP persistence for profile + conversation state and exposed persistence APIs from `artemys/mcp-server`.
|
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ import { CoffeeShopClient } from "artemys/coffeeshop"
|
|
|
51
51
|
|
|
52
52
|
// Create a client (canonical URL baked in, or override for self-hosting)
|
|
53
53
|
const client = new CoffeeShopClient({
|
|
54
|
-
baseUrl: "https://
|
|
54
|
+
baseUrl: "https://coffeeshop.artemys.ai",
|
|
55
55
|
apiKey: "cs_live_...",
|
|
56
56
|
agentId: "candidate-agent-01",
|
|
57
57
|
})
|
|
@@ -88,6 +88,7 @@ const messages = await client.getInbox({ unread_only: true })
|
|
|
88
88
|
| `artemys/discovery` | Agent card schemas |
|
|
89
89
|
| `artemys/coffeeshop` | **Coffee Shop hub client** — profiles, jobs, matching, messaging |
|
|
90
90
|
| `artemys/mcp-server` | MCP server + talent tools for AI agents |
|
|
91
|
+
| `artemys/resume` | Resume parsing (`parseResume`) and agent card conversion (`toCard`) |
|
|
91
92
|
| `artemys/integrations` | Job board connectors (cold-start bridge) |
|
|
92
93
|
| `artemys/openclaw` | OpenClaw skill manifest |
|
|
93
94
|
|
|
@@ -138,12 +139,17 @@ Rotate keys anytime: `POST /v1/agents/{id}/rotate-key`
|
|
|
138
139
|
## CLI
|
|
139
140
|
|
|
140
141
|
```bash
|
|
142
|
+
artemys start # Initialize agent identity and register with Coffee Shop
|
|
143
|
+
artemys whoami # Show current agent identity and hub status
|
|
144
|
+
artemys doctor # Run diagnostics on agent setup
|
|
141
145
|
artemys register # Register an agent card with Coffee Shop
|
|
142
146
|
artemys discover # Query for compatible agents
|
|
143
147
|
artemys rotate-key # Rotate Coffee Shop API key
|
|
144
148
|
artemys mcp-server # Start the MCP bridge server
|
|
149
|
+
artemys talent whoami # Show candidate profile summary
|
|
145
150
|
artemys talent search # Search for matching opportunities
|
|
146
151
|
artemys talent apply # Submit an application
|
|
152
|
+
artemys talent applications # List submitted applications
|
|
147
153
|
artemys talent status # Check inbox messages
|
|
148
154
|
artemys talent profile # Update stored candidate profile
|
|
149
155
|
artemys version # Print CLI version
|
|
@@ -165,10 +171,13 @@ artemys mcp-server --agent-card ./agent-card.json --persist
|
|
|
165
171
|
|
|
166
172
|
| Category | Tools |
|
|
167
173
|
|----------|-------|
|
|
168
|
-
|
|
|
174
|
+
| Identity | `get_identity` |
|
|
175
|
+
| Profile | `get_profile` |
|
|
176
|
+
| Discovery | `discover_agents`, `get_agent_card`, `register_agent` |
|
|
177
|
+
| Protocol | `get_conversation_state`, `validate_message`, `list_conversations` |
|
|
178
|
+
| Talent | `search_opportunities`, `express_interest`, `update_profile`, `get_my_applications` |
|
|
179
|
+
| Resume | `parse_resume`, `resume_to_profile` |
|
|
169
180
|
| 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` |
|
|
172
181
|
|
|
173
182
|
See [MCP Integration Guide](docs/mcp-integration.md) for setup with Claude Code, Cursor, and Windsurf.
|
|
174
183
|
|
|
@@ -186,21 +195,6 @@ See [OpenClaw Skill Guide](docs/openclaw-skill.md).
|
|
|
186
195
|
|
|
187
196
|
<br>
|
|
188
197
|
|
|
189
|
-
## Coffee Shop Service
|
|
190
|
-
|
|
191
|
-
Self-host the Coffee Shop server for development or testing:
|
|
192
|
-
|
|
193
|
-
```bash
|
|
194
|
-
cd service
|
|
195
|
-
bun install
|
|
196
|
-
bun run migrate
|
|
197
|
-
vercel dev
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
Production deployment uses Vercel serverless + Turso (LibSQL).
|
|
201
|
-
|
|
202
|
-
<br>
|
|
203
|
-
|
|
204
198
|
## Development
|
|
205
199
|
|
|
206
200
|
```bash
|
|
@@ -216,7 +210,7 @@ bun run protocol:check # Run protocol contract tests
|
|
|
216
210
|
## Ecosystem
|
|
217
211
|
|
|
218
212
|
- [Artie](https://artie.app) — hosted candidate agent (for users without a personal AI)
|
|
219
|
-
- [
|
|
213
|
+
- [Orry](https://github.com/artemyshq/orry) — employer talent agent (Slack-first agentic ATS)
|
|
220
214
|
|
|
221
215
|
<br>
|
|
222
216
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const DEFAULT_COFFEESHOP_URL = "https://coffeeshop.artemys.ai";
|
|
3
|
+
export declare const ArtemysConfigSchema: z.ZodObject<{
|
|
4
|
+
agent_id: z.ZodString;
|
|
5
|
+
api_key: z.ZodString;
|
|
6
|
+
coffeeshop_url: z.ZodOptional<z.ZodString>;
|
|
7
|
+
agent_card_path: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export type ArtemysConfig = z.infer<typeof ArtemysConfigSchema>;
|
|
10
|
+
export declare function getConfigDir(): string;
|
|
11
|
+
export declare function getConfigPath(): string;
|
|
12
|
+
export declare function getDefaultAgentCardPath(): string;
|
|
13
|
+
export declare function loadConfig(): ArtemysConfig | null;
|
|
14
|
+
export declare function saveConfig(config: ArtemysConfig): void;
|
|
15
|
+
export declare function saveAgentCard(card: Record<string, unknown>, path?: string): void;
|
|
16
|
+
export type FlagMap = Record<string, string | string[] | boolean>;
|
|
17
|
+
export declare function getFlagString(flags: FlagMap, key: string): string | undefined;
|
|
18
|
+
export declare function resolveApiKey(config?: ArtemysConfig | null): string | undefined;
|
|
19
|
+
export declare function resolveCoffeeShopUrl(flags: FlagMap, config?: ArtemysConfig | null): string;
|
|
20
|
+
export declare function resolveAgentCardPath(flags: FlagMap, config?: ArtemysConfig | null): string | undefined;
|
|
21
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,sBAAsB,kCAAkC,CAAA;AAErE,eAAO,MAAM,mBAAmB;;;;;iBAK9B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,UAAU,IAAI,aAAa,GAAG,IAAI,CASjD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAKtD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAIhF;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,CAAA;AAEjE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG7E;AAED,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAeD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,GAC5B,MAAM,CAiBR;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,GAC5B,MAAM,GAAG,SAAS,CAiBpB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { chmodSync, mkdirSync, readFileSync, writeFileSync, existsSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
export const DEFAULT_COFFEESHOP_URL = "https://coffeeshop.artemys.ai";
|
|
6
|
+
export const ArtemysConfigSchema = z.object({
|
|
7
|
+
agent_id: z.string().min(1),
|
|
8
|
+
api_key: z.string().min(1),
|
|
9
|
+
coffeeshop_url: z.string().url().optional(),
|
|
10
|
+
agent_card_path: z.string().optional(),
|
|
11
|
+
});
|
|
12
|
+
export function getConfigDir() {
|
|
13
|
+
return join(homedir(), ".artemys");
|
|
14
|
+
}
|
|
15
|
+
export function getConfigPath() {
|
|
16
|
+
return join(getConfigDir(), "config.json");
|
|
17
|
+
}
|
|
18
|
+
export function getDefaultAgentCardPath() {
|
|
19
|
+
return join(getConfigDir(), "agent-card.json");
|
|
20
|
+
}
|
|
21
|
+
export function loadConfig() {
|
|
22
|
+
const configPath = getConfigPath();
|
|
23
|
+
try {
|
|
24
|
+
const raw = readFileSync(configPath, "utf-8");
|
|
25
|
+
const parsed = JSON.parse(raw);
|
|
26
|
+
return ArtemysConfigSchema.parse(parsed);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function saveConfig(config) {
|
|
33
|
+
const configPath = getConfigPath();
|
|
34
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
35
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
|
|
36
|
+
chmodSync(configPath, 0o600);
|
|
37
|
+
}
|
|
38
|
+
export function saveAgentCard(card, path) {
|
|
39
|
+
const cardPath = path ?? getDefaultAgentCardPath();
|
|
40
|
+
mkdirSync(dirname(cardPath), { recursive: true });
|
|
41
|
+
writeFileSync(cardPath, JSON.stringify(card, null, 2) + "\n", "utf-8");
|
|
42
|
+
}
|
|
43
|
+
export function getFlagString(flags, key) {
|
|
44
|
+
const value = flags[key];
|
|
45
|
+
return typeof value === "string" ? value : undefined;
|
|
46
|
+
}
|
|
47
|
+
export function resolveApiKey(config) {
|
|
48
|
+
const envKey = process.env.ARTEMYS_COFFEESHOP_API_KEY;
|
|
49
|
+
if (typeof envKey === "string" && envKey.length > 0) {
|
|
50
|
+
return envKey;
|
|
51
|
+
}
|
|
52
|
+
const resolved = config !== undefined ? config : loadConfig();
|
|
53
|
+
return resolved?.api_key;
|
|
54
|
+
}
|
|
55
|
+
function validateCoffeeShopUrl(raw) {
|
|
56
|
+
const parsed = z.string().url().safeParse(raw);
|
|
57
|
+
if (!parsed.success) {
|
|
58
|
+
throw new Error(`Invalid --coffeeshop-url: not a valid URL`);
|
|
59
|
+
}
|
|
60
|
+
const url = new URL(parsed.data);
|
|
61
|
+
const isLocal = url.hostname === "localhost" || url.hostname === "127.0.0.1";
|
|
62
|
+
if (url.protocol !== "https:" && !(url.protocol === "http:" && isLocal)) {
|
|
63
|
+
throw new Error(`Invalid --coffeeshop-url: must use https (http allowed only for localhost)`);
|
|
64
|
+
}
|
|
65
|
+
return parsed.data;
|
|
66
|
+
}
|
|
67
|
+
export function resolveCoffeeShopUrl(flags, config) {
|
|
68
|
+
const flagValue = getFlagString(flags, "coffeeshop-url");
|
|
69
|
+
if (flagValue) {
|
|
70
|
+
return validateCoffeeShopUrl(flagValue);
|
|
71
|
+
}
|
|
72
|
+
const envValue = process.env.ARTEMYS_COFFEESHOP_URL;
|
|
73
|
+
if (typeof envValue === "string" && envValue.length > 0) {
|
|
74
|
+
return validateCoffeeShopUrl(envValue);
|
|
75
|
+
}
|
|
76
|
+
const resolved = config !== undefined ? config : loadConfig();
|
|
77
|
+
if (resolved?.coffeeshop_url) {
|
|
78
|
+
return validateCoffeeShopUrl(resolved.coffeeshop_url);
|
|
79
|
+
}
|
|
80
|
+
return DEFAULT_COFFEESHOP_URL;
|
|
81
|
+
}
|
|
82
|
+
export function resolveAgentCardPath(flags, config) {
|
|
83
|
+
const flagValue = getFlagString(flags, "agent-card");
|
|
84
|
+
if (flagValue) {
|
|
85
|
+
return flagValue;
|
|
86
|
+
}
|
|
87
|
+
const resolved = config !== undefined ? config : loadConfig();
|
|
88
|
+
if (resolved?.agent_card_path) {
|
|
89
|
+
return resolved.agent_card_path;
|
|
90
|
+
}
|
|
91
|
+
const defaultPath = getDefaultAgentCardPath();
|
|
92
|
+
if (existsSync(defaultPath)) {
|
|
93
|
+
return defaultPath;
|
|
94
|
+
}
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,sBAAsB,GAAG,+BAA+B,CAAA;AAErE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAA;AAIF,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,iBAAiB,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC9B,OAAO,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAqB;IAC9C,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1E,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA6B,EAAE,IAAa;IACxE,MAAM,QAAQ,GAAG,IAAI,IAAI,uBAAuB,EAAE,CAAA;IAClD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACjD,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAA;AACxE,CAAC;AAID,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,GAAW;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAA6B;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAA;IACrD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;IAC7D,OAAO,QAAQ,EAAE,OAAO,CAAA;AAC1B,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAA;IAC5E,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAA;IAC/F,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAc,EACd,MAA6B;IAE7B,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;IACxD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAA;IACnD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;IAC7D,IAAI,QAAQ,EAAE,cAAc,EAAE,CAAC;QAC7B,OAAO,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,sBAAsB,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAc,EACd,MAA6B;IAE7B,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IACpD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;IAC7D,IAAI,QAAQ,EAAE,eAAe,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,eAAe,CAAA;IACjC,CAAC;IAED,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAA;IAC7C,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
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":";AAwBA,OAAO,EACL,KAAK,OAAO,EAQb,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAwlBD,wBAAsB,MAAM,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HxE"}
|