gina 0.5.5 → 0.5.6-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/framework/v0.5.6-alpha.2/VERSION +1 -0
  2. package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/inspector/index.html +10 -0
  3. package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +140 -6
  4. package/framework/v0.5.6-alpha.2/core/connectors/ai/index.js +530 -0
  5. package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/controller/controller.js +8 -1
  6. package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/controller/controller.render-json.js +5 -0
  7. package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/controller/controller.render-nunjucks.js +4 -0
  8. package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/controller/controller.render-swig.js +9 -0
  9. package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/controller/inspector-window-emit.js +4 -0
  10. package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/gna.js +21 -0
  11. package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/server.isaac.js +10 -0
  12. package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/server.js +6 -0
  13. package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/conf/settings.json +11 -0
  14. package/framework/{v0.5.5 → v0.5.6-alpha.2}/package.json +1 -1
  15. package/gna.js +4 -4
  16. package/llms.txt +2 -0
  17. package/package.json +3 -3
  18. package/framework/v0.5.5/VERSION +0 -1
  19. package/framework/v0.5.5/core/connectors/ai/index.js +0 -183
  20. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/AUTHORS +0 -0
  21. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/LICENSE +0 -0
  22. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/html/nolayout.html +0 -0
  23. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/html/static.html +0 -0
  24. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/img/android-chrome-192x192.png +0 -0
  25. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/img/android-chrome-512x512.png +0 -0
  26. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/img/apple-touch-icon.png +0 -0
  27. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/img/favicon-16x16.png +0 -0
  28. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/img/favicon-32x32.png +0 -0
  29. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/img/favicon.ico +0 -0
  30. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/README.md +0 -0
  31. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  32. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  33. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  34. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  35. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  36. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  37. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  38. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  39. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  40. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  41. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  42. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  43. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -0
  44. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -0
  45. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  46. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  47. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  48. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  49. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  50. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/config.js +0 -0
  51. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/ai/lib/connector.js +0 -0
  52. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/couchbase/index.js +0 -0
  53. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/couchbase/lib/connector.js +0 -0
  54. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  55. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  56. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/couchbase/lib/n1ql.js +0 -0
  57. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/couchbase/lib/session-store.js +0 -0
  58. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  59. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  60. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/mongodb/index.js +0 -0
  61. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/mongodb/lib/connector.js +0 -0
  62. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  63. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/mongodb/lib/session-store.js +0 -0
  64. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/mysql/index.js +0 -0
  65. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/mysql/lib/connector.js +0 -0
  66. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/postgresql/index.js +0 -0
  67. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/postgresql/lib/connector.js +0 -0
  68. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/redis/index.js +0 -0
  69. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/redis/lib/session-store.js +0 -0
  70. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/scylladb/index.js +0 -0
  71. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/scylladb/lib/connector.js +0 -0
  72. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/scylladb/lib/session-store.js +0 -0
  73. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/sql-parser.js +0 -0
  74. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/sqlite/index.js +0 -0
  75. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/sqlite/lib/connector.js +0 -0
  76. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/connectors/sqlite/lib/session-store.js +0 -0
  77. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/content.encoding +0 -0
  78. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/controller/controller.framework.js +0 -0
  79. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/controller/controller.render-nunjucks-async.js +0 -0
  80. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/controller/controller.render-stream.js +0 -0
  81. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/controller/controller.render-swig-async.js +0 -0
  82. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/controller/controller.render-v1.js +0 -0
  83. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/controller/index.js +0 -0
  84. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/deps/busboy-1.6.0/LICENSE +0 -0
  85. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/deps/busboy-1.6.0/README.md +0 -0
  86. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  87. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  88. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  89. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  90. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/deps/busboy-1.6.0/package.json +0 -0
  91. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  92. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  93. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/deps/streamsearch-1.1.0/package.json +0 -0
  94. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/dev/index.js +0 -0
  95. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/dev/lib/class.js +0 -0
  96. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/dev/lib/factory.js +0 -0
  97. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/dev/lib/tools.js +0 -0
  98. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/locales/README.md +0 -0
  99. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/locales/currency.json +0 -0
  100. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/locales/dist/language/en.json +0 -0
  101. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/locales/dist/language/fr.json +0 -0
  102. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/locales/dist/region/en.json +0 -0
  103. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/locales/dist/region/fr.json +0 -0
  104. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/locales/index.js +0 -0
  105. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/mime.types +0 -0
  106. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/model/entity.js +0 -0
  107. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/model/index.js +0 -0
  108. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/model/template/entityFactory.js +0 -0
  109. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/model/template/index.js +0 -0
  110. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/README.md +0 -0
  111. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/index.js +0 -0
  112. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/csrf/README.md +0 -0
  113. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/csrf/package.json +0 -0
  114. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/csrf/src/main.js +0 -0
  115. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/README.md +0 -0
  116. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/coep/README.md +0 -0
  117. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/coep/package.json +0 -0
  118. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  119. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/coop/README.md +0 -0
  120. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/coop/package.json +0 -0
  121. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  122. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/corp/README.md +0 -0
  123. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/corp/package.json +0 -0
  124. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  125. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/csp/README.md +0 -0
  126. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/csp/package.json +0 -0
  127. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  128. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  129. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  130. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  131. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  132. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  133. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  134. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  135. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  136. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  137. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/package.json +0 -0
  138. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  139. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  140. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  141. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/src/main.js +0 -0
  142. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  143. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  144. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  145. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  146. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  147. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  148. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  149. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  150. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  151. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  152. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  153. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  154. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  155. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  156. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  157. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  158. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  159. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  160. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/session/README.md +0 -0
  161. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/session/package.json +0 -0
  162. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/session/src/main.js +0 -0
  163. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/storage/README.md +0 -0
  164. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/storage/build.json +0 -0
  165. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/storage/package.json +0 -0
  166. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/storage/src/main.js +0 -0
  167. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/validator/README.md +0 -0
  168. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/validator/build.json +0 -0
  169. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/validator/package.json +0 -0
  170. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/validator/src/form-validator.js +0 -0
  171. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/plugins/lib/validator/src/main.js +0 -0
  172. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/router.js +0 -0
  173. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/server.express.js +0 -0
  174. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/status.codes +0 -0
  175. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/_gitignore +0 -0
  176. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/config/app.json +0 -0
  177. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  178. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/config/routing.json +0 -0
  179. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/config/settings.json +0 -0
  180. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  181. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/config/templates.json +0 -0
  182. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  183. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  184. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  185. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  186. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/index.js +0 -0
  187. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle/locales/en.json +0 -0
  188. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  189. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  190. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  191. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  192. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  193. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  194. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  195. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_public/readme.md +0 -0
  196. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_public/sw.js +0 -0
  197. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  198. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  199. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  200. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  201. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  202. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/command/gina.bat.tpl +0 -0
  203. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/command/gina.tpl +0 -0
  204. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/conf/env.json +0 -0
  205. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/conf/manifest.json +0 -0
  206. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/conf/package.json +0 -0
  207. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/conf/statics.json +0 -0
  208. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/conf/templates.json +0 -0
  209. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/error/client/json/401.json +0 -0
  210. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/error/client/json/403.json +0 -0
  211. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/error/client/json/404.json +0 -0
  212. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/error/server/html/50x.html +0 -0
  213. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/error/server/json/500.json +0 -0
  214. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/error/server/json/503.json +0 -0
  215. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/core/template/extensions/logger/config.json +0 -0
  216. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/console.js +0 -0
  217. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/context.js +0 -0
  218. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/data/LICENSE +0 -0
  219. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/data/README.md +0 -0
  220. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/data/package.json +0 -0
  221. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/data/src/main.js +0 -0
  222. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/dateFormat.js +0 -0
  223. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/index.js +0 -0
  224. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/json/LICENSE +0 -0
  225. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/json/README.md +0 -0
  226. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/json/package.json +0 -0
  227. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/json/src/main.js +0 -0
  228. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/path.js +0 -0
  229. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/plugins/README.md +0 -0
  230. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/plugins/package.json +0 -0
  231. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/plugins/src/api-error.js +0 -0
  232. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/plugins/src/main.js +0 -0
  233. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/prototypes.js +0 -0
  234. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/task.js +0 -0
  235. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/helpers/text.js +0 -0
  236. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/admin/package.json +0 -0
  237. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/admin/src/main.js +0 -0
  238. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/archiver/README.md +0 -0
  239. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/archiver/build.json +0 -0
  240. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/archiver/package.json +0 -0
  241. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/archiver/src/dep/jszip.min.js +0 -0
  242. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/archiver/src/main.js +0 -0
  243. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/async/package.json +0 -0
  244. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/async/src/main.js +0 -0
  245. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cache/README.md +0 -0
  246. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cache/build.json +0 -0
  247. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cache/package.json +0 -0
  248. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cache/src/main.js +0 -0
  249. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/aliases.json +0 -0
  250. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/add.js +0 -0
  251. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/arguments.json +0 -0
  252. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/build.js +0 -0
  253. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/copy.js +0 -0
  254. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/cp.js +0 -0
  255. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/help.js +0 -0
  256. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/help.txt +0 -0
  257. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  258. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/list.js +0 -0
  259. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/man.js +0 -0
  260. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/mcp-start.js +0 -0
  261. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/mcp.js +0 -0
  262. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/oas.js +0 -0
  263. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/openapi.js +0 -0
  264. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/remove.js +0 -0
  265. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/rename.js +0 -0
  266. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/restart.js +0 -0
  267. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/rm.js +0 -0
  268. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/start.js +0 -0
  269. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/status.js +0 -0
  270. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/bundle/stop.js +0 -0
  271. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/cache/stats.js +0 -0
  272. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/connector/add.js +0 -0
  273. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/connector/arguments.json +0 -0
  274. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/connector/help.js +0 -0
  275. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/connector/help.txt +0 -0
  276. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/connector/list.js +0 -0
  277. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/connector/migrate.js +0 -0
  278. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/connector/remove.js +0 -0
  279. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/connector/rm.js +0 -0
  280. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/env/add.js +0 -0
  281. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/env/get.js +0 -0
  282. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/env/help.js +0 -0
  283. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/env/help.txt +0 -0
  284. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/env/link-dev.js +0 -0
  285. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/env/list.js +0 -0
  286. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/env/remove.js +0 -0
  287. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/env/rm.js +0 -0
  288. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/env/set.js +0 -0
  289. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/env/unset.js +0 -0
  290. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/env/use.js +0 -0
  291. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/add.js +0 -0
  292. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/arguments.json +0 -0
  293. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/build.js +0 -0
  294. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/dot.js +0 -0
  295. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/get.js +0 -0
  296. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/help.js +0 -0
  297. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/help.txt +0 -0
  298. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/init.js +0 -0
  299. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/link-node-modules.js +0 -0
  300. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/link.js +0 -0
  301. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/list.js +0 -0
  302. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/man.js +0 -0
  303. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/msg.json +0 -0
  304. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/open.js +0 -0
  305. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/remove.js +0 -0
  306. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/reset.js +0 -0
  307. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/restart.js +0 -0
  308. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/set.js +0 -0
  309. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/start.js +0 -0
  310. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/status.js +0 -0
  311. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/stop.js +0 -0
  312. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/tail.js +0 -0
  313. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/update.js +0 -0
  314. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/framework/version.js +0 -0
  315. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/gina-dev.1.md +0 -0
  316. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/gina-framework.1.md +0 -0
  317. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/gina.1.md +0 -0
  318. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/helper.js +0 -0
  319. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/i18n/add.js +0 -0
  320. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/i18n/arguments.json +0 -0
  321. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/i18n/export.js +0 -0
  322. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/i18n/help.js +0 -0
  323. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/i18n/help.txt +0 -0
  324. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/i18n/import.js +0 -0
  325. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/i18n/scan.js +0 -0
  326. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/index.js +0 -0
  327. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/inspector/help.js +0 -0
  328. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/inspector/help.txt +0 -0
  329. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/inspector/open.js +0 -0
  330. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/man-render.js +0 -0
  331. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/minion/arguments.json +0 -0
  332. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/minion/help.js +0 -0
  333. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/minion/help.txt +0 -0
  334. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/minion/kill.js +0 -0
  335. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/minion/list.js +0 -0
  336. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/msg.json +0 -0
  337. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/port/help.js +0 -0
  338. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/port/help.txt +0 -0
  339. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/port/inc/scan.js +0 -0
  340. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/port/list.js +0 -0
  341. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/port/reset.js +0 -0
  342. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/port/set.js +0 -0
  343. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/add.js +0 -0
  344. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/arguments.json +0 -0
  345. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/backup.js +0 -0
  346. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/build.js +0 -0
  347. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/help.js +0 -0
  348. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/help.txt +0 -0
  349. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/import.js +0 -0
  350. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/list.js +0 -0
  351. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/man.js +0 -0
  352. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/move.js +0 -0
  353. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/remove.js +0 -0
  354. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/rename.js +0 -0
  355. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/restart.js +0 -0
  356. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/restore.js +0 -0
  357. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/rm.js +0 -0
  358. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/start.js +0 -0
  359. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/status.js +0 -0
  360. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/project/stop.js +0 -0
  361. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/protocol/arguments.json +0 -0
  362. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/protocol/help.js +0 -0
  363. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/protocol/help.txt +0 -0
  364. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/protocol/list.js +0 -0
  365. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/protocol/remove.js +0 -0
  366. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/protocol/set.js +0 -0
  367. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/scope/add.js +0 -0
  368. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/scope/help.js +0 -0
  369. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/scope/help.txt +0 -0
  370. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/scope/link-local.js +0 -0
  371. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/scope/link-production.js +0 -0
  372. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/scope/list.js +0 -0
  373. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/scope/remove.js +0 -0
  374. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/scope/rm.js +0 -0
  375. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/scope/use.js +0 -0
  376. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/secrets/arguments.json +0 -0
  377. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/secrets/check.js +0 -0
  378. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/secrets/help.js +0 -0
  379. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/secrets/help.txt +0 -0
  380. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/secrets/scan.js +0 -0
  381. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/service/help.js +0 -0
  382. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/service/help.txt +0 -0
  383. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/service/list.js +0 -0
  384. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/service/man.js +0 -0
  385. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/service/start.js +0 -0
  386. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd/view/add.js +0 -0
  387. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd-status-format/package.json +0 -0
  388. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cmd-status-format/src/main.js +0 -0
  389. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/collection/README.md +0 -0
  390. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/collection/build.json +0 -0
  391. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/collection/package.json +0 -0
  392. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/collection/src/main.js +0 -0
  393. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/config.js +0 -0
  394. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/connector-registry/package.json +0 -0
  395. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/connector-registry/src/main.js +0 -0
  396. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cron/README.md +0 -0
  397. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cron/package.json +0 -0
  398. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/cron/src/main.js +0 -0
  399. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/domain/LICENSE +0 -0
  400. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/domain/README.md +0 -0
  401. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/domain/package.json +0 -0
  402. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/domain/src/main.js +0 -0
  403. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/generator/index.js +0 -0
  404. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/i18n/package.json +0 -0
  405. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/i18n/src/main.js +0 -0
  406. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/index.js +0 -0
  407. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/inherits/LICENSE +0 -0
  408. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/inherits/README.md +0 -0
  409. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/inherits/package.json +0 -0
  410. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/inherits/src/main.js +0 -0
  411. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/inspector-redact/package.json +0 -0
  412. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/inspector-redact/src/main.js +0 -0
  413. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/instrument/package.json +0 -0
  414. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/instrument/src/main.js +0 -0
  415. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/job/package.json +0 -0
  416. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/job/src/main.js +0 -0
  417. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/logger/README.md +0 -0
  418. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/logger/package.json +0 -0
  419. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/logger/src/containers/default/index.js +0 -0
  420. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/logger/src/containers/file/index.js +0 -0
  421. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  422. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  423. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/logger/src/containers/mq/index.js +0 -0
  424. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/logger/src/containers/mq/listener.js +0 -0
  425. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/logger/src/containers/mq/speaker.js +0 -0
  426. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/logger/src/helper.js +0 -0
  427. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/logger/src/main.js +0 -0
  428. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/math/index.js +0 -0
  429. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/mcp-dispatch/package.json +0 -0
  430. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/mcp-dispatch/src/main.js +0 -0
  431. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/mcp-http/package.json +0 -0
  432. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/mcp-http/src/main.js +0 -0
  433. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/mcp-server/package.json +0 -0
  434. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/mcp-server/src/main.js +0 -0
  435. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/merge/README.md +0 -0
  436. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/merge/package.json +0 -0
  437. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/merge/src/main.js +0 -0
  438. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/metrics/package.json +0 -0
  439. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/metrics/src/main.js +0 -0
  440. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/model.js +0 -0
  441. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/nunjucks-filters/README.md +0 -0
  442. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/nunjucks-filters/package.json +0 -0
  443. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/nunjucks-filters/src/main.js +0 -0
  444. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/nunjucks-resolver/package.json +0 -0
  445. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/nunjucks-resolver/src/main.js +0 -0
  446. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/proc.js +0 -0
  447. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/routing/README.md +0 -0
  448. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/routing/build.json +0 -0
  449. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/routing/package.json +0 -0
  450. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/routing/src/main.js +0 -0
  451. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/routing/src/radix.js +0 -0
  452. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/routing-introspect/package.json +0 -0
  453. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/routing-introspect/src/main.js +0 -0
  454. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/secrets/package.json +0 -0
  455. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/secrets/src/backends/env.js +0 -0
  456. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/secrets/src/main.js +0 -0
  457. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/session-store.js +0 -0
  458. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/shell.js +0 -0
  459. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/state.js +0 -0
  460. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/swig-filters/README.md +0 -0
  461. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/swig-filters/package.json +0 -0
  462. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/swig-filters/src/main.js +0 -0
  463. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/swig-resolver/package.json +0 -0
  464. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/swig-resolver/src/main.js +0 -0
  465. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/template-loaders/package.json +0 -0
  466. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/template-loaders/src/loaders/http.js +0 -0
  467. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/template-loaders/src/loaders/memory.js +0 -0
  468. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/template-loaders/src/main.js +0 -0
  469. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/url/README.md +0 -0
  470. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/url/index.js +0 -0
  471. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/url/routing.json +0 -0
  472. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/uuid/package.json +0 -0
  473. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/uuid/src/main.js +0 -0
  474. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/validator.js +0 -0
  475. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/watcher/package.json +0 -0
  476. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/watcher/src/main.js +0 -0
  477. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/ws-framing/package.json +0 -0
  478. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/ws-framing/src/main.js +0 -0
  479. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/ws-query/package.json +0 -0
  480. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/ws-query/src/main.js +0 -0
  481. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/ws-session/package.json +0 -0
  482. /package/framework/{v0.5.5 → v0.5.6-alpha.2}/lib/ws-session/src/main.js +0 -0
@@ -0,0 +1,530 @@
1
+ /*
2
+ * This file is part of the gina package.
3
+ * Copyright (c) 2009-2026 Rhinostone <contact@gina.io>
4
+ *
5
+ * For the full copyright and license information, please view the LICENSE
6
+ * file that was distributed with this source code.
7
+ */
8
+ 'use strict';
9
+
10
+ var EventEmitter = require('events').EventEmitter;
11
+
12
+ // #AISTREAM — monotonic per-process stream id (client-side disambiguation of
13
+ // interleaved token streams on the shared /_gina/agent channel).
14
+ var _aiStreamSeq = 0;
15
+
16
+ /**
17
+ * AI connector wrapper.
18
+ *
19
+ * Exposes a unified `.infer(messages, options)` method that normalises the
20
+ * response shape across Anthropic and all OpenAI-compatible providers
21
+ * (OpenAI, DeepSeek, Qwen, Groq, Mistral, Gemini, xAI, Ollama, …).
22
+ *
23
+ * Returned by getModel('<connectorName>') in controllers.
24
+ *
25
+ * Usage:
26
+ * ```js
27
+ * var ai = getModel('claude');
28
+ *
29
+ * // async/await
30
+ * var result = await ai.infer([
31
+ * { role: 'system', content: 'You are a helpful assistant.' },
32
+ * { role: 'user', content: req.body.message }
33
+ * ]);
34
+ * self.renderJSON({ reply: result.content });
35
+ *
36
+ * // .onComplete() callback
37
+ * ai.infer(messages).onComplete(function(err, result) {
38
+ * if (err) return self.throwError(500, err.message);
39
+ * self.renderJSON({ reply: result.content });
40
+ * });
41
+ *
42
+ * // streaming (token-by-token) — see stream() below
43
+ * ai.stream(messages)
44
+ * .on('delta', function(d) { process.stdout.write(d.text); })
45
+ * .onComplete(function(err, result) { });
46
+ * ```
47
+ *
48
+ * Response shape (normalised across all providers):
49
+ * ```js
50
+ * {
51
+ * content : string, // text response
52
+ * model : string, // model that answered
53
+ * usage : {
54
+ * inputTokens : number,
55
+ * outputTokens : number
56
+ * },
57
+ * raw : object // original provider response
58
+ * }
59
+ * ```
60
+ *
61
+ * @class AI
62
+ * @constructor
63
+ * @param {object} conn - Internal connection object from AIConnector.onReady
64
+ * @param {object} infos - { model, bundle, database, scope } from the framework loader
65
+ * @returns {object} - { client, provider, model, infer, stream }
66
+ */
67
+ function AI(conn, infos) {
68
+
69
+ // ── infer(messages, options) ─────────────────────────────────────────────
70
+ //
71
+ // messages: OpenAI-format array [{ role: 'user'|'assistant'|'system', content: string }]
72
+ // options:
73
+ // model {string} — override the connector's default model
74
+ // maxTokens {number} — max tokens in the response (default: 1024)
75
+ // temperature {number} — sampling temperature
76
+ // system {string} — system prompt (alternative to a system message in the array)
77
+ //
78
+ // Anthropic note: the system message is extracted from the messages array (or
79
+ // taken from options.system) and passed as the separate `system` parameter
80
+ // that the Messages API requires. Remaining messages go in `messages`.
81
+ // ─────────────────────────────────────────────────────────────────────────
82
+ var infer = function(messages, options) {
83
+ options = options || {};
84
+
85
+ var modelName = options.model || conn.modelName || '';
86
+ var maxTokens = options.maxTokens || 1024;
87
+ var temperature = (options.temperature !== undefined) ? options.temperature : undefined;
88
+
89
+ // ── Option B — native Promise with .onComplete() shim ─────────────────
90
+ var _resolve, _reject, _internalData;
91
+
92
+ var _promise = new Promise(function(resolve, reject) {
93
+ _resolve = resolve;
94
+ _reject = reject;
95
+ });
96
+
97
+ _promise.onComplete = function(cb) {
98
+ _promise.then(
99
+ function() { cb(null, _internalData); },
100
+ function(err) { cb(err); }
101
+ );
102
+ return _promise;
103
+ };
104
+
105
+ if (!modelName) {
106
+ _reject(new Error(
107
+ '[AI] No model specified. '
108
+ + 'Set "model" in connectors.json or pass { model: "..." } as the second argument.'
109
+ ));
110
+ return _promise;
111
+ }
112
+
113
+ if (conn.type === 'anthropic') {
114
+ // ── Anthropic Messages API ─────────────────────────────────────────
115
+ // System prompt is a top-level parameter, not a message role.
116
+ var systemMsg = options.system || null;
117
+ var filteredMessages = messages.filter(function(m) {
118
+ if (m.role === 'system') {
119
+ if (!systemMsg) systemMsg = m.content;
120
+ return false;
121
+ }
122
+ return true;
123
+ });
124
+
125
+ var params = {
126
+ model : modelName,
127
+ max_tokens : maxTokens,
128
+ messages : filteredMessages
129
+ };
130
+ if (systemMsg) params.system = systemMsg;
131
+ if (temperature !== undefined) params.temperature = temperature;
132
+
133
+ conn.client.messages.create(params)
134
+ .then(function(response) {
135
+ var result = {
136
+ content : response.content[0].text,
137
+ model : response.model,
138
+ usage : {
139
+ inputTokens : response.usage.input_tokens,
140
+ outputTokens : response.usage.output_tokens
141
+ },
142
+ raw : response
143
+ };
144
+ _internalData = result;
145
+ _resolve(result);
146
+ })
147
+ .catch(function(err) { _reject(err); });
148
+
149
+ } else {
150
+ // ── OpenAI-compatible Chat Completions API ─────────────────────────
151
+ // Works for: OpenAI, DeepSeek, Qwen, Groq, Mistral, Together,
152
+ // Gemini (OpenAI-compat), xAI, Perplexity, Ollama, vLLM…
153
+ var msgs = messages.slice();
154
+ if (options.system) {
155
+ msgs = [{ role: 'system', content: options.system }].concat(msgs);
156
+ }
157
+
158
+ var params = {
159
+ model : modelName,
160
+ messages : msgs,
161
+ max_tokens : maxTokens
162
+ };
163
+ if (temperature !== undefined) params.temperature = temperature;
164
+
165
+ conn.client.chat.completions.create(params)
166
+ .then(function(response) {
167
+ var result = {
168
+ content : response.choices[0].message.content,
169
+ model : response.model,
170
+ usage : {
171
+ inputTokens : response.usage.prompt_tokens,
172
+ outputTokens : response.usage.completion_tokens
173
+ },
174
+ raw : response
175
+ };
176
+ _internalData = result;
177
+ _resolve(result);
178
+ })
179
+ .catch(function(err) { _reject(err); });
180
+ }
181
+
182
+ return _promise;
183
+ };
184
+
185
+ /**
186
+ * Streaming variant of infer().
187
+ *
188
+ * Returns a fresh EventEmitter surfacing the provider's token stream as
189
+ * ordered events, leaving the buffered infer() untouched. A new emitter is
190
+ * created per call (no shared-emitter listener accumulation).
191
+ *
192
+ * Events (in order):
193
+ * - `start` `{ model, role }` — once, when the first chunk arrives.
194
+ * - `delta` `{ index, text, outputTokens }` — once per token chunk. `index`
195
+ * is a framework-maintained 0-based counter (neither SDK numbers deltas).
196
+ * `outputTokens` is the running output-token total where the provider
197
+ * exposes it (Anthropic: cumulative on message_delta; OpenAI: null until
198
+ * the final usage chunk), else null/0.
199
+ * - `done` `{ content, model, usage:{inputTokens,outputTokens}, raw,
200
+ * latencyMs[, finishReason] }` — the assembled result (the same normalised
201
+ * shape infer() returns, plus framework-measured `latencyMs`). `raw` is the
202
+ * provider's final message for Anthropic, null for OpenAI-compatible
203
+ * streams (which expose no single final response object).
204
+ * - `error` `(err)` — emitted only when an `error` listener is attached, so a
205
+ * caller using only `.onComplete(cb)` cannot crash the process on an
206
+ * unhandled `error` event; the error still reaches `.onComplete(cb)`.
207
+ *
208
+ * Also exposes `.onComplete(cb)` (`cb(err)` | `cb(null, doneResult)`) mirroring
209
+ * infer(), for callers that only want the assembled result.
210
+ *
211
+ * Token-counter honesty: neither SDK provides a per-delta output-token count.
212
+ * Anthropic emits a cumulative running total on `message_delta`; OpenAI-compatible
213
+ * providers emit a single end-of-stream usage chunk only when
214
+ * `stream_options.include_usage` is honored (some providers omit it, so usage may
215
+ * stay null). `latencyMs` is framework-measured at both branches.
216
+ *
217
+ * @param {Array<object>} messages - OpenAI-format [{ role, content }] array.
218
+ * @param {object} [options]
219
+ * @param {string} [options.model] - Override the connector default model.
220
+ * @param {number} [options.maxTokens=1024]
221
+ * @param {number} [options.temperature]
222
+ * @param {string} [options.system] - System prompt (alternative to a system message).
223
+ * @returns {EventEmitter} emitter emitting start/delta/done/error, with an .onComplete(cb) shim.
224
+ *
225
+ * @example
226
+ * // token-by-token
227
+ * getModel('claude').stream([{ role: 'user', content: 'Tell me a joke.' }])
228
+ * .on('start', function(s) { }) // { model, role }
229
+ * .on('delta', function(d) { process.stdout.write(d.text); })
230
+ * .on('done', function(r) { }) // { content, model, usage, latencyMs }
231
+ * .on('error', function(e) { });
232
+ *
233
+ * @example
234
+ * // assembled result only (mirrors infer())
235
+ * getModel('claude').stream(messages).onComplete(function(err, result) {
236
+ * if (err) return self.throwError(500, err.message);
237
+ * self.renderJSON({ reply: result.content });
238
+ * });
239
+ */
240
+ var stream = function(messages, options) {
241
+ options = options || {};
242
+ var emitter = new EventEmitter();
243
+
244
+ var modelName = options.model || conn.modelName || '';
245
+ var maxTokens = options.maxTokens || 1024;
246
+ var temperature = (options.temperature !== undefined) ? options.temperature : undefined;
247
+
248
+ // Terminal-result shim — mirrors infer()'s .onComplete(cb).
249
+ var _resolve, _reject, _internalData, _settled = false;
250
+ var _done = new Promise(function(resolve, reject) {
251
+ _resolve = resolve;
252
+ _reject = reject;
253
+ });
254
+ // Absorb the internal rejection so a caller observing failures only via
255
+ // .on('error') does not also trip an unhandledRejection.
256
+ _done.catch(function() {});
257
+
258
+ emitter.onComplete = function(cb) {
259
+ _done.then(
260
+ function() { cb(null, _internalData); },
261
+ function(err) { cb(err); }
262
+ );
263
+ return emitter;
264
+ };
265
+
266
+ var _settleDone = function(result) {
267
+ if (_settled) return;
268
+ _settled = true;
269
+ _internalData = result;
270
+ emitter.emit('done', result);
271
+ _resolve(result);
272
+ };
273
+ // 'error' is emitted only when a listener is attached, so a caller using
274
+ // .onComplete() (and no 'error' listener) cannot crash the process on an
275
+ // unhandled 'error' event; the rejection still reaches .onComplete(cb).
276
+ var _settleError = function(err) {
277
+ if (_settled) return;
278
+ _settled = true;
279
+ if (emitter.listenerCount('error') > 0) { emitter.emit('error', err); }
280
+ _reject(err);
281
+ };
282
+
283
+ if (!modelName) {
284
+ process.nextTick(function() {
285
+ _settleError(new Error(
286
+ '[AI] No model specified. '
287
+ + 'Set "model" in connectors.json or pass { model: "..." } as the second argument.'
288
+ ));
289
+ });
290
+ return emitter;
291
+ }
292
+
293
+ var _startMs = Date.now();
294
+ var _index = 0;
295
+ var _started = false;
296
+ var emitStart = function(model, role) {
297
+ if (_started) return;
298
+ _started = true;
299
+ emitter.emit('start', { model: model, role: role });
300
+ };
301
+
302
+ // ── AI token-stream inspection (#AISTREAM) — gated, additive ──────────
303
+ // Captured under the same dev / instrumentation-window gate the query
304
+ // connectors use. The per-request buffer ref is grabbed synchronously (in
305
+ // the request's async context, where setOptions ran enterWith) and mutated
306
+ // via closure as events fire — mirroring the query-connector pattern. Chunk
307
+ // TEXT (and the prompt) ride the wire ONLY when settings.inspector.ai
308
+ // .captureText is on (seeded onto process.gina at boot); metadata is always
309
+ // captured. Instrumentation attaches as listeners on the emitter so the
310
+ // provider-specific paths below stay pure; infer() is unaffected. A live
311
+ // inspector#token event is emitted per phase for the Inspector's streaming
312
+ // view (no subscriber ⇒ a cheap no-op).
313
+ var _aiEnvIsDev = ( /^true$/i.test(process.env.NODE_ENV_IS_DEV) );
314
+ if (_aiEnvIsDev || (process.gina && process.gina._inspectorWindowUntil > Date.now())) {
315
+ var _aiAls = (process.gina && process.gina._queryALS) ? process.gina._queryALS.getStore() : null;
316
+ var _aiLog = _aiAls ? _aiAls._devAiLog : null;
317
+ if (_aiLog) {
318
+ var _captureText = !!(process.gina && process.gina._inspectorAiCaptureText);
319
+ var _streamId = 'ai-' + _startMs.toString(36) + '-' + (++_aiStreamSeq);
320
+ var _aiEntry = {
321
+ type : 'AI',
322
+ id : _streamId,
323
+ provider : conn.provider,
324
+ model : modelName,
325
+ role : null,
326
+ promptTokens : null,
327
+ outputTokens : null,
328
+ chunks : 0,
329
+ durationMs : 0,
330
+ error : null,
331
+ origin : (infos && infos.bundle) || ''
332
+ };
333
+ if (_captureText) {
334
+ _aiEntry.prompt = messages; // raw prompt — captured only when captureText is on
335
+ _aiEntry.text = '';
336
+ }
337
+ _aiEntry._startMs = _startMs;
338
+ _aiLog.push(_aiEntry);
339
+
340
+ // 'token' is the SSE/WS event NAME, never a payload key (a bare `token`
341
+ // key would be wholesale-redacted); phase/index/outputTokens/deltaText
342
+ // are redaction-safe.
343
+ var _aiToken = function(frame) {
344
+ frame.t = Date.now();
345
+ frame.id = _streamId;
346
+ process.emit('inspector#token', frame);
347
+ };
348
+
349
+ emitter.on('start', function(s) {
350
+ _aiEntry.model = s.model;
351
+ _aiEntry.role = s.role;
352
+ _aiToken({ phase: 'start', model: s.model, role: s.role });
353
+ });
354
+ emitter.on('delta', function(d) {
355
+ _aiEntry.chunks += 1;
356
+ if (typeof d.outputTokens === 'number') { _aiEntry.outputTokens = d.outputTokens; }
357
+ if (_captureText && typeof _aiEntry.text === 'string') { _aiEntry.text += d.text; }
358
+ var frame = { phase: 'delta', index: d.index, outputTokens: (typeof d.outputTokens === 'number' ? d.outputTokens : null) };
359
+ if (_captureText) { frame.deltaText = d.text; }
360
+ _aiToken(frame);
361
+ });
362
+ emitter.on('done', function(r) {
363
+ _aiEntry.durationMs = r.latencyMs;
364
+ _aiEntry.model = r.model;
365
+ if (r.usage) {
366
+ _aiEntry.promptTokens = r.usage.inputTokens;
367
+ _aiEntry.outputTokens = r.usage.outputTokens;
368
+ }
369
+ _aiToken({ phase: 'done', model: r.model, outputTokens: (r.usage ? r.usage.outputTokens : null), latencyMs: r.latencyMs });
370
+ });
371
+ // Internal 'error' listener — records the failure AND guarantees the
372
+ // emitter always has an 'error' handler while capturing, so a caller
373
+ // without its own 'error' listener cannot crash on an unhandled event.
374
+ emitter.on('error', function(err) {
375
+ _aiEntry.error = (err && err.message) || String(err);
376
+ _aiToken({ phase: 'error', message: _captureText ? ((err && err.message) || String(err)) : null });
377
+ });
378
+ }
379
+ }
380
+
381
+ // Defer one tick so callers can attach .on('start'/'delta'/...) synchronously
382
+ // after stream() returns, before any event fires (mirrors the Option-B timing).
383
+ if (conn.type === 'anthropic') {
384
+ process.nextTick(function() {
385
+ try {
386
+ // System prompt is a top-level parameter, not a message role.
387
+ var systemMsg = options.system || null;
388
+ var filteredMessages = messages.filter(function(m) {
389
+ if (m.role === 'system') {
390
+ if (!systemMsg) systemMsg = m.content;
391
+ return false;
392
+ }
393
+ return true;
394
+ });
395
+
396
+ var params = {
397
+ model : modelName,
398
+ max_tokens : maxTokens,
399
+ messages : filteredMessages
400
+ };
401
+ if (systemMsg) params.system = systemMsg;
402
+ if (temperature !== undefined) params.temperature = temperature;
403
+
404
+ var _model = modelName, _role = 'assistant',
405
+ _outputTokens = 0, _inputTokens = null, _text = '';
406
+
407
+ // The Anthropic MessageStream is itself an EventEmitter.
408
+ var sdkStream = conn.client.messages.stream(params);
409
+
410
+ // Raw SSE events carry model/role (message_start) and the
411
+ // CUMULATIVE running output-token total (message_delta.usage).
412
+ sdkStream.on('streamEvent', function(event) {
413
+ if (!event) return;
414
+ if (event.type === 'message_start' && event.message) {
415
+ _model = event.message.model || _model;
416
+ _role = event.message.role || _role;
417
+ if (event.message.usage
418
+ && typeof event.message.usage.input_tokens === 'number') {
419
+ _inputTokens = event.message.usage.input_tokens;
420
+ }
421
+ emitStart(_model, _role);
422
+ } else if (event.type === 'message_delta' && event.usage
423
+ && typeof event.usage.output_tokens === 'number') {
424
+ _outputTokens = event.usage.output_tokens;
425
+ }
426
+ });
427
+
428
+ // Incremental text chunks.
429
+ sdkStream.on('text', function(delta) {
430
+ emitStart(_model, _role);
431
+ _text += delta;
432
+ emitter.emit('delta', { index: _index++, text: delta, outputTokens: _outputTokens });
433
+ });
434
+
435
+ sdkStream.on('error', _settleError);
436
+
437
+ sdkStream.finalMessage().then(function(message) {
438
+ emitStart(_model, _role);
439
+ _settleDone({
440
+ content : (message && message.content && message.content[0] && message.content[0].text) || _text,
441
+ model : (message && message.model) || _model,
442
+ usage : {
443
+ inputTokens : (message && message.usage && message.usage.input_tokens != null) ? message.usage.input_tokens : _inputTokens,
444
+ outputTokens : (message && message.usage && message.usage.output_tokens != null) ? message.usage.output_tokens : _outputTokens
445
+ },
446
+ raw : message || null,
447
+ latencyMs : Date.now() - _startMs
448
+ });
449
+ }, _settleError);
450
+ } catch (err) {
451
+ _settleError(err);
452
+ }
453
+ });
454
+
455
+ } else {
456
+ // OpenAI-compatible streaming (chat.completions with stream: true).
457
+ process.nextTick(function() {
458
+ (async function() {
459
+ try {
460
+ var msgs = messages.slice();
461
+ if (options.system) {
462
+ msgs = [{ role: 'system', content: options.system }].concat(msgs);
463
+ }
464
+
465
+ var params = {
466
+ model : modelName,
467
+ messages : msgs,
468
+ max_tokens : maxTokens,
469
+ stream : true,
470
+ // Ask for a final usage chunk; honored by most OpenAI-compatible
471
+ // providers (some — e.g. Ollama — may omit it, so usage stays null).
472
+ stream_options : { include_usage: true }
473
+ };
474
+ if (temperature !== undefined) params.temperature = temperature;
475
+
476
+ var _model = modelName, _role = 'assistant',
477
+ _outputTokens = null, _inputTokens = null, _text = '', _finishReason = null;
478
+
479
+ var sdkStream = await conn.client.chat.completions.create(params);
480
+
481
+ for await (var chunk of sdkStream) {
482
+ if (!chunk) continue;
483
+ if (chunk.model) { _model = chunk.model; }
484
+ var choice = chunk.choices && chunk.choices[0];
485
+ if (choice && choice.delta) {
486
+ if (choice.delta.role) { _role = choice.delta.role; }
487
+ emitStart(_model, _role);
488
+ if (typeof choice.delta.content === 'string' && choice.delta.content.length > 0) {
489
+ _text += choice.delta.content;
490
+ emitter.emit('delta', { index: _index++, text: choice.delta.content, outputTokens: _outputTokens });
491
+ }
492
+ if (choice.finish_reason) { _finishReason = choice.finish_reason; }
493
+ }
494
+ // Final usage chunk (empty choices) when include_usage is honored.
495
+ if (chunk.usage) {
496
+ if (typeof chunk.usage.prompt_tokens === 'number') { _inputTokens = chunk.usage.prompt_tokens; }
497
+ if (typeof chunk.usage.completion_tokens === 'number') { _outputTokens = chunk.usage.completion_tokens; }
498
+ }
499
+ }
500
+
501
+ emitStart(_model, _role); // ensure 'start' fired even for an empty stream
502
+ _settleDone({
503
+ content : _text,
504
+ model : _model,
505
+ usage : { inputTokens: _inputTokens, outputTokens: _outputTokens },
506
+ finishReason : _finishReason,
507
+ raw : null,
508
+ latencyMs : Date.now() - _startMs
509
+ });
510
+ } catch (err) {
511
+ _settleError(err);
512
+ }
513
+ })();
514
+ });
515
+ }
516
+
517
+ return emitter;
518
+ };
519
+
520
+ // ── Public interface ──────────────────────────────────────────────────────
521
+ return {
522
+ client : conn.client, // raw SDK instance for advanced use
523
+ provider : conn.provider, // e.g. 'anthropic', 'deepseek', 'ollama'
524
+ model : conn.modelName, // default model from connectors.json
525
+ infer : infer,
526
+ stream : stream // streaming variant of infer() (EventEmitter: start/delta/done/error)
527
+ };
528
+ }
529
+
530
+ module.exports = AI;
@@ -293,9 +293,16 @@ function SuperController(options) {
293
293
  if (!req._devQueryLog) {
294
294
  req._devQueryLog = [];
295
295
  }
296
+ // #AISTREAM — sibling per-request buffer for AI token-stream inspection,
297
+ // threaded through the SAME _queryALS store for concurrency-correct
298
+ // attribution (the AI connector's stream() reaches it via getStore()).
299
+ if (!req._devAiLog) {
300
+ req._devAiLog = [];
301
+ }
296
302
  local._queryLog = req._devQueryLog;
303
+ local._aiLog = req._devAiLog;
297
304
  if (process.gina._queryALS) {
298
- process.gina._queryALS.enterWith({ _devQueryLog: req._devQueryLog });
305
+ process.gina._queryALS.enterWith({ _devQueryLog: req._devQueryLog, _devAiLog: req._devAiLog });
299
306
  }
300
307
  // #FI — propagate request timeline into local for render access
301
308
  if (req._devTimeline) {
@@ -288,6 +288,11 @@ module.exports = function renderJSON(jsonObj, deps) {
288
288
  if (local._queryLog && local._queryLog.length > 0) {
289
289
  _gdUser.queries = local._queryLog;
290
290
  }
291
+ // #AISTREAM — AI token-stream snapshot (per-request attribution +
292
+ // persistence) alongside queries/flow; the live view rides inspector#token.
293
+ if (local._aiLog && local._aiLog.length > 0) {
294
+ _gdUser.aiStream = local._aiLog;
295
+ }
291
296
  if (local._timeline) {
292
297
  _gdUser.flow = {
293
298
  requestStart : local._timeline.requestStart,
@@ -331,6 +331,10 @@ function injectInspectorScripts(html, data, self, local, displayInspector) {
331
331
  if (local._queryLog && local._queryLog.length > 0) {
332
332
  data.page.queries = local._queryLog;
333
333
  }
334
+ // #AISTREAM — AI token-stream snapshot parity (rides the data.page clone).
335
+ if (local._aiLog && local._aiLog.length > 0) {
336
+ data.page.aiStream = local._aiLog;
337
+ }
334
338
 
335
339
  // Two deep clones — one labelled gina (metadata for the Inspector
336
340
  // sidebar), one labelled user (mirrors what application code sees).
@@ -932,6 +932,11 @@ module.exports = async function render(userData, displayInspector, errOptions, d
932
932
  if (local._queryLog && local._queryLog.length > 0) {
933
933
  data.page.queries = local._queryLog;
934
934
  }
935
+ // #AISTREAM — AI token-stream snapshot (rides the data.page clone into
936
+ // __gdUser, like queries/flow); the live view rides inspector#token.
937
+ if (local._aiLog && local._aiLog.length > 0) {
938
+ data.page.aiStream = local._aiLog;
939
+ }
935
940
  // #FI — snapshot count BEFORE late entries are pushed.
936
941
  // data.page.flow.entries is a reference to local._timeline.entries,
937
942
  // so reading .length later would include entries pushed after this point.
@@ -1176,6 +1181,10 @@ module.exports = async function render(userData, displayInspector, errOptions, d
1176
1181
  if (local._queryLog && local._queryLog.length > 0) {
1177
1182
  data.page.queries = local._queryLog;
1178
1183
  }
1184
+ // #AISTREAM — AI token-stream snapshot (rides the data.page clone).
1185
+ if (local._aiLog && local._aiLog.length > 0) {
1186
+ data.page.aiStream = local._aiLog;
1187
+ }
1179
1188
 
1180
1189
  // #FI — inject dev-mode request timeline for Inspector Flow tab.
1181
1190
  // Also convert QI entries into timeline entries so the waterfall
@@ -111,6 +111,10 @@ function emitInspectorWindowData(self, local) {
111
111
  if (local._queryLog && local._queryLog.length > 0) {
112
112
  _gdUser.queries = local._queryLog;
113
113
  }
114
+ // #AISTREAM — AI token-stream snapshot alongside queries/flow.
115
+ if (local._aiLog && local._aiLog.length > 0) {
116
+ _gdUser.aiStream = local._aiLog;
117
+ }
114
118
  if (local._timeline) {
115
119
  _gdUser.flow = {
116
120
  requestStart : local._timeline.requestStart,
@@ -1314,6 +1314,27 @@ isBundleMounted(projects, bundlesPath, getContext('bundle'), function onBundleMo
1314
1314
  process.gina._inspectorWindowUntil = 0;
1315
1315
  }
1316
1316
 
1317
+ // #AISTREAM — capture the AI token-stream chunk-text
1318
+ // opt-in from settings.json `inspector.ai.captureText`
1319
+ // (default false). Metadata is always captured under the
1320
+ // dev/window gate; the raw prompt + token text rides the
1321
+ // wire only when this is true (the authenticated channel +
1322
+ // the dev/window gate are the protection — redaction cannot
1323
+ // cover free text). Stored on process.gina so the AI
1324
+ // connector reads the same slot. Fail-closed.
1325
+ try {
1326
+ var _aiInspSettings = (typeof gna.getConfig === 'function') ? gna.getConfig('settings') : null;
1327
+ var _aiInspConf = (_aiInspSettings && _aiInspSettings.inspector && _aiInspSettings.inspector.ai && typeof _aiInspSettings.inspector.ai === 'object')
1328
+ ? _aiInspSettings.inspector.ai
1329
+ : {};
1330
+ if (!process.gina) process.gina = {};
1331
+ process.gina._inspectorAiCaptureText = (_aiInspConf.captureText === true);
1332
+ } catch (aiInspErr) {
1333
+ console.warn('[inspector-ai] init skipped: ' + (aiInspErr.message || aiInspErr));
1334
+ if (!process.gina) process.gina = {};
1335
+ process.gina._inspectorAiCaptureText = false;
1336
+ }
1337
+
1317
1338
  // #INS8 — dev-only auto-start of the standalone Inspector
1318
1339
  // bundle (inspector@gina). Best-effort + fail-closed.
1319
1340
  // Gated on:
@@ -1470,10 +1470,19 @@ function ServerEngineClass(options) {
1470
1470
  } catch (e) {}
1471
1471
  };
1472
1472
 
1473
+ // #AISTREAM — live AI token-stream frames (distinct event so the SPA
1474
+ // wires incremental appends without touching the data-snapshot path).
1475
+ var _agTokenListener = function(payload) {
1476
+ try {
1477
+ _agWrite('event: token\ndata: ' + JSON.stringify(payload) + '\n\n');
1478
+ } catch (e) {}
1479
+ };
1480
+
1473
1481
  if (!process.gina._sseConnections) process.gina._sseConnections = new Set();
1474
1482
  var _agClose = function() {
1475
1483
  process.removeListener('inspector#data', _agDataListener);
1476
1484
  process.removeListener('logger#default', _agLogListener);
1485
+ process.removeListener('inspector#token', _agTokenListener);
1477
1486
  process.gina._sseConnections.delete(_agClose);
1478
1487
  try {
1479
1488
  if (response.stream) response.stream.end();
@@ -1483,6 +1492,7 @@ function ServerEngineClass(options) {
1483
1492
 
1484
1493
  process.on('inspector#data', _agDataListener);
1485
1494
  process.on('logger#default', _agLogListener);
1495
+ process.on('inspector#token', _agTokenListener);
1486
1496
  process.gina._sseConnections.add(_agClose);
1487
1497
  _agOnClose(_agClose);
1488
1498