imcodes 2026.4.1386-dev.1372 → 2026.4.1388-dev.1374
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/shared/p2p-advanced.d.ts +88 -0
- package/dist/shared/p2p-advanced.d.ts.map +1 -0
- package/dist/shared/p2p-advanced.js +258 -0
- package/dist/shared/p2p-advanced.js.map +1 -0
- package/dist/shared/p2p-modes.d.ts +9 -0
- package/dist/shared/p2p-modes.d.ts.map +1 -1
- package/dist/shared/p2p-modes.js +0 -1
- package/dist/shared/p2p-modes.js.map +1 -1
- package/dist/shared/p2p-status.d.ts +24 -0
- package/dist/shared/p2p-status.d.ts.map +1 -1
- package/dist/shared/p2p-status.js +0 -7
- package/dist/shared/p2p-status.js.map +1 -1
- package/dist/src/daemon/command-handler.d.ts.map +1 -1
- package/dist/src/daemon/command-handler.js +19 -1
- package/dist/src/daemon/command-handler.js.map +1 -1
- package/dist/src/daemon/cron-executor.d.ts.map +1 -1
- package/dist/src/daemon/cron-executor.js +8 -1
- package/dist/src/daemon/cron-executor.js.map +1 -1
- package/dist/src/daemon/p2p-orchestrator.d.ts +60 -10
- package/dist/src/daemon/p2p-orchestrator.d.ts.map +1 -1
- package/dist/src/daemon/p2p-orchestrator.js +654 -79
- package/dist/src/daemon/p2p-orchestrator.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export type P2pAdvancedPresetKey = 'openspec';
|
|
2
|
+
export type P2pRoundPreset = 'discussion' | 'openspec_propose' | 'proposal_audit' | 'implementation' | 'implementation_audit' | 'custom';
|
|
3
|
+
export type P2pRoundExecutionMode = 'single_main' | 'multi_dispatch';
|
|
4
|
+
export type P2pRoundPermissionScope = 'analysis_only' | 'artifact_generation' | 'implementation';
|
|
5
|
+
export type P2pRoundVerdictPolicy = 'none' | 'smart_gate' | 'forced_rework';
|
|
6
|
+
export type P2pContextReducerMode = 'reuse_existing_session' | 'clone_sdk_session';
|
|
7
|
+
export type P2pVerdictMarker = 'PASS' | 'REWORK';
|
|
8
|
+
export type P2pDispatchStyle = 'initiator_only' | 'worker_hops';
|
|
9
|
+
export type P2pSynthesisStyle = 'none' | 'initiator_summary';
|
|
10
|
+
export interface P2pContextReducerConfig {
|
|
11
|
+
mode: P2pContextReducerMode;
|
|
12
|
+
sessionName?: string;
|
|
13
|
+
templateSession?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface P2pAdvancedJumpRule {
|
|
16
|
+
targetRoundId: string;
|
|
17
|
+
marker?: P2pVerdictMarker;
|
|
18
|
+
minTriggers: number;
|
|
19
|
+
maxTriggers: number;
|
|
20
|
+
}
|
|
21
|
+
export interface P2pAdvancedRound {
|
|
22
|
+
id: string;
|
|
23
|
+
title: string;
|
|
24
|
+
preset: P2pRoundPreset;
|
|
25
|
+
executionMode: P2pRoundExecutionMode;
|
|
26
|
+
permissionScope: P2pRoundPermissionScope;
|
|
27
|
+
timeoutMinutes?: number;
|
|
28
|
+
artifactOutputs?: string[];
|
|
29
|
+
promptAppend?: string;
|
|
30
|
+
verdictPolicy?: P2pRoundVerdictPolicy;
|
|
31
|
+
jumpRule?: P2pAdvancedJumpRule;
|
|
32
|
+
}
|
|
33
|
+
export interface P2pParticipantSnapshotEntry {
|
|
34
|
+
sessionName: string;
|
|
35
|
+
agentType: string;
|
|
36
|
+
parentSession?: string | null;
|
|
37
|
+
}
|
|
38
|
+
export interface P2pHelperDiagnostic {
|
|
39
|
+
code: 'P2P_HELPER_PRIMARY_FAILED' | 'P2P_HELPER_FALLBACK_FAILED' | 'P2P_HELPER_CLEANUP_FAILED' | 'P2P_COMPRESSION_SKIPPED_NO_FALLBACK' | 'P2P_VERDICT_MISSING';
|
|
40
|
+
attempt: number;
|
|
41
|
+
sourceSession?: string | null;
|
|
42
|
+
templateSession?: string | null;
|
|
43
|
+
fallbackSession?: string | null;
|
|
44
|
+
timestamp: number;
|
|
45
|
+
message?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface P2pResolvedRound {
|
|
48
|
+
id: string;
|
|
49
|
+
title: string;
|
|
50
|
+
modeKey: string;
|
|
51
|
+
preset: P2pRoundPreset;
|
|
52
|
+
executionMode: P2pRoundExecutionMode;
|
|
53
|
+
permissionScope: P2pRoundPermissionScope;
|
|
54
|
+
timeoutMinutes: number;
|
|
55
|
+
timeoutMs: number;
|
|
56
|
+
promptAppend: string;
|
|
57
|
+
verdictPolicy: P2pRoundVerdictPolicy;
|
|
58
|
+
jumpRule?: P2pAdvancedJumpRule;
|
|
59
|
+
dispatchStyle: P2pDispatchStyle;
|
|
60
|
+
synthesisStyle: P2pSynthesisStyle;
|
|
61
|
+
requiresVerdict: boolean;
|
|
62
|
+
presetPrompt: string;
|
|
63
|
+
summaryPrompt?: string;
|
|
64
|
+
authoritativeVerdictWriter: 'initiator_summary' | 'initiator_only' | null;
|
|
65
|
+
allowRouting: boolean;
|
|
66
|
+
artifactOutputs: string[];
|
|
67
|
+
artifactConvention: 'none' | 'explicit' | 'openspec_convention';
|
|
68
|
+
}
|
|
69
|
+
export interface ResolveP2pRoundPlanOptions {
|
|
70
|
+
modeOverride?: string;
|
|
71
|
+
roundsOverride?: number;
|
|
72
|
+
hopTimeoutMinutes?: number;
|
|
73
|
+
advancedPresetKey?: string | null;
|
|
74
|
+
advancedRounds?: P2pAdvancedRound[] | null;
|
|
75
|
+
advancedRunTimeoutMinutes?: number | null;
|
|
76
|
+
contextReducer?: P2pContextReducerConfig | null;
|
|
77
|
+
participants?: P2pParticipantSnapshotEntry[] | null;
|
|
78
|
+
}
|
|
79
|
+
export interface P2pResolvedPlan {
|
|
80
|
+
advanced: boolean;
|
|
81
|
+
rounds: P2pResolvedRound[];
|
|
82
|
+
overallRunTimeoutMinutes?: number;
|
|
83
|
+
contextReducer?: P2pContextReducerConfig;
|
|
84
|
+
helperEligibleSnapshot?: P2pParticipantSnapshotEntry[];
|
|
85
|
+
}
|
|
86
|
+
export declare const BUILT_IN_ADVANCED_PRESETS: Record<P2pAdvancedPresetKey, P2pAdvancedRound[]>;
|
|
87
|
+
export declare function resolveP2pRoundPlan(options: ResolveP2pRoundPlanOptions): P2pResolvedPlan;
|
|
88
|
+
//# sourceMappingURL=p2p-advanced.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"p2p-advanced.d.ts","sourceRoot":"","sources":["../../shared/p2p-advanced.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { isTransportSessionAgentType } from './agent-types.js';
|
|
2
|
+
const LEGACY_MODE_KEYS = new Set(['audit', 'review', 'plan', 'brainstorm', 'discuss']);
|
|
3
|
+
const COMBO_SEPARATOR = '>';
|
|
4
|
+
const DEFAULT_HOP_TIMEOUT_MINUTES = 8;
|
|
5
|
+
const DEFAULT_ADVANCED_RUN_TIMEOUT_MINUTES = 30;
|
|
6
|
+
function parseModePipeline(mode) {
|
|
7
|
+
if (mode.includes(COMBO_SEPARATOR)) {
|
|
8
|
+
return mode.split(COMBO_SEPARATOR).map((entry) => entry.trim()).filter(Boolean);
|
|
9
|
+
}
|
|
10
|
+
return [mode];
|
|
11
|
+
}
|
|
12
|
+
function isValidLegacyMode(mode) {
|
|
13
|
+
return LEGACY_MODE_KEYS.has(mode);
|
|
14
|
+
}
|
|
15
|
+
function validateLegacyMode(mode) {
|
|
16
|
+
const pipeline = parseModePipeline(mode);
|
|
17
|
+
if (pipeline.length === 0 || pipeline.some((entry) => !isValidLegacyMode(entry))) {
|
|
18
|
+
throw new Error(`Invalid P2P mode pipeline: ${mode}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function cloneRound(value) {
|
|
22
|
+
return JSON.parse(JSON.stringify(value));
|
|
23
|
+
}
|
|
24
|
+
function createOpenSpecPreset() {
|
|
25
|
+
return [
|
|
26
|
+
{
|
|
27
|
+
id: 'discussion',
|
|
28
|
+
title: 'Discussion',
|
|
29
|
+
preset: 'discussion',
|
|
30
|
+
executionMode: 'multi_dispatch',
|
|
31
|
+
permissionScope: 'analysis_only',
|
|
32
|
+
timeoutMinutes: 5,
|
|
33
|
+
verdictPolicy: 'none',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: 'openspec_propose',
|
|
37
|
+
title: 'OpenSpec Propose',
|
|
38
|
+
preset: 'openspec_propose',
|
|
39
|
+
executionMode: 'single_main',
|
|
40
|
+
permissionScope: 'artifact_generation',
|
|
41
|
+
timeoutMinutes: 8,
|
|
42
|
+
verdictPolicy: 'none',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
id: 'proposal_audit',
|
|
46
|
+
title: 'Proposal Audit',
|
|
47
|
+
preset: 'proposal_audit',
|
|
48
|
+
executionMode: 'single_main',
|
|
49
|
+
permissionScope: 'analysis_only',
|
|
50
|
+
timeoutMinutes: 6,
|
|
51
|
+
verdictPolicy: 'none',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: 'implementation',
|
|
55
|
+
title: 'Implementation',
|
|
56
|
+
preset: 'implementation',
|
|
57
|
+
executionMode: 'multi_dispatch',
|
|
58
|
+
permissionScope: 'implementation',
|
|
59
|
+
timeoutMinutes: 8,
|
|
60
|
+
verdictPolicy: 'none',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: 'implementation_audit',
|
|
64
|
+
title: 'Implementation Audit',
|
|
65
|
+
preset: 'implementation_audit',
|
|
66
|
+
executionMode: 'single_main',
|
|
67
|
+
permissionScope: 'analysis_only',
|
|
68
|
+
timeoutMinutes: 6,
|
|
69
|
+
verdictPolicy: 'smart_gate',
|
|
70
|
+
jumpRule: {
|
|
71
|
+
targetRoundId: 'implementation',
|
|
72
|
+
marker: 'REWORK',
|
|
73
|
+
minTriggers: 0,
|
|
74
|
+
maxTriggers: 2,
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
export const BUILT_IN_ADVANCED_PRESETS = {
|
|
80
|
+
openspec: createOpenSpecPreset(),
|
|
81
|
+
};
|
|
82
|
+
const PRESET_PROMPTS = {
|
|
83
|
+
discussion: 'Clarify the request, collect missing constraints, and synthesize the strongest next-step understanding from the evidence in the discussion file and referenced code.',
|
|
84
|
+
openspec_propose: 'Produce an OpenSpec-ready proposal/design/tasks result from the discussion and code context. Write concrete artifacts, acceptance criteria, and implementation scope rather than broad notes.',
|
|
85
|
+
proposal_audit: 'Audit the proposal artifacts for missing scope, missing acceptance criteria, contradictions, and weak assumptions. Strengthen the proposal without changing the requested objective.',
|
|
86
|
+
implementation: 'Execute the implementation work required by the current round. Prefer concrete code and tests over commentary, while staying within the stated scope and artifact targets.',
|
|
87
|
+
implementation_audit: 'Audit the implementation result against the requested scope, artifact outputs, and acceptance criteria. End with an authoritative verdict marker.',
|
|
88
|
+
custom: 'Follow the configured round contract exactly. Stay within the declared permission scope and use the configured outputs and prompt append as the operative instruction.',
|
|
89
|
+
};
|
|
90
|
+
const SUMMARY_PROMPTS = {
|
|
91
|
+
discussion: 'Synthesize the key points, areas of agreement, and open questions from this round. Then assign concrete follow-up focus for the next round.',
|
|
92
|
+
implementation: 'Synthesize the implementation outputs from the worker evidence. Produce one authoritative implementation summary that references the latest completed attempt.',
|
|
93
|
+
implementation_audit: 'Write one authoritative audit synthesis and end with exactly one verdict marker line: `<!-- P2P_VERDICT: PASS -->` or `<!-- P2P_VERDICT: REWORK -->`.',
|
|
94
|
+
};
|
|
95
|
+
function buildLegacyResolvedRound(mode, roundIndex, totalRounds, hopTimeoutMinutes) {
|
|
96
|
+
const pipeline = parseModePipeline(mode);
|
|
97
|
+
const modeKey = pipeline[Math.min(roundIndex - 1, pipeline.length - 1)] ?? mode;
|
|
98
|
+
return {
|
|
99
|
+
id: `legacy_${roundIndex}`,
|
|
100
|
+
title: `Round ${roundIndex}`,
|
|
101
|
+
modeKey,
|
|
102
|
+
preset: 'custom',
|
|
103
|
+
executionMode: 'multi_dispatch',
|
|
104
|
+
permissionScope: 'analysis_only',
|
|
105
|
+
timeoutMinutes: hopTimeoutMinutes ?? DEFAULT_HOP_TIMEOUT_MINUTES,
|
|
106
|
+
timeoutMs: (hopTimeoutMinutes ?? DEFAULT_HOP_TIMEOUT_MINUTES) * 60_000,
|
|
107
|
+
promptAppend: '',
|
|
108
|
+
verdictPolicy: 'none',
|
|
109
|
+
dispatchStyle: 'worker_hops',
|
|
110
|
+
synthesisStyle: 'initiator_summary',
|
|
111
|
+
requiresVerdict: false,
|
|
112
|
+
presetPrompt: '',
|
|
113
|
+
summaryPrompt: totalRounds === roundIndex ? undefined : 'Synthesize the key points, areas of agreement, and open questions from this round. Then assign concrete follow-up focus for the next round.',
|
|
114
|
+
authoritativeVerdictWriter: null,
|
|
115
|
+
allowRouting: false,
|
|
116
|
+
artifactOutputs: [],
|
|
117
|
+
artifactConvention: 'none',
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function defaultArtifactConvention(round) {
|
|
121
|
+
if (round.preset === 'openspec_propose' && (!round.artifactOutputs || round.artifactOutputs.length === 0)) {
|
|
122
|
+
return 'openspec_convention';
|
|
123
|
+
}
|
|
124
|
+
if (round.permissionScope === 'artifact_generation')
|
|
125
|
+
return 'explicit';
|
|
126
|
+
return 'none';
|
|
127
|
+
}
|
|
128
|
+
function normalizeAdvancedRound(round) {
|
|
129
|
+
const verdictPolicy = round.verdictPolicy ?? 'none';
|
|
130
|
+
const artifactConvention = defaultArtifactConvention(round);
|
|
131
|
+
const artifactOutputs = artifactConvention === 'openspec_convention'
|
|
132
|
+
? ['openspec/changes']
|
|
133
|
+
: [...(round.artifactOutputs ?? [])];
|
|
134
|
+
const synthesisStyle = round.executionMode === 'multi_dispatch' ? 'initiator_summary' : 'none';
|
|
135
|
+
const requiresVerdict = verdictPolicy !== 'none';
|
|
136
|
+
const authoritativeVerdictWriter = requiresVerdict
|
|
137
|
+
? (round.executionMode === 'multi_dispatch' ? 'initiator_summary' : 'initiator_only')
|
|
138
|
+
: null;
|
|
139
|
+
const allowRouting = round.preset !== 'proposal_audit' && requiresVerdict && !!round.jumpRule;
|
|
140
|
+
return {
|
|
141
|
+
id: round.id,
|
|
142
|
+
title: round.title,
|
|
143
|
+
modeKey: round.preset === 'custom' ? 'custom' : round.preset,
|
|
144
|
+
preset: round.preset,
|
|
145
|
+
executionMode: round.executionMode,
|
|
146
|
+
permissionScope: round.permissionScope,
|
|
147
|
+
timeoutMinutes: round.timeoutMinutes ?? DEFAULT_HOP_TIMEOUT_MINUTES,
|
|
148
|
+
timeoutMs: (round.timeoutMinutes ?? DEFAULT_HOP_TIMEOUT_MINUTES) * 60_000,
|
|
149
|
+
promptAppend: round.promptAppend?.trim() ?? '',
|
|
150
|
+
verdictPolicy,
|
|
151
|
+
jumpRule: round.jumpRule ? cloneRound(round.jumpRule) : undefined,
|
|
152
|
+
dispatchStyle: round.executionMode === 'single_main' ? 'initiator_only' : 'worker_hops',
|
|
153
|
+
synthesisStyle,
|
|
154
|
+
requiresVerdict,
|
|
155
|
+
presetPrompt: PRESET_PROMPTS[round.preset],
|
|
156
|
+
summaryPrompt: synthesisStyle === 'initiator_summary' ? SUMMARY_PROMPTS[round.preset] : undefined,
|
|
157
|
+
authoritativeVerdictWriter,
|
|
158
|
+
allowRouting,
|
|
159
|
+
artifactOutputs,
|
|
160
|
+
artifactConvention,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
function validateAdvancedRoundIds(rounds) {
|
|
164
|
+
const seen = new Set();
|
|
165
|
+
for (const round of rounds) {
|
|
166
|
+
if (!round.id.trim())
|
|
167
|
+
throw new Error('Advanced P2P round ids must be non-empty');
|
|
168
|
+
if (seen.has(round.id))
|
|
169
|
+
throw new Error(`Duplicate advanced P2P round id: ${round.id}`);
|
|
170
|
+
seen.add(round.id);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function validateContextReducer(reducer, participants) {
|
|
174
|
+
if (!reducer)
|
|
175
|
+
return undefined;
|
|
176
|
+
const snapshot = participants ?? [];
|
|
177
|
+
const lookup = new Map(snapshot.map((entry) => [entry.sessionName, entry]));
|
|
178
|
+
if (reducer.mode === 'reuse_existing_session') {
|
|
179
|
+
if (!reducer.sessionName)
|
|
180
|
+
throw new Error('contextReducer.sessionName is required for reuse_existing_session');
|
|
181
|
+
const target = lookup.get(reducer.sessionName);
|
|
182
|
+
if (!target || !isTransportSessionAgentType(target.agentType)) {
|
|
183
|
+
throw new Error(`Reducer session is not an eligible SDK-backed participant: ${reducer.sessionName}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
if (!reducer.templateSession)
|
|
188
|
+
throw new Error('contextReducer.templateSession is required for clone_sdk_session');
|
|
189
|
+
const template = lookup.get(reducer.templateSession);
|
|
190
|
+
if (!template || !isTransportSessionAgentType(template.agentType)) {
|
|
191
|
+
throw new Error(`Reducer template is not an eligible SDK-backed participant: ${reducer.templateSession}`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return cloneRound(reducer);
|
|
195
|
+
}
|
|
196
|
+
function validateAdvancedRounds(rounds) {
|
|
197
|
+
validateAdvancedRoundIds(rounds);
|
|
198
|
+
const ids = new Set(rounds.map((round) => round.id));
|
|
199
|
+
for (const round of rounds) {
|
|
200
|
+
const verdictPolicy = round.verdictPolicy ?? 'none';
|
|
201
|
+
const artifactConvention = defaultArtifactConvention(round);
|
|
202
|
+
if (round.permissionScope === 'artifact_generation' && artifactConvention === 'explicit' && (!round.artifactOutputs || round.artifactOutputs.length === 0)) {
|
|
203
|
+
throw new Error(`Artifact-generation round "${round.id}" must declare artifact outputs`);
|
|
204
|
+
}
|
|
205
|
+
if (verdictPolicy === 'forced_rework') {
|
|
206
|
+
if (!round.jumpRule)
|
|
207
|
+
throw new Error(`forced_rework round "${round.id}" requires a jumpRule`);
|
|
208
|
+
if (round.jumpRule.minTriggers < 0)
|
|
209
|
+
throw new Error(`forced_rework round "${round.id}" has invalid minTriggers`);
|
|
210
|
+
if (round.jumpRule.maxTriggers < round.jumpRule.minTriggers)
|
|
211
|
+
throw new Error(`forced_rework round "${round.id}" has invalid maxTriggers`);
|
|
212
|
+
}
|
|
213
|
+
if (round.jumpRule) {
|
|
214
|
+
if (!ids.has(round.jumpRule.targetRoundId))
|
|
215
|
+
throw new Error(`Round "${round.id}" jumps to unknown target "${round.jumpRule.targetRoundId}"`);
|
|
216
|
+
const currentIndex = rounds.findIndex((entry) => entry.id === round.id);
|
|
217
|
+
const targetIndex = rounds.findIndex((entry) => entry.id === round.jumpRule?.targetRoundId);
|
|
218
|
+
if (targetIndex >= currentIndex)
|
|
219
|
+
throw new Error(`Round "${round.id}" must jump backward to an earlier round`);
|
|
220
|
+
if (round.preset === 'proposal_audit')
|
|
221
|
+
throw new Error('proposal_audit cannot drive routing in v1');
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
export function resolveP2pRoundPlan(options) {
|
|
226
|
+
const { modeOverride, roundsOverride, hopTimeoutMinutes, advancedPresetKey, advancedRounds, advancedRunTimeoutMinutes, contextReducer, participants, } = options;
|
|
227
|
+
const advancedRequested = !!advancedPresetKey || !!advancedRounds?.length;
|
|
228
|
+
if (!advancedRequested) {
|
|
229
|
+
const mode = modeOverride ?? 'discuss';
|
|
230
|
+
validateLegacyMode(mode);
|
|
231
|
+
const comboRounds = parseModePipeline(mode).length;
|
|
232
|
+
const totalRounds = Math.max(1, roundsOverride ?? comboRounds);
|
|
233
|
+
return {
|
|
234
|
+
advanced: false,
|
|
235
|
+
rounds: Array.from({ length: totalRounds }, (_, index) => buildLegacyResolvedRound(mode, index + 1, totalRounds, hopTimeoutMinutes)),
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
if (advancedPresetKey && advancedPresetKey !== 'openspec') {
|
|
239
|
+
throw new Error(`Unknown advanced P2P preset: ${advancedPresetKey}`);
|
|
240
|
+
}
|
|
241
|
+
const presetRounds = advancedPresetKey === 'openspec'
|
|
242
|
+
? cloneRound(BUILT_IN_ADVANCED_PRESETS.openspec)
|
|
243
|
+
: [];
|
|
244
|
+
const rawRounds = advancedRounds?.length ? cloneRound(advancedRounds) : presetRounds;
|
|
245
|
+
if (rawRounds.length === 0)
|
|
246
|
+
throw new Error('Advanced P2P requires at least one round');
|
|
247
|
+
validateAdvancedRounds(rawRounds);
|
|
248
|
+
const validatedReducer = validateContextReducer(contextReducer, participants);
|
|
249
|
+
const helperEligibleSnapshot = (participants ?? []).filter((entry) => isTransportSessionAgentType(entry.agentType));
|
|
250
|
+
return {
|
|
251
|
+
advanced: true,
|
|
252
|
+
rounds: rawRounds.map((round) => normalizeAdvancedRound(round)),
|
|
253
|
+
overallRunTimeoutMinutes: advancedRunTimeoutMinutes ?? DEFAULT_ADVANCED_RUN_TIMEOUT_MINUTES,
|
|
254
|
+
contextReducer: validatedReducer,
|
|
255
|
+
helperEligibleSnapshot,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=p2p-advanced.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"p2p-advanced.js","sourceRoot":"","sources":["../../shared/p2p-advanced.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** P2P Quick Discussion mode configuration. */
|
|
2
|
+
import type { P2pAdvancedPresetKey, P2pAdvancedRound, P2pContextReducerConfig } from './p2p-advanced.js';
|
|
2
3
|
/** The "config" meta-mode — each session uses its own saved default mode. */
|
|
3
4
|
export declare const P2P_CONFIG_MODE: "config";
|
|
4
5
|
/** Per-session P2P configuration — stored in user preferences. */
|
|
@@ -14,6 +15,14 @@ export interface P2pSavedConfig {
|
|
|
14
15
|
extraPrompt?: string;
|
|
15
16
|
/** Per-hop timeout in minutes. Default: 8. */
|
|
16
17
|
hopTimeoutMinutes?: number;
|
|
18
|
+
/** Built-in advanced workflow preset key. */
|
|
19
|
+
advancedPresetKey?: P2pAdvancedPresetKey;
|
|
20
|
+
/** Advanced round overrides / full custom workflow definition. */
|
|
21
|
+
advancedRounds?: P2pAdvancedRound[];
|
|
22
|
+
/** Whole-run timeout for advanced workflows in minutes. */
|
|
23
|
+
advancedRunTimeoutMinutes?: number;
|
|
24
|
+
/** Optional context compression/helper config for advanced workflows. */
|
|
25
|
+
contextReducer?: P2pContextReducerConfig;
|
|
17
26
|
}
|
|
18
27
|
export interface P2pConfigSelection {
|
|
19
28
|
config: P2pSavedConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p-modes.d.ts","sourceRoot":"","sources":["../../shared/p2p-modes.ts"],"names":[],"mappings":"AAAA,+CAA+C;
|
|
1
|
+
{"version":3,"file":"p2p-modes.d.ts","sourceRoot":"","sources":["../../shared/p2p-modes.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/p2p-modes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p-modes.js","sourceRoot":"","sources":["../../shared/p2p-modes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"p2p-modes.js","sourceRoot":"","sources":["../../shared/p2p-modes.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* server/web consumers, and expose richer parallel-hop progress through
|
|
6
6
|
* additive fields.
|
|
7
7
|
*/
|
|
8
|
+
import type { P2pHelperDiagnostic } from './p2p-advanced.js';
|
|
8
9
|
export declare const P2P_RUN_STATUS_VALUES: readonly ["queued", "dispatched", "running", "awaiting_next_hop", "completed", "timed_out", "failed", "interrupted", "cancelling", "cancelled"];
|
|
9
10
|
export type P2pRunStatus = (typeof P2P_RUN_STATUS_VALUES)[number];
|
|
10
11
|
export declare const P2P_HOP_STATUS_VALUES: readonly ["queued", "dispatched", "running", "completed", "timed_out", "failed", "cancelled"];
|
|
@@ -89,6 +90,29 @@ export interface P2pRunUpdatePayload {
|
|
|
89
90
|
hop_counts?: P2pHopCounts;
|
|
90
91
|
completed_round_hops_count?: number;
|
|
91
92
|
terminal_reason?: 'completed' | 'timed_out' | 'failed' | 'cancelled' | null;
|
|
93
|
+
advanced_p2p_enabled?: boolean;
|
|
94
|
+
current_round_id?: string | null;
|
|
95
|
+
current_execution_step?: number | null;
|
|
96
|
+
current_round_attempt?: number | null;
|
|
97
|
+
round_attempt_counts?: Record<string, number>;
|
|
98
|
+
round_jump_counts?: Record<string, number>;
|
|
99
|
+
routing_history?: Array<{
|
|
100
|
+
fromRoundId?: string | null;
|
|
101
|
+
toRoundId?: string | null;
|
|
102
|
+
trigger?: string | null;
|
|
103
|
+
atStep: number;
|
|
104
|
+
atAttempt?: number | null;
|
|
105
|
+
timestamp: number;
|
|
106
|
+
}>;
|
|
107
|
+
helper_diagnostics?: P2pHelperDiagnostic[];
|
|
108
|
+
advanced_nodes?: Array<{
|
|
109
|
+
id: string;
|
|
110
|
+
title: string;
|
|
111
|
+
preset?: string;
|
|
112
|
+
status: P2pProgressNodeStatus;
|
|
113
|
+
attempt?: number;
|
|
114
|
+
step?: number;
|
|
115
|
+
}>;
|
|
92
116
|
[key: string]: unknown;
|
|
93
117
|
}
|
|
94
118
|
/** Map top-level run status to existing UI display state. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p-status.d.ts","sourceRoot":"","sources":["../../shared/p2p-status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"p2p-status.d.ts","sourceRoot":"","sources":["../../shared/p2p-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared P2P status and run-update contract.
|
|
3
|
-
*
|
|
4
|
-
* Keep the existing top-level run status field compatible for current
|
|
5
|
-
* server/web consumers, and expose richer parallel-hop progress through
|
|
6
|
-
* additive fields.
|
|
7
|
-
*/
|
|
8
1
|
export const P2P_RUN_STATUS_VALUES = [
|
|
9
2
|
'queued',
|
|
10
3
|
'dispatched',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p-status.js","sourceRoot":"","sources":["../../shared/p2p-status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"p2p-status.js","sourceRoot":"","sources":["../../shared/p2p-status.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,mBAAmB;IACnB,WAAW;IACX,WAAW;IACX,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,WAAW;CACH,CAAC;AAIX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,WAAW;IACX,WAAW;IACX,QAAQ;IACR,WAAW;CACH,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW;IACX,iBAAiB;IACjB,aAAa;IACb,WAAW;IACX,QAAQ;IACR,WAAW;CACH,CAAC;AAIX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,QAAQ;IACR,SAAS;IACT,KAAK;IACL,SAAS;CACD,CAAC;AAIX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;CACA,CAAC;AAIX,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,MAAM;IACN,QAAQ;IACR,SAAS;IACT,SAAS;CACD,CAAC;AAIX,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,SAAS;IACT,KAAK;IACL,SAAS;CACD,CAAC;AAIX,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAe;IAC7D,WAAW;IACX,WAAW;IACX,QAAQ;IACR,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAe;IAC7D,WAAW;IACX,WAAW;IACX,QAAQ;IACR,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAe,CAAC,WAAW,CAAC,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAe;IAC3D,QAAQ;IACR,WAAW;IACX,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAe;IAC5D,SAAS;IACT,YAAY;IACZ,mBAAmB;CACpB,CAAC,CAAC;AAgGH,6DAA6D;AAC7D,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,IAAI,qBAAqB,CAAC,GAAG,CAAC,MAAsB,CAAC;QAAE,OAAO,MAAM,CAAC;IACrE,IAAI,uBAAuB,CAAC,GAAG,CAAC,MAAsB,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzE,IAAI,wBAAwB,CAAC,GAAG,CAAC,MAAsB,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3E,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/command-handler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAoBnD,OAAO,EAAsE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/command-handler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAoBnD,OAAO,EAAsE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAuP3H,wBAAsB,yBAAyB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtF;AAwFD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAcD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAoCxD;AAgHD,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAmM3E;AA48BD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE7F;AAED,yFAAyF;AACzF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,OAAO,CAStF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAStF;AAouBD,wBAAgB,qCAAqC,CAAC,IAAI,2CAAgB,4CAEzE;AAifD,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAEzD,iFAAiF;AACjF,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAa3E;AAED,gEAAgE;AAChE,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAI5E;AAED,wCAAwC;AACxC,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEtE;AAED,uDAAuD;AACvD,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAEhL"}
|
|
@@ -1032,6 +1032,10 @@ async function handleSend(cmd, serverLink) {
|
|
|
1032
1032
|
let p2pExtraPrompt = cmd.p2pExtraPrompt;
|
|
1033
1033
|
const p2pLocale = cmd.p2pLocale;
|
|
1034
1034
|
const p2pHopTimeoutMs = cmd.p2pHopTimeoutMs;
|
|
1035
|
+
const p2pAdvancedPresetKey = cmd.p2pAdvancedPresetKey;
|
|
1036
|
+
const p2pAdvancedRounds = cmd.p2pAdvancedRounds;
|
|
1037
|
+
const p2pAdvancedRunTimeoutMinutes = cmd.p2pAdvancedRunTimeoutMinutes;
|
|
1038
|
+
const p2pContextReducer = cmd.p2pContextReducer;
|
|
1035
1039
|
const p2pModeField = cmd.p2pMode;
|
|
1036
1040
|
const p2pAtTargets = cmd.p2pAtTargets;
|
|
1037
1041
|
const explicitTargets = directTargetSession
|
|
@@ -1176,7 +1180,21 @@ async function handleSend(cmd, serverLink) {
|
|
|
1176
1180
|
const langInstr = `Use the user's selected i18n language (${langName}) for the discussion.`;
|
|
1177
1181
|
p2pExtraPrompt = p2pExtraPrompt ? `${p2pExtraPrompt}\n${langInstr}` : langInstr;
|
|
1178
1182
|
}
|
|
1179
|
-
const run = await startP2pRun(
|
|
1183
|
+
const run = await startP2pRun({
|
|
1184
|
+
initiatorSession: sessionName,
|
|
1185
|
+
targets: tokens.agents,
|
|
1186
|
+
userText: tokens.cleanText,
|
|
1187
|
+
fileContents,
|
|
1188
|
+
serverLink,
|
|
1189
|
+
rounds: p2pRounds,
|
|
1190
|
+
extraPrompt: p2pExtraPrompt,
|
|
1191
|
+
modeOverride: resolvedMode || undefined,
|
|
1192
|
+
hopTimeoutMs: p2pHopTimeoutMs,
|
|
1193
|
+
advancedPresetKey: p2pAdvancedPresetKey,
|
|
1194
|
+
advancedRounds: p2pAdvancedRounds,
|
|
1195
|
+
advancedRunTimeoutMs: p2pAdvancedRunTimeoutMinutes != null ? p2pAdvancedRunTimeoutMinutes * 60_000 : undefined,
|
|
1196
|
+
contextReducer: p2pContextReducer,
|
|
1197
|
+
});
|
|
1180
1198
|
const status = isLegacy ? 'accepted_legacy' : 'accepted';
|
|
1181
1199
|
timelineEmitter.emit(sessionName, 'command.ack', { commandId: effectiveId, status });
|
|
1182
1200
|
try {
|