mcard-js 2.1.48 → 2.1.49
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/AbstractSqlEngine-DKka6XjT.d.cts +451 -0
- package/dist/AbstractSqlEngine-DKka6XjT.d.ts +451 -0
- package/dist/CardCollection-ZQ3G3Q3A.js +10 -0
- package/dist/IndexedDBEngine-BWXAB46W.js +12 -0
- package/dist/LLMRuntime-PH3MOQ2Y.js +17 -0
- package/dist/LambdaRuntime-YH74FHIW.js +19 -0
- package/dist/Loader-WZXYG4GE.js +12 -0
- package/dist/NetworkRuntime-S4DZCGVN.js +1598 -0
- package/dist/OllamaProvider-SPGO5Z5E.js +9 -0
- package/dist/chunk-3FFEA2XK.js +149 -0
- package/dist/chunk-7AXRV7NS.js +112 -0
- package/dist/chunk-HIVVDGE5.js +497 -0
- package/dist/chunk-KVZYFZJ5.js +427 -0
- package/dist/chunk-NGTY4P6A.js +275 -0
- package/dist/chunk-OUW2SUGM.js +368 -0
- package/dist/chunk-QKH3N62B.js +2360 -0
- package/dist/chunk-QPVEUPMU.js +299 -0
- package/dist/chunk-VYDZR4ZD.js +364 -0
- package/dist/chunk-XJZOEM5F.js +903 -0
- package/dist/chunk-Z7EFXSTO.js +217 -0
- package/dist/index.browser.cjs +37 -1
- package/dist/index.browser.d.cts +20 -2
- package/dist/index.browser.d.ts +20 -2
- package/dist/index.browser.js +10 -6
- package/dist/index.cjs +618 -146
- package/dist/index.d.cts +723 -4
- package/dist/index.d.ts +723 -4
- package/dist/index.js +527 -89
- package/dist/storage/SqliteNodeEngine.cjs +7 -1
- package/dist/storage/SqliteNodeEngine.d.cts +1 -1
- package/dist/storage/SqliteNodeEngine.d.ts +1 -1
- package/dist/storage/SqliteNodeEngine.js +3 -3
- package/dist/storage/SqliteWasmEngine.cjs +7 -1
- package/dist/storage/SqliteWasmEngine.d.cts +1 -1
- package/dist/storage/SqliteWasmEngine.d.ts +1 -1
- package/dist/storage/SqliteWasmEngine.js +3 -3
- package/package.json +1 -1
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
// ../config/app_config.json
|
|
2
|
+
var app_config_default = {
|
|
3
|
+
network: {
|
|
4
|
+
default_ws_host: "127.0.0.1",
|
|
5
|
+
default_ws_port: 5321,
|
|
6
|
+
default_api_port: 5320,
|
|
7
|
+
default_python_api_port: 28302,
|
|
8
|
+
default_js_api_port: 28303,
|
|
9
|
+
default_server_host: "0.0.0.0",
|
|
10
|
+
cors_origins: [
|
|
11
|
+
"http://localhost:3000",
|
|
12
|
+
"http://localhost:8000",
|
|
13
|
+
"https://localhost:3000",
|
|
14
|
+
"https://localhost:8000",
|
|
15
|
+
"http://localhost:8080",
|
|
16
|
+
"https://example.com"
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
web: {
|
|
20
|
+
api_key_header_name: "X-API-Key"
|
|
21
|
+
},
|
|
22
|
+
identity: {
|
|
23
|
+
provider: "sqlite",
|
|
24
|
+
space_path: "./data/IDENTITY_SPACE.db",
|
|
25
|
+
api_endpoint: null,
|
|
26
|
+
default_vapid_contact: "mailto:developer@example.com"
|
|
27
|
+
},
|
|
28
|
+
storage: {
|
|
29
|
+
default_db_path: "./data/DEFAULT_DB_FILE.db",
|
|
30
|
+
test_db_path: "./tests/data/test_mcard.db",
|
|
31
|
+
default_data_root_dirname: "data",
|
|
32
|
+
default_data_user: "guest",
|
|
33
|
+
default_seed_dirname: "seed",
|
|
34
|
+
default_artifacts_dirname: "artifacts",
|
|
35
|
+
default_server_memory_db: "servermemory.db",
|
|
36
|
+
default_mcard_db: "mcard.db",
|
|
37
|
+
default_server_log_db: "server_log.db",
|
|
38
|
+
default_push_subscriptions_file: "subscriptions.json",
|
|
39
|
+
default_vcard_db_path: "data/vcard.db"
|
|
40
|
+
},
|
|
41
|
+
services: {
|
|
42
|
+
default_ollama_base_url: "http://localhost:11434",
|
|
43
|
+
default_otlp_endpoint: "http://localhost:4317",
|
|
44
|
+
default_vllm_base_url: "http://localhost:8000",
|
|
45
|
+
default_lmstudio_base_url: "http://localhost:1234"
|
|
46
|
+
},
|
|
47
|
+
env: {
|
|
48
|
+
api_port: "MCARD_API_PORT",
|
|
49
|
+
ws_port: "MCARD_WS_PORT",
|
|
50
|
+
ws_host: "VITE_WS_HOST",
|
|
51
|
+
vite_ws_port: "VITE_WS_PORT",
|
|
52
|
+
identity_provider: "MCARD_IDENTITY_PROVIDER",
|
|
53
|
+
identity_space_path: "IDENTITY_SPACE_PATH",
|
|
54
|
+
identity_api_endpoint: "MCARD_IDENTITY_API_ENDPOINT",
|
|
55
|
+
data_root: "DATA_ROOT",
|
|
56
|
+
data_user: "DATA_USER",
|
|
57
|
+
artifacts_dir: "ARTIFACTS_DIR",
|
|
58
|
+
mcard_db_path: "MCARD_DB_PATH",
|
|
59
|
+
mcard_storage_path: "MCARD_STORAGE_PATH",
|
|
60
|
+
execution_logs_db_path: "EXECUTION_LOGS_DB_PATH",
|
|
61
|
+
server_log_db_path: "SERVER_LOG_DB_PATH",
|
|
62
|
+
server_memory_db_path: "SERVER_MEMORY_DB_PATH",
|
|
63
|
+
servermemory_db_path: "SERVERMEMORY_DB_PATH",
|
|
64
|
+
seeding_memory_db_path: "SEEDING_MEMORY_DB_PATH",
|
|
65
|
+
push_subscriptions_path: "PUSH_SUBSCRIPTIONS_PATH",
|
|
66
|
+
vapid_contact_email: "VAPID_CONTACT_EMAIL",
|
|
67
|
+
vapid_contact: "VAPID_CONTACT",
|
|
68
|
+
ollama_base_url: "OLLAMA_BASE_URL",
|
|
69
|
+
otlp_endpoint: "OTLP_ENDPOINT",
|
|
70
|
+
vllm_base_url: "VLLM_BASE_URL",
|
|
71
|
+
lmstudio_base_url: "LMSTUDIO_BASE_URL",
|
|
72
|
+
api_key_header_name: "X-API-Key"
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
// src/config/constants.ts
|
|
77
|
+
var network = app_config_default.network ?? {};
|
|
78
|
+
var identity = app_config_default.identity ?? {};
|
|
79
|
+
var services = app_config_default.services ?? {};
|
|
80
|
+
var web = app_config_default.web ?? {};
|
|
81
|
+
var DEFAULT_PAGE_SIZE = 10;
|
|
82
|
+
var MAX_FILE_SIZE = typeof process !== "undefined" && process.env.MCARD_MAX_SIZE_BYTES ? parseInt(process.env.MCARD_MAX_SIZE_BYTES, 10) : 150 * 1024 * 1024;
|
|
83
|
+
var READ_TIMEOUT_MS = 5e3;
|
|
84
|
+
var KNOWN_TYPE_SIZE_LIMIT = 1024 * 1024;
|
|
85
|
+
var BINARY_CHECK_SAMPLE_SIZE = 32 * 1024;
|
|
86
|
+
var CONTENT_DETECTION_SAMPLE_SIZE = 1024 * 1024;
|
|
87
|
+
var DEFAULT_MAX_PROBLEM_BYTES = 2 * 1024 * 1024;
|
|
88
|
+
var INDEXEDDB_DEFAULT_DB_NAME = "mcard-db";
|
|
89
|
+
var INDEXEDDB_DEFAULT_DB_VERSION = 1;
|
|
90
|
+
var SQLITE_BUSY_TIMEOUT_MS = 5e3;
|
|
91
|
+
var DEFAULT_IDENTITY_PROVIDER = String(identity.provider ?? "sqlite");
|
|
92
|
+
var DEFAULT_IDENTITY_SPACE_PATH = String(identity.space_path ?? "./data/IDENTITY_SPACE.db");
|
|
93
|
+
var DEFAULT_API_PORT = Number(network.default_api_port ?? 5320);
|
|
94
|
+
var DEFAULT_PYTHON_API_PORT = Number(network.default_python_api_port ?? 28302);
|
|
95
|
+
var DEFAULT_JS_API_PORT = Number(network.default_js_api_port ?? 28303);
|
|
96
|
+
var DEFAULT_VCARD_DB_PATH = String(app_config_default.storage?.default_vcard_db_path ?? "./data/vcard.db");
|
|
97
|
+
var DEFAULT_WS_PORT = Number(network.default_ws_port ?? 5321);
|
|
98
|
+
var DEFAULT_WS_HOST = String(network.default_ws_host ?? "127.0.0.1");
|
|
99
|
+
var DEFAULT_SERVER_HOST = String(network.default_server_host ?? "0.0.0.0");
|
|
100
|
+
var CORS_ORIGINS = Array.isArray(network.cors_origins) ? network.cors_origins : [];
|
|
101
|
+
var getEnvUrl = (key, fallback) => {
|
|
102
|
+
try {
|
|
103
|
+
if (typeof process !== "undefined" && process.env && process.env[key]) {
|
|
104
|
+
return process.env[key];
|
|
105
|
+
}
|
|
106
|
+
} catch (e) {
|
|
107
|
+
}
|
|
108
|
+
return fallback;
|
|
109
|
+
};
|
|
110
|
+
var API_KEY_HEADER_NAME = String(web.api_key_header_name ?? "X-API-Key");
|
|
111
|
+
var DEFAULT_OLLAMA_BASE_URL = getEnvUrl(
|
|
112
|
+
"OLLAMA_BASE_URL",
|
|
113
|
+
String(services.default_ollama_base_url ?? "http://localhost:11434")
|
|
114
|
+
);
|
|
115
|
+
var DEFAULT_OTLP_ENDPOINT = getEnvUrl(
|
|
116
|
+
"OTLP_ENDPOINT",
|
|
117
|
+
String(services.default_otlp_endpoint ?? "http://localhost:4317")
|
|
118
|
+
);
|
|
119
|
+
var DEFAULT_VLLM_BASE_URL = getEnvUrl(
|
|
120
|
+
"VLLM_BASE_URL",
|
|
121
|
+
String(services.default_vllm_base_url ?? "http://localhost:8000")
|
|
122
|
+
);
|
|
123
|
+
var DEFAULT_LMSTUDIO_BASE_URL = getEnvUrl(
|
|
124
|
+
"LMSTUDIO_BASE_URL",
|
|
125
|
+
String(services.default_lmstudio_base_url ?? "http://localhost:1234")
|
|
126
|
+
);
|
|
127
|
+
var DEFAULT_SQLJS_WASM_URL = "https://sql.js.org/dist/";
|
|
128
|
+
var DEFAULT_SANDBOX_TIMEOUT_MS = 5e3;
|
|
129
|
+
var DEFAULT_CLM_TIMEOUT_MS = 5e3;
|
|
130
|
+
var DEFAULT_VM_EXECUTION_TIMEOUT_MS = 5e3;
|
|
131
|
+
var LLM_DEFAULT_TIMEOUT_SECS = 120;
|
|
132
|
+
var LLM_DEFAULT_RETRY_COUNT = 3;
|
|
133
|
+
var LLM_DEFAULT_RETRY_DELAY_SECS = 1;
|
|
134
|
+
|
|
135
|
+
export {
|
|
136
|
+
DEFAULT_PAGE_SIZE,
|
|
137
|
+
MAX_FILE_SIZE,
|
|
138
|
+
READ_TIMEOUT_MS,
|
|
139
|
+
INDEXEDDB_DEFAULT_DB_NAME,
|
|
140
|
+
INDEXEDDB_DEFAULT_DB_VERSION,
|
|
141
|
+
SQLITE_BUSY_TIMEOUT_MS,
|
|
142
|
+
DEFAULT_SQLJS_WASM_URL,
|
|
143
|
+
DEFAULT_SANDBOX_TIMEOUT_MS,
|
|
144
|
+
DEFAULT_CLM_TIMEOUT_MS,
|
|
145
|
+
DEFAULT_VM_EXECUTION_TIMEOUT_MS,
|
|
146
|
+
LLM_DEFAULT_TIMEOUT_SECS,
|
|
147
|
+
LLM_DEFAULT_RETRY_COUNT,
|
|
148
|
+
LLM_DEFAULT_RETRY_DELAY_SECS
|
|
149
|
+
};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AbstractSqlEngine,
|
|
3
|
+
CORE_SCHEMAS
|
|
4
|
+
} from "./chunk-HIVVDGE5.js";
|
|
5
|
+
import {
|
|
6
|
+
DEFAULT_SQLJS_WASM_URL
|
|
7
|
+
} from "./chunk-3FFEA2XK.js";
|
|
8
|
+
import {
|
|
9
|
+
MCard
|
|
10
|
+
} from "./chunk-GGQCF7ZK.js";
|
|
11
|
+
|
|
12
|
+
// src/storage/engines/SqliteWasmEngine.ts
|
|
13
|
+
var SqliteWasmEngine = class extends AbstractSqlEngine {
|
|
14
|
+
db = null;
|
|
15
|
+
SQL = null;
|
|
16
|
+
/**
|
|
17
|
+
* Initialize the database
|
|
18
|
+
* @param wasmUrl URL to sql-wasm.wasm file (optional, defaults to CDN)
|
|
19
|
+
* @param existingData Optional existing database as Uint8Array
|
|
20
|
+
*/
|
|
21
|
+
async init(wasmUrl, existingData) {
|
|
22
|
+
const initSqlJs = (await import("sql.js")).default;
|
|
23
|
+
const SQL = await initSqlJs({
|
|
24
|
+
locateFile: (file) => wasmUrl || `${DEFAULT_SQLJS_WASM_URL}${file}`
|
|
25
|
+
});
|
|
26
|
+
this.SQL = SQL;
|
|
27
|
+
this.db = existingData ? new SQL.Database(existingData) : new SQL.Database();
|
|
28
|
+
this.db.run(CORE_SCHEMAS.card);
|
|
29
|
+
this.db.run(CORE_SCHEMAS.handleRegistry);
|
|
30
|
+
this.db.run(CORE_SCHEMAS.handleHistory);
|
|
31
|
+
this.db.run(CORE_SCHEMAS.handleIndex);
|
|
32
|
+
}
|
|
33
|
+
ensureDb() {
|
|
34
|
+
if (!this.db) throw new Error("Database not initialized. Call init() first.");
|
|
35
|
+
return this.db;
|
|
36
|
+
}
|
|
37
|
+
// ======================================================================
|
|
38
|
+
// AbstractSqlEngine primitives
|
|
39
|
+
// ======================================================================
|
|
40
|
+
async queryRows(sql, ...params) {
|
|
41
|
+
const db = this.ensureDb();
|
|
42
|
+
const stmt = db.prepare(sql);
|
|
43
|
+
if (params.length > 0) stmt.bind(params);
|
|
44
|
+
const results = [];
|
|
45
|
+
while (stmt.step()) {
|
|
46
|
+
const row = stmt.getAsObject();
|
|
47
|
+
results.push(row);
|
|
48
|
+
}
|
|
49
|
+
stmt.free();
|
|
50
|
+
return results;
|
|
51
|
+
}
|
|
52
|
+
async execSql(sql, ...params) {
|
|
53
|
+
const db = this.ensureDb();
|
|
54
|
+
if (params.length === 0) {
|
|
55
|
+
db.run(sql);
|
|
56
|
+
} else {
|
|
57
|
+
db.run(sql, params);
|
|
58
|
+
}
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
// ======================================================================
|
|
62
|
+
// Row → MCard conversion (sql.js returns Uint8Array for BLOBs)
|
|
63
|
+
// ======================================================================
|
|
64
|
+
rowToCard(row) {
|
|
65
|
+
const rawContent = row.content;
|
|
66
|
+
const content = rawContent instanceof Uint8Array ? rawContent : typeof rawContent === "string" ? new TextEncoder().encode(rawContent) : new Uint8Array(0);
|
|
67
|
+
return MCard.fromData(content, String(row.hash), String(row.g_time));
|
|
68
|
+
}
|
|
69
|
+
// ======================================================================
|
|
70
|
+
// sql.js-specific helpers
|
|
71
|
+
// ======================================================================
|
|
72
|
+
/**
|
|
73
|
+
* Export database as Uint8Array (for persistence)
|
|
74
|
+
*/
|
|
75
|
+
export() {
|
|
76
|
+
return this.ensureDb().export();
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get raw sql.js Database for use with VectorStore adapter.
|
|
80
|
+
*/
|
|
81
|
+
getRawDb() {
|
|
82
|
+
return this.ensureDb();
|
|
83
|
+
}
|
|
84
|
+
// =========== pruneHandleHistory override (needs count before delete) ===========
|
|
85
|
+
async pruneHandleHistory(handle, options = {}) {
|
|
86
|
+
const { validateHandle } = await import("./Handle-3N4QOA3U.js");
|
|
87
|
+
const db = this.ensureDb();
|
|
88
|
+
const normalized = validateHandle(handle);
|
|
89
|
+
if (options.deleteAll) {
|
|
90
|
+
const stmt = db.prepare("SELECT COUNT(*) FROM handle_history WHERE handle = ?");
|
|
91
|
+
stmt.bind([normalized]);
|
|
92
|
+
stmt.step();
|
|
93
|
+
const count = stmt.get()[0];
|
|
94
|
+
stmt.free();
|
|
95
|
+
db.run("DELETE FROM handle_history WHERE handle = ?", [normalized]);
|
|
96
|
+
return count;
|
|
97
|
+
} else if (options.olderThan) {
|
|
98
|
+
const stmt = db.prepare("SELECT COUNT(*) FROM handle_history WHERE handle = ? AND changed_at < ?");
|
|
99
|
+
stmt.bind([normalized, options.olderThan]);
|
|
100
|
+
stmt.step();
|
|
101
|
+
const count = stmt.get()[0];
|
|
102
|
+
stmt.free();
|
|
103
|
+
db.run("DELETE FROM handle_history WHERE handle = ? AND changed_at < ?", [normalized, options.olderThan]);
|
|
104
|
+
return count;
|
|
105
|
+
}
|
|
106
|
+
return 0;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
export {
|
|
111
|
+
SqliteWasmEngine
|
|
112
|
+
};
|