Skip to content

Commit ba1cb66

Browse files
authored
Merge pull request #92 from AgenticHighway/dev
update index url, release bundle fixes, and window+macos compat
2 parents b5930a5 + ca6055d commit ba1cb66

21 files changed

Lines changed: 307 additions & 212 deletions

.cargo/audit.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[advisories]
2+
# RUSTSEC-2023-0071: Marvin Attack timing sidechannel in the `rsa` crate.
3+
# `rsa` is a transitive dep of `jsonwebtoken` but is never exercised — this
4+
# codebase uses Algorithm::EdDSA exclusively, no RSA operations at runtime.
5+
# No fix is available upstream; revisit when jsonwebtoken drops `rsa`.
6+
ignore = ["RUSTSEC-2023-0071"]

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ KELVIN_GATEWAY_INGRESS_PORT=34618
5050
KELVIN_PLUGIN_REGISTRY_PORT=34619
5151

5252
# Plugin index URL (required for plugin install/discovery commands)
53-
KELVIN_PLUGIN_INDEX_URL="https://raw.githubusercontent.com/AgenticHighway/kelvinclaw/main/index.json"
53+
KELVIN_PLUGIN_INDEX_URL="https://raw.githubusercontent.com/AgenticHighway/kelvinclaw-plugins/main/index.json"
5454

5555
# Test lane for docker compose build kelvin-test (quick|full)
5656
# KELVIN_TEST_LANE=full
Lines changed: 53 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,55 @@
11
{
2-
"id": "kelvin.anthropic",
3-
"name": "Kelvin Anthropic Model Plugin",
4-
"version": "0.1.0",
5-
"api_version": "1.0.0",
6-
"description": "First-party Anthropic model plugin using Kelvin's provider_profile host routing.",
7-
"homepage": "https://github.com/agentichighway/kelvinclaw/tree/main/plugins/kelvin-anthropic-plugin",
8-
"capabilities": ["model_provider", "network_egress"],
9-
"experimental": false,
10-
"min_core_version": "0.1.0",
11-
"max_core_version": null,
12-
"runtime": "wasm_model_v1",
13-
"provider_name": "anthropic",
14-
"provider_profile": {
15-
"id": "anthropic.messages",
16-
"provider_name": "anthropic",
17-
"protocol_family": "anthropic_messages",
18-
"api_key_env": "ANTHROPIC_API_KEY",
19-
"base_url_env": "ANTHROPIC_BASE_URL",
20-
"default_base_url": "https://api.anthropic.com",
21-
"endpoint_path": "v1/messages",
22-
"auth_header": "x-api-key",
23-
"auth_scheme": "raw",
24-
"static_headers": [
25-
{
26-
"name": "anthropic-version",
27-
"value": "2023-06-01"
28-
}
29-
],
30-
"default_allow_hosts": ["api.anthropic.com"]
31-
},
32-
"model_name": "claude-haiku-4-5-20251001",
33-
"entrypoint": "plugin.wasm",
34-
"entrypoint_sha256": "82d6b34bc30027c9b8e59a0f91163da41a4b20b4aa7b76c99079dec35f71432a",
35-
"publisher": null,
36-
"quality_tier": "unsigned_local",
37-
"capability_scopes": {
38-
"fs_read_paths": [],
39-
"network_allow_hosts": ["api.anthropic.com"]
40-
},
41-
"operational_controls": {
42-
"timeout_ms": 30000,
43-
"max_retries": 0,
44-
"max_calls_per_minute": 120,
45-
"circuit_breaker_failures": 3,
46-
"circuit_breaker_cooldown_ms": 30000
47-
}
2+
"id": "kelvin.anthropic",
3+
"name": "Kelvin Anthropic Model Plugin",
4+
"version": "0.2.0",
5+
"api_version": "1.0.0",
6+
"description": "First-party Anthropic model plugin using Kelvin's provider_profile host routing.",
7+
"homepage": "https://github.com/agentichighway/kelvinclaw/tree/main/plugins/kelvin-anthropic-plugin",
8+
"capabilities": [
9+
"model_provider",
10+
"network_egress"
11+
],
12+
"experimental": false,
13+
"min_core_version": "0.1.0",
14+
"max_core_version": null,
15+
"runtime": "wasm_model_v1",
16+
"provider_name": "anthropic",
17+
"provider_profile": {
18+
"id": "anthropic.messages",
19+
"provider_name": "anthropic",
20+
"protocol_family": "anthropic_messages",
21+
"api_key_env": "ANTHROPIC_API_KEY",
22+
"base_url_env": "ANTHROPIC_BASE_URL",
23+
"default_base_url": "https://api.anthropic.com",
24+
"endpoint_path": "v1/messages",
25+
"auth_header": "x-api-key",
26+
"auth_scheme": "raw",
27+
"static_headers": [
28+
{
29+
"name": "anthropic-version",
30+
"value": "2023-06-01"
31+
}
32+
],
33+
"default_allow_hosts": [
34+
"api.anthropic.com"
35+
]
36+
},
37+
"model_name": "claude-haiku-4-5-20251001",
38+
"entrypoint": "plugin.wasm",
39+
"entrypoint_sha256": "82d6b34bc30027c9b8e59a0f91163da41a4b20b4aa7b76c99079dec35f71432a",
40+
"publisher": null,
41+
"quality_tier": "unsigned_local",
42+
"capability_scopes": {
43+
"fs_read_paths": [],
44+
"network_allow_hosts": [
45+
"api.anthropic.com"
46+
]
47+
},
48+
"operational_controls": {
49+
"timeout_ms": 30000,
50+
"max_retries": 0,
51+
"max_calls_per_minute": 120,
52+
"circuit_breaker_failures": 3,
53+
"circuit_breaker_cooldown_ms": 30000
54+
}
4855
}

plugins/kelvin-echo-plugin/plugin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "kelvin.echo",
33
"name": "Kelvin Echo Model Plugin",
4-
"version": "0.1.0",
4+
"version": "0.2.0",
55
"api_version": "1.0.0",
66
"description": "First-party echo plugin — reflects the user prompt back as the assistant response. No external network calls.",
77
"homepage": "https://github.com/agentichighway/kelvinclaw/tree/main/plugins/kelvin-echo-plugin",
@@ -30,7 +30,7 @@
3030
},
3131
"model_name": "echo",
3232
"entrypoint": "plugin.wasm",
33-
"entrypoint_sha256": "8cd01e8ccd172d7c0a338b20e96ea25bf40f16533853f3bf3ae5738baceb6da1",
33+
"entrypoint_sha256": "9314eff70f57950a8f7ebcfcd72aa83f5451fbfa44def05e259bd1dd9ba7e514",
3434
"publisher": null,
3535
"quality_tier": "unsigned_local",
3636
"capability_scopes": {
Lines changed: 48 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,50 @@
11
{
2-
"id": "kelvin.openai",
3-
"name": "Kelvin OpenAI Model Plugin",
4-
"version": "0.1.0",
5-
"api_version": "1.0.0",
6-
"description": "First-party OpenAI model plugin using Kelvin's provider_profile host routing.",
7-
"homepage": "https://github.com/agentichighway/kelvinclaw/tree/main/plugins/kelvin-openai-plugin",
8-
"capabilities": ["model_provider", "network_egress"],
9-
"experimental": false,
10-
"min_core_version": "0.1.0",
11-
"max_core_version": null,
12-
"runtime": "wasm_model_v1",
13-
"provider_name": "openai",
14-
"provider_profile": {
15-
"id": "openai.responses",
16-
"provider_name": "openai",
17-
"protocol_family": "openai_responses",
18-
"api_key_env": "OPENAI_API_KEY",
19-
"base_url_env": "OPENAI_BASE_URL",
20-
"default_base_url": "https://api.openai.com",
21-
"endpoint_path": "v1/responses",
22-
"auth_header": "authorization",
23-
"auth_scheme": "bearer",
24-
"static_headers": [],
25-
"default_allow_hosts": ["api.openai.com"]
26-
},
27-
"model_name": "gpt-4.1-mini",
28-
"entrypoint": "plugin.wasm",
29-
"entrypoint_sha256": "82d6b34bc30027c9b8e59a0f91163da41a4b20b4aa7b76c99079dec35f71432a",
30-
"publisher": null,
31-
"quality_tier": "unsigned_local",
32-
"capability_scopes": {
33-
"fs_read_paths": [],
34-
"network_allow_hosts": ["api.openai.com"]
35-
},
36-
"operational_controls": {
37-
"timeout_ms": 30000,
38-
"max_retries": 0,
39-
"max_calls_per_minute": 120,
40-
"circuit_breaker_failures": 3,
41-
"circuit_breaker_cooldown_ms": 30000
42-
}
2+
"id": "kelvin.openai",
3+
"name": "Kelvin OpenAI Model Plugin",
4+
"version": "0.2.0",
5+
"api_version": "1.0.0",
6+
"description": "First-party OpenAI model plugin using Kelvin's provider_profile host routing.",
7+
"homepage": "https://github.com/agentichighway/kelvinclaw/tree/main/plugins/kelvin-openai-plugin",
8+
"capabilities": [
9+
"model_provider",
10+
"network_egress"
11+
],
12+
"experimental": false,
13+
"min_core_version": "0.1.0",
14+
"max_core_version": null,
15+
"runtime": "wasm_model_v1",
16+
"provider_name": "openai",
17+
"provider_profile": {
18+
"id": "openai.responses",
19+
"provider_name": "openai",
20+
"protocol_family": "openai_responses",
21+
"api_key_env": "OPENAI_API_KEY",
22+
"base_url_env": "OPENAI_BASE_URL",
23+
"default_base_url": "https://api.openai.com",
24+
"endpoint_path": "v1/responses",
25+
"auth_header": "authorization",
26+
"auth_scheme": "bearer",
27+
"static_headers": [],
28+
"default_allow_hosts": [
29+
"api.openai.com"
30+
]
31+
},
32+
"model_name": "gpt-4.1-mini",
33+
"entrypoint": "plugin.wasm",
34+
"entrypoint_sha256": "82d6b34bc30027c9b8e59a0f91163da41a4b20b4aa7b76c99079dec35f71432a",
35+
"publisher": null,
36+
"quality_tier": "unsigned_local",
37+
"capability_scopes": {
38+
"fs_read_paths": [],
39+
"network_allow_hosts": [
40+
"api.openai.com"
41+
]
42+
},
43+
"operational_controls": {
44+
"timeout_ms": 30000,
45+
"max_retries": 0,
46+
"max_calls_per_minute": 120,
47+
"circuit_breaker_failures": 3,
48+
"circuit_breaker_cooldown_ms": 30000
49+
}
4350
}
Lines changed: 48 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,50 @@
11
{
2-
"id": "kelvin.openrouter",
3-
"name": "Kelvin OpenRouter Model Plugin",
4-
"version": "0.1.0",
5-
"api_version": "1.0.0",
6-
"description": "First-party OpenRouter model plugin using Kelvin's declarative provider_profile routing.",
7-
"homepage": "https://github.com/agentichighway/kelvinclaw/tree/main/plugins/kelvin-openrouter-plugin",
8-
"capabilities": ["model_provider", "network_egress"],
9-
"experimental": false,
10-
"min_core_version": "0.1.0",
11-
"max_core_version": null,
12-
"runtime": "wasm_model_v1",
13-
"provider_name": "openrouter",
14-
"provider_profile": {
15-
"id": "openrouter.chat",
16-
"provider_name": "openrouter",
17-
"protocol_family": "openai_chat_completions",
18-
"api_key_env": "OPENROUTER_API_KEY",
19-
"base_url_env": "OPENROUTER_BASE_URL",
20-
"default_base_url": "https://openrouter.ai/api/v1",
21-
"endpoint_path": "chat/completions",
22-
"auth_header": "authorization",
23-
"auth_scheme": "bearer",
24-
"static_headers": [],
25-
"default_allow_hosts": ["openrouter.ai"]
26-
},
27-
"model_name": "google/gemini-2.5-flash-lite",
28-
"entrypoint": "plugin.wasm",
29-
"entrypoint_sha256": "9014594e24a201aa59968cf5578f1272a3bc569046a42a3f1a4adb15568f8109",
30-
"publisher": null,
31-
"quality_tier": "unsigned_local",
32-
"capability_scopes": {
33-
"fs_read_paths": [],
34-
"network_allow_hosts": ["openrouter.ai"]
35-
},
36-
"operational_controls": {
37-
"timeout_ms": 30000,
38-
"max_retries": 0,
39-
"max_calls_per_minute": 120,
40-
"circuit_breaker_failures": 3,
41-
"circuit_breaker_cooldown_ms": 30000
42-
}
2+
"id": "kelvin.openrouter",
3+
"name": "Kelvin OpenRouter Model Plugin",
4+
"version": "0.2.0",
5+
"api_version": "1.0.0",
6+
"description": "First-party OpenRouter model plugin using Kelvin's declarative provider_profile routing.",
7+
"homepage": "https://github.com/agentichighway/kelvinclaw/tree/main/plugins/kelvin-openrouter-plugin",
8+
"capabilities": [
9+
"model_provider",
10+
"network_egress"
11+
],
12+
"experimental": false,
13+
"min_core_version": "0.1.0",
14+
"max_core_version": null,
15+
"runtime": "wasm_model_v1",
16+
"provider_name": "openrouter",
17+
"provider_profile": {
18+
"id": "openrouter.chat",
19+
"provider_name": "openrouter",
20+
"protocol_family": "openai_chat_completions",
21+
"api_key_env": "OPENROUTER_API_KEY",
22+
"base_url_env": "OPENROUTER_BASE_URL",
23+
"default_base_url": "https://openrouter.ai/api/v1",
24+
"endpoint_path": "chat/completions",
25+
"auth_header": "authorization",
26+
"auth_scheme": "bearer",
27+
"static_headers": [],
28+
"default_allow_hosts": [
29+
"openrouter.ai"
30+
]
31+
},
32+
"model_name": "google/gemini-2.5-flash-lite",
33+
"entrypoint": "plugin.wasm",
34+
"entrypoint_sha256": "82d6b34bc30027c9b8e59a0f91163da41a4b20b4aa7b76c99079dec35f71432a",
35+
"publisher": null,
36+
"quality_tier": "unsigned_local",
37+
"capability_scopes": {
38+
"fs_read_paths": [],
39+
"network_allow_hosts": [
40+
"openrouter.ai"
41+
]
42+
},
43+
"operational_controls": {
44+
"timeout_ms": 30000,
45+
"max_retries": 0,
46+
"max_calls_per_minute": 120,
47+
"circuit_breaker_failures": 3,
48+
"circuit_breaker_cooldown_ms": 30000
49+
}
4350
}

plugins/kelvin-websearch-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "kelvin.websearch",
33
"name": "Kelvin Web Search",
4-
"version": "0.1.0",
4+
"version": "0.2.0",
55
"api_version": "1.0.0",
66
"description": "Web search powered by the Brave Search API",
77
"homepage": null,

release/env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ KELVIN_MODEL_PROVIDER=kelvin.echo
1919

2020
# Plugin Index
2121
# Required for: ./kpm install, ./kpm search, ./kpm update, ./kelvin-gateway auto-install.
22-
KELVIN_PLUGIN_INDEX_URL=https://raw.githubusercontent.com/AgenticHighway/kelvinclaw/main/index.json
22+
KELVIN_PLUGIN_INDEX_URL=https://raw.githubusercontent.com/AgenticHighway/kelvinclaw-plugins/main/index.json
2323

2424
# Gateway
2525
# Auth token for kelvin-gateway and kelvin-tui.

scripts/install-kelvin-anthropic-plugin.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
set -euo pipefail
33

44
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5-
DEFAULT_INDEX_URL=""
5+
DEFAULT_INDEX_URL="https://raw.githubusercontent.com/AgenticHighway/kelvinclaw-plugins/main/index.json"
66

77
INDEX_URL="${KELVIN_PLUGIN_INDEX_URL:-${DEFAULT_INDEX_URL}}"
88
PLUGIN_HOME="${KELVIN_PLUGIN_HOME:-${ROOT_DIR}/.kelvin/plugins}"

scripts/install-kelvin-browser-plugin.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
set -euo pipefail
33

44
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5-
DEFAULT_INDEX_URL=""
5+
DEFAULT_INDEX_URL="https://raw.githubusercontent.com/AgenticHighway/kelvinclaw-plugins/main/index.json"
66

77
INDEX_URL="${KELVIN_PLUGIN_INDEX_URL:-${DEFAULT_INDEX_URL}}"
88
PLUGIN_HOME="${KELVIN_PLUGIN_HOME:-${ROOT_DIR}/.kelvin/plugins}"

0 commit comments

Comments
 (0)