helixmind 0.7.2 → 0.8.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/README.md +34 -3
- package/dist/cli/agent/loop.d.ts.map +1 -1
- package/dist/cli/agent/loop.js +8 -4
- package/dist/cli/agent/loop.js.map +1 -1
- package/dist/cli/agent/permissions.d.ts +8 -2
- package/dist/cli/agent/permissions.d.ts.map +1 -1
- package/dist/cli/agent/permissions.js +19 -8
- package/dist/cli/agent/permissions.js.map +1 -1
- package/dist/cli/agent/tools/bug-list.js +8 -1
- package/dist/cli/agent/tools/bug-list.js.map +1 -1
- package/dist/cli/agent/tools/git-commit.js +12 -13
- package/dist/cli/agent/tools/git-commit.js.map +1 -1
- package/dist/cli/agent/tools/git-diff.js +3 -4
- package/dist/cli/agent/tools/git-diff.js.map +1 -1
- package/dist/cli/agent/tools/git-exec.d.ts +36 -0
- package/dist/cli/agent/tools/git-exec.d.ts.map +1 -0
- package/dist/cli/agent/tools/git-exec.js +56 -0
- package/dist/cli/agent/tools/git-exec.js.map +1 -0
- package/dist/cli/agent/tools/git-log.js +4 -5
- package/dist/cli/agent/tools/git-log.js.map +1 -1
- package/dist/cli/agent/tools/git-status.js +6 -6
- package/dist/cli/agent/tools/git-status.js.map +1 -1
- package/dist/cli/agent/tools/registry.d.ts +9 -0
- package/dist/cli/agent/tools/registry.d.ts.map +1 -1
- package/dist/cli/agent/tools/registry.js.map +1 -1
- package/dist/cli/agent/tools/run-command.js +22 -0
- package/dist/cli/agent/tools/run-command.js.map +1 -1
- package/dist/cli/agent/tools/web-research.js +7 -3
- package/dist/cli/agent/tools/web-research.js.map +1 -1
- package/dist/cli/bugs/journal.d.ts +11 -0
- package/dist/cli/bugs/journal.d.ts.map +1 -1
- package/dist/cli/bugs/journal.js +67 -2
- package/dist/cli/bugs/journal.js.map +1 -1
- package/dist/cli/bugs/types.d.ts +2 -0
- package/dist/cli/bugs/types.d.ts.map +1 -1
- package/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +167 -16
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/core/stdin-envelope.d.ts +41 -0
- package/dist/cli/core/stdin-envelope.d.ts.map +1 -0
- package/dist/cli/core/stdin-envelope.js +107 -0
- package/dist/cli/core/stdin-envelope.js.map +1 -0
- package/dist/cli/jarvis/notifications.js +1 -1
- package/dist/cli/jarvis/telemetry.js +1 -1
- package/dist/cli/jarvis/types.d.ts +2 -2
- package/dist/cli/jarvis/types.d.ts.map +1 -1
- package/dist/cli/jarvis/types.js.map +1 -1
- package/dist/cli/license/checker.js +1 -1
- package/dist/cli/ui/select-menu.d.ts +12 -0
- package/dist/cli/ui/select-menu.d.ts.map +1 -1
- package/dist/cli/ui/select-menu.js +47 -27
- package/dist/cli/ui/select-menu.js.map +1 -1
- package/dist/cli/validation/static-checks.d.ts.map +1 -1
- package/dist/cli/validation/static-checks.js +62 -3
- package/dist/cli/validation/static-checks.js.map +1 -1
- package/dist/cli/validation/stats.d.ts.map +1 -1
- package/dist/cli/validation/stats.js +5 -3
- package/dist/cli/validation/stats.js.map +1 -1
- package/dist/spiral/cloud/search-provider.d.ts.map +1 -1
- package/dist/spiral/cloud/search-provider.js +29 -1
- package/dist/spiral/cloud/search-provider.js.map +1 -1
- package/dist/spiral/engine.d.ts +13 -0
- package/dist/spiral/engine.d.ts.map +1 -1
- package/dist/spiral/engine.js +35 -0
- package/dist/spiral/engine.js.map +1 -1
- package/dist/spiral/injection.d.ts +13 -0
- package/dist/spiral/injection.d.ts.map +1 -1
- package/dist/spiral/injection.js +66 -1
- package/dist/spiral/injection.js.map +1 -1
- package/dist/spiral/provenance.d.ts +37 -0
- package/dist/spiral/provenance.d.ts.map +1 -0
- package/dist/spiral/provenance.js +167 -0
- package/dist/spiral/provenance.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection.js","sourceRoot":"","sources":["../../src/spiral/injection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"injection.js","sourceRoot":"","sources":["../../src/spiral/injection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export interface NodeProvenance {
|
|
2
|
+
file_path: string;
|
|
3
|
+
file_hash: string;
|
|
4
|
+
file_mtime: number;
|
|
5
|
+
git_sha?: string;
|
|
6
|
+
captured_at: number;
|
|
7
|
+
verified_at: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Compute provenance for a node about to be stored. Returns null if no
|
|
11
|
+
* file reference can be tied to the node — caller stores the node without
|
|
12
|
+
* provenance and it's exempt from staleness checks.
|
|
13
|
+
*
|
|
14
|
+
* Looks at metadata.file first (explicit). Future: also detect path-shaped
|
|
15
|
+
* tokens in `content` for nodes that don't carry an explicit file field.
|
|
16
|
+
*/
|
|
17
|
+
export declare function computeProvenance(metadata: Record<string, unknown> | undefined, projectRoot: string): NodeProvenance | null;
|
|
18
|
+
/**
|
|
19
|
+
* Check whether a node's provenance still matches the on-disk file.
|
|
20
|
+
* Returns 'fresh' (no change), 'stale' (file content differs), or
|
|
21
|
+
* 'unknown' (no provenance recorded, or the file is gone/unreadable).
|
|
22
|
+
*
|
|
23
|
+
* 'fresh' results bump verified_at on the caller's side so we can later
|
|
24
|
+
* surface "last verified 3 minutes ago" in the brain UI.
|
|
25
|
+
*/
|
|
26
|
+
export type StalenessStatus = 'fresh' | 'stale' | 'unknown';
|
|
27
|
+
export declare function checkStaleness(provenance: NodeProvenance | undefined, projectRoot: string): {
|
|
28
|
+
status: StalenessStatus;
|
|
29
|
+
current_hash?: string;
|
|
30
|
+
current_mtime?: number;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Type-narrowing helper for use inside the injection layer where the
|
|
34
|
+
* metadata is known to be a parsed JSON object.
|
|
35
|
+
*/
|
|
36
|
+
export declare function readProvenance(metadata: Record<string, unknown> | undefined): NodeProvenance | undefined;
|
|
37
|
+
//# sourceMappingURL=provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/spiral/provenance.ts"],"names":[],"mappings":"AAyCA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAwDD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7C,WAAW,EAAE,MAAM,GAClB,cAAc,GAAG,IAAI,CAmBvB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAE5D,wBAAgB,cAAc,CAC5B,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,WAAW,EAAE,MAAM,GAClB;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CA4B5E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAMxG"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* audit-014 / v0.8.0 "Compounds": Provenance for spiral memory nodes.
|
|
3
|
+
*
|
|
4
|
+
* The problem this solves:
|
|
5
|
+
* Without provenance, a node stored in session A — e.g. "the auth bug is
|
|
6
|
+
* in middleware/jwt.ts:42" — is recalled verbatim in session B, even if
|
|
7
|
+
* foo.ts has been rewritten in between. The agent treats stale diagnoses
|
|
8
|
+
* as ground truth, leading to the "4 sessions on one bug" failure mode
|
|
9
|
+
* the user has hit repeatedly.
|
|
10
|
+
*
|
|
11
|
+
* What provenance is:
|
|
12
|
+
* For nodes that reference a file (metadata.file is set, or we detect
|
|
13
|
+
* path-shaped strings inside the content), we record:
|
|
14
|
+
* - file_path: the path the node references (resolved to
|
|
15
|
+
* project-relative for portability)
|
|
16
|
+
* - file_hash: SHA-256 of the file contents at capture time
|
|
17
|
+
* - file_mtime: file system mtime at capture time
|
|
18
|
+
* - git_sha: short HEAD sha at capture time (best-effort)
|
|
19
|
+
* - captured_at: ms epoch
|
|
20
|
+
* - verified_at: ms epoch — when we last confirmed the file
|
|
21
|
+
* still matches file_hash
|
|
22
|
+
*
|
|
23
|
+
* What we do with it:
|
|
24
|
+
* On recall, the injection layer calls isStale() per node. If the file
|
|
25
|
+
* has changed since capture, the node is either dropped from the
|
|
26
|
+
* injected context or marked with a `[STALE]` prefix so the LLM sees
|
|
27
|
+
* "this used to be true, treat as a hint not a fact". Either way the
|
|
28
|
+
* agent re-investigates instead of trusting cached reasoning.
|
|
29
|
+
*
|
|
30
|
+
* Storage:
|
|
31
|
+
* provenance lives in `node.metadata.provenance`. Keeping it in the JSON
|
|
32
|
+
* metadata column avoids a schema migration in v0 — the cost is that we
|
|
33
|
+
* can't filter at the SQL layer, but for typical spiral sizes (≤5k
|
|
34
|
+
* nodes) the JS-side filter is fast enough. Promote to a first-class
|
|
35
|
+
* column when scale demands it.
|
|
36
|
+
*/
|
|
37
|
+
import { readFileSync, existsSync, statSync } from 'node:fs';
|
|
38
|
+
import { execFileSync } from 'node:child_process';
|
|
39
|
+
import { createHash } from 'node:crypto';
|
|
40
|
+
import { resolve, isAbsolute, relative } from 'node:path';
|
|
41
|
+
/** Cap for files we'll hash. Anything bigger is a probably-not-source asset. */
|
|
42
|
+
const PROVENANCE_HASH_CAP_BYTES = 5 * 1024 * 1024;
|
|
43
|
+
/** Best-effort git HEAD sha. Cached per project root for the process lifetime. */
|
|
44
|
+
const gitShaCache = new Map();
|
|
45
|
+
function gitHeadSha(projectRoot) {
|
|
46
|
+
if (gitShaCache.has(projectRoot)) {
|
|
47
|
+
return gitShaCache.get(projectRoot) ?? undefined;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
const out = execFileSync('git', ['rev-parse', '--short', 'HEAD'], {
|
|
51
|
+
cwd: projectRoot,
|
|
52
|
+
encoding: 'utf-8',
|
|
53
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
54
|
+
timeout: 2000,
|
|
55
|
+
}).trim();
|
|
56
|
+
gitShaCache.set(projectRoot, out);
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
gitShaCache.set(projectRoot, null);
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function hashFile(absPath) {
|
|
65
|
+
try {
|
|
66
|
+
const stat = statSync(absPath);
|
|
67
|
+
if (!stat.isFile())
|
|
68
|
+
return null;
|
|
69
|
+
if (stat.size > PROVENANCE_HASH_CAP_BYTES)
|
|
70
|
+
return null;
|
|
71
|
+
const buf = readFileSync(absPath);
|
|
72
|
+
const hash = createHash('sha256').update(buf).digest('hex');
|
|
73
|
+
return { hash, mtime: stat.mtimeMs };
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function resolveProjectRelative(filePath, projectRoot) {
|
|
80
|
+
// Store paths as project-relative when possible; absolute paths break
|
|
81
|
+
// when the project moves directories (laptop → workstation, container,
|
|
82
|
+
// worktree). Provenance follows the project, not the workstation.
|
|
83
|
+
const abs = isAbsolute(filePath) ? filePath : resolve(projectRoot, filePath);
|
|
84
|
+
const rel = relative(projectRoot, abs);
|
|
85
|
+
// If the file is outside the project root, keep the absolute path —
|
|
86
|
+
// there's no shorter portable representation.
|
|
87
|
+
if (rel.startsWith('..'))
|
|
88
|
+
return abs;
|
|
89
|
+
// Normalize to forward slashes so Provenance is portable across OSes
|
|
90
|
+
// (Windows session → Linux session via cloud sync). Resolve back to
|
|
91
|
+
// the platform's separator only at file-system boundaries (statSync,
|
|
92
|
+
// readFileSync) using path.resolve, which accepts forward slashes
|
|
93
|
+
// everywhere.
|
|
94
|
+
return rel.split(/\\+/).join('/');
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Compute provenance for a node about to be stored. Returns null if no
|
|
98
|
+
* file reference can be tied to the node — caller stores the node without
|
|
99
|
+
* provenance and it's exempt from staleness checks.
|
|
100
|
+
*
|
|
101
|
+
* Looks at metadata.file first (explicit). Future: also detect path-shaped
|
|
102
|
+
* tokens in `content` for nodes that don't carry an explicit file field.
|
|
103
|
+
*/
|
|
104
|
+
export function computeProvenance(metadata, projectRoot) {
|
|
105
|
+
const file = metadata?.file;
|
|
106
|
+
if (typeof file !== 'string' || !file)
|
|
107
|
+
return null;
|
|
108
|
+
const abs = isAbsolute(file) ? file : resolve(projectRoot, file);
|
|
109
|
+
if (!existsSync(abs))
|
|
110
|
+
return null;
|
|
111
|
+
const hashed = hashFile(abs);
|
|
112
|
+
if (!hashed)
|
|
113
|
+
return null;
|
|
114
|
+
const now = Date.now();
|
|
115
|
+
return {
|
|
116
|
+
file_path: resolveProjectRelative(file, projectRoot),
|
|
117
|
+
file_hash: hashed.hash,
|
|
118
|
+
file_mtime: hashed.mtime,
|
|
119
|
+
git_sha: gitHeadSha(projectRoot),
|
|
120
|
+
captured_at: now,
|
|
121
|
+
verified_at: now,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
export function checkStaleness(provenance, projectRoot) {
|
|
125
|
+
if (!provenance)
|
|
126
|
+
return { status: 'unknown' };
|
|
127
|
+
const abs = isAbsolute(provenance.file_path)
|
|
128
|
+
? provenance.file_path
|
|
129
|
+
: resolve(projectRoot, provenance.file_path);
|
|
130
|
+
if (!existsSync(abs))
|
|
131
|
+
return { status: 'stale' }; // file deleted
|
|
132
|
+
// Cheap first-pass: mtime equality. If mtimes match exactly, content
|
|
133
|
+
// almost certainly matches — skip the hash. We re-hash on mtime
|
|
134
|
+
// mismatch to handle "git checkout reset mtime but content is the same"
|
|
135
|
+
// and "atime touch but content unchanged" cases.
|
|
136
|
+
try {
|
|
137
|
+
const stat = statSync(abs);
|
|
138
|
+
if (stat.mtimeMs === provenance.file_mtime) {
|
|
139
|
+
return { status: 'fresh', current_mtime: stat.mtimeMs };
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
return { status: 'unknown' };
|
|
144
|
+
}
|
|
145
|
+
const hashed = hashFile(abs);
|
|
146
|
+
if (!hashed)
|
|
147
|
+
return { status: 'unknown' };
|
|
148
|
+
return {
|
|
149
|
+
status: hashed.hash === provenance.file_hash ? 'fresh' : 'stale',
|
|
150
|
+
current_hash: hashed.hash,
|
|
151
|
+
current_mtime: hashed.mtime,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Type-narrowing helper for use inside the injection layer where the
|
|
156
|
+
* metadata is known to be a parsed JSON object.
|
|
157
|
+
*/
|
|
158
|
+
export function readProvenance(metadata) {
|
|
159
|
+
const p = metadata?.provenance;
|
|
160
|
+
if (!p || typeof p !== 'object')
|
|
161
|
+
return undefined;
|
|
162
|
+
const candidate = p;
|
|
163
|
+
if (typeof candidate.file_path !== 'string' || typeof candidate.file_hash !== 'string')
|
|
164
|
+
return undefined;
|
|
165
|
+
return p;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=provenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/spiral/provenance.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "helixmind",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "HelixMind – AI Coding CLI with Persistent Spiral Memory",
|
|
3
|
+
"version": "0.8.0",
|
|
4
|
+
"description": "HelixMind – AI Coding CLI with Persistent Spiral Memory that Compounds",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|