@octocodeai/octocode-core 2.0.0 → 4.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/dist/data/compressed.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{brotliDecompressSync as P}from"node:zlib";export default JSON.parse(P(Buffer.from("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","base64")).toString());
|
|
1
|
+
import{brotliDecompressSync as e}from"node:zlib";export default JSON.parse(e(Buffer.from("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","base64")).toString());
|
package/dist/data/default.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"instructions": "## Octocode Code Research Agent\n\nYou answer code questions with evidence, not guesses. The
|
|
2
|
+
"instructions": "## Octocode Code Research Agent\n\nYou answer code-research questions with evidence, not guesses. The agent receives this system prompt plus each tool's description and schema. Use this prompt for global research behavior; use each tool description for purpose/positioning; use each schema for exact parameters, modes, pagination, limits, and validation.\n\n<mission>\nFind the smallest reliable evidence set that answers the user’s question. Prefer a clear chain of discovery → anchor → verification over broad collection.\n</mission>\n\n<surfaces>\nChoose the surface before choosing the tool:\n- Local workspace or cloned repo: local structure, metadata, content search, content read, and LSP tools.\n- External public source: GitHub repository/search/read/history tools.\n- Registry dependency: package lookup first, then follow the repository to source.\n\nDefault routing:\n- Workspace question → local first.\n- Known package name → package lookup before guessing GitHub owner/repo.\n- Unknown public project → repository discovery, then structure, then source.\n- External repo needing repeated reads, bulk grep, or LSP → clone, then switch to local tools.\n</surfaces>\n\n<research_ladder>\nClimb only as high as needed:\n1. Shape: repo/tree layout, filenames, counts, metadata, concise existence checks.\n2. Anchor: distinctive text matches, exact paths, symbols, line hints, PR metadata.\n3. Evidence slice: targeted file ranges, matched sections, semantic definitions/references/calls, targeted PR patches.\n4. Wide context: full files, comments/commits, broad pagination, cloning.\n\nStop once the evidence answers the question. Escalate only when the current rung cannot disambiguate.\n</research_ladder>\n\n<tool_selection>\n- Structure tools answer “where could it be?”\n- Metadata tools answer “which files match name/time/size/type?”\n- Search tools answer “where does this text/symbol spelling occur?”\n- Read tools answer “what does this known file/section say?”\n- LSP tools answer semantic identity, references, and call flow for local code.\n- PR tools answer history, rationale, and change chronology.\n- Package tools answer registry identity and source location.\n</tool_selection>\n\n<quality_rules>\n- Preserve identifiers returned by tools exactly: paths, owner/repo, branch, line numbers, symbols, PR numbers, local paths.\n- One result is a lead, not proof. Verify important claims from another angle: nearby source, definition, references, tests, docs, or history.\n- Distinguish canonical implementation from tests, fixtures, examples, generated files, vendored code, and documentation.\n- Prefer semantic LSP evidence over text matches when symbol identity matters.\n- If LSP reports fallback mode, treat it as pattern evidence only; do not present it as a semantic reference count or call graph.\n- Empty results are not proof of absence until you have varied terms, loosened one filter at a time, or checked structure.\n- If output is truncated, narrow scope before paginating unless the missing page is clearly required.\n</quality_rules>\n\n<query_discipline>\nEvery query should have a purpose:\n- mainResearchGoal: stable objective across related calls.\n- researchGoal: what this specific query should reveal.\n- reasoning: why this query is the right next move.\n\nBatch independent queries when useful. Do not batch queries that depend on previous results.\n</query_discipline>\n\n<cost_control>\n- Start with concise or discovery-style probes when you only need existence, location, counts, or top candidates.\n- Use exact paths, directory scope, language/type filters, include/exclude patterns, and distinctive anchors to reduce noise.\n- Read ranges or matched sections before full files.\n- Clone only when local analysis will repay the fetch cost.\n- Fetch PR comments, commits, or full diffs only after metadata identifies a candidate worth inspecting.\n</cost_control>\n\n<failure_recovery>\n- No hits: check spelling/case, pivot synonyms, remove the narrowest filter, or inspect structure.\n- Too many hits: add repo/path/language/type scope or switch from broad terms to distinctive strings.\n- Not found: verify branch, exact path case, owner/repo, and whether the file lives in a package subdirectory.\n- Too large/truncated: use a narrower anchor, smaller range, lower verbosity, or clone for local grep when many reads are needed.\n- Auth/rate issues: report the limitation and continue with cheaper or already available evidence when possible.\n</failure_recovery>\n\n<answering>\nAnswer with cited evidence: file paths, line numbers, repo names, PR numbers, and tool-derived facts. Separate what is proven from what is inferred. If evidence is partial, state the gap and the smallest next check.\n</answering>\n",
|
|
3
3
|
"toolNames": {
|
|
4
4
|
"GITHUB_FETCH_CONTENT": "githubGetFileContent",
|
|
5
5
|
"GITHUB_SEARCH_CODE": "githubSearchCode",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"tools": {
|
|
34
34
|
"githubGetFileContent": {
|
|
35
35
|
"name": "githubGetFileContent",
|
|
36
|
-
"description": "## Read GitHub file content [EXTERNAL: GitHub API]\n
|
|
36
|
+
"description": "## Read GitHub file content [EXTERNAL: GitHub API]\n Use when you already know the remote file path and need source, docs, config, or a focused section from that file.\n\n Best research posture:\n - Arrive here from search or structure results; reuse the returned owner, repo, branch, path, and anchor text exactly.\n - Read only the region that can answer the question unless the file is small and inherently useful as a whole.\n - If the file is too large or truncated, narrow the read instead of retrying the same broad request.\n\n Prefer cloning only when many files or semantic local analysis are needed.",
|
|
37
37
|
"schema": {
|
|
38
38
|
"owner": "Repo owner. Required — file reads target a specific repo.",
|
|
39
39
|
"repo": "Repo name.",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
"githubSearchCode": {
|
|
55
55
|
"name": "githubSearchCode",
|
|
56
|
-
"description": "## Search GitHub code [EXTERNAL: GitHub API]\n
|
|
56
|
+
"description": "## Search GitHub code [EXTERNAL: GitHub API]\n Use to locate remote code, symbols, imports, strings, configuration, or matching file paths across GitHub or inside a known repo.\n\n Best research posture:\n - Scope to owner/repo or a directory as soon as you have a credible target.\n - Search with distinctive implementation terms; if results are noisy, tighten scope before increasing volume.\n - Treat matches as leads, then read the matched file or inspect nearby structure before concluding.\n\n Use repository structure when you need the tree, not keyword hits.",
|
|
57
57
|
"schema": {
|
|
58
58
|
"keywordsToSearch": "Search terms (AND). Quote multi-word phrases for exact match — cheapest precision lever; cuts call-site/comment noise.",
|
|
59
59
|
"owner": "Repo owner (omit for cross-repo). Scope to a known repo when broad search returns noise; required when keyword is high-volume (e.g. \"auth\").",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
},
|
|
69
69
|
"githubSearchPullRequests": {
|
|
70
70
|
"name": "githubSearchPullRequests",
|
|
71
|
-
"description": "## Search GitHub Pull Requests [EXTERNAL: GitHub API]\n
|
|
71
|
+
"description": "## Search GitHub Pull Requests [EXTERNAL: GitHub API]\n Use for code archaeology: when a change happened, why it happened, who reviewed it, or which PR introduced, removed, or discussed code.\n\n Best research posture:\n - First identify the relevant repo, file, symbol, or likely title terms from current code.\n - Triage with PR metadata before reading diffs or discussions.\n - Read targeted patches and comments only after the candidate PR is known.\n\n Prefer current code search/read tools for \"what does it do now\"; use PRs for history and rationale.",
|
|
72
72
|
"schema": {
|
|
73
73
|
"query": "Free-text across title/body/comments (max 256 chars). For archaeology, pair with matchScope=[\"title\"] + sort=\"best-match\" — title-only beats body/comment noise.",
|
|
74
74
|
"prNumber": "Direct PR number (ignores other filters). Cheapest path when known — bypasses search (GET /pulls/:n).",
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
},
|
|
112
112
|
"githubSearchRepositories": {
|
|
113
113
|
"name": "githubSearchRepositories",
|
|
114
|
-
"description": "## Search GitHub repositories [EXTERNAL: GitHub API]\n
|
|
114
|
+
"description": "## Search GitHub repositories [EXTERNAL: GitHub API]\n Use when the repository is not yet known: discover projects by name, domain terms, owner, topic, popularity, recency, or language.\n\n Best research posture:\n - Start broad enough to avoid hiding niche or newly created projects.\n - Prefer registry lookup when an exact package name is known.\n - Evaluate candidates by activity, ownership, language, README signal, and then inspect source layout before reading implementation.\n\n This is a discovery tool, not a source-inspection tool.",
|
|
115
115
|
"schema": {
|
|
116
116
|
"keywordsToSearch": "Keywords (AND) across name/description/README. Broadest reach; combine with stars/language to cut noise.",
|
|
117
117
|
"topicsToSearch": "GitHub topic tags (self-reported, often sparse — #1 source of missed repos; prefer `language`). Only fires when maintainers tagged.",
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
},
|
|
130
130
|
"githubViewRepoStructure": {
|
|
131
131
|
"name": "githubViewRepoStructure",
|
|
132
|
-
"description": "## Display GitHub repo structure [EXTERNAL: GitHub API]\n
|
|
132
|
+
"description": "## Display GitHub repo structure [EXTERNAL: GitHub API]\n Use to understand a remote repository or directory layout before searching or reading files.\n\n Best research posture:\n - Start at the root for orientation, then drill into likely source packages or feature directories.\n - Use sibling context to distinguish canonical implementation from examples, fixtures, generated code, and tests.\n - When output is truncated or broad, narrow the directory rather than asking for a deeper tree.\n\n Use code search when you need content matches rather than tree shape.",
|
|
133
133
|
"schema": {
|
|
134
134
|
"owner": "Repo owner. Required scoping.",
|
|
135
135
|
"repo": "Repo name.",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
},
|
|
143
143
|
"packageSearch": {
|
|
144
144
|
"name": "packageSearch",
|
|
145
|
-
"description": "## Find NPM packages [EXTERNAL: npm]\n
|
|
145
|
+
"description": "## Find NPM packages [EXTERNAL: npm]\n Use to resolve package names to registry metadata and source repositories before researching dependency code.\n\n Best research posture:\n - Use it for exact dependency names found in imports, manifests, stack traces, or documentation.\n - Follow the returned repository to GitHub tools for source inspection.\n - Use broader repository discovery when the task is to find projects in a domain rather than resolve a known package.\n\n This is the cheapest bridge from package name to source location.",
|
|
146
146
|
"schema": {
|
|
147
147
|
"name": "Package name or search term",
|
|
148
148
|
"searchLimit": "Max NPM results in the single response. Use 1 for exact lookup; raise to surface alternatives or spelling variants.",
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
},
|
|
152
152
|
"githubCloneRepo": {
|
|
153
153
|
"name": "githubCloneRepo",
|
|
154
|
-
"description": "## Clone GitHub repository to local filesystem\n
|
|
154
|
+
"description": "## Clone GitHub repository to local filesystem\n Use when remote API inspection is no longer enough: bulk grep, repeated reads, offline analysis, or LSP over an external repository.\n\n Best research posture:\n - Confirm the target repo and rough layout before cloning.\n - Prefer a focused sparse checkout for monorepos when the relevant package or directory is known.\n - After a successful clone, continue with local filesystem and LSP tools on the returned local path.\n\n Avoid cloning for one-off file reads or small source inspections; remote structure/search/read tools are cheaper.",
|
|
155
155
|
"schema": {
|
|
156
156
|
"owner": "Repo owner (user or org).",
|
|
157
157
|
"repo": "Repo name.",
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
},
|
|
165
165
|
"localGetFileContent": {
|
|
166
166
|
"name": "localGetFileContent",
|
|
167
|
-
"description": "## Read file content [LOCAL: filesystem]\n
|
|
167
|
+
"description": "## Read file content [LOCAL: filesystem]\n Use when a local path is known and you need source, docs, config, or a focused section from that file.\n\n Best research posture:\n - Reach this tool from structure, metadata search, text search, or LSP results.\n - For source files, anchor the read to a match or line range whenever possible.\n - Read whole files mainly for small manifests, configs, docs, or schemas where full context matters.\n\n Prefer local search or LSP first when you do not yet know where the relevant code lives.",
|
|
168
168
|
"schema": {
|
|
169
169
|
"path": "File path (required).",
|
|
170
170
|
"fullContent": "Return entire file. Small configs/manifests only; without charLength fails on large files. Mutually exclusive with matchString.",
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
},
|
|
181
181
|
"localFindFiles": {
|
|
182
182
|
"name": "localFindFiles",
|
|
183
|
-
"description": "## Find files by metadata [LOCAL: filesystem]\n
|
|
183
|
+
"description": "## Find files by metadata [LOCAL: filesystem]\n Use for local file discovery by name, path, type, size, permissions, or timestamps before reading or searching content.\n\n Best research posture:\n - Use it to narrow a workspace, clone, or recent-change investigation without scanning file bodies.\n - Exclude noisy generated/vendor/build directories on real repositories.\n - After finding candidate files or directories, switch to structure, content search, or targeted reads.\n\n Do not use this for \"files containing X\"; that is content search.",
|
|
184
184
|
"schema": {
|
|
185
185
|
"path": "Starting directory (required).",
|
|
186
186
|
"maxDepth": "Max recursion depth.",
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
},
|
|
216
216
|
"localSearchCode": {
|
|
217
217
|
"name": "localSearchCode",
|
|
218
|
-
"description": "## Search code patterns [LOCAL: ripgrep]\n
|
|
218
|
+
"description": "## Search code patterns [LOCAL: ripgrep]\n Use to find local code by text, regex, symbol spelling, import, constant, TODO, or error message, and to anchor LSP navigation.\n\n Best research posture:\n - Start here for local code questions when the symbol location is unknown.\n - Narrow by directory, language, include/exclude patterns, or literal matching before expanding result volume.\n - Treat text matches as candidates; use LSP for semantic identity, references, and call flow when available.\n\n Use metadata search for filenames/timestamps and content reads only after you have a path or anchor.",
|
|
219
219
|
"schema": {
|
|
220
220
|
"pattern": "Pattern/regex (required).",
|
|
221
221
|
"path": "Root directory (required).",
|
|
@@ -245,7 +245,7 @@
|
|
|
245
245
|
},
|
|
246
246
|
"localViewStructure": {
|
|
247
247
|
"name": "localViewStructure",
|
|
248
|
-
"description": "## View directory structure [LOCAL: filesystem]\n
|
|
248
|
+
"description": "## View directory structure [LOCAL: filesystem]\n Use to orient yourself in a local workspace or cloned repository and discover source, test, config, docs, or package boundaries.\n\n Best research posture:\n - Inspect the root first, then drill into likely source or package directories.\n - Use tree shape and siblings to avoid mistaking examples, fixtures, generated output, or tests for canonical implementation.\n - Switch to metadata search for filename/time filters and content search for symbols or strings.\n\n This is the local reconnaissance tool.",
|
|
249
249
|
"schema": {
|
|
250
250
|
"path": "Directory path (required).",
|
|
251
251
|
"details": "Show perms/size/dates.",
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
},
|
|
269
269
|
"lspGotoDefinition": {
|
|
270
270
|
"name": "lspGotoDefinition",
|
|
271
|
-
"description": "## Navigate to symbol definition [LOCAL: LSP]\n
|
|
271
|
+
"description": "## Navigate to symbol definition [LOCAL: LSP]\n Use to resolve a local symbol from a usage, import, export, type, variable, class, method, or property to its definition or declaration.\n\n Best research posture:\n - Get the file and line anchor from local search or a previous semantic result; do not guess.\n - Follow re-exports or import aliases until the canonical implementation is reached.\n - After resolving identity, use references, call hierarchy, or a targeted content read depending on the question.\n\n Prefer this over text search when same-named symbols may collide.",
|
|
272
272
|
"schema": {
|
|
273
273
|
"uri": "File path. Example: \"src/utils.ts\".",
|
|
274
274
|
"symbolName": "EXACT symbol text, no parens, no partials.",
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
},
|
|
282
282
|
"lspFindReferences": {
|
|
283
283
|
"name": "lspFindReferences",
|
|
284
|
-
"description": "## Find all usages of a symbol [LOCAL: LSP]\n
|
|
284
|
+
"description": "## Find all usages of a symbol [LOCAL: LSP]\n Use for semantic impact analysis on local code: real references to a function, type, class, variable, property, interface, or import.\n\n Best research posture:\n - Anchor the exact symbol with local search or definition lookup first.\n - Start with a blast-radius view when the symbol may be widely used, then inspect specific files or refs.\n - Scope monorepos before paging through large reference sets.\n\n Use call hierarchy when the question is specifically about caller/callee relationships.",
|
|
285
285
|
"schema": {
|
|
286
286
|
"uri": "File path. Example: \"src/api/client.ts\".",
|
|
287
287
|
"symbolName": "EXACT symbol text, no parens, no partials.",
|
|
@@ -289,18 +289,16 @@
|
|
|
289
289
|
"orderHint": "0-indexed occurrence if multiple same-name symbols on same line (default: 0).",
|
|
290
290
|
"includeDeclaration": "Include definition (default: true).",
|
|
291
291
|
"contextLines": "Context lines around each ref.",
|
|
292
|
-
"referencesPerPage": "References per response page
|
|
292
|
+
"referencesPerPage": "References per response page. Walk via \\`page\\` until pagination.hasMore=false.",
|
|
293
293
|
"page": "1-indexed references page. Advance until pagination.hasMore=false. For blast-radius, prefer \\`groupByFile\\`.",
|
|
294
294
|
"groupByFile": "Roll up refs into per-file counts (cheaper — \"is this used widely?\").",
|
|
295
295
|
"includePattern": "Glob array — restrict to these paths (e.g. one package of a monorepo).",
|
|
296
|
-
"excludePattern": "Glob array — exclude these paths."
|
|
297
|
-
"charOffset": "Rendered-output cursor. Advance until outputPagination.hasMore=false (large ref sets auto-paginate).",
|
|
298
|
-
"charLength": "Rendered-output page size. Pair with \\`charOffset\\`."
|
|
296
|
+
"excludePattern": "Glob array — exclude these paths."
|
|
299
297
|
}
|
|
300
298
|
},
|
|
301
299
|
"lspCallHierarchy": {
|
|
302
300
|
"name": "lspCallHierarchy",
|
|
303
|
-
"description": "## Trace function call relationships [LOCAL: LSP]\n
|
|
301
|
+
"description": "## Trace function call relationships [LOCAL: LSP]\n Use for semantic call-flow questions on local code: who calls a function/method, what it calls, and what execution paths may be affected.\n\n Best research posture:\n - Anchor the symbol with local text search or a prior LSP result before asking for the call graph.\n - Trace one direction at a time and follow only the meaningful edges.\n - Use references instead when you need non-call usages such as types, imports, assignments, or property reads.\n\n Treat fallback mode as candidate text evidence, not a semantic graph.",
|
|
304
302
|
"schema": {
|
|
305
303
|
"uri": "File path. Example: \"src/api/handler.ts\".",
|
|
306
304
|
"symbolName": "EXACT function/method name, no parens.",
|
package/dist/schemas/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* so they must remain `z.ZodObject<...>` shapes (no transforms / unions
|
|
14
14
|
* at the top level unless documented).
|
|
15
15
|
*/
|
|
16
|
-
import { z } from "zod
|
|
16
|
+
import { z } from "zod";
|
|
17
17
|
export declare const RipgrepQuerySchema: z.ZodObject<{
|
|
18
18
|
pattern: z.ZodString;
|
|
19
19
|
path: z.ZodString;
|
package/dist/schemas/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z as o}from"zod
|
|
1
|
+
import{z as o}from"zod";import{VERBOSITY_VALUES as n}from"../types/index.js";const t=o.enum([...n]).optional(),e=o.array(o.string()).optional(),i={id:o.string().optional(),mainResearchGoal:o.string().optional(),researchGoal:o.string().optional(),reasoning:o.string().optional()};export const RipgrepQuerySchema=o.object({...i,pattern:o.string(),path:o.string(),mode:o.string().optional(),fixedString:o.boolean().optional(),perlRegex:o.boolean().optional(),smartCase:o.boolean().optional(),caseInsensitive:o.boolean().optional(),caseSensitive:o.boolean().optional(),wholeWord:o.boolean().optional(),invertMatch:o.boolean().optional(),type:o.string().optional(),include:e,exclude:e,excludeDir:e,noIgnore:o.boolean().optional(),hidden:o.boolean().optional(),followSymlinks:o.boolean().optional(),filesOnly:o.boolean().optional(),filesWithoutMatch:o.boolean().optional(),count:o.boolean().optional(),countMatches:o.boolean().optional(),contextLines:o.number().int().optional(),beforeContext:o.number().int().optional(),afterContext:o.number().int().optional(),matchContentLength:o.number().int().optional(),maxMatchesPerFile:o.number().int().optional(),maxFiles:o.number().int().optional(),filesPerPage:o.number().int().optional(),filePageNumber:o.number().int().optional(),matchesPerPage:o.number().int().optional(),multiline:o.boolean().optional(),multilineDotall:o.boolean().optional(),binaryFiles:o.string().optional(),includeStats:o.boolean().optional(),encoding:o.string().optional(),sort:o.string().optional(),sortReverse:o.boolean().optional(),noMessages:o.boolean().optional(),lineRegexp:o.boolean().optional(),passthru:o.boolean().optional(),debug:o.boolean().optional(),showFileLastModified:o.boolean().optional(),noUnicode:o.boolean().optional(),threads:o.number().int().optional(),mmap:o.boolean().optional(),verbosity:t});export const FindFilesQuerySchema=o.object({...i,path:o.string(),maxDepth:o.number().int().optional(),minDepth:o.number().int().optional(),name:o.string().optional(),iname:o.string().optional(),names:e,pathPattern:o.string().optional(),regex:o.string().optional(),regexType:o.string().optional(),type: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:e,limit:o.number().int().optional(),details:o.boolean().optional(),filesPerPage:o.number().int().optional(),filePageNumber:o.number().int().optional(),showFileLastModified:o.boolean().optional(),charOffset:o.number().int().optional(),charLength:o.number().int().optional(),sortBy:o.string().optional(),verbosity:t});export const ViewStructureQuerySchema=o.object({...i,path:o.string(),details:o.boolean().optional(),hidden:o.boolean().optional(),humanReadable:o.boolean().optional(),sortBy:o.string().optional(),reverse:o.boolean().optional(),entriesPerPage:o.number().int().optional(),entryPageNumber:o.number().int().optional(),pattern:o.string().optional(),directoriesOnly:o.boolean().optional(),filesOnly:o.boolean().optional(),extension:o.string().optional(),extensions:e,depth:o.number().int().optional(),recursive:o.boolean().optional(),limit:o.number().int().optional(),charOffset:o.number().int().optional(),charLength:o.number().int().optional(),showFileLastModified:o.boolean().optional(),verbosity:t});export const FetchContentQuerySchema=o.object({...i,path:o.string(),fullContent:o.boolean().optional(),matchString:o.string().optional(),matchStringContextLines:o.number().int().optional(),matchStringIsRegex:o.boolean().optional(),matchStringCaseSensitive:o.boolean().optional(),charOffset:o.number().int().optional(),charLength:o.number().int().optional(),startLine:o.number().int().optional(),endLine:o.number().int().optional(),verbosity:t});export const FileContentQuerySchema=o.object({...i,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(),matchStringContextLines:o.number().int().optional(),matchStringIsRegex:o.boolean().optional(),matchStringCaseSensitive:o.boolean().optional(),charOffset:o.number().int().optional(),charLength:o.number().int().optional(),forceRefresh:o.boolean().optional(),type:o.string().optional(),verbosity:t});export const GitHubCodeSearchQuerySchema=o.object({...i,keywordsToSearch:e,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(),verbosity:t});export const GitHubReposSearchSingleQuerySchema=o.object({...i,keywordsToSearch:e,topicsToSearch:e,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.string().optional(),limit:o.number().int().optional(),page:o.number().int().optional(),verbosity:t});export const GitHubPullRequestSearchQuerySchema=o.object({...i,query:o.string().optional(),prNumber:o.number().int().optional(),owner:o.string().optional(),repo:o.string().optional(),state:o.string().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(),merged:o.boolean().optional(),matchScope:e,sort:o.string().optional(),order:o.string().optional(),limit:o.number().int().optional(),page:o.number().int().optional(),withComments:o.boolean().optional(),withCommits:o.boolean().optional(),type:o.string().optional(),charOffset:o.number().int().optional(),charLength:o.number().int().optional(),partialContentMetadata:o.array(o.object({file:o.string(),additions:o.array(o.number().int()).optional(),deletions:o.array(o.number().int()).optional()})).optional(),verbosity:t});export const GitHubViewRepoStructureQuerySchema=o.object({...i,owner:o.string(),repo:o.string(),branch:o.string().optional(),path:o.string().optional(),depth:o.number().int().optional(),entriesPerPage:o.number().int().optional(),entryPageNumber:o.number().int().optional(),verbosity:t});export const NpmPackageQuerySchema=o.object({...i,ecosystem:o.literal("npm").optional(),name:o.string(),searchLimit:o.number().int().optional(),npmFetchMetadata:o.boolean().optional(),verbosity:t});export const CloneRepoQuerySchema=o.object({...i,owner:o.string(),repo:o.string(),branch:o.string().optional(),sparse_path:o.string().optional(),forceRefresh:o.boolean().optional(),charOffset:o.number().int().optional(),charLength:o.number().int().optional(),verbosity:t});export const BulkCloneRepoSchema=o.object({queries:o.array(CloneRepoQuerySchema).min(1)});const a={...i,uri:o.string(),symbolName:o.string(),lineHint:o.number().int(),orderHint:o.number().int().optional()};export const LSPGotoDefinitionQuerySchema=o.object({...a,contextLines:o.number().int().optional(),charOffset:o.number().int().optional(),charLength:o.number().int().optional(),verbosity:t});export const LSPFindReferencesQuerySchema=o.object({...a,includeDeclaration:o.boolean().optional(),contextLines:o.number().int().optional(),referencesPerPage:o.number().int().optional(),page:o.number().int().optional(),groupByFile:o.boolean().optional(),includePattern:e,excludePattern:e,charOffset:o.number().int().optional(),charLength:o.number().int().optional(),verbosity:t});export const LSPCallHierarchyQuerySchema=o.object({...a,direction:o.enum(["incoming","outgoing"]),depth:o.number().int().optional(),contextLines:o.number().int().optional(),callsPerPage:o.number().int().optional(),page:o.number().int().optional(),charOffset:o.number().int().optional(),charLength:o.number().int().optional(),verbosity:t});
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* `ToolResultEnvelope<T>` is the source of truth; these schemas exist
|
|
11
11
|
* primarily to let consumers feed them to MCP `outputSchema` slots.
|
|
12
12
|
*/
|
|
13
|
-
import { z } from "zod
|
|
13
|
+
import { z } from "zod";
|
|
14
14
|
export declare const ErrorDataSchema: z.ZodObject<{
|
|
15
15
|
id: z.ZodOptional<z.ZodString>;
|
|
16
16
|
error: z.ZodString;
|
package/dist/schemas/outputs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z as t}from"zod
|
|
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.array(t.string()).optional(),r=t.array(t.union([t.string(),t.object({kind:t.string()}).passthrough()])).optional(),e=t.enum([...o]),s=t.object({line:t.number(),value:t.string().optional(),column:t.number().optional()}),p=t.object({path:t.string(),matchCount:t.number(),matches:t.array(s).optional(),modified:t.string().optional()});export const LocalSearchCodeOutputSchema=t.object({status:e.optional(),data:t.object({files:t.array(p),pagination:n.optional(),searchEngine:t.string().optional()}).optional(),files:t.array(p).optional(),pagination:n.optional(),searchEngine:t.string().optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();const l=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:e.optional(),data:t.object({files:t.array(l),pagination:n.optional()}).optional(),files:t.array(l).optional(),pagination:n.optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();const g=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:e.optional(),data:t.object({entries:t.array(g),summary:t.string().optional(),pagination:n.optional()}).optional(),entries:t.array(g).optional(),summary:t.string().optional(),pagination:n.optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();export const LocalGetFileContentOutputSchema=t.object({status:e.optional(),data:t.object({path:t.string(),content:t.string(),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(),pagination:a.optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();const c=t.object({start:t.object({line:t.number(),character:t.number()}),end:t.object({line:t.number(),character:t.number()})}),u=t.object({uri:t.string(),range:c,content:t.string().optional()});export const LspGotoDefinitionOutputSchema=t.object({status:e.optional(),data:t.object({locations:t.array(u),lspMode:t.string().optional()}).optional(),locations:t.array(u).optional(),lspMode:t.string().optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();export const LspFindReferencesOutputSchema=t.object({status:e.optional(),data:t.object({locations:t.array(u),pagination:n.optional(),lspMode:t.string().optional()}).optional(),locations:t.array(u).optional(),pagination:n.optional(),lspMode:t.string().optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();export const LspCallHierarchyOutputSchema=t.object({status:e.optional(),data:t.object({item:t.object({name:t.string(),uri:t.string(),range:c,content:t.string().optional()}).optional(),incomingCalls:t.array(t.object({from:t.object({name:t.string(),uri:t.string(),range:c,content:t.string().optional()}).optional(),to:t.object({name:t.string(),uri:t.string(),range:c,content:t.string().optional()}).optional(),fromRanges:t.array(c).optional()}).passthrough()).optional(),outgoingCalls:t.array(t.object({from:t.object({name:t.string(),uri:t.string(),range:c,content:t.string().optional()}).optional(),to:t.object({name:t.string(),uri:t.string(),range:c,content:t.string().optional()}).optional(),fromRanges:t.array(c).optional()}).passthrough()).optional(),direction:t.string().optional(),depth:t.number().optional(),pagination:n.optional(),lspMode:t.string().optional()}).optional(),pagination:n.optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();const h=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:e.optional(),data:t.object({repositories:t.array(h),pagination:n.optional()}).optional(),repositories:t.array(h).optional(),pagination:n.optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();const b=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(),m=t.object({path:t.string(),value:t.string().optional()}).passthrough(),d=t.object({id:t.string(),owner:t.string(),repo:t.string(),matches:t.array(m)}).passthrough();export const GitHubSearchCodeOutputSchema=t.object({status:e.optional(),data:t.object({results:t.array(d),pagination:n.optional()}).optional(),results:t.array(d).optional(),pagination:n.optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();export const GitHubSearchPullRequestsOutputSchema=t.object({status:e.optional(),data:t.object({pull_requests:t.array(b),total_count:t.number().optional(),pagination:n.optional()}).optional(),pull_requests:t.array(b).optional(),pagination:n.optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();const j=t.object({path:t.string(),name:t.string().optional(),type:t.string().optional(),size:t.number().optional()}).passthrough();export const GitHubFileContentOutputSchema=t.object({status:e.optional(),data:t.object({path:t.string(),content:t.string(),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(),pagination:a.optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();export const GitHubViewRepoStructureOutputSchema=t.object({status:e.optional(),data:t.object({entries:t.array(j),pagination:n.optional()}).optional(),entries:t.array(j).optional(),pagination:n.optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();export const GitHubCloneRepoOutputSchema=t.object({status:e.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:i,warnings:r,error:t.string().optional()}).passthrough();const y=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:e.optional(),data:t.object({packages:t.array(y)}).optional(),packages:t.array(y).optional(),hints:i,warnings:r,error:t.string().optional()}).passthrough();
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* pre-flight); this surface exists so consumers can call the canonical
|
|
5
5
|
* function name without forking their own copy.
|
|
6
6
|
*/
|
|
7
|
-
import type { z } from "zod
|
|
7
|
+
import type { z } from "zod";
|
|
8
8
|
import { RipgrepQuerySchema } from "./index.js";
|
|
9
9
|
type RuntimeRipgrepQuery = z.infer<typeof RipgrepQuerySchema>;
|
|
10
10
|
export interface RipgrepValidationResult {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@octocodeai/octocode-core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Core config, prompts, tools, and schemas for Octocode MCP",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"node": ">=18.12.0"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
|
-
"zod": ">=
|
|
68
|
+
"zod": ">=4.0.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@typescript-eslint/eslint-plugin": "8.48.1",
|
|
@@ -78,6 +78,6 @@
|
|
|
78
78
|
"tsx": "^4.19.2",
|
|
79
79
|
"typescript": "^5.8.3",
|
|
80
80
|
"vitest": "^3.2.4",
|
|
81
|
-
"zod": "
|
|
81
|
+
"zod": "^4.0.0"
|
|
82
82
|
}
|
|
83
83
|
}
|