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.
Files changed (28) hide show
  1. package/dist/plugin/create-harness-plugin.d.ts +0 -9
  2. package/dist/plugin/create-harness-plugin.d.ts.map +1 -1
  3. package/dist/plugin/create-harness-plugin.js +0 -16
  4. package/dist/plugin/create-harness-plugin.js.map +1 -1
  5. package/dist/plugin/harness-agent-config.d.ts.map +1 -1
  6. package/dist/plugin/harness-agent-config.js +3 -2
  7. package/dist/plugin/harness-agent-config.js.map +1 -1
  8. package/dist/plugin/harness-chat-hook.d.ts +0 -3
  9. package/dist/plugin/harness-chat-hook.d.ts.map +1 -1
  10. package/dist/plugin/harness-chat-hook.js +20 -38
  11. package/dist/plugin/harness-chat-hook.js.map +1 -1
  12. package/dist/plugin/harness-chat-parts.d.ts +1 -1
  13. package/dist/plugin/harness-chat-parts.d.ts.map +1 -1
  14. package/dist/plugin/harness-chat-parts.js +6 -4
  15. package/dist/plugin/harness-chat-parts.js.map +1 -1
  16. package/dist/plugin/harness-chat-protocol.d.ts +0 -2
  17. package/dist/plugin/harness-chat-protocol.d.ts.map +1 -1
  18. package/dist/plugin/harness-chat-protocol.js +2 -7
  19. package/dist/plugin/harness-chat-protocol.js.map +1 -1
  20. package/dist/plugin/harness-request-router.d.ts +2 -0
  21. package/dist/plugin/harness-request-router.d.ts.map +1 -0
  22. package/dist/plugin/harness-request-router.js +49 -0
  23. package/dist/plugin/harness-request-router.js.map +1 -0
  24. package/package.json +1 -1
  25. package/dist/plugin/harness-parent-session-dispatcher.d.ts +0 -46
  26. package/dist/plugin/harness-parent-session-dispatcher.d.ts.map +0 -1
  27. package/dist/plugin/harness-parent-session-dispatcher.js +0 -33
  28. 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;AACjC,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EACnC,MAAM,wCAAwC,CAAA;AAE/C,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,6BAA6B,CAAC,EAAE,CAAC,KAAK,EAAE;QAC/C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;QAC9B,QAAQ,CAAC,MAAM,EAAE;YACf,QAAQ,CAAC,OAAO,EAAE;gBAChB,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;aAC9E,CAAA;SACF,CAAA;KACF,KAAK,6BAA6B,CAAA;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAA;CAClC,CAAA;AAWD,eAAO,MAAM,mBAAmB,GAAI,eAAc,yBAA8B,KAAG,MAoClF,CAAA;AAED,eAAO,MAAM,aAAa,QAAwB,CAAA;AAyIlD,eAAO,MAAM,yBAAyB,GACpC,OAAO,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,UAAU,CAAC,KACjD,MAAoD,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":"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"}
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;AA0D1C,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"}
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
- "带有 <!-- HARNESS_INTERNAL_RESULT --> 标记的 synthetic result 是唯一权威完成结果;你只基于该结果做总结,不要猜测、补造或改写运行状态。",
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":"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"}
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;AAUvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAA;AAE3F,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,UAAU,EAAE,6BAA6B,CAAA;IAClD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,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,CA4Bf,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, extractAllText, extractChatText } from "./harness-chat-parts.js";
3
- import { createBackgroundAckInstruction, createBackgroundBusyInstruction, createInternalCompletionMessage, createInternalFailureMessage, hasHarnessInternalResultMarker, } from "./harness-chat-protocol.js";
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 (hasHarnessInternalResultMarker(extractAllText(input.output.parts))) {
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
- appendProtocolPart(input.output, createBackgroundAckInstruction());
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
- }).finally(() => {
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":"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"}
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;AAEtD,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,IAAI,EAAE,KAAG,MAI3C,CAAA;AAEb,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,IAAI,EAAE,KAAG,MAQ9C,CAAA;AAEX,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
+ {"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
- export const extractAllText = (parts) => parts
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,cAAc,GAAG,CAAC,KAAsB,EAAU,EAAE,CAC/D,KAAK;KACF,MAAM,CAAC,CAAC,IAAI,EAAoD,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;KACxF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KACxB,IAAI,CAAC,EAAE,CAAC,CAAA;AAEb,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,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
+ {"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;AAwBhF,eAAO,MAAM,8BAA8B,QAAO,MAI9C,CAAA;AAEJ,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;AAEJ,eAAO,MAAM,8BAA8B,GAAI,MAAM,MAAM,KAAG,OACf,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 createBackgroundAckInstruction = () => createMarkedPayload(HARNESS_BACKGROUND_ACK_MARKER, {
4
- kind: "background-ack",
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;AAwBhF,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAW,EAAE,CACzD,mBAAmB,CAAC,6BAA6B,EAAE;IACjD,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,UAAU;CACnB,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAW,EAAE,CAC1D,mBAAmB,CAAC,6BAA6B,EAAE;IACjD,IAAI,EAAE,iBAAiB;IACvB,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,CAAC,MAAM,8BAA8B,GAAG,CAAC,IAAY,EAAW,EAAE,CACtE,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAA;AAE/C,MAAM,mBAAmB,GAAG,CAC1B,MAAc,EACd,OAAqD,EAC7C,EAAE,CAAC,GAAG,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,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,2 @@
1
+ export declare const shouldBypassHarnessCoordination: (inputText: string) => boolean;
2
+ //# sourceMappingURL=harness-request-router.d.ts.map
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "harness-engineering-agent",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Minimal OpenCode harness plugin package.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -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"}