@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.
- package/dist/domains/agents/run/agent-run-session.d.ts.map +1 -1
- package/dist/domains/agents/run/agent-run-session.js +25 -2
- package/dist/domains/agents/run/agent-run-session.js.map +1 -1
- package/dist/domains/agents/run/agent-runner.d.ts +12 -1
- package/dist/domains/agents/run/agent-runner.d.ts.map +1 -1
- package/dist/domains/agents/run/agent-runner.js +166 -1
- package/dist/domains/agents/run/agent-runner.js.map +1 -1
- package/dist/domains/agents/run/inline-command-results.d.ts +8 -0
- package/dist/domains/agents/run/inline-command-results.d.ts.map +1 -0
- package/dist/domains/agents/run/inline-command-results.js +109 -0
- package/dist/domains/agents/run/inline-command-results.js.map +1 -0
- package/dist/domains/tasks/task-manager-foreground.d.ts.map +1 -1
- package/dist/domains/tasks/task-manager-foreground.js +4 -1
- package/dist/domains/tasks/task-manager-foreground.js.map +1 -1
- package/dist/domains/tasks/task-manager.d.ts +2 -1
- package/dist/domains/tasks/task-manager.d.ts.map +1 -1
- package/dist/domains/tasks/task-manager.js.map +1 -1
- package/dist/domains/tasks/task-supervisor.d.ts.map +1 -1
- package/dist/domains/tasks/task-supervisor.js +12 -1
- package/dist/domains/tasks/task-supervisor.js.map +1 -1
- package/dist/domains/tools/orchestration-tool-dispatcher.d.ts.map +1 -1
- package/dist/domains/tools/orchestration-tool-dispatcher.js +2 -1
- package/dist/domains/tools/orchestration-tool-dispatcher.js.map +1 -1
- package/dist/domains/tools/tool-service.d.ts +2 -0
- package/dist/domains/tools/tool-service.d.ts.map +1 -1
- package/dist/domains/tools/tool-service.js.map +1 -1
- package/dist/registry.d.ts +11 -11
- package/dist/runtime/runtime-state.d.ts +2 -2
- package/dist/web/assets/{dist-DVpGQCt0.js → dist-BaA_eB0I.js} +1 -1
- package/dist/web/assets/{index-DFKLdj_D.css → index-C45Kmr75.css} +1 -1
- package/dist/web/assets/index-DHfIkEia.js +167 -0
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/package.json +4 -4
- package/dist/agent-process.d.ts +0 -32
- package/dist/agent-process.d.ts.map +0 -1
- package/dist/agent-process.js +0 -129
- package/dist/agent-process.js.map +0 -1
- package/dist/agent-runner/agent-runner.d.ts +0 -65
- package/dist/agent-runner/agent-runner.d.ts.map +0 -1
- package/dist/agent-runner/agent-runner.js +0 -802
- package/dist/agent-runner/agent-runner.js.map +0 -1
- package/dist/agent-runner/index.d.ts +0 -6
- package/dist/agent-runner/index.d.ts.map +0 -1
- package/dist/agent-runner/index.js +0 -4
- package/dist/agent-runner/index.js.map +0 -1
- package/dist/agent-runner/message-mirror.d.ts +0 -44
- package/dist/agent-runner/message-mirror.d.ts.map +0 -1
- package/dist/agent-runner/message-mirror.js +0 -154
- package/dist/agent-runner/message-mirror.js.map +0 -1
- package/dist/agent-runner/run-state.d.ts +0 -12
- package/dist/agent-runner/run-state.d.ts.map +0 -1
- package/dist/agent-runner/run-state.js +0 -2
- package/dist/agent-runner/run-state.js.map +0 -1
- package/dist/agent-runner/subagent-runner.d.ts +0 -29
- package/dist/agent-runner/subagent-runner.d.ts.map +0 -1
- package/dist/agent-runner/subagent-runner.js +0 -84
- package/dist/agent-runner/subagent-runner.js.map +0 -1
- package/dist/agent-runner/system-prompt-builder.d.ts +0 -19
- package/dist/agent-runner/system-prompt-builder.d.ts.map +0 -1
- package/dist/agent-runner/system-prompt-builder.js +0 -35
- package/dist/agent-runner/system-prompt-builder.js.map +0 -1
- package/dist/agent-runner/tool-draft-streaming.d.ts +0 -2
- package/dist/agent-runner/tool-draft-streaming.d.ts.map +0 -1
- package/dist/agent-runner/tool-draft-streaming.js +0 -5
- package/dist/agent-runner/tool-draft-streaming.js.map +0 -1
- package/dist/agent-suspension-service.d.ts +0 -44
- package/dist/agent-suspension-service.d.ts.map +0 -1
- package/dist/agent-suspension-service.js +0 -96
- package/dist/agent-suspension-service.js.map +0 -1
- package/dist/agent-tool-adapter.d.ts +0 -20
- package/dist/agent-tool-adapter.d.ts.map +0 -1
- package/dist/agent-tool-adapter.js +0 -215
- package/dist/agent-tool-adapter.js.map +0 -1
- package/dist/agents/agent-authority.d.ts +0 -5
- package/dist/agents/agent-authority.d.ts.map +0 -1
- package/dist/agents/agent-authority.js +0 -28
- package/dist/agents/agent-authority.js.map +0 -1
- package/dist/agents/agent-budget.d.ts +0 -3
- package/dist/agents/agent-budget.d.ts.map +0 -1
- package/dist/agents/agent-budget.js +0 -17
- package/dist/agents/agent-budget.js.map +0 -1
- package/dist/agents/agent-status.d.ts +0 -4
- package/dist/agents/agent-status.d.ts.map +0 -1
- package/dist/agents/agent-status.js +0 -10
- package/dist/agents/agent-status.js.map +0 -1
- package/dist/conversation-operations/compaction-service.d.ts +0 -37
- package/dist/conversation-operations/compaction-service.d.ts.map +0 -1
- package/dist/conversation-operations/compaction-service.js +0 -102
- package/dist/conversation-operations/compaction-service.js.map +0 -1
- package/dist/conversation-operations/export-service.d.ts +0 -22
- package/dist/conversation-operations/export-service.d.ts.map +0 -1
- package/dist/conversation-operations/export-service.js +0 -79
- package/dist/conversation-operations/export-service.js.map +0 -1
- package/dist/conversation-operations/import-service.d.ts +0 -20
- package/dist/conversation-operations/import-service.d.ts.map +0 -1
- package/dist/conversation-operations/import-service.js +0 -97
- package/dist/conversation-operations/import-service.js.map +0 -1
- package/dist/conversation-operations/index.d.ts +0 -8
- package/dist/conversation-operations/index.d.ts.map +0 -1
- package/dist/conversation-operations/index.js +0 -6
- package/dist/conversation-operations/index.js.map +0 -1
- package/dist/conversation-operations/navigation-service.d.ts +0 -18
- package/dist/conversation-operations/navigation-service.d.ts.map +0 -1
- package/dist/conversation-operations/navigation-service.js +0 -102
- package/dist/conversation-operations/navigation-service.js.map +0 -1
- package/dist/conversation-operations/summary.d.ts +0 -11
- package/dist/conversation-operations/summary.d.ts.map +0 -1
- package/dist/conversation-operations/summary.js +0 -29
- package/dist/conversation-operations/summary.js.map +0 -1
- package/dist/conversation-runtime.d.ts +0 -96
- package/dist/conversation-runtime.d.ts.map +0 -1
- package/dist/conversation-runtime.js +0 -363
- package/dist/conversation-runtime.js.map +0 -1
- package/dist/conversation-service.d.ts +0 -17
- package/dist/conversation-service.d.ts.map +0 -1
- package/dist/conversation-service.js +0 -56
- package/dist/conversation-service.js.map +0 -1
- package/dist/domains/processes/index.d.ts +0 -10
- package/dist/domains/processes/index.d.ts.map +0 -1
- package/dist/domains/processes/index.js +0 -7
- package/dist/domains/processes/index.js.map +0 -1
- package/dist/domains/processes/process-launch-config.store.d.ts +0 -21
- package/dist/domains/processes/process-launch-config.store.d.ts.map +0 -1
- package/dist/domains/processes/process-launch-config.store.js +0 -49
- package/dist/domains/processes/process-launch-config.store.js.map +0 -1
- package/dist/domains/processes/process-log.service.d.ts +0 -25
- package/dist/domains/processes/process-log.service.d.ts.map +0 -1
- package/dist/domains/processes/process-log.service.js +0 -155
- package/dist/domains/processes/process-log.service.js.map +0 -1
- package/dist/domains/processes/process-manager.d.ts +0 -107
- package/dist/domains/processes/process-manager.d.ts.map +0 -1
- package/dist/domains/processes/process-manager.js +0 -814
- package/dist/domains/processes/process-manager.js.map +0 -1
- package/dist/domains/processes/process-readiness.service.d.ts +0 -7
- package/dist/domains/processes/process-readiness.service.d.ts.map +0 -1
- package/dist/domains/processes/process-readiness.service.js +0 -26
- package/dist/domains/processes/process-readiness.service.js.map +0 -1
- package/dist/domains/processes/process-status.d.ts +0 -5
- package/dist/domains/processes/process-status.d.ts.map +0 -1
- package/dist/domains/processes/process-status.js +0 -13
- package/dist/domains/processes/process-status.js.map +0 -1
- package/dist/domains/processes/process-supervisor.d.ts +0 -34
- package/dist/domains/processes/process-supervisor.d.ts.map +0 -1
- package/dist/domains/processes/process-supervisor.js +0 -211
- package/dist/domains/processes/process-supervisor.js.map +0 -1
- package/dist/domains/processes/process.repository.d.ts +0 -11
- package/dist/domains/processes/process.repository.d.ts.map +0 -1
- package/dist/domains/processes/process.repository.js +0 -31
- package/dist/domains/processes/process.repository.js.map +0 -1
- package/dist/domains/tasks/task-completion.service.d.ts +0 -31
- package/dist/domains/tasks/task-completion.service.d.ts.map +0 -1
- package/dist/domains/tasks/task-completion.service.js +0 -147
- package/dist/domains/tasks/task-completion.service.js.map +0 -1
- package/dist/domains/tasks/task-legacy-migration.d.ts +0 -15
- package/dist/domains/tasks/task-legacy-migration.d.ts.map +0 -1
- package/dist/domains/tasks/task-legacy-migration.js +0 -191
- package/dist/domains/tasks/task-legacy-migration.js.map +0 -1
- package/dist/events.d.ts +0 -2
- package/dist/events.d.ts.map +0 -1
- package/dist/events.js +0 -2
- package/dist/events.js.map +0 -1
- package/dist/git/git-service.d.ts +0 -51
- package/dist/git/git-service.d.ts.map +0 -1
- package/dist/git/git-service.js +0 -716
- package/dist/git/git-service.js.map +0 -1
- package/dist/git/git-status.d.ts +0 -24
- package/dist/git/git-status.d.ts.map +0 -1
- package/dist/git/git-status.js +0 -133
- package/dist/git/git-status.js.map +0 -1
- package/dist/harness-manager.d.ts +0 -21
- package/dist/harness-manager.d.ts.map +0 -1
- package/dist/harness-manager.js +0 -105
- package/dist/harness-manager.js.map +0 -1
- package/dist/index-store.d.ts +0 -2
- package/dist/index-store.d.ts.map +0 -1
- package/dist/index-store.js +0 -2
- package/dist/index-store.js.map +0 -1
- package/dist/plan-paths.d.ts +0 -6
- package/dist/plan-paths.d.ts.map +0 -1
- package/dist/plan-paths.js +0 -30
- package/dist/plan-paths.js.map +0 -1
- package/dist/plan-service.d.ts +0 -61
- package/dist/plan-service.d.ts.map +0 -1
- package/dist/plan-service.js +0 -255
- package/dist/plan-service.js.map +0 -1
- package/dist/policy.d.ts +0 -14
- package/dist/policy.d.ts.map +0 -1
- package/dist/policy.js +0 -247
- package/dist/policy.js.map +0 -1
- package/dist/process-manager.d.ts +0 -72
- package/dist/process-manager.d.ts.map +0 -1
- package/dist/process-manager.js +0 -376
- package/dist/process-manager.js.map +0 -1
- package/dist/registry/agent-lifecycle-service.d.ts +0 -38
- package/dist/registry/agent-lifecycle-service.d.ts.map +0 -1
- package/dist/registry/agent-lifecycle-service.js +0 -199
- package/dist/registry/agent-lifecycle-service.js.map +0 -1
- package/dist/registry/conversation-lifecycle-service.d.ts +0 -35
- package/dist/registry/conversation-lifecycle-service.d.ts.map +0 -1
- package/dist/registry/conversation-lifecycle-service.js +0 -136
- package/dist/registry/conversation-lifecycle-service.js.map +0 -1
- package/dist/registry/pinned-command-service.d.ts +0 -11
- package/dist/registry/pinned-command-service.d.ts.map +0 -1
- package/dist/registry/pinned-command-service.js +0 -40
- package/dist/registry/pinned-command-service.js.map +0 -1
- package/dist/registry/project-lifecycle-service.d.ts +0 -22
- package/dist/registry/project-lifecycle-service.d.ts.map +0 -1
- package/dist/registry/project-lifecycle-service.js +0 -87
- package/dist/registry/project-lifecycle-service.js.map +0 -1
- package/dist/repositories/agent-repository.d.ts +0 -12
- package/dist/repositories/agent-repository.d.ts.map +0 -1
- package/dist/repositories/agent-repository.js +0 -33
- package/dist/repositories/agent-repository.js.map +0 -1
- package/dist/repositories/conversation-repository.d.ts +0 -13
- package/dist/repositories/conversation-repository.d.ts.map +0 -1
- package/dist/repositories/conversation-repository.js +0 -39
- package/dist/repositories/conversation-repository.js.map +0 -1
- package/dist/repositories/entry-repository.d.ts +0 -15
- package/dist/repositories/entry-repository.d.ts.map +0 -1
- package/dist/repositories/entry-repository.js +0 -81
- package/dist/repositories/entry-repository.js.map +0 -1
- package/dist/repositories/index.d.ts +0 -7
- package/dist/repositories/index.d.ts.map +0 -1
- package/dist/repositories/index.js +0 -7
- package/dist/repositories/index.js.map +0 -1
- package/dist/repositories/pinned-command-repository.d.ts +0 -10
- package/dist/repositories/pinned-command-repository.d.ts.map +0 -1
- package/dist/repositories/pinned-command-repository.js +0 -28
- package/dist/repositories/pinned-command-repository.js.map +0 -1
- package/dist/repositories/project-repository.d.ts +0 -12
- package/dist/repositories/project-repository.d.ts.map +0 -1
- package/dist/repositories/project-repository.js +0 -33
- package/dist/repositories/project-repository.js.map +0 -1
- package/dist/repositories/prompt-queue-repository.d.ts +0 -28
- package/dist/repositories/prompt-queue-repository.d.ts.map +0 -1
- package/dist/repositories/prompt-queue-repository.js +0 -88
- package/dist/repositories/prompt-queue-repository.js.map +0 -1
- package/dist/routes/process-routes.d.ts +0 -4
- package/dist/routes/process-routes.d.ts.map +0 -1
- package/dist/routes/process-routes.js +0 -43
- package/dist/routes/process-routes.js.map +0 -1
- package/dist/storage.d.ts +0 -2
- package/dist/storage.d.ts.map +0 -1
- package/dist/storage.js +0 -2
- package/dist/storage.js.map +0 -1
- package/dist/tool-service.d.ts +0 -82
- package/dist/tool-service.d.ts.map +0 -1
- package/dist/tool-service.js +0 -409
- package/dist/tool-service.js.map +0 -1
- package/dist/transcription-service.d.ts +0 -15
- package/dist/transcription-service.d.ts.map +0 -1
- package/dist/transcription-service.js +0 -128
- package/dist/transcription-service.js.map +0 -1
- package/dist/usage/anthropic-client.d.ts +0 -9
- package/dist/usage/anthropic-client.d.ts.map +0 -1
- package/dist/usage/anthropic-client.js +0 -207
- package/dist/usage/anthropic-client.js.map +0 -1
- package/dist/usage/codex-client.d.ts +0 -18
- package/dist/usage/codex-client.d.ts.map +0 -1
- package/dist/usage/codex-client.js +0 -316
- package/dist/usage/codex-client.js.map +0 -1
- package/dist/usage/subscription-usage-service.d.ts +0 -42
- package/dist/usage/subscription-usage-service.d.ts.map +0 -1
- package/dist/usage/subscription-usage-service.js +0 -131
- package/dist/usage/subscription-usage-service.js.map +0 -1
- package/dist/web/assets/index-DP6SGqvJ.js +0 -165
- package/dist/worker-manager.d.ts +0 -51
- package/dist/worker-manager.d.ts.map +0 -1
- package/dist/worker-manager.js +0 -116
- 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"}
|