studiograph 1.1.1 → 1.1.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/LICENSE +191 -0
- package/README.md +307 -10
- package/dist/agent/orchestrator.d.ts +17 -9
- package/dist/agent/orchestrator.js +95 -95
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/prompts/system.md +168 -0
- package/dist/agent/skills/bundled/enrich-entities.md +124 -0
- package/dist/agent/skills/bundled/gather-context.md +46 -0
- package/dist/agent/skills/skill-loader.d.ts +48 -0
- package/dist/agent/skills/skill-loader.js +166 -0
- package/dist/agent/skills/skill-loader.js.map +1 -0
- package/dist/agent/tools/graph-tools.d.ts +20 -2
- package/dist/agent/tools/graph-tools.js +64 -8
- package/dist/agent/tools/graph-tools.js.map +1 -1
- package/dist/agent/tools/load-skill.d.ts +42 -0
- package/dist/agent/tools/load-skill.js +45 -0
- package/dist/agent/tools/load-skill.js.map +1 -0
- package/dist/agent/tools/tool-loader.d.ts +25 -0
- package/dist/agent/tools/tool-loader.js +73 -0
- package/dist/agent/tools/tool-loader.js.map +1 -0
- package/dist/cli/commands/app.d.ts +7 -0
- package/dist/cli/commands/app.js +167 -0
- package/dist/cli/commands/app.js.map +1 -0
- package/dist/cli/commands/config.d.ts +13 -0
- package/dist/cli/commands/config.js +276 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/connector.d.ts +33 -0
- package/dist/cli/commands/connector.js +170 -0
- package/dist/cli/commands/connector.js.map +1 -0
- package/dist/cli/commands/deploy.d.ts +11 -0
- package/dist/cli/commands/deploy.js +153 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/index.d.ts +15 -0
- package/dist/cli/commands/index.js +117 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.js +110 -28
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/join.js +67 -22
- package/dist/cli/commands/join.js.map +1 -1
- package/dist/cli/commands/lint.d.ts +8 -0
- package/dist/cli/commands/lint.js +70 -0
- package/dist/cli/commands/lint.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +27 -0
- package/dist/cli/commands/mcp.js +56 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/provision.d.ts +8 -0
- package/dist/cli/commands/provision.js +112 -0
- package/dist/cli/commands/provision.js.map +1 -0
- package/dist/cli/commands/r2.d.ts +2 -0
- package/dist/cli/commands/r2.js +186 -4
- package/dist/cli/commands/r2.js.map +1 -1
- package/dist/cli/commands/serve.js +47 -2
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/start.js +210 -71
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/sync.js +4 -4
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/update.d.ts +8 -0
- package/dist/cli/commands/update.js +155 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/index.js +83 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/scaffolding.d.ts +9 -0
- package/dist/cli/scaffolding.js +288 -0
- package/dist/cli/scaffolding.js.map +1 -0
- package/dist/core/graph.d.ts +12 -1
- package/dist/core/graph.js +147 -78
- package/dist/core/graph.js.map +1 -1
- package/dist/core/migration-runner.d.ts +39 -0
- package/dist/core/migration-runner.js +221 -0
- package/dist/core/migration-runner.js.map +1 -0
- package/dist/core/migration-types.d.ts +101 -0
- package/dist/core/migration-types.js +21 -0
- package/dist/core/migration-types.js.map +1 -0
- package/dist/core/migrations/20260219-formalize-memory-location.d.ts +2 -0
- package/dist/core/migrations/20260219-formalize-memory-location.js +35 -0
- package/dist/core/migrations/20260219-formalize-memory-location.js.map +1 -0
- package/dist/core/migrations/20260220-add-workspace-metadata.d.ts +12 -0
- package/dist/core/migrations/20260220-add-workspace-metadata.js +65 -0
- package/dist/core/migrations/20260220-add-workspace-metadata.js.map +1 -0
- package/dist/core/migrations/20260220-add-workspace-readme.d.ts +11 -0
- package/dist/core/migrations/20260220-add-workspace-readme.js +82 -0
- package/dist/core/migrations/20260220-add-workspace-readme.js.map +1 -0
- package/dist/core/migrations/20260220-migrate-yaml-to-json.d.ts +9 -0
- package/dist/core/migrations/20260220-migrate-yaml-to-json.js +64 -0
- package/dist/core/migrations/20260220-migrate-yaml-to-json.js.map +1 -0
- package/dist/core/migrations/index.d.ts +11 -0
- package/dist/core/migrations/index.js +23 -0
- package/dist/core/migrations/index.js.map +1 -0
- package/dist/core/schema-registry.d.ts +36 -0
- package/dist/core/schema-registry.js +161 -0
- package/dist/core/schema-registry.js.map +1 -0
- package/dist/core/types.d.ts +242 -0
- package/dist/core/types.js +21 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/user-config.d.ts +10 -0
- package/dist/core/user-config.js +8 -0
- package/dist/core/user-config.js.map +1 -1
- package/dist/core/validation.d.ts +973 -32
- package/dist/core/validation.js +163 -4
- package/dist/core/validation.js.map +1 -1
- package/dist/core/workspace-manager.d.ts +26 -2
- package/dist/core/workspace-manager.js +113 -15
- package/dist/core/workspace-manager.js.map +1 -1
- package/dist/core/workspace.d.ts +8 -7
- package/dist/core/workspace.js +25 -13
- package/dist/core/workspace.js.map +1 -1
- package/dist/mcp/connector-manager.d.ts +61 -0
- package/dist/mcp/connector-manager.js +178 -0
- package/dist/mcp/connector-manager.js.map +1 -0
- package/dist/mcp/connectors/definitions.d.ts +43 -0
- package/dist/mcp/connectors/definitions.js +140 -0
- package/dist/mcp/connectors/definitions.js.map +1 -0
- package/dist/mcp/server.d.ts +11 -0
- package/dist/mcp/server.js +28 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +14 -0
- package/dist/mcp/tools.js +172 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/server/index.js +17 -4
- package/dist/server/index.js.map +1 -1
- package/dist/server/plugin-loader.d.ts +8 -0
- package/dist/server/plugin-loader.js +14 -0
- package/dist/server/plugin-loader.js.map +1 -1
- package/dist/server/routes/graph-api.js +1 -1
- package/dist/server/routes/graph-api.js.map +1 -1
- package/dist/server/routes/webhook.js +33 -0
- package/dist/server/routes/webhook.js.map +1 -1
- package/dist/services/github-provisioner.d.ts +1 -0
- package/dist/services/github-provisioner.js +11 -0
- package/dist/services/github-provisioner.js.map +1 -1
- package/dist/services/lint-service.d.ts +27 -0
- package/dist/services/lint-service.js +76 -0
- package/dist/services/lint-service.js.map +1 -0
- package/dist/services/markdown.d.ts +9 -0
- package/dist/services/markdown.js +23 -2
- package/dist/services/markdown.js.map +1 -1
- package/dist/services/memory-service.d.ts +1 -2
- package/dist/services/memory-service.js +6 -4
- package/dist/services/memory-service.js.map +1 -1
- package/dist/services/vector-service.d.ts +77 -0
- package/dist/services/vector-service.js +280 -0
- package/dist/services/vector-service.js.map +1 -0
- package/dist/utils/version-checker.d.ts +23 -0
- package/dist/utils/version-checker.js +116 -0
- package/dist/utils/version-checker.js.map +1 -0
- package/package.json +10 -6
|
@@ -10,6 +10,7 @@ import { join } from 'path';
|
|
|
10
10
|
/**
|
|
11
11
|
* Provision all repos in a workspace on GitHub, then push local content.
|
|
12
12
|
* Updates github_url in workspace.json for each repo created.
|
|
13
|
+
* Also provisions the .studiograph config directory as a separate repo.
|
|
13
14
|
*/
|
|
14
15
|
export async function provisionWorkspace(options) {
|
|
15
16
|
const { octokit, org, workspacePath, config, onProgress } = options;
|
|
@@ -17,6 +18,7 @@ export async function provisionWorkspace(options) {
|
|
|
17
18
|
...config,
|
|
18
19
|
repos: [...config.repos],
|
|
19
20
|
};
|
|
21
|
+
// Provision content repos
|
|
20
22
|
for (let i = 0; i < updatedConfig.repos.length; i++) {
|
|
21
23
|
const repo = updatedConfig.repos[i];
|
|
22
24
|
const isPublic = repo.access === 'public';
|
|
@@ -28,6 +30,15 @@ export async function provisionWorkspace(options) {
|
|
|
28
30
|
initAndPush(localPath, cloneUrl);
|
|
29
31
|
updatedConfig.repos[i] = { ...repo, github_url: cloneUrl };
|
|
30
32
|
}
|
|
33
|
+
// Provision .studiograph config repo
|
|
34
|
+
const configRepoName = `${config.team_name.toLowerCase().replace(/[^a-z0-9]+/g, '-')}-config`;
|
|
35
|
+
onProgress?.(`Creating config repo ${org}/${configRepoName}...`);
|
|
36
|
+
const configCloneUrl = await createGitHubRepo(octokit, org, configRepoName, true, // Config repo is always private
|
|
37
|
+
`Studiograph workspace configuration for ${config.team_name}`);
|
|
38
|
+
const configPath = join(workspacePath, '.studiograph');
|
|
39
|
+
onProgress?.(`Pushing .studiograph config...`);
|
|
40
|
+
initAndPush(configPath, configCloneUrl);
|
|
41
|
+
onProgress?.(`✓ All repos provisioned. Config repo: ${configCloneUrl}`);
|
|
31
42
|
return updatedConfig;
|
|
32
43
|
}
|
|
33
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-provisioner.js","sourceRoot":"","sources":["../../src/services/github-provisioner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B
|
|
1
|
+
{"version":3,"file":"github-provisioner.js","sourceRoot":"","sources":["../../src/services/github-provisioner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Linting Service
|
|
3
|
+
*
|
|
4
|
+
* Schema-aware completeness checking — identifies entities with missing
|
|
5
|
+
* recommended fields.
|
|
6
|
+
*/
|
|
7
|
+
import { WorkspaceManager } from '../core/workspace-manager.js';
|
|
8
|
+
/**
|
|
9
|
+
* Recommended fields per entity type.
|
|
10
|
+
* These are fields that should typically be present but aren't Zod-required.
|
|
11
|
+
*/
|
|
12
|
+
export declare const RECOMMENDED_FIELDS: Record<string, string[]>;
|
|
13
|
+
export interface LintIssue {
|
|
14
|
+
repo: string;
|
|
15
|
+
entityType: string;
|
|
16
|
+
entityId: string;
|
|
17
|
+
missingFields: string[];
|
|
18
|
+
}
|
|
19
|
+
export interface LintFilters {
|
|
20
|
+
repo?: string;
|
|
21
|
+
entityType?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Lint all entities in the workspace for missing recommended fields.
|
|
25
|
+
* Returns a list of issues grouped by entity.
|
|
26
|
+
*/
|
|
27
|
+
export declare function lintWorkspace(manager: WorkspaceManager, filters?: LintFilters): Promise<LintIssue[]>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Linting Service
|
|
3
|
+
*
|
|
4
|
+
* Schema-aware completeness checking — identifies entities with missing
|
|
5
|
+
* recommended fields.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Recommended fields per entity type.
|
|
9
|
+
* These are fields that should typically be present but aren't Zod-required.
|
|
10
|
+
*/
|
|
11
|
+
export const RECOMMENDED_FIELDS = {
|
|
12
|
+
project: ['client', 'start_date', 'end_date', 'status'],
|
|
13
|
+
meeting: ['attendees', 'project'],
|
|
14
|
+
decision: ['decision_makers', 'context', 'decision', 'rationale'],
|
|
15
|
+
task: ['assignee', 'due_date', 'status'],
|
|
16
|
+
brief: ['client', 'objectives'],
|
|
17
|
+
artifact: ['deliverable', 'project'],
|
|
18
|
+
deliverable: ['project', 'artifacts', 'due_date'],
|
|
19
|
+
deal: ['deal_value', 'expected_close', 'client'],
|
|
20
|
+
proposal: ['client', 'fees', 'scope'],
|
|
21
|
+
person: ['organization', 'email', 'department'],
|
|
22
|
+
client: ['contacts', 'status'],
|
|
23
|
+
'financial-plan': ['budget', 'fiscal_year'],
|
|
24
|
+
vendor: ['contact_name', 'services'],
|
|
25
|
+
role: ['department', 'level', 'type'],
|
|
26
|
+
'practice-area': ['description', 'capabilities'],
|
|
27
|
+
'case-study': ['client', 'year', 'practice_areas'],
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Lint all entities in the workspace for missing recommended fields.
|
|
31
|
+
* Returns a list of issues grouped by entity.
|
|
32
|
+
*/
|
|
33
|
+
export async function lintWorkspace(manager, filters) {
|
|
34
|
+
const issues = [];
|
|
35
|
+
// Get repos to scan (filtered or all)
|
|
36
|
+
const allRepos = manager.getAllRepoConfigs();
|
|
37
|
+
const repos = filters?.repo
|
|
38
|
+
? allRepos.filter(r => r.name === filters.repo)
|
|
39
|
+
: allRepos;
|
|
40
|
+
// Get entity types to check (filtered or all)
|
|
41
|
+
const entityTypes = filters?.entityType
|
|
42
|
+
? [filters.entityType]
|
|
43
|
+
: Object.keys(RECOMMENDED_FIELDS);
|
|
44
|
+
for (const repoConfig of repos) {
|
|
45
|
+
const graph = manager.getGraph(repoConfig.name);
|
|
46
|
+
for (const entityType of entityTypes) {
|
|
47
|
+
try {
|
|
48
|
+
const entityFiles = await graph.list(entityType);
|
|
49
|
+
for (const entityFile of entityFiles) {
|
|
50
|
+
const recommended = RECOMMENDED_FIELDS[entityType];
|
|
51
|
+
if (!recommended)
|
|
52
|
+
continue;
|
|
53
|
+
const entityData = entityFile.data;
|
|
54
|
+
const missing = recommended.filter(field => {
|
|
55
|
+
const value = entityData[field];
|
|
56
|
+
return value === undefined || value === null || value === '';
|
|
57
|
+
});
|
|
58
|
+
if (missing.length > 0) {
|
|
59
|
+
issues.push({
|
|
60
|
+
repo: repoConfig.name,
|
|
61
|
+
entityType,
|
|
62
|
+
entityId: entityFile.id,
|
|
63
|
+
missingFields: missing,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
// Entity type might not exist in this repo — skip
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return issues;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=lint-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint-service.js","sourceRoot":"","sources":["../../src/services/lint-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC;IACvD,OAAO,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;IACjC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;IACjE,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC;IACxC,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;IAC/B,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;IACpC,WAAW,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC;IACjD,IAAI,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,QAAQ,CAAC;IAChD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;IACrC,MAAM,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC;IAC/C,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC9B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;IAC3C,MAAM,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC;IACpC,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;IACrC,eAAe,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;IAChD,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC;CACnD,CAAC;AAcF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAyB,EACzB,OAAqB;IAErB,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,sCAAsC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI;QACzB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;QAC/C,CAAC,CAAC,QAAQ,CAAC;IAEb,8CAA8C;IAC9C,MAAM,WAAW,GAAG,OAAO,EAAE,UAAU;QACrC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACtB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAEpC,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEhD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAiB,CAAC,CAAC;gBAExD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;oBACrC,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;oBACnD,IAAI,CAAC,WAAW;wBAAE,SAAS;oBAE3B,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;oBACnC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;wBACzC,MAAM,KAAK,GAAI,UAAkB,CAAC,KAAK,CAAC,CAAC;wBACzC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC/D,CAAC,CAAC,CAAC;oBAEH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,UAAU,CAAC,IAAI;4BACrB,UAAU;4BACV,QAAQ,EAAE,UAAU,CAAC,EAAE;4BACvB,aAAa,EAAE,OAAO;yBACvB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kDAAkD;gBAClD,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -13,6 +13,15 @@ export interface WikilinkValidation {
|
|
|
13
13
|
valid: string[];
|
|
14
14
|
broken: string[];
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Normalize a wikilink display name to a kebab-case entity ID for comparison.
|
|
18
|
+
*
|
|
19
|
+
* Wikilinks in Obsidian-style vaults use human-readable display names
|
|
20
|
+
* (e.g. [[Richard Attias & Associates]]) while Studiograph entity IDs are
|
|
21
|
+
* kebab-case slugs (richard-attias-and-associates). This function converts
|
|
22
|
+
* the display form so that backlink lookups can match both styles.
|
|
23
|
+
*/
|
|
24
|
+
export declare function slugifyWikilink(link: string): string;
|
|
16
25
|
export declare class MarkdownService {
|
|
17
26
|
/**
|
|
18
27
|
* Parse markdown file from path
|
|
@@ -8,6 +8,23 @@ import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
|
8
8
|
import { dirname, join } from 'path';
|
|
9
9
|
import matter from 'gray-matter';
|
|
10
10
|
import { glob } from 'glob';
|
|
11
|
+
/**
|
|
12
|
+
* Normalize a wikilink display name to a kebab-case entity ID for comparison.
|
|
13
|
+
*
|
|
14
|
+
* Wikilinks in Obsidian-style vaults use human-readable display names
|
|
15
|
+
* (e.g. [[Richard Attias & Associates]]) while Studiograph entity IDs are
|
|
16
|
+
* kebab-case slugs (richard-attias-and-associates). This function converts
|
|
17
|
+
* the display form so that backlink lookups can match both styles.
|
|
18
|
+
*/
|
|
19
|
+
export function slugifyWikilink(link) {
|
|
20
|
+
return link
|
|
21
|
+
.toLowerCase()
|
|
22
|
+
.replace(/&/g, 'and') // & → and
|
|
23
|
+
.replace(/[^a-z0-9\s_-]/g, '') // remove non-slug chars (except space/_/-)
|
|
24
|
+
.replace(/[\s_]+/g, '-') // spaces/underscores → hyphens
|
|
25
|
+
.replace(/-{2,}/g, '-') // collapse multiple hyphens
|
|
26
|
+
.replace(/^-+|-+$/g, ''); // trim leading/trailing hyphens
|
|
27
|
+
}
|
|
11
28
|
export class MarkdownService {
|
|
12
29
|
/**
|
|
13
30
|
* Parse markdown file from path
|
|
@@ -262,10 +279,14 @@ export class MarkdownService {
|
|
|
262
279
|
for (const file of files) {
|
|
263
280
|
try {
|
|
264
281
|
const doc = this.parseFile(file);
|
|
265
|
-
// Check if this document links to the target entity
|
|
282
|
+
// Check if this document links to the target entity.
|
|
283
|
+
// Match on both the raw wikilink text (already a kebab-case entity
|
|
284
|
+
// ID) and its slugified form (human-readable display names like
|
|
285
|
+
// "Richard Attias & Associates" → "richard-attias-and-associates").
|
|
286
|
+
const normalizedTarget = slugifyWikilink(entityId);
|
|
266
287
|
const linksToTarget = doc.wikilinks.some(link => {
|
|
267
288
|
const cleanLink = link.split('/').pop() || link;
|
|
268
|
-
return cleanLink === entityId;
|
|
289
|
+
return cleanLink === entityId || slugifyWikilink(cleanLink) === normalizedTarget;
|
|
269
290
|
});
|
|
270
291
|
if (linksToTarget) {
|
|
271
292
|
backlinks.push({ file, doc });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/services/markdown.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/services/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,8 @@ export interface MemoryEntry {
|
|
|
13
13
|
metadata?: Record<string, any>;
|
|
14
14
|
}
|
|
15
15
|
export declare class MemoryService {
|
|
16
|
-
private workspacePath;
|
|
17
16
|
private memoryDir;
|
|
18
|
-
constructor(
|
|
17
|
+
constructor(_workspacePath?: string);
|
|
19
18
|
/**
|
|
20
19
|
* Ensure memory directory exists
|
|
21
20
|
*/
|
|
@@ -8,12 +8,14 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { existsSync, mkdirSync, readFileSync, appendFileSync, writeFileSync, readdirSync } from 'fs';
|
|
10
10
|
import { join } from 'path';
|
|
11
|
+
import { homedir } from 'os';
|
|
11
12
|
export class MemoryService {
|
|
12
|
-
workspacePath;
|
|
13
13
|
memoryDir;
|
|
14
|
-
constructor(
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
constructor(_workspacePath) {
|
|
15
|
+
// Memory is always private — stored in the user's home directory, never in
|
|
16
|
+
// the workspace, never committed to git. The workspacePath parameter is
|
|
17
|
+
// accepted for backwards compatibility but ignored.
|
|
18
|
+
this.memoryDir = join(homedir(), '.studiograph', 'memory');
|
|
17
19
|
this.ensureMemoryDir();
|
|
18
20
|
}
|
|
19
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-service.js","sourceRoot":"","sources":["../../src/services/memory-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACrG,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-service.js","sourceRoot":"","sources":["../../src/services/memory-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VectorService
|
|
3
|
+
*
|
|
4
|
+
* Manages semantic and full-text search using LanceDB.
|
|
5
|
+
*
|
|
6
|
+
* Tier 1 — FTS only (no API key required):
|
|
7
|
+
* All entities are indexed in LanceDB with a BM25 full-text search index on
|
|
8
|
+
* the `text` column. This is a significant upgrade over substring matching.
|
|
9
|
+
*
|
|
10
|
+
* Tier 2 — Hybrid semantic search (requires Voyage AI API key):
|
|
11
|
+
* When a voyage_api_key is configured, embeddings are generated via Voyage AI
|
|
12
|
+
* (voyage-3, 1024 dimensions) and stored alongside the FTS index. Searches
|
|
13
|
+
* use LanceDB hybrid mode (vector + FTS re-ranked).
|
|
14
|
+
*
|
|
15
|
+
* Storage: ~/.studiograph/vector/ (configurable via user.json vector_db_path)
|
|
16
|
+
* Last-index timestamps: ~/.studiograph/vector/last-indexed.json
|
|
17
|
+
*/
|
|
18
|
+
import type { EntityFile } from '../core/graph.js';
|
|
19
|
+
export interface VectorSearchResult {
|
|
20
|
+
repoName: string;
|
|
21
|
+
entityType: string;
|
|
22
|
+
entityId: string;
|
|
23
|
+
score: number;
|
|
24
|
+
}
|
|
25
|
+
export declare class VectorService {
|
|
26
|
+
private dbPath;
|
|
27
|
+
private voyageApiKey?;
|
|
28
|
+
private db?;
|
|
29
|
+
private table?;
|
|
30
|
+
private lastIndexedPath;
|
|
31
|
+
private initialized;
|
|
32
|
+
constructor(dbPath: string, voyageApiKey?: string);
|
|
33
|
+
/**
|
|
34
|
+
* Open/create the LanceDB table and ensure the FTS index exists.
|
|
35
|
+
* Call once before using the service.
|
|
36
|
+
*/
|
|
37
|
+
init(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Index or re-index a single entity.
|
|
40
|
+
* Safe to call on create, update, or as part of bulk indexing.
|
|
41
|
+
*/
|
|
42
|
+
upsert(repoName: string, entity: EntityFile): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Bulk upsert — used by `studiograph index`. Batches Voyage API calls.
|
|
45
|
+
*/
|
|
46
|
+
upsertMany(repoName: string, entities: EntityFile[]): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Remove an entity from the index.
|
|
49
|
+
*/
|
|
50
|
+
delete(repoName: string, entityType: string, entityId: string): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Search the index.
|
|
53
|
+
* Uses hybrid search (vector + FTS) when Voyage key is configured, FTS only otherwise.
|
|
54
|
+
*/
|
|
55
|
+
search(query: string, options?: {
|
|
56
|
+
limit?: number;
|
|
57
|
+
repos?: string[];
|
|
58
|
+
}): Promise<VectorSearchResult[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Get the last time a repo's entities were indexed.
|
|
61
|
+
*/
|
|
62
|
+
getLastIndexedTime(repoName: string): string | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Record the current time as the last index time for a repo.
|
|
65
|
+
*/
|
|
66
|
+
setLastIndexedTime(repoName: string): void;
|
|
67
|
+
/** Whether Voyage AI embeddings are enabled (Tier 2). */
|
|
68
|
+
get hasEmbeddings(): boolean;
|
|
69
|
+
private generateEmbedding;
|
|
70
|
+
private generateEmbeddingsBatch;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Build a text representation of an entity for FTS/embedding.
|
|
74
|
+
* Combines entity type, key frontmatter fields, and markdown body.
|
|
75
|
+
* Exported for testing.
|
|
76
|
+
*/
|
|
77
|
+
export declare function buildEntityText(entity: EntityFile): string;
|