codesift-mcp 0.8.6 → 0.8.10
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 +8 -0
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +6 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/hooks.js +2 -2
- package/dist/cli/hooks.js.map +1 -1
- package/dist/cli/setup.d.ts +4 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +97 -7
- package/dist/cli/setup.js.map +1 -1
- package/dist/formatters-shortening.d.ts +7 -0
- package/dist/formatters-shortening.d.ts.map +1 -1
- package/dist/formatters-shortening.js +48 -0
- package/dist/formatters-shortening.js.map +1 -1
- package/dist/formatters.d.ts.map +1 -1
- package/dist/formatters.js +14 -2
- package/dist/formatters.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +2 -2
- package/dist/register-tool-loaders.d.ts +1 -0
- package/dist/register-tool-loaders.d.ts.map +1 -1
- package/dist/register-tool-loaders.js +1 -0
- package/dist/register-tool-loaders.js.map +1 -1
- package/dist/register-tools.d.ts +2 -0
- package/dist/register-tools.d.ts.map +1 -1
- package/dist/register-tools.js +41 -17
- package/dist/register-tools.js.map +1 -1
- package/dist/server-helpers.d.ts.map +1 -1
- package/dist/server-helpers.js +7 -3
- package/dist/server-helpers.js.map +1 -1
- package/dist/storage/registry.d.ts.map +1 -1
- package/dist/storage/registry.js +35 -1
- package/dist/storage/registry.js.map +1 -1
- package/dist/storage/usage-tracker.d.ts +13 -5
- package/dist/storage/usage-tracker.d.ts.map +1 -1
- package/dist/storage/usage-tracker.js +18 -2
- package/dist/storage/usage-tracker.js.map +1 -1
- package/dist/tools/conversation-tools.d.ts +8 -1
- package/dist/tools/conversation-tools.d.ts.map +1 -1
- package/dist/tools/conversation-tools.js +61 -15
- package/dist/tools/conversation-tools.js.map +1 -1
- package/dist/tools/index-tools.d.ts +2 -0
- package/dist/tools/index-tools.d.ts.map +1 -1
- package/dist/tools/index-tools.js +64 -7
- package/dist/tools/index-tools.js.map +1 -1
- package/dist/tools/plan-turn-tools.d.ts +24 -0
- package/dist/tools/plan-turn-tools.d.ts.map +1 -1
- package/dist/tools/plan-turn-tools.js +158 -3
- package/dist/tools/plan-turn-tools.js.map +1 -1
- package/dist/tools/search-tools.d.ts +12 -0
- package/dist/tools/search-tools.d.ts.map +1 -1
- package/dist/tools/search-tools.js +120 -6
- package/dist/tools/search-tools.js.map +1 -1
- package/package.json +1 -1
- package/rules/codesift.md +1 -1
- package/rules/codesift.mdc +1 -1
- package/rules/codex.md +1 -1
- package/rules/gemini.md +1 -1
package/dist/register-tools.js
CHANGED
|
@@ -762,19 +762,25 @@ export const OutputSchemas = {
|
|
|
762
762
|
/** list_repos */
|
|
763
763
|
repoList: z.union([z.array(z.string()), z.array(z.object({ name: z.string() }).passthrough())]),
|
|
764
764
|
};
|
|
765
|
+
/** Usage-critical tools that must never require discover_tools/describe_tools. */
|
|
766
|
+
export const ALWAYS_VISIBLE_TOOL_NAMES = [
|
|
767
|
+
"search_text",
|
|
768
|
+
"get_file_outline",
|
|
769
|
+
"plan_turn",
|
|
770
|
+
"index_file",
|
|
771
|
+
"search_symbols",
|
|
772
|
+
"get_file_tree",
|
|
773
|
+
"search_all_conversations",
|
|
774
|
+
"codebase_retrieval",
|
|
775
|
+
];
|
|
765
776
|
/** Tools visible in ListTools — core (high usage) + direct-use (agents call without discovery) */
|
|
766
777
|
export const CORE_TOOL_NAMES = new Set([
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
"
|
|
770
|
-
"
|
|
771
|
-
"
|
|
772
|
-
"
|
|
773
|
-
"get_file_tree", // #6: 268 calls
|
|
774
|
-
"index_file", // #7: 209 calls
|
|
775
|
-
"get_symbol", // #8: 138 calls
|
|
776
|
-
"search_patterns", // #9: 135 calls
|
|
777
|
-
"index_conversations", // #10: 127 calls
|
|
778
|
+
...ALWAYS_VISIBLE_TOOL_NAMES,
|
|
779
|
+
// --- Additional high-usage/direct-use tools ---
|
|
780
|
+
"list_repos",
|
|
781
|
+
"get_symbol",
|
|
782
|
+
"search_patterns",
|
|
783
|
+
"index_conversations",
|
|
778
784
|
// --- Direct-use: agents call these without discovery ---
|
|
779
785
|
"assemble_context", // 64 calls, 21 sessions, 100% direct
|
|
780
786
|
"get_symbols", // 69 calls — batch symbol reads
|
|
@@ -809,7 +815,6 @@ export const CORE_TOOL_NAMES = new Set([
|
|
|
809
815
|
"index_folder", // repo onboarding
|
|
810
816
|
"discover_tools", // meta: discovers remaining hidden tools
|
|
811
817
|
"describe_tools", // meta: full schema for hidden tools
|
|
812
|
-
"plan_turn", // meta: route query to best tools/symbols/files
|
|
813
818
|
"initial_instructions", // meta: Serena-style onboarding tool, "must call first"
|
|
814
819
|
"get_session_snapshot", // session: compaction survival
|
|
815
820
|
"analyze_project", // project profile
|
|
@@ -1034,9 +1039,11 @@ const TOOL_DEFINITIONS = [
|
|
|
1034
1039
|
auto_group: args.auto_group,
|
|
1035
1040
|
ranked: args.ranked,
|
|
1036
1041
|
});
|
|
1037
|
-
// Zero-result
|
|
1038
|
-
//
|
|
1039
|
-
//
|
|
1042
|
+
// Zero-result fallback: 44% of search_text calls return nothing in
|
|
1043
|
+
// telemetry. Instead of a bare empty array, return (a) shape-based
|
|
1044
|
+
// hints, (b) near-miss symbol names from the index vocabulary, and
|
|
1045
|
+
// (c) semantic results when an embeddings index already exists —
|
|
1046
|
+
// so the agent doesn't burn 2-3 follow-up turns guessing.
|
|
1040
1047
|
const isEmpty = (Array.isArray(result) && result.length === 0)
|
|
1041
1048
|
|| (typeof result === "string" && result.length === 0);
|
|
1042
1049
|
if (isEmpty) {
|
|
@@ -1054,7 +1061,19 @@ const TOOL_DEFINITIONS = [
|
|
|
1054
1061
|
hints.push("Try regex=false (literal) — escapes may be off.");
|
|
1055
1062
|
if (!fp && !looksLikeSymbol)
|
|
1056
1063
|
hints.push("Try a shorter substring, or add file_pattern= to scope.");
|
|
1057
|
-
|
|
1064
|
+
const { zeroHitFallback } = await import("./register-tool-loaders.js");
|
|
1065
|
+
const fallback = await zeroHitFallback(args.repo, q);
|
|
1066
|
+
if (fallback.semantic_results) {
|
|
1067
|
+
hints.push("Exact text not found — semantic_fallback below shows closest matches by meaning.");
|
|
1068
|
+
}
|
|
1069
|
+
const response = { matches: [], hint: hints.join(" ") };
|
|
1070
|
+
if (fallback.suggestions) {
|
|
1071
|
+
response["did_you_mean"] = fallback.suggestions;
|
|
1072
|
+
}
|
|
1073
|
+
if (fallback.semantic_results) {
|
|
1074
|
+
response["semantic_fallback"] = fallback.semantic_results;
|
|
1075
|
+
}
|
|
1076
|
+
return response;
|
|
1058
1077
|
}
|
|
1059
1078
|
return result;
|
|
1060
1079
|
},
|
|
@@ -3594,7 +3613,12 @@ const TOOL_DEFINITIONS = [
|
|
|
3594
3613
|
// Pass first matched workspace path through the existing file_pattern-style hook
|
|
3595
3614
|
opts.file_pattern = `${scope.rootPaths[0]}/**`;
|
|
3596
3615
|
}
|
|
3597
|
-
|
|
3616
|
+
const result = await nestAudit(args.repo ?? "", opts);
|
|
3617
|
+
// Telemetry: nest_audit averaged 18.4K tok/call with 110K-tok peaks —
|
|
3618
|
+
// cap arrays to keep JSON valid instead of letting the cascade
|
|
3619
|
+
// hard-truncate mid-structure.
|
|
3620
|
+
const { capArraysToBudget } = await import("./formatters-shortening.js");
|
|
3621
|
+
return capArraysToBudget(result);
|
|
3598
3622
|
},
|
|
3599
3623
|
},
|
|
3600
3624
|
// --- Agent config audit ---
|