harness-engineering-agent 0.2.1 → 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 (81) hide show
  1. package/README.md +4 -0
  2. package/dist/config/config-defaults.d.ts +1 -0
  3. package/dist/config/config-defaults.d.ts.map +1 -1
  4. package/dist/config/config-defaults.js +1 -0
  5. package/dist/config/config-defaults.js.map +1 -1
  6. package/dist/config/config-merge.d.ts.map +1 -1
  7. package/dist/config/config-merge.js +3 -0
  8. package/dist/config/config-merge.js.map +1 -1
  9. package/dist/config/config-schema.d.ts +2 -0
  10. package/dist/config/config-schema.d.ts.map +1 -1
  11. package/dist/config/config-schema.js +2 -0
  12. package/dist/config/config-schema.js.map +1 -1
  13. package/dist/config/config-types.d.ts +1 -0
  14. package/dist/config/config-types.d.ts.map +1 -1
  15. package/dist/controller/report-factory.d.ts.map +1 -1
  16. package/dist/controller/report-factory.js +5 -0
  17. package/dist/controller/report-factory.js.map +1 -1
  18. package/dist/controller/run-controller.d.ts.map +1 -1
  19. package/dist/controller/run-controller.js +39 -7
  20. package/dist/controller/run-controller.js.map +1 -1
  21. package/dist/controller/run-state.d.ts +3 -0
  22. package/dist/controller/run-state.d.ts.map +1 -1
  23. package/dist/controller/run-state.js +7 -0
  24. package/dist/controller/run-state.js.map +1 -1
  25. package/dist/controller/task-agent-schemas.d.ts +2 -0
  26. package/dist/controller/task-agent-schemas.d.ts.map +1 -1
  27. package/dist/domain/index.d.ts +1 -1
  28. package/dist/domain/index.d.ts.map +1 -1
  29. package/dist/domain/index.js.map +1 -1
  30. package/dist/domain/plan-artifacts.d.ts +1 -0
  31. package/dist/domain/plan-artifacts.d.ts.map +1 -1
  32. package/dist/domain/report.d.ts +19 -0
  33. package/dist/domain/report.d.ts.map +1 -1
  34. package/dist/domain/requirement.d.ts +3 -0
  35. package/dist/domain/requirement.d.ts.map +1 -1
  36. package/dist/domain/requirement.js +2 -0
  37. package/dist/domain/requirement.js.map +1 -1
  38. package/dist/domain/run.d.ts +34 -0
  39. package/dist/domain/run.d.ts.map +1 -1
  40. package/dist/domain/run.js +27 -0
  41. package/dist/domain/run.js.map +1 -1
  42. package/dist/domain/shared.d.ts +2 -1
  43. package/dist/domain/shared.d.ts.map +1 -1
  44. package/dist/domain/shared.js +1 -0
  45. package/dist/domain/shared.js.map +1 -1
  46. package/dist/plugin/harness-chat-protocol.d.ts.map +1 -1
  47. package/dist/plugin/harness-chat-protocol.js +58 -0
  48. package/dist/plugin/harness-chat-protocol.js.map +1 -1
  49. package/dist/plugin/harness-coordinator.d.ts.map +1 -1
  50. package/dist/plugin/harness-coordinator.js +70 -2
  51. package/dist/plugin/harness-coordinator.js.map +1 -1
  52. package/dist/plugin/harness-intent.d.ts +3 -0
  53. package/dist/plugin/harness-intent.d.ts.map +1 -1
  54. package/dist/plugin/harness-intent.js +1 -0
  55. package/dist/plugin/harness-intent.js.map +1 -1
  56. package/dist/plugin/harness-requirement.d.ts.map +1 -1
  57. package/dist/plugin/harness-requirement.js +4 -0
  58. package/dist/plugin/harness-requirement.js.map +1 -1
  59. package/dist/store/run-event.d.ts +19 -0
  60. package/dist/store/run-event.d.ts.map +1 -1
  61. package/dist/workspace/discover-git-repos.d.ts +6 -0
  62. package/dist/workspace/discover-git-repos.d.ts.map +1 -0
  63. package/dist/workspace/discover-git-repos.js +61 -0
  64. package/dist/workspace/discover-git-repos.js.map +1 -0
  65. package/dist/workspace/env-preflight.d.ts +16 -0
  66. package/dist/workspace/env-preflight.d.ts.map +1 -0
  67. package/dist/workspace/env-preflight.js +86 -0
  68. package/dist/workspace/env-preflight.js.map +1 -0
  69. package/dist/workspace/git-workspace-adapter.d.ts +2 -1
  70. package/dist/workspace/git-workspace-adapter.d.ts.map +1 -1
  71. package/dist/workspace/git-workspace-adapter.js +24 -4
  72. package/dist/workspace/git-workspace-adapter.js.map +1 -1
  73. package/dist/workspace/index.d.ts +6 -0
  74. package/dist/workspace/index.d.ts.map +1 -1
  75. package/dist/workspace/index.js +3 -0
  76. package/dist/workspace/index.js.map +1 -1
  77. package/dist/workspace/resolve-target-repository.d.ts +12 -0
  78. package/dist/workspace/resolve-target-repository.d.ts.map +1 -0
  79. package/dist/workspace/resolve-target-repository.js +78 -0
  80. package/dist/workspace/resolve-target-repository.js.map +1 -0
  81. package/package.json +1 -1
@@ -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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"}
@@ -25,6 +25,7 @@ declare const IntakeRequirementSchema: z.ZodReadonly<z.ZodObject<{
25
25
  low: "low";
26
26
  }>;
27
27
  }, z.core.$strip>>>;
28
+ targetRepository: z.ZodOptional<z.ZodString>;
28
29
  }, z.core.$strict>>;
29
30
  declare const StartIntentSchema: z.ZodReadonly<z.ZodObject<{
30
31
  kind: z.ZodLiteral<"start">;
@@ -54,6 +55,7 @@ declare const StartIntentSchema: z.ZodReadonly<z.ZodObject<{
54
55
  low: "low";
55
56
  }>;
56
57
  }, z.core.$strip>>>;
58
+ targetRepository: z.ZodOptional<z.ZodString>;
57
59
  }, z.core.$strict>>;
58
60
  }, z.core.$strict>>;
59
61
  export declare const HarnessIntentSchema: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
@@ -84,6 +86,7 @@ export declare const HarnessIntentSchema: z.ZodDiscriminatedUnion<[z.ZodReadonly
84
86
  low: "low";
85
87
  }>;
86
88
  }, z.core.$strip>>>;
89
+ targetRepository: z.ZodOptional<z.ZodString>;
87
90
  }, z.core.$strict>>;
88
91
  }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
89
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;;;;;;;;;;;;;;;;;;;;;;;;;;mBAShB,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"}
@@ -15,6 +15,7 @@ const IntakeRequirementSchema = z
15
15
  summary: z.string().trim().min(1),
16
16
  acceptanceCriteria: z.array(z.string().trim().min(1)).min(1).readonly(),
17
17
  complexityAssessment: ComplexityAssessmentSchema.optional(),
18
+ targetRepository: z.string().trim().min(1).optional(),
18
19
  })
19
20
  .strict()
20
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,gBAoB/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"}
@@ -9,6 +9,9 @@ export const toRequirementInput = (intent) => {
9
9
  ...(intent.requirement.complexityAssessment
10
10
  ? { complexityAssessment: intent.requirement.complexityAssessment }
11
11
  : {}),
12
+ ...(intent.requirement.targetRepository
13
+ ? { targetRepository: intent.requirement.targetRepository }
14
+ : {}),
12
15
  });
13
16
  return {
14
17
  requirementId: requirement.requirementId,
@@ -18,6 +21,7 @@ export const toRequirementInput = (intent) => {
18
21
  ...(requirement.complexityAssessment
19
22
  ? { complexityAssessment: requirement.complexityAssessment }
20
23
  : {}),
24
+ ...(requirement.targetRepository ? { targetRepository: requirement.targetRepository } : {}),
21
25
  };
22
26
  };
23
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;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;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;KACR,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"}
@@ -148,6 +148,7 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
148
148
  low: "low";
149
149
  }>;
150
150
  }, z.core.$strip>>>;
151
+ targetRepository: z.ZodOptional<z.ZodString>;
151
152
  }, z.core.$strip>>>;
152
153
  evidence: z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodReadonly<z.ZodObject<{
153
154
  schemaVersion: z.ZodLiteral<"1.0.0">;
@@ -458,6 +459,13 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
458
459
  reason: z.ZodString;
459
460
  pausedAt: z.ZodString;
460
461
  }, z.core.$strip>>>;
462
+ blockReason: z.ZodNullable<z.ZodReadonly<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
463
+ kind: z.ZodLiteral<"non_git_workspace">;
464
+ detectedRepos: z.ZodReadonly<z.ZodArray<z.ZodString>>;
465
+ }, z.core.$strip>>, z.ZodReadonly<z.ZodObject<{
466
+ kind: z.ZodLiteral<"dirty_workspace">;
467
+ dirtyPaths: z.ZodReadonly<z.ZodArray<z.ZodString>>;
468
+ }, z.core.$strip>>]>>>;
461
469
  }, z.core.$strip>>>;
462
470
  workspace: z.ZodDefault<z.ZodReadonly<z.ZodObject<{
463
471
  git: z.ZodUnion<readonly [z.ZodReadonly<z.ZodObject<{
@@ -553,6 +561,7 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
553
561
  low: "low";
554
562
  }>;
555
563
  }, z.core.$strip>>>;
564
+ targetRepository: z.ZodOptional<z.ZodString>;
556
565
  }, z.core.$strip>>>;
557
566
  taskGraph: z.ZodReadonly<z.ZodObject<{
558
567
  schemaVersion: z.ZodLiteral<"1.0.0">;
@@ -854,6 +863,7 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
854
863
  planning: "planning";
855
864
  evidence_gap: "evidence_gap";
856
865
  clarification_required: "clarification_required";
866
+ env_blocked: "env_blocked";
857
867
  cancelled: "cancelled";
858
868
  }>;
859
869
  schemaVersion: z.ZodLiteral<"1.0.0">;
@@ -889,6 +899,7 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
889
899
  low: "low";
890
900
  }>;
891
901
  }, z.core.$strip>>>;
902
+ targetRepository: z.ZodOptional<z.ZodString>;
892
903
  }, z.core.$strip>>>;
893
904
  evidence: z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodReadonly<z.ZodObject<{
894
905
  schemaVersion: z.ZodLiteral<"1.0.0">;
@@ -1199,6 +1210,13 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
1199
1210
  reason: z.ZodString;
1200
1211
  pausedAt: z.ZodString;
1201
1212
  }, z.core.$strip>>>;
1213
+ blockReason: z.ZodNullable<z.ZodReadonly<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
1214
+ kind: z.ZodLiteral<"non_git_workspace">;
1215
+ detectedRepos: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1216
+ }, z.core.$strip>>, z.ZodReadonly<z.ZodObject<{
1217
+ kind: z.ZodLiteral<"dirty_workspace">;
1218
+ dirtyPaths: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1219
+ }, z.core.$strip>>]>>>;
1202
1220
  }, z.core.$strip>>>;
1203
1221
  workspace: z.ZodDefault<z.ZodReadonly<z.ZodObject<{
1204
1222
  git: z.ZodUnion<readonly [z.ZodReadonly<z.ZodObject<{
@@ -1294,6 +1312,7 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
1294
1312
  low: "low";
1295
1313
  }>;
1296
1314
  }, z.core.$strip>>>;
1315
+ targetRepository: z.ZodOptional<z.ZodString>;
1297
1316
  }, z.core.$strip>>>;
1298
1317
  taskGraph: z.ZodReadonly<z.ZodObject<{
1299
1318
  schemaVersion: z.ZodLiteral<"1.0.0">;
@@ -1 +1 @@
1
- {"version":3,"file":"run-event.d.ts","sourceRoot":"","sources":["../../src/store/run-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAMhD,CAAA;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAad,CAAA;AAEb,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,SAAS,EAAE,GACpB;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAEzC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"run-event.d.ts","sourceRoot":"","sources":["../../src/store/run-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAMhD,CAAA;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAad,CAAA;AAEb,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,SAAS,EAAE,GACpB;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAEzC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ export type DiscoveredGitRepo = {
2
+ readonly name: string;
3
+ readonly relativePath: string;
4
+ };
5
+ export declare const discoverChildGitRepos: (projectRoot: string, maxDepth?: number) => Promise<readonly DiscoveredGitRepo[]>;
6
+ //# sourceMappingURL=discover-git-repos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover-git-repos.d.ts","sourceRoot":"","sources":["../../src/workspace/discover-git-repos.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B,CAAA;AAmBD,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,EACnB,WAAU,MAA0B,KACnC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAMtC,CAAA"}
@@ -0,0 +1,61 @@
1
+ import { existsSync } from "node:fs";
2
+ import { readdir, stat } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ const DEFAULT_MAX_DEPTH = 2;
5
+ const DEFAULT_MAX_RESULTS = 10;
6
+ const IGNORED_DIRECTORIES = new Set([
7
+ "node_modules",
8
+ ".git",
9
+ "dist",
10
+ "build",
11
+ "coverage",
12
+ ".harness",
13
+ "target",
14
+ ".next",
15
+ ".nuxt",
16
+ ".cache",
17
+ ".harness-worktrees",
18
+ ]);
19
+ export const discoverChildGitRepos = async (projectRoot, maxDepth = DEFAULT_MAX_DEPTH) => {
20
+ const repos = [];
21
+ await walkForGitRepos(projectRoot, "", 0, maxDepth, repos);
22
+ return repos
23
+ .sort((left, right) => left.name.localeCompare(right.name))
24
+ .slice(0, DEFAULT_MAX_RESULTS);
25
+ };
26
+ const walkForGitRepos = async (root, relativePath, depth, maxDepth, repos) => {
27
+ if (depth > maxDepth) {
28
+ return;
29
+ }
30
+ let dirEntries;
31
+ try {
32
+ dirEntries = await readdir(root);
33
+ }
34
+ catch {
35
+ return;
36
+ }
37
+ for (const entry of dirEntries) {
38
+ if (IGNORED_DIRECTORIES.has(entry)) {
39
+ continue;
40
+ }
41
+ const fullPath = join(root, entry);
42
+ const entryRelative = relativePath.length === 0 ? entry : `${relativePath}/${entry}`;
43
+ let isDirectory = false;
44
+ try {
45
+ const entryStat = await stat(fullPath);
46
+ isDirectory = entryStat.isDirectory();
47
+ }
48
+ catch {
49
+ continue;
50
+ }
51
+ if (!isDirectory) {
52
+ continue;
53
+ }
54
+ if (existsSync(join(fullPath, ".git"))) {
55
+ repos.push({ name: entry, relativePath: entryRelative });
56
+ continue;
57
+ }
58
+ await walkForGitRepos(fullPath, entryRelative, depth + 1, maxDepth, repos);
59
+ }
60
+ };
61
+ //# sourceMappingURL=discover-git-repos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover-git-repos.js","sourceRoot":"","sources":["../../src/workspace/discover-git-repos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAOhC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAC3B,MAAM,mBAAmB,GAAG,EAAE,CAAA;AAE9B,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,cAAc;IACd,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,oBAAoB;CACrB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,WAAmB,EACnB,WAAmB,iBAAiB,EACG,EAAE;IACzC,MAAM,KAAK,GAAwB,EAAE,CAAA;IACrC,MAAM,eAAe,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC1D,OAAO,KAAK;SACT,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1D,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAA;AAClC,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,KAAK,EAC3B,IAAY,EACZ,YAAoB,EACpB,KAAa,EACb,QAAgB,EAChB,KAA0B,EACX,EAAE;IACjB,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,OAAM;IACR,CAAC;IAED,IAAI,UAAoB,CAAA;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAM;IACR,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,SAAQ;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAClC,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,KAAK,EAAE,CAAA;QAEpF,IAAI,WAAW,GAAG,KAAK,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAA;YACtC,WAAW,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,SAAQ;QACV,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAA;YACxD,SAAQ;QACV,CAAC;QAED,MAAM,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import type { DiscoveredGitRepo } from "./discover-git-repos.js";
2
+ export type PreflightPolicy = {
3
+ readonly allowDirty: boolean;
4
+ readonly allowNonGit: boolean;
5
+ };
6
+ export type PreflightResult = {
7
+ readonly status: "ok";
8
+ } | {
9
+ readonly status: "non_git";
10
+ readonly detectedRepos: readonly DiscoveredGitRepo[];
11
+ } | {
12
+ readonly status: "dirty";
13
+ readonly dirtyPaths: readonly string[];
14
+ };
15
+ export declare const runWorkspacePreflight: (projectRoot: string, policy: PreflightPolicy) => Promise<PreflightResult>;
16
+ //# sourceMappingURL=env-preflight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-preflight.d.ts","sourceRoot":"","sources":["../../src/workspace/env-preflight.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAGhE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;CAAE,GACzB;IACE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,SAAS,iBAAiB,EAAE,CAAA;CACrD,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC,CAAA;AAQL,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,EACnB,QAAQ,eAAe,KACtB,OAAO,CAAC,eAAe,CAoBzB,CAAA"}
@@ -0,0 +1,86 @@
1
+ import { spawn } from "node:child_process";
2
+ import { discoverChildGitRepos } from "./discover-git-repos.js";
3
+ export const runWorkspacePreflight = async (projectRoot, policy) => {
4
+ const repoRoot = await resolveRepoRoot(projectRoot);
5
+ if (repoRoot === null) {
6
+ if (policy.allowNonGit) {
7
+ return { status: "ok" };
8
+ }
9
+ const detectedRepos = await discoverChildGitRepos(projectRoot);
10
+ return { status: "non_git", detectedRepos };
11
+ }
12
+ if (policy.allowDirty) {
13
+ return { status: "ok" };
14
+ }
15
+ const dirtyPaths = await listDirtyPaths(projectRoot);
16
+ if (dirtyPaths.length > 0) {
17
+ return { status: "dirty", dirtyPaths };
18
+ }
19
+ return { status: "ok" };
20
+ };
21
+ const resolveRepoRoot = async (cwd) => {
22
+ const result = await runGitCommand(cwd, ["rev-parse", "--show-toplevel"]);
23
+ if (result.exitCode !== 0) {
24
+ return null;
25
+ }
26
+ return result.stdout.trim();
27
+ };
28
+ const listDirtyPaths = async (projectRoot) => {
29
+ const result = await runGitCommand(projectRoot, [
30
+ "status",
31
+ "--porcelain=v1",
32
+ "-z",
33
+ "--untracked-files=all",
34
+ ]);
35
+ if (result.exitCode !== 0) {
36
+ return [];
37
+ }
38
+ return parseDirtyPaths(result.stdout);
39
+ };
40
+ const parseDirtyPaths = (output) => {
41
+ const entries = output.split("\u0000").filter((entry) => entry.length > 0);
42
+ const paths = [];
43
+ for (const entry of entries) {
44
+ if (entry.length < 4) {
45
+ continue;
46
+ }
47
+ const status = entry.slice(0, 2);
48
+ const primaryPath = entry.slice(3);
49
+ if (primaryPath.length > 0) {
50
+ paths.push(primaryPath);
51
+ }
52
+ if (status.includes("R") || status.includes("C")) {
53
+ const nextIndex = entries.indexOf(entry) + 1;
54
+ const secondaryPath = entries[nextIndex];
55
+ if (secondaryPath !== undefined && secondaryPath.length > 0) {
56
+ paths.push(secondaryPath);
57
+ }
58
+ }
59
+ }
60
+ return [...new Set(paths)].sort();
61
+ };
62
+ const runGitCommand = async (cwd, args) => {
63
+ return await new Promise((resolveResult, reject) => {
64
+ const child = spawn("git", args, {
65
+ cwd,
66
+ stdio: ["ignore", "pipe", "pipe"],
67
+ });
68
+ const stdout = [];
69
+ const stderr = [];
70
+ child.stdout.on("data", (chunk) => {
71
+ stdout.push(chunk);
72
+ });
73
+ child.stderr.on("data", (chunk) => {
74
+ stderr.push(chunk);
75
+ });
76
+ child.on("error", reject);
77
+ child.on("close", (exitCode) => {
78
+ resolveResult({
79
+ exitCode: exitCode ?? -1,
80
+ stdout: Buffer.concat(stdout).toString("utf8"),
81
+ stderr: Buffer.concat(stderr).toString("utf8"),
82
+ });
83
+ });
84
+ });
85
+ };
86
+ //# sourceMappingURL=env-preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-preflight.js","sourceRoot":"","sources":["../../src/workspace/env-preflight.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type GitWorkspaceState, type WorkspaceGitState } from "./git-baseline.js";
2
2
  export type WorkspacePolicy = {
3
3
  readonly allowDirty: boolean;
4
+ readonly allowNonGit?: boolean;
4
5
  };
5
6
  type GitRepositoryState = {
6
7
  readonly mode: "git";
@@ -38,6 +39,6 @@ export interface WorkspaceAdapter {
38
39
  readonly allowedPaths: readonly string[];
39
40
  }): Promise<WorkspaceChangeAssessment>;
40
41
  }
41
- export declare const createGitWorkspaceAdapter: (projectRoot: string) => WorkspaceAdapter;
42
+ export declare const createGitWorkspaceAdapter: (projectRoot: string, policy?: WorkspacePolicy) => WorkspaceAdapter;
42
43
  export {};
43
44
  //# sourceMappingURL=git-workspace-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-workspace-adapter.d.ts","sourceRoot":"","sources":["../../src/workspace/git-workspace-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAC7B,CAAA;AAQD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,eAAe,GAAG,kBAAkB,GAAG,qBAAqB,CAAA;AAEjE,MAAM,MAAM,yBAAyB,GACjC;IACE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;IACrB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAA;CAC1C,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC,CAAA;AAEL,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACpE,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;IAC/C,iBAAiB,CAAC,KAAK,EAAE;QACvB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;QACpC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;QAChC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAA;QACrC,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAA;QAC3C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAA;QAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;KACzC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;CACvC;AAED,eAAO,MAAM,yBAAyB,GAAI,aAAa,MAAM,KAAG,gBA+G9D,CAAA"}
1
+ {"version":3,"file":"git-workspace-adapter.d.ts","sourceRoot":"","sources":["../../src/workspace/git-workspace-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAQD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,eAAe,GAAG,kBAAkB,GAAG,qBAAqB,CAAA;AAEjE,MAAM,MAAM,yBAAyB,GACjC;IACE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;IACrB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAA;CAC1C,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC,CAAA;AAEL,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACpE,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;IAC/C,iBAAiB,CAAC,KAAK,EAAE;QACvB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;QACpC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;QAChC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAA;QACrC,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAA;QAC3C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAA;QAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;KACzC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;CACvC;AAED,eAAO,MAAM,yBAAyB,GACpC,aAAa,MAAM,EACnB,SAAS,eAAe,KACvB,gBAwID,CAAA"}
@@ -3,8 +3,8 @@ import { readFile } from "node:fs/promises";
3
3
  import { resolve } from "node:path";
4
4
  import { normalizeWorkspaceRelativePath, toWorkspaceRelativePath } from "../path/workspace-path.js";
5
5
  import { createBufferDigest, createWorkspaceDigest, } from "./git-baseline.js";
6
- export const createGitWorkspaceAdapter = (projectRoot) => ({
7
- async captureBaseline(policy) {
6
+ export const createGitWorkspaceAdapter = (projectRoot, policy) => ({
7
+ async captureBaseline(capturePolicy) {
8
8
  const current = await captureRepositoryState(projectRoot);
9
9
  if (current.mode === "non-git") {
10
10
  return {
@@ -13,7 +13,7 @@ export const createGitWorkspaceAdapter = (projectRoot) => ({
13
13
  baselineDiffDigest: createWorkspaceDigest(""),
14
14
  managedFileHashes: current.managedFileHashes,
15
15
  initialDirtyPaths: [],
16
- dirtyAllowed: policy.allowDirty,
16
+ dirtyAllowed: capturePolicy.allowDirty,
17
17
  harnessChangedPaths: [],
18
18
  };
19
19
  }
@@ -23,7 +23,7 @@ export const createGitWorkspaceAdapter = (projectRoot) => ({
23
23
  baselineDiffDigest: current.diffDigest,
24
24
  managedFileHashes: current.managedFileHashes,
25
25
  initialDirtyPaths: current.dirtyPaths,
26
- dirtyAllowed: policy.allowDirty,
26
+ dirtyAllowed: capturePolicy.allowDirty,
27
27
  harnessChangedPaths: [],
28
28
  };
29
29
  },
@@ -32,6 +32,26 @@ export const createGitWorkspaceAdapter = (projectRoot) => ({
32
32
  if (input.before.mode === "non-git" ||
33
33
  input.afterWorker.mode === "non-git" ||
34
34
  input.afterVerification.mode === "non-git") {
35
+ if (policy?.allowNonGit) {
36
+ const actualWorkerChangedPaths = input.before.mode === "non-git" && input.afterWorker.mode === "non-git"
37
+ ? diffManagedFileHashes(input.before.managedFileHashes, input.afterWorker.managedFileHashes)
38
+ : [];
39
+ const actualChangedPaths = normalizePaths(actualWorkerChangedPaths);
40
+ return {
41
+ status: "ok",
42
+ actualChangedPaths,
43
+ nextWorkspace: input.afterVerification.mode === "non-git"
44
+ ? {
45
+ ...input.baseline,
46
+ managedFileHashes: input.afterVerification.managedFileHashes,
47
+ harnessChangedPaths: normalizePaths([
48
+ ...input.baseline.harnessChangedPaths,
49
+ ...actualChangedPaths,
50
+ ]),
51
+ }
52
+ : input.baseline,
53
+ };
54
+ }
35
55
  return {
36
56
  status: "paused",
37
57
  actualChangedPaths: [],