@cesarandreslopez/occ 0.11.0 → 0.12.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.
Files changed (44) hide show
  1. package/README.md +15 -6
  2. package/dist/src/code/command.js +29 -1
  3. package/dist/src/code/command.js.map +1 -1
  4. package/dist/src/code/output.d.ts +3 -1
  5. package/dist/src/code/output.js +11 -0
  6. package/dist/src/code/output.js.map +1 -1
  7. package/dist/src/code/session.d.ts +3 -1
  8. package/dist/src/code/session.js +4 -0
  9. package/dist/src/code/session.js.map +1 -1
  10. package/dist/src/code/tree.d.ts +7 -0
  11. package/dist/src/code/tree.js +364 -0
  12. package/dist/src/code/tree.js.map +1 -0
  13. package/dist/src/code/types.d.ts +128 -0
  14. package/dist/src/code/types.js +45 -0
  15. package/dist/src/code/types.js.map +1 -1
  16. package/dist/src/git/api.d.ts +6 -1
  17. package/dist/src/git/api.js +17 -1
  18. package/dist/src/git/api.js.map +1 -1
  19. package/dist/src/git/command.js +22 -2
  20. package/dist/src/git/command.js.map +1 -1
  21. package/dist/src/git/output.d.ts +2 -1
  22. package/dist/src/git/output.js +5 -0
  23. package/dist/src/git/output.js.map +1 -1
  24. package/dist/src/git/parse.d.ts +2 -1
  25. package/dist/src/git/parse.js +97 -6
  26. package/dist/src/git/parse.js.map +1 -1
  27. package/dist/src/git/types.d.ts +44 -0
  28. package/dist/src/git/types.js +21 -0
  29. package/dist/src/git/types.js.map +1 -1
  30. package/dist/src/health.js +3 -0
  31. package/dist/src/health.js.map +1 -1
  32. package/dist/src/index.d.ts +10 -6
  33. package/dist/src/index.js +6 -3
  34. package/dist/src/index.js.map +1 -1
  35. package/dist/src/output/tabular.js +33 -16
  36. package/dist/src/output/tabular.js.map +1 -1
  37. package/dist/src/scc.d.ts +3 -0
  38. package/dist/src/scc.js +2 -0
  39. package/dist/src/scc.js.map +1 -1
  40. package/dist/src/workspace/types.d.ts +4 -0
  41. package/package.json +2 -1
  42. package/skills/occ/SKILL.md +27 -25
  43. package/skills/occ/reference/code.md +22 -1
  44. package/skills/occ/reference/git.md +17 -1
@@ -11,10 +11,11 @@ import { summarizeModule, toMermaid } from './code/query.js';
11
11
  import { searchSymbols } from './code/search.js';
12
12
  import { buildCodeContext } from './code/context.js';
13
13
  import { buildChangedRepoMap, buildRepoMap } from './code/map.js';
14
+ import { buildDirectoryTree } from './code/tree.js';
14
15
  import { readCodeSource } from './code/source.js';
15
16
  import { rankNodes, rankNodesCached } from './code/rank.js';
16
17
  import { computeCodeDiff } from './code/diff.js';
17
- import { getGitChangedFiles, getGitChurnSummary, getGitCommitHistory, getGitDiffFunctionContext, getGitDiffHunks, getGitDiffPatch, getGitDiffSummary, getGitFileHistory, resolveGitRange } from './git/api.js';
18
+ import { getGitChangedFiles, getGitChurnSummary, getGitCochange, getGitCommitHistory, getGitDiffFunctionContext, getGitDiffHunks, getGitDiffPatch, getGitDiffSummary, getGitFileHistory, resolveGitRange } from './git/api.js';
18
19
  import { inspectDocument } from './doc/inspect.js';
19
20
  import { discoverDocuments } from './doc/discover.js';
20
21
  import { chunkDocument, chunkDocumentFromMarkdown } from './doc/chunk.js';
@@ -27,7 +28,7 @@ import { inspectWorkspaceDocumentSet } from './workspace/documents.js';
27
28
  import { prepareWorkspaceContext } from './workspace/prepare.js';
28
29
  import { bundleWorkspace, bundleWorkspaceIsolated } from './workspace/bundle.js';
29
30
  import { health } from './health.js';
30
- export type { CodebaseIndex, CodeNode, CodeEdge, CodeNodeType, CodeEdgeType, IndexTruncation, NormalizedSymbolKind, } from './code/types.js';
31
+ export type { CodebaseIndex, CodeNode, CodeEdge, CodeNodeType, CodeEdgeType, DirectoryTreeEntry, DirectoryTreeMode, DirectoryTreeOptions, DirectoryTreeResult, DirectoryTreeSymbol, IndexTruncation, NormalizedSymbolKind, } from './code/types.js';
31
32
  export type { ManifestDiff, ManifestEntry, ChangedFileStat } from './code/incremental.js';
32
33
  export type { CodeQuerySession, CodeSessionChunkOptions } from './code/session.js';
33
34
  export type { CodeIndexStore, CodeIndexStoreOptions, StoreFreshness, StoreStrategy, StoreMetadata, StoreSessionOptions, StoreChunkIsolatedOptions, } from './code/store.js';
@@ -38,12 +39,13 @@ export type { CodebaseIndexSlim, SlimParsedFile } from './code/slim.js';
38
39
  export type { CodebaseSizePreview, PreviewCodebaseSizeOptions } from './code/preview.js';
39
40
  export type { ModuleSummary, ModuleSummaryOptions, MermaidKind, MermaidOptions } from './code/query.js';
40
41
  export type { ChangedRepoMapOptions, ChangedRepoMapRange, RepoMapChangeContext, RepoMapOptions, RepoMapResult, RepoMapEntry, RepoMapSymbol, RepoMapFormat, RepoMapMode, RepoMapFocus, RepoMapFocusResult, } from './code/map.js';
42
+ export type { BuildDirectoryTreeOptions } from './code/tree.js';
41
43
  export type { CodeSourceCandidate, ReadCodeSourceOptions, ReadCodeSourceQuery, ReadCodeSourceResult, } from './code/source.js';
42
44
  export type { CheckCodeSyntaxOptions, CheckCodeSyntaxResult, CodeSyntaxDiagnostic } from './code/check.js';
43
45
  export type { RankOptions, RankResult, RankedNode, RankedFile, RankEdgeWeights } from './code/rank.js';
44
46
  export type { ChangedSymbol, CodeDiffOptions, CodeDiffResult, FileChange } from './code/diff.js';
45
- export type { GitChangedFile, GitChurnEntry, GitChurnSummary, GitCommit, GitCommitHistory, GitDiffHunk, GitDiffHunks, GitDiffPatch, GitDiffSummary, GitFileHistory, GitFileHistoryEntry, GitFileHunks, GitFileStatus, GitNumstat, GitRange, GitRangeKind, GitRepoInfo, } from './git/types.js';
46
- export type { GitChurnOptions, GitContextOptions, GitFileHistoryOptions, GitHistoryOptions, GitPatchOptions, } from './git/api.js';
47
+ export type { GitChangedFile, GitChurnEntry, GitChurnSummary, GitCochangePair, GitCochangeSummary, GitCommit, GitCommitHistory, GitDiffHunk, GitDiffHunks, GitDiffPatch, GitDiffSummary, GitFileHistory, GitFileHistoryEntry, GitFileHunks, GitFileStatus, GitNumstat, GitRange, GitRangeKind, GitRepoInfo, } from './git/types.js';
48
+ export type { GitChurnOptions, GitCochangeOptions, GitContextOptions, GitFileHistoryOptions, GitHistoryOptions, GitPatchOptions, } from './git/api.js';
47
49
  export type { GitErrorCode, ResolveDiffRangeOptions, RunGitOptions, RunGitRawResult, RunGitResult, } from './git/client.js';
48
50
  export type { DocumentChunk, DocumentChunkOptions, ChunkDocumentFromMarkdownOptions } from './doc/chunk.js';
49
51
  export type { OnProgress, ProgressEvent, ProgressPhase } from './progress-event.js';
@@ -57,13 +59,13 @@ export type { InspectWorkspaceDocumentSetOptions } from './workspace/documents.j
57
59
  export type { WorkspaceBundle, WorkspaceBundleOptions, WorkspaceOutlineNode, WorkspaceCodeDocumentReference, WorkspaceCorpusChunk, } from './workspace/bundle.js';
58
60
  export type { WorkspaceDescription, WorkspaceRecommendedCall } from './workspace/types.js';
59
61
  export type { OccHealth } from './health.js';
60
- export { buildChangedRepoMap, buildCodebaseIndex, buildCodebaseIndexWithStats, buildCodebaseIndexIsolated, buildRepoMap, computeCodeDiff, readCodeSource, rankNodes, rankNodesCached, parseCodeFiles, assembleCodebaseIndex, assembleCodebaseIndexCooperative, DEFAULT_PARSE_CONCURRENCY, chunkCodebase, chunkFromIndex, chunkFromIndexCooperative, chunkFromIndexStreaming, chunkFromStoreIsolated, checkCodeSyntax, createCodeQuerySession, createCodeQuerySessionFromIndex, discoverCodeFiles, openChunkCodeIndexStore, openChunkCodeIndexStore as openChunkStore, openCodeIndexStore, parseSlimIndex, previewCodebaseSize, slimifyIndex, slimifyIndexCooperative, buildCodeContext, searchSymbols, summarizeModule, toMermaid, tryParseSlimIndex, validateSlimIndex, };
62
+ export { buildChangedRepoMap, buildCodebaseIndex, buildCodebaseIndexWithStats, buildDirectoryTree, buildCodebaseIndexIsolated, buildRepoMap, computeCodeDiff, readCodeSource, rankNodes, rankNodesCached, parseCodeFiles, assembleCodebaseIndex, assembleCodebaseIndexCooperative, DEFAULT_PARSE_CONCURRENCY, chunkCodebase, chunkFromIndex, chunkFromIndexCooperative, chunkFromIndexStreaming, chunkFromStoreIsolated, checkCodeSyntax, createCodeQuerySession, createCodeQuerySessionFromIndex, discoverCodeFiles, openChunkCodeIndexStore, openChunkCodeIndexStore as openChunkStore, openCodeIndexStore, parseSlimIndex, previewCodebaseSize, slimifyIndex, slimifyIndexCooperative, buildCodeContext, searchSymbols, summarizeModule, toMermaid, tryParseSlimIndex, validateSlimIndex, };
61
63
  export { DEFAULT_EXCLUDE_DIRS } from './utils.js';
62
64
  export { CodeIndexBudgetExceededError } from './code/build.js';
63
65
  export { joinHunksToSymbols } from './code/diff.js';
64
66
  export { OccAbortError, OCC_ABORTED, isOccAbortError } from './errors.js';
65
67
  export { GitError, detectDefaultBase, gitMergeBase, gitVersion, preflightRepo, resolveDiffRange, runGit, runGitRaw, } from './git/client.js';
66
- export { getGitChangedFiles, getGitChurnSummary, getGitCommitHistory, getGitDiffFunctionContext, getGitDiffHunks, getGitDiffPatch, getGitDiffSummary, getGitFileHistory, resolveGitRange, } from './git/api.js';
68
+ export { getGitChangedFiles, getGitChurnSummary, getGitCochange, getGitCommitHistory, getGitDiffFunctionContext, getGitDiffHunks, getGitDiffPatch, getGitDiffSummary, getGitFileHistory, resolveGitRange, } from './git/api.js';
67
69
  export { health } from './health.js';
68
70
  export { inspectTables } from './table/inspect.js';
69
71
  export { chunkDocument, chunkDocumentFromMarkdown } from './doc/chunk.js';
@@ -93,6 +95,7 @@ export interface OccCodeNamespace {
93
95
  check: typeof checkCodeSyntax;
94
96
  map: typeof buildRepoMap;
95
97
  mapChanged: typeof buildChangedRepoMap;
98
+ directoryTree: typeof buildDirectoryTree;
96
99
  diff: typeof computeCodeDiff;
97
100
  rank: typeof rankNodes;
98
101
  rankCached: typeof rankNodesCached;
@@ -112,6 +115,7 @@ export interface OccGitNamespace {
112
115
  commitHistory: typeof getGitCommitHistory;
113
116
  fileHistory: typeof getGitFileHistory;
114
117
  churnSummary: typeof getGitChurnSummary;
118
+ cochange: typeof getGitCochange;
115
119
  }
116
120
  export interface OccWorkspaceNamespace {
117
121
  analyze: typeof analyzeWorkspace;
package/dist/src/index.js CHANGED
@@ -11,10 +11,11 @@ import { summarizeModule, toMermaid } from './code/query.js';
11
11
  import { searchSymbols } from './code/search.js';
12
12
  import { buildCodeContext } from './code/context.js';
13
13
  import { buildChangedRepoMap, buildRepoMap } from './code/map.js';
14
+ import { buildDirectoryTree } from './code/tree.js';
14
15
  import { readCodeSource } from './code/source.js';
15
16
  import { rankNodes, rankNodesCached } from './code/rank.js';
16
17
  import { computeCodeDiff } from './code/diff.js';
17
- import { getGitChangedFiles, getGitChurnSummary, getGitCommitHistory, getGitDiffFunctionContext, getGitDiffHunks, getGitDiffPatch, getGitDiffSummary, getGitFileHistory, resolveGitRange, } from './git/api.js';
18
+ import { getGitChangedFiles, getGitChurnSummary, getGitCochange, getGitCommitHistory, getGitDiffFunctionContext, getGitDiffHunks, getGitDiffPatch, getGitDiffSummary, getGitFileHistory, resolveGitRange, } from './git/api.js';
18
19
  import { inspectDocument } from './doc/inspect.js';
19
20
  import { discoverDocuments } from './doc/discover.js';
20
21
  import { chunkDocument, chunkDocumentFromMarkdown } from './doc/chunk.js';
@@ -27,13 +28,13 @@ import { inspectWorkspaceDocumentSet } from './workspace/documents.js';
27
28
  import { prepareWorkspaceContext } from './workspace/prepare.js';
28
29
  import { bundleWorkspace, bundleWorkspaceIsolated } from './workspace/bundle.js';
29
30
  import { health } from './health.js';
30
- export { buildChangedRepoMap, buildCodebaseIndex, buildCodebaseIndexWithStats, buildCodebaseIndexIsolated, buildRepoMap, computeCodeDiff, readCodeSource, rankNodes, rankNodesCached, parseCodeFiles, assembleCodebaseIndex, assembleCodebaseIndexCooperative, DEFAULT_PARSE_CONCURRENCY, chunkCodebase, chunkFromIndex, chunkFromIndexCooperative, chunkFromIndexStreaming, chunkFromStoreIsolated, checkCodeSyntax, createCodeQuerySession, createCodeQuerySessionFromIndex, discoverCodeFiles, openChunkCodeIndexStore, openChunkCodeIndexStore as openChunkStore, openCodeIndexStore, parseSlimIndex, previewCodebaseSize, slimifyIndex, slimifyIndexCooperative, buildCodeContext, searchSymbols, summarizeModule, toMermaid, tryParseSlimIndex, validateSlimIndex, };
31
+ export { buildChangedRepoMap, buildCodebaseIndex, buildCodebaseIndexWithStats, buildDirectoryTree, buildCodebaseIndexIsolated, buildRepoMap, computeCodeDiff, readCodeSource, rankNodes, rankNodesCached, parseCodeFiles, assembleCodebaseIndex, assembleCodebaseIndexCooperative, DEFAULT_PARSE_CONCURRENCY, chunkCodebase, chunkFromIndex, chunkFromIndexCooperative, chunkFromIndexStreaming, chunkFromStoreIsolated, checkCodeSyntax, createCodeQuerySession, createCodeQuerySessionFromIndex, discoverCodeFiles, openChunkCodeIndexStore, openChunkCodeIndexStore as openChunkStore, openCodeIndexStore, parseSlimIndex, previewCodebaseSize, slimifyIndex, slimifyIndexCooperative, buildCodeContext, searchSymbols, summarizeModule, toMermaid, tryParseSlimIndex, validateSlimIndex, };
31
32
  export { DEFAULT_EXCLUDE_DIRS } from './utils.js';
32
33
  export { CodeIndexBudgetExceededError } from './code/build.js';
33
34
  export { joinHunksToSymbols } from './code/diff.js';
34
35
  export { OccAbortError, OCC_ABORTED, isOccAbortError } from './errors.js';
35
36
  export { GitError, detectDefaultBase, gitMergeBase, gitVersion, preflightRepo, resolveDiffRange, runGit, runGitRaw, } from './git/client.js';
36
- export { getGitChangedFiles, getGitChurnSummary, getGitCommitHistory, getGitDiffFunctionContext, getGitDiffHunks, getGitDiffPatch, getGitDiffSummary, getGitFileHistory, resolveGitRange, } from './git/api.js';
37
+ export { getGitChangedFiles, getGitChurnSummary, getGitCochange, getGitCommitHistory, getGitDiffFunctionContext, getGitDiffHunks, getGitDiffPatch, getGitDiffSummary, getGitFileHistory, resolveGitRange, } from './git/api.js';
37
38
  export { health } from './health.js';
38
39
  export { inspectTables } from './table/inspect.js';
39
40
  export { chunkDocument, chunkDocumentFromMarkdown } from './doc/chunk.js';
@@ -65,6 +66,7 @@ export function createOcc() {
65
66
  check: checkCodeSyntax,
66
67
  map: buildRepoMap,
67
68
  mapChanged: buildChangedRepoMap,
69
+ directoryTree: buildDirectoryTree,
68
70
  diff: computeCodeDiff,
69
71
  rank: rankNodes,
70
72
  rankCached: rankNodesCached,
@@ -84,6 +86,7 @@ export function createOcc() {
84
86
  commitHistory: getGitCommitHistory,
85
87
  fileHistory: getGitFileHistory,
86
88
  churnSummary: getGitChurnSummary,
89
+ cochange: getGitCochange,
87
90
  },
88
91
  workspace: {
89
92
  analyze: analyzeWorkspace,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -43,57 +43,74 @@ export function formatSccTable(sccData, options = {}) {
43
43
  const c = ci ? noColor : colorize;
44
44
  if (!sccData || sccData.length === 0)
45
45
  return '';
46
+ const hasComplexity = sccData.some(lang => byFile ? (lang.Files ?? []).some(file => file.Complexity != null) : lang.Complexity != null);
47
+ const head = [
48
+ c.headerCell('Language'),
49
+ c.headerCell('Files'),
50
+ c.headerCell('Lines'),
51
+ c.headerCell('Blanks'),
52
+ c.headerCell('Comments'),
53
+ c.headerCell('Code'),
54
+ ];
55
+ if (hasComplexity)
56
+ head.push(c.headerCell('Complexity'));
57
+ const colAligns = ['left', 'right', 'right', 'right', 'right', 'right'];
58
+ if (hasComplexity)
59
+ colAligns.push('right');
46
60
  const table = new Table({
47
- head: [
48
- c.headerCell('Language'),
49
- c.headerCell('Files'),
50
- c.headerCell('Lines'),
51
- c.headerCell('Blanks'),
52
- c.headerCell('Comments'),
53
- c.headerCell('Code'),
54
- ],
61
+ head,
55
62
  chars: tableChars(ci),
56
63
  style: { head: [], border: [] },
57
- colAligns: ['left', 'right', 'right', 'right', 'right', 'right'],
64
+ colAligns,
58
65
  });
59
- let totalFiles = 0, totalLines = 0, totalBlanks = 0, totalComments = 0, totalCode = 0;
66
+ let totalFiles = 0, totalLines = 0, totalBlanks = 0, totalComments = 0, totalCode = 0, totalComplexity = 0;
60
67
  for (const lang of sccData) {
61
68
  if (byFile && lang.Files) {
62
69
  for (const file of lang.Files) {
63
- table.push([
70
+ const row = [
64
71
  c.type(file.Filename || file.Location || ''),
65
72
  formatNumber(1),
66
73
  c.number(formatNumber(file.Lines)),
67
74
  c.number(formatNumber(file.Blank)),
68
75
  c.number(formatNumber(file.Comment)),
69
76
  c.number(formatNumber(file.Code)),
70
- ]);
77
+ ];
78
+ if (hasComplexity)
79
+ row.push(c.number(file.Complexity == null ? '' : formatNumber(file.Complexity)));
80
+ table.push(row);
71
81
  }
72
82
  }
73
83
  else {
74
- table.push([
84
+ const row = [
75
85
  c.type(lang.Name),
76
86
  formatNumber(lang.Count),
77
87
  c.number(formatNumber(lang.Lines)),
78
88
  c.number(formatNumber(lang.Blank)),
79
89
  c.number(formatNumber(lang.Comment)),
80
90
  c.number(formatNumber(lang.Code)),
81
- ]);
91
+ ];
92
+ if (hasComplexity)
93
+ row.push(c.number(lang.Complexity == null ? '' : formatNumber(lang.Complexity)));
94
+ table.push(row);
82
95
  }
83
96
  totalFiles += lang.Count || 0;
84
97
  totalLines += lang.Lines || 0;
85
98
  totalBlanks += lang.Blank || 0;
86
99
  totalComments += lang.Comment || 0;
87
100
  totalCode += lang.Code || 0;
101
+ totalComplexity += lang.Complexity ?? lang.Files?.reduce((sum, file) => sum + (file.Complexity ?? 0), 0) ?? 0;
88
102
  }
89
- table.push([
103
+ const totalRow = [
90
104
  c.total('Total'),
91
105
  c.total(formatNumber(totalFiles)),
92
106
  c.total(formatNumber(totalLines)),
93
107
  c.total(formatNumber(totalBlanks)),
94
108
  c.total(formatNumber(totalComments)),
95
109
  c.total(formatNumber(totalCode)),
96
- ]);
110
+ ];
111
+ if (hasComplexity)
112
+ totalRow.push(c.total(formatNumber(totalComplexity)));
113
+ table.push(totalRow);
97
114
  const tableStr = addSeparators(table.toString(), ci ? '-' : '─');
98
115
  const tableWidth = stripAnsi(tableStr.split('\n')[0]).length;
99
116
  const lines = [];
@@ -1 +1 @@
1
- {"version":3,"file":"tabular.js","sourceRoot":"","sources":["../../../src/output/tabular.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabular.js","sourceRoot":"","sources":["../../../src/output/tabular.ts"],"names":[],"mappings":"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"}
package/dist/src/scc.d.ts CHANGED
@@ -6,6 +6,7 @@ export declare const SccFileSchema: z.ZodObject<{
6
6
  Blank: z.ZodNumber;
7
7
  Comment: z.ZodNumber;
8
8
  Code: z.ZodNumber;
9
+ Complexity: z.ZodOptional<z.ZodNumber>;
9
10
  }, z.core.$loose>;
10
11
  export type SccFile = z.infer<typeof SccFileSchema>;
11
12
  export declare const SccLanguageSchema: z.ZodObject<{
@@ -15,6 +16,7 @@ export declare const SccLanguageSchema: z.ZodObject<{
15
16
  Blank: z.ZodNumber;
16
17
  Comment: z.ZodNumber;
17
18
  Code: z.ZodNumber;
19
+ Complexity: z.ZodOptional<z.ZodNumber>;
18
20
  Files: z.ZodOptional<z.ZodArray<z.ZodObject<{
19
21
  Filename: z.ZodOptional<z.ZodString>;
20
22
  Location: z.ZodOptional<z.ZodString>;
@@ -22,6 +24,7 @@ export declare const SccLanguageSchema: z.ZodObject<{
22
24
  Blank: z.ZodNumber;
23
25
  Comment: z.ZodNumber;
24
26
  Code: z.ZodNumber;
27
+ Complexity: z.ZodOptional<z.ZodNumber>;
25
28
  }, z.core.$loose>>>;
26
29
  }, z.core.$loose>;
27
30
  export type SccLanguage = z.infer<typeof SccLanguageSchema>;
package/dist/src/scc.js CHANGED
@@ -14,6 +14,7 @@ export const SccFileSchema = z
14
14
  Blank: z.number(),
15
15
  Comment: z.number(),
16
16
  Code: z.number(),
17
+ Complexity: z.number().optional(),
17
18
  })
18
19
  .passthrough();
19
20
  export const SccLanguageSchema = z
@@ -24,6 +25,7 @@ export const SccLanguageSchema = z
24
25
  Blank: z.number(),
25
26
  Comment: z.number(),
26
27
  Code: z.number(),
28
+ Complexity: z.number().optional(),
27
29
  Files: z.array(SccFileSchema).optional(),
28
30
  })
29
31
  .passthrough();
@@ -1 +1 @@
1
- {"version":3,"file":"scc.js","sourceRoot":"","sources":["../../src/scc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scc.js","sourceRoot":"","sources":["../../src/scc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,WAAW,EAAE,CAAC;AAGjB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,WAAW,EAAE,CAAC;AAGjB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC1B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAGH,SAAS,kBAAkB;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAChE,mDAAmD;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtE,IAAI,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9C,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,OAAO;IACpB,yBAAyB;IACzB,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE1C,oBAAoB;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,kCAAkC;YAChC,+FAA+F,CAClG,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,SAAwB,EACxB,WAAqB,EACrB,UAAyB,EAAE;IAE3B,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAE3F,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAElC,4BAA4B;IAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAExD,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,IAAI,EAAE;QAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,WAAW;QAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE7C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,OAAO,GAA2B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACxG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,yBAAyB;IACzB,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAEnB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE;YACtD,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;YAC3B,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAE9B,OAAO,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,GAA4B,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,4CAA4C;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC3E,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -84,6 +84,7 @@ export declare const WorkspaceCodeAnalysisSchema: z.ZodObject<{
84
84
  Blank: z.ZodNumber;
85
85
  Comment: z.ZodNumber;
86
86
  Code: z.ZodNumber;
87
+ Complexity: z.ZodOptional<z.ZodNumber>;
87
88
  Files: z.ZodOptional<z.ZodArray<z.ZodObject<{
88
89
  Filename: z.ZodOptional<z.ZodString>;
89
90
  Location: z.ZodOptional<z.ZodString>;
@@ -91,6 +92,7 @@ export declare const WorkspaceCodeAnalysisSchema: z.ZodObject<{
91
92
  Blank: z.ZodNumber;
92
93
  Comment: z.ZodNumber;
93
94
  Code: z.ZodNumber;
95
+ Complexity: z.ZodOptional<z.ZodNumber>;
94
96
  }, z.core.$loose>>>;
95
97
  }, z.core.$loose>>;
96
98
  totals: z.ZodObject<{
@@ -165,6 +167,7 @@ export declare const WorkspaceAnalysisSchema: z.ZodObject<{
165
167
  Blank: z.ZodNumber;
166
168
  Comment: z.ZodNumber;
167
169
  Code: z.ZodNumber;
170
+ Complexity: z.ZodOptional<z.ZodNumber>;
168
171
  Files: z.ZodOptional<z.ZodArray<z.ZodObject<{
169
172
  Filename: z.ZodOptional<z.ZodString>;
170
173
  Location: z.ZodOptional<z.ZodString>;
@@ -172,6 +175,7 @@ export declare const WorkspaceAnalysisSchema: z.ZodObject<{
172
175
  Blank: z.ZodNumber;
173
176
  Comment: z.ZodNumber;
174
177
  Code: z.ZodNumber;
178
+ Complexity: z.ZodOptional<z.ZodNumber>;
175
179
  }, z.core.$loose>>>;
176
180
  }, z.core.$loose>>;
177
181
  totals: z.ZodObject<{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cesarandreslopez/occ",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Office Cloc and Count — document metrics, structure extraction, content inspection, and code exploration for real repositories",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -413,6 +413,7 @@
413
413
  "format:check": "prettier . --check --ignore-unknown",
414
414
  "start": "node dist/bin/occ.js",
415
415
  "test": "npm run build && node --import tsx --test test/*.test.ts",
416
+ "test:update-golden": "UPDATE_GOLDEN=1 node --import tsx --test test/graph-golden.test.ts",
416
417
  "prepublishOnly": "npm run build",
417
418
  "postinstall": "node scripts/postinstall.js"
418
419
  },
@@ -9,12 +9,12 @@ description: >-
9
9
  "occ sheet inspect", "occ slide inspect", and "occ table inspect"; and code
10
10
  exploration for JS/TS, Vue SFC, Python, Go, Rust, Java, C/C++, Kotlin, and
11
11
  other tree-sitter-backed languages with "occ code map", "occ code source",
12
- "occ code check", "occ code find", "occ code analyze", "occ code diff", and
13
- "occ git diff". Reach for it whenever you need to understand a codebase or a set of
12
+ "occ code check", "occ code find", "occ code analyze", "occ code dirtree",
13
+ "occ code diff", and "occ git diff"/"occ git cochange". Reach for it whenever you need to understand a codebase or a set of
14
14
  office files without burning context reading everything, or whenever the user
15
15
  mentions occ.
16
16
  metadata:
17
- version: 0.11.0
17
+ version: 0.12.0
18
18
  license: MIT
19
19
  ---
20
20
 
@@ -49,27 +49,28 @@ Run `occ --help` or `occ <group> --help` to see every flag.
49
49
 
50
50
  ## Decision table — pick the right command
51
51
 
52
- | If you need to… | Start with | Deep reference |
53
- | ------------------------------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------ |
54
- | Tell what kind of project a directory is | `occ describe <dir> --format json` | [reference/workspace.md](reference/workspace.md) |
55
- | Inventory a whole workspace (code + docs + structure) | `occ workspace analyze <dir> --format json -o ws.json` | [reference/workspace.md](reference/workspace.md) |
56
- | Inventory / cross-reference office docs in a tree | `occ workspace documents <dir> --format json` | [reference/workspace.md](reference/workspace.md) |
57
- | Get document + code metrics for some directories | `occ <dirs> --format json --structure` | [reference/workspace.md](reference/workspace.md) |
58
- | Preflight one DOCX / PDF / ODT before reading it | `occ doc inspect <file> --format json` | [reference/documents.md](reference/documents.md) |
59
- | Preflight an XLSX workbook (schema, sheets, risks) | `occ sheet inspect <file> --format json` | [reference/documents.md](reference/documents.md) |
60
- | Preflight a PPTX / ODP deck | `occ slide inspect <file> --format json` | [reference/documents.md](reference/documents.md) |
61
- | Extract structured table data from a document | `occ table inspect <file> --format json` | [reference/documents.md](reference/documents.md) |
62
- | Pull entities/keywords (emails, URLs, dates) from a doc | `occ doc entities <file>` | [reference/documents.md](reference/documents.md) |
63
- | Get oriented in an unfamiliar codebase | `occ code map --path . --map-tokens 8000 --tokenizer o200k_base -o map.md` | [reference/code.md](reference/code.md) |
64
- | Pull file _contents_ within a token budget | `occ code pack --path . --map-tokens 8000 --tokenizer o200k_base -o pack.md` | [reference/code.md](reference/code.md) |
65
- | Find a symbol / concept (best-effort) | `occ code find fused "<query>" --format json` | [reference/code.md](reference/code.md) |
66
- | Find an exact symbol by name or type | `occ code find name <Name> --format json` | [reference/code.md](reference/code.md) |
67
- | Read one known symbol body | `occ code source --node-id <nodeId> --format json` | [reference/code.md](reference/code.md) |
68
- | Check parse syntax after edits | `occ code check <file> --format json` | [reference/code.md](reference/code.md) |
69
- | See who calls X / what X calls | `occ code analyze callers <fn>` · `occ code analyze calls <fn>` | [reference/code.md](reference/code.md) |
70
- | Inspect imports / module coupling | `occ code analyze deps <target>` · `occ code analyze coupling <target>` | [reference/code.md](reference/code.md) |
71
- | See which _symbols_ changed in a diff | `occ code diff --base <ref> --map-tokens 4096 --format json` | [reference/code.md](reference/code.md) |
72
- | List changed files / bounded patch / churn | `occ git changed` · `occ git diff --patch --map-tokens 2048` · `occ git churn` | [reference/git.md](reference/git.md) |
52
+ | If you need to… | Start with | Deep reference |
53
+ | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
54
+ | Tell what kind of project a directory is | `occ describe <dir> --format json` | [reference/workspace.md](reference/workspace.md) |
55
+ | Inventory a whole workspace (code + docs + structure) | `occ workspace analyze <dir> --format json -o ws.json` | [reference/workspace.md](reference/workspace.md) |
56
+ | Inventory / cross-reference office docs in a tree | `occ workspace documents <dir> --format json` | [reference/workspace.md](reference/workspace.md) |
57
+ | Get document + code metrics for some directories | `occ <dirs> --format json --structure` | [reference/workspace.md](reference/workspace.md) |
58
+ | Preflight one DOCX / PDF / ODT before reading it | `occ doc inspect <file> --format json` | [reference/documents.md](reference/documents.md) |
59
+ | Preflight an XLSX workbook (schema, sheets, risks) | `occ sheet inspect <file> --format json` | [reference/documents.md](reference/documents.md) |
60
+ | Preflight a PPTX / ODP deck | `occ slide inspect <file> --format json` | [reference/documents.md](reference/documents.md) |
61
+ | Extract structured table data from a document | `occ table inspect <file> --format json` | [reference/documents.md](reference/documents.md) |
62
+ | Pull entities/keywords (emails, URLs, dates) from a doc | `occ doc entities <file>` | [reference/documents.md](reference/documents.md) |
63
+ | Get oriented in an unfamiliar codebase | `occ code map --path . --map-tokens 8000 --tokenizer o200k_base -o map.md` | [reference/code.md](reference/code.md) |
64
+ | See an ignore-aware directory tree | `occ code dirtree --path . --mode map --format json` | [reference/code.md](reference/code.md) |
65
+ | Pull file _contents_ within a token budget | `occ code pack --path . --map-tokens 8000 --tokenizer o200k_base -o pack.md` | [reference/code.md](reference/code.md) |
66
+ | Find a symbol / concept (best-effort) | `occ code find fused "<query>" --format json` | [reference/code.md](reference/code.md) |
67
+ | Find an exact symbol by name or type | `occ code find name <Name> --format json` | [reference/code.md](reference/code.md) |
68
+ | Read one known symbol body | `occ code source --node-id <nodeId> --format json` | [reference/code.md](reference/code.md) |
69
+ | Check parse syntax after edits | `occ code check <file> --format json` | [reference/code.md](reference/code.md) |
70
+ | See who calls X / what X calls | `occ code analyze callers <fn>` · `occ code analyze calls <fn>` | [reference/code.md](reference/code.md) |
71
+ | Inspect imports / module coupling | `occ code analyze deps <target>` · `occ code analyze coupling <target>` | [reference/code.md](reference/code.md) |
72
+ | See which _symbols_ changed in a diff | `occ code diff --base <ref> --map-tokens 4096 --format json` | [reference/code.md](reference/code.md) |
73
+ | List changed files / bounded patch / churn / co-change | `occ git changed` · `occ git diff --patch --map-tokens 2048` · `occ git churn` · `occ git cochange` | [reference/git.md](reference/git.md) |
73
74
 
74
75
  ## Recommended agent workflows
75
76
 
@@ -79,6 +80,7 @@ Run `occ --help` or `occ <group> --help` to see every flag.
79
80
  - **Trace impact:** `occ code analyze callers targetFn --format json` before broad text search; use candidates and valid node kinds from ambiguous output to refine the query.
80
81
  - **Post-edit syntax gate:** run `occ code check <changed-file> --format json`; it exits nonzero only when `valid` is `false`.
81
82
  - **Review a change:** `occ git changed` → `occ code diff --base <base> --format json` for symbol-level scope → `occ git diff --patch --map-tokens 4096` for a bounded patch.
83
+ - **Estimate blast radius:** `occ git cochange --target <path> --format json` for historically coupled files, then use `occ code dirtree --focus-path <dir> --mode map` for structural neighborhood context.
82
84
  - **Process a document drop:** `occ <dir> --format json` for the inventory → `occ doc/sheet/slide inspect --format json` per file → `occ table inspect` to pull tabular data → read only what matters.
83
85
 
84
86
  ## Notes
@@ -86,4 +88,4 @@ Run `occ --help` or `occ <group> --help` to see every flag.
86
88
  - For the full flag list of every command, read [reference/commands.md](reference/commands.md).
87
89
  - Languages with first-class code support: JavaScript, TypeScript, Vue SFC, Python, Go, Rust, Java, C/C++, Kotlin, Ruby, PHP, C#, Scala, and Swift.
88
90
  - `--format json` is the integration surface; tabular output is for humans.
89
- - Embedding `occ` in a long-running host (an editor/agent integration that holds an index across turns)? The code graph also has an in-process API — fuzzy `searchSymbols`, index-to-context projection, changed-focus repo maps, store freshness probes, and a `health().features` map to feature-detect across versions. See the programmatic surface in [reference/code.md](reference/code.md).
91
+ - Embedding `occ` in a long-running host (an editor/agent integration that holds an index across turns)? The code graph also has an in-process API — fuzzy `searchSymbols`, index-to-context projection, changed-focus repo maps, directory trees, git co-change, store freshness probes, and a `health().features` map to feature-detect across versions. See the programmatic surface in [reference/code.md](reference/code.md).
@@ -31,6 +31,23 @@ occ code map --path . --query "auth token refresh" --focus-path src/auth --map-t
31
31
  occ code map --path . --changed-from main --map-tokens 4096 # diff-focused map
32
32
  ```
33
33
 
34
+ ## Directory tree — `occ code dirtree`
35
+
36
+ Bounded, ignore-aware tree derived from the built code index, not from a raw
37
+ filesystem walk. Use this when you need package/folder shape plus truncation
38
+ breadcrumbs for drill-in.
39
+
40
+ ```bash
41
+ occ code dirtree --path . --format json
42
+ occ code dirtree --path . --mode map --map-tokens 4096 --tokenizer o200k_base
43
+ occ code dirtree --path . --focus-path src/code --depth 4 --max-entries 25
44
+ ```
45
+
46
+ Modes: `compact` (default, collapses single-child directory chains), `verbose`,
47
+ and `map` (compact plus top symbol signatures from the highest-ranked file per
48
+ directory). JSON output includes `truncatedPaths`; call again with
49
+ `--focus-path <path>` and higher caps to drill into an elided subtree.
50
+
34
51
  ## Search — `occ code find <mode>`
35
52
 
36
53
  - `occ code find fused "<query>"` — combines name + pattern + content search with
@@ -126,6 +143,10 @@ in-process equivalents for the verbs above, plus a few probes with no CLI:
126
143
  admitted entries carry `changed`/`churn`. `toRepoMapChangeContext` /
127
144
  `stampRepoMapChanges` are exported for callers that already hold a diff
128
145
  summary. Facade: `createOcc().code.mapChanged`.
146
+ - **`buildDirectoryTree(index, options)`** / `session.getDirectoryTree(options)`
147
+ / `createOcc().code.directoryTree(index, options)` — bounded directory tree
148
+ over indexed files, with `compact`/`verbose`/`map` modes and
149
+ `truncatedPaths` drill-in hints.
129
150
  - **`store.peekMetadata()` / `store.isFresh()`** — probe a persisted
130
151
  `CodeIndexStore` without deserializing or parsing. `peekMetadata()` returns the
131
152
  on-disk metadata (available before the first `getSession()` of a process);
@@ -134,7 +155,7 @@ in-process equivalents for the verbs above, plus a few probes with no CLI:
134
155
  this repo, options, and occ version — use them to decide whether to rebuild
135
156
  before serving a session.
136
157
  - **`health().features`** — a map of stable feature identifiers (e.g.
137
- `code.searchSymbols`, `store.isFresh`, `code.map.changed`). Feature-detect
158
+ `code.searchSymbols`, `code.directoryTree`, `store.isFresh`, `code.map.changed`). Feature-detect
138
159
  against it (`health.features?.['store.isFresh'] === true`) instead of
139
160
  `typeof`-probing when a host must support multiple occ versions.
140
161
 
@@ -1,6 +1,6 @@
1
1
  # Git context
2
2
 
3
- Inspect git changes, history, and churn. Shared flags: `--path <repo-root>`
3
+ Inspect git changes, history, churn, and file-level co-change. Shared flags: `--path <repo-root>`
4
4
  (default cwd), `--base <ref>`, `--head <ref>`, `--staged`, `--format
5
5
  tabular|json`, `-o <file>`. The diff range is resolved from `--base`/`--head`/
6
6
  `--staged` (defaults to the working-tree changes when unspecified).
@@ -49,6 +49,22 @@ occ git churn --sort churn --limit 20 --format json
49
49
  Flags: `--sort churn|commits|added|deleted|net` (default churn), `--limit <n>`,
50
50
  `--since <date>`.
51
51
 
52
+ ## `occ git cochange`
53
+
54
+ Rank file pairs that historically change together. Use this for file-level
55
+ blast-radius hints before editing a known path.
56
+
57
+ ```bash
58
+ occ git cochange --limit 20 --format json
59
+ occ git cochange --target src/cli.ts --format json
60
+ occ git cochange --since 2025-01-01 --max-commit-files 30
61
+ ```
62
+
63
+ Flags: `--limit <n>`, `--since <date>`, `--target <path>`, and
64
+ `--max-commit-files <n>` (default 50). JSON pairs include `fileA`, `fileB`,
65
+ `count`, `lift`, and `lastCochangedAt`. Co-change is file-level only; use
66
+ `occ code diff` for symbol-level changed-code context.
67
+
52
68
  ## Symbol-level changes
53
69
 
54
70
  To see which _symbols_ (not just files/lines) changed, use `occ code diff`