backpack-ontology 0.7.13 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +123 -0
  2. package/dist/bin/bp.d.ts +3 -0
  3. package/dist/bin/bp.d.ts.map +1 -0
  4. package/dist/bin/bp.js +8 -0
  5. package/dist/bin/bp.js.map +1 -0
  6. package/dist/cli/colors.d.ts +23 -0
  7. package/dist/cli/colors.d.ts.map +1 -0
  8. package/dist/cli/colors.js +40 -0
  9. package/dist/cli/colors.js.map +1 -0
  10. package/dist/cli/commands/auth.d.ts +4 -0
  11. package/dist/cli/commands/auth.d.ts.map +1 -0
  12. package/dist/cli/commands/auth.js +50 -0
  13. package/dist/cli/commands/auth.js.map +1 -0
  14. package/dist/cli/commands/cat.d.ts +3 -0
  15. package/dist/cli/commands/cat.d.ts.map +1 -0
  16. package/dist/cli/commands/cat.js +31 -0
  17. package/dist/cli/commands/cat.js.map +1 -0
  18. package/dist/cli/commands/cloud-admin.d.ts +7 -0
  19. package/dist/cli/commands/cloud-admin.d.ts.map +1 -0
  20. package/dist/cli/commands/cloud-admin.js +186 -0
  21. package/dist/cli/commands/cloud-admin.js.map +1 -0
  22. package/dist/cli/commands/completion.d.ts +3 -0
  23. package/dist/cli/commands/completion.d.ts.map +1 -0
  24. package/dist/cli/commands/completion.js +159 -0
  25. package/dist/cli/commands/completion.js.map +1 -0
  26. package/dist/cli/commands/containers.d.ts +3 -0
  27. package/dist/cli/commands/containers.d.ts.map +1 -0
  28. package/dist/cli/commands/containers.js +30 -0
  29. package/dist/cli/commands/containers.js.map +1 -0
  30. package/dist/cli/commands/context.d.ts +4 -0
  31. package/dist/cli/commands/context.d.ts.map +1 -0
  32. package/dist/cli/commands/context.js +61 -0
  33. package/dist/cli/commands/context.js.map +1 -0
  34. package/dist/cli/commands/doctor.d.ts +3 -0
  35. package/dist/cli/commands/doctor.d.ts.map +1 -0
  36. package/dist/cli/commands/doctor.js +74 -0
  37. package/dist/cli/commands/doctor.js.map +1 -0
  38. package/dist/cli/commands/graphs.d.ts +3 -0
  39. package/dist/cli/commands/graphs.d.ts.map +1 -0
  40. package/dist/cli/commands/graphs.js +68 -0
  41. package/dist/cli/commands/graphs.js.map +1 -0
  42. package/dist/cli/commands/init.d.ts +3 -0
  43. package/dist/cli/commands/init.d.ts.map +1 -0
  44. package/dist/cli/commands/init.js +56 -0
  45. package/dist/cli/commands/init.js.map +1 -0
  46. package/dist/cli/commands/kbs.d.ts +3 -0
  47. package/dist/cli/commands/kbs.d.ts.map +1 -0
  48. package/dist/cli/commands/kbs.js +258 -0
  49. package/dist/cli/commands/kbs.js.map +1 -0
  50. package/dist/cli/commands/ls.d.ts +3 -0
  51. package/dist/cli/commands/ls.d.ts.map +1 -0
  52. package/dist/cli/commands/ls.js +90 -0
  53. package/dist/cli/commands/ls.js.map +1 -0
  54. package/dist/cli/commands/mutate.d.ts +7 -0
  55. package/dist/cli/commands/mutate.d.ts.map +1 -0
  56. package/dist/cli/commands/mutate.js +268 -0
  57. package/dist/cli/commands/mutate.js.map +1 -0
  58. package/dist/cli/commands/open.d.ts +3 -0
  59. package/dist/cli/commands/open.d.ts.map +1 -0
  60. package/dist/cli/commands/open.js +59 -0
  61. package/dist/cli/commands/open.js.map +1 -0
  62. package/dist/cli/commands/search.d.ts +3 -0
  63. package/dist/cli/commands/search.d.ts.map +1 -0
  64. package/dist/cli/commands/search.js +63 -0
  65. package/dist/cli/commands/search.js.map +1 -0
  66. package/dist/cli/commands/show.d.ts +3 -0
  67. package/dist/cli/commands/show.d.ts.map +1 -0
  68. package/dist/cli/commands/show.js +82 -0
  69. package/dist/cli/commands/show.js.map +1 -0
  70. package/dist/cli/commands/version.d.ts +2 -0
  71. package/dist/cli/commands/version.d.ts.map +1 -0
  72. package/dist/cli/commands/version.js +18 -0
  73. package/dist/cli/commands/version.js.map +1 -0
  74. package/dist/cli/help.d.ts +3 -0
  75. package/dist/cli/help.d.ts.map +1 -0
  76. package/dist/cli/help.js +122 -0
  77. package/dist/cli/help.js.map +1 -0
  78. package/dist/cli/output.d.ts +35 -0
  79. package/dist/cli/output.d.ts.map +1 -0
  80. package/dist/cli/output.js +224 -0
  81. package/dist/cli/output.js.map +1 -0
  82. package/dist/cli/parser.d.ts +16 -0
  83. package/dist/cli/parser.d.ts.map +1 -0
  84. package/dist/cli/parser.js +131 -0
  85. package/dist/cli/parser.js.map +1 -0
  86. package/dist/cli/router.d.ts +2 -0
  87. package/dist/cli/router.d.ts.map +1 -0
  88. package/dist/cli/router.js +147 -0
  89. package/dist/cli/router.js.map +1 -0
  90. package/dist/cli/util/confirm.d.ts +3 -0
  91. package/dist/cli/util/confirm.d.ts.map +1 -0
  92. package/dist/cli/util/confirm.js +48 -0
  93. package/dist/cli/util/confirm.js.map +1 -0
  94. package/dist/core/backpack.d.ts +8 -0
  95. package/dist/core/backpack.d.ts.map +1 -1
  96. package/dist/core/backpack.js +32 -0
  97. package/dist/core/backpack.js.map +1 -1
  98. package/dist/mcp/tools/cloud-tools.d.ts +2 -2
  99. package/dist/mcp/tools/cloud-tools.d.ts.map +1 -1
  100. package/dist/mcp/tools/cloud-tools.js +244 -55
  101. package/dist/mcp/tools/cloud-tools.js.map +1 -1
  102. package/dist/ops/auth.d.ts +54 -0
  103. package/dist/ops/auth.d.ts.map +1 -0
  104. package/dist/ops/auth.js +181 -0
  105. package/dist/ops/auth.js.map +1 -0
  106. package/dist/ops/containers.d.ts +27 -0
  107. package/dist/ops/containers.d.ts.map +1 -0
  108. package/dist/ops/containers.js +150 -0
  109. package/dist/ops/containers.js.map +1 -0
  110. package/dist/ops/context.d.ts +51 -0
  111. package/dist/ops/context.d.ts.map +1 -0
  112. package/dist/ops/context.js +158 -0
  113. package/dist/ops/context.js.map +1 -0
  114. package/dist/ops/graphs.d.ts +69 -0
  115. package/dist/ops/graphs.d.ts.map +1 -0
  116. package/dist/ops/graphs.js +278 -0
  117. package/dist/ops/graphs.js.map +1 -0
  118. package/dist/ops/kb.d.ts +33 -0
  119. package/dist/ops/kb.d.ts.map +1 -0
  120. package/dist/ops/kb.js +176 -0
  121. package/dist/ops/kb.js.map +1 -0
  122. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../../src/cli/commands/mutate.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,qEAAqE;AACrE,oBAAoB;AAEpB,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAc,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,QAAQ,EACR,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAgB;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gHAAgH,CAAC,CAAC;QACvI,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/D,IAAI,CAAC;QACH,oEAAoE;QACpE,iEAAiE;QACjE,sEAAsE;QACtE,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,2DAA2D,CAAC,CAAC;YAC5G,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;YAClD,qEAAqE;YACrE,oEAAoE;YACpE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,QAAQ,CAAC,IAAI,+BAA+B,IAAI,8DAA8D,CAAC,CAAC;gBAClL,OAAO,CAAC,CAAC;YACX,CAAC;YACD,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAK,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAgB;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAChG,OAAO,CAAC,CAAC;IACX,CAAC;IACD,wDAAwD;IACxD,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QAAC,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAC9C,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAK,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,qCAAqC,CAAC,CAAC;QACtF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,SAAS,WAAW,OAAO,CAAC,SAAS,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACxH,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,kEAAkE;QAClE,kDAAkD;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAK,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAgB;IAC9C,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IAC3C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;QAC3G,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC5E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5E,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAK,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAgB;IAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;QACtG,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,KAAM,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QACxF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;IACrC,+DAA+D;IAC/D,uEAAuE;IACvE,gDAAgD;IAChD,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,gCAAgC,QAAQ,kCAAkC,QAAQ,gCAAgC,CAAC,CAAC;QACpJ,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,IAAI,QAAQ,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;QACjH,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9J,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAK,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAgB;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACvF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IACtC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAK,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,qCAAqC,CAAC,CAAC;QACtF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,8CAA8C,CAAC,CAAC;QAClG,OAAO,CAAC,CAAC;IACX,CAAC;IAED,wDAAwD;IACxD,kEAAkE;IAClE,sEAAsE;IACtE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChH,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEzC,sEAAsE;IACtE,oDAAoD;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAC7E,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvD,oEAAoE;IACpE,oEAAoE;IACpE,0CAA0C;IAC1C,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,SAAS;YAAE,OAAO;QACtB,SAAS,GAAG,IAAI,CAAC;QACjB,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,WAAW,GAAG,IAAI,CAAC;QACnB,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC;IACzB,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,IAAI,WAAW;YAAE,OAAO,GAAG,CAAC;QAC5B,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,QAAQ,yBAAyB,CAAC,CAAC;YACxF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,MAAyB,CAAC;QAC9B,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAsB,CAAC;QAAC,CAAC;QAC1D,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,mCAAoC,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;YAC/F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,OAAO,IAAI,CAAC,CAAC,CAAC;YACzD,SAAS,GAAG,IAAI,CAAC,CAAE,uCAAuC;YAC1D,OAAO,CAAC,CAAC;QACX,CAAC;QACD,oEAAoE;QACpE,gEAAgE;QAChE,mBAAmB;QACnB,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAK,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED;uEACuE;AACvE,SAAS,YAAY,CAAC,IAAuB;IAC3C,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI;YACzB,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW;YACvC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;SAC9C;QACD,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;IACF,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,eAAe,CAAC,CAAU;IACjC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,eAAe,CAAE,CAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7H,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ParsedArgs } from "../parser.js";
2
+ export declare function runOpen(args: ParsedArgs): Promise<number>;
3
+ //# sourceMappingURL=open.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/open.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C,wBAAsB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAwC/D"}
@@ -0,0 +1,59 @@
1
+ // `bp open <name>` — launch the viewer pointed at this graph. Spawns
2
+ // `npx backpack-viewer` in the background and opens the URL with the
3
+ // platform's default browser. Best-effort: if `open` (mac) / `xdg-open`
4
+ // (linux) / `start` (win) isn't available, prints the URL.
5
+ import { spawn } from "node:child_process";
6
+ import { getGraphSummary } from "../../ops/graphs.js";
7
+ import { red, dim, green } from "../colors.js";
8
+ const VIEWER_URL = process.env.BACKPACK_VIEWER_URL || "http://127.0.0.1:5173";
9
+ export async function runOpen(args) {
10
+ const name = args.positional[0];
11
+ if (!name) {
12
+ process.stderr.write(`bp open: graph name required.\nusage: bp open <name>\n`);
13
+ return 1;
14
+ }
15
+ try {
16
+ const summary = await getGraphSummary(name);
17
+ if (!summary) {
18
+ process.stderr.write(`${red("✗")} graph "${name}" not found in the current scope.\n`);
19
+ return 1;
20
+ }
21
+ }
22
+ catch (err) {
23
+ process.stderr.write(`${red("✗")} ${err.message}\n`);
24
+ return 1;
25
+ }
26
+ const url = `${VIEWER_URL}/#${encodeURIComponent(name)}`;
27
+ process.stdout.write(`${green("→")} ${url}\n`);
28
+ // Fire-and-forget the OS open command. We don't await so the user's
29
+ // terminal isn't blocked while the browser opens. `start` is a cmd.exe
30
+ // builtin (not a binary on PATH), so on Windows we have to invoke it
31
+ // through cmd; the empty string is the title arg that `start` requires
32
+ // when the target is quoted.
33
+ let cmd;
34
+ let cmdArgs;
35
+ if (process.platform === "darwin") {
36
+ cmd = "open";
37
+ cmdArgs = [url];
38
+ }
39
+ else if (process.platform === "win32") {
40
+ cmd = "cmd";
41
+ cmdArgs = ["/c", "start", "", url];
42
+ }
43
+ else {
44
+ cmd = "xdg-open";
45
+ cmdArgs = [url];
46
+ }
47
+ try {
48
+ const child = spawn(cmd, cmdArgs, { detached: true, stdio: "ignore" });
49
+ child.on("error", () => {
50
+ process.stdout.write(dim(" (couldn't auto-launch — copy the URL above into your browser)\n"));
51
+ });
52
+ child.unref();
53
+ }
54
+ catch {
55
+ process.stdout.write(dim(" (couldn't auto-launch — copy the URL above into your browser)\n"));
56
+ }
57
+ return 0;
58
+ }
59
+ //# sourceMappingURL=open.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/cli/commands/open.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,qEAAqE;AACrE,wEAAwE;AACxE,2DAA2D;AAG3D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,uBAAuB,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAgB;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC/E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,qCAAqC,CAAC,CAAC;YACtF,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAK,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,UAAU,KAAK,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAE/C,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,6BAA6B;IAC7B,IAAI,GAAW,CAAC;IAChB,IAAI,OAAiB,CAAC;IACtB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAAC,GAAG,GAAG,MAAM,CAAC;QAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;SAChE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAAC,GAAG,GAAG,KAAK,CAAC;QAAC,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAAC,CAAC;SACtF,CAAC;QAAC,GAAG,GAAG,UAAU,CAAC;QAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC,CAAC;QACjG,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ParsedArgs } from "../parser.js";
2
+ export declare function runSearch(args: ParsedArgs): Promise<number>;
3
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAc,MAAM,cAAc,CAAC;AAKtD,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAuDjE"}
@@ -0,0 +1,63 @@
1
+ // `bp search <query>` — full-text search across visible graphs. Skips
2
+ // encrypted cloud graphs (server can't decrypt them; we don't have the key).
3
+ import { flagString } from "../parser.js";
4
+ import { searchGraphs } from "../../ops/graphs.js";
5
+ import { resolveFormat, emitList } from "../output.js";
6
+ import { dim, bold, red, yellow } from "../colors.js";
7
+ export async function runSearch(args) {
8
+ const query = args.positional.join(" ").trim();
9
+ if (!query) {
10
+ process.stderr.write(`bp search: query required.\nusage: bp search <query>\n`);
11
+ return 1;
12
+ }
13
+ const maxGraphs = parseInt(flagString(args, "max-graphs") ?? "", 10);
14
+ try {
15
+ const result = await searchGraphs(query, {
16
+ maxGraphs: Number.isFinite(maxGraphs) && maxGraphs > 0 ? maxGraphs : undefined,
17
+ });
18
+ const fmt = resolveFormat(args.flags);
19
+ if (fmt === "json" || fmt === "yaml") {
20
+ emitList({
21
+ rows: result.hits,
22
+ pluralLabel: "hits",
23
+ cols: [
24
+ { header: "GRAPH", get: (r) => r.graphName },
25
+ { header: "TYPE", get: (r) => r.nodeType },
26
+ { header: "LABEL", get: (r) => r.label },
27
+ { header: "ID", get: (r) => r.nodeId },
28
+ ],
29
+ }, { format: fmt });
30
+ return 0;
31
+ }
32
+ emitList({
33
+ rows: result.hits,
34
+ pluralLabel: "hits",
35
+ empty: dim(`no matches for "${query}".`),
36
+ cols: [
37
+ { header: "GRAPH", get: (r) => r.graphName, max: 32 },
38
+ { header: "TYPE", get: (r) => r.nodeType, max: 20 },
39
+ { header: "LABEL", get: (r) => r.label, max: 60 },
40
+ { header: "ID", get: (r) => r.nodeId, dim: true, wide: true },
41
+ ],
42
+ }, { format: fmt });
43
+ if (fmt === "names")
44
+ return 0;
45
+ // Footer: surface skipped + truncated counts so a "no matches" result
46
+ // doesn't read as authoritative when we silently dropped graphs.
47
+ const notes = [];
48
+ if (result.hits.length > 0)
49
+ notes.push(`${result.hits.length} match${result.hits.length === 1 ? "" : "es"} for "${bold(query)}"`);
50
+ if (result.graphsSkipped > 0)
51
+ notes.push(yellow(`skipped ${result.graphsSkipped} encrypted graph${result.graphsSkipped === 1 ? "" : "s"}`));
52
+ if (result.truncated)
53
+ notes.push(yellow(`only scanned the first ${result.graphsScanned} of ${result.graphsInScope} graphs — pass --max-graphs to widen`));
54
+ if (notes.length > 0)
55
+ process.stdout.write("\n " + dim(notes.join(" · ")) + "\n");
56
+ return 0;
57
+ }
58
+ catch (err) {
59
+ process.stderr.write(`${red("✗")} ${err.message}\n`);
60
+ return 1;
61
+ }
62
+ }
63
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ParsedArgs } from "../parser.js";
2
+ export declare function runShow(args: ParsedArgs): Promise<number>;
3
+ //# sourceMappingURL=show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/show.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,wBAAsB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAuE/D"}
@@ -0,0 +1,82 @@
1
+ // `bp show <name>` — human-friendly graph summary. Counts by type, edges,
2
+ // description, encryption / origin badges, the first few node labels.
3
+ import { getGraph, getGraphSummary } from "../../ops/graphs.js";
4
+ import { resolveFormat, emitOne } from "../output.js";
5
+ import { bold, dim, red, yellow, cyan } from "../colors.js";
6
+ export async function runShow(args) {
7
+ const name = args.positional[0];
8
+ if (!name) {
9
+ process.stderr.write(`bp show: graph name required.\nusage: bp show <name>\n`);
10
+ return 1;
11
+ }
12
+ let summary;
13
+ try {
14
+ summary = await getGraphSummary(name);
15
+ }
16
+ catch (err) {
17
+ process.stderr.write(`${red("✗")} ${err.message}\n`);
18
+ return 1;
19
+ }
20
+ if (!summary) {
21
+ process.stderr.write(`${red("✗")} graph "${name}" not found in the current scope.\n`);
22
+ return 1;
23
+ }
24
+ const fmt = resolveFormat(args.flags);
25
+ if (fmt !== "human") {
26
+ // Structured output: include the data if accessible.
27
+ let data;
28
+ if (!summary.encrypted) {
29
+ const r = await getGraph(name).catch(() => null);
30
+ if (r && r.kind === "ok")
31
+ data = r.data;
32
+ }
33
+ emitOne({ ...summary, data }, { format: fmt });
34
+ return 0;
35
+ }
36
+ // Human view
37
+ process.stdout.write(`${bold(summary.name)}${summary.encrypted ? " " + yellow("[encrypted]") : ""}${summary.origin === "cloud" ? " " + dim("(cloud)") : ""}\n`);
38
+ if (summary.description)
39
+ process.stdout.write(` ${summary.description}\n`);
40
+ process.stdout.write(` ${cyan(String(summary.nodeCount))} nodes, ${cyan(String(summary.edgeCount))} edges\n`);
41
+ if (summary.tags && summary.tags.length > 0) {
42
+ process.stdout.write(` ${dim("tags:")} ${summary.tags.join(", ")}\n`);
43
+ }
44
+ if (summary.sourceBackpack) {
45
+ process.stdout.write(` ${dim("container:")} ${summary.sourceBackpack}\n`);
46
+ }
47
+ if (summary.encrypted) {
48
+ process.stdout.write(`\n ${yellow("encrypted graph — open in your local viewer to inspect contents.")}\n`);
49
+ return 0;
50
+ }
51
+ // Type histogram. Skip on huge graphs so `bp show` doesn't block the
52
+ // event loop for seconds with no feedback. The threshold is generous;
53
+ // anything above it should use `bp cat … | jq '.nodes | group_by(.type)'`.
54
+ const HISTOGRAM_NODE_LIMIT = 50_000;
55
+ try {
56
+ const r = await getGraph(name);
57
+ if (r.kind === "ok" && Array.isArray(r.data.nodes)) {
58
+ if (r.data.nodes.length > HISTOGRAM_NODE_LIMIT) {
59
+ process.stdout.write(dim(`\n (graph has ${r.data.nodes.length} nodes — type histogram skipped; use \`bp cat ${name} | jq '.nodes | group_by(.type)'\`)\n`));
60
+ }
61
+ else {
62
+ const types = new Map();
63
+ for (const n of r.data.nodes)
64
+ types.set(n.type, (types.get(n.type) ?? 0) + 1);
65
+ if (types.size > 0) {
66
+ process.stdout.write("\n " + bold("types") + "\n");
67
+ const sorted = [...types.entries()].sort((a, b) => b[1] - a[1]);
68
+ for (const [t, c] of sorted.slice(0, 12)) {
69
+ process.stdout.write(` ${cyan(String(c).padStart(4))} ${t}\n`);
70
+ }
71
+ if (sorted.length > 12)
72
+ process.stdout.write(dim(` … ${sorted.length - 12} more\n`));
73
+ }
74
+ }
75
+ }
76
+ }
77
+ catch {
78
+ // best-effort — already showed the summary above
79
+ }
80
+ return 0;
81
+ }
82
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/cli/commands/show.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runVersion(): Promise<number>;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/version.ts"],"names":[],"mappings":"AAMA,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAWlD"}
@@ -0,0 +1,18 @@
1
+ // `bp version` — print the package version and node version.
2
+ import * as fs from "node:fs/promises";
3
+ import * as path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ export async function runVersion() {
6
+ const dir = path.dirname(fileURLToPath(import.meta.url));
7
+ // dist layout: dist/cli/commands/version.js → ../../package.json
8
+ const pkgPath = path.join(dir, "..", "..", "..", "package.json");
9
+ let version = "unknown";
10
+ try {
11
+ const raw = await fs.readFile(pkgPath, "utf8");
12
+ version = JSON.parse(raw).version ?? "unknown";
13
+ }
14
+ catch { /* fall back to "unknown" */ }
15
+ process.stdout.write(`bp ${version} (node ${process.version})\n`);
16
+ return 0;
17
+ }
18
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/cli/commands/version.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,iEAAiE;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACjE,IAAI,OAAO,GAAG,SAAS,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC,OAAO,IAAI,SAAS,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,OAAO,WAAW,OAAO,CAAC,OAAO,KAAK,CAAC,CAAC;IACnE,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function printHint(): void;
2
+ export declare function printFullHelp(): void;
3
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAOA,wBAAgB,SAAS,IAAI,IAAI,CAahC;AAwFD,wBAAgB,aAAa,IAAI,IAAI,CAcpC"}
@@ -0,0 +1,122 @@
1
+ // Help text. Hand-written so the wording stays tight. Two surfaces:
2
+ // the hint card (no args) and full help (`bp help`). Color helpers are
3
+ // called at print time, not at module load, so `--no-color` (which
4
+ // flips the global flag during run()) is honored.
5
+ import { bold, dim, cyan } from "./colors.js";
6
+ export function printHint() {
7
+ const lines = [
8
+ bold("bp") + dim(" — Backpack CLI"),
9
+ "",
10
+ ` ${cyan("bp ls")} list graphs in the current backpack`,
11
+ ` ${cyan("bp cat")} <name> print a graph as JSON (pipe to jq)`,
12
+ ` ${cyan("bp show")} <name> human-friendly summary`,
13
+ ` ${cyan("bp where")} show current scope`,
14
+ ` ${cyan("bp doctor")} check auth + connectivity`,
15
+ "",
16
+ dim(` try \`bp help\` for everything`),
17
+ ];
18
+ process.stdout.write(lines.join("\n") + "\n");
19
+ }
20
+ const FULL_HELP_SECTIONS = [
21
+ {
22
+ title: "Common",
23
+ commands: [
24
+ ["bp ls [resource]", "list graphs / containers / kbs in the current scope"],
25
+ ["bp cat <name>", "print a graph as JSON (pipe to jq, sed, etc.)"],
26
+ ["bp show <name>", "human-friendly summary + type histogram"],
27
+ ["bp open <name>", "open the graph in the local viewer"],
28
+ ["bp search <query>", "full-text search across graph properties"],
29
+ ["bp rm <name>", "shortcut for `bp graphs delete`"],
30
+ ["bp mv <old> <new>", "shortcut for `bp graphs rename`"],
31
+ ],
32
+ },
33
+ {
34
+ title: "Auth & scope",
35
+ commands: [
36
+ ["bp login", "sign in to backpack-app via the browser"],
37
+ ["bp logout", "sign out everywhere"],
38
+ ["bp whoami", "show signed-in identity"],
39
+ ["bp where", "show current scope (backpack / container / identity)"],
40
+ ["bp use <name>", "switch context (local backpack or cloud container)"],
41
+ ["bp use", "list available contexts"],
42
+ ],
43
+ },
44
+ {
45
+ title: "Graphs",
46
+ commands: [
47
+ ["bp graphs list", "list graphs in the current scope"],
48
+ ["bp graphs get <name>", "print as JSON (pipeable)"],
49
+ ["bp graphs describe <name>", "human summary"],
50
+ ["bp graphs create <name> [--description=…]", "new empty graph"],
51
+ ["bp graphs create <name> --from-file <f>", "create from a JSON file"],
52
+ ["bp graphs apply -f <file>", "upsert from a JSON file"],
53
+ ["bp graphs edit <name>", "open in $EDITOR, save back atomically"],
54
+ ["bp graphs rename <old> <new>", "rename in place"],
55
+ ["bp graphs delete <name>", "delete with confirm (or -y)"],
56
+ ["bp graphs move <name> --to <container>", "relocate between cloud containers"],
57
+ ],
58
+ },
59
+ {
60
+ title: "KB documents",
61
+ commands: [
62
+ ["bp kbs list", "list KB docs in the current scope"],
63
+ ["bp kbs get <id>", "print body (pipeable)"],
64
+ ["bp kbs create -f <file.md>", "create from a markdown file"],
65
+ ["bp kbs create --title=… --content=…", "create from flags"],
66
+ ["bp kbs edit <id>", "edit body in $EDITOR"],
67
+ ["bp kbs delete <id>", "delete with confirm"],
68
+ ["bp kbs move <id> --to <container>", "relocate between cloud containers"],
69
+ ],
70
+ },
71
+ {
72
+ title: "Cloud containers",
73
+ commands: [
74
+ ["bp containers list", "list your cloud sync_backpacks"],
75
+ ["bp containers create <name> [--color=#xxx] [--tags=a,b]", "new cloud container"],
76
+ ["bp containers rename <old> <new>", "rename / recolor / retag"],
77
+ ["bp containers delete <name>", "delete (refuses if non-empty)"],
78
+ ],
79
+ },
80
+ {
81
+ title: "Project setup",
82
+ commands: [
83
+ ["bp init [path]", "initialize a new local backpack root in CWD (or path)"],
84
+ ["bp completion <shell>", "print shell-completion script (bash | zsh | fish)"],
85
+ ],
86
+ },
87
+ {
88
+ title: "Diagnostics",
89
+ commands: [
90
+ ["bp doctor", "auth, connectivity, version skew checks"],
91
+ ["bp version", "print version"],
92
+ ],
93
+ },
94
+ ];
95
+ const GLOBAL_FLAGS = [
96
+ ["--json", "machine-readable JSON (the stable contract)"],
97
+ ["--yaml", "machine-readable YAML"],
98
+ ["--names", "names only, one per line"],
99
+ ["--wide", "show extra columns"],
100
+ ["--no-color", "disable ANSI colors"],
101
+ ["-y, --yes", "skip confirmation on destructive ops"],
102
+ ["-h, --help", "help for any command"],
103
+ ];
104
+ export function printFullHelp() {
105
+ const lines = [bold("bp") + dim(" — the Backpack CLI"), ""];
106
+ for (const section of FULL_HELP_SECTIONS) {
107
+ lines.push(bold(section.title));
108
+ for (const [cmd, desc] of section.commands) {
109
+ lines.push(` ${padRight(cmd, 40)} ${dim(desc)}`);
110
+ }
111
+ lines.push("");
112
+ }
113
+ lines.push(bold("Global flags"));
114
+ for (const [f, d] of GLOBAL_FLAGS) {
115
+ lines.push(` ${padRight(f, 40)} ${dim(d)}`);
116
+ }
117
+ process.stdout.write(lines.join("\n") + "\n");
118
+ }
119
+ function padRight(s, width) {
120
+ return s.length >= width ? s : s + " ".repeat(width - s.length);
121
+ }
122
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export type OutputFormat = "human" | "json" | "yaml" | "names" | "wide";
2
+ export interface Column<T> {
3
+ header: string;
4
+ /** Render this row as a string. May include ANSI codes. */
5
+ get: (row: T) => string;
6
+ /** Truncate to at most this many characters (visible). */
7
+ max?: number;
8
+ /** Render dim by default. */
9
+ dim?: boolean;
10
+ /** Show only when --wide is passed. */
11
+ wide?: boolean;
12
+ /** Numeric columns: never truncate (truncating would change the meaning),
13
+ * grow the column to fit instead. */
14
+ numeric?: boolean;
15
+ }
16
+ export interface ListOptions<T> {
17
+ rows: T[];
18
+ cols: Column<T>[];
19
+ /** When --names is set, this picks the name column. Defaults to first column. */
20
+ nameKey?: (row: T) => string;
21
+ /** Used as JSON/YAML root key (e.g. "graphs"). */
22
+ pluralLabel: string;
23
+ /** Empty-state message in human format. */
24
+ empty?: string;
25
+ }
26
+ export interface FormatChoice {
27
+ format: OutputFormat;
28
+ }
29
+ /** Emit a list using the chosen format to stdout. */
30
+ export declare function emitList<T>(opts: ListOptions<T>, choice: FormatChoice): void;
31
+ /** Emit a single record as JSON/YAML, or formatted human text. */
32
+ export declare function emitOne(value: unknown, choice: FormatChoice): void;
33
+ /** Resolve --json/--yaml/--names/--wide flags to a single OutputFormat. */
34
+ export declare function resolveFormat(flags: Record<string, string | boolean>): OutputFormat;
35
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAExE,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IACxB,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;yCACqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAClB,iFAAiF;IACjF,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CA0B5E;AAED,kEAAkE;AAClE,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAsBlE;AAkJD,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,YAAY,CAMnF"}