harness-engineering-agent 0.3.11 → 0.3.13

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 (117) hide show
  1. package/README.md +8 -3
  2. package/dist/agent/harness-role-capability-directory-data.d.ts.map +1 -1
  3. package/dist/agent/harness-role-capability-directory-data.js +3 -3
  4. package/dist/agent/harness-role-capability-directory-data.js.map +1 -1
  5. package/dist/agent/harness-role-capability-directory.d.ts +1 -0
  6. package/dist/agent/harness-role-capability-directory.d.ts.map +1 -1
  7. package/dist/agent/harness-role-capability-directory.js +1 -0
  8. package/dist/agent/harness-role-capability-directory.js.map +1 -1
  9. package/dist/controller/agent-session-types.d.ts +17 -1
  10. package/dist/controller/agent-session-types.d.ts.map +1 -1
  11. package/dist/controller/agent-session-utils.d.ts +40 -3
  12. package/dist/controller/agent-session-utils.d.ts.map +1 -1
  13. package/dist/controller/agent-session-utils.js +67 -21
  14. package/dist/controller/agent-session-utils.js.map +1 -1
  15. package/dist/controller/agent-session.d.ts.map +1 -1
  16. package/dist/controller/agent-session.js +129 -10
  17. package/dist/controller/agent-session.js.map +1 -1
  18. package/dist/controller/context-budget.d.ts +71 -0
  19. package/dist/controller/context-budget.d.ts.map +1 -0
  20. package/dist/controller/context-budget.js +219 -0
  21. package/dist/controller/context-budget.js.map +1 -0
  22. package/dist/controller/context-builder.d.ts +27 -0
  23. package/dist/controller/context-builder.d.ts.map +1 -0
  24. package/dist/controller/context-builder.js +184 -0
  25. package/dist/controller/context-builder.js.map +1 -0
  26. package/dist/controller/context-validation.d.ts +46 -0
  27. package/dist/controller/context-validation.d.ts.map +1 -0
  28. package/dist/controller/context-validation.js +126 -0
  29. package/dist/controller/context-validation.js.map +1 -0
  30. package/dist/controller/direct-runner.d.ts +2 -0
  31. package/dist/controller/direct-runner.d.ts.map +1 -1
  32. package/dist/controller/direct-runner.js +20 -2
  33. package/dist/controller/direct-runner.js.map +1 -1
  34. package/dist/controller/index.d.ts +1 -0
  35. package/dist/controller/index.d.ts.map +1 -1
  36. package/dist/controller/index.js +1 -0
  37. package/dist/controller/index.js.map +1 -1
  38. package/dist/controller/run-acceptance.d.ts.map +1 -1
  39. package/dist/controller/run-acceptance.js +12 -0
  40. package/dist/controller/run-acceptance.js.map +1 -1
  41. package/dist/controller/run-controller.d.ts.map +1 -1
  42. package/dist/controller/run-controller.js +2 -0
  43. package/dist/controller/run-controller.js.map +1 -1
  44. package/dist/controller/streamlined-runner.d.ts +2 -0
  45. package/dist/controller/streamlined-runner.d.ts.map +1 -1
  46. package/dist/controller/streamlined-runner.js +31 -1
  47. package/dist/controller/streamlined-runner.js.map +1 -1
  48. package/dist/controller/task-agent-output.d.ts.map +1 -1
  49. package/dist/controller/task-agent-output.js +85 -0
  50. package/dist/controller/task-agent-output.js.map +1 -1
  51. package/dist/domain/clarification.d.ts +92 -0
  52. package/dist/domain/clarification.d.ts.map +1 -0
  53. package/dist/domain/clarification.js +80 -0
  54. package/dist/domain/clarification.js.map +1 -0
  55. package/dist/domain/context-snapshot.d.ts +140 -0
  56. package/dist/domain/context-snapshot.d.ts.map +1 -0
  57. package/dist/domain/context-snapshot.js +140 -0
  58. package/dist/domain/context-snapshot.js.map +1 -0
  59. package/dist/domain/index.d.ts +4 -0
  60. package/dist/domain/index.d.ts.map +1 -1
  61. package/dist/domain/index.js +2 -0
  62. package/dist/domain/index.js.map +1 -1
  63. package/dist/domain/report.d.ts +118 -0
  64. package/dist/domain/report.d.ts.map +1 -1
  65. package/dist/domain/run.d.ts +118 -0
  66. package/dist/domain/run.d.ts.map +1 -1
  67. package/dist/domain/run.js +2 -0
  68. package/dist/domain/run.js.map +1 -1
  69. package/dist/plugin/create-harness-plugin.d.ts.map +1 -1
  70. package/dist/plugin/create-harness-plugin.js +25 -13
  71. package/dist/plugin/create-harness-plugin.js.map +1 -1
  72. package/dist/plugin/harness-chat-hook.d.ts +9 -0
  73. package/dist/plugin/harness-chat-hook.d.ts.map +1 -1
  74. package/dist/plugin/harness-chat-hook.js +40 -35
  75. package/dist/plugin/harness-chat-hook.js.map +1 -1
  76. package/dist/plugin/harness-coordinator.d.ts +5 -0
  77. package/dist/plugin/harness-coordinator.d.ts.map +1 -1
  78. package/dist/plugin/harness-coordinator.js +95 -4
  79. package/dist/plugin/harness-coordinator.js.map +1 -1
  80. package/dist/plugin/harness-escalate-tool.d.ts +13 -0
  81. package/dist/plugin/harness-escalate-tool.d.ts.map +1 -0
  82. package/dist/plugin/harness-escalate-tool.js +37 -0
  83. package/dist/plugin/harness-escalate-tool.js.map +1 -0
  84. package/dist/plugin/harness-plugin-runtime.d.ts +2 -14
  85. package/dist/plugin/harness-plugin-runtime.d.ts.map +1 -1
  86. package/dist/plugin/harness-plugin-runtime.js +7 -1
  87. package/dist/plugin/harness-plugin-runtime.js.map +1 -1
  88. package/dist/session/contracts.d.ts +80 -8
  89. package/dist/session/contracts.d.ts.map +1 -1
  90. package/dist/session/fake-session-adapter.d.ts.map +1 -1
  91. package/dist/session/fake-session-adapter.js +14 -0
  92. package/dist/session/fake-session-adapter.js.map +1 -1
  93. package/dist/session/opencode-session-adapter.d.ts.map +1 -1
  94. package/dist/session/opencode-session-adapter.js +16 -0
  95. package/dist/session/opencode-session-adapter.js.map +1 -1
  96. package/dist/session/opencode-session-prompts.d.ts.map +1 -1
  97. package/dist/session/opencode-session-prompts.js +3 -0
  98. package/dist/session/opencode-session-prompts.js.map +1 -1
  99. package/dist/store/context-snapshot-store.d.ts +17 -0
  100. package/dist/store/context-snapshot-store.d.ts.map +1 -0
  101. package/dist/store/context-snapshot-store.js +96 -0
  102. package/dist/store/context-snapshot-store.js.map +1 -0
  103. package/dist/store/filesystem-run-store.d.ts +3 -0
  104. package/dist/store/filesystem-run-store.d.ts.map +1 -1
  105. package/dist/store/filesystem-run-store.js +13 -1
  106. package/dist/store/filesystem-run-store.js.map +1 -1
  107. package/dist/store/index.d.ts +2 -0
  108. package/dist/store/index.d.ts.map +1 -1
  109. package/dist/store/index.js +2 -0
  110. package/dist/store/index.js.map +1 -1
  111. package/dist/store/run-event.d.ts +118 -0
  112. package/dist/store/run-event.d.ts.map +1 -1
  113. package/dist/store/session-index.d.ts +51 -0
  114. package/dist/store/session-index.d.ts.map +1 -0
  115. package/dist/store/session-index.js +163 -0
  116. package/dist/store/session-index.js.map +1 -0
  117. package/package.json +1 -1
@@ -644,6 +644,65 @@ export declare const RunSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.Zo
644
644
  }, z.core.$strip>>>>;
645
645
  constraints: z.ZodReadonly<z.ZodArray<z.ZodString>>;
646
646
  }, z.core.$strip>>>;
647
+ contextSnapshot: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
648
+ schemaVersion: z.ZodLiteral<"1.0.0">;
649
+ contextId: z.ZodString;
650
+ version: z.ZodNumber;
651
+ runId: z.core.$ZodBranded<z.ZodString, "RunId">;
652
+ taskId: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "TaskId">>;
653
+ attempt: z.ZodDefault<z.ZodNumber>;
654
+ phase: z.ZodDefault<z.ZodString>;
655
+ goal: z.ZodString;
656
+ scope: z.ZodDefault<z.ZodString>;
657
+ facts: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
658
+ factId: z.ZodString;
659
+ kind: z.ZodEnum<{
660
+ requirement: "requirement";
661
+ constraint: "constraint";
662
+ scope: "scope";
663
+ evidence: "evidence";
664
+ unresolved_issue: "unresolved_issue";
665
+ governance: "governance";
666
+ workspace: "workspace";
667
+ }>;
668
+ label: z.ZodString;
669
+ summary: z.ZodString;
670
+ priority: z.ZodDefault<z.ZodNumber>;
671
+ sourceRef: z.ZodOptional<z.ZodString>;
672
+ sourceEventId: z.ZodOptional<z.ZodString>;
673
+ metadata: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
674
+ }, z.core.$strip>>>>>;
675
+ evidenceDigests: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
676
+ refId: z.core.$ZodBranded<z.ZodString, "EvidenceId">;
677
+ summaryDigest: z.ZodString;
678
+ sourceRole: z.ZodString;
679
+ sourceTaskId: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "TaskId">>;
680
+ createdAt: z.ZodString;
681
+ freshness: z.ZodEnum<{
682
+ fresh: "fresh";
683
+ stale: "stale";
684
+ expired: "expired";
685
+ }>;
686
+ }, z.core.$strip>>>>>;
687
+ worktree: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
688
+ executionRoot: z.ZodString;
689
+ branch: z.ZodOptional<z.ZodString>;
690
+ commit: z.ZodOptional<z.ZodString>;
691
+ dirty: z.ZodDefault<z.ZodBoolean>;
692
+ }, z.core.$strip>>>;
693
+ allowedPaths: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
694
+ acceptanceCriterionIds: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
695
+ unresolvedIssues: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
696
+ sourceEvents: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
697
+ eventId: z.ZodString;
698
+ eventType: z.ZodString;
699
+ timestamp: z.ZodString;
700
+ }, z.core.$strip>>>>>;
701
+ parentContextId: z.ZodOptional<z.ZodString>;
702
+ parentVersion: z.ZodOptional<z.ZodNumber>;
703
+ createdAt: z.ZodString;
704
+ contentDigest: z.ZodString;
705
+ }, z.core.$strip>>>;
647
706
  planReview: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
648
707
  schemaVersion: z.ZodLiteral<"1.0.0">;
649
708
  reviewId: z.ZodString;
@@ -1458,6 +1517,65 @@ export declare const RunSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.Zo
1458
1517
  }, z.core.$strip>>>>;
1459
1518
  constraints: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1460
1519
  }, z.core.$strip>>>;
1520
+ contextSnapshot: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
1521
+ schemaVersion: z.ZodLiteral<"1.0.0">;
1522
+ contextId: z.ZodString;
1523
+ version: z.ZodNumber;
1524
+ runId: z.core.$ZodBranded<z.ZodString, "RunId">;
1525
+ taskId: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "TaskId">>;
1526
+ attempt: z.ZodDefault<z.ZodNumber>;
1527
+ phase: z.ZodDefault<z.ZodString>;
1528
+ goal: z.ZodString;
1529
+ scope: z.ZodDefault<z.ZodString>;
1530
+ facts: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
1531
+ factId: z.ZodString;
1532
+ kind: z.ZodEnum<{
1533
+ requirement: "requirement";
1534
+ constraint: "constraint";
1535
+ scope: "scope";
1536
+ evidence: "evidence";
1537
+ unresolved_issue: "unresolved_issue";
1538
+ governance: "governance";
1539
+ workspace: "workspace";
1540
+ }>;
1541
+ label: z.ZodString;
1542
+ summary: z.ZodString;
1543
+ priority: z.ZodDefault<z.ZodNumber>;
1544
+ sourceRef: z.ZodOptional<z.ZodString>;
1545
+ sourceEventId: z.ZodOptional<z.ZodString>;
1546
+ metadata: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1547
+ }, z.core.$strip>>>>>;
1548
+ evidenceDigests: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
1549
+ refId: z.core.$ZodBranded<z.ZodString, "EvidenceId">;
1550
+ summaryDigest: z.ZodString;
1551
+ sourceRole: z.ZodString;
1552
+ sourceTaskId: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "TaskId">>;
1553
+ createdAt: z.ZodString;
1554
+ freshness: z.ZodEnum<{
1555
+ fresh: "fresh";
1556
+ stale: "stale";
1557
+ expired: "expired";
1558
+ }>;
1559
+ }, z.core.$strip>>>>>;
1560
+ worktree: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
1561
+ executionRoot: z.ZodString;
1562
+ branch: z.ZodOptional<z.ZodString>;
1563
+ commit: z.ZodOptional<z.ZodString>;
1564
+ dirty: z.ZodDefault<z.ZodBoolean>;
1565
+ }, z.core.$strip>>>;
1566
+ allowedPaths: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1567
+ acceptanceCriterionIds: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1568
+ unresolvedIssues: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1569
+ sourceEvents: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
1570
+ eventId: z.ZodString;
1571
+ eventType: z.ZodString;
1572
+ timestamp: z.ZodString;
1573
+ }, z.core.$strip>>>>>;
1574
+ parentContextId: z.ZodOptional<z.ZodString>;
1575
+ parentVersion: z.ZodOptional<z.ZodNumber>;
1576
+ createdAt: z.ZodString;
1577
+ contentDigest: z.ZodString;
1578
+ }, z.core.$strip>>>;
1461
1579
  planReview: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
1462
1580
  schemaVersion: z.ZodLiteral<"1.0.0">;
1463
1581
  reviewId: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/domain/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/domain/run.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { normalizeAcceptanceCriteria } from "./acceptance-criteria.js";
4
4
  import { AgentResultSchema } from "./agent-result.js";
5
5
  import { ComplexityAssessmentSchema, ComplexityTierSchema, ExecutionRouteSchema, ReassessmentEventSchema, } from "./complexity.js";
6
6
  import { ContextPackageSchema } from "./context-package.js";
7
+ import { ContextSnapshotSchema } from "./context-snapshot.js";
7
8
  import { EvidenceSchema } from "./evidence.js";
8
9
  import { FailureSchema } from "./failure.js";
9
10
  import { PlanReviewSchema } from "./plan-artifacts.js";
@@ -210,6 +211,7 @@ const RunBaseSchema = {
210
211
  governance: RunGovernanceSchema,
211
212
  workspace: RunWorkspaceSchema.default(createDefaultRunWorkspace()),
212
213
  contextPackage: ContextPackageSchema.optional(),
214
+ contextSnapshot: ContextSnapshotSchema.optional(),
213
215
  planReview: PlanReviewSchema.optional(),
214
216
  runAcceptance: RunAcceptanceSchema.optional(),
215
217
  reflectionSummary: ReflectionSummarySchema.optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/domain/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/domain/run.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-harness-plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/create-harness-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAMjD,OAAO,EAEL,KAAK,yBAAyB,EAE/B,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AAC3E,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAE5E,eAAO,MAAM,mBAAmB,GAAI,eAAc,yBAA8B,KAAG,MA4ElF,CAAA;AAED,eAAO,MAAM,aAAa,QAAwB,CAAA"}
1
+ {"version":3,"file":"create-harness-plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/create-harness-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAOjD,OAAO,EAEL,KAAK,yBAAyB,EAE/B,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AAC3E,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAE5E,eAAO,MAAM,mBAAmB,GAAI,eAAc,yBAA8B,KAAG,MA8FlF,CAAA;AAED,eAAO,MAAM,aAAa,QAAwB,CAAA"}
@@ -2,6 +2,7 @@ import { authorizeSessionToolExecution } from "../controller/index.js";
2
2
  import { createPluginResearchTools } from "../tools/harness-research-tools.js";
3
3
  import { applyHarnessAgentConfig } from "./harness-agent-config.js";
4
4
  import { handleHarnessChatMessage } from "./harness-chat-hook.js";
5
+ import { createHarnessEscalateTool, HARNESS_ESCALATE_TOOL_NAME } from "./harness-escalate-tool.js";
5
6
  import { createRuntime, resolveHarnessResearchRole, } from "./harness-plugin-runtime.js";
6
7
  export { resolveHarnessProjectRoot } from "./harness-plugin-identifiers.js";
7
8
  export const createHarnessPlugin = (dependencies = {}) => {
@@ -17,6 +18,17 @@ export const createHarnessPlugin = (dependencies = {}) => {
17
18
  return {};
18
19
  }
19
20
  const { config, coordinator, projectRoot, researchClients, sessionGuards, sessionAdapter } = runtime;
21
+ const deliverInternalResult = async ({ sessionID, text, }) => {
22
+ await input.client.session.promptAsync({
23
+ path: { id: sessionID },
24
+ query: { directory: projectRoot },
25
+ body: {
26
+ agent: "harness",
27
+ parts: [{ type: "text", text, synthetic: true, metadata: { source: "harness" } }],
28
+ },
29
+ throwOnError: true,
30
+ });
31
+ };
20
32
  return {
21
33
  dispose: async () => {
22
34
  await researchClients.lsp.close();
@@ -24,11 +36,18 @@ export const createHarnessPlugin = (dependencies = {}) => {
24
36
  config: async (mutableConfig) => {
25
37
  applyHarnessAgentConfig(mutableConfig, config);
26
38
  },
27
- tool: createPluginResearchTools({
28
- clients: researchClients,
29
- resolveRole: resolveHarnessResearchRole,
30
- workspaceRoot: projectRoot,
31
- }),
39
+ tool: {
40
+ ...createPluginResearchTools({
41
+ clients: researchClients,
42
+ resolveRole: resolveHarnessResearchRole,
43
+ workspaceRoot: projectRoot,
44
+ }),
45
+ [HARNESS_ESCALATE_TOOL_NAME]: createHarnessEscalateTool({
46
+ coordinator,
47
+ guards: sessionGuards,
48
+ deliverInternalResult,
49
+ }),
50
+ },
32
51
  "tool.execute.before": async (toolInput, output) => {
33
52
  const snapshot = sessionAdapterSnapshot(sessionAdapter, toolInput.sessionID);
34
53
  if (snapshot === undefined) {
@@ -59,14 +78,7 @@ export const createHarnessPlugin = (dependencies = {}) => {
59
78
  body: {
60
79
  agent: "harness",
61
80
  ...(replyModel === undefined ? {} : { model: replyModel }),
62
- parts: [
63
- {
64
- type: "text",
65
- text,
66
- synthetic: true,
67
- metadata: { source: "harness" },
68
- },
69
- ],
81
+ parts: [{ type: "text", text, synthetic: true, metadata: { source: "harness" } }],
70
82
  },
71
83
  throwOnError: true,
72
84
  });
@@ -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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"}
@@ -11,6 +11,15 @@ type InternalResultDelivery = (input: {
11
11
  readonly sessionID: string;
12
12
  readonly text: string;
13
13
  }) => Promise<void>;
14
+ export type HarnessAdmissionResult = "accepted" | "duplicate" | "busy";
15
+ export declare const admitHarnessRequest: (input: {
16
+ readonly coordinator: HarnessCoordinator;
17
+ readonly guards: SessionGuards;
18
+ readonly deliverInternalResult: InternalResultDelivery;
19
+ readonly sessionID: string;
20
+ readonly messageID: string;
21
+ readonly inputText: string;
22
+ }) => HarnessAdmissionResult;
14
23
  export declare const handleHarnessChatMessage: (input: {
15
24
  readonly config: HarnessConfig;
16
25
  readonly coordinator: HarnessCoordinator;
@@ -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;AAavD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAIlE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACvD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACzC,CAAA;AAED,KAAK,sBAAsB,GAAG,CAAC,KAAK,EAAE;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnB,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,qBAAqB,EAAE,sBAAsB,CAAA;IACtD,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;YAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SACxB,CAAA;QACD,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;KACvB,CAAA;CACF,KAAG,OAAO,CAAC,IAAI,CAsEf,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;AAavD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAIlE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACvD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACzC,CAAA;AAED,KAAK,sBAAsB,GAAG,CAAC,KAAK,EAAE;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnB,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAA;AAEtE,eAAO,MAAM,mBAAmB,GAAI,OAAO;IACzC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,qBAAqB,EAAE,sBAAsB,CAAA;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,KAAG,sBAwCH,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,qBAAqB,EAAE,sBAAsB,CAAA;IACtD,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;YAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SACxB,CAAA;QACD,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;KACvB,CAAA;CACF,KAAG,OAAO,CAAC,IAAI,CA8Bf,CAAA"}
@@ -3,6 +3,38 @@ import { appendSyntheticTextPart, extractChatText, hasHarnessInternalResultPart,
3
3
  import { createBackgroundAcknowledgement, createInternalCompletionMessage, createInternalFailureMessage, createPassthroughInstruction, } from "./harness-chat-protocol.js";
4
4
  import { classifyHarnessRequest } from "./harness-request-router.js";
5
5
  import { sanitizeHarnessUserFacingError } from "./harness-user-facing-errors.js";
6
+ export const admitHarnessRequest = (input) => {
7
+ const admissionKey = createAdmissionKey(input.sessionID, input.messageID);
8
+ if (input.guards.completedAdmissionKeys.has(admissionKey))
9
+ return "duplicate";
10
+ if (input.guards.inFlightAdmissions.has(admissionKey))
11
+ return "duplicate";
12
+ if (input.guards.inFlightRuns.has(input.sessionID))
13
+ return "busy";
14
+ const coordinationTask = input.coordinator.handle({
15
+ sessionID: input.sessionID,
16
+ inputText: input.inputText,
17
+ });
18
+ const backgroundTask = coordinationTask.then(async (response) => {
19
+ await input.deliverInternalResult({
20
+ sessionID: input.sessionID,
21
+ text: createInternalCompletionMessage(response),
22
+ });
23
+ input.guards.completedAdmissionKeys.add(admissionKey);
24
+ }, async (error) => {
25
+ await input.deliverInternalResult({
26
+ sessionID: input.sessionID,
27
+ text: createInternalFailureMessage(sanitizeHarnessUserFacingError(error)),
28
+ });
29
+ });
30
+ void backgroundTask.catch(() => undefined);
31
+ const admissionTask = coordinationTask.then(() => undefined, () => undefined);
32
+ input.guards.inFlightRuns.set(input.sessionID, admissionTask);
33
+ void admissionTask.finally(() => input.guards.inFlightRuns.delete(input.sessionID));
34
+ input.guards.inFlightAdmissions.set(admissionKey, admissionTask.then(() => undefined));
35
+ void admissionTask.finally(() => input.guards.inFlightAdmissions.delete(admissionKey));
36
+ return "accepted";
37
+ };
6
38
  export const handleHarnessChatMessage = async (input) => {
7
39
  const agent = input.messageInput.agent ?? input.output.message.agent;
8
40
  if (!input.config.enabled || agent !== HARNESS_PRIMARY_AGENT_NAME) {
@@ -22,41 +54,14 @@ export const handleHarnessChatMessage = async (input) => {
22
54
  }
23
55
  appendProtocolPart(input.output, createBackgroundAcknowledgement());
24
56
  const sessionID = input.messageInput.sessionID;
25
- const admissionKey = createAdmissionKey(sessionID, input.output.message.id);
26
- if (input.guards.completedAdmissionKeys.has(admissionKey)) {
27
- return;
28
- }
29
- const existing = input.guards.inFlightAdmissions.get(admissionKey);
30
- if (existing !== undefined) {
31
- return;
32
- }
33
- const admissionTask = (async () => {
34
- const existingRun = input.guards.inFlightRuns.get(sessionID);
35
- if (existingRun !== undefined) {
36
- return;
37
- }
38
- const backgroundTask = input.coordinator
39
- .handle({
40
- sessionID,
41
- inputText,
42
- })
43
- .then(async (response) => {
44
- await input.deliverInternalResult({
45
- sessionID,
46
- text: createInternalCompletionMessage(response),
47
- });
48
- input.guards.completedAdmissionKeys.add(admissionKey);
49
- }, async (error) => {
50
- await input.deliverInternalResult({
51
- sessionID,
52
- text: createInternalFailureMessage(sanitizeHarnessUserFacingError(error)),
53
- });
54
- });
55
- input.guards.inFlightRuns.set(sessionID, backgroundTask.then(() => undefined));
56
- void backgroundTask.finally(() => input.guards.inFlightRuns.delete(sessionID));
57
- })();
58
- input.guards.inFlightAdmissions.set(admissionKey, admissionTask.then(() => undefined));
59
- void admissionTask.finally(() => input.guards.inFlightAdmissions.delete(admissionKey));
57
+ admitHarnessRequest({
58
+ coordinator: input.coordinator,
59
+ guards: input.guards,
60
+ deliverInternalResult: input.deliverInternalResult,
61
+ sessionID,
62
+ messageID: input.output.message.id,
63
+ inputText,
64
+ });
60
65
  };
61
66
  const appendProtocolPart = (output, text) => {
62
67
  appendSyntheticTextPart({
@@ -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,EAC5B,4BAA4B,GAC7B,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AAgBhF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAOnC,EAA0B,EAAE;IAC3B,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACzE,IAAI,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,WAAW,CAAA;IAC7E,IAAI,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,WAAW,CAAA;IACzE,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,MAAM,CAAA;IAEjE,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;QAChD,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAA;IACF,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAC1C,KAAK,EAAE,QAAQ,EAAE,EAAE;QACjB,MAAM,KAAK,CAAC,qBAAqB,CAAC;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,+BAA+B,CAAC,QAAQ,CAAC;SAChD,CAAC,CAAA;QACF,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACvD,CAAC,EACD,KAAK,EAAE,KAAc,EAAE,EAAE;QACvB,MAAM,KAAK,CAAC,qBAAqB,CAAC;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,4BAA4B,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;SAC1E,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;IACD,KAAK,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAC1C,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CACzC,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAA;IAED,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAC7D,KAAK,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;IAEnF,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CACjC,YAAY,EACZ,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CACpC,CAAA;IACD,KAAK,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IACtF,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,KAiB9C,EAAiB,EAAE;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAA;IACpE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,KAAK,0BAA0B,EAAE,CAAC;QAClE,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,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAA;IAC/D,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,CAAC;QAC5C,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAA;QAChE,OAAM;IACR,CAAC;IAED,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAA;IAEnE,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAA;IAC9C,mBAAmB,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;QAClD,SAAS;QACT,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QAClC,SAAS;KACV,CAAC,CAAA;AACJ,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,kBAAkB,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAU,EAAE,CAC1E,GAAG,SAAS,IAAI,SAAS,EAAE,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import type { HarnessConfig } from "../config/index.js";
2
2
  import type { ControllerIdSource, RunController } from "../controller/index.js";
3
+ import { type ClarificationState } from "../domain/clarification.js";
3
4
  import type { Report, Run } from "../domain/index.js";
4
5
  import { type SessionAdapter } from "../session/index.js";
5
6
  type HarnessCoordinatorRequest = {
@@ -28,6 +29,10 @@ export type CreateHarnessCoordinatorOptions = {
28
29
  readonly sessionID: string;
29
30
  readonly runId: Run["runId"];
30
31
  }) => void;
32
+ /** Read the current clarification state for a run */
33
+ readonly loadClarificationState?: (runId: Run["runId"]) => Promise<ClarificationState | undefined>;
34
+ /** Persist a clarification state for a run */
35
+ readonly saveClarificationState?: (state: ClarificationState) => Promise<void>;
31
36
  };
32
37
  export type HarnessCoordinator = {
33
38
  readonly handle: (request: HarnessCoordinatorRequest) => Promise<HarnessCoordinatorResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"harness-coordinator.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-coordinator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE/E,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAU/E,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,0BAA0B,GAClC;IACE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC3F,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;CAClB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAEL,MAAM,MAAM,+BAA+B,GAAG;IAC5C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAA;IAClC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;KAC7B,KAAK,IAAI,CAAA;CACX,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAA;CAC7F,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,SAAS,+BAA+B,KACvC,kBAyBF,CAAA"}
1
+ {"version":3,"file":"harness-coordinator.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-coordinator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE/E,OAAO,EAEL,KAAK,kBAAkB,EAKxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAU/E,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,0BAA0B,GAClC;IACE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC3F,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;CAClB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAEL,MAAM,MAAM,+BAA+B,GAAG;IAC5C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAA;IAClC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;KAC7B,KAAK,IAAI,CAAA;IACV,qDAAqD;IACrD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAA;IAClG,8CAA8C;IAC9C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/E,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAA;CAC7F,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,SAAS,+BAA+B,KACvC,kBA8DF,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { ZodError } from "zod";
2
2
  import { parseAgentJson, readAgentOutput } from "../controller/agent-output.js";
3
3
  import { AgentOutputParseError, AgentRunFailedError } from "../controller/index.js";
4
+ import { ClarificationStateSchema, canAnswerQuestion, createClarificationQuestion, isQuestionTerminal, } from "../domain/clarification.js";
4
5
  import { HARNESS_SESSION_ROLE } from "../session/index.js";
5
6
  import { runWorkspacePreflight } from "../workspace/env-preflight.js";
6
7
  import { resolveTargetRepository, TargetRepositoryError, } from "../workspace/resolve-target-repository.js";
@@ -8,6 +9,35 @@ import { createHarnessIntakePrompt } from "./harness-intake-prompt.js";
8
9
  import { HarnessIntentSchema } from "./harness-intent.js";
9
10
  import { toRequirementInput } from "./harness-requirement.js";
10
11
  export const createHarnessCoordinator = (options) => {
12
+ /** In-memory clarification state cache */
13
+ const clarificationStates = new Map();
14
+ const getClarificationState = async (runId) => {
15
+ const cached = clarificationStates.get(runId);
16
+ if (cached !== undefined)
17
+ return cached;
18
+ const persisted = await options.loadClarificationState?.(runId);
19
+ if (persisted !== undefined) {
20
+ clarificationStates.set(runId, persisted);
21
+ return persisted;
22
+ }
23
+ const now = new Date().toISOString();
24
+ const fresh = ClarificationStateSchema.parse({
25
+ schemaVersion: "1.0.0",
26
+ stateId: options.ids.createEventId(`clarification-state-${runId}`),
27
+ runId,
28
+ questions: {},
29
+ roundCount: 0,
30
+ concurrencyGuard: false,
31
+ createdAt: now,
32
+ updatedAt: now,
33
+ });
34
+ clarificationStates.set(runId, fresh);
35
+ return fresh;
36
+ };
37
+ const persistClarificationState = async (state) => {
38
+ clarificationStates.set(state.runId, state);
39
+ await options.saveClarificationState?.(state);
40
+ };
11
41
  return {
12
42
  async handle(request) {
13
43
  if (request.inputText.length === 0) {
@@ -17,7 +47,8 @@ export const createHarnessCoordinator = (options) => {
17
47
  const response = await executeIntent(intent, options.controller, {
18
48
  projectRoot: options.projectRoot,
19
49
  config: options.config,
20
- });
50
+ ids: options.ids,
51
+ }, { getClarificationState, persistClarificationState });
21
52
  if (response.kind === "run" &&
22
53
  response.operation === "start" &&
23
54
  options.scheduleAdvance !== undefined) {
@@ -60,7 +91,7 @@ const parseIntentWithRetries = async (options, request) => {
60
91
  }
61
92
  return createClarificationIntent("我暂时无法稳定理解这条请求。请用自然语言补充要处理的业务目标、目标仓库或需要确认的业务参数。");
62
93
  };
63
- const executeIntent = async (intent, controller, options) => {
94
+ const executeIntent = async (intent, controller, options, clarificationStore) => {
64
95
  switch (intent.kind) {
65
96
  case "start": {
66
97
  const targetRepository = intent.requirement.targetRepository;
@@ -106,8 +137,48 @@ const executeIntent = async (intent, controller, options) => {
106
137
  return { kind: "run", operation: "status", run: await controller.status(intent.runId) };
107
138
  case "pause":
108
139
  return { kind: "run", operation: "pause", run: await controller.pause(intent) };
109
- case "answer":
140
+ case "answer": {
141
+ // Validate and process answer through clarification state
142
+ const state = await clarificationStore.getClarificationState(intent.runId);
143
+ const question = state.questions[intent.questionId];
144
+ if (question === undefined) {
145
+ return createClarificationResponse(`问题 ${intent.questionId} 不存在。请确认 questionId 是否正确。`);
146
+ }
147
+ if (isQuestionTerminal(question)) {
148
+ return createClarificationResponse(`问题 ${intent.questionId} 已处于 ${question.status} 状态,无法再次回答。`);
149
+ }
150
+ if (!canAnswerQuestion(question)) {
151
+ return createClarificationResponse(`问题 ${intent.questionId} 当前状态为 ${question.status},不接受新回答。`);
152
+ }
153
+ // Record the answer in the clarification state
154
+ const now = new Date().toISOString();
155
+ const answerId = options.ids.createEventId(`answer-${intent.questionId}-${now}`);
156
+ const updatedQuestion = {
157
+ ...question,
158
+ status: "answered",
159
+ answers: [
160
+ ...question.answers,
161
+ {
162
+ answerId,
163
+ questionId: intent.questionId,
164
+ answer: intent.answer,
165
+ actorId: intent.actor.id,
166
+ timestamp: now,
167
+ accepted: true,
168
+ },
169
+ ],
170
+ updatedAt: now,
171
+ };
172
+ const updatedState = {
173
+ ...state,
174
+ questions: { ...state.questions, [intent.questionId]: updatedQuestion },
175
+ roundCount: state.roundCount + 1,
176
+ updatedAt: now,
177
+ };
178
+ await clarificationStore.persistClarificationState(updatedState);
179
+ // Forward the answer to the controller
110
180
  return { kind: "run", operation: "answer", run: await controller.answer(intent) };
181
+ }
111
182
  case "resume":
112
183
  return { kind: "run", operation: "resume", run: await controller.resume(intent.runId) };
113
184
  case "cancel":
@@ -116,8 +187,28 @@ const executeIntent = async (intent, controller, options) => {
116
187
  return { kind: "run", operation: "waive", run: await controller.waive(intent) };
117
188
  case "report":
118
189
  return { kind: "report", report: await controller.report(intent.runId) };
119
- case "clarification":
190
+ case "clarification": {
191
+ // Record clarification question in state if it has a runId
192
+ const runId = intent.runId;
193
+ if (runId !== undefined) {
194
+ const state = await clarificationStore.getClarificationState(runId);
195
+ const questionId = intent.questionId ??
196
+ options.ids.createEventId(`question-${runId}-${Date.now()}`);
197
+ const question = createClarificationQuestion({
198
+ runId,
199
+ questionId,
200
+ question: intent.message,
201
+ });
202
+ const updatedState = {
203
+ ...state,
204
+ questions: { ...state.questions, [questionId]: question },
205
+ roundCount: state.roundCount + 1,
206
+ updatedAt: new Date().toISOString(),
207
+ };
208
+ await clarificationStore.persistClarificationState(updatedState);
209
+ }
120
210
  return createClarificationResponse(intent.message);
211
+ }
121
212
  default:
122
213
  return assertNever(intent);
123
214
  }