@flowscale/sdk 1.0.0

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/dist/app.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { AppInfo } from './types';
2
+ export declare const app: {
3
+ /** Get information about the currently running app. */
4
+ getInfo(): AppInfo | null;
5
+ /** Check whether the bridge is ready (i.e., the runtime has bootstrapped this app). */
6
+ isReady(): boolean;
7
+ /**
8
+ * Wait until the bridge is ready, then call the callback.
9
+ * If already ready, the callback is called synchronously on the next tick.
10
+ */
11
+ onReady(callback: (info: AppInfo) => void): void;
12
+ /** Signal to the host that this app has finished loading. */
13
+ signalReady(): Promise<void>;
14
+ };
15
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,eAAO,MAAM,GAAG;IACd,uDAAuD;eAC5C,OAAO,GAAG,IAAI;IAIzB,uFAAuF;eAC5E,OAAO;IAIlB;;;OAGG;sBACe,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAWhD,6DAA6D;mBACxC,OAAO,CAAC,IAAI,CAAC;CAGnC,CAAC"}
package/dist/app.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.app = void 0;
4
+ const bridge_1 = require("./bridge");
5
+ exports.app = {
6
+ /** Get information about the currently running app. */
7
+ getInfo() {
8
+ return bridge_1.bridge.app;
9
+ },
10
+ /** Check whether the bridge is ready (i.e., the runtime has bootstrapped this app). */
11
+ isReady() {
12
+ return bridge_1.bridge.ready;
13
+ },
14
+ /**
15
+ * Wait until the bridge is ready, then call the callback.
16
+ * If already ready, the callback is called synchronously on the next tick.
17
+ */
18
+ onReady(callback) {
19
+ if (bridge_1.bridge.ready && bridge_1.bridge.app) {
20
+ Promise.resolve().then(() => callback(bridge_1.bridge.app));
21
+ return;
22
+ }
23
+ const unsubscribe = bridge_1.bridge.on('bridge:ready', (params) => {
24
+ unsubscribe();
25
+ callback(params);
26
+ });
27
+ },
28
+ /** Signal to the host that this app has finished loading. */
29
+ async signalReady() {
30
+ await bridge_1.bridge.call('app.ready');
31
+ },
32
+ };
33
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAGrB,QAAA,GAAG,GAAG;IACjB,uDAAuD;IACvD,OAAO;QACL,OAAO,eAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,uFAAuF;IACvF,OAAO;QACL,OAAO,eAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,QAAiC;QACvC,IAAI,eAAM,CAAC,KAAK,IAAI,eAAM,CAAC,GAAG,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAM,CAAC,GAAI,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,eAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;YACvD,WAAW,EAAE,CAAC;YACd,QAAQ,CAAC,MAAiB,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,WAAW;QACf,MAAM,eAAM,CAAC,IAAI,CAAO,WAAW,CAAC,CAAC;IACvC,CAAC;CACF,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { AppInfo } from './types';
2
+ export declare class Bridge {
3
+ private _pending;
4
+ private _nextId;
5
+ private _ready;
6
+ private _app;
7
+ private _listeners;
8
+ constructor();
9
+ get ready(): boolean;
10
+ get app(): AppInfo | null;
11
+ /** Called by the runtime when the iframe is bootstrapped. */
12
+ _bootstrap(app: AppInfo): void;
13
+ /** Send a JSON-RPC call to the host runtime and await the response. */
14
+ call<T = unknown>(method: string, params?: unknown, timeoutMs?: number): Promise<T>;
15
+ /** Subscribe to push events from the host. */
16
+ on(event: string, handler: (params: unknown) => void): () => void;
17
+ private _handleMessage;
18
+ private _rpcError;
19
+ }
20
+ /** Singleton bridge instance used by all SDK modules. */
21
+ export declare const bridge: Bridge;
22
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,OAAO,EACR,MAAM,SAAS,CAAC;AAUjB,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,UAAU,CAAqD;;IAQvE,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,GAAG,IAAI,OAAO,GAAG,IAAI,CAExB;IAED,6DAA6D;IAC7D,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAK9B,uEAAuE;IACvE,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,SAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAsB5F,8CAA8C;IAC9C,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAQjE,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,SAAS;CAGlB;AAED,yDAAyD;AACzD,eAAO,MAAM,MAAM,QAAe,CAAC"}
package/dist/bridge.js ADDED
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bridge = exports.Bridge = void 0;
4
+ const types_1 = require("./types");
5
+ const DEFAULT_TIMEOUT = 30000;
6
+ class Bridge {
7
+ constructor() {
8
+ this._pending = new Map();
9
+ this._nextId = 1;
10
+ this._ready = false;
11
+ this._app = null;
12
+ this._listeners = new Map();
13
+ if (typeof window !== 'undefined') {
14
+ window.addEventListener('message', this._handleMessage.bind(this));
15
+ }
16
+ }
17
+ get ready() {
18
+ return this._ready;
19
+ }
20
+ get app() {
21
+ return this._app;
22
+ }
23
+ /** Called by the runtime when the iframe is bootstrapped. */
24
+ _bootstrap(app) {
25
+ this._app = app;
26
+ this._ready = true;
27
+ }
28
+ /** Send a JSON-RPC call to the host runtime and await the response. */
29
+ call(method, params, timeoutMs = DEFAULT_TIMEOUT) {
30
+ if (!this._ready) {
31
+ return Promise.reject(this._rpcError(types_1.SDK_ERROR.BRIDGE_NOT_READY, 'Bridge not ready'));
32
+ }
33
+ return new Promise((resolve, reject) => {
34
+ const id = this._nextId++;
35
+ const timer = setTimeout(() => {
36
+ this._pending.delete(id);
37
+ reject(this._rpcError(types_1.SDK_ERROR.TIMEOUT, `RPC timeout: ${method}`));
38
+ }, timeoutMs);
39
+ this._pending.set(id, {
40
+ resolve: resolve,
41
+ reject,
42
+ timer,
43
+ });
44
+ const msg = { jsonrpc: '2.0', id, method, params };
45
+ window.parent.postMessage(msg, '*');
46
+ });
47
+ }
48
+ /** Subscribe to push events from the host. */
49
+ on(event, handler) {
50
+ if (!this._listeners.has(event)) {
51
+ this._listeners.set(event, new Set());
52
+ }
53
+ this._listeners.get(event).add(handler);
54
+ return () => this._listeners.get(event)?.delete(handler);
55
+ }
56
+ _handleMessage(event) {
57
+ const data = event.data;
58
+ if (!data || data.jsonrpc !== '2.0')
59
+ return;
60
+ // Push notification (no id)
61
+ if (!('id' in data) || data.id === undefined) {
62
+ const req = data;
63
+ const handlers = this._listeners.get(req.method);
64
+ if (handlers) {
65
+ handlers.forEach((h) => h(req.params));
66
+ }
67
+ return;
68
+ }
69
+ const res = data;
70
+ const pending = this._pending.get(res.id);
71
+ if (!pending)
72
+ return;
73
+ clearTimeout(pending.timer);
74
+ this._pending.delete(res.id);
75
+ if (res.error) {
76
+ pending.reject(res.error);
77
+ }
78
+ else {
79
+ pending.resolve(res.result);
80
+ }
81
+ }
82
+ _rpcError(code, message) {
83
+ return { code, message };
84
+ }
85
+ }
86
+ exports.Bridge = Bridge;
87
+ /** Singleton bridge instance used by all SDK modules. */
88
+ exports.bridge = new Bridge();
89
+ //# sourceMappingURL=bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ export { bridge } from './bridge';
2
+ export { tools } from './tools';
3
+ export { providers } from './providers';
4
+ export { storage } from './storage';
5
+ export { ui } from './ui';
6
+ export { app } from './app';
7
+ export * from './types';
8
+ /** Convenience default export with all namespaces. */
9
+ declare const FlowScale: {
10
+ readonly tools: {
11
+ list(): Promise<import("./types").ToolDefinition[]>;
12
+ get(id: string): Promise<import("./types").ToolDefinition>;
13
+ run(id: string, inputs: Record<string, unknown>, options?: import("./types").ToolRunOptions): Promise<import("./types").ToolRunResult>;
14
+ };
15
+ readonly providers: {
16
+ list(): Promise<import("./types").ProviderStatus[]>;
17
+ run(provider: import("./types").ProviderName, endpoint: string, payload: Record<string, unknown>, options?: import("./types").ProviderRunOptions): Promise<unknown>;
18
+ };
19
+ readonly storage: {
20
+ get<T = unknown>(key: string, scope?: import("./types").StorageScope): Promise<T | undefined>;
21
+ set(key: string, value: unknown, scope?: import("./types").StorageScope): Promise<void>;
22
+ delete(key: string, scope?: import("./types").StorageScope): Promise<void>;
23
+ keys(scope?: import("./types").StorageScope): Promise<string[]>;
24
+ };
25
+ readonly ui: {
26
+ toast(options: import("./types").ToastOptions): Promise<void>;
27
+ confirm(options: import("./types").DialogOptions): Promise<boolean>;
28
+ resize(width: number | null, height: number | null): Promise<void>;
29
+ };
30
+ readonly app: {
31
+ getInfo(): import("./types").AppInfo | null;
32
+ isReady(): boolean;
33
+ onReady(callback: (info: import("./types").AppInfo) => void): void;
34
+ signalReady(): Promise<void>;
35
+ };
36
+ };
37
+ export default FlowScale;
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,cAAc,SAAS,CAAC;AAQxB,sDAAsD;AACtD,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAkD,CAAC;AAClE,eAAe,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.app = exports.ui = exports.storage = exports.providers = exports.tools = exports.bridge = void 0;
18
+ var bridge_1 = require("./bridge");
19
+ Object.defineProperty(exports, "bridge", { enumerable: true, get: function () { return bridge_1.bridge; } });
20
+ var tools_1 = require("./tools");
21
+ Object.defineProperty(exports, "tools", { enumerable: true, get: function () { return tools_1.tools; } });
22
+ var providers_1 = require("./providers");
23
+ Object.defineProperty(exports, "providers", { enumerable: true, get: function () { return providers_1.providers; } });
24
+ var storage_1 = require("./storage");
25
+ Object.defineProperty(exports, "storage", { enumerable: true, get: function () { return storage_1.storage; } });
26
+ var ui_1 = require("./ui");
27
+ Object.defineProperty(exports, "ui", { enumerable: true, get: function () { return ui_1.ui; } });
28
+ var app_1 = require("./app");
29
+ Object.defineProperty(exports, "app", { enumerable: true, get: function () { return app_1.app; } });
30
+ __exportStar(require("./types"), exports);
31
+ const tools_2 = require("./tools");
32
+ const providers_2 = require("./providers");
33
+ const storage_2 = require("./storage");
34
+ const ui_2 = require("./ui");
35
+ const app_2 = require("./app");
36
+ /** Convenience default export with all namespaces. */
37
+ const FlowScale = { tools: tools_2.tools, providers: providers_2.providers, storage: storage_2.storage, ui: ui_2.ui, app: app_2.app };
38
+ exports.default = FlowScale;
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,2BAA0B;AAAjB,wFAAA,EAAE,OAAA;AACX,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,0CAAwB;AAExB,mCAAgC;AAChC,2CAAwC;AACxC,uCAAoC;AACpC,6BAA0B;AAC1B,+BAA4B;AAE5B,sDAAsD;AACtD,MAAM,SAAS,GAAG,EAAE,KAAK,EAAL,aAAK,EAAE,SAAS,EAAT,qBAAS,EAAE,OAAO,EAAP,iBAAO,EAAE,EAAE,EAAF,OAAE,EAAE,GAAG,EAAH,SAAG,EAAW,CAAC;AAClE,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ProviderName, ProviderStatus, ProviderRunOptions } from './types';
2
+ export declare const providers: {
3
+ /** List configured cloud providers. */
4
+ list(): Promise<ProviderStatus[]>;
5
+ /** Run inference via a cloud provider. */
6
+ run(provider: ProviderName, endpoint: string, payload: Record<string, unknown>, options?: ProviderRunOptions): Promise<unknown>;
7
+ };
8
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE3E,eAAO,MAAM,SAAS;IACpB,uCAAuC;YACzB,OAAO,CAAC,cAAc,EAAE,CAAC;IAIvC,0CAA0C;kBAE9B,YAAY,YACZ,MAAM,WACP,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YACvB,kBAAkB,GAC1B,OAAO,CAAC,OAAO,CAAC;CAqBpB,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.providers = void 0;
4
+ const bridge_1 = require("./bridge");
5
+ exports.providers = {
6
+ /** List configured cloud providers. */
7
+ async list() {
8
+ return bridge_1.bridge.call('providers.list');
9
+ },
10
+ /** Run inference via a cloud provider. */
11
+ async run(provider, endpoint, payload, options = {}) {
12
+ const { timeout, onProgress } = options;
13
+ let unsubscribe;
14
+ if (onProgress) {
15
+ unsubscribe = bridge_1.bridge.on(`providers.progress.${provider}`, (params) => {
16
+ const p = params;
17
+ onProgress(p.progress);
18
+ });
19
+ }
20
+ try {
21
+ return await bridge_1.bridge.call('providers.run', { provider, endpoint, payload }, timeout);
22
+ }
23
+ finally {
24
+ unsubscribe?.();
25
+ }
26
+ },
27
+ };
28
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAGrB,QAAA,SAAS,GAAG;IACvB,uCAAuC;IACvC,KAAK,CAAC,IAAI;QACR,OAAO,eAAM,CAAC,IAAI,CAAmB,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,GAAG,CACP,QAAsB,EACtB,QAAgB,EAChB,OAAgC,EAChC,UAA8B,EAAE;QAEhC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAExC,IAAI,WAAqC,CAAC;QAC1C,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,GAAG,eAAM,CAAC,EAAE,CAAC,sBAAsB,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;gBACnE,MAAM,CAAC,GAAG,MAA8B,CAAC;gBACzC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,eAAM,CAAC,IAAI,CACtB,eAAe,EACf,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAC/B,OAAO,CACR,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,WAAW,EAAE,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { StorageScope } from './types';
2
+ export declare const storage: {
3
+ /** Get a value by key. Returns undefined if not set. */
4
+ get<T = unknown>(key: string, scope?: StorageScope): Promise<T | undefined>;
5
+ /** Set a value. Overwrites any existing value at that key. */
6
+ set(key: string, value: unknown, scope?: StorageScope): Promise<void>;
7
+ /** Delete a value by key. No-op if the key does not exist. */
8
+ delete(key: string, scope?: StorageScope): Promise<void>;
9
+ /** List all keys visible to this app in the given scope. */
10
+ keys(scope?: StorageScope): Promise<string[]>;
11
+ };
12
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,OAAO;IAClB,wDAAwD;QAC9C,CAAC,iBAAiB,MAAM,UAAS,YAAY,GAAW,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIxF,8DAA8D;aAC/C,MAAM,SAAS,OAAO,UAAS,YAAY,GAAW,OAAO,CAAC,IAAI,CAAC;IAIlF,8DAA8D;gBAC5C,MAAM,UAAS,YAAY,GAAW,OAAO,CAAC,IAAI,CAAC;IAIrE,4DAA4D;iBAC1C,YAAY,GAAW,OAAO,CAAC,MAAM,EAAE,CAAC;CAG3D,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storage = void 0;
4
+ const bridge_1 = require("./bridge");
5
+ exports.storage = {
6
+ /** Get a value by key. Returns undefined if not set. */
7
+ async get(key, scope = 'app') {
8
+ return bridge_1.bridge.call('storage.get', { key, scope });
9
+ },
10
+ /** Set a value. Overwrites any existing value at that key. */
11
+ async set(key, value, scope = 'app') {
12
+ await bridge_1.bridge.call('storage.set', { key, value, scope });
13
+ },
14
+ /** Delete a value by key. No-op if the key does not exist. */
15
+ async delete(key, scope = 'app') {
16
+ await bridge_1.bridge.call('storage.delete', { key, scope });
17
+ },
18
+ /** List all keys visible to this app in the given scope. */
19
+ async keys(scope = 'app') {
20
+ return bridge_1.bridge.call('storage.keys', { scope });
21
+ },
22
+ };
23
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAGrB,QAAA,OAAO,GAAG;IACrB,wDAAwD;IACxD,KAAK,CAAC,GAAG,CAAc,GAAW,EAAE,QAAsB,KAAK;QAC7D,OAAO,eAAM,CAAC,IAAI,CAAgB,aAAa,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAc,EAAE,QAAsB,KAAK;QAChE,MAAM,eAAM,CAAC,IAAI,CAAO,aAAa,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,QAAsB,KAAK;QACnD,MAAM,eAAM,CAAC,IAAI,CAAO,gBAAgB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,IAAI,CAAC,QAAsB,KAAK;QACpC,OAAO,eAAM,CAAC,IAAI,CAAW,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ToolDefinition, ToolRunOptions, ToolRunResult } from './types';
2
+ export declare const tools: {
3
+ /** List all tools available to this app. */
4
+ list(): Promise<ToolDefinition[]>;
5
+ /** Get a single tool by ID. */
6
+ get(id: string): Promise<ToolDefinition>;
7
+ /** Run a tool and get back its outputs. */
8
+ run(id: string, inputs: Record<string, unknown>, options?: ToolRunOptions): Promise<ToolRunResult>;
9
+ };
10
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExE,eAAO,MAAM,KAAK;IAChB,4CAA4C;YAC9B,OAAO,CAAC,cAAc,EAAE,CAAC;IAIvC,+BAA+B;YACjB,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI9C,2CAA2C;YAErC,MAAM,UACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YACtB,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC;CAiB1B,CAAC"}
package/dist/tools.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tools = void 0;
4
+ const bridge_1 = require("./bridge");
5
+ exports.tools = {
6
+ /** List all tools available to this app. */
7
+ async list() {
8
+ return bridge_1.bridge.call('tools.list');
9
+ },
10
+ /** Get a single tool by ID. */
11
+ async get(id) {
12
+ return bridge_1.bridge.call('tools.get', { id });
13
+ },
14
+ /** Run a tool and get back its outputs. */
15
+ async run(id, inputs, options = {}) {
16
+ const { timeout, onProgress } = options;
17
+ let unsubscribe;
18
+ if (onProgress) {
19
+ unsubscribe = bridge_1.bridge.on(`tools.progress.${id}`, (params) => {
20
+ const p = params;
21
+ onProgress(p.progress, p.message);
22
+ });
23
+ }
24
+ try {
25
+ return await bridge_1.bridge.call('tools.run', { id, inputs }, timeout);
26
+ }
27
+ finally {
28
+ unsubscribe?.();
29
+ }
30
+ },
31
+ };
32
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAGrB,QAAA,KAAK,GAAG;IACnB,4CAA4C;IAC5C,KAAK,CAAC,IAAI;QACR,OAAO,eAAM,CAAC,IAAI,CAAmB,YAAY,CAAC,CAAC;IACrD,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,eAAM,CAAC,IAAI,CAAiB,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,GAAG,CACP,EAAU,EACV,MAA+B,EAC/B,UAA0B,EAAE;QAE5B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAExC,IAAI,WAAqC,CAAC;QAC1C,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,GAAG,eAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;gBACzD,MAAM,CAAC,GAAG,MAAgD,CAAC;gBAC3D,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,eAAM,CAAC,IAAI,CAAgB,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;QAChF,CAAC;gBAAS,CAAC;YACT,WAAW,EAAE,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,94 @@
1
+ export interface JsonRpcRequest {
2
+ jsonrpc: '2.0';
3
+ id: string | number;
4
+ method: string;
5
+ params?: unknown;
6
+ }
7
+ export interface JsonRpcResponse {
8
+ jsonrpc: '2.0';
9
+ id: string | number;
10
+ result?: unknown;
11
+ error?: JsonRpcError;
12
+ }
13
+ export interface JsonRpcError {
14
+ code: number;
15
+ message: string;
16
+ data?: unknown;
17
+ }
18
+ export type JsonRpcMessage = JsonRpcRequest | JsonRpcResponse;
19
+ export declare const SDK_ERROR: {
20
+ readonly BRIDGE_NOT_READY: -32000;
21
+ readonly TIMEOUT: -32001;
22
+ readonly PERMISSION_DENIED: -32003;
23
+ readonly NOT_FOUND: -32004;
24
+ readonly INVALID_PARAMS: -32602;
25
+ readonly INTERNAL: -32603;
26
+ };
27
+ export interface ToolInput {
28
+ name: string;
29
+ type: 'string' | 'number' | 'boolean' | 'image' | 'select';
30
+ label?: string;
31
+ required?: boolean;
32
+ default?: unknown;
33
+ options?: string[];
34
+ min?: number;
35
+ max?: number;
36
+ step?: number;
37
+ }
38
+ export interface ToolOutput {
39
+ name: string;
40
+ type: 'string' | 'number' | 'image' | 'json';
41
+ label?: string;
42
+ }
43
+ export interface ToolDefinition {
44
+ id: string;
45
+ name: string;
46
+ description?: string;
47
+ inputs: ToolInput[];
48
+ outputs: ToolOutput[];
49
+ category?: string;
50
+ version?: string;
51
+ }
52
+ export interface ToolRunOptions {
53
+ timeout?: number;
54
+ onProgress?: (progress: number, message?: string) => void;
55
+ }
56
+ export interface ToolRunResult {
57
+ outputs: Record<string, unknown>;
58
+ executionId?: string;
59
+ }
60
+ export type ProviderName = 'fal' | 'replicate' | 'openrouter' | 'huggingface';
61
+ export interface ProviderStatus {
62
+ name: ProviderName;
63
+ configured: boolean;
64
+ }
65
+ export interface ProviderRunOptions {
66
+ timeout?: number;
67
+ onProgress?: (progress: number) => void;
68
+ }
69
+ export type StorageScope = 'app' | 'user';
70
+ export type ToastVariant = 'info' | 'success' | 'warning' | 'error';
71
+ export interface ToastOptions {
72
+ title: string;
73
+ description?: string;
74
+ variant?: ToastVariant;
75
+ duration?: number;
76
+ }
77
+ export interface DialogOptions {
78
+ title: string;
79
+ description?: string;
80
+ confirmLabel?: string;
81
+ cancelLabel?: string;
82
+ }
83
+ export type Permission = 'tools:read' | 'tools:run' | 'providers:use' | 'storage:read' | 'storage:write' | 'ui:toast' | 'ui:dialog';
84
+ export interface AppInfo {
85
+ id: string;
86
+ name: string;
87
+ version: string;
88
+ permissions: Permission[];
89
+ }
90
+ export interface BridgeReadyEvent {
91
+ type: 'bridge:ready';
92
+ app: AppInfo;
93
+ }
94
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ // ─── JSON-RPC 2.0 envelope types ─────────────────────────────────────────────
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SDK_ERROR = void 0;
5
+ // ─── SDK error codes ──────────────────────────────────────────────────────────
6
+ exports.SDK_ERROR = {
7
+ BRIDGE_NOT_READY: -32000,
8
+ TIMEOUT: -32001,
9
+ PERMISSION_DENIED: -32003,
10
+ NOT_FOUND: -32004,
11
+ INVALID_PARAMS: -32602,
12
+ INTERNAL: -32603,
13
+ };
14
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,gFAAgF;;;AAwBhF,iFAAiF;AAEpE,QAAA,SAAS,GAAG;IACvB,gBAAgB,EAAE,CAAC,KAAK;IACxB,OAAO,EAAE,CAAC,KAAK;IACf,iBAAiB,EAAE,CAAC,KAAK;IACzB,SAAS,EAAE,CAAC,KAAK;IACjB,cAAc,EAAE,CAAC,KAAK;IACtB,QAAQ,EAAE,CAAC,KAAK;CACR,CAAC"}
package/dist/ui.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { ToastOptions, DialogOptions } from './types';
2
+ export declare const ui: {
3
+ /** Show a toast notification in the host UI. */
4
+ toast(options: ToastOptions): Promise<void>;
5
+ /** Show a confirmation dialog. Resolves to true if the user confirms. */
6
+ confirm(options: DialogOptions): Promise<boolean>;
7
+ /** Request the host to resize the app container (in pixels). */
8
+ resize(width: number | null, height: number | null): Promise<void>;
9
+ };
10
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtD,eAAO,MAAM,EAAE;IACb,gDAAgD;mBAC3B,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,yEAAyE;qBAClD,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD,gEAAgE;kBAC5C,MAAM,GAAG,IAAI,UAAU,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzE,CAAC"}
package/dist/ui.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ui = void 0;
4
+ const bridge_1 = require("./bridge");
5
+ exports.ui = {
6
+ /** Show a toast notification in the host UI. */
7
+ async toast(options) {
8
+ await bridge_1.bridge.call('ui.toast', options);
9
+ },
10
+ /** Show a confirmation dialog. Resolves to true if the user confirms. */
11
+ async confirm(options) {
12
+ return bridge_1.bridge.call('ui.confirm', options);
13
+ },
14
+ /** Request the host to resize the app container (in pixels). */
15
+ async resize(width, height) {
16
+ await bridge_1.bridge.call('ui.resize', { width, height });
17
+ },
18
+ };
19
+ //# sourceMappingURL=ui.js.map
package/dist/ui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAGrB,QAAA,EAAE,GAAG;IAChB,gDAAgD;IAChD,KAAK,CAAC,KAAK,CAAC,OAAqB;QAC/B,MAAM,eAAM,CAAC,IAAI,CAAO,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,OAAO,CAAC,OAAsB;QAClC,OAAO,eAAM,CAAC,IAAI,CAAU,YAAY,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,MAAM,CAAC,KAAoB,EAAE,MAAqB;QACtD,MAAM,eAAM,CAAC,IAAI,CAAO,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;CACF,CAAC"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@flowscale/sdk",
3
+ "version": "1.0.0",
4
+ "description": "FlowScale EIOS SDK — build apps that run inside FlowScale AI OS",
5
+ "license": "AGPL-3.0-only",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "main": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "default": "./dist/index.js"
18
+ }
19
+ },
20
+ "scripts": {
21
+ "build": "tsc",
22
+ "typecheck": "tsc --noEmit",
23
+ "dev": "tsc --watch",
24
+ "publish:latest": "npm publish",
25
+ "publish:beta": "npm publish --tag beta"
26
+ },
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/FlowScale-AI/flowscale-eios.git"
30
+ },
31
+ "devDependencies": {
32
+ "typescript": "^5.8.3"
33
+ }
34
+ }