studiograph 1.2.0-beta.7 → 1.2.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 (205) hide show
  1. package/README.md +13 -18
  2. package/dist/agent/orchestrator.d.ts +57 -0
  3. package/dist/agent/orchestrator.js +169 -22
  4. package/dist/agent/orchestrator.js.map +1 -1
  5. package/dist/agent/prompts/system.md +51 -63
  6. package/dist/agent/skill-loader.js +8 -0
  7. package/dist/agent/skill-loader.js.map +1 -1
  8. package/dist/agent/skills/entity-schema.md +4 -19
  9. package/dist/agent/skills/gather-context.md +1 -1
  10. package/dist/agent/skills/sync-setup.md +17 -1
  11. package/dist/agent/tools/graph-tools.d.ts +41 -1
  12. package/dist/agent/tools/graph-tools.js +133 -57
  13. package/dist/agent/tools/graph-tools.js.map +1 -1
  14. package/dist/agent/tools/ops-tools.js +82 -0
  15. package/dist/agent/tools/ops-tools.js.map +1 -1
  16. package/dist/agent/tools/permission-tools.d.ts +90 -0
  17. package/dist/agent/tools/permission-tools.js +207 -0
  18. package/dist/agent/tools/permission-tools.js.map +1 -0
  19. package/dist/agent/tools/sync-tools.d.ts +9 -1
  20. package/dist/agent/tools/sync-tools.js +259 -3
  21. package/dist/agent/tools/sync-tools.js.map +1 -1
  22. package/dist/auth/github.d.ts +1 -1
  23. package/dist/auth/github.js +21 -13
  24. package/dist/auth/github.js.map +1 -1
  25. package/dist/cli/commands/access.d.ts +11 -0
  26. package/dist/cli/commands/access.js +156 -0
  27. package/dist/cli/commands/access.js.map +1 -0
  28. package/dist/cli/commands/app.js +25 -2
  29. package/dist/cli/commands/app.js.map +1 -1
  30. package/dist/cli/commands/clear.d.ts +5 -0
  31. package/dist/cli/commands/clear.js +36 -0
  32. package/dist/cli/commands/clear.js.map +1 -0
  33. package/dist/cli/commands/clone.js +3 -3
  34. package/dist/cli/commands/clone.js.map +1 -1
  35. package/dist/cli/commands/collection.d.ts +10 -0
  36. package/dist/cli/commands/collection.js +187 -0
  37. package/dist/cli/commands/collection.js.map +1 -0
  38. package/dist/cli/commands/commit.js +2 -1
  39. package/dist/cli/commands/commit.js.map +1 -1
  40. package/dist/cli/commands/config.d.ts +100 -0
  41. package/dist/cli/commands/config.js +1 -1
  42. package/dist/cli/commands/config.js.map +1 -1
  43. package/dist/cli/commands/deploy.js +10 -1
  44. package/dist/cli/commands/deploy.js.map +1 -1
  45. package/dist/cli/commands/index.js +1 -1
  46. package/dist/cli/commands/index.js.map +1 -1
  47. package/dist/cli/commands/init.js +32 -40
  48. package/dist/cli/commands/init.js.map +1 -1
  49. package/dist/cli/commands/join.d.ts +0 -6
  50. package/dist/cli/commands/join.js +26 -111
  51. package/dist/cli/commands/join.js.map +1 -1
  52. package/dist/cli/commands/lint.js +1 -2
  53. package/dist/cli/commands/lint.js.map +1 -1
  54. package/dist/cli/commands/mcp.js +6 -5
  55. package/dist/cli/commands/mcp.js.map +1 -1
  56. package/dist/cli/commands/org.d.ts +10 -0
  57. package/dist/cli/commands/org.js +132 -0
  58. package/dist/cli/commands/org.js.map +1 -0
  59. package/dist/cli/commands/orphans.js +1 -2
  60. package/dist/cli/commands/orphans.js.map +1 -1
  61. package/dist/cli/commands/provision.js +3 -3
  62. package/dist/cli/commands/provision.js.map +1 -1
  63. package/dist/cli/commands/resolve.d.ts +8 -0
  64. package/dist/cli/commands/resolve.js +85 -0
  65. package/dist/cli/commands/resolve.js.map +1 -0
  66. package/dist/cli/commands/serve.js +55 -25
  67. package/dist/cli/commands/serve.js.map +1 -1
  68. package/dist/cli/commands/start.js +25 -206
  69. package/dist/cli/commands/start.js.map +1 -1
  70. package/dist/cli/commands/sync.js +53 -8
  71. package/dist/cli/commands/sync.js.map +1 -1
  72. package/dist/cli/commands/team.d.ts +12 -0
  73. package/dist/cli/commands/team.js +185 -0
  74. package/dist/cli/commands/team.js.map +1 -0
  75. package/dist/cli/index.js +41 -34
  76. package/dist/cli/index.js.map +1 -1
  77. package/dist/cli/scaffolding.d.ts +5 -3
  78. package/dist/cli/scaffolding.js +191 -97
  79. package/dist/cli/scaffolding.js.map +1 -1
  80. package/dist/cli/setup-wizard.js +20 -10
  81. package/dist/cli/setup-wizard.js.map +1 -1
  82. package/dist/cli/sync-review-interactive.js +1 -1
  83. package/dist/cli/sync-review-interactive.js.map +1 -1
  84. package/dist/core/graph.d.ts +7 -10
  85. package/dist/core/graph.js +88 -89
  86. package/dist/core/graph.js.map +1 -1
  87. package/dist/core/types.d.ts +19 -34
  88. package/dist/core/types.js +3 -21
  89. package/dist/core/types.js.map +1 -1
  90. package/dist/core/user-config.d.ts +27 -0
  91. package/dist/core/user-config.js +51 -0
  92. package/dist/core/user-config.js.map +1 -1
  93. package/dist/core/validation.d.ts +978 -2182
  94. package/dist/core/validation.js +242 -397
  95. package/dist/core/validation.js.map +1 -1
  96. package/dist/core/workspace-manager.d.ts +32 -31
  97. package/dist/core/workspace-manager.js +171 -186
  98. package/dist/core/workspace-manager.js.map +1 -1
  99. package/dist/core/workspace.d.ts +0 -5
  100. package/dist/core/workspace.js +33 -101
  101. package/dist/core/workspace.js.map +1 -1
  102. package/dist/lib/lib/utils.d.ts +2 -0
  103. package/dist/lib/lib/utils.js +6 -0
  104. package/dist/lib/lib/utils.js.map +1 -0
  105. package/dist/mcp/tools.js +13 -13
  106. package/dist/mcp/tools.js.map +1 -1
  107. package/dist/server/chrome/chrome.css +562 -0
  108. package/dist/server/chrome/chrome.js +540 -0
  109. package/dist/server/index.js +163 -10
  110. package/dist/server/index.js.map +1 -1
  111. package/dist/server/plugin-loader.d.ts +7 -0
  112. package/dist/server/plugin-loader.js +9 -1
  113. package/dist/server/plugin-loader.js.map +1 -1
  114. package/dist/server/routes/chat.d.ts +3 -2
  115. package/dist/server/routes/chat.js +67 -16
  116. package/dist/server/routes/chat.js.map +1 -1
  117. package/dist/server/routes/git-api.d.ts +9 -0
  118. package/dist/server/routes/git-api.js +82 -0
  119. package/dist/server/routes/git-api.js.map +1 -0
  120. package/dist/server/routes/graph-api.d.ts +2 -2
  121. package/dist/server/routes/graph-api.js +267 -3
  122. package/dist/server/routes/graph-api.js.map +1 -1
  123. package/dist/server/routes/permissions-api.d.ts +9 -0
  124. package/dist/server/routes/permissions-api.js +176 -0
  125. package/dist/server/routes/permissions-api.js.map +1 -0
  126. package/dist/server/routes/workspace-api.d.ts +9 -0
  127. package/dist/server/routes/workspace-api.js +283 -0
  128. package/dist/server/routes/workspace-api.js.map +1 -0
  129. package/dist/services/assets/base.d.ts +2 -2
  130. package/dist/services/assets/base.js +4 -4
  131. package/dist/services/assets/base.js.map +1 -1
  132. package/dist/services/assets/index.d.ts +6 -6
  133. package/dist/services/assets/index.js +12 -12
  134. package/dist/services/assets/index.js.map +1 -1
  135. package/dist/services/git.d.ts +35 -0
  136. package/dist/services/git.js +93 -0
  137. package/dist/services/git.js.map +1 -1
  138. package/dist/services/github-provisioner.js +1 -2
  139. package/dist/services/github-provisioner.js.map +1 -1
  140. package/dist/services/github-service.d.ts +99 -0
  141. package/dist/services/github-service.js +310 -0
  142. package/dist/services/github-service.js.map +1 -0
  143. package/dist/services/markdown.js +4 -9
  144. package/dist/services/markdown.js.map +1 -1
  145. package/dist/services/memory-service.d.ts +4 -0
  146. package/dist/services/memory-service.js +13 -1
  147. package/dist/services/memory-service.js.map +1 -1
  148. package/dist/services/sync/commit.d.ts +2 -0
  149. package/dist/services/sync/commit.js +21 -6
  150. package/dist/services/sync/commit.js.map +1 -1
  151. package/dist/services/sync/graphrag-indexer.js +2 -2
  152. package/dist/services/sync/graphrag-indexer.js.map +1 -1
  153. package/dist/utils/git.d.ts +5 -0
  154. package/dist/utils/git.js +10 -0
  155. package/dist/utils/git.js.map +1 -1
  156. package/dist/utils/merge-resolver.d.ts +33 -8
  157. package/dist/utils/merge-resolver.js +157 -55
  158. package/dist/utils/merge-resolver.js.map +1 -1
  159. package/dist/utils/preflight.d.ts +1 -1
  160. package/dist/utils/preflight.js +1 -1
  161. package/dist/web/_app/env.js +1 -0
  162. package/dist/web/_app/immutable/assets/0.CDbX4Cwz.css +1 -0
  163. package/dist/web/_app/immutable/assets/2.DRHi7ABa.css +1 -0
  164. package/dist/web/_app/immutable/assets/3.BJy7pVXi.css +1 -0
  165. package/dist/web/_app/immutable/assets/4.Ad16uh9o.css +1 -0
  166. package/dist/web/_app/immutable/assets/5.BhKgiXd2.css +1 -0
  167. package/dist/web/_app/immutable/assets/6.CeHKR5ZY.css +1 -0
  168. package/dist/web/_app/immutable/assets/AppShell.CXdE5aqF.css +1 -0
  169. package/dist/web/_app/immutable/assets/ChatPanel.RFD5GGYI.css +1 -0
  170. package/dist/web/_app/immutable/assets/editor.CPAf2SRV.css +1 -0
  171. package/dist/web/_app/immutable/chunks/3_5VIr68.js +1 -0
  172. package/dist/web/_app/immutable/chunks/4QY4j-jX.js +1 -0
  173. package/dist/web/_app/immutable/chunks/B0nldqWF.js +23 -0
  174. package/dist/web/_app/immutable/chunks/BB_5th5W.js +3383 -0
  175. package/dist/web/_app/immutable/chunks/BButMJ6M.js +1 -0
  176. package/dist/web/_app/immutable/chunks/BiubvAUI.js +2 -0
  177. package/dist/web/_app/immutable/chunks/CAXuTUkp.js +1 -0
  178. package/dist/web/_app/immutable/chunks/CUzqHQY_.js +1 -0
  179. package/dist/web/_app/immutable/chunks/CYrVHOHA.js +1 -0
  180. package/dist/web/_app/immutable/chunks/CqkleIqs.js +1 -0
  181. package/dist/web/_app/immutable/chunks/DPmdIe6Y.js +1 -0
  182. package/dist/web/_app/immutable/chunks/Dh_H7Owr.js +18 -0
  183. package/dist/web/_app/immutable/chunks/DnlgZ_Tk.js +5 -0
  184. package/dist/web/_app/immutable/chunks/DsERsGWg.js +64 -0
  185. package/dist/web/_app/immutable/chunks/DtVH--hH.js +6 -0
  186. package/dist/web/_app/immutable/chunks/F20aIBpJ.js +1 -0
  187. package/dist/web/_app/immutable/chunks/PPVm8Dsz.js +1 -0
  188. package/dist/web/_app/immutable/chunks/WSUKABI_.js +1 -0
  189. package/dist/web/_app/immutable/chunks/YFT1281h.js +2 -0
  190. package/dist/web/_app/immutable/chunks/aosHekRC.js +1 -0
  191. package/dist/web/_app/immutable/chunks/fwnBoL5x.js +1 -0
  192. package/dist/web/_app/immutable/chunks/hHxe9oXh.js +1 -0
  193. package/dist/web/_app/immutable/chunks/nZKqDQ0w.js +6 -0
  194. package/dist/web/_app/immutable/entry/app.B6Ngvu5P.js +2 -0
  195. package/dist/web/_app/immutable/entry/start.NykKAKQv.js +1 -0
  196. package/dist/web/_app/immutable/nodes/0.DQ5KdeNU.js +1 -0
  197. package/dist/web/_app/immutable/nodes/1.BR6DZ9ov.js +1 -0
  198. package/dist/web/_app/immutable/nodes/2.COSjVZ_C.js +1 -0
  199. package/dist/web/_app/immutable/nodes/3.B9r1XIlO.js +1 -0
  200. package/dist/web/_app/immutable/nodes/4.p-c6hlFf.js +16 -0
  201. package/dist/web/_app/immutable/nodes/5.CPc-Bqal.js +4 -0
  202. package/dist/web/_app/immutable/nodes/6.jJ67YnBc.js +2 -0
  203. package/dist/web/_app/version.json +1 -0
  204. package/dist/web/index.html +43 -0
  205. package/package.json +21 -3
@@ -15,24 +15,15 @@ export const EntityBaseSchema = z.object({
15
15
  tags: z.array(z.string()).optional(),
16
16
  }).passthrough(); // Allow custom fields
17
17
  /**
18
- * Repo types in Studiograph
19
- */
20
- export var RepoType;
21
- (function (RepoType) {
22
- RepoType["PROJECT"] = "project";
23
- RepoType["FUNCTION"] = "function";
24
- RepoType["SHARED_RESOURCE"] = "shared-resource";
25
- })(RepoType || (RepoType = {}));
26
- /**
27
- * Repo configuration in registry
18
+ * Repo configuration
28
19
  */
29
20
  export const RepoConfigSchema = z.object({
30
21
  name: z.string(),
31
- type: z.nativeEnum(RepoType),
22
+ type: z.string().optional(), // Legacy field — ignored but tolerated for old configs
32
23
  path: z.string(), // Relative to workspace root
33
24
  description: z.string().optional(),
34
- access: z.enum(['public', 'team', 'admin', 'restricted']).default('team'),
35
25
  github_url: z.string().optional(),
26
+ private: z.boolean().optional(), // Local-only, excluded from push/pull, immutable after creation
36
27
  });
37
28
  /**
38
29
  * Workspace configuration
@@ -78,13 +69,4 @@ export const WorkspaceConfigSchema = z.object({
78
69
  }).optional(),
79
70
  schema_extensions: z.record(z.string(), SchemaExtensionSchema).optional(),
80
71
  });
81
- /**
82
- * Permission error thrown when user lacks access to a repository
83
- */
84
- export class PermissionError extends Error {
85
- constructor(message) {
86
- super(message);
87
- this.name = 'PermissionError';
88
- }
89
- }
90
72
  //# sourceMappingURL=types.js.map
@@ -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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"}
@@ -56,3 +56,30 @@ export declare function setUserModelConfig(provider: string, modelId: string, ap
56
56
  * Note: OAuth tokens are no longer supported per Anthropic's third-party policy.
57
57
  */
58
58
  export declare function getAnthropicCredential(config: UserConfig): string | undefined;
59
+ /** Shared config shape for workspace-level model settings */
60
+ interface WorkspaceModelConfig {
61
+ api_key?: string;
62
+ model_provider?: string;
63
+ model_id?: string;
64
+ }
65
+ /**
66
+ * Resolve the model provider.
67
+ * Checks user config → workspace config → defaults to 'anthropic'.
68
+ */
69
+ export declare function resolveProvider(userConfig: UserConfig, workspaceConfig?: WorkspaceModelConfig): string;
70
+ /**
71
+ * Resolve the model ID.
72
+ * Checks user config → workspace config → defaults to Claude Sonnet 4.5.
73
+ */
74
+ export declare function resolveModelId(userConfig: UserConfig, workspaceConfig?: WorkspaceModelConfig): string;
75
+ /**
76
+ * Resolve the API key for the active model provider.
77
+ * Checks user config → workspace config → provider-specific env var.
78
+ */
79
+ export declare function resolveApiKey(userConfig: UserConfig, workspaceConfig?: WorkspaceModelConfig): string;
80
+ /**
81
+ * Ensure the resolved API key is available in the provider-specific env var.
82
+ * Used by serve.ts so the orchestrator (which reads provider env vars) can find it.
83
+ */
84
+ export declare function propagateApiKeyToEnv(userConfig: UserConfig, workspaceConfig?: WorkspaceModelConfig): void;
85
+ export {};
@@ -55,4 +55,55 @@ export function setUserModelConfig(provider, modelId, apiKey) {
55
55
  export function getAnthropicCredential(config) {
56
56
  return config.api_key;
57
57
  }
58
+ /** Env var name for each supported provider */
59
+ const PROVIDER_ENV_KEYS = {
60
+ anthropic: 'ANTHROPIC_API_KEY',
61
+ openai: 'OPENAI_API_KEY',
62
+ google: 'GOOGLE_GENERATIVE_AI_API_KEY',
63
+ xai: 'XAI_API_KEY',
64
+ groq: 'GROQ_API_KEY',
65
+ openrouter: 'OPENROUTER_API_KEY',
66
+ };
67
+ /**
68
+ * Resolve the model provider.
69
+ * Checks user config → workspace config → defaults to 'anthropic'.
70
+ */
71
+ export function resolveProvider(userConfig, workspaceConfig) {
72
+ return userConfig.model_provider || workspaceConfig?.model_provider || 'anthropic';
73
+ }
74
+ /**
75
+ * Resolve the model ID.
76
+ * Checks user config → workspace config → defaults to Claude Sonnet 4.5.
77
+ */
78
+ export function resolveModelId(userConfig, workspaceConfig) {
79
+ return userConfig.model_id || workspaceConfig?.model_id || 'claude-sonnet-4-5-20250929';
80
+ }
81
+ /**
82
+ * Resolve the API key for the active model provider.
83
+ * Checks user config → workspace config → provider-specific env var.
84
+ */
85
+ export function resolveApiKey(userConfig, workspaceConfig) {
86
+ // User config api_key is provider-agnostic (set by the setup wizard)
87
+ if (userConfig.api_key)
88
+ return userConfig.api_key;
89
+ if (workspaceConfig?.api_key)
90
+ return workspaceConfig.api_key;
91
+ // Fall back to the provider-specific env var
92
+ const provider = resolveProvider(userConfig, workspaceConfig);
93
+ const envKey = PROVIDER_ENV_KEYS[provider] || `${provider.toUpperCase()}_API_KEY`;
94
+ return process.env[envKey] || '';
95
+ }
96
+ /**
97
+ * Ensure the resolved API key is available in the provider-specific env var.
98
+ * Used by serve.ts so the orchestrator (which reads provider env vars) can find it.
99
+ */
100
+ export function propagateApiKeyToEnv(userConfig, workspaceConfig) {
101
+ const apiKey = resolveApiKey(userConfig, workspaceConfig);
102
+ if (!apiKey)
103
+ return;
104
+ const provider = resolveProvider(userConfig, workspaceConfig);
105
+ const envVar = PROVIDER_ENV_KEYS[provider] || `${provider.toUpperCase()}_API_KEY`;
106
+ if (!process.env[envVar])
107
+ process.env[envVar] = apiKey;
108
+ }
58
109
  //# sourceMappingURL=user-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-config.js","sourceRoot":"","sources":["../../src/core/user-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AA8B7B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAe,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAkB;IAC/C,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,OAAe,EAAE,MAAe;IACnF,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC;IAClC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC3B,IAAI,MAAM;QAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;IACrC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAkB;IACvD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"user-config.js","sourceRoot":"","sources":["../../src/core/user-config.ts"],"names":[],"mappings":"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"}