gina 0.3.13-alpha.2 → 0.3.13

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 (420) hide show
  1. package/.playwright-mcp/console-2026-05-14T02-27-11-347Z.log +64 -0
  2. package/.playwright-mcp/d9-after-connector.png +0 -0
  3. package/.playwright-mcp/d9-after-service.png +0 -0
  4. package/.playwright-mcp/d9-before-connector-full.png +0 -0
  5. package/.playwright-mcp/d9-before-connector-leak.png +0 -0
  6. package/.playwright-mcp/d9-before-connector-top.png +0 -0
  7. package/.playwright-mcp/d9-before-connector-v2.png +0 -0
  8. package/.playwright-mcp/d9-before-connector.png +0 -0
  9. package/.playwright-mcp/page-2026-05-14T02-24-51-996Z.yml +1818 -0
  10. package/.playwright-mcp/page-2026-05-14T02-26-47-905Z.yml +2063 -0
  11. package/.playwright-mcp/page-2026-05-14T02-27-11-472Z.yml +406 -0
  12. package/.playwright-mcp/page-2026-05-14T02-28-37-939Z.yml +2061 -0
  13. package/.playwright-mcp/page-2026-05-14T02-29-01-333Z.yml +404 -0
  14. package/CHANGELOG.md +29 -0
  15. package/README.md +11 -1
  16. package/ROADMAP.md +16 -6
  17. package/framework/v0.3.13/VERSION +1 -0
  18. package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/js/gina.js +21 -6
  19. package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +47 -46
  20. package/framework/v0.3.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  21. package/framework/v0.3.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  22. package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/config.js +13 -0
  23. package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/csrf/src/main.js +32 -9
  24. package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/validator/src/form-validator.js +11 -1
  25. package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/validator/src/main.js +4 -2
  26. package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/server.isaac.js +56 -11
  27. package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/settings.server.json +3 -1
  28. package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/index.js +14 -4
  29. package/framework/v0.3.13/core/template/boilerplate/bundle_public/manifest.webmanifest +17 -0
  30. package/framework/v0.3.13/core/template/boilerplate/bundle_public/readme.md +20 -0
  31. package/framework/v0.3.13/core/template/boilerplate/bundle_public/sw.js +122 -0
  32. package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_templates/html/layouts/main.html +14 -0
  33. package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/settings.json +11 -4
  34. package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/json/src/main.js +38 -22
  35. package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/mcp-start.js +18 -2
  36. package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/index.js +5 -0
  37. package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/file/index.js +1 -4
  38. package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/mq/index.js +1 -4
  39. package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/main.js +1 -4
  40. package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/merge/src/main.js +2 -1
  41. package/framework/v0.3.13/lib/secrets/package.json +17 -0
  42. package/framework/v0.3.13/lib/secrets/src/backends/env.js +60 -0
  43. package/framework/v0.3.13/lib/secrets/src/main.js +200 -0
  44. package/framework/{v0.3.13-alpha.2 → v0.3.13}/package.json +2 -2
  45. package/gna.js +4 -4
  46. package/llms.txt +17 -1
  47. package/package.json +3 -3
  48. package/framework/v0.3.13-alpha.2/VERSION +0 -1
  49. package/framework/v0.3.13-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  50. package/framework/v0.3.13-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  51. package/framework/v0.3.13-alpha.2/core/plugins/lib/file/package.json +0 -25
  52. package/framework/v0.3.13-alpha.2/core/plugins/lib/intl/package.json +0 -25
  53. package/framework/v0.3.13-alpha.2/core/plugins/lib/intl/src/main.js +0 -35
  54. package/framework/v0.3.13-alpha.2/core/template/boilerplate/bundle_public/readme.md +0 -1
  55. package/framework/v0.3.13-alpha.2/lib/collection/build.json +0 -0
  56. package/framework/v0.3.13-alpha.2/lib/routing/build.json +0 -0
  57. package/framework/v0.3.13-alpha.2/lib/swig-filters/README.md +0 -0
  58. package/framework/v0.3.13-alpha.2/lib/url/README.md +0 -0
  59. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/AUTHORS +0 -0
  60. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/LICENSE +0 -0
  61. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/html/nolayout.html +0 -0
  62. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/html/static.html +0 -0
  63. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/android-chrome-192x192.png +0 -0
  64. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/android-chrome-512x512.png +0 -0
  65. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/apple-touch-icon.png +0 -0
  66. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/favicon-16x16.png +0 -0
  67. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/favicon-32x32.png +0 -0
  68. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/favicon.ico +0 -0
  69. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/README.md +0 -0
  70. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  71. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  72. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  73. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  74. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  75. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  76. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  77. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  78. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  79. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  80. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  81. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  82. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  83. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  84. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  85. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  86. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  87. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/ai/index.js +0 -0
  88. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/ai/lib/connector.js +0 -0
  89. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/index.js +0 -0
  90. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/connector.js +0 -0
  91. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  92. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  93. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  94. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/n1ql.js +0 -0
  95. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/session-store.js +0 -0
  96. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  97. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  98. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  99. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mongodb/index.js +0 -0
  100. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mongodb/lib/connector.js +0 -0
  101. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  102. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mongodb/lib/session-store.js +0 -0
  103. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mysql/index.js +0 -0
  104. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mysql/lib/connector.js +0 -0
  105. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/postgresql/index.js +0 -0
  106. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/postgresql/lib/connector.js +0 -0
  107. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/redis/index.js +0 -0
  108. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/redis/lib/session-store.js +0 -0
  109. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/scylladb/index.js +0 -0
  110. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/scylladb/lib/connector.js +0 -0
  111. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/scylladb/lib/session-store.js +0 -0
  112. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/sql-parser.js +0 -0
  113. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/sqlite/index.js +0 -0
  114. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/sqlite/lib/connector.js +0 -0
  115. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/sqlite/lib/session-store.js +0 -0
  116. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/content.encoding +0 -0
  117. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.framework.js +0 -0
  118. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.js +0 -0
  119. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.render-json.js +0 -0
  120. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.render-nunjucks.js +0 -0
  121. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.render-stream.js +0 -0
  122. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.render-swig.js +0 -0
  123. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.render-v1.js +0 -0
  124. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/index.js +0 -0
  125. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/LICENSE +0 -0
  126. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/README.md +0 -0
  127. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  128. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  129. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  130. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  131. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/package.json +0 -0
  132. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  133. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  134. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/streamsearch-1.1.0/package.json +0 -0
  135. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/dev/index.js +0 -0
  136. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/dev/lib/class.js +0 -0
  137. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/dev/lib/factory.js +0 -0
  138. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/dev/lib/tools.js +0 -0
  139. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/gna.js +0 -0
  140. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/README.md +0 -0
  141. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/currency.json +0 -0
  142. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/dist/language/en.json +0 -0
  143. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/dist/language/fr.json +0 -0
  144. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/dist/region/en.json +0 -0
  145. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/dist/region/fr.json +0 -0
  146. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/index.js +0 -0
  147. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/mime.types +0 -0
  148. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/model/entity.js +0 -0
  149. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/model/index.js +0 -0
  150. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/model/template/entityFactory.js +0 -0
  151. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/model/template/index.js +0 -0
  152. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/README.md +0 -0
  153. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/index.js +0 -0
  154. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/csrf/README.md +0 -0
  155. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/csrf/package.json +0 -0
  156. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/session/README.md +0 -0
  157. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/session/package.json +0 -0
  158. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/session/src/main.js +0 -0
  159. /package/framework/{v0.3.13-alpha.2/core/plugins/lib/file → v0.3.13/core/plugins/lib/storage}/README.md +0 -0
  160. /package/framework/{v0.3.13-alpha.2/core/plugins/lib/file → v0.3.13/core/plugins/lib/storage}/build.json +0 -0
  161. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/storage/package.json +0 -0
  162. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/storage/src/main.js +0 -0
  163. /package/framework/{v0.3.13-alpha.2/core/plugins/lib/intl → v0.3.13/core/plugins/lib/validator}/README.md +0 -0
  164. /package/framework/{v0.3.13-alpha.2/core/plugins/lib/intl → v0.3.13/core/plugins/lib/validator}/build.json +0 -0
  165. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/validator/package.json +0 -0
  166. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/router.js +0 -0
  167. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/server.express.js +0 -0
  168. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/server.js +0 -0
  169. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/status.codes +0 -0
  170. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/_gitignore +0 -0
  171. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/app.json +0 -0
  172. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  173. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/routing.json +0 -0
  174. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/settings.json +0 -0
  175. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/templates.json +0 -0
  176. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  177. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  178. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  179. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  180. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/locales/en.json +0 -0
  181. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  182. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  183. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  184. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  185. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  186. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  187. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  188. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  189. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  190. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  191. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/command/gina.bat.tpl +0 -0
  192. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/command/gina.tpl +0 -0
  193. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/env.json +0 -0
  194. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/manifest.json +0 -0
  195. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/package.json +0 -0
  196. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/statics.json +0 -0
  197. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/templates.json +0 -0
  198. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/client/json/401.json +0 -0
  199. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/client/json/403.json +0 -0
  200. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/client/json/404.json +0 -0
  201. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/server/html/50x.html +0 -0
  202. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/server/json/500.json +0 -0
  203. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/server/json/503.json +0 -0
  204. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/extensions/logger/config.json +0 -0
  205. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/console.js +0 -0
  206. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/context.js +0 -0
  207. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/data/LICENSE +0 -0
  208. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/data/README.md +0 -0
  209. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/data/package.json +0 -0
  210. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/data/src/main.js +0 -0
  211. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/dateFormat.js +0 -0
  212. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/index.js +0 -0
  213. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/json/LICENSE +0 -0
  214. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/json/README.md +0 -0
  215. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/json/package.json +0 -0
  216. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/path.js +0 -0
  217. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/plugins/README.md +0 -0
  218. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/plugins/package.json +0 -0
  219. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/plugins/src/api-error.js +0 -0
  220. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/plugins/src/main.js +0 -0
  221. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/prototypes.js +0 -0
  222. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/task.js +0 -0
  223. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/text.js +0 -0
  224. /package/framework/{v0.3.13-alpha.2/core/plugins/lib/storage → v0.3.13/lib/archiver}/README.md +0 -0
  225. /package/framework/{v0.3.13-alpha.2/core/plugins/lib/storage → v0.3.13/lib/archiver}/build.json +0 -0
  226. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/archiver/package.json +0 -0
  227. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/archiver/src/dep/jszip.min.js +0 -0
  228. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/archiver/src/main.js +0 -0
  229. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/async/package.json +0 -0
  230. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/async/src/main.js +0 -0
  231. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cache/README.md +0 -0
  232. /package/framework/{v0.3.13-alpha.2/core/plugins/lib/validator → v0.3.13/lib/cache}/build.json +0 -0
  233. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cache/package.json +0 -0
  234. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cache/src/main.js +0 -0
  235. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/aliases.json +0 -0
  236. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/add.js +0 -0
  237. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/arguments.json +0 -0
  238. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/build.js +0 -0
  239. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/copy.js +0 -0
  240. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/cp.js +0 -0
  241. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/help.js +0 -0
  242. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/help.txt +0 -0
  243. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/list.js +0 -0
  244. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/mcp.js +0 -0
  245. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/oas.js +0 -0
  246. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/openapi.js +0 -0
  247. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/remove.js +0 -0
  248. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/rename.js +0 -0
  249. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/restart.js +0 -0
  250. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/rm.js +0 -0
  251. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/start.js +0 -0
  252. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/status.js +0 -0
  253. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/stop.js +0 -0
  254. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/cache/stats.js +0 -0
  255. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/add.js +0 -0
  256. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/arguments.json +0 -0
  257. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/help.js +0 -0
  258. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/help.txt +0 -0
  259. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/list.js +0 -0
  260. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/migrate.js +0 -0
  261. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/remove.js +0 -0
  262. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/rm.js +0 -0
  263. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/add.js +0 -0
  264. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/get.js +0 -0
  265. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/help.js +0 -0
  266. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/help.txt +0 -0
  267. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/link-dev.js +0 -0
  268. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/list.js +0 -0
  269. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/remove.js +0 -0
  270. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/rm.js +0 -0
  271. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/set.js +0 -0
  272. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/unset.js +0 -0
  273. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/use.js +0 -0
  274. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/arguments.json +0 -0
  275. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/build.js +0 -0
  276. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/dot.js +0 -0
  277. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/get.js +0 -0
  278. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/help.js +0 -0
  279. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/help.txt +0 -0
  280. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/init.js +0 -0
  281. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/link-node-modules.js +0 -0
  282. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/link.js +0 -0
  283. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/msg.json +0 -0
  284. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/open.js +0 -0
  285. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/restart.js +0 -0
  286. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/set.js +0 -0
  287. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/start.js +0 -0
  288. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/status.js +0 -0
  289. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/stop.js +0 -0
  290. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/tail.js +0 -0
  291. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/update.js +0 -0
  292. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/version.js +0 -0
  293. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/gina-dev.1.md +0 -0
  294. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/gina-framework.1.md +0 -0
  295. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/gina.1.md +0 -0
  296. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/helper.js +0 -0
  297. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/add.js +0 -0
  298. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/arguments.json +0 -0
  299. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/export.js +0 -0
  300. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/help.js +0 -0
  301. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/help.txt +0 -0
  302. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/import.js +0 -0
  303. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/scan.js +0 -0
  304. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/index.js +0 -0
  305. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/inspector/help.js +0 -0
  306. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/inspector/help.txt +0 -0
  307. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/inspector/open.js +0 -0
  308. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/minion/help.js +0 -0
  309. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/minion/help.txt +0 -0
  310. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/msg.json +0 -0
  311. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/help.js +0 -0
  312. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/help.txt +0 -0
  313. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/inc/scan.js +0 -0
  314. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/list.js +0 -0
  315. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/reset.js +0 -0
  316. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/set.js +0 -0
  317. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/add.js +0 -0
  318. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/arguments.json +0 -0
  319. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/build.js +0 -0
  320. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/help.js +0 -0
  321. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/help.txt +0 -0
  322. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/import.js +0 -0
  323. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/list.js +0 -0
  324. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/move.js +0 -0
  325. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/remove.js +0 -0
  326. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/rename.js +0 -0
  327. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/restart.js +0 -0
  328. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/rm.js +0 -0
  329. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/start.js +0 -0
  330. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/status.js +0 -0
  331. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/stop.js +0 -0
  332. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/protocol/help.js +0 -0
  333. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/protocol/help.txt +0 -0
  334. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/protocol/list.js +0 -0
  335. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/protocol/set.js +0 -0
  336. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/add.js +0 -0
  337. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/help.js +0 -0
  338. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/help.txt +0 -0
  339. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/link-local.js +0 -0
  340. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/link-production.js +0 -0
  341. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/list.js +0 -0
  342. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/remove.js +0 -0
  343. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/rm.js +0 -0
  344. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/use.js +0 -0
  345. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/service/help.js +0 -0
  346. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/service/help.txt +0 -0
  347. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/service/list.js +0 -0
  348. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/view/add.js +0 -0
  349. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/collection/README.md +0 -0
  350. /package/framework/{v0.3.13-alpha.2/lib/archiver → v0.3.13/lib/collection}/build.json +0 -0
  351. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/collection/package.json +0 -0
  352. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/collection/src/main.js +0 -0
  353. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/config.js +0 -0
  354. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/connector-registry/package.json +0 -0
  355. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/connector-registry/src/main.js +0 -0
  356. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cron/README.md +0 -0
  357. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cron/package.json +0 -0
  358. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cron/src/main.js +0 -0
  359. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/domain/LICENSE +0 -0
  360. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/domain/README.md +0 -0
  361. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/domain/package.json +0 -0
  362. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/domain/src/main.js +0 -0
  363. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/generator/index.js +0 -0
  364. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/i18n/package.json +0 -0
  365. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/i18n/src/main.js +0 -0
  366. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inherits/LICENSE +0 -0
  367. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inherits/README.md +0 -0
  368. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inherits/package.json +0 -0
  369. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inherits/src/main.js +0 -0
  370. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inspector-redact/package.json +0 -0
  371. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inspector-redact/src/main.js +0 -0
  372. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/README.md +0 -0
  373. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/package.json +0 -0
  374. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/default/index.js +0 -0
  375. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  376. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  377. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/mq/listener.js +0 -0
  378. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/mq/speaker.js +0 -0
  379. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/helper.js +0 -0
  380. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/math/index.js +0 -0
  381. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-dispatch/package.json +0 -0
  382. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-dispatch/src/main.js +0 -0
  383. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-http/package.json +0 -0
  384. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-http/src/main.js +0 -0
  385. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-server/package.json +0 -0
  386. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-server/src/main.js +0 -0
  387. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/merge/README.md +0 -0
  388. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/merge/package.json +0 -0
  389. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/metrics/package.json +0 -0
  390. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/metrics/src/main.js +0 -0
  391. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/model.js +0 -0
  392. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/nunjucks-filters/README.md +0 -0
  393. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/nunjucks-filters/package.json +0 -0
  394. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/nunjucks-filters/src/main.js +0 -0
  395. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/nunjucks-resolver/package.json +0 -0
  396. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/nunjucks-resolver/src/main.js +0 -0
  397. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/proc.js +0 -0
  398. /package/framework/{v0.3.13-alpha.2/core/plugins/lib/validator → v0.3.13/lib/routing}/README.md +0 -0
  399. /package/framework/{v0.3.13-alpha.2/lib/cache → v0.3.13/lib/routing}/build.json +0 -0
  400. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/routing/package.json +0 -0
  401. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/routing/src/main.js +0 -0
  402. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/routing/src/radix.js +0 -0
  403. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/routing-introspect/package.json +0 -0
  404. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/routing-introspect/src/main.js +0 -0
  405. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/session-store.js +0 -0
  406. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/shell.js +0 -0
  407. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/state.js +0 -0
  408. /package/framework/{v0.3.13-alpha.2/lib/archiver → v0.3.13/lib/swig-filters}/README.md +0 -0
  409. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/swig-filters/package.json +0 -0
  410. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/swig-filters/src/main.js +0 -0
  411. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/swig-resolver/package.json +0 -0
  412. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/swig-resolver/src/main.js +0 -0
  413. /package/framework/{v0.3.13-alpha.2/lib/routing → v0.3.13/lib/url}/README.md +0 -0
  414. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/url/index.js +0 -0
  415. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/url/routing.json +0 -0
  416. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/uuid/package.json +0 -0
  417. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/uuid/src/main.js +0 -0
  418. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/validator.js +0 -0
  419. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/watcher/package.json +0 -0
  420. /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/watcher/src/main.js +0 -0
@@ -0,0 +1,1818 @@
1
+ - generic [ref=e2]:
2
+ - region "Skip to main content":
3
+ - link "Skip to main content" [ref=e3] [cursor=pointer]:
4
+ - /url: "#__docusaurus_skipToContent_fallback"
5
+ - navigation "Main" [ref=e4]:
6
+ - generic [ref=e5]:
7
+ - generic [ref=e6]:
8
+ - button "Toggle navigation bar" [ref=e7] [cursor=pointer]:
9
+ - img [ref=e8]
10
+ - link "Gina logo Gina" [ref=e10] [cursor=pointer]:
11
+ - /url: /docs/
12
+ - img "Gina logo" [ref=e12]
13
+ - generic [ref=e13]: Gina
14
+ - textbox "Search" [ref=e16]
15
+ - main [ref=e20]:
16
+ - generic [ref=e24]:
17
+ - article [ref=e25]:
18
+ - navigation "Breadcrumbs" [ref=e26]:
19
+ - list [ref=e27]:
20
+ - listitem [ref=e28]:
21
+ - link "Home page" [ref=e29] [cursor=pointer]:
22
+ - /url: /docs/
23
+ - img [ref=e30]
24
+ - listitem [ref=e32]:
25
+ - link "CLI Reference" [ref=e33] [cursor=pointer]:
26
+ - /url: /docs/cli
27
+ - listitem [ref=e34]:
28
+ - generic [ref=e35]: connector
29
+ - button "On this page" [ref=e37] [cursor=pointer]
30
+ - generic [ref=e38]:
31
+ - heading "connector" [level=1] [ref=e40]
32
+ - generic [ref=e41]:
33
+ - generic [ref=e42]:
34
+ - generic [ref=e43]:
35
+ - img [ref=e44]
36
+ - text: 14 min read
37
+ - generic [ref=e47]: Intermediate
38
+ - generic [ref=e48]:
39
+ - generic [ref=e49]: Prerequisites
40
+ - list [ref=e50]:
41
+ - listitem [ref=e51]:
42
+ - link "Gina installed globally" [ref=e52] [cursor=pointer]:
43
+ - /url: /docs/getting-started/installation
44
+ - listitem [ref=e53]:
45
+ - link "connectors.json reference" [ref=e54] [cursor=pointer]:
46
+ - /url: /docs/reference/connectors
47
+ - listitem [ref=e55]:
48
+ - link "Projects and bundles" [ref=e56] [cursor=pointer]:
49
+ - /url: /docs/concepts/projects-and-bundles
50
+ - paragraph [ref=e57]: import DocMeta from '@site/src/components/DocMeta';
51
+ - generic [ref=e58]:
52
+ - paragraph [ref=e59]:
53
+ - text: The
54
+ - code [ref=e60]: connector
55
+ - text: command group inspects and maintains
56
+ - code [ref=e61]: connectors.json
57
+ - text: across a project's
58
+ - code [ref=e62]: shared/config/
59
+ - text: and each bundle's
60
+ - code [ref=e63]: config/
61
+ - text: directory. It reports the effective overlay that every bundle sees at runtime, adds or removes entries, and lints / auto-fixes common schema drift. Every subcommand is
62
+ - strong [ref=e64]: offline
63
+ - text: — no framework socket or network call.
64
+ - list [ref=e65]:
65
+ - listitem [ref=e66]:
66
+ - strong [ref=e67]:
67
+ - code [ref=e68]: connector:list
68
+ - text: — read-only inventory of every declared connector, with driver install status and version-pin warnings.
69
+ - listitem [ref=e69]:
70
+ - strong [ref=e70]:
71
+ - code [ref=e71]: connector:add
72
+ - text: — write a connector entry to shared or bundle scope, with driver install hint.
73
+ - listitem [ref=e72]:
74
+ - strong [ref=e73]:
75
+ - code [ref=e74]: connector:rm
76
+ - text: (alias
77
+ - code [ref=e75]: connector:remove
78
+ - text: ) — remove a connector entry; prints retention hints, never touches
79
+ - code [ref=e76]: node_modules/
80
+ - text: .
81
+ - listitem [ref=e77]:
82
+ - strong [ref=e78]:
83
+ - code [ref=e79]: connector:migrate
84
+ - text: — lint every
85
+ - code [ref=e80]: connectors.json
86
+ - text: for schema drift, optionally fix in place with
87
+ - code [ref=e81]: "--fix"
88
+ - text: .
89
+ - separator [ref=e82]
90
+ - heading "connector:listDirect link to connectorlist" [level=2] [ref=e83]:
91
+ - code [ref=e84]: connector:list
92
+ - link "Direct link to connectorlist" [ref=e85] [cursor=pointer]:
93
+ - /url: "#connectorlist"
94
+ - text: "#"
95
+ - paragraph [ref=e86]:
96
+ - emphasis [ref=e87]: New in 0.3.7-alpha.2
97
+ - paragraph [ref=e88]: List connectors for every registered project, a single project, or the merged view a single bundle sees at runtime.
98
+ - code [ref=e92]:
99
+ - generic [ref=e93]: "gina connector:list # Every registered project"
100
+ - generic [ref=e94]: "gina connector:list @<project> # One project (shared + all bundles)"
101
+ - generic [ref=e95]: "gina connector:list <bundle> @<project> # Merged shared+bundle view for <bundle>"
102
+ - paragraph [ref=e96]:
103
+ - strong [ref=e97]: Flags
104
+ - table [ref=e98]:
105
+ - rowgroup [ref=e99]:
106
+ - row "Flag Description" [ref=e100]:
107
+ - columnheader "Flag" [ref=e101]
108
+ - columnheader "Description" [ref=e102]
109
+ - rowgroup [ref=e103]:
110
+ - row "--format=json Emit a JSON payload instead of the human-readable text table" [ref=e104]:
111
+ - cell "--format=json" [ref=e105]:
112
+ - code [ref=e106]: "--format=json"
113
+ - cell "Emit a JSON payload instead of the human-readable text table" [ref=e107]
114
+ - heading "OutputDirect link to Output" [level=3] [ref=e108]:
115
+ - text: Output
116
+ - link "Direct link to Output" [ref=e109] [cursor=pointer]:
117
+ - /url: "#output"
118
+ - text: "#"
119
+ - code [ref=e113]:
120
+ - generic [ref=e114]: "------------------------------------"
121
+ - generic [ref=e115]: myproject
122
+ - generic [ref=e116]: "------------------------------------"
123
+ - generic [ref=e117]: "[ ok ] session couchbase [shared] (couchbase@>=3.0.0 4.1.3 installed)"
124
+ - generic [ref=e118]: "[ ok ] profile couchbase [api] (couchbase@>=3.0.0 4.1.3 installed)"
125
+ - generic [ref=e119]: "[ ok ] session couchbase [api override] (couchbase@>=3.0.0 4.1.3 installed)"
126
+ - generic [ref=e120]: "[ ?! ] mongodb mongodb [admin] (mongodb@>=5.0.0 — run `npm install mongodb`)"
127
+ - generic [ref=e121]: "[ ok ] local sqlite [worker] (Node.js >= 22.5.0 built-in (node:sqlite))"
128
+ - paragraph [ref=e122]:
129
+ - strong [ref=e123]: Row columns
130
+ - table [ref=e124]:
131
+ - rowgroup [ref=e125]:
132
+ - row "Column Meaning" [ref=e126]:
133
+ - columnheader "Column" [ref=e127]
134
+ - columnheader "Meaning" [ref=e128]
135
+ - rowgroup [ref=e129]:
136
+ - row "[ ok ] / [ ?! ] / [ ?? ] Install status (see below)" [ref=e130]:
137
+ - cell "[ ok ] / [ ?! ] / [ ?? ]" [ref=e131]:
138
+ - strong [ref=e132]:
139
+ - code [ref=e133]: "[ ok ]"
140
+ - text: /
141
+ - code [ref=e134]: "[ ?! ]"
142
+ - text: /
143
+ - code [ref=e135]: "[ ?? ]"
144
+ - cell "Install status (see below)" [ref=e136]
145
+ - row "name Logical connector key (JSON object key in connectors.json)" [ref=e137]:
146
+ - cell "name" [ref=e138]:
147
+ - strong [ref=e139]: name
148
+ - cell "Logical connector key (JSON object key in connectors.json)" [ref=e140]:
149
+ - text: Logical connector key (JSON object key in
150
+ - code [ref=e141]: connectors.json
151
+ - text: )
152
+ - row "connector Driver type resolved from entry.connector (falls back to the logical key)" [ref=e142]:
153
+ - cell "connector" [ref=e143]:
154
+ - strong [ref=e144]: connector
155
+ - cell "Driver type resolved from entry.connector (falls back to the logical key)" [ref=e145]:
156
+ - text: Driver type resolved from
157
+ - code [ref=e146]: entry.connector
158
+ - text: (falls back to the logical key)
159
+ - 'row "source label Where the entry comes from: [shared], [<bundle>], or [<bundle> override]" [ref=e147]':
160
+ - cell "source label" [ref=e148]:
161
+ - strong [ref=e149]: source label
162
+ - 'cell "Where the entry comes from: [shared], [<bundle>], or [<bundle> override]" [ref=e150]':
163
+ - text: "Where the entry comes from:"
164
+ - code [ref=e151]: "[shared]"
165
+ - text: ","
166
+ - code [ref=e152]: "[<bundle>]"
167
+ - text: ", or"
168
+ - code [ref=e153]: "[<bundle> override]"
169
+ - row "driver info Resolved npm package, peerDependencies range, pinned version (if any), install state" [ref=e154]:
170
+ - cell "driver info" [ref=e155]:
171
+ - strong [ref=e156]: driver info
172
+ - cell "Resolved npm package, peerDependencies range, pinned version (if any), install state" [ref=e157]:
173
+ - text: Resolved npm package,
174
+ - code [ref=e158]: peerDependencies
175
+ - text: range, pinned version (if any), install state
176
+ - paragraph [ref=e159]:
177
+ - strong [ref=e160]: Status flags
178
+ - table [ref=e161]:
179
+ - rowgroup [ref=e162]:
180
+ - row "Flag Meaning" [ref=e163]:
181
+ - columnheader "Flag" [ref=e164]
182
+ - columnheader "Meaning" [ref=e165]
183
+ - rowgroup [ref=e166]:
184
+ - row "[ ok ] Driver installed at <project>/node_modules/<driver>, or built-in (node:sqlite)" [ref=e167]:
185
+ - cell "[ ok ]" [ref=e168]:
186
+ - code [ref=e169]: "[ ok ]"
187
+ - cell "Driver installed at <project>/node_modules/<driver>, or built-in (node:sqlite)" [ref=e170]:
188
+ - text: Driver installed at
189
+ - code [ref=e171]: <project>/node_modules/<driver>
190
+ - text: ", or built-in ("
191
+ - code [ref=e172]: node:sqlite
192
+ - text: )
193
+ - row "[ ?! ] Driver declared but not found — npm install <driver> suggested inline" [ref=e173]:
194
+ - cell "[ ?! ]" [ref=e174]:
195
+ - code [ref=e175]: "[ ?! ]"
196
+ - cell "Driver declared but not found — npm install <driver> suggested inline" [ref=e176]:
197
+ - text: Driver declared but not found —
198
+ - code [ref=e177]: npm install <driver>
199
+ - text: suggested inline
200
+ - row "[ ?? ] Unknown connector type, or ai connector with missing/unrecognised protocol" [ref=e178]:
201
+ - cell "[ ?? ]" [ref=e179]:
202
+ - code [ref=e180]: "[ ?? ]"
203
+ - cell "Unknown connector type, or ai connector with missing/unrecognised protocol" [ref=e181]:
204
+ - text: Unknown connector type, or
205
+ - code [ref=e182]: ai
206
+ - text: connector with missing/unrecognised
207
+ - code [ref=e183]: protocol
208
+ - row "[ !! ] Version-pin disagreement — emitted as a trailing warning line when two bundles pin the same driver at different versions (the first npm install wins)" [ref=e184]:
209
+ - cell "[ !! ]" [ref=e185]:
210
+ - code [ref=e186]: "[ !! ]"
211
+ - cell "Version-pin disagreement — emitted as a trailing warning line when two bundles pin the same driver at different versions (the first npm install wins)" [ref=e187]:
212
+ - text: Version-pin disagreement — emitted as a trailing warning line when two bundles pin the same driver at different versions (the first
213
+ - code [ref=e188]: npm install
214
+ - text: wins)
215
+ - paragraph [ref=e189]:
216
+ - strong [ref=e190]: Source labels
217
+ - table [ref=e191]:
218
+ - rowgroup [ref=e192]:
219
+ - row "Label Meaning" [ref=e193]:
220
+ - columnheader "Label" [ref=e194]
221
+ - columnheader "Meaning" [ref=e195]
222
+ - rowgroup [ref=e196]:
223
+ - row "[shared] Declared only in shared/config/connectors.json" [ref=e197]:
224
+ - cell "[shared]" [ref=e198]:
225
+ - code [ref=e199]: "[shared]"
226
+ - cell "Declared only in shared/config/connectors.json" [ref=e200]:
227
+ - text: Declared only in
228
+ - code [ref=e201]: shared/config/connectors.json
229
+ - row "[<bundle>] Declared only in the bundle's config/connectors.json" [ref=e202]:
230
+ - cell "[<bundle>]" [ref=e203]:
231
+ - code [ref=e204]: "[<bundle>]"
232
+ - cell "Declared only in the bundle's config/connectors.json" [ref=e205]:
233
+ - text: Declared only in the bundle's
234
+ - code [ref=e206]: config/connectors.json
235
+ - row "[<bundle> override] Declared in shared and overridden by the bundle — the merged entry (bundle wins on conflicting keys) is shown" [ref=e207]:
236
+ - cell "[<bundle> override]" [ref=e208]:
237
+ - code [ref=e209]: "[<bundle> override]"
238
+ - cell "Declared in shared and overridden by the bundle — the merged entry (bundle wins on conflicting keys) is shown" [ref=e210]:
239
+ - text: Declared in
240
+ - code [ref=e211]: shared
241
+ - strong [ref=e212]: and
242
+ - text: overridden by the bundle — the merged entry (bundle wins on conflicting keys) is shown
243
+ - heading "JSON outputDirect link to JSON output" [level=3] [ref=e213]:
244
+ - text: JSON output
245
+ - link "Direct link to JSON output" [ref=e214] [cursor=pointer]:
246
+ - /url: "#json-output"
247
+ - text: "#"
248
+ - code [ref=e218]:
249
+ - generic [ref=e219]: gina connector:list @<project> --format=json
250
+ - code [ref=e223]:
251
+ - generic [ref=e224]: "{"
252
+ - generic [ref=e225]: "\"project\": \"myproject\","
253
+ - generic [ref=e226]: "\"status\": \"ok\","
254
+ - generic [ref=e227]: "\"connectors\": ["
255
+ - generic [ref=e228]: "{"
256
+ - generic [ref=e229]: "\"project\": \"myproject\","
257
+ - generic [ref=e230]: "\"bundle\": \"api\","
258
+ - generic [ref=e231]: "\"name\": \"session\","
259
+ - generic [ref=e232]: "\"connector\": \"couchbase\","
260
+ - generic [ref=e233]: "\"source\": \"override\","
261
+ - generic [ref=e234]: "\"driver\": \"couchbase\","
262
+ - generic [ref=e235]: "\"builtin\": false,"
263
+ - generic [ref=e236]: "\"range\": \">=3.0.0\","
264
+ - generic [ref=e237]: "\"version\": null,"
265
+ - generic [ref=e238]: "\"installed\": true,"
266
+ - generic [ref=e239]: "\"installedVersion\": \"4.1.3\","
267
+ - generic [ref=e240]: "\"note\": null,"
268
+ - generic [ref=e241]: "\"unresolved\": false"
269
+ - generic [ref=e242]: "}"
270
+ - generic [ref=e243]: "]"
271
+ - generic [ref=e244]: "}"
272
+ - table [ref=e245]:
273
+ - rowgroup [ref=e246]:
274
+ - row "Field Description" [ref=e247]:
275
+ - columnheader "Field" [ref=e248]
276
+ - columnheader "Description" [ref=e249]
277
+ - rowgroup [ref=e250]:
278
+ - row "project / bundle / name Project, owning bundle (null for shared-only rows), logical connector key" [ref=e251]:
279
+ - cell "project / bundle / name" [ref=e252]:
280
+ - code [ref=e253]: project
281
+ - text: /
282
+ - code [ref=e254]: bundle
283
+ - text: /
284
+ - code [ref=e255]: name
285
+ - cell "Project, owning bundle (null for shared-only rows), logical connector key" [ref=e256]
286
+ - row "connector Resolved connector type" [ref=e257]:
287
+ - cell "connector" [ref=e258]:
288
+ - code [ref=e259]: connector
289
+ - cell "Resolved connector type" [ref=e260]
290
+ - row "source \"shared\", \"bundle\", or \"override\"" [ref=e261]:
291
+ - cell "source" [ref=e262]:
292
+ - code [ref=e263]: source
293
+ - cell "\"shared\", \"bundle\", or \"override\"" [ref=e264]:
294
+ - code [ref=e265]: "\"shared\""
295
+ - text: ","
296
+ - code [ref=e266]: "\"bundle\""
297
+ - text: ", or"
298
+ - code [ref=e267]: "\"override\""
299
+ - row "driver npm package name (null for built-in drivers)" [ref=e268]:
300
+ - cell "driver" [ref=e269]:
301
+ - code [ref=e270]: driver
302
+ - cell "npm package name (null for built-in drivers)" [ref=e271]
303
+ - row "builtin true when the driver is Node-builtin (e.g. node:sqlite)" [ref=e272]:
304
+ - cell "builtin" [ref=e273]:
305
+ - code [ref=e274]: builtin
306
+ - cell "true when the driver is Node-builtin (e.g. node:sqlite)" [ref=e275]:
307
+ - code [ref=e276]: "true"
308
+ - text: when the driver is Node-builtin (e.g.
309
+ - code [ref=e277]: node:sqlite
310
+ - text: )
311
+ - row "range peerDependencies range declared by the framework" [ref=e278]:
312
+ - cell "range" [ref=e279]:
313
+ - code [ref=e280]: range
314
+ - cell "peerDependencies range declared by the framework" [ref=e281]:
315
+ - code [ref=e282]: peerDependencies
316
+ - text: range declared by the framework
317
+ - row "version User-set version pin from the connector entry (null if unset)" [ref=e283]:
318
+ - cell "version" [ref=e284]:
319
+ - code [ref=e285]: version
320
+ - cell "User-set version pin from the connector entry (null if unset)" [ref=e286]:
321
+ - text: User-set
322
+ - code [ref=e287]: version
323
+ - text: pin from the connector entry (null if unset)
324
+ - row "installed / installedVersion Install probe result from <project>/node_modules/<driver>/package.json" [ref=e288]:
325
+ - cell "installed / installedVersion" [ref=e289]:
326
+ - code [ref=e290]: installed
327
+ - text: /
328
+ - code [ref=e291]: installedVersion
329
+ - cell "Install probe result from <project>/node_modules/<driver>/package.json" [ref=e292]:
330
+ - text: Install probe result from
331
+ - code [ref=e293]: <project>/node_modules/<driver>/package.json
332
+ - row "note Human-readable hint for unresolved or built-in entries" [ref=e294]:
333
+ - cell "note" [ref=e295]:
334
+ - code [ref=e296]: note
335
+ - cell "Human-readable hint for unresolved or built-in entries" [ref=e297]
336
+ - row "unresolved true when no driver mapping exists for the type" [ref=e298]:
337
+ - cell "unresolved" [ref=e299]:
338
+ - code [ref=e300]: unresolved
339
+ - cell "true when no driver mapping exists for the type" [ref=e301]:
340
+ - code [ref=e302]: "true"
341
+ - text: when no driver mapping exists for the type
342
+ - heading "Driver resolutionDirect link to Driver resolution" [level=3] [ref=e303]:
343
+ - text: Driver resolution
344
+ - link "Direct link to Driver resolution" [ref=e304] [cursor=pointer]:
345
+ - /url: "#driver-resolution"
346
+ - text: "#"
347
+ - paragraph [ref=e305]:
348
+ - text: Drivers are resolved from the framework's
349
+ - code [ref=e306]: peerDependencies
350
+ - text: declared in
351
+ - code [ref=e307]: package.json
352
+ - text: ":"
353
+ - table [ref=e308]:
354
+ - rowgroup [ref=e309]:
355
+ - row "Connector type npm package Range" [ref=e310]:
356
+ - columnheader "Connector type" [ref=e311]
357
+ - columnheader "npm package" [ref=e312]
358
+ - columnheader "Range" [ref=e313]
359
+ - rowgroup [ref=e314]:
360
+ - row "couchbase couchbase >=3.0.0" [ref=e315]:
361
+ - cell "couchbase" [ref=e316]:
362
+ - code [ref=e317]: couchbase
363
+ - cell "couchbase" [ref=e318]:
364
+ - code [ref=e319]: couchbase
365
+ - cell ">=3.0.0" [ref=e320]:
366
+ - code [ref=e321]: ">=3.0.0"
367
+ - row "redis ioredis >=5.0.0" [ref=e322]:
368
+ - cell "redis" [ref=e323]:
369
+ - code [ref=e324]: redis
370
+ - cell "ioredis" [ref=e325]:
371
+ - code [ref=e326]: ioredis
372
+ - cell ">=5.0.0" [ref=e327]:
373
+ - code [ref=e328]: ">=5.0.0"
374
+ - row "mysql mysql2 >=2.0.0" [ref=e329]:
375
+ - cell "mysql" [ref=e330]:
376
+ - code [ref=e331]: mysql
377
+ - cell "mysql2" [ref=e332]:
378
+ - code [ref=e333]: mysql2
379
+ - cell ">=2.0.0" [ref=e334]:
380
+ - code [ref=e335]: ">=2.0.0"
381
+ - row "postgresql pg >=8.0.0" [ref=e336]:
382
+ - cell "postgresql" [ref=e337]:
383
+ - code [ref=e338]: postgresql
384
+ - cell "pg" [ref=e339]:
385
+ - code [ref=e340]: pg
386
+ - cell ">=8.0.0" [ref=e341]:
387
+ - code [ref=e342]: ">=8.0.0"
388
+ - row "mongodb mongodb >=5.0.0" [ref=e343]:
389
+ - cell "mongodb" [ref=e344]:
390
+ - code [ref=e345]: mongodb
391
+ - cell "mongodb" [ref=e346]:
392
+ - code [ref=e347]: mongodb
393
+ - cell ">=5.0.0" [ref=e348]:
394
+ - code [ref=e349]: ">=5.0.0"
395
+ - row "scylladb @scylladb/scylla-driver >=1.0.0" [ref=e350]:
396
+ - cell "scylladb" [ref=e351]:
397
+ - code [ref=e352]: scylladb
398
+ - cell "@scylladb/scylla-driver" [ref=e353]:
399
+ - code [ref=e354]: "@scylladb/scylla-driver"
400
+ - cell ">=1.0.0" [ref=e355]:
401
+ - code [ref=e356]: ">=1.0.0"
402
+ - 'row "sqlite (built-in: node:sqlite) Node ≥ 22.5.0" [ref=e357]':
403
+ - cell "sqlite" [ref=e358]:
404
+ - code [ref=e359]: sqlite
405
+ - 'cell "(built-in: node:sqlite)" [ref=e360]':
406
+ - emphasis [ref=e361]:
407
+ - text: "(built-in:"
408
+ - code [ref=e362]: node:sqlite
409
+ - text: )
410
+ - cell "Node ≥ 22.5.0" [ref=e363]
411
+ - row "ai Resolved from entry.protocol See below" [ref=e364]:
412
+ - cell "ai" [ref=e365]:
413
+ - code [ref=e366]: ai
414
+ - cell "Resolved from entry.protocol" [ref=e367]:
415
+ - text: Resolved from
416
+ - code [ref=e368]: entry.protocol
417
+ - cell "See below" [ref=e369]
418
+ - paragraph [ref=e370]:
419
+ - text: The
420
+ - code [ref=e371]: ai
421
+ - text: connector resolves its driver from
422
+ - code [ref=e372]: entry.protocol
423
+ - text: ":"
424
+ - table [ref=e373]:
425
+ - rowgroup [ref=e374]:
426
+ - row "Scheme npm package" [ref=e375]:
427
+ - columnheader "Scheme" [ref=e376]
428
+ - columnheader "npm package" [ref=e377]
429
+ - rowgroup [ref=e378]:
430
+ - row "anthropic:// @anthropic-ai/sdk (>=0.27.0)" [ref=e379]:
431
+ - cell "anthropic://" [ref=e380]:
432
+ - code [ref=e381]: anthropic://
433
+ - cell "@anthropic-ai/sdk (>=0.27.0)" [ref=e382]:
434
+ - code [ref=e383]: "@anthropic-ai/sdk"
435
+ - text: (
436
+ - code [ref=e384]: ">=0.27.0"
437
+ - text: )
438
+ - row "openai://, deepseek://, qwen://, groq://, mistral://, together://, ollama://, gemini://, xai://, perplexity:// openai (>=4.0.0)" [ref=e385]:
439
+ - cell "openai://, deepseek://, qwen://, groq://, mistral://, together://, ollama://, gemini://, xai://, perplexity://" [ref=e386]:
440
+ - code [ref=e387]: openai://
441
+ - text: ","
442
+ - code [ref=e388]: deepseek://
443
+ - text: ","
444
+ - code [ref=e389]: qwen://
445
+ - text: ","
446
+ - code [ref=e390]: groq://
447
+ - text: ","
448
+ - code [ref=e391]: mistral://
449
+ - text: ","
450
+ - code [ref=e392]: together://
451
+ - text: ","
452
+ - code [ref=e393]: ollama://
453
+ - text: ","
454
+ - code [ref=e394]: gemini://
455
+ - text: ","
456
+ - code [ref=e395]: xai://
457
+ - text: ","
458
+ - code [ref=e396]: perplexity://
459
+ - cell "openai (>=4.0.0)" [ref=e397]:
460
+ - code [ref=e398]: openai
461
+ - text: (
462
+ - code [ref=e399]: ">=4.0.0"
463
+ - text: )
464
+ - heading "Overlay semanticsDirect link to Overlay semantics" [level=3] [ref=e400]:
465
+ - text: Overlay semantics
466
+ - link "Direct link to Overlay semantics" [ref=e401] [cursor=pointer]:
467
+ - /url: "#overlay-semantics"
468
+ - text: "#"
469
+ - paragraph [ref=e402]:
470
+ - text: Shared and bundle-level
471
+ - code [ref=e403]: connectors.json
472
+ - text: files are merged key-level, with the bundle side winning on conflicting keys. This mirrors the runtime behaviour of
473
+ - code [ref=e404]: core/config.js
474
+ - text: ": a bundle that overrides"
475
+ - code [ref=e405]: session
476
+ - text: in its own
477
+ - code [ref=e406]: config/connectors.json
478
+ - text: does
479
+ - strong [ref=e407]: not
480
+ - text: need to restate the full entry — it inherits the shared fields and only overrides the keys it declares.
481
+ - paragraph [ref=e408]: "The text output emits one row per resolved entry:"
482
+ - list [ref=e409]:
483
+ - listitem [ref=e410]:
484
+ - text: A shared entry with no bundle override → one
485
+ - code [ref=e411]: "[shared]"
486
+ - text: row.
487
+ - listitem [ref=e412]:
488
+ - text: A shared entry that is overridden by one or more bundles → one
489
+ - code [ref=e413]: "[<bundle> override]"
490
+ - text: row per overriding bundle;
491
+ - strong [ref=e414]:
492
+ - text: no standalone
493
+ - code [ref=e415]: "[shared]"
494
+ - text: row
495
+ - text: .
496
+ - listitem [ref=e416]:
497
+ - text: A bundle-only entry (not in shared) →
498
+ - code [ref=e417]: "[<bundle>]"
499
+ - text: .
500
+ - heading "Comment toleranceDirect link to Comment tolerance" [level=3] [ref=e418]:
501
+ - text: Comment tolerance
502
+ - link "Direct link to Comment tolerance" [ref=e419] [cursor=pointer]:
503
+ - /url: "#comment-tolerance"
504
+ - text: "#"
505
+ - paragraph [ref=e420]:
506
+ - code [ref=e421]: connectors.json
507
+ - text: ","
508
+ - code [ref=e422]: manifest.json
509
+ - text: ", and the file headers they carry are parsed with tolerance for"
510
+ - code [ref=e423]: //
511
+ - text: line comments and
512
+ - code [ref=e424]: /* … */
513
+ - text: block comments, the same as
514
+ - code [ref=e425]: routing.json
515
+ - text: .
516
+ - heading "Error pathsDirect link to Error paths" [level=3] [ref=e426]:
517
+ - text: Error paths
518
+ - link "Direct link to Error paths" [ref=e427] [cursor=pointer]:
519
+ - /url: "#error-paths"
520
+ - text: "#"
521
+ - table [ref=e428]:
522
+ - rowgroup [ref=e429]:
523
+ - row "Input Behaviour" [ref=e430]:
524
+ - columnheader "Input" [ref=e431]
525
+ - columnheader "Behaviour" [ref=e432]
526
+ - rowgroup [ref=e433]:
527
+ - 'row "connector:list @unknown CmdHelper rejects: \"Project [unknown] not found in your projects list\" (exit 1)" [ref=e434]':
528
+ - cell "connector:list @unknown" [ref=e435]:
529
+ - code [ref=e436]: connector:list @unknown
530
+ - 'cell "CmdHelper rejects: \"Project [unknown] not found in your projects list\" (exit 1)" [ref=e437]'
531
+ - row "connector:list <bundle> (no @<project>) \"connector:list <bundle> requires @<project>\" (exit 1)" [ref=e438]:
532
+ - cell "connector:list <bundle> (no @<project>)" [ref=e439]:
533
+ - code [ref=e440]: connector:list <bundle>
534
+ - text: (no
535
+ - code [ref=e441]: "@<project>"
536
+ - text: )
537
+ - cell "\"connector:list <bundle> requires @<project>\" (exit 1)" [ref=e442]:
538
+ - text: "\""
539
+ - code [ref=e443]: connector:list <bundle>
540
+ - text: requires
541
+ - code [ref=e444]: "@<project>"
542
+ - text: "\" (exit 1)"
543
+ - row "connector:list bogus @<project> \"Bundle [ bogus ] is not registered inside @<project>\" (exit 1)" [ref=e445]:
544
+ - cell "connector:list bogus @<project>" [ref=e446]:
545
+ - code [ref=e447]: connector:list bogus @<project>
546
+ - cell "\"Bundle [ bogus ] is not registered inside @<project>\" (exit 1)" [ref=e448]:
547
+ - text: "\"Bundle [ bogus ] is not registered inside"
548
+ - code [ref=e449]: "@<project>"
549
+ - text: "\" (exit 1)"
550
+ - row "connectors.json malformed Treated as \"no connectors declared\" (silently skipped — use bundle:start for strict validation)" [ref=e450]:
551
+ - cell "connectors.json malformed" [ref=e451]:
552
+ - code [ref=e452]: connectors.json
553
+ - text: malformed
554
+ - cell "Treated as \"no connectors declared\" (silently skipped — use bundle:start for strict validation)" [ref=e453]:
555
+ - text: Treated as "no connectors declared" (silently skipped — use
556
+ - code [ref=e454]: bundle:start
557
+ - text: for strict validation)
558
+ - generic [ref=e455]:
559
+ - generic [ref=e456]:
560
+ - img [ref=e458]
561
+ - text: Version-pin warnings vs. install resolution
562
+ - paragraph [ref=e461]:
563
+ - text: npm resolves
564
+ - code [ref=e462]: node_modules/<driver>/
565
+ - text: to a single version per project. When two bundles declare the same driver with different
566
+ - code [ref=e463]: version
567
+ - text: pins, the first
568
+ - code [ref=e464]: npm install
569
+ - text: wins and the other bundle's pin is aspirational.
570
+ - code [ref=e465]: connector:list
571
+ - text: flags this with a trailing
572
+ - code [ref=e466]: "[ !! ] driver \\"
573
+ - text: "` has conflicting `version` pins: ...` line. The actual installed version still appears on the affected rows."
574
+ - separator [ref=e467]
575
+ - heading "connector:addDirect link to connectoradd" [level=2] [ref=e468]:
576
+ - code [ref=e469]: connector:add
577
+ - link "Direct link to connectoradd" [ref=e470] [cursor=pointer]:
578
+ - /url: "#connectoradd"
579
+ - text: "#"
580
+ - paragraph [ref=e471]:
581
+ - emphasis [ref=e472]: New in 0.3.7-alpha.2
582
+ - paragraph [ref=e473]:
583
+ - text: Add a connector entry to a project's
584
+ - code [ref=e474]: shared/config/connectors.json
585
+ - text: or a bundle-scoped
586
+ - code [ref=e475]: <bundle>/config/connectors.json
587
+ - text: . Preserves any
588
+ - code [ref=e476]: //
589
+ - text: /
590
+ - code [ref=e477]: /* */
591
+ - text: comment header above the first
592
+ - code [ref=e478]: "{"
593
+ - text: ", serialises the body with 4-space indentation, and pins"
594
+ - code [ref=e479]: $schema
595
+ - text: at the top.
596
+ - code [ref=e483]:
597
+ - generic [ref=e484]: "gina connector:add <name> @<project> # Writes to shared/config/connectors.json"
598
+ - generic [ref=e485]: "gina connector:add <name> <bundle> @<project> # Writes to <bundle-src>/config/connectors.json"
599
+ - paragraph [ref=e486]:
600
+ - text: After the write, the exact install command for the matching driver is printed — e.g.
601
+ - code [ref=e487]: npm install ioredis@">=5.0.0"
602
+ - text: .
603
+ - heading "FlagsDirect link to Flags" [level=3] [ref=e488]:
604
+ - text: Flags
605
+ - link "Direct link to Flags" [ref=e489] [cursor=pointer]:
606
+ - /url: "#flags"
607
+ - text: "#"
608
+ - table [ref=e490]:
609
+ - rowgroup [ref=e491]:
610
+ - row "Flag Description" [ref=e492]:
611
+ - columnheader "Flag" [ref=e493]
612
+ - columnheader "Description" [ref=e494]
613
+ - rowgroup [ref=e495]:
614
+ - 'row "--connector=<type> Driver type. One of: couchbase, mysql, postgresql, sqlite, redis, ai. Inferred from <name> when <name> matches one of those values." [ref=e496]':
615
+ - cell "--connector=<type>" [ref=e497]:
616
+ - code [ref=e498]: "--connector=<type>"
617
+ - 'cell "Driver type. One of: couchbase, mysql, postgresql, sqlite, redis, ai. Inferred from <name> when <name> matches one of those values." [ref=e499]':
618
+ - text: "Driver type. One of:"
619
+ - code [ref=e500]: couchbase
620
+ - text: ","
621
+ - code [ref=e501]: mysql
622
+ - text: ","
623
+ - code [ref=e502]: postgresql
624
+ - text: ","
625
+ - code [ref=e503]: sqlite
626
+ - text: ","
627
+ - code [ref=e504]: redis
628
+ - text: ","
629
+ - code [ref=e505]: ai
630
+ - text: . Inferred from
631
+ - code [ref=e506]: <name>
632
+ - text: when
633
+ - code [ref=e507]: <name>
634
+ - text: matches one of those values.
635
+ - row "--driver=<type> Synonym for --connector=." [ref=e508]:
636
+ - cell "--driver=<type>" [ref=e509]:
637
+ - code [ref=e510]: "--driver=<type>"
638
+ - cell "Synonym for --connector=." [ref=e511]:
639
+ - text: Synonym for
640
+ - code [ref=e512]: "--connector="
641
+ - text: .
642
+ - row "--protocol=<uri> Connection protocol URI scheme (couchbase://, anthropic://, etc). Required for ai connectors." [ref=e513]:
643
+ - cell "--protocol=<uri>" [ref=e514]:
644
+ - code [ref=e515]: "--protocol=<uri>"
645
+ - cell "Connection protocol URI scheme (couchbase://, anthropic://, etc). Required for ai connectors." [ref=e516]:
646
+ - text: Connection protocol URI scheme (
647
+ - code [ref=e517]: couchbase://
648
+ - text: ","
649
+ - code [ref=e518]: anthropic://
650
+ - text: ", etc). Required for"
651
+ - code [ref=e519]: ai
652
+ - text: connectors.
653
+ - row "--host=<host> Hostname or IP. Comma-separated for clusters (db1,db2)." [ref=e520]:
654
+ - cell "--host=<host>" [ref=e521]:
655
+ - code [ref=e522]: "--host=<host>"
656
+ - cell "Hostname or IP. Comma-separated for clusters (db1,db2)." [ref=e523]:
657
+ - text: Hostname or IP. Comma-separated for clusters (
658
+ - code [ref=e524]: db1,db2
659
+ - text: ).
660
+ - row "--connector-port=<port> Server port. Numeric when possible. Written to the entry under the port key. See the Reserved flag names note below." [ref=e525]:
661
+ - cell "--connector-port=<port>" [ref=e526]:
662
+ - code [ref=e527]: "--connector-port=<port>"
663
+ - cell "Server port. Numeric when possible. Written to the entry under the port key. See the Reserved flag names note below." [ref=e528]:
664
+ - text: Server port. Numeric when possible. Written to the entry under the
665
+ - code [ref=e529]: port
666
+ - text: key. See the
667
+ - strong [ref=e530]: Reserved flag names
668
+ - text: note below.
669
+ - row "--database=<name> Database, bucket, or keyspace name." [ref=e531]:
670
+ - cell "--database=<name>" [ref=e532]:
671
+ - code [ref=e533]: "--database=<name>"
672
+ - cell "Database, bucket, or keyspace name." [ref=e534]
673
+ - row "--username=<name> Authentication username." [ref=e535]:
674
+ - cell "--username=<name>" [ref=e536]:
675
+ - code [ref=e537]: "--username=<name>"
676
+ - cell "Authentication username." [ref=e538]
677
+ - 'row "--password=<value> Authentication password. Supports ${ENV_VAR} interpolation." [ref=e539]':
678
+ - cell "--password=<value>" [ref=e540]:
679
+ - code [ref=e541]: "--password=<value>"
680
+ - 'cell "Authentication password. Supports ${ENV_VAR} interpolation." [ref=e542]':
681
+ - text: Authentication password. Supports
682
+ - code [ref=e543]: "${ENV_VAR}"
683
+ - text: interpolation.
684
+ - 'row "--scope=<scope> Data isolation scope: local, beta, production, testing." [ref=e544]':
685
+ - cell "--scope=<scope>" [ref=e545]:
686
+ - code [ref=e546]: "--scope=<scope>"
687
+ - 'cell "Data isolation scope: local, beta, production, testing." [ref=e547]':
688
+ - text: "Data isolation scope:"
689
+ - code [ref=e548]: local
690
+ - text: ","
691
+ - code [ref=e549]: beta
692
+ - text: ","
693
+ - code [ref=e550]: production
694
+ - text: ","
695
+ - code [ref=e551]: testing
696
+ - text: .
697
+ - row "--model=<id> AI connector only. Default model id." [ref=e552]:
698
+ - cell "--model=<id>" [ref=e553]:
699
+ - code [ref=e554]: "--model=<id>"
700
+ - cell "AI connector only. Default model id." [ref=e555]
701
+ - 'row "--api-key=<value> AI connector only. API key. Supports ${ENV_VAR} interpolation." [ref=e556]':
702
+ - cell "--api-key=<value>" [ref=e557]:
703
+ - code [ref=e558]: "--api-key=<value>"
704
+ - 'cell "AI connector only. API key. Supports ${ENV_VAR} interpolation." [ref=e559]':
705
+ - text: AI connector only. API key. Supports
706
+ - code [ref=e560]: "${ENV_VAR}"
707
+ - text: interpolation.
708
+ - row "--base-url=<url> AI connector only. Override the provider base URL (OpenAI-compatible providers)." [ref=e561]:
709
+ - cell "--base-url=<url>" [ref=e562]:
710
+ - code [ref=e563]: "--base-url=<url>"
711
+ - cell "AI connector only. Override the provider base URL (OpenAI-compatible providers)." [ref=e564]
712
+ - row "--driver-version=<range> Optional semver range to pin the driver install (e.g. ^5.0.0, >=5.3.0 <6.0.0). Written to the entry under the version key. See the Reserved flag names note below." [ref=e565]:
713
+ - cell "--driver-version=<range>" [ref=e566]:
714
+ - code [ref=e567]: "--driver-version=<range>"
715
+ - cell "Optional semver range to pin the driver install (e.g. ^5.0.0, >=5.3.0 <6.0.0). Written to the entry under the version key. See the Reserved flag names note below." [ref=e568]:
716
+ - text: Optional semver range to pin the driver install (e.g.
717
+ - code [ref=e569]: ^5.0.0
718
+ - text: ","
719
+ - code [ref=e570]: ">=5.3.0 <6.0.0"
720
+ - text: ). Written to the entry under the
721
+ - code [ref=e571]: version
722
+ - text: key. See the
723
+ - strong [ref=e572]: Reserved flag names
724
+ - text: note below.
725
+ - row "--force Overwrite an existing entry with the same <name>." [ref=e573]:
726
+ - cell "--force" [ref=e574]:
727
+ - code [ref=e575]: "--force"
728
+ - cell "Overwrite an existing entry with the same <name>." [ref=e576]:
729
+ - text: Overwrite an existing entry with the same
730
+ - code [ref=e577]: <name>
731
+ - text: .
732
+ - row "--install After writing the entry, run the detected package manager's install command for the resolved driver + range. Opt-in; default behaviour is \"write entry, print hint\". See Driver install below." [ref=e578]:
733
+ - cell "--install" [ref=e579]:
734
+ - code [ref=e580]: "--install"
735
+ - cell "After writing the entry, run the detected package manager's install command for the resolved driver + range. Opt-in; default behaviour is \"write entry, print hint\". See Driver install below." [ref=e581]:
736
+ - text: After writing the entry, run the detected package manager's install command for the resolved driver + range. Opt-in; default behaviour is "write entry, print hint". See
737
+ - link "Driver install" [ref=e582] [cursor=pointer]:
738
+ - /url: "#driver-install-with---install"
739
+ - text: below.
740
+ - generic [ref=e583]:
741
+ - generic [ref=e584]:
742
+ - img [ref=e586]
743
+ - text: Reserved flag names
744
+ - generic [ref=e588]:
745
+ - paragraph [ref=e589]: "Two CLI flags use longer names than their schema property names:"
746
+ - list [ref=e590]:
747
+ - listitem [ref=e591]:
748
+ - strong [ref=e592]:
749
+ - code [ref=e593]: "--connector-port="
750
+ - text: (not
751
+ - code [ref=e594]: "--port="
752
+ - text: "):"
753
+ - code [ref=e595]: "--port="
754
+ - text: is reserved by the framework for its own socket port (8124 by default) and is intercepted by
755
+ - code [ref=e596]: bin/cli
756
+ - text: before the handler runs. The written JSON entry still uses the property name
757
+ - code [ref=e597]: port
758
+ - text: .
759
+ - listitem [ref=e598]:
760
+ - strong [ref=e599]:
761
+ - code [ref=e600]: "--driver-version="
762
+ - text: (not
763
+ - code [ref=e601]: "--version="
764
+ - text: "): the framework auto-converts any"
765
+ - code [ref=e602]: "--<key>=<value>"
766
+ - text: flag to a
767
+ - code [ref=e603]: GINA_<KEY>
768
+ - text: env var, so
769
+ - code [ref=e604]: "--version=^5.0.0"
770
+ - text: would set
771
+ - code [ref=e605]: GINA_VERSION=^5.0.0
772
+ - text: and trigger a framework version migration. The written JSON entry still uses the property name
773
+ - code [ref=e606]: version
774
+ - text: .
775
+ - paragraph [ref=e607]: These aliases exist to avoid collisions with framework-level flags; the on-disk JSON shape is unchanged.
776
+ - heading "ExamplesDirect link to Examples" [level=3] [ref=e608]:
777
+ - text: Examples
778
+ - link "Direct link to Examples" [ref=e609] [cursor=pointer]:
779
+ - /url: "#examples"
780
+ - text: "#"
781
+ - code [ref=e613]:
782
+ - generic [ref=e614]: "# Shared Redis, type inferred from name"
783
+ - generic [ref=e615]: gina connector:add redis @myproject --host=127.0.0.1 --connector-port=6379
784
+ - generic [ref=e616]: "# Shared Redis under a custom name"
785
+ - generic [ref=e617]: gina connector:add session @myproject --connector=redis --host=127.0.0.1 --connector-port=6379
786
+ - generic [ref=e618]: "# Bundle-scoped MySQL entry"
787
+ - generic [ref=e619]: gina connector:add mydb api @myproject --connector=mysql --database=mydb --username=root
788
+ - generic [ref=e620]: "# AI connector with env-var secret"
789
+ - generic [ref=e621]: "gina connector:add ai-bot @myproject --connector=ai --protocol=anthropic:// --api-key='${ANTHROPIC_API_KEY}'"
790
+ - generic [ref=e622]: "# Pin driver version, overwrite existing"
791
+ - generic [ref=e623]: gina connector:add session @myproject --connector=redis --driver-version=^5.0.0 --force
792
+ - generic [ref=e624]: "# Write entry AND run `npm install ioredis@<range>` (lockfile-detected PM)"
793
+ - generic [ref=e625]: gina connector:add redis @myproject --install
794
+ - heading "OutputDirect link to Output" [level=3] [ref=e626]:
795
+ - text: Output
796
+ - link "Direct link to Output" [ref=e627] [cursor=pointer]:
797
+ - /url: "#output-1"
798
+ - text: "#"
799
+ - code [ref=e631]:
800
+ - generic [ref=e632]: "Added connector `redis` (redis) in bundle `api` at /path/to/project/src/api/config/connectors.json"
801
+ - generic [ref=e633]: "Next: run `npm install ioredis@\">=5.0.0\"` inside your project root."
802
+ - paragraph [ref=e634]:
803
+ - text: When overwriting an existing entry with
804
+ - code [ref=e635]: "--force"
805
+ - text: ", the first line reads"
806
+ - code [ref=e636]: Updated connector ...
807
+ - text: instead of
808
+ - code [ref=e637]: Added connector ...
809
+ - text: .
810
+ - heading "Driver install with --installDirect link to driver-install-with---install" [level=3] [ref=e638]:
811
+ - text: Driver install with
812
+ - code [ref=e639]: "--install"
813
+ - link "Direct link to driver-install-with---install" [ref=e640] [cursor=pointer]:
814
+ - /url: "#driver-install-with---install"
815
+ - text: "#"
816
+ - paragraph [ref=e641]:
817
+ - text: By default,
818
+ - code [ref=e642]: connector:add
819
+ - text: writes the entry and prints the matching
820
+ - code [ref=e643]: npm install …
821
+ - text: hint — it does
822
+ - strong [ref=e644]: not
823
+ - text: run the install for you. Pass
824
+ - code [ref=e645]: "--install"
825
+ - text: to turn that hint into an actual call, using the package manager detected from the project's lockfile.
826
+ - code [ref=e649]:
827
+ - generic [ref=e650]: gina connector:add redis @myproject --install
828
+ - code [ref=e654]:
829
+ - generic [ref=e655]: "Added connector `redis` (redis) in shared scope at /path/to/project/shared/config/connectors.json"
830
+ - generic [ref=e656]: "[install] detected package manager: npm (package-lock.json)"
831
+ - generic [ref=e657]: "[install] resolving driver range: >=5.0.0 (source: framework)"
832
+ - generic [ref=e658]: "[npm] running: npm install ioredis@>=5.0.0 (cwd: /path/to/project)"
833
+ - generic [ref=e659]: …npm output…
834
+ - paragraph [ref=e660]:
835
+ - strong [ref=e661]: Package-manager detection (lockfile probe order)
836
+ - paragraph [ref=e662]: "The detector walks the project root looking for a lockfile, in this order:"
837
+ - table [ref=e663]:
838
+ - rowgroup [ref=e664]:
839
+ - row "Order Lockfile Package manager Install subcommand" [ref=e665]:
840
+ - columnheader "Order" [ref=e666]
841
+ - columnheader "Lockfile" [ref=e667]
842
+ - columnheader "Package manager" [ref=e668]
843
+ - columnheader "Install subcommand" [ref=e669]
844
+ - rowgroup [ref=e670]:
845
+ - row "1 bun.lockb bun bun add <pkg>@<range>" [ref=e671]:
846
+ - cell "1" [ref=e672]
847
+ - cell "bun.lockb" [ref=e673]:
848
+ - code [ref=e674]: bun.lockb
849
+ - cell "bun" [ref=e675]
850
+ - cell "bun add <pkg>@<range>" [ref=e676]:
851
+ - code [ref=e677]: bun add <pkg>@<range>
852
+ - row "2 pnpm-lock.yaml pnpm pnpm add <pkg>@<range>" [ref=e678]:
853
+ - cell "2" [ref=e679]
854
+ - cell "pnpm-lock.yaml" [ref=e680]:
855
+ - code [ref=e681]: pnpm-lock.yaml
856
+ - cell "pnpm" [ref=e682]
857
+ - cell "pnpm add <pkg>@<range>" [ref=e683]:
858
+ - code [ref=e684]: pnpm add <pkg>@<range>
859
+ - row "3 yarn.lock yarn yarn add <pkg>@<range>" [ref=e685]:
860
+ - cell "3" [ref=e686]
861
+ - cell "yarn.lock" [ref=e687]:
862
+ - code [ref=e688]: yarn.lock
863
+ - cell "yarn" [ref=e689]
864
+ - cell "yarn add <pkg>@<range>" [ref=e690]:
865
+ - code [ref=e691]: yarn add <pkg>@<range>
866
+ - row "4 package-lock.json npm npm install <pkg>@<range>" [ref=e692]:
867
+ - cell "4" [ref=e693]
868
+ - cell "package-lock.json" [ref=e694]:
869
+ - code [ref=e695]: package-lock.json
870
+ - cell "npm" [ref=e696]
871
+ - cell "npm install <pkg>@<range>" [ref=e697]:
872
+ - code [ref=e698]: npm install <pkg>@<range>
873
+ - row "— (no lockfile) npm (fallback) npm install <pkg>@<range>" [ref=e699]:
874
+ - cell "—" [ref=e700]
875
+ - cell "(no lockfile)" [ref=e701]:
876
+ - emphasis [ref=e702]: (no lockfile)
877
+ - cell "npm (fallback)" [ref=e703]
878
+ - cell "npm install <pkg>@<range>" [ref=e704]:
879
+ - code [ref=e705]: npm install <pkg>@<range>
880
+ - paragraph [ref=e706]:
881
+ - text: The first match wins. When no lockfile is present, npm is the fallback — the detector logs
882
+ - code [ref=e707]: (fallback — no lockfile found)
883
+ - text: so it's visible in the output.
884
+ - paragraph [ref=e708]:
885
+ - strong [ref=e709]: Install-range resolution order
886
+ - paragraph [ref=e710]:
887
+ - text: The range that follows
888
+ - code [ref=e711]: "@"
889
+ - text: "in the install command is resolved in three tiers, first match wins:"
890
+ - list [ref=e712]:
891
+ - listitem [ref=e713]:
892
+ - strong [ref=e714]:
893
+ - code [ref=e715]: "--driver-version=<range>"
894
+ - text: — the pin on the
895
+ - code [ref=e716]: connector:add
896
+ - text: call (if set). Also written to the entry under the
897
+ - code [ref=e717]: version
898
+ - text: key.
899
+ - listitem [ref=e718]:
900
+ - strong [ref=e719]:
901
+ - text: Project
902
+ - code [ref=e720]: package.json
903
+ - text: —
904
+ - code [ref=e721]: dependencies
905
+ - text: first, then
906
+ - code [ref=e722]: devDependencies
907
+ - text: . If the driver is already declared there (from a previous install), that range is reused so
908
+ - code [ref=e723]: npm install
909
+ - text: doesn't churn the lockfile.
910
+ - listitem [ref=e724]:
911
+ - strong [ref=e725]:
912
+ - text: Framework
913
+ - code [ref=e726]: peerDependencies
914
+ - text: — the range declared by gina itself (e.g.
915
+ - code [ref=e727]: ioredis >=5.0.0
916
+ - text: ","
917
+ - code [ref=e728]: couchbase >=3.0.0
918
+ - text: ).
919
+ - paragraph [ref=e729]:
920
+ - text: The resolved tier is logged as
921
+ - code [ref=e730]: "(source: entry | project | framework)"
922
+ - text: so you can see which rung fired.
923
+ - paragraph [ref=e731]:
924
+ - strong [ref=e732]:
925
+ - code [ref=e733]: sqlite
926
+ - text: and
927
+ - code [ref=e734]: ai
928
+ - text: behaviour
929
+ - list [ref=e735]:
930
+ - listitem [ref=e736]:
931
+ - strong [ref=e737]:
932
+ - code [ref=e738]: sqlite
933
+ - text: — short-circuits. Node.js ≥ 22.5.0 ships
934
+ - code [ref=e739]: node:sqlite
935
+ - text: built in, so
936
+ - code [ref=e740]: "--install"
937
+ - text: logs
938
+ - code [ref=e741]: "[install] no install needed — Node.js >= 22.5.0 built-in (node:sqlite)."
939
+ - text: and exits
940
+ - code [ref=e742]: "0"
941
+ - text: without running anything.
942
+ - listitem [ref=e743]:
943
+ - strong [ref=e744]:
944
+ - code [ref=e745]: ai
945
+ - text: with a missing or unknown
946
+ - code [ref=e746]: "--protocol="
947
+ - text: — exits
948
+ - code [ref=e747]: "1"
949
+ - text: after writing the entry. The entry is still written to disk (you can fix the protocol and re-run
950
+ - code [ref=e748]: "--install"
951
+ - text: separately, or install by hand). The error names the supported schemes.
952
+ - paragraph [ref=e749]:
953
+ - strong [ref=e750]: Exit codes
954
+ - table [ref=e751]:
955
+ - rowgroup [ref=e752]:
956
+ - row "Scenario Exit code" [ref=e753]:
957
+ - columnheader "Scenario" [ref=e754]
958
+ - columnheader "Exit code" [ref=e755]
959
+ - rowgroup [ref=e756]:
960
+ - row "Entry written, install ran, package manager exited 0 0" [ref=e757]:
961
+ - cell "Entry written, install ran, package manager exited 0" [ref=e758]:
962
+ - text: Entry written, install ran, package manager exited
963
+ - code [ref=e759]: "0"
964
+ - cell "0" [ref=e760]:
965
+ - code [ref=e761]: "0"
966
+ - row "Entry written, sqlite short-circuit 0" [ref=e762]:
967
+ - cell "Entry written, sqlite short-circuit" [ref=e763]:
968
+ - text: Entry written,
969
+ - code [ref=e764]: sqlite
970
+ - text: short-circuit
971
+ - cell "0" [ref=e765]:
972
+ - code [ref=e766]: "0"
973
+ - row "Entry written, install ran, package manager exited non-zero whatever the PM returned" [ref=e767]:
974
+ - cell "Entry written, install ran, package manager exited non-zero" [ref=e768]
975
+ - cell "whatever the PM returned" [ref=e769]
976
+ - row "Entry written, PM binary missing on PATH 127" [ref=e770]:
977
+ - cell "Entry written, PM binary missing on PATH" [ref=e771]:
978
+ - text: Entry written, PM binary missing on
979
+ - code [ref=e772]: PATH
980
+ - cell "127" [ref=e773]:
981
+ - code [ref=e774]: "127"
982
+ - row "Entry written, AI connector with missing/unknown protocol 1" [ref=e775]:
983
+ - cell "Entry written, AI connector with missing/unknown protocol" [ref=e776]:
984
+ - text: Entry written, AI connector with missing/unknown
985
+ - code [ref=e777]: protocol
986
+ - cell "1" [ref=e778]:
987
+ - code [ref=e779]: "1"
988
+ - row "Entry written, unknown connector type 1" [ref=e780]:
989
+ - cell "Entry written, unknown connector type" [ref=e781]
990
+ - cell "1" [ref=e782]:
991
+ - code [ref=e783]: "1"
992
+ - generic [ref=e784]:
993
+ - generic [ref=e785]:
994
+ - img [ref=e787]
995
+ - text: Opt-in by design
996
+ - paragraph [ref=e790]:
997
+ - code [ref=e791]: "--install"
998
+ - text: is never applied by default —
999
+ - code [ref=e792]: connector:add
1000
+ - text: always writes the entry first, then honours the flag. There is no
1001
+ - code [ref=e793]: "--no-install"
1002
+ - text: /
1003
+ - code [ref=e794]: "--yes"
1004
+ - text: counterpart, and no configuration that silently turns install into the default. If a future session needs it, the flag can be added without changing the default.
1005
+ - heading "Version pin — where it appliesDirect link to Version pin — where it applies" [level=3] [ref=e795]:
1006
+ - text: Version pin — where it applies
1007
+ - link "Direct link to Version pin — where it applies" [ref=e796] [cursor=pointer]:
1008
+ - /url: "#version-pin--where-it-applies"
1009
+ - text: "#"
1010
+ - paragraph [ref=e797]:
1011
+ - text: The
1012
+ - code [ref=e798]: "--driver-version="
1013
+ - text: pin is written to the entry under the
1014
+ - code [ref=e799]: version
1015
+ - text: key. At install time, the printed install hint uses that pin (so
1016
+ - code [ref=e800]: "--driver-version=^5.0.0"
1017
+ - text: produces
1018
+ - code [ref=e801]: npm install ioredis@"^5.0.0"
1019
+ - text: ). When omitted, the hint falls back to the framework's
1020
+ - code [ref=e802]: peerDependencies
1021
+ - text: range.
1022
+ - paragraph [ref=e803]:
1023
+ - text: Since
1024
+ - code [ref=e804]: npm install
1025
+ - text: resolves a single version per project, a
1026
+ - code [ref=e805]: version
1027
+ - text: pin set on one bundle still affects every bundle that uses the same driver.
1028
+ - code [ref=e806]: connector:list
1029
+ - text: flags conflicting pins with a
1030
+ - code [ref=e807]: "[ !! ]"
1031
+ - text: warning — see the
1032
+ - link "version-pin warnings note" [ref=e808] [cursor=pointer]:
1033
+ - /url: "#connectorlist"
1034
+ - text: .
1035
+ - heading "Merge behaviourDirect link to Merge behaviour" [level=3] [ref=e809]:
1036
+ - text: Merge behaviour
1037
+ - link "Direct link to Merge behaviour" [ref=e810] [cursor=pointer]:
1038
+ - /url: "#merge-behaviour"
1039
+ - text: "#"
1040
+ - paragraph [ref=e811]: "The written file always has this order:"
1041
+ - list [ref=e812]:
1042
+ - listitem [ref=e813]:
1043
+ - code [ref=e814]: $schema
1044
+ - text: (always first; inserted with the canonical
1045
+ - code [ref=e815]: https://gina.io/schema/connectors.json
1046
+ - text: URL if none was present)
1047
+ - listitem [ref=e816]:
1048
+ - text: Existing entries — key order preserved verbatim; if
1049
+ - code [ref=e817]: <name>
1050
+ - text: already exists, it is replaced in place (not moved to the bottom)
1051
+ - listitem [ref=e818]:
1052
+ - text: The new entry — appended only when
1053
+ - code [ref=e819]: <name>
1054
+ - text: was not already present
1055
+ - paragraph [ref=e820]:
1056
+ - text: Any comment header above the first
1057
+ - code [ref=e821]: "{"
1058
+ - text: is preserved byte-for-byte. Mid-body
1059
+ - code [ref=e822]: //
1060
+ - text: or
1061
+ - code [ref=e823]: /* */
1062
+ - text: comments are
1063
+ - strong [ref=e824]: lost
1064
+ - text: on rewrite — the body is re-serialised from the parsed JSON.
1065
+ - heading "Error pathsDirect link to Error paths" [level=3] [ref=e825]:
1066
+ - text: Error paths
1067
+ - link "Direct link to Error paths" [ref=e826] [cursor=pointer]:
1068
+ - /url: "#error-paths-1"
1069
+ - text: "#"
1070
+ - table [ref=e827]:
1071
+ - rowgroup [ref=e828]:
1072
+ - row "Input Behaviour" [ref=e829]:
1073
+ - columnheader "Input" [ref=e830]
1074
+ - columnheader "Behaviour" [ref=e831]
1075
+ - rowgroup [ref=e832]:
1076
+ - row "connector:add with no <name> \"connector:add requires <name> and @<project>\" (exit 1)" [ref=e833]:
1077
+ - cell "connector:add with no <name>" [ref=e834]:
1078
+ - code [ref=e835]: connector:add
1079
+ - text: with no
1080
+ - code [ref=e836]: <name>
1081
+ - cell "\"connector:add requires <name> and @<project>\" (exit 1)" [ref=e837]:
1082
+ - text: "\""
1083
+ - code [ref=e838]: connector:add
1084
+ - text: requires
1085
+ - code [ref=e839]: <name>
1086
+ - text: and
1087
+ - code [ref=e840]: "@<project>"
1088
+ - text: "\" (exit 1)"
1089
+ - row "connector:add <name> (no @<project>) \"connector:add requires @<project>\" (exit 1)" [ref=e841]:
1090
+ - cell "connector:add <name> (no @<project>)" [ref=e842]:
1091
+ - code [ref=e843]: connector:add <name>
1092
+ - text: (no
1093
+ - code [ref=e844]: "@<project>"
1094
+ - text: )
1095
+ - cell "\"connector:add requires @<project>\" (exit 1)" [ref=e845]:
1096
+ - text: "\""
1097
+ - code [ref=e846]: connector:add
1098
+ - text: requires
1099
+ - code [ref=e847]: "@<project>"
1100
+ - text: "\" (exit 1)"
1101
+ - row "connector:add <name> bogus @<project> \"Bundle [ bogus ] is not registered inside @<project>\" (exit 1)" [ref=e848]:
1102
+ - cell "connector:add <name> bogus @<project>" [ref=e849]:
1103
+ - code [ref=e850]: connector:add <name> bogus @<project>
1104
+ - cell "\"Bundle [ bogus ] is not registered inside @<project>\" (exit 1)" [ref=e851]:
1105
+ - text: "\"Bundle [ bogus ] is not registered inside"
1106
+ - code [ref=e852]: "@<project>"
1107
+ - text: "\" (exit 1)"
1108
+ - 'row "connector:add mycache @<project> --connector=notathing \"Unknown connector type notathing. Allowed values: ...\" (exit 1)" [ref=e853]':
1109
+ - cell "connector:add mycache @<project> --connector=notathing" [ref=e854]:
1110
+ - code [ref=e855]: connector:add mycache @<project> --connector=notathing
1111
+ - 'cell "\"Unknown connector type notathing. Allowed values: ...\" (exit 1)" [ref=e856]':
1112
+ - text: "\"Unknown connector type"
1113
+ - code [ref=e857]: notathing
1114
+ - text: ". Allowed values: ...\" (exit 1)"
1115
+ - 'row "connector:add redis @<project> with no shared/ dir \"Config directory does not exist: ...\" (exit 1)" [ref=e858]':
1116
+ - cell "connector:add redis @<project> with no shared/ dir" [ref=e859]:
1117
+ - code [ref=e860]: connector:add redis @<project>
1118
+ - text: with no
1119
+ - code [ref=e861]: shared/
1120
+ - text: dir
1121
+ - 'cell "\"Config directory does not exist: ...\" (exit 1)" [ref=e862]'
1122
+ - 'row "Entry already exists, --force not passed \"Connector `` already exists in ... Re-run with --force to overwrite.\" (exit 1)" [ref=e863]':
1123
+ - cell "Entry already exists, --force not passed" [ref=e864]:
1124
+ - text: Entry already exists,
1125
+ - code [ref=e865]: "--force"
1126
+ - text: not passed
1127
+ - 'cell "\"Connector `` already exists in ... Re-run with --force to overwrite.\" (exit 1)" [ref=e866]'
1128
+ - 'row "--scope= is not one of local, beta, production, testing The framework''s scope validation rejects first (before the handler); if it passes, the handler falls back to \"Scope `` is not valid. Allowed: ...\"" [ref=e867]':
1129
+ - cell "--scope= is not one of local, beta, production, testing" [ref=e868]:
1130
+ - code [ref=e869]: "--scope="
1131
+ - text: is not one of
1132
+ - code [ref=e870]: local
1133
+ - text: ","
1134
+ - code [ref=e871]: beta
1135
+ - text: ","
1136
+ - code [ref=e872]: production
1137
+ - text: ","
1138
+ - code [ref=e873]: testing
1139
+ - 'cell "The framework''s scope validation rejects first (before the handler); if it passes, the handler falls back to \"Scope `` is not valid. Allowed: ...\"" [ref=e874]'
1140
+ - generic [ref=e875]:
1141
+ - generic [ref=e876]:
1142
+ - img [ref=e878]
1143
+ - text: Inferred type
1144
+ - generic [ref=e880]:
1145
+ - paragraph [ref=e881]:
1146
+ - text: If
1147
+ - code [ref=e882]: <name>
1148
+ - text: is one of the built-in connector types (
1149
+ - code [ref=e883]: couchbase
1150
+ - text: ","
1151
+ - code [ref=e884]: mysql
1152
+ - text: ","
1153
+ - code [ref=e885]: postgresql
1154
+ - text: ","
1155
+ - code [ref=e886]: sqlite
1156
+ - text: ","
1157
+ - code [ref=e887]: redis
1158
+ - text: ","
1159
+ - code [ref=e888]: ai
1160
+ - text: ), you can omit
1161
+ - code [ref=e889]: "--connector="
1162
+ - text: . In that case, the generated entry also omits the
1163
+ - code [ref=e890]: connector
1164
+ - text: field — the runtime uses the logical key name as the type.
1165
+ - paragraph [ref=e891]:
1166
+ - text: "Example:"
1167
+ - code [ref=e892]: gina connector:add redis @myproject --host=127.0.0.1 --connector-port=6379
1168
+ - text: "writes:"
1169
+ - code [ref=e896]:
1170
+ - generic [ref=e897]: "\"redis\": { \"host\": \"127.0.0.1\", \"port\": 6379 }"
1171
+ - separator [ref=e898]
1172
+ - heading "connector:rmDirect link to connectorrm" [level=2] [ref=e899]:
1173
+ - code [ref=e900]: connector:rm
1174
+ - link "Direct link to connectorrm" [ref=e901] [cursor=pointer]:
1175
+ - /url: "#connectorrm"
1176
+ - text: "#"
1177
+ - paragraph [ref=e902]:
1178
+ - emphasis [ref=e903]: New in 0.3.7-alpha.2
1179
+ - paragraph [ref=e904]:
1180
+ - text: Remove a connector entry from a project's
1181
+ - code [ref=e905]: shared/config/connectors.json
1182
+ - text: or from a bundle-scoped
1183
+ - code [ref=e906]: <bundle>/config/connectors.json
1184
+ - text: ". The scope is inferred from positional-absence: pass a"
1185
+ - code [ref=e907]: <bundle>
1186
+ - text: to target that bundle, omit it to target shared.
1187
+ - code [ref=e908]: remove
1188
+ - text: is accepted as an alias.
1189
+ - code [ref=e912]:
1190
+ - generic [ref=e913]: "gina connector:rm <name> @<project> # Removes from shared/config/connectors.json"
1191
+ - generic [ref=e914]: "gina connector:rm <name> <bundle> @<project> # Removes from <bundle-src>/config/connectors.json"
1192
+ - generic [ref=e915]: "gina connector:remove <name> @<project> # Alias for rm"
1193
+ - generic [ref=e916]:
1194
+ - generic [ref=e917]:
1195
+ - img [ref=e919]
1196
+ - text: Never uninstalls the npm driver
1197
+ - paragraph [ref=e922]:
1198
+ - code [ref=e923]: connector:rm
1199
+ - text: removes the JSON entry only — it never runs
1200
+ - code [ref=e924]: npm uninstall
1201
+ - text: . A driver removed from one bundle may still be needed by another bundle in the same project, and the project's
1202
+ - code [ref=e925]: node_modules/
1203
+ - text: is shared across bundles. After removal, the command prints a retention hint listing any sibling bundles (or shared) that still reference the same driver.
1204
+ - heading "FlagsDirect link to Flags" [level=3] [ref=e926]:
1205
+ - text: Flags
1206
+ - link "Direct link to Flags" [ref=e927] [cursor=pointer]:
1207
+ - /url: "#flags-1"
1208
+ - text: "#"
1209
+ - table [ref=e928]:
1210
+ - rowgroup [ref=e929]:
1211
+ - row "Flag Description" [ref=e930]:
1212
+ - columnheader "Flag" [ref=e931]
1213
+ - columnheader "Description" [ref=e932]
1214
+ - rowgroup [ref=e933]:
1215
+ - row "--dry-run Print what would be removed without touching any file. Includes the sibling-usage hint." [ref=e934]:
1216
+ - cell "--dry-run" [ref=e935]:
1217
+ - code [ref=e936]: "--dry-run"
1218
+ - cell "Print what would be removed without touching any file. Includes the sibling-usage hint." [ref=e937]
1219
+ - row "--force Skip the project-level guard that refuses to remove a shared connector while other bundles still reference it. Bundle-level removals never consult this guard." [ref=e938]:
1220
+ - cell "--force" [ref=e939]:
1221
+ - code [ref=e940]: "--force"
1222
+ - cell "Skip the project-level guard that refuses to remove a shared connector while other bundles still reference it. Bundle-level removals never consult this guard." [ref=e941]
1223
+ - heading "Scoping rulesDirect link to Scoping rules" [level=3] [ref=e942]:
1224
+ - text: Scoping rules
1225
+ - link "Direct link to Scoping rules" [ref=e943] [cursor=pointer]:
1226
+ - /url: "#scoping-rules"
1227
+ - text: "#"
1228
+ - table [ref=e944]:
1229
+ - rowgroup [ref=e945]:
1230
+ - row "Command shape Target file Safety gate" [ref=e946]:
1231
+ - columnheader "Command shape" [ref=e947]
1232
+ - columnheader "Target file" [ref=e948]
1233
+ - columnheader "Safety gate" [ref=e949]
1234
+ - rowgroup [ref=e950]:
1235
+ - row "connector:rm <name> @<project> shared/config/connectors.json Refuses if any bundle still declares <name> unless --force is passed" [ref=e951]:
1236
+ - cell "connector:rm <name> @<project>" [ref=e952]:
1237
+ - code [ref=e953]: connector:rm <name> @<project>
1238
+ - cell "shared/config/connectors.json" [ref=e954]:
1239
+ - code [ref=e955]: shared/config/connectors.json
1240
+ - cell "Refuses if any bundle still declares <name> unless --force is passed" [ref=e956]:
1241
+ - text: Refuses if any bundle still declares
1242
+ - code [ref=e957]: <name>
1243
+ - text: unless
1244
+ - code [ref=e958]: "--force"
1245
+ - text: is passed
1246
+ - row "connector:rm <name> <bundle> @<project> <bundle-src>/config/connectors.json Always proceeds. Leaves shared untouched." [ref=e959]:
1247
+ - cell "connector:rm <name> <bundle> @<project>" [ref=e960]:
1248
+ - code [ref=e961]: connector:rm <name> <bundle> @<project>
1249
+ - cell "<bundle-src>/config/connectors.json" [ref=e962]:
1250
+ - code [ref=e963]: <bundle-src>/config/connectors.json
1251
+ - cell "Always proceeds. Leaves shared untouched." [ref=e964]
1252
+ - heading "ExamplesDirect link to Examples" [level=3] [ref=e965]:
1253
+ - text: Examples
1254
+ - link "Direct link to Examples" [ref=e966] [cursor=pointer]:
1255
+ - /url: "#examples-1"
1256
+ - text: "#"
1257
+ - code [ref=e970]:
1258
+ - generic [ref=e971]: "# Remove shared entry (fails if any bundle still uses it)"
1259
+ - generic [ref=e972]: gina connector:rm session @myproject
1260
+ - generic [ref=e973]: "# Remove from one bundle only"
1261
+ - generic [ref=e974]: gina connector:rm session api @myproject
1262
+ - generic [ref=e975]: "# Preview removal with sibling warnings"
1263
+ - generic [ref=e976]: gina connector:rm session @myproject --dry-run
1264
+ - generic [ref=e977]: "# Remove shared entry even if bundles still use it"
1265
+ - generic [ref=e978]: gina connector:rm session @myproject --force
1266
+ - heading "OutputDirect link to Output" [level=3] [ref=e979]:
1267
+ - text: Output
1268
+ - link "Direct link to Output" [ref=e980] [cursor=pointer]:
1269
+ - /url: "#output-2"
1270
+ - text: "#"
1271
+ - code [ref=e984]:
1272
+ - generic [ref=e985]: "Removed connector `session` from shared scope at /path/to/project/shared/config/connectors.json"
1273
+ - generic [ref=e986]: "Note: gina does not uninstall npm packages. Driver `redis` is still referenced by: api (override), worker (session)."
1274
+ - paragraph [ref=e987]: "When removing from a bundle:"
1275
+ - code [ref=e991]:
1276
+ - generic [ref=e992]: "Removed connector `session` from bundle `api` at /path/to/project/src/api/config/connectors.json"
1277
+ - generic [ref=e993]: "Note: gina does not uninstall npm packages. Driver `redis` is still referenced by: shared, worker (session)."
1278
+ - paragraph [ref=e994]:
1279
+ - text: When the removed driver is
1280
+ - code [ref=e995]: sqlite
1281
+ - text: (Node-builtin), the retention note is omitted — there is no npm package to retain.
1282
+ - heading "Dry-runDirect link to Dry-run" [level=3] [ref=e996]:
1283
+ - text: Dry-run
1284
+ - link "Direct link to Dry-run" [ref=e997] [cursor=pointer]:
1285
+ - /url: "#dry-run"
1286
+ - text: "#"
1287
+ - code [ref=e1001]:
1288
+ - generic [ref=e1002]: gina connector:rm session @myproject --dry-run
1289
+ - code [ref=e1006]:
1290
+ - generic [ref=e1007]: "[dry-run] Would remove connector `session` from shared scope at /path/to/project/shared/config/connectors.json."
1291
+ - generic [ref=e1008]: "[dry-run] Current entry:"
1292
+ - generic [ref=e1009]: "{"
1293
+ - generic [ref=e1010]: "\"connector\": \"redis\","
1294
+ - generic [ref=e1011]: "\"host\": \"127.0.0.1\","
1295
+ - generic [ref=e1012]: "\"port\": 6379"
1296
+ - generic [ref=e1013]: "}"
1297
+ - generic [ref=e1014]: "[dry-run] Warning: 2 bundle(s) still reference `session`: api (override), worker. Re-run without --dry-run and with --force to proceed."
1298
+ - generic [ref=e1015]: "[dry-run] Note: gina does not uninstall npm packages. Driver `redis` is still referenced by: api (override), worker (session)."
1299
+ - paragraph [ref=e1016]:
1300
+ - text: Dry-run never writes to disk and always exits
1301
+ - code [ref=e1017]: "0"
1302
+ - text: ", even when the real command would refuse without"
1303
+ - code [ref=e1018]: "--force"
1304
+ - text: .
1305
+ - heading "Project-level guard (--force)Direct link to project-level-guard---force" [level=3] [ref=e1019]:
1306
+ - text: Project-level guard (
1307
+ - code [ref=e1020]: "--force"
1308
+ - text: )
1309
+ - link "Direct link to project-level-guard---force" [ref=e1021] [cursor=pointer]:
1310
+ - /url: "#project-level-guard---force"
1311
+ - text: "#"
1312
+ - paragraph [ref=e1022]: "By default, removing a shared connector requires that no bundle still declares the same logical name — this prevents a bundle that relies on overlay inheritance from breaking silently. The command prints the offending bundles:"
1313
+ - code [ref=e1026]:
1314
+ - generic [ref=e1027]: "[error] Removing shared connector `session` would break 2 bundle(s) that still reference it:"
1315
+ - generic [ref=e1028]: api (override), worker.
1316
+ - generic [ref=e1029]: Re-run with --force to remove anyway, or remove from each bundle first.
1317
+ - paragraph [ref=e1030]:
1318
+ - text: Pass
1319
+ - code [ref=e1031]: "--force"
1320
+ - text: to bypass the guard. Bundle-level removals never consult the guard — removing from
1321
+ - code [ref=e1032]: api
1322
+ - text: has no effect on
1323
+ - code [ref=e1033]: worker
1324
+ - text: or
1325
+ - code [ref=e1034]: shared
1326
+ - text: .
1327
+ - heading "Inherited-from-shared hintDirect link to Inherited-from-shared hint" [level=3] [ref=e1035]:
1328
+ - text: Inherited-from-shared hint
1329
+ - link "Direct link to Inherited-from-shared hint" [ref=e1036] [cursor=pointer]:
1330
+ - /url: "#inherited-from-shared-hint"
1331
+ - text: "#"
1332
+ - paragraph [ref=e1037]:
1333
+ - text: Attempting to remove a connector from a bundle when it is only declared in
1334
+ - code [ref=e1038]: shared
1335
+ - text: "prints a hint pointing at the right scope:"
1336
+ - code [ref=e1042]:
1337
+ - generic [ref=e1043]: "[error] Connector `session` is not declared in `api/config/connectors.json` — it is inherited from shared/config/connectors.json. Use `gina connector:rm session @myproject` to remove it from shared."
1338
+ - heading "Merge behaviourDirect link to Merge behaviour" [level=3] [ref=e1044]:
1339
+ - text: Merge behaviour
1340
+ - link "Direct link to Merge behaviour" [ref=e1045] [cursor=pointer]:
1341
+ - /url: "#merge-behaviour-1"
1342
+ - text: "#"
1343
+ - paragraph [ref=e1046]: "The written file preserves:"
1344
+ - list [ref=e1047]:
1345
+ - listitem [ref=e1048]:
1346
+ - code [ref=e1049]: $schema
1347
+ - text: (always first)
1348
+ - listitem [ref=e1050]: Existing entries in their original key order, minus the removed key
1349
+ - listitem [ref=e1051]:
1350
+ - text: Any comment header above the first
1351
+ - code [ref=e1052]: "{"
1352
+ - text: (byte-for-byte)
1353
+ - paragraph [ref=e1053]:
1354
+ - text: Mid-body
1355
+ - code [ref=e1054]: //
1356
+ - text: or
1357
+ - code [ref=e1055]: /* */
1358
+ - text: comments are
1359
+ - strong [ref=e1056]: lost
1360
+ - text: on rewrite — the body is re-serialised from the parsed JSON, same as
1361
+ - code [ref=e1057]: connector:add
1362
+ - text: .
1363
+ - heading "Error pathsDirect link to Error paths" [level=3] [ref=e1058]:
1364
+ - text: Error paths
1365
+ - link "Direct link to Error paths" [ref=e1059] [cursor=pointer]:
1366
+ - /url: "#error-paths-2"
1367
+ - text: "#"
1368
+ - table [ref=e1060]:
1369
+ - rowgroup [ref=e1061]:
1370
+ - row "Input Behaviour" [ref=e1062]:
1371
+ - columnheader "Input" [ref=e1063]
1372
+ - columnheader "Behaviour" [ref=e1064]
1373
+ - rowgroup [ref=e1065]:
1374
+ - row "connector:rm with no <name> \"connector:rm requires <name> and @<project>\" (exit 1)" [ref=e1066]:
1375
+ - cell "connector:rm with no <name>" [ref=e1067]:
1376
+ - code [ref=e1068]: connector:rm
1377
+ - text: with no
1378
+ - code [ref=e1069]: <name>
1379
+ - cell "\"connector:rm requires <name> and @<project>\" (exit 1)" [ref=e1070]:
1380
+ - text: "\""
1381
+ - code [ref=e1071]: connector:rm
1382
+ - text: requires
1383
+ - code [ref=e1072]: <name>
1384
+ - text: and
1385
+ - code [ref=e1073]: "@<project>"
1386
+ - text: "\" (exit 1)"
1387
+ - row "connector:rm <name> (no @<project>) \"connector:rm requires @<project>\" (exit 1)" [ref=e1074]:
1388
+ - cell "connector:rm <name> (no @<project>)" [ref=e1075]:
1389
+ - code [ref=e1076]: connector:rm <name>
1390
+ - text: (no
1391
+ - code [ref=e1077]: "@<project>"
1392
+ - text: )
1393
+ - cell "\"connector:rm requires @<project>\" (exit 1)" [ref=e1078]:
1394
+ - text: "\""
1395
+ - code [ref=e1079]: connector:rm
1396
+ - text: requires
1397
+ - code [ref=e1080]: "@<project>"
1398
+ - text: "\" (exit 1)"
1399
+ - row "connector:rm <name> bogus @<project> \"Bundle [ bogus ] is not registered inside @<project>\" (exit 1)" [ref=e1081]:
1400
+ - cell "connector:rm <name> bogus @<project>" [ref=e1082]:
1401
+ - code [ref=e1083]: connector:rm <name> bogus @<project>
1402
+ - cell "\"Bundle [ bogus ] is not registered inside @<project>\" (exit 1)" [ref=e1084]:
1403
+ - text: "\"Bundle [ bogus ] is not registered inside"
1404
+ - code [ref=e1085]: "@<project>"
1405
+ - text: "\" (exit 1)"
1406
+ - row "connector:rm unknown @<project> \"Connector unknown not found in /…/shared/config/connectors.json\" (exit 1)" [ref=e1086]:
1407
+ - cell "connector:rm unknown @<project>" [ref=e1087]:
1408
+ - code [ref=e1088]: connector:rm unknown @<project>
1409
+ - cell "\"Connector unknown not found in /…/shared/config/connectors.json\" (exit 1)" [ref=e1089]:
1410
+ - text: "\"Connector"
1411
+ - code [ref=e1090]: unknown
1412
+ - text: not found in /…/shared/config/connectors.json" (exit 1)
1413
+ - row "connector:rm session api @<project> (lives only in shared) Inherited-from-shared hint (exit 1)" [ref=e1091]:
1414
+ - cell "connector:rm session api @<project> (lives only in shared)" [ref=e1092]:
1415
+ - code [ref=e1093]: connector:rm session api @<project>
1416
+ - text: (lives only in shared)
1417
+ - cell "Inherited-from-shared hint (exit 1)" [ref=e1094]
1418
+ - 'row "connector:rm session @<project> (siblings still reference it) \"Removing shared connector would break N bundle(s): …\" (exit 1; pass --force to override)" [ref=e1095]':
1419
+ - cell "connector:rm session @<project> (siblings still reference it)" [ref=e1096]:
1420
+ - code [ref=e1097]: connector:rm session @<project>
1421
+ - text: (siblings still reference it)
1422
+ - 'cell "\"Removing shared connector would break N bundle(s): …\" (exit 1; pass --force to override)" [ref=e1098]':
1423
+ - text: "\"Removing shared connector would break N bundle(s): …\" (exit 1; pass"
1424
+ - code [ref=e1099]: "--force"
1425
+ - text: to override)
1426
+ - separator [ref=e1100]
1427
+ - heading "connector:migrateDirect link to connectormigrate" [level=2] [ref=e1101]:
1428
+ - code [ref=e1102]: connector:migrate
1429
+ - link "Direct link to connectormigrate" [ref=e1103] [cursor=pointer]:
1430
+ - /url: "#connectormigrate"
1431
+ - text: "#"
1432
+ - paragraph [ref=e1104]:
1433
+ - emphasis [ref=e1105]: New in 0.3.7-alpha.2
1434
+ - paragraph [ref=e1106]:
1435
+ - text: Lint every
1436
+ - code [ref=e1107]: connectors.json
1437
+ - text: in a project (or a single bundle's file) and optionally apply auto-fixable issues in place.
1438
+ - code [ref=e1108]: connector:migrate
1439
+ - text: is
1440
+ - strong [ref=e1109]: explicit and opt-in
1441
+ - text: — the framework never auto-migrates a
1442
+ - code [ref=e1110]: connectors.json
1443
+ - text: at bundle boot. Run it in CI or before committing.
1444
+ - code [ref=e1114]:
1445
+ - generic [ref=e1115]: "gina connector:migrate @<project> # Scan shared + every bundle"
1446
+ - generic [ref=e1116]: "gina connector:migrate <bundle> @<project> # Scan just the bundle's file"
1447
+ - generic [ref=e1117]: "gina connector:migrate @<project> --fix # Apply auto-fixable issues"
1448
+ - generic [ref=e1118]: "gina connector:migrate @<project> --format=json # Machine-readable report"
1449
+ - generic [ref=e1119]:
1450
+ - generic [ref=e1120]:
1451
+ - img [ref=e1122]
1452
+ - text: Dry run by default
1453
+ - paragraph [ref=e1125]:
1454
+ - text: Without
1455
+ - code [ref=e1126]: "--fix"
1456
+ - text: ","
1457
+ - code [ref=e1127]: connector:migrate
1458
+ - text: is a
1459
+ - strong [ref=e1128]: read-only dry run
1460
+ - text: — nothing is written. Pass
1461
+ - code [ref=e1129]: "--fix"
1462
+ - text: to apply the auto-fixable issues.
1463
+ - heading "FlagsDirect link to Flags" [level=3] [ref=e1130]:
1464
+ - text: Flags
1465
+ - link "Direct link to Flags" [ref=e1131] [cursor=pointer]:
1466
+ - /url: "#flags-2"
1467
+ - text: "#"
1468
+ - table [ref=e1132]:
1469
+ - rowgroup [ref=e1133]:
1470
+ - row "Flag Description" [ref=e1134]:
1471
+ - columnheader "Flag" [ref=e1135]
1472
+ - columnheader "Description" [ref=e1136]
1473
+ - rowgroup [ref=e1137]:
1474
+ - row "--fix Apply auto-fixable issues to disk. Without it, connector:migrate is a read-only dry run." [ref=e1138]:
1475
+ - cell "--fix" [ref=e1139]:
1476
+ - code [ref=e1140]: "--fix"
1477
+ - cell "Apply auto-fixable issues to disk. Without it, connector:migrate is a read-only dry run." [ref=e1141]:
1478
+ - text: Apply auto-fixable issues to disk. Without it,
1479
+ - code [ref=e1142]: connector:migrate
1480
+ - text: is a read-only dry run.
1481
+ - row "--format=json Emit a machine-readable JSON report instead of the human-readable text summary." [ref=e1143]:
1482
+ - cell "--format=json" [ref=e1144]:
1483
+ - code [ref=e1145]: "--format=json"
1484
+ - cell "Emit a machine-readable JSON report instead of the human-readable text summary." [ref=e1146]
1485
+ - heading "ChecksDirect link to Checks" [level=3] [ref=e1147]:
1486
+ - text: Checks
1487
+ - link "Direct link to Checks" [ref=e1148] [cursor=pointer]:
1488
+ - /url: "#checks"
1489
+ - text: "#"
1490
+ - table [ref=e1149]:
1491
+ - rowgroup [ref=e1150]:
1492
+ - row "Check Severity Auto-fixable Description" [ref=e1151]:
1493
+ - columnheader "Check" [ref=e1152]
1494
+ - columnheader "Severity" [ref=e1153]
1495
+ - columnheader "Auto-fixable" [ref=e1154]
1496
+ - columnheader "Description" [ref=e1155]
1497
+ - rowgroup [ref=e1156]:
1498
+ - 'row "missing-schema info yes Top-level $schema key is absent. --fix injects \"$schema\": \"https://gina.io/schema/connectors.json\" at the top of the object, preserving the leading comment header and existing key order." [ref=e1157]':
1499
+ - cell "missing-schema" [ref=e1158]:
1500
+ - code [ref=e1159]: missing-schema
1501
+ - cell "info" [ref=e1160]
1502
+ - cell "yes" [ref=e1161]
1503
+ - 'cell "Top-level $schema key is absent. --fix injects \"$schema\": \"https://gina.io/schema/connectors.json\" at the top of the object, preserving the leading comment header and existing key order." [ref=e1162]':
1504
+ - text: Top-level
1505
+ - code [ref=e1163]: $schema
1506
+ - text: key is absent.
1507
+ - code [ref=e1164]: "--fix"
1508
+ - text: injects
1509
+ - code [ref=e1165]: "\"$schema\": \"https://gina.io/schema/connectors.json\""
1510
+ - text: at the top of the object, preserving the leading comment header and existing key order.
1511
+ - row "bare-key-no-connector warn no An entry has no connector field and its key is not in the built-in enum (couchbase, mysql, postgresql, sqlite, redis, ai). The correct driver cannot be inferred from the key name, so re-declare the entry explicitly via gina connector:add <name> @<project> --connector=<type> --force." [ref=e1166]:
1512
+ - cell "bare-key-no-connector" [ref=e1167]:
1513
+ - code [ref=e1168]: bare-key-no-connector
1514
+ - cell "warn" [ref=e1169]
1515
+ - cell "no" [ref=e1170]
1516
+ - cell "An entry has no connector field and its key is not in the built-in enum (couchbase, mysql, postgresql, sqlite, redis, ai). The correct driver cannot be inferred from the key name, so re-declare the entry explicitly via gina connector:add <name> @<project> --connector=<type> --force." [ref=e1171]:
1517
+ - text: An entry has no
1518
+ - code [ref=e1172]: connector
1519
+ - text: field
1520
+ - strong [ref=e1173]: and
1521
+ - text: its key is not in the built-in enum (
1522
+ - code [ref=e1174]: couchbase
1523
+ - text: ","
1524
+ - code [ref=e1175]: mysql
1525
+ - text: ","
1526
+ - code [ref=e1176]: postgresql
1527
+ - text: ","
1528
+ - code [ref=e1177]: sqlite
1529
+ - text: ","
1530
+ - code [ref=e1178]: redis
1531
+ - text: ","
1532
+ - code [ref=e1179]: ai
1533
+ - text: ). The correct driver cannot be inferred from the key name, so re-declare the entry explicitly via
1534
+ - code [ref=e1180]: gina connector:add <name> @<project> --connector=<type> --force
1535
+ - text: .
1536
+ - heading "Example — dry runDirect link to Example — dry run" [level=3] [ref=e1181]:
1537
+ - text: Example — dry run
1538
+ - link "Direct link to Example — dry run" [ref=e1182] [cursor=pointer]:
1539
+ - /url: "#example--dry-run"
1540
+ - text: "#"
1541
+ - code [ref=e1186]:
1542
+ - generic [ref=e1187]: gina connector:migrate @myproject
1543
+ - code [ref=e1191]:
1544
+ - generic [ref=e1192]: "[dry-run] /.../shared/config/connectors.json (shared) — 2 connector(s), 1 issue(s) remaining"
1545
+ - generic [ref=e1193]: "INFO missing-schema — Top-level `$schema` key missing. Auto-fix adds `\"$schema\": \"https://gina.io/schema/connectors.json\"`."
1546
+ - generic [ref=e1194]: "[dry-run] /.../api/config/connectors.json (bundle `api`) — 1 connector(s), no issues"
1547
+ - generic [ref=e1195]: "[dry-run] /.../admin/config/connectors.json (bundle `admin`) — 2 connector(s), 2 issue(s) remaining"
1548
+ - generic [ref=e1196]: "INFO missing-schema — Top-level `$schema` key missing. Auto-fix adds `\"$schema\": \"https://gina.io/schema/connectors.json\"`."
1549
+ - generic [ref=e1197]: "WARN bare-key-no-connector — `mongodb` Entry `mongodb` has no `connector` field and key `mongodb` is not in the built-in enum (couchbase, mysql, postgresql, sqlite, redis, ai). Add `\"connector\": \"<type>\"` by hand, or re-declare via `gina connector:add mongodb @<project> --connector=<type> --force`."
1550
+ - generic [ref=e1198]: Re-run with --fix to apply 2 auto-fixable issue(s). 1 issue(s) need manual attention.
1551
+ - heading "Example — apply fixesDirect link to Example — apply fixes" [level=3] [ref=e1199]:
1552
+ - text: Example — apply fixes
1553
+ - link "Direct link to Example — apply fixes" [ref=e1200] [cursor=pointer]:
1554
+ - /url: "#example--apply-fixes"
1555
+ - text: "#"
1556
+ - code [ref=e1204]:
1557
+ - generic [ref=e1205]: gina connector:migrate @myproject --fix
1558
+ - code [ref=e1209]:
1559
+ - generic [ref=e1210]: "[fix] /.../shared/config/connectors.json (shared) — 2 connector(s), 1 fixed"
1560
+ - generic [ref=e1211]: "FIXED missing-schema — Top-level `$schema` key missing. Auto-fix adds `\"$schema\": \"https://gina.io/schema/connectors.json\"`."
1561
+ - generic [ref=e1212]: "[fix] /.../api/config/connectors.json (bundle `api`) — 1 connector(s), no issues"
1562
+ - generic [ref=e1213]: "[fix] /.../admin/config/connectors.json (bundle `admin`) — 2 connector(s), 1 fixed, 1 issue(s) remaining"
1563
+ - generic [ref=e1214]: "FIXED missing-schema — Top-level `$schema` key missing. Auto-fix adds `\"$schema\": \"https://gina.io/schema/connectors.json\"`."
1564
+ - generic [ref=e1215]: "WARN bare-key-no-connector — `mongodb` Entry `mongodb` has no `connector` field and key `mongodb` is not in the built-in enum (couchbase, mysql, postgresql, sqlite, redis, ai). Add `\"connector\": \"<type>\"` by hand, or re-declare via `gina connector:add mongodb @<project> --connector=<type> --force`."
1565
+ - generic [ref=e1216]: Applied 2 fix(es). 1 issue(s) still need manual attention.
1566
+ - paragraph [ref=e1217]:
1567
+ - text: Re-running after
1568
+ - code [ref=e1218]: "--fix"
1569
+ - text: is idempotent — the fixable issue no longer fires, and only the manual-attention warnings remain.
1570
+ - heading "JSON outputDirect link to JSON output" [level=3] [ref=e1219]:
1571
+ - text: JSON output
1572
+ - link "Direct link to JSON output" [ref=e1220] [cursor=pointer]:
1573
+ - /url: "#json-output-1"
1574
+ - text: "#"
1575
+ - code [ref=e1224]:
1576
+ - generic [ref=e1225]: gina connector:migrate @myproject --format=json
1577
+ - code [ref=e1229]:
1578
+ - generic [ref=e1230]: "{"
1579
+ - generic [ref=e1231]: "\"project\": \"myproject\","
1580
+ - generic [ref=e1232]: "\"scope\": \"project\","
1581
+ - generic [ref=e1233]: "\"bundle\": null,"
1582
+ - generic [ref=e1234]: "\"fixApplied\": false,"
1583
+ - generic [ref=e1235]: "\"files\": ["
1584
+ - generic [ref=e1236]: "{"
1585
+ - generic [ref=e1237]: "\"path\": \"/.../shared/config/connectors.json\","
1586
+ - generic [ref=e1238]: "\"bundle\": null,"
1587
+ - generic [ref=e1239]: "\"exists\": true,"
1588
+ - generic [ref=e1240]: "\"parseError\": null,"
1589
+ - generic [ref=e1241]: "\"connectorCount\": 2,"
1590
+ - generic [ref=e1242]: "\"fixed\": [],"
1591
+ - generic [ref=e1243]: "\"issues\": ["
1592
+ - generic [ref=e1244]: "{"
1593
+ - generic [ref=e1245]: "\"type\": \"missing-schema\","
1594
+ - generic [ref=e1246]: "\"severity\": \"info\","
1595
+ - generic [ref=e1247]: "\"fixable\": true,"
1596
+ - generic [ref=e1248]: "\"message\": \"Top-level `$schema` key missing. Auto-fix adds `\\\"$schema\\\": \\\"https://gina.io/schema/connectors.json\\\"`.\""
1597
+ - generic [ref=e1249]: "}"
1598
+ - generic [ref=e1250]: "]"
1599
+ - generic [ref=e1251]: "}"
1600
+ - generic [ref=e1252]: "]"
1601
+ - generic [ref=e1253]: "}"
1602
+ - table [ref=e1254]:
1603
+ - rowgroup [ref=e1255]:
1604
+ - row "Field Description" [ref=e1256]:
1605
+ - columnheader "Field" [ref=e1257]
1606
+ - columnheader "Description" [ref=e1258]
1607
+ - rowgroup [ref=e1259]:
1608
+ - row "project Project short-name (manifest name with the leading @ stripped)" [ref=e1260]:
1609
+ - cell "project" [ref=e1261]:
1610
+ - code [ref=e1262]: project
1611
+ - cell "Project short-name (manifest name with the leading @ stripped)" [ref=e1263]:
1612
+ - text: Project short-name (manifest
1613
+ - code [ref=e1264]: name
1614
+ - text: with the leading
1615
+ - code [ref=e1265]: "@"
1616
+ - text: stripped)
1617
+ - row "scope \"project\" when <bundle> is absent, \"bundle\" when present" [ref=e1266]:
1618
+ - cell "scope" [ref=e1267]:
1619
+ - code [ref=e1268]: scope
1620
+ - cell "\"project\" when <bundle> is absent, \"bundle\" when present" [ref=e1269]:
1621
+ - code [ref=e1270]: "\"project\""
1622
+ - text: when
1623
+ - code [ref=e1271]: <bundle>
1624
+ - text: is absent,
1625
+ - code [ref=e1272]: "\"bundle\""
1626
+ - text: when present
1627
+ - row "bundle Bundle name when scope is \"bundle\", otherwise null" [ref=e1273]:
1628
+ - cell "bundle" [ref=e1274]:
1629
+ - code [ref=e1275]: bundle
1630
+ - cell "Bundle name when scope is \"bundle\", otherwise null" [ref=e1276]:
1631
+ - text: Bundle name when scope is
1632
+ - code [ref=e1277]: "\"bundle\""
1633
+ - text: ", otherwise"
1634
+ - code [ref=e1278]: "null"
1635
+ - row "fixApplied true when --fix was passed (regardless of whether any fix ran)" [ref=e1279]:
1636
+ - cell "fixApplied" [ref=e1280]:
1637
+ - code [ref=e1281]: fixApplied
1638
+ - cell "true when --fix was passed (regardless of whether any fix ran)" [ref=e1282]:
1639
+ - code [ref=e1283]: "true"
1640
+ - text: when
1641
+ - code [ref=e1284]: "--fix"
1642
+ - text: was passed (regardless of whether any fix ran)
1643
+ - row "files[] One entry per scanned connectors.json file — path, owning bundle (null for shared), exists, parseError, connectorCount (excluding $schema), fixed[], issues[]" [ref=e1285]:
1644
+ - cell "files[]" [ref=e1286]:
1645
+ - code [ref=e1287]: files[]
1646
+ - cell "One entry per scanned connectors.json file — path, owning bundle (null for shared), exists, parseError, connectorCount (excluding $schema), fixed[], issues[]" [ref=e1288]:
1647
+ - text: One entry per scanned
1648
+ - code [ref=e1289]: connectors.json
1649
+ - text: file —
1650
+ - code [ref=e1290]: path
1651
+ - text: ", owning"
1652
+ - code [ref=e1291]: bundle
1653
+ - text: (null for shared),
1654
+ - code [ref=e1292]: exists
1655
+ - text: ","
1656
+ - code [ref=e1293]: parseError
1657
+ - text: ","
1658
+ - code [ref=e1294]: connectorCount
1659
+ - text: (excluding
1660
+ - code [ref=e1295]: $schema
1661
+ - text: ),
1662
+ - code [ref=e1296]: fixed[]
1663
+ - text: ","
1664
+ - code [ref=e1297]: issues[]
1665
+ - heading "Comment header preservationDirect link to Comment header preservation" [level=3] [ref=e1298]:
1666
+ - text: Comment header preservation
1667
+ - link "Direct link to Comment header preservation" [ref=e1299] [cursor=pointer]:
1668
+ - /url: "#comment-header-preservation"
1669
+ - text: "#"
1670
+ - paragraph [ref=e1300]:
1671
+ - text: The leading
1672
+ - code [ref=e1301]: //
1673
+ - text: or
1674
+ - code [ref=e1302]: /* */
1675
+ - text: comment header above the first
1676
+ - code [ref=e1303]: "{"
1677
+ - text: is preserved byte-for-byte when
1678
+ - code [ref=e1304]: "--fix"
1679
+ - text: rewrites the file. Mid-body comments are lost on rewrite (same convention as
1680
+ - code [ref=e1305]: connector:add
1681
+ - text: and
1682
+ - code [ref=e1306]: connector:rm
1683
+ - text: ).
1684
+ - heading "Why there is no auto-migrate hookDirect link to Why there is no auto-migrate hook" [level=3] [ref=e1307]:
1685
+ - text: Why there is no auto-migrate hook
1686
+ - link "Direct link to Why there is no auto-migrate hook" [ref=e1308] [cursor=pointer]:
1687
+ - /url: "#why-there-is-no-auto-migrate-hook"
1688
+ - text: "#"
1689
+ - paragraph [ref=e1309]:
1690
+ - code [ref=e1310]: connector:migrate
1691
+ - text: does
1692
+ - strong [ref=e1311]: not
1693
+ - text: run automatically at bundle boot —
1694
+ - code [ref=e1312]: core/config.js
1695
+ - text: is unchanged by this command. A runtime auto-migration hook is the right long-term design, but only when a concrete old-shape → new-shape delta exists to migrate. Today's schema has no such delta (the enum and field shapes are stable since 0.3.7), so a boot-path hook would be scaffolding around a non-existent problem. The real hook is deferred to
1696
+ - code [ref=e1313]: 0.4.0
1697
+ - text: alongside the Couchbase SDK v2 removal (
1698
+ - code [ref=e1314]: "#CN8"
1699
+ - text: ), when the migration will have a real before/after to act on.
1700
+ - heading "Error pathsDirect link to Error paths" [level=3] [ref=e1315]:
1701
+ - text: Error paths
1702
+ - link "Direct link to Error paths" [ref=e1316] [cursor=pointer]:
1703
+ - /url: "#error-paths-3"
1704
+ - text: "#"
1705
+ - table [ref=e1317]:
1706
+ - rowgroup [ref=e1318]:
1707
+ - row "Input Behaviour" [ref=e1319]:
1708
+ - columnheader "Input" [ref=e1320]
1709
+ - columnheader "Behaviour" [ref=e1321]
1710
+ - rowgroup [ref=e1322]:
1711
+ - row "connector:migrate with no @<project> \"connector:migrate requires @<project>\" (exit 1)" [ref=e1323]:
1712
+ - cell "connector:migrate with no @<project>" [ref=e1324]:
1713
+ - code [ref=e1325]: connector:migrate
1714
+ - text: with no
1715
+ - code [ref=e1326]: "@<project>"
1716
+ - cell "\"connector:migrate requires @<project>\" (exit 1)" [ref=e1327]:
1717
+ - text: "\""
1718
+ - code [ref=e1328]: connector:migrate
1719
+ - text: requires
1720
+ - code [ref=e1329]: "@<project>"
1721
+ - text: "\" (exit 1)"
1722
+ - row "connector:migrate @unknown \"Project [unknown] not found in your projects list\" (CmdHelper, exit 1)" [ref=e1330]:
1723
+ - cell "connector:migrate @unknown" [ref=e1331]:
1724
+ - code [ref=e1332]: connector:migrate @unknown
1725
+ - cell "\"Project [unknown] not found in your projects list\" (CmdHelper, exit 1)" [ref=e1333]
1726
+ - row "connector:migrate bogus @<project> \"Bundle [ bogus ] is not registered inside @<project>\" (exit 1)" [ref=e1334]:
1727
+ - cell "connector:migrate bogus @<project>" [ref=e1335]:
1728
+ - code [ref=e1336]: connector:migrate bogus @<project>
1729
+ - cell "\"Bundle [ bogus ] is not registered inside @<project>\" (exit 1)" [ref=e1337]:
1730
+ - text: "\"Bundle [ bogus ] is not registered inside"
1731
+ - code [ref=e1338]: "@<project>"
1732
+ - text: "\" (exit 1)"
1733
+ - 'row "connector:migrate @<project> --format=xml \"Unknown --format value xml. Supported: json.\" (exit 1)" [ref=e1339]':
1734
+ - cell "connector:migrate @<project> --format=xml" [ref=e1340]:
1735
+ - code [ref=e1341]: connector:migrate @<project> --format=xml
1736
+ - 'cell "\"Unknown --format value xml. Supported: json.\" (exit 1)" [ref=e1342]':
1737
+ - text: "\"Unknown --format value"
1738
+ - code [ref=e1343]: xml
1739
+ - text: ". Supported: json.\" (exit 1)"
1740
+ - row "Target connectors.json missing Reported as \"missing (skipped)\" — not an error (exit 0)" [ref=e1344]:
1741
+ - cell "Target connectors.json missing" [ref=e1345]:
1742
+ - text: Target
1743
+ - code [ref=e1346]: connectors.json
1744
+ - text: missing
1745
+ - cell "Reported as \"missing (skipped)\" — not an error (exit 0)" [ref=e1347]
1746
+ - separator [ref=e1348]
1747
+ - heading "connector:helpDirect link to connectorhelp" [level=2] [ref=e1349]:
1748
+ - code [ref=e1350]: connector:help
1749
+ - link "Direct link to connectorhelp" [ref=e1351] [cursor=pointer]:
1750
+ - /url: "#connectorhelp"
1751
+ - text: "#"
1752
+ - paragraph [ref=e1352]:
1753
+ - text: Print the usage summary for the
1754
+ - code [ref=e1353]: connector
1755
+ - text: command group.
1756
+ - code [ref=e1357]:
1757
+ - generic [ref=e1358]: gina connector:help
1758
+ - code [ref=e1362]:
1759
+ - generic [ref=e1363]: gina connector
1760
+ - generic [ref=e1364]:
1761
+ - generic [ref=e1365]:
1762
+ - generic [ref=e1366]: Was this page helpful?
1763
+ - generic [ref=e1367]:
1764
+ - button "Yes, this was helpful" [ref=e1368] [cursor=pointer]:
1765
+ - generic [ref=e1369]: 👍
1766
+ - generic [ref=e1370]: –
1767
+ - button "No, this was not helpful" [ref=e1371] [cursor=pointer]:
1768
+ - generic [ref=e1372]: 👎
1769
+ - generic [ref=e1373]: –
1770
+ - link "Edit this page" [ref=e1377] [cursor=pointer]:
1771
+ - /url: https://github.com/gina-io/docs/tree/main/docs/cli/connector.md
1772
+ - img [ref=e1378]
1773
+ - text: Edit this page
1774
+ - navigation "Docs pages" [ref=e1381]:
1775
+ - link "Previous « service" [ref=e1382] [cursor=pointer]:
1776
+ - /url: /docs/cli/cli-service
1777
+ - generic [ref=e1383]: Previous
1778
+ - generic [ref=e1384]: « service
1779
+ - link "Next Overview »" [ref=e1385] [cursor=pointer]:
1780
+ - /url: /docs/reference/
1781
+ - generic [ref=e1386]: Next
1782
+ - generic [ref=e1387]: Overview »
1783
+ - contentinfo [ref=e1388]:
1784
+ - generic [ref=e1389]:
1785
+ - generic [ref=e1390]:
1786
+ - generic [ref=e1391]:
1787
+ - generic [ref=e1392]: Docs
1788
+ - list [ref=e1393]:
1789
+ - listitem [ref=e1394]:
1790
+ - link "Getting Started" [ref=e1395] [cursor=pointer]:
1791
+ - /url: /docs/intro
1792
+ - generic [ref=e1396]:
1793
+ - generic [ref=e1397]: Community
1794
+ - list [ref=e1398]:
1795
+ - listitem [ref=e1399]:
1796
+ - link "GitHub Issues(opens in new tab)" [ref=e1400] [cursor=pointer]:
1797
+ - /url: https://github.com/gina-io/gina/issues
1798
+ - text: GitHub Issues
1799
+ - img "(opens in new tab)" [ref=e1401]
1800
+ - listitem [ref=e1403]:
1801
+ - link "GitHub Discussions(opens in new tab)" [ref=e1404] [cursor=pointer]:
1802
+ - /url: https://github.com/gina-io/gina/discussions
1803
+ - text: GitHub Discussions
1804
+ - img "(opens in new tab)" [ref=e1405]
1805
+ - listitem [ref=e1407]:
1806
+ - link "Support Gina" [ref=e1408] [cursor=pointer]:
1807
+ - /url: /docs/support
1808
+ - generic [ref=e1409]:
1809
+ - generic [ref=e1410]: More
1810
+ - list [ref=e1411]:
1811
+ - listitem [ref=e1412]:
1812
+ - link "npm(opens in new tab)" [ref=e1413] [cursor=pointer]:
1813
+ - /url: https://www.npmjs.com/package/gina
1814
+ - text: npm
1815
+ - img "(opens in new tab)" [ref=e1414]
1816
+ - generic [ref=e1417]: Copyright © 2009-2026 Gina I/O.
1817
+ - button "Collapse sidebar" [ref=e1419] [cursor=pointer]:
1818
+ - img [ref=e1420]