harness-engineering-agent 0.1.8 → 0.2.0

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 (268) hide show
  1. package/README.md +146 -60
  2. package/dist/agent/harness-agent-capabilities.d.ts +4 -0
  3. package/dist/agent/harness-agent-capabilities.d.ts.map +1 -0
  4. package/dist/agent/harness-agent-capabilities.js +4 -0
  5. package/dist/agent/harness-agent-capabilities.js.map +1 -0
  6. package/dist/agent/harness-agent-capability-builders.d.ts +11 -0
  7. package/dist/agent/harness-agent-capability-builders.d.ts.map +1 -0
  8. package/dist/agent/harness-agent-capability-builders.js +57 -0
  9. package/dist/agent/harness-agent-capability-builders.js.map +1 -0
  10. package/dist/agent/harness-agent-capability-data.d.ts +3 -0
  11. package/dist/agent/harness-agent-capability-data.d.ts.map +1 -0
  12. package/dist/agent/harness-agent-capability-data.js +23 -0
  13. package/dist/agent/harness-agent-capability-data.js.map +1 -0
  14. package/dist/agent/harness-agent-capability-types.d.ts +50 -0
  15. package/dist/agent/harness-agent-capability-types.d.ts.map +1 -0
  16. package/dist/agent/harness-agent-capability-types.js +3 -0
  17. package/dist/agent/harness-agent-capability-types.js.map +1 -0
  18. package/dist/agent/harness-role-capability-directory-data.d.ts +3 -0
  19. package/dist/agent/harness-role-capability-directory-data.d.ts.map +1 -0
  20. package/dist/agent/harness-role-capability-directory-data.js +208 -0
  21. package/dist/agent/harness-role-capability-directory-data.js.map +1 -0
  22. package/dist/agent/harness-role-capability-directory.d.ts +43 -0
  23. package/dist/agent/harness-role-capability-directory.d.ts.map +1 -0
  24. package/dist/agent/harness-role-capability-directory.js +57 -0
  25. package/dist/agent/harness-role-capability-directory.js.map +1 -0
  26. package/dist/agent/index.d.ts +7 -0
  27. package/dist/agent/index.d.ts.map +1 -0
  28. package/dist/agent/index.js +6 -0
  29. package/dist/agent/index.js.map +1 -0
  30. package/dist/config/config-defaults.d.ts +22 -0
  31. package/dist/config/config-defaults.d.ts.map +1 -1
  32. package/dist/config/config-defaults.js +22 -0
  33. package/dist/config/config-defaults.js.map +1 -1
  34. package/dist/config/config-merge.d.ts.map +1 -1
  35. package/dist/config/config-merge.js +30 -0
  36. package/dist/config/config-merge.js.map +1 -1
  37. package/dist/config/config-schema.d.ts +59 -0
  38. package/dist/config/config-schema.d.ts.map +1 -1
  39. package/dist/config/config-schema.js +18 -1
  40. package/dist/config/config-schema.js.map +1 -1
  41. package/dist/config/config-types.d.ts +5 -1
  42. package/dist/config/config-types.d.ts.map +1 -1
  43. package/dist/config/harness-config.d.ts +2 -1
  44. package/dist/config/harness-config.d.ts.map +1 -1
  45. package/dist/config/harness-config.js +1 -0
  46. package/dist/config/harness-config.js.map +1 -1
  47. package/dist/config/index.d.ts +1 -1
  48. package/dist/config/index.d.ts.map +1 -1
  49. package/dist/config/index.js.map +1 -1
  50. package/dist/config/opencode-compatibility.d.ts +37 -0
  51. package/dist/config/opencode-compatibility.d.ts.map +1 -0
  52. package/dist/config/opencode-compatibility.js +99 -0
  53. package/dist/config/opencode-compatibility.js.map +1 -0
  54. package/dist/controller/agent-output.d.ts +1 -1
  55. package/dist/controller/agent-output.d.ts.map +1 -1
  56. package/dist/controller/agent-output.js +18 -1
  57. package/dist/controller/agent-output.js.map +1 -1
  58. package/dist/controller/agent-session-types.d.ts +56 -0
  59. package/dist/controller/agent-session-types.d.ts.map +1 -0
  60. package/dist/controller/agent-session-types.js +2 -0
  61. package/dist/controller/agent-session-types.js.map +1 -0
  62. package/dist/controller/agent-session-utils.d.ts +52 -0
  63. package/dist/controller/agent-session-utils.d.ts.map +1 -0
  64. package/dist/controller/agent-session-utils.js +118 -0
  65. package/dist/controller/agent-session-utils.js.map +1 -0
  66. package/dist/controller/agent-session.d.ts +2 -55
  67. package/dist/controller/agent-session.d.ts.map +1 -1
  68. package/dist/controller/agent-session.js +82 -129
  69. package/dist/controller/agent-session.js.map +1 -1
  70. package/dist/controller/contracts.d.ts +3 -2
  71. package/dist/controller/contracts.d.ts.map +1 -1
  72. package/dist/controller/contracts.js.map +1 -1
  73. package/dist/controller/evidence-factory.js +7 -1
  74. package/dist/controller/evidence-factory.js.map +1 -1
  75. package/dist/controller/failure-analysis.d.ts +12 -0
  76. package/dist/controller/failure-analysis.d.ts.map +1 -1
  77. package/dist/controller/failure-analysis.js +41 -0
  78. package/dist/controller/failure-analysis.js.map +1 -1
  79. package/dist/controller/failure-analyzer-schemas.d.ts +87 -0
  80. package/dist/controller/failure-analyzer-schemas.d.ts.map +1 -0
  81. package/dist/controller/failure-analyzer-schemas.js +117 -0
  82. package/dist/controller/failure-analyzer-schemas.js.map +1 -0
  83. package/dist/controller/graph-validator.js +18 -4
  84. package/dist/controller/graph-validator.js.map +1 -1
  85. package/dist/controller/index.d.ts +7 -2
  86. package/dist/controller/index.d.ts.map +1 -1
  87. package/dist/controller/index.js +4 -1
  88. package/dist/controller/index.js.map +1 -1
  89. package/dist/controller/repair-loop.d.ts +1 -1
  90. package/dist/controller/repair-loop.d.ts.map +1 -1
  91. package/dist/controller/repair-loop.js +28 -0
  92. package/dist/controller/repair-loop.js.map +1 -1
  93. package/dist/controller/report-factory.d.ts.map +1 -1
  94. package/dist/controller/report-factory.js +49 -21
  95. package/dist/controller/report-factory.js.map +1 -1
  96. package/dist/controller/role-prompts.d.ts +2 -1
  97. package/dist/controller/role-prompts.d.ts.map +1 -1
  98. package/dist/controller/role-prompts.js +3 -9
  99. package/dist/controller/role-prompts.js.map +1 -1
  100. package/dist/controller/run-acceptance.d.ts +17 -0
  101. package/dist/controller/run-acceptance.d.ts.map +1 -0
  102. package/dist/controller/run-acceptance.js +179 -0
  103. package/dist/controller/run-acceptance.js.map +1 -0
  104. package/dist/controller/run-controller.d.ts.map +1 -1
  105. package/dist/controller/run-controller.js +244 -22
  106. package/dist/controller/run-controller.js.map +1 -1
  107. package/dist/controller/session-tool-authorization.d.ts +14 -0
  108. package/dist/controller/session-tool-authorization.d.ts.map +1 -0
  109. package/dist/controller/session-tool-authorization.js +88 -0
  110. package/dist/controller/session-tool-authorization.js.map +1 -0
  111. package/dist/controller/task-agent-output.d.ts +13 -2
  112. package/dist/controller/task-agent-output.d.ts.map +1 -1
  113. package/dist/controller/task-agent-output.js +58 -1
  114. package/dist/controller/task-agent-output.js.map +1 -1
  115. package/dist/controller/task-agent-schemas.d.ts +745 -26
  116. package/dist/controller/task-agent-schemas.d.ts.map +1 -1
  117. package/dist/controller/task-agent-schemas.js +70 -21
  118. package/dist/controller/task-agent-schemas.js.map +1 -1
  119. package/dist/controller/task-executor.d.ts +1 -1
  120. package/dist/controller/task-executor.d.ts.map +1 -1
  121. package/dist/controller/task-executor.js +269 -105
  122. package/dist/controller/task-executor.js.map +1 -1
  123. package/dist/doctor/cli.d.ts +3 -0
  124. package/dist/doctor/cli.d.ts.map +1 -0
  125. package/dist/doctor/cli.js +10 -0
  126. package/dist/doctor/cli.js.map +1 -0
  127. package/dist/doctor/index.d.ts +7 -0
  128. package/dist/doctor/index.d.ts.map +1 -0
  129. package/dist/doctor/index.js +16 -0
  130. package/dist/doctor/index.js.map +1 -0
  131. package/dist/doctor/local-mcp-probe.d.ts +3 -0
  132. package/dist/doctor/local-mcp-probe.d.ts.map +1 -0
  133. package/dist/doctor/local-mcp-probe.js +151 -0
  134. package/dist/doctor/local-mcp-probe.js.map +1 -0
  135. package/dist/doctor/opencode-config.d.ts +43 -0
  136. package/dist/doctor/opencode-config.d.ts.map +1 -0
  137. package/dist/doctor/opencode-config.js +103 -0
  138. package/dist/doctor/opencode-config.js.map +1 -0
  139. package/dist/doctor/run-harness-doctor.d.ts +23 -0
  140. package/dist/doctor/run-harness-doctor.d.ts.map +1 -0
  141. package/dist/doctor/run-harness-doctor.js +176 -0
  142. package/dist/doctor/run-harness-doctor.js.map +1 -0
  143. package/dist/doctor/types.d.ts +69 -0
  144. package/dist/doctor/types.d.ts.map +1 -0
  145. package/dist/doctor/types.js +8 -0
  146. package/dist/doctor/types.js.map +1 -0
  147. package/dist/domain/acceptance-criteria.d.ts +9 -0
  148. package/dist/domain/acceptance-criteria.d.ts.map +1 -0
  149. package/dist/domain/acceptance-criteria.js +38 -0
  150. package/dist/domain/acceptance-criteria.js.map +1 -0
  151. package/dist/domain/context-package.d.ts +43 -0
  152. package/dist/domain/context-package.d.ts.map +1 -0
  153. package/dist/domain/context-package.js +54 -0
  154. package/dist/domain/context-package.js.map +1 -0
  155. package/dist/domain/evidence.d.ts +1 -0
  156. package/dist/domain/evidence.d.ts.map +1 -1
  157. package/dist/domain/evidence.js +1 -2
  158. package/dist/domain/evidence.js.map +1 -1
  159. package/dist/domain/index.d.ts +14 -4
  160. package/dist/domain/index.d.ts.map +1 -1
  161. package/dist/domain/index.js +7 -2
  162. package/dist/domain/index.js.map +1 -1
  163. package/dist/domain/plan-artifacts.d.ts +170 -0
  164. package/dist/domain/plan-artifacts.d.ts.map +1 -0
  165. package/dist/domain/plan-artifacts.js +187 -0
  166. package/dist/domain/plan-artifacts.js.map +1 -0
  167. package/dist/domain/project-context.d.ts +10 -0
  168. package/dist/domain/project-context.d.ts.map +1 -0
  169. package/dist/domain/project-context.js +11 -0
  170. package/dist/domain/project-context.js.map +1 -0
  171. package/dist/domain/report.d.ts +608 -11
  172. package/dist/domain/report.d.ts.map +1 -1
  173. package/dist/domain/report.js +6 -4
  174. package/dist/domain/report.js.map +1 -1
  175. package/dist/domain/requirement.d.ts +22 -2
  176. package/dist/domain/requirement.d.ts.map +1 -1
  177. package/dist/domain/requirement.js +26 -3
  178. package/dist/domain/requirement.js.map +1 -1
  179. package/dist/domain/run-acceptance.d.ts +33 -0
  180. package/dist/domain/run-acceptance.d.ts.map +1 -0
  181. package/dist/domain/run-acceptance.js +29 -0
  182. package/dist/domain/run-acceptance.js.map +1 -0
  183. package/dist/domain/run.d.ts +596 -7
  184. package/dist/domain/run.d.ts.map +1 -1
  185. package/dist/domain/run.js +58 -0
  186. package/dist/domain/run.js.map +1 -1
  187. package/dist/domain/shared.d.ts +40 -2
  188. package/dist/domain/shared.d.ts.map +1 -1
  189. package/dist/domain/shared.js +26 -0
  190. package/dist/domain/shared.js.map +1 -1
  191. package/dist/domain/task-review.d.ts +57 -0
  192. package/dist/domain/task-review.d.ts.map +1 -0
  193. package/dist/domain/task-review.js +63 -0
  194. package/dist/domain/task-review.js.map +1 -0
  195. package/dist/domain/task.d.ts +24 -2
  196. package/dist/domain/task.d.ts.map +1 -1
  197. package/dist/domain/task.js +20 -12
  198. package/dist/domain/task.js.map +1 -1
  199. package/dist/index.d.ts +5 -0
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +5 -0
  202. package/dist/index.js.map +1 -1
  203. package/dist/plugin/create-harness-plugin.d.ts +4 -28
  204. package/dist/plugin/create-harness-plugin.d.ts.map +1 -1
  205. package/dist/plugin/create-harness-plugin.js +33 -166
  206. package/dist/plugin/create-harness-plugin.js.map +1 -1
  207. package/dist/plugin/harness-agent-config.d.ts +7 -0
  208. package/dist/plugin/harness-agent-config.d.ts.map +1 -1
  209. package/dist/plugin/harness-agent-config.js +72 -118
  210. package/dist/plugin/harness-agent-config.js.map +1 -1
  211. package/dist/plugin/harness-chat-protocol.d.ts.map +1 -1
  212. package/dist/plugin/harness-chat-protocol.js +29 -6
  213. package/dist/plugin/harness-chat-protocol.js.map +1 -1
  214. package/dist/plugin/harness-plugin-identifiers.d.ts +5 -0
  215. package/dist/plugin/harness-plugin-identifiers.d.ts.map +1 -0
  216. package/dist/plugin/harness-plugin-identifiers.js +24 -0
  217. package/dist/plugin/harness-plugin-identifiers.js.map +1 -0
  218. package/dist/plugin/harness-plugin-runtime.d.ts +64 -0
  219. package/dist/plugin/harness-plugin-runtime.d.ts.map +1 -0
  220. package/dist/plugin/harness-plugin-runtime.js +125 -0
  221. package/dist/plugin/harness-plugin-runtime.js.map +1 -0
  222. package/dist/plugin/harness-plugin-scheduler.d.ts +16 -0
  223. package/dist/plugin/harness-plugin-scheduler.d.ts.map +1 -0
  224. package/dist/plugin/harness-plugin-scheduler.js +51 -0
  225. package/dist/plugin/harness-plugin-scheduler.js.map +1 -0
  226. package/dist/plugin/harness-requirement.d.ts +1 -1
  227. package/dist/plugin/harness-requirement.d.ts.map +1 -1
  228. package/dist/plugin/harness-requirement.js +2 -3
  229. package/dist/plugin/harness-requirement.js.map +1 -1
  230. package/dist/session/contracts.d.ts +9 -0
  231. package/dist/session/contracts.d.ts.map +1 -1
  232. package/dist/session/contracts.js.map +1 -1
  233. package/dist/session/fake-session-adapter.d.ts.map +1 -1
  234. package/dist/session/fake-session-adapter.js +1 -0
  235. package/dist/session/fake-session-adapter.js.map +1 -1
  236. package/dist/session/index.d.ts +1 -1
  237. package/dist/session/index.d.ts.map +1 -1
  238. package/dist/session/index.js.map +1 -1
  239. package/dist/session/opencode-session-adapter.d.ts +2 -1
  240. package/dist/session/opencode-session-adapter.d.ts.map +1 -1
  241. package/dist/session/opencode-session-adapter.js +7 -2
  242. package/dist/session/opencode-session-adapter.js.map +1 -1
  243. package/dist/session/opencode-session-prompts.d.ts +2 -10
  244. package/dist/session/opencode-session-prompts.d.ts.map +1 -1
  245. package/dist/session/opencode-session-prompts.js +7 -9
  246. package/dist/session/opencode-session-prompts.js.map +1 -1
  247. package/dist/store/run-event.d.ts +596 -7
  248. package/dist/store/run-event.d.ts.map +1 -1
  249. package/dist/tools/harness-research-tools.d.ts +22 -0
  250. package/dist/tools/harness-research-tools.d.ts.map +1 -1
  251. package/dist/tools/harness-research-tools.js +173 -64
  252. package/dist/tools/harness-research-tools.js.map +1 -1
  253. package/dist/tools/harness-tool-capabilities.d.ts +342 -0
  254. package/dist/tools/harness-tool-capabilities.d.ts.map +1 -0
  255. package/dist/tools/harness-tool-capabilities.js +170 -0
  256. package/dist/tools/harness-tool-capabilities.js.map +1 -0
  257. package/dist/verification/command-policy.d.ts.map +1 -1
  258. package/dist/verification/command-policy.js +2 -2
  259. package/dist/verification/command-policy.js.map +1 -1
  260. package/dist/workspace/collect-project-context.d.ts +3 -0
  261. package/dist/workspace/collect-project-context.d.ts.map +1 -0
  262. package/dist/workspace/collect-project-context.js +92 -0
  263. package/dist/workspace/collect-project-context.js.map +1 -0
  264. package/dist/workspace/index.d.ts +1 -0
  265. package/dist/workspace/index.d.ts.map +1 -1
  266. package/dist/workspace/index.js +1 -0
  267. package/dist/workspace/index.js.map +1 -1
  268. package/package.json +6 -1
@@ -0,0 +1,52 @@
1
+ import type { RunId } from "../domain/index.js";
2
+ import type { HarnessSessionRole, SessionAdapter, SessionEvidenceReference, SessionOutputContract, SessionPromptInput } from "../session/index.js";
3
+ import type { RunEvent, RunStore } from "../store/index.js";
4
+ import type { ControllerIdSource } from "./contracts.js";
5
+ export type ActiveSession = {
6
+ readonly sessionId: string;
7
+ readonly timeoutId?: ReturnType<typeof setTimeout>;
8
+ };
9
+ export declare const createPromptInput: (request: {
10
+ readonly brief: string;
11
+ readonly constraints: readonly string[];
12
+ readonly evidence: readonly SessionEvidenceReference[];
13
+ readonly outputContract: SessionOutputContract;
14
+ }) => SessionPromptInput;
15
+ export declare const appendSessionEvent: (input: {
16
+ readonly runId: RunId;
17
+ readonly type: string;
18
+ readonly sessionId: string;
19
+ readonly payload: RunEvent["payload"];
20
+ readonly store: RunStore;
21
+ readonly ids: ControllerIdSource;
22
+ }) => Promise<void>;
23
+ export declare const releaseActiveSession: (input: {
24
+ readonly activeSessions: Map<RunId, Map<string, ActiveSession>>;
25
+ readonly runId: RunId;
26
+ readonly sessionId: string;
27
+ readonly reason: string;
28
+ readonly sessionAdapter: SessionAdapter;
29
+ }) => Promise<void>;
30
+ export declare const requireOrphanSession: (input: {
31
+ readonly runId: RunId;
32
+ readonly sessionId: string;
33
+ readonly listOrphanSessions: () => Promise<readonly OrphanSession[]>;
34
+ }) => Promise<OrphanSession>;
35
+ export type OrphanSession = {
36
+ readonly runId: RunId;
37
+ readonly sessionId: string;
38
+ readonly role: HarnessSessionRole;
39
+ readonly state: "created" | "rebound";
40
+ };
41
+ export declare const listOrphanSessions: (input: {
42
+ readonly store: RunStore;
43
+ }) => Promise<readonly OrphanSession[]>;
44
+ export declare const createTimeout: (input: {
45
+ readonly runId: RunId;
46
+ readonly sessionId: string;
47
+ readonly timeoutMs: number | undefined;
48
+ readonly sessionAdapter: SessionAdapter;
49
+ readonly activeSessions: Map<RunId, Map<string, ActiveSession>>;
50
+ readonly releaseReason: string;
51
+ }) => ReturnType<typeof setTimeout> | undefined;
52
+ //# sourceMappingURL=agent-session-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session-utils.d.ts","sourceRoot":"","sources":["../../src/controller/agent-session-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ export const createPromptInput = (request) => ({
2
+ brief: request.brief,
3
+ constraints: request.constraints,
4
+ evidence: request.evidence,
5
+ outputContract: request.outputContract,
6
+ ...(Reflect.get(request, "executionCategory") === undefined
7
+ ? {}
8
+ : { executionCategory: Reflect.get(request, "executionCategory") }),
9
+ ...(Reflect.get(request, "profileOverride") === undefined ||
10
+ typeof Reflect.get(request, "profileOverride") !== "object" ||
11
+ Reflect.get(Reflect.get(request, "profileOverride"), "skill") === undefined
12
+ ? {}
13
+ : {
14
+ skill: Reflect.get(Reflect.get(request, "profileOverride"), "skill"),
15
+ }),
16
+ ...(Reflect.get(request, "allowedPaths") === undefined
17
+ ? {}
18
+ : { allowedPaths: Reflect.get(request, "allowedPaths") }),
19
+ });
20
+ export const appendSessionEvent = async (input) => {
21
+ await input.store.appendEvents(input.runId, [
22
+ {
23
+ schemaVersion: "1.0.0",
24
+ eventId: input.ids.createEventId(`${input.type}-${input.runId}-${input.sessionId}`),
25
+ idempotencyKey: input.ids.createEventId(`session-${input.type}-${input.runId}-${input.sessionId}`),
26
+ runId: input.runId,
27
+ type: input.type,
28
+ timestamp: new Date().toISOString(),
29
+ payload: input.payload,
30
+ },
31
+ ]);
32
+ };
33
+ export const releaseActiveSession = async (input) => {
34
+ const sessions = input.activeSessions.get(input.runId);
35
+ const activeSession = sessions?.get(input.sessionId);
36
+ if (activeSession === undefined)
37
+ return;
38
+ if (activeSession.timeoutId !== undefined)
39
+ clearTimeout(activeSession.timeoutId);
40
+ sessions?.delete(input.sessionId);
41
+ if (sessions?.size === 0)
42
+ input.activeSessions.delete(input.runId);
43
+ await input.sessionAdapter.release({ sessionId: activeSession.sessionId, reason: input.reason });
44
+ };
45
+ export const requireOrphanSession = async (input) => {
46
+ const orphanSession = (await input.listOrphanSessions()).find((candidate) => candidate.runId === input.runId && candidate.sessionId === input.sessionId);
47
+ if (orphanSession === undefined) {
48
+ throw new TypeError(`orphan session ${input.sessionId} for run ${input.runId} does not exist`);
49
+ }
50
+ return orphanSession;
51
+ };
52
+ export const listOrphanSessions = async (input) => {
53
+ if (input.store.listRunIds === undefined)
54
+ return [];
55
+ const orphanSessions = [];
56
+ for (const runId of await input.store.listRunIds()) {
57
+ const events = await input.store.listEvents(runId);
58
+ const sessions = new Map();
59
+ for (const event of events) {
60
+ const sessionId = readStringPayload(event.payload, "sessionId");
61
+ if (sessionId === undefined)
62
+ continue;
63
+ if (event.type === "session.created") {
64
+ const role = readRolePayload(event.payload);
65
+ if (role !== undefined)
66
+ sessions.set(sessionId, { runId, sessionId, role, state: "created" });
67
+ }
68
+ else if (event.type === "session.released" || event.type === "session.safe-abandoned") {
69
+ sessions.delete(sessionId);
70
+ }
71
+ else if (event.type === "session.rebound") {
72
+ const current = sessions.get(sessionId);
73
+ if (current !== undefined)
74
+ sessions.set(sessionId, { ...current, state: "rebound" });
75
+ }
76
+ }
77
+ orphanSessions.push(...sessions.values());
78
+ }
79
+ return orphanSessions;
80
+ };
81
+ export const createTimeout = (input) => {
82
+ if (input.timeoutMs === undefined)
83
+ return undefined;
84
+ return setTimeout(() => {
85
+ void input.sessionAdapter
86
+ .abort({ sessionId: input.sessionId, reason: "timeout" })
87
+ .catch(() => undefined);
88
+ void releaseActiveSession({
89
+ activeSessions: input.activeSessions,
90
+ runId: input.runId,
91
+ sessionId: input.sessionId,
92
+ reason: input.releaseReason,
93
+ sessionAdapter: input.sessionAdapter,
94
+ });
95
+ }, input.timeoutMs);
96
+ };
97
+ const readStringPayload = (payload, key) => {
98
+ if (typeof payload !== "object" || payload === null || Array.isArray(payload))
99
+ return undefined;
100
+ const value = Reflect.get(payload, key);
101
+ return typeof value === "string" ? value : undefined;
102
+ };
103
+ const readRolePayload = (payload) => {
104
+ const role = readStringPayload(payload, "role");
105
+ switch (role) {
106
+ case "intake":
107
+ case "planner":
108
+ case "worker":
109
+ case "verifier":
110
+ case "acceptance":
111
+ case "failure-analyzer":
112
+ case "repair-worker":
113
+ return role;
114
+ default:
115
+ return undefined;
116
+ }
117
+ };
118
+ //# sourceMappingURL=agent-session-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session-utils.js","sourceRoot":"","sources":["../../src/controller/agent-session-utils.ts"],"names":[],"mappings":"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"}
@@ -1,60 +1,7 @@
1
- import type { RunId } from "../domain/index.js";
2
- import type { HarnessSessionRole, SessionAdapter, SessionEvidenceReference, SessionOutputContract } from "../session/index.js";
1
+ import type { SessionAdapter } from "../session/index.js";
3
2
  import type { RunStore } from "../store/index.js";
3
+ import type { AgentSessionRuntime } from "./agent-session-types.js";
4
4
  import type { ControllerIdSource } from "./contracts.js";
5
- export type SendAgentInput = {
6
- readonly runId: RunId;
7
- readonly role: HarnessSessionRole;
8
- readonly title: string;
9
- readonly brief: string;
10
- readonly constraints: readonly string[];
11
- readonly evidence: readonly SessionEvidenceReference[];
12
- readonly outputContract: SessionOutputContract;
13
- readonly messageLabel: string;
14
- readonly systemPrompt?: string;
15
- readonly timeoutMs?: number;
16
- readonly parentSessionId?: string;
17
- readonly workingDirectory?: string;
18
- };
19
- export type AgentSessionRuntime = {
20
- readonly sendAgent: (input: SendAgentInput) => Promise<string>;
21
- readonly abortActiveSession: (runId: RunId) => Promise<void>;
22
- readonly hasActiveSession: (runId: RunId) => boolean;
23
- readonly isCancelled: (runId: RunId) => boolean;
24
- readonly markCancelled: (runId: RunId) => void;
25
- readonly markPaused: (runId: RunId) => void;
26
- readonly clearInterruption: (runId: RunId) => void;
27
- readonly listOrphanSessions: () => Promise<readonly OrphanSession[]>;
28
- readonly rebindSession: (input: RebindSessionInput) => Promise<void>;
29
- readonly safeAbandonSession: (input: AbandonSessionInput) => Promise<void>;
30
- readonly reconcileOrphanSessions: (input: {
31
- readonly runId: RunId;
32
- readonly actorId: string;
33
- }) => Promise<OrphanReconciliation>;
34
- };
35
- export type OrphanReconciliation = {
36
- readonly kind: "none";
37
- } | {
38
- readonly kind: "rebound";
39
- readonly sessionIds: readonly string[];
40
- } | {
41
- readonly kind: "abandoned";
42
- readonly sessionIds: readonly string[];
43
- };
44
- export type OrphanSession = {
45
- readonly runId: RunId;
46
- readonly sessionId: string;
47
- readonly role: HarnessSessionRole;
48
- readonly state: "created" | "rebound";
49
- };
50
- export type RebindSessionInput = {
51
- readonly runId: RunId;
52
- readonly sessionId: string;
53
- readonly actorId: string;
54
- };
55
- export type AbandonSessionInput = RebindSessionInput & {
56
- readonly reason: string;
57
- };
58
5
  export declare const createAgentSessionRuntime: (input: {
59
6
  readonly sessionAdapter: SessionAdapter;
60
7
  readonly ids: ControllerIdSource;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/controller/agent-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/controller/agent-session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,KAAK,EAEV,mBAAmB,EAIpB,MAAM,0BAA0B,CAAA;AAUjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAIxD,eAAO,MAAM,yBAAyB,GAAI,OAAO;IAC/C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;IACvC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;IACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAClC,KAAG,mBAoOH,CAAA"}
@@ -1,4 +1,6 @@
1
+ import { buildSessionToolAllowlist } from "../agent/index.js";
1
2
  import { readAgentOutput } from "./agent-output.js";
3
+ import { appendSessionEvent, createPromptInput, createTimeout, listOrphanSessions, releaseActiveSession, requireOrphanSession, } from "./agent-session-utils.js";
2
4
  import { RunCancellationError, RunPausedError } from "./errors.js";
3
5
  import { roleSystemPrompt } from "./role-prompts.js";
4
6
  export const createAgentSessionRuntime = (input) => {
@@ -15,94 +17,11 @@ export const createAgentSessionRuntime = (input) => {
15
17
  return;
16
18
  }
17
19
  };
18
- const createPromptInput = (request) => ({
19
- brief: request.brief,
20
- constraints: request.constraints,
21
- evidence: request.evidence,
22
- outputContract: request.outputContract,
23
- });
24
- const appendSessionEvent = async (runId, type, sessionId, payload) => {
25
- await input.store.appendEvents(runId, [
26
- {
27
- schemaVersion: "1.0.0",
28
- eventId: input.ids.createEventId(`${type}-${runId}-${sessionId}`),
29
- idempotencyKey: input.ids.createEventId(`session-${type}-${runId}-${sessionId}`),
30
- runId,
31
- type,
32
- timestamp: new Date().toISOString(),
33
- payload,
34
- },
35
- ]);
36
- };
37
20
  const setActiveSession = (runId, session) => {
38
21
  const sessions = activeSessions.get(runId) ?? new Map();
39
22
  sessions.set(session.sessionId, session);
40
23
  activeSessions.set(runId, sessions);
41
24
  };
42
- const releaseActiveSession = async (runId, sessionId, reason) => {
43
- const sessions = activeSessions.get(runId);
44
- const activeSession = sessions?.get(sessionId);
45
- if (activeSession === undefined) {
46
- return;
47
- }
48
- if (activeSession.timeoutId !== undefined) {
49
- clearTimeout(activeSession.timeoutId);
50
- }
51
- sessions?.delete(sessionId);
52
- if (sessions?.size === 0) {
53
- activeSessions.delete(runId);
54
- }
55
- await input.sessionAdapter.release({ sessionId: activeSession.sessionId, reason });
56
- };
57
- const requireOrphanSession = async (runId, sessionId) => {
58
- const orphanSession = (await listOrphanSessions()).find((candidate) => candidate.runId === runId && candidate.sessionId === sessionId);
59
- if (orphanSession === undefined) {
60
- throw new TypeError(`orphan session ${sessionId} for run ${runId} does not exist`);
61
- }
62
- return orphanSession;
63
- };
64
- const listOrphanSessions = async () => {
65
- if (input.store.listRunIds === undefined) {
66
- return [];
67
- }
68
- const orphanSessions = [];
69
- for (const runId of await input.store.listRunIds()) {
70
- const events = await input.store.listEvents(runId);
71
- const sessions = new Map();
72
- for (const event of events) {
73
- const sessionId = readStringPayload(event.payload, "sessionId");
74
- if (sessionId === undefined) {
75
- continue;
76
- }
77
- if (event.type === "session.created") {
78
- const role = readRolePayload(event.payload);
79
- if (role !== undefined) {
80
- sessions.set(sessionId, { runId, sessionId, role, state: "created" });
81
- }
82
- }
83
- else if (event.type === "session.released" || event.type === "session.safe-abandoned") {
84
- sessions.delete(sessionId);
85
- }
86
- else if (event.type === "session.rebound") {
87
- const current = sessions.get(sessionId);
88
- if (current !== undefined) {
89
- sessions.set(sessionId, { ...current, state: "rebound" });
90
- }
91
- }
92
- }
93
- orphanSessions.push(...sessions.values());
94
- }
95
- return orphanSessions;
96
- };
97
- const createTimeout = (runId, sessionId, timeoutMs) => {
98
- if (timeoutMs === undefined) {
99
- return undefined;
100
- }
101
- return setTimeout(() => {
102
- void input.sessionAdapter.abort({ sessionId, reason: "timeout" }).catch(() => undefined);
103
- void releaseActiveSession(runId, sessionId, "timeout");
104
- }, timeoutMs);
105
- };
106
25
  return {
107
26
  async sendAgent(request) {
108
27
  throwIfCancelled(request.runId);
@@ -116,31 +35,57 @@ export const createAgentSessionRuntime = (input) => {
116
35
  promptInput: createPromptInput(request),
117
36
  ...(request.timeoutMs === undefined ? {} : { timeoutMs: request.timeoutMs }),
118
37
  });
119
- const timeoutId = createTimeout(request.runId, session.session.sessionId, request.timeoutMs);
38
+ const timeoutId = createTimeout({
39
+ runId: request.runId,
40
+ sessionId: session.session.sessionId,
41
+ timeoutMs: request.timeoutMs,
42
+ sessionAdapter: input.sessionAdapter,
43
+ activeSessions,
44
+ releaseReason: "timeout",
45
+ });
120
46
  setActiveSession(request.runId, timeoutId === undefined
121
47
  ? { sessionId: session.session.sessionId }
122
48
  : { sessionId: session.session.sessionId, timeoutId });
123
- await appendSessionEvent(request.runId, "session.created", session.session.sessionId, {
49
+ await appendSessionEvent({
50
+ runId: request.runId,
51
+ type: "session.created",
124
52
  sessionId: session.session.sessionId,
125
- role: request.role,
53
+ payload: { sessionId: session.session.sessionId, role: request.role },
54
+ store: input.store,
55
+ ids: input.ids,
126
56
  });
127
57
  try {
58
+ const tools = buildSessionToolAllowlist(request.role);
128
59
  const result = await input.sessionAdapter.send({
129
60
  sessionId: session.session.sessionId,
130
61
  messageId: input.ids.createMessageId(request.messageLabel),
131
62
  prompt: request.brief,
132
63
  promptInput: createPromptInput(request),
64
+ ...(request.profileOverride === undefined
65
+ ? {}
66
+ : { profileOverride: request.profileOverride }),
133
67
  systemPrompt: request.systemPrompt ?? roleSystemPrompt(request.role),
68
+ ...(tools === undefined ? {} : { tools }),
134
69
  });
135
70
  throwIfCancelled(request.runId);
136
71
  return readAgentOutput(result);
137
72
  }
138
73
  finally {
139
- await appendSessionEvent(request.runId, "session.released", session.session.sessionId, {
74
+ await appendSessionEvent({
75
+ runId: request.runId,
76
+ type: "session.released",
77
+ sessionId: session.session.sessionId,
78
+ payload: { sessionId: session.session.sessionId, reason: "completed" },
79
+ store: input.store,
80
+ ids: input.ids,
81
+ });
82
+ await releaseActiveSession({
83
+ activeSessions,
84
+ runId: request.runId,
140
85
  sessionId: session.session.sessionId,
141
86
  reason: "completed",
87
+ sessionAdapter: input.sessionAdapter,
142
88
  });
143
- await releaseActiveSession(request.runId, session.session.sessionId, "completed");
144
89
  }
145
90
  },
146
91
  async abortActiveSession(runId) {
@@ -151,7 +96,13 @@ export const createAgentSessionRuntime = (input) => {
151
96
  sessionId: activeSession.sessionId,
152
97
  reason: "controller",
153
98
  });
154
- await releaseActiveSession(runId, activeSession.sessionId, "controller");
99
+ await releaseActiveSession({
100
+ activeSessions,
101
+ runId,
102
+ sessionId: activeSession.sessionId,
103
+ reason: "controller",
104
+ sessionAdapter: input.sessionAdapter,
105
+ });
155
106
  }
156
107
  }
157
108
  },
@@ -171,53 +122,74 @@ export const createAgentSessionRuntime = (input) => {
171
122
  interruptedRuns.delete(runId);
172
123
  },
173
124
  async listOrphanSessions() {
174
- return listOrphanSessions();
125
+ return listOrphanSessions({ store: input.store });
175
126
  },
176
127
  async rebindSession(session) {
177
- const orphanSession = await requireOrphanSession(session.runId, session.sessionId);
128
+ const orphanSession = await requireOrphanSession({
129
+ runId: session.runId,
130
+ sessionId: session.sessionId,
131
+ listOrphanSessions: () => listOrphanSessions({ store: input.store }),
132
+ });
178
133
  const snapshot = input.sessionAdapter.getSession(session.sessionId);
179
134
  if (snapshot === undefined || snapshot.role !== orphanSession.role) {
180
135
  throw new TypeError(`session ${session.sessionId} is not available for rebind`);
181
136
  }
182
137
  setActiveSession(session.runId, { sessionId: session.sessionId });
183
- await appendSessionEvent(session.runId, "session.rebound", session.sessionId, {
138
+ await appendSessionEvent({
139
+ runId: session.runId,
140
+ type: "session.rebound",
184
141
  sessionId: session.sessionId,
185
- actorId: session.actorId,
142
+ payload: { sessionId: session.sessionId, actorId: session.actorId },
143
+ store: input.store,
144
+ ids: input.ids,
186
145
  });
187
146
  },
188
147
  async safeAbandonSession(session) {
189
- await requireOrphanSession(session.runId, session.sessionId);
148
+ await requireOrphanSession({
149
+ runId: session.runId,
150
+ sessionId: session.sessionId,
151
+ listOrphanSessions: () => listOrphanSessions({ store: input.store }),
152
+ });
190
153
  const sessions = activeSessions.get(session.runId);
191
154
  if (sessions?.has(session.sessionId) === true) {
192
155
  sessions.delete(session.sessionId);
193
- if (sessions.size === 0) {
156
+ if (sessions.size === 0)
194
157
  activeSessions.delete(session.runId);
195
- }
196
158
  }
197
159
  await input.sessionAdapter.release({
198
160
  sessionId: session.sessionId,
199
161
  reason: `safe-abandon:${session.reason}`,
200
162
  });
201
- await appendSessionEvent(session.runId, "session.safe-abandoned", session.sessionId, {
163
+ await appendSessionEvent({
164
+ runId: session.runId,
165
+ type: "session.safe-abandoned",
202
166
  sessionId: session.sessionId,
203
- actorId: session.actorId,
204
- reason: session.reason,
167
+ payload: {
168
+ sessionId: session.sessionId,
169
+ actorId: session.actorId,
170
+ reason: session.reason,
171
+ },
172
+ store: input.store,
173
+ ids: input.ids,
205
174
  });
206
175
  },
207
176
  async reconcileOrphanSessions(request) {
208
- const orphanSessions = (await listOrphanSessions()).filter((session) => session.runId === request.runId);
209
- if (orphanSessions.length === 0) {
177
+ const orphanSessions = (await listOrphanSessions({ store: input.store })).filter((session) => session.runId === request.runId);
178
+ if (orphanSessions.length === 0)
210
179
  return { kind: "none" };
211
- }
212
180
  const reboundSessionIds = [];
213
181
  const abandonedSessionIds = [];
214
182
  for (const orphanSession of orphanSessions) {
215
183
  const snapshot = input.sessionAdapter.getSession(orphanSession.sessionId);
216
184
  if (snapshot !== undefined && snapshot.role === orphanSession.role) {
217
185
  setActiveSession(request.runId, { sessionId: orphanSession.sessionId });
218
- await appendSessionEvent(request.runId, "session.rebound", orphanSession.sessionId, {
186
+ await appendSessionEvent({
187
+ runId: request.runId,
188
+ type: "session.rebound",
219
189
  sessionId: orphanSession.sessionId,
220
- actorId: request.actorId,
190
+ payload: { sessionId: orphanSession.sessionId, actorId: request.actorId },
191
+ store: input.store,
192
+ ids: input.ids,
221
193
  });
222
194
  reboundSessionIds.push(orphanSession.sessionId);
223
195
  continue;
@@ -227,10 +199,13 @@ export const createAgentSessionRuntime = (input) => {
227
199
  sessionId: orphanSession.sessionId,
228
200
  reason: `safe-abandon:${reason}`,
229
201
  });
230
- await appendSessionEvent(request.runId, "session.safe-abandoned", orphanSession.sessionId, {
202
+ await appendSessionEvent({
203
+ runId: request.runId,
204
+ type: "session.safe-abandoned",
231
205
  sessionId: orphanSession.sessionId,
232
- actorId: request.actorId,
233
- reason,
206
+ payload: { sessionId: orphanSession.sessionId, actorId: request.actorId, reason },
207
+ store: input.store,
208
+ ids: input.ids,
234
209
  });
235
210
  abandonedSessionIds.push(orphanSession.sessionId);
236
211
  }
@@ -240,26 +215,4 @@ export const createAgentSessionRuntime = (input) => {
240
215
  },
241
216
  };
242
217
  };
243
- const readStringPayload = (payload, key) => {
244
- if (typeof payload !== "object" || payload === null || Array.isArray(payload)) {
245
- return undefined;
246
- }
247
- const value = Reflect.get(payload, key);
248
- return typeof value === "string" ? value : undefined;
249
- };
250
- const readRolePayload = (payload) => {
251
- const role = readStringPayload(payload, "role");
252
- switch (role) {
253
- case "intake":
254
- case "planner":
255
- case "worker":
256
- case "verifier":
257
- case "acceptance":
258
- case "failure-analyzer":
259
- case "repair-worker":
260
- return role;
261
- default:
262
- return undefined;
263
- }
264
- };
265
218
  //# sourceMappingURL=agent-session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../src/controller/agent-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../src/controller/agent-session.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { Report, Requirement, Run, RunId } from "../domain/index.js";
1
+ import type { ExecutionCategoryProfiles } from "../config/index.js";
2
+ import type { Report, RequirementInput, Run, RunId } from "../domain/index.js";
2
3
  import type { SessionAdapter } from "../session/index.js";
3
4
  import type { RunStore } from "../store/index.js";
4
5
  import type { VerificationRunner } from "../verification/index.js";
@@ -14,7 +15,6 @@ export type ControllerIdSource = {
14
15
  readonly createFailureId: (label: string) => string;
15
16
  readonly createAgentResultId: (label: string) => string;
16
17
  };
17
- export type RequirementInput = Omit<Requirement, "schemaVersion">;
18
18
  export declare const RUN_BUDGET_KINDS: readonly ["intake", "planner", "task", "repair", "overall"];
19
19
  export type RunBudgetKind = (typeof RUN_BUDGET_KINDS)[number];
20
20
  export type RunActor = {
@@ -47,6 +47,7 @@ export type CreateRunControllerOptions = {
47
47
  readonly ids: ControllerIdSource;
48
48
  readonly workingDirectory: string;
49
49
  readonly maxRunAttempts: number;
50
+ readonly executionCategories?: ExecutionCategoryProfiles;
50
51
  readonly workspacePolicy?: WorkspacePolicy;
51
52
  readonly workspaceAdapter?: WorkspaceAdapter;
52
53
  readonly workspaceAdapterFactory?: (workingDirectory: string) => WorkspaceAdapter;