dsh-vibe-math 2.0.1 → 2.0.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/installer.js +35 -1
- package/package.json +1 -1
package/installer.js
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
// are preserved and reported via the logger.
|
|
25
25
|
// - same version: no-op (idempotent). Missing files are ALWAYS restored.
|
|
26
26
|
// - force a full refresh at any time: delete the preset dirs and restart DSH.
|
|
27
|
-
import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs'
|
|
27
|
+
import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, unlinkSync, rmdirSync } from 'node:fs'
|
|
28
28
|
import { createHash } from 'node:crypto'
|
|
29
29
|
import { homedir } from 'node:os'
|
|
30
30
|
import { dirname, join } from 'node:path'
|
|
@@ -195,8 +195,42 @@ export async function apply(ctx) {
|
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
+
// Clean up preset dirs that this bundle NO LONGER manages (e.g. vibe-math-v1 after it was
|
|
199
|
+
// removed at v2.0.0). The copy loop only adds/updates PRESETS; it never deletes a preset that
|
|
200
|
+
// was dropped, so an old removed preset would linger in the picker forever. Here we remove the
|
|
201
|
+
// files this installer previously recorded as package-owned under a prefix that is no longer in
|
|
202
|
+
// PRESETS, then drop the dir if it became empty. User-owned files (provenance 'user') are kept.
|
|
203
|
+
const currentPrefixes = new Set(PRESETS.map(p => p.src + '/'))
|
|
204
|
+
let removedFiles = 0
|
|
205
|
+
let removedDirs = []
|
|
206
|
+
const stale = new Map() // prefix -> [keys]
|
|
207
|
+
for (const key of Object.keys(prevFiles)) {
|
|
208
|
+
const slash = key.indexOf('/')
|
|
209
|
+
if (slash === -1) continue
|
|
210
|
+
const prefix = key.slice(0, slash + 1)
|
|
211
|
+
if (currentPrefixes.has(prefix)) continue
|
|
212
|
+
if (!stale.has(prefix)) stale.set(prefix, [])
|
|
213
|
+
stale.get(prefix).push(key)
|
|
214
|
+
}
|
|
215
|
+
for (const [prefix, keys] of stale) {
|
|
216
|
+
let dirEmpty = true
|
|
217
|
+
for (const key of keys) {
|
|
218
|
+
const rec = (prevFiles[key] && typeof prevFiles[key] === 'object') ? prevFiles[key] : { provenance: 'package' }
|
|
219
|
+
if (rec.provenance === 'user') { dirEmpty = false; continue } // 用户文件 → 保留
|
|
220
|
+
const f = join(presetRoot, key)
|
|
221
|
+
if (existsSync(f)) { try { unlinkSync(f); removedFiles += 1 } catch (e) {} }
|
|
222
|
+
if (existsSync(f)) dirEmpty = false
|
|
223
|
+
}
|
|
224
|
+
const dir = join(presetRoot, prefix.slice(0, -1))
|
|
225
|
+
if (dirEmpty && existsSync(dir)) { try { rmdirSync(dir); removedDirs.push(dir) } catch (e) {} }
|
|
226
|
+
}
|
|
227
|
+
|
|
198
228
|
writeState(stateFile, { version: pkgVersion, files: nextFiles, updatedAt: Date.now() })
|
|
199
229
|
|
|
230
|
+
if (removedFiles > 0 || removedDirs.length > 0) {
|
|
231
|
+
logger?.info?.('[dsh-vibe-math] preset cleanup: removed ' + removedFiles + ' file(s) from ' + removedDirs.length + ' stale preset dir(s) (' + removedDirs.map(d => d.split(/[\\/]/).pop()).join(', ') + ') that are no longer shipped.')
|
|
232
|
+
}
|
|
233
|
+
|
|
200
234
|
if (isUpgrade) {
|
|
201
235
|
logger?.info?.('[dsh-vibe-math] preset auto-update: version ' + (state.version || '(none)') + ' → ' + pkgVersion +
|
|
202
236
|
' — 新增 ' + installed + ' 个文件,更新 ' + updated + ' 个文件' +
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-vibe-math",
|
|
3
3
|
"description": "Multi-agent mathematical problem-solving & verification frameworks for DeepSeek Harness — THREE agent presets in one install: vibe-math-v2 (probability-driven: qs.json + Propos knowledge base + explorer→solver→review/debate verdict), vibe-math-v3 (THIRD-generation, recommended: paper-style Markdown knowledge base with Problems/Progress/Propos/Methods/Verified + planner-agent scheduling that decides the next N actions + universal theory/method invention library + agents write their own Markdown directly via a per-file write lock), and vibe-math-v4 (FOURTH-generation: persistent self-organizing resident subagents that message & meet to decide all tasks, verify only by unanimous consensus, /compact at a context threshold, and stop only when all agree the problem is solved). Installing this bundle auto-installs all three presets (v1 was removed at v2.0.0).",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.2",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "installer.js",
|
|
7
7
|
"exports": {
|