@vibes.diy/vibe-srv-sandbox 2.5.10 → 2.5.11-dev.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/vibe-srv-sandbox",
3
- "version": "2.5.10",
3
+ "version": "2.5.11-dev.2",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "exports": {
@@ -17,11 +17,11 @@
17
17
  "@fireproof/core-protocols-dashboard": "~0.24.19",
18
18
  "@fireproof/core-types-protocols-cloud": "~0.24.19",
19
19
  "@fireproof/core-types-protocols-dashboard": "~0.24.19",
20
- "@vibes.diy/api-types": "2.5.10",
21
- "@vibes.diy/base": "2.5.10",
22
- "@vibes.diy/call-ai-v2": "2.5.10",
23
- "@vibes.diy/prompts": "2.5.10",
24
- "@vibes.diy/vibe-types": "2.5.10",
20
+ "@vibes.diy/api-types": "2.5.11-dev.2",
21
+ "@vibes.diy/base": "2.5.11-dev.2",
22
+ "@vibes.diy/call-ai-v2": "2.5.11-dev.2",
23
+ "@vibes.diy/prompts": "2.5.11-dev.2",
24
+ "@vibes.diy/vibe-types": "2.5.11-dev.2",
25
25
  "arktype": "~2.2.1",
26
26
  "react": "~19.2.7",
27
27
  "react-dom": "~19.2.7",
@@ -0,0 +1,14 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { type ImgGenFile } from "@vibes.diy/vibe-types";
3
+ import { type PromptReq, type SectionEvent } from "@vibes.diy/api-types";
4
+ import { type CodeEndMsg } from "@vibes.diy/call-ai-v2";
5
+ import type { VibeApiCapableSandbox } from "./srv-sandbox-types.js";
6
+ export declare function getCodeBlock(stream: ReadableStream<unknown>): Promise<{
7
+ code: string;
8
+ sectionEvt: SectionEvent;
9
+ promptReq: PromptReq;
10
+ codeEnd: CodeEndMsg;
11
+ }>;
12
+ export declare function vibeCallAI(sandbox: VibeApiCapableSandbox): EventoHandler;
13
+ export declare function getImageFiles(stream: ReadableStream<unknown>): Promise<ImgGenFile[]>;
14
+ export declare function vibeImgGen(sandbox: VibeApiCapableSandbox): EventoHandler;
@@ -0,0 +1,183 @@
1
+ import { Result, Option, EventoResult, processStream, exception2Result, Future, } from "@adviser/cement";
2
+ import { isReqCallAI, isReqImgGen, } from "@vibes.diy/vibe-types";
3
+ import { isPromptBlockEnd, isPromptReq, isSectionEvent } from "@vibes.diy/api-types";
4
+ import { isBlockImage, isCodeBegin, isCodeEnd, isCodeLine } from "@vibes.diy/call-ai-v2";
5
+ import { buildSchemaSystemMessage } from "@vibes.diy/prompts";
6
+ import { requireVibeApi } from "./srv-sandbox-firefly-doc-handlers.js";
7
+ export function getCodeBlock(stream) {
8
+ const codeParts = [];
9
+ let promptReq;
10
+ const firstCodeBlock = new Future();
11
+ processStream(stream, (msg) => {
12
+ if (isSectionEvent(msg)) {
13
+ for (const block of msg.blocks) {
14
+ if (isPromptReq(block)) {
15
+ promptReq = block;
16
+ }
17
+ if (isCodeBegin(block) && block.lang.toLocaleUpperCase() === "JSON") {
18
+ codeParts.splice(0, codeParts.length);
19
+ }
20
+ if (isCodeLine(block)) {
21
+ codeParts.push(block.line);
22
+ }
23
+ if (isCodeEnd(block)) {
24
+ firstCodeBlock.resolve({ code: codeParts.join("\n"), sectionEvt: msg, promptReq, codeEnd: block });
25
+ }
26
+ }
27
+ }
28
+ });
29
+ return firstCodeBlock.asPromise();
30
+ }
31
+ export function vibeCallAI(sandbox) {
32
+ const { chatApi } = sandbox.args;
33
+ return {
34
+ hash: "vibe.callAI",
35
+ validate: (ctx) => {
36
+ const { request: req } = ctx;
37
+ if (isReqCallAI(req?.data)) {
38
+ return Promise.resolve(Result.Ok(Option.Some(req.data)));
39
+ }
40
+ return Promise.resolve(Result.Ok(Option.None()));
41
+ },
42
+ handle: async (ctx) => {
43
+ await chatApi
44
+ .openChat({ ownerHandle: ctx.validated.ownerHandle, appSlug: ctx.validated.appSlug, mode: "app" })
45
+ .then(async (rChat) => {
46
+ if (rChat.isErr()) {
47
+ return ctx.send.send(ctx, {
48
+ tid: ctx.validated.tid,
49
+ type: "vibe.res.callAI",
50
+ status: "error",
51
+ message: rChat.Err().message,
52
+ });
53
+ }
54
+ getCodeBlock(rChat.Ok().sectionStream)
55
+ .then(({ code, sectionEvt: msg }) => {
56
+ ctx.send.send(ctx, {
57
+ tid: ctx.validated.tid,
58
+ type: "vibe.res.callAI",
59
+ status: "ok",
60
+ promptId: msg.promptId,
61
+ result: code,
62
+ });
63
+ })
64
+ .catch((err) => {
65
+ ctx.send.send(ctx, {
66
+ tid: ctx.validated.tid,
67
+ type: "vibe.res.callAI",
68
+ status: "error",
69
+ message: err?.message ?? String(err),
70
+ });
71
+ });
72
+ const generateSchema = [];
73
+ if (ctx.validated.schema) {
74
+ generateSchema.push({
75
+ role: "system",
76
+ content: [
77
+ {
78
+ type: "text",
79
+ text: await buildSchemaSystemMessage(ctx.validated.schema),
80
+ },
81
+ ],
82
+ });
83
+ }
84
+ const rPrompt = await rChat.Ok().prompt({
85
+ messages: [
86
+ ...generateSchema,
87
+ {
88
+ role: "user",
89
+ content: [
90
+ {
91
+ type: "text",
92
+ text: ctx.validated.prompt,
93
+ },
94
+ ],
95
+ },
96
+ ],
97
+ });
98
+ if (rPrompt.isErr()) {
99
+ return ctx.send.send(ctx, {
100
+ tid: ctx.validated.tid,
101
+ type: "vibe.res.callAI",
102
+ status: "error",
103
+ message: rPrompt.Err().message,
104
+ });
105
+ }
106
+ });
107
+ return Result.Ok(EventoResult.Stop);
108
+ },
109
+ };
110
+ }
111
+ export function getImageFiles(stream) {
112
+ const files = [];
113
+ const done = new Future();
114
+ processStream(stream, (msg) => {
115
+ if (isSectionEvent(msg)) {
116
+ for (const block of msg.blocks) {
117
+ if (isBlockImage(block)) {
118
+ if (block.uploadId && block.cid && block.mimeType && typeof block.size === "number") {
119
+ files.push({ uploadId: block.uploadId, cid: block.cid, mimeType: block.mimeType, size: block.size });
120
+ }
121
+ }
122
+ if (isPromptBlockEnd(block)) {
123
+ done.resolve(files);
124
+ }
125
+ }
126
+ }
127
+ });
128
+ return done.asPromise();
129
+ }
130
+ export function vibeImgGen(sandbox) {
131
+ return {
132
+ hash: "vibe.imgGen",
133
+ validate: (ctx) => {
134
+ const { request: req } = ctx;
135
+ if (isReqImgGen(req?.data)) {
136
+ return Promise.resolve(Result.Ok(Option.Some(req.data)));
137
+ }
138
+ return Promise.resolve(Result.Ok(Option.None()));
139
+ },
140
+ handle: async (ctx) => {
141
+ const tid = ctx.validated.tid;
142
+ const sendErr = (message) => ctx.send.send(ctx, {
143
+ tid,
144
+ type: "vibe.res.imgGen",
145
+ status: "error",
146
+ message,
147
+ });
148
+ const sendOk = (files) => ctx.send.send(ctx, {
149
+ tid,
150
+ type: "vibe.res.imgGen",
151
+ status: "ok",
152
+ files,
153
+ });
154
+ const api = await requireVibeApi(sandbox, ctx, "vibe.res.imgGen");
155
+ if (api === undefined)
156
+ return Result.Ok(EventoResult.Stop);
157
+ await api
158
+ .openChat({ ownerHandle: ctx.validated.ownerHandle, appSlug: ctx.validated.appSlug, mode: "img" })
159
+ .then(async (rChat) => {
160
+ if (rChat.isErr())
161
+ return sendErr(rChat.Err().message);
162
+ const chat = rChat.Ok();
163
+ const filesPromise = getImageFiles(chat.sectionStream);
164
+ const rPrompt = await chat.prompt({
165
+ ...(ctx.validated.model ? { model: ctx.validated.model } : {}),
166
+ messages: [{ role: "user", content: [{ type: "text", text: ctx.validated.prompt }] }],
167
+ }, ctx.validated.inputImageBase64 ? { inputImageBase64: ctx.validated.inputImageBase64 } : undefined);
168
+ if (rPrompt.isErr())
169
+ return sendErr(rPrompt.Err().message);
170
+ const rFiles = await exception2Result(() => filesPromise);
171
+ if (rFiles.isErr())
172
+ return sendErr(rFiles.Err().message);
173
+ const files = rFiles.Ok();
174
+ if (!files || files.length === 0) {
175
+ return sendErr("Image generation completed without producing a file");
176
+ }
177
+ return sendOk(files);
178
+ });
179
+ return Result.Ok(EventoResult.Stop);
180
+ },
181
+ };
182
+ }
183
+ //# sourceMappingURL=srv-sandbox-ai-image-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srv-sandbox-ai-image-handlers.js","sourceRoot":"","sources":["../jsr/srv-sandbox-ai-image-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import type { VibeApiCapableSandbox } from "./srv-sandbox-types.js";
3
+ export declare function vibePutAsset(sandbox: VibeApiCapableSandbox): EventoHandler;
4
+ export declare function vibeWhoAmI(sandbox: VibeApiCapableSandbox): EventoHandler;
5
+ export declare function vibeUpdateAvatarCid(sandbox: VibeApiCapableSandbox): EventoHandler;
6
+ export declare function vibeRequestLogin(sandbox: VibeApiCapableSandbox): EventoHandler;
@@ -0,0 +1,190 @@
1
+ import { Result, Option, EventoResult, } from "@adviser/cement";
2
+ import { isReqVibePutAsset, isReqVibeWhoAmI, isReqVibeUpdateAvatarCid, isReqVibeLogin, } from "@vibes.diy/vibe-types";
3
+ import { requireVibeApi } from "./srv-sandbox-firefly-doc-handlers.js";
4
+ const PROGRESS_INTERVAL_MS = 3000;
5
+ export function vibePutAsset(sandbox) {
6
+ const doFetch = sandbox.args.fetch ?? ((...a) => fetch(...a));
7
+ return {
8
+ hash: "vibe.putAsset",
9
+ validate: (ctx) => {
10
+ const { request: req } = ctx;
11
+ if (isReqVibePutAsset(req?.data)) {
12
+ return Promise.resolve(Result.Ok(Option.Some(req.data)));
13
+ }
14
+ return Promise.resolve(Result.Ok(Option.None()));
15
+ },
16
+ handle: async (ctx) => {
17
+ const api = await requireVibeApi(sandbox, ctx, "vibe.res.putAsset");
18
+ if (api === undefined)
19
+ return Result.Ok(EventoResult.Stop);
20
+ const { tid, blob, ownerHandle, appSlug, mimeType } = ctx.validated;
21
+ const sendErr = async (message) => {
22
+ await ctx.send.send(ctx, {
23
+ tid,
24
+ type: "vibe.res.putAsset",
25
+ status: "error",
26
+ message,
27
+ });
28
+ };
29
+ const rGrant = await api.requestAssetUploadGrant({
30
+ ownerHandle,
31
+ appSlug,
32
+ ...(mimeType ? { mimeType } : mimeType === undefined && blob.type ? { mimeType: blob.type } : {}),
33
+ });
34
+ if (rGrant.isErr()) {
35
+ await sendErr(`grant minting failed: ${rGrant.Err().message}`);
36
+ return Result.Ok(EventoResult.Stop);
37
+ }
38
+ const grant = rGrant.Ok();
39
+ const progressTimer = setInterval(() => {
40
+ ctx.send.send(ctx, {
41
+ tid,
42
+ type: "vibe.evt.putAsset.progress",
43
+ bytes: blob.size,
44
+ });
45
+ }, PROGRESS_INTERVAL_MS);
46
+ try {
47
+ const res = await doFetch(grant.uploadUrl, {
48
+ method: "POST",
49
+ headers: {
50
+ "X-Asset-Grant": grant.grant,
51
+ "Content-Type": blob.type || "application/octet-stream",
52
+ },
53
+ body: blob,
54
+ });
55
+ if (!res.ok) {
56
+ const text = await res.text().catch(() => "");
57
+ await sendErr(`POST ${grant.uploadUrl} returned ${res.status}: ${text}`);
58
+ return Result.Ok(EventoResult.Stop);
59
+ }
60
+ const body = (await res.json());
61
+ sandbox.recordAssetGetURL(body.cid, body.getURL);
62
+ await ctx.send.send(ctx, {
63
+ tid,
64
+ type: "vibe.res.putAsset",
65
+ status: "ok",
66
+ cid: body.cid,
67
+ getURL: body.getURL,
68
+ size: body.size,
69
+ uploadId: body.uploadId,
70
+ });
71
+ }
72
+ catch (e) {
73
+ const msg = e instanceof Error ? e.message : String(e);
74
+ await sendErr(`upload failed: ${msg}`);
75
+ }
76
+ finally {
77
+ clearInterval(progressTimer);
78
+ }
79
+ return Result.Ok(EventoResult.Stop);
80
+ },
81
+ };
82
+ }
83
+ export function vibeWhoAmI(sandbox) {
84
+ return {
85
+ hash: "vibe.whoAmI",
86
+ validate: (ctx) => {
87
+ const { request: req } = ctx;
88
+ if (isReqVibeWhoAmI(req?.data)) {
89
+ return Promise.resolve(Result.Ok(Option.Some(req.data)));
90
+ }
91
+ return Promise.resolve(Result.Ok(Option.None()));
92
+ },
93
+ handle: async (ctx) => {
94
+ const api = await requireVibeApi(sandbox, ctx, "vibe.res.whoAmI");
95
+ if (api === undefined)
96
+ return Result.Ok(EventoResult.Stop);
97
+ const { tid, appSlug, ownerHandle, adminMode } = ctx.validated;
98
+ const rRes = await api.whoAmI({ tid, appSlug, ownerHandle, adminMode });
99
+ if (rRes.isErr()) {
100
+ await ctx.send.send(ctx, {
101
+ tid,
102
+ type: "vibe.res.whoAmI",
103
+ viewer: null,
104
+ access: "none",
105
+ });
106
+ return Result.Ok(EventoResult.Stop);
107
+ }
108
+ const r = rRes.Ok();
109
+ await ctx.send.send(ctx, {
110
+ tid,
111
+ type: "vibe.res.whoAmI",
112
+ viewer: r.viewer,
113
+ access: r.access,
114
+ ...(r.isOwner !== undefined ? { isOwner: r.isOwner } : {}),
115
+ ...(r.dbAcls !== undefined ? { dbAcls: r.dbAcls } : {}),
116
+ ...(r.grants !== undefined ? { grants: r.grants } : {}),
117
+ });
118
+ return Result.Ok(EventoResult.Stop);
119
+ },
120
+ };
121
+ }
122
+ export function vibeUpdateAvatarCid(sandbox) {
123
+ const { chatApi } = sandbox.args;
124
+ return {
125
+ hash: "vibe.updateAvatarCid",
126
+ validate: (ctx) => {
127
+ const { request: req } = ctx;
128
+ if (isReqVibeUpdateAvatarCid(req?.data)) {
129
+ return Promise.resolve(Result.Ok(Option.Some(req.data)));
130
+ }
131
+ return Promise.resolve(Result.Ok(Option.None()));
132
+ },
133
+ handle: async (ctx) => {
134
+ const { tid, cid, mimeType, handle } = ctx.validated;
135
+ if (sandbox.args.confirmAvatarUpdate) {
136
+ const getURL = sandbox.getAssetGetURL(cid);
137
+ const confirmed = await sandbox.args.confirmAvatarUpdate({
138
+ cid,
139
+ ...(mimeType ? { mimeType } : {}),
140
+ ...(getURL ? { getURL } : {}),
141
+ });
142
+ if (!confirmed) {
143
+ await ctx.send.send(ctx, {
144
+ tid,
145
+ type: "vibe.res.updateAvatarCid",
146
+ status: "cancelled",
147
+ });
148
+ return Result.Ok(EventoResult.Stop);
149
+ }
150
+ }
151
+ const rRes = await chatApi.ensureHandleAvatar({
152
+ handle,
153
+ cid,
154
+ ...(mimeType ? { mime: mimeType } : {}),
155
+ });
156
+ if (rRes.isErr()) {
157
+ await ctx.send.send(ctx, {
158
+ tid,
159
+ type: "vibe.res.updateAvatarCid",
160
+ status: "error",
161
+ message: rRes.Err().message,
162
+ });
163
+ return Result.Ok(EventoResult.Stop);
164
+ }
165
+ await ctx.send.send(ctx, {
166
+ tid,
167
+ type: "vibe.res.updateAvatarCid",
168
+ status: "ok",
169
+ });
170
+ return Result.Ok(EventoResult.Stop);
171
+ },
172
+ };
173
+ }
174
+ export function vibeRequestLogin(sandbox) {
175
+ return {
176
+ hash: "vibe.requestLogin",
177
+ validate: (ctx) => {
178
+ const { request: req } = ctx;
179
+ if (isReqVibeLogin(req?.data)) {
180
+ return Promise.resolve(Result.Ok(Option.Some(req.data)));
181
+ }
182
+ return Promise.resolve(Result.Ok(Option.None()));
183
+ },
184
+ handle: async (_ctx) => {
185
+ sandbox.args.openSignIn?.();
186
+ return Result.Ok(EventoResult.Stop);
187
+ },
188
+ };
189
+ }
190
+ //# sourceMappingURL=srv-sandbox-asset-identity-auth-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srv-sandbox-asset-identity-auth-handlers.js","sourceRoot":"","sources":["../jsr/srv-sandbox-asset-identity-auth-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { EventoHandler, HandleTriggerCtx } from "@adviser/cement";
2
+ import type { VibesDiyApiIface } from "@vibes.diy/api-types";
3
+ import type { VibeApiCapableSandbox } from "./srv-sandbox-types.js";
4
+ export declare function requireVibeApi(sandbox: VibeApiCapableSandbox, ctx: HandleTriggerCtx<unknown, {
5
+ tid: string;
6
+ ownerHandle?: string;
7
+ appSlug?: string;
8
+ }, unknown>, resType: string): Promise<VibesDiyApiIface | undefined>;
9
+ export declare function vibePutDoc(sandbox: VibeApiCapableSandbox): EventoHandler;
10
+ export declare function vibeGetDoc(sandbox: VibeApiCapableSandbox): EventoHandler;
11
+ export declare function vibeQueryDocs(sandbox: VibeApiCapableSandbox): EventoHandler;
12
+ export declare function vibeDeleteDoc(sandbox: VibeApiCapableSandbox): EventoHandler;
13
+ export declare function vibeSubscribeDocs(sandbox: VibeApiCapableSandbox): EventoHandler;
14
+ export declare function vibeSetDbAcl(sandbox: VibeApiCapableSandbox): EventoHandler;
15
+ export declare function vibeListDbNames(sandbox: VibeApiCapableSandbox): EventoHandler;