@vibes.diy/use-vibes-base 2.4.16 → 2.5.1-dev.1

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.
@@ -7,5 +7,6 @@ export interface FireproofOpts {
7
7
  userHandle?: string;
8
8
  getToken?: () => Promise<Result<DashAuthType>>;
9
9
  }
10
+ export declare function buildVibeApiUrl(apiUrl: string, ownerHandle: string, appSlug: string): string;
10
11
  export declare function fireproof(name: string, opts?: FireproofOpts): FireflyDatabase;
11
12
  export declare function __resetFireproofForTesting(): void;
package/fireproof-node.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Lazy, KeyedResolvOnce } from "@adviser/cement";
1
+ import { Lazy, KeyedResolvOnce, BuildURI } from "@adviser/cement";
2
2
  import { VibesDiyApi, FireflyApiAdapter } from "@vibes.diy/api-impl";
3
3
  import { FireflyDatabase } from "@vibes.diy/vibe-runtime";
4
4
  import { ensureSuperThis } from "@fireproof/core-runtime";
@@ -32,12 +32,36 @@ function resolveOptsSync(opts) {
32
32
  });
33
33
  return { apiUrl, appSlug, userHandle: opts?.userHandle, getToken };
34
34
  }
35
+ export function buildVibeApiUrl(apiUrl, ownerHandle, appSlug) {
36
+ return BuildURI.from(apiUrl).pathname("/api/app").cleanParams().setParam("vibe", `${ownerHandle}--${appSlug}`).toString();
37
+ }
35
38
  let sharedAdapter = Lazy((resolved) => {
36
- const api = new VibesDiyApi({
37
- apiUrl: resolved.apiUrl,
38
- getToken: resolved.getToken,
39
- });
40
- return new FireflyApiAdapter(api, resolved.appSlug, resolved.userHandle ? { ownerHandle: resolved.userHandle } : undefined);
39
+ const apiFactory = async () => {
40
+ let ownerHandle = resolved.userHandle;
41
+ if (ownerHandle === undefined) {
42
+ const bootstrap = new VibesDiyApi({ apiUrl: resolved.apiUrl, getToken: resolved.getToken });
43
+ try {
44
+ const rRes = await bootstrap.ensureUserSettings({ settings: [] });
45
+ if (rRes.isErr())
46
+ throw new Error(`Failed to resolve owner handle: ${rRes.Err()}`);
47
+ const def = rRes.Ok().settings.find((s) => s.type === "defaultHandle");
48
+ if (def === undefined)
49
+ throw new Error("No defaultHandle — pass {userHandle} or run 'npx vibes-diy login' first");
50
+ ownerHandle = def.ownerHandle;
51
+ }
52
+ finally {
53
+ await bootstrap.close();
54
+ }
55
+ }
56
+ return new VibesDiyApi({
57
+ apiUrl: buildVibeApiUrl(resolved.apiUrl, ownerHandle, resolved.appSlug),
58
+ skipShard: true,
59
+ getToken: resolved.getToken,
60
+ });
61
+ };
62
+ const adapter = new FireflyApiAdapter(apiFactory, resolved.appSlug, resolved.userHandle ? { ownerHandle: resolved.userHandle } : undefined);
63
+ void adapter.enableGrantReactivity();
64
+ return adapter;
41
65
  });
42
66
  let databasesByName = new KeyedResolvOnce();
43
67
  export function fireproof(name, opts) {
@@ -46,11 +70,32 @@ export function fireproof(name, opts) {
46
70
  }
47
71
  export function __resetFireproofForTesting() {
48
72
  sharedAdapter = Lazy((resolved) => {
49
- const api = new VibesDiyApi({
50
- apiUrl: resolved.apiUrl,
51
- getToken: resolved.getToken,
52
- });
53
- return new FireflyApiAdapter(api, resolved.appSlug, resolved.userHandle ? { ownerHandle: resolved.userHandle } : undefined);
73
+ const apiFactory = async () => {
74
+ let ownerHandle = resolved.userHandle;
75
+ if (ownerHandle === undefined) {
76
+ const bootstrap = new VibesDiyApi({ apiUrl: resolved.apiUrl, getToken: resolved.getToken });
77
+ try {
78
+ const rRes = await bootstrap.ensureUserSettings({ settings: [] });
79
+ if (rRes.isErr())
80
+ throw new Error(`Failed to resolve owner handle: ${rRes.Err()}`);
81
+ const def = rRes.Ok().settings.find((s) => s.type === "defaultHandle");
82
+ if (def === undefined)
83
+ throw new Error("No defaultHandle — pass {userHandle} or run 'npx vibes-diy login' first");
84
+ ownerHandle = def.ownerHandle;
85
+ }
86
+ finally {
87
+ await bootstrap.close();
88
+ }
89
+ }
90
+ return new VibesDiyApi({
91
+ apiUrl: buildVibeApiUrl(resolved.apiUrl, ownerHandle, resolved.appSlug),
92
+ skipShard: true,
93
+ getToken: resolved.getToken,
94
+ });
95
+ };
96
+ const adapter = new FireflyApiAdapter(apiFactory, resolved.appSlug, resolved.userHandle ? { ownerHandle: resolved.userHandle } : undefined);
97
+ void adapter.enableGrantReactivity();
98
+ return adapter;
54
99
  });
55
100
  databasesByName = new KeyedResolvOnce();
56
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fireproof-node.js","sourceRoot":"","sources":["../jsr/fireproof-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fireproof-node.js","sourceRoot":"","sources":["../jsr/fireproof-node.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/use-vibes-base",
3
- "version": "2.4.16",
3
+ "version": "2.5.1-dev.1",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "description": "Core components and utilities for use-vibes (internal workspace package)",
@@ -20,13 +20,13 @@
20
20
  "@fireproof/core-types-protocols-cloud": "~0.24.19",
21
21
  "@fireproof/core-types-protocols-dashboard": "~0.24.19",
22
22
  "@fireproof/use-fireproof": "~0.24.19",
23
- "@vibes.diy/api-impl": "^2.4.16",
24
- "@vibes.diy/base": "^2.4.16",
25
- "@vibes.diy/prompts": "^2.4.16",
26
- "@vibes.diy/use-vibes-types": "^2.4.16",
27
- "@vibes.diy/vibe-runtime": "^2.4.16",
23
+ "@vibes.diy/api-impl": "^2.5.1-dev.1",
24
+ "@vibes.diy/base": "^2.5.1-dev.1",
25
+ "@vibes.diy/prompts": "^2.5.1-dev.1",
26
+ "@vibes.diy/use-vibes-types": "^2.5.1-dev.1",
27
+ "@vibes.diy/vibe-runtime": "^2.5.1-dev.1",
28
28
  "arktype": "~2.2.0",
29
- "call-ai": "^2.4.16",
29
+ "call-ai": "^2.5.1-dev.1",
30
30
  "jose": "~6.2.2",
31
31
  "react-dom": "~19.2.7",
32
32
  "zod": "~4.3.6"