@neikyun/ciel 6.9.1 → 6.10.0
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/assets/.claude/hooks/memory-bootstrap.sh +16 -0
- package/assets/.claude/hooks/user-prompt-submit.sh +19 -10
- package/assets/.claude/settings.json +1 -1
- package/assets/CLAUDE.md +19 -0
- package/assets/commands/ciel-audit.md +24 -1
- package/assets/commands/ciel-memory-bootstrap.md +37 -2
- package/assets/commands/ciel-status.md +1 -1
- package/dist/cli/claude.d.ts +12 -0
- package/dist/cli/claude.d.ts.map +1 -1
- package/dist/cli/claude.js +51 -10
- package/dist/cli/claude.js.map +1 -1
- package/package.json +1 -1
|
@@ -33,6 +33,11 @@ declare -a SOURCES=(
|
|
|
33
33
|
# .claude/rules/*.md detected separately (variable count)
|
|
34
34
|
RULES_DIR="$PROJECT_DIR/.claude/rules"
|
|
35
35
|
|
|
36
|
+
# Claude Code's per-project auto-memory dir. Lives OUTSIDE the repo, derived
|
|
37
|
+
# from cwd with `/` replaced by `-`. Tests override via CIEL_AUTO_MEMORY_DIR.
|
|
38
|
+
# Pattern: ~/.claude/projects/-Users-foo-Projects-Bar/memory/
|
|
39
|
+
AUTO_MEMORY_DIR="${CIEL_AUTO_MEMORY_DIR:-$HOME/.claude/projects/$(echo "$PROJECT_DIR" | sed 's|/|-|g')/memory}"
|
|
40
|
+
|
|
36
41
|
# ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
37
42
|
|
|
38
43
|
scan_sources() {
|
|
@@ -58,6 +63,17 @@ scan_sources() {
|
|
|
58
63
|
fi
|
|
59
64
|
fi
|
|
60
65
|
|
|
66
|
+
# Claude Code auto-memory — excludes the MEMORY.md index file (just a TOC,
|
|
67
|
+
# not memory content). Each *.md sibling is a discrete entry to migrate.
|
|
68
|
+
if [[ -d "$AUTO_MEMORY_DIR" ]]; then
|
|
69
|
+
local auto_count
|
|
70
|
+
auto_count=$(find "$AUTO_MEMORY_DIR" -maxdepth 1 -name "*.md" -type f -not -name "MEMORY.md" 2>/dev/null | wc -l | tr -d ' ')
|
|
71
|
+
if [[ "$auto_count" -gt 0 ]]; then
|
|
72
|
+
echo " ✓ $AUTO_MEMORY_DIR/ ($auto_count Claude Code auto-memory entries — to migrate to .ciel/memory/)"
|
|
73
|
+
found=$((found + auto_count))
|
|
74
|
+
fi
|
|
75
|
+
fi
|
|
76
|
+
|
|
61
77
|
echo ""
|
|
62
78
|
if [[ "$found" -eq 0 ]]; then
|
|
63
79
|
echo "No ingestable sources found. The cued-recall memory will populate"
|
|
@@ -51,20 +51,29 @@ except: print(0)
|
|
|
51
51
|
fi
|
|
52
52
|
fi
|
|
53
53
|
|
|
54
|
-
# ─── Cued-recall: intervention
|
|
55
|
-
#
|
|
56
|
-
#
|
|
57
|
-
#
|
|
58
|
-
#
|
|
59
|
-
#
|
|
60
|
-
#
|
|
54
|
+
# ─── Cued-recall: intervention + explicit-save detection ─────────────────────
|
|
55
|
+
# Two narrow buckets, BOTH high-precision (POSIX-ERE, no PCRE lookahead):
|
|
56
|
+
# 1. Intervention regex — user corrections ("you forgot", "non en fait", …)
|
|
57
|
+
# 2. Explicit save-request regex — direct capture asks ("save this to memory", …)
|
|
58
|
+
# Bare verbs without an explicit memory noun (e.g. "remember to commit",
|
|
59
|
+
# "memorise this") are deliberately NOT triggers — an earlier draft used
|
|
60
|
+
# `remember (this|that|it|to)` and fired on every casual "I'll remember to X"
|
|
61
|
+
# prompt, polluting the cued-recall corpus. Each save-request branch REQUIRES
|
|
62
|
+
# the noun `memory`/`mémoire` OR the unambiguous verb+object pair
|
|
63
|
+
# `mémorise <ça/cela/ceci>` / `memorise <this/that/it>`. Anchored to sentence
|
|
64
|
+
# boundary so trailing "remember" never fires. See ADR-0001, skill `memoire`,
|
|
65
|
+
# and packages/ciel/test/hooks-regex.test.ts.
|
|
61
66
|
INTERVENTION_GATE=""
|
|
62
|
-
#
|
|
63
|
-
# to avoid false positives on generic words (wait/stop/actually). Each pattern
|
|
64
|
-
# is a clear signal of correction or "you missed something".
|
|
67
|
+
# Bucket 1: corrections / "you missed something" (unchanged from v6.2 — proven precise)
|
|
65
68
|
if echo "$PROMPT" | grep -qiE "(tu as oublié|t'as oublié|n'oublie pas (que|de)|non en fait|non,? en fait|attention que|rappelle-toi (que|de)|ici on (fait|utilise) plutôt|non on (fait|utilise) plutôt|en fait c'est pas|c'est pas comme ça|mauvaise approche|tu te trompes|you forgot (to|that)|don't forget (to|that)|that's not (right|correct|how)|that's wrong|no[,]? actually|actually,? no|wait[,—-] (no|don't|you forgot)|stop[,—-] (no|you forgot|don't))"; then
|
|
66
69
|
INTERVENTION_GATE=" | CAPTURE GATE: intervention pattern detected — propose AskUserQuestion to capture as memory under .ciel/memory/episodes/ (skill: memoire). Never silent-write."
|
|
67
70
|
fi
|
|
71
|
+
# Bucket 2: explicit save requests — every branch requires the memory noun or
|
|
72
|
+
# unambiguous mémorise/memorise+object. Anchored to start-of-prompt or
|
|
73
|
+
# sentence boundary so "I'll remember the memory of …" never fires.
|
|
74
|
+
if [ -z "$INTERVENTION_GATE" ] && echo "$PROMPT" | grep -qiE "(^|[[:space:].!?])(save (this|that|it) (to|in|into) (the )?memory|put (this|that|it) (in|into) (the )?memory|put (it|this|that) in (the )?memory of ciel|garde (ça|cela|ceci) en (mémoire|memoire)|mets (ça|cela|ceci) en (mémoire|memoire)|enregistre (ça|cela|ceci) (en|dans la|à la) (mémoire|memoire)|sauvegarde (ça|cela|ceci) (en|dans la|à la) (mémoire|memoire)|mémorise (ça|cela|ceci)|memorise (this|that|it))"; then
|
|
75
|
+
INTERVENTION_GATE=" | CAPTURE GATE: explicit save request detected — propose AskUserQuestion then capture as memory under .ciel/memory/episodes/ via memory-engine.py (skill: memoire). NEVER write to Claude Code auto-memory (~/.claude/projects/<slug>/memory/MEMORY.md) — that is a DIFFERENT system and invisible to /ciel-audit. Never silent-write."
|
|
76
|
+
fi
|
|
68
77
|
|
|
69
78
|
# ─── Cued-recall: query memory engine for matching memories ──────────────────
|
|
70
79
|
# Calls hooks/memory-engine.py if installed and a memory corpus exists. The
|
package/assets/CLAUDE.md
CHANGED
|
@@ -151,6 +151,25 @@ The MEMOIRE step writes to a structured corpus that auto-replays when context cu
|
|
|
151
151
|
|
|
152
152
|
**Capture is never auto-silent** — the model surfaces a confirmation question to the user before writing a memory.
|
|
153
153
|
|
|
154
|
+
### Ciel memory ≠ Claude Code auto-memory (HARD ROUTING RULE)
|
|
155
|
+
|
|
156
|
+
Claude Code ships an independent **auto-memory** system (`~/.claude/projects/<slug>/memory/MEMORY.md`) that is **NOT** the Ciel cued-recall corpus. They are different stores with different scopes, formats, and consumers.
|
|
157
|
+
|
|
158
|
+
| | Ciel cued-recall | Claude Code auto-memory |
|
|
159
|
+
|--|--|--|
|
|
160
|
+
| Location | `.ciel/memory/episodes/` (in repo) | `~/.claude/projects/<slug>/memory/MEMORY.md` (per machine, outside repo) |
|
|
161
|
+
| Portable | ✅ ships with the project | ❌ machine-local, lost on `git clone` |
|
|
162
|
+
| Seen by `/ciel-audit` | ✅ Dim 9 reads `index.json` | ❌ invisible |
|
|
163
|
+
| Cued retrieval | ✅ auto-replays on path/symbol/intent match | ❌ broad context injection only |
|
|
164
|
+
| Write API | `python3 hooks/memory-engine.py capture …` | Internal Claude Code tool |
|
|
165
|
+
|
|
166
|
+
**Routing rule (mandatory)**: when the user says "save to memory", "remember this", "put it in memory", "mémoire", "retiens", "enregistre", "garde en mémoire", or any synonym in any language:
|
|
167
|
+
|
|
168
|
+
1. The target is **always** `.ciel/memory/episodes/` via `memory-engine.py capture` — never the Claude Code auto-memory.
|
|
169
|
+
2. Confirm with `AskUserQuestion` first (capture is never silent — see ADR-0001).
|
|
170
|
+
3. The `UserPromptSubmit` hook surfaces `CAPTURE GATE: …` when the phrasing matches — follow it.
|
|
171
|
+
4. If `autoMemoryEnabled` is `true` in `.claude/settings.json` and you find yourself tempted to write to `MEMORY.md`, **STOP**. That setting is opt-in and not used by Ciel. The Ciel template ships with it disabled.
|
|
172
|
+
|
|
154
173
|
## Common failures to avoid
|
|
155
174
|
|
|
156
175
|
These are the most frequently skipped pipeline steps. Do NOT fall into these traps:
|
|
@@ -123,7 +123,7 @@ Scoring:
|
|
|
123
123
|
|
|
124
124
|
**Important**: Do NOT check for `.claude/plugins/ciel/platforms/` or `.opencode/platforms/` directories — these are not part of the v6 architecture. Platform files are installed directly into `.claude/` and `.opencode/` respectively. Do NOT check for codex, cursor, kilocode, lmstudio, ollama, or windsurf — these platforms are not yet implemented.
|
|
125
125
|
|
|
126
|
-
#### Dimension 9: Memory health — penalty up to -
|
|
126
|
+
#### Dimension 9: Memory health — penalty up to -15
|
|
127
127
|
|
|
128
128
|
Check the cued-recall memory system (see `docs/adrs/0001-cued-recall-memory.md`):
|
|
129
129
|
|
|
@@ -131,10 +131,12 @@ Check the cued-recall memory system (see `docs/adrs/0001-cued-recall-memory.md`)
|
|
|
131
131
|
- **index.json exists but episodes/ empty**: `.ciel/memory/episodes/` has no files. Bootstrap ran but no memories were ingested, or the directory structure is incomplete. **-5**
|
|
132
132
|
- **Low trigger ratio**: Count memories with `trigger_count > 0` vs total. If < 30% of memories have ever been triggered, the cue-matching system may be misconfigured or the memories are not relevant to actual usage. **-3**
|
|
133
133
|
- **Stale memories**: Any memory with `stale: true` or with `last_triggered` older than `stale_after_days` (default 90). Stale memories waste index space and should be cleaned up by `memory-engine.py rebuild-index`. **-2**
|
|
134
|
+
- **Auto-memory contamination**: Claude Code's built-in auto-memory (`~/.claude/projects/<slug>/memory/MEMORY.md`) exists for THIS project. This is a DIFFERENT memory store than the Ciel cued-recall corpus. If a user (or the model on their behalf) said "save to memory" and the write landed in `MEMORY.md` instead of `.ciel/memory/episodes/`, that knowledge is invisible to Ciel — not portable across machines, not seen by this audit's cue-matching checks, not replayed when context cues fire. **-5** if `MEMORY.md` is present AND newer than the most recent Ciel episode (suggests recent mis-routed capture).
|
|
134
135
|
|
|
135
136
|
Scoring:
|
|
136
137
|
- index.json missing: **-10** (blocks all other checks)
|
|
137
138
|
- index.json present but no episode files: **-5**
|
|
139
|
+
- Auto-memory contamination detected: **-5** (additive)
|
|
138
140
|
- All checks pass: **0**
|
|
139
141
|
|
|
140
142
|
Run these checks:
|
|
@@ -157,6 +159,27 @@ triggered = sum(1 for m in mems.values() if m.get('trigger_count', 0) > 0)
|
|
|
157
159
|
stale = sum(1 for m in mems.values() if m.get('stale'))
|
|
158
160
|
print(f'total: {total}, triggered: {triggered} ({0 if total==0 else triggered*100//total}%), stale: {stale}')
|
|
159
161
|
" 2>/dev/null || echo "memory check failed (no python3?)"
|
|
162
|
+
|
|
163
|
+
# Detect Claude Code auto-memory contamination
|
|
164
|
+
# The auto-memory slug is the cwd with / replaced by -. If this file exists
|
|
165
|
+
# AND is newer than the most recent Ciel episode, a recent capture was
|
|
166
|
+
# mis-routed to Claude Code auto-memory instead of Ciel's cued-recall store.
|
|
167
|
+
PROJECT_SLUG=$(pwd | sed 's|/|-|g')
|
|
168
|
+
AUTO_MEM="$HOME/.claude/projects/${PROJECT_SLUG}/memory/MEMORY.md"
|
|
169
|
+
if [ -f "$AUTO_MEM" ]; then
|
|
170
|
+
echo "auto-memory: present at $AUTO_MEM"
|
|
171
|
+
LATEST_EPISODE=$(ls -t .ciel/memory/episodes/*.md 2>/dev/null | head -1)
|
|
172
|
+
if [ -z "$LATEST_EPISODE" ] || [ "$AUTO_MEM" -nt "$LATEST_EPISODE" ]; then
|
|
173
|
+
echo "auto-memory: CONTAMINATION — auto-memory newer than latest Ciel episode (mis-routed capture suspected)"
|
|
174
|
+
echo " → root cause: 'autoMemoryEnabled' in .claude/settings.json is enabled."
|
|
175
|
+
echo " fix: set it to false, then migrate entries from $AUTO_MEM"
|
|
176
|
+
echo " to .ciel/memory/episodes/ via memory-engine.py capture"
|
|
177
|
+
else
|
|
178
|
+
echo "auto-memory: present but older than Ciel episodes — likely legacy, no penalty"
|
|
179
|
+
fi
|
|
180
|
+
else
|
|
181
|
+
echo "auto-memory: absent (clean)"
|
|
182
|
+
fi
|
|
160
183
|
```
|
|
161
184
|
|
|
162
185
|
---
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Scan project for ingestable tribal docs (lessons.md, ciel-overlay.md, .claude/rules/, etc.) and propose ingestion into the cued-recall memory under .ciel/memory/. Reports findings if no sources found. Always confirms each candidate with the user before writing.
|
|
2
|
+
description: Scan project for ingestable tribal docs (lessons.md, ciel-overlay.md, .claude/rules/, Claude Code auto-memory at ~/.claude/projects/<slug>/memory/, etc.) and propose ingestion into the cued-recall memory under .ciel/memory/. Reports findings if no sources found. Always confirms each candidate with the user before writing.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# /ciel-memory-bootstrap — Initialize Cued-Recall Memory
|
|
6
6
|
|
|
7
|
-
**Purpose:** First-run scan of an existing project to convert tribal knowledge already documented in `lessons.md`, `ciel-overlay.md`, `.claude/rules/`, and similar files into the structured cued-recall memory at `.ciel/memory/`.
|
|
7
|
+
**Purpose:** First-run scan of an existing project to convert tribal knowledge already documented in `lessons.md`, `ciel-overlay.md`, `.claude/rules/`, Claude Code's per-project auto-memory (`~/.claude/projects/<slug>/memory/`), and similar files into the structured cued-recall memory at `.ciel/memory/`.
|
|
8
8
|
|
|
9
9
|
**Usage:** `/ciel-memory-bootstrap` (no args)
|
|
10
10
|
|
|
@@ -60,6 +60,39 @@ For each source found in Step 1, `Read` the file fully. Identify candidate memor
|
|
|
60
60
|
| `## Heading\n\n- rule\n- rule` (rules.md style) | One memory per rule. |
|
|
61
61
|
| Numbered lessons in `ciel-overlay.md` "Key Lessons" | One memory per lesson. |
|
|
62
62
|
| `## section` in CLAUDE.md/AGENTS.md describing a non-obvious convention | One memory per section. |
|
|
63
|
+
| **Claude Code auto-memory** entries (`~/.claude/projects/<slug>/memory/*.md`, excluding `MEMORY.md`) | One memory per file. Title = frontmatter `description`. Cues derived per "Auto-memory mapping" below. |
|
|
64
|
+
|
|
65
|
+
#### Auto-memory mapping (special parser)
|
|
66
|
+
|
|
67
|
+
Claude Code auto-memory uses a different frontmatter than Ciel's cued-recall. Each source file looks like:
|
|
68
|
+
|
|
69
|
+
```yaml
|
|
70
|
+
---
|
|
71
|
+
name: feedback-okhttp-cookiejar-override
|
|
72
|
+
description: Neiyomi shared PersistentCookieJar overrides manual Cookie headers via OkHttp BridgeInterceptor
|
|
73
|
+
metadata:
|
|
74
|
+
type: feedback
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
(body markdown — Context / Why / How to apply sections)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
When you encounter a file under `$AUTO_MEMORY_DIR`, map it to a Ciel episode as follows:
|
|
81
|
+
|
|
82
|
+
| Auto-memory field | Ciel frontmatter field | Notes |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| `description:` | `title:` | one-line summary |
|
|
85
|
+
| `name:` | base of slug for filename | already kebab-case |
|
|
86
|
+
| `metadata.type:` (`user`/`feedback`/`project`/`reference`) | `intents:` `[<type>]` plus topic-specific intents inferred from body | e.g. `feedback` + `okhttp` + `cookie` |
|
|
87
|
+
| body markdown | Ciel episode body, verbatim | preserve Context/Why/How to apply structure |
|
|
88
|
+
| paths cited in body (e.g. `src/`, `*.kt`, `Caddyfile`) | `path_patterns:` | infer from grep — narrow patterns preferred |
|
|
89
|
+
| symbols cited in body (class/function/table names) | `symbols:` | infer from grep |
|
|
90
|
+
| language hint (file extensions in body) | `languages:` | `kotlin`/`typescript`/`python`/`sql`/etc. |
|
|
91
|
+
| `captured_from:` (NEW) | `auto-memory-migration` | distinguishes from user-intervention captures |
|
|
92
|
+
|
|
93
|
+
**Skip `MEMORY.md`** — it's a table-of-contents index, not memory content. The scan already excludes it.
|
|
94
|
+
|
|
95
|
+
**Backup before delete.** After successfully writing an episode file for an auto-memory entry, MOVE (not delete) the source to `$AUTO_MEMORY_DIR/.migrated-to-ciel/<filename>` so the user can audit migration. The MEMORY.md index file itself stays in place — Claude Code may regenerate it on next session.
|
|
63
96
|
|
|
64
97
|
Skip:
|
|
65
98
|
- The pipeline / workflow descriptions (those belong in CLAUDE.md, not memory)
|
|
@@ -152,6 +185,8 @@ Report:
|
|
|
152
185
|
| Nothing scanned | No tribal docs in this project | Working as intended; report and end |
|
|
153
186
|
| Memories all tagged with broad paths | Source content didn't include path hints | Ask user to refine tags after listing |
|
|
154
187
|
| index.json malformed after rebuild | python3 parse error | Recreate empty index, re-run rebuild step |
|
|
188
|
+
| Auto-memory not detected | Slug derivation mismatch (cwd has unexpected characters) | Override via `CIEL_AUTO_MEMORY_DIR=<absolute-path> bash hooks/memory-bootstrap.sh scan` |
|
|
189
|
+
| Auto-memory file has `name:` but no `description:` | Older auto-memory format | Use first heading or filename as title; ask user to confirm before writing |
|
|
155
190
|
|
|
156
191
|
## See also
|
|
157
192
|
|
package/dist/cli/claude.d.ts
CHANGED
|
@@ -8,6 +8,9 @@ export interface InstallResult {
|
|
|
8
8
|
installed: string[];
|
|
9
9
|
skipped: string[];
|
|
10
10
|
}
|
|
11
|
+
export declare const CIEL_HOOK_FILES: string[];
|
|
12
|
+
export declare const CIEL_LEGACY_HOOK_FILES: string[];
|
|
13
|
+
export declare const CIEL_OWNED_SETTINGS_KEYS: readonly ["autoMemoryEnabled"];
|
|
11
14
|
/**
|
|
12
15
|
* Detect if the project has Claude Code configuration.
|
|
13
16
|
*/
|
|
@@ -16,4 +19,13 @@ export declare function detectClaude(targetDir: string): boolean;
|
|
|
16
19
|
* Install Ciel files for Claude Code platform.
|
|
17
20
|
*/
|
|
18
21
|
export declare function installClaude(opts: ClaudeOptions): InstallResult;
|
|
22
|
+
/**
|
|
23
|
+
* Merge the hooks section of a Ciel settings.json template into an existing
|
|
24
|
+
* settings file. Replaces Ciel-managed hook entries (those whose inner
|
|
25
|
+
* hooks[].command references a known Ciel hook script basename, regardless
|
|
26
|
+
* of path) with the template entries; user-added wrappers are preserved.
|
|
27
|
+
* All other top-level keys (mcpServers, permissions, etc.) are kept from
|
|
28
|
+
* the existing file. Returns null if either file cannot be read or parsed.
|
|
29
|
+
*/
|
|
30
|
+
export declare function mergeSettings(existingPath: string, templatePath: string): object | null;
|
|
19
31
|
//# sourceMappingURL=claude.d.ts.map
|
package/dist/cli/claude.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/cli/claude.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/cli/claude.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAMD,eAAO,MAAM,eAAe,UAa3B,CAAC;AAaF,eAAO,MAAM,sBAAsB,UAIlC,CAAC;AAMF,eAAO,MAAM,wBAAwB,gCAK3B,CAAC;AAEX;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAKvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAuIhE;AA2BD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkEvF"}
|
package/dist/cli/claude.js
CHANGED
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
// Claude Code platform installer logic
|
|
3
3
|
// Handles detection, file copy, and config generation for Claude Code projects
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.CIEL_OWNED_SETTINGS_KEYS = exports.CIEL_LEGACY_HOOK_FILES = exports.CIEL_HOOK_FILES = void 0;
|
|
5
6
|
exports.detectClaude = detectClaude;
|
|
6
7
|
exports.installClaude = installClaude;
|
|
8
|
+
exports.mergeSettings = mergeSettings;
|
|
7
9
|
const fs_1 = require("fs");
|
|
8
10
|
const path_1 = require("path");
|
|
9
11
|
const utils_1 = require("./utils");
|
|
10
|
-
// Hook scripts shipped by Ciel. Used
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
|
|
12
|
+
// Hook scripts CURRENTLY shipped by Ciel. Used by BOTH the install copy loop
|
|
13
|
+
// AND mergeSettings() to recognize Ciel-managed wrappers. Anything in this
|
|
14
|
+
// list will be (re)installed on `--force` upgrade.
|
|
15
|
+
// Exported for test/merge-settings.test.ts — internal API, not for SDK consumers.
|
|
16
|
+
exports.CIEL_HOOK_FILES = [
|
|
15
17
|
"check-test-first.sh",
|
|
16
18
|
"block-destructive.sh",
|
|
17
19
|
"track-file.sh",
|
|
@@ -19,6 +21,37 @@ const CIEL_HOOK_FILES = [
|
|
|
19
21
|
"session-version-check.sh",
|
|
20
22
|
"pre-tool-write.sh",
|
|
21
23
|
"pre-agent-gate.sh",
|
|
24
|
+
// Cued-recall hooks — ship from `.claude/hooks/` to the same destination.
|
|
25
|
+
"session-start.sh",
|
|
26
|
+
"user-prompt-submit.sh",
|
|
27
|
+
"memory-bootstrap.sh",
|
|
28
|
+
"memory-engine.py",
|
|
29
|
+
];
|
|
30
|
+
// Legacy hook basenames from PRIOR Ciel versions. Used ONLY by mergeSettings()
|
|
31
|
+
// to evict stale wrappers on `--force` upgrade — NEVER iterated by the install
|
|
32
|
+
// copy loop (assets/ no longer ships these files).
|
|
33
|
+
//
|
|
34
|
+
// IMPORTANT: every entry here is a basename Ciel has owned at some point.
|
|
35
|
+
// Do NOT add basenames that may belong to USER-DEFINED custom hooks (the
|
|
36
|
+
// mergeSettings() filter uses a substring `cmd.includes(name)` check, so
|
|
37
|
+
// adding a user-owned basename here causes silent data loss on `--force`).
|
|
38
|
+
// Specifically: `post-edit-check.sh` is intentionally absent — it has never
|
|
39
|
+
// been a Ciel-shipped hook; it appears in some user settings as a custom
|
|
40
|
+
// post-edit linter wrapper. Preserve it.
|
|
41
|
+
exports.CIEL_LEGACY_HOOK_FILES = [
|
|
42
|
+
"pre-write-gate.sh", // renamed → pre-tool-write.sh in v2.0
|
|
43
|
+
"post-write-relire.sh", // renamed → post-tool-write.sh in v2.0
|
|
44
|
+
"post-tool-write.sh", // removed in v6.x (replaced by track-file + RELIRE gate)
|
|
45
|
+
];
|
|
46
|
+
// Top-level settings.json keys that Ciel OWNS and SHOULD overwrite on `--force`
|
|
47
|
+
// upgrade, even when the user already has a value. Everything else stays
|
|
48
|
+
// user-controlled (existing wins). Add with care — each entry here is a key
|
|
49
|
+
// the user cannot override via settings.json once they run `ciel-init --force`.
|
|
50
|
+
exports.CIEL_OWNED_SETTINGS_KEYS = [
|
|
51
|
+
// autoMemoryEnabled MUST be false on Ciel projects: Claude Code's auto-memory
|
|
52
|
+
// competes with the cued-recall corpus and is invisible to /ciel-audit.
|
|
53
|
+
// See ADR-0001 and CLAUDE.md "Ciel memory ≠ Claude Code auto-memory".
|
|
54
|
+
"autoMemoryEnabled",
|
|
22
55
|
];
|
|
23
56
|
/**
|
|
24
57
|
* Detect if the project has Claude Code configuration.
|
|
@@ -63,7 +96,7 @@ function installClaude(opts) {
|
|
|
63
96
|
}
|
|
64
97
|
}
|
|
65
98
|
// Hook files
|
|
66
|
-
for (const hook of CIEL_HOOK_FILES) {
|
|
99
|
+
for (const hook of exports.CIEL_HOOK_FILES) {
|
|
67
100
|
const src = (0, path_1.join)(srcDir, ".claude/hooks", hook);
|
|
68
101
|
const dest = (0, path_1.join)(hooksDest, hook);
|
|
69
102
|
if ((0, fs_1.existsSync)(src)) {
|
|
@@ -242,12 +275,13 @@ function mergeSettings(existingPath, templatePath) {
|
|
|
242
275
|
...Object.keys(existingHooks),
|
|
243
276
|
...Object.keys(templateHooks),
|
|
244
277
|
]);
|
|
278
|
+
// A wrapper is Ciel-managed if any inner hook command references a
|
|
279
|
+
// currently-shipped or legacy Ciel basename. Substring match — catches
|
|
280
|
+
// both new `.claude/hooks/x.sh` and legacy `hooks/x.sh` / absolute paths.
|
|
281
|
+
const cielBasenames = [...exports.CIEL_HOOK_FILES, ...exports.CIEL_LEGACY_HOOK_FILES];
|
|
245
282
|
for (const event of allEvents) {
|
|
246
283
|
const templateEntries = templateHooks[event] ?? [];
|
|
247
284
|
const existingEntries = existingHooks[event] ?? [];
|
|
248
|
-
// A wrapper is Ciel-managed if any inner hook command references a
|
|
249
|
-
// known Ciel hook script basename — matches both new `.claude/hooks/x.sh`
|
|
250
|
-
// and legacy `hooks/x.sh` paths so upgrades migrate cleanly.
|
|
251
285
|
const userEntries = existingEntries.filter((e) => {
|
|
252
286
|
const wrapper = e;
|
|
253
287
|
const inner = Array.isArray(wrapper.hooks)
|
|
@@ -255,7 +289,7 @@ function mergeSettings(existingPath, templatePath) {
|
|
|
255
289
|
: [];
|
|
256
290
|
return !inner.some((h) => {
|
|
257
291
|
const cmd = String(h.command ?? "");
|
|
258
|
-
return
|
|
292
|
+
return cielBasenames.some((name) => cmd.includes(name));
|
|
259
293
|
});
|
|
260
294
|
});
|
|
261
295
|
const entries = [...templateEntries, ...userEntries];
|
|
@@ -265,6 +299,13 @@ function mergeSettings(existingPath, templatePath) {
|
|
|
265
299
|
}
|
|
266
300
|
merged.hooks = mergedHooks;
|
|
267
301
|
}
|
|
302
|
+
// Propagate Ciel-owned top-level keys from template — overwrites existing
|
|
303
|
+
// values on `--force`. Without this, flipping a setting in the template
|
|
304
|
+
// (e.g. autoMemoryEnabled false) never reaches users on upgrade.
|
|
305
|
+
for (const k of exports.CIEL_OWNED_SETTINGS_KEYS) {
|
|
306
|
+
if (k in template)
|
|
307
|
+
merged[k] = template[k];
|
|
308
|
+
}
|
|
268
309
|
return merged;
|
|
269
310
|
}
|
|
270
311
|
/**
|
package/dist/cli/claude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/cli/claude.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,+EAA+E
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/cli/claude.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neikyun/ciel",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.10.0",
|
|
4
4
|
"description": "Ciel — Deep-reasoning pipeline for LLM-assisted development. OpenCode plugin + multi-platform CLI (OpenCode, Claude Code, more).",
|
|
5
5
|
"main": "./dist/plugin/index.js",
|
|
6
6
|
"types": "./dist/plugin/index.d.ts",
|