deployangel 0.1.31 → 0.1.32
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/deployangel/cli.rb +14 -3
- data/lib/deployangel/mcp.rb +6 -1
- data/lib/deployangel/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dc0a725bbc0873d53b333299c0c32268c446967c0b6a96ae75ccd1f2776e212b
|
|
4
|
+
data.tar.gz: 50b6bac465113797a4071eaae246a654e10d58e2d635cd0ad65b7c23ad1aafb3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9f5fa19a8047154de5c567a974c2066209c00946b9bc070a400903f33c8c69f182242bdc8f226ddcf140ab07e5a96c7a947346c65d3d2e047986225bdc3ab857
|
|
7
|
+
data.tar.gz: 17b73eb7db55b615df009cd4632bbf2f7833f5713096896d4a15505837acd3038ede32297eb5f8da40b1a72e6f140d38850db32bdece8d9d87d94ef6aa55c679
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.32 (2026-10-21)
|
|
4
|
+
|
|
5
|
+
- `deployangel mcp` starts without an API token. Each tool then answers with
|
|
6
|
+
how to set `DEPLOYANGEL_API_TOKEN` (or run `deployangel setup`), instead of
|
|
7
|
+
the server failing to start, which many coding agents only report as
|
|
8
|
+
"failed to start".
|
|
9
|
+
|
|
3
10
|
## 0.1.31 (2026-10-21)
|
|
4
11
|
|
|
5
12
|
- The instructions `deployangel install agents` writes to `AGENTS.md` now tell
|
data/lib/deployangel/cli.rb
CHANGED
|
@@ -555,10 +555,18 @@ module DeployAngel
|
|
|
555
555
|
lines.join
|
|
556
556
|
end
|
|
557
557
|
|
|
558
|
+
# Without a token the server still starts, and each tool says how to set
|
|
559
|
+
# one: many agents only report a server that won't start as "failed to
|
|
560
|
+
# start", with no reason.
|
|
558
561
|
def mcp
|
|
559
562
|
require_relative "mcp"
|
|
563
|
+
token_missing = @client.nil? && api_token.to_s.empty?
|
|
564
|
+
if token_missing
|
|
565
|
+
@stderr.puts("deployangel mcp: no API token yet; each tool will say how to set one.")
|
|
566
|
+
@client = Client.new(token: nil, endpoint: endpoint, require_token: false)
|
|
567
|
+
end
|
|
560
568
|
MCP::Server.new(client: client, input: @stdin, output: @stdout, error_output: @stderr,
|
|
561
|
-
sleeper: @sleeper, clock: @clock, git_head: method(:git_head)).run
|
|
569
|
+
sleeper: @sleeper, clock: @clock, git_head: method(:git_head), token_missing: token_missing).run
|
|
562
570
|
0
|
|
563
571
|
end
|
|
564
572
|
|
|
@@ -608,8 +616,11 @@ module DeployAngel
|
|
|
608
616
|
|
|
609
617
|
# DEPLOYANGEL_API_TOKEN, else the token `deployangel setup` saved here.
|
|
610
618
|
def client
|
|
611
|
-
|
|
612
|
-
|
|
619
|
+
@client ||= Client.new(token: api_token, endpoint: endpoint)
|
|
620
|
+
end
|
|
621
|
+
|
|
622
|
+
def api_token
|
|
623
|
+
@env["DEPLOYANGEL_API_TOKEN"].to_s.empty? ? saved_credentials["api_token"] : @env["DEPLOYANGEL_API_TOKEN"]
|
|
613
624
|
end
|
|
614
625
|
|
|
615
626
|
def endpoint
|
data/lib/deployangel/mcp.rb
CHANGED
|
@@ -39,11 +39,14 @@ module DeployAngel
|
|
|
39
39
|
"latest" => { "type" => "boolean", "description" => "Use the most recent deployment." }
|
|
40
40
|
}.freeze
|
|
41
41
|
|
|
42
|
+
MISSING_TOKEN = "DeployAngel has no API token yet. Set DEPLOYANGEL_API_TOKEN to a \"CLI & coding agents\" token " \
|
|
43
|
+
"from your app's Settings in DeployAngel, or run `deployangel setup` in the project, then restart this MCP server."
|
|
42
44
|
ERROR_CODES = { parse: -32_700, invalid: -32_600, method: -32_601, params: -32_602, internal: -32_603 }.freeze
|
|
43
45
|
|
|
44
46
|
def initialize(client:, input: $stdin, output: $stdout, error_output: $stderr,
|
|
45
|
-
sleeper: ->(seconds) { sleep(seconds) }, clock: -> { Time.now }, git_head: -> {})
|
|
47
|
+
sleeper: ->(seconds) { sleep(seconds) }, clock: -> { Time.now }, git_head: -> {}, token_missing: false)
|
|
46
48
|
@client = client
|
|
49
|
+
@token_missing = token_missing
|
|
47
50
|
@input = input
|
|
48
51
|
@output = output
|
|
49
52
|
@error_output = error_output
|
|
@@ -138,6 +141,8 @@ module DeployAngel
|
|
|
138
141
|
end
|
|
139
142
|
|
|
140
143
|
def call_tool(name, arguments)
|
|
144
|
+
return { "content" => [ { "type" => "text", "text" => MISSING_TOKEN } ], "isError" => true } if @token_missing
|
|
145
|
+
|
|
141
146
|
content =
|
|
142
147
|
case name
|
|
143
148
|
when "get_verification" then waiter.wait(target(arguments), wait: false).then { |o| verification_content(o) }
|
data/lib/deployangel/version.rb
CHANGED