studiograph 1.0.0

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.
Files changed (101) hide show
  1. package/README.md +18 -0
  2. package/dist/agent/orchestrator.d.ts +69 -0
  3. package/dist/agent/orchestrator.js +211 -0
  4. package/dist/agent/orchestrator.js.map +1 -0
  5. package/dist/agent/tools/graph-tools.d.ts +30 -0
  6. package/dist/agent/tools/graph-tools.js +536 -0
  7. package/dist/agent/tools/graph-tools.js.map +1 -0
  8. package/dist/auth/github.d.ts +53 -0
  9. package/dist/auth/github.js +180 -0
  10. package/dist/auth/github.js.map +1 -0
  11. package/dist/cli/commands/auth.d.ts +10 -0
  12. package/dist/cli/commands/auth.js +63 -0
  13. package/dist/cli/commands/auth.js.map +1 -0
  14. package/dist/cli/commands/init.d.ts +7 -0
  15. package/dist/cli/commands/init.js +299 -0
  16. package/dist/cli/commands/init.js.map +1 -0
  17. package/dist/cli/commands/join.d.ts +14 -0
  18. package/dist/cli/commands/join.js +230 -0
  19. package/dist/cli/commands/join.js.map +1 -0
  20. package/dist/cli/commands/members.d.ts +11 -0
  21. package/dist/cli/commands/members.js +230 -0
  22. package/dist/cli/commands/members.js.map +1 -0
  23. package/dist/cli/commands/serve.d.ts +17 -0
  24. package/dist/cli/commands/serve.js +90 -0
  25. package/dist/cli/commands/serve.js.map +1 -0
  26. package/dist/cli/commands/start.d.ts +7 -0
  27. package/dist/cli/commands/start.js +381 -0
  28. package/dist/cli/commands/start.js.map +1 -0
  29. package/dist/cli/commands/sync.d.ts +10 -0
  30. package/dist/cli/commands/sync.js +121 -0
  31. package/dist/cli/commands/sync.js.map +1 -0
  32. package/dist/cli/index.d.ts +7 -0
  33. package/dist/cli/index.js +31 -0
  34. package/dist/cli/index.js.map +1 -0
  35. package/dist/core/graph.d.ts +169 -0
  36. package/dist/core/graph.js +558 -0
  37. package/dist/core/graph.js.map +1 -0
  38. package/dist/core/types.d.ts +216 -0
  39. package/dist/core/types.js +71 -0
  40. package/dist/core/types.js.map +1 -0
  41. package/dist/core/user-config.d.ts +31 -0
  42. package/dist/core/user-config.js +50 -0
  43. package/dist/core/user-config.js.map +1 -0
  44. package/dist/core/validation.d.ts +2371 -0
  45. package/dist/core/validation.js +432 -0
  46. package/dist/core/validation.js.map +1 -0
  47. package/dist/core/workspace-manager.d.ts +104 -0
  48. package/dist/core/workspace-manager.js +432 -0
  49. package/dist/core/workspace-manager.js.map +1 -0
  50. package/dist/core/workspace.d.ts +103 -0
  51. package/dist/core/workspace.js +306 -0
  52. package/dist/core/workspace.js.map +1 -0
  53. package/dist/server/index.d.ts +25 -0
  54. package/dist/server/index.js +84 -0
  55. package/dist/server/index.js.map +1 -0
  56. package/dist/server/plugin-loader.d.ts +31 -0
  57. package/dist/server/plugin-loader.js +81 -0
  58. package/dist/server/plugin-loader.js.map +1 -0
  59. package/dist/server/routes/chat.d.ts +11 -0
  60. package/dist/server/routes/chat.js +66 -0
  61. package/dist/server/routes/chat.js.map +1 -0
  62. package/dist/server/routes/graph-api.d.ts +9 -0
  63. package/dist/server/routes/graph-api.js +72 -0
  64. package/dist/server/routes/graph-api.js.map +1 -0
  65. package/dist/server/routes/webhook.d.ts +14 -0
  66. package/dist/server/routes/webhook.js +69 -0
  67. package/dist/server/routes/webhook.js.map +1 -0
  68. package/dist/services/assets/base.d.ts +69 -0
  69. package/dist/services/assets/base.js +113 -0
  70. package/dist/services/assets/base.js.map +1 -0
  71. package/dist/services/assets/index.d.ts +36 -0
  72. package/dist/services/assets/index.js +89 -0
  73. package/dist/services/assets/index.js.map +1 -0
  74. package/dist/services/assets/local.d.ts +42 -0
  75. package/dist/services/assets/local.js +161 -0
  76. package/dist/services/assets/local.js.map +1 -0
  77. package/dist/services/assets/r2.d.ts +36 -0
  78. package/dist/services/assets/r2.js +182 -0
  79. package/dist/services/assets/r2.js.map +1 -0
  80. package/dist/services/csv-service.d.ts +36 -0
  81. package/dist/services/csv-service.js +143 -0
  82. package/dist/services/csv-service.js.map +1 -0
  83. package/dist/services/git.d.ts +99 -0
  84. package/dist/services/git.js +306 -0
  85. package/dist/services/git.js.map +1 -0
  86. package/dist/services/github-provisioner.d.ts +30 -0
  87. package/dist/services/github-provisioner.js +89 -0
  88. package/dist/services/github-provisioner.js.map +1 -0
  89. package/dist/services/markdown.d.ts +82 -0
  90. package/dist/services/markdown.js +338 -0
  91. package/dist/services/markdown.js.map +1 -0
  92. package/dist/services/memory-service.d.ts +74 -0
  93. package/dist/services/memory-service.js +183 -0
  94. package/dist/services/memory-service.js.map +1 -0
  95. package/dist/utils/git.d.ts +28 -0
  96. package/dist/utils/git.js +55 -0
  97. package/dist/utils/git.js.map +1 -0
  98. package/dist/utils/preflight.d.ts +44 -0
  99. package/dist/utils/preflight.js +95 -0
  100. package/dist/utils/preflight.js.map +1 -0
  101. package/package.json +55 -0
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Base Graph Manager
3
+ *
4
+ * Provides unified entity management across any repo type.
5
+ * Integrates Git, Markdown, and Asset services.
6
+ */
7
+ import { GitUser } from '../services/git.js';
8
+ import { MarkdownDocument } from '../services/markdown.js';
9
+ import { AssetInfo, AssetConfig } from '../services/assets/index.js';
10
+ import { EntityType, type EntityData, type DatasetRow } from './validation.js';
11
+ import { type DatasetFilter } from '../services/csv-service.js';
12
+ export interface GraphConfig {
13
+ repoPath: string;
14
+ assetConfig?: AssetConfig;
15
+ gitUser: GitUser;
16
+ }
17
+ export interface EntityFile {
18
+ id: string;
19
+ path: string;
20
+ entityType: string;
21
+ data: EntityData;
22
+ document: MarkdownDocument;
23
+ }
24
+ export interface SearchOptions {
25
+ entityType?: EntityType;
26
+ query?: string;
27
+ filters?: Record<string, any>;
28
+ visibility?: Array<'public' | 'team' | 'admin' | 'restricted'>;
29
+ tags?: string[];
30
+ dateRange?: {
31
+ from: string;
32
+ to: string;
33
+ };
34
+ sortBy?: 'created_at' | 'updated_at' | 'relevance';
35
+ limit?: number;
36
+ }
37
+ export interface CreateEntityOptions {
38
+ entityType: EntityType;
39
+ entityId: string;
40
+ data: Record<string, any>;
41
+ content?: string;
42
+ commitMessage?: string;
43
+ }
44
+ export interface UpdateEntityOptions {
45
+ entityType: EntityType;
46
+ entityId: string;
47
+ data?: Record<string, any>;
48
+ content?: string;
49
+ commitMessage?: string;
50
+ }
51
+ export declare class BaseGraphManager {
52
+ private repoPath;
53
+ private gitService;
54
+ private markdownService;
55
+ private assetService?;
56
+ private gitUser;
57
+ private csvService;
58
+ constructor(config: GraphConfig);
59
+ /**
60
+ * Ensure repository exists
61
+ */
62
+ private ensureRepo;
63
+ /**
64
+ * Get entity file path
65
+ */
66
+ private getEntityPath;
67
+ /**
68
+ * Get entity folder path
69
+ */
70
+ private getEntityFolder;
71
+ /**
72
+ * Public alias for getEntityPath (used internally by dataset methods)
73
+ */
74
+ private getEntityPathPublic;
75
+ /**
76
+ * Validate entity data against schema
77
+ */
78
+ private validateEntity;
79
+ /**
80
+ * Create a new entity
81
+ */
82
+ create(options: CreateEntityOptions): Promise<EntityFile>;
83
+ /**
84
+ * Get an entity by type and ID
85
+ */
86
+ get(entityType: EntityType, entityId: string): EntityFile;
87
+ /**
88
+ * Update an existing entity
89
+ */
90
+ update(options: UpdateEntityOptions): Promise<EntityFile>;
91
+ /**
92
+ * Delete an entity
93
+ */
94
+ delete(entityType: EntityType, entityId: string, commitMessage?: string): Promise<void>;
95
+ /**
96
+ * List entities of a given type
97
+ */
98
+ list(entityType?: EntityType, limit?: number): EntityFile[];
99
+ /**
100
+ * Search entities
101
+ */
102
+ search(options: SearchOptions): EntityFile[];
103
+ /**
104
+ * Get entities related to a given entity (via wikilinks)
105
+ */
106
+ getRelated(entityType: EntityType, entityId: string): EntityFile[];
107
+ /**
108
+ * Get entities that link to a given entity (backlinks)
109
+ */
110
+ getBacklinks(entityType: EntityType, entityId: string): EntityFile[];
111
+ /**
112
+ * Validate wikilinks in an entity
113
+ */
114
+ validateWikilinks(entityType: EntityType, entityId: string): {
115
+ valid: string[];
116
+ broken: string[];
117
+ };
118
+ /**
119
+ * Refactor a wikilink (rename entity and update all references)
120
+ */
121
+ refactorWikilink(oldId: string, newId: string, commitMessage?: string): Promise<{
122
+ updated: number;
123
+ }>;
124
+ /**
125
+ * Upload asset for an entity
126
+ */
127
+ uploadAsset(repoName: string, entityType: EntityType, entityId: string, filename: string, buffer: Buffer): Promise<AssetInfo>;
128
+ /**
129
+ * List assets for an entity
130
+ */
131
+ listAssets(repoName: string, entityType: EntityType, entityId: string): Promise<AssetInfo[]>;
132
+ /**
133
+ * Delete an asset
134
+ */
135
+ deleteAsset(repoName: string, entityType: EntityType, entityId: string, filename: string): Promise<void>;
136
+ /**
137
+ * Delete all assets for an entity (when entity is deleted)
138
+ */
139
+ deleteAllAssets(repoName: string, entityType: EntityType, entityId: string): Promise<number>;
140
+ /**
141
+ * Get dataset rows, optionally filtered
142
+ */
143
+ getDatasetRows(entityId: string, filter?: DatasetFilter): DatasetRow[];
144
+ /**
145
+ * Append rows to a dataset entity
146
+ */
147
+ appendDatasetRows(entityId: string, newRows: DatasetRow[], commitMessage?: string): Promise<EntityFile>;
148
+ /**
149
+ * Get repository status
150
+ */
151
+ getStatus(): {
152
+ modified: string[];
153
+ added: string[];
154
+ deleted: string[];
155
+ untracked: string[];
156
+ };
157
+ /**
158
+ * Get commit history
159
+ */
160
+ getHistory(limit?: number): Array<{
161
+ hash: string;
162
+ message: string;
163
+ author: {
164
+ name: string;
165
+ email: string;
166
+ };
167
+ timestamp: number;
168
+ }>;
169
+ }