harness-engineering-agent 0.1.1 → 0.1.3
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 +21 -7
- package/dist/config/config-defaults.d.ts +0 -0
- package/dist/config/config-defaults.d.ts.map +0 -0
- package/dist/config/config-defaults.js +0 -0
- package/dist/config/config-defaults.js.map +0 -0
- package/dist/config/config-errors.d.ts +0 -0
- package/dist/config/config-errors.d.ts.map +0 -0
- package/dist/config/config-errors.js +0 -0
- package/dist/config/config-errors.js.map +0 -0
- package/dist/config/config-file.d.ts +0 -0
- package/dist/config/config-file.d.ts.map +0 -0
- package/dist/config/config-file.js +0 -0
- package/dist/config/config-file.js.map +0 -0
- package/dist/config/config-merge.d.ts +0 -0
- package/dist/config/config-merge.d.ts.map +0 -0
- package/dist/config/config-merge.js +0 -0
- package/dist/config/config-merge.js.map +0 -0
- package/dist/config/config-schema.d.ts +0 -0
- package/dist/config/config-schema.d.ts.map +0 -0
- package/dist/config/config-schema.js +0 -0
- package/dist/config/config-schema.js.map +0 -0
- package/dist/config/config-types.d.ts +0 -0
- package/dist/config/config-types.d.ts.map +0 -0
- package/dist/config/config-types.js +0 -0
- package/dist/config/config-types.js.map +0 -0
- package/dist/config/harness-config.d.ts +0 -0
- package/dist/config/harness-config.d.ts.map +0 -0
- package/dist/config/harness-config.js +0 -0
- package/dist/config/harness-config.js.map +0 -0
- package/dist/config/index.d.ts +0 -0
- package/dist/config/index.d.ts.map +0 -0
- package/dist/config/index.js +0 -0
- package/dist/config/index.js.map +0 -0
- package/dist/config/load-harness-config.d.ts +0 -0
- package/dist/config/load-harness-config.d.ts.map +0 -0
- package/dist/config/load-harness-config.js +0 -0
- package/dist/config/load-harness-config.js.map +0 -0
- package/dist/controller/agent-output.d.ts +0 -0
- package/dist/controller/agent-output.d.ts.map +0 -0
- package/dist/controller/agent-output.js +0 -0
- package/dist/controller/agent-output.js.map +0 -0
- package/dist/controller/agent-session.d.ts +0 -0
- package/dist/controller/agent-session.d.ts.map +0 -0
- package/dist/controller/agent-session.js +0 -0
- package/dist/controller/agent-session.js.map +0 -0
- package/dist/controller/contracts.d.ts +0 -0
- package/dist/controller/contracts.d.ts.map +0 -0
- package/dist/controller/contracts.js +0 -0
- package/dist/controller/contracts.js.map +0 -0
- package/dist/controller/errors.d.ts +0 -0
- package/dist/controller/errors.d.ts.map +0 -0
- package/dist/controller/errors.js +0 -0
- package/dist/controller/errors.js.map +0 -0
- package/dist/controller/evidence-factory.d.ts +0 -0
- package/dist/controller/evidence-factory.d.ts.map +0 -0
- package/dist/controller/evidence-factory.js +0 -0
- package/dist/controller/evidence-factory.js.map +0 -0
- package/dist/controller/failure-analysis.d.ts +0 -0
- package/dist/controller/failure-analysis.d.ts.map +0 -0
- package/dist/controller/failure-analysis.js +0 -0
- package/dist/controller/failure-analysis.js.map +0 -0
- package/dist/controller/failure-factory.d.ts +0 -0
- package/dist/controller/failure-factory.d.ts.map +0 -0
- package/dist/controller/failure-factory.js +0 -0
- package/dist/controller/failure-factory.js.map +0 -0
- package/dist/controller/graph-validator.d.ts +0 -0
- package/dist/controller/graph-validator.d.ts.map +0 -0
- package/dist/controller/graph-validator.js +0 -0
- package/dist/controller/graph-validator.js.map +0 -0
- package/dist/controller/index.d.ts +0 -0
- package/dist/controller/index.d.ts.map +0 -0
- package/dist/controller/index.js +0 -0
- package/dist/controller/index.js.map +0 -0
- package/dist/controller/repair-loop.d.ts +0 -0
- package/dist/controller/repair-loop.d.ts.map +0 -0
- package/dist/controller/repair-loop.js +0 -0
- package/dist/controller/repair-loop.js.map +0 -0
- package/dist/controller/report-factory.d.ts +0 -0
- package/dist/controller/report-factory.d.ts.map +0 -0
- package/dist/controller/report-factory.js +0 -0
- package/dist/controller/report-factory.js.map +0 -0
- package/dist/controller/role-prompts.d.ts +0 -0
- package/dist/controller/role-prompts.d.ts.map +0 -0
- package/dist/controller/role-prompts.js +0 -0
- package/dist/controller/role-prompts.js.map +0 -0
- package/dist/controller/run-controller.d.ts +0 -0
- package/dist/controller/run-controller.d.ts.map +0 -0
- package/dist/controller/run-controller.js +0 -0
- package/dist/controller/run-controller.js.map +0 -0
- package/dist/controller/run-persistence.d.ts +0 -0
- package/dist/controller/run-persistence.d.ts.map +0 -0
- package/dist/controller/run-persistence.js +0 -0
- package/dist/controller/run-persistence.js.map +0 -0
- package/dist/controller/run-state.d.ts +0 -0
- package/dist/controller/run-state.d.ts.map +0 -0
- package/dist/controller/run-state.js +0 -0
- package/dist/controller/run-state.js.map +0 -0
- package/dist/controller/task-agent-output.d.ts +0 -0
- package/dist/controller/task-agent-output.d.ts.map +0 -0
- package/dist/controller/task-agent-output.js +0 -0
- package/dist/controller/task-agent-output.js.map +0 -0
- package/dist/controller/task-agent-schemas.d.ts +0 -0
- package/dist/controller/task-agent-schemas.d.ts.map +0 -0
- package/dist/controller/task-agent-schemas.js +0 -0
- package/dist/controller/task-agent-schemas.js.map +0 -0
- package/dist/controller/task-executor.d.ts +0 -0
- package/dist/controller/task-executor.d.ts.map +0 -0
- package/dist/controller/task-executor.js +0 -0
- package/dist/controller/task-executor.js.map +0 -0
- package/dist/controller/task-paths.d.ts +0 -0
- package/dist/controller/task-paths.d.ts.map +0 -0
- package/dist/controller/task-paths.js +0 -0
- package/dist/controller/task-paths.js.map +0 -0
- package/dist/controller/task-retry.d.ts +0 -0
- package/dist/controller/task-retry.d.ts.map +0 -0
- package/dist/controller/task-retry.js +0 -0
- package/dist/controller/task-retry.js.map +0 -0
- package/dist/controller/worktree-eligibility.d.ts +0 -0
- package/dist/controller/worktree-eligibility.d.ts.map +0 -0
- package/dist/controller/worktree-eligibility.js +0 -0
- package/dist/controller/worktree-eligibility.js.map +0 -0
- package/dist/controller/worktree-scheduler.d.ts +0 -0
- package/dist/controller/worktree-scheduler.d.ts.map +0 -0
- package/dist/controller/worktree-scheduler.js +0 -0
- package/dist/controller/worktree-scheduler.js.map +0 -0
- package/dist/domain/agent-result.d.ts +0 -0
- package/dist/domain/agent-result.d.ts.map +0 -0
- package/dist/domain/agent-result.js +0 -0
- package/dist/domain/agent-result.js.map +0 -0
- package/dist/domain/evidence.d.ts +0 -0
- package/dist/domain/evidence.d.ts.map +0 -0
- package/dist/domain/evidence.js +0 -0
- package/dist/domain/evidence.js.map +0 -0
- package/dist/domain/failure.d.ts +0 -0
- package/dist/domain/failure.d.ts.map +0 -0
- package/dist/domain/failure.js +0 -0
- package/dist/domain/failure.js.map +0 -0
- package/dist/domain/index.d.ts +0 -0
- package/dist/domain/index.d.ts.map +0 -0
- package/dist/domain/index.js +0 -0
- package/dist/domain/index.js.map +0 -0
- package/dist/domain/report.d.ts +0 -0
- package/dist/domain/report.d.ts.map +0 -0
- package/dist/domain/report.js +0 -0
- package/dist/domain/report.js.map +0 -0
- package/dist/domain/requirement.d.ts +0 -0
- package/dist/domain/requirement.d.ts.map +0 -0
- package/dist/domain/requirement.js +0 -0
- package/dist/domain/requirement.js.map +0 -0
- package/dist/domain/run.d.ts +0 -0
- package/dist/domain/run.d.ts.map +0 -0
- package/dist/domain/run.js +0 -0
- package/dist/domain/run.js.map +0 -0
- package/dist/domain/shared.d.ts +0 -0
- package/dist/domain/shared.d.ts.map +0 -0
- package/dist/domain/shared.js +0 -0
- package/dist/domain/shared.js.map +0 -0
- package/dist/domain/task.d.ts +0 -0
- package/dist/domain/task.d.ts.map +0 -0
- package/dist/domain/task.js +0 -0
- package/dist/domain/task.js.map +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.d.ts.map +0 -0
- package/dist/index.js +0 -0
- package/dist/index.js.map +0 -0
- package/dist/mcp/cli.d.ts +3 -0
- package/dist/mcp/cli.d.ts.map +1 -0
- package/dist/mcp/cli.js +17 -0
- package/dist/mcp/cli.js.map +1 -0
- package/dist/mcp/server.d.ts +6 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +24 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/path/workspace-path.d.ts +0 -0
- package/dist/path/workspace-path.d.ts.map +0 -0
- package/dist/path/workspace-path.js +0 -0
- package/dist/path/workspace-path.js.map +0 -0
- package/dist/plugin/create-harness-plugin.d.ts +0 -0
- package/dist/plugin/create-harness-plugin.d.ts.map +1 -1
- package/dist/plugin/create-harness-plugin.js +1 -16
- package/dist/plugin/create-harness-plugin.js.map +1 -1
- package/dist/plugin/harness-agent-config.d.ts +0 -0
- package/dist/plugin/harness-agent-config.d.ts.map +0 -0
- package/dist/plugin/harness-agent-config.js +2 -2
- package/dist/plugin/harness-agent-config.js.map +1 -1
- package/dist/plugin/harness-chat-hook.d.ts +0 -0
- package/dist/plugin/harness-chat-hook.d.ts.map +0 -0
- package/dist/plugin/harness-chat-hook.js +0 -0
- package/dist/plugin/harness-chat-hook.js.map +0 -0
- package/dist/plugin/harness-chat-parts.d.ts +0 -0
- package/dist/plugin/harness-chat-parts.d.ts.map +0 -0
- package/dist/plugin/harness-chat-parts.js +0 -0
- package/dist/plugin/harness-chat-parts.js.map +0 -0
- package/dist/plugin/harness-chat-protocol.d.ts +0 -0
- package/dist/plugin/harness-chat-protocol.d.ts.map +0 -0
- package/dist/plugin/harness-chat-protocol.js +0 -0
- package/dist/plugin/harness-chat-protocol.js.map +0 -0
- package/dist/plugin/harness-coordinator.d.ts +0 -0
- package/dist/plugin/harness-coordinator.d.ts.map +0 -0
- package/dist/plugin/harness-coordinator.js +0 -0
- package/dist/plugin/harness-coordinator.js.map +0 -0
- package/dist/plugin/harness-intake-prompt.d.ts +0 -0
- package/dist/plugin/harness-intake-prompt.d.ts.map +0 -0
- package/dist/plugin/harness-intake-prompt.js +0 -0
- package/dist/plugin/harness-intake-prompt.js.map +0 -0
- package/dist/plugin/harness-intent.d.ts +0 -0
- package/dist/plugin/harness-intent.d.ts.map +0 -0
- package/dist/plugin/harness-intent.js +0 -0
- package/dist/plugin/harness-intent.js.map +0 -0
- package/dist/plugin/harness-parent-session-dispatcher.d.ts +0 -0
- package/dist/plugin/harness-parent-session-dispatcher.d.ts.map +0 -0
- package/dist/plugin/harness-parent-session-dispatcher.js +0 -0
- package/dist/plugin/harness-parent-session-dispatcher.js.map +0 -0
- package/dist/plugin/harness-requirement.d.ts +0 -0
- package/dist/plugin/harness-requirement.d.ts.map +0 -0
- package/dist/plugin/harness-requirement.js +0 -0
- package/dist/plugin/harness-requirement.js.map +0 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +9 -0
- package/dist/server.js.map +1 -0
- package/dist/session/contracts.d.ts +0 -0
- package/dist/session/contracts.d.ts.map +0 -0
- package/dist/session/contracts.js +0 -0
- package/dist/session/contracts.js.map +0 -0
- package/dist/session/fake-session-adapter.d.ts +0 -0
- package/dist/session/fake-session-adapter.d.ts.map +0 -0
- package/dist/session/fake-session-adapter.js +0 -0
- package/dist/session/fake-session-adapter.js.map +0 -0
- package/dist/session/fake-session-errors.d.ts +0 -0
- package/dist/session/fake-session-errors.d.ts.map +0 -0
- package/dist/session/fake-session-errors.js +0 -0
- package/dist/session/fake-session-errors.js.map +0 -0
- package/dist/session/harness-agent-names.d.ts +0 -0
- package/dist/session/harness-agent-names.d.ts.map +0 -0
- package/dist/session/harness-agent-names.js +0 -0
- package/dist/session/harness-agent-names.js.map +0 -0
- package/dist/session/index.d.ts +0 -0
- package/dist/session/index.d.ts.map +0 -0
- package/dist/session/index.js +0 -0
- package/dist/session/index.js.map +0 -0
- package/dist/session/opencode-session-adapter.d.ts +0 -0
- package/dist/session/opencode-session-adapter.d.ts.map +0 -0
- package/dist/session/opencode-session-adapter.js +0 -0
- package/dist/session/opencode-session-adapter.js.map +0 -0
- package/dist/session/opencode-session-client.d.ts +0 -0
- package/dist/session/opencode-session-client.d.ts.map +0 -0
- package/dist/session/opencode-session-client.js +0 -0
- package/dist/session/opencode-session-client.js.map +0 -0
- package/dist/session/opencode-session-errors.d.ts +0 -0
- package/dist/session/opencode-session-errors.d.ts.map +0 -0
- package/dist/session/opencode-session-errors.js +0 -0
- package/dist/session/opencode-session-errors.js.map +0 -0
- package/dist/session/opencode-session-prompts.d.ts +0 -0
- package/dist/session/opencode-session-prompts.d.ts.map +0 -0
- package/dist/session/opencode-session-prompts.js +0 -0
- package/dist/session/opencode-session-prompts.js.map +0 -0
- package/dist/store/filesystem-run-store-io.d.ts +0 -0
- package/dist/store/filesystem-run-store-io.d.ts.map +0 -0
- package/dist/store/filesystem-run-store-io.js +0 -0
- package/dist/store/filesystem-run-store-io.js.map +0 -0
- package/dist/store/filesystem-run-store.d.ts +0 -0
- package/dist/store/filesystem-run-store.d.ts.map +0 -0
- package/dist/store/filesystem-run-store.js +0 -0
- package/dist/store/filesystem-run-store.js.map +0 -0
- package/dist/store/index.d.ts +0 -0
- package/dist/store/index.d.ts.map +0 -0
- package/dist/store/index.js +0 -0
- package/dist/store/index.js.map +0 -0
- package/dist/store/run-event.d.ts +0 -0
- package/dist/store/run-event.d.ts.map +0 -0
- package/dist/store/run-event.js +0 -0
- package/dist/store/run-event.js.map +0 -0
- package/dist/store/run-store-errors.d.ts +0 -0
- package/dist/store/run-store-errors.d.ts.map +0 -0
- package/dist/store/run-store-errors.js +0 -0
- package/dist/store/run-store-errors.js.map +0 -0
- package/dist/tools/context7-client.d.ts +0 -0
- package/dist/tools/context7-client.d.ts.map +0 -0
- package/dist/tools/context7-client.js +0 -0
- package/dist/tools/context7-client.js.map +0 -0
- package/dist/tools/grep-app-client.d.ts +0 -0
- package/dist/tools/grep-app-client.d.ts.map +0 -0
- package/dist/tools/grep-app-client.js +0 -0
- package/dist/tools/grep-app-client.js.map +0 -0
- package/dist/tools/harness-research-tools.d.ts +3 -13
- package/dist/tools/harness-research-tools.d.ts.map +1 -1
- package/dist/tools/harness-research-tools.js +75 -80
- package/dist/tools/harness-research-tools.js.map +1 -1
- package/dist/tools/lsp-client.d.ts +0 -0
- package/dist/tools/lsp-client.d.ts.map +0 -0
- package/dist/tools/lsp-client.js +0 -0
- package/dist/tools/lsp-client.js.map +0 -0
- package/dist/tools/lsp-json-rpc.d.ts +0 -0
- package/dist/tools/lsp-json-rpc.d.ts.map +0 -0
- package/dist/tools/lsp-json-rpc.js +0 -0
- package/dist/tools/lsp-json-rpc.js.map +0 -0
- package/dist/verification/command-policy.d.ts +0 -0
- package/dist/verification/command-policy.d.ts.map +0 -0
- package/dist/verification/command-policy.js +0 -0
- package/dist/verification/command-policy.js.map +0 -0
- package/dist/verification/contracts.d.ts +0 -0
- package/dist/verification/contracts.d.ts.map +0 -0
- package/dist/verification/contracts.js +0 -0
- package/dist/verification/contracts.js.map +0 -0
- package/dist/verification/fake-process-runner.d.ts +0 -0
- package/dist/verification/fake-process-runner.d.ts.map +0 -0
- package/dist/verification/fake-process-runner.js +0 -0
- package/dist/verification/fake-process-runner.js.map +0 -0
- package/dist/verification/index.d.ts +0 -0
- package/dist/verification/index.d.ts.map +0 -0
- package/dist/verification/index.js +0 -0
- package/dist/verification/index.js.map +0 -0
- package/dist/verification/node-process-runner.d.ts +0 -0
- package/dist/verification/node-process-runner.d.ts.map +0 -0
- package/dist/verification/node-process-runner.js +0 -0
- package/dist/verification/node-process-runner.js.map +0 -0
- package/dist/verification/verification-runner.d.ts +0 -0
- package/dist/verification/verification-runner.d.ts.map +0 -0
- package/dist/verification/verification-runner.js +0 -0
- package/dist/verification/verification-runner.js.map +0 -0
- package/dist/workspace/git-baseline.d.ts +0 -0
- package/dist/workspace/git-baseline.d.ts.map +0 -0
- package/dist/workspace/git-baseline.js +0 -0
- package/dist/workspace/git-baseline.js.map +0 -0
- package/dist/workspace/git-workspace-adapter.d.ts +0 -0
- package/dist/workspace/git-workspace-adapter.d.ts.map +0 -0
- package/dist/workspace/git-workspace-adapter.js +0 -0
- package/dist/workspace/git-workspace-adapter.js.map +0 -0
- package/dist/workspace/git-worktree-adapter.d.ts +0 -0
- package/dist/workspace/git-worktree-adapter.d.ts.map +0 -0
- package/dist/workspace/git-worktree-adapter.js +0 -0
- package/dist/workspace/git-worktree-adapter.js.map +0 -0
- package/dist/workspace/index.d.ts +0 -0
- package/dist/workspace/index.d.ts.map +0 -0
- package/dist/workspace/index.js +0 -0
- package/dist/workspace/index.js.map +0 -0
- package/package.json +13 -1
|
@@ -1,101 +1,96 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { z } from "zod";
|
|
2
2
|
import { sanitizeResearchToolOutput } from "../verification/command-policy.js";
|
|
3
|
-
const
|
|
4
|
-
"
|
|
5
|
-
"harness-worker",
|
|
6
|
-
"harness-verifier",
|
|
7
|
-
"harness-failure-analyzer",
|
|
8
|
-
]);
|
|
9
|
-
const GREP_ROLES = new Set([...RESEARCH_ROLES, "harness-acceptance"]);
|
|
10
|
-
const LSP_ROLES = new Set([...RESEARCH_ROLES, "harness-acceptance"]);
|
|
11
|
-
export const createHarnessResearchTools = (clients) => ({
|
|
12
|
-
harness_context7_resolve: tool({
|
|
3
|
+
export const registerHarnessResearchTools = (server, clients, workspaceRoot) => {
|
|
4
|
+
server.registerTool("context7_resolve", {
|
|
13
5
|
description: "Search Context7 for a library documentation source.",
|
|
14
|
-
|
|
15
|
-
libraryName:
|
|
16
|
-
query:
|
|
6
|
+
inputSchema: {
|
|
7
|
+
libraryName: z.string().trim().min(1),
|
|
8
|
+
query: z.string().trim().min(1),
|
|
17
9
|
},
|
|
18
|
-
|
|
19
|
-
}),
|
|
20
|
-
|
|
10
|
+
annotations: { readOnlyHint: true },
|
|
11
|
+
}, async ({ libraryName, query }) => researchResult(clients.context7.resolveLibrary({ libraryName, query })));
|
|
12
|
+
server.registerTool("context7_query", {
|
|
21
13
|
description: "Query official Context7 documentation snippets.",
|
|
22
|
-
|
|
23
|
-
libraryId:
|
|
14
|
+
inputSchema: {
|
|
15
|
+
libraryId: z
|
|
24
16
|
.string()
|
|
25
17
|
.trim()
|
|
26
18
|
.regex(/^\/[^/]+\/[^/]+/),
|
|
27
|
-
query:
|
|
19
|
+
query: z.string().trim().min(1),
|
|
28
20
|
},
|
|
29
|
-
|
|
30
|
-
}),
|
|
31
|
-
|
|
21
|
+
annotations: { readOnlyHint: true },
|
|
22
|
+
}, async ({ libraryId, query }) => researchResult(clients.context7.queryDocs({ libraryId, query })));
|
|
23
|
+
server.registerTool("grep_app_search", {
|
|
32
24
|
description: "Search public GitHub code through the official grep.app MCP service.",
|
|
33
|
-
|
|
34
|
-
query:
|
|
35
|
-
language:
|
|
36
|
-
repo:
|
|
37
|
-
path:
|
|
38
|
-
useRegexp:
|
|
39
|
-
matchCase:
|
|
40
|
-
matchWholeWords:
|
|
25
|
+
inputSchema: {
|
|
26
|
+
query: z.string().trim().min(1),
|
|
27
|
+
language: z.array(z.string().trim().min(1)).optional(),
|
|
28
|
+
repo: z.string().trim().min(1).optional(),
|
|
29
|
+
path: z.string().trim().min(1).optional(),
|
|
30
|
+
useRegexp: z.boolean().optional(),
|
|
31
|
+
matchCase: z.boolean().optional(),
|
|
32
|
+
matchWholeWords: z.boolean().optional(),
|
|
41
33
|
},
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
})
|
|
51
|
-
})
|
|
52
|
-
|
|
34
|
+
annotations: { readOnlyHint: true },
|
|
35
|
+
}, async (args) => researchResult(clients.grepApp.search({
|
|
36
|
+
query: args.query,
|
|
37
|
+
...(args.language === undefined ? {} : { language: args.language }),
|
|
38
|
+
...(args.repo === undefined ? {} : { repo: args.repo }),
|
|
39
|
+
...(args.path === undefined ? {} : { path: args.path }),
|
|
40
|
+
...(args.useRegexp === undefined ? {} : { useRegexp: args.useRegexp }),
|
|
41
|
+
...(args.matchCase === undefined ? {} : { matchCase: args.matchCase }),
|
|
42
|
+
...(args.matchWholeWords === undefined ? {} : { matchWholeWords: args.matchWholeWords }),
|
|
43
|
+
})));
|
|
44
|
+
server.registerTool("lsp_status", {
|
|
53
45
|
description: "Report available Harness LSP servers.",
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
})
|
|
57
|
-
|
|
46
|
+
inputSchema: {},
|
|
47
|
+
annotations: { readOnlyHint: true },
|
|
48
|
+
}, async () => researchResult(clients.lsp.status()));
|
|
49
|
+
server.registerTool("lsp_diagnostics", {
|
|
58
50
|
description: "Read diagnostics for a JavaScript, TypeScript, or Java file.",
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}),
|
|
62
|
-
|
|
51
|
+
inputSchema: lspInputSchema(),
|
|
52
|
+
annotations: { readOnlyHint: true },
|
|
53
|
+
}, async (args) => researchResult(clients.lsp.diagnostics({ ...args, workspaceRoot })));
|
|
54
|
+
server.registerTool("lsp_definition", {
|
|
63
55
|
description: "Resolve the definition at a source position.",
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}),
|
|
67
|
-
|
|
56
|
+
inputSchema: lspInputSchema(),
|
|
57
|
+
annotations: { readOnlyHint: true },
|
|
58
|
+
}, async (args) => researchResult(clients.lsp.definition({ ...args, workspaceRoot })));
|
|
59
|
+
server.registerTool("lsp_references", {
|
|
68
60
|
description: "Find references at a source position.",
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}),
|
|
72
|
-
}
|
|
73
|
-
const
|
|
74
|
-
filePath:
|
|
75
|
-
line:
|
|
76
|
-
column:
|
|
61
|
+
inputSchema: lspInputSchema(),
|
|
62
|
+
annotations: { readOnlyHint: true },
|
|
63
|
+
}, async (args) => researchResult(clients.lsp.references({ ...args, workspaceRoot })));
|
|
64
|
+
};
|
|
65
|
+
const lspInputSchema = () => ({
|
|
66
|
+
filePath: z.string().trim().min(1),
|
|
67
|
+
line: z.number().int().positive(),
|
|
68
|
+
column: z.number().int().positive(),
|
|
77
69
|
});
|
|
78
|
-
const
|
|
79
|
-
if (!context.agent.startsWith("harness-")) {
|
|
80
|
-
return JSON.stringify({
|
|
81
|
-
status: "denied",
|
|
82
|
-
reason: "tool is restricted to Harness internal agents",
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
if (!allowedRoles.has(context.agent)) {
|
|
86
|
-
return JSON.stringify({
|
|
87
|
-
status: "denied",
|
|
88
|
-
reason: "tool is restricted to Harness internal agents",
|
|
89
|
-
});
|
|
90
|
-
}
|
|
70
|
+
const researchResult = async (operation) => {
|
|
91
71
|
try {
|
|
92
|
-
return
|
|
72
|
+
return {
|
|
73
|
+
content: [
|
|
74
|
+
{
|
|
75
|
+
type: "text",
|
|
76
|
+
text: JSON.stringify({ status: "ok", data: sanitizeResearchToolOutput(await operation) }),
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
};
|
|
93
80
|
}
|
|
94
81
|
catch (error) {
|
|
95
|
-
return
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
82
|
+
return {
|
|
83
|
+
content: [
|
|
84
|
+
{
|
|
85
|
+
type: "text",
|
|
86
|
+
text: JSON.stringify({
|
|
87
|
+
status: "error",
|
|
88
|
+
error: error instanceof Error ? error.message : "Harness research tool failed",
|
|
89
|
+
}),
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
isError: true,
|
|
93
|
+
};
|
|
99
94
|
}
|
|
100
95
|
};
|
|
101
96
|
//# sourceMappingURL=harness-research-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-research-tools.js","sourceRoot":"","sources":["../../src/tools/harness-research-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"harness-research-tools.js","sourceRoot":"","sources":["../../src/tools/harness-research-tools.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
package/dist/tools/lsp-client.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/workspace/index.js
CHANGED
|
File without changes
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "harness-engineering-agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Minimal OpenCode harness plugin package.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -10,8 +10,19 @@
|
|
|
10
10
|
".": {
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
12
12
|
"import": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./server": {
|
|
15
|
+
"types": "./dist/server.d.ts",
|
|
16
|
+
"import": "./dist/server.js"
|
|
17
|
+
},
|
|
18
|
+
"./mcp": {
|
|
19
|
+
"types": "./dist/mcp/server.d.ts",
|
|
20
|
+
"import": "./dist/mcp/server.js"
|
|
13
21
|
}
|
|
14
22
|
},
|
|
23
|
+
"bin": {
|
|
24
|
+
"harness-engineering-agent-mcp": "./dist/mcp/cli.js"
|
|
25
|
+
},
|
|
15
26
|
"files": [
|
|
16
27
|
"dist"
|
|
17
28
|
],
|
|
@@ -29,6 +40,7 @@
|
|
|
29
40
|
"typecheck": "tsc --noEmit"
|
|
30
41
|
},
|
|
31
42
|
"dependencies": {
|
|
43
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
32
44
|
"@opencode-ai/plugin": "1.17.11",
|
|
33
45
|
"@opencode-ai/sdk": "1.17.11",
|
|
34
46
|
"typescript-language-server": "5.3.0",
|