@lore-co/cli 0.2.33 → 0.2.34

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 (42) hide show
  1. package/README.md +14 -5
  2. package/dist/capture-scope.d.ts +2 -0
  3. package/dist/capture-scope.d.ts.map +1 -1
  4. package/dist/capture-scope.js +2 -0
  5. package/dist/capture-scope.js.map +1 -1
  6. package/dist/cli.d.ts +7 -2
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +107 -16
  9. package/dist/cli.js.map +1 -1
  10. package/dist/connect-project.js +1 -1
  11. package/dist/connect-project.js.map +1 -1
  12. package/dist/connections.d.ts +3 -0
  13. package/dist/connections.d.ts.map +1 -1
  14. package/dist/connections.js +20 -1
  15. package/dist/connections.js.map +1 -1
  16. package/dist/generated-assets.d.ts +5 -5
  17. package/dist/generated-assets.js +5 -5
  18. package/dist/generic-mcp.d.ts +4 -1
  19. package/dist/generic-mcp.d.ts.map +1 -1
  20. package/dist/generic-mcp.js +6 -2
  21. package/dist/generic-mcp.js.map +1 -1
  22. package/dist/mcp-config.d.ts +1 -1
  23. package/dist/mcp-config.d.ts.map +1 -1
  24. package/dist/mcp-config.js +6 -1
  25. package/dist/mcp-config.js.map +1 -1
  26. package/dist/runtime-redaction.d.ts.map +1 -1
  27. package/dist/runtime-redaction.js +53 -3
  28. package/dist/runtime-redaction.js.map +1 -1
  29. package/dist/runtime.d.ts +15 -1
  30. package/dist/runtime.d.ts.map +1 -1
  31. package/dist/runtime.js +70 -9
  32. package/dist/runtime.js.map +1 -1
  33. package/dist/self-host.d.ts +2 -2
  34. package/dist/self-host.d.ts.map +1 -1
  35. package/dist/self-host.js +5 -4
  36. package/dist/self-host.js.map +1 -1
  37. package/dist/skills.d.ts +5 -0
  38. package/dist/skills.d.ts.map +1 -1
  39. package/dist/skills.js +18 -4
  40. package/dist/skills.js.map +1 -1
  41. package/dist/update.js +3 -3
  42. package/package.json +4 -4
package/README.md CHANGED
@@ -28,9 +28,12 @@ lore doctor
28
28
 
29
29
  The package requires Node.js 22 or newer and installs the `lore` command.
30
30
 
31
+ For IBM Bob, run `lore connect --login --folder . --agent bob`, then restart
32
+ Bob. Bob Shell reads the same settings.
33
+
31
34
  In Connect, **This project** asks your agent to confirm the current folder. **Choose another project** offers a native folder picker, GitHub selection, and manual path entry. The CLI also supports `--current-project` (interactive confirmation), `--choose-folder` (a picker on this machine), and `--repository github.com/owner/repo` alongside a folder choice to verify its Git origin. Cancelling or choosing a mismatched checkout stops setup before recording. GitHub selection does not change workspace policy.
32
35
 
33
- Run setup from the project you want to record: `--folder .` includes that folder and its subfolders. Repeat `--folder <path>` for additional folders, or choose `--all-projects` explicitly. New connections stay paused without a capture choice; reconnecting without one preserves your existing rules. Existing exclusions remain in effect. Add `--no-capture` (or run `lore capture off`) for retrieval-only mode: context, Guard, `lore ask`, and `lore remember` without automatic turn recording; `lore capture on` turns it back on. Use `lore scope check <folder>` to verify. Learning repository scope controls where knowledge applies and is separate from capture scope.
36
+ Run setup from the project you want to record: `--folder .` includes that folder and its subfolders. Run it again in each project you want Lore in: every `--folder` adds to the saved folders, `--replace-folders` records only in the folders given, and `--all-projects` records everywhere the workspace allows. New connections stay paused without a capture choice; reconnecting without one preserves your existing rules. Existing exclusions remain in effect. Add `--no-capture` (or run `lore capture off`) for retrieval-only mode: context, Guard, `lore ask`, and `lore remember` without automatic turn recording; `lore capture on` turns it back on. Use `lore scope check <folder>` to verify. Learning repository scope controls where knowledge applies and is separate from capture scope.
34
37
 
35
38
  ### Windows
36
39
 
@@ -282,7 +285,8 @@ your agent afterwards. Setup replaces the previous `lore-remember` skill with
282
285
  Claude Code also supports `/lore`; Codex supports `$lore`.
283
286
 
284
287
  The skill is installed in `~/.agents/skills/lore` for Codex, Cursor, Copilot and
285
- OpenCode, and in the configured Claude directory's `skills/lore`. Cowork and
288
+ OpenCode, in the configured Claude directory's `skills/lore`, and in
289
+ `~/.bob/skills/lore` for IBM Bob, where `/recap` is also available. Cowork and
286
290
  Copilot bundles include it too. Polytoken does not receive a skill installation.
287
291
 
288
292
  Installation paths follow the official [Codex](https://developers.openai.com/codex/skills),
@@ -321,6 +325,11 @@ OpenCode now also registers the Lore MCP server (`~/.copilot/mcp-config.json`,
321
325
  `mcp.lore` in `opencode.json`) so the agent has its tools. See
322
326
  [Lore as an agent](../../docs/guides/lore-agent.md).
323
327
 
328
+ VS Code 1.143 and later runs Copilot chat through the Copilot CLI, which loads
329
+ the Copilot CLI hooks together with a repository's `.github/hooks`. On a machine
330
+ with Copilot CLI connected, the `copilot-vscode` repository hook stands down so
331
+ each prompt reaches Lore once, and `lore doctor` says so.
332
+
324
333
  ## Save knowledge manually
325
334
 
326
335
  ```sh
@@ -427,7 +436,7 @@ content-free `guard_check` audit event.
427
436
 
428
437
  ```sh
429
438
  lore update
430
- lore update --version v0.2.33
439
+ lore update --version v0.2.34
431
440
  ```
432
441
 
433
442
  `update` resolves the latest release to an exact tag, or uses the exact
@@ -450,7 +459,7 @@ receive timestamped backups, and customer-edited skill files are preserved with
450
459
  a warning. The report is by agent and lists only what you need to do:
451
460
 
452
461
  ```text
453
- ✓ Lore 0.2.33 is installed
462
+ ✓ Lore 0.2.34 is installed
454
463
  ✓ Updated Lore for Claude Code and Codex
455
464
 
456
465
  Next
@@ -823,7 +832,7 @@ same-repository, non-draft pull requests bearing the corresponding
823
832
  `lore:codex-review` or `lore:devin-review` label.
824
833
 
825
834
  Generated jobs require a published standalone binary release and default to
826
- `treadiehq/lore-releases` at `v0.2.33`. Set `LORE_CLI_REPOSITORY` to the publicly
835
+ `treadiehq/lore-releases` at `v0.2.34`. Set `LORE_CLI_REPOSITORY` to the publicly
827
836
  readable `owner/repository` and `LORE_CLI_VERSION` to an existing release tag
828
837
  when using another release source.
829
838
 
@@ -3,6 +3,8 @@ export interface CaptureScopeOptions {
3
3
  folders?: readonly string[];
4
4
  allProjects?: boolean;
5
5
  repository?: string;
6
+ /** --replace-folders: record only in the folders given, dropping the saved ones. Without it, --folder adds to them. */
7
+ replaceFolders?: boolean;
6
8
  }
7
9
  /** Validate the choice on the recording machine before installing any hooks. */
8
10
  export declare function captureDirectories(options: CaptureScopeOptions, home: string, cwd?: string): Promise<DirectoryRules | null | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"capture-scope.d.ts","sourceRoot":"","sources":["../src/capture-scope.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAAG,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;AAEhH,gFAAgF;AAChF,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAgB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,CAgBpJ;AAID,mFAAmF;AACnF,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAIhF;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/F"}
1
+ {"version":3,"file":"capture-scope.d.ts","sourceRoot":"","sources":["../src/capture-scope.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uHAAuH;IACvH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,gFAAgF;AAChF,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAgB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,CAiBpJ;AAID,mFAAmF;AACnF,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAIhF;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/F"}
@@ -10,6 +10,8 @@ export async function captureDirectories(options, home, cwd = process.cwd()) {
10
10
  throw new Error("--repository needs a GitHub repository and a local --folder or --choose-folder selection.");
11
11
  if (options.allProjects && options.folders !== undefined)
12
12
  throw new Error("Use --folder or --all-projects, not both.");
13
+ if (options.replaceFolders && (options.allProjects || options.folders === undefined))
14
+ throw new Error("--replace-folders needs --folder, --current-project, or --choose-folder.");
13
15
  if (options.allProjects)
14
16
  return null;
15
17
  if (options.folders === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"capture-scope.js","sourceRoot":"","sources":["../src/capture-scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture-scope.js","sourceRoot":"","sources":["../src/capture-scope.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -11,9 +11,11 @@ import { type ReliabilityStoreInspection } from "./reliability-store.js";
11
11
  export declare const LORE_OPENCODE_PLUGIN = "@lore-co/opencode";
12
12
  export declare const DEFAULT_HOSTED_API_URL = "https://api.uselore.co";
13
13
  export declare const DEFAULT_HOSTED_DASHBOARD_URL = "https://uselore.co";
14
- declare const CONFIGURED_AGENT_NAMES: readonly ["claude", "codex", "copilot-cli", "copilot-vscode", "cursor", "opencode", "polytoken"];
14
+ declare const CONFIGURED_AGENT_NAMES: readonly ["bob", "claude", "codex", "copilot-cli", "copilot-vscode", "cursor", "opencode", "polytoken"];
15
15
  export type ConfiguredAgentName = (typeof CONFIGURED_AGENT_NAMES)[number];
16
16
  export type ConnectAgentName = ConfiguredAgentName | "copilot" | "cowork" | "devin" | "generic" | "t3code";
17
+ /** Agents whose hooks file takes Claude Code's `hooks` shape. */
18
+ type ClaudeShapedHookAgent = Extract<CommandHookAgentName, "bob" | "claude" | "codex" | "copilot-vscode">;
17
19
  /** Capture mode of a connection: absent means on. */
18
20
  export declare function captureEnabled(config: Pick<ConnectorConfig, "capture"> | null | undefined): boolean;
19
21
  export interface LorePaths {
@@ -31,6 +33,7 @@ export interface LorePaths {
31
33
  runtimePackage: string;
32
34
  state: string;
33
35
  queue: string;
36
+ bobSettings: string;
34
37
  codexHooks: string;
35
38
  copilotCliHooks: string;
36
39
  copilotVscodeHooks: string;
@@ -87,7 +90,7 @@ interface ExternalSurfaceStatus {
87
90
  capabilities: DeepReadonly<ReliabilityIntegrationManifest["capabilities"]>;
88
91
  }
89
92
  export declare function getLorePaths(home?: string, environment?: NodeJS.ProcessEnv, cwd?: string): LorePaths;
90
- export declare function mergeLoreHooks(input: Record<string, unknown>, agent: CommandHookAgentName, paths: LorePaths, capture?: boolean): Record<string, unknown>;
93
+ export declare function mergeLoreHooks(input: Record<string, unknown>, agent: ClaudeShapedHookAgent, paths: LorePaths, capture?: boolean): Record<string, unknown>;
91
94
  export declare function removeLoreHooks(input: Record<string, unknown>): Record<string, unknown>;
92
95
  export declare function countLoreHooks(input: Record<string, unknown>): number;
93
96
  export declare function mergeLoreCursorMcp(input: unknown, paths: LorePaths): Record<string, unknown>;
@@ -192,6 +195,8 @@ export interface ConnectResult {
192
195
  mode: "on" | "off";
193
196
  folders: string[] | null;
194
197
  excludedFolders: string[];
198
+ /** Set when this run chose folders for a saved connection: its folders before, null for all projects. */
199
+ previousFolders?: string[] | null;
195
200
  };
196
201
  skillFiles: string[];
197
202
  /** Lore agent definitions installed for the connected harnesses. */
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
@@ -22,7 +22,7 @@ import { basename, dirname, resolve, sep } from "node:path";
22
22
  import { homedir, hostname, platform } from "node:os";
23
23
  import { setTimeout as delay } from "node:timers/promises";
24
24
  import { fileURLToPath, pathToFileURL } from "node:url";
25
- import { CLAUDE_RELIABILITY_INTEGRATION, CODEX_RELIABILITY_INTEGRATION, COPILOT_CLI_RELIABILITY_INTEGRATION, COPILOT_CLOUD_MCP_RELIABILITY_INTEGRATION, COPILOT_VSCODE_PREVIEW_RELIABILITY_INTEGRATION, CreateDeviceAuthorizationResponseSchema, CURSOR_RELIABILITY_INTEGRATION, NATIVE_CODING_AGENT_NAMES, OPENCODE_RELIABILITY_INTEGRATION, OperationalMetricsResponseSchema, PollDeviceAuthorizationResponseSchema, POLYTOKEN_RELIABILITY_INTEGRATION, RELIABILITY_INTEGRATION_CONTRACT_VERSION, ReliabilityInvocationRecordSchema, WorkspaceIdentityResponseSchema, canonicalJson, deriveReliabilityInvocationHealth, isNativeCodingAgent, } from "@lore-co/core";
25
+ import { BOB_RELIABILITY_INTEGRATION, CLAUDE_RELIABILITY_INTEGRATION, CODEX_RELIABILITY_INTEGRATION, COPILOT_CLI_RELIABILITY_INTEGRATION, COPILOT_CLOUD_MCP_RELIABILITY_INTEGRATION, COPILOT_VSCODE_PREVIEW_RELIABILITY_INTEGRATION, CreateDeviceAuthorizationResponseSchema, CURSOR_RELIABILITY_INTEGRATION, NATIVE_CODING_AGENT_NAMES, OPENCODE_RELIABILITY_INTEGRATION, OperationalMetricsResponseSchema, PollDeviceAuthorizationResponseSchema, POLYTOKEN_RELIABILITY_INTEGRATION, RELIABILITY_INTEGRATION_CONTRACT_VERSION, ReliabilityInvocationRecordSchema, WorkspaceIdentityResponseSchema, canonicalJson, deriveReliabilityInvocationHealth, isNativeCodingAgent, } from "@lore-co/core";
26
26
  import { runHook, } from "./runtime.js";
27
27
  import { readInvocationHealthWriteInput, runInvocationHealthWrite, } from "./invocation-health-writer.js";
28
28
  import { runAskCommand } from "./ask.js";
@@ -69,6 +69,11 @@ const HOOK_EVENTS = [
69
69
  "Stop",
70
70
  "SessionEnd",
71
71
  ];
72
+ /** IBM Bob's lifecycle hooks: the Claude Code shape, without SessionEnd. */
73
+ const BOB_HOOK_EVENTS = ["UserPromptSubmit", "PreToolUse", "Stop"];
74
+ function claudeShapedHookEvents(agent) {
75
+ return agent === "bob" ? BOB_HOOK_EVENTS : HOOK_EVENTS;
76
+ }
72
77
  /**
73
78
  * Hook events that exist only to record turns. Retrieval-only mode leaves them
74
79
  * uninstalled, so the agent never hands a response to Lore at all.
@@ -85,6 +90,11 @@ export function captureEnabled(config) {
85
90
  }
86
91
  /** Tools the Context Guard PreToolUse hook cares about (regex matcher). */
87
92
  const GUARD_TOOL_MATCHER = "Edit|Write|MultiEdit|NotebookEdit|ApplyPatch|apply_patch|edit|write|patch|str_replace_editor|Bash|bash|Shell|shell|exec_command|shell_command|run_terminal_cmd";
93
+ /** IBM Bob's file-writing and command tools (extension 2.2.3); Bob matches the regex against the tool name. */
94
+ const BOB_GUARD_TOOL_MATCHER = "^(write_file|apply_diff|insert_content|search_and_replace|execute_command)$";
95
+ function guardToolMatcher(agent) {
96
+ return agent === "bob" ? BOB_GUARD_TOOL_MATCHER : GUARD_TOOL_MATCHER;
97
+ }
88
98
  const CURSOR_HOOK_EVENTS = [
89
99
  "sessionStart",
90
100
  "beforeSubmitPrompt",
@@ -115,6 +125,7 @@ const EXTERNAL_SURFACES = [
115
125
  const AGENT_MANIFESTS = {
116
126
  claude: CLAUDE_RELIABILITY_INTEGRATION,
117
127
  codex: CODEX_RELIABILITY_INTEGRATION,
128
+ bob: BOB_RELIABILITY_INTEGRATION,
118
129
  "copilot-cli": COPILOT_CLI_RELIABILITY_INTEGRATION,
119
130
  "copilot-vscode": COPILOT_VSCODE_PREVIEW_RELIABILITY_INTEGRATION,
120
131
  cursor: CURSOR_RELIABILITY_INTEGRATION,
@@ -133,7 +144,8 @@ Options:
133
144
  --current-project Confirm and record the current Git project
134
145
  --choose-folder Open a folder picker on this machine
135
146
  --repository <repo> Verify the selected folder matches this GitHub repository
136
- --folder <path> Record only in this folder and subfolders (repeatable)
147
+ --folder <path> Also record in this folder and subfolders (repeatable)
148
+ --replace-folders With --folder: record only in the folders given, dropping saved ones
137
149
  --all-projects Record in all projects allowed by your workspace
138
150
  --no-capture Retrieval-only mode: context, guard, and manual saves, no turn recording
139
151
  --capture Turn automatic turn recording back on
@@ -142,7 +154,7 @@ Options:
142
154
  --login Approve access securely in the Lore dashboard
143
155
  --no-open Print the approval URL without opening a browser
144
156
  --token <token> Workspace bearer token (or LORE_WORKSPACE_TOKEN/LORE_TOKEN)
145
- --agent <name> claude, codex, copilot, copilot-cli, copilot-vscode, cowork, cursor, devin, generic, opencode, polytoken, or t3code
157
+ --agent <name> bob, claude, codex, copilot, copilot-cli, copilot-vscode, cowork, cursor, devin, generic, opencode, polytoken, or t3code
146
158
  --agent-id <id> With --agent generic: credit MCP saves to this agent (default: generic)
147
159
  --write With --agent generic: let the agent save through MCP (saves stay proposals)
148
160
  --timeout-ms <ms> Hook request timeout, 250-10000 (default: 2500)
@@ -153,6 +165,8 @@ Options:
153
165
  --help Show this command's help
154
166
 
155
167
  New connections stay paused until you choose a project, a folder, or --all-projects.
168
+ Each --folder adds to the folders the connection records. Only --replace-folders
169
+ drops saved folders, and the summary names each one it dropped.
156
170
  Reconnecting without a capture option keeps your saved folder rules and capture mode.
157
171
  Folder choices control where Lore runs; learning scope controls where knowledge applies.
158
172
  With --no-capture, Lore installs no Stop or SessionEnd hooks and sends no turns.
@@ -261,6 +275,7 @@ export function getLorePaths(home, environment = process.env, cwd = process.cwd(
261
275
  runtimePackage: resolve(loreDirectory, "bin", "package.json"),
262
276
  state: resolve(loreDirectory, "state"),
263
277
  queue: resolve(loreDirectory, "queue"),
278
+ bobSettings: resolve(resolvedHome, ".bob", "settings", "settings.json"),
264
279
  codexHooks: resolve(resolvedHome, ".codex", "hooks.json"),
265
280
  copilotCliHooks: resolve(copilotHome, "hooks", "lore.json"),
266
281
  copilotVscodeHooks: resolve(environment.LORE_COPILOT_VSCODE_HOOKS?.trim() ||
@@ -347,6 +362,9 @@ function hookTimeout(seconds) {
347
362
  return isWindows() ? Math.max(seconds, 10) : seconds;
348
363
  }
349
364
  function eventHandler(agent, event, paths) {
365
+ // Bob documents only type, command, matcher and timeout, and drops a hooks
366
+ // file its schema rejects, so its entries carry nothing undocumented.
367
+ const documented = agent === "bob";
350
368
  return {
351
369
  type: "command",
352
370
  command: hookCommand(agent, paths),
@@ -357,10 +375,10 @@ function eventHandler(agent, event, paths) {
357
375
  : event === "PreToolUse"
358
376
  ? 10
359
377
  : 25),
360
- ...(event === "UserPromptSubmit"
378
+ ...(event === "UserPromptSubmit" && !documented
361
379
  ? { statusMessage: "Loading Lore context" }
362
380
  : {}),
363
- ...(event === "PreToolUse"
381
+ ...(event === "PreToolUse" && !documented
364
382
  ? { statusMessage: "Checking Lore guard" }
365
383
  : {}),
366
384
  };
@@ -371,7 +389,7 @@ export function mergeLoreHooks(input, agent, paths, capture = true) {
371
389
  throw new Error("Agent configuration field \"hooks\" must be a JSON object");
372
390
  }
373
391
  const hooks = isObject(result.hooks) ? { ...result.hooks } : {};
374
- const installed = installedEvents(HOOK_EVENTS, capture);
392
+ const installed = installedEvents(claudeShapedHookEvents(agent), capture);
375
393
  for (const event of HOOK_EVENTS) {
376
394
  if (hooks[event] !== undefined && !Array.isArray(hooks[event])) {
377
395
  throw new Error(`Agent hook event "${event}" must be a JSON array`);
@@ -380,7 +398,7 @@ export function mergeLoreHooks(input, agent, paths, capture = true) {
380
398
  ...stripLoreFromEvent(hooks[event]),
381
399
  ...(installed.includes(event) ? [{
382
400
  // Guard checks run only for mutation-shaped tools.
383
- ...(event === "PreToolUse" ? { matcher: GUARD_TOOL_MATCHER } : {}),
401
+ ...(event === "PreToolUse" ? { matcher: guardToolMatcher(agent) } : {}),
384
402
  hooks: [eventHandler(agent, event, paths)],
385
403
  }] : []),
386
404
  ];
@@ -492,6 +510,9 @@ function loreMcpInvocation() {
492
510
  export function mcpConfigPath(agent, hooksPath) {
493
511
  const directory = dirname(hooksPath);
494
512
  switch (agent) {
513
+ case "bob":
514
+ // ~/.bob/settings/settings.json pairs with ~/.bob/settings/mcp.json.
515
+ return resolve(directory, "mcp.json");
495
516
  case "claude":
496
517
  // ~/.claude/settings.json pairs with ~/.claude.json; a CLAUDE_CONFIG_DIR keeps both inside it.
497
518
  return basename(directory) === ".claude"
@@ -888,14 +909,14 @@ function commandHookInstallationUnits(input, agent, paths, index, total, capture
888
909
  throw new Error(`${agent} configuration field "hooks" must be an object`);
889
910
  }
890
911
  const hooks = isObject(configuration.hooks) ? configuration.hooks : {};
891
- return installedEvents(HOOK_EVENTS, capture).map((event) => {
912
+ return installedEvents(claudeShapedHookEvents(agent), capture).map((event) => {
892
913
  const groups = hooks[event];
893
914
  if (groups !== undefined && !Array.isArray(groups)) {
894
915
  throw new Error(`${agent} hook event "${event}" must be an array`);
895
916
  }
896
917
  const candidates = Array.isArray(groups) ? groups : [];
897
918
  const expected = {
898
- ...(event === "PreToolUse" ? { matcher: GUARD_TOOL_MATCHER } : {}),
919
+ ...(event === "PreToolUse" ? { matcher: guardToolMatcher(agent) } : {}),
899
920
  hooks: [eventHandler(agent, event, paths)],
900
921
  };
901
922
  const ownedCount = candidates.reduce((count, candidate) => {
@@ -1027,6 +1048,7 @@ function openCodeInstallationUnits(input, paths, index, total) {
1027
1048
  }
1028
1049
  function inspectInstallationUnits(input, agent, paths, index, total, capture) {
1029
1050
  switch (agent) {
1051
+ case "bob":
1030
1052
  case "claude":
1031
1053
  case "codex":
1032
1054
  return commandHookInstallationUnits(input, agent, paths, index, total, capture);
@@ -1347,6 +1369,26 @@ async function pathExists(path) {
1347
1369
  return false;
1348
1370
  }
1349
1371
  }
1372
+ /**
1373
+ * IBM Bob: the desktop app bundle, or the `bob` (Bob Shell) and `bobide`
1374
+ * launchers on PATH. Bob installs the app in the platform's applications
1375
+ * folder and does not document a launcher, so the bundle is checked too.
1376
+ */
1377
+ async function bobAvailable(paths) {
1378
+ if ((await commandExists("bob")) || (await commandExists("bobide")))
1379
+ return true;
1380
+ const environment = process.env;
1381
+ const candidates = platform() === "darwin"
1382
+ ? ["/Applications/IBM Bob.app", resolve(paths.home, "Applications", "IBM Bob.app")]
1383
+ : isWindows()
1384
+ ? [environment.LOCALAPPDATA, environment.ProgramFiles, environment["ProgramFiles(x86)"]]
1385
+ .flatMap((root) => root ? [resolve(root, "Programs", "IBM Bob"), resolve(root, "IBM Bob")] : [])
1386
+ : ["/usr/share/ibm-bob", "/usr/share/bob", "/opt/IBM Bob", "/opt/ibm-bob", "/usr/lib/ibm-bob"];
1387
+ for (const candidate of candidates)
1388
+ if (await pathExists(candidate))
1389
+ return true;
1390
+ return false;
1391
+ }
1350
1392
  async function cursorAvailable(paths) {
1351
1393
  return ((await commandExists("cursor")) ||
1352
1394
  (await pathExists(paths.cursorUserData)));
@@ -1358,6 +1400,21 @@ function objectConfiguration(input, agent) {
1358
1400
  return input;
1359
1401
  }
1360
1402
  const AGENT_TARGETS = {
1403
+ bob: {
1404
+ integration: "hooks",
1405
+ // Three native hooks plus the Lore MCP server entry.
1406
+ expected: (capture) => installedEvents(BOB_HOOK_EVENTS, capture).length + 1,
1407
+ runtimeRequired: true,
1408
+ emptyValue: () => ({}),
1409
+ configPath: (paths) => paths.bobSettings,
1410
+ // Bob creates ~/.bob/settings on its first run; the app bundle alone does
1411
+ // not mean it is used in this home.
1412
+ detect: async (paths) => (await commandExists("bob")) || (await commandExists("bobide")) || pathExists(dirname(paths.bobSettings)),
1413
+ executable: bobAvailable,
1414
+ merge: (input, paths, capture) => mergeLoreHooks(objectConfiguration(input, "bob"), "bob", paths, capture),
1415
+ remove: (input) => removeLoreHooks(objectConfiguration(input, "bob")),
1416
+ count: (input) => countLoreHooks(objectConfiguration(input, "bob")),
1417
+ },
1361
1418
  claude: {
1362
1419
  integration: "hooks",
1363
1420
  // Native hooks plus the Lore MCP server entry.
@@ -2043,6 +2100,10 @@ function parseConnectArguments(args) {
2043
2100
  parsed.allProjects = true;
2044
2101
  continue;
2045
2102
  }
2103
+ if (argument === "--replace-folders") {
2104
+ parsed.replaceFolders = true;
2105
+ continue;
2106
+ }
2046
2107
  if (argument === "--write") {
2047
2108
  parsed.writeTools = true;
2048
2109
  continue;
@@ -2098,7 +2159,7 @@ function parseConnectArguments(args) {
2098
2159
  parsed.agents.push(value);
2099
2160
  }
2100
2161
  else {
2101
- throw new Error("--agent must be claude, codex, copilot, copilot-cli, copilot-vscode, cowork, cursor, devin, generic, opencode, polytoken, or t3code");
2162
+ throw new Error("--agent must be bob, claude, codex, copilot, copilot-cli, copilot-vscode, cowork, cursor, devin, generic, opencode, polytoken, or t3code");
2102
2163
  }
2103
2164
  }
2104
2165
  validateConnectProjectOptions(parsed);
@@ -2170,7 +2231,7 @@ async function connectWithCredentialLocked(options, identity) {
2170
2231
  : await authenticatedIdentity(existing.apiUrl, existing.token, timeoutMs).catch(() => undefined)
2171
2232
  : undefined;
2172
2233
  const directories = await captureDirectories(options, paths.home, options.cwd);
2173
- const connection = await prepareConnection(paths, identity, { apiUrl, token, ...(directories === undefined ? {} : { directories }), ...(options.connectionName ? { connectionName: options.connectionName } : {}) }, previousIdentity);
2234
+ const connection = await prepareConnection(paths, identity, { apiUrl, token, ...(directories === undefined ? {} : { directories }), ...(options.replaceFolders ? { replaceFolders: true } : {}), ...(options.connectionName ? { connectionName: options.connectionName } : {}) }, previousIdentity);
2174
2235
  await secureWindowsDirectory(paths.loreDirectory);
2175
2236
  const recoveryEnv = options.home === undefined ? process.env : { ...process.env, ZDOTDIR: paths.home };
2176
2237
  let recoveryWarning;
@@ -2223,7 +2284,7 @@ async function connectWithCredentialLocked(options, identity) {
2223
2284
  // An MCP-only agent has no hooks or settings Lore can edit; it gets the skills and a printed entry.
2224
2285
  const genericAgent = options.agents.includes(GENERIC_AGENT) ? options.genericAgent ?? { id: GENERIC_AGENT, writeTools: false } : undefined;
2225
2286
  if (agents.length === 0 && credentialOnlyAgents.length === 0 && genericAgent === undefined) {
2226
- throw new Error("No Claude, Codex, Copilot CLI, Cursor, OpenCode, or Polytoken installation detected. Use --agent <name>; T3 Code users can use --agent t3code, and Devin CLI users --agent devin.");
2287
+ throw new Error("No Claude, Codex, Copilot CLI, Cursor, IBM Bob, OpenCode, or Polytoken installation detected. Use --agent <name>; T3 Code users can use --agent t3code, and Devin CLI users --agent devin.");
2227
2288
  }
2228
2289
  const now = new Date();
2229
2290
  // Reconnecting without a capture option keeps the saved mode, like folder rules.
@@ -2285,6 +2346,7 @@ async function connectWithCredentialLocked(options, identity) {
2285
2346
  const loreAgent = await installLoreAgent(paths, installations);
2286
2347
  if (genericAgent)
2287
2348
  await recordGenericAgent(paths.loreDirectory, genericAgent, now);
2349
+ const folder = await firstMessageFolder(options.cwd ?? process.cwd(), config.directories, paths.home);
2288
2350
  // An unchanged reconnect: same server, credential, and workspace, every
2289
2351
  // configured agent was already configured, and no agent file was rewritten.
2290
2352
  const alreadyConnected = existing !== null &&
@@ -2304,12 +2366,15 @@ async function connectWithCredentialLocked(options, identity) {
2304
2366
  const codexNeedsApproval = !installedAgents.includes("codex") &&
2305
2367
  changedHookFiles.some((path) => codexHookPaths.includes(path));
2306
2368
  return {
2307
- capture: { mode: capture ? "on" : "off", folders: config.directories?.include ?? null, excludedFolders: config.directories?.exclude ?? [] },
2369
+ capture: {
2370
+ mode: capture ? "on" : "off", folders: config.directories?.include ?? null, excludedFolders: config.directories?.exclude ?? [],
2371
+ ...(directories === undefined || connection.previousRules === undefined ? {} : { previousFolders: connection.previousRules === null ? null : connection.previousRules.include }),
2372
+ },
2308
2373
  skillFiles: skills.files,
2309
2374
  agentFiles: loreAgent.files,
2310
2375
  ...(genericAgent ? { genericAgent: {
2311
2376
  ...genericAgent,
2312
- mcpServers: genericMcpServers(loreMcpInvocation(), paths.home, genericAgent).mcpServers,
2377
+ mcpServers: genericMcpServers(loreMcpInvocation(), paths.home, genericAgent, folder).mcpServers,
2313
2378
  instructions: genericInstructions(genericAgent.id, skills.files.filter((file) => file.startsWith(resolve(paths.home, ".agents", "skills")))),
2314
2379
  } } : {}),
2315
2380
  connected: true,
@@ -2320,11 +2385,14 @@ async function connectWithCredentialLocked(options, identity) {
2320
2385
  keptAgents,
2321
2386
  alreadyConnected,
2322
2387
  ...(knownDashboardUrl === undefined ? {} : { dashboardUrl: knownDashboardUrl }),
2323
- folder: await firstMessageFolder(options.cwd ?? process.cwd(), config.directories, paths.home),
2388
+ folder,
2324
2389
  config: paths.config,
2325
2390
  changedHookFiles,
2326
2391
  backups,
2327
- warnings: [...skills.warnings, ...loreAgent.warnings, ...(connection.needsFolders ? [`Lore is off for ${config.connectionName} until you choose where to record. Reconnect with --folder <path> or --all-projects, or run lore config open --connection ${config.connectionName}.`] : []), ...requestedExpansion.warnings, ...hostRecoveryWarnings, ...(codexNeedsApproval
2392
+ warnings: [...skills.warnings, ...loreAgent.warnings, ...(connection.needsFolders ? [`Lore is off for ${config.connectionName} until you choose where to record. Reconnect with --folder <path> or --all-projects, or run lore config open --connection ${config.connectionName}.`] : []),
2393
+ // Folders chosen for a connection that already covers all projects change nothing.
2394
+ ...(directories && config.directories === undefined ? [`${config.connectionName} already covers all projects, including ${listText(directories.include)}. Add --replace-folders to record only there.`] : []),
2395
+ ...requestedExpansion.warnings, ...hostRecoveryWarnings, ...(codexNeedsApproval
2328
2396
  ? [CODEX_APPROVAL_WARNING]
2329
2397
  : [])],
2330
2398
  ...(recoveryNotice ? { recoveryNotice } : {}),
@@ -2476,6 +2544,8 @@ async function acknowledgeDeviceAuthorization(apiUrl, authorization) {
2476
2544
  /** The exact step each agent needs before Lore records its first turn. */
2477
2545
  export function connectNextStep(agent) {
2478
2546
  switch (agent) {
2547
+ case "bob":
2548
+ return "Restart IBM Bob.";
2479
2549
  case "claude":
2480
2550
  return "Restart Claude Code and allow the lore MCP server when it asks.";
2481
2551
  case "codex":
@@ -2514,6 +2584,7 @@ const CODEX_APPROVAL_WARNING = "Codex requires hook approval. Open /hooks in Cod
2514
2584
  /** Product names for human output; --json keeps the agent ids. */
2515
2585
  export function agentDisplayName(agent) {
2516
2586
  switch (agent) {
2587
+ case "bob": return "IBM Bob";
2517
2588
  case "claude": return "Claude Code";
2518
2589
  case "codex": return "Codex";
2519
2590
  case "copilot":
@@ -2569,6 +2640,11 @@ export function formatConnectResult(result, options = {}) {
2569
2640
  ? `Already connected to ${result.identity.workspaceName}, nothing changed`
2570
2641
  : `Connected to ${result.identity.workspaceName}`);
2571
2642
  out.note(`${records ? "Recording in" : "Lore runs in"} ${shownFolders}${excluded}${out.separator}${mode}`);
2643
+ // Folders this run stopped recording in, so a replaced list never turns Lore off somewhere silently.
2644
+ const previous = result.capture.previousFolders;
2645
+ const stopped = previous === undefined || folders === null ? [] : previous === null ? ["other projects"] : previous.filter((folder) => !folders.includes(folder)).map((folder) => out.path(folder));
2646
+ if (stopped.length)
2647
+ out.note(`${records ? "No longer recording in" : "Lore no longer runs in"} ${listText(stopped)}.`);
2572
2648
  if (generic !== undefined && !nothingRecords)
2573
2649
  out.note(`${generic.id} is MCP-only: Lore saves only what you ask it to.`);
2574
2650
  // One row per agent: set up in this run first, then the ones kept as they were.
@@ -3739,7 +3815,22 @@ async function doctorCommand(args) {
3739
3815
  detail: IS_STANDALONE_BINARY ? process.execPath : paths.runtime,
3740
3816
  });
3741
3817
  }
3818
+ // The Copilot runtime behind Copilot CLI and VS Code 1.143+ loads both the
3819
+ // user-level hooks and a repository's .github/hooks, so the repository hook
3820
+ // stands down wherever the CLI hooks file holds Lore hooks (the runtime's
3821
+ // copilotCliHooksServeHost check); their own row reports their health.
3822
+ const copilotCliHooks = status.agents.find((item) => item.agent === "copilot-cli");
3823
+ const copilotCliServesVsCode = copilotCliHooks?.configured === true &&
3824
+ !["missing", "invalid"].includes(copilotCliHooks.installation.state);
3742
3825
  for (const agent of status.agents.filter((item) => item.configured)) {
3826
+ if (agent.agent === "copilot-vscode" && copilotCliServesVsCode) {
3827
+ checks.push({
3828
+ name: "copilot-vscode-hooks",
3829
+ status: "ok",
3830
+ detail: "standing down: the Copilot CLI hooks on this machine handle VS Code too, so each prompt reaches Lore once",
3831
+ });
3832
+ continue;
3833
+ }
3743
3834
  checks.push({
3744
3835
  name: `${agent.agent}-executable`,
3745
3836
  status: agent.executable ? "ok" : "warning",