@vibes.diy/api-svc 14.0.20 → 14.0.22
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.
- package/create-handler.js +12 -0
- package/create-handler.js.map +1 -1
- package/evento-handler-manifest.js +2 -0
- package/evento-handler-manifest.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/intern/agent-assembly.d.ts +1 -0
- package/intern/agent-assembly.js +6 -1
- package/intern/agent-assembly.js.map +1 -1
- package/intern/agent-belt.d.ts +4 -1
- package/intern/agent-belt.js +13 -3
- package/intern/agent-belt.js.map +1 -1
- package/intern/agent-build-tools.d.ts +4 -0
- package/intern/agent-build-tools.js +6 -0
- package/intern/agent-build-tools.js.map +1 -1
- package/intern/agent-dispatcher.d.ts +4 -0
- package/intern/agent-dispatcher.js +13 -5
- package/intern/agent-dispatcher.js.map +1 -1
- package/intern/agent-evidence.d.ts +12 -0
- package/intern/agent-evidence.js +70 -0
- package/intern/agent-evidence.js.map +1 -0
- package/intern/agent-file-tools.d.ts +12 -0
- package/intern/agent-file-tools.js +162 -0
- package/intern/agent-file-tools.js.map +1 -0
- package/intern/agent-file-validation.d.ts +9 -0
- package/intern/agent-file-validation.js +81 -0
- package/intern/agent-file-validation.js.map +1 -0
- package/intern/agent-instruction.d.ts +1 -1
- package/intern/agent-instruction.js +6 -1
- package/intern/agent-instruction.js.map +1 -1
- package/intern/agent-lane-flag.d.ts +14 -0
- package/intern/agent-lane-flag.js +6 -0
- package/intern/agent-lane-flag.js.map +1 -1
- package/intern/agent-session-instruction.d.ts +1 -0
- package/intern/agent-session-instruction.js +43 -0
- package/intern/agent-session-instruction.js.map +1 -0
- package/intern/agent-session-runtime.d.ts +39 -0
- package/intern/agent-session-runtime.js +247 -0
- package/intern/agent-session-runtime.js.map +1 -0
- package/intern/agent-session-store.d.ts +6 -0
- package/intern/agent-session-store.js +52 -0
- package/intern/agent-session-store.js.map +1 -0
- package/intern/agent-session.d.ts +193 -0
- package/intern/agent-session.js +180 -0
- package/intern/agent-session.js.map +1 -0
- package/intern/agent-turn.d.ts +6 -1
- package/intern/agent-turn.js +9 -4
- package/intern/agent-turn.js.map +1 -1
- package/intern/agent-wake.d.ts +11 -6
- package/intern/agent-wake.js +11 -7
- package/intern/agent-wake.js.map +1 -1
- package/intern/llm-tool-loop.d.ts +22 -1
- package/intern/llm-tool-loop.js +130 -7
- package/intern/llm-tool-loop.js.map +1 -1
- package/intern/mint-fire-core.js +3 -3
- package/intern/mint-fire-core.js.map +1 -1
- package/intern/open-turn-store.d.ts +6 -0
- package/intern/open-turn-store.js +16 -3
- package/intern/open-turn-store.js.map +1 -1
- package/intern/process-access-bindings.d.ts +1 -0
- package/intern/process-access-bindings.js +1 -1
- package/intern/process-access-bindings.js.map +1 -1
- package/intern/prompt-dispatch-context.d.ts +4 -0
- package/intern/prompt-dispatch-context.js +19 -0
- package/intern/prompt-dispatch-context.js.map +1 -0
- package/intern/turn-terminal.d.ts +61 -0
- package/intern/turn-terminal.js +0 -0
- package/intern/turn-terminal.js.map +1 -0
- package/intern/work-tools.d.ts +1 -0
- package/intern/work-tools.js +1 -1
- package/intern/work-tools.js.map +1 -1
- package/package.json +12 -11
- package/public/fork-app.js +24 -26
- package/public/fork-app.js.map +1 -1
- package/public/fs-prompt.d.ts +2 -1
- package/public/fs-prompt.js +57 -2
- package/public/fs-prompt.js.map +1 -1
- package/public/llm-dispatch.d.ts +2 -2
- package/public/llm-dispatch.js +26 -1
- package/public/llm-dispatch.js.map +1 -1
- package/public/open-chat.d.ts +2 -2
- package/public/open-chat.js +25 -0
- package/public/open-chat.js.map +1 -1
- package/public/prompt-chat-section.js +371 -12
- package/public/prompt-chat-section.js.map +1 -1
- package/public/report-top-vibes-by-traffic.d.ts +5 -0
- package/public/report-top-vibes-by-traffic.js +69 -0
- package/public/report-top-vibes-by-traffic.js.map +1 -0
- package/public/vibe-traffic-source.d.ts +114 -0
- package/public/vibe-traffic-source.js +322 -0
- package/public/vibe-traffic-source.js.map +1 -0
- package/types.d.ts +5 -0
- package/types.js.map +1 -1
- package/usage-report/codegen-delivery-alert.js +2 -2
- package/usage-report/codegen-delivery-alert.js.map +1 -1
- package/usage-report/vibe-traffic-alert-util.d.ts +74 -0
- package/usage-report/vibe-traffic-alert-util.js +237 -0
- package/usage-report/vibe-traffic-alert-util.js.map +1 -0
- package/usage-report/vibe-traffic-alert.d.ts +2 -0
- package/usage-report/vibe-traffic-alert.js +99 -0
- package/usage-report/vibe-traffic-alert.js.map +1 -0
package/public/open-chat.js
CHANGED
|
@@ -11,6 +11,12 @@ import { ensureApplicationChatId } from "../intern/ensure-application-chat-id.js
|
|
|
11
11
|
import { ensureLogger } from "@vibes.diy/identity";
|
|
12
12
|
import { runMintFire } from "../intern/mint-fire-core.js";
|
|
13
13
|
import { sweepLostTurns } from "../intern/open-turn-sweep.js";
|
|
14
|
+
import { agentSessionEnabled } from "../intern/agent-lane-flag.js";
|
|
15
|
+
import { hasLiveAgentSession } from "../intern/agent-session-runtime.js";
|
|
16
|
+
import { readAgentSession } from "../intern/agent-session-store.js";
|
|
17
|
+
import { fireAgentWakeTurn } from "../intern/agent-wake.js";
|
|
18
|
+
import { promptChatSection } from "./prompt-chat-section.js";
|
|
19
|
+
import { promptDispatchContext } from "../intern/prompt-dispatch-context.js";
|
|
14
20
|
import { chatHasAnyTurn, chatHasSettledTurn, claimMintJob, getMintJob, markMintJobLogged, } from "../intern/mint-job-store.js";
|
|
15
21
|
const MINT_PENDING_STRAND_MS = 60_000;
|
|
16
22
|
async function fireUnfiredAgentFirstTurn(args) {
|
|
@@ -198,6 +204,7 @@ export const openChat = {
|
|
|
198
204
|
...(firstTurnFired ? { firstTurnFired: true } : {}),
|
|
199
205
|
...(draft === true ? { draft: true } : {}),
|
|
200
206
|
...(agentFirstTurn ? { agentFirstTurn: true } : {}),
|
|
207
|
+
...(req.mode === "codegen" && agentSessionEnabled(vctx) ? { agentSession: true } : {}),
|
|
201
208
|
}));
|
|
202
209
|
if (mintFire !== undefined) {
|
|
203
210
|
if (mintFire.accepted) {
|
|
@@ -214,6 +221,24 @@ export const openChat = {
|
|
|
214
221
|
}
|
|
215
222
|
}
|
|
216
223
|
else if (req.mode === "codegen" && chatCreated !== true && req.dryRun !== true && req.deferFire !== true) {
|
|
224
|
+
if (agentSessionEnabled(vctx) && hasLiveAgentSession(vctx.connections, chatId) === false) {
|
|
225
|
+
const saved = await readAgentSession(vctx.sql, chatId);
|
|
226
|
+
if (saved.isErr()) {
|
|
227
|
+
vctx.logger.Error().Err(saved).Str("chatId", chatId).Msg("agent-session-resume-read-failed");
|
|
228
|
+
}
|
|
229
|
+
else if (saved.Ok()?.status === "running") {
|
|
230
|
+
fireAgentWakeTurn({
|
|
231
|
+
vctx,
|
|
232
|
+
host: ctx,
|
|
233
|
+
auth: req.auth,
|
|
234
|
+
outerTid: ctx.validated.tid,
|
|
235
|
+
chatId,
|
|
236
|
+
budget: 1,
|
|
237
|
+
note: "Resume the persisted agent session.",
|
|
238
|
+
handle: (wakeCtx) => promptChatSection.handle(promptDispatchContext(ctx, wakeCtx.validated)),
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
}
|
|
217
242
|
void recoverParkedMintJob({
|
|
218
243
|
ctx,
|
|
219
244
|
vctx,
|
package/public/open-chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-chat.js","sourceRoot":"","sources":["../../jsr/public/open-chat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"open-chat.js","sourceRoot":"","sources":["../../jsr/public/open-chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,23 +24,29 @@ import { bumpAppRecency } from "../intern/bump-app-recency.js";
|
|
|
24
24
|
import { waitChatPersistIdle } from "../intern/chat-persist-gate.js";
|
|
25
25
|
import { peekInFlightTurns } from "../intern/in-flight-turns.js";
|
|
26
26
|
import { acquireTurnBuildLock, peekBuildLockEntry, releaseTurnBuildLock } from "../intern/codegen-build-lock.js";
|
|
27
|
-
import { agentFirstTurnEnabled, agentLaneEnabled } from "../intern/agent-lane-flag.js";
|
|
27
|
+
import { agentAwaitBuildEnabled, agentFirstTurnEnabled, agentLaneEnabled, agentSessionEnabled } from "../intern/agent-lane-flag.js";
|
|
28
|
+
import { deliverAgentSession } from "../intern/agent-session-runtime.js";
|
|
29
|
+
import { runEditVibeTool } from "../intern/agent-build-tools.js";
|
|
28
30
|
import { claimFirstTurnMint, claimMintJob } from "../intern/mint-job-store.js";
|
|
29
31
|
import { codegenTurnLane, legacyVariantHint, routeAgentTurn } from "../intern/agent-router.js";
|
|
30
32
|
import { assembleAgentPayload } from "../intern/agent-assembly.js";
|
|
31
33
|
import { createAgentBelt } from "../intern/agent-belt.js";
|
|
32
|
-
import { createAgentTurnStream } from "../intern/agent-turn.js";
|
|
34
|
+
import { createAgentTurnStream, agentTotalBudgetMs } from "../intern/agent-turn.js";
|
|
33
35
|
import { createAgentBuildDispatcher } from "../intern/agent-dispatcher.js";
|
|
34
|
-
import { decideAgentWake, fireAgentWakeTurn, readAgentWakeBudget, renderAgentWakeNote } from "../intern/agent-wake.js";
|
|
35
|
-
import {
|
|
36
|
+
import { decideAgentWake, fireAgentWakeTurn, readAgentWakeBudget, renderAgentWakeNote, renderBuildSettledSentence, } from "../intern/agent-wake.js";
|
|
37
|
+
import { createPendingBuildLandings, renderBuildLandingNote, settleTurnTerminal } from "../intern/turn-terminal.js";
|
|
38
|
+
import { resolveAgentActor, resolveChatApp } from "../intern/agent-actor.js";
|
|
39
|
+
import { langForFilename } from "../intern/ensure-push-seeded-chat.js";
|
|
40
|
+
import { promptDispatchContext } from "../intern/prompt-dispatch-context.js";
|
|
36
41
|
import { dispatchLlmRequestWithFallback } from "./llm-dispatch.js";
|
|
37
42
|
import { scheduleUrlResearch } from "../intern/url-research-queue.js";
|
|
38
43
|
import { createProviderSseStream } from "../intern/provider-sse.js";
|
|
39
44
|
import { activateWorkUrls, createWorkToolBelt, createWorkToolLoopStream, loadWorkFetchUrlContext, loadWorkVfs, withoutServerTools, workBudgetAllowsDispatch, } from "../intern/work-tools.js";
|
|
40
45
|
import { emitWorkTurnStatus } from "../intern/work-turn-status.js";
|
|
41
|
-
import { closeTurn, shouldCloseTurnRecord } from "../intern/open-turn-store.js";
|
|
46
|
+
import { closeTurn, extendOpenTurnDeadline, OPEN_TURN_AWAIT_BUILD_EXTENSION_MS, shouldCloseTurnRecord, } from "../intern/open-turn-store.js";
|
|
42
47
|
import { maxPersistedBlockSeq } from "../intern/persisted-block-seq.js";
|
|
43
48
|
import { appendBlockEvent, currentUserMessageText, handlerLlmRequest } from "./llm-dispatch.js";
|
|
49
|
+
import { createAgentEvidenceWriter, nextAgentSessionMessages } from "../intern/agent-evidence.js";
|
|
44
50
|
import { handleLlmResponse, } from "./stream-assembly.js";
|
|
45
51
|
import { handleProdiaImageRequest } from "./image-gen.js";
|
|
46
52
|
import { handleFSPrompt } from "./fs-prompt.js";
|
|
@@ -186,6 +192,8 @@ export const promptChatSection = {
|
|
|
186
192
|
}
|
|
187
193
|
let preAssembled;
|
|
188
194
|
let agentAssembled;
|
|
195
|
+
let agentSession;
|
|
196
|
+
let agentEvidence;
|
|
189
197
|
let agentFirstTurnMint = false;
|
|
190
198
|
if (isReqCreationPromptChatSection(orig)) {
|
|
191
199
|
if (agentWakeTurn === false && !orig.prompt.messages.some((m) => m.role === "user")) {
|
|
@@ -283,10 +291,157 @@ export const promptChatSection = {
|
|
|
283
291
|
...(agentWakeNote === undefined ? {} : { wakeNote: agentWakeNote }),
|
|
284
292
|
...(buildInFlight === undefined ? {} : { buildInFlight: { promptId: buildInFlight.promptId } }),
|
|
285
293
|
...(agentFirstTurnMint ? { noAppYet: true } : {}),
|
|
294
|
+
...(agentSessionEnabled(vctx) && agentFirstTurnMint === false ? { session: true } : {}),
|
|
286
295
|
});
|
|
287
296
|
if (rAgent.isErr())
|
|
288
297
|
return Result.Err(rAgent);
|
|
289
298
|
agentAssembled = { model: rAgent.Ok().model, messages: rAgent.Ok().messages };
|
|
299
|
+
if (agentSessionEnabled(vctx) && agentFirstTurnMint === false) {
|
|
300
|
+
const rawIncoming = orig.prompt.messages.filter(isUserChatMessage);
|
|
301
|
+
const newMessageCount = orig.prompt.messages.filter(isChatMessage).length;
|
|
302
|
+
const incoming = newMessageCount === 0 ? [] : rAgent.Ok().messages.slice(-newMessageCount).filter(isUserChatMessage);
|
|
303
|
+
const delivered = incoming.length === 0 && agentWakeTurn
|
|
304
|
+
? [
|
|
305
|
+
{
|
|
306
|
+
role: "user",
|
|
307
|
+
content: [
|
|
308
|
+
{
|
|
309
|
+
type: "text",
|
|
310
|
+
text: agentWakeNote ??
|
|
311
|
+
"[session resumed] Continue from your persisted context and pending results. Inspect outcomes before retrying interrupted tools.",
|
|
312
|
+
},
|
|
313
|
+
],
|
|
314
|
+
},
|
|
315
|
+
]
|
|
316
|
+
: incoming;
|
|
317
|
+
const acquired = await deliverAgentSession(vctx, {
|
|
318
|
+
chatId: req.chatId,
|
|
319
|
+
userId: req._auth.verifiedAuth.claims.userId,
|
|
320
|
+
ownerHandle: resChat.ownerHandle,
|
|
321
|
+
appSlug: resChat.appSlug,
|
|
322
|
+
}, { id: ctx.validated.tid, messages: delivered });
|
|
323
|
+
if (acquired.isErr())
|
|
324
|
+
return Result.Err(acquired.Err());
|
|
325
|
+
const { live, created } = acquired.Ok();
|
|
326
|
+
if (created === false) {
|
|
327
|
+
const receiptId = vctx.sthis.nextId(12).str;
|
|
328
|
+
const receiptEvidence = createAgentEvidenceWriter({
|
|
329
|
+
chatId: req.chatId,
|
|
330
|
+
promptId: receiptId,
|
|
331
|
+
sessionId: live.promptId,
|
|
332
|
+
append: (evt, blockSeq) => appendBlockEvent({ ctx, vctx, req, promptId: receiptId, blockSeq, evt }),
|
|
333
|
+
});
|
|
334
|
+
const linked = await receiptEvidence({ kind: "active" });
|
|
335
|
+
if (linked.isErr())
|
|
336
|
+
return Result.Err(linked.Err());
|
|
337
|
+
await ctx.send.send(ctx, wrapMsgBase(ctx.validated, {
|
|
338
|
+
payload: {
|
|
339
|
+
type: "vibes.diy.res-prompt-chat-section",
|
|
340
|
+
chatId: req.chatId,
|
|
341
|
+
ownerHandle: resChat.ownerHandle,
|
|
342
|
+
appSlug: resChat.appSlug,
|
|
343
|
+
promptId: receiptId,
|
|
344
|
+
outerTid: req.outerTid,
|
|
345
|
+
mode: req.mode,
|
|
346
|
+
},
|
|
347
|
+
tid: ctx.validated.tid,
|
|
348
|
+
src: "agentSession",
|
|
349
|
+
}));
|
|
350
|
+
const echo = await appendBlockEvent({
|
|
351
|
+
ctx,
|
|
352
|
+
vctx,
|
|
353
|
+
req,
|
|
354
|
+
promptId: receiptId,
|
|
355
|
+
blockSeq: 0,
|
|
356
|
+
evt: {
|
|
357
|
+
type: "prompt.req",
|
|
358
|
+
streamId: receiptId,
|
|
359
|
+
chatId: req.chatId,
|
|
360
|
+
seq: 0,
|
|
361
|
+
request: { messages: rawIncoming },
|
|
362
|
+
timestamp: new Date(),
|
|
363
|
+
},
|
|
364
|
+
});
|
|
365
|
+
if (echo.isErr())
|
|
366
|
+
return Result.Err(echo.Err());
|
|
367
|
+
const terminal = await appendBlockEvent({
|
|
368
|
+
ctx,
|
|
369
|
+
vctx,
|
|
370
|
+
req,
|
|
371
|
+
promptId: receiptId,
|
|
372
|
+
blockSeq: 1,
|
|
373
|
+
evt: {
|
|
374
|
+
type: "block.end",
|
|
375
|
+
streamId: receiptId,
|
|
376
|
+
blockId: receiptId,
|
|
377
|
+
blockNr: 0,
|
|
378
|
+
seq: 1,
|
|
379
|
+
timestamp: new Date(),
|
|
380
|
+
stats: {
|
|
381
|
+
toplevel: { lines: 0, bytes: 0 },
|
|
382
|
+
code: { lines: 0, bytes: 0 },
|
|
383
|
+
image: { lines: 0, bytes: 0 },
|
|
384
|
+
total: { lines: 0, bytes: 0 },
|
|
385
|
+
},
|
|
386
|
+
usage: { given: [], calculated: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 } },
|
|
387
|
+
},
|
|
388
|
+
});
|
|
389
|
+
if (terminal.isErr())
|
|
390
|
+
return Result.Err(terminal.Err());
|
|
391
|
+
const ended = await appendBlockEvent({
|
|
392
|
+
ctx,
|
|
393
|
+
vctx,
|
|
394
|
+
req,
|
|
395
|
+
promptId: receiptId,
|
|
396
|
+
blockSeq: 2,
|
|
397
|
+
evt: { type: "prompt.block-end", streamId: receiptId, chatId: req.chatId, seq: 2, timestamp: new Date() },
|
|
398
|
+
});
|
|
399
|
+
if (ended.isErr())
|
|
400
|
+
return Result.Err(ended.Err());
|
|
401
|
+
return Result.Ok(EventoResult.Continue);
|
|
402
|
+
}
|
|
403
|
+
agentSession = live;
|
|
404
|
+
agentEvidence = createAgentEvidenceWriter({
|
|
405
|
+
chatId: req.chatId,
|
|
406
|
+
promptId: live.promptId,
|
|
407
|
+
sessionId: live.promptId,
|
|
408
|
+
append: (evt, blockSeq) => appendBlockEvent({ ctx, vctx, req, promptId: live.promptId, blockSeq, evt }),
|
|
409
|
+
});
|
|
410
|
+
const active = await agentEvidence({
|
|
411
|
+
kind: "active",
|
|
412
|
+
...(live.supersedes === undefined ? {} : { supersedes: live.supersedes }),
|
|
413
|
+
});
|
|
414
|
+
if (active.isErr()) {
|
|
415
|
+
live.close();
|
|
416
|
+
return Result.Err(active.Err());
|
|
417
|
+
}
|
|
418
|
+
if (live.session.messages().length === 0) {
|
|
419
|
+
const initial = agentAssembled.messages.slice(0, agentAssembled.messages.length - newMessageCount - (agentWakeNote === undefined ? 0 : 1));
|
|
420
|
+
const saved = await live.session.checkpoint(initial);
|
|
421
|
+
if (saved.isErr()) {
|
|
422
|
+
live.close();
|
|
423
|
+
return Result.Err(saved.Err());
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
const events = await nextAgentSessionMessages(live.session, agentEvidence);
|
|
427
|
+
if (events.isErr()) {
|
|
428
|
+
live.close();
|
|
429
|
+
return Result.Err(events.Err());
|
|
430
|
+
}
|
|
431
|
+
agentAssembled = {
|
|
432
|
+
...agentAssembled,
|
|
433
|
+
messages: [
|
|
434
|
+
...agentAssembled.messages.filter((message) => message.role === "system"),
|
|
435
|
+
...live.session.messages().filter((message) => message.role !== "system"),
|
|
436
|
+
...(events.Ok() ?? []),
|
|
437
|
+
],
|
|
438
|
+
};
|
|
439
|
+
const saved = await live.session.checkpoint(agentAssembled.messages);
|
|
440
|
+
if (saved.isErr()) {
|
|
441
|
+
live.close();
|
|
442
|
+
return Result.Err(saved.Err());
|
|
443
|
+
}
|
|
444
|
+
}
|
|
290
445
|
}
|
|
291
446
|
else {
|
|
292
447
|
const rAssembled = await assemblePromptPayload(vctx, {
|
|
@@ -419,6 +574,7 @@ export const promptChatSection = {
|
|
|
419
574
|
else if (agentAssembled !== undefined && isReqPromptLLMChatSection(orig)) {
|
|
420
575
|
const agentPayload = agentAssembled;
|
|
421
576
|
prompSectionAction = async (scope, blockSeq) => {
|
|
577
|
+
const liveSession = agentSession;
|
|
422
578
|
const rActor = await resolveAgentActor(vctx, {
|
|
423
579
|
userId: req._auth.verifiedAuth.claims.userId,
|
|
424
580
|
scope: { ownerHandle: resChat.ownerHandle, appSlug: resChat.appSlug },
|
|
@@ -431,17 +587,72 @@ export const promptChatSection = {
|
|
|
431
587
|
appSlug: resChat.appSlug,
|
|
432
588
|
editBaseFsId: undefined,
|
|
433
589
|
});
|
|
590
|
+
if (liveSession !== undefined && rVfs.isErr())
|
|
591
|
+
return Result.Err(rVfs.Err());
|
|
434
592
|
if (rVfs.isErr()) {
|
|
435
593
|
vctx.logger.Warn().Err(rVfs).Str("chatId", req.chatId).Msg("agent-turn-vfs-load-failed");
|
|
436
594
|
}
|
|
437
|
-
const vfs = rVfs.isOk() ? rVfs.Ok() :
|
|
595
|
+
const vfs = new Map(rVfs.isOk() ? rVfs.Ok() : []);
|
|
596
|
+
const pendingBuilds = agentSessionEnabled(vctx) === false && agentAwaitBuildEnabled(vctx)
|
|
597
|
+
? createPendingBuildLandings({
|
|
598
|
+
scope: vctx.connections,
|
|
599
|
+
renderLanding: (outcome) => renderBuildLandingNote(renderBuildSettledSentence(outcome)),
|
|
600
|
+
onUndelivered: (landing) => {
|
|
601
|
+
const missed = decideAgentWake({
|
|
602
|
+
agentLane,
|
|
603
|
+
agentDispatched: true,
|
|
604
|
+
movedFilesystem: true,
|
|
605
|
+
budget: agentWakeBudget,
|
|
606
|
+
});
|
|
607
|
+
vctx.logger
|
|
608
|
+
.Info()
|
|
609
|
+
.Any("event", {
|
|
610
|
+
chatId: req.chatId,
|
|
611
|
+
promptId,
|
|
612
|
+
awaited: landing.promptId,
|
|
613
|
+
outcome: landing.outcome.outcome,
|
|
614
|
+
wake: missed.wake,
|
|
615
|
+
})
|
|
616
|
+
.Msg("agent-build-landing-undelivered");
|
|
617
|
+
if (missed.wake === false)
|
|
618
|
+
return;
|
|
619
|
+
fireAgentWakeTurn({
|
|
620
|
+
vctx,
|
|
621
|
+
host: ctx,
|
|
622
|
+
auth: orig.auth,
|
|
623
|
+
outerTid: req.outerTid,
|
|
624
|
+
chatId: req.chatId,
|
|
625
|
+
budget: missed.budget,
|
|
626
|
+
note: renderAgentWakeNote(landing.outcome, agentSessionEnabled(vctx)),
|
|
627
|
+
handle: (wakeCtx) => promptChatSection.handle(promptDispatchContext(ctx, wakeCtx.validated)),
|
|
628
|
+
});
|
|
629
|
+
},
|
|
630
|
+
onRegister: (target) => {
|
|
631
|
+
void extendOpenTurnDeadline(vctx.sql, {
|
|
632
|
+
chatId: req.chatId,
|
|
633
|
+
promptId,
|
|
634
|
+
deadlineAtMs: Date.now() + OPEN_TURN_AWAIT_BUILD_EXTENSION_MS,
|
|
635
|
+
}).then((r) => {
|
|
636
|
+
if (r.isErr()) {
|
|
637
|
+
vctx.logger
|
|
638
|
+
.Warn()
|
|
639
|
+
.Err(r)
|
|
640
|
+
.Any("event", { chatId: req.chatId, promptId, awaiting: target.promptId })
|
|
641
|
+
.Msg("agent-await-deadline-extend-failed");
|
|
642
|
+
}
|
|
643
|
+
});
|
|
644
|
+
},
|
|
645
|
+
})
|
|
646
|
+
: undefined;
|
|
438
647
|
const dispatcher = createAgentBuildDispatcher({
|
|
439
648
|
vctx,
|
|
440
649
|
host: ctx,
|
|
441
650
|
auth: orig.auth,
|
|
442
651
|
outerTid: req.outerTid,
|
|
443
652
|
handle: (dispatchCtx) => promptChatSection.handle(dispatchCtx),
|
|
444
|
-
wakeBudget: agentWakeBudget,
|
|
653
|
+
wakeBudget: liveSession === undefined ? agentWakeBudget : 0,
|
|
654
|
+
...(pendingBuilds === undefined ? {} : { onPendingBuild: (t) => pendingBuilds.register(t) }),
|
|
655
|
+
...(agentSession === undefined ? {} : { onPendingBuild: (t) => agentSession?.watch(t.promptId) }),
|
|
445
656
|
...(agentFirstTurnMint
|
|
446
657
|
? { firstTurn: { chatId: req.chatId, ...(submittedAt === undefined ? {} : { submittedAt }) } }
|
|
447
658
|
: {}),
|
|
@@ -463,6 +674,8 @@ export const promptChatSection = {
|
|
|
463
674
|
: {}),
|
|
464
675
|
...(agentFetchUrlContext === undefined ? {} : { fetchUrl: agentFetchUrlContext }),
|
|
465
676
|
dispatcher,
|
|
677
|
+
...(liveSession === undefined ? {} : { queueEdit: (input) => liveSession.queue(input) }),
|
|
678
|
+
...(liveSession === undefined ? {} : { fileSession: liveSession }),
|
|
466
679
|
onStyleApplied: async (applied) => {
|
|
467
680
|
await appendBlockEvent({
|
|
468
681
|
ctx,
|
|
@@ -489,6 +702,92 @@ export const promptChatSection = {
|
|
|
489
702
|
.Msg("agent-turn-dispatched-build");
|
|
490
703
|
},
|
|
491
704
|
});
|
|
705
|
+
if (agentSession !== undefined) {
|
|
706
|
+
await agentSession.bind((input) => runEditVibeTool(vctx, {
|
|
707
|
+
actor: rActor.Ok(),
|
|
708
|
+
chatId: req.chatId,
|
|
709
|
+
input,
|
|
710
|
+
dispatcher,
|
|
711
|
+
}), async (commit) => {
|
|
712
|
+
const currentActor = await resolveAgentActor(vctx, {
|
|
713
|
+
userId: rActor.Ok().userId,
|
|
714
|
+
requestedHandle: rActor.Ok().ownerHandle,
|
|
715
|
+
scope: rActor.Ok().scope,
|
|
716
|
+
});
|
|
717
|
+
if (currentActor.isErr())
|
|
718
|
+
return Result.Err(currentActor.Err());
|
|
719
|
+
const scoped = await resolveChatApp(vctx, currentActor.Ok(), req.chatId);
|
|
720
|
+
if (scoped.isErr())
|
|
721
|
+
return Result.Err(scoped.Err());
|
|
722
|
+
const commitId = vctx.sthis.nextId(12).str;
|
|
723
|
+
const lock = acquireTurnBuildLock({
|
|
724
|
+
vctx,
|
|
725
|
+
chatId: req.chatId,
|
|
726
|
+
promptId: commitId,
|
|
727
|
+
movesFilesystem: true,
|
|
728
|
+
wakesOnTerminal: false,
|
|
729
|
+
});
|
|
730
|
+
if (lock.acquired === false)
|
|
731
|
+
return Result.Err("A build is running; the staged commit could not acquire the write lane.");
|
|
732
|
+
const committed = { promptBlockEndEmitted: false };
|
|
733
|
+
const saved = await exception2Result(() => handleFSPrompt({
|
|
734
|
+
scope,
|
|
735
|
+
vctx,
|
|
736
|
+
ctx,
|
|
737
|
+
promptId: commitId,
|
|
738
|
+
blockSeq: 0,
|
|
739
|
+
terminal: committed,
|
|
740
|
+
beginDirect: true,
|
|
741
|
+
resChat: { ...resChat, mode: "fs-update" },
|
|
742
|
+
req: {
|
|
743
|
+
type: "vibes.diy.req-prompt-chat-section",
|
|
744
|
+
mode: "fs-update",
|
|
745
|
+
auth: orig.auth,
|
|
746
|
+
_auth: req._auth,
|
|
747
|
+
chatId: req.chatId,
|
|
748
|
+
outerTid: req.outerTid,
|
|
749
|
+
agentFileCommit: commit,
|
|
750
|
+
fsUpdate: {
|
|
751
|
+
update: commit.changes.map((file) => ({
|
|
752
|
+
type: "code-block",
|
|
753
|
+
filename: file.path,
|
|
754
|
+
content: file.contents,
|
|
755
|
+
lang: langForFilename(file.path),
|
|
756
|
+
})),
|
|
757
|
+
remove: [],
|
|
758
|
+
},
|
|
759
|
+
},
|
|
760
|
+
})).finally(() => {
|
|
761
|
+
committed.releasePersistGate?.();
|
|
762
|
+
releaseTurnBuildLock(vctx, req.chatId, commitId);
|
|
763
|
+
});
|
|
764
|
+
if (saved.isErr()) {
|
|
765
|
+
const last = await maxPersistedBlockSeq(vctx.sql, { chatId: req.chatId, promptId: commitId });
|
|
766
|
+
if (last.isErr())
|
|
767
|
+
return Result.Err(last.Err());
|
|
768
|
+
const seq = (last.Ok() ?? -1) + 1;
|
|
769
|
+
await appendBlockEvent({
|
|
770
|
+
ctx,
|
|
771
|
+
vctx,
|
|
772
|
+
req,
|
|
773
|
+
promptId: commitId,
|
|
774
|
+
blockSeq: seq,
|
|
775
|
+
evt: {
|
|
776
|
+
type: "prompt.error",
|
|
777
|
+
streamId: commitId,
|
|
778
|
+
chatId: req.chatId,
|
|
779
|
+
seq,
|
|
780
|
+
timestamp: new Date(),
|
|
781
|
+
error: saved.Err().message,
|
|
782
|
+
},
|
|
783
|
+
});
|
|
784
|
+
return Result.Err(saved.Err());
|
|
785
|
+
}
|
|
786
|
+
if (committed.fsRef === undefined)
|
|
787
|
+
return Result.Err("The commit did not persist a version.");
|
|
788
|
+
return Result.Ok({ ok: true, saved: true, fsRef: committed.fsRef, paths: commit.changes.map((file) => file.path) });
|
|
789
|
+
});
|
|
790
|
+
}
|
|
492
791
|
const res = await handlerLlmRequest({
|
|
493
792
|
ctx,
|
|
494
793
|
blockSeq,
|
|
@@ -500,6 +799,13 @@ export const promptChatSection = {
|
|
|
500
799
|
preAssembled: { ...agentPayload, isInitialTurn: false },
|
|
501
800
|
serverTools: belt.definitions,
|
|
502
801
|
});
|
|
802
|
+
const evidence = agentEvidence ??
|
|
803
|
+
createAgentEvidenceWriter({
|
|
804
|
+
chatId: req.chatId,
|
|
805
|
+
promptId,
|
|
806
|
+
...(liveSession === undefined ? {} : { sessionId: liveSession.promptId }),
|
|
807
|
+
append: (evt, blockSeq) => appendBlockEvent({ ctx, vctx, req, promptId, blockSeq, evt }),
|
|
808
|
+
});
|
|
503
809
|
let providerStream;
|
|
504
810
|
const rSse = createProviderSseStream(res.res, promptId);
|
|
505
811
|
if (rSse.isErr()) {
|
|
@@ -516,7 +822,43 @@ export const promptChatSection = {
|
|
|
516
822
|
request: res.llmReq,
|
|
517
823
|
stream: rSse.Ok(),
|
|
518
824
|
abort: res.abort,
|
|
825
|
+
onToolEvidence: ({ kind, call, text }) => evidence({ kind, callId: call.id, name: call.name, text }),
|
|
826
|
+
...(pendingBuilds === undefined ? {} : { pending: pendingBuilds.pending }),
|
|
827
|
+
...(liveSession === undefined
|
|
828
|
+
? {}
|
|
829
|
+
: {
|
|
830
|
+
session: {
|
|
831
|
+
checkpoint: async (messages) => {
|
|
832
|
+
const saved = await liveSession.session.checkpoint(messages);
|
|
833
|
+
if (saved.isErr())
|
|
834
|
+
return saved;
|
|
835
|
+
const extended = await extendOpenTurnDeadline(vctx.sql, {
|
|
836
|
+
chatId: req.chatId,
|
|
837
|
+
promptId,
|
|
838
|
+
deadlineAtMs: Date.now() + agentTotalBudgetMs(vctx) + OPEN_TURN_AWAIT_BUILD_EXTENSION_MS,
|
|
839
|
+
});
|
|
840
|
+
if (extended.isErr())
|
|
841
|
+
return Result.Err(extended.Err());
|
|
842
|
+
return Result.Ok();
|
|
843
|
+
},
|
|
844
|
+
next: () => nextAgentSessionMessages(liveSession.session, evidence),
|
|
845
|
+
dispatchBudgetMs: agentTotalBudgetMs(vctx),
|
|
846
|
+
},
|
|
847
|
+
}),
|
|
519
848
|
dispatch: async ({ request, budget }) => {
|
|
849
|
+
if (agentSession !== undefined) {
|
|
850
|
+
const latest = await loadWorkVfs(vctx, {
|
|
851
|
+
chatId: req.chatId,
|
|
852
|
+
ownerHandle: resChat.ownerHandle,
|
|
853
|
+
appSlug: resChat.appSlug,
|
|
854
|
+
editBaseFsId: undefined,
|
|
855
|
+
});
|
|
856
|
+
if (latest.isErr())
|
|
857
|
+
return Result.Err(latest.Err());
|
|
858
|
+
vfs.clear();
|
|
859
|
+
for (const [path, content] of latest.Ok())
|
|
860
|
+
vfs.set(path, content);
|
|
861
|
+
}
|
|
520
862
|
const dispatch = await dispatchLlmRequestWithFallback({
|
|
521
863
|
vctx,
|
|
522
864
|
mode: req.mode,
|
|
@@ -730,7 +1072,7 @@ export const promptChatSection = {
|
|
|
730
1072
|
if (rBump.isErr()) {
|
|
731
1073
|
vctx.logger.Warn().Err(rBump).Msg("bumpAppRecency failed");
|
|
732
1074
|
}
|
|
733
|
-
const promptId = vctx.sthis.nextId(96 / 8).str;
|
|
1075
|
+
const promptId = agentSession?.promptId ?? vctx.sthis.nextId(96 / 8).str;
|
|
734
1076
|
const movesFilesystem = isSourceChangingMode(req.mode) && discuss === false && agentAssembled === undefined;
|
|
735
1077
|
const wakesOnTerminal = decideAgentWake({
|
|
736
1078
|
agentLane,
|
|
@@ -760,6 +1102,7 @@ export const promptChatSection = {
|
|
|
760
1102
|
src: "promptChatSection",
|
|
761
1103
|
})));
|
|
762
1104
|
if (rAck.isErr()) {
|
|
1105
|
+
agentSession?.close();
|
|
763
1106
|
releaseTurnBuildLock(vctx, req.chatId, promptId);
|
|
764
1107
|
return Result.Err(rAck);
|
|
765
1108
|
}
|
|
@@ -862,15 +1205,31 @@ export const promptChatSection = {
|
|
|
862
1205
|
});
|
|
863
1206
|
}
|
|
864
1207
|
peekInFlightTurns(req.chatId)?.delete(promptId);
|
|
1208
|
+
agentSession?.close();
|
|
865
1209
|
releaseTurnBuildLock(vctx, req.chatId, promptId);
|
|
866
1210
|
terminal.releasePersistGate?.();
|
|
1211
|
+
const landingOutcome = {
|
|
1212
|
+
outcome: turnErrored
|
|
1213
|
+
? "error"
|
|
1214
|
+
: terminal.settled?.applied === true
|
|
1215
|
+
? "applied"
|
|
1216
|
+
: "no-code",
|
|
1217
|
+
...(terminal.touchedPaths === undefined ? {} : { touchedPaths: terminal.touchedPaths }),
|
|
1218
|
+
};
|
|
1219
|
+
const { consumed } = settleTurnTerminal(vctx.connections, req.chatId, promptId, landingOutcome);
|
|
867
1220
|
const wake = decideAgentWake({
|
|
868
1221
|
agentLane,
|
|
869
1222
|
agentDispatched: agentDispatchedBuild,
|
|
870
1223
|
movedFilesystem: movesFilesystem,
|
|
871
|
-
budget: agentWakeBudget,
|
|
1224
|
+
budget: agentSessionEnabled(vctx) ? 1 : agentWakeBudget,
|
|
872
1225
|
});
|
|
873
|
-
if (
|
|
1226
|
+
if (consumed === true) {
|
|
1227
|
+
vctx.logger
|
|
1228
|
+
.Info()
|
|
1229
|
+
.Any("event", { chatId: req.chatId, promptId, outcome: landingOutcome.outcome })
|
|
1230
|
+
.Msg("agent-build-landing-consumed");
|
|
1231
|
+
}
|
|
1232
|
+
else if (wake.wake === true) {
|
|
874
1233
|
vctx.logger.Info().Any("event", { chatId: req.chatId, promptId, budget: wake.budget }).Msg("agent-wake-firing");
|
|
875
1234
|
fireAgentWakeTurn({
|
|
876
1235
|
vctx,
|
|
@@ -882,8 +1241,8 @@ export const promptChatSection = {
|
|
|
882
1241
|
note: renderAgentWakeNote({
|
|
883
1242
|
outcome: turnErrored ? "error" : terminal.settled?.applied === true ? "applied" : "no-code",
|
|
884
1243
|
...(terminal.touchedPaths === undefined ? {} : { touchedPaths: terminal.touchedPaths }),
|
|
885
|
-
}),
|
|
886
|
-
handle: (wakeCtx) => promptChatSection.handle(wakeCtx),
|
|
1244
|
+
}, agentSessionEnabled(vctx)),
|
|
1245
|
+
handle: (wakeCtx) => promptChatSection.handle(promptDispatchContext(ctx, wakeCtx.validated)),
|
|
887
1246
|
});
|
|
888
1247
|
}
|
|
889
1248
|
else {
|