indelible-mcp 4.1.0 → 4.1.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "indelible-mcp",
3
- "version": "4.1.0",
3
+ "version": "4.1.2",
4
4
  "description": "Blockchain-backed memory and code storage for Claude Code. Save AI conversations and source code permanently on BSV.",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
package/src/index.js CHANGED
@@ -256,7 +256,7 @@ Commands:
256
256
 
257
257
  function printHelp() {
258
258
  console.log(`
259
- Indelible MCP — Blockchain memory for Claude Code (v4.1.0)
259
+ Indelible MCP — Blockchain memory for Claude Code (v4.1.2)
260
260
 
261
261
  Setup:
262
262
  indelible-mcp setup --wif=KEY --pin=PIN Import and encrypt your private key
@@ -468,7 +468,7 @@ function readStdin() {
468
468
 
469
469
  const SERVER_INFO = {
470
470
  name: 'indelible',
471
- version: '4.1.0',
471
+ version: '4.1.2',
472
472
  description: 'Blockchain-backed memory and code storage for Claude Code'
473
473
  }
474
474
 
@@ -751,11 +751,13 @@ async function runWizard() {
751
751
  // Run health check
752
752
  console.log(' Checking your setup...\n')
753
753
  let allGood = true
754
+ let claudeOk = false
754
755
 
755
756
  // Claude Code
756
757
  try {
757
758
  execSync('claude --version', { stdio: 'pipe' })
758
759
  console.log(' ✓ Claude Code installed')
760
+ claudeOk = true
759
761
  } catch {
760
762
  console.log(' ✗ Claude Code not found')
761
763
  allGood = false
@@ -795,7 +797,7 @@ async function runWizard() {
795
797
  try {
796
798
  const utxos = await spv.getUtxos(config.address)
797
799
  if (utxos && utxos.length > 0) {
798
- const total = utxos.reduce((sum, u) => sum + u.satoshis, 0)
800
+ const total = utxos.reduce((sum, u) => sum + (u.value || u.satoshis || 0), 0)
799
801
  console.log(` ✓ Wallet funded (${total} sats)`)
800
802
  funded = true
801
803
  } else {
@@ -830,29 +832,42 @@ async function runWizard() {
830
832
  return
831
833
  }
832
834
 
835
+ // Fix Claude Code + MCP first (always, regardless of other issues)
836
+ if (!claudeOk) {
837
+ console.log(' Fixing: installing Claude Code CLI...')
838
+ try {
839
+ execSync('npm install -g @anthropic-ai/claude-code', { stdio: 'inherit' })
840
+ console.log('\n ✓ Claude Code installed')
841
+ claudeOk = true
842
+ } catch {
843
+ console.log('\n Could not install automatically.')
844
+ console.log(' Run this yourself: npm install -g @anthropic-ai/claude-code')
845
+ }
846
+ }
847
+ if (!mcpOk && claudeOk) {
848
+ console.log(' Fixing: registering MCP with Claude Code...')
849
+ try {
850
+ execSync('claude mcp add indelible -- indelible-mcp', { stdio: 'pipe' })
851
+ console.log(' ✓ MCP registered')
852
+ } catch {
853
+ console.log(' Run this yourself: claude mcp add indelible -- indelible-mcp')
854
+ }
855
+ }
856
+ if (!hooksOk) {
857
+ console.log(' Fixing: installing auto-save hooks...')
858
+ installHooks()
859
+ console.log(' ✓ Hooks installed')
860
+ }
861
+
833
862
  // Resume wizard at the right point
834
863
  if (!funded) {
835
- console.log(' Resuming setup — your wallet needs funding.\n')
864
+ console.log('\n Resuming setup — your wallet needs funding.\n')
836
865
  // Fall through to balance polling below
837
866
  } else if (!hasStyle) {
838
- console.log(' Resuming setup — pick your AI style.\n')
867
+ console.log('\n Resuming setup — pick your AI style.\n')
839
868
  // Skip to style selection (fall through, balance polling will pass instantly)
840
869
  } else {
841
- // Something else failed (hooks, MCP, etc) try to fix
842
- if (!mcpOk) {
843
- console.log(' Fixing: registering MCP with Claude Code...')
844
- try {
845
- execSync('claude mcp add indelible -- indelible-mcp', { stdio: 'pipe' })
846
- console.log(' ✓ MCP registered\n')
847
- } catch {
848
- console.log(' Run this yourself: claude mcp add indelible -- indelible-mcp\n')
849
- }
850
- }
851
- if (!hooksOk) {
852
- console.log(' Fixing: installing auto-save hooks...')
853
- installHooks()
854
- console.log(' ✓ Hooks installed\n')
855
- }
870
+ console.log('\n Everything fixed! Open Claude Code in VS Code and start coding.\n')
856
871
  rl.close()
857
872
  return
858
873
  }
@@ -935,7 +950,7 @@ async function runWizard() {
935
950
  try {
936
951
  const utxos = await spv.getUtxos(config.address)
937
952
  if (utxos && utxos.length > 0) {
938
- const total = utxos.reduce((sum, u) => sum + u.satoshis, 0)
953
+ const total = utxos.reduce((sum, u) => sum + (u.value || u.satoshis || 0), 0)
939
954
  console.log(`\n ✓ Funded! Balance: ${total} sats\n`)
940
955
  break
941
956
  }
package/src/lib/spv.js CHANGED
@@ -20,7 +20,7 @@ const SEED_BRIDGES = [
20
20
  // Old individual bridge IPs — used to detect configs that need migration
21
21
  const OLD_BRIDGE_IPS = [
22
22
  '45.76.19.199', '107.191.49.18', '155.138.254.224',
23
- '144.202.50.135', '155.138.216.126'
23
+ '144.202.50.135', '155.138.216.126', '155.138.238.167'
24
24
  ]
25
25
 
26
26
  // Bridge health tracking