modular-studio 0.2.4 → 1.0.3
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/README.md +41 -261
- package/dist/assets/{graphPopulator-C6jg83nL.js → graphPopulator-DH0qM1Fu.js} +1 -1
- package/dist/assets/index-B0RRTCSi.css +1 -0
- package/dist/assets/index-LWCi_4Hu.js +662 -0
- package/dist/assets/{jszip.min-BlpRodxc.js → jszip.min-DByyLalk.js} +1 -1
- package/dist/index.html +2 -2
- package/dist-server/bin/modular-studio.js +5 -0
- package/dist-server/bin/modular-studio.js.map +1 -1
- package/dist-server/server/config.js +1 -1
- package/dist-server/server/config.js.map +1 -1
- package/dist-server/server/data/mcp-tokens.json +9 -0
- package/dist-server/server/index.d.ts.map +1 -1
- package/dist-server/server/index.js +2 -0
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/mcp/manager.js +1 -1
- package/dist-server/server/mcp/manager.js.map +1 -1
- package/dist-server/server/routes/connectors.d.ts.map +1 -1
- package/dist-server/server/routes/connectors.js +7 -4
- package/dist-server/server/routes/connectors.js.map +1 -1
- package/dist-server/server/routes/conversations.d.ts +6 -0
- package/dist-server/server/routes/conversations.d.ts.map +1 -0
- package/dist-server/server/routes/conversations.js +111 -0
- package/dist-server/server/routes/conversations.js.map +1 -0
- package/dist-server/server/routes/embeddings.d.ts.map +1 -1
- package/dist-server/server/routes/embeddings.js +18 -8
- package/dist-server/server/routes/embeddings.js.map +1 -1
- package/dist-server/server/routes/health.d.ts.map +1 -1
- package/dist-server/server/routes/health.js +1 -0
- package/dist-server/server/routes/health.js.map +1 -1
- package/dist-server/server/routes/repo-index.d.ts.map +1 -1
- package/dist-server/server/routes/repo-index.js +4 -3
- package/dist-server/server/routes/repo-index.js.map +1 -1
- package/dist-server/server/services/__tests__/embeddingService.test.js +13 -5
- package/dist-server/server/services/__tests__/embeddingService.test.js.map +1 -1
- package/dist-server/server/services/agentStore.js +1 -1
- package/dist-server/server/services/agentStore.js.map +1 -1
- package/dist-server/server/services/contentStore.js +1 -1
- package/dist-server/server/services/contentStore.js.map +1 -1
- package/dist-server/server/services/embeddingService.d.ts +3 -2
- package/dist-server/server/services/embeddingService.d.ts.map +1 -1
- package/dist-server/server/services/embeddingService.js +14 -1
- package/dist-server/server/services/embeddingService.js.map +1 -1
- package/dist-server/server/services/githubIndexer.d.ts.map +1 -1
- package/dist-server/server/services/githubIndexer.js +9 -3
- package/dist-server/server/services/githubIndexer.js.map +1 -1
- package/dist-server/server/services/sqliteStore.d.ts +22 -0
- package/dist-server/server/services/sqliteStore.d.ts.map +1 -0
- package/dist-server/server/services/sqliteStore.js +101 -0
- package/dist-server/server/services/sqliteStore.js.map +1 -0
- package/dist-server/server/services/worktreeManager.d.ts.map +1 -1
- package/dist-server/server/services/worktreeManager.js +15 -3
- package/dist-server/server/services/worktreeManager.js.map +1 -1
- package/dist-server/tsconfig.server.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/dist/assets/index-CXhIX28x.js +0 -634
- package/dist/assets/index-CeNF0r-K.css +0 -1
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* This is the bridge between "point at a GitHub URL" and
|
|
8
8
|
* "get a tree-indexed knowledge base for an agent."
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { execFileSync } from 'node:child_process';
|
|
11
11
|
import { mkdtempSync, rmSync, existsSync } from 'node:fs';
|
|
12
12
|
import { join } from 'node:path';
|
|
13
13
|
import { tmpdir } from 'node:os';
|
|
@@ -88,7 +88,13 @@ export async function indexGitHubRepo(request) {
|
|
|
88
88
|
const depthArg = '--depth 1';
|
|
89
89
|
const branchArg = ref ? `--branch ${ref}` : '';
|
|
90
90
|
try {
|
|
91
|
-
|
|
91
|
+
const cloneArgs = ['clone'];
|
|
92
|
+
if (depthArg)
|
|
93
|
+
cloneArgs.push(...depthArg.split(' ').filter(Boolean));
|
|
94
|
+
if (branchArg)
|
|
95
|
+
cloneArgs.push(...branchArg.split(' ').filter(Boolean));
|
|
96
|
+
cloneArgs.push('--single-branch', cloneUrl, tempDir);
|
|
97
|
+
execFileSync('git', cloneArgs, { stdio: 'pipe', timeout: 60_000 });
|
|
92
98
|
}
|
|
93
99
|
catch (cloneErr) {
|
|
94
100
|
// On Windows, filenames with colons (e.g. timestamps) cause checkout
|
|
@@ -98,7 +104,7 @@ export async function indexGitHubRepo(request) {
|
|
|
98
104
|
if (existsSync(gitDir)) {
|
|
99
105
|
// Best-effort checkout of whatever files Windows can handle
|
|
100
106
|
try {
|
|
101
|
-
|
|
107
|
+
execFileSync('git', ['checkout', 'HEAD', '--', '.'], { cwd: tempDir, stdio: 'pipe', timeout: 30_000 });
|
|
102
108
|
}
|
|
103
109
|
catch {
|
|
104
110
|
// Some files still fail — that's fine, we index what we can
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubIndexer.js","sourceRoot":"","sources":["../../../server/services/githubIndexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"githubIndexer.js","sourceRoot":"","sources":["../../../server/services/githubIndexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAiB,MAAM,kBAAkB,CAAC;AA6C7G,gBAAgB;AAEhB,SAAS,WAAW,CAAC,GAAW;IAC9B,2EAA2E;IAC3E,sCAAsC;IACtC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC/D,IAAI,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAErE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC5D,IAAI,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,kCAAkC;IAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtD,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;AACjH,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,qCAAqC;IACrC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,GAAG,GAAG,MAAM,CAAC;IAC/C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,GAAY;IACnD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC;IAC7B,OAAO,sBAAsB,KAAK,IAAI,IAAI,SAAS,MAAM,GAAG,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA8B;IACjE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,gCAAgC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAEtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI;QACJ,aAAa;QACb,gBAAgB;QAChB,YAAY;QACZ,MAAM,EAAE;YACN,OAAO,EAAE,CAAC;YACV,MAAM;YACN,UAAU;YACV,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;SACzB;KACF,CAAC;AACJ,CAAC;AAED,aAAa;AAEb;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA2B;IAC/D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE7C,mDAAmD;IACnD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,GAAG,CAAC,CAAC,CAAC;IAEnE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE/C,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,QAAQ;gBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACrE,IAAI,SAAS;gBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACvE,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,QAAiB,EAAE,CAAC;YAC3B,qEAAqE;YACrE,sEAAsE;YACtE,uEAAuE;YACvE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,4DAA4D;gBAC5D,IAAI,CAAC;oBACH,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBACzG,CAAC;gBAAC,MAAM,CAAC;oBACP,4DAA4D;gBAC9D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,8CAA8C;gBAC9C,MAAM,QAAQ,CAAC;YACjB,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;QAExC,iDAAiD;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,4BAA4B,CAAC,CAAC;QACvE,CAAC;QAED,yBAAyB;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACtC,8CAA8C;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEtC,sCAAsC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEnD,gEAAgE;QAChE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;QAEzC,MAAM,MAAM,GAAsB;YAChC,IAAI,EAAE,IAAI;YACV,OAAO;YACP,IAAI;YACJ,aAAa;YACb,gBAAgB;YAChB,YAAY;YACZ,MAAM,EAAE;gBACN,OAAO;gBACP,MAAM;gBACN,UAAU;gBACV,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;aACzB;SACF,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,oCAAoC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC;gBAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAA2B;IAE3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAErD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC,CAAC,CACH,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;QACD,6DAA6D;IAC/D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Database } from 'sql.js';
|
|
2
|
+
export declare function getDb(): Promise<Database>;
|
|
3
|
+
export declare function saveDb(): void;
|
|
4
|
+
export declare function getCachedEmbedding(hash: string): Promise<Float32Array | null>;
|
|
5
|
+
export declare function setCachedEmbedding(hash: string, model: string, vector: number[], textPreview: string): Promise<void>;
|
|
6
|
+
export declare function getEmbeddingCacheSize(): Promise<number>;
|
|
7
|
+
export declare function saveConversation(id: string, agentId: string, agentName: string, messages: any[]): Promise<void>;
|
|
8
|
+
export declare function getConversation(id: string): Promise<{
|
|
9
|
+
id: string;
|
|
10
|
+
agentId: string;
|
|
11
|
+
agentName: string;
|
|
12
|
+
messages: any[];
|
|
13
|
+
} | null>;
|
|
14
|
+
export declare function listConversations(limit?: number): Promise<Array<{
|
|
15
|
+
id: string;
|
|
16
|
+
agentId: string;
|
|
17
|
+
agentName: string;
|
|
18
|
+
messageCount: number;
|
|
19
|
+
updatedAt: number;
|
|
20
|
+
}>>;
|
|
21
|
+
export declare function deleteConversation(id: string): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=sqliteStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqliteStore.d.ts","sourceRoot":"","sources":["../../../server/services/sqliteStore.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAU7C,wBAAsB,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,CA2B/C;AAED,wBAAgB,MAAM,IAAI,IAAI,CAM7B;AAGD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAMnF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO1H;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAI7D;AAGD,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAKrH;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,CAMrI;AAED,wBAAsB,iBAAiB,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAW/J;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIlE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import initSqlJs from 'sql.js';
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { homedir } from 'node:os';
|
|
5
|
+
const DB_DIR = join(homedir(), '.modular-studio');
|
|
6
|
+
const DB_PATH = join(DB_DIR, 'cache.db');
|
|
7
|
+
let db = null;
|
|
8
|
+
export async function getDb() {
|
|
9
|
+
if (db)
|
|
10
|
+
return db;
|
|
11
|
+
const SQL = await initSqlJs();
|
|
12
|
+
if (!existsSync(DB_DIR))
|
|
13
|
+
mkdirSync(DB_DIR, { recursive: true, mode: 0o755 });
|
|
14
|
+
if (existsSync(DB_PATH)) {
|
|
15
|
+
const buffer = readFileSync(DB_PATH);
|
|
16
|
+
db = new SQL.Database(buffer);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
db = new SQL.Database();
|
|
20
|
+
}
|
|
21
|
+
// Create tables
|
|
22
|
+
db.run(`CREATE TABLE IF NOT EXISTS embeddings (
|
|
23
|
+
content_hash TEXT PRIMARY KEY,
|
|
24
|
+
model TEXT NOT NULL,
|
|
25
|
+
vector BLOB NOT NULL,
|
|
26
|
+
text_preview TEXT,
|
|
27
|
+
created_at INTEGER DEFAULT (strftime('%s','now'))
|
|
28
|
+
)`);
|
|
29
|
+
db.run(`CREATE TABLE IF NOT EXISTS conversations (
|
|
30
|
+
id TEXT PRIMARY KEY,
|
|
31
|
+
agent_id TEXT,
|
|
32
|
+
agent_name TEXT,
|
|
33
|
+
messages TEXT NOT NULL,
|
|
34
|
+
created_at INTEGER DEFAULT (strftime('%s','now')),
|
|
35
|
+
updated_at INTEGER DEFAULT (strftime('%s','now'))
|
|
36
|
+
)`);
|
|
37
|
+
return db;
|
|
38
|
+
}
|
|
39
|
+
export function saveDb() {
|
|
40
|
+
if (!db)
|
|
41
|
+
return;
|
|
42
|
+
const data = db.export();
|
|
43
|
+
const buffer = Buffer.from(data);
|
|
44
|
+
if (!existsSync(DB_DIR))
|
|
45
|
+
mkdirSync(DB_DIR, { recursive: true, mode: 0o755 });
|
|
46
|
+
writeFileSync(DB_PATH, buffer);
|
|
47
|
+
}
|
|
48
|
+
// Embedding cache operations
|
|
49
|
+
export async function getCachedEmbedding(hash) {
|
|
50
|
+
const d = await getDb();
|
|
51
|
+
const result = d.exec(`SELECT vector FROM embeddings WHERE content_hash = ?`, [hash]);
|
|
52
|
+
if (result.length === 0 || result[0].values.length === 0)
|
|
53
|
+
return null;
|
|
54
|
+
const blob = result[0].values[0][0];
|
|
55
|
+
return new Float32Array(blob.buffer, blob.byteOffset, blob.byteLength / 4);
|
|
56
|
+
}
|
|
57
|
+
export async function setCachedEmbedding(hash, model, vector, textPreview) {
|
|
58
|
+
const d = await getDb();
|
|
59
|
+
const float32 = new Float32Array(vector);
|
|
60
|
+
const buffer = Buffer.from(float32.buffer);
|
|
61
|
+
d.run(`INSERT OR REPLACE INTO embeddings (content_hash, model, vector, text_preview) VALUES (?, ?, ?, ?)`, [hash, model, buffer, textPreview.slice(0, 200)]);
|
|
62
|
+
saveDb();
|
|
63
|
+
}
|
|
64
|
+
export async function getEmbeddingCacheSize() {
|
|
65
|
+
const d = await getDb();
|
|
66
|
+
const result = d.exec(`SELECT COUNT(*) FROM embeddings`);
|
|
67
|
+
return result[0]?.values[0]?.[0] ?? 0;
|
|
68
|
+
}
|
|
69
|
+
// Conversation operations
|
|
70
|
+
export async function saveConversation(id, agentId, agentName, messages) {
|
|
71
|
+
const d = await getDb();
|
|
72
|
+
d.run(`INSERT OR REPLACE INTO conversations (id, agent_id, agent_name, messages, updated_at) VALUES (?, ?, ?, ?, strftime('%s','now'))`, [id, agentId, agentName, JSON.stringify(messages)]);
|
|
73
|
+
saveDb();
|
|
74
|
+
}
|
|
75
|
+
export async function getConversation(id) {
|
|
76
|
+
const d = await getDb();
|
|
77
|
+
const result = d.exec(`SELECT id, agent_id, agent_name, messages FROM conversations WHERE id = ?`, [id]);
|
|
78
|
+
if (result.length === 0 || result[0].values.length === 0)
|
|
79
|
+
return null;
|
|
80
|
+
const row = result[0].values[0];
|
|
81
|
+
return { id: row[0], agentId: row[1], agentName: row[2], messages: JSON.parse(row[3]) };
|
|
82
|
+
}
|
|
83
|
+
export async function listConversations(limit = 50) {
|
|
84
|
+
const d = await getDb();
|
|
85
|
+
const result = d.exec(`SELECT id, agent_id, agent_name, messages, updated_at FROM conversations ORDER BY updated_at DESC LIMIT ?`, [limit]);
|
|
86
|
+
if (result.length === 0)
|
|
87
|
+
return [];
|
|
88
|
+
return result[0].values.map((row) => ({
|
|
89
|
+
id: row[0],
|
|
90
|
+
agentId: row[1],
|
|
91
|
+
agentName: row[2],
|
|
92
|
+
messageCount: JSON.parse(row[3]).length,
|
|
93
|
+
updatedAt: row[4],
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
export async function deleteConversation(id) {
|
|
97
|
+
const d = await getDb();
|
|
98
|
+
d.run(`DELETE FROM conversations WHERE id = ?`, [id]);
|
|
99
|
+
saveDb();
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=sqliteStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqliteStore.js","sourceRoot":"","sources":["../../../server/services/sqliteStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktreeManager.d.ts","sourceRoot":"","sources":["../../../server/services/worktreeManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"worktreeManager.d.ts","sourceRoot":"","sources":["../../../server/services/worktreeManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAyDD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CA4B7E;AAWD,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAQ3G;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAMxG;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAM/G;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAM1D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
2
|
import { existsSync, mkdirSync, readdirSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { tmpdir } from 'node:os';
|
|
@@ -22,11 +22,23 @@ function ensureDirs() {
|
|
|
22
22
|
mkdirSync(BARE_ROOT, { recursive: true });
|
|
23
23
|
mkdirSync(TREE_ROOT, { recursive: true });
|
|
24
24
|
}
|
|
25
|
+
function parseGitCommand(command) {
|
|
26
|
+
// Simple parser for git commands - splits on space but preserves quoted strings
|
|
27
|
+
const args = [];
|
|
28
|
+
const regex = /[^\s"]+|"([^"]*)"/g;
|
|
29
|
+
let match;
|
|
30
|
+
while ((match = regex.exec(command)) !== null) {
|
|
31
|
+
args.push(match[1] !== undefined ? match[1] : match[0]);
|
|
32
|
+
}
|
|
33
|
+
return args;
|
|
34
|
+
}
|
|
25
35
|
function run(command) {
|
|
26
|
-
|
|
36
|
+
const args = parseGitCommand(command);
|
|
37
|
+
execFileSync(args[0], args.slice(1), { stdio: 'pipe', timeout: 120_000 });
|
|
27
38
|
}
|
|
28
39
|
function runText(command) {
|
|
29
|
-
|
|
40
|
+
const args = parseGitCommand(command);
|
|
41
|
+
return execFileSync(args[0], args.slice(1), { stdio: 'pipe', timeout: 120_000 }).toString().trim();
|
|
30
42
|
}
|
|
31
43
|
function branchExists(gitDir, branch) {
|
|
32
44
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktreeManager.js","sourceRoot":"","sources":["../../../server/services/worktreeManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"worktreeManager.js","sourceRoot":"","sources":["../../../server/services/worktreeManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../server/config.ts","../server/index.ts","../server/types.ts","../server/mcp/manager.ts","../server/mcp/modular-server.ts","../server/mcp/transport.ts","../server/routes/agent-sdk.ts","../server/routes/agents.ts","../server/routes/auth-codex.ts","../server/routes/capabilities.ts","../server/routes/claude-config.ts","../server/routes/connectors.ts","../server/routes/embeddings.ts","../server/routes/health.ts","../server/routes/knowledge.ts","../server/routes/llm.ts","../server/routes/mcp-oauth.ts","../server/routes/mcp.ts","../server/routes/pipeline.ts","../server/routes/providers.ts","../server/routes/qualification.ts","../server/routes/repo-index.ts","../server/routes/runtime.ts","../server/routes/skills-search.ts","../server/routes/worktrees.ts","../server/services/agentrunner.ts","../server/services/agentstore.ts","../server/services/contentstore.ts","../server/services/embeddingservice.ts","../server/services/factextractor.ts","../server/services/githubindexer.ts","../server/services/mcpoauth.ts","../server/services/memoryscorer.ts","../server/services/repoindexer.ts","../server/services/teamrunner.ts","../server/services/worktreemanager.ts","../server/services/__tests__/embeddingservice.test.ts","../server/utils/pathsecurity.ts","../bin/modular-mcp.ts","../bin/modular-studio.ts"],"version":"5.9.3"}
|
|
1
|
+
{"root":["../server/config.ts","../server/index.ts","../server/types.ts","../server/mcp/manager.ts","../server/mcp/modular-server.ts","../server/mcp/transport.ts","../server/routes/agent-sdk.ts","../server/routes/agents.ts","../server/routes/auth-codex.ts","../server/routes/capabilities.ts","../server/routes/claude-config.ts","../server/routes/connectors.ts","../server/routes/conversations.ts","../server/routes/embeddings.ts","../server/routes/health.ts","../server/routes/knowledge.ts","../server/routes/llm.ts","../server/routes/mcp-oauth.ts","../server/routes/mcp.ts","../server/routes/pipeline.ts","../server/routes/providers.ts","../server/routes/qualification.ts","../server/routes/repo-index.ts","../server/routes/runtime.ts","../server/routes/skills-search.ts","../server/routes/worktrees.ts","../server/services/agentrunner.ts","../server/services/agentstore.ts","../server/services/contentstore.ts","../server/services/embeddingservice.ts","../server/services/factextractor.ts","../server/services/githubindexer.ts","../server/services/mcpoauth.ts","../server/services/memoryscorer.ts","../server/services/repoindexer.ts","../server/services/sqlitestore.ts","../server/services/teamrunner.ts","../server/services/worktreemanager.ts","../server/services/__tests__/embeddingservice.test.ts","../server/utils/pathsecurity.ts","../bin/modular-mcp.ts","../bin/modular-studio.ts"],"version":"5.9.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "modular-studio",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Context engineering IDE for AI agents. Design knowledge pipelines, not just prompts.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
"engines": {
|
|
17
17
|
"node": ">=18"
|
|
18
18
|
},
|
|
19
|
-
|
|
20
19
|
"keywords": [
|
|
21
20
|
"ai",
|
|
22
21
|
"agent",
|
|
@@ -68,6 +67,7 @@
|
|
|
68
67
|
"react-dom": "^19.2.0",
|
|
69
68
|
"react-markdown": "^10.1.0",
|
|
70
69
|
"remark-gfm": "^4.0.1",
|
|
70
|
+
"sql.js": "^1.14.1",
|
|
71
71
|
"zod": "^4.0.0",
|
|
72
72
|
"zustand": "^5.0.11"
|
|
73
73
|
},
|
|
@@ -80,6 +80,7 @@
|
|
|
80
80
|
"@types/node": "^24.10.1",
|
|
81
81
|
"@types/react": "^19.2.7",
|
|
82
82
|
"@types/react-dom": "^19.2.3",
|
|
83
|
+
"@types/sql.js": "^1.4.9",
|
|
83
84
|
"@vitejs/plugin-react": "^5.1.1",
|
|
84
85
|
"eslint": "^9.39.1",
|
|
85
86
|
"eslint-plugin-react-hooks": "^7.0.1",
|