@open-agent-toolkit/cli 0.1.26 → 0.1.28

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 (27) hide show
  1. package/assets/docs/cli-utilities/tool-packs.md +6 -5
  2. package/assets/public-package-versions.json +4 -4
  3. package/assets/skills/oat-docs-bootstrap/SKILL.md +59 -82
  4. package/assets/templates/docs-app-fuma/app/[[...slug]]/page.tsx +16 -2
  5. package/assets/templates/docs-app-fuma/app/layout.tsx +6 -5
  6. package/assets/templates/docs-app-fuma/components/search.tsx +46 -0
  7. package/assets/templates/docs-app-fuma/docs/contributing.md +4 -4
  8. package/assets/templates/docs-app-fuma/docs/getting-started.md +4 -4
  9. package/assets/templates/docs-app-fuma/docs/index.md +0 -2
  10. package/assets/templates/docs-app-fuma/next.config.js +0 -2
  11. package/assets/templates/docs-app-fuma/package.json.template +1 -1
  12. package/assets/templates/docs-app-mkdocs/package.json.template +1 -1
  13. package/dist/commands/docs/init/docs-commands.d.ts +8 -0
  14. package/dist/commands/docs/init/docs-commands.d.ts.map +1 -0
  15. package/dist/commands/docs/init/docs-commands.js +25 -0
  16. package/dist/commands/docs/init/index.d.ts.map +1 -1
  17. package/dist/commands/docs/init/index.js +8 -7
  18. package/dist/commands/docs/init/resolve-options.d.ts +7 -2
  19. package/dist/commands/docs/init/resolve-options.d.ts.map +1 -1
  20. package/dist/commands/docs/init/resolve-options.js +34 -2
  21. package/dist/commands/docs/init/scaffold.d.ts +8 -1
  22. package/dist/commands/docs/init/scaffold.d.ts.map +1 -1
  23. package/dist/commands/docs/init/scaffold.js +75 -13
  24. package/dist/commands/init/tools/index.d.ts +10 -0
  25. package/dist/commands/init/tools/index.d.ts.map +1 -1
  26. package/dist/commands/init/tools/index.js +239 -81
  27. package/package.json +2 -2
@@ -2,7 +2,7 @@
2
2
  "name": "{{PACKAGE_NAME}}",
3
3
  "type": "module",
4
4
  "private": true,
5
- "version": "0.1.0",
5
+ "version": "0.1.0"{{PACKAGE_MANAGER_FIELD}},
6
6
  "description": "{{SITE_DESCRIPTION}}",
7
7
  "scripts": {
8
8
  "predev": "fumadocs-mdx && {{GENERATE_INDEX_CMD}}",
@@ -2,7 +2,7 @@
2
2
  "name": "{{PACKAGE_NAME}}",
3
3
  "type": "module",
4
4
  "private": true,
5
- "version": "0.1.0",
5
+ "version": "0.1.0"{{PACKAGE_MANAGER_FIELD}},
6
6
  "description": "MkDocs Material documentation for {{SITE_NAME}}.",
7
7
  "scripts": {
8
8
  "docs:dev": "mkdocs serve",
@@ -0,0 +1,8 @@
1
+ import type { DocsRepoShape } from './resolve-options.js';
2
+ export interface DocsCommands {
3
+ install: string;
4
+ dev: string;
5
+ build: string;
6
+ }
7
+ export declare function buildDocsCommands(repoShape: DocsRepoShape, targetDir: string, appName: string): DocsCommands;
8
+ //# sourceMappingURL=docs-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-commands.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/init/docs-commands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,YAAY,CAsBd"}
@@ -0,0 +1,25 @@
1
+ import { normalize } from 'node:path';
2
+ function isRootTarget(targetDir) {
3
+ return targetDir.trim() === '' || normalize(targetDir) === '.';
4
+ }
5
+ export function buildDocsCommands(repoShape, targetDir, appName) {
6
+ if (repoShape === 'monorepo') {
7
+ return {
8
+ install: 'pnpm install',
9
+ dev: `pnpm --filter ${appName} dev`,
10
+ build: `pnpm --filter ${appName} build`,
11
+ };
12
+ }
13
+ if (isRootTarget(targetDir)) {
14
+ return {
15
+ install: 'pnpm install',
16
+ dev: 'pnpm dev',
17
+ build: 'pnpm build',
18
+ };
19
+ }
20
+ return {
21
+ install: `cd ${targetDir} && pnpm install`,
22
+ dev: `cd ${targetDir} && pnpm dev`,
23
+ build: `cd ${targetDir} && pnpm build`,
24
+ };
25
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EAElB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAE5C,OAAO,EAIL,KAAK,uBAAuB,EAK7B,MAAM,mBAAmB,CAAC;AAkB3B,UAAU,oBAAoB;IAC5B,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC;IAC9E,gBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B,eAAe,EAAE,CAAC,CAAC,SAAS,MAAM,EAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAC1B,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,WAAW,EAAE,CACX,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,uBAAuB,EAChC,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,qBAAqB,EAAE,CACrB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1E;AAyGD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAc7E;AA+GD,wBAAgB,qBAAqB,CACnC,SAAS,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAC5C,OAAO,CAuCT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EAElB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAG5C,OAAO,EAIL,KAAK,uBAAuB,EAK7B,MAAM,mBAAmB,CAAC;AAmB3B,UAAU,oBAAoB;IAC5B,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC;IAC9E,gBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B,eAAe,EAAE,CAAC,CAAC,SAAS,MAAM,EAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAC1B,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,WAAW,EAAE,CACX,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,uBAAuB,EAChC,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,qBAAqB,EAAE,CACrB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1E;AAyGD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAc7E;AAoHD,wBAAgB,qBAAqB,CACnC,SAAS,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAC5C,OAAO,CA6CT"}
@@ -5,6 +5,7 @@ import { readGlobalOptions } from '../../shared/shared.utils.js';
5
5
  import { readOatConfig, writeOatConfig, } from '../../../config/oat-config.js';
6
6
  import { resolveAssetsRoot } from '../../../fs/assets.js';
7
7
  import { Command, Option } from 'commander';
8
+ import { buildDocsCommands } from './docs-commands.js';
8
9
  import { DEFAULT_DOCS_REPO_SHAPE_DEPENDENCIES, detectDocsRepoShape, getDefaultDocsAppName, resolveDocsInitOptions, } from './resolve-options.js';
9
10
  import { patchRootPackageJson, } from './root-package.js';
10
11
  import { scaffoldDocsApp } from './scaffold.js';
@@ -115,6 +116,7 @@ async function runDocsInitCommand(context, options, dependencies) {
115
116
  acceptDefaults: options.yes ?? false,
116
117
  providedFramework: options.framework,
117
118
  providedAppName: options.appName,
119
+ providedSiteName: options.siteName,
118
120
  providedTargetDir: options.targetDir,
119
121
  providedSiteDescription: options.description,
120
122
  providedLint: options.lint,
@@ -166,13 +168,11 @@ async function runDocsInitCommand(context, options, dependencies) {
166
168
  if (!context.json) {
167
169
  context.logger.info('');
168
170
  context.logger.info('Next steps:');
169
- if (resolved.repoShape === 'single-package') {
170
- context.logger.info(` cd ${resolved.targetDir} && pnpm install`);
171
- context.logger.info(' pnpm build');
172
- }
173
- else {
174
- context.logger.info(' pnpm install');
175
- context.logger.info(` pnpm --filter ${resolved.appName} build`);
171
+ const commands = buildDocsCommands(resolved.repoShape, resolved.targetDir, resolved.appName);
172
+ context.logger.info(` ${commands.install}`);
173
+ context.logger.info(` ${commands.dev}`);
174
+ context.logger.info(` ${commands.build}`);
175
+ if (resolved.repoShape === 'monorepo') {
176
176
  const defaultName = getDefaultDocsAppName(context.cwd, resolved.repoShape);
177
177
  if (resolved.appName !== defaultName) {
178
178
  context.logger.info('');
@@ -205,6 +205,7 @@ export function createDocsInitCommand(overrides = {}) {
205
205
  'mkdocs',
206
206
  ]))
207
207
  .addOption(new Option('--app-name <name>', 'Docs app name'))
208
+ .addOption(new Option('--site-name <name>', 'Display title (distinct from --app-name)'))
208
209
  .addOption(new Option('--target-dir <path>', 'Target directory for the docs app'))
209
210
  .addOption(new Option('--description <text>', 'Site description'))
210
211
  .addOption(new Option('--lint <mode>', 'Markdown lint mode').choices([
@@ -1,5 +1,6 @@
1
1
  import type { PromptContext, SelectChoice } from '../../shared/shared.prompts.js';
2
- export type DocsRepoShape = 'monorepo' | 'single-package';
2
+ export type DocsRepoShape = 'monorepo' | 'single-package' | 'nested-standalone';
3
+ export type DocsDetectedRepoShape = Exclude<DocsRepoShape, 'nested-standalone'>;
3
4
  export type DocsFramework = 'fumadocs' | 'mkdocs';
4
5
  export type DocsLintMode = 'none' | 'markdownlint-cli2';
5
6
  export type DocsFormatMode = 'oxfmt' | 'none';
@@ -8,6 +9,7 @@ export interface DocsInitResolvedOptions {
8
9
  repoShape: DocsRepoShape;
9
10
  framework: DocsFramework;
10
11
  appName: string;
12
+ siteName: string;
11
13
  targetDir: string;
12
14
  siteDescription: string;
13
15
  lint: DocsLintMode;
@@ -21,6 +23,7 @@ export interface ResolveDocsInitOptionsInput {
21
23
  acceptDefaults: boolean;
22
24
  providedFramework?: DocsFramework;
23
25
  providedAppName?: string;
26
+ providedSiteName?: string;
24
27
  providedTargetDir?: string;
25
28
  providedSiteDescription?: string;
26
29
  providedLint?: DocsLintMode;
@@ -36,8 +39,10 @@ export interface DocsRepoShapeDependencies {
36
39
  }
37
40
  export declare function getDefaultDocsAppName(repoRoot: string, repoShape: DocsRepoShape): string;
38
41
  export declare function getDefaultDocsTargetDir(repoShape: DocsRepoShape, appName: string): string;
39
- export declare function detectDocsRepoShape(repoRoot: string, dependencies: DocsRepoShapeDependencies): Promise<DocsRepoShape>;
42
+ export declare function humanizeAppName(appName: string): string;
43
+ export declare function detectDocsRepoShape(repoRoot: string, dependencies: DocsRepoShapeDependencies): Promise<DocsDetectedRepoShape>;
40
44
  export declare function getTemplateDir(framework: DocsFramework): string;
45
+ export declare function resolveEffectiveDocsShape(repoShape: DocsRepoShape, framework: DocsFramework, repoRoot: string, targetDir: string): DocsRepoShape;
41
46
  export declare function resolveDocsInitOptions(input: ResolveDocsInitOptionsInput): Promise<DocsInitResolvedOptions | null>;
42
47
  export declare const DEFAULT_DOCS_REPO_SHAPE_DEPENDENCIES: DocsRepoShapeDependencies;
43
48
  //# sourceMappingURL=resolve-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-options.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/init/resolve-options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACb,MAAM,iCAAiC,CAAC;AAGzC,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,mBAAmB,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B,eAAe,EAAE,CAAC,CAAC,SAAS,MAAM,EAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAC1B,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvE;AAiBD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,aAAa,GACvB,MAAM,CAMR;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,GACd,MAAM,CAMR;AAoBD,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,yBAAyB,GACtC,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAE/D;AAED,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAgFzC;AAED,eAAO,MAAM,oCAAoC,EAAE,yBAOlD,CAAC"}
1
+ {"version":3,"file":"resolve-options.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/init/resolve-options.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { basename, join } from 'node:path';
1
+ import { basename, isAbsolute, join, relative, resolve } from 'node:path';
2
2
  import { dirExists, fileExists } from '../../../fs/io.js';
3
3
  const FRAMEWORK_CHOICES = [
4
4
  { label: 'Fumadocs (Next.js + MDX, static export)', value: 'fumadocs' },
@@ -24,6 +24,13 @@ export function getDefaultDocsTargetDir(repoShape, appName) {
24
24
  }
25
25
  return appName;
26
26
  }
27
+ export function humanizeAppName(appName) {
28
+ return appName
29
+ .split(/[-_]/g)
30
+ .filter(Boolean)
31
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
32
+ .join(' ');
33
+ }
27
34
  function hasWorkspaceConfig(rawPackageJson) {
28
35
  try {
29
36
  const parsed = JSON.parse(rawPackageJson);
@@ -57,6 +64,21 @@ export async function detectDocsRepoShape(repoRoot, dependencies) {
57
64
  export function getTemplateDir(framework) {
58
65
  return framework === 'fumadocs' ? 'docs-app-fuma' : 'docs-app-mkdocs';
59
66
  }
67
+ export function resolveEffectiveDocsShape(repoShape, framework, repoRoot, targetDir) {
68
+ if (repoShape !== 'single-package' || framework !== 'fumadocs') {
69
+ return repoShape;
70
+ }
71
+ if (!targetDir.trim()) {
72
+ return repoShape;
73
+ }
74
+ const targetPath = resolve(repoRoot, targetDir);
75
+ const relativeTarget = relative(resolve(repoRoot), targetPath);
76
+ const isRepoSubdirectory = relativeTarget !== '' &&
77
+ relativeTarget !== '.' &&
78
+ !relativeTarget.startsWith('..') &&
79
+ !isAbsolute(relativeTarget);
80
+ return isRepoSubdirectory ? 'nested-standalone' : repoShape;
81
+ }
60
82
  export async function resolveDocsInitOptions(input) {
61
83
  const ctx = { interactive: input.interactive };
62
84
  const framework = input.providedFramework ||
@@ -74,6 +96,14 @@ export async function resolveDocsInitOptions(input) {
74
96
  if (!appName) {
75
97
  return null;
76
98
  }
99
+ const defaultSiteName = humanizeAppName(appName);
100
+ const siteName = input.providedSiteName ??
101
+ (input.interactive && !input.acceptDefaults
102
+ ? await input.inputWithDefault('Site name', defaultSiteName, ctx)
103
+ : defaultSiteName);
104
+ if (siteName === null) {
105
+ return null;
106
+ }
77
107
  const defaultTargetDir = getDefaultDocsTargetDir(input.repoShape, appName);
78
108
  const targetDir = input.providedTargetDir?.trim() ||
79
109
  (input.interactive && !input.acceptDefaults
@@ -100,11 +130,13 @@ export async function resolveDocsInitOptions(input) {
100
130
  if (!format) {
101
131
  return null;
102
132
  }
133
+ const repoShape = resolveEffectiveDocsShape(input.repoShape, framework, input.repoRoot, targetDir);
103
134
  return {
104
135
  repoRoot: input.repoRoot,
105
- repoShape: input.repoShape,
136
+ repoShape,
106
137
  framework,
107
138
  appName,
139
+ siteName,
108
140
  targetDir,
109
141
  siteDescription,
110
142
  lint,
@@ -13,7 +13,14 @@ export interface OatDepContext {
13
13
  localPackages: Set<string>;
14
14
  oatPackageVersions: Record<string, string>;
15
15
  }
16
+ type MaybePromise<T> = T | Promise<T>;
17
+ export interface ScaffoldDocsAppDependencies {
18
+ detectPnpmVersion: () => MaybePromise<string | null | undefined>;
19
+ hasInheritedPackageManager: (repoRoot: string, appRoot: string) => MaybePromise<boolean>;
20
+ }
21
+ export declare const PNPM_FALLBACK = "10.13.1";
16
22
  export declare function detectIsOatRepo(repoRoot: string): Promise<boolean>;
17
23
  export declare function resolveOatDepContext(repoRoot: string, assetsRoot: string): Promise<OatDepContext>;
18
- export declare function scaffoldDocsApp(options: ScaffoldDocsAppOptions): Promise<ScaffoldDocsAppResult>;
24
+ export declare function scaffoldDocsApp(options: ScaffoldDocsAppOptions, overrides?: Partial<ScaffoldDocsAppDependencies>): Promise<ScaffoldDocsAppResult>;
25
+ export {};
19
26
  //# sourceMappingURL=scaffold.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/init/scaffold.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAIjE,OAAO,KAAK,EAGV,uBAAuB,EAExB,MAAM,mBAAmB,CAAC;AA+E3B,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,EAAE,sBAAsB,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAWD,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOxE;AAgDD,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAaxB;AA4ID,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAoChC"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/init/scaffold.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAKjE,OAAO,KAAK,EAGV,uBAAuB,EAExB,MAAM,mBAAmB,CAAC;AAmF3B,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,EAAE,sBAAsB,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,MAAM,YAAY,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACjE,0BAA0B,EAAE,CAC1B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,KACZ,YAAY,CAAC,OAAO,CAAC,CAAC;CAC5B;AAUD,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOxE;AAgDD,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAaxB;AAgOD,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,EAC/B,SAAS,GAAE,OAAO,CAAC,2BAA2B,CAAM,GACnD,OAAO,CAAC,qBAAqB,CAAC,CAkDhC"}
@@ -1,7 +1,8 @@
1
1
  import { readdir, readFile, writeFile } from 'node:fs/promises';
2
- import { basename, dirname, join } from 'node:path';
2
+ import { basename, dirname, isAbsolute, join, relative, resolve, } from 'node:path';
3
3
  import { dirExists, ensureDir, fileExists } from '../../../fs/io.js';
4
4
  import { OAT_VERSION } from '../../../shared/oat-version.js';
5
+ import { buildDocsCommands } from './docs-commands.js';
5
6
  import { getTemplateDir } from './resolve-options.js';
6
7
  const MKDOCS_TEMPLATE_FILES = [
7
8
  { source: '.gitignore', destination: '.gitignore' },
@@ -38,6 +39,10 @@ const FUMA_TEMPLATE_FILES = [
38
39
  source: join('app', 'layout.tsx'),
39
40
  destination: join('app', 'layout.tsx'),
40
41
  },
42
+ {
43
+ source: join('components', 'search.tsx'),
44
+ destination: join('components', 'search.tsx'),
45
+ },
41
46
  {
42
47
  source: join('app', '[[...slug]]', 'page.tsx'),
43
48
  destination: join('app', '[[...slug]]', 'page.tsx'),
@@ -74,6 +79,7 @@ const OAT_DEP_PACKAGES = [
74
79
  ];
75
80
  const DEFAULT_OAT_PUBLISHED_VERSION = OAT_VERSION;
76
81
  const PUBLIC_PACKAGE_VERSIONS_FILE = 'public-package-versions.json';
82
+ export const PNPM_FALLBACK = '10.13.1';
77
83
  export async function detectIsOatRepo(repoRoot) {
78
84
  for (const pkg of OAT_DEP_PACKAGES) {
79
85
  if (!(await fileExists(join(repoRoot, 'packages', pkg, 'package.json')))) {
@@ -128,13 +134,6 @@ export async function resolveOatDepContext(repoRoot, assetsRoot) {
128
134
  };
129
135
  return { isOatRepo, localPackages, oatPackageVersions };
130
136
  }
131
- function humanizeAppName(appName) {
132
- return appName
133
- .split(/[-_]/g)
134
- .filter(Boolean)
135
- .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
136
- .join(' ');
137
- }
138
137
  function buildDevDependencies(lint, format) {
139
138
  const entries = [];
140
139
  if (lint === 'markdownlint-cli2') {
@@ -170,17 +169,75 @@ function oatDepVersion(depContext, packageName) {
170
169
  }
171
170
  return `^${depContext.oatPackageVersions[packageName] ?? DEFAULT_OAT_PUBLISHED_VERSION}`;
172
171
  }
173
- function renderTemplate(template, options, depContext) {
172
+ function detectPnpmVersionFromUserAgent() {
173
+ const userAgent = process.env.npm_config_user_agent ?? '';
174
+ return userAgent.match(/\bpnpm\/([^\s]+)/)?.[1] ?? null;
175
+ }
176
+ function isDescendantOrSame(root, candidate) {
177
+ const relativePath = relative(root, candidate);
178
+ return (relativePath === '' ||
179
+ (!relativePath.startsWith('..') && !isAbsolute(relativePath)));
180
+ }
181
+ async function packageJsonHasPackageManager(packageJsonPath) {
182
+ if (!(await fileExists(packageJsonPath))) {
183
+ return false;
184
+ }
185
+ try {
186
+ const parsed = JSON.parse(await readFile(packageJsonPath, 'utf8'));
187
+ return (typeof parsed.packageManager === 'string' &&
188
+ parsed.packageManager.trim().length > 0);
189
+ }
190
+ catch {
191
+ return false;
192
+ }
193
+ }
194
+ async function hasInheritedPackageManager(repoRoot, appRoot) {
195
+ const root = resolve(repoRoot);
196
+ let current = resolve(dirname(appRoot));
197
+ while (isDescendantOrSame(root, current)) {
198
+ if (await packageJsonHasPackageManager(join(current, 'package.json'))) {
199
+ return true;
200
+ }
201
+ if (current === root) {
202
+ break;
203
+ }
204
+ current = dirname(current);
205
+ }
206
+ return false;
207
+ }
208
+ const DEFAULT_SCAFFOLD_DEPENDENCIES = {
209
+ detectPnpmVersion: detectPnpmVersionFromUserAgent,
210
+ hasInheritedPackageManager,
211
+ };
212
+ function normalizePnpmVersion(version) {
213
+ const trimmed = version?.trim();
214
+ return trimmed && trimmed.length > 0 ? trimmed : PNPM_FALLBACK;
215
+ }
216
+ async function buildPackageManagerField(options, appRoot, dependencies) {
217
+ if (await dependencies.hasInheritedPackageManager(options.repoRoot, appRoot)) {
218
+ return '';
219
+ }
220
+ const version = normalizePnpmVersion(await dependencies.detectPnpmVersion());
221
+ return `,\n "packageManager": ${JSON.stringify(`pnpm@${version}`)}`;
222
+ }
223
+ function renderTemplate(template, options, depContext, packageManagerField) {
174
224
  const repoName = basename(options.repoRoot);
175
- const siteName = `${humanizeAppName(options.appName)} Documentation`;
225
+ const commands = buildDocsCommands(options.repoShape, options.targetDir, options.appName);
176
226
  const replacements = {
177
227
  '{{APP_NAME}}': options.appName,
178
228
  '{{PACKAGE_NAME}}': options.appName,
179
- '{{SITE_NAME}}': siteName,
229
+ '{{SITE_NAME}}': options.siteName,
180
230
  '{{SITE_DESCRIPTION}}': options.siteDescription,
231
+ '{{INSTALL_CMD}}': commands.install,
232
+ '{{DEV_CMD}}': commands.dev,
233
+ '{{BUILD_CMD}}': commands.build,
234
+ '{{PACKAGE_MANAGER_FIELD}}': packageManagerField,
181
235
  '{{DOCS_LINT_SCRIPT}}': options.lint === 'markdownlint-cli2'
182
236
  ? "markdownlint-cli2 'docs/**/*.md'"
183
237
  : "echo 'docs lint disabled'",
238
+ '{{LINT_PHRASE}}': options.lint === 'markdownlint-cli2'
239
+ ? 'formatting and linting'
240
+ : 'formatting',
184
241
  '{{DOCS_FORMAT_SCRIPT}}': options.format === 'oxfmt'
185
242
  ? "oxfmt 'docs/**/*.md'"
186
243
  : "echo 'docs formatting disabled'",
@@ -223,23 +280,28 @@ async function ensureTargetWritable(appRoot) {
223
280
  throw new Error(`Docs app target directory is not empty: ${appRoot}`);
224
281
  }
225
282
  }
226
- export async function scaffoldDocsApp(options) {
283
+ export async function scaffoldDocsApp(options, overrides = {}) {
227
284
  const appRoot = join(options.repoRoot, options.targetDir);
228
285
  const templateDir = getTemplateDir(options.framework);
229
286
  const templateRoot = join(options.assetsRoot, 'templates', templateDir);
230
287
  const frameworkConfig = FRAMEWORK_CONFIGS[options.framework];
231
288
  const createdFiles = [];
232
289
  const depContext = await resolveOatDepContext(options.repoRoot, options.assetsRoot);
290
+ const dependencies = {
291
+ ...DEFAULT_SCAFFOLD_DEPENDENCIES,
292
+ ...overrides,
293
+ };
233
294
  if (!(await fileExists(join(templateRoot, frameworkConfig.sentinelFile)))) {
234
295
  throw new Error(`Docs app templates not found under ${templateRoot}`);
235
296
  }
236
297
  await ensureTargetWritable(appRoot);
237
298
  await ensureDir(appRoot);
299
+ const packageManagerField = await buildPackageManagerField(options, appRoot, dependencies);
238
300
  for (const templateFile of frameworkConfig.templateFiles) {
239
301
  const source = join(templateRoot, templateFile.source);
240
302
  const destination = join(appRoot, templateFile.destination);
241
303
  const template = await readFile(source, 'utf8');
242
- const rendered = renderTemplate(template, options, depContext);
304
+ const rendered = renderTemplate(template, options, depContext, packageManagerField);
243
305
  await ensureDir(dirname(destination));
244
306
  await writeFile(destination, rendered, 'utf8');
245
307
  createdFiles.push(templateFile.destination);
@@ -52,6 +52,16 @@ export interface InitToolsDependencies {
52
52
  interface InitToolsRunMetadata {
53
53
  affectedScopes: ConcreteScope[];
54
54
  }
55
+ interface PackScopeChange {
56
+ pack: ToolPack;
57
+ scope: ConcreteScope;
58
+ }
59
+ /**
60
+ * Render a batch change summary (`+ pack@scope` adds / `- pack@scope` removes)
61
+ * for the interactive removal-confirmation gate. Pure for snapshot-friendly
62
+ * testing.
63
+ */
64
+ export declare function formatReconcileSummary(adds: PackScopeChange[], removes: PackScopeChange[]): string;
55
65
  export declare function consumeInitToolsRunMetadata(): InitToolsRunMetadata | null;
56
66
  interface PackScopeInfo {
57
67
  pack: ToolPack;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,YAAY,EAGlB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACL,KAAK,SAAS,EAIf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACpC,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAWrC,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AAEvC,KAAK,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AACvC,KAAK,iBAAiB,GAAG,YAAY,GAAG,MAAM,CAAC;AAC/C,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,OAAO,GACP,MAAM,GACN,WAAW,GACX,SAAS,GACT,oBAAoB,GACpB,UAAU,GACV,YAAY,CAAC;AAEjB,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,mBAAmB,EAAE,CAAC,CAAC,SAAS,MAAM,EACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAC/B,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACzB,eAAe,EAAE,CAAC,CAAC,SAAS,MAAM,EAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAC1B,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzE,WAAW,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzE,YAAY,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5E,gBAAgB,EAAE,CAChB,OAAO,EAAE,uBAAuB,KAC7B,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACrC,cAAc,EAAE,CACd,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC,wBAAwB,EAAE,CACxB,OAAO,EAAE,+BAA+B,KACrC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,eAAe,EAAE,CACf,OAAO,EAAE,sBAAsB,KAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC,iBAAiB,EAAE,CACjB,OAAO,EAAE,wBAAwB,KAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,iBAAiB,EAAE,CACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,OAAO,KACX,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;IAC/C,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,aAAa,EAAE,CACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EAAE,KACZ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACjD,cAAc,EAAE,CACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,KACjB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,iBAAiB,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,EAAE,CAAC;IACnD,qBAAqB,EAAE,CACrB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5E;AAUD,UAAU,oBAAoB;IAC5B,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAmKD,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,eAAe,EAAE,EACvB,OAAO,EAAE,eAAe,EAAE,GACzB,MAAM,CASR;AA4GD,wBAAgB,2BAA2B,IAAI,oBAAoB,GAAG,IAAI,CAIzE;AAmQD,UAAU,aAAa;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CA8CxE;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgdrB;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAErB;AAED,wBAAgB,sBAAsB,CACpC,SAAS,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC7C,OAAO,CA4BT"}