@lore-co/cli 0.2.32 → 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.
- package/README.md +14 -5
- package/dist/capture-scope.d.ts +2 -0
- package/dist/capture-scope.d.ts.map +1 -1
- package/dist/capture-scope.js +2 -0
- package/dist/capture-scope.js.map +1 -1
- package/dist/cli.d.ts +7 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +107 -16
- package/dist/cli.js.map +1 -1
- package/dist/connect-project.js +1 -1
- package/dist/connect-project.js.map +1 -1
- package/dist/connections.d.ts +3 -0
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +20 -1
- package/dist/connections.js.map +1 -1
- package/dist/generated-assets.d.ts +5 -5
- package/dist/generated-assets.js +5 -5
- package/dist/generic-mcp.d.ts +4 -1
- package/dist/generic-mcp.d.ts.map +1 -1
- package/dist/generic-mcp.js +6 -2
- package/dist/generic-mcp.js.map +1 -1
- package/dist/mcp-config.d.ts +1 -1
- package/dist/mcp-config.d.ts.map +1 -1
- package/dist/mcp-config.js +6 -1
- package/dist/mcp-config.js.map +1 -1
- package/dist/runtime-redaction.d.ts.map +1 -1
- package/dist/runtime-redaction.js +53 -3
- package/dist/runtime-redaction.js.map +1 -1
- package/dist/runtime.d.ts +15 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +70 -9
- package/dist/runtime.js.map +1 -1
- package/dist/self-host.d.ts +2 -2
- package/dist/self-host.d.ts.map +1 -1
- package/dist/self-host.js +5 -4
- package/dist/self-host.js.map +1 -1
- package/dist/skills.d.ts +5 -0
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +18 -4
- package/dist/skills.js.map +1 -1
- package/dist/update.js +3 -3
- 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.
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
package/dist/capture-scope.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/capture-scope.js
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;
|
|
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:
|
|
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>
|
|
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(
|
|
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:
|
|
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(
|
|
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:
|
|
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: {
|
|
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
|
|
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}.`] : []),
|
|
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",
|