Skip to content

Commit ffb476b

Browse files
Support multiple --registers
1 parent fc94d7e commit ffb476b

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

src/docker/main.clj

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,10 @@
6666
[nil "--nostream" "disable streaming responses"
6767
:id :stream
6868
:assoc-fn (fn [m k _] (assoc m k false))]
69-
[nil "--register ref" "register a prompt REF"]
69+
[nil "--register ref" "register a prompt REF"
70+
:multi true
71+
:default []
72+
:update-fn conj]
7073
[nil "--mcp" "use the mcp jsonrpc protocol"]
7174
[nil "--debug" "add debug logging"]
7275
[nil "--help" "print option summary"]])

src/jsonrpc/db.clj

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,18 @@
77
(def db* (atom {}))
88

99
(defn get-prompt-data [{:keys [register] :as opts}]
10-
(let [f (git/prompt-file register)
11-
{:keys [messages metadata functions] :as entry} (prompts/get-prompts (assoc opts :prompts f))]
12-
entry))
10+
(->> register
11+
(map (fn [ref] [ref (git/prompt-file ref)]))
12+
(map (fn [[ref f]]
13+
(let [m (prompts/get-prompts (assoc opts :prompts f))]
14+
[(or (-> m :metadata :name) ref) m])))
15+
(into {})))
1316

1417
(defn add [opts]
1518
(logger/info "adding prompts" (:register opts))
1619
(let [m (get-prompt-data opts)]
17-
(swap! db* update-in [:mcp.prompts/registry]
18-
(fnil assoc {})
19-
#_(:register opts)
20-
(or (-> m :metadata :name) (:register opts))
21-
m)))
20+
(swap! db* update-in [:mcp.prompts/registry] (fnil merge {}) m)))
2221

2322
(comment
24-
(add {:register "github:docker/labs-ai-tools-for-devs?path=prompts/examples/explain_dockerfile.md&ref=slim/server"}))
23+
(add {:register ["github:docker/labs-ai-tools-for-devs?path=prompts/examples/explain_dockerfile.md&ref=slim/server"]}))
2524

src/jsonrpc/server.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494
(defn entry->prompt-listing [k v m]
9595
(merge
9696
{:name (str k)}
97-
(select-keys m [:description])))
97+
(select-keys (:metadata v) [:description])))
9898

9999
(defmethod lsp.server/receive-request "prompts/list" [_ {:keys [db*]} params]
100100
;; TODO might contain a cursor

0 commit comments

Comments
 (0)