@dmsdc-ai/aigentry-brain 0.0.1

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 (136) hide show
  1. package/bin/aigentry-brain-mcp.mjs +17 -0
  2. package/bin/aigentry-brain-setup.mjs +17 -0
  3. package/bin/aigentry-brain.mjs +17 -0
  4. package/dist/audit/AuditTrail.d.ts +15 -0
  5. package/dist/audit/AuditTrail.js +43 -0
  6. package/dist/audit/AuditTrail.js.map +1 -0
  7. package/dist/backend/GitBackend.d.ts +27 -0
  8. package/dist/backend/GitBackend.js +201 -0
  9. package/dist/backend/GitBackend.js.map +1 -0
  10. package/dist/backend/SyncBackend.d.ts +13 -0
  11. package/dist/backend/SyncBackend.js +2 -0
  12. package/dist/backend/SyncBackend.js.map +1 -0
  13. package/dist/cli/AutoUpdater.d.ts +7 -0
  14. package/dist/cli/AutoUpdater.js +275 -0
  15. package/dist/cli/AutoUpdater.js.map +1 -0
  16. package/dist/cli/ConfigStore.d.ts +17 -0
  17. package/dist/cli/ConfigStore.js +50 -0
  18. package/dist/cli/ConfigStore.js.map +1 -0
  19. package/dist/cli/GhIntegration.d.ts +55 -0
  20. package/dist/cli/GhIntegration.js +192 -0
  21. package/dist/cli/GhIntegration.js.map +1 -0
  22. package/dist/cli/Prerequisites.d.ts +48 -0
  23. package/dist/cli/Prerequisites.js +182 -0
  24. package/dist/cli/Prerequisites.js.map +1 -0
  25. package/dist/cli/SetupWizard.d.ts +26 -0
  26. package/dist/cli/SetupWizard.js +407 -0
  27. package/dist/cli/SetupWizard.js.map +1 -0
  28. package/dist/cli/braincli.d.ts +2 -0
  29. package/dist/cli/braincli.js +260 -0
  30. package/dist/cli/braincli.js.map +1 -0
  31. package/dist/cli/setup.d.ts +25 -0
  32. package/dist/cli/setup.js +238 -0
  33. package/dist/cli/setup.js.map +1 -0
  34. package/dist/context/ConfidenceGuard.d.ts +11 -0
  35. package/dist/context/ConfidenceGuard.js +32 -0
  36. package/dist/context/ConfidenceGuard.js.map +1 -0
  37. package/dist/context/ContextBudgetPolicy.d.ts +21 -0
  38. package/dist/context/ContextBudgetPolicy.js +136 -0
  39. package/dist/context/ContextBudgetPolicy.js.map +1 -0
  40. package/dist/context/ContextPacker.d.ts +30 -0
  41. package/dist/context/ContextPacker.js +219 -0
  42. package/dist/context/ContextPacker.js.map +1 -0
  43. package/dist/context/ContextRestoreService.d.ts +39 -0
  44. package/dist/context/ContextRestoreService.js +134 -0
  45. package/dist/context/ContextRestoreService.js.map +1 -0
  46. package/dist/contract/BrainContract.d.ts +93 -0
  47. package/dist/contract/BrainContract.js +245 -0
  48. package/dist/contract/BrainContract.js.map +1 -0
  49. package/dist/core/ContentDedup.d.ts +43 -0
  50. package/dist/core/ContentDedup.js +145 -0
  51. package/dist/core/ContentDedup.js.map +1 -0
  52. package/dist/core/EntityGraph.d.ts +66 -0
  53. package/dist/core/EntityGraph.js +196 -0
  54. package/dist/core/EntityGraph.js.map +1 -0
  55. package/dist/core/EntrySchema.d.ts +46 -0
  56. package/dist/core/EntrySchema.js +4 -0
  57. package/dist/core/EntrySchema.js.map +1 -0
  58. package/dist/core/GraphStore.d.ts +16 -0
  59. package/dist/core/GraphStore.js +29 -0
  60. package/dist/core/GraphStore.js.map +1 -0
  61. package/dist/core/MemoryDecay.d.ts +49 -0
  62. package/dist/core/MemoryDecay.js +113 -0
  63. package/dist/core/MemoryDecay.js.map +1 -0
  64. package/dist/core/ProfileFormat.d.ts +38 -0
  65. package/dist/core/ProfileFormat.js +254 -0
  66. package/dist/core/ProfileFormat.js.map +1 -0
  67. package/dist/core/ProfileManager.d.ts +80 -0
  68. package/dist/core/ProfileManager.js +269 -0
  69. package/dist/core/ProfileManager.js.map +1 -0
  70. package/dist/core/SchemaMigration.d.ts +12 -0
  71. package/dist/core/SchemaMigration.js +34 -0
  72. package/dist/core/SchemaMigration.js.map +1 -0
  73. package/dist/crypto/AgeCrypto.d.ts +26 -0
  74. package/dist/crypto/AgeCrypto.js +101 -0
  75. package/dist/crypto/AgeCrypto.js.map +1 -0
  76. package/dist/index.d.ts +38 -0
  77. package/dist/index.js +30 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/mcp/BrainMcpServer.d.ts +13 -0
  80. package/dist/mcp/BrainMcpServer.js +223 -0
  81. package/dist/mcp/BrainMcpServer.js.map +1 -0
  82. package/dist/mcp/cli.d.ts +2 -0
  83. package/dist/mcp/cli.js +107 -0
  84. package/dist/mcp/cli.js.map +1 -0
  85. package/dist/metrics/ResumeMetrics.d.ts +20 -0
  86. package/dist/metrics/ResumeMetrics.js +46 -0
  87. package/dist/metrics/ResumeMetrics.js.map +1 -0
  88. package/dist/peers/PeerStore.d.ts +17 -0
  89. package/dist/peers/PeerStore.js +65 -0
  90. package/dist/peers/PeerStore.js.map +1 -0
  91. package/dist/policy/PolicyEngine.d.ts +16 -0
  92. package/dist/policy/PolicyEngine.js +70 -0
  93. package/dist/policy/PolicyEngine.js.map +1 -0
  94. package/dist/policy/PolicyEnvelope.d.ts +7 -0
  95. package/dist/policy/PolicyEnvelope.js +2 -0
  96. package/dist/policy/PolicyEnvelope.js.map +1 -0
  97. package/dist/policy/RetentionParser.d.ts +6 -0
  98. package/dist/policy/RetentionParser.js +48 -0
  99. package/dist/policy/RetentionParser.js.map +1 -0
  100. package/dist/shared/AtomicWrite.d.ts +1 -0
  101. package/dist/shared/AtomicWrite.js +11 -0
  102. package/dist/shared/AtomicWrite.js.map +1 -0
  103. package/dist/shared/Clock.d.ts +11 -0
  104. package/dist/shared/Clock.js +17 -0
  105. package/dist/shared/Clock.js.map +1 -0
  106. package/dist/shared/Config.d.ts +15 -0
  107. package/dist/shared/Config.js +67 -0
  108. package/dist/shared/Config.js.map +1 -0
  109. package/dist/shared/Encryption.d.ts +19 -0
  110. package/dist/shared/Encryption.js +47 -0
  111. package/dist/shared/Encryption.js.map +1 -0
  112. package/dist/shared/Logger.d.ts +12 -0
  113. package/dist/shared/Logger.js +40 -0
  114. package/dist/shared/Logger.js.map +1 -0
  115. package/dist/shared/Mutex.d.ts +7 -0
  116. package/dist/shared/Mutex.js +34 -0
  117. package/dist/shared/Mutex.js.map +1 -0
  118. package/dist/shared/SetupErrors.d.ts +31 -0
  119. package/dist/shared/SetupErrors.js +155 -0
  120. package/dist/shared/SetupErrors.js.map +1 -0
  121. package/dist/status/SyncStatusStore.d.ts +17 -0
  122. package/dist/status/SyncStatusStore.js +48 -0
  123. package/dist/status/SyncStatusStore.js.map +1 -0
  124. package/dist/sync/AutoCommitter.d.ts +17 -0
  125. package/dist/sync/AutoCommitter.js +68 -0
  126. package/dist/sync/AutoCommitter.js.map +1 -0
  127. package/dist/sync/ConflictResolver.d.ts +7 -0
  128. package/dist/sync/ConflictResolver.js +56 -0
  129. package/dist/sync/ConflictResolver.js.map +1 -0
  130. package/dist/sync/PushPullManager.d.ts +23 -0
  131. package/dist/sync/PushPullManager.js +155 -0
  132. package/dist/sync/PushPullManager.js.map +1 -0
  133. package/dist/sync/SyncEngine.d.ts +43 -0
  134. package/dist/sync/SyncEngine.js +145 -0
  135. package/dist/sync/SyncEngine.js.map +1 -0
  136. package/package.json +65 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoUpdater.js","sourceRoot":"","sources":["../../src/cli/AutoUpdater.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface BrainSetupConfig {
2
+ version: 1;
3
+ remoteUrl: string | null;
4
+ deviceId: string;
5
+ repoName: string;
6
+ authMethod: 'gh-cli' | 'git-credential' | 'ssh' | 'manual' | null;
7
+ provider: 'github' | 'gitlab' | 'manual';
8
+ setupComplete: boolean;
9
+ setupStep: 'prereqs' | 'repo_created' | 'config_saved' | 'mcp_updated' | 'synced' | 'complete' | null;
10
+ createdAt: string;
11
+ lastSyncAt: string | null;
12
+ }
13
+ export declare function defaultConfigPath(): string;
14
+ export declare function readConfig(configPath?: string): Promise<BrainSetupConfig | null>;
15
+ export declare function writeConfig(config: BrainSetupConfig, configPath?: string): Promise<void>;
16
+ export declare function updateConfig(partial: Partial<BrainSetupConfig>, configPath?: string): Promise<BrainSetupConfig>;
17
+ export declare function createDefaultConfig(deviceId: string): BrainSetupConfig;
@@ -0,0 +1,50 @@
1
+ import { mkdir, readFile, writeFile, rename } from 'node:fs/promises';
2
+ import { dirname, join } from 'node:path';
3
+ import { homedir } from 'node:os';
4
+ export function defaultConfigPath() {
5
+ return join(homedir(), '.aigentry', 'config.json');
6
+ }
7
+ export async function readConfig(configPath) {
8
+ const p = configPath ?? defaultConfigPath();
9
+ try {
10
+ const raw = await readFile(p, 'utf8');
11
+ return JSON.parse(raw);
12
+ }
13
+ catch (err) {
14
+ if (err.code === 'ENOENT') {
15
+ return null;
16
+ }
17
+ throw err;
18
+ }
19
+ }
20
+ export async function writeConfig(config, configPath) {
21
+ const p = configPath ?? defaultConfigPath();
22
+ const dir = dirname(p);
23
+ await mkdir(dir, { recursive: true });
24
+ const tmp = p + '.tmp';
25
+ await writeFile(tmp, JSON.stringify(config, null, 2) + '\n', 'utf8');
26
+ await rename(tmp, p);
27
+ }
28
+ export async function updateConfig(partial, configPath) {
29
+ const p = configPath ?? defaultConfigPath();
30
+ const existing = await readConfig(p);
31
+ const base = existing ?? createDefaultConfig('');
32
+ const updated = { ...base, ...partial, version: 1 };
33
+ await writeConfig(updated, p);
34
+ return updated;
35
+ }
36
+ export function createDefaultConfig(deviceId) {
37
+ return {
38
+ version: 1,
39
+ remoteUrl: null,
40
+ deviceId,
41
+ repoName: 'aigentry-brain-profile',
42
+ authMethod: null,
43
+ provider: 'github',
44
+ setupComplete: false,
45
+ setupStep: null,
46
+ createdAt: new Date().toISOString(),
47
+ lastSyncAt: null,
48
+ };
49
+ }
50
+ //# sourceMappingURL=ConfigStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigStore.js","sourceRoot":"","sources":["../../src/cli/ConfigStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAelC,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAmB;IAClD,MAAM,CAAC,GAAG,UAAU,IAAI,iBAAiB,EAAE,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAwB,EAAE,UAAmB;IAC7E,MAAM,CAAC,GAAG,UAAU,IAAI,iBAAiB,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;IACvB,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IACrE,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAkC,EAClC,UAAmB;IAEnB,MAAM,CAAC,GAAG,UAAU,IAAI,iBAAiB,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAqB,QAAQ,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,OAAO,GAAqB,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACtE,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO;QACL,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,IAAI;QACf,QAAQ;QACR,QAAQ,EAAE,wBAAwB;QAClC,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,55 @@
1
+ export interface GhRepoInfo {
2
+ name: string;
3
+ fullName: string;
4
+ url: string;
5
+ sshUrl: string;
6
+ isPrivate: boolean;
7
+ exists: boolean;
8
+ }
9
+ export interface GhCreateResult {
10
+ success: boolean;
11
+ repo: GhRepoInfo | null;
12
+ error: string | null;
13
+ alreadyExists: boolean;
14
+ }
15
+ /**
16
+ * Get current authenticated GitHub username.
17
+ * Returns null if not authenticated or gh not installed.
18
+ */
19
+ export declare function getGhUsername(): Promise<string | null>;
20
+ /**
21
+ * Get git operations protocol preference (https or ssh).
22
+ * Parses `gh auth status` output. Defaults to 'https'.
23
+ */
24
+ export declare function getGhProtocol(): Promise<'https' | 'ssh'>;
25
+ /**
26
+ * Check if a repo exists under the authenticated user.
27
+ * Returns GhRepoInfo if exists, null otherwise.
28
+ */
29
+ export declare function checkRepoExists(repoName: string): Promise<GhRepoInfo | null>;
30
+ /**
31
+ * Create a private repo under the authenticated user.
32
+ */
33
+ export declare function createPrivateRepo(repoName: string): Promise<GhCreateResult>;
34
+ /**
35
+ * Find existing aigentry-brain-profile repo by searching the user's repo list.
36
+ * Returns the first match or null.
37
+ */
38
+ export declare function findExistingProfileRepo(): Promise<GhRepoInfo | null>;
39
+ /**
40
+ * Get the clone URL for a repo based on the user's protocol preference.
41
+ */
42
+ export declare function getCloneUrl(repoName: string): Promise<string>;
43
+ /**
44
+ * Run `gh auth setup-git` to configure the git credential helper.
45
+ * Returns true on success, false otherwise.
46
+ */
47
+ export declare function setupGitCredentials(): Promise<boolean>;
48
+ /**
49
+ * Try to find profile repo URL without gh CLI using git credential manager.
50
+ * Returns the HTTPS clone URL and username if accessible, null otherwise.
51
+ */
52
+ export declare function findProfileRepoViaGit(repoName: string): Promise<{
53
+ url: string;
54
+ username: string;
55
+ } | null>;
@@ -0,0 +1,192 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ /**
3
+ * Get current authenticated GitHub username.
4
+ * Returns null if not authenticated or gh not installed.
5
+ */
6
+ export async function getGhUsername() {
7
+ try {
8
+ const output = execFileSync('gh', ['api', 'user', '--jq', '.login'], { stdio: 'pipe' })
9
+ .toString()
10
+ .trim();
11
+ return output.length > 0 ? output : null;
12
+ }
13
+ catch {
14
+ return null;
15
+ }
16
+ }
17
+ /**
18
+ * Get git operations protocol preference (https or ssh).
19
+ * Parses `gh auth status` output. Defaults to 'https'.
20
+ */
21
+ export async function getGhProtocol() {
22
+ try {
23
+ const output = execFileSync('gh', ['auth', 'status'], { stdio: 'pipe' })
24
+ .toString();
25
+ if (/Git operations protocol: ssh/i.test(output)) {
26
+ return 'ssh';
27
+ }
28
+ return 'https';
29
+ }
30
+ catch (err) {
31
+ // execSync throws on non-zero exit; stderr may contain the info
32
+ const msg = err instanceof Error ? err.message : String(err);
33
+ if (/Git operations protocol: ssh/i.test(msg)) {
34
+ return 'ssh';
35
+ }
36
+ return 'https';
37
+ }
38
+ }
39
+ /**
40
+ * Check if a repo exists under the authenticated user.
41
+ * Returns GhRepoInfo if exists, null otherwise.
42
+ */
43
+ export async function checkRepoExists(repoName) {
44
+ const username = await getGhUsername();
45
+ if (!username)
46
+ return null;
47
+ try {
48
+ const raw = execFileSync('gh', ['repo', 'view', `${username}/${repoName}`, '--json', 'name,url,sshUrl,isPrivate'], { stdio: 'pipe' }).toString().trim();
49
+ const data = JSON.parse(raw);
50
+ return {
51
+ name: data.name,
52
+ fullName: `${username}/${data.name}`,
53
+ url: data.url.endsWith('.git') ? data.url : `${data.url}.git`,
54
+ sshUrl: data.sshUrl.endsWith('.git') ? data.sshUrl : `${data.sshUrl}.git`,
55
+ isPrivate: data.isPrivate,
56
+ exists: true,
57
+ };
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ }
63
+ /**
64
+ * Create a private repo under the authenticated user.
65
+ */
66
+ export async function createPrivateRepo(repoName) {
67
+ try {
68
+ execFileSync('gh', ['repo', 'create', repoName, '--private', '--clone=false', '--description', 'aigentry-brain memory profile'], { stdio: 'pipe' });
69
+ // Success: fetch repo info
70
+ const repo = await checkRepoExists(repoName);
71
+ return {
72
+ success: true,
73
+ repo,
74
+ error: null,
75
+ alreadyExists: false,
76
+ };
77
+ }
78
+ catch (err) {
79
+ const msg = err instanceof Error ? err.message : String(err);
80
+ // Check if the error is because it already exists
81
+ if (/already exists/i.test(msg)) {
82
+ const repo = await checkRepoExists(repoName);
83
+ return {
84
+ success: true,
85
+ repo,
86
+ error: null,
87
+ alreadyExists: true,
88
+ };
89
+ }
90
+ return {
91
+ success: false,
92
+ repo: null,
93
+ error: msg,
94
+ alreadyExists: false,
95
+ };
96
+ }
97
+ }
98
+ /**
99
+ * Find existing aigentry-brain-profile repo by searching the user's repo list.
100
+ * Returns the first match or null.
101
+ */
102
+ export async function findExistingProfileRepo() {
103
+ const username = await getGhUsername();
104
+ if (!username)
105
+ return null;
106
+ try {
107
+ const raw = execFileSync('gh', ['repo', 'list', '--json', 'name,url,sshUrl,isPrivate', '--limit', '100'], { stdio: 'pipe' }).toString().trim();
108
+ const repos = JSON.parse(raw);
109
+ const match = repos.find((r) => r.name === 'aigentry-brain-profile');
110
+ if (!match)
111
+ return null;
112
+ return {
113
+ name: match.name,
114
+ fullName: `${username}/${match.name}`,
115
+ url: match.url.endsWith('.git') ? match.url : `${match.url}.git`,
116
+ sshUrl: match.sshUrl.endsWith('.git') ? match.sshUrl : `${match.sshUrl}.git`,
117
+ isPrivate: match.isPrivate,
118
+ exists: true,
119
+ };
120
+ }
121
+ catch {
122
+ return null;
123
+ }
124
+ }
125
+ /**
126
+ * Get the clone URL for a repo based on the user's protocol preference.
127
+ */
128
+ export async function getCloneUrl(repoName) {
129
+ const [protocol, username] = await Promise.all([getGhProtocol(), getGhUsername()]);
130
+ const user = username ?? 'unknown';
131
+ if (protocol === 'ssh') {
132
+ return `git@github.com:${user}/${repoName}.git`;
133
+ }
134
+ return `https://github.com/${user}/${repoName}.git`;
135
+ }
136
+ /**
137
+ * Run `gh auth setup-git` to configure the git credential helper.
138
+ * Returns true on success, false otherwise.
139
+ */
140
+ export async function setupGitCredentials() {
141
+ try {
142
+ execFileSync('gh', ['auth', 'setup-git'], { stdio: 'pipe' });
143
+ return true;
144
+ }
145
+ catch {
146
+ return false;
147
+ }
148
+ }
149
+ /**
150
+ * Try to find profile repo URL without gh CLI using git credential manager.
151
+ * Returns the HTTPS clone URL and username if accessible, null otherwise.
152
+ */
153
+ export async function findProfileRepoViaGit(repoName) {
154
+ // Try multiple strategies to find the username
155
+ const usernames = new Set();
156
+ // Strategy 1: git config github.user
157
+ try {
158
+ const ghUser = execFileSync('git', ['config', '--global', 'github.user'], { stdio: 'pipe' }).toString().trim();
159
+ if (ghUser)
160
+ usernames.add(ghUser);
161
+ }
162
+ catch { /* ignore */ }
163
+ // Strategy 2: git config credential.username
164
+ try {
165
+ const credUser = execFileSync('git', ['config', '--global', 'credential.username'], { stdio: 'pipe' }).toString().trim();
166
+ if (credUser)
167
+ usernames.add(credUser);
168
+ }
169
+ catch { /* ignore */ }
170
+ // Strategy 3: Extract from git config user.email (github noreply pattern)
171
+ try {
172
+ const email = execFileSync('git', ['config', '--global', 'user.email'], { stdio: 'pipe' }).toString().trim();
173
+ const match = email.match(/^(\d+\+)?([^@]+)@users\.noreply\.github\.com$/);
174
+ if (match)
175
+ usernames.add(match[2]);
176
+ }
177
+ catch { /* ignore */ }
178
+ const candidates = [...usernames];
179
+ for (const username of candidates) {
180
+ const url = `https://github.com/${username}/${repoName}.git`;
181
+ try {
182
+ execFileSync('git', ['ls-remote', '--exit-code', url, 'HEAD'], {
183
+ stdio: 'pipe',
184
+ timeout: 15000,
185
+ });
186
+ return { url, username };
187
+ }
188
+ catch { /* not accessible, try next */ }
189
+ }
190
+ return null;
191
+ }
192
+ //# sourceMappingURL=GhIntegration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GhIntegration.js","sourceRoot":"","sources":["../../src/cli/GhIntegration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ export interface PrereqResult {
2
+ name: string;
3
+ installed: boolean;
4
+ version: string | null;
5
+ minVersion: string;
6
+ satisfied: boolean;
7
+ message: string;
8
+ }
9
+ export interface PrereqReport {
10
+ results: PrereqResult[];
11
+ allSatisfied: boolean;
12
+ ghAuthenticated: boolean;
13
+ ghUsername: string | null;
14
+ ghProtocol: 'https' | 'ssh' | null;
15
+ }
16
+ /**
17
+ * Compare two semver strings (e.g. "22.3.0", "18.0.0").
18
+ * Returns 1 if a > b, -1 if a < b, 0 if equal.
19
+ */
20
+ export declare function compareVersions(a: string, b: string): number;
21
+ /**
22
+ * Check a single command exists and get its version.
23
+ */
24
+ export declare function checkCommand(name: string, versionFlag: string, minVersion: string): Promise<PrereqResult>;
25
+ /**
26
+ * Check gh CLI authentication status.
27
+ */
28
+ export declare function checkGhAuth(): Promise<{
29
+ authenticated: boolean;
30
+ username: string | null;
31
+ protocol: 'https' | 'ssh' | null;
32
+ }>;
33
+ /**
34
+ * Attempt to install gh CLI automatically.
35
+ */
36
+ export declare function installGhCli(): Promise<{
37
+ installed: boolean;
38
+ message: string;
39
+ }>;
40
+ /**
41
+ * Ensure age key exists, generate if not present.
42
+ * Uses age-encryption npm — no external binary needed.
43
+ */
44
+ export { ensureKeyFile as ensureAgeKey } from '../crypto/AgeCrypto.js';
45
+ /**
46
+ * Check all prerequisites and return a combined report.
47
+ */
48
+ export declare function checkAllPrereqs(): Promise<PrereqReport>;
@@ -0,0 +1,182 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ /**
3
+ * Compare two semver strings (e.g. "22.3.0", "18.0.0").
4
+ * Returns 1 if a > b, -1 if a < b, 0 if equal.
5
+ */
6
+ export function compareVersions(a, b) {
7
+ const aParts = a.split('.').map(Number);
8
+ const bParts = b.split('.').map(Number);
9
+ const len = Math.max(aParts.length, bParts.length);
10
+ for (let i = 0; i < len; i++) {
11
+ const aNum = aParts[i] ?? 0;
12
+ const bNum = bParts[i] ?? 0;
13
+ if (aNum > bNum)
14
+ return 1;
15
+ if (aNum < bNum)
16
+ return -1;
17
+ }
18
+ return 0;
19
+ }
20
+ /**
21
+ * Extract a semver string (X.Y.Z) from arbitrary command output.
22
+ */
23
+ function extractVersion(output) {
24
+ const match = output.match(/(\d+\.\d+(?:\.\d+)*)/);
25
+ return match ? match[1] : null;
26
+ }
27
+ /**
28
+ * Check a single command exists and get its version.
29
+ */
30
+ export async function checkCommand(name, versionFlag, minVersion) {
31
+ try {
32
+ const raw = execFileSync(name, [versionFlag], {
33
+ encoding: 'utf8',
34
+ stdio: ['pipe', 'pipe', 'pipe'],
35
+ });
36
+ const version = extractVersion(raw);
37
+ if (!version) {
38
+ return {
39
+ name,
40
+ installed: true,
41
+ version: null,
42
+ minVersion,
43
+ satisfied: false,
44
+ message: `${name} found but could not parse version from: ${raw.trim()}`,
45
+ };
46
+ }
47
+ const satisfied = compareVersions(version, minVersion) >= 0;
48
+ return {
49
+ name,
50
+ installed: true,
51
+ version,
52
+ minVersion,
53
+ satisfied,
54
+ message: satisfied
55
+ ? `${name} ${version} — OK (>= ${minVersion})`
56
+ : `${name} ${version} — too old (need >= ${minVersion})`,
57
+ };
58
+ }
59
+ catch (err) {
60
+ return {
61
+ name,
62
+ installed: false,
63
+ version: null,
64
+ minVersion,
65
+ satisfied: false,
66
+ message: `${name} not found — please install ${name} >= ${minVersion}`,
67
+ };
68
+ }
69
+ }
70
+ /**
71
+ * Check gh CLI authentication status.
72
+ */
73
+ export async function checkGhAuth() {
74
+ try {
75
+ const output = execFileSync('gh', ['auth', 'status'], {
76
+ encoding: 'utf8',
77
+ stdio: ['pipe', 'pipe', 'pipe'],
78
+ });
79
+ return parseGhAuthOutput(output);
80
+ }
81
+ catch (err) {
82
+ const output = err instanceof Error && 'stderr' in err
83
+ ? String(err.stderr ?? '')
84
+ : '';
85
+ if (output.includes('Logged in to')) {
86
+ return parseGhAuthOutput(output);
87
+ }
88
+ return { authenticated: false, username: null, protocol: null };
89
+ }
90
+ }
91
+ function parseGhAuthOutput(output) {
92
+ const loggedIn = /Logged in to github\.com/.test(output);
93
+ if (!loggedIn) {
94
+ return { authenticated: false, username: null, protocol: null };
95
+ }
96
+ const usernameMatch = output.match(/Logged in to github\.com(?:\s+as)?\s+account\s+(\S+)/i)
97
+ ?? output.match(/✓ Logged in to github\.com as (\S+)/i)
98
+ ?? output.match(/Logged in to github\.com as (\S+)/i);
99
+ const username = usernameMatch ? usernameMatch[1].replace(/[()]/g, '') : null;
100
+ const protocolMatch = output.match(/Git operations protocol:\s*(https|ssh)/i);
101
+ const protocol = protocolMatch ? protocolMatch[1] : null;
102
+ return { authenticated: true, username, protocol };
103
+ }
104
+ /**
105
+ * Attempt to install gh CLI automatically.
106
+ */
107
+ export async function installGhCli() {
108
+ const platform = process.platform;
109
+ try {
110
+ if (platform === 'win32') {
111
+ execFileSync('winget', ['install', '--id', 'GitHub.cli', '--accept-source-agreements', '--accept-package-agreements', '--silent'], {
112
+ stdio: 'pipe',
113
+ timeout: 120000,
114
+ });
115
+ return { installed: true, message: 'gh installed via winget' };
116
+ }
117
+ else if (platform === 'darwin') {
118
+ execFileSync('brew', ['install', 'gh'], {
119
+ stdio: 'pipe',
120
+ timeout: 120000,
121
+ });
122
+ return { installed: true, message: 'gh installed via brew' };
123
+ }
124
+ else {
125
+ try {
126
+ execFileSync('sudo', ['-n', 'apt', 'install', '-y', 'gh'], {
127
+ stdio: 'pipe',
128
+ timeout: 120000,
129
+ });
130
+ return { installed: true, message: 'gh installed via apt' };
131
+ }
132
+ catch { /* try next */ }
133
+ try {
134
+ execFileSync('sudo', ['-n', 'dnf', 'install', '-y', 'gh'], {
135
+ stdio: 'pipe',
136
+ timeout: 120000,
137
+ });
138
+ return { installed: true, message: 'gh installed via dnf' };
139
+ }
140
+ catch { /* try next */ }
141
+ try {
142
+ execFileSync('snap', ['install', 'gh'], {
143
+ stdio: 'pipe',
144
+ timeout: 120000,
145
+ });
146
+ return { installed: true, message: 'gh installed via snap' };
147
+ }
148
+ catch { /* all methods failed */ }
149
+ return { installed: false, message: 'could not install gh automatically on Linux' };
150
+ }
151
+ }
152
+ catch (err) {
153
+ const msg = err instanceof Error ? err.message : String(err);
154
+ return { installed: false, message: `gh auto-install failed: ${msg}` };
155
+ }
156
+ }
157
+ /**
158
+ * Ensure age key exists, generate if not present.
159
+ * Uses age-encryption npm — no external binary needed.
160
+ */
161
+ export { ensureKeyFile as ensureAgeKey } from '../crypto/AgeCrypto.js';
162
+ /**
163
+ * Check all prerequisites and return a combined report.
164
+ */
165
+ export async function checkAllPrereqs() {
166
+ const [nodeResult, gitResult, ghResult, ghAuth] = await Promise.all([
167
+ checkCommand('node', '--version', '18.0.0'),
168
+ checkCommand('git', '--version', '2.0.0'),
169
+ checkCommand('gh', '--version', '2.0.0'),
170
+ checkGhAuth(),
171
+ ]);
172
+ const results = [nodeResult, gitResult, ghResult];
173
+ const allSatisfied = results.every((r) => r.satisfied);
174
+ return {
175
+ results,
176
+ allSatisfied,
177
+ ghAuthenticated: ghAuth.authenticated,
178
+ ghUsername: ghAuth.username,
179
+ ghProtocol: ghAuth.protocol,
180
+ };
181
+ }
182
+ //# sourceMappingURL=Prerequisites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Prerequisites.js","sourceRoot":"","sources":["../../src/cli/Prerequisites.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type BrainSetupConfig } from './ConfigStore.js';
2
+ export interface SetupResult {
3
+ success: boolean;
4
+ steps: StepResult[];
5
+ config: BrainSetupConfig | null;
6
+ message: string;
7
+ }
8
+ export interface StepResult {
9
+ step: number;
10
+ name: string;
11
+ success: boolean;
12
+ message: string;
13
+ skipped: boolean;
14
+ }
15
+ export interface SetupWizardOptions {
16
+ configPath?: string;
17
+ mcpConfigPath?: string;
18
+ mcpCliPath?: string;
19
+ profileDir?: string;
20
+ repoName?: string;
21
+ deviceId?: string;
22
+ nonInteractive?: boolean;
23
+ geminiConfigPath?: string;
24
+ codexConfigPath?: string;
25
+ }
26
+ export declare function runSetupWizard(options?: SetupWizardOptions): Promise<SetupResult>;