@vibes.diy/api-svc 14.3.87 → 14.3.88
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/evento-handler-manifest.js +0 -4
- package/evento-handler-manifest.js.map +1 -1
- package/intern/agent-assembly.js +1 -4
- package/intern/agent-assembly.js.map +1 -1
- package/intern/agent-belt.js +10 -10
- package/intern/agent-belt.js.map +1 -1
- package/intern/agent-dispatcher.js +16 -41
- package/intern/agent-dispatcher.js.map +1 -1
- package/intern/agent-router.js.map +1 -1
- package/intern/ensure-chat-id.d.ts +0 -2
- package/intern/ensure-chat-id.js +25 -57
- package/intern/ensure-chat-id.js.map +1 -1
- package/intern/ensure-slug-binding.js.map +1 -1
- package/intern/first-brief-pairs.d.ts +13 -0
- package/intern/first-brief-pairs.js +138 -0
- package/intern/first-brief-pairs.js.map +1 -0
- package/intern/first-brief.d.ts +4 -0
- package/intern/first-brief.js +1 -0
- package/intern/first-brief.js.map +1 -1
- package/intern/first-build-race.d.ts +2 -0
- package/intern/first-build-race.js +6 -0
- package/intern/first-build-race.js.map +1 -1
- package/intern/first-build-request.js +1 -3
- package/intern/first-build-request.js.map +1 -1
- package/intern/guest-principal-store.js +2 -31
- package/intern/guest-principal-store.js.map +1 -1
- package/intern/instruction-variant.d.ts +4 -13
- package/intern/instruction-variant.js +13 -153
- package/intern/instruction-variant.js.map +1 -1
- package/intern/mercury-first-build-seam.d.ts +2 -41
- package/intern/mercury-first-build-seam.js +4 -98
- package/intern/mercury-first-build-seam.js.map +1 -1
- package/intern/mercury-first-build.d.ts +34 -407
- package/intern/mercury-first-build.js +243 -2340
- package/intern/mercury-first-build.js.map +1 -1
- package/intern/mercury-resilience.d.ts +4 -11
- package/intern/mercury-resilience.js +4 -22
- package/intern/mercury-resilience.js.map +1 -1
- package/intern/mint-decision.d.ts +4 -0
- package/intern/mint-decision.js +11 -7
- package/intern/mint-decision.js.map +1 -1
- package/intern/mint-job-store.js +2 -2
- package/intern/mint-job-store.js.map +1 -1
- package/intern/onboarding-handle.d.ts +1 -0
- package/intern/onboarding-handle.js +1 -1
- package/intern/onboarding-handle.js.map +1 -1
- package/intern/prompt-assembly.js +2 -18
- package/intern/prompt-assembly.js.map +1 -1
- package/intern/provisional-handle.d.ts +8 -0
- package/intern/provisional-handle.js +56 -0
- package/intern/provisional-handle.js.map +1 -0
- package/intern/subagent-model.d.ts +0 -7
- package/intern/subagent-model.js +0 -6
- package/intern/subagent-model.js.map +1 -1
- package/package.json +13 -13
- package/public/agent-turn-action.js +18 -22
- package/public/agent-turn-action.js.map +1 -1
- package/public/app-setting-items.d.ts +2 -0
- package/public/app-setting-items.js +32 -2
- package/public/app-setting-items.js.map +1 -1
- package/public/codegen-turn-route.d.ts +0 -2
- package/public/codegen-turn-route.js +1 -20
- package/public/codegen-turn-route.js.map +1 -1
- package/public/ensure-app-settings.js +7 -7
- package/public/ensure-app-settings.js.map +1 -1
- package/public/get-app-by-fsid.js +2 -2
- package/public/get-app-by-fsid.js.map +1 -1
- package/public/get-chat-details.js +3 -4
- package/public/get-chat-details.js.map +1 -1
- package/public/get-chat-response.js +3 -4
- package/public/get-chat-response.js.map +1 -1
- package/public/handle-prompt-context.d.ts +0 -1
- package/public/handle-prompt-context.js +19 -75
- package/public/handle-prompt-context.js.map +1 -1
- package/public/list-recent-vibes.js +1 -57
- package/public/list-recent-vibes.js.map +1 -1
- package/public/open-chat.js +1 -2
- package/public/open-chat.js.map +1 -1
- package/public/prompt-chat-section.js +1 -13
- package/public/prompt-chat-section.js.map +1 -1
- package/public/prompt-section-actions.d.ts +0 -2
- package/public/prompt-section-actions.js +0 -1
- package/public/prompt-section-actions.js.map +1 -1
- package/public/prompt-turn-terminal.js +1 -5
- package/public/prompt-turn-terminal.js.map +1 -1
- package/public/publish-app.js +2 -2
- package/public/publish-app.js.map +1 -1
- package/public/select-app.d.ts +1 -1
- package/public/select-app.js +1 -1
- package/public/select-app.js.map +1 -1
- package/public/shared-mint.js +1 -2
- package/public/shared-mint.js.map +1 -1
- package/usage-report/codegen-delivery-alert-util.d.ts +4 -4
- package/usage-report/codegen-delivery-alert-util.js +17 -17
- package/usage-report/codegen-delivery-alert-util.js.map +1 -1
- package/usage-report/first-build-no-app-alarm.js.map +1 -1
- package/usage-report/{draft-output-alert.d.ts → new-user-alert-post.d.ts} +0 -6
- package/usage-report/new-user-alert-post.js +14 -0
- package/usage-report/new-user-alert-post.js.map +1 -0
- package/usage-report/new-user-alert-util.d.ts +0 -1
- package/usage-report/new-user-alert-util.js +3 -16
- package/usage-report/new-user-alert-util.js.map +1 -1
- package/usage-report/new-user-alert.js +1 -6
- package/usage-report/new-user-alert.js.map +1 -1
- package/intern/attach-draft-handle.d.ts +0 -18
- package/intern/attach-draft-handle.js +0 -342
- package/intern/attach-draft-handle.js.map +0 -1
- package/intern/automatic-draft-attachment.d.ts +0 -18
- package/intern/automatic-draft-attachment.js +0 -31
- package/intern/automatic-draft-attachment.js.map +0 -1
- package/intern/draft-chat-store.d.ts +0 -99
- package/intern/draft-chat-store.js +0 -86
- package/intern/draft-chat-store.js.map +0 -1
- package/intern/draft-runtime-store.d.ts +0 -8
- package/intern/draft-runtime-store.js +0 -31
- package/intern/draft-runtime-store.js.map +0 -1
- package/public/attach-draft-handle.d.ts +0 -3
- package/public/attach-draft-handle.js +0 -53
- package/public/attach-draft-handle.js.map +0 -1
- package/public/draft-runtime.d.ts +0 -5
- package/public/draft-runtime.js +0 -302
- package/public/draft-runtime.js.map +0 -1
- package/usage-report/draft-output-alert.js +0 -24
- package/usage-report/draft-output-alert.js.map +0 -1
|
@@ -7,6 +7,7 @@ export interface FirstBuildRaceReceipt {
|
|
|
7
7
|
readonly mercuryCancelled?: true;
|
|
8
8
|
readonly agentJoined?: true;
|
|
9
9
|
readonly agentCreateVibeMs?: number;
|
|
10
|
+
readonly agentPairsMs?: number;
|
|
10
11
|
readonly agentFailed?: true;
|
|
11
12
|
readonly chips?: number;
|
|
12
13
|
readonly alternative?: FirstBuildRaceAlternative;
|
|
@@ -38,6 +39,7 @@ export interface FirstBuildRace {
|
|
|
38
39
|
agentCreate(): Promise<AgentCreateDecision>;
|
|
39
40
|
agentAnswered(): void;
|
|
40
41
|
agentFailed(): void;
|
|
42
|
+
agentPairsClosed(): void;
|
|
41
43
|
noteChips(count: number): void;
|
|
42
44
|
noteAlternative(a: Partial<FirstBuildRaceAlternative>): void;
|
|
43
45
|
readonly decided: Promise<FirstBuildRaceVerdict>;
|
|
@@ -7,6 +7,7 @@ export function createFirstBuildRace(o) {
|
|
|
7
7
|
let opusDispatchMs;
|
|
8
8
|
let mercuryCancelled = false;
|
|
9
9
|
let agentCreateVibeMs;
|
|
10
|
+
let agentPairsMs;
|
|
10
11
|
let agentJoined = false;
|
|
11
12
|
let agentLoopFailed = false;
|
|
12
13
|
let chips;
|
|
@@ -86,6 +87,10 @@ export function createFirstBuildRace(o) {
|
|
|
86
87
|
agentLoopFailed = true;
|
|
87
88
|
agentTakes();
|
|
88
89
|
},
|
|
90
|
+
agentPairsClosed() {
|
|
91
|
+
if (agentPairsMs === undefined)
|
|
92
|
+
agentPairsMs = now() - startedAt;
|
|
93
|
+
},
|
|
89
94
|
noteChips(count) {
|
|
90
95
|
if (agentJoined)
|
|
91
96
|
chips = count;
|
|
@@ -115,6 +120,7 @@ export function createFirstBuildRace(o) {
|
|
|
115
120
|
...(mercuryCancelled ? { mercuryCancelled: true } : {}),
|
|
116
121
|
...(agentJoined ? { agentJoined: true } : {}),
|
|
117
122
|
...(agentCreateVibeMs === undefined ? {} : { agentCreateVibeMs }),
|
|
123
|
+
...(agentPairsMs === undefined ? {} : { agentPairsMs }),
|
|
118
124
|
...(agentLoopFailed ? { agentFailed: true } : {}),
|
|
119
125
|
...(chips === undefined ? {} : { chips }),
|
|
120
126
|
...(alternative === undefined ? {} : { alternative: { ...alternative } }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-build-race.js","sourceRoot":"","sources":["../../jsr/intern/first-build-race.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"first-build-race.js","sourceRoot":"","sources":["../../jsr/intern/first-build-race.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,8 @@ import { exception2Result, Result } from "@adviser/cement";
|
|
|
2
2
|
import { sha256 } from "@noble/hashes/sha2.js";
|
|
3
3
|
import { bytesToHex, utf8ToBytes } from "@noble/hashes/utils.js";
|
|
4
4
|
import { eq } from "drizzle-orm";
|
|
5
|
-
import { DRAFT_OWNER_HANDLE } from "@vibes.diy/api-types";
|
|
6
5
|
import { firstBuildNeedsAttachments, prepareFirstBuildDispatch } from "./mint-job-store.js";
|
|
7
|
-
import { lockAppRelease } from "./
|
|
6
|
+
import { lockAppRelease } from "./onboarding-handle.js";
|
|
8
7
|
function firstBuildChatId(userId, requestId) {
|
|
9
8
|
return `first-${bytesToHex(sha256(utf8ToBytes(JSON.stringify([userId, requestId]))))}`;
|
|
10
9
|
}
|
|
@@ -36,7 +35,6 @@ export async function ensureFirstBuildRequest(vctx, input) {
|
|
|
36
35
|
chatCreated: false,
|
|
37
36
|
firstBuildReplayed: true,
|
|
38
37
|
...(needsFiles.Ok() ? { firstBuildNeedsAttachments: true } : {}),
|
|
39
|
-
...(chat.ownerHandle === DRAFT_OWNER_HANDLE ? { draft: true } : {}),
|
|
40
38
|
...(job.status === "agent" ||
|
|
41
39
|
job.status === "agent-unfired" ||
|
|
42
40
|
job.status === "agent-awaiting-files" ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-build-request.js","sourceRoot":"","sources":["../../jsr/intern/first-build-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"first-build-request.js","sourceRoot":"","sources":["../../jsr/intern/first-build-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { exception2Result, Result } from "@adviser/cement";
|
|
2
2
|
import { and, eq } from "drizzle-orm";
|
|
3
3
|
import { GUEST_PRINCIPAL_PREFIX, guestAccountClaims } from "@vibes.diy/api-types";
|
|
4
|
-
import {
|
|
5
|
-
import { persistDefaultUserSlug, writeProvisionalHandleBinding } from "./ensure-slug-binding.js";
|
|
4
|
+
import { ensureProvisionalHandle } from "./provisional-handle.js";
|
|
6
5
|
export const GUEST_PRINCIPAL_LIFETIME_MS = 7 * 24 * 60 * 60 * 1000;
|
|
7
6
|
export function guestUserIdFor(id) {
|
|
8
7
|
return `${GUEST_PRINCIPAL_PREFIX}${id}`;
|
|
@@ -66,34 +65,6 @@ async function rowForRequest(vctx, input) {
|
|
|
66
65
|
const row = found.Ok()[0];
|
|
67
66
|
return Result.Ok(row === undefined ? undefined : toRow(row));
|
|
68
67
|
}
|
|
69
|
-
async function handleOf(vctx, userId) {
|
|
70
|
-
const hb = vctx.sql.tables.handleBinding;
|
|
71
|
-
const rows = await exception2Result(() => vctx.sql.db.select({ handle: hb.handle, created: hb.created }).from(hb).where(eq(hb.userId, userId)));
|
|
72
|
-
if (rows.isErr())
|
|
73
|
-
return Result.Err(rows.Err());
|
|
74
|
-
const earliest = [...rows.Ok()].sort((a, b) => a.created.localeCompare(b.created) || a.handle.localeCompare(b.handle))[0];
|
|
75
|
-
return Result.Ok(earliest?.handle);
|
|
76
|
-
}
|
|
77
|
-
async function ensureGuestHandle(vctx, userId, draw) {
|
|
78
|
-
const held = await handleOf(vctx, userId);
|
|
79
|
-
if (held.isErr())
|
|
80
|
-
return Result.Err(held.Err());
|
|
81
|
-
if (held.Ok() !== undefined)
|
|
82
|
-
return Result.Ok(held.Ok());
|
|
83
|
-
for (let attempt = 0; attempt < 3; attempt++) {
|
|
84
|
-
const dealt = await dealUnboundWordSlug(vctx, { draw });
|
|
85
|
-
if (dealt.isErr())
|
|
86
|
-
return Result.Err(dealt.Err());
|
|
87
|
-
const bound = await writeProvisionalHandleBinding(vctx, userId, dealt.Ok());
|
|
88
|
-
if (bound.isErr())
|
|
89
|
-
continue;
|
|
90
|
-
const persisted = await exception2Result(() => persistDefaultUserSlug(vctx, userId, bound.Ok().ownerHandle));
|
|
91
|
-
if (persisted.isErr())
|
|
92
|
-
return Result.Err(persisted.Err());
|
|
93
|
-
return Result.Ok(bound.Ok().ownerHandle);
|
|
94
|
-
}
|
|
95
|
-
return Result.Err("guest-handle-unavailable");
|
|
96
|
-
}
|
|
97
68
|
async function sessionFor(vctx, row, ownerHandle) {
|
|
98
69
|
const signer = vctx.guestPrincipalSigner;
|
|
99
70
|
if (signer === undefined)
|
|
@@ -151,7 +122,7 @@ export async function issueGuestPrincipal(vctx, input, now = new Date()) {
|
|
|
151
122
|
return Result.Err("guest-principal-already-claimed");
|
|
152
123
|
if (row.expiresAt <= now.toISOString())
|
|
153
124
|
return Result.Err("guest-principal-expired");
|
|
154
|
-
const handle = await
|
|
125
|
+
const handle = await ensureProvisionalHandle(vctx, { userId: row.userId, draw: input.draw });
|
|
155
126
|
if (handle.isErr())
|
|
156
127
|
return Result.Err(handle.Err());
|
|
157
128
|
return sessionFor(vctx, row, handle.Ok());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guest-principal-store.js","sourceRoot":"","sources":["../../jsr/intern/guest-principal-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAA8B,MAAM,sBAAsB,CAAC;AAG9G,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"guest-principal-store.js","sourceRoot":"","sources":["../../jsr/intern/guest-principal-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Result } from "@adviser/cement";
|
|
2
2
|
import type { VibesApiSQLCtx } from "../types.js";
|
|
3
3
|
import type { MercuryFormat, MercuryPlanner } from "./mercury-first-build.js";
|
|
4
|
-
export declare const INSTRUCTION_VARIANTS: readonly ["direct-write", "pre-staged-reply", "fast-first-turn", "server-first-build", "fast-server-first-build", "fast-first-turn-full-brief", "opus-server-first-build", "seeded-address-words", "no-first-brief", "
|
|
4
|
+
export declare const INSTRUCTION_VARIANTS: readonly ["direct-write", "pre-staged-reply", "fast-first-turn", "server-first-build", "fast-server-first-build", "fast-first-turn-full-brief", "opus-server-first-build", "seeded-address-words", "no-first-brief", "mercury-cards-first-build", "mercury-cards-fim-first-build", "mercury-haiku-cards-first-build"];
|
|
5
5
|
export type InstructionVariant = (typeof INSTRUCTION_VARIANTS)[number];
|
|
6
6
|
export declare function variantForTurn(variant: InstructionVariant | undefined, turn: {
|
|
7
7
|
readonly firstTurn: boolean;
|
|
@@ -30,22 +30,13 @@ export declare function firstBriefRoundInstruction(words: readonly string[]): st
|
|
|
30
30
|
export declare function seededAddressWordsArmed(variant: InstructionVariant | undefined, firstTurn: boolean): boolean;
|
|
31
31
|
export declare const SEEDED_ADDRESS_WORDS_TAG = "<seeded-address-words>";
|
|
32
32
|
export declare function seededAddressWordsInstruction(words: readonly string[]): string;
|
|
33
|
-
export declare const CHOPPED_SCREWED_VARIANT_INSTRUCTION = "<chopped-first-brief>\nThis first brief and its preamble are turned up. Everything the base instruction decides stays\nexactly as it decides it: what the app does, which features are on screen, the ownership and\naccess shape, the invite screen, the composer, the skills, the mechanics the ask implies. What\nchanges is how vividly you describe and choose, in the person's own nouns.\n\nThe preamble reads like you can already see the app: name the first screen's hero control and\nthe one moment that makes it fun to open.\n\nScreens carry one distinctive detail each: the big number, the chip row, the satisfying tap,\nthe state that changes colour \u2014 specific to this app, never a feature the ask did not imply.\n\nThe seed cast is a small world with names and dates: quoted names, believable counts, dates near\ntoday, a couple of records in the interesting states the screens show (one overdue, one sold out,\none flashed). Every seeded record is one the app's own Add could write.\n\nTitles are two or three punchy words in the app's own vocabulary, with one surprising pick among\nthe three. The look note names a scene \u2014 a surface, a palette, a card shape and one gesture of\nmood \u2014 in under twenty words.\n\nThe nouns come from the person's words and their world; a vivid phrase belongs to this app or it\nstays out. Length grows by a sentence or two per part, never by a new feature.\n</chopped-first-brief>";
|
|
34
|
-
export declare function mercuryRecutArmed(variant: InstructionVariant | undefined, firstTurn: boolean): boolean;
|
|
35
33
|
export declare const MERCURY_VARIANTS: readonly InstructionVariant[];
|
|
36
34
|
export declare function isMercuryVariant(variant: InstructionVariant | undefined): boolean;
|
|
37
|
-
export declare function
|
|
38
|
-
export declare function mercuryJuiceFor(variant: InstructionVariant | undefined): "examples" | "own-world";
|
|
39
|
-
export declare function mercuryDepthFor(variant: InstructionVariant | undefined): "none" | "sub-feature";
|
|
40
|
-
export declare function mercuryReplyFor(variant: InstructionVariant | undefined): "split" | "whole";
|
|
41
|
-
export declare function mercuryDuoFor(variant: InstructionVariant | undefined): boolean;
|
|
42
|
-
export declare function mercuryDuoPoolFor(variant: InstructionVariant | undefined): number | undefined;
|
|
43
|
-
export declare function mercuryOneCallFor(variant: InstructionVariant | undefined): boolean;
|
|
44
|
-
export declare function mercuryRecordsRulesFor(variant: InstructionVariant | undefined): boolean;
|
|
35
|
+
export declare function mercuryFirstBuildArmed(variant: InstructionVariant | undefined, firstTurn: boolean): boolean;
|
|
45
36
|
export declare function mercuryPlannerFor(variant: InstructionVariant | undefined): MercuryPlanner;
|
|
46
|
-
export declare function mercuryFormatFor(variant: InstructionVariant | undefined):
|
|
37
|
+
export declare function mercuryFormatFor(variant: InstructionVariant | undefined): MercuryFormat;
|
|
47
38
|
export declare const MERCURY_FIRST_BUILD_ENV = "MERCURY_FIRST_BUILD";
|
|
48
|
-
export type MercuryFirstBuildMode = "off" | "
|
|
39
|
+
export type MercuryFirstBuildMode = "off" | "cards-fim" | "cards";
|
|
49
40
|
export declare const MERCURY_DEFAULT_SWITCH_MODE: Exclude<MercuryFirstBuildMode, "off">;
|
|
50
41
|
export declare function mercuryFirstBuildMode(flag: string | undefined): MercuryFirstBuildMode;
|
|
51
42
|
export declare function mercuryVariantForTurn(o: {
|
|
@@ -14,19 +14,6 @@ export const INSTRUCTION_VARIANTS = [
|
|
|
14
14
|
"opus-server-first-build",
|
|
15
15
|
"seeded-address-words",
|
|
16
16
|
"no-first-brief",
|
|
17
|
-
"chopped-screwed",
|
|
18
|
-
"mercury-recut-first-build",
|
|
19
|
-
"mercury-chopped-first-build",
|
|
20
|
-
"mercury-chopped-j-first-build",
|
|
21
|
-
"mercury-chopped-js-first-build",
|
|
22
|
-
"mercury-whole-first-build",
|
|
23
|
-
"mercury-whole-duo-first-build",
|
|
24
|
-
"mercury-onecall-first-build",
|
|
25
|
-
"mercury-onecall-whole-first-build",
|
|
26
|
-
"mercury-onecall-duo-first-build",
|
|
27
|
-
"mercury-opus-planner-first-build",
|
|
28
|
-
"mercury-prose-first-build",
|
|
29
|
-
"mercury-thinkaloud-first-build",
|
|
30
17
|
"mercury-cards-first-build",
|
|
31
18
|
"mercury-cards-fim-first-build",
|
|
32
19
|
"mercury-haiku-cards-first-build",
|
|
@@ -40,19 +27,6 @@ const FIRST_TURN_ONLY_VARIANTS = [
|
|
|
40
27
|
"opus-server-first-build",
|
|
41
28
|
"seeded-address-words",
|
|
42
29
|
"no-first-brief",
|
|
43
|
-
"chopped-screwed",
|
|
44
|
-
"mercury-recut-first-build",
|
|
45
|
-
"mercury-chopped-first-build",
|
|
46
|
-
"mercury-chopped-j-first-build",
|
|
47
|
-
"mercury-chopped-js-first-build",
|
|
48
|
-
"mercury-whole-first-build",
|
|
49
|
-
"mercury-whole-duo-first-build",
|
|
50
|
-
"mercury-onecall-first-build",
|
|
51
|
-
"mercury-onecall-whole-first-build",
|
|
52
|
-
"mercury-onecall-duo-first-build",
|
|
53
|
-
"mercury-opus-planner-first-build",
|
|
54
|
-
"mercury-prose-first-build",
|
|
55
|
-
"mercury-thinkaloud-first-build",
|
|
56
30
|
"mercury-cards-first-build",
|
|
57
31
|
"mercury-cards-fim-first-build",
|
|
58
32
|
"mercury-haiku-cards-first-build",
|
|
@@ -139,7 +113,7 @@ export function firstBriefArmed(variant, firstTurn, defaultOn) {
|
|
|
139
113
|
return false;
|
|
140
114
|
if (variant === "opus-server-first-build")
|
|
141
115
|
return true;
|
|
142
|
-
return
|
|
116
|
+
return variant === undefined && defaultOn;
|
|
143
117
|
}
|
|
144
118
|
export const AGENT_FIRST_BRIEF_ENV = "AGENT_FIRST_BRIEF";
|
|
145
119
|
export function agentFirstBriefEnabled(flag) {
|
|
@@ -159,6 +133,8 @@ export function firstBriefRoundInstruction(words) {
|
|
|
159
133
|
This first round starts the app. As you normally would, tell the person briefly what is on the
|
|
160
134
|
way, in their terms, then call create_vibe in this same round, with the full brief and every field
|
|
161
135
|
you always fill.
|
|
136
|
+
Write pairs first in the create_vibe arguments, so the app's address is ready while you write the
|
|
137
|
+
rest of the brief.
|
|
162
138
|
${addressWordsSentence(words)}</first-brief-round>`;
|
|
163
139
|
}
|
|
164
140
|
export function seededAddressWordsArmed(variant, firstTurn) {
|
|
@@ -169,152 +145,36 @@ export function seededAddressWordsInstruction(words) {
|
|
|
169
145
|
return `${SEEDED_ADDRESS_WORDS_TAG}
|
|
170
146
|
${addressWordsSentence(words)}</seeded-address-words>`;
|
|
171
147
|
}
|
|
172
|
-
export const CHOPPED_SCREWED_VARIANT_INSTRUCTION = `<chopped-first-brief>
|
|
173
|
-
This first brief and its preamble are turned up. Everything the base instruction decides stays
|
|
174
|
-
exactly as it decides it: what the app does, which features are on screen, the ownership and
|
|
175
|
-
access shape, the invite screen, the composer, the skills, the mechanics the ask implies. What
|
|
176
|
-
changes is how vividly you describe and choose, in the person's own nouns.
|
|
177
|
-
|
|
178
|
-
The preamble reads like you can already see the app: name the first screen's hero control and
|
|
179
|
-
the one moment that makes it fun to open.
|
|
180
|
-
|
|
181
|
-
Screens carry one distinctive detail each: the big number, the chip row, the satisfying tap,
|
|
182
|
-
the state that changes colour — specific to this app, never a feature the ask did not imply.
|
|
183
|
-
|
|
184
|
-
The seed cast is a small world with names and dates: quoted names, believable counts, dates near
|
|
185
|
-
today, a couple of records in the interesting states the screens show (one overdue, one sold out,
|
|
186
|
-
one flashed). Every seeded record is one the app's own Add could write.
|
|
187
|
-
|
|
188
|
-
Titles are two or three punchy words in the app's own vocabulary, with one surprising pick among
|
|
189
|
-
the three. The look note names a scene — a surface, a palette, a card shape and one gesture of
|
|
190
|
-
mood — in under twenty words.
|
|
191
|
-
|
|
192
|
-
The nouns come from the person's words and their world; a vivid phrase belongs to this app or it
|
|
193
|
-
stays out. Length grows by a sentence or two per part, never by a new feature.
|
|
194
|
-
</chopped-first-brief>`;
|
|
195
|
-
export function mercuryRecutArmed(variant, firstTurn) {
|
|
196
|
-
return isMercuryVariant(variant) && firstTurn;
|
|
197
|
-
}
|
|
198
148
|
export const MERCURY_VARIANTS = [
|
|
199
|
-
"mercury-recut-first-build",
|
|
200
|
-
"mercury-chopped-first-build",
|
|
201
|
-
"mercury-chopped-j-first-build",
|
|
202
|
-
"mercury-chopped-js-first-build",
|
|
203
|
-
"mercury-whole-first-build",
|
|
204
|
-
"mercury-whole-duo-first-build",
|
|
205
|
-
"mercury-onecall-first-build",
|
|
206
|
-
"mercury-onecall-whole-first-build",
|
|
207
|
-
"mercury-onecall-duo-first-build",
|
|
208
|
-
"mercury-opus-planner-first-build",
|
|
209
|
-
"mercury-prose-first-build",
|
|
210
|
-
"mercury-thinkaloud-first-build",
|
|
211
|
-
"mercury-cards-first-build",
|
|
212
149
|
"mercury-cards-fim-first-build",
|
|
150
|
+
"mercury-cards-first-build",
|
|
213
151
|
"mercury-haiku-cards-first-build",
|
|
214
152
|
];
|
|
215
153
|
export function isMercuryVariant(variant) {
|
|
216
154
|
return variant !== undefined && MERCURY_VARIANTS.includes(variant);
|
|
217
155
|
}
|
|
218
|
-
export function
|
|
219
|
-
return variant
|
|
220
|
-
variant === "mercury-chopped-j-first-build" ||
|
|
221
|
-
variant === "mercury-chopped-js-first-build" ||
|
|
222
|
-
variant === "mercury-whole-first-build" ||
|
|
223
|
-
variant === "mercury-whole-duo-first-build" ||
|
|
224
|
-
variant === "mercury-onecall-first-build" ||
|
|
225
|
-
variant === "mercury-onecall-whole-first-build" ||
|
|
226
|
-
variant === "mercury-onecall-duo-first-build" ||
|
|
227
|
-
variant === "mercury-opus-planner-first-build"
|
|
228
|
-
? "chopped"
|
|
229
|
-
: "base";
|
|
230
|
-
}
|
|
231
|
-
export function mercuryJuiceFor(variant) {
|
|
232
|
-
return variant === "mercury-chopped-j-first-build" || variant === "mercury-chopped-js-first-build" ? "own-world" : "examples";
|
|
233
|
-
}
|
|
234
|
-
export function mercuryDepthFor(variant) {
|
|
235
|
-
return variant === "mercury-chopped-js-first-build" ||
|
|
236
|
-
variant === "mercury-whole-first-build" ||
|
|
237
|
-
variant === "mercury-whole-duo-first-build" ||
|
|
238
|
-
variant === "mercury-onecall-first-build" ||
|
|
239
|
-
variant === "mercury-onecall-whole-first-build" ||
|
|
240
|
-
variant === "mercury-onecall-duo-first-build" ||
|
|
241
|
-
variant === "mercury-opus-planner-first-build"
|
|
242
|
-
? "sub-feature"
|
|
243
|
-
: "none";
|
|
244
|
-
}
|
|
245
|
-
export function mercuryReplyFor(variant) {
|
|
246
|
-
return variant === "mercury-whole-first-build" ||
|
|
247
|
-
variant === "mercury-whole-duo-first-build" ||
|
|
248
|
-
variant === "mercury-onecall-whole-first-build" ||
|
|
249
|
-
variant === "mercury-onecall-duo-first-build" ||
|
|
250
|
-
variant === "mercury-opus-planner-first-build" ||
|
|
251
|
-
variant === "mercury-prose-first-build" ||
|
|
252
|
-
variant === "mercury-thinkaloud-first-build" ||
|
|
253
|
-
variant === "mercury-cards-first-build" ||
|
|
254
|
-
variant === "mercury-cards-fim-first-build" ||
|
|
255
|
-
variant === "mercury-haiku-cards-first-build"
|
|
256
|
-
? "whole"
|
|
257
|
-
: "split";
|
|
258
|
-
}
|
|
259
|
-
export function mercuryDuoFor(variant) {
|
|
260
|
-
return variant === "mercury-whole-duo-first-build" || variant === "mercury-onecall-duo-first-build";
|
|
261
|
-
}
|
|
262
|
-
export function mercuryDuoPoolFor(variant) {
|
|
263
|
-
if (variant === "mercury-whole-duo-first-build")
|
|
264
|
-
return 3;
|
|
265
|
-
if (variant === "mercury-onecall-duo-first-build")
|
|
266
|
-
return 4;
|
|
267
|
-
return undefined;
|
|
268
|
-
}
|
|
269
|
-
export function mercuryOneCallFor(variant) {
|
|
270
|
-
return (variant === "mercury-onecall-first-build" ||
|
|
271
|
-
variant === "mercury-onecall-whole-first-build" ||
|
|
272
|
-
variant === "mercury-onecall-duo-first-build" ||
|
|
273
|
-
variant === "mercury-opus-planner-first-build" ||
|
|
274
|
-
variant === "mercury-prose-first-build" ||
|
|
275
|
-
variant === "mercury-thinkaloud-first-build" ||
|
|
276
|
-
variant === "mercury-cards-first-build" ||
|
|
277
|
-
variant === "mercury-cards-fim-first-build" ||
|
|
278
|
-
variant === "mercury-haiku-cards-first-build");
|
|
279
|
-
}
|
|
280
|
-
export function mercuryRecordsRulesFor(variant) {
|
|
281
|
-
return (variant === "mercury-onecall-duo-first-build" ||
|
|
282
|
-
variant === "mercury-onecall-whole-first-build" ||
|
|
283
|
-
variant === "mercury-opus-planner-first-build");
|
|
156
|
+
export function mercuryFirstBuildArmed(variant, firstTurn) {
|
|
157
|
+
return isMercuryVariant(variant) && firstTurn;
|
|
284
158
|
}
|
|
285
159
|
export function mercuryPlannerFor(variant) {
|
|
286
|
-
|
|
287
|
-
return "opus";
|
|
288
|
-
if (variant === "mercury-haiku-cards-first-build")
|
|
289
|
-
return "haiku";
|
|
290
|
-
return "mercury";
|
|
160
|
+
return variant === "mercury-haiku-cards-first-build" ? "haiku" : "mercury";
|
|
291
161
|
}
|
|
292
162
|
export function mercuryFormatFor(variant) {
|
|
293
|
-
|
|
294
|
-
return "prose";
|
|
295
|
-
if (variant === "mercury-thinkaloud-first-build")
|
|
296
|
-
return "thinkaloud";
|
|
297
|
-
if (variant === "mercury-cards-first-build" || variant === "mercury-haiku-cards-first-build")
|
|
298
|
-
return "cards";
|
|
299
|
-
if (variant === "mercury-cards-fim-first-build")
|
|
300
|
-
return "cards-fim";
|
|
301
|
-
return "skeleton";
|
|
163
|
+
return variant === "mercury-cards-fim-first-build" ? "cards-fim" : "cards";
|
|
302
164
|
}
|
|
303
165
|
export const MERCURY_FIRST_BUILD_ENV = "MERCURY_FIRST_BUILD";
|
|
304
166
|
export const MERCURY_DEFAULT_SWITCH_MODE = "cards-fim";
|
|
305
167
|
export function mercuryFirstBuildMode(flag) {
|
|
306
|
-
|
|
168
|
+
const v = flag?.trim().toLowerCase();
|
|
169
|
+
if (v === "off")
|
|
307
170
|
return "off";
|
|
308
|
-
if (
|
|
309
|
-
return "
|
|
310
|
-
if (flag === "prose")
|
|
311
|
-
return "prose";
|
|
171
|
+
if (v === "cards")
|
|
172
|
+
return "cards";
|
|
312
173
|
return MERCURY_DEFAULT_SWITCH_MODE;
|
|
313
174
|
}
|
|
314
175
|
const MERCURY_SWITCH_VARIANTS = {
|
|
315
|
-
"onecall-duo": "mercury-onecall-duo-first-build",
|
|
316
|
-
prose: "mercury-prose-first-build",
|
|
317
176
|
"cards-fim": "mercury-cards-fim-first-build",
|
|
177
|
+
cards: "mercury-cards-first-build",
|
|
318
178
|
};
|
|
319
179
|
export function mercuryVariantForTurn(o) {
|
|
320
180
|
if (isMercuryVariant(o.instructionVariant))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instruction-variant.js","sourceRoot":"","sources":["../../jsr/intern/instruction-variant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAwBpD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,yBAAyB;IACzB,4BAA4B;IAC5B,yBAAyB;IACzB,sBAAsB;IACtB,gBAAgB;IAChB,
|
|
1
|
+
{"version":3,"file":"instruction-variant.js","sourceRoot":"","sources":["../../jsr/intern/instruction-variant.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { Result } from "@adviser/cement";
|
|
2
2
|
import type { AgentEvidence } from "@vibes.diy/api-types";
|
|
3
|
-
import { type
|
|
3
|
+
import { type SseStreamMsg } from "@vibes.diy/call-ai-v2";
|
|
4
4
|
import type { VibesApiSQLCtx } from "../types.js";
|
|
5
5
|
import type { AgentActor } from "./agent-actor.js";
|
|
6
6
|
import { type AgentBuildDispatcher, type FirstTurnMint } from "./agent-build-tools.js";
|
|
7
|
-
import type
|
|
8
|
-
import { type MercuryDepth, type MercuryFirstBuild, type MercuryFormat, type MercuryPlanner, type MercuryJuice, type MercuryReplyShape, type MercuryStyle, type MercuryUsageRound } from "./mercury-first-build.js";
|
|
7
|
+
import { type MercuryFirstBuild, type MercuryFormat, type MercuryPlanner, type MercuryUsageRound } from "./mercury-first-build.js";
|
|
9
8
|
import type { FirstBuildRace } from "./first-build-race.js";
|
|
10
9
|
export declare const MERCURY_SEAM_SOURCE = "mercury";
|
|
11
10
|
export type MercurySeamSkip = "mercury-failed" | "create-refused" | "opus-won";
|
|
@@ -14,7 +13,6 @@ export type MercurySeamOutcome = {
|
|
|
14
13
|
readonly chatId: string;
|
|
15
14
|
readonly appSlug: string;
|
|
16
15
|
readonly preamble: string;
|
|
17
|
-
readonly history: readonly LLMMessage[];
|
|
18
16
|
readonly addressRetried?: true;
|
|
19
17
|
} | {
|
|
20
18
|
readonly dispatched: false;
|
|
@@ -26,13 +24,6 @@ export declare function runMercurySeam(vctx: VibesApiSQLCtx, o: {
|
|
|
26
24
|
readonly dispatcher: AgentBuildDispatcher;
|
|
27
25
|
readonly firstTurn: FirstTurnMint;
|
|
28
26
|
readonly presetColorway?: string;
|
|
29
|
-
readonly style?: MercuryStyle;
|
|
30
|
-
readonly juice?: MercuryJuice;
|
|
31
|
-
readonly depth?: MercuryDepth;
|
|
32
|
-
readonly reply?: MercuryReplyShape;
|
|
33
|
-
readonly duo?: boolean;
|
|
34
|
-
readonly oneCall?: boolean;
|
|
35
|
-
readonly recordsRules?: boolean;
|
|
36
27
|
readonly planner?: Exclude<MercuryPlanner, "mercury">;
|
|
37
28
|
readonly format?: MercuryFormat;
|
|
38
29
|
readonly productionSwitch?: true;
|
|
@@ -40,38 +31,8 @@ export declare function runMercurySeam(vctx: VibesApiSQLCtx, o: {
|
|
|
40
31
|
readonly race?: FirstBuildRace;
|
|
41
32
|
readonly evidence: (e: AgentEvidence) => Promise<Result<void>>;
|
|
42
33
|
}): Promise<MercurySeamOutcome>;
|
|
43
|
-
export declare const MERCURY_FIRST_BUILD_CALL_ID = "call_mercury_first_build";
|
|
44
|
-
export declare function mercuryFirstBuildHistory(o: {
|
|
45
|
-
readonly preamble: string;
|
|
46
|
-
readonly input: unknown;
|
|
47
|
-
readonly receipt: unknown;
|
|
48
|
-
}): LLMMessage[];
|
|
49
|
-
export declare const MERCURY_TESTER_ATTRIBUTION_LINE: string;
|
|
50
|
-
export declare function mercuryTesterPlanned(format: "skeleton" | MercuryFormat | undefined): boolean;
|
|
51
|
-
export declare const MERCURY_FIRST_BUILD_LINE: string;
|
|
52
|
-
export declare function mercuryFirstBuildContextLine(o?: {
|
|
53
|
-
readonly tester?: boolean;
|
|
54
|
-
}): string;
|
|
55
|
-
export declare function mercuryFirstBuildAppContext(messages: readonly LLMMessage[], o: {
|
|
56
|
-
readonly ownerHandle: string;
|
|
57
|
-
readonly appSlug: string;
|
|
58
|
-
readonly tester?: boolean;
|
|
59
|
-
}): LLMMessage[];
|
|
60
34
|
export declare function withPreambleFirst(stream: ReadableStream<SseStreamMsg>, preamble: string): ReadableStream<SseStreamMsg>;
|
|
61
35
|
export declare function withMercuryUsageRounds(stream: ReadableStream<SseStreamMsg>, o: {
|
|
62
36
|
readonly settled: Promise<unknown>;
|
|
63
37
|
readonly rounds: () => readonly MercuryUsageRound[];
|
|
64
38
|
}): ReadableStream<SseStreamMsg>;
|
|
65
|
-
export declare const MERCURY_DERIVE_FROM_ASK_OVERLAY = "<derive-from-ask>\nThe <app-workflow> brief for this app is deliberately thin on records and screens. It fixes what is settled: the person's own words, the ownership archetype and the access shape, which capabilities are loaded, the core action in the person's words, the record names, the seed cast, the look and the title. It leaves the mechanics to you, because you can read the person's message and work out what the app must actually do.\n\nDerive the rest from the verbatim ask before you write code: the fields each named record needs so the screens can show what the person described; the first screen, built around the core action as its biggest control in as few taps as the words allow; every other screen the ask implies and nothing it does not; the calculations, states and transitions the words commit you to \u2014 a tally that increments on one tap, a split that shows who owes whom, a feed that refreshes from its source, a timer that fills the screen. Each asked feature is a direct control of its own.\n\nKeep the ownership and access shape exactly as the brief gives it: who owns the object, who is let in, what a visitor sees. Keep the record names and the seed cast; give the seed records exactly the fields your Add writes. A specified ask gets on screen only what it names plus what that needs; a vague ask gets one or two alive defaults. The hints in the brief are hints: where your reading of the ask disagrees with one, the ask wins.\n</derive-from-ask>";
|
|
66
|
-
export declare const MERCURY_CHOPPED_DERIVE_FROM_ASK_OVERLAY = "<derive-from-ask>\nThe <app-workflow> brief for this app is deliberately thin on records and screens. It fixes what is settled: the person's own words, the ownership archetype and the access shape, which capabilities are loaded, the core action in the person's words, the record names, the seed cast, the look and the title. It leaves the mechanics to you, because you can read the person's message and work out what the app must actually do.\n\nDerive the rest from the verbatim ask before you write code, and derive generously: build the fuller app the ask implies, the one a person would be delighted to open. The fields each named record needs so the screens can show what the person described, plus the ones that make a record feel alive (a status, a date, a count, a who). The first screen, built around the core action as its biggest control, one satisfying tap away. Every screen the ask implies and the ones a person using it would reach for in their first five minutes: the history, the summary with its big number, the detail view, the filter chip row. The calculations, states and transitions the words commit you to, carried all the way through \u2014 a tally that increments on one tap and celebrates a streak, a split that shows who owes whom and settles up, a feed that refreshes from its source, a timer that fills the screen. Each asked feature is a direct control of its own.\n\nTurn the screens up: each carries one distinctive detail specific to this app \u2014 the big number, the chip row, the satisfying tap, the state that changes colour \u2014 and the seed records sit in the interesting states those screens show. Empty states invite the first action in the app's own voice.\n\nKeep the ownership and access shape exactly as the brief gives it: who owns the object, who is let in, what a visitor sees. Keep the record names and the seed cast; give the seed records exactly the fields your Add writes. Everything you add serves the app the person asked for, in their own nouns and their world: the app stays the one they asked for, grown fuller, never a different one. The hints in the brief are hints: where your reading of the ask disagrees with one, the ask wins.\n</derive-from-ask>";
|
|
67
|
-
export declare function mercuryBuilderOverlayFor(o: {
|
|
68
|
-
readonly instructionVariant: InstructionVariant | undefined;
|
|
69
|
-
readonly agentDispatched: boolean;
|
|
70
|
-
readonly initialTurn: boolean;
|
|
71
|
-
}): string | undefined;
|
|
72
|
-
export declare function mercuryBuilderOverlayApplies(o: {
|
|
73
|
-
readonly instructionVariant: InstructionVariant | undefined;
|
|
74
|
-
readonly agentDispatched: boolean;
|
|
75
|
-
readonly initialTurn: boolean;
|
|
76
|
-
}): boolean;
|
|
77
|
-
export declare function withMercuryBuilderOverlay(messages: readonly ChatMessage[], overlay?: string): ChatMessage[];
|