@cesarandreslopez/occ 0.8.5 → 0.8.7

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 (56) hide show
  1. package/README.md +61 -11
  2. package/dist/src/cli.js +2 -1
  3. package/dist/src/cli.js.map +1 -1
  4. package/dist/src/code/build.d.ts +23 -0
  5. package/dist/src/code/build.js +88 -3
  6. package/dist/src/code/build.js.map +1 -1
  7. package/dist/src/code/chunk.d.ts +6 -4
  8. package/dist/src/code/chunk.js +44 -28
  9. package/dist/src/code/chunk.js.map +1 -1
  10. package/dist/src/code/index-io.d.ts +2 -1
  11. package/dist/src/code/index-io.js +2 -0
  12. package/dist/src/code/index-io.js.map +1 -1
  13. package/dist/src/code/isolated-runner.d.ts +1 -0
  14. package/dist/src/code/isolated-runner.js +38 -0
  15. package/dist/src/code/isolated-runner.js.map +1 -0
  16. package/dist/src/code/isolated.d.ts +9 -0
  17. package/dist/src/code/isolated.js +98 -0
  18. package/dist/src/code/isolated.js.map +1 -0
  19. package/dist/src/code/languages.d.ts +2 -0
  20. package/dist/src/code/languages.js +9 -1
  21. package/dist/src/code/languages.js.map +1 -1
  22. package/dist/src/code/parsers.js +78 -0
  23. package/dist/src/code/parsers.js.map +1 -1
  24. package/dist/src/code/preview.d.ts +34 -0
  25. package/dist/src/code/preview.js +90 -0
  26. package/dist/src/code/preview.js.map +1 -0
  27. package/dist/src/code/query.js +20 -7
  28. package/dist/src/code/query.js.map +1 -1
  29. package/dist/src/code/session.d.ts +2 -4
  30. package/dist/src/code/session.js.map +1 -1
  31. package/dist/src/code/slim.d.ts +247 -0
  32. package/dist/src/code/slim.js +40 -0
  33. package/dist/src/code/slim.js.map +1 -0
  34. package/dist/src/code/store.d.ts +6 -0
  35. package/dist/src/code/store.js +13 -0
  36. package/dist/src/code/store.js.map +1 -1
  37. package/dist/src/code/types.d.ts +27 -0
  38. package/dist/src/code/types.js +10 -0
  39. package/dist/src/code/types.js.map +1 -1
  40. package/dist/src/index.d.ts +25 -5
  41. package/dist/src/index.js +14 -1
  42. package/dist/src/index.js.map +1 -1
  43. package/dist/src/progress-event.d.ts +2 -1
  44. package/dist/src/workspace/command.d.ts +1 -0
  45. package/dist/src/workspace/command.js +72 -0
  46. package/dist/src/workspace/command.js.map +1 -1
  47. package/dist/src/workspace/describe-output.d.ts +7 -0
  48. package/dist/src/workspace/describe-output.js +85 -0
  49. package/dist/src/workspace/describe-output.js.map +1 -0
  50. package/dist/src/workspace/describe.d.ts +9 -0
  51. package/dist/src/workspace/describe.js +660 -0
  52. package/dist/src/workspace/describe.js.map +1 -0
  53. package/dist/src/workspace/types.d.ts +170 -0
  54. package/dist/src/workspace/types.js +89 -0
  55. package/dist/src/workspace/types.js.map +1 -1
  56. package/package.json +30 -1
@@ -2,6 +2,8 @@ import { writeFile } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import { z } from 'zod';
4
4
  import { analyzeWorkspace } from './analyze.js';
5
+ import { describeWorkspace } from './describe.js';
6
+ import { formatWorkspaceDescription } from './describe-output.js';
5
7
  import { inspectWorkspaceDocumentSet } from './documents.js';
6
8
  import { writeStream } from '../utils.js';
7
9
  const WorkspaceCommandOptionsSchema = z.object({
@@ -16,7 +18,11 @@ const WorkspaceCommandOptionsSchema = z.object({
16
18
  structures: z.boolean().optional(),
17
19
  maxFiles: z.string().optional(),
18
20
  maxReferenceFiles: z.string().optional(),
21
+ maxProjects: z.string().optional(),
19
22
  includeMarkdown: z.boolean().optional(),
23
+ quiet: z.boolean().optional(),
24
+ full: z.boolean().optional(),
25
+ ci: z.boolean().optional(),
20
26
  }).passthrough();
21
27
  function collectOption(value, previous = []) {
22
28
  return [...previous, value];
@@ -35,6 +41,31 @@ function parsePositiveInt(value, fallback) {
35
41
  const parsed = Number.parseInt(value ?? '', 10);
36
42
  return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
37
43
  }
44
+ function parseNonNegativeInt(value, fallback) {
45
+ const parsed = Number.parseInt(value ?? '', 10);
46
+ return Number.isFinite(parsed) && parsed >= 0 ? parsed : fallback;
47
+ }
48
+ async function describeDirectories(directories, options) {
49
+ const roots = directories.length > 0 ? directories : [process.cwd()];
50
+ const results = [];
51
+ for (const root of roots) {
52
+ results.push(await describeWorkspace(path.resolve(root), {
53
+ excludeDir: options.excludeDir?.split(',').map((item) => item.trim()).filter(Boolean),
54
+ ignorePatterns: options.ignorePattern,
55
+ noGitignore: options.gitignore === false,
56
+ maxProjects: parseNonNegativeInt(options.maxProjects, 25),
57
+ }));
58
+ }
59
+ if (options.format === 'json') {
60
+ return JSON.stringify(results.length === 1 ? results[0] : results, null, 2);
61
+ }
62
+ const outputs = results.map((result) => formatWorkspaceDescription(result, {
63
+ format: 'tabular',
64
+ quiet: options.quiet === true,
65
+ full: options.full === true,
66
+ }));
67
+ return outputs.join(options.quiet ? '\n' : '\n\n');
68
+ }
38
69
  function formatWorkspaceAnalysis(result) {
39
70
  const lines = [];
40
71
  lines.push(`Workspace: ${result.rootDir}`);
@@ -66,6 +97,22 @@ function formatWorkspaceDocumentSet(result) {
66
97
  }
67
98
  export function registerWorkspaceCommands(program) {
68
99
  const workspace = program.command('workspace').description('Workspace-level analysis and document context helpers');
100
+ const describe = workspace.command('describe [rootDir]').description('Quickly classify a workspace from fast file and manifest signals');
101
+ describe
102
+ .option('--format <type>', 'output format: tabular or json', 'tabular')
103
+ .option('-o, --output <file>', 'write output to file')
104
+ .option('--exclude-dir <dirs>', 'directories to skip (comma-separated)', 'node_modules,.git,dist,vendor,build,coverage,target')
105
+ .option('--ignore-pattern <pattern>', 'gitignore-style pattern to ignore', collectOption, [])
106
+ .option('--no-gitignore', 'disable .gitignore respect')
107
+ .option('--max-projects <n>', 'maximum nested project summaries to show', '25')
108
+ .option('--quiet', 'show only the classification summary')
109
+ .option('--full', 'show the full description report')
110
+ .option('--ci', 'ASCII-only output, no colors');
111
+ describe.action(async (rootDir, _opts, command) => {
112
+ const options = getOptions(command);
113
+ const output = await describeDirectories(rootDir ? [rootDir] : [], options);
114
+ await emit(output.endsWith('\n') ? output : `${output}\n`, options);
115
+ });
69
116
  const analyze = workspace.command('analyze [rootDir]').description('Analyze workspace code, documents, and structures with a versioned JSON contract');
70
117
  analyze
71
118
  .option('--format <type>', 'output format: tabular or json', 'json')
@@ -121,4 +168,29 @@ export function registerWorkspaceCommands(program) {
121
168
  await emit(output.endsWith('\n') ? output : `${output}\n`, options);
122
169
  });
123
170
  }
171
+ export function registerDescribeCommand(program) {
172
+ const describe = program.command('describe [directories...]').description('Quickly classify one or more directories from fast file and manifest signals');
173
+ describe
174
+ .option('--format <type>', 'output format: tabular or json', 'tabular')
175
+ .option('-o, --output <file>', 'write output to file')
176
+ .option('--exclude-dir <dirs>', 'directories to skip (comma-separated)', 'node_modules,.git,dist,vendor,build,coverage,target')
177
+ .option('--ignore-pattern <pattern>', 'gitignore-style pattern to ignore', collectOption, [])
178
+ .option('--no-gitignore', 'disable .gitignore respect')
179
+ .option('--max-projects <n>', 'maximum nested project summaries to show', '25')
180
+ .option('--quiet', 'show only the classification summary')
181
+ .option('--full', 'show the full description report')
182
+ .option('--ci', 'ASCII-only output, no colors');
183
+ describe.action(async (directories, _opts, command) => {
184
+ try {
185
+ const options = getOptions(command);
186
+ const output = await describeDirectories(directories ?? [], options);
187
+ await emit(output.endsWith('\n') ? output : `${output}\n`, options);
188
+ }
189
+ catch (err) {
190
+ const error = err;
191
+ await writeStream(process.stderr, `Error: ${error.message}\n`);
192
+ process.exit(1);
193
+ }
194
+ });
195
+ }
124
196
  //# sourceMappingURL=command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/workspace/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC,WAAW,EAAE,CAAC;AAGjB,SAAS,aAAa,CAAC,KAAa,EAAE,WAAqB,EAAE;IAC3D,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,UAAU,CAAC,OAAgB;IAClC,OAAO,6BAA6B,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,MAAc,EAAE,OAAgC;IAClE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IACD,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAyB,EAAE,QAAgB;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnE,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAoD;IACnF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CACR,SAAS,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,gBAAgB,CACpJ,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CACR,cAAc,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,QAAQ,CAClH,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,0BAA0B,CAAC,MAA+D;IACjG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,uDAAuD,CAAC,CAAC;IAEpH,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,kFAAkF,CAAC,CAAC;IACvJ,OAAO;SACJ,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,CAAC;SACnE,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;SACrD,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,EAAE,qDAAqD,CAAC;SAC9H,MAAM,CAAC,4BAA4B,EAAE,mCAAmC,EAAE,aAAa,EAAE,EAAE,CAAC;SAC5F,MAAM,CAAC,yBAAyB,EAAE,iCAAiC,EAAE,IAAI,CAAC;SAC1E,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;SACtD,MAAM,CAAC,WAAW,EAAE,oBAAoB,CAAC;SACzC,MAAM,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;IAE1D,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,KAA8B,EAAE,OAAgB,EAAE,EAAE;QACrG,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE;YAC5E,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACrF,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,WAAW,EAAE,OAAO,CAAC,SAAS,KAAK,KAAK;YACxC,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;YAC9D,WAAW,EAAE,OAAO,CAAC,IAAI,KAAK,KAAK;YACnC,gBAAgB,EAAE,OAAO,CAAC,SAAS,KAAK,KAAK;YAC7C,iBAAiB,EAAE,OAAO,CAAC,UAAU,KAAK,KAAK;SAChD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS;YACzC,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACjC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,oEAAoE,CAAC,CAAC;IAC7I,SAAS;SACN,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,CAAC;SACnE,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;SACrD,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,EAAE,qDAAqD,CAAC;SAC9H,MAAM,CAAC,4BAA4B,EAAE,mCAAmC,EAAE,aAAa,EAAE,EAAE,CAAC;SAC5F,MAAM,CAAC,yBAAyB,EAAE,iCAAiC,EAAE,IAAI,CAAC;SAC1E,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;SACtD,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,EAAE,IAAI,CAAC;SAC/D,MAAM,CAAC,2BAA2B,EAAE,4DAA4D,EAAE,IAAI,CAAC;SACvG,MAAM,CAAC,oBAAoB,EAAE,oDAAoD,CAAC,CAAC;IAEtF,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,KAA8B,EAAE,OAAgB,EAAE,EAAE;QACvG,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE;YACvF,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACrF,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,WAAW,EAAE,OAAO,CAAC,SAAS,KAAK,KAAK;YACxC,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;YAC9D,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;YAChD,iBAAiB,EAAE,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAClE,eAAe,EAAE,OAAO,CAAC,eAAe,KAAK,IAAI;SAClD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS;YACzC,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC;YACpC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/workspace/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CAAC,WAAW,EAAE,CAAC;AAGjB,SAAS,aAAa,CAAC,KAAa,EAAE,WAAqB,EAAE;IAC3D,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,UAAU,CAAC,OAAgB;IAClC,OAAO,6BAA6B,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,MAAc,EAAE,OAAgC;IAClE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IACD,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAyB,EAAE,QAAgB;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAyB,EAAE,QAAgB;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,WAAqB,EAAE,OAAgC;IACxF,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvD,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACrF,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,WAAW,EAAE,OAAO,CAAC,SAAS,KAAK,KAAK;YACxC,WAAW,EAAE,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SAC1D,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,0BAA0B,CAAC,MAAM,EAAE;QACzE,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI;QAC7B,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI;KAC5B,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAoD;IACnF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CACR,SAAS,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,gBAAgB,CACpJ,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CACR,cAAc,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,QAAQ,CAClH,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,0BAA0B,CAAC,MAA+D;IACjG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,uDAAuD,CAAC,CAAC;IAEpH,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,kEAAkE,CAAC,CAAC;IACzI,QAAQ;SACL,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,EAAE,SAAS,CAAC;SACtE,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;SACrD,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,EAAE,qDAAqD,CAAC;SAC9H,MAAM,CAAC,4BAA4B,EAAE,mCAAmC,EAAE,aAAa,EAAE,EAAE,CAAC;SAC5F,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;SACtD,MAAM,CAAC,oBAAoB,EAAE,0CAA0C,EAAE,IAAI,CAAC;SAC9E,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC;SACzD,MAAM,CAAC,QAAQ,EAAE,kCAAkC,CAAC;SACpD,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IAElD,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,KAA8B,EAAE,OAAgB,EAAE,EAAE;QACtG,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,kFAAkF,CAAC,CAAC;IACvJ,OAAO;SACJ,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,CAAC;SACnE,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;SACrD,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,EAAE,qDAAqD,CAAC;SAC9H,MAAM,CAAC,4BAA4B,EAAE,mCAAmC,EAAE,aAAa,EAAE,EAAE,CAAC;SAC5F,MAAM,CAAC,yBAAyB,EAAE,iCAAiC,EAAE,IAAI,CAAC;SAC1E,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;SACtD,MAAM,CAAC,WAAW,EAAE,oBAAoB,CAAC;SACzC,MAAM,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;IAE1D,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,KAA8B,EAAE,OAAgB,EAAE,EAAE;QACrG,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE;YAC5E,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACrF,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,WAAW,EAAE,OAAO,CAAC,SAAS,KAAK,KAAK;YACxC,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;YAC9D,WAAW,EAAE,OAAO,CAAC,IAAI,KAAK,KAAK;YACnC,gBAAgB,EAAE,OAAO,CAAC,SAAS,KAAK,KAAK;YAC7C,iBAAiB,EAAE,OAAO,CAAC,UAAU,KAAK,KAAK;SAChD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS;YACzC,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACjC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,oEAAoE,CAAC,CAAC;IAC7I,SAAS;SACN,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,CAAC;SACnE,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;SACrD,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,EAAE,qDAAqD,CAAC;SAC9H,MAAM,CAAC,4BAA4B,EAAE,mCAAmC,EAAE,aAAa,EAAE,EAAE,CAAC;SAC5F,MAAM,CAAC,yBAAyB,EAAE,iCAAiC,EAAE,IAAI,CAAC;SAC1E,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;SACtD,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,EAAE,IAAI,CAAC;SAC/D,MAAM,CAAC,2BAA2B,EAAE,4DAA4D,EAAE,IAAI,CAAC;SACvG,MAAM,CAAC,oBAAoB,EAAE,oDAAoD,CAAC,CAAC;IAEtF,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,KAA8B,EAAE,OAAgB,EAAE,EAAE;QACvG,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE;YACvF,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACrF,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,WAAW,EAAE,OAAO,CAAC,SAAS,KAAK,KAAK;YACxC,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;YAC9D,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;YAChD,iBAAiB,EAAE,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAClE,eAAe,EAAE,OAAO,CAAC,eAAe,KAAK,IAAI;SAClD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS;YACzC,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC;YACpC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,WAAW,CAAC,8EAA8E,CAAC,CAAC;IAC1J,QAAQ;SACL,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,EAAE,SAAS,CAAC;SACtE,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;SACrD,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,EAAE,qDAAqD,CAAC;SAC9H,MAAM,CAAC,4BAA4B,EAAE,mCAAmC,EAAE,aAAa,EAAE,EAAE,CAAC;SAC5F,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;SACtD,MAAM,CAAC,oBAAoB,EAAE,0CAA0C,EAAE,IAAI,CAAC;SAC9E,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC;SACzD,MAAM,CAAC,QAAQ,EAAE,kCAAkC,CAAC;SACpD,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IAElD,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAiC,EAAE,KAA8B,EAAE,OAAgB,EAAE,EAAE;QAC5G,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,WAAW,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,OAAO,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,GAAY,CAAC;YAC3B,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { WorkspaceDescription } from './types.js';
2
+ export interface FormatWorkspaceDescriptionOptions {
3
+ format?: 'tabular' | 'json';
4
+ quiet?: boolean;
5
+ full?: boolean;
6
+ }
7
+ export declare function formatWorkspaceDescription(result: WorkspaceDescription, options?: FormatWorkspaceDescriptionOptions): string;
@@ -0,0 +1,85 @@
1
+ import { formatBytes } from '../utils.js';
2
+ const CATEGORY_ORDER = [
3
+ 'code',
4
+ 'office',
5
+ 'prose',
6
+ 'data',
7
+ 'config',
8
+ 'image',
9
+ 'binary',
10
+ 'other',
11
+ ];
12
+ function formatCategoryList(result) {
13
+ return CATEGORY_ORDER
14
+ .map((category) => {
15
+ const entry = result.composition.byCategory[category];
16
+ return entry.files > 0 ? `${entry.pct}% ${category}` : '';
17
+ })
18
+ .filter(Boolean)
19
+ .join(', ');
20
+ }
21
+ function formatSignals(result) {
22
+ const markers = [
23
+ ...result.signals.manifests.map((marker) => marker.path),
24
+ ...result.signals.markers.map((marker) => marker.path),
25
+ ];
26
+ const frameworks = result.signals.frameworks.length > 0
27
+ ? ` (${result.signals.frameworks.join(', ')})`
28
+ : '';
29
+ const packageManager = result.signals.packageManager ? ` package-manager:${result.signals.packageManager}` : '';
30
+ return markers.length > 0
31
+ ? `${markers.slice(0, 8).join(', ')}${frameworks}${packageManager}`
32
+ : `none${frameworks}${packageManager}`;
33
+ }
34
+ function formatFull(result) {
35
+ const lines = [
36
+ result.classification.summary,
37
+ `Root: ${result.rootDir}`,
38
+ `Kind: ${result.classification.primaryType} (${result.classification.confidence})`,
39
+ `Files: ${result.composition.totals.files}, ${formatBytes(result.composition.totals.bytes)}`,
40
+ `Composition: ${formatCategoryList(result) || 'empty'}`,
41
+ `Signals: ${formatSignals(result)}`,
42
+ ];
43
+ if (result.projects.length > 0) {
44
+ lines.push('Projects:');
45
+ for (const project of result.projects) {
46
+ const suffix = [
47
+ project.kinds.join(', '),
48
+ project.frameworks.length > 0 ? project.frameworks.join(', ') : '',
49
+ project.packageManager ? `pm:${project.packageManager}` : '',
50
+ ].filter(Boolean).join(' - ');
51
+ lines.push(` ${project.path}: ${suffix}`);
52
+ }
53
+ if (result.projectSummary.truncated) {
54
+ lines.push(` ... ${result.projectSummary.total - result.projectSummary.shown} more`);
55
+ }
56
+ }
57
+ if (result.recommendedCommands.length > 0) {
58
+ lines.push(`Recommended: ${result.recommendedCommands.join('; ')}`);
59
+ }
60
+ return lines.join('\n');
61
+ }
62
+ function formatCompact(result) {
63
+ const files = `${result.composition.totals.files} files`;
64
+ const bytes = formatBytes(result.composition.totals.bytes);
65
+ const lines = [
66
+ `${result.classification.summary} - ${files} - ${bytes}`,
67
+ ` composition: ${formatCategoryList(result) || 'empty'}`,
68
+ ` signals: ${formatSignals(result)}`,
69
+ ];
70
+ if (result.projectSummary.total > 0) {
71
+ const suffix = result.projectSummary.truncated ? `, ${result.projectSummary.total - result.projectSummary.shown} hidden` : '';
72
+ lines.push(` projects: ${result.projectSummary.shown}/${result.projectSummary.total}${suffix}`);
73
+ }
74
+ return lines.join('\n');
75
+ }
76
+ export function formatWorkspaceDescription(result, options = {}) {
77
+ if (options.format === 'json')
78
+ return JSON.stringify(result, null, 2);
79
+ if (options.quiet)
80
+ return result.classification.summary;
81
+ if (options.full)
82
+ return formatFull(result);
83
+ return formatCompact(result);
84
+ }
85
+ //# sourceMappingURL=describe-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe-output.js","sourceRoot":"","sources":["../../../src/workspace/describe-output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { WorkspaceDescription } from './types.js';
2
+ export interface DescribeWorkspaceOptions {
3
+ excludeDir?: string[];
4
+ noGitignore?: boolean;
5
+ ignorePatterns?: string[];
6
+ overlayIgnorePatterns?: string[];
7
+ maxProjects?: number;
8
+ }
9
+ export declare function describeWorkspace(rootDir: string, options?: DescribeWorkspaceOptions): Promise<WorkspaceDescription>;