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.
Files changed (147) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +307 -10
  3. package/dist/agent/orchestrator.d.ts +17 -9
  4. package/dist/agent/orchestrator.js +95 -95
  5. package/dist/agent/orchestrator.js.map +1 -1
  6. package/dist/agent/prompts/system.md +168 -0
  7. package/dist/agent/skills/bundled/enrich-entities.md +124 -0
  8. package/dist/agent/skills/bundled/gather-context.md +46 -0
  9. package/dist/agent/skills/skill-loader.d.ts +48 -0
  10. package/dist/agent/skills/skill-loader.js +166 -0
  11. package/dist/agent/skills/skill-loader.js.map +1 -0
  12. package/dist/agent/tools/graph-tools.d.ts +20 -2
  13. package/dist/agent/tools/graph-tools.js +64 -8
  14. package/dist/agent/tools/graph-tools.js.map +1 -1
  15. package/dist/agent/tools/load-skill.d.ts +42 -0
  16. package/dist/agent/tools/load-skill.js +45 -0
  17. package/dist/agent/tools/load-skill.js.map +1 -0
  18. package/dist/agent/tools/tool-loader.d.ts +25 -0
  19. package/dist/agent/tools/tool-loader.js +73 -0
  20. package/dist/agent/tools/tool-loader.js.map +1 -0
  21. package/dist/cli/commands/app.d.ts +7 -0
  22. package/dist/cli/commands/app.js +167 -0
  23. package/dist/cli/commands/app.js.map +1 -0
  24. package/dist/cli/commands/config.d.ts +13 -0
  25. package/dist/cli/commands/config.js +276 -0
  26. package/dist/cli/commands/config.js.map +1 -0
  27. package/dist/cli/commands/connector.d.ts +33 -0
  28. package/dist/cli/commands/connector.js +170 -0
  29. package/dist/cli/commands/connector.js.map +1 -0
  30. package/dist/cli/commands/deploy.d.ts +11 -0
  31. package/dist/cli/commands/deploy.js +153 -0
  32. package/dist/cli/commands/deploy.js.map +1 -0
  33. package/dist/cli/commands/index.d.ts +15 -0
  34. package/dist/cli/commands/index.js +117 -0
  35. package/dist/cli/commands/index.js.map +1 -0
  36. package/dist/cli/commands/init.js +110 -28
  37. package/dist/cli/commands/init.js.map +1 -1
  38. package/dist/cli/commands/join.js +67 -22
  39. package/dist/cli/commands/join.js.map +1 -1
  40. package/dist/cli/commands/lint.d.ts +8 -0
  41. package/dist/cli/commands/lint.js +70 -0
  42. package/dist/cli/commands/lint.js.map +1 -0
  43. package/dist/cli/commands/mcp.d.ts +27 -0
  44. package/dist/cli/commands/mcp.js +56 -0
  45. package/dist/cli/commands/mcp.js.map +1 -0
  46. package/dist/cli/commands/provision.d.ts +8 -0
  47. package/dist/cli/commands/provision.js +112 -0
  48. package/dist/cli/commands/provision.js.map +1 -0
  49. package/dist/cli/commands/r2.d.ts +2 -0
  50. package/dist/cli/commands/r2.js +186 -4
  51. package/dist/cli/commands/r2.js.map +1 -1
  52. package/dist/cli/commands/serve.js +47 -2
  53. package/dist/cli/commands/serve.js.map +1 -1
  54. package/dist/cli/commands/start.js +210 -71
  55. package/dist/cli/commands/start.js.map +1 -1
  56. package/dist/cli/commands/sync.js +4 -4
  57. package/dist/cli/commands/sync.js.map +1 -1
  58. package/dist/cli/commands/update.d.ts +8 -0
  59. package/dist/cli/commands/update.js +155 -0
  60. package/dist/cli/commands/update.js.map +1 -0
  61. package/dist/cli/index.js +83 -3
  62. package/dist/cli/index.js.map +1 -1
  63. package/dist/cli/scaffolding.d.ts +9 -0
  64. package/dist/cli/scaffolding.js +288 -0
  65. package/dist/cli/scaffolding.js.map +1 -0
  66. package/dist/core/graph.d.ts +12 -1
  67. package/dist/core/graph.js +147 -78
  68. package/dist/core/graph.js.map +1 -1
  69. package/dist/core/migration-runner.d.ts +39 -0
  70. package/dist/core/migration-runner.js +221 -0
  71. package/dist/core/migration-runner.js.map +1 -0
  72. package/dist/core/migration-types.d.ts +101 -0
  73. package/dist/core/migration-types.js +21 -0
  74. package/dist/core/migration-types.js.map +1 -0
  75. package/dist/core/migrations/20260219-formalize-memory-location.d.ts +2 -0
  76. package/dist/core/migrations/20260219-formalize-memory-location.js +35 -0
  77. package/dist/core/migrations/20260219-formalize-memory-location.js.map +1 -0
  78. package/dist/core/migrations/20260220-add-workspace-metadata.d.ts +12 -0
  79. package/dist/core/migrations/20260220-add-workspace-metadata.js +65 -0
  80. package/dist/core/migrations/20260220-add-workspace-metadata.js.map +1 -0
  81. package/dist/core/migrations/20260220-add-workspace-readme.d.ts +11 -0
  82. package/dist/core/migrations/20260220-add-workspace-readme.js +82 -0
  83. package/dist/core/migrations/20260220-add-workspace-readme.js.map +1 -0
  84. package/dist/core/migrations/20260220-migrate-yaml-to-json.d.ts +9 -0
  85. package/dist/core/migrations/20260220-migrate-yaml-to-json.js +64 -0
  86. package/dist/core/migrations/20260220-migrate-yaml-to-json.js.map +1 -0
  87. package/dist/core/migrations/index.d.ts +11 -0
  88. package/dist/core/migrations/index.js +23 -0
  89. package/dist/core/migrations/index.js.map +1 -0
  90. package/dist/core/schema-registry.d.ts +36 -0
  91. package/dist/core/schema-registry.js +161 -0
  92. package/dist/core/schema-registry.js.map +1 -0
  93. package/dist/core/types.d.ts +242 -0
  94. package/dist/core/types.js +21 -0
  95. package/dist/core/types.js.map +1 -1
  96. package/dist/core/user-config.d.ts +10 -0
  97. package/dist/core/user-config.js +8 -0
  98. package/dist/core/user-config.js.map +1 -1
  99. package/dist/core/validation.d.ts +973 -32
  100. package/dist/core/validation.js +163 -4
  101. package/dist/core/validation.js.map +1 -1
  102. package/dist/core/workspace-manager.d.ts +26 -2
  103. package/dist/core/workspace-manager.js +113 -15
  104. package/dist/core/workspace-manager.js.map +1 -1
  105. package/dist/core/workspace.d.ts +8 -7
  106. package/dist/core/workspace.js +25 -13
  107. package/dist/core/workspace.js.map +1 -1
  108. package/dist/mcp/connector-manager.d.ts +61 -0
  109. package/dist/mcp/connector-manager.js +178 -0
  110. package/dist/mcp/connector-manager.js.map +1 -0
  111. package/dist/mcp/connectors/definitions.d.ts +43 -0
  112. package/dist/mcp/connectors/definitions.js +140 -0
  113. package/dist/mcp/connectors/definitions.js.map +1 -0
  114. package/dist/mcp/server.d.ts +11 -0
  115. package/dist/mcp/server.js +28 -0
  116. package/dist/mcp/server.js.map +1 -0
  117. package/dist/mcp/tools.d.ts +14 -0
  118. package/dist/mcp/tools.js +172 -0
  119. package/dist/mcp/tools.js.map +1 -0
  120. package/dist/server/index.js +17 -4
  121. package/dist/server/index.js.map +1 -1
  122. package/dist/server/plugin-loader.d.ts +8 -0
  123. package/dist/server/plugin-loader.js +14 -0
  124. package/dist/server/plugin-loader.js.map +1 -1
  125. package/dist/server/routes/graph-api.js +1 -1
  126. package/dist/server/routes/graph-api.js.map +1 -1
  127. package/dist/server/routes/webhook.js +33 -0
  128. package/dist/server/routes/webhook.js.map +1 -1
  129. package/dist/services/github-provisioner.d.ts +1 -0
  130. package/dist/services/github-provisioner.js +11 -0
  131. package/dist/services/github-provisioner.js.map +1 -1
  132. package/dist/services/lint-service.d.ts +27 -0
  133. package/dist/services/lint-service.js +76 -0
  134. package/dist/services/lint-service.js.map +1 -0
  135. package/dist/services/markdown.d.ts +9 -0
  136. package/dist/services/markdown.js +23 -2
  137. package/dist/services/markdown.js.map +1 -1
  138. package/dist/services/memory-service.d.ts +1 -2
  139. package/dist/services/memory-service.js +6 -4
  140. package/dist/services/memory-service.js.map +1 -1
  141. package/dist/services/vector-service.d.ts +77 -0
  142. package/dist/services/vector-service.js +280 -0
  143. package/dist/services/vector-service.js.map +1 -0
  144. package/dist/utils/version-checker.d.ts +23 -0
  145. package/dist/utils/version-checker.js +116 -0
  146. package/dist/utils/version-checker.js.map +1 -0
  147. package/package.json +10 -6
@@ -5,6 +5,9 @@
5
5
  */
6
6
  import { Command } from 'commander';
7
7
  import { intro, text, select, confirm, outro, spinner, log } from '@clack/prompts';
8
+ import { existsSync, mkdirSync, writeFileSync, readFileSync, appendFileSync } from 'fs';
9
+ import { execSync } from 'child_process';
10
+ import { join, resolve } from 'path';
8
11
  import { Workspace } from '../../core/workspace.js';
9
12
  import { RepoType } from '../../core/types.js';
10
13
  import { loadToken, runDeviceFlow, storeToken, getGitHubUser, getAuthenticatedOctokit } from '../../auth/github.js';
@@ -134,26 +137,32 @@ const INDUSTRY_TEMPLATES = {
134
137
  },
135
138
  };
136
139
  export const initCommand = new Command('init')
137
- .description('Initialize a new Studiograph workspace in the current directory')
140
+ .description('Initialize a new Studiograph workspace')
141
+ .argument('<team-name>', 'Name of your team (e.g., "Acme Studios")')
142
+ .argument('[directory]', 'Directory to create workspace in (default: derived from team name, use "." for current directory)')
138
143
  .option('--bare', 'Create minimal workspace without scaffolding')
144
+ .option('--template <type>', 'Firm template: design-studio, marketing-agency, content-shop, experiential-firm, digital-studio, consulting-firm, architecture-studio, creative-tech')
139
145
  .option('--github', 'Automatically create GitHub repos after init')
140
146
  .option('--github-org <org>', 'GitHub org to create repos in (implies --github)')
141
- .action(async (options) => {
147
+ .action(async (teamName, directory, options) => {
142
148
  intro('Studiograph Workspace Setup');
143
149
  const ready = runPreflight();
144
150
  if (!ready) {
145
151
  process.exit(1);
146
152
  return;
147
153
  }
148
- const workspace = new Workspace();
149
- // Check if already initialized
150
- if (workspace.isWorkspace()) {
151
- outro('❌ Already a Studiograph workspace');
152
- process.exit(1);
153
- }
154
154
  let selectedTemplate = null;
155
+ // Use --template flag if provided
156
+ if (options.template) {
157
+ const validTemplates = ['design-studio', 'marketing-agency', 'content-shop', 'experiential-firm', 'digital-studio', 'consulting-firm', 'architecture-studio', 'creative-tech'];
158
+ if (!validTemplates.includes(options.template)) {
159
+ outro(`❌ Invalid template: ${options.template}. Valid options: ${validTemplates.join(', ')}`);
160
+ process.exit(1);
161
+ }
162
+ selectedTemplate = options.template;
163
+ }
155
164
  // Skip template selection if --bare flag is used
156
- if (!options.bare) {
165
+ else if (!options.bare) {
157
166
  // Ask which type of creative firm
158
167
  const firmType = await select({
159
168
  message: 'What type of creative firm are you?',
@@ -175,32 +184,83 @@ export const initCommand = new Command('init')
175
184
  }
176
185
  selectedTemplate = firmType === 'bare' ? null : firmType;
177
186
  }
178
- // Get team name
179
- const teamName = await text({
180
- message: 'What is your team name?',
181
- placeholder: 'Acme Studios',
182
- validate: (value) => {
183
- if (!value)
184
- return 'Team name is required';
185
- },
186
- });
187
- if (typeof teamName !== 'string') {
188
- outro('Cancelled');
189
- process.exit(0);
187
+ // Determine target directory
188
+ let targetDir;
189
+ if (directory === '.') {
190
+ // Use current directory (must be empty or non-existent)
191
+ targetDir = process.cwd();
192
+ const workspace = new Workspace(targetDir);
193
+ if (workspace.isWorkspace()) {
194
+ outro('❌ Already a Studiograph workspace');
195
+ process.exit(1);
196
+ }
197
+ }
198
+ else if (directory) {
199
+ // Use specified directory
200
+ targetDir = resolve(directory);
201
+ }
202
+ else {
203
+ // Auto-generate from team name slug
204
+ const slug = teamName.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '');
205
+ targetDir = resolve(slug);
206
+ }
207
+ // Check if target directory exists and has .studiograph
208
+ const studiographDir = join(targetDir, '.studiograph');
209
+ if (existsSync(studiographDir)) {
210
+ outro(`❌ A .studiograph directory already exists at ${targetDir}`);
211
+ process.exit(1);
212
+ }
213
+ // Create target directory if needed
214
+ if (!existsSync(targetDir)) {
215
+ mkdirSync(targetDir, { recursive: true });
216
+ log.info(`Created directory: ${targetDir}`);
217
+ }
218
+ else if (directory !== '.') {
219
+ // Directory exists but is not current dir - check if empty
220
+ const { readdirSync } = await import('fs');
221
+ const files = readdirSync(targetDir);
222
+ if (files.length > 0) {
223
+ const proceed = await confirm({
224
+ message: `Directory ${targetDir} is not empty. Continue anyway?`,
225
+ initialValue: false,
226
+ });
227
+ if (!proceed || typeof proceed === 'symbol') {
228
+ outro('Cancelled');
229
+ process.exit(0);
230
+ }
231
+ }
190
232
  }
191
233
  // Initialize workspace
234
+ const workspace = new Workspace(targetDir);
192
235
  const s = spinner();
193
236
  s.start('Creating workspace...');
194
237
  try {
195
238
  workspace.init(teamName);
196
239
  s.stop('Workspace created');
240
+ // Create private/ directory and add to .gitignore
241
+ const workspacePath = workspace.getWorkspacePath();
242
+ const privatePath = join(workspacePath, 'private');
243
+ if (!existsSync(privatePath)) {
244
+ mkdirSync(privatePath, { recursive: true });
245
+ }
246
+ const gitignorePath = join(workspacePath, '.gitignore');
247
+ const entry = 'private/';
248
+ if (existsSync(gitignorePath)) {
249
+ const content = readFileSync(gitignorePath, 'utf-8');
250
+ if (!content.split('\n').some((line) => line.trim() === entry)) {
251
+ appendFileSync(gitignorePath, `\n${entry}\n`);
252
+ }
253
+ }
254
+ else {
255
+ writeFileSync(gitignorePath, `${entry}\n`);
256
+ }
197
257
  // If template selected, create repos
198
258
  if (selectedTemplate && INDUSTRY_TEMPLATES[selectedTemplate]) {
199
259
  const template = INDUSTRY_TEMPLATES[selectedTemplate];
200
260
  s.start(`Setting up ${template.name} repos...`);
201
261
  // Create function repos
202
262
  for (const repo of template.functionRepos) {
203
- workspace.registerRepo({
263
+ await workspace.registerRepo({
204
264
  name: repo.name,
205
265
  type: RepoType.FUNCTION,
206
266
  description: repo.description,
@@ -208,13 +268,17 @@ export const initCommand = new Command('init')
208
268
  }
209
269
  // Create shared resource repos
210
270
  for (const repo of template.sharedRepos) {
211
- workspace.registerRepo({
271
+ await workspace.registerRepo({
212
272
  name: repo.name,
213
273
  type: RepoType.SHARED_RESOURCE,
214
274
  description: repo.description,
215
275
  });
216
276
  }
217
277
  s.stop(`Created ${template.functionRepos.length + template.sharedRepos.length} repos`);
278
+ s.start('Creating example entities...');
279
+ const { scaffoldExampleEntities } = await import('../scaffolding.js');
280
+ await scaffoldExampleEntities(workspace, teamName);
281
+ s.stop('Example entities created');
218
282
  }
219
283
  // --- GitHub provisioning ---
220
284
  const wantsGitHub = options.githubOrg || options.github;
@@ -253,7 +317,7 @@ export const initCommand = new Command('init')
253
317
  githubOrg = orgInput;
254
318
  }
255
319
  const octokit = getAuthenticatedOctokit(stored.token);
256
- const currentConfig = workspace.loadConfig();
320
+ const currentConfig = await workspace.loadConfig();
257
321
  const provisionSpinner = spinner();
258
322
  provisionSpinner.start('Creating GitHub repos...');
259
323
  try {
@@ -267,13 +331,30 @@ export const initCommand = new Command('init')
267
331
  // Write back updated config with github_urls + org
268
332
  updatedConfig.github = { org: githubOrg };
269
333
  workspace.writeConfig(updatedConfig);
334
+ // Push updated workspace.json back to config repo
335
+ provisionSpinner.message('Updating config repo with GitHub URLs...');
336
+ const configPath = workspace.getWorkspacePath() + '/.studiograph';
337
+ try {
338
+ execSync('git add workspace.json', { cwd: configPath, stdio: 'pipe' });
339
+ execSync('git commit -m "Add GitHub URLs to workspace config"', { cwd: configPath, stdio: 'pipe' });
340
+ execSync('git push origin main', { cwd: configPath, stdio: 'pipe' });
341
+ }
342
+ catch (err) {
343
+ // If nothing to commit or push fails, continue anyway
344
+ }
270
345
  provisionSpinner.stop('GitHub repos created');
271
346
  const label = selectedTemplate && INDUSTRY_TEMPLATES[selectedTemplate]
272
347
  ? INDUSTRY_TEMPLATES[selectedTemplate].name
273
348
  : null;
349
+ const configRepoName = `${currentConfig.team_name.toLowerCase().replace(/[^a-z0-9]+/g, '-')}-config`;
350
+ const configRepoUrl = `https://github.com/${githubOrg}/${configRepoName}.git`;
351
+ const nextStep = directory === '.' ? '' : `\n\nNext: cd ${targetDir} && studiograph start`;
352
+ log.success('All repos pushed to GitHub!');
353
+ log.info(`\nTo join this workspace from another machine:`);
354
+ log.info(` studiograph join ${configRepoUrl}`);
274
355
  outro(label
275
- ? `✨ ${label} workspace initialized with GitHub repos!`
276
- : '✨ Workspace initialized with GitHub repos!');
356
+ ? `✨ ${label} workspace initialized with GitHub repos!${nextStep}`
357
+ : `✨ Workspace initialized with GitHub repos!${nextStep}`);
277
358
  }
278
359
  catch (provisionError) {
279
360
  provisionSpinner.stop('Failed to provision GitHub repos');
@@ -285,9 +366,10 @@ export const initCommand = new Command('init')
285
366
  const label = selectedTemplate && INDUSTRY_TEMPLATES[selectedTemplate]
286
367
  ? INDUSTRY_TEMPLATES[selectedTemplate].name
287
368
  : null;
369
+ const nextStep = directory === '.' ? '' : `\n\nNext: cd ${targetDir} && studiograph start`;
288
370
  outro(label
289
- ? `✨ ${label} workspace initialized!`
290
- : '✨ Workspace initialized!');
371
+ ? `✨ ${label} workspace initialized!${nextStep}`
372
+ : `✨ Workspace initialized!${nextStep}`);
291
373
  }
292
374
  }
293
375
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -46,9 +46,9 @@ function canAccess(role, access) {
46
46
  export const joinCommand = new Command('join')
47
47
  .description('Join an existing Studiograph workspace')
48
48
  .argument('<workspace-url>', 'GitHub URL to the .studiograph config repo')
49
- .option('--dir <path>', 'Target directory for the workspace (default: current directory)')
49
+ .argument('[directory]', 'Directory to create workspace in (default: derived from workspace name, use "." for current directory)')
50
50
  .option('--github-username <username>', 'Your GitHub username (used to detect your role)')
51
- .action(async (workspaceUrl, options) => {
51
+ .action(async (workspaceUrl, directory, options) => {
52
52
  intro('Join Studiograph Workspace');
53
53
  const ready = runPreflight();
54
54
  if (!ready) {
@@ -56,36 +56,81 @@ export const joinCommand = new Command('join')
56
56
  return;
57
57
  }
58
58
  try {
59
- // Step 1: Resolve target directory
60
- const targetDir = resolve(options.dir ?? process.cwd());
61
- const studiographDir = join(targetDir, '.studiograph');
62
- if (existsSync(studiographDir)) {
63
- outro('❌ A .studiograph directory already exists here. Choose a different directory with --dir or remove the existing one.');
64
- process.exit(1);
65
- return;
66
- }
67
- mkdirSync(targetDir, { recursive: true });
68
- // Step 2: Clone the .studiograph config repo
59
+ // Step 1: Clone config repo to temp location first (to get workspace name)
60
+ const tempDir = join(process.cwd(), '.studiograph-temp-' + Date.now());
61
+ mkdirSync(tempDir, { recursive: true });
69
62
  const cloneSpinner = spinner();
70
- cloneSpinner.start('Cloning workspace configuration...');
63
+ cloneSpinner.start('Fetching workspace configuration...');
71
64
  try {
72
- gitClone(workspaceUrl, studiographDir);
73
- cloneSpinner.stop('Workspace configuration cloned');
65
+ gitClone(workspaceUrl, join(tempDir, '.studiograph'));
66
+ cloneSpinner.stop('Configuration fetched');
74
67
  }
75
68
  catch {
76
69
  cloneSpinner.stop('Failed');
70
+ // Clean up temp dir
71
+ const { rmSync } = await import('fs');
72
+ rmSync(tempDir, { recursive: true, force: true });
77
73
  outro(`❌ Could not clone ${workspaceUrl}. Check the URL and your access permissions.`);
78
74
  process.exit(1);
79
75
  return;
80
76
  }
81
- // Step 3: Load workspace config and team roster
82
- const workspace = new Workspace(targetDir);
83
- if (!workspace.isWorkspace()) {
84
- outro('❌ The cloned repo does not appear to be a valid Studiograph workspace (missing workspace.json).');
77
+ // Load config to get workspace name
78
+ const tempWorkspace = new Workspace(tempDir);
79
+ const tempConfig = await tempWorkspace.loadConfig();
80
+ // Determine target directory
81
+ let targetDir;
82
+ if (directory === '.') {
83
+ // Use current directory
84
+ targetDir = process.cwd();
85
+ }
86
+ else if (directory) {
87
+ // Use specified directory
88
+ targetDir = resolve(directory);
89
+ }
90
+ else {
91
+ // Auto-generate from workspace name slug
92
+ const slug = tempConfig.team_name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '');
93
+ targetDir = resolve(slug);
94
+ }
95
+ // Check if target directory has .studiograph
96
+ const studiographDir = join(targetDir, '.studiograph');
97
+ if (existsSync(studiographDir)) {
98
+ // Clean up temp dir
99
+ const { rmSync } = await import('fs');
100
+ rmSync(tempDir, { recursive: true, force: true });
101
+ outro(`❌ A .studiograph directory already exists at ${targetDir}`);
85
102
  process.exit(1);
86
103
  return;
87
104
  }
88
- const config = workspace.loadConfig();
105
+ // Create target directory if needed
106
+ if (!existsSync(targetDir)) {
107
+ mkdirSync(targetDir, { recursive: true });
108
+ log.info(`Created directory: ${targetDir}`);
109
+ }
110
+ else if (directory !== '.') {
111
+ // Directory exists but is not current dir - check if empty
112
+ const { readdirSync, rmSync } = await import('fs');
113
+ const files = readdirSync(targetDir);
114
+ if (files.length > 0) {
115
+ const proceed = await confirm({
116
+ message: `Directory ${targetDir} is not empty. Continue anyway?`,
117
+ initialValue: false,
118
+ });
119
+ if (!proceed || typeof proceed === 'symbol') {
120
+ rmSync(tempDir, { recursive: true, force: true });
121
+ outro('Cancelled');
122
+ process.exit(0);
123
+ return;
124
+ }
125
+ }
126
+ }
127
+ // Move temp .studiograph to target directory
128
+ const { renameSync, rmSync } = await import('fs');
129
+ renameSync(join(tempDir, '.studiograph'), studiographDir);
130
+ rmSync(tempDir, { recursive: true, force: true });
131
+ // Step 2: Load workspace config and team roster
132
+ const workspace = new Workspace(targetDir);
133
+ const config = await workspace.loadConfig();
89
134
  const members = workspace.loadMembers();
90
135
  log.info(`Workspace: ${config.team_name}`);
91
136
  log.info(`${config.repos.length} repositor${config.repos.length === 1 ? 'y' : 'ies'} in workspace`);
@@ -214,9 +259,9 @@ export const joinCommand = new Command('join')
214
259
  if (failed > 0)
215
260
  parts.push(`${failed} failed`);
216
261
  const summary = parts.join(', ');
217
- const nextStep = `\ncd ${targetDir}\nstudiograph start`;
262
+ const nextStep = directory === '.' ? '' : `\n\nNext: cd ${targetDir} && studiograph start`;
218
263
  if (failed > 0) {
219
- outro(`⚠️ Joined ${config.team_name} with issues (${summary}). Ask a workspace admin to verify your repo access.\n${nextStep}`);
264
+ outro(`⚠️ Joined ${config.team_name} with issues (${summary}). Ask a workspace admin to verify your repo access.${nextStep}`);
220
265
  }
221
266
  else {
222
267
  outro(`✨ Joined ${config.team_name} workspace (${summary})${nextStep}`);
@@ -1 +1 @@
1
- {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../src/cli/commands/join.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../src/cli/commands/join.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * studiograph lint command
3
+ *
4
+ * Schema-aware completeness checker — walks all entities and flags missing
5
+ * recommended fields.
6
+ */
7
+ import { Command } from 'commander';
8
+ export declare const lintCommand: Command;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * studiograph lint command
3
+ *
4
+ * Schema-aware completeness checker — walks all entities and flags missing
5
+ * recommended fields.
6
+ */
7
+ import { Command } from 'commander';
8
+ import { Workspace } from '../../core/workspace.js';
9
+ import { WorkspaceManager } from '../../core/workspace-manager.js';
10
+ import { intro, outro, spinner } from '@clack/prompts';
11
+ import { lintWorkspace } from '../../services/lint-service.js';
12
+ export const lintCommand = new Command('lint')
13
+ .description('Check for missing or incomplete entity fields across the workspace')
14
+ .option('--fix', 'Suggest fixes for incomplete records (future)', false)
15
+ .action(async (options) => {
16
+ intro('Studiograph Lint');
17
+ const s = spinner();
18
+ s.start('Loading workspace');
19
+ try {
20
+ const workspace = new Workspace();
21
+ if (!workspace.isWorkspace()) {
22
+ console.error('❌ Not a Studiograph workspace. Run `studiograph init` first.');
23
+ process.exit(1);
24
+ }
25
+ const config = await workspace.loadConfig();
26
+ const gitUser = { id: 'system', name: 'system', email: 'system@local' };
27
+ const cliUser = { id: 'system', name: 'system', email: 'system@local', role: 'admin' };
28
+ const manager = new WorkspaceManager(process.cwd(), config, gitUser, cliUser);
29
+ s.message('Scanning entities');
30
+ const issues = await lintWorkspace(manager);
31
+ s.stop('Scan complete');
32
+ if (issues.length === 0) {
33
+ outro('✅ No issues found — all entities are complete!');
34
+ return;
35
+ }
36
+ // Group issues by entity type
37
+ const grouped = new Map();
38
+ for (const issue of issues) {
39
+ const key = issue.entityType;
40
+ if (!grouped.has(key))
41
+ grouped.set(key, []);
42
+ grouped.get(key).push(issue);
43
+ }
44
+ console.log('');
45
+ console.log(`Found ${issues.length} incomplete entities:\n`);
46
+ for (const [entityType, typeIssues] of grouped.entries()) {
47
+ console.log(`${entityType.toUpperCase()} (${typeIssues.length} incomplete)`);
48
+ // Show up to 5 examples per type
49
+ const examples = typeIssues.slice(0, 5);
50
+ for (const issue of examples) {
51
+ console.log(` - ${issue.repo}/${issue.entityType}/${issue.entityId}`);
52
+ console.log(` Missing: ${issue.missingFields.join(', ')}`);
53
+ }
54
+ if (typeIssues.length > 5) {
55
+ console.log(` ... and ${typeIssues.length - 5} more`);
56
+ }
57
+ console.log('');
58
+ }
59
+ if (options.fix) {
60
+ console.log('--fix flag is not yet implemented (future feature)');
61
+ }
62
+ outro('Lint complete');
63
+ }
64
+ catch (error) {
65
+ s.stop('Error');
66
+ console.error('Failed to lint workspace:', error instanceof Error ? error.message : error);
67
+ process.exit(1);
68
+ }
69
+ });
70
+ //# sourceMappingURL=lint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/cli/commands/lint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * studiograph mcp
3
+ *
4
+ * Starts the Studiograph MCP server for integration with Claude Desktop
5
+ * and other MCP-compatible clients.
6
+ *
7
+ * The server communicates over stdio (JSON-RPC). Claude Desktop spawns this
8
+ * process and communicates directly — no HTTP port is opened.
9
+ *
10
+ * Claude Desktop config (~/.config/Claude/claude_desktop_config.json or
11
+ * ~/Library/Application Support/Claude/claude_desktop_config.json):
12
+ *
13
+ * {
14
+ * "mcpServers": {
15
+ * "studiograph": {
16
+ * "command": "studiograph",
17
+ * "args": ["mcp"],
18
+ * "cwd": "/absolute/path/to/your/workspace"
19
+ * }
20
+ * }
21
+ * }
22
+ *
23
+ * NOTE: Do not use console.log() in this process — stdout is owned by the
24
+ * MCP protocol. Use console.error() for any diagnostic output.
25
+ */
26
+ import { Command } from 'commander';
27
+ export declare const mcpCommand: Command;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * studiograph mcp
3
+ *
4
+ * Starts the Studiograph MCP server for integration with Claude Desktop
5
+ * and other MCP-compatible clients.
6
+ *
7
+ * The server communicates over stdio (JSON-RPC). Claude Desktop spawns this
8
+ * process and communicates directly — no HTTP port is opened.
9
+ *
10
+ * Claude Desktop config (~/.config/Claude/claude_desktop_config.json or
11
+ * ~/Library/Application Support/Claude/claude_desktop_config.json):
12
+ *
13
+ * {
14
+ * "mcpServers": {
15
+ * "studiograph": {
16
+ * "command": "studiograph",
17
+ * "args": ["mcp"],
18
+ * "cwd": "/absolute/path/to/your/workspace"
19
+ * }
20
+ * }
21
+ * }
22
+ *
23
+ * NOTE: Do not use console.log() in this process — stdout is owned by the
24
+ * MCP protocol. Use console.error() for any diagnostic output.
25
+ */
26
+ import { Command } from 'commander';
27
+ import { Workspace } from '../../core/workspace.js';
28
+ import { WorkspaceManager } from '../../core/workspace-manager.js';
29
+ import { loadUserConfig } from '../../core/user-config.js';
30
+ import { startMcpServer } from '../../mcp/server.js';
31
+ export const mcpCommand = new Command('mcp')
32
+ .description('Start the Studiograph MCP server for Claude Desktop integration')
33
+ .action(async () => {
34
+ const workspace = new Workspace();
35
+ if (!workspace.isWorkspace()) {
36
+ process.stderr.write('Not a Studiograph workspace.\n' +
37
+ 'Run `studiograph init` first, or set the cwd in your Claude Desktop config ' +
38
+ 'to the root of your workspace.\n');
39
+ process.exit(1);
40
+ }
41
+ const config = await workspace.loadConfig();
42
+ // Propagate Anthropic API key from user config if not already set
43
+ const userConfig = loadUserConfig();
44
+ if (userConfig.api_key && !process.env.ANTHROPIC_API_KEY) {
45
+ process.env.ANTHROPIC_API_KEY = userConfig.api_key;
46
+ }
47
+ // MCP uses a service identity for git commits made via create/update tools
48
+ const gitUser = {
49
+ id: 'mcp',
50
+ name: 'Studiograph MCP',
51
+ email: 'noreply@studiograph.local',
52
+ };
53
+ const workspaceManager = new WorkspaceManager(process.cwd(), config, gitUser, { ...gitUser, role: 'admin' });
54
+ await startMcpServer(workspaceManager);
55
+ });
56
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACzC,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAElC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gCAAgC;YAChC,6EAA6E;YAC7E,kCAAkC,CACnC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;IAE5C,kEAAkE;IAClE,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC;IACrD,CAAC;IAED,2EAA2E;IAC3E,MAAM,OAAO,GAAG;QACd,EAAE,EAAK,KAAK;QACZ,IAAI,EAAG,iBAAiB;QACxB,KAAK,EAAE,2BAA2B;KACnC,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAC3C,OAAO,CAAC,GAAG,EAAE,EACb,MAAM,EACN,OAAO,EACP,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAgB,EAAE,CACvC,CAAC;IAEF,MAAM,cAAc,CAAC,gBAAgB,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * studiograph provision
3
+ *
4
+ * Provisions an existing local workspace to GitHub, creating repos for all
5
+ * content directories and the .studiograph config directory.
6
+ */
7
+ import { Command } from 'commander';
8
+ export declare const provisionCommand: Command;