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,55 @@
1
+ /**
2
+ * Thin wrappers around git shell operations.
3
+ * Extracted so tests can mock them without mocking the built-in child_process.
4
+ */
5
+ import { execSync, spawnSync } from 'child_process';
6
+ /**
7
+ * Pull the latest changes in a local git repo.
8
+ * Returns 'updated', 'up-to-date', or 'conflict'.
9
+ * Throws on hard errors (no remote, auth failure, etc.).
10
+ */
11
+ export function gitPull(repoPath) {
12
+ const result = spawnSync('git', ['pull'], { cwd: repoPath, encoding: 'utf-8' });
13
+ if (result.status === 0) {
14
+ const output = result.stdout + result.stderr;
15
+ return output.toLowerCase().includes('already up to date') ? 'up-to-date' : 'updated';
16
+ }
17
+ const combined = result.stdout + result.stderr;
18
+ if (combined.includes('CONFLICT') || combined.includes('Automatic merge failed')) {
19
+ return 'conflict';
20
+ }
21
+ throw new Error((result.stderr || result.stdout || `git pull failed with exit ${result.status}`).trim());
22
+ }
23
+ /**
24
+ * Push local commits in a git repo to its remote.
25
+ * Returns 'pushed' or 'nothing-to-push'.
26
+ * Throws on errors (no remote, auth failure, etc.).
27
+ */
28
+ export function gitPush(repoPath) {
29
+ const result = spawnSync('git', ['push'], { cwd: repoPath, encoding: 'utf-8' });
30
+ if (result.status === 0) {
31
+ const combined = result.stdout + result.stderr;
32
+ return combined.includes('Everything up-to-date') ? 'nothing-to-push' : 'pushed';
33
+ }
34
+ throw new Error((result.stderr || result.stdout || `git push failed with exit ${result.status}`).trim());
35
+ }
36
+ /**
37
+ * Clone a remote repository to a local path.
38
+ * Throws if the git command fails.
39
+ */
40
+ export function gitClone(remoteUrl, localPath) {
41
+ execSync(`git clone "${remoteUrl}" "${localPath}"`, { stdio: 'pipe' });
42
+ }
43
+ /**
44
+ * Read a git config value.
45
+ * Returns undefined if the key is not set.
46
+ */
47
+ export function getGitConfig(key) {
48
+ try {
49
+ return execSync(`git config ${key}`, { stdio: 'pipe' }).toString().trim() || undefined;
50
+ }
51
+ catch {
52
+ return undefined;
53
+ }
54
+ }
55
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAKpD;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,QAAgB;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAChF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACjF,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,6BAA6B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3G,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,QAAgB;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAChF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/C,OAAO,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,6BAA6B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,SAAiB,EAAE,SAAiB;IAC3D,QAAQ,CAAC,cAAc,SAAS,MAAM,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,cAAc,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Pre-flight environment checks
3
+ *
4
+ * Run at the start of init, start, and join to surface missing dependencies
5
+ * as clear, actionable messages before any command logic executes.
6
+ */
7
+ /** Minimum supported Node.js major version */
8
+ export declare const MIN_NODE_MAJOR = 18;
9
+ export interface CheckResult {
10
+ passed: boolean;
11
+ message: string;
12
+ hint?: string;
13
+ }
14
+ export interface AuthCheckResult {
15
+ present: boolean;
16
+ message: string;
17
+ hint?: string;
18
+ }
19
+ /**
20
+ * Check that git is installed and on PATH.
21
+ */
22
+ export declare function checkGit(): CheckResult;
23
+ /**
24
+ * Check that the running Node.js meets the minimum version requirement.
25
+ */
26
+ export declare function checkNode(): CheckResult;
27
+ /**
28
+ * Check whether a GitHub auth token is stored.
29
+ * This is contextual — absence is a warning, not a failure.
30
+ */
31
+ export declare function checkGithubAuth(): AuthCheckResult;
32
+ export interface PreflightOptions {
33
+ /** Show the GitHub auth contextual check. Default: true */
34
+ checkGithubAuth?: boolean;
35
+ }
36
+ /**
37
+ * Run pre-flight checks and print results using clack log symbols.
38
+ *
39
+ * Required checks (git, Node.js) print as success or error.
40
+ * Contextual checks (GitHub auth) print as success or warning.
41
+ *
42
+ * Returns false if any required check fails — caller should exit(1).
43
+ */
44
+ export declare function runPreflight(options?: PreflightOptions): boolean;
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Pre-flight environment checks
3
+ *
4
+ * Run at the start of init, start, and join to surface missing dependencies
5
+ * as clear, actionable messages before any command logic executes.
6
+ */
7
+ import { execSync } from 'child_process';
8
+ import { log } from '@clack/prompts';
9
+ import { loadToken } from '../auth/github.js';
10
+ /** Minimum supported Node.js major version */
11
+ export const MIN_NODE_MAJOR = 18;
12
+ /**
13
+ * Check that git is installed and on PATH.
14
+ */
15
+ export function checkGit() {
16
+ try {
17
+ const output = execSync('git --version', { stdio: 'pipe' }).toString().trim();
18
+ const match = output.match(/git version (\S+)/);
19
+ const version = match ? match[1] : output;
20
+ return { passed: true, message: `git ${version} found` };
21
+ }
22
+ catch {
23
+ return {
24
+ passed: false,
25
+ message: 'git not found',
26
+ hint: 'Install git from https://git-scm.com',
27
+ };
28
+ }
29
+ }
30
+ /**
31
+ * Check that the running Node.js meets the minimum version requirement.
32
+ */
33
+ export function checkNode() {
34
+ const version = process.versions.node;
35
+ const major = parseInt(version.split('.')[0], 10);
36
+ if (major >= MIN_NODE_MAJOR) {
37
+ return { passed: true, message: `Node.js v${version} found` };
38
+ }
39
+ return {
40
+ passed: false,
41
+ message: `Node.js v${version} is too old (requires v${MIN_NODE_MAJOR}+)`,
42
+ hint: `Install Node.js v${MIN_NODE_MAJOR}+ from https://nodejs.org`,
43
+ };
44
+ }
45
+ /**
46
+ * Check whether a GitHub auth token is stored.
47
+ * This is contextual — absence is a warning, not a failure.
48
+ */
49
+ export function checkGithubAuth() {
50
+ const stored = loadToken();
51
+ if (stored) {
52
+ return { present: true, message: `GitHub auth configured (${stored.user.login})` };
53
+ }
54
+ return {
55
+ present: false,
56
+ message: 'GitHub auth not configured',
57
+ hint: 'run `studiograph auth github` to set up',
58
+ };
59
+ }
60
+ /**
61
+ * Run pre-flight checks and print results using clack log symbols.
62
+ *
63
+ * Required checks (git, Node.js) print as success or error.
64
+ * Contextual checks (GitHub auth) print as success or warning.
65
+ *
66
+ * Returns false if any required check fails — caller should exit(1).
67
+ */
68
+ export function runPreflight(options = {}) {
69
+ const { checkGithubAuth: checkAuth = true } = options;
70
+ const gitResult = checkGit();
71
+ const nodeResult = checkNode();
72
+ if (gitResult.passed) {
73
+ log.success(gitResult.message);
74
+ }
75
+ else {
76
+ log.error(`${gitResult.message}${gitResult.hint ? ` — ${gitResult.hint}` : ''}`);
77
+ }
78
+ if (nodeResult.passed) {
79
+ log.success(nodeResult.message);
80
+ }
81
+ else {
82
+ log.error(`${nodeResult.message}${nodeResult.hint ? ` — ${nodeResult.hint}` : ''}`);
83
+ }
84
+ if (checkAuth) {
85
+ const authResult = checkGithubAuth();
86
+ if (authResult.present) {
87
+ log.success(authResult.message);
88
+ }
89
+ else {
90
+ log.warn(`${authResult.message}${authResult.hint ? ` — ${authResult.hint}` : ''}`);
91
+ }
92
+ }
93
+ return gitResult.passed && nodeResult.passed;
94
+ }
95
+ //# sourceMappingURL=preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/utils/preflight.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "studiograph",
3
+ "version": "1.0.0",
4
+ "description": "Team-based AI agent platform with Git-backed knowledge graphs",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "studiograph": "dist/cli/index.js"
9
+ },
10
+ "files": [
11
+ "dist/",
12
+ "README.md"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "dev": "tsc --watch",
17
+ "test": "vitest",
18
+ "lint": "eslint src --ext .ts"
19
+ },
20
+ "keywords": [
21
+ "ai",
22
+ "agent",
23
+ "knowledge-graph",
24
+ "git",
25
+ "markdown"
26
+ ],
27
+ "author": "Studiograph",
28
+ "license": "MIT",
29
+ "dependencies": {
30
+ "@anthropic-ai/sdk": "^0.20.0",
31
+ "@aws-sdk/client-s3": "^3.500.0",
32
+ "@clack/prompts": "^0.7.0",
33
+ "@fastify/cors": "^9.0.1",
34
+ "@mariozechner/pi-agent-core": "latest",
35
+ "@mariozechner/pi-ai": "latest",
36
+ "@octokit/rest": "^20.0.0",
37
+ "commander": "^11.1.0",
38
+ "csv-parse": "^5.6.0",
39
+ "csv-stringify": "^6.6.0",
40
+ "fastify": "^4.29.1",
41
+ "glob": "^10.3.10",
42
+ "gray-matter": "^4.0.3",
43
+ "js-yaml": "^4.1.1",
44
+ "zod": "^3.22.4"
45
+ },
46
+ "devDependencies": {
47
+ "@types/js-yaml": "^4.0.9",
48
+ "@types/node": "^20.11.0",
49
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
50
+ "@typescript-eslint/parser": "^6.19.0",
51
+ "eslint": "^8.56.0",
52
+ "typescript": "^5.3.3",
53
+ "vitest": "^1.2.0"
54
+ }
55
+ }