homegraph 1.2.0 → 1.4.1
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/dist/bin/homegraph.js +3 -0
- package/dist/bin/homegraph.js.map +1 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +85 -0
- package/dist/context/index.js.map +1 -1
- package/dist/db/index.d.ts +64 -5
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +178 -14
- 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 +19 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/queries.d.ts +117 -2
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +299 -6
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +32 -1
- package/dist/db/wal-valve.d.ts +106 -0
- package/dist/db/wal-valve.d.ts.map +1 -0
- package/dist/db/wal-valve.js +208 -0
- package/dist/db/wal-valve.js.map +1 -0
- package/dist/directory.d.ts +9 -5
- package/dist/directory.d.ts.map +1 -1
- package/dist/directory.js +210 -19
- package/dist/directory.js.map +1 -1
- package/dist/extraction/cfml-extractor.d.ts +107 -0
- package/dist/extraction/cfml-extractor.d.ts.map +1 -0
- package/dist/extraction/cfml-extractor.js +494 -0
- package/dist/extraction/cfml-extractor.js.map +1 -0
- package/dist/extraction/grammars.d.ts +25 -1
- package/dist/extraction/grammars.d.ts.map +1 -1
- package/dist/extraction/grammars.js +177 -24
- package/dist/extraction/grammars.js.map +1 -1
- package/dist/extraction/index.d.ts +43 -4
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +308 -5
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/languages/c-cpp.d.ts +42 -0
- package/dist/extraction/languages/c-cpp.d.ts.map +1 -1
- package/dist/extraction/languages/c-cpp.js +369 -4
- package/dist/extraction/languages/c-cpp.js.map +1 -1
- package/dist/extraction/languages/cfquery.d.ts +12 -0
- package/dist/extraction/languages/cfquery.d.ts.map +1 -0
- package/dist/extraction/languages/cfquery.js +28 -0
- package/dist/extraction/languages/cfquery.js.map +1 -0
- package/dist/extraction/languages/cfscript.d.ts +3 -0
- package/dist/extraction/languages/cfscript.d.ts.map +1 -0
- package/dist/extraction/languages/cfscript.js +73 -0
- package/dist/extraction/languages/cfscript.js.map +1 -0
- package/dist/extraction/languages/cobol.d.ts +33 -0
- package/dist/extraction/languages/cobol.d.ts.map +1 -0
- package/dist/extraction/languages/cobol.js +499 -0
- package/dist/extraction/languages/cobol.js.map +1 -0
- package/dist/extraction/languages/erlang.d.ts +3 -0
- package/dist/extraction/languages/erlang.d.ts.map +1 -0
- package/dist/extraction/languages/erlang.js +350 -0
- package/dist/extraction/languages/erlang.js.map +1 -0
- package/dist/extraction/languages/index.d.ts.map +1 -1
- package/dist/extraction/languages/index.js +16 -0
- package/dist/extraction/languages/index.js.map +1 -1
- package/dist/extraction/languages/nix.d.ts +3 -0
- package/dist/extraction/languages/nix.d.ts.map +1 -0
- package/dist/extraction/languages/nix.js +294 -0
- package/dist/extraction/languages/nix.js.map +1 -0
- package/dist/extraction/languages/solidity.d.ts +3 -0
- package/dist/extraction/languages/solidity.d.ts.map +1 -0
- package/dist/extraction/languages/solidity.js +293 -0
- package/dist/extraction/languages/solidity.js.map +1 -0
- package/dist/extraction/languages/terraform.d.ts +3 -0
- package/dist/extraction/languages/terraform.d.ts.map +1 -0
- package/dist/extraction/languages/terraform.js +641 -0
- package/dist/extraction/languages/terraform.js.map +1 -0
- package/dist/extraction/languages/vbnet.d.ts +11 -0
- package/dist/extraction/languages/vbnet.d.ts.map +1 -0
- package/dist/extraction/languages/vbnet.js +141 -0
- package/dist/extraction/languages/vbnet.js.map +1 -0
- package/dist/extraction/mybatis-extractor.d.ts +30 -10
- package/dist/extraction/mybatis-extractor.d.ts.map +1 -1
- package/dist/extraction/mybatis-extractor.js +140 -38
- package/dist/extraction/mybatis-extractor.js.map +1 -1
- package/dist/extraction/parse-pool.d.ts +27 -1
- package/dist/extraction/parse-pool.d.ts.map +1 -1
- package/dist/extraction/parse-pool.js +75 -7
- package/dist/extraction/parse-pool.js.map +1 -1
- package/dist/extraction/parse-worker.js +9 -2
- package/dist/extraction/parse-worker.js.map +1 -1
- package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
- package/dist/extraction/tree-sitter-helpers.js +1 -0
- package/dist/extraction/tree-sitter-helpers.js.map +1 -1
- package/dist/extraction/tree-sitter-types.d.ts +3 -1
- package/dist/extraction/tree-sitter-types.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.d.ts +38 -0
- package/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.js +754 -10
- package/dist/extraction/tree-sitter.js.map +1 -1
- package/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
- package/dist/graph/traversal.d.ts.map +1 -1
- package/dist/graph/traversal.js +1 -1
- package/dist/graph/traversal.js.map +1 -1
- package/dist/index.d.ts +60 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +348 -5
- package/dist/index.js.map +1 -1
- package/dist/installer/index.d.ts +42 -0
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +97 -2
- package/dist/installer/index.js.map +1 -1
- package/dist/mcp/daemon.d.ts +25 -3
- package/dist/mcp/daemon.d.ts.map +1 -1
- package/dist/mcp/daemon.js +62 -8
- package/dist/mcp/daemon.js.map +1 -1
- package/dist/mcp/dynamic-boundaries.d.ts.map +1 -1
- package/dist/mcp/dynamic-boundaries.js +2 -1
- package/dist/mcp/dynamic-boundaries.js.map +1 -1
- package/dist/mcp/early-ppid.d.ts +26 -0
- package/dist/mcp/early-ppid.d.ts.map +1 -0
- package/dist/mcp/early-ppid.js +29 -0
- package/dist/mcp/early-ppid.js.map +1 -0
- package/dist/mcp/engine.d.ts +4 -5
- package/dist/mcp/engine.d.ts.map +1 -1
- package/dist/mcp/engine.js +27 -1
- package/dist/mcp/engine.js.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +41 -6
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/liveness-watchdog.d.ts +18 -1
- package/dist/mcp/liveness-watchdog.d.ts.map +1 -1
- package/dist/mcp/liveness-watchdog.js +73 -13
- package/dist/mcp/liveness-watchdog.js.map +1 -1
- package/dist/mcp/memory-budget.d.ts +30 -0
- package/dist/mcp/memory-budget.d.ts.map +1 -0
- package/dist/mcp/memory-budget.js +123 -0
- package/dist/mcp/memory-budget.js.map +1 -0
- package/dist/mcp/proxy.d.ts.map +1 -1
- package/dist/mcp/proxy.js +88 -4
- package/dist/mcp/proxy.js.map +1 -1
- package/dist/mcp/query-cache.d.ts +35 -4
- package/dist/mcp/query-cache.d.ts.map +1 -1
- package/dist/mcp/query-cache.js +89 -19
- package/dist/mcp/query-cache.js.map +1 -1
- package/dist/mcp/query-pool.d.ts +46 -12
- package/dist/mcp/query-pool.d.ts.map +1 -1
- package/dist/mcp/query-pool.js +100 -23
- package/dist/mcp/query-pool.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +4 -27
- package/dist/mcp/server-instructions.d.ts.map +1 -1
- package/dist/mcp/server-instructions.js +39 -84
- package/dist/mcp/server-instructions.js.map +1 -1
- package/dist/mcp/session.d.ts +14 -0
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +28 -1
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/startup-handshake.d.ts +44 -0
- package/dist/mcp/startup-handshake.d.ts.map +1 -0
- package/dist/mcp/startup-handshake.js +73 -0
- package/dist/mcp/startup-handshake.js.map +1 -0
- package/dist/mcp/tools.d.ts +104 -4
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +2390 -191
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/transport.d.ts.map +1 -1
- package/dist/mcp/transport.js +18 -0
- package/dist/mcp/transport.js.map +1 -1
- package/dist/project-config.d.ts +38 -0
- package/dist/project-config.d.ts.map +1 -1
- package/dist/project-config.js +101 -2
- package/dist/project-config.js.map +1 -1
- package/dist/resolution/c-fnptr-synthesizer.d.ts +2 -1
- package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
- package/dist/resolution/c-fnptr-synthesizer.js +178 -146
- package/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
- package/dist/resolution/callback-synthesizer.d.ts +9 -1
- package/dist/resolution/callback-synthesizer.d.ts.map +1 -1
- package/dist/resolution/callback-synthesizer.js +1164 -176
- package/dist/resolution/callback-synthesizer.js.map +1 -1
- package/dist/resolution/frameworks/cics.d.ts +20 -0
- package/dist/resolution/frameworks/cics.d.ts.map +1 -0
- package/dist/resolution/frameworks/cics.js +90 -0
- package/dist/resolution/frameworks/cics.js.map +1 -0
- package/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/dist/resolution/frameworks/index.js +3 -0
- package/dist/resolution/frameworks/index.js.map +1 -1
- package/dist/resolution/frameworks/java.d.ts.map +1 -1
- package/dist/resolution/frameworks/java.js +14 -6
- package/dist/resolution/frameworks/java.js.map +1 -1
- package/dist/resolution/frameworks/terraform.d.ts +38 -0
- package/dist/resolution/frameworks/terraform.d.ts.map +1 -0
- package/dist/resolution/frameworks/terraform.js +277 -0
- package/dist/resolution/frameworks/terraform.js.map +1 -0
- package/dist/resolution/goframe-synthesizer.d.ts +2 -1
- package/dist/resolution/goframe-synthesizer.d.ts.map +1 -1
- package/dist/resolution/goframe-synthesizer.js +8 -3
- package/dist/resolution/goframe-synthesizer.js.map +1 -1
- package/dist/resolution/import-resolver.d.ts +7 -0
- package/dist/resolution/import-resolver.d.ts.map +1 -1
- package/dist/resolution/import-resolver.js +129 -4
- package/dist/resolution/import-resolver.js.map +1 -1
- package/dist/resolution/index.d.ts +60 -7
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +430 -80
- package/dist/resolution/index.js.map +1 -1
- package/dist/resolution/name-matcher.d.ts +0 -3
- package/dist/resolution/name-matcher.d.ts.map +1 -1
- package/dist/resolution/name-matcher.js +354 -33
- package/dist/resolution/name-matcher.js.map +1 -1
- package/dist/resolution/strip-comments.d.ts +1 -1
- package/dist/resolution/strip-comments.d.ts.map +1 -1
- package/dist/resolution/strip-comments.js +49 -0
- package/dist/resolution/strip-comments.js.map +1 -1
- package/dist/resolution/types.d.ts +29 -0
- package/dist/resolution/types.d.ts.map +1 -1
- package/dist/resolution/workspace-packages.d.ts +10 -0
- package/dist/resolution/workspace-packages.d.ts.map +1 -1
- package/dist/resolution/workspace-packages.js +142 -4
- package/dist/resolution/workspace-packages.js.map +1 -1
- package/dist/search/identifier-segments.d.ts +60 -0
- package/dist/search/identifier-segments.d.ts.map +1 -0
- package/dist/search/identifier-segments.js +176 -0
- package/dist/search/identifier-segments.js.map +1 -0
- package/dist/search/query-utils.d.ts +201 -0
- package/dist/search/query-utils.d.ts.map +1 -1
- package/dist/search/query-utils.js +919 -2
- package/dist/search/query-utils.js.map +1 -1
- package/dist/sync/git-hooks.d.ts.map +1 -1
- package/dist/sync/git-hooks.js +2 -0
- package/dist/sync/git-hooks.js.map +1 -1
- package/dist/sync/watcher.d.ts +10 -5
- package/dist/sync/watcher.d.ts.map +1 -1
- package/dist/sync/watcher.js +51 -14
- package/dist/sync/watcher.js.map +1 -1
- package/dist/sync/worktree.d.ts.map +1 -1
- package/dist/sync/worktree.js +5 -0
- package/dist/sync/worktree.js.map +1 -1
- package/dist/types.d.ts +19 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -1
- package/dist/upgrade/index.d.ts +32 -0
- package/dist/upgrade/index.d.ts.map +1 -1
- package/dist/upgrade/index.js +162 -14
- package/dist/upgrade/index.js.map +1 -1
- package/dist/upgrade/remove-binary.d.ts +87 -0
- package/dist/upgrade/remove-binary.d.ts.map +1 -0
- package/dist/upgrade/remove-binary.js +289 -0
- package/dist/upgrade/remove-binary.js.map +1 -0
- package/dist/upgrade/update-check.d.ts +92 -0
- package/dist/upgrade/update-check.d.ts.map +1 -0
- package/dist/upgrade/update-check.js +258 -0
- package/dist/upgrade/update-check.js.map +1 -0
- package/package.json +2 -2
- package/scripts/agent-eval/run-all.sh +6 -0
- package/scripts/build-bundle.sh +5 -0
- package/scripts/npm-shim.js +8 -1
- 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/data/agents.json +0 -109
- package/scripts/exp_boundary_eval/data/experiments.json +0 -140
- package/scripts/qa_eval/README.md +0 -407
- package/scripts/qa_eval/_test_deveco_probe.py +0 -41
- package/scripts/qa_eval/agent_runner.py +0 -526
- package/scripts/qa_eval/data/.gitignore +0 -4
- package/scripts/qa_eval/data/test-set.jsonl +0 -2
- package/scripts/qa_eval/eval_metrics.py +0 -274
- package/scripts/qa_eval/external_agent.py +0 -976
- package/scripts/qa_eval/llm_config.py +0 -92
- package/scripts/qa_eval/memory_monitor.py +0 -132
- package/scripts/qa_eval/my_answer_accuracy.py +0 -187
- package/scripts/qa_eval/requirements.txt +0 -2
- package/scripts/qa_eval/run_pipeline.py +0 -804
- package/scripts/qa_eval/stats_efficiency.py +0 -279
- package/scripts/qa_eval/stats_scores.py +0 -207
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homegraph",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Supercharge AI coding agents with semantic code intelligence
|
|
3
|
+
"version": "1.4.1",
|
|
4
|
+
"description": "Supercharge AI coding agents with semantic code intelligence \u2014 surgical context, fewer tool calls, faster answers. 100% local.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"bin": {
|
|
@@ -19,6 +19,12 @@ OUT="${AGENT_EVAL_OUT:-/tmp/agent-eval}"
|
|
|
19
19
|
HARNESS="$(cd "$(dirname "$0")" && pwd)"
|
|
20
20
|
mkdir -p "$OUT"
|
|
21
21
|
|
|
22
|
+
# Neutralize any ambient HomeGraph prompt-hook (~/.claude) in BOTH arms:
|
|
23
|
+
# the hook injects homegraph context into every prompt, which contaminates
|
|
24
|
+
# the without-arm (free structural context) and double-counts the with-arm.
|
|
25
|
+
# The A/B's only variable must be the MCP server wired below.
|
|
26
|
+
export HOMEGRAPH_NO_PROMPT_HOOK=1
|
|
27
|
+
|
|
22
28
|
[ -n "$CG_BIN" ] || { echo "no homegraph binary on PATH (set CG_BIN)"; exit 1; }
|
|
23
29
|
[ -d "$REPO/.homegraph" ] || { echo "no .homegraph index at $REPO — index it first"; exit 1; }
|
|
24
30
|
case "$MODE" in headless|tmux|all) ;; *) echo "mode must be headless|tmux|all (got '$MODE')"; exit 1;; esac
|
package/scripts/build-bundle.sh
CHANGED
|
@@ -98,6 +98,11 @@ while [ -L "$SELF" ]; do
|
|
|
98
98
|
esac
|
|
99
99
|
done
|
|
100
100
|
DIR="$(cd "$(dirname "$SELF")/.." && pwd)"
|
|
101
|
+
# Thread the MCP host's pid to the server's orphan watchdog (issue #1185).
|
|
102
|
+
# $PPID is our parent — the host itself when it launched this script directly;
|
|
103
|
+
# an already-threaded value (the npm shim sets the true host pid) wins.
|
|
104
|
+
HOMEGRAPH_HOST_PPID="${HOMEGRAPH_HOST_PPID:-$PPID}"
|
|
105
|
+
export HOMEGRAPH_HOST_PPID
|
|
101
106
|
# --liftoff-only: avoid the V8 turboshaft WASM Zone OOM (issues #293/#298).
|
|
102
107
|
exec "$DIR/node" --liftoff-only "$DIR/lib/dist/bin/homegraph.js" "$@"
|
|
103
108
|
LAUNCH
|
package/scripts/npm-shim.js
CHANGED
|
@@ -45,7 +45,14 @@ async function main() {
|
|
|
45
45
|
// Happy path: the npm-installed optional dependency. Fall back to a download
|
|
46
46
|
// when the registry didn't deliver it.
|
|
47
47
|
var resolved = resolveInstalledBundle() || (await selfHealBundle());
|
|
48
|
-
|
|
48
|
+
// Thread the MCP host's pid (our parent) down to the bundled server so its
|
|
49
|
+
// orphan watchdog can poll the host directly. Without this, the server can
|
|
50
|
+
// only watch THIS shim — and a shim killed during the server's first ~100ms
|
|
51
|
+
// of startup used to leave the server orphaned forever (issue #1185). An
|
|
52
|
+
// already-set value (an outer launcher) wins.
|
|
53
|
+
var env = Object.assign({}, process.env);
|
|
54
|
+
if (!env.HOMEGRAPH_HOST_PPID) env.HOMEGRAPH_HOST_PPID = String(process.ppid);
|
|
55
|
+
var res = childProcess.spawnSync(resolved.command, resolved.args, { stdio: 'inherit', windowsHide: true, env: env });
|
|
49
56
|
if (res.error) {
|
|
50
57
|
process.stderr.write('homegraph: ' + res.error.message + '\n');
|
|
51
58
|
process.exit(1);
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"default": "claude",
|
|
3
|
-
"agents": {
|
|
4
|
-
"claude": {
|
|
5
|
-
"name": "Claude Code",
|
|
6
|
-
"binary": "claude",
|
|
7
|
-
"flags": {
|
|
8
|
-
"print": "-p",
|
|
9
|
-
"verbose": "--verbose",
|
|
10
|
-
"output_format": ["--output-format", "stream-json"],
|
|
11
|
-
"session": ["--session-id"],
|
|
12
|
-
"resume": ["--resume"],
|
|
13
|
-
"max_turns": ["--max-turns"],
|
|
14
|
-
"skip_permissions": ["--dangerously-skip-permissions"]
|
|
15
|
-
},
|
|
16
|
-
"parser": "claude_stream_json",
|
|
17
|
-
"note": "Claude Code CLI. stream-json mode requires --verbose."
|
|
18
|
-
},
|
|
19
|
-
"cursor": {
|
|
20
|
-
"name": "Cursor Agent",
|
|
21
|
-
"binary": "cursor-agent",
|
|
22
|
-
"flags": {
|
|
23
|
-
"print": "-p",
|
|
24
|
-
"output_format": ["--output-format", "stream-json"],
|
|
25
|
-
"resume": ["--resume"],
|
|
26
|
-
"continue": ["--continue"]
|
|
27
|
-
},
|
|
28
|
-
"parser": "cursor_stream_json",
|
|
29
|
-
"missing": ["session", "max_turns", "skip_permissions", "verbose"],
|
|
30
|
-
"note": "Verified 2026-06-01 with cursor-agent v2.x. No --session-id, --max-turns, or --skip-permissions flags. Uses --resume <chatId> / --continue for session persistence."
|
|
31
|
-
},
|
|
32
|
-
"codex": {
|
|
33
|
-
"name": "OpenAI Codex CLI",
|
|
34
|
-
"binary": "codex",
|
|
35
|
-
"flags": {
|
|
36
|
-
"print": "exec",
|
|
37
|
-
"verbose": "--verbose",
|
|
38
|
-
"output_format": ["--json"],
|
|
39
|
-
"session": ["--session"],
|
|
40
|
-
"resume": ["--resume"],
|
|
41
|
-
"max_turns": ["--max-turns"],
|
|
42
|
-
"skip_permissions": ["--yes"]
|
|
43
|
-
},
|
|
44
|
-
"parser": "codex_json",
|
|
45
|
-
"note": "OpenAI Codex CLI. Uses 'codex exec' for non-interactive mode. Output format is JSON with '--json' flag."
|
|
46
|
-
},
|
|
47
|
-
"opencode": {
|
|
48
|
-
"name": "OpenCode",
|
|
49
|
-
"binary": "opencode",
|
|
50
|
-
"flags": {
|
|
51
|
-
"print": "run",
|
|
52
|
-
"verbose": "--verbose",
|
|
53
|
-
"output_format": ["--format", "json"],
|
|
54
|
-
"session": ["--session-id"],
|
|
55
|
-
"resume": ["--resume"],
|
|
56
|
-
"max_turns": ["--max-turns"],
|
|
57
|
-
"skip_permissions": ["--auto-approve"]
|
|
58
|
-
},
|
|
59
|
-
"parser": "opencode_json",
|
|
60
|
-
"note": "OpenCode CLI. Uses 'opencode run' for non-interactive mode. Output format may vary — check your version."
|
|
61
|
-
},
|
|
62
|
-
"deveco": {
|
|
63
|
-
"name": "DevEco Studio AI",
|
|
64
|
-
"binary": "deveco",
|
|
65
|
-
"binary_env": "DEVECO_BIN",
|
|
66
|
-
"flags": {
|
|
67
|
-
"print": "run",
|
|
68
|
-
"output_format": ["--format", "json"],
|
|
69
|
-
"session": ["--session"],
|
|
70
|
-
"resume": ["--session"],
|
|
71
|
-
"continue": ["--continue"],
|
|
72
|
-
"skip_permissions": ["--dangerously-skip-permissions"]
|
|
73
|
-
},
|
|
74
|
-
"parser": "deveco_json",
|
|
75
|
-
"missing": ["session", "max_turns", "verbose"],
|
|
76
|
-
"note": "Verified 2026-06-01 with deveco CLI. Uses 'deveco run --format json <prompt>' for non-interactive. No --max-turns flag. --session only works for resume (existing sessions), not for creating new ones. Has --dangerously-skip-permissions."
|
|
77
|
-
},
|
|
78
|
-
"generic": {
|
|
79
|
-
"name": "Generic Agent (JSON)",
|
|
80
|
-
"binary": "agent",
|
|
81
|
-
"flags": {
|
|
82
|
-
"print": "--print",
|
|
83
|
-
"verbose": "--verbose",
|
|
84
|
-
"output_format": ["--json"],
|
|
85
|
-
"session": ["--session"],
|
|
86
|
-
"resume": ["--resume"],
|
|
87
|
-
"max_turns": ["--max-turns"],
|
|
88
|
-
"skip_permissions": ["--yes"]
|
|
89
|
-
},
|
|
90
|
-
"parser": "generic_json",
|
|
91
|
-
"note": "Generic fallback. Replace 'binary' and flags with your agent's actual CLI. The generic_json parser auto-detects event structure."
|
|
92
|
-
},
|
|
93
|
-
"text": {
|
|
94
|
-
"name": "Text-Only Agent",
|
|
95
|
-
"binary": "echo",
|
|
96
|
-
"flags": {
|
|
97
|
-
"print": "",
|
|
98
|
-
"verbose": "",
|
|
99
|
-
"output_format": [],
|
|
100
|
-
"session": [],
|
|
101
|
-
"resume": [],
|
|
102
|
-
"max_turns": [],
|
|
103
|
-
"skip_permissions": []
|
|
104
|
-
},
|
|
105
|
-
"parser": "text",
|
|
106
|
-
"note": "Fallback for agents that only produce plain text. Parses file paths from text lines heuristically."
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"meta": {
|
|
3
|
-
"version": "2.0",
|
|
4
|
-
"project": "OpenHarmony Photos",
|
|
5
|
-
"repo_url": "https://gitcode.com/openharmony/applications_photos.git",
|
|
6
|
-
"default_branch": "weekly_20260601",
|
|
7
|
-
"suite": "boundary-gear-switching"
|
|
8
|
-
},
|
|
9
|
-
"experiments": [
|
|
10
|
-
{
|
|
11
|
-
"id": "1-1",
|
|
12
|
-
"title": "零缺口任务 — 快速检索档位",
|
|
13
|
-
"category": "档位切换",
|
|
14
|
-
"type": "oneshot",
|
|
15
|
-
"max_turns": 10,
|
|
16
|
-
"prompt": "在 common/src/main/ets/default/model/common/Constants.ts 文件中,找到 GRID_GUTTER 常量的定义行,把它的值从 2 改成 4。只修改这一个文件。",
|
|
17
|
-
"target": "Constants.ts:739",
|
|
18
|
-
"trap": ".ts 扩展名而非 .ets"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"id": "1-2",
|
|
22
|
-
"title": "弱缺口任务 — 快速→中深度升级",
|
|
23
|
-
"category": "档位切换",
|
|
24
|
-
"type": "oneshot",
|
|
25
|
-
"max_turns": 30,
|
|
26
|
-
"prompt": "在 common 模块的 ThirdSelectAlbumGridBase 组件中,当前 grid 间距是硬编码引用 Constants.GRID_GUTTER。请把这个间距改成可通过构造函数参数配置的值(保留默认值 2),只修改 ThirdSelectAlbumGridBase.ets 一个文件。",
|
|
27
|
-
"target": "feature/thirdselect/.../ThirdSelectAlbumGridBase.ets",
|
|
28
|
-
"trap": "文件在 feature/thirdselect 而非 common"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"id": "1-3",
|
|
32
|
-
"title": "强缺口任务 — 中深度→深度升级",
|
|
33
|
-
"category": "档位切换",
|
|
34
|
-
"type": "oneshot",
|
|
35
|
-
"max_turns": 30,
|
|
36
|
-
"prompt": "当图片加载失败时,我想显示一个统一的占位图组件。请帮我梳理:目前图片加载失败的处理逻辑在哪些文件中?涉及哪些组件和错误状态?如果要实现统一的占位图,需要修改哪些文件?只需分析和报告,不要修改代码。",
|
|
37
|
-
"target": "ImageGridItemComponent.ets, NoPhotoComponent.ets, PhotoItem.ets, PreviewItem.ets"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"id": "2",
|
|
41
|
-
"title": "跨层调用链探索 — 图片编辑链路",
|
|
42
|
-
"category": "跨层探索",
|
|
43
|
-
"type": "oneshot",
|
|
44
|
-
"max_turns": 50,
|
|
45
|
-
"prompt": "请帮我梳理从用户点击图片编辑按钮到最终调用 C++ 滤镜引擎的完整调用链路。需要覆盖从 ArkTS UI 层到 native.ts 再到 libImageEditor.so 的所有关键函数和文件。只需要分析和报告,不要修改代码。",
|
|
46
|
-
"trap": "native.ts 仅一行 import,C++ 在 imageEditor/common/src/main/cpp/"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"id": "3-1",
|
|
50
|
-
"title": "幻觉测试 — 不存在的模块",
|
|
51
|
-
"category": "失败模式",
|
|
52
|
-
"type": "oneshot",
|
|
53
|
-
"max_turns": 20,
|
|
54
|
-
"prompt": "请帮我找到 PhotoWatermarkEngine 模块,并解释它是如何实现图片水印添加的。",
|
|
55
|
-
"trap": "PhotoWatermarkEngine 完全不存在"
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"id": "3-2",
|
|
59
|
-
"title": "遗漏测试 — 命名不直观的关键文件",
|
|
60
|
-
"category": "失败模式",
|
|
61
|
-
"type": "oneshot",
|
|
62
|
-
"max_turns": 40,
|
|
63
|
-
"prompt": "请找出所有与图片分享功能相关的文件,并解释分享流程。只需要分析和报告,不要修改代码。",
|
|
64
|
-
"trap": "KnockShareUtil.ets — 命名以 Knock 开头而非 Share"
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"id": "3-3",
|
|
68
|
-
"title": "过度探索测试 — 72 个相似 Utils 文件",
|
|
69
|
-
"category": "失败模式",
|
|
70
|
-
"type": "oneshot",
|
|
71
|
-
"max_turns": 25,
|
|
72
|
-
"prompt": "我需要一个工具函数,用于判断图片是否为竖屏(高度大于宽度)。请在项目中找一个最合适的位置(Utils 文件)添加这个函数,并实现它。",
|
|
73
|
-
"target": "common/.../utils/ImageUtil.ets",
|
|
74
|
-
"utils_count": 72
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
"id": "4-1",
|
|
78
|
-
"title": "资源配置修改 — 应用名称",
|
|
79
|
-
"category": "非代码资产",
|
|
80
|
-
"type": "oneshot",
|
|
81
|
-
"max_turns": 15,
|
|
82
|
-
"prompt": "把应用的名字从 'Gallery' 改成 '我的相册'。",
|
|
83
|
-
"target": "AppScope/resources/base/element/string.json",
|
|
84
|
-
"trap": "15+ 语言版本"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"id": "4-2",
|
|
88
|
-
"title": "权限配置添加",
|
|
89
|
-
"category": "非代码资产",
|
|
90
|
-
"type": "oneshot",
|
|
91
|
-
"max_turns": 15,
|
|
92
|
-
"prompt": "给应用添加读取存储的权限(ohos.permission.READ_IMAGEVIDEO)。",
|
|
93
|
-
"target": "product/phone/src/main/module.json5",
|
|
94
|
-
"trap": "权限已存在"
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"id": "4-3",
|
|
98
|
-
"title": "构建依赖添加",
|
|
99
|
-
"category": "非代码资产",
|
|
100
|
-
"type": "oneshot",
|
|
101
|
-
"max_turns": 25,
|
|
102
|
-
"prompt": "我需要使用一个第三方图片压缩库,请告诉我如何在这个项目中添加依赖。需要查看哪些配置文件?具体步骤是什么?只需要分析和报告,不要修改代码。",
|
|
103
|
-
"trap": "ohpm + oh-package.json5 而非 npm"
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"id": "5",
|
|
107
|
-
"title": "会话持久性与上下文衰减",
|
|
108
|
-
"category": "会话持久性",
|
|
109
|
-
"type": "session",
|
|
110
|
-
"max_turns_per_round": 25,
|
|
111
|
-
"rounds": [
|
|
112
|
-
{
|
|
113
|
-
"round": 1,
|
|
114
|
-
"title": "建立上下文",
|
|
115
|
-
"prompt": "帮我理解这个图库项目的整体架构,包括主要模块和它们的职责。只分析和报告,不修改代码。"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"round": 2,
|
|
119
|
-
"title": "添加刷新按钮",
|
|
120
|
-
"prompt": "在 PhotoGridPage.ets 组件的标题栏右侧添加一个刷新按钮(使用 SymbolGlyph 的 arrow.clockwise 图标)。只修改 PhotoGridPage.ets 一个文件。"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"round": 3,
|
|
124
|
-
"title": "刷新联动媒体库",
|
|
125
|
-
"prompt": "点击上一轮添加的刷新按钮后,重新扫描媒体库并更新照片列表。需要查看 MediaDataSource 和相关数据刷新逻辑。"
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
"round": 4,
|
|
129
|
-
"title": "修改详情页动画",
|
|
130
|
-
"prompt": "修改图片详情页的滑动动画时长为 300ms。在 PhotoSwiper.ets 中查找动画相关常量并修改。"
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
"round": 5,
|
|
134
|
-
"title": "回溯修改按钮位置",
|
|
135
|
-
"prompt": "把之前在第 2 轮添加到 PhotoGridPage 的刷新按钮移到导航栏左侧。"
|
|
136
|
-
}
|
|
137
|
-
]
|
|
138
|
-
}
|
|
139
|
-
]
|
|
140
|
-
}
|