stigmergy 1.2.6 → 1.2.8

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 (59) hide show
  1. package/README.md +32 -17
  2. package/STIGMERGY.md +16 -7
  3. package/docs/MULTI_USER_WIKI_COLLABORATION_SYSTEM.md +523 -0
  4. package/docs/PROMPT_BASED_SKILLS_SYSTEM_DESIGN.md +458 -0
  5. package/docs/SKILL_IMPLEMENTATION_CONSTRAINTS_AND_ALIGNMENT.md +423 -0
  6. package/docs/TECHNICAL_FEASIBILITY_ANALYSIS.md +308 -0
  7. package/examples/multilingual-hook-demo.js +125 -0
  8. package/package.json +14 -17
  9. package/scripts/dependency-analyzer.js +101 -0
  10. package/scripts/generate-cli-docs.js +64 -0
  11. package/scripts/postuninstall.js +46 -0
  12. package/scripts/preuninstall.js +75 -0
  13. package/scripts/run-layered-tests.js +3 -3
  14. package/src/adapters/claude/install_claude_integration.js +17 -17
  15. package/src/adapters/codebuddy/install_codebuddy_integration.js +13 -13
  16. package/src/adapters/codex/install_codex_integration.js +27 -27
  17. package/src/adapters/copilot/install_copilot_integration.js +46 -46
  18. package/src/adapters/gemini/install_gemini_integration.js +10 -10
  19. package/src/adapters/iflow/install_iflow_integration.js +7 -7
  20. package/src/adapters/qoder/install_qoder_integration.js +12 -12
  21. package/src/adapters/qwen/install_qwen_integration.js +17 -17
  22. package/src/auth.js +173 -173
  23. package/src/auth_command.js +208 -208
  24. package/src/calculator.js +313 -313
  25. package/src/cli/router.js +151 -7
  26. package/src/core/cache_cleaner.js +767 -767
  27. package/src/core/cli_help_analyzer.js +680 -680
  28. package/src/core/cli_parameter_handler.js +132 -132
  29. package/src/core/cli_tools.js +89 -89
  30. package/src/core/coordination/index.js +16 -16
  31. package/src/core/coordination/nodejs/AdapterManager.js +102 -102
  32. package/src/core/coordination/nodejs/CLCommunication.js +132 -132
  33. package/src/core/coordination/nodejs/CLIIntegrationManager.js +272 -272
  34. package/src/core/coordination/nodejs/HealthChecker.js +76 -76
  35. package/src/core/coordination/nodejs/HookDeploymentManager.js +463 -274
  36. package/src/core/coordination/nodejs/StatisticsCollector.js +71 -71
  37. package/src/core/coordination/nodejs/index.js +90 -90
  38. package/src/core/coordination/nodejs/utils/Logger.js +29 -29
  39. package/src/core/enhanced_installer.js +479 -479
  40. package/src/core/enhanced_uninstaller.js +638 -638
  41. package/src/core/error_handler.js +406 -406
  42. package/src/core/installer.js +32 -32
  43. package/src/core/memory_manager.js +83 -83
  44. package/src/core/multilingual/language-pattern-manager.js +172 -0
  45. package/src/core/rest_client.js +160 -160
  46. package/src/core/smart_router.js +261 -249
  47. package/src/core/upgrade_manager.js +48 -20
  48. package/src/data_encryption.js +143 -143
  49. package/src/data_structures.js +440 -440
  50. package/src/deploy.js +55 -55
  51. package/src/index.js +30 -30
  52. package/src/test/cli-availability-checker.js +194 -194
  53. package/src/test/test-environment.js +289 -289
  54. package/src/utils/helpers.js +35 -35
  55. package/src/utils.js +921 -921
  56. package/src/weatherProcessor.js +228 -228
  57. package/test/multilingual/hook-deployment.test.js +91 -0
  58. package/test/multilingual/language-pattern-manager.test.js +140 -0
  59. package/test/multilingual/system-test.js +85 -0
@@ -1,71 +1,71 @@
1
- // src/core/coordination/nodejs/StatisticsCollector.js
2
- class StatisticsCollector {
3
- constructor() {
4
- this.counters = {};
5
- this.timings = {};
6
- this.startTime = Date.now();
7
- }
8
-
9
- initialize() {
10
- console.log('[STATISTICS_COLLECTOR] Initializing statistics collector...');
11
- this.reset();
12
- }
13
-
14
- reset() {
15
- this.counters = {
16
- cross_cli_calls: 0,
17
- successful_calls: 0,
18
- failed_calls: 0,
19
- adapter_loads: 0,
20
- };
21
- this.timings = {
22
- execution_times: [],
23
- last_reset: Date.now(),
24
- };
25
- }
26
-
27
- incrementCounter(name) {
28
- this.counters[name] = (this.counters[name] || 0) + 1;
29
- }
30
-
31
- recordExecutionTime(timeMs) {
32
- this.timings.execution_times.push(timeMs);
33
- // Keep only last 1000 timings to prevent memory bloat
34
- if (this.timings.execution_times.length > 1000) {
35
- this.timings.execution_times.shift();
36
- }
37
- }
38
-
39
- getAdapterStats(cliName) {
40
- return {
41
- calls: this.counters.cross_cli_calls,
42
- successRate: this.calculateSuccessRate(),
43
- averageExecutionTime: this.calculateAverageExecutionTime(),
44
- uptime: Date.now() - this.startTime,
45
- };
46
- }
47
-
48
- getAllStats() {
49
- return {
50
- counters: this.counters,
51
- timings: {
52
- ...this.timings,
53
- averageExecutionTime: this.calculateAverageExecutionTime(),
54
- },
55
- uptime: Date.now() - this.startTime,
56
- };
57
- }
58
-
59
- calculateSuccessRate() {
60
- if (this.counters.cross_cli_calls === 0) return 1.0;
61
- return this.counters.successful_calls / this.counters.cross_cli_calls;
62
- }
63
-
64
- calculateAverageExecutionTime() {
65
- if (this.timings.execution_times.length === 0) return 0;
66
- const sum = this.timings.execution_times.reduce((a, b) => a + b, 0);
67
- return sum / this.timings.execution_times.length;
68
- }
69
- }
70
-
71
- module.exports = StatisticsCollector;
1
+ // src/core/coordination/nodejs/StatisticsCollector.js
2
+ class StatisticsCollector {
3
+ constructor() {
4
+ this.counters = {};
5
+ this.timings = {};
6
+ this.startTime = Date.now();
7
+ }
8
+
9
+ initialize() {
10
+ console.log('[STATISTICS_COLLECTOR] Initializing statistics collector...');
11
+ this.reset();
12
+ }
13
+
14
+ reset() {
15
+ this.counters = {
16
+ cross_cli_calls: 0,
17
+ successful_calls: 0,
18
+ failed_calls: 0,
19
+ adapter_loads: 0,
20
+ };
21
+ this.timings = {
22
+ execution_times: [],
23
+ last_reset: Date.now(),
24
+ };
25
+ }
26
+
27
+ incrementCounter(name) {
28
+ this.counters[name] = (this.counters[name] || 0) + 1;
29
+ }
30
+
31
+ recordExecutionTime(timeMs) {
32
+ this.timings.execution_times.push(timeMs);
33
+ // Keep only last 1000 timings to prevent memory bloat
34
+ if (this.timings.execution_times.length > 1000) {
35
+ this.timings.execution_times.shift();
36
+ }
37
+ }
38
+
39
+ getAdapterStats(cliName) {
40
+ return {
41
+ calls: this.counters.cross_cli_calls,
42
+ successRate: this.calculateSuccessRate(),
43
+ averageExecutionTime: this.calculateAverageExecutionTime(),
44
+ uptime: Date.now() - this.startTime,
45
+ };
46
+ }
47
+
48
+ getAllStats() {
49
+ return {
50
+ counters: this.counters,
51
+ timings: {
52
+ ...this.timings,
53
+ averageExecutionTime: this.calculateAverageExecutionTime(),
54
+ },
55
+ uptime: Date.now() - this.startTime,
56
+ };
57
+ }
58
+
59
+ calculateSuccessRate() {
60
+ if (this.counters.cross_cli_calls === 0) return 1.0;
61
+ return this.counters.successful_calls / this.counters.cross_cli_calls;
62
+ }
63
+
64
+ calculateAverageExecutionTime() {
65
+ if (this.timings.execution_times.length === 0) return 0;
66
+ const sum = this.timings.execution_times.reduce((a, b) => a + b, 0);
67
+ return sum / this.timings.execution_times.length;
68
+ }
69
+ }
70
+
71
+ module.exports = StatisticsCollector;
@@ -1,90 +1,90 @@
1
- // src/core/coordination/nodejs/index.js
2
- const AdapterManager = require('./AdapterManager');
3
- const CLCommunication = require('./CLCommunication');
4
- const StatisticsCollector = require('./StatisticsCollector');
5
- const HealthChecker = require('./HealthChecker');
6
-
7
- class NodeJsCoordinationLayer {
8
- constructor() {
9
- this.adapterManager = new AdapterManager();
10
- this.communication = new CLCommunication();
11
- this.statistics = new StatisticsCollector();
12
- this.healthChecker = new HealthChecker();
13
- }
14
-
15
- async initialize(options = {}) {
16
- try {
17
- console.log(
18
- '[NODEJS_COORDINATION] Initializing Node.js coordination layer...',
19
- );
20
-
21
- // Initialize components
22
- await this.adapterManager.initialize();
23
- await this.communication.initialize();
24
- this.statistics.initialize();
25
-
26
- // Perform health check
27
- const health = await this.healthChecker.checkHealth();
28
- if (!health.healthy) {
29
- console.warn(
30
- '[NODEJS_COORDINATION] Health check issues detected:',
31
- health,
32
- );
33
- }
34
-
35
- console.log(
36
- '[NODEJS_COORDINATION] Node.js coordination layer initialized successfully',
37
- );
38
- return true;
39
- } catch (error) {
40
- console.error(
41
- '[NODEJS_COORDINATION] Failed to initialize Node.js coordination layer:',
42
- error,
43
- );
44
- return false;
45
- }
46
- }
47
-
48
- async executeCrossCLITask(sourceCLI, targetCLI, task, context = {}) {
49
- this.statistics.incrementCounter('cross_cli_calls');
50
- const startTime = Date.now();
51
-
52
- try {
53
- const result = await this.communication.executeTask(
54
- sourceCLI,
55
- targetCLI,
56
- task,
57
- context,
58
- );
59
- this.statistics.recordExecutionTime(Date.now() - startTime);
60
- this.statistics.incrementCounter('successful_calls');
61
- return result;
62
- } catch (error) {
63
- this.statistics.incrementCounter('failed_calls');
64
- console.error(
65
- '[NODEJS_COORDINATION] Cross-CLI task execution failed:',
66
- error,
67
- );
68
- throw error;
69
- }
70
- }
71
-
72
- async getAdapterStatistics(cliName) {
73
- return this.statistics.getAdapterStats(cliName);
74
- }
75
-
76
- async getSystemStatus() {
77
- return {
78
- implementation: 'nodejs',
79
- health: await this.healthChecker.checkHealth(),
80
- statistics: this.statistics.getAllStats(),
81
- adapters: await this.adapterManager.listAdapters(),
82
- };
83
- }
84
-
85
- async healthCheck() {
86
- return await this.healthChecker.checkHealth();
87
- }
88
- }
89
-
90
- module.exports = NodeJsCoordinationLayer;
1
+ // src/core/coordination/nodejs/index.js
2
+ const AdapterManager = require('./AdapterManager');
3
+ const CLCommunication = require('./CLCommunication');
4
+ const StatisticsCollector = require('./StatisticsCollector');
5
+ const HealthChecker = require('./HealthChecker');
6
+
7
+ class NodeJsCoordinationLayer {
8
+ constructor() {
9
+ this.adapterManager = new AdapterManager();
10
+ this.communication = new CLCommunication();
11
+ this.statistics = new StatisticsCollector();
12
+ this.healthChecker = new HealthChecker();
13
+ }
14
+
15
+ async initialize(options = {}) {
16
+ try {
17
+ console.log(
18
+ '[NODEJS_COORDINATION] Initializing Node.js coordination layer...',
19
+ );
20
+
21
+ // Initialize components
22
+ await this.adapterManager.initialize();
23
+ await this.communication.initialize();
24
+ this.statistics.initialize();
25
+
26
+ // Perform health check
27
+ const health = await this.healthChecker.checkHealth();
28
+ if (!health.healthy) {
29
+ console.warn(
30
+ '[NODEJS_COORDINATION] Health check issues detected:',
31
+ health,
32
+ );
33
+ }
34
+
35
+ console.log(
36
+ '[NODEJS_COORDINATION] Node.js coordination layer initialized successfully',
37
+ );
38
+ return true;
39
+ } catch (error) {
40
+ console.error(
41
+ '[NODEJS_COORDINATION] Failed to initialize Node.js coordination layer:',
42
+ error,
43
+ );
44
+ return false;
45
+ }
46
+ }
47
+
48
+ async executeCrossCLITask(sourceCLI, targetCLI, task, context = {}) {
49
+ this.statistics.incrementCounter('cross_cli_calls');
50
+ const startTime = Date.now();
51
+
52
+ try {
53
+ const result = await this.communication.executeTask(
54
+ sourceCLI,
55
+ targetCLI,
56
+ task,
57
+ context,
58
+ );
59
+ this.statistics.recordExecutionTime(Date.now() - startTime);
60
+ this.statistics.incrementCounter('successful_calls');
61
+ return result;
62
+ } catch (error) {
63
+ this.statistics.incrementCounter('failed_calls');
64
+ console.error(
65
+ '[NODEJS_COORDINATION] Cross-CLI task execution failed:',
66
+ error,
67
+ );
68
+ throw error;
69
+ }
70
+ }
71
+
72
+ async getAdapterStatistics(cliName) {
73
+ return this.statistics.getAdapterStats(cliName);
74
+ }
75
+
76
+ async getSystemStatus() {
77
+ return {
78
+ implementation: 'nodejs',
79
+ health: await this.healthChecker.checkHealth(),
80
+ statistics: this.statistics.getAllStats(),
81
+ adapters: await this.adapterManager.listAdapters(),
82
+ };
83
+ }
84
+
85
+ async healthCheck() {
86
+ return await this.healthChecker.checkHealth();
87
+ }
88
+ }
89
+
90
+ module.exports = NodeJsCoordinationLayer;
@@ -1,29 +1,29 @@
1
- // src/core/coordination/nodejs/utils/Logger.js
2
- class Logger {
3
- constructor(component) {
4
- this.component = component;
5
- }
6
-
7
- info(message) {
8
- this.log('INFO', message);
9
- }
10
-
11
- warn(message) {
12
- this.log('WARN', message);
13
- }
14
-
15
- error(message) {
16
- this.log('ERROR', message);
17
- }
18
-
19
- debug(message) {
20
- this.log('DEBUG', message);
21
- }
22
-
23
- log(level, message) {
24
- const timestamp = new Date().toISOString();
25
- console.log(`[${timestamp}] [${level}] [${this.component}] ${message}`);
26
- }
27
- }
28
-
29
- module.exports = Logger;
1
+ // src/core/coordination/nodejs/utils/Logger.js
2
+ class Logger {
3
+ constructor(component) {
4
+ this.component = component;
5
+ }
6
+
7
+ info(message) {
8
+ this.log('INFO', message);
9
+ }
10
+
11
+ warn(message) {
12
+ this.log('WARN', message);
13
+ }
14
+
15
+ error(message) {
16
+ this.log('ERROR', message);
17
+ }
18
+
19
+ debug(message) {
20
+ this.log('DEBUG', message);
21
+ }
22
+
23
+ log(level, message) {
24
+ const timestamp = new Date().toISOString();
25
+ console.log(`[${timestamp}] [${level}] [${this.component}] ${message}`);
26
+ }
27
+ }
28
+
29
+ module.exports = Logger;