@vibes.diy/api-svc 14.1.21 → 14.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/create-handler.d.ts +2 -1
- package/create-handler.js +1 -0
- package/create-handler.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/intern/agent-belt.js +15 -4
- package/intern/agent-belt.js.map +1 -1
- package/intern/agent-build-tools.js +5 -2
- package/intern/agent-build-tools.js.map +1 -1
- package/intern/agent-debug-tools.d.ts +33 -0
- package/intern/agent-debug-tools.js +676 -0
- package/intern/agent-debug-tools.js.map +1 -0
- package/intern/agent-file-tools.js +8 -2
- package/intern/agent-file-tools.js.map +1 -1
- package/intern/agent-instruction.d.ts +1 -1
- package/intern/agent-instruction.js +2 -2
- package/intern/agent-instruction.js.map +1 -1
- package/intern/agent-session-instruction.d.ts +2 -2
- package/intern/agent-session-instruction.js +15 -2
- package/intern/agent-session-instruction.js.map +1 -1
- package/intern/agent-session-runtime.d.ts +1 -0
- package/intern/agent-session-runtime.js +8 -3
- package/intern/agent-session-runtime.js.map +1 -1
- package/intern/attempt-backend-fetch.js +7 -1
- package/intern/attempt-backend-fetch.js.map +1 -1
- package/intern/backend-do-addr.d.ts +2 -0
- package/intern/backend-do-addr.js +2 -0
- package/intern/backend-do-addr.js.map +1 -1
- package/intern/backend-do-control-plane.d.ts +18 -0
- package/intern/backend-do-control-plane.js +90 -1
- package/intern/backend-do-control-plane.js.map +1 -1
- package/intern/mint-decision.d.ts +8 -0
- package/intern/mint-decision.js +15 -3
- package/intern/mint-decision.js.map +1 -1
- package/intern/resolve-backend-session-user.d.ts +8 -0
- package/intern/resolve-backend-session-user.js +10 -0
- package/intern/resolve-backend-session-user.js.map +1 -1
- package/package.json +11 -11
- package/public/app-documents-broadcast.d.ts +2 -0
- package/public/app-documents-broadcast.js +7 -0
- package/public/app-documents-broadcast.js.map +1 -1
- package/public/app-documents-read-eventos.d.ts +52 -1
- package/public/app-documents-read-eventos.js +250 -222
- package/public/app-documents-read-eventos.js.map +1 -1
- package/public/app-documents-write-eventos.d.ts +42 -0
- package/public/app-documents-write-eventos.js +334 -334
- package/public/app-documents-write-eventos.js.map +1 -1
- package/public/app-logs.d.ts +14 -2
- package/public/app-logs.js +60 -45
- package/public/app-logs.js.map +1 -1
- package/public/app-setting-items.d.ts +4 -0
- package/public/app-setting-items.js +6 -3
- package/public/app-setting-items.js.map +1 -1
- package/public/app-settings-sql-upsert.d.ts +4 -0
- package/public/app-settings-sql-upsert.js +1 -1
- package/public/app-settings-sql-upsert.js.map +1 -1
- package/public/prompt-chat-section.js +1 -0
- package/public/prompt-chat-section.js.map +1 -1
- package/types.d.ts +2 -1
- package/types.js.map +1 -1
|
@@ -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":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,
|
|
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
|
+
};
|
package/intern/mint-decision.js
CHANGED
|
@@ -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)
|
|
10
|
-
validSkills.
|
|
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
|
-
|
|
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":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAqC/E,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAYD,MAAM,UAAU,yBAAyB,CAAC,KAA0B,EAAE,QAA8B;IAClG,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;
|
|
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;
|
|
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.
|
|
3
|
+
"version": "14.1.22",
|
|
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.
|
|
36
|
-
"@vibes.diy/api-sql": "14.1.
|
|
37
|
-
"@vibes.diy/api-types": "14.1.
|
|
38
|
-
"@vibes.diy/call-ai-v2": "14.1.
|
|
39
|
-
"@vibes.diy/identity": "14.1.
|
|
40
|
-
"@vibes.diy/prompts": "14.1.
|
|
41
|
-
"@vibes.diy/vibe-db-explorer": "14.1.
|
|
42
|
-
"@vibes.diy/vibe-runtime": "14.1.
|
|
43
|
-
"@vibes.diy/vibe-types": "14.1.
|
|
35
|
+
"@vibes.diy/api-pkg": "14.1.22",
|
|
36
|
+
"@vibes.diy/api-sql": "14.1.22",
|
|
37
|
+
"@vibes.diy/api-types": "14.1.22",
|
|
38
|
+
"@vibes.diy/call-ai-v2": "14.1.22",
|
|
39
|
+
"@vibes.diy/identity": "14.1.22",
|
|
40
|
+
"@vibes.diy/prompts": "14.1.22",
|
|
41
|
+
"@vibes.diy/vibe-db-explorer": "14.1.22",
|
|
42
|
+
"@vibes.diy/vibe-runtime": "14.1.22",
|
|
43
|
+
"@vibes.diy/vibe-types": "14.1.22",
|
|
44
44
|
"acorn": "~8.17.0",
|
|
45
45
|
"arktype": "~2.2.3",
|
|
46
|
-
"call-ai": "14.1.
|
|
46
|
+
"call-ai": "14.1.22",
|
|
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":"AAAA,OAAO,EAA6B,gBAAgB,EAA0B,MAAM,sBAAsB,CAAC;AAC3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAkBnD,MAAM,UAAU,sBAAsB,CAAC,IAAoB,EAAE,CAAyB;IACpF,IAAI,CAAC,IAAI,CAAC,gBAAgB;QAAE,OAAO;IACnC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI;iBACD,gBAAgB,CACf,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAC7F,CAAC,CAAC,YAAY,CACf;iBACA,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI;aACD,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC;aACtH,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;
|
|
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>;
|