sigmap 6.10.2 → 6.10.3

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/CHANGELOG.md CHANGED
@@ -10,6 +10,19 @@ Format: [Semantic Versioning](https://semver.org/)
10
10
 
11
11
  ---
12
12
 
13
+ ## [6.10.3] — 2026-05-11
14
+
15
+ ### Fixed
16
+
17
+ - **MCP tools import graph analysis** — Fixed `extractImports` not being exported in bundled gen-context.js, which caused `explain_file` (imports/callers), `get_impact`, and `get_routing` tools to fail with "extractImports is not a function" error. Now all three tools correctly analyze file dependencies and impact blast radius.
18
+ - **Contributor attribution** — Added direct author commits for Denis Solonenko (GDScript extractor), Sean Campbell (Willow adapter, Python AST extractor), kumamaki (Claude adapter per-module), and Matt Van Horn (R language support) so they appear in GitHub contributors graph.
19
+
20
+ ### Changed
21
+
22
+ - **Auto-sync workflow** — Added GitHub Actions workflow to automatically sync `develop` branch with `main` after each release, preventing future branch drift.
23
+
24
+ ---
25
+
13
26
  ## [6.10.2] — 2026-05-11
14
27
 
15
28
  ### Added
package/gen-context.js CHANGED
@@ -729,6 +729,84 @@ __factories["./src/extractors/go"] = function(module, exports) {
729
729
 
730
730
  };
731
731
 
732
+ // ── ./src/extractors/gdscript ──
733
+ __factories["./src/extractors/gdscript"] = function(module, exports) {
734
+
735
+ /**
736
+ * Extract signatures from Godot GDScript source code.
737
+ * @param {string} src - Raw file content
738
+ * @returns {string[]} Array of signature strings
739
+ */
740
+
741
+ function extract(src) {
742
+ if (!src || typeof src !== 'string') return [];
743
+ const sigs = [];
744
+
745
+ const stripped = src.replace(/#.*$/gm, '');
746
+
747
+ let className = null;
748
+ let baseName = null;
749
+ const addedClasses = new Set();
750
+
751
+ const cm = stripped.match(/^class_name\s+(\w+)(?:\s+extends\s+([\w.]+))?/m);
752
+ if (cm) {
753
+ className = cm[1];
754
+ if (cm[2]) baseName = cm[2];
755
+ }
756
+ if (!baseName) {
757
+ const em = stripped.match(/^extends\s+([\w."/]+)/m);
758
+ if (em) baseName = em[1];
759
+ }
760
+
761
+ if (className) {
762
+ sigs.push(baseName ? `class ${className}(${baseName})` : `class ${className}`);
763
+ addedClasses.add(className);
764
+ } else if (baseName) {
765
+ sigs.push(`extends ${baseName}`);
766
+ }
767
+
768
+ const indent = (className || baseName) ? ' ' : '';
769
+
770
+ for (const m of stripped.matchAll(/^signal\s+(\w+)(?:\s*\(([^)]*)\))?/gm)) {
771
+ sigs.push(`${indent}signal ${m[1]}(${normalizeParams(m[2] || '')})`);
772
+ }
773
+
774
+ for (const m of stripped.matchAll(/^enum\s+(\w+)\s*\{([^}]*)\}/gm)) {
775
+ const members = m[2]
776
+ .split(',')
777
+ .map((s) => s.trim().split(/\s*=/)[0].trim())
778
+ .filter(Boolean);
779
+ sigs.push(`${indent}enum ${m[1]} { ${members.slice(0, 6).join(', ')} }`);
780
+ }
781
+
782
+ let constCount = 0;
783
+ for (const m of stripped.matchAll(/^(?:const|var)\s+([A-Z_]\w*)\s*(?::\s*\w+)?\s*=/gm)) {
784
+ if (constCount++ > 15) break;
785
+ sigs.push(`${indent}const ${m[1]}`);
786
+ }
787
+
788
+ for (const m of stripped.matchAll(/^(?:static\s+)?func\s+(_\w+|\w+)\s*\(([^)]*)\)(?:\s*->\s*(\w+))?/gm)) {
789
+ if (m[1].startsWith('_')) continue;
790
+ const retStr = m[3] ? ` → ${m[3]}` : '';
791
+ sigs.push(`${indent}func ${m[1]}(${normalizeParams(m[2])})${retStr}`);
792
+ if (sigs.length > 30) break;
793
+ }
794
+
795
+ return sigs;
796
+ }
797
+
798
+ function normalizeParams(raw) {
799
+ if (!raw) return '';
800
+ return raw
801
+ .split(',')
802
+ .map((p) => p.trim())
803
+ .join(', ');
804
+ }
805
+
806
+ module.exports = { extract };
807
+
808
+ };
809
+
732
810
  // ── ./src/extractors/html ──
733
811
  __factories["./src/extractors/html"] = function(module, exports) {
734
812
 
@@ -4381,7 +4459,7 @@ __factories["./src/map/class-hierarchy"] = function(module, exports) {
4381
4459
  .join('\n');
4382
4460
  }
4383
4461
 
4384
- module.exports = { analyze };
4462
+ module.exports = { analyze, extractImports };
4385
4463
 
4386
4464
  };
4387
4465
 
@@ -5529,7 +5607,7 @@ __factories["./src/mcp/server"] = function(module, exports) {
5529
5607
 
5530
5608
  const SERVER_INFO = {
5531
5609
  name: 'sigmap',
5532
- version: '6.10.2',
5610
+ version: '6.10.3',
5533
5611
  description: 'SigMap MCP server — code signatures on demand',
5534
5612
  };
5535
5613
 
@@ -8156,7 +8234,7 @@ const path = require('path');
8156
8234
  const os = require('os');
8157
8235
  const { execSync } = require('child_process');
8158
8236
 
8159
- const VERSION = '6.10.2';
8237
+ const VERSION = '6.10.3';
8160
8238
  const MARKER = '\n\n## Auto-generated signatures\n<!-- Updated by gen-context.js -->\n';
8161
8239
 
8162
8240
  function requireSourceOrBundled(key) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sigmap",
3
- "version": "6.10.2",
3
+ "version": "6.10.3",
4
4
  "description": "Zero-dependency AI context engine — 97% token reduction. No npm install. Runs on Node 18+.",
5
5
  "main": "gen-context.js",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sigmap-cli",
3
- "version": "6.10.2",
3
+ "version": "6.10.3",
4
4
  "description": "SigMap CLI wrapper — thin adapter for programmatic CLI invocation",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sigmap-core",
3
- "version": "6.10.2",
3
+ "version": "6.10.3",
4
4
  "description": "SigMap core library — zero-dependency code signature extraction, retrieval, and security scanning",
5
5
  "main": "index.js",
6
6
  "keywords": [
package/src/mcp/server.js CHANGED
@@ -18,7 +18,7 @@ const { readContext, searchSignatures, getMap, createCheckpoint, getRouting, exp
18
18
 
19
19
  const SERVER_INFO = {
20
20
  name: 'sigmap',
21
- version: '6.10.2',
21
+ version: '6.10.3',
22
22
  description: 'SigMap MCP server — code signatures on demand',
23
23
  };
24
24