@hegel-dev/companion 1.0.7 → 1.0.9

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 (57) hide show
  1. package/README.md +14 -2
  2. package/dist/commands/cleanup.d.ts +3 -0
  3. package/dist/commands/cleanup.d.ts.map +1 -0
  4. package/dist/commands/cleanup.js +51 -0
  5. package/dist/commands/cleanup.js.map +1 -0
  6. package/dist/commands/init.d.ts +3 -0
  7. package/dist/commands/init.d.ts.map +1 -0
  8. package/dist/commands/init.js +142 -0
  9. package/dist/commands/init.js.map +1 -0
  10. package/dist/commands/types.d.ts +22 -0
  11. package/dist/commands/types.d.ts.map +1 -0
  12. package/dist/commands/types.js +23 -0
  13. package/dist/commands/types.js.map +1 -0
  14. package/dist/commands/update.d.ts +3 -0
  15. package/dist/commands/update.d.ts.map +1 -0
  16. package/dist/commands/update.js +90 -0
  17. package/dist/commands/update.js.map +1 -0
  18. package/dist/config.d.ts +0 -2
  19. package/dist/config.d.ts.map +1 -1
  20. package/dist/config.js +0 -1
  21. package/dist/config.js.map +1 -1
  22. package/dist/hook.d.ts +0 -17
  23. package/dist/hook.d.ts.map +1 -1
  24. package/dist/hook.js +3 -26
  25. package/dist/hook.js.map +1 -1
  26. package/dist/hooks-generator.d.ts +0 -4
  27. package/dist/hooks-generator.d.ts.map +1 -1
  28. package/dist/hooks-generator.js +2 -7
  29. package/dist/hooks-generator.js.map +1 -1
  30. package/dist/prompts.d.ts +2 -2
  31. package/dist/prompts.d.ts.map +1 -1
  32. package/dist/prompts.js +4 -24
  33. package/dist/prompts.js.map +1 -1
  34. package/dist/setup.d.ts +9 -90
  35. package/dist/setup.d.ts.map +1 -1
  36. package/dist/setup.js +24 -548
  37. package/dist/setup.js.map +1 -1
  38. package/dist/utils/install.d.ts +13 -0
  39. package/dist/utils/install.d.ts.map +1 -0
  40. package/dist/utils/install.js +112 -0
  41. package/dist/utils/install.js.map +1 -0
  42. package/dist/utils/package-manager.d.ts +11 -0
  43. package/dist/utils/package-manager.d.ts.map +1 -0
  44. package/dist/utils/package-manager.js +44 -0
  45. package/dist/utils/package-manager.js.map +1 -0
  46. package/dist/utils/path.d.ts +15 -0
  47. package/dist/utils/path.d.ts.map +1 -0
  48. package/dist/utils/path.js +20 -0
  49. package/dist/utils/path.js.map +1 -0
  50. package/dist/utils/workspace.d.ts +13 -0
  51. package/dist/utils/workspace.d.ts.map +1 -0
  52. package/dist/utils/workspace.js +79 -0
  53. package/dist/utils/workspace.js.map +1 -0
  54. package/hegel-vscode/hegel-companion-1.0.9.vsix +0 -0
  55. package/hegel.config.schema.json +0 -5
  56. package/package.json +1 -1
  57. package/hegel-vscode/hegel-companion-1.0.7.vsix +0 -0
package/README.md CHANGED
@@ -22,6 +22,8 @@ Runs in milliseconds, zero cost. Always active.
22
22
  ### Layer 2: LLM Deep Analysis (prompt hooks)
23
23
  Uses your Cursor subscription models. Optional, configurable.
24
24
 
25
+ - **Important Limitation:** Because of how Cursor currently implements `type: "prompt"` hooks, Layer 2 LLM evaluations are only presented as ephemeral blocking UI popups in the chat. They are *not* recorded in the session history and do not appear in the Hegel dashboard or MCP tools.
26
+ - When you pick a concrete model in settings (anything other than `auto`), setup regenerates `.cursor/hooks.json` so Layer 2 hooks request that routing ID explicitly.
25
27
  - Nuanced prompt quality evaluation beyond pattern matching
26
28
  - Contextual assessment of whether a prompt has enough detail for its intent
27
29
  - AI response review for missing edge cases, security blind spots, and scope creep
@@ -29,9 +31,11 @@ Uses your Cursor subscription models. Optional, configurable.
29
31
 
30
32
  ## Setup
31
33
 
32
- ### Install via npm
34
+ ### Installation
33
35
 
34
- Install the package and run the setup CLI from your Cursor project root:
36
+ Install the package and run the setup CLI from your Cursor project root. Hegel automatically detects and supports `npm`, `pnpm`, `yarn`, and `bun` based on your project lockfiles.
37
+
38
+ Using npm as an example:
35
39
 
36
40
  ```bash
37
41
  npm install --save-dev @hegel-dev/companion
@@ -66,6 +70,14 @@ If an older local install does not recognize `update`, run the same two commands
66
70
  above. The first command upgrades the CLI; the second refreshes hooks, MCP, and
67
71
  the bundled sidebar extension.
68
72
 
73
+ ### Clean Up Old Sessions
74
+
75
+ To recompute session states and prune stale concerns or bugs from older versions, run:
76
+
77
+ ```bash
78
+ npx hegel-companion cleanup .
79
+ ```
80
+
69
81
  ### Configure
70
82
 
71
83
  The easiest way to configure Hegel is through the **Cursor Settings UI**:
@@ -0,0 +1,3 @@
1
+ import type { SetupDeps } from "./types.js";
2
+ export declare function runCleanup(argv?: string[], deps?: SetupDeps): Promise<number>;
3
+ //# sourceMappingURL=cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,wBAAsB,UAAU,CAC9B,IAAI,GAAE,MAAM,EAAiB,EAC7B,IAAI,GAAE,SAAuB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAwDjB"}
@@ -0,0 +1,51 @@
1
+ import { resolve, join } from "node:path";
2
+ import { defaultDeps } from "./types.js";
3
+ export async function runCleanup(argv = process.argv, deps = defaultDeps) {
4
+ const rest = argv.slice(2);
5
+ const positional = rest.filter((a) => !a.startsWith("--"));
6
+ const targetDir = positional[1] ?? ".";
7
+ const projectPath = resolve(targetDir);
8
+ const stateDir = join(projectPath, ".hegel-state");
9
+ try {
10
+ await deps.access(stateDir);
11
+ }
12
+ catch {
13
+ deps.log(`No .hegel-state directory found in ${projectPath}`);
14
+ return 0;
15
+ }
16
+ const { pruneSupersededConcernsFromState, analyzeSession } = await import("../analyzers/session-analyzer.js");
17
+ deps.log(`Cleaning up session state in ${stateDir}...`);
18
+ let cleanedCount = 0;
19
+ const files = await deps.readdir(stateDir);
20
+ for (const file of files) {
21
+ if (!file.endsWith(".json"))
22
+ continue;
23
+ const filePath = join(stateDir, file);
24
+ try {
25
+ const content = await deps.readFile(filePath, "utf-8");
26
+ const state = JSON.parse(content);
27
+ if (!state.conversationId || !Array.isArray(state.concerns))
28
+ continue;
29
+ // 1. Remove all old session-level concerns to recompute them cleanly
30
+ state.concerns = state.concerns.filter((c) => c.sourceType !== "session");
31
+ // 2. Remove context-drift bug where sourceText contains "Hegel Session Review"
32
+ state.concerns = state.concerns.filter((c) => !(c.category === "context-drift" && c.sourceText && c.sourceText.includes("Hegel Session Review")));
33
+ // 3. Prune superseded response concerns (untested-changes, missing-verification)
34
+ pruneSupersededConcernsFromState(state, null);
35
+ // 4. Recompute session-level concerns
36
+ const { concerns: newSessionConcerns } = analyzeSession(state, null);
37
+ for (const c of newSessionConcerns) {
38
+ c.sourceType = "session";
39
+ state.concerns.push(c);
40
+ }
41
+ await deps.writeFile(filePath, JSON.stringify(state, null, 2), "utf-8");
42
+ cleanedCount++;
43
+ }
44
+ catch (err) {
45
+ deps.log(` Failed to process ${file}: ${err instanceof Error ? err.message : String(err)}`);
46
+ }
47
+ }
48
+ deps.log(`✅ Cleaned up ${cleanedCount} session files.`);
49
+ return 0;
50
+ }
51
+ //# sourceMappingURL=cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SetupDeps } from "./types.js";
2
+ export declare function runInit(argv?: string[], deps?: SetupDeps): Promise<number>;
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,wBAAsB,OAAO,CAC3B,IAAI,GAAE,MAAM,EAAiB,EAC7B,IAAI,GAAE,SAAuB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAmJjB"}
@@ -0,0 +1,142 @@
1
+ import { resolve, join } from "node:path";
2
+ import { configHash } from "../hooks-generator.js";
3
+ import { findAncestorHegelInstall, COMPANION_RULE } from "../utils/workspace.js";
4
+ import { installVsCodeExtension } from "../utils/install.js";
5
+ import { defaultDeps } from "./types.js";
6
+ export async function runInit(argv = process.argv, deps = defaultDeps) {
7
+ const rest = argv.slice(2);
8
+ const forceFlag = rest.includes("--force");
9
+ const positional = rest.filter((a) => !a.startsWith("--"));
10
+ let targetDir = positional[0];
11
+ if (targetDir === "init" && positional[1]) {
12
+ targetDir = positional[1];
13
+ }
14
+ const projectPath = resolve(targetDir);
15
+ // Refuse to nest a Hegel install inside another one.
16
+ const ancestor = await findAncestorHegelInstall(projectPath, deps.access);
17
+ if (ancestor && !forceFlag) {
18
+ deps.error(`Error: ${ancestor} already has a Hegel install.`);
19
+ deps.error(` Refusing to scaffold a nested install at ${projectPath}.`);
20
+ deps.error(` If this is intentional, rerun with --force.`);
21
+ return 1;
22
+ }
23
+ const config = await deps.loadConfig(projectPath);
24
+ const hooksFile = join(projectPath, ".cursor", "hooks.json");
25
+ const hegelRoot = deps.resolveHegelRoot();
26
+ const isSourceRepo = resolve(projectPath) === resolve(hegelRoot);
27
+ const existingHooks = await deps.readFile(hooksFile, "utf-8").catch(() => null);
28
+ if (existingHooks) {
29
+ deps.log(`Existing Hegel install detected at ${projectPath}.`);
30
+ if (isSourceRepo) {
31
+ deps.log(" (running against the Hegel source repo — will use local dist/ paths)");
32
+ }
33
+ if (!forceFlag) {
34
+ deps.log(" hooks.json will be rewritten only if the config hash differs.");
35
+ deps.log(" Pass --force to rewrite unconditionally.");
36
+ }
37
+ }
38
+ const hooksWritten = await deps.writeHooksFile(projectPath, config, forceFlag);
39
+ if (!hooksWritten && existingHooks) {
40
+ deps.log(`hooks.json is already up to date (config hash ${configHash(config)})`);
41
+ }
42
+ // Write the Hegel Companion rule
43
+ const rulesDir = join(projectPath, ".cursor", "rules");
44
+ await deps.mkdir(rulesDir, { recursive: true });
45
+ await deps.writeFile(join(rulesDir, "hegel-companion.mdc"), COMPANION_RULE, "utf-8");
46
+ // Scaffold hegel.config.json if it doesn't exist
47
+ const configPath = join(projectPath, "hegel.config.json");
48
+ try {
49
+ const existingConfig = await deps.readFile(configPath, "utf-8").catch(() => null);
50
+ if (!existingConfig) {
51
+ const defaultConfig = {
52
+ "$schema": isSourceRepo
53
+ ? "./hegel.config.schema.json"
54
+ : "./node_modules/@hegel-dev/companion/hegel.config.schema.json",
55
+ "model": "auto",
56
+ "enableLlmAnalysis": true,
57
+ "timeoutSeconds": 15,
58
+ "strictness": "balanced"
59
+ };
60
+ await deps.writeFile(configPath, JSON.stringify(defaultConfig, null, 2) + "\n", "utf-8");
61
+ deps.log(`✅ Default hegel.config.json created`);
62
+ }
63
+ }
64
+ catch {
65
+ // Ignore
66
+ }
67
+ // Register MCP server in .cursor/mcp.json
68
+ const mcpConfigPath = join(projectPath, ".cursor", "mcp.json");
69
+ try {
70
+ let mcpConfig = { mcpServers: {} };
71
+ const existingMcp = await deps.readFile(mcpConfigPath, "utf-8").catch(() => null);
72
+ if (existingMcp) {
73
+ mcpConfig = JSON.parse(existingMcp);
74
+ if (!mcpConfig.mcpServers)
75
+ mcpConfig.mcpServers = {};
76
+ }
77
+ const mcpArgs = isSourceRepo
78
+ ? [join(hegelRoot, "dist", "mcp.js").replace(/\\/g, "/")]
79
+ : ["node_modules/@hegel-dev/companion/dist/mcp.js"];
80
+ mcpConfig.mcpServers["hegel-mcp"] = {
81
+ command: "node",
82
+ args: mcpArgs,
83
+ env: {
84
+ "HEGEL_WORKSPACE_ROOT": projectPath
85
+ }
86
+ };
87
+ await deps.writeFile(mcpConfigPath, JSON.stringify(mcpConfig, null, 2) + "\n", "utf-8");
88
+ deps.log(`✅ MCP server registered in .cursor/mcp.json`);
89
+ }
90
+ catch {
91
+ deps.log("Failed to register MCP server in .cursor/mcp.json");
92
+ }
93
+ // Install the VS Code extension
94
+ const vscodeDir = join(hegelRoot, "hegel-vscode");
95
+ const extensionResult = await installVsCodeExtension(vscodeDir, deps);
96
+ const model = config.model === "auto" ? "Cursor default" : config.model;
97
+ const mode = "active (will block on concerns)";
98
+ deps.log("");
99
+ deps.log(`✅ Hegel hooks written to ${hooksFile}`);
100
+ deps.log(`✅ Hegel Companion Rule written to ${join(rulesDir, "hegel-companion.mdc")}`);
101
+ deps.log(` Config hash: ${configHash(config)}`);
102
+ deps.log("");
103
+ deps.log(`Mode: ${mode}`);
104
+ deps.log("");
105
+ deps.log("Layers:");
106
+ deps.log(` Layer 1: Rule-based analysis (command hooks) — blocks on warning+`);
107
+ if (config.enableLlmAnalysis) {
108
+ deps.log(` Layer 2: LLM deep analysis (prompt hooks) — model: ${model} — blocks on concern`);
109
+ }
110
+ else {
111
+ deps.log(" Layer 2: LLM deep analysis — disabled (enableLlmAnalysis=false)");
112
+ }
113
+ deps.log("");
114
+ deps.log("Hot-reload: config changes are auto-detected on the next prompt.");
115
+ deps.log(" Change hegel.config.json → hooks.json is regenerated on the next");
116
+ deps.log(" beforeSubmitPrompt hook. Model changes on Layer 2 prompt hooks");
117
+ deps.log(" usually require a full Cursor restart to take effect.");
118
+ if (extensionResult.status !== "installed") {
119
+ deps.log("");
120
+ deps.log("⚠️ VS Code extension was NOT installed automatically.");
121
+ if (extensionResult.status === "vsix-not-found") {
122
+ deps.log(` Reason: ${extensionResult.reason}`);
123
+ deps.log(" The Hegel sidebar won't appear until a VSIX is built/installed.");
124
+ }
125
+ else if (extensionResult.status === "cursor-cli-missing") {
126
+ deps.log(` Reason: ${extensionResult.reason ?? "'cursor' CLI not found on PATH"}`);
127
+ deps.log(" Run this from a shell where the 'cursor' command is available");
128
+ deps.log(" (e.g. Cursor's built-in terminal, or with Cursor on your PATH):");
129
+ deps.log(` cursor --install-extension "${extensionResult.vsixPath}"`);
130
+ deps.log(" Then fully quit and reopen Cursor (not just Reload Window — the");
131
+ deps.log(" extension manifest is cached in the extension-host process).");
132
+ }
133
+ else {
134
+ deps.log(` Reason: ${extensionResult.reason ?? "unknown"}`);
135
+ deps.log(" You can retry manually:");
136
+ deps.log(` cursor --install-extension "${extensionResult.vsixPath}"`);
137
+ deps.log(" Then fully quit and reopen Cursor (not just Reload Window).");
138
+ }
139
+ }
140
+ return 0;
141
+ }
142
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { mkdir, writeFile, readdir, readFile, access, rm } from "node:fs/promises";
2
+ import { execFileSync } from "node:child_process";
3
+ import { writeHooksFile } from "../hooks-generator.js";
4
+ import type { HegelConfig } from "../config.js";
5
+ export interface SetupDeps {
6
+ loadConfig: (workspaceRoot?: string) => Promise<HegelConfig>;
7
+ writeHooksFile: typeof writeHooksFile;
8
+ mkdir: typeof mkdir;
9
+ writeFile: typeof writeFile;
10
+ readdir: typeof readdir;
11
+ readFile: typeof readFile;
12
+ access: typeof access;
13
+ rm: typeof rm;
14
+ execFileSync: typeof execFileSync;
15
+ log: (message: string) => void;
16
+ error: (message: string) => void;
17
+ resolveHegelRoot: () => string;
18
+ platform?: NodeJS.Platform;
19
+ env?: NodeJS.ProcessEnv;
20
+ }
21
+ export declare const defaultDeps: SetupDeps;
22
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/commands/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,eAAO,MAAM,WAAW,EAAE,SAezB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { mkdir, writeFile, readdir, readFile, access, rm } from "node:fs/promises";
2
+ import { execFileSync } from "node:child_process";
3
+ import { resolve, join, dirname } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { loadConfig } from "../config.js";
6
+ import { writeHooksFile } from "../hooks-generator.js";
7
+ export const defaultDeps = {
8
+ loadConfig,
9
+ writeHooksFile,
10
+ mkdir,
11
+ writeFile,
12
+ readdir,
13
+ readFile,
14
+ access,
15
+ rm,
16
+ execFileSync,
17
+ log: console.log,
18
+ error: console.error,
19
+ resolveHegelRoot: () => resolve(join(dirname(fileURLToPath(import.meta.url)), "..", "..")),
20
+ platform: process.platform,
21
+ env: process.env,
22
+ };
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/commands/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAoBvD,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,UAAU;IACV,cAAc;IACd,KAAK;IACL,SAAS;IACT,OAAO;IACP,QAAQ;IACR,MAAM;IACN,EAAE;IACF,YAAY;IACZ,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,gBAAgB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1F,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;CACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SetupDeps } from "./types.js";
2
+ export declare function runUpdate(argv?: string[], deps?: SetupDeps): Promise<number>;
3
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,wBAAsB,SAAS,CAC7B,IAAI,GAAE,MAAM,EAAiB,EAC7B,IAAI,GAAE,SAAuB,GAC5B,OAAO,CAAC,MAAM,CAAC,CA0FjB"}
@@ -0,0 +1,90 @@
1
+ import { resolve, join } from "node:path";
2
+ import { readInstalledCompanionVersion, detectPackageManager } from "../utils/package-manager.js";
3
+ import { pruneOrphanInstalls } from "../utils/workspace.js";
4
+ import { execCommandSync } from "../utils/install.js";
5
+ import { runInit } from "./init.js";
6
+ import { defaultDeps } from "./types.js";
7
+ export async function runUpdate(argv = process.argv, deps = defaultDeps) {
8
+ const rest = argv.slice(2);
9
+ const positional = rest.filter((a) => !a.startsWith("--"));
10
+ const targetDir = positional[1] ?? ".";
11
+ const skipNpm = rest.includes("--skip-npm");
12
+ const projectPath = resolve(targetDir);
13
+ const hasConfig = await deps.access(join(projectPath, "hegel.config.json")).then(() => true).catch(() => false);
14
+ const hasHooks = await deps.access(join(projectPath, ".cursor", "hooks.json")).then(() => true).catch(() => false);
15
+ if (!hasConfig && !hasHooks) {
16
+ deps.error(`Error: no Hegel install detected at ${projectPath}.`);
17
+ deps.error(` Run 'npx hegel-companion init ${targetDir}' first.`);
18
+ return 1;
19
+ }
20
+ deps.log(`Updating Hegel install at ${projectPath}`);
21
+ deps.log("");
22
+ const hegelRoot = deps.resolveHegelRoot();
23
+ const isSourceRepo = resolve(projectPath) === resolve(hegelRoot);
24
+ const beforeVersion = await readInstalledCompanionVersion(projectPath, deps.readFile);
25
+ if (isSourceRepo) {
26
+ deps.log("Source-repo mode detected — skipping package manager upgrade.");
27
+ deps.log("");
28
+ }
29
+ else if (skipNpm) {
30
+ deps.log("--skip-npm passed — skipping dependency upgrade.");
31
+ deps.log("");
32
+ }
33
+ else {
34
+ const pm = await detectPackageManager(projectPath, deps.access);
35
+ const installArgs = pm === "npm" ? ["install", "@hegel-dev/companion@latest"] : ["add", "-D", "@hegel-dev/companion@latest"];
36
+ deps.log(`Running: ${pm} ${installArgs.join(" ")}`);
37
+ try {
38
+ execCommandSync(pm, installArgs, deps, { stdio: "inherit", cwd: projectPath });
39
+ }
40
+ catch (err) {
41
+ const errno = err?.code;
42
+ if (errno === "ENOENT") {
43
+ deps.error(`Error: '${pm}' not found on PATH.`);
44
+ deps.error(` Install Node.js/package manager and rerun, or pass --skip-npm`);
45
+ deps.error(" to refresh hooks/VSIX without touching dependencies.");
46
+ return 1;
47
+ }
48
+ const message = err instanceof Error ? err.message : String(err);
49
+ deps.error(`Error: ${pm} install failed: ${message}`);
50
+ return 1;
51
+ }
52
+ deps.log("");
53
+ }
54
+ const setupArgv = ["node", argv[1] ?? "setup.js", projectPath, "--force"];
55
+ const setupExit = await runInit(setupArgv, deps);
56
+ if (setupExit !== 0) {
57
+ deps.error(`Error: setup re-run failed with exit code ${setupExit}.`);
58
+ return setupExit;
59
+ }
60
+ deps.log("");
61
+ deps.log("Checking for orphan Hegel directories...");
62
+ const prune = await pruneOrphanInstalls(projectPath, deps);
63
+ if (prune.pruned.length === 0 && prune.skipped.length === 0) {
64
+ deps.log(" No orphans found.");
65
+ }
66
+ deps.log("");
67
+ const afterVersion = await readInstalledCompanionVersion(projectPath, deps.readFile);
68
+ if (afterVersion) {
69
+ if (beforeVersion && beforeVersion !== afterVersion) {
70
+ deps.log(`✅ Updated @hegel-dev/companion: ${beforeVersion} → ${afterVersion}`);
71
+ }
72
+ else if (beforeVersion === afterVersion) {
73
+ deps.log(`✅ @hegel-dev/companion ${afterVersion} (already at latest — refreshed hooks + VSIX)`);
74
+ }
75
+ else {
76
+ deps.log(`✅ @hegel-dev/companion ${afterVersion} installed.`);
77
+ }
78
+ }
79
+ else if (isSourceRepo) {
80
+ deps.log("✅ Source-repo update complete (no node_modules version to report).");
81
+ }
82
+ else {
83
+ deps.log("✅ Update complete (could not read installed version from node_modules).");
84
+ }
85
+ deps.log("");
86
+ deps.log("Reminder: fully quit and reopen Cursor (not just Reload Window) so the");
87
+ deps.log(" updated VSIX manifest is picked up by the extension host.");
88
+ return 0;
89
+ }
90
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -3,8 +3,6 @@ export interface HegelConfig {
3
3
  enableLlmAnalysis: boolean;
4
4
  timeoutSeconds: number;
5
5
  strictness: "relaxed" | "balanced" | "strict";
6
- /** When true, both layers still run full analysis and collect stats, but the user never sees intervention in the chat (no blocking, no user_message). */
7
- observeOnly: boolean;
8
6
  }
9
7
  export declare function configPath(workspaceRoot?: string): string;
10
8
  export declare function loadConfig(workspaceRoot?: string): Promise<HegelConfig>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC9C,yJAAyJ;IACzJ,WAAW,EAAE,OAAO,CAAC;CACtB;AAcD,wBAAgB,UAAU,CAAC,aAAa,GAAE,MAAsB,GAAG,MAAM,CAExE;AAED,wBAAsB,UAAU,CAAC,aAAa,GAAE,MAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAQ5F"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;CAC/C;AAaD,wBAAgB,UAAU,CAAC,aAAa,GAAE,MAAsB,GAAG,MAAM,CAExE;AAED,wBAAsB,UAAU,CAAC,aAAa,GAAE,MAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAQ5F"}
package/dist/config.js CHANGED
@@ -6,7 +6,6 @@ const DEFAULTS = {
6
6
  enableLlmAnalysis: true,
7
7
  timeoutSeconds: 15,
8
8
  strictness: "balanced",
9
- observeOnly: false,
10
9
  };
11
10
  function hegelRoot() {
12
11
  return join(dirname(fileURLToPath(import.meta.url)), "..");
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAWzC,MAAM,QAAQ,GAAgB;IAC5B,KAAK,EAAE,MAAM;IACb,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,EAAE;IAClB,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,SAAS,SAAS;IAChB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,gBAAwB,OAAO,CAAC,GAAG,EAAE;IAC9D,OAAO,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,gBAAwB,OAAO,CAAC,GAAG,EAAE;IACpE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;QACvD,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AASzC,MAAM,QAAQ,GAAgB;IAC5B,KAAK,EAAE,MAAM;IACb,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,EAAE;IAClB,UAAU,EAAE,UAAU;CACvB,CAAC;AAEF,SAAS,SAAS;IAChB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,gBAAwB,OAAO,CAAC,GAAG,EAAE;IAC9D,OAAO,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,gBAAwB,OAAO,CAAC,GAAG,EAAE;IACpE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;QACvD,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
package/dist/hook.d.ts CHANGED
@@ -1,23 +1,6 @@
1
1
  import type { HookBaseInput } from "./types.js";
2
2
  type OutputWriter = (obj: Record<string, unknown>) => void;
3
3
  type InputReader = () => Promise<string>;
4
- /**
5
- * Normalize a Cursor-supplied workspace path to a platform-native format.
6
- *
7
- * On Windows, Cursor passes Unix-style paths like "/c:/Projects/Foo" in the
8
- * hook payload's `workspace_roots`. When these flow into Node fs APIs
9
- * (especially `mkdir`), the leading "/" is interpreted as "root of the
10
- * current drive", producing malformed paths like "C:\c:\Projects\Foo"
11
- * (double drive letter) which then fail with ENOENT.
12
- *
13
- * Readily reproducible in 1.0.1 — see the CopybarasCircle migration notes
14
- * for the full `hot-reload:error` log chain that surfaced this.
15
- *
16
- * Strip the leading "/" when the path matches `/<letter>:/...`. Non-Windows
17
- * platforms and paths that aren't in this specific shape pass through
18
- * unchanged.
19
- */
20
- export declare function normalizeWorkspacePath(p: string): string;
21
4
  export declare function processHookInput(input: HookBaseInput, output?: OutputWriter): Promise<void>;
22
5
  export declare function processHookJson(raw: string, output?: OutputWriter): Promise<void>;
23
6
  export declare function runHook(readInput?: InputReader, output?: OutputWriter): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,YAAY,CAAC;AAEpB,KAAK,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAC3D,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AAezC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxD;AAsTD,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,aAAa,EACpB,MAAM,GAAE,YAA0B,GACjC,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,YAA0B,GACjC,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,OAAO,CAC3B,SAAS,GAAE,WAAuB,EAClC,MAAM,GAAE,YAA0B,GACjC,OAAO,CAAC,IAAI,CAAC,CAGf"}
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,YAAY,CAAC;AAEpB,KAAK,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAC3D,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AAkUzC,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,aAAa,EACpB,MAAM,GAAE,YAA0B,GACjC,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,YAA0B,GACjC,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,OAAO,CAC3B,SAAS,GAAE,WAAuB,EAClC,MAAM,GAAE,YAA0B,GACjC,OAAO,CAAC,IAAI,CAAC,CAGf"}
package/dist/hook.js CHANGED
@@ -10,6 +10,7 @@ import { analyzeSession, pruneSupersededConcernsFromState, } from "./analyzers/s
10
10
  import { loadTranscript } from "./transcript.js";
11
11
  import { formatBlockMessage } from "./format.js";
12
12
  import { writeHooksFile } from "./hooks-generator.js";
13
+ import { normalizeWorkspacePath } from "./utils/path.js";
13
14
  async function readStdin() {
14
15
  const chunks = [];
15
16
  for await (const chunk of stdin) {
@@ -21,28 +22,6 @@ async function readStdin() {
21
22
  }
22
23
  const LOG_DIR = ".hegel-state";
23
24
  const LOG_FILE = `${LOG_DIR}/hegel.log`;
24
- /**
25
- * Normalize a Cursor-supplied workspace path to a platform-native format.
26
- *
27
- * On Windows, Cursor passes Unix-style paths like "/c:/Projects/Foo" in the
28
- * hook payload's `workspace_roots`. When these flow into Node fs APIs
29
- * (especially `mkdir`), the leading "/" is interpreted as "root of the
30
- * current drive", producing malformed paths like "C:\c:\Projects\Foo"
31
- * (double drive letter) which then fail with ENOENT.
32
- *
33
- * Readily reproducible in 1.0.1 — see the CopybarasCircle migration notes
34
- * for the full `hot-reload:error` log chain that surfaced this.
35
- *
36
- * Strip the leading "/" when the path matches `/<letter>:/...`. Non-Windows
37
- * platforms and paths that aren't in this specific shape pass through
38
- * unchanged.
39
- */
40
- export function normalizeWorkspacePath(p) {
41
- if (process.platform === "win32" && /^\/[a-zA-Z]:/.test(p)) {
42
- return p.substring(1);
43
- }
44
- return p;
45
- }
46
25
  /**
47
26
  * Returns a copy of `workspace_roots` with every entry normalized. Callers
48
27
  * should always use this before passing Cursor-supplied roots to fs APIs.
@@ -69,8 +48,6 @@ async function isSelfProject(input) {
69
48
  return false;
70
49
  }
71
50
  async function shouldBypass(input, config) {
72
- if (config.observeOnly)
73
- return true;
74
51
  return isSelfProject(input);
75
52
  }
76
53
  async function log(level, event, message) {
@@ -289,8 +266,8 @@ async function handleSessionStart(input, output) {
289
266
  const workspaceRoots = normalizedWorkspaceRoots(input);
290
267
  const config = await loadConfig(workspaceRoots[0] || process.cwd());
291
268
  const bypass = await shouldBypass(input, config);
292
- const mode = bypass ? "observe-only" : "active";
293
- await log("info", "sessionStart", `Mode: ${mode} (observeOnly=${config.observeOnly}, selfProject=${await isSelfProject(input)})`);
269
+ const mode = bypass ? "silent" : "active";
270
+ await log("info", "sessionStart", `Mode: ${mode} (selfProject=${await isSelfProject(input)})`);
294
271
  // Hot-reload: regenerate hooks.json if config has changed since last setup.
295
272
  // This path fires on extension/hook-runtime init; the same check also runs
296
273
  // from `beforeSubmitPrompt` so per-chat UI changes propagate without an
package/dist/hook.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}