sudocode 1.0.0 → 1.1.1

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 (447) hide show
  1. package/README.md +222 -0
  2. package/build.js +75 -0
  3. package/node_modules/@sudocode-ai/cli/README.md +330 -0
  4. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts +53 -0
  5. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts.map +1 -0
  6. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js +274 -0
  7. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js.map +1 -0
  8. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts +22 -0
  9. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts.map +1 -0
  10. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js +148 -0
  11. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js.map +1 -0
  12. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts +45 -0
  13. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts.map +1 -0
  14. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js +310 -0
  15. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js.map +1 -0
  16. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts +18 -0
  17. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts.map +1 -0
  18. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js +61 -0
  19. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js.map +1 -0
  20. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts +22 -0
  21. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts.map +1 -0
  22. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js +136 -0
  23. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js.map +1 -0
  24. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts +14 -0
  25. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts.map +1 -0
  26. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js +76 -0
  27. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js.map +1 -0
  28. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts +17 -0
  29. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts.map +1 -0
  30. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js +99 -0
  31. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js.map +1 -0
  32. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts +38 -0
  33. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts.map +1 -0
  34. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js +321 -0
  35. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js.map +1 -0
  36. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts +17 -0
  37. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts.map +1 -0
  38. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js +131 -0
  39. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js.map +1 -0
  40. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts +24 -0
  41. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts.map +1 -0
  42. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js +416 -0
  43. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js.map +1 -0
  44. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts +12 -0
  45. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts.map +1 -0
  46. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js +78 -0
  47. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js.map +1 -0
  48. package/node_modules/@sudocode-ai/cli/dist/cli.d.ts +6 -0
  49. package/node_modules/@sudocode-ai/cli/dist/cli.d.ts.map +1 -0
  50. package/node_modules/@sudocode-ai/cli/dist/cli.js +426 -0
  51. package/node_modules/@sudocode-ai/cli/dist/cli.js.map +1 -0
  52. package/node_modules/@sudocode-ai/cli/dist/db.d.ts +21 -0
  53. package/node_modules/@sudocode-ai/cli/dist/db.d.ts.map +1 -0
  54. package/node_modules/@sudocode-ai/cli/dist/db.js +54 -0
  55. package/node_modules/@sudocode-ai/cli/dist/db.js.map +1 -0
  56. package/node_modules/@sudocode-ai/cli/dist/export.d.ts +79 -0
  57. package/node_modules/@sudocode-ai/cli/dist/export.d.ts.map +1 -0
  58. package/node_modules/@sudocode-ai/cli/dist/export.js +195 -0
  59. package/node_modules/@sudocode-ai/cli/dist/export.js.map +1 -0
  60. package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts +30 -0
  61. package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts.map +1 -0
  62. package/node_modules/@sudocode-ai/cli/dist/filename-generator.js +93 -0
  63. package/node_modules/@sudocode-ai/cli/dist/filename-generator.js.map +1 -0
  64. package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts +26 -0
  65. package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts.map +1 -0
  66. package/node_modules/@sudocode-ai/cli/dist/id-generator.js +123 -0
  67. package/node_modules/@sudocode-ai/cli/dist/id-generator.js.map +1 -0
  68. package/node_modules/@sudocode-ai/cli/dist/import.d.ts +118 -0
  69. package/node_modules/@sudocode-ai/cli/dist/import.d.ts.map +1 -0
  70. package/node_modules/@sudocode-ai/cli/dist/import.js +608 -0
  71. package/node_modules/@sudocode-ai/cli/dist/import.js.map +1 -0
  72. package/node_modules/@sudocode-ai/cli/dist/index.d.ts +13 -0
  73. package/node_modules/@sudocode-ai/cli/dist/index.d.ts.map +1 -0
  74. package/node_modules/@sudocode-ai/cli/dist/index.js +13 -0
  75. package/node_modules/@sudocode-ai/cli/dist/index.js.map +1 -0
  76. package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts +69 -0
  77. package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts.map +1 -0
  78. package/node_modules/@sudocode-ai/cli/dist/jsonl.js +333 -0
  79. package/node_modules/@sudocode-ai/cli/dist/jsonl.js.map +1 -0
  80. package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts +146 -0
  81. package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts.map +1 -0
  82. package/node_modules/@sudocode-ai/cli/dist/markdown.js +357 -0
  83. package/node_modules/@sudocode-ai/cli/dist/markdown.js.map +1 -0
  84. package/node_modules/@sudocode-ai/cli/dist/migrations.d.ts +23 -0
  85. package/node_modules/@sudocode-ai/cli/dist/migrations.d.ts.map +1 -0
  86. package/node_modules/@sudocode-ai/cli/dist/migrations.js +57 -0
  87. package/node_modules/@sudocode-ai/cli/dist/migrations.js.map +1 -0
  88. package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts +53 -0
  89. package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts.map +1 -0
  90. package/node_modules/@sudocode-ai/cli/dist/operations/events.js +108 -0
  91. package/node_modules/@sudocode-ai/cli/dist/operations/events.js.map +1 -0
  92. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts +92 -0
  93. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts.map +1 -0
  94. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js +444 -0
  95. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js.map +1 -0
  96. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts +76 -0
  97. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts.map +1 -0
  98. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js +234 -0
  99. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js.map +1 -0
  100. package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts +10 -0
  101. package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts.map +1 -0
  102. package/node_modules/@sudocode-ai/cli/dist/operations/index.js +10 -0
  103. package/node_modules/@sudocode-ai/cli/dist/operations/index.js.map +1 -0
  104. package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts +82 -0
  105. package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts.map +1 -0
  106. package/node_modules/@sudocode-ai/cli/dist/operations/issues.js +411 -0
  107. package/node_modules/@sudocode-ai/cli/dist/operations/issues.js.map +1 -0
  108. package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts +34 -0
  109. package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts.map +1 -0
  110. package/node_modules/@sudocode-ai/cli/dist/operations/references.js +117 -0
  111. package/node_modules/@sudocode-ai/cli/dist/operations/references.js.map +1 -0
  112. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts +57 -0
  113. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts.map +1 -0
  114. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js +236 -0
  115. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js.map +1 -0
  116. package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts +64 -0
  117. package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts.map +1 -0
  118. package/node_modules/@sudocode-ai/cli/dist/operations/specs.js +290 -0
  119. package/node_modules/@sudocode-ai/cli/dist/operations/specs.js.map +1 -0
  120. package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts +42 -0
  121. package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts.map +1 -0
  122. package/node_modules/@sudocode-ai/cli/dist/operations/tags.js +127 -0
  123. package/node_modules/@sudocode-ai/cli/dist/operations/tags.js.map +1 -0
  124. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts +41 -0
  125. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts.map +1 -0
  126. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js +111 -0
  127. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js.map +1 -0
  128. package/node_modules/@sudocode-ai/cli/dist/sync.d.ts +47 -0
  129. package/node_modules/@sudocode-ai/cli/dist/sync.d.ts.map +1 -0
  130. package/node_modules/@sudocode-ai/cli/dist/sync.js +442 -0
  131. package/node_modules/@sudocode-ai/cli/dist/sync.js.map +1 -0
  132. package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts +5 -0
  133. package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts.map +1 -0
  134. package/node_modules/@sudocode-ai/cli/dist/test-schema.js +46 -0
  135. package/node_modules/@sudocode-ai/cli/dist/test-schema.js.map +1 -0
  136. package/node_modules/@sudocode-ai/cli/dist/types.d.ts +7 -0
  137. package/node_modules/@sudocode-ai/cli/dist/types.d.ts.map +1 -0
  138. package/node_modules/@sudocode-ai/cli/dist/types.js +7 -0
  139. package/node_modules/@sudocode-ai/cli/dist/types.js.map +1 -0
  140. package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts +24 -0
  141. package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts.map +1 -0
  142. package/node_modules/@sudocode-ai/cli/dist/update-checker.js +151 -0
  143. package/node_modules/@sudocode-ai/cli/dist/update-checker.js.map +1 -0
  144. package/node_modules/@sudocode-ai/cli/dist/version.d.ts +12 -0
  145. package/node_modules/@sudocode-ai/cli/dist/version.d.ts.map +1 -0
  146. package/node_modules/@sudocode-ai/cli/dist/version.js +23 -0
  147. package/node_modules/@sudocode-ai/cli/dist/version.js.map +1 -0
  148. package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts +63 -0
  149. package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts.map +1 -0
  150. package/node_modules/@sudocode-ai/cli/dist/watcher.js +438 -0
  151. package/node_modules/@sudocode-ai/cli/dist/watcher.js.map +1 -0
  152. package/node_modules/@sudocode-ai/cli/package.json +65 -0
  153. package/node_modules/@sudocode-ai/local-server/README.md +19 -0
  154. package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts +7 -0
  155. package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts.map +1 -0
  156. package/node_modules/@sudocode-ai/local-server/dist/cli.js +7 -0
  157. package/node_modules/@sudocode-ai/local-server/dist/cli.js.map +1 -0
  158. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.d.ts +103 -0
  159. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.d.ts.map +1 -0
  160. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.js +10 -0
  161. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.js.map +1 -0
  162. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.d.ts +190 -0
  163. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.d.ts.map +1 -0
  164. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.js +611 -0
  165. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.js.map +1 -0
  166. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.d.ts +116 -0
  167. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.d.ts.map +1 -0
  168. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.js +10 -0
  169. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.js.map +1 -0
  170. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.d.ts +176 -0
  171. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.d.ts.map +1 -0
  172. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.js +438 -0
  173. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.js.map +1 -0
  174. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.d.ts +96 -0
  175. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.d.ts.map +1 -0
  176. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.js +96 -0
  177. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.js.map +1 -0
  178. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.d.ts +321 -0
  179. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.d.ts.map +1 -0
  180. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.js +769 -0
  181. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.js.map +1 -0
  182. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts +18 -0
  183. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts.map +1 -0
  184. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js +15 -0
  185. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js.map +1 -0
  186. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts +421 -0
  187. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts.map +1 -0
  188. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js +22 -0
  189. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js.map +1 -0
  190. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts +86 -0
  191. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts.map +1 -0
  192. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js +59 -0
  193. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js.map +1 -0
  194. package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.d.ts +15 -0
  195. package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.d.ts.map +1 -0
  196. package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.js +15 -0
  197. package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.js.map +1 -0
  198. package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.d.ts +133 -0
  199. package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.d.ts.map +1 -0
  200. package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.js +10 -0
  201. package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.js.map +1 -0
  202. package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.d.ts +102 -0
  203. package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.d.ts.map +1 -0
  204. package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.js +336 -0
  205. package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.js.map +1 -0
  206. package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.d.ts +105 -0
  207. package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.d.ts.map +1 -0
  208. package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.js +10 -0
  209. package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.js.map +1 -0
  210. package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.d.ts +53 -0
  211. package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.d.ts.map +1 -0
  212. package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.js +97 -0
  213. package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.js.map +1 -0
  214. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.d.ts +170 -0
  215. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.d.ts.map +1 -0
  216. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.js +291 -0
  217. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.js.map +1 -0
  218. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.d.ts +109 -0
  219. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.d.ts.map +1 -0
  220. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.js +10 -0
  221. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.js.map +1 -0
  222. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.d.ts +14 -0
  223. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.d.ts.map +1 -0
  224. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.js +15 -0
  225. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.js.map +1 -0
  226. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.d.ts +86 -0
  227. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.d.ts.map +1 -0
  228. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.js +261 -0
  229. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.js.map +1 -0
  230. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.d.ts +161 -0
  231. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.d.ts.map +1 -0
  232. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.js +234 -0
  233. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.js.map +1 -0
  234. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.d.ts +226 -0
  235. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.d.ts.map +1 -0
  236. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.js +30 -0
  237. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.js.map +1 -0
  238. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.d.ts +119 -0
  239. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.d.ts.map +1 -0
  240. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.js +208 -0
  241. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.js.map +1 -0
  242. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.d.ts +10 -0
  243. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.d.ts.map +1 -0
  244. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.js +10 -0
  245. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.js.map +1 -0
  246. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.d.ts +146 -0
  247. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.d.ts.map +1 -0
  248. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.js +282 -0
  249. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.js.map +1 -0
  250. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.d.ts +176 -0
  251. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.d.ts.map +1 -0
  252. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.js +231 -0
  253. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.js.map +1 -0
  254. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.d.ts +13 -0
  255. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.d.ts.map +1 -0
  256. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.js +13 -0
  257. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.js.map +1 -0
  258. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.d.ts +216 -0
  259. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.d.ts.map +1 -0
  260. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.js +683 -0
  261. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.js.map +1 -0
  262. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.d.ts +54 -0
  263. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.d.ts.map +1 -0
  264. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.js +68 -0
  265. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.js.map +1 -0
  266. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.d.ts +158 -0
  267. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.d.ts.map +1 -0
  268. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.js +9 -0
  269. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.js.map +1 -0
  270. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.d.ts +172 -0
  271. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.d.ts.map +1 -0
  272. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.js +9 -0
  273. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.js.map +1 -0
  274. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.d.ts +89 -0
  275. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.d.ts.map +1 -0
  276. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.js +152 -0
  277. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.js.map +1 -0
  278. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts +74 -0
  279. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts.map +1 -0
  280. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js +280 -0
  281. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js.map +1 -0
  282. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts +151 -0
  283. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts.map +1 -0
  284. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js +189 -0
  285. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js.map +1 -0
  286. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts +16 -0
  287. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts.map +1 -0
  288. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js +15 -0
  289. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js.map +1 -0
  290. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts +184 -0
  291. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts.map +1 -0
  292. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js +452 -0
  293. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js.map +1 -0
  294. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts +90 -0
  295. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts.map +1 -0
  296. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js +42 -0
  297. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js.map +1 -0
  298. package/node_modules/@sudocode-ai/local-server/dist/index.d.ts +8 -0
  299. package/node_modules/@sudocode-ai/local-server/dist/index.d.ts.map +1 -0
  300. package/node_modules/@sudocode-ai/local-server/dist/index.js +356 -0
  301. package/node_modules/@sudocode-ai/local-server/dist/index.js.map +1 -0
  302. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-C4SmlXoo.js +568 -0
  303. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-C4SmlXoo.js.map +1 -0
  304. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-DE59j7ti.css +1 -0
  305. package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-LX0UoTxg.js +60 -0
  306. package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-LX0UoTxg.js.map +1 -0
  307. package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-_cxVHaqZ.js +54 -0
  308. package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-_cxVHaqZ.js.map +1 -0
  309. package/node_modules/@sudocode-ai/local-server/dist/public/favicon.ico +0 -0
  310. package/node_modules/@sudocode-ai/local-server/dist/public/index.html +16 -0
  311. package/node_modules/@sudocode-ai/local-server/dist/public/logo.png +0 -0
  312. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.d.ts +24 -0
  313. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.d.ts.map +1 -0
  314. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.js +55 -0
  315. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.js.map +1 -0
  316. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts +19 -0
  317. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts.map +1 -0
  318. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js +267 -0
  319. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js.map +1 -0
  320. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts +7 -0
  321. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts.map +1 -0
  322. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js +329 -0
  323. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js.map +1 -0
  324. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts +7 -0
  325. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts.map +1 -0
  326. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js +280 -0
  327. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js.map +1 -0
  328. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts +7 -0
  329. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts.map +1 -0
  330. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js +308 -0
  331. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js.map +1 -0
  332. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts +7 -0
  333. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts.map +1 -0
  334. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js +270 -0
  335. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js.map +1 -0
  336. package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts +33 -0
  337. package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts.map +1 -0
  338. package/node_modules/@sudocode-ai/local-server/dist/services/db.js +85 -0
  339. package/node_modules/@sudocode-ai/local-server/dist/services/db.js.map +1 -0
  340. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts +108 -0
  341. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts.map +1 -0
  342. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js +286 -0
  343. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js.map +1 -0
  344. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts +185 -0
  345. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts.map +1 -0
  346. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js +676 -0
  347. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js.map +1 -0
  348. package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts +59 -0
  349. package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts.map +1 -0
  350. package/node_modules/@sudocode-ai/local-server/dist/services/executions.js +164 -0
  351. package/node_modules/@sudocode-ai/local-server/dist/services/executions.js.map +1 -0
  352. package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts +24 -0
  353. package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts.map +1 -0
  354. package/node_modules/@sudocode-ai/local-server/dist/services/export.js +106 -0
  355. package/node_modules/@sudocode-ai/local-server/dist/services/export.js.map +1 -0
  356. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts +40 -0
  357. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts.map +1 -0
  358. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js +54 -0
  359. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js.map +1 -0
  360. package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts +27 -0
  361. package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts.map +1 -0
  362. package/node_modules/@sudocode-ai/local-server/dist/services/issues.js +35 -0
  363. package/node_modules/@sudocode-ai/local-server/dist/services/issues.js.map +1 -0
  364. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts +108 -0
  365. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts.map +1 -0
  366. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js +212 -0
  367. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js.map +1 -0
  368. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts +97 -0
  369. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts.map +1 -0
  370. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js +236 -0
  371. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js.map +1 -0
  372. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts +35 -0
  373. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts.map +1 -0
  374. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js +42 -0
  375. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js.map +1 -0
  376. package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts +27 -0
  377. package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts.map +1 -0
  378. package/node_modules/@sudocode-ai/local-server/dist/services/specs.js +35 -0
  379. package/node_modules/@sudocode-ai/local-server/dist/services/specs.js.map +1 -0
  380. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts +50 -0
  381. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts.map +1 -0
  382. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js +69 -0
  383. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js.map +1 -0
  384. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts +127 -0
  385. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts.map +1 -0
  386. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js +389 -0
  387. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js.map +1 -0
  388. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts +6 -0
  389. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts.map +1 -0
  390. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js +9 -0
  391. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js.map +1 -0
  392. package/node_modules/@sudocode-ai/local-server/package.json +72 -0
  393. package/node_modules/@sudocode-ai/mcp/LICENSE +21 -0
  394. package/node_modules/@sudocode-ai/mcp/README.md +226 -0
  395. package/node_modules/@sudocode-ai/mcp/dist/client.d.ts +33 -0
  396. package/node_modules/@sudocode-ai/mcp/dist/client.d.ts.map +1 -0
  397. package/node_modules/@sudocode-ai/mcp/dist/client.js +159 -0
  398. package/node_modules/@sudocode-ai/mcp/dist/client.js.map +1 -0
  399. package/node_modules/@sudocode-ai/mcp/dist/index.d.ts +6 -0
  400. package/node_modules/@sudocode-ai/mcp/dist/index.d.ts.map +1 -0
  401. package/node_modules/@sudocode-ai/mcp/dist/index.js +64 -0
  402. package/node_modules/@sudocode-ai/mcp/dist/index.js.map +1 -0
  403. package/node_modules/@sudocode-ai/mcp/dist/server.d.ts +26 -0
  404. package/node_modules/@sudocode-ai/mcp/dist/server.d.ts.map +1 -0
  405. package/node_modules/@sudocode-ai/mcp/dist/server.js +575 -0
  406. package/node_modules/@sudocode-ai/mcp/dist/server.js.map +1 -0
  407. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts +41 -0
  408. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts.map +1 -0
  409. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js +21 -0
  410. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js.map +1 -0
  411. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts +19 -0
  412. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts.map +1 -0
  413. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js +24 -0
  414. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js.map +1 -0
  415. package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts +17 -0
  416. package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts.map +1 -0
  417. package/node_modules/@sudocode-ai/mcp/dist/tools/init.js +15 -0
  418. package/node_modules/@sudocode-ai/mcp/dist/tools/init.js.map +1 -0
  419. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts +44 -0
  420. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts.map +1 -0
  421. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js +106 -0
  422. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js.map +1 -0
  423. package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts +21 -0
  424. package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts.map +1 -0
  425. package/node_modules/@sudocode-ai/mcp/dist/tools/references.js +49 -0
  426. package/node_modules/@sudocode-ai/mcp/dist/tools/references.js.map +1 -0
  427. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts +15 -0
  428. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts.map +1 -0
  429. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js +18 -0
  430. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js.map +1 -0
  431. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts +35 -0
  432. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts.map +1 -0
  433. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js +85 -0
  434. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js.map +1 -0
  435. package/node_modules/@sudocode-ai/mcp/dist/types.d.ts +35 -0
  436. package/node_modules/@sudocode-ai/mcp/dist/types.d.ts.map +1 -0
  437. package/node_modules/@sudocode-ai/mcp/dist/types.js +21 -0
  438. package/node_modules/@sudocode-ai/mcp/dist/types.js.map +1 -0
  439. package/node_modules/@sudocode-ai/mcp/package.json +67 -0
  440. package/node_modules/@sudocode-ai/types/README.md +7 -0
  441. package/node_modules/@sudocode-ai/types/dist/schema.d.ts +45 -0
  442. package/node_modules/@sudocode-ai/types/dist/schema.d.ts.map +1 -0
  443. package/node_modules/@sudocode-ai/types/dist/schema.js +338 -0
  444. package/node_modules/@sudocode-ai/types/dist/schema.js.map +1 -0
  445. package/node_modules/@sudocode-ai/types/package.json +46 -0
  446. package/package.json +51 -12
  447. package/index.js +0 -5
@@ -0,0 +1,442 @@
1
+ /**
2
+ * Bidirectional sync between Markdown files and JSONL/SQLite
3
+ */
4
+ import * as fs from "fs";
5
+ import * as path from "path";
6
+ import { parseMarkdownFile, updateFrontmatterFile, writeMarkdownFile, } from "./markdown.js";
7
+ import { getSpec, getSpecByFilePath, createSpec, updateSpec, } from "./operations/specs.js";
8
+ import { getIssue, createIssue, updateIssue } from "./operations/issues.js";
9
+ import { addRelationship } from "./operations/relationships.js";
10
+ import { getTags, setTags } from "./operations/tags.js";
11
+ import { listFeedback, updateFeedback } from "./operations/feedback.js";
12
+ import { relocateFeedbackAnchor } from "./operations/feedback-anchors.js";
13
+ import { exportToJSONL } from "./export.js";
14
+ import { generateSpecId, generateIssueId } from "./id-generator.js";
15
+ /**
16
+ * Remove internal fields that shouldn't be in markdown frontmatter
17
+ * These fields are only for database tracking, not for the markdown files
18
+ */
19
+ function cleanFrontmatterForMarkdown(data) {
20
+ const { file_path, entity_type, ...clean } = data;
21
+ return clean;
22
+ }
23
+ /**
24
+ * Initialize missing frontmatter fields
25
+ */
26
+ function initializeFrontmatter(db, data, entityType, mdPath, outputDir, user) {
27
+ const now = new Date().toISOString();
28
+ const initialized = { ...data };
29
+ // Generate ID if missing
30
+ if (!initialized.id) {
31
+ initialized.id =
32
+ entityType === "spec"
33
+ ? generateSpecId(db, outputDir)
34
+ : generateIssueId(db, outputDir);
35
+ }
36
+ // Extract title from content if missing
37
+ if (!initialized.title) {
38
+ const content = fs.readFileSync(mdPath, "utf8");
39
+ const titleMatch = content.match(/^#\s+(.+)$/m);
40
+ initialized.title = titleMatch
41
+ ? titleMatch[1]
42
+ : path.basename(mdPath, ".md");
43
+ }
44
+ // Set timestamps
45
+ if (!initialized.created_at) {
46
+ initialized.created_at = now;
47
+ }
48
+ if (!initialized.updated_at) {
49
+ initialized.updated_at = now;
50
+ }
51
+ // Set type-specific defaults
52
+ if (entityType === "spec") {
53
+ if (!initialized.priority && initialized.priority !== 0)
54
+ initialized.priority = 2;
55
+ }
56
+ else {
57
+ // issue
58
+ if (!initialized.status)
59
+ initialized.status = "open";
60
+ if (!initialized.priority && initialized.priority !== 0)
61
+ initialized.priority = 2;
62
+ }
63
+ return initialized;
64
+ }
65
+ /**
66
+ * Sync a markdown file to JSONL and SQLite
67
+ * Parses markdown, updates database, optionally exports to JSONL
68
+ */
69
+ export async function syncMarkdownToJSONL(db, mdPath, options = {}) {
70
+ const { outputDir = ".sudocode", autoExport = true, user = "system", autoInitialize = true, writeBackFrontmatter = true, } = options;
71
+ try {
72
+ // Parse markdown file with database validation for cross-references
73
+ const parsed = parseMarkdownFile(mdPath, db, outputDir);
74
+ let { data, content, references } = parsed;
75
+ // Determine entity type from frontmatter or file path
76
+ const entityType = determineEntityType(data, mdPath);
77
+ let entityId = data.id;
78
+ const frontmatterId = entityId; // Keep track of ID from frontmatter for validation
79
+ // Calculate relative file path from outputDir
80
+ const relPath = path.relative(outputDir, mdPath);
81
+ const filePath = relPath.startsWith("..")
82
+ ? path.relative(process.cwd(), mdPath)
83
+ : relPath;
84
+ // For specs, determine which spec this file corresponds to
85
+ // Support two scenarios: rename (ID stays, path changes) and path-based lookup (no ID)
86
+ let existingByPath = null;
87
+ let existingById = null;
88
+ if (entityType === "spec") {
89
+ // Always set the calculated file path in data (for create/update)
90
+ data.file_path = filePath;
91
+ // Check if a spec exists with this ID (from frontmatter)
92
+ if (frontmatterId) {
93
+ existingById = getSpec(db, frontmatterId);
94
+ }
95
+ // Check if a spec exists at this file path
96
+ existingByPath = getSpecByFilePath(db, filePath);
97
+ // Scenario 1: Spec exists with this ID
98
+ if (existingById) {
99
+ entityId = existingById.id;
100
+ // Check if file was renamed (ID exists but different path)
101
+ if (existingById.file_path !== filePath) {
102
+ console.log(`[sync] File renamed: ${existingById.file_path} → ${filePath}`);
103
+ // Check if another spec already exists at new path (conflict)
104
+ if (existingByPath && existingByPath.id !== existingById.id) {
105
+ console.warn(`[sync] Warning: File path conflict! Spec ${existingByPath.id} already exists at ${filePath}. Keeping ${existingById.id} and updating path.`);
106
+ }
107
+ }
108
+ }
109
+ // Scenario 2: No ID in frontmatter, but spec exists at this path
110
+ else if (existingByPath) {
111
+ entityId = existingByPath.id;
112
+ data.id = entityId;
113
+ }
114
+ // Scenario 3: ID in frontmatter differs from spec at this path (user changed ID)
115
+ else if (frontmatterId && existingByPath) {
116
+ // This shouldn't happen due to earlier checks, but handle it
117
+ const correctId = existingByPath.id;
118
+ console.warn(`[sync] Warning: ID in frontmatter (${frontmatterId}) differs from existing spec ID (${correctId}) for ${filePath}. Using existing ID.`);
119
+ entityId = correctId;
120
+ data.id = entityId;
121
+ }
122
+ }
123
+ // Handle missing frontmatter
124
+ if (!entityId) {
125
+ if (autoInitialize) {
126
+ // Auto-initialize missing fields
127
+ data = initializeFrontmatter(db, data, entityType, mdPath, outputDir, user);
128
+ entityId = data.id;
129
+ // Write back frontmatter if requested
130
+ if (writeBackFrontmatter) {
131
+ // Filter out internal fields that shouldn't be in markdown frontmatter
132
+ const cleanData = cleanFrontmatterForMarkdown(data);
133
+ updateFrontmatterFile(mdPath, cleanData);
134
+ }
135
+ }
136
+ else {
137
+ return {
138
+ success: false,
139
+ action: "no-change",
140
+ entityId: "",
141
+ entityType,
142
+ error: "Missing id in frontmatter (auto-initialization disabled)",
143
+ };
144
+ }
145
+ }
146
+ // Check if entity exists by ID
147
+ const existing = entityType === "spec" ? getSpec(db, entityId) : getIssue(db, entityId);
148
+ const isNew = !existing;
149
+ // Get file modification time to use as updated_at timestamp
150
+ // This ensures database timestamp matches when the file was actually modified
151
+ const fileStat = fs.statSync(mdPath);
152
+ const fileModTime = new Date(fileStat.mtimeMs).toISOString();
153
+ if (entityType === "spec") {
154
+ await syncSpec(db, entityId, data, content, references, isNew, user, fileModTime);
155
+ }
156
+ else {
157
+ await syncIssue(db, entityId, data, content, references, isNew, user, fileModTime);
158
+ }
159
+ // Auto-export to JSONL if enabled
160
+ if (autoExport) {
161
+ await exportToJSONL(db, {
162
+ outputDir,
163
+ });
164
+ }
165
+ return {
166
+ success: true,
167
+ action: isNew ? "created" : "updated",
168
+ entityId,
169
+ entityType,
170
+ };
171
+ }
172
+ catch (error) {
173
+ return {
174
+ success: false,
175
+ action: "no-change",
176
+ entityId: "",
177
+ entityType: "spec",
178
+ error: error instanceof Error ? error.message : String(error),
179
+ };
180
+ }
181
+ }
182
+ /**
183
+ * Sync from JSONL/SQLite to markdown file
184
+ * Updates markdown frontmatter while preserving content
185
+ */
186
+ export async function syncJSONLToMarkdown(db, entityId, entityType, mdPath) {
187
+ try {
188
+ // Get entity from database
189
+ const entity = entityType === "spec" ? getSpec(db, entityId) : getIssue(db, entityId);
190
+ if (!entity) {
191
+ return {
192
+ success: false,
193
+ action: "no-change",
194
+ entityId,
195
+ entityType,
196
+ error: `${entityType} not found: ${entityId}`,
197
+ };
198
+ }
199
+ // Get relationships and tags
200
+ const { getOutgoingRelationships } = await import("./operations/relationships.js");
201
+ const relationships = getOutgoingRelationships(db, entityId, entityType);
202
+ const tags = getTags(db, entityId, entityType);
203
+ // Build frontmatter
204
+ const frontmatter = entityToFrontmatter(entity, entityType, relationships, tags);
205
+ // Check if file exists
206
+ const fileExists = fs.existsSync(mdPath);
207
+ if (fileExists) {
208
+ // Update existing file's frontmatter only
209
+ updateFrontmatterFile(mdPath, frontmatter);
210
+ }
211
+ else {
212
+ // Create new file with content from database
213
+ const content = entity.content || "";
214
+ writeMarkdownFile(mdPath, frontmatter, content);
215
+ }
216
+ return {
217
+ success: true,
218
+ action: fileExists ? "updated" : "created",
219
+ entityId,
220
+ entityType,
221
+ };
222
+ }
223
+ catch (error) {
224
+ return {
225
+ success: false,
226
+ action: "no-change",
227
+ entityId,
228
+ entityType,
229
+ error: error instanceof Error ? error.message : String(error),
230
+ };
231
+ }
232
+ }
233
+ /**
234
+ * Determine entity type from frontmatter or file path
235
+ */
236
+ function determineEntityType(frontmatter, filePath) {
237
+ // Check frontmatter type field
238
+ if (frontmatter.entity_type === "issue") {
239
+ return "issue";
240
+ }
241
+ if (frontmatter.entity_type === "spec") {
242
+ return "spec";
243
+ }
244
+ // Check file path
245
+ if (filePath.includes("/issues/") || filePath.includes("/issue-")) {
246
+ return "issue";
247
+ }
248
+ if (filePath.includes("/specs/") || filePath.includes("/spec-")) {
249
+ return "spec";
250
+ }
251
+ // Default to spec
252
+ return "spec";
253
+ }
254
+ /**
255
+ * Sync spec data to database
256
+ */
257
+ async function syncSpec(db, id, frontmatter, content, references, isNew, user, fileModTime) {
258
+ // Get old content before updating (for anchor relocation)
259
+ const oldSpec = isNew ? null : getSpec(db, id);
260
+ const oldContent = oldSpec?.content || "";
261
+ const specData = {
262
+ id,
263
+ title: frontmatter.title || "Untitled",
264
+ file_path: frontmatter.file_path || "",
265
+ content,
266
+ priority: frontmatter.priority ?? 2,
267
+ parent_id: frontmatter.parent_id || undefined,
268
+ };
269
+ if (isNew) {
270
+ createSpec(db, {
271
+ ...specData,
272
+ updated_at: fileModTime,
273
+ });
274
+ }
275
+ else {
276
+ // Check if content has actually changed
277
+ const contentChanged = oldSpec?.title !== specData.title ||
278
+ oldSpec?.content !== specData.content ||
279
+ oldSpec?.priority !== specData.priority ||
280
+ oldSpec?.parent_id !== specData.parent_id ||
281
+ oldSpec?.file_path !== specData.file_path;
282
+ // Only update timestamp if content actually changed
283
+ updateSpec(db, id, {
284
+ ...specData,
285
+ ...(contentChanged && fileModTime ? { updated_at: fileModTime } : {}),
286
+ });
287
+ // Relocate feedback anchors if content changed
288
+ if (oldContent !== content) {
289
+ const feedbackList = listFeedback(db, { spec_id: id });
290
+ if (feedbackList.length > 0) {
291
+ // Relocate each feedback anchor
292
+ for (const feedback of feedbackList) {
293
+ const oldAnchor = typeof feedback.anchor === "string"
294
+ ? JSON.parse(feedback.anchor)
295
+ : feedback.anchor;
296
+ // Relocate the anchor
297
+ const newAnchor = relocateFeedbackAnchor(oldContent, content, oldAnchor);
298
+ // Update feedback with new anchor
299
+ updateFeedback(db, feedback.id, {
300
+ anchor: newAnchor,
301
+ });
302
+ }
303
+ }
304
+ }
305
+ }
306
+ // Sync tags
307
+ if (frontmatter.tags && Array.isArray(frontmatter.tags)) {
308
+ setTags(db, id, "spec", frontmatter.tags);
309
+ }
310
+ // Sync relationships from cross-references
311
+ await syncRelationships(db, id, "spec", references, frontmatter.relationships, user);
312
+ }
313
+ /**
314
+ * Sync issue data to database
315
+ */
316
+ async function syncIssue(db, id, frontmatter, content, references, isNew, user, fileModTime) {
317
+ const oldIssue = isNew ? null : getIssue(db, id);
318
+ const issueData = {
319
+ id,
320
+ title: frontmatter.title || "Untitled",
321
+ content,
322
+ status: frontmatter.status || "open",
323
+ priority: frontmatter.priority ?? 2,
324
+ assignee: frontmatter.assignee || undefined,
325
+ parent_id: frontmatter.parent_id || undefined,
326
+ };
327
+ if (isNew) {
328
+ createIssue(db, {
329
+ ...issueData,
330
+ updated_at: fileModTime,
331
+ });
332
+ }
333
+ else {
334
+ // Check if content has actually changed
335
+ const contentChanged = oldIssue?.title !== issueData.title ||
336
+ oldIssue?.content !== issueData.content ||
337
+ oldIssue?.status !== issueData.status ||
338
+ oldIssue?.priority !== issueData.priority ||
339
+ oldIssue?.assignee !== issueData.assignee ||
340
+ oldIssue?.parent_id !== issueData.parent_id;
341
+ // Only update timestamp if content actually changed
342
+ updateIssue(db, id, {
343
+ ...issueData,
344
+ ...(contentChanged && fileModTime ? { updated_at: fileModTime } : {}),
345
+ });
346
+ }
347
+ // Sync tags
348
+ if (frontmatter.tags && Array.isArray(frontmatter.tags)) {
349
+ setTags(db, id, "issue", frontmatter.tags);
350
+ }
351
+ // Sync relationships from cross-references
352
+ await syncRelationships(db, id, "issue", references, frontmatter.relationships, user);
353
+ }
354
+ /**
355
+ * Sync relationships from cross-references and frontmatter
356
+ * Preserves existing relationships not in frontmatter
357
+ */
358
+ async function syncRelationships(db, entityId, entityType, references, frontmatterRels, user = "system") {
359
+ // Get existing relationships (all outgoing)
360
+ const { getOutgoingRelationships } = await import("./operations/relationships.js");
361
+ const existing = getOutgoingRelationships(db, entityId, entityType);
362
+ const existingSet = new Set(existing.map((r) => `${r.relationship_type}:${r.to_type}:${r.to_id}`));
363
+ // Add relationships from cross-references (defaults to 'references' type)
364
+ for (const ref of references) {
365
+ const relType = ref.relationshipType || "references";
366
+ const key = `${relType}:${ref.type}:${ref.id}`;
367
+ if (!existingSet.has(key)) {
368
+ try {
369
+ addRelationship(db, {
370
+ from_id: entityId,
371
+ from_type: entityType,
372
+ to_id: ref.id,
373
+ to_type: ref.type,
374
+ relationship_type: relType,
375
+ metadata: ref.anchor
376
+ ? JSON.stringify({ anchor: ref.anchor })
377
+ : undefined,
378
+ });
379
+ }
380
+ catch (error) {
381
+ // Ignore errors (e.g., target not found, duplicate)
382
+ }
383
+ }
384
+ }
385
+ // Add relationships from frontmatter
386
+ if (frontmatterRels && Array.isArray(frontmatterRels)) {
387
+ for (const rel of frontmatterRels) {
388
+ const key = `${rel.relationship_type}:${rel.target_type}:${rel.target_id}`;
389
+ if (!existingSet.has(key)) {
390
+ try {
391
+ addRelationship(db, {
392
+ from_id: entityId,
393
+ from_type: entityType,
394
+ to_id: rel.target_id,
395
+ to_type: rel.target_type,
396
+ relationship_type: rel.relationship_type,
397
+ });
398
+ }
399
+ catch (error) {
400
+ // Ignore errors
401
+ }
402
+ }
403
+ }
404
+ }
405
+ // Note: We preserve existing relationships not in frontmatter
406
+ // This allows relationships added via CLI/UI to persist
407
+ }
408
+ /**
409
+ * Convert entity to frontmatter object
410
+ */
411
+ function entityToFrontmatter(entity, entityType, relationships, tags) {
412
+ const base = {
413
+ id: entity.id,
414
+ title: entity.title,
415
+ priority: entity.priority,
416
+ created_at: entity.created_at,
417
+ };
418
+ // Only add optional fields if they have values
419
+ if (entity.parent_id)
420
+ base.parent_id = entity.parent_id;
421
+ if (tags.length > 0)
422
+ base.tags = tags;
423
+ if (relationships.length > 0)
424
+ base.relationships = relationships;
425
+ if (entityType === "spec") {
426
+ return base;
427
+ }
428
+ else {
429
+ const issue = entity;
430
+ const result = {
431
+ ...base,
432
+ status: issue.status,
433
+ };
434
+ // Only add optional issue fields if they have values
435
+ if (issue.assignee)
436
+ result.assignee = issue.assignee;
437
+ if (issue.closed_at)
438
+ result.closed_at = issue.closed_at;
439
+ return result;
440
+ }
441
+ }
442
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Simple test to verify schema initialization
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=test-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-schema.d.ts","sourceRoot":"","sources":["../src/test-schema.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Simple test to verify schema initialization
3
+ */
4
+ import { initDatabase } from './db.js';
5
+ async function testSchema() {
6
+ console.log('Testing database schema initialization...');
7
+ // Create an in-memory database for testing
8
+ const db = initDatabase({ path: ':memory:', verbose: true });
9
+ // Test that tables exist
10
+ const tables = db
11
+ .prepare(`SELECT name FROM sqlite_master WHERE type='table' ORDER BY name`)
12
+ .all();
13
+ console.log('\n✓ Tables created:');
14
+ tables.forEach((table) => {
15
+ console.log(` - ${table.name}`);
16
+ });
17
+ // Test that indexes exist
18
+ const indexes = db
19
+ .prepare(`SELECT name FROM sqlite_master WHERE type='index' ORDER BY name`)
20
+ .all();
21
+ console.log('\n✓ Indexes created:');
22
+ indexes.forEach((index) => {
23
+ console.log(` - ${index.name}`);
24
+ });
25
+ // Test that views exist
26
+ const views = db
27
+ .prepare(`SELECT name FROM sqlite_master WHERE type='view' ORDER BY name`)
28
+ .all();
29
+ console.log('\n✓ Views created:');
30
+ views.forEach((view) => {
31
+ console.log(` - ${view.name}`);
32
+ });
33
+ // Test database configuration
34
+ const walMode = db.pragma('journal_mode', { simple: true });
35
+ const foreignKeys = db.pragma('foreign_keys', { simple: true });
36
+ console.log('\n✓ Database configuration:');
37
+ console.log(` - WAL mode: ${walMode}`);
38
+ console.log(` - Foreign keys: ${foreignKeys ? 'enabled' : 'disabled'}`);
39
+ db.close();
40
+ console.log('\n✓ Schema test completed successfully!');
41
+ }
42
+ testSchema().catch((error) => {
43
+ console.error('Schema test failed:', error);
44
+ process.exit(1);
45
+ });
46
+ //# sourceMappingURL=test-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-schema.js","sourceRoot":"","sources":["../src/test-schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,KAAK,UAAU,UAAU;IACvB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAEzD,2CAA2C;IAC3C,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7D,yBAAyB;IACzB,MAAM,MAAM,GAAG,EAAE;SACd,OAAO,CACN,iEAAiE,CAClE;SACA,GAAG,EAAE,CAAC;IAET,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,OAAO,GAAG,EAAE;SACf,OAAO,CACN,iEAAiE,CAClE;SACA,GAAG,EAAE,CAAC;IAET,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,KAAK,GAAG,EAAE;SACb,OAAO,CACN,gEAAgE,CACjE;SACA,GAAG,EAAE,CAAC;IAET,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IAEzE,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACzD,CAAC;AAED,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC3B,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Type definitions for sudocode CLI
3
+ *
4
+ * Core entity types are imported from the main sudocode package.
5
+ */
6
+ export type { Spec, Issue, Relationship, EntityType, RelationshipType, IssueStatus, Tag, Event, EventType, IssueFeedback, LocationAnchor, FeedbackAnchor, FeedbackType, SpecJSONL, IssueJSONL, FeedbackJSONL, RelationshipJSONL, Config, } from "@sudocode-ai/types";
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,GAAG,EACH,KAAK,EACL,SAAS,EACT,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,SAAS,EACT,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,MAAM,GACP,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Type definitions for sudocode CLI
3
+ *
4
+ * Core entity types are imported from the main sudocode package.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Update checker with caching
3
+ * Checks npm registry for new versions and caches results
4
+ */
5
+ interface UpdateInfo {
6
+ current: string;
7
+ latest: string;
8
+ updateAvailable: boolean;
9
+ }
10
+ /**
11
+ * Check for updates
12
+ * Returns null if check fails or update info if successful
13
+ */
14
+ export declare function checkForUpdates(): Promise<UpdateInfo | null>;
15
+ /**
16
+ * Check for updates and return formatted notification message
17
+ */
18
+ export declare function getUpdateNotification(): Promise<string | null>;
19
+ /**
20
+ * Clear update cache (useful for testing)
21
+ */
22
+ export declare function clearUpdateCache(): void;
23
+ export {};
24
+ //# sourceMappingURL=update-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../src/update-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;CAC1B;AA0ED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAyBlE;AAqBD;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsBpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAQvC"}