summaryrefslogtreecommitdiff
path: root/internal/cli/serve.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/cli/serve.go')
-rw-r--r--internal/cli/serve.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/internal/cli/serve.go b/internal/cli/serve.go
index 459c35b..b23304b 100644
--- a/internal/cli/serve.go
+++ b/internal/cli/serve.go
@@ -79,6 +79,9 @@ func serve(addr string) error {
claudeConfigDir := cfg.ClaudeConfigDir
repoDir, _ := os.Getwd()
+ // Shared per-task agent MCP token registry: runners mint tokens; the API
+ // server mounts /mcp and resolves them.
+ agentRegistry := executor.NewRegistry()
runners := map[string]executor.Runner{
// ContainerRunner: binaries are resolved via PATH inside the container image,
// so ClaudeBinary/GeminiBinary are left empty (host paths would not exist inside).
@@ -92,6 +95,7 @@ func serve(addr string) error {
ClaudeConfigDir: claudeConfigDir,
CredentialSyncCmd: filepath.Join(repoDir, "scripts", "sync-credentials"),
Store: store,
+ Registry: agentRegistry,
},
"gemini": &executor.ContainerRunner{
Image: cfg.GeminiImage,
@@ -103,6 +107,7 @@ func serve(addr string) error {
ClaudeConfigDir: claudeConfigDir,
CredentialSyncCmd: filepath.Join(repoDir, "scripts", "sync-credentials"),
Store: store,
+ Registry: agentRegistry,
},
"container": &executor.ContainerRunner{
Image: "claudomator-agent:latest",
@@ -114,6 +119,7 @@ func serve(addr string) error {
ClaudeConfigDir: claudeConfigDir,
CredentialSyncCmd: filepath.Join(repoDir, "scripts", "sync-credentials"),
Store: store,
+ Registry: agentRegistry,
},
}
@@ -146,7 +152,7 @@ func serve(addr string) error {
pool.RecoverStaleQueued(context.Background())
pool.RecoverStaleBlocked()
- srv := api.NewServer(store, pool, logger, cfg.ClaudeBinaryPath, cfg.GeminiBinaryPath)
+ srv := api.NewServer(store, pool, agentRegistry, logger, cfg.ClaudeBinaryPath, cfg.GeminiBinaryPath)
// Configure notifiers: combine webhook (if set) with web push.
notifiers := []notify.Notifier{}