@lucianfialho/build-in-public-mcp 0.3.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.
- package/LICENSE +21 -0
- package/README.md +218 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +425 -0
- package/dist/index.js.map +1 -0
- package/dist/services/git-analyzer.d.ts +22 -0
- package/dist/services/git-analyzer.d.ts.map +1 -0
- package/dist/services/git-analyzer.js +168 -0
- package/dist/services/git-analyzer.js.map +1 -0
- package/dist/services/storage.d.ts +111 -0
- package/dist/services/storage.d.ts.map +1 -0
- package/dist/services/storage.js +260 -0
- package/dist/services/storage.js.map +1 -0
- package/dist/services/suggestion-engine.d.ts +20 -0
- package/dist/services/suggestion-engine.d.ts.map +1 -0
- package/dist/services/suggestion-engine.js +171 -0
- package/dist/services/suggestion-engine.js.map +1 -0
- package/dist/services/twitter.d.ts +36 -0
- package/dist/services/twitter.d.ts.map +1 -0
- package/dist/services/twitter.js +149 -0
- package/dist/services/twitter.js.map +1 -0
- package/dist/utils/oauth.d.ts +15 -0
- package/dist/utils/oauth.d.ts.map +1 -0
- package/dist/utils/oauth.js +150 -0
- package/dist/utils/oauth.js.map +1 -0
- package/package.json +42 -0
- package/server.json +37 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Analyzer for Build in Public
|
|
3
|
+
* Parses git commit information and generates tweet-friendly summaries
|
|
4
|
+
*/
|
|
5
|
+
import { GitCommit } from './storage.js';
|
|
6
|
+
/**
|
|
7
|
+
* Parse a git commit from command output or structured data
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseCommit(commitData: any): GitCommit | null;
|
|
10
|
+
/**
|
|
11
|
+
* Format commit message for Twitter (280 char limit)
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatCommitTweet(commit: GitCommit): string;
|
|
14
|
+
/**
|
|
15
|
+
* Summarize multiple commits into a thread
|
|
16
|
+
*/
|
|
17
|
+
export declare function summarizeCommits(commits: GitCommit[]): string[];
|
|
18
|
+
/**
|
|
19
|
+
* Extract key changes from commit
|
|
20
|
+
*/
|
|
21
|
+
export declare function extractKeyChanges(commit: GitCommit): string[];
|
|
22
|
+
//# sourceMappingURL=git-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-analyzer.d.ts","sourceRoot":"","sources":["../../src/services/git-analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAoB7D;AA2BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA+B3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAiC/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,CAa7D"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Git Analyzer for Build in Public
|
|
4
|
+
* Parses git commit information and generates tweet-friendly summaries
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.parseCommit = parseCommit;
|
|
8
|
+
exports.formatCommitTweet = formatCommitTweet;
|
|
9
|
+
exports.summarizeCommits = summarizeCommits;
|
|
10
|
+
exports.extractKeyChanges = extractKeyChanges;
|
|
11
|
+
/**
|
|
12
|
+
* Parse a git commit from command output or structured data
|
|
13
|
+
*/
|
|
14
|
+
function parseCommit(commitData) {
|
|
15
|
+
try {
|
|
16
|
+
if (typeof commitData === 'string') {
|
|
17
|
+
// Parse from git log format
|
|
18
|
+
return parseCommitFromLog(commitData);
|
|
19
|
+
}
|
|
20
|
+
// Already structured
|
|
21
|
+
return {
|
|
22
|
+
hash: commitData.hash || '',
|
|
23
|
+
message: commitData.message || '',
|
|
24
|
+
filesChanged: commitData.filesChanged || [],
|
|
25
|
+
timestamp: commitData.timestamp || new Date().toISOString(),
|
|
26
|
+
additions: commitData.additions,
|
|
27
|
+
deletions: commitData.deletions,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error('Failed to parse commit:', error);
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parse commit from git log output
|
|
37
|
+
* Expected format: hash|author|timestamp|message|files
|
|
38
|
+
*/
|
|
39
|
+
function parseCommitFromLog(logOutput) {
|
|
40
|
+
const lines = logOutput.trim().split('\n');
|
|
41
|
+
if (lines.length === 0) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const firstLine = lines[0];
|
|
45
|
+
const parts = firstLine.split('|');
|
|
46
|
+
if (parts.length < 4) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
hash: parts[0].trim(),
|
|
51
|
+
message: parts[3].trim(),
|
|
52
|
+
filesChanged: parts[4] ? parts[4].split(',').map((f) => f.trim()) : [],
|
|
53
|
+
timestamp: parts[2].trim(),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Format commit message for Twitter (280 char limit)
|
|
58
|
+
*/
|
|
59
|
+
function formatCommitTweet(commit) {
|
|
60
|
+
const filesCount = commit.filesChanged.length;
|
|
61
|
+
const filesText = filesCount === 1 ? '1 file' : `${filesCount} files`;
|
|
62
|
+
let tweet = `📝 ${commit.message}\n\n`;
|
|
63
|
+
tweet += `Changed ${filesText}`;
|
|
64
|
+
if (commit.additions !== undefined || commit.deletions !== undefined) {
|
|
65
|
+
tweet += ` (+${commit.additions || 0}/-${commit.deletions || 0})`;
|
|
66
|
+
}
|
|
67
|
+
tweet += `\n\n#BuildInPublic #Git`;
|
|
68
|
+
// Ensure 280 char limit
|
|
69
|
+
if (tweet.length > 280) {
|
|
70
|
+
// Truncate commit message if needed
|
|
71
|
+
const maxMessageLen = 280 - 70; // Reserve space for metadata
|
|
72
|
+
const truncatedMessage = commit.message.length > maxMessageLen
|
|
73
|
+
? commit.message.substring(0, maxMessageLen - 3) + '...'
|
|
74
|
+
: commit.message;
|
|
75
|
+
tweet = `📝 ${truncatedMessage}\n\n`;
|
|
76
|
+
tweet += `Changed ${filesText}`;
|
|
77
|
+
if (commit.additions !== undefined || commit.deletions !== undefined) {
|
|
78
|
+
tweet += ` (+${commit.additions || 0}/-${commit.deletions || 0})`;
|
|
79
|
+
}
|
|
80
|
+
tweet += `\n\n#BuildInPublic #Git`;
|
|
81
|
+
}
|
|
82
|
+
return tweet;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Summarize multiple commits into a thread
|
|
86
|
+
*/
|
|
87
|
+
function summarizeCommits(commits) {
|
|
88
|
+
if (commits.length === 0) {
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
if (commits.length === 1) {
|
|
92
|
+
return [formatCommitTweet(commits[0])];
|
|
93
|
+
}
|
|
94
|
+
const thread = [];
|
|
95
|
+
// First tweet: overview
|
|
96
|
+
let overview = `🚀 Just pushed ${commits.length} commits!\n\n`;
|
|
97
|
+
overview += `Summary of changes:\n`;
|
|
98
|
+
overview += commits
|
|
99
|
+
.slice(0, 3)
|
|
100
|
+
.map((c, i) => `${i + 1}. ${c.message}`)
|
|
101
|
+
.join('\n');
|
|
102
|
+
if (commits.length > 3) {
|
|
103
|
+
overview += `\n... and ${commits.length - 3} more`;
|
|
104
|
+
}
|
|
105
|
+
overview += `\n\n#BuildInPublic`;
|
|
106
|
+
thread.push(overview);
|
|
107
|
+
// Additional tweets for detailed commits (if space allows)
|
|
108
|
+
commits.slice(0, 3).forEach((commit) => {
|
|
109
|
+
thread.push(formatCommitTweet(commit));
|
|
110
|
+
});
|
|
111
|
+
return thread;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Extract key changes from commit
|
|
115
|
+
*/
|
|
116
|
+
function extractKeyChanges(commit) {
|
|
117
|
+
const changes = [];
|
|
118
|
+
// Categorize file changes
|
|
119
|
+
const categories = categorizeFiles(commit.filesChanged);
|
|
120
|
+
Object.entries(categories).forEach(([category, files]) => {
|
|
121
|
+
if (files.length > 0) {
|
|
122
|
+
changes.push(`${category}: ${files.length} file(s)`);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
return changes;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Categorize files by type
|
|
129
|
+
*/
|
|
130
|
+
function categorizeFiles(files) {
|
|
131
|
+
const categories = {
|
|
132
|
+
'Code': [],
|
|
133
|
+
'Tests': [],
|
|
134
|
+
'Docs': [],
|
|
135
|
+
'Config': [],
|
|
136
|
+
'Other': [],
|
|
137
|
+
};
|
|
138
|
+
files.forEach((file) => {
|
|
139
|
+
const lower = file.toLowerCase();
|
|
140
|
+
if (lower.includes('test') || lower.includes('spec')) {
|
|
141
|
+
categories['Tests'].push(file);
|
|
142
|
+
}
|
|
143
|
+
else if (lower.endsWith('.md') ||
|
|
144
|
+
lower.includes('readme') ||
|
|
145
|
+
lower.includes('doc')) {
|
|
146
|
+
categories['Docs'].push(file);
|
|
147
|
+
}
|
|
148
|
+
else if (lower.includes('config') ||
|
|
149
|
+
lower.endsWith('.json') ||
|
|
150
|
+
lower.endsWith('.yaml') ||
|
|
151
|
+
lower.endsWith('.yml')) {
|
|
152
|
+
categories['Config'].push(file);
|
|
153
|
+
}
|
|
154
|
+
else if (lower.endsWith('.ts') ||
|
|
155
|
+
lower.endsWith('.js') ||
|
|
156
|
+
lower.endsWith('.py') ||
|
|
157
|
+
lower.endsWith('.java') ||
|
|
158
|
+
lower.endsWith('.go') ||
|
|
159
|
+
lower.endsWith('.rs')) {
|
|
160
|
+
categories['Code'].push(file);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
categories['Other'].push(file);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
return categories;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=git-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-analyzer.js","sourceRoot":"","sources":["../../src/services/git-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local file storage for Build in Public
|
|
3
|
+
* Manages auth tokens, context, and history in ~/.build-in-public/
|
|
4
|
+
*/
|
|
5
|
+
export interface AuthTokens {
|
|
6
|
+
apiKey: string;
|
|
7
|
+
apiSecret: string;
|
|
8
|
+
accessToken: string;
|
|
9
|
+
accessTokenSecret: string;
|
|
10
|
+
}
|
|
11
|
+
export interface TweetHistory {
|
|
12
|
+
tweets: Array<{
|
|
13
|
+
id: string;
|
|
14
|
+
url: string;
|
|
15
|
+
message: string;
|
|
16
|
+
timestamp: string;
|
|
17
|
+
}>;
|
|
18
|
+
threads: Array<{
|
|
19
|
+
id: string;
|
|
20
|
+
urls: string[];
|
|
21
|
+
messages: string[];
|
|
22
|
+
timestamp: string;
|
|
23
|
+
}>;
|
|
24
|
+
}
|
|
25
|
+
export interface GitCommit {
|
|
26
|
+
hash: string;
|
|
27
|
+
message: string;
|
|
28
|
+
filesChanged: string[];
|
|
29
|
+
timestamp: string;
|
|
30
|
+
additions?: number;
|
|
31
|
+
deletions?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface Command {
|
|
34
|
+
command: string;
|
|
35
|
+
description: string;
|
|
36
|
+
timestamp?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface SessionContext {
|
|
39
|
+
sessionId: string;
|
|
40
|
+
startTime: string;
|
|
41
|
+
lastUpdated?: string;
|
|
42
|
+
filesModified: string[];
|
|
43
|
+
commandsRun: Command[];
|
|
44
|
+
toolsUsed: string[];
|
|
45
|
+
userMessages: string[];
|
|
46
|
+
commits: GitCommit[];
|
|
47
|
+
achievements: string[];
|
|
48
|
+
challenges: string[];
|
|
49
|
+
learnings: string[];
|
|
50
|
+
shouldTweet: boolean;
|
|
51
|
+
triggerMessage?: string;
|
|
52
|
+
customMessage?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Ensure storage directory exists
|
|
56
|
+
*/
|
|
57
|
+
export declare function ensureStorageDir(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Check if auth tokens exist (either in env vars or file)
|
|
60
|
+
*/
|
|
61
|
+
export declare function hasAuthTokens(): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Save auth tokens to file
|
|
64
|
+
*/
|
|
65
|
+
export declare function saveAuthTokens(tokens: AuthTokens): void;
|
|
66
|
+
/**
|
|
67
|
+
* Load auth tokens from environment variables or file
|
|
68
|
+
* Priority: environment variables > auth.json file
|
|
69
|
+
*/
|
|
70
|
+
export declare function loadAuthTokens(): AuthTokens | null;
|
|
71
|
+
/**
|
|
72
|
+
* Delete auth tokens (for re-auth)
|
|
73
|
+
*/
|
|
74
|
+
export declare function deleteAuthTokens(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Save session context
|
|
77
|
+
*/
|
|
78
|
+
export declare function saveContext(context: SessionContext): void;
|
|
79
|
+
/**
|
|
80
|
+
* Load session context
|
|
81
|
+
*/
|
|
82
|
+
export declare function loadContext(): SessionContext | null;
|
|
83
|
+
/**
|
|
84
|
+
* Add tweet to history
|
|
85
|
+
*/
|
|
86
|
+
export declare function addTweetToHistory(id: string, url: string, message: string): void;
|
|
87
|
+
/**
|
|
88
|
+
* Add thread to history
|
|
89
|
+
*/
|
|
90
|
+
export declare function addThreadToHistory(id: string, urls: string[], messages: string[]): void;
|
|
91
|
+
/**
|
|
92
|
+
* Get storage directory path
|
|
93
|
+
*/
|
|
94
|
+
export declare function getStorageDir(): string;
|
|
95
|
+
/**
|
|
96
|
+
* Save session context
|
|
97
|
+
*/
|
|
98
|
+
export declare function saveSessionContext(context: SessionContext): void;
|
|
99
|
+
/**
|
|
100
|
+
* Load session context
|
|
101
|
+
*/
|
|
102
|
+
export declare function loadSessionContext(): SessionContext | null;
|
|
103
|
+
/**
|
|
104
|
+
* Clear session context
|
|
105
|
+
*/
|
|
106
|
+
export declare function clearSessionContext(): void;
|
|
107
|
+
/**
|
|
108
|
+
* Check if session context exists
|
|
109
|
+
*/
|
|
110
|
+
export declare function hasSessionContext(): boolean;
|
|
111
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/services/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Local file storage for Build in Public
|
|
4
|
+
* Manages auth tokens, context, and history in ~/.build-in-public/
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.ensureStorageDir = ensureStorageDir;
|
|
41
|
+
exports.hasAuthTokens = hasAuthTokens;
|
|
42
|
+
exports.saveAuthTokens = saveAuthTokens;
|
|
43
|
+
exports.loadAuthTokens = loadAuthTokens;
|
|
44
|
+
exports.deleteAuthTokens = deleteAuthTokens;
|
|
45
|
+
exports.saveContext = saveContext;
|
|
46
|
+
exports.loadContext = loadContext;
|
|
47
|
+
exports.addTweetToHistory = addTweetToHistory;
|
|
48
|
+
exports.addThreadToHistory = addThreadToHistory;
|
|
49
|
+
exports.getStorageDir = getStorageDir;
|
|
50
|
+
exports.saveSessionContext = saveSessionContext;
|
|
51
|
+
exports.loadSessionContext = loadSessionContext;
|
|
52
|
+
exports.clearSessionContext = clearSessionContext;
|
|
53
|
+
exports.hasSessionContext = hasSessionContext;
|
|
54
|
+
const fs = __importStar(require("fs"));
|
|
55
|
+
const path = __importStar(require("path"));
|
|
56
|
+
const os = __importStar(require("os"));
|
|
57
|
+
const STORAGE_DIR = path.join(os.homedir(), '.build-in-public');
|
|
58
|
+
const AUTH_FILE = path.join(STORAGE_DIR, 'auth.json');
|
|
59
|
+
const CONTEXT_FILE = path.join(STORAGE_DIR, 'context.json');
|
|
60
|
+
const HISTORY_FILE = path.join(STORAGE_DIR, 'history.json');
|
|
61
|
+
/**
|
|
62
|
+
* Ensure storage directory exists
|
|
63
|
+
*/
|
|
64
|
+
function ensureStorageDir() {
|
|
65
|
+
if (!fs.existsSync(STORAGE_DIR)) {
|
|
66
|
+
fs.mkdirSync(STORAGE_DIR, { recursive: true, mode: 0o700 }); // rwx------
|
|
67
|
+
console.error(`📁 Created storage directory: ${STORAGE_DIR}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Check if auth tokens exist (either in env vars or file)
|
|
72
|
+
*/
|
|
73
|
+
function hasAuthTokens() {
|
|
74
|
+
// Check environment variables first
|
|
75
|
+
const hasEnvTokens = !!process.env.TWITTER_API_KEY &&
|
|
76
|
+
!!process.env.TWITTER_API_SECRET &&
|
|
77
|
+
!!process.env.TWITTER_ACCESS_TOKEN &&
|
|
78
|
+
!!process.env.TWITTER_ACCESS_SECRET;
|
|
79
|
+
return hasEnvTokens || fs.existsSync(AUTH_FILE);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Save auth tokens to file
|
|
83
|
+
*/
|
|
84
|
+
function saveAuthTokens(tokens) {
|
|
85
|
+
ensureStorageDir();
|
|
86
|
+
fs.writeFileSync(AUTH_FILE, JSON.stringify(tokens, null, 2), {
|
|
87
|
+
mode: 0o600, // rw-------
|
|
88
|
+
});
|
|
89
|
+
console.error('✅ Auth tokens saved to:', AUTH_FILE);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Load auth tokens from environment variables or file
|
|
93
|
+
* Priority: environment variables > auth.json file
|
|
94
|
+
*/
|
|
95
|
+
function loadAuthTokens() {
|
|
96
|
+
// Try environment variables first (following Supabase MCP pattern)
|
|
97
|
+
console.error('🔍 Debug: Checking env vars:', {
|
|
98
|
+
hasApiKey: !!process.env.TWITTER_API_KEY,
|
|
99
|
+
hasApiSecret: !!process.env.TWITTER_API_SECRET,
|
|
100
|
+
hasAccessToken: !!process.env.TWITTER_ACCESS_TOKEN,
|
|
101
|
+
hasAccessSecret: !!process.env.TWITTER_ACCESS_SECRET,
|
|
102
|
+
});
|
|
103
|
+
if (process.env.TWITTER_API_KEY &&
|
|
104
|
+
process.env.TWITTER_API_SECRET &&
|
|
105
|
+
process.env.TWITTER_ACCESS_TOKEN &&
|
|
106
|
+
process.env.TWITTER_ACCESS_SECRET) {
|
|
107
|
+
console.error('🔐 Using Twitter credentials from environment variables');
|
|
108
|
+
return {
|
|
109
|
+
apiKey: process.env.TWITTER_API_KEY,
|
|
110
|
+
apiSecret: process.env.TWITTER_API_SECRET,
|
|
111
|
+
accessToken: process.env.TWITTER_ACCESS_TOKEN,
|
|
112
|
+
accessTokenSecret: process.env.TWITTER_ACCESS_SECRET,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
// Fall back to auth.json file
|
|
116
|
+
if (!fs.existsSync(AUTH_FILE)) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
const data = fs.readFileSync(AUTH_FILE, 'utf-8');
|
|
121
|
+
console.error('🔐 Using Twitter credentials from:', AUTH_FILE);
|
|
122
|
+
return JSON.parse(data);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
console.error('❌ Failed to load auth tokens:', error);
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Delete auth tokens (for re-auth)
|
|
131
|
+
*/
|
|
132
|
+
function deleteAuthTokens() {
|
|
133
|
+
if (fs.existsSync(AUTH_FILE)) {
|
|
134
|
+
fs.unlinkSync(AUTH_FILE);
|
|
135
|
+
console.error('🗑️ Auth tokens deleted');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Save session context
|
|
140
|
+
*/
|
|
141
|
+
function saveContext(context) {
|
|
142
|
+
ensureStorageDir();
|
|
143
|
+
const data = {
|
|
144
|
+
...context,
|
|
145
|
+
lastUpdated: new Date().toISOString(),
|
|
146
|
+
};
|
|
147
|
+
fs.writeFileSync(CONTEXT_FILE, JSON.stringify(data, null, 2));
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Load session context
|
|
151
|
+
*/
|
|
152
|
+
function loadContext() {
|
|
153
|
+
if (!fs.existsSync(CONTEXT_FILE)) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
try {
|
|
157
|
+
const data = fs.readFileSync(CONTEXT_FILE, 'utf-8');
|
|
158
|
+
return JSON.parse(data);
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
console.error('❌ Failed to load context:', error);
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Add tweet to history
|
|
167
|
+
*/
|
|
168
|
+
function addTweetToHistory(id, url, message) {
|
|
169
|
+
ensureStorageDir();
|
|
170
|
+
let history = { tweets: [], threads: [] };
|
|
171
|
+
if (fs.existsSync(HISTORY_FILE)) {
|
|
172
|
+
try {
|
|
173
|
+
const data = fs.readFileSync(HISTORY_FILE, 'utf-8');
|
|
174
|
+
history = JSON.parse(data);
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
console.error('⚠️ Failed to load history, creating new:', error);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
history.tweets.push({
|
|
181
|
+
id,
|
|
182
|
+
url,
|
|
183
|
+
message,
|
|
184
|
+
timestamp: new Date().toISOString(),
|
|
185
|
+
});
|
|
186
|
+
fs.writeFileSync(HISTORY_FILE, JSON.stringify(history, null, 2));
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Add thread to history
|
|
190
|
+
*/
|
|
191
|
+
function addThreadToHistory(id, urls, messages) {
|
|
192
|
+
ensureStorageDir();
|
|
193
|
+
let history = { tweets: [], threads: [] };
|
|
194
|
+
if (fs.existsSync(HISTORY_FILE)) {
|
|
195
|
+
try {
|
|
196
|
+
const data = fs.readFileSync(HISTORY_FILE, 'utf-8');
|
|
197
|
+
history = JSON.parse(data);
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
console.error('⚠️ Failed to load history, creating new:', error);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
history.threads.push({
|
|
204
|
+
id,
|
|
205
|
+
urls,
|
|
206
|
+
messages,
|
|
207
|
+
timestamp: new Date().toISOString(),
|
|
208
|
+
});
|
|
209
|
+
fs.writeFileSync(HISTORY_FILE, JSON.stringify(history, null, 2));
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Get storage directory path
|
|
213
|
+
*/
|
|
214
|
+
function getStorageDir() {
|
|
215
|
+
return STORAGE_DIR;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Save session context
|
|
219
|
+
*/
|
|
220
|
+
function saveSessionContext(context) {
|
|
221
|
+
ensureStorageDir();
|
|
222
|
+
const data = {
|
|
223
|
+
...context,
|
|
224
|
+
lastUpdated: new Date().toISOString(),
|
|
225
|
+
};
|
|
226
|
+
fs.writeFileSync(CONTEXT_FILE, JSON.stringify(data, null, 2));
|
|
227
|
+
console.error('💾 Session context saved');
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Load session context
|
|
231
|
+
*/
|
|
232
|
+
function loadSessionContext() {
|
|
233
|
+
if (!fs.existsSync(CONTEXT_FILE)) {
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
try {
|
|
237
|
+
const data = fs.readFileSync(CONTEXT_FILE, 'utf-8');
|
|
238
|
+
return JSON.parse(data);
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
console.error('❌ Failed to load session context:', error);
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Clear session context
|
|
247
|
+
*/
|
|
248
|
+
function clearSessionContext() {
|
|
249
|
+
if (fs.existsSync(CONTEXT_FILE)) {
|
|
250
|
+
fs.unlinkSync(CONTEXT_FILE);
|
|
251
|
+
console.error('🗑️ Session context cleared');
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Check if session context exists
|
|
256
|
+
*/
|
|
257
|
+
function hasSessionContext() {
|
|
258
|
+
return fs.existsSync(CONTEXT_FILE);
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/services/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Suggestion Engine for Build in Public
|
|
3
|
+
* Analyzes session context and generates intelligent tweet suggestions
|
|
4
|
+
*/
|
|
5
|
+
import { SessionContext } from './storage.js';
|
|
6
|
+
export interface Suggestion {
|
|
7
|
+
message: string;
|
|
8
|
+
confidence: number;
|
|
9
|
+
reason: string;
|
|
10
|
+
type: 'commit' | 'achievement' | 'session' | 'learning';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Generate tweet suggestions based on session context
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateSuggestions(context: SessionContext): Suggestion[];
|
|
16
|
+
/**
|
|
17
|
+
* Calculate confidence score for suggestions
|
|
18
|
+
*/
|
|
19
|
+
export declare function scoreConfidence(context: SessionContext): number;
|
|
20
|
+
//# sourceMappingURL=suggestion-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggestion-engine.d.ts","sourceRoot":"","sources":["../../src/services/suggestion-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;CACzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,EAAE,CAuCzE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CA8B/D"}
|