Skip to content

Commit 2c75ac2

Browse files
committed
build: Migrate to Obelisk 0.40.0
1 parent db5db8c commit 2c75ac2

6 files changed

Lines changed: 27 additions & 20 deletions

File tree

DESIGN.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ agent loop, each turn:
9393
respId = responseSubmit(joinSet) // child id created here
9494
reqId = requestSubmit(raceSet, respId, prefix_hash) // params expose respId + key
9595
raceSet.submitDelay(idle) // persistent sleep
96-
winner = raceSet.joinNext() // request stub OR idle
97-
delta = obelisk.getResult(reqId) // -> delta JSON
96+
delta = raceSet.joinNext() // request value, or null for idle delay
97+
assert(raceSet.lastId == reqId) // confirms the request stub won
9898
session.send(delta); reply = session.recv()
9999
responseStub(respId, { ok: replyJson }) // self-fulfil the reply
100100
// loop with the new committed history

deployment.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ params = [
148148
]
149149
return_type = "result<string, string>"
150150
location = "workflow/agent-loop.js"
151-
content_digest = "sha256:1582fe14211a65f2a728c210426d306ad3bea6ec8339d947ed045108998bdb11"
151+
content_digest = "sha256:fa2e7164dde2c0db619f0eb1360d1218e71759b81c09ba12140a2e54ccdb32a6"
152152

153153
# --- Chat-completions webhook -------------------------------------------------
154154

dev-deps.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
obelisk 0.39.5
1+
obelisk 0.40.0
22
node.js v22.23.1

flake.lock

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,11 @@ api.listening_addr = "127.0.0.1:5105" # gRPC/REST API; matches OBELISK_API
55
webui.listening_addr = "127.0.0.1:8180" # Web UI
66
external.listening_addr = "127.0.0.1:9190" # external HTTP server; serves POST /v1/chat/completions
77
database.sqlite.directory = "${DATA_DIR}/obelisk-sqlite-agent-backed-llm-server"
8+
9+
allow_exec_activities = [
10+
"sha256:52394d8c340e8ae59527ccc7bd425f46a35f928a28caf919e0c74ac1774c7aae", # claude.start (agent-backed-llm:agent/claude.start)
11+
"sha256:52394d8c340e8ae59527ccc7bd425f46a35f928a28caf919e0c74ac1774c7aae", # codex.start (agent-backed-llm:agent/codex.start)
12+
"sha256:536a62d943260b22abcd501467cc819534b18a9cc930e238f0103afdc3e5bac4", # session.send (agent-backed-llm:agent/session.send)
13+
"sha256:b1a0cb695e54841f4c3cbe1c2ed28f944c0321a0ee9bf6e552a8360fa74fba86", # session.recv (agent-backed-llm:agent/session.recv)
14+
"sha256:29350a3896ee19e9cf005669bfd2e60d6483f7178d33142a2689c8d5480dc2d6", # session.cleanup (agent-backed-llm:agent/session.cleanup)
15+
]

workflow/agent-loop.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,22 +70,21 @@ export default function agentLoopCancellable(socketPath, systemPrompt, maxTurns)
7070
// { respSet, respId, delta } | null (idle timeout).
7171
function awaitTurn(committed, turn) {
7272
const respSet = obelisk.createJoinSet({ name: `response-${turn}` });
73-
const respId = responseSubmit(respSet);
73+
const respId = responseSubmit(respSet); // Webhook will receive the answer here
7474

7575
const raceSet = obelisk.createJoinSet({ name: `request-${turn}` });
7676
const reqId = requestSubmit(raceSet, respId, committed);
77-
raceSet.submitDelay(IDLE_TIMEOUT);
77+
const delayId = raceSet.submitDelay(IDLE_TIMEOUT);
7878

7979
try {
80-
const winner = raceSet.joinNext();
81-
if (winner.type === "delay") {
82-
// Idle: no request arrived in time. Drop the unanswered response stub.
80+
const delta = raceSet.joinNext();
81+
if (raceSet.lastId == delayId) {
82+
// Drop the unanswered response stub.
8383
responseStub(respId, { err: "session idle timeout" });
8484
respSet.close();
8585
return null;
8686
}
87-
const delta = obelisk.getResult(reqId); // ok = the delta JSON string
88-
if (typeof delta !== "string") throw `turn.request returned an unexpected value: ${JSON.stringify(delta)}`;
87+
// stub activity turn_request won, meaning webhook received a request for this workflow
8988
return { respSet, respId, delta };
9089
} finally {
9190
// Cancel the losing idle delay once the request stub has completed.

0 commit comments

Comments
 (0)