soloforge 1.1.45 → 1.1.46
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 +3 -3
- package/dist/context/contracts/lifecycle_knowledge_contract.d.ts.map +1 -1
- package/dist/context/contracts/lifecycle_knowledge_contract.js +2 -2
- package/dist/context/contracts/lifecycle_knowledge_contract.js.map +1 -1
- package/dist/core/task_context/manager.d.ts +0 -8
- package/dist/core/task_context/manager.d.ts.map +1 -1
- package/dist/core/task_context/manager.js +1 -19
- package/dist/core/task_context/manager.js.map +1 -1
- package/dist/core/task_context/state_fact_classifier.d.ts +0 -8
- package/dist/core/task_context/state_fact_classifier.d.ts.map +1 -1
- package/dist/core/task_context/state_fact_classifier.js +0 -36
- package/dist/core/task_context/state_fact_classifier.js.map +1 -1
- package/dist/domain/contracts/design_artifact_pack.d.ts +0 -1
- package/dist/domain/contracts/design_artifact_pack.d.ts.map +1 -1
- package/dist/domain/contracts/design_artifact_pack.js +1 -4
- package/dist/domain/contracts/design_artifact_pack.js.map +1 -1
- package/dist/domain/index.d.ts +1 -1
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/registry.d.ts +2 -2
- package/dist/domain/registry.d.ts.map +1 -1
- package/dist/domain/types.d.ts +1 -12
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/domain/types.js +3 -0
- package/dist/domain/types.js.map +1 -1
- package/dist/gate/contracts/capability_registry.d.ts.map +1 -1
- package/dist/gate/contracts/capability_registry.js +0 -26
- package/dist/gate/contracts/capability_registry.js.map +1 -1
- package/dist/gate/contracts/control_plane_contract.d.ts +1 -1
- package/dist/gate/contracts/control_plane_contract.d.ts.map +1 -1
- package/dist/gate/contracts/control_plane_contract.js +1 -10
- package/dist/gate/contracts/control_plane_contract.js.map +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.d.ts +1 -0
- package/dist/gate/contracts/tool_invocation_contract_registry.d.ts.map +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.js +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
- package/dist/gate/index.d.ts +0 -2
- package/dist/gate/index.d.ts.map +1 -1
- package/dist/gate/index.js +0 -1
- package/dist/gate/index.js.map +1 -1
- package/dist/server/tools/index.d.ts.map +1 -1
- package/dist/server/tools/index.js +1 -3
- package/dist/server/tools/index.js.map +1 -1
- package/dist/server/tools/lazy_loaders.d.ts +0 -23
- package/dist/server/tools/lazy_loaders.d.ts.map +1 -1
- package/dist/server/tools/lazy_loaders.js +2 -33
- package/dist/server/tools/lazy_loaders.js.map +1 -1
- package/dist/server/tools/middleware.d.ts +2 -5
- package/dist/server/tools/middleware.d.ts.map +1 -1
- package/dist/server/tools/middleware.js +3 -33
- package/dist/server/tools/middleware.js.map +1 -1
- package/dist/server/tools/sf_task.js +2 -7
- package/dist/server/tools/sf_task.js.map +1 -1
- package/dist/server/tools/types.d.ts +0 -2
- package/dist/server/tools/types.d.ts.map +1 -1
- package/dist/types/pipeline_types.d.ts +1 -9
- package/dist/types/pipeline_types.d.ts.map +1 -1
- package/dist/verify/audit/verifier.d.ts.map +1 -1
- package/dist/verify/audit/verifier.js +0 -33
- package/dist/verify/audit/verifier.js.map +1 -1
- package/dist/verify/index.d.ts +1 -4
- package/dist/verify/index.d.ts.map +1 -1
- package/dist/verify/index.js +0 -3
- package/dist/verify/index.js.map +1 -1
- package/dist/verify/types.d.ts +0 -21
- package/dist/verify/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/shared//345/206/263/347/255/226/347/275/221/345/205/263.md +7 -21
- package/dist/context/engine/dependency_scanner.d.ts +0 -23
- package/dist/context/engine/dependency_scanner.d.ts.map +0 -1
- package/dist/context/engine/dependency_scanner.js +0 -309
- package/dist/context/engine/dependency_scanner.js.map +0 -1
- package/dist/context/engine/exploration.d.ts +0 -194
- package/dist/context/engine/exploration.d.ts.map +0 -1
- package/dist/context/engine/exploration.js +0 -712
- package/dist/context/engine/exploration.js.map +0 -1
- package/dist/context/knowledge/knowledge_acceptance_registry.d.ts +0 -42
- package/dist/context/knowledge/knowledge_acceptance_registry.d.ts.map +0 -1
- package/dist/context/knowledge/knowledge_acceptance_registry.js +0 -249
- package/dist/context/knowledge/knowledge_acceptance_registry.js.map +0 -1
- package/dist/context/knowledge/knowledge_scenario_registry.d.ts +0 -26
- package/dist/context/knowledge/knowledge_scenario_registry.d.ts.map +0 -1
- package/dist/context/knowledge/knowledge_scenario_registry.js +0 -267
- package/dist/context/knowledge/knowledge_scenario_registry.js.map +0 -1
- package/dist/context/knowledge/knowledge_sovereignty.d.ts +0 -65
- package/dist/context/knowledge/knowledge_sovereignty.d.ts.map +0 -1
- package/dist/context/knowledge/knowledge_sovereignty.js +0 -199
- package/dist/context/knowledge/knowledge_sovereignty.js.map +0 -1
- package/dist/context/team_awareness.d.ts +0 -42
- package/dist/context/team_awareness.d.ts.map +0 -1
- package/dist/context/team_awareness.js +0 -154
- package/dist/context/team_awareness.js.map +0 -1
- package/dist/context/templates/template_asset_visibility.d.ts +0 -116
- package/dist/context/templates/template_asset_visibility.d.ts.map +0 -1
- package/dist/context/templates/template_asset_visibility.js +0 -310
- package/dist/context/templates/template_asset_visibility.js.map +0 -1
- package/dist/gate/conflict_gate.d.ts +0 -53
- package/dist/gate/conflict_gate.d.ts.map +0 -1
- package/dist/gate/conflict_gate.js +0 -96
- package/dist/gate/conflict_gate.js.map +0 -1
- package/dist/gate/contracts/capability_action_advisor.d.ts +0 -34
- package/dist/gate/contracts/capability_action_advisor.d.ts.map +0 -1
- package/dist/gate/contracts/capability_action_advisor.js +0 -165
- package/dist/gate/contracts/capability_action_advisor.js.map +0 -1
- package/dist/gate/contracts/capability_state_store.d.ts +0 -121
- package/dist/gate/contracts/capability_state_store.d.ts.map +0 -1
- package/dist/gate/contracts/capability_state_store.js +0 -188
- package/dist/gate/contracts/capability_state_store.js.map +0 -1
- package/dist/gate/contracts/contract_guard.d.ts +0 -50
- package/dist/gate/contracts/contract_guard.d.ts.map +0 -1
- package/dist/gate/contracts/contract_guard.js +0 -611
- package/dist/gate/contracts/contract_guard.js.map +0 -1
- package/dist/gate/contracts/escape_report.d.ts +0 -103
- package/dist/gate/contracts/escape_report.d.ts.map +0 -1
- package/dist/gate/contracts/escape_report.js +0 -145
- package/dist/gate/contracts/escape_report.js.map +0 -1
- package/dist/gate/feasibility_checker.d.ts +0 -27
- package/dist/gate/feasibility_checker.d.ts.map +0 -1
- package/dist/gate/feasibility_checker.js +0 -114
- package/dist/gate/feasibility_checker.js.map +0 -1
- package/dist/gate/migration_guard.d.ts +0 -22
- package/dist/gate/migration_guard.d.ts.map +0 -1
- package/dist/gate/migration_guard.js +0 -277
- package/dist/gate/migration_guard.js.map +0 -1
- package/dist/gate/scope_lease.d.ts +0 -94
- package/dist/gate/scope_lease.d.ts.map +0 -1
- package/dist/gate/scope_lease.js +0 -180
- package/dist/gate/scope_lease.js.map +0 -1
- package/dist/git/git_deps.d.ts +0 -85
- package/dist/git/git_deps.d.ts.map +0 -1
- package/dist/git/git_deps.js +0 -22
- package/dist/git/git_deps.js.map +0 -1
- package/dist/git/operations.d.ts +0 -173
- package/dist/git/operations.d.ts.map +0 -1
- package/dist/git/operations.js +0 -350
- package/dist/git/operations.js.map +0 -1
- package/dist/server/tools/gate_engine.d.ts +0 -17
- package/dist/server/tools/gate_engine.d.ts.map +0 -1
- package/dist/server/tools/gate_engine.js +0 -17
- package/dist/server/tools/gate_engine.js.map +0 -1
- package/dist/server/tools/middleware/budget_check.d.ts +0 -35
- package/dist/server/tools/middleware/budget_check.d.ts.map +0 -1
- package/dist/server/tools/middleware/budget_check.js +0 -69
- package/dist/server/tools/middleware/budget_check.js.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_core.d.ts +0 -16
- package/dist/shared/contracts/contract_registry/builtin_contracts_core.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_core.js +0 -306
- package/dist/shared/contracts/contract_registry/builtin_contracts_core.js.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.d.ts +0 -16
- package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.js +0 -304
- package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.js.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_extended.d.ts +0 -16
- package/dist/shared/contracts/contract_registry/builtin_contracts_extended.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_extended.js +0 -434
- package/dist/shared/contracts/contract_registry/builtin_contracts_extended.js.map +0 -1
- package/dist/shared/contracts/contract_registry/index.d.ts +0 -8
- package/dist/shared/contracts/contract_registry/index.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/index.js +0 -7
- package/dist/shared/contracts/contract_registry/index.js.map +0 -1
- package/dist/shared/contracts/contract_registry/registry.d.ts +0 -62
- package/dist/shared/contracts/contract_registry/registry.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/registry.js +0 -191
- package/dist/shared/contracts/contract_registry/registry.js.map +0 -1
- package/dist/shared/contracts/contract_registry/registry_internal.d.ts +0 -19
- package/dist/shared/contracts/contract_registry/registry_internal.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/registry_internal.js +0 -54
- package/dist/shared/contracts/contract_registry/registry_internal.js.map +0 -1
- package/dist/shared/contracts/contract_registry/types.d.ts +0 -47
- package/dist/shared/contracts/contract_registry/types.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/types.js +0 -5
- package/dist/shared/contracts/contract_registry/types.js.map +0 -1
- package/dist/shared/contracts/contract_registry/validation.d.ts +0 -25
- package/dist/shared/contracts/contract_registry/validation.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/validation.js +0 -363
- package/dist/shared/contracts/contract_registry/validation.js.map +0 -1
- package/dist/shared/llm_gateway.d.ts +0 -186
- package/dist/shared/llm_gateway.d.ts.map +0 -1
- package/dist/shared/llm_gateway.js +0 -393
- package/dist/shared/llm_gateway.js.map +0 -1
- package/dist/verify/audit/audit_sampler.d.ts +0 -29
- package/dist/verify/audit/audit_sampler.d.ts.map +0 -1
- package/dist/verify/audit/audit_sampler.js +0 -42
- package/dist/verify/audit/audit_sampler.js.map +0 -1
- package/dist/verify/audit/debt_reporter.d.ts +0 -22
- package/dist/verify/audit/debt_reporter.d.ts.map +0 -1
- package/dist/verify/audit/debt_reporter.js +0 -107
- package/dist/verify/audit/debt_reporter.js.map +0 -1
- package/dist/verify/audit/debugger.d.ts +0 -25
- package/dist/verify/audit/debugger.d.ts.map +0 -1
- package/dist/verify/audit/debugger.js +0 -429
- package/dist/verify/audit/debugger.js.map +0 -1
- package/dist/verify/audit/degradation.d.ts +0 -62
- package/dist/verify/audit/degradation.d.ts.map +0 -1
- package/dist/verify/audit/degradation.js +0 -78
- package/dist/verify/audit/degradation.js.map +0 -1
- package/dist/verify/audit/developer_sovereignty.d.ts +0 -29
- package/dist/verify/audit/developer_sovereignty.d.ts.map +0 -1
- package/dist/verify/audit/developer_sovereignty.js +0 -137
- package/dist/verify/audit/developer_sovereignty.js.map +0 -1
- package/dist/verify/audit/failure_report.d.ts +0 -76
- package/dist/verify/audit/failure_report.d.ts.map +0 -1
- package/dist/verify/audit/failure_report.js +0 -145
- package/dist/verify/audit/failure_report.js.map +0 -1
- package/dist/verify/audit/governance_report.d.ts +0 -110
- package/dist/verify/audit/governance_report.d.ts.map +0 -1
- package/dist/verify/audit/governance_report.js +0 -194
- package/dist/verify/audit/governance_report.js.map +0 -1
- package/dist/verify/audit/mutation_audit.d.ts +0 -40
- package/dist/verify/audit/mutation_audit.d.ts.map +0 -1
- package/dist/verify/audit/mutation_audit.js +0 -154
- package/dist/verify/audit/mutation_audit.js.map +0 -1
- package/dist/verify/audit/risk_sampler.d.ts +0 -44
- package/dist/verify/audit/risk_sampler.d.ts.map +0 -1
- package/dist/verify/audit/risk_sampler.js +0 -80
- package/dist/verify/audit/risk_sampler.js.map +0 -1
- package/dist/verify/audit/runtime_safety.d.ts +0 -89
- package/dist/verify/audit/runtime_safety.d.ts.map +0 -1
- package/dist/verify/audit/runtime_safety.js +0 -209
- package/dist/verify/audit/runtime_safety.js.map +0 -1
- package/dist/verify/audit/semantic_evidence.d.ts +0 -36
- package/dist/verify/audit/semantic_evidence.d.ts.map +0 -1
- package/dist/verify/audit/semantic_evidence.js +0 -90
- package/dist/verify/audit/semantic_evidence.js.map +0 -1
- package/dist/verify/audit/test_generator.d.ts +0 -23
- package/dist/verify/audit/test_generator.d.ts.map +0 -1
- package/dist/verify/audit/test_generator.js +0 -278
- package/dist/verify/audit/test_generator.js.map +0 -1
- package/dist/verify/audit/test_quality.d.ts +0 -49
- package/dist/verify/audit/test_quality.d.ts.map +0 -1
- package/dist/verify/audit/test_quality.js +0 -684
- package/dist/verify/audit/test_quality.js.map +0 -1
- package/dist/verify/change_coordinator.d.ts +0 -45
- package/dist/verify/change_coordinator.d.ts.map +0 -1
- package/dist/verify/change_coordinator.js +0 -168
- package/dist/verify/change_coordinator.js.map +0 -1
- package/dist/verify/contracts/decision_contract.d.ts +0 -51
- package/dist/verify/contracts/decision_contract.d.ts.map +0 -1
- package/dist/verify/contracts/decision_contract.js +0 -70
- package/dist/verify/contracts/decision_contract.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.d.ts +0 -17
- package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.js +0 -428
- package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.d.ts +0 -17
- package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.js +0 -429
- package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.d.ts +0 -17
- package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.js +0 -194
- package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.d.ts +0 -17
- package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.js +0 -365
- package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/index.d.ts +0 -19
- package/dist/verify/contracts/mechanism_contract_registry/index.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/index.js +0 -21
- package/dist/verify/contracts/mechanism_contract_registry/index.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/types.d.ts +0 -33
- package/dist/verify/contracts/mechanism_contract_registry/types.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/types.js +0 -5
- package/dist/verify/contracts/mechanism_contract_registry/types.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/validation.d.ts +0 -38
- package/dist/verify/contracts/mechanism_contract_registry/validation.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/validation.js +0 -136
- package/dist/verify/contracts/mechanism_contract_registry/validation.js.map +0 -1
- package/templates/shared/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +0 -54
- package/templates/shared//346/265/201/345/274/217/345/277/203/350/267/263.md +0 -64
package/dist/git/git_deps.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git Deps — Git 集成层模块。
|
|
3
|
-
*
|
|
4
|
-
* 职责边界:
|
|
5
|
-
* - 负责:GitOperations 等 Git 集成层职责
|
|
6
|
-
* - 不负责:不属于本模块的职责由对应模块承担
|
|
7
|
-
*
|
|
8
|
-
* 被谁调用:上层模块按需调用
|
|
9
|
-
* 调用谁:operations、logger
|
|
10
|
-
*
|
|
11
|
-
* 数据流:输入 → GitOperations 处理 → 输出
|
|
12
|
-
* 持久化:无持久化(纯计算/内存态)
|
|
13
|
-
*/
|
|
14
|
-
import * as ops from "./operations.js";
|
|
15
|
-
import { debug } from "../shared/logger.js";
|
|
16
|
-
/**
|
|
17
|
-
* 基于真实 Git 命令的 GitOperations 实现。
|
|
18
|
-
* @description 导出 realGitOps 实例,将所有 Git 操作委托给真实的 git 命令行工具。
|
|
19
|
-
*/
|
|
20
|
-
export const realGitOps = ops;
|
|
21
|
-
debug("GitDeps", "已加载真实 Git 操作实现");
|
|
22
|
-
//# sourceMappingURL=git_deps.js.map
|
package/dist/git/git_deps.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git_deps.js","sourceRoot":"","sources":["../../src/git/git_deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAoD5C;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkB,GAAG,CAAC;AAE7C,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC"}
|
package/dist/git/operations.d.ts
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Operations — Git 集成层模块。
|
|
3
|
-
*
|
|
4
|
-
* 职责边界:
|
|
5
|
-
* - 负责:GitFileStatus 等 Git 集成层职责
|
|
6
|
-
* - 不负责:不属于本模块的职责由对应模块承担
|
|
7
|
-
*
|
|
8
|
-
* 被谁调用:上层模块按需调用
|
|
9
|
-
* 调用谁:execa、logger
|
|
10
|
-
*
|
|
11
|
-
* 数据流:输入 → GitFileStatus 处理 → 输出
|
|
12
|
-
* 持久化:无持久化(纯计算/内存态)
|
|
13
|
-
*/
|
|
14
|
-
/** Git 文件状态 */
|
|
15
|
-
export interface GitFileStatus {
|
|
16
|
-
path: string;
|
|
17
|
-
status: "added" | "modified" | "deleted" | "renamed" | "untracked" | "conflicted";
|
|
18
|
-
}
|
|
19
|
-
/** Git 日志条目 */
|
|
20
|
-
export interface GitLogEntry {
|
|
21
|
-
hash: string;
|
|
22
|
-
shortHash: string;
|
|
23
|
-
author: string;
|
|
24
|
-
date: string;
|
|
25
|
-
message: string;
|
|
26
|
-
}
|
|
27
|
-
/** Git Diff 统计块 */
|
|
28
|
-
export interface GitDiffHunk {
|
|
29
|
-
file: string;
|
|
30
|
-
additions: number;
|
|
31
|
-
deletions: number;
|
|
32
|
-
patch: string;
|
|
33
|
-
}
|
|
34
|
-
/** Git Blame 行信息 */
|
|
35
|
-
export interface GitBlameLine {
|
|
36
|
-
line: number;
|
|
37
|
-
hash: string;
|
|
38
|
-
author: string;
|
|
39
|
-
date: string;
|
|
40
|
-
content: string;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* 检查指定目录是否为 Git 仓库。
|
|
44
|
-
* @param cwd - 工作目录
|
|
45
|
-
* @returns 是否为 Git 仓库
|
|
46
|
-
*/
|
|
47
|
-
export declare function isGitRepo(cwd: string): Promise<boolean>;
|
|
48
|
-
/**
|
|
49
|
-
* 获取 Git 仓库根目录。
|
|
50
|
-
* @param cwd - 工作目录
|
|
51
|
-
* @returns 仓库根目录的绝对路径
|
|
52
|
-
*/
|
|
53
|
-
export declare function getRootDir(cwd: string): Promise<string>;
|
|
54
|
-
/**
|
|
55
|
-
* 获取当前分支名称。
|
|
56
|
-
* @param cwd - 工作目录
|
|
57
|
-
* @returns 当前分支名
|
|
58
|
-
*/
|
|
59
|
-
export declare function getCurrentBranch(cwd: string): Promise<string>;
|
|
60
|
-
/**
|
|
61
|
-
* 检查工作区是否干净(无未提交的变更)。
|
|
62
|
-
* @param cwd - 工作目录
|
|
63
|
-
* @returns 工作区是否干净
|
|
64
|
-
*/
|
|
65
|
-
export declare function isClean(cwd: string): Promise<boolean>;
|
|
66
|
-
/**
|
|
67
|
-
* 获取工作区文件状态列表。
|
|
68
|
-
* @param cwd - 工作目录
|
|
69
|
-
* @returns 文件状态数组
|
|
70
|
-
*/
|
|
71
|
-
export declare function getStatus(cwd: string): Promise<GitFileStatus[]>;
|
|
72
|
-
/**
|
|
73
|
-
* 获取 Git 提交日志。
|
|
74
|
-
* @param cwd - 工作目录
|
|
75
|
-
* @param options - 查询选项(最大数量、起始日期、作者、路径过滤)
|
|
76
|
-
* @returns 提交日志条目数组
|
|
77
|
-
*/
|
|
78
|
-
export declare function getLog(cwd: string, options?: {
|
|
79
|
-
maxCount?: number;
|
|
80
|
-
since?: string;
|
|
81
|
-
author?: string;
|
|
82
|
-
path?: string;
|
|
83
|
-
ref?: string;
|
|
84
|
-
}): Promise<GitLogEntry[]>;
|
|
85
|
-
/**
|
|
86
|
-
* 获取贡献者提交统计(shortlog)。
|
|
87
|
-
* @param cwd - 工作目录
|
|
88
|
-
* @param since - 起始日期过滤(可选)
|
|
89
|
-
* @returns 贡献者及其提交次数数组
|
|
90
|
-
*/
|
|
91
|
-
export declare function getShortlog(cwd: string, since?: string): Promise<Array<{
|
|
92
|
-
author: string;
|
|
93
|
-
count: number;
|
|
94
|
-
}>>;
|
|
95
|
-
/**
|
|
96
|
-
* 获取差异统计信息(numstat 格式)。
|
|
97
|
-
* @param cwd - 工作目录
|
|
98
|
-
* @param options - 查询选项(是否包含暂存区、路径过滤)
|
|
99
|
-
* @returns 差异统计块数组
|
|
100
|
-
*/
|
|
101
|
-
export declare function getDiff(cwd: string, options?: {
|
|
102
|
-
cached?: boolean;
|
|
103
|
-
path?: string;
|
|
104
|
-
}): Promise<GitDiffHunk[]>;
|
|
105
|
-
/**
|
|
106
|
-
* 获取指定文件的差异补丁。
|
|
107
|
-
* @param cwd - 工作目录
|
|
108
|
-
* @param filePath - 文件路径
|
|
109
|
-
* @param options - 查询选项(是否包含暂存区)
|
|
110
|
-
* @returns 差异补丁字符串
|
|
111
|
-
*/
|
|
112
|
-
export declare function getDiffPatch(cwd: string, filePath: string, options?: {
|
|
113
|
-
cached?: boolean;
|
|
114
|
-
}): Promise<string>;
|
|
115
|
-
/**
|
|
116
|
-
* 获取指定文件的逐行 Blame 信息。
|
|
117
|
-
* @param cwd - 工作目录
|
|
118
|
-
* @param filePath - 文件路径
|
|
119
|
-
* @returns 逐行 Blame 信息数组
|
|
120
|
-
*/
|
|
121
|
-
export declare function getBlame(cwd: string, filePath: string): Promise<GitBlameLine[]>;
|
|
122
|
-
/**
|
|
123
|
-
* 列出所有本地分支。
|
|
124
|
-
* @param cwd - 工作目录
|
|
125
|
-
* @returns 分支信息数组(名称和是否为当前分支)
|
|
126
|
-
*/
|
|
127
|
-
export declare function listBranches(cwd: string): Promise<Array<{
|
|
128
|
-
name: string;
|
|
129
|
-
isCurrent: boolean;
|
|
130
|
-
}>>;
|
|
131
|
-
/**
|
|
132
|
-
* 将文件添加到暂存区。
|
|
133
|
-
* @param cwd - 工作目录
|
|
134
|
-
* @param paths - 要暂存的文件路径列表
|
|
135
|
-
*/
|
|
136
|
-
export declare function add(cwd: string, paths: string[]): Promise<void>;
|
|
137
|
-
/**
|
|
138
|
-
* 创建提交。
|
|
139
|
-
* @param cwd - 工作目录
|
|
140
|
-
* @param message - 提交信息
|
|
141
|
-
* @returns git commit 命令输出
|
|
142
|
-
*/
|
|
143
|
-
export declare function commit(cwd: string, message: string): Promise<string>;
|
|
144
|
-
/**
|
|
145
|
-
* 推送到远程仓库。
|
|
146
|
-
* @param cwd - 工作目录
|
|
147
|
-
* @param remote - 远程名称(可选)
|
|
148
|
-
* @param branch - 分支名称(可选)
|
|
149
|
-
* @returns git push 命令输出
|
|
150
|
-
*/
|
|
151
|
-
export declare function push(cwd: string, remote?: string, branch?: string): Promise<string>;
|
|
152
|
-
/**
|
|
153
|
-
* 获取两个分支的合并基点。
|
|
154
|
-
* @param cwd - 工作目录
|
|
155
|
-
* @param branchA - 分支 A 名称
|
|
156
|
-
* @param branchB - 分支 B 名称
|
|
157
|
-
* @returns 合并基点的 commit hash
|
|
158
|
-
*/
|
|
159
|
-
export declare function getMergeBase(cwd: string, branchA: string, branchB: string): Promise<string>;
|
|
160
|
-
/**
|
|
161
|
-
* 获取远程仓库 URL。
|
|
162
|
-
* @param cwd - 工作目录
|
|
163
|
-
* @param remote - 远程名称,默认为 "origin"
|
|
164
|
-
* @returns 远程 URL,未找到时返回 null
|
|
165
|
-
*/
|
|
166
|
-
export declare function getRemoteUrl(cwd: string, remote?: string): Promise<string | null>;
|
|
167
|
-
/**
|
|
168
|
-
* 获取 HEAD 的短 commit hash。
|
|
169
|
-
* @param cwd - 工作目录
|
|
170
|
-
* @returns HEAD 的短 hash
|
|
171
|
-
*/
|
|
172
|
-
export declare function getHeadCommitHash(cwd: string): Promise<string>;
|
|
173
|
-
//# sourceMappingURL=operations.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/git/operations.ts"],"names":[],"mappings":"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"}
|
package/dist/git/operations.js
DELETED
|
@@ -1,350 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Operations — Git 集成层模块。
|
|
3
|
-
*
|
|
4
|
-
* 职责边界:
|
|
5
|
-
* - 负责:GitFileStatus 等 Git 集成层职责
|
|
6
|
-
* - 不负责:不属于本模块的职责由对应模块承担
|
|
7
|
-
*
|
|
8
|
-
* 被谁调用:上层模块按需调用
|
|
9
|
-
* 调用谁:execa、logger
|
|
10
|
-
*
|
|
11
|
-
* 数据流:输入 → GitFileStatus 处理 → 输出
|
|
12
|
-
* 持久化:无持久化(纯计算/内存态)
|
|
13
|
-
*/
|
|
14
|
-
import { execa } from "execa";
|
|
15
|
-
import { debug } from "../shared/logger.js";
|
|
16
|
-
// ── 基础操作 ──
|
|
17
|
-
/** 执行 git 命令并返回标准输出 */
|
|
18
|
-
async function git(args, cwd) {
|
|
19
|
-
const result = await execa("git", args, { cwd, timeout: 30_000 });
|
|
20
|
-
return result.stdout;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* 检查指定目录是否为 Git 仓库。
|
|
24
|
-
* @param cwd - 工作目录
|
|
25
|
-
* @returns 是否为 Git 仓库
|
|
26
|
-
*/
|
|
27
|
-
export async function isGitRepo(cwd) {
|
|
28
|
-
debug("Git操作", "检查是否为Git仓库 —", cwd);
|
|
29
|
-
try {
|
|
30
|
-
await execa("git", ["rev-parse", "--is-inside-work-tree"], { cwd, timeout: 5_000 });
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* 获取 Git 仓库根目录。
|
|
39
|
-
* @param cwd - 工作目录
|
|
40
|
-
* @returns 仓库根目录的绝对路径
|
|
41
|
-
*/
|
|
42
|
-
export async function getRootDir(cwd) {
|
|
43
|
-
debug("Git操作", "获取仓库根目录 —", cwd);
|
|
44
|
-
return (await git(["rev-parse", "--show-toplevel"], cwd)).trim();
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* 获取当前分支名称。
|
|
48
|
-
* @param cwd - 工作目录
|
|
49
|
-
* @returns 当前分支名
|
|
50
|
-
*/
|
|
51
|
-
export async function getCurrentBranch(cwd) {
|
|
52
|
-
debug("Git操作", "获取当前分支 —", cwd);
|
|
53
|
-
return (await git(["rev-parse", "--abbrev-ref", "HEAD"], cwd)).trim();
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* 检查工作区是否干净(无未提交的变更)。
|
|
57
|
-
* @param cwd - 工作目录
|
|
58
|
-
* @returns 工作区是否干净
|
|
59
|
-
*/
|
|
60
|
-
export async function isClean(cwd) {
|
|
61
|
-
debug("Git操作", "检查工作区是否干净 —", cwd);
|
|
62
|
-
const output = await git(["status", "--porcelain"], cwd);
|
|
63
|
-
return output.trim().length === 0;
|
|
64
|
-
}
|
|
65
|
-
// ── 状态查询 ──
|
|
66
|
-
/**
|
|
67
|
-
* 获取工作区文件状态列表。
|
|
68
|
-
* @param cwd - 工作目录
|
|
69
|
-
* @returns 文件状态数组
|
|
70
|
-
*/
|
|
71
|
-
export async function getStatus(cwd) {
|
|
72
|
-
debug("Git操作", "获取文件状态列表");
|
|
73
|
-
const output = await git(["status", "--porcelain", "-z"], cwd);
|
|
74
|
-
if (!output)
|
|
75
|
-
return [];
|
|
76
|
-
const files = [];
|
|
77
|
-
// -z 格式: XY PATH\0,未合并项为 XY ORIG_PATH\0 PATH\0,重命名为 XY ORIG_PATH\0 PATH\0
|
|
78
|
-
const entries = output.split("\0").filter(Boolean);
|
|
79
|
-
let i = 0;
|
|
80
|
-
while (i < entries.length) {
|
|
81
|
-
const entry = entries[i];
|
|
82
|
-
if (entry.length < 3) {
|
|
83
|
-
i++;
|
|
84
|
-
continue;
|
|
85
|
-
}
|
|
86
|
-
const xy = entry.slice(0, 2);
|
|
87
|
-
let filePath = entry.slice(3);
|
|
88
|
-
// 重命名文件:下一个条目是新路径
|
|
89
|
-
if ((xy[0] === "R" || xy[0] === "C") && i + 1 < entries.length) {
|
|
90
|
-
filePath = entries[i + 1];
|
|
91
|
-
i++;
|
|
92
|
-
}
|
|
93
|
-
files.push({ path: filePath, status: xyToStatus(xy) });
|
|
94
|
-
i++;
|
|
95
|
-
}
|
|
96
|
-
return files;
|
|
97
|
-
}
|
|
98
|
-
/** 将 git status XY 状态码转换为语义化状态 */
|
|
99
|
-
function xyToStatus(xy) {
|
|
100
|
-
if (xy.includes("?"))
|
|
101
|
-
return "untracked";
|
|
102
|
-
if (xy.includes("U") || xy === "AA" || xy === "DD")
|
|
103
|
-
return "conflicted";
|
|
104
|
-
if (xy[0] === "A" || xy[1] === "A")
|
|
105
|
-
return "added";
|
|
106
|
-
if (xy[0] === "D" || xy[1] === "D")
|
|
107
|
-
return "deleted";
|
|
108
|
-
if (xy[0] === "R")
|
|
109
|
-
return "renamed";
|
|
110
|
-
return "modified";
|
|
111
|
-
}
|
|
112
|
-
// ── 日志查询 ──
|
|
113
|
-
/**
|
|
114
|
-
* 获取 Git 提交日志。
|
|
115
|
-
* @param cwd - 工作目录
|
|
116
|
-
* @param options - 查询选项(最大数量、起始日期、作者、路径过滤)
|
|
117
|
-
* @returns 提交日志条目数组
|
|
118
|
-
*/
|
|
119
|
-
export async function getLog(cwd, options) {
|
|
120
|
-
debug("Git操作", "获取提交日志");
|
|
121
|
-
const args = ["log", "--format=%H%x00%h%x00%an%x00%ai%x00%s%x01"];
|
|
122
|
-
if (options?.ref)
|
|
123
|
-
args.push(options.ref);
|
|
124
|
-
if (options?.maxCount)
|
|
125
|
-
args.push(`--max-count=${options.maxCount}`);
|
|
126
|
-
if (options?.since)
|
|
127
|
-
args.push(`--since=${options.since}`);
|
|
128
|
-
if (options?.author)
|
|
129
|
-
args.push(`--author=${options.author}`);
|
|
130
|
-
args.push("--");
|
|
131
|
-
if (options?.path)
|
|
132
|
-
args.push(options.path);
|
|
133
|
-
let output;
|
|
134
|
-
try {
|
|
135
|
-
output = await git(args, cwd);
|
|
136
|
-
}
|
|
137
|
-
catch {
|
|
138
|
-
return [];
|
|
139
|
-
}
|
|
140
|
-
if (!output.trim())
|
|
141
|
-
return [];
|
|
142
|
-
return output.trim().split("\x01").filter(Boolean).map((entry) => {
|
|
143
|
-
const parts = entry.trim().split("\x00");
|
|
144
|
-
const [hash, shortHash, author, date, ...msgParts] = parts;
|
|
145
|
-
return { hash, shortHash, author, date, message: msgParts.join("\x00") };
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* 获取贡献者提交统计(shortlog)。
|
|
150
|
-
* @param cwd - 工作目录
|
|
151
|
-
* @param since - 起始日期过滤(可选)
|
|
152
|
-
* @returns 贡献者及其提交次数数组
|
|
153
|
-
*/
|
|
154
|
-
export async function getShortlog(cwd, since) {
|
|
155
|
-
debug("Git操作", "获取贡献者统计");
|
|
156
|
-
const args = ["shortlog", "-sn", "--all"];
|
|
157
|
-
if (since)
|
|
158
|
-
args.push(`--since=${since}`);
|
|
159
|
-
const output = await git(args, cwd);
|
|
160
|
-
if (!output.trim())
|
|
161
|
-
return [];
|
|
162
|
-
return output.trim().split("\n").map((line) => {
|
|
163
|
-
const match = line.match(/^\s*(\d+)\s+(.+)$/);
|
|
164
|
-
if (!match)
|
|
165
|
-
return null;
|
|
166
|
-
return { count: parseInt(match[1], 10), author: match[2].trim() };
|
|
167
|
-
}).filter(Boolean);
|
|
168
|
-
}
|
|
169
|
-
// ── 差异查询 ──
|
|
170
|
-
/**
|
|
171
|
-
* 获取差异统计信息(numstat 格式)。
|
|
172
|
-
* @param cwd - 工作目录
|
|
173
|
-
* @param options - 查询选项(是否包含暂存区、路径过滤)
|
|
174
|
-
* @returns 差异统计块数组
|
|
175
|
-
*/
|
|
176
|
-
export async function getDiff(cwd, options) {
|
|
177
|
-
debug("Git操作", "获取差异统计");
|
|
178
|
-
const args = ["diff", "--numstat"];
|
|
179
|
-
if (options?.cached)
|
|
180
|
-
args.push("--cached");
|
|
181
|
-
args.push("--");
|
|
182
|
-
if (options?.path)
|
|
183
|
-
args.push(options.path);
|
|
184
|
-
const numstat = await git(args, cwd);
|
|
185
|
-
if (!numstat.trim())
|
|
186
|
-
return [];
|
|
187
|
-
const hunks = [];
|
|
188
|
-
for (const line of numstat.trim().split("\n")) {
|
|
189
|
-
const parts = line.split("\t");
|
|
190
|
-
if (parts.length >= 3) {
|
|
191
|
-
hunks.push({
|
|
192
|
-
file: parts[2],
|
|
193
|
-
additions: parts[0] === "-" ? 0 : parseInt(parts[0], 10),
|
|
194
|
-
deletions: parts[1] === "-" ? 0 : parseInt(parts[1], 10),
|
|
195
|
-
patch: "",
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return hunks;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* 获取指定文件的差异补丁。
|
|
203
|
-
* @param cwd - 工作目录
|
|
204
|
-
* @param filePath - 文件路径
|
|
205
|
-
* @param options - 查询选项(是否包含暂存区)
|
|
206
|
-
* @returns 差异补丁字符串
|
|
207
|
-
*/
|
|
208
|
-
export async function getDiffPatch(cwd, filePath, options) {
|
|
209
|
-
debug("Git操作", "获取文件差异补丁 —", filePath);
|
|
210
|
-
const args = ["diff"];
|
|
211
|
-
if (options?.cached)
|
|
212
|
-
args.push("--cached");
|
|
213
|
-
args.push("--", filePath);
|
|
214
|
-
return git(args, cwd);
|
|
215
|
-
}
|
|
216
|
-
// ── 逐行归属 ──
|
|
217
|
-
/**
|
|
218
|
-
* 获取指定文件的逐行 Blame 信息。
|
|
219
|
-
* @param cwd - 工作目录
|
|
220
|
-
* @param filePath - 文件路径
|
|
221
|
-
* @returns 逐行 Blame 信息数组
|
|
222
|
-
*/
|
|
223
|
-
export async function getBlame(cwd, filePath) {
|
|
224
|
-
debug("Git操作", "获取文件Blame信息 —", filePath);
|
|
225
|
-
const output = await git(["blame", "--porcelain", filePath], cwd);
|
|
226
|
-
if (!output.trim())
|
|
227
|
-
return [];
|
|
228
|
-
const lines = [];
|
|
229
|
-
let currentHash = "";
|
|
230
|
-
let currentAuthor = "";
|
|
231
|
-
let currentDate = "";
|
|
232
|
-
let currentLine = 0;
|
|
233
|
-
for (const line of output.split("\n")) {
|
|
234
|
-
const headerMatch = line.match(/^([0-9a-f]{40})\s+(\d+)\s+(\d+)/);
|
|
235
|
-
if (headerMatch) {
|
|
236
|
-
currentHash = headerMatch[1].slice(0, 8);
|
|
237
|
-
currentLine = parseInt(headerMatch[3], 10);
|
|
238
|
-
continue;
|
|
239
|
-
}
|
|
240
|
-
if (line.startsWith("author ")) {
|
|
241
|
-
currentAuthor = line.slice(7);
|
|
242
|
-
continue;
|
|
243
|
-
}
|
|
244
|
-
if (line.startsWith("author-time ")) {
|
|
245
|
-
const ts = parseInt(line.slice(12), 10);
|
|
246
|
-
currentDate = new Date(ts * 1000).toISOString().split("T")[0];
|
|
247
|
-
continue;
|
|
248
|
-
}
|
|
249
|
-
if (line.startsWith("\t")) {
|
|
250
|
-
lines.push({
|
|
251
|
-
line: currentLine,
|
|
252
|
-
hash: currentHash,
|
|
253
|
-
author: currentAuthor,
|
|
254
|
-
date: currentDate,
|
|
255
|
-
content: line.slice(1),
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
return lines;
|
|
260
|
-
}
|
|
261
|
-
// ── 分支操作 ──
|
|
262
|
-
/**
|
|
263
|
-
* 列出所有本地分支。
|
|
264
|
-
* @param cwd - 工作目录
|
|
265
|
-
* @returns 分支信息数组(名称和是否为当前分支)
|
|
266
|
-
*/
|
|
267
|
-
export async function listBranches(cwd) {
|
|
268
|
-
debug("Git操作", "列出所有分支");
|
|
269
|
-
const output = await git(["branch", "--format=%(refname:short) %(HEAD)"], cwd);
|
|
270
|
-
if (!output.trim())
|
|
271
|
-
return [];
|
|
272
|
-
return output.trim().split("\n").map((line) => {
|
|
273
|
-
const [name, head] = line.trim().split(/\s+/);
|
|
274
|
-
return { name, isCurrent: head === "*" };
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
// ── 写操作 ──
|
|
278
|
-
/**
|
|
279
|
-
* 将文件添加到暂存区。
|
|
280
|
-
* @param cwd - 工作目录
|
|
281
|
-
* @param paths - 要暂存的文件路径列表
|
|
282
|
-
*/
|
|
283
|
-
export async function add(cwd, paths) {
|
|
284
|
-
debug("Git操作", "暂存文件", paths.join(", "));
|
|
285
|
-
await git(["add", "--", ...paths], cwd); // -- 防止路径被解析为 git flag
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* 创建提交。
|
|
289
|
-
* @param cwd - 工作目录
|
|
290
|
-
* @param message - 提交信息
|
|
291
|
-
* @returns git commit 命令输出
|
|
292
|
-
*/
|
|
293
|
-
export async function commit(cwd, message) {
|
|
294
|
-
debug("Git操作", "创建提交");
|
|
295
|
-
return git(["commit", "-m", message], cwd);
|
|
296
|
-
}
|
|
297
|
-
/**
|
|
298
|
-
* 推送到远程仓库。
|
|
299
|
-
* @param cwd - 工作目录
|
|
300
|
-
* @param remote - 远程名称(可选)
|
|
301
|
-
* @param branch - 分支名称(可选)
|
|
302
|
-
* @returns git push 命令输出
|
|
303
|
-
*/
|
|
304
|
-
export async function push(cwd, remote, branch) {
|
|
305
|
-
debug("Git操作", "推送到远程", remote, branch);
|
|
306
|
-
const args = ["push"];
|
|
307
|
-
if (remote && branch) {
|
|
308
|
-
args.push(remote, branch);
|
|
309
|
-
}
|
|
310
|
-
else if (remote) {
|
|
311
|
-
args.push(remote);
|
|
312
|
-
}
|
|
313
|
-
return git(args, cwd);
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* 获取两个分支的合并基点。
|
|
317
|
-
* @param cwd - 工作目录
|
|
318
|
-
* @param branchA - 分支 A 名称
|
|
319
|
-
* @param branchB - 分支 B 名称
|
|
320
|
-
* @returns 合并基点的 commit hash
|
|
321
|
-
*/
|
|
322
|
-
export async function getMergeBase(cwd, branchA, branchB) {
|
|
323
|
-
debug("Git操作", "获取合并基点 —", branchA, branchB);
|
|
324
|
-
return (await git(["merge-base", branchA, branchB], cwd)).trim();
|
|
325
|
-
}
|
|
326
|
-
/**
|
|
327
|
-
* 获取远程仓库 URL。
|
|
328
|
-
* @param cwd - 工作目录
|
|
329
|
-
* @param remote - 远程名称,默认为 "origin"
|
|
330
|
-
* @returns 远程 URL,未找到时返回 null
|
|
331
|
-
*/
|
|
332
|
-
export async function getRemoteUrl(cwd, remote = "origin") {
|
|
333
|
-
debug("Git操作", "获取远程仓库URL —", remote);
|
|
334
|
-
try {
|
|
335
|
-
return (await git(["remote", "get-url", remote], cwd)).trim();
|
|
336
|
-
}
|
|
337
|
-
catch {
|
|
338
|
-
return null;
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
/**
|
|
342
|
-
* 获取 HEAD 的短 commit hash。
|
|
343
|
-
* @param cwd - 工作目录
|
|
344
|
-
* @returns HEAD 的短 hash
|
|
345
|
-
*/
|
|
346
|
-
export async function getHeadCommitHash(cwd) {
|
|
347
|
-
debug("Git操作", "获取HEAD commit hash");
|
|
348
|
-
return (await git(["rev-parse", "--short", "HEAD"], cwd)).trim();
|
|
349
|
-
}
|
|
350
|
-
//# sourceMappingURL=operations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/git/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gate Engine — server/tools/ 兼容 shim。
|
|
3
|
-
*
|
|
4
|
-
* 真实实现已迁移至 src/gate/gate_engine.ts。
|
|
5
|
-
* 本文件保留 re-export 以维持外部 import 兼容性(builtin_executors.ts 等仍从此处 import)。
|
|
6
|
-
*
|
|
7
|
-
* 职责边界:
|
|
8
|
-
* - 负责:re-export 全部 gate_engine 公共 API
|
|
9
|
-
* - 不负责:实现(在 gate/gate_engine.ts)
|
|
10
|
-
*
|
|
11
|
-
* 被谁调用:gate/builtin_executors.ts、tests/server/tools/
|
|
12
|
-
* 调用谁:gate/gate_engine.ts
|
|
13
|
-
* 数据流:无(纯 re-export 转发,不含业务数据)
|
|
14
|
-
* 持久化:无
|
|
15
|
-
*/
|
|
16
|
-
export * from "../../gate/gate_engine.js";
|
|
17
|
-
//# sourceMappingURL=gate_engine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gate_engine.d.ts","sourceRoot":"","sources":["../../../src/server/tools/gate_engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,2BAA2B,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gate Engine — server/tools/ 兼容 shim。
|
|
3
|
-
*
|
|
4
|
-
* 真实实现已迁移至 src/gate/gate_engine.ts。
|
|
5
|
-
* 本文件保留 re-export 以维持外部 import 兼容性(builtin_executors.ts 等仍从此处 import)。
|
|
6
|
-
*
|
|
7
|
-
* 职责边界:
|
|
8
|
-
* - 负责:re-export 全部 gate_engine 公共 API
|
|
9
|
-
* - 不负责:实现(在 gate/gate_engine.ts)
|
|
10
|
-
*
|
|
11
|
-
* 被谁调用:gate/builtin_executors.ts、tests/server/tools/
|
|
12
|
-
* 调用谁:gate/gate_engine.ts
|
|
13
|
-
* 数据流:无(纯 re-export 转发,不含业务数据)
|
|
14
|
-
* 持久化:无
|
|
15
|
-
*/
|
|
16
|
-
export * from "../../gate/gate_engine.js";
|
|
17
|
-
//# sourceMappingURL=gate_engine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gate_engine.js","sourceRoot":"","sources":["../../../src/server/tools/gate_engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,2BAA2B,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LLM Token 预算检查 — 从 middleware.ts 抽出的独立关切。
|
|
3
|
-
*
|
|
4
|
-
* 职责边界:
|
|
5
|
-
* - 负责:在调用 AI 能力前校验 LLMGateway 的 Token 预算
|
|
6
|
-
* - 不负责:合同授权、工作区校验、denied_paths
|
|
7
|
-
*
|
|
8
|
-
* 被谁调用:middleware.performToolCall
|
|
9
|
-
* 调用谁:LLMGateway.request / SoloForgeError 类型
|
|
10
|
-
*
|
|
11
|
-
* 数据流:(toolName, aiOp, taskId) → { allowed, violation?, warning? }
|
|
12
|
-
* 持久化:无
|
|
13
|
-
*
|
|
14
|
-
* CORE-001:超预算时硬熔断(hard_fail);网关自身异常降级放行并返回 warning。
|
|
15
|
-
*/
|
|
16
|
-
import type { LLMGateway } from "../../../shared/llm_gateway.js";
|
|
17
|
-
import type { ToolInvocationViolation } from "../../../gate/index.js";
|
|
18
|
-
/** 预算检查结果 */
|
|
19
|
-
export interface BudgetCheckResult {
|
|
20
|
-
/** hard_fail 违规(超预算时存在) */
|
|
21
|
-
violation?: ToolInvocationViolation;
|
|
22
|
-
/** 降级放行时的警告(网关自身异常或低预算警告) */
|
|
23
|
-
warning?: string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* 检查工具调用的 LLM Token 预算。
|
|
27
|
-
*
|
|
28
|
-
* @param toolName 工具名
|
|
29
|
-
* @param invocationId 调用 ID(写入 violation 用)
|
|
30
|
-
* @param taskId 任务 ID
|
|
31
|
-
* @param gateway LLM 网关
|
|
32
|
-
* @returns 预算检查结果(violation 表示硬阻断,warning 表示软警告)
|
|
33
|
-
*/
|
|
34
|
-
export declare function checkTokenBudget(toolName: string, invocationId: string, taskId: string | undefined, gateway: LLMGateway): BudgetCheckResult;
|
|
35
|
-
//# sourceMappingURL=budget_check.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"budget_check.d.ts","sourceRoot":"","sources":["../../../../src/server/tools/middleware/budget_check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,gCAAgC,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AActE,aAAa;AACb,MAAM,WAAW,iBAAiB;IAChC,2BAA2B;IAC3B,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,UAAU,GAClB,iBAAiB,CA8BnB"}
|