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
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { join } from 'path';
|
|
2
|
+
import * as yaml from 'js-yaml';
|
|
3
|
+
/**
|
|
4
|
+
* Migration: Convert legacy YAML workspace config to JSON
|
|
5
|
+
*
|
|
6
|
+
* Early versions of Studiograph used config.yml for workspace configuration.
|
|
7
|
+
* This migration converts any remaining YAML configs to the new workspace.json
|
|
8
|
+
* format and removes the legacy file.
|
|
9
|
+
*/
|
|
10
|
+
export const migration = {
|
|
11
|
+
id: '20260220-migrate-yaml-to-json',
|
|
12
|
+
description: 'Convert legacy YAML workspace config to JSON format',
|
|
13
|
+
targetVersion: '1.2.0',
|
|
14
|
+
async up(context) {
|
|
15
|
+
const yamlPath = join(context.workspacePath, '.studiograph', 'config.yml');
|
|
16
|
+
const jsonPath = join(context.workspacePath, '.studiograph', 'workspace.json');
|
|
17
|
+
// Check if YAML config exists
|
|
18
|
+
if (!context.fileExists(yamlPath)) {
|
|
19
|
+
context.log('No legacy YAML config found - skipping');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// If JSON config already exists, we've likely already migrated
|
|
23
|
+
if (context.fileExists(jsonPath)) {
|
|
24
|
+
context.warn('Both YAML and JSON configs exist - removing YAML backup');
|
|
25
|
+
context.deleteFile(yamlPath);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
context.log('Converting YAML config to JSON...');
|
|
29
|
+
// Read and parse YAML config
|
|
30
|
+
const yamlContent = context.readFile(yamlPath);
|
|
31
|
+
const config = yaml.load(yamlContent);
|
|
32
|
+
// Ensure required fields exist
|
|
33
|
+
if (!config.version)
|
|
34
|
+
config.version = '1.0.0';
|
|
35
|
+
if (!config.created_at)
|
|
36
|
+
config.created_at = new Date().toISOString();
|
|
37
|
+
if (!config.repos)
|
|
38
|
+
config.repos = [];
|
|
39
|
+
// Write as JSON
|
|
40
|
+
context.writeFile(jsonPath, JSON.stringify(config, null, 2));
|
|
41
|
+
context.log(`✓ Converted YAML config to workspace.json`);
|
|
42
|
+
// Remove legacy YAML file
|
|
43
|
+
context.deleteFile(yamlPath);
|
|
44
|
+
context.log(`✓ Removed legacy config.yml`);
|
|
45
|
+
},
|
|
46
|
+
async down(context) {
|
|
47
|
+
const yamlPath = join(context.workspacePath, '.studiograph', 'config.yml');
|
|
48
|
+
const jsonPath = join(context.workspacePath, '.studiograph', 'workspace.json');
|
|
49
|
+
// Rollback: convert JSON back to YAML
|
|
50
|
+
if (context.fileExists(jsonPath)) {
|
|
51
|
+
const jsonContent = context.readFile(jsonPath);
|
|
52
|
+
const config = JSON.parse(jsonContent);
|
|
53
|
+
const yamlContent = yaml.dump(config);
|
|
54
|
+
context.writeFile(yamlPath, yamlContent);
|
|
55
|
+
context.log('Rollback: Restored config.yml from workspace.json');
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
async shouldRun(context) {
|
|
59
|
+
const yamlPath = join(context.workspacePath, '.studiograph', 'config.yml');
|
|
60
|
+
// Only run if YAML config exists
|
|
61
|
+
return context.fileExists(yamlPath);
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=20260220-migrate-yaml-to-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260220-migrate-yaml-to-json.js","sourceRoot":"","sources":["../../../src/core/migrations/20260220-migrate-yaml-to-json.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAEhC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,EAAE,EAAE,+BAA+B;IACnC,WAAW,EAAE,qDAAqD;IAClE,aAAa,EAAE,OAAO;IAEtB,KAAK,CAAC,EAAE,CAAC,OAAO;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAE/E,8BAA8B;QAC9B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,+DAA+D;QAC/D,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YACxE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QAEjD,6BAA6B;QAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAQ,CAAC;QAE7C,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAErC,gBAAgB;QAChB,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAEzD,0BAA0B;QAC1B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAO;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAE/E,sCAAsC;QACtC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAC3E,iCAAiC;QACjC,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* All migrations in chronological order.
|
|
3
|
+
* Naming convention: YYYYMMDD-kebab-case-description.ts
|
|
4
|
+
*
|
|
5
|
+
* Migration execution order:
|
|
6
|
+
* 1. 20260219-formalize-memory-location — Ensures global memory directory
|
|
7
|
+
* 2. 20260220-migrate-yaml-to-json — Converts legacy YAML configs
|
|
8
|
+
* 3. 20260220-add-workspace-metadata — Adds tracking fields
|
|
9
|
+
* 4. 20260220-add-workspace-readme — Creates documentation
|
|
10
|
+
*/
|
|
11
|
+
export declare const ALL_MIGRATIONS: import("../migration-types.js").Migration[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { migration as m20260219 } from './20260219-formalize-memory-location.js';
|
|
2
|
+
import { migration as m20260220_yaml } from './20260220-migrate-yaml-to-json.js';
|
|
3
|
+
import { migration as m20260220_metadata } from './20260220-add-workspace-metadata.js';
|
|
4
|
+
import { migration as m20260220_readme } from './20260220-add-workspace-readme.js';
|
|
5
|
+
// Future migrations added here
|
|
6
|
+
/**
|
|
7
|
+
* All migrations in chronological order.
|
|
8
|
+
* Naming convention: YYYYMMDD-kebab-case-description.ts
|
|
9
|
+
*
|
|
10
|
+
* Migration execution order:
|
|
11
|
+
* 1. 20260219-formalize-memory-location — Ensures global memory directory
|
|
12
|
+
* 2. 20260220-migrate-yaml-to-json — Converts legacy YAML configs
|
|
13
|
+
* 3. 20260220-add-workspace-metadata — Adds tracking fields
|
|
14
|
+
* 4. 20260220-add-workspace-readme — Creates documentation
|
|
15
|
+
*/
|
|
16
|
+
export const ALL_MIGRATIONS = [
|
|
17
|
+
m20260219,
|
|
18
|
+
m20260220_yaml,
|
|
19
|
+
m20260220_metadata,
|
|
20
|
+
m20260220_readme,
|
|
21
|
+
// New migrations appended in chronological order
|
|
22
|
+
];
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACnF,+BAA+B;AAE/B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,cAAc;IACd,kBAAkB;IAClB,gBAAgB;IAChB,iDAAiD;CAClD,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SchemaRegistry
|
|
3
|
+
*
|
|
4
|
+
* Builds and caches merged Zod schemas from workspace config schema_extensions.
|
|
5
|
+
* Supports additive extensions to existing entity types and fully custom new types.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { FieldDefinition, SchemaExtension } from './types.js';
|
|
9
|
+
export declare class SchemaRegistry {
|
|
10
|
+
private extensions;
|
|
11
|
+
private schemaCache;
|
|
12
|
+
private fieldDefsCache;
|
|
13
|
+
constructor(extensions?: Record<string, SchemaExtension>);
|
|
14
|
+
private build;
|
|
15
|
+
/**
|
|
16
|
+
* Get the Zod schema for an entity type (built-in + extensions, or custom).
|
|
17
|
+
* Falls back to the built-in schema, then EntityBaseSchema.
|
|
18
|
+
*/
|
|
19
|
+
getSchema(entityType: string): z.ZodTypeAny;
|
|
20
|
+
/**
|
|
21
|
+
* Get the declared field definitions for an entity type.
|
|
22
|
+
* For extended built-in types: returns additional_fields only.
|
|
23
|
+
* For custom types: returns all fields.
|
|
24
|
+
* For types with no extension: returns [].
|
|
25
|
+
*/
|
|
26
|
+
getFieldDefs(entityType: string): FieldDefinition[];
|
|
27
|
+
/**
|
|
28
|
+
* Get all entity type names: built-in types + custom extension types.
|
|
29
|
+
*/
|
|
30
|
+
getAllTypes(): string[];
|
|
31
|
+
/**
|
|
32
|
+
* Return a formatted prompt section describing the workspace's schema extensions.
|
|
33
|
+
* Returns "" when no extensions are defined.
|
|
34
|
+
*/
|
|
35
|
+
toPromptSection(): string;
|
|
36
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SchemaRegistry
|
|
3
|
+
*
|
|
4
|
+
* Builds and caches merged Zod schemas from workspace config schema_extensions.
|
|
5
|
+
* Supports additive extensions to existing entity types and fully custom new types.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { ENTITY_SCHEMAS, EntityBaseSchema } from './validation.js';
|
|
9
|
+
/**
|
|
10
|
+
* Build a record of Zod field entries from an array of FieldDefinitions.
|
|
11
|
+
*/
|
|
12
|
+
function buildZodFields(fields) {
|
|
13
|
+
const result = {};
|
|
14
|
+
for (const field of fields) {
|
|
15
|
+
let zodType;
|
|
16
|
+
switch (field.type) {
|
|
17
|
+
case 'string':
|
|
18
|
+
zodType = z.string();
|
|
19
|
+
break;
|
|
20
|
+
case 'number':
|
|
21
|
+
zodType = z.number();
|
|
22
|
+
break;
|
|
23
|
+
case 'boolean':
|
|
24
|
+
zodType = z.boolean();
|
|
25
|
+
break;
|
|
26
|
+
case 'enum': {
|
|
27
|
+
const values = field.enum_values;
|
|
28
|
+
if (!values || values.length === 0) {
|
|
29
|
+
zodType = z.string(); // fallback if enum_values missing
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
zodType = z.enum(values);
|
|
33
|
+
}
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case 'string[]':
|
|
37
|
+
zodType = z.array(z.string());
|
|
38
|
+
break;
|
|
39
|
+
default:
|
|
40
|
+
zodType = z.string();
|
|
41
|
+
}
|
|
42
|
+
if (field.description) {
|
|
43
|
+
zodType = zodType.describe(field.description);
|
|
44
|
+
}
|
|
45
|
+
if (!field.required) {
|
|
46
|
+
zodType = zodType.optional();
|
|
47
|
+
}
|
|
48
|
+
result[field.name] = zodType;
|
|
49
|
+
}
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
export class SchemaRegistry {
|
|
53
|
+
extensions;
|
|
54
|
+
schemaCache = new Map();
|
|
55
|
+
fieldDefsCache = new Map();
|
|
56
|
+
constructor(extensions) {
|
|
57
|
+
this.extensions = extensions ?? {};
|
|
58
|
+
this.build();
|
|
59
|
+
}
|
|
60
|
+
build() {
|
|
61
|
+
const builtinTypes = new Set(Object.keys(ENTITY_SCHEMAS));
|
|
62
|
+
for (const [typeKey, extension] of Object.entries(this.extensions)) {
|
|
63
|
+
if (builtinTypes.has(typeKey)) {
|
|
64
|
+
// Extend an existing built-in schema
|
|
65
|
+
const base = ENTITY_SCHEMAS[typeKey];
|
|
66
|
+
const additionalFields = extension.additional_fields ?? [];
|
|
67
|
+
if (additionalFields.length > 0) {
|
|
68
|
+
const zodFields = buildZodFields(additionalFields);
|
|
69
|
+
const extended = base.extend(zodFields);
|
|
70
|
+
this.schemaCache.set(typeKey, extended);
|
|
71
|
+
}
|
|
72
|
+
this.fieldDefsCache.set(typeKey, additionalFields);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// Build a new custom type from EntityBaseSchema
|
|
76
|
+
const customFields = extension.fields ?? [];
|
|
77
|
+
const zodFields = buildZodFields(customFields);
|
|
78
|
+
const schema = EntityBaseSchema.extend(zodFields).passthrough();
|
|
79
|
+
this.schemaCache.set(typeKey, schema);
|
|
80
|
+
this.fieldDefsCache.set(typeKey, customFields);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get the Zod schema for an entity type (built-in + extensions, or custom).
|
|
86
|
+
* Falls back to the built-in schema, then EntityBaseSchema.
|
|
87
|
+
*/
|
|
88
|
+
getSchema(entityType) {
|
|
89
|
+
if (this.schemaCache.has(entityType)) {
|
|
90
|
+
return this.schemaCache.get(entityType);
|
|
91
|
+
}
|
|
92
|
+
if (entityType in ENTITY_SCHEMAS) {
|
|
93
|
+
return ENTITY_SCHEMAS[entityType];
|
|
94
|
+
}
|
|
95
|
+
return EntityBaseSchema;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get the declared field definitions for an entity type.
|
|
99
|
+
* For extended built-in types: returns additional_fields only.
|
|
100
|
+
* For custom types: returns all fields.
|
|
101
|
+
* For types with no extension: returns [].
|
|
102
|
+
*/
|
|
103
|
+
getFieldDefs(entityType) {
|
|
104
|
+
return this.fieldDefsCache.get(entityType) ?? [];
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get all entity type names: built-in types + custom extension types.
|
|
108
|
+
*/
|
|
109
|
+
getAllTypes() {
|
|
110
|
+
const builtin = Object.keys(ENTITY_SCHEMAS);
|
|
111
|
+
const customTypes = Object.keys(this.extensions).filter(k => !(k in ENTITY_SCHEMAS));
|
|
112
|
+
return [...new Set([...builtin, ...customTypes])];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Return a formatted prompt section describing the workspace's schema extensions.
|
|
116
|
+
* Returns "" when no extensions are defined.
|
|
117
|
+
*/
|
|
118
|
+
toPromptSection() {
|
|
119
|
+
if (Object.keys(this.extensions).length === 0) {
|
|
120
|
+
return '';
|
|
121
|
+
}
|
|
122
|
+
const builtinTypes = new Set(Object.keys(ENTITY_SCHEMAS));
|
|
123
|
+
const lines = ['## Workspace Schema Extensions', ''];
|
|
124
|
+
for (const [typeKey, extension] of Object.entries(this.extensions)) {
|
|
125
|
+
const isBuiltin = builtinTypes.has(typeKey);
|
|
126
|
+
const fields = isBuiltin
|
|
127
|
+
? (extension.additional_fields ?? [])
|
|
128
|
+
: (extension.fields ?? []);
|
|
129
|
+
if (fields.length === 0)
|
|
130
|
+
continue;
|
|
131
|
+
if (isBuiltin) {
|
|
132
|
+
lines.push(`**${typeKey}** — additional fields:`);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
const desc = extension.description
|
|
136
|
+
? ` (${extension.description})`
|
|
137
|
+
: '';
|
|
138
|
+
const label = extension.label ?? typeKey;
|
|
139
|
+
lines.push(`**${typeKey}** — custom entity type${desc}:`);
|
|
140
|
+
if (extension.label && extension.label !== typeKey) {
|
|
141
|
+
lines[lines.length - 1] = `**${typeKey}** (${label}) — custom entity type${desc}:`;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
for (const field of fields) {
|
|
145
|
+
const req = field.required ? 'required' : 'optional';
|
|
146
|
+
const typeStr = field.type === 'enum' && field.enum_values?.length
|
|
147
|
+
? `enum: ${field.enum_values.join('|')}`
|
|
148
|
+
: field.type;
|
|
149
|
+
const descPart = field.description ? `: ${field.description}` : '';
|
|
150
|
+
lines.push(`- \`${field.name}\` (${typeStr}, ${req})${descPart}`);
|
|
151
|
+
}
|
|
152
|
+
lines.push('');
|
|
153
|
+
}
|
|
154
|
+
// Remove trailing empty line
|
|
155
|
+
while (lines.length > 0 && lines[lines.length - 1] === '') {
|
|
156
|
+
lines.pop();
|
|
157
|
+
}
|
|
158
|
+
return lines.join('\n');
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=schema-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-registry.js","sourceRoot":"","sources":["../../src/core/schema-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -71,6 +71,122 @@ export type RepoConfigInput = Omit<RepoConfig, 'path' | 'access'> & {
|
|
|
71
71
|
/**
|
|
72
72
|
* Workspace configuration
|
|
73
73
|
*/
|
|
74
|
+
/**
|
|
75
|
+
* Field definition for schema extensions
|
|
76
|
+
*/
|
|
77
|
+
export declare const FieldDefinitionSchema: z.ZodObject<{
|
|
78
|
+
name: z.ZodString;
|
|
79
|
+
type: z.ZodEnum<["string", "number", "boolean", "enum", "string[]"]>;
|
|
80
|
+
required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
81
|
+
description: z.ZodOptional<z.ZodString>;
|
|
82
|
+
enum_values: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
83
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
84
|
+
}, "strip", z.ZodTypeAny, {
|
|
85
|
+
name: string;
|
|
86
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
87
|
+
required: boolean;
|
|
88
|
+
description?: string | undefined;
|
|
89
|
+
enum_values?: string[] | undefined;
|
|
90
|
+
default?: unknown;
|
|
91
|
+
}, {
|
|
92
|
+
name: string;
|
|
93
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
94
|
+
description?: string | undefined;
|
|
95
|
+
required?: boolean | undefined;
|
|
96
|
+
enum_values?: string[] | undefined;
|
|
97
|
+
default?: unknown;
|
|
98
|
+
}>;
|
|
99
|
+
export type FieldDefinition = z.infer<typeof FieldDefinitionSchema>;
|
|
100
|
+
/**
|
|
101
|
+
* Schema extension for an existing or custom entity type
|
|
102
|
+
*/
|
|
103
|
+
export declare const SchemaExtensionSchema: z.ZodObject<{
|
|
104
|
+
label: z.ZodOptional<z.ZodString>;
|
|
105
|
+
description: z.ZodOptional<z.ZodString>;
|
|
106
|
+
additional_fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
107
|
+
name: z.ZodString;
|
|
108
|
+
type: z.ZodEnum<["string", "number", "boolean", "enum", "string[]"]>;
|
|
109
|
+
required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
110
|
+
description: z.ZodOptional<z.ZodString>;
|
|
111
|
+
enum_values: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
112
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
113
|
+
}, "strip", z.ZodTypeAny, {
|
|
114
|
+
name: string;
|
|
115
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
116
|
+
required: boolean;
|
|
117
|
+
description?: string | undefined;
|
|
118
|
+
enum_values?: string[] | undefined;
|
|
119
|
+
default?: unknown;
|
|
120
|
+
}, {
|
|
121
|
+
name: string;
|
|
122
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
123
|
+
description?: string | undefined;
|
|
124
|
+
required?: boolean | undefined;
|
|
125
|
+
enum_values?: string[] | undefined;
|
|
126
|
+
default?: unknown;
|
|
127
|
+
}>, "many">>;
|
|
128
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
129
|
+
name: z.ZodString;
|
|
130
|
+
type: z.ZodEnum<["string", "number", "boolean", "enum", "string[]"]>;
|
|
131
|
+
required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
132
|
+
description: z.ZodOptional<z.ZodString>;
|
|
133
|
+
enum_values: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
134
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
135
|
+
}, "strip", z.ZodTypeAny, {
|
|
136
|
+
name: string;
|
|
137
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
138
|
+
required: boolean;
|
|
139
|
+
description?: string | undefined;
|
|
140
|
+
enum_values?: string[] | undefined;
|
|
141
|
+
default?: unknown;
|
|
142
|
+
}, {
|
|
143
|
+
name: string;
|
|
144
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
145
|
+
description?: string | undefined;
|
|
146
|
+
required?: boolean | undefined;
|
|
147
|
+
enum_values?: string[] | undefined;
|
|
148
|
+
default?: unknown;
|
|
149
|
+
}>, "many">>;
|
|
150
|
+
}, "strip", z.ZodTypeAny, {
|
|
151
|
+
description?: string | undefined;
|
|
152
|
+
label?: string | undefined;
|
|
153
|
+
additional_fields?: {
|
|
154
|
+
name: string;
|
|
155
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
156
|
+
required: boolean;
|
|
157
|
+
description?: string | undefined;
|
|
158
|
+
enum_values?: string[] | undefined;
|
|
159
|
+
default?: unknown;
|
|
160
|
+
}[] | undefined;
|
|
161
|
+
fields?: {
|
|
162
|
+
name: string;
|
|
163
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
164
|
+
required: boolean;
|
|
165
|
+
description?: string | undefined;
|
|
166
|
+
enum_values?: string[] | undefined;
|
|
167
|
+
default?: unknown;
|
|
168
|
+
}[] | undefined;
|
|
169
|
+
}, {
|
|
170
|
+
description?: string | undefined;
|
|
171
|
+
label?: string | undefined;
|
|
172
|
+
additional_fields?: {
|
|
173
|
+
name: string;
|
|
174
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
175
|
+
description?: string | undefined;
|
|
176
|
+
required?: boolean | undefined;
|
|
177
|
+
enum_values?: string[] | undefined;
|
|
178
|
+
default?: unknown;
|
|
179
|
+
}[] | undefined;
|
|
180
|
+
fields?: {
|
|
181
|
+
name: string;
|
|
182
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
183
|
+
description?: string | undefined;
|
|
184
|
+
required?: boolean | undefined;
|
|
185
|
+
enum_values?: string[] | undefined;
|
|
186
|
+
default?: unknown;
|
|
187
|
+
}[] | undefined;
|
|
188
|
+
}>;
|
|
189
|
+
export type SchemaExtension = z.infer<typeof SchemaExtensionSchema>;
|
|
74
190
|
export declare const WorkspaceConfigSchema: z.ZodObject<{
|
|
75
191
|
version: z.ZodString;
|
|
76
192
|
team_name: z.ZodString;
|
|
@@ -127,6 +243,92 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
|
|
|
127
243
|
}, {
|
|
128
244
|
org?: string | undefined;
|
|
129
245
|
}>>;
|
|
246
|
+
schema_extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
247
|
+
label: z.ZodOptional<z.ZodString>;
|
|
248
|
+
description: z.ZodOptional<z.ZodString>;
|
|
249
|
+
additional_fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
250
|
+
name: z.ZodString;
|
|
251
|
+
type: z.ZodEnum<["string", "number", "boolean", "enum", "string[]"]>;
|
|
252
|
+
required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
253
|
+
description: z.ZodOptional<z.ZodString>;
|
|
254
|
+
enum_values: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
255
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
256
|
+
}, "strip", z.ZodTypeAny, {
|
|
257
|
+
name: string;
|
|
258
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
259
|
+
required: boolean;
|
|
260
|
+
description?: string | undefined;
|
|
261
|
+
enum_values?: string[] | undefined;
|
|
262
|
+
default?: unknown;
|
|
263
|
+
}, {
|
|
264
|
+
name: string;
|
|
265
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
266
|
+
description?: string | undefined;
|
|
267
|
+
required?: boolean | undefined;
|
|
268
|
+
enum_values?: string[] | undefined;
|
|
269
|
+
default?: unknown;
|
|
270
|
+
}>, "many">>;
|
|
271
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
272
|
+
name: z.ZodString;
|
|
273
|
+
type: z.ZodEnum<["string", "number", "boolean", "enum", "string[]"]>;
|
|
274
|
+
required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
275
|
+
description: z.ZodOptional<z.ZodString>;
|
|
276
|
+
enum_values: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
277
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
278
|
+
}, "strip", z.ZodTypeAny, {
|
|
279
|
+
name: string;
|
|
280
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
281
|
+
required: boolean;
|
|
282
|
+
description?: string | undefined;
|
|
283
|
+
enum_values?: string[] | undefined;
|
|
284
|
+
default?: unknown;
|
|
285
|
+
}, {
|
|
286
|
+
name: string;
|
|
287
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
288
|
+
description?: string | undefined;
|
|
289
|
+
required?: boolean | undefined;
|
|
290
|
+
enum_values?: string[] | undefined;
|
|
291
|
+
default?: unknown;
|
|
292
|
+
}>, "many">>;
|
|
293
|
+
}, "strip", z.ZodTypeAny, {
|
|
294
|
+
description?: string | undefined;
|
|
295
|
+
label?: string | undefined;
|
|
296
|
+
additional_fields?: {
|
|
297
|
+
name: string;
|
|
298
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
299
|
+
required: boolean;
|
|
300
|
+
description?: string | undefined;
|
|
301
|
+
enum_values?: string[] | undefined;
|
|
302
|
+
default?: unknown;
|
|
303
|
+
}[] | undefined;
|
|
304
|
+
fields?: {
|
|
305
|
+
name: string;
|
|
306
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
307
|
+
required: boolean;
|
|
308
|
+
description?: string | undefined;
|
|
309
|
+
enum_values?: string[] | undefined;
|
|
310
|
+
default?: unknown;
|
|
311
|
+
}[] | undefined;
|
|
312
|
+
}, {
|
|
313
|
+
description?: string | undefined;
|
|
314
|
+
label?: string | undefined;
|
|
315
|
+
additional_fields?: {
|
|
316
|
+
name: string;
|
|
317
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
318
|
+
description?: string | undefined;
|
|
319
|
+
required?: boolean | undefined;
|
|
320
|
+
enum_values?: string[] | undefined;
|
|
321
|
+
default?: unknown;
|
|
322
|
+
}[] | undefined;
|
|
323
|
+
fields?: {
|
|
324
|
+
name: string;
|
|
325
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
326
|
+
description?: string | undefined;
|
|
327
|
+
required?: boolean | undefined;
|
|
328
|
+
enum_values?: string[] | undefined;
|
|
329
|
+
default?: unknown;
|
|
330
|
+
}[] | undefined;
|
|
331
|
+
}>>>;
|
|
130
332
|
}, "strip", z.ZodTypeAny, {
|
|
131
333
|
created_at: string;
|
|
132
334
|
version: string;
|
|
@@ -153,6 +355,26 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
|
|
|
153
355
|
github?: {
|
|
154
356
|
org?: string | undefined;
|
|
155
357
|
} | undefined;
|
|
358
|
+
schema_extensions?: Record<string, {
|
|
359
|
+
description?: string | undefined;
|
|
360
|
+
label?: string | undefined;
|
|
361
|
+
additional_fields?: {
|
|
362
|
+
name: string;
|
|
363
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
364
|
+
required: boolean;
|
|
365
|
+
description?: string | undefined;
|
|
366
|
+
enum_values?: string[] | undefined;
|
|
367
|
+
default?: unknown;
|
|
368
|
+
}[] | undefined;
|
|
369
|
+
fields?: {
|
|
370
|
+
name: string;
|
|
371
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
372
|
+
required: boolean;
|
|
373
|
+
description?: string | undefined;
|
|
374
|
+
enum_values?: string[] | undefined;
|
|
375
|
+
default?: unknown;
|
|
376
|
+
}[] | undefined;
|
|
377
|
+
}> | undefined;
|
|
156
378
|
}, {
|
|
157
379
|
created_at: string;
|
|
158
380
|
version: string;
|
|
@@ -179,6 +401,26 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
|
|
|
179
401
|
github?: {
|
|
180
402
|
org?: string | undefined;
|
|
181
403
|
} | undefined;
|
|
404
|
+
schema_extensions?: Record<string, {
|
|
405
|
+
description?: string | undefined;
|
|
406
|
+
label?: string | undefined;
|
|
407
|
+
additional_fields?: {
|
|
408
|
+
name: string;
|
|
409
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
410
|
+
description?: string | undefined;
|
|
411
|
+
required?: boolean | undefined;
|
|
412
|
+
enum_values?: string[] | undefined;
|
|
413
|
+
default?: unknown;
|
|
414
|
+
}[] | undefined;
|
|
415
|
+
fields?: {
|
|
416
|
+
name: string;
|
|
417
|
+
type: "string" | "number" | "boolean" | "enum" | "string[]";
|
|
418
|
+
description?: string | undefined;
|
|
419
|
+
required?: boolean | undefined;
|
|
420
|
+
enum_values?: string[] | undefined;
|
|
421
|
+
default?: unknown;
|
|
422
|
+
}[] | undefined;
|
|
423
|
+
}> | undefined;
|
|
182
424
|
}>;
|
|
183
425
|
export type WorkspaceConfig = z.infer<typeof WorkspaceConfigSchema>;
|
|
184
426
|
/**
|
package/dist/core/types.js
CHANGED
|
@@ -37,6 +37,26 @@ export const RepoConfigSchema = z.object({
|
|
|
37
37
|
/**
|
|
38
38
|
* Workspace configuration
|
|
39
39
|
*/
|
|
40
|
+
/**
|
|
41
|
+
* Field definition for schema extensions
|
|
42
|
+
*/
|
|
43
|
+
export const FieldDefinitionSchema = z.object({
|
|
44
|
+
name: z.string(),
|
|
45
|
+
type: z.enum(['string', 'number', 'boolean', 'enum', 'string[]']),
|
|
46
|
+
required: z.boolean().optional().default(false),
|
|
47
|
+
description: z.string().optional(),
|
|
48
|
+
enum_values: z.array(z.string()).optional(),
|
|
49
|
+
default: z.unknown().optional(),
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* Schema extension for an existing or custom entity type
|
|
53
|
+
*/
|
|
54
|
+
export const SchemaExtensionSchema = z.object({
|
|
55
|
+
label: z.string().optional(),
|
|
56
|
+
description: z.string().optional(),
|
|
57
|
+
additional_fields: z.array(FieldDefinitionSchema).optional(), // for extending existing types
|
|
58
|
+
fields: z.array(FieldDefinitionSchema).optional(), // for defining new custom types
|
|
59
|
+
});
|
|
40
60
|
export const WorkspaceConfigSchema = z.object({
|
|
41
61
|
version: z.string(),
|
|
42
62
|
team_name: z.string(),
|
|
@@ -58,6 +78,7 @@ export const WorkspaceConfigSchema = z.object({
|
|
|
58
78
|
github: z.object({
|
|
59
79
|
org: z.string().optional(),
|
|
60
80
|
}).optional(),
|
|
81
|
+
schema_extensions: z.record(z.string(), SchemaExtensionSchema).optional(),
|
|
61
82
|
});
|
|
62
83
|
/**
|
|
63
84
|
* Permission error thrown when user lacks access to a repository
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,10 @@ export interface UserConfig {
|
|
|
16
16
|
model_provider?: string;
|
|
17
17
|
model_id?: string;
|
|
18
18
|
api_key?: string;
|
|
19
|
+
/** Voyage AI API key for semantic search embeddings (Tier 2). Get at https://www.voyageai.com */
|
|
20
|
+
voyage_api_key?: string;
|
|
21
|
+
/** Path to LanceDB vector store. Defaults to ~/.studiograph/vector */
|
|
22
|
+
vector_db_path?: string;
|
|
19
23
|
r2?: UserR2Config;
|
|
20
24
|
}
|
|
21
25
|
export declare const USER_CONFIG_PATH: string;
|
|
@@ -34,3 +38,9 @@ export declare function saveUserConfig(config: UserConfig): void;
|
|
|
34
38
|
* Merges with any existing user config so other fields are preserved.
|
|
35
39
|
*/
|
|
36
40
|
export declare function setUserModelConfig(provider: string, modelId: string, apiKey?: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Resolve the Anthropic credential to pass to the API client.
|
|
43
|
+
* Returns the API key from console.anthropic.com.
|
|
44
|
+
* Note: OAuth tokens are no longer supported per Anthropic's third-party policy.
|
|
45
|
+
*/
|
|
46
|
+
export declare function getAnthropicCredential(config: UserConfig): string | undefined;
|