@sudocode-ai/cli 0.1.0 → 0.1.2
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.
- package/dist/cli/feedback-commands.d.ts.map +1 -0
- package/dist/cli/feedback-commands.js +274 -0
- package/dist/cli/feedback-commands.js.map +1 -0
- package/dist/cli/init-commands.d.ts.map +1 -0
- package/dist/cli/init-commands.js +148 -0
- package/dist/cli/init-commands.js.map +1 -0
- package/dist/cli/issue-commands.d.ts.map +1 -0
- package/dist/cli/issue-commands.js +310 -0
- package/dist/cli/issue-commands.js.map +1 -0
- package/dist/cli/query-commands.d.ts.map +1 -0
- package/dist/cli/query-commands.js +61 -0
- package/dist/cli/query-commands.js.map +1 -0
- package/dist/cli/reference-commands.d.ts.map +1 -0
- package/dist/cli/reference-commands.js +136 -0
- package/dist/cli/reference-commands.js.map +1 -0
- package/dist/cli/relationship-commands.d.ts.map +1 -0
- package/dist/cli/relationship-commands.js +76 -0
- package/dist/cli/relationship-commands.js.map +1 -0
- package/dist/cli/server-commands.d.ts.map +1 -0
- package/dist/cli/server-commands.js +99 -0
- package/dist/cli/server-commands.js.map +1 -0
- package/dist/cli/spec-commands.d.ts.map +1 -0
- package/dist/cli/spec-commands.js +321 -0
- package/dist/cli/spec-commands.js.map +1 -0
- package/dist/cli/status-commands.d.ts.map +1 -0
- package/dist/cli/status-commands.js +131 -0
- package/dist/cli/status-commands.js.map +1 -0
- package/dist/cli/sync-commands.d.ts.map +1 -0
- package/dist/cli/sync-commands.js +416 -0
- package/dist/cli/sync-commands.js.map +1 -0
- package/dist/cli/update-commands.d.ts.map +1 -0
- package/dist/cli/update-commands.js +78 -0
- package/dist/cli/update-commands.js.map +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +425 -195
- package/dist/cli.js.map +1 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +54 -0
- package/dist/db.js.map +1 -0
- package/dist/export.d.ts.map +1 -0
- package/dist/export.js +195 -0
- package/dist/export.js.map +1 -0
- package/dist/filename-generator.d.ts.map +1 -0
- package/dist/filename-generator.js +93 -0
- package/dist/filename-generator.js.map +1 -0
- package/dist/id-generator.d.ts.map +1 -0
- package/dist/id-generator.js +123 -0
- package/dist/id-generator.js.map +1 -0
- package/dist/import.d.ts.map +1 -0
- package/dist/import.js +608 -0
- package/dist/import.js.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -189
- package/dist/index.js.map +1 -0
- package/dist/jsonl.d.ts.map +1 -0
- package/dist/jsonl.js +333 -0
- package/dist/jsonl.js.map +1 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +357 -0
- package/dist/markdown.js.map +1 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +57 -0
- package/dist/migrations.js.map +1 -0
- package/dist/operations/events.d.ts.map +1 -0
- package/dist/operations/events.js +108 -0
- package/dist/operations/events.js.map +1 -0
- package/dist/operations/feedback-anchors.d.ts.map +1 -0
- package/dist/operations/feedback-anchors.js +444 -0
- package/dist/operations/feedback-anchors.js.map +1 -0
- package/dist/operations/feedback.d.ts.map +1 -0
- package/dist/operations/feedback.js +234 -0
- package/dist/operations/feedback.js.map +1 -0
- package/dist/operations/index.d.ts.map +1 -0
- package/dist/operations/index.js +10 -0
- package/dist/operations/index.js.map +1 -0
- package/dist/operations/issues.d.ts.map +1 -0
- package/dist/operations/issues.js +411 -0
- package/dist/operations/issues.js.map +1 -0
- package/dist/operations/references.d.ts.map +1 -0
- package/dist/operations/references.js +117 -0
- package/dist/operations/references.js.map +1 -0
- package/dist/operations/relationships.d.ts.map +1 -0
- package/dist/operations/relationships.js +236 -0
- package/dist/operations/relationships.js.map +1 -0
- package/dist/operations/specs.d.ts.map +1 -0
- package/dist/operations/specs.js +290 -0
- package/dist/operations/specs.js.map +1 -0
- package/dist/operations/tags.d.ts.map +1 -0
- package/dist/operations/tags.js +127 -0
- package/dist/operations/tags.js.map +1 -0
- package/dist/operations/transactions.d.ts.map +1 -0
- package/dist/operations/transactions.js +111 -0
- package/dist/operations/transactions.js.map +1 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +442 -0
- package/dist/sync.js.map +1 -0
- package/dist/test-schema.d.ts.map +1 -0
- package/dist/test-schema.js +46 -0
- package/dist/test-schema.js.map +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/update-checker.d.ts.map +1 -0
- package/dist/update-checker.js +151 -0
- package/dist/update-checker.js.map +1 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +23 -0
- package/dist/version.js.map +1 -0
- package/dist/watcher.d.ts.map +1 -0
- package/dist/watcher.js +438 -0
- package/dist/watcher.js.map +1 -0
- package/package.json +4 -7
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,0BAA0B;AAC1B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAe;AACf,IAAI,EAAE,GAA6B,IAAI,CAAC;AACxC,IAAI,MAAM,GAAW,EAAE,CAAC;AACxB,IAAI,SAAS,GAAW,WAAW,CAAC;AACpC,IAAI,UAAU,GAAY,KAAK,CAAC;AAEhC;;;GAGG;AACH,SAAS,gBAAgB;IACvB,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAEzC,OAAO,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACrE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,MAAM;IACb,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,KAAK,CAAC;YACf,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;YAClD,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,4EAA4E;QAC5E,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,UAAU;IACjB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACvC,CAAC;AAED,sBAAsB;AACtB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,aAAa,EAAE,wCAAwC,CAAC;KAC/D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACjC,qBAAqB;IACrB,MAAM,IAAI,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;IAC3C,IAAI,IAAI,CAAC,EAAE;QAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC9B,IAAI,IAAI,CAAC,IAAI;QAAE,UAAU,GAAG,IAAI,CAAC;IAEjC,gCAAgC;IAChC,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QAClC,MAAM,EAAE,CAAC;IACX,CAAC;AACH,CAAC,CAAC;KACD,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;IACvB,yCAAyC;IACzC,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,GAAG,IAAI,CAAC;IACZ,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,CAAC;KAC/D,MAAM,CAAC,yBAAyB,EAAE,sBAAsB,EAAE,OAAO,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,UAAU,CAAC;QACf,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,IAAI,GAAG,OAAO;KACjB,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,OAAO,CAAC;KACd,WAAW,CAAC,uBAAuB,CAAC,CAAC;AAExC,IAAI;KACD,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,2BAA2B,EAAE,gBAAgB,EAAE,GAAG,CAAC;KAC1D,MAAM,CAAC,0BAA0B,EAAE,aAAa,CAAC;KACjD,MAAM,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;KACtD,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAC/B,MAAM,gBAAgB,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEL,IAAI;KACD,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gBAAgB,CAAC;KAC7B,MAAM,CAAC,2BAA2B,EAAE,oBAAoB,CAAC;KACzD,MAAM,CAAC,oBAAoB,EAAE,4BAA4B,CAAC;KAC1D,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;KACpE,MAAM,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,cAAc,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEL,IAAI;KACD,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;IACnB,MAAM,cAAc,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEL,IAAI;KACD,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,2BAA2B,EAAE,cAAc,CAAC;KACnD,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC;KACtC,MAAM,CAAC,0BAA0B,EAAE,iBAAiB,CAAC;KACrD,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC;KAC7C,MAAM,CAAC,eAAe,EAAE,0BAA0B,CAAC;KACnD,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IAC5B,MAAM,gBAAgB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEL,IAAI;KACD,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IAC7B,MAAM,gBAAgB,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEL,IAAI;KACD,OAAO,CAAC,oCAAoC,CAAC;KAC7C,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;KAChE,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,CAAC;KACjE,MAAM,CAAC,kBAAkB,EAAE,4BAA4B,CAAC;KACxD,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC;KACvE,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,QAAQ,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;IAC/C,MAAM,kBAAkB,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEL,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,MAAM,KAAK,GAAG,OAAO;KAClB,OAAO,CAAC,OAAO,CAAC;KAChB,KAAK,CAAC,QAAQ,CAAC;KACf,WAAW,CAAC,eAAe,CAAC,CAAC;AAEhC,KAAK;KACF,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,oBAAoB,CAAC;KACjC,MAAM,CAAC,2BAA2B,EAAE,gBAAgB,EAAE,GAAG,CAAC;KAC1D,MAAM,CAAC,0BAA0B,EAAE,aAAa,CAAC;KACjD,MAAM,CAAC,2BAA2B,EAAE,UAAU,CAAC;KAC/C,MAAM,CAAC,eAAe,EAAE,iBAAiB,CAAC;KAC1C,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAC/B,MAAM,iBAAiB,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEL,KAAK;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iBAAiB,CAAC;KAC9B,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;KACnD,MAAM,CAAC,2BAA2B,EAAE,oBAAoB,CAAC;KACzD,MAAM,CAAC,2BAA2B,EAAE,oBAAoB,CAAC;KACzD,MAAM,CAAC,oBAAoB,EAAE,4BAA4B,CAAC;KAC1D,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;KACpE,MAAM,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,eAAe,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEL,KAAK;KACF,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,oBAAoB,CAAC;KACjC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;IACnB,MAAM,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEL,KAAK;KACF,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,iBAAiB,CAAC;KAC9B,MAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC;KAC7C,MAAM,CAAC,2BAA2B,EAAE,cAAc,CAAC;KACnD,MAAM,CAAC,2BAA2B,EAAE,cAAc,CAAC;KACnD,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC;KACtC,MAAM,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;KACjD,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IAC5B,MAAM,iBAAiB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEL,KAAK;KACF,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IAC7B,MAAM,gBAAgB,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEL,KAAK;KACF,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CACL,QAAQ,EACR,6DAA6D,CAC9D;KACA,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IAC7B,MAAM,iBAAiB,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEL,KAAK;KACF,OAAO,CAAC,oCAAoC,CAAC;KAC7C,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;KAChE,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,CAAC;KACjE,MAAM,CAAC,kBAAkB,EAAE,4BAA4B,CAAC;KACxD,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC;KACvE,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,QAAQ,CAAC;KAClE,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,OAAO,CAAC;KACrE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;IAC/C,MAAM,kBAAkB,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEL,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,YAAY,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IAClC,MAAM,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEL,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,WAAW,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,YAAY,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,WAAW,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEL,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,QAAQ,GAAG,OAAO;KACrB,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,kCAAkC,CAAC,CAAC;AAEnD,QAAQ;KACL,OAAO,CAAC,0BAA0B,CAAC;KACnC,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;KACxD,MAAM,CACL,eAAe,EACf,8CAA8C,EAC9C,SAAS,CACV;KACA,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;KAC7D,MAAM,CAAC,oBAAoB,EAAE,YAAY,CAAC;KAC1C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IACzC,MAAM,iBAAiB,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;KAChD,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;KAC9C,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;KACtD,MAAM,CACL,mBAAmB,EACnB,2DAA2D,CAC5D;KACA,MAAM,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,kBAAkB,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;IACnB,MAAM,kBAAkB,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;KAClD,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IAC5B,MAAM,qBAAqB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,mBAAmB,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IAC5B,MAAM,sBAAsB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEL,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,SAAS,EAAE,iCAAiC,CAAC;KACpD,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,MAAM,CAAC,eAAe,EAAE,gCAAgC,CAAC;KACzD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,UAAU,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,YAAY,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,WAAW,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,YAAY,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEL,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,CAAC;KAC5D,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,iBAAiB,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEL,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC;KACzD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,iBAAiB,EAAE,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,EAAE,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,mCAAmC;AACnC,qEAAqE;AACrE,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxD,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxD,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,CAAC;IACzC,qBAAqB,EAAE;SACpB,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACrB,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACV,wCAAwC;IAC1C,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/db.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CAAC,QAAQ,CA2BxE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAE3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,KAAK,CAAC,GACrC,CAAC,CAYH"}
|
package/dist/db.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database initialization and connection management
|
|
3
|
+
*/
|
|
4
|
+
import Database from "better-sqlite3";
|
|
5
|
+
import * as schema from "@sudocode-ai/types/schema";
|
|
6
|
+
import { runMigrations } from "./migrations.js";
|
|
7
|
+
/**
|
|
8
|
+
* Initialize and configure the SQLite database
|
|
9
|
+
*/
|
|
10
|
+
export function initDatabase(options) {
|
|
11
|
+
const db = new Database(options.path, {
|
|
12
|
+
verbose: options.verbose ? console.log : undefined,
|
|
13
|
+
});
|
|
14
|
+
// Apply database configuration
|
|
15
|
+
db.exec(schema.DB_CONFIG);
|
|
16
|
+
// Create all tables
|
|
17
|
+
for (const table of schema.ALL_TABLES) {
|
|
18
|
+
db.exec(table);
|
|
19
|
+
}
|
|
20
|
+
// Create all indexes
|
|
21
|
+
for (const indexes of schema.ALL_INDEXES) {
|
|
22
|
+
db.exec(indexes);
|
|
23
|
+
}
|
|
24
|
+
// Create all views
|
|
25
|
+
for (const view of schema.ALL_VIEWS) {
|
|
26
|
+
db.exec(view);
|
|
27
|
+
}
|
|
28
|
+
// Run any pending migrations
|
|
29
|
+
runMigrations(db);
|
|
30
|
+
return db;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get or create a database connection
|
|
34
|
+
*/
|
|
35
|
+
export function getDatabase(path) {
|
|
36
|
+
return initDatabase({ path });
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create a new transaction
|
|
40
|
+
*/
|
|
41
|
+
export function withTransaction(db, callback) {
|
|
42
|
+
const savepoint = `sp_${Date.now()}`;
|
|
43
|
+
try {
|
|
44
|
+
db.exec(`SAVEPOINT ${savepoint}`);
|
|
45
|
+
const result = callback(db);
|
|
46
|
+
db.exec(`RELEASE ${savepoint}`);
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
db.exec(`ROLLBACK TO ${savepoint}`);
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=db.js.map
|
package/dist/db.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAwB;IACnD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;QACpC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;KACnD,CAAC,CAAC;IAEH,+BAA+B;IAC/B,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE1B,oBAAoB;IACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,qBAAqB;IACrB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACzC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,mBAAmB;IACnB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACpC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,6BAA6B;IAC7B,aAAa,CAAC,EAAE,CAAC,CAAC;IAElB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,EAAqB,EACrB,QAAsC;IAEtC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,aAAa,SAAS,EAAE,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5B,EAAE,CAAC,IAAI,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,IAAI,EACJ,KAAK,EACL,SAAS,EACT,UAAU,EAGX,MAAM,YAAY,CAAC;AAQpB,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,IAAI,CAAC;IACb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,CAqBxE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,UAAU,CAwC5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,aAAkB,GAC1B,SAAS,EAAE,CAab;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,aAAkB,GAC1B,UAAU,EAAE,CAad;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBtD;AAED;;GAEG;AACH,qBAAa,eAAe;IAKxB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,OAAO,CAAkB;gBAGvB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,MAAa,EACtB,OAAO,GAAE,aAAkB;IAGrC;;OAEG;IACH,OAAO,IAAI,IAAI;IAYf;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB9B;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,MAAa,EACtB,OAAO,GAAE,aAAkB,GAC1B,eAAe,CAEjB"}
|
package/dist/export.js
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export SQLite data to JSONL files
|
|
3
|
+
*/
|
|
4
|
+
import { listSpecs } from "./operations/specs.js";
|
|
5
|
+
import { listIssues } from "./operations/issues.js";
|
|
6
|
+
import { getOutgoingRelationships } from "./operations/relationships.js";
|
|
7
|
+
import { getTags } from "./operations/tags.js";
|
|
8
|
+
import { listFeedback } from "./operations/feedback.js";
|
|
9
|
+
import { writeJSONL } from "./jsonl.js";
|
|
10
|
+
/**
|
|
11
|
+
* Convert a Spec to SpecJSONL format with embedded relationships and tags
|
|
12
|
+
*/
|
|
13
|
+
export function specToJSONL(db, spec) {
|
|
14
|
+
// Get outgoing relationships
|
|
15
|
+
const relationships = getOutgoingRelationships(db, spec.id, "spec");
|
|
16
|
+
// Convert to JSONL format
|
|
17
|
+
const relationshipsJSONL = relationships.map((rel) => ({
|
|
18
|
+
from: rel.from_id,
|
|
19
|
+
from_type: rel.from_type,
|
|
20
|
+
to: rel.to_id,
|
|
21
|
+
to_type: rel.to_type,
|
|
22
|
+
type: rel.relationship_type,
|
|
23
|
+
}));
|
|
24
|
+
// Get tags
|
|
25
|
+
const tags = getTags(db, spec.id, "spec");
|
|
26
|
+
return {
|
|
27
|
+
...spec,
|
|
28
|
+
relationships: relationshipsJSONL,
|
|
29
|
+
tags,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Convert an Issue to IssueJSONL format with embedded relationships and tags
|
|
34
|
+
*/
|
|
35
|
+
export function issueToJSONL(db, issue) {
|
|
36
|
+
// Get outgoing relationships
|
|
37
|
+
const relationships = getOutgoingRelationships(db, issue.id, "issue");
|
|
38
|
+
// Convert to JSONL format
|
|
39
|
+
const relationshipsJSONL = relationships.map((rel) => ({
|
|
40
|
+
from: rel.from_id,
|
|
41
|
+
from_type: rel.from_type,
|
|
42
|
+
to: rel.to_id,
|
|
43
|
+
to_type: rel.to_type,
|
|
44
|
+
type: rel.relationship_type,
|
|
45
|
+
}));
|
|
46
|
+
// Get tags
|
|
47
|
+
const tags = getTags(db, issue.id, "issue");
|
|
48
|
+
// Get feedback provided by this issue
|
|
49
|
+
const feedbackList = listFeedback(db, { issue_id: issue.id });
|
|
50
|
+
const feedbackJSONL = feedbackList.map((feedback) => ({
|
|
51
|
+
id: feedback.id,
|
|
52
|
+
issue_id: feedback.issue_id,
|
|
53
|
+
spec_id: feedback.spec_id,
|
|
54
|
+
feedback_type: feedback.feedback_type,
|
|
55
|
+
content: feedback.content,
|
|
56
|
+
agent: feedback.agent,
|
|
57
|
+
anchor: feedback.anchor && typeof feedback.anchor === "string"
|
|
58
|
+
? JSON.parse(feedback.anchor)
|
|
59
|
+
: feedback.anchor,
|
|
60
|
+
dismissed: feedback.dismissed,
|
|
61
|
+
created_at: feedback.created_at,
|
|
62
|
+
updated_at: feedback.updated_at,
|
|
63
|
+
}));
|
|
64
|
+
return {
|
|
65
|
+
...issue,
|
|
66
|
+
relationships: relationshipsJSONL,
|
|
67
|
+
tags,
|
|
68
|
+
feedback: feedbackJSONL.length > 0 ? feedbackJSONL : undefined,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Export all specs to JSONL format
|
|
73
|
+
*/
|
|
74
|
+
export function exportSpecsToJSONL(db, options = {}) {
|
|
75
|
+
const { since } = options;
|
|
76
|
+
// Get all specs (including archived)
|
|
77
|
+
const specs = listSpecs(db);
|
|
78
|
+
// Filter by timestamp if requested
|
|
79
|
+
const filtered = since
|
|
80
|
+
? specs.filter((spec) => new Date(spec.updated_at) > since)
|
|
81
|
+
: specs;
|
|
82
|
+
// Convert to JSONL format with relationships and tags
|
|
83
|
+
return filtered.map((spec) => specToJSONL(db, spec));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Export all issues to JSONL format
|
|
87
|
+
*/
|
|
88
|
+
export function exportIssuesToJSONL(db, options = {}) {
|
|
89
|
+
const { since } = options;
|
|
90
|
+
// Get all issues (including archived)
|
|
91
|
+
const issues = listIssues(db);
|
|
92
|
+
// Filter by timestamp if requested
|
|
93
|
+
const filtered = since
|
|
94
|
+
? issues.filter((issue) => new Date(issue.updated_at) > since)
|
|
95
|
+
: issues;
|
|
96
|
+
// Convert to JSONL format with relationships and tags
|
|
97
|
+
return filtered.map((issue) => issueToJSONL(db, issue));
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Export both specs and issues to JSONL files
|
|
101
|
+
*/
|
|
102
|
+
export async function exportToJSONL(db, options = {}) {
|
|
103
|
+
const { outputDir = ".sudocode", specsFile = "specs.jsonl", issuesFile = "issues.jsonl", } = options;
|
|
104
|
+
const specsPath = `${outputDir}/${specsFile}`;
|
|
105
|
+
const issuesPath = `${outputDir}/${issuesFile}`;
|
|
106
|
+
// Export specs
|
|
107
|
+
const specs = exportSpecsToJSONL(db, options);
|
|
108
|
+
await writeJSONL(specsPath, specs);
|
|
109
|
+
// Export issues
|
|
110
|
+
const issues = exportIssuesToJSONL(db, options);
|
|
111
|
+
await writeJSONL(issuesPath, issues);
|
|
112
|
+
return {
|
|
113
|
+
specsCount: specs.length,
|
|
114
|
+
issuesCount: issues.length,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Debouncer for export operations
|
|
119
|
+
*/
|
|
120
|
+
export class ExportDebouncer {
|
|
121
|
+
db;
|
|
122
|
+
delayMs;
|
|
123
|
+
options;
|
|
124
|
+
timeoutId = null;
|
|
125
|
+
pending = false;
|
|
126
|
+
constructor(db, delayMs = 5000, options = {}) {
|
|
127
|
+
this.db = db;
|
|
128
|
+
this.delayMs = delayMs;
|
|
129
|
+
this.options = options;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Trigger an export (will be debounced)
|
|
133
|
+
*/
|
|
134
|
+
trigger() {
|
|
135
|
+
this.pending = true;
|
|
136
|
+
if (this.timeoutId) {
|
|
137
|
+
clearTimeout(this.timeoutId);
|
|
138
|
+
}
|
|
139
|
+
this.timeoutId = setTimeout(() => {
|
|
140
|
+
this.execute();
|
|
141
|
+
}, this.delayMs);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Execute the export immediately
|
|
145
|
+
*/
|
|
146
|
+
async execute() {
|
|
147
|
+
if (!this.pending) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
this.pending = false;
|
|
151
|
+
this.timeoutId = null;
|
|
152
|
+
try {
|
|
153
|
+
await exportToJSONL(this.db, this.options);
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
console.error("Export failed:", error);
|
|
157
|
+
throw error;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Cancel any pending export
|
|
162
|
+
*/
|
|
163
|
+
cancel() {
|
|
164
|
+
if (this.timeoutId) {
|
|
165
|
+
clearTimeout(this.timeoutId);
|
|
166
|
+
this.timeoutId = null;
|
|
167
|
+
}
|
|
168
|
+
this.pending = false;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Check if an export is pending
|
|
172
|
+
*/
|
|
173
|
+
isPending() {
|
|
174
|
+
return this.pending;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Wait for any pending export to complete
|
|
178
|
+
*/
|
|
179
|
+
async flush() {
|
|
180
|
+
if (this.pending) {
|
|
181
|
+
if (this.timeoutId) {
|
|
182
|
+
clearTimeout(this.timeoutId);
|
|
183
|
+
this.timeoutId = null;
|
|
184
|
+
}
|
|
185
|
+
await this.execute();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Create a debounced export function
|
|
191
|
+
*/
|
|
192
|
+
export function createDebouncedExport(db, delayMs = 5000, options = {}) {
|
|
193
|
+
return new ExportDebouncer(db, delayMs, options);
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filename-generator.d.ts","sourceRoot":"","sources":["../src/filename-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAW,GAAG,MAAM,CAO7E;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAc,GACxB,MAAM,CA4BR;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAgCf"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate human-readable filenames from spec titles
|
|
3
|
+
*/
|
|
4
|
+
import * as fs from 'fs';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
/**
|
|
7
|
+
* Convert a title to snake_case filename
|
|
8
|
+
* - Lowercase
|
|
9
|
+
* - Replace spaces and special chars with underscores
|
|
10
|
+
* - Remove consecutive underscores
|
|
11
|
+
* - Trim underscores from start/end
|
|
12
|
+
* - Truncate to reasonable length
|
|
13
|
+
*/
|
|
14
|
+
export function titleToFilename(title, maxLength = 50) {
|
|
15
|
+
return title
|
|
16
|
+
.toLowerCase()
|
|
17
|
+
.replace(/[^a-z0-9]+/g, '_') // Replace non-alphanumeric with underscore
|
|
18
|
+
.replace(/_+/g, '_') // Replace multiple underscores with single
|
|
19
|
+
.replace(/^_|_$/g, '') // Trim underscores from start/end
|
|
20
|
+
.slice(0, maxLength); // Truncate to max length
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Generate a unique filename based on title, with ID suffix if collision
|
|
24
|
+
* @param title - The spec title
|
|
25
|
+
* @param id - The spec ID (used for collision resolution)
|
|
26
|
+
* @param directory - Directory to check for collisions
|
|
27
|
+
* @param extension - File extension (default: .md)
|
|
28
|
+
* @returns Unique filename
|
|
29
|
+
*/
|
|
30
|
+
export function generateUniqueFilename(title, id, directory, extension = '.md') {
|
|
31
|
+
const baseFilename = titleToFilename(title);
|
|
32
|
+
// Try base filename first
|
|
33
|
+
const baseFile = baseFilename + extension;
|
|
34
|
+
const basePath = path.join(directory, baseFile);
|
|
35
|
+
// If file doesn't exist, use base filename
|
|
36
|
+
if (!fs.existsSync(basePath)) {
|
|
37
|
+
return baseFile;
|
|
38
|
+
}
|
|
39
|
+
// Check if existing file is for the same spec (by reading its frontmatter ID)
|
|
40
|
+
try {
|
|
41
|
+
const existingContent = fs.readFileSync(basePath, 'utf8');
|
|
42
|
+
const idMatch = existingContent.match(/^---\s*\n[\s\S]*?^id:\s*['"]?([^'"\n]+)['"]?\s*$/m);
|
|
43
|
+
if (idMatch && idMatch[1] === id) {
|
|
44
|
+
// Same spec, use the existing filename
|
|
45
|
+
return baseFile;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
// If we can't read the file, assume it's a collision
|
|
50
|
+
}
|
|
51
|
+
// Collision detected - append ID
|
|
52
|
+
const collisionFilename = `${baseFilename}_${id}${extension}`;
|
|
53
|
+
return collisionFilename;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Find existing markdown file for a spec (supports both naming conventions)
|
|
57
|
+
* @param specId - The spec ID
|
|
58
|
+
* @param directory - Directory to search
|
|
59
|
+
* @param title - Optional title for title-based search
|
|
60
|
+
* @returns Path to existing file if found, null otherwise
|
|
61
|
+
*/
|
|
62
|
+
export function findExistingSpecFile(specId, directory, title) {
|
|
63
|
+
// Try ID-based filename first (legacy)
|
|
64
|
+
const idBasedFile = path.join(directory, `${specId}.md`);
|
|
65
|
+
if (fs.existsSync(idBasedFile)) {
|
|
66
|
+
return idBasedFile;
|
|
67
|
+
}
|
|
68
|
+
// Try title-based filename
|
|
69
|
+
if (title) {
|
|
70
|
+
const titleBasedFile = path.join(directory, `${titleToFilename(title)}.md`);
|
|
71
|
+
if (fs.existsSync(titleBasedFile)) {
|
|
72
|
+
// Verify it's the right spec by checking ID in frontmatter
|
|
73
|
+
try {
|
|
74
|
+
const content = fs.readFileSync(titleBasedFile, 'utf8');
|
|
75
|
+
const idMatch = content.match(/^---\s*\n[\s\S]*?^id:\s*['"]?([^'"\n]+)['"]?\s*$/m);
|
|
76
|
+
if (idMatch && idMatch[1] === specId) {
|
|
77
|
+
return titleBasedFile;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
// Continue searching
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Try title-based with ID suffix
|
|
85
|
+
const titleWithIdFile = path.join(directory, `${titleToFilename(title)}_${specId}.md`);
|
|
86
|
+
if (fs.existsSync(titleWithIdFile)) {
|
|
87
|
+
return titleWithIdFile;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Not found
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=filename-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filename-generator.js","sourceRoot":"","sources":["../src/filename-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-generator.d.ts","sourceRoot":"","sources":["../src/id-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,GAChB,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,GAChB,MAAM,CAKR;AA6FD;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GACvB,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ID generation utilities
|
|
3
|
+
*/
|
|
4
|
+
import * as fs from "fs";
|
|
5
|
+
import * as path from "path";
|
|
6
|
+
import * as crypto from "crypto";
|
|
7
|
+
import { VERSION } from "./version.js";
|
|
8
|
+
/**
|
|
9
|
+
* Generate next spec ID based on database contents
|
|
10
|
+
*/
|
|
11
|
+
export function generateSpecId(db, outputDir) {
|
|
12
|
+
const config = readConfig(outputDir);
|
|
13
|
+
const nextNumber = getNextSpecNumber(db);
|
|
14
|
+
return `${config.id_prefix.spec}-${String(nextNumber).padStart(3, "0")}`;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Generate next issue ID based on database contents
|
|
18
|
+
*/
|
|
19
|
+
export function generateIssueId(db, outputDir) {
|
|
20
|
+
const config = readConfig(outputDir);
|
|
21
|
+
const nextNumber = getNextIssueNumber(db);
|
|
22
|
+
return `${config.id_prefix.issue}-${String(nextNumber).padStart(3, "0")}`;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get next spec number from database
|
|
26
|
+
* Strategy:
|
|
27
|
+
* 1. Find the latest spec by created_at
|
|
28
|
+
* 2. Extract number from its ID
|
|
29
|
+
* 3. Increment by 1
|
|
30
|
+
* 4. Fallback to count + 1 if extraction fails
|
|
31
|
+
*/
|
|
32
|
+
function getNextSpecNumber(db) {
|
|
33
|
+
const stmt = db.prepare(`
|
|
34
|
+
SELECT id FROM specs
|
|
35
|
+
ORDER BY created_at DESC
|
|
36
|
+
LIMIT 1
|
|
37
|
+
`);
|
|
38
|
+
const latest = stmt.get();
|
|
39
|
+
if (latest) {
|
|
40
|
+
const match = latest.id.match(/(\d+)$/);
|
|
41
|
+
if (match) {
|
|
42
|
+
return parseInt(match[1], 10) + 1;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Fallback: count + 1
|
|
46
|
+
const countStmt = db.prepare(`SELECT COUNT(*) as count FROM specs`);
|
|
47
|
+
const result = countStmt.get();
|
|
48
|
+
return result.count + 1;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get next issue number from database
|
|
52
|
+
* Strategy:
|
|
53
|
+
* 1. Find the latest issue by created_at
|
|
54
|
+
* 2. Extract number from its ID
|
|
55
|
+
* 3. Increment by 1
|
|
56
|
+
* 4. Fallback to count + 1 if extraction fails
|
|
57
|
+
*/
|
|
58
|
+
function getNextIssueNumber(db) {
|
|
59
|
+
const stmt = db.prepare(`
|
|
60
|
+
SELECT id FROM issues
|
|
61
|
+
ORDER BY created_at DESC
|
|
62
|
+
LIMIT 1
|
|
63
|
+
`);
|
|
64
|
+
const latest = stmt.get();
|
|
65
|
+
if (latest) {
|
|
66
|
+
const match = latest.id.match(/(\d+)$/);
|
|
67
|
+
if (match) {
|
|
68
|
+
return parseInt(match[1], 10) + 1;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Fallback: count + 1
|
|
72
|
+
const countStmt = db.prepare(`SELECT COUNT(*) as count FROM issues`);
|
|
73
|
+
const result = countStmt.get();
|
|
74
|
+
return result.count + 1;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Read config file (version-controlled)
|
|
78
|
+
*/
|
|
79
|
+
function readConfig(outputDir) {
|
|
80
|
+
const configPath = path.join(outputDir, "config.json");
|
|
81
|
+
if (!fs.existsSync(configPath)) {
|
|
82
|
+
// Create default config if not exists
|
|
83
|
+
const defaultConfig = {
|
|
84
|
+
version: VERSION,
|
|
85
|
+
id_prefix: {
|
|
86
|
+
spec: "SPEC",
|
|
87
|
+
issue: "ISSUE",
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
writeConfig(outputDir, defaultConfig);
|
|
91
|
+
return defaultConfig;
|
|
92
|
+
}
|
|
93
|
+
const content = fs.readFileSync(configPath, "utf8");
|
|
94
|
+
return JSON.parse(content);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Write config file (version-controlled)
|
|
98
|
+
*/
|
|
99
|
+
function writeConfig(outputDir, config) {
|
|
100
|
+
const configPath = path.join(outputDir, "config.json");
|
|
101
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2), "utf8");
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get current config
|
|
105
|
+
*/
|
|
106
|
+
export function getConfig(outputDir) {
|
|
107
|
+
return readConfig(outputDir);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Update config (version-controlled)
|
|
111
|
+
*/
|
|
112
|
+
export function updateConfig(outputDir, updates) {
|
|
113
|
+
const config = readConfig(outputDir);
|
|
114
|
+
Object.assign(config, updates);
|
|
115
|
+
writeConfig(outputDir, config);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Generate a UUID v4
|
|
119
|
+
*/
|
|
120
|
+
export function generateUUID() {
|
|
121
|
+
return crypto.randomUUID();
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=id-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-generator.js","sourceRoot":"","sources":["../src/id-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../src/import.ts"],"names":[],"mappings":"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"}
|