@quantiya/codevibe-claude-plugin 1.0.10 → 1.0.12
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/.claude-plugin/plugin.json +1 -1
- package/README.md +75 -245
- package/dist/server.js +16 -1162
- package/node_modules/@quantiya/codevibe-core/README.md +15 -6
- package/node_modules/@quantiya/codevibe-core/bin/codevibe.js +1 -1
- package/node_modules/@quantiya/codevibe-core/dist/index.js +216 -67
- package/node_modules/@quantiya/codevibe-core/package.json +12 -9
- package/node_modules/node-abi/abi_registry.json +7 -0
- package/node_modules/node-abi/package.json +1 -1
- package/package.json +11 -21
- package/dist/appsync-client.d.ts +0 -67
- package/dist/appsync-client.d.ts.map +0 -1
- package/dist/appsync-client.js +0 -858
- package/dist/appsync-client.js.map +0 -1
- package/dist/auth-cli.d.ts +0 -18
- package/dist/auth-cli.d.ts.map +0 -1
- package/dist/auth-cli.js +0 -472
- package/dist/auth-cli.js.map +0 -1
- package/dist/command-executor.d.ts +0 -20
- package/dist/command-executor.d.ts.map +0 -1
- package/dist/command-executor.js +0 -127
- package/dist/command-executor.js.map +0 -1
- package/dist/config.d.ts +0 -25
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -106
- package/dist/config.js.map +0 -1
- package/dist/crypto-service.d.ts +0 -115
- package/dist/crypto-service.d.ts.map +0 -1
- package/dist/crypto-service.js +0 -278
- package/dist/crypto-service.js.map +0 -1
- package/dist/http-api.d.ts +0 -35
- package/dist/http-api.d.ts.map +0 -1
- package/dist/http-api.js +0 -334
- package/dist/http-api.js.map +0 -1
- package/dist/key-manager.d.ts +0 -87
- package/dist/key-manager.d.ts.map +0 -1
- package/dist/key-manager.js +0 -287
- package/dist/key-manager.js.map +0 -1
- package/dist/logger.d.ts +0 -2
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -18
- package/dist/logger.js.map +0 -1
- package/dist/prompt-responder.d.ts +0 -22
- package/dist/prompt-responder.d.ts.map +0 -1
- package/dist/prompt-responder.js +0 -132
- package/dist/prompt-responder.js.map +0 -1
- package/dist/server.d.ts +0 -9
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/token-storage.d.ts +0 -39
- package/dist/token-storage.d.ts.map +0 -1
- package/dist/token-storage.js +0 -169
- package/dist/token-storage.js.map +0 -1
- package/dist/types.d.ts +0 -110
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -17
- package/dist/types.js.map +0 -1
- package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.js +0 -576
- package/node_modules/@quantiya/codevibe-core/dist/appsync/index.js +0 -10
- package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.js +0 -189
- package/node_modules/@quantiya/codevibe-core/dist/auth/auth-cli.js +0 -217
- package/node_modules/@quantiya/codevibe-core/dist/auth/auth-service.js +0 -464
- package/node_modules/@quantiya/codevibe-core/dist/auth/fetch-helpers.js +0 -165
- package/node_modules/@quantiya/codevibe-core/dist/auth/index.js +0 -9
- package/node_modules/@quantiya/codevibe-core/dist/config/config.js +0 -123
- package/node_modules/@quantiya/codevibe-core/dist/config/index.js +0 -8
- package/node_modules/@quantiya/codevibe-core/dist/crypto/crypto-service.js +0 -284
- package/node_modules/@quantiya/codevibe-core/dist/crypto/index.js +0 -9
- package/node_modules/@quantiya/codevibe-core/dist/keychain/index.js +0 -8
- package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-manager.js +0 -375
- package/node_modules/@quantiya/codevibe-core/dist/logger/index.js +0 -8
- package/node_modules/@quantiya/codevibe-core/dist/logger/logger.js +0 -142
- package/node_modules/@quantiya/codevibe-core/dist/prompt-parser.js +0 -236
- package/node_modules/@quantiya/codevibe-core/dist/session/index.js +0 -7
- package/node_modules/@quantiya/codevibe-core/dist/session/session-resume.js +0 -151
- package/node_modules/@quantiya/codevibe-core/dist/types/auth.js +0 -3
- package/node_modules/@quantiya/codevibe-core/dist/types/encryption.js +0 -3
- package/node_modules/@quantiya/codevibe-core/dist/types/events.js +0 -28
- package/node_modules/@quantiya/codevibe-core/dist/types/index.js +0 -22
- package/node_modules/@quantiya/codevibe-core/dist/types/session.js +0 -22
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Shared prompt parser for interactive terminal prompts.
|
|
4
|
-
*
|
|
5
|
-
* Parses terminal snapshots (from tmux capture-pane) to extract
|
|
6
|
-
* interactive prompt options displayed by CLI tools (Gemini, Codex, etc.).
|
|
7
|
-
*
|
|
8
|
-
* Used by multiple plugins to dynamically capture options instead of hardcoding.
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.parseInteractivePrompt = parseInteractivePrompt;
|
|
12
|
-
exports.normalizeSnapshot = normalizeSnapshot;
|
|
13
|
-
const ANSI_PATTERN = /\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g;
|
|
14
|
-
/**
|
|
15
|
-
* Parse a terminal snapshot to extract interactive prompt options.
|
|
16
|
-
*
|
|
17
|
-
* Detects two prompt types:
|
|
18
|
-
* - Yes/No prompts: [y/n] patterns
|
|
19
|
-
* - Numbered prompts: "1. Allow once", "2. Allow for this session", etc.
|
|
20
|
-
*
|
|
21
|
-
* Returns null if no prompt is detected.
|
|
22
|
-
*/
|
|
23
|
-
function parseInteractivePrompt(snapshot) {
|
|
24
|
-
const normalized = normalizeSnapshot(snapshot);
|
|
25
|
-
if (!normalized) {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
const yesNo = parseYesNoPrompt(normalized);
|
|
29
|
-
if (yesNo) {
|
|
30
|
-
return yesNo;
|
|
31
|
-
}
|
|
32
|
-
const numbered = parseNumberedPrompt(normalized);
|
|
33
|
-
if (numbered) {
|
|
34
|
-
return numbered;
|
|
35
|
-
}
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Strip ANSI escape codes, box-drawing characters, and normalize whitespace
|
|
40
|
-
* from terminal output.
|
|
41
|
-
*
|
|
42
|
-
* Box-drawing characters (│, ┌, ┐, └, ┘, ─, etc.) are used by TUI apps like
|
|
43
|
-
* Gemini CLI to render bordered panels. Stripping them exposes the text content
|
|
44
|
-
* so the parser can match option lines inside boxes.
|
|
45
|
-
*/
|
|
46
|
-
function normalizeSnapshot(snapshot) {
|
|
47
|
-
return snapshot
|
|
48
|
-
.replace(/\r/g, '\n')
|
|
49
|
-
.replace(ANSI_PATTERN, '')
|
|
50
|
-
.replace(/[│┌┐└┘─├┤┬┴┼╌╎╭╮╯╰║═╔╗╚╝╠╣╦╩╬]/g, ' ')
|
|
51
|
-
.replace(/[ \t]+\n/g, '\n')
|
|
52
|
-
.replace(/\n{3,}/g, '\n\n')
|
|
53
|
-
.trim();
|
|
54
|
-
}
|
|
55
|
-
function parseYesNoPrompt(snapshot) {
|
|
56
|
-
const lines = snapshot.split('\n').map(line => line.trim());
|
|
57
|
-
const promptLineIndex = findLastMatchingLineIndex(lines, line => /\[(?:y\/n|Y\/n|y\/N)\]/.test(line));
|
|
58
|
-
const promptLine = promptLineIndex >= 0 ? lines[promptLineIndex] : null;
|
|
59
|
-
if (!promptLine) {
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
const promptLines = extractPromptBlock(lines, promptLineIndex);
|
|
63
|
-
const promptText = promptLines.length > 0 ? promptLines.join('\n') : promptLine;
|
|
64
|
-
const lower = promptText.toLowerCase();
|
|
65
|
-
const requiresFollowUpText = lower.includes('what to change') ||
|
|
66
|
-
lower.includes('what should') ||
|
|
67
|
-
lower.includes('provide') ||
|
|
68
|
-
lower.includes('instructions');
|
|
69
|
-
const options = requiresFollowUpText
|
|
70
|
-
? [
|
|
71
|
-
{ number: '1', text: 'Yes' },
|
|
72
|
-
{ number: '2', text: 'No, provide instructions' },
|
|
73
|
-
]
|
|
74
|
-
: [
|
|
75
|
-
{ number: '1', text: 'Yes' },
|
|
76
|
-
{ number: '2', text: 'No' },
|
|
77
|
-
];
|
|
78
|
-
const submitMap = {
|
|
79
|
-
'1': 'y',
|
|
80
|
-
'2': 'n',
|
|
81
|
-
};
|
|
82
|
-
return {
|
|
83
|
-
kind: 'yes_no',
|
|
84
|
-
promptText,
|
|
85
|
-
options,
|
|
86
|
-
submitMap,
|
|
87
|
-
requiresFollowUpText,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
function parseNumberedPrompt(snapshot) {
|
|
91
|
-
const lines = snapshot.split('\n').map(line => line.trim());
|
|
92
|
-
const optionBlock = findTrailingOptionBlock(lines);
|
|
93
|
-
if (optionBlock.length < 2) {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
const options = optionBlock
|
|
97
|
-
.map(({ line }) => parseOptionLine(line))
|
|
98
|
-
.filter((option) => !!option);
|
|
99
|
-
const submitMap = {};
|
|
100
|
-
for (const option of options) {
|
|
101
|
-
submitMap[option.number] = option.number;
|
|
102
|
-
}
|
|
103
|
-
const firstOptionIndex = optionBlock[0]?.index ?? -1;
|
|
104
|
-
const promptLines = extractPromptBlock(lines, firstOptionIndex - 1);
|
|
105
|
-
const promptText = promptLines.length > 0 ? promptLines.join('\n') : 'Select an option';
|
|
106
|
-
return {
|
|
107
|
-
kind: 'numbered',
|
|
108
|
-
promptText,
|
|
109
|
-
options,
|
|
110
|
-
submitMap,
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
function findLastMatchingLineIndex(lines, predicate) {
|
|
114
|
-
for (let index = lines.length - 1; index >= 0; index -= 1) {
|
|
115
|
-
if (predicate(lines[index])) {
|
|
116
|
-
return index;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return -1;
|
|
120
|
-
}
|
|
121
|
-
function parseOptionLine(line) {
|
|
122
|
-
const match = line.match(/^(?:[>›❯▸▶➜➤*●]\s*)?(\d+)\.\s+(.*)$/);
|
|
123
|
-
if (!match) {
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
return {
|
|
127
|
-
number: match[1],
|
|
128
|
-
text: match[2],
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
function findTrailingOptionBlock(lines) {
|
|
132
|
-
const matches = lines
|
|
133
|
-
.map((line, index) => ({ index, line, parsed: parseOptionLine(line) }))
|
|
134
|
-
.filter((entry) => !!entry.parsed);
|
|
135
|
-
if (matches.length === 0) {
|
|
136
|
-
return [];
|
|
137
|
-
}
|
|
138
|
-
const block = [matches[matches.length - 1]];
|
|
139
|
-
for (let index = matches.length - 2; index >= 0; index -= 1) {
|
|
140
|
-
const current = matches[index];
|
|
141
|
-
const next = block[0];
|
|
142
|
-
if (current.index !== next.index - 1) {
|
|
143
|
-
break;
|
|
144
|
-
}
|
|
145
|
-
block.unshift(current);
|
|
146
|
-
}
|
|
147
|
-
return block.map(({ index, line }) => ({ index, line }));
|
|
148
|
-
}
|
|
149
|
-
function extractPromptBlock(lines, endIndex) {
|
|
150
|
-
if (endIndex < 0) {
|
|
151
|
-
return [];
|
|
152
|
-
}
|
|
153
|
-
let cursor = skipBlankLinesUp(lines, endIndex);
|
|
154
|
-
if (cursor < 0) {
|
|
155
|
-
return [];
|
|
156
|
-
}
|
|
157
|
-
const { start: mainBlockStart, end: blockEnd } = findNonEmptyBlockEndingAt(lines, cursor);
|
|
158
|
-
const mainBlock = lines.slice(mainBlockStart, blockEnd + 1).filter(Boolean);
|
|
159
|
-
if (isDiffPreviewBlock(mainBlock)) {
|
|
160
|
-
const recoveredPrompt = collectPromptBlocksAbove(lines, mainBlockStart - 1);
|
|
161
|
-
return recoveredPrompt.length > 0 ? recoveredPrompt : mainBlock;
|
|
162
|
-
}
|
|
163
|
-
if (mainBlockStart <= 1) {
|
|
164
|
-
return mainBlock;
|
|
165
|
-
}
|
|
166
|
-
let gapCursor = mainBlockStart - 1;
|
|
167
|
-
gapCursor = skipBlankLinesUp(lines, gapCursor);
|
|
168
|
-
if (gapCursor < 0 || gapCursor === mainBlockStart - 1) {
|
|
169
|
-
return mainBlock;
|
|
170
|
-
}
|
|
171
|
-
const { start: headingBlockStart, end: headingBlockEnd } = findNonEmptyBlockEndingAt(lines, gapCursor);
|
|
172
|
-
const headingBlock = lines.slice(headingBlockStart, headingBlockEnd + 1).filter(Boolean);
|
|
173
|
-
const headingMatched = headingBlock.some(isPromptHeadingLine);
|
|
174
|
-
if (!headingMatched) {
|
|
175
|
-
return mainBlock;
|
|
176
|
-
}
|
|
177
|
-
return [...headingBlock, ...mainBlock];
|
|
178
|
-
}
|
|
179
|
-
function isPromptHeadingLine(line) {
|
|
180
|
-
return /^(?:would you like to|do you want to|the model would like to|action required|confirm)\b/i.test(line);
|
|
181
|
-
}
|
|
182
|
-
function isLikelyFileSummaryLine(line) {
|
|
183
|
-
return /^.+\/[^/]+\s+\(\+\d+\s+-\d+\)$/.test(line);
|
|
184
|
-
}
|
|
185
|
-
function skipBlankLinesUp(lines, startIndex) {
|
|
186
|
-
let cursor = startIndex;
|
|
187
|
-
while (cursor >= 0 && !lines[cursor]) {
|
|
188
|
-
cursor -= 1;
|
|
189
|
-
}
|
|
190
|
-
return cursor;
|
|
191
|
-
}
|
|
192
|
-
function findNonEmptyBlockEndingAt(lines, endIndex) {
|
|
193
|
-
let cursor = endIndex;
|
|
194
|
-
while (cursor >= 0 && lines[cursor]) {
|
|
195
|
-
cursor -= 1;
|
|
196
|
-
}
|
|
197
|
-
return {
|
|
198
|
-
start: cursor + 1,
|
|
199
|
-
end: endIndex,
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
function collectPromptBlocksAbove(lines, startIndex) {
|
|
203
|
-
const blocks = [];
|
|
204
|
-
let cursor = startIndex;
|
|
205
|
-
while (cursor >= 0 && blocks.length < 2) {
|
|
206
|
-
cursor = skipBlankLinesUp(lines, cursor);
|
|
207
|
-
if (cursor < 0) {
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
const { start, end } = findNonEmptyBlockEndingAt(lines, cursor);
|
|
211
|
-
const block = lines.slice(start, end + 1).filter(Boolean);
|
|
212
|
-
if (block.length > 0) {
|
|
213
|
-
blocks.unshift(block);
|
|
214
|
-
}
|
|
215
|
-
cursor = start - 1;
|
|
216
|
-
}
|
|
217
|
-
if (blocks.length === 0) {
|
|
218
|
-
return [];
|
|
219
|
-
}
|
|
220
|
-
const headingBlockIndex = blocks.findIndex(block => block.some(isPromptHeadingLine));
|
|
221
|
-
if (headingBlockIndex >= 0) {
|
|
222
|
-
return blocks.slice(headingBlockIndex).flat();
|
|
223
|
-
}
|
|
224
|
-
return blocks[blocks.length - 1];
|
|
225
|
-
}
|
|
226
|
-
function isDiffPreviewBlock(lines) {
|
|
227
|
-
if (lines.length === 0) {
|
|
228
|
-
return false;
|
|
229
|
-
}
|
|
230
|
-
const lineNumberedRows = lines.filter(isLineNumberedDiffLine).length;
|
|
231
|
-
return lineNumberedRows >= Math.max(2, Math.ceil(lines.length / 2));
|
|
232
|
-
}
|
|
233
|
-
function isLineNumberedDiffLine(line) {
|
|
234
|
-
return /^\d+\s/.test(line);
|
|
235
|
-
}
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQTRCSCx3REFpQkM7QUFVRCw4Q0FRQztBQTlDRCxNQUFNLFlBQVksR0FBRyx3Q0FBd0MsQ0FBQztBQUU5RDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLFFBQWdCO0lBQ3JELE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNiLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsUUFBZ0I7SUFDaEQsT0FBTyxRQUFRO1NBQ1osT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7U0FDcEIsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7U0FDekIsT0FBTyxDQUFDLGlDQUFpQyxFQUFFLEdBQUcsQ0FBQztTQUMvQyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQztTQUMxQixPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztTQUMxQixJQUFJLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLFFBQWdCO0lBQ3hDLE1BQU0sS0FB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TUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsS0FBZTtJQUN6QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3JFLE9BQU8sZ0JBQWdCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsSUFBWTtJQUMxQyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2hhcmVkIHByb21wdCBwYXJzZXIgZm9yIGludGVyYWN0aXZlIHRlcm1pbmFsIHByb21wdHMuXG4gKlxuICogUGFyc2VzIHRlcm1pbmFsIHNuYXBzaG90cyAoZnJvbSB0bXV4IGNhcHR1cmUtcGFuZSkgdG8gZXh0cmFjdFxuICogaW50ZXJhY3RpdmUgcHJvbXB0IG9wdGlvbnMgZGlzcGxheWVkIGJ5IENMSSB0b29scyAoR2VtaW5pLCBDb2RleCwgZXRjLikuXG4gKlxuICogVXNlZCBieSBtdWx0aXBsZSBwbHVnaW5zIHRvIGR5bmFtaWNhbGx5IGNhcHR1cmUgb3B0aW9ucyBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcuXG4gKi9cblxuZXhwb3J0IHR5cGUgUHJvbXB0S2luZCA9ICd5ZXNfbm8nIHwgJ251bWJlcmVkJyB8ICd0ZXh0JztcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmFjdGl2ZVByb21wdE9wdGlvbiB7XG4gIG51bWJlcjogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkSW50ZXJhY3RpdmVQcm9tcHQge1xuICBraW5kOiBQcm9tcHRLaW5kO1xuICBwcm9tcHRUZXh0OiBzdHJpbmc7XG4gIG9wdGlvbnM6IEludGVyYWN0aXZlUHJvbXB0T3B0aW9uW107XG4gIHN1Ym1pdE1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgcmVxdWlyZXNGb2xsb3dVcFRleHQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBBTlNJX1BBVFRFUk4gPSAvXFx4MUIoPzpbQC1aXFxcXC1fXXxcXFtbMC0/XSpbIC0vXSpbQC1+XSkvZztcblxuLyoqXG4gKiBQYXJzZSBhIHRlcm1pbmFsIHNuYXBzaG90IHRvIGV4dHJhY3QgaW50ZXJhY3RpdmUgcHJvbXB0IG9wdGlvbnMuXG4gKlxuICogRGV0ZWN0cyB0d28gcHJvbXB0IHR5cGVzOlxuICogLSBZZXMvTm8gcHJvbXB0czogW3kvbl0gcGF0dGVybnNcbiAqIC0gTnVtYmVyZWQgcHJvbXB0czogXCIxLiBBbGxvdyBvbmNlXCIsIFwiMi4gQWxsb3cgZm9yIHRoaXMgc2Vzc2lvblwiLCBldGMuXG4gKlxuICogUmV0dXJucyBudWxsIGlmIG5vIHByb21wdCBpcyBkZXRlY3RlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW50ZXJhY3RpdmVQcm9tcHQoc25hcHNob3Q6IHN0cmluZyk6IFBhcnNlZEludGVyYWN0aXZlUHJvbXB0IHwgbnVsbCB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVTbmFwc2hvdChzbmFwc2hvdCk7XG4gIGlmICghbm9ybWFsaXplZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgeWVzTm8gPSBwYXJzZVllc05vUHJvbXB0KG5vcm1hbGl6ZWQpO1xuICBpZiAoeWVzTm8pIHtcbiAgICByZXR1cm4geWVzTm87XG4gIH1cblxuICBjb25zdCBudW1iZXJlZCA9IHBhcnNlTnVtYmVyZWRQcm9tcHQobm9ybWFsaXplZCk7XG4gIGlmIChudW1iZXJlZCkge1xuICAgIHJldHVybiBudW1iZXJlZDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFN0cmlwIEFOU0kgZXNjYXBlIGNvZGVzLCBib3gtZHJhd2luZyBjaGFyYWN0ZXJzLCBhbmQgbm9ybWFsaXplIHdoaXRlc3BhY2VcbiAqIGZyb20gdGVybWluYWwgb3V0cHV0LlxuICpcbiAqIEJveC1kcmF3aW5nIGNoYXJhY3RlcnMgKOKUgiwg4pSMLCDilJAsIOKUlCwg4pSYLCDilIAsIGV0Yy4pIGFyZSB1c2VkIGJ5IFRVSSBhcHBzIGxpa2VcbiAqIEdlbWluaSBDTEkgdG8gcmVuZGVyIGJvcmRlcmVkIHBhbmVscy4gU3RyaXBwaW5nIHRoZW0gZXhwb3NlcyB0aGUgdGV4dCBjb250ZW50XG4gKiBzbyB0aGUgcGFyc2VyIGNhbiBtYXRjaCBvcHRpb24gbGluZXMgaW5zaWRlIGJveGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplU25hcHNob3Qoc25hcHNob3Q6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzbmFwc2hvdFxuICAgIC5yZXBsYWNlKC9cXHIvZywgJ1xcbicpXG4gICAgLnJlcGxhY2UoQU5TSV9QQVRURVJOLCAnJylcbiAgICAucmVwbGFjZSgvW+KUguKUjOKUkOKUlOKUmOKUgOKUnOKUpOKUrOKUtOKUvOKVjOKVjuKVreKVruKVr+KVsOKVkeKVkOKVlOKVl+KVmuKVneKVoOKVo+KVpuKVqeKVrF0vZywgJyAnKVxuICAgIC5yZXBsYWNlKC9bIFxcdF0rXFxuL2csICdcXG4nKVxuICAgIC5yZXBsYWNlKC9cXG57Myx9L2csICdcXG5cXG4nKVxuICAgIC50cmltKCk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlWWVzTm9Qcm9tcHQoc25hcHNob3Q6IHN0cmluZyk6IFBhcnNlZEludGVyYWN0aXZlUHJvbXB0IHwgbnVsbCB7XG4gIGNvbnN0IGxpbmVzID0gc25hcHNob3Quc3BsaXQoJ1xcbicpLm1hcChsaW5lID0+IGxpbmUudHJpbSgpKTtcbiAgY29uc3QgcHJvbXB0TGluZUluZGV4ID0gZmluZExhc3RNYXRjaGluZ0xpbmVJbmRleChsaW5lcywgbGluZSA9PiAvXFxbKD86eVxcL258WVxcL258eVxcL04pXFxdLy50ZXN0KGxpbmUpKTtcbiAgY29uc3QgcHJvbXB0TGluZSA9IHByb21wdExpbmVJbmRleCA+PSAwID8gbGluZXNbcHJvbXB0TGluZUluZGV4XSA6IG51bGw7XG5cbiAgaWYgKCFwcm9tcHRMaW5lKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBwcm9tcHRMaW5lcyA9IGV4dHJhY3RQcm9tcHRCbG9jayhsaW5lcywgcHJvbXB0TGluZUluZGV4KTtcbiAgY29uc3QgcHJvbXB0VGV4dCA9IHByb21wdExpbmVzLmxlbmd0aCA+IDAgPyBwcm9tcHRMaW5lcy5qb2luKCdcXG4nKSA6IHByb21wdExpbmU7XG5cbiAgY29uc3QgbG93ZXIgPSBwcm9tcHRUZXh0LnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IHJlcXVpcmVzRm9sbG93VXBUZXh0ID1cbiAgICBsb3dlci5pbmNsdWRlcygnd2hhdCB0byBjaGFuZ2UnKSB8fFxuICAgIGxvd2VyLmluY2x1ZGVzKCd3aGF0IHNob3VsZCcpIHx8XG4gICAgbG93ZXIuaW5jbHVkZXMoJ3Byb3ZpZGUnKSB8fFxuICAgIGxvd2VyLmluY2x1ZGVzKCdpbnN0cnVjdGlvbnMnKTtcblxuICBjb25zdCBvcHRpb25zOiBJbnRlcmFjdGl2ZVByb21wdE9wdGlvbltdID0gcmVxdWlyZXNGb2xsb3dVcFRleHRcbiAgICA/IFtcbiAgICAgICAgeyBudW1iZXI6ICcxJywgdGV4dDogJ1llcycgfSxcbiAgICAgICAgeyBudW1iZXI6ICcyJywgdGV4dDogJ05vLCBwcm92aWRlIGluc3RydWN0aW9ucycgfSxcbiAgICAgIF1cbiAgICA6IFtcbiAgICAgICAgeyBudW1iZXI6ICcxJywgdGV4dDogJ1llcycgfSxcbiAgICAgICAgeyBudW1iZXI6ICcyJywgdGV4dDogJ05vJyB9LFxuICAgICAgXTtcblxuICBjb25zdCBzdWJtaXRNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgJzEnOiAneScsXG4gICAgJzInOiAnbicsXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBraW5kOiAneWVzX25vJyxcbiAgICBwcm9tcHRUZXh0LFxuICAgIG9wdGlvbnMsXG4gICAgc3VibWl0TWFwLFxuICAgIHJlcXVpcmVzRm9sbG93VXBUZXh0LFxuICB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZU51bWJlcmVkUHJvbXB0KHNuYXBzaG90OiBzdHJpbmcpOiBQYXJzZWRJbnRlcmFjdGl2ZVByb21wdCB8IG51bGwge1xuICBjb25zdCBsaW5lcyA9IHNuYXBzaG90LnNwbGl0KCdcXG4nKS5tYXAobGluZSA9PiBsaW5lLnRyaW0oKSk7XG5cbiAgY29uc3Qgb3B0aW9uQmxvY2sgPSBmaW5kVHJhaWxpbmdPcHRpb25CbG9jayhsaW5lcyk7XG4gIGlmIChvcHRpb25CbG9jay5sZW5ndGggPCAyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBvcHRpb25zID0gb3B0aW9uQmxvY2tcbiAgICAubWFwKCh7IGxpbmUgfSkgPT4gcGFyc2VPcHRpb25MaW5lKGxpbmUpKVxuICAgIC5maWx0ZXIoKG9wdGlvbik6IG9wdGlvbiBpcyBJbnRlcmFjdGl2ZVByb21wdE9wdGlvbiA9PiAhIW9wdGlvbik7XG5cbiAgY29uc3Qgc3VibWl0TWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICBzdWJtaXRNYXBbb3B0aW9uLm51bWJlcl0gPSBvcHRpb24ubnVtYmVyO1xuICB9XG5cbiAgY29uc3QgZmlyc3RPcHRpb25JbmRleCA9IG9wdGlvbkJsb2NrWzBdPy5pbmRleCA/PyAtMTtcbiAgY29uc3QgcHJvbXB0TGluZXMgPSBleHRyYWN0UHJvbXB0QmxvY2sobGluZXMsIGZpcnN0T3B0aW9uSW5kZXggLSAxKTtcbiAgY29uc3QgcHJvbXB0VGV4dCA9IHByb21wdExpbmVzLmxlbmd0aCA+IDAgPyBwcm9tcHRMaW5lcy5qb2luKCdcXG4nKSA6ICdTZWxlY3QgYW4gb3B0aW9uJztcblxuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdudW1iZXJlZCcsXG4gICAgcHJvbXB0VGV4dCxcbiAgICBvcHRpb25zLFxuICAgIHN1Ym1pdE1hcCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZmluZExhc3RNYXRjaGluZ0xpbmVJbmRleChsaW5lczogc3RyaW5nW10sIHByZWRpY2F0ZTogKGxpbmU6IHN0cmluZykgPT4gYm9vbGVhbik6IG51bWJlciB7XG4gIGZvciAobGV0IGluZGV4ID0gbGluZXMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXggLT0gMSkge1xuICAgIGlmIChwcmVkaWNhdGUobGluZXNbaW5kZXhdKSkge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlT3B0aW9uTGluZShsaW5lOiBzdHJpbmcpOiBJbnRlcmFjdGl2ZVByb21wdE9wdGlvbiB8IG51bGwge1xuICBjb25zdCBtYXRjaCA9IGxpbmUubWF0Y2goL14oPzpbPuKAuuKdr+KWuOKWtuKenOKepCril49dXFxzKik/KFxcZCspXFwuXFxzKyguKikkLyk7XG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4ge1xuICAgIG51bWJlcjogbWF0Y2hbMV0sXG4gICAgdGV4dDogbWF0Y2hbMl0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGZpbmRUcmFpbGluZ09wdGlvbkJsb2NrKGxpbmVzOiBzdHJpbmdbXSk6IEFycmF5PHsgaW5kZXg6IG51bWJlcjsgbGluZTogc3RyaW5nIH0+IHtcbiAgY29uc3QgbWF0Y2hlcyA9IGxpbmVzXG4gICAgLm1hcCgobGluZSwgaW5kZXgpID0+ICh7IGluZGV4LCBsaW5lLCBwYXJzZWQ6IHBhcnNlT3B0aW9uTGluZShsaW5lKSB9KSlcbiAgICAuZmlsdGVyKChlbnRyeSkgPT4gISFlbnRyeS5wYXJzZWQpO1xuXG4gIGlmIChtYXRjaGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IGJsb2NrOiBBcnJheTx7IGluZGV4OiBudW1iZXI7IGxpbmU6IHN0cmluZyB9PiA9IFttYXRjaGVzW21hdGNoZXMubGVuZ3RoIC0gMV1dO1xuXG4gIGZvciAobGV0IGluZGV4ID0gbWF0Y2hlcy5sZW5ndGggLSAyOyBpbmRleCA+PSAwOyBpbmRleCAtPSAxKSB7XG4gICAgY29uc3QgY3VycmVudCA9IG1hdGNoZXNbaW5kZXhdO1xuICAgIGNvbnN0IG5leHQgPSBibG9ja1swXTtcbiAgICBpZiAoY3VycmVudC5pbmRleCAhPT0gbmV4dC5pbmRleCAtIDEpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBibG9jay51bnNoaWZ0KGN1cnJlbnQpO1xuICB9XG5cbiAgcmV0dXJuIGJsb2NrLm1hcCgoeyBpbmRleCwgbGluZSB9KSA9PiAoeyBpbmRleCwgbGluZSB9KSk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RQcm9tcHRCbG9jayhsaW5lczogc3RyaW5nW10sIGVuZEluZGV4OiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gIGlmIChlbmRJbmRleCA8IDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBsZXQgY3Vyc29yID0gc2tpcEJsYW5rTGluZXNVcChsaW5lcywgZW5kSW5kZXgpO1xuICBpZiAoY3Vyc29yIDwgMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHsgc3RhcnQ6IG1haW5CbG9ja1N0YXJ0LCBlbmQ6IGJsb2NrRW5kIH0gPSBmaW5kTm9uRW1wdHlCbG9ja0VuZGluZ0F0KGxpbmVzLCBjdXJzb3IpO1xuICBjb25zdCBtYWluQmxvY2sgPSBsaW5lcy5zbGljZShtYWluQmxvY2tTdGFydCwgYmxvY2tFbmQgKyAxKS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgaWYgKGlzRGlmZlByZXZpZXdCbG9jayhtYWluQmxvY2spKSB7XG4gICAgY29uc3QgcmVjb3ZlcmVkUHJvbXB0ID0gY29sbGVjdFByb21wdEJsb2Nrc0Fib3ZlKGxpbmVzLCBtYWluQmxvY2tTdGFydCAtIDEpO1xuICAgIHJldHVybiByZWNvdmVyZWRQcm9tcHQubGVuZ3RoID4gMCA/IHJlY292ZXJlZFByb21wdCA6IG1haW5CbG9jaztcbiAgfVxuXG4gIGlmIChtYWluQmxvY2tTdGFydCA8PSAxKSB7XG4gICAgcmV0dXJuIG1haW5CbG9jaztcbiAgfVxuXG4gIGxldCBnYXBDdXJzb3IgPSBtYWluQmxvY2tTdGFydCAtIDE7XG4gIGdhcEN1cnNvciA9IHNraXBCbGFua0xpbmVzVXAobGluZXMsIGdhcEN1cnNvcik7XG5cbiAgaWYgKGdhcEN1cnNvciA8IDAgfHwgZ2FwQ3Vyc29yID09PSBtYWluQmxvY2tTdGFydCAtIDEpIHtcbiAgICByZXR1cm4gbWFpbkJsb2NrO1xuICB9XG5cbiAgY29uc3QgeyBzdGFydDogaGVhZGluZ0Jsb2NrU3RhcnQsIGVuZDogaGVhZGluZ0Jsb2NrRW5kIH0gPSBmaW5kTm9uRW1wdHlCbG9ja0VuZGluZ0F0KGxpbmVzLCBnYXBDdXJzb3IpO1xuICBjb25zdCBoZWFkaW5nQmxvY2sgPSBsaW5lcy5zbGljZShoZWFkaW5nQmxvY2tTdGFydCwgaGVhZGluZ0Jsb2NrRW5kICsgMSkuZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBoZWFkaW5nTWF0Y2hlZCA9IGhlYWRpbmdCbG9jay5zb21lKGlzUHJvbXB0SGVhZGluZ0xpbmUpO1xuXG4gIGlmICghaGVhZGluZ01hdGNoZWQpIHtcbiAgICByZXR1cm4gbWFpbkJsb2NrO1xuICB9XG5cbiAgcmV0dXJuIFsuLi5oZWFkaW5nQmxvY2ssIC4uLm1haW5CbG9ja107XG59XG5cbmZ1bmN0aW9uIGlzUHJvbXB0SGVhZGluZ0xpbmUobGluZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAvXig/OndvdWxkIHlvdSBsaWtlIHRvfGRvIHlvdSB3YW50IHRvfHRoZSBtb2RlbCB3b3VsZCBsaWtlIHRvfGFjdGlvbiByZXF1aXJlZHxjb25maXJtKVxcYi9pLnRlc3QobGluZSk7XG59XG5cbmZ1bmN0aW9uIGlzTGlrZWx5RmlsZVN1bW1hcnlMaW5lKGxpbmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL14uK1xcL1teL10rXFxzK1xcKFxcK1xcZCtcXHMrLVxcZCtcXCkkLy50ZXN0KGxpbmUpO1xufVxuXG5mdW5jdGlvbiBza2lwQmxhbmtMaW5lc1VwKGxpbmVzOiBzdHJpbmdbXSwgc3RhcnRJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgbGV0IGN1cnNvciA9IHN0YXJ0SW5kZXg7XG4gIHdoaWxlIChjdXJzb3IgPj0gMCAmJiAhbGluZXNbY3Vyc29yXSkge1xuICAgIGN1cnNvciAtPSAxO1xuICB9XG4gIHJldHVybiBjdXJzb3I7XG59XG5cbmZ1bmN0aW9uIGZpbmROb25FbXB0eUJsb2NrRW5kaW5nQXQobGluZXM6IHN0cmluZ1tdLCBlbmRJbmRleDogbnVtYmVyKTogeyBzdGFydDogbnVtYmVyOyBlbmQ6IG51bWJlciB9IHtcbiAgbGV0IGN1cnNvciA9IGVuZEluZGV4O1xuICB3aGlsZSAoY3Vyc29yID49IDAgJiYgbGluZXNbY3Vyc29yXSkge1xuICAgIGN1cnNvciAtPSAxO1xuICB9XG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGN1cnNvciArIDEsXG4gICAgZW5kOiBlbmRJbmRleCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY29sbGVjdFByb21wdEJsb2Nrc0Fib3ZlKGxpbmVzOiBzdHJpbmdbXSwgc3RhcnRJbmRleDogbnVtYmVyKTogc3RyaW5nW10ge1xuICBjb25zdCBibG9ja3M6IHN0cmluZ1tdW10gPSBbXTtcbiAgbGV0IGN1cnNvciA9IHN0YXJ0SW5kZXg7XG5cbiAgd2hpbGUgKGN1cnNvciA+PSAwICYmIGJsb2Nrcy5sZW5ndGggPCAyKSB7XG4gICAgY3Vyc29yID0gc2tpcEJsYW5rTGluZXNVcChsaW5lcywgY3Vyc29yKTtcbiAgICBpZiAoY3Vyc29yIDwgMCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBmaW5kTm9uRW1wdHlCbG9ja0VuZGluZ0F0KGxpbmVzLCBjdXJzb3IpO1xuICAgIGNvbnN0IGJsb2NrID0gbGluZXMuc2xpY2Uoc3RhcnQsIGVuZCArIDEpLmZpbHRlcihCb29sZWFuKTtcbiAgICBpZiAoYmxvY2subGVuZ3RoID4gMCkge1xuICAgICAgYmxvY2tzLnVuc2hpZnQoYmxvY2spO1xuICAgIH1cblxuICAgIGN1cnNvciA9IHN0YXJ0IC0gMTtcbiAgfVxuXG4gIGlmIChibG9ja3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgaGVhZGluZ0Jsb2NrSW5kZXggPSBibG9ja3MuZmluZEluZGV4KGJsb2NrID0+IGJsb2NrLnNvbWUoaXNQcm9tcHRIZWFkaW5nTGluZSkpO1xuICBpZiAoaGVhZGluZ0Jsb2NrSW5kZXggPj0gMCkge1xuICAgIHJldHVybiBibG9ja3Muc2xpY2UoaGVhZGluZ0Jsb2NrSW5kZXgpLmZsYXQoKTtcbiAgfVxuXG4gIHJldHVybiBibG9ja3NbYmxvY2tzLmxlbmd0aCAtIDFdO1xufVxuXG5mdW5jdGlvbiBpc0RpZmZQcmV2aWV3QmxvY2sobGluZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gIGlmIChsaW5lcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgbGluZU51bWJlcmVkUm93cyA9IGxpbmVzLmZpbHRlcihpc0xpbmVOdW1iZXJlZERpZmZMaW5lKS5sZW5ndGg7XG4gIHJldHVybiBsaW5lTnVtYmVyZWRSb3dzID49IE1hdGgubWF4KDIsIE1hdGguY2VpbChsaW5lcy5sZW5ndGggLyAyKSk7XG59XG5cbmZ1bmN0aW9uIGlzTGluZU51bWJlcmVkRGlmZkxpbmUobGluZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAvXlxcZCtcXHMvLnRlc3QobGluZSk7XG59XG4iXX0=
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.prepareSessionEncryption = exports.resumeOrCreateSession = void 0;
|
|
4
|
-
var session_resume_1 = require("./session-resume");
|
|
5
|
-
Object.defineProperty(exports, "resumeOrCreateSession", { enumerable: true, get: function () { return session_resume_1.resumeOrCreateSession; } });
|
|
6
|
-
Object.defineProperty(exports, "prepareSessionEncryption", { enumerable: true, get: function () { return session_resume_1.prepareSessionEncryption; } });
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2Vzc2lvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBbUY7QUFBMUUsdUhBQUEscUJBQXFCLE9BQUE7QUFBRSwwSEFBQSx3QkFBd0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHJlc3VtZU9yQ3JlYXRlU2Vzc2lvbiwgcHJlcGFyZVNlc3Npb25FbmNyeXB0aW9uIH0gZnJvbSAnLi9zZXNzaW9uLXJlc3VtZSc7XG5leHBvcnQgdHlwZSB7IFJlc3VtZU9yQ3JlYXRlU2Vzc2lvbklucHV0LCBSZXN1bWVPckNyZWF0ZVNlc3Npb25SZXN1bHQgfSBmcm9tICcuL3Nlc3Npb24tcmVzdW1lJztcbiJdfQ==
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Centralized session resume/create logic for all CodeVibe plugins.
|
|
4
|
-
*
|
|
5
|
-
* All three plugins (Claude, Codex, Gemini) need the same pattern:
|
|
6
|
-
* 1. Check if session exists in backend (getSession)
|
|
7
|
-
* 2. If exists: reactivate + restore E2E session key from encryptedKeys
|
|
8
|
-
* 3. If not exists: generate encryption keys + create session
|
|
9
|
-
*
|
|
10
|
-
* This module eliminates the duplication across plugins.
|
|
11
|
-
*/
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.prepareSessionEncryption = prepareSessionEncryption;
|
|
14
|
-
exports.resumeOrCreateSession = resumeOrCreateSession;
|
|
15
|
-
const crypto_1 = require("../crypto");
|
|
16
|
-
const keychain_1 = require("../keychain");
|
|
17
|
-
const types_1 = require("../types");
|
|
18
|
-
/**
|
|
19
|
-
* Prepare E2E encryption for a new session.
|
|
20
|
-
*
|
|
21
|
-
* Generates a random session key and encrypts it for all registered devices.
|
|
22
|
-
* Does NOT cache the session key — callers should cache only after the session
|
|
23
|
-
* is successfully created in the backend.
|
|
24
|
-
*
|
|
25
|
-
* @returns Encryption data or null if no device keys found / error
|
|
26
|
-
*/
|
|
27
|
-
async function prepareSessionEncryption(sessionId, appSyncClient, logger) {
|
|
28
|
-
try {
|
|
29
|
-
const deviceKeys = await appSyncClient.listUserDeviceKeys();
|
|
30
|
-
if (deviceKeys.length === 0) {
|
|
31
|
-
logger.info('No device keys found, session will not be encrypted');
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
logger.info('Preparing session encryption', {
|
|
35
|
-
sessionId,
|
|
36
|
-
deviceCount: deviceKeys.length,
|
|
37
|
-
});
|
|
38
|
-
const { sessionKey, encryptedKeys } = keychain_1.keychainManager.createSessionKey(deviceKeys);
|
|
39
|
-
logger.info('Session encryption prepared', {
|
|
40
|
-
sessionId,
|
|
41
|
-
deviceCount: encryptedKeys.length,
|
|
42
|
-
});
|
|
43
|
-
return { sessionKey, encryptedKeys };
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
logger.warn('Failed to prepare session encryption:', error);
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Resume an existing session or create a new one.
|
|
52
|
-
*
|
|
53
|
-
* Resume path (session exists in backend):
|
|
54
|
-
* - Reactivates session (status → ACTIVE)
|
|
55
|
-
* - Restores E2E session key from encryptedKeys
|
|
56
|
-
*
|
|
57
|
-
* Create path (session does not exist):
|
|
58
|
-
* - Prepares E2E encryption (generates key, encrypts for all devices)
|
|
59
|
-
* - Encrypts projectPath and metadata
|
|
60
|
-
* - Creates session in backend
|
|
61
|
-
* - Caches session key only after successful creation
|
|
62
|
-
*
|
|
63
|
-
* @throws Propagates createSession errors (e.g., SESSION_LIMIT_EXCEEDED)
|
|
64
|
-
*/
|
|
65
|
-
async function resumeOrCreateSession(input, appSyncClient, logger) {
|
|
66
|
-
const { sessionId, userId, agentType, projectPath, metadata } = input;
|
|
67
|
-
// Check if session already exists in backend
|
|
68
|
-
let existingSession = null;
|
|
69
|
-
try {
|
|
70
|
-
existingSession = await appSyncClient.getSession(sessionId);
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
logger.warn('Failed to get session (will attempt to create new)', { sessionId, error });
|
|
74
|
-
}
|
|
75
|
-
if (existingSession) {
|
|
76
|
-
// RESUME PATH: reactivate existing session and restore session key
|
|
77
|
-
logger.info('Session exists in backend - reactivating', {
|
|
78
|
-
sessionId,
|
|
79
|
-
previousStatus: existingSession.status,
|
|
80
|
-
});
|
|
81
|
-
try {
|
|
82
|
-
await appSyncClient.updateSession({
|
|
83
|
-
sessionId,
|
|
84
|
-
status: types_1.SessionStatus.ACTIVE,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
logger.warn('Failed to reactivate existing session, will continue', { sessionId, error });
|
|
89
|
-
}
|
|
90
|
-
// Restore session key from encryptedKeys
|
|
91
|
-
let sessionKey = null;
|
|
92
|
-
const encryptedKeys = existingSession.encryptedKeys;
|
|
93
|
-
if (existingSession.isEncrypted && encryptedKeys?.length) {
|
|
94
|
-
try {
|
|
95
|
-
const cachedKey = await keychain_1.keychainManager.getSessionKey(sessionId, encryptedKeys);
|
|
96
|
-
if (cachedKey) {
|
|
97
|
-
sessionKey = cachedKey;
|
|
98
|
-
keychain_1.keychainManager.cacheSessionKey(sessionId, cachedKey);
|
|
99
|
-
logger.info('Session key retrieved for resumed session', { sessionId });
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
logger.warn('No encrypted key for this device; proceeding without decryption', { sessionId });
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
logger.warn('Failed to retrieve session key for resumed session', { sessionId, error });
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return { resumed: true, sessionKey };
|
|
110
|
-
}
|
|
111
|
-
// NEW SESSION PATH: prepare encryption and create
|
|
112
|
-
const encryptionData = await prepareSessionEncryption(sessionId, appSyncClient, logger);
|
|
113
|
-
let sessionProjectPath = projectPath;
|
|
114
|
-
let sessionMetadata = metadata;
|
|
115
|
-
if (encryptionData) {
|
|
116
|
-
sessionProjectPath = crypto_1.cryptoService.encryptContent(projectPath, encryptionData.sessionKey);
|
|
117
|
-
if (sessionMetadata && Object.keys(sessionMetadata).length > 0) {
|
|
118
|
-
const encryptedMeta = crypto_1.cryptoService.encryptMetadata(sessionMetadata, encryptionData.sessionKey);
|
|
119
|
-
sessionMetadata = { encrypted: encryptedMeta };
|
|
120
|
-
}
|
|
121
|
-
logger.info('Session data encrypted', { sessionId });
|
|
122
|
-
}
|
|
123
|
-
logger.info('Creating new session in backend', {
|
|
124
|
-
sessionId,
|
|
125
|
-
userId,
|
|
126
|
-
agentType,
|
|
127
|
-
isEncrypted: !!encryptionData,
|
|
128
|
-
});
|
|
129
|
-
// createSession errors propagate to caller (e.g., SESSION_LIMIT_EXCEEDED)
|
|
130
|
-
await appSyncClient.createSession({
|
|
131
|
-
sessionId,
|
|
132
|
-
userId,
|
|
133
|
-
agentType,
|
|
134
|
-
projectPath: sessionProjectPath,
|
|
135
|
-
status: types_1.SessionStatus.ACTIVE,
|
|
136
|
-
metadata: sessionMetadata,
|
|
137
|
-
// E2E encryption fields
|
|
138
|
-
isEncrypted: encryptionData ? true : undefined,
|
|
139
|
-
creatorDeviceId: encryptionData ? await keychain_1.keychainManager.getDeviceId() : undefined,
|
|
140
|
-
encryptionVersion: encryptionData ? 1 : undefined,
|
|
141
|
-
encryptedKeys: encryptionData?.encryptedKeys,
|
|
142
|
-
});
|
|
143
|
-
const sessionKey = encryptionData?.sessionKey || null;
|
|
144
|
-
// Cache session key AFTER successful creation (avoids premature caching bug)
|
|
145
|
-
if (encryptionData) {
|
|
146
|
-
keychain_1.keychainManager.cacheSessionKey(sessionId, encryptionData.sessionKey);
|
|
147
|
-
}
|
|
148
|
-
logger.info('Session created', { sessionId, userId, isEncrypted: !!encryptionData });
|
|
149
|
-
return { resumed: false, sessionKey };
|
|
150
|
-
}
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1yZXN1bWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2Vzc2lvbi9zZXNzaW9uLXJlc3VtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOztBQW9DSCw0REE4QkM7QUFpQkQsc0RBbUdDO0FBbkxELHNDQUEwQztBQUMxQywwQ0FBOEM7QUFFOUMsb0NBSWtCO0FBaUJsQjs7Ozs7Ozs7R0FRRztBQUNJLEtBQUssVUFBVSx3QkFBd0IsQ0FDNUMsU0FBaUIsRUFDakIsYUFBNEIsRUFDNUIsTUFBYztJQUVkLElBQUksQ0FBQztRQUNILE1BQU0sVUFBVSxHQUFHLE1BQU0sYUFBYSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFNUQsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMscURBQXFELENBQUMsQ0FBQztZQUNuRSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFO1lBQzFDLFNBQVM7WUFDVCxXQUFXLEVBQUUsVUFBVSxDQUFDLE1BQU07U0FDL0IsQ0FBQyxDQUFDO1FBRUgsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRywwQkFBZSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5GLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLEVBQUU7WUFDekMsU0FBUztZQUNULFdBQVcsRUFBRSxhQUFhLENBQUMsTUFBTTtTQUNsQyxDQUFDLENBQUM7UUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQztJQUNkLENB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QUMsaUJBQWlCLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUVyRixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDZW50cmFsaXplZCBzZXNzaW9uIHJlc3VtZS9jcmVhdGUgbG9naWMgZm9yIGFsbCBDb2RlVmliZSBwbHVnaW5zLlxuICpcbiAqIEFsbCB0aHJlZSBwbHVnaW5zIChDbGF1ZGUsIENvZGV4LCBHZW1pbmkpIG5lZWQgdGhlIHNhbWUgcGF0dGVybjpcbiAqIDEuIENoZWNrIGlmIHNlc3Npb24gZXhpc3RzIGluIGJhY2tlbmQgKGdldFNlc3Npb24pXG4gKiAyLiBJZiBleGlzdHM6IHJlYWN0aXZhdGUgKyByZXN0b3JlIEUyRSBzZXNzaW9uIGtleSBmcm9tIGVuY3J5cHRlZEtleXNcbiAqIDMuIElmIG5vdCBleGlzdHM6IGdlbmVyYXRlIGVuY3J5cHRpb24ga2V5cyArIGNyZWF0ZSBzZXNzaW9uXG4gKlxuICogVGhpcyBtb2R1bGUgZWxpbWluYXRlcyB0aGUgZHVwbGljYXRpb24gYWNyb3NzIHBsdWdpbnMuXG4gKi9cblxuaW1wb3J0IHsgQXBwU3luY0NsaWVudCB9IGZyb20gJy4uL2FwcHN5bmMnO1xuaW1wb3J0IHsgY3J5cHRvU2VydmljZSB9IGZyb20gJy4uL2NyeXB0byc7XG5pbXBvcnQgeyBrZXljaGFpbk1hbmFnZXIgfSBmcm9tICcuLi9rZXljaGFpbic7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQWdlbnRUeXBlLFxuICBTZXNzaW9uU3RhdHVzLFxuICBFbmNyeXB0ZWRTZXNzaW9uS2V5LFxufSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdW1lT3JDcmVhdGVTZXNzaW9uSW5wdXQge1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGFnZW50VHlwZTogQWdlbnRUeXBlO1xuICBwcm9qZWN0UGF0aDogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdW1lT3JDcmVhdGVTZXNzaW9uUmVzdWx0IHtcbiAgLyoqIFdoZXRoZXIgYW4gZXhpc3Rpbmcgc2Vzc2lvbiB3YXMgZm91bmQgYW5kIHJlYWN0aXZhdGVkICovXG4gIHJlc3VtZWQ6IGJvb2xlYW47XG4gIC8qKiBUaGUgRTJFIHNlc3Npb24ga2V5IChmb3IgZW5jcnlwdGluZy9kZWNyeXB0aW5nIGV2ZW50cyksIG9yIG51bGwgaWYgbm8gZW5jcnlwdGlvbiAqL1xuICBzZXNzaW9uS2V5OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKipcbiAqIFByZXBhcmUgRTJFIGVuY3J5cHRpb24gZm9yIGEgbmV3IHNlc3Npb24uXG4gKlxuICogR2VuZXJhdGVzIGEgcmFuZG9tIHNlc3Npb24ga2V5IGFuZCBlbmNyeXB0cyBpdCBmb3IgYWxsIHJlZ2lzdGVyZWQgZGV2aWNlcy5cbiAqIERvZXMgTk9UIGNhY2hlIHRoZSBzZXNzaW9uIGtleSDigJQgY2FsbGVycyBzaG91bGQgY2FjaGUgb25seSBhZnRlciB0aGUgc2Vzc2lvblxuICogaXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgaW4gdGhlIGJhY2tlbmQuXG4gKlxuICogQHJldHVybnMgRW5jcnlwdGlvbiBkYXRhIG9yIG51bGwgaWYgbm8gZGV2aWNlIGtleXMgZm91bmQgLyBlcnJvclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZVNlc3Npb25FbmNyeXB0aW9uKFxuICBzZXNzaW9uSWQ6IHN0cmluZyxcbiAgYXBwU3luY0NsaWVudDogQXBwU3luY0NsaWVudCxcbiAgbG9nZ2VyOiBMb2dnZXIsXG4pOiBQcm9taXNlPHsgc2Vzc2lvbktleTogc3RyaW5nOyBlbmNyeXB0ZWRLZXlzOiBFbmNyeXB0ZWRTZXNzaW9uS2V5W10gfSB8IG51bGw+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkZXZpY2VLZXlzID0gYXdhaXQgYXBwU3luY0NsaWVudC5saXN0VXNlckRldmljZUtleXMoKTtcblxuICAgIGlmIChkZXZpY2VLZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgbG9nZ2VyLmluZm8oJ05vIGRldmljZSBrZXlzIGZvdW5kLCBzZXNzaW9uIHdpbGwgbm90IGJlIGVuY3J5cHRlZCcpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbG9nZ2VyLmluZm8oJ1ByZXBhcmluZyBzZXNzaW9uIGVuY3J5cHRpb24nLCB7XG4gICAgICBzZXNzaW9uSWQsXG4gICAgICBkZXZpY2VDb3VudDogZGV2aWNlS2V5cy5sZW5ndGgsXG4gICAgfSk7XG5cbiAgICBjb25zdCB7IHNlc3Npb25LZXksIGVuY3J5cHRlZEtleXMgfSA9IGtleWNoYWluTWFuYWdlci5jcmVhdGVTZXNzaW9uS2V5KGRldmljZUtleXMpO1xuXG4gICAgbG9nZ2VyLmluZm8oJ1Nlc3Npb24gZW5jcnlwdGlvbiBwcmVwYXJlZCcsIHtcbiAgICAgIHNlc3Npb25JZCxcbiAgICAgIGRldmljZUNvdW50OiBlbmNyeXB0ZWRLZXlzLmxlbmd0aCxcbiAgICB9KTtcblxuICAgIHJldHVybiB7IHNlc3Npb25LZXksIGVuY3J5cHRlZEtleXMgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBsb2dnZXIud2FybignRmFpbGVkIHRvIHByZXBhcmUgc2Vzc2lvbiBlbmNyeXB0aW9uOicsIGVycm9yKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIFJlc3VtZSBhbiBleGlzdGluZyBzZXNzaW9uIG9yIGNyZWF0ZSBhIG5ldyBvbmUuXG4gKlxuICogUmVzdW1lIHBhdGggKHNlc3Npb24gZXhpc3RzIGluIGJhY2tlbmQpOlxuICogICAtIFJlYWN0aXZhdGVzIHNlc3Npb24gKHN0YXR1cyDihpIgQUNUSVZFKVxuICogICAtIFJlc3RvcmVzIEUyRSBzZXNzaW9uIGtleSBmcm9tIGVuY3J5cHRlZEtleXNcbiAqXG4gKiBDcmVhdGUgcGF0aCAoc2Vzc2lvbiBkb2VzIG5vdCBleGlzdCk6XG4gKiAgIC0gUHJlcGFyZXMgRTJFIGVuY3J5cHRpb24gKGdlbmVyYXRlcyBrZXksIGVuY3J5cHRzIGZvciBhbGwgZGV2aWNlcylcbiAqICAgLSBFbmNyeXB0cyBwcm9qZWN0UGF0aCBhbmQgbWV0YWRhdGFcbiAqICAgLSBDcmVhdGVzIHNlc3Npb24gaW4gYmFja2VuZFxuICogICAtIENhY2hlcyBzZXNzaW9uIGtleSBvbmx5IGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAqXG4gKiBAdGhyb3dzIFByb3BhZ2F0ZXMgY3JlYXRlU2Vzc2lvbiBlcnJvcnMgKGUuZy4sIFNFU1NJT05fTElNSVRfRVhDRUVERUQpXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXN1bWVPckNyZWF0ZVNlc3Npb24oXG4gIGlucHV0OiBSZXN1bWVPckNyZWF0ZVNlc3Npb25JbnB1dCxcbiAgYXBwU3luY0NsaWVudDogQXBwU3luY0NsaWVudCxcbiAgbG9nZ2VyOiBMb2dnZXIsXG4pOiBQcm9taXNlPFJlc3VtZU9yQ3JlYXRlU2Vzc2lvblJlc3VsdD4ge1xuICBjb25zdCB7IHNlc3Npb25JZCwgdXNlcklkLCBhZ2VudFR5cGUsIHByb2plY3RQYXRoLCBtZXRhZGF0YSB9ID0gaW5wdXQ7XG5cbiAgLy8gQ2hlY2sgaWYgc2Vzc2lvbiBhbHJlYWR5IGV4aXN0cyBpbiBiYWNrZW5kXG4gIGxldCBleGlzdGluZ1Nlc3Npb24gPSBudWxsO1xuICB0cnkge1xuICAgIGV4aXN0aW5nU2Vzc2lvbiA9IGF3YWl0IGFwcFN5bmNDbGllbnQuZ2V0U2Vzc2lvbihzZXNzaW9uSWQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ2dlci53YXJuKCdGYWlsZWQgdG8gZ2V0IHNlc3Npb24gKHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgbmV3KScsIHsgc2Vzc2lvbklkLCBlcnJvciB9KTtcbiAgfVxuXG4gIGlmIChleGlzdGluZ1Nlc3Npb24pIHtcbiAgICAvLyBSRVNVTUUgUEFUSDogcmVhY3RpdmF0ZSBleGlzdGluZyBzZXNzaW9uIGFuZCByZXN0b3JlIHNlc3Npb24ga2V5XG4gICAgbG9nZ2VyLmluZm8oJ1Nlc3Npb24gZXhpc3RzIGluIGJhY2tlbmQgLSByZWFjdGl2YXRpbmcnLCB7XG4gICAgICBzZXNzaW9uSWQsXG4gICAgICBwcmV2aW91c1N0YXR1czogZXhpc3RpbmdTZXNzaW9uLnN0YXR1cyxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBhcHBTeW5jQ2xpZW50LnVwZGF0ZVNlc3Npb24oe1xuICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgIHN0YXR1czogU2Vzc2lvblN0YXR1cy5BQ1RJVkUsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLndhcm4oJ0ZhaWxlZCB0byByZWFjdGl2YXRlIGV4aXN0aW5nIHNlc3Npb24sIHdpbGwgY29udGludWUnLCB7IHNlc3Npb25JZCwgZXJyb3IgfSk7XG4gICAgfVxuXG4gICAgLy8gUmVzdG9yZSBzZXNzaW9uIGtleSBmcm9tIGVuY3J5cHRlZEtleXNcbiAgICBsZXQgc2Vzc2lvbktleTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgY29uc3QgZW5jcnlwdGVkS2V5cyA9IGV4aXN0aW5nU2Vzc2lvbi5lbmNyeXB0ZWRLZXlzO1xuICAgIGlmIChleGlzdGluZ1Nlc3Npb24uaXNFbmNyeXB0ZWQgJiYgZW5jcnlwdGVkS2V5cz8ubGVuZ3RoKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjYWNoZWRLZXkgPSBhd2FpdCBrZXljaGFpbk1hbmFnZXIuZ2V0U2Vzc2lvbktleShzZXNzaW9uSWQsIGVuY3J5cHRlZEtleXMpO1xuICAgICAgICBpZiAoY2FjaGVkS2V5KSB7XG4gICAgICAgICAgc2Vzc2lvbktleSA9IGNhY2hlZEtleTtcbiAgICAgICAgICBrZXljaGFpbk1hbmFnZXIuY2FjaGVTZXNzaW9uS2V5KHNlc3Npb25JZCwgY2FjaGVkS2V5KTtcbiAgICAgICAgICBsb2dnZXIuaW5mbygnU2Vzc2lvbiBrZXkgcmV0cmlldmVkIGZvciByZXN1bWVkIHNlc3Npb24nLCB7IHNlc3Npb25JZCB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIud2FybignTm8gZW5jcnlwdGVkIGtleSBmb3IgdGhpcyBkZXZpY2U7IHByb2NlZWRpbmcgd2l0aG91dCBkZWNyeXB0aW9uJywgeyBzZXNzaW9uSWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci53YXJuKCdGYWlsZWQgdG8gcmV0cmlldmUgc2Vzc2lvbiBrZXkgZm9yIHJlc3VtZWQgc2Vzc2lvbicsIHsgc2Vzc2lvbklkLCBlcnJvciB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyByZXN1bWVkOiB0cnVlLCBzZXNzaW9uS2V5IH07XG4gIH1cblxuICAvLyBORVcgU0VTU0lPTiBQQVRIOiBwcmVwYXJlIGVuY3J5cHRpb24gYW5kIGNyZWF0ZVxuICBjb25zdCBlbmNyeXB0aW9uRGF0YSA9IGF3YWl0IHByZXBhcmVTZXNzaW9uRW5jcnlwdGlvbihzZXNzaW9uSWQsIGFwcFN5bmNDbGllbnQsIGxvZ2dlcik7XG5cbiAgbGV0IHNlc3Npb25Qcm9qZWN0UGF0aCA9IHByb2plY3RQYXRoO1xuICBsZXQgc2Vzc2lvbk1ldGFkYXRhID0gbWV0YWRhdGE7XG5cbiAgaWYgKGVuY3J5cHRpb25EYXRhKSB7XG4gICAgc2Vzc2lvblByb2plY3RQYXRoID0gY3J5cHRvU2VydmljZS5lbmNyeXB0Q29udGVudChwcm9qZWN0UGF0aCwgZW5jcnlwdGlvbkRhdGEuc2Vzc2lvbktleSk7XG4gICAgaWYgKHNlc3Npb25NZXRhZGF0YSAmJiBPYmplY3Qua2V5cyhzZXNzaW9uTWV0YWRhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGVuY3J5cHRlZE1ldGEgPSBjcnlwdG9TZXJ2aWNlLmVuY3J5cHRNZXRhZGF0YShzZXNzaW9uTWV0YWRhdGEsIGVuY3J5cHRpb25EYXRhLnNlc3Npb25LZXkpO1xuICAgICAgc2Vzc2lvbk1ldGFkYXRhID0geyBlbmNyeXB0ZWQ6IGVuY3J5cHRlZE1ldGEgfTtcbiAgICB9XG4gICAgbG9nZ2VyLmluZm8oJ1Nlc3Npb24gZGF0YSBlbmNyeXB0ZWQnLCB7IHNlc3Npb25JZCB9KTtcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKCdDcmVhdGluZyBuZXcgc2Vzc2lvbiBpbiBiYWNrZW5kJywge1xuICAgIHNlc3Npb25JZCxcbiAgICB1c2VySWQsXG4gICAgYWdlbnRUeXBlLFxuICAgIGlzRW5jcnlwdGVkOiAhIWVuY3J5cHRpb25EYXRhLFxuICB9KTtcblxuICAvLyBjcmVhdGVTZXNzaW9uIGVycm9ycyBwcm9wYWdhdGUgdG8gY2FsbGVyIChlLmcuLCBTRVNTSU9OX0xJTUlUX0VYQ0VFREVEKVxuICBhd2FpdCBhcHBTeW5jQ2xpZW50LmNyZWF0ZVNlc3Npb24oe1xuICAgIHNlc3Npb25JZCxcbiAgICB1c2VySWQsXG4gICAgYWdlbnRUeXBlLFxuICAgIHByb2plY3RQYXRoOiBzZXNzaW9uUHJvamVjdFBhdGgsXG4gICAgc3RhdHVzOiBTZXNzaW9uU3RhdHVzLkFDVElWRSxcbiAgICBtZXRhZGF0YTogc2Vzc2lvbk1ldGFkYXRhLFxuICAgIC8vIEUyRSBlbmNyeXB0aW9uIGZpZWxkc1xuICAgIGlzRW5jcnlwdGVkOiBlbmNyeXB0aW9uRGF0YSA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgY3JlYXRvckRldmljZUlkOiBlbmNyeXB0aW9uRGF0YSA/IGF3YWl0IGtleWNoYWluTWFuYWdlci5nZXREZXZpY2VJZCgpIDogdW5kZWZpbmVkLFxuICAgIGVuY3J5cHRpb25WZXJzaW9uOiBlbmNyeXB0aW9uRGF0YSA/IDEgOiB1bmRlZmluZWQsXG4gICAgZW5jcnlwdGVkS2V5czogZW5jcnlwdGlvbkRhdGE/LmVuY3J5cHRlZEtleXMsXG4gIH0pO1xuXG4gIGNvbnN0IHNlc3Npb25LZXkgPSBlbmNyeXB0aW9uRGF0YT8uc2Vzc2lvbktleSB8fCBudWxsO1xuXG4gIC8vIENhY2hlIHNlc3Npb24ga2V5IEFGVEVSIHN1Y2Nlc3NmdWwgY3JlYXRpb24gKGF2b2lkcyBwcmVtYXR1cmUgY2FjaGluZyBidWcpXG4gIGlmIChlbmNyeXB0aW9uRGF0YSkge1xuICAgIGtleWNoYWluTWFuYWdlci5jYWNoZVNlc3Npb25LZXkoc2Vzc2lvbklkLCBlbmNyeXB0aW9uRGF0YS5zZXNzaW9uS2V5KTtcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKCdTZXNzaW9uIGNyZWF0ZWQnLCB7IHNlc3Npb25JZCwgdXNlcklkLCBpc0VuY3J5cHRlZDogISFlbmNyeXB0aW9uRGF0YSB9KTtcblxuICByZXR1cm4geyByZXN1bWVkOiBmYWxzZSwgc2Vzc2lvbktleSB9O1xufVxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0b3JlZCBPQXV0aCB0b2tlbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb2tlbkRhdGEge1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBpZFRva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudCA9ICdkZXZlbG9wbWVudCcgfCAncHJvZHVjdGlvbic7XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9lbmNyeXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVuY3J5cHRlZCBzZXNzaW9uIGtleSBmb3IgRTJFIGVuY3J5cHRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmNyeXB0ZWRTZXNzaW9uS2V5IHtcbiAgZGV2aWNlSWQ6IHN0cmluZztcbiAgZW5jcnlwdGVkS2V5OiBzdHJpbmc7XG4gIGVwaGVtZXJhbFB1YmxpY0tleTogc3RyaW5nO1xufVxuXG4vKipcbiAqIERldmljZSBrZXkgc3RvcmVkIHdpdGggYmFja2VuZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUtleSB7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBkZXZpY2VJZDogc3RyaW5nO1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgcGxhdGZvcm06IHN0cmluZztcbiAgZGV2aWNlTmFtZT86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIGxhc3RVc2VkQXQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogS2V5IHBhaXIgZm9yIEVDREhcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLZXlQYWlyIHtcbiAgcHJpdmF0ZUtleTogc3RyaW5nO1xuICBwdWJsaWNLZXk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXZpY2UgaWRlbnRpdHkgc3RvcmVkIGluIGtleWNoYWluXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlSWRlbnRpdHkge1xuICBkZXZpY2VJZDogc3RyaW5nO1xuICBwcml2YXRlS2V5OiBzdHJpbmc7XG4gIHB1YmxpY0tleTogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBHcmFwaFFMIGlucHV0IGZvciByZWdpc3RlcmluZyBkZXZpY2Uga2V5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJEZXZpY2VLZXlJbnB1dCB7XG4gIGRldmljZUlkOiBzdHJpbmc7XG4gIHB1YmxpY0tleTogc3RyaW5nO1xuICBwbGF0Zm9ybTogc3RyaW5nO1xuICBkZXZpY2VOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEdyYXBoUUwgaW5wdXQgZm9yIGdyYW50aW5nIHNlc3Npb24ga2V5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRTZXNzaW9uS2V5SW5wdXQge1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgZGV2aWNlSWQ6IHN0cmluZztcbiAgZW5jcnlwdGVkS2V5OiBzdHJpbmc7XG4gIGVwaGVtZXJhbFB1YmxpY0tleTogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DeliveryStatus = exports.EventSource = exports.EventType = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Event types matching GraphQL schema
|
|
6
|
-
*/
|
|
7
|
-
var EventType;
|
|
8
|
-
(function (EventType) {
|
|
9
|
-
EventType["USER_PROMPT"] = "USER_PROMPT";
|
|
10
|
-
EventType["ASSISTANT_RESPONSE"] = "ASSISTANT_RESPONSE";
|
|
11
|
-
EventType["TOOL_USE"] = "TOOL_USE";
|
|
12
|
-
EventType["NOTIFICATION"] = "NOTIFICATION";
|
|
13
|
-
EventType["INTERACTIVE_PROMPT"] = "INTERACTIVE_PROMPT";
|
|
14
|
-
EventType["PROMPT_RESPONSE"] = "PROMPT_RESPONSE";
|
|
15
|
-
EventType["REASONING"] = "REASONING";
|
|
16
|
-
})(EventType || (exports.EventType = EventType = {}));
|
|
17
|
-
var EventSource;
|
|
18
|
-
(function (EventSource) {
|
|
19
|
-
EventSource["DESKTOP"] = "DESKTOP";
|
|
20
|
-
EventSource["MOBILE"] = "MOBILE";
|
|
21
|
-
})(EventSource || (exports.EventSource = EventSource = {}));
|
|
22
|
-
var DeliveryStatus;
|
|
23
|
-
(function (DeliveryStatus) {
|
|
24
|
-
DeliveryStatus["SENT"] = "SENT";
|
|
25
|
-
DeliveryStatus["DELIVERED"] = "DELIVERED";
|
|
26
|
-
DeliveryStatus["EXECUTED"] = "EXECUTED";
|
|
27
|
-
})(DeliveryStatus || (exports.DeliveryStatus = DeliveryStatus = {}));
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2V2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksU0FRWDtBQVJELFdBQVksU0FBUztJQUNuQix3Q0FBMkIsQ0FBQTtJQUMzQixzREFBeUMsQ0FBQTtJQUN6QyxrQ0FBcUIsQ0FBQTtJQUNyQiwwQ0FBNkIsQ0FBQTtJQUM3QixzREFBeUMsQ0FBQTtJQUN6QyxnREFBbUMsQ0FBQTtJQUNuQyxvQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBUlcsU0FBUyx5QkFBVCxTQUFTLFFBUXBCO0FBRUQsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLGtDQUFtQixDQUFBO0lBQ25CLGdDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxXQUFXLDJCQUFYLFdBQVcsUUFHdEI7QUFFRCxJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIsK0JBQWEsQ0FBQTtJQUNiLHlDQUF1QixDQUFBO0lBQ3ZCLHVDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxjQUFjLDhCQUFkLGNBQWMsUUFJekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV2ZW50IHR5cGVzIG1hdGNoaW5nIEdyYXBoUUwgc2NoZW1hXG4gKi9cbmV4cG9ydCBlbnVtIEV2ZW50VHlwZSB7XG4gIFVTRVJfUFJPTVBUID0gJ1VTRVJfUFJPTVBUJyxcbiAgQVNTSVNUQU5UX1JFU1BPTlNFID0gJ0FTU0lTVEFOVF9SRVNQT05TRScsXG4gIFRPT0xfVVNFID0gJ1RPT0xfVVNFJyxcbiAgTk9USUZJQ0FUSU9OID0gJ05PVElGSUNBVElPTicsXG4gIElOVEVSQUNUSVZFX1BST01QVCA9ICdJTlRFUkFDVElWRV9QUk9NUFQnLFxuICBQUk9NUFRfUkVTUE9OU0UgPSAnUFJPTVBUX1JFU1BPTlNFJyxcbiAgUkVBU09OSU5HID0gJ1JFQVNPTklORycsXG59XG5cbmV4cG9ydCBlbnVtIEV2ZW50U291cmNlIHtcbiAgREVTS1RPUCA9ICdERVNLVE9QJyxcbiAgTU9CSUxFID0gJ01PQklMRScsXG59XG5cbmV4cG9ydCBlbnVtIERlbGl2ZXJ5U3RhdHVzIHtcbiAgU0VOVCA9ICdTRU5UJyxcbiAgREVMSVZFUkVEID0gJ0RFTElWRVJFRCcsXG4gIEVYRUNVVEVEID0gJ0VYRUNVVEVEJyxcbn1cblxuLyoqXG4gKiBBdHRhY2htZW50IHR5cGUgKGZvciBpbWFnZXMvZmlsZXMgYXR0YWNoZWQgdG8gbWVzc2FnZXMpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudCB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIHMzS2V5OiBzdHJpbmc7XG4gIHNpemU/OiBudW1iZXI7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIGlzRW5jcnlwdGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFdmVudCB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnQge1xuICBldmVudElkOiBzdHJpbmc7XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICB0eXBlOiBFdmVudFR5cGU7XG4gIHNvdXJjZTogRXZlbnRTb3VyY2U7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgdGltZXN0YW1wOiBzdHJpbmc7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgcHJvbXB0SWQ/OiBzdHJpbmc7XG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudFtdO1xuICBkZWxpdmVyeVN0YXR1cz86IERlbGl2ZXJ5U3RhdHVzO1xuICBkZWxpdmVyZWRBdD86IHN0cmluZztcbiAgZXhlY3V0ZWRBdD86IHN0cmluZztcbiAgaXNFbmNyeXB0ZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEdyYXBoUUwgaW5wdXQgZm9yIGNyZWF0aW5nIGV2ZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUV2ZW50SW5wdXQge1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgdHlwZTogRXZlbnRUeXBlO1xuICBzb3VyY2U6IEV2ZW50U291cmNlO1xuICBjb250ZW50OiBzdHJpbmc7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgcHJvbXB0SWQ/OiBzdHJpbmc7XG4gIHRpbWVzdGFtcD86IHN0cmluZzsgIC8vIE9wdGlvbmFsIGNsaWVudC1wcm92aWRlZCB0aW1lc3RhbXAgZm9yIG9yZGVyaW5nXG4gIGlzRW5jcnlwdGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBHcmFwaFFMIGlucHV0IGZvciB1cGRhdGluZyBldmVudCBzdGF0dXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVFdmVudFN0YXR1c0lucHV0IHtcbiAgZXZlbnRJZDogc3RyaW5nO1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgdGltZXN0YW1wOiBzdHJpbmc7XG4gIGRlbGl2ZXJ5U3RhdHVzOiBEZWxpdmVyeVN0YXR1cztcbn1cbiJdfQ==
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
// Re-export all types
|
|
18
|
-
__exportStar(require("./events"), exports);
|
|
19
|
-
__exportStar(require("./session"), exports);
|
|
20
|
-
__exportStar(require("./encryption"), exports);
|
|
21
|
-
__exportStar(require("./auth"), exports);
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNCQUFzQjtBQUN0QiwyQ0FBeUI7QUFDekIsNENBQTBCO0FBQzFCLCtDQUE2QjtBQUM3Qix5Q0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSZS1leHBvcnQgYWxsIHR5cGVzXG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24nO1xuZXhwb3J0ICogZnJvbSAnLi9lbmNyeXB0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aCc7XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AgentType = exports.SessionStatus = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Session status enum
|
|
6
|
-
*/
|
|
7
|
-
var SessionStatus;
|
|
8
|
-
(function (SessionStatus) {
|
|
9
|
-
SessionStatus["ACTIVE"] = "ACTIVE";
|
|
10
|
-
SessionStatus["INACTIVE"] = "INACTIVE";
|
|
11
|
-
SessionStatus["PAUSED"] = "PAUSED";
|
|
12
|
-
})(SessionStatus || (exports.SessionStatus = SessionStatus = {}));
|
|
13
|
-
/**
|
|
14
|
-
* Agent type for multi-agent support
|
|
15
|
-
*/
|
|
16
|
-
var AgentType;
|
|
17
|
-
(function (AgentType) {
|
|
18
|
-
AgentType["CLAUDE"] = "CLAUDE";
|
|
19
|
-
AgentType["GEMINI"] = "GEMINI";
|
|
20
|
-
AgentType["CODEX"] = "CODEX";
|
|
21
|
-
})(AgentType || (exports.AgentType = AgentType = {}));
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9zZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOztHQUVHO0FBQ0gsSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLGtDQUFpQixDQUFBO0lBQ2pCLHNDQUFxQixDQUFBO0lBQ3JCLGtDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKVyxhQUFhLDZCQUFiLGFBQWEsUUFJeEI7QUFFRDs7R0FFRztBQUNILElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNuQiw4QkFBaUIsQ0FBQTtJQUNqQiw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxTQUFTLHlCQUFULFNBQVMsUUFJcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmNyeXB0ZWRTZXNzaW9uS2V5IH0gZnJvbSAnLi9lbmNyeXB0aW9uJztcblxuLyoqXG4gKiBTZXNzaW9uIHN0YXR1cyBlbnVtXG4gKi9cbmV4cG9ydCBlbnVtIFNlc3Npb25TdGF0dXMge1xuICBBQ1RJVkUgPSAnQUNUSVZFJyxcbiAgSU5BQ1RJVkUgPSAnSU5BQ1RJVkUnLFxuICBQQVVTRUQgPSAnUEFVU0VEJyxcbn1cblxuLyoqXG4gKiBBZ2VudCB0eXBlIGZvciBtdWx0aS1hZ2VudCBzdXBwb3J0XG4gKi9cbmV4cG9ydCBlbnVtIEFnZW50VHlwZSB7XG4gIENMQVVERSA9ICdDTEFVREUnLFxuICBHRU1JTkkgPSAnR0VNSU5JJyxcbiAgQ09ERVggPSAnQ09ERVgnLFxufVxuXG4vKipcbiAqIFNlc3Npb24gdHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlc3Npb24ge1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGFnZW50VHlwZTogQWdlbnRUeXBlO1xuICBwcm9qZWN0UGF0aDogc3RyaW5nO1xuICBzdGF0dXM6IFNlc3Npb25TdGF0dXM7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBpc0VuY3J5cHRlZD86IGJvb2xlYW47XG4gIGVuY3J5cHRlZEtleXM/OiBFbmNyeXB0ZWRTZXNzaW9uS2V5W107XG4gIGNyZWF0b3JEZXZpY2VJZD86IHN0cmluZztcbiAgZW5jcnlwdGlvblZlcnNpb24/OiBudW1iZXI7XG4gIGxhc3RIZWFydGJlYXRBdD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBHcmFwaFFMIGlucHV0IGZvciBjcmVhdGluZyBzZXNzaW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVNlc3Npb25JbnB1dCB7XG4gIHNlc3Npb25JZD86IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGFnZW50VHlwZT86IEFnZW50VHlwZTtcbiAgcHJvamVjdFBhdGg6IHN0cmluZztcbiAgc3RhdHVzPzogU2Vzc2lvblN0YXR1cztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBlbmNyeXB0ZWRLZXlzPzogRW5jcnlwdGVkU2Vzc2lvbktleVtdO1xuICBjcmVhdG9yRGV2aWNlSWQ/OiBzdHJpbmc7XG4gIGlzRW5jcnlwdGVkPzogYm9vbGVhbjtcbiAgZW5jcnlwdGlvblZlcnNpb24/OiBudW1iZXI7XG59XG5cbi8qKlxuICogR3JhcGhRTCBpbnB1dCBmb3IgdXBkYXRpbmcgc2Vzc2lvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTZXNzaW9uSW5wdXQge1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgc3RhdHVzPzogU2Vzc2lvblN0YXR1cztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBsYXN0SGVhcnRiZWF0QXQ/OiBzdHJpbmc7XG59XG4iXX0=
|