@lore-co/core 0.2.4 → 0.2.6
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/auth-schemas.d.ts +36 -0
- package/dist/auth-schemas.d.ts.map +1 -1
- package/dist/auth-schemas.js +9 -0
- package/dist/auth-schemas.js.map +1 -1
- package/dist/cloud-recovery-schemas.d.ts +6 -0
- package/dist/cloud-recovery-schemas.d.ts.map +1 -1
- package/dist/cloud-recovery-schemas.js +2 -0
- package/dist/cloud-recovery-schemas.js.map +1 -1
- package/dist/engine.d.ts +1 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +9 -0
- package/dist/engine.js.map +1 -1
- package/dist/guard-evaluation.d.ts.map +1 -1
- package/dist/guard-evaluation.js +35 -2
- package/dist/guard-evaluation.js.map +1 -1
- package/dist/in-memory-repository.d.ts +8 -0
- package/dist/in-memory-repository.d.ts.map +1 -1
- package/dist/in-memory-repository.js +10 -0
- package/dist/in-memory-repository.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/local-scope.d.ts +47 -0
- package/dist/local-scope.d.ts.map +1 -0
- package/dist/local-scope.js +275 -0
- package/dist/local-scope.js.map +1 -0
- package/dist/ports.d.ts +2 -0
- package/dist/ports.d.ts.map +1 -1
- package/dist/prepared-context.d.ts +65 -0
- package/dist/prepared-context.d.ts.map +1 -0
- package/dist/prepared-context.js +117 -0
- package/dist/prepared-context.js.map +1 -0
- package/dist/product-usage.d.ts +8 -0
- package/dist/product-usage.d.ts.map +1 -1
- package/dist/product-usage.js.map +1 -1
- package/dist/recovery-packet-schemas.d.ts +1 -0
- package/dist/recovery-packet-schemas.d.ts.map +1 -1
- package/dist/recovery-packet-schemas.js +8 -4
- package/dist/recovery-packet-schemas.js.map +1 -1
- package/dist/repository-location.d.ts +5 -0
- package/dist/repository-location.d.ts.map +1 -0
- package/dist/repository-location.js +91 -0
- package/dist/repository-location.js.map +1 -0
- package/dist/repository-policy.d.ts +29 -0
- package/dist/repository-policy.d.ts.map +1 -0
- package/dist/repository-policy.js +49 -0
- package/dist/repository-policy.js.map +1 -0
- package/dist/search-schemas.d.ts +1 -1
- package/dist/session-schemas.d.ts +1 -0
- package/dist/session-schemas.d.ts.map +1 -1
- package/dist/session-schemas.js +2 -1
- package/dist/session-schemas.js.map +1 -1
- package/package.json +17 -1
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { mkdir, open, realpath, writeFile } from "node:fs/promises";
|
|
2
|
+
import { constants } from "node:fs";
|
|
3
|
+
import { createHash } from "node:crypto";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { isAbsolute, resolve } from "node:path";
|
|
6
|
+
import { repositoryScopeFromDirectory } from "./repository-location.js";
|
|
7
|
+
const connectionIdPattern = /^[a-f0-9]{64}$/u;
|
|
8
|
+
const canonicalApi = (value) => new URL(value).href.replace(/\/+$/u, "");
|
|
9
|
+
export function localConnectionId(connection) {
|
|
10
|
+
return createHash("sha256").update(JSON.stringify([
|
|
11
|
+
canonicalApi(connection.apiUrl), connection.workspaceId ?? "",
|
|
12
|
+
connection.accountId ? `account:${connection.accountId}` : `credential:${connection.token}`,
|
|
13
|
+
])).digest("hex");
|
|
14
|
+
}
|
|
15
|
+
export function connectionReferences(value) {
|
|
16
|
+
if (value === undefined)
|
|
17
|
+
return [];
|
|
18
|
+
if (!Array.isArray(value) || value.length > 100)
|
|
19
|
+
throw new Error("Invalid saved Lore connections");
|
|
20
|
+
const references = value.map(item => {
|
|
21
|
+
if (!item || typeof item !== "object" || !connectionIdPattern.test(item.id) || typeof item.name !== "string" || !/^[a-z0-9][a-z0-9_-]{0,63}$/u.test(item.name))
|
|
22
|
+
throw new Error("Invalid saved Lore connection");
|
|
23
|
+
return { id: String(item.id), name: String(item.name) };
|
|
24
|
+
});
|
|
25
|
+
if (new Set(references.map(item => item.id)).size !== references.length || new Set(references.map(item => item.name)).size !== references.length)
|
|
26
|
+
throw new Error("Duplicate Lore connections");
|
|
27
|
+
return references;
|
|
28
|
+
}
|
|
29
|
+
export function connectionConfigPath(home, id) {
|
|
30
|
+
if (!connectionIdPattern.test(id))
|
|
31
|
+
throw new Error("Invalid Lore connection ID");
|
|
32
|
+
return resolve(home, ".lore", "connections", `${id}.json`);
|
|
33
|
+
}
|
|
34
|
+
async function readConfigFile(path) {
|
|
35
|
+
const file = await open(path, constants.O_RDONLY | constants.O_NOFOLLOW);
|
|
36
|
+
try {
|
|
37
|
+
const info = await file.stat();
|
|
38
|
+
if (!info.isFile() || info.size > 65536)
|
|
39
|
+
throw new Error("Invalid Lore config file");
|
|
40
|
+
const text = await file.readFile("utf8");
|
|
41
|
+
if (Buffer.byteLength(text) > 65536)
|
|
42
|
+
throw new Error("Lore config is too large");
|
|
43
|
+
const config = JSON.parse(text);
|
|
44
|
+
if (!config || typeof config !== "object" || Array.isArray(config))
|
|
45
|
+
throw new Error("Invalid Lore config");
|
|
46
|
+
const record = config;
|
|
47
|
+
if ((record.savedConnections !== undefined || record.connectionId !== undefined) &&
|
|
48
|
+
((process.platform !== "win32" && (info.mode & 0o077) !== 0) ||
|
|
49
|
+
(typeof process.getuid === "function" && info.uid !== process.getuid()))) {
|
|
50
|
+
throw new Error("Lore connection files must be private to your user. Run lore connect again.");
|
|
51
|
+
}
|
|
52
|
+
return record;
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
await file.close();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export async function readLocalConfig(home) {
|
|
59
|
+
try {
|
|
60
|
+
return await readConfigFile(resolve(homePath(home), ".lore", "config.json"));
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
if (error.code === "ENOENT")
|
|
64
|
+
return undefined;
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function asConnection(config) {
|
|
69
|
+
if (typeof config.apiUrl !== "string" || typeof config.token !== "string" || !config.token.trim())
|
|
70
|
+
throw new Error("Lore is not connected. Run lore connect.");
|
|
71
|
+
const connection = { ...config, apiUrl: config.apiUrl, token: config.token };
|
|
72
|
+
if (config.directories !== undefined)
|
|
73
|
+
connection.directories = parseDirectoryRules(config.directories);
|
|
74
|
+
if (config.connectionId !== undefined && (!connectionIdPattern.test(String(config.connectionId)) || localConnectionId(connection) !== config.connectionId))
|
|
75
|
+
throw new Error("Lore connection identity changed. Run lore connect again.");
|
|
76
|
+
return connection;
|
|
77
|
+
}
|
|
78
|
+
export async function savedLocalConnections(home) {
|
|
79
|
+
const config = await readLocalConfig(home);
|
|
80
|
+
if (!config)
|
|
81
|
+
return [];
|
|
82
|
+
const current = asConnection(config);
|
|
83
|
+
const references = connectionReferences(config.savedConnections);
|
|
84
|
+
if (!references.length)
|
|
85
|
+
return [current];
|
|
86
|
+
if (!references.some(ref => ref.id === current.connectionId))
|
|
87
|
+
throw new Error("The current Lore connection is not saved");
|
|
88
|
+
return Promise.all(references.map(async (ref) => {
|
|
89
|
+
const connection = ref.id === current.connectionId ? current : asConnection(await readConfigFile(connectionConfigPath(homePath(home), ref.id)));
|
|
90
|
+
if (connection.connectionId !== ref.id || connection.connectionName !== ref.name)
|
|
91
|
+
throw new Error("Invalid saved Lore connection identity");
|
|
92
|
+
// Agent installations belong to the machine, not to an account.
|
|
93
|
+
return { ...connection, agents: config.agents, agentConfigPaths: config.agentConfigPaths };
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
export async function resolveLocalConnection(cwd, home) {
|
|
97
|
+
const connections = await savedLocalConnections(home);
|
|
98
|
+
if (!connections.length)
|
|
99
|
+
throw new Error("Lore is not connected. Run lore connect.");
|
|
100
|
+
const decisions = await Promise.all(connections.map(connection => checkDirectoryRules(connection.directories, cwd, home)));
|
|
101
|
+
if (decisions.some(value => value.reason.startsWith("Folder rules could not be checked")))
|
|
102
|
+
throw new Error("A saved connection has invalid folder rules. Run lore config open --connection <name>.");
|
|
103
|
+
const matches = connections.filter((_, index) => decisions[index].allowed);
|
|
104
|
+
if (matches.length > 1)
|
|
105
|
+
throw new Error(`This folder matches multiple Lore connections (${matches.map(value => value.connectionName).join(", ")}). Update their folder rules.`);
|
|
106
|
+
if (!matches.length)
|
|
107
|
+
throw new Error(connections.length === 1 ? decisions[0].reason : "No Lore connection allows this folder. Run lore config open --connection <name>.");
|
|
108
|
+
return matches[0];
|
|
109
|
+
}
|
|
110
|
+
/** Explicit environment credentials still obey the saved folder destination. */
|
|
111
|
+
export async function matchLocalCredentials(connection, cwd, home) {
|
|
112
|
+
if (!(await readLocalConfig(home))?.savedConnections)
|
|
113
|
+
return connection;
|
|
114
|
+
const selected = await resolveLocalConnection(cwd, home);
|
|
115
|
+
if (canonicalApi(selected.apiUrl) !== canonicalApi(connection.apiUrl) || selected.token !== connection.token) {
|
|
116
|
+
throw new Error("These Lore credentials belong to a different folder connection. Check your environment settings.");
|
|
117
|
+
}
|
|
118
|
+
return { ...connection, ...(selected.connectionId ? { connectionId: selected.connectionId } : {}) };
|
|
119
|
+
}
|
|
120
|
+
/** Keep a conversation on its original connection, even after editing rules. */
|
|
121
|
+
export async function bindLocalSession(home, agent, sessionId, connectionId) {
|
|
122
|
+
if (!connectionId)
|
|
123
|
+
return true;
|
|
124
|
+
if (!connectionIdPattern.test(connectionId))
|
|
125
|
+
return false;
|
|
126
|
+
const directory = resolve(home, ".lore", "state", "connection-sessions");
|
|
127
|
+
const path = resolve(directory, `${createHash("sha256").update(`${agent}\0${sessionId}`).digest("hex")}.json`);
|
|
128
|
+
await mkdir(directory, { recursive: true, mode: 0o700 });
|
|
129
|
+
try {
|
|
130
|
+
await writeFile(path, JSON.stringify({ connectionId }), { mode: 0o600, flag: "wx" });
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
if (error.code !== "EEXIST")
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
return (await readConfigFile(path)).connectionId === connectionId;
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const slash = (value) => value.replace(/\\/gu, "/").replace(/\/+$/u, "");
|
|
145
|
+
const homePath = (home) => home ?? process.env.LORE_HOME ?? process.env.HOME ?? homedir();
|
|
146
|
+
export function parseDirectoryRules(value) {
|
|
147
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
148
|
+
throw new Error("directories must contain include and optional exclude arrays");
|
|
149
|
+
const record = value;
|
|
150
|
+
if (Object.keys(record).some(key => !["include", "exclude"].includes(key)))
|
|
151
|
+
throw new Error("Unknown directory rule field");
|
|
152
|
+
const list = (input) => {
|
|
153
|
+
if (!Array.isArray(input) || input.length > 100 || input.some(item => typeof item !== "string" || !item.trim() || item.length > 2000))
|
|
154
|
+
throw new Error("Directory patterns must be an array of paths");
|
|
155
|
+
return input.map(item => String(item).trim());
|
|
156
|
+
};
|
|
157
|
+
return { include: list(record.include), exclude: list(record.exclude ?? []) };
|
|
158
|
+
}
|
|
159
|
+
export async function readDirectoryRules(home) {
|
|
160
|
+
const config = await readLocalConfig(home);
|
|
161
|
+
return config?.directories === undefined ? undefined : parseDirectoryRules(config.directories);
|
|
162
|
+
}
|
|
163
|
+
async function patternPath(pattern, home) {
|
|
164
|
+
const expanded = pattern.startsWith("~/") || pattern.startsWith("~\\") ? resolve(home, pattern.slice(2)) : pattern;
|
|
165
|
+
if (!isAbsolute(expanded) || /[\[\]{}!\0]/u.test(expanded))
|
|
166
|
+
throw new Error("Use absolute paths or ~/ paths with *, **, or ? wildcards");
|
|
167
|
+
const normalized = slash(resolve(expanded));
|
|
168
|
+
const parts = normalized.split("/");
|
|
169
|
+
const wildcard = parts.findIndex(part => /[*?]/u.test(part));
|
|
170
|
+
const prefix = wildcard < 0 ? normalized : parts.slice(0, wildcard).join("/") || "/";
|
|
171
|
+
const canonicalPrefix = await realpath(prefix).catch(() => prefix);
|
|
172
|
+
return `${slash(canonicalPrefix)}${wildcard < 0 ? "" : `/${parts.slice(wildcard).join("/")}`}`;
|
|
173
|
+
}
|
|
174
|
+
function matches(path, pattern) {
|
|
175
|
+
const base = pattern.replace(/\/\*\*$/u, "");
|
|
176
|
+
// A directory path includes itself and descendants, as does a trailing /**.
|
|
177
|
+
const withDescendants = !/[*?]/u.test(pattern) || base !== pattern;
|
|
178
|
+
let expression = "";
|
|
179
|
+
for (let index = 0; index < base.length; index++) {
|
|
180
|
+
const character = base[index];
|
|
181
|
+
if (character === "*" && base[index + 1] === "*") {
|
|
182
|
+
index++;
|
|
183
|
+
if (base[index + 1] === "/") {
|
|
184
|
+
expression += "(?:.*/)?";
|
|
185
|
+
index++;
|
|
186
|
+
}
|
|
187
|
+
else
|
|
188
|
+
expression += ".*";
|
|
189
|
+
}
|
|
190
|
+
else if (character === "*")
|
|
191
|
+
expression += "[^/]*";
|
|
192
|
+
else if (character === "?")
|
|
193
|
+
expression += "[^/]";
|
|
194
|
+
else
|
|
195
|
+
expression += character.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
|
|
196
|
+
}
|
|
197
|
+
return new RegExp(`^${expression}${withDescendants ? "(?:/.*)?" : ""}$`, process.platform === "win32" ? "iu" : "u").test(path);
|
|
198
|
+
}
|
|
199
|
+
export async function checkDirectoryRules(rules, cwd, home) {
|
|
200
|
+
try {
|
|
201
|
+
if (!rules)
|
|
202
|
+
return { allowed: true, reason: "No local folder restrictions" };
|
|
203
|
+
if (!cwd || !isAbsolute(cwd))
|
|
204
|
+
return { allowed: false, reason: "The working folder is unknown" };
|
|
205
|
+
const path = slash(await realpath(cwd));
|
|
206
|
+
const includes = await Promise.all(rules.include.map(pattern => patternPath(pattern, homePath(home))));
|
|
207
|
+
const excludes = await Promise.all(rules.exclude.map(pattern => patternPath(pattern, homePath(home))));
|
|
208
|
+
const excluded = excludes.findIndex(pattern => matches(path, pattern));
|
|
209
|
+
if (excluded >= 0)
|
|
210
|
+
return { allowed: false, reason: "Excluded folder", pattern: rules.exclude[excluded] };
|
|
211
|
+
const included = includes.findIndex(pattern => matches(path, pattern));
|
|
212
|
+
return included < 0 ? { allowed: false, reason: "Outside allowed folders" } : { allowed: true, reason: "Allowed folder", pattern: rules.include[included] };
|
|
213
|
+
}
|
|
214
|
+
catch {
|
|
215
|
+
return { allowed: false, reason: "Folder rules could not be checked. Check ~/.lore/config.json." };
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
export async function checkDirectory(cwd, home, expected) {
|
|
219
|
+
try {
|
|
220
|
+
const config = await readLocalConfig(home);
|
|
221
|
+
if (!config?.savedConnections) {
|
|
222
|
+
const boundId = typeof expected === "string" ? expected : expected?.connectionId;
|
|
223
|
+
if (boundId)
|
|
224
|
+
return { allowed: false, reason: "The saved Lore connection is unavailable. Reconnect before continuing." };
|
|
225
|
+
if (expected && typeof expected !== "string" && typeof config?.apiUrl === "string" && typeof config.token === "string" &&
|
|
226
|
+
(canonicalApi(config.apiUrl) !== canonicalApi(expected.apiUrl) || config.token !== expected.token)) {
|
|
227
|
+
return { allowed: false, reason: "This session belongs to a different Lore connection. Start a new agent session." };
|
|
228
|
+
}
|
|
229
|
+
return checkDirectoryRules(await readDirectoryRules(home), cwd, home);
|
|
230
|
+
}
|
|
231
|
+
const selected = await resolveLocalConnection(cwd, home);
|
|
232
|
+
if (expected && (typeof expected === "string" ? selected.connectionId !== expected : canonicalApi(selected.apiUrl) !== canonicalApi(expected.apiUrl) || selected.token !== expected.token || (expected.connectionId !== undefined && selected.connectionId !== expected.connectionId))) {
|
|
233
|
+
return { allowed: false, reason: "This session belongs to a different Lore connection. Start a new agent session." };
|
|
234
|
+
}
|
|
235
|
+
return { ...(await checkDirectoryRules(selected.directories, cwd, home)), reason: `Connection: ${selected.connectionName}` };
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
return { allowed: false, reason: error instanceof Error ? error.message : "Lore connection could not be selected" };
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
function identity(value) {
|
|
242
|
+
if (!value)
|
|
243
|
+
return undefined;
|
|
244
|
+
const key = value.split("/").length === 2 ? `github.com/${value}` : value;
|
|
245
|
+
return key.startsWith("github.com/") ? key.toLowerCase() : key;
|
|
246
|
+
}
|
|
247
|
+
/** Fetch only policy, never project content, before capture or cached retrieval. */
|
|
248
|
+
export async function checkWorkspaceRepository(connection, repo, fetcher = fetch) {
|
|
249
|
+
try {
|
|
250
|
+
const response = await fetcher(`${connection.apiUrl.replace(/\/+$/u, "")}/v1/workspace/repositories`, {
|
|
251
|
+
headers: { authorization: `Bearer ${connection.token}` },
|
|
252
|
+
signal: AbortSignal.timeout(connection.timeoutMs ?? 2500),
|
|
253
|
+
});
|
|
254
|
+
// Compatibility with servers predating repository restrictions.
|
|
255
|
+
if (response.status === 404)
|
|
256
|
+
return { allowed: true, reason: "Server has no repository restrictions" };
|
|
257
|
+
if (!response.ok)
|
|
258
|
+
throw new Error("Policy unavailable");
|
|
259
|
+
const value = await response.json();
|
|
260
|
+
if (!["all", "selected"].includes(String(value.mode)) || !Array.isArray(value.repositories) || value.repositories.some(item => typeof item !== "string"))
|
|
261
|
+
throw new Error("Invalid policy");
|
|
262
|
+
const allowed = value.mode === "all" || (identity(repo) !== undefined && value.repositories.includes(identity(repo)));
|
|
263
|
+
return { allowed, reason: allowed ? "Repository allowed by workspace" : "Repository is not enabled for this workspace" };
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
return { allowed: false, reason: "Workspace repository settings are unavailable" };
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
export async function checkLoreAccess(cwd, home, connection, fetcher = fetch, repo) {
|
|
270
|
+
const local = await checkDirectory(cwd, home, connection);
|
|
271
|
+
if (!local.allowed)
|
|
272
|
+
return local;
|
|
273
|
+
return checkWorkspaceRepository(connection, repo ?? (cwd ? await repositoryScopeFromDirectory(cwd) : undefined), fetcher);
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=local-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-scope.js","sourceRoot":"","sources":["../src/local-scope.ts"],"names":[],"mappings":"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"}
|
package/dist/ports.d.ts
CHANGED
|
@@ -96,6 +96,8 @@ export interface MemoryRepository {
|
|
|
96
96
|
getProposal(memoryId: string, context?: RepositoryContext): Promise<ProposalRecord | null>;
|
|
97
97
|
addProposalConflict(conflict: MemoryConflict, context: WorkspaceRepositoryContext): Promise<InsertMemoryConflictResult>;
|
|
98
98
|
reviewProposal(input: ReviewProposalDto, context: WorkspaceRepositoryContext): Promise<ReviewProposalResponse>;
|
|
99
|
+
getRepositoryPolicy(workspaceId: string): Promise<import("./repository-policy.js").RepositoryPolicy>;
|
|
100
|
+
updateRepositoryPolicy(workspaceId: string, policy: import("./repository-policy.js").RepositoryPolicy): Promise<import("./repository-policy.js").RepositoryPolicy>;
|
|
99
101
|
getWorkspaceLearningPolicy(workspaceId: string): Promise<WorkspaceLearningPolicy>;
|
|
100
102
|
updateWorkspaceLearningPolicy(workspaceId: string, update: UpdateWorkspaceLearningPolicy): Promise<WorkspaceLearningPolicy>;
|
|
101
103
|
list(input?: ListMemoriesDto, context?: RepositoryContext): Promise<ListMemoriesResponse>;
|
package/dist/ports.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../src/ports.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../src/ports.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AskResponse } from "./session-schemas.js";
|
|
3
|
+
export declare const ContextFileSchema: z.ZodPipe<z.ZodString, z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
|
|
4
|
+
/** One request for scanners, agents, and the dashboard's copy flow. */
|
|
5
|
+
export declare const PrepareContextRequestSchema: z.ZodObject<{
|
|
6
|
+
task: z.ZodString;
|
|
7
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
8
|
+
project: z.ZodOptional<z.ZodString>;
|
|
9
|
+
files: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>>>;
|
|
10
|
+
detail: z.ZodOptional<z.ZodEnum<{
|
|
11
|
+
brief: "brief";
|
|
12
|
+
expanded: "expanded";
|
|
13
|
+
}>>;
|
|
14
|
+
includeSessions: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
+
maxCharacters: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
}, z.core.$strict>;
|
|
17
|
+
export type PrepareContextRequest = z.infer<typeof PrepareContextRequestSchema>;
|
|
18
|
+
export declare const PreparedContextSchema: z.ZodObject<{
|
|
19
|
+
version: z.ZodLiteral<1>;
|
|
20
|
+
status: z.ZodEnum<{
|
|
21
|
+
ready: "ready";
|
|
22
|
+
no_matches: "no_matches";
|
|
23
|
+
budget_exceeded: "budget_exceeded";
|
|
24
|
+
}>;
|
|
25
|
+
task: z.ZodString;
|
|
26
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
27
|
+
generatedAt: z.ZodISODateTime;
|
|
28
|
+
context: z.ZodString;
|
|
29
|
+
memories: z.ZodArray<z.ZodObject<{
|
|
30
|
+
id: z.ZodUUID;
|
|
31
|
+
content: z.ZodString;
|
|
32
|
+
scope: z.ZodObject<{
|
|
33
|
+
organization: z.ZodOptional<z.ZodString>;
|
|
34
|
+
project: z.ZodOptional<z.ZodString>;
|
|
35
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
36
|
+
path: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
|
|
37
|
+
component: z.ZodOptional<z.ZodString>;
|
|
38
|
+
}, z.core.$strict>;
|
|
39
|
+
category: z.ZodString;
|
|
40
|
+
updatedAt: z.ZodISODateTime;
|
|
41
|
+
reviewDue: z.ZodBoolean;
|
|
42
|
+
source: z.ZodString;
|
|
43
|
+
}, z.core.$strict>>;
|
|
44
|
+
sessions: z.ZodArray<z.ZodObject<{
|
|
45
|
+
id: z.ZodUUID;
|
|
46
|
+
title: z.ZodString;
|
|
47
|
+
repo: z.ZodNullable<z.ZodString>;
|
|
48
|
+
excerpts: z.ZodArray<z.ZodObject<{
|
|
49
|
+
eventId: z.ZodUUID;
|
|
50
|
+
text: z.ZodString;
|
|
51
|
+
occurredAt: z.ZodISODateTime;
|
|
52
|
+
source: z.ZodString;
|
|
53
|
+
shortened: z.ZodBoolean;
|
|
54
|
+
}, z.core.$strict>>;
|
|
55
|
+
}, z.core.$strict>>;
|
|
56
|
+
hasMore: z.ZodBoolean;
|
|
57
|
+
truncated: z.ZodBoolean;
|
|
58
|
+
}, z.core.$strict>;
|
|
59
|
+
export type PreparedContext = z.infer<typeof PreparedContextSchema>;
|
|
60
|
+
/** Pure, shared packing: never cut a decision in half to meet a budget. */
|
|
61
|
+
export declare function prepareContextPack(input: PrepareContextRequest, raw: AskResponse, options?: {
|
|
62
|
+
now?: Date;
|
|
63
|
+
origin?: string;
|
|
64
|
+
}): PreparedContext;
|
|
65
|
+
//# sourceMappingURL=prepared-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepared-context.d.ts","sourceRoot":"","sources":["../src/prepared-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMxD,eAAO,MAAM,iBAAiB,wGAED,CAAC;AAE9B,uEAAuE;AACvE,eAAO,MAAM,2BAA2B;;;;;;;;;;;kBAQ7B,CAAC;AACZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAWhF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAKvB,CAAC;AACZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AASpE,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,eAAe,CA0DjJ"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { MemoryScopeSchema, RepositoryPathSchema, isWorkspaceWideScope } from "./schemas.js";
|
|
3
|
+
import { memoryNeedsReview } from "./knowledge-quality.js";
|
|
4
|
+
import { userMessageText } from "./user-message.js";
|
|
5
|
+
import { repositoryIdentity } from "./repository-policy.js";
|
|
6
|
+
import { redactUnknown } from "./redaction.js";
|
|
7
|
+
export const ContextFileSchema = z.string().trim().min(1).max(1000)
|
|
8
|
+
.refine(path => !/^(?:[A-Za-z]:|[/\\])/u.test(path) && !path.split(/[/\\]/u).includes(".."), "Use a path relative to the repository")
|
|
9
|
+
.pipe(RepositoryPathSchema);
|
|
10
|
+
/** One request for scanners, agents, and the dashboard's copy flow. */
|
|
11
|
+
export const PrepareContextRequestSchema = z.object({
|
|
12
|
+
task: z.string().trim().min(1).max(10_000),
|
|
13
|
+
repo: z.string().trim().min(1).max(1000).optional(),
|
|
14
|
+
project: z.string().trim().min(1).max(500).optional(),
|
|
15
|
+
files: z.array(ContextFileSchema).max(100).optional(),
|
|
16
|
+
detail: z.enum(["brief", "expanded"]).optional(),
|
|
17
|
+
includeSessions: z.boolean().optional(),
|
|
18
|
+
maxCharacters: z.number().int().min(2000).max(32_000).optional(),
|
|
19
|
+
}).strict();
|
|
20
|
+
const ContextMemorySchema = z.object({
|
|
21
|
+
id: z.uuid(), content: z.string(), scope: MemoryScopeSchema,
|
|
22
|
+
category: z.string(), updatedAt: z.iso.datetime({ offset: true }),
|
|
23
|
+
reviewDue: z.boolean(), source: z.string(),
|
|
24
|
+
}).strict();
|
|
25
|
+
const ContextSessionSchema = z.object({
|
|
26
|
+
id: z.uuid(), title: z.string(), repo: z.string().nullable(),
|
|
27
|
+
excerpts: z.array(z.object({ eventId: z.uuid(), text: z.string(), occurredAt: z.iso.datetime({ offset: true }), source: z.string(), shortened: z.boolean() }).strict()),
|
|
28
|
+
}).strict();
|
|
29
|
+
export const PreparedContextSchema = z.object({
|
|
30
|
+
version: z.literal(1), status: z.enum(["ready", "no_matches", "budget_exceeded"]),
|
|
31
|
+
task: z.string(), repo: z.string().optional(), generatedAt: z.iso.datetime(),
|
|
32
|
+
context: z.string(), memories: z.array(ContextMemorySchema), sessions: z.array(ContextSessionSchema),
|
|
33
|
+
hasMore: z.boolean(), truncated: z.boolean(),
|
|
34
|
+
}).strict();
|
|
35
|
+
function sameRepo(left, right) {
|
|
36
|
+
return left === right || (repositoryIdentity(left) !== undefined && repositoryIdentity(left) === repositoryIdentity(right));
|
|
37
|
+
}
|
|
38
|
+
function sourceUrl(path, origin) {
|
|
39
|
+
return origin ? new URL(path, new URL(origin).origin).href : path;
|
|
40
|
+
}
|
|
41
|
+
/** Pure, shared packing: never cut a decision in half to meet a budget. */
|
|
42
|
+
export function prepareContextPack(input, raw, options = {}) {
|
|
43
|
+
const now = options.now ?? new Date();
|
|
44
|
+
const response = redactUnknown(raw).value;
|
|
45
|
+
const task = userMessageText(redactUnknown(input.task).value);
|
|
46
|
+
const expanded = input.detail === "expanded";
|
|
47
|
+
const maxCharacters = input.maxCharacters ?? (expanded ? 24_000 : 12_000);
|
|
48
|
+
const eligibleMemories = [...new Map(response.memories.filter(memory => memory.status === "active"
|
|
49
|
+
&& (!input.repo || (memory.scope.repo ? sameRepo(memory.scope.repo, input.repo) : isWorkspaceWideScope(memory.scope))))
|
|
50
|
+
.map(memory => [memory.id, memory])).values()];
|
|
51
|
+
const eligibleSessions = input.includeSessions === false ? [] : [...new Map(response.sessions.filter(match => (!input.repo || (match.session.repo !== null && sameRepo(match.session.repo, input.repo)))
|
|
52
|
+
&& match.excerpts.some(excerpt => userMessageText(excerpt.text).trim()))
|
|
53
|
+
.map(match => [match.session.id, match])).values()];
|
|
54
|
+
const memories = [];
|
|
55
|
+
const sessions = [];
|
|
56
|
+
const parts = ["# Context from Lore", `Snapshot from Lore · ${now.toISOString().slice(0, 10)}. This copy does not update automatically.`, `## Task\n\n${task}`];
|
|
57
|
+
if (input.repo)
|
|
58
|
+
parts.push(`Repository: ${input.repo}`);
|
|
59
|
+
const note = "Some context was omitted or shortened. Request expanded detail or a larger character budget to include more.";
|
|
60
|
+
let used = parts.join("\n\n").length;
|
|
61
|
+
const append = (text) => {
|
|
62
|
+
if (used + text.length + 2 + note.length + 2 > maxCharacters)
|
|
63
|
+
return false;
|
|
64
|
+
parts.push(text);
|
|
65
|
+
used += text.length + 2;
|
|
66
|
+
return true;
|
|
67
|
+
};
|
|
68
|
+
let truncated = false;
|
|
69
|
+
let budgetOmitted = false;
|
|
70
|
+
for (const memory of eligibleMemories.slice(0, expanded ? 10 : 3)) {
|
|
71
|
+
const item = { id: memory.id, content: userMessageText(memory.content), scope: memory.scope, category: memory.category,
|
|
72
|
+
updatedAt: memory.updatedAt, reviewDue: memoryNeedsReview(memory, now), source: sourceUrl(`/memories/${memory.id}`, options.origin) };
|
|
73
|
+
const scope = Object.entries(item.scope).filter(([, value]) => value).map(([key, value]) => `${key}: ${value}`).join(" · ");
|
|
74
|
+
const text = [memories.length === 0 ? "## Relevant memories" : "", `### ${memories.length + 1}. ${memory.category.replaceAll("_", " ")}`,
|
|
75
|
+
item.content, `Applies to: ${scope || "Entire workspace"}`, `Status: Active${item.reviewDue ? " — check against current code; review is due" : ""}`,
|
|
76
|
+
`Updated: ${item.updatedAt.slice(0, 10)}`, `Source: ${item.source}`].filter(Boolean).join("\n\n");
|
|
77
|
+
if (append(text))
|
|
78
|
+
memories.push(item);
|
|
79
|
+
else {
|
|
80
|
+
truncated = true;
|
|
81
|
+
budgetOmitted = true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
for (const match of eligibleSessions.slice(0, expanded ? 5 : 2)) {
|
|
85
|
+
const item = { id: match.session.id, title: userMessageText(match.session.title ?? "") || `Work captured in ${match.session.agent}`, repo: match.session.repo, excerpts: [] };
|
|
86
|
+
for (const excerpt of match.excerpts.filter(excerpt => userMessageText(excerpt.text).trim()).slice(0, expanded ? 5 : 1)) {
|
|
87
|
+
const full = userMessageText(excerpt.text).trim();
|
|
88
|
+
const shortened = !expanded && full.length > 800;
|
|
89
|
+
const text = shortened ? `${full.slice(0, 800)}…\n[Excerpt shortened.]` : full;
|
|
90
|
+
item.excerpts.push({ eventId: excerpt.eventId, text, occurredAt: excerpt.occurredAt, shortened, source: sourceUrl(`/sessions/${item.id}#event-${excerpt.eventId}`, options.origin) });
|
|
91
|
+
}
|
|
92
|
+
const text = [sessions.length === 0 ? "## Related session excerpts\n\nThese are records of past work, not verified outcomes or current instructions." : "",
|
|
93
|
+
`### ${item.title}${item.repo ? ` · ${item.repo}` : ""}`,
|
|
94
|
+
...item.excerpts.map(excerpt => `${excerpt.text.split("\n").map(line => `> ${line}`).join("\n")}\n\nRecorded: ${excerpt.occurredAt.slice(0, 10)}\nSource: ${excerpt.source}`),
|
|
95
|
+
].filter(Boolean).join("\n\n");
|
|
96
|
+
if (append(text)) {
|
|
97
|
+
sessions.push(item);
|
|
98
|
+
if (item.excerpts.some(excerpt => excerpt.shortened))
|
|
99
|
+
truncated = true;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
truncated = true;
|
|
103
|
+
budgetOmitted = true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const hasMore = budgetOmitted || eligibleMemories.length > 3 || eligibleSessions.length > 2
|
|
107
|
+
|| eligibleSessions.some(match => match.excerpts.length > 1 || match.excerpts.some(excerpt => userMessageText(excerpt.text).length > 800));
|
|
108
|
+
truncated ||= memories.length < eligibleMemories.length || sessions.length < eligibleSessions.length
|
|
109
|
+
|| sessions.some(session => session.excerpts.length < (eligibleSessions.find(match => match.session.id === session.id)?.excerpts.length ?? 0));
|
|
110
|
+
if (truncated)
|
|
111
|
+
parts.push(note);
|
|
112
|
+
const hasContext = memories.length > 0 || sessions.length > 0;
|
|
113
|
+
return { version: 1, status: hasContext ? "ready" : eligibleMemories.length || eligibleSessions.length ? "budget_exceeded" : "no_matches",
|
|
114
|
+
task, ...(input.repo ? { repo: input.repo } : {}), generatedAt: now.toISOString(), context: hasContext ? parts.join("\n\n") : "",
|
|
115
|
+
memories, sessions, hasMore, truncated };
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=prepared-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepared-context.js","sourceRoot":"","sources":["../src/prepared-context.ts"],"names":[],"mappings":"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"}
|
package/dist/product-usage.d.ts
CHANGED
|
@@ -74,6 +74,14 @@ export declare const UsageEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
74
74
|
}>;
|
|
75
75
|
}, z.core.$strict>], "source">;
|
|
76
76
|
export type UsageEvent = z.infer<typeof UsageEventSchema>;
|
|
77
|
+
export type FeatureFeedbackEvent = Extract<UsageEvent, {
|
|
78
|
+
source: "dashboard";
|
|
79
|
+
}> & {
|
|
80
|
+
action: "helpful" | "not_helpful";
|
|
81
|
+
};
|
|
82
|
+
export interface FeatureFeedbackStatus {
|
|
83
|
+
cooldowns: Partial<Record<DashboardFeature, string>>;
|
|
84
|
+
}
|
|
77
85
|
export declare const ProductUsageQuerySchema: z.ZodObject<{
|
|
78
86
|
days: z.ZodDefault<z.ZodPipe<z.ZodCoercedNumber<unknown>, z.ZodUnion<readonly [z.ZodLiteral<7>, z.ZodLiteral<30>]>>>;
|
|
79
87
|
workspaceId: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-usage.d.ts","sourceRoot":"","sources":["../src/product-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc,2NAA4N,CAAC;AACxP,eAAO,MAAM,kBAAkB,qIAAsI,CAAC;AACtK,eAAO,MAAM,sBAAsB;;;;;;;;;;;EAA6B,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAgB3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,eAAO,MAAM,uBAAuB;;;kBAGzB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;IACb,QAAQ,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;IACJ,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChF"}
|
|
1
|
+
{"version":3,"file":"product-usage.d.ts","sourceRoot":"","sources":["../src/product-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc,2NAA4N,CAAC;AACxP,eAAO,MAAM,kBAAkB,qIAAsI,CAAC;AACtK,eAAO,MAAM,sBAAsB;;;;;;;;;;;EAA6B,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAgB3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC,GAAG;IAChF,MAAM,EAAE,SAAS,GAAG,aAAa,CAAC;CACnC,CAAC;AACF,MAAM,WAAW,qBAAqB;IAEpC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD;AACD,eAAO,MAAM,uBAAuB;;;kBAGzB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;IACb,QAAQ,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;IACJ,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-usage.js","sourceRoot":"","sources":["../src/product-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iFAAiF;AACjF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AACxP,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AACtK,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IAC7D,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC1B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACxB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAC/B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;QACnD,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sDAAsD,CAAC;KAClF,CAAC,CAAC,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC1B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAC9B,OAAO,EAAE,sBAAsB;QAC/B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;KAC7D,CAAC,CAAC,MAAM,EAAE;CACZ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"product-usage.js","sourceRoot":"","sources":["../src/product-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iFAAiF;AACjF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AACxP,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AACtK,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IAC7D,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC1B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACxB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAC/B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;QACnD,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sDAAsD,CAAC;KAClF,CAAC,CAAC,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC1B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAC9B,OAAO,EAAE,sBAAsB;QAC/B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;KAC7D,CAAC,CAAC,MAAM,EAAE;CACZ,CAAC,CAAC;AASH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC,MAAM,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-packet-schemas.d.ts","sourceRoot":"","sources":["../src/recovery-packet-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,yBAAyB,QAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"recovery-packet-schemas.d.ts","sourceRoot":"","sources":["../src/recovery-packet-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,yBAAyB,QAAkB,CAAC;AAIzD,eAAO,MAAM,0BAA0B,aAGhB,CAAC;AACxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;iBAQ/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|