@vibes.diy/api-svc 14.3.85 → 14.3.86
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 +2 -0
- package/create-handler.js.map +1 -1
- package/index.d.ts +3 -1
- package/index.js +3 -1
- package/index.js.map +1 -1
- package/intern/agent-account-tools.d.ts +1 -0
- package/intern/agent-account-tools.js +1 -0
- package/intern/agent-account-tools.js.map +1 -1
- package/intern/agent-belt.d.ts +1 -3
- package/intern/agent-belt.js +25 -21
- package/intern/agent-belt.js.map +1 -1
- package/intern/agent-build-tools.d.ts +7 -0
- package/intern/agent-build-tools.js +6 -2
- package/intern/agent-build-tools.js.map +1 -1
- package/intern/agent-closing-options.d.ts +26 -0
- package/intern/agent-closing-options.js +130 -0
- package/intern/agent-closing-options.js.map +1 -0
- package/intern/agent-dispatcher.d.ts +1 -0
- package/intern/agent-dispatcher.js +17 -3
- package/intern/agent-dispatcher.js.map +1 -1
- package/intern/agent-session-instruction.d.ts +3 -2
- package/intern/agent-session-instruction.js +9 -7
- package/intern/agent-session-instruction.js.map +1 -1
- package/intern/agent-turn.d.ts +1 -0
- package/intern/agent-turn.js +1 -0
- package/intern/agent-turn.js.map +1 -1
- package/intern/alt-first-build.d.ts +36 -0
- package/intern/alt-first-build.js +137 -0
- package/intern/alt-first-build.js.map +1 -0
- package/intern/alt-landing.d.ts +7 -0
- package/intern/alt-landing.js +31 -0
- package/intern/alt-landing.js.map +1 -0
- package/intern/first-brief.d.ts +1 -1
- package/intern/first-brief.js +1 -1
- package/intern/first-brief.js.map +1 -1
- package/intern/first-build-classifier.d.ts +4 -4
- package/intern/first-build-classifier.js +15 -17
- package/intern/first-build-classifier.js.map +1 -1
- package/intern/first-build-race.d.ts +71 -0
- package/intern/first-build-race.js +257 -0
- package/intern/first-build-race.js.map +1 -0
- package/intern/instruction-variant.d.ts +23 -2
- package/intern/instruction-variant.js +159 -2
- package/intern/instruction-variant.js.map +1 -1
- package/intern/keeps-to-themselves.d.ts +1 -0
- package/intern/keeps-to-themselves.js +10 -0
- package/intern/keeps-to-themselves.js.map +1 -0
- package/intern/llm-tool-loop.d.ts +5 -1
- package/intern/llm-tool-loop.js +48 -15
- package/intern/llm-tool-loop.js.map +1 -1
- package/intern/mercury-capability-triggers.d.ts +1 -0
- package/intern/mercury-capability-triggers.js +95 -0
- package/intern/mercury-capability-triggers.js.map +1 -0
- package/intern/mercury-first-build-seam.d.ts +40 -5
- package/intern/mercury-first-build-seam.js +201 -14
- package/intern/mercury-first-build-seam.js.map +1 -1
- package/intern/mercury-first-build.d.ts +591 -21
- package/intern/mercury-first-build.js +2998 -287
- package/intern/mercury-first-build.js.map +1 -1
- package/intern/mercury-resilience.d.ts +70 -0
- package/intern/mercury-resilience.js +122 -0
- package/intern/mercury-resilience.js.map +1 -0
- package/intern/mint-decision.d.ts +1 -0
- package/intern/mint-decision.js +3 -0
- package/intern/mint-decision.js.map +1 -1
- package/intern/option-line-hold.d.ts +5 -0
- package/intern/option-line-hold.js +39 -0
- package/intern/option-line-hold.js.map +1 -0
- package/intern/pouf-room-catalog.d.ts +2 -0
- package/intern/pouf-room-catalog.js +11 -0
- package/intern/pouf-room-catalog.js.map +1 -0
- package/intern/retire-offer-options.d.ts +3 -0
- package/intern/retire-offer-options.js +91 -0
- package/intern/retire-offer-options.js.map +1 -0
- package/intern/seed-chat-section.d.ts +13 -0
- package/intern/seed-chat-section.js +62 -0
- package/intern/seed-chat-section.js.map +1 -1
- package/intern/server-first-build.js +1 -0
- package/intern/server-first-build.js.map +1 -1
- package/intern/vibe-font-catalog.d.ts +2 -0
- package/intern/vibe-font-catalog.js +8 -0
- package/intern/vibe-font-catalog.js.map +1 -0
- package/package.json +14 -14
- package/public/agent-turn-action.d.ts +1 -0
- package/public/agent-turn-action.js +271 -62
- package/public/agent-turn-action.js.map +1 -1
- package/public/agent-turn-assembly.js +5 -2
- package/public/agent-turn-assembly.js.map +1 -1
- package/public/prompt-chat-section.js +7 -5
- package/public/prompt-chat-section.js.map +1 -1
- package/public/prompt-turn-terminal.js +3 -1
- package/public/prompt-turn-terminal.js.map +1 -1
- package/public/report-activity.js +18 -2
- package/public/report-activity.js.map +1 -1
- package/public/vibe-traffic-source.js +1 -1
- package/public/vibe-traffic-source.js.map +1 -1
- package/types.d.ts +1 -0
- package/types.js.map +1 -1
- package/usage-report/new-user-alert-util.d.ts +6 -0
- package/usage-report/new-user-alert-util.js +30 -1
- package/usage-report/new-user-alert-util.js.map +1 -1
- package/intern/agent-options-tool.d.ts +0 -27
- package/intern/agent-options-tool.js +0 -213
- package/intern/agent-options-tool.js.map +0 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export const AGENT_SESSION_INSTRUCTION_VERSION = "2026-10-
|
|
1
|
+
export const AGENT_SESSION_INSTRUCTION_VERSION = "2026-10-08.1";
|
|
2
2
|
export const GROUP_READY_SHAPE = "each signed-in person creates their own object, the rules key on user.userHandle or the object's own creator, and the records are shaped so a friend can be let into an object later, so the app owner stands where everyone else stands.";
|
|
3
3
|
export const INVITE_SCREEN_WHEN = "The invite screen, the platform's HandleInput writing a membership into the person's object, is part of the first build when the ask names other people, sharing, a group, a team, a family, a we or an our, or a person by name";
|
|
4
4
|
export const SEED_DEMO_RULE = "every first build of an app that holds records ships a seed.json demo — specified or vague, shared or private-by-nature, a catalog the owner authors or the person's own entries — while the screen opens as the ask sets it, a specified ask's empty and ready for the first entry; only a stateless toy that stores nothing needs none, and a group app's seed includes the owner's own membership or role record its views filter on, so the demo shows the owner inside their own group.";
|
|
5
|
+
export const ONE_TREE_PER_PERSON = "An app the person keeps for themselves — just for me, private, single-user, no sharing — gives every signed-in person their own tree of records on a channel keyed on the writer's own handle, read and written by that writer alone, plus a publish step that puts a chosen item on its own channel, shared with everyone who can open the app — its members while the app stays private, everyone once the owner opens it up; its nature is sensitive, and the app's sharing setting decides who can open it.";
|
|
5
6
|
export const KNOWN_VALUES_DIRECT_CONTROLS = "Known values stay direct controls.";
|
|
6
7
|
export const AGENT_SESSION_INSTRUCTION = `You are the Vibes agent, the builder talking with the person whose app this is.
|
|
7
8
|
When asked who you are or which model you use, introduce yourself as the Vibes DIY assistant and explain that Vibes DIY chooses models for the work and may change them.
|
|
@@ -134,7 +135,7 @@ parent seeded above it and a type the rules route on carries the field they rout
|
|
|
134
135
|
|
|
135
136
|
The first create_vibe names every skill the ask needs in skills, access and backend included, and its build is the whole app: App.jsx, the access.js rules with the creator granted at creation and records keyed so a second person can be let in later, and backend.js when the app needs server work, all in one result. One build is the shape you plan for, and the work is complete once a result reports it saved and the app meets the ask. When a result reports a failure or saves only part of the ask, or your own read of the saved app finds the ask not yet met — no access.js where the ask needed one, or rules that do not admit the person the ask names — dispatch edit_vibe in this same turn with the skills that part needs and an instruction naming it, and call the work complete after that result.
|
|
136
137
|
|
|
137
|
-
Every create_vibe is group-ready: each signed-in person creates their own object, the rules key on user.userHandle or the object's own creator, and the records are shaped so a friend can be let into an object later, so the app owner stands where everyone else stands. An app one person keeps for themselves is that same shape with one object in it — a sketchbook built for one person still holds records a teacher can be invited into later.
|
|
138
|
+
Every create_vibe is group-ready: each signed-in person creates their own object, the rules key on user.userHandle or the object's own creator, and the records are shaped so a friend can be let into an object later, so the app owner stands where everyone else stands. An app one person keeps for themselves is that same shape with one object in it — a sketchbook built for one person still holds records a teacher can be invited into later. Every app gets its rules, and what the app is about never decides their shape; the person's own words do. An app the person keeps for themselves — just for me, private, single-user, no sharing — gives every signed-in person their own tree of records on a channel keyed on the writer's own handle, read and written by that writer alone, plus a publish step that puts a chosen item on its own channel, shared with everyone who can open the app — its members while the app stays private, everyone once the owner opens it up; its nature is sensitive, and the app's sharing setting decides who can open it. An ask for anyone to edit, or for no access control, gets rules that admit everyone, and its nature is open; when an ask says both, keeping it to themselves decides.
|
|
138
139
|
The person's own object is in place when they arrive — the default object keyed on their handle, named for the app with its name changeable in settings — so the first screen is the app at work, the shifts, the stock or the board, with their group, shop or fleet already named. That name starts as the app's name, so the header shows it once; the object's name earns a line of its own once the person renames it or has a second object.
|
|
139
140
|
Rules, record shapes and useViewer are plumbing: they ride every first build with nothing on screen of their own.
|
|
140
141
|
The app's list of objects is plumbing too: it reads the objects by their type, which returns the ones the signed-in person made and the ones a membership lets them into, read through the same rules; each shared one shows who made it with ViewerTag, in the same list or in a section that appears once there is at least one, and opening it reads and writes its records with that object's id, each write gated on can.
|
|
@@ -203,14 +204,15 @@ A batch of new records the person sends you in chat is a save you make yourself:
|
|
|
203
204
|
Speak plainly about the app: brief progress while work runs, then what changed and what remains
|
|
204
205
|
unresolved, in the person's own terms.
|
|
205
206
|
A turn that dispatches no build ends with one short improvement question and the options that fit it, up to three,
|
|
206
|
-
|
|
207
|
-
words, shown to the person as buttons under your reply, so your words stop at the question. A reply that closes with nothing building is exactly that
|
|
207
|
+
written as your reply's last lines, one per line, each starting with ▸: each a concrete next change to this app in the app's own
|
|
208
|
+
words, shown to the person as buttons under your reply, so your words stop at the question and nothing follows the ▸ lines. A reply that closes with nothing building is exactly that
|
|
208
209
|
case: an answer, a thank-you, a question you have just settled. A turn that DOES dispatch a build ends without them.
|
|
209
|
-
That build writes its own. When no option fits the turn, the reply ends at its question with no
|
|
210
|
+
That build writes its own. When no option fits the turn, the reply ends at its question with no ▸ lines, and it is complete.
|
|
210
211
|
Options belong to the turn once every build you dispatched has come back. While any of them is still
|
|
211
|
-
running, the reply says what is building and stops there, and
|
|
212
|
+
running, the reply says what is building and stops there, and the ▸ lines follow the last result.
|
|
212
213
|
The options carry your ideas: each capability option is concrete to this app, one tap, and names something the person did not mention, and a set that ranges across the platform — sharing, typing records as a sentence, generated pictures, server work, a connection, a notification, publishing — is a good set. Each row answers the turn it closes, so the options move with the conversation: an option the person left untapped and moved past has had its turn, and the next row is new ground.
|
|
213
|
-
|
|
214
|
+
A capability option starts with its kind in brackets after the ▸ — access, connect, publish or seed, the only four tags there are — and every other option, an ordinary change, has no tag, whatever skill it would use: ▸ [access] Let friends add songs, ▸ Sort by price. The tag tells the platform what the tap does, and the person sees only the words after it.
|
|
215
|
+
Mark one option gold when it gives this app a platform capability that fits it now: kind "seed" adds the examples in its seed.json while the app holds none of them, "access" sets up who can see or edit, "connect" links a service — offered before the app has the connection, because the tap asks you to build it — and "publish" makes the app public. Write gold into the tag, as in ▸ [gold:seed] Add the example recipes. One gold option at most, never on an ordinary change, and a reply with no capability that fits has none. Each kind is gold once in a conversation: a kind this chat has already offered gold comes back as a plain option or stays out (the server drops a repeat), and the row's gold goes to a capability not yet offered that way, or to none.
|
|
214
216
|
A gold seed option adds the examples the moment it is tapped, with no turn of yours; every other tap arrives as the person's message, and you build what it names.
|
|
215
217
|
After a turn where the person removed something, the options turn to polish and further removals, with exactly one capability offer among them.
|
|
216
218
|
An option to add the examples belongs only to an app whose seed.json exists and whose screen is empty, and it is offered once in a conversation: a person who taps it has the examples, and a person who sends anything else has answered, so the examples stay out of every later row, and the turn where they ask for them is an add_seed_data call. Like every option it earns its place by fitting this app now, and two options that fit beat three that fill the row.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-session-instruction.js","sourceRoot":"","sources":["../../jsr/intern/agent-session-instruction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-session-instruction.js","sourceRoot":"","sources":["../../jsr/intern/agent-session-instruction.ts"],"names":[],"mappings":"AA2CA,MAAM,CAAC,MAAM,iCAAiC,GAAG,cAAc,CAAC;AAShE,MAAM,CAAC,MAAM,iBAAiB,GAC5B,2OAA2O,CAAC;AAE9O,MAAM,CAAC,MAAM,kBAAkB,GAC7B,kOAAkO,CAAC;AAErO,MAAM,CAAC,MAAM,cAAc,GACzB,8dAA8d,CAAC;AAQje,MAAM,CAAC,MAAM,mBAAmB,GAC9B,ifAAif,CAAC;AAEpf,MAAM,CAAC,MAAM,4BAA4B,GAAG,oCAAoC,CAAC;AAEjF,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAqNuB,CAAC"}
|
package/intern/agent-turn.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ export interface AgentTurnStreamArgs {
|
|
|
34
34
|
readonly onDispatch?: (dispatched: AgentTurnDispatch) => void;
|
|
35
35
|
readonly session: NonNullable<Parameters<typeof createLlmToolLoopStream>[0]["session"]>;
|
|
36
36
|
readonly onToolEvidence?: Parameters<typeof createLlmToolLoopStream>[0]["onToolEvidence"];
|
|
37
|
+
readonly settleOptionLines?: Parameters<typeof createLlmToolLoopStream>[0]["settleOptionLines"];
|
|
37
38
|
readonly onError?: (error: string) => void;
|
|
38
39
|
readonly now?: () => number;
|
|
39
40
|
}
|
package/intern/agent-turn.js
CHANGED
|
@@ -37,6 +37,7 @@ export function createAgentTurnStream(args) {
|
|
|
37
37
|
budget,
|
|
38
38
|
execute: belt.executor,
|
|
39
39
|
...(args.onToolEvidence === undefined ? {} : { onToolEvidence: args.onToolEvidence }),
|
|
40
|
+
...(args.settleOptionLines === undefined ? {} : { settleOptionLines: args.settleOptionLines }),
|
|
40
41
|
maxToolRounds: AGENT_SESSION_MAX_TOOL_ROUNDS,
|
|
41
42
|
maxToolCalls: AGENT_SESSION_MAX_TOOL_CALLS,
|
|
42
43
|
session: args.session,
|
package/intern/agent-turn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-turn.js","sourceRoot":"","sources":["../../jsr/intern/agent-turn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC,OAAO,EAAE,eAAe,EAAsC,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAA0B,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AA0BhE,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAE3D,MAAM,UAAU,kBAAkB,CAAC,IAAoB;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACxD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,qBAAqB,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,qBAAqB,CAAC;IAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-turn.js","sourceRoot":"","sources":["../../jsr/intern/agent-turn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ReqOpenChat, ReqWithVerifiedAuth } from "@vibes.diy/api-types";
|
|
2
|
+
import type { VibesApiSQLCtx } from "../types.js";
|
|
3
|
+
import type { AgentActor } from "./agent-actor.js";
|
|
4
|
+
import { type AgentBuildDispatcher } from "./agent-build-tools.js";
|
|
5
|
+
export { ALTERNATIVE_READY_PREFIX, alternativeReadyNote, renderAlternativeReadyNote, takeAlternativeChat, markAlternativeChat, unmarkAlternativeChat, } from "./alt-landing.js";
|
|
6
|
+
export declare function alternativeOpenerLines(o: {
|
|
7
|
+
readonly opener?: string;
|
|
8
|
+
readonly originLabel: string;
|
|
9
|
+
}): string[];
|
|
10
|
+
export type AlternativeStart = {
|
|
11
|
+
readonly dispatched: true;
|
|
12
|
+
readonly chatId: string;
|
|
13
|
+
readonly appSlug: string;
|
|
14
|
+
readonly label: string;
|
|
15
|
+
} | {
|
|
16
|
+
readonly dispatched: false;
|
|
17
|
+
readonly chatId?: string;
|
|
18
|
+
readonly skipped: "light-mint-failed" | "busy" | "refused";
|
|
19
|
+
};
|
|
20
|
+
export declare function startAlternativeFirstBuild(vctx: VibesApiSQLCtx, o: {
|
|
21
|
+
readonly actor: AgentActor;
|
|
22
|
+
readonly openAuth: Pick<ReqWithVerifiedAuth<ReqOpenChat>, "auth" | "_auth">;
|
|
23
|
+
readonly input: unknown;
|
|
24
|
+
readonly prompt: string;
|
|
25
|
+
readonly dispatcherFor: (chatId: string) => AgentBuildDispatcher;
|
|
26
|
+
readonly originChatId: string;
|
|
27
|
+
readonly personWords: string;
|
|
28
|
+
readonly opener?: string;
|
|
29
|
+
readonly originLabel: string;
|
|
30
|
+
}): Promise<AlternativeStart>;
|
|
31
|
+
export declare function watchAlternativeLanding(vctx: VibesApiSQLCtx, o: {
|
|
32
|
+
readonly chatId: string;
|
|
33
|
+
readonly promptId: string;
|
|
34
|
+
readonly originChatId: string;
|
|
35
|
+
readonly onLanded: (landed: "saved" | "failed") => Promise<void>;
|
|
36
|
+
}): void;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { exception2Result } from "@adviser/cement";
|
|
2
|
+
import { and, eq } from "drizzle-orm";
|
|
3
|
+
import { runCreateVibeTool } from "./agent-build-tools.js";
|
|
4
|
+
import { ensureChatId } from "./ensure-chat-id.js";
|
|
5
|
+
import { claimFirstTurnMint, claimMintJob, markMintJob } from "./mint-job-store.js";
|
|
6
|
+
import { seedOpeningSection } from "./seed-chat-section.js";
|
|
7
|
+
import { registerTurnTerminalWaiter } from "./turn-terminal.js";
|
|
8
|
+
import { BUILD_LOCK_DEADLINE_MS } from "./codegen-build-lock.js";
|
|
9
|
+
import { markAlternativeChat, unmarkAlternativeChat } from "./alt-landing.js";
|
|
10
|
+
export { ALTERNATIVE_READY_PREFIX, alternativeReadyNote, renderAlternativeReadyNote, takeAlternativeChat, markAlternativeChat, unmarkAlternativeChat, } from "./alt-landing.js";
|
|
11
|
+
export function alternativeOpenerLines(o) {
|
|
12
|
+
const own = (o.opener ?? "").trim();
|
|
13
|
+
const link = `/vibe/${o.originLabel}`;
|
|
14
|
+
return [
|
|
15
|
+
...(own.length > 0 ? own.split("\n") : ["Here's another take on your request."]),
|
|
16
|
+
"",
|
|
17
|
+
`⚡ The first version is here: [${link}](${link})`,
|
|
18
|
+
];
|
|
19
|
+
}
|
|
20
|
+
export async function startAlternativeFirstBuild(vctx, o) {
|
|
21
|
+
const r = await exception2Result(async () => {
|
|
22
|
+
const openReq = {
|
|
23
|
+
type: "vibes.diy.req-open-chat",
|
|
24
|
+
mode: "codegen",
|
|
25
|
+
auth: o.openAuth.auth,
|
|
26
|
+
_auth: o.openAuth._auth,
|
|
27
|
+
ownerHandle: o.actor.ownerHandle,
|
|
28
|
+
prompt: o.prompt,
|
|
29
|
+
};
|
|
30
|
+
const rChat = await ensureChatId(vctx, openReq, { lightMint: true });
|
|
31
|
+
if (rChat.isErr() || rChat.Ok().lightMinted !== true)
|
|
32
|
+
return { dispatched: false, skipped: "light-mint-failed" };
|
|
33
|
+
const minted = rChat.Ok();
|
|
34
|
+
if (minted.mintJobOrder !== undefined) {
|
|
35
|
+
const rJob = await minted.mintJobOrder;
|
|
36
|
+
if (rJob.isErr()) {
|
|
37
|
+
await abandonAlternativeChat(vctx, { chatId: minted.chatId, originChatId: o.originChatId, reason: "light-mint-failed" });
|
|
38
|
+
return { dispatched: false, chatId: minted.chatId, skipped: "light-mint-failed" };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const chatId = minted.chatId;
|
|
42
|
+
markAlternativeChat(vctx, chatId);
|
|
43
|
+
const promptId = vctx.sthis.nextId(12).str;
|
|
44
|
+
const seeded = await seedOpeningSection(vctx, {
|
|
45
|
+
chatId,
|
|
46
|
+
userText: o.personWords,
|
|
47
|
+
assistantLines: alternativeOpenerLines({ opener: o.opener, originLabel: o.originLabel }),
|
|
48
|
+
promptId,
|
|
49
|
+
streamId: promptId,
|
|
50
|
+
blockId: vctx.sthis.nextId(12).str,
|
|
51
|
+
});
|
|
52
|
+
if (seeded.isErr()) {
|
|
53
|
+
vctx.logger.Warn().Err(seeded).Str("chatId", o.originChatId).Msg("alternative-first-build-opening-failed");
|
|
54
|
+
await abandonAlternativeChat(vctx, { chatId, originChatId: o.originChatId, reason: "opening-failed" });
|
|
55
|
+
return { dispatched: false, chatId, skipped: "refused" };
|
|
56
|
+
}
|
|
57
|
+
const firstTurn = {
|
|
58
|
+
chatId,
|
|
59
|
+
claim: () => claimFirstTurnMint(vctx, chatId),
|
|
60
|
+
release: async () => {
|
|
61
|
+
await claimMintJob(vctx, chatId, ["pending"], "agent");
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
const created = await runCreateVibeTool(vctx, {
|
|
65
|
+
actor: o.actor,
|
|
66
|
+
input: o.input,
|
|
67
|
+
dispatcher: o.dispatcherFor(chatId),
|
|
68
|
+
firstTurn,
|
|
69
|
+
});
|
|
70
|
+
if (created.isErr()) {
|
|
71
|
+
const reason = created.Err().refusal.reason;
|
|
72
|
+
vctx.logger
|
|
73
|
+
.Info()
|
|
74
|
+
.Any("event", { chatId: o.originChatId, alternativeChatId: chatId, reason })
|
|
75
|
+
.Msg("alternative-first-build-skipped");
|
|
76
|
+
await abandonAlternativeChat(vctx, { chatId, originChatId: o.originChatId, reason, promptId });
|
|
77
|
+
return { dispatched: false, chatId, skipped: reason === "busy" ? "busy" : "refused" };
|
|
78
|
+
}
|
|
79
|
+
const appSlug = created.Ok().appSlug;
|
|
80
|
+
vctx.logger
|
|
81
|
+
.Info()
|
|
82
|
+
.Any("event", { chatId: o.originChatId, alternativeChatId: chatId, appSlug })
|
|
83
|
+
.Msg("alternative-first-build-dispatched");
|
|
84
|
+
return {
|
|
85
|
+
dispatched: true,
|
|
86
|
+
chatId,
|
|
87
|
+
appSlug,
|
|
88
|
+
label: `${o.actor.ownerHandle}/${appSlug}`,
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
if (r.isErr()) {
|
|
92
|
+
vctx.logger.Warn().Err(r).Str("chatId", o.originChatId).Msg("alternative-first-build-failed");
|
|
93
|
+
return { dispatched: false, skipped: "refused" };
|
|
94
|
+
}
|
|
95
|
+
return r.Ok();
|
|
96
|
+
}
|
|
97
|
+
async function abandonAlternativeChat(vctx, o) {
|
|
98
|
+
unmarkAlternativeChat(vctx, o.chatId);
|
|
99
|
+
const event = { chatId: o.originChatId, alternativeChatId: o.chatId, reason: o.reason };
|
|
100
|
+
const settled = await markMintJob(vctx, o.chatId, {
|
|
101
|
+
status: "failed",
|
|
102
|
+
lastError: `alternative-skipped: ${o.reason}`,
|
|
103
|
+
onlyFrom: ["agent", "agent-unfired", "agent-awaiting-files", "awaiting-files", "pending", "parked", "retrying"],
|
|
104
|
+
});
|
|
105
|
+
if (settled.isErr())
|
|
106
|
+
vctx.logger.Warn().Err(settled).Any("event", event).Msg("alternative-first-build-job-settle-failed");
|
|
107
|
+
const openingId = o.promptId;
|
|
108
|
+
if (openingId === undefined)
|
|
109
|
+
return;
|
|
110
|
+
const cs = vctx.sql.tables.chatSections;
|
|
111
|
+
const removed = await exception2Result(() => vctx.sql.db.delete(cs).where(and(eq(cs.chatId, o.chatId), eq(cs.promptId, openingId))));
|
|
112
|
+
if (removed.isErr())
|
|
113
|
+
vctx.logger.Warn().Err(removed).Any("event", event).Msg("alternative-first-build-opening-remove-failed");
|
|
114
|
+
}
|
|
115
|
+
export function watchAlternativeLanding(vctx, o) {
|
|
116
|
+
const waiter = registerTurnTerminalWaiter({
|
|
117
|
+
scope: vctx.connections,
|
|
118
|
+
chatId: o.chatId,
|
|
119
|
+
promptId: o.promptId,
|
|
120
|
+
deadlineMs: BUILD_LOCK_DEADLINE_MS,
|
|
121
|
+
});
|
|
122
|
+
const event = { chatId: o.originChatId, alternativeChatId: o.chatId, promptId: o.promptId };
|
|
123
|
+
void waiter.promise.then(async (landing) => {
|
|
124
|
+
if (landing.kind !== "settled") {
|
|
125
|
+
vctx.logger.Warn().Any("event", event).Msg("alternative-first-build-landing-unknown");
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const landed = landing.outcome.outcome === "applied" ? "saved" : "failed";
|
|
129
|
+
(landed === "saved" ? vctx.logger.Info() : vctx.logger.Warn())
|
|
130
|
+
.Any("event", { ...event, outcome: landing.outcome.outcome })
|
|
131
|
+
.Msg("alternative-first-build-landed");
|
|
132
|
+
const noted = await exception2Result(() => o.onLanded(landed));
|
|
133
|
+
if (noted.isErr())
|
|
134
|
+
vctx.logger.Warn().Err(noted).Any("event", event).Msg("alternative-first-build-landing-note-failed");
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=alt-first-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alt-first-build.js","sourceRoot":"","sources":["../../jsr/intern/alt-first-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { VibesApiSQLCtx } from "../types.js";
|
|
2
|
+
export declare const ALTERNATIVE_READY_PREFIX = "[alternative ready]";
|
|
3
|
+
export declare function renderAlternativeReadyNote(label: string): string;
|
|
4
|
+
export declare function alternativeReadyNote(landed: "saved" | "failed", label: string | undefined): string | undefined;
|
|
5
|
+
export declare function markAlternativeChat(vctx: Pick<VibesApiSQLCtx, "connections">, chatId: string): void;
|
|
6
|
+
export declare function unmarkAlternativeChat(vctx: Pick<VibesApiSQLCtx, "connections">, chatId: string): void;
|
|
7
|
+
export declare function takeAlternativeChat(vctx: Pick<VibesApiSQLCtx, "connections">, chatId: string): boolean;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export const ALTERNATIVE_READY_PREFIX = "[alternative ready]";
|
|
2
|
+
export function renderAlternativeReadyNote(label) {
|
|
3
|
+
const link = `/vibe/${label}`;
|
|
4
|
+
return (`${ALTERNATIVE_READY_PREFIX} ${label} Your own plan for the person's first request has finished building, ` +
|
|
5
|
+
`as an alternative app, at ${link}. Tell the person in one short message that begins with ⭐ and links it ` +
|
|
6
|
+
`as [${link}](${link}). Write it as prose, never as a ▸ option line, and call no tools. ` +
|
|
7
|
+
"Do not describe its contents or compare the two apps; you have not seen it.");
|
|
8
|
+
}
|
|
9
|
+
export function alternativeReadyNote(landed, label) {
|
|
10
|
+
if (landed !== "saved" || label === undefined)
|
|
11
|
+
return undefined;
|
|
12
|
+
return renderAlternativeReadyNote(label);
|
|
13
|
+
}
|
|
14
|
+
const alternativeChats = new WeakMap();
|
|
15
|
+
export function markAlternativeChat(vctx, chatId) {
|
|
16
|
+
const key = vctx.connections;
|
|
17
|
+
const set = alternativeChats.get(key) ?? new Set();
|
|
18
|
+
set.add(chatId);
|
|
19
|
+
alternativeChats.set(key, set);
|
|
20
|
+
}
|
|
21
|
+
export function unmarkAlternativeChat(vctx, chatId) {
|
|
22
|
+
alternativeChats.get(vctx.connections)?.delete(chatId);
|
|
23
|
+
}
|
|
24
|
+
export function takeAlternativeChat(vctx, chatId) {
|
|
25
|
+
const set = alternativeChats.get(vctx.connections);
|
|
26
|
+
if (set === undefined || set.has(chatId) === false)
|
|
27
|
+
return false;
|
|
28
|
+
set.delete(chatId);
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=alt-landing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alt-landing.js","sourceRoot":"","sources":["../../jsr/intern/alt-landing.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAG9D,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,MAAM,IAAI,GAAG,SAAS,KAAK,EAAE,CAAC;IAC9B,OAAO,CACL,GAAG,wBAAwB,IAAI,KAAK,uEAAuE;QAC3G,6BAA6B,IAAI,yEAAyE;QAC1G,OAAO,IAAI,KAAK,IAAI,qEAAqE;QACzF,6EAA6E,CAC9E,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,oBAAoB,CAAC,MAA0B,EAAE,KAAyB;IACxF,IAAI,MAAM,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChE,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAGD,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAuB,CAAC;AAG5D,MAAM,UAAU,mBAAmB,CAAC,IAAyC,EAAE,MAAc;IAC3F,MAAM,GAAG,GAAG,IAAI,CAAC,WAAqB,CAAC;IACvC,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;IAC3D,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChB,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAGD,MAAM,UAAU,qBAAqB,CAAC,IAAyC,EAAE,MAAc;IAC7F,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACnE,CAAC;AAOD,MAAM,UAAU,mBAAmB,CAAC,IAAyC,EAAE,MAAc;IAC3F,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAqB,CAAC,CAAC;IAC7D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACjE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/intern/first-brief.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare function firstBriefTools(definitions: readonly ToolDefinition[]):
|
|
|
13
13
|
export declare function withFirstBriefLine(messages: readonly LLMMessage[], words: readonly string[]): LLMMessage[];
|
|
14
14
|
export declare function withSeededAddressWordsLine(messages: readonly LLMMessage[], words: readonly string[]): LLMMessage[];
|
|
15
15
|
export declare function withoutFirstBriefLine(messages: readonly LLMMessage[]): LLMMessage[];
|
|
16
|
-
export declare const FIRST_BRIEF_CONTINUE_NOTE = "[platform] Your reply above has reached the person, and every tool is yours again for the rest of this turn. Carry on from it as you would in any turn:
|
|
16
|
+
export declare const FIRST_BRIEF_CONTINUE_NOTE = "[platform] Your reply above has reached the person, and every tool is yours again for the rest of this turn. Carry on from it as you would in any turn: end with your \u25B8 option lines when options fit, and keep what you already said as said.";
|
|
17
17
|
export declare function withFirstBriefContinueNote(messages: readonly LLMMessage[]): LLMMessage[];
|
|
18
18
|
export interface FirstBriefUsage {
|
|
19
19
|
readonly prompt_tokens: number;
|
package/intern/first-brief.js
CHANGED
|
@@ -46,7 +46,7 @@ export function withoutFirstBriefLine(messages) {
|
|
|
46
46
|
return { ...m, content: m.content.filter((part) => isRoundOneLine(part) === false) };
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
-
export const FIRST_BRIEF_CONTINUE_NOTE = "[platform] Your reply above has reached the person, and every tool is yours again for the rest of this turn. Carry on from it as you would in any turn:
|
|
49
|
+
export const FIRST_BRIEF_CONTINUE_NOTE = "[platform] Your reply above has reached the person, and every tool is yours again for the rest of this turn. Carry on from it as you would in any turn: end with your ▸ option lines when options fit, and keep what you already said as said.";
|
|
50
50
|
export function withFirstBriefContinueNote(messages) {
|
|
51
51
|
return [...messages, { role: "user", content: [{ type: "text", text: FIRST_BRIEF_CONTINUE_NOTE }] }];
|
|
52
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-brief.js","sourceRoot":"","sources":["../../jsr/intern/first-brief.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAe,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EACL,QAAQ,EACR,SAAS,GAKV,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAmB1D,MAAM,WAAW,GAAG,aAAa,CAAC;AAgBlC,MAAM,UAAU,sBAAsB,CAAC,CAKtC;IACC,OAAO,CAAC,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC;AACxG,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,WAAsC;IACpE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;AACpE,CAAC;AAGD,MAAM,mBAAmB,GAAsB,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAAC;AAEjG,SAAS,cAAc,CAAC,IAAa;IACnC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACZ,IAA2B,CAAC,IAAI,KAAK,MAAM;QAC5C,OAAQ,IAA2B,CAAC,IAAI,KAAK,QAAQ;QACrD,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAE,IAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CACnF,CAAC;AACJ,CAAC;AAGD,SAAS,gBAAgB,CAAC,QAA+B,EAAE,IAAY;IACrE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACZ,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QACpF,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC;AAMD,MAAM,UAAU,kBAAkB,CAAC,QAA+B,EAAE,KAAwB;IAC1F,OAAO,gBAAgB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;AACvE,CAAC;AAMD,MAAM,UAAU,0BAA0B,CAAC,QAA+B,EAAE,KAAwB;IAClG,OAAO,gBAAgB,CAAC,QAAQ,EAAE,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,CAAC;AAGD,MAAM,UAAU,qBAAqB,CAAC,QAA+B;IACnE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QACpH,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC;AAYD,MAAM,CAAC,MAAM,yBAAyB,GACpC,
|
|
1
|
+
{"version":3,"file":"first-brief.js","sourceRoot":"","sources":["../../jsr/intern/first-brief.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export declare function firstBuildSkillMenu(opts: {
|
|
|
13
13
|
export declare function firstBuildClassifierMessage(personWords: string, skillMenu: string): string;
|
|
14
14
|
export declare const firstBuildClassifierSchema: {
|
|
15
15
|
readonly name: "first_build";
|
|
16
|
-
readonly required: readonly ["build", "skills", "pairs", "iconDescription", "nature", "
|
|
16
|
+
readonly required: readonly ["build", "skills", "pairs", "iconDescription", "nature", "keepsToThemselves"];
|
|
17
17
|
readonly properties: {
|
|
18
18
|
readonly build: {
|
|
19
19
|
readonly type: "boolean";
|
|
@@ -45,7 +45,7 @@ export declare const firstBuildClassifierSchema: {
|
|
|
45
45
|
readonly type: "string";
|
|
46
46
|
readonly enum: readonly ["sensitive", "collaborative", "open"];
|
|
47
47
|
};
|
|
48
|
-
readonly
|
|
48
|
+
readonly keepsToThemselves: {
|
|
49
49
|
readonly type: "boolean";
|
|
50
50
|
};
|
|
51
51
|
};
|
|
@@ -65,7 +65,7 @@ export interface FirstBuildVerdict {
|
|
|
65
65
|
}[];
|
|
66
66
|
readonly iconDescription?: string;
|
|
67
67
|
readonly nature?: AppNature;
|
|
68
|
-
readonly
|
|
68
|
+
readonly keepsToThemselves: boolean;
|
|
69
69
|
readonly model: string;
|
|
70
70
|
readonly usage?: FirstBuildUsage;
|
|
71
71
|
readonly elapsedMs: number;
|
|
@@ -76,7 +76,7 @@ export declare function parseFirstBuildVerdict(raw: unknown, meta: {
|
|
|
76
76
|
readonly elapsedMs: number;
|
|
77
77
|
}): Result<FirstBuildVerdict>;
|
|
78
78
|
export declare function serverFirstBuildBrief(personWords: string, o: {
|
|
79
|
-
readonly
|
|
79
|
+
readonly keepsToThemselves: boolean;
|
|
80
80
|
}): string;
|
|
81
81
|
export declare function createVibeInputFromVerdict(personWords: string, verdict: FirstBuildVerdict): CreateVibeToolInput;
|
|
82
82
|
export interface ClassifyFirstBuildArgs {
|
|
@@ -4,7 +4,7 @@ import { type } from "arktype";
|
|
|
4
4
|
import { AppNature } from "@vibes.diy/api-types";
|
|
5
5
|
import { getLlmCatalog } from "@vibes.diy/prompts";
|
|
6
6
|
import { isPoufBlockSkill, poufLookFor } from "./pouf-look-flag.js";
|
|
7
|
-
import { GROUP_READY_SHAPE, INVITE_SCREEN_WHEN, KNOWN_VALUES_DIRECT_CONTROLS, SEED_DEMO_RULE, } from "./agent-session-instruction.js";
|
|
7
|
+
import { GROUP_READY_SHAPE, INVITE_SCREEN_WHEN, KNOWN_VALUES_DIRECT_CONTROLS, ONE_TREE_PER_PERSON, SEED_DEMO_RULE, } from "./agent-session-instruction.js";
|
|
8
8
|
import { lazyType } from "@vibes.diy/api-types/lazy-type";
|
|
9
9
|
export const FIRST_BUILD_CLASSIFIER_MODEL = "google/gemini-3.5-flash-lite";
|
|
10
10
|
export const FIRST_BUILD_CLASSIFIER_REASONING = { effort: "minimal" };
|
|
@@ -37,10 +37,12 @@ export function firstBuildClassifierMessage(personWords, skillMenu) {
|
|
|
37
37
|
'"backend" for schedules, email, fetching, notifications and server work; ' +
|
|
38
38
|
'"callai" for record intake by sentence, a chat reply, a suggestion or any text the page asks the model for itself. ' +
|
|
39
39
|
"Access rules ride every build already.",
|
|
40
|
-
"noAccessControl: true only when the message itself asks for no access control, a single-user app or no sharing; false otherwise.",
|
|
41
40
|
"pairs: three title/slug pairs ranked by fit — a Title Case title of one to four words, and a kebab-case slug made from it.",
|
|
42
41
|
"iconDescription: one short line naming what the app's icon shows, such as 'a fox on a record player'.",
|
|
43
|
-
|
|
42
|
+
"keepsToThemselves: true when the message keeps the app to the person who asked — just for me, private to me, single-user, no sharing; false otherwise (a private chef or private lessons app serves customers), a diary or health app included unless its words say so.",
|
|
43
|
+
'nature: "sensitive" for private record-keeping (a diary, health, money) and for every keepsToThemselves message; ' +
|
|
44
|
+
'"open" for a light toy anyone can play with, or a message asking for no access control or for anyone to edit; "collaborative" for everything else. ' +
|
|
45
|
+
"When a message both keeps the app to the person and asks for no access control, keepsToThemselves decides and nature is sensitive.",
|
|
44
46
|
"",
|
|
45
47
|
"Skills:",
|
|
46
48
|
skillMenu,
|
|
@@ -51,7 +53,7 @@ export function firstBuildClassifierMessage(personWords, skillMenu) {
|
|
|
51
53
|
}
|
|
52
54
|
export const firstBuildClassifierSchema = {
|
|
53
55
|
name: "first_build",
|
|
54
|
-
required: ["build", "skills", "pairs", "iconDescription", "nature", "
|
|
56
|
+
required: ["build", "skills", "pairs", "iconDescription", "nature", "keepsToThemselves"],
|
|
55
57
|
properties: {
|
|
56
58
|
build: { type: "boolean" },
|
|
57
59
|
skills: { type: "array", items: { type: "string" } },
|
|
@@ -61,7 +63,7 @@ export const firstBuildClassifierSchema = {
|
|
|
61
63
|
},
|
|
62
64
|
iconDescription: { type: "string" },
|
|
63
65
|
nature: { type: "string", enum: ["sensitive", "collaborative", "open"] },
|
|
64
|
-
|
|
66
|
+
keepsToThemselves: { type: "boolean" },
|
|
65
67
|
},
|
|
66
68
|
};
|
|
67
69
|
const firstBuildParsed = lazyType(() => type({
|
|
@@ -70,7 +72,7 @@ const firstBuildParsed = lazyType(() => type({
|
|
|
70
72
|
"pairs?": type({ "title?": "string", "slug?": "string" }).array(),
|
|
71
73
|
"iconDescription?": "string",
|
|
72
74
|
"nature?": "string",
|
|
73
|
-
"
|
|
75
|
+
"keepsToThemselves?": "boolean",
|
|
74
76
|
}));
|
|
75
77
|
export function parseFirstBuildVerdict(raw, meta) {
|
|
76
78
|
const parsed = firstBuildParsed(raw);
|
|
@@ -82,14 +84,15 @@ export function parseFirstBuildVerdict(raw, meta) {
|
|
|
82
84
|
return title.length > 0 && slug.length > 0 ? [{ title, slug }] : [];
|
|
83
85
|
});
|
|
84
86
|
const icon = (parsed.iconDescription ?? "").trim();
|
|
85
|
-
const
|
|
87
|
+
const keepsToThemselves = parsed.keepsToThemselves === true;
|
|
88
|
+
const nature = keepsToThemselves ? "sensitive" : AppNature(parsed.nature);
|
|
86
89
|
return Result.Ok({
|
|
87
90
|
build: parsed.build,
|
|
88
91
|
skills: (parsed.skills ?? []).map((s) => s.trim()).filter((s) => s.length > 0),
|
|
89
92
|
pairs,
|
|
90
93
|
...(icon.length === 0 ? {} : { iconDescription: icon }),
|
|
91
94
|
...(nature instanceof type.errors ? {} : { nature }),
|
|
92
|
-
|
|
95
|
+
keepsToThemselves,
|
|
93
96
|
model: meta.model,
|
|
94
97
|
...(meta.usage === undefined ? {} : { usage: meta.usage }),
|
|
95
98
|
elapsedMs: meta.elapsedMs,
|
|
@@ -97,12 +100,9 @@ export function parseFirstBuildVerdict(raw, meta) {
|
|
|
97
100
|
}
|
|
98
101
|
export function serverFirstBuildBrief(personWords, o) {
|
|
99
102
|
return [
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
`This first build is group-ready: ${GROUP_READY_SHAPE}`,
|
|
104
|
-
`${INVITE_SCREEN_WHEN}; every other first build leaves it as an option for later.`,
|
|
105
|
-
]),
|
|
103
|
+
`This first build is group-ready: ${GROUP_READY_SHAPE}`,
|
|
104
|
+
`${INVITE_SCREEN_WHEN}; every other first build leaves it as an option for later.`,
|
|
105
|
+
...(o.keepsToThemselves ? [ONE_TREE_PER_PERSON] : []),
|
|
106
106
|
`Sample content: ${SEED_DEMO_RULE}`,
|
|
107
107
|
KNOWN_VALUES_DIRECT_CONTROLS,
|
|
108
108
|
`The person asked: "${personWords}". Plan the app from their words.`,
|
|
@@ -110,8 +110,6 @@ export function serverFirstBuildBrief(personWords, o) {
|
|
|
110
110
|
}
|
|
111
111
|
function serverFirstBuildSkills(verdict) {
|
|
112
112
|
const picked = verdict.skills.filter((s) => s !== SERVER_FIRST_BUILD_ACCESS_SKILL);
|
|
113
|
-
if (verdict.noAccessControl)
|
|
114
|
-
return picked;
|
|
115
113
|
return verdict.skills.includes(SERVER_FIRST_BUILD_ACCESS_SKILL)
|
|
116
114
|
? [...verdict.skills]
|
|
117
115
|
: [...picked, SERVER_FIRST_BUILD_ACCESS_SKILL];
|
|
@@ -119,7 +117,7 @@ function serverFirstBuildSkills(verdict) {
|
|
|
119
117
|
export function createVibeInputFromVerdict(personWords, verdict) {
|
|
120
118
|
return {
|
|
121
119
|
prompt: personWords,
|
|
122
|
-
enrichedPrompt: serverFirstBuildBrief(personWords, {
|
|
120
|
+
enrichedPrompt: serverFirstBuildBrief(personWords, { keepsToThemselves: verdict.keepsToThemselves }),
|
|
123
121
|
skills: serverFirstBuildSkills(verdict),
|
|
124
122
|
pairs: verdict.pairs.map((p) => ({ ...p })),
|
|
125
123
|
...(verdict.iconDescription === undefined ? {} : { iconDescription: verdict.iconDescription }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-build-classifier.js","sourceRoot":"","sources":["../../jsr/intern/first-build-classifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"first-build-classifier.js","sourceRoot":"","sources":["../../jsr/intern/first-build-classifier.ts"],"names":[],"mappings":"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"}
|