@lore-co/cli 0.2.27 → 0.2.28

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 (45) hide show
  1. package/README.md +8 -7
  2. package/dist/capture-repair.d.ts +11 -0
  3. package/dist/capture-repair.d.ts.map +1 -0
  4. package/dist/capture-repair.js +94 -0
  5. package/dist/capture-repair.js.map +1 -0
  6. package/dist/cli.d.ts +54 -4
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +118 -36
  9. package/dist/cli.js.map +1 -1
  10. package/dist/command-help.d.ts +3 -2
  11. package/dist/command-help.d.ts.map +1 -1
  12. package/dist/command-help.js +5 -3
  13. package/dist/command-help.js.map +1 -1
  14. package/dist/drafts.d.ts +8 -0
  15. package/dist/drafts.d.ts.map +1 -0
  16. package/dist/drafts.js +173 -0
  17. package/dist/drafts.js.map +1 -0
  18. package/dist/generated-assets.d.ts +7 -7
  19. package/dist/generated-assets.d.ts.map +1 -1
  20. package/dist/generated-assets.js +7 -7
  21. package/dist/generated-assets.js.map +1 -1
  22. package/dist/github.d.ts.map +1 -1
  23. package/dist/github.js +8 -7
  24. package/dist/github.js.map +1 -1
  25. package/dist/lore-agent.d.ts +1 -1
  26. package/dist/lore-agent.d.ts.map +1 -1
  27. package/dist/lore-agent.js +3 -0
  28. package/dist/lore-agent.js.map +1 -1
  29. package/dist/recovery.d.ts +5 -2
  30. package/dist/recovery.d.ts.map +1 -1
  31. package/dist/recovery.js +7 -3
  32. package/dist/recovery.js.map +1 -1
  33. package/dist/remember.d.ts.map +1 -1
  34. package/dist/remember.js +30 -1
  35. package/dist/remember.js.map +1 -1
  36. package/dist/review.d.ts.map +1 -1
  37. package/dist/review.js +8 -6
  38. package/dist/review.js.map +1 -1
  39. package/dist/runtime.d.ts.map +1 -1
  40. package/dist/runtime.js +10 -7
  41. package/dist/runtime.js.map +1 -1
  42. package/dist/self-host.d.ts +1 -1
  43. package/dist/self-host.js +2 -2
  44. package/dist/update.js +3 -3
  45. package/package.json +4 -4
package/README.md CHANGED
@@ -426,7 +426,7 @@ content-free `guard_check` audit event.
426
426
 
427
427
  ```sh
428
428
  lore update
429
- lore update --version v0.2.27
429
+ lore update --version v0.2.28
430
430
  ```
431
431
 
432
432
  `update` resolves the latest release to an exact tag, or uses the exact
@@ -449,7 +449,7 @@ receive timestamped backups, and customer-edited skill files are preserved with
449
449
  a warning. The report is by agent and lists only what you need to do:
450
450
 
451
451
  ```text
452
- ✓ Lore 0.2.27 is installed
452
+ ✓ Lore 0.2.28 is installed
453
453
  ✓ Updated Lore for Claude Code and Codex
454
454
 
455
455
  Next
@@ -660,10 +660,11 @@ The Claude/Codex/Cursor/Polytoken command-hook handler:
660
660
  First prompts use `POST /v1/observations` and audited
661
661
  `POST /v1/context/deliveries`. Paired turns use `POST /v1/turns` with a
662
662
  workspace bearer token and an `Idempotency-Key` header. Automatic teachings
663
- default to repository scope and follow the workspace learning policy. In
664
- `proposal_only` mode, every automatic capture remains proposed and cannot be
665
- retrieved or injected until an owner or admin activates it (`lore review` or
666
- the dashboard). Rejected,
663
+ default to repository scope and follow the workspace learning policy. While
664
+ the workspace reviews new learnings (the default), every automatic capture
665
+ remains proposed and cannot be retrieved or injected until it is approved
666
+ (`lore review` or the dashboard) by an owner or admin, or by another member
667
+ when the workspace allows member review. Rejected,
667
668
  suppressed, superseded, and deleted learnings are also excluded. Dirty files
668
669
  and the current directory remain task relevance evidence and do not narrow
669
670
  every learning. Only an explicit correction with clear team-, company,
@@ -821,7 +822,7 @@ same-repository, non-draft pull requests bearing the corresponding
821
822
  `lore:codex-review` or `lore:devin-review` label.
822
823
 
823
824
  Generated jobs require a published standalone binary release and default to
824
- `treadiehq/lore-releases` at `v0.2.27`. Set `LORE_CLI_REPOSITORY` to the publicly
825
+ `treadiehq/lore-releases` at `v0.2.28`. Set `LORE_CLI_REPOSITORY` to the publicly
825
826
  readable `owner/repository` and `LORE_CLI_VERSION` to an existing release tag
826
827
  when using another release source.
827
828
 
@@ -0,0 +1,11 @@
1
+ import type { ConnectorConfig } from "./cli.js";
2
+ export declare const CAPTURE_REPAIR_HELP = "lore capture repair\nRetry captures that died while the extraction provider was down.\n\nUsage:\n lore capture repair [--json]\n\nOptions:\n --json Print machine-readable output\n --help Show this help\n\nA capture gets five extraction attempts. When the extraction provider is down\nor rate limited for longer than that, Lore dead-letters the capture and lore\ndoctor reports a server-operational-metrics error. Once the provider is back,\nrun this command to give those captures a fresh set of attempts. Captures that\nfailed for a permanent reason (invalid data, a rejected request or key) stay\ndead. Requires a workspace owner or admin connected with lore connect --login.\n\nCounts:\n rearmed dead captures queued for extraction again\n skipped dead captures with a permanent failure, left dead\n remaining retryable dead captures not queued because the workspace already\n has CAPTURE_PENDING_JOB_LIMIT captures waiting; run again later\n\nExamples:\n lore capture repair\n lore capture repair --json\n";
3
+ export interface CaptureRepairSummary {
4
+ workspaceId: string;
5
+ rearmed: number;
6
+ skipped: number;
7
+ remaining: number;
8
+ }
9
+ export declare function captureRepairText(summary: CaptureRepairSummary): string;
10
+ export declare function runCaptureRepairCommand(args: readonly string[], config: ConnectorConfig | null): Promise<void>;
11
+ //# sourceMappingURL=capture-repair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-repair.d.ts","sourceRoot":"","sources":["../src/capture-repair.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,eAAO,MAAM,mBAAmB,yhCA0B/B,CAAC;AAMF,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAevE;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,eAAe,GAAG,IAAI,GAC7B,OAAO,CAAC,IAAI,CAAC,CAoDf"}
@@ -0,0 +1,94 @@
1
+ import { CAPTURE_REPAIR_REQUIRES_ADMIN, CaptureRepairResponseSchema, } from "@lore-co/core";
2
+ import { LoreApiError, loreApiRequest } from "./api.js";
3
+ export const CAPTURE_REPAIR_HELP = `lore capture repair
4
+ Retry captures that died while the extraction provider was down.
5
+
6
+ Usage:
7
+ lore capture repair [--json]
8
+
9
+ Options:
10
+ --json Print machine-readable output
11
+ --help Show this help
12
+
13
+ A capture gets five extraction attempts. When the extraction provider is down
14
+ or rate limited for longer than that, Lore dead-letters the capture and lore
15
+ doctor reports a server-operational-metrics error. Once the provider is back,
16
+ run this command to give those captures a fresh set of attempts. Captures that
17
+ failed for a permanent reason (invalid data, a rejected request or key) stay
18
+ dead. Requires a workspace owner or admin connected with lore connect --login.
19
+
20
+ Counts:
21
+ rearmed dead captures queued for extraction again
22
+ skipped dead captures with a permanent failure, left dead
23
+ remaining retryable dead captures not queued because the workspace already
24
+ has CAPTURE_PENDING_JOB_LIMIT captures waiting; run again later
25
+
26
+ Examples:
27
+ lore capture repair
28
+ lore capture repair --json
29
+ `;
30
+ const USAGE = "Usage: lore capture repair [--json]";
31
+ /** Upper bound on calls, so a misbehaving server cannot loop forever. */
32
+ const MAX_PAGES = 1_000;
33
+ export function captureRepairText(summary) {
34
+ const counts = `rearmed: ${summary.rearmed}\nskipped: ${summary.skipped}\nremaining: ${summary.remaining}\n`;
35
+ const later = summary.remaining > 0
36
+ ? ` ${summary.remaining} more wait for room in the capture backlog; run lore capture repair again once these finish.`
37
+ : "";
38
+ if (summary.rearmed > 0) {
39
+ return `${counts}Queued ${summary.rearmed} dead capture(s) for extraction again.${later} Run lore doctor after they finish; the dead-letter error clears once they succeed.\n`;
40
+ }
41
+ if (summary.remaining > 0) {
42
+ return `${counts}The capture backlog is full, so no dead capture was queued. Run lore capture repair again once pending captures finish.\n`;
43
+ }
44
+ if (summary.skipped > 0) {
45
+ return `${counts}No dead capture could be retried. Skipped captures failed for a permanent reason, such as invalid data or a rejected request.\n`;
46
+ }
47
+ return `${counts}No dead captures needed repair.\n`;
48
+ }
49
+ export async function runCaptureRepairCommand(args, config) {
50
+ if (args.includes("--help") || args.includes("-h")) {
51
+ process.stdout.write(CAPTURE_REPAIR_HELP);
52
+ return;
53
+ }
54
+ let json = false;
55
+ for (const flag of args) {
56
+ if (flag === "--json") {
57
+ json = true;
58
+ continue;
59
+ }
60
+ throw new Error(`Unknown capture repair option: ${flag}\n${USAGE}`);
61
+ }
62
+ if (!config) {
63
+ throw new Error("Lore is not connected. Run: lore connect --login");
64
+ }
65
+ let rearmed = 0;
66
+ let last = null;
67
+ for (let page = 0; page < MAX_PAGES; page += 1) {
68
+ try {
69
+ last = await loreApiRequest(config, "POST", "/v1/reliability/captures/repair", CaptureRepairResponseSchema, {});
70
+ }
71
+ catch (error) {
72
+ if (error instanceof LoreApiError && error.status === 403 && error.code === CAPTURE_REPAIR_REQUIRES_ADMIN) {
73
+ throw new Error("Only a workspace owner or admin can retry dead captures. Ask one to run lore capture repair, or connect as one with lore connect --login.");
74
+ }
75
+ throw error;
76
+ }
77
+ rearmed += last.rearmed;
78
+ // Stop once nothing is left or the backlog cap stopped this call.
79
+ if (last.remaining === 0 || last.rearmed === 0) {
80
+ break;
81
+ }
82
+ }
83
+ if (last === null) {
84
+ throw new Error("Lore did not finish repairing captures. Run lore capture repair again.");
85
+ }
86
+ const summary = {
87
+ workspaceId: last.workspaceId,
88
+ rearmed,
89
+ skipped: last.skipped,
90
+ remaining: last.remaining,
91
+ };
92
+ process.stdout.write(json ? `${JSON.stringify(summary, null, 2)}\n` : captureRepairText(summary));
93
+ }
94
+ //# sourceMappingURL=capture-repair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-repair.js","sourceRoot":"","sources":["../src/capture-repair.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -3,7 +3,7 @@ import { type CapturePause, type DirectoryRules } from "./directory-policy.js";
3
3
  import { type CaptureScopeOptions } from "./capture-scope.js";
4
4
  import { type ConnectionReference } from "./directory-policy.js";
5
5
  import { type LoreMcpAgent, type McpHostAgent } from "./mcp-config.js";
6
- import { type OperationalMetricsResponse, type WorkspaceIdentityResponse } from "@lore-co/core";
6
+ import { RELIABILITY_INTEGRATION_CONTRACT_VERSION, type DeepReadonly, type OperationalMetricsResponse, type ReliabilityInstallationHealth, type ReliabilityIntegrationManifest, type ReliabilityInvocationHealth, type WorkspaceIdentityResponse } from "@lore-co/core";
7
7
  import { type CommandHookAgentName } from "./runtime.js";
8
8
  import { genericMcpServers, type GenericMcpAgent } from "./generic-mcp.js";
9
9
  import { type OutputStyle } from "./terminal-output.js";
@@ -63,6 +63,29 @@ export interface ConnectorConfig {
63
63
  connectedAt: string;
64
64
  timeoutMs: number;
65
65
  }
66
+ interface AgentStatus {
67
+ agent: ConfiguredAgentName;
68
+ integrationId: string;
69
+ configured: boolean;
70
+ executable: boolean;
71
+ configExists: boolean;
72
+ configFile: string;
73
+ configFiles?: string[];
74
+ integration: "hooks" | "plugin";
75
+ installed: number;
76
+ expected: number;
77
+ capabilities: DeepReadonly<ReliabilityIntegrationManifest["capabilities"]>;
78
+ installation: ReliabilityInstallationHealth;
79
+ invocation: ReliabilityInvocationHealth;
80
+ invocationError: string | null;
81
+ }
82
+ interface ExternalSurfaceStatus {
83
+ surface: "copilot-cloud-mcp";
84
+ integrationId: string;
85
+ installation: "repository_template";
86
+ locallyInspectable: false;
87
+ capabilities: DeepReadonly<ReliabilityIntegrationManifest["capabilities"]>;
88
+ }
66
89
  export declare function getLorePaths(home?: string, environment?: NodeJS.ProcessEnv, cwd?: string): LorePaths;
67
90
  export declare function mergeLoreHooks(input: Record<string, unknown>, agent: CommandHookAgentName, paths: LorePaths, capture?: boolean): Record<string, unknown>;
68
91
  export declare function removeLoreHooks(input: Record<string, unknown>): Record<string, unknown>;
@@ -232,6 +255,33 @@ export declare function reliabilityWorkspaceKey(config: ConnectorConfig): string
232
255
  export declare function credentialReliabilityWorkspaceKey(apiUrl: string, token: string): string;
233
256
  /** Unrecoverable dead letters are kept this long for diagnosis, then pruned by doctor. */
234
257
  export declare const DEAD_LETTER_RETENTION_MS: number;
258
+ declare function statusData(paths: LorePaths, cwd?: string): Promise<{
259
+ folderAccess: {
260
+ allowed: boolean;
261
+ reason: string;
262
+ };
263
+ /** Retrieval-only mode is "off": no turn-capture hooks, no turns sent. */
264
+ capture: "on" | "off";
265
+ /** Dashboard switches that pause capture without re-running lore connect. */
266
+ captureSwitches: CaptureSwitchStatus;
267
+ schemaVersion: "lore-cli-status-v1";
268
+ integrationContractVersion: typeof RELIABILITY_INTEGRATION_CONTRACT_VERSION;
269
+ connected: boolean;
270
+ connection: string | null;
271
+ apiUrl: string | null;
272
+ config: string;
273
+ configMode: string | null;
274
+ runtimeRequired: boolean;
275
+ runtimeInstalled: boolean;
276
+ runtimeVersion: string | null;
277
+ queuedTurns: number;
278
+ reliability: ReliabilityStoreInspection | null;
279
+ reliabilityError: string | null;
280
+ agents: AgentStatus[];
281
+ externalSurfaces: ExternalSurfaceStatus[];
282
+ }>;
283
+ /** The default `lore status`: what someone needs to know, and the one next step. */
284
+ export declare function statusSummary(data: Awaited<ReturnType<typeof statusData>>, healthLines: readonly string[], workspaceName: string | undefined): string;
235
285
  export declare function disconnectInstallation(paths?: LorePaths, preservePendingState?: boolean): Promise<{
236
286
  connected: false;
237
287
  changedHookFiles: string[];
@@ -259,9 +309,9 @@ export declare function captureSummary(capture: "on" | "off", switches?: Capture
259
309
  /** Retrieval-only mode and a paused switch are chosen configurations, never warnings. */
260
310
  export declare function captureModeCheck(capture: "on" | "off", switches?: CaptureSwitchStatus): DoctorCheck;
261
311
  /**
262
- * Server-side queue health. Dead embedding jobs name the operator fix: once the
263
- * provider is repaired, `lore embeddings repair` retries them without waiting
264
- * for the reconciler's backoff.
312
+ * Server-side queue health. Dead jobs name the operator fix: once the provider
313
+ * is repaired, `lore capture repair` and `lore embeddings repair` retry them
314
+ * without waiting for a new capture or the reconciler's backoff.
265
315
  */
266
316
  export declare function operationalMetricsCheck(metrics: OperationalMetricsResponse): DoctorCheck;
267
317
  export declare const SEMANTIC_SEARCH_WINDOW_DAYS = 7;
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -30,7 +30,9 @@ import { runChatCommand } from "./chat.js";
30
30
  import { runLearningsCommand } from "./learnings.js";
31
31
  import { runReviewCommand } from "./review.js";
32
32
  import { runEmbeddingsCommand } from "./embeddings.js";
33
+ import { CAPTURE_REPAIR_HELP, runCaptureRepairCommand } from "./capture-repair.js";
33
34
  import { runRememberCommand } from "./remember.js";
35
+ import { runDraftsCommand } from "./drafts.js";
34
36
  import { installLoreSkill, loreSkillFiles, recapSkillFiles, removeLoreSkill } from "./skills.js";
35
37
  import { GENERIC_AGENT, genericInstructions, genericMcpServers, parseGenericAgentId, readGenericAgents, recordGenericAgent, removeGenericAgents } from "./generic-mcp.js";
36
38
  import { installLoreAgent, loreAgentFiles, removeLoreAgent } from "./lore-agent.js";
@@ -145,7 +147,7 @@ Options:
145
147
  --write With --agent generic: let the agent save through MCP (saves stay proposals)
146
148
  --timeout-ms <ms> Hook request timeout, 250-10000 (default: 2500)
147
149
  --fallback <agent> claude, codex, opencode, devin, cursor, copilot-cli, polytoken
148
- --no-recovery Disable automatic handoff setup (otherwise enabled with two installed clients)
150
+ --no-recovery Disable automatic handoff setup (otherwise set up between the agents you connect)
149
151
  --verbose Also list the files written and the connection details
150
152
  --json Print machine-readable output
151
153
  --help Show this command's help
@@ -166,14 +168,18 @@ Examples:
166
168
  lore connect --token "$LORE_WORKSPACE_TOKEN" --agent cursor
167
169
  `;
168
170
  const STATUS_HELP = `lore status
169
- Show exact installation, declared capabilities, and last invocation health.
171
+ Show whether Lore is connected, whether it records in this folder, and which agents have used it.
170
172
 
171
173
  Usage:
172
- lore status [--json]
174
+ lore status [--verbose] [--json]
175
+
176
+ Options:
177
+ --verbose Also show installation, capture queue, cache, and Guard details
178
+ --json Print every detail as JSON
173
179
 
174
180
  Examples:
175
181
  lore status
176
- lore status --json
182
+ lore status --verbose
177
183
  `;
178
184
  const DOCTOR_HELP = `lore doctor
179
185
  Check local security, exact wiring, invocation health, binaries, and Lore health.
@@ -193,6 +199,7 @@ Usage:
193
199
  lore capture off [--json]
194
200
  lore capture on [--json]
195
201
  lore capture reminder off|on [--json]
202
+ lore capture repair [--json]
196
203
 
197
204
  With capture off, Lore installs no Stop or SessionEnd hooks and never sends a
198
205
  prompt or response as a turn. Context injection, Guard, lore ask, lore remember,
@@ -202,11 +209,15 @@ decide where Lore runs at all.
202
209
  While nothing is recorded, Lore asks your agent to suggest /recap once in a
203
210
  session where you confirm a decision. lore capture reminder off stops that.
204
211
 
212
+ lore capture repair retries captures the server dead-lettered while its
213
+ extraction provider was down. See lore help capture repair.
214
+
205
215
  Examples:
206
216
  lore capture off
207
217
  lore capture status
208
218
  lore capture reminder off
209
219
  lore capture on
220
+ lore capture repair
210
221
  `;
211
222
  const DISCONNECT_HELP = `lore disconnect
212
223
  Remove Lore-owned hooks/plugin, credentials, runtime, and transient state.
@@ -2161,9 +2172,13 @@ async function connectWithCredentialLocked(options, identity) {
2161
2172
  const recoveryEnv = options.home === undefined ? process.env : { ...process.env, ZDOTDIR: paths.home };
2162
2173
  let recoveryWarning;
2163
2174
  const externalRecoveryHost = options.agents.some(agent => ["t3code", "cowork", "copilot-vscode"].includes(agent));
2175
+ // Named agents limit recovery to themselves; auto-detection already installs every detected agent.
2176
+ const namedRecoveryAgents = options.agents.length === 0 ? undefined
2177
+ : options.agents.map(agent => agent === "copilot" ? "copilot-cli" : agent);
2178
+ const namedSources = namedRecoveryAgents?.filter((agent) => isRecoverySource(agent) && agent !== options.fallback);
2164
2179
  const installRecovery = options.fallback === undefined ? options.recovery === true ?
2165
- await prepareAutomaticRecovery(paths, recoveryEnv).catch((error) => { recoveryWarning = `Automatic recovery setup: ${error.message}`; return undefined; }) : undefined :
2166
- await prepareRecoveryInstallation(paths, options.fallback, recoveryEnv).catch((error) => {
2180
+ await prepareAutomaticRecovery(paths, recoveryEnv, namedRecoveryAgents).catch((error) => { recoveryWarning = `Automatic recovery setup: ${error.message}`; return undefined; }) : undefined :
2181
+ await prepareRecoveryInstallation(paths, options.fallback, recoveryEnv, namedSources?.length ? namedSources : undefined).catch((error) => {
2167
2182
  // A desktop host can be the source even when only its destination is on PATH.
2168
2183
  if (externalRecoveryHost && error.message.startsWith("No supported source client is installed."))
2169
2184
  return undefined;
@@ -3151,20 +3166,59 @@ async function connectedServerVersion(config) {
3151
3166
  return null;
3152
3167
  }
3153
3168
  }
3169
+ /** The default `lore status`: what someone needs to know, and the one next step. */
3170
+ export function statusSummary(data, healthLines, workspaceName) {
3171
+ if (!data.connected)
3172
+ return "Lore isn't connected on this machine.\nNext: lore connect --login\n";
3173
+ const lines = [...healthLines, workspaceName ? `Connected to ${workspaceName}.` : "Connected."];
3174
+ lines.push(!data.folderAccess.allowed
3175
+ ? `This folder: Lore is off (${data.folderAccess.reason}).`
3176
+ : data.capture === "off" ? "This folder: context and Guard on; recording off."
3177
+ : data.captureSwitches.pausedBy !== null ? `This folder: context and Guard on; ${capturePauseMessage(data.captureSwitches.pausedBy).toLowerCase()}.`
3178
+ : "This folder: recording on.");
3179
+ const agents = data.agents.filter((agent) => agent.configured);
3180
+ const day = (value) => value === null ? "" : new Date(value).toISOString().slice(0, 10);
3181
+ let next = null;
3182
+ if (agents.length > 0) {
3183
+ const width = Math.max(...agents.map((agent) => agentDisplayName(agent.agent).length));
3184
+ lines.push("Agents:");
3185
+ for (const agent of agents) {
3186
+ const broken = agent.installation.state !== "complete" || agent.invocationError !== null
3187
+ || agent.invocation.state === "failed" || agent.invocation.state === "incomplete";
3188
+ if (broken)
3189
+ next ??= "lore doctor";
3190
+ const state = agent.installation.state !== "complete" ? "setup incomplete"
3191
+ : agent.invocationError !== null || agent.invocation.state === "failed" || agent.invocation.state === "incomplete" ? "last run failed"
3192
+ : agent.invocation.state === "successful" ? `last used ${day(agent.invocation.lastSuccessfulAt)}`
3193
+ : "not used yet";
3194
+ lines.push(` ${agentDisplayName(agent.agent).padEnd(width)} ${state}`);
3195
+ }
3196
+ }
3197
+ if (next !== null)
3198
+ lines.push(`Next: ${next}`);
3199
+ lines.push("Details: lore status --verbose");
3200
+ return `${lines.join("\n")}\n`;
3201
+ }
3154
3202
  async function statusCommand(args) {
3155
- const parsed = parseOutputArguments(args, STATUS_HELP, "status");
3203
+ const verbose = args.includes("--verbose");
3204
+ const parsed = parseOutputArguments(args.filter((argument) => argument !== "--verbose"), STATUS_HELP, "status");
3156
3205
  if (parsed === null) {
3157
3206
  return;
3158
3207
  }
3159
3208
  const paths = getLorePaths();
3209
+ const config = await diagnosticConfig(paths, process.cwd());
3160
3210
  const [statusResult, serverVersion] = await Promise.all([
3161
3211
  statusData(paths, process.cwd()),
3162
- diagnosticConfig(paths, process.cwd()).then((config) => config === null ? null : connectedServerVersion(config)),
3212
+ config === null ? null : connectedServerVersion(config),
3163
3213
  ]);
3164
3214
  const health = statusHealth(statusResult, serverVersion);
3165
3215
  const data = { ...statusResult, health };
3166
3216
  if (!parsed.json && loreDisabled(process.env))
3167
3217
  process.stdout.write(`${LORE_DISABLED_MESSAGE}\n`);
3218
+ if (!parsed.json && !verbose) {
3219
+ process.stdout.write(statusSummary(data, health.lines, config?.workspaceName));
3220
+ return;
3221
+ }
3168
3222
  if (!parsed.json && data.connection)
3169
3223
  process.stdout.write(`connection: ${data.connection}\n`);
3170
3224
  const agentLines = data.agents
@@ -3320,17 +3374,18 @@ export function captureModeCheck(capture, switches = CAPTURE_SWITCHES_UNCHECKED)
3320
3374
  };
3321
3375
  }
3322
3376
  /**
3323
- * Server-side queue health. Dead embedding jobs name the operator fix: once the
3324
- * provider is repaired, `lore embeddings repair` retries them without waiting
3325
- * for the reconciler's backoff.
3377
+ * Server-side queue health. Dead jobs name the operator fix: once the provider
3378
+ * is repaired, `lore capture repair` and `lore embeddings repair` retry them
3379
+ * without waiting for a new capture or the reconciler's backoff.
3326
3380
  */
3327
3381
  export function operationalMetricsCheck(metrics) {
3328
3382
  const captureBacklog = metrics.captureReplay.captureExtraction.pending +
3329
3383
  metrics.captureReplay.captureExtraction.running;
3330
3384
  const embeddingBacklog = metrics.captureReplay.memoryEmbedding.pending +
3331
3385
  metrics.captureReplay.memoryEmbedding.running;
3386
+ const captureDeadLetters = metrics.captureReplay.captureExtraction.dead;
3332
3387
  const embeddingDeadLetters = metrics.captureReplay.memoryEmbedding.dead;
3333
- const deadLetters = metrics.captureReplay.captureExtraction.dead + embeddingDeadLetters;
3388
+ const deadLetters = captureDeadLetters + embeddingDeadLetters;
3334
3389
  const detectedFailures = metrics.silentFailures.count +
3335
3390
  metrics.guard.failures +
3336
3391
  deadLetters;
@@ -3344,6 +3399,9 @@ export function operationalMetricsCheck(metrics) {
3344
3399
  ? "warning"
3345
3400
  : "ok",
3346
3401
  detail: `${detectedFailures} detected failure(s), ${captureBacklog} capture and ${embeddingBacklog} embedding job(s) in backlog; ${metrics.guard.latency.samples} Guard latency sample(s)` +
3402
+ (captureDeadLetters > 0
3403
+ ? `; ${captureDeadLetters} dead capture job(s): once the extraction provider is back, run lore capture repair`
3404
+ : "") +
3347
3405
  (embeddingDeadLetters > 0
3348
3406
  ? `; ${embeddingDeadLetters} dead embedding job(s): fix the embedding provider, then run lore embeddings repair`
3349
3407
  : ""),
@@ -3550,6 +3608,10 @@ export async function setRecapReminder(reminder, paths = getLorePaths()) {
3550
3608
  return { recapReminder: reminder, changed: true };
3551
3609
  }
3552
3610
  async function captureCommand(args) {
3611
+ if (args[0] === "repair") {
3612
+ await runCaptureRepairCommand(args.slice(1), await readConnectorConfig(getLorePaths(), process.cwd()));
3613
+ return;
3614
+ }
3553
3615
  if (args[0] === "reminder") {
3554
3616
  const json = args.includes("--json");
3555
3617
  const [reminder, ...extra] = args.slice(1).filter((argument) => argument !== "--json");
@@ -3576,7 +3638,7 @@ async function captureCommand(args) {
3576
3638
  mode = argument;
3577
3639
  continue;
3578
3640
  }
3579
- throw new Error("Usage: lore capture [status|on|off|reminder off|reminder on] [--json]");
3641
+ throw new Error("Usage: lore capture [status|on|off|reminder off|reminder on|repair] [--json]");
3580
3642
  }
3581
3643
  const paths = getLorePaths();
3582
3644
  if (mode === undefined || mode === "status") {
@@ -3655,13 +3717,18 @@ async function doctorCommand(args) {
3655
3717
  checks.push({
3656
3718
  name: "config",
3657
3719
  status: config === null ? "error" : "ok",
3658
- detail: config === null ? `missing or invalid: ${paths.config}` : paths.config,
3659
- });
3660
- checks.push({
3661
- name: "config-permissions",
3662
- status: ["600", "private-acl"].includes(status.configMode ?? "") ? "ok" : "error",
3663
- detail: status.configMode ?? "missing",
3720
+ detail: config === null ? `not connected (${paths.config} is missing or invalid). Run lore connect --login` : paths.config,
3664
3721
  });
3722
+ // Without a config there is nothing to protect yet; the check above says what to do.
3723
+ if (config !== null)
3724
+ checks.push({
3725
+ name: "config-permissions",
3726
+ status: ["600", "private-acl"].includes(status.configMode ?? "") ? "ok" : "error",
3727
+ detail: status.configMode ?? "missing",
3728
+ });
3729
+ // A fresh connection has not been used yet; that is expected for a day, not a problem.
3730
+ const connectedAt = config === null ? Number.NaN : Date.parse(config.connectedAt);
3731
+ const recentlyConnected = Number.isFinite(connectedAt) && Date.now() - connectedAt < 24 * 60 * 60 * 1000;
3665
3732
  if (status.runtimeRequired) {
3666
3733
  checks.push({
3667
3734
  name: "runtime",
@@ -3689,7 +3756,9 @@ async function doctorCommand(args) {
3689
3756
  : agent.invocation.state === "failed" ||
3690
3757
  agent.invocation.state === "incomplete"
3691
3758
  ? "error"
3692
- : "warning",
3759
+ : agent.invocation.state === "never_observed" && recentlyConnected
3760
+ ? "ok"
3761
+ : "warning",
3693
3762
  detail: agent.invocationError !== null
3694
3763
  ? agent.invocationError === "runtime_version_mismatch"
3695
3764
  ? `observed Lore ${agent.invocation.runtimeVersion}; expected ${LORE_VERSION}`
@@ -3701,7 +3770,9 @@ async function doctorCommand(args) {
3701
3770
  : agent.invocation.state === "incomplete"
3702
3771
  ? `last invocation did not complete (${agent.invocation.lastAttemptedAt})`
3703
3772
  : agent.invocation.state === "never_observed"
3704
- ? "installed, but no invocation has been observed yet"
3773
+ ? recentlyConnected
3774
+ ? "installed, not used yet"
3775
+ : `installed, but not used since connecting. Start a session in ${agentDisplayName(agent.agent)}, then run lore doctor again`
3705
3776
  : "invocation health is unavailable",
3706
3777
  });
3707
3778
  if (agent.agent === "codex" && agent.executable) {
@@ -3725,23 +3796,28 @@ async function doctorCommand(args) {
3725
3796
  detail: "surface-specific repository configuration; local installation is not claimed",
3726
3797
  });
3727
3798
  }
3728
- checks.push({
3729
- name: "reliability-store",
3730
- status: status.reliabilityError !== null
3731
- ? "error"
3732
- : status.reliability === null
3733
- ? "warning"
3734
- : "ok",
3735
- detail: status.reliabilityError ??
3736
- status.reliability?.directory ??
3737
- "not initialized",
3738
- });
3799
+ if (config !== null)
3800
+ checks.push({
3801
+ name: "reliability-store",
3802
+ status: status.reliabilityError !== null
3803
+ ? "error"
3804
+ : status.reliability === null
3805
+ ? "warning"
3806
+ : "ok",
3807
+ detail: status.reliabilityError ??
3808
+ status.reliability?.directory ??
3809
+ "not initialized",
3810
+ });
3739
3811
  if (status.reliability !== null) {
3740
3812
  checks.push(durableOutboxCheck(status.reliability.outbox, prunedDeadLetters));
3813
+ // Keys are pinned on the first delivery, so an unused connection has none yet.
3814
+ const unused = status.agents.every((agent) => !agent.configured || agent.invocation.state === "never_observed");
3741
3815
  checks.push({
3742
3816
  name: "verified-snapshot-cache",
3743
- status: status.reliability.trustKeys > 0 ? "ok" : "warning",
3744
- detail: `${status.reliability.cache.context} context, ${status.reliability.cache.policy} policy, ${status.reliability.trustKeys} pinned key(s)`,
3817
+ status: status.reliability.trustKeys > 0 || unused ? "ok" : "warning",
3818
+ detail: status.reliability.trustKeys === 0 && unused
3819
+ ? "empty until the first prompt"
3820
+ : `${status.reliability.cache.context} context, ${status.reliability.cache.policy} policy, ${status.reliability.trustKeys} pinned key(s)`,
3745
3821
  });
3746
3822
  const operational = status.reliability.operational;
3747
3823
  const detectedFailures = operational.guard.failures + operational.retrieval.failed;
@@ -3806,7 +3882,7 @@ async function printCommandHelp(path) {
3806
3882
  process.stdout.write(DOCTOR_HELP);
3807
3883
  return;
3808
3884
  case "capture":
3809
- process.stdout.write(CAPTURE_HELP);
3885
+ process.stdout.write(topic.subcommand === "repair" ? CAPTURE_REPAIR_HELP : CAPTURE_HELP);
3810
3886
  return;
3811
3887
  case "embeddings":
3812
3888
  await runEmbeddingsCommand(args, null);
@@ -3835,6 +3911,9 @@ async function printCommandHelp(path) {
3835
3911
  case "remember":
3836
3912
  await runRememberCommand(args, null);
3837
3913
  return;
3914
+ case "drafts":
3915
+ await runDraftsCommand(args, null);
3916
+ return;
3838
3917
  case "approach":
3839
3918
  await runApproachCommand(args, null);
3840
3919
  return;
@@ -3929,7 +4008,7 @@ async function executeCli(args = process.argv.slice(2)) {
3929
4008
  return;
3930
4009
  }
3931
4010
  const commandArgs = args.slice(1);
3932
- if (["ask", "chat", "learnings", "review", "remember", "share", "resume", "continue", "approach", "skill"].includes(command) && !(command === "skill" && commandArgs[0] === "discover")) {
4011
+ if (["ask", "chat", "learnings", "review", "remember", "drafts", "share", "resume", "continue", "approach", "skill"].includes(command) && !(command === "skill" && commandArgs[0] === "discover")) {
3933
4012
  const decision = await checkDirectory(process.cwd(), getLorePaths(["approach", "skill"].includes(command) ? process.env.LORE_HOME : undefined).home);
3934
4013
  if (!decision.allowed)
3935
4014
  throw new Error(`Lore is off in this folder. ${decision.reason}`);
@@ -3984,6 +4063,9 @@ async function executeCli(args = process.argv.slice(2)) {
3984
4063
  case "remember":
3985
4064
  await runRememberCommand(commandArgs, await readConnectorConfig(getLorePaths(), process.cwd()));
3986
4065
  return;
4066
+ case "drafts":
4067
+ await runDraftsCommand(commandArgs, await readConnectorConfig(getLorePaths(), process.cwd()));
4068
+ return;
3987
4069
  case "approach":
3988
4070
  await runApproachCommand(commandArgs, await readConnectorConfig(getLorePaths(process.env.LORE_HOME), process.cwd()));
3989
4071
  return;