@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.
Files changed (54) hide show
  1. package/dist/auth-schemas.d.ts +36 -0
  2. package/dist/auth-schemas.d.ts.map +1 -1
  3. package/dist/auth-schemas.js +9 -0
  4. package/dist/auth-schemas.js.map +1 -1
  5. package/dist/cloud-recovery-schemas.d.ts +6 -0
  6. package/dist/cloud-recovery-schemas.d.ts.map +1 -1
  7. package/dist/cloud-recovery-schemas.js +2 -0
  8. package/dist/cloud-recovery-schemas.js.map +1 -1
  9. package/dist/engine.d.ts +1 -0
  10. package/dist/engine.d.ts.map +1 -1
  11. package/dist/engine.js +9 -0
  12. package/dist/engine.js.map +1 -1
  13. package/dist/guard-evaluation.d.ts.map +1 -1
  14. package/dist/guard-evaluation.js +35 -2
  15. package/dist/guard-evaluation.js.map +1 -1
  16. package/dist/in-memory-repository.d.ts +8 -0
  17. package/dist/in-memory-repository.d.ts.map +1 -1
  18. package/dist/in-memory-repository.js +10 -0
  19. package/dist/in-memory-repository.js.map +1 -1
  20. package/dist/index.d.ts +2 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/local-scope.d.ts +47 -0
  25. package/dist/local-scope.d.ts.map +1 -0
  26. package/dist/local-scope.js +275 -0
  27. package/dist/local-scope.js.map +1 -0
  28. package/dist/ports.d.ts +2 -0
  29. package/dist/ports.d.ts.map +1 -1
  30. package/dist/prepared-context.d.ts +65 -0
  31. package/dist/prepared-context.d.ts.map +1 -0
  32. package/dist/prepared-context.js +117 -0
  33. package/dist/prepared-context.js.map +1 -0
  34. package/dist/product-usage.d.ts +8 -0
  35. package/dist/product-usage.d.ts.map +1 -1
  36. package/dist/product-usage.js.map +1 -1
  37. package/dist/recovery-packet-schemas.d.ts +1 -0
  38. package/dist/recovery-packet-schemas.d.ts.map +1 -1
  39. package/dist/recovery-packet-schemas.js +8 -4
  40. package/dist/recovery-packet-schemas.js.map +1 -1
  41. package/dist/repository-location.d.ts +5 -0
  42. package/dist/repository-location.d.ts.map +1 -0
  43. package/dist/repository-location.js +91 -0
  44. package/dist/repository-location.js.map +1 -0
  45. package/dist/repository-policy.d.ts +29 -0
  46. package/dist/repository-policy.d.ts.map +1 -0
  47. package/dist/repository-policy.js +49 -0
  48. package/dist/repository-policy.js.map +1 -0
  49. package/dist/search-schemas.d.ts +1 -1
  50. package/dist/session-schemas.d.ts +1 -0
  51. package/dist/session-schemas.d.ts.map +1 -1
  52. package/dist/session-schemas.js +2 -1
  53. package/dist/session-schemas.js.map +1 -1
  54. 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>;
@@ -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":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,MAAM,EACN,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,6BAA6B,EAC7B,uBAAuB,EACxB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,2BAA2B,QAAmB,CAAC;AAC5D,eAAO,MAAM,sCAAsC,QAAc,CAAC;AAClE,eAAO,MAAM,qCAAqC,QAAa,CAAC;AAChE,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,aAAa,GACb,UAAU,GACV,oBAAoB,GACpB,oBAAoB,GACpB,eAAe,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAoCD,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;gBAGjC,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ;CA6BT;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,WAAW,CAAC;CAC7B;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,gBAAgB,EAAE,MAAM,GACvB,kBAAkB,CAgCpB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,aAAa,CAOlE;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAuCT;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,GAAG,SAAa,GACf,MAAM,GAAG,IAAI,CAaf;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GACzB,aAAa,CAuBf;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAqDlB;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC;CAC7C;AAED,qBAAa,4BAA6B,SAAQ,KAAK;;CAKtD;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;CACvD;AAED,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB,EAAE,mBAAmB;IACxF,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CACJ,KAAK,EAAE,4BAA4B,EACnC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,KAAK,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/B,OAAO,CACL,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,CAAC,EAAE,SAAS,cAAc,EAAE,EACrC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrE,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClC,mBAAmB,CACjB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACvC,cAAc,CACZ,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnC,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,CAAC;IACrG,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,wBAAwB,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,CAAC;IACnK,0BAA0B,CACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACpC,6BAA6B,CAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACpC,IAAI,CACF,KAAK,CAAC,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1B,UAAU,CACR,EAAE,EAAE,MAAM,EACV,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1B,yBAAyB,CACvB,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrB,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CACL,WAAW,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CAC/B;AACD,MAAM,WAAW,iBAAkB,SAAQ,eAAe;CAAG;AAE7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CACN,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3B,uBAAuB,CAAC,CACtB,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChC;AACD,MAAM,WAAW,iBAAkB,SAAQ,eAAe;CAAG;AAE7D,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,sBAAsB,CAAC;CAC1D;AAED,MAAM,WAAW,YAAY,CAC3B,YAAY,GAAG,OAAO,EACtB,KAAK,GAAG,OAAO,EACf,aAAa,GAAG,OAAO;IAEvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACvD,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,aAAa,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,WAAW,CAAC,CACV,KAAK,EAAE,KAAK,GACX,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1C,aAAa,CAAC,CACZ,KAAK,EAAE,YAAY,GAClB,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CACvD;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB,CACrC,iBAAiB,GAAG,OAAO,EAC3B,UAAU,GAAG,OAAO;IAEpB,oBAAoB,CAClB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACxC,mBAAmB,CACjB,KAAK,EAAE,UAAU,EACjB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB,CAAC,WAAW,GAAG,OAAO;IACzD,kBAAkB,CAChB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACxC"}
@@ -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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"}
@@ -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;AAEH,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
+ {"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,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  export declare const MAX_RECOVERY_PACKET_BYTES: number;
3
+ export declare const RecoveryRelativePathSchema: z.ZodString;
3
4
  export declare const RecoveryPacketSchema: z.ZodObject<{
4
5
  version: z.ZodLiteral<1>;
5
6
  id: z.ZodUUID;
@@ -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;AAEzD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;iBAQ/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,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"}