@junctionpanel/server 0.1.83 → 0.1.85
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/server/client/daemon-client.d.ts +10 -0
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +58 -0
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-checkpoint-storage.d.ts +126 -0
- package/dist/server/server/agent/agent-checkpoint-storage.d.ts.map +1 -0
- package/dist/server/server/agent/agent-checkpoint-storage.js +203 -0
- package/dist/server/server/agent/agent-checkpoint-storage.js.map +1 -0
- package/dist/server/server/agent/agent-manager.d.ts +16 -0
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +584 -12
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
- package/dist/server/server/agent/agent-projections.js +5 -0
- package/dist/server/server/agent/agent-projections.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +2 -2
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
- package/dist/server/server/agent/agent-storage.d.ts +37 -37
- package/dist/server/server/agent/harness/context.d.ts +2 -1
- package/dist/server/server/agent/harness/context.d.ts.map +1 -1
- package/dist/server/server/agent/harness/context.js +106 -0
- package/dist/server/server/agent/harness/context.js.map +1 -1
- package/dist/server/server/agent/harness/memory.d.ts.map +1 -1
- package/dist/server/server/agent/harness/memory.js +38 -8
- package/dist/server/server/agent/harness/memory.js.map +1 -1
- package/dist/server/server/agent/harness/permission-policy.d.ts +10 -0
- package/dist/server/server/agent/harness/permission-policy.d.ts.map +1 -0
- package/dist/server/server/agent/harness/permission-policy.js +86 -0
- package/dist/server/server/agent/harness/permission-policy.js.map +1 -0
- package/dist/server/server/agent/harness/risk-classifier.d.ts +8 -0
- package/dist/server/server/agent/harness/risk-classifier.d.ts.map +1 -0
- package/dist/server/server/agent/harness/risk-classifier.js +73 -0
- package/dist/server/server/agent/harness/risk-classifier.js.map +1 -0
- package/dist/server/server/agent/harness/run-ledger.d.ts +21 -0
- package/dist/server/server/agent/harness/run-ledger.d.ts.map +1 -0
- package/dist/server/server/agent/harness/run-ledger.js +79 -0
- package/dist/server/server/agent/harness/run-ledger.js.map +1 -0
- package/dist/server/server/agent/harness/session-bundle.d.ts +13 -0
- package/dist/server/server/agent/harness/session-bundle.d.ts.map +1 -0
- package/dist/server/server/agent/harness/session-bundle.js +50 -0
- package/dist/server/server/agent/harness/session-bundle.js.map +1 -0
- package/dist/server/server/agent/harness/types.d.ts +150 -2
- package/dist/server/server/agent/harness/types.d.ts.map +1 -1
- package/dist/server/server/agent/harness/types.js +1 -1
- package/dist/server/server/agent/harness/types.js.map +1 -1
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +2 -2
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
- package/dist/server/server/bootstrap.d.ts +1 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +4 -0
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/config.d.ts.map +1 -1
- package/dist/server/server/config.js +1 -0
- package/dist/server/server/config.js.map +1 -1
- package/dist/server/server/persisted-config.d.ts +6 -6
- package/dist/server/server/session.d.ts +2 -0
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +94 -0
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/shared/messages.d.ts +9992 -7147
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +230 -0
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/shared/switchboard.d.ts +1 -1
- package/dist/server/utils/worktree-metadata.d.ts +8 -8
- package/package.json +2 -2
|
@@ -40,6 +40,174 @@ const AgentUsageSchema = z.object({
|
|
|
40
40
|
outputTokens: z.number().optional(),
|
|
41
41
|
totalCostUsd: z.number().optional(),
|
|
42
42
|
});
|
|
43
|
+
const HarnessVerificationStateSchema = z.enum([
|
|
44
|
+
'not_needed',
|
|
45
|
+
'pending',
|
|
46
|
+
'passed',
|
|
47
|
+
'failed',
|
|
48
|
+
'stale',
|
|
49
|
+
]);
|
|
50
|
+
const HarnessRunOwnerSchema = z.enum([
|
|
51
|
+
'foreground',
|
|
52
|
+
'background',
|
|
53
|
+
]);
|
|
54
|
+
const HarnessRunLifecycleSchema = z.enum([
|
|
55
|
+
'queued',
|
|
56
|
+
'streaming',
|
|
57
|
+
'waiting_permission',
|
|
58
|
+
'finalizing',
|
|
59
|
+
'completed',
|
|
60
|
+
'interrupted',
|
|
61
|
+
'error',
|
|
62
|
+
'recovering',
|
|
63
|
+
]);
|
|
64
|
+
const HarnessRunRecordSchema = z.object({
|
|
65
|
+
id: z.string(),
|
|
66
|
+
owner: HarnessRunOwnerSchema,
|
|
67
|
+
lifecycle: HarnessRunLifecycleSchema,
|
|
68
|
+
createdAt: z.string(),
|
|
69
|
+
updatedAt: z.string(),
|
|
70
|
+
startedAt: z.string(),
|
|
71
|
+
completedAt: z.string().nullable(),
|
|
72
|
+
lastProgressAt: z.string().nullable(),
|
|
73
|
+
turnStartSeq: z.number().int().nullable(),
|
|
74
|
+
turnEndSeq: z.number().int().nullable(),
|
|
75
|
+
correlationId: z.string().nullable(),
|
|
76
|
+
modelId: z.string().nullable(),
|
|
77
|
+
permissionRequestId: z.string().nullable(),
|
|
78
|
+
summary: z.string().nullable(),
|
|
79
|
+
});
|
|
80
|
+
const HarnessRunLedgerSchema = z.object({
|
|
81
|
+
activeRunId: z.string().nullable(),
|
|
82
|
+
runs: z.array(HarnessRunRecordSchema),
|
|
83
|
+
});
|
|
84
|
+
const HarnessPermissionRiskSchema = z.enum([
|
|
85
|
+
'safe',
|
|
86
|
+
'review',
|
|
87
|
+
'destructive',
|
|
88
|
+
'shared_state',
|
|
89
|
+
'external_side_effect',
|
|
90
|
+
]);
|
|
91
|
+
const HarnessPermissionStatusSchema = z.enum([
|
|
92
|
+
'pending',
|
|
93
|
+
'allowed',
|
|
94
|
+
'denied',
|
|
95
|
+
'canceled',
|
|
96
|
+
]);
|
|
97
|
+
const HarnessPermissionLedgerEntrySchema = z.object({
|
|
98
|
+
requestId: z.string(),
|
|
99
|
+
provider: AgentProviderSchema.nullable(),
|
|
100
|
+
kind: z.string(),
|
|
101
|
+
toolName: z.string(),
|
|
102
|
+
fingerprint: z.string(),
|
|
103
|
+
risk: HarnessPermissionRiskSchema,
|
|
104
|
+
status: HarnessPermissionStatusSchema,
|
|
105
|
+
createdAt: z.string(),
|
|
106
|
+
updatedAt: z.string(),
|
|
107
|
+
resolutionMessage: z.string().nullable(),
|
|
108
|
+
recoveryHint: z.string().nullable(),
|
|
109
|
+
provenance: z.enum(['runtime', 'restored']),
|
|
110
|
+
});
|
|
111
|
+
const HarnessCostStateSchema = z.object({
|
|
112
|
+
turnsCompleted: z.number().int().nonnegative(),
|
|
113
|
+
totals: AgentUsageSchema,
|
|
114
|
+
lastTurnUsage: AgentUsageSchema.nullable(),
|
|
115
|
+
lastUpdatedAt: z.string().nullable(),
|
|
116
|
+
});
|
|
117
|
+
const HarnessResumeStatusSchema = z.enum([
|
|
118
|
+
'fresh',
|
|
119
|
+
'live',
|
|
120
|
+
'resumed',
|
|
121
|
+
'checkpoint_restored',
|
|
122
|
+
'recovering',
|
|
123
|
+
]);
|
|
124
|
+
const HarnessResumeStateSchema = z.object({
|
|
125
|
+
status: HarnessResumeStatusSchema,
|
|
126
|
+
source: z.enum(['new_session', 'provider_resume', 'checkpoint', 'snapshot']),
|
|
127
|
+
updatedAt: z.string(),
|
|
128
|
+
recoveryHint: z.string().nullable(),
|
|
129
|
+
});
|
|
130
|
+
const HarnessTrustStateSchema = z.enum([
|
|
131
|
+
'trusted',
|
|
132
|
+
'restricted',
|
|
133
|
+
'untrusted',
|
|
134
|
+
]);
|
|
135
|
+
const HarnessValidationRecordSchema = z.object({
|
|
136
|
+
command: z.string(),
|
|
137
|
+
status: z.enum(['passed', 'failed']),
|
|
138
|
+
timestamp: z.string(),
|
|
139
|
+
cwd: z.string().nullable().optional(),
|
|
140
|
+
scope: z.enum(['workspace', 'package', 'global', 'unknown']).optional(),
|
|
141
|
+
coveredPaths: z.array(z.string()).optional(),
|
|
142
|
+
});
|
|
143
|
+
const HarnessWorkerStateSchema = z.object({
|
|
144
|
+
id: z.string(),
|
|
145
|
+
provider: AgentProviderSchema.nullable(),
|
|
146
|
+
threadId: z.string().nullable(),
|
|
147
|
+
parentAgentId: z.string().nullable(),
|
|
148
|
+
role: z.enum(['explore', 'plan', 'implement', 'verify', 'generic']),
|
|
149
|
+
kind: z.enum(['provider_subagent', 'background_command', 'remote_task']),
|
|
150
|
+
purpose: z.string(),
|
|
151
|
+
owner: z.string().nullable(),
|
|
152
|
+
status: z.enum(['pending', 'running', 'completed', 'integrated', 'failed']),
|
|
153
|
+
queueState: z.enum(['active', 'queued', 'completed']),
|
|
154
|
+
outputSummary: z.string().nullable(),
|
|
155
|
+
changedFiles: z.array(z.string()),
|
|
156
|
+
verificationState: HarnessVerificationStateSchema,
|
|
157
|
+
startedAt: z.string().nullable(),
|
|
158
|
+
integratedAt: z.string().nullable(),
|
|
159
|
+
completedAt: z.string().nullable(),
|
|
160
|
+
sessionId: z.string().nullable(),
|
|
161
|
+
transcriptPath: z.string().nullable(),
|
|
162
|
+
outputPath: z.string().nullable(),
|
|
163
|
+
rolloutPath: z.string().nullable(),
|
|
164
|
+
recentActions: z.array(z.object({
|
|
165
|
+
index: z.number().int().nonnegative(),
|
|
166
|
+
toolName: z.string(),
|
|
167
|
+
summary: z.string().optional(),
|
|
168
|
+
})),
|
|
169
|
+
permissionState: z.enum(['none', 'pending', 'resolved']),
|
|
170
|
+
lastPermissionRequestId: z.string().nullable(),
|
|
171
|
+
lastPermissionToolName: z.string().nullable(),
|
|
172
|
+
error: z.string().nullable(),
|
|
173
|
+
progress: z.object({
|
|
174
|
+
toolCallCount: z.number().int().nonnegative(),
|
|
175
|
+
lastActivityAt: z.string(),
|
|
176
|
+
latestSummary: z.string().nullable(),
|
|
177
|
+
}),
|
|
178
|
+
lastUpdatedAt: z.string(),
|
|
179
|
+
});
|
|
180
|
+
const HarnessCheckpointSummarySchema = z.object({
|
|
181
|
+
id: z.string(),
|
|
182
|
+
kind: z.enum(['pre_mutation', 'turn_final']),
|
|
183
|
+
createdAt: z.string(),
|
|
184
|
+
objective: z.string(),
|
|
185
|
+
summary: z.string().nullable(),
|
|
186
|
+
changedFiles: z.array(z.string()),
|
|
187
|
+
restorable: z.boolean(),
|
|
188
|
+
turnStartSeq: z.number().int().nonnegative(),
|
|
189
|
+
turnEndSeq: z.number().int().nonnegative(),
|
|
190
|
+
});
|
|
191
|
+
const JunctionHarnessSummarySchema = z.object({
|
|
192
|
+
harnessVersion: z.string(),
|
|
193
|
+
objective: z.string().nullable(),
|
|
194
|
+
trustState: HarnessTrustStateSchema,
|
|
195
|
+
verification: z.object({
|
|
196
|
+
state: HarnessVerificationStateSchema,
|
|
197
|
+
lastValidatedAt: z.string().nullable(),
|
|
198
|
+
nextRequiredAction: z.string().nullable(),
|
|
199
|
+
changedFiles: z.array(z.string()),
|
|
200
|
+
lastValidation: HarnessValidationRecordSchema.nullable(),
|
|
201
|
+
}),
|
|
202
|
+
blockers: z.array(z.string()),
|
|
203
|
+
runLedger: HarnessRunLedgerSchema,
|
|
204
|
+
permissionLedger: z.array(HarnessPermissionLedgerEntrySchema),
|
|
205
|
+
costState: HarnessCostStateSchema,
|
|
206
|
+
resumeState: HarnessResumeStateSchema.nullable(),
|
|
207
|
+
scratchpadDir: z.string().nullable(),
|
|
208
|
+
workers: z.array(HarnessWorkerStateSchema),
|
|
209
|
+
checkpoints: z.array(HarnessCheckpointSummarySchema),
|
|
210
|
+
});
|
|
43
211
|
const AgentImagePreviewSchema = z.object({
|
|
44
212
|
data: z.string(),
|
|
45
213
|
mimeType: z.string(),
|
|
@@ -270,6 +438,31 @@ const ToolCallTimelineItemPayloadSchema = z.union([
|
|
|
270
438
|
ToolCallFailedPayloadSchema,
|
|
271
439
|
ToolCallCanceledPayloadSchema,
|
|
272
440
|
]);
|
|
441
|
+
const HarnessEventTimelineItemPayloadSchema = z.object({
|
|
442
|
+
type: z.literal('harness_event'),
|
|
443
|
+
kind: z.enum([
|
|
444
|
+
'checkpoint_created',
|
|
445
|
+
'checkpoint_restored',
|
|
446
|
+
'verification_changed',
|
|
447
|
+
'trust_changed',
|
|
448
|
+
'worker_updated',
|
|
449
|
+
'hook_decision',
|
|
450
|
+
'memory_compacted',
|
|
451
|
+
'run_state_changed',
|
|
452
|
+
'permission_enqueued',
|
|
453
|
+
'permission_resolved',
|
|
454
|
+
'recovery_hint_emitted',
|
|
455
|
+
'stall_detected',
|
|
456
|
+
'stall_cleared',
|
|
457
|
+
'resume_restored',
|
|
458
|
+
]),
|
|
459
|
+
summary: z.string(),
|
|
460
|
+
details: z.record(z.unknown()).optional(),
|
|
461
|
+
checkpointId: z.string().nullable().optional(),
|
|
462
|
+
verificationState: HarnessVerificationStateSchema.optional(),
|
|
463
|
+
trustState: HarnessTrustStateSchema.optional(),
|
|
464
|
+
workerId: z.string().nullable().optional(),
|
|
465
|
+
});
|
|
273
466
|
export const AgentTimelineItemPayloadSchema = z.union([
|
|
274
467
|
z.object({
|
|
275
468
|
type: z.literal('user_message'),
|
|
@@ -323,6 +516,7 @@ export const AgentTimelineItemPayloadSchema = z.union([
|
|
|
323
516
|
requestId: z.string(),
|
|
324
517
|
resolution: PersistedPermissionResolutionSchema,
|
|
325
518
|
}),
|
|
519
|
+
HarnessEventTimelineItemPayloadSchema,
|
|
326
520
|
]);
|
|
327
521
|
export const AgentStreamEventPayloadSchema = z.discriminatedUnion('type', [
|
|
328
522
|
z.object({
|
|
@@ -441,6 +635,7 @@ export const AgentSnapshotPayloadSchema = z.object({
|
|
|
441
635
|
pendingPermissions: z.array(AgentPermissionRequestPayloadSchema),
|
|
442
636
|
persistence: AgentPersistenceHandleSchema.nullable(),
|
|
443
637
|
runtimeInfo: AgentRuntimeInfoSchema.optional(),
|
|
638
|
+
harness: JunctionHarnessSummarySchema.optional(),
|
|
444
639
|
lastUsage: AgentUsageSchema.optional(),
|
|
445
640
|
activeTurnStartedAt: z.string().nullable().optional(),
|
|
446
641
|
lastError: z.string().optional(),
|
|
@@ -546,6 +741,17 @@ export const FetchAgentRequestMessageSchema = z.object({
|
|
|
546
741
|
/** Accepts full ID, unique prefix, or exact full title (server resolves). */
|
|
547
742
|
agentId: z.string(),
|
|
548
743
|
});
|
|
744
|
+
export const ListAgentCheckpointsRequestMessageSchema = z.object({
|
|
745
|
+
type: z.literal('list_agent_checkpoints_request'),
|
|
746
|
+
requestId: z.string(),
|
|
747
|
+
agentId: z.string(),
|
|
748
|
+
});
|
|
749
|
+
export const RestoreAgentCheckpointRequestMessageSchema = z.object({
|
|
750
|
+
type: z.literal('restore_agent_checkpoint_request'),
|
|
751
|
+
requestId: z.string(),
|
|
752
|
+
agentId: z.string(),
|
|
753
|
+
checkpointId: z.string(),
|
|
754
|
+
});
|
|
549
755
|
export const SendAgentMessageRequestSchema = z.object({
|
|
550
756
|
type: z.literal('send_agent_message_request'),
|
|
551
757
|
requestId: z.string(),
|
|
@@ -1200,6 +1406,8 @@ export const SessionInboundMessageSchema = z.discriminatedUnion('type', [
|
|
|
1200
1406
|
AbortRequestMessageSchema,
|
|
1201
1407
|
FetchAgentsRequestMessageSchema,
|
|
1202
1408
|
FetchAgentRequestMessageSchema,
|
|
1409
|
+
ListAgentCheckpointsRequestMessageSchema,
|
|
1410
|
+
RestoreAgentCheckpointRequestMessageSchema,
|
|
1203
1411
|
DeleteAgentRequestMessageSchema,
|
|
1204
1412
|
ArchiveAgentRequestMessageSchema,
|
|
1205
1413
|
UnarchiveAgentRequestMessageSchema,
|
|
@@ -1587,6 +1795,26 @@ export const FetchAgentResponseMessageSchema = z.object({
|
|
|
1587
1795
|
error: z.string().nullable(),
|
|
1588
1796
|
}),
|
|
1589
1797
|
});
|
|
1798
|
+
export const ListAgentCheckpointsResponseMessageSchema = z.object({
|
|
1799
|
+
type: z.literal('list_agent_checkpoints_response'),
|
|
1800
|
+
payload: z.object({
|
|
1801
|
+
requestId: z.string(),
|
|
1802
|
+
agentId: z.string(),
|
|
1803
|
+
checkpoints: z.array(HarnessCheckpointSummarySchema),
|
|
1804
|
+
error: z.string().nullable().optional(),
|
|
1805
|
+
}),
|
|
1806
|
+
});
|
|
1807
|
+
export const RestoreAgentCheckpointResponseMessageSchema = z.object({
|
|
1808
|
+
type: z.literal('restore_agent_checkpoint_response'),
|
|
1809
|
+
payload: z.object({
|
|
1810
|
+
requestId: z.string(),
|
|
1811
|
+
agentId: z.string(),
|
|
1812
|
+
checkpointId: z.string(),
|
|
1813
|
+
restored: z.boolean(),
|
|
1814
|
+
agent: AgentSnapshotPayloadSchema.nullable().optional(),
|
|
1815
|
+
error: z.string().nullable().optional(),
|
|
1816
|
+
}),
|
|
1817
|
+
});
|
|
1590
1818
|
export const FetchProviderChildThreadsResponseMessageSchema = z.object({
|
|
1591
1819
|
type: z.literal('fetch_provider_child_threads_response'),
|
|
1592
1820
|
payload: z.object({
|
|
@@ -2300,6 +2528,8 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion('type', [
|
|
|
2300
2528
|
AgentStatusMessageSchema,
|
|
2301
2529
|
FetchAgentsResponseMessageSchema,
|
|
2302
2530
|
FetchAgentResponseMessageSchema,
|
|
2531
|
+
ListAgentCheckpointsResponseMessageSchema,
|
|
2532
|
+
RestoreAgentCheckpointResponseMessageSchema,
|
|
2303
2533
|
FetchProviderChildThreadsResponseMessageSchema,
|
|
2304
2534
|
ProviderChildThreadsChangedMessageSchema,
|
|
2305
2535
|
FetchProviderThreadTimelineResponseMessageSchema,
|