sandstream-kit 1.1.0 → 1.2.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/dist/check-web-search.js +37 -6
- package/dist/check-web-search.js.map +1 -1
- package/dist/cli.js +69 -7
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/memory/codex.d.ts +5 -0
- package/dist/memory/codex.js +150 -0
- package/dist/memory/codex.js.map +1 -0
- package/dist/memory/continue.d.ts +5 -0
- package/dist/memory/continue.js +116 -0
- package/dist/memory/continue.js.map +1 -0
- package/dist/memory/db.d.ts +12 -1
- package/dist/memory/db.js +43 -1
- package/dist/memory/db.js.map +1 -1
- package/dist/memory/gemini.d.ts +5 -0
- package/dist/memory/gemini.js +176 -0
- package/dist/memory/gemini.js.map +1 -0
- package/dist/memory/hook.d.ts +9 -0
- package/dist/memory/hook.js +34 -1
- package/dist/memory/hook.js.map +1 -1
- package/dist/memory/install.js +1 -0
- package/dist/memory/install.js.map +1 -1
- package/dist/memory/merge.d.ts +18 -0
- package/dist/memory/merge.js +109 -0
- package/dist/memory/merge.js.map +1 -0
- package/dist/memory/parser.d.ts +9 -0
- package/dist/memory/parser.js +34 -3
- package/dist/memory/parser.js.map +1 -1
- package/dist/status.d.ts +9 -0
- package/dist/status.js +119 -0
- package/dist/status.js.map +1 -0
- package/package.json +1 -1
package/dist/status.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* kit status — a deterministic "where you are + what to do next" view across kit.
|
|
3
|
+
*
|
|
4
|
+
* Pure facts + rule-based next steps (never LLM advice). Each signal is checked
|
|
5
|
+
* against real local state: the config file, the vault declaration, the agent
|
|
6
|
+
* managed block, the memory store, the installed hooks. Designed to grow: add a
|
|
7
|
+
* StatusItem per subsystem (prescan drift, supply-chain, elevation, …).
|
|
8
|
+
*/
|
|
9
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
import { loadConfig } from "./config.js";
|
|
12
|
+
import { KIT_BLOCK_BEGIN } from "./agent-config.js";
|
|
13
|
+
import { checkGitignore } from "./check-gitignore.js";
|
|
14
|
+
import { openMemoryDb, getStats } from "./memory/db.js";
|
|
15
|
+
import { getClaudeSettingsPath } from "./memory/install.js";
|
|
16
|
+
// Dependency allowlist file (kept as a literal here, matching security-policy.ts
|
|
17
|
+
// + post-pull-audit.ts — the convention isn't exported).
|
|
18
|
+
const ALLOWLIST_FILE = ".kit-allowlist.json";
|
|
19
|
+
function fileIncludes(path, needle) {
|
|
20
|
+
if (!existsSync(path))
|
|
21
|
+
return false;
|
|
22
|
+
try {
|
|
23
|
+
return readFileSync(path, "utf8").includes(needle);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return false; // unreadable — treat as absent
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export async function gatherStatus(cwd = process.cwd()) {
|
|
30
|
+
const items = [];
|
|
31
|
+
const configPath = join(cwd, ".kit.toml");
|
|
32
|
+
const hasConfig = existsSync(configPath);
|
|
33
|
+
items.push({
|
|
34
|
+
key: "config",
|
|
35
|
+
label: ".kit.toml",
|
|
36
|
+
ok: hasConfig,
|
|
37
|
+
detail: hasConfig ? "present" : "missing",
|
|
38
|
+
hint: hasConfig ? undefined : "run `kit init`",
|
|
39
|
+
});
|
|
40
|
+
if (hasConfig) {
|
|
41
|
+
try {
|
|
42
|
+
const cfg = await loadConfig(configPath);
|
|
43
|
+
const hasVault = !!(cfg.secrets &&
|
|
44
|
+
(cfg.secrets.store || (cfg.secrets.keys && Object.keys(cfg.secrets.keys).length > 0)));
|
|
45
|
+
items.push({
|
|
46
|
+
key: "vault",
|
|
47
|
+
label: "secrets vault",
|
|
48
|
+
ok: hasVault,
|
|
49
|
+
detail: hasVault ? `store: ${cfg.secrets?.store ?? "keys"}` : "none configured",
|
|
50
|
+
hint: hasVault ? undefined : "configure [secrets] + `kit secrets`",
|
|
51
|
+
});
|
|
52
|
+
const toolCount = cfg.tools ? Object.keys(cfg.tools).length : 0;
|
|
53
|
+
items.push({
|
|
54
|
+
key: "tools",
|
|
55
|
+
label: "tools",
|
|
56
|
+
ok: toolCount > 0,
|
|
57
|
+
detail: `${toolCount} declared`,
|
|
58
|
+
hint: toolCount > 0 ? undefined : "declare [tools] in .kit.toml",
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// malformed config — skip the derived checks rather than crash
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Secret hygiene — does .gitignore cover the sensitive paths kit cares about?
|
|
66
|
+
const ignore = await checkGitignore(cwd);
|
|
67
|
+
items.push({
|
|
68
|
+
key: "gitignore",
|
|
69
|
+
label: "gitignore hygiene",
|
|
70
|
+
ok: ignore.missingPatterns.length === 0,
|
|
71
|
+
detail: ignore.missingPatterns.length === 0
|
|
72
|
+
? "sensitive paths covered"
|
|
73
|
+
: `${ignore.missingPatterns.length} sensitive path(s) unignored`,
|
|
74
|
+
hint: ignore.missingPatterns.length === 0 ? undefined : "run `kit security check-gitignore --fix`",
|
|
75
|
+
});
|
|
76
|
+
// Supply chain — is there a dependency allowlist to enforce on install?
|
|
77
|
+
const hasAllowlist = existsSync(join(cwd, ALLOWLIST_FILE));
|
|
78
|
+
items.push({
|
|
79
|
+
key: "dep-policy",
|
|
80
|
+
label: "dependency policy",
|
|
81
|
+
ok: hasAllowlist,
|
|
82
|
+
detail: hasAllowlist ? "allowlist present" : "no allowlist",
|
|
83
|
+
hint: hasAllowlist ? undefined : "run `kit security policy init`",
|
|
84
|
+
});
|
|
85
|
+
const wired = fileIncludes(join(cwd, "CLAUDE.md"), KIT_BLOCK_BEGIN);
|
|
86
|
+
items.push({
|
|
87
|
+
key: "agent-config",
|
|
88
|
+
label: "agent wired",
|
|
89
|
+
ok: wired,
|
|
90
|
+
detail: wired ? "CLAUDE.md kit block present" : "not wired",
|
|
91
|
+
hint: wired ? undefined : "run `kit agent-config`",
|
|
92
|
+
});
|
|
93
|
+
let messages = 0;
|
|
94
|
+
try {
|
|
95
|
+
const db = openMemoryDb();
|
|
96
|
+
messages = getStats(db).messages;
|
|
97
|
+
db.close();
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// memory store unavailable — reported as 0
|
|
101
|
+
}
|
|
102
|
+
items.push({
|
|
103
|
+
key: "memory",
|
|
104
|
+
label: "memory indexed",
|
|
105
|
+
ok: messages > 0,
|
|
106
|
+
detail: `${messages} messages`,
|
|
107
|
+
hint: messages > 0 ? undefined : "run `kit memory index`",
|
|
108
|
+
});
|
|
109
|
+
const hooked = fileIncludes(getClaudeSettingsPath(), "kit memory hook");
|
|
110
|
+
items.push({
|
|
111
|
+
key: "memory-hooks",
|
|
112
|
+
label: "memory hooks",
|
|
113
|
+
ok: hooked,
|
|
114
|
+
detail: hooked ? "installed" : "not installed",
|
|
115
|
+
hint: hooked ? undefined : "run `kit memory install`",
|
|
116
|
+
});
|
|
117
|
+
return items;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED