@vibes.diy/api-svc 14.1.21 → 14.1.23

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.
Files changed (64) hide show
  1. package/create-handler.d.ts +2 -1
  2. package/create-handler.js +1 -0
  3. package/create-handler.js.map +1 -1
  4. package/index.d.ts +2 -0
  5. package/index.js +2 -0
  6. package/index.js.map +1 -1
  7. package/intern/agent-belt.js +15 -4
  8. package/intern/agent-belt.js.map +1 -1
  9. package/intern/agent-build-tools.js +5 -2
  10. package/intern/agent-build-tools.js.map +1 -1
  11. package/intern/agent-debug-tools.d.ts +33 -0
  12. package/intern/agent-debug-tools.js +676 -0
  13. package/intern/agent-debug-tools.js.map +1 -0
  14. package/intern/agent-deferred-access.d.ts +3 -0
  15. package/intern/agent-deferred-access.js +45 -1
  16. package/intern/agent-deferred-access.js.map +1 -1
  17. package/intern/agent-file-tools.js +8 -2
  18. package/intern/agent-file-tools.js.map +1 -1
  19. package/intern/agent-instruction.d.ts +1 -1
  20. package/intern/agent-instruction.js +2 -2
  21. package/intern/agent-instruction.js.map +1 -1
  22. package/intern/agent-session-instruction.d.ts +2 -2
  23. package/intern/agent-session-instruction.js +15 -2
  24. package/intern/agent-session-instruction.js.map +1 -1
  25. package/intern/agent-session-runtime.d.ts +1 -0
  26. package/intern/agent-session-runtime.js +38 -6
  27. package/intern/agent-session-runtime.js.map +1 -1
  28. package/intern/attempt-backend-fetch.js +7 -1
  29. package/intern/attempt-backend-fetch.js.map +1 -1
  30. package/intern/backend-do-addr.d.ts +2 -0
  31. package/intern/backend-do-addr.js +2 -0
  32. package/intern/backend-do-addr.js.map +1 -1
  33. package/intern/backend-do-control-plane.d.ts +18 -0
  34. package/intern/backend-do-control-plane.js +90 -1
  35. package/intern/backend-do-control-plane.js.map +1 -1
  36. package/intern/mint-decision.d.ts +8 -0
  37. package/intern/mint-decision.js +15 -3
  38. package/intern/mint-decision.js.map +1 -1
  39. package/intern/resolve-backend-session-user.d.ts +8 -0
  40. package/intern/resolve-backend-session-user.js +10 -0
  41. package/intern/resolve-backend-session-user.js.map +1 -1
  42. package/package.json +11 -11
  43. package/public/app-documents-broadcast.d.ts +2 -0
  44. package/public/app-documents-broadcast.js +7 -0
  45. package/public/app-documents-broadcast.js.map +1 -1
  46. package/public/app-documents-read-eventos.d.ts +52 -1
  47. package/public/app-documents-read-eventos.js +250 -222
  48. package/public/app-documents-read-eventos.js.map +1 -1
  49. package/public/app-documents-write-eventos.d.ts +42 -0
  50. package/public/app-documents-write-eventos.js +334 -334
  51. package/public/app-documents-write-eventos.js.map +1 -1
  52. package/public/app-logs.d.ts +14 -2
  53. package/public/app-logs.js +60 -45
  54. package/public/app-logs.js.map +1 -1
  55. package/public/app-setting-items.d.ts +4 -0
  56. package/public/app-setting-items.js +6 -3
  57. package/public/app-setting-items.js.map +1 -1
  58. package/public/app-settings-sql-upsert.d.ts +4 -0
  59. package/public/app-settings-sql-upsert.js +1 -1
  60. package/public/app-settings-sql-upsert.js.map +1 -1
  61. package/public/prompt-chat-section.js +1 -0
  62. package/public/prompt-chat-section.js.map +1 -1
  63. package/types.d.ts +2 -1
  64. package/types.js.map +1 -1
@@ -8,6 +8,8 @@ export declare const BACKEND_OP_DISARM = "disarm";
8
8
  export declare const BACKEND_OP_CLIENT_LOG = "clientlog";
9
9
  export declare const BACKEND_LOG_COUNTRY_HEADER = "x-vibe-log-country";
10
10
  export declare const BACKEND_INTERNAL_AUTH_HEADER = "x-backend-internal-auth";
11
+ export declare const BACKEND_DENY_HEADER = "x-backend-deny";
12
+ export declare const VIBES_SESSION_USER_HEADER = "x-vibes-session-user";
11
13
  export declare function isControlPlaneAuthorized(secret: string | undefined, provided: string | null): boolean;
12
14
  interface MutableHeaders {
13
15
  set(name: string, value: string): void;
@@ -8,6 +8,8 @@ export const BACKEND_OP_DISARM = "disarm";
8
8
  export const BACKEND_OP_CLIENT_LOG = "clientlog";
9
9
  export const BACKEND_LOG_COUNTRY_HEADER = "x-vibe-log-country";
10
10
  export const BACKEND_INTERNAL_AUTH_HEADER = "x-backend-internal-auth";
11
+ export const BACKEND_DENY_HEADER = "x-backend-deny";
12
+ export const VIBES_SESSION_USER_HEADER = "x-vibes-session-user";
11
13
  export function isControlPlaneAuthorized(secret, provided) {
12
14
  if (!secret)
13
15
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"backend-do-addr.js","sourceRoot":"","sources":["../../jsr/intern/backend-do-addr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend-do-addr.js","sourceRoot":"","sources":["../../jsr/intern/backend-do-addr.ts"],"names":[],"mappings":"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"}
@@ -28,8 +28,26 @@ export interface BackendControlPlaneEnv {
28
28
  readonly BACKEND_DO?: DurableObjectNamespace;
29
29
  readonly BACKEND_ALARM_OWNER?: string;
30
30
  readonly BACKEND_INTERNAL_SECRET?: string;
31
+ readonly VIBES_SVC_HOSTNAME_BASE?: string;
31
32
  readonly ENVIRONMENT?: string;
32
33
  }
34
+ export declare const OWNER_API_BODY_MAX_BYTES: number;
35
+ export type BackendOwnerApiFetch = (params: {
36
+ readonly ownerHandle: string;
37
+ readonly appSlug: string;
38
+ readonly userId: string;
39
+ readonly method: string;
40
+ readonly path: string;
41
+ readonly body?: string;
42
+ readonly contentType?: string;
43
+ }) => Promise<Result<BackendOwnerApiResult>>;
44
+ export interface BackendOwnerApiResult {
45
+ readonly status: number;
46
+ readonly contentType: string | null;
47
+ readonly bodyText: string;
48
+ readonly truncated: boolean;
49
+ }
33
50
  export declare function backendControlPlaneCallbacks(env: BackendControlPlaneEnv): {
34
51
  backendControlPlane?: BackendControlPlaneIf;
52
+ backendOwnerApiFetch?: BackendOwnerApiFetch;
35
53
  };
@@ -1,5 +1,5 @@
1
1
  import { exception2Result, Result } from "@adviser/cement";
2
- import { backendDoName, BACKEND_INTERNAL_AUTH_HEADER, BACKEND_OP_ARM, BACKEND_OP_DISARM, BACKEND_OP_HEADER, BACKEND_OP_STATUS, BACKEND_OWNER_HEADER, BACKEND_SLUG_HEADER, } from "./backend-do-addr.js";
2
+ import { backendDoName, BACKEND_DENY_HEADER, BACKEND_INTERNAL_AUTH_HEADER, BACKEND_OP_ARM, BACKEND_OP_DISARM, BACKEND_OP_HEADER, BACKEND_OP_STATUS, BACKEND_OWNER_HEADER, BACKEND_SLUG_HEADER, VIBES_SESSION_USER_HEADER, sanitizeBackendApiForwardHeaders, } from "./backend-do-addr.js";
3
3
  function authHeaders(secret) {
4
4
  if (secret === undefined)
5
5
  return {};
@@ -14,6 +14,7 @@ function internalAuthRejected(env, op) {
14
14
  ? `backend ${op} poke got 403: ${shared} This environment (${where}) has no BACKEND_INTERNAL_SECRET at all.`
15
15
  : `backend ${op} poke got 403: ${shared} This environment is ${where}.`;
16
16
  }
17
+ export const OWNER_API_BODY_MAX_BYTES = 32 * 1024;
17
18
  function alarmOwnerNamespace(env) {
18
19
  if (env.BACKEND_ALARM_OWNER === "true") {
19
20
  const ns = env.BACKEND_DO;
@@ -27,10 +28,12 @@ function alarmOwnerNamespace(env) {
27
28
  export function backendControlPlaneCallbacks(env) {
28
29
  if (env.BACKEND_DO === undefined)
29
30
  return {};
31
+ const ownerApi = ownerApiFetchFor(env, env.BACKEND_DO);
30
32
  const rNs = alarmOwnerNamespace(env);
31
33
  if (rNs.isErr()) {
32
34
  const err = rNs.Err();
33
35
  return {
36
+ backendOwnerApiFetch: ownerApi,
34
37
  backendControlPlane: {
35
38
  tickStatus: () => Promise.resolve(Result.Err(err)),
36
39
  arm: () => Promise.resolve(Result.Err(err)),
@@ -60,6 +63,7 @@ export function backendControlPlaneCallbacks(env) {
60
63
  return Result.Ok(res);
61
64
  };
62
65
  return {
66
+ backendOwnerApiFetch: ownerApi,
63
67
  backendControlPlane: {
64
68
  tickStatus: async (ownerHandle, appSlug) => {
65
69
  const rRes = await poke(ownerHandle, appSlug, BACKEND_OP_STATUS);
@@ -81,4 +85,89 @@ export function backendControlPlaneCallbacks(env) {
81
85
  },
82
86
  };
83
87
  }
88
+ function ownerApiFetchFor(env, ns) {
89
+ return async (params) => {
90
+ const hostnameBase = env.VIBES_SVC_HOSTNAME_BASE;
91
+ if (hostnameBase === undefined || hostnameBase === "") {
92
+ return Result.Err("unavailable: this environment has no VIBES_SVC_HOSTNAME_BASE to address a vibe's _api with");
93
+ }
94
+ const secret = env.BACKEND_INTERNAL_SECRET;
95
+ if (secret === undefined || secret === "") {
96
+ return Result.Err("unavailable: this environment has no BACKEND_INTERNAL_SECRET, so the app's server code cannot be told who is calling");
97
+ }
98
+ const host = `${params.appSlug}--${params.ownerHandle}.${hostnameBase.replace(/^\./, "")}`;
99
+ const url = `https://${host}/${params.path}`;
100
+ const headers = new Headers();
101
+ sanitizeBackendApiForwardHeaders(headers, { ownerHandle: params.ownerHandle, appSlug: params.appSlug });
102
+ if (params.contentType !== undefined)
103
+ headers.set("content-type", params.contentType);
104
+ headers.set(BACKEND_INTERNAL_AUTH_HEADER, secret);
105
+ headers.set(VIBES_SESSION_USER_HEADER, params.userId);
106
+ const rRes = await exception2Result(() => {
107
+ const stub = ns.get(ns.idFromName(backendDoName(params.ownerHandle, params.appSlug)));
108
+ return stub.fetch(new Request(url, {
109
+ method: params.method,
110
+ headers,
111
+ ...(params.body === undefined ? {} : { body: params.body }),
112
+ }));
113
+ });
114
+ if (rRes.isErr())
115
+ return Result.Err(rRes.Err());
116
+ const res = rRes.Ok();
117
+ if (res.status === 403 && res.headers.get(BACKEND_DENY_HEADER) !== null) {
118
+ return Result.Err(internalAuthRejected(env, "_api"));
119
+ }
120
+ console.info(`[agent-own-api] owner=${params.ownerHandle} slug=${params.appSlug} method=${params.method} status=${res.status}`);
121
+ const rBody = await readBoundedBody(res);
122
+ if (rBody.isErr())
123
+ return Result.Err(rBody.Err());
124
+ const { text, truncated } = rBody.Ok();
125
+ return Result.Ok({
126
+ status: res.status,
127
+ contentType: res.headers.get("content-type"),
128
+ bodyText: text,
129
+ truncated,
130
+ });
131
+ };
132
+ }
133
+ async function readBoundedBody(res) {
134
+ const body = res.body;
135
+ if (body === null || body === undefined)
136
+ return Result.Ok({ text: "", truncated: false });
137
+ return exception2Result(async () => {
138
+ const reader = body.getReader();
139
+ const decoder = new TextDecoder();
140
+ let text = "";
141
+ let bytes = 0;
142
+ let truncated = false;
143
+ try {
144
+ for (;;) {
145
+ const chunk = await reader.read();
146
+ if (chunk.done)
147
+ break;
148
+ const value = chunk.value;
149
+ if (value === undefined)
150
+ continue;
151
+ if (bytes >= OWNER_API_BODY_MAX_BYTES) {
152
+ truncated = true;
153
+ break;
154
+ }
155
+ const room = OWNER_API_BODY_MAX_BYTES - bytes;
156
+ if (value.byteLength > room) {
157
+ text += decoder.decode(value.subarray(0, room), { stream: true });
158
+ bytes += room;
159
+ truncated = true;
160
+ break;
161
+ }
162
+ text += decoder.decode(value, { stream: true });
163
+ bytes += value.byteLength;
164
+ }
165
+ text += decoder.decode();
166
+ }
167
+ finally {
168
+ await reader.cancel().catch(() => undefined);
169
+ }
170
+ return { text, truncated };
171
+ });
172
+ }
84
173
  //# sourceMappingURL=backend-do-control-plane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend-do-control-plane.js","sourceRoot":"","sources":["../../jsr/intern/backend-do-control-plane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend-do-control-plane.js","sourceRoot":"","sources":["../../jsr/intern/backend-do-control-plane.ts"],"names":[],"mappings":"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"}
@@ -26,3 +26,11 @@ export interface MintDecisionCatalogs {
26
26
  readonly curatedThemes: ReadonlySet<string>;
27
27
  }
28
28
  export declare function mintDecisionFromToolInput(input: CreateVibeToolInput, catalogs: MintDecisionCatalogs): MintDecision;
29
+ export interface MintDecisionDrops {
30
+ readonly offCatalog: string[];
31
+ readonly deferredToLater: string[];
32
+ }
33
+ export declare function mintDecisionWithDrops(input: CreateVibeToolInput, catalogs: MintDecisionCatalogs): {
34
+ readonly decision: MintDecision;
35
+ readonly dropped: MintDecisionDrops;
36
+ };
@@ -4,16 +4,27 @@ function trimmed(value) {
4
4
  return typeof value === "string" ? value.trim() : "";
5
5
  }
6
6
  export function mintDecisionFromToolInput(input, catalogs) {
7
+ return mintDecisionWithDrops(input, catalogs).decision;
8
+ }
9
+ export function mintDecisionWithDrops(input, catalogs) {
10
+ const offCatalog = [];
7
11
  const validSkills = [];
8
12
  for (const s of input.skills ?? []) {
9
- if (catalogs.catalogNames.has(s) && !validSkills.includes(s))
10
- validSkills.push(s);
13
+ if (catalogs.catalogNames.has(s)) {
14
+ if (!validSkills.includes(s))
15
+ validSkills.push(s);
16
+ }
17
+ else if (!offCatalog.includes(s)) {
18
+ offCatalog.push(s);
19
+ }
11
20
  }
12
21
  for (const s of ALWAYS_ON_SKILLS) {
13
22
  if (catalogs.catalogNames.has(s) && !validSkills.includes(s))
14
23
  validSkills.push(s);
15
24
  }
16
25
  const skills = excludeInitialTurnSkills(validSkills);
26
+ const namedByAgent = new Set(input.skills ?? []);
27
+ const deferredToLater = validSkills.filter((s) => !skills.includes(s) && namedByAgent.has(s));
17
28
  const pairs = (input.pairs ?? [])
18
29
  .flatMap((p) => {
19
30
  const title = trimmed(p.title);
@@ -32,7 +43,7 @@ export function mintDecisionFromToolInput(input, catalogs) {
32
43
  const iconDescription = trimmed(input.iconDescription);
33
44
  const enrichedPrompt = trimmed(input.enrichedPrompt);
34
45
  const textureNote = trimmed(input.textureNote);
35
- return {
46
+ const decision = {
36
47
  skills,
37
48
  pairs,
38
49
  theme,
@@ -42,5 +53,6 @@ export function mintDecisionFromToolInput(input, catalogs) {
42
53
  ...(input.privacySensitive === true ? { privacySensitive: true } : {}),
43
54
  ...(deferred ? { deferred } : {}),
44
55
  };
56
+ return { decision, dropped: { offCatalog, deferredToLater } };
45
57
  }
46
58
  //# sourceMappingURL=mint-decision.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mint-decision.js","sourceRoot":"","sources":["../../jsr/intern/mint-decision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mint-decision.js","sourceRoot":"","sources":["../../jsr/intern/mint-decision.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,11 @@ export declare function resolveBackendSessionUserId(vctx: VibesApiSQLCtx, reques
4
4
  get(name: string): string | null;
5
5
  };
6
6
  }): Promise<string | null>;
7
+ export declare function resolveBackendCallerUserId(vctx: VibesApiSQLCtx, request: {
8
+ readonly headers: {
9
+ get(name: string): string | null;
10
+ };
11
+ }, internal: {
12
+ readonly internalSecret?: string;
13
+ readonly providedAuth?: string | null;
14
+ }): Promise<string | null>;
@@ -1,4 +1,5 @@
1
1
  import { extractBearer, verifyAnyBearer } from "../check-auth.js";
2
+ import { VIBES_SESSION_USER_HEADER } from "./backend-do-addr.js";
2
3
  export async function resolveBackendSessionUserId(vctx, request) {
3
4
  const bearer = extractBearer(request);
4
5
  if (!bearer)
@@ -6,4 +7,13 @@ export async function resolveBackendSessionUserId(vctx, request) {
6
7
  const verified = await verifyAnyBearer(vctx, bearer);
7
8
  return verified?.userId ?? null;
8
9
  }
10
+ export async function resolveBackendCallerUserId(vctx, request, internal) {
11
+ const secret = internal.internalSecret;
12
+ if (typeof secret === "string" && secret.length > 0 && internal.providedAuth === secret) {
13
+ const claimed = request.headers.get(VIBES_SESSION_USER_HEADER);
14
+ if (claimed !== null && claimed !== "")
15
+ return claimed;
16
+ }
17
+ return resolveBackendSessionUserId(vctx, request);
18
+ }
9
19
  //# sourceMappingURL=resolve-backend-session-user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-backend-session-user.js","sourceRoot":"","sources":["../../jsr/intern/resolve-backend-session-user.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAuBlE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAoB,EACpB,OAAmE;IAEnE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"resolve-backend-session-user.js","sourceRoot":"","sources":["../../jsr/intern/resolve-backend-session-user.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAuBjE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAoB,EACpB,OAAmE;IAEnE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC;AAClC,CAAC;AAsBD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAoB,EACpB,OAAmE,EACnE,QAAqF;IAErF,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;QACxF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC/D,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,EAAE;YAAE,OAAO,OAAO,CAAC;IACzD,CAAC;IACD,OAAO,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/api-svc",
3
- "version": "14.1.21",
3
+ "version": "14.1.23",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -32,18 +32,18 @@
32
32
  "@libsql/client": "~0.18.0",
33
33
  "@neondatabase/serverless": "~1.1.0",
34
34
  "@noble/hashes": "~2.3.0",
35
- "@vibes.diy/api-pkg": "14.1.21",
36
- "@vibes.diy/api-sql": "14.1.21",
37
- "@vibes.diy/api-types": "14.1.21",
38
- "@vibes.diy/call-ai-v2": "14.1.21",
39
- "@vibes.diy/identity": "14.1.21",
40
- "@vibes.diy/prompts": "14.1.21",
41
- "@vibes.diy/vibe-db-explorer": "14.1.21",
42
- "@vibes.diy/vibe-runtime": "14.1.21",
43
- "@vibes.diy/vibe-types": "14.1.21",
35
+ "@vibes.diy/api-pkg": "14.1.23",
36
+ "@vibes.diy/api-sql": "14.1.23",
37
+ "@vibes.diy/api-types": "14.1.23",
38
+ "@vibes.diy/call-ai-v2": "14.1.23",
39
+ "@vibes.diy/identity": "14.1.23",
40
+ "@vibes.diy/prompts": "14.1.23",
41
+ "@vibes.diy/vibe-db-explorer": "14.1.23",
42
+ "@vibes.diy/vibe-runtime": "14.1.23",
43
+ "@vibes.diy/vibe-types": "14.1.23",
44
44
  "acorn": "~8.17.0",
45
45
  "arktype": "~2.2.3",
46
- "call-ai": "14.1.21",
46
+ "call-ai": "14.1.23",
47
47
  "charwise": "~3.0.1",
48
48
  "cookie": "~2.0.1",
49
49
  "csv-parse": "~7.0.2",
@@ -8,6 +8,7 @@ export interface DocChangedFanOutParams {
8
8
  senderConnId: string;
9
9
  }
10
10
  export declare function notifyDocChangedFanOut(vctx: VibesApiSQLCtx, p: DocChangedFanOutParams): void;
11
+ export type DocChangedFanOut = (vctx: VibesApiSQLCtx, p: DocChangedFanOutParams) => void | Promise<void>;
11
12
  export interface DocChangedRemoteFanOutParams {
12
13
  ownerHandle: string;
13
14
  appSlug: string;
@@ -16,6 +17,7 @@ export interface DocChangedRemoteFanOutParams {
16
17
  channels: string[];
17
18
  }
18
19
  export declare function notifyDocChangedRemoteFanOut(vctx: VibesApiSQLCtx, p: DocChangedRemoteFanOutParams): Promise<void>;
20
+ export declare const remoteDocChangedFanOut: DocChangedFanOut;
19
21
  export interface ViewerGrantsChangedFanOutParams {
20
22
  ownerHandle: string;
21
23
  appSlug: string;
@@ -30,6 +30,13 @@ export async function notifyDocChangedRemoteFanOut(vctx, p) {
30
30
  if (r.isErr())
31
31
  console.error("backend doc-changed remote fan-out error:", r.Err());
32
32
  }
33
+ export const remoteDocChangedFanOut = (vctx, p) => notifyDocChangedRemoteFanOut(vctx, {
34
+ ownerHandle: p.ownerHandle,
35
+ appSlug: p.appSlug,
36
+ dbName: p.dbName,
37
+ docId: p.docId,
38
+ channels: p.channels,
39
+ });
33
40
  export function notifyViewerGrantsChangedFanOut(vctx, p) {
34
41
  if (!vctx.notifyViewerGrantsChanged)
35
42
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"app-documents-broadcast.js","sourceRoot":"","sources":["../../jsr/public/app-documents-broadcast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-documents-broadcast.js","sourceRoot":"","sources":["../../jsr/public/app-documents-broadcast.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,60 @@
1
1
  import { EventoHandler } from "@adviser/cement";
2
- import { MsgBase, ReqGetDoc, ResGetDoc, ResGetDocNotFound, ReqQueryDocs, ResQueryDocs, ReqSubscribeDocs, ResSubscribeDocs, ReqSubscribeViewerGrants, ResSubscribeViewerGrants, ReqListDbNames, ResListDbNames, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
2
+ import { MsgBase, ReqGetDoc, ResGetDoc, ResGetDocNotFound, ReqQueryDocs, ResQueryDocs, ReqSubscribeDocs, ResSubscribeDocs, ReqSubscribeViewerGrants, ResSubscribeViewerGrants, ReqListDbNames, ResListDbNames, VibesDiyError, W3CWebSocketEvent, type QueryFilter } from "@vibes.diy/api-types";
3
+ import { VibesApiSQLCtx } from "../types.js";
3
4
  export declare function setQueryReadInterleaveHookForTests(fn?: () => Promise<void>): void;
4
5
  export declare function runQueryReadInterleaveHookForTests(): Promise<void>;
6
+ export interface DocCallerScope {
7
+ readonly userId: string | null;
8
+ readonly ownerHandle: string;
9
+ readonly appSlug: string;
10
+ readonly dbName: string;
11
+ readonly adminMode: boolean;
12
+ readonly actingHandle?: string;
13
+ }
14
+ export type GetDocForCallerResult = {
15
+ readonly kind: "ok";
16
+ readonly docId: string;
17
+ readonly doc: Record<string, unknown>;
18
+ } | {
19
+ readonly kind: "not-found";
20
+ readonly docId: string;
21
+ } | {
22
+ readonly kind: "denied";
23
+ readonly message: string;
24
+ };
25
+ export declare function getDocForCaller(vctx: VibesApiSQLCtx, args: DocCallerScope & {
26
+ readonly docId: string;
27
+ }): Promise<GetDocForCallerResult>;
5
28
  export declare const getDocEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqGetDoc>, ResGetDoc | ResGetDocNotFound | VibesDiyError>;
29
+ export type QueryDocsForCallerResult = {
30
+ readonly kind: "ok";
31
+ readonly docs: readonly ({
32
+ _id: string;
33
+ } & Record<string, unknown>)[];
34
+ readonly next?: string;
35
+ } | {
36
+ readonly kind: "denied";
37
+ readonly message: string;
38
+ };
39
+ export declare function queryDocsForCaller(vctx: VibesApiSQLCtx, args: DocCallerScope & {
40
+ readonly filter?: QueryFilter;
41
+ readonly limit?: number;
42
+ readonly after?: string;
43
+ }): Promise<QueryDocsForCallerResult>;
6
44
  export declare const queryDocsEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqQueryDocs>, ResQueryDocs | VibesDiyError>;
7
45
  export declare const subscribeDocsEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqSubscribeDocs>, ResSubscribeDocs | VibesDiyError>;
8
46
  export declare const subscribeViewerGrantsEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqSubscribeViewerGrants>, ResSubscribeViewerGrants | VibesDiyError>;
47
+ export type ListDbNamesForCallerResult = {
48
+ readonly kind: "ok";
49
+ readonly dbNames: readonly string[];
50
+ } | {
51
+ readonly kind: "denied";
52
+ readonly message: string;
53
+ };
54
+ export declare function listDbNamesForCaller(vctx: VibesApiSQLCtx, args: {
55
+ readonly userId: string;
56
+ readonly ownerHandle: string;
57
+ readonly appSlug: string;
58
+ readonly adminMode: boolean;
59
+ }): Promise<ListDbNamesForCallerResult>;
9
60
  export declare const listDbNamesEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqListDbNames>, ResListDbNames | VibesDiyError>;