harness-engineering-agent 0.3.10 → 0.3.12

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 (177) hide show
  1. package/README.md +4 -0
  2. package/dist/controller/agent-session-types.d.ts +17 -1
  3. package/dist/controller/agent-session-types.d.ts.map +1 -1
  4. package/dist/controller/agent-session-utils.d.ts +40 -3
  5. package/dist/controller/agent-session-utils.d.ts.map +1 -1
  6. package/dist/controller/agent-session-utils.js +67 -21
  7. package/dist/controller/agent-session-utils.js.map +1 -1
  8. package/dist/controller/agent-session.d.ts.map +1 -1
  9. package/dist/controller/agent-session.js +129 -10
  10. package/dist/controller/agent-session.js.map +1 -1
  11. package/dist/controller/context-budget.d.ts +71 -0
  12. package/dist/controller/context-budget.d.ts.map +1 -0
  13. package/dist/controller/context-budget.js +219 -0
  14. package/dist/controller/context-budget.js.map +1 -0
  15. package/dist/controller/context-builder.d.ts +27 -0
  16. package/dist/controller/context-builder.d.ts.map +1 -0
  17. package/dist/controller/context-builder.js +184 -0
  18. package/dist/controller/context-builder.js.map +1 -0
  19. package/dist/controller/context-validation.d.ts +46 -0
  20. package/dist/controller/context-validation.d.ts.map +1 -0
  21. package/dist/controller/context-validation.js +126 -0
  22. package/dist/controller/context-validation.js.map +1 -0
  23. package/dist/controller/direct-runner.d.ts +2 -0
  24. package/dist/controller/direct-runner.d.ts.map +1 -1
  25. package/dist/controller/direct-runner.js +20 -2
  26. package/dist/controller/direct-runner.js.map +1 -1
  27. package/dist/controller/evidence-factory.d.ts +2 -1
  28. package/dist/controller/evidence-factory.d.ts.map +1 -1
  29. package/dist/controller/evidence-factory.js +1 -0
  30. package/dist/controller/evidence-factory.js.map +1 -1
  31. package/dist/controller/failure-analysis.d.ts.map +1 -1
  32. package/dist/controller/failure-analysis.js +18 -0
  33. package/dist/controller/failure-analysis.js.map +1 -1
  34. package/dist/controller/graph-validator.d.ts.map +1 -1
  35. package/dist/controller/graph-validator.js +25 -0
  36. package/dist/controller/graph-validator.js.map +1 -1
  37. package/dist/controller/index.d.ts +1 -0
  38. package/dist/controller/index.d.ts.map +1 -1
  39. package/dist/controller/index.js +1 -0
  40. package/dist/controller/index.js.map +1 -1
  41. package/dist/controller/repair-loop.d.ts.map +1 -1
  42. package/dist/controller/repair-loop.js +1 -0
  43. package/dist/controller/repair-loop.js.map +1 -1
  44. package/dist/controller/report-factory.d.ts.map +1 -1
  45. package/dist/controller/report-factory.js +8 -0
  46. package/dist/controller/report-factory.js.map +1 -1
  47. package/dist/controller/run-acceptance.d.ts.map +1 -1
  48. package/dist/controller/run-acceptance.js +22 -1
  49. package/dist/controller/run-acceptance.js.map +1 -1
  50. package/dist/controller/run-controller.d.ts.map +1 -1
  51. package/dist/controller/run-controller.js +16 -112
  52. package/dist/controller/run-controller.js.map +1 -1
  53. package/dist/controller/run-error-finalizer.d.ts +14 -0
  54. package/dist/controller/run-error-finalizer.d.ts.map +1 -0
  55. package/dist/controller/run-error-finalizer.js +56 -0
  56. package/dist/controller/run-error-finalizer.js.map +1 -0
  57. package/dist/controller/run-reflection.d.ts +13 -0
  58. package/dist/controller/run-reflection.d.ts.map +1 -0
  59. package/dist/controller/run-reflection.js +27 -0
  60. package/dist/controller/run-reflection.js.map +1 -0
  61. package/dist/controller/run-workspace.d.ts +16 -0
  62. package/dist/controller/run-workspace.d.ts.map +1 -0
  63. package/dist/controller/run-workspace.js +43 -0
  64. package/dist/controller/run-workspace.js.map +1 -0
  65. package/dist/controller/streamlined-runner.d.ts +2 -0
  66. package/dist/controller/streamlined-runner.d.ts.map +1 -1
  67. package/dist/controller/streamlined-runner.js +31 -1
  68. package/dist/controller/streamlined-runner.js.map +1 -1
  69. package/dist/controller/task-agent-output.d.ts.map +1 -1
  70. package/dist/controller/task-agent-output.js +90 -0
  71. package/dist/controller/task-agent-output.js.map +1 -1
  72. package/dist/controller/task-agent-schemas.d.ts +16 -2
  73. package/dist/controller/task-agent-schemas.d.ts.map +1 -1
  74. package/dist/controller/task-agent-schemas.js +2 -1
  75. package/dist/controller/task-agent-schemas.js.map +1 -1
  76. package/dist/controller/task-executor.d.ts.map +1 -1
  77. package/dist/controller/task-executor.js +25 -2
  78. package/dist/controller/task-executor.js.map +1 -1
  79. package/dist/domain/agent-result.d.ts +4 -0
  80. package/dist/domain/agent-result.d.ts.map +1 -1
  81. package/dist/domain/agent-result.js +2 -1
  82. package/dist/domain/agent-result.js.map +1 -1
  83. package/dist/domain/clarification.d.ts +92 -0
  84. package/dist/domain/clarification.d.ts.map +1 -0
  85. package/dist/domain/clarification.js +80 -0
  86. package/dist/domain/clarification.js.map +1 -0
  87. package/dist/domain/context-snapshot.d.ts +140 -0
  88. package/dist/domain/context-snapshot.d.ts.map +1 -0
  89. package/dist/domain/context-snapshot.js +140 -0
  90. package/dist/domain/context-snapshot.js.map +1 -0
  91. package/dist/domain/evidence.d.ts +1 -0
  92. package/dist/domain/evidence.d.ts.map +1 -1
  93. package/dist/domain/evidence.js +2 -1
  94. package/dist/domain/evidence.js.map +1 -1
  95. package/dist/domain/index.d.ts +6 -2
  96. package/dist/domain/index.d.ts.map +1 -1
  97. package/dist/domain/index.js +3 -1
  98. package/dist/domain/index.js.map +1 -1
  99. package/dist/domain/plan-artifacts.d.ts +4 -1
  100. package/dist/domain/plan-artifacts.d.ts.map +1 -1
  101. package/dist/domain/report.d.ts +166 -7
  102. package/dist/domain/report.d.ts.map +1 -1
  103. package/dist/domain/report.js +7 -1
  104. package/dist/domain/report.js.map +1 -1
  105. package/dist/domain/requirement.d.ts +3 -0
  106. package/dist/domain/requirement.d.ts.map +1 -1
  107. package/dist/domain/requirement.js +6 -1
  108. package/dist/domain/requirement.js.map +1 -1
  109. package/dist/domain/run-acceptance.d.ts +1 -0
  110. package/dist/domain/run-acceptance.d.ts.map +1 -1
  111. package/dist/domain/run-acceptance.js +2 -1
  112. package/dist/domain/run-acceptance.js.map +1 -1
  113. package/dist/domain/run.d.ts +153 -7
  114. package/dist/domain/run.d.ts.map +1 -1
  115. package/dist/domain/run.js +28 -1
  116. package/dist/domain/run.js.map +1 -1
  117. package/dist/domain/shared.d.ts +6 -4
  118. package/dist/domain/shared.d.ts.map +1 -1
  119. package/dist/domain/shared.js +1 -0
  120. package/dist/domain/shared.js.map +1 -1
  121. package/dist/domain/task-review.d.ts +1 -0
  122. package/dist/domain/task-review.d.ts.map +1 -1
  123. package/dist/domain/task-review.js +2 -1
  124. package/dist/domain/task-review.js.map +1 -1
  125. package/dist/domain/task.d.ts +6 -2
  126. package/dist/domain/task.d.ts.map +1 -1
  127. package/dist/domain/task.js +4 -1
  128. package/dist/domain/task.js.map +1 -1
  129. package/dist/plugin/harness-chat-hook.d.ts +2 -0
  130. package/dist/plugin/harness-chat-hook.d.ts.map +1 -1
  131. package/dist/plugin/harness-chat-hook.js +31 -17
  132. package/dist/plugin/harness-chat-hook.js.map +1 -1
  133. package/dist/plugin/harness-coordinator.d.ts +5 -0
  134. package/dist/plugin/harness-coordinator.d.ts.map +1 -1
  135. package/dist/plugin/harness-coordinator.js +115 -6
  136. package/dist/plugin/harness-coordinator.js.map +1 -1
  137. package/dist/plugin/harness-intake-prompt.d.ts.map +1 -1
  138. package/dist/plugin/harness-intake-prompt.js +3 -3
  139. package/dist/plugin/harness-intake-prompt.js.map +1 -1
  140. package/dist/plugin/harness-plugin-runtime.d.ts +3 -18
  141. package/dist/plugin/harness-plugin-runtime.d.ts.map +1 -1
  142. package/dist/plugin/harness-plugin-runtime.js +9 -1
  143. package/dist/plugin/harness-plugin-runtime.js.map +1 -1
  144. package/dist/session/contracts.d.ts +80 -8
  145. package/dist/session/contracts.d.ts.map +1 -1
  146. package/dist/session/fake-session-adapter.d.ts.map +1 -1
  147. package/dist/session/fake-session-adapter.js +14 -0
  148. package/dist/session/fake-session-adapter.js.map +1 -1
  149. package/dist/session/opencode-session-adapter.d.ts.map +1 -1
  150. package/dist/session/opencode-session-adapter.js +16 -0
  151. package/dist/session/opencode-session-adapter.js.map +1 -1
  152. package/dist/session/opencode-session-prompts.d.ts.map +1 -1
  153. package/dist/session/opencode-session-prompts.js +3 -0
  154. package/dist/session/opencode-session-prompts.js.map +1 -1
  155. package/dist/store/context-snapshot-store.d.ts +17 -0
  156. package/dist/store/context-snapshot-store.d.ts.map +1 -0
  157. package/dist/store/context-snapshot-store.js +96 -0
  158. package/dist/store/context-snapshot-store.js.map +1 -0
  159. package/dist/store/filesystem-run-store.d.ts +3 -0
  160. package/dist/store/filesystem-run-store.d.ts.map +1 -1
  161. package/dist/store/filesystem-run-store.js +13 -1
  162. package/dist/store/filesystem-run-store.js.map +1 -1
  163. package/dist/store/index.d.ts +2 -0
  164. package/dist/store/index.d.ts.map +1 -1
  165. package/dist/store/index.js +2 -0
  166. package/dist/store/index.js.map +1 -1
  167. package/dist/store/run-event.d.ts +153 -7
  168. package/dist/store/run-event.d.ts.map +1 -1
  169. package/dist/store/session-index.d.ts +51 -0
  170. package/dist/store/session-index.d.ts.map +1 -0
  171. package/dist/store/session-index.js +163 -0
  172. package/dist/store/session-index.js.map +1 -0
  173. package/dist/workspace/git-baseline.d.ts +1 -0
  174. package/dist/workspace/git-baseline.d.ts.map +1 -1
  175. package/dist/workspace/git-baseline.js +2 -0
  176. package/dist/workspace/git-baseline.js.map +1 -1
  177. package/package.json +1 -1
@@ -0,0 +1,163 @@
1
+ // ─── Index builder ──────────────────────────────────────────────────────────
2
+ /**
3
+ * Build a session index from event logs across all runs.
4
+ *
5
+ * This is a derived index — it can always be rebuilt from the event log.
6
+ * If the index is corrupt or missing, it is rebuilt from scratch.
7
+ * Unknown sessions are NOT treated as released.
8
+ */
9
+ export const buildSessionIndex = async (store) => {
10
+ const entries = {};
11
+ let runCount = 0;
12
+ let eventCount = 0;
13
+ if (store.listRunIds === undefined) {
14
+ return { entries, rebuiltAt: new Date().toISOString(), runCount: 0, eventCount: 0 };
15
+ }
16
+ const runIds = await store.listRunIds();
17
+ runCount = runIds.length;
18
+ for (const runId of runIds) {
19
+ const events = await store.listEvents(runId);
20
+ eventCount += events.length;
21
+ processEvents(runId, events, entries);
22
+ }
23
+ return {
24
+ entries,
25
+ rebuiltAt: new Date().toISOString(),
26
+ runCount,
27
+ eventCount,
28
+ };
29
+ };
30
+ /**
31
+ * Rebuild the session index incrementally for a single run.
32
+ * Returns the updated entries for that run.
33
+ */
34
+ export const rebuildSessionIndexForRun = async (runId, store) => {
35
+ const events = await store.listEvents(runId);
36
+ const entries = {};
37
+ processEvents(runId, events, entries);
38
+ return Object.values(entries);
39
+ };
40
+ // ─── Event processing ───────────────────────────────────────────────────────
41
+ const processEvents = (runId, events, entries) => {
42
+ for (const event of events) {
43
+ const sessionId = readStringPayload(event.payload, "sessionId");
44
+ if (sessionId === undefined)
45
+ continue;
46
+ switch (event.type) {
47
+ case "session.created": {
48
+ const role = readRolePayload(event.payload);
49
+ if (role === undefined)
50
+ continue;
51
+ const taskId = readStringPayload(event.payload, "taskId");
52
+ const attempt = readNumberPayload(event.payload, "attempt");
53
+ const contextId = readStringPayload(event.payload, "contextId");
54
+ const leaseId = readStringPayload(event.payload, "leaseId");
55
+ const worktree = readStringPayload(event.payload, "worktree");
56
+ const phase = readStringPayload(event.payload, "phase");
57
+ entries[sessionId] = {
58
+ sessionId,
59
+ runId,
60
+ role,
61
+ state: "created",
62
+ taskId,
63
+ attempt,
64
+ contextId,
65
+ leaseId,
66
+ worktree,
67
+ phase,
68
+ createdAt: event.timestamp,
69
+ };
70
+ break;
71
+ }
72
+ case "session.released": {
73
+ const existing = entries[sessionId];
74
+ if (existing !== undefined) {
75
+ const reason = readStringPayload(event.payload, "reason");
76
+ entries[sessionId] = {
77
+ ...existing,
78
+ state: "released",
79
+ releasedAt: event.timestamp,
80
+ releaseReason: reason,
81
+ };
82
+ }
83
+ break;
84
+ }
85
+ case "session.safe-abandoned": {
86
+ const existing = entries[sessionId];
87
+ if (existing !== undefined) {
88
+ const reason = readStringPayload(event.payload, "reason");
89
+ entries[sessionId] = {
90
+ ...existing,
91
+ state: "released",
92
+ releasedAt: event.timestamp,
93
+ releaseReason: reason ?? "safe-abandoned",
94
+ };
95
+ }
96
+ break;
97
+ }
98
+ case "session.rebound": {
99
+ const existing = entries[sessionId];
100
+ if (existing !== undefined) {
101
+ const leaseId = readStringPayload(event.payload, "leaseId");
102
+ entries[sessionId] = {
103
+ ...existing,
104
+ state: "active",
105
+ leaseId: leaseId ?? existing.leaseId,
106
+ };
107
+ }
108
+ break;
109
+ }
110
+ case "session.late_result": {
111
+ // Late result events are diagnostic — they don't change session state
112
+ break;
113
+ }
114
+ default:
115
+ break;
116
+ }
117
+ }
118
+ };
119
+ // ─── Query helpers ──────────────────────────────────────────────────────────
120
+ /**
121
+ * Find orphaned sessions from the index.
122
+ * An orphaned session is one that was created but never released or abandoned.
123
+ */
124
+ export const findOrphanedSessions = (index) => {
125
+ return Object.values(index.entries).filter((entry) => entry.state === "created" || entry.state === "active");
126
+ };
127
+ /**
128
+ * Find sessions for a specific run.
129
+ */
130
+ export const findSessionsForRun = (index, runId) => {
131
+ return Object.values(index.entries).filter((entry) => entry.runId === runId);
132
+ };
133
+ // ─── Payload readers ────────────────────────────────────────────────────────
134
+ const readStringPayload = (payload, key) => {
135
+ if (typeof payload !== "object" || payload === null || Array.isArray(payload))
136
+ return undefined;
137
+ const record = payload;
138
+ const value = record[key];
139
+ return typeof value === "string" ? value : undefined;
140
+ };
141
+ const readNumberPayload = (payload, key) => {
142
+ if (typeof payload !== "object" || payload === null || Array.isArray(payload))
143
+ return undefined;
144
+ const record = payload;
145
+ const value = record[key];
146
+ return typeof value === "number" ? value : undefined;
147
+ };
148
+ const readRolePayload = (payload) => {
149
+ const role = readStringPayload(payload, "role");
150
+ switch (role) {
151
+ case "intake":
152
+ case "planner":
153
+ case "worker":
154
+ case "verifier":
155
+ case "acceptance":
156
+ case "failure-analyzer":
157
+ case "repair-worker":
158
+ return role;
159
+ default:
160
+ return undefined;
161
+ }
162
+ };
163
+ //# sourceMappingURL=session-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-index.js","sourceRoot":"","sources":["../../src/store/session-index.ts"],"names":[],"mappings":"AAmCA,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,KAAkD,EAC3B,EAAE;IACzB,MAAM,OAAO,GAAsC,EAAE,CAAA;IACrD,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;IACrF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;IACvC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAA;IAExB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAC5C,UAAU,IAAI,MAAM,CAAC,MAAM,CAAA;QAC3B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,OAAO;QACL,OAAO;QACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,QAAQ;QACR,UAAU;KACX,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,KAAY,EACZ,KAAmC,EACI,EAAE;IACzC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAsC,EAAE,CAAA;IACrD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC,CAAA;AAED,+EAA+E;AAE/E,MAAM,aAAa,GAAG,CACpB,KAAY,EACZ,MAA2B,EAC3B,OAA0C,EACpC,EAAE;IACR,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC/D,IAAI,SAAS,KAAK,SAAS;YAAE,SAAQ;QAErC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC3C,IAAI,IAAI,KAAK,SAAS;oBAAE,SAAQ;gBAChC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAuB,CAAA;gBAC/E,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;gBAC3D,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;gBAC/D,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;gBAC3D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;gBAC7D,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBAEvD,OAAO,CAAC,SAAS,CAAC,GAAG;oBACnB,SAAS;oBACT,KAAK;oBACL,IAAI;oBACJ,KAAK,EAAE,SAAS;oBAChB,MAAM;oBACN,OAAO;oBACP,SAAS;oBACT,OAAO;oBACP,QAAQ;oBACR,KAAK;oBACL,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC3B,CAAA;gBACD,MAAK;YACP,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;gBACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;oBACzD,OAAO,CAAC,SAAS,CAAC,GAAG;wBACnB,GAAG,QAAQ;wBACX,KAAK,EAAE,UAAU;wBACjB,UAAU,EAAE,KAAK,CAAC,SAAS;wBAC3B,aAAa,EAAE,MAAM;qBACtB,CAAA;gBACH,CAAC;gBACD,MAAK;YACP,CAAC;YACD,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;gBACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;oBACzD,OAAO,CAAC,SAAS,CAAC,GAAG;wBACnB,GAAG,QAAQ;wBACX,KAAK,EAAE,UAAU;wBACjB,UAAU,EAAE,KAAK,CAAC,SAAS;wBAC3B,aAAa,EAAE,MAAM,IAAI,gBAAgB;qBAC1C,CAAA;gBACH,CAAC;gBACD,MAAK;YACP,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;gBACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;oBAC3D,OAAO,CAAC,SAAS,CAAC,GAAG;wBACnB,GAAG,QAAQ;wBACX,KAAK,EAAE,QAAQ;wBACf,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,OAAO;qBACrC,CAAA;gBACH,CAAC;gBACD,MAAK;YACP,CAAC;YACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,sEAAsE;gBACtE,MAAK;YACP,CAAC;YACD;gBACE,MAAK;QACT,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAmB,EAAgC,EAAE;IACxF,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CACxC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CACjE,CAAA;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAmB,EACnB,KAAY,EACkB,EAAE;IAChC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;AAC9E,CAAC,CAAA;AAED,+EAA+E;AAE/E,MAAM,iBAAiB,GAAG,CAAC,OAA4B,EAAE,GAAW,EAAsB,EAAE;IAC1F,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/F,MAAM,MAAM,GAAG,OAA8C,CAAA;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,OAA4B,EAAE,GAAW,EAAsB,EAAE;IAC1F,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/F,MAAM,MAAM,GAAG,OAA8C,CAAA;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,OAA4B,EAAkC,EAAE;IACvF,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,kBAAkB,CAAC;QACxB,KAAK,eAAe;YAClB,OAAO,IAAI,CAAA;QACb;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC,CAAA"}
@@ -35,6 +35,7 @@ export declare const WorkspaceGitStateSchema: z.ZodUnion<readonly [z.ZodReadonly
35
35
  harnessChangedPaths: z.ZodReadonly<z.ZodArray<z.ZodString>>;
36
36
  }, z.core.$strip>>]>;
37
37
  export declare const RunWorkspaceSchema: z.ZodReadonly<z.ZodObject<{
38
+ repositoryId: z.ZodOptional<z.ZodString>;
38
39
  git: z.ZodUnion<readonly [z.ZodReadonly<z.ZodObject<{
39
40
  mode: z.ZodLiteral<"git">;
40
41
  headRef: z.ZodNullable<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"git-baseline.d.ts","sourceRoot":"","sources":["../../src/workspace/git-baseline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AASvB,eAAO,MAAM,uBAAuB;;;;;;;;kBAavB,CAAA;AAEb,eAAO,MAAM,0BAA0B;;;;;;;;kBAU1B,CAAA;AAEb,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;oBAGlC,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;kBAKlB,CAAA;AAEb,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC7E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,MACgB,CAAA;AAEtE,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,MACW,CAAA;AAE9D,eAAO,MAAM,yBAAyB,QAAO,YAU3C,CAAA"}
1
+ {"version":3,"file":"git-baseline.d.ts","sourceRoot":"","sources":["../../src/workspace/git-baseline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAUvB,eAAO,MAAM,uBAAuB;;;;;;;;kBAavB,CAAA;AAEb,eAAO,MAAM,0BAA0B;;;;;;;;kBAU1B,CAAA;AAEb,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;oBAGlC,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;kBAMlB,CAAA;AAEb,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC7E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,MACgB,CAAA;AAEtE,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,MACW,CAAA;AAE9D,eAAO,MAAM,yBAAyB,QAAO,YAU3C,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { z } from "zod";
3
+ import { RepositoryIdSchema } from "../domain/shared.js";
3
4
  import { WorkspaceRelativePathSchema } from "../path/workspace-path.js";
4
5
  const Sha256DigestSchema = z.string().regex(/^sha256:[a-f0-9]{64}$/);
5
6
  const ExecutionRootSchema = z.string().trim().min(1);
@@ -35,6 +36,7 @@ export const WorkspaceGitStateSchema = z.union([
35
36
  ]);
36
37
  export const RunWorkspaceSchema = z
37
38
  .object({
39
+ repositoryId: RepositoryIdSchema.optional(),
38
40
  git: WorkspaceGitStateSchema,
39
41
  executionRoot: ExecutionRootSchema.optional(),
40
42
  })
@@ -1 +1 @@
1
- {"version":3,"file":"git-baseline.js","sourceRoot":"","sources":["../../src/workspace/git-baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAA;AAEvE,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACpE,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAEpD,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAA;AAEpG,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,KAAK,CAAC,gBAAgB,CAAC;SACvB,QAAQ,EAAE;IACb,kBAAkB,EAAE,kBAAkB;IACtC,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;IAClE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;CACrE,CAAC;KACD,QAAQ,EAAE,CAAA;AAEb,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;IACjB,kBAAkB,EAAE,kBAAkB;IACtC,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;IAClE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;CACrE,CAAC;KACD,QAAQ,EAAE,CAAA;AAEb,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7C,uBAAuB;IACvB,0BAA0B;CAC3B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,GAAG,EAAE,uBAAuB;IAC5B,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,QAAQ,EAAE,CAAA;AAOb,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAU,EAAE,CAC7D,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;AAEtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAU,EAAE,CAC1D,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;AAE9D,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAiB,EAAE,CAAC,CAAC;IAC5D,GAAG,EAAE;QACH,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,kBAAkB,EAAE,qBAAqB,CAAC,EAAE,CAAC;QAC7C,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,EAAE;QACrB,YAAY,EAAE,KAAK;QACnB,mBAAmB,EAAE,EAAE;KACxB;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"git-baseline.js","sourceRoot":"","sources":["../../src/workspace/git-baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAA;AAEvE,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACpE,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAEpD,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAA;AAEpG,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,KAAK,CAAC,gBAAgB,CAAC;SACvB,QAAQ,EAAE;IACb,kBAAkB,EAAE,kBAAkB;IACtC,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;IAClE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;CACrE,CAAC;KACD,QAAQ,EAAE,CAAA;AAEb,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;IACjB,kBAAkB,EAAE,kBAAkB;IACtC,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;IAClE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;CACrE,CAAC;KACD,QAAQ,EAAE,CAAA;AAEb,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7C,uBAAuB;IACvB,0BAA0B;CAC3B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAC3C,GAAG,EAAE,uBAAuB;IAC5B,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,QAAQ,EAAE,CAAA;AAOb,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAU,EAAE,CAC7D,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;AAEtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAU,EAAE,CAC1D,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;AAE9D,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAiB,EAAE,CAAC,CAAC;IAC5D,GAAG,EAAE;QACH,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,kBAAkB,EAAE,qBAAqB,CAAC,EAAE,CAAC;QAC7C,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,EAAE;QACrB,YAAY,EAAE,KAAK;QACnB,mBAAmB,EAAE,EAAE;KACxB;CACF,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harness-engineering-agent",
3
- "version": "0.3.10",
3
+ "version": "0.3.12",
4
4
  "description": "Minimal OpenCode harness plugin package.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",