File tree Expand file tree Collapse file tree 3 files changed +36
-3
lines changed Expand file tree Collapse file tree 3 files changed +36
-3
lines changed Original file line number Diff line number Diff line change 10
10
[git.registry :as registry]
11
11
graph
12
12
jsonrpc
13
+ [jsonrpc.db :as db]
14
+ [jsonrpc.logger :as logger]
13
15
jsonrpc.producer
14
16
jsonrpc.server
15
17
[logging :refer [warn]]
169
171
(constantly
170
172
(fn [method params]
171
173
(jsonrpc.producer/publish-docker-notify producer method params))))
174
+ (when (:prompts opts)
175
+ (try
176
+ (db/add opts)
177
+ (catch Throwable t
178
+ (logger/error t))))
172
179
(let [finished @server-promise]
173
180
{:result-code (if (= :done finished) 0 1 )})))
174
181
(fn []
Original file line number Diff line number Diff line change 1
1
(ns jsonrpc
2
2
(:require
3
+ [babashka.process :as process]
3
4
[cheshire.core :as json]
4
5
[clojure.core.async :as async]
5
6
[clojure.java.io :as io]
143
144
(comment
144
145
(notify :message {:content " message" }))
145
146
147
+ (comment
148
+ (def mcp
149
+ (process/process {:err :string }
150
+ " docker"
151
+ " run"
152
+ " -i"
153
+ " -v" " /var/run/docker.sock:/var/run/docker.sock"
154
+ " --mount" " type=volume,source=docker-prompts,target=/prompts"
155
+ " vonwig/prompts:local"
156
+ " serve"
157
+ " --host-dir" " /Users/slim/docker/labs-ai-tools-for-devs"
158
+ " --prompts" " github:docker/labs-ai-tools-for-devs?path=prompts/examples/explain_dockerfile.md" ))
159
+ (async/thread
160
+ (with-open [rdr (io/reader (:out mcp))]
161
+ (binding [*in* rdr]
162
+ (loop []
163
+ (when-let [line (read-line )]
164
+ (println :mcp line)
165
+ (recur ))))))
166
+ (write-message (:in mcp) (request " ping" {} (constantly 1 )))
167
+ (-> @mcp :err )
168
+ (-> @mcp :out slurp)
169
+ )
170
+
146
171
(comment
147
172
" tool module
148
173
:start for container runs or failures
163
188
:message :debug when entering a new node of the state machine
164
189
main
165
190
:messsage :content for the final output
166
- "
167
- )
191
+ " )
Original file line number Diff line number Diff line change 1
1
(ns jsonrpc.db
2
2
(:require
3
3
git
4
+ [jsonrpc.logger :as logger]
4
5
prompts))
5
6
6
7
(def db* (atom {}))
7
8
8
9
(defn get-prompt-data [{:keys [prompts] :as opts}]
9
- (let [f (git/prompt-file prompts)
10
+ (let [f (if ( string? prompts) ( git/prompt-file prompts) prompts)
10
11
{:keys [messages metadata functions] :as entry} (prompts/get-prompts (assoc opts :prompts f))]
11
12
entry))
12
13
13
14
(defn add [opts]
15
+ (logger/info " adding prompts" (:prompts opts))
14
16
(swap! db* update-in [:mcp.prompts/registry ] (fnil assoc {}) (:prompts opts) (get-prompt-data opts)))
15
17
16
18
(comment
You can’t perform that action at this time.
0 commit comments