homegraph 1.1.3 → 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/README.md +43 -18
- 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 +706 -168
- 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 +40 -1
- 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 +174 -3
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +20 -0
- package/dist/directory.d.ts +32 -0
- package/dist/directory.d.ts.map +1 -1
- package/dist/directory.js +83 -0
- 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/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/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/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 +12 -14
- package/dist/mcp/server-instructions.js.map +1 -1
- package/dist/mcp/tools.d.ts +77 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +696 -60
- 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/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 +7 -11
- package/dist/spec/config.d.ts.map +1 -1
- package/dist/spec/config.js +77 -48
- package/dist/spec/config.js.map +1 -1
- package/dist/spec/db/fragment-node.d.ts +1 -0
- package/dist/spec/db/fragment-node.d.ts.map +1 -1
- package/dist/spec/db/fragment-node.js +8 -0
- package/dist/spec/db/fragment-node.js.map +1 -1
- package/dist/spec/db/fts.d.ts +14 -0
- package/dist/spec/db/fts.d.ts.map +1 -1
- package/dist/spec/db/fts.js +43 -4
- package/dist/spec/db/fts.js.map +1 -1
- package/dist/spec/db/schema.d.ts +6 -3
- package/dist/spec/db/schema.d.ts.map +1 -1
- package/dist/spec/db/schema.js +36 -4
- package/dist/spec/db/schema.js.map +1 -1
- package/dist/spec/db/schema.sql +11 -1
- package/dist/spec/evolve/logic-checker.d.ts +2 -2
- package/dist/spec/evolve/logic-checker.d.ts.map +1 -1
- package/dist/spec/evolve/logic-checker.js +3 -27
- package/dist/spec/evolve/logic-checker.js.map +1 -1
- package/dist/spec/evolve/pipeline.d.ts +21 -19
- package/dist/spec/evolve/pipeline.d.ts.map +1 -1
- package/dist/spec/evolve/pipeline.js +284 -31
- package/dist/spec/evolve/pipeline.js.map +1 -1
- package/dist/spec/evolve/spec-rewriter.d.ts +2 -2
- package/dist/spec/evolve/spec-rewriter.d.ts.map +1 -1
- package/dist/spec/evolve/spec-rewriter.js +7 -31
- package/dist/spec/evolve/spec-rewriter.js.map +1 -1
- package/dist/spec/graph/queries.d.ts +97 -0
- package/dist/spec/graph/queries.d.ts.map +1 -1
- package/dist/spec/graph/queries.js +225 -0
- package/dist/spec/graph/queries.js.map +1 -1
- 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/git-scanner.d.ts +12 -0
- package/dist/spec/mining/git-scanner.d.ts.map +1 -1
- package/dist/spec/mining/git-scanner.js +41 -0
- package/dist/spec/mining/git-scanner.js.map +1 -1
- package/dist/spec/mining/pipeline.d.ts.map +1 -1
- package/dist/spec/mining/pipeline.js +14 -1
- package/dist/spec/mining/pipeline.js.map +1 -1
- package/dist/spec/utils.d.ts +2 -1
- package/dist/spec/utils.d.ts.map +1 -1
- package/dist/spec/utils.js +3 -1
- package/dist/spec/utils.js.map +1 -1
- 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 +3 -3
- package/scripts/agent-eval/repro-concurrent-explore.mjs +119 -0
- package/scripts/agent-eval/repro-daemon-clients.mjs +125 -0
- 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/npm-shim.js +25 -3
- package/scripts/ohos-sdk-publish.mjs +133 -0
- package/scripts/qa_eval/README.md +1 -1
- package/scripts/qa_eval/agent_runner.py +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LlmClient } from '../llm/client';
|
|
2
2
|
export interface LogicCheckResult {
|
|
3
3
|
isLogic: boolean;
|
|
4
4
|
reason: string;
|
|
@@ -8,5 +8,5 @@ export interface LogicCheckResult {
|
|
|
8
8
|
* Uses LLM to analyze the commit message and diff.
|
|
9
9
|
* If no LLM client is available, returns false.
|
|
10
10
|
*/
|
|
11
|
-
export declare function isLogicChange(commitMessage: string, commitDiff: string, client?:
|
|
11
|
+
export declare function isLogicChange(commitMessage: string, commitDiff: string, client?: LlmClient): Promise<LogicCheckResult>;
|
|
12
12
|
//# sourceMappingURL=logic-checker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic-checker.d.ts","sourceRoot":"","sources":["../../../src/spec/evolve/logic-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"logic-checker.d.ts","sourceRoot":"","sources":["../../../src/spec/evolve/logic-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAgB3B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isLogicChange = isLogicChange;
|
|
4
|
+
const prompts_1 = require("../llm/prompts");
|
|
4
5
|
const utils_1 = require("../utils");
|
|
5
6
|
/**
|
|
6
7
|
* Determine if a commit represents a business-logic change.
|
|
@@ -13,33 +14,8 @@ async function isLogicChange(commitMessage, commitDiff, client) {
|
|
|
13
14
|
}
|
|
14
15
|
// Truncate diff to 6000 chars for prompt budget
|
|
15
16
|
const truncatedDiff = (0, utils_1.truncateText)(commitDiff, 6000);
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
A business-logic change includes:
|
|
19
|
-
- Changes to algorithms, data structures, or control flow
|
|
20
|
-
- Changes to business rules, validation logic, or domain behavior
|
|
21
|
-
- Adding or removing functionality
|
|
22
|
-
- Bug fixes that change behavior
|
|
23
|
-
|
|
24
|
-
NOT business-logic changes:
|
|
25
|
-
- Whitespace, formatting, or code style changes
|
|
26
|
-
- Comment-only changes
|
|
27
|
-
- Test-only changes (adding tests without changing production code)
|
|
28
|
-
- Configuration changes that don't alter behavior
|
|
29
|
-
- Package/dependency version bumps
|
|
30
|
-
|
|
31
|
-
Respond with a JSON object:
|
|
32
|
-
{
|
|
33
|
-
"is_logic_change": true/false,
|
|
34
|
-
"reason": "Brief explanation of why this is or is not a logic change"
|
|
35
|
-
}`;
|
|
36
|
-
const userPrompt = `Analyze this commit:
|
|
37
|
-
|
|
38
|
-
Commit Message: ${commitMessage}
|
|
39
|
-
|
|
40
|
-
Diff:
|
|
41
|
-
${truncatedDiff}`;
|
|
42
|
-
const result = await client.chatJson(systemPrompt, userPrompt);
|
|
17
|
+
const userPrompt = (0, prompts_1.buildLogicCheckUserPrompt)(commitMessage, truncatedDiff);
|
|
18
|
+
const result = await client.chatJson(prompts_1.LOGIC_CHECK_SYSTEM_PROMPT, userPrompt);
|
|
43
19
|
return {
|
|
44
20
|
isLogic: result.is_logic_change === true,
|
|
45
21
|
reason: typeof result.reason === 'string' ? result.reason : '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic-checker.js","sourceRoot":"","sources":["../../../src/spec/evolve/logic-checker.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"logic-checker.js","sourceRoot":"","sources":["../../../src/spec/evolve/logic-checker.ts"],"names":[],"mappings":";;AAcA,sCAoBC;AAjCD,4CAAsF;AACtF,oCAAwC;AAOxC;;;;GAIG;AACI,KAAK,UAAU,aAAa,CACjC,aAAqB,EACrB,UAAkB,EAClB,MAAkB;IAElB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACvD,CAAC;IAED,gDAAgD;IAChD,MAAM,aAAa,GAAG,IAAA,oBAAY,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAErD,MAAM,UAAU,GAAG,IAAA,mCAAyB,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAE3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,mCAAyB,EAAE,UAAU,CAAC,CAAC;IAE5E,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,eAAe,KAAK,IAAI;QACxC,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;KAC/D,CAAC;AACJ,CAAC"}
|
|
@@ -17,24 +17,26 @@ export interface EvolveResult {
|
|
|
17
17
|
fragmentsCount: number;
|
|
18
18
|
relationsCreated: number;
|
|
19
19
|
persisted: boolean;
|
|
20
|
+
/** True when the commit was skipped because LLM is not available. */
|
|
21
|
+
skipped: boolean;
|
|
22
|
+
/** Human-readable reason for skipping, if skipped is true. */
|
|
23
|
+
skipReason?: string;
|
|
20
24
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*/
|
|
39
|
-
export declare function runEvolvePipeline(repoPath: string, db: SqliteDatabase, commitHash?: string, llmConfig?: LLMConfig): Promise<EvolveResult>;
|
|
25
|
+
export interface BatchEvolveResult {
|
|
26
|
+
/** The last evolved commit hash from meta.json (null if never evolved). */
|
|
27
|
+
fromCommit: string | null;
|
|
28
|
+
/** The commit hash that was just evolved up to (usually HEAD). */
|
|
29
|
+
toCommit: string;
|
|
30
|
+
/** Number of commits in the range (including skipped). */
|
|
31
|
+
commitsProcessed: number;
|
|
32
|
+
/** Per-commit results. */
|
|
33
|
+
perCommitResults: EvolveResult[];
|
|
34
|
+
/** Whether meta.json was updated at the end. */
|
|
35
|
+
metaUpdated: boolean;
|
|
36
|
+
/** Number of commits skipped (no LLM, did not match Path A). */
|
|
37
|
+
skippedCommits: number;
|
|
38
|
+
/** Number of commits that threw an error during evolve. */
|
|
39
|
+
failures: number;
|
|
40
|
+
}
|
|
41
|
+
export declare function runBatchEvolvePipeline(repoPath: string, db: SqliteDatabase, llmConfig?: LLMConfig): Promise<BatchEvolveResult>;
|
|
40
42
|
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/spec/evolve/pipeline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/spec/evolve/pipeline.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAkB,MAAM,WAAW,CAAC;AA6BtD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,OAAO,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA4XD,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAC;IACzB,0BAA0B;IAC1B,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,gDAAgD;IAChD,WAAW,EAAE,OAAO,CAAC;IACrB,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAoDD,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,cAAc,EAClB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,iBAAiB,CAAC,CA8B5B"}
|
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
36
|
+
exports.runBatchEvolvePipeline = runBatchEvolvePipeline;
|
|
37
37
|
/**
|
|
38
38
|
* Self-evolve pipeline orchestrator — evaluates new commits against existing
|
|
39
39
|
* specs and rewrites / deprecates them as needed.
|
|
@@ -43,6 +43,7 @@ exports.runEvolvePipeline = runEvolvePipeline;
|
|
|
43
43
|
* @module spec/evolve/pipeline
|
|
44
44
|
*/
|
|
45
45
|
const path = __importStar(require("path"));
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
46
47
|
const child_process_1 = require("child_process");
|
|
47
48
|
const config_1 = require("../config");
|
|
48
49
|
const utils_1 = require("../utils");
|
|
@@ -55,7 +56,7 @@ const git_scanner_1 = require("../mining/git-scanner");
|
|
|
55
56
|
const scope_resolver_1 = require("../mining/scope-resolver");
|
|
56
57
|
const spec_extractor_1 = require("../mining/spec-extractor");
|
|
57
58
|
const diff_parser_1 = require("../mining/diff-parser");
|
|
58
|
-
const
|
|
59
|
+
const client_1 = require("../llm/client");
|
|
59
60
|
const logic_checker_1 = require("./logic-checker");
|
|
60
61
|
const impact_locator_1 = require("./impact-locator");
|
|
61
62
|
const spec_rewriter_1 = require("./spec-rewriter");
|
|
@@ -75,14 +76,18 @@ function getSpecPathInfo(db, specStoragePath, specId) {
|
|
|
75
76
|
return { version: 0, filePath: path.join(specStoragePath, specId, 'plan.md') };
|
|
76
77
|
}
|
|
77
78
|
// =============================================================================
|
|
78
|
-
// runEvolvePipeline
|
|
79
|
+
// runEvolvePipeline (internal — only called by runBatchEvolvePipeline)
|
|
79
80
|
// =============================================================================
|
|
80
81
|
/**
|
|
81
82
|
* Run the full self-evolve pipeline for a single commit.
|
|
82
83
|
*
|
|
84
|
+
* **Internal.** Not exported — the public entry point is
|
|
85
|
+
* {@link runBatchEvolvePipeline}, which reads meta.json, initialises the
|
|
86
|
+
* schema, and calls this function for each commit in the range.
|
|
87
|
+
*
|
|
83
88
|
* Flow (ported from pipeline.py:79-289):
|
|
84
89
|
*
|
|
85
|
-
* 1. Load context (
|
|
90
|
+
* 1. Load context (commit info, diff, LLM client, config).
|
|
86
91
|
* 2. **Path A (GENERATE):** resolve scope from commit message.
|
|
87
92
|
* 3. **LLM logic check:** determine if the commit is a business-logic change.
|
|
88
93
|
* 4. **Path B (impact + rewrite):** if logic change, find affected active
|
|
@@ -90,22 +95,17 @@ function getSpecPathInfo(db, specStoragePath, specId) {
|
|
|
90
95
|
* 5. If neither Path A nor Path B produced candidates, return early.
|
|
91
96
|
* 6. Persist everything in a single DB transaction.
|
|
92
97
|
*
|
|
93
|
-
* @param repoPath
|
|
94
|
-
* @param db
|
|
95
|
-
* @param
|
|
96
|
-
* @param
|
|
98
|
+
* @param repoPath - Absolute path to the git repository.
|
|
99
|
+
* @param db - Active SQLite database handle (schema already initialised).
|
|
100
|
+
* @param specStoragePath - Path to the spec storage directory (from meta.json).
|
|
101
|
+
* @param commitHash - Commit hash to process.
|
|
102
|
+
* @param llmConfig - Optional LLM config override; falls back to spec config.
|
|
97
103
|
*/
|
|
98
|
-
async function runEvolvePipeline(repoPath, db, commitHash, llmConfig) {
|
|
104
|
+
async function runEvolvePipeline(repoPath, db, specStoragePath, commitHash, llmConfig) {
|
|
99
105
|
// ------------------------------------------------------------------
|
|
100
106
|
// 1. Context loading
|
|
101
107
|
// ------------------------------------------------------------------
|
|
102
|
-
//
|
|
103
|
-
const meta = (0, utils_1.readMeta)(repoPath);
|
|
104
|
-
if (!meta) {
|
|
105
|
-
throw new Error("No meta.json found. Run 'homegraph spec mine' first.");
|
|
106
|
-
}
|
|
107
|
-
// Init schema
|
|
108
|
-
(0, schema_1.initSpecSchema)(db);
|
|
108
|
+
// meta.json and schema already handled by runBatchEvolvePipeline
|
|
109
109
|
// Resolve commit hash
|
|
110
110
|
const resolvedHash = commitHash ||
|
|
111
111
|
(() => {
|
|
@@ -132,30 +132,58 @@ async function runEvolvePipeline(repoPath, db, commitHash, llmConfig) {
|
|
|
132
132
|
const diff = (0, git_scanner_1.getCommitDiff)(repoPath, resolvedHash);
|
|
133
133
|
// Parse diff into fragments once — reused for file paths and persistence.
|
|
134
134
|
const diffFragments = (0, diff_parser_1.analyzeCommitDiff)(repoPath, resolvedHash, diff);
|
|
135
|
-
// Load spec config and create LLM client
|
|
135
|
+
// Load spec config and optionally create LLM client.
|
|
136
|
+
// When LLM is not available we still run Path A (scope-based GENERATE).
|
|
136
137
|
const specConfig = (0, config_1.loadSpecConfig)(repoPath);
|
|
137
138
|
const resolvedLLMConfig = llmConfig || specConfig.llm;
|
|
138
|
-
const client =
|
|
139
|
+
const client = resolvedLLMConfig
|
|
140
|
+
? new client_1.OpenAiLlmClient(resolvedLLMConfig)
|
|
141
|
+
: undefined;
|
|
139
142
|
// ------------------------------------------------------------------
|
|
140
143
|
// 2. Path A (GENERATE) — commit message scope resolution
|
|
141
144
|
// ------------------------------------------------------------------
|
|
142
|
-
const pathASpecId = (0, scope_resolver_1.resolveScopeToSpec)(commitInfo.message,
|
|
145
|
+
const pathASpecId = (0, scope_resolver_1.resolveScopeToSpec)(commitInfo.message, specStoragePath, specConfig);
|
|
143
146
|
let pathASpecMetadata = null;
|
|
144
147
|
if (pathASpecId) {
|
|
145
|
-
pathASpecMetadata = (0, spec_extractor_1.extractSpecMetadata)(
|
|
148
|
+
pathASpecMetadata = (0, spec_extractor_1.extractSpecMetadata)(specStoragePath, pathASpecId, specConfig);
|
|
146
149
|
}
|
|
147
150
|
// ------------------------------------------------------------------
|
|
148
|
-
//
|
|
151
|
+
// 2.5 Early skip: Path A didn't match and no LLM client is available.
|
|
152
|
+
// Non-Path-A commits cannot be processed without LLM for logic
|
|
153
|
+
// checking and spec evaluation.
|
|
149
154
|
// ------------------------------------------------------------------
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
logicResult = await (0, logic_checker_1.isLogicChange)(commitInfo.message, diff, client);
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
(0, errors_1.logWarn)('LLM logic check failed, treating as non-logic change', {
|
|
155
|
+
if (!pathASpecId && !client) {
|
|
156
|
+
(0, errors_1.logWarn)('Skipping commit — no LLM configured and commit does not match Path A', {
|
|
156
157
|
commitHash: resolvedHash.slice(0, 7),
|
|
157
158
|
});
|
|
158
|
-
|
|
159
|
+
return {
|
|
160
|
+
commitHash: resolvedHash,
|
|
161
|
+
generateRelationCreated: false,
|
|
162
|
+
isLogicChange: false,
|
|
163
|
+
logicCheckReason: '',
|
|
164
|
+
affectedSpecCount: 0,
|
|
165
|
+
evolvedSpecs: [],
|
|
166
|
+
fragmentsCount: 0,
|
|
167
|
+
relationsCreated: 0,
|
|
168
|
+
persisted: false,
|
|
169
|
+
skipped: true,
|
|
170
|
+
skipReason: 'LLM not configured — commit message does not contain a spec scope (Path A)',
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
// ------------------------------------------------------------------
|
|
174
|
+
// 3. LLM logic check
|
|
175
|
+
// ------------------------------------------------------------------
|
|
176
|
+
let logicResult = { isLogic: false, reason: '' };
|
|
177
|
+
if (client) {
|
|
178
|
+
try {
|
|
179
|
+
logicResult = await (0, logic_checker_1.isLogicChange)(commitInfo.message, diff, client);
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
(0, errors_1.logWarn)('LLM logic check failed, treating as non-logic change', {
|
|
183
|
+
commitHash: resolvedHash.slice(0, 7),
|
|
184
|
+
});
|
|
185
|
+
logicResult = { isLogic: false, reason: 'LLM call failed' };
|
|
186
|
+
}
|
|
159
187
|
}
|
|
160
188
|
// ------------------------------------------------------------------
|
|
161
189
|
// 4. Path B (impact + rewrite) — only when the commit is a logic change
|
|
@@ -202,14 +230,15 @@ async function runEvolvePipeline(repoPath, db, commitHash, llmConfig) {
|
|
|
202
230
|
fragmentsCount: 0,
|
|
203
231
|
relationsCreated: 0,
|
|
204
232
|
persisted: false,
|
|
233
|
+
skipped: false,
|
|
205
234
|
};
|
|
206
235
|
}
|
|
207
236
|
const pendingDecisions = [];
|
|
208
237
|
for (let idx = 0; idx < pathBSpecIds.length; idx++) {
|
|
209
238
|
const specId = pathBSpecIds[idx];
|
|
210
239
|
const scheduleNextSpecs = pathBSpecIds.slice(idx + 1);
|
|
211
|
-
const { version, filePath } = getSpecPathInfo(db,
|
|
212
|
-
const decision = await (0, spec_rewriter_1.evaluateSpec)(specId,
|
|
240
|
+
const { version, filePath } = getSpecPathInfo(db, specStoragePath, specId);
|
|
241
|
+
const decision = await (0, spec_rewriter_1.evaluateSpec)(specId, specStoragePath, filePath, commitInfo.message, diff, scheduleNextSpecs, client);
|
|
213
242
|
pendingDecisions.push({ specId, decision, version, filePath });
|
|
214
243
|
}
|
|
215
244
|
// ------------------------------------------------------------------
|
|
@@ -227,6 +256,7 @@ async function runEvolvePipeline(repoPath, db, commitHash, llmConfig) {
|
|
|
227
256
|
fragmentsCount: 0,
|
|
228
257
|
relationsCreated: 0,
|
|
229
258
|
persisted: true,
|
|
259
|
+
skipped: false,
|
|
230
260
|
};
|
|
231
261
|
db.exec('BEGIN');
|
|
232
262
|
try {
|
|
@@ -262,7 +292,7 @@ async function runEvolvePipeline(repoPath, db, commitHash, llmConfig) {
|
|
|
262
292
|
for (const pending of pendingDecisions) {
|
|
263
293
|
const { specId, decision, version, filePath } = pending;
|
|
264
294
|
if (decision.action === 'UPDATE') {
|
|
265
|
-
const updateResult = (0, spec_rewriter_1.applyUpdate)(db,
|
|
295
|
+
const updateResult = (0, spec_rewriter_1.applyUpdate)(db, specStoragePath, specId, filePath, version, decision, commitInfo.hash);
|
|
266
296
|
evolvedSpecs.push({
|
|
267
297
|
specId,
|
|
268
298
|
action: 'UPDATE',
|
|
@@ -311,4 +341,227 @@ async function runEvolvePipeline(repoPath, db, commitHash, llmConfig) {
|
|
|
311
341
|
}
|
|
312
342
|
return evolveResult;
|
|
313
343
|
}
|
|
344
|
+
// =============================================================================
|
|
345
|
+
// runBatchEvolvePipeline
|
|
346
|
+
// =============================================================================
|
|
347
|
+
/**
|
|
348
|
+
* Run the self-evolve pipeline for all NEW commits since the last evolve.
|
|
349
|
+
*
|
|
350
|
+
* Reads `currentCommitID` from `meta.json` and processes every commit between
|
|
351
|
+
* that hash and `HEAD` in chronological order. Each commit is independently
|
|
352
|
+
* evolved via `runEvolvePipeline`. On full success, `meta.json` is refreshed
|
|
353
|
+
* with the new HEAD as `currentCommitID` and `updatedAt` set to now.
|
|
354
|
+
*
|
|
355
|
+
* When `currentCommitID` is missing (first evolve after an older mine, or
|
|
356
|
+
* corrupt meta), the function falls back to processing only HEAD.
|
|
357
|
+
*
|
|
358
|
+
* **Partial failure:** If any commit fails, the failing commit is logged but
|
|
359
|
+
* processing continues to the next one. `meta.json` is **only** updated when
|
|
360
|
+
* **all** commits succeed — this preserves the invariant that
|
|
361
|
+
* `currentCommitID` always points to the last *successfully* evolved commit.
|
|
362
|
+
*
|
|
363
|
+
* Edge cases:
|
|
364
|
+
* - `currentCommitID` equals HEAD → 0 new commits, `metaUpdated: false`.
|
|
365
|
+
* - `currentCommitID` is not an ancestor of HEAD (rebase / force-push) →
|
|
366
|
+
* throws an error asking the user to re-mine.
|
|
367
|
+
*/
|
|
368
|
+
const LOCK_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
|
|
369
|
+
/**
|
|
370
|
+
* Acquire a file-based advisory lock to prevent concurrent evolve runs.
|
|
371
|
+
* Returns true if the lock was acquired (or the existing lock is stale).
|
|
372
|
+
* Returns false if another evolve instance holds the lock.
|
|
373
|
+
*/
|
|
374
|
+
function acquireEvolveLock(lockFile) {
|
|
375
|
+
try {
|
|
376
|
+
if (fs.existsSync(lockFile)) {
|
|
377
|
+
const stat = fs.statSync(lockFile);
|
|
378
|
+
if (Date.now() - stat.mtimeMs > LOCK_TIMEOUT_MS) {
|
|
379
|
+
// Stale lock — previous process may have crashed
|
|
380
|
+
fs.unlinkSync(lockFile);
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
return false;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
fs.writeFileSync(lockFile, String(process.pid));
|
|
387
|
+
return true;
|
|
388
|
+
}
|
|
389
|
+
catch {
|
|
390
|
+
return false;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
async function runBatchEvolvePipeline(repoPath, db, llmConfig) {
|
|
394
|
+
const meta = (0, utils_1.readMeta)(repoPath);
|
|
395
|
+
if (!meta) {
|
|
396
|
+
throw new Error("No meta.json found. Run 'homegraph spec mine' first.");
|
|
397
|
+
}
|
|
398
|
+
// Ensure only one evolve instance runs at a time (post-commit hook may
|
|
399
|
+
// fire multiple times in quick succession).
|
|
400
|
+
const lockFile = path.join(repoPath, utils_1.SPEC_DATA_DIR, 'logs', 'evolve.lock');
|
|
401
|
+
fs.mkdirSync(path.dirname(lockFile), { recursive: true });
|
|
402
|
+
if (!acquireEvolveLock(lockFile)) {
|
|
403
|
+
(0, errors_1.logDebug)('runBatchEvolvePipeline: another evolve instance is running, skipping');
|
|
404
|
+
return {
|
|
405
|
+
fromCommit: meta.currentCommitID || null,
|
|
406
|
+
toCommit: '',
|
|
407
|
+
commitsProcessed: 0,
|
|
408
|
+
perCommitResults: [],
|
|
409
|
+
metaUpdated: false,
|
|
410
|
+
skippedCommits: 0,
|
|
411
|
+
failures: 0,
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
(0, schema_1.initSpecSchema)(db);
|
|
415
|
+
try {
|
|
416
|
+
return await runBatchEvolvePipelineImpl(repoPath, db, meta, llmConfig);
|
|
417
|
+
}
|
|
418
|
+
finally {
|
|
419
|
+
try {
|
|
420
|
+
fs.unlinkSync(lockFile);
|
|
421
|
+
}
|
|
422
|
+
catch { /* may already be deleted */ }
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Inner implementation — split out so the lock clean-up in the outer function
|
|
427
|
+
* only needs one try/finally block.
|
|
428
|
+
*/
|
|
429
|
+
async function runBatchEvolvePipelineImpl(repoPath, db, meta, llmConfig) {
|
|
430
|
+
// Resolve HEAD
|
|
431
|
+
let headHash;
|
|
432
|
+
try {
|
|
433
|
+
headHash = (0, child_process_1.execFileSync)('git', ['rev-parse', 'HEAD'], {
|
|
434
|
+
cwd: repoPath,
|
|
435
|
+
encoding: 'utf8',
|
|
436
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
437
|
+
windowsHide: true,
|
|
438
|
+
}).trim();
|
|
439
|
+
}
|
|
440
|
+
catch {
|
|
441
|
+
throw new Error('Failed to resolve HEAD. Not a valid git repository?');
|
|
442
|
+
}
|
|
443
|
+
if (!headHash) {
|
|
444
|
+
throw new Error('No commits found in repository.');
|
|
445
|
+
}
|
|
446
|
+
const lastEvolved = meta.currentCommitID || null;
|
|
447
|
+
// Fallback: no currentCommitID → process just HEAD
|
|
448
|
+
if (!lastEvolved) {
|
|
449
|
+
(0, errors_1.logDebug)('runBatchEvolvePipeline: no currentCommitID in meta.json — processing HEAD only', {
|
|
450
|
+
headHash: headHash.slice(0, 7),
|
|
451
|
+
});
|
|
452
|
+
const result = await runEvolvePipeline(repoPath, db, meta.specStoragePath, headHash, llmConfig);
|
|
453
|
+
// Only refresh meta.json when the commit was actually processed (not skipped).
|
|
454
|
+
const metaUpdated = !result.skipped;
|
|
455
|
+
if (metaUpdated) {
|
|
456
|
+
(0, utils_1.writeMeta)(repoPath, meta.specStoragePath, headHash);
|
|
457
|
+
}
|
|
458
|
+
return {
|
|
459
|
+
fromCommit: null,
|
|
460
|
+
toCommit: headHash,
|
|
461
|
+
commitsProcessed: 1,
|
|
462
|
+
perCommitResults: [result],
|
|
463
|
+
metaUpdated,
|
|
464
|
+
skippedCommits: result.skipped ? 1 : 0,
|
|
465
|
+
failures: 0,
|
|
466
|
+
};
|
|
467
|
+
}
|
|
468
|
+
// No new commits
|
|
469
|
+
if (lastEvolved === headHash) {
|
|
470
|
+
(0, errors_1.logDebug)('runBatchEvolvePipeline: no new commits to evolve', {
|
|
471
|
+
currentCommitID: lastEvolved.slice(0, 7),
|
|
472
|
+
});
|
|
473
|
+
return {
|
|
474
|
+
fromCommit: lastEvolved,
|
|
475
|
+
toCommit: headHash,
|
|
476
|
+
commitsProcessed: 0,
|
|
477
|
+
perCommitResults: [],
|
|
478
|
+
metaUpdated: false,
|
|
479
|
+
skippedCommits: 0,
|
|
480
|
+
failures: 0,
|
|
481
|
+
};
|
|
482
|
+
}
|
|
483
|
+
// Validate ancestry: lastEvolved must be an ancestor of HEAD
|
|
484
|
+
try {
|
|
485
|
+
(0, child_process_1.execFileSync)('git', ['merge-base', '--is-ancestor', lastEvolved, headHash], {
|
|
486
|
+
cwd: repoPath,
|
|
487
|
+
stdio: 'ignore',
|
|
488
|
+
windowsHide: true,
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
catch {
|
|
492
|
+
throw new Error(`The last evolved commit (${lastEvolved.slice(0, 7)}) is not an ancestor of ` +
|
|
493
|
+
`HEAD (${headHash.slice(0, 7)}). This usually happens after a rebase ` +
|
|
494
|
+
`or force-push. Please re-run 'homegraph spec mine' to rebuild the ` +
|
|
495
|
+
`knowledge graph, then run 'homegraph spec evolve' again.`);
|
|
496
|
+
}
|
|
497
|
+
// Get commit range in chronological order (oldest first)
|
|
498
|
+
const commits = (0, git_scanner_1.getCommitRange)(repoPath, lastEvolved, headHash);
|
|
499
|
+
if (commits.length === 0) {
|
|
500
|
+
(0, errors_1.logDebug)('runBatchEvolvePipeline: range query returned 0 commits', {
|
|
501
|
+
from: lastEvolved.slice(0, 7),
|
|
502
|
+
to: headHash.slice(0, 7),
|
|
503
|
+
});
|
|
504
|
+
return {
|
|
505
|
+
fromCommit: lastEvolved,
|
|
506
|
+
toCommit: headHash,
|
|
507
|
+
commitsProcessed: 0,
|
|
508
|
+
perCommitResults: [],
|
|
509
|
+
metaUpdated: false,
|
|
510
|
+
skippedCommits: 0,
|
|
511
|
+
failures: 0,
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
(0, errors_1.logDebug)('runBatchEvolvePipeline: processing commit range', {
|
|
515
|
+
count: commits.length,
|
|
516
|
+
from: lastEvolved.slice(0, 7),
|
|
517
|
+
to: headHash.slice(0, 7),
|
|
518
|
+
});
|
|
519
|
+
// Process each commit independently
|
|
520
|
+
const perCommitResults = [];
|
|
521
|
+
let failures = 0;
|
|
522
|
+
let skippedCount = 0;
|
|
523
|
+
for (const commit of commits) {
|
|
524
|
+
try {
|
|
525
|
+
const result = await runEvolvePipeline(repoPath, db, meta.specStoragePath, commit.hash, llmConfig);
|
|
526
|
+
perCommitResults.push(result);
|
|
527
|
+
if (result.skipped)
|
|
528
|
+
skippedCount++;
|
|
529
|
+
}
|
|
530
|
+
catch (err) {
|
|
531
|
+
failures++;
|
|
532
|
+
(0, errors_1.logWarn)('runBatchEvolvePipeline: commit evolve failed, continuing', {
|
|
533
|
+
commitHash: commit.hash.slice(0, 7),
|
|
534
|
+
error: err instanceof Error ? err.message : String(err),
|
|
535
|
+
});
|
|
536
|
+
perCommitResults.push({
|
|
537
|
+
commitHash: commit.hash,
|
|
538
|
+
generateRelationCreated: false,
|
|
539
|
+
isLogicChange: false,
|
|
540
|
+
logicCheckReason: `Evolve failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
541
|
+
affectedSpecCount: 0,
|
|
542
|
+
evolvedSpecs: [],
|
|
543
|
+
fragmentsCount: 0,
|
|
544
|
+
relationsCreated: 0,
|
|
545
|
+
persisted: false,
|
|
546
|
+
skipped: false,
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
// Refresh meta.json as long as at least one commit was actually
|
|
551
|
+
// processed (neither skipped nor failed).
|
|
552
|
+
const processedCount = commits.length - failures - skippedCount;
|
|
553
|
+
const metaUpdated = processedCount > 0;
|
|
554
|
+
if (metaUpdated) {
|
|
555
|
+
(0, utils_1.writeMeta)(repoPath, meta.specStoragePath, headHash);
|
|
556
|
+
}
|
|
557
|
+
return {
|
|
558
|
+
fromCommit: lastEvolved,
|
|
559
|
+
toCommit: headHash,
|
|
560
|
+
commitsProcessed: commits.length,
|
|
561
|
+
perCommitResults,
|
|
562
|
+
metaUpdated,
|
|
563
|
+
skippedCommits: skippedCount,
|
|
564
|
+
failures,
|
|
565
|
+
};
|
|
566
|
+
}
|
|
314
567
|
//# sourceMappingURL=pipeline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/spec/evolve/pipeline.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsGA,8CA2SC;AAjZD;;;;;;;GAOG;AACH,2CAA6B;AAC7B,iDAA6C;AAE7C,sCAAsD;AACtD,oCAAoC;AACpC,yCAA8C;AAC9C,+CAA+D;AAC/D,mDAAqD;AACrD,uDAAyD;AACzD,+CAGyB;AACzB,uDAAqE;AACrE,6DAA8D;AAC9D,6DAA6E;AAC7E,uDAA0D;AAC1D,6CAAyC;AACzC,mDAAgD;AAChD,qDAAuD;AACvD,mDAKyB;AACzB,yCAAiD;AA0BjD,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,eAAe,CACtB,EAAkB,EAClB,eAAuB,EACvB,MAAc;IAEd,MAAM,IAAI,GAAG,IAAA,wBAAY,EAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;AACjF,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;GAiBG;AACI,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,EAAkB,EAClB,UAAmB,EACnB,SAAqB;IAErB,qEAAqE;IACrE,qBAAqB;IACrB,qEAAqE;IAErE,YAAY;IACZ,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,cAAc;IACd,IAAA,uBAAc,EAAC,EAAE,CAAC,CAAC;IAEnB,sBAAsB;IACtB,MAAM,YAAY,GAChB,UAAU;QACV,CAAC,GAAG,EAAE;YACJ,IAAI,CAAC;gBACH,OAAO,IAAA,4BAAY,EAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;oBAChD,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,MAAM;oBAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAU;oBAC5C,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC,IAAI,EAAE,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,2BAA2B;IAC3B,MAAM,UAAU,GAAG,IAAA,2BAAa,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,UAAU,YAAY,2BAA2B,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,2BAAa,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAEnD,0EAA0E;IAC1E,MAAM,aAAa,GAAG,IAAA,+BAAiB,EAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAEtE,yCAAyC;IACzC,MAAM,UAAU,GAAG,IAAA,uBAAc,EAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,iBAAiB,GAAG,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,iBAAiB,CAAC,CAAC;IAEhD,qEAAqE;IACrE,yDAAyD;IACzD,qEAAqE;IAErE,MAAM,WAAW,GAAG,IAAA,mCAAkB,EACpC,UAAU,CAAC,OAAO,EAClB,IAAI,CAAC,eAAe,EACpB,UAAU,CACX,CAAC;IACF,IAAI,iBAAiB,GAAwB,IAAI,CAAC;IAClD,IAAI,WAAW,EAAE,CAAC;QAChB,iBAAiB,GAAG,IAAA,oCAAmB,EACrC,IAAI,CAAC,eAAe,EACpB,WAAW,EACX,UAAU,CACX,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,qBAAqB;IACrB,qEAAqE;IAErE,IAAI,WAAW,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACjD,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,IAAA,6BAAa,EAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,IAAA,gBAAO,EAAC,sDAAsD,EAAE;YAC9D,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACrC,CAAC,CAAC;QACH,WAAW,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC9D,CAAC;IAED,qEAAqE;IACrE,wEAAwE;IACxE,qEAAqE;IAErE,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,yCAAyC;QACzC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAErD,wBAAwB;QACxB,MAAM,eAAe,GAAG,IAAA,oCAAmB,EAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAE3D,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,8BAA8B;YAC9B,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAG,EAAE;iBAClB,OAAO,CACN,gEAAgE,YAAY,GAAG,CAChF;iBACA,GAAG,CAAC,GAAG,eAAe,CAA0B,CAAC;YACpD,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAE3C,mDAAmD;YACnD,IAAI,WAAW,EAAE,CAAC;gBAChB,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,IAAA,iBAAQ,EAAC,+BAA+B,EAAE;YACxC,KAAK,EAAE,YAAY,CAAC,MAAM;YAC1B,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,sBAAsB;IACtB,qEAAqE;IAErE,MAAM,QAAQ,GAAG,WAAW,KAAK,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAA,iBAAQ,EAAC,4DAA4D,EAAE;YACrE,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACrC,CAAC,CAAC;QACH,OAAO;YACL,UAAU,EAAE,YAAY;YACxB,uBAAuB,EAAE,KAAK;YAC9B,aAAa,EAAE,WAAW,CAAC,OAAO;YAClC,gBAAgB,EAAE,WAAW,CAAC,MAAM;YACpC,iBAAiB,EAAE,CAAC;YACpB,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,CAAC;YACjB,gBAAgB,EAAE,CAAC;YACnB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAeD,MAAM,gBAAgB,GAAsB,EAAE,CAAC;IAE/C,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAE,CAAC;QAClC,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,eAAe,CAC3C,EAAE,EACF,IAAI,CAAC,eAAe,EACpB,MAAM,CACP,CAAC;QAEF,MAAM,QAAQ,GAAmB,MAAM,IAAA,4BAAY,EACjD,MAAM,EACN,IAAI,CAAC,eAAe,EACpB,QAAQ,EACR,UAAU,CAAC,OAAO,EAClB,IAAI,EACJ,iBAAiB,EACjB,MAAM,CACP,CAAC;QAEF,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,qEAAqE;IACrE,yDAAyD;IACzD,iEAAiE;IACjE,qEAAqE;IAErE,MAAM,YAAY,GAAiB;QACjC,UAAU,EAAE,YAAY;QACxB,cAAc,EAAE,WAAW,IAAI,SAAS;QACxC,uBAAuB,EAAE,KAAK;QAC9B,aAAa,EAAE,WAAW,CAAC,OAAO;QAClC,gBAAgB,EAAE,WAAW,CAAC,MAAM;QACpC,iBAAiB,EAAE,YAAY,CAAC,MAAM;QACtC,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,CAAC;QACnB,SAAS,EAAE,IAAI;KAChB,CAAC;IAEF,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjB,IAAI,CAAC;QACH,8BAA8B;QAC9B,IAAA,8BAAgB,EAAC,EAAE,EAAE;YACnB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,SAAS,EAAE,UAAU,CAAC,SAAS;SAChC,CAAC,CAAC;QAEH,wDAAwD;QACxD,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;YACrC,IAAA,0BAAc,EAAC,EAAE,EAAE;gBACjB,EAAE,EAAE,iBAAiB,CAAC,MAAM;gBAC5B,KAAK,EAAE,iBAAiB,CAAC,KAAK;gBAC9B,SAAS,EAAE,iBAAiB,CAAC,SAAS;gBACtC,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,CAAC;gBACV,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;gBACpC,SAAS,EAAE,UAAU,CAAC,SAAS;aAChC,CAAC,CAAC;YAEH,IAAA,oCAAwB,EACtB,EAAE,EACF,iBAAiB,CAAC,MAAM,EACxB,UAAU,CAAC,IAAI,EACf,UAAU,CACX,CAAC;YACF,YAAY,CAAC,uBAAuB,GAAG,IAAI,CAAC;YAC5C,YAAY,CAAC,gBAAgB,EAAE,CAAC;QAClC,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,IAAA,gBAAO,EAAC,oEAAoE,EAAE;gBAC5E,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;QACL,CAAC;QAED,kDAAkD;QAClD,MAAM,YAAY,GAAkB,EAAE,CAAC;QAEvC,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACvC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YAExD,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,YAAY,GAAG,IAAA,2BAAW,EAC9B,EAAE,EACF,IAAI,CAAC,eAAe,EACpB,MAAM,EACN,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,CAAC,IAAI,CAChB,CAAC;gBACF,YAAY,CAAC,IAAI,CAAC;oBAChB,MAAM;oBACN,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,SAAS,EAAE,YAAY,CAAC,SAAS;iBAClC,CAAC,CAAC;gBACH,YAAY,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,0BAA0B;YAChE,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3C,IAAA,8BAAc,EAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC3B,YAAY,CAAC,IAAI,CAAC;oBAChB,MAAM;oBACN,MAAM,EAAE,WAAW;iBACpB,CAAC,CAAC;gBACH,mDAAmD;gBACnD,YAAY,CAAC,gBAAgB,IAAI,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,YAAY;gBACZ,YAAY,CAAC,IAAI,CAAC;oBAChB,MAAM;oBACN,MAAM,EAAE,WAAW;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;QAEzC,+EAA+E;QAC/E,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAA,kCAAkB,EAAC,EAAE,EAAE;gBACtC,EAAE,EAAE,EAAE;gBACN,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,YAAY,CAAC,cAAc,EAAE,CAAC;YAC9B,IAAA,wCAA4B,EAAC,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC/D,YAAY,CAAC,gBAAgB,EAAE,CAAC;QAClC,CAAC;QAED,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpB,MAAM,CAAC,CAAC;IACV,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/spec/evolve/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SqliteDatabase } from '../../db/sqlite-adapter';
|
|
2
|
-
import {
|
|
2
|
+
import { LlmClient } from '../llm/client';
|
|
3
3
|
export interface EvolveDecision {
|
|
4
4
|
action: 'UPDATE' | 'DEPRECATE' | 'UNCHANGED';
|
|
5
5
|
title?: string;
|
|
@@ -18,7 +18,7 @@ export interface EvolveDecision {
|
|
|
18
18
|
* @param scheduleNextSpecs - Remaining spec IDs to be processed (for context).
|
|
19
19
|
* @param client - Optional LLM client; if absent, returns UNCHANGED.
|
|
20
20
|
*/
|
|
21
|
-
export declare function evaluateSpec(specId: string, _specStoragePath: string, specFilePath: string, commitMessage: string, commitDiff: string, scheduleNextSpecs: string[], client?:
|
|
21
|
+
export declare function evaluateSpec(specId: string, _specStoragePath: string, specFilePath: string, commitMessage: string, commitDiff: string, scheduleNextSpecs: string[], client?: LlmClient): Promise<EvolveDecision>;
|
|
22
22
|
/**
|
|
23
23
|
* Apply an UPDATE decision: backup the old plan, write the new plan, version
|
|
24
24
|
* the spec in the database, and transfer relations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-rewriter.d.ts","sourceRoot":"","sources":["../../../src/spec/evolve/spec-rewriter.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAgBzD,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"spec-rewriter.d.ts","sourceRoot":"","sources":["../../../src/spec/evolve/spec-rewriter.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAgBzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAW1C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,cAAc,CAAC,CAoDzB;AAMD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,cAAc,EAClB,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,GACjB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAmF3C;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,cAAc,EAClB,SAAS,EAAE,MAAM,GAChB,IAAI,CAqBN"}
|