@getrift/rift 0.1.0-beta.0 → 0.1.0-beta.2
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 +72 -48
- package/dist/src/cli/commands/hooks-install.d.ts +19 -0
- package/dist/src/cli/commands/hooks-install.d.ts.map +1 -0
- package/dist/src/cli/commands/hooks-install.js +103 -0
- package/dist/src/cli/commands/hooks-install.js.map +1 -0
- package/dist/src/cli/commands/onboard.d.ts.map +1 -1
- package/dist/src/cli/commands/onboard.js +81 -0
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/hooks-writers/claude-code-policy-script.d.ts +25 -0
- package/dist/src/cli/hooks-writers/claude-code-policy-script.d.ts.map +1 -0
- package/dist/src/cli/hooks-writers/claude-code-policy-script.js +85 -0
- package/dist/src/cli/hooks-writers/claude-code-policy-script.js.map +1 -0
- package/dist/src/cli/hooks-writers/claude-code.d.ts +12 -0
- package/dist/src/cli/hooks-writers/claude-code.d.ts.map +1 -0
- package/dist/src/cli/hooks-writers/claude-code.js +228 -0
- package/dist/src/cli/hooks-writers/claude-code.js.map +1 -0
- package/dist/src/cli/hooks-writers/errors.d.ts +16 -0
- package/dist/src/cli/hooks-writers/errors.d.ts.map +1 -0
- package/dist/src/cli/hooks-writers/errors.js +24 -0
- package/dist/src/cli/hooks-writers/errors.js.map +1 -0
- package/dist/src/cli/hooks-writers/index.d.ts +13 -0
- package/dist/src/cli/hooks-writers/index.d.ts.map +1 -0
- package/dist/src/cli/hooks-writers/index.js +26 -0
- package/dist/src/cli/hooks-writers/index.js.map +1 -0
- package/dist/src/cli/hooks-writers/types.d.ts +27 -0
- package/dist/src/cli/hooks-writers/types.d.ts.map +1 -0
- package/dist/src/cli/hooks-writers/types.js +9 -0
- package/dist/src/cli/hooks-writers/types.js.map +1 -0
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +2 -0
- package/dist/src/cli/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Rift
|
|
2
2
|
|
|
3
|
-
**Mémoire personnelle locale pour tes IA.**
|
|
3
|
+
**Mémoire personnelle locale pour tes IA.**
|
|
4
|
+
|
|
5
|
+
Rift capture en local tes sessions Claude Code et Codex CLI, les triage, les indexe, et expose une mémoire interrogeable via MCP — pour que Claude Desktop, Claude Code, Codex et Cursor retrouvent ce que tu leur as déjà dit.
|
|
4
6
|
|
|
5
7
|
Tout reste sur ta machine, sauf les *embeddings* (envoyés à Voyage AI sous une clé qui t'appartient).
|
|
6
8
|
|
|
@@ -11,33 +13,42 @@ Tout reste sur ta machine, sauf les *embeddings* (envoyés à Voyage AI sous une
|
|
|
11
13
|
> **La capture démarre maintenant.**
|
|
12
14
|
> Au premier lancement, Rift pose un *watermark* sur tes sessions Claude Code et Codex CLI existantes : **elles ne sont pas réingérées rétroactivement**. Seules les sessions à partir de l'installation comptent.
|
|
13
15
|
>
|
|
14
|
-
> Si tu veux que
|
|
16
|
+
> Si tu veux que ton corpus passé soit *aussi* indexé (sessions Claude Code locales antérieures + exports `.zip` claude.ai / chatgpt.com / gemini.google.com / grok.com), c'est une **prestation séparée** — voir [Backfill historique (payant)](#backfill-historique-payant) plus bas.
|
|
15
17
|
|
|
16
18
|
---
|
|
17
19
|
|
|
18
20
|
## Prérequis
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
À avoir sur ton Mac avant l'install :
|
|
23
|
+
|
|
24
|
+
| | Quoi | Comment |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| 1 | **macOS 12.3+** | Pomme → "À propos de ce Mac" |
|
|
27
|
+
| 2 | **Node.js 20.19+** | `node --version` dans Ghostty. Si manquant : [nodejs.org](https://nodejs.org/en/download) (LTS) |
|
|
28
|
+
| 3 | **Codex CLI authentifié** | `codex --version`, puis `codex login` si tu n'as jamais loggé |
|
|
29
|
+
| 4 | **Une clé Voyage AI** | Je te l'envoie en DM (c'est un projet dédié sur mon compte Voyage). Range-la dans 1Password, on la collera pendant l'onboard |
|
|
30
|
+
|
|
31
|
+
Codex CLI fait tourner le triage et l'extraction de métadonnées — pas besoin de clé OpenAI séparée. La clé Voyage sert *uniquement* aux embeddings.
|
|
25
32
|
|
|
26
33
|
## Installation (1 commande)
|
|
27
34
|
|
|
35
|
+
Dans Ghostty, tape :
|
|
36
|
+
|
|
28
37
|
```sh
|
|
29
38
|
curl -fsSL https://getrift.dev/install | bash
|
|
30
39
|
```
|
|
31
40
|
|
|
32
41
|
Ce que fait le script :
|
|
33
42
|
|
|
34
|
-
- vérifie les prérequis
|
|
35
|
-
- installe
|
|
36
|
-
- crée
|
|
37
|
-
- pose un agent launchd
|
|
38
|
-
- attend que
|
|
43
|
+
- vérifie les prérequis ;
|
|
44
|
+
- installe le paquet npm `@getrift/rift@beta` globalement ;
|
|
45
|
+
- crée tes dossiers de données sous `~/Library/Application Support/Rift/` ;
|
|
46
|
+
- pose un agent launchd qui lance Rift à chaque session ;
|
|
47
|
+
- attend que le daemon réponde sur le port local.
|
|
48
|
+
|
|
49
|
+
**Si on te demande ton mot de passe Mac (`Password:`)**, c'est normal — il faut écrire dans un dossier système pour rendre la commande `rift` disponible partout. Tape ton mot de passe (rien ne s'affiche pendant la frappe — c'est normal sur Unix), `Entrée`.
|
|
39
50
|
|
|
40
|
-
Si
|
|
51
|
+
Si ça plante en cours de route, le script restaure ton état précédent et imprime un identifiant de backup. Tu peux me l'envoyer.
|
|
41
52
|
|
|
42
53
|
## Premier paramétrage
|
|
43
54
|
|
|
@@ -45,15 +56,20 @@ Si l'installation échoue, le script restaure ton état précédent et imprime u
|
|
|
45
56
|
rift onboard
|
|
46
57
|
```
|
|
47
58
|
|
|
48
|
-
L'assistant va :
|
|
59
|
+
L'assistant va te poser **5 ou 6 questions**, dans cet ordre :
|
|
49
60
|
|
|
50
|
-
1.
|
|
51
|
-
2.
|
|
52
|
-
3.
|
|
53
|
-
4.
|
|
54
|
-
5.
|
|
61
|
+
1. **La clé Voyage que je t'ai envoyée.** Colle-la depuis 1Password. Elle ne s'affiche pas pendant la frappe.
|
|
62
|
+
2. **Validation.** Rift fait un embed test pour vérifier la clé.
|
|
63
|
+
3. **Vérifie que Codex est authentifié.** Si ça échoue, lance `codex login` et relance `rift onboard`. Ou demande à Claude.
|
|
64
|
+
4. **Première passe de capture.** Watermarke tes sessions existantes (ne les ingère pas).
|
|
65
|
+
5. **Branchement MCP.** Te demande dans quels clients tu veux Rift comme serveur MCP — Claude Desktop, Claude Code, Codex, Cursor. **Réponds `oui` à tous ceux que tu utilises.**
|
|
66
|
+
6. **Garde-fou Claude Code (optionnel).** Si Claude Code est détecté, l'assistant te propose d'installer un *PreToolUse hook* qui force la récupération Rift à commencer par `rift_context_pack` (compact, budgété) avant tout `rift_search`. Évite que l'agent crame ton contexte avec des recherches larges. **Réponds `y`** si tu utilises Claude Code. Désactivable à tout moment via `RIFT_POLICY_DISABLED=1` ou en supprimant l'entrée de `~/.claude/settings.json`.
|
|
55
67
|
|
|
56
|
-
|
|
68
|
+
À la fin, l'assistant te dit "Onboarding terminé" et te suggère ta première recherche.
|
|
69
|
+
|
|
70
|
+
> Si tu veux importer un export ChatGPT ou Claude.ai, l'assistant te le proposera. **Pour la beta : décline** — c'est de la backfill historique, voir la section payante plus bas.
|
|
71
|
+
|
|
72
|
+
> Si tu as déjà fait `rift onboard` avant cette beta, tu peux poser le hook après coup avec `rift hooks install --client claude-code`.
|
|
57
73
|
|
|
58
74
|
## Vérifier que ça tourne
|
|
59
75
|
|
|
@@ -61,10 +77,10 @@ Tu peux importer un export ChatGPT ou Claude.ai pendant l'onboarding (optionnel
|
|
|
61
77
|
rift status
|
|
62
78
|
```
|
|
63
79
|
|
|
64
|
-
Tu dois voir
|
|
80
|
+
Tu dois voir une sortie qui ressemble à ça (en anglais — le binaire est anglophone) :
|
|
65
81
|
|
|
66
82
|
```
|
|
67
|
-
Rift v0.1.0-beta.
|
|
83
|
+
Rift v0.1.0-beta.2 · daemon: running (uptime 5m) · port 3577 ✓
|
|
68
84
|
Voyage: key valid (last 4 …xxxx, last embed 2m ago)
|
|
69
85
|
Codex CLI: authed ✓
|
|
70
86
|
Capture: last run 8m ago — 3 saved · 0 review · 0 failed
|
|
@@ -74,56 +90,64 @@ Feedback: relay off (local JSONL only)
|
|
|
74
90
|
Next: nothing broken. Try rift search "<topic>".
|
|
75
91
|
```
|
|
76
92
|
|
|
93
|
+
Les ✓ partout = tout va bien. Si une ligne montre ✗ ou un *Next:* différent de "nothing broken", suis l'instruction qu'il imprime.
|
|
94
|
+
|
|
77
95
|
## Usage quotidien
|
|
78
96
|
|
|
79
97
|
- **Rien à faire.** Le daemon tourne en tâche de fond, ingère tes nouvelles sessions Claude Code / Codex CLI toutes les heures, et expose la mémoire via MCP.
|
|
80
|
-
- **
|
|
81
|
-
- **
|
|
82
|
-
- **
|
|
98
|
+
- **Tester depuis Claude Desktop ou Cursor.** Ouvre une conversation, demande par exemple : *"Rappelle-toi ce qu'on a discuté sur le pricing la semaine dernière, va voir dans Rift"* — Claude/Cursor appellera `rift_search` ou `rift_context_pack` automatiquement et t'affichera ce qu'il trouve.
|
|
99
|
+
- **Rechercher en ligne de commande :** `rift search "comment on a structuré le pricing"`
|
|
100
|
+
- **Forcer une passe de capture maintenant :** `rift capture`
|
|
83
101
|
|
|
84
102
|
## Vie privée
|
|
85
103
|
|
|
86
|
-
- **Local par défaut.** Tes sessions, métadonnées
|
|
87
|
-
- **Voyage AI.** Seuls les *snippets* envoyés pour embedding partent vers Voyage. Ta clé t'appartient
|
|
88
|
-
- **Aucune télémétrie de contenu.** Rift
|
|
89
|
-
- **Désinstallation propre
|
|
104
|
+
- **Local par défaut.** Tes sessions, métadonnées et la base vectorielle (LanceDB) restent sur ta machine.
|
|
105
|
+
- **Voyage AI.** Seuls les *snippets* envoyés pour embedding partent vers Voyage. Ta clé t'appartient — tu peux la révoquer côté Voyage à tout moment, ce qui coupe l'envoi.
|
|
106
|
+
- **Aucune télémétrie de contenu.** Rift ne m'envoie rien, sauf si tu actives explicitement le *feedback relay* (`rift feedback --kind=...`). Et même là, c'est juste la note que tu écris, pas tes conversations.
|
|
107
|
+
- **Désinstallation propre.** `rift uninstall` enlève le daemon et les entrées MCP. `rift uninstall --purge-data` supprime aussi les données locales.
|
|
90
108
|
|
|
91
|
-
Le contrat de vie privée détaillé
|
|
109
|
+
Le contrat de vie privée détaillé est dans `docs/feedback/PRIVACY.md` (livré avec le paquet).
|
|
92
110
|
|
|
93
111
|
## Backfill historique (payant)
|
|
94
112
|
|
|
95
|
-
Le watermark protège ton historique pré-installation : Rift ne va pas inonder ta mémoire avec deux ans de conversations dont la moitié sont du débogage jetable.
|
|
113
|
+
Le watermark protège ton historique pré-installation : Rift ne va pas inonder ta mémoire avec deux ans de conversations dont la moitié sont du débogage jetable.
|
|
114
|
+
|
|
115
|
+
Mais si tu veux *vraiment* que ton corpus passé soit indexé, c'est faisable. Ce que ça représente côté boulot :
|
|
96
116
|
|
|
97
|
-
|
|
117
|
+
- import + audit de tes exports web (claude.ai, chatgpt.com, gemini.google.com, grok.com) ;
|
|
118
|
+
- déwatermark ciblé des sessions Claude Code / Codex CLI qui valent le coup (filtré par date, projet, heuristique) ;
|
|
119
|
+
- tuning des règles de triage à ton usage réel sur ~1 semaine ;
|
|
120
|
+
- session de 60 min en visio pour valider ce qui est entré dans la mémoire et ce qui a été écarté.
|
|
98
121
|
|
|
99
|
-
|
|
122
|
+
**Tarifs (HT, prestation ponctuelle) :**
|
|
100
123
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
124
|
+
| Profondeur | Tarif |
|
|
125
|
+
|---|---|
|
|
126
|
+
| 1 mois de données | **1 000 €** |
|
|
127
|
+
| 6 mois de données | **3 000 €** |
|
|
128
|
+
| 1 an de données | **5 000 €** |
|
|
105
129
|
|
|
106
|
-
Pour déclencher : il me faut un bon de commande / facture HT signée par ton boss. Une fois validé, on cale 1h de kickoff.
|
|
130
|
+
Pour déclencher : il me faut un **bon de commande / facture HT signée** par ton boss. Une fois validé, on cale 1h de kickoff. Tu m'envoies un message quand tu es prêt.
|
|
107
131
|
|
|
108
132
|
## En cas de pépin
|
|
109
133
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
-
|
|
117
|
-
|
|
134
|
+
| Symptôme | Solution |
|
|
135
|
+
|---|---|
|
|
136
|
+
| `rift status` dit "daemon: unreachable" | `launchctl kickstart -k gui/$UID/com.getrift.daemon` |
|
|
137
|
+
| Codex CLI auth périmé | `codex login` |
|
|
138
|
+
| Clé Voyage révoquée ou changée | `rift onboard --reconfigure-voyage` |
|
|
139
|
+
| Rift n'apparaît pas dans Claude Desktop / Cursor | `rift mcp install --client=claude-desktop` (remplace par `codex`, `claude-code`, `cursor` selon le besoin) |
|
|
140
|
+
| Le garde-fou Claude Code te bloque trop souvent | `export RIFT_POLICY_DISABLED=1` dans le shell (désactive le hook le temps de la session), ou enlève l'entrée `rift-policy.mjs` de `~/.claude/settings.json` |
|
|
141
|
+
| Truc bizarre, tu veux me prévenir | `rift feedback --kind=broke --with-status` — capture l'état actuel et envoie le tout en local (+ chez moi si tu as activé le relay pendant l'onboard) |
|
|
118
142
|
|
|
119
143
|
## Désinstaller
|
|
120
144
|
|
|
121
145
|
```sh
|
|
122
|
-
rift uninstall # enlève daemon + MCP
|
|
146
|
+
rift uninstall # enlève daemon + entrées MCP
|
|
123
147
|
rift uninstall --purge-data # + supprime les données locales
|
|
124
148
|
```
|
|
125
149
|
|
|
126
|
-
La clé Voyage reste dans `~/.rift.env` même après `--purge-data` — la commande affiche le `rm` exact pour la
|
|
150
|
+
La clé Voyage reste dans `~/.rift.env` même après `--purge-data` — la commande affiche le `rm` exact pour la nettoyer, ou tu peux la révoquer côté Voyage.
|
|
127
151
|
|
|
128
152
|
## License
|
|
129
153
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import type { HookClientId, HookWriteOutcome } from "../hooks-writers/index.js";
|
|
3
|
+
interface RunOptions {
|
|
4
|
+
client?: HookClientId;
|
|
5
|
+
dryRun?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface HooksInstallDeps {
|
|
8
|
+
/** Override `$HOME` (test injection). */
|
|
9
|
+
homeDir?: string;
|
|
10
|
+
/** Test injection: stable timestamp for backup IDs. */
|
|
11
|
+
now?: () => Date;
|
|
12
|
+
/** Test injection: where stdout writes go. */
|
|
13
|
+
emit?: (line: string) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function makeHooksInstallCommand(): Command;
|
|
16
|
+
export declare function makeHooksCommand(): Command;
|
|
17
|
+
export declare function runHooksInstall(opts: RunOptions, deps: HooksInstallDeps): Promise<HookWriteOutcome>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=hooks-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-install.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/hooks-install.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAS5C,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAEnC,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,IAAI,OAAO,CA0BjD;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAM1C;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAqC3B"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `rift hooks install --client <id> [--dry-run]`
|
|
3
|
+
*
|
|
4
|
+
* Installs the Rift policy hook into a known agent's settings file.
|
|
5
|
+
* Currently only `claude-code` is supported. Idempotent — re-running
|
|
6
|
+
* with the same package version is a no-op when the hook is already
|
|
7
|
+
* up-to-date.
|
|
8
|
+
*
|
|
9
|
+
* For Claude Code the install:
|
|
10
|
+
* 1. Writes `~/.claude/hooks/rift-policy.mjs` (a small Node ESM script
|
|
11
|
+
* with no third-party deps — no `jq` required).
|
|
12
|
+
* 2. Adds a PreToolUse matcher entry to `~/.claude/settings.json`
|
|
13
|
+
* that runs the script for `mcp__rift__rift_*` tools.
|
|
14
|
+
*
|
|
15
|
+
* The script enforces: `rift_context_pack` must be the first Rift
|
|
16
|
+
* retrieval call per session. `rift_search` and
|
|
17
|
+
* `rift_conversations_search` are blocked until the pack runs (exit 2).
|
|
18
|
+
*
|
|
19
|
+
* Disable knobs:
|
|
20
|
+
* - `RIFT_POLICY_DISABLED=1` env var → script no-ops.
|
|
21
|
+
* - Remove the matcher entry from `settings.json`.
|
|
22
|
+
*/
|
|
23
|
+
import os from "node:os";
|
|
24
|
+
import { Command, Option } from "commander";
|
|
25
|
+
import { CliError } from "../http-client.js";
|
|
26
|
+
import { ALL_HOOK_CLIENTS, HooksParseFailedError, isHookClientId, writeHookConfig, } from "../hooks-writers/index.js";
|
|
27
|
+
export function makeHooksInstallCommand() {
|
|
28
|
+
return new Command("install")
|
|
29
|
+
.description("Install the Rift policy hook into a known agent's settings file.")
|
|
30
|
+
.addOption(new Option("--client <id>", "Target client (claude-code)").choices([
|
|
31
|
+
...ALL_HOOK_CLIENTS,
|
|
32
|
+
]))
|
|
33
|
+
.option("--dry-run", "Print the outcome without writing", false)
|
|
34
|
+
.action(async function () {
|
|
35
|
+
const runOpts = this.opts();
|
|
36
|
+
try {
|
|
37
|
+
await runHooksInstall(runOpts, {});
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
const msg = err instanceof CliError
|
|
41
|
+
? err.message
|
|
42
|
+
: err instanceof Error
|
|
43
|
+
? err.message
|
|
44
|
+
: String(err);
|
|
45
|
+
process.stderr.write(`rift hooks install failed: ${msg}\n`);
|
|
46
|
+
process.exitCode = 1;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
export function makeHooksCommand() {
|
|
51
|
+
const hooks = new Command("hooks").description("Manage agent hook integrations for Rift.");
|
|
52
|
+
hooks.addCommand(makeHooksInstallCommand());
|
|
53
|
+
return hooks;
|
|
54
|
+
}
|
|
55
|
+
export async function runHooksInstall(opts, deps) {
|
|
56
|
+
const emit = deps.emit ?? ((line) => process.stdout.write(`${line}\n`));
|
|
57
|
+
if (!opts.client) {
|
|
58
|
+
throw new CliError(`Pass --client <id> (one of: ${ALL_HOOK_CLIENTS.join(", ")}).`, "validation");
|
|
59
|
+
}
|
|
60
|
+
if (!isHookClientId(opts.client)) {
|
|
61
|
+
throw new CliError("Unknown --client value.", "validation");
|
|
62
|
+
}
|
|
63
|
+
const homeDir = deps.homeDir ?? os.homedir();
|
|
64
|
+
let outcome;
|
|
65
|
+
try {
|
|
66
|
+
outcome = writeHookConfig({
|
|
67
|
+
client: opts.client,
|
|
68
|
+
homeDir,
|
|
69
|
+
dryRun: !!opts.dryRun,
|
|
70
|
+
...(deps.now ? { now: deps.now } : {}),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
if (err instanceof HooksParseFailedError) {
|
|
75
|
+
// Path-free + content-free by construction; pass through.
|
|
76
|
+
emit(err.message);
|
|
77
|
+
throw new CliError("rift hooks install: existing settings file unparseable.", "validation");
|
|
78
|
+
}
|
|
79
|
+
throw err;
|
|
80
|
+
}
|
|
81
|
+
printSummary(emit, opts.client, outcome);
|
|
82
|
+
return outcome;
|
|
83
|
+
}
|
|
84
|
+
function printSummary(emit, client, outcome) {
|
|
85
|
+
const verb = outcome.dryRun
|
|
86
|
+
? "Would install"
|
|
87
|
+
: outcome.hookEntryAdded || outcome.hookEntryReplaced || outcome.scriptUpdated
|
|
88
|
+
? "Installed"
|
|
89
|
+
: "Already up-to-date";
|
|
90
|
+
emit(`${verb} Rift policy hook for ${client}.`);
|
|
91
|
+
emit(` Script: ${outcome.scriptPath}`);
|
|
92
|
+
emit(` Settings: ${outcome.settingsPath}`);
|
|
93
|
+
if (outcome.hookEntryAdded)
|
|
94
|
+
emit(" PreToolUse entry: added");
|
|
95
|
+
if (outcome.hookEntryReplaced)
|
|
96
|
+
emit(" PreToolUse entry: updated");
|
|
97
|
+
if (outcome.scriptUpdated && !outcome.dryRun)
|
|
98
|
+
emit(" Script: written");
|
|
99
|
+
if (outcome.backupId)
|
|
100
|
+
emit(` Backup ID: ${outcome.backupId}`);
|
|
101
|
+
emit(" Disable knobs: RIFT_POLICY_DISABLED=1 in env, or remove the matcher entry.");
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=hooks-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-install.js","sourceRoot":"","sources":["../../../../src/cli/commands/hooks-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/onboard.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,OAAO,EAEL,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/onboard.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,OAAO,EAEL,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAmD5D,wBAAgB,kBAAkB,IAAI,OAAO,CAsC5C;AAuLD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC3B,MAAM,GAAG,IAAI,CAgBf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAmC1E;AA6DD,KAAK,oBAAoB,GACrB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,eAAe,GAAG,cAAc,CAAA;CAAE,CAAC;AAgOvI,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAqD9C;AAqFD,MAAM,MAAM,YAAY,GACpB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;CACtB,GAAG,MAAM,EAAE,CAyBX;AAwDD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7C,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACpC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC;IAC5B,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,WAAW,CAAC;IAC7B,0CAA0C;IAC1C,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,iBAAiB,EAC9B,oBAAoB,EAAE,MAAM,GAAG,SAAS,GACvC,IAAI,CAyBN"}
|
|
@@ -38,6 +38,8 @@ import { runAutoCapture, resolveCodexCaptureDeps, } from "../../capture/auto-cap
|
|
|
38
38
|
import { CodexCliTriageProvider } from "../../capture/codex-cli-triage-provider.js";
|
|
39
39
|
import { discoverClaudeCodeSessions } from "../../ingestion/parsers/claude-code-jsonl.js";
|
|
40
40
|
import { discoverCodexSessions } from "../../ingestion/parsers/codex-jsonl.js";
|
|
41
|
+
import { writeHookConfig } from "../hooks-writers/index.js";
|
|
42
|
+
import { HooksParseFailedError } from "../hooks-writers/index.js";
|
|
41
43
|
import { pollJob } from "../job-poller.js";
|
|
42
44
|
import { isJobFailure } from "../output.js";
|
|
43
45
|
const SUPPORTED_INGEST_EXTENSIONS = new Set([".json", ".zip"]);
|
|
@@ -58,6 +60,8 @@ export function makeOnboardCommand() {
|
|
|
58
60
|
.option("--reconfigure-voyage", "Recovery flow: replace the Voyage key only", false)
|
|
59
61
|
.option("--yes", "Accept all defaults (non-interactive)", false)
|
|
60
62
|
.option("--skip-capture", "Skip the post-setup capture pass (test-only)", false)
|
|
63
|
+
.option("--with-claude-hook", "Install the Rift policy hook into Claude Code without prompting", false)
|
|
64
|
+
.option("--no-claude-hook", "Skip the Claude Code policy-hook prompt entirely")
|
|
61
65
|
.action(async (opts, cmd) => {
|
|
62
66
|
const globalOpts = cmd.optsWithGlobals();
|
|
63
67
|
try {
|
|
@@ -134,6 +138,9 @@ async function runOnboard(opts, globalOpts) {
|
|
|
134
138
|
else {
|
|
135
139
|
say("Feedback relay off — feedback stays in local JSONL only.");
|
|
136
140
|
}
|
|
141
|
+
// Step 5b — optional Claude Code policy hook.
|
|
142
|
+
say("");
|
|
143
|
+
await maybeInstallClaudeCodeHook(opts, rl);
|
|
137
144
|
// Step 6 + 7 — watermark current sessions + run one capture pass.
|
|
138
145
|
let captureSaved = 0;
|
|
139
146
|
if (!opts.skipCapture) {
|
|
@@ -442,6 +449,80 @@ async function collectFeedbackPreference(opts, rl, dataDir) {
|
|
|
442
449
|
fs.chmodSync(sidecar, 0o600);
|
|
443
450
|
return cfg;
|
|
444
451
|
}
|
|
452
|
+
// ----- Step 5b: Claude Code policy hook (opt-in) -----
|
|
453
|
+
/**
|
|
454
|
+
* Offer to install the Rift policy hook into Claude Code's settings.
|
|
455
|
+
*
|
|
456
|
+
* Only runs when `~/.claude/settings.json` looks plausible (the dir
|
|
457
|
+
* exists). Honors `--with-claude-hook` (force install, no prompt) and
|
|
458
|
+
* `--no-claude-hook` (skip silently). Default `--yes` declines unless
|
|
459
|
+
* `--with-claude-hook` is also set, so non-interactive operators never
|
|
460
|
+
* silently get a global hook installed.
|
|
461
|
+
*
|
|
462
|
+
* Failures are non-fatal — onboarding continues. The hook is a quality
|
|
463
|
+
* guardrail, not a correctness requirement.
|
|
464
|
+
*/
|
|
465
|
+
async function maybeInstallClaudeCodeHook(opts, rl) {
|
|
466
|
+
if (opts.noClaudeHook) {
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
const homeDir = os.homedir();
|
|
470
|
+
const claudeDir = path.join(homeDir, ".claude");
|
|
471
|
+
const claudeCodeDetected = fs.existsSync(claudeDir);
|
|
472
|
+
if (!claudeCodeDetected) {
|
|
473
|
+
return;
|
|
474
|
+
}
|
|
475
|
+
let install = false;
|
|
476
|
+
if (opts.withClaudeHook) {
|
|
477
|
+
install = true;
|
|
478
|
+
}
|
|
479
|
+
else if (opts.yes) {
|
|
480
|
+
// Non-interactive default: skip. Operator must opt in with --with-claude-hook.
|
|
481
|
+
say("Claude Code detected — skipping the policy-hook prompt (pass --with-claude-hook to install non-interactively).");
|
|
482
|
+
return;
|
|
483
|
+
}
|
|
484
|
+
else {
|
|
485
|
+
say("Claude Code detected.");
|
|
486
|
+
say("Optional: install a PreToolUse policy hook so Rift retrieval starts with rift_context_pack");
|
|
487
|
+
say("(prevents broad rift_search dumps from burning context). Disable any time with RIFT_POLICY_DISABLED=1.");
|
|
488
|
+
const answer = (await ask(rl, "Install Claude Code policy hook? [y/N]: ", "n"))
|
|
489
|
+
.trim()
|
|
490
|
+
.toLowerCase();
|
|
491
|
+
install = answer === "y" || answer === "yes";
|
|
492
|
+
}
|
|
493
|
+
if (!install) {
|
|
494
|
+
say("Skipping Claude Code policy hook.");
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
try {
|
|
498
|
+
const outcome = writeHookConfig({
|
|
499
|
+
client: "claude-code",
|
|
500
|
+
homeDir,
|
|
501
|
+
dryRun: false,
|
|
502
|
+
});
|
|
503
|
+
if (outcome.hookEntryAdded) {
|
|
504
|
+
say("Installed Rift policy hook into Claude Code (PreToolUse entry added).");
|
|
505
|
+
}
|
|
506
|
+
else if (outcome.hookEntryReplaced || outcome.scriptUpdated) {
|
|
507
|
+
say("Updated Rift policy hook in Claude Code.");
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
say("Rift policy hook already up-to-date in Claude Code.");
|
|
511
|
+
}
|
|
512
|
+
if (outcome.backupId) {
|
|
513
|
+
say(` Backup ID: ${outcome.backupId}`);
|
|
514
|
+
}
|
|
515
|
+
say(" (Restart Claude Code or open /hooks once for the new entry to load.)");
|
|
516
|
+
}
|
|
517
|
+
catch (err) {
|
|
518
|
+
if (err instanceof HooksParseFailedError) {
|
|
519
|
+
say(err.message);
|
|
520
|
+
}
|
|
521
|
+
else {
|
|
522
|
+
say(`Claude Code hook install failed (non-fatal): ${err instanceof Error ? err.message : String(err)}`);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
}
|
|
445
526
|
// ----- Step 6 + 7: capture pass -----
|
|
446
527
|
export async function runFirstCapturePass(configPath, dataDir) {
|
|
447
528
|
const baseUrl = safeResolveBaseUrl(configPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../../../src/cli/commands/onboard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../../../src/cli/commands/onboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source of truth for the Rift policy hook that ships into
|
|
3
|
+
* `~/.claude/hooks/rift-policy.mjs`.
|
|
4
|
+
*
|
|
5
|
+
* The script is a plain Node ESM module — no `jq`, no `@anthropic-ai`
|
|
6
|
+
* deps, just `node:fs` / `node:os` / `node:path`. Claude Code runs it
|
|
7
|
+
* via the matcher in `settings.json` and pipes the PreToolUse payload
|
|
8
|
+
* on stdin. We branch on `tool_name`:
|
|
9
|
+
*
|
|
10
|
+
* - `mcp__rift__rift_context_pack` → touch session marker, exit 0
|
|
11
|
+
* - `mcp__rift__rift_search` → require marker, else exit 2
|
|
12
|
+
* - `mcp__rift__rift_conversations_search` → same
|
|
13
|
+
* - anything else → exit 0 (defensive; matcher
|
|
14
|
+
* should already exclude these)
|
|
15
|
+
*
|
|
16
|
+
* Disable knobs:
|
|
17
|
+
* - `RIFT_POLICY_DISABLED=1` in env → script no-ops with exit 0
|
|
18
|
+
* - Remove the matcher entry from `~/.claude/settings.json`
|
|
19
|
+
*
|
|
20
|
+
* The body is exported as a string so the writer can install it
|
|
21
|
+
* verbatim — keeping the bytes-on-disk identical to the bytes the
|
|
22
|
+
* tests assert against.
|
|
23
|
+
*/
|
|
24
|
+
export declare const CLAUDE_CODE_POLICY_SCRIPT = "#!/usr/bin/env node\n// Rift policy hook for Claude Code \u2014 managed by `rift hooks install --client claude-code`.\n// Enforces: rift_context_pack must be the first Rift retrieval call per session.\n// Disable: set RIFT_POLICY_DISABLED=1 in env, or remove the matcher entry\n// from ~/.claude/settings.json.\n//\n// DO NOT EDIT BY HAND \u2014 re-running `rift hooks install --client claude-code`\n// will overwrite local edits.\n\nimport fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\n\nconst POLICY_MESSAGE =\n \"Rift policy: call mcp__rift__rift_context_pack first (compact, pre-budgeted). \" +\n \"Only fall back to rift_search/rift_conversations_search if the pack returns \" +\n \"nothing useful, and start with top_k 3-5.\";\n\nif (process.env.RIFT_POLICY_DISABLED === \"1\") process.exit(0);\n\nconst chunks = [];\nfor await (const chunk of process.stdin) chunks.push(chunk);\nconst raw = Buffer.concat(chunks).toString(\"utf8\");\n\nlet payload;\ntry {\n payload = raw.trim() === \"\" ? {} : JSON.parse(raw);\n} catch {\n // Fail-open on malformed input so a future hook-payload schema change\n // can never silently block legitimate tool calls.\n process.exit(0);\n}\n\nconst tool = typeof payload.tool_name === \"string\" ? payload.tool_name : \"\";\nconst session =\n typeof payload.session_id === \"string\" && payload.session_id !== \"\"\n ? payload.session_id\n : \"nosession\";\nconst marker = path.join(os.tmpdir(), `rift-pack-called-${session}`);\n\nif (tool === \"mcp__rift__rift_context_pack\") {\n try {\n fs.closeSync(fs.openSync(marker, \"a\"));\n } catch {\n // best-effort; missing marker only blocks the next search call.\n }\n process.exit(0);\n}\n\nif (\n tool === \"mcp__rift__rift_search\" ||\n tool === \"mcp__rift__rift_conversations_search\"\n) {\n if (!fs.existsSync(marker)) {\n process.stderr.write(POLICY_MESSAGE + \"\\n\");\n process.exit(2);\n }\n}\n\nprocess.exit(0);\n";
|
|
25
|
+
//# sourceMappingURL=claude-code-policy-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-policy-script.d.ts","sourceRoot":"","sources":["../../../../src/cli/hooks-writers/claude-code-policy-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,eAAO,MAAM,yBAAyB,m8DA4DrC,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source of truth for the Rift policy hook that ships into
|
|
3
|
+
* `~/.claude/hooks/rift-policy.mjs`.
|
|
4
|
+
*
|
|
5
|
+
* The script is a plain Node ESM module — no `jq`, no `@anthropic-ai`
|
|
6
|
+
* deps, just `node:fs` / `node:os` / `node:path`. Claude Code runs it
|
|
7
|
+
* via the matcher in `settings.json` and pipes the PreToolUse payload
|
|
8
|
+
* on stdin. We branch on `tool_name`:
|
|
9
|
+
*
|
|
10
|
+
* - `mcp__rift__rift_context_pack` → touch session marker, exit 0
|
|
11
|
+
* - `mcp__rift__rift_search` → require marker, else exit 2
|
|
12
|
+
* - `mcp__rift__rift_conversations_search` → same
|
|
13
|
+
* - anything else → exit 0 (defensive; matcher
|
|
14
|
+
* should already exclude these)
|
|
15
|
+
*
|
|
16
|
+
* Disable knobs:
|
|
17
|
+
* - `RIFT_POLICY_DISABLED=1` in env → script no-ops with exit 0
|
|
18
|
+
* - Remove the matcher entry from `~/.claude/settings.json`
|
|
19
|
+
*
|
|
20
|
+
* The body is exported as a string so the writer can install it
|
|
21
|
+
* verbatim — keeping the bytes-on-disk identical to the bytes the
|
|
22
|
+
* tests assert against.
|
|
23
|
+
*/
|
|
24
|
+
export const CLAUDE_CODE_POLICY_SCRIPT = `#!/usr/bin/env node
|
|
25
|
+
// Rift policy hook for Claude Code — managed by \`rift hooks install --client claude-code\`.
|
|
26
|
+
// Enforces: rift_context_pack must be the first Rift retrieval call per session.
|
|
27
|
+
// Disable: set RIFT_POLICY_DISABLED=1 in env, or remove the matcher entry
|
|
28
|
+
// from ~/.claude/settings.json.
|
|
29
|
+
//
|
|
30
|
+
// DO NOT EDIT BY HAND — re-running \`rift hooks install --client claude-code\`
|
|
31
|
+
// will overwrite local edits.
|
|
32
|
+
|
|
33
|
+
import fs from "node:fs";
|
|
34
|
+
import os from "node:os";
|
|
35
|
+
import path from "node:path";
|
|
36
|
+
|
|
37
|
+
const POLICY_MESSAGE =
|
|
38
|
+
"Rift policy: call mcp__rift__rift_context_pack first (compact, pre-budgeted). " +
|
|
39
|
+
"Only fall back to rift_search/rift_conversations_search if the pack returns " +
|
|
40
|
+
"nothing useful, and start with top_k 3-5.";
|
|
41
|
+
|
|
42
|
+
if (process.env.RIFT_POLICY_DISABLED === "1") process.exit(0);
|
|
43
|
+
|
|
44
|
+
const chunks = [];
|
|
45
|
+
for await (const chunk of process.stdin) chunks.push(chunk);
|
|
46
|
+
const raw = Buffer.concat(chunks).toString("utf8");
|
|
47
|
+
|
|
48
|
+
let payload;
|
|
49
|
+
try {
|
|
50
|
+
payload = raw.trim() === "" ? {} : JSON.parse(raw);
|
|
51
|
+
} catch {
|
|
52
|
+
// Fail-open on malformed input so a future hook-payload schema change
|
|
53
|
+
// can never silently block legitimate tool calls.
|
|
54
|
+
process.exit(0);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const tool = typeof payload.tool_name === "string" ? payload.tool_name : "";
|
|
58
|
+
const session =
|
|
59
|
+
typeof payload.session_id === "string" && payload.session_id !== ""
|
|
60
|
+
? payload.session_id
|
|
61
|
+
: "nosession";
|
|
62
|
+
const marker = path.join(os.tmpdir(), \`rift-pack-called-\${session}\`);
|
|
63
|
+
|
|
64
|
+
if (tool === "mcp__rift__rift_context_pack") {
|
|
65
|
+
try {
|
|
66
|
+
fs.closeSync(fs.openSync(marker, "a"));
|
|
67
|
+
} catch {
|
|
68
|
+
// best-effort; missing marker only blocks the next search call.
|
|
69
|
+
}
|
|
70
|
+
process.exit(0);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (
|
|
74
|
+
tool === "mcp__rift__rift_search" ||
|
|
75
|
+
tool === "mcp__rift__rift_conversations_search"
|
|
76
|
+
) {
|
|
77
|
+
if (!fs.existsSync(marker)) {
|
|
78
|
+
process.stderr.write(POLICY_MESSAGE + "\\n");
|
|
79
|
+
process.exit(2);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
process.exit(0);
|
|
84
|
+
`;
|
|
85
|
+
//# sourceMappingURL=claude-code-policy-script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-policy-script.js","sourceRoot":"","sources":["../../../../src/cli/hooks-writers/claude-code-policy-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DxC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { HookWriteOutcome } from "./types.js";
|
|
2
|
+
export interface ClaudeCodeHookWriteOpts {
|
|
3
|
+
/** Absolute path of the user's $HOME (test override). */
|
|
4
|
+
homeDir: string;
|
|
5
|
+
/** Print outcome only; do not touch disk. */
|
|
6
|
+
dryRun: boolean;
|
|
7
|
+
/** Test injection: stable timestamp for backup IDs. */
|
|
8
|
+
now?: () => Date;
|
|
9
|
+
}
|
|
10
|
+
export declare function writeClaudeCodeHook(opts: ClaudeCodeHookWriteOpts): HookWriteOutcome;
|
|
11
|
+
export { HooksParseFailedError } from "./errors.js";
|
|
12
|
+
//# sourceMappingURL=claude-code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../../src/cli/hooks-writers/claude-code.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQnD,MAAM,WAAW,uBAAuB;IACtC,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,uBAAuB,GAC5B,gBAAgB,CAmIlB;AA2GD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writer for `rift hooks install --client claude-code`.
|
|
3
|
+
*
|
|
4
|
+
* Idempotent install of the Rift policy hook into Claude Code's
|
|
5
|
+
* `~/.claude/settings.json`. Mirrors the `mcp-config-writers/json-config`
|
|
6
|
+
* contract:
|
|
7
|
+
*
|
|
8
|
+
* - Atomic settings.json write (tmp + rename).
|
|
9
|
+
* - Backup the prior settings file to `<file>.bak.<id>` if it existed
|
|
10
|
+
* and we're about to change anything; surface only an opaque ID.
|
|
11
|
+
* - Refuse to overwrite when the file is not parseable JSON OR when
|
|
12
|
+
* `hooks` is present but not an object — emit a redacted error
|
|
13
|
+
* referring to the backup ID only.
|
|
14
|
+
* - Detect an existing Rift policy entry by command substring
|
|
15
|
+
* ("rift-policy.mjs"); rewrite it in place rather than appending a
|
|
16
|
+
* duplicate.
|
|
17
|
+
* - Preserve every other top-level key, every other hook event, every
|
|
18
|
+
* other PreToolUse entry.
|
|
19
|
+
*
|
|
20
|
+
* Hook script lifecycle:
|
|
21
|
+
* - Always installed at `<homeDir>/.claude/hooks/rift-policy.mjs`.
|
|
22
|
+
* - Atomic write (tmp + rename), 0755 permissions.
|
|
23
|
+
* - Re-running with the same package version is a no-op for the script.
|
|
24
|
+
*/
|
|
25
|
+
import fs from "node:fs";
|
|
26
|
+
import path from "node:path";
|
|
27
|
+
import { CLAUDE_CODE_POLICY_SCRIPT } from "./claude-code-policy-script.js";
|
|
28
|
+
import { HooksParseFailedError } from "./errors.js";
|
|
29
|
+
const RIFT_HOOK_MATCHER = "mcp__rift__rift_context_pack|mcp__rift__rift_search|mcp__rift__rift_conversations_search";
|
|
30
|
+
const POLICY_SCRIPT_REL = path.join(".claude", "hooks", "rift-policy.mjs");
|
|
31
|
+
const SETTINGS_REL = path.join(".claude", "settings.json");
|
|
32
|
+
export function writeClaudeCodeHook(opts) {
|
|
33
|
+
const scriptPath = path.join(opts.homeDir, POLICY_SCRIPT_REL);
|
|
34
|
+
const settingsPath = path.join(opts.homeDir, SETTINGS_REL);
|
|
35
|
+
const now = opts.now ?? defaultNow;
|
|
36
|
+
// 1. Read settings (or treat missing/empty as `{}`).
|
|
37
|
+
const preexistingSettings = fs.existsSync(settingsPath);
|
|
38
|
+
let raw = "";
|
|
39
|
+
let parsed = {};
|
|
40
|
+
if (preexistingSettings) {
|
|
41
|
+
raw = fs.readFileSync(settingsPath, "utf8");
|
|
42
|
+
if (raw.trim() !== "") {
|
|
43
|
+
try {
|
|
44
|
+
const candidate = JSON.parse(raw);
|
|
45
|
+
if (typeof candidate !== "object" ||
|
|
46
|
+
candidate === null ||
|
|
47
|
+
Array.isArray(candidate)) {
|
|
48
|
+
throw new SyntaxError("settings.json root must be a JSON object");
|
|
49
|
+
}
|
|
50
|
+
parsed = candidate;
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
throw failParse(settingsPath, raw, now, err, opts.dryRun);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// 1b. Reject malformed `hooks` shape early — same backup contract as
|
|
58
|
+
// the JSON parse failure path.
|
|
59
|
+
const hooksField = parsed["hooks"];
|
|
60
|
+
if (hooksField !== undefined &&
|
|
61
|
+
(typeof hooksField !== "object" ||
|
|
62
|
+
hooksField === null ||
|
|
63
|
+
Array.isArray(hooksField))) {
|
|
64
|
+
throw failParse(settingsPath, raw, now, new TypeError("settings.json `hooks` is present but not an object"), opts.dryRun);
|
|
65
|
+
}
|
|
66
|
+
// 2. Compare desired script content against on-disk content.
|
|
67
|
+
const desiredScript = CLAUDE_CODE_POLICY_SCRIPT;
|
|
68
|
+
const existingScript = fs.existsSync(scriptPath)
|
|
69
|
+
? fs.readFileSync(scriptPath, "utf8")
|
|
70
|
+
: null;
|
|
71
|
+
const scriptUpdated = existingScript !== desiredScript;
|
|
72
|
+
// 3. Merge the policy entry into PreToolUse.
|
|
73
|
+
const merged = mergeRiftHookEntry(parsed, scriptPath);
|
|
74
|
+
const settingsChanged = merged.hookEntryAdded || merged.hookEntryReplaced;
|
|
75
|
+
const willTouchDisk = scriptUpdated || settingsChanged;
|
|
76
|
+
const backupId = preexistingSettings && settingsChanged ? formatBackupId(now) : null;
|
|
77
|
+
if (opts.dryRun || !willTouchDisk) {
|
|
78
|
+
return {
|
|
79
|
+
scriptPath,
|
|
80
|
+
settingsPath,
|
|
81
|
+
preexistingSettings,
|
|
82
|
+
backupId: null,
|
|
83
|
+
scriptUpdated,
|
|
84
|
+
hookEntryAdded: merged.hookEntryAdded,
|
|
85
|
+
hookEntryReplaced: merged.hookEntryReplaced,
|
|
86
|
+
dryRun: !!opts.dryRun,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// 4. Write the script atomically.
|
|
90
|
+
if (scriptUpdated) {
|
|
91
|
+
fs.mkdirSync(path.dirname(scriptPath), { recursive: true });
|
|
92
|
+
const tmpScript = `${scriptPath}.tmp.${process.pid}`;
|
|
93
|
+
fs.writeFileSync(tmpScript, desiredScript, {
|
|
94
|
+
encoding: "utf8",
|
|
95
|
+
mode: 0o755,
|
|
96
|
+
});
|
|
97
|
+
fs.renameSync(tmpScript, scriptPath);
|
|
98
|
+
fs.chmodSync(scriptPath, 0o755);
|
|
99
|
+
}
|
|
100
|
+
// 5. Backup + atomically write settings if it changed.
|
|
101
|
+
if (settingsChanged) {
|
|
102
|
+
if (preexistingSettings && backupId) {
|
|
103
|
+
fs.writeFileSync(`${settingsPath}.bak.${backupId}`, raw, {
|
|
104
|
+
encoding: "utf8",
|
|
105
|
+
mode: 0o600,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
fs.mkdirSync(path.dirname(settingsPath), { recursive: true });
|
|
110
|
+
}
|
|
111
|
+
const tmpSettings = `${settingsPath}.tmp.${process.pid}`;
|
|
112
|
+
try {
|
|
113
|
+
fs.writeFileSync(tmpSettings, JSON.stringify(merged.parsed, null, 2) + "\n", { encoding: "utf8", mode: 0o644 });
|
|
114
|
+
fs.renameSync(tmpSettings, settingsPath);
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
try {
|
|
118
|
+
if (fs.existsSync(tmpSettings))
|
|
119
|
+
fs.unlinkSync(tmpSettings);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
// ignore
|
|
123
|
+
}
|
|
124
|
+
if (preexistingSettings && backupId) {
|
|
125
|
+
try {
|
|
126
|
+
fs.copyFileSync(`${settingsPath}.bak.${backupId}`, settingsPath);
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
// best-effort — the backup file is the recovery surface.
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
throw err;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
scriptPath,
|
|
137
|
+
settingsPath,
|
|
138
|
+
preexistingSettings,
|
|
139
|
+
backupId,
|
|
140
|
+
scriptUpdated,
|
|
141
|
+
hookEntryAdded: merged.hookEntryAdded,
|
|
142
|
+
hookEntryReplaced: merged.hookEntryReplaced,
|
|
143
|
+
dryRun: false,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
function mergeRiftHookEntry(parsed, scriptPath) {
|
|
147
|
+
const next = { ...parsed };
|
|
148
|
+
const hooks = typeof next["hooks"] === "object" &&
|
|
149
|
+
next["hooks"] !== null &&
|
|
150
|
+
!Array.isArray(next["hooks"])
|
|
151
|
+
? { ...next["hooks"] }
|
|
152
|
+
: {};
|
|
153
|
+
const preToolUse = Array.isArray(hooks["PreToolUse"])
|
|
154
|
+
? [...hooks["PreToolUse"]]
|
|
155
|
+
: [];
|
|
156
|
+
// Quote the script path in case the user's $HOME contains spaces.
|
|
157
|
+
const desiredCommand = `node "${scriptPath}"`;
|
|
158
|
+
const desiredEntry = {
|
|
159
|
+
matcher: RIFT_HOOK_MATCHER,
|
|
160
|
+
hooks: [
|
|
161
|
+
{
|
|
162
|
+
type: "command",
|
|
163
|
+
command: desiredCommand,
|
|
164
|
+
timeout: 5,
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
};
|
|
168
|
+
let hookEntryAdded = false;
|
|
169
|
+
let hookEntryReplaced = false;
|
|
170
|
+
let foundExisting = false;
|
|
171
|
+
const updated = preToolUse.map((entry) => {
|
|
172
|
+
if (!isRiftPolicyEntry(entry))
|
|
173
|
+
return entry;
|
|
174
|
+
foundExisting = true;
|
|
175
|
+
const before = JSON.stringify(entry);
|
|
176
|
+
const after = JSON.stringify(desiredEntry);
|
|
177
|
+
if (before !== after)
|
|
178
|
+
hookEntryReplaced = true;
|
|
179
|
+
return desiredEntry;
|
|
180
|
+
});
|
|
181
|
+
if (!foundExisting) {
|
|
182
|
+
updated.push(desiredEntry);
|
|
183
|
+
hookEntryAdded = true;
|
|
184
|
+
}
|
|
185
|
+
hooks["PreToolUse"] = updated;
|
|
186
|
+
next["hooks"] = hooks;
|
|
187
|
+
return { parsed: next, hookEntryAdded, hookEntryReplaced };
|
|
188
|
+
}
|
|
189
|
+
function isRiftPolicyEntry(entry) {
|
|
190
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
const e = entry;
|
|
194
|
+
const innerHooks = Array.isArray(e["hooks"]) ? e["hooks"] : [];
|
|
195
|
+
return innerHooks.some((h) => {
|
|
196
|
+
if (typeof h !== "object" || h === null)
|
|
197
|
+
return false;
|
|
198
|
+
const cmd = h["command"];
|
|
199
|
+
return typeof cmd === "string" && cmd.includes("rift-policy.mjs");
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
function formatBackupId(now) {
|
|
203
|
+
return `rift-hooks-claude-code-${now()
|
|
204
|
+
.toISOString()
|
|
205
|
+
.replace(/\.\d{3}Z$/, "Z")
|
|
206
|
+
.replace(/:/g, "-")}`;
|
|
207
|
+
}
|
|
208
|
+
function defaultNow() {
|
|
209
|
+
return new Date();
|
|
210
|
+
}
|
|
211
|
+
function failParse(settingsPath, raw, now, cause, dryRun) {
|
|
212
|
+
const id = formatBackupId(now);
|
|
213
|
+
if (!dryRun) {
|
|
214
|
+
try {
|
|
215
|
+
fs.mkdirSync(path.dirname(settingsPath), { recursive: true });
|
|
216
|
+
fs.writeFileSync(`${settingsPath}.bak.${id}`, raw, {
|
|
217
|
+
encoding: "utf8",
|
|
218
|
+
mode: 0o600,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
// best-effort; the operator-side recovery flow handles missing backups.
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return new HooksParseFailedError("claude-code", id, cause);
|
|
226
|
+
}
|
|
227
|
+
export { HooksParseFailedError } from "./errors.js";
|
|
228
|
+
//# sourceMappingURL=claude-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../../src/cli/hooks-writers/claude-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { HookClientId } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when a client settings file is malformed and we refuse to
|
|
4
|
+
* overwrite. Carries a backup ID the user can reference for recovery —
|
|
5
|
+
* the file's prior contents are saved to `<settings>.bak.<id>`.
|
|
6
|
+
*
|
|
7
|
+
* Message is path-free + content-free by construction so it can be
|
|
8
|
+
* emitted directly without leaking user data.
|
|
9
|
+
*/
|
|
10
|
+
export declare class HooksParseFailedError extends Error {
|
|
11
|
+
readonly client: HookClientId;
|
|
12
|
+
readonly backupId: string;
|
|
13
|
+
readonly cause?: unknown;
|
|
14
|
+
constructor(client: HookClientId, backupId: string, cause?: unknown);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/cli/hooks-writers/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,SAAkB,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEtB,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAWpE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thrown when a client settings file is malformed and we refuse to
|
|
3
|
+
* overwrite. Carries a backup ID the user can reference for recovery —
|
|
4
|
+
* the file's prior contents are saved to `<settings>.bak.<id>`.
|
|
5
|
+
*
|
|
6
|
+
* Message is path-free + content-free by construction so it can be
|
|
7
|
+
* emitted directly without leaking user data.
|
|
8
|
+
*/
|
|
9
|
+
export class HooksParseFailedError extends Error {
|
|
10
|
+
client;
|
|
11
|
+
backupId;
|
|
12
|
+
cause;
|
|
13
|
+
constructor(client, backupId, cause) {
|
|
14
|
+
super(`rift hooks install (${client}): existing settings file is not parseable. ` +
|
|
15
|
+
`Refusing to overwrite. A backup of the prior contents was saved (id: ${backupId}). ` +
|
|
16
|
+
`Repair the file by hand and re-run, or delete it and re-run for a fresh write.`);
|
|
17
|
+
this.name = "HooksParseFailedError";
|
|
18
|
+
this.client = client;
|
|
19
|
+
this.backupId = backupId;
|
|
20
|
+
if (cause !== undefined)
|
|
21
|
+
this.cause = cause;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/cli/hooks-writers/errors.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,MAAM,CAAe;IACrB,QAAQ,CAAS;IACR,KAAK,CAAW;IAElC,YAAY,MAAoB,EAAE,QAAgB,EAAE,KAAe;QACjE,KAAK,CACH,uBAAuB,MAAM,8CAA8C;YACzE,wEAAwE,QAAQ,KAAK;YACrF,gFAAgF,CACnF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HookClientId, HookWriteOutcome } from "./types.js";
|
|
2
|
+
export declare const ALL_HOOK_CLIENTS: readonly HookClientId[];
|
|
3
|
+
export interface HookDispatchOpts {
|
|
4
|
+
client: HookClientId;
|
|
5
|
+
homeDir: string;
|
|
6
|
+
dryRun: boolean;
|
|
7
|
+
now?: () => Date;
|
|
8
|
+
}
|
|
9
|
+
export declare function writeHookConfig(opts: HookDispatchOpts): HookWriteOutcome;
|
|
10
|
+
export declare function isHookClientId(s: string): s is HookClientId;
|
|
11
|
+
export { HooksParseFailedError } from "./errors.js";
|
|
12
|
+
export type { HookClientId, HookWriteOutcome } from "./types.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/hooks-writers/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,eAAO,MAAM,gBAAgB,EAAE,SAAS,YAAY,EAE1C,CAAC;AAEX,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB,CASxE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,YAAY,CAE3D;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hooks-writer dispatch.
|
|
3
|
+
*
|
|
4
|
+
* Currently routes only `claude-code` — kept as a dispatch surface so
|
|
5
|
+
* adding `cursor`, `codex-cli`, or future agents doesn't require
|
|
6
|
+
* reshaping the command layer.
|
|
7
|
+
*/
|
|
8
|
+
import { writeClaudeCodeHook } from "./claude-code.js";
|
|
9
|
+
export const ALL_HOOK_CLIENTS = [
|
|
10
|
+
"claude-code",
|
|
11
|
+
];
|
|
12
|
+
export function writeHookConfig(opts) {
|
|
13
|
+
switch (opts.client) {
|
|
14
|
+
case "claude-code":
|
|
15
|
+
return writeClaudeCodeHook({
|
|
16
|
+
homeDir: opts.homeDir,
|
|
17
|
+
dryRun: opts.dryRun,
|
|
18
|
+
...(opts.now ? { now: opts.now } : {}),
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export function isHookClientId(s) {
|
|
23
|
+
return ALL_HOOK_CLIENTS.includes(s);
|
|
24
|
+
}
|
|
25
|
+
export { HooksParseFailedError } from "./errors.js";
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/hooks-writers/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,MAAM,CAAC,MAAM,gBAAgB,GAA4B;IACvD,aAAa;CACL,CAAC;AASX,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,aAAa;YAChB,OAAO,mBAAmB,CAAC;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvC,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAS;IACtC,OAAQ,gBAAsC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for `rift hooks install` writers.
|
|
3
|
+
*
|
|
4
|
+
* Currently only `claude-code` is supported. The shape mirrors
|
|
5
|
+
* `mcp-config-writers/types.ts` so we can extend to other agents later
|
|
6
|
+
* without reshuffling the dispatch surface.
|
|
7
|
+
*/
|
|
8
|
+
export type HookClientId = "claude-code";
|
|
9
|
+
export interface HookWriteOutcome {
|
|
10
|
+
/** Absolute path of the policy script we manage. */
|
|
11
|
+
scriptPath: string;
|
|
12
|
+
/** Absolute path of the client settings file we touched. */
|
|
13
|
+
settingsPath: string;
|
|
14
|
+
/** Whether settingsPath existed before this run. */
|
|
15
|
+
preexistingSettings: boolean;
|
|
16
|
+
/** Opaque ID surfaced to the user when a backup was written. */
|
|
17
|
+
backupId: string | null;
|
|
18
|
+
/** Hook script was written or replaced this run. */
|
|
19
|
+
scriptUpdated: boolean;
|
|
20
|
+
/** Settings entry was newly added. */
|
|
21
|
+
hookEntryAdded: boolean;
|
|
22
|
+
/** Settings entry existed but its matcher/command shape changed. */
|
|
23
|
+
hookEntryReplaced: boolean;
|
|
24
|
+
/** True when no write touched disk. */
|
|
25
|
+
dryRun: boolean;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cli/hooks-writers/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oDAAoD;IACpD,aAAa,EAAE,OAAO,CAAC;IACvB,sCAAsC;IACtC,cAAc,EAAE,OAAO,CAAC;IACxB,oEAAoE;IACpE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAC;CACjB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for `rift hooks install` writers.
|
|
3
|
+
*
|
|
4
|
+
* Currently only `claude-code` is supported. The shape mirrors
|
|
5
|
+
* `mcp-config-writers/types.ts` so we can extend to other agents later
|
|
6
|
+
* without reshuffling the dispatch surface.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/cli/hooks-writers/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,wBAAgB,aAAa,IAAI,OAAO,CAkCvC"}
|
package/dist/src/cli/index.js
CHANGED
|
@@ -19,6 +19,7 @@ import { makeBackfillCommand } from "./commands/backfill.js";
|
|
|
19
19
|
import { makeTriageCommand } from "./commands/triage.js";
|
|
20
20
|
import { makeOnboardCommand } from "./commands/onboard.js";
|
|
21
21
|
import { makeMcpCommand } from "./commands/mcp-install.js";
|
|
22
|
+
import { makeHooksCommand } from "./commands/hooks-install.js";
|
|
22
23
|
import { makeFeedbackCommand } from "./commands/feedback.js";
|
|
23
24
|
import { makeUninstallCommand } from "./commands/uninstall.js";
|
|
24
25
|
export function createProgram() {
|
|
@@ -48,6 +49,7 @@ export function createProgram() {
|
|
|
48
49
|
program.addCommand(makeTriageCommand());
|
|
49
50
|
program.addCommand(makeOnboardCommand());
|
|
50
51
|
program.addCommand(makeMcpCommand());
|
|
52
|
+
program.addCommand(makeHooksCommand());
|
|
51
53
|
program.addCommand(makeFeedbackCommand());
|
|
52
54
|
program.addCommand(makeUninstallCommand());
|
|
53
55
|
return program;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,MAAM,CAAC;SACZ,WAAW,CAAC,yBAAyB,CAAC;SACtC,OAAO,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC;SAC/B,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,aAAa,CAAC;SAC/D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACtE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE7B,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAE3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mEAAmE;AACnE,MAAM,iBAAiB,GACrB,OAAO,OAAO,KAAK,WAAW;IAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACf,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AAE9C,IAAI,iBAAiB,EAAE,CAAC;IACtB,aAAa,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAC/D,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED