@vibes.diy/api-svc 2.2.7 → 2.2.9

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/cf-serve.d.ts CHANGED
@@ -23,7 +23,9 @@ export interface CFInjectMutable {
23
23
  };
24
24
  drizzle: VibesSqlite;
25
25
  wsResponse?: Response;
26
- llmRequest?: (prompt: LLMRequest) => Promise<Response>;
26
+ llmRequest?: (prompt: LLMRequest, opts?: {
27
+ readonly signal?: AbortSignal;
28
+ }) => Promise<Response>;
27
29
  docNotify?: DocNotifyCtx;
28
30
  }
29
31
  export type CFInject = Readonly<CFInjectMutable>;
package/cf-serve.js CHANGED
@@ -31,12 +31,13 @@ function docNotifyCallbacks(dn) {
31
31
  }));
32
32
  }
33
33
  return {
34
- notifyDocChanged: async (evt) => {
34
+ notifyDocChanged: async (evt, senderConnId) => {
35
35
  const key = `${evt.userSlug}/${evt.appSlug}/${evt.dbName}`;
36
- console.log("[docNotify] notifyDocChanged key:", key, "shard:", dn.shardId.slice(0, 8));
36
+ console.log("[docNotify] notifyDocChanged key:", key, "shard:", dn.shardId.slice(0, 8), "conn:", senderConnId.slice(0, 8));
37
37
  await fetchDocNotify(key, {
38
38
  action: "notify",
39
39
  senderShardId: dn.shardId,
40
+ senderConnId,
40
41
  evt: { type: "vibes.diy.evt-doc-changed", ...evt },
41
42
  });
42
43
  },
package/cf-serve.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cf-serve.js","sourceRoot":"","sources":["../jsr/cf-serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cf-serve.js","sourceRoot":"","sources":["../jsr/cf-serve.ts"],"names":[],"mappings":"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"}
@@ -25,13 +25,15 @@ export interface CreateHandlerParams<T extends VibesSqlite> {
25
25
  fetchPkgVersion?: ResolveFunction;
26
26
  llmRequest?(prompt: LLMRequest & {
27
27
  headers: LLMHeaders;
28
+ }, opts?: {
29
+ readonly signal?: AbortSignal;
28
30
  }): Promise<Response>;
29
31
  notifyDocChanged?(evt: {
30
32
  userSlug: string;
31
33
  appSlug: string;
32
34
  dbName: string;
33
35
  docId: string;
34
- }): Promise<void>;
36
+ }, senderConnId: string): Promise<void>;
35
37
  registerDocSubscription?(subscriptionKey: string): Promise<void>;
36
38
  deregisterDocSubscription?(subscriptionKey: string): Promise<void>;
37
39
  }
@@ -2,9 +2,13 @@ import { LLMHeaders } from "@vibes.diy/api-types";
2
2
  import { LLMRequest } from "@vibes.diy/call-ai-v2";
3
3
  export declare function defaultLLMRequest(fn: ((req: LLMRequest & {
4
4
  headers: LLMHeaders;
5
+ }, opts?: {
6
+ readonly signal?: AbortSignal;
5
7
  }) => Promise<Response>) | undefined, { url, apiKey }: {
6
8
  url: string;
7
9
  apiKey?: string;
8
10
  }): (req: LLMRequest & {
9
11
  headers: LLMHeaders;
12
+ }, opts?: {
13
+ readonly signal?: AbortSignal;
10
14
  }) => Promise<Response>;
@@ -4,7 +4,7 @@ export function defaultLLMRequest(fn, { url, apiKey, }) {
4
4
  if (fn) {
5
5
  return fn;
6
6
  }
7
- return (req) => {
7
+ return (req, opts) => {
8
8
  const stripLLMRequest = type(LLMRequest).onDeepUndeclaredKey("delete")(req);
9
9
  if (stripLLMRequest instanceof type.errors) {
10
10
  throw new Error(`Invalid LLMRequest: ${stripLLMRequest.summary}`);
@@ -18,6 +18,7 @@ export function defaultLLMRequest(fn, { url, apiKey, }) {
18
18
  "Content-Type": "application/json",
19
19
  },
20
20
  body,
21
+ signal: opts?.signal,
21
22
  });
22
23
  };
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"default-llm-request.js","sourceRoot":"","sources":["../jsr/default-llm-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,UAAU,iBAAiB,CAC/B,EAAkF,EAClF,EACE,GAAG,EACH,MAAM,GAIP;IAED,IAAI,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,GAAyC,EAAE,EAAE;QACnD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5E,IAAI,eAAe,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,uBAAuB,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAE7C,OAAO,KAAK,CAAC,GAAG,EAAE;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,GAAG,GAAG,CAAC,OAAO;gBACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI;SACL,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"default-llm-request.js","sourceRoot":"","sources":["../jsr/default-llm-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,UAAU,iBAAiB,CAC/B,EAA4H,EAC5H,EACE,GAAG,EACH,MAAM,GAIP;IAED,IAAI,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5E,IAAI,eAAe,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,uBAAuB,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,GAAG,EAAE;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,GAAG,GAAG,CAAC,OAAO;gBACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI;YACJ,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
package/index.d.ts CHANGED
@@ -13,3 +13,4 @@ export * from "./intern/application-settings.js";
13
13
  export * from "./public/prompt-chat-section.js";
14
14
  export * from "./noop-cache.js";
15
15
  export * from "./intern/ensure-slug-binding.js";
16
+ export * from "./intern/recovery.js";
package/index.js CHANGED
@@ -13,4 +13,5 @@ export * from "./intern/application-settings.js";
13
13
  export * from "./public/prompt-chat-section.js";
14
14
  export * from "./noop-cache.js";
15
15
  export * from "./intern/ensure-slug-binding.js";
16
+ export * from "./intern/recovery.js";
16
17
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { VibesApiSQLCtx } from "../types.js";
3
+ export interface EnsureAppMetadataArgs {
4
+ readonly userId: string;
5
+ readonly userSlug: string;
6
+ readonly appSlug: string;
7
+ readonly prompt: string;
8
+ readonly src: string;
9
+ }
10
+ export interface EnsureAppMetadataResult {
11
+ readonly generated: boolean;
12
+ }
13
+ export declare function ensureAppMetadata(ctx: VibesApiSQLCtx, args: EnsureAppMetadataArgs): Promise<Result<EnsureAppMetadataResult>>;
@@ -0,0 +1,94 @@
1
+ import { exception2Result, Result } from "@adviser/cement";
2
+ import { and, eq } from "drizzle-orm/sql/expressions";
3
+ import { ensureLogger } from "@fireproof/core-runtime";
4
+ import { ActiveEntry, isActiveTitle, parseArrayWarning, } from "@vibes.diy/api-types";
5
+ import { preAllocate } from "./pre-allocate.js";
6
+ export async function ensureAppMetadata(ctx, args) {
7
+ const rExisting = await exception2Result(() => ctx.sql.db
8
+ .select()
9
+ .from(ctx.sql.tables.appSettings)
10
+ .where(and(eq(ctx.sql.tables.appSettings.userSlug, args.userSlug), eq(ctx.sql.tables.appSettings.appSlug, args.appSlug)))
11
+ .limit(1)
12
+ .then((r) => r[0]));
13
+ if (rExisting.isErr()) {
14
+ return Result.Err(`appSettings select failed: ${rExisting.Err()}`);
15
+ }
16
+ const existing = rExisting.Ok();
17
+ const { filtered: existingEntries } = parseArrayWarning(existing?.settings ?? [], ActiveEntry);
18
+ if (existingEntries.some(isActiveTitle)) {
19
+ return Result.Ok({ generated: false });
20
+ }
21
+ const rPre = await preAllocate(ctx, { prompt: args.prompt });
22
+ if (rPre.isErr()) {
23
+ ensureLogger(ctx.sthis, "ensureAppMetadata")
24
+ .Warn()
25
+ .Any({ err: rPre.Err(), userSlug: args.userSlug, appSlug: args.appSlug })
26
+ .Msg("preAllocate failed; skipping metadata generation");
27
+ return Result.Ok({ generated: false });
28
+ }
29
+ const pre = rPre.Ok();
30
+ const title = pre.pairs[0]?.title;
31
+ const skills = pre.skills;
32
+ const iconDescription = pre.iconDescription;
33
+ const newEntries = [];
34
+ if (title)
35
+ newEntries.push({ type: "active.title", title });
36
+ if (skills && skills.length > 0)
37
+ newEntries.push({ type: "active.skills", skills });
38
+ if (iconDescription)
39
+ newEntries.push({ type: "active.icon-description", description: iconDescription });
40
+ if (newEntries.length === 0) {
41
+ return Result.Ok({ generated: false });
42
+ }
43
+ const now = new Date().toISOString();
44
+ if (existing) {
45
+ const merged = [...existingEntries, ...newEntries];
46
+ const rUpd = await exception2Result(() => ctx.sql.db
47
+ .update(ctx.sql.tables.appSettings)
48
+ .set({ settings: merged, updated: now })
49
+ .where(and(eq(ctx.sql.tables.appSettings.userSlug, args.userSlug), eq(ctx.sql.tables.appSettings.appSlug, args.appSlug))));
50
+ if (rUpd.isErr()) {
51
+ return Result.Err(`appSettings update failed: ${rUpd.Err()}`);
52
+ }
53
+ }
54
+ else {
55
+ const rIns = await exception2Result(() => ctx.sql.db.insert(ctx.sql.tables.appSettings).values({
56
+ userId: args.userId,
57
+ userSlug: args.userSlug,
58
+ appSlug: args.appSlug,
59
+ settings: newEntries,
60
+ updated: now,
61
+ created: now,
62
+ }));
63
+ if (rIns.isErr()) {
64
+ return Result.Err(`appSettings insert failed: ${rIns.Err()}`);
65
+ }
66
+ }
67
+ await ctx.postQueue({
68
+ payload: {
69
+ type: "vibes.diy.evt-app-setting",
70
+ userSlug: args.userSlug,
71
+ appSlug: args.appSlug,
72
+ settings: newEntries,
73
+ },
74
+ tid: "queue-event",
75
+ src: args.src,
76
+ dst: "vibes-service",
77
+ ttl: 1,
78
+ });
79
+ if (iconDescription) {
80
+ await ctx.postQueue({
81
+ payload: {
82
+ type: "vibes.diy.evt-icon-gen",
83
+ userSlug: args.userSlug,
84
+ appSlug: args.appSlug,
85
+ },
86
+ tid: "queue-event",
87
+ src: args.src,
88
+ dst: "vibes-service",
89
+ ttl: 1,
90
+ });
91
+ }
92
+ return Result.Ok({ generated: true });
93
+ }
94
+ //# sourceMappingURL=ensure-app-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-app-metadata.js","sourceRoot":"","sources":["../../jsr/intern/ensure-app-metadata.ts"],"names":[],"mappings":"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"}
@@ -63,11 +63,13 @@ export async function ensureChatId(ctx, req) {
63
63
  if (!chatId) {
64
64
  let preferredPairs;
65
65
  let preAllocSkills;
66
+ let preAllocIconDescription;
66
67
  if (req.prompt && !req.appSlug) {
67
68
  const rPre = await preAllocate(ctx, { prompt: req.prompt });
68
69
  if (rPre.isOk()) {
69
70
  preferredPairs = rPre.Ok().pairs;
70
71
  preAllocSkills = rPre.Ok().skills;
72
+ preAllocIconDescription = rPre.Ok().iconDescription;
71
73
  }
72
74
  else {
73
75
  console.warn("preAllocate failed; falling through to random-words:", rPre.Err());
@@ -87,20 +89,21 @@ export async function ensureChatId(ctx, req) {
87
89
  userSlug,
88
90
  created: new Date().toISOString(),
89
91
  });
90
- if (chosenTitle || preAllocSkills) {
92
+ if (chosenTitle || preAllocSkills || preAllocIconDescription) {
91
93
  await writePreAllocActiveEntries(ctx, {
92
94
  userId,
93
95
  userSlug,
94
96
  appSlug,
95
97
  title: chosenTitle,
96
98
  skills: preAllocSkills,
99
+ iconDescription: preAllocIconDescription,
97
100
  });
98
101
  }
99
102
  }
100
103
  }
101
104
  return Result.Ok({ appSlug, userSlug, chatId });
102
105
  }
103
- async function writePreAllocActiveEntries(ctx, { userId, userSlug, appSlug, title, skills, }) {
106
+ async function writePreAllocActiveEntries(ctx, { userId, userSlug, appSlug, title, skills, iconDescription, }) {
104
107
  const now = new Date().toISOString();
105
108
  const entries = [];
106
109
  if (title) {
@@ -109,6 +112,9 @@ async function writePreAllocActiveEntries(ctx, { userId, userSlug, appSlug, titl
109
112
  if (skills && skills.length > 0) {
110
113
  entries.push({ type: "active.skills", skills });
111
114
  }
115
+ if (iconDescription) {
116
+ entries.push({ type: "active.icon-description", description: iconDescription });
117
+ }
112
118
  if (entries.length === 0)
113
119
  return;
114
120
  const rIns = await exception2Result(() => ctx.sql.db.insert(ctx.sql.tables.appSettings).values({
@@ -138,5 +144,18 @@ async function writePreAllocActiveEntries(ctx, { userId, userSlug, appSlug, titl
138
144
  dst: "vibes-service",
139
145
  ttl: 1,
140
146
  });
147
+ if (iconDescription) {
148
+ await ctx.postQueue({
149
+ payload: {
150
+ type: "vibes.diy.evt-icon-gen",
151
+ userSlug,
152
+ appSlug,
153
+ },
154
+ tid: "queue-event",
155
+ src: "ensureChatId",
156
+ dst: "vibes-service",
157
+ ttl: 1,
158
+ });
159
+ }
141
160
  }
142
161
  //# sourceMappingURL=ensure-chat-id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-chat-id.js","sourceRoot":"","sources":["../../jsr/intern/ensure-chat-id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensure-chat-id.js","sourceRoot":"","sources":["../../jsr/intern/ensure-chat-id.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export interface PreAllocateResult {
6
6
  title: string;
7
7
  slug: string;
8
8
  }[];
9
+ iconDescription: string;
9
10
  }
10
11
  export declare function preAllocate(vctx: VibesApiSQLCtx, { prompt }: {
11
12
  prompt: string;
@@ -51,6 +51,7 @@ export async function preAllocate(vctx, { prompt }) {
51
51
  return Result.Ok({
52
52
  skills: validSkills,
53
53
  pairs: validated.pairs.slice(0, 3),
54
+ iconDescription: validated.iconDescription,
54
55
  });
55
56
  }
56
57
  //# sourceMappingURL=pre-allocate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pre-allocate.js","sourceRoot":"","sources":["../../jsr/intern/pre-allocate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEjH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAOtD,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAgBlC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAoB,EAAE,EAAE,MAAM,EAAsB;IACpF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAE1E,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC/C,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,oBAAoB,IAAI,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAC1H,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACxC,OAAO,CAAC,IAAI,CAAC;QACX,MAAM,CAAC,WAAW,EAAE;YAClB,KAAK,EAAE,UAAU,CAAC,EAAE;YACpB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM;YAC9B,MAAM,EAAE,cAAc;SACvB,CAAC;QACF,OAAO;KACR,CAAC,CACH,CAAC;IACF,IAAI,KAAK,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;IACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,gCAAgC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAExF,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,SAAS,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,GAAG,CAAC,uCAAuC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAChD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACjC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC5H,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC;QACf,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KACnC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"pre-allocate.js","sourceRoot":"","sources":["../../jsr/intern/pre-allocate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { type CodeBeginMsg, type CodeEndMsg, type CodeLineMsg, type CodeTruncatedMsg, type LLMRequest } from "@vibes.diy/call-ai-v2";
3
+ export interface RecoveryRequestInput {
4
+ readonly originalRequest: LLMRequest;
5
+ readonly recoveryAddendum: string;
6
+ readonly vfs: ReadonlyMap<string, string>;
7
+ readonly focusPath: string;
8
+ readonly assistantPartial?: string;
9
+ readonly lastReplaceFileLines?: number;
10
+ }
11
+ export declare function buildRecoveryRequest({ originalRequest, recoveryAddendum, vfs, focusPath, assistantPartial, lastReplaceFileLines }: RecoveryRequestInput): Result<LLMRequest>;
12
+ export interface RecoveryBudget {
13
+ readonly maxConsecutiveFruitless: number;
14
+ }
15
+ export interface RecoveryCounter {
16
+ readonly consecutiveFruitless: number;
17
+ }
18
+ export declare function updateRecoveryCounter(counter: RecoveryCounter, outcome: {
19
+ readonly madeProgress: boolean;
20
+ }): RecoveryCounter;
21
+ export declare function shouldAttemptRecovery(counter: RecoveryCounter, budget?: RecoveryBudget): boolean;
22
+ export interface BuildTruncatedEventInput {
23
+ readonly closed: {
24
+ readonly begin: CodeBeginMsg;
25
+ readonly lines: readonly CodeLineMsg[];
26
+ readonly end: CodeEndMsg;
27
+ };
28
+ readonly firstError: {
29
+ readonly reason: string;
30
+ readonly kind: string;
31
+ };
32
+ readonly errorCount: number;
33
+ readonly promptId: string;
34
+ readonly blockSeq: number;
35
+ readonly now: Date;
36
+ }
37
+ export declare function buildTruncatedEvent(input: BuildTruncatedEventInput): CodeTruncatedMsg;
@@ -0,0 +1,101 @@
1
+ import { Result } from "@adviser/cement";
2
+ const MAX_RECOVERY_FILE_BYTES = 16_000;
3
+ const MAX_RECOVERY_TOTAL_BYTES = 32_000;
4
+ export function buildRecoveryRequest({ originalRequest, recoveryAddendum, vfs, focusPath, assistantPartial, lastReplaceFileLines, }) {
5
+ if (recoveryAddendum.length === 0) {
6
+ return Result.Err("recovery addendum is empty");
7
+ }
8
+ if (focusPath.length === 0) {
9
+ return Result.Err("focus path is empty");
10
+ }
11
+ const filesBlock = renderCurrentFiles(vfs, focusPath);
12
+ const recoverySuffix = `${recoveryAddendum}\n\n${filesBlock}`;
13
+ const messages = mergeRecoveryIntoSystem(originalRequest.messages, recoverySuffix);
14
+ if (assistantPartial !== undefined && assistantPartial.length > 0) {
15
+ messages.push({
16
+ role: "user",
17
+ content: [{ type: "text", text: renderPartialResume(assistantPartial, focusPath, lastReplaceFileLines) }],
18
+ });
19
+ }
20
+ return Result.Ok({ ...originalRequest, messages });
21
+ }
22
+ function renderPartialResume(assistantPartial, focusPath, lastReplaceFileLines) {
23
+ const fileAnchor = lastReplaceFileLines !== undefined
24
+ ? ` Your last successfully-applied edit was a SEARCH/REPLACE on ${focusPath}; after that edit the file was ${lastReplaceFileLines} lines long.`
25
+ : "";
26
+ return [
27
+ `Your previous message was interrupted. Your own output so far this turn is reproduced below, truncated to the end of your last successfully-applied code block (every byte after that — any prose narrating the next edit, and any code that was being streamed when the interruption happened — has been dropped because it never landed).${fileAnchor}`,
28
+ "",
29
+ assistantPartial,
30
+ "",
31
+ "Continue your turn from there. CURRENT FILES (in the system message) is ground truth for what's actually in the file right now; anchor every SEARCH against text that appears there.",
32
+ ].join("\n");
33
+ }
34
+ function mergeRecoveryIntoSystem(messages, recoverySuffix) {
35
+ const firstSystemIdx = messages.findIndex((m) => m.role === "system");
36
+ if (firstSystemIdx === -1) {
37
+ return [{ role: "system", content: [{ type: "text", text: recoverySuffix }] }, ...messages];
38
+ }
39
+ const original = messages[firstSystemIdx];
40
+ const originalText = original.content[0]?.type === "text" ? original.content[0].text : "";
41
+ const merged = {
42
+ role: "system",
43
+ content: [{ type: "text", text: `${originalText}\n\n${recoverySuffix}` }],
44
+ };
45
+ return [...messages.slice(0, firstSystemIdx), merged, ...messages.slice(firstSystemIdx + 1)];
46
+ }
47
+ function renderCurrentFiles(vfs, focusPath) {
48
+ const lines = ["CURRENT FILES (resolved so far this turn):"];
49
+ let totalBudget = MAX_RECOVERY_TOTAL_BYTES;
50
+ const ordered = orderForRecovery(vfs, focusPath);
51
+ for (const [path, content] of ordered) {
52
+ const cap = Math.min(MAX_RECOVERY_FILE_BYTES, totalBudget);
53
+ if (cap <= 0) {
54
+ lines.push(`--- ${path} (omitted: total context budget exhausted) ---`);
55
+ continue;
56
+ }
57
+ if (content.length <= cap) {
58
+ lines.push(`--- ${path} ---`, content);
59
+ totalBudget -= content.length;
60
+ }
61
+ else {
62
+ lines.push(`--- ${path} (truncated: ${content.length} bytes → first ${cap}) ---`, content.slice(0, cap), `--- ${path} (truncated above) ---`);
63
+ totalBudget -= cap;
64
+ }
65
+ }
66
+ return lines.join("\n");
67
+ }
68
+ function orderForRecovery(vfs, focusPath) {
69
+ const entries = Array.from(vfs.entries());
70
+ const focusEntry = entries.find(([p]) => p === focusPath || `/${p}` === focusPath || p === `/${focusPath}`);
71
+ if (focusEntry === undefined) {
72
+ return entries.sort((a, b) => a[0].localeCompare(b[0]));
73
+ }
74
+ const others = entries.filter((e) => e !== focusEntry).sort((a, b) => a[0].localeCompare(b[0]));
75
+ return [focusEntry, ...others];
76
+ }
77
+ export function updateRecoveryCounter(counter, outcome) {
78
+ return outcome.madeProgress ? { consecutiveFruitless: 0 } : { consecutiveFruitless: counter.consecutiveFruitless + 1 };
79
+ }
80
+ export function shouldAttemptRecovery(counter, budget = { maxConsecutiveFruitless: 3 }) {
81
+ return counter.consecutiveFruitless < budget.maxConsecutiveFruitless;
82
+ }
83
+ export function buildTruncatedEvent(input) {
84
+ const { closed, firstError, errorCount, promptId, blockSeq, now } = input;
85
+ return {
86
+ type: "block.code.truncated",
87
+ blockId: closed.end.blockId,
88
+ streamId: promptId,
89
+ sectionId: closed.end.sectionId,
90
+ seq: blockSeq,
91
+ blockNr: closed.end.blockNr,
92
+ lang: closed.begin.lang,
93
+ ...(closed.begin.path !== undefined ? { path: closed.begin.path } : {}),
94
+ reason: firstError.reason,
95
+ kind: firstError.kind,
96
+ truncatedAtLine: closed.lines.length,
97
+ errorCount,
98
+ timestamp: now,
99
+ };
100
+ }
101
+ //# sourceMappingURL=recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../jsr/intern/recovery.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/api-svc",
3
- "version": "2.2.7",
3
+ "version": "2.2.9",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "dependencies": {
15
15
  "@adviser/cement": "~0.5.34",
16
16
  "@adviser/scopey": "~0.0.4",
17
- "@cloudflare/workers-types": "~4.20260418.1",
17
+ "@cloudflare/workers-types": "~4.20260402.1",
18
18
  "@fireproof/core-device-id": "~0.24.19",
19
19
  "@fireproof/core-protocols-dashboard": "~0.24.19",
20
20
  "@fireproof/core-runtime": "~0.24.19",
@@ -23,19 +23,19 @@
23
23
  "@fireproof/core-types-protocols-cloud": "~0.24.19",
24
24
  "@fireproof/core-types-protocols-dashboard": "~0.24.19",
25
25
  "@libsql/client": "~0.17.2",
26
- "@neondatabase/serverless": "~1.0.2",
27
- "@noble/hashes": "~2.0.1",
28
- "@vibes.diy/api-impl": "2.2.7",
29
- "@vibes.diy/api-pkg": "2.2.7",
30
- "@vibes.diy/api-sql": "2.2.7",
31
- "@vibes.diy/api-types": "2.2.7",
32
- "@vibes.diy/call-ai-v2": "2.2.7",
33
- "@vibes.diy/prompts": "2.2.7",
34
- "@vibes.diy/use-vibes-base": "2.2.7",
35
- "@vibes.diy/vibe-db-explorer": "2.2.7",
26
+ "@neondatabase/serverless": "~1.1.0",
27
+ "@noble/hashes": "~2.2.0",
28
+ "@vibes.diy/api-impl": "2.2.9",
29
+ "@vibes.diy/api-pkg": "2.2.9",
30
+ "@vibes.diy/api-sql": "2.2.9",
31
+ "@vibes.diy/api-types": "2.2.9",
32
+ "@vibes.diy/call-ai-v2": "2.2.9",
33
+ "@vibes.diy/prompts": "2.2.9",
34
+ "@vibes.diy/use-vibes-base": "2.2.9",
35
+ "@vibes.diy/vibe-db-explorer": "2.2.9",
36
36
  "acorn": "~8.16.0",
37
37
  "arktype": "~2.2.0",
38
- "call-ai": "2.2.7",
38
+ "call-ai": "2.2.9",
39
39
  "cookie": "~1.1.1",
40
40
  "drizzle-orm": "~0.45.2",
41
41
  "jose": "~6.2.2",
@@ -81,7 +81,7 @@ export const putDocEvento = {
81
81
  }
82
82
  if (vctx.notifyDocChanged) {
83
83
  vctx
84
- .notifyDocChanged({ userSlug: req.userSlug, appSlug: req.appSlug, dbName, docId })
84
+ .notifyDocChanged({ userSlug: req.userSlug, appSlug: req.appSlug, dbName, docId }, clientWsSend(ctx).connId)
85
85
  .catch((e) => console.error("DocNotify error:", e));
86
86
  }
87
87
  await ctx.send.send(ctx, {
@@ -231,7 +231,7 @@ export const deleteDocEvento = {
231
231
  });
232
232
  if (vctx.notifyDocChanged) {
233
233
  vctx
234
- .notifyDocChanged({ userSlug: req.userSlug, appSlug: req.appSlug, dbName, docId: req.docId })
234
+ .notifyDocChanged({ userSlug: req.userSlug, appSlug: req.appSlug, dbName, docId: req.docId }, clientWsSend(ctx).connId)
235
235
  .catch((e) => console.error("DocNotify error:", e));
236
236
  }
237
237
  await ctx.send.send(ctx, {