@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.
Files changed (67) hide show
  1. package/dist/server/client/daemon-client.d.ts +10 -0
  2. package/dist/server/client/daemon-client.d.ts.map +1 -1
  3. package/dist/server/client/daemon-client.js +58 -0
  4. package/dist/server/client/daemon-client.js.map +1 -1
  5. package/dist/server/server/agent/agent-checkpoint-storage.d.ts +126 -0
  6. package/dist/server/server/agent/agent-checkpoint-storage.d.ts.map +1 -0
  7. package/dist/server/server/agent/agent-checkpoint-storage.js +203 -0
  8. package/dist/server/server/agent/agent-checkpoint-storage.js.map +1 -0
  9. package/dist/server/server/agent/agent-manager.d.ts +16 -0
  10. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  11. package/dist/server/server/agent/agent-manager.js +584 -12
  12. package/dist/server/server/agent/agent-manager.js.map +1 -1
  13. package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
  14. package/dist/server/server/agent/agent-projections.js +5 -0
  15. package/dist/server/server/agent/agent-projections.js.map +1 -1
  16. package/dist/server/server/agent/agent-sdk-types.d.ts +2 -2
  17. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  18. package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
  19. package/dist/server/server/agent/agent-storage.d.ts +37 -37
  20. package/dist/server/server/agent/harness/context.d.ts +2 -1
  21. package/dist/server/server/agent/harness/context.d.ts.map +1 -1
  22. package/dist/server/server/agent/harness/context.js +106 -0
  23. package/dist/server/server/agent/harness/context.js.map +1 -1
  24. package/dist/server/server/agent/harness/memory.d.ts.map +1 -1
  25. package/dist/server/server/agent/harness/memory.js +38 -8
  26. package/dist/server/server/agent/harness/memory.js.map +1 -1
  27. package/dist/server/server/agent/harness/permission-policy.d.ts +10 -0
  28. package/dist/server/server/agent/harness/permission-policy.d.ts.map +1 -0
  29. package/dist/server/server/agent/harness/permission-policy.js +86 -0
  30. package/dist/server/server/agent/harness/permission-policy.js.map +1 -0
  31. package/dist/server/server/agent/harness/risk-classifier.d.ts +8 -0
  32. package/dist/server/server/agent/harness/risk-classifier.d.ts.map +1 -0
  33. package/dist/server/server/agent/harness/risk-classifier.js +73 -0
  34. package/dist/server/server/agent/harness/risk-classifier.js.map +1 -0
  35. package/dist/server/server/agent/harness/run-ledger.d.ts +21 -0
  36. package/dist/server/server/agent/harness/run-ledger.d.ts.map +1 -0
  37. package/dist/server/server/agent/harness/run-ledger.js +79 -0
  38. package/dist/server/server/agent/harness/run-ledger.js.map +1 -0
  39. package/dist/server/server/agent/harness/session-bundle.d.ts +13 -0
  40. package/dist/server/server/agent/harness/session-bundle.d.ts.map +1 -0
  41. package/dist/server/server/agent/harness/session-bundle.js +50 -0
  42. package/dist/server/server/agent/harness/session-bundle.js.map +1 -0
  43. package/dist/server/server/agent/harness/types.d.ts +150 -2
  44. package/dist/server/server/agent/harness/types.d.ts.map +1 -1
  45. package/dist/server/server/agent/harness/types.js +1 -1
  46. package/dist/server/server/agent/harness/types.js.map +1 -1
  47. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +2 -2
  48. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  49. package/dist/server/server/bootstrap.d.ts +1 -0
  50. package/dist/server/server/bootstrap.d.ts.map +1 -1
  51. package/dist/server/server/bootstrap.js +4 -0
  52. package/dist/server/server/bootstrap.js.map +1 -1
  53. package/dist/server/server/config.d.ts.map +1 -1
  54. package/dist/server/server/config.js +1 -0
  55. package/dist/server/server/config.js.map +1 -1
  56. package/dist/server/server/persisted-config.d.ts +6 -6
  57. package/dist/server/server/session.d.ts +2 -0
  58. package/dist/server/server/session.d.ts.map +1 -1
  59. package/dist/server/server/session.js +94 -0
  60. package/dist/server/server/session.js.map +1 -1
  61. package/dist/server/shared/messages.d.ts +9992 -7147
  62. package/dist/server/shared/messages.d.ts.map +1 -1
  63. package/dist/server/shared/messages.js +230 -0
  64. package/dist/server/shared/messages.js.map +1 -1
  65. package/dist/server/shared/switchboard.d.ts +1 -1
  66. package/dist/server/utils/worktree-metadata.d.ts +8 -8
  67. 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,