@lore-co/cli 0.2.26 → 0.2.27

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 (213) hide show
  1. package/README.md +62 -16
  2. package/dist/agents.d.ts +9 -0
  3. package/dist/agents.d.ts.map +1 -1
  4. package/dist/agents.js +19 -6
  5. package/dist/agents.js.map +1 -1
  6. package/dist/api.d.ts +2 -1
  7. package/dist/api.d.ts.map +1 -1
  8. package/dist/api.js +15 -2
  9. package/dist/api.js.map +1 -1
  10. package/dist/approach-guidance.d.ts +8 -1
  11. package/dist/approach-guidance.d.ts.map +1 -1
  12. package/dist/approach-guidance.js +13 -3
  13. package/dist/approach-guidance.js.map +1 -1
  14. package/dist/approach.d.ts.map +1 -1
  15. package/dist/approach.js +2 -2
  16. package/dist/approach.js.map +1 -1
  17. package/dist/ask.d.ts.map +1 -1
  18. package/dist/ask.js +2 -2
  19. package/dist/ask.js.map +1 -1
  20. package/dist/capture-scope.d.ts.map +1 -1
  21. package/dist/capture-scope.js +2 -1
  22. package/dist/capture-scope.js.map +1 -1
  23. package/dist/chat.d.ts.map +1 -1
  24. package/dist/chat.js +2 -2
  25. package/dist/chat.js.map +1 -1
  26. package/dist/cli.d.ts +60 -2
  27. package/dist/cli.d.ts.map +1 -1
  28. package/dist/cli.js +512 -93
  29. package/dist/cli.js.map +1 -1
  30. package/dist/codex-hook-approval.d.ts.map +1 -1
  31. package/dist/codex-hook-approval.js +9 -2
  32. package/dist/codex-hook-approval.js.map +1 -1
  33. package/dist/command-help.d.ts.map +1 -1
  34. package/dist/command-help.js +7 -3
  35. package/dist/command-help.js.map +1 -1
  36. package/dist/config-command.js +2 -2
  37. package/dist/config-command.js.map +1 -1
  38. package/dist/connect-project.d.ts.map +1 -1
  39. package/dist/connect-project.js +2 -1
  40. package/dist/connect-project.js.map +1 -1
  41. package/dist/console-keys.d.ts +11 -0
  42. package/dist/console-keys.d.ts.map +1 -0
  43. package/dist/console-keys.js +24 -0
  44. package/dist/console-keys.js.map +1 -0
  45. package/dist/cursor-mcp.d.ts.map +1 -1
  46. package/dist/cursor-mcp.js +4 -0
  47. package/dist/cursor-mcp.js.map +1 -1
  48. package/dist/demo-process.js +3 -3
  49. package/dist/demo-process.js.map +1 -1
  50. package/dist/devin-capture.d.ts.map +1 -1
  51. package/dist/devin-capture.js +2 -2
  52. package/dist/devin-capture.js.map +1 -1
  53. package/dist/devin-cli.d.ts.map +1 -1
  54. package/dist/devin-cli.js +23 -13
  55. package/dist/devin-cli.js.map +1 -1
  56. package/dist/devin-client.d.ts +3 -0
  57. package/dist/devin-client.d.ts.map +1 -1
  58. package/dist/devin-client.js +5 -0
  59. package/dist/devin-client.js.map +1 -1
  60. package/dist/devin.d.ts.map +1 -1
  61. package/dist/devin.js +29 -9
  62. package/dist/devin.js.map +1 -1
  63. package/dist/generated-assets.d.ts +8 -8
  64. package/dist/generated-assets.d.ts.map +1 -1
  65. package/dist/generated-assets.js +8 -8
  66. package/dist/generated-assets.js.map +1 -1
  67. package/dist/github.d.ts.map +1 -1
  68. package/dist/github.js +38 -7
  69. package/dist/github.js.map +1 -1
  70. package/dist/guard.d.ts +1 -1
  71. package/dist/guard.d.ts.map +1 -1
  72. package/dist/guard.js +42 -14
  73. package/dist/guard.js.map +1 -1
  74. package/dist/handoff.js +2 -2
  75. package/dist/handoff.js.map +1 -1
  76. package/dist/host.js +4 -4
  77. package/dist/host.js.map +1 -1
  78. package/dist/image-capture.d.ts.map +1 -1
  79. package/dist/image-capture.js +5 -4
  80. package/dist/image-capture.js.map +1 -1
  81. package/dist/learnings.d.ts.map +1 -1
  82. package/dist/learnings.js +3 -3
  83. package/dist/learnings.js.map +1 -1
  84. package/dist/live.d.ts +7 -0
  85. package/dist/live.d.ts.map +1 -1
  86. package/dist/live.js +11 -6
  87. package/dist/live.js.map +1 -1
  88. package/dist/lore-agent.d.ts +6 -1
  89. package/dist/lore-agent.d.ts.map +1 -1
  90. package/dist/lore-agent.js +26 -7
  91. package/dist/lore-agent.js.map +1 -1
  92. package/dist/mcp-config.d.ts +7 -0
  93. package/dist/mcp-config.d.ts.map +1 -1
  94. package/dist/mcp-config.js +19 -3
  95. package/dist/mcp-config.js.map +1 -1
  96. package/dist/npm-installation.js +2 -2
  97. package/dist/npm-installation.js.map +1 -1
  98. package/dist/owned-files.d.ts +14 -4
  99. package/dist/owned-files.d.ts.map +1 -1
  100. package/dist/owned-files.js +24 -9
  101. package/dist/owned-files.js.map +1 -1
  102. package/dist/platform.d.ts +26 -3
  103. package/dist/platform.d.ts.map +1 -1
  104. package/dist/platform.js +87 -20
  105. package/dist/platform.js.map +1 -1
  106. package/dist/pty.d.ts +2 -1
  107. package/dist/pty.d.ts.map +1 -1
  108. package/dist/pty.js +20 -7
  109. package/dist/pty.js.map +1 -1
  110. package/dist/recovery-cloud-receipt.d.ts.map +1 -1
  111. package/dist/recovery-cloud-receipt.js +2 -1
  112. package/dist/recovery-cloud-receipt.js.map +1 -1
  113. package/dist/recovery-cloud-workspace.d.ts.map +1 -1
  114. package/dist/recovery-cloud-workspace.js +2 -1
  115. package/dist/recovery-cloud-workspace.js.map +1 -1
  116. package/dist/recovery-cloud.d.ts.map +1 -1
  117. package/dist/recovery-cloud.js +8 -9
  118. package/dist/recovery-cloud.js.map +1 -1
  119. package/dist/recovery-copilot.d.ts.map +1 -1
  120. package/dist/recovery-copilot.js +3 -2
  121. package/dist/recovery-copilot.js.map +1 -1
  122. package/dist/recovery-desktop.d.ts.map +1 -1
  123. package/dist/recovery-desktop.js +3 -2
  124. package/dist/recovery-desktop.js.map +1 -1
  125. package/dist/recovery-hooks.js +2 -2
  126. package/dist/recovery-hooks.js.map +1 -1
  127. package/dist/recovery-hosts.d.ts.map +1 -1
  128. package/dist/recovery-hosts.js +53 -6
  129. package/dist/recovery-hosts.js.map +1 -1
  130. package/dist/recovery-polytoken.d.ts +2 -2
  131. package/dist/recovery-polytoken.d.ts.map +1 -1
  132. package/dist/recovery-polytoken.js +13 -8
  133. package/dist/recovery-polytoken.js.map +1 -1
  134. package/dist/recovery-remote.js +3 -3
  135. package/dist/recovery-remote.js.map +1 -1
  136. package/dist/recovery-state.d.ts +22 -1
  137. package/dist/recovery-state.d.ts.map +1 -1
  138. package/dist/recovery-state.js +167 -31
  139. package/dist/recovery-state.js.map +1 -1
  140. package/dist/recovery-transfer.d.ts.map +1 -1
  141. package/dist/recovery-transfer.js +8 -4
  142. package/dist/recovery-transfer.js.map +1 -1
  143. package/dist/recovery.d.ts.map +1 -1
  144. package/dist/recovery.js +30 -11
  145. package/dist/recovery.js.map +1 -1
  146. package/dist/reliability-store.d.ts +13 -0
  147. package/dist/reliability-store.d.ts.map +1 -1
  148. package/dist/reliability-store.js +110 -8
  149. package/dist/reliability-store.js.map +1 -1
  150. package/dist/remember.d.ts.map +1 -1
  151. package/dist/remember.js +2 -2
  152. package/dist/remember.js.map +1 -1
  153. package/dist/retained-context.d.ts.map +1 -1
  154. package/dist/retained-context.js +3 -2
  155. package/dist/retained-context.js.map +1 -1
  156. package/dist/retrieval-task.d.ts +30 -0
  157. package/dist/retrieval-task.d.ts.map +1 -1
  158. package/dist/retrieval-task.js +98 -2
  159. package/dist/retrieval-task.js.map +1 -1
  160. package/dist/review.d.ts +1 -1
  161. package/dist/review.d.ts.map +1 -1
  162. package/dist/review.js +5 -2
  163. package/dist/review.js.map +1 -1
  164. package/dist/runtime.d.ts +4 -1
  165. package/dist/runtime.d.ts.map +1 -1
  166. package/dist/runtime.js +138 -91
  167. package/dist/runtime.js.map +1 -1
  168. package/dist/self-host.d.ts +1 -1
  169. package/dist/self-host.d.ts.map +1 -1
  170. package/dist/self-host.js +105 -23
  171. package/dist/self-host.js.map +1 -1
  172. package/dist/share.d.ts.map +1 -1
  173. package/dist/share.js +2 -1
  174. package/dist/share.js.map +1 -1
  175. package/dist/signed-snapshot.d.ts +7 -0
  176. package/dist/signed-snapshot.d.ts.map +1 -1
  177. package/dist/signed-snapshot.js +27 -0
  178. package/dist/signed-snapshot.js.map +1 -1
  179. package/dist/skill-command.d.ts +5 -2
  180. package/dist/skill-command.d.ts.map +1 -1
  181. package/dist/skill-command.js +73 -10
  182. package/dist/skill-command.js.map +1 -1
  183. package/dist/skill-guidance.js +1 -1
  184. package/dist/skill-guidance.js.map +1 -1
  185. package/dist/skills.d.ts.map +1 -1
  186. package/dist/skills.js +9 -7
  187. package/dist/skills.js.map +1 -1
  188. package/dist/status-health.d.ts +26 -0
  189. package/dist/status-health.d.ts.map +1 -0
  190. package/dist/status-health.js +49 -0
  191. package/dist/status-health.js.map +1 -0
  192. package/dist/telemetry.d.ts.map +1 -1
  193. package/dist/telemetry.js +2 -2
  194. package/dist/telemetry.js.map +1 -1
  195. package/dist/terminal-output.d.ts +76 -0
  196. package/dist/terminal-output.d.ts.map +1 -0
  197. package/dist/terminal-output.js +151 -0
  198. package/dist/terminal-output.js.map +1 -0
  199. package/dist/uninstall.d.ts.map +1 -1
  200. package/dist/uninstall.js +3 -1
  201. package/dist/uninstall.js.map +1 -1
  202. package/dist/update.d.ts +3 -0
  203. package/dist/update.d.ts.map +1 -1
  204. package/dist/update.js +40 -14
  205. package/dist/update.js.map +1 -1
  206. package/dist/windows-permissions.d.ts +6 -0
  207. package/dist/windows-permissions.d.ts.map +1 -1
  208. package/dist/windows-permissions.js +22 -2
  209. package/dist/windows-permissions.js.map +1 -1
  210. package/dist/windows-pty.d.ts.map +1 -1
  211. package/dist/windows-pty.js +4 -3
  212. package/dist/windows-pty.js.map +1 -1
  213. package/package.json +4 -4
@@ -1,17 +1,20 @@
1
1
  import { constants } from "node:fs";
2
- import { lstat, open, readdir, realpath } from "node:fs/promises";
2
+ import { lstat, readdir, realpath } from "node:fs/promises";
3
3
  import { homedir } from "node:os";
4
- import { basename, isAbsolute, relative, resolve, sep } from "node:path";
5
- import { LoreClient, MAX_SKILL_BYTES, parseSkillMarkdown } from "@lore-co/sdk";
4
+ import { basename, dirname, isAbsolute, relative, resolve, sep } from "node:path";
5
+ import { LoreClient, MAX_SKILL_BYTES, parseSkillMarkdown, readSkillFolder, selectSkillFolder, skippedSkillPath, } from "@lore-co/sdk";
6
6
  import { repositoryScopeFromDirectory } from "@lore-co/core/repository-location";
7
+ import { writeSkillFolder } from "@lore-co/core/skill-folder";
8
+ import { openNoFollow } from "@lore-co/core/no-follow";
7
9
  export const SKILL_HELP = `lore skill — find, review, and share agent skills
8
10
 
9
11
  Usage:
10
12
  lore skill list [--repo owner/repository] [--offset 0]
11
13
  lore skill show <name> [--repo owner/repository]
14
+ lore skill files <name> [--repo owner/repository]
12
15
  lore skill discover [--folder path]
13
16
  lore skill import --file path/to/SKILL.md [--repo owner/repository]
14
- lore skill import --url https://github.com/owner/repo/blob/ref/path/SKILL.md [--repo owner/repository]
17
+ lore skill import --url https://github.com/owner/repo/tree/ref/path [--repo owner/repository]
15
18
  lore skill import --file path/to/SKILL.md --all-repositories
16
19
 
17
20
  List returns enabled skill descriptions. Read a matching skill before using it.
@@ -19,17 +22,23 @@ Check the current enabled state for each new task; do not reuse a disabled copy.
19
22
  Skills guide your work under the current user's request and normal permissions.
20
23
  They do not grant tools, install dependencies, or override higher-priority rules.
21
24
 
25
+ Files writes an enabled skill's reviewed folder (SKILL.md and its supporting
26
+ files) under ~/.lore/skill-files and prints that skill directory. Lore never runs
27
+ or marks these files executable; run scripts only with your normal permissions.
28
+
22
29
  Discover reads only SKILL.md files in the selected folder, without following
23
30
  symlinks or uploading anything. Review the selected file before importing.
24
- Import preserves SKILL.md and proposes it in Learnings → Skills. A workspace
25
- owner or admin reviews and enables it. Supporting files remain in the source repository.
31
+ Import proposes the skill in Learnings → Skills with the text files in its
32
+ folder (guides, schemas, scripts; up to 100 files and 2 MB), leaving out hidden
33
+ files, build output, and nested skills. A workspace owner or admin reviews and
34
+ enables it, and updates it from the Skills page when its source changes.
26
35
  All-repositories proposals need an owner or admin to enable them.
27
36
  No AI provider is required. Commands use the current folder's Lore connection.
28
37
  `;
29
38
  export async function readSkillFile(file) {
30
39
  if (basename(file) !== "SKILL.md")
31
40
  throw new Error("Choose a SKILL.md file.");
32
- const handle = await open(file, constants.O_RDONLY | constants.O_NOFOLLOW);
41
+ const handle = await openNoFollow(file, constants.O_RDONLY);
33
42
  try {
34
43
  const info = await handle.stat();
35
44
  if (!info.isFile() || info.size > MAX_SKILL_BYTES)
@@ -42,6 +51,41 @@ export async function readSkillFile(file) {
42
51
  await handle.close();
43
52
  }
44
53
  }
54
+ /** The text files beside a SKILL.md, read without following links. */
55
+ export async function readSkillFolderFiles(file) {
56
+ const root = dirname(file);
57
+ const entries = [];
58
+ async function walk(directory, depth) {
59
+ for (const entry of await readdir(directory, { withFileTypes: true })) {
60
+ const path = relative(root, resolve(directory, entry.name)).split(sep).join("/");
61
+ if (entry.isDirectory()) {
62
+ if (skippedSkillPath(path))
63
+ continue;
64
+ if (depth >= 8)
65
+ throw new Error("Keep the skill folder within 8 levels of folders.");
66
+ await walk(resolve(directory, entry.name), depth + 1);
67
+ }
68
+ else {
69
+ if (entries.length >= 1000)
70
+ throw new Error("Keep a skill to 100 supporting files.");
71
+ const info = entry.isFile() ? await lstat(resolve(directory, entry.name)) : null;
72
+ entries.push({ path, size: info?.size ?? 0, link: !info?.isFile() });
73
+ }
74
+ }
75
+ }
76
+ await walk(root, 0);
77
+ const files = [];
78
+ for (const path of selectSkillFolder(entries)) {
79
+ const handle = await openNoFollow(resolve(root, ...path.split("/")), constants.O_RDONLY);
80
+ try {
81
+ files.push({ path, bytes: await handle.readFile() });
82
+ }
83
+ finally {
84
+ await handle.close();
85
+ }
86
+ }
87
+ return readSkillFolder(files);
88
+ }
45
89
  /** Bounded local discovery. No network and no automatic import or activation. */
46
90
  export async function discoverSkills(folder) {
47
91
  const root = await realpath(folder);
@@ -125,7 +169,7 @@ export async function discoverSkills(folder) {
125
169
  await walk(root, 0);
126
170
  return { folder: root, skills, errors, limited };
127
171
  }
128
- export async function runSkillCommand(args, config) {
172
+ export async function runSkillCommand(args, config, loreDirectory = resolve(process.env.LORE_HOME ?? process.env.HOME ?? process.env.USERPROFILE ?? homedir(), ".lore")) {
129
173
  if (args.includes("--help") || args.includes("-h")) {
130
174
  process.stdout.write(SKILL_HELP);
131
175
  return;
@@ -141,7 +185,7 @@ export async function runSkillCommand(args, config) {
141
185
  values.set(key, "true");
142
186
  continue;
143
187
  }
144
- if (operation === "show" && i === 1 && !key.startsWith("--")) {
188
+ if ((operation === "show" || operation === "files") && i === 1 && !key.startsWith("--")) {
145
189
  name = key;
146
190
  continue;
147
191
  }
@@ -156,6 +200,7 @@ export async function runSkillCommand(args, config) {
156
200
  discover: ["--folder"],
157
201
  list: ["--repo", "--offset"],
158
202
  show: ["--repo"],
203
+ files: ["--repo"],
159
204
  import: ["--repo", "--file", "--url", "--all-repositories"],
160
205
  };
161
206
  if (!operation ||
@@ -193,22 +238,40 @@ export async function runSkillCommand(args, config) {
193
238
  throw new Error("Choose a skill name. Run lore skill list.");
194
239
  result = await client.getSkill(name, repo);
195
240
  }
241
+ else if (operation === "files") {
242
+ if (!name)
243
+ throw new Error("Choose a skill name. Run lore skill list.");
244
+ const bundle = await client.getSkillFiles(name, repo);
245
+ result = {
246
+ name: bundle.name,
247
+ version: bundle.version,
248
+ directory: await writeSkillFolder(loreDirectory, bundle),
249
+ files: bundle.files.map(({ path, bytes, script }) => ({ path, bytes, script })),
250
+ };
251
+ }
196
252
  else {
197
253
  const file = values.get("--file"), url = values.get("--url");
198
254
  if (Boolean(file) === Boolean(url))
199
255
  throw new Error("Choose one --file or --url.");
256
+ const files = url ? undefined : await readSkillFolderFiles(resolve(file));
200
257
  const prepared = await client.previewSkill(url
201
258
  ? { url }
202
259
  : {
203
260
  markdown: await readSkillFile(resolve(file)),
204
261
  source: { kind: "file", reference: "SKILL.md" },
262
+ ...(files?.length ? { files } : {}),
205
263
  });
206
- result = await client.importSkill({
264
+ const saved = await client.importSkill({
207
265
  repo,
208
266
  markdown: prepared.document.markdown,
209
267
  source: prepared.source,
210
268
  digest: prepared.digest,
269
+ ...(files?.length ? { files } : {}),
211
270
  });
271
+ result = {
272
+ ...saved,
273
+ files: (prepared.files ?? []).map(({ path, bytes, script }) => ({ path, bytes, script })),
274
+ };
212
275
  }
213
276
  process.stdout.write(JSON.stringify(result, null, 2) + "\n");
214
277
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skill-command.js","sourceRoot":"","sources":["../src/skill-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-command.js","sourceRoot":"","sources":["../src/skill-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EACL,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GAGjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BzB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,eAAe;YAC/C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,KAAK,UAAU,IAAI,CAAC,SAAiB,EAAE,KAAa;QAClD,KAAK,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjF,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,gBAAgB,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACrC,IAAI,KAAK,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACrF,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBACrF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACpB,MAAM,KAAK,GAA0C,EAAE,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzF,IAAI,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc;IACjD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;QACtB,MAAM;QACN,cAAc;QACd,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,MAAM;QACN,UAAU;KACX,CAAC,CAAC;IACH,MAAM,MAAM,GAKN,EAAE,CAAC;IACT,MAAM,MAAM,GAAwC,EAAE,CAAC;IACvD,IAAI,OAAO,GAAG,CAAC,EACb,SAAS,GAAG,CAAC,EACb,OAAO,GAAG,KAAK,CAAC;IAClB,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,CACL,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,CACtE,CAAC;IACJ,CAAC,CAAC;IACF,KAAK,UAAU,IAAI,CAAC,SAAiB,EAAE,KAAa;QAClD,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;YACjE,OAAO,GAAG,IAAI,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAAE,OAAO;YAC/C,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG;gBACrB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;oBAC/B,OAAO,EAAE,4BAA4B;iBACtC,CAAC,CAAC;YACL,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACzE,IAAI,KAAK,CAAC,cAAc,EAAE;gBAAE,SAAS;YACrC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAChD,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC;oBAC/C,OAAO,GAAG,IAAI,CAAC;oBACf,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAAE,SAAS;oBAC5C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,kBAAkB,CACrD,MAAM,aAAa,CAAC,IAAI,CAAC,CAC1B,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG;wBACrB,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;4BAC1B,OAAO,EAAE,6CAA6C;yBACvD,CAAC,CAAC;gBACP,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,IAAI,OAAO,IAAI,IAAI,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;oBACxC,OAAO,GAAG,IAAI,CAAC;oBACf,OAAO;gBACT,CAAC;gBACD,IAAI,KAAK,GAAG,CAAC;oBAAE,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;;oBACtC,OAAO,GAAG,IAAI,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAuB,EACvB,MAA8B,EAC9B,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,EAAE,EAAE,OAAO,CAAC;IAEnH,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,IAAI,IAAwB,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,IACE,GAAG,KAAK,oBAAoB;YAC5B,SAAS,KAAK,QAAQ;YACtB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAChB,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxF,IAAI,GAAG,GAAG,CAAC;YACX,SAAS;QACX,CAAC;QACD,IACE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YACpE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YACf,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAE7B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,OAAO,GAA6B;QACxC,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC5B,IAAI,EAAE,CAAC,QAAQ,CAAC;QAChB,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,CAAC;KAC5D,CAAC;IACF,IACE,CAAC,SAAS;QACV,CAAC,OAAO,CAAC,SAAS,CAAC;QACnB,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEpE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CACZ,MAAM,cAAc,CAClB,OAAO,CACL,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;YACrB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC,MAAM,CACX,CACF,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CACT,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,CAAC,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC3C,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACpB,CAAC,MAAM,4BAA4B,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE;KACrD,CAAC,CAAC;IACH,IAAI,MAAe,CAAC;IACpB,IAAI,SAAS,KAAK,MAAM;QACtB,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;YAC/B,IAAI,EAAE,IAAK;YACX,WAAW,EAAE,MAAM;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC5C,CAAC,CAAC;SACA,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACxE,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAK,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,IAAK,CAAC,CAAC;QACvD,MAAM,GAAG;YACP,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC;YACxD,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SAChF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAC/B,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,IAAK,CAAC,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CACxC,GAAG;YACD,CAAC,CAAC,EAAE,GAAG,EAAE;YACT,CAAC,CAAC;gBACE,QAAQ,EAAE,MAAM,aAAa,CAAC,OAAO,CAAC,IAAK,CAAC,CAAC;gBAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE;gBAC/C,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpC,CACN,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YACrC,IAAI;YACJ,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ;YACpC,MAAM,EAAE,QAAQ,CAAC,MAGhB;YACD,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,GAAG;YACP,GAAG,KAAK;YACR,KAAK,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SAC1F,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export function skillGuidance(retained = []) {
2
- const guidance = "Lore provides repository-scoped agent skills. At the start of a task, run `lore skill list` to see currently enabled skills, then `lore skill show <name>` for a matching skill. Choose by its description and the user's task; do not apply irrelevant skills. Recheck before reuse so disabled skills stop applying to new work. Follow the current user's request and your normal permissions; a skill does not grant tools or override higher-priority instructions. When asked to find existing skills, use `lore skill discover --folder <selected-folder>`; discovery stays local. Review selected instructions before `lore skill import`; an imported skill needs an owner or admin to enable it in Learnings → Skills.";
2
+ const guidance = "Lore provides repository-scoped agent skills. At the start of a task, run `lore skill list` to see currently enabled skills, then `lore skill show <name>` for a matching skill. Choose by its description and the user's task; do not apply irrelevant skills. When a skill refers to its own files (guides, schemas, scripts), run `lore skill files <name>` for its skill directory before using them. Recheck before reuse so disabled skills stop applying to new work. Follow the current user's request and your normal permissions; a skill does not grant tools or override higher-priority instructions. When asked to find existing skills, use `lore skill discover --folder <selected-folder>`; discovery stays local. Review selected instructions before `lore skill import`; an imported skill needs an owner or admin to enable it in Learnings → Skills.";
3
3
  return retained.some((text) => text.includes(guidance))
4
4
  ? undefined
5
5
  : guidance;
@@ -1 +1 @@
1
- {"version":3,"file":"skill-guidance.js","sourceRoot":"","sources":["../src/skill-guidance.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAC3B,WAA8B,EAAE;IAEhC,MAAM,QAAQ,GACZ,ksBAAksB,CAAC;IACrsB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"skill-guidance.js","sourceRoot":"","sources":["../src/skill-guidance.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAC3B,WAA8B,EAAE;IAEhC,MAAM,QAAQ,GACZ,40BAA40B,CAAC;IAC/0B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAKA,UAAU,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE;AAC5D,UAAU,YAAY;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAiB5D,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,EAAE,CAElG;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,EAAE,CAEnG;AASD,iGAAiG;AACjG,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA6CrK;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9G"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAKA,UAAU,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE;AAC5D,UAAU,YAAY;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAiB5D,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,EAAE,CAElG;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,EAAE,CAEnG;AAWD,iGAAiG;AACjG,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA6CrK;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9G"}
package/dist/skills.js CHANGED
@@ -23,8 +23,10 @@ export function loreSkillFiles(paths, installations) {
23
23
  export function recapSkillFiles(paths, installations) {
24
24
  return skillFiles(paths, installations, "recap");
25
25
  }
26
- const readManifest = (paths) => readOwnedManifest(resolve(paths.loreDirectory, "skills.json"), "Skill");
27
- const removeOwnedSkill = removeOwnedFile;
26
+ /** Skill files sit at `<agent folder>/skills/<name>/SKILL.md`; the agent folder itself is still checked for links. */
27
+ const skillFolder = (file) => dirname(dirname(dirname(file)));
28
+ const readManifest = (paths) => readOwnedManifest(resolve(paths.loreDirectory, "skills.json"), "Skill", paths.home);
29
+ const removeOwnedSkill = (file, manifest, home) => removeOwnedFile(file, manifest, home, true, skillFolder(file));
28
30
  function skillHint(subject, file, error) {
29
31
  return ownedFileHint(subject, file, error, "Recording still works without the skill.");
30
32
  }
@@ -45,7 +47,7 @@ export async function installLoreSkill(paths, installations) {
45
47
  for (const skill of SHIPPED_SKILLS) {
46
48
  for (const file of skillFiles(paths, installations, skill.name)) {
47
49
  try {
48
- if (!await regularPath(file)) {
50
+ if (!await regularPath(file, paths.home, skillFolder(file))) {
49
51
  warnings.push(`${skill.subject} left unchanged because its path is symlinked: ${file}`);
50
52
  continue;
51
53
  }
@@ -65,10 +67,10 @@ export async function installLoreSkill(paths, installations) {
65
67
  if (skill.name !== "lore")
66
68
  continue;
67
69
  const legacy = resolve(dirname(dirname(file)), "lore-remember/SKILL.md");
68
- if (!await regularPath(legacy)) {
70
+ if (!await regularPath(legacy, paths.home, skillFolder(legacy))) {
69
71
  warnings.push(`Previous lore-remember skill left unchanged because its path is symlinked: ${legacy}`);
70
72
  }
71
- else if (!await removeOwnedSkill(legacy, manifest) && await lstat(legacy).catch((error) => { if (error.code !== "ENOENT")
73
+ else if (!await removeOwnedSkill(legacy, manifest, paths.home) && await lstat(legacy).catch((error) => { if (error.code !== "ENOENT")
72
74
  throw error; return null; })) {
73
75
  warnings.push(`Previous lore-remember skill left unchanged to preserve your edits: ${legacy}`);
74
76
  }
@@ -90,9 +92,9 @@ export async function removeLoreSkill(paths, installations) {
90
92
  const manifest = await readManifest(paths).catch(() => ({}));
91
93
  // Manifest entries never select deletion targets; only known agent locations do.
92
94
  for (const file of [...loreSkillFiles(paths, installations), ...recapSkillFiles(paths, installations), ...skillFiles(paths, installations, "lore-remember")]) {
93
- await removeOwnedSkill(file, manifest);
95
+ await removeOwnedSkill(file, manifest, paths.home);
94
96
  }
95
- if (await regularPath(resolve(paths.loreDirectory, "skills.json")))
97
+ if (await regularPath(resolve(paths.loreDirectory, "skills.json"), paths.home))
96
98
  await rm(resolve(paths.loreDirectory, "skills.json"), { force: true });
97
99
  }
98
100
  //# sourceMappingURL=skills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * The plain health lines at the top of `lore status`: how often context
3
+ * reached this machine's prompts lately, then one line each for a server
4
+ * behind this CLI and for out-of-date Lore files, only when true.
5
+ */
6
+ /** At or above this share of prompts with live context, no hint is shown. */
7
+ export declare const CONTEXT_HEALTHY_RATE = 0.95;
8
+ /** Below this many prompts the line shows counts, not a percentage. */
9
+ export declare const CONTEXT_MIN_PROMPTS_FOR_RATE = 10;
10
+ export interface RecentContext {
11
+ days: number;
12
+ prompts: number;
13
+ live: number;
14
+ }
15
+ /** `null` when this machine sent no prompts in the window. */
16
+ export declare function contextHealthLine(recent: RecentContext | undefined): string | null;
17
+ /** True when `version` is an older release than `than` (pre-release tags ignored). */
18
+ export declare function olderRelease(version: string, than: string): boolean;
19
+ export declare function serverBehindLine(serverVersion: string | null, cliVersion: string): string | null;
20
+ export interface StaleLoreFile {
21
+ /** Customer-facing name, for example "OpenCode plugin". */
22
+ name: string;
23
+ version: string | null;
24
+ }
25
+ export declare function staleFilesLine(stale: readonly StaleLoreFile[]): string | null;
26
+ //# sourceMappingURL=status-health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-health.d.ts","sourceRoot":"","sources":["../src/status-health.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,uEAAuE;AACvE,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CASlF;AAOD,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQnE;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIhG;AAED,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,GAAG,IAAI,CAK7E"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The plain health lines at the top of `lore status`: how often context
3
+ * reached this machine's prompts lately, then one line each for a server
4
+ * behind this CLI and for out-of-date Lore files, only when true.
5
+ */
6
+ /** At or above this share of prompts with live context, no hint is shown. */
7
+ export const CONTEXT_HEALTHY_RATE = 0.95;
8
+ /** Below this many prompts the line shows counts, not a percentage. */
9
+ export const CONTEXT_MIN_PROMPTS_FOR_RATE = 10;
10
+ /** `null` when this machine sent no prompts in the window. */
11
+ export function contextHealthLine(recent) {
12
+ if (recent === undefined || recent.prompts === 0)
13
+ return null;
14
+ const share = recent.prompts < CONTEXT_MIN_PROMPTS_FOR_RATE
15
+ ? `${recent.live} of ${recent.prompts} prompts`
16
+ : // Round down so a rate just under the threshold never reads as healthy.
17
+ `${Math.floor((recent.live / recent.prompts) * 100)}% of prompts`;
18
+ const hint = recent.live / recent.prompts < CONTEXT_HEALTHY_RATE ? " Run lore doctor to see why." : "";
19
+ return `Context live on ${share} in the last ${recent.days} days.${hint}`;
20
+ }
21
+ function release(version) {
22
+ const match = /^(\d+)\.(\d+)\.(\d+)/u.exec(version.trim());
23
+ return match === null ? null : [Number(match[1]), Number(match[2]), Number(match[3])];
24
+ }
25
+ /** True when `version` is an older release than `than` (pre-release tags ignored). */
26
+ export function olderRelease(version, than) {
27
+ const a = release(version);
28
+ const b = release(than);
29
+ if (a === null || b === null)
30
+ return false;
31
+ for (let index = 0; index < 3; index += 1) {
32
+ if (a[index] !== b[index])
33
+ return a[index] < b[index];
34
+ }
35
+ return false;
36
+ }
37
+ export function serverBehindLine(serverVersion, cliVersion) {
38
+ return serverVersion !== null && olderRelease(serverVersion, cliVersion)
39
+ ? `Lore server ${serverVersion} is behind this CLI (${cliVersion}). Update the server.`
40
+ : null;
41
+ }
42
+ export function staleFilesLine(stale) {
43
+ if (stale.length === 0)
44
+ return null;
45
+ const names = stale.map((file) => (file.version === null ? file.name : `${file.name} (${file.version})`));
46
+ const list = names.length === 1 ? names[0] : `${names.slice(0, -1).join(", ")} and ${names.at(-1)}`;
47
+ return `${list} ${stale.length === 1 ? "is" : "are"} out of date. Run lore update.`;
48
+ }
49
+ //# sourceMappingURL=status-health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-health.js","sourceRoot":"","sources":["../src/status-health.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAmB,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,eAAO,MAAM,cAAc,stBAc1B,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhH;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAanG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAM5F;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,cAAc,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB/L"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAiC,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,eAAO,MAAM,cAAc,stBAc1B,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhH;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAanG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAM5F;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,cAAc,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB/L"}
package/dist/telemetry.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
3
3
  import { join } from "node:path";
4
- import { USAGE_COMMANDS } from "@lore-co/core";
4
+ import { USAGE_COMMANDS, loreDisabled } from "@lore-co/core";
5
5
  import { LORE_VERSION } from "./version.js";
6
6
  export const TELEMETRY_HELP = `Usage: lore telemetry [on|off|status]
7
7
 
@@ -19,7 +19,7 @@ enables it for a process. CI runs do not report. Self-hosted connections
19
19
  report only to their own server, never to Lore's hosted service.
20
20
  `;
21
21
  export async function telemetryEnabled(directory, env = process.env) {
22
- if (env.DO_NOT_TRACK === "1" || env.LORE_TELEMETRY === "0" || (env.CI && env.CI !== "false" && env.CI !== "0"))
22
+ if (env.DO_NOT_TRACK === "1" || env.LORE_TELEMETRY === "0" || loreDisabled(env) || (env.CI && env.CI !== "false" && env.CI !== "0"))
23
23
  return false;
24
24
  if (env.LORE_TELEMETRY === "1")
25
25
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * How human-facing command output is drawn. Rich output (marks, dim and bold)
3
+ * is only for an interactive terminal; anything else gets plain ASCII text
4
+ * that reads the same in logs and support tickets.
5
+ */
6
+ export interface OutputStyle {
7
+ /** Colors and Unicode marks. False prints plain ASCII. */
8
+ rich: boolean;
9
+ /** Columns to wrap at; Infinity when stdout is not a terminal. */
10
+ width: number;
11
+ /** Show paths and per-file detail. */
12
+ verbose: boolean;
13
+ /** Shown as `~` in displayed paths. */
14
+ home: string;
15
+ }
16
+ /**
17
+ * Set by `lore update` for the refresh it runs in the installed binary, whose
18
+ * stdout is a pipe: the parent's terminal decides how the child draws.
19
+ */
20
+ export declare const OUTPUT_STYLE_ENV = "LORE_OUTPUT_STYLE";
21
+ export declare const OUTPUT_COLUMNS_ENV = "LORE_OUTPUT_COLUMNS";
22
+ export declare const OUTPUT_VERBOSE_ENV = "LORE_OUTPUT_VERBOSE";
23
+ export declare const PLAIN_OUTPUT: OutputStyle;
24
+ interface OutputStream {
25
+ isTTY?: boolean;
26
+ columns?: number;
27
+ }
28
+ export declare function detectOutputStyle(options?: {
29
+ stream?: OutputStream;
30
+ environment?: NodeJS.ProcessEnv;
31
+ verbose?: boolean;
32
+ home?: string;
33
+ }): OutputStyle;
34
+ /** The environment that makes a child Lore process draw like this one. */
35
+ export declare function outputStyleEnvironment(style: OutputStyle): Record<string, string>;
36
+ /** `~/x` for a path inside the home folder; other paths unchanged. */
37
+ export declare function displayPath(path: string, home: string): string;
38
+ /** "A", "A and B", "A, B and C". */
39
+ export declare function listText(items: readonly string[]): string;
40
+ /**
41
+ * Word-wrap `text` to `width`, starting with `prefix` and indenting the lines
42
+ * after it to the same column. Never breaks inside a word or a kept span.
43
+ */
44
+ export declare function wrap(text: string, width: number, prefix?: string, indent?: string): string[];
45
+ /** Builds the lines of one command's output in a given style. */
46
+ export declare class Output {
47
+ readonly style: OutputStyle;
48
+ private readonly lines;
49
+ constructor(style: OutputStyle);
50
+ private paint;
51
+ bold(text: string): string;
52
+ dim(text: string): string;
53
+ /** A command or other text the reader types: bold, and never wrapped apart. */
54
+ code(text: string): string;
55
+ path(path: string): string;
56
+ /** " · " between short facts on one line. */
57
+ get separator(): string;
58
+ mark(kind: "ok" | "warning" | "error"): string;
59
+ /** An outcome line, flush left: "✓ Lore 0.2.27 is installed". */
60
+ outcome(kind: "ok" | "warning" | "error", text: string): this;
61
+ /** A secondary line under an outcome, indented and dim. */
62
+ note(text: string, indent?: number): this;
63
+ /** An indented line in normal weight. */
64
+ text(text: string, indent?: number): this;
65
+ /** Two columns: a padded label and wrapped text that hangs under itself, after any mark. */
66
+ row(label: string, labelWidth: number, text: string, mark?: string, indent?: number): this;
67
+ /** A bold heading and its numbered steps; nothing when there are no steps. */
68
+ steps(heading: string, items: readonly string[]): this;
69
+ /** Lines printed exactly, for blocks the reader copies. */
70
+ verbatim(text: string): this;
71
+ blank(): this;
72
+ get empty(): boolean;
73
+ toString(): string;
74
+ }
75
+ export {};
76
+ //# sourceMappingURL=terminal-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-output.d.ts","sourceRoot":"","sources":["../src/terminal-output.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,IAAI,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AACpD,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AACxD,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAKxD,eAAO,MAAM,YAAY,EAAE,WAA+E,CAAC;AAE3G,UAAU,YAAY;IAAG,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAE5D,wBAAgB,iBAAiB,CAAC,OAAO,GAAE;IACzC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACV,GAAG,WAAW,CAgBnB;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMjF;AAQD,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,oCAAoC;AACpC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAGzD;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAK,EAAE,MAAM,SAAoC,GAAG,MAAM,EAAE,CAgBnH;AAED,iEAAiE;AACjE,qBAAa,MAAM;IAGL,QAAQ,CAAC,KAAK,EAAE,WAAW;IAFvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;gBAEjB,KAAK,EAAE,WAAW;IAEvC,OAAO,CAAC,KAAK;IAIb,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAC1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAEzB,+EAA+E;IAC/E,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAE1B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAE1B,6CAA6C;IAC7C,IAAI,SAAS,IAAI,MAAM,CAA2C;IAElE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM;IAK9C,iEAAiE;IACjE,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAO7D,2DAA2D;IAC3D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,IAAI;IAMpC,yCAAyC;IACzC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,IAAI;IAKpC,4FAA4F;IAC5F,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,SAAK,EAAE,MAAM,SAAI,GAAG,IAAI;IAMjF,8EAA8E;IAC9E,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAQtD,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5B,KAAK,IAAI,IAAI;IAKb,IAAI,KAAK,IAAI,OAAO,CAAoC;IAExD,QAAQ,IAAI,MAAM;CAInB"}