harness-engineering-agent 0.1.8 → 0.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 +146 -60
- package/dist/agent/harness-agent-capabilities.d.ts +4 -0
- package/dist/agent/harness-agent-capabilities.d.ts.map +1 -0
- package/dist/agent/harness-agent-capabilities.js +4 -0
- package/dist/agent/harness-agent-capabilities.js.map +1 -0
- package/dist/agent/harness-agent-capability-builders.d.ts +11 -0
- package/dist/agent/harness-agent-capability-builders.d.ts.map +1 -0
- package/dist/agent/harness-agent-capability-builders.js +57 -0
- package/dist/agent/harness-agent-capability-builders.js.map +1 -0
- package/dist/agent/harness-agent-capability-data.d.ts +3 -0
- package/dist/agent/harness-agent-capability-data.d.ts.map +1 -0
- package/dist/agent/harness-agent-capability-data.js +23 -0
- package/dist/agent/harness-agent-capability-data.js.map +1 -0
- package/dist/agent/harness-agent-capability-types.d.ts +50 -0
- package/dist/agent/harness-agent-capability-types.d.ts.map +1 -0
- package/dist/agent/harness-agent-capability-types.js +3 -0
- package/dist/agent/harness-agent-capability-types.js.map +1 -0
- package/dist/agent/harness-role-capability-directory-data.d.ts +3 -0
- package/dist/agent/harness-role-capability-directory-data.d.ts.map +1 -0
- package/dist/agent/harness-role-capability-directory-data.js +208 -0
- package/dist/agent/harness-role-capability-directory-data.js.map +1 -0
- package/dist/agent/harness-role-capability-directory.d.ts +43 -0
- package/dist/agent/harness-role-capability-directory.d.ts.map +1 -0
- package/dist/agent/harness-role-capability-directory.js +57 -0
- package/dist/agent/harness-role-capability-directory.js.map +1 -0
- package/dist/agent/index.d.ts +7 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +6 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/config/config-defaults.d.ts +22 -0
- package/dist/config/config-defaults.d.ts.map +1 -1
- package/dist/config/config-defaults.js +22 -0
- package/dist/config/config-defaults.js.map +1 -1
- package/dist/config/config-merge.d.ts.map +1 -1
- package/dist/config/config-merge.js +30 -0
- package/dist/config/config-merge.js.map +1 -1
- package/dist/config/config-schema.d.ts +59 -0
- package/dist/config/config-schema.d.ts.map +1 -1
- package/dist/config/config-schema.js +18 -1
- package/dist/config/config-schema.js.map +1 -1
- package/dist/config/config-types.d.ts +5 -1
- package/dist/config/config-types.d.ts.map +1 -1
- package/dist/config/harness-config.d.ts +2 -1
- package/dist/config/harness-config.d.ts.map +1 -1
- package/dist/config/harness-config.js +1 -0
- package/dist/config/harness-config.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/opencode-compatibility.d.ts +37 -0
- package/dist/config/opencode-compatibility.d.ts.map +1 -0
- package/dist/config/opencode-compatibility.js +99 -0
- package/dist/config/opencode-compatibility.js.map +1 -0
- package/dist/controller/agent-output.d.ts +1 -1
- package/dist/controller/agent-output.d.ts.map +1 -1
- package/dist/controller/agent-output.js +18 -1
- package/dist/controller/agent-output.js.map +1 -1
- package/dist/controller/agent-session-types.d.ts +56 -0
- package/dist/controller/agent-session-types.d.ts.map +1 -0
- package/dist/controller/agent-session-types.js +2 -0
- package/dist/controller/agent-session-types.js.map +1 -0
- package/dist/controller/agent-session-utils.d.ts +52 -0
- package/dist/controller/agent-session-utils.d.ts.map +1 -0
- package/dist/controller/agent-session-utils.js +118 -0
- package/dist/controller/agent-session-utils.js.map +1 -0
- package/dist/controller/agent-session.d.ts +2 -55
- package/dist/controller/agent-session.d.ts.map +1 -1
- package/dist/controller/agent-session.js +82 -129
- package/dist/controller/agent-session.js.map +1 -1
- package/dist/controller/contracts.d.ts +3 -2
- package/dist/controller/contracts.d.ts.map +1 -1
- package/dist/controller/contracts.js.map +1 -1
- package/dist/controller/evidence-factory.js +7 -1
- package/dist/controller/evidence-factory.js.map +1 -1
- package/dist/controller/failure-analysis.d.ts +12 -0
- package/dist/controller/failure-analysis.d.ts.map +1 -1
- package/dist/controller/failure-analysis.js +41 -0
- package/dist/controller/failure-analysis.js.map +1 -1
- package/dist/controller/failure-analyzer-schemas.d.ts +87 -0
- package/dist/controller/failure-analyzer-schemas.d.ts.map +1 -0
- package/dist/controller/failure-analyzer-schemas.js +117 -0
- package/dist/controller/failure-analyzer-schemas.js.map +1 -0
- package/dist/controller/graph-validator.js +18 -4
- package/dist/controller/graph-validator.js.map +1 -1
- package/dist/controller/index.d.ts +7 -2
- package/dist/controller/index.d.ts.map +1 -1
- package/dist/controller/index.js +4 -1
- package/dist/controller/index.js.map +1 -1
- package/dist/controller/repair-loop.d.ts +1 -1
- package/dist/controller/repair-loop.d.ts.map +1 -1
- package/dist/controller/repair-loop.js +28 -0
- package/dist/controller/repair-loop.js.map +1 -1
- package/dist/controller/report-factory.d.ts.map +1 -1
- package/dist/controller/report-factory.js +49 -21
- package/dist/controller/report-factory.js.map +1 -1
- package/dist/controller/role-prompts.d.ts +2 -1
- package/dist/controller/role-prompts.d.ts.map +1 -1
- package/dist/controller/role-prompts.js +3 -9
- package/dist/controller/role-prompts.js.map +1 -1
- package/dist/controller/run-acceptance.d.ts +17 -0
- package/dist/controller/run-acceptance.d.ts.map +1 -0
- package/dist/controller/run-acceptance.js +179 -0
- package/dist/controller/run-acceptance.js.map +1 -0
- package/dist/controller/run-controller.d.ts.map +1 -1
- package/dist/controller/run-controller.js +244 -22
- package/dist/controller/run-controller.js.map +1 -1
- package/dist/controller/session-tool-authorization.d.ts +14 -0
- package/dist/controller/session-tool-authorization.d.ts.map +1 -0
- package/dist/controller/session-tool-authorization.js +88 -0
- package/dist/controller/session-tool-authorization.js.map +1 -0
- package/dist/controller/task-agent-output.d.ts +13 -2
- package/dist/controller/task-agent-output.d.ts.map +1 -1
- package/dist/controller/task-agent-output.js +58 -1
- package/dist/controller/task-agent-output.js.map +1 -1
- package/dist/controller/task-agent-schemas.d.ts +745 -26
- package/dist/controller/task-agent-schemas.d.ts.map +1 -1
- package/dist/controller/task-agent-schemas.js +70 -21
- package/dist/controller/task-agent-schemas.js.map +1 -1
- package/dist/controller/task-executor.d.ts +1 -1
- package/dist/controller/task-executor.d.ts.map +1 -1
- package/dist/controller/task-executor.js +269 -105
- package/dist/controller/task-executor.js.map +1 -1
- package/dist/doctor/cli.d.ts +3 -0
- package/dist/doctor/cli.d.ts.map +1 -0
- package/dist/doctor/cli.js +10 -0
- package/dist/doctor/cli.js.map +1 -0
- package/dist/doctor/index.d.ts +7 -0
- package/dist/doctor/index.d.ts.map +1 -0
- package/dist/doctor/index.js +16 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/local-mcp-probe.d.ts +3 -0
- package/dist/doctor/local-mcp-probe.d.ts.map +1 -0
- package/dist/doctor/local-mcp-probe.js +151 -0
- package/dist/doctor/local-mcp-probe.js.map +1 -0
- package/dist/doctor/opencode-config.d.ts +43 -0
- package/dist/doctor/opencode-config.d.ts.map +1 -0
- package/dist/doctor/opencode-config.js +103 -0
- package/dist/doctor/opencode-config.js.map +1 -0
- package/dist/doctor/run-harness-doctor.d.ts +23 -0
- package/dist/doctor/run-harness-doctor.d.ts.map +1 -0
- package/dist/doctor/run-harness-doctor.js +176 -0
- package/dist/doctor/run-harness-doctor.js.map +1 -0
- package/dist/doctor/types.d.ts +69 -0
- package/dist/doctor/types.d.ts.map +1 -0
- package/dist/doctor/types.js +8 -0
- package/dist/doctor/types.js.map +1 -0
- package/dist/domain/acceptance-criteria.d.ts +9 -0
- package/dist/domain/acceptance-criteria.d.ts.map +1 -0
- package/dist/domain/acceptance-criteria.js +38 -0
- package/dist/domain/acceptance-criteria.js.map +1 -0
- package/dist/domain/context-package.d.ts +43 -0
- package/dist/domain/context-package.d.ts.map +1 -0
- package/dist/domain/context-package.js +54 -0
- package/dist/domain/context-package.js.map +1 -0
- package/dist/domain/evidence.d.ts +1 -0
- package/dist/domain/evidence.d.ts.map +1 -1
- package/dist/domain/evidence.js +1 -2
- package/dist/domain/evidence.js.map +1 -1
- package/dist/domain/index.d.ts +14 -4
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +7 -2
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/plan-artifacts.d.ts +170 -0
- package/dist/domain/plan-artifacts.d.ts.map +1 -0
- package/dist/domain/plan-artifacts.js +187 -0
- package/dist/domain/plan-artifacts.js.map +1 -0
- package/dist/domain/project-context.d.ts +10 -0
- package/dist/domain/project-context.d.ts.map +1 -0
- package/dist/domain/project-context.js +11 -0
- package/dist/domain/project-context.js.map +1 -0
- package/dist/domain/report.d.ts +608 -11
- package/dist/domain/report.d.ts.map +1 -1
- package/dist/domain/report.js +6 -4
- package/dist/domain/report.js.map +1 -1
- package/dist/domain/requirement.d.ts +22 -2
- package/dist/domain/requirement.d.ts.map +1 -1
- package/dist/domain/requirement.js +26 -3
- package/dist/domain/requirement.js.map +1 -1
- package/dist/domain/run-acceptance.d.ts +33 -0
- package/dist/domain/run-acceptance.d.ts.map +1 -0
- package/dist/domain/run-acceptance.js +29 -0
- package/dist/domain/run-acceptance.js.map +1 -0
- package/dist/domain/run.d.ts +596 -7
- package/dist/domain/run.d.ts.map +1 -1
- package/dist/domain/run.js +58 -0
- package/dist/domain/run.js.map +1 -1
- package/dist/domain/shared.d.ts +40 -2
- package/dist/domain/shared.d.ts.map +1 -1
- package/dist/domain/shared.js +26 -0
- package/dist/domain/shared.js.map +1 -1
- package/dist/domain/task-review.d.ts +57 -0
- package/dist/domain/task-review.d.ts.map +1 -0
- package/dist/domain/task-review.js +63 -0
- package/dist/domain/task-review.js.map +1 -0
- package/dist/domain/task.d.ts +24 -2
- package/dist/domain/task.d.ts.map +1 -1
- package/dist/domain/task.js +20 -12
- package/dist/domain/task.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin/create-harness-plugin.d.ts +4 -28
- package/dist/plugin/create-harness-plugin.d.ts.map +1 -1
- package/dist/plugin/create-harness-plugin.js +33 -166
- package/dist/plugin/create-harness-plugin.js.map +1 -1
- package/dist/plugin/harness-agent-config.d.ts +7 -0
- package/dist/plugin/harness-agent-config.d.ts.map +1 -1
- package/dist/plugin/harness-agent-config.js +72 -118
- package/dist/plugin/harness-agent-config.js.map +1 -1
- package/dist/plugin/harness-chat-protocol.d.ts.map +1 -1
- package/dist/plugin/harness-chat-protocol.js +29 -6
- package/dist/plugin/harness-chat-protocol.js.map +1 -1
- package/dist/plugin/harness-plugin-identifiers.d.ts +5 -0
- package/dist/plugin/harness-plugin-identifiers.d.ts.map +1 -0
- package/dist/plugin/harness-plugin-identifiers.js +24 -0
- package/dist/plugin/harness-plugin-identifiers.js.map +1 -0
- package/dist/plugin/harness-plugin-runtime.d.ts +64 -0
- package/dist/plugin/harness-plugin-runtime.d.ts.map +1 -0
- package/dist/plugin/harness-plugin-runtime.js +125 -0
- package/dist/plugin/harness-plugin-runtime.js.map +1 -0
- package/dist/plugin/harness-plugin-scheduler.d.ts +16 -0
- package/dist/plugin/harness-plugin-scheduler.d.ts.map +1 -0
- package/dist/plugin/harness-plugin-scheduler.js +51 -0
- package/dist/plugin/harness-plugin-scheduler.js.map +1 -0
- package/dist/plugin/harness-requirement.d.ts +1 -1
- package/dist/plugin/harness-requirement.d.ts.map +1 -1
- package/dist/plugin/harness-requirement.js +2 -3
- package/dist/plugin/harness-requirement.js.map +1 -1
- package/dist/session/contracts.d.ts +9 -0
- package/dist/session/contracts.d.ts.map +1 -1
- package/dist/session/contracts.js.map +1 -1
- package/dist/session/fake-session-adapter.d.ts.map +1 -1
- package/dist/session/fake-session-adapter.js +1 -0
- package/dist/session/fake-session-adapter.js.map +1 -1
- package/dist/session/index.d.ts +1 -1
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js.map +1 -1
- package/dist/session/opencode-session-adapter.d.ts +2 -1
- package/dist/session/opencode-session-adapter.d.ts.map +1 -1
- package/dist/session/opencode-session-adapter.js +7 -2
- package/dist/session/opencode-session-adapter.js.map +1 -1
- package/dist/session/opencode-session-prompts.d.ts +2 -10
- package/dist/session/opencode-session-prompts.d.ts.map +1 -1
- package/dist/session/opencode-session-prompts.js +7 -9
- package/dist/session/opencode-session-prompts.js.map +1 -1
- package/dist/store/run-event.d.ts +596 -7
- package/dist/store/run-event.d.ts.map +1 -1
- package/dist/tools/harness-research-tools.d.ts +22 -0
- package/dist/tools/harness-research-tools.d.ts.map +1 -1
- package/dist/tools/harness-research-tools.js +173 -64
- package/dist/tools/harness-research-tools.js.map +1 -1
- package/dist/tools/harness-tool-capabilities.d.ts +342 -0
- package/dist/tools/harness-tool-capabilities.d.ts.map +1 -0
- package/dist/tools/harness-tool-capabilities.js +170 -0
- package/dist/tools/harness-tool-capabilities.js.map +1 -0
- package/dist/verification/command-policy.d.ts.map +1 -1
- package/dist/verification/command-policy.js +2 -2
- package/dist/verification/command-policy.js.map +1 -1
- package/dist/workspace/collect-project-context.d.ts +3 -0
- package/dist/workspace/collect-project-context.d.ts.map +1 -0
- package/dist/workspace/collect-project-context.js +92 -0
- package/dist/workspace/collect-project-context.js.map +1 -0
- package/dist/workspace/index.d.ts +1 -0
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +1 -0
- package/dist/workspace/index.js.map +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { HARNESS_SESSION_ROLE } from "../session/contracts.js";
|
|
2
|
+
import { HARNESS_ACCEPTANCE_AGENT_NAME, HARNESS_ACCEPTANCE_DISPLAY_NAME, HARNESS_FAILURE_ANALYZER_AGENT_NAME, HARNESS_FAILURE_ANALYZER_DISPLAY_NAME, HARNESS_INTAKE_AGENT_NAME, HARNESS_INTAKE_DISPLAY_NAME, HARNESS_PLANNER_AGENT_NAME, HARNESS_PLANNER_DISPLAY_NAME, HARNESS_PRIMARY_AGENT_NAME, HARNESS_PRIMARY_DISPLAY_NAME, HARNESS_REPAIR_WORKER_AGENT_NAME, HARNESS_REPAIR_WORKER_DISPLAY_NAME, HARNESS_VERIFIER_AGENT_NAME, HARNESS_VERIFIER_DISPLAY_NAME, HARNESS_WORKER_AGENT_NAME, HARNESS_WORKER_DISPLAY_NAME, } from "../session/harness-agent-names.js";
|
|
3
|
+
import { HARNESS_READ_ONLY_BUILTINS, HARNESS_ROLE_CAPABILITY_DIRECTORY_ACCEPTANCE_PLUGIN_TOOL_NAMES, HARNESS_ROLE_CAPABILITY_DIRECTORY_PLUGIN_TOOL_NAMES, HARNESS_ROLE_CAPABILITY_DIRECTORY_VERSION, HARNESS_WORKER_BUILTINS, validateHarnessRoleCapabilityDirectory, } from "./harness-role-capability-directory.js";
|
|
4
|
+
const emptyPluginTools = [];
|
|
5
|
+
const entry = (value) => value;
|
|
6
|
+
export const HARNESS_ROLE_CAPABILITY_DIRECTORY = validateHarnessRoleCapabilityDirectory({
|
|
7
|
+
version: HARNESS_ROLE_CAPABILITY_DIRECTORY_VERSION,
|
|
8
|
+
entries: [
|
|
9
|
+
entry({
|
|
10
|
+
agentId: HARNESS_PRIMARY_AGENT_NAME,
|
|
11
|
+
displayName: HARNESS_PRIMARY_DISPLAY_NAME,
|
|
12
|
+
description: "Use for natural-language Harness lifecycle operations: start, status, resume, cancel, report.",
|
|
13
|
+
mode: "primary",
|
|
14
|
+
hidden: false,
|
|
15
|
+
profileKey: "harness",
|
|
16
|
+
pluginTools: emptyPluginTools,
|
|
17
|
+
responsibilities: ["呈现 Harness 生命周期结果", "展示 runId、状态、阻塞原因和下一步"],
|
|
18
|
+
inputContext: ["用户自然语言请求", "Controller synthetic result"],
|
|
19
|
+
builtins: HARNESS_READ_ONLY_BUILTINS,
|
|
20
|
+
permission: { edit: "deny", bash: "deny" },
|
|
21
|
+
outputContract: null,
|
|
22
|
+
budget: { summary: "Controller 管理整体预算;Harness 只负责展示。", dimensions: ["overall"] },
|
|
23
|
+
suggestions: { status: [], action: [] },
|
|
24
|
+
promptLines: [
|
|
25
|
+
"你是 Harness Agent,只负责呈现 Harness 运行结果和确定的生命周期状态。",
|
|
26
|
+
"关于可用模型、当前模型、MCP、智能体、配置、帮助或工具的普通能力查询,直接按 OpenCode 正常能力回答,不要进入 Harness 协调。",
|
|
27
|
+
"首轮受理消息带有版本化 Harness 受理 payload,包含 runId 和初始状态;后台完成或失败消息带有 <!-- HARNESS_INTERNAL_RESULT --> 标记的 synthetic result。",
|
|
28
|
+
"你只基于结构化受理或 synthetic result 做总结,不要猜测、补造或改写运行状态,也不要要求用户查看控制面板。",
|
|
29
|
+
"不要直接编辑文件、执行 shell、调用 task 委派子 Agent 或声明未完成的任务已完成。",
|
|
30
|
+
"向用户清楚展示 runId、当前状态、阻塞原因和下一步操作。",
|
|
31
|
+
],
|
|
32
|
+
}),
|
|
33
|
+
entry({
|
|
34
|
+
agentId: HARNESS_INTAKE_AGENT_NAME,
|
|
35
|
+
displayName: HARNESS_INTAKE_DISPLAY_NAME,
|
|
36
|
+
description: "Internal Harness Intake parser; never edits, executes, or delegates.",
|
|
37
|
+
mode: "all",
|
|
38
|
+
hidden: true,
|
|
39
|
+
profileKey: "harness",
|
|
40
|
+
sessionRole: HARNESS_SESSION_ROLE.intake,
|
|
41
|
+
pluginTools: emptyPluginTools,
|
|
42
|
+
responsibilities: ["将自然语言整理成 HarnessIntent", "发现阻塞歧义时返回 clarification"],
|
|
43
|
+
inputContext: ["生命周期请求", "start 所需 Requirement 字段"],
|
|
44
|
+
builtins: HARNESS_READ_ONLY_BUILTINS,
|
|
45
|
+
permission: { edit: "deny", bash: "deny" },
|
|
46
|
+
outputContract: { schemaVersion: "1.0.0", type: "HarnessIntent" },
|
|
47
|
+
budget: { summary: "消耗整体预算,不推进业务状态。", dimensions: ["overall"] },
|
|
48
|
+
suggestions: { status: [], action: [] },
|
|
49
|
+
promptLines: [
|
|
50
|
+
"你是 Nuwa(Harness Intake)子 Agent。",
|
|
51
|
+
"只输出严格 HarnessIntent JSON,不要输出 Markdown,不要调用工具。",
|
|
52
|
+
"你只能整理生命周期意图与 Requirement 边界,不能推进状态,不能猜测未确认信息。",
|
|
53
|
+
],
|
|
54
|
+
}),
|
|
55
|
+
entry({
|
|
56
|
+
agentId: HARNESS_PLANNER_AGENT_NAME,
|
|
57
|
+
displayName: HARNESS_PLANNER_DISPLAY_NAME,
|
|
58
|
+
description: "Internal Harness Planner; produces plans and never edits, executes, or delegates.",
|
|
59
|
+
mode: "all",
|
|
60
|
+
hidden: true,
|
|
61
|
+
profileKey: "planner",
|
|
62
|
+
sessionRole: HARNESS_SESSION_ROLE.planner,
|
|
63
|
+
pluginTools: HARNESS_ROLE_CAPABILITY_DIRECTORY_PLUGIN_TOOL_NAMES,
|
|
64
|
+
responsibilities: ["先形成可审计 ContextPackage", "再输出可执行 TaskGraph"],
|
|
65
|
+
inputContext: ["Requirement JSON", "runId", "相关文件/符号/外部资料引用"],
|
|
66
|
+
builtins: HARNESS_READ_ONLY_BUILTINS,
|
|
67
|
+
permission: { edit: "deny", bash: "deny" },
|
|
68
|
+
outputContract: { schemaVersion: "1.0.0", type: "TaskGraph" },
|
|
69
|
+
budget: { summary: "消耗 planner 与 overall 预算。", dimensions: ["planner", "overall"] },
|
|
70
|
+
suggestions: { status: ["completed", "evidence_gap", "clarification_required"], action: [] },
|
|
71
|
+
promptLines: [
|
|
72
|
+
"你是 Fuxi(Harness Planner)子 Agent。",
|
|
73
|
+
"先建立可审计 ContextPackage,再生成 TaskGraph JSON。",
|
|
74
|
+
"你可以使用合同允许的只读仓库、LSP、Context7 和源码研究工具;不要编辑文件、不要执行 shell、不要委派子 Agent、不要推进状态。",
|
|
75
|
+
"只输出结构化计划,不要输出 Markdown 或自由文本说明。",
|
|
76
|
+
],
|
|
77
|
+
}),
|
|
78
|
+
entry({
|
|
79
|
+
agentId: HARNESS_WORKER_AGENT_NAME,
|
|
80
|
+
displayName: HARNESS_WORKER_DISPLAY_NAME,
|
|
81
|
+
description: "Internal Harness Worker executor; the only Harness role allowed to modify code.",
|
|
82
|
+
mode: "all",
|
|
83
|
+
hidden: true,
|
|
84
|
+
profileKey: "worker",
|
|
85
|
+
sessionRole: HARNESS_SESSION_ROLE.worker,
|
|
86
|
+
pluginTools: HARNESS_ROLE_CAPABILITY_DIRECTORY_PLUGIN_TOOL_NAMES,
|
|
87
|
+
responsibilities: ["在 allowedPaths 内实现单个 Task", "输出结构化 WorkerOutput"],
|
|
88
|
+
inputContext: ["Task JSON", "Requirement JSON", "allowedPaths", "verificationPlan"],
|
|
89
|
+
builtins: HARNESS_WORKER_BUILTINS,
|
|
90
|
+
permission: { edit: "allow", bash: "allow" },
|
|
91
|
+
outputContract: { schemaVersion: "1.0.0", type: "WorkerOutput" },
|
|
92
|
+
budget: {
|
|
93
|
+
summary: "消耗 overall 与 task retry 预算。",
|
|
94
|
+
dimensions: ["overall", "task-attempt"],
|
|
95
|
+
},
|
|
96
|
+
suggestions: { status: ["completed", "blocked", "evidence_gap", "failed"], action: [] },
|
|
97
|
+
promptLines: [
|
|
98
|
+
"你是 Luban(Harness Worker)子 Agent。",
|
|
99
|
+
"仅在允许路径内实现任务,输出结构化结果,不要切换角色。",
|
|
100
|
+
"你可以使用合同允许的研究工具和写工具,但不得越界写入、不得请求父会话完整历史、不得自行推进状态。",
|
|
101
|
+
],
|
|
102
|
+
}),
|
|
103
|
+
entry({
|
|
104
|
+
agentId: HARNESS_VERIFIER_AGENT_NAME,
|
|
105
|
+
displayName: HARNESS_VERIFIER_DISPLAY_NAME,
|
|
106
|
+
description: "Internal Harness Verifier; inspects evidence and never edits, executes, or delegates.",
|
|
107
|
+
mode: "all",
|
|
108
|
+
hidden: true,
|
|
109
|
+
profileKey: "verifier",
|
|
110
|
+
sessionRole: HARNESS_SESSION_ROLE.verifier,
|
|
111
|
+
pluginTools: HARNESS_ROLE_CAPABILITY_DIRECTORY_PLUGIN_TOOL_NAMES,
|
|
112
|
+
responsibilities: ["审查计划或 Task 证据", "输出结构化 VerifierOutput"],
|
|
113
|
+
inputContext: ["Task JSON", "Requirement JSON", "Evidence 列表"],
|
|
114
|
+
builtins: HARNESS_READ_ONLY_BUILTINS,
|
|
115
|
+
permission: { edit: "deny", bash: "deny" },
|
|
116
|
+
outputContract: { schemaVersion: "1.0.0", type: "VerifierOutput" },
|
|
117
|
+
budget: {
|
|
118
|
+
summary: "消耗 overall 与 task review 预算。",
|
|
119
|
+
dimensions: ["overall", "task-review"],
|
|
120
|
+
},
|
|
121
|
+
suggestions: {
|
|
122
|
+
status: ["passed", "failed", "evidence_gap", "approved", "rejected"],
|
|
123
|
+
action: [],
|
|
124
|
+
},
|
|
125
|
+
promptLines: [
|
|
126
|
+
"你是 Zhulong(Harness Verifier)子 Agent。",
|
|
127
|
+
"只依据任务与实际 evidence 输出结构化结论。",
|
|
128
|
+
"你可以使用合同允许的只读研究工具辅助审查;不要写代码、不要执行 shell、不要推进状态。",
|
|
129
|
+
],
|
|
130
|
+
}),
|
|
131
|
+
entry({
|
|
132
|
+
agentId: HARNESS_ACCEPTANCE_AGENT_NAME,
|
|
133
|
+
displayName: HARNESS_ACCEPTANCE_DISPLAY_NAME,
|
|
134
|
+
description: "Internal Harness Acceptance reviewer; registered for final acceptance checks and never edits.",
|
|
135
|
+
mode: "all",
|
|
136
|
+
hidden: true,
|
|
137
|
+
profileKey: "acceptance",
|
|
138
|
+
sessionRole: HARNESS_SESSION_ROLE.acceptance,
|
|
139
|
+
pluginTools: HARNESS_ROLE_CAPABILITY_DIRECTORY_ACCEPTANCE_PLUGIN_TOOL_NAMES,
|
|
140
|
+
responsibilities: ["检查需求、任务与证据闭环", "输出结构化 AcceptanceOutput"],
|
|
141
|
+
inputContext: ["Requirement JSON", "Task 与 Evidence 追踪矩阵"],
|
|
142
|
+
builtins: HARNESS_READ_ONLY_BUILTINS,
|
|
143
|
+
permission: { edit: "deny", bash: "deny" },
|
|
144
|
+
outputContract: { schemaVersion: "1.0.0", type: "AcceptanceOutput" },
|
|
145
|
+
budget: {
|
|
146
|
+
summary: "消耗 overall 与 acceptance 预算。",
|
|
147
|
+
dimensions: ["overall", "acceptance"],
|
|
148
|
+
},
|
|
149
|
+
suggestions: { status: ["accepted", "failed", "evidence_gap"], action: [] },
|
|
150
|
+
promptLines: [
|
|
151
|
+
"你是 Yinglong(Harness Acceptance)子 Agent。",
|
|
152
|
+
"只检查需求、任务和证据覆盖,只输出结构化 AcceptanceOutput JSON。",
|
|
153
|
+
"你只允许使用 grep.app 与 LSP 等只读研究工具;不要使用 Context7、不要执行写操作、不要推进状态。",
|
|
154
|
+
],
|
|
155
|
+
}),
|
|
156
|
+
entry({
|
|
157
|
+
agentId: HARNESS_FAILURE_ANALYZER_AGENT_NAME,
|
|
158
|
+
displayName: HARNESS_FAILURE_ANALYZER_DISPLAY_NAME,
|
|
159
|
+
description: "Internal Harness Failure Analyzer; classifies failures and never edits, executes, or delegates.",
|
|
160
|
+
mode: "all",
|
|
161
|
+
hidden: true,
|
|
162
|
+
profileKey: "failureAnalyzer",
|
|
163
|
+
sessionRole: HARNESS_SESSION_ROLE.failureAnalyzer,
|
|
164
|
+
pluginTools: HARNESS_ROLE_CAPABILITY_DIRECTORY_PLUGIN_TOOL_NAMES,
|
|
165
|
+
responsibilities: ["基于真实失败与证据归因", "输出最小恢复动作建议"],
|
|
166
|
+
inputContext: ["Task JSON", "Failure", "Evidence 列表"],
|
|
167
|
+
builtins: HARNESS_READ_ONLY_BUILTINS,
|
|
168
|
+
permission: { edit: "deny", bash: "deny" },
|
|
169
|
+
outputContract: { schemaVersion: "1.0.0", type: "FailureAnalyzerOutput" },
|
|
170
|
+
budget: {
|
|
171
|
+
summary: "消耗 overall 与 failure analysis 预算。",
|
|
172
|
+
dimensions: ["overall", "failure-analysis"],
|
|
173
|
+
},
|
|
174
|
+
suggestions: { status: [], action: ["probe", "repair", "clarify", "wait", "terminate"] },
|
|
175
|
+
promptLines: [
|
|
176
|
+
"你是 Xingtian(Harness Failure Analyzer)子 Agent。",
|
|
177
|
+
"只根据失败证据分类根因并给出结构化 FailureAnalyzerOutput JSON。",
|
|
178
|
+
"你可以使用合同允许的只读研究工具,但不能写代码、不能直接重试、不能推进状态。",
|
|
179
|
+
],
|
|
180
|
+
}),
|
|
181
|
+
entry({
|
|
182
|
+
agentId: HARNESS_REPAIR_WORKER_AGENT_NAME,
|
|
183
|
+
displayName: HARNESS_REPAIR_WORKER_DISPLAY_NAME,
|
|
184
|
+
description: "Internal Harness Repair Worker; proposes bounded repairs and never edits or executes directly.",
|
|
185
|
+
mode: "all",
|
|
186
|
+
hidden: true,
|
|
187
|
+
profileKey: "worker",
|
|
188
|
+
sessionRole: HARNESS_SESSION_ROLE.repairWorker,
|
|
189
|
+
pluginTools: HARNESS_ROLE_CAPABILITY_DIRECTORY_PLUGIN_TOOL_NAMES,
|
|
190
|
+
responsibilities: ["生成受限 RepairTask", "缩小修复范围而非直接改代码"],
|
|
191
|
+
inputContext: ["Task JSON", "Failure", "Evidence", "allowedPaths", "retryBudget"],
|
|
192
|
+
builtins: HARNESS_READ_ONLY_BUILTINS,
|
|
193
|
+
permission: { edit: "deny", bash: "deny" },
|
|
194
|
+
outputContract: { schemaVersion: "1.0.0", type: "RepairWorkerOutput" },
|
|
195
|
+
budget: {
|
|
196
|
+
summary: "消耗 overall 与 repair budget。",
|
|
197
|
+
dimensions: ["overall", "repair-budget"],
|
|
198
|
+
},
|
|
199
|
+
suggestions: { status: ["planned"], action: [] },
|
|
200
|
+
promptLines: [
|
|
201
|
+
"你是 Jingwei(Harness Repair Worker)子 Agent。",
|
|
202
|
+
"只根据失败证据输出结构化修复建议,不要直接修改代码。",
|
|
203
|
+
"你可以使用合同允许的只读研究工具,但不得扩大路径、不得扩大预算、不得推进状态。",
|
|
204
|
+
],
|
|
205
|
+
}),
|
|
206
|
+
],
|
|
207
|
+
});
|
|
208
|
+
//# sourceMappingURL=harness-role-capability-directory-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness-role-capability-directory-data.js","sourceRoot":"","sources":["../../src/agent/harness-role-capability-directory-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { HarnessSessionRole } from "../session/contracts.js";
|
|
2
|
+
import type { HarnessCapabilityPermissionConfig } from "./harness-agent-capability-types.js";
|
|
3
|
+
export declare const HARNESS_ROLE_CAPABILITY_DIRECTORY_VERSION: "1.0.0";
|
|
4
|
+
export declare const HARNESS_ROLE_CAPABILITY_DIRECTORY_PLUGIN_TOOL_NAMES: readonly ["harness_context7_resolve", "harness_context7_query", "harness_grep_app_search", "harness_lsp_status", "harness_lsp_diagnostics", "harness_lsp_definition", "harness_lsp_references"];
|
|
5
|
+
export declare const HARNESS_ROLE_CAPABILITY_DIRECTORY_ACCEPTANCE_PLUGIN_TOOL_NAMES: readonly ["harness_grep_app_search", "harness_lsp_status", "harness_lsp_diagnostics", "harness_lsp_definition", "harness_lsp_references"];
|
|
6
|
+
declare const BUILTIN_TOOL_NAMES: readonly ["task", "edit", "bash", "write", "patch"];
|
|
7
|
+
export type BuiltinToolName = (typeof BUILTIN_TOOL_NAMES)[number];
|
|
8
|
+
export declare const HARNESS_READ_ONLY_BUILTINS: Readonly<Record<"task" | "patch" | "edit" | "bash" | "write", boolean>>;
|
|
9
|
+
export declare const HARNESS_WORKER_BUILTINS: Readonly<Record<"task" | "patch" | "edit" | "bash" | "write", boolean>>;
|
|
10
|
+
export type HarnessRoleCapabilityDirectoryEntry = {
|
|
11
|
+
readonly agentId: "harness" | "harness-intake" | "harness-planner" | "harness-worker" | "harness-verifier" | "harness-acceptance" | "harness-failure-analyzer" | "harness-repair-worker";
|
|
12
|
+
readonly displayName: string;
|
|
13
|
+
readonly description: string;
|
|
14
|
+
readonly mode: "primary" | "all";
|
|
15
|
+
readonly hidden: boolean;
|
|
16
|
+
readonly profileKey: "harness" | "planner" | "worker" | "verifier" | "acceptance" | "failureAnalyzer";
|
|
17
|
+
readonly sessionRole?: HarnessSessionRole;
|
|
18
|
+
readonly pluginTools: readonly string[];
|
|
19
|
+
readonly responsibilities: readonly string[];
|
|
20
|
+
readonly inputContext: readonly string[];
|
|
21
|
+
readonly builtins: Readonly<Record<BuiltinToolName, boolean>>;
|
|
22
|
+
readonly permission: HarnessCapabilityPermissionConfig;
|
|
23
|
+
readonly outputContract: {
|
|
24
|
+
readonly schemaVersion: "1.0.0";
|
|
25
|
+
readonly type: string;
|
|
26
|
+
} | null;
|
|
27
|
+
readonly budget: {
|
|
28
|
+
readonly summary: string;
|
|
29
|
+
readonly dimensions: readonly string[];
|
|
30
|
+
};
|
|
31
|
+
readonly suggestions: {
|
|
32
|
+
readonly status: readonly string[];
|
|
33
|
+
readonly action: readonly string[];
|
|
34
|
+
};
|
|
35
|
+
readonly promptLines: readonly string[];
|
|
36
|
+
};
|
|
37
|
+
export type HarnessRoleCapabilityDirectory = {
|
|
38
|
+
readonly version: typeof HARNESS_ROLE_CAPABILITY_DIRECTORY_VERSION;
|
|
39
|
+
readonly entries: readonly HarnessRoleCapabilityDirectoryEntry[];
|
|
40
|
+
};
|
|
41
|
+
export declare const validateHarnessRoleCapabilityDirectory: (directory: HarnessRoleCapabilityDirectory) => HarnessRoleCapabilityDirectory;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=harness-role-capability-directory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness-role-capability-directory.d.ts","sourceRoot":"","sources":["../../src/agent/harness-role-capability-directory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAA;AAE5F,eAAO,MAAM,yCAAyC,EAAG,OAAgB,CAAA;AAEzE,eAAO,MAAM,mDAAmD,iMAQtD,CAAA;AAEV,eAAO,MAAM,8DAA8D,2IAMjE,CAAA;AAEV,QAAA,MAAM,kBAAkB,qDAAsD,CAAA;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AASjE,eAAO,MAAM,0BAA0B,yEAAoB,CAAA;AAC3D,eAAO,MAAM,uBAAuB,yEAKlC,CAAA;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,QAAQ,CAAC,OAAO,EACZ,SAAS,GACT,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,0BAA0B,GAC1B,uBAAuB,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,UAAU,EACf,SAAS,GACT,SAAS,GACT,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,iBAAiB,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IACzC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;IAC7D,QAAQ,CAAC,UAAU,EAAE,iCAAiC,CAAA;IACtD,QAAQ,CAAC,cAAc,EAAE;QAAE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC1F,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAA;IACrF,QAAQ,CAAC,WAAW,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAA;IAChG,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,yCAAyC,CAAA;IAClE,QAAQ,CAAC,OAAO,EAAE,SAAS,mCAAmC,EAAE,CAAA;CACjE,CAAA;AAED,eAAO,MAAM,sCAAsC,GACjD,WAAW,8BAA8B,KACxC,8BAmCF,CAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export const HARNESS_ROLE_CAPABILITY_DIRECTORY_VERSION = "1.0.0";
|
|
2
|
+
export const HARNESS_ROLE_CAPABILITY_DIRECTORY_PLUGIN_TOOL_NAMES = [
|
|
3
|
+
"harness_context7_resolve",
|
|
4
|
+
"harness_context7_query",
|
|
5
|
+
"harness_grep_app_search",
|
|
6
|
+
"harness_lsp_status",
|
|
7
|
+
"harness_lsp_diagnostics",
|
|
8
|
+
"harness_lsp_definition",
|
|
9
|
+
"harness_lsp_references",
|
|
10
|
+
];
|
|
11
|
+
export const HARNESS_ROLE_CAPABILITY_DIRECTORY_ACCEPTANCE_PLUGIN_TOOL_NAMES = [
|
|
12
|
+
"harness_grep_app_search",
|
|
13
|
+
"harness_lsp_status",
|
|
14
|
+
"harness_lsp_diagnostics",
|
|
15
|
+
"harness_lsp_definition",
|
|
16
|
+
"harness_lsp_references",
|
|
17
|
+
];
|
|
18
|
+
const BUILTIN_TOOL_NAMES = ["task", "edit", "bash", "write", "patch"];
|
|
19
|
+
const buildBuiltins = (values) => Object.fromEntries(BUILTIN_TOOL_NAMES.map((name) => [name, values[name] ?? false]));
|
|
20
|
+
export const HARNESS_READ_ONLY_BUILTINS = buildBuiltins({});
|
|
21
|
+
export const HARNESS_WORKER_BUILTINS = buildBuiltins({
|
|
22
|
+
edit: true,
|
|
23
|
+
bash: true,
|
|
24
|
+
write: true,
|
|
25
|
+
patch: true,
|
|
26
|
+
});
|
|
27
|
+
export const validateHarnessRoleCapabilityDirectory = (directory) => {
|
|
28
|
+
if (directory.version !== HARNESS_ROLE_CAPABILITY_DIRECTORY_VERSION) {
|
|
29
|
+
throw new TypeError(`unknown Harness role capability directory version: ${directory.version}`);
|
|
30
|
+
}
|
|
31
|
+
if (directory.entries.length !== 8) {
|
|
32
|
+
throw new TypeError(`expected 8 Harness role capability entries, got ${directory.entries.length}`);
|
|
33
|
+
}
|
|
34
|
+
const seenAgentIds = new Set();
|
|
35
|
+
const seenRoles = new Set();
|
|
36
|
+
for (const item of directory.entries) {
|
|
37
|
+
if (seenAgentIds.has(item.agentId)) {
|
|
38
|
+
throw new TypeError(`duplicate Harness role capability agentId: ${item.agentId}`);
|
|
39
|
+
}
|
|
40
|
+
seenAgentIds.add(item.agentId);
|
|
41
|
+
if (item.agentId === "harness") {
|
|
42
|
+
if (item.sessionRole !== undefined) {
|
|
43
|
+
throw new TypeError("primary Harness capability must not declare a session role");
|
|
44
|
+
}
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (item.sessionRole === undefined) {
|
|
48
|
+
throw new TypeError(`Harness capability ${item.agentId} is missing a session role`);
|
|
49
|
+
}
|
|
50
|
+
if (seenRoles.has(item.sessionRole)) {
|
|
51
|
+
throw new TypeError(`duplicate Harness role capability sessionRole: ${item.sessionRole}`);
|
|
52
|
+
}
|
|
53
|
+
seenRoles.add(item.sessionRole);
|
|
54
|
+
}
|
|
55
|
+
return directory;
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=harness-role-capability-directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness-role-capability-directory.js","sourceRoot":"","sources":["../../src/agent/harness-role-capability-directory.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,yCAAyC,GAAG,OAAgB,CAAA;AAEzE,MAAM,CAAC,MAAM,mDAAmD,GAAG;IACjE,0BAA0B;IAC1B,wBAAwB;IACxB,yBAAyB;IACzB,oBAAoB;IACpB,yBAAyB;IACzB,wBAAwB;IACxB,wBAAwB;CAChB,CAAA;AAEV,MAAM,CAAC,MAAM,8DAA8D,GAAG;IAC5E,yBAAyB;IACzB,oBAAoB;IACpB,yBAAyB;IACzB,wBAAwB;IACxB,wBAAwB;CAChB,CAAA;AAEV,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAA;AAG9E,MAAM,aAAa,GAAG,CACpB,MAAiD,EACL,EAAE,CAC9C,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAEjF,CAAA;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,aAAa,CAAC,EAAE,CAAC,CAAA;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAC;IACnD,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;CACZ,CAAC,CAAA;AAwCF,MAAM,CAAC,MAAM,sCAAsC,GAAG,CACpD,SAAyC,EACT,EAAE;IAClC,IAAI,SAAS,CAAC,OAAO,KAAK,yCAAyC,EAAE,CAAC;QACpE,MAAM,IAAI,SAAS,CAAC,sDAAsD,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;IAChG,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CACjB,mDAAmD,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAC9E,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IACnC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CAAC,8CAA8C,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QACnF,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE9B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAA;YACnF,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CAAC,sBAAsB,IAAI,CAAC,OAAO,4BAA4B,CAAC,CAAA;QACrF,CAAC;QACD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,SAAS,CAAC,kDAAkD,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAC3F,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { buildCapabilityPermission, buildCapabilityPrompt, buildCapabilityToolConfig, buildRoleSystemPrompts, buildSessionToolAllowlist, findUnauthorizedSuggestedSignal, getHarnessAgentCapability, getHarnessSessionCapability, } from "./harness-agent-capability-builders.js";
|
|
2
|
+
export { HARNESS_AGENT_CAPABILITIES } from "./harness-agent-capability-data.js";
|
|
3
|
+
export type { HarnessCapabilityPermissionConfig } from "./harness-agent-capability-types.js";
|
|
4
|
+
export { HARNESS_AGENT_CAPABILITY_VERSION, type HarnessAgentCapability, type HarnessCapabilitySignalIssue, type HarnessCapabilityToolConfig, type OutputContract, type PermissionValue, type SuggestionContract, } from "./harness-agent-capability-types.js";
|
|
5
|
+
export { type BuiltinToolName, HARNESS_READ_ONLY_BUILTINS, HARNESS_ROLE_CAPABILITY_DIRECTORY_ACCEPTANCE_PLUGIN_TOOL_NAMES, HARNESS_ROLE_CAPABILITY_DIRECTORY_PLUGIN_TOOL_NAMES, HARNESS_ROLE_CAPABILITY_DIRECTORY_VERSION, HARNESS_WORKER_BUILTINS, type HarnessRoleCapabilityDirectory, type HarnessRoleCapabilityDirectoryEntry, validateHarnessRoleCapabilityDirectory, } from "./harness-role-capability-directory.js";
|
|
6
|
+
export { HARNESS_ROLE_CAPABILITY_DIRECTORY } from "./harness-role-capability-directory-data.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AAC/E,YAAY,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAA;AAC5F,OAAO,EACL,gCAAgC,EAChC,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,KAAK,eAAe,EACpB,0BAA0B,EAC1B,8DAA8D,EAC9D,mDAAmD,EACnD,yCAAyC,EACzC,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,mCAAmC,EACxC,sCAAsC,GACvC,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { buildCapabilityPermission, buildCapabilityPrompt, buildCapabilityToolConfig, buildRoleSystemPrompts, buildSessionToolAllowlist, findUnauthorizedSuggestedSignal, getHarnessAgentCapability, getHarnessSessionCapability, } from "./harness-agent-capability-builders.js";
|
|
2
|
+
export { HARNESS_AGENT_CAPABILITIES } from "./harness-agent-capability-data.js";
|
|
3
|
+
export { HARNESS_AGENT_CAPABILITY_VERSION, } from "./harness-agent-capability-types.js";
|
|
4
|
+
export { HARNESS_READ_ONLY_BUILTINS, HARNESS_ROLE_CAPABILITY_DIRECTORY_ACCEPTANCE_PLUGIN_TOOL_NAMES, HARNESS_ROLE_CAPABILITY_DIRECTORY_PLUGIN_TOOL_NAMES, HARNESS_ROLE_CAPABILITY_DIRECTORY_VERSION, HARNESS_WORKER_BUILTINS, validateHarnessRoleCapabilityDirectory, } from "./harness-role-capability-directory.js";
|
|
5
|
+
export { HARNESS_ROLE_CAPABILITY_DIRECTORY } from "./harness-role-capability-directory-data.js";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AAE/E,OAAO,EACL,gCAAgC,GAOjC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAEL,0BAA0B,EAC1B,8DAA8D,EAC9D,mDAAmD,EACnD,yCAAyC,EACzC,uBAAuB,EAGvB,sCAAsC,GACvC,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAA"}
|
|
@@ -25,6 +25,28 @@ export declare const HARNESS_CONFIG_DEFAULTS: {
|
|
|
25
25
|
readonly provider: "openai";
|
|
26
26
|
readonly model: "gpt-5.5";
|
|
27
27
|
};
|
|
28
|
+
readonly executionCategories: {
|
|
29
|
+
readonly quick: {
|
|
30
|
+
readonly provider: "deepseek";
|
|
31
|
+
readonly model: "deepseek-v4-pro";
|
|
32
|
+
readonly skill: "quick";
|
|
33
|
+
};
|
|
34
|
+
readonly deep: {
|
|
35
|
+
readonly provider: "deepseek";
|
|
36
|
+
readonly model: "deepseek-v4-pro";
|
|
37
|
+
readonly skill: "deep";
|
|
38
|
+
};
|
|
39
|
+
readonly "visual-engineering": {
|
|
40
|
+
readonly provider: "deepseek";
|
|
41
|
+
readonly model: "deepseek-v4-pro";
|
|
42
|
+
readonly skill: "visual-engineering";
|
|
43
|
+
};
|
|
44
|
+
readonly ultrabrain: {
|
|
45
|
+
readonly provider: "deepseek";
|
|
46
|
+
readonly model: "deepseek-v4-pro";
|
|
47
|
+
readonly skill: "ultrabrain";
|
|
48
|
+
};
|
|
49
|
+
};
|
|
28
50
|
readonly verificationCommands: readonly [];
|
|
29
51
|
readonly maxRunAttempts: 3;
|
|
30
52
|
readonly stateDirectory: ".harness/runs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-defaults.d.ts","sourceRoot":"","sources":["../../src/config/config-defaults.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"config-defaults.d.ts","sourceRoot":"","sources":["../../src/config/config-defaults.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDF,CAAA"}
|
|
@@ -25,6 +25,28 @@ export const HARNESS_CONFIG_DEFAULTS = {
|
|
|
25
25
|
provider: "openai",
|
|
26
26
|
model: "gpt-5.5",
|
|
27
27
|
},
|
|
28
|
+
executionCategories: {
|
|
29
|
+
quick: {
|
|
30
|
+
provider: "deepseek",
|
|
31
|
+
model: "deepseek-v4-pro",
|
|
32
|
+
skill: "quick",
|
|
33
|
+
},
|
|
34
|
+
deep: {
|
|
35
|
+
provider: "deepseek",
|
|
36
|
+
model: "deepseek-v4-pro",
|
|
37
|
+
skill: "deep",
|
|
38
|
+
},
|
|
39
|
+
"visual-engineering": {
|
|
40
|
+
provider: "deepseek",
|
|
41
|
+
model: "deepseek-v4-pro",
|
|
42
|
+
skill: "visual-engineering",
|
|
43
|
+
},
|
|
44
|
+
ultrabrain: {
|
|
45
|
+
provider: "deepseek",
|
|
46
|
+
model: "deepseek-v4-pro",
|
|
47
|
+
skill: "ultrabrain",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
28
50
|
verificationCommands: [],
|
|
29
51
|
maxRunAttempts: 3,
|
|
30
52
|
stateDirectory: ".harness/runs",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-defaults.js","sourceRoot":"","sources":["../../src/config/config-defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa,EAAE,OAAO;IACtB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE;QACP,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;KACjB;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;KACjB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,iBAAiB;KACzB;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;KACjB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;KACjB;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;KACjB;IACD,oBAAoB,EAAE,EAAE;IACxB,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,eAAe;CACC,CAAA"}
|
|
1
|
+
{"version":3,"file":"config-defaults.js","sourceRoot":"","sources":["../../src/config/config-defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa,EAAE,OAAO;IACtB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE;QACP,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;KACjB;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;KACjB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,iBAAiB;KACzB;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;KACjB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;KACjB;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;KACjB;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,OAAO;SACf;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,MAAM;SACd;QACD,oBAAoB,EAAE;YACpB,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,oBAAoB;SAC5B;QACD,UAAU,EAAE;YACV,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,YAAY;SACpB;KACF;IACD,oBAAoB,EAAE,EAAE;IACxB,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,eAAe;CACC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-merge.d.ts","sourceRoot":"","sources":["../../src/config/config-merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"config-merge.d.ts","sourceRoot":"","sources":["../../src/config/config-merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,aAAa,EACb,kBAAkB,EAEnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAwB,MAAM,mBAAmB,CAAA;AAElF,eAAO,MAAM,kBAAkB,GAAI,2CAIhC;IACD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,GAAG,SAAS,CAAA;IACtD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAA;CACrD,KAAG,mBAmDH,CAAA"}
|
|
@@ -34,6 +34,11 @@ export const mergeHarnessConfig = ({ defaults, projectConfig, runOverride, }) =>
|
|
|
34
34
|
projectProfile: projectValue.failureAnalyzer ?? projectValue.planner,
|
|
35
35
|
runOverride: overrideValue.failureAnalyzer,
|
|
36
36
|
}),
|
|
37
|
+
executionCategories: mergeExecutionCategoryProfiles({
|
|
38
|
+
defaults: defaults.executionCategories,
|
|
39
|
+
projectProfiles: projectValue.executionCategories,
|
|
40
|
+
runOverride: overrideValue.executionCategories,
|
|
41
|
+
}),
|
|
37
42
|
verificationCommands: overrideValue.verificationCommands ??
|
|
38
43
|
projectValue.verificationCommands ??
|
|
39
44
|
defaults.verificationCommands,
|
|
@@ -45,6 +50,31 @@ const mergeHarnessProfile = ({ defaults, projectProfile, runOverride, }) => {
|
|
|
45
50
|
return {
|
|
46
51
|
provider: runOverride?.provider ?? projectProfile?.provider ?? defaults.provider,
|
|
47
52
|
model: runOverride?.model ?? projectProfile?.model ?? defaults.model,
|
|
53
|
+
...((runOverride?.skill ?? projectProfile?.skill ?? defaults.skill) === undefined
|
|
54
|
+
? {}
|
|
55
|
+
: { skill: runOverride?.skill ?? projectProfile?.skill ?? defaults.skill }),
|
|
48
56
|
};
|
|
49
57
|
};
|
|
58
|
+
const mergeExecutionCategoryProfiles = (input) => ({
|
|
59
|
+
quick: mergeHarnessProfile({
|
|
60
|
+
defaults: input.defaults.quick,
|
|
61
|
+
projectProfile: input.projectProfiles?.quick,
|
|
62
|
+
runOverride: input.runOverride?.quick,
|
|
63
|
+
}),
|
|
64
|
+
deep: mergeHarnessProfile({
|
|
65
|
+
defaults: input.defaults.deep,
|
|
66
|
+
projectProfile: input.projectProfiles?.deep,
|
|
67
|
+
runOverride: input.runOverride?.deep,
|
|
68
|
+
}),
|
|
69
|
+
"visual-engineering": mergeHarnessProfile({
|
|
70
|
+
defaults: input.defaults["visual-engineering"],
|
|
71
|
+
projectProfile: input.projectProfiles?.["visual-engineering"],
|
|
72
|
+
runOverride: input.runOverride?.["visual-engineering"],
|
|
73
|
+
}),
|
|
74
|
+
ultrabrain: mergeHarnessProfile({
|
|
75
|
+
defaults: input.defaults.ultrabrain,
|
|
76
|
+
projectProfile: input.projectProfiles?.ultrabrain,
|
|
77
|
+
runOverride: input.runOverride?.ultrabrain,
|
|
78
|
+
}),
|
|
79
|
+
});
|
|
50
80
|
//# sourceMappingURL=config-merge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-merge.js","sourceRoot":"","sources":["../../src/config/config-merge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-merge.js","sourceRoot":"","sources":["../../src/config/config-merge.ts"],"names":[],"mappings":"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"}
|