gina 0.6.2 → 0.6.3

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 (570) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +41 -12
  3. package/ROADMAP.md +3 -2
  4. package/bin/cli +19 -2
  5. package/framework/v0.6.3/VERSION +1 -0
  6. package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +6 -0
  7. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  8. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  9. package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/index.html +1 -0
  10. package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +50 -1
  11. package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +457 -57
  12. package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.js +1457 -58
  13. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js +625 -0
  14. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  15. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  16. package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/index.js +114 -0
  17. package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/connector.js +14 -3
  18. package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/session-store.js +14 -3
  19. package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/session-store.v3.js +29 -2
  20. package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/session-store.v4.js +29 -2
  21. package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/session-store.js +24 -2
  22. package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/session-store.js +33 -9
  23. package/framework/{v0.6.2 → v0.6.3}/core/connectors/scylladb/lib/session-store.js +25 -2
  24. package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/lib/session-store.js +26 -2
  25. package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.js +201 -21
  26. package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-nunjucks.js +8 -0
  27. package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-swig.js +85 -4
  28. package/framework/{v0.6.2 → v0.6.3}/core/gna.js +23 -1
  29. package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/csrf/src/main.js +9 -5
  30. package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hide-powered-by/README.md +20 -0
  31. package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/src/form-validator.js +119 -43
  32. package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/src/main.js +451 -9
  33. package/framework/{v0.6.2 → v0.6.3}/core/server.isaac.js +50 -54
  34. package/framework/{v0.6.2 → v0.6.3}/core/server.js +240 -3
  35. package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/index.js +6 -4
  36. package/framework/{v0.6.2 → v0.6.3}/core/template/conf/settings.json +10 -0
  37. package/framework/{v0.6.2 → v0.6.3}/lib/cache/README.md +9 -1
  38. package/framework/{v0.6.2 → v0.6.3}/lib/cmd/audit/verify.js +11 -9
  39. package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/mcp-start.js +21 -12
  40. package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/help.txt +1 -1
  41. package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/init.js +13 -1
  42. package/framework/{v0.6.2 → v0.6.3}/lib/dto/src/main.js +18 -11
  43. package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/file/index.js +29 -1
  44. package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/mq/speaker.js +30 -1
  45. package/framework/{v0.6.2 → v0.6.3}/lib/math/index.js +57 -6
  46. package/framework/{v0.6.2 → v0.6.3}/lib/merge/src/main.js +34 -5
  47. package/framework/{v0.6.2 → v0.6.3}/lib/render-cache/src/main.js +77 -4
  48. package/framework/{v0.6.2 → v0.6.3}/lib/routing/src/main.js +13 -1
  49. package/framework/{v0.6.2 → v0.6.3}/lib/routing-introspect/src/main.js +64 -2
  50. package/framework/v0.6.3/lib/secrets/src/backends/env.js +75 -0
  51. package/framework/{v0.6.2 → v0.6.3}/package.json +1 -1
  52. package/gna.js +5 -4
  53. package/llms.txt +19 -17
  54. package/package.json +5 -4
  55. package/schema/connectors.json +2 -2
  56. package/schema/routing.json +5 -0
  57. package/schema/settings.json +6 -1
  58. package/script/generate_gna_types.js +1 -1
  59. package/script/soak/couchbase-soak.js +1316 -0
  60. package/types/globals.d.ts +2 -0
  61. package/types/gna.d.ts +5 -0
  62. package/types/index.d.ts +1 -0
  63. package/utils/helper.js +38 -7
  64. package/framework/v0.6.2/VERSION +0 -1
  65. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  66. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  67. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -603
  68. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  69. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  70. package/framework/v0.6.2/lib/secrets/src/backends/env.js +0 -60
  71. /package/framework/{v0.6.2 → v0.6.3}/AUTHORS +0 -0
  72. /package/framework/{v0.6.2 → v0.6.3}/LICENSE +0 -0
  73. /package/framework/{v0.6.2 → v0.6.3}/core/asset/html/nolayout.html +0 -0
  74. /package/framework/{v0.6.2 → v0.6.3}/core/asset/html/static.html +0 -0
  75. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/android-chrome-192x192.png +0 -0
  76. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/android-chrome-512x512.png +0 -0
  77. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/apple-touch-icon.png +0 -0
  78. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/favicon-16x16.png +0 -0
  79. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/favicon-32x32.png +0 -0
  80. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/favicon.ico +0 -0
  81. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/README.md +0 -0
  82. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  83. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  84. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  85. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  86. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  87. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  88. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  89. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  90. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  91. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  92. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  93. /package/framework/{v0.6.2 → v0.6.3}/core/config.js +0 -0
  94. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/ai/index.js +0 -0
  95. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/ai/lib/connector.js +0 -0
  96. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  97. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  98. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/n1ql.js +0 -0
  99. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/duckdb/index.js +0 -0
  100. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/duckdb/lib/connector.js +0 -0
  101. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/index.js +0 -0
  102. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/connector.js +0 -0
  103. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/job-store.js +0 -0
  104. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  105. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mysql/index.js +0 -0
  106. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mysql/lib/connector.js +0 -0
  107. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/postgresql/index.js +0 -0
  108. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/postgresql/lib/connector.js +0 -0
  109. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/index.js +0 -0
  110. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/connector.js +0 -0
  111. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/job-store.js +0 -0
  112. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/render-cache-store.js +0 -0
  113. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/scylladb/index.js +0 -0
  114. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/scylladb/lib/connector.js +0 -0
  115. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sql-parser.js +0 -0
  116. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/index.js +0 -0
  117. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/lib/connector.js +0 -0
  118. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/lib/job-store.js +0 -0
  119. /package/framework/{v0.6.2 → v0.6.3}/core/content.encoding +0 -0
  120. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.framework.js +0 -0
  121. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-json.js +0 -0
  122. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-nunjucks-async.js +0 -0
  123. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-stream.js +0 -0
  124. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-swig-async.js +0 -0
  125. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-v1.js +0 -0
  126. /package/framework/{v0.6.2 → v0.6.3}/core/controller/index.js +0 -0
  127. /package/framework/{v0.6.2 → v0.6.3}/core/controller/inspector-window-emit.js +0 -0
  128. /package/framework/{v0.6.2 → v0.6.3}/core/controller/release-banner.js +0 -0
  129. /package/framework/{v0.6.2 → v0.6.3}/core/dev/index.js +0 -0
  130. /package/framework/{v0.6.2 → v0.6.3}/core/dev/lib/class.js +0 -0
  131. /package/framework/{v0.6.2 → v0.6.3}/core/dev/lib/factory.js +0 -0
  132. /package/framework/{v0.6.2 → v0.6.3}/core/dev/lib/tools.js +0 -0
  133. /package/framework/{v0.6.2 → v0.6.3}/core/locales/README.md +0 -0
  134. /package/framework/{v0.6.2 → v0.6.3}/core/locales/currency.json +0 -0
  135. /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/language/en.json +0 -0
  136. /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/language/fr.json +0 -0
  137. /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/region/en.json +0 -0
  138. /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/region/fr.json +0 -0
  139. /package/framework/{v0.6.2 → v0.6.3}/core/locales/index.js +0 -0
  140. /package/framework/{v0.6.2 → v0.6.3}/core/mime.types +0 -0
  141. /package/framework/{v0.6.2 → v0.6.3}/core/model/entity.js +0 -0
  142. /package/framework/{v0.6.2 → v0.6.3}/core/model/index.js +0 -0
  143. /package/framework/{v0.6.2 → v0.6.3}/core/model/template/entityFactory.js +0 -0
  144. /package/framework/{v0.6.2 → v0.6.3}/core/model/template/index.js +0 -0
  145. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/README.md +0 -0
  146. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/index.js +0 -0
  147. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/csrf/README.md +0 -0
  148. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/csrf/package.json +0 -0
  149. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/README.md +0 -0
  150. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coep/README.md +0 -0
  151. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coep/package.json +0 -0
  152. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  153. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coop/README.md +0 -0
  154. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coop/package.json +0 -0
  155. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  156. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/corp/README.md +0 -0
  157. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/corp/package.json +0 -0
  158. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  159. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/csp/README.md +0 -0
  160. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/csp/package.json +0 -0
  161. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  162. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  163. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  164. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  165. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  166. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  167. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  168. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  169. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  170. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/package.json +0 -0
  171. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  172. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  173. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  174. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/src/main.js +0 -0
  175. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  176. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  177. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  178. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  179. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  180. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  181. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  182. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  183. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  184. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  185. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  186. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  187. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  188. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  189. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  190. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  191. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  192. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  193. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/session/README.md +0 -0
  194. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/session/package.json +0 -0
  195. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/session/src/main.js +0 -0
  196. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/README.md +0 -0
  197. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/build.json +0 -0
  198. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/package.json +0 -0
  199. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/src/main.js +0 -0
  200. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/README.md +0 -0
  201. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/build.json +0 -0
  202. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/package.json +0 -0
  203. /package/framework/{v0.6.2 → v0.6.3}/core/router.js +0 -0
  204. /package/framework/{v0.6.2 → v0.6.3}/core/server.express.js +0 -0
  205. /package/framework/{v0.6.2 → v0.6.3}/core/status.codes +0 -0
  206. /package/framework/{v0.6.2 → v0.6.3}/core/template/_gitignore +0 -0
  207. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/app.json +0 -0
  208. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  209. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/routing.json +0 -0
  210. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/settings.json +0 -0
  211. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  212. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/templates.json +0 -0
  213. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  214. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  215. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  216. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  217. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/locales/en.json +0 -0
  218. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  219. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  220. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  221. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  222. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  223. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  224. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  225. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  226. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/readme.md +0 -0
  227. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/sw.js +0 -0
  228. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  229. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  230. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  231. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  232. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  233. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  234. /package/framework/{v0.6.2 → v0.6.3}/core/template/command/gina.bat.tpl +0 -0
  235. /package/framework/{v0.6.2 → v0.6.3}/core/template/command/gina.tpl +0 -0
  236. /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/env.json +0 -0
  237. /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/manifest.json +0 -0
  238. /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/package.json +0 -0
  239. /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/statics.json +0 -0
  240. /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/templates.json +0 -0
  241. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/client/json/401.json +0 -0
  242. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/client/json/403.json +0 -0
  243. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/client/json/404.json +0 -0
  244. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/server/html/50x.html +0 -0
  245. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/server/json/500.json +0 -0
  246. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/server/json/503.json +0 -0
  247. /package/framework/{v0.6.2 → v0.6.3}/core/template/extensions/logger/config.json +0 -0
  248. /package/framework/{v0.6.2 → v0.6.3}/helpers/console.js +0 -0
  249. /package/framework/{v0.6.2 → v0.6.3}/helpers/context.js +0 -0
  250. /package/framework/{v0.6.2 → v0.6.3}/helpers/data/LICENSE +0 -0
  251. /package/framework/{v0.6.2 → v0.6.3}/helpers/data/README.md +0 -0
  252. /package/framework/{v0.6.2 → v0.6.3}/helpers/data/package.json +0 -0
  253. /package/framework/{v0.6.2 → v0.6.3}/helpers/data/src/main.js +0 -0
  254. /package/framework/{v0.6.2 → v0.6.3}/helpers/dateFormat.js +0 -0
  255. /package/framework/{v0.6.2 → v0.6.3}/helpers/index.js +0 -0
  256. /package/framework/{v0.6.2 → v0.6.3}/helpers/json/LICENSE +0 -0
  257. /package/framework/{v0.6.2 → v0.6.3}/helpers/json/README.md +0 -0
  258. /package/framework/{v0.6.2 → v0.6.3}/helpers/json/package.json +0 -0
  259. /package/framework/{v0.6.2 → v0.6.3}/helpers/json/src/main.js +0 -0
  260. /package/framework/{v0.6.2 → v0.6.3}/helpers/path.js +0 -0
  261. /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/README.md +0 -0
  262. /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/package.json +0 -0
  263. /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/src/api-error.js +0 -0
  264. /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/src/main.js +0 -0
  265. /package/framework/{v0.6.2 → v0.6.3}/helpers/prototypes.js +0 -0
  266. /package/framework/{v0.6.2 → v0.6.3}/helpers/task.js +0 -0
  267. /package/framework/{v0.6.2 → v0.6.3}/helpers/text.js +0 -0
  268. /package/framework/{v0.6.2 → v0.6.3}/lib/admin/package.json +0 -0
  269. /package/framework/{v0.6.2 → v0.6.3}/lib/admin/src/main.js +0 -0
  270. /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/README.md +0 -0
  271. /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/build.json +0 -0
  272. /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/package.json +0 -0
  273. /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/src/dep/jszip.min.js +0 -0
  274. /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/src/main.js +0 -0
  275. /package/framework/{v0.6.2 → v0.6.3}/lib/async/package.json +0 -0
  276. /package/framework/{v0.6.2 → v0.6.3}/lib/async/src/main.js +0 -0
  277. /package/framework/{v0.6.2 → v0.6.3}/lib/audit/package.json +0 -0
  278. /package/framework/{v0.6.2 → v0.6.3}/lib/audit/src/main.js +0 -0
  279. /package/framework/{v0.6.2 → v0.6.3}/lib/audit-store.js +0 -0
  280. /package/framework/{v0.6.2 → v0.6.3}/lib/authn/package.json +0 -0
  281. /package/framework/{v0.6.2 → v0.6.3}/lib/authn/src/lockout.js +0 -0
  282. /package/framework/{v0.6.2 → v0.6.3}/lib/authn/src/main.js +0 -0
  283. /package/framework/{v0.6.2 → v0.6.3}/lib/authn/src/totp.js +0 -0
  284. /package/framework/{v0.6.2 → v0.6.3}/lib/authz-gate/package.json +0 -0
  285. /package/framework/{v0.6.2 → v0.6.3}/lib/authz-gate/src/main.js +0 -0
  286. /package/framework/{v0.6.2 → v0.6.3}/lib/cache/build.json +0 -0
  287. /package/framework/{v0.6.2 → v0.6.3}/lib/cache/package.json +0 -0
  288. /package/framework/{v0.6.2 → v0.6.3}/lib/cache/src/main.js +0 -0
  289. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/aliases.json +0 -0
  290. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/audit/arguments.json +0 -0
  291. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/audit/help.txt +0 -0
  292. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/add.js +0 -0
  293. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/arguments.json +0 -0
  294. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/build.js +0 -0
  295. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/copy.js +0 -0
  296. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/cp.js +0 -0
  297. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/help.js +0 -0
  298. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/help.txt +0 -0
  299. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  300. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/list.js +0 -0
  301. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/man.js +0 -0
  302. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/mcp.js +0 -0
  303. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/oas.js +0 -0
  304. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/openapi.js +0 -0
  305. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/remove.js +0 -0
  306. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/rename.js +0 -0
  307. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/restart.js +0 -0
  308. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/rm.js +0 -0
  309. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/start.js +0 -0
  310. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/status.js +0 -0
  311. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/stop.js +0 -0
  312. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/types.js +0 -0
  313. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/arguments.json +0 -0
  314. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/clear.js +0 -0
  315. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/help.txt +0 -0
  316. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/stats.js +0 -0
  317. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/add.js +0 -0
  318. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/arguments.json +0 -0
  319. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/help.js +0 -0
  320. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/infer.js +0 -0
  321. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/list.js +0 -0
  322. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/migrate.js +0 -0
  323. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/models.js +0 -0
  324. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/remove.js +0 -0
  325. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/rm.js +0 -0
  326. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/test.js +0 -0
  327. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/arguments.json +0 -0
  328. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/help.js +0 -0
  329. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/help.txt +0 -0
  330. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/man.js +0 -0
  331. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/ps.js +0 -0
  332. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/stop.js +0 -0
  333. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/add.js +0 -0
  334. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/arguments.json +0 -0
  335. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/help.txt +0 -0
  336. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/args.js +0 -0
  337. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/namespace.js +0 -0
  338. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  339. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/reference-scan.js +0 -0
  340. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/scaffold.js +0 -0
  341. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/remove.js +0 -0
  342. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/rename.js +0 -0
  343. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/rm.js +0 -0
  344. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/add.js +0 -0
  345. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/get.js +0 -0
  346. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/help.js +0 -0
  347. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/help.txt +0 -0
  348. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/link-dev.js +0 -0
  349. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/list.js +0 -0
  350. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/remove.js +0 -0
  351. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/rm.js +0 -0
  352. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/set.js +0 -0
  353. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/unset.js +0 -0
  354. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/use.js +0 -0
  355. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/add.js +0 -0
  356. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/arguments.json +0 -0
  357. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/build.js +0 -0
  358. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/dot.js +0 -0
  359. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/get.js +0 -0
  360. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/help.js +0 -0
  361. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/help.txt +0 -0
  362. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/link-node-modules.js +0 -0
  363. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/link.js +0 -0
  364. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/list.js +0 -0
  365. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/man.js +0 -0
  366. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/msg.json +0 -0
  367. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/open.js +0 -0
  368. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/remove.js +0 -0
  369. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/reset.js +0 -0
  370. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/restart.js +0 -0
  371. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/set.js +0 -0
  372. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/start.js +0 -0
  373. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/status.js +0 -0
  374. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/stop.js +0 -0
  375. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/tail.js +0 -0
  376. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/update.js +0 -0
  377. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/version.js +0 -0
  378. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/gina-dev.1.md +0 -0
  379. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/gina-framework.1.md +0 -0
  380. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/gina.1.md +0 -0
  381. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/helper.js +0 -0
  382. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/add.js +0 -0
  383. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/arguments.json +0 -0
  384. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/export.js +0 -0
  385. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/help.js +0 -0
  386. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/help.txt +0 -0
  387. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/import.js +0 -0
  388. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/scan.js +0 -0
  389. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/_host.js +0 -0
  390. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/arguments.json +0 -0
  391. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/build.js +0 -0
  392. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/help.js +0 -0
  393. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/help.txt +0 -0
  394. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/list.js +0 -0
  395. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/man.js +0 -0
  396. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/rm.js +0 -0
  397. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/run.js +0 -0
  398. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/index.js +0 -0
  399. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/inspector/help.js +0 -0
  400. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/inspector/help.txt +0 -0
  401. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/inspector/open.js +0 -0
  402. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/man-render.js +0 -0
  403. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/arguments.json +0 -0
  404. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/help.js +0 -0
  405. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/help.txt +0 -0
  406. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/kill.js +0 -0
  407. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/list.js +0 -0
  408. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/msg.json +0 -0
  409. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/help.js +0 -0
  410. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/help.txt +0 -0
  411. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/inc/scan.js +0 -0
  412. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/list.js +0 -0
  413. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/reset.js +0 -0
  414. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/set.js +0 -0
  415. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/add.js +0 -0
  416. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/arguments.json +0 -0
  417. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/backup.js +0 -0
  418. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/build.js +0 -0
  419. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/help.js +0 -0
  420. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/help.txt +0 -0
  421. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/import.js +0 -0
  422. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/list.js +0 -0
  423. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/man.js +0 -0
  424. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/move.js +0 -0
  425. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/remove.js +0 -0
  426. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/rename.js +0 -0
  427. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/restart.js +0 -0
  428. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/restore.js +0 -0
  429. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/rm.js +0 -0
  430. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/start.js +0 -0
  431. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/status.js +0 -0
  432. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/stop.js +0 -0
  433. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/arguments.json +0 -0
  434. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/help.js +0 -0
  435. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/help.txt +0 -0
  436. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/list.js +0 -0
  437. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/remove.js +0 -0
  438. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/set.js +0 -0
  439. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/add.js +0 -0
  440. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/help.js +0 -0
  441. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/help.txt +0 -0
  442. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/link-local.js +0 -0
  443. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/link-production.js +0 -0
  444. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/list.js +0 -0
  445. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/remove.js +0 -0
  446. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/rm.js +0 -0
  447. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/use.js +0 -0
  448. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/arguments.json +0 -0
  449. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/check.js +0 -0
  450. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/help.js +0 -0
  451. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/help.txt +0 -0
  452. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/scan.js +0 -0
  453. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/help.js +0 -0
  454. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/help.txt +0 -0
  455. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/list.js +0 -0
  456. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/man.js +0 -0
  457. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/start.js +0 -0
  458. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/view/add.js +0 -0
  459. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd-status-format/package.json +0 -0
  460. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd-status-format/src/main.js +0 -0
  461. /package/framework/{v0.6.2 → v0.6.3}/lib/collection/README.md +0 -0
  462. /package/framework/{v0.6.2 → v0.6.3}/lib/collection/build.json +0 -0
  463. /package/framework/{v0.6.2 → v0.6.3}/lib/collection/package.json +0 -0
  464. /package/framework/{v0.6.2 → v0.6.3}/lib/collection/src/main.js +0 -0
  465. /package/framework/{v0.6.2 → v0.6.3}/lib/config.js +0 -0
  466. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-config/package.json +0 -0
  467. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-config/src/main.js +0 -0
  468. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-error/package.json +0 -0
  469. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-error/src/main.js +0 -0
  470. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-registry/package.json +0 -0
  471. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-registry/src/main.js +0 -0
  472. /package/framework/{v0.6.2 → v0.6.3}/lib/cron/README.md +0 -0
  473. /package/framework/{v0.6.2 → v0.6.3}/lib/cron/package.json +0 -0
  474. /package/framework/{v0.6.2 → v0.6.3}/lib/cron/src/main.js +0 -0
  475. /package/framework/{v0.6.2 → v0.6.3}/lib/domain/LICENSE +0 -0
  476. /package/framework/{v0.6.2 → v0.6.3}/lib/domain/README.md +0 -0
  477. /package/framework/{v0.6.2 → v0.6.3}/lib/domain/package.json +0 -0
  478. /package/framework/{v0.6.2 → v0.6.3}/lib/domain/src/main.js +0 -0
  479. /package/framework/{v0.6.2 → v0.6.3}/lib/dto/package.json +0 -0
  480. /package/framework/{v0.6.2 → v0.6.3}/lib/dto-pipe/package.json +0 -0
  481. /package/framework/{v0.6.2 → v0.6.3}/lib/dto-pipe/src/main.js +0 -0
  482. /package/framework/{v0.6.2 → v0.6.3}/lib/dto-types/package.json +0 -0
  483. /package/framework/{v0.6.2 → v0.6.3}/lib/dto-types/src/main.js +0 -0
  484. /package/framework/{v0.6.2 → v0.6.3}/lib/generator/index.js +0 -0
  485. /package/framework/{v0.6.2 → v0.6.3}/lib/i18n/package.json +0 -0
  486. /package/framework/{v0.6.2 → v0.6.3}/lib/i18n/src/main.js +0 -0
  487. /package/framework/{v0.6.2 → v0.6.3}/lib/image-build/package.json +0 -0
  488. /package/framework/{v0.6.2 → v0.6.3}/lib/image-build/src/main.js +0 -0
  489. /package/framework/{v0.6.2 → v0.6.3}/lib/index.js +0 -0
  490. /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/LICENSE +0 -0
  491. /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/README.md +0 -0
  492. /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/package.json +0 -0
  493. /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/src/main.js +0 -0
  494. /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-events/package.json +0 -0
  495. /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-events/src/main.js +0 -0
  496. /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-redact/package.json +0 -0
  497. /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-redact/src/main.js +0 -0
  498. /package/framework/{v0.6.2 → v0.6.3}/lib/instrument/package.json +0 -0
  499. /package/framework/{v0.6.2 → v0.6.3}/lib/instrument/src/main.js +0 -0
  500. /package/framework/{v0.6.2 → v0.6.3}/lib/job/package.json +0 -0
  501. /package/framework/{v0.6.2 → v0.6.3}/lib/job/src/main.js +0 -0
  502. /package/framework/{v0.6.2 → v0.6.3}/lib/job-store.js +0 -0
  503. /package/framework/{v0.6.2 → v0.6.3}/lib/json-config-header/package.json +0 -0
  504. /package/framework/{v0.6.2 → v0.6.3}/lib/json-config-header/src/main.js +0 -0
  505. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/README.md +0 -0
  506. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/package.json +0 -0
  507. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/default/index.js +0 -0
  508. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  509. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  510. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/mq/index.js +0 -0
  511. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/mq/listener.js +0 -0
  512. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/helper.js +0 -0
  513. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/main.js +0 -0
  514. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-dispatch/package.json +0 -0
  515. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-dispatch/src/main.js +0 -0
  516. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-http/package.json +0 -0
  517. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-http/src/main.js +0 -0
  518. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-server/package.json +0 -0
  519. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-server/src/main.js +0 -0
  520. /package/framework/{v0.6.2 → v0.6.3}/lib/merge/README.md +0 -0
  521. /package/framework/{v0.6.2 → v0.6.3}/lib/merge/package.json +0 -0
  522. /package/framework/{v0.6.2 → v0.6.3}/lib/metrics/package.json +0 -0
  523. /package/framework/{v0.6.2 → v0.6.3}/lib/metrics/src/main.js +0 -0
  524. /package/framework/{v0.6.2 → v0.6.3}/lib/model.js +0 -0
  525. /package/framework/{v0.6.2 → v0.6.3}/lib/net-locality/package.json +0 -0
  526. /package/framework/{v0.6.2 → v0.6.3}/lib/net-locality/src/main.js +0 -0
  527. /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-filters/README.md +0 -0
  528. /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-filters/package.json +0 -0
  529. /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-filters/src/main.js +0 -0
  530. /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-resolver/package.json +0 -0
  531. /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-resolver/src/main.js +0 -0
  532. /package/framework/{v0.6.2 → v0.6.3}/lib/proc.js +0 -0
  533. /package/framework/{v0.6.2 → v0.6.3}/lib/release-watch/package.json +0 -0
  534. /package/framework/{v0.6.2 → v0.6.3}/lib/release-watch/src/main.js +0 -0
  535. /package/framework/{v0.6.2 → v0.6.3}/lib/render-cache/package.json +0 -0
  536. /package/framework/{v0.6.2 → v0.6.3}/lib/render-cache-store.js +0 -0
  537. /package/framework/{v0.6.2 → v0.6.3}/lib/routing/README.md +0 -0
  538. /package/framework/{v0.6.2 → v0.6.3}/lib/routing/build.json +0 -0
  539. /package/framework/{v0.6.2 → v0.6.3}/lib/routing/package.json +0 -0
  540. /package/framework/{v0.6.2 → v0.6.3}/lib/routing/src/radix.js +0 -0
  541. /package/framework/{v0.6.2 → v0.6.3}/lib/routing-introspect/package.json +0 -0
  542. /package/framework/{v0.6.2 → v0.6.3}/lib/secrets/package.json +0 -0
  543. /package/framework/{v0.6.2 → v0.6.3}/lib/secrets/src/main.js +0 -0
  544. /package/framework/{v0.6.2 → v0.6.3}/lib/session-store.js +0 -0
  545. /package/framework/{v0.6.2 → v0.6.3}/lib/shell.js +0 -0
  546. /package/framework/{v0.6.2 → v0.6.3}/lib/sqlite-driver.js +0 -0
  547. /package/framework/{v0.6.2 → v0.6.3}/lib/state.js +0 -0
  548. /package/framework/{v0.6.2 → v0.6.3}/lib/swig-filters/README.md +0 -0
  549. /package/framework/{v0.6.2 → v0.6.3}/lib/swig-filters/package.json +0 -0
  550. /package/framework/{v0.6.2 → v0.6.3}/lib/swig-filters/src/main.js +0 -0
  551. /package/framework/{v0.6.2 → v0.6.3}/lib/swig-resolver/package.json +0 -0
  552. /package/framework/{v0.6.2 → v0.6.3}/lib/swig-resolver/src/main.js +0 -0
  553. /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/package.json +0 -0
  554. /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/src/loaders/http.js +0 -0
  555. /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/src/loaders/memory.js +0 -0
  556. /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/src/main.js +0 -0
  557. /package/framework/{v0.6.2 → v0.6.3}/lib/url/README.md +0 -0
  558. /package/framework/{v0.6.2 → v0.6.3}/lib/url/index.js +0 -0
  559. /package/framework/{v0.6.2 → v0.6.3}/lib/url/routing.json +0 -0
  560. /package/framework/{v0.6.2 → v0.6.3}/lib/uuid/package.json +0 -0
  561. /package/framework/{v0.6.2 → v0.6.3}/lib/uuid/src/main.js +0 -0
  562. /package/framework/{v0.6.2 → v0.6.3}/lib/validator.js +0 -0
  563. /package/framework/{v0.6.2 → v0.6.3}/lib/watcher/package.json +0 -0
  564. /package/framework/{v0.6.2 → v0.6.3}/lib/watcher/src/main.js +0 -0
  565. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-framing/package.json +0 -0
  566. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-framing/src/main.js +0 -0
  567. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-query/package.json +0 -0
  568. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-query/src/main.js +0 -0
  569. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-session/package.json +0 -0
  570. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-session/src/main.js +0 -0
@@ -62,6 +62,14 @@
62
62
  // ── Constants ──────────────────────────────────────────────────────────
63
63
  /** @type {number} Data poll interval in ms — adjustable via Settings panel */
64
64
  var pollDataMs = 2000;
65
+ /** @constant {number} Liveness-handshake window in ms for an ADOPTED bound
66
+ * channel (#B231): after `_adoptAdvertisedChannel()` binds the
67
+ * statusbar-advertised tab channel (which posts `{type:'request'}` on bind),
68
+ * a `{type:'data'}` reply must land within this window — a stale advert
69
+ * (its tab closed; localStorage outlives tabs) would otherwise strand the
70
+ * window on a silent channel. On expiry the adopt path tears down and hands
71
+ * over to the legacy bundle-global acquisition. */
72
+ var ADOPT_HANDSHAKE_MS = 1500;
65
73
  /** @constant {number} Log poll interval in ms */
66
74
  var POLL_LOGS_MS = 1000;
67
75
  /** @constant {number} Maximum retained log entries before oldest are dropped */
@@ -199,6 +207,20 @@
199
207
  * rendered before a bundle restart) cannot override live data. Null in pure
200
208
  * opener/localStorage mode, which leaves the guard inert. */
201
209
  var _livePid = null;
210
+ /** @type {?string} Normalised webroot of the bundle that established {@link _livePid}
211
+ * (recorded by {@link _noteLivePid}). Lets {@link _isStaleSource} tell a stale
212
+ * same-bundle snapshot (same webroot, older pid) from a payload of a DIFFERENT
213
+ * bundle of a proxy-routed multi-bundle project (different webroot — the monitored
214
+ * tab legitimately crossed a bundle boundary, not staleness). Null until known. (#B205) */
215
+ var _livePidWebroot = null;
216
+ /** @type {?EventSource} Live `/_gina/logs` SSE stream — kept module-level so
217
+ * {@link _followBundleChannels} can close and re-open it against another bundle's
218
+ * base when the monitored tab navigates across bundles. (#B205) */
219
+ var _serverLogsEs = null;
220
+ /** @type {?string} Normalised base path the server-side channels (`/_gina/logs` and
221
+ * the passive `/_gina/agent` stream) are currently pointed at. Compared against each
222
+ * applied payload's webroot by {@link _followBundleChannels}. (#B205) */
223
+ var _channelBase = null;
202
224
  /** @type {boolean} When true, Data tab renders raw JSON instead of a tree */
203
225
  var rawMode = false;
204
226
  /** @type {string} Highest severity level received since last clear (drives log-dot) */
@@ -1568,8 +1590,12 @@
1568
1590
  var raw = localStorage.getItem(CUSTOM_ORDER_KEY);
1569
1591
  if (raw) {
1570
1592
  var arr = JSON.parse(raw);
1571
- // Accept arrays of 1-6 known tab names (tabs may be hidden)
1572
- if (Array.isArray(arr) && arr.length >= 1 && arr.length <= 6) return arr;
1593
+ // Accept 1..N tab names where N is the full preset roster
1594
+ // (tabs may be hidden, so shorter is fine). #B194 this bound
1595
+ // was a stale literal 6: once the roster grew to 8 tabs, a
1596
+ // custom order saved with 7-8 visible tabs was rejected here
1597
+ // on every read and never survived a reload.
1598
+ if (Array.isArray(arr) && arr.length >= 1 && arr.length <= TAB_LAYOUTS.balanced.length) return arr;
1573
1599
  }
1574
1600
  } catch (e) {}
1575
1601
  return null;
@@ -1654,6 +1680,45 @@
1654
1680
  }
1655
1681
  }
1656
1682
 
1683
+ /**
1684
+ * Restore a single hidden tab in custom layout mode — the per-tab
1685
+ * inverse of {@link hideTab}, wired to the dimmed preview pills (see
1686
+ * {@link renderLayoutPreview}): the struck-through pill is the removed
1687
+ * tab's only remaining representative, so clicking it brings the tab
1688
+ * back without touching the others (Reset stays the bulk path).
1689
+ *
1690
+ * Removes the tab from the hidden list, shows its button again at the
1691
+ * END of the visible tabs — hiding dropped it from the saved custom
1692
+ * order and applyTabLayout parks hidden buttons at the FRONT of the
1693
+ * nav (only ordered visible tabs are appended), so the explicit
1694
+ * appendChild is what makes the landing spot deterministic; drag-mode
1695
+ * is active right there for repositioning — then persists the new
1696
+ * order and re-renders the preview.
1697
+ *
1698
+ * Deliberately does NOT activate the restored tab: the user is
1699
+ * mid-layout-editing, so the tab reappearing in the bar and its pill
1700
+ * un-dimming is the whole feedback — no panel switch.
1701
+ *
1702
+ * @inner
1703
+ * @param {string} tabName - Tab name to restore (e.g. 'view', 'forms')
1704
+ */
1705
+ function restoreTab(tabName) {
1706
+ var hidden = getHiddenTabs();
1707
+ var idx = hidden.indexOf(tabName);
1708
+ if (idx === -1) return;
1709
+ hidden.splice(idx, 1);
1710
+ saveHiddenTabs(hidden);
1711
+
1712
+ var btn = qs('.bm-tab[data-tab="' + tabName + '"]');
1713
+ var nav = qs('.bm-tabs');
1714
+ if (btn) {
1715
+ btn.style.display = '';
1716
+ if (nav) nav.appendChild(btn);
1717
+ }
1718
+ saveCustomOrder();
1719
+ renderLayoutPreview('custom');
1720
+ }
1721
+
1657
1722
  /**
1658
1723
  * Restore all hidden tabs in custom layout mode. Shows all tab buttons,
1659
1724
  * clears the hidden list from localStorage, and rebuilds the custom order
@@ -1727,7 +1792,9 @@
1727
1792
  logs: 'var(--text-dim)',
1728
1793
  forms: 'var(--warn)',
1729
1794
  query: 'var(--num)',
1730
- flow: 'var(--accent)'
1795
+ flow: 'var(--accent)',
1796
+ stream: 'var(--str)',
1797
+ events: 'var(--warn)'
1731
1798
  };
1732
1799
 
1733
1800
  /**
@@ -1737,9 +1804,37 @@
1737
1804
  */
1738
1805
  var TAB_PREVIEW_LABELS = {
1739
1806
  data: 'Data', view: 'View', logs: 'Logs',
1740
- forms: 'Forms', query: 'Query', flow: 'Flow'
1807
+ forms: 'Forms', query: 'Query', flow: 'Flow',
1808
+ stream: 'Stream', events: 'Events'
1741
1809
  };
1742
1810
 
1811
+ /**
1812
+ * Resolve a tab's preview-pill label. #B194 — the two newer tabs (stream,
1813
+ * events) were added to every TAB_LAYOUTS preset but not to the preview
1814
+ * maps, so their pills rendered the literal string "undefined". The maps
1815
+ * now carry them, and this fallback humanizes any FUTURE tab that misses
1816
+ * the map (capitalized tab name), so the class cannot fire again.
1817
+ *
1818
+ * @inner
1819
+ * @param {string} tab - Tab name (e.g. 'query')
1820
+ * @returns {string} Display label for the preview pill
1821
+ */
1822
+ function pillLabel(tab) {
1823
+ return TAB_PREVIEW_LABELS[tab] || (tab.charAt(0).toUpperCase() + tab.slice(1));
1824
+ }
1825
+
1826
+ /**
1827
+ * Resolve a tab's preview-pill color, falling back to the neutral dim
1828
+ * color for a tab absent from the map (see {@link pillLabel} — #B194).
1829
+ *
1830
+ * @inner
1831
+ * @param {string} tab - Tab name
1832
+ * @returns {string} CSS color value for the pill's --pill-color
1833
+ */
1834
+ function pillColor(tab) {
1835
+ return TAB_PREVIEW_COLORS[tab] || 'var(--text-dim)';
1836
+ }
1837
+
1743
1838
  /**
1744
1839
  * Render a row of tiny colored pills into `#bm-layout-preview` showing
1745
1840
  * the tab order for the given layout preset. Each pill is color-coded
@@ -1766,16 +1861,22 @@
1766
1861
  var isHidden = hidden.indexOf(tab) !== -1;
1767
1862
  if (!isHidden) {
1768
1863
  if (!visibleFirst) html += '<span class="bm-lp-arrow">\u203A</span>';
1769
- html += '<span class="bm-lp-pill" style="--pill-color:' + TAB_PREVIEW_COLORS[tab] + '">'
1770
- + TAB_PREVIEW_LABELS[tab] + '</span>';
1864
+ html += '<span class="bm-lp-pill" style="--pill-color:' + pillColor(tab) + '">'
1865
+ + pillLabel(tab) + '</span>';
1771
1866
  visibleFirst = false;
1772
1867
  }
1773
1868
  }
1774
- // Append hidden tabs as dimmed pills
1869
+ // Append hidden tabs as dimmed pills \u2014 each is a click-to-restore
1870
+ // control (delegated on #bm-layout-preview): it carries data-tab for
1871
+ // the handler, a native Restore tooltip, and a leading + glyph as
1872
+ // the visible affordance. Visible pills stay a passive readout.
1775
1873
  for (var h = 0; h < hidden.length; h++) {
1776
1874
  if (!visibleFirst) html += '<span class="bm-lp-arrow bm-lp-arrow-dim">\u203A</span>';
1777
- html += '<span class="bm-lp-pill bm-lp-pill-hidden" style="--pill-color:' + TAB_PREVIEW_COLORS[hidden[h]] + '">'
1778
- + TAB_PREVIEW_LABELS[hidden[h]] + '</span>';
1875
+ html += '<span class="bm-lp-pill bm-lp-pill-hidden" data-tab="' + hidden[h] + '"'
1876
+ + ' title="Restore ' + pillLabel(hidden[h]) + ' tab"'
1877
+ + ' style="--pill-color:' + pillColor(hidden[h]) + '">'
1878
+ + '<span class="bm-lp-pill-add">+</span>'
1879
+ + pillLabel(hidden[h]) + '</span>';
1779
1880
  visibleFirst = false;
1780
1881
  }
1781
1882
  el.innerHTML = html;
@@ -2221,7 +2322,12 @@
2221
2322
  /**
2222
2323
  * #QI2 — Fetch live index data from the /_gina/indexes endpoint.
2223
2324
  * Called when the Query tab renders queries with N/A index badges.
2224
- * On success, caches the result and re-renders the Query tab.
2325
+ * On success, caches the result and re-renders the Query tab's tree
2326
+ * root (`#tree-query`) — the container {@link renderTab} owns. It must
2327
+ * never replace the scroll wrapper's children instead: `#tree-query`
2328
+ * lives INSIDE the wrapper, so a wrapper-level write destroys it and
2329
+ * every later `renderTab('query')` bails on the missing container —
2330
+ * freezing the Query pane and badge until the Inspector reloads (#B222).
2225
2331
  *
2226
2332
  * @inner
2227
2333
  */
@@ -2241,13 +2347,27 @@
2241
2347
  if (xhr.status === 200) {
2242
2348
  try {
2243
2349
  _liveIndexes = JSON.parse(xhr.responseText);
2244
- // Re-render query tab if we have queries
2245
- if (_lastQueries) {
2246
- var el = document.getElementById('tab-query');
2247
- if (el) {
2248
- var content = el.querySelector('.bm-scroll-area');
2249
- if (content) content.innerHTML = renderQueryContent(_lastQueries);
2250
- }
2350
+ // Re-render query tab if we have queries — into
2351
+ // #tree-query, the container renderTab() owns (#B222).
2352
+ // Writing the scroll wrapper here instead destroyed
2353
+ // #tree-query (a child of the wrapper), after which
2354
+ // every later renderTab('query') bailed on the missing
2355
+ // container and the Query pane froze until reload.
2356
+ // #B225 — the queries derive from the live payload
2357
+ // exactly as renderTab('query') does (reveal swap
2358
+ // included), never from the module query cache: the
2359
+ // cache survives overlay eras that ended while the
2360
+ // Query tab was inactive, so a cached repaint after
2361
+ // the forced refetch resurrected dead queries and
2362
+ // rewrote the badge over the truthful one.
2363
+ var src = (_revealActive && _revealedData) ? _revealedData : ginaData;
2364
+ var u = (src && src.user) || {};
2365
+ var hasXhr = typeof u['data-xhr'] !== 'undefined';
2366
+ var queryData = hasXhr && u['data-xhr'] && u['data-xhr'].queries
2367
+ ? u['data-xhr'].queries : u.queries;
2368
+ if (queryData && queryData.length) {
2369
+ var panel = qs('#tree-query');
2370
+ if (panel) panel.innerHTML = renderQueryContent(queryData);
2251
2371
  }
2252
2372
  } catch (e) { _liveIndexes = { connectors: {} }; }
2253
2373
  }
@@ -3573,6 +3693,101 @@
3573
3693
  return true;
3574
3694
  }
3575
3695
 
3696
+ /**
3697
+ * Adopt the statusbar-advertised tab channel when no usable `?ch=` was
3698
+ * given (#B231).
3699
+ *
3700
+ * Every dev page's statusbar advertises its per-tab channel id in
3701
+ * `localStorage['__gina_last_tab_ch']` on each publish, so an embedded
3702
+ * Inspector opened WITHOUT `?ch=` (direct URL, bookmark, a window predating
3703
+ * bound mode) can still bind to the most-recently-published tab instead of
3704
+ * falling back to the bundle-global channels (opener/localStorage polling +
3705
+ * the passive `/_gina/agent` SSE), where ANY background request to the
3706
+ * bundle overwrites the page-scoped popin/XHR overlay within seconds.
3707
+ *
3708
+ * A liveness handshake guards the adopt: `setupBoundChannel()` posts
3709
+ * `{type:'request'}` on bind; if no `{type:'data'}` reply lands within
3710
+ * {@link ADOPT_HANDSHAKE_MS} (stale advert — its tab is closed, and
3711
+ * localStorage outlives tabs), the bound channel AND the `/_gina/logs`
3712
+ * stream the caller opened alongside it are torn down, and `onDead` runs
3713
+ * the legacy acquisition (leaving the logs stream open would double-deliver
3714
+ * log entries once the legacy path's passive agent stream attaches).
3715
+ *
3716
+ * Multi-tab semantics: adopts the LAST tab that published (last-writer-wins
3717
+ * on the advert) — a deliberate approximation of "the tab the user is on",
3718
+ * strictly narrower than the bundle-global fallback it replaces.
3719
+ *
3720
+ * @inner
3721
+ * @param {function} onDead - Legacy acquisition to run when the adopted
3722
+ * channel never delivers (the init's `_startLegacyAcquisition`).
3723
+ * @returns {boolean} `true` when an advertised channel was adopted (bound
3724
+ * mode claimed; the handshake timer is armed).
3725
+ */
3726
+ function _adoptAdvertisedChannel(onDead) {
3727
+ var ad = null;
3728
+ try { ad = localStorage.getItem('__gina_last_tab_ch'); } catch (e) { ad = null; }
3729
+ if (!ad || !setupBoundChannel(ad)) return false;
3730
+ setTimeout(function () {
3731
+ // Proven live (a data frame arrived) or re-claimed by another mode.
3732
+ if (source !== 'broadcast' || _bcLatest !== null) return;
3733
+ try { if (_boundChannel) _boundChannel.close(); } catch (e) {}
3734
+ _boundChannel = null;
3735
+ if (_serverLogsEs) {
3736
+ try { _serverLogsEs.close(); } catch (e) {}
3737
+ _serverLogsEs = null;
3738
+ }
3739
+ source = null;
3740
+ if (typeof onDead === 'function') onDead();
3741
+ }, ADOPT_HANDSHAKE_MS);
3742
+ return true;
3743
+ }
3744
+
3745
+ /**
3746
+ * Render the footer data-source mode badge (#B231).
3747
+ *
3748
+ * Surfaces WHICH kind of channel feeds the data tabs, so a degraded mode
3749
+ * is visible instead of silent:
3750
+ * - `bound` — per-tab statusbar channel (#INS15): page-scoped, immune to
3751
+ * other tabs' / background renders.
3752
+ * - `agent` — explicit `?target=` bundle stream (standalone mode).
3753
+ * - `global` — legacy fallback (opener/localStorage polling + the passive
3754
+ * bundle-wide `/_gina/agent` SSE): ANY request to the bundle can
3755
+ * overwrite the data tabs — warn-tinted, and the tooltip points at the
3756
+ * statusbar link that yields bound mode.
3757
+ *
3758
+ * Called from `pollData()` (every tick + every bound-channel apply) and at
3759
+ * the end of the init acquisition, so a mode transition (e.g. an adopted
3760
+ * channel handing over to the legacy fallback) surfaces within one tick.
3761
+ *
3762
+ * @inner
3763
+ */
3764
+ function updateSourceModeBadge() {
3765
+ var el = qs('#bm-source-mode');
3766
+ if (!el) return;
3767
+ var mode = null;
3768
+ var cls = 'bm-source-mode';
3769
+ var tip = '';
3770
+ if (source === 'agent') {
3771
+ mode = 'agent';
3772
+ tip = 'Data from the ?target= bundle stream (/_gina/agent).';
3773
+ } else if (source === 'broadcast') {
3774
+ mode = 'bound';
3775
+ tip = 'Data bound to one page tab (statusbar channel). Other tabs and background requests cannot overwrite it.';
3776
+ } else if (source === 'localStorage' || (source && typeof source === 'object')) {
3777
+ mode = 'global';
3778
+ cls += ' bm-source-mode-warn';
3779
+ tip = 'Bundle-global fallback: any tab or background request to this bundle can overwrite the data tabs. Open the Inspector from the page statusbar link to get bound (per-tab) mode.';
3780
+ }
3781
+ if (mode === null) {
3782
+ el.hidden = true;
3783
+ return;
3784
+ }
3785
+ el.hidden = false;
3786
+ el.textContent = mode;
3787
+ el.className = cls;
3788
+ el.title = tip;
3789
+ }
3790
+
3576
3791
  // ── Settings — environment info + memory gauge ────────────────────────
3577
3792
 
3578
3793
  /**
@@ -3648,17 +3863,53 @@
3648
3863
  } catch (e) { return null; }
3649
3864
  }
3650
3865
 
3866
+ /**
3867
+ * Extract the bundle webroot from a `__ginaData` payload, reading
3868
+ * `gina.environment` first then falling back to `user.environment`
3869
+ * (mirrors {@link _gdPid}). Both render delegates emit it.
3870
+ *
3871
+ * @inner
3872
+ * @param {?Object} gd A parsed `__ginaData` payload.
3873
+ * @returns {?string} The webroot (e.g. `'/'` or `'/admin'`), or null when absent.
3874
+ */
3875
+ function _gdWebroot(gd) {
3876
+ try {
3877
+ var e = (gd && gd.gina && gd.gina.environment)
3878
+ || (gd && gd.user && gd.user.environment) || null;
3879
+ var w = e ? e.webroot : null;
3880
+ return (typeof w === 'string') ? w : null;
3881
+ } catch (e) { return null; }
3882
+ }
3883
+
3884
+ /**
3885
+ * Normalise a webroot/base path for comparison and URL building: strip
3886
+ * every trailing slash so `'/'` and `''` both mean the root and
3887
+ * `'/admin/'` equals `'/admin'`. Non-strings normalise to null (unknown).
3888
+ *
3889
+ * @inner
3890
+ * @param {?string} w A webroot or base path.
3891
+ * @returns {?string} The normalised base (`''` for the root), or null.
3892
+ */
3893
+ function _normWebroot(w) {
3894
+ return (typeof w === 'string') ? w.replace(/\/+$/, '') : null;
3895
+ }
3896
+
3651
3897
  /**
3652
3898
  * Record the live bundle pid from an agent-delivered payload. The agent
3653
3899
  * (SSE/WS) channel always reflects the running process, so its pid is the
3654
3900
  * freshness reference {@link _isStaleSource} compares polled snapshots against.
3901
+ * Also records which bundle the pid belongs to ({@link _livePidWebroot}) so
3902
+ * the guard can tell a restart from a bundle crossing (#B205).
3655
3903
  *
3656
3904
  * @inner
3657
3905
  * @param {?Object} gd A parsed `__ginaData` payload from the agent channel.
3658
3906
  */
3659
3907
  function _noteLivePid(gd) {
3660
3908
  var p = _gdPid(gd);
3661
- if (p) _livePid = p;
3909
+ if (p) {
3910
+ _livePid = p;
3911
+ _livePidWebroot = _normWebroot(_gdWebroot(gd));
3912
+ }
3662
3913
  }
3663
3914
 
3664
3915
  /**
@@ -3671,6 +3922,13 @@
3671
3922
  * Inert (returns false) until an agent pid is known, preserving the pure
3672
3923
  * opener/localStorage behaviour.
3673
3924
  *
3925
+ * A pid mismatch only means "stale" WITHIN one bundle: in a proxy-routed
3926
+ * multi-bundle project, a payload from another bundle (different webroot,
3927
+ * necessarily a different process/pid) is the monitored tab legitimately
3928
+ * crossing a bundle boundary — it must pass so the Inspector can follow
3929
+ * ({@link _followBundleChannels}). Only same-webroot pid mismatches are
3930
+ * treated as stale (#B205).
3931
+ *
3674
3932
  * @inner
3675
3933
  * @param {?Object} gd The polled `__ginaData` payload.
3676
3934
  * @returns {boolean} True when `gd` belongs to a different (stale) process.
@@ -3678,7 +3936,12 @@
3678
3936
  function _isStaleSource(gd) {
3679
3937
  if (!_livePid) return false;
3680
3938
  var p = _gdPid(gd);
3681
- return !!(p && p !== _livePid);
3939
+ if (!p || p === _livePid) return false;
3940
+ // #B205 — a different pid under a DIFFERENT webroot is another bundle,
3941
+ // not a stale snapshot of this one: let it through.
3942
+ var wr = _normWebroot(_gdWebroot(gd));
3943
+ if (wr !== null && _livePidWebroot !== null && wr !== _livePidWebroot) return false;
3944
+ return true;
3682
3945
  }
3683
3946
 
3684
3947
  /**
@@ -3693,10 +3956,15 @@
3693
3956
  * If the source is lost (e.g. bundle restart killed the opener page),
3694
3957
  * attempts to re-acquire it via {@link tryOpener} or {@link tryLocalStorage}.
3695
3958
  *
3959
+ * Each applied payload also drives {@link _followBundleChannels}, which
3960
+ * re-points the server-side SSE channels when the monitored tab crossed
3961
+ * onto another bundle of the project (#B205).
3962
+ *
3696
3963
  * @inner
3697
3964
  */
3698
3965
  function pollData() {
3699
3966
  try {
3967
+ updateSourceModeBadge();
3700
3968
  var gd;
3701
3969
  if (source === 'agent') {
3702
3970
  // Agent mode — data is pushed via SSE; nothing to poll.
@@ -3740,6 +4008,12 @@
3740
4008
  lastGdStr = str;
3741
4009
  ginaData = gd;
3742
4010
  var env = (gd.user && gd.user.environment) || {};
4011
+ // #B205 — follow the monitored tab across bundles: when this payload
4012
+ // belongs to another bundle (different webroot), re-point the
4013
+ // server-side channels at it. Hitting its Inspector endpoints also
4014
+ // activates that bundle's dev capture, so Flow/Query data starts
4015
+ // flowing for its pages.
4016
+ _followBundleChannels(gd);
3743
4017
  qs('#bm-label').textContent = (env.bundle || '?') + '@' + (env.env || '?');
3744
4018
  qs('#bm-dot').className = 'bm-dot ok';
3745
4019
  // Update window title with the inspected page URL
@@ -4141,20 +4415,36 @@
4141
4415
  * log entries from the bundle process. Entries are merged into the same logs[]
4142
4416
  * array used by client-side console capture and engine.io push.
4143
4417
  *
4418
+ * At most one stream is live: a re-point ({@link _followBundleChannels})
4419
+ * closes the previous stream before connecting to the new bundle (#B205).
4420
+ *
4144
4421
  * @inner
4145
4422
  * @private
4423
+ * @param {string} [baseOverride] Explicit bundle base to connect to —
4424
+ * passed by the bundle-follow re-point; omitted at init, where the
4425
+ * shared resolver derives the base.
4146
4426
  */
4147
- function tryServerLogs() {
4427
+ function tryServerLogs(baseOverride) {
4148
4428
  if (typeof EventSource === 'undefined') return;
4149
4429
 
4150
4430
  // Derive the SSE URL via the shared 3-fallback resolver so /_gina/logs
4151
4431
  // reaches the monitored bundle in proxy-routed multi-bundle setups (was a
4152
4432
  // bare pathname strip that misrouted to the proxy's default bundle).
4153
4433
  var base = resolveBundleBase();
4434
+ // #B205 — bundle-follow re-points pass the target base explicitly.
4435
+ if (typeof baseOverride === 'string') base = baseOverride;
4154
4436
  var url = base + '/_gina/logs';
4155
4437
 
4438
+ // #B205 — single live stream: close the previous one on re-point.
4439
+ if (_serverLogsEs) {
4440
+ try { _serverLogsEs.close(); } catch (e) {}
4441
+ _serverLogsEs = null;
4442
+ }
4443
+
4156
4444
  try {
4157
4445
  var es = new EventSource(url);
4446
+ _serverLogsEs = es;
4447
+ _channelBase = base;
4158
4448
  es.onmessage = function (ev) {
4159
4449
  if (paused) return;
4160
4450
  try {
@@ -4172,6 +4462,46 @@
4172
4462
  } catch (e) {}
4173
4463
  }
4174
4464
 
4465
+ // ── Bundle-follow: re-point server channels on bundle crossing (#B205) ──
4466
+
4467
+ /**
4468
+ * Follow the monitored tab across the bundles of a proxy-routed
4469
+ * multi-bundle project. Every applied `__ginaData` payload names its
4470
+ * bundle's webroot; when it differs from the base the server-side channels
4471
+ * are pointed at ({@link _channelBase}), the live `/_gina/logs` SSE and/or
4472
+ * the passive `/_gina/agent` SSE are closed and re-opened against the new
4473
+ * bundle's base, so that:
4474
+ *
4475
+ * - server logs stream from the bundle actually serving the monitored
4476
+ * page (they previously stayed pinned to the open-time bundle), and
4477
+ * - the new bundle's dev capture activates: its Inspector endpoints latch
4478
+ * the per-process activation flag that gates the request timeline
4479
+ * (Flow tab) and the query log (Query tab). Without the re-point, a
4480
+ * bundle the Inspector was never opened from kept rendering with no
4481
+ * flow/queries — the Flow tab showed "No timeline data for this
4482
+ * request." for every page that bundle served.
4483
+ *
4484
+ * The page that evidences the crossing rendered BEFORE the new bundle's
4485
+ * capture activated, so its own timeline is unavoidably absent — Flow and
4486
+ * Query data appear from the next render on. Agent mode (`?target=`) is an
4487
+ * explicit binding and is never re-pointed.
4488
+ *
4489
+ * @inner
4490
+ * @param {?Object} gd The just-applied `__ginaData` payload.
4491
+ */
4492
+ function _followBundleChannels(gd) {
4493
+ if (source === 'agent') return;
4494
+ var wr = _normWebroot(_gdWebroot(gd));
4495
+ if (wr === null || wr === _channelBase) return;
4496
+ var hadPassive = !!_passiveAgentEs;
4497
+ var hadLogs = !!_serverLogsEs;
4498
+ // Adopt the new base even when no channel is open (e.g. EventSource
4499
+ // unsupported), so the comparison above stays meaningful.
4500
+ _channelBase = wr;
4501
+ if (hadPassive) tryAgentPassive(wr);
4502
+ if (hadLogs) tryServerLogs(wr);
4503
+ }
4504
+
4175
4505
  // ── Remote data source via /_gina/agent SSE ─────────────────────────
4176
4506
 
4177
4507
  /**
@@ -4444,10 +4774,13 @@
4444
4774
  * passive mode succeeds `tryServerLogs()` is skipped to avoid duplicates.
4445
4775
  *
4446
4776
  * @inner
4777
+ * @param {string} [baseOverride] Explicit bundle base to connect to —
4778
+ * passed by the bundle-follow re-point ({@link _followBundleChannels})
4779
+ * and the refresh-button reopen; omitted at init.
4447
4780
  * @returns {boolean} `true` when a subscription was opened, `false` when
4448
4781
  * the environment is unsupported or the URL cannot be derived.
4449
4782
  */
4450
- function tryAgentPassive() {
4783
+ function tryAgentPassive(baseOverride) {
4451
4784
  if (typeof EventSource === 'undefined') return false;
4452
4785
  // Agent mode already covers data + logs via the primary tryAgent stream.
4453
4786
  if (source === 'agent') return false;
@@ -4457,11 +4790,20 @@
4457
4790
  // tryAgentPassive only runs when source !== 'agent' (i.e. no ?target=),
4458
4791
  // so this falls through to the opener-pathname fallback as before.
4459
4792
  var base = resolveBundleBase();
4793
+ // #B205 — bundle-follow re-points pass the target base explicitly.
4794
+ if (typeof baseOverride === 'string') base = baseOverride;
4460
4795
  var url = base + '/_gina/agent';
4461
4796
 
4797
+ // #B205 — single live stream: close the previous one on re-point.
4798
+ if (_passiveAgentEs) {
4799
+ try { _passiveAgentEs.close(); } catch (e) {}
4800
+ _passiveAgentEs = null;
4801
+ }
4802
+
4462
4803
  try {
4463
4804
  var es = new EventSource(url);
4464
4805
  _passiveAgentEs = es;
4806
+ _channelBase = base;
4465
4807
 
4466
4808
  es.addEventListener('data', function (ev) {
4467
4809
  try {
@@ -4708,6 +5050,20 @@
4708
5050
  resetBtn.addEventListener('click', function () { restoreAllTabs(); });
4709
5051
  }
4710
5052
 
5053
+ // Per-tab restore — clicking a dimmed (hidden) preview pill restores
5054
+ // just that tab. Delegated on the container: the pill row is rebuilt
5055
+ // via innerHTML on every renderLayoutPreview(), so per-pill listeners
5056
+ // would not survive; the container does.
5057
+ var previewEl = qs('#bm-layout-preview');
5058
+ if (previewEl) {
5059
+ previewEl.addEventListener('click', function (e) {
5060
+ var pill = e.target && e.target.closest ? e.target.closest('.bm-lp-pill-hidden') : null;
5061
+ if (!pill) return;
5062
+ var name = pill.getAttribute('data-tab');
5063
+ if (name) restoreTab(name);
5064
+ });
5065
+ }
5066
+
4711
5067
  // ── Tab drag-to-reorder (custom layout mode) ──────────────────────
4712
5068
  setupTabDrag();
4713
5069
  }
@@ -5293,10 +5649,20 @@
5293
5649
 
5294
5650
  // Query tab toolbar — filter and search handlers
5295
5651
  function rerenderQueries() {
5296
- if (!_lastQueries) return;
5652
+ // #B225 — derive from the live payload exactly as renderTab('query')
5653
+ // does (reveal swap included), never from the module query cache:
5654
+ // the cache survives overlay eras that ended while the Query tab
5655
+ // was inactive, so a cached repaint resurrects dead queries and
5656
+ // rewrites the badge over the truthful one.
5657
+ var src = (_revealActive && _revealedData) ? _revealedData : ginaData;
5658
+ var u = (src && src.user) || {};
5659
+ var hasXhr = typeof u['data-xhr'] !== 'undefined';
5660
+ var queryData = hasXhr && u['data-xhr'] && u['data-xhr'].queries
5661
+ ? u['data-xhr'].queries : u.queries;
5662
+ if (!queryData || !queryData.length) return;
5297
5663
  var panel = qs('#tree-query');
5298
5664
  if (panel) {
5299
- panel.innerHTML = renderQueryContent(_lastQueries);
5665
+ panel.innerHTML = renderQueryContent(queryData);
5300
5666
  }
5301
5667
  }
5302
5668
 
@@ -5441,11 +5807,19 @@
5441
5807
  }
5442
5808
 
5443
5809
  // Reopen the passive /_gina/agent stream if it has closed.
5444
- if (source !== 'agent'
5810
+ // #B225 never in bound mode: a broadcast-driven window takes
5811
+ // its data from the statusbar publisher (#INS15), and a passive
5812
+ // stream opened here applies bundle-wide payloads over the
5813
+ // page-scoped ones (the measured badge blink at every later XHR
5814
+ // overlay); a later _noteLivePid could also retro-arm the leak
5815
+ // on bound applies.
5816
+ if (source !== 'agent' && source !== 'broadcast'
5445
5817
  && (!_passiveAgentEs || _passiveAgentEs.readyState === 2)) {
5446
5818
  try { if (_passiveAgentEs) _passiveAgentEs.close(); } catch (e) {}
5447
5819
  _passiveAgentEs = null;
5448
- tryAgentPassive();
5820
+ // #B205 — keep the re-opened stream on the currently-followed
5821
+ // bundle instead of re-deriving from the opener's deep path.
5822
+ tryAgentPassive(_channelBase !== null ? _channelBase : undefined);
5449
5823
  }
5450
5824
 
5451
5825
  if (ev.shiftKey) {
@@ -5487,10 +5861,31 @@
5487
5861
  // it severs window.opener). Server logs still arrive via the SSE.
5488
5862
  var _boundCh = (typeof URLSearchParams !== 'undefined')
5489
5863
  ? new URLSearchParams(window.location.search).get('ch') : null;
5490
- if (setupBoundChannel(_boundCh)) {
5864
+ if (setupBoundChannel(_boundCh)
5865
+ // #B231 — no usable ?ch=: adopt the statusbar's advertised tab
5866
+ // channel (bound mode) instead of the bundle-global fallback; a
5867
+ // dead advert hands over to _startLegacyAcquisition via the
5868
+ // liveness-handshake timer inside _adoptAdvertisedChannel().
5869
+ || _adoptAdvertisedChannel(_startLegacyAcquisition)) {
5491
5870
  qs('#bm-no-source').classList.add('hidden');
5492
5871
  tryServerLogs(); // server logs only; data via the bound channel
5493
5872
  } else {
5873
+ _startLegacyAcquisition();
5874
+ }
5875
+ updateSourceModeBadge();
5876
+
5877
+ /**
5878
+ * Legacy bundle-global acquisition — opener/localStorage polling +
5879
+ * the passive `/_gina/agent` SSE (+ engine.io + the "No source"
5880
+ * connect form). Runs when neither an explicit `?ch=` nor an
5881
+ * adopted advertised channel yields bound mode — and again from
5882
+ * `_adoptAdvertisedChannel`'s handshake timer when an adopted
5883
+ * channel turns out dead (#B231). Body unchanged from the
5884
+ * pre-#B231 inline `else` block; only the connect-form wiring
5885
+ * moved into the nested `_wireConnectForm()` below.
5886
+ * @inner
5887
+ */
5888
+ function _startLegacyAcquisition() {
5494
5889
  var ok = tryOpener() || tryLocalStorage();
5495
5890
  if (!ok) {
5496
5891
  hideLoader();
@@ -5499,6 +5894,18 @@
5499
5894
  qs('#bm-label').textContent = 'No source';
5500
5895
  }
5501
5896
 
5897
+ _wireConnectForm();
5898
+
5899
+ tryEngineIO();
5900
+ // Subscribe to /_gina/agent in parallel with opener polling. Opener
5901
+ // polling alone misses SPA (pushState) and XHR renders because
5902
+ // those paths never rewrite window.__ginaData. The passive agent
5903
+ // stream delivers pushed data + log frames from those renders.
5904
+ // It also supersedes tryServerLogs() (same `event: log` frames).
5905
+ var _passiveAgentActive = tryAgentPassive();
5906
+ if (!_passiveAgentActive) tryServerLogs();
5907
+ updateSourceModeBadge();
5908
+
5502
5909
  /**
5503
5910
  * Manual connect form on the "No source" overlay.
5504
5911
  *
@@ -5512,38 +5919,31 @@
5512
5919
  *
5513
5920
  * @inner
5514
5921
  */
5515
- var connectForm = qs('#bm-connect-form');
5516
- if (connectForm) {
5517
- connectForm.addEventListener('submit', function (ev) {
5518
- ev.preventDefault();
5519
- var urlInput = qs('#bm-connect-url');
5520
- var raw = (urlInput.value || '').trim();
5521
- if (!raw) return;
5522
- // Normalise: add scheme if missing, strip trailing slash
5523
- if (!/^https?:\/\//i.test(raw)) raw = 'http://' + raw;
5524
- raw = raw.replace(/\/+$/, '');
5525
- // Navigate with ?target= to activate agent mode
5526
- var loc = window.location.pathname + '?target=' + encodeURIComponent(raw);
5527
- // #INS9b append the optional inspector key (?key=) for an
5528
- // auth-gated agent endpoint. Kept in the URL only (ephemeral);
5529
- // never persisted to localStorage.
5530
- var keyInput = qs('#bm-connect-key');
5531
- var keyRaw = keyInput ? (keyInput.value || '').trim() : '';
5532
- if (keyRaw) {
5533
- loc += '&key=' + encodeURIComponent(keyRaw);
5534
- }
5535
- window.location.href = loc;
5536
- });
5922
+ function _wireConnectForm() {
5923
+ var connectForm = qs('#bm-connect-form');
5924
+ if (connectForm) {
5925
+ connectForm.addEventListener('submit', function (ev) {
5926
+ ev.preventDefault();
5927
+ var urlInput = qs('#bm-connect-url');
5928
+ var raw = (urlInput.value || '').trim();
5929
+ if (!raw) return;
5930
+ // Normalise: add scheme if missing, strip trailing slash
5931
+ if (!/^https?:\/\//i.test(raw)) raw = 'http://' + raw;
5932
+ raw = raw.replace(/\/+$/, '');
5933
+ // Navigate with ?target= to activate agent mode
5934
+ var loc = window.location.pathname + '?target=' + encodeURIComponent(raw);
5935
+ // #INS9b append the optional inspector key (?key=) for an
5936
+ // auth-gated agent endpoint. Kept in the URL only (ephemeral);
5937
+ // never persisted to localStorage.
5938
+ var keyInput = qs('#bm-connect-key');
5939
+ var keyRaw = keyInput ? (keyInput.value || '').trim() : '';
5940
+ if (keyRaw) {
5941
+ loc += '&key=' + encodeURIComponent(keyRaw);
5942
+ }
5943
+ window.location.href = loc;
5944
+ });
5945
+ }
5537
5946
  }
5538
-
5539
- tryEngineIO();
5540
- // Subscribe to /_gina/agent in parallel with opener polling. Opener
5541
- // polling alone misses SPA (pushState) and XHR renders because
5542
- // those paths never rewrite window.__ginaData. The passive agent
5543
- // stream delivers pushed data + log frames from those renders.
5544
- // It also supersedes tryServerLogs() (same `event: log` frames).
5545
- var _passiveAgentActive = tryAgentPassive();
5546
- if (!_passiveAgentActive) tryServerLogs();
5547
5947
  }
5548
5948
  }
5549
5949