@agent-link/agent 0.1.338 → 0.1.340
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/backends/types.d.ts +58 -0
- package/dist/backends/types.js +15 -4
- package/dist/backends/types.js.map +1 -1
- package/dist/connection.d.ts +2 -1
- package/dist/connection.js +279 -48
- package/dist/connection.js.map +1 -1
- package/dist/copilot-capabilities-offline.d.ts +254 -0
- package/dist/copilot-capabilities-offline.js +392 -0
- package/dist/copilot-capabilities-offline.js.map +1 -0
- package/dist/copilot-capabilities.d.ts +43 -0
- package/dist/copilot-capabilities.js +128 -0
- package/dist/copilot-capabilities.js.map +1 -0
- package/dist/copilot-capability-service.d.ts +24 -0
- package/dist/copilot-capability-service.js +116 -0
- package/dist/copilot-capability-service.js.map +1 -0
- package/dist/copilot-command-bridge.d.ts +184 -0
- package/dist/copilot-command-bridge.js +1800 -0
- package/dist/copilot-command-bridge.js.map +1 -0
- package/dist/copilot-compaction-barrier.d.ts +36 -0
- package/dist/copilot-compaction-barrier.js +152 -0
- package/dist/copilot-compaction-barrier.js.map +1 -0
- package/dist/copilot-compaction-lifecycle.d.ts +34 -0
- package/dist/copilot-compaction-lifecycle.js +88 -0
- package/dist/copilot-compaction-lifecycle.js.map +1 -0
- package/dist/copilot-compaction-policy.d.ts +5 -0
- package/dist/copilot-compaction-policy.js +7 -0
- package/dist/copilot-compaction-policy.js.map +1 -0
- package/dist/copilot-configuration.d.ts +63 -0
- package/dist/copilot-configuration.js +283 -0
- package/dist/copilot-configuration.js.map +1 -0
- package/dist/copilot-event-scope.d.ts +13 -0
- package/dist/copilot-event-scope.js +26 -0
- package/dist/copilot-event-scope.js.map +1 -0
- package/dist/copilot-fork-metadata.d.ts +9 -0
- package/dist/copilot-fork-metadata.js +86 -0
- package/dist/copilot-fork-metadata.js.map +1 -0
- package/dist/copilot-message-kind.d.ts +21 -0
- package/dist/copilot-message-kind.js +45 -0
- package/dist/copilot-message-kind.js.map +1 -0
- package/dist/copilot-plan-state.d.ts +19 -0
- package/dist/copilot-plan-state.js +180 -0
- package/dist/copilot-plan-state.js.map +1 -0
- package/dist/copilot-request-dispatch.d.ts +10 -0
- package/dist/copilot-request-dispatch.js +31 -0
- package/dist/copilot-request-dispatch.js.map +1 -0
- package/dist/copilot-review-documents.d.ts +17 -0
- package/dist/copilot-review-documents.js +162 -0
- package/dist/copilot-review-documents.js.map +1 -0
- package/dist/copilot-session-activity.d.ts +4 -0
- package/dist/copilot-session-activity.js +185 -0
- package/dist/copilot-session-activity.js.map +1 -0
- package/dist/copilot-sidecar.d.ts +2 -0
- package/dist/copilot-sidecar.js +17 -0
- package/dist/copilot-sidecar.js.map +1 -0
- package/dist/copilot-turn-journal.d.ts +36 -0
- package/dist/copilot-turn-journal.js +246 -0
- package/dist/copilot-turn-journal.js.map +1 -0
- package/dist/copilot-user-requests.d.ts +11 -0
- package/dist/copilot-user-requests.js +84 -0
- package/dist/copilot-user-requests.js.map +1 -0
- package/dist/copilot.d.ts +202 -9
- package/dist/copilot.js +5120 -243
- package/dist/copilot.js.map +1 -1
- package/dist/file-cache.d.ts +6 -1
- package/dist/file-cache.js +62 -1
- package/dist/file-cache.js.map +1 -1
- package/dist/history-message-transform.d.ts +47 -1
- package/dist/history-message-transform.js +67 -0
- package/dist/history-message-transform.js.map +1 -1
- package/dist/history.d.ts +8 -0
- package/dist/history.js.map +1 -1
- package/dist/provider-command-discovery.d.ts +5 -0
- package/dist/provider-command-discovery.js +49 -1
- package/dist/provider-command-discovery.js.map +1 -1
- package/dist/provider-command-types.d.ts +5 -0
- package/dist/provider-command-types.js.map +1 -1
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.js +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/search-sessions.js +2 -1
- package/dist/search-sessions.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-command-bridge.js","sourceRoot":"","sources":["../src/copilot-command-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
type Frame = Record<string, any>;
|
|
2
|
+
type Fence = {
|
|
3
|
+
id: string;
|
|
4
|
+
start: number;
|
|
5
|
+
end?: number;
|
|
6
|
+
status: 'pending' | 'failed';
|
|
7
|
+
};
|
|
8
|
+
/** Display barrier, not a claim that an already-running external tool is paused. */
|
|
9
|
+
export declare class CopilotCompactionBarrier {
|
|
10
|
+
private fencePath?;
|
|
11
|
+
private id;
|
|
12
|
+
private maxBytes;
|
|
13
|
+
private scopes;
|
|
14
|
+
private frames;
|
|
15
|
+
private usage?;
|
|
16
|
+
private failure?;
|
|
17
|
+
private waiters;
|
|
18
|
+
private bytes;
|
|
19
|
+
startedAt?: number;
|
|
20
|
+
constructor(fencePath?: string | undefined, id?: string, maxBytes?: number);
|
|
21
|
+
get active(): boolean;
|
|
22
|
+
get failed(): boolean;
|
|
23
|
+
start(scope?: string, at?: number): void;
|
|
24
|
+
has(scope: string): boolean;
|
|
25
|
+
hold(frame: Frame): boolean;
|
|
26
|
+
complete(scope?: string): boolean;
|
|
27
|
+
drain(): Frame[];
|
|
28
|
+
fail(error?: Error): void;
|
|
29
|
+
wait(): Promise<void>;
|
|
30
|
+
private save;
|
|
31
|
+
}
|
|
32
|
+
export declare function compactionFencePath(root: string, sessionId?: string | null): string | undefined;
|
|
33
|
+
export declare function readCompactionFences(path?: string): Fence[];
|
|
34
|
+
/** A new real user request bounds an abandoned pending fence after restart. */
|
|
35
|
+
export declare function compactionPublicationHidden(fences: Fence[], event: Frame, includeUsage?: boolean): boolean;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'fs';
|
|
2
|
+
import { atomicWriteCopilotSidecar } from './copilot-sidecar.js';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { isCopilotChildEvent } from './copilot-event-scope.js';
|
|
5
|
+
const HELD = new Set(['text_delta', 'reasoning_delta', 'tool_started', 'tool_updated', 'tool_completed',
|
|
6
|
+
'user_input_requested', 'plan_ready', 'plan_implementation_status']);
|
|
7
|
+
const FILE = '.agentlink-compaction-publication.json';
|
|
8
|
+
/** Display barrier, not a claim that an already-running external tool is paused. */
|
|
9
|
+
export class CopilotCompactionBarrier {
|
|
10
|
+
fencePath;
|
|
11
|
+
id;
|
|
12
|
+
maxBytes;
|
|
13
|
+
scopes = new Set();
|
|
14
|
+
frames = [];
|
|
15
|
+
usage;
|
|
16
|
+
failure;
|
|
17
|
+
waiters = [];
|
|
18
|
+
bytes = 0;
|
|
19
|
+
startedAt;
|
|
20
|
+
constructor(fencePath, id = '', maxBytes = 16 * 1024 * 1024) {
|
|
21
|
+
this.fencePath = fencePath;
|
|
22
|
+
this.id = id;
|
|
23
|
+
this.maxBytes = maxBytes;
|
|
24
|
+
}
|
|
25
|
+
get active() { return this.scopes.size > 0; }
|
|
26
|
+
get failed() { return !!this.failure; }
|
|
27
|
+
start(scope = 'main', at = Date.now()) {
|
|
28
|
+
if (this.failure)
|
|
29
|
+
return;
|
|
30
|
+
if (!this.active) {
|
|
31
|
+
this.startedAt = at;
|
|
32
|
+
this.save({ id: this.id, start: at, status: 'pending' });
|
|
33
|
+
}
|
|
34
|
+
this.scopes.add(scope);
|
|
35
|
+
}
|
|
36
|
+
has(scope) { return this.scopes.has(scope); }
|
|
37
|
+
hold(frame) {
|
|
38
|
+
const type = frame.event?.type;
|
|
39
|
+
if (!HELD.has(type) && type !== 'usage_update' && frame.type !== 'command_output')
|
|
40
|
+
return false;
|
|
41
|
+
if (this.failure)
|
|
42
|
+
return true; // Late output from the stopped operation must not escape.
|
|
43
|
+
if (!this.active)
|
|
44
|
+
return false;
|
|
45
|
+
const copy = structuredClone(frame);
|
|
46
|
+
if (type === 'usage_update') {
|
|
47
|
+
this.usage = copy;
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
const last = this.frames.at(-1);
|
|
51
|
+
let replacement;
|
|
52
|
+
if (last && last.event?.type === type && last.turnId === frame.turnId && last.event.messageId === frame.event?.messageId
|
|
53
|
+
&& ['text_delta', 'reasoning_delta'].includes(type)) {
|
|
54
|
+
replacement = { ...last, event: { ...last.event, ...copy.event, text: (last.event.text || '') + (copy.event.text || '') } };
|
|
55
|
+
}
|
|
56
|
+
else if (last && type === 'tool_updated' && last.event?.type === type && last.event.tool?.id === copy.event.tool?.id) {
|
|
57
|
+
replacement = copy;
|
|
58
|
+
}
|
|
59
|
+
const bytes = this.bytes + Buffer.byteLength(JSON.stringify(replacement || copy))
|
|
60
|
+
- (replacement ? Buffer.byteLength(JSON.stringify(last)) : 0);
|
|
61
|
+
if (bytes > this.maxBytes)
|
|
62
|
+
throw new Error('Copilot compaction output buffer exceeded its safe limit. Stop and retry after compaction.');
|
|
63
|
+
if (replacement)
|
|
64
|
+
this.frames[this.frames.length - 1] = replacement;
|
|
65
|
+
else
|
|
66
|
+
this.frames.push(copy);
|
|
67
|
+
this.bytes = bytes;
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
complete(scope = 'main') {
|
|
71
|
+
if (this.failure)
|
|
72
|
+
return false;
|
|
73
|
+
this.scopes.delete(scope);
|
|
74
|
+
if (this.active)
|
|
75
|
+
return false;
|
|
76
|
+
this.save();
|
|
77
|
+
for (const waiter of this.waiters.splice(0))
|
|
78
|
+
waiter.resolve();
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
drain() {
|
|
82
|
+
if (this.active || this.failure)
|
|
83
|
+
return [];
|
|
84
|
+
const frames = this.usage ? [this.usage, ...this.frames] : this.frames;
|
|
85
|
+
this.frames = [];
|
|
86
|
+
this.usage = undefined;
|
|
87
|
+
this.bytes = 0;
|
|
88
|
+
this.startedAt = undefined;
|
|
89
|
+
return frames;
|
|
90
|
+
}
|
|
91
|
+
fail(error = new Error('Copilot compaction cancelled')) {
|
|
92
|
+
this.failure = error;
|
|
93
|
+
if (this.startedAt != null)
|
|
94
|
+
this.save({ id: this.id, start: this.startedAt, status: 'failed' });
|
|
95
|
+
this.scopes.clear();
|
|
96
|
+
this.frames = [];
|
|
97
|
+
this.usage = undefined;
|
|
98
|
+
this.bytes = 0;
|
|
99
|
+
for (const waiter of this.waiters.splice(0))
|
|
100
|
+
waiter.reject(error);
|
|
101
|
+
}
|
|
102
|
+
wait() {
|
|
103
|
+
if (this.failure)
|
|
104
|
+
return Promise.reject(this.failure);
|
|
105
|
+
if (!this.active)
|
|
106
|
+
return Promise.resolve();
|
|
107
|
+
return new Promise((resolve, reject) => this.waiters.push({ resolve, reject }));
|
|
108
|
+
}
|
|
109
|
+
save(fence) {
|
|
110
|
+
if (!this.fencePath)
|
|
111
|
+
return;
|
|
112
|
+
const fences = readCompactionFences(this.fencePath).filter(item => item.id !== this.id);
|
|
113
|
+
if (fence)
|
|
114
|
+
fences.push(fence);
|
|
115
|
+
atomicWriteCopilotSidecar(this.fencePath, JSON.stringify({ version: 1, fences }), 'utf8');
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
export function compactionFencePath(root, sessionId) {
|
|
119
|
+
if (!sessionId || !/^[\w-]+$/.test(sessionId))
|
|
120
|
+
return undefined;
|
|
121
|
+
const dir = join(root, sessionId);
|
|
122
|
+
return existsSync(dir) ? join(dir, FILE) : undefined;
|
|
123
|
+
}
|
|
124
|
+
export function readCompactionFences(path) {
|
|
125
|
+
if (!path)
|
|
126
|
+
return [];
|
|
127
|
+
try {
|
|
128
|
+
const data = JSON.parse(readFileSync(path, 'utf8'));
|
|
129
|
+
return data.version === 1 && Array.isArray(data.fences)
|
|
130
|
+
? data.fences.filter((f) => typeof f.id === 'string' && Number.isFinite(f.start)
|
|
131
|
+
&& (f.end == null || Number.isFinite(f.end)) && ['pending', 'failed'].includes(f.status)) : [];
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return [];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/** A new real user request bounds an abandoned pending fence after restart. */
|
|
138
|
+
export function compactionPublicationHidden(fences, event, includeUsage = false) {
|
|
139
|
+
const at = Date.parse(event.timestamp || event.createdAt || '');
|
|
140
|
+
if (!Number.isFinite(at))
|
|
141
|
+
return false;
|
|
142
|
+
if (event.type === 'user.message' && !isCopilotChildEvent(event)
|
|
143
|
+
&& !event.data?.source?.startsWith('agent-')) {
|
|
144
|
+
for (const fence of fences)
|
|
145
|
+
if (fence.end == null && at > fence.start)
|
|
146
|
+
fence.end = at;
|
|
147
|
+
}
|
|
148
|
+
return fences.some(f => at >= f.start && (f.end == null || at < f.end))
|
|
149
|
+
&& (String(event.type).startsWith('assistant.') || String(event.type).startsWith('tool.') || event.type === 'session.task_complete'
|
|
150
|
+
|| (includeUsage && /^(?:session\.(?:usage_|compaction_)|model\.)/.test(String(event.type))));
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=copilot-compaction-barrier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-compaction-barrier.js","sourceRoot":"","sources":["../src/copilot-compaction-barrier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface CopilotCompactionRecord {
|
|
2
|
+
id: string;
|
|
3
|
+
sessionId: string;
|
|
4
|
+
scope: string;
|
|
5
|
+
status: 'started' | 'completed' | 'failed' | 'cancelled';
|
|
6
|
+
startedAt?: number;
|
|
7
|
+
completedAt?: number;
|
|
8
|
+
startEventId?: string;
|
|
9
|
+
completionEventId?: string;
|
|
10
|
+
aliases?: string[];
|
|
11
|
+
trigger?: string;
|
|
12
|
+
generation?: number;
|
|
13
|
+
turnId?: string;
|
|
14
|
+
preCompactionTokens?: number;
|
|
15
|
+
postCompactionTokens?: number;
|
|
16
|
+
preCompactionMessagesLength?: number;
|
|
17
|
+
messagesRemoved?: number;
|
|
18
|
+
tokensRemoved?: number;
|
|
19
|
+
}
|
|
20
|
+
/** Search only visible status labels, never the native summary or internal IDs. */
|
|
21
|
+
export declare function copilotCompactionSearchText(record: CopilotCompactionRecord, query: string): string;
|
|
22
|
+
type NativeEvent = Record<string, any>;
|
|
23
|
+
export declare class CopilotCompactionLifecycle {
|
|
24
|
+
private records;
|
|
25
|
+
private seen;
|
|
26
|
+
private sequence;
|
|
27
|
+
accept(sessionId: string, event: NativeEvent): {
|
|
28
|
+
record: CopilotCompactionRecord;
|
|
29
|
+
late: boolean;
|
|
30
|
+
} | undefined;
|
|
31
|
+
cancel(sessionId: string, at?: number): void;
|
|
32
|
+
private copy;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { copilotChildScope } from './copilot-event-scope.js';
|
|
2
|
+
function nativeCounts(data = {}) {
|
|
3
|
+
return Object.fromEntries(['preCompactionTokens', 'postCompactionTokens', 'preCompactionMessagesLength', 'messagesRemoved', 'tokensRemoved']
|
|
4
|
+
.filter(key => Number.isFinite(data[key]) && data[key] >= 0).map(key => [key, data[key]]));
|
|
5
|
+
}
|
|
6
|
+
/** Search only visible status labels, never the native summary or internal IDs. */
|
|
7
|
+
export function copilotCompactionSearchText(record, query) {
|
|
8
|
+
const labels = {
|
|
9
|
+
started: ['压缩状态未确认', 'Compaction status unconfirmed', '上下文压缩中...', 'Context compacting...'],
|
|
10
|
+
completed: ['上下文已压缩', 'Context compacted'],
|
|
11
|
+
failed: ['上下文压缩失败', 'Context compaction failed'],
|
|
12
|
+
cancelled: ['上下文压缩已停止', 'Context compaction stopped'],
|
|
13
|
+
};
|
|
14
|
+
const candidates = labels[record.status];
|
|
15
|
+
return Array.isArray(candidates) ? candidates.find(text => text.toLowerCase().includes(query.toLowerCase())) || '' : '';
|
|
16
|
+
}
|
|
17
|
+
export class CopilotCompactionLifecycle {
|
|
18
|
+
records = new Map();
|
|
19
|
+
seen = new Set();
|
|
20
|
+
sequence = 0;
|
|
21
|
+
accept(sessionId, event) {
|
|
22
|
+
if (!['session.compaction_start', 'session.compaction_complete', 'session.compaction_failed'].includes(event.type))
|
|
23
|
+
return undefined;
|
|
24
|
+
const scope = copilotChildScope(event) || 'main';
|
|
25
|
+
const key = `${sessionId}:${scope}`;
|
|
26
|
+
const parsed = Date.parse(event.timestamp || '');
|
|
27
|
+
const at = Number.isFinite(parsed) ? parsed : Date.now();
|
|
28
|
+
const identity = event.id || (event.type === 'session.compaction_start'
|
|
29
|
+
? event.agentlinkCompaction?.startEventId : event.agentlinkCompaction?.completionEventId)
|
|
30
|
+
|| (Number.isFinite(parsed) ? `${event.type}:${at}` : `unidentified:${++this.sequence}`);
|
|
31
|
+
const seenKey = `${key}:${identity}`;
|
|
32
|
+
if (this.seen.has(seenKey))
|
|
33
|
+
return undefined;
|
|
34
|
+
this.seen.add(seenKey);
|
|
35
|
+
if (this.seen.size > 1024)
|
|
36
|
+
this.seen.delete(this.seen.values().next().value);
|
|
37
|
+
const previous = this.records.get(key);
|
|
38
|
+
const start = event.type === 'session.compaction_start';
|
|
39
|
+
const status = start ? 'started' : event.type === 'session.compaction_failed' || event.data?.success === false ? 'failed' : 'completed';
|
|
40
|
+
if (previous?.status === 'cancelled' && !start) {
|
|
41
|
+
previous.completionEventId = identity;
|
|
42
|
+
return { record: this.copy(previous), late: true };
|
|
43
|
+
}
|
|
44
|
+
if (Number.isFinite(parsed) && previous?.status === 'started' && previous.startedAt != null && at < previous.startedAt)
|
|
45
|
+
return undefined;
|
|
46
|
+
if (Number.isFinite(parsed) && previous?.completedAt != null && at <= previous.completedAt) {
|
|
47
|
+
// The completion is authoritative. Only enrich its missing start within
|
|
48
|
+
// this cycle; never reopen a completed scope or replay old usage.
|
|
49
|
+
if (start && previous.startedAt == null && at > (previous.previousEnd || 0)) {
|
|
50
|
+
previous.startedAt = at;
|
|
51
|
+
previous.startEventId = identity;
|
|
52
|
+
previous.aliases = [...(previous.aliases || []), `compact:${key}:${identity}`];
|
|
53
|
+
return { record: this.copy(previous), late: true };
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
let record;
|
|
58
|
+
if (previous?.status === 'started' && !start) {
|
|
59
|
+
record = { ...previous, ...nativeCounts(event.data), status, completedAt: at, completionEventId: identity };
|
|
60
|
+
}
|
|
61
|
+
else if (previous?.status === 'started' && start) {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
record = { id: `compact:${key}:${identity}`, sessionId, scope, status, ...nativeCounts(event.data),
|
|
66
|
+
...(start ? { startedAt: at, startEventId: identity } : { completedAt: at, completionEventId: identity }),
|
|
67
|
+
previousEnd: previous?.completedAt,
|
|
68
|
+
...(typeof event.data?.trigger === 'string' ? { trigger: event.data.trigger } : {}) };
|
|
69
|
+
}
|
|
70
|
+
this.records.set(key, record);
|
|
71
|
+
if (this.records.size > 128)
|
|
72
|
+
this.records.delete(this.records.keys().next().value);
|
|
73
|
+
return { record: this.copy(record), late: false };
|
|
74
|
+
}
|
|
75
|
+
cancel(sessionId, at) {
|
|
76
|
+
for (const record of this.records.values()) {
|
|
77
|
+
if (record.sessionId === sessionId && record.status === 'started') {
|
|
78
|
+
record.status = 'cancelled';
|
|
79
|
+
record.completedAt = at;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
copy(record) {
|
|
84
|
+
const { previousEnd: _, ...publicRecord } = record;
|
|
85
|
+
return structuredClone(publicRecord);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=copilot-compaction-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-compaction-lifecycle.js","sourceRoot":"","sources":["../src/copilot-compaction-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-compaction-policy.js","sourceRoot":"","sources":["../src/copilot-compaction-policy.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC;IACrD,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;IACf,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export interface CopilotRequestedConfiguration {
|
|
2
|
+
model?: string;
|
|
3
|
+
context?: string;
|
|
4
|
+
effort?: string;
|
|
5
|
+
}
|
|
6
|
+
export type CopilotConfigurationField = 'model' | 'context' | 'effort' | 'contextWindow';
|
|
7
|
+
export type CopilotConfigurationSource = 'provider_config' | 'provider_event' | 'capability_declaration' | 'legacy_history';
|
|
8
|
+
export interface CopilotConfiguration {
|
|
9
|
+
version: 1;
|
|
10
|
+
revision: string;
|
|
11
|
+
epoch?: string;
|
|
12
|
+
generation?: number;
|
|
13
|
+
sequence?: number;
|
|
14
|
+
providerId: string;
|
|
15
|
+
transport: 'sdk' | 'acp';
|
|
16
|
+
requested: CopilotRequestedConfiguration;
|
|
17
|
+
effective: {
|
|
18
|
+
model?: string;
|
|
19
|
+
context?: string;
|
|
20
|
+
effort?: string;
|
|
21
|
+
contextWindow?: number;
|
|
22
|
+
};
|
|
23
|
+
sources: Partial<Record<CopilotConfigurationField, CopilotConfigurationSource>>;
|
|
24
|
+
evidenceTimes?: Partial<Record<CopilotConfigurationField, number>>;
|
|
25
|
+
/** Window evidence excludes maintenance turns (older snapshots may not). */
|
|
26
|
+
windowEvidenceVersion?: 1;
|
|
27
|
+
status: 'pending' | 'confirmed' | 'fallback' | 'unverified' | 'failed';
|
|
28
|
+
issues: Array<{
|
|
29
|
+
field: CopilotConfigurationField;
|
|
30
|
+
code: 'unsupported' | 'unconfirmed' | 'rejected';
|
|
31
|
+
message: string;
|
|
32
|
+
}>;
|
|
33
|
+
supportedEfforts?: string[];
|
|
34
|
+
capabilityFingerprint?: string;
|
|
35
|
+
declaredWindows?: {
|
|
36
|
+
default?: number;
|
|
37
|
+
long_context?: number;
|
|
38
|
+
};
|
|
39
|
+
observedDefaultWindow?: number;
|
|
40
|
+
updatedAt: string;
|
|
41
|
+
sessionId?: string;
|
|
42
|
+
runtime?: {
|
|
43
|
+
pid?: number;
|
|
44
|
+
phase?: 'bootstrap' | 'runtime';
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export declare function configurationKey(value: CopilotRequestedConfiguration): string;
|
|
48
|
+
export declare function createCopilotConfiguration(providerId: string, transport: 'sdk' | 'acp', requested: CopilotRequestedConfiguration): CopilotConfiguration;
|
|
49
|
+
export declare function configurationIssue(config: CopilotConfiguration, field: CopilotConfigurationField, code: 'unsupported' | 'unconfirmed' | 'rejected', message: string): void;
|
|
50
|
+
export declare function confirmConfiguration(config: CopilotConfiguration, field: CopilotConfigurationField, value: unknown, source: CopilotConfigurationSource, observedAt?: number): void;
|
|
51
|
+
export declare function finishConfiguration(config: CopilotConfiguration): CopilotConfiguration;
|
|
52
|
+
export declare function applyModelCatalog(config: CopilotConfiguration, response: unknown, previous?: CopilotConfiguration): {
|
|
53
|
+
effort?: string;
|
|
54
|
+
};
|
|
55
|
+
interface ObservationScope {
|
|
56
|
+
compacting: boolean;
|
|
57
|
+
}
|
|
58
|
+
export declare function resetCopilotConfigurationObservation(config: CopilotConfiguration): void;
|
|
59
|
+
export declare function observeConfigurationEvent(config: CopilotConfiguration, event: Record<string, any>, replayScope?: ObservationScope): void;
|
|
60
|
+
export declare function readConfigurationEvents(config: CopilotConfiguration, root: string, sessionId: string, since: number): void;
|
|
61
|
+
export declare function persistCopilotConfiguration(root: string, sessionId: string, config: CopilotConfiguration): void;
|
|
62
|
+
export declare function readStoredCopilotConfiguration(root: string, sessionId: string, providerId: string): CopilotConfiguration | undefined;
|
|
63
|
+
export {};
|