@nitra/cursor 12.15.0 → 12.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/bin/n-cursor.js +2 -11
  3. package/lib/docs/index.md +9 -6
  4. package/lib/docs/pi-agent-fix.md +28 -0
  5. package/lib/docs/pi-agent-skill.md +36 -0
  6. package/lib/docs/pi-model-tiers.md +46 -0
  7. package/lib/docs/pi-one-shot.md +34 -0
  8. package/lib/docs/pi-telemetry-store.md +33 -0
  9. package/lib/docs/pi-trace.md +27 -0
  10. package/lib/docs/pi-write-guard.md +32 -0
  11. package/lib/pi-agent-fix.mjs +253 -0
  12. package/lib/pi-agent-skill.mjs +181 -0
  13. package/lib/pi-model-tiers.mjs +109 -0
  14. package/lib/pi-one-shot.mjs +129 -0
  15. package/lib/pi-telemetry-store.mjs +0 -0
  16. package/lib/pi-trace.mjs +40 -0
  17. package/lib/pi-write-guard.mjs +147 -0
  18. package/package.json +5 -1
  19. package/rules/bun/docs/main.md +7 -6
  20. package/rules/doc-files/js/docgen-files-batch.mjs +20 -5
  21. package/rules/doc-files/js/docgen-gen.mjs +42 -25
  22. package/rules/doc-files/js/docgen-judge-measure.mjs +16 -13
  23. package/rules/doc-files/js/docgen-judge.mjs +11 -9
  24. package/rules/doc-files/js/docs/docgen-files-batch.md +3 -20
  25. package/rules/doc-files/js/docs/docgen-gen.md +3 -20
  26. package/rules/doc-files/js/docs/docgen-judge-measure.md +3 -18
  27. package/rules/doc-files/js/docs/docgen-judge.md +3 -22
  28. package/rules/npm-module/js/docs/skill_meta.md +22 -15
  29. package/rules/npm-module/js/skill_meta.mjs +5 -1
  30. package/rules/python/docs/main.md +11 -11
  31. package/rules/rust/docs/main.md +5 -5
  32. package/rules/text/js/cspell-fix.mjs +15 -16
  33. package/rules/text/js/docs/cspell-fix.md +16 -9
  34. package/rules/text/main.mjs +4 -4
  35. package/schemas/skill-meta.json +8 -0
  36. package/scripts/docs/skills-cli.md +21 -25
  37. package/scripts/docs/update-blue-oak.md +8 -8
  38. package/scripts/lib/adr/docs/normalize-cli.md +3 -20
  39. package/scripts/lib/adr/docs/normalize-pipeline.md +3 -33
  40. package/scripts/lib/adr/normalize-cli.mjs +2 -2
  41. package/scripts/lib/adr/normalize-pipeline.mjs +78 -44
  42. package/scripts/lib/docs/discover-checkable-rules.md +6 -6
  43. package/scripts/lib/docs/inline-template-links.md +8 -6
  44. package/scripts/lib/docs/list-project-rules-mdc.md +5 -3
  45. package/scripts/lib/docs/root-notice.md +13 -16
  46. package/scripts/lib/docs/run-lint.md +10 -8
  47. package/scripts/lib/docs/skill-meta.md +29 -10
  48. package/scripts/lib/fix/docs/discover-t0-patterns.md +10 -13
  49. package/scripts/lib/fix/docs/escalation-log.md +10 -9
  50. package/scripts/lib/fix/docs/index.md +0 -1
  51. package/scripts/lib/fix/docs/orchestrator.md +15 -13
  52. package/scripts/lib/fix/escalation-log.mjs +1 -1
  53. package/scripts/lib/fix/orchestrator.mjs +67 -32
  54. package/scripts/lib/run-lint.mjs +2 -10
  55. package/scripts/lib/skill-meta.mjs +22 -0
  56. package/scripts/skills-cli.mjs +52 -14
  57. package/scripts/utils/ast-extract.mjs +105 -0
  58. package/scripts/utils/docs/ast-extract.md +30 -0
  59. package/scripts/utils/docs/walkDir.md +17 -20
  60. package/lib/docs/llm.md +0 -33
  61. package/lib/docs/models.md +0 -48
  62. package/lib/docs/omlx-trace.md +0 -49
  63. package/lib/docs/omlx.md +0 -41
  64. package/lib/llm.mjs +0 -215
  65. package/lib/models.mjs +0 -75
  66. package/lib/omlx-trace.mjs +0 -158
  67. package/lib/omlx.mjs +0 -220
  68. package/scripts/lib/fix/analyze-escalation.mjs +0 -353
  69. package/scripts/lib/fix/docs/analyze-escalation.md +0 -44
  70. package/scripts/lib/fix/docs/llm-fix-apply.md +0 -31
  71. package/scripts/lib/fix/docs/llm-lint-fix.md +0 -31
  72. package/scripts/lib/fix/docs/llm-worker.md +0 -33
  73. package/scripts/lib/fix/docs/verbose-block.md +0 -27
  74. package/scripts/lib/fix/llm-fix-apply.mjs +0 -113
  75. package/scripts/lib/fix/llm-lint-fix.mjs +0 -82
  76. package/scripts/lib/fix/llm-worker.mjs +0 -332
  77. package/scripts/lib/fix/verbose-block.mjs +0 -82
@@ -1,82 +0,0 @@
1
- /**
2
- * Verbose-блок після кожного LLM-рунга у `--full` режимі.
3
- * Друкує стислий опис промпту і thinking-монолог моделі (якщо є).
4
- * Вимикається через `N_CURSOR_FIX_VERBOSE=off`.
5
- */
6
-
7
- const THINKING_PREVIEW_LEN = 500
8
-
9
- /**
10
- * Форматує рядок файлів для prompt-блоку.
11
- * @param {number} count кількість файлів
12
- * @param {number} totalBytes сумарний розмір у байтах
13
- * @returns {string}
14
- */
15
- function formatFiles(count, totalBytes) {
16
- if (count === 0) return '(none)'
17
- const kb = (totalBytes / 1024).toFixed(1)
18
- const word = count === 1 ? 'файл' : count < 5 ? 'файли' : 'файлів'
19
- return `${count} ${word} (${kb} KB)`
20
- }
21
-
22
- /**
23
- * Форматує рядок feedback для prompt-блоку.
24
- * @param {boolean} hasFeedback чи є feedback
25
- * @param {string|null} feedbackModel модель попереднього рунга
26
- * @param {number} feedbackChangesCount кількість змін попереднього рунга
27
- * @param {string|null} feedbackError помилка попереднього рунга
28
- * @returns {string}
29
- */
30
- function formatFeedback(hasFeedback, feedbackModel, feedbackChangesCount, feedbackError) {
31
- if (!hasFeedback) return '(none)'
32
- const parts = []
33
- if (feedbackModel) parts.push(`model=${feedbackModel}`)
34
- parts.push(`${feedbackChangesCount} changes`)
35
- if (feedbackError) parts.push(`error="${feedbackError.slice(0, 60)}"`)
36
- return parts.join(', ')
37
- }
38
-
39
- /**
40
- * Друкує verbose-блок після рядка рунга (`⚡`/`✅`).
41
- * Містить стислий опис промпту і thinking-монолог моделі (якщо є).
42
- * Не викликається якщо `N_CURSOR_FIX_VERBOSE=off`.
43
- * @param {string} ruleId ID правила
44
- * @param {{ ruleMdcLen: number, violationLen: number, filesCount: number, filesTotalBytes: number, hasFeedback: boolean, feedbackModel: string|null, feedbackChangesCount: number, feedbackError: string|null }} promptSummary стислий опис промпту
45
- * @param {string|null} reasoning thinking-монолог моделі
46
- * @param {string|null} reasoningSource джерело reasoning ('field'|'think_tag'|'truncated'|null)
47
- */
48
- export function printVerboseBlock(ruleId, promptSummary, reasoning, reasoningSource) {
49
- const {
50
- ruleMdcLen,
51
- violationLen,
52
- filesCount,
53
- filesTotalBytes,
54
- hasFeedback,
55
- feedbackModel,
56
- feedbackChangesCount,
57
- feedbackError
58
- } = promptSummary
59
-
60
- console.log(``)
61
- console.log(` prompt:`)
62
- console.log(` rule: n-${ruleId}.mdc (${ruleMdcLen} chars)`)
63
- console.log(` violation: ${violationLen} chars`)
64
- console.log(` files: ${formatFiles(filesCount, filesTotalBytes)}`)
65
- console.log(` feedback: ${formatFeedback(hasFeedback, feedbackModel, feedbackChangesCount, feedbackError)}`)
66
-
67
- if (reasoning) {
68
- const preview =
69
- reasoning.length > THINKING_PREVIEW_LEN
70
- ? reasoning.slice(0, THINKING_PREVIEW_LEN) + ` … (+${reasoning.length - THINKING_PREVIEW_LEN} chars)`
71
- : reasoning
72
- console.log(``)
73
- console.log(` thinking [${reasoningSource}, ${reasoning.length} chars]:`)
74
- for (const line of preview.split('\n')) {
75
- console.log(` ${line}`)
76
- }
77
- } else {
78
- console.log(``)
79
- console.log(` thinking: (none)`)
80
- }
81
- console.log(``)
82
- }