@cstart/coldstart 2.0.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 +236 -0
- package/dist/cache/disk-cache.d.ts +14 -0
- package/dist/cache/disk-cache.d.ts.map +1 -0
- package/dist/cache/disk-cache.js +371 -0
- package/dist/cache/disk-cache.js.map +1 -0
- package/dist/cli.d.ts +18 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +206 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +111 -0
- package/dist/constants.js.map +1 -0
- package/dist/daemon-lock.d.ts +63 -0
- package/dist/daemon-lock.d.ts.map +1 -0
- package/dist/daemon-lock.js +218 -0
- package/dist/daemon-lock.js.map +1 -0
- package/dist/daemon-log.d.ts +26 -0
- package/dist/daemon-log.d.ts.map +1 -0
- package/dist/daemon-log.js +110 -0
- package/dist/daemon-log.js.map +1 -0
- package/dist/index-manager.d.ts +103 -0
- package/dist/index-manager.d.ts.map +1 -0
- package/dist/index-manager.js +361 -0
- package/dist/index-manager.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +724 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer/content-tokens.d.ts +74 -0
- package/dist/indexer/content-tokens.d.ts.map +1 -0
- package/dist/indexer/content-tokens.js +406 -0
- package/dist/indexer/content-tokens.js.map +1 -0
- package/dist/indexer/cpp-include-roots.d.ts +7 -0
- package/dist/indexer/cpp-include-roots.d.ts.map +1 -0
- package/dist/indexer/cpp-include-roots.js +166 -0
- package/dist/indexer/cpp-include-roots.js.map +1 -0
- package/dist/indexer/csharp-synthetic.d.ts +9 -0
- package/dist/indexer/csharp-synthetic.d.ts.map +1 -0
- package/dist/indexer/csharp-synthetic.js +51 -0
- package/dist/indexer/csharp-synthetic.js.map +1 -0
- package/dist/indexer/django-synthetic.d.ts +12 -0
- package/dist/indexer/django-synthetic.d.ts.map +1 -0
- package/dist/indexer/django-synthetic.js +49 -0
- package/dist/indexer/django-synthetic.js.map +1 -0
- package/dist/indexer/extractors/angularjs.d.ts +16 -0
- package/dist/indexer/extractors/angularjs.d.ts.map +1 -0
- package/dist/indexer/extractors/angularjs.js +49 -0
- package/dist/indexer/extractors/angularjs.js.map +1 -0
- package/dist/indexer/extractors/cpp.d.ts +9 -0
- package/dist/indexer/extractors/cpp.d.ts.map +1 -0
- package/dist/indexer/extractors/cpp.js +254 -0
- package/dist/indexer/extractors/cpp.js.map +1 -0
- package/dist/indexer/extractors/csharp.d.ts +19 -0
- package/dist/indexer/extractors/csharp.d.ts.map +1 -0
- package/dist/indexer/extractors/csharp.js +327 -0
- package/dist/indexer/extractors/csharp.js.map +1 -0
- package/dist/indexer/extractors/env.d.ts +9 -0
- package/dist/indexer/extractors/env.d.ts.map +1 -0
- package/dist/indexer/extractors/env.js +43 -0
- package/dist/indexer/extractors/env.js.map +1 -0
- package/dist/indexer/extractors/go.d.ts +9 -0
- package/dist/indexer/extractors/go.d.ts.map +1 -0
- package/dist/indexer/extractors/go.js +227 -0
- package/dist/indexer/extractors/go.js.map +1 -0
- package/dist/indexer/extractors/graphql.d.ts +22 -0
- package/dist/indexer/extractors/graphql.d.ts.map +1 -0
- package/dist/indexer/extractors/graphql.js +88 -0
- package/dist/indexer/extractors/graphql.js.map +1 -0
- package/dist/indexer/extractors/groovy.d.ts +9 -0
- package/dist/indexer/extractors/groovy.d.ts.map +1 -0
- package/dist/indexer/extractors/groovy.js +356 -0
- package/dist/indexer/extractors/groovy.js.map +1 -0
- package/dist/indexer/extractors/java.d.ts +10 -0
- package/dist/indexer/extractors/java.d.ts.map +1 -0
- package/dist/indexer/extractors/java.js +586 -0
- package/dist/indexer/extractors/java.js.map +1 -0
- package/dist/indexer/extractors/kotlin.d.ts +10 -0
- package/dist/indexer/extractors/kotlin.d.ts.map +1 -0
- package/dist/indexer/extractors/kotlin.js +398 -0
- package/dist/indexer/extractors/kotlin.js.map +1 -0
- package/dist/indexer/extractors/node-helpers.d.ts +13 -0
- package/dist/indexer/extractors/node-helpers.d.ts.map +1 -0
- package/dist/indexer/extractors/node-helpers.js +17 -0
- package/dist/indexer/extractors/node-helpers.js.map +1 -0
- package/dist/indexer/extractors/parser-factory.d.ts +4 -0
- package/dist/indexer/extractors/parser-factory.d.ts.map +1 -0
- package/dist/indexer/extractors/parser-factory.js +28 -0
- package/dist/indexer/extractors/parser-factory.js.map +1 -0
- package/dist/indexer/extractors/php.d.ts +17 -0
- package/dist/indexer/extractors/php.d.ts.map +1 -0
- package/dist/indexer/extractors/php.js +363 -0
- package/dist/indexer/extractors/php.js.map +1 -0
- package/dist/indexer/extractors/python.d.ts +14 -0
- package/dist/indexer/extractors/python.d.ts.map +1 -0
- package/dist/indexer/extractors/python.js +449 -0
- package/dist/indexer/extractors/python.js.map +1 -0
- package/dist/indexer/extractors/ruby.d.ts +10 -0
- package/dist/indexer/extractors/ruby.d.ts.map +1 -0
- package/dist/indexer/extractors/ruby.js +996 -0
- package/dist/indexer/extractors/ruby.js.map +1 -0
- package/dist/indexer/extractors/rust.d.ts +9 -0
- package/dist/indexer/extractors/rust.d.ts.map +1 -0
- package/dist/indexer/extractors/rust.js +322 -0
- package/dist/indexer/extractors/rust.js.map +1 -0
- package/dist/indexer/extractors/toml.d.ts +9 -0
- package/dist/indexer/extractors/toml.d.ts.map +1 -0
- package/dist/indexer/extractors/toml.js +84 -0
- package/dist/indexer/extractors/toml.js.map +1 -0
- package/dist/indexer/extractors/xml.d.ts +9 -0
- package/dist/indexer/extractors/xml.d.ts.map +1 -0
- package/dist/indexer/extractors/xml.js +163 -0
- package/dist/indexer/extractors/xml.js.map +1 -0
- package/dist/indexer/extractors/yaml.d.ts +9 -0
- package/dist/indexer/extractors/yaml.d.ts.map +1 -0
- package/dist/indexer/extractors/yaml.js +117 -0
- package/dist/indexer/extractors/yaml.js.map +1 -0
- package/dist/indexer/git.d.ts +19 -0
- package/dist/indexer/git.d.ts.map +1 -0
- package/dist/indexer/git.js +55 -0
- package/dist/indexer/git.js.map +1 -0
- package/dist/indexer/graph.d.ts +7 -0
- package/dist/indexer/graph.d.ts.map +1 -0
- package/dist/indexer/graph.js +20 -0
- package/dist/indexer/graph.js.map +1 -0
- package/dist/indexer/indexed-file.d.ts +15 -0
- package/dist/indexer/indexed-file.d.ts.map +1 -0
- package/dist/indexer/indexed-file.js +50 -0
- package/dist/indexer/indexed-file.js.map +1 -0
- package/dist/indexer/invariants.d.ts +15 -0
- package/dist/indexer/invariants.d.ts.map +1 -0
- package/dist/indexer/invariants.js +96 -0
- package/dist/indexer/invariants.js.map +1 -0
- package/dist/indexer/laravel-synthetic.d.ts +10 -0
- package/dist/indexer/laravel-synthetic.d.ts.map +1 -0
- package/dist/indexer/laravel-synthetic.js +78 -0
- package/dist/indexer/laravel-synthetic.js.map +1 -0
- package/dist/indexer/parser.d.ts +4 -0
- package/dist/indexer/parser.d.ts.map +1 -0
- package/dist/indexer/parser.js +499 -0
- package/dist/indexer/parser.js.map +1 -0
- package/dist/indexer/patch.d.ts +3 -0
- package/dist/indexer/patch.d.ts.map +1 -0
- package/dist/indexer/patch.js +291 -0
- package/dist/indexer/patch.js.map +1 -0
- package/dist/indexer/rails-synthetic.d.ts +11 -0
- package/dist/indexer/rails-synthetic.d.ts.map +1 -0
- package/dist/indexer/rails-synthetic.js +80 -0
- package/dist/indexer/rails-synthetic.js.map +1 -0
- package/dist/indexer/reconcile.d.ts +9 -0
- package/dist/indexer/reconcile.d.ts.map +1 -0
- package/dist/indexer/reconcile.js +96 -0
- package/dist/indexer/reconcile.js.map +1 -0
- package/dist/indexer/resolvers/cpp.d.ts +15 -0
- package/dist/indexer/resolvers/cpp.d.ts.map +1 -0
- package/dist/indexer/resolvers/cpp.js +35 -0
- package/dist/indexer/resolvers/cpp.js.map +1 -0
- package/dist/indexer/resolvers/csharp.d.ts +2 -0
- package/dist/indexer/resolvers/csharp.d.ts.map +1 -0
- package/dist/indexer/resolvers/csharp.js +89 -0
- package/dist/indexer/resolvers/csharp.js.map +1 -0
- package/dist/indexer/resolvers/generic.d.ts +10 -0
- package/dist/indexer/resolvers/generic.d.ts.map +1 -0
- package/dist/indexer/resolvers/generic.js +35 -0
- package/dist/indexer/resolvers/generic.js.map +1 -0
- package/dist/indexer/resolvers/go.d.ts +2 -0
- package/dist/indexer/resolvers/go.d.ts.map +1 -0
- package/dist/indexer/resolvers/go.js +171 -0
- package/dist/indexer/resolvers/go.js.map +1 -0
- package/dist/indexer/resolvers/index.d.ts +26 -0
- package/dist/indexer/resolvers/index.d.ts.map +1 -0
- package/dist/indexer/resolvers/index.js +301 -0
- package/dist/indexer/resolvers/index.js.map +1 -0
- package/dist/indexer/resolvers/java.d.ts +17 -0
- package/dist/indexer/resolvers/java.d.ts.map +1 -0
- package/dist/indexer/resolvers/java.js +104 -0
- package/dist/indexer/resolvers/java.js.map +1 -0
- package/dist/indexer/resolvers/php.d.ts +2 -0
- package/dist/indexer/resolvers/php.d.ts.map +1 -0
- package/dist/indexer/resolvers/php.js +108 -0
- package/dist/indexer/resolvers/php.js.map +1 -0
- package/dist/indexer/resolvers/python.d.ts +17 -0
- package/dist/indexer/resolvers/python.d.ts.map +1 -0
- package/dist/indexer/resolvers/python.js +63 -0
- package/dist/indexer/resolvers/python.js.map +1 -0
- package/dist/indexer/resolvers/ruby.d.ts +13 -0
- package/dist/indexer/resolvers/ruby.d.ts.map +1 -0
- package/dist/indexer/resolvers/ruby.js +199 -0
- package/dist/indexer/resolvers/ruby.js.map +1 -0
- package/dist/indexer/resolvers/rust.d.ts +12 -0
- package/dist/indexer/resolvers/rust.d.ts.map +1 -0
- package/dist/indexer/resolvers/rust.js +61 -0
- package/dist/indexer/resolvers/rust.js.map +1 -0
- package/dist/indexer/resolvers/shared.d.ts +18 -0
- package/dist/indexer/resolvers/shared.d.ts.map +1 -0
- package/dist/indexer/resolvers/shared.js +71 -0
- package/dist/indexer/resolvers/shared.js.map +1 -0
- package/dist/indexer/rust-workspace.d.ts +25 -0
- package/dist/indexer/rust-workspace.d.ts.map +1 -0
- package/dist/indexer/rust-workspace.js +155 -0
- package/dist/indexer/rust-workspace.js.map +1 -0
- package/dist/indexer/symbol-edges.d.ts +19 -0
- package/dist/indexer/symbol-edges.d.ts.map +1 -0
- package/dist/indexer/symbol-edges.js +117 -0
- package/dist/indexer/symbol-edges.js.map +1 -0
- package/dist/indexer/tokenize.d.ts +26 -0
- package/dist/indexer/tokenize.d.ts.map +1 -0
- package/dist/indexer/tokenize.js +200 -0
- package/dist/indexer/tokenize.js.map +1 -0
- package/dist/indexer/ts-parser.d.ts +10 -0
- package/dist/indexer/ts-parser.d.ts.map +1 -0
- package/dist/indexer/ts-parser.js +605 -0
- package/dist/indexer/ts-parser.js.map +1 -0
- package/dist/indexer/walker.d.ts +9 -0
- package/dist/indexer/walker.d.ts.map +1 -0
- package/dist/indexer/walker.js +91 -0
- package/dist/indexer/walker.js.map +1 -0
- package/dist/init.d.ts +111 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +787 -0
- package/dist/init.js.map +1 -0
- package/dist/kb/cli.d.ts +2 -0
- package/dist/kb/cli.d.ts.map +1 -0
- package/dist/kb/cli.js +377 -0
- package/dist/kb/cli.js.map +1 -0
- package/dist/kb/commit.d.ts +6 -0
- package/dist/kb/commit.d.ts.map +1 -0
- package/dist/kb/commit.js +84 -0
- package/dist/kb/commit.js.map +1 -0
- package/dist/kb/fold.d.ts +42 -0
- package/dist/kb/fold.d.ts.map +1 -0
- package/dist/kb/fold.js +285 -0
- package/dist/kb/fold.js.map +1 -0
- package/dist/kb/freshness.d.ts +9 -0
- package/dist/kb/freshness.d.ts.map +1 -0
- package/dist/kb/freshness.js +52 -0
- package/dist/kb/freshness.js.map +1 -0
- package/dist/kb/git.d.ts +4 -0
- package/dist/kb/git.d.ts.map +1 -0
- package/dist/kb/git.js +28 -0
- package/dist/kb/git.js.map +1 -0
- package/dist/kb/ids.d.ts +8 -0
- package/dist/kb/ids.d.ts.map +1 -0
- package/dist/kb/ids.js +42 -0
- package/dist/kb/ids.js.map +1 -0
- package/dist/kb/lint.d.ts +23 -0
- package/dist/kb/lint.d.ts.map +1 -0
- package/dist/kb/lint.js +102 -0
- package/dist/kb/lint.js.map +1 -0
- package/dist/kb/lookup.d.ts +55 -0
- package/dist/kb/lookup.d.ts.map +1 -0
- package/dist/kb/lookup.js +92 -0
- package/dist/kb/lookup.js.map +1 -0
- package/dist/kb/notes-index.d.ts +31 -0
- package/dist/kb/notes-index.d.ts.map +1 -0
- package/dist/kb/notes-index.js +0 -0
- package/dist/kb/notes-index.js.map +1 -0
- package/dist/kb/raw-log.d.ts +34 -0
- package/dist/kb/raw-log.d.ts.map +1 -0
- package/dist/kb/raw-log.js +106 -0
- package/dist/kb/raw-log.js.map +1 -0
- package/dist/kb/render.d.ts +17 -0
- package/dist/kb/render.d.ts.map +1 -0
- package/dist/kb/render.js +101 -0
- package/dist/kb/render.js.map +1 -0
- package/dist/kb/search.d.ts +110 -0
- package/dist/kb/search.d.ts.map +1 -0
- package/dist/kb/search.js +453 -0
- package/dist/kb/search.js.map +1 -0
- package/dist/kb/store.d.ts +35 -0
- package/dist/kb/store.d.ts.map +1 -0
- package/dist/kb/store.js +160 -0
- package/dist/kb/store.js.map +1 -0
- package/dist/kb/types.d.ts +142 -0
- package/dist/kb/types.d.ts.map +1 -0
- package/dist/kb/types.js +13 -0
- package/dist/kb/types.js.map +1 -0
- package/dist/kb/view-template.d.ts +8 -0
- package/dist/kb/view-template.d.ts.map +1 -0
- package/dist/kb/view-template.js +8 -0
- package/dist/kb/view-template.js.map +1 -0
- package/dist/kb/view.d.ts +42 -0
- package/dist/kb/view.d.ts.map +1 -0
- package/dist/kb/view.js +118 -0
- package/dist/kb/view.js.map +1 -0
- package/dist/kb/write.d.ts +72 -0
- package/dist/kb/write.d.ts.map +1 -0
- package/dist/kb/write.js +345 -0
- package/dist/kb/write.js.map +1 -0
- package/dist/keeper-state.d.ts +29 -0
- package/dist/keeper-state.d.ts.map +1 -0
- package/dist/keeper-state.js +89 -0
- package/dist/keeper-state.js.map +1 -0
- package/dist/keeper.d.ts +23 -0
- package/dist/keeper.d.ts.map +1 -0
- package/dist/keeper.js +105 -0
- package/dist/keeper.js.map +1 -0
- package/dist/migrate.d.ts +9 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +102 -0
- package/dist/migrate.js.map +1 -0
- package/dist/restart.d.ts +15 -0
- package/dist/restart.d.ts.map +1 -0
- package/dist/restart.js +48 -0
- package/dist/restart.js.map +1 -0
- package/dist/server/find.d.ts +39 -0
- package/dist/server/find.d.ts.map +1 -0
- package/dist/server/find.js +979 -0
- package/dist/server/find.js.map +1 -0
- package/dist/server/mcp.d.ts +117 -0
- package/dist/server/mcp.d.ts.map +1 -0
- package/dist/server/mcp.js +301 -0
- package/dist/server/mcp.js.map +1 -0
- package/dist/server/searcher.d.ts +14 -0
- package/dist/server/searcher.d.ts.map +1 -0
- package/dist/server/searcher.js +146 -0
- package/dist/server/searcher.js.map +1 -0
- package/dist/server/tools.d.ts +17 -0
- package/dist/server/tools.d.ts.map +1 -0
- package/dist/server/tools.js +875 -0
- package/dist/server/tools.js.map +1 -0
- package/dist/status.d.ts +12 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +157 -0
- package/dist/status.js.map +1 -0
- package/dist/types.d.ts +138 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/watcher.d.ts +11 -0
- package/dist/watcher.d.ts.map +1 -0
- package/dist/watcher.js +67 -0
- package/dist/watcher.js.map +1 -0
- package/hooks/canonical-find-key.mjs +68 -0
- package/hooks/codex-find-nudge.mjs +15 -0
- package/hooks/codex-find-preguard.mjs +14 -0
- package/hooks/codex-kb-elicit.mjs +329 -0
- package/hooks/codex-kb-recall.mjs +151 -0
- package/hooks/codex-nudge-handler.mjs +370 -0
- package/hooks/codex-preguard-handler.mjs +75 -0
- package/hooks/codex-run-hook.mjs +132 -0
- package/hooks/coldstart-call.mjs +58 -0
- package/hooks/cursor-find-nudge.mjs +15 -0
- package/hooks/cursor-find-preguard.mjs +14 -0
- package/hooks/cursor-input.mjs +72 -0
- package/hooks/cursor-kb-elicit.mjs +335 -0
- package/hooks/cursor-kb-recall.mjs +138 -0
- package/hooks/cursor-nudge-handler.mjs +33 -0
- package/hooks/cursor-preguard-handler.mjs +39 -0
- package/hooks/cursor-run-hook.mjs +129 -0
- package/hooks/find-nudge.mjs +15 -0
- package/hooks/find-preguard.mjs +14 -0
- package/hooks/kb-elicit.mjs +334 -0
- package/hooks/kb-recall.mjs +151 -0
- package/hooks/nudge-handler.mjs +370 -0
- package/hooks/preguard-handler.mjs +75 -0
- package/hooks/run-hook.mjs +132 -0
- package/package.json +69 -0
- package/templates/coldstart.cli.md +60 -0
- package/templates/coldstart.mcp.md +59 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { readdir, stat, realpath } from 'node:fs/promises';
|
|
2
|
+
import { join, relative, extname } from 'node:path';
|
|
3
|
+
import { DEFAULT_EXCLUDES, EXTENSION_TO_LANGUAGE } from '../constants.js';
|
|
4
|
+
export async function walkDirectory(options) {
|
|
5
|
+
const { rootDir, excludes = [], includes = [], maxFileSizeBytes = 1_000_000, } = options;
|
|
6
|
+
const userExcludes = new Set(excludes);
|
|
7
|
+
const includeSet = includes.length > 0
|
|
8
|
+
? new Set(includes.map(i => join(rootDir, i)))
|
|
9
|
+
: null;
|
|
10
|
+
const results = [];
|
|
11
|
+
async function walk(dir) {
|
|
12
|
+
let entries;
|
|
13
|
+
try {
|
|
14
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
// Permission error or other read failure — skip silently
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
for (const entry of entries) {
|
|
21
|
+
const fullPath = join(dir, entry.name);
|
|
22
|
+
if (entry.isSymbolicLink()) {
|
|
23
|
+
// Skip symlinks to avoid cycles
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (entry.isDirectory()) {
|
|
27
|
+
// Skip excluded directories
|
|
28
|
+
if (DEFAULT_EXCLUDES.has(entry.name) || userExcludes.has(entry.name)) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
// Skip hidden directories (e.g. .git, .next)
|
|
32
|
+
if (entry.name.startsWith('.')) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
// If includes filter is set, only descend into matching roots
|
|
36
|
+
if (includeSet) {
|
|
37
|
+
const isIncluded = [...includeSet].some(inc => fullPath.startsWith(inc) || inc.startsWith(fullPath));
|
|
38
|
+
if (!isIncluded)
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
await walk(fullPath);
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (!entry.isFile())
|
|
45
|
+
continue;
|
|
46
|
+
let language;
|
|
47
|
+
const ext = extname(entry.name).toLowerCase();
|
|
48
|
+
language = EXTENSION_TO_LANGUAGE[ext];
|
|
49
|
+
// Handle .env files: .env, .env.local, .env.production, .env.development, etc.
|
|
50
|
+
if (!language && /^\.env(\.|$)/.test(entry.name)) {
|
|
51
|
+
language = 'env';
|
|
52
|
+
}
|
|
53
|
+
// Handle Jenkinsfile: Jenkinsfile, Jenkinsfile.*, etc.
|
|
54
|
+
if (!language && /^Jenkinsfile(\.|$)/.test(entry.name)) {
|
|
55
|
+
language = 'groovy';
|
|
56
|
+
}
|
|
57
|
+
if (!language)
|
|
58
|
+
continue;
|
|
59
|
+
// Skip generated files (e.g. foo.generated.ts, schema_pb.ts, api.pb.go)
|
|
60
|
+
const nameLower = entry.name.toLowerCase();
|
|
61
|
+
if (/\.(generated|pb)\.[a-z]+$/.test(nameLower) || /_(generated|pb)\.[a-z]+$/.test(nameLower))
|
|
62
|
+
continue;
|
|
63
|
+
// Check file size
|
|
64
|
+
try {
|
|
65
|
+
const info = await stat(fullPath);
|
|
66
|
+
if (info.size > maxFileSizeBytes)
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
// Resolve symlink chains in the path (for relative path computation only)
|
|
73
|
+
let resolvedPath = fullPath;
|
|
74
|
+
try {
|
|
75
|
+
resolvedPath = await realpath(fullPath);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
resolvedPath = fullPath;
|
|
79
|
+
}
|
|
80
|
+
const relativePath = relative(rootDir, resolvedPath);
|
|
81
|
+
results.push({
|
|
82
|
+
absolutePath: resolvedPath,
|
|
83
|
+
relativePath,
|
|
84
|
+
language,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
await walk(rootDir);
|
|
89
|
+
return results;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=walker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/indexer/walker.ts"],"names":[],"mappings":"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"}
|
package/dist/init.d.ts
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* coldstart init — wire coldstart into a project.
|
|
3
|
+
*
|
|
4
|
+
* Model: a single `coldstart.md` lives at the repo root and carries ALL the
|
|
5
|
+
* agent-facing guidance. Clients pull it in by reference, so future wording
|
|
6
|
+
* changes touch only coldstart.md, never the client's own rules file.
|
|
7
|
+
*
|
|
8
|
+
* init asks two things (or takes `--experience` / `--client` flags):
|
|
9
|
+
* 1. EXPERIENCE — how the agent invokes coldstart:
|
|
10
|
+
* - `cli` (recommended) → runs `coldstart find` / `coldstart gs` (shell).
|
|
11
|
+
* - `mcp` → calls the `find` / `gs` MCP tools (no shell).
|
|
12
|
+
* This selects the coldstart.md flavor and the hook matcher surface.
|
|
13
|
+
* 2. CLIENT — which tool to wire (never auto-detected; the user always picks):
|
|
14
|
+
* - Claude Code → CLAUDE.md imports `@coldstart.md`; find/gs hooks in
|
|
15
|
+
* `.claude/settings.json`. (MCP experience also writes `.mcp.json`.)
|
|
16
|
+
* - Cursor → `.cursor/rules/coldstart.mdc` references coldstart.md;
|
|
17
|
+
* Cursor-specific navigation + notebook hooks in `.cursor/hooks.json`.
|
|
18
|
+
* (MCP) also writes `.cursor/mcp.json`.
|
|
19
|
+
* - Codex → AGENTS.md points at coldstart.md; Codex-specific
|
|
20
|
+
* navigation + notebook hooks in `.codex/hooks.json`. (MCP) writes
|
|
21
|
+
* `[mcp_servers.coldstart]` into `.codex/config.toml`.
|
|
22
|
+
* - Other → write coldstart.md only; print wiring directions.
|
|
23
|
+
*
|
|
24
|
+
* Claude, Codex, and Cursor receive separate hook entrypoints. They share the
|
|
25
|
+
* protocol-neutral detector core; only input adaptation, the transcript walk,
|
|
26
|
+
* and the output envelope differ per host (Cursor capture parses its own JSONL).
|
|
27
|
+
*/
|
|
28
|
+
/** The coldstart.md body for a flavor, read from its checked-in template. */
|
|
29
|
+
export declare function coldstartMd(mode: 'cli' | 'mcp'): string;
|
|
30
|
+
/**
|
|
31
|
+
* Merge the notebook recall/capture hooks into `.claude/settings.json`.
|
|
32
|
+
* Idempotent (strips prior kb entries, re-adds), preserves the find/gs hooks
|
|
33
|
+
* and any foreign entries, fail-safe on invalid JSON. Points at the same
|
|
34
|
+
* version-pinned stable hooks dir the find/gs hooks use (survives npm update).
|
|
35
|
+
*/
|
|
36
|
+
export declare function wireClaudeKbHooks(cwd: string): 'created' | 'updated' | {
|
|
37
|
+
error: string;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Notebook file setup — client-agnostic. Creates the skeleton, sets the
|
|
41
|
+
* merge=union attribute, and applies the storage choice: private by default
|
|
42
|
+
* (gitignore `.coldstart/`), or committable when `commit` is set. Does NOT wire
|
|
43
|
+
* hooks — those are Claude-specific (see wireClaudeKbHooks).
|
|
44
|
+
*/
|
|
45
|
+
export declare function setupNotebook(cwd: string, commit: boolean): void;
|
|
46
|
+
export declare function writeColdstartMd(cwd: string, mode: 'cli' | 'mcp'): 'created' | 'updated';
|
|
47
|
+
/** Ensure CLAUDE.md exists and imports coldstart.md via `@coldstart.md`. */
|
|
48
|
+
export declare function wireClaudeImport(cwd: string): 'created' | 'added' | 'present';
|
|
49
|
+
/**
|
|
50
|
+
* Register the find/gs search hooks in the project's `.claude/settings.json`.
|
|
51
|
+
*
|
|
52
|
+
* Merges (never clobbers): preserves every other setting and any non-coldstart
|
|
53
|
+
* hooks. Idempotent — strips our prior entries (matched by entry filename) and
|
|
54
|
+
* re-adds them, so a re-run refreshes a stale hook path without duplicating.
|
|
55
|
+
* Fail-safe — if settings.json exists but is not valid JSON, we leave it alone
|
|
56
|
+
* and report, rather than overwrite a file the user owns.
|
|
57
|
+
*/
|
|
58
|
+
export declare function wireClaudeHooks(cwd: string): 'created' | 'updated' | {
|
|
59
|
+
error: string;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Register Codex-specific navigation and notebook hooks. Event envelopes are
|
|
63
|
+
* intentionally handled by separate files so Codex rollout/subagent behavior
|
|
64
|
+
* can evolve without risking the Claude integration.
|
|
65
|
+
*/
|
|
66
|
+
export declare function wireCodexHooks(cwd: string): 'created' | 'updated' | {
|
|
67
|
+
error: string;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Register Cursor navigation + notebook hooks in `.cursor/hooks.json`.
|
|
71
|
+
*
|
|
72
|
+
* Cursor's config differs from Codex/Claude: a top-level `version` + a `hooks`
|
|
73
|
+
* map whose events hold FLAT `{command}` entries (no matcher / no nested hooks).
|
|
74
|
+
* `preToolUse`/`postToolUse` are generic (fire for Shell + Read + MCP), so no
|
|
75
|
+
* matcher is needed — the handler filters. The SAME hooks serve both experiences;
|
|
76
|
+
* the handlers normalize a Shell `coldstart find` (cli) and an MCP find (mcp) to
|
|
77
|
+
* one shape, mirroring Codex. Recall rides `beforeSubmitPrompt` (Cursor honors
|
|
78
|
+
* its `additional_context` despite the docs); capture rides `stop`+`subagentStop`.
|
|
79
|
+
*
|
|
80
|
+
* Merges idempotently (strips our prior entries by filename, preserves foreign
|
|
81
|
+
* ones) and is fail-safe on invalid JSON.
|
|
82
|
+
*/
|
|
83
|
+
export declare function wireCursorHooks(cwd: string): 'created' | 'updated' | {
|
|
84
|
+
error: string;
|
|
85
|
+
};
|
|
86
|
+
/** Write `.cursor/rules/coldstart.mdc` — an always-applied rule that pulls in
|
|
87
|
+
* coldstart.md via Cursor's `@file` reference. Overwritten on re-run (it owns
|
|
88
|
+
* this file), so guidance edits flow through coldstart.md. */
|
|
89
|
+
export declare function wireCursorRule(cwd: string): 'created' | 'updated';
|
|
90
|
+
/** Ensure AGENTS.md carries a coldstart section pointing at coldstart.md.
|
|
91
|
+
* AGENTS.md has no import directive, so we inject a marked block and refresh it
|
|
92
|
+
* in place on re-run (idempotent), preserving everything else in the file. */
|
|
93
|
+
export declare function wireCodexAgents(cwd: string): 'created' | 'updated';
|
|
94
|
+
/** Merge `{ mcpServers: { coldstart: entry } }` into a JSON MCP config (used for
|
|
95
|
+
* Claude's `.mcp.json` and Cursor's `.cursor/mcp.json` — identical shape).
|
|
96
|
+
* Fail-safe on invalid JSON; preserves other servers and keys. */
|
|
97
|
+
export declare function wireJsonMcp(cwd: string, relFile: string, entry: {
|
|
98
|
+
command: string;
|
|
99
|
+
args: string[];
|
|
100
|
+
}): 'created' | 'updated' | {
|
|
101
|
+
error: string;
|
|
102
|
+
};
|
|
103
|
+
/** Write `[mcp_servers.coldstart]` into `.codex/config.toml` (Codex's MCP config).
|
|
104
|
+
* Hand-rolled minimal TOML merge — no dependency: strip a prior coldstart table,
|
|
105
|
+
* then append a fresh one. Other config is preserved verbatim. */
|
|
106
|
+
export declare function wireCodexMcp(cwd: string, entry: {
|
|
107
|
+
command: string;
|
|
108
|
+
args: string[];
|
|
109
|
+
}): 'created' | 'updated';
|
|
110
|
+
export declare function runInit(): Promise<void>;
|
|
111
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAmCH,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAEvD;AAgED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA+BxF;AA8DD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAehE;AAMD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAKxF;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAW7E;AA+ED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAgCtF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAsDrF;AAWD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAyCtF;AAMD;;+DAE+D;AAC/D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAiBjE;AAKD;;+EAE+E;AAC/E,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CA0BlE;AAMD;;mEAEmE;AACnE,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GACzC,SAAS,GAAG,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAsB3C;AA2BD;;mEAEmE;AACnE,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GACzC,SAAS,GAAG,SAAS,CAcvB;AA2HD,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAwE7C"}
|