@bbigbang/core 0.1.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/config.js +380 -0
- package/dist/execution/executionDispatcher.js +3810 -0
- package/dist/main.js +90 -0
- package/dist/nodeEventHistory.js +206 -0
- package/dist/scheduler/dreamLogic.js +50 -0
- package/dist/scheduler/dreamScheduler.js +65 -0
- package/dist/services/agentFileAccessService.js +1913 -0
- package/dist/services/agentRuntimeCleanupBroker.js +62 -0
- package/dist/services/agentSkillsBroker.js +118 -0
- package/dist/services/agentSkillsService.js +83 -0
- package/dist/services/agentWorkspaceBroker.js +937 -0
- package/dist/services/agentWorkspaceService.js +70 -0
- package/dist/services/appVersion.js +14 -0
- package/dist/services/auth.js +586 -0
- package/dist/services/claudeControlBroker.js +154 -0
- package/dist/services/claudeTranscriptBroker.js +100 -0
- package/dist/services/claudeTranscriptService.js +359 -0
- package/dist/services/codexAppServerBroker.js +155 -0
- package/dist/services/codexTranscriptBroker.js +98 -0
- package/dist/services/codexTranscriptService.js +961 -0
- package/dist/services/droidMissionBroker.js +124 -0
- package/dist/services/droidMissionImporter.js +630 -0
- package/dist/services/droidModelOptions.js +165 -0
- package/dist/services/hubServerRegistrationService.js +268 -0
- package/dist/services/libraryManifest.js +43 -0
- package/dist/services/libraryScaffold.js +26 -0
- package/dist/services/libraryService.js +2263 -0
- package/dist/services/memoryService.js +386 -0
- package/dist/services/missionEvidence.js +377 -0
- package/dist/services/missionService.js +2361 -0
- package/dist/services/missionTrace.js +158 -0
- package/dist/services/nativeMissionBriefParser.js +120 -0
- package/dist/services/nativeMissionOrchestrator.js +2045 -0
- package/dist/services/nativeMissionReportGenerator.js +227 -0
- package/dist/services/nativeMissionValidationRunner.js +452 -0
- package/dist/services/nativeMissionWorkerBroker.js +190 -0
- package/dist/services/nodeRegistry.js +34 -0
- package/dist/services/nodeStateReconciler.js +97 -0
- package/dist/services/panelMediaScanner.js +119 -0
- package/dist/services/persistentRuntimeJsonlClient.js +153 -0
- package/dist/services/platformAgentPolicy.js +180 -0
- package/dist/services/platformAgentService.js +2041 -0
- package/dist/services/projectAccessResolver.js +93 -0
- package/dist/services/projectService.js +392 -0
- package/dist/services/resourceSpaceService.js +140 -0
- package/dist/services/scenarioRuntimeService.js +1130 -0
- package/dist/services/suggestedPlannerService.js +868 -0
- package/dist/services/workbenchGitBroker.js +161 -0
- package/dist/services/workbenchGitService.js +69 -0
- package/dist/services/workbenchInspectBroker.js +65 -0
- package/dist/services/workbenchNodePathService.js +79 -0
- package/dist/services/workbenchRegistryService.js +240 -0
- package/dist/services/workbenchRootService.js +181 -0
- package/dist/services/workbenchTerminalBroker.js +378 -0
- package/dist/services/workspaceRunOwnership.js +60 -0
- package/dist/services/workspaceScaffold.js +105 -0
- package/dist/services/workspaceSessionRuntimeService.js +576 -0
- package/dist/services/workspaceSessionService.js +245 -0
- package/dist/services/workspaceToolActionRunner.js +1582 -0
- package/dist/services/workspaceToolErrors.js +10 -0
- package/dist/services/workspaceToolExecutionUtils.js +895 -0
- package/dist/services/workspaceToolLatestStateProjector.js +91 -0
- package/dist/services/workspaceToolManifest.js +572 -0
- package/dist/services/workspaceToolMutationQueue.js +43 -0
- package/dist/services/workspaceToolPanelProjection.js +460 -0
- package/dist/services/workspaceToolPromotion.js +255 -0
- package/dist/services/workspaceToolPromotionState.js +224 -0
- package/dist/services/workspaceToolPublishDiagnostics.js +189 -0
- package/dist/services/workspaceToolPublishIdentityResolver.js +146 -0
- package/dist/services/workspaceToolReadModel.js +378 -0
- package/dist/services/workspaceToolRunLedger.js +239 -0
- package/dist/services/workspaceToolService.js +3067 -0
- package/dist/services/workspaceToolSnapshotPanelSync.js +293 -0
- package/dist/services/workspaceToolTerminalLifecycle.js +283 -0
- package/dist/services/workspaceToolTypes.js +1 -0
- package/dist/services/workspaceToolUploadMaterializer.js +228 -0
- package/dist/web/actionCardRoutes.js +129 -0
- package/dist/web/actionCards.js +469 -0
- package/dist/web/activationContext.js +684 -0
- package/dist/web/agentChannelGuards.js +48 -0
- package/dist/web/agentMentionCooldowns.js +32 -0
- package/dist/web/agentReminders.js +1668 -0
- package/dist/web/agentRuntimePresence.js +197 -0
- package/dist/web/agentSelfState.js +494 -0
- package/dist/web/agentTaskLinks.js +26 -0
- package/dist/web/agentVisibility.js +79 -0
- package/dist/web/assets.js +95 -0
- package/dist/web/channelActivationPrompt.js +395 -0
- package/dist/web/channelMemoryNotes.js +127 -0
- package/dist/web/channelMentions.js +10 -0
- package/dist/web/channelMessageSequences.js +19 -0
- package/dist/web/channelSubscriptions.js +26 -0
- package/dist/web/clearedTaskRoots.js +10 -0
- package/dist/web/collaborationPromptGuidance.js +36 -0
- package/dist/web/collaborationSurfaceState.js +140 -0
- package/dist/web/contextBundleRanking.js +154 -0
- package/dist/web/contextBundleResolver.js +488 -0
- package/dist/web/conversationBuiltinSkillRoots.js +50 -0
- package/dist/web/conversationControls.js +232 -0
- package/dist/web/conversationHandoffs.js +612 -0
- package/dist/web/conversationManager.js +2511 -0
- package/dist/web/conversationSummaries.js +876 -0
- package/dist/web/conversationSurfaceKinds.js +17 -0
- package/dist/web/conversationTargets.js +173 -0
- package/dist/web/directActivationPrompt.js +122 -0
- package/dist/web/directReplyTargets.js +69 -0
- package/dist/web/directThreadResolver.js +129 -0
- package/dist/web/dmTaskHandoffPrompt.js +120 -0
- package/dist/web/dmTaskThreadStatusProjection.js +229 -0
- package/dist/web/ftsQuery.js +33 -0
- package/dist/web/internalAgentRouter.js +11341 -0
- package/dist/web/libraryCuratorScheduler.js +58 -0
- package/dist/web/libraryDocumentPromptGuidance.js +8 -0
- package/dist/web/messageCheckpoints.js +19 -0
- package/dist/web/nodeWsHandler.js +2495 -0
- package/dist/web/notificationRounds.js +1061 -0
- package/dist/web/panelActionMessages.js +108 -0
- package/dist/web/panelActivationPrompt.js +18 -0
- package/dist/web/panelAudit.js +273 -0
- package/dist/web/panelLifecycle.js +222 -0
- package/dist/web/panelMediaPolicy.js +43 -0
- package/dist/web/panelPathPolicy.js +63 -0
- package/dist/web/panelPreviews.js +175 -0
- package/dist/web/panelQueryHandles.js +2749 -0
- package/dist/web/panelRoutes.js +2147 -0
- package/dist/web/panels.js +904 -0
- package/dist/web/peerInboxAggregates.js +1247 -0
- package/dist/web/planApprovalState.js +92 -0
- package/dist/web/platformAgentScheduler.js +66 -0
- package/dist/web/proactiveOpportunities.js +452 -0
- package/dist/web/promptContextSections.js +242 -0
- package/dist/web/promptHistorySanitizer.js +26 -0
- package/dist/web/promptSlashCommands.js +158 -0
- package/dist/web/rollingConversationSummary.js +453 -0
- package/dist/web/routeHelpers.js +11 -0
- package/dist/web/routes/handoff.js +288 -0
- package/dist/web/routes/history.js +345 -0
- package/dist/web/routes/memory.js +258 -0
- package/dist/web/routes/selfState.js +171 -0
- package/dist/web/routes/workspace.js +154 -0
- package/dist/web/runSurfaceWatermarks.js +431 -0
- package/dist/web/runtimeCapabilities.js +48 -0
- package/dist/web/sameAgentHandoffs.js +494 -0
- package/dist/web/server.js +15567 -0
- package/dist/web/sharedCollaborationCapsules.js +163 -0
- package/dist/web/soloSessionRelay.js +42 -0
- package/dist/web/soloWsHandler.js +138 -0
- package/dist/web/suggestedPlannerScheduler.js +56 -0
- package/dist/web/surfaceActivationPolicy.js +108 -0
- package/dist/web/surfaceCollaborators.js +61 -0
- package/dist/web/surfaceSystemStatus.js +263 -0
- package/dist/web/targetParticipants.js +77 -0
- package/dist/web/taskEvents.js +49 -0
- package/dist/web/taskLifecycleMessages.js +165 -0
- package/dist/web/taskLoops.js +732 -0
- package/dist/web/taskMemoryNotes.js +224 -0
- package/dist/web/taskNumbers.js +16 -0
- package/dist/web/taskOwnerGuards.js +49 -0
- package/dist/web/taskParticipantResolver.js +42 -0
- package/dist/web/taskParticipants.js +97 -0
- package/dist/web/taskSourceDetails.js +20 -0
- package/dist/web/taskStateViews.js +210 -0
- package/dist/web/taskStatusTransitions.js +9 -0
- package/dist/web/taskThreadFollowups.js +599 -0
- package/dist/web/taskThreadRuntimeClosure.js +685 -0
- package/dist/web/taskUpdateDelivery.js +104 -0
- package/dist/web/threadReplyContentHeuristics.js +30 -0
- package/dist/web/threadRoots.js +61 -0
- package/dist/web/threadTaskBindings.js +365 -0
- package/dist/web/uiPanelPromptGuidance.js +27 -0
- package/dist/web/workspaceMemoryHints.js +143 -0
- package/dist/web/workspaceToolPromptGuidance.js +30 -0
- package/dist/web/wsHandler.js +397 -0
- package/dist/web/wsSink.js +116 -0
- package/package.json +54 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { WorkspaceToolServiceError } from './workspaceToolErrors.js';
|
|
3
|
+
import { normalizeWorkspaceToolRunEventEnvelope, runRowToInfo, serializeJson, } from './workspaceToolExecutionUtils.js';
|
|
4
|
+
import { workspaceToolRunRowToInfoForViewer } from './workspaceToolReadModel.js';
|
|
5
|
+
export class WorkspaceToolRunLedger {
|
|
6
|
+
deps;
|
|
7
|
+
constructor(deps) {
|
|
8
|
+
this.deps = deps;
|
|
9
|
+
}
|
|
10
|
+
hasRunRow(runId) {
|
|
11
|
+
const row = this.deps.db.prepare(`SELECT 1 as present
|
|
12
|
+
FROM workspace_tool_runs
|
|
13
|
+
WHERE run_id = ?
|
|
14
|
+
LIMIT 1`).get(runId);
|
|
15
|
+
return Boolean(row);
|
|
16
|
+
}
|
|
17
|
+
insertRun(run) {
|
|
18
|
+
this.deps.db.prepare(`INSERT INTO workspace_tool_runs(
|
|
19
|
+
run_id,
|
|
20
|
+
tool_id,
|
|
21
|
+
action_id,
|
|
22
|
+
terminal_id,
|
|
23
|
+
status,
|
|
24
|
+
params_json,
|
|
25
|
+
exit_code,
|
|
26
|
+
signal,
|
|
27
|
+
started_at,
|
|
28
|
+
ended_at,
|
|
29
|
+
requested_by_user_id,
|
|
30
|
+
requested_by_agent_id,
|
|
31
|
+
tool_revision,
|
|
32
|
+
source_bundle_root,
|
|
33
|
+
action_cwd_absolute,
|
|
34
|
+
runtime_log_dir,
|
|
35
|
+
execution_target_kind,
|
|
36
|
+
execution_agent_id,
|
|
37
|
+
execution_node_id,
|
|
38
|
+
execution_hostname,
|
|
39
|
+
execution_workspace_path
|
|
40
|
+
)
|
|
41
|
+
VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(run.runId, run.toolId, run.actionId, run.terminalId, run.status, run.paramsJson, run.exitCode, run.signal, run.startedAt, run.endedAt, run.requestedByUserId, run.requestedByAgentId ?? null, run.toolRevision ?? null, run.sourceBundleRoot ?? null, run.actionCwdAbsolute ?? null, run.runtimeLogDir ?? null, run.executionTargetKind ?? null, run.executionAgentId ?? null, run.executionNodeId ?? null, run.executionHostname ?? null, run.executionWorkspacePath ?? null);
|
|
42
|
+
}
|
|
43
|
+
completeRun(runId, params) {
|
|
44
|
+
this.deps.db.prepare(`UPDATE workspace_tool_runs
|
|
45
|
+
SET status = ?,
|
|
46
|
+
ended_at = ?,
|
|
47
|
+
exit_code = ?,
|
|
48
|
+
signal = ?
|
|
49
|
+
WHERE run_id = ?`).run(params.status, params.endedAt, params.exitCode ?? null, params.signal ?? null, runId);
|
|
50
|
+
}
|
|
51
|
+
completeRunAndClearActiveTerminal(runId, toolId, completion) {
|
|
52
|
+
this.completeRun(runId, completion);
|
|
53
|
+
this.deps.db.prepare(`UPDATE workspace_tools
|
|
54
|
+
SET active_terminal_id = NULL,
|
|
55
|
+
updated_at = ?
|
|
56
|
+
WHERE tool_id = ?`).run(Date.now(), toolId);
|
|
57
|
+
}
|
|
58
|
+
requireRun(runId, actionKind, viewerUserId, ownerUserId) {
|
|
59
|
+
const row = this.deps.db.prepare(`SELECT run_id as runId,
|
|
60
|
+
wtr.tool_id as toolId,
|
|
61
|
+
action_id as actionId,
|
|
62
|
+
terminal_id as terminalId,
|
|
63
|
+
status,
|
|
64
|
+
params_json as paramsJson,
|
|
65
|
+
exit_code as exitCode,
|
|
66
|
+
signal,
|
|
67
|
+
started_at as startedAt,
|
|
68
|
+
ended_at as endedAt,
|
|
69
|
+
requested_by_user_id as requestedByUserId,
|
|
70
|
+
u.username as requestedByUsername,
|
|
71
|
+
requested_by_agent_id as requestedByAgentId,
|
|
72
|
+
a.name as requestedByAgentName,
|
|
73
|
+
execution_target_kind as executionTargetKind,
|
|
74
|
+
runtime_log_dir as runtimeLogDir,
|
|
75
|
+
execution_agent_id as executionAgentId,
|
|
76
|
+
execution_node_id as executionNodeId,
|
|
77
|
+
execution_hostname as executionHostname,
|
|
78
|
+
execution_workspace_path as executionWorkspacePath
|
|
79
|
+
FROM workspace_tool_runs wtr
|
|
80
|
+
LEFT JOIN users u ON u.id = wtr.requested_by_user_id
|
|
81
|
+
LEFT JOIN agents a ON a.agent_id = wtr.requested_by_agent_id
|
|
82
|
+
WHERE run_id = ?`).get(runId);
|
|
83
|
+
if (!row) {
|
|
84
|
+
throw new WorkspaceToolServiceError('Tool run not found.', 500);
|
|
85
|
+
}
|
|
86
|
+
return this.runInfoForActionViewer(row, actionKind, viewerUserId, ownerUserId);
|
|
87
|
+
}
|
|
88
|
+
runInfoForActionViewer(row, actionKind, viewerUserId, ownerUserId) {
|
|
89
|
+
const canViewOwnerFields = viewerUserId === ownerUserId || this.deps.isAdminUser(viewerUserId);
|
|
90
|
+
return workspaceToolRunRowToInfoForViewer(row, actionKind, {
|
|
91
|
+
viewerUserId,
|
|
92
|
+
ownerUserId,
|
|
93
|
+
canViewOwnerFields,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
runRowToInfo(row, actionKind) {
|
|
97
|
+
return runRowToInfo(row, actionKind);
|
|
98
|
+
}
|
|
99
|
+
recordRunEventsFromOutput(runId, toolId, outputText) {
|
|
100
|
+
for (const line of outputText.split('\n')) {
|
|
101
|
+
const trimmed = line.trim();
|
|
102
|
+
if (!trimmed)
|
|
103
|
+
continue;
|
|
104
|
+
let parsed;
|
|
105
|
+
try {
|
|
106
|
+
parsed = JSON.parse(trimmed);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
this.insertRunEventFromEnvelope(runId, toolId, parsed);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
insertRunEventFromEnvelope(runId, toolId, value) {
|
|
115
|
+
const event = normalizeWorkspaceToolRunEventEnvelope(value);
|
|
116
|
+
if (!event)
|
|
117
|
+
return false;
|
|
118
|
+
this.deps.db.prepare(`INSERT INTO workspace_tool_run_events(
|
|
119
|
+
event_id,
|
|
120
|
+
run_id,
|
|
121
|
+
tool_id,
|
|
122
|
+
sequence,
|
|
123
|
+
event_type,
|
|
124
|
+
level,
|
|
125
|
+
summary,
|
|
126
|
+
payload_json,
|
|
127
|
+
artifacts_json,
|
|
128
|
+
created_at
|
|
129
|
+
)
|
|
130
|
+
VALUES(
|
|
131
|
+
?,
|
|
132
|
+
?,
|
|
133
|
+
?,
|
|
134
|
+
COALESCE((SELECT MAX(sequence) + 1 FROM workspace_tool_run_events WHERE run_id = ?), 1),
|
|
135
|
+
?,
|
|
136
|
+
?,
|
|
137
|
+
?,
|
|
138
|
+
?,
|
|
139
|
+
?,
|
|
140
|
+
?
|
|
141
|
+
)`).run(randomUUID(), runId, toolId, runId, event.eventType, event.level, event.summary, event.payloadJson, event.artifactsJson, Date.now());
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
insertCleanupRunEvent(runId, toolId, type, payload) {
|
|
145
|
+
const payloadJson = serializeJson({
|
|
146
|
+
actionId: payload.actionId,
|
|
147
|
+
timeoutMs: payload.timeoutMs,
|
|
148
|
+
exitCode: payload.exitCode,
|
|
149
|
+
signal: payload.signal,
|
|
150
|
+
error: payload.error,
|
|
151
|
+
});
|
|
152
|
+
this.deps.db.prepare(`INSERT INTO workspace_tool_run_events(
|
|
153
|
+
event_id,
|
|
154
|
+
run_id,
|
|
155
|
+
tool_id,
|
|
156
|
+
sequence,
|
|
157
|
+
event_type,
|
|
158
|
+
level,
|
|
159
|
+
summary,
|
|
160
|
+
payload_json,
|
|
161
|
+
artifacts_json,
|
|
162
|
+
created_at
|
|
163
|
+
)
|
|
164
|
+
VALUES(
|
|
165
|
+
?,
|
|
166
|
+
?,
|
|
167
|
+
?,
|
|
168
|
+
COALESCE((SELECT MAX(sequence) + 1 FROM workspace_tool_run_events WHERE run_id = ?), 1),
|
|
169
|
+
?,
|
|
170
|
+
?,
|
|
171
|
+
?,
|
|
172
|
+
?,
|
|
173
|
+
NULL,
|
|
174
|
+
?
|
|
175
|
+
)`).run(randomUUID(), runId, toolId, runId, type, type === 'cleanup_completed' || type === 'cleanup_started' ? 'info' : 'error', payload.summary, payloadJson, Date.now());
|
|
176
|
+
}
|
|
177
|
+
insertPersistentRuntimeActionTimeoutRunEvent(runId, toolId, payload) {
|
|
178
|
+
const payloadJson = serializeJson({
|
|
179
|
+
actionId: payload.actionId,
|
|
180
|
+
timeoutMs: payload.timeoutMs,
|
|
181
|
+
error: payload.error,
|
|
182
|
+
expectedResultPath: payload.expectedResultPath,
|
|
183
|
+
});
|
|
184
|
+
this.deps.db.prepare(`INSERT INTO workspace_tool_run_events(
|
|
185
|
+
event_id,
|
|
186
|
+
run_id,
|
|
187
|
+
tool_id,
|
|
188
|
+
sequence,
|
|
189
|
+
event_type,
|
|
190
|
+
level,
|
|
191
|
+
summary,
|
|
192
|
+
payload_json,
|
|
193
|
+
artifacts_json,
|
|
194
|
+
created_at
|
|
195
|
+
)
|
|
196
|
+
VALUES(
|
|
197
|
+
?,
|
|
198
|
+
?,
|
|
199
|
+
?,
|
|
200
|
+
COALESCE((SELECT MAX(sequence) + 1 FROM workspace_tool_run_events WHERE run_id = ?), 1),
|
|
201
|
+
'runtime_action_timed_out',
|
|
202
|
+
'error',
|
|
203
|
+
?,
|
|
204
|
+
?,
|
|
205
|
+
NULL,
|
|
206
|
+
?
|
|
207
|
+
)`).run(randomUUID(), runId, toolId, runId, `Persistent runtime action "${payload.actionId}" timed out: did not write a result or error event per protocol.`, payloadJson, Date.now());
|
|
208
|
+
}
|
|
209
|
+
insertMissingTerminalRunEvent(runId, toolId, payload) {
|
|
210
|
+
const payloadJson = serializeJson({
|
|
211
|
+
actionId: payload.actionId,
|
|
212
|
+
error: payload.error,
|
|
213
|
+
});
|
|
214
|
+
this.deps.db.prepare(`INSERT INTO workspace_tool_run_events(
|
|
215
|
+
event_id,
|
|
216
|
+
run_id,
|
|
217
|
+
tool_id,
|
|
218
|
+
sequence,
|
|
219
|
+
event_type,
|
|
220
|
+
level,
|
|
221
|
+
summary,
|
|
222
|
+
payload_json,
|
|
223
|
+
artifacts_json,
|
|
224
|
+
created_at
|
|
225
|
+
)
|
|
226
|
+
VALUES(
|
|
227
|
+
?,
|
|
228
|
+
?,
|
|
229
|
+
?,
|
|
230
|
+
COALESCE((SELECT MAX(sequence) + 1 FROM workspace_tool_run_events WHERE run_id = ?), 1),
|
|
231
|
+
'runtime_terminal_missing',
|
|
232
|
+
'error',
|
|
233
|
+
?,
|
|
234
|
+
?,
|
|
235
|
+
NULL,
|
|
236
|
+
?
|
|
237
|
+
)`).run(randomUUID(), runId, toolId, runId, `Tool run terminal was lost before the action completed: ${payload.error}`, payloadJson, Date.now());
|
|
238
|
+
}
|
|
239
|
+
}
|