clew-code 0.2.7 → 0.2.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.
- package/README.md +292 -299
- package/dist/main.js +2745 -2869
- package/docs/architecture.html +148 -145
- package/docs/architecture.th.html +79 -78
- package/docs/clew-code-architecture.html +1125 -0
- package/docs/commands.html +224 -223
- package/docs/commands.th.html +131 -130
- package/docs/configuration.html +147 -145
- package/docs/configuration.th.html +108 -106
- package/docs/css/styles.css +48 -42
- package/docs/daemon.html +129 -128
- package/docs/daemon.th.html +73 -72
- package/docs/features/bridge-mode.html +99 -98
- package/docs/features/bridge-mode.th.html +90 -89
- package/docs/features/evals.html +182 -181
- package/docs/features/evals.th.html +90 -89
- package/docs/features/peer.html +178 -177
- package/docs/features/searxng-search.html +151 -150
- package/docs/features/searxng-search.th.html +95 -94
- package/docs/features/sentry-setup.html +157 -156
- package/docs/features/sentry-setup.th.html +97 -96
- package/docs/index.html +299 -298
- package/docs/index.th.html +292 -290
- package/docs/installation.html +105 -103
- package/docs/installation.th.html +105 -103
- package/docs/internals/growthbook-ab-testing.html +113 -112
- package/docs/internals/growthbook-ab-testing.th.html +81 -80
- package/docs/internals/hidden-features.html +149 -147
- package/docs/internals/hidden-features.th.html +109 -107
- package/docs/js/main.js +83 -3
- package/docs/loop.html +181 -180
- package/docs/loop.th.html +227 -226
- package/docs/mcp.html +247 -246
- package/docs/mcp.th.html +207 -206
- package/docs/models.html +111 -110
- package/docs/models.th.html +61 -60
- package/docs/peer.html +236 -235
- package/docs/peer.th.html +280 -279
- package/docs/permission-model.html +102 -101
- package/docs/permission-model.th.html +67 -66
- package/docs/plugins.html +102 -101
- package/docs/plugins.th.html +79 -78
- package/docs/providers.html +126 -117
- package/docs/providers.th.html +80 -78
- package/docs/quick-start.html +93 -92
- package/docs/quick-start.th.html +40 -39
- package/docs/research-memory.html +82 -79
- package/docs/research-memory.th.html +72 -71
- package/docs/skills.html +117 -116
- package/docs/skills.th.html +90 -89
- package/docs/tools.html +170 -169
- package/docs/tools.th.html +84 -83
- package/docs/troubleshooting.html +106 -105
- package/docs/troubleshooting.th.html +85 -84
- package/package.json +164 -162
- package/docs/taste.html +0 -436
- package/docs/taste.th.html +0 -236
package/docs/taste.html
DELETED
|
@@ -1,436 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Taste — Clew Code</title>
|
|
7
|
-
<meta name="description" content="Local-first preference-learning runtime for Clew — accept/reject signals, symbolic rules, and bandit optimization.">
|
|
8
|
-
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
-
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
11
|
-
<link rel="stylesheet" href="css/styles.css">
|
|
12
|
-
<link rel="icon" type="image/svg+xml" href="./assets/clew.svg">
|
|
13
|
-
</head>
|
|
14
|
-
<body>
|
|
15
|
-
<header class="header"></header>
|
|
16
|
-
<div class="app">
|
|
17
|
-
<aside class="sidebar" id="sidebar"></aside>
|
|
18
|
-
<div class="sidebar-overlay" id="sidebarOverlay"></div>
|
|
19
|
-
<div class="content-wrap">
|
|
20
|
-
<main class="content">
|
|
21
|
-
<div class="breadcrumbs"><a href="index.html">Home</a><span class="sep">/</span><span>Taste</span></div>
|
|
22
|
-
<h1>Taste</h1>
|
|
23
|
-
<p class="section-subtitle">Local-first preference-learning runtime for Clew Code.</p>
|
|
24
|
-
|
|
25
|
-
<p>Taste learns your coding style from accept, reject, edit, test, lint signals and manual rules. It combines symbolic rules, semantic preference scoring, and contextual bandit optimization to adapt Clew's output to your preferences.</p>
|
|
26
|
-
|
|
27
|
-
<p>It does <strong>not</strong> fine-tune the base LLM. All learning is local, online, and preference-based.</p>
|
|
28
|
-
|
|
29
|
-
<h2>What It Learns</h2>
|
|
30
|
-
<ul>
|
|
31
|
-
<li><strong>Code style</strong> — formatting, naming conventions, preferred patterns</li>
|
|
32
|
-
<li><strong>Architecture</strong> — module structure, dependency direction, layering</li>
|
|
33
|
-
<li><strong>Tooling</strong> — preferred build tools, linters, test frameworks</li>
|
|
34
|
-
<li><strong>Testing</strong> — test style, coverage expectations, mocking patterns</li>
|
|
35
|
-
<li><strong>Naming</strong> — variable, function, and class naming conventions</li>
|
|
36
|
-
<li><strong>Security</strong> — safe patterns vs unsafe patterns</li>
|
|
37
|
-
<li><strong>Performance</strong> — efficient algorithms, caching, resource management</li>
|
|
38
|
-
<li><strong>UI patterns</strong> — component structure, state management, styling approach</li>
|
|
39
|
-
<li><strong>Workflow</strong> — commit style, review preferences, deployment habits</li>
|
|
40
|
-
</ul>
|
|
41
|
-
|
|
42
|
-
<h2>What It Does Not Do</h2>
|
|
43
|
-
<ul>
|
|
44
|
-
<li>Does not fine-tune or modify the base LLM</li>
|
|
45
|
-
<li>Does not send taste data to remote services (all data stays local)</li>
|
|
46
|
-
<li>Does not automatically block edits without showing a reason</li>
|
|
47
|
-
<li>Does not replace memory, skills, or CLAUDE.md files</li>
|
|
48
|
-
</ul>
|
|
49
|
-
|
|
50
|
-
<h2>How It Differs from Other Systems</h2>
|
|
51
|
-
<div class="table-wrap">
|
|
52
|
-
<table>
|
|
53
|
-
<thead>
|
|
54
|
-
<tr>
|
|
55
|
-
<th>System</th>
|
|
56
|
-
<th>Purpose</th>
|
|
57
|
-
<th>Storage</th>
|
|
58
|
-
<th>Scope</th>
|
|
59
|
-
</tr>
|
|
60
|
-
</thead>
|
|
61
|
-
<tbody>
|
|
62
|
-
<tr>
|
|
63
|
-
<td><strong>CLAUDE.md</strong></td>
|
|
64
|
-
<td>Project instructions</td>
|
|
65
|
-
<td><code>.claude/</code> files</td>
|
|
66
|
-
<td>Static project rules</td>
|
|
67
|
-
</tr>
|
|
68
|
-
<tr>
|
|
69
|
-
<td><strong>Memory</strong></td>
|
|
70
|
-
<td>Cross-session facts</td>
|
|
71
|
-
<td><code>memdir/</code></td>
|
|
72
|
-
<td>Recall</td>
|
|
73
|
-
</tr>
|
|
74
|
-
<tr>
|
|
75
|
-
<td><strong>Skills</strong></td>
|
|
76
|
-
<td>Reusable procedures</td>
|
|
77
|
-
<td>Plugin/skill system</td>
|
|
78
|
-
<td>Task automation</td>
|
|
79
|
-
</tr>
|
|
80
|
-
<tr>
|
|
81
|
-
<td><strong>Taste</strong></td>
|
|
82
|
-
<td>Learned preferences</td>
|
|
83
|
-
<td><code>.clew/taste/</code></td>
|
|
84
|
-
<td>Adaptive preference optimization</td>
|
|
85
|
-
</tr>
|
|
86
|
-
</tbody>
|
|
87
|
-
</table>
|
|
88
|
-
</div>
|
|
89
|
-
|
|
90
|
-
<ul>
|
|
91
|
-
<li>Rules are explicit user preferences</li>
|
|
92
|
-
<li>Memory is facts about the user and project</li>
|
|
93
|
-
<li>Skills are reusable task procedures</li>
|
|
94
|
-
<li>Taste is learned, weighted preference signals</li>
|
|
95
|
-
</ul>
|
|
96
|
-
|
|
97
|
-
<h2>Storage Paths</h2>
|
|
98
|
-
<div class="table-wrap">
|
|
99
|
-
<table>
|
|
100
|
-
<thead>
|
|
101
|
-
<tr>
|
|
102
|
-
<th>Data</th>
|
|
103
|
-
<th>Path</th>
|
|
104
|
-
</tr>
|
|
105
|
-
</thead>
|
|
106
|
-
<tbody>
|
|
107
|
-
<tr>
|
|
108
|
-
<td>Project profile</td>
|
|
109
|
-
<td><code>.clew/taste/profile.json</code></td>
|
|
110
|
-
</tr>
|
|
111
|
-
<tr>
|
|
112
|
-
<td>Project event log</td>
|
|
113
|
-
<td><code>.clew/taste/events.jsonl</code></td>
|
|
114
|
-
</tr>
|
|
115
|
-
<tr>
|
|
116
|
-
<td>Project packages</td>
|
|
117
|
-
<td><code>.clew/taste/packages/</code></td>
|
|
118
|
-
</tr>
|
|
119
|
-
<tr>
|
|
120
|
-
<td>Global profile</td>
|
|
121
|
-
<td><code>~/.clew/taste/profile.json</code></td>
|
|
122
|
-
</tr>
|
|
123
|
-
<tr>
|
|
124
|
-
<td>Global packages</td>
|
|
125
|
-
<td><code>~/.clew/taste/packages/</code></td>
|
|
126
|
-
</tr>
|
|
127
|
-
</tbody>
|
|
128
|
-
</table>
|
|
129
|
-
</div>
|
|
130
|
-
|
|
131
|
-
<h2>Commands</h2>
|
|
132
|
-
<div class="table-wrap">
|
|
133
|
-
<table>
|
|
134
|
-
<thead>
|
|
135
|
-
<tr>
|
|
136
|
-
<th>Command</th>
|
|
137
|
-
<th>Description</th>
|
|
138
|
-
</tr>
|
|
139
|
-
</thead>
|
|
140
|
-
<tbody>
|
|
141
|
-
<tr>
|
|
142
|
-
<td><code>/taste</code></td>
|
|
143
|
-
<td>Open interactive menu (arrow-key navigable)</td>
|
|
144
|
-
</tr>
|
|
145
|
-
<tr>
|
|
146
|
-
<td><code>/taste status</code></td>
|
|
147
|
-
<td>Print status</td>
|
|
148
|
-
</tr>
|
|
149
|
-
<tr>
|
|
150
|
-
<td><code>/taste learn <rule></code></td>
|
|
151
|
-
<td>Add a manual rule</td>
|
|
152
|
-
</tr>
|
|
153
|
-
<tr>
|
|
154
|
-
<td><code>/taste forget <id></code></td>
|
|
155
|
-
<td>Remove a rule by ID</td>
|
|
156
|
-
</tr>
|
|
157
|
-
<tr>
|
|
158
|
-
<td><code>/taste profile</code></td>
|
|
159
|
-
<td>Show full profile with rules</td>
|
|
160
|
-
</tr>
|
|
161
|
-
<tr>
|
|
162
|
-
<td><code>/taste events</code></td>
|
|
163
|
-
<td>Show recent learning events</td>
|
|
164
|
-
</tr>
|
|
165
|
-
<tr>
|
|
166
|
-
<td><code>/taste decay</code></td>
|
|
167
|
-
<td>Apply confidence decay</td>
|
|
168
|
-
</tr>
|
|
169
|
-
<tr>
|
|
170
|
-
<td><code>/taste eval</code></td>
|
|
171
|
-
<td>Run profile self-evaluation</td>
|
|
172
|
-
</tr>
|
|
173
|
-
<tr>
|
|
174
|
-
<td><code>/taste export</code></td>
|
|
175
|
-
<td>Export high-confidence rules</td>
|
|
176
|
-
</tr>
|
|
177
|
-
<tr>
|
|
178
|
-
<td><code>/taste import <file></code></td>
|
|
179
|
-
<td>Import rules from file</td>
|
|
180
|
-
</tr>
|
|
181
|
-
<tr>
|
|
182
|
-
<td><code>/taste on</code></td>
|
|
183
|
-
<td>Enable taste</td>
|
|
184
|
-
</tr>
|
|
185
|
-
<tr>
|
|
186
|
-
<td><code>/taste off</code></td>
|
|
187
|
-
<td>Disable taste</td>
|
|
188
|
-
</tr>
|
|
189
|
-
</tbody>
|
|
190
|
-
</table>
|
|
191
|
-
</div>
|
|
192
|
-
|
|
193
|
-
<h2>Configuration</h2>
|
|
194
|
-
<p>Settings in <code>settings.json</code>:</p>
|
|
195
|
-
<div class="code-block-wrap">
|
|
196
|
-
<div class="code-block-header">
|
|
197
|
-
<span>json</span>
|
|
198
|
-
</div>
|
|
199
|
-
<pre><code>{
|
|
200
|
-
"taste": {
|
|
201
|
-
"enabled": true,
|
|
202
|
-
"autoLearn": true,
|
|
203
|
-
"injectPrompts": true,
|
|
204
|
-
"validateEdits": true,
|
|
205
|
-
"minConfidence": 0.55,
|
|
206
|
-
"maxInjectedRules": 8,
|
|
207
|
-
"decayEnabled": true,
|
|
208
|
-
"banditEnabled": true,
|
|
209
|
-
"neuralScoringEnabled": true
|
|
210
|
-
}
|
|
211
|
-
}</code></pre>
|
|
212
|
-
</div>
|
|
213
|
-
|
|
214
|
-
<h2>Architecture</h2>
|
|
215
|
-
<pre><code> ╔══════════════════════════════════════════════════════════════════════════════╗
|
|
216
|
-
║ TASTE — PREFERENCE LEARNING RUNTIME ║
|
|
217
|
-
╚══════════════════════════════════════════════════════════════════════════════╝
|
|
218
|
-
|
|
219
|
-
┌──────────────────────────┐
|
|
220
|
-
│ USER INTERACTION │
|
|
221
|
-
│ accept / reject / edit │
|
|
222
|
-
│ test pass / lint signal │
|
|
223
|
-
└────────────┬─────────────┘
|
|
224
|
-
│
|
|
225
|
-
┌─────────────────────────────┼─────────────────────────────┐
|
|
226
|
-
│ │ │
|
|
227
|
-
▼ ▼ ▼
|
|
228
|
-
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
|
|
229
|
-
│ AcceptReject │ │ DiffSignal │ │EditDistance │
|
|
230
|
-
│ Tracker │ │ Extractor │ │ Reward │
|
|
231
|
-
│ (accept/reject│ │ (diff delta) │ │ (edit cost) │
|
|
232
|
-
│ signals) │ │ │ │ │
|
|
233
|
-
└───────┬───────┘ └───────┬───────┘ └───────┬───────┘
|
|
234
|
-
│ │ │
|
|
235
|
-
└──────────────────────────┼───────────────────────────┘
|
|
236
|
-
│
|
|
237
|
-
▼
|
|
238
|
-
┌─────────────────────┐
|
|
239
|
-
│ TasteSignalCollector │
|
|
240
|
-
│ (unified event hub) │
|
|
241
|
-
└──────────┬──────────┘
|
|
242
|
-
│
|
|
243
|
-
▼
|
|
244
|
-
┌─────────────────────┐
|
|
245
|
-
│ TasteRewardModel │
|
|
246
|
-
│ signal → reward map │
|
|
247
|
-
│ accept = +1.0 │
|
|
248
|
-
│ reject = -1.0 │
|
|
249
|
-
│ test pass = +0.4 │
|
|
250
|
-
└──────────┬──────────┘
|
|
251
|
-
│
|
|
252
|
-
┌───────────────┼───────────────┐
|
|
253
|
-
│ │ │
|
|
254
|
-
▼ ▼ ▼
|
|
255
|
-
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
256
|
-
│TasteBandit │ │AutoLearn │ │TasteDecay │
|
|
257
|
-
│ε-greedy (6 │ │Engine │ │confidence ↓ │
|
|
258
|
-
│strategy arms)│ │pattern→rule │ │over time │
|
|
259
|
-
│pick optimal │ │ │ │if unused │
|
|
260
|
-
│arm per ctx │ │ │ │ │
|
|
261
|
-
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
|
|
262
|
-
│ │ │
|
|
263
|
-
│ ┌───────────┘ │
|
|
264
|
-
│ │ │
|
|
265
|
-
▼ ▼ │
|
|
266
|
-
┌──────────────────┐ │
|
|
267
|
-
│ TasteRuntime │◄────────────────────┘
|
|
268
|
-
│ (orchestrator) │
|
|
269
|
-
└────────┬─────────┘
|
|
270
|
-
│
|
|
271
|
-
┌─────────────┼─────────────┬──────────────────┐
|
|
272
|
-
│ │ │ │
|
|
273
|
-
▼ ▼ ▼ ▼
|
|
274
|
-
┌─────────┐ ┌──────────┐ ┌──────────────┐ ┌────────────────┐
|
|
275
|
-
│Symbolic │ │Neural │ │PromptInjector│ │ TasteEventLog │
|
|
276
|
-
│Engine │ │Scorer │ │injects │ │ append-only │
|
|
277
|
-
│compile │ │Jaccard/ │ │<clew_taste> │ │ JSONL │
|
|
278
|
-
│rules→ │ │TF-IDF │ │block (max 8 │ │ │
|
|
279
|
-
│check │ │relevance │ │rules) │ │ │
|
|
280
|
-
└────┬────┘ └────┬─────┘ └──────┬───────┘ └────────────────┘
|
|
281
|
-
│ │ │
|
|
282
|
-
▼ │ ▼
|
|
283
|
-
┌─────────┐ │ ┌────────────────┐
|
|
284
|
-
│validate │ │ │ SYSTEM PROMPT │
|
|
285
|
-
│Edit() │ └────►│ (taste block) │
|
|
286
|
-
│block if │ │ │
|
|
287
|
-
│conf ≥ │ │ → AI adapts │
|
|
288
|
-
│0.85 │ │ output style │
|
|
289
|
-
└─────────┘ └────────────────┘
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
═══ CODEBASE AUTO-LEARN (parallel path) ═══
|
|
293
|
-
|
|
294
|
-
Codebase ──► TasteCodebaseAnalyzer ──► PatternDetector ──► AutoLearnEngine
|
|
295
|
-
(reads conventions) (finds patterns) (creates rules)
|
|
296
|
-
│
|
|
297
|
-
▼
|
|
298
|
-
TasteProfileStore
|
|
299
|
-
.clew/taste/profile.json
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
═══ DATA LIFECYCLE ═══
|
|
303
|
-
|
|
304
|
-
Signal ──► EventLog (JSONL) ──► Rule confidence +/- ──► Decay if unused 30d
|
|
305
|
-
│
|
|
306
|
-
▼
|
|
307
|
-
Profile persisted
|
|
308
|
-
to .clew/taste/</code></pre>
|
|
309
|
-
|
|
310
|
-
<p>Taste consists of several subsystems:</p>
|
|
311
|
-
<ol>
|
|
312
|
-
<li><strong>Signal Collection</strong> — Captures accept, reject, edit, test, lint, and tool signals from user interactions and converts them into learning events.</li>
|
|
313
|
-
<li><strong>Reward Model</strong> — Maps signal types to numeric reward values (accept = +1.0, reject = -1.0, test pass = +0.4, etc.) and computes edit distance rewards dynamically.</li>
|
|
314
|
-
<li><strong>Symbolic Engine</strong> — Compiles high-confidence rules into checkable constraints. Rules with confidence >= 0.85 can block edit acceptance. Rules below threshold warn without blocking. Never blocks silently.</li>
|
|
315
|
-
<li><strong>Neural Scorer</strong> — Provider-agnostic lexical similarity scoring (Jaccard/TF-IDF) that scores candidate output against active rules. Extensible to use embedding APIs when available.</li>
|
|
316
|
-
<li><strong>Contextual Bandit</strong> — Epsilon-greedy bandit with 6 strategy arms (minimal, strict_style, architecture_first, test_first, safety_first, refactor_heavy). Selects optimal strategy based on feedback and context features.</li>
|
|
317
|
-
<li><strong>Prompt Injection</strong> — Injects a compact <code><clew_taste></code> block into the system prompt with relevant rules. Max 8 rules by default, filtered by confidence and sorted by relevance.</li>
|
|
318
|
-
<li><strong>Decay Engine</strong> — Gradual confidence reduction for unused rules (half-life based, default 30 days). Prevents stale preferences from persisting.</li>
|
|
319
|
-
<li><strong>Event Log</strong> — Append-only JSONL file storing all raw learning events for auditability and regression analysis.</li>
|
|
320
|
-
</ol>
|
|
321
|
-
|
|
322
|
-
<h2>Continuous RL (Local Online Preference Optimization)</h2>
|
|
323
|
-
<p>Taste implements <strong>local online preference optimization</strong>:</p>
|
|
324
|
-
<ul>
|
|
325
|
-
<li><strong>Online</strong> — learns continuously from each interaction, no batch training</li>
|
|
326
|
-
<li><strong>Local</strong> — all computation and storage stays on the user's machine</li>
|
|
327
|
-
<li><strong>Preference-based</strong> — optimizes for user preferences via reward signals</li>
|
|
328
|
-
<li><strong>Multi-objective</strong> — balances style, correctness, safety, and efficiency</li>
|
|
329
|
-
</ul>
|
|
330
|
-
|
|
331
|
-
<p>The learning loop:</p>
|
|
332
|
-
<ol>
|
|
333
|
-
<li>User interacts with Clew (accepts, rejects, edits output)</li>
|
|
334
|
-
<li>Signal collector captures the interaction as a typed event with reward</li>
|
|
335
|
-
<li>Bandit arm updates based on reward signal</li>
|
|
336
|
-
<li>Rule confidence adjusts based on positive/negative evidence</li>
|
|
337
|
-
<li>Prompt injection adapts to reflect current learned preferences</li>
|
|
338
|
-
<li>Decay gradually reduces stale rule confidence</li>
|
|
339
|
-
</ol>
|
|
340
|
-
|
|
341
|
-
<p>This is <strong>not</strong> LLM fine-tuning. The base model's weights never change. Taste adapts the prompt context and edit validation, not the model itself.</p>
|
|
342
|
-
|
|
343
|
-
<h2>Privacy</h2>
|
|
344
|
-
<ul>
|
|
345
|
-
<li>All taste data stays local by default</li>
|
|
346
|
-
<li>Profiles and event logs are stored in <code>.clew/taste/</code> or <code>~/.clew/taste/</code></li>
|
|
347
|
-
<li>No data is sent to remote services</li>
|
|
348
|
-
<li>Export/import is explicit and user-initiated</li>
|
|
349
|
-
<li>Event logs are append-only for auditability</li>
|
|
350
|
-
</ul>
|
|
351
|
-
|
|
352
|
-
<h2>Integration Points</h2>
|
|
353
|
-
<div class="table-wrap">
|
|
354
|
-
<table>
|
|
355
|
-
<thead>
|
|
356
|
-
<tr>
|
|
357
|
-
<th>Point</th>
|
|
358
|
-
<th>Status</th>
|
|
359
|
-
<th>Description</th>
|
|
360
|
-
</tr>
|
|
361
|
-
</thead>
|
|
362
|
-
<tbody>
|
|
363
|
-
<tr>
|
|
364
|
-
<td>Prompt injection</td>
|
|
365
|
-
<td>Implemented</td>
|
|
366
|
-
<td>System prompt taste block via <code>TastePromptInjector</code></td>
|
|
367
|
-
</tr>
|
|
368
|
-
<tr>
|
|
369
|
-
<td>Edit validation</td>
|
|
370
|
-
<td>Implemented</td>
|
|
371
|
-
<td><code>validateEdit()</code> called in <code>FileEditPermissionRequest</code></td>
|
|
372
|
-
</tr>
|
|
373
|
-
<tr>
|
|
374
|
-
<td>Accept/reject signals</td>
|
|
375
|
-
<td>Implemented</td>
|
|
376
|
-
<td>Fire-and-forget via <code>recordAcceptSignal</code> / <code>recordRejectSignal</code> in <code>PermissionContext</code></td>
|
|
377
|
-
</tr>
|
|
378
|
-
<tr>
|
|
379
|
-
<td>Test/lint signals</td>
|
|
380
|
-
<td>No-op stub</td>
|
|
381
|
-
<td>Ready for <code>PostToolUse</code> output analysis</td>
|
|
382
|
-
</tr>
|
|
383
|
-
<tr>
|
|
384
|
-
<td>Tool result signals</td>
|
|
385
|
-
<td>Implemented</td>
|
|
386
|
-
<td><code>recordToolSignal()</code> in <code>toolExecution.ts</code></td>
|
|
387
|
-
</tr>
|
|
388
|
-
<tr>
|
|
389
|
-
<td>Interactive menu</td>
|
|
390
|
-
<td>Implemented</td>
|
|
391
|
-
<td><code>/taste</code> Dialog with 11 actions, Spinner loading, input pre-fill</td>
|
|
392
|
-
</tr>
|
|
393
|
-
<tr>
|
|
394
|
-
<td>Status line</td>
|
|
395
|
-
<td>Implemented</td>
|
|
396
|
-
<td><code>TasteStatusLine</code> shown in <code>PromptInputFooter</code></td>
|
|
397
|
-
</tr>
|
|
398
|
-
<tr>
|
|
399
|
-
<td>Config live-reload</td>
|
|
400
|
-
<td>Implemented</td>
|
|
401
|
-
<td><code>subscribeToSettingsChanges()</code> reloads config at runtime</td>
|
|
402
|
-
</tr>
|
|
403
|
-
<tr>
|
|
404
|
-
<td>Settings config</td>
|
|
405
|
-
<td>Implemented</td>
|
|
406
|
-
<td><code>taste.*</code> in <code>settings.json</code></td>
|
|
407
|
-
</tr>
|
|
408
|
-
</tbody>
|
|
409
|
-
</table>
|
|
410
|
-
</div>
|
|
411
|
-
|
|
412
|
-
<h2>Example Usage</h2>
|
|
413
|
-
<pre><code>/taste # Open interactive menu
|
|
414
|
-
/taste learn Use const instead of let
|
|
415
|
-
/taste learn Prefer named exports
|
|
416
|
-
/taste learn Never use any type
|
|
417
|
-
/taste status
|
|
418
|
-
/taste profile
|
|
419
|
-
/taste eval
|
|
420
|
-
/taste export</code></pre>
|
|
421
|
-
|
|
422
|
-
<footer class="footer">
|
|
423
|
-
<span>Clew Code v0.2.4 — Open Source</span>
|
|
424
|
-
<div class="footer-links">
|
|
425
|
-
<a href="https://github.com/JonusNattapong/ClewCode">GitHub</a>
|
|
426
|
-
<a href="https://github.com/JonusNattapong/ClewCode/issues">Issues</a>
|
|
427
|
-
<a href="https://npmjs.com/package/clew-code">npm</a>
|
|
428
|
-
</div>
|
|
429
|
-
</footer>
|
|
430
|
-
</main>
|
|
431
|
-
<nav class="toc-sidebar"></nav>
|
|
432
|
-
</div>
|
|
433
|
-
</div>
|
|
434
|
-
<script src="js/main.js"></script>
|
|
435
|
-
</body>
|
|
436
|
-
</html>
|