@farming-labs/docs 0.2.115 → 0.2.117

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 (70) hide show
  1. package/dist/{agent-5jyEosML.mjs → agent-CEZCaYto.mjs} +52 -7
  2. package/dist/{agent-Dlswu0Mm.mjs → agent-DGNTD-N6.mjs} +3 -3
  3. package/dist/{agent-evals-CnQC3W2a.mjs → agent-evals-CmeTjDMC.mjs} +3 -3
  4. package/dist/{agent-export-yilcRMg6.mjs → agent-export-DIKwVWYN.mjs} +11 -10
  5. package/dist/agent-skills-bundle.d.mts +1 -1
  6. package/dist/{agent-skills-progressive-disclosure-DL-q4JZo.mjs → agent-skills-progressive-disclosure-BDSjGGFd.mjs} +1 -1
  7. package/dist/{agent-skills-server-CF6iVTBR.d.mts → agent-skills-server-BWRJjIQG.d.mts} +2 -2
  8. package/dist/{agent-skills-server-Ddbf15pY.mjs → agent-skills-server-Ddm90WL6.mjs} +1 -1
  9. package/dist/agent-skills-vite.d.mts +3 -3
  10. package/dist/agent-skills-vite.mjs +1 -1
  11. package/dist/{agents-D5waM-jZ.mjs → agents-l8RtkFim.mjs} +10 -9
  12. package/dist/{analytics-CwXxM9oL.d.mts → analytics-R9c-Md4b.d.mts} +1 -1
  13. package/dist/api-reference-0XdEWya8.mjs +3033 -0
  14. package/dist/{authoring-CsR0sewh.mjs → authoring-CvsCmYuq.mjs} +4 -4
  15. package/dist/{authoring-mcp-BpwboE3k.mjs → authoring-mcp-C35lj3cI.mjs} +2 -2
  16. package/dist/browser.d.mts +3 -3
  17. package/dist/cli/index.mjs +75 -34
  18. package/dist/client/react.d.mts +1 -1
  19. package/dist/{cloud-Bvof6mET.mjs → cloud-DtmNQJg2.mjs} +3 -3
  20. package/dist/{cloud-ask-ai-C9dvEBpW.d.mts → cloud-ask-ai-DLyrydIR.d.mts} +1 -1
  21. package/dist/{codeblocks-C911CdyJ.mjs → codeblocks-DEcqNXve.mjs} +2 -2
  22. package/dist/{content-change-hydration-CDuohygf.d.mts → content-change-hydration-BWJNUIot.d.mts} +33 -5
  23. package/dist/{dev-Bx0JNglW.mjs → dev-Df77AKR1.mjs} +9 -24
  24. package/dist/docs-cloud-server.d.mts +2 -2
  25. package/dist/docs-cloud-server.mjs +1 -1
  26. package/dist/{doctor-DbsNvdb8.mjs → doctor-zNmt9s6j.mjs} +266 -17
  27. package/dist/{downgrade-BXmQMkMy.mjs → downgrade-C6DSsOO9.mjs} +2 -2
  28. package/dist/{feedback-DWVUMrxy.mjs → feedback-CNsQP2jY.mjs} +1 -1
  29. package/dist/{golden-evaluations-D49vhw5u.mjs → golden-evaluations-B1QDOzYj.mjs} +6 -2
  30. package/dist/index.d.mts +8 -8
  31. package/dist/index.mjs +5 -5
  32. package/dist/{init-CCV2eRNB.mjs → init-BXKzipSS.mjs} +3 -3
  33. package/dist/{mcp-D-1u1RBW.mjs → mcp-Bj3ZoEtt.mjs} +33 -19
  34. package/dist/mcp.d.mts +12 -4
  35. package/dist/mcp.mjs +50 -8
  36. package/dist/openapi-anOaQn9o.mjs +20 -0
  37. package/dist/openapi-diff-DKW3xkQU.mjs +461 -0
  38. package/dist/{openapi-mcp-D8NVpTW1.mjs → openapi-mcp-UF4Cx885.mjs} +43 -91
  39. package/dist/openapi-operations-DFpaqOqA.mjs +324 -0
  40. package/dist/openapi-sdk-DqRHPsCb.mjs +415 -0
  41. package/dist/openapi-source-CiKbUK71.mjs +37 -0
  42. package/dist/{package-version-Ci99L0yo.mjs → package-version-CTkii52k.mjs} +1 -1
  43. package/dist/{prompt-references-CV1zw72C.mjs → prompt-references-Cficetgk.mjs} +2 -2
  44. package/dist/{retrieval-digest-CBhsp9LK.d.mts → retrieval-digest-PD4fFy7P.d.mts} +2 -2
  45. package/dist/{review-BdM27yh7.mjs → review-CcplK9Hj.mjs} +9 -9
  46. package/dist/{robots-Bne9ODlC.mjs → robots-BPYWIGqD.mjs} +1 -1
  47. package/dist/{robots-D6VufwPn.mjs → robots-D4T3zZr_.mjs} +4 -4
  48. package/dist/{search-BCxmGlxh.mjs → search-BNmlDQJ2.mjs} +27 -11
  49. package/dist/server.d.mts +132 -9
  50. package/dist/server.mjs +12 -10
  51. package/dist/{sidebar-Bne72SU-.d.mts → sidebar-CGbvEPTX.d.mts} +1 -1
  52. package/dist/{sitemap-ChOEBnrk.mjs → sitemap-Bc4LkIcm.mjs} +10 -9
  53. package/dist/sitemap-server-C4bpuoLi.mjs +235 -0
  54. package/dist/{skills-qswruIKO.mjs → skills-B6wl1bUL.mjs} +10 -9
  55. package/dist/{standards-discovery-CjyUCxdy.d.mts → standards-discovery-C1RLKwV9.d.mts} +1 -1
  56. package/dist/{templates-DdB4BBGq.mjs → templates-BiORflC3.mjs} +1 -2
  57. package/dist/{types-BkAk6B2d.d.mts → types-Dkl2DUfp.d.mts} +39 -9
  58. package/dist/{upgrade-B92U83xo.mjs → upgrade-8zStRidw.mjs} +2 -2
  59. package/package.json +2 -1
  60. package/dist/sitemap-server-D3mFJkjE.mjs +0 -1166
  61. /package/dist/{agent-feedback-loop-vaC-M1sx.mjs → agent-feedback-loop-CcZL_sb1.mjs} +0 -0
  62. /package/dist/{audience-exposure-CkNZNeVX.d.mts → audience-exposure-BAjHjaTT.d.mts} +0 -0
  63. /package/dist/{cloud-ask-ai-CK2qlNns.mjs → cloud-ask-ai-BDtBbbZZ.mjs} +0 -0
  64. /package/dist/{code-blocks-D90CCJFs.mjs → code-blocks-GYdvS3BH.mjs} +0 -0
  65. /package/dist/{config-DrZ3fXgf.mjs → config-BnUOoj07.mjs} +0 -0
  66. /package/dist/{errors-BDmra6mz.mjs → errors-BkS29NUA.mjs} +0 -0
  67. /package/dist/{feedback-evals-k0sFDdms.mjs → feedback-evals-CYuS2wTu.mjs} +0 -0
  68. /package/dist/{openapi-mcp-node-vO3IXVGI.mjs → openapi-mcp-node-C4jUpZG6.mjs} +0 -0
  69. /package/dist/{propose-DJOiHu9Y.mjs → propose-ZH_mGMY_.mjs} +0 -0
  70. /package/dist/{utils-Cc1SrVza.mjs → utils-c9arebCi.mjs} +0 -0
@@ -1,9 +1,9 @@
1
1
  import "./markdown-sections-BKy4labo.mjs";
2
- import "./agent-5jyEosML.mjs";
2
+ import "./agent-CEZCaYto.mjs";
3
3
  import "./standards-discovery-Bpz90VYq.mjs";
4
- import "./openapi-mcp-D8NVpTW1.mjs";
5
- import { r as runDocsAuthoringMcpStdio } from "./authoring-mcp-BpwboE3k.mjs";
6
- import { _ as resolveDocsContentDir, d as readNavTitle, g as resolveDocsConfigPath, o as loadDocsConfigModuleResult, p as readStringProperty } from "./config-DrZ3fXgf.mjs";
4
+ import "./openapi-mcp-UF4Cx885.mjs";
5
+ import { r as runDocsAuthoringMcpStdio } from "./authoring-mcp-C35lj3cI.mjs";
6
+ import { _ as resolveDocsContentDir, d as readNavTitle, g as resolveDocsConfigPath, o as loadDocsConfigModuleResult, p as readStringProperty } from "./config-BnUOoj07.mjs";
7
7
  import { readFileSync } from "node:fs";
8
8
  import path from "node:path";
9
9
 
@@ -1,6 +1,6 @@
1
- import { ot as renderDocsMarkdownDocument } from "./agent-5jyEosML.mjs";
1
+ import { ot as renderDocsMarkdownDocument } from "./agent-CEZCaYto.mjs";
2
2
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
3
- import { n as analyzeDocsAgentFeedback, r as readDocsAgentFeedbackFile } from "./agent-feedback-loop-vaC-M1sx.mjs";
3
+ import { n as analyzeDocsAgentFeedback, r as readDocsAgentFeedbackFile } from "./agent-feedback-loop-CcZL_sb1.mjs";
4
4
  import { existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, renameSync, statSync, unlinkSync, writeFileSync } from "node:fs";
5
5
  import path from "node:path";
6
6
  import { createHash, randomUUID } from "node:crypto";
@@ -1,4 +1,4 @@
1
- import { c as emitDocsAnalyticsEvent, d as resolveDocsAnalyticsConfig } from "./analytics-CwXxM9oL.mjs";
2
- import { t as applySidebarFolderIndexBehavior } from "./sidebar-Bne72SU-.mjs";
3
- import { n as resolveDocsAudienceExposure, t as DocsContentAudience } from "./audience-exposure-CkNZNeVX.mjs";
1
+ import { c as emitDocsAnalyticsEvent, d as resolveDocsAnalyticsConfig } from "./analytics-R9c-Md4b.mjs";
2
+ import { t as applySidebarFolderIndexBehavior } from "./sidebar-CGbvEPTX.mjs";
3
+ import { n as resolveDocsAudienceExposure, t as DocsContentAudience } from "./audience-exposure-BAjHjaTT.mjs";
4
4
  export { type DocsContentAudience, applySidebarFolderIndexBehavior, emitDocsAnalyticsEvent, resolveDocsAnalyticsConfig, resolveDocsAudienceExposure };
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { i as wasCliErrorReported, r as shouldPrintStackTrace, t as formatCliError } from "../errors-BDmra6mz.mjs";
2
+ import { i as wasCliErrorReported, r as shouldPrintStackTrace, t as formatCliError } from "../errors-BkS29NUA.mjs";
3
3
  import pc from "picocolors";
4
4
 
5
5
  //#region src/cli/index.ts
@@ -116,47 +116,47 @@ async function main() {
116
116
  ]
117
117
  };
118
118
  if (!parsedCommand.command || parsedCommand.command === "init") {
119
- const { init } = await import("../init-CCV2eRNB.mjs");
119
+ const { init } = await import("../init-BXKzipSS.mjs");
120
120
  await init(initOptions);
121
121
  } else if (parsedCommand.command === "dev") {
122
- const { dev } = await import("../dev-Bx0JNglW.mjs");
122
+ const { dev } = await import("../dev-Df77AKR1.mjs");
123
123
  await dev(devOptions);
124
124
  } else if (parsedCommand.command === "deploy") {
125
- const { runCloudDeploy } = await import("../cloud-Bvof6mET.mjs");
125
+ const { runCloudDeploy } = await import("../cloud-DtmNQJg2.mjs");
126
126
  await runCloudDeploy(cloudOptions);
127
127
  } else if (parsedCommand.command === "preview") {
128
- const { runCloudPreview } = await import("../cloud-Bvof6mET.mjs");
128
+ const { runCloudPreview } = await import("../cloud-DtmNQJg2.mjs");
129
129
  await runCloudPreview(cloudOptions);
130
130
  } else if (parsedCommand.command === "cloud" && subcommand === "deploy") {
131
- const { runCloudDeploy } = await import("../cloud-Bvof6mET.mjs");
131
+ const { runCloudDeploy } = await import("../cloud-DtmNQJg2.mjs");
132
132
  await runCloudDeploy(cloudOptions);
133
133
  } else if (parsedCommand.command === "cloud" && subcommand === "preview") {
134
- const { runCloudPreview } = await import("../cloud-Bvof6mET.mjs");
134
+ const { runCloudPreview } = await import("../cloud-DtmNQJg2.mjs");
135
135
  await runCloudPreview(cloudOptions);
136
136
  } else if (parsedCommand.command === "cloud" && subcommand === "init") {
137
- const { runCloudInit } = await import("../cloud-Bvof6mET.mjs");
137
+ const { runCloudInit } = await import("../cloud-DtmNQJg2.mjs");
138
138
  await runCloudInit(cloudOptions);
139
139
  } else if (parsedCommand.command === "cloud" && subcommand === "sync") {
140
- const { syncCloudConfig } = await import("../cloud-Bvof6mET.mjs");
140
+ const { syncCloudConfig } = await import("../cloud-DtmNQJg2.mjs");
141
141
  await syncCloudConfig(cloudOptions);
142
142
  } else if (parsedCommand.command === "cloud" && subcommand === "check") {
143
- const { runCloudCheck } = await import("../cloud-Bvof6mET.mjs");
143
+ const { runCloudCheck } = await import("../cloud-DtmNQJg2.mjs");
144
144
  await runCloudCheck(cloudOptions);
145
145
  } else if (parsedCommand.command === "cloud") {
146
146
  console.error(pc.red(`Unknown cloud subcommand: ${subcommand ?? "(missing)"}`));
147
147
  console.error();
148
- const { printCloudHelp } = await import("../cloud-Bvof6mET.mjs");
148
+ const { printCloudHelp } = await import("../cloud-DtmNQJg2.mjs");
149
149
  printCloudHelp();
150
150
  process.exit(1);
151
151
  } else if (parsedCommand.command === "mcp" && subcommand === "author") {
152
- const { runAuthoringMcp } = await import("../authoring-CsR0sewh.mjs");
152
+ const { runAuthoringMcp } = await import("../authoring-CvsCmYuq.mjs");
153
153
  await runAuthoringMcp(authoringMcpOptions);
154
154
  } else if (parsedCommand.command === "mcp") {
155
- const { runMcp } = await import("../mcp-D-1u1RBW.mjs");
155
+ const { runMcp } = await import("../mcp-Bj3ZoEtt.mjs");
156
156
  await runMcp(mcpOptions);
157
157
  } else if (parsedCommand.command === "agent" && (subcommand === "--help" || subcommand === "-h")) printAgentHelp();
158
158
  else if (parsedCommand.command === "agent" && subcommand === "feedback") {
159
- const { parseAgentFeedbackImproveArgs, printAgentFeedbackImproveHelp, runAgentFeedbackImprove } = await import("../feedback-DWVUMrxy.mjs");
159
+ const { parseAgentFeedbackImproveArgs, printAgentFeedbackImproveHelp, runAgentFeedbackImprove } = await import("../feedback-CNsQP2jY.mjs");
160
160
  const feedbackOptions = parseAgentFeedbackImproveArgs(args.slice(2));
161
161
  if (feedbackOptions.help) {
162
162
  printAgentFeedbackImproveHelp();
@@ -164,7 +164,7 @@ async function main() {
164
164
  }
165
165
  await runAgentFeedbackImprove(feedbackOptions);
166
166
  } else if (parsedCommand.command === "agent" && subcommand === "feedback-evals") {
167
- const { parseAgentFeedbackEvaluationsArgs, printAgentFeedbackEvaluationsHelp, runAgentFeedbackEvaluations } = await import("../feedback-evals-k0sFDdms.mjs");
167
+ const { parseAgentFeedbackEvaluationsArgs, printAgentFeedbackEvaluationsHelp, runAgentFeedbackEvaluations } = await import("../feedback-evals-CYuS2wTu.mjs");
168
168
  const evaluationOptions = parseAgentFeedbackEvaluationsArgs(args.slice(2));
169
169
  if (evaluationOptions.help) {
170
170
  printAgentFeedbackEvaluationsHelp();
@@ -172,7 +172,7 @@ async function main() {
172
172
  }
173
173
  await runAgentFeedbackEvaluations(evaluationOptions);
174
174
  } else if (parsedCommand.command === "agent" && subcommand === "propose") {
175
- const { parseAgentMaintenanceProposeArgs, printAgentMaintenanceProposeHelp, runAgentMaintenancePropose } = await import("../propose-DJOiHu9Y.mjs");
175
+ const { parseAgentMaintenanceProposeArgs, printAgentMaintenanceProposeHelp, runAgentMaintenancePropose } = await import("../propose-ZH_mGMY_.mjs");
176
176
  const proposeOptions = parseAgentMaintenanceProposeArgs(args.slice(2));
177
177
  if (proposeOptions.help) {
178
178
  printAgentMaintenanceProposeHelp();
@@ -180,7 +180,7 @@ async function main() {
180
180
  }
181
181
  await runAgentMaintenancePropose(proposeOptions);
182
182
  } else if (parsedCommand.command === "agent" && subcommand === "compact") {
183
- const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-Dlswu0Mm.mjs").then((n) => n.t);
183
+ const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-DGNTD-N6.mjs").then((n) => n.t);
184
184
  const agentCompactOptions = parseAgentCompactArgs(args.slice(2));
185
185
  if (agentCompactOptions.help) {
186
186
  printAgentCompactHelp();
@@ -188,7 +188,7 @@ async function main() {
188
188
  }
189
189
  await compactAgentDocs(agentCompactOptions);
190
190
  } else if (parsedCommand.command === "agent" && subcommand === "export") {
191
- const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-yilcRMg6.mjs");
191
+ const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-DIKwVWYN.mjs");
192
192
  const agentExportOptions = parseAgentExportArgs(args.slice(2));
193
193
  if (agentExportOptions.help) {
194
194
  printAgentExportHelp();
@@ -201,7 +201,7 @@ async function main() {
201
201
  printAgentHelp();
202
202
  process.exit(1);
203
203
  } else if (parsedCommand.command === "agents" && subcommand === "generate") {
204
- const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-D5waM-jZ.mjs");
204
+ const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-l8RtkFim.mjs");
205
205
  const agentsOptions = parseAgentsGenerateArgs(args.slice(2));
206
206
  if (agentsOptions.help) {
207
207
  printAgentsGenerateHelp();
@@ -211,11 +211,11 @@ async function main() {
211
211
  } else if (parsedCommand.command === "agents") {
212
212
  console.error(pc.red(`Unknown agents subcommand: ${subcommand ?? "(missing)"}`));
213
213
  console.error();
214
- const { printAgentsGenerateHelp } = await import("../agents-D5waM-jZ.mjs");
214
+ const { printAgentsGenerateHelp } = await import("../agents-l8RtkFim.mjs");
215
215
  printAgentsGenerateHelp();
216
216
  process.exit(1);
217
217
  } else if (parsedCommand.command === "skills" && subcommand === "scaffold") {
218
- const { parseSkillScaffoldArgs, printSkillScaffoldHelp, scaffoldSkillFromContracts } = await import("../skills-qswruIKO.mjs");
218
+ const { parseSkillScaffoldArgs, printSkillScaffoldHelp, scaffoldSkillFromContracts } = await import("../skills-B6wl1bUL.mjs");
219
219
  const skillOptions = parseSkillScaffoldArgs(args.slice(2));
220
220
  if (skillOptions.help) {
221
221
  printSkillScaffoldHelp();
@@ -223,24 +223,49 @@ async function main() {
223
223
  }
224
224
  await scaffoldSkillFromContracts(skillOptions);
225
225
  } else if (parsedCommand.command === "skills" && (subcommand === "--help" || subcommand === "-h")) {
226
- const { printSkillScaffoldHelp } = await import("../skills-qswruIKO.mjs");
226
+ const { printSkillScaffoldHelp } = await import("../skills-B6wl1bUL.mjs");
227
227
  printSkillScaffoldHelp();
228
228
  } else if (parsedCommand.command === "skills") {
229
229
  console.error(pc.red(`Unknown skills subcommand: ${subcommand ?? "(missing)"}`));
230
230
  console.error();
231
- const { printSkillScaffoldHelp } = await import("../skills-qswruIKO.mjs");
231
+ const { printSkillScaffoldHelp } = await import("../skills-B6wl1bUL.mjs");
232
232
  printSkillScaffoldHelp();
233
233
  process.exit(1);
234
234
  } else if (parsedCommand.command === "doctor") {
235
- const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-DbsNvdb8.mjs");
235
+ const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-zNmt9s6j.mjs");
236
236
  const doctorOptions = parseDoctorArgs(args.slice(1));
237
237
  if (doctorOptions.help) {
238
238
  printDoctorHelp();
239
239
  return;
240
240
  }
241
241
  await runDoctor(doctorOptions);
242
+ } else if ((parsedCommand.command === "openapi" || parsedCommand.command === "api") && subcommand === "diff") {
243
+ const { parseOpenApiDiffArgs, printOpenApiDiffHelp, runOpenApiDiff } = await import("../openapi-diff-DKW3xkQU.mjs");
244
+ const diffOptions = parseOpenApiDiffArgs(args.slice(2));
245
+ if (diffOptions.help) {
246
+ printOpenApiDiffHelp();
247
+ return;
248
+ }
249
+ await runOpenApiDiff(diffOptions);
250
+ } else if ((parsedCommand.command === "openapi" || parsedCommand.command === "api") && subcommand === "sdk") {
251
+ const { parseOpenApiSdkArgs, printOpenApiSdkHelp, runOpenApiSdk } = await import("../openapi-sdk-DqRHPsCb.mjs");
252
+ const sdkOptions = parseOpenApiSdkArgs(args.slice(2));
253
+ if (sdkOptions.help) {
254
+ printOpenApiSdkHelp();
255
+ return;
256
+ }
257
+ await runOpenApiSdk(sdkOptions);
258
+ } else if ((parsedCommand.command === "openapi" || parsedCommand.command === "api") && (subcommand === "--help" || subcommand === "-h")) {
259
+ const { printOpenApiHelp } = await import("../openapi-anOaQn9o.mjs");
260
+ printOpenApiHelp();
261
+ } else if (parsedCommand.command === "openapi" || parsedCommand.command === "api") {
262
+ console.error(pc.red(`Unknown OpenAPI subcommand: ${subcommand ?? "(missing)"}`));
263
+ console.error();
264
+ const { printOpenApiHelp } = await import("../openapi-anOaQn9o.mjs");
265
+ printOpenApiHelp();
266
+ process.exit(1);
242
267
  } else if (parsedCommand.command === "review") {
243
- const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-BdM27yh7.mjs");
268
+ const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-CcplK9Hj.mjs");
244
269
  const reviewOptions = parseReviewArgs(args.slice(1));
245
270
  if (reviewOptions.help) {
246
271
  printReviewHelp();
@@ -248,7 +273,7 @@ async function main() {
248
273
  }
249
274
  await runReview(reviewOptions);
250
275
  } else if ((parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") && subcommand === "validate") {
251
- const { parseCodeBlocksValidateArgs, printCodeBlocksValidateHelp, runCodeBlocksValidate } = await import("../codeblocks-C911CdyJ.mjs");
276
+ const { parseCodeBlocksValidateArgs, printCodeBlocksValidateHelp, runCodeBlocksValidate } = await import("../codeblocks-DEcqNXve.mjs");
252
277
  const codeBlocksOptions = parseCodeBlocksValidateArgs(args.slice(2));
253
278
  if (codeBlocksOptions.help) {
254
279
  printCodeBlocksValidateHelp();
@@ -258,11 +283,11 @@ async function main() {
258
283
  } else if (parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") {
259
284
  console.error(pc.red(`Unknown codeblocks subcommand: ${subcommand ?? "(missing)"}`));
260
285
  console.error();
261
- const { printCodeBlocksValidateHelp } = await import("../codeblocks-C911CdyJ.mjs");
286
+ const { printCodeBlocksValidateHelp } = await import("../codeblocks-DEcqNXve.mjs");
262
287
  printCodeBlocksValidateHelp();
263
288
  process.exit(1);
264
289
  } else if (parsedCommand.command === "search" && subcommand === "sync") {
265
- const { syncSearch } = await import("../search-BCxmGlxh.mjs");
290
+ const { syncSearch } = await import("../search-BNmlDQJ2.mjs");
266
291
  await syncSearch(searchSyncOptions);
267
292
  } else if (parsedCommand.command === "search") {
268
293
  console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
@@ -270,7 +295,7 @@ async function main() {
270
295
  printHelp();
271
296
  process.exit(1);
272
297
  } else if (parsedCommand.command === "sitemap" && subcommand === "generate") {
273
- const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-ChOEBnrk.mjs");
298
+ const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-Bc4LkIcm.mjs");
274
299
  const sitemapOptions = parseSitemapGenerateArgs(args.slice(2));
275
300
  if (sitemapOptions.help) {
276
301
  printSitemapGenerateHelp();
@@ -280,11 +305,11 @@ async function main() {
280
305
  } else if (parsedCommand.command === "sitemap") {
281
306
  console.error(pc.red(`Unknown sitemap subcommand: ${subcommand ?? "(missing)"}`));
282
307
  console.error();
283
- const { printSitemapGenerateHelp } = await import("../sitemap-ChOEBnrk.mjs");
308
+ const { printSitemapGenerateHelp } = await import("../sitemap-Bc4LkIcm.mjs");
284
309
  printSitemapGenerateHelp();
285
310
  process.exit(1);
286
311
  } else if (parsedCommand.command === "robots" && subcommand === "generate") {
287
- const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-D6VufwPn.mjs");
312
+ const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-D4T3zZr_.mjs");
288
313
  const robotsOptions = parseRobotsGenerateArgs(args.slice(2));
289
314
  if (robotsOptions.help) {
290
315
  printRobotsGenerateHelp();
@@ -294,11 +319,11 @@ async function main() {
294
319
  } else if (parsedCommand.command === "robots") {
295
320
  console.error(pc.red(`Unknown robots subcommand: ${subcommand ?? "(missing)"}`));
296
321
  console.error();
297
- const { printRobotsGenerateHelp } = await import("../robots-D6VufwPn.mjs");
322
+ const { printRobotsGenerateHelp } = await import("../robots-D4T3zZr_.mjs");
298
323
  printRobotsGenerateHelp();
299
324
  process.exit(1);
300
325
  } else if (parsedCommand.command === "downgrade") {
301
- const { downgrade } = await import("../downgrade-BXmQMkMy.mjs");
326
+ const { downgrade } = await import("../downgrade-C6DSsOO9.mjs");
302
327
  const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
303
328
  const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
304
329
  await downgrade({
@@ -307,7 +332,7 @@ async function main() {
307
332
  dryRun: flags["dry-run"] === true
308
333
  });
309
334
  } else if (parsedCommand.command === "upgrade") {
310
- const { upgrade } = await import("../upgrade-B92U83xo.mjs");
335
+ const { upgrade } = await import("../upgrade-8zStRidw.mjs");
311
336
  const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
312
337
  const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
313
338
  const version = typeof flags.version === "string" ? flags.version : hasVersionFlag ? "" : void 0;
@@ -359,6 +384,7 @@ ${pc.dim("Commands:")}
359
384
  ${pc.cyan("agents")} AGENTS.md utilities (${pc.dim("generate")} for static agent instructions)
360
385
  ${pc.cyan("skills")} Agent Skills utilities (${pc.dim("scaffold")} from structured page contracts)
361
386
  ${pc.cyan("doctor")} Inspect and score agent or reader-facing docs quality
387
+ ${pc.cyan("openapi")} OpenAPI utilities (${pc.dim("diff")} and typed ${pc.dim("sdk")} generation)
362
388
  ${pc.cyan("review")} Review changed docs files and wire Docs Review CI
363
389
  ${pc.cyan("codeblocks")} Validate fenced MDX code blocks (${pc.dim("validate")})
364
390
  ${pc.cyan("mcp")} Run read-only docs MCP or the separate protected authoring server
@@ -474,6 +500,7 @@ ${pc.dim("Options for doctor:")}
474
500
  ${pc.cyan("doctor")} Score the current docs app for agent-readiness
475
501
  ${pc.cyan("doctor --agent")} Same as ${pc.cyan("doctor")}; explicit agent scoring mode
476
502
  ${pc.cyan("doctor --site")} Score the current docs app for reader-facing docs quality
503
+ ${pc.cyan("doctor --api")} Validate OpenAPI sources, identities, renderers, and generated projections
477
504
  ${pc.cyan("doctor --human")} Alias for ${pc.cyan("doctor --site")}
478
505
  ${pc.cyan("doctor --json")} Print the report as JSON for CI, scripts, and automation
479
506
  ${pc.cyan("doctor --json-output <path>")} Write the JSON report to a file, including alongside ${pc.cyan("--ci")}
@@ -486,9 +513,23 @@ ${pc.dim("Options for doctor:")}
486
513
  ${pc.cyan("doctor --retries <0-5>")} Retry safe hosted GET/HEAD probes (default: ${pc.dim("1")})
487
514
  ${pc.cyan("doctor agent")} Subcommand alias for agent scoring
488
515
  ${pc.cyan("doctor site")} Subcommand alias for reader-facing scoring
516
+ ${pc.cyan("doctor api")} Subcommand alias for OpenAPI diagnostics
489
517
  ${pc.cyan("doctor human")} Legacy alias for reader-facing scoring
490
518
  ${pc.cyan("--config <path>")} Use a custom docs config path instead of ${pc.dim("docs.config.ts[x]")}
491
519
 
520
+ ${pc.dim("Options for OpenAPI diff:")}
521
+ ${pc.cyan("openapi diff <baseline> <current>")} Compare local or remote JSON/YAML contracts
522
+ ${pc.cyan("--base <source> --head <source>")} Named source arguments; ${pc.cyan("api diff")} is an alias
523
+ ${pc.cyan("--fail-on <policy>")} Exit policy: ${pc.dim("breaking")}, ${pc.dim("any")}, or ${pc.dim("never")}
524
+ ${pc.cyan("--json")} Print stable ${pc.dim("farming-labs-openapi-diff.v1")} JSON
525
+
526
+ ${pc.dim("Options for OpenAPI SDK generation:")}
527
+ ${pc.cyan("openapi sdk <source> --output <path>")} Generate a typed TypeScript fetch client
528
+ ${pc.cyan("--client-name <name>")} Override the generated client class name
529
+ ${pc.cyan("--base-url <url>")} Override the generated default API URL
530
+ ${pc.cyan("--check | --dry-run")} Check freshness or preview without writing
531
+ ${pc.cyan("--force")} Replace a reviewed non-generated output file
532
+
492
533
  ${pc.dim("Options for review:")}
493
534
  ${pc.cyan("review")} Review docs changed in git
494
535
  ${pc.cyan("review setup")} Create ${pc.dim(".github/workflows/docs-review.yml")} when enabled
@@ -1,4 +1,4 @@
1
- import { ht as DocsAnalyticsConfig } from "../types-BkAk6B2d.mjs";
1
+ import { gt as DocsAnalyticsConfig } from "../types-Dkl2DUfp.mjs";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region src/docs-cloud-client.d.ts
@@ -1,6 +1,6 @@
1
- import { n as markCliErrorReported } from "./errors-BDmra6mz.mjs";
2
- import { _ as resolveDocsContentDir, a as loadDocsConfigModule, c as loadProjectEnv, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, m as readTopLevelBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-DrZ3fXgf.mjs";
3
- import { i as detectPackageManagerFromProject, t as detectFramework } from "./utils-Cc1SrVza.mjs";
1
+ import { n as markCliErrorReported } from "./errors-BkS29NUA.mjs";
2
+ import { _ as resolveDocsContentDir, a as loadDocsConfigModule, c as loadProjectEnv, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, m as readTopLevelBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-BnUOoj07.mjs";
3
+ import { i as detectPackageManagerFromProject, t as detectFramework } from "./utils-c9arebCi.mjs";
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
6
6
  import { execFileSync } from "node:child_process";
@@ -1,4 +1,4 @@
1
- import { ht as DocsAnalyticsConfig, kt as DocsCloudConfig, t as AIConfig } from "./types-BkAk6B2d.mjs";
1
+ import { At as DocsCloudConfig, gt as DocsAnalyticsConfig, t as AIConfig } from "./types-Dkl2DUfp.mjs";
2
2
 
3
3
  //#region src/cloud-ask-ai.d.ts
4
4
  interface DocsCloudAskAIConfig {
@@ -1,5 +1,5 @@
1
- import { a as validateCodeBlocks, r as resolveDocsCodeBlocksValidateConfig } from "./code-blocks-D90CCJFs.mjs";
2
- import { _ as resolveDocsContentDir, a as loadDocsConfigModule, f as readNumberProperty, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-DrZ3fXgf.mjs";
1
+ import { a as validateCodeBlocks, r as resolveDocsCodeBlocksValidateConfig } from "./code-blocks-GYdvS3BH.mjs";
2
+ import { _ as resolveDocsContentDir, a as loadDocsConfigModule, f as readNumberProperty, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-BnUOoj07.mjs";
3
3
  import { existsSync, readFileSync } from "node:fs";
4
4
  import pc from "picocolors";
5
5
 
@@ -1,6 +1,6 @@
1
- import { $n as DocsSearchFacetsResponse, Dn as DocsPaginatedSearchResponse, Dr as FeedbackConfig, Dt as DocsAskAIMcpConfig, En as DocsPageAccessPolicy, Fr as McpDocsSearchConfig, J as DocsAgentFeedbackData, Jn as DocsSearchDocument, Jt as DocsContentSnapshot, Kn as DocsSearchChunkingConfig, L as DocsAgentContentChangesConfig, Ln as DocsRobotsConfig, Mr as LlmsTxtMaxCharsConfig, Nr as LlmsTxtMaxCharsMode, Pr as LlmsTxtSectionConfig, Qt as DocsI18nConfig, Vn as DocsSearchAdapterFactory, Vt as DocsConfig, Zr as PageAgentFrontmatter, _n as DocsOkfConfig, ai as ResolvedDocsRelatedLink, dr as DocsSearchRequest, f as CustomDocsSearchConfig, hi as TypesenseDocsSearchConfig, hr as DocsSearchSourcePage, in as DocsMcpConfig, ir as DocsSearchFilters, jr as LlmsTxtConfig, m as DocsAccessPrincipal, nr as DocsSearchFilterField, pr as DocsSearchResult, qn as DocsSearchConfig, qt as DocsContentChangesResponse, r as AlgoliaDocsSearchConfig, rr as DocsSearchFilterInput, vr as DocsSitemapConfig, xn as DocsOkfTrustMetadataInput, zn as DocsSearchAdapter } from "./types-BkAk6B2d.mjs";
2
- import { O as DocsA2AAgentCardOptions, R as DocsDiscoveryApiRouteOptions, z as DocsPublishedAgentSkill } from "./standards-discovery-CjyUCxdy.mjs";
3
- import { t as DocsContentAudience } from "./audience-exposure-CkNZNeVX.mjs";
1
+ import { $t as DocsI18nConfig, Bn as DocsSearchAdapter, Dn as DocsPageAccessPolicy, Fr as LlmsTxtSectionConfig, Hn as DocsSearchAdapterFactory, Ht as DocsConfig, Ir as McpDocsSearchConfig, Jn as DocsSearchConfig, Jt as DocsContentChangesResponse, Mr as LlmsTxtConfig, Nr as LlmsTxtMaxCharsConfig, On as DocsPaginatedSearchResponse, Or as FeedbackConfig, Ot as DocsAskAIMcpConfig, Pr as LlmsTxtMaxCharsMode, Qr as PageAgentFrontmatter, R as DocsAgentContentChangesConfig, Rn as DocsRobotsConfig, Sn as DocsOkfTrustMetadataInput, Y as DocsAgentFeedbackData, Yn as DocsSearchDocument, Yt as DocsContentSnapshot, an as DocsMcpConfig, ar as DocsSearchFilters, er as DocsSearchFacetsResponse, fr as DocsSearchRequest, gi as TypesenseDocsSearchConfig, gr as DocsSearchSourcePage, h as DocsAccessPrincipal, ir as DocsSearchFilterInput, mr as DocsSearchResult, oi as ResolvedDocsRelatedLink, p as CustomDocsSearchConfig, qn as DocsSearchChunkingConfig, r as AlgoliaDocsSearchConfig, rr as DocsSearchFilterField, vn as DocsOkfConfig, yr as DocsSitemapConfig } from "./types-Dkl2DUfp.mjs";
2
+ import { O as DocsA2AAgentCardOptions, R as DocsDiscoveryApiRouteOptions, z as DocsPublishedAgentSkill } from "./standards-discovery-C1RLKwV9.mjs";
3
+ import { t as DocsContentAudience } from "./audience-exposure-BAjHjaTT.mjs";
4
4
  import { DocsMcpPage, DocsMcpResolvedConfig, DocsMcpResolvedPromptsConfig } from "./mcp.mjs";
5
5
 
6
6
  //#region src/i18n.d.ts
@@ -146,6 +146,19 @@ interface DocsOpenApiDiscoveryConfig {
146
146
  apiReferencePath?: string;
147
147
  /** Product API targets described by this OpenAPI document. */
148
148
  catalogTargets?: readonly string[];
149
+ /** Total number of normalized operations projected into documentation surfaces. */
150
+ operationCount?: number;
151
+ versions?: readonly DocsOpenApiVersionDiscoveryConfig[];
152
+ }
153
+ interface DocsOpenApiVersionDiscoveryConfig {
154
+ id: string;
155
+ label: string;
156
+ default: boolean;
157
+ url: string;
158
+ apiReferencePath: string;
159
+ specUrl?: string;
160
+ /** Number of normalized operations projected for this version. */
161
+ operationCount?: number;
149
162
  }
150
163
  interface DocsOpenApiResolvedDiscoveryConfig {
151
164
  enabled: boolean;
@@ -157,6 +170,9 @@ interface DocsOpenApiResolvedDiscoveryConfig {
157
170
  apiReferencePath?: string;
158
171
  /** Product API targets described by this OpenAPI document. */
159
172
  catalogTargets?: readonly string[];
173
+ /** Total number of normalized operations projected into documentation surfaces. */
174
+ operationCount?: number;
175
+ versions?: readonly DocsOpenApiVersionDiscoveryConfig[];
160
176
  }
161
177
  type DocsConfigMapJsonPrimitive = string | number | boolean | null;
162
178
  type DocsConfigMapJsonValue = DocsConfigMapJsonPrimitive | DocsConfigMapJsonValue[] | {
@@ -846,12 +862,22 @@ declare function buildDocsAgentDiscoverySpec({
846
862
  agentContractType: string;
847
863
  };
848
864
  openapi: {
865
+ versions: {
866
+ url: string;
867
+ id: string;
868
+ label: string;
869
+ default: boolean;
870
+ apiReferencePath: string;
871
+ specUrl?: string; /** Number of normalized operations projected for this version. */
872
+ operationCount?: number;
873
+ }[];
874
+ format: string;
875
+ operationCount?: number | undefined;
849
876
  enabled: boolean;
850
877
  url: string | null;
851
878
  source: "generated" | "configured" | null;
852
879
  specUrl: string | null;
853
880
  apiReferencePath: string | null;
854
- format: string;
855
881
  };
856
882
  search: {
857
883
  enabled: boolean;
@@ -1016,6 +1042,8 @@ declare function compactDocsAgentDiscoverySpec<T extends {
1016
1042
  }>(spec: T): T;
1017
1043
  declare function acceptsDocsMarkdown(request: Request): boolean;
1018
1044
  declare function resolveDocsOpenApiDiscoveryConfig(openapi?: boolean | DocsOpenApiDiscoveryConfig): DocsOpenApiResolvedDiscoveryConfig;
1045
+ /** Attach operation totals from the same normalized pages used by search and Markdown. */
1046
+ declare function withDocsOpenApiOperationCounts(openapi: boolean | DocsOpenApiDiscoveryConfig | undefined, operationPages: readonly DocsSearchSourcePage[]): DocsOpenApiResolvedDiscoveryConfig;
1019
1047
  //#endregion
1020
1048
  //#region src/search.d.ts
1021
1049
  interface DocsAskAIContextResult extends DocsSearchResult {
@@ -1350,4 +1378,4 @@ interface HydrateDocsContentChangesOptions {
1350
1378
  */
1351
1379
  declare function hydrateDocsContentChanges(options: HydrateDocsContentChangesOptions): DocsContentChangeHydrationResponse;
1352
1380
  //#endregion
1353
- export { resolveDocsSearchError as $, resolveDocsAgentFeedbackConfig as $n, DocsLlmsTxtResolvedSection as $t, DocsSearchRequestError as A, findDocsMarkdownPage as An, hasDocsMcpProtectedResourceConfig as Ar, DOCS_TRADITIONAL_BOT_USER_AGENT_HEADER_PATTERN as At, createCustomSearchAdapter as B, isDocsMarkdownSectionIndexRequest as Bn, DocsDiagnostics as Bt, isDocsContentChangesRequest as C, buildDocsMarkdownSectionIndex as Cn, DEFAULT_MCP_PROTECTED_RESOURCE_METADATA_ROUTE as Cr, DEFAULT_OPENAPI_SCHEMA_ROUTE as Ct, BuildDocsSearchFacetsOptions as D, createDocsMarkdownResponse as Dn, buildDocsMcpProtectedResourceMetadataRoute as Dr, DOCS_BOT_LIKE_USER_AGENT_HEADER_PATTERN as Dt, BuildDocsContentSnapshotOptions as E, compactDocsAgentDiscoverySpec as En, DEFAULT_MCP_WELL_KNOWN_ROUTE as Er, DOCS_AI_AGENT_USER_AGENT_HEADER_PATTERN as Et, buildDocsContentSnapshot as F, isDocsAgentDiscoveryRequest as Fn, resolveDocsLocale as Fr, DocsAgentFeedbackResolvedConfig as Ft, formatDocsAskAIPackageHints as G, normalizeDocsUrlPath as Gn, DocsDiagnosticsStatus as Gt, createSimpleSearchAdapter as H, isDocsSkillRequest as Hn, DocsDiagnosticsIssue as Ht, buildDocsRetrievalDigestProjection as I, isDocsAgentsRequest as In, resolveDocsPath as Ir, DocsAgentsDocumentOptions as It, performDocsSearch as J, renderDocsLlmsTxt as Jn, DocsLlmsTxtGeneratedSection as Jt, inferDocsAskAIPackageHints as K, parseDocsAgentFeedbackData as Kn, DocsLlmsDiscoveryConfig as Kt, buildDocsSearchDocuments as L, isDocsConfigRequest as Ln, DocsConfigMap as Lt, EnrichDocsSearchDocumentsWithProvenanceOptions as M, getDocsMarkdownCanonicalLinkHeader as Mn, DocsPathMatch as Mr, DocsAgentDiscoverySpecOptions as Mt, PerformDocsSearchOptions as N, getDocsMarkdownVaryHeader as Nn, ResolvedDocsI18n as Nr, DocsAgentFeedbackDiscoveryConfig as Nt, DocsLocalMcpSearchRuntimeConfig as O, createDocsStandardsDiscoveryResponse as On, getDocsMcpProtectedResourceMetadataRoutes as Or, DOCS_MARKDOWN_SECTION_INDEX_FORMAT as Ot, buildDocsAskAIContext as P, hasDocsMarkdownSignatureAgent as Pn, resolveDocsI18n as Pr, DocsAgentFeedbackRequest as Pt, resolveDocsSearchAudience as Q, resolveDocsAgentContractMcpTools as Qn, DocsLlmsTxtResolvedMaxChars as Qt, buildDocsSearchFacets as R, isDocsDiagnosticsRequest as Rn, DocsConfigMapJsonValue as Rt, isDocsContentChangeGeneration as S, buildDocsDiagnostics as Sn, resolveDocsAudienceMdxContent as Sr, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE as St, resolveDocsContentChangesRequest as T, collectDocsMarkdownSections as Tn, DEFAULT_MCP_ROUTE as Tr, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE as Tt, createTypesenseSearchAdapter as U, matchesDocsLlmsTxtSection as Un, DocsDiagnosticsIssueSeverity as Ut, createMcpSearchAdapter as V, isDocsPublicGetRequest as Vn, DocsDiagnosticsFeature as Vt, enrichDocsSearchDocumentsWithProvenance as W, normalizeDocsPathSegment as Wn, DocsDiagnosticsOptions as Wt, resolveAskAISearchRequestConfig as X, renderDocsMarkdownNotFound as Xn, DocsLlmsTxtPageInput as Xt, performDocsSearchWithMetadata as Y, renderDocsMarkdownDocument as Yn, DocsLlmsTxtMaxCharsIssue as Yt, resolveDocsRetrievalLastModified as Z, renderDocsSkillDocument as Zn, DocsLlmsTxtRequest as Zt, DocsContentChangesRequestError as _, DocsStandardsDiscoveryResponseOptions as _n, DocsMarkdownPromptBlock as _r, DEFAULT_DOCS_DIAGNOSTICS_ROUTE as _t, DocsContentChangeHydrationResponse as a, DocsMarkdownResponseOptions as an, resolveDocsMarkdownCanonicalUrl as ar, DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE as at, createDocsContentChangeFeed as b, buildDocsAgentFeedbackSchema as bn, findDocsAudienceMdxIssues as br, DEFAULT_LLMS_TXT_MAX_CHARS as bt, HydrateDocsContentChangesOptions as c, DocsMarkdownSectionIndexOptions as cn, resolveDocsMarkdownSectionRequest as cr, DEFAULT_AGENT_MD_ROUTE as ct, hydrateDocsContentChanges as d, DocsMarkdownSectionResult as dn, resolveDocsSkillFormat as dr, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE as dt, DocsLlmsTxtSelectedContent as en, resolveDocsAgentFeedbackRequest as er, resolveDocsSearchFilters as et, DOCS_CONTENT_CHANGES_FORMAT as f, DocsMcpEndpointCandidate as fn, selectDocsLlmsTxtContent as fr, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE as ft, DocsContentChangesRequest as g, DocsSkillDocumentOptions as gn, DocsAudienceMdxIssue as gr, DEFAULT_DOCS_DIAGNOSTICS_FORMAT as gt, DocsContentChangeFeed as h, DocsOpenApiResolvedDiscoveryConfig as hn, validateDocsAgentFeedbackPayload as hr, DEFAULT_DOCS_CONFIG_ROUTE as ht, DocsContentChangeHydrationContent as i, DocsMarkdownRecoveryResult as in, resolveDocsLlmsTxtSections as ir, DEFAULT_AGENTS_MD_ROUTE as it, DocsSearchRequestResolutionOptions as j, getDocsLlmsTxtMaxCharsIssue as jn, isDocsMcpRequest as jr, DocsAgentContractMcpTools as jt, DocsLocalMcpSearchRuntimeInput as k, detectDocsMarkdownAgentRequest as kn, getDocsMcpResourcePaths as kr, DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER as kt, MAX_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET as l, DocsMarkdownSectionMetadata as ln, resolveDocsOpenApiDiscoveryConfig as lr, DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE as lt, DOCS_CONTENT_SNAPSHOT_FORMAT as m, DocsOpenApiDiscoveryConfig as mn, toDocsMarkdownUrl as mr, DEFAULT_DOCS_CONFIG_FORMAT as mt, DOCS_CONTENT_CHANGE_HYDRATION_FORMAT as n, DocsMarkdownPage as nn, resolveDocsLlmsTxtFormat as nr, resolveLocalDocsMcpSearchConfig as nt, DocsContentChangeHydrationSection as o, DocsMarkdownSection as on, resolveDocsMarkdownRecovery as or, DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA as ot, DOCS_CONTENT_CHANGES_RESPONSE_VALUE as p, DocsMcpEndpointCandidateOptions as pn, selectDocsMarkdownSection as pr, DEFAULT_DOCS_API_ROUTE as pt, normalizeDocsSearchFilters as q, renderDocsAgentsDocument as qn, DocsLlmsTxtGeneratedContent as qt, DocsContentChangeHydrationBudget as r, DocsMarkdownRecoveryMatch as rn, resolveDocsLlmsTxtRequest as rr, resolveSearchRequestConfig as rt, DocsContentChangeHydrationTombstone as s, DocsMarkdownSectionIndex as sn, resolveDocsMarkdownRequest as sr, DEFAULT_AGENT_FEEDBACK_ROUTE as st, DEFAULT_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET as t, DocsMarkdownAgentDetection as tn, resolveDocsAgentsFormat as tr, resolveDocsSearchRequest as tt, MIN_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET as u, DocsMarkdownSectionRequest as un, resolveDocsRequestApiRoute as ur, DEFAULT_AGENT_SPEC_ROUTE as ut, DocsResolvedContentChangesConfig as v, acceptsDocsMarkdown as vn, ExtractedDocsMarkdownPromptBlocks as vr, DEFAULT_LLMS_FULL_TXT_ROUTE as vt, resolveDocsContentChangesConfig as w, buildDocsMcpEndpointCandidates as wn, DEFAULT_MCP_PUBLIC_ROUTE as wr, DEFAULT_SKILL_MD_ROUTE as wt, createDocsContentChangesHttpResponse as x, buildDocsConfigMap as xn, resolveDocsAgentMdxContent as xr, DEFAULT_LLMS_TXT_ROUTE as xt, ResolveDocsContentChangesOptions as y, buildDocsAgentDiscoverySpec as yn, extractDocsMarkdownPromptBlocks as yr, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE as yt, createAlgoliaSearchAdapter as z, isDocsLlmsTxtPublicRequest as zn, DocsConfigMapPointer as zt };
1381
+ export { resolveDocsSearchError as $, resolveDocsAgentContractMcpTools as $n, DocsLlmsTxtResolvedSection as $t, DocsSearchRequestError as A, detectDocsMarkdownAgentRequest as An, getDocsMcpProtectedResourceMetadataRoutes as Ar, DOCS_TRADITIONAL_BOT_USER_AGENT_HEADER_PATTERN as At, createCustomSearchAdapter as B, isDocsLlmsTxtPublicRequest as Bn, DocsDiagnostics as Bt, isDocsContentChangesRequest as C, buildDocsDiagnostics as Cn, resolveDocsAgentMdxContent as Cr, DEFAULT_OPENAPI_SCHEMA_ROUTE as Ct, BuildDocsSearchFacetsOptions as D, compactDocsAgentDiscoverySpec as Dn, DEFAULT_MCP_ROUTE as Dr, DOCS_BOT_LIKE_USER_AGENT_HEADER_PATTERN as Dt, BuildDocsContentSnapshotOptions as E, collectDocsMarkdownSections as En, DEFAULT_MCP_PUBLIC_ROUTE as Er, DOCS_AI_AGENT_USER_AGENT_HEADER_PATTERN as Et, buildDocsContentSnapshot as F, hasDocsMarkdownSignatureAgent as Fn, ResolvedDocsI18n as Fr, DocsAgentFeedbackResolvedConfig as Ft, formatDocsAskAIPackageHints as G, normalizeDocsPathSegment as Gn, DocsDiagnosticsStatus as Gt, createSimpleSearchAdapter as H, isDocsPublicGetRequest as Hn, DocsDiagnosticsIssue as Ht, buildDocsRetrievalDigestProjection as I, isDocsAgentDiscoveryRequest as In, resolveDocsI18n as Ir, DocsAgentsDocumentOptions as It, performDocsSearch as J, renderDocsAgentsDocument as Jn, DocsLlmsTxtGeneratedSection as Jt, inferDocsAskAIPackageHints as K, normalizeDocsUrlPath as Kn, DocsLlmsDiscoveryConfig as Kt, buildDocsSearchDocuments as L, isDocsAgentsRequest as Ln, resolveDocsLocale as Lr, DocsConfigMap as Lt, EnrichDocsSearchDocumentsWithProvenanceOptions as M, getDocsLlmsTxtMaxCharsIssue as Mn, hasDocsMcpProtectedResourceConfig as Mr, DocsAgentDiscoverySpecOptions as Mt, PerformDocsSearchOptions as N, getDocsMarkdownCanonicalLinkHeader as Nn, isDocsMcpRequest as Nr, DocsAgentFeedbackDiscoveryConfig as Nt, DocsLocalMcpSearchRuntimeConfig as O, createDocsMarkdownResponse as On, DEFAULT_MCP_WELL_KNOWN_ROUTE as Or, DOCS_MARKDOWN_SECTION_INDEX_FORMAT as Ot, buildDocsAskAIContext as P, getDocsMarkdownVaryHeader as Pn, DocsPathMatch as Pr, DocsAgentFeedbackRequest as Pt, resolveDocsSearchAudience as Q, renderDocsSkillDocument as Qn, DocsLlmsTxtResolvedMaxChars as Qt, buildDocsSearchFacets as R, isDocsConfigRequest as Rn, resolveDocsPath as Rr, DocsConfigMapJsonValue as Rt, isDocsContentChangeGeneration as S, buildDocsConfigMap as Sn, findDocsAudienceMdxIssues as Sr, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE as St, resolveDocsContentChangesRequest as T, buildDocsMcpEndpointCandidates as Tn, DEFAULT_MCP_PROTECTED_RESOURCE_METADATA_ROUTE as Tr, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE as Tt, createTypesenseSearchAdapter as U, isDocsSkillRequest as Un, DocsDiagnosticsIssueSeverity as Ut, createMcpSearchAdapter as V, isDocsMarkdownSectionIndexRequest as Vn, DocsDiagnosticsFeature as Vt, enrichDocsSearchDocumentsWithProvenance as W, matchesDocsLlmsTxtSection as Wn, DocsDiagnosticsOptions as Wt, resolveAskAISearchRequestConfig as X, renderDocsMarkdownDocument as Xn, DocsLlmsTxtPageInput as Xt, performDocsSearchWithMetadata as Y, renderDocsLlmsTxt as Yn, DocsLlmsTxtMaxCharsIssue as Yt, resolveDocsRetrievalLastModified as Z, renderDocsMarkdownNotFound as Zn, DocsLlmsTxtRequest as Zt, DocsContentChangesRequestError as _, DocsSkillDocumentOptions as _n, withDocsOpenApiOperationCounts as _r, DEFAULT_DOCS_DIAGNOSTICS_ROUTE as _t, DocsContentChangeHydrationResponse as a, DocsMarkdownResponseOptions as an, resolveDocsLlmsTxtSections as ar, DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE as at, createDocsContentChangeFeed as b, buildDocsAgentDiscoverySpec as bn, ExtractedDocsMarkdownPromptBlocks as br, DEFAULT_LLMS_TXT_MAX_CHARS as bt, HydrateDocsContentChangesOptions as c, DocsMarkdownSectionIndexOptions as cn, resolveDocsMarkdownRequest as cr, DEFAULT_AGENT_MD_ROUTE as ct, hydrateDocsContentChanges as d, DocsMarkdownSectionResult as dn, resolveDocsRequestApiRoute as dr, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE as dt, DocsLlmsTxtSelectedContent as en, resolveDocsAgentFeedbackConfig as er, resolveDocsSearchFilters as et, DOCS_CONTENT_CHANGES_FORMAT as f, DocsMcpEndpointCandidate as fn, resolveDocsSkillFormat as fr, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE as ft, DocsContentChangesRequest as g, DocsOpenApiVersionDiscoveryConfig as gn, validateDocsAgentFeedbackPayload as gr, DEFAULT_DOCS_DIAGNOSTICS_FORMAT as gt, DocsContentChangeFeed as h, DocsOpenApiResolvedDiscoveryConfig as hn, toDocsMarkdownUrl as hr, DEFAULT_DOCS_CONFIG_ROUTE as ht, DocsContentChangeHydrationContent as i, DocsMarkdownRecoveryResult as in, resolveDocsLlmsTxtRequest as ir, DEFAULT_AGENTS_MD_ROUTE as it, DocsSearchRequestResolutionOptions as j, findDocsMarkdownPage as jn, getDocsMcpResourcePaths as jr, DocsAgentContractMcpTools as jt, DocsLocalMcpSearchRuntimeInput as k, createDocsStandardsDiscoveryResponse as kn, buildDocsMcpProtectedResourceMetadataRoute as kr, DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER as kt, MAX_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET as l, DocsMarkdownSectionMetadata as ln, resolveDocsMarkdownSectionRequest as lr, DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE as lt, DOCS_CONTENT_SNAPSHOT_FORMAT as m, DocsOpenApiDiscoveryConfig as mn, selectDocsMarkdownSection as mr, DEFAULT_DOCS_CONFIG_FORMAT as mt, DOCS_CONTENT_CHANGE_HYDRATION_FORMAT as n, DocsMarkdownPage as nn, resolveDocsAgentsFormat as nr, resolveLocalDocsMcpSearchConfig as nt, DocsContentChangeHydrationSection as o, DocsMarkdownSection as on, resolveDocsMarkdownCanonicalUrl as or, DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA as ot, DOCS_CONTENT_CHANGES_RESPONSE_VALUE as p, DocsMcpEndpointCandidateOptions as pn, selectDocsLlmsTxtContent as pr, DEFAULT_DOCS_API_ROUTE as pt, normalizeDocsSearchFilters as q, parseDocsAgentFeedbackData as qn, DocsLlmsTxtGeneratedContent as qt, DocsContentChangeHydrationBudget as r, DocsMarkdownRecoveryMatch as rn, resolveDocsLlmsTxtFormat as rr, resolveSearchRequestConfig as rt, DocsContentChangeHydrationTombstone as s, DocsMarkdownSectionIndex as sn, resolveDocsMarkdownRecovery as sr, DEFAULT_AGENT_FEEDBACK_ROUTE as st, DEFAULT_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET as t, DocsMarkdownAgentDetection as tn, resolveDocsAgentFeedbackRequest as tr, resolveDocsSearchRequest as tt, MIN_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET as u, DocsMarkdownSectionRequest as un, resolveDocsOpenApiDiscoveryConfig as ur, DEFAULT_AGENT_SPEC_ROUTE as ut, DocsResolvedContentChangesConfig as v, DocsStandardsDiscoveryResponseOptions as vn, DocsAudienceMdxIssue as vr, DEFAULT_LLMS_FULL_TXT_ROUTE as vt, resolveDocsContentChangesConfig as w, buildDocsMarkdownSectionIndex as wn, resolveDocsAudienceMdxContent as wr, DEFAULT_SKILL_MD_ROUTE as wt, createDocsContentChangesHttpResponse as x, buildDocsAgentFeedbackSchema as xn, extractDocsMarkdownPromptBlocks as xr, DEFAULT_LLMS_TXT_ROUTE as xt, ResolveDocsContentChangesOptions as y, acceptsDocsMarkdown as yn, DocsMarkdownPromptBlock as yr, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE as yt, createAlgoliaSearchAdapter as z, isDocsDiagnosticsRequest as zn, DocsConfigMapPointer as zt };
@@ -1,12 +1,12 @@
1
- import { i as detectPackageManagerFromProject } from "./utils-Cc1SrVza.mjs";
2
- import { $ as postcssConfigTemplate, C as globalCssTemplate, g as docsLayoutTemplate, kt as tsconfigTemplate, tt as rootLayoutTemplate } from "./templates-DdB4BBGq.mjs";
1
+ import { i as detectPackageManagerFromProject } from "./utils-c9arebCi.mjs";
2
+ import { $ as postcssConfigTemplate, C as globalCssTemplate, g as docsLayoutTemplate, kt as tsconfigTemplate, tt as rootLayoutTemplate } from "./templates-BiORflC3.mjs";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
5
+ import { fileURLToPath } from "node:url";
5
6
  import { spawn } from "node:child_process";
6
7
  import { z } from "zod";
7
8
  import os from "node:os";
8
9
  import pc from "picocolors";
9
- import { fileURLToPath } from "node:url";
10
10
 
11
11
  //#region src/cli/dev-banner.ts
12
12
  function createDevLogger() {
@@ -599,7 +599,7 @@ function renderDocsConfigFile(options) {
599
599
  const apiReferenceBlock = options.apiReference ? ` apiReference: {
600
600
  enabled: true,
601
601
  path: ${JSON.stringify(options.apiReference.path)},
602
- renderer: "fumadocs",
602
+ renderer: "farming-labs",
603
603
  specUrl: ${JSON.stringify(options.apiReference.specUrl)},
604
604
  ${catalogTargetsLine} },
605
605
  ` : "";
@@ -634,27 +634,13 @@ function renderManagedAnalyticsBlock(analytics) {
634
634
  if (properties.length === 0) return " analytics: {},\n";
635
635
  return ` analytics: {\n${properties.join("\n")}\n },\n`;
636
636
  }
637
- function renderManagedApiReferenceLayout() {
638
- return `import docsConfig from "@/docs.config";
639
- import { createNextApiReferenceLayout } from "@farming-labs/next/api-reference";
640
-
641
- const ApiReferenceLayout = createNextApiReferenceLayout(docsConfig);
642
-
643
- export default function Layout({ children }: { children: React.ReactNode }) {
644
- return <ApiReferenceLayout>{children}</ApiReferenceLayout>;
645
- }
646
- `;
647
- }
648
- function renderManagedApiReferencePage() {
637
+ function renderManagedApiReferenceRoute() {
649
638
  return `import docsConfig from "@/docs.config";
650
- import { createNextApiReferencePage } from "@farming-labs/next/api-reference";
639
+ import { createNextApiReference } from "@farming-labs/next/api-reference";
651
640
 
652
- const ApiReferencePage = createNextApiReferencePage(docsConfig);
653
-
654
- export const dynamic = "force-dynamic";
655
- export const revalidate = 0;
641
+ export const GET = createNextApiReference(docsConfig);
656
642
 
657
- export default ApiReferencePage;
643
+ export const revalidate = false;
658
644
  `;
659
645
  }
660
646
  function renderManagedOpenApiRoute(project, spec) {
@@ -1029,8 +1015,7 @@ function materializeManagedRuntime(projectRoot) {
1029
1015
  recursive: true,
1030
1016
  force: true
1031
1017
  });
1032
- writeFileIfChanged(path.join(apiReferenceDir, "layout.tsx"), renderManagedApiReferenceLayout());
1033
- writeFileIfChanged(path.join(apiReferenceDir, "[[...slug]]", "page.tsx"), renderManagedApiReferencePage());
1018
+ writeFileIfChanged(path.join(apiReferenceDir, "[[...slug]]", "route.ts"), renderManagedApiReferenceRoute());
1034
1019
  if (project.apiReferenceSpec.sourcePath) writeFileIfChanged(path.join(managedOpenApiRouteDir, "route.ts"), renderManagedOpenApiRoute(project, project.apiReferenceSpec));
1035
1020
  else fs.rmSync(managedOpenApiRouteDir, {
1036
1021
  recursive: true,
@@ -1,5 +1,5 @@
1
- import { _t as DocsAnalyticsEventInput, gt as DocsAnalyticsEvent, ht as DocsAnalyticsConfig } from "./types-BkAk6B2d.mjs";
2
- import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-C9dvEBpW.mjs";
1
+ import { _t as DocsAnalyticsEvent, gt as DocsAnalyticsConfig, vt as DocsAnalyticsEventInput } from "./types-Dkl2DUfp.mjs";
2
+ import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-DLyrydIR.mjs";
3
3
 
4
4
  //#region src/docs-cloud-server.d.ts
5
5
  type DocsCloudRuntimeValue<T = string> = T | undefined | null | (() => T | undefined | null);
@@ -1,5 +1,5 @@
1
1
  import { n as sendDocsCloudAnalyticsEvent } from "./cloud-analytics-Ci1yiwD8.mjs";
2
- import { t as createDocsCloudAskAIResponse } from "./cloud-ask-ai-CK2qlNns.mjs";
2
+ import { t as createDocsCloudAskAIResponse } from "./cloud-ask-ai-BDtBbbZZ.mjs";
3
3
 
4
4
  //#region src/docs-cloud-server.ts
5
5
  const DEFAULT_DOCS_CLOUD_API_BASE_URL = "https://api.farming-labs.dev";