@farming-labs/docs 0.2.103 → 0.2.104

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 (58) hide show
  1. package/dist/{agent-lWTq6pgr.d.mts → agent-C9IdC__R.d.mts} +9 -3
  2. package/dist/{agent-BLHMoVId.mjs → agent-NerpHcQB.mjs} +3 -3
  3. package/dist/{agent-CFqECAG0.mjs → agent-PSrgiJD8.mjs} +165 -8
  4. package/dist/{agent-evals-GpcaCbRb.mjs → agent-evals-U9d_db2u.mjs} +2 -2
  5. package/dist/{agent-export-oiWxB5aX.mjs → agent-export-DlBUKkTt.mjs} +20 -9
  6. package/dist/agent-feedback-loop-CGrc-gDW.mjs +196 -0
  7. package/dist/agent-skills-bundle.d.mts +1 -1
  8. package/dist/{agent-skills-server-CICMh0zv.d.mts → agent-skills-server-CIoL58X7.d.mts} +2 -2
  9. package/dist/agent-skills-vite.d.mts +3 -3
  10. package/dist/{agents-CtqIUW5I.mjs → agents-D3SLnQet.mjs} +8 -7
  11. package/dist/{analytics-C75BnTEW.d.mts → analytics-B-jz7re8.d.mts} +1 -1
  12. package/dist/authoring-BsWXMH43.mjs +41 -0
  13. package/dist/authoring-mcp-BCM5CJbJ.mjs +380 -0
  14. package/dist/browser.d.mts +3 -3
  15. package/dist/cli/index.mjs +67 -35
  16. package/dist/client/react.d.mts +1 -1
  17. package/dist/{cloud-FNfcbfli.mjs → cloud-BLxt_HYO.mjs} +3 -3
  18. package/dist/{cloud-ask-ai-BmbZVAT5.d.mts → cloud-ask-ai-19G2HJ62.d.mts} +1 -1
  19. package/dist/{code-blocks-Bel6vDqI.mjs → code-blocks-c3nIrWOM.mjs} +1 -1
  20. package/dist/{codeblocks-jbWuvtJQ.mjs → codeblocks-qHdKGVaE.mjs} +2 -2
  21. package/dist/{dev-BvbYmTLz.mjs → dev-B0iHJjTz.mjs} +3 -3
  22. package/dist/docs-cloud-server.d.mts +2 -2
  23. package/dist/docs-cloud-server.mjs +1 -1
  24. package/dist/{doctor-Bmm0uY98.mjs → doctor-x3k6aE2I.mjs} +16 -12
  25. package/dist/{downgrade-Dqm0rJMy.mjs → downgrade-Dd3vvVdD.mjs} +2 -2
  26. package/dist/feedback-DdWc33oO.mjs +72 -0
  27. package/dist/{golden-evaluations-K45fcWGW.mjs → golden-evaluations-7k7Akp3R.mjs} +2 -2
  28. package/dist/index.d.mts +70 -8
  29. package/dist/index.mjs +5 -5
  30. package/dist/{init-jDQSo-Or.mjs → init-DKukQdOQ.mjs} +3 -3
  31. package/dist/{mcp-CwgKlbIz.mjs → mcp-B6ZZdp6F.mjs} +7 -6
  32. package/dist/mcp.d.mts +18 -5
  33. package/dist/mcp.mjs +457 -38
  34. package/dist/{content-change-hydration-BsbBXAUi.mjs → openapi-mcp-B7u7Y0gB.mjs} +116 -2
  35. package/dist/{package-version--oQiHwZj.mjs → package-version-P4TT_9IO.mjs} +1 -1
  36. package/dist/{prompt-references-DW5vG5zs.mjs → prompt-references-Ca2Rcrpw.mjs} +2 -2
  37. package/dist/{retrieval-digest-DYEsIeCE.d.mts → retrieval-digest-DT9Ktc4C.d.mts} +2 -2
  38. package/dist/{review-C_5wB0rR.mjs → review-DgaNTtP0.mjs} +8 -8
  39. package/dist/{robots-NQesPX5L.mjs → robots-DNod0XKB.mjs} +1 -1
  40. package/dist/{robots-BQ42Y84a.mjs → robots-msD1xoH5.mjs} +4 -4
  41. package/dist/{search-B5etKU-v.mjs → search-CNzq9S5S.mjs} +7 -6
  42. package/dist/server.d.mts +92 -7
  43. package/dist/server.mjs +9 -7
  44. package/dist/{sidebar-CwZlgyAz.d.mts → sidebar-DmXRpAAK.d.mts} +1 -1
  45. package/dist/{sitemap-DjhxvQP1.mjs → sitemap-CHvips7o.mjs} +8 -7
  46. package/dist/{sitemap-server-B0SiREN0.mjs → sitemap-server-C2TauhKa.mjs} +11 -1
  47. package/dist/{skills-BFang8vF.mjs → skills-aaE5L1go.mjs} +8 -7
  48. package/dist/{standards-discovery-D1Ys4J3h.d.mts → standards-discovery-Cqq8QmlH.d.mts} +1 -1
  49. package/dist/{types-DLLefoU5.d.mts → types-BthCiAD9.d.mts} +114 -1
  50. package/dist/{upgrade-kj2crJSk.mjs → upgrade-B0OA_7jE.mjs} +2 -2
  51. package/package.json +1 -1
  52. /package/dist/{agent-skills-progressive-disclosure-Da9LKEKv.mjs → agent-skills-progressive-disclosure-CfIsq4Ew.mjs} +0 -0
  53. /package/dist/{audience-exposure-Cw3SA4WE.d.mts → audience-exposure-BW13cI2O.d.mts} +0 -0
  54. /package/dist/{cloud-ask-ai-CkCYjf2N.mjs → cloud-ask-ai-DeojA5lB.mjs} +0 -0
  55. /package/dist/{config-BaTmjDqD.mjs → config-BhF6J2N4.mjs} +0 -0
  56. /package/dist/{errors-DZiNXv5c.mjs → errors-B5KTe1Xo.mjs} +0 -0
  57. /package/dist/{templates-kc7jxspR.mjs → templates-m_j4ARnu.mjs} +0 -0
  58. /package/dist/{utils-DOMeZW9V.mjs → utils-DcCUwxqS.mjs} +0 -0
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { i as wasCliErrorReported, r as shouldPrintStackTrace, t as formatCliError } from "../errors-DZiNXv5c.mjs";
2
+ import { i as wasCliErrorReported, r as shouldPrintStackTrace, t as formatCliError } from "../errors-B5KTe1Xo.mjs";
3
3
  import pc from "picocolors";
4
4
 
5
5
  //#region src/cli/index.ts
@@ -32,7 +32,9 @@ function parseFlags(argv) {
32
32
  "analytics",
33
33
  "ask-ai",
34
34
  "deploy",
35
- "dry-run"
35
+ "dry-run",
36
+ "write",
37
+ "allow-publish"
36
38
  ]);
37
39
  for (let i = 0; i < argv.length; i++) {
38
40
  const arg = argv[i];
@@ -70,6 +72,12 @@ async function main() {
70
72
  client: typeof flags.client === "string" ? flags.client : void 0,
71
73
  json: typeof flags.json === "boolean" ? flags.json : void 0
72
74
  };
75
+ const authoringMcpOptions = {
76
+ configPath: typeof flags.config === "string" ? flags.config : void 0,
77
+ allowPublish: typeof flags["allow-publish"] === "boolean" ? flags["allow-publish"] : void 0,
78
+ branchPrefix: typeof flags["branch-prefix"] === "string" ? flags["branch-prefix"] : void 0,
79
+ baseBranch: typeof flags["base-branch"] === "string" ? flags["base-branch"] : void 0
80
+ };
73
81
  const devOptions = {
74
82
  verbose: typeof flags.verbose === "boolean" ? flags.verbose : void 0,
75
83
  port: typeof flags.port === "string" ? flags.port : void 0,
@@ -108,43 +116,54 @@ async function main() {
108
116
  ]
109
117
  };
110
118
  if (!parsedCommand.command || parsedCommand.command === "init") {
111
- const { init } = await import("../init-jDQSo-Or.mjs");
119
+ const { init } = await import("../init-DKukQdOQ.mjs");
112
120
  await init(initOptions);
113
121
  } else if (parsedCommand.command === "dev") {
114
- const { dev } = await import("../dev-BvbYmTLz.mjs");
122
+ const { dev } = await import("../dev-B0iHJjTz.mjs");
115
123
  await dev(devOptions);
116
124
  } else if (parsedCommand.command === "deploy") {
117
- const { runCloudDeploy } = await import("../cloud-FNfcbfli.mjs");
125
+ const { runCloudDeploy } = await import("../cloud-BLxt_HYO.mjs");
118
126
  await runCloudDeploy(cloudOptions);
119
127
  } else if (parsedCommand.command === "preview") {
120
- const { runCloudPreview } = await import("../cloud-FNfcbfli.mjs");
128
+ const { runCloudPreview } = await import("../cloud-BLxt_HYO.mjs");
121
129
  await runCloudPreview(cloudOptions);
122
130
  } else if (parsedCommand.command === "cloud" && subcommand === "deploy") {
123
- const { runCloudDeploy } = await import("../cloud-FNfcbfli.mjs");
131
+ const { runCloudDeploy } = await import("../cloud-BLxt_HYO.mjs");
124
132
  await runCloudDeploy(cloudOptions);
125
133
  } else if (parsedCommand.command === "cloud" && subcommand === "preview") {
126
- const { runCloudPreview } = await import("../cloud-FNfcbfli.mjs");
134
+ const { runCloudPreview } = await import("../cloud-BLxt_HYO.mjs");
127
135
  await runCloudPreview(cloudOptions);
128
136
  } else if (parsedCommand.command === "cloud" && subcommand === "init") {
129
- const { runCloudInit } = await import("../cloud-FNfcbfli.mjs");
137
+ const { runCloudInit } = await import("../cloud-BLxt_HYO.mjs");
130
138
  await runCloudInit(cloudOptions);
131
139
  } else if (parsedCommand.command === "cloud" && subcommand === "sync") {
132
- const { syncCloudConfig } = await import("../cloud-FNfcbfli.mjs");
140
+ const { syncCloudConfig } = await import("../cloud-BLxt_HYO.mjs");
133
141
  await syncCloudConfig(cloudOptions);
134
142
  } else if (parsedCommand.command === "cloud" && subcommand === "check") {
135
- const { runCloudCheck } = await import("../cloud-FNfcbfli.mjs");
143
+ const { runCloudCheck } = await import("../cloud-BLxt_HYO.mjs");
136
144
  await runCloudCheck(cloudOptions);
137
145
  } else if (parsedCommand.command === "cloud") {
138
146
  console.error(pc.red(`Unknown cloud subcommand: ${subcommand ?? "(missing)"}`));
139
147
  console.error();
140
- const { printCloudHelp } = await import("../cloud-FNfcbfli.mjs");
148
+ const { printCloudHelp } = await import("../cloud-BLxt_HYO.mjs");
141
149
  printCloudHelp();
142
150
  process.exit(1);
151
+ } else if (parsedCommand.command === "mcp" && subcommand === "author") {
152
+ const { runAuthoringMcp } = await import("../authoring-BsWXMH43.mjs");
153
+ await runAuthoringMcp(authoringMcpOptions);
143
154
  } else if (parsedCommand.command === "mcp") {
144
- const { runMcp } = await import("../mcp-CwgKlbIz.mjs");
155
+ const { runMcp } = await import("../mcp-B6ZZdp6F.mjs");
145
156
  await runMcp(mcpOptions);
157
+ } else if (parsedCommand.command === "agent" && subcommand === "feedback") {
158
+ const { parseAgentFeedbackImproveArgs, printAgentFeedbackImproveHelp, runAgentFeedbackImprove } = await import("../feedback-DdWc33oO.mjs");
159
+ const feedbackOptions = parseAgentFeedbackImproveArgs(args.slice(2));
160
+ if (feedbackOptions.help) {
161
+ printAgentFeedbackImproveHelp();
162
+ return;
163
+ }
164
+ await runAgentFeedbackImprove(feedbackOptions);
146
165
  } else if (parsedCommand.command === "agent" && subcommand === "compact") {
147
- const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-BLHMoVId.mjs").then((n) => n.t);
166
+ const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-NerpHcQB.mjs").then((n) => n.t);
148
167
  const agentCompactOptions = parseAgentCompactArgs(args.slice(2));
149
168
  if (agentCompactOptions.help) {
150
169
  printAgentCompactHelp();
@@ -152,7 +171,7 @@ async function main() {
152
171
  }
153
172
  await compactAgentDocs(agentCompactOptions);
154
173
  } else if (parsedCommand.command === "agent" && subcommand === "export") {
155
- const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-oiWxB5aX.mjs");
174
+ const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-DlBUKkTt.mjs");
156
175
  const agentExportOptions = parseAgentExportArgs(args.slice(2));
157
176
  if (agentExportOptions.help) {
158
177
  printAgentExportHelp();
@@ -162,13 +181,15 @@ async function main() {
162
181
  } else if (parsedCommand.command === "agent") {
163
182
  console.error(pc.red(`Unknown agent subcommand: ${subcommand ?? "(missing)"}`));
164
183
  console.error();
165
- const { printAgentCompactHelp } = await import("../agent-BLHMoVId.mjs").then((n) => n.t);
166
- const { printAgentExportHelp } = await import("../agent-export-oiWxB5aX.mjs");
184
+ const { printAgentCompactHelp } = await import("../agent-NerpHcQB.mjs").then((n) => n.t);
185
+ const { printAgentExportHelp } = await import("../agent-export-DlBUKkTt.mjs");
186
+ const { printAgentFeedbackImproveHelp } = await import("../feedback-DdWc33oO.mjs");
167
187
  printAgentCompactHelp();
168
188
  printAgentExportHelp();
189
+ printAgentFeedbackImproveHelp();
169
190
  process.exit(1);
170
191
  } else if (parsedCommand.command === "agents" && subcommand === "generate") {
171
- const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-CtqIUW5I.mjs");
192
+ const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-D3SLnQet.mjs");
172
193
  const agentsOptions = parseAgentsGenerateArgs(args.slice(2));
173
194
  if (agentsOptions.help) {
174
195
  printAgentsGenerateHelp();
@@ -178,11 +199,11 @@ async function main() {
178
199
  } else if (parsedCommand.command === "agents") {
179
200
  console.error(pc.red(`Unknown agents subcommand: ${subcommand ?? "(missing)"}`));
180
201
  console.error();
181
- const { printAgentsGenerateHelp } = await import("../agents-CtqIUW5I.mjs");
202
+ const { printAgentsGenerateHelp } = await import("../agents-D3SLnQet.mjs");
182
203
  printAgentsGenerateHelp();
183
204
  process.exit(1);
184
205
  } else if (parsedCommand.command === "skills" && subcommand === "scaffold") {
185
- const { parseSkillScaffoldArgs, printSkillScaffoldHelp, scaffoldSkillFromContracts } = await import("../skills-BFang8vF.mjs");
206
+ const { parseSkillScaffoldArgs, printSkillScaffoldHelp, scaffoldSkillFromContracts } = await import("../skills-aaE5L1go.mjs");
186
207
  const skillOptions = parseSkillScaffoldArgs(args.slice(2));
187
208
  if (skillOptions.help) {
188
209
  printSkillScaffoldHelp();
@@ -190,16 +211,16 @@ async function main() {
190
211
  }
191
212
  await scaffoldSkillFromContracts(skillOptions);
192
213
  } else if (parsedCommand.command === "skills" && (subcommand === "--help" || subcommand === "-h")) {
193
- const { printSkillScaffoldHelp } = await import("../skills-BFang8vF.mjs");
214
+ const { printSkillScaffoldHelp } = await import("../skills-aaE5L1go.mjs");
194
215
  printSkillScaffoldHelp();
195
216
  } else if (parsedCommand.command === "skills") {
196
217
  console.error(pc.red(`Unknown skills subcommand: ${subcommand ?? "(missing)"}`));
197
218
  console.error();
198
- const { printSkillScaffoldHelp } = await import("../skills-BFang8vF.mjs");
219
+ const { printSkillScaffoldHelp } = await import("../skills-aaE5L1go.mjs");
199
220
  printSkillScaffoldHelp();
200
221
  process.exit(1);
201
222
  } else if (parsedCommand.command === "doctor") {
202
- const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-Bmm0uY98.mjs");
223
+ const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-x3k6aE2I.mjs");
203
224
  const doctorOptions = parseDoctorArgs(args.slice(1));
204
225
  if (doctorOptions.help) {
205
226
  printDoctorHelp();
@@ -207,7 +228,7 @@ async function main() {
207
228
  }
208
229
  await runDoctor(doctorOptions);
209
230
  } else if (parsedCommand.command === "review") {
210
- const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-C_5wB0rR.mjs");
231
+ const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-DgaNTtP0.mjs");
211
232
  const reviewOptions = parseReviewArgs(args.slice(1));
212
233
  if (reviewOptions.help) {
213
234
  printReviewHelp();
@@ -215,7 +236,7 @@ async function main() {
215
236
  }
216
237
  await runReview(reviewOptions);
217
238
  } else if ((parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") && subcommand === "validate") {
218
- const { parseCodeBlocksValidateArgs, printCodeBlocksValidateHelp, runCodeBlocksValidate } = await import("../codeblocks-jbWuvtJQ.mjs");
239
+ const { parseCodeBlocksValidateArgs, printCodeBlocksValidateHelp, runCodeBlocksValidate } = await import("../codeblocks-qHdKGVaE.mjs");
219
240
  const codeBlocksOptions = parseCodeBlocksValidateArgs(args.slice(2));
220
241
  if (codeBlocksOptions.help) {
221
242
  printCodeBlocksValidateHelp();
@@ -225,11 +246,11 @@ async function main() {
225
246
  } else if (parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") {
226
247
  console.error(pc.red(`Unknown codeblocks subcommand: ${subcommand ?? "(missing)"}`));
227
248
  console.error();
228
- const { printCodeBlocksValidateHelp } = await import("../codeblocks-jbWuvtJQ.mjs");
249
+ const { printCodeBlocksValidateHelp } = await import("../codeblocks-qHdKGVaE.mjs");
229
250
  printCodeBlocksValidateHelp();
230
251
  process.exit(1);
231
252
  } else if (parsedCommand.command === "search" && subcommand === "sync") {
232
- const { syncSearch } = await import("../search-B5etKU-v.mjs");
253
+ const { syncSearch } = await import("../search-CNzq9S5S.mjs");
233
254
  await syncSearch(searchSyncOptions);
234
255
  } else if (parsedCommand.command === "search") {
235
256
  console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
@@ -237,7 +258,7 @@ async function main() {
237
258
  printHelp();
238
259
  process.exit(1);
239
260
  } else if (parsedCommand.command === "sitemap" && subcommand === "generate") {
240
- const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-DjhxvQP1.mjs");
261
+ const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-CHvips7o.mjs");
241
262
  const sitemapOptions = parseSitemapGenerateArgs(args.slice(2));
242
263
  if (sitemapOptions.help) {
243
264
  printSitemapGenerateHelp();
@@ -247,11 +268,11 @@ async function main() {
247
268
  } else if (parsedCommand.command === "sitemap") {
248
269
  console.error(pc.red(`Unknown sitemap subcommand: ${subcommand ?? "(missing)"}`));
249
270
  console.error();
250
- const { printSitemapGenerateHelp } = await import("../sitemap-DjhxvQP1.mjs");
271
+ const { printSitemapGenerateHelp } = await import("../sitemap-CHvips7o.mjs");
251
272
  printSitemapGenerateHelp();
252
273
  process.exit(1);
253
274
  } else if (parsedCommand.command === "robots" && subcommand === "generate") {
254
- const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-BQ42Y84a.mjs");
275
+ const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-msD1xoH5.mjs");
255
276
  const robotsOptions = parseRobotsGenerateArgs(args.slice(2));
256
277
  if (robotsOptions.help) {
257
278
  printRobotsGenerateHelp();
@@ -261,11 +282,11 @@ async function main() {
261
282
  } else if (parsedCommand.command === "robots") {
262
283
  console.error(pc.red(`Unknown robots subcommand: ${subcommand ?? "(missing)"}`));
263
284
  console.error();
264
- const { printRobotsGenerateHelp } = await import("../robots-BQ42Y84a.mjs");
285
+ const { printRobotsGenerateHelp } = await import("../robots-msD1xoH5.mjs");
265
286
  printRobotsGenerateHelp();
266
287
  process.exit(1);
267
288
  } else if (parsedCommand.command === "downgrade") {
268
- const { downgrade } = await import("../downgrade-Dqm0rJMy.mjs");
289
+ const { downgrade } = await import("../downgrade-Dd3vvVdD.mjs");
269
290
  const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
270
291
  const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
271
292
  await downgrade({
@@ -274,7 +295,7 @@ async function main() {
274
295
  dryRun: flags["dry-run"] === true
275
296
  });
276
297
  } else if (parsedCommand.command === "upgrade") {
277
- const { upgrade } = await import("../upgrade-kj2crJSk.mjs");
298
+ const { upgrade } = await import("../upgrade-B0OA_7jE.mjs");
278
299
  const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
279
300
  const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
280
301
  const version = typeof flags.version === "string" ? flags.version : hasVersionFlag ? "" : void 0;
@@ -306,13 +327,13 @@ ${pc.dim("Commands:")}
306
327
  ${pc.cyan("deploy")} Sync cloud config and deploy hosted preview docs
307
328
  ${pc.cyan("preview")} Alias for ${pc.cyan("deploy")}
308
329
  ${pc.cyan("cloud")} Docs Cloud utilities (${pc.dim("init")}, ${pc.dim("check")}, ${pc.dim("deploy")}, ${pc.dim("preview")}, ${pc.dim("sync")})
309
- ${pc.cyan("agent")} Agent utilities (${pc.dim("compact")} page context, ${pc.dim("export")} static bundles)
330
+ ${pc.cyan("agent")} Agent utilities (${pc.dim("compact")}, ${pc.dim("export")}, ${pc.dim("feedback")})
310
331
  ${pc.cyan("agents")} AGENTS.md utilities (${pc.dim("generate")} for static agent instructions)
311
332
  ${pc.cyan("skills")} Agent Skills utilities (${pc.dim("scaffold")} from structured page contracts)
312
333
  ${pc.cyan("doctor")} Inspect and score agent or reader-facing docs quality
313
334
  ${pc.cyan("review")} Review changed docs files and wire Docs Review CI
314
335
  ${pc.cyan("codeblocks")} Validate fenced MDX code blocks (${pc.dim("validate")})
315
- ${pc.cyan("mcp")} Run the built-in docs MCP server over stdio
336
+ ${pc.cyan("mcp")} Run read-only docs MCP or the separate protected authoring server
316
337
  ${pc.cyan("robots")} Robots.txt utilities (${pc.dim("generate")} for agent access policy)
317
338
  ${pc.cyan("search")} Search utilities (${pc.dim("sync")} for external indexes)
318
339
  ${pc.cyan("sitemap")} Sitemap utilities (${pc.dim("generate")} for sitemap XML/Markdown data)
@@ -339,6 +360,10 @@ ${pc.dim("Options for mcp:")}
339
360
  ${pc.cyan("--api-base-url <url>")} Override the hosted Docs Cloud API base URL for ${pc.cyan("mcp setup")}
340
361
  ${pc.cyan("--client <name>")} Emit native config for ${pc.dim("claude-code")}, ${pc.dim("cursor")}, or ${pc.dim("vscode")}
341
362
  ${pc.cyan("--json")} Print the selected MCP client JSON only for ${pc.cyan("mcp setup")}
363
+ ${pc.cyan("mcp author")} Run the local docs-authoring MCP over stdio
364
+ ${pc.cyan("--branch-prefix <p>")} Restrict authoring branches (default: ${pc.dim("docs/")})
365
+ ${pc.cyan("--base-branch <name>")} Set the base used for authoring draft PRs
366
+ ${pc.cyan("--allow-publish")} Explicitly register commit, push, and draft-PR publishing
342
367
 
343
368
  ${pc.dim("Options for dev:")}
344
369
  ${pc.cyan("--port <number>")} Run the frameworkless preview on a custom port
@@ -383,6 +408,13 @@ ${pc.dim("Options for agent export:")}
383
408
  ${pc.cyan("agent export --check")} Fail when the static Agent Bundle is stale
384
409
  ${pc.cyan("--config <path>")} Use a custom docs config path instead of ${pc.dim("docs.config.ts[x]")}
385
410
 
411
+ ${pc.dim("Options for agent feedback:")}
412
+ ${pc.cyan("agent feedback --input <path>")} Cluster JSON or JSONL agent feedback into improvement drafts
413
+ ${pc.cyan("--min-occurrences <2-100>")} Recurrence threshold (default: 2)
414
+ ${pc.cyan("--write")} Write the report to ${pc.dim(".farming-labs/agent-feedback-improvements.json")}
415
+ ${pc.cyan("--output <path>")} Override the written report path
416
+ ${pc.cyan("--json")} Print JSON while writing
417
+
386
418
  ${pc.dim("Options for skills scaffold:")}
387
419
  ${pc.cyan("skills scaffold [name]")} Compile page agent contracts into a compact ${pc.dim("SKILL.md")} router and focused references
388
420
  ${pc.cyan("--output <directory>")} Write to a full skill directory; defaults to ${pc.dim("skills/<name>")}
@@ -1,4 +1,4 @@
1
- import { ft as DocsAnalyticsConfig } from "../types-DLLefoU5.mjs";
1
+ import { ft as DocsAnalyticsConfig } from "../types-BthCiAD9.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-DZiNXv5c.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-BaTmjDqD.mjs";
3
- import { i as detectPackageManagerFromProject, t as detectFramework } from "./utils-DOMeZW9V.mjs";
1
+ import { n as markCliErrorReported } from "./errors-B5KTe1Xo.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-BhF6J2N4.mjs";
3
+ import { i as detectPackageManagerFromProject, t as detectFramework } from "./utils-DcCUwxqS.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 { Et as DocsCloudConfig, ft as DocsAnalyticsConfig, t as AIConfig } from "./types-DLLefoU5.mjs";
1
+ import { Et as DocsCloudConfig, ft as DocsAnalyticsConfig, t as AIConfig } from "./types-BthCiAD9.mjs";
2
2
 
3
3
  //#region src/cloud-ask-ai.d.ts
4
4
  interface DocsCloudAskAIConfig {
@@ -1,8 +1,8 @@
1
1
  import { existsSync, mkdtempSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
2
2
  import path from "node:path";
3
3
  import { execFile } from "node:child_process";
4
- import { tmpdir } from "node:os";
5
4
  import { promisify } from "node:util";
5
+ import { tmpdir } from "node:os";
6
6
 
7
7
  //#region src/code-blocks.ts
8
8
  const execFileAsync = promisify(execFile);
@@ -1,5 +1,5 @@
1
- import { a as validateCodeBlocks, r as resolveDocsCodeBlocksValidateConfig } from "./code-blocks-Bel6vDqI.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-BaTmjDqD.mjs";
1
+ import { a as validateCodeBlocks, r as resolveDocsCodeBlocksValidateConfig } from "./code-blocks-c3nIrWOM.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-BhF6J2N4.mjs";
3
3
  import { existsSync, readFileSync } from "node:fs";
4
4
  import pc from "picocolors";
5
5
 
@@ -1,12 +1,12 @@
1
- import { i as detectPackageManagerFromProject } from "./utils-DOMeZW9V.mjs";
2
- import { $ as postcssConfigTemplate, C as globalCssTemplate, g as docsLayoutTemplate, kt as tsconfigTemplate, tt as rootLayoutTemplate } from "./templates-kc7jxspR.mjs";
1
+ import { i as detectPackageManagerFromProject } from "./utils-DcCUwxqS.mjs";
2
+ import { $ as postcssConfigTemplate, C as globalCssTemplate, g as docsLayoutTemplate, kt as tsconfigTemplate, tt as rootLayoutTemplate } from "./templates-m_j4ARnu.mjs";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
5
5
  import { spawn } from "node:child_process";
6
+ import { z } from "zod";
6
7
  import os from "node:os";
7
8
  import pc from "picocolors";
8
9
  import { fileURLToPath } from "node:url";
9
- import { z } from "zod";
10
10
 
11
11
  //#region src/cli/dev-banner.ts
12
12
  function createDevLogger() {
@@ -1,5 +1,5 @@
1
- import { ft as DocsAnalyticsConfig, mt as DocsAnalyticsEventInput, pt as DocsAnalyticsEvent } from "./types-DLLefoU5.mjs";
2
- import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-BmbZVAT5.mjs";
1
+ import { ft as DocsAnalyticsConfig, mt as DocsAnalyticsEventInput, pt as DocsAnalyticsEvent } from "./types-BthCiAD9.mjs";
2
+ import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-19G2HJ62.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-CSyFE6SS.mjs";
2
- import { t as createDocsCloudAskAIResponse } from "./cloud-ask-ai-CkCYjf2N.mjs";
2
+ import { t as createDocsCloudAskAIResponse } from "./cloud-ask-ai-DeojA5lB.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";
@@ -1,22 +1,23 @@
1
- import { i as scanDocsPageTargets, n as compactAgentDocs, r as inspectAgentCompactionState } from "./agent-BLHMoVId.mjs";
2
- import { d as httpLinkHeaderHasTargetRelation, f as AGENT_SKILL_ARCHIVE_MAX_UNCOMPRESSED_BYTES, p as readAgentSkillDocumentFromTar } from "./prompt-references-DW5vG5zs.mjs";
3
- import { A as buildDocsAgentDiscoverySpec, At as DEFAULT_SITEMAP_XML_ROUTE, Bn as DEFAULT_MCP_PUBLIC_ROUTE, F as buildDocsMcpEndpointCandidates, Hn as DEFAULT_MCP_WELL_KNOWN_ROUTE, It as resolveDocsSitemapConfig, M as buildDocsConfigMap, Ot as DEFAULT_SITEMAP_MD_ROUTE, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, T as DOCS_CONFIG_MAP_TOP_LEVEL_KEYS, Wn as getDocsMcpProtectedResourceMetadataRoutes, Zn as normalizeDocsMcpAuthorizationServerUrls, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, i as DEFAULT_AGENT_FEEDBACK_ROUTE, kt as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, pn as resolveAskAISearchRequestConfig, qn as isDocsMcpOAuthScopeToken, t as DEFAULT_AGENTS_MD_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, x as DEFAULT_SKILL_MD_ROUTE } from "./agent-CFqECAG0.mjs";
1
+ import { i as scanDocsPageTargets, n as compactAgentDocs, r as inspectAgentCompactionState } from "./agent-NerpHcQB.mjs";
2
+ import { d as httpLinkHeaderHasTargetRelation, f as AGENT_SKILL_ARCHIVE_MAX_UNCOMPRESSED_BYTES, p as readAgentSkillDocumentFromTar } from "./prompt-references-Ca2Rcrpw.mjs";
3
+ import { A as buildDocsAgentDiscoverySpec, At as DEFAULT_SITEMAP_XML_ROUTE, Bn as DEFAULT_MCP_PUBLIC_ROUTE, F as buildDocsMcpEndpointCandidates, Hn as DEFAULT_MCP_WELL_KNOWN_ROUTE, It as resolveDocsSitemapConfig, M as buildDocsConfigMap, Ot as DEFAULT_SITEMAP_MD_ROUTE, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, T as DOCS_CONFIG_MAP_TOP_LEVEL_KEYS, Wn as getDocsMcpProtectedResourceMetadataRoutes, Zn as normalizeDocsMcpAuthorizationServerUrls, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, i as DEFAULT_AGENT_FEEDBACK_ROUTE, kt as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, or as resolveDocsOkfConfig, pn as resolveAskAISearchRequestConfig, qn as isDocsMcpOAuthScopeToken, sr as resolveDocsOkfTrustMetadata, t as DEFAULT_AGENTS_MD_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, x as DEFAULT_SKILL_MD_ROUTE } from "./agent-PSrgiJD8.mjs";
4
4
  import { f as PAGE_AGENT_CONTRACT_FIELDS } from "./markdown-sections-7OoA7ylx.mjs";
5
5
  import { I as resolveDocsDiscoveryApiRoute, _ as DEFAULT_API_CATALOG_FORMAT, d as DEFAULT_AGENT_SKILLS_ROUTE_PATTERN, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, h as DEFAULT_AGENT_SKILL_FORMAT, l as DEFAULT_AGENT_SKILLS_INDEX_FORMAT, n as API_CATALOG_MEDIA_TYPE, r as API_CATALOG_PROFILE_URI, t as AGENT_SKILLS_DISCOVERY_SCHEMA_URI, u as DEFAULT_AGENT_SKILLS_INDEX_ROUTE, v as DEFAULT_API_CATALOG_ROUTE } from "./standards-discovery-Ckx0tN7B.mjs";
6
6
  import { isDocsAgentSkillName, validateDocsAgentSkillFrontmatter } from "./agent-skills-spec.mjs";
7
- import "./content-change-hydration-BsbBXAUi.mjs";
8
- import { a as analyzeDocsRobotsTxt, n as DEFAULT_ROBOTS_TXT_ROUTE, u as resolveDocsRobotsConfig } from "./robots-NQesPX5L.mjs";
7
+ import "./openapi-mcp-B7u7Y0gB.mjs";
8
+ import { a as analyzeDocsRobotsTxt, n as DEFAULT_ROBOTS_TXT_ROUTE, u as resolveDocsRobotsConfig } from "./robots-DNod0XKB.mjs";
9
9
  import { a as resolveDocsMetadataBaseUrl } from "./metadata-D4v_R1t5.mjs";
10
- import "./sitemap-server-B0SiREN0.mjs";
10
+ import "./sitemap-server-C2TauhKa.mjs";
11
11
  import { r as resolveConfiguredAgentSkills } from "./agent-skills-server-DFqQyO_V.mjs";
12
- import { t as runDocsGoldenTasks } from "./agent-evals-GpcaCbRb.mjs";
12
+ import { t as runDocsGoldenTasks } from "./agent-evals-U9d_db2u.mjs";
13
13
  import { createFilesystemDocsMcpSource, getDocsConfigSchema, resolveDocsMcpConfig } from "./mcp.mjs";
14
- import "./code-blocks-Bel6vDqI.mjs";
14
+ import "./authoring-mcp-BCM5CJbJ.mjs";
15
+ import "./code-blocks-c3nIrWOM.mjs";
15
16
  import "./server.mjs";
16
- import { _ as resolveDocsContentDir, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, r as extractTopLevelConfigObject, s as loadDocsConfigModuleResultWithProjectEnv, t as extractNestedObjectLiteral, v as resolveDocsProjectRoot } from "./config-BaTmjDqD.mjs";
17
- import { t as detectFramework } from "./utils-DOMeZW9V.mjs";
18
- import { i as createAgentUsefulnessPagesFromMcp, n as analyzeAgentSurfaceDrift, r as analyzeAgentUsefulness, t as resolveGoldenEvaluationInput } from "./golden-evaluations-K45fcWGW.mjs";
19
- import { t as analyzeConfiguredAgentSkillsProgressiveDisclosure } from "./agent-skills-progressive-disclosure-Da9LKEKv.mjs";
17
+ import { _ as resolveDocsContentDir, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, r as extractTopLevelConfigObject, s as loadDocsConfigModuleResultWithProjectEnv, t as extractNestedObjectLiteral, v as resolveDocsProjectRoot } from "./config-BhF6J2N4.mjs";
18
+ import { t as detectFramework } from "./utils-DcCUwxqS.mjs";
19
+ import { i as createAgentUsefulnessPagesFromMcp, n as analyzeAgentSurfaceDrift, r as analyzeAgentUsefulness, t as resolveGoldenEvaluationInput } from "./golden-evaluations-7k7Akp3R.mjs";
20
+ import { t as analyzeConfiguredAgentSkillsProgressiveDisclosure } from "./agent-skills-progressive-disclosure-CfIsq4Ew.mjs";
20
21
  import { existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
21
22
  import path from "node:path";
22
23
  import { createHash } from "node:crypto";
@@ -1925,6 +1926,9 @@ async function inspectAgentReadiness(options = {}) {
1925
1926
  const evaluationCoverage = evaluations.coverage;
1926
1927
  const formatDimensionCoverage = (label, dimension) => `${label}: ${dimension.status} (${dimension.measuredTaskCount}/${dimension.totalTaskCount} tasks)`;
1927
1928
  checks.push(makeCheck("golden-task-coverage", "Golden evaluation coverage", evaluationCoverage.status === "measured" ? "pass" : "warn", Math.round(evaluationCoverage.coveragePercent / 100 * 5), 5, `${evaluationCoverage.status} coverage across optional confidence dimensions (${evaluationCoverage.measuredTaskDimensions}/${evaluationCoverage.totalTaskDimensions} task-dimensions, ${evaluationCoverage.coveragePercent}%): ${formatDimensionCoverage("safety", evaluationCoverage.dimensions.safety)}; ${formatDimensionCoverage("answer quality", evaluationCoverage.dimensions.answerQuality)}; ${formatDimensionCoverage("executable examples", evaluationCoverage.dimensions.executableExamples)}.`, evaluationCoverage.status === "measured" ? void 0 : "Add golden-task safety expectations, actual-answer assertions, and execute-level example checks so each confidence dimension is measured explicitly."));
1929
+ const okfConfig = resolveDocsOkfConfig(config?.agent?.okf);
1930
+ const staleOkfPages = okfConfig.enabled ? pages.filter((page) => resolveDocsOkfTrustMetadata(page, okfConfig).stale) : [];
1931
+ checks.push(makeCheck("okf-trust", "OKF trust metadata", staleOkfPages.length > 0 ? "warn" : "pass", staleOkfPages.length > 0 ? 1 : 2, 2, !okfConfig.enabled ? "OKF export is optional and not configured." : staleOkfPages.length === 0 ? `OKF v0.2 trust metadata is enabled at ${okfConfig.route}; ${pages.length} page${pages.length === 1 ? "" : "s"} passed the configured staleness policy.` : `${staleOkfPages.length}/${pages.length} OKF document${staleOkfPages.length === 1 ? " is" : "s are"} beyond stale_after.`, staleOkfPages.length > 0 ? "Review or regenerate stale pages, then update okf.verified or stale_after with an auditable timestamp." : void 0));
1928
1932
  const hosted = options.url ? await buildHostedAgentChecks(options.url, pages) : void 0;
1929
1933
  if (hosted) checks.push(...hosted.checks);
1930
1934
  const { score, maxScore } = normalizedDoctorScore(checks.reduce((total, check) => total + check.score, 0), checks.reduce((total, check) => total + check.maxScore, 0));
@@ -1,5 +1,5 @@
1
- import { c as fileExists, o as exec, s as execOutput } from "./utils-DOMeZW9V.mjs";
2
- import { a as getPackagesForFramework, c as resolveDocsPackageManager, l as validateUpgradeVersion, r as buildDocsPackageInstallCommand, s as resolveDocsPackageFramework } from "./package-version--oQiHwZj.mjs";
1
+ import { c as fileExists, o as exec, s as execOutput } from "./utils-DcCUwxqS.mjs";
2
+ import { a as getPackagesForFramework, c as resolveDocsPackageManager, l as validateUpgradeVersion, r as buildDocsPackageInstallCommand, s as resolveDocsPackageFramework } from "./package-version-P4TT_9IO.mjs";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
5
5
  import pc from "picocolors";
@@ -0,0 +1,72 @@
1
+ import { n as analyzeDocsAgentFeedback, r as readDocsAgentFeedbackFile } from "./agent-feedback-loop-CGrc-gDW.mjs";
2
+ import { mkdirSync, renameSync, writeFileSync } from "node:fs";
3
+ import path from "node:path";
4
+ import pc from "picocolors";
5
+
6
+ //#region src/cli/feedback.ts
7
+ function parseAgentFeedbackImproveArgs(argv) {
8
+ const options = {};
9
+ for (let index = 0; index < argv.length; index += 1) {
10
+ const argument = argv[index];
11
+ if (argument === "--write") options.write = true;
12
+ else if (argument === "--json") options.json = true;
13
+ else if (argument === "--help" || argument === "-h") options.help = true;
14
+ else if (argument === "--input" || argument === "--output" || argument === "--min-occurrences") {
15
+ const value = argv[index + 1];
16
+ if (!value || value.startsWith("--")) throw new Error(`${argument} requires a value.`);
17
+ index += 1;
18
+ if (argument === "--input") options.input = value;
19
+ else if (argument === "--output") options.output = value;
20
+ else {
21
+ const parsed = Number(value);
22
+ if (!Number.isInteger(parsed) || parsed < 2 || parsed > 100) throw new Error("--min-occurrences must be an integer from 2 through 100.");
23
+ options.minOccurrences = parsed;
24
+ }
25
+ } else throw new Error(`Unknown agent feedback flag: ${argument}`);
26
+ }
27
+ return options;
28
+ }
29
+ function resolveProjectPath(rootDir, value) {
30
+ if (path.isAbsolute(value)) throw new Error("Feedback paths must be project-relative.");
31
+ const candidate = path.resolve(rootDir, value);
32
+ const relative = path.relative(rootDir, candidate);
33
+ if (relative.startsWith("..") || path.isAbsolute(relative)) throw new Error("Feedback paths must stay inside the project root.");
34
+ return candidate;
35
+ }
36
+ function writeReport(outputPath, report) {
37
+ mkdirSync(path.dirname(outputPath), { recursive: true });
38
+ const temporaryPath = `${outputPath}.${process.pid}.tmp`;
39
+ writeFileSync(temporaryPath, `${JSON.stringify(report, null, 2)}\n`, "utf8");
40
+ renameSync(temporaryPath, outputPath);
41
+ }
42
+ async function runAgentFeedbackImprove(options = {}) {
43
+ const rootDir = path.resolve(options.rootDir ?? process.cwd());
44
+ const input = options.input ?? ".farming-labs/agent-feedback.jsonl";
45
+ const output = options.output ?? ".farming-labs/agent-feedback-improvements.json";
46
+ const report = analyzeDocsAgentFeedback(readDocsAgentFeedbackFile(resolveProjectPath(rootDir, input)), { minOccurrences: options.minOccurrences });
47
+ if (options.write) {
48
+ const outputPath = resolveProjectPath(rootDir, output);
49
+ writeReport(outputPath, report);
50
+ if (!options.json) console.log(pc.green(`Wrote ${path.relative(rootDir, outputPath)} with ${report.recurringClusterCount} recurring cluster${report.recurringClusterCount === 1 ? "" : "s"}.`));
51
+ }
52
+ if (options.json || !options.write) console.log(JSON.stringify(report, null, 2));
53
+ return report;
54
+ }
55
+ function printAgentFeedbackImproveHelp() {
56
+ console.log(`${pc.bold("docs agent feedback")} — turn agent feedback into improvement drafts
57
+
58
+ ${pc.dim("Usage:")}
59
+ docs agent feedback --input .farming-labs/agent-feedback.jsonl
60
+ docs agent feedback --input feedback.json --write
61
+
62
+ ${pc.dim("Options:")}
63
+ ${pc.cyan("--input <path>")} JSON array/object or JSON Lines feedback export
64
+ ${pc.cyan("--min-occurrences <2-100>")} Recurrence threshold (default: 2)
65
+ ${pc.cyan("--write")} Write the improvement report
66
+ ${pc.cyan("--output <path>")} Output path (default: .farming-labs/agent-feedback-improvements.json)
67
+ ${pc.cyan("--json")} Print JSON when writing
68
+ `);
69
+ }
70
+
71
+ //#endregion
72
+ export { parseAgentFeedbackImproveArgs, printAgentFeedbackImproveHelp, runAgentFeedbackImprove };
@@ -1,6 +1,6 @@
1
- import { Cn as findDocsAudienceMdxTags, Mn as normalizeAgentVersion, On as agentVersionConstraintsOverlap, Tn as resolveDocsAudienceMdxContent, kn as normalizeAgentFramework } from "./agent-CFqECAG0.mjs";
1
+ import { Cn as findDocsAudienceMdxTags, Mn as normalizeAgentVersion, On as agentVersionConstraintsOverlap, Tn as resolveDocsAudienceMdxContent, kn as normalizeAgentFramework } from "./agent-PSrgiJD8.mjs";
2
2
  import { _ as hasStructuredPageAgentContract, v as normalizePageAgentFrontmatter } from "./markdown-sections-7OoA7ylx.mjs";
3
- import { t as extractCodeBlocksFromMarkdown } from "./code-blocks-Bel6vDqI.mjs";
3
+ import { t as extractCodeBlocksFromMarkdown } from "./code-blocks-c3nIrWOM.mjs";
4
4
  import { isMap, isScalar, isSeq, parseDocument } from "yaml";
5
5
  import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
6
6
  import path from "node:path";