magi-ai 0.1.0
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/LICENSE +21 -0
- package/README.ja.md +377 -0
- package/README.md +377 -0
- package/dist/bin/magi-benchmark.d.ts +14 -0
- package/dist/bin/magi-benchmark.js +93 -0
- package/dist/bin/magi-mcp.d.ts +8 -0
- package/dist/bin/magi-mcp.js +28 -0
- package/dist/bin/magi.d.ts +2 -0
- package/dist/bin/magi.js +634 -0
- package/dist/src/adapters/base.d.ts +34 -0
- package/dist/src/adapters/base.js +149 -0
- package/dist/src/adapters/claude.d.ts +29 -0
- package/dist/src/adapters/claude.js +65 -0
- package/dist/src/adapters/codex.d.ts +21 -0
- package/dist/src/adapters/codex.js +41 -0
- package/dist/src/adapters/gemini.d.ts +18 -0
- package/dist/src/adapters/gemini.js +31 -0
- package/dist/src/adapters/registry.d.ts +19 -0
- package/dist/src/adapters/registry.js +59 -0
- package/dist/src/audit/hash-chain.d.ts +21 -0
- package/dist/src/audit/hash-chain.js +70 -0
- package/dist/src/audit/types.d.ts +25 -0
- package/dist/src/audit/types.js +1 -0
- package/dist/src/audit/writer.d.ts +18 -0
- package/dist/src/audit/writer.js +100 -0
- package/dist/src/benchmark/golden-tasks.d.ts +9 -0
- package/dist/src/benchmark/golden-tasks.js +476 -0
- package/dist/src/benchmark/reporter.d.ts +5 -0
- package/dist/src/benchmark/reporter.js +107 -0
- package/dist/src/benchmark/runner.d.ts +30 -0
- package/dist/src/benchmark/runner.js +224 -0
- package/dist/src/benchmark/scorer.d.ts +12 -0
- package/dist/src/benchmark/scorer.js +124 -0
- package/dist/src/benchmark/types.d.ts +54 -0
- package/dist/src/benchmark/types.js +1 -0
- package/dist/src/cache/deliberation-cache.d.ts +49 -0
- package/dist/src/cache/deliberation-cache.js +127 -0
- package/dist/src/cli/commands/config-cmd.d.ts +11 -0
- package/dist/src/cli/commands/config-cmd.js +190 -0
- package/dist/src/cli/commands/demo.d.ts +12 -0
- package/dist/src/cli/commands/demo.js +66 -0
- package/dist/src/cli/commands/setup.d.ts +7 -0
- package/dist/src/cli/commands/setup.js +182 -0
- package/dist/src/cli/i18n.d.ts +89 -0
- package/dist/src/cli/i18n.js +176 -0
- package/dist/src/cli/interactive-select.d.ts +27 -0
- package/dist/src/cli/interactive-select.js +130 -0
- package/dist/src/cli/tui-setup.d.ts +24 -0
- package/dist/src/cli/tui-setup.js +42 -0
- package/dist/src/config/cli-detector.d.ts +37 -0
- package/dist/src/config/cli-detector.js +99 -0
- package/dist/src/config/user-config.d.ts +81 -0
- package/dist/src/config/user-config.js +134 -0
- package/dist/src/context/auto-collector.d.ts +43 -0
- package/dist/src/context/auto-collector.js +337 -0
- package/dist/src/context/manager.d.ts +35 -0
- package/dist/src/context/manager.js +162 -0
- package/dist/src/context/serializer.d.ts +20 -0
- package/dist/src/context/serializer.js +52 -0
- package/dist/src/demo/recorded-deliberation.d.ts +13 -0
- package/dist/src/demo/recorded-deliberation.js +277 -0
- package/dist/src/engine/angel-detector.d.ts +83 -0
- package/dist/src/engine/angel-detector.js +334 -0
- package/dist/src/engine/at-field.d.ts +40 -0
- package/dist/src/engine/at-field.js +195 -0
- package/dist/src/engine/berserk-orchestrator.d.ts +66 -0
- package/dist/src/engine/berserk-orchestrator.js +378 -0
- package/dist/src/engine/change-metrics.d.ts +56 -0
- package/dist/src/engine/change-metrics.js +214 -0
- package/dist/src/engine/consensus.d.ts +20 -0
- package/dist/src/engine/consensus.js +146 -0
- package/dist/src/engine/dead-sea-scrolls.d.ts +132 -0
- package/dist/src/engine/dead-sea-scrolls.js +610 -0
- package/dist/src/engine/drift-detector.d.ts +39 -0
- package/dist/src/engine/drift-detector.js +225 -0
- package/dist/src/engine/dummy-plug.d.ts +44 -0
- package/dist/src/engine/dummy-plug.js +190 -0
- package/dist/src/engine/engram-manager.d.ts +55 -0
- package/dist/src/engine/engram-manager.js +306 -0
- package/dist/src/engine/events.d.ts +130 -0
- package/dist/src/engine/events.js +44 -0
- package/dist/src/engine/gospel.d.ts +30 -0
- package/dist/src/engine/gospel.js +129 -0
- package/dist/src/engine/hallucination-detector.d.ts +33 -0
- package/dist/src/engine/hallucination-detector.js +215 -0
- package/dist/src/engine/human-resolver.d.ts +19 -0
- package/dist/src/engine/human-resolver.js +89 -0
- package/dist/src/engine/instrumentality.d.ts +64 -0
- package/dist/src/engine/instrumentality.js +297 -0
- package/dist/src/engine/iruel-battle.d.ts +79 -0
- package/dist/src/engine/iruel-battle.js +319 -0
- package/dist/src/engine/kernel/deliberation-kernel.d.ts +12 -0
- package/dist/src/engine/kernel/deliberation-kernel.js +303 -0
- package/dist/src/engine/kernel/index.d.ts +8 -0
- package/dist/src/engine/kernel/index.js +7 -0
- package/dist/src/engine/kernel/phase-runner.d.ts +10 -0
- package/dist/src/engine/kernel/phase-runner.js +155 -0
- package/dist/src/engine/kernel/post-processor.d.ts +17 -0
- package/dist/src/engine/kernel/post-processor.js +131 -0
- package/dist/src/engine/kernel/types.d.ts +107 -0
- package/dist/src/engine/kernel/types.js +1 -0
- package/dist/src/engine/kernel/unit-executor.d.ts +6 -0
- package/dist/src/engine/kernel/unit-executor.js +132 -0
- package/dist/src/engine/lcl-manager.d.ts +44 -0
- package/dist/src/engine/lcl-manager.js +143 -0
- package/dist/src/engine/middleware/cache.d.ts +7 -0
- package/dist/src/engine/middleware/cache.js +29 -0
- package/dist/src/engine/middleware/chain.d.ts +18 -0
- package/dist/src/engine/middleware/chain.js +45 -0
- package/dist/src/engine/middleware/firewall.d.ts +8 -0
- package/dist/src/engine/middleware/firewall.js +24 -0
- package/dist/src/engine/middleware/index.d.ts +4 -0
- package/dist/src/engine/middleware/index.js +3 -0
- package/dist/src/engine/middleware/types.d.ts +43 -0
- package/dist/src/engine/middleware/types.js +1 -0
- package/dist/src/engine/nebuchadnezzar-key.d.ts +61 -0
- package/dist/src/engine/nebuchadnezzar-key.js +203 -0
- package/dist/src/engine/neon-genesis.d.ts +52 -0
- package/dist/src/engine/neon-genesis.js +203 -0
- package/dist/src/engine/objective-judge.d.ts +53 -0
- package/dist/src/engine/objective-judge.js +214 -0
- package/dist/src/engine/offline-mode.d.ts +18 -0
- package/dist/src/engine/offline-mode.js +46 -0
- package/dist/src/engine/orchestrator.d.ts +79 -0
- package/dist/src/engine/orchestrator.js +58 -0
- package/dist/src/engine/secret-cipher.d.ts +26 -0
- package/dist/src/engine/secret-cipher.js +114 -0
- package/dist/src/engine/seele-council.d.ts +90 -0
- package/dist/src/engine/seele-council.js +482 -0
- package/dist/src/engine/self-destruct.d.ts +61 -0
- package/dist/src/engine/self-destruct.js +231 -0
- package/dist/src/engine/self-evolution.d.ts +64 -0
- package/dist/src/engine/self-evolution.js +368 -0
- package/dist/src/engine/sync-rate.d.ts +45 -0
- package/dist/src/engine/sync-rate.js +151 -0
- package/dist/src/engine/type666-firewall.d.ts +76 -0
- package/dist/src/engine/type666-firewall.js +343 -0
- package/dist/src/engine/umbilical-cable.d.ts +41 -0
- package/dist/src/engine/umbilical-cable.js +192 -0
- package/dist/src/index.d.ts +106 -0
- package/dist/src/index.js +426 -0
- package/dist/src/mcp/server.d.ts +38 -0
- package/dist/src/mcp/server.js +196 -0
- package/dist/src/metrics/token-tracker.d.ts +38 -0
- package/dist/src/metrics/token-tracker.js +112 -0
- package/dist/src/parsers/json-extractor.d.ts +9 -0
- package/dist/src/parsers/json-extractor.js +239 -0
- package/dist/src/parsers/opinion-schema.d.ts +81 -0
- package/dist/src/parsers/opinion-schema.js +147 -0
- package/dist/src/parsers/unstructured-parser.d.ts +20 -0
- package/dist/src/parsers/unstructured-parser.js +122 -0
- package/dist/src/pipelines/architecture.d.ts +10 -0
- package/dist/src/pipelines/architecture.js +9 -0
- package/dist/src/pipelines/bug-analysis.d.ts +9 -0
- package/dist/src/pipelines/bug-analysis.js +8 -0
- package/dist/src/pipelines/code-review.d.ts +10 -0
- package/dist/src/pipelines/code-review.js +30 -0
- package/dist/src/pipelines/custom.d.ts +14 -0
- package/dist/src/pipelines/custom.js +29 -0
- package/dist/src/pipelines/registry.d.ts +9 -0
- package/dist/src/pipelines/registry.js +20 -0
- package/dist/src/prompts/personas.d.ts +6 -0
- package/dist/src/prompts/personas.js +44 -0
- package/dist/src/prompts/schemas.d.ts +4 -0
- package/dist/src/prompts/schemas.js +24 -0
- package/dist/src/prompts/templates.d.ts +6 -0
- package/dist/src/prompts/templates.js +91 -0
- package/dist/src/repl/accessibility.d.ts +23 -0
- package/dist/src/repl/accessibility.js +46 -0
- package/dist/src/repl/banner.d.ts +4 -0
- package/dist/src/repl/banner.js +28 -0
- package/dist/src/repl/boot-animation.d.ts +13 -0
- package/dist/src/repl/boot-animation.js +143 -0
- package/dist/src/repl/completer.d.ts +21 -0
- package/dist/src/repl/completer.js +168 -0
- package/dist/src/repl/context.d.ts +24 -0
- package/dist/src/repl/context.js +42 -0
- package/dist/src/repl/display-utils.d.ts +13 -0
- package/dist/src/repl/display-utils.js +65 -0
- package/dist/src/repl/event-listener.d.ts +18 -0
- package/dist/src/repl/event-listener.js +112 -0
- package/dist/src/repl/export-formatter.d.ts +8 -0
- package/dist/src/repl/export-formatter.js +73 -0
- package/dist/src/repl/ghost-text.d.ts +31 -0
- package/dist/src/repl/ghost-text.js +119 -0
- package/dist/src/repl/handoff-animation.d.ts +15 -0
- package/dist/src/repl/handoff-animation.js +65 -0
- package/dist/src/repl/history.d.ts +16 -0
- package/dist/src/repl/history.js +130 -0
- package/dist/src/repl/job-registry.d.ts +26 -0
- package/dist/src/repl/job-registry.js +80 -0
- package/dist/src/repl/magi-repl.d.ts +72 -0
- package/dist/src/repl/magi-repl.js +1008 -0
- package/dist/src/repl/multiline-input.d.ts +45 -0
- package/dist/src/repl/multiline-input.js +78 -0
- package/dist/src/repl/prompt-builder.d.ts +19 -0
- package/dist/src/repl/prompt-builder.js +36 -0
- package/dist/src/repl/repl-state.d.ts +5 -0
- package/dist/src/repl/repl-state.js +19 -0
- package/dist/src/repl/result-display.d.ts +8 -0
- package/dist/src/repl/result-display.js +195 -0
- package/dist/src/repl/session-stats.d.ts +26 -0
- package/dist/src/repl/session-stats.js +119 -0
- package/dist/src/repl/slash-commands.d.ts +60 -0
- package/dist/src/repl/slash-commands.js +725 -0
- package/dist/src/repl/terminal-sanitize.d.ts +14 -0
- package/dist/src/repl/terminal-sanitize.js +19 -0
- package/dist/src/reporters/console.d.ts +7 -0
- package/dist/src/reporters/console.js +78 -0
- package/dist/src/reporters/json.d.ts +2 -0
- package/dist/src/reporters/json.js +3 -0
- package/dist/src/reporters/markdown.d.ts +2 -0
- package/dist/src/reporters/markdown.js +65 -0
- package/dist/src/reporters/streaming.d.ts +20 -0
- package/dist/src/reporters/streaming.js +178 -0
- package/dist/src/tui/activity-log.d.ts +23 -0
- package/dist/src/tui/activity-log.js +67 -0
- package/dist/src/tui/animations.d.ts +39 -0
- package/dist/src/tui/animations.js +167 -0
- package/dist/src/tui/ansi.d.ts +28 -0
- package/dist/src/tui/ansi.js +51 -0
- package/dist/src/tui/boot-sequence.d.ts +11 -0
- package/dist/src/tui/boot-sequence.js +98 -0
- package/dist/src/tui/colors.d.ts +101 -0
- package/dist/src/tui/colors.js +71 -0
- package/dist/src/tui/header.d.ts +24 -0
- package/dist/src/tui/header.js +122 -0
- package/dist/src/tui/index.d.ts +3 -0
- package/dist/src/tui/index.js +3 -0
- package/dist/src/tui/keypress.d.ts +25 -0
- package/dist/src/tui/keypress.js +95 -0
- package/dist/src/tui/layout.d.ts +74 -0
- package/dist/src/tui/layout.js +171 -0
- package/dist/src/tui/magi-tui.d.ts +101 -0
- package/dist/src/tui/magi-tui.js +754 -0
- package/dist/src/tui/panel.d.ts +45 -0
- package/dist/src/tui/panel.js +292 -0
- package/dist/src/tui/screen-buffer.d.ts +54 -0
- package/dist/src/tui/screen-buffer.js +262 -0
- package/dist/src/tui/status-bar.d.ts +25 -0
- package/dist/src/tui/status-bar.js +124 -0
- package/dist/src/tui/terminal-detect.d.ts +26 -0
- package/dist/src/tui/terminal-detect.js +44 -0
- package/dist/src/tui/tui-helpers.d.ts +12 -0
- package/dist/src/tui/tui-helpers.js +37 -0
- package/dist/src/types/adapter.d.ts +75 -0
- package/dist/src/types/adapter.js +36 -0
- package/dist/src/types/config.d.ts +108 -0
- package/dist/src/types/config.js +85 -0
- package/dist/src/types/consensus.d.ts +55 -0
- package/dist/src/types/consensus.js +17 -0
- package/dist/src/types/core.d.ts +178 -0
- package/dist/src/types/core.js +85 -0
- package/dist/src/types/magi-api.d.ts +62 -0
- package/dist/src/types/magi-api.js +7 -0
- package/dist/src/types/phase-h.d.ts +142 -0
- package/dist/src/types/phase-h.js +7 -0
- package/dist/src/types/phase-i.d.ts +186 -0
- package/dist/src/types/phase-i.js +6 -0
- package/dist/src/types/phase-k.d.ts +259 -0
- package/dist/src/types/phase-k.js +6 -0
- package/dist/src/types/phase-l.d.ts +199 -0
- package/dist/src/types/phase-l.js +6 -0
- package/dist/src/types/pipeline.d.ts +37 -0
- package/dist/src/types/pipeline.js +2 -0
- package/dist/src/utils/abstain-factory.d.ts +2 -0
- package/dist/src/utils/abstain-factory.js +18 -0
- package/dist/src/utils/errors.d.ts +34 -0
- package/dist/src/utils/errors.js +59 -0
- package/dist/src/utils/file-validator.d.ts +50 -0
- package/dist/src/utils/file-validator.js +124 -0
- package/dist/src/utils/fire-and-forget.d.ts +5 -0
- package/dist/src/utils/fire-and-forget.js +10 -0
- package/dist/src/utils/flag-validator.d.ts +21 -0
- package/dist/src/utils/flag-validator.js +79 -0
- package/dist/src/utils/freeze.d.ts +8 -0
- package/dist/src/utils/freeze.js +16 -0
- package/dist/src/utils/language-detector.d.ts +16 -0
- package/dist/src/utils/language-detector.js +159 -0
- package/dist/src/utils/latency-tracker.d.ts +45 -0
- package/dist/src/utils/latency-tracker.js +100 -0
- package/dist/src/utils/logger.d.ts +33 -0
- package/dist/src/utils/logger.js +112 -0
- package/dist/src/utils/process.d.ts +40 -0
- package/dist/src/utils/process.js +253 -0
- package/dist/src/utils/retry.d.ts +12 -0
- package/dist/src/utils/retry.js +30 -0
- package/dist/src/utils/safe-fs.d.ts +38 -0
- package/dist/src/utils/safe-fs.js +56 -0
- package/dist/src/utils/safe-json-parse.d.ts +15 -0
- package/dist/src/utils/safe-json-parse.js +49 -0
- package/dist/src/utils/sanitize.d.ts +14 -0
- package/dist/src/utils/sanitize.js +186 -0
- package/dist/src/utils/semaphore.d.ts +22 -0
- package/dist/src/utils/semaphore.js +57 -0
- package/dist/src/utils/shutdown.d.ts +6 -0
- package/dist/src/utils/shutdown.js +51 -0
- package/dist/src/utils/tty.d.ts +5 -0
- package/dist/src/utils/tty.js +7 -0
- package/package.json +82 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 多田龍正
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.ja.md
ADDED
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
# MAGI System
|
|
2
|
+
|
|
3
|
+
> **[English](./README.md)** | 日本語
|
|
4
|
+
|
|
5
|
+
[](https://github.com/ryu-tada/MAGI-system/actions/workflows/ci.yml)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
[](https://nodejs.org/)
|
|
8
|
+
[](./test/)
|
|
9
|
+
[](#soul-system--magiに魂を宿す20のサブシステム)
|
|
10
|
+
[](https://www.typescriptlang.org/)
|
|
11
|
+
|
|
12
|
+
**1つのAIでは足りないとき** — 3つのAIモデルが議論し、相互批評し、投票する。単体では見落とすものを検出する。
|
|
13
|
+
|
|
14
|
+
> *Unofficial fan project inspired by Neon Genesis Evangelion. Not affiliated with Khara, Inc.*
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<img src="docs/demo.gif" alt="MAGI System デモ — エヴァンゲリオン風TUI審議" width="700">
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
## 60秒で試す
|
|
21
|
+
|
|
22
|
+
APIキー不要。エヴァンゲリオンTUIで録画済みの3体合議を体験:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx magi-ai demo
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
本物の審議をする準備ができたら → [Quick Start](#quick-start)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## なぜマルチAI合議なのか
|
|
33
|
+
|
|
34
|
+
どのAIモデルにも死角がある。Claudeは丁寧だが冗長、GPTは実用的だが過信しがち、Geminiは慎重だが曖昧になりやすい。**単一モデルに頼ると、そのバイアスは検出されないまま残る。**
|
|
35
|
+
|
|
36
|
+
MAGIは意見の不一致を強制的に表面化させる。3つのモデルが独立に同じコードを分析し、2体がセキュリティ問題を指摘して1体が見逃した場合、その問題は本物だとわかる。全員一致なら、単体レビューより高い確信を持って行動できる。
|
|
37
|
+
|
|
38
|
+
| 単一モデルレビュー | MAGI 3体レビュー |
|
|
39
|
+
|-------------------|-----------------|
|
|
40
|
+
| 1つの視点、1つのバイアス | 3つの視点、バイアスが相殺 |
|
|
41
|
+
| 「問題なさそう」 | 2/3 APPROVE, 1 REJECT(反対意見記録) |
|
|
42
|
+
| モデルを信用する | モデル同士が検証する |
|
|
43
|
+
| サイレントな見落とし | 相互批評で看過を検出 |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## What is MAGI?
|
|
48
|
+
|
|
49
|
+
新世紀エヴァンゲリオンのMAGIスーパーコンピュータは、赤木ナオコ博士の3つの人格がそれぞれ独立に判断し、合議で意思決定を行うシステム。
|
|
50
|
+
|
|
51
|
+
本プロジェクトはその構造を再現し、3社の異なるAIモデルが同じ問題を異なる視点から分析する。モデル固有のバイアスを相互検証で排除し、単体では到達できない判断精度を目指す。
|
|
52
|
+
|
|
53
|
+
| MAGI Unit | CLI Tool | Persona | Focus |
|
|
54
|
+
|-----------|----------|---------|-------|
|
|
55
|
+
| **MELCHIOR-1** | Claude Code (Anthropic) | 科学者 | 論理・整合性・構造化推論 |
|
|
56
|
+
| **BALTHASAR-2** | Codex CLI (OpenAI) | 実装者 | 実装現実性・コード品質 |
|
|
57
|
+
| **CASPER-3** | Gemini CLI (Google) | 審査者 | 安全性・リスク・俯瞰視点 |
|
|
58
|
+
|
|
59
|
+
> **N体対応**: デフォルト3体だが、2〜7体の任意のAIユニットで審議可能。
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## How It Works
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Phase 1: INITIAL OPINION (並列実行)
|
|
67
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
68
|
+
│ MELCHIOR │ │ BALTHASAR │ │ CASPER │
|
|
69
|
+
│ (Claude) │ │ (Codex) │ │ (Gemini) │
|
|
70
|
+
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
|
|
71
|
+
└────── Promise.allSettled() ─────┘
|
|
72
|
+
│
|
|
73
|
+
Early exit if unanimous
|
|
74
|
+
│
|
|
75
|
+
Phase 2: CROSS-EXAMINATION (並列実行)
|
|
76
|
+
各ユニットが他2体の意見を批評 → 立場の変更も可能
|
|
77
|
+
│
|
|
78
|
+
Phase 3: FINAL VOTE (並列実行)
|
|
79
|
+
全審議履歴を踏まえた最終投票 → Consensus Engine が判定
|
|
80
|
+
│
|
|
81
|
+
┌───────▼───────┐
|
|
82
|
+
│ MAGI DECISION │
|
|
83
|
+
└───────────────┘
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
| 判定 | 条件 | 結果 |
|
|
87
|
+
|------|------|------|
|
|
88
|
+
| **全会一致** | 3/3 が同意 | 即採択 |
|
|
89
|
+
| **多数決** | 2/3 が同意 | 採択(反対意見を記録) |
|
|
90
|
+
| **デッドロック** | 全員不一致 | Tiebreak / Human-in-the-loop |
|
|
91
|
+
| **定足数不足** | 2体以上がABSTAIN | 判定不能 |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Use Cases
|
|
96
|
+
|
|
97
|
+
| シナリオ | コマンド | MAGIの価値 |
|
|
98
|
+
|----------|---------|------------|
|
|
99
|
+
| PRコードレビュー | `magi review src/auth.ts` | 3モデルが異なるバグクラスを検出 |
|
|
100
|
+
| アーキテクチャ決定 | `magi decide "PostgreSQL vs MongoDB?"` | 3つの視点から構造化されたpros/cons |
|
|
101
|
+
| セキュリティ監査 | `magi deliberate "Audit this endpoint"` | 相互検証で偽陰性を削減 |
|
|
102
|
+
| 技術的負債評価 | `/ops prophecy src/legacy/` | git履歴からランダムフォレスト予測 |
|
|
103
|
+
| CI/CDゲート | `magi review --output json` | マージゲート用の機械可読コンセンサス |
|
|
104
|
+
| チームの意見対立 | `magi decide "モノレポ移行?"` | 客観的な多角的仲裁 |
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Quick Start
|
|
109
|
+
|
|
110
|
+
### Prerequisites
|
|
111
|
+
|
|
112
|
+
- **Node.js v24+** (v20以上で動作)
|
|
113
|
+
- 以下の3つのAI CLIがインストール・認証済みであること:
|
|
114
|
+
|
|
115
|
+
<details>
|
|
116
|
+
<summary><strong>Claude Code</strong> — MELCHIOR (Anthropic)</summary>
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# インストール (どちらか一方)
|
|
120
|
+
curl -fsSL https://claude.ai/install.sh | bash # 推奨
|
|
121
|
+
npm install -g @anthropic-ai/claude-code # Node.js経由
|
|
122
|
+
|
|
123
|
+
# 認証 — 初回起動でブラウザ認証が開く
|
|
124
|
+
claude
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Pro / Max / Teams / Enterprise いずれかの有料プランが必要。→ [公式ドキュメント](https://docs.anthropic.com/en/docs/claude-code)
|
|
128
|
+
|
|
129
|
+
</details>
|
|
130
|
+
|
|
131
|
+
<details>
|
|
132
|
+
<summary><strong>Codex CLI</strong> — BALTHASAR (OpenAI)</summary>
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# インストール
|
|
136
|
+
npm install -g @openai/codex
|
|
137
|
+
|
|
138
|
+
# 認証 — 初回起動でセットアップが始まる
|
|
139
|
+
codex
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
ChatGPT Plus / Pro / Team / Enterprise いずれかのサブスクリプションが必要。→ [公式リポジトリ](https://github.com/openai/codex)
|
|
143
|
+
|
|
144
|
+
</details>
|
|
145
|
+
|
|
146
|
+
<details>
|
|
147
|
+
<summary><strong>Gemini CLI</strong> — CASPER (Google)</summary>
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# インストール
|
|
151
|
+
npm install -g @google/gemini-cli
|
|
152
|
+
|
|
153
|
+
# 認証 — 初回起動で「Sign in with Google」を選択
|
|
154
|
+
gemini
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Googleアカウントで無料利用可能 (60 req/min, 1,000 req/day)。→ [公式リポジトリ](https://github.com/google-gemini/gemini-cli)
|
|
158
|
+
|
|
159
|
+
</details>
|
|
160
|
+
|
|
161
|
+
### Install
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
npm install -g magi-ai
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Verify
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
magi doctor
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
✓ MELCHIOR: 2.x.x (Claude Code)
|
|
175
|
+
✓ BALTHASAR: codex-cli 0.x.x
|
|
176
|
+
✓ CASPER: 0.x.x
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Start
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
magi
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Usage
|
|
188
|
+
|
|
189
|
+
起動するとNERVブートシーケンスが走り、対話的REPLが開始。自然言語で質問を入力するだけで3体合議が始まり、フルスクリーンTUIで審議過程がリアルタイム表示される。
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
╔════════════════════════════════════════════╗
|
|
193
|
+
║ M A G I S Y S T E M ║
|
|
194
|
+
║ REPL INTERFACE READY ║
|
|
195
|
+
╚════════════════════════════════════════════╝
|
|
196
|
+
Type a question to deliberate. /help for commands.
|
|
197
|
+
|
|
198
|
+
MAGI[01|NORM|3/3|CTX:0]> 零号機の緊急出撃を承認すべきか
|
|
199
|
+
[フルスクリーンTUI起動 → NERVブート → 3体審議 → 結果表示]
|
|
200
|
+
|
|
201
|
+
╔═══════════════════════════════════════════════╗
|
|
202
|
+
║ MAGI DECISION: MAJORITY_APPROVE CONF 82% ║
|
|
203
|
+
╠═══════════════════════════════════════════════╣
|
|
204
|
+
║ MELCHIOR ✓ APPROVE ████████░░ 84% ║
|
|
205
|
+
║ BALTHASAR ✓ APPROVE ██████████ 95% ║
|
|
206
|
+
║ CASPER ✗ REJECT ██████░░░░ 67% ║
|
|
207
|
+
╚═══════════════════════════════════════════════╝
|
|
208
|
+
|
|
209
|
+
MAGI[02|NORM|3/3|CTX:1]> もうちょっと詳しく教えて
|
|
210
|
+
[前回のコンテキストが自動注入された状態で再審議]
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
自然言語でそのまま質問すれば審議が始まる。スラッシュコマンドで特殊な操作もできる:
|
|
214
|
+
|
|
215
|
+
| コマンド | 動作 |
|
|
216
|
+
|---------|------|
|
|
217
|
+
| `/review <file>` | コードレビュー審議(Tab補完対応) |
|
|
218
|
+
| `/decide <question>` | アーキテクチャ決定 |
|
|
219
|
+
| `/berserk <prompt>` | 暴走モード(5戦略×N体デスマッチ) |
|
|
220
|
+
| `/status` | システムダッシュボード |
|
|
221
|
+
| `/export [file]` | 審議結果エクスポート |
|
|
222
|
+
| `/ops watch start` | 使徒検知バックグラウンド開始 |
|
|
223
|
+
| `/diag evolve` | S²エンジン自己進化 |
|
|
224
|
+
| `/admin self-destruct <reason>` | 自爆シーケンス(全会一致必須) |
|
|
225
|
+
| `/help` | 全コマンド一覧 |
|
|
226
|
+
|
|
227
|
+
**コンテキスト持続:** 直近5件の審議サマリーが自動保持され、フォローアップの質問に前回の文脈が注入される。プロジェクトコンテキスト(git status、package.json、関連ファイル)も自動収集。
|
|
228
|
+
|
|
229
|
+
### MCP Server (Claude Code Integration)
|
|
230
|
+
|
|
231
|
+
`.mcp.json` がリポジトリ直下に配置済み。Claude Code を再起動すると `magi_deliberate`、`magi_review`、`magi_decide`、`magi_doctor` の4ツールが自動で使えるようになる。MCP Inspector で動作確認: `npx @modelcontextprotocol/inspector magi-mcp`
|
|
232
|
+
|
|
233
|
+
### Programmatic API
|
|
234
|
+
|
|
235
|
+
```typescript
|
|
236
|
+
import { Magi } from 'magi-ai';
|
|
237
|
+
|
|
238
|
+
const magi = new Magi();
|
|
239
|
+
const result = await magi.deliberate({
|
|
240
|
+
type: 'code-review',
|
|
241
|
+
title: 'Review auth middleware',
|
|
242
|
+
artifacts: [{ type: 'file', path: 'src/auth.ts', content: '...', language: 'typescript' }],
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
console.log(result.consensus.decision); // => 'MAJORITY_APPROVE'
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
> CI/スクリプト向けの非対話コマンド (`magi deliberate`, `magi review`, `magi decide`) も利用可能。詳細は `magi --help`。
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Features
|
|
253
|
+
|
|
254
|
+
### Evangelion TUI
|
|
255
|
+
|
|
256
|
+
エヴァンゲリオン風フルスクリーンインターフェースがデフォルトで起動。NERVブートシーケンスから逆Y字型3パネルの投票可視化まで、原作の雰囲気を再現する。新規依存ゼロ(Raw ANSI + chalk)。
|
|
257
|
+
|
|
258
|
+
- NERVブートシーケンス (~1.5秒)
|
|
259
|
+
- 逆Y字型パネル — BALTHASAR(上中央), CASPER(左下), MELCHIOR(右下)
|
|
260
|
+
- 呼吸アニメーション — thinking中のパネル枠がsin()曲線で明滅
|
|
261
|
+
- カスケード投票リビール + 判定スタンプ(「可 決」「否 決」「膠 着」)
|
|
262
|
+
- BERSERKフラッシュ — 暴走警告時に赤フラッシュ
|
|
263
|
+
- 詳細オーバーレイ — `1`/`2`/`3`キーでユニット別reasoning閲覧
|
|
264
|
+
|
|
265
|
+
### Soul System — MAGIに魂を宿す20のサブシステム
|
|
266
|
+
|
|
267
|
+
エヴァンゲリオンの設定を技術的に意味のある形でマッピングした20のサブシステム:
|
|
268
|
+
|
|
269
|
+
- **記憶・人格 (EngRam)** — TF-IDF類似検索、3層記憶、12次元ドリフト検知
|
|
270
|
+
- **シンクロ率** — Beta分布ベイズ推定によるタスク適合度追跡
|
|
271
|
+
- **A.T.フィールド** — 同調バイアスの定量検知と中和
|
|
272
|
+
- **暴走モード (BERSERK)** — 5戦略×N体並列、fitness選択デスマッチ
|
|
273
|
+
- **補完計画 (Instrumentality)** — MoA重み付き推論融合でデッドロック解決
|
|
274
|
+
- **LCL** — フェーズ別情報密度制御 + 4種ハルシネーション検出・浄化
|
|
275
|
+
- **使徒検知** — git差分ベース6種コード脅威パターン検出
|
|
276
|
+
- **死海文書** — ランダムフォレスト(50木)による技術的負債予測
|
|
277
|
+
- **666型防壁** — 4層多層防御ファイアウォール
|
|
278
|
+
- **自爆シーケンス** — BFT f=0 全会一致による不可逆操作儀式
|
|
279
|
+
- **S²エンジン** — 自己診断→改善提案→メタ合議の自己進化
|
|
280
|
+
- **ゼーレ会議** — PBFT+Raft分散合議プロトコル
|
|
281
|
+
- **Neon Genesis** — Fisher-Yates記憶生存による完全リセット
|
|
282
|
+
|
|
283
|
+
### Security
|
|
284
|
+
|
|
285
|
+
9層のセキュリティ硬化: Zodスキーマ入力バリデーション → プロンプトインジェクション防止(9パターン) → stdin配信+危険フラグ検出 → プロセスサンドボックス(ENV/CMD allowlist) → SafeOpinionSchema出力検証 → SHA-256ハッシュチェーン監査ログ → Semaphore+タイムアウト → リプレイ防止nonce → ランダムソルト暗号化
|
|
286
|
+
|
|
287
|
+
### Auto-Context Collection
|
|
288
|
+
|
|
289
|
+
審議時にプロジェクトコンテキスト(git status、package.json、ディレクトリツリー)と関連ファイル(import先、テストファイル)を自動収集して注入。`--no-auto-context` でオプトアウト可能。機密ファイル(.env, .key, credentials等)は自動除外。
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Architecture
|
|
294
|
+
|
|
295
|
+
```
|
|
296
|
+
MAGI-system/
|
|
297
|
+
├── bin/ # CLI entry points (magi, magi-mcp, magi-benchmark)
|
|
298
|
+
├── src/
|
|
299
|
+
│ ├── index.ts # Public API (Magi class)
|
|
300
|
+
│ ├── types/ # TypeScript types & Zod schemas
|
|
301
|
+
│ ├── adapters/ # CLI wrappers (claude, codex, gemini)
|
|
302
|
+
│ ├── engine/ # Core deliberation (kernel, consensus, middleware)
|
|
303
|
+
│ │ ├── kernel/ # Deliberation loop, phase runner, unit executor
|
|
304
|
+
│ │ └── middleware/ # Koa-style chain (cache, firewall)
|
|
305
|
+
│ ├── parsers/ # Opinion extraction (JSON extractor, Zod schema, unstructured)
|
|
306
|
+
│ ├── pipelines/ # Task-specific flows (code-review, architecture, bug-analysis)
|
|
307
|
+
│ ├── tui/ # Evangelion full-screen TUI (raw ANSI, double-buffered)
|
|
308
|
+
│ ├── repl/ # Interactive REPL (19 slash commands, state machine)
|
|
309
|
+
│ ├── mcp/ # MCP server (4 tools, stdio transport)
|
|
310
|
+
│ ├── context/ # Auto-context collection (git, imports, tests)
|
|
311
|
+
│ ├── cache/ # SHA-256 keyed result cache with TTL
|
|
312
|
+
│ ├── metrics/ # Token usage tracking
|
|
313
|
+
│ ├── audit/ # SHA-256 hash chain audit logging
|
|
314
|
+
│ └── utils/ # Shared utilities (process sandbox, file validation)
|
|
315
|
+
├── test/ # 2135 tests (vitest)
|
|
316
|
+
│ ├── e2e/ # E2E with real CLIs (MAGI_E2E=1 gated)
|
|
317
|
+
│ ├── integration/ # Orchestrator + TUI integration
|
|
318
|
+
│ └── unit/ # Per-module unit tests
|
|
319
|
+
└── docs/ # User-facing documentation
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## Development
|
|
325
|
+
|
|
326
|
+
ソースから開発する場合:
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
git clone https://github.com/ryu-tada/MAGI-system.git
|
|
330
|
+
cd MAGI-system
|
|
331
|
+
npm install
|
|
332
|
+
npm test # 2135 tests
|
|
333
|
+
npm run typecheck # Type check
|
|
334
|
+
npm run build # Build
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## Documentation
|
|
340
|
+
|
|
341
|
+
- [Practical Examples](docs/EXAMPLES.md) — 8 scenarios with commands and expected output
|
|
342
|
+
- [Tuning Guide](docs/TUNING_GUIDE.md) — Configuration reference and optimization strategies
|
|
343
|
+
- [Troubleshooting](docs/TROUBLESHOOTING.md) — Common issues and solutions
|
|
344
|
+
- [Benchmark Results](docs/BENCHMARK_RESULTS.md) — スコアリングフレームワーク検証(実CLIで本番データ生成可能)
|
|
345
|
+
- [Contributing](CONTRIBUTING.md) — Development setup, adding adapters/pipelines
|
|
346
|
+
- [Changelog](CHANGELOG.md) — Release history
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## Tech Stack
|
|
351
|
+
|
|
352
|
+
- **Language**: TypeScript (ESM)
|
|
353
|
+
- **Runtime**: Node.js v24+ (v20+ minimum)
|
|
354
|
+
- **Dependencies**: commander, chalk, zod, @modelcontextprotocol/sdk
|
|
355
|
+
- **Test**: Vitest (2135 tests)
|
|
356
|
+
- **Dev**: tsx
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## Credits & Legal
|
|
361
|
+
|
|
362
|
+
> 「MAGIの回答は — 全会一致」
|
|
363
|
+
> — 赤木リツコ, 新世紀エヴァンゲリオン
|
|
364
|
+
|
|
365
|
+
MAGI System is inspired by the MAGI supercomputer system from *Neon Genesis Evangelion*, created by Hideaki Anno and produced by Gainax / Khara, Inc.
|
|
366
|
+
|
|
367
|
+
### Disclaimer
|
|
368
|
+
|
|
369
|
+
This is an **unofficial, non-commercial, fan-made** open-source project. It is not affiliated with, endorsed by, or connected to Khara, Inc. (株式会社カラー) or any official Evangelion production.
|
|
370
|
+
|
|
371
|
+
*Neon Genesis Evangelion* and related names are copyrighted works of Khara, Inc. All rights reserved by their respective owners.
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## License
|
|
376
|
+
|
|
377
|
+
MIT — See [LICENSE](./LICENSE) for details.
|