@octocodeai/octocode-core 4.3.0 → 16.1.1

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.
Files changed (38) hide show
  1. package/dist/configLoader.d.ts +0 -4
  2. package/dist/data/compressed.js +1 -1
  3. package/dist/data/default.json +229 -324
  4. package/dist/resources/global.d.ts +3 -0
  5. package/dist/resources/global.js +1 -0
  6. package/dist/resources/tools/ghCloneRepo.d.ts +2 -0
  7. package/dist/resources/tools/ghCloneRepo.js +1 -0
  8. package/dist/resources/tools/ghGetFileContent.d.ts +2 -0
  9. package/dist/resources/tools/ghGetFileContent.js +1 -0
  10. package/dist/resources/tools/ghSearchCode.d.ts +2 -0
  11. package/dist/resources/tools/ghSearchCode.js +1 -0
  12. package/dist/resources/tools/ghSearchPRs.d.ts +2 -0
  13. package/dist/resources/tools/ghSearchPRs.js +1 -0
  14. package/dist/resources/tools/ghSearchRepos.d.ts +2 -0
  15. package/dist/resources/tools/ghSearchRepos.js +1 -0
  16. package/dist/resources/tools/ghViewRepoStructure.d.ts +2 -0
  17. package/dist/resources/tools/ghViewRepoStructure.js +1 -0
  18. package/dist/resources/tools/localFindFiles.d.ts +2 -0
  19. package/dist/resources/tools/localFindFiles.js +1 -0
  20. package/dist/resources/tools/localGetFileContent.d.ts +2 -0
  21. package/dist/resources/tools/localGetFileContent.js +1 -0
  22. package/dist/resources/tools/localSearchCode.d.ts +2 -0
  23. package/dist/resources/tools/localSearchCode.js +1 -0
  24. package/dist/resources/tools/localViewStructure.d.ts +2 -0
  25. package/dist/resources/tools/localViewStructure.js +1 -0
  26. package/dist/resources/tools/lspGetSemantics.d.ts +2 -0
  27. package/dist/resources/tools/lspGetSemantics.js +1 -0
  28. package/dist/resources/tools/npmSearch.d.ts +2 -0
  29. package/dist/resources/tools/npmSearch.js +1 -0
  30. package/dist/schemas/extraTypes.d.ts +0 -36
  31. package/dist/schemas/index.d.ts +81 -65
  32. package/dist/schemas/index.js +1 -1
  33. package/dist/schemas/outputs.d.ts +1 -13
  34. package/dist/schemas/outputs.js +1 -1
  35. package/dist/schemas/runtime.d.ts +0 -21
  36. package/dist/schemas/runtime.js +1 -1
  37. package/dist/types/index.d.ts +11 -52
  38. package/package.json +2 -1
@@ -1 +1 @@
1
- import{z as o}from"zod";const n=o.array(o.string()).optional(),t={id:o.string().optional(),mainResearchGoal:o.string().optional(),researchGoal:o.string().optional(),reasoning:o.string().optional()};export const RipgrepQuerySchema=o.object({...t,keywords:o.string(),path:o.string(),mode:o.enum(["paginated","discovery","detailed"]).optional(),fixedString:o.boolean().optional(),perlRegex:o.boolean().optional(),caseInsensitive:o.boolean().optional(),caseSensitive:o.boolean().optional(),wholeWord:o.boolean().optional(),invertMatch:o.boolean().optional(),include:n,exclude:n,excludeDir:n,noIgnore:o.boolean().optional(),hidden:o.boolean().optional(),filesOnly:o.boolean().optional(),filesWithoutMatch:o.boolean().optional(),contextLines:o.number().int().optional(),matchContentLength:o.number().int().optional(),maxMatchesPerFile:o.number().int().optional(),maxFiles:o.number().int().optional(),multiline:o.boolean().optional(),multilineDotall:o.boolean().optional(),sort:o.enum(["path","modified","accessed","created"]).optional(),sortReverse:o.boolean().optional(),langType:o.string().optional(),countLinesPerFile:o.boolean().optional(),countMatchesPerFile:o.boolean().optional(),matchPage:o.number().int().optional(),itemsPerPage:o.number().int().optional(),page:o.number().int().optional()});export const FindFilesQuerySchema=o.object({...t,path:o.string(),maxDepth:o.number().int().optional(),minDepth:o.number().int().optional(),names:n,pathPattern:o.string().optional(),regex:o.string().optional(),regexType:o.string().optional(),empty:o.boolean().optional(),modifiedWithin:o.string().optional(),modifiedBefore:o.string().optional(),accessedWithin:o.string().optional(),sizeGreater:o.string().optional(),sizeLess:o.string().optional(),permissions:o.string().optional(),executable:o.boolean().optional(),readable:o.boolean().optional(),writable:o.boolean().optional(),excludeDir:n,limit:o.number().int().optional(),details:o.boolean().optional(),showFileLastModified:o.boolean().optional(),sortBy:o.enum(["modified","name","path","size"]).optional(),entryType:o.enum(["f","d"]).optional(),page:o.number().int().optional(),itemsPerPage:o.number().int().optional()});export const ViewStructureQuerySchema=o.object({...t,path:o.string(),details:o.boolean().optional(),hidden:o.boolean().optional(),humanReadable:o.boolean().optional(),sortBy:o.enum(["name","size","time","extension"]).optional(),reverse:o.boolean().optional(),pattern:o.string().optional(),directoriesOnly:o.boolean().optional(),filesOnly:o.boolean().optional(),recursive:o.boolean().optional(),extensions:n,depth:o.number().int().optional(),limit:o.number().int().optional(),showFileLastModified:o.boolean().optional(),page:o.number().int().optional(),itemsPerPage:o.number().int().optional()});export const FetchContentQuerySchema=o.object({...t,path:o.string(),fullContent:o.boolean().optional(),matchString:o.string().optional(),matchStringIsRegex:o.boolean().optional(),matchStringCaseSensitive:o.boolean().optional(),startLine:o.number().int().optional(),endLine:o.number().int().optional(),contextLines:o.number().int().optional(),charOffset:o.number().int().optional(),charLength:o.number().int().optional(),minify:o.enum(["none","standard","symbols"]).optional()});export const FileContentQuerySchema=o.object({...t,owner:o.string(),repo:o.string(),branch:o.string().optional(),path:o.string(),startLine:o.number().int().optional(),endLine:o.number().int().optional(),fullContent:o.boolean().optional(),matchString:o.string().optional(),matchStringIsRegex:o.boolean().optional(),matchStringCaseSensitive:o.boolean().optional(),forceRefresh:o.boolean().optional(),type:o.enum(["file","directory"]).optional(),contextLines:o.number().int().optional(),charOffset:o.number().int().optional(),charLength:o.number().int().optional(),minify:o.enum(["none","standard","symbols"]).optional()});export const GitHubCodeSearchQuerySchema=o.object({...t,keywordsToSearch:n,owner:o.string().optional(),repo:o.string().optional(),extension:o.string().optional(),filename:o.string().optional(),path:o.string().optional(),match:o.enum(["file","path"]).optional(),limit:o.number().int().optional(),page:o.number().int().optional(),verbose:o.boolean().optional()});export const GitHubReposSearchSingleQuerySchema=o.object({...t,keywordsToSearch:n,topicsToSearch:n,language:o.string().optional(),owner:o.string().optional(),stars:o.string().optional(),size:o.string().optional(),created:o.string().optional(),updated:o.string().optional(),match:o.array(o.enum(["name","description","readme"])).optional(),sort:o.enum(["stars","forks","help-wanted-issues","updated","best-match"]).optional(),limit:o.number().int().optional(),page:o.number().int().optional(),archived:o.boolean().optional(),verbose:o.boolean().optional()});export const GitHubPullRequestSearchQuerySchema=o.object({...t,keywordsToSearch:o.array(o.string()).optional(),prNumber:o.number().int().optional(),owner:o.string().optional(),repo:o.string().optional(),verbose:o.boolean().optional(),state:o.enum(["open","closed","merged"]).optional(),assignee:o.string().optional(),author:o.string().optional(),commenter:o.string().optional(),involves:o.string().optional(),mentions:o.string().optional(),"review-requested":o.string().optional(),"reviewed-by":o.string().optional(),label:o.union([o.string(),o.array(o.string())]).optional(),"no-label":o.boolean().optional(),"no-milestone":o.boolean().optional(),"no-project":o.boolean().optional(),"no-assignee":o.boolean().optional(),head:o.string().optional(),base:o.string().optional(),created:o.string().optional(),updated:o.string().optional(),closed:o.string().optional(),"merged-at":o.string().optional(),comments:o.string().optional(),reactions:o.string().optional(),interactions:o.string().optional(),draft:o.boolean().optional(),matchScope:o.array(o.enum(["title","body","comments"])).optional(),sort:o.enum(["created","updated","best-match","comments","reactions"]).optional(),order:o.enum(["asc","desc"]).optional(),limit:o.number().int().optional(),page:o.number().int().optional(),archived:o.boolean().optional(),filePage:o.number().int().optional(),commentPage:o.number().int().optional(),commitPage:o.number().int().optional(),itemsPerPage:o.number().int().optional(),reviewMode:o.literal("full").optional(),content:o.object({metadata:o.boolean().optional(),body:o.boolean().optional(),changedFiles:o.boolean().optional(),patches:o.object({mode:o.enum(["none","selected","all"]).optional(),files:n,ranges:o.array(o.object({file:o.string(),additions:o.array(o.number().int()).optional(),deletions:o.array(o.number().int()).optional()})).optional()}).optional(),comments:o.object({discussion:o.boolean().optional(),reviewInline:o.boolean().optional(),includeBots:o.boolean().optional(),file:o.string().optional()}).optional(),reviews:o.boolean().optional(),commits:o.object({list:o.boolean().optional(),includeFiles:o.boolean().optional()}).optional()}).optional(),matchString:o.string().optional(),charOffset:o.number().int().optional(),charLength:o.number().int().optional(),includeBots:o.boolean().optional(),minify:o.enum(["none","standard"]).optional()});export const GitHubViewRepoStructureQuerySchema=o.object({...t,owner:o.string(),repo:o.string(),branch:o.string().optional(),path:o.string().optional(),depth:o.number().int().optional(),page:o.number().int().optional(),itemsPerPage:o.number().int().optional(),verbose:o.boolean().optional()});export const NpmPackageQuerySchema=o.object({...t,ecosystem:o.literal("npm").optional(),packageName:o.string(),mode:o.enum(["smart","full","lean"]).optional()});export const CloneRepoQuerySchema=o.object({...t,owner:o.string(),repo:o.string(),branch:o.string().optional(),sparsePath:o.string().optional(),forceRefresh:o.boolean().optional()});export const BulkCloneRepoSchema=o.object({queries:o.array(CloneRepoQuerySchema).min(1)});const e={...t,uri:o.string(),symbolName:o.string(),lineHint:o.number().int(),orderHint:o.number().int().optional()};export const LSPGotoDefinitionQuerySchema=o.object({...e,contextLines:o.number().int().optional()});export const LSPFindReferencesQuerySchema=o.object({...e,includeDeclaration:o.boolean().optional(),contextLines:o.number().int().optional(),itemsPerPage:o.number().int().optional(),page:o.number().int().optional(),groupByFile:o.boolean().optional()});export const LSPCallHierarchyQuerySchema=o.object({...e,direction:o.enum(["incoming","outgoing"]),depth:o.number().int().optional(),contextLines:o.number().int().optional(),itemsPerPage:o.number().int().optional(),page:o.number().int().optional()});
1
+ import{z as e}from"zod";import{baseSchema as o,toolNames as t}from"../resources/global.js";import{ghCloneRepo as n}from"../resources/tools/ghCloneRepo.js";import{ghGetFileContent as i}from"../resources/tools/ghGetFileContent.js";import{ghSearchCode as a}from"../resources/tools/ghSearchCode.js";import{ghSearchPRs as s}from"../resources/tools/ghSearchPRs.js";import{ghSearchRepos as l}from"../resources/tools/ghSearchRepos.js";import{ghViewRepoStructure as r}from"../resources/tools/ghViewRepoStructure.js";import{localFindFiles as c}from"../resources/tools/localFindFiles.js";import{localGetFileContent as p}from"../resources/tools/localGetFileContent.js";import{localSearchCode as m}from"../resources/tools/localSearchCode.js";import{localViewStructure as u}from"../resources/tools/localViewStructure.js";import{lspGetSemantics as d}from"../resources/tools/lspGetSemantics.js";import{npmSearch as g}from"../resources/tools/npmSearch.js";const h=e.array(e.string()).optional(),f=1e3,S=1e9,b=1e5,y=100,L=1e5;function E(o,t){return e.number().int().min(o).max(t)}function _(){return E(1,f).default(1)}function C(){return E(1,f).optional()}function T(){return E(0,100).optional()}function R(){return E(1,S).optional()}function I(){return E(0,1e8).optional()}function P(){return E(1,5e4).optional()}const x={[t.GITHUB_FETCH_CONTENT]:i.schema,[t.GITHUB_SEARCH_CODE]:a.schema,[t.GITHUB_SEARCH_PULL_REQUESTS]:s.schema,[t.GITHUB_SEARCH_REPOSITORIES]:l.schema,[t.GITHUB_VIEW_REPO_STRUCTURE]:r.schema,[t.PACKAGE_SEARCH]:g.schema,[t.GITHUB_CLONE_REPO]:n.schema,[t.LOCAL_RIPGREP]:m.schema,[t.LOCAL_FETCH_CONTENT]:p.schema,[t.LOCAL_FIND_FILES]:c.schema,[t.LOCAL_VIEW_STRUCTURE]:u.schema,[t.LSP_GET_SEMANTIC_CONTENT]:d.schema};function H(e,t){const n=x[e];return o[t]??n[t]}function v(e,o){return o?e.describe(o):e}function O(o,t,n=""){const i={};for(const e of Object.keys(t)){const a=t[e],s=H(o,n?`${n}.${e}`:e);i[e]=v(a,s)}return e.object(i)}function U(e,o){return O(e,o)}const G={id:e.string().optional(),mainResearchGoal:e.string().optional(),researchGoal:e.string().optional(),reasoning:e.string().optional()};export const RipgrepQuerySchema=U(t.LOCAL_RIPGREP,{...G,keywords:e.string(),path:e.string(),mode:e.enum(["paginated","discovery","detailed"]).default("paginated"),fixedString:e.boolean().optional(),perlRegex:e.boolean().optional(),caseInsensitive:e.boolean().optional(),caseSensitive:e.boolean().optional(),wholeWord:e.boolean().optional(),invertMatch:e.boolean().optional(),include:h,exclude:h,excludeDir:h,noIgnore:e.boolean().optional(),hidden:e.boolean().optional(),filesOnly:e.boolean().optional(),filesWithoutMatch:e.boolean().optional(),contextLines:T(),matchContentLength:E(1,L).default(500),maxMatchesPerFile:E(1,L).optional(),maxFiles:E(1,L).optional(),multiline:e.boolean().optional(),multilineDotall:e.boolean().optional(),sort:e.enum(["path","modified","accessed","created"]).default("path"),sortReverse:e.boolean().optional(),langType:e.string().optional(),countLinesPerFile:e.boolean().optional(),countMatchesPerFile:e.boolean().optional(),matchPage:C(),itemsPerPage:E(1,f).optional(),page:_()}).superRefine((e,o)=>{e.filesOnly&&e.filesWithoutMatch&&o.addIssue({code:"custom",message:"filesOnly and filesWithoutMatch are mutually exclusive.",path:["filesWithoutMatch"]}),e.fixedString&&e.perlRegex&&o.addIssue({code:"custom",message:"fixedString and perlRegex are mutually exclusive.",path:["perlRegex"]}),e.caseSensitive&&e.caseInsensitive&&o.addIssue({code:"custom",message:"caseSensitive and caseInsensitive are mutually exclusive.",path:["caseInsensitive"]}),e.multilineDotall&&!e.multiline&&o.addIssue({code:"custom",message:"multilineDotall requires multiline=true.",path:["multilineDotall"]}),e.countLinesPerFile&&e.countMatchesPerFile&&o.addIssue({code:"custom",message:"countLinesPerFile and countMatchesPerFile are mutually exclusive.",path:["countMatchesPerFile"]})});export const FindFilesQuerySchema=U(t.LOCAL_FIND_FILES,{...G,path:e.string(),maxDepth:E(0,100).optional(),minDepth:E(0,100).optional(),names:h,pathPattern:e.string().optional(),regex:e.string().optional(),empty:e.boolean().optional(),modifiedWithin:e.string().optional(),modifiedBefore:e.string().optional(),accessedWithin:e.string().optional(),sizeGreater:e.string().optional(),sizeLess:e.string().optional(),permissions:e.string().optional(),executable:e.boolean().optional(),readable:e.boolean().optional(),writable:e.boolean().optional(),excludeDir:h,limit:E(1,1e4).optional(),details:e.boolean().optional(),showFileLastModified:e.boolean().optional(),sortBy:e.enum(["modified","name","path","size"]).default("modified"),entryType:e.enum(["f","d"]).optional(),page:_(),itemsPerPage:E(1,50).optional()}).superRefine((e,o)=>{void 0!==e.minDepth&&void 0!==e.maxDepth&&e.minDepth>e.maxDepth&&o.addIssue({code:"custom",message:"minDepth must be less than or equal to maxDepth.",path:["minDepth"]})});export const ViewStructureQuerySchema=U(t.LOCAL_VIEW_STRUCTURE,{...G,path:e.string(),details:e.boolean().optional(),hidden:e.boolean().optional(),sortBy:e.enum(["name","size","time","extension"]).default("name"),reverse:e.boolean().optional(),pattern:e.string().optional(),directoriesOnly:e.boolean().optional(),filesOnly:e.boolean().optional(),recursive:e.boolean().optional(),extensions:h,depth:E(0,20).optional(),limit:E(1,1e4).optional(),showFileLastModified:e.boolean().optional(),page:_(),itemsPerPage:E(1,50).optional()}).superRefine((e,o)=>{e.filesOnly&&e.directoriesOnly&&o.addIssue({code:"custom",message:"filesOnly and directoriesOnly are mutually exclusive.",path:["directoriesOnly"]})});function N(e,o){const t=!0===e.fullContent,n=void 0!==e.matchString,i=void 0!==e.startLine||void 0!==e.endLine;t&&n&&o.addIssue({code:"custom",message:"Cannot use fullContent with matchString — these are mutually exclusive extraction methods.",path:["matchString"]}),t&&i&&o.addIssue({code:"custom",message:"Cannot use fullContent with startLine/endLine — these are mutually exclusive extraction methods.",path:["startLine"]}),n&&i&&o.addIssue({code:"custom",message:"Cannot use matchString with startLine/endLine — these are mutually exclusive extraction methods.",path:["startLine"]}),void 0!==e.startLine&&void 0!==e.endLine&&e.endLine<e.startLine&&o.addIssue({code:"custom",message:"Invalid line range: endLine must be greater than or equal to startLine.",path:["endLine"]})}export const FetchContentQuerySchema=U(t.LOCAL_FETCH_CONTENT,{...G,path:e.string(),fullContent:e.boolean().optional(),matchString:e.string().optional(),matchStringIsRegex:e.boolean().optional(),matchStringCaseSensitive:e.boolean().optional(),startLine:R(),endLine:R(),contextLines:E(0,100).default(5),charOffset:I(),charLength:P(),minify:e.enum(["none","standard","symbols"]).default("standard")}).superRefine(N);export const FileContentQuerySchema=U(t.GITHUB_FETCH_CONTENT,{...G,owner:e.string(),repo:e.string(),branch:e.string().optional(),path:e.string(),startLine:R(),endLine:R(),fullContent:e.boolean().optional(),matchString:e.string().optional(),matchStringIsRegex:e.boolean().optional(),matchStringCaseSensitive:e.boolean().optional(),forceRefresh:e.boolean().optional(),type:e.enum(["file","directory"]).default("file"),contextLines:E(0,100).default(5),charOffset:I(),charLength:P(),minify:e.enum(["none","standard","symbols"]).default("standard")}).superRefine(N);export const GitHubCodeSearchQuerySchema=U(t.GITHUB_SEARCH_CODE,{...G,keywordsToSearch:h,owner:e.string().optional(),repo:e.string().optional(),extension:e.string().optional(),filename:e.string().optional(),path:e.string().optional(),language:e.string().optional(),match:e.enum(["file","path"]).default("file"),limit:E(1,100).default(30),page:_(),verbose:e.boolean().optional()});export const GitHubReposSearchSingleQuerySchema=U(t.GITHUB_SEARCH_REPOSITORIES,{...G,keywordsToSearch:h,topicsToSearch:h,language:e.string().optional(),owner:e.string().optional(),stars:e.string().optional(),size:e.string().optional(),created:e.string().optional(),updated:e.string().optional(),match:e.array(e.enum(["name","description","readme"])).optional(),sort:e.enum(["stars","forks","help-wanted-issues","updated","best-match"]).default("best-match"),limit:E(1,100).default(30),page:_(),archived:e.boolean().optional(),visibility:e.enum(["public","private"]).optional(),forks:e.string().optional(),license:e.string().optional(),goodFirstIssues:e.string().optional(),verbose:e.boolean().optional()});export const GitHubPullRequestSearchQuerySchema=U(t.GITHUB_SEARCH_PULL_REQUESTS,{...G,keywordsToSearch:e.array(e.string()).optional(),query:e.string().optional(),prNumber:E(1,S).optional(),owner:e.string().optional(),repo:e.string().optional(),verbose:e.boolean().optional(),state:e.enum(["open","closed","merged"]).optional(),assignee:e.string().optional(),author:e.string().optional(),commenter:e.string().optional(),involves:e.string().optional(),mentions:e.string().optional(),"review-requested":e.string().optional(),"reviewed-by":e.string().optional(),label:e.union([e.string(),e.array(e.string())]).optional(),"no-label":e.boolean().optional(),"no-milestone":e.boolean().optional(),"no-project":e.boolean().optional(),"no-assignee":e.boolean().optional(),head:e.string().optional(),base:e.string().optional(),created:e.string().optional(),updated:e.string().optional(),closed:e.string().optional(),"merged-at":e.string().optional(),comments:e.string().optional(),reactions:e.string().optional(),interactions:e.string().optional(),draft:e.boolean().optional(),match:e.array(e.enum(["title","body","comments"])).optional(),sort:e.enum(["created","updated","best-match","comments","reactions"]).optional(),order:e.enum(["asc","desc"]).optional(),limit:E(1,100).default(30),page:_(),archived:e.boolean().optional(),filePage:C(),commentPage:C(),commitPage:C(),itemsPerPage:E(1,y).default(20),reviewMode:e.literal("full").optional(),content:O(t.GITHUB_SEARCH_PULL_REQUESTS,{metadata:e.boolean().optional(),body:e.boolean().optional(),changedFiles:e.boolean().optional(),patches:O(t.GITHUB_SEARCH_PULL_REQUESTS,{mode:e.enum(["none","selected","all"]).default("none"),files:h,ranges:e.array(O(t.GITHUB_SEARCH_PULL_REQUESTS,{file:e.string(),additions:e.array(E(1,S)).optional(),deletions:e.array(E(1,S)).optional()},"content.patches.ranges")).optional()},"content.patches").optional(),comments:O(t.GITHUB_SEARCH_PULL_REQUESTS,{discussion:e.boolean().optional(),reviewInline:e.boolean().optional(),includeBots:e.boolean().default(!1),file:e.string().optional()},"content.comments").optional(),reviews:e.boolean().optional(),commits:O(t.GITHUB_SEARCH_PULL_REQUESTS,{list:e.boolean().optional(),includeFiles:e.boolean().optional()},"content.commits").optional()},"content").optional(),matchString:e.string().optional(),charOffset:I(),charLength:P()}).superRefine((e,o)=>{const t=e.content?.patches;if(!t)return;const n=(t.files?.length??0)>0,i=(t.ranges?.length??0)>0,a=n||i;"selected"!==t.mode||a||o.addIssue({code:"custom",message:'content.patches.mode="selected" requires non-empty files or ranges.',path:["content","patches","files"]}),"selected"!==t.mode&&a&&o.addIssue({code:"custom",message:'content.patches.files and content.patches.ranges require mode="selected".',path:["content","patches","mode"]})});export const GitHubViewRepoStructureQuerySchema=U(t.GITHUB_VIEW_REPO_STRUCTURE,{...G,owner:e.string(),repo:e.string(),branch:e.string().optional(),path:e.string().optional(),depth:E(0,20).optional(),page:_(),itemsPerPage:E(1,200).default(100)});export const NpmPackageQuerySchema=U(t.PACKAGE_SEARCH,{...G,packageName:e.string(),page:_()});export const CloneRepoQuerySchema=U(t.GITHUB_CLONE_REPO,{...G,owner:e.string(),repo:e.string(),branch:e.string().optional(),sparsePath:e.string().optional(),forceRefresh:e.boolean().optional()});export const BulkCloneRepoSchema=e.object({queries:e.array(CloneRepoQuerySchema).min(1)});const F={...G,uri:e.string(),symbolName:e.string(),lineHint:E(1,S),orderHint:E(0,b).default(0)};export const LSPGotoDefinitionQuerySchema=U(t.LSP_GET_SEMANTIC_CONTENT,{...F,contextLines:T()});export const LSPFindReferencesQuerySchema=U(t.LSP_GET_SEMANTIC_CONTENT,{...F,includeDeclaration:e.boolean().optional(),contextLines:T(),itemsPerPage:E(1,y).optional(),page:_(),groupByFile:e.boolean().optional()});export const LSPCallHierarchyQuerySchema=U(t.LSP_GET_SEMANTIC_CONTENT,{...F,direction:e.enum(["incoming","outgoing"]),depth:E(0,20).optional(),contextLines:T(),itemsPerPage:E(1,y).optional(),page:_()});export const LspGetSemanticsQuerySchema=U(t.LSP_GET_SEMANTIC_CONTENT,{...G,uri:e.string(),type:e.enum(["definition","references","callers","callees","callHierarchy","hover","documentSymbols","typeDefinition","implementation"]).default("definition"),symbolName:e.string().min(1).optional(),lineHint:E(1,S).optional(),orderHint:E(0,b).default(0),depth:E(0,20).optional(),includeDeclaration:e.boolean().default(!0),groupByFile:e.boolean().optional(),page:_(),itemsPerPage:E(1,y).optional(),contextLines:T(),format:e.enum(["structured","compact"]).default("structured"),workspaceRoot:e.string().optional()}).superRefine((e,o)=>{"documentSymbols"!==e.type&&(e.symbolName||o.addIssue({code:"custom",path:["symbolName"],message:"symbolName is required unless type is documentSymbols"}),Number.isInteger(e.lineHint)||o.addIssue({code:"custom",path:["lineHint"],message:"lineHint is required unless type is documentSymbols"}))});
@@ -1,15 +1,3 @@
1
- /**
2
- * Zod output schemas — every tool's *envelope* shape, mirroring the
3
- * structural types in `../types/index.ts`. The mcp-host overlay layers
4
- * peer-level keys (`hints`, `format`, `columns`, `rows`, `evidence`) on
5
- * top via `.extend()`, so each schema here is a plain `z.object` with
6
- * `.passthrough()` so the overlay can attach fields without strict-mode
7
- * rejection.
8
- *
9
- * Field-level constraints are intentionally loose — the runtime
10
- * `ToolResultEnvelope<T>` is the source of truth; these schemas exist
11
- * primarily to let consumers feed them to MCP `outputSchema` slots.
12
- */
13
1
  import { z } from "zod";
14
2
  export declare const ErrorDataSchema: z.ZodObject<{
15
3
  id: z.ZodOptional<z.ZodString>;
@@ -814,7 +802,7 @@ export declare const GitHubCloneRepoOutputSchema: z.ZodObject<{
814
802
  }, z.core.$loose>]>>>;
815
803
  error: z.ZodOptional<z.ZodString>;
816
804
  }, z.core.$loose>;
817
- export declare const PackageSearchOutputSchema: z.ZodObject<{
805
+ export declare const NpmSearchOutputSchema: z.ZodObject<{
818
806
  status: z.ZodOptional<z.ZodEnum<{
819
807
  empty: import("../types/index.js").ToolStatus.Empty;
820
808
  error: import("../types/index.js").ToolStatus.Error;
@@ -1 +1 @@
1
- import{z as t}from"zod";import{STATUS_VALUES as o}from"../types/index.js";export const ErrorDataSchema=t.object({id:t.string().optional(),error:t.string(),hints:t.array(t.string()).optional()});const n=t.object({currentPage:t.number(),totalPages:t.number(),hasMore:t.boolean(),perPage:t.number().optional(),totalMatches:t.number().optional(),totalFiles:t.number().optional(),totalEntries:t.number().optional(),totalResults:t.number().optional(),entriesPerPage:t.number().optional(),filesPerPage:t.number().optional(),matchesPerPage:t.number().optional()}),a=t.object({currentPage:t.number(),totalPages:t.number(),hasMore:t.boolean(),charOffset:t.number(),charLength:t.number(),totalChars:t.number()}),i=t.enum(["none","standard","symbols"]),r=t.array(t.string()).optional(),e=t.array(t.union([t.string(),t.object({kind:t.string()}).passthrough()])).optional(),s=t.enum([...o]),p=t.object({line:t.number(),value:t.string().optional(),column:t.number().optional()}),l=t.object({path:t.string(),matchCount:t.number(),matches:t.array(p).optional(),modified:t.string().optional()});export const LocalSearchCodeOutputSchema=t.object({status:s.optional(),data:t.object({files:t.array(l),pagination:n.optional(),searchEngine:t.string().optional()}).optional(),files:t.array(l).optional(),pagination:n.optional(),searchEngine:t.string().optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const g=t.object({path:t.string(),type:t.string().optional(),size:t.number().optional(),modified:t.string().optional(),permissions:t.string().optional()});export const LocalFindFilesOutputSchema=t.object({status:s.optional(),data:t.object({files:t.array(g),pagination:n.optional()}).optional(),files:t.array(g).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const c=t.object({path:t.string(),name:t.string(),type:t.string(),size:t.number().optional(),modified:t.string().optional()});export const LocalViewStructureOutputSchema=t.object({status:s.optional(),data:t.object({path:t.string().optional(),files:t.array(t.string()).optional(),folders:t.array(t.string()).optional(),links:t.array(t.string()).optional(),entries:t.array(c).optional(),summary:t.string().optional(),pagination:n.optional()}).optional(),path:t.string().optional(),files:t.array(t.string()).optional(),folders:t.array(t.string()).optional(),links:t.array(t.string()).optional(),entries:t.array(c).optional(),summary:t.string().optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const LocalGetFileContentOutputSchema=t.object({status:s.optional(),data:t.object({path:t.string(),content:t.string(),contentView:i.optional(),isSkeleton:t.boolean().optional(),totalLines:t.number().optional(),startLine:t.number().optional(),endLine:t.number().optional(),isPartial:t.boolean().optional(),matchRanges:t.array(t.array(t.number())).optional(),pagination:a.optional(),lastModified:t.string().optional(),lastModifiedBy:t.string().optional()}).optional(),path:t.string().optional(),content:t.string().optional(),contentView:i.optional(),isSkeleton:t.boolean().optional(),pagination:a.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const u=t.object({start:t.object({line:t.number(),character:t.number()}),end:t.object({line:t.number(),character:t.number()})}),h=t.object({uri:t.string(),range:u,content:t.string().optional()});export const LspGotoDefinitionOutputSchema=t.object({status:s.optional(),data:t.object({locations:t.array(h),lspMode:t.string().optional()}).optional(),locations:t.array(h).optional(),lspMode:t.string().optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const LspFindReferencesOutputSchema=t.object({status:s.optional(),data:t.object({locations:t.array(h),pagination:n.optional(),lspMode:t.string().optional()}).optional(),locations:t.array(h).optional(),pagination:n.optional(),lspMode:t.string().optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const LspCallHierarchyOutputSchema=t.object({status:s.optional(),data:t.object({item:t.object({name:t.string(),uri:t.string(),range:u,content:t.string().optional()}).optional(),incomingCalls:t.array(t.object({from:t.object({name:t.string(),uri:t.string(),range:u,content:t.string().optional()}).optional(),to:t.object({name:t.string(),uri:t.string(),range:u,content:t.string().optional()}).optional(),fromRanges:t.array(u).optional()}).passthrough()).optional(),outgoingCalls:t.array(t.object({from:t.object({name:t.string(),uri:t.string(),range:u,content:t.string().optional()}).optional(),to:t.object({name:t.string(),uri:t.string(),range:u,content:t.string().optional()}).optional(),fromRanges:t.array(u).optional()}).passthrough()).optional(),direction:t.string().optional(),depth:t.number().optional(),pagination:n.optional(),lspMode:t.string().optional()}).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const b=t.object({owner:t.string().optional(),repo:t.string().optional(),full_name:t.string().optional(),url:t.string().optional(),stars:t.number().optional(),language:t.string().optional(),pushed_at:t.string().optional(),description:t.string().optional(),topics:t.array(t.string()).optional(),license:t.string().optional()}).passthrough();export const GitHubSearchRepositoriesOutputSchema=t.object({status:s.optional(),data:t.object({repositories:t.array(b),pagination:n.optional()}).optional(),repositories:t.array(b).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const m=t.object({number:t.number(),title:t.string(),url:t.string().optional(),state:t.string().optional(),draft:t.boolean().optional(),merged:t.boolean().optional(),created_at:t.string().optional(),updated_at:t.string().optional(),closed_at:t.string().optional(),merged_at:t.string().optional(),author:t.string().optional(),head_ref:t.string().optional(),base_ref:t.string().optional()}).passthrough(),d=t.object({path:t.string(),value:t.string().optional()}).passthrough(),j=t.object({id:t.string(),owner:t.string(),repo:t.string(),matches:t.array(d)}).passthrough();export const GitHubSearchCodeOutputSchema=t.object({status:s.optional(),data:t.object({results:t.array(j),pagination:n.optional()}).optional(),results:t.array(j).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const GitHubSearchPullRequestsOutputSchema=t.object({status:s.optional(),data:t.object({pull_requests:t.array(m),total_count:t.number().optional(),pagination:n.optional()}).optional(),pull_requests:t.array(m).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const y=t.object({path:t.string(),name:t.string().optional(),type:t.string().optional(),size:t.number().optional()}).passthrough();export const GitHubFileContentOutputSchema=t.object({status:s.optional(),data:t.object({path:t.string(),content:t.string(),contentView:i.optional(),isSkeleton:t.boolean().optional(),totalLines:t.number().optional(),startLine:t.number().optional(),endLine:t.number().optional(),isPartial:t.boolean().optional(),resolvedBranch:t.string().optional(),pagination:a.optional(),lastModified:t.string().optional(),lastModifiedBy:t.string().optional()}).optional(),path:t.string().optional(),content:t.string().optional(),contentView:i.optional(),isSkeleton:t.boolean().optional(),pagination:a.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const GitHubViewRepoStructureOutputSchema=t.object({status:s.optional(),data:t.object({entries:t.array(y),pagination:n.optional()}).optional(),entries:t.array(y).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const GitHubCloneRepoOutputSchema=t.object({status:s.optional(),data:t.object({localPath:t.string(),branch:t.string(),cached:t.boolean(),sparsePath:t.string().optional(),cloneTimeMs:t.number().optional(),totalSize:t.number().optional(),fileCount:t.number().optional()}).optional(),localPath:t.string().optional(),branch:t.string().optional(),cached:t.boolean().optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const f=t.object({name:t.string(),version:t.string().optional(),repository:t.string().optional(),license:t.string().optional(),description:t.string().optional(),deprecated:t.union([t.boolean(),t.string()]).optional(),downloads:t.number().optional(),recentVersions:t.array(t.string()).optional()}).passthrough();export const PackageSearchOutputSchema=t.object({status:s.optional(),data:t.object({packages:t.array(f)}).optional(),packages:t.array(f).optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();
1
+ import{z as t}from"zod";import{STATUS_VALUES as o}from"../types/index.js";export const ErrorDataSchema=t.object({id:t.string().optional(),error:t.string(),hints:t.array(t.string()).optional()});const n=t.object({currentPage:t.number(),totalPages:t.number(),hasMore:t.boolean(),perPage:t.number().optional(),totalMatches:t.number().optional(),totalFiles:t.number().optional(),totalEntries:t.number().optional(),totalResults:t.number().optional(),entriesPerPage:t.number().optional(),filesPerPage:t.number().optional(),matchesPerPage:t.number().optional()}),a=t.object({currentPage:t.number(),totalPages:t.number(),hasMore:t.boolean(),charOffset:t.number(),charLength:t.number(),totalChars:t.number()}),i=t.enum(["none","standard","symbols"]),r=t.array(t.string()).optional(),e=t.array(t.union([t.string(),t.object({kind:t.string()}).passthrough()])).optional(),s=t.enum([...o]),p=t.object({line:t.number(),value:t.string().optional(),column:t.number().optional()}),l=t.object({path:t.string(),matchCount:t.number(),matches:t.array(p).optional(),modified:t.string().optional()});export const LocalSearchCodeOutputSchema=t.object({status:s.optional(),data:t.object({files:t.array(l),pagination:n.optional(),searchEngine:t.string().optional()}).optional(),files:t.array(l).optional(),pagination:n.optional(),searchEngine:t.string().optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const g=t.object({path:t.string(),type:t.string().optional(),size:t.number().optional(),modified:t.string().optional(),permissions:t.string().optional()});export const LocalFindFilesOutputSchema=t.object({status:s.optional(),data:t.object({files:t.array(g),pagination:n.optional()}).optional(),files:t.array(g).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const c=t.object({path:t.string(),name:t.string(),type:t.string(),size:t.number().optional(),modified:t.string().optional()});export const LocalViewStructureOutputSchema=t.object({status:s.optional(),data:t.object({path:t.string().optional(),files:t.array(t.string()).optional(),folders:t.array(t.string()).optional(),links:t.array(t.string()).optional(),entries:t.array(c).optional(),summary:t.string().optional(),pagination:n.optional()}).optional(),path:t.string().optional(),files:t.array(t.string()).optional(),folders:t.array(t.string()).optional(),links:t.array(t.string()).optional(),entries:t.array(c).optional(),summary:t.string().optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const LocalGetFileContentOutputSchema=t.object({status:s.optional(),data:t.object({path:t.string(),content:t.string(),contentView:i.optional(),isSkeleton:t.boolean().optional(),totalLines:t.number().optional(),startLine:t.number().optional(),endLine:t.number().optional(),isPartial:t.boolean().optional(),matchRanges:t.array(t.array(t.number())).optional(),pagination:a.optional(),lastModified:t.string().optional(),lastModifiedBy:t.string().optional()}).optional(),path:t.string().optional(),content:t.string().optional(),contentView:i.optional(),isSkeleton:t.boolean().optional(),pagination:a.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const u=t.object({start:t.object({line:t.number(),character:t.number()}),end:t.object({line:t.number(),character:t.number()})}),h=t.object({uri:t.string(),range:u,content:t.string().optional()});export const LspGotoDefinitionOutputSchema=t.object({status:s.optional(),data:t.object({locations:t.array(h),lspMode:t.string().optional()}).optional(),locations:t.array(h).optional(),lspMode:t.string().optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const LspFindReferencesOutputSchema=t.object({status:s.optional(),data:t.object({locations:t.array(h),pagination:n.optional(),lspMode:t.string().optional()}).optional(),locations:t.array(h).optional(),pagination:n.optional(),lspMode:t.string().optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const LspCallHierarchyOutputSchema=t.object({status:s.optional(),data:t.object({item:t.object({name:t.string(),uri:t.string(),range:u,content:t.string().optional()}).optional(),incomingCalls:t.array(t.object({from:t.object({name:t.string(),uri:t.string(),range:u,content:t.string().optional()}).optional(),to:t.object({name:t.string(),uri:t.string(),range:u,content:t.string().optional()}).optional(),fromRanges:t.array(u).optional()}).passthrough()).optional(),outgoingCalls:t.array(t.object({from:t.object({name:t.string(),uri:t.string(),range:u,content:t.string().optional()}).optional(),to:t.object({name:t.string(),uri:t.string(),range:u,content:t.string().optional()}).optional(),fromRanges:t.array(u).optional()}).passthrough()).optional(),direction:t.string().optional(),depth:t.number().optional(),pagination:n.optional(),lspMode:t.string().optional()}).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const b=t.object({owner:t.string().optional(),repo:t.string().optional(),full_name:t.string().optional(),url:t.string().optional(),stars:t.number().optional(),language:t.string().optional(),pushed_at:t.string().optional(),description:t.string().optional(),topics:t.array(t.string()).optional(),license:t.string().optional()}).passthrough();export const GitHubSearchRepositoriesOutputSchema=t.object({status:s.optional(),data:t.object({repositories:t.array(b),pagination:n.optional()}).optional(),repositories:t.array(b).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const m=t.object({number:t.number(),title:t.string(),url:t.string().optional(),state:t.string().optional(),draft:t.boolean().optional(),merged:t.boolean().optional(),created_at:t.string().optional(),updated_at:t.string().optional(),closed_at:t.string().optional(),merged_at:t.string().optional(),author:t.string().optional(),head_ref:t.string().optional(),base_ref:t.string().optional()}).passthrough(),d=t.object({path:t.string(),value:t.string().optional()}).passthrough(),j=t.object({id:t.string(),owner:t.string(),repo:t.string(),matches:t.array(d)}).passthrough();export const GitHubSearchCodeOutputSchema=t.object({status:s.optional(),data:t.object({results:t.array(j),pagination:n.optional()}).optional(),results:t.array(j).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const GitHubSearchPullRequestsOutputSchema=t.object({status:s.optional(),data:t.object({pull_requests:t.array(m),total_count:t.number().optional(),pagination:n.optional()}).optional(),pull_requests:t.array(m).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const y=t.object({path:t.string(),name:t.string().optional(),type:t.string().optional(),size:t.number().optional()}).passthrough();export const GitHubFileContentOutputSchema=t.object({status:s.optional(),data:t.object({path:t.string(),content:t.string(),contentView:i.optional(),isSkeleton:t.boolean().optional(),totalLines:t.number().optional(),startLine:t.number().optional(),endLine:t.number().optional(),isPartial:t.boolean().optional(),resolvedBranch:t.string().optional(),pagination:a.optional(),lastModified:t.string().optional(),lastModifiedBy:t.string().optional()}).optional(),path:t.string().optional(),content:t.string().optional(),contentView:i.optional(),isSkeleton:t.boolean().optional(),pagination:a.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const GitHubViewRepoStructureOutputSchema=t.object({status:s.optional(),data:t.object({entries:t.array(y),pagination:n.optional()}).optional(),entries:t.array(y).optional(),pagination:n.optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();export const GitHubCloneRepoOutputSchema=t.object({status:s.optional(),data:t.object({localPath:t.string(),branch:t.string(),cached:t.boolean(),sparsePath:t.string().optional(),cloneTimeMs:t.number().optional(),totalSize:t.number().optional(),fileCount:t.number().optional()}).optional(),localPath:t.string().optional(),branch:t.string().optional(),cached:t.boolean().optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();const f=t.object({name:t.string(),version:t.string().optional(),repository:t.string().optional(),license:t.string().optional(),description:t.string().optional(),deprecated:t.union([t.boolean(),t.string()]).optional(),downloads:t.number().optional(),recentVersions:t.array(t.string()).optional()}).passthrough();export const NpmSearchOutputSchema=t.object({status:s.optional(),data:t.object({packages:t.array(f)}).optional(),packages:t.array(f).optional(),hints:r,warnings:e,error:t.string().optional()}).passthrough();
@@ -1,9 +1,3 @@
1
- /**
2
- * Runtime helpers for ripgrep queries — kept tiny intentionally. The
3
- * mcp-host already has rich validation (zod overlay, command builder
4
- * pre-flight); this surface exists so consumers can call the canonical
5
- * function name without forking their own copy.
6
- */
7
1
  import type { z } from "zod";
8
2
  import { RipgrepQuerySchema } from "./index.js";
9
3
  type RuntimeRipgrepQuery = z.infer<typeof RipgrepQuerySchema>;
@@ -12,21 +6,6 @@ export interface RipgrepValidationResult {
12
6
  errors: string[];
13
7
  warnings: string[];
14
8
  }
15
- /**
16
- * Lightweight ripgrep-query sanity check. Returns `isValid: true` when
17
- * the minimum required fields are present. Real validation runs in the
18
- * mcp-host overlay; this helper is a no-op gate plus a couple of cheap
19
- * mutex checks for combinations ripgrep itself rejects.
20
- */
21
9
  export declare function validateRipgrepQuery(query: RuntimeRipgrepQuery): RipgrepValidationResult;
22
- /**
23
- * Translate a ripgrep query's `mode` cost lever into concrete flag
24
- * defaults. Idempotent — re-applying the function yields the same
25
- * query. Returns a shallow clone so callers can keep the original.
26
- *
27
- * discovery → filesOnly=true, no content
28
- * detailed → contextLines=3 by default
29
- * paginated → no-op (caller-supplied pagination knobs win)
30
- */
31
10
  export declare function applyWorkflowMode<T extends RuntimeRipgrepQuery>(query: T): T;
32
11
  export {};
@@ -1 +1 @@
1
- export function validateRipgrepQuery(e){const t=[],i=[];return e&&"object"==typeof e?(e.keywords&&"string"==typeof e.keywords||t.push("`keywords` is required"),e.filesOnly&&e.filesWithoutMatch&&t.push("`filesOnly` and `filesWithoutMatch` are mutually exclusive"),e.countLinesPerFile&&e.countMatchesPerFile&&i.push("Both `countLinesPerFile` and `countMatchesPerFile` set `countMatchesPerFile` takes precedence"),e.fixedString&&e.perlRegex&&t.push("`fixedString` and `perlRegex` are mutually exclusive"),{isValid:0===t.length,errors:t,warnings:i}):(t.push("Query must be an object"),{isValid:!1,errors:t,warnings:i})}export function applyWorkflowMode(e){if(!e||"object"!=typeof e)return e;const t=e.mode;if(!t||"string"!=typeof t)return e;const i={...e};return"discovery"===t?void 0===i.filesOnly&&(i.filesOnly=!0):"detailed"===t&&void 0===i.contextLines&&(i.contextLines=3),i}
1
+ export function validateRipgrepQuery(e){const i=[],t=[];return e&&"object"==typeof e?(e.keywords&&"string"==typeof e.keywords||i.push("`keywords` is required"),e.filesOnly&&e.filesWithoutMatch&&i.push("`filesOnly` and `filesWithoutMatch` are mutually exclusive"),e.countLinesPerFile&&e.countMatchesPerFile&&i.push("`countLinesPerFile` and `countMatchesPerFile` are mutually exclusive"),e.fixedString&&e.perlRegex&&i.push("`fixedString` and `perlRegex` are mutually exclusive"),e.caseSensitive&&e.caseInsensitive&&i.push("`caseSensitive` and `caseInsensitive` are mutually exclusive"),e.multilineDotall&&!e.multiline&&i.push("`multilineDotall` requires `multiline=true`"),{isValid:0===i.length,errors:i,warnings:t}):(i.push("Query must be an object"),{isValid:!1,errors:i,warnings:t})}export function applyWorkflowMode(e){if(!e||"object"!=typeof e)return e;const i=e.mode;if(!i||"string"!=typeof i)return e;const t={...e};return"discovery"===i?void 0===t.filesOnly&&(t.filesOnly=!0):"detailed"===i&&void 0===t.contextLines&&(t.contextLines=3),t}
@@ -1,21 +1,16 @@
1
- /**
2
- * Maps constant keys (SCREAMING_SNAKE_CASE) to their canonical MCP tool name
3
- * strings. Adding a new tool means adding one entry here; consumers derive
4
- * key/value unions with `keyof ToolNames` and `ToolNames[keyof ToolNames]`.
5
- */
6
1
  export interface ToolNames {
7
- GITHUB_FETCH_CONTENT: "githubGetFileContent";
8
- GITHUB_SEARCH_CODE: "githubSearchCode";
9
- GITHUB_SEARCH_PULL_REQUESTS: "githubSearchPullRequests";
10
- GITHUB_SEARCH_REPOSITORIES: "githubSearchRepositories";
11
- GITHUB_VIEW_REPO_STRUCTURE: "githubViewRepoStructure";
12
- PACKAGE_SEARCH: "packageSearch";
13
- GITHUB_CLONE_REPO: "githubCloneRepo";
2
+ GITHUB_FETCH_CONTENT: "ghGetFileContent";
3
+ GITHUB_SEARCH_CODE: "ghSearchCode";
4
+ GITHUB_SEARCH_PULL_REQUESTS: "ghSearchPRs";
5
+ GITHUB_SEARCH_REPOSITORIES: "ghSearchRepos";
6
+ GITHUB_VIEW_REPO_STRUCTURE: "ghViewRepoStructure";
7
+ PACKAGE_SEARCH: "npmSearch";
8
+ GITHUB_CLONE_REPO: "ghCloneRepo";
14
9
  LOCAL_RIPGREP: "localSearchCode";
15
10
  LOCAL_FETCH_CONTENT: "localGetFileContent";
16
11
  LOCAL_FIND_FILES: "localFindFiles";
17
12
  LOCAL_VIEW_STRUCTURE: "localViewStructure";
18
- LSP_GET_SEMANTIC_CONTENT: "lspGetSemanticContent";
13
+ LSP_GET_SEMANTIC_CONTENT: "lspGetSemantics";
19
14
  }
20
15
  export interface ToolHints {
21
16
  readonly empty: readonly string[];
@@ -23,31 +18,13 @@ export interface ToolHints {
23
18
  export interface ToolSchema {
24
19
  readonly [param: string]: string;
25
20
  }
26
- /**
27
- * Authoring type for resource files — carries the static definition
28
- * (name, description, schema) plus optional empty-result hints authored
29
- * alongside the tool. Runtime hints from the MCP server response layer
30
- * are additive; these provide pre-call and empty-result guidance.
31
- */
32
21
  export interface ToolSpec {
33
22
  readonly name: string;
34
23
  readonly description: string;
35
24
  readonly schema: ToolSchema;
36
- /** Hints authored in the resource file. Defaults to `{ empty: [] }` when absent. */
37
25
  readonly hints?: ToolHints;
38
26
  }
39
- /**
40
- * Full tool descriptor stored in the config blob and consumed by MCP clients.
41
- * Extends ToolSpec with optional runtime hints (rarely populated — most
42
- * response-handling guidance now lives in the system prompt).
43
- */
44
27
  export interface ToolMetadata extends ToolSpec {
45
- /**
46
- * Runtime hint registry — always present (defaults to `{ empty: [] }`).
47
- * Consumers index into this without null-checking the property itself,
48
- * so it stays required even when the config blob ships no hints for the
49
- * tool.
50
- */
51
28
  readonly hints: ToolHints;
52
29
  }
53
30
  export interface BaseSchema {
@@ -55,7 +32,6 @@ export interface BaseSchema {
55
32
  readonly mainResearchGoal: string;
56
33
  readonly researchGoal: string;
57
34
  readonly reasoning: string;
58
- /** Description string for the boolean verbose field shown in tool schemas. */
59
35
  readonly verbose?: string;
60
36
  }
61
37
  export interface OctocodeConfig {
@@ -71,22 +47,14 @@ export interface CompleteMetadata {
71
47
  readonly toolNames: ToolNames;
72
48
  readonly baseSchema: BaseSchema;
73
49
  readonly tools: Record<string, ToolSpec | ToolMetadata>;
74
- /**
75
- * Shared hint registry — keys are result kinds (`"empty"`, …). Always
76
- * present (defaults to `{}`); consumers fall through to per-tool `hints`
77
- * for tools without a matching key.
78
- */
79
50
  readonly baseHints: Readonly<Record<string, readonly string[]>>;
80
- /** Generic-error hint list — surfaced on any unhandled tool error. Defaults to `[]`. */
81
51
  readonly genericErrorHints: readonly string[];
82
52
  }
83
- /** Envelope-level status — every tool's response carries this. */
84
53
  export declare enum ToolStatus {
85
54
  Empty = "empty",
86
55
  Error = "error"
87
56
  }
88
57
  export declare const STATUS_VALUES: readonly [ToolStatus.Empty, ToolStatus.Error];
89
- /** Row-level pagination — superset of every per-tool flavour. */
90
58
  export interface PaginationInfo {
91
59
  readonly currentPage: number;
92
60
  readonly totalPages: number;
@@ -100,7 +68,6 @@ export interface PaginationInfo {
100
68
  readonly filesPerPage?: number;
101
69
  readonly matchesPerPage?: number;
102
70
  }
103
- /** Rendered-payload pagination — used by `charOffset` / `charLength` paths. */
104
71
  export interface CharPagination {
105
72
  readonly currentPage: number;
106
73
  readonly totalPages: number;
@@ -108,18 +75,14 @@ export interface CharPagination {
108
75
  readonly charOffset: number;
109
76
  readonly charLength: number;
110
77
  readonly totalChars: number;
78
+ readonly chunkMode?: "semantic" | "char-limit";
79
+ readonly nextBlockChar?: number;
111
80
  }
112
- /** LSP semantic vs. fallback mode marker. */
113
81
  export declare enum LspMode {
114
82
  Semantic = "semantic",
115
83
  Fallback = "fallback"
116
84
  }
117
85
  export declare const LSP_MODES: readonly [LspMode.Semantic, LspMode.Fallback];
118
- /**
119
- * Typed warning kinds emitted by tool responses. Discriminated by `kind`.
120
- * Add new kinds here when introducing new advisory categories — keeps the
121
- * agent-facing wire contract stable across consumers.
122
- */
123
86
  export interface ToolWarning {
124
87
  readonly kind: "match-value-truncated" | "content-truncated";
125
88
  readonly truncatedAt?: number;
@@ -127,7 +90,6 @@ export interface ToolWarning {
127
90
  readonly path?: string;
128
91
  readonly detail?: string;
129
92
  }
130
- /** Generic envelope every tool wraps its data in. */
131
93
  export interface ToolResultEnvelope<TData> {
132
94
  readonly status?: ToolStatus;
133
95
  readonly data?: TData;
@@ -136,7 +98,6 @@ export interface ToolResultEnvelope<TData> {
136
98
  readonly error?: string;
137
99
  }
138
100
  export type ContentView = "none" | "standard" | "symbols";
139
- /** Per-file match pagination — for paging matches *within* a single file. */
140
101
  export interface LocalSearchCodeMatchPagination {
141
102
  readonly currentPage: number;
142
103
  readonly totalPages: number;
@@ -151,9 +112,7 @@ export interface LocalSearchCodeMatch {
151
112
  }
152
113
  export interface LocalSearchCodeFile {
153
114
  path: string;
154
- /** Omitted in filesOnly/discovery mode — rg -l reports no per-file counts. */
155
115
  matchCount?: number;
156
- /** Omitted in discovery/filesOnly mode — empty arrays are noise. */
157
116
  matches?: LocalSearchCodeMatch[];
158
117
  modified?: string;
159
118
  pagination?: LocalSearchCodeMatchPagination;
@@ -363,6 +322,6 @@ export interface PackageItem {
363
322
  readonly downloads?: number;
364
323
  readonly recentVersions?: readonly string[];
365
324
  }
366
- export interface PackageSearchData {
325
+ export interface NpmSearchData {
367
326
  readonly packages: readonly PackageItem[];
368
327
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@octocodeai/octocode-core",
3
- "version": "4.3.0",
3
+ "version": "16.1.1",
4
4
  "description": "Core config, prompts, tools, and schemas for Octocode MCP",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -43,6 +43,7 @@
43
43
  },
44
44
  "scripts": {
45
45
  "generate": "tsx src/octocode-scripts/generateDefaultJson.ts",
46
+ "dump:agent-context": "tsx src/octocode-scripts/dumpAgentContext.ts",
46
47
  "compress": "yarn generate && node scripts/compress-config.mjs",
47
48
  "build": "rm -rf dist && yarn generate && node scripts/compress-config.mjs && tsc && node scripts/minify-dist.mjs",
48
49
  "lint": "eslint src/**/*.ts",