delimit-cli 3.14.15 → 3.14.16

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.
@@ -839,8 +839,62 @@ exit 127
839
839
  }
840
840
  log('');
841
841
 
842
- // Step 11: Done
843
- step(11, 'Done!');
842
+ // Step 11: Social target scanning config
843
+ step(11, 'Configuring social target scanner...');
844
+
845
+ const socialConfigPath = path.join(DELIMIT_HOME, 'social_target_config.json');
846
+ const socialDefaultConfig = {
847
+ platforms: {
848
+ x: { enabled: true, provider: 'twttr241' },
849
+ reddit: { enabled: true, provider: 'proxy' },
850
+ github: { enabled: true, provider: 'gh_cli' },
851
+ hn: { enabled: true, provider: 'algolia' },
852
+ devto: { enabled: true, provider: 'public_api' },
853
+ namepros: { enabled: false, provider: 'manual' },
854
+ },
855
+ subreddits: {},
856
+ github_queries: {},
857
+ scan_limit: 10,
858
+ min_engagement: { score: 1, comments: 2 },
859
+ };
860
+
861
+ if (!fs.existsSync(socialConfigPath)) {
862
+ fs.mkdirSync(path.dirname(socialConfigPath), { recursive: true });
863
+ fs.writeFileSync(socialConfigPath, JSON.stringify(socialDefaultConfig, null, 2) + '\n');
864
+ log(` ${green('\u2713')} Created ${dim(socialConfigPath)}`);
865
+ } else {
866
+ log(` ${dim(' Config already exists:')} ${socialConfigPath}`);
867
+ }
868
+
869
+ // Auto-detect available platforms
870
+ const detectedPlatforms = {};
871
+ // HN and Dev.to are always available (public APIs)
872
+ detectedPlatforms['hn'] = 'available (public API)';
873
+ detectedPlatforms['devto'] = 'available (public API)';
874
+ // GitHub: check gh CLI
875
+ try {
876
+ execSync('gh auth status', { stdio: 'pipe', timeout: 10000 });
877
+ detectedPlatforms['github'] = 'available (gh authenticated)';
878
+ } catch {
879
+ detectedPlatforms['github'] = 'unavailable (gh not authenticated)';
880
+ }
881
+ // X: check for RapidAPI key in env
882
+ if (process.env.RAPIDAPI_KEY) {
883
+ detectedPlatforms['x'] = 'available (RapidAPI key in env)';
884
+ } else if (process.env.XAI_API_KEY) {
885
+ detectedPlatforms['x'] = 'available (xAI key in env, fallback)';
886
+ } else {
887
+ detectedPlatforms['x'] = 'unavailable (no API key)';
888
+ }
889
+
890
+ for (const [plat, status] of Object.entries(detectedPlatforms)) {
891
+ const icon = status.startsWith('available') ? green('\u2713') : yellow('\u2717');
892
+ log(` ${icon} ${plat}: ${dim(status)}`);
893
+ }
894
+ log('');
895
+
896
+ // Step 12: Done
897
+ step(12, 'Done!');
844
898
  log('');
845
899
  log(` ${green('Delimit is installed.')} Your AI now has persistent memory and governance.`);
846
900
  log('');
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "delimit-cli",
3
3
  "mcpName": "io.github.delimit-ai/delimit-mcp-server",
4
- "version": "3.14.15",
4
+ "version": "3.14.16",
5
5
  "description": "Unify Claude Code, Codex, Cursor, and Gemini CLI with persistent context, governance, and multi-model debate.",
6
6
  "main": "index.js",
7
7
  "files": [