harness-engineering-agent 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/plugin/create-harness-plugin.d.ts +0 -9
- package/dist/plugin/create-harness-plugin.d.ts.map +1 -1
- package/dist/plugin/create-harness-plugin.js +0 -16
- package/dist/plugin/create-harness-plugin.js.map +1 -1
- package/dist/plugin/harness-agent-config.d.ts.map +1 -1
- package/dist/plugin/harness-agent-config.js +3 -2
- package/dist/plugin/harness-agent-config.js.map +1 -1
- package/dist/plugin/harness-chat-hook.d.ts +0 -3
- package/dist/plugin/harness-chat-hook.d.ts.map +1 -1
- package/dist/plugin/harness-chat-hook.js +20 -38
- package/dist/plugin/harness-chat-hook.js.map +1 -1
- package/dist/plugin/harness-chat-parts.d.ts +1 -1
- package/dist/plugin/harness-chat-parts.d.ts.map +1 -1
- package/dist/plugin/harness-chat-parts.js +6 -4
- package/dist/plugin/harness-chat-parts.js.map +1 -1
- package/dist/plugin/harness-chat-protocol.d.ts +0 -2
- package/dist/plugin/harness-chat-protocol.d.ts.map +1 -1
- package/dist/plugin/harness-chat-protocol.js +2 -7
- package/dist/plugin/harness-chat-protocol.js.map +1 -1
- package/dist/plugin/harness-request-router.d.ts +2 -0
- package/dist/plugin/harness-request-router.d.ts.map +1 -0
- package/dist/plugin/harness-request-router.js +49 -0
- package/dist/plugin/harness-request-router.js.map +1 -0
- package/package.json +1 -1
- package/dist/plugin/harness-parent-session-dispatcher.d.ts +0 -46
- package/dist/plugin/harness-parent-session-dispatcher.d.ts.map +0 -1
- package/dist/plugin/harness-parent-session-dispatcher.js +0 -33
- package/dist/plugin/harness-parent-session-dispatcher.js.map +0 -1
|
@@ -6,7 +6,6 @@ import { type SessionAdapter } from "../session/index.js";
|
|
|
6
6
|
import { type RunStore } from "../store/index.js";
|
|
7
7
|
import { type ProcessRunner, type VerificationRunner } from "../verification/index.js";
|
|
8
8
|
import { type CreateHarnessCoordinatorOptions, type HarnessCoordinator } from "./harness-coordinator.js";
|
|
9
|
-
import { type ParentPromptAsyncRequest, type ParentSessionPromptDispatcher } from "./harness-parent-session-dispatcher.js";
|
|
10
9
|
export type HarnessPluginDependencies = {
|
|
11
10
|
readonly loadConfig?: (projectRoot: string) => Promise<HarnessConfig>;
|
|
12
11
|
readonly createStore?: (projectRoot: string, stateDirectory: string) => RunStore;
|
|
@@ -23,14 +22,6 @@ export type HarnessPluginDependencies = {
|
|
|
23
22
|
readonly ids: ControllerIdSource;
|
|
24
23
|
}) => RunController;
|
|
25
24
|
readonly createCoordinator?: (input: CreateHarnessCoordinatorOptions) => HarnessCoordinator;
|
|
26
|
-
readonly createParentSessionDispatcher?: (input: {
|
|
27
|
-
readonly config: HarnessConfig;
|
|
28
|
-
readonly client: {
|
|
29
|
-
readonly session: {
|
|
30
|
-
readonly promptAsync: (request: ParentPromptAsyncRequest) => Promise<unknown>;
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
}) => ParentSessionPromptDispatcher;
|
|
34
25
|
readonly clock?: ControllerClock;
|
|
35
26
|
readonly ids?: ControllerIdSource;
|
|
36
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-harness-plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/create-harness-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAEvB,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EACL,KAAK,+BAA+B,EAEpC,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"create-harness-plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/create-harness-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAEvB,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EACL,KAAK,+BAA+B,EAEpC,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAA;AAEjC,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IACrE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,QAAQ,CAAA;IAChF,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,KAAK,cAAc,CAAA;IACjG,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,aAAa,CAAA;IAClD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,kBAAkB,CAAA;IACxF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QAClC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;QAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;QACxB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;QACvC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAA;QAC/C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;QAC/B,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAA;KACjC,KAAK,aAAa,CAAA;IACnB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,+BAA+B,KAAK,kBAAkB,CAAA;IAC3F,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAA;CAClC,CAAA;AAUD,eAAO,MAAM,mBAAmB,GAAI,eAAc,yBAA8B,KAAG,MA+BlF,CAAA;AAED,eAAO,MAAM,aAAa,QAAwB,CAAA;AA4HlD,eAAO,MAAM,yBAAyB,GACpC,OAAO,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,UAAU,CAAC,KACjD,MAAoD,CAAA"}
|
|
@@ -9,22 +9,18 @@ import { createNodeProcessRunner, createVerificationRunner, } from "../verificat
|
|
|
9
9
|
import { applyHarnessAgentConfig } from "./harness-agent-config.js";
|
|
10
10
|
import { handleHarnessChatMessage } from "./harness-chat-hook.js";
|
|
11
11
|
import { createHarnessCoordinator, } from "./harness-coordinator.js";
|
|
12
|
-
import { asParentSessionClient, createParentSessionPromptDispatcher, } from "./harness-parent-session-dispatcher.js";
|
|
13
12
|
export const createHarnessPlugin = (dependencies = {}) => {
|
|
14
13
|
return async (input) => {
|
|
15
14
|
const runtime = await createRuntime(input, dependencies);
|
|
16
15
|
if (runtime.config === undefined ||
|
|
17
16
|
runtime.controller === undefined ||
|
|
18
17
|
runtime.coordinator === undefined ||
|
|
19
|
-
runtime.parentSessionDispatcher === undefined ||
|
|
20
18
|
runtime.projectRoot === undefined ||
|
|
21
19
|
runtime.sessionGuards === undefined) {
|
|
22
20
|
return {};
|
|
23
21
|
}
|
|
24
22
|
const config = runtime.config;
|
|
25
23
|
const coordinator = runtime.coordinator;
|
|
26
|
-
const parentSessionDispatcher = runtime.parentSessionDispatcher;
|
|
27
|
-
const projectRoot = runtime.projectRoot;
|
|
28
24
|
const sessionGuards = runtime.sessionGuards;
|
|
29
25
|
return {
|
|
30
26
|
config: async (mutableConfig) => {
|
|
@@ -34,11 +30,9 @@ export const createHarnessPlugin = (dependencies = {}) => {
|
|
|
34
30
|
await handleHarnessChatMessage({
|
|
35
31
|
config,
|
|
36
32
|
coordinator,
|
|
37
|
-
dispatcher: parentSessionDispatcher,
|
|
38
33
|
guards: sessionGuards,
|
|
39
34
|
messageInput,
|
|
40
35
|
output,
|
|
41
|
-
directory: projectRoot,
|
|
42
36
|
});
|
|
43
37
|
},
|
|
44
38
|
};
|
|
@@ -82,7 +76,6 @@ const createRuntime = async (input, dependencies) => {
|
|
|
82
76
|
inFlightSessions: new Map(),
|
|
83
77
|
internalSessionIds: new Set(),
|
|
84
78
|
};
|
|
85
|
-
const parentSessionClient = asParentSessionClient(input.client);
|
|
86
79
|
const controller = (dependencies.createController ??
|
|
87
80
|
((options) => createRunController({
|
|
88
81
|
store: options.store,
|
|
@@ -121,19 +114,10 @@ const createRuntime = async (input, dependencies) => {
|
|
|
121
114
|
},
|
|
122
115
|
sessionAdapter,
|
|
123
116
|
});
|
|
124
|
-
const parentSessionDispatcher = (dependencies.createParentSessionDispatcher ??
|
|
125
|
-
((dispatcherInput) => createParentSessionPromptDispatcher({
|
|
126
|
-
client: dispatcherInput.client,
|
|
127
|
-
config: dispatcherInput.config,
|
|
128
|
-
})))({
|
|
129
|
-
config,
|
|
130
|
-
client: parentSessionClient,
|
|
131
|
-
});
|
|
132
117
|
return {
|
|
133
118
|
config,
|
|
134
119
|
controller,
|
|
135
120
|
coordinator,
|
|
136
|
-
parentSessionDispatcher,
|
|
137
121
|
projectRoot,
|
|
138
122
|
sessionGuards,
|
|
139
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-harness-plugin.js","sourceRoot":"","sources":["../../src/plugin/create-harness-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,EAAsB,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAGL,mBAAmB,GAEpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,GAE5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,wBAAwB,EAAiB,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAGzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,wBAAwB,EAAsB,MAAM,wBAAwB,CAAA;AACrF,OAAO,EAEL,wBAAwB,GAEzB,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"create-harness-plugin.js","sourceRoot":"","sources":["../../src/plugin/create-harness-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-agent-config.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-agent-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,mCAAmC,EACnC,qCAAqC,EACrC,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,gCAAgC,EAChC,kCAAkC,EAClC,2BAA2B,EAC3B,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,mCAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"harness-agent-config.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-agent-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,mCAAmC,EACnC,qCAAqC,EACrC,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,gCAAgC,EAChC,kCAAkC,EAClC,2BAA2B,EAC3B,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,mCAAmC,CAAA;AA2D1C,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,EAAE,eAAe,aAAa,KAAG,IA4FtF,CAAA;AAED,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,mCAAmC,EACnC,qCAAqC,EACrC,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,gCAAgC,EAChC,kCAAkC,EAClC,2BAA2B,EAC3B,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,GAC5B,CAAA"}
|
|
@@ -2,8 +2,9 @@ import { HARNESS_ACCEPTANCE_AGENT_NAME, HARNESS_ACCEPTANCE_DISPLAY_NAME, HARNESS
|
|
|
2
2
|
const HARNESS_AGENT_DESCRIPTION = "Use for natural-language Harness lifecycle operations: start, status, resume, cancel, report.";
|
|
3
3
|
const HARNESS_AGENT_PROMPT = [
|
|
4
4
|
"你是 Harness Agent,只负责呈现 Harness 控制平面结果。",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
5
|
+
"关于可用模型、当前模型、MCP、智能体、配置、帮助或工具的普通能力查询,直接按 OpenCode 正常能力回答,不要进入 Harness 协调。",
|
|
6
|
+
"生命周期消息会在同一轮附带一个带有 <!-- HARNESS_INTERNAL_RESULT --> 标记的 synthetic result;该结果是唯一权威完成结果。",
|
|
7
|
+
"你只基于该 synthetic result 做总结,不要猜测、补造或改写运行状态。",
|
|
7
8
|
"不要直接编辑文件、执行 shell、调用 task 委派子 Agent 或声明未完成的任务已完成。",
|
|
8
9
|
"向用户清楚展示 runId、当前状态、阻塞原因和下一步操作。",
|
|
9
10
|
].join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-agent-config.js","sourceRoot":"","sources":["../../src/plugin/harness-agent-config.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,mCAAmC,EACnC,qCAAqC,EACrC,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,gCAAgC,EAChC,kCAAkC,EAClC,2BAA2B,EAC3B,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,mCAAmC,CAAA;AAE1C,MAAM,yBAAyB,GAC7B,+FAA+F,CAAA;AACjG,MAAM,oBAAoB,GAAG;IAC3B,wCAAwC;IACxC,
|
|
1
|
+
{"version":3,"file":"harness-agent-config.js","sourceRoot":"","sources":["../../src/plugin/harness-agent-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Part } from "@opencode-ai/sdk";
|
|
2
2
|
import type { HarnessConfig } from "../config/index.js";
|
|
3
3
|
import type { HarnessCoordinator } from "./harness-coordinator.js";
|
|
4
|
-
import type { ParentSessionPromptDispatcher } from "./harness-parent-session-dispatcher.js";
|
|
5
4
|
export type SessionGuards = {
|
|
6
5
|
readonly inFlightSessions: Map<string, Promise<void>>;
|
|
7
6
|
readonly internalSessionIds: Set<string>;
|
|
@@ -9,9 +8,7 @@ export type SessionGuards = {
|
|
|
9
8
|
export declare const handleHarnessChatMessage: (input: {
|
|
10
9
|
readonly config: HarnessConfig;
|
|
11
10
|
readonly coordinator: HarnessCoordinator;
|
|
12
|
-
readonly dispatcher: ParentSessionPromptDispatcher;
|
|
13
11
|
readonly guards: SessionGuards;
|
|
14
|
-
readonly directory: string;
|
|
15
12
|
readonly messageInput: {
|
|
16
13
|
readonly sessionID: string;
|
|
17
14
|
readonly agent?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-chat-hook.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-chat-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"harness-chat-hook.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-chat-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAYvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAGlE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACrD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,OAAO;IACpD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KACxB,CAAA;IACD,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,OAAO,EAAE;YAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;YACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;SAC3B,CAAA;QACD,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;KACvB,CAAA;CACF,KAAG,OAAO,CAAC,IAAI,CAuCf,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HARNESS_PRIMARY_AGENT_NAME } from "../session/index.js";
|
|
2
|
-
import { appendSyntheticTextPart,
|
|
3
|
-
import {
|
|
2
|
+
import { appendSyntheticTextPart, extractChatText, hasHarnessInternalResultPart, } from "./harness-chat-parts.js";
|
|
3
|
+
import { createBackgroundBusyInstruction, createInternalCompletionMessage, createInternalFailureMessage, } from "./harness-chat-protocol.js";
|
|
4
|
+
import { shouldBypassHarnessCoordination } from "./harness-request-router.js";
|
|
4
5
|
export const handleHarnessChatMessage = async (input) => {
|
|
5
6
|
if (!input.config.enabled || input.messageInput.agent !== HARNESS_PRIMARY_AGENT_NAME) {
|
|
6
7
|
return;
|
|
@@ -8,7 +9,11 @@ export const handleHarnessChatMessage = async (input) => {
|
|
|
8
9
|
if (input.guards.internalSessionIds.has(input.messageInput.sessionID)) {
|
|
9
10
|
return;
|
|
10
11
|
}
|
|
11
|
-
if (
|
|
12
|
+
if (hasHarnessInternalResultPart(input.output.parts)) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const inputText = extractChatText(input.output.parts);
|
|
16
|
+
if (shouldBypassHarnessCoordination(inputText)) {
|
|
12
17
|
return;
|
|
13
18
|
}
|
|
14
19
|
const existingJob = input.guards.inFlightSessions.get(input.messageInput.sessionID);
|
|
@@ -16,17 +21,21 @@ export const handleHarnessChatMessage = async (input) => {
|
|
|
16
21
|
appendProtocolPart(input.output, createBackgroundBusyInstruction());
|
|
17
22
|
return;
|
|
18
23
|
}
|
|
19
|
-
|
|
20
|
-
const job = runBackgroundConversation({
|
|
21
|
-
coordinator: input.coordinator,
|
|
22
|
-
dispatcher: input.dispatcher,
|
|
23
|
-
directory: input.directory,
|
|
24
|
-
inputText: extractChatText(input.output.parts),
|
|
24
|
+
const responsePromise = input.coordinator.handle({
|
|
25
25
|
sessionID: input.messageInput.sessionID,
|
|
26
|
-
|
|
27
|
-
input.guards.inFlightSessions.delete(input.messageInput.sessionID);
|
|
26
|
+
inputText,
|
|
28
27
|
});
|
|
28
|
+
const job = responsePromise.then(() => undefined, () => undefined);
|
|
29
29
|
input.guards.inFlightSessions.set(input.messageInput.sessionID, job);
|
|
30
|
+
try {
|
|
31
|
+
appendProtocolPart(input.output, createInternalCompletionMessage(await responsePromise));
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
appendProtocolPart(input.output, createInternalFailureMessage(createHookErrorMessage(error)));
|
|
35
|
+
}
|
|
36
|
+
finally {
|
|
37
|
+
input.guards.inFlightSessions.delete(input.messageInput.sessionID);
|
|
38
|
+
}
|
|
30
39
|
};
|
|
31
40
|
const appendProtocolPart = (output, text) => {
|
|
32
41
|
appendSyntheticTextPart({
|
|
@@ -36,33 +45,6 @@ const appendProtocolPart = (output, text) => {
|
|
|
36
45
|
text,
|
|
37
46
|
});
|
|
38
47
|
};
|
|
39
|
-
const runBackgroundConversation = (input) => {
|
|
40
|
-
return (async () => {
|
|
41
|
-
try {
|
|
42
|
-
const response = await input.coordinator.handle({
|
|
43
|
-
sessionID: input.sessionID,
|
|
44
|
-
inputText: input.inputText,
|
|
45
|
-
});
|
|
46
|
-
await input.dispatcher.dispatchInternalCompletion({
|
|
47
|
-
sessionID: input.sessionID,
|
|
48
|
-
directory: input.directory,
|
|
49
|
-
text: createInternalCompletionMessage(response),
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
try {
|
|
54
|
-
await input.dispatcher.dispatchInternalCompletion({
|
|
55
|
-
sessionID: input.sessionID,
|
|
56
|
-
directory: input.directory,
|
|
57
|
-
text: createInternalFailureMessage(createHookErrorMessage(error)),
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
catch (dispatchError) {
|
|
61
|
-
console.error("Harness background completion dispatch failed", dispatchError);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
})();
|
|
65
|
-
};
|
|
66
48
|
const createHookErrorMessage = (error) => {
|
|
67
49
|
if (error instanceof Error) {
|
|
68
50
|
return error.message;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-chat-hook.js","sourceRoot":"","sources":["../../src/plugin/harness-chat-hook.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"harness-chat-hook.js","sourceRoot":"","sources":["../../src/plugin/harness-chat-hook.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,4BAA4B,GAC7B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAA;AAO7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,KAe9C,EAAiB,EAAE;IAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,KAAK,0BAA0B,EAAE,CAAC;QACrF,OAAM;IACR,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,OAAM;IACR,CAAC;IACD,IAAI,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACrD,IAAI,+BAA+B,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,OAAM;IACR,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IACnF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAA;QACnE,OAAM;IACR,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;QAC/C,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,SAAS;QACvC,SAAS;KACV,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAC9B,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAA;IACD,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAEpE,IAAI,CAAC;QACH,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,+BAA+B,CAAC,MAAM,eAAe,CAAC,CAAC,CAAA;IAC1F,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,4BAA4B,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/F,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IACpE,CAAC;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CACzB,MAMC,EACD,IAAY,EACN,EAAE;IACR,uBAAuB,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;QACnC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;QAC5B,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAAC,KAAc,EAAU,EAAE;IACxD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAA;IACtB,CAAC;IACD,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Part } from "@opencode-ai/sdk";
|
|
2
|
-
export declare const extractAllText: (parts: readonly Part[]) => string;
|
|
3
2
|
export declare const extractChatText: (parts: readonly Part[]) => string;
|
|
3
|
+
export declare const hasHarnessInternalResultPart: (parts: readonly Part[]) => boolean;
|
|
4
4
|
export declare const appendSyntheticTextPart: (input: {
|
|
5
5
|
readonly parts: Part[];
|
|
6
6
|
readonly sessionID: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-chat-parts.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-chat-parts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"harness-chat-parts.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-chat-parts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,kBAAkB,CAAA;AAItD,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,IAAI,EAAE,KAAG,MAQ9C,CAAA;AAEX,eAAO,MAAM,4BAA4B,GAAI,OAAO,SAAS,IAAI,EAAE,KAAG,OAQnE,CAAA;AAEH,eAAO,MAAM,uBAAuB,GAAI,OAAO;IAC7C,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,KAAG,IAcH,CAAA"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
.filter((part) => part.type === "text")
|
|
3
|
-
.map((part) => part.text)
|
|
4
|
-
.join("");
|
|
1
|
+
import { HARNESS_INTERNAL_RESULT_MARKER } from "./harness-chat-protocol.js";
|
|
5
2
|
export const extractChatText = (parts) => parts
|
|
6
3
|
.filter((part) => part.type === "text" && part.synthetic !== true && part.ignored !== true)
|
|
7
4
|
.map((part) => part.text)
|
|
8
5
|
.join("")
|
|
9
6
|
.trim();
|
|
7
|
+
export const hasHarnessInternalResultPart = (parts) => parts.some((part) => part.type === "text" &&
|
|
8
|
+
part.synthetic === true &&
|
|
9
|
+
part.metadata !== undefined &&
|
|
10
|
+
Reflect.get(part.metadata, "source") === "harness" &&
|
|
11
|
+
part.text.includes(HARNESS_INTERNAL_RESULT_MARKER));
|
|
10
12
|
export const appendSyntheticTextPart = (input) => {
|
|
11
13
|
const part = {
|
|
12
14
|
id: createSyntheticPartId(input.parts, input.messageID),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-chat-parts.js","sourceRoot":"","sources":["../../src/plugin/harness-chat-parts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"harness-chat-parts.js","sourceRoot":"","sources":["../../src/plugin/harness-chat-parts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAA;AAE3E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAU,EAAE,CAChE,KAAK;KACF,MAAM,CACL,CAAC,IAAI,EAAoD,EAAE,CACzD,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAC3E;KACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KACxB,IAAI,CAAC,EAAE,CAAC;KACR,IAAI,EAAE,CAAA;AAEX,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAsB,EAAW,EAAE,CAC9E,KAAK,CAAC,IAAI,CACR,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,KAAK,MAAM;IACpB,IAAI,CAAC,SAAS,KAAK,IAAI;IACvB,IAAI,CAAC,QAAQ,KAAK,SAAS;IAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,SAAS;IAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CACrD,CAAA;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAKvC,EAAQ,EAAE;IACT,MAAM,IAAI,GAAa;QACrB,EAAE,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;QACvD,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE;YACR,MAAM,EAAE,SAAS;SAClB;KACF,CAAA;IAED,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,KAAsB,EAAE,SAAiB,EAAU,EAAE;IAClF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,OAAO,SAAS,mBAAmB,CAAA;IAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC9C,QAAQ,IAAI,CAAC,CAAA;IACf,CAAC;IACD,OAAO,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAA;AAC9B,CAAC,CAAA"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import type { HarnessCoordinatorResponse } from "./harness-coordinator.js";
|
|
2
2
|
export declare const HARNESS_BACKGROUND_ACK_MARKER = "<!-- HARNESS_BACKGROUND_ACK -->";
|
|
3
3
|
export declare const HARNESS_INTERNAL_RESULT_MARKER = "<!-- HARNESS_INTERNAL_RESULT -->";
|
|
4
|
-
export declare const createBackgroundAckInstruction: () => string;
|
|
5
4
|
export declare const createBackgroundBusyInstruction: () => string;
|
|
6
5
|
export declare const createInternalCompletionMessage: (response: HarnessCoordinatorResponse) => string;
|
|
7
6
|
export declare const createInternalFailureMessage: (message: string) => string;
|
|
8
|
-
export declare const hasHarnessInternalResultMarker: (text: string) => boolean;
|
|
9
7
|
//# sourceMappingURL=harness-chat-protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-chat-protocol.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-chat-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AAE1E,eAAO,MAAM,6BAA6B,oCAAoC,CAAA;AAC9E,eAAO,MAAM,8BAA8B,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"harness-chat-protocol.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-chat-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AAE1E,eAAO,MAAM,6BAA6B,oCAAoC,CAAA;AAC9E,eAAO,MAAM,8BAA8B,qCAAqC,CAAA;AAkBhF,eAAO,MAAM,+BAA+B,QAAO,MAI/C,CAAA;AAEJ,eAAO,MAAM,+BAA+B,GAAI,UAAU,0BAA0B,KAAG,MAKnF,CAAA;AAEJ,eAAO,MAAM,4BAA4B,GAAI,SAAS,MAAM,KAAG,MAK3D,CAAA"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
export const HARNESS_BACKGROUND_ACK_MARKER = "<!-- HARNESS_BACKGROUND_ACK -->";
|
|
2
2
|
export const HARNESS_INTERNAL_RESULT_MARKER = "<!-- HARNESS_INTERNAL_RESULT -->";
|
|
3
|
-
export const
|
|
4
|
-
kind: "background-
|
|
5
|
-
status: "accepted",
|
|
6
|
-
});
|
|
7
|
-
export const createBackgroundBusyInstruction = () => createMarkedPayload(HARNESS_BACKGROUND_ACK_MARKER, {
|
|
8
|
-
kind: "background-busy",
|
|
3
|
+
export const createBackgroundBusyInstruction = () => createMarkedPayload(HARNESS_INTERNAL_RESULT_MARKER, {
|
|
4
|
+
kind: "background-result",
|
|
9
5
|
status: "busy",
|
|
10
6
|
});
|
|
11
7
|
export const createInternalCompletionMessage = (response) => createMarkedPayload(HARNESS_INTERNAL_RESULT_MARKER, {
|
|
@@ -18,6 +14,5 @@ export const createInternalFailureMessage = (message) => createMarkedPayload(HAR
|
|
|
18
14
|
status: "failed",
|
|
19
15
|
message,
|
|
20
16
|
});
|
|
21
|
-
export const hasHarnessInternalResultMarker = (text) => text.includes(HARNESS_INTERNAL_RESULT_MARKER);
|
|
22
17
|
const createMarkedPayload = (marker, payload) => `${marker}\n${JSON.stringify(payload)}`;
|
|
23
18
|
//# sourceMappingURL=harness-chat-protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-chat-protocol.js","sourceRoot":"","sources":["../../src/plugin/harness-chat-protocol.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,6BAA6B,GAAG,iCAAiC,CAAA;AAC9E,MAAM,CAAC,MAAM,8BAA8B,GAAG,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"harness-chat-protocol.js","sourceRoot":"","sources":["../../src/plugin/harness-chat-protocol.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,6BAA6B,GAAG,iCAAiC,CAAA;AAC9E,MAAM,CAAC,MAAM,8BAA8B,GAAG,kCAAkC,CAAA;AAkBhF,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAW,EAAE,CAC1D,mBAAmB,CAAC,8BAA8B,EAAE;IAClD,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,MAAM;CACf,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,QAAoC,EAAU,EAAE,CAC9F,mBAAmB,CAAC,8BAA8B,EAAE;IAClD,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,WAAW;IACnB,QAAQ;CACT,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,OAAe,EAAU,EAAE,CACtE,mBAAmB,CAAC,8BAA8B,EAAE;IAClD,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,QAAQ;IAChB,OAAO;CACR,CAAC,CAAA;AAEJ,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,OAAiC,EAAU,EAAE,CACxF,GAAG,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness-request-router.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-request-router.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,+BAA+B,GAAI,WAAW,MAAM,KAAG,OAiBnE,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const LIFECYCLE_COMMAND_HEADS = [
|
|
2
|
+
"start",
|
|
3
|
+
"run",
|
|
4
|
+
"status",
|
|
5
|
+
"pause",
|
|
6
|
+
"answer",
|
|
7
|
+
"resume",
|
|
8
|
+
"cancel",
|
|
9
|
+
"waive",
|
|
10
|
+
"report",
|
|
11
|
+
];
|
|
12
|
+
const ADMIN_NOUN_PATTERNS = [
|
|
13
|
+
/\bmodels?\b/iu,
|
|
14
|
+
/模型/u,
|
|
15
|
+
/\bmcp\b/iu,
|
|
16
|
+
/\bagents?\b/iu,
|
|
17
|
+
/智能体/u,
|
|
18
|
+
/\bconfig(?:uration)?\b/iu,
|
|
19
|
+
/配置/u,
|
|
20
|
+
/\bhelp\b/iu,
|
|
21
|
+
/帮助/u,
|
|
22
|
+
/\btools?\b/iu,
|
|
23
|
+
/工具/u,
|
|
24
|
+
];
|
|
25
|
+
const QUERY_VERB_PATTERNS = [
|
|
26
|
+
/\b(?:list|show|available|current|what(?:'s| is)?|which)\b/iu,
|
|
27
|
+
/\b(?:how many|display)\b/iu,
|
|
28
|
+
/\b(?:supports|supported)\b/iu,
|
|
29
|
+
/\b(?:configured|enabled)\b/iu,
|
|
30
|
+
/\b(?:tell me|can you show)\b/iu,
|
|
31
|
+
/(?:有哪些|哪些|那些|什么|列出|列一下|查看|查询|查一下|显示|当前|可用|启用|配置了什么)/u,
|
|
32
|
+
];
|
|
33
|
+
export const shouldBypassHarnessCoordination = (inputText) => {
|
|
34
|
+
const normalizedText = inputText.trim();
|
|
35
|
+
if (normalizedText.length === 0) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const commandHead = normalizedText.split(/\s+/u)[0]?.toLowerCase();
|
|
39
|
+
if (commandHead !== undefined && isLifecycleCommandHead(commandHead)) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
const hasAdminNoun = ADMIN_NOUN_PATTERNS.some((pattern) => pattern.test(normalizedText));
|
|
43
|
+
if (!hasAdminNoun) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return QUERY_VERB_PATTERNS.some((pattern) => pattern.test(normalizedText));
|
|
47
|
+
};
|
|
48
|
+
const isLifecycleCommandHead = (value) => LIFECYCLE_COMMAND_HEADS.some((commandHead) => commandHead === value);
|
|
49
|
+
//# sourceMappingURL=harness-request-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness-request-router.js","sourceRoot":"","sources":["../../src/plugin/harness-request-router.ts"],"names":[],"mappings":"AAAA,MAAM,uBAAuB,GAAG;IAC9B,OAAO;IACP,KAAK;IACL,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;CACA,CAAA;AAEV,MAAM,mBAAmB,GAAG;IAC1B,eAAe;IACf,KAAK;IACL,WAAW;IACX,eAAe;IACf,MAAM;IACN,0BAA0B;IAC1B,KAAK;IACL,YAAY;IACZ,KAAK;IACL,cAAc;IACd,KAAK;CACG,CAAA;AAEV,MAAM,mBAAmB,GAAG;IAC1B,6DAA6D;IAC7D,4BAA4B;IAC5B,8BAA8B;IAC9B,8BAA8B;IAC9B,gCAAgC;IAChC,sDAAsD;CAC9C,CAAA;AAEV,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,SAAiB,EAAW,EAAE;IAC5E,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IACvC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAA;IAClE,IAAI,WAAW,KAAK,SAAS,IAAI,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;IACxF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;AAC5E,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAqD,EAAE,CAClG,uBAAuB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,KAAK,KAAK,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { OpencodeClient } from "@opencode-ai/sdk";
|
|
2
|
-
import type { HarnessConfig } from "../config/index.js";
|
|
3
|
-
export type ParentPromptAsyncRequest = {
|
|
4
|
-
readonly path: {
|
|
5
|
-
readonly id: string;
|
|
6
|
-
};
|
|
7
|
-
readonly query: {
|
|
8
|
-
readonly directory: string;
|
|
9
|
-
};
|
|
10
|
-
readonly body: {
|
|
11
|
-
readonly agent: "harness";
|
|
12
|
-
readonly model: {
|
|
13
|
-
readonly providerID: string;
|
|
14
|
-
readonly modelID: string;
|
|
15
|
-
};
|
|
16
|
-
readonly parts: ParentTextPartInput[];
|
|
17
|
-
};
|
|
18
|
-
readonly throwOnError: true;
|
|
19
|
-
};
|
|
20
|
-
type ParentTextPartInput = {
|
|
21
|
-
readonly type: "text";
|
|
22
|
-
readonly text: string;
|
|
23
|
-
readonly synthetic: true;
|
|
24
|
-
readonly metadata: {
|
|
25
|
-
readonly source: "harness";
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
export type ParentSessionPromptDispatcher = {
|
|
29
|
-
readonly dispatchInternalCompletion: (input: {
|
|
30
|
-
readonly sessionID: string;
|
|
31
|
-
readonly directory: string;
|
|
32
|
-
readonly text: string;
|
|
33
|
-
}) => Promise<void>;
|
|
34
|
-
};
|
|
35
|
-
type ParentSessionClient = {
|
|
36
|
-
readonly session: {
|
|
37
|
-
readonly promptAsync: (input: ParentPromptAsyncRequest) => Promise<unknown>;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
export declare const createParentSessionPromptDispatcher: (input: {
|
|
41
|
-
readonly client: ParentSessionClient;
|
|
42
|
-
readonly config: HarnessConfig;
|
|
43
|
-
}) => ParentSessionPromptDispatcher;
|
|
44
|
-
export declare const asParentSessionClient: (client: OpencodeClient) => ParentSessionClient;
|
|
45
|
-
export {};
|
|
46
|
-
//# sourceMappingURL=harness-parent-session-dispatcher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"harness-parent-session-dispatcher.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-parent-session-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;QACzB,QAAQ,CAAC,KAAK,EAAE;YACd,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;YAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;SACzB,CAAA;QACD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,CAAA;KACtC,CAAA;IACD,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAA;CAC5B,CAAA;AAED,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;KAC3B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,0BAA0B,EAAE,CAAC,KAAK,EAAE;QAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KACtB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpB,CAAA;AAED,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAC5E,CAAA;CACF,CAAA;AAED,eAAO,MAAM,mCAAmC,GAAI,OAAO;IACzD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAC/B,KAAG,6BAkBH,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,cAAc,KAAG,mBAI7D,CAAA"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export const createParentSessionPromptDispatcher = (input) => {
|
|
2
|
-
return {
|
|
3
|
-
dispatchInternalCompletion: async ({ directory, sessionID, text }) => {
|
|
4
|
-
await input.client.session.promptAsync({
|
|
5
|
-
path: { id: sessionID },
|
|
6
|
-
query: { directory },
|
|
7
|
-
body: {
|
|
8
|
-
agent: "harness",
|
|
9
|
-
model: {
|
|
10
|
-
providerID: input.config.harness.provider,
|
|
11
|
-
modelID: input.config.harness.model,
|
|
12
|
-
},
|
|
13
|
-
parts: [createSyntheticTextPart(text)],
|
|
14
|
-
},
|
|
15
|
-
throwOnError: true,
|
|
16
|
-
});
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
export const asParentSessionClient = (client) => ({
|
|
21
|
-
session: {
|
|
22
|
-
promptAsync: (request) => client.session.promptAsync(request),
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
const createSyntheticTextPart = (text) => ({
|
|
26
|
-
type: "text",
|
|
27
|
-
text,
|
|
28
|
-
synthetic: true,
|
|
29
|
-
metadata: {
|
|
30
|
-
source: "harness",
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=harness-parent-session-dispatcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"harness-parent-session-dispatcher.js","sourceRoot":"","sources":["../../src/plugin/harness-parent-session-dispatcher.ts"],"names":[],"mappings":"AAyCA,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,KAGnD,EAAiC,EAAE;IAClC,OAAO;QACL,0BAA0B,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;YACnE,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;gBACrC,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACvB,KAAK,EAAE,EAAE,SAAS,EAAE;gBACpB,IAAI,EAAE;oBACJ,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAE;wBACL,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ;wBACzC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;qBACpC;oBACD,KAAK,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;iBACvC;gBACD,YAAY,EAAE,IAAI;aACnB,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAsB,EAAuB,EAAE,CAAC,CAAC;IACrF,OAAO,EAAE;QACP,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC9D;CACF,CAAC,CAAA;AAEF,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAuB,EAAE,CAAC,CAAC;IACtE,IAAI,EAAE,MAAM;IACZ,IAAI;IACJ,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE;QACR,MAAM,EAAE,SAAS;KAClB;CACF,CAAC,CAAA"}
|