studiograph 1.3.3-next.3 → 1.3.3-next.30
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/agent/orchestrator.d.ts +10 -0
- package/dist/agent/orchestrator.js +24 -5
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/skills/sync-configuration.md +1 -1
- package/dist/agent/tools/graph-tools.d.ts +5 -1
- package/dist/agent/tools/graph-tools.js +161 -9
- package/dist/agent/tools/graph-tools.js.map +1 -1
- package/dist/agent/tools/permission-tools.d.ts +15 -14
- package/dist/agent/tools/permission-tools.js +65 -128
- package/dist/agent/tools/permission-tools.js.map +1 -1
- package/dist/agent/tools/sync-tools.d.ts +6 -5
- package/dist/agent/tools/sync-tools.js +157 -168
- package/dist/agent/tools/sync-tools.js.map +1 -1
- package/dist/cli/commands/about.d.ts +13 -0
- package/dist/cli/commands/about.js +97 -0
- package/dist/cli/commands/about.js.map +1 -0
- package/dist/cli/commands/connector.js +24 -12
- package/dist/cli/commands/connector.js.map +1 -1
- package/dist/cli/commands/join.d.ts +3 -2
- package/dist/cli/commands/join.js +139 -97
- package/dist/cli/commands/join.js.map +1 -1
- package/dist/cli/commands/redeploy.js +14 -23
- package/dist/cli/commands/redeploy.js.map +1 -1
- package/dist/cli/commands/serve.d.ts +1 -1
- package/dist/cli/commands/serve.js +15 -10
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/start.js +1 -1
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/sync-collection.d.ts +14 -0
- package/dist/cli/commands/sync-collection.js +342 -0
- package/dist/cli/commands/sync-collection.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +4 -2
- package/dist/cli/commands/sync.js +517 -36
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/user.d.ts +7 -0
- package/dist/cli/commands/user.js +153 -0
- package/dist/cli/commands/user.js.map +1 -0
- package/dist/cli/index.js +15 -12
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/setup-wizard.js +1 -1
- package/dist/cli/setup-wizard.js.map +1 -1
- package/dist/core/graph.d.ts +8 -2
- package/dist/core/graph.js +11 -7
- package/dist/core/graph.js.map +1 -1
- package/dist/core/types.d.ts +65 -0
- package/dist/core/types.js +6 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/workspace-manager.js +1 -5
- package/dist/core/workspace-manager.js.map +1 -1
- package/dist/core/workspace.d.ts +15 -0
- package/dist/core/workspace.js +67 -2
- package/dist/core/workspace.js.map +1 -1
- package/dist/mcp/connector-manager.d.ts +38 -3
- package/dist/mcp/connector-manager.js +177 -31
- package/dist/mcp/connector-manager.js.map +1 -1
- package/dist/server/chrome/chrome.css +104 -28
- package/dist/server/chrome/chrome.js +24 -223
- package/dist/server/collab.d.ts +27 -0
- package/dist/server/collab.js +117 -0
- package/dist/server/collab.js.map +1 -0
- package/dist/server/commit-scheduler.d.ts +39 -0
- package/dist/server/commit-scheduler.js +113 -0
- package/dist/server/commit-scheduler.js.map +1 -0
- package/dist/server/index.js +160 -48
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/auth-api.d.ts +14 -0
- package/dist/server/routes/auth-api.js +218 -0
- package/dist/server/routes/auth-api.js.map +1 -0
- package/dist/server/routes/chat.js +4 -0
- package/dist/server/routes/chat.js.map +1 -1
- package/dist/server/routes/collab.d.ts +6 -0
- package/dist/server/routes/collab.js +10 -0
- package/dist/server/routes/collab.js.map +1 -0
- package/dist/server/routes/git-http.d.ts +23 -0
- package/dist/server/routes/git-http.js +235 -0
- package/dist/server/routes/git-http.js.map +1 -0
- package/dist/server/routes/graph-api.d.ts +6 -2
- package/dist/server/routes/graph-api.js +280 -69
- package/dist/server/routes/graph-api.js.map +1 -1
- package/dist/server/routes/mcp.d.ts +12 -0
- package/dist/server/routes/mcp.js +35 -0
- package/dist/server/routes/mcp.js.map +1 -0
- package/dist/server/routes/permissions-api.d.ts +5 -4
- package/dist/server/routes/permissions-api.js +39 -167
- package/dist/server/routes/permissions-api.js.map +1 -1
- package/dist/server/routes/sync-api.d.ts +22 -0
- package/dist/server/routes/sync-api.js +540 -0
- package/dist/server/routes/sync-api.js.map +1 -0
- package/dist/server/routes/ws.d.ts +7 -0
- package/dist/server/routes/ws.js +73 -0
- package/dist/server/routes/ws.js.map +1 -0
- package/dist/server/session-manager.d.ts +40 -0
- package/dist/server/session-manager.js +130 -0
- package/dist/server/session-manager.js.map +1 -0
- package/dist/server/ws-hub.d.ts +95 -0
- package/dist/server/ws-hub.js +174 -0
- package/dist/server/ws-hub.js.map +1 -0
- package/dist/services/auth-service.d.ts +97 -0
- package/dist/services/auth-service.js +366 -0
- package/dist/services/auth-service.js.map +1 -0
- package/dist/services/git.d.ts +6 -0
- package/dist/services/git.js +32 -2
- package/dist/services/git.js.map +1 -1
- package/dist/services/sync/collection-sync.d.ts +28 -0
- package/dist/services/sync/collection-sync.js +437 -0
- package/dist/services/sync/collection-sync.js.map +1 -0
- package/dist/services/sync/entity-refresh.d.ts +26 -0
- package/dist/services/sync/entity-refresh.js +203 -0
- package/dist/services/sync/entity-refresh.js.map +1 -0
- package/dist/services/sync/frontmatter-extractor.js +1 -1
- package/dist/services/sync/frontmatter-extractor.js.map +1 -1
- package/dist/services/sync/graph-match.js +1 -1
- package/dist/services/sync/graph-match.js.map +1 -1
- package/dist/services/sync/prompts.js +1 -1
- package/dist/services/sync/source-config.d.ts +23 -1
- package/dist/services/sync/source-config.js +110 -0
- package/dist/services/sync/source-config.js.map +1 -1
- package/dist/services/sync/types.d.ts +85 -0
- package/dist/services/sync/unstructured-extractor.d.ts +1 -3
- package/dist/services/sync/unstructured-extractor.js +2 -13
- package/dist/services/sync/unstructured-extractor.js.map +1 -1
- package/dist/utils/git.d.ts +33 -1
- package/dist/utils/git.js +121 -3
- package/dist/utils/git.js.map +1 -1
- package/dist/web/_app/immutable/assets/0.DuOWufPh.css +1 -0
- package/dist/web/_app/immutable/assets/3.CdwKLnx7.css +1 -0
- package/dist/web/_app/immutable/assets/4.DbhUbfxr.css +1 -0
- package/dist/web/_app/immutable/assets/6.CydFyZSu.css +1 -0
- package/dist/web/_app/immutable/assets/7.kqeOo0OW.css +1 -0
- package/dist/web/_app/immutable/assets/8.8BKiM7li.css +1 -0
- package/dist/web/_app/immutable/assets/9.BYpFDZHK.css +1 -0
- package/dist/web/_app/immutable/assets/AppShell.EyPUoNrB.css +1 -0
- package/dist/web/_app/immutable/assets/ChatPanel.CP-_8txt.css +1 -0
- package/dist/web/_app/immutable/assets/entity.Bjlko8oW.css +1 -0
- package/dist/web/_app/immutable/chunks/-39BWyb3.js +27 -0
- package/dist/web/_app/immutable/chunks/0oxpWEgM.js +1 -0
- package/dist/web/_app/immutable/chunks/B1y7Wy5O.js +18 -0
- package/dist/web/_app/immutable/chunks/BBLgaWN8.js +1 -0
- package/dist/web/_app/immutable/chunks/{aosHekRC.js → BPUy9_sS.js} +1 -1
- package/dist/web/_app/immutable/chunks/BVBRzmeQ.js +7 -0
- package/dist/web/_app/immutable/chunks/BV_9Nfp2.js +1 -0
- package/dist/web/_app/immutable/chunks/{CUzqHQY_.js → BXuvR8Ks.js} +2 -1
- package/dist/web/_app/immutable/chunks/Bk7i2AGK.js +5 -0
- package/dist/web/_app/immutable/chunks/BtDfMmbQ.js +2 -0
- package/dist/web/_app/immutable/chunks/ByFfmBEu.js +2 -0
- package/dist/web/_app/immutable/chunks/C2yiMM8r.js +1 -0
- package/dist/web/_app/immutable/chunks/CaITTL5o.js +2 -0
- package/dist/web/_app/immutable/chunks/CbGK39DG.js +1 -0
- package/dist/web/_app/immutable/chunks/CjKjQEMp.js +2 -0
- package/dist/web/_app/immutable/chunks/Ckx4jYQe.js +1 -0
- package/dist/web/_app/immutable/chunks/Cs5oz2oJ.js +5 -0
- package/dist/web/_app/immutable/chunks/D-tW7Byc.js +1 -0
- package/dist/web/_app/immutable/chunks/D1XwEsip.js +1 -0
- package/dist/web/_app/immutable/chunks/D2aTbzFm.js +3 -0
- package/dist/web/_app/immutable/chunks/DCWeodCf.js +1 -0
- package/dist/web/_app/immutable/chunks/DWSjaG46.js +1 -0
- package/dist/web/_app/immutable/chunks/Dpn7ZAUg.js +1 -0
- package/dist/web/_app/immutable/chunks/EhE2EcYu.js +1 -0
- package/dist/web/_app/immutable/chunks/{COwytaCP.js → eEhMI0BQ.js} +1 -1
- package/dist/web/_app/immutable/chunks/hpQsGwK7.js +64 -0
- package/dist/web/_app/immutable/chunks/skM3TIav.js +1 -0
- package/dist/web/_app/immutable/entry/app.Bu2h1WQz.js +2 -0
- package/dist/web/_app/immutable/entry/start.CdgNgxEr.js +1 -0
- package/dist/web/_app/immutable/nodes/0.BB0I5yeS.js +2 -0
- package/dist/web/_app/immutable/nodes/1.BjHclHrU.js +1 -0
- package/dist/web/_app/immutable/nodes/2.BO8rnQmW.js +1 -0
- package/dist/web/_app/immutable/nodes/3.JutPuG-c.js +1 -0
- package/dist/web/_app/immutable/nodes/4.BsyvXhOD.js +17 -0
- package/dist/web/_app/immutable/nodes/{5.yiQ5IVUD.js → 5.BtaUfo9C.js} +2 -2
- package/dist/web/_app/immutable/nodes/6.CuxX4rDV.js +2 -0
- package/dist/web/_app/immutable/nodes/7.DeJUeJ7G.js +1 -0
- package/dist/web/_app/immutable/nodes/8.DuH1H7GG.js +2 -0
- package/dist/web/_app/immutable/nodes/9.CfS9llWZ.js +1 -0
- package/dist/web/_app/version.json +1 -1
- package/dist/web/index.html +10 -12
- package/package.json +10 -1
- package/dist/web/_app/immutable/assets/0.CDbX4Cwz.css +0 -1
- package/dist/web/_app/immutable/assets/3.BJy7pVXi.css +0 -1
- package/dist/web/_app/immutable/assets/4.Ad16uh9o.css +0 -1
- package/dist/web/_app/immutable/assets/6.Bm2i7O0j.css +0 -1
- package/dist/web/_app/immutable/assets/AppShell.D0rmbdqF.css +0 -1
- package/dist/web/_app/immutable/assets/ChatPanel.RFD5GGYI.css +0 -1
- package/dist/web/_app/immutable/assets/editor.CPAf2SRV.css +0 -1
- package/dist/web/_app/immutable/chunks/4QY4j-jX.js +0 -1
- package/dist/web/_app/immutable/chunks/BJaUzy1N.js +0 -6
- package/dist/web/_app/immutable/chunks/Bopa-Ask.js +0 -1
- package/dist/web/_app/immutable/chunks/CraMUwsK.js +0 -23
- package/dist/web/_app/immutable/chunks/DEJSHbC3.js +0 -1
- package/dist/web/_app/immutable/chunks/DTUXhwEY.js +0 -1
- package/dist/web/_app/immutable/chunks/Dh_H7Owr.js +0 -18
- package/dist/web/_app/immutable/chunks/Dml-u95b.js +0 -2
- package/dist/web/_app/immutable/chunks/DnlgZ_Tk.js +0 -5
- package/dist/web/_app/immutable/chunks/DtVH--hH.js +0 -6
- package/dist/web/_app/immutable/chunks/DtYoIxhb.js +0 -1
- package/dist/web/_app/immutable/chunks/DvKVaE7M.js +0 -1
- package/dist/web/_app/immutable/chunks/MbiSz-iW.js +0 -2
- package/dist/web/_app/immutable/chunks/bSAC733J.js +0 -1
- package/dist/web/_app/immutable/chunks/wCoE3c9Q.js +0 -64
- package/dist/web/_app/immutable/entry/app.BOGGf-bg.js +0 -2
- package/dist/web/_app/immutable/entry/start.DNE4awt3.js +0 -1
- package/dist/web/_app/immutable/nodes/0.DfbCOBhn.js +0 -2
- package/dist/web/_app/immutable/nodes/1.D1n1UQ3X.js +0 -1
- package/dist/web/_app/immutable/nodes/2.B7Nn6aN0.js +0 -1
- package/dist/web/_app/immutable/nodes/3.DDclJha0.js +0 -1
- package/dist/web/_app/immutable/nodes/4.B35Eu5gV.js +0 -16
- package/dist/web/_app/immutable/nodes/6.BJzKSgHd.js +0 -2
|
@@ -9,6 +9,7 @@ import { WorkspaceManager } from '../core/workspace-manager.js';
|
|
|
9
9
|
import { WorkspaceConfig } from '../core/types.js';
|
|
10
10
|
import { GitUser } from '../services/git.js';
|
|
11
11
|
import { type MutationEvent } from './tools/graph-tools.js';
|
|
12
|
+
import type { AuthUser } from '../services/auth-service.js';
|
|
12
13
|
export interface AgentConfig {
|
|
13
14
|
workspacePath: string;
|
|
14
15
|
workspaceConfig: WorkspaceConfig;
|
|
@@ -19,6 +20,8 @@ export interface AgentConfig {
|
|
|
19
20
|
toolsDirs?: string[];
|
|
20
21
|
/** Recent daily memory content (today + yesterday) injected into system prompt. */
|
|
21
22
|
recentMemory?: string;
|
|
23
|
+
/** Shared WorkspaceManager instance (used by server to share state with agent). */
|
|
24
|
+
workspaceManager?: WorkspaceManager;
|
|
22
25
|
}
|
|
23
26
|
export interface AgentResponse {
|
|
24
27
|
content: string;
|
|
@@ -39,6 +42,8 @@ export declare class AgentOrchestrator {
|
|
|
39
42
|
private registryRef;
|
|
40
43
|
private _highlightCallback;
|
|
41
44
|
private _mutationCallback;
|
|
45
|
+
private _currentUser;
|
|
46
|
+
private authService;
|
|
42
47
|
private recentMemory?;
|
|
43
48
|
private currentSessionId;
|
|
44
49
|
private sessionsDir;
|
|
@@ -84,6 +89,11 @@ export declare class AgentOrchestrator {
|
|
|
84
89
|
* Get repository names
|
|
85
90
|
*/
|
|
86
91
|
getRepoNames(): string[];
|
|
92
|
+
/**
|
|
93
|
+
* Set the current authenticated user for per-collection access filtering.
|
|
94
|
+
* Called per-request by the chat endpoint. Null = full access (API key / open mode).
|
|
95
|
+
*/
|
|
96
|
+
setCurrentUser(user: AuthUser | null): void;
|
|
87
97
|
/**
|
|
88
98
|
* Set a callback for highlight_entities tool events (used by SSE streaming).
|
|
89
99
|
*/
|
|
@@ -22,6 +22,7 @@ import { buildConnectorRegistry, createConnectorTools } from './tools/connector-
|
|
|
22
22
|
import { createFsTools } from './tools/fs-tools.js';
|
|
23
23
|
import { createOpsTools } from './tools/ops-tools.js';
|
|
24
24
|
import { createPermissionTools } from './tools/permission-tools.js';
|
|
25
|
+
import { AuthService } from '../services/auth-service.js';
|
|
25
26
|
import { loadUserConfig, resolveApiKey, resolveProvider, resolveModelId } from '../core/user-config.js';
|
|
26
27
|
export class AgentOrchestrator {
|
|
27
28
|
workspacePath;
|
|
@@ -34,6 +35,8 @@ export class AgentOrchestrator {
|
|
|
34
35
|
registryRef = { registry: null };
|
|
35
36
|
_highlightCallback = null;
|
|
36
37
|
_mutationCallback = null;
|
|
38
|
+
_currentUser = null;
|
|
39
|
+
authService;
|
|
37
40
|
recentMemory;
|
|
38
41
|
currentSessionId = null;
|
|
39
42
|
sessionsDir;
|
|
@@ -42,6 +45,7 @@ export class AgentOrchestrator {
|
|
|
42
45
|
this.config = config.workspaceConfig;
|
|
43
46
|
this.gitUser = config.gitUser;
|
|
44
47
|
this.recentMemory = config.recentMemory;
|
|
48
|
+
this.authService = new AuthService(config.workspacePath);
|
|
45
49
|
this.sessionsDir = join(homedir(), '.studiograph', 'sessions');
|
|
46
50
|
// Priority (highest → lowest): user > workspace > bundled > app
|
|
47
51
|
// First-seen name wins in the loader, so earlier dirs override later ones.
|
|
@@ -52,8 +56,8 @@ export class AgentOrchestrator {
|
|
|
52
56
|
const bundledSkillsDir = join(__dirname, 'skills');
|
|
53
57
|
this.skillsDirs = [userSkillsDir, workspaceSkillsDir, bundledSkillsDir, ...(config.skillsDirs ?? [])];
|
|
54
58
|
this.toolsDirs = [userToolsDir, workspaceToolsDir, ...(config.toolsDirs ?? [])];
|
|
55
|
-
//
|
|
56
|
-
this.workspaceManager = new WorkspaceManager(this.workspacePath, this.config, this.gitUser);
|
|
59
|
+
// Use shared workspace manager if provided, otherwise create one
|
|
60
|
+
this.workspaceManager = config.workspaceManager ?? new WorkspaceManager(this.workspacePath, this.config, this.gitUser);
|
|
57
61
|
// Initialize Pi-Mono agent (async tools loaded in createAgent)
|
|
58
62
|
this.agent = this.createAgent();
|
|
59
63
|
}
|
|
@@ -74,11 +78,11 @@ export class AgentOrchestrator {
|
|
|
74
78
|
const skillIndex = loadSkillIndex(this.skillsDirs);
|
|
75
79
|
// Build tools first so we can auto-generate the tool reference for the prompt
|
|
76
80
|
const tools = [
|
|
77
|
-
...createGraphTools(this.workspaceManager, this.gitUser, this.workspacePath, this.emitHighlight.bind(this), this.emitMutation.bind(this)),
|
|
81
|
+
...createGraphTools(this.workspaceManager, this.gitUser, this.workspacePath, this.emitHighlight.bind(this), this.emitMutation.bind(this), () => this._currentUser, this.authService),
|
|
78
82
|
// Sync tools gated for MVP — re-enable when sync pipeline is production-ready
|
|
79
83
|
// ...createSyncTools(this.workspacePath, this.config, this.registryRef),
|
|
80
84
|
...createOpsTools(this.workspacePath, this.config),
|
|
81
|
-
...createPermissionTools(this.
|
|
85
|
+
...createPermissionTools(this.authService),
|
|
82
86
|
...createFsTools(),
|
|
83
87
|
createLoadSkillTool(skillIndex),
|
|
84
88
|
];
|
|
@@ -106,7 +110,7 @@ export class AgentOrchestrator {
|
|
|
106
110
|
const context = { workspaceManager: this.workspaceManager, gitUser: this.gitUser };
|
|
107
111
|
Promise.all([
|
|
108
112
|
loadCustomTools(this.toolsDirs, context),
|
|
109
|
-
ConnectorManager.buildTools(ConnectorManager.loadConfigs()),
|
|
113
|
+
ConnectorManager.buildTools(ConnectorManager.loadConfigs(this.workspacePath)),
|
|
110
114
|
]).then(([customTools, connectorTools]) => {
|
|
111
115
|
const extra = [...customTools];
|
|
112
116
|
if (connectorTools.length > 0) {
|
|
@@ -162,6 +166,14 @@ export class AgentOrchestrator {
|
|
|
162
166
|
.join('\n\n');
|
|
163
167
|
base = base.replace('{{TOOL_REFERENCE}}', toolRef);
|
|
164
168
|
const parts = [base.trim()];
|
|
169
|
+
// Inject workspace ABOUT.md as organizational context
|
|
170
|
+
const aboutPath = join(this.workspacePath, '.studiograph', 'ABOUT.md');
|
|
171
|
+
if (existsSync(aboutPath)) {
|
|
172
|
+
const aboutContent = readFileSync(aboutPath, 'utf-8');
|
|
173
|
+
if (aboutContent.trim()) {
|
|
174
|
+
parts.push(`## Workspace Identity\n\n${aboutContent}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
165
177
|
// Append workspace schema extensions (org-specific fields and custom types)
|
|
166
178
|
const schemaSection = this.workspaceManager.getSchemaRegistry().toPromptSection();
|
|
167
179
|
if (schemaSection) {
|
|
@@ -267,6 +279,13 @@ ${repoList}`;
|
|
|
267
279
|
getRepoNames() {
|
|
268
280
|
return this.workspaceManager.getRepoNames();
|
|
269
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* Set the current authenticated user for per-collection access filtering.
|
|
284
|
+
* Called per-request by the chat endpoint. Null = full access (API key / open mode).
|
|
285
|
+
*/
|
|
286
|
+
setCurrentUser(user) {
|
|
287
|
+
this._currentUser = user;
|
|
288
|
+
}
|
|
270
289
|
/**
|
|
271
290
|
* Set a callback for highlight_entities tool events (used by SSE streaming).
|
|
272
291
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/agent/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/agent/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,7 +93,7 @@ Writes entities as sub-content files inside a parent entity folder instead of st
|
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
**Result path:** `{target_repo}/{parent_id}/{subfolder}/{entity_id}.md`
|
|
96
|
-
Example: `projects/
|
|
96
|
+
Example: `projects/greenfield-museum-brand-refresh/tasks/sch-101.md`
|
|
97
97
|
|
|
98
98
|
**Rules:**
|
|
99
99
|
- `parent_field` must be a wikilink target in `field_map` so the reference is available
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
* - Upload assets
|
|
9
9
|
*/
|
|
10
10
|
import { WorkspaceManager } from '../../core/workspace-manager.js';
|
|
11
|
+
import type { AuthUser } from '../../services/auth-service.js';
|
|
12
|
+
import type { AuthService } from '../../services/auth-service.js';
|
|
11
13
|
/**
|
|
12
14
|
* Helper to wrap tool results in AgentToolResult format
|
|
13
15
|
*/
|
|
@@ -31,7 +33,7 @@ export declare function createGraphTools(workspaceManager: WorkspaceManager, git
|
|
|
31
33
|
id: string;
|
|
32
34
|
name: string;
|
|
33
35
|
email: string;
|
|
34
|
-
}, workspacePath?: string, onHighlight?: (ids: string[]) => void, onMutation?: (m: MutationEvent) => void): ({
|
|
36
|
+
}, workspacePath?: string, onHighlight?: (ids: string[]) => void, onMutation?: (m: MutationEvent) => void, getCurrentUser?: () => AuthUser | null, authService?: AuthService | null): ({
|
|
35
37
|
name: string;
|
|
36
38
|
label: string;
|
|
37
39
|
description: string;
|
|
@@ -50,10 +52,12 @@ export declare function createGraphTools(workspaceManager: WorkspaceManager, git
|
|
|
50
52
|
parameters: import("@sinclair/typebox").TObject<{
|
|
51
53
|
name: import("@sinclair/typebox").TString;
|
|
52
54
|
description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
55
|
+
private: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
53
56
|
}>;
|
|
54
57
|
execute: (toolCallId: string, params: {
|
|
55
58
|
name: string;
|
|
56
59
|
description?: string;
|
|
60
|
+
private?: boolean;
|
|
57
61
|
}) => Promise<{
|
|
58
62
|
content: {
|
|
59
63
|
type: "text";
|
|
@@ -30,7 +30,58 @@ function cleanData(data) {
|
|
|
30
30
|
const { entity_type, entity_id, ...rest } = data;
|
|
31
31
|
return rest;
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Per-request user context for collection access filtering.
|
|
35
|
+
* When getCurrentUser returns a non-admin user, tools filter results
|
|
36
|
+
* to only collections the user has been granted access to.
|
|
37
|
+
*/
|
|
38
|
+
/** Check if a user can see a private repo (only the owner can). */
|
|
39
|
+
function canSeePrivateRepo(repoConfig, user) {
|
|
40
|
+
if (!repoConfig?.private)
|
|
41
|
+
return true;
|
|
42
|
+
if (!user)
|
|
43
|
+
return !repoConfig.owner_id; // API key / open mode — only if no owner set
|
|
44
|
+
if (!repoConfig.owner_id)
|
|
45
|
+
return false; // Private without owner — hidden from all users
|
|
46
|
+
return user.id === repoConfig.owner_id;
|
|
47
|
+
}
|
|
48
|
+
function getAccessibleRepoNames(workspaceManager, getCurrentUser, authService) {
|
|
49
|
+
const user = getCurrentUser();
|
|
50
|
+
if (!user)
|
|
51
|
+
return null; // API key / open mode → no filtering
|
|
52
|
+
if (!authService)
|
|
53
|
+
return null;
|
|
54
|
+
const allRepos = workspaceManager.getAllRepoConfigs();
|
|
55
|
+
if (user.role === 'admin') {
|
|
56
|
+
// Admins see all non-private + their own private repos
|
|
57
|
+
const hidden = allRepos.filter(r => !canSeePrivateRepo(r, user)).map(r => r.name);
|
|
58
|
+
if (hidden.length === 0)
|
|
59
|
+
return null; // No filtering needed
|
|
60
|
+
const visible = new Set(allRepos.filter(r => canSeePrivateRepo(r, user)).map(r => r.name));
|
|
61
|
+
return visible;
|
|
62
|
+
}
|
|
63
|
+
const allowed = authService.getUserCollections(user.id);
|
|
64
|
+
const visible = allRepos.filter(r => canSeePrivateRepo(r, user) && (r.private && r.owner_id === user.id || allowed.includes(r.name)));
|
|
65
|
+
return new Set(visible.map(r => r.name));
|
|
66
|
+
}
|
|
67
|
+
function canAccessRepo(repoName, workspaceManager, getCurrentUser, authService) {
|
|
68
|
+
const user = getCurrentUser();
|
|
69
|
+
const repoConfig = workspaceManager.getRepoConfig(repoName);
|
|
70
|
+
if (!canSeePrivateRepo(repoConfig, user))
|
|
71
|
+
return false;
|
|
72
|
+
if (!user)
|
|
73
|
+
return true;
|
|
74
|
+
if (repoConfig?.private && repoConfig?.owner_id === user.id)
|
|
75
|
+
return true;
|
|
76
|
+
if (user.role === 'admin')
|
|
77
|
+
return true;
|
|
78
|
+
if (!authService)
|
|
79
|
+
return true;
|
|
80
|
+
return authService.getUserCollections(user.id).includes(repoName);
|
|
81
|
+
}
|
|
82
|
+
export function createGraphTools(workspaceManager, gitUser, workspacePath, onHighlight, onMutation, getCurrentUser, authService) {
|
|
83
|
+
const getUser = getCurrentUser ?? (() => null);
|
|
84
|
+
const authSvc = authService ?? null;
|
|
34
85
|
return [
|
|
35
86
|
// Create entity
|
|
36
87
|
{
|
|
@@ -53,6 +104,9 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
53
104
|
if (!repoName)
|
|
54
105
|
return wrapToolResult({ success: false, error: `repo is required — could not auto-resolve repo for type "${params.entityType}"` });
|
|
55
106
|
}
|
|
107
|
+
if (!canAccessRepo(repoName, workspaceManager, getUser, authSvc)) {
|
|
108
|
+
return wrapToolResult({ success: false, error: `Collection "${repoName}" not found` });
|
|
109
|
+
}
|
|
56
110
|
const graph = workspaceManager.getGraph(repoName);
|
|
57
111
|
// Workspace-level dedup: warn if an entity with this ID already exists elsewhere
|
|
58
112
|
const existing = workspaceManager.findEntityById(params.entityId);
|
|
@@ -111,6 +165,9 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
111
165
|
}),
|
|
112
166
|
execute: async (toolCallId, params) => {
|
|
113
167
|
try {
|
|
168
|
+
if (!canAccessRepo(params.repo, workspaceManager, getUser, authSvc)) {
|
|
169
|
+
return wrapToolResult({ success: false, error: `Collection "${params.repo}" not found` });
|
|
170
|
+
}
|
|
114
171
|
const graph = workspaceManager.getGraph(params.repo);
|
|
115
172
|
const entity = params.entityType
|
|
116
173
|
? graph.get(params.entityType, params.entityId)
|
|
@@ -157,6 +214,9 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
157
214
|
if (!repoName)
|
|
158
215
|
return wrapToolResult({ success: false, error: `repo is required — could not auto-resolve repo for type "${params.entityType}"` });
|
|
159
216
|
}
|
|
217
|
+
if (!canAccessRepo(repoName, workspaceManager, getUser, authSvc)) {
|
|
218
|
+
return wrapToolResult({ success: false, error: `Collection "${repoName}" not found` });
|
|
219
|
+
}
|
|
160
220
|
const graph = workspaceManager.getGraph(repoName);
|
|
161
221
|
// Add update metadata
|
|
162
222
|
const dataWithMeta = params.data
|
|
@@ -215,6 +275,9 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
215
275
|
if (!repoName)
|
|
216
276
|
return wrapToolResult({ success: false, error: `repo is required — could not auto-resolve repo for type "${params.entityType}"` });
|
|
217
277
|
}
|
|
278
|
+
if (!canAccessRepo(repoName, workspaceManager, getUser, authSvc)) {
|
|
279
|
+
return wrapToolResult({ success: false, error: `Collection "${repoName}" not found` });
|
|
280
|
+
}
|
|
218
281
|
const graph = workspaceManager.getGraph(repoName);
|
|
219
282
|
await graph.delete(params.entityType, params.entityId, params.commitMessage);
|
|
220
283
|
onMutation?.({ action: 'deleted', repo: repoName, entityType: params.entityType, entityId: params.entityId });
|
|
@@ -245,6 +308,12 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
245
308
|
}),
|
|
246
309
|
execute: async (toolCallId, params) => {
|
|
247
310
|
try {
|
|
311
|
+
if (!canAccessRepo(params.sourceRepo, workspaceManager, getUser, authSvc)) {
|
|
312
|
+
return wrapToolResult({ success: false, error: `Collection "${params.sourceRepo}" not found` });
|
|
313
|
+
}
|
|
314
|
+
if (!canAccessRepo(params.targetRepo, workspaceManager, getUser, authSvc)) {
|
|
315
|
+
return wrapToolResult({ success: false, error: `Collection "${params.targetRepo}" not found` });
|
|
316
|
+
}
|
|
248
317
|
const sourceGraph = workspaceManager.getGraph(params.sourceRepo);
|
|
249
318
|
const targetGraph = workspaceManager.getGraph(params.targetRepo);
|
|
250
319
|
// Read the full entity from source
|
|
@@ -295,10 +364,18 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
295
364
|
}),
|
|
296
365
|
execute: async (toolCallId, params) => {
|
|
297
366
|
try {
|
|
367
|
+
// Scope search to accessible collections
|
|
368
|
+
const allowed = getAccessibleRepoNames(workspaceManager, getUser, authSvc);
|
|
369
|
+
let repoNames = params.repoNames;
|
|
370
|
+
if (allowed) {
|
|
371
|
+
repoNames = repoNames
|
|
372
|
+
? repoNames.filter((r) => allowed.has(r))
|
|
373
|
+
: [...allowed];
|
|
374
|
+
}
|
|
298
375
|
const results = await workspaceManager.search({
|
|
299
376
|
query: params.query,
|
|
300
377
|
entityType: params.entityType,
|
|
301
|
-
repoNames
|
|
378
|
+
repoNames,
|
|
302
379
|
visibility: params.visibility,
|
|
303
380
|
tags: params.tags,
|
|
304
381
|
dateRange: params.dateRange,
|
|
@@ -335,7 +412,12 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
335
412
|
}),
|
|
336
413
|
execute: async (toolCallId, params) => {
|
|
337
414
|
try {
|
|
338
|
-
|
|
415
|
+
let results = workspaceManager.list(params.entityType, params.limit);
|
|
416
|
+
// Filter to accessible collections
|
|
417
|
+
const allowed = getAccessibleRepoNames(workspaceManager, getUser, authSvc);
|
|
418
|
+
if (allowed) {
|
|
419
|
+
results = results.filter(r => allowed.has(r.repoName));
|
|
420
|
+
}
|
|
339
421
|
return wrapToolResult({
|
|
340
422
|
success: true,
|
|
341
423
|
count: results.length,
|
|
@@ -367,7 +449,15 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
367
449
|
}),
|
|
368
450
|
execute: async (toolCallId, params) => {
|
|
369
451
|
try {
|
|
370
|
-
|
|
452
|
+
if (!canAccessRepo(params.repo, workspaceManager, getUser, authSvc)) {
|
|
453
|
+
return wrapToolResult({ success: false, error: `Collection "${params.repo}" not found` });
|
|
454
|
+
}
|
|
455
|
+
let related = workspaceManager.getRelated(params.repo, params.entityType, params.entityId);
|
|
456
|
+
// Filter cross-collection results to accessible repos
|
|
457
|
+
const allowed = getAccessibleRepoNames(workspaceManager, getUser, authSvc);
|
|
458
|
+
if (allowed) {
|
|
459
|
+
related = related.filter(r => allowed.has(r.repoName));
|
|
460
|
+
}
|
|
371
461
|
return wrapToolResult({
|
|
372
462
|
success: true,
|
|
373
463
|
count: related.length,
|
|
@@ -399,7 +489,15 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
399
489
|
}),
|
|
400
490
|
execute: async (toolCallId, params) => {
|
|
401
491
|
try {
|
|
402
|
-
|
|
492
|
+
if (!canAccessRepo(params.repo, workspaceManager, getUser, authSvc)) {
|
|
493
|
+
return wrapToolResult({ success: false, error: `Collection "${params.repo}" not found` });
|
|
494
|
+
}
|
|
495
|
+
let backlinks = workspaceManager.getBacklinks(params.repo, params.entityType, params.entityId);
|
|
496
|
+
// Filter cross-collection results to accessible repos
|
|
497
|
+
const allowed = getAccessibleRepoNames(workspaceManager, getUser, authSvc);
|
|
498
|
+
if (allowed) {
|
|
499
|
+
backlinks = backlinks.filter(r => allowed.has(r.repoName));
|
|
500
|
+
}
|
|
403
501
|
return wrapToolResult({
|
|
404
502
|
success: true,
|
|
405
503
|
count: backlinks.length,
|
|
@@ -431,6 +529,9 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
431
529
|
}),
|
|
432
530
|
execute: async (toolCallId, params) => {
|
|
433
531
|
try {
|
|
532
|
+
if (!canAccessRepo(params.repo, workspaceManager, getUser, authSvc)) {
|
|
533
|
+
return wrapToolResult({ success: false, error: `Collection "${params.repo}" not found` });
|
|
534
|
+
}
|
|
434
535
|
const validation = workspaceManager.validateWikilinks(params.repo, params.entityType, params.entityId);
|
|
435
536
|
return wrapToolResult({
|
|
436
537
|
success: true,
|
|
@@ -462,6 +563,26 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
462
563
|
execute: async (toolCallId, params) => {
|
|
463
564
|
try {
|
|
464
565
|
const summary = workspaceManager.getSummary();
|
|
566
|
+
const allowed = getAccessibleRepoNames(workspaceManager, getUser, authSvc);
|
|
567
|
+
if (allowed) {
|
|
568
|
+
// Filter summary to accessible collections only
|
|
569
|
+
const filteredByRepo = {};
|
|
570
|
+
let filteredTotal = 0;
|
|
571
|
+
for (const [repo, count] of Object.entries(summary.entitiesByRepo)) {
|
|
572
|
+
if (allowed.has(repo)) {
|
|
573
|
+
filteredByRepo[repo] = count;
|
|
574
|
+
filteredTotal += count;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
return wrapToolResult({
|
|
578
|
+
success: true,
|
|
579
|
+
summary: {
|
|
580
|
+
totalCollections: allowed.size,
|
|
581
|
+
totalEntities: filteredTotal,
|
|
582
|
+
entitiesByCollection: filteredByRepo,
|
|
583
|
+
},
|
|
584
|
+
});
|
|
585
|
+
}
|
|
465
586
|
return wrapToolResult({
|
|
466
587
|
success: true,
|
|
467
588
|
summary: {
|
|
@@ -488,7 +609,11 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
488
609
|
parameters: T.Object({}),
|
|
489
610
|
execute: async (toolCallId, params) => {
|
|
490
611
|
try {
|
|
491
|
-
|
|
612
|
+
let repos = workspaceManager.getAllRepoConfigs();
|
|
613
|
+
const allowed = getAccessibleRepoNames(workspaceManager, getUser, authSvc);
|
|
614
|
+
if (allowed) {
|
|
615
|
+
repos = repos.filter(r => allowed.has(r.name));
|
|
616
|
+
}
|
|
492
617
|
return wrapToolResult({
|
|
493
618
|
success: true,
|
|
494
619
|
count: repos.length,
|
|
@@ -513,13 +638,19 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
513
638
|
{
|
|
514
639
|
name: 'create_collection',
|
|
515
640
|
label: 'Create Collection',
|
|
516
|
-
description: 'Create a new collection in the workspace. A collection is a git-backed container for entities.',
|
|
641
|
+
description: 'Create a new collection in the workspace. A collection is a git-backed container for entities. Private collections are only visible to the creating user.',
|
|
517
642
|
parameters: T.Object({
|
|
518
643
|
name: T.String({ description: 'Collection name in kebab-case (e.g., "client-projects")' }),
|
|
519
644
|
description: T.Optional(T.String({ description: 'Short description of the collection' })),
|
|
645
|
+
private: T.Optional(T.Boolean({ description: 'If true, creates a private collection visible only to you' })),
|
|
520
646
|
}),
|
|
521
647
|
execute: async (toolCallId, params) => {
|
|
522
648
|
try {
|
|
649
|
+
const user = getUser();
|
|
650
|
+
// Non-private collections require admin; private collections can be created by anyone
|
|
651
|
+
if (!params.private && user && user.role !== 'admin') {
|
|
652
|
+
return wrapToolResult({ success: false, error: 'Only admins can create collections' });
|
|
653
|
+
}
|
|
523
654
|
if (!/^[a-z0-9][a-z0-9-]*$/.test(params.name)) {
|
|
524
655
|
return wrapToolResult({ success: false, error: 'Collection name must be kebab-case (lowercase letters, numbers, hyphens)' });
|
|
525
656
|
}
|
|
@@ -528,6 +659,8 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
528
659
|
const repo = await workspace.registerRepo({
|
|
529
660
|
name: params.name,
|
|
530
661
|
description: params.description,
|
|
662
|
+
private: params.private,
|
|
663
|
+
...(params.private && user ? { owner_id: user.id } : {}),
|
|
531
664
|
});
|
|
532
665
|
// Reload workspace manager to pick up the new collection
|
|
533
666
|
workspaceManager.reloadConfig();
|
|
@@ -555,6 +688,9 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
555
688
|
}),
|
|
556
689
|
execute: async (toolCallId, params) => {
|
|
557
690
|
try {
|
|
691
|
+
if (!canAccessRepo(params.repo, workspaceManager, getUser, authSvc)) {
|
|
692
|
+
return wrapToolResult({ success: false, error: `Collection "${params.repo}" not found` });
|
|
693
|
+
}
|
|
558
694
|
const graph = workspaceManager.getGraph(params.repo);
|
|
559
695
|
const entity = graph.get('dataset', params.entityId);
|
|
560
696
|
const schema = entity.data.schema;
|
|
@@ -591,6 +727,9 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
591
727
|
}),
|
|
592
728
|
execute: async (toolCallId, params) => {
|
|
593
729
|
try {
|
|
730
|
+
if (!canAccessRepo(params.repo, workspaceManager, getUser, authSvc)) {
|
|
731
|
+
return wrapToolResult({ success: false, error: `Collection "${params.repo}" not found` });
|
|
732
|
+
}
|
|
594
733
|
const graph = workspaceManager.getGraph(params.repo);
|
|
595
734
|
// Get current row count before appending
|
|
596
735
|
const beforeRows = graph.getDatasetRows(params.entityId);
|
|
@@ -664,10 +803,17 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
664
803
|
}),
|
|
665
804
|
execute: async (toolCallId, params) => {
|
|
666
805
|
try {
|
|
667
|
-
|
|
806
|
+
if (params.repo && !canAccessRepo(params.repo, workspaceManager, getUser, authSvc)) {
|
|
807
|
+
return wrapToolResult({ success: false, error: `Collection "${params.repo}" not found` });
|
|
808
|
+
}
|
|
809
|
+
let issues = await lintWorkspace(workspaceManager, {
|
|
668
810
|
repo: params.repo,
|
|
669
811
|
entityType: params.entityType,
|
|
670
812
|
});
|
|
813
|
+
const allowed = getAccessibleRepoNames(workspaceManager, getUser, authSvc);
|
|
814
|
+
if (allowed) {
|
|
815
|
+
issues = issues.filter(i => allowed.has(i.repo));
|
|
816
|
+
}
|
|
671
817
|
// Group by entity type for easier reading
|
|
672
818
|
const grouped = new Map();
|
|
673
819
|
for (const issue of issues) {
|
|
@@ -713,10 +859,16 @@ export function createGraphTools(workspaceManager, gitUser, workspacePath, onHig
|
|
|
713
859
|
}),
|
|
714
860
|
execute: async (toolCallId, params) => {
|
|
715
861
|
try {
|
|
862
|
+
// Scope to accessible collections
|
|
863
|
+
const allowed = getAccessibleRepoNames(workspaceManager, getUser, authSvc);
|
|
864
|
+
let repos = params.repos;
|
|
865
|
+
if (allowed) {
|
|
866
|
+
repos = repos ? repos.filter((r) => allowed.has(r)) : [...allowed];
|
|
867
|
+
}
|
|
716
868
|
const result = findOrphans(workspaceManager, {
|
|
717
869
|
entityTypes: params.entityTypes,
|
|
718
870
|
minAgeDays: params.minAgeDays,
|
|
719
|
-
repos
|
|
871
|
+
repos,
|
|
720
872
|
});
|
|
721
873
|
// Tombstone if requested
|
|
722
874
|
if (params.tombstone && workspacePath && result.orphans.length > 0) {
|