@samuelfaj/distill 1.4.7 → 1.4.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 CHANGED
@@ -23,7 +23,7 @@ D inspect remotes + MR meta
23
23
  R merge/update may block w/o token
24
24
  ```
25
25
 
26
- Inline variables such as `workspace=#w3` and `version=#v1` are learned into DSL memory and reused in later prompts.
26
+ Inline variables use dynamic `<term>=#<letter><digit>` assignments chosen by the model from repeated terms. They stay thread-local unless `distill dsl learn-thread --stdin` sees the explicit variable more than 5 times; learned entries are removed when absent from the next learned thread.
27
27
 
28
28
  `/distill` also has DSL memory:
29
29
 
package/bin/distill.js CHANGED
@@ -41,23 +41,23 @@ function resolveBinaryPath() {
41
41
  process.exit(1);
42
42
  }
43
43
 
44
+ const workspaceBinaryPath = path.resolve(
45
+ __dirname,
46
+ "..",
47
+ "..",
48
+ `distill-${target}`,
49
+ "bin",
50
+ targetSpec.binaryName
51
+ );
52
+
53
+ if (fs.existsSync(workspaceBinaryPath)) {
54
+ return workspaceBinaryPath;
55
+ }
56
+
44
57
  try {
45
58
  const packageJsonPath = requireFromHere.resolve(`${targetSpec.packageName}/package.json`);
46
59
  return path.join(path.dirname(packageJsonPath), "bin", targetSpec.binaryName);
47
60
  } catch (error) {
48
- const workspaceBinaryPath = path.resolve(
49
- __dirname,
50
- "..",
51
- "..",
52
- `distill-${target}`,
53
- "bin",
54
- targetSpec.binaryName
55
- );
56
-
57
- if (fs.existsSync(workspaceBinaryPath)) {
58
- return workspaceBinaryPath;
59
- }
60
-
61
61
  console.error(
62
62
  `[distill] Missing platform package ${targetSpec.packageName}. Reinstall @samuelfaj/distill for this platform.`
63
63
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@samuelfaj/distill",
3
- "version": "1.4.7",
3
+ "version": "1.4.9",
4
4
  "description": "Compress command output for downstream LLMs.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -16,11 +16,11 @@
16
16
  "node": ">=18"
17
17
  },
18
18
  "optionalDependencies": {
19
- "@samuelfaj/distill-darwin-arm64": "1.4.7",
20
- "@samuelfaj/distill-darwin-x64": "1.4.7",
21
- "@samuelfaj/distill-linux-arm64": "1.4.7",
22
- "@samuelfaj/distill-linux-x64": "1.4.7",
23
- "@samuelfaj/distill-win32-x64": "1.4.7"
19
+ "@samuelfaj/distill-darwin-arm64": "1.4.9",
20
+ "@samuelfaj/distill-darwin-x64": "1.4.9",
21
+ "@samuelfaj/distill-linux-arm64": "1.4.9",
22
+ "@samuelfaj/distill-linux-x64": "1.4.9",
23
+ "@samuelfaj/distill-win32-x64": "1.4.9"
24
24
  },
25
25
  "publishConfig": {
26
26
  "access": "public"
@@ -169,30 +169,38 @@ R missing token => merge blocked
169
169
 
170
170
  Every thread must use DSL/Dict when it helps compression.
171
171
  Start with `Dict:` when meanings are not already shared.
172
- Define short thread variables inline when a noun will repeat:
172
+ Define short thread variables inline when a stable noun/phrase appears 2+ times or is likely to repeat across status lines.
173
+ Prefer variables for repeated project nouns, package nouns, component names, workflow names, and repeated technical objects.
174
+ The model chooses the variables dynamically from the current task; there is no fixed variable list.
175
+ At each new response, update `Dict:` only with newly introduced variables.
176
+ Do not repeat variables already defined earlier in the thread or already present in known DSL memory.
177
+ If the response introduces no new variable, omit `Dict:` instead of restating old definitions.
178
+ After defining any `Dict` alias or inline variable, run a substitution pass: every later safe occurrence of that meaning must use the alias/key.
179
+ Keep the full term only when exact spelling is required for a model ID, package name, path, URL, quoted text, or disambiguation.
173
180
 
174
181
  ```text
175
- S npm workspace=#w3 version=#v1 sync no-op
176
- D patch=#p1 package=#p2 manifests mechanically
177
- D regen lock after #p2 manifest sync
178
- N no release tag before clean verify
182
+ S cache=#c1 warmed model=#m1
183
+ D inspect #c1 hit rate
184
+ D compare #m1 latency
185
+ N no extra vars for one-off nouns
179
186
  ```
180
187
 
181
188
  After definition, use the variable:
182
189
 
183
190
  ```text
184
- D inspect #w3 config
185
- D bump #v1 in #p2 manifests
191
+ D tune #c1 ttl
192
+ D benchmark #m1 output
186
193
  ```
187
194
 
188
195
  Rules:
189
196
 
190
- - variable key format: `#` + letter + digit, for example `#w3`
197
+ - variable key format: `#` + letter + digit
191
198
  - one stable meaning per variable inside the thread
192
199
  - do not define variables for secrets, people, IDs, paths, URLs, or one-off terms
193
200
  - do not redefine an active variable; add a new key if meaning changed
194
- - inline `#` variables are active immediately after explicit assignment
195
- - learn reusable variables with `Dict+` or transcript learning when available
201
+ - inline `#` variables are thread-local immediately after explicit assignment
202
+ - persist only variables used more than 5 times in a `distill dsl learn-thread --stdin` transcript
203
+ - remove a learned variable when it is absent from the next learned thread
196
204
 
197
205
  ## Good Response Forms
198
206