harness-engineering-agent 0.2.0 → 0.2.2

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 (131) hide show
  1. package/README.md +83 -13
  2. package/dist/agent/harness-role-capability-directory-data.d.ts.map +1 -1
  3. package/dist/agent/harness-role-capability-directory-data.js +42 -0
  4. package/dist/agent/harness-role-capability-directory-data.js.map +1 -1
  5. package/dist/config/config-defaults.d.ts +15 -0
  6. package/dist/config/config-defaults.d.ts.map +1 -1
  7. package/dist/config/config-defaults.js +15 -0
  8. package/dist/config/config-defaults.js.map +1 -1
  9. package/dist/config/config-merge.d.ts.map +1 -1
  10. package/dist/config/config-merge.js +25 -0
  11. package/dist/config/config-merge.js.map +1 -1
  12. package/dist/config/config-schema.d.ts +60 -0
  13. package/dist/config/config-schema.d.ts.map +1 -1
  14. package/dist/config/config-schema.js +47 -0
  15. package/dist/config/config-schema.js.map +1 -1
  16. package/dist/config/config-types.d.ts +4 -0
  17. package/dist/config/config-types.d.ts.map +1 -1
  18. package/dist/config/harness-config.d.ts +1 -1
  19. package/dist/config/harness-config.d.ts.map +1 -1
  20. package/dist/config/harness-config.js.map +1 -1
  21. package/dist/config/index.d.ts +1 -1
  22. package/dist/config/index.d.ts.map +1 -1
  23. package/dist/config/index.js.map +1 -1
  24. package/dist/controller/direct-runner.d.ts +13 -0
  25. package/dist/controller/direct-runner.d.ts.map +1 -0
  26. package/dist/controller/direct-runner.js +53 -0
  27. package/dist/controller/direct-runner.js.map +1 -0
  28. package/dist/controller/graph-validator.d.ts +2 -2
  29. package/dist/controller/graph-validator.d.ts.map +1 -1
  30. package/dist/controller/graph-validator.js +23 -1
  31. package/dist/controller/graph-validator.js.map +1 -1
  32. package/dist/controller/model-profile-resolver.d.ts +12 -0
  33. package/dist/controller/model-profile-resolver.d.ts.map +1 -0
  34. package/dist/controller/model-profile-resolver.js +34 -0
  35. package/dist/controller/model-profile-resolver.js.map +1 -0
  36. package/dist/controller/reassessor.d.ts +13 -0
  37. package/dist/controller/reassessor.d.ts.map +1 -0
  38. package/dist/controller/reassessor.js +73 -0
  39. package/dist/controller/reassessor.js.map +1 -0
  40. package/dist/controller/report-factory.d.ts.map +1 -1
  41. package/dist/controller/report-factory.js +12 -0
  42. package/dist/controller/report-factory.js.map +1 -1
  43. package/dist/controller/role-prompts.d.ts +1 -1
  44. package/dist/controller/role-prompts.d.ts.map +1 -1
  45. package/dist/controller/route-resolver.d.ts +7 -0
  46. package/dist/controller/route-resolver.d.ts.map +1 -0
  47. package/dist/controller/route-resolver.js +25 -0
  48. package/dist/controller/route-resolver.js.map +1 -0
  49. package/dist/controller/run-controller.d.ts.map +1 -1
  50. package/dist/controller/run-controller.js +166 -31
  51. package/dist/controller/run-controller.js.map +1 -1
  52. package/dist/controller/run-state.d.ts +3 -0
  53. package/dist/controller/run-state.d.ts.map +1 -1
  54. package/dist/controller/run-state.js +7 -0
  55. package/dist/controller/run-state.js.map +1 -1
  56. package/dist/controller/streamlined-runner.d.ts +16 -0
  57. package/dist/controller/streamlined-runner.d.ts.map +1 -0
  58. package/dist/controller/streamlined-runner.js +130 -0
  59. package/dist/controller/streamlined-runner.js.map +1 -0
  60. package/dist/controller/task-agent-schemas.d.ts +72 -0
  61. package/dist/controller/task-agent-schemas.d.ts.map +1 -1
  62. package/dist/controller/task-executor.d.ts.map +1 -1
  63. package/dist/controller/task-executor.js +148 -13
  64. package/dist/controller/task-executor.js.map +1 -1
  65. package/dist/domain/complexity.d.ts +62 -0
  66. package/dist/domain/complexity.d.ts.map +1 -0
  67. package/dist/domain/complexity.js +28 -0
  68. package/dist/domain/complexity.js.map +1 -0
  69. package/dist/domain/index.d.ts +5 -3
  70. package/dist/domain/index.d.ts.map +1 -1
  71. package/dist/domain/index.js +2 -1
  72. package/dist/domain/index.js.map +1 -1
  73. package/dist/domain/plan-artifacts.d.ts +36 -0
  74. package/dist/domain/plan-artifacts.d.ts.map +1 -1
  75. package/dist/domain/report.d.ts +239 -0
  76. package/dist/domain/report.d.ts.map +1 -1
  77. package/dist/domain/requirement.d.ts +66 -0
  78. package/dist/domain/requirement.d.ts.map +1 -1
  79. package/dist/domain/requirement.js +5 -0
  80. package/dist/domain/requirement.js.map +1 -1
  81. package/dist/domain/run.d.ts +254 -0
  82. package/dist/domain/run.d.ts.map +1 -1
  83. package/dist/domain/run.js +32 -0
  84. package/dist/domain/run.js.map +1 -1
  85. package/dist/domain/shared.d.ts +2 -1
  86. package/dist/domain/shared.d.ts.map +1 -1
  87. package/dist/domain/shared.js +1 -0
  88. package/dist/domain/shared.js.map +1 -1
  89. package/dist/domain/task.d.ts +33 -0
  90. package/dist/domain/task.d.ts.map +1 -1
  91. package/dist/domain/task.js +10 -0
  92. package/dist/domain/task.js.map +1 -1
  93. package/dist/plugin/harness-chat-hook.d.ts.map +1 -1
  94. package/dist/plugin/harness-chat-hook.js +18 -12
  95. package/dist/plugin/harness-chat-hook.js.map +1 -1
  96. package/dist/plugin/harness-chat-protocol.d.ts.map +1 -1
  97. package/dist/plugin/harness-chat-protocol.js +58 -0
  98. package/dist/plugin/harness-chat-protocol.js.map +1 -1
  99. package/dist/plugin/harness-coordinator.d.ts.map +1 -1
  100. package/dist/plugin/harness-coordinator.js +70 -2
  101. package/dist/plugin/harness-coordinator.js.map +1 -1
  102. package/dist/plugin/harness-intent.d.ts +66 -0
  103. package/dist/plugin/harness-intent.d.ts.map +1 -1
  104. package/dist/plugin/harness-intent.js +3 -1
  105. package/dist/plugin/harness-intent.js.map +1 -1
  106. package/dist/plugin/harness-requirement.d.ts.map +1 -1
  107. package/dist/plugin/harness-requirement.js +10 -0
  108. package/dist/plugin/harness-requirement.js.map +1 -1
  109. package/dist/store/run-event.d.ts +239 -0
  110. package/dist/store/run-event.d.ts.map +1 -1
  111. package/dist/workspace/discover-git-repos.d.ts +6 -0
  112. package/dist/workspace/discover-git-repos.d.ts.map +1 -0
  113. package/dist/workspace/discover-git-repos.js +61 -0
  114. package/dist/workspace/discover-git-repos.js.map +1 -0
  115. package/dist/workspace/env-preflight.d.ts +16 -0
  116. package/dist/workspace/env-preflight.d.ts.map +1 -0
  117. package/dist/workspace/env-preflight.js +86 -0
  118. package/dist/workspace/env-preflight.js.map +1 -0
  119. package/dist/workspace/git-workspace-adapter.d.ts +2 -1
  120. package/dist/workspace/git-workspace-adapter.d.ts.map +1 -1
  121. package/dist/workspace/git-workspace-adapter.js +47 -13
  122. package/dist/workspace/git-workspace-adapter.js.map +1 -1
  123. package/dist/workspace/index.d.ts +6 -0
  124. package/dist/workspace/index.d.ts.map +1 -1
  125. package/dist/workspace/index.js +3 -0
  126. package/dist/workspace/index.js.map +1 -1
  127. package/dist/workspace/resolve-target-repository.d.ts +12 -0
  128. package/dist/workspace/resolve-target-repository.d.ts.map +1 -0
  129. package/dist/workspace/resolve-target-repository.js +78 -0
  130. package/dist/workspace/resolve-target-repository.js.map +1 -0
  131. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { WorkspaceRelativePathSchema } from "../path/workspace-path.js";
3
+ import { ComplexityTierSchema } from "./complexity.js";
3
4
  import { AcceptanceCriterionIdSchema, AgentRoleSchema, EvidenceIdSchema, ExecutionCategorySchema, GraphIdSchema, RequirementIdSchema, RunIdSchema, SchemaVersionSchema, TaskIdSchema, TaskStatusSchema, } from "./shared.js";
4
5
  const VerificationScopeSchema = z.enum(["task", "project", "integration"]);
5
6
  const SideEffectLevelSchema = z.enum(["read_only", "workspace_write", "external_side_effect"]);
@@ -45,6 +46,12 @@ export const RetryBudgetSchema = z
45
46
  maxRepairAttempts: z.number().int().nonnegative(),
46
47
  })
47
48
  .readonly();
49
+ export const ModelProfileSchema = z
50
+ .object({
51
+ provider: z.string().trim().min(1),
52
+ model: z.string().trim().min(1),
53
+ })
54
+ .readonly();
48
55
  export const RepairVerificationPlanSchema = z
49
56
  .object({
50
57
  minimalFailureSet: z.array(VerificationCommandSchema).min(1).readonly(),
@@ -86,6 +93,9 @@ export const TaskSchema = z
86
93
  evidenceRefs: z.array(EvidenceIdSchema).readonly(),
87
94
  repairEnabled: z.boolean().default(false),
88
95
  assignedAgentRole: AgentRoleSchema,
96
+ complexityTier: ComplexityTierSchema.optional(),
97
+ tierOverriddenFrom: ComplexityTierSchema.optional(),
98
+ modelProfile: ModelProfileSchema.optional(),
89
99
  })
90
100
  .readonly();
91
101
  export const TaskDependencyEdgeSchema = z
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/domain/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/domain/task.ts"],"names":[],"mappings":"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"}
@@ -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;AAYvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAGlE,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,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,CAoCf,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,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,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,CAoDf,CAAA"}
@@ -17,26 +17,32 @@ export const handleHarnessChatMessage = async (input) => {
17
17
  if (shouldBypassHarnessCoordination(inputText)) {
18
18
  return;
19
19
  }
20
- try {
21
- const response = await input.coordinator.handle({
22
- sessionID: input.messageInput.sessionID,
23
- inputText,
24
- });
25
- appendProtocolPart(input.output, createBackgroundAcknowledgement(response));
20
+ appendProtocolPart(input.output, createBackgroundAcknowledgement());
21
+ const sessionID = input.messageInput.sessionID;
22
+ const existing = input.guards.inFlightRuns.get(sessionID);
23
+ if (existing !== undefined) {
24
+ return;
25
+ }
26
+ const backgroundTask = input.coordinator
27
+ .handle({
28
+ sessionID,
29
+ inputText,
30
+ })
31
+ .then(async (response) => {
26
32
  if (!(response.kind === "run" && response.operation === "start")) {
27
33
  await input.deliverInternalResult({
28
- sessionID: input.messageInput.sessionID,
34
+ sessionID,
29
35
  text: createInternalCompletionMessage(response),
30
36
  });
31
37
  }
32
- }
33
- catch (error) {
34
- appendProtocolPart(input.output, createBackgroundAcknowledgement());
38
+ }, async (error) => {
35
39
  await input.deliverInternalResult({
36
- sessionID: input.messageInput.sessionID,
40
+ sessionID,
37
41
  text: createInternalFailureMessage(createHookErrorMessage(error)),
38
42
  });
39
- }
43
+ });
44
+ input.guards.inFlightRuns.set(sessionID, backgroundTask.then(() => undefined));
45
+ void backgroundTask.finally(() => input.guards.inFlightRuns.delete(sessionID));
40
46
  };
41
47
  const appendProtocolPart = (output, text) => {
42
48
  appendSyntheticTextPart({
@@ -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,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;AAY7E,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,IAAI,+BAA+B,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,OAAM;IACR,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;YAC9C,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,SAAS;YACvC,SAAS;SACV,CAAC,CAAA;QACF,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,+BAA+B,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC3E,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,CAAC;YACjE,MAAM,KAAK,CAAC,qBAAqB,CAAC;gBAChC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,SAAS;gBACvC,IAAI,EAAE,+BAA+B,CAAC,QAAQ,CAAC;aAChD,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAA;QACnE,MAAM,KAAK,CAAC,qBAAqB,CAAC;YAChC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,SAAS;YACvC,IAAI,EAAE,4BAA4B,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SAClE,CAAC,CAAA;IACJ,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
+ {"version":3,"file":"harness-chat-hook.js","sourceRoot":"","sources":["../../src/plugin/harness-chat-hook.ts"],"names":[],"mappings":"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"}
@@ -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;AA4BhF,eAAO,MAAM,+BAA+B,GAAI,OAAO,MAAM,KAAG,MAM5D,CAAA;AAEJ,eAAO,MAAM,+BAA+B,GAAI,WAAW,0BAA0B,KAAG,MAQhF,CAAA;AAER,eAAO,MAAM,+BAA+B,GAAI,UAAU,0BAA0B,KAAG,MA8BtF,CAAA;AAED,eAAO,MAAM,4BAA4B,GAAI,SAAS,MAAM,KAAG,MAM3D,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;AA4BhF,eAAO,MAAM,+BAA+B,GAAI,OAAO,MAAM,KAAG,MAM5D,CAAA;AAEJ,eAAO,MAAM,+BAA+B,GAAI,WAAW,0BAA0B,KAAG,MAQhF,CAAA;AAER,eAAO,MAAM,+BAA+B,GAAI,UAAU,0BAA0B,KAAG,MAuCtF,CAAA;AAgED,eAAO,MAAM,4BAA4B,GAAI,SAAS,MAAM,KAAG,MAM3D,CAAA"}
@@ -41,8 +41,66 @@ export const createInternalCompletionMessage = (response) => {
41
41
  return `${baseMessage}${answerGuidance}`;
42
42
  }
43
43
  }
44
+ if (response.kind === "run" && response.run.status === "env_blocked") {
45
+ const { runId, governance } = response.run;
46
+ const blockReason = governance.blockReason;
47
+ if (blockReason !== null) {
48
+ const envGuidance = createEnvBlockedGuidance(runId, blockReason);
49
+ return `${baseMessage}${envGuidance}`;
50
+ }
51
+ }
44
52
  return baseMessage;
45
53
  };
54
+ const createEnvBlockedGuidance = (runId, blockReason) => {
55
+ if (blockReason.kind === "non_git_workspace") {
56
+ const reason = blockReason;
57
+ const lines = [
58
+ "",
59
+ "---",
60
+ "**Run 被阻塞:工作目录不是 Git 仓库。**",
61
+ "",
62
+ `Run \`${runId}\` 当前状态为 \`env_blocked\`。`,
63
+ "",
64
+ "Harness 需要 Git 仓库来捕获变更基线、检测 scope drift、支持并行执行和提供回滚能力。",
65
+ "",
66
+ "**解决方案:**",
67
+ "1. 切换到 Git 仓库目录后重新启动 OpenCode",
68
+ `2. 或者取消当前 Run:\`cancel ${runId}\``,
69
+ ];
70
+ if (reason.detectedRepos.length > 0) {
71
+ lines.push("");
72
+ lines.push("**检测到的 Git 仓库:**");
73
+ for (const repo of reason.detectedRepos) {
74
+ lines.push(` - \`${repo}\``);
75
+ }
76
+ }
77
+ return lines.join("\n");
78
+ }
79
+ if (blockReason.kind === "dirty_workspace") {
80
+ const reason = blockReason;
81
+ const lines = [
82
+ "",
83
+ "---",
84
+ "**Run 被阻塞:工作目录有未提交的变更。**",
85
+ "",
86
+ `Run \`${runId}\` 当前状态为 \`env_blocked\`。`,
87
+ "",
88
+ "**变更文件:**",
89
+ ];
90
+ for (const path of reason.dirtyPaths.slice(0, 20)) {
91
+ lines.push(` - \`${path}\``);
92
+ }
93
+ if (reason.dirtyPaths.length > 20) {
94
+ lines.push(` - ... 还有 ${reason.dirtyPaths.length - 20} 个文件`);
95
+ }
96
+ lines.push("");
97
+ lines.push("**解决方案:**");
98
+ lines.push(`1. 提交或暂存变更后执行 \`resume ${runId}\``);
99
+ lines.push(`2. 或者取消当前 Run:\`cancel ${runId}\``);
100
+ return lines.join("\n");
101
+ }
102
+ return "";
103
+ };
46
104
  export const createInternalFailureMessage = (message) => createMarkedPayload(HARNESS_INTERNAL_RESULT_MARKER, {
47
105
  schemaVersion: "1.0.0",
48
106
  kind: "background-result",
@@ -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;AA4BhF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,KAAa,EAAU,EAAE,CACvE,mBAAmB,CAAC,8BAA8B,EAAE;IAClD,aAAa,EAAE,OAAO;IACtB,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,MAAM;IACd,KAAK;CACN,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,QAAqC,EAAU,EAAE,CAC/F,QAAQ,KAAK,SAAS;IACpB,CAAC,CAAC,6BAA6B;IAC/B,CAAC,CAAC,mBAAmB,CAAC,6BAA6B,EAAE;QACjD,aAAa,EAAE,OAAO;QACtB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,UAAU;QAClB,QAAQ;KACT,CAAC,CAAA;AAER,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,QAAoC,EAAU,EAAE;IAC9F,MAAM,WAAW,GAAG,mBAAmB,CAAC,8BAA8B,EAAE;QACtE,aAAa,EAAE,OAAO;QACtB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,WAAW;QACnB,QAAQ;KACT,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,KAAK,wBAAwB,EAAE,CAAC;QAChF,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAA;QAC1C,MAAM,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAA;QACxD,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,cAAc,GAAG;gBACrB,EAAE;gBACF,KAAK;gBACL,uBAAuB;gBACvB,EAAE;gBACF,SAAS,KAAK,sCAAsC;gBACpD,EAAE;gBACF,oBAAoB;gBACpB,EAAE;gBACF,YAAY,KAAK,IAAI,kBAAkB,WAAW;gBAClD,EAAE;gBACF,6CAA6C;aAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACZ,OAAO,GAAG,WAAW,GAAG,cAAc,EAAE,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,OAAe,EAAU,EAAE,CACtE,mBAAmB,CAAC,8BAA8B,EAAE;IAClD,aAAa,EAAE,OAAO;IACtB,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"}
1
+ {"version":3,"file":"harness-chat-protocol.js","sourceRoot":"","sources":["../../src/plugin/harness-chat-protocol.ts"],"names":[],"mappings":"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"}
@@ -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;AAK/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,kBAsBF,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,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"}
@@ -2,6 +2,8 @@ import { ZodError } from "zod";
2
2
  import { parseAgentJson, readAgentOutput } from "../controller/agent-output.js";
3
3
  import { AgentOutputParseError, AgentRunFailedError } from "../controller/index.js";
4
4
  import { HARNESS_SESSION_ROLE } from "../session/index.js";
5
+ import { runWorkspacePreflight } from "../workspace/env-preflight.js";
6
+ import { resolveTargetRepository, TargetRepositoryError, } from "../workspace/resolve-target-repository.js";
5
7
  import { createHarnessIntakePrompt } from "./harness-intake-prompt.js";
6
8
  import { HarnessIntentSchema } from "./harness-intent.js";
7
9
  import { toRequirementInput } from "./harness-requirement.js";
@@ -12,7 +14,10 @@ export const createHarnessCoordinator = (options) => {
12
14
  return createClarificationResponse("请提供 Harness 操作,例如 start、status、pause、answer、resume、cancel、waive 或 report。");
13
15
  }
14
16
  const intent = parseLegacyIntent(request.inputText) ?? (await parseIntentWithRetries(options, request));
15
- const response = await executeIntent(intent, options.controller);
17
+ const response = await executeIntent(intent, options.controller, {
18
+ projectRoot: options.projectRoot,
19
+ config: options.config,
20
+ });
16
21
  if (response.kind === "run" &&
17
22
  response.operation === "start" &&
18
23
  options.scheduleAdvance !== undefined) {
@@ -55,9 +60,33 @@ const parseIntentWithRetries = async (options, request) => {
55
60
  }
56
61
  return createClarificationIntent(`Harness 无法解析该请求,请补充明确的操作与必要字段。原因:${lastError.message}`);
57
62
  };
58
- const executeIntent = async (intent, controller) => {
63
+ const executeIntent = async (intent, controller, options) => {
59
64
  switch (intent.kind) {
60
65
  case "start": {
66
+ const targetRepository = intent.requirement.targetRepository;
67
+ let preflightDirectory = options.projectRoot;
68
+ if (targetRepository !== undefined) {
69
+ try {
70
+ const resolved = await resolveTargetRepository(targetRepository, options.projectRoot);
71
+ preflightDirectory = resolved.absolutePath;
72
+ }
73
+ catch (error) {
74
+ if (error instanceof TargetRepositoryError) {
75
+ return createClarificationResponse(`目标仓库解析失败:${error.detail}`);
76
+ }
77
+ throw error;
78
+ }
79
+ }
80
+ const preflightResult = await runWorkspacePreflight(preflightDirectory, {
81
+ allowDirty: false,
82
+ allowNonGit: options.config.allowNonGitWorkspace,
83
+ });
84
+ if (preflightResult.status === "non_git") {
85
+ return createClarificationResponse(formatNonGitGuidance(preflightDirectory, preflightResult.detectedRepos));
86
+ }
87
+ if (preflightResult.status === "dirty") {
88
+ return createClarificationResponse(formatDirtyWorkspaceGuidance(preflightResult.dirtyPaths));
89
+ }
61
90
  try {
62
91
  return {
63
92
  kind: "run",
@@ -191,4 +220,43 @@ const parseWaiveIntent = (tokens) => {
191
220
  });
192
221
  };
193
222
  const normalizeCommandToken = (token) => token.replace(/^\/harness\/?/, "");
223
+ const formatNonGitGuidance = (projectRoot, detectedRepos) => {
224
+ const lines = [
225
+ `当前工作目录 \`${projectRoot}\` 不是 Git 仓库。`,
226
+ "",
227
+ "Harness 需要 Git 仓库来捕获变更基线、检测 scope drift、支持并行执行和提供回滚能力。",
228
+ "",
229
+ "**解决方案:**",
230
+ "1. 切换到 Git 仓库目录后重新启动 OpenCode",
231
+ "2. 或者取消当前操作",
232
+ ];
233
+ if (detectedRepos.length > 0) {
234
+ lines.push("");
235
+ lines.push("**检测到的 Git 仓库:**");
236
+ for (const repo of detectedRepos) {
237
+ lines.push(` - \`${repo.relativePath}\``);
238
+ }
239
+ lines.push("");
240
+ lines.push("请在需求中指定目标仓库,例如:");
241
+ const firstRepo = detectedRepos[0];
242
+ if (firstRepo !== undefined) {
243
+ lines.push(`> 在 \`${firstRepo.name}\` 中修复 XxxController 的越权问题`);
244
+ }
245
+ }
246
+ return lines.join("\n");
247
+ };
248
+ const formatDirtyWorkspaceGuidance = (dirtyPaths) => {
249
+ const lines = ["工作目录有未提交的变更。", "", "**变更文件:**"];
250
+ for (const path of dirtyPaths.slice(0, 20)) {
251
+ lines.push(` - \`${path}\``);
252
+ }
253
+ if (dirtyPaths.length > 20) {
254
+ lines.push(` - ... 还有 ${dirtyPaths.length - 20} 个文件`);
255
+ }
256
+ lines.push("");
257
+ lines.push("**解决方案:**");
258
+ lines.push("1. 提交或暂存变更后重试");
259
+ lines.push("2. 或者在配置中设置 `allowDirty: true`");
260
+ return lines.join("\n");
261
+ };
194
262
  //# sourceMappingURL=harness-coordinator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness-coordinator.js","sourceRoot":"","sources":["../../src/plugin/harness-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness-coordinator.js","sourceRoot":"","sources":["../../src/plugin/harness-coordinator.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,28 @@ declare const IntakeRequirementSchema: z.ZodReadonly<z.ZodObject<{
4
4
  title: z.ZodString;
5
5
  summary: z.ZodString;
6
6
  acceptanceCriteria: z.ZodReadonly<z.ZodArray<z.ZodString>>;
7
+ complexityAssessment: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
8
+ tier: z.ZodEnum<{
9
+ trivial: "trivial";
10
+ standard: "standard";
11
+ complex: "complex";
12
+ }>;
13
+ rationale: z.ZodString;
14
+ estimatedFileCount: z.ZodNumber;
15
+ estimatedCrossModuleDeps: z.ZodNumber;
16
+ suggestedRoute: z.ZodEnum<{
17
+ direct: "direct";
18
+ streamlined: "streamlined";
19
+ full: "full";
20
+ parallel: "parallel";
21
+ }>;
22
+ confidence: z.ZodEnum<{
23
+ high: "high";
24
+ medium: "medium";
25
+ low: "low";
26
+ }>;
27
+ }, z.core.$strip>>>;
28
+ targetRepository: z.ZodOptional<z.ZodString>;
7
29
  }, z.core.$strict>>;
8
30
  declare const StartIntentSchema: z.ZodReadonly<z.ZodObject<{
9
31
  kind: z.ZodLiteral<"start">;
@@ -12,6 +34,28 @@ declare const StartIntentSchema: z.ZodReadonly<z.ZodObject<{
12
34
  title: z.ZodString;
13
35
  summary: z.ZodString;
14
36
  acceptanceCriteria: z.ZodReadonly<z.ZodArray<z.ZodString>>;
37
+ complexityAssessment: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
38
+ tier: z.ZodEnum<{
39
+ trivial: "trivial";
40
+ standard: "standard";
41
+ complex: "complex";
42
+ }>;
43
+ rationale: z.ZodString;
44
+ estimatedFileCount: z.ZodNumber;
45
+ estimatedCrossModuleDeps: z.ZodNumber;
46
+ suggestedRoute: z.ZodEnum<{
47
+ direct: "direct";
48
+ streamlined: "streamlined";
49
+ full: "full";
50
+ parallel: "parallel";
51
+ }>;
52
+ confidence: z.ZodEnum<{
53
+ high: "high";
54
+ medium: "medium";
55
+ low: "low";
56
+ }>;
57
+ }, z.core.$strip>>>;
58
+ targetRepository: z.ZodOptional<z.ZodString>;
15
59
  }, z.core.$strict>>;
16
60
  }, z.core.$strict>>;
17
61
  export declare const HarnessIntentSchema: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
@@ -21,6 +65,28 @@ export declare const HarnessIntentSchema: z.ZodDiscriminatedUnion<[z.ZodReadonly
21
65
  title: z.ZodString;
22
66
  summary: z.ZodString;
23
67
  acceptanceCriteria: z.ZodReadonly<z.ZodArray<z.ZodString>>;
68
+ complexityAssessment: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
69
+ tier: z.ZodEnum<{
70
+ trivial: "trivial";
71
+ standard: "standard";
72
+ complex: "complex";
73
+ }>;
74
+ rationale: z.ZodString;
75
+ estimatedFileCount: z.ZodNumber;
76
+ estimatedCrossModuleDeps: z.ZodNumber;
77
+ suggestedRoute: z.ZodEnum<{
78
+ direct: "direct";
79
+ streamlined: "streamlined";
80
+ full: "full";
81
+ parallel: "parallel";
82
+ }>;
83
+ confidence: z.ZodEnum<{
84
+ high: "high";
85
+ medium: "medium";
86
+ low: "low";
87
+ }>;
88
+ }, z.core.$strip>>>;
89
+ targetRepository: z.ZodOptional<z.ZodString>;
24
90
  }, z.core.$strict>>;
25
91
  }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
26
92
  kind: z.ZodLiteral<"status">;
@@ -1 +1 @@
1
- {"version":3,"file":"harness-intent.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAavB,QAAA,MAAM,uBAAuB;;;;;mBAQhB,CAAA;AAEb,QAAA,MAAM,iBAAiB;;;;;;;;mBAMV,CAAA;AAsDb,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAU9B,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
1
+ {"version":3,"file":"harness-intent.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAavB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAUhB,CAAA;AAEb,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAMV,CAAA;AAsDb,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAU9B,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { RunIdSchema } from "../domain/index.js";
2
+ import { ComplexityAssessmentSchema, RunIdSchema } from "../domain/index.js";
3
3
  import { RequirementIdSchema } from "../domain/shared.js";
4
4
  const ActorSchema = z
5
5
  .object({
@@ -14,6 +14,8 @@ const IntakeRequirementSchema = z
14
14
  title: z.string().trim().min(1),
15
15
  summary: z.string().trim().min(1),
16
16
  acceptanceCriteria: z.array(z.string().trim().min(1)).min(1).readonly(),
17
+ complexityAssessment: ComplexityAssessmentSchema.optional(),
18
+ targetRepository: z.string().trim().min(1).optional(),
17
19
  })
18
20
  .strict()
19
21
  .readonly();
@@ -1 +1 @@
1
- {"version":3,"file":"harness-intent.js","sourceRoot":"","sources":["../../src/plugin/harness-intent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness-intent.js","sourceRoot":"","sources":["../../src/plugin/harness-intent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"harness-requirement.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-requirement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,OAAO,KAAK,EAAE,kBAAkB,EAAqB,MAAM,qBAAqB,CAAA;AAEhF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,kBAAkB,KAAG,gBAc/D,CAAA"}
1
+ {"version":3,"file":"harness-requirement.d.ts","sourceRoot":"","sources":["../../src/plugin/harness-requirement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,OAAO,KAAK,EAAE,kBAAkB,EAAqB,MAAM,qBAAqB,CAAA;AAEhF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,kBAAkB,KAAG,gBAwB/D,CAAA"}
@@ -6,12 +6,22 @@ export const toRequirementInput = (intent) => {
6
6
  title: intent.requirement.title,
7
7
  summary: intent.requirement.summary,
8
8
  acceptanceCriteria: intent.requirement.acceptanceCriteria,
9
+ ...(intent.requirement.complexityAssessment
10
+ ? { complexityAssessment: intent.requirement.complexityAssessment }
11
+ : {}),
12
+ ...(intent.requirement.targetRepository
13
+ ? { targetRepository: intent.requirement.targetRepository }
14
+ : {}),
9
15
  });
10
16
  return {
11
17
  requirementId: requirement.requirementId,
12
18
  title: requirement.title,
13
19
  summary: requirement.summary,
14
20
  acceptanceCriteria: requirement.acceptanceCriteria,
21
+ ...(requirement.complexityAssessment
22
+ ? { complexityAssessment: requirement.complexityAssessment }
23
+ : {}),
24
+ ...(requirement.targetRepository ? { targetRepository: requirement.targetRepository } : {}),
15
25
  };
16
26
  };
17
27
  const createRequirementId = (requirement) => {
@@ -1 +1 @@
1
- {"version":3,"file":"harness-requirement.js","sourceRoot":"","sources":["../../src/plugin/harness-requirement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAG3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAA0B,EAAoB,EAAE;IACjF,MAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC;QAC/C,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,IAAI,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC;QAC1F,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;QAC/B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO;QACnC,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,kBAAkB;KAC1D,CAAC,CAAA;IAEF,OAAO;QACL,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;KACnD,CAAA;AACH,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,WAA8B,EAAU,EAAE;IACrE,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC9B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;SACzB,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;SAC3B,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjD,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEf,OAAO,OAAO,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;AAC3D,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE;IAC/C,MAAM,UAAU,GAAG,KAAK;SACrB,WAAW,EAAE;SACb,IAAI,EAAE;SACN,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAExB,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACpE,CAAC,CAAA"}
1
+ {"version":3,"file":"harness-requirement.js","sourceRoot":"","sources":["../../src/plugin/harness-requirement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAG3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAA0B,EAAoB,EAAE;IACjF,MAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC;QAC/C,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,IAAI,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC;QAC1F,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;QAC/B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO;QACnC,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,kBAAkB;QACzD,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB;YACzC,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,oBAAoB,EAAE;YACnE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB;YACrC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE;YAC3D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAA;IAEF,OAAO;QACL,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;QAClD,GAAG,CAAC,WAAW,CAAC,oBAAoB;YAClC,CAAC,CAAC,EAAE,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5F,CAAA;AACH,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,WAA8B,EAAU,EAAE;IACrE,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC9B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;SACzB,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;SAC3B,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjD,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEf,OAAO,OAAO,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;AAC3D,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE;IAC/C,MAAM,UAAU,GAAG,KAAK;SACrB,WAAW,EAAE;SACb,IAAI,EAAE;SACN,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAExB,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACpE,CAAC,CAAA"}