@nervekit/orchestrator 0.1.0 → 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 (271) hide show
  1. package/dist/domains/agents/run/agent-run-session.d.ts.map +1 -1
  2. package/dist/domains/agents/run/agent-run-session.js +25 -2
  3. package/dist/domains/agents/run/agent-run-session.js.map +1 -1
  4. package/dist/domains/agents/run/agent-runner.d.ts +12 -1
  5. package/dist/domains/agents/run/agent-runner.d.ts.map +1 -1
  6. package/dist/domains/agents/run/agent-runner.js +166 -1
  7. package/dist/domains/agents/run/agent-runner.js.map +1 -1
  8. package/dist/domains/agents/run/inline-command-results.d.ts +8 -0
  9. package/dist/domains/agents/run/inline-command-results.d.ts.map +1 -0
  10. package/dist/domains/agents/run/inline-command-results.js +109 -0
  11. package/dist/domains/agents/run/inline-command-results.js.map +1 -0
  12. package/dist/domains/tasks/task-manager-foreground.d.ts.map +1 -1
  13. package/dist/domains/tasks/task-manager-foreground.js +4 -1
  14. package/dist/domains/tasks/task-manager-foreground.js.map +1 -1
  15. package/dist/domains/tasks/task-manager.d.ts +2 -1
  16. package/dist/domains/tasks/task-manager.d.ts.map +1 -1
  17. package/dist/domains/tasks/task-manager.js.map +1 -1
  18. package/dist/domains/tasks/task-supervisor.d.ts.map +1 -1
  19. package/dist/domains/tasks/task-supervisor.js +12 -1
  20. package/dist/domains/tasks/task-supervisor.js.map +1 -1
  21. package/dist/domains/tools/orchestration-tool-dispatcher.d.ts.map +1 -1
  22. package/dist/domains/tools/orchestration-tool-dispatcher.js +2 -1
  23. package/dist/domains/tools/orchestration-tool-dispatcher.js.map +1 -1
  24. package/dist/domains/tools/tool-service.d.ts +2 -0
  25. package/dist/domains/tools/tool-service.d.ts.map +1 -1
  26. package/dist/domains/tools/tool-service.js.map +1 -1
  27. package/dist/registry.d.ts +11 -11
  28. package/dist/runtime/runtime-state.d.ts +2 -2
  29. package/dist/web/assets/{dist-DVpGQCt0.js → dist-BaA_eB0I.js} +1 -1
  30. package/dist/web/assets/{index-DFKLdj_D.css → index-C45Kmr75.css} +1 -1
  31. package/dist/web/assets/index-DHfIkEia.js +167 -0
  32. package/dist/web/index.html +2 -2
  33. package/dist/web/sw.js +1 -1
  34. package/package.json +4 -4
  35. package/dist/agent-process.d.ts +0 -32
  36. package/dist/agent-process.d.ts.map +0 -1
  37. package/dist/agent-process.js +0 -129
  38. package/dist/agent-process.js.map +0 -1
  39. package/dist/agent-runner/agent-runner.d.ts +0 -65
  40. package/dist/agent-runner/agent-runner.d.ts.map +0 -1
  41. package/dist/agent-runner/agent-runner.js +0 -802
  42. package/dist/agent-runner/agent-runner.js.map +0 -1
  43. package/dist/agent-runner/index.d.ts +0 -6
  44. package/dist/agent-runner/index.d.ts.map +0 -1
  45. package/dist/agent-runner/index.js +0 -4
  46. package/dist/agent-runner/index.js.map +0 -1
  47. package/dist/agent-runner/message-mirror.d.ts +0 -44
  48. package/dist/agent-runner/message-mirror.d.ts.map +0 -1
  49. package/dist/agent-runner/message-mirror.js +0 -154
  50. package/dist/agent-runner/message-mirror.js.map +0 -1
  51. package/dist/agent-runner/run-state.d.ts +0 -12
  52. package/dist/agent-runner/run-state.d.ts.map +0 -1
  53. package/dist/agent-runner/run-state.js +0 -2
  54. package/dist/agent-runner/run-state.js.map +0 -1
  55. package/dist/agent-runner/subagent-runner.d.ts +0 -29
  56. package/dist/agent-runner/subagent-runner.d.ts.map +0 -1
  57. package/dist/agent-runner/subagent-runner.js +0 -84
  58. package/dist/agent-runner/subagent-runner.js.map +0 -1
  59. package/dist/agent-runner/system-prompt-builder.d.ts +0 -19
  60. package/dist/agent-runner/system-prompt-builder.d.ts.map +0 -1
  61. package/dist/agent-runner/system-prompt-builder.js +0 -35
  62. package/dist/agent-runner/system-prompt-builder.js.map +0 -1
  63. package/dist/agent-runner/tool-draft-streaming.d.ts +0 -2
  64. package/dist/agent-runner/tool-draft-streaming.d.ts.map +0 -1
  65. package/dist/agent-runner/tool-draft-streaming.js +0 -5
  66. package/dist/agent-runner/tool-draft-streaming.js.map +0 -1
  67. package/dist/agent-suspension-service.d.ts +0 -44
  68. package/dist/agent-suspension-service.d.ts.map +0 -1
  69. package/dist/agent-suspension-service.js +0 -96
  70. package/dist/agent-suspension-service.js.map +0 -1
  71. package/dist/agent-tool-adapter.d.ts +0 -20
  72. package/dist/agent-tool-adapter.d.ts.map +0 -1
  73. package/dist/agent-tool-adapter.js +0 -215
  74. package/dist/agent-tool-adapter.js.map +0 -1
  75. package/dist/agents/agent-authority.d.ts +0 -5
  76. package/dist/agents/agent-authority.d.ts.map +0 -1
  77. package/dist/agents/agent-authority.js +0 -28
  78. package/dist/agents/agent-authority.js.map +0 -1
  79. package/dist/agents/agent-budget.d.ts +0 -3
  80. package/dist/agents/agent-budget.d.ts.map +0 -1
  81. package/dist/agents/agent-budget.js +0 -17
  82. package/dist/agents/agent-budget.js.map +0 -1
  83. package/dist/agents/agent-status.d.ts +0 -4
  84. package/dist/agents/agent-status.d.ts.map +0 -1
  85. package/dist/agents/agent-status.js +0 -10
  86. package/dist/agents/agent-status.js.map +0 -1
  87. package/dist/conversation-operations/compaction-service.d.ts +0 -37
  88. package/dist/conversation-operations/compaction-service.d.ts.map +0 -1
  89. package/dist/conversation-operations/compaction-service.js +0 -102
  90. package/dist/conversation-operations/compaction-service.js.map +0 -1
  91. package/dist/conversation-operations/export-service.d.ts +0 -22
  92. package/dist/conversation-operations/export-service.d.ts.map +0 -1
  93. package/dist/conversation-operations/export-service.js +0 -79
  94. package/dist/conversation-operations/export-service.js.map +0 -1
  95. package/dist/conversation-operations/import-service.d.ts +0 -20
  96. package/dist/conversation-operations/import-service.d.ts.map +0 -1
  97. package/dist/conversation-operations/import-service.js +0 -97
  98. package/dist/conversation-operations/import-service.js.map +0 -1
  99. package/dist/conversation-operations/index.d.ts +0 -8
  100. package/dist/conversation-operations/index.d.ts.map +0 -1
  101. package/dist/conversation-operations/index.js +0 -6
  102. package/dist/conversation-operations/index.js.map +0 -1
  103. package/dist/conversation-operations/navigation-service.d.ts +0 -18
  104. package/dist/conversation-operations/navigation-service.d.ts.map +0 -1
  105. package/dist/conversation-operations/navigation-service.js +0 -102
  106. package/dist/conversation-operations/navigation-service.js.map +0 -1
  107. package/dist/conversation-operations/summary.d.ts +0 -11
  108. package/dist/conversation-operations/summary.d.ts.map +0 -1
  109. package/dist/conversation-operations/summary.js +0 -29
  110. package/dist/conversation-operations/summary.js.map +0 -1
  111. package/dist/conversation-runtime.d.ts +0 -96
  112. package/dist/conversation-runtime.d.ts.map +0 -1
  113. package/dist/conversation-runtime.js +0 -363
  114. package/dist/conversation-runtime.js.map +0 -1
  115. package/dist/conversation-service.d.ts +0 -17
  116. package/dist/conversation-service.d.ts.map +0 -1
  117. package/dist/conversation-service.js +0 -56
  118. package/dist/conversation-service.js.map +0 -1
  119. package/dist/domains/processes/index.d.ts +0 -10
  120. package/dist/domains/processes/index.d.ts.map +0 -1
  121. package/dist/domains/processes/index.js +0 -7
  122. package/dist/domains/processes/index.js.map +0 -1
  123. package/dist/domains/processes/process-launch-config.store.d.ts +0 -21
  124. package/dist/domains/processes/process-launch-config.store.d.ts.map +0 -1
  125. package/dist/domains/processes/process-launch-config.store.js +0 -49
  126. package/dist/domains/processes/process-launch-config.store.js.map +0 -1
  127. package/dist/domains/processes/process-log.service.d.ts +0 -25
  128. package/dist/domains/processes/process-log.service.d.ts.map +0 -1
  129. package/dist/domains/processes/process-log.service.js +0 -155
  130. package/dist/domains/processes/process-log.service.js.map +0 -1
  131. package/dist/domains/processes/process-manager.d.ts +0 -107
  132. package/dist/domains/processes/process-manager.d.ts.map +0 -1
  133. package/dist/domains/processes/process-manager.js +0 -814
  134. package/dist/domains/processes/process-manager.js.map +0 -1
  135. package/dist/domains/processes/process-readiness.service.d.ts +0 -7
  136. package/dist/domains/processes/process-readiness.service.d.ts.map +0 -1
  137. package/dist/domains/processes/process-readiness.service.js +0 -26
  138. package/dist/domains/processes/process-readiness.service.js.map +0 -1
  139. package/dist/domains/processes/process-status.d.ts +0 -5
  140. package/dist/domains/processes/process-status.d.ts.map +0 -1
  141. package/dist/domains/processes/process-status.js +0 -13
  142. package/dist/domains/processes/process-status.js.map +0 -1
  143. package/dist/domains/processes/process-supervisor.d.ts +0 -34
  144. package/dist/domains/processes/process-supervisor.d.ts.map +0 -1
  145. package/dist/domains/processes/process-supervisor.js +0 -211
  146. package/dist/domains/processes/process-supervisor.js.map +0 -1
  147. package/dist/domains/processes/process.repository.d.ts +0 -11
  148. package/dist/domains/processes/process.repository.d.ts.map +0 -1
  149. package/dist/domains/processes/process.repository.js +0 -31
  150. package/dist/domains/processes/process.repository.js.map +0 -1
  151. package/dist/domains/tasks/task-completion.service.d.ts +0 -31
  152. package/dist/domains/tasks/task-completion.service.d.ts.map +0 -1
  153. package/dist/domains/tasks/task-completion.service.js +0 -147
  154. package/dist/domains/tasks/task-completion.service.js.map +0 -1
  155. package/dist/domains/tasks/task-legacy-migration.d.ts +0 -15
  156. package/dist/domains/tasks/task-legacy-migration.d.ts.map +0 -1
  157. package/dist/domains/tasks/task-legacy-migration.js +0 -191
  158. package/dist/domains/tasks/task-legacy-migration.js.map +0 -1
  159. package/dist/events.d.ts +0 -2
  160. package/dist/events.d.ts.map +0 -1
  161. package/dist/events.js +0 -2
  162. package/dist/events.js.map +0 -1
  163. package/dist/git/git-service.d.ts +0 -51
  164. package/dist/git/git-service.d.ts.map +0 -1
  165. package/dist/git/git-service.js +0 -716
  166. package/dist/git/git-service.js.map +0 -1
  167. package/dist/git/git-status.d.ts +0 -24
  168. package/dist/git/git-status.d.ts.map +0 -1
  169. package/dist/git/git-status.js +0 -133
  170. package/dist/git/git-status.js.map +0 -1
  171. package/dist/harness-manager.d.ts +0 -21
  172. package/dist/harness-manager.d.ts.map +0 -1
  173. package/dist/harness-manager.js +0 -105
  174. package/dist/harness-manager.js.map +0 -1
  175. package/dist/index-store.d.ts +0 -2
  176. package/dist/index-store.d.ts.map +0 -1
  177. package/dist/index-store.js +0 -2
  178. package/dist/index-store.js.map +0 -1
  179. package/dist/plan-paths.d.ts +0 -6
  180. package/dist/plan-paths.d.ts.map +0 -1
  181. package/dist/plan-paths.js +0 -30
  182. package/dist/plan-paths.js.map +0 -1
  183. package/dist/plan-service.d.ts +0 -61
  184. package/dist/plan-service.d.ts.map +0 -1
  185. package/dist/plan-service.js +0 -255
  186. package/dist/plan-service.js.map +0 -1
  187. package/dist/policy.d.ts +0 -14
  188. package/dist/policy.d.ts.map +0 -1
  189. package/dist/policy.js +0 -247
  190. package/dist/policy.js.map +0 -1
  191. package/dist/process-manager.d.ts +0 -72
  192. package/dist/process-manager.d.ts.map +0 -1
  193. package/dist/process-manager.js +0 -376
  194. package/dist/process-manager.js.map +0 -1
  195. package/dist/registry/agent-lifecycle-service.d.ts +0 -38
  196. package/dist/registry/agent-lifecycle-service.d.ts.map +0 -1
  197. package/dist/registry/agent-lifecycle-service.js +0 -199
  198. package/dist/registry/agent-lifecycle-service.js.map +0 -1
  199. package/dist/registry/conversation-lifecycle-service.d.ts +0 -35
  200. package/dist/registry/conversation-lifecycle-service.d.ts.map +0 -1
  201. package/dist/registry/conversation-lifecycle-service.js +0 -136
  202. package/dist/registry/conversation-lifecycle-service.js.map +0 -1
  203. package/dist/registry/pinned-command-service.d.ts +0 -11
  204. package/dist/registry/pinned-command-service.d.ts.map +0 -1
  205. package/dist/registry/pinned-command-service.js +0 -40
  206. package/dist/registry/pinned-command-service.js.map +0 -1
  207. package/dist/registry/project-lifecycle-service.d.ts +0 -22
  208. package/dist/registry/project-lifecycle-service.d.ts.map +0 -1
  209. package/dist/registry/project-lifecycle-service.js +0 -87
  210. package/dist/registry/project-lifecycle-service.js.map +0 -1
  211. package/dist/repositories/agent-repository.d.ts +0 -12
  212. package/dist/repositories/agent-repository.d.ts.map +0 -1
  213. package/dist/repositories/agent-repository.js +0 -33
  214. package/dist/repositories/agent-repository.js.map +0 -1
  215. package/dist/repositories/conversation-repository.d.ts +0 -13
  216. package/dist/repositories/conversation-repository.d.ts.map +0 -1
  217. package/dist/repositories/conversation-repository.js +0 -39
  218. package/dist/repositories/conversation-repository.js.map +0 -1
  219. package/dist/repositories/entry-repository.d.ts +0 -15
  220. package/dist/repositories/entry-repository.d.ts.map +0 -1
  221. package/dist/repositories/entry-repository.js +0 -81
  222. package/dist/repositories/entry-repository.js.map +0 -1
  223. package/dist/repositories/index.d.ts +0 -7
  224. package/dist/repositories/index.d.ts.map +0 -1
  225. package/dist/repositories/index.js +0 -7
  226. package/dist/repositories/index.js.map +0 -1
  227. package/dist/repositories/pinned-command-repository.d.ts +0 -10
  228. package/dist/repositories/pinned-command-repository.d.ts.map +0 -1
  229. package/dist/repositories/pinned-command-repository.js +0 -28
  230. package/dist/repositories/pinned-command-repository.js.map +0 -1
  231. package/dist/repositories/project-repository.d.ts +0 -12
  232. package/dist/repositories/project-repository.d.ts.map +0 -1
  233. package/dist/repositories/project-repository.js +0 -33
  234. package/dist/repositories/project-repository.js.map +0 -1
  235. package/dist/repositories/prompt-queue-repository.d.ts +0 -28
  236. package/dist/repositories/prompt-queue-repository.d.ts.map +0 -1
  237. package/dist/repositories/prompt-queue-repository.js +0 -88
  238. package/dist/repositories/prompt-queue-repository.js.map +0 -1
  239. package/dist/routes/process-routes.d.ts +0 -4
  240. package/dist/routes/process-routes.d.ts.map +0 -1
  241. package/dist/routes/process-routes.js +0 -43
  242. package/dist/routes/process-routes.js.map +0 -1
  243. package/dist/storage.d.ts +0 -2
  244. package/dist/storage.d.ts.map +0 -1
  245. package/dist/storage.js +0 -2
  246. package/dist/storage.js.map +0 -1
  247. package/dist/tool-service.d.ts +0 -82
  248. package/dist/tool-service.d.ts.map +0 -1
  249. package/dist/tool-service.js +0 -409
  250. package/dist/tool-service.js.map +0 -1
  251. package/dist/transcription-service.d.ts +0 -15
  252. package/dist/transcription-service.d.ts.map +0 -1
  253. package/dist/transcription-service.js +0 -128
  254. package/dist/transcription-service.js.map +0 -1
  255. package/dist/usage/anthropic-client.d.ts +0 -9
  256. package/dist/usage/anthropic-client.d.ts.map +0 -1
  257. package/dist/usage/anthropic-client.js +0 -207
  258. package/dist/usage/anthropic-client.js.map +0 -1
  259. package/dist/usage/codex-client.d.ts +0 -18
  260. package/dist/usage/codex-client.d.ts.map +0 -1
  261. package/dist/usage/codex-client.js +0 -316
  262. package/dist/usage/codex-client.js.map +0 -1
  263. package/dist/usage/subscription-usage-service.d.ts +0 -42
  264. package/dist/usage/subscription-usage-service.d.ts.map +0 -1
  265. package/dist/usage/subscription-usage-service.js +0 -131
  266. package/dist/usage/subscription-usage-service.js.map +0 -1
  267. package/dist/web/assets/index-DP6SGqvJ.js +0 -165
  268. package/dist/worker-manager.d.ts +0 -51
  269. package/dist/worker-manager.d.ts.map +0 -1
  270. package/dist/worker-manager.js +0 -116
  271. package/dist/worker-manager.js.map +0 -1
@@ -1,363 +0,0 @@
1
- import { createId, } from "@nerve/shared";
2
- const MAX_LIVE_TOOL_OUTPUT_CHARS = 32_000;
3
- const MAX_LIVE_TOOL_OUTPUT_CHUNKS = 400;
4
- export class ConversationRuntime {
5
- runsByRunId = new Map();
6
- runIdByAgentId = new Map();
7
- runIdByConversationId = new Map();
8
- draftAnchorByProviderToolCallId = new Map();
9
- startRun(input) {
10
- const startedAt = input.startedAt ?? new Date().toISOString();
11
- const run = {
12
- runId: input.runId,
13
- agentId: input.agentId,
14
- projectId: input.projectId,
15
- conversationId: input.conversationId,
16
- status: "running",
17
- startedAt,
18
- turns: [],
19
- toolOutputsByToolCallId: {},
20
- queuedPrompts: [],
21
- };
22
- this.runsByRunId.set(input.runId, run);
23
- this.runIdByAgentId.set(input.agentId, input.runId);
24
- this.runIdByConversationId.set(input.conversationId, input.runId);
25
- return cloneRun(run);
26
- }
27
- markAborting(runId) {
28
- const run = this.runsByRunId.get(runId);
29
- if (!run)
30
- return undefined;
31
- run.status = "aborting";
32
- return cloneRun(run);
33
- }
34
- markRetrying(runId, retry) {
35
- const run = this.runsByRunId.get(runId);
36
- if (!run)
37
- return undefined;
38
- run.status = "retrying";
39
- run.retry = { ...retry };
40
- return cloneRun(run);
41
- }
42
- clearRetry(runId) {
43
- const run = this.runsByRunId.get(runId);
44
- if (!run)
45
- return undefined;
46
- if (run.status === "retrying")
47
- run.status = "running";
48
- run.retry = undefined;
49
- return cloneRun(run);
50
- }
51
- queuePrompt(runId, queuedPrompt) {
52
- const run = this.runsByRunId.get(runId);
53
- if (!run)
54
- return undefined;
55
- const index = run.queuedPrompts.findIndex((candidate) => candidate.id === queuedPrompt.id);
56
- if (index === -1)
57
- run.queuedPrompts.push(queuedPrompt);
58
- else
59
- run.queuedPrompts[index] = queuedPrompt;
60
- return cloneRun(run);
61
- }
62
- removeQueuedPrompt(runId, queuedPromptId) {
63
- if (!runId)
64
- return undefined;
65
- const run = this.runsByRunId.get(runId);
66
- if (!run)
67
- return undefined;
68
- run.queuedPrompts = run.queuedPrompts.filter((candidate) => candidate.id !== queuedPromptId);
69
- return cloneRun(run);
70
- }
71
- completeRun(runId) {
72
- const run = this.runsByRunId.get(runId);
73
- if (!run)
74
- return;
75
- this.runsByRunId.delete(runId);
76
- this.runIdByAgentId.delete(run.agentId);
77
- this.runIdByConversationId.delete(run.conversationId);
78
- for (const turn of run.turns) {
79
- for (const message of turn.messages) {
80
- for (const block of message.blocks) {
81
- if (block.kind === "tool_call_draft" && block.providerToolCallId) {
82
- this.draftAnchorByProviderToolCallId.delete(block.providerToolCallId);
83
- }
84
- }
85
- }
86
- }
87
- }
88
- failRun(runId) {
89
- this.completeRun(runId);
90
- }
91
- startTurn(runId) {
92
- const run = this.requireRun(runId);
93
- const turn = {
94
- turnId: createId("turn"),
95
- ordinal: run.turns.length,
96
- messages: [],
97
- };
98
- run.turns.push(turn);
99
- return cloneTurn(turn);
100
- }
101
- currentTurn(runId) {
102
- const run = this.runsByRunId.get(runId);
103
- const turn = run?.turns.at(-1);
104
- return turn ? cloneTurn(turn) : undefined;
105
- }
106
- startAssistantMessage(runId, turnId) {
107
- const run = this.requireRun(runId);
108
- const turn = this.requireTurn(run, turnId);
109
- const startedAt = new Date().toISOString();
110
- const message = {
111
- liveMessageId: createId("msg"),
112
- messageOrdinal: turn.messages.length,
113
- startedAt,
114
- blocks: [],
115
- };
116
- turn.messages.push(message);
117
- return {
118
- conversationId: run.conversationId,
119
- agentId: run.agentId,
120
- projectId: run.projectId,
121
- runId,
122
- turnId,
123
- liveMessageId: message.liveMessageId,
124
- messageOrdinal: message.messageOrdinal,
125
- startedAt,
126
- };
127
- }
128
- applyContentDelta(input) {
129
- const { run, message } = this.requireMessage(input);
130
- const block = this.ensureTextBlock(message, input.contentIndex, input.kind);
131
- const offset = block.text.length;
132
- block.text += input.delta;
133
- return {
134
- conversationId: run.conversationId,
135
- agentId: run.agentId,
136
- projectId: run.projectId,
137
- runId: input.runId,
138
- turnId: input.turnId,
139
- liveMessageId: input.liveMessageId,
140
- contentBlockId: block.contentBlockId,
141
- contentIndex: input.contentIndex,
142
- kind: input.kind,
143
- offset,
144
- delta: input.delta,
145
- };
146
- }
147
- finishContent(input) {
148
- const { run, message } = this.requireMessage(input);
149
- const block = this.ensureTextBlock(message, input.contentIndex, input.kind);
150
- if (input.finalText !== undefined)
151
- block.text = input.finalText;
152
- block.done = true;
153
- block.redacted = input.redacted;
154
- return {
155
- conversationId: run.conversationId,
156
- agentId: run.agentId,
157
- projectId: run.projectId,
158
- runId: input.runId,
159
- turnId: input.turnId,
160
- liveMessageId: input.liveMessageId,
161
- contentBlockId: block.contentBlockId,
162
- contentIndex: input.contentIndex,
163
- kind: input.kind,
164
- finalText: input.finalText,
165
- redacted: input.redacted,
166
- };
167
- }
168
- startToolDraft(input) {
169
- const { run, message } = this.requireMessage(input);
170
- const block = this.ensureToolDraftBlock(message, input.contentIndex);
171
- block.providerToolCallId =
172
- input.providerToolCallId ?? block.providerToolCallId;
173
- block.toolName = input.toolName ?? block.toolName;
174
- if (block.providerToolCallId)
175
- this.rememberToolAnchor(input, block.providerToolCallId);
176
- return {
177
- conversationId: run.conversationId,
178
- agentId: run.agentId,
179
- projectId: run.projectId,
180
- runId: input.runId,
181
- turnId: input.turnId,
182
- liveMessageId: input.liveMessageId,
183
- contentBlockId: block.contentBlockId,
184
- contentIndex: input.contentIndex,
185
- providerToolCallId: block.providerToolCallId,
186
- toolName: block.toolName,
187
- };
188
- }
189
- applyToolDraftDelta(input) {
190
- const { run, message } = this.requireMessage(input);
191
- const block = this.ensureToolDraftBlock(message, input.contentIndex);
192
- const offset = block.argsText.length;
193
- block.argsText += input.delta;
194
- return {
195
- conversationId: run.conversationId,
196
- agentId: run.agentId,
197
- projectId: run.projectId,
198
- runId: input.runId,
199
- turnId: input.turnId,
200
- liveMessageId: input.liveMessageId,
201
- contentBlockId: block.contentBlockId,
202
- contentIndex: input.contentIndex,
203
- offset,
204
- delta: input.delta,
205
- };
206
- }
207
- finishToolDraft(input) {
208
- const { run, message } = this.requireMessage(input);
209
- const block = this.ensureToolDraftBlock(message, input.contentIndex);
210
- block.providerToolCallId = input.providerToolCallId;
211
- block.toolName = input.toolName;
212
- block.args = input.args;
213
- block.done = true;
214
- this.rememberToolAnchor(input, input.providerToolCallId);
215
- return {
216
- conversationId: run.conversationId,
217
- agentId: run.agentId,
218
- projectId: run.projectId,
219
- runId: input.runId,
220
- turnId: input.turnId,
221
- liveMessageId: input.liveMessageId,
222
- contentBlockId: block.contentBlockId,
223
- contentIndex: input.contentIndex,
224
- providerToolCallId: input.providerToolCallId,
225
- toolName: input.toolName,
226
- args: input.args,
227
- };
228
- }
229
- applyToolOutputDelta(input) {
230
- const run = input.runId ? this.runsByRunId.get(input.runId) : undefined;
231
- const existing = run?.toolOutputsByToolCallId[input.toolCallId];
232
- const offset = existing?.text.length ?? 0;
233
- const now = new Date().toISOString();
234
- if (run) {
235
- const output = capToolOutput({
236
- toolCallId: input.toolCallId,
237
- chunks: [
238
- ...(existing?.chunks ?? []),
239
- { stream: input.stream, text: input.delta, ts: now },
240
- ],
241
- text: `${existing?.text ?? ""}${input.delta}`,
242
- updatedAt: now,
243
- });
244
- run.toolOutputsByToolCallId[input.toolCallId] = output;
245
- }
246
- return {
247
- conversationId: input.conversationId,
248
- agentId: input.agentId,
249
- projectId: input.projectId,
250
- runId: input.runId,
251
- turnId: input.turnId,
252
- liveMessageId: input.liveMessageId,
253
- contentIndex: input.contentIndex,
254
- providerToolCallId: input.providerToolCallId,
255
- toolCallId: input.toolCallId,
256
- toolName: input.toolName,
257
- stream: input.stream,
258
- offset,
259
- delta: input.delta,
260
- };
261
- }
262
- snapshotForConversation(conversationId) {
263
- const runId = this.runIdByConversationId.get(conversationId);
264
- const run = runId ? this.runsByRunId.get(runId) : undefined;
265
- return run ? cloneRun(run) : undefined;
266
- }
267
- resolveToolAnchor(runId, providerToolCallId) {
268
- const anchor = this.draftAnchorByProviderToolCallId.get(providerToolCallId);
269
- return anchor && anchor.runId === runId ? { ...anchor } : undefined;
270
- }
271
- rememberToolAnchor(input, providerToolCallId) {
272
- this.draftAnchorByProviderToolCallId.set(providerToolCallId, {
273
- runId: input.runId,
274
- turnId: input.turnId,
275
- liveMessageId: input.liveMessageId,
276
- contentIndex: input.contentIndex,
277
- providerToolCallId,
278
- });
279
- }
280
- requireRun(runId) {
281
- const run = this.runsByRunId.get(runId);
282
- if (!run)
283
- throw new Error(`Active conversation run not found: ${runId}`);
284
- return run;
285
- }
286
- requireTurn(run, turnId) {
287
- const turn = run.turns.find((candidate) => candidate.turnId === turnId);
288
- if (!turn)
289
- throw new Error(`Active conversation turn not found: ${turnId}`);
290
- return turn;
291
- }
292
- requireMessage(input) {
293
- const run = this.requireRun(input.runId);
294
- const turn = this.requireTurn(run, input.turnId);
295
- const message = turn.messages.find((candidate) => candidate.liveMessageId === input.liveMessageId);
296
- if (!message) {
297
- throw new Error(`Active live message not found: ${input.liveMessageId}`);
298
- }
299
- return { run, turn, message };
300
- }
301
- ensureTextBlock(message, contentIndex, kind) {
302
- const existing = message.blocks.find((block) => block.contentIndex === contentIndex && block.kind !== "tool_call_draft");
303
- if (existing && existing.kind !== "tool_call_draft")
304
- return existing;
305
- const block = {
306
- kind,
307
- contentBlockId: createId("block"),
308
- contentIndex,
309
- text: "",
310
- done: false,
311
- };
312
- message.blocks.push(block);
313
- message.blocks.sort((a, b) => a.contentIndex - b.contentIndex);
314
- return block;
315
- }
316
- ensureToolDraftBlock(message, contentIndex) {
317
- const existing = message.blocks.find((block) => block.contentIndex === contentIndex && block.kind === "tool_call_draft");
318
- if (existing?.kind === "tool_call_draft")
319
- return existing;
320
- const block = {
321
- kind: "tool_call_draft",
322
- contentBlockId: createId("block"),
323
- contentIndex,
324
- argsText: "",
325
- done: false,
326
- };
327
- message.blocks.push(block);
328
- message.blocks.sort((a, b) => a.contentIndex - b.contentIndex);
329
- return block;
330
- }
331
- }
332
- function cloneRun(run) {
333
- return {
334
- ...run,
335
- turns: run.turns.map(cloneTurn),
336
- toolOutputsByToolCallId: Object.fromEntries(Object.entries(run.toolOutputsByToolCallId).map(([id, output]) => [
337
- id,
338
- { ...output, chunks: output.chunks.map((chunk) => ({ ...chunk })) },
339
- ])),
340
- queuedPrompts: run.queuedPrompts.map((prompt) => ({ ...prompt })),
341
- retry: run.retry ? { ...run.retry } : undefined,
342
- };
343
- }
344
- function cloneTurn(turn) {
345
- return {
346
- ...turn,
347
- messages: turn.messages.map((message) => ({
348
- ...message,
349
- blocks: message.blocks.map((block) => ({ ...block })),
350
- })),
351
- };
352
- }
353
- function capToolOutput(output) {
354
- let text = output.text;
355
- if (text.length > MAX_LIVE_TOOL_OUTPUT_CHARS) {
356
- text = text.slice(text.length - MAX_LIVE_TOOL_OUTPUT_CHARS);
357
- }
358
- const chunks = output.chunks.length > MAX_LIVE_TOOL_OUTPUT_CHUNKS
359
- ? output.chunks.slice(output.chunks.length - MAX_LIVE_TOOL_OUTPUT_CHUNKS)
360
- : output.chunks;
361
- return { ...output, text, chunks };
362
- }
363
- //# sourceMappingURL=conversation-runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation-runtime.js","sourceRoot":"","sources":["../src/conversation-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { Message } from "@earendil-works/pi-ai";
2
- import type { AgentRecord, ConversationEntry, ConversationRecord, ProjectRecord } from "@nerve/shared";
3
- import type { EntryRepository } from "./domains/conversations/index.js";
4
- import type { HarnessManager } from "./harness-manager.js";
5
- export declare class ConversationService {
6
- private readonly harnessManager;
7
- private readonly entryRepository;
8
- readonly agentConversationCache: Map<string, Message[]>;
9
- constructor(harnessManager: HarnessManager, entryRepository: EntryRepository);
10
- rebuildAll(projects: Iterable<ProjectRecord>, conversations: Iterable<ConversationRecord>, agents: Iterable<AgentRecord>, entriesByConversationId: Map<string, ConversationEntry[]>): Promise<void>;
11
- getForAgent(agentId: string): Message[] | undefined;
12
- setForAgent(agentId: string, messages: Message[]): void;
13
- deleteAgent(agentId: string): void;
14
- clear(): void;
15
- contextMessagesForConversation(conversation: ConversationRecord, projectDir: string, entriesByConversationId: Map<string, ConversationEntry[]>): Promise<Message[]>;
16
- }
17
- //# sourceMappingURL=conversation-service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation-service.d.ts","sourceRoot":"","sources":["../src/conversation-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAJlC,QAAQ,CAAC,sBAAsB,yBAAgC;gBAG5C,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe;IAG7C,UAAU,CACd,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,EACjC,aAAa,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAC3C,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC7B,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC;IAwBhB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS;IAInD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAIvD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC,KAAK,IAAI,IAAI;IAIP,8BAA8B,CAClC,YAAY,EAAE,kBAAkB,EAChC,UAAU,EAAE,MAAM,EAClB,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,GACxD,OAAO,CAAC,OAAO,EAAE,CAAC;CAoBtB"}
@@ -1,56 +0,0 @@
1
- import { buildConversationContext, convertToLlm } from "@nerve/agent";
2
- export class ConversationService {
3
- harnessManager;
4
- entryRepository;
5
- agentConversationCache = new Map();
6
- constructor(harnessManager, entryRepository) {
7
- this.harnessManager = harnessManager;
8
- this.entryRepository = entryRepository;
9
- }
10
- async rebuildAll(projects, conversations, agents, entriesByConversationId) {
11
- this.agentConversationCache.clear();
12
- const projectsById = new Map([...projects].map((project) => [project.id, project]));
13
- const conversationMessages = new Map();
14
- for (const conversation of conversations) {
15
- const project = projectsById.get(conversation.projectId);
16
- if (!project)
17
- continue;
18
- const messages = await this.contextMessagesForConversation(conversation, project.dir, entriesByConversationId);
19
- conversationMessages.set(conversation.id, messages);
20
- }
21
- for (const agent of agents) {
22
- this.agentConversationCache.set(agent.id, conversationMessages.get(agent.conversationId) ?? []);
23
- }
24
- }
25
- getForAgent(agentId) {
26
- return this.agentConversationCache.get(agentId);
27
- }
28
- setForAgent(agentId, messages) {
29
- this.agentConversationCache.set(agentId, messages);
30
- }
31
- deleteAgent(agentId) {
32
- this.agentConversationCache.delete(agentId);
33
- }
34
- clear() {
35
- this.agentConversationCache.clear();
36
- }
37
- async contextMessagesForConversation(conversation, projectDir, entriesByConversationId) {
38
- try {
39
- const storage = await this.harnessManager.openStorage(conversation, projectDir);
40
- const branch = await storage.getPathToRoot(await storage.getLeafId());
41
- return convertToLlm(buildConversationContext(branch).messages);
42
- }
43
- catch (error) {
44
- this.harnessManager.warnMirror(error);
45
- return this.entryRepository
46
- .activeBranchEntries(entriesByConversationId, conversation)
47
- .filter((entry) => entry.role === "user" || entry.role === "assistant")
48
- .map((entry) => ({
49
- role: entry.role,
50
- content: entry.text,
51
- timestamp: new Date(entry.createdAt).getTime(),
52
- }));
53
- }
54
- }
55
- }
56
- //# sourceMappingURL=conversation-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation-service.js","sourceRoot":"","sources":["../src/conversation-service.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- export { ProcessRepository } from "./process.repository.js";
2
- export type { ProcessLaunchConfigStore } from "./process-launch-config.store.js";
3
- export { processLaunchConfigSecretName, SecretProcessLaunchConfigStore, UnconfiguredProcessLaunchConfigStore, } from "./process-launch-config.store.js";
4
- export type { ProcessLogCursor, ProcessLogStream, } from "./process-log.service.js";
5
- export { createProcessLogCursor, MAX_BUFFERED_LOG_LINE_CHARS, ProcessLogService, } from "./process-log.service.js";
6
- export { ProcessReadinessService } from "./process-readiness.service.js";
7
- export { isActiveProcessStatus, isOrphanedProcessStatus, isStoppableProcessStatus, } from "./process-status.js";
8
- export type { ProcessSupervisor, SpawnedManagedProcess, SpawnManagedProcessOptions, TerminateProcessOptions, TerminateProcessResult, } from "./process-supervisor.js";
9
- export { defaultProcessSupervisor, isProcessRuntimeTargetAlive, runtimeForChild, spawnManagedProcess, terminateProcess, terminateProcessRuntime, } from "./process-supervisor.js";
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domains/processes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
@@ -1,7 +0,0 @@
1
- export { ProcessRepository } from "./process.repository.js";
2
- export { processLaunchConfigSecretName, SecretProcessLaunchConfigStore, UnconfiguredProcessLaunchConfigStore, } from "./process-launch-config.store.js";
3
- export { createProcessLogCursor, MAX_BUFFERED_LOG_LINE_CHARS, ProcessLogService, } from "./process-log.service.js";
4
- export { ProcessReadinessService } from "./process-readiness.service.js";
5
- export { isActiveProcessStatus, isOrphanedProcessStatus, isStoppableProcessStatus, } from "./process-status.js";
6
- export { defaultProcessSupervisor, isProcessRuntimeTargetAlive, runtimeForChild, spawnManagedProcess, terminateProcess, terminateProcessRuntime, } from "./process-supervisor.js";
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domains/processes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAK1C,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
@@ -1,21 +0,0 @@
1
- import { type ProcessLaunchConfig } from "@nerve/shared";
2
- import type { SecretProvider } from "../../secrets.js";
3
- export interface ProcessLaunchConfigStore {
4
- write(processId: string, config: ProcessLaunchConfig): Promise<void>;
5
- read(processId: string): Promise<ProcessLaunchConfig | undefined>;
6
- remove(processId: string): Promise<void>;
7
- }
8
- export declare function processLaunchConfigSecretName(processId: string): string;
9
- export declare class SecretProcessLaunchConfigStore implements ProcessLaunchConfigStore {
10
- private readonly secrets;
11
- constructor(secrets: SecretProvider);
12
- write(processId: string, config: ProcessLaunchConfig): Promise<void>;
13
- read(processId: string): Promise<ProcessLaunchConfig | undefined>;
14
- remove(processId: string): Promise<void>;
15
- }
16
- export declare class UnconfiguredProcessLaunchConfigStore implements ProcessLaunchConfigStore {
17
- write(): Promise<void>;
18
- read(): Promise<ProcessLaunchConfig | undefined>;
19
- remove(): Promise<void>;
20
- }
21
- //# sourceMappingURL=process-launch-config.store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process-launch-config.store.d.ts","sourceRoot":"","sources":["../../../src/domains/processes/process-launch-config.store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAClE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,qBAAa,8BACX,YAAW,wBAAwB;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,cAAc;IAE9C,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAwBjE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/C;AAED,qBAAa,oCACX,YAAW,wBAAwB;IAE7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,IAAI,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAMhD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
@@ -1,49 +0,0 @@
1
- import { processLaunchConfigSchema, } from "@nerve/shared";
2
- export function processLaunchConfigSecretName(processId) {
3
- return `process:${processId}:launchConfig`;
4
- }
5
- export class SecretProcessLaunchConfigStore {
6
- secrets;
7
- constructor(secrets) {
8
- this.secrets = secrets;
9
- }
10
- async write(processId, config) {
11
- const parsed = processLaunchConfigSchema.parse(config);
12
- await this.secrets.set(processLaunchConfigSecretName(processId), JSON.stringify(parsed));
13
- }
14
- async read(processId) {
15
- const value = await this.secrets.get(processLaunchConfigSecretName(processId));
16
- if (value === undefined)
17
- return undefined;
18
- let raw;
19
- try {
20
- raw = JSON.parse(value);
21
- }
22
- catch (error) {
23
- throw new Error(`Invalid persisted launch config for process ${processId}: ${errorMessage(error)}`);
24
- }
25
- const parsed = processLaunchConfigSchema.safeParse(raw);
26
- if (!parsed.success) {
27
- throw new Error(`Invalid persisted launch config for process ${processId}: ${parsed.error.message}`);
28
- }
29
- return parsed.data;
30
- }
31
- async remove(processId) {
32
- await this.secrets.delete(processLaunchConfigSecretName(processId));
33
- }
34
- }
35
- export class UnconfiguredProcessLaunchConfigStore {
36
- async write() {
37
- throw new Error("Process launch config store is not configured; refusing to persist env overrides.");
38
- }
39
- async read() {
40
- throw new Error("Process launch config store is not configured; refusing to restart process with persisted env metadata.");
41
- }
42
- async remove() {
43
- // No launch config store is configured, so there is nothing to delete.
44
- }
45
- }
46
- function errorMessage(error) {
47
- return error instanceof Error ? error.message : String(error);
48
- }
49
- //# sourceMappingURL=process-launch-config.store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process-launch-config.store.js","sourceRoot":"","sources":["../../../src/domains/processes/process-launch-config.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AASvB,MAAM,UAAU,6BAA6B,CAAC,SAAiB;IAC7D,OAAO,WAAW,SAAS,eAAe,CAAC;AAC7C,CAAC;AAED,MAAM,OAAO,8BAA8B;IAGZ;IAA7B,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAExD,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,MAA2B;QACxD,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CACpB,6BAA6B,CAAC,SAAS,CAAC,EACxC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAClC,6BAA6B,CAAC,SAAS,CAAC,CACzC,CAAC;QACF,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAE1C,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,+CAA+C,SAAS,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE,CACnF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,+CAA+C,SAAS,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CACpF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAED,MAAM,OAAO,oCAAoC;IAG/C,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM;QACV,uEAAuE;IACzE,CAAC;CACF;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
@@ -1,25 +0,0 @@
1
- import type { ProcessLogEvent, ProcessLogQuery, ProcessLogQueryResponse, ProcessRecord } from "@nerve/shared";
2
- import type { EventBus } from "../../infrastructure/events/index.js";
3
- export type ProcessLogStream = "stdout" | "stderr";
4
- export declare const MAX_BUFFERED_LOG_LINE_CHARS: number;
5
- export interface ProcessLogCursor {
6
- logSeq: number;
7
- lineBuffers: Record<ProcessLogStream, string>;
8
- logQueue: Promise<void>;
9
- }
10
- export declare function createProcessLogCursor(logSeq?: number): ProcessLogCursor;
11
- export declare class ProcessLogService {
12
- private readonly events;
13
- constructor(events: EventBus);
14
- queryLogs(process: ProcessRecord, query?: ProcessLogQuery): Promise<ProcessLogQueryResponse>;
15
- captureOutput(record: ProcessRecord, cursor: ProcessLogCursor, stream: ProcessLogStream, chunk: Buffer | string, onLog: (event: ProcessLogEvent) => Promise<void>): Promise<void>;
16
- flushOutput(record: ProcessRecord, cursor: ProcessLogCursor, stream: ProcessLogStream, onLog: (event: ProcessLogEvent) => Promise<void>): Promise<void>;
17
- flushOutputBuffers(record: ProcessRecord, cursor: ProcessLogCursor, onLog: (event: ProcessLogEvent) => Promise<void>): Promise<void>;
18
- latestLogSeq(logsPath: string): Promise<number>;
19
- readLogEvents(logsPath: string): Promise<ProcessLogEvent[]>;
20
- private enqueue;
21
- private captureOutputNow;
22
- private flushOutputNow;
23
- private emitLogLine;
24
- }
25
- //# sourceMappingURL=process-log.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process-log.service.d.ts","sourceRoot":"","sources":["../../../src/domains/processes/process-log.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,aAAa,EACd,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAMrE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEnD,eAAO,MAAM,2BAA2B,QAAa,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC9C,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,SAAI,GAAG,gBAAgB,CAMnE;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,QAAQ;IAEvC,SAAS,CACb,OAAO,EAAE,aAAa,EACtB,KAAK,GAAE,eAAoB,GAC1B,OAAO,CAAC,uBAAuB,CAAC;IA4C7B,aAAa,CACjB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC;IAOV,WAAW,CACf,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC;IAMV,kBAAkB,CACtB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC;IAOV,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IASjE,OAAO,CAAC,OAAO;YAUD,gBAAgB;YA2BhB,cAAc;YAYd,WAAW;CA4B1B"}