@nahisaho/musubix-core 1.4.4 → 1.5.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.
Files changed (162) hide show
  1. package/AGENTS.md +9 -4
  2. package/dist/cli/commands/index.d.ts +2 -0
  3. package/dist/cli/commands/index.d.ts.map +1 -1
  4. package/dist/cli/commands/index.js +10 -0
  5. package/dist/cli/commands/index.js.map +1 -1
  6. package/dist/cli/commands/perf.d.ts +12 -0
  7. package/dist/cli/commands/perf.d.ts.map +1 -0
  8. package/dist/cli/commands/perf.js +210 -0
  9. package/dist/cli/commands/perf.js.map +1 -0
  10. package/dist/cli/commands/repl.d.ts +39 -0
  11. package/dist/cli/commands/repl.d.ts.map +1 -0
  12. package/dist/cli/commands/repl.js +105 -0
  13. package/dist/cli/commands/repl.js.map +1 -0
  14. package/dist/cli/repl/__tests__/repl.test.d.ts +8 -0
  15. package/dist/cli/repl/__tests__/repl.test.d.ts.map +1 -0
  16. package/dist/cli/repl/__tests__/repl.test.js +375 -0
  17. package/dist/cli/repl/__tests__/repl.test.js.map +1 -0
  18. package/dist/cli/repl/command-completer.d.ts +71 -0
  19. package/dist/cli/repl/command-completer.d.ts.map +1 -0
  20. package/dist/cli/repl/command-completer.js +360 -0
  21. package/dist/cli/repl/command-completer.js.map +1 -0
  22. package/dist/cli/repl/history-manager.d.ts +82 -0
  23. package/dist/cli/repl/history-manager.d.ts.map +1 -0
  24. package/dist/cli/repl/history-manager.js +171 -0
  25. package/dist/cli/repl/history-manager.js.map +1 -0
  26. package/dist/cli/repl/index.d.ts +15 -0
  27. package/dist/cli/repl/index.d.ts.map +1 -0
  28. package/dist/cli/repl/index.js +15 -0
  29. package/dist/cli/repl/index.js.map +1 -0
  30. package/dist/cli/repl/output-formatter.d.ts +81 -0
  31. package/dist/cli/repl/output-formatter.d.ts.map +1 -0
  32. package/dist/cli/repl/output-formatter.js +232 -0
  33. package/dist/cli/repl/output-formatter.js.map +1 -0
  34. package/dist/cli/repl/prompt-renderer.d.ts +66 -0
  35. package/dist/cli/repl/prompt-renderer.d.ts.map +1 -0
  36. package/dist/cli/repl/prompt-renderer.js +140 -0
  37. package/dist/cli/repl/prompt-renderer.js.map +1 -0
  38. package/dist/cli/repl/repl-engine.d.ts +108 -0
  39. package/dist/cli/repl/repl-engine.d.ts.map +1 -0
  40. package/dist/cli/repl/repl-engine.js +430 -0
  41. package/dist/cli/repl/repl-engine.js.map +1 -0
  42. package/dist/cli/repl/session-state.d.ts +72 -0
  43. package/dist/cli/repl/session-state.d.ts.map +1 -0
  44. package/dist/cli/repl/session-state.js +113 -0
  45. package/dist/cli/repl/session-state.js.map +1 -0
  46. package/dist/cli/repl/types.d.ts +140 -0
  47. package/dist/cli/repl/types.d.ts.map +1 -0
  48. package/dist/cli/repl/types.js +31 -0
  49. package/dist/cli/repl/types.js.map +1 -0
  50. package/dist/index.d.ts +2 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +4 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/learning/index.d.ts +1 -0
  55. package/dist/learning/index.d.ts.map +1 -1
  56. package/dist/learning/index.js +10 -0
  57. package/dist/learning/index.js.map +1 -1
  58. package/dist/learning/inference/__tests__/datalog-engine.test.d.ts +7 -0
  59. package/dist/learning/inference/__tests__/datalog-engine.test.d.ts.map +1 -0
  60. package/dist/learning/inference/__tests__/datalog-engine.test.js +238 -0
  61. package/dist/learning/inference/__tests__/datalog-engine.test.js.map +1 -0
  62. package/dist/learning/inference/__tests__/inference-explainer.test.d.ts +7 -0
  63. package/dist/learning/inference/__tests__/inference-explainer.test.d.ts.map +1 -0
  64. package/dist/learning/inference/__tests__/inference-explainer.test.js +260 -0
  65. package/dist/learning/inference/__tests__/inference-explainer.test.js.map +1 -0
  66. package/dist/learning/inference/__tests__/owl2rl-reasoner.test.d.ts +7 -0
  67. package/dist/learning/inference/__tests__/owl2rl-reasoner.test.d.ts.map +1 -0
  68. package/dist/learning/inference/__tests__/owl2rl-reasoner.test.js +218 -0
  69. package/dist/learning/inference/__tests__/owl2rl-reasoner.test.js.map +1 -0
  70. package/dist/learning/inference/__tests__/progress-reporter.test.d.ts +7 -0
  71. package/dist/learning/inference/__tests__/progress-reporter.test.d.ts.map +1 -0
  72. package/dist/learning/inference/__tests__/progress-reporter.test.js +265 -0
  73. package/dist/learning/inference/__tests__/progress-reporter.test.js.map +1 -0
  74. package/dist/learning/inference/datalog-engine.d.ts +137 -0
  75. package/dist/learning/inference/datalog-engine.d.ts.map +1 -0
  76. package/dist/learning/inference/datalog-engine.js +465 -0
  77. package/dist/learning/inference/datalog-engine.js.map +1 -0
  78. package/dist/learning/inference/index.d.ts +15 -0
  79. package/dist/learning/inference/index.d.ts.map +1 -0
  80. package/dist/learning/inference/index.js +17 -0
  81. package/dist/learning/inference/index.js.map +1 -0
  82. package/dist/learning/inference/inference-explainer.d.ts +89 -0
  83. package/dist/learning/inference/inference-explainer.d.ts.map +1 -0
  84. package/dist/learning/inference/inference-explainer.js +365 -0
  85. package/dist/learning/inference/inference-explainer.js.map +1 -0
  86. package/dist/learning/inference/owl2rl-reasoner.d.ts +134 -0
  87. package/dist/learning/inference/owl2rl-reasoner.d.ts.map +1 -0
  88. package/dist/learning/inference/owl2rl-reasoner.js +631 -0
  89. package/dist/learning/inference/owl2rl-reasoner.js.map +1 -0
  90. package/dist/learning/inference/progress-reporter.d.ts +130 -0
  91. package/dist/learning/inference/progress-reporter.d.ts.map +1 -0
  92. package/dist/learning/inference/progress-reporter.js +317 -0
  93. package/dist/learning/inference/progress-reporter.js.map +1 -0
  94. package/dist/learning/inference/types.d.ts +265 -0
  95. package/dist/learning/inference/types.d.ts.map +1 -0
  96. package/dist/learning/inference/types.js +18 -0
  97. package/dist/learning/inference/types.js.map +1 -0
  98. package/dist/perf/__tests__/perf.test.d.ts +8 -0
  99. package/dist/perf/__tests__/perf.test.d.ts.map +1 -0
  100. package/dist/perf/__tests__/perf.test.js +495 -0
  101. package/dist/perf/__tests__/perf.test.js.map +1 -0
  102. package/dist/perf/benchmark.d.ts +72 -0
  103. package/dist/perf/benchmark.d.ts.map +1 -0
  104. package/dist/perf/benchmark.js +193 -0
  105. package/dist/perf/benchmark.js.map +1 -0
  106. package/dist/perf/cache.d.ts +141 -0
  107. package/dist/perf/cache.d.ts.map +1 -0
  108. package/dist/perf/cache.js +311 -0
  109. package/dist/perf/cache.js.map +1 -0
  110. package/dist/perf/index.d.ts +23 -0
  111. package/dist/perf/index.d.ts.map +1 -0
  112. package/dist/perf/index.js +26 -0
  113. package/dist/perf/index.js.map +1 -0
  114. package/dist/perf/lazy-loader.d.ts +95 -0
  115. package/dist/perf/lazy-loader.d.ts.map +1 -0
  116. package/dist/perf/lazy-loader.js +195 -0
  117. package/dist/perf/lazy-loader.js.map +1 -0
  118. package/dist/perf/memory.d.ts +113 -0
  119. package/dist/perf/memory.d.ts.map +1 -0
  120. package/dist/perf/memory.js +260 -0
  121. package/dist/perf/memory.js.map +1 -0
  122. package/dist/perf/parallel.d.ts +127 -0
  123. package/dist/perf/parallel.d.ts.map +1 -0
  124. package/dist/perf/parallel.js +241 -0
  125. package/dist/perf/parallel.js.map +1 -0
  126. package/dist/perf/types.d.ts +118 -0
  127. package/dist/perf/types.d.ts.map +1 -0
  128. package/dist/perf/types.js +20 -0
  129. package/dist/perf/types.js.map +1 -0
  130. package/dist/testing/__tests__/testing.test.d.ts +9 -0
  131. package/dist/testing/__tests__/testing.test.d.ts.map +1 -0
  132. package/dist/testing/__tests__/testing.test.js +240 -0
  133. package/dist/testing/__tests__/testing.test.js.map +1 -0
  134. package/dist/testing/assertions.d.ts +71 -0
  135. package/dist/testing/assertions.d.ts.map +1 -0
  136. package/dist/testing/assertions.js +197 -0
  137. package/dist/testing/assertions.js.map +1 -0
  138. package/dist/testing/cli-runner.d.ts +31 -0
  139. package/dist/testing/cli-runner.d.ts.map +1 -0
  140. package/dist/testing/cli-runner.js +170 -0
  141. package/dist/testing/cli-runner.js.map +1 -0
  142. package/dist/testing/index.d.ts +15 -0
  143. package/dist/testing/index.d.ts.map +1 -0
  144. package/dist/testing/index.js +18 -0
  145. package/dist/testing/index.js.map +1 -0
  146. package/dist/testing/test-context.d.ts +98 -0
  147. package/dist/testing/test-context.d.ts.map +1 -0
  148. package/dist/testing/test-context.js +162 -0
  149. package/dist/testing/test-context.js.map +1 -0
  150. package/dist/testing/test-fixtures.d.ts +38 -0
  151. package/dist/testing/test-fixtures.d.ts.map +1 -0
  152. package/dist/testing/test-fixtures.js +336 -0
  153. package/dist/testing/test-fixtures.js.map +1 -0
  154. package/dist/testing/test-project.d.ts +48 -0
  155. package/dist/testing/test-project.d.ts.map +1 -0
  156. package/dist/testing/test-project.js +236 -0
  157. package/dist/testing/test-project.js.map +1 -0
  158. package/dist/testing/types.d.ts +168 -0
  159. package/dist/testing/types.d.ts.map +1 -0
  160. package/dist/testing/types.js +9 -0
  161. package/dist/testing/types.js.map +1 -0
  162. package/package.json +1 -1
package/AGENTS.md CHANGED
@@ -8,13 +8,13 @@
8
8
 
9
9
  | 項目 | 詳細 |
10
10
  |------|------|
11
- | **バージョン** | 1.4.3 |
11
+ | **バージョン** | 1.5.2 |
12
12
  | **言語** | TypeScript |
13
13
  | **ランタイム** | Node.js >= 20.0.0 |
14
14
  | **パッケージマネージャ** | npm >= 10.0.0 |
15
15
  | **ビルドシステム** | モノレポ(npm workspaces) |
16
16
  | **テストフレームワーク** | Vitest |
17
- | **テスト数** | 853 (全合格) |
17
+ | **テスト数** | 1155 (全合格) |
18
18
  | **コンポーネント数** | 249 (62ドメイン対応) |
19
19
  | **Agent Skills** | 12 (Claude Code対応) |
20
20
 
@@ -121,6 +121,11 @@ npx musubix ontology validate -f <file> # 知識グラフ整合性検証
121
121
  npx musubix ontology check-circular -f <file> # 循環依存チェック
122
122
  npx musubix ontology stats -f <file> # 統計表示
123
123
 
124
+ # Interactive REPL (v1.5.0 NEW!)
125
+ npx musubix repl # 対話的シェルを起動
126
+ npx musubix repl --history <file> # カスタム履歴ファイル
127
+ npx musubix repl --no-color # 色なしモード
128
+
124
129
  # ヘルプ
125
130
  npx musubix --help
126
131
  npx musubix help <command>
@@ -482,6 +487,6 @@ npx musubix learn best-practices --format markdown
482
487
  ---
483
488
 
484
489
  **Agent**: GitHub Copilot / Claude
485
- **Last Updated**: 2025-01-05
486
- **Version**: 1.4.1
490
+ **Last Updated**: 2026-01-06
491
+ **Version**: 1.5.0
487
492
  **Repository**: https://github.com/nahisaho/MUSUBIX
@@ -26,4 +26,6 @@ export { registerTraceCommand } from './trace.js';
26
26
  export { registerExplainCommand } from './explain.js';
27
27
  export { registerLearnCommand } from './learn.js';
28
28
  export { registerOntologyCommand } from './ontology.js';
29
+ export { registerReplCommand } from './repl.js';
30
+ export { registerPerfCommand } from './perf.js';
29
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmBvD;AAGD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyBvD;AAGD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
@@ -19,6 +19,8 @@ import { registerTraceCommand } from './trace.js';
19
19
  import { registerExplainCommand } from './explain.js';
20
20
  import { registerLearnCommand } from './learn.js';
21
21
  import { registerOntologyCommand } from './ontology.js';
22
+ import { registerReplCommand } from './repl.js';
23
+ import { registerPerfCommand } from './perf.js';
22
24
  /**
23
25
  * Register all CLI commands
24
26
  *
@@ -40,6 +42,10 @@ export function registerCommands(program) {
40
42
  registerLearnCommand(program);
41
43
  // Ontology commands (REQ-INT-003)
42
44
  registerOntologyCommand(program);
45
+ // Interactive REPL (REQ-CLI-v1.5.0)
46
+ registerReplCommand(program);
47
+ // Performance monitoring (REQ-PERF-v1.5.1)
48
+ registerPerfCommand(program);
43
49
  }
44
50
  // Core command exports
45
51
  export { registerInitCommand } from './init.js';
@@ -56,4 +62,8 @@ export { registerExplainCommand } from './explain.js';
56
62
  export { registerLearnCommand } from './learn.js';
57
63
  // Ontology command export
58
64
  export { registerOntologyCommand } from './ontology.js';
65
+ // Interactive REPL command export
66
+ export { registerReplCommand } from './repl.js';
67
+ // Performance monitoring command export
68
+ export { registerPerfCommand } from './perf.js';
59
69
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,gBAAgB;IAChB,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,0CAA0C;IAC1C,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACrC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhC,6CAA6C;IAC7C,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE9B,kCAAkC;IAClC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,uBAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,+BAA+B;AAC/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,+BAA+B;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,0BAA0B;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,gBAAgB;IAChB,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,0CAA0C;IAC1C,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACrC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhC,6CAA6C;IAC7C,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE9B,kCAAkC;IAClC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjC,oCAAoC;IACpC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE7B,2CAA2C;IAC3C,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,uBAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,+BAA+B;AAC/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,+BAA+B;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,0BAA0B;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,kCAAkC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,wCAAwC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Performance CLI Command
3
+ *
4
+ * @module cli/commands/perf
5
+ * @traces REQ-PERF-005, DES-PERF-005
6
+ */
7
+ import type { Command } from 'commander';
8
+ /**
9
+ * Register the perf command
10
+ */
11
+ export declare function registerPerfCommand(program: Command): void;
12
+ //# sourceMappingURL=perf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/perf.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwO1D"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Performance CLI Command
3
+ *
4
+ * @module cli/commands/perf
5
+ * @traces REQ-PERF-005, DES-PERF-005
6
+ */
7
+ import { ExitCode, getGlobalOptions, outputResult } from '../base.js';
8
+ import { runStandardBenchmarks, formatBenchmarkSuiteResult, getMemoryMonitor, formatMemoryReport, getGlobalCache, measure, } from '../../perf/index.js';
9
+ import { VERSION } from '../../version.js';
10
+ /**
11
+ * Register the perf command
12
+ */
13
+ export function registerPerfCommand(program) {
14
+ const perf = program
15
+ .command('perf')
16
+ .description('Performance benchmarks and monitoring');
17
+ // Benchmark subcommand
18
+ perf
19
+ .command('benchmark')
20
+ .description('Run all performance benchmarks')
21
+ .option('--json', 'Output in JSON format')
22
+ .action(async (options) => {
23
+ const globalOpts = getGlobalOptions(program);
24
+ try {
25
+ if (!globalOpts.quiet) {
26
+ console.log('Running MUSUBIX benchmarks...\n');
27
+ }
28
+ const suite = await runStandardBenchmarks();
29
+ if (options.json || globalOpts.json) {
30
+ outputResult(suite, globalOpts);
31
+ }
32
+ else {
33
+ console.log(formatBenchmarkSuiteResult(suite));
34
+ }
35
+ const allPassed = suite.passRate === 1;
36
+ process.exit(allPassed ? ExitCode.SUCCESS : ExitCode.VALIDATION_ERROR);
37
+ }
38
+ catch (error) {
39
+ outputResult({
40
+ success: false,
41
+ error: error instanceof Error ? error.message : String(error),
42
+ }, globalOpts);
43
+ process.exit(ExitCode.GENERAL_ERROR);
44
+ }
45
+ });
46
+ // Startup time subcommand
47
+ perf
48
+ .command('startup')
49
+ .description('Measure CLI startup time')
50
+ .option('-n, --iterations <n>', 'Number of iterations', '5')
51
+ .action(async (options) => {
52
+ const globalOpts = getGlobalOptions(program);
53
+ const iterations = parseInt(options.iterations, 10);
54
+ try {
55
+ if (!globalOpts.quiet) {
56
+ console.log(`Measuring startup time (${iterations} iterations)...\n`);
57
+ }
58
+ const times = [];
59
+ for (let i = 0; i < iterations; i++) {
60
+ const { duration } = await measure(async () => {
61
+ // Simulate startup by dynamically importing core modules
62
+ await import('../../index.js');
63
+ });
64
+ times.push(duration);
65
+ }
66
+ const avg = times.reduce((a, b) => a + b, 0) / times.length;
67
+ const min = Math.min(...times);
68
+ const max = Math.max(...times);
69
+ const result = {
70
+ iterations,
71
+ average: `${avg.toFixed(2)}ms`,
72
+ min: `${min.toFixed(2)}ms`,
73
+ max: `${max.toFixed(2)}ms`,
74
+ target: '400ms',
75
+ passed: avg < 400,
76
+ };
77
+ if (globalOpts.json) {
78
+ outputResult(result, globalOpts);
79
+ }
80
+ else {
81
+ console.log('Startup Time Results:');
82
+ console.log(` Iterations: ${iterations}`);
83
+ console.log(` Average: ${result.average}`);
84
+ console.log(` Min: ${result.min}`);
85
+ console.log(` Max: ${result.max}`);
86
+ console.log(` Target: ${result.target}`);
87
+ console.log(` Status: ${result.passed ? '✓ PASS' : '✗ FAIL'}`);
88
+ }
89
+ process.exit(result.passed ? ExitCode.SUCCESS : ExitCode.VALIDATION_ERROR);
90
+ }
91
+ catch (error) {
92
+ outputResult({
93
+ success: false,
94
+ error: error instanceof Error ? error.message : String(error),
95
+ }, globalOpts);
96
+ process.exit(ExitCode.GENERAL_ERROR);
97
+ }
98
+ });
99
+ // Memory subcommand
100
+ perf
101
+ .command('memory')
102
+ .description('Show memory usage')
103
+ .option('--watch', 'Continuously monitor memory')
104
+ .option('-i, --interval <ms>', 'Watch interval in milliseconds', '1000')
105
+ .action(async (options) => {
106
+ const globalOpts = getGlobalOptions(program);
107
+ const monitor = getMemoryMonitor();
108
+ try {
109
+ if (options.watch) {
110
+ console.log('Monitoring memory (Ctrl+C to stop)...\n');
111
+ const intervalMs = parseInt(options.interval, 10);
112
+ const stop = monitor.startSampling(intervalMs);
113
+ const displayInterval = setInterval(() => {
114
+ console.clear();
115
+ console.log(`MUSUBIX Memory Monitor - v${VERSION}\n`);
116
+ console.log(formatMemoryReport(monitor.report()));
117
+ }, intervalMs);
118
+ process.on('SIGINT', () => {
119
+ stop();
120
+ clearInterval(displayInterval);
121
+ console.log('\n\nStopped monitoring.');
122
+ process.exit(ExitCode.SUCCESS);
123
+ });
124
+ }
125
+ else {
126
+ const report = monitor.report();
127
+ if (globalOpts.json) {
128
+ outputResult(report, globalOpts);
129
+ }
130
+ else {
131
+ console.log(formatMemoryReport(report));
132
+ }
133
+ process.exit(ExitCode.SUCCESS);
134
+ }
135
+ }
136
+ catch (error) {
137
+ outputResult({
138
+ success: false,
139
+ error: error instanceof Error ? error.message : String(error),
140
+ }, globalOpts);
141
+ process.exit(ExitCode.GENERAL_ERROR);
142
+ }
143
+ });
144
+ // Cache stats subcommand
145
+ perf
146
+ .command('cache-stats')
147
+ .description('Show cache statistics')
148
+ .action(async () => {
149
+ const globalOpts = getGlobalOptions(program);
150
+ try {
151
+ const cache = getGlobalCache();
152
+ const stats = {
153
+ patterns: cache.patterns.stats(),
154
+ ontology: cache.ontology.stats(),
155
+ validation: cache.validation.stats(),
156
+ ast: cache.ast.stats(),
157
+ };
158
+ if (globalOpts.json) {
159
+ outputResult(stats, globalOpts);
160
+ }
161
+ else {
162
+ console.log('Cache Statistics:\n');
163
+ for (const [name, s] of Object.entries(stats)) {
164
+ console.log(`${name}:`);
165
+ console.log(` Size: ${s.size}/${s.maxSize}`);
166
+ console.log(` Hits: ${s.hits}`);
167
+ console.log(` Misses: ${s.misses}`);
168
+ console.log(` Hit Rate: ${(s.hitRate * 100).toFixed(1)}%`);
169
+ console.log(` Evictions: ${s.evictions}`);
170
+ console.log('');
171
+ }
172
+ }
173
+ process.exit(ExitCode.SUCCESS);
174
+ }
175
+ catch (error) {
176
+ outputResult({
177
+ success: false,
178
+ error: error instanceof Error ? error.message : String(error),
179
+ }, globalOpts);
180
+ process.exit(ExitCode.GENERAL_ERROR);
181
+ }
182
+ });
183
+ // Cache clear subcommand
184
+ perf
185
+ .command('cache-clear')
186
+ .description('Clear all caches')
187
+ .action(async () => {
188
+ const globalOpts = getGlobalOptions(program);
189
+ try {
190
+ const cache = getGlobalCache();
191
+ cache.patterns.clear();
192
+ cache.ontology.clear();
193
+ cache.validation.clear();
194
+ cache.ast.clear();
195
+ if (!globalOpts.quiet) {
196
+ console.log('All caches cleared.');
197
+ }
198
+ outputResult({ success: true, message: 'Caches cleared' }, globalOpts);
199
+ process.exit(ExitCode.SUCCESS);
200
+ }
201
+ catch (error) {
202
+ outputResult({
203
+ success: false,
204
+ error: error instanceof Error ? error.message : String(error),
205
+ }, globalOpts);
206
+ process.exit(ExitCode.GENERAL_ERROR);
207
+ }
208
+ });
209
+ }
210
+ //# sourceMappingURL=perf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf.js","sourceRoot":"","sources":["../../../src/cli/commands/perf.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,OAAO,GACR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uCAAuC,CAAC,CAAC;IAExD,uBAAuB;IACvB,IAAI;SACD,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QAC5C,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAE5C,IAAI,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CACV;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,EACD,UAAU,CACX,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,0BAA0B;IAC1B,IAAI;SACD,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,GAAG,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,OAA+B,EAAE,EAAE;QAChD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,mBAAmB,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,KAAK,GAAa,EAAE,CAAC;YAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;oBAC5C,yDAAyD;oBACzD,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;YAED,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YAE/B,MAAM,MAAM,GAAG;gBACb,UAAU;gBACV,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBAC9B,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBAC1B,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBAC1B,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,GAAG,GAAG,GAAG;aAClB,CAAC;YAEF,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpB,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CACV;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,EACD,UAAU,CACX,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,oBAAoB;IACpB,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,SAAS,EAAE,6BAA6B,CAAC;SAChD,MAAM,CAAC,qBAAqB,EAAE,gCAAgC,EAAE,MAAM,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,OAA8C,EAAE,EAAE;QAC/D,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QAEnC,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;gBAEvD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAClD,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAE/C,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;oBACvC,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,6BAA6B,OAAO,IAAI,CAAC,CAAC;oBACtD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACpD,CAAC,EAAE,UAAU,CAAC,CAAC;gBAEf,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACxB,IAAI,EAAE,CAAC;oBACP,aAAa,CAAC,eAAe,CAAC,CAAC;oBAC/B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBAEhC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBACpB,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CACV;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,EACD,UAAU,CACX,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,yBAAyB;IACzB,IAAI;SACD,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;YAE/B,MAAM,KAAK,GAAG;gBACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAChC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;gBACpC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE;aACvB,CAAC;YAEF,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpB,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBAEnC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC7D,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CACV;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,EACD,UAAU,CACX,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,yBAAyB;IACzB,IAAI;SACD,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;YAE/B,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACvB,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACvB,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YAElB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACrC,CAAC;YAED,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,UAAU,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CACV;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,EACD,UAAU,CACX,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * REPL Command
3
+ *
4
+ * Starts the interactive REPL shell for MUSUBIX
5
+ *
6
+ * @packageDocumentation
7
+ * @module cli/commands/repl
8
+ *
9
+ * @see REQ-CLI-v1.5.0 - Interactive CLI Mode
10
+ * @see DES-CLI-v1.5.0 - REPL設計
11
+ */
12
+ import type { Command } from 'commander';
13
+ /**
14
+ * REPL command options
15
+ */
16
+ export interface ReplOptions {
17
+ history?: string;
18
+ noColor: boolean;
19
+ prompt?: string;
20
+ }
21
+ /**
22
+ * Register the REPL command
23
+ *
24
+ * @param program - Commander program instance
25
+ *
26
+ * @example
27
+ * ```bash
28
+ * # Start REPL with default settings
29
+ * npx musubix repl
30
+ *
31
+ * # Start REPL with custom history file
32
+ * npx musubix repl --history ~/.musubix_history
33
+ *
34
+ * # Start REPL without colors
35
+ * npx musubix repl --no-color
36
+ * ```
37
+ */
38
+ export declare function registerReplCommand(program: Command): void;
39
+ //# sourceMappingURL=repl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/repl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmD1D"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * REPL Command
3
+ *
4
+ * Starts the interactive REPL shell for MUSUBIX
5
+ *
6
+ * @packageDocumentation
7
+ * @module cli/commands/repl
8
+ *
9
+ * @see REQ-CLI-v1.5.0 - Interactive CLI Mode
10
+ * @see DES-CLI-v1.5.0 - REPL設計
11
+ */
12
+ import { ExitCode, getGlobalOptions, outputResult } from '../base.js';
13
+ import { ReplEngine } from '../repl/index.js';
14
+ import { VERSION } from '../../version.js';
15
+ /**
16
+ * Register the REPL command
17
+ *
18
+ * @param program - Commander program instance
19
+ *
20
+ * @example
21
+ * ```bash
22
+ * # Start REPL with default settings
23
+ * npx musubix repl
24
+ *
25
+ * # Start REPL with custom history file
26
+ * npx musubix repl --history ~/.musubix_history
27
+ *
28
+ * # Start REPL without colors
29
+ * npx musubix repl --no-color
30
+ * ```
31
+ */
32
+ export function registerReplCommand(program) {
33
+ program
34
+ .command('repl')
35
+ .description('Start interactive REPL shell')
36
+ .option('--history <file>', 'History file path', '.musubix_history')
37
+ .option('--no-color', 'Disable colored output')
38
+ .option('--prompt <string>', 'Custom prompt string')
39
+ .action(async (options) => {
40
+ const globalOpts = getGlobalOptions(program);
41
+ try {
42
+ // Display welcome banner
43
+ if (!globalOpts.quiet) {
44
+ displayWelcomeBanner(options.noColor);
45
+ }
46
+ // Create REPL configuration
47
+ const config = {
48
+ history: {
49
+ maxSize: 1000,
50
+ filePath: options.history ?? '.musubix_history',
51
+ },
52
+ prompt: {
53
+ showProject: true,
54
+ showPhase: false,
55
+ useColor: !options.noColor,
56
+ defaultPrompt: options.prompt ?? 'musubix> ',
57
+ },
58
+ };
59
+ // Create and start REPL engine
60
+ const repl = new ReplEngine(config);
61
+ // Handle graceful shutdown
62
+ process.on('SIGINT', () => {
63
+ console.log('\n\nGoodbye!');
64
+ repl.stop();
65
+ });
66
+ // Start the REPL
67
+ await repl.start();
68
+ process.exit(ExitCode.SUCCESS);
69
+ }
70
+ catch (error) {
71
+ outputResult({
72
+ success: false,
73
+ error: error instanceof Error ? error.message : String(error),
74
+ }, globalOpts);
75
+ process.exit(ExitCode.GENERAL_ERROR);
76
+ }
77
+ });
78
+ }
79
+ /**
80
+ * Display welcome banner
81
+ */
82
+ function displayWelcomeBanner(noColor) {
83
+ const cyan = noColor ? '' : '\x1b[36m';
84
+ const yellow = noColor ? '' : '\x1b[33m';
85
+ const green = noColor ? '' : '\x1b[32m';
86
+ const reset = noColor ? '' : '\x1b[0m';
87
+ console.log(`
88
+ ${cyan}╔══════════════════════════════════════════════════════════╗
89
+ ║ ║
90
+ ║ ${yellow}███╗ ███╗██╗ ██╗███████╗██╗ ██╗██████╗ ██╗${cyan} ║
91
+ ║ ${yellow}████╗ ████║██║ ██║██╔════╝██║ ██║██╔══██╗██║${cyan} ║
92
+ ║ ${yellow}██╔████╔██║██║ ██║███████╗██║ ██║██████╔╝██║${cyan} ║
93
+ ║ ${yellow}██║╚██╔╝██║██║ ██║╚════██║██║ ██║██╔══██╗██║${cyan} ║
94
+ ║ ${yellow}██║ ╚═╝ ██║╚██████╔╝███████║╚██████╔╝██████╔╝██║${cyan} ║
95
+ ║ ${yellow}╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═╝${cyan} ║
96
+ ║ ║
97
+ ║ ${green}Neuro-Symbolic AI Integration System v${VERSION}${cyan} ║
98
+ ║ ║
99
+ ╚══════════════════════════════════════════════════════════╝${reset}
100
+
101
+ Type ${green}help${reset} for available commands, ${green}exit${reset} to quit.
102
+ Press ${yellow}TAB${reset} for auto-completion, ${yellow}↑/↓${reset} for history navigation.
103
+ `);
104
+ }
105
+ //# sourceMappingURL=repl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repl.js","sourceRoot":"","sources":["../../../src/cli/commands/repl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MUSUBIX v1.5.0 Interactive CLI Mode - Test Skeleton
3
+ *
4
+ * @module cli/repl
5
+ * @traces REQ-CLI-v1.5.0
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=repl.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repl.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/repl/__tests__/repl.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}