homegraph 1.1.2 → 1.2.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 -21
- package/README.md +268 -243
- package/dist/arkts/ohos-api-index.d.ts +15 -0
- package/dist/arkts/ohos-api-index.d.ts.map +1 -0
- package/dist/arkts/ohos-api-index.js +190 -0
- package/dist/arkts/ohos-api-index.js.map +1 -0
- package/dist/arkts/ohos-sdk-input.d.ts +36 -0
- package/dist/arkts/ohos-sdk-input.d.ts.map +1 -0
- package/dist/arkts/ohos-sdk-input.js +214 -0
- package/dist/arkts/ohos-sdk-input.js.map +1 -0
- package/dist/bin/command-supervision.d.ts +12 -0
- package/dist/bin/command-supervision.d.ts.map +1 -0
- package/dist/bin/command-supervision.js +86 -0
- package/dist/bin/command-supervision.js.map +1 -0
- package/dist/bin/homegraph.d.ts +1 -1
- package/dist/bin/homegraph.js +971 -71
- package/dist/bin/homegraph.js.map +1 -1
- package/dist/db/index.d.ts +20 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +39 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations.d.ts +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +58 -19
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/queries.d.ts +14 -0
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +314 -143
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +172 -152
- package/dist/directory.d.ts +32 -0
- package/dist/directory.d.ts.map +1 -1
- package/dist/directory.js +88 -5
- package/dist/directory.js.map +1 -1
- package/dist/extraction/arkts-batch-worker.d.ts +2 -0
- package/dist/extraction/arkts-batch-worker.d.ts.map +1 -0
- package/dist/extraction/arkts-batch-worker.js +28 -0
- package/dist/extraction/arkts-batch-worker.js.map +1 -0
- package/dist/extraction/context.d.ts +11 -0
- package/dist/extraction/context.d.ts.map +1 -1
- package/dist/extraction/context.js +20 -0
- package/dist/extraction/context.js.map +1 -1
- package/dist/extraction/index.d.ts +16 -2
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +619 -380
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/languages/arkts-state-decorators.d.ts +13 -0
- package/dist/extraction/languages/arkts-state-decorators.d.ts.map +1 -0
- package/dist/extraction/languages/arkts-state-decorators.js +26 -0
- package/dist/extraction/languages/arkts-state-decorators.js.map +1 -0
- package/dist/extraction/languages/arkts-viewtree.d.ts +4 -2
- package/dist/extraction/languages/arkts-viewtree.d.ts.map +1 -1
- package/dist/extraction/languages/arkts-viewtree.js +21 -6
- package/dist/extraction/languages/arkts-viewtree.js.map +1 -1
- package/dist/extraction/languages/arkts.d.ts +98 -2
- package/dist/extraction/languages/arkts.d.ts.map +1 -1
- package/dist/extraction/languages/arkts.js +1290 -61
- package/dist/extraction/languages/arkts.js.map +1 -1
- package/dist/extraction/languages/c-cpp.d.ts +56 -0
- package/dist/extraction/languages/c-cpp.d.ts.map +1 -1
- package/dist/extraction/languages/c-cpp.js +198 -1
- package/dist/extraction/languages/c-cpp.js.map +1 -1
- package/dist/extraction/languages/ohos-api-consumer.d.ts +34 -0
- package/dist/extraction/languages/ohos-api-consumer.d.ts.map +1 -0
- package/dist/extraction/languages/ohos-api-consumer.js +283 -0
- package/dist/extraction/languages/ohos-api-consumer.js.map +1 -0
- package/dist/extraction/parse-pool.d.ts +126 -0
- package/dist/extraction/parse-pool.d.ts.map +1 -0
- package/dist/extraction/parse-pool.js +319 -0
- package/dist/extraction/parse-pool.js.map +1 -0
- package/dist/extraction/tree-sitter-types.d.ts +17 -0
- package/dist/extraction/tree-sitter-types.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.d.ts +21 -0
- package/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.js +198 -27
- package/dist/extraction/tree-sitter.js.map +1 -1
- package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
- package/dist/graph/traversal.d.ts.map +1 -1
- package/dist/graph/traversal.js +76 -17
- package/dist/graph/traversal.js.map +1 -1
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -4
- package/dist/index.js.map +1 -1
- package/dist/installer/instructions-template.js +9 -9
- package/dist/installer/targets/shared.d.ts +5 -6
- package/dist/installer/targets/shared.d.ts.map +1 -1
- package/dist/installer/targets/shared.js +5 -6
- package/dist/installer/targets/shared.js.map +1 -1
- package/dist/mcp/daemon-paths.d.ts +30 -3
- package/dist/mcp/daemon-paths.d.ts.map +1 -1
- package/dist/mcp/daemon-paths.js +50 -10
- package/dist/mcp/daemon-paths.js.map +1 -1
- package/dist/mcp/daemon-registry.d.ts.map +1 -1
- package/dist/mcp/daemon-registry.js +7 -3
- package/dist/mcp/daemon-registry.js.map +1 -1
- package/dist/mcp/daemon.d.ts +48 -0
- package/dist/mcp/daemon.d.ts.map +1 -1
- package/dist/mcp/daemon.js +196 -32
- package/dist/mcp/daemon.js.map +1 -1
- package/dist/mcp/engine.d.ts +17 -0
- package/dist/mcp/engine.d.ts.map +1 -1
- package/dist/mcp/engine.js +73 -1
- package/dist/mcp/engine.js.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +25 -43
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/liveness-watchdog.js +16 -16
- package/dist/mcp/ppid-watchdog.d.ts +18 -0
- package/dist/mcp/ppid-watchdog.d.ts.map +1 -1
- package/dist/mcp/ppid-watchdog.js +37 -0
- package/dist/mcp/ppid-watchdog.js.map +1 -1
- package/dist/mcp/query-cache.d.ts +25 -0
- package/dist/mcp/query-cache.d.ts.map +1 -0
- package/dist/mcp/query-cache.js +191 -0
- package/dist/mcp/query-cache.js.map +1 -0
- package/dist/mcp/query-pool.d.ts +94 -0
- package/dist/mcp/query-pool.d.ts.map +1 -0
- package/dist/mcp/query-pool.js +297 -0
- package/dist/mcp/query-pool.js.map +1 -0
- package/dist/mcp/query-worker.d.ts +24 -0
- package/dist/mcp/query-worker.d.ts.map +1 -0
- package/dist/mcp/query-worker.js +87 -0
- package/dist/mcp/query-worker.js.map +1 -0
- package/dist/mcp/server-instructions.d.ts +5 -7
- package/dist/mcp/server-instructions.d.ts.map +1 -1
- package/dist/mcp/server-instructions.js +72 -74
- package/dist/mcp/server-instructions.js.map +1 -1
- package/dist/mcp/tools.d.ts +94 -4
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +877 -71
- package/dist/mcp/tools.js.map +1 -1
- package/dist/project-config.d.ts +20 -0
- package/dist/project-config.d.ts.map +1 -1
- package/dist/project-config.js +42 -2
- package/dist/project-config.js.map +1 -1
- package/dist/reasoning/login.js +1 -1
- package/dist/reasoning/login.js.map +1 -1
- package/dist/reasoning/reasoner.js +32 -32
- package/dist/resolution/c-fnptr-synthesizer.d.ts +0 -28
- package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
- package/dist/resolution/c-fnptr-synthesizer.js +765 -79
- package/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
- package/dist/resolution/callback-synthesizer.d.ts +1 -1
- package/dist/resolution/callback-synthesizer.d.ts.map +1 -1
- package/dist/resolution/callback-synthesizer.js +72 -11
- package/dist/resolution/callback-synthesizer.js.map +1 -1
- package/dist/resolution/cooperative-yield.d.ts +32 -0
- package/dist/resolution/cooperative-yield.d.ts.map +1 -0
- package/dist/resolution/cooperative-yield.js +42 -0
- package/dist/resolution/cooperative-yield.js.map +1 -0
- package/dist/resolution/index.d.ts +11 -2
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +72 -4
- package/dist/resolution/index.js.map +1 -1
- package/dist/resolution/name-matcher.d.ts +22 -0
- package/dist/resolution/name-matcher.d.ts.map +1 -1
- package/dist/resolution/name-matcher.js +317 -20
- package/dist/resolution/name-matcher.js.map +1 -1
- package/dist/spec/config.d.ts +39 -0
- package/dist/spec/config.d.ts.map +1 -0
- package/dist/spec/config.js +304 -0
- package/dist/spec/config.js.map +1 -0
- package/dist/spec/db/commit-node.d.ts +23 -0
- package/dist/spec/db/commit-node.d.ts.map +1 -0
- package/dist/spec/db/commit-node.js +62 -0
- package/dist/spec/db/commit-node.js.map +1 -0
- package/dist/spec/db/fragment-node.d.ts +24 -0
- package/dist/spec/db/fragment-node.d.ts.map +1 -0
- package/dist/spec/db/fragment-node.js +128 -0
- package/dist/spec/db/fragment-node.js.map +1 -0
- package/dist/spec/db/fts.d.ts +74 -0
- package/dist/spec/db/fts.d.ts.map +1 -0
- package/dist/spec/db/fts.js +324 -0
- package/dist/spec/db/fts.js.map +1 -0
- package/dist/spec/db/index.d.ts +13 -0
- package/dist/spec/db/index.d.ts.map +1 -0
- package/dist/spec/db/index.js +50 -0
- package/dist/spec/db/index.js.map +1 -0
- package/dist/spec/db/relations.d.ts +55 -0
- package/dist/spec/db/relations.d.ts.map +1 -0
- package/dist/spec/db/relations.js +158 -0
- package/dist/spec/db/relations.js.map +1 -0
- package/dist/spec/db/schema.d.ts +33 -0
- package/dist/spec/db/schema.d.ts.map +1 -0
- package/dist/spec/db/schema.js +119 -0
- package/dist/spec/db/schema.js.map +1 -0
- package/dist/spec/db/schema.sql +117 -0
- package/dist/spec/db/spec-node.d.ts +41 -0
- package/dist/spec/db/spec-node.d.ts.map +1 -0
- package/dist/spec/db/spec-node.js +114 -0
- package/dist/spec/db/spec-node.js.map +1 -0
- package/dist/spec/evolve/impact-locator.d.ts +13 -0
- package/dist/spec/evolve/impact-locator.d.ts.map +1 -0
- package/dist/spec/evolve/impact-locator.js +25 -0
- package/dist/spec/evolve/impact-locator.js.map +1 -0
- package/dist/spec/evolve/llm-client.d.ts +50 -0
- package/dist/spec/evolve/llm-client.d.ts.map +1 -0
- package/dist/spec/evolve/llm-client.js +176 -0
- package/dist/spec/evolve/llm-client.js.map +1 -0
- package/dist/spec/evolve/logic-checker.d.ts +12 -0
- package/dist/spec/evolve/logic-checker.d.ts.map +1 -0
- package/dist/spec/evolve/logic-checker.js +24 -0
- package/dist/spec/evolve/logic-checker.js.map +1 -0
- package/dist/spec/evolve/pipeline.d.ts +42 -0
- package/dist/spec/evolve/pipeline.d.ts.map +1 -0
- package/dist/spec/evolve/pipeline.js +567 -0
- package/dist/spec/evolve/pipeline.js.map +1 -0
- package/dist/spec/evolve/spec-rewriter.d.ts +42 -0
- package/dist/spec/evolve/spec-rewriter.d.ts.map +1 -0
- package/dist/spec/evolve/spec-rewriter.js +230 -0
- package/dist/spec/evolve/spec-rewriter.js.map +1 -0
- package/dist/spec/graph/queries.d.ts +155 -0
- package/dist/spec/graph/queries.d.ts.map +1 -0
- package/dist/spec/graph/queries.js +440 -0
- package/dist/spec/graph/queries.js.map +1 -0
- package/dist/spec/llm/client.d.ts +29 -0
- package/dist/spec/llm/client.d.ts.map +1 -0
- package/dist/spec/llm/client.js +123 -0
- package/dist/spec/llm/client.js.map +1 -0
- package/dist/spec/llm/index.d.ts +3 -0
- package/dist/spec/llm/index.d.ts.map +1 -0
- package/dist/spec/llm/index.js +11 -0
- package/dist/spec/llm/index.js.map +1 -0
- package/dist/spec/llm/prompts.d.ts +13 -0
- package/dist/spec/llm/prompts.d.ts.map +1 -0
- package/dist/spec/llm/prompts.js +75 -0
- package/dist/spec/llm/prompts.js.map +1 -0
- package/dist/spec/mining/diff-parser.d.ts +33 -0
- package/dist/spec/mining/diff-parser.d.ts.map +1 -0
- package/dist/spec/mining/diff-parser.js +166 -0
- package/dist/spec/mining/diff-parser.js.map +1 -0
- package/dist/spec/mining/git-scanner.d.ts +103 -0
- package/dist/spec/mining/git-scanner.d.ts.map +1 -0
- package/dist/spec/mining/git-scanner.js +307 -0
- package/dist/spec/mining/git-scanner.js.map +1 -0
- package/dist/spec/mining/pipeline.d.ts +53 -0
- package/dist/spec/mining/pipeline.d.ts.map +1 -0
- package/dist/spec/mining/pipeline.js +178 -0
- package/dist/spec/mining/pipeline.js.map +1 -0
- package/dist/spec/mining/scope-resolver.d.ts +45 -0
- package/dist/spec/mining/scope-resolver.d.ts.map +1 -0
- package/dist/spec/mining/scope-resolver.js +103 -0
- package/dist/spec/mining/scope-resolver.js.map +1 -0
- package/dist/spec/mining/spec-extractor.d.ts +69 -0
- package/dist/spec/mining/spec-extractor.d.ts.map +1 -0
- package/dist/spec/mining/spec-extractor.js +369 -0
- package/dist/spec/mining/spec-extractor.js.map +1 -0
- package/dist/spec/types.d.ts +149 -0
- package/dist/spec/types.d.ts.map +1 -0
- package/dist/spec/types.js +15 -0
- package/dist/spec/types.js.map +1 -0
- package/dist/spec/utils.d.ts +167 -0
- package/dist/spec/utils.d.ts.map +1 -0
- package/dist/spec/utils.js +463 -0
- package/dist/spec/utils.js.map +1 -0
- package/dist/sync/worktree.d.ts +9 -0
- package/dist/sync/worktree.d.ts.map +1 -1
- package/dist/sync/worktree.js +40 -0
- package/dist/sync/worktree.js.map +1 -1
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/shimmer-progress.d.ts +2 -0
- package/dist/ui/shimmer-progress.d.ts.map +1 -1
- package/dist/ui/shimmer-progress.js +19 -2
- package/dist/ui/shimmer-progress.js.map +1 -1
- package/dist/upgrade/index.js +1 -1
- package/dist/upgrade/index.js.map +1 -1
- package/package.json +58 -57
- package/scripts/add-lang/bench.sh +60 -60
- package/scripts/add-lang/check-grammar.mjs +75 -75
- package/scripts/add-lang/dump-ast.mjs +103 -103
- package/scripts/add-lang/verify-extraction.mjs +70 -70
- package/scripts/agent-eval/ab-adoption.sh +91 -91
- package/scripts/agent-eval/ab-hook.sh +86 -86
- package/scripts/agent-eval/ab-impl.sh +78 -78
- package/scripts/agent-eval/ab-new-vs-baseline.sh +102 -102
- package/scripts/agent-eval/ab-sufficiency.sh +78 -78
- package/scripts/agent-eval/arms-F.sh +21 -21
- package/scripts/agent-eval/arms-matrix.sh +37 -37
- package/scripts/agent-eval/audit.sh +68 -68
- package/scripts/agent-eval/bench-readme.sh +28 -28
- package/scripts/agent-eval/bench-why-repo.sh +22 -22
- package/scripts/agent-eval/block-read-hook.sh +19 -19
- package/scripts/agent-eval/hook-settings.json +15 -15
- package/scripts/agent-eval/itrun.sh +120 -120
- package/scripts/agent-eval/offload-eval-3arm.sh +72 -72
- package/scripts/agent-eval/offload-eval-cost.mjs +133 -133
- package/scripts/agent-eval/offload-eval-effort.mjs +108 -108
- package/scripts/agent-eval/offload-eval-frontload-matrix.sh +25 -25
- package/scripts/agent-eval/offload-eval-frontload.sh +47 -47
- package/scripts/agent-eval/offload-eval-ground-truth.json +18 -18
- package/scripts/agent-eval/offload-eval-hook.mjs +84 -84
- package/scripts/agent-eval/offload-eval-judge.mjs +103 -103
- package/scripts/agent-eval/offload-eval-matrix.sh +20 -20
- package/scripts/agent-eval/offload-eval-metrics.mjs +94 -94
- package/scripts/agent-eval/offload-eval-refs1.sh +50 -50
- package/scripts/agent-eval/offload-eval-setup.sh +24 -24
- package/scripts/agent-eval/offload-eval-styles.sh +71 -71
- package/scripts/agent-eval/offload-eval-summarize.mjs +68 -68
- package/scripts/agent-eval/offload-eval.md +76 -76
- package/scripts/agent-eval/parse-arms.mjs +116 -116
- package/scripts/agent-eval/parse-bench-readme.mjs +84 -84
- package/scripts/agent-eval/parse-run.mjs +45 -45
- package/scripts/agent-eval/parse-session.mjs +93 -93
- package/scripts/agent-eval/probe-context.mjs +21 -21
- package/scripts/agent-eval/probe-explore.mjs +40 -40
- package/scripts/agent-eval/probe-node.mjs +20 -20
- package/scripts/agent-eval/probe-sweep.mjs +119 -119
- package/scripts/agent-eval/probe-trace.mjs +20 -20
- package/scripts/agent-eval/redirect-read-hook.sh +38 -38
- package/scripts/agent-eval/repro-concurrent-explore.mjs +119 -0
- package/scripts/agent-eval/repro-daemon-clients.mjs +125 -0
- package/scripts/agent-eval/run-agent.sh +34 -34
- package/scripts/agent-eval/run-all.sh +69 -69
- package/scripts/agent-eval/run-arms.sh +56 -56
- package/scripts/agent-eval/seq-matrix.mjs +137 -137
- package/scripts/build-bundle.sh +118 -118
- package/scripts/exp_boundary_eval/README.md +247 -0
- package/scripts/exp_boundary_eval/__pycache__/_utils.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/analyze.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/deveco_arm.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/run_one.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/run_session.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/setup.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/_test_mcp_chain.py +78 -0
- package/scripts/exp_boundary_eval/_test_stdin.py +8 -0
- package/scripts/exp_boundary_eval/_utils.py +1116 -0
- package/scripts/exp_boundary_eval/analyze.py +1313 -0
- package/scripts/exp_boundary_eval/data/agents.json +109 -0
- package/scripts/exp_boundary_eval/data/experiments.json +140 -0
- package/scripts/exp_boundary_eval/deveco_arm.py +519 -0
- package/scripts/exp_boundary_eval/run_all.py +378 -0
- package/scripts/exp_boundary_eval/run_one.py +165 -0
- package/scripts/exp_boundary_eval/run_session.py +158 -0
- package/scripts/exp_boundary_eval/setup.py +120 -0
- package/scripts/exp_boundary_eval/win_mcp_launcher.py +73 -0
- package/scripts/exp_boundary_eval/win_mcp_stdio_wrap.js +36 -0
- package/scripts/exp_boundary_eval/win_node_launcher.py +24 -0
- package/scripts/extract-release-notes.mjs +130 -130
- package/scripts/local-install.sh +41 -41
- package/scripts/npm-sdk.js +75 -75
- package/scripts/npm-shim.js +268 -246
- package/scripts/ohos-sdk-publish.mjs +133 -0
- package/scripts/pack-npm.sh +119 -119
- package/scripts/prepare-release.mjs +270 -270
- package/scripts/qa_eval/README.md +407 -404
- package/scripts/qa_eval/_test_deveco_probe.py +41 -41
- package/scripts/qa_eval/agent_runner.py +526 -526
- package/scripts/qa_eval/data/.gitignore +4 -4
- package/scripts/qa_eval/data/test-set.jsonl +2 -22
- package/scripts/qa_eval/eval_metrics.py +274 -233
- package/scripts/qa_eval/external_agent.py +976 -671
- package/scripts/qa_eval/llm_config.py +92 -92
- package/scripts/qa_eval/memory_monitor.py +132 -132
- package/scripts/qa_eval/my_answer_accuracy.py +187 -187
- package/scripts/qa_eval/requirements.txt +2 -2
- package/scripts/qa_eval/run_pipeline.py +804 -711
- package/scripts/qa_eval/stats_efficiency.py +279 -279
- package/scripts/qa_eval/stats_scores.py +207 -207
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Colby Mchenry
|
|
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.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Colby Mchenry
|
|
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.md
CHANGED
|
@@ -1,243 +1,268 @@
|
|
|
1
|
-
# HomeGraph
|
|
2
|
-
|
|
3
|
-
本地代码知识图谱工具,面向 AI 编程助手(Claude Code、Cursor、Codex 等)提供 MCP 服务。
|
|
4
|
-
|
|
5
|
-
在开源知识图谱能力之上,**HomeGraph 新增了对 ArkTS(HarmonyOS)的支持**,通过 [arkanalyzer](https://www.npmjs.com/package/arkanalyzer) 解析 `.ets` / `.ts` 工程中的符号、调用关系与模块结构。
|
|
6
|
-
|
|
7
|
-
数据全部保存在本机 `.homegraph/` 目录,不上传云端。
|
|
8
|
-
|
|
9
|
-
[](https://www.npmjs.com/package/homegraph)
|
|
10
|
-
[](https://opensource.org/licenses/MIT)
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## 快速开始
|
|
15
|
-
|
|
16
|
-
### 1. 安装 CLI
|
|
17
|
-
|
|
18
|
-
需要 **Node.js 22.5+**(推荐 22 LTS 或 24)。HomeGraph 使用 Node 内置的 `node:sqlite`,22.5 以下无法运行。
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
npm install -g homegraph
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
若在 Linux/WSL 遇到 `EACCES` 权限错误,可任选其一:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
# 临时
|
|
28
|
-
sudo npm install -g homegraph
|
|
29
|
-
|
|
30
|
-
# 或把全局目录改到用户家目录(推荐)
|
|
31
|
-
mkdir -p ~/.npm-global
|
|
32
|
-
npm config set prefix ~/.npm-global
|
|
33
|
-
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
|
|
34
|
-
source ~/.bashrc
|
|
35
|
-
npm install -g homegraph
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
验证:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
homegraph --version
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### 2. 接入 AI 助手
|
|
45
|
-
|
|
46
|
-
在新终端中运行交互式安装器,自动写入各 Agent 的 MCP 配置:
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
homegraph install
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
#### 支持的 Agent 与 `--target` 取值
|
|
53
|
-
|
|
54
|
-
| Agent | `--target` |
|
|
55
|
-
|-------|------------|
|
|
56
|
-
| Claude Code | `claude` |
|
|
57
|
-
| Cursor | `cursor` |
|
|
58
|
-
| Codex CLI | `codex` |
|
|
59
|
-
| opencode | `opencode` |
|
|
60
|
-
| DevEco Code | `deveco` |
|
|
61
|
-
| CodeBuddy | `codebuddy` |
|
|
62
|
-
| Hermes Agent | `hermes` |
|
|
63
|
-
| Gemini CLI | `gemini` |
|
|
64
|
-
| Antigravity IDE | `antigravity` |
|
|
65
|
-
| Kiro | `kiro` |
|
|
66
|
-
|
|
67
|
-
`--target` 还支持特殊取值:
|
|
68
|
-
|
|
69
|
-
| 取值 | 说明 |
|
|
70
|
-
|------|------|
|
|
71
|
-
| `auto` | 自动检测本机已安装的 Agent(`--yes` 默认值) |
|
|
72
|
-
| `all` | 写入全部 Agent |
|
|
73
|
-
| `none` | 不写入任何 Agent 配置 |
|
|
74
|
-
|
|
75
|
-
安装位置 `--location`:
|
|
76
|
-
|
|
77
|
-
- `global` — 写入用户目录,对所有项目生效(`--yes` 默认值)
|
|
78
|
-
- `local` — 仅写入当前项目目录
|
|
79
|
-
|
|
80
|
-
> Codex CLI、Hermes Agent、Antigravity IDE **仅支持** `--location=global`;选 `local` 时会被跳过。
|
|
81
|
-
|
|
82
|
-
#### 非交互式示例
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
# 自动检测已安装 Agent 并全局安装
|
|
86
|
-
homegraph install --yes
|
|
87
|
-
|
|
88
|
-
# 同时为 Cursor 和 DevEco Code 写入全局 MCP 配置
|
|
89
|
-
homegraph install --target=cursor,deveco --location=global --yes
|
|
90
|
-
|
|
91
|
-
# 单个 Agent
|
|
92
|
-
homegraph install --target=claude --location=global --yes # Claude Code
|
|
93
|
-
homegraph install --target=cursor --location=global --yes # Cursor
|
|
94
|
-
homegraph install --target=codex --location=global --yes # Codex CLI
|
|
95
|
-
homegraph install --target=opencode --location=global --yes # opencode
|
|
96
|
-
homegraph install --target=deveco --location=global --yes # DevEco Code
|
|
97
|
-
homegraph install --target=codebuddy --location=global --yes # CodeBuddy
|
|
98
|
-
homegraph install --target=hermes --location=global --yes # Hermes Agent
|
|
99
|
-
homegraph install --target=gemini --location=global --yes # Gemini CLI
|
|
100
|
-
homegraph install --target=antigravity --location=global --yes # Antigravity IDE
|
|
101
|
-
homegraph install --target=kiro --location=global --yes # Kiro
|
|
102
|
-
|
|
103
|
-
# 写入全部 Agent(全局)
|
|
104
|
-
homegraph install --target=all --location=global --yes
|
|
105
|
-
|
|
106
|
-
# 项目级安装(仅对当前项目生效,如 ./.cursor/mcp.json)
|
|
107
|
-
homegraph install --target=cursor --location=local --yes
|
|
108
|
-
homegraph install --target=claude,cursor --location=local --yes
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
安装完成后**重启对应 Agent**,使 MCP 配置生效。
|
|
112
|
-
|
|
113
|
-
### 3. 初始化项目
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
cd your-project
|
|
117
|
-
homegraph init -i
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
- `homegraph init`:仅创建 `.homegraph/` 索引目录
|
|
121
|
-
- `homegraph init -i`:创建目录并立即建立索引(推荐)
|
|
122
|
-
|
|
123
|
-
索引建立后,Agent 可通过 MCP 工具查询符号、调用链、影响范围等。
|
|
124
|
-
|
|
125
|
-
### 卸载
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
homegraph uninstall # 从各 Agent 移除 MCP 配置
|
|
129
|
-
homegraph uninit # 删除当前项目的 .homegraph/ 索引
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## 常用命令
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
homegraph install
|
|
138
|
-
homegraph init -i [path]
|
|
139
|
-
homegraph index [path]
|
|
140
|
-
homegraph sync [path]
|
|
141
|
-
homegraph status [path]
|
|
142
|
-
homegraph query <关键词>
|
|
143
|
-
homegraph
|
|
144
|
-
homegraph
|
|
145
|
-
homegraph
|
|
146
|
-
homegraph
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
Agent
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
|
176
|
-
|
|
177
|
-
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
1
|
+
# HomeGraph
|
|
2
|
+
|
|
3
|
+
本地代码知识图谱工具,面向 AI 编程助手(Claude Code、Cursor、Codex 等)提供 MCP 服务。
|
|
4
|
+
|
|
5
|
+
在开源知识图谱能力之上,**HomeGraph 新增了对 ArkTS(HarmonyOS)的支持**,通过 [arkanalyzer](https://www.npmjs.com/package/arkanalyzer) 解析 `.ets` / `.ts` 工程中的符号、调用关系与模块结构。
|
|
6
|
+
|
|
7
|
+
数据全部保存在本机 `.homegraph/` 目录,不上传云端。
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/homegraph)
|
|
10
|
+
[](https://opensource.org/licenses/MIT)
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 快速开始
|
|
15
|
+
|
|
16
|
+
### 1. 安装 CLI
|
|
17
|
+
|
|
18
|
+
需要 **Node.js 22.5+**(推荐 22 LTS 或 24)。HomeGraph 使用 Node 内置的 `node:sqlite`,22.5 以下无法运行。
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install -g homegraph
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
若在 Linux/WSL 遇到 `EACCES` 权限错误,可任选其一:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# 临时
|
|
28
|
+
sudo npm install -g homegraph
|
|
29
|
+
|
|
30
|
+
# 或把全局目录改到用户家目录(推荐)
|
|
31
|
+
mkdir -p ~/.npm-global
|
|
32
|
+
npm config set prefix ~/.npm-global
|
|
33
|
+
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
|
|
34
|
+
source ~/.bashrc
|
|
35
|
+
npm install -g homegraph
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
验证:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
homegraph --version
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 2. 接入 AI 助手
|
|
45
|
+
|
|
46
|
+
在新终端中运行交互式安装器,自动写入各 Agent 的 MCP 配置:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
homegraph install
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### 支持的 Agent 与 `--target` 取值
|
|
53
|
+
|
|
54
|
+
| Agent | `--target` |
|
|
55
|
+
|-------|------------|
|
|
56
|
+
| Claude Code | `claude` |
|
|
57
|
+
| Cursor | `cursor` |
|
|
58
|
+
| Codex CLI | `codex` |
|
|
59
|
+
| opencode | `opencode` |
|
|
60
|
+
| DevEco Code | `deveco` |
|
|
61
|
+
| CodeBuddy | `codebuddy` |
|
|
62
|
+
| Hermes Agent | `hermes` |
|
|
63
|
+
| Gemini CLI | `gemini` |
|
|
64
|
+
| Antigravity IDE | `antigravity` |
|
|
65
|
+
| Kiro | `kiro` |
|
|
66
|
+
|
|
67
|
+
`--target` 还支持特殊取值:
|
|
68
|
+
|
|
69
|
+
| 取值 | 说明 |
|
|
70
|
+
|------|------|
|
|
71
|
+
| `auto` | 自动检测本机已安装的 Agent(`--yes` 默认值) |
|
|
72
|
+
| `all` | 写入全部 Agent |
|
|
73
|
+
| `none` | 不写入任何 Agent 配置 |
|
|
74
|
+
|
|
75
|
+
安装位置 `--location`:
|
|
76
|
+
|
|
77
|
+
- `global` — 写入用户目录,对所有项目生效(`--yes` 默认值)
|
|
78
|
+
- `local` — 仅写入当前项目目录
|
|
79
|
+
|
|
80
|
+
> Codex CLI、Hermes Agent、Antigravity IDE **仅支持** `--location=global`;选 `local` 时会被跳过。
|
|
81
|
+
|
|
82
|
+
#### 非交互式示例
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# 自动检测已安装 Agent 并全局安装
|
|
86
|
+
homegraph install --yes
|
|
87
|
+
|
|
88
|
+
# 同时为 Cursor 和 DevEco Code 写入全局 MCP 配置
|
|
89
|
+
homegraph install --target=cursor,deveco --location=global --yes
|
|
90
|
+
|
|
91
|
+
# 单个 Agent
|
|
92
|
+
homegraph install --target=claude --location=global --yes # Claude Code
|
|
93
|
+
homegraph install --target=cursor --location=global --yes # Cursor
|
|
94
|
+
homegraph install --target=codex --location=global --yes # Codex CLI
|
|
95
|
+
homegraph install --target=opencode --location=global --yes # opencode
|
|
96
|
+
homegraph install --target=deveco --location=global --yes # DevEco Code
|
|
97
|
+
homegraph install --target=codebuddy --location=global --yes # CodeBuddy
|
|
98
|
+
homegraph install --target=hermes --location=global --yes # Hermes Agent
|
|
99
|
+
homegraph install --target=gemini --location=global --yes # Gemini CLI
|
|
100
|
+
homegraph install --target=antigravity --location=global --yes # Antigravity IDE
|
|
101
|
+
homegraph install --target=kiro --location=global --yes # Kiro
|
|
102
|
+
|
|
103
|
+
# 写入全部 Agent(全局)
|
|
104
|
+
homegraph install --target=all --location=global --yes
|
|
105
|
+
|
|
106
|
+
# 项目级安装(仅对当前项目生效,如 ./.cursor/mcp.json)
|
|
107
|
+
homegraph install --target=cursor --location=local --yes
|
|
108
|
+
homegraph install --target=claude,cursor --location=local --yes
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
安装完成后**重启对应 Agent**,使 MCP 配置生效。
|
|
112
|
+
|
|
113
|
+
### 3. 初始化项目
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
cd your-project
|
|
117
|
+
homegraph init -i
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
- `homegraph init`:仅创建 `.homegraph/` 索引目录
|
|
121
|
+
- `homegraph init -i`:创建目录并立即建立索引(推荐)
|
|
122
|
+
|
|
123
|
+
索引建立后,Agent 可通过 MCP 工具查询符号、调用链、影响范围等。
|
|
124
|
+
|
|
125
|
+
### 卸载
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
homegraph uninstall # 从各 Agent 移除 MCP 配置
|
|
129
|
+
homegraph uninit # 删除当前项目的 .homegraph/ 索引
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 常用命令
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
homegraph install # 配置 AI 助手
|
|
138
|
+
homegraph init -i [path] # 初始化并索引项目
|
|
139
|
+
homegraph index [path] # 全量索引(--force 强制重建)
|
|
140
|
+
homegraph sync [path] # 增量同步变更
|
|
141
|
+
homegraph status [path] # 查看索引状态
|
|
142
|
+
homegraph query <关键词> # 搜索符号
|
|
143
|
+
homegraph explore <查询> # 探索区域(与 MCP homegraph_explore 相同输出)
|
|
144
|
+
homegraph node <符号或文件> # 读取符号/文件(与 MCP homegraph_node 相同输出)
|
|
145
|
+
homegraph files # 已索引文件树
|
|
146
|
+
homegraph callers <符号> # 谁调用了它
|
|
147
|
+
homegraph callees <符号> # 它调用了谁
|
|
148
|
+
homegraph impact <符号> # 修改该符号的影响范围
|
|
149
|
+
homegraph affected [files...] # 根据变更文件查找受影响的测试(支持 --stdin)
|
|
150
|
+
homegraph spec mine # 从 Git 历史挖掘规格知识图谱(Commit4Spec)
|
|
151
|
+
homegraph spec match <文本> # 搜索相似历史规格
|
|
152
|
+
homegraph spec evolve install # 安装 post-commit 钩子,提交后自动演化规格
|
|
153
|
+
homegraph serve --mcp # 启动 MCP 服务(一般由 Agent 自动拉起)
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
`explore` / `node` 等命令与同名 MCP 工具共享同一套输出,适合没有 MCP 的子 Agent 或脚本直接调用。
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## MCP 工具
|
|
161
|
+
|
|
162
|
+
Agent 侧工具名前缀为 `homegraph_`。
|
|
163
|
+
|
|
164
|
+
**暴露规则:** 默认注册全部工具。索引文件数 **少于 500** 的小项目会自动收缩为三个核心工具(`explore` / `search` / `node`)。可通过环境变量 `HOMEGRAPH_MCP_TOOLS`(逗号分隔短名,如 `explore,node`)自定义暴露列表。
|
|
165
|
+
|
|
166
|
+
**跨项目查询:** 所有工具均支持可选参数 `projectPath`(绝对路径),用于在 monorepo 中查询子项目,或当 MCP 服务器根目录没有索引时指定目标项目。
|
|
167
|
+
|
|
168
|
+
| 工具 | 用途 |
|
|
169
|
+
|------|------|
|
|
170
|
+
| `homegraph_explore` | **主工具**:一次调用返回相关符号的完整源码、调用路径与影响范围;支持自然语言问题或符号/文件名列表 |
|
|
171
|
+
| `homegraph_search` | 按名称快速搜索符号(仅返回位置,不含源码) |
|
|
172
|
+
| `homegraph_node` | 读取单个符号或整个文件的源码(带行号)及调用关系;可替代 Read 读文件 |
|
|
173
|
+
| `homegraph_callers` / `homegraph_callees` | 查看调用方 / 被调用方 |
|
|
174
|
+
| `homegraph_impact` | 变更影响分析(重构前使用) |
|
|
175
|
+
| `homegraph_files` | 已索引的文件树(支持 glob 过滤、按语言分组) |
|
|
176
|
+
| `homegraph_status` | 索引健康状态(调试用) |
|
|
177
|
+
| `homegraph_spec_match` | 将新需求描述与 Commit4Spec 规格知识图谱做全文匹配,返回相似历史规格及关联提交与代码片段 |
|
|
178
|
+
|
|
179
|
+
### Commit4Spec(规格知识图谱)
|
|
180
|
+
|
|
181
|
+
`homegraph_spec_match` 与 `homegraph spec` 子命令基于 Commit4Spec:从 Git 历史中的 `.spec` 目录反向挖掘规格、提交与代码片段,存入 `.homegraph/commit4spec/commit4spec.db`。典型流程:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
homegraph spec mine # 首次挖掘
|
|
185
|
+
homegraph spec match "用户登录" # CLI 侧搜索(与 MCP spec_match 相同能力)
|
|
186
|
+
homegraph spec evolve install # 可选:每次 commit 后自动更新规格图谱
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 支持的语言
|
|
192
|
+
|
|
193
|
+
继承上游多语言 tree-sitter 解析,包括但不限于:
|
|
194
|
+
|
|
195
|
+
TypeScript / JavaScript、Python、Go、Rust、Java、C#、PHP、Ruby、C / C++、Objective-C、Swift、Kotlin、Scala、Dart、Lua、Luau、R、Svelte、Vue、Astro、Liquid、Razor、Pascal / Delphi 等。
|
|
196
|
+
|
|
197
|
+
**HomeGraph 新增:**
|
|
198
|
+
|
|
199
|
+
| 语言 | 扩展名 | 说明 |
|
|
200
|
+
|------|--------|------|
|
|
201
|
+
| **ArkTS** | `.ets` 等 | 基于 arkanalyzer,支持 HarmonyOS 工程的类、方法、导入与调用关系提取 |
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 从源码构建
|
|
206
|
+
|
|
207
|
+
适用于开发或二次修改:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
git clone <your-repo-url>
|
|
211
|
+
cd homegraph # 仓库目录名可仍为 homegraph
|
|
212
|
+
npm install
|
|
213
|
+
npm run build
|
|
214
|
+
npm run cli -- --help # 或直接:node dist/bin/homegraph.js --help
|
|
215
|
+
npm test # 运行测试
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
本地调试 CLI:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
npm run cli
|
|
222
|
+
# 等价于 npm run build && node dist/bin/homegraph.js
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 手动配置 MCP(可选)
|
|
228
|
+
|
|
229
|
+
以 Claude Code 为例,在 `~/.claude.json` 中添加:
|
|
230
|
+
|
|
231
|
+
```json
|
|
232
|
+
{
|
|
233
|
+
"mcpServers": {
|
|
234
|
+
"homegraph": {
|
|
235
|
+
"type": "stdio",
|
|
236
|
+
"command": "homegraph",
|
|
237
|
+
"args": ["serve", "--mcp"]
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Cursor 等项目级配置写入 `./.cursor/mcp.json`,格式相同。推荐使用 `homegraph install` 自动完成。
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## 上游同步
|
|
248
|
+
|
|
249
|
+
| 项目 | 说明 |
|
|
250
|
+
|------|------|
|
|
251
|
+
| 上游 | 持续同步 colbymchenry 开源知识图谱项目 main 分支 |
|
|
252
|
+
| 包名 / CLI | `homegraph`(npm:`npm install -g homegraph`) |
|
|
253
|
+
| 数据目录 | `.homegraph/` |
|
|
254
|
+
| 主要差异 | 新增 **ArkTS** 语言支持与相关索引逻辑 |
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## 环境要求
|
|
259
|
+
|
|
260
|
+
- Node.js **22.5+**(推荐 22 LTS 或 24;使用 Node 内置 `node:sqlite`)
|
|
261
|
+
- 首次索引时会对项目源码做 AST 解析,大型仓库首次 `init -i` 可能需要数分钟
|
|
262
|
+
- WSL2 下若项目位于 Windows 盘符(`/mnt/c` 等)且 MCP 连接不稳定,可设置 `HOMEGRAPH_NO_DAEMON=1` 跳过共享后台服务,每个会话独立运行
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## 许可证
|
|
267
|
+
|
|
268
|
+
MIT
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a standalone OHOS API symbol database from an SDK `ets` tree.
|
|
3
|
+
*/
|
|
4
|
+
import type { IndexProgress, IndexResult } from '../extraction';
|
|
5
|
+
export interface OhosApiIndexOptions {
|
|
6
|
+
sdkHome: string;
|
|
7
|
+
version: string;
|
|
8
|
+
outputPath?: string;
|
|
9
|
+
onProgress?: (progress: IndexProgress) => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Index OpenHarmony (and optional HMS) SDK API declarations into a SQLite db.
|
|
13
|
+
*/
|
|
14
|
+
export declare function indexOhosApiDb(options: OhosApiIndexOptions): Promise<IndexResult>;
|
|
15
|
+
//# sourceMappingURL=ohos-api-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ohos-api-index.d.ts","sourceRoot":"","sources":["../../src/arkts/ohos-api-index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAMhE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;CAChD;AAkED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAoFvF"}
|